diff options
author | 2018-08-07 15:09:08 +0100 | |
---|---|---|
committer | 2018-08-07 15:09:16 +0100 | |
commit | af54db6c136138c66cf5ca72419989525a0baa5c (patch) | |
tree | 8519aeab8d45277c51797c7dc23aacf3b56ed1bb /static | |
parent | A wizard is never late, nor is he early. (diff) |
Initial project layout for django
Diffstat (limited to 'static')
39 files changed, 0 insertions, 849 deletions
diff --git a/static/.gitkeep b/static/.gitkeep deleted file mode 100644 index e69de29b..00000000 --- a/static/.gitkeep +++ /dev/null diff --git a/static/css/bundled/pygments-monokai.css b/static/css/bundled/pygments-monokai.css deleted file mode 100644 index 756a5850..00000000 --- a/static/css/bundled/pygments-monokai.css +++ /dev/null @@ -1,143 +0,0 @@ -.code .hll { background-color: #49483e } -.code { background: #272822; color: #f8f8f2 } -.code .c { color: #75715e } /* Comment */ -.code .err { color: #960050; background-color: #1e0010 } /* Error */ -.code .k { color: #66d9ef } /* Keyword */ -.code .l { color: #ae81ff } /* Literal */ -.code .n { color: #f8f8f2 } /* Name */ -.code .o { color: #f92672 } /* Operator */ -.code .p { color: #f8f8f2 } /* Punctuation */ -.code .ch { color: #75715e } /* Comment.Hashbang */ -.code .cm { color: #75715e } /* Comment.Multiline */ -.code .cp { color: #75715e } /* Comment.Preproc */ -.code .cpf { color: #75715e } /* Comment.PreprocFile */ -.code .c1 { color: #75715e } /* Comment.Single */ -.code .cs { color: #75715e } /* Comment.Special */ -.code .gd { color: #f92672 } /* Generic.Deleted */ -.code .ge { font-style: italic } /* Generic.Emph */ -.code .gi { color: #a6e22e } /* Generic.Inserted */ -.code .gs { font-weight: bold } /* Generic.Strong */ -.code .gu { color: #75715e } /* Generic.Subheading */ -.code .kc { color: #66d9ef } /* Keyword.Constant */ -.code .kd { color: #66d9ef } /* Keyword.Declaration */ -.code .kn { color: #f92672 } /* Keyword.Namespace */ -.code .kp { color: #66d9ef } /* Keyword.Pseudo */ -.code .kr { color: #66d9ef } /* Keyword.Reserved */ -.code .kt { color: #66d9ef } /* Keyword.Type */ -.code .ld { color: #e6db74 } /* Literal.Date */ -.code .m { color: #ae81ff } /* Literal.Number */ -.code .s { color: #e6db74 } /* Literal.String */ -.code .na { color: #a6e22e } /* Name.Attribute */ -.code .nb { color: #f8f8f2 } /* Name.Builtin */ -.code .nc { color: #a6e22e } /* Name.Class */ -.code .no { color: #66d9ef } /* Name.Constant */ -.code .nd { color: #a6e22e } /* Name.Decorator */ -.code .ni { color: #f8f8f2 } /* Name.Entity */ -.code .ne { color: #a6e22e } /* Name.Exception */ -.code .nf { color: #a6e22e } /* Name.Function */ -.code .nl { color: #f8f8f2 } /* Name.Label */ -.code .nn { color: #f8f8f2 } /* Name.Namespace */ -.code .nx { color: #a6e22e } /* Name.Other */ -.code .py { color: #f8f8f2 } /* Name.Property */ -.code .nt { color: #f92672 } /* Name.Tag */ -.code .nv { color: #f8f8f2 } /* Name.Variable */ -.code .ow { color: #f92672 } /* Operator.Word */ -.code .w { color: #f8f8f2 } /* Text.Whitespace */ -.code .mb { color: #ae81ff } /* Literal.Number.Bin */ -.code .mf { color: #ae81ff } /* Literal.Number.Float */ -.code .mh { color: #ae81ff } /* Literal.Number.Hex */ -.code .mi { color: #ae81ff } /* Literal.Number.Integer */ -.code .mo { color: #ae81ff } /* Literal.Number.Oct */ -.code .sa { color: #e6db74 } /* Literal.String.Affix */ -.code .sb { color: #e6db74 } /* Literal.String.Backtick */ -.code .sc { color: #e6db74 } /* Literal.String.Char */ -.code .dl { color: #e6db74 } /* Literal.String.Delimiter */ -.code .sd { color: #e6db74 } /* Literal.String.Doc */ -.code .s2 { color: #e6db74 } /* Literal.String.Double */ -.code .se { color: #ae81ff } /* Literal.String.Escape */ -.code .sh { color: #e6db74 } /* Literal.String.Heredoc */ -.code .si { color: #e6db74 } /* Literal.String.Interpol */ -.code .sx { color: #e6db74 } /* Literal.String.Other */ -.code .sr { color: #e6db74 } /* Literal.String.Regex */ -.code .s1 { color: #e6db74 } /* Literal.String.Single */ -.code .ss { color: #e6db74 } /* Literal.String.Symbol */ -.code .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ -.code .fm { color: #a6e22e } /* Name.Function.Magic */ -.code .vc { color: #f8f8f2 } /* Name.Variable.Class */ -.code .vg { color: #f8f8f2 } /* Name.Variable.Global */ -.code .vi { color: #f8f8f2 } /* Name.Variable.Instance */ -.code .vm { color: #f8f8f2 } /* Name.Variable.Magic */ -.code .il { color: #ae81ff } /* Literal.Number.Integer.Long */ - -/* Extra CSS for non-docutils output */ - -.highlight pre .hll { background-color: #49483e } -.highlight pre { background: #272822; color: #f8f8f2 } -.highlight pre .c { color: #75715e } /* Comment */ -.highlight pre .err { color: #960050; background-color: #1e0010 } /* Error */ -.highlight pre .k { color: #66d9ef } /* Keyword */ -.highlight pre .l { color: #ae81ff } /* Literal */ -.highlight pre .n { color: #f8f8f2 } /* Name */ -.highlight pre .o { color: #f92672 } /* Operator */ -.highlight pre .p { color: #f8f8f2 } /* Punctuation */ -.highlight pre .ch { color: #75715e } /* Comment.Hashbang */ -.highlight pre .cm { color: #75715e } /* Comment.Multiline */ -.highlight pre .cp { color: #75715e } /* Comment.Preproc */ -.highlight pre .cpf { color: #75715e } /* Comment.PreprocFile */ -.highlight pre .c1 { color: #75715e } /* Comment.Single */ -.highlight pre .cs { color: #75715e } /* Comment.Special */ -.highlight pre .gd { color: #f92672 } /* Generic.Deleted */ -.highlight pre .ge { font-style: italic } /* Generic.Emph */ -.highlight pre .gi { color: #a6e22e } /* Generic.Inserted */ -.highlight pre .gs { font-weight: bold } /* Generic.Strong */ -.highlight pre .gu { color: #75715e } /* Generic.Subheading */ -.highlight pre .kc { color: #66d9ef } /* Keyword.Constant */ -.highlight pre .kd { color: #66d9ef } /* Keyword.Declaration */ -.highlight pre .kn { color: #f92672 } /* Keyword.Namespace */ -.highlight pre .kp { color: #66d9ef } /* Keyword.Pseudo */ -.highlight pre .kr { color: #66d9ef } /* Keyword.Reserved */ -.highlight pre .kt { color: #66d9ef } /* Keyword.Type */ -.highlight pre .ld { color: #e6db74 } /* Literal.Date */ -.highlight pre .m { color: #ae81ff } /* Literal.Number */ -.highlight pre .s { color: #e6db74 } /* Literal.String */ -.highlight pre .na { color: #a6e22e } /* Name.Attribute */ -.highlight pre .nb { color: #f8f8f2 } /* Name.Builtin */ -.highlight pre .nc { color: #a6e22e } /* Name.Class */ -.highlight pre .no { color: #66d9ef } /* Name.Constant */ -.highlight pre .nd { color: #a6e22e } /* Name.Decorator */ -.highlight pre .ni { color: #f8f8f2 } /* Name.Entity */ -.highlight pre .ne { color: #a6e22e } /* Name.Exception */ -.highlight pre .nf { color: #a6e22e } /* Name.Function */ -.highlight pre .nl { color: #f8f8f2 } /* Name.Label */ -.highlight pre .nn { color: #f8f8f2 } /* Name.Namespace */ -.highlight pre .nx { color: #a6e22e } /* Name.Other */ -.highlight pre .py { color: #f8f8f2 } /* Name.Property */ -.highlight pre .nt { color: #f92672 } /* Name.Tag */ -.highlight pre .nv { color: #f8f8f2 } /* Name.Variable */ -.highlight pre .ow { color: #f92672 } /* Operator.Word */ -.highlight pre .w { color: #f8f8f2 } /* Text.Whitespace */ -.highlight pre .mb { color: #ae81ff } /* Literal.Number.Bin */ -.highlight pre .mf { color: #ae81ff } /* Literal.Number.Float */ -.highlight pre .mh { color: #ae81ff } /* Literal.Number.Hex */ -.highlight pre .mi { color: #ae81ff } /* Literal.Number.Integer */ -.highlight pre .mo { color: #ae81ff } /* Literal.Number.Oct */ -.highlight pre .sa { color: #e6db74 } /* Literal.String.Affix */ -.highlight pre .sb { color: #e6db74 } /* Literal.String.Backtick */ -.highlight pre .sc { color: #e6db74 } /* Literal.String.Char */ -.highlight pre .dl { color: #e6db74 } /* Literal.String.Delimiter */ -.highlight pre .sd { color: #e6db74 } /* Literal.String.Doc */ -.highlight pre .s2 { color: #e6db74 } /* Literal.String.Double */ -.highlight pre .se { color: #ae81ff } /* Literal.String.Escape */ -.highlight pre .sh { color: #e6db74 } /* Literal.String.Heredoc */ -.highlight pre .si { color: #e6db74 } /* Literal.String.Interpol */ -.highlight pre .sx { color: #e6db74 } /* Literal.String.Other */ -.highlight pre .sr { color: #e6db74 } /* Literal.String.Regex */ -.highlight pre .s1 { color: #e6db74 } /* Literal.String.Single */ -.highlight pre .ss { color: #e6db74 } /* Literal.String.Symbol */ -.highlight pre .bp { color: #f8f8f2 } /* Name.Builtin.Pseudo */ -.highlight pre .fm { color: #a6e22e } /* Name.Function.Magic */ -.highlight pre .vc { color: #f8f8f2 } /* Name.Variable.Class */ -.highlight pre .vg { color: #f8f8f2 } /* Name.Variable.Global */ -.highlight pre .vi { color: #f8f8f2 } /* Name.Variable.Instance */ -.highlight pre .vm { color: #f8f8f2 } /* Name.Variable.Magic */ -.highlight pre .il { color: #ae81ff } /* Literal.Number.Integer.Long */ diff --git a/static/css/style.css b/static/css/style.css deleted file mode 100644 index a2cfa897..00000000 --- a/static/css/style.css +++ /dev/null @@ -1,3 +0,0 @@ -@font-face{font-family:"Fira Code";src:url("https://unpkg.com/firacode/distr/eot/FiraCode-Regular.eot");src:url("https://unpkg.com/firacode/distr/eot/FiraCode-Regular.eot?#iefix") format("embedded-opentype"),url("https://unpkg.com/firacode/distr/woff2/FiraCode-Regular.woff2") format("woff2"),url("https://unpkg.com/firacode/distr/woff/FiraCode-Regular.woff") format("woff"),url("https://unpkg.com/firacode/distr/ttf/FiraCode-Regular.ttf") format("truetype")}.fira-code{font-family:'Fira Code', "monospace", Fallback}textarea.fira-code{line-height:1.3 !important}th p{margin:0}.uk-offcanvas-content{flex:1 0 auto}.uk-background-secondary .uk-navbar-dropdown-nav .uk-active a{color:#fff}.uk-background-secondary .uk-navbar-dropdown-nav .uk-nav-header{color:#666;font-size:120%;font-weight:bold;padding:0;text-transform:none}.uk-background-secondary .uk-navbar-dropdown-nav .uk-nav-header.uk-active{color:#fff}.uk-background-secondary .uk-navbar-dropdown-nav .uk-navbar-dropbar{background:#222}.uk-navbar-container,.uk-sticky-placeholder,.uk-navbar-nav>li>a,.uk-navbar-left>a{height:70px}.uk-navbar-dropdown{overflow-y:auto;top:45px !important}.uk-article-title{margin-bottom:0 !important}.uk-article-meta{margin-left:2px;margin-top:0 !important}.uk-section{padding-bottom:30px;padding-top:20px}.uk-heading-divider .uk-article-meta{margin-bottom:0}footer{flex-shrink:0}footer div.uk-section{padding:0}footer div.uk-section div.uk-text-center{margin-top:20px}.uk-button-dark{background:rgba(0,0,0,0.95);border:1px solid rgba(34,34,34,0.93);color:#fff}.uk-button-dark :hover{background:rgba(0,0,0,0.7)}.uk-button-darkish{background:rgba(0,0,0,0.11);border:1px solid rgba(34,34,34,0.09)}.uk-button-darkish :hover{background:rgba(0,0,0,0.22)}.uk-navbar-container{padding-left:40px;padding-right:40px}.uk-button-success{background-color:#32D296;border:1px solid transparent;color:#fff}.uk-button-success:hover,.uk-button-success:focus{background-color:#2ac088}.uk-button-success:active,.uk-button-success.uk-active{background-color:#26ab79}.uk-button-success:disabled{background-color:#fff !important;border:1px solid #E5E5E5;color:#999 !important}.uses-rst .document li p{margin-bottom:0}.uses-rst .document img{margin-bottom:20px}.uses-rst #editor{min-height:50vh;resize:vertical}.blueprint-error .window{-webkit-border-radius:4px;-moz-border-radius:4px;border-radius:4px;-webkit-box-shadow:0 4px 12px 0 rgba(0,0,0,0.5);-moz-box-shadow:0 4px 12px 0 rgba(0,0,0,0.5);box-shadow:0 4px 12px 0 rgba(0,0,0,0.5);border:1px solid #C1C2C2;height:500px;margin:20px auto auto;width:100%}.blueprint-error .inside{background:#000;height:100%;padding-right:20px}.blueprint-error .block{background:#000;width:100%}.blueprint-error .top,.blueprint-error .panel{float:left}.blueprint-error .top{background:#F1F1F1;background:-webkit-linear-gradient(top, #E9E9E9 3%, #D8D8D8 100%);background:-moz-linear-gradient(top, #E9E9E9 3%, #D8D8D8 100%);background:-ms-linear-gradient(top, #E9E9E9 3%, #D8D8D8 100%);background:-o-linear-gradient(top, #E9E9E9 3%, #D8D8D8 100%);background:-webkit-gradient(linear, top, bottom, color-stop(3%, #E9E9E9), color-stop(100%, #D8D8D8));background:linear-gradient(to bottom, #E9E9E9 3%, #D8D8D8 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#F1F1F1', endColorstr='#D8D8D8', GradientType=0);-webkit-box-shadow:inset 0 1px 1px 0 rgba(255,255,255,0.76);-moz-box-shadow:inset 0 1px 1px 0 rgba(255,255,255,0.76);box-shadow:inset 0 1px 1px 0 rgba(255,255,255,0.76);border-bottom:2px solid #BDBCC1;overflow:hidden;padding:7px 0;position:relative;width:100%}.blueprint-error .panel{padding-left:9px;padding-top:2px}.blueprint-error #terminal-close,.blueprint-error #second-button,.blueprint-error #third-button{-webkit-border-radius:6px;-moz-border-radius:6px;border-radius:6px;cursor:pointer;display:inline-block;float:left;height:12px;margin-right:7px;width:12px}.blueprint-error #terminal-close{background:#FF5F4F}.blueprint-error #second-button{background:#F9C206}.blueprint-error #third-button{background:#19CC32}.blueprint-error #terminal{background-color:#000;color:#fff;height:100%;width:100%}.blueprint-error #terminal code{white-space:pre-wrap}.blueprint-error pre{border:0;border-radius:3px}.blueprint-error .uk-background-muted,.blueprint-error .error-header{background-color:#E8E8E8 !important}.blueprint-error .error-header{color:#E84149;font-family:monospace}.blueprint-error code,.blueprint-error pre{overflow-wrap:break-word;width:100%;word-wrap:break-word}.page-main-index #invite-button{padding:0}.page-main-about-partners #partner-cards .uk-card-default{margin-top:2em;text-align:center}.page-main-about-privacy td,.page-main-about-privacy th{max-width:30rem}.page-main-info-resources .payment-icon{margin-right:1em}.page-main-info-resources .payment-icon img{height:2em}.page-main-info-resources .payment-description{height:3.7rem;margin-right:.5rem;vertical-align:text-bottom}.page-main-info-resources .resource-title{margin-bottom:-1rem}.page-main-info-resources .resource-title div{padding-bottom:0}.page-main-jams-index .date-separator{vertical-align:middle}.page-main-jams-index .theme-label{margin-top:3px}.page-main-jams-index .jam-tiles{border-color:#aaa transparent;border-style:solid;border-width:1px}.page-main-jams-index .jam-tiles .uk-tile-success{background:#32D296}.page-main-jams-index .jam-tiles .uk-tile-danger{background:#F0506E}.page-main-jams-index .jam-tiles .uk-tile-winner{background:#eb0}.page-main-jams-index .jam-tiles .jam-tile-text{align-items:center;color:#fff;display:flex;justify-content:center;text-transform:uppercase}.page-main-jams-join .question-label{margin-top:0}.page-main-jams-join .checkbox-label{padding-left:.7rem}.page-main-jams-join .radio-label{padding-left:.7rem;padding-right:1rem}.page-main-jams-join .range-label{padding-left:.3rem}.page-main-jams-join .textarea{min-height:15rem;resize:vertical}.page-main-jams-join .slider-label{margin-right:1rem}.jam-team-view .participant-card-list{margin-bottom:25px}.jam-team-view .participant-card{margin-bottom:10px;padding:10px}.jam-team-view .participant-card .participant-avatar-link{margin-right:10px}.jam-team-view .participant-card .participant-avatar-link .participant-avatar{height:2.5rem}.jam-team-view .participant-card .participant-avatar-link:hover,.jam-team-view .participant-card .participant-avatar-link:active{text-decoration:none}.jam-team-view .participant-card .participant-links{float:right}.jam-team-view .gitlab-activity{background-color:#f5f5f5;height:500px;overflow-x:hidden;overflow-y:auto;width:100%}.jam-team-view .gitlab-activity .gitlab-activity-loading{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.jam-team-view .gitlab-activity .gitlab-activity-loading .gitlab-activity-spinner{text-align:center;width:100%}.jam-team-view .gitlab-activity .gitlab-activity-events{height:auto;width:100%}.jam-team-view .gitlab-activity .gitlab-activity-event-item{background-color:#fff;border:solid 1px #999;border-bottom-width:0;box-sizing:border-box;display:flex;justify-content:center;padding:10px;vertical-align:middle;width:100%}.jam-team-view .gitlab-activity .gitlab-activity-event-item .gitlab-activity-event-item-content{width:100%}.jam-team-view .gitlab-activity .gitlab-activity-event-item .pasta{background-color:#EAF5FF;border-radius:3px;color:#0366D6;font-family:Consolas, monaco, monospace;font-size:12px;margin-right:10px;padding:3px 5px}.jam-team-view .gitlab-activity .gitlab-activity-event-item:nth-last-child(2){border-bottom-width:1px}.jam-team-view .gitlab-activity .gitlab-activity-events-footer{color:#999;display:flex;justify-content:center;padding:10px;text-align:center;vertical-align:middle}.jam-team-list .team-list-cards{margin-top:20px}.jam-team-list .team-links{text-align:center}.jam-team-list .team-subtitle{margin-bottom:0}.jam-team-list .team-card-own{border:solid 2px #7289DA}.jam-team-list .team-card-own.team-card-winner{border-color:#E0B000 #E0B000 #7289DA #7289DA}.jam-team-list .team-badge-own{color:#7289DA}.jam-team-list .team-card-winner{border:solid 2px #E0B000}.jam-team-list .team-badge-winner{color:#E0B000}.jam-team-list .team-member-avatars{padding:10px;text-align:center}.jam-team-list .team-member-avatars .team-member-avatar-link{margin:0 5px}.jam-team-list .team-member-avatars .team-member-avatar-link .team-member-avatar{height:32px}.jam-team-list .team-member-avatars .team-member-avatar-link:hover,.jam-team-list .team-member-avatars .team-member-avatar-link:active{text-decoration:none}.clean-logs{background-color:#36393E}.clean-logs .nick{font-weight:700}.clean-logs .time{color:#75797F;font-size:11px;font-weight:normal;margin-left:.8em}.clean-logs .text{color:#fff;margin-bottom:1em}.clean-logs .embed{background-color:#2E3136;border:2px solid #282B30;border-radius:5px;color:#fff;margin-bottom:1.5em;padding:1em;width:60%}.clean-logs .embed .footer{font-size:9px}.clean-logs .embed .fields{display:flex;flex-wrap:wrap}.clean-logs .embed .field{flex:50%}.clean-logs .embed a{color:#A9C4DA}.blueprint-staff .participant-handle{cursor:move !important}.blueprint-staff #member-answers-sidebar{border-right:1px solid #E5E5E5;margin-right:1rem;min-width:20vw;width:20vw}.blueprint-staff #member-answers-sidebar .avatar{margin:1vw 4vw;width:12vw}.blueprint-staff .approval-card{border:1px solid #E5E5E5;padding:0}.blueprint-staff .approval-card img{height:2.5rem}.blueprint-staff .approval-card h2{margin-bottom:0;vertical-align:central}.blueprint-staff .approval-card .user-id{margin-bottom:0 !important}.blueprint-staff .approval-card .expand-icon{display:none}.blueprint-staff .approval-card .contract-icon{display:inline-block}.blueprint-staff .approval-card .uk-button{padding-left:10px;padding-right:10px}.blueprint-staff .approval-card .uk-card-body{border-top:1px solid #E5E5E5;padding-top:20px}.blueprint-staff .approval-card .status-icon.fa-check{color:#32D296}.blueprint-staff .approval-card .status-icon.fa-times{color:#F0506E}.blueprint-staff .approval-card .approved .status-icon.fa-times{display:none}.blueprint-staff .approval-card .unapproved .status-icon.fa-check{display:none}.blueprint-staff .approval-card.collapsed .expand-icon{display:inline-block}.blueprint-staff .approval-card.collapsed .contract-icon{display:none}.blueprint-staff .approval-card.collapsed .uk-card-header{border-bottom:0}.blueprint-staff .approval-card.collapsed .uk-card-body{display:none;visibility:hidden}.page-staff-jams-edit-ending #editor{min-height:50vh;resize:vertical}.page-staff-jams-edit-info .editor{min-height:30vh;resize:vertical}.page-staff-jams-forms-preamble-edit .editor{min-height:30vh;resize:vertical}.page-staff-jams-forms-questions .delete-question-button,.page-staff-jams-forms-questions .edit-question-button{padding-left:5px;padding-right:5px}.page-staff-jams-forms-view .delete-question-button,.page-staff-jams-forms-view .edit-question-button{padding-left:5px;padding-right:5px}.page-staff-jams-infractions .delete-infraction-button{padding-left:5px;padding-right:5px}.page-staff-jams-edit-teams .team-winner-unset-button,.page-staff-jams-edit-teams .team-winner-button{background-color:#E0B000;border:1px solid transparent;color:#fff}.page-staff-jams-edit-teams .team-winner-unset-button:hover,.page-staff-jams-edit-teams .team-winner-button:hover{background-color:#DAA900}.page-staff-jams-edit-teams .team-winner-unset-button:active,.page-staff-jams-edit-teams .team-winner-button:active{background-color:#DAA015}.page-staff-jams-edit-teams .team-card-winner{border:solid 2px #E0B000}.page-staff-tables-edit #editor{min-height:50vh;resize:vertical}.page-staff-tables-table .delete-infraction-button{padding-left:5px;padding-right:5px}.blueprint-wiki .quote{border-left:3px solid #7289DA;color:#99AAB5;margin-bottom:1rem;padding-left:20px}.blueprint-wiki #wiki-nav .uk-nav-divider{min-width:8rem}.blueprint-wiki #wiki-sidebar{transition:width ease 1s}.blueprint-wiki #wiki-page{overflow-x:hidden}.blueprint-wiki #wiki-sidebar-button{align-items:center;border:1px solid rgba(0,0,0,0.11);color:#fff;height:3rem;justify-content:center;min-height:3rem;min-width:3rem;width:3rem}.blueprint-wiki #doc-view{width:calc(100% - 6rem)}@media (max-width: 639px){.blueprint-wiki #doc-view{width:calc(100% - 1rem)}}.blueprint-wiki .sidebar-search-input{border-left:0;border-right:0;margin-top:5px;padding-right:0}.blueprint-wiki .search-button{border:0;width:100%}.blueprint-wiki .content{flex-grow:1;margin:0 1rem 1rem}.blueprint-wiki .location-input{margin-left:15px}.blueprint-wiki .preview-title{padding:1rem 1rem .1rem}html{height:100%}html body{display:flex;flex-direction:column;height:100%}.navbar-logo{height:60%;margin-left:-10px;margin-top:2px;max-width:110%;padding-left:3px}.hover-title a{transition:opacity 200ms ease-in-out;-moz-transition:opacity 200ms ease-in-out;-webkit-transition:opacity 200ms ease-in-out;opacity:0;visibility:hidden}.hover-title:hover a{transition:opacity 200ms ease-in-out;-moz-transition:opacity 200ms ease-in-out;-webkit-transition:opacity 200ms ease-in-out;opacity:1;visibility:visible}.debug-mode-item{color:#7289DA !important}.jam-image{max-width:15rem}.cursor-default{cursor:default !important}.full-width{width:100%}select{-webkit-appearance:unset !important;left:auto !important;opacity:1 !important;position:relative !important;top:auto !important}div.danger-input *{border-color:red !important;color:red;transition:color .5s ease, border-color .5s ease}table.table-bordered{border:1px solid #E5E5E5 !important}tr.thick-bottom-border{border-bottom:3px solid #E5E5E5 !important}td.left-border,th.left-border{border-left:1px solid #E5E5E5 !important}td.right-border,th.right-border{border-right:1px solid #E5E5E5 !important}.prevent-fouc{display:none} - -/*# sourceMappingURL=style.css.map */
\ No newline at end of file diff --git a/static/css/style.css.map b/static/css/style.css.map deleted file mode 100644 index f68094d7..00000000 --- a/static/css/style.css.map +++ /dev/null @@ -1,36 +0,0 @@ -{ - "version": 3, - "file": "style.css", - "sources": [ - "../../scss/pysite/style.scss", - "../../scss/pysite/_fonts.scss", - "../../scss/pysite/_mixins.scss", - "../../scss/pysite/_uikit_shim.scss", - "../../scss/pysite/_variables.scss", - "../../scss/pysite/pages/_rst.scss", - "../../scss/pysite/pages/errors/_common.scss", - "../../scss/pysite/pages/main/_index.scss", - "../../scss/pysite/pages/main/about/_partners.scss", - "../../scss/pysite/pages/main/about/_privacy.scss", - "../../scss/pysite/pages/main/info/_resources.scss", - "../../scss/pysite/pages/main/jams/_index.scss", - "../../scss/uikit/_variables.scss", - "../../scss/pysite/pages/main/jams/_join.scss", - "../../scss/pysite/pages/main/jams/_team_view.scss", - "../../scss/pysite/pages/main/jams/_team_list.scss", - "../../scss/pysite/pages/main/bot/_clean_logs.scss", - "../../scss/pysite/pages/staff/_common.scss", - "../../scss/pysite/pages/staff/jams/_edit_ending.scss", - "../../scss/pysite/pages/staff/jams/_edit_info.scss", - "../../scss/pysite/pages/staff/jams/forms/_preamble_edit.scss", - "../../scss/pysite/pages/staff/jams/forms/_questions_view.scss", - "../../scss/pysite/pages/staff/jams/forms/_view.scss", - "../../scss/pysite/pages/staff/jams/infractions/_view.scss", - "../../scss/pysite/pages/staff/jams/teams/_view.scss", - "../../scss/pysite/pages/staff/tables/_edit.scss", - "../../scss/pysite/pages/staff/tables/_table.scss", - "../../scss/pysite/pages/wiki/_common.scss" - ], - "names": [], - "mappings": "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" -}
\ No newline at end of file diff --git a/static/css/uikit_blurple.css b/static/css/uikit_blurple.css deleted file mode 100644 index 1a42e7bb..00000000 --- a/static/css/uikit_blurple.css +++ /dev/null @@ -1,3 +0,0 @@ -html{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-size:16px;font-weight:normal;line-height:1.5;-webkit-text-size-adjust:100%;background:#fff;color:#666}body{margin:0}a{-webkit-text-decoration-skip:objects}a:active,a:hover{outline:none}a,.uk-link{color:#1e87f0;text-decoration:none;cursor:pointer}a:hover,.uk-link:hover{color:#0f6ecd;text-decoration:underline}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}:not(pre)>code,:not(pre)>kbd,:not(pre)>samp{font-family:Consolas,monaco,monospace;font-size:.875rem;color:#f0506e;white-space:nowrap;padding:2px 6px;background:#f8f8f8}em{color:#f0506e}ins{background:#ffd;color:#666;text-decoration:none}mark{background:#ffd;color:#666}q{font-style:italic}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-0.5em}sub{bottom:-0.25em}audio,canvas,iframe,img,svg,video{vertical-align:middle}audio,canvas,img,video{max-width:100%;height:auto;box-sizing:border-box}svg:not(:root){overflow:hidden}img:not([src]){visibility:hidden}p,ul,ol,dl,pre,address,fieldset,figure{margin:0 0 20px 0}*+p,*+ul,*+ol,*+dl,*+pre,*+address,*+fieldset,*+figure{margin-top:20px}h1,.uk-h1,h2,.uk-h2,h3,.uk-h3,h4,.uk-h4,h5,.uk-h5,h6,.uk-h6{margin:0 0 20px 0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;font-weight:normal;color:#333;text-transform:none}*+h1,*+.uk-h1,*+h2,*+.uk-h2,*+h3,*+.uk-h3,*+h4,*+.uk-h4,*+h5,*+.uk-h5,*+h6,*+.uk-h6{margin-top:40px}h1,.uk-h1{font-size:2.23125rem;line-height:1.2}h2,.uk-h2{font-size:1.7rem;line-height:1.3}h3,.uk-h3{font-size:1.5rem;line-height:1.4}h4,.uk-h4{font-size:1.25rem;line-height:1.4}h5,.uk-h5{font-size:16px;line-height:1.4}h6,.uk-h6{font-size:.875rem;line-height:1.4}@media (min-width: 960px){h1,.uk-h1{font-size:2.625rem}h2,.uk-h2{font-size:2rem}}ul,ol{padding-left:30px}ul>li>ul,ul>li>ol,ol>li>ol,ol>li>ul{margin:0}dt{font-weight:bold}dd{margin-left:0}hr,.uk-hr{box-sizing:content-box;height:0;overflow:visible;text-align:inherit;margin:0 0 20px 0;border:0;border-top:1px solid #E5E5E5}*+hr,*+.uk-hr{margin-top:20px}address{font-style:normal}blockquote{margin:0 0 20px 0;font-size:1.25rem;line-height:1.5;font-style:italic;color:#333}*+blockquote{margin-top:20px}blockquote p:last-of-type{margin-bottom:0}blockquote footer{margin-top:10px;font-size:.875rem;line-height:1.5;color:#666}blockquote footer::before{content:"— "}pre{font:.875rem / 1.5 Consolas,monaco,monospace;color:#666;-moz-tab-size:4;tab-size:4;overflow:auto;padding:10px;border:1px solid #E5E5E5;border-radius:3px;background:#fff}pre code{font-family:Consolas,monaco,monospace}::-moz-selection{background:#39f;color:#fff;text-shadow:none}::selection{background:#39f;color:#fff;text-shadow:none}details,main{display:block}summary{display:list-item}template{display:none}iframe{border:0}a,area,button,input,label,select,summary,textarea{touch-action:manipulation}.var-media-s::before{content:"640px"}.var-media-m::before{content:"960px"}.var-media-l::before{content:"1200px"}.var-media-xl::before{content:"1600px"}a.uk-link-muted,.uk-link-muted a{color:#999}a.uk-link-muted:hover,.uk-link-muted a:hover{color:#666}a.uk-link-text:not(:hover),.uk-link-text a:not(:hover){color:inherit}a.uk-link-text:hover,.uk-link-text a:hover{color:#999}a.uk-link-heading:not(:hover),.uk-link-heading a:not(:hover){color:inherit}a.uk-link-heading:hover,.uk-link-heading a:hover{color:#7289DA;text-decoration:none}a.uk-link-reset,a.uk-link-reset:hover,.uk-link-reset a,.uk-link-reset a:hover{color:inherit !important;text-decoration:none !important}.uk-heading-primary{font-size:3rem;line-height:1.2}@media (min-width: 960px){.uk-heading-primary{font-size:3.375rem}}@media (min-width: 1200px){.uk-heading-primary{font-size:3.75rem;line-height:1.1}}.uk-heading-hero{font-size:4rem;line-height:1.1}@media (min-width: 960px){.uk-heading-hero{font-size:6rem;line-height:1}}@media (min-width: 1200px){.uk-heading-hero{font-size:8rem;line-height:1}}.uk-heading-divider{padding-bottom:10px;border-bottom:1px solid #E5E5E5}.uk-heading-bullet{position:relative}.uk-heading-bullet::before{content:"";display:inline-block;position:relative;top:calc(-0.1 * 1em);vertical-align:middle;height:.9em;margin-right:10px;border-left:5px solid #E5E5E5}.uk-heading-line{overflow:hidden}.uk-heading-line>*{display:inline-block;position:relative}.uk-heading-line>::before,.uk-heading-line>::after{content:"";position:absolute;top:calc(50% - (1px / 2));width:2000px;border-bottom:1px solid #E5E5E5}.uk-heading-line>::before{right:100%;margin-right:.6em}.uk-heading-line>::after{left:100%;margin-left:.6em}[class*='uk-divider']{border:none;margin-bottom:20px}*+[class*='uk-divider']{margin-top:20px}.uk-divider-icon{position:relative;height:20px;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22%23E5E5E5%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");background-repeat:no-repeat;background-position:50% 50%}.uk-divider-icon::before,.uk-divider-icon::after{content:"";position:absolute;top:50%;max-width:calc(50% - (50px / 2));border-bottom:1px solid #E5E5E5}.uk-divider-icon::before{right:calc(50% + (50px / 2));width:100%}.uk-divider-icon::after{left:calc(50% + (50px / 2));width:100%}.uk-divider-small{line-height:0}.uk-divider-small::after{content:"";display:inline-block;width:100px;max-width:100%;border-top:1px solid #E5E5E5;vertical-align:top}.uk-list{padding:0;list-style:none}.uk-list>li::before,.uk-list>li::after{content:"";display:table}.uk-list>li::after{clear:both}.uk-list>li>:last-child{margin-bottom:0}.uk-list ul{margin:0;padding-left:30px;list-style:none}.uk-list>li:nth-child(n+2),.uk-list>li>ul{margin-top:10px}.uk-list-divider>li:nth-child(n+2){margin-top:10px;padding-top:10px;border-top:1px solid #E5E5E5}.uk-list-striped>li{padding:10px 10px}.uk-list-striped>li:nth-of-type(odd){border-top:1px solid #E5E5E5;border-bottom:1px solid #E5E5E5}.uk-list-striped>li:nth-of-type(odd){background:#f8f8f8}.uk-list-striped>li:nth-child(n+2){margin-top:0}.uk-list-bullet>li{position:relative;padding-left:calc(1.5em + 10px)}.uk-list-bullet>li::before{content:"";position:absolute;top:0;left:0;width:1.5em;height:1.5em;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23666%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E");background-repeat:no-repeat;background-position:50% 50%;float:left}.uk-list-large>li:nth-child(n+2),.uk-list-large>li>ul{margin-top:20px}.uk-list-large.uk-list-divider>li:nth-child(n+2){margin-top:20px;padding-top:20px}.uk-list-large.uk-list-striped>li{padding:20px 10px}.uk-list-large.uk-list-striped>li:nth-of-type(odd){border-top:1px solid #E5E5E5;border-bottom:1px solid #E5E5E5}.uk-list-large.uk-list-striped>li:nth-child(n+2){margin-top:0}.uk-description-list>dt{color:#333;font-size:.875rem;font-weight:normal;text-transform:uppercase}.uk-description-list>dt:nth-child(n+2){margin-top:20px}.uk-description-list-divider>dt:nth-child(n+2){margin-top:20px;padding-top:20px;border-top:1px solid #E5E5E5}.uk-table{border-collapse:collapse;border-spacing:0;width:100%;margin-bottom:20px}*+.uk-table{margin-top:20px}.uk-table th{padding:16px 12px;text-align:left;vertical-align:bottom;font-size:.875rem;font-weight:normal;color:#999;text-transform:uppercase}.uk-table td{padding:16px 12px;vertical-align:top}.uk-table td>:last-child{margin-bottom:0}.uk-table tfoot{font-size:.875rem}.uk-table caption{font-size:.875rem;text-align:left;color:#999}.uk-table>tr.uk-active,.uk-table tbody tr.uk-active{background:#ffd}.uk-table-middle,.uk-table-middle td{vertical-align:middle !important}.uk-table-divider>tr:not(:first-child),.uk-table-divider>:not(:first-child)>tr,.uk-table-divider>:first-child>tr:not(:first-child){border-top:1px solid #E5E5E5}.uk-table-striped>tr:nth-of-type(odd),.uk-table-striped tbody tr:nth-of-type(odd){background:#f8f8f8;border-top:1px solid #E5E5E5;border-bottom:1px solid #E5E5E5}.uk-table-hover>tr:hover,.uk-table-hover tbody tr:hover{background:#ffd}.uk-table-small th,.uk-table-small td{padding:10px 12px}.uk-table-large th,.uk-table-large td{padding:22px 12px}.uk-table-justify th:first-child,.uk-table-justify td:first-child{padding-left:0}.uk-table-justify th:last-child,.uk-table-justify td:last-child{padding-right:0}.uk-table-shrink{width:1px}.uk-table-expand{min-width:150px}.uk-table-link{padding:0 !important}.uk-table-link>a{display:block;padding:16px 12px}.uk-table-small .uk-table-link>a{padding:10px 12px}@media (max-width: 959px){.uk-table-responsive,.uk-table-responsive tbody,.uk-table-responsive th,.uk-table-responsive td,.uk-table-responsive tr{display:block}.uk-table-responsive thead{display:none}.uk-table-responsive th,.uk-table-responsive td{width:auto !important;max-width:none !important;min-width:0 !important;overflow:visible !important;white-space:normal !important}.uk-table-responsive th:not(:first-child):not(.uk-table-link),.uk-table-responsive td:not(:first-child):not(.uk-table-link),.uk-table-responsive .uk-table-link:not(:first-child)>a{padding-top:5px !important}.uk-table-responsive th:not(:last-child):not(.uk-table-link),.uk-table-responsive td:not(:last-child):not(.uk-table-link),.uk-table-responsive .uk-table-link:not(:last-child)>a{padding-bottom:5px !important}.uk-table-justify.uk-table-responsive th,.uk-table-justify.uk-table-responsive td{padding-left:0;padding-right:0}}.uk-table tbody tr{transition:background-color 0.1s linear}.uk-icon{margin:0;border:none;border-radius:0;overflow:visible;font:inherit;color:inherit;text-transform:none;padding:0;background-color:transparent;display:inline-block;fill:currentcolor;line-height:0}button.uk-icon:not(:disabled){cursor:pointer}.uk-icon::-moz-focus-inner{border:0;padding:0}.uk-icon [fill*='#']:not(.uk-preserve),.uk-icon [FILL*='#']:not(.uk-preserve){fill:currentcolor}.uk-icon [stroke*='#']:not(.uk-preserve),.uk-icon [STROKE*='#']:not(.uk-preserve){stroke:currentcolor}.uk-icon>*{transform:translate(0, 0)}.uk-icon-image{width:20px;height:20px;background-position:50% 50%;background-repeat:no-repeat;background-size:contain;vertical-align:middle}.uk-icon-link{color:#999}.uk-icon-link:hover,.uk-icon-link:focus{color:#666;outline:none}.uk-icon-link:active,.uk-active>.uk-icon-link{color:#595959}.uk-icon-button{box-sizing:border-box;width:36px;height:36px;border-radius:500px;background:#f8f8f8;color:#999;vertical-align:middle;display:inline-flex;justify-content:center;align-items:center;transition:0.1s ease-in-out;transition-property:color, background-color}.uk-icon-button:hover,.uk-icon-button:focus{background-color:#ebebeb;color:#666;outline:none}.uk-icon-button:active,.uk-active>.uk-icon-button{background-color:#dfdfdf;color:#666}.uk-range{box-sizing:border-box;margin:0;vertical-align:middle;max-width:100%;width:100%;-webkit-appearance:none;background:transparent;padding:0}.uk-range:focus{outline:none}.uk-range::-moz-focus-outer{border:none}.uk-range::-ms-track{height:15px;background:transparent;border-color:transparent;color:transparent}.uk-range:not(:disabled)::-webkit-slider-thumb{cursor:pointer}.uk-range:not(:disabled)::-moz-range-thumb{cursor:pointer}.uk-range:not(:disabled)::-ms-thumb{cursor:pointer}.uk-range::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-7px;height:15px;width:15px;border-radius:500px;background:#fff;border:1px solid #ccc}.uk-range::-moz-range-thumb{border:none;height:15px;width:15px;border-radius:500px;background:#fff;border:1px solid #ccc}.uk-range::-ms-thumb{margin-top:0}.uk-range::-ms-thumb{border:none;height:15px;width:15px;border-radius:500px;background:#fff;border:1px solid #ccc}.uk-range::-ms-tooltip{display:none}.uk-range::-webkit-slider-runnable-track{height:3px;background:#ebebeb;border-radius:500px}.uk-range:focus::-webkit-slider-runnable-track,.uk-range:active::-webkit-slider-runnable-track{background:#d2d2d2}.uk-range::-moz-range-track{height:3px;background:#ebebeb;border-radius:500px}.uk-range:focus::-moz-range-track{background:#d2d2d2}.uk-range::-ms-fill-lower,.uk-range::-ms-fill-upper{height:3px;background:#ebebeb;border-radius:500px}.uk-range:focus::-ms-fill-lower,.uk-range:focus::-ms-fill-upper{background:#d2d2d2}.uk-input,.uk-select,.uk-textarea,.uk-radio,.uk-checkbox{box-sizing:border-box;margin:0;border-radius:0;font:inherit}.uk-input{overflow:visible}.uk-select{text-transform:none}.uk-select optgroup{font:inherit;font-weight:bold}.uk-textarea{overflow:auto}.uk-input[type="search"]::-webkit-search-cancel-button,.uk-input[type="search"]::-webkit-search-decoration{-webkit-appearance:none}.uk-input[type="number"]::-webkit-inner-spin-button,.uk-input[type="number"]::-webkit-outer-spin-button{height:auto}.uk-input::-moz-placeholder,.uk-textarea::-moz-placeholder{opacity:1}.uk-radio:not(:disabled),.uk-checkbox:not(:disabled){cursor:pointer}.uk-fieldset{border:none;margin:0;padding:0}.uk-input,.uk-textarea{-webkit-appearance:none}.uk-input,.uk-select,.uk-textarea{max-width:100%;width:100%;border:0 none;padding:0 10px;background:#fff;color:#666;border:1px solid #E5E5E5;transition:0.2s ease-in-out;transition-property:color, background-color, border}.uk-input,.uk-select:not([multiple]):not([size]){height:40px;vertical-align:middle;display:inline-block}.uk-input:not(input),.uk-select:not(select){line-height:38px}.uk-select[multiple],.uk-select[size],.uk-textarea{padding-top:4px;padding-bottom:4px;vertical-align:top}.uk-input:focus,.uk-select:focus,.uk-textarea:focus{outline:none;background-color:#fff;color:#666;border-color:#7289DA}.uk-input:disabled,.uk-select:disabled,.uk-textarea:disabled{background-color:#f8f8f8;color:#999;border-color:#E5E5E5}.uk-input:-ms-input-placeholder{color:#999 !important}.uk-input::placeholder{color:#999}.uk-textarea:-ms-input-placeholder{color:#999 !important}.uk-textarea::placeholder{color:#999}.uk-form-small{font-size:.875rem}.uk-form-small:not(textarea):not([multiple]):not([size]){height:30px;padding-left:8px;padding-right:8px}.uk-form-small:not(select):not(input):not(textarea){line-height:28px}.uk-form-large{font-size:1.25rem}.uk-form-large:not(textarea):not([multiple]):not([size]){height:55px;padding-left:12px;padding-right:12px}.uk-form-large:not(select):not(input):not(textarea){line-height:53px}.uk-form-danger,.uk-form-danger:focus{color:#f0506e;border-color:#f0506e}.uk-form-success,.uk-form-success:focus{color:#32d296;border-color:#32d296}.uk-form-blank{background:none;border-color:transparent}.uk-form-blank:focus{border-color:#E5E5E5;border-style:dashed}input.uk-form-width-xsmall{width:50px}select.uk-form-width-xsmall{width:75px}.uk-form-width-small{width:130px}.uk-form-width-medium{width:200px}.uk-form-width-large{width:500px}.uk-select:not([multiple]):not([size]){-webkit-appearance:none;-moz-appearance:none;padding-right:20px;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A");background-repeat:no-repeat;background-position:100% 50%}.uk-select:not([multiple]):not([size])::-ms-expand{display:none}.uk-select:not([multiple]):not([size]) option{color:#444}.uk-select:not([multiple]):not([size]):disabled{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A")}.uk-radio,.uk-checkbox{display:inline-block;height:16px;width:16px;overflow:hidden;margin-top:-4px;vertical-align:middle;-webkit-appearance:none;-moz-appearance:none;background-color:rgba(0,0,0,0);background-repeat:no-repeat;background-position:50% 50%;border:1px solid #ccc;transition:0.2s ease-in-out;transition-property:background-color, border}.uk-radio{border-radius:50%}.uk-radio:focus,.uk-checkbox:focus{outline:none;border-color:#7289DA}.uk-radio:checked,.uk-checkbox:checked,.uk-checkbox:indeterminate{background-color:#7289DA;border-color:rgba(0,0,0,0)}.uk-radio:checked:focus,.uk-checkbox:checked:focus,.uk-checkbox:indeterminate:focus{background-color:#4a67cf}.uk-radio:checked{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23fff%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-checkbox:checked{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23fff%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A")}.uk-checkbox:indeterminate{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23fff%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-radio:disabled,.uk-checkbox:disabled{background-color:#f8f8f8;border-color:#E5E5E5}.uk-radio:disabled:checked{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23999%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-checkbox:disabled:checked{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23999%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A")}.uk-checkbox:disabled:indeterminate{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23999%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-legend{width:100%;color:inherit;padding:0;font-size:1.5rem;line-height:1.4}.uk-form-custom{display:inline-block;position:relative;max-width:100%;vertical-align:middle}.uk-form-custom select,.uk-form-custom input[type="file"]{position:absolute;top:0;z-index:1;width:100%;height:100%;left:0;-webkit-appearance:none;opacity:0;cursor:pointer}.uk-form-custom input[type="file"]{font-size:500px;overflow:hidden}.uk-form-label{color:#333;font-size:.875rem}.uk-form-stacked .uk-form-label{display:block;margin-bottom:5px}@media (max-width: 959px){.uk-form-horizontal .uk-form-label{display:block;margin-bottom:5px}}@media (min-width: 960px){.uk-form-horizontal .uk-form-label{width:200px;margin-top:7px;float:left}.uk-form-horizontal .uk-form-controls{margin-left:215px}.uk-form-horizontal .uk-form-controls-text{padding-top:7px}}.uk-form-icon{position:absolute;top:0;bottom:0;left:0;width:40px;display:inline-flex;justify-content:center;align-items:center;color:#999}.uk-form-icon:hover{color:#666}.uk-form-icon:not(a):not(button):not(input){pointer-events:none}.uk-form-icon:not(.uk-form-icon-flip) ~ .uk-input{padding-left:40px !important}.uk-form-icon-flip{right:0;left:auto}.uk-form-icon-flip ~ .uk-input{padding-right:40px !important}.uk-button{margin:0;border:none;border-radius:0;overflow:visible;font:inherit;color:inherit;text-transform:none;display:inline-block;box-sizing:border-box;padding:0 30px;vertical-align:middle;font-size:.875rem;line-height:38px;text-align:center;text-decoration:none;text-transform:uppercase;transition:0.1s ease-in-out;transition-property:color, background-color, border-color}.uk-button:not(:disabled){cursor:pointer}.uk-button::-moz-focus-inner{border:0;padding:0}.uk-button:hover{text-decoration:none}.uk-button:focus{outline:none}.uk-button-default{background-color:rgba(0,0,0,0);color:#333;border:1px solid #E5E5E5}.uk-button-default:hover,.uk-button-default:focus{background-color:rgba(0,0,0,0);color:#333;border-color:#b2b2b2}.uk-button-default:active,.uk-button-default.uk-active{background-color:rgba(0,0,0,0);color:#333;border-color:#999}.uk-button-primary{background-color:#7289DA;color:#fff;border:1px solid transparent}.uk-button-primary:hover,.uk-button-primary:focus{background-color:#5e78d5;color:#fff}.uk-button-primary:active,.uk-button-primary.uk-active{background-color:#4a67cf;color:#fff}.uk-button-secondary{background-color:#222;color:#fff;border:1px solid transparent}.uk-button-secondary:hover,.uk-button-secondary:focus{background-color:#151515;color:#fff}.uk-button-secondary:active,.uk-button-secondary.uk-active{background-color:#090909;color:#fff}.uk-button-danger{background-color:#f0506e;color:#fff;border:1px solid transparent}.uk-button-danger:hover,.uk-button-danger:focus{background-color:#ee395b;color:#fff}.uk-button-danger:active,.uk-button-danger.uk-active{background-color:#ec2147;color:#fff}.uk-button-default:disabled,.uk-button-primary:disabled,.uk-button-secondary:disabled,.uk-button-danger:disabled{background-color:rgba(0,0,0,0);color:#999;border-color:#E5E5E5}.uk-button-small{padding:0 15px;line-height:28px;font-size:.875rem}.uk-button-large{padding:0 40px;line-height:53px;font-size:.875rem}.uk-button-text{padding:0;line-height:1.5;background:none;color:#333;position:relative}.uk-button-text::before{content:"";position:absolute;bottom:0;left:0;right:100%;border-bottom:1px solid #333;transition:right 0.3s ease-out}.uk-button-text:hover,.uk-button-text:focus{color:#333}.uk-button-text:hover::before,.uk-button-text:focus::before{right:0}.uk-button-text:disabled{color:#999}.uk-button-text:disabled::before{display:none}.uk-button-link{padding:0;line-height:1.5;background:none;color:#1e87f0}.uk-button-link:hover,.uk-button-link:focus{color:#0f6ecd;text-decoration:underline}.uk-button-link:disabled{color:#999;text-decoration:none}.uk-button-group{display:inline-flex;vertical-align:middle;position:relative}.uk-button-group>.uk-button:nth-child(n+2),.uk-button-group>div:nth-child(n+2) .uk-button{margin-left:-1px}.uk-button-group .uk-button:hover,.uk-button-group .uk-button:focus,.uk-button-group .uk-button:active,.uk-button-group .uk-button.uk-active{position:relative;z-index:1}.uk-section{box-sizing:border-box;padding-top:40px;padding-bottom:40px}@media (min-width: 960px){.uk-section{padding-top:70px;padding-bottom:70px}}.uk-section::before,.uk-section::after{content:"";display:table}.uk-section::after{clear:both}.uk-section>:last-child{margin-bottom:0}.uk-section-xsmall{padding-top:20px;padding-bottom:20px}.uk-section-small{padding-top:40px;padding-bottom:40px}.uk-section-large{padding-top:70px;padding-bottom:70px}@media (min-width: 960px){.uk-section-large{padding-top:140px;padding-bottom:140px}}.uk-section-xlarge{padding-top:140px;padding-bottom:140px}@media (min-width: 960px){.uk-section-xlarge{padding-top:210px;padding-bottom:210px}}.uk-section-default{background:#fff}.uk-section-muted{background:#f8f8f8}.uk-section-primary{background:#7289DA}.uk-section-secondary{background:#222}.uk-container{box-sizing:content-box;max-width:1200px;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px}@media (min-width: 640px){.uk-container{padding-left:30px;padding-right:30px}}@media (min-width: 960px){.uk-container{padding-left:40px;padding-right:40px}}.uk-container::before,.uk-container::after{content:"";display:table}.uk-container::after{clear:both}.uk-container>:last-child{margin-bottom:0}.uk-container .uk-container{padding-left:0;padding-right:0}.uk-container-small{max-width:900px}.uk-container-large{max-width:1600px}.uk-container-expand{max-width:none}.uk-grid{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style:none}.uk-grid>*{margin:0}.uk-grid>*>:last-child{margin-bottom:0}.uk-grid{margin-left:-30px}.uk-grid>*{padding-left:30px}.uk-grid+.uk-grid,.uk-grid>.uk-grid-margin,*+.uk-grid-margin{margin-top:30px}@media (min-width: 1200px){.uk-grid{margin-left:-40px}.uk-grid>*{padding-left:40px}.uk-grid+.uk-grid,.uk-grid>.uk-grid-margin,*+.uk-grid-margin{margin-top:40px}}.uk-grid-small{margin-left:-15px}.uk-grid-small>*{padding-left:15px}.uk-grid+.uk-grid-small,.uk-grid-small>.uk-grid-margin,*+.uk-grid-margin-small{margin-top:15px}.uk-grid-medium{margin-left:-30px}.uk-grid-medium>*{padding-left:30px}.uk-grid+.uk-grid-medium,.uk-grid-medium>.uk-grid-margin,*+.uk-grid-margin-medium{margin-top:30px}.uk-grid-large{margin-left:-40px}.uk-grid-large>*{padding-left:40px}.uk-grid+.uk-grid-large,.uk-grid-large>.uk-grid-margin,*+.uk-grid-margin-large{margin-top:40px}@media (min-width: 1200px){.uk-grid-large{margin-left:-70px}.uk-grid-large>*{padding-left:70px}.uk-grid+.uk-grid-large,.uk-grid-large>.uk-grid-margin,*+.uk-grid-margin-large{margin-top:70px}}.uk-grid-collapse{margin-left:0}.uk-grid-collapse>*{padding-left:0}.uk-grid+.uk-grid-collapse,.uk-grid-collapse>.uk-grid-margin{margin-top:0}.uk-grid-divider>*{position:relative}.uk-grid-divider>:not(.uk-first-column)::before{content:"";position:absolute;top:0;bottom:0;border-left:1px solid #E5E5E5}.uk-grid-divider.uk-grid-stack>.uk-grid-margin::before{content:"";position:absolute;left:0;right:0;border-top:1px solid #E5E5E5}.uk-grid-divider{margin-left:-60px}.uk-grid-divider>*{padding-left:60px}.uk-grid-divider>:not(.uk-first-column)::before{left:30px}.uk-grid-divider.uk-grid-stack>.uk-grid-margin{margin-top:60px}.uk-grid-divider.uk-grid-stack>.uk-grid-margin::before{top:-30px;left:60px}@media (min-width: 1200px){.uk-grid-divider{margin-left:-80px}.uk-grid-divider>*{padding-left:80px}.uk-grid-divider>:not(.uk-first-column)::before{left:40px}.uk-grid-divider.uk-grid-stack>.uk-grid-margin{margin-top:80px}.uk-grid-divider.uk-grid-stack>.uk-grid-margin::before{top:-40px;left:80px}}.uk-grid-divider.uk-grid-small{margin-left:-30px}.uk-grid-divider.uk-grid-small>*{padding-left:30px}.uk-grid-divider.uk-grid-small>:not(.uk-first-column)::before{left:15px}.uk-grid-divider.uk-grid-small.uk-grid-stack>.uk-grid-margin{margin-top:30px}.uk-grid-divider.uk-grid-small.uk-grid-stack>.uk-grid-margin::before{top:-15px;left:30px}.uk-grid-divider.uk-grid-medium{margin-left:-60px}.uk-grid-divider.uk-grid-medium>*{padding-left:60px}.uk-grid-divider.uk-grid-medium>:not(.uk-first-column)::before{left:30px}.uk-grid-divider.uk-grid-medium.uk-grid-stack>.uk-grid-margin{margin-top:60px}.uk-grid-divider.uk-grid-medium.uk-grid-stack>.uk-grid-margin::before{top:-30px;left:60px}.uk-grid-divider.uk-grid-large{margin-left:-80px}.uk-grid-divider.uk-grid-large>*{padding-left:80px}.uk-grid-divider.uk-grid-large>:not(.uk-first-column)::before{left:40px}.uk-grid-divider.uk-grid-large.uk-grid-stack>.uk-grid-margin{margin-top:80px}.uk-grid-divider.uk-grid-large.uk-grid-stack>.uk-grid-margin::before{top:-40px;left:80px}@media (min-width: 1200px){.uk-grid-divider.uk-grid-large{margin-left:-140px}.uk-grid-divider.uk-grid-large>*{padding-left:140px}.uk-grid-divider.uk-grid-large>:not(.uk-first-column)::before{left:70px}.uk-grid-divider.uk-grid-large.uk-grid-stack>.uk-grid-margin{margin-top:140px}.uk-grid-divider.uk-grid-large.uk-grid-stack>.uk-grid-margin::before{top:-70px;left:140px}}.uk-grid-match>*,.uk-grid-item-match{display:flex;flex-wrap:wrap}.uk-grid-match>*>:not([class*='uk-width']),.uk-grid-item-match>:not([class*='uk-width']){box-sizing:border-box;width:100%;flex:auto}.uk-tile{position:relative;box-sizing:border-box;padding-left:15px;padding-right:15px;padding-top:40px;padding-bottom:40px}@media (min-width: 640px){.uk-tile{padding-left:30px;padding-right:30px}}@media (min-width: 960px){.uk-tile{padding-left:40px;padding-right:40px;padding-top:70px;padding-bottom:70px}}.uk-tile::before,.uk-tile::after{content:"";display:table}.uk-tile::after{clear:both}.uk-tile>:last-child{margin-bottom:0}.uk-tile-xsmall{padding-top:20px;padding-bottom:20px}.uk-tile-small{padding-top:40px;padding-bottom:40px}.uk-tile-large{padding-top:70px;padding-bottom:70px}@media (min-width: 960px){.uk-tile-large{padding-top:140px;padding-bottom:140px}}.uk-tile-xlarge{padding-top:140px;padding-bottom:140px}@media (min-width: 960px){.uk-tile-xlarge{padding-top:210px;padding-bottom:210px}}.uk-tile-default{background:#fff}.uk-tile-muted{background:#f8f8f8}.uk-tile-primary{background:#7289DA}.uk-tile-secondary{background:#222}.uk-card{position:relative;box-sizing:border-box;color:#000}.uk-card-body{padding:30px 30px}.uk-card-header{padding:15px 30px}.uk-card-footer{padding:15px 30px}@media (min-width: 1200px){.uk-card-body{padding:40px 40px}.uk-card-header{padding:20px 40px}.uk-card-footer{padding:20px 40px}}.uk-card-body::before,.uk-card-body::after,.uk-card-header::before,.uk-card-header::after,.uk-card-footer::before,.uk-card-footer::after{content:"";display:table}.uk-card-body::after,.uk-card-header::after,.uk-card-footer::after{clear:both}.uk-card-body>:last-child,.uk-card-header>:last-child,.uk-card-footer>:last-child{margin-bottom:0}.uk-card-title{font-size:1.5rem;line-height:1.4}.uk-card-badge{position:absolute;top:30px;right:30px;z-index:1}.uk-card-badge:first-child+*{margin-top:0}.uk-card-hover:not(.uk-card-default):not(.uk-card-primary):not(.uk-card-secondary):hover{background:#fff;box-shadow:0 14px 25px rgba(0,0,0,0.16)}.uk-card-default{background:#fff;color:#666;box-shadow:0 5px 15px rgba(0,0,0,0.08)}.uk-card-default .uk-card-title{color:#333}.uk-card-default.uk-card-hover:hover{background-color:#fff;box-shadow:0 14px 25px rgba(0,0,0,0.16)}.uk-card-default .uk-card-header{border-bottom:1px solid #E5E5E5}.uk-card-default .uk-card-footer{border-top:1px solid #E5E5E5}.uk-card-primary{background:#7289DA;color:#fff;box-shadow:0 5px 15px rgba(0,0,0,0.08)}.uk-card-primary .uk-card-title{color:#fff}.uk-card-primary.uk-card-hover:hover{background-color:#7289DA;box-shadow:0 14px 25px rgba(0,0,0,0.16)}.uk-card-secondary{background:#222;color:#fff;box-shadow:0 5px 15px rgba(0,0,0,0.08)}.uk-card-secondary .uk-card-title{color:#fff}.uk-card-secondary.uk-card-hover:hover{background-color:#222;box-shadow:0 14px 25px rgba(0,0,0,0.16)}.uk-card-small.uk-card-body,.uk-card-small .uk-card-body{padding:20px 20px}.uk-card-small .uk-card-header{padding:13px 20px}.uk-card-small .uk-card-footer{padding:13px 20px}@media (min-width: 1200px){.uk-card-large.uk-card-body,.uk-card-large .uk-card-body{padding:70px 70px}.uk-card-large .uk-card-header{padding:35px 70px}.uk-card-large .uk-card-footer{padding:35px 70px}}.uk-card-body>.uk-nav-default{margin-left:-30px;margin-right:-30px}.uk-card-body>.uk-nav-default:only-child{margin-top:-15px;margin-bottom:-15px}.uk-card-body .uk-nav-default>li>a,.uk-card-body .uk-nav-default .uk-nav-header,.uk-card-body .uk-nav-default .uk-nav-divider{padding-left:30px;padding-right:30px}.uk-card-body .uk-nav-default .uk-nav-sub{padding-left:45px}@media (min-width: 1200px){.uk-card-body>.uk-nav-default{margin-left:-40px;margin-right:-40px}.uk-card-body>.uk-nav-default:only-child{margin-top:-25px;margin-bottom:-25px}.uk-card-body .uk-nav-default>li>a,.uk-card-body .uk-nav-default .uk-nav-header,.uk-card-body .uk-nav-default .uk-nav-divider{padding-left:40px;padding-right:40px}.uk-card-body .uk-nav-default .uk-nav-sub{padding-left:55px}}.uk-card-small>.uk-nav-default{margin-left:-20px;margin-right:-20px}.uk-card-small>.uk-nav-default:only-child{margin-top:-5px;margin-bottom:-5px}.uk-card-small .uk-nav-default>li>a,.uk-card-small .uk-nav-default .uk-nav-header,.uk-card-small .uk-nav-default .uk-nav-divider{padding-left:20px;padding-right:20px}.uk-card-small .uk-nav-default .uk-nav-sub{padding-left:35px}@media (min-width: 1200px){.uk-card-large>.uk-nav-default{margin:0}.uk-card-large>.uk-nav-default:only-child{margin:0}.uk-card-large .uk-nav-default>li>a,.uk-card-large .uk-nav-default .uk-nav-header,.uk-card-large .uk-nav-default .uk-nav-divider{padding-left:0;padding-right:0}.uk-card-large .uk-nav-default .uk-nav-sub{padding-left:15px}}.uk-close{color:#999;transition:0.1s ease-in-out;transition-property:color, opacity}.uk-close:hover,.uk-close:focus{color:#666;outline:none}.uk-spinner>*{animation:uk-spinner-rotate 1.4s linear infinite}@keyframes uk-spinner-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(270deg)}}.uk-spinner>*>*{stroke-dasharray:88px;stroke-dashoffset:0;transform-origin:center;animation:uk-spinner-dash 1.4s ease-in-out infinite;stroke-width:1;stroke-linecap:round}@keyframes uk-spinner-dash{0%{stroke-dashoffset:88px}50%{stroke-dashoffset:22px;transform:rotate(135deg)}100%{stroke-dashoffset:88px;transform:rotate(450deg)}}.uk-totop{padding:5px;color:#999;transition:color 0.1s ease-in-out}.uk-totop:hover,.uk-totop:focus{color:#666;outline:none}.uk-totop:active{color:#333}.uk-marker{padding:5px;background:#222;color:#fff;border-radius:500px}.uk-marker:hover,.uk-marker:focus{color:#fff;outline:none}.uk-alert{position:relative;margin-bottom:20px;padding:15px 29px 15px 15px;background:#f8f8f8;color:#666}*+.uk-alert{margin-top:20px}.uk-alert>:last-child{margin-bottom:0}.uk-alert-close{position:absolute;top:20px;right:15px;color:inherit;opacity:.4}.uk-alert-close:first-child+*{margin-top:0}.uk-alert-close:hover,.uk-alert-close:focus{color:inherit;opacity:.8}.uk-alert-primary{background:#fbfcfe;color:#7289DA}.uk-alert-success{background:#edfbf6;color:#32d296}.uk-alert-warning{background:#fef5ee;color:#faa05a}.uk-alert-danger{background:#fef4f6;color:#f0506e}.uk-alert h1,.uk-alert h2,.uk-alert h3,.uk-alert h4,.uk-alert h5,.uk-alert h6{color:inherit}.uk-alert a:not([class]){color:inherit;text-decoration:underline}.uk-alert a:not([class]):hover{color:inherit;text-decoration:underline}.uk-badge{box-sizing:border-box;min-width:22px;height:22px;padding:0 5px;border-radius:500px;vertical-align:middle;background:#7289DA;color:#fff;font-size:.875rem;display:inline-flex;justify-content:center;align-items:center}.uk-badge:hover,.uk-badge:focus{color:#fff;text-decoration:none;outline:none}.uk-label{display:inline-block;padding:0 10px;background:#7289DA;line-height:1.5;font-size:.875rem;color:#fff;vertical-align:middle;white-space:nowrap;border-radius:2px;text-transform:uppercase}.uk-label-success{background-color:#32d296;color:#fff}.uk-label-warning{background-color:#faa05a;color:#fff}.uk-label-danger{background-color:#f0506e;color:#fff}.uk-overlay{padding:30px 30px}.uk-overlay>:last-child{margin-bottom:0}.uk-overlay-default{background:rgba(255,255,255,0.8)}.uk-overlay-primary{background:rgba(34,34,34,0.8)}.uk-article::before,.uk-article::after{content:"";display:table}.uk-article::after{clear:both}.uk-article>:last-child{margin-bottom:0}.uk-article+.uk-article{margin-top:70px}.uk-article-title{font-size:2.23125rem;line-height:1.2}@media (min-width: 960px){.uk-article-title{font-size:2.625rem}}.uk-article-meta{font-size:.875rem;line-height:1.4;color:#999}.uk-article-meta a{color:#999}.uk-article-meta a:hover{color:#666;text-decoration:none}.uk-comment-body{overflow-wrap:break-word;word-wrap:break-word}.uk-comment-header{margin-bottom:20px}.uk-comment-body::before,.uk-comment-body::after,.uk-comment-header::before,.uk-comment-header::after{content:"";display:table}.uk-comment-body::after,.uk-comment-header::after{clear:both}.uk-comment-body>:last-child,.uk-comment-header>:last-child{margin-bottom:0}.uk-comment-title{font-size:1.25rem;line-height:1.4}.uk-comment-meta{font-size:.875rem;line-height:1.4;color:#999}.uk-comment-list{padding:0;list-style:none}.uk-comment-list>:nth-child(n+2){margin-top:70px}.uk-comment-list .uk-comment ~ ul{margin:70px 0 0 0;padding-left:30px;list-style:none}@media (min-width: 960px){.uk-comment-list .uk-comment ~ ul{padding-left:100px}}.uk-comment-list .uk-comment ~ ul>:nth-child(n+2){margin-top:70px}.uk-comment-primary{padding:30px;background-color:#f8f8f8}.uk-search{display:inline-block;position:relative;max-width:100%;margin:0}.uk-search-input::-webkit-search-cancel-button,.uk-search-input::-webkit-search-decoration{-webkit-appearance:none}.uk-search-input::-moz-placeholder{opacity:1}.uk-search-input{box-sizing:border-box;margin:0;border-radius:0;font:inherit;overflow:visible;-webkit-appearance:none;vertical-align:middle;width:100%;border:none;color:#666}.uk-search-input:focus{outline:none}.uk-search-input:-ms-input-placeholder{color:#999 !important}.uk-search-input::placeholder{color:#999}.uk-search-icon:focus{outline:none}.uk-search .uk-search-icon{position:absolute;top:0;bottom:0;left:0;display:inline-flex;justify-content:center;align-items:center;color:#999}.uk-search .uk-search-icon:hover{color:#999}.uk-search .uk-search-icon:not(a):not(button):not(input){pointer-events:none}.uk-search .uk-search-icon-flip{right:0;left:auto}.uk-search-default{width:180px}.uk-search-default .uk-search-input{height:40px;padding-left:6px;padding-right:6px;background:rgba(0,0,0,0);border:1px solid #E5E5E5}.uk-search-default .uk-search-input:focus{background-color:rgba(0,0,0,0)}.uk-search-default .uk-search-icon{width:40px}.uk-search-default .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input{padding-left:40px}.uk-search-default .uk-search-icon-flip ~ .uk-search-input{padding-right:40px}.uk-search-navbar{width:400px}.uk-search-navbar .uk-search-input{height:40px;background:rgba(0,0,0,0);font-size:1.5rem}.uk-search-navbar .uk-search-icon{width:40px}.uk-search-navbar .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input{padding-left:40px}.uk-search-navbar .uk-search-icon-flip ~ .uk-search-input{padding-right:40px}.uk-search-large{width:500px}.uk-search-large .uk-search-input{height:80px;background:rgba(0,0,0,0);font-size:2.625rem}.uk-search-large .uk-search-icon{width:80px}.uk-search-large .uk-search-icon:not(.uk-search-icon-flip) ~ .uk-search-input{padding-left:80px}.uk-search-large .uk-search-icon-flip ~ .uk-search-input{padding-right:80px}.uk-search-toggle{color:#999}.uk-search-toggle:hover,.uk-search-toggle:focus{color:#666}.uk-nav,.uk-nav ul{margin:0;padding:0;list-style:none}.uk-nav li>a{display:block;text-decoration:none}.uk-nav li>a:focus{outline:none}.uk-nav>li>a{padding:5px 0}ul.uk-nav-sub{padding:5px 0 5px 15px}.uk-nav-sub ul{padding-left:15px}.uk-nav-sub a{padding:2px 0}.uk-nav-parent-icon>.uk-parent>a::after{content:"";width:1.5em;height:1.5em;float:right;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23666%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E");background-repeat:no-repeat;background-position:50% 50%}.uk-nav-parent-icon>.uk-parent.uk-open>a::after{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22%23666%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-nav-header{padding:5px 0;text-transform:uppercase;font-size:.875rem}.uk-nav-header:not(:first-child){margin-top:20px}.uk-nav-divider{margin:5px 0}.uk-nav-default{font-size:.875rem}.uk-nav-default>li>a{color:#999}.uk-nav-default>li>a:hover,.uk-nav-default>li>a:focus{color:#666}.uk-nav-default>li.uk-active>a{color:#333}.uk-nav-default .uk-nav-header{color:#333}.uk-nav-default .uk-nav-divider{border-top:1px solid #E5E5E5}.uk-nav-default .uk-nav-sub a{color:#999}.uk-nav-default .uk-nav-sub a:hover,.uk-nav-default .uk-nav-sub a:focus{color:#666}.uk-nav-primary>li>a{font-size:1.5rem;line-height:1.5;color:#999}.uk-nav-primary>li>a:hover,.uk-nav-primary>li>a:focus{color:#666}.uk-nav-primary>li.uk-active>a{color:#333}.uk-nav-primary .uk-nav-header{color:#333}.uk-nav-primary .uk-nav-divider{border-top:1px solid #E5E5E5}.uk-nav-primary .uk-nav-sub a{color:#999}.uk-nav-primary .uk-nav-sub a:hover,.uk-nav-primary .uk-nav-sub a:focus{color:#666}.uk-nav-center{text-align:center}.uk-nav-center .uk-nav-sub,.uk-nav-center .uk-nav-sub ul{padding-left:0}.uk-nav-center.uk-nav-parent-icon>.uk-parent>a::after{position:absolute}.uk-navbar{display:flex;position:relative}.uk-navbar-container:not(.uk-navbar-transparent){background:#f8f8f8}.uk-navbar-container>::before,.uk-navbar-container>::after{display:none !important}.uk-navbar-left,.uk-navbar-right,.uk-navbar-center,.uk-navbar-center-left>*,.uk-navbar-center-right>*{display:flex;align-items:center}.uk-navbar-right{margin-left:auto}.uk-navbar-center:only-child{margin-left:auto;margin-right:auto;position:relative}.uk-navbar-center:not(:only-child){position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);z-index:990}.uk-navbar-center:not(:only-child) .uk-navbar-nav>li>a,.uk-navbar-center:not(:only-child) .uk-navbar-item,.uk-navbar-center:not(:only-child) .uk-navbar-toggle{white-space:nowrap}.uk-navbar-center-left,.uk-navbar-center-right{position:absolute;top:0}.uk-navbar-center-left{right:100%}.uk-navbar-center-right{left:100%}[class*='uk-navbar-center-'] .uk-navbar-nav>li>a,[class*='uk-navbar-center-'] .uk-navbar-item,[class*='uk-navbar-center-'] .uk-navbar-toggle{white-space:nowrap}.uk-navbar-nav{display:flex;margin:0;padding:0;list-style:none}.uk-navbar-left,.uk-navbar-right,.uk-navbar-center:only-child{flex-wrap:wrap}.uk-navbar-nav>li>a,.uk-navbar-item,.uk-navbar-toggle{display:flex;justify-content:center;align-items:center;box-sizing:border-box;height:80px;padding:0 15px;font-size:.875rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;text-decoration:none}.uk-navbar-nav>li>a{color:#999;text-transform:uppercase;transition:0.1s ease-in-out;transition-property:color, background-color}.uk-navbar-nav>li:hover>a,.uk-navbar-nav>li>a:focus,.uk-navbar-nav>li>a.uk-open{color:#666;outline:none}.uk-navbar-nav>li>a:active{color:#333}.uk-navbar-nav>li.uk-active>a{color:#333}.uk-navbar-item{color:#666}.uk-navbar-toggle{color:#999}.uk-navbar-toggle:hover,.uk-navbar-toggle:focus,.uk-navbar-toggle.uk-open{color:#666;outline:none;text-decoration:none}.uk-navbar-subtitle{font-size:.875rem}.uk-navbar-dropdown{display:none;position:absolute;z-index:1020;box-sizing:border-box;width:200px;padding:25px;background:#fff;color:#666;box-shadow:0 5px 12px rgba(0,0,0,0.15)}.uk-navbar-dropdown.uk-open{display:block}[class*='uk-navbar-dropdown-top']{margin-top:-15px}[class*='uk-navbar-dropdown-bottom']{margin-top:15px}[class*='uk-navbar-dropdown-left']{margin-left:-15px}[class*='uk-navbar-dropdown-right']{margin-left:15px}.uk-navbar-dropdown-grid{margin-left:-50px}.uk-navbar-dropdown-grid>*{padding-left:50px}.uk-navbar-dropdown-grid>.uk-grid-margin{margin-top:50px}.uk-navbar-dropdown-stack .uk-navbar-dropdown-grid>*{width:100% !important}.uk-navbar-dropdown-width-2:not(.uk-navbar-dropdown-stack){width:400px}.uk-navbar-dropdown-width-3:not(.uk-navbar-dropdown-stack){width:600px}.uk-navbar-dropdown-width-4:not(.uk-navbar-dropdown-stack){width:800px}.uk-navbar-dropdown-width-5:not(.uk-navbar-dropdown-stack){width:1000px}.uk-navbar-dropdown-dropbar{margin-top:0;margin-bottom:0;box-shadow:none}.uk-navbar-dropdown-nav{font-size:.875rem}.uk-navbar-dropdown-nav>li>a{color:#999}.uk-navbar-dropdown-nav>li>a:hover,.uk-navbar-dropdown-nav>li>a:focus{color:#666}.uk-navbar-dropdown-nav>li.uk-active>a{color:#333}.uk-navbar-dropdown-nav .uk-nav-header{color:#333}.uk-navbar-dropdown-nav .uk-nav-divider{border-top:1px solid #E5E5E5}.uk-navbar-dropdown-nav .uk-nav-sub a{color:#999}.uk-navbar-dropdown-nav .uk-nav-sub a:hover,.uk-navbar-dropdown-nav .uk-nav-sub a:focus{color:#666}.uk-navbar-dropbar{background:#fff}.uk-navbar-dropbar-slide{position:absolute;z-index:980;left:0;right:0;box-shadow:0 5px 7px rgba(0,0,0,0.05)}.uk-navbar-container>.uk-container .uk-navbar-left{margin-left:-15px;margin-right:-15px}.uk-navbar-container>.uk-container .uk-navbar-right{margin-right:-15px}.uk-navbar-dropdown-grid>*{position:relative}.uk-navbar-dropdown-grid>:not(.uk-first-column)::before{content:"";position:absolute;top:0;bottom:0;left:25px;border-left:1px solid #E5E5E5}.uk-navbar-dropdown-grid.uk-grid-stack>.uk-grid-margin::before{content:"";position:absolute;top:-25px;left:50px;right:0;border-top:1px solid #E5E5E5}.uk-subnav{display:flex;flex-wrap:wrap;margin-left:-20px;padding:0;list-style:none}.uk-subnav>*{flex:none;padding-left:20px;position:relative}.uk-subnav>*>:first-child{display:block;color:#999;font-size:.875rem;text-transform:uppercase;transition:0.1s ease-in-out;transition-property:color, background-color}.uk-subnav>*>a:hover,.uk-subnav>*>a:focus{color:#666;text-decoration:none;outline:none}.uk-subnav>.uk-active>a{color:#333}.uk-subnav-divider>*{display:flex;align-items:center}.uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before{content:"";height:1.5em;margin-left:0px;margin-right:20px;border-left:1px solid #E5E5E5}.uk-subnav-pill>*>:first-child{padding:5px 10px;background:rgba(0,0,0,0);color:#999}.uk-subnav-pill>*>a:hover,.uk-subnav-pill>*>a:focus{background-color:#f8f8f8;color:#666}.uk-subnav-pill>*>a:active{background-color:#f8f8f8;color:#666}.uk-subnav-pill>.uk-active>a{background-color:#7289DA;color:#fff}.uk-subnav>.uk-disabled>a{color:#999}.uk-breadcrumb{display:flex;flex-wrap:wrap;padding:0;list-style:none}.uk-breadcrumb>*{flex:none}.uk-breadcrumb>*>*{display:inline-block;font-size:.875rem;color:#999}.uk-breadcrumb>*>:hover,.uk-breadcrumb>*>:focus{color:#666;text-decoration:none}.uk-breadcrumb>:last-child>*{color:#666}.uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before{content:"/";display:inline-block;margin:0 20px;color:#999}.uk-pagination{display:flex;flex-wrap:wrap;margin-left:-20px;padding:0;list-style:none}.uk-pagination>*{flex:none;padding-left:20px;position:relative}.uk-pagination>*>*{display:block;color:#999;transition:color 0.1s ease-in-out}.uk-pagination>*>:hover,.uk-pagination>*>:focus{color:#666;text-decoration:none}.uk-pagination>.uk-active>*{color:#666}.uk-pagination>.uk-disabled>*{color:#999}.uk-tab{display:flex;flex-wrap:wrap;margin-left:-20px;padding:0;list-style:none;position:relative}.uk-tab::before{content:"";position:absolute;bottom:0;left:20px;right:0;border-bottom:1px solid #E5E5E5}.uk-tab>*{flex:none;padding-left:20px;position:relative}.uk-tab>*>a{display:block;text-align:center;padding:5px 10px;color:#999;border-bottom:1px solid transparent;font-size:.875rem;text-transform:uppercase;transition:color 0.1s ease-in-out}.uk-tab>*>a:hover,.uk-tab>*>a:focus{color:#666;text-decoration:none}.uk-tab>.uk-active>a{color:#333;border-color:#7289DA}.uk-tab>.uk-disabled>a{color:#999}.uk-tab-bottom::before{top:0;bottom:auto}.uk-tab-bottom>*>a{border-top:1px solid transparent;border-bottom:none}.uk-tab-left,.uk-tab-right{flex-direction:column;margin-left:0}.uk-tab-left>*,.uk-tab-right>*{padding-left:0}.uk-tab-left::before{top:0;bottom:0;left:auto;right:0;border-left:1px solid #E5E5E5;border-bottom:none}.uk-tab-right::before{top:0;bottom:0;left:0;right:auto;border-left:1px solid #E5E5E5;border-bottom:none}.uk-tab-left>*>a{text-align:left;border-right:1px solid transparent;border-bottom:none}.uk-tab-right>*>a{text-align:left;border-left:1px solid transparent;border-bottom:none}.uk-tab .uk-dropdown{margin-left:30px}.uk-slidenav{padding:5px 10px;color:rgba(102,102,102,0.5);transition:color 0.1s ease-in-out}.uk-slidenav:hover,.uk-slidenav:focus{color:rgba(102,102,102,0.9);outline:none}.uk-slidenav:active{color:rgba(102,102,102,0.5)}.uk-slidenav-large{padding:10px 10px}.uk-slidenav-container{display:flex}.uk-dotnav{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style:none;margin-left:-12px}.uk-dotnav>*{flex:none;padding-left:12px}.uk-dotnav>*>*{display:block;box-sizing:border-box;width:10px;height:10px;border-radius:50%;background:rgba(0,0,0,0);text-indent:100%;overflow:hidden;white-space:nowrap;border:1px solid rgba(102,102,102,0.4);transition:0.2s ease-in-out;transition-property:background-color, border-color}.uk-dotnav>*>:hover,.uk-dotnav>*>:focus{background-color:rgba(102,102,102,0.6);outline:none;border-color:rgba(0,0,0,0)}.uk-dotnav>*>:active{background-color:rgba(102,102,102,0.2);border-color:rgba(0,0,0,0)}.uk-dotnav>.uk-active>*{background-color:rgba(102,102,102,0.6);border-color:rgba(0,0,0,0)}.uk-dotnav-vertical{flex-direction:column;margin-left:0;margin-top:-12px}.uk-dotnav-vertical>*{padding-left:0;padding-top:12px}.uk-thumbnav{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style:none;margin-left:-15px}.uk-thumbnav>*{flex:none;padding-left:15px}.uk-thumbnav>*>*{display:inline-block;position:relative}.uk-thumbnav>*>*::after{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background:rgba(255,255,255,0.4);transition:background-color 0.1s ease-in-out}.uk-thumbnav>*>:hover,.uk-thumbnav>*>:focus{outline:none}.uk-thumbnav>*>:hover::after,.uk-thumbnav>*>:focus::after{background-color:rgba(0,0,0,0)}.uk-thumbnav>.uk-active>*::after{background-color:rgba(0,0,0,0)}.uk-thumbnav-vertical{flex-direction:column;margin-left:0;margin-top:-15px}.uk-thumbnav-vertical>*{padding-left:0;padding-top:15px}.uk-accordion{padding:0;list-style:none}.uk-accordion>:nth-child(n+2){margin-top:20px}.uk-accordion-title{display:block;font-size:1.25rem;line-height:1.4;color:#333;overflow:hidden}.uk-accordion-title::after{content:"";width:1.4em;height:1.4em;float:right;background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20width%3D%221%22%20height%3D%2213%22%20x%3D%226%22%20y%3D%220%22%20%2F%3E%0A%3C%2Fsvg%3E");background-repeat:no-repeat;background-position:50% 50%}.uk-open>.uk-accordion-title::after{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-accordion-title:hover,.uk-accordion-title:focus{color:#666;text-decoration:none;outline:none}.uk-accordion-content{margin-top:20px}.uk-accordion-content::before,.uk-accordion-content::after{content:"";display:table}.uk-accordion-content::after{clear:both}.uk-accordion-content>:last-child{margin-bottom:0}.uk-drop{display:none;position:absolute;z-index:1020;box-sizing:border-box;width:300px}.uk-drop.uk-open{display:block}[class*='uk-drop-top']{margin-top:-20px}[class*='uk-drop-bottom']{margin-top:20px}[class*='uk-drop-left']{margin-left:-20px}[class*='uk-drop-right']{margin-left:20px}.uk-drop-stack .uk-drop-grid>*{width:100% !important}.uk-dropdown{display:none;position:absolute;z-index:1020;box-sizing:border-box;min-width:200px;padding:25px;background:#fff;color:#666;box-shadow:0 5px 12px rgba(0,0,0,0.15)}.uk-dropdown.uk-open{display:block}.uk-dropdown-nav{white-space:nowrap;font-size:.875rem}.uk-dropdown-nav>li>a{color:#999}.uk-dropdown-nav>li>a:hover,.uk-dropdown-nav>li>a:focus,.uk-dropdown-nav>li.uk-active>a{color:#666}.uk-dropdown-nav .uk-nav-header{color:#333}.uk-dropdown-nav .uk-nav-divider{border-top:1px solid #E5E5E5}.uk-dropdown-nav .uk-nav-sub a{color:#999}.uk-dropdown-nav .uk-nav-sub a:hover,.uk-dropdown-nav .uk-nav-sub a:focus{color:#666}[class*='uk-dropdown-top']{margin-top:-10px}[class*='uk-dropdown-bottom']{margin-top:10px}[class*='uk-dropdown-left']{margin-left:-10px}[class*='uk-dropdown-right']{margin-left:10px}.uk-dropdown-stack .uk-dropdown-grid>*{width:100% !important}.uk-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1010;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:15px 15px;background:rgba(0,0,0,0.6);opacity:0;transition:opacity 0.15s linear}@media (min-width: 640px){.uk-modal{padding:50px 30px}}@media (min-width: 960px){.uk-modal{padding-left:40px;padding-right:40px}}.uk-modal.uk-open{opacity:1}.uk-modal-page{overflow:hidden}.uk-modal-dialog{position:relative;box-sizing:border-box;margin:0 auto;width:600px;max-width:calc(100% - 0.01px) !important;background:#fff;opacity:0;transform:translateY(-100px);transition:0.3s linear;transition-property:opacity, transform}.uk-open>.uk-modal-dialog{opacity:1;transform:translateY(0)}.uk-modal-container .uk-modal-dialog{width:1200px}.uk-modal-full{padding:0;background:none}.uk-modal-full .uk-modal-dialog{margin:0;width:100%;max-width:100%;transform:translateY(0)}.uk-modal-body{padding:30px 30px}.uk-modal-header{padding:15px 30px;background:#fff;border-bottom:1px solid #E5E5E5}.uk-modal-footer{padding:15px 30px;background:#fff;border-top:1px solid #E5E5E5}.uk-modal-body::before,.uk-modal-body::after,.uk-modal-header::before,.uk-modal-header::after,.uk-modal-footer::before,.uk-modal-footer::after{content:"";display:table}.uk-modal-body::after,.uk-modal-header::after,.uk-modal-footer::after{clear:both}.uk-modal-body>:last-child,.uk-modal-header>:last-child,.uk-modal-footer>:last-child{margin-bottom:0}.uk-modal-title{font-size:2rem;line-height:1.3}[class*='uk-modal-close-']{position:absolute;z-index:1010;top:10px;right:10px;padding:5px}[class*='uk-modal-close-']:first-child+*{margin-top:0}.uk-modal-close-outside{top:0;right:-5px;transform:translate(0, -100%);color:#fff}.uk-modal-close-outside:hover{color:#fff}@media (min-width: 960px){.uk-modal-close-outside{right:0;transform:translate(100%, -100%)}}.uk-modal-close-full{top:0;right:0;padding:20px;background:#fff}.uk-lightbox{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:1010;background:#000;opacity:0;transition:opacity 0.15s linear}.uk-lightbox.uk-open{display:block;opacity:1}.uk-lightbox-page{overflow:hidden}.uk-lightbox-items>*{position:absolute;top:0;right:0;bottom:0;left:0;display:none;justify-content:center;align-items:center;color:rgba(255,255,255,0.7);will-change:transform, opacity}.uk-lightbox-items>*>*{max-width:100vw;max-height:100vh}.uk-lightbox-items>*>:not(iframe){width:auto;height:auto}.uk-lightbox-items>.uk-active{display:flex}.uk-lightbox-toolbar{padding:10px 10px;background:rgba(0,0,0,0.3);color:rgba(255,255,255,0.7)}.uk-lightbox-toolbar *{color:rgba(255,255,255,0.7)}.uk-lightbox-toolbar-icon{padding:5px;color:rgba(255,255,255,0.7)}.uk-lightbox-toolbar-icon:hover{color:#fff}.uk-lightbox-button{box-sizing:border-box;width:50px;height:50px;background:rgba(0,0,0,0.3);color:rgba(255,255,255,0.7);display:inline-flex;justify-content:center;align-items:center}.uk-lightbox-button:hover{color:#fff}.uk-lightbox-iframe{width:80%;height:80%}.uk-slideshow{-webkit-tap-highlight-color:transparent}.uk-slideshow-items{position:relative;z-index:0;margin:0;padding:0;list-style:none;overflow:hidden;-webkit-touch-callout:none}.uk-slideshow-items>*{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;will-change:transform, opacity;touch-action:pan-y}.uk-slideshow-items>:not(.uk-active){display:none}.uk-slider{-webkit-tap-highlight-color:transparent}.uk-slider-container{overflow:hidden}.uk-slider-items{will-change:transform;position:relative}.uk-slider-items:not(.uk-grid){display:flex;margin:0;padding:0;list-style:none;-webkit-touch-callout:none}.uk-slider-items.uk-grid{flex-wrap:nowrap}.uk-slider-items>*{flex:none;position:relative;touch-action:pan-y}.uk-sticky-fixed{z-index:980;box-sizing:border-box;margin:0 !important;-webkit-backface-visibility:hidden;backface-visibility:hidden}.uk-sticky[class*='uk-animation-']{animation-duration:.2s}.uk-sticky.uk-animation-reverse{animation-duration:.2s}.uk-offcanvas{display:none;position:fixed;top:0;bottom:0;left:0;z-index:1000}.uk-offcanvas-flip .uk-offcanvas{right:0;left:auto}.uk-offcanvas-bar{position:absolute;top:0;bottom:0;left:0;box-sizing:border-box;width:270px;padding:20px 20px;background:#222;overflow-y:auto;-webkit-overflow-scrolling:touch;transform:translateX(-100%)}@media (min-width: 960px){.uk-offcanvas-bar{width:350px;padding:40px 40px}}.uk-offcanvas-flip .uk-offcanvas-bar{left:auto;right:0;transform:translateX(100%)}.uk-open>.uk-offcanvas-bar{transform:translateX(0)}.uk-offcanvas-bar-animation{transition:transform 0.3s ease-out}.uk-offcanvas-reveal{position:absolute;top:0;bottom:0;left:0;width:0;overflow:hidden;transition:width 0.3s ease-out}.uk-offcanvas-reveal .uk-offcanvas-bar{transform:translateX(0)}.uk-open>.uk-offcanvas-reveal{width:270px}@media (min-width: 960px){.uk-open>.uk-offcanvas-reveal{width:350px}}.uk-offcanvas-flip .uk-offcanvas-reveal{right:0;left:auto}.uk-offcanvas-close{position:absolute;z-index:1000;top:20px;right:20px;padding:5px}.uk-offcanvas-overlay{width:100vw;touch-action:none}.uk-offcanvas-overlay::before{content:"";position:absolute;top:0;bottom:0;left:0;right:0;background:rgba(0,0,0,0.1);opacity:0;transition:opacity 0.15s linear}.uk-offcanvas-overlay.uk-open::before{opacity:1}.uk-offcanvas-page,.uk-offcanvas-container{overflow-x:hidden}.uk-offcanvas-container-overlay{overflow:hidden}.uk-offcanvas-container .uk-offcanvas-content{position:relative;left:0;transition:left 0.3s ease-out;-webkit-overflow-scrolling:touch}.uk-offcanvas-overlay .uk-offcanvas-content{overflow-y:hidden}:not(.uk-offcanvas-flip)>.uk-offcanvas-content-animation{left:270px}.uk-offcanvas-flip>.uk-offcanvas-content-animation{left:-270px}@media (min-width: 960px){:not(.uk-offcanvas-flip)>.uk-offcanvas-content-animation{left:350px}.uk-offcanvas-flip>.uk-offcanvas-content-animation{left:-350px}}.uk-switcher{margin:0;padding:0;list-style:none}.uk-switcher>:not(.uk-active){display:none}.uk-switcher>*>:last-child{margin-bottom:0}.uk-leader{overflow:hidden}.uk-leader-fill::after{display:inline-block;margin-left:15px;width:0;content:attr(data-fill);white-space:nowrap}.uk-leader-fill.uk-leader-hide::after{display:none}.var-leader-fill::before{content:"."}.uk-iconnav{display:flex;flex-wrap:wrap;margin:0;padding:0;list-style:none;margin-left:-10px}.uk-iconnav>*{flex:none;padding-left:10px}.uk-iconnav>*>a{display:block;color:#999}.uk-iconnav>*>a:hover,.uk-iconnav>*>a:focus{color:#666;outline:none}.uk-iconnav>.uk-active>a{color:#666}.uk-iconnav-vertical{flex-direction:column;margin-left:0;margin-top:-10px}.uk-iconnav-vertical>*{padding-left:0;padding-top:10px}.uk-notification{position:fixed;top:10px;left:10px;z-index:1040;box-sizing:border-box;width:350px}.uk-notification-top-right,.uk-notification-bottom-right{left:auto;right:10px}.uk-notification-top-center,.uk-notification-bottom-center{left:50%;margin-left:-175px}.uk-notification-bottom-left,.uk-notification-bottom-right,.uk-notification-bottom-center{top:auto;bottom:10px}@media (max-width: 639px){.uk-notification{left:10px;right:10px;width:auto;margin:0}}.uk-notification-message{position:relative;margin-bottom:10px;padding:15px;background:#f8f8f8;color:#666;font-size:1.25rem;line-height:1.4;cursor:pointer}.uk-notification-close{display:none;position:absolute;top:20px;right:15px}.uk-notification-message:hover .uk-notification-close{display:block}.uk-notification-message-primary{color:#7289DA}.uk-notification-message-success{color:#32d296}.uk-notification-message-warning{color:#faa05a}.uk-notification-message-danger{color:#f0506e}.uk-tooltip{display:none;position:absolute;z-index:1030;box-sizing:border-box;max-width:200px;padding:3px 6px;background:#666;border-radius:2px;color:#fff;font-size:12px}.uk-tooltip.uk-active{display:block}[class*='uk-tooltip-top']{margin-top:-10px}[class*='uk-tooltip-bottom']{margin-top:10px}[class*='uk-tooltip-left']{margin-left:-10px}[class*='uk-tooltip-right']{margin-left:10px}.uk-placeholder{margin-bottom:20px;padding:30px 30px;background:rgba(0,0,0,0);border:1px dashed #E5E5E5}*+.uk-placeholder{margin-top:20px}.uk-placeholder>:last-child{margin-bottom:0}.uk-progress{vertical-align:baseline;-webkit-appearance:none;-moz-appearance:none;display:block;width:100%;border:0;background-color:#f8f8f8;margin-bottom:20px;height:15px;border-radius:500px;overflow:hidden}*+.uk-progress{margin-top:20px}.uk-progress:indeterminate{color:transparent}.uk-progress::-webkit-progress-bar{background-color:#f8f8f8;border-radius:500px;overflow:hidden}.uk-progress:indeterminate::-moz-progress-bar{width:0}.uk-progress::-webkit-progress-value{background-color:#7289DA;transition:width 0.6s ease}.uk-progress::-moz-progress-bar{background-color:#7289DA}.uk-progress::-ms-fill{background-color:#7289DA;transition:width 0.6s ease;border:0}.uk-sortable{position:relative}.uk-sortable>*{touch-action:none}.uk-sortable svg{pointer-events:none}.uk-sortable>:last-child{margin-bottom:0}.uk-sortable-drag{position:absolute !important;z-index:1050 !important;pointer-events:none}.uk-sortable-placeholder{opacity:0}.uk-sortable-empty{min-height:50px}.uk-sortable-handle:hover{cursor:move}.uk-countdown-number,.uk-countdown-separator{line-height:70px}.uk-countdown-number{font-size:2rem}@media (min-width: 640px){.uk-countdown-number{font-size:4rem}}@media (min-width: 960px){.uk-countdown-number{font-size:6rem}}.uk-countdown-separator{font-size:1rem}@media (min-width: 640px){.uk-countdown-separator{font-size:2rem}}@media (min-width: 960px){.uk-countdown-separator{font-size:3rem}}[class*='uk-animation-']{animation-duration:.5s;animation-timing-function:ease-out;animation-fill-mode:both}.uk-animation-reverse{animation-direction:reverse;animation-timing-function:ease-in}.uk-animation-fade{animation-name:uk-fade;animation-duration:.8s;animation-timing-function:linear}.uk-animation-scale-up{animation-name:uk-fade-scale-02}.uk-animation-scale-down{animation-name:uk-fade-scale-18}.uk-animation-slide-top{animation-name:uk-fade-top}.uk-animation-slide-bottom{animation-name:uk-fade-bottom}.uk-animation-slide-left{animation-name:uk-fade-left}.uk-animation-slide-right{animation-name:uk-fade-right}.uk-animation-slide-top-small{animation-name:uk-fade-top-small}.uk-animation-slide-bottom-small{animation-name:uk-fade-bottom-small}.uk-animation-slide-left-small{animation-name:uk-fade-left-small}.uk-animation-slide-right-small{animation-name:uk-fade-right-small}.uk-animation-slide-top-medium{animation-name:uk-fade-top-medium}.uk-animation-slide-bottom-medium{animation-name:uk-fade-bottom-medium}.uk-animation-slide-left-medium{animation-name:uk-fade-left-medium}.uk-animation-slide-right-medium{animation-name:uk-fade-right-medium}.uk-animation-kenburns{animation-name:uk-scale-kenburns;animation-duration:15s}.uk-animation-shake{animation-name:uk-shake}.uk-animation-fast{animation-duration:.1s}.uk-animation-toggle:not(:hover):not(.uk-hover) [class*='uk-animation-']{animation-name:none}@keyframes uk-fade{0%{opacity:0}100%{opacity:1}}@keyframes uk-fade-top{0%{opacity:0;transform:translateY(-100%)}100%{opacity:1;transform:translateY(0)}}@keyframes uk-fade-bottom{0%{opacity:0;transform:translateY(100%)}100%{opacity:1;transform:translateY(0)}}@keyframes uk-fade-left{0%{opacity:0;transform:translateX(-100%)}100%{opacity:1;transform:translateX(0)}}@keyframes uk-fade-right{0%{opacity:0;transform:translateX(100%)}100%{opacity:1;transform:translateX(0)}}@keyframes uk-fade-top-small{0%{opacity:0;transform:translateY(-10px)}100%{opacity:1;transform:translateY(0)}}@keyframes uk-fade-bottom-small{0%{opacity:0;transform:translateY(10px)}100%{opacity:1;transform:translateY(0)}}@keyframes uk-fade-left-small{0%{opacity:0;transform:translateX(-10px)}100%{opacity:1;transform:translateX(0)}}@keyframes uk-fade-right-small{0%{opacity:0;transform:translateX(10px)}100%{opacity:1;transform:translateX(0)}}@keyframes uk-fade-top-medium{0%{opacity:0;transform:translateY(-50px)}100%{opacity:1;transform:translateY(0)}}@keyframes uk-fade-bottom-medium{0%{opacity:0;transform:translateY(50px)}100%{opacity:1;transform:translateY(0)}}@keyframes uk-fade-left-medium{0%{opacity:0;transform:translateX(-50px)}100%{opacity:1;transform:translateX(0)}}@keyframes uk-fade-right-medium{0%{opacity:0;transform:translateX(50px)}100%{opacity:1;transform:translateX(0)}}@keyframes uk-fade-scale-02{0%{opacity:0;transform:scale(0.2)}100%{opacity:1;transform:scale(1)}}@keyframes uk-fade-scale-18{0%{opacity:0;transform:scale(1.8)}100%{opacity:1;transform:scale(1)}}@keyframes uk-scale-kenburns{0%{transform:scale(1)}100%{transform:scale(1.2)}}@keyframes uk-shake{0%,100%{transform:translateX(0)}10%{transform:translateX(-9px)}20%{transform:translateX(8px)}30%{transform:translateX(-7px)}40%{transform:translateX(6px)}50%{transform:translateX(-5px)}60%{transform:translateX(4px)}70%{transform:translateX(-3px)}80%{transform:translateX(2px)}90%{transform:translateX(-1px)}}[class*='uk-child-width']>*{box-sizing:border-box;width:100%}.uk-child-width-1-2>*{width:50%}.uk-child-width-1-3>*{width:calc(100% * 1 / 3.001)}.uk-child-width-1-4>*{width:25%}.uk-child-width-1-5>*{width:20%}.uk-child-width-1-6>*{width:calc(100% * 1 / 6.001)}.uk-child-width-auto>*{width:auto}.uk-child-width-expand>*{width:1px}.uk-child-width-expand>:not([class*='uk-width']){flex:1;min-width:0;flex-basis:1px}@media (min-width: 640px){.uk-child-width-1-1\@s>*{width:100%}.uk-child-width-1-2\@s>*{width:50%}.uk-child-width-1-3\@s>*{width:calc(100% * 1 / 3.001)}.uk-child-width-1-4\@s>*{width:25%}.uk-child-width-1-5\@s>*{width:20%}.uk-child-width-1-6\@s>*{width:calc(100% * 1 / 6.001)}.uk-child-width-auto\@s>*{width:auto}.uk-child-width-expand\@s>*{width:1px}.uk-child-width-expand\@s>:not([class*='uk-width']){flex:1;min-width:0;flex-basis:1px}}@media (min-width: 960px){.uk-child-width-1-1\@m>*{width:100%}.uk-child-width-1-2\@m>*{width:50%}.uk-child-width-1-3\@m>*{width:calc(100% * 1 / 3.001)}.uk-child-width-1-4\@m>*{width:25%}.uk-child-width-1-5\@m>*{width:20%}.uk-child-width-1-6\@m>*{width:calc(100% * 1 / 6.001)}.uk-child-width-auto\@m>*{width:auto}.uk-child-width-expand\@m>*{width:1px}.uk-child-width-expand\@m>:not([class*='uk-width']){flex:1;min-width:0;flex-basis:1px}}@media (min-width: 1200px){.uk-child-width-1-1\@l>*{width:100%}.uk-child-width-1-2\@l>*{width:50%}.uk-child-width-1-3\@l>*{width:calc(100% * 1 / 3.001)}.uk-child-width-1-4\@l>*{width:25%}.uk-child-width-1-5\@l>*{width:20%}.uk-child-width-1-6\@l>*{width:calc(100% * 1 / 6.001)}.uk-child-width-auto\@l>*{width:auto}.uk-child-width-expand\@l>*{width:1px}.uk-child-width-expand\@l>:not([class*='uk-width']){flex:1;min-width:0;flex-basis:1px}}@media (min-width: 1600px){.uk-child-width-1-1\@xl>*{width:100%}.uk-child-width-1-2\@xl>*{width:50%}.uk-child-width-1-3\@xl>*{width:calc(100% * 1 / 3.001)}.uk-child-width-1-4\@xl>*{width:25%}.uk-child-width-1-5\@xl>*{width:20%}.uk-child-width-1-6\@xl>*{width:calc(100% * 1 / 6.001)}.uk-child-width-auto\@xl>*{width:auto}.uk-child-width-expand\@xl>*{width:1px}.uk-child-width-expand\@xl>:not([class*='uk-width']){flex:1;min-width:0;flex-basis:1px}}[class*='uk-width']{box-sizing:border-box;width:100%;max-width:100%}.uk-width-1-2{width:50%}.uk-width-1-3{width:calc(100% * 1 / 3.001)}.uk-width-2-3{width:calc(100% * 2 / 3.001)}.uk-width-1-4{width:25%}.uk-width-3-4{width:75%}.uk-width-1-5{width:20%}.uk-width-2-5{width:40%}.uk-width-3-5{width:60%}.uk-width-4-5{width:80%}.uk-width-1-6{width:calc(100% * 1 / 6.001)}.uk-width-5-6{width:calc(100% * 5 / 6.001)}.uk-width-small{width:150px}.uk-width-medium{width:300px}.uk-width-large{width:450px}.uk-width-xlarge{width:600px}.uk-width-xxlarge{width:750px}.uk-width-auto{width:auto}.uk-width-expand{width:1px;flex:1;min-width:0;flex-basis:1px}@media (min-width: 640px){.uk-width-1-1\@s{width:100%}.uk-width-1-2\@s{width:50%}.uk-width-1-3\@s{width:calc(100% * 1 / 3.001)}.uk-width-2-3\@s{width:calc(100% * 2 / 3.001)}.uk-width-1-4\@s{width:25%}.uk-width-3-4\@s{width:75%}.uk-width-1-5\@s{width:20%}.uk-width-2-5\@s{width:40%}.uk-width-3-5\@s{width:60%}.uk-width-4-5\@s{width:80%}.uk-width-1-6\@s{width:calc(100% * 1 / 6.001)}.uk-width-5-6\@s{width:calc(100% * 5 / 6.001)}.uk-width-small\@s{width:150px}.uk-width-medium\@s{width:300px}.uk-width-large\@s{width:450px}.uk-width-xlarge\@s{width:600px}.uk-width-xxlarge\@s{width:750px}.uk-width-auto\@s{width:auto}.uk-width-expand\@s{width:1px;flex:1;min-width:0;flex-basis:1px}}@media (min-width: 960px){.uk-width-1-1\@m{width:100%}.uk-width-1-2\@m{width:50%}.uk-width-1-3\@m{width:calc(100% * 1 / 3.001)}.uk-width-2-3\@m{width:calc(100% * 2 / 3.001)}.uk-width-1-4\@m{width:25%}.uk-width-3-4\@m{width:75%}.uk-width-1-5\@m{width:20%}.uk-width-2-5\@m{width:40%}.uk-width-3-5\@m{width:60%}.uk-width-4-5\@m{width:80%}.uk-width-1-6\@m{width:calc(100% * 1 / 6.001)}.uk-width-5-6\@m{width:calc(100% * 5 / 6.001)}.uk-width-small\@m{width:150px}.uk-width-medium\@m{width:300px}.uk-width-large\@m{width:450px}.uk-width-xlarge\@m{width:600px}.uk-width-xxlarge\@m{width:750px}.uk-width-auto\@m{width:auto}.uk-width-expand\@m{width:1px;flex:1;min-width:0;flex-basis:1px}}@media (min-width: 1200px){.uk-width-1-1\@l{width:100%}.uk-width-1-2\@l{width:50%}.uk-width-1-3\@l{width:calc(100% * 1 / 3.001)}.uk-width-2-3\@l{width:calc(100% * 2 / 3.001)}.uk-width-1-4\@l{width:25%}.uk-width-3-4\@l{width:75%}.uk-width-1-5\@l{width:20%}.uk-width-2-5\@l{width:40%}.uk-width-3-5\@l{width:60%}.uk-width-4-5\@l{width:80%}.uk-width-1-6\@l{width:calc(100% * 1 / 6.001)}.uk-width-5-6\@l{width:calc(100% * 5 / 6.001)}.uk-width-small\@l{width:150px}.uk-width-medium\@l{width:300px}.uk-width-large\@l{width:450px}.uk-width-xlarge\@l{width:600px}.uk-width-xxlarge\@l{width:750px}.uk-width-auto\@l{width:auto}.uk-width-expand\@l{width:1px;flex:1;min-width:0;flex-basis:1px}}@media (min-width: 1600px){.uk-width-1-1\@xl{width:100%}.uk-width-1-2\@xl{width:50%}.uk-width-1-3\@xl{width:calc(100% * 1 / 3.001)}.uk-width-2-3\@xl{width:calc(100% * 2 / 3.001)}.uk-width-1-4\@xl{width:25%}.uk-width-3-4\@xl{width:75%}.uk-width-1-5\@xl{width:20%}.uk-width-2-5\@xl{width:40%}.uk-width-3-5\@xl{width:60%}.uk-width-4-5\@xl{width:80%}.uk-width-1-6\@xl{width:calc(100% * 1 / 6.001)}.uk-width-5-6\@xl{width:calc(100% * 5 / 6.001)}.uk-width-small\@xl{width:150px}.uk-width-medium\@xl{width:300px}.uk-width-large\@xl{width:450px}.uk-width-xlarge\@xl{width:600px}.uk-width-xxlarge\@xl{width:750px}.uk-width-auto\@xl{width:auto}.uk-width-expand\@xl{width:1px;flex:1;min-width:0;flex-basis:1px}}[class*='uk-height']{box-sizing:border-box}.uk-height-1-1{height:100%}.uk-height-viewport{min-height:100vh}.uk-height-small{height:150px}.uk-height-medium{height:300px}.uk-height-large{height:450px}.uk-height-max-small{max-height:150px}.uk-height-max-medium{max-height:300px}.uk-height-max-large{max-height:450px}.uk-text-lead{font-size:1.5rem;line-height:1.5;color:#333}.uk-text-meta{font-size:.875rem;line-height:1.4;color:#999}.uk-text-meta a{color:#999}.uk-text-meta a:hover{color:#666;text-decoration:none}.uk-text-small{font-size:.875rem;line-height:1.5}.uk-text-large{font-size:1.5rem;line-height:1.5}.uk-text-bold{font-weight:bolder}.uk-text-uppercase{text-transform:uppercase !important}.uk-text-capitalize{text-transform:capitalize !important}.uk-text-lowercase{text-transform:lowercase !important}.uk-text-muted{color:#999 !important}.uk-text-primary{color:#7289DA !important}.uk-text-success{color:#32d296 !important}.uk-text-warning{color:#faa05a !important}.uk-text-danger{color:#f0506e !important}.uk-text-background{-webkit-background-clip:text;-webkit-text-fill-color:transparent;display:inline-block;color:#7289DA !important}@supports (-webkit-background-clip: text){.uk-text-background{background-color:#7289DA}}.uk-text-left{text-align:left !important}.uk-text-right{text-align:right !important}.uk-text-center{text-align:center !important}.uk-text-justify{text-align:justify !important}@media (min-width: 640px){.uk-text-left\@s{text-align:left !important}.uk-text-right\@s{text-align:right !important}.uk-text-center\@s{text-align:center !important}}@media (min-width: 960px){.uk-text-left\@m{text-align:left !important}.uk-text-right\@m{text-align:right !important}.uk-text-center\@m{text-align:center !important}}@media (min-width: 1200px){.uk-text-left\@l{text-align:left !important}.uk-text-right\@l{text-align:right !important}.uk-text-center\@l{text-align:center !important}}@media (min-width: 1600px){.uk-text-left\@xl{text-align:left !important}.uk-text-right\@xl{text-align:right !important}.uk-text-center\@xl{text-align:center !important}}.uk-text-top{vertical-align:top !important}.uk-text-middle{vertical-align:middle !important}.uk-text-bottom{vertical-align:bottom !important}.uk-text-baseline{vertical-align:baseline !important}.uk-text-nowrap{white-space:nowrap}.uk-text-truncate{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}th.uk-text-truncate,td.uk-text-truncate{max-width:0}.uk-text-break{overflow-wrap:break-word;word-wrap:break-word}th.uk-text-break,td.uk-text-break{word-break:break-all}[class*='uk-column-']{column-gap:30px}@media (min-width: 1200px){[class*='uk-column-']{column-gap:40px}}[class*='uk-column-'] img{transform:translate3d(0, 0, 0)}.uk-column-divider{column-rule:1px solid #E5E5E5;column-gap:60px}@media (min-width: 1200px){.uk-column-divider{column-gap:80px}}.uk-column-1-2{column-count:2}.uk-column-1-3{column-count:3}.uk-column-1-4{column-count:4}.uk-column-1-5{column-count:5}.uk-column-1-6{column-count:6}@media (min-width: 640px){.uk-column-1-2\@s{column-count:2}.uk-column-1-3\@s{column-count:3}.uk-column-1-4\@s{column-count:4}.uk-column-1-5\@s{column-count:5}.uk-column-1-6\@s{column-count:6}}@media (min-width: 960px){.uk-column-1-2\@m{column-count:2}.uk-column-1-3\@m{column-count:3}.uk-column-1-4\@m{column-count:4}.uk-column-1-5\@m{column-count:5}.uk-column-1-6\@m{column-count:6}}@media (min-width: 1200px){.uk-column-1-2\@l{column-count:2}.uk-column-1-3\@l{column-count:3}.uk-column-1-4\@l{column-count:4}.uk-column-1-5\@l{column-count:5}.uk-column-1-6\@l{column-count:6}}@media (min-width: 1600px){.uk-column-1-2\@xl{column-count:2}.uk-column-1-3\@xl{column-count:3}.uk-column-1-4\@xl{column-count:4}.uk-column-1-5\@xl{column-count:5}.uk-column-1-6\@xl{column-count:6}}.uk-column-span{column-span:all}.uk-cover{max-width:none;position:absolute;left:50%;top:50%;transform:translate(-50%, -50%)}iframe.uk-cover{pointer-events:none}.uk-cover-container{overflow:hidden;position:relative}.uk-background-default{background-color:#fff}.uk-background-muted{background-color:#f8f8f8}.uk-background-primary{background-color:#7289DA}.uk-background-secondary{background-color:#222}.uk-background-cover,.uk-background-contain{background-position:50% 50%;background-repeat:no-repeat}.uk-background-cover{background-size:cover}.uk-background-contain{background-size:contain}.uk-background-top-left{background-position:0 0}.uk-background-top-center{background-position:50% 0}.uk-background-top-right{background-position:100% 0}.uk-background-center-left{background-position:0 50%}.uk-background-center-center{background-position:50% 50%}.uk-background-center-right{background-position:100% 50%}.uk-background-bottom-left{background-position:0 100%}.uk-background-bottom-center{background-position:50% 100%}.uk-background-bottom-right{background-position:100% 100%}.uk-background-norepeat{background-repeat:no-repeat}.uk-background-fixed{background-attachment:fixed}@media (pointer: coarse){.uk-background-fixed{background-attachment:scroll}}@media (max-width: 639px){.uk-background-image\@s{background-image:none !important}}@media (max-width: 959px){.uk-background-image\@m{background-image:none !important}}@media (max-width: 1199px){.uk-background-image\@l{background-image:none !important}}@media (max-width: 1599px){.uk-background-image\@xl{background-image:none !important}}.uk-background-blend-multiply{background-blend-mode:multiply}.uk-background-blend-screen{background-blend-mode:screen}.uk-background-blend-overlay{background-blend-mode:overlay}.uk-background-blend-darken{background-blend-mode:darken}.uk-background-blend-lighten{background-blend-mode:lighten}.uk-background-blend-color-dodge{background-blend-mode:color-dodge}.uk-background-blend-color-burn{background-blend-mode:color-burn}.uk-background-blend-hard-light{background-blend-mode:hard-light}.uk-background-blend-soft-light{background-blend-mode:soft-light}.uk-background-blend-difference{background-blend-mode:difference}.uk-background-blend-exclusion{background-blend-mode:exclusion}.uk-background-blend-hue{background-blend-mode:hue}.uk-background-blend-saturation{background-blend-mode:saturation}.uk-background-blend-color{background-blend-mode:color}.uk-background-blend-luminosity{background-blend-mode:luminosity}[class*='uk-align']{display:block;margin-bottom:30px}*+[class*='uk-align']{margin-top:30px}.uk-align-center{margin-left:auto;margin-right:auto}.uk-align-left{margin-top:0;margin-right:30px;float:left}.uk-align-right{margin-top:0;margin-left:30px;float:right}@media (min-width: 640px){.uk-align-left\@s{margin-top:0;margin-right:30px;float:left}.uk-align-right\@s{margin-top:0;margin-left:30px;float:right}}@media (min-width: 960px){.uk-align-left\@m{margin-top:0;margin-right:30px;float:left}.uk-align-right\@m{margin-top:0;margin-left:30px;float:right}}@media (min-width: 1200px){.uk-align-left\@l{margin-top:0;float:left}.uk-align-right\@l{margin-top:0;float:right}.uk-align-left,.uk-align-left\@s,.uk-align-left\@m,.uk-align-left\@l{margin-right:40px}.uk-align-right,.uk-align-right\@s,.uk-align-right\@m,.uk-align-right\@l{margin-left:40px}}@media (min-width: 1600px){.uk-align-left\@xl{margin-top:0;margin-right:40px;float:left}.uk-align-right\@xl{margin-top:0;margin-left:40px;float:right}}.uk-svg,.uk-svg:not(.uk-preserve) [fill*='#']:not(.uk-preserve),.uk-svg:not(.uk-preserve) [FILL*='#']:not(.uk-preserve){fill:currentcolor}.uk-svg:not(.uk-preserve) [stroke*='#']:not(.uk-preserve),.uk-svg:not(.uk-preserve) [STROKE*='#']:not(.uk-preserve){stroke:currentcolor}.uk-svg{transform:translate(0, 0)}.uk-panel{position:relative;box-sizing:border-box}.uk-panel::before,.uk-panel::after{content:"";display:table}.uk-panel::after{clear:both}.uk-panel>:last-child{margin-bottom:0}.uk-panel-scrollable{height:170px;padding:10px;border:1px solid #E5E5E5;overflow:auto;-webkit-overflow-scrolling:touch;resize:both}.uk-clearfix::before{content:"";display:table-cell}.uk-clearfix::after{content:"";display:table;clear:both}.uk-float-left{float:left}.uk-float-right{float:right}[class*='uk-float-']{max-width:100%}.uk-overflow-hidden{overflow:hidden}.uk-overflow-auto{overflow:auto;-webkit-overflow-scrolling:touch}.uk-overflow-auto>:last-child{margin-bottom:0}.uk-resize{resize:both}.uk-resize-vertical{resize:vertical}.uk-display-block{display:block !important}.uk-display-inline{display:inline !important}.uk-display-inline-block{display:inline-block !important}[class*='uk-inline']{display:inline-block;position:relative;max-width:100%;vertical-align:middle;-webkit-backface-visibility:hidden}.uk-inline-clip{overflow:hidden}.uk-preserve-width,.uk-preserve-width audio,.uk-preserve-width canvas,.uk-preserve-width img,.uk-preserve-width svg,.uk-preserve-width video{max-width:none}.uk-responsive-width,.uk-responsive-height{box-sizing:border-box}.uk-responsive-width{max-width:100% !important;height:auto}.uk-responsive-height{max-height:100%;width:auto;max-width:none}.uk-border-circle{border-radius:50%}.uk-border-rounded{border-radius:5px}.uk-inline-clip[class*='uk-border-']{-webkit-transform:translateZ(0)}.uk-box-shadow-small{box-shadow:0 2px 8px rgba(0,0,0,0.08)}.uk-box-shadow-medium{box-shadow:0 5px 15px rgba(0,0,0,0.08)}.uk-box-shadow-large{box-shadow:0 14px 25px rgba(0,0,0,0.16)}.uk-box-shadow-xlarge{box-shadow:0 28px 50px rgba(0,0,0,0.16)}[class*='uk-box-shadow-hover']{transition:box-shadow .1s ease-in-out}.uk-box-shadow-hover-small:hover{box-shadow:0 2px 8px rgba(0,0,0,0.08)}.uk-box-shadow-hover-medium:hover{box-shadow:0 5px 15px rgba(0,0,0,0.08)}.uk-box-shadow-hover-large:hover{box-shadow:0 14px 25px rgba(0,0,0,0.16)}.uk-box-shadow-hover-xlarge:hover{box-shadow:0 28px 50px rgba(0,0,0,0.16)}@supports (filter: blur(0)){.uk-box-shadow-bottom{display:inline-block;position:relative;max-width:100%;vertical-align:middle}.uk-box-shadow-bottom::before{content:'';position:absolute;bottom:-30px;left:0;right:0;height:30px;border-radius:100%;background:#444;filter:blur(20px)}.uk-box-shadow-bottom>*{position:relative}}.uk-dropcap::first-letter,.uk-dropcap>p:first-of-type::first-letter{display:block;margin-right:10px;float:left;font-size:4.5em;line-height:1;margin-bottom:-2px}@-moz-document url-prefix(){.uk-dropcap::first-letter,.uk-dropcap>p:first-of-type::first-letter{margin-top:1.1%}}@supports (-ms-ime-align: auto){.uk-dropcap>p:first-of-type::first-letter{font-size:1em}}.uk-logo{font-size:1.5rem;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;color:#666;text-decoration:none}.uk-logo:hover,.uk-logo:focus{color:#666;outline:none;text-decoration:none}.uk-logo-inverse{display:none}.uk-disabled{pointer-events:none}.uk-drag,.uk-drag *{cursor:move}.uk-drag iframe{pointer-events:none}.uk-dragover{box-shadow:0 0 20px rgba(100,100,100,0.3)}.uk-blend-multiply{mix-blend-mode:multiply}.uk-blend-screen{mix-blend-mode:screen}.uk-blend-overlay{mix-blend-mode:overlay}.uk-blend-darken{mix-blend-mode:darken}.uk-blend-lighten{mix-blend-mode:lighten}.uk-blend-color-dodge{mix-blend-mode:color-dodge}.uk-blend-color-burn{mix-blend-mode:color-burn}.uk-blend-hard-light{mix-blend-mode:hard-light}.uk-blend-soft-light{mix-blend-mode:soft-light}.uk-blend-difference{mix-blend-mode:difference}.uk-blend-exclusion{mix-blend-mode:exclusion}.uk-blend-hue{mix-blend-mode:hue}.uk-blend-saturation{mix-blend-mode:saturation}.uk-blend-color{mix-blend-mode:color}.uk-blend-luminosity{mix-blend-mode:luminosity}.uk-transform-center{transform:translate(-50%, -50%)}.uk-transform-origin-top-left{transform-origin:0 0}.uk-transform-origin-top-center{transform-origin:50% 0}.uk-transform-origin-top-right{transform-origin:100% 0}.uk-transform-origin-center-left{transform-origin:0 50%}.uk-transform-origin-center-right{transform-origin:100% 50%}.uk-transform-origin-bottom-left{transform-origin:0 100%}.uk-transform-origin-bottom-center{transform-origin:50% 100%}.uk-transform-origin-bottom-right{transform-origin:100% 100%}.uk-flex{display:flex}.uk-flex-inline{display:inline-flex}.uk-flex::before,.uk-flex::after,.uk-flex-inline::before,.uk-flex-inline::after{display:none}.uk-flex-left{justify-content:flex-start}.uk-flex-center{justify-content:center}.uk-flex-right{justify-content:flex-end}.uk-flex-between{justify-content:space-between}.uk-flex-around{justify-content:space-around}@media (min-width: 640px){.uk-flex-left\@s{justify-content:flex-start}.uk-flex-center\@s{justify-content:center}.uk-flex-right\@s{justify-content:flex-end}.uk-flex-between\@s{justify-content:space-between}.uk-flex-around\@s{justify-content:space-around}}@media (min-width: 960px){.uk-flex-left\@m{justify-content:flex-start}.uk-flex-center\@m{justify-content:center}.uk-flex-right\@m{justify-content:flex-end}.uk-flex-between\@m{justify-content:space-between}.uk-flex-around\@m{justify-content:space-around}}@media (min-width: 1200px){.uk-flex-left\@l{justify-content:flex-start}.uk-flex-center\@l{justify-content:center}.uk-flex-right\@l{justify-content:flex-end}.uk-flex-between\@l{justify-content:space-between}.uk-flex-around\@l{justify-content:space-around}}@media (min-width: 1600px){.uk-flex-left\@xl{justify-content:flex-start}.uk-flex-center\@xl{justify-content:center}.uk-flex-right\@xl{justify-content:flex-end}.uk-flex-between\@xl{justify-content:space-between}.uk-flex-around\@xl{justify-content:space-around}}.uk-flex-stretch{align-items:stretch}.uk-flex-top{align-items:flex-start}.uk-flex-middle{align-items:center}.uk-flex-bottom{align-items:flex-end}.uk-flex-row{flex-direction:row}.uk-flex-row-reverse{flex-direction:row-reverse}.uk-flex-column{flex-direction:column}.uk-flex-column-reverse{flex-direction:column-reverse}.uk-flex-nowrap{flex-wrap:nowrap}.uk-flex-wrap{flex-wrap:wrap}.uk-flex-wrap-reverse{flex-wrap:wrap-reverse}.uk-flex-wrap-stretch{align-content:stretch}.uk-flex-wrap-top{align-content:flex-start}.uk-flex-wrap-middle{align-content:center}.uk-flex-wrap-bottom{align-content:flex-end}.uk-flex-wrap-between{align-content:space-between}.uk-flex-wrap-around{align-content:space-around}.uk-flex-first{order:-1}.uk-flex-last{order:99}@media (min-width: 640px){.uk-flex-first\@s{order:-1}.uk-flex-last\@s{order:99}}@media (min-width: 960px){.uk-flex-first\@m{order:-1}.uk-flex-last\@m{order:99}}@media (min-width: 1200px){.uk-flex-first\@l{order:-1}.uk-flex-last\@l{order:99}}@media (min-width: 1600px){.uk-flex-first\@xl{order:-1}.uk-flex-last\@xl{order:99}}.uk-flex-none{flex:none}.uk-flex-auto{flex:auto}.uk-flex-1{flex:1}.uk-margin{margin-bottom:20px}*+.uk-margin{margin-top:20px !important}.uk-margin-top{margin-top:20px !important}.uk-margin-bottom{margin-bottom:20px !important}.uk-margin-left{margin-left:20px !important}.uk-margin-right{margin-right:20px !important}.uk-margin-small{margin-bottom:10px}*+.uk-margin-small{margin-top:10px !important}.uk-margin-small-top{margin-top:10px !important}.uk-margin-small-bottom{margin-bottom:10px !important}.uk-margin-small-left{margin-left:10px !important}.uk-margin-small-right{margin-right:10px !important}.uk-margin-medium{margin-bottom:40px}*+.uk-margin-medium{margin-top:40px !important}.uk-margin-medium-top{margin-top:40px !important}.uk-margin-medium-bottom{margin-bottom:40px !important}.uk-margin-medium-left{margin-left:40px !important}.uk-margin-medium-right{margin-right:40px !important}.uk-margin-large{margin-bottom:40px}*+.uk-margin-large{margin-top:40px !important}.uk-margin-large-top{margin-top:40px !important}.uk-margin-large-bottom{margin-bottom:40px !important}.uk-margin-large-left{margin-left:40px !important}.uk-margin-large-right{margin-right:40px !important}@media (min-width: 1200px){.uk-margin-large{margin-bottom:70px}*+.uk-margin-large{margin-top:70px !important}.uk-margin-large-top{margin-top:70px !important}.uk-margin-large-bottom{margin-bottom:70px !important}.uk-margin-large-left{margin-left:70px !important}.uk-margin-large-right{margin-right:70px !important}}.uk-margin-xlarge{margin-bottom:70px}*+.uk-margin-xlarge{margin-top:70px !important}.uk-margin-xlarge-top{margin-top:70px !important}.uk-margin-xlarge-bottom{margin-bottom:70px !important}.uk-margin-xlarge-left{margin-left:70px !important}.uk-margin-xlarge-right{margin-right:70px !important}@media (min-width: 1200px){.uk-margin-xlarge{margin-bottom:140px}*+.uk-margin-xlarge{margin-top:140px !important}.uk-margin-xlarge-top{margin-top:140px !important}.uk-margin-xlarge-bottom{margin-bottom:140px !important}.uk-margin-xlarge-left{margin-left:140px !important}.uk-margin-xlarge-right{margin-right:140px !important}}.uk-margin-remove{margin:0 !important}.uk-margin-remove-top{margin-top:0 !important}.uk-margin-remove-bottom{margin-bottom:0 !important}.uk-margin-remove-left{margin-left:0 !important}.uk-margin-remove-right{margin-right:0 !important}.uk-margin-remove-vertical{margin-top:0 !important;margin-bottom:0 !important}.uk-margin-remove-adjacent+*{margin-top:0 !important}.uk-margin-auto{margin-left:auto !important;margin-right:auto !important}.uk-margin-auto-top{margin-top:auto !important}.uk-margin-auto-bottom{margin-bottom:auto !important}.uk-margin-auto-left{margin-left:auto !important}.uk-margin-auto-right{margin-right:auto !important}.uk-margin-auto-vertical{margin-top:auto !important;margin-bottom:auto !important}.uk-padding{padding:30px}@media (min-width: 1200px){.uk-padding{padding:40px}}.uk-padding-small{padding:15px}.uk-padding-large{padding:30px}@media (min-width: 1200px){.uk-padding-large{padding:70px}}.uk-padding-remove{padding:0 !important}.uk-padding-remove-top{padding-top:0 !important}.uk-padding-remove-bottom{padding-bottom:0 !important}.uk-padding-remove-left{padding-left:0 !important}.uk-padding-remove-right{padding-right:0 !important}.uk-padding-remove-vertical{padding-top:0 !important;padding-bottom:0 !important}.uk-padding-remove-horizontal{padding-left:0 !important;padding-right:0 !important}[class*='uk-position-top'],[class*='uk-position-bottom'],[class*='uk-position-left'],[class*='uk-position-right'],[class*='uk-position-center']{position:absolute !important}.uk-position-top{top:0;left:0;right:0}.uk-position-bottom{bottom:0;left:0;right:0}.uk-position-left{top:0;bottom:0;left:0}.uk-position-right{top:0;bottom:0;right:0}.uk-position-top-left{top:0;left:0}.uk-position-top-right{top:0;right:0}.uk-position-bottom-left{bottom:0;left:0}.uk-position-bottom-right{bottom:0;right:0}.uk-position-center{top:50%;left:50%;transform:translate(-50%, -50%);display:table;width:-moz-max-content;max-width:100%;box-sizing:border-box}[class*='uk-position-center-left'],[class*='uk-position-center-right']{top:50%;transform:translateY(-50%)}.uk-position-center-left{left:0}.uk-position-center-right{right:0}.uk-position-center-left-out{right:100%;width:max-content}.uk-position-center-right-out{left:100%;width:max-content}.uk-position-top-center,.uk-position-bottom-center{left:50%;transform:translateX(-50%);display:table;width:-moz-max-content;max-width:100%;box-sizing:border-box}.uk-position-top-center{top:0}.uk-position-bottom-center{bottom:0}.uk-position-cover{position:absolute;top:0;bottom:0;left:0;right:0}.uk-position-relative{position:relative !important}.uk-position-absolute{position:absolute !important}.uk-position-fixed{position:fixed !important}.uk-position-z-index{z-index:1}.uk-position-small{margin:15px}.uk-position-small.uk-position-center{transform:translate(-50%, -50%) translate(-15px, -15px)}.uk-position-small[class*='uk-position-center-left'],.uk-position-small[class*='uk-position-center-right']{transform:translateY(-50%) translateY(-15px)}.uk-position-small.uk-position-top-center,.uk-position-small.uk-position-bottom-center{transform:translateX(-50%) translateX(-15px)}.uk-position-medium{margin:30px}.uk-position-medium.uk-position-center{transform:translate(-50%, -50%) translate(-30px, -30px)}.uk-position-medium[class*='uk-position-center-left'],.uk-position-medium[class*='uk-position-center-right']{transform:translateY(-50%) translateY(-30px)}.uk-position-medium.uk-position-top-center,.uk-position-medium.uk-position-bottom-center{transform:translateX(-50%) translateX(-30px)}.uk-position-large{margin:30px}.uk-position-large.uk-position-center{transform:translate(-50%, -50%) translate(-30px, -30px)}.uk-position-large[class*='uk-position-center-left'],.uk-position-large[class*='uk-position-center-right']{transform:translateY(-50%) translateY(-30px)}.uk-position-large.uk-position-top-center,.uk-position-large.uk-position-bottom-center{transform:translateX(-50%) translateX(-30px)}@media (min-width: 1200px){.uk-position-large{margin:50px}.uk-position-large.uk-position-center{transform:translate(-50%, -50%) translate(-50px, -50px)}.uk-position-large[class*='uk-position-center-left'],.uk-position-large[class*='uk-position-center-right']{transform:translateY(-50%) translateY(-50px)}.uk-position-large.uk-position-top-center,.uk-position-large.uk-position-bottom-center{transform:translateX(-50%) translateX(-50px)}}.uk-transition-fade,[class*='uk-transition-scale'],[class*='uk-transition-slide']{transition:.3s ease-out;transition-property:opacity, transform, filter}.uk-transition-toggle:focus{outline:none}.uk-transition-fade{opacity:0}.uk-transition-toggle:hover [class*='uk-transition-fade'],.uk-transition-toggle.uk-hover [class*='uk-transition-fade'],.uk-transition-toggle:focus [class*='uk-transition-fade'],.uk-transition-active.uk-active [class*='uk-transition-fade']{opacity:1}[class*='uk-transition-scale']{opacity:0}.uk-transition-scale-up{transform:scale3d(1, 1, 1)}.uk-transition-scale-down{transform:scale3d(1.1, 1.1, 1)}.uk-transition-toggle:hover .uk-transition-scale-up,.uk-transition-toggle.uk-hover .uk-transition-scale-up,.uk-transition-toggle:focus .uk-transition-scale-up,.uk-transition-active.uk-active .uk-transition-scale-up{opacity:1;transform:scale3d(1.1, 1.1, 1)}.uk-transition-toggle:hover .uk-transition-scale-down,.uk-transition-toggle.uk-hover .uk-transition-scale-down,.uk-transition-toggle:focus .uk-transition-scale-down,.uk-transition-active.uk-active .uk-transition-scale-down{opacity:1;transform:scale3d(1, 1, 1)}[class*='uk-transition-slide']{opacity:0}.uk-transition-slide-top{transform:translateY(-100%)}.uk-transition-slide-bottom{transform:translateY(100%)}.uk-transition-slide-left{transform:translateX(-100%)}.uk-transition-slide-right{transform:translateX(100%)}.uk-transition-slide-top-small{transform:translateY(-10px)}.uk-transition-slide-bottom-small{transform:translateY(10px)}.uk-transition-slide-left-small{transform:translateX(-10px)}.uk-transition-slide-right-small{transform:translateX(10px)}.uk-transition-slide-top-medium{transform:translateY(-50px)}.uk-transition-slide-bottom-medium{transform:translateY(50px)}.uk-transition-slide-left-medium{transform:translateX(-50px)}.uk-transition-slide-right-medium{transform:translateX(50px)}.uk-transition-toggle:hover [class*='uk-transition-slide'],.uk-transition-toggle.uk-hover [class*='uk-transition-slide'],.uk-transition-toggle:focus [class*='uk-transition-slide'],.uk-transition-active.uk-active [class*='uk-transition-slide']{opacity:1;transform:translateX(0) translateY(0)}.uk-transition-opaque{opacity:1}.uk-transition-slow{transition-duration:.7s}[hidden],.uk-hidden{display:none !important}@media (min-width: 640px){.uk-hidden\@s{display:none !important}}@media (min-width: 960px){.uk-hidden\@m{display:none !important}}@media (min-width: 1200px){.uk-hidden\@l{display:none !important}}@media (min-width: 1600px){.uk-hidden\@xl{display:none !important}}@media (max-width: 639px){.uk-visible\@s{display:none !important}}@media (max-width: 959px){.uk-visible\@m{display:none !important}}@media (max-width: 1199px){.uk-visible\@l{display:none !important}}@media (max-width: 1599px){.uk-visible\@xl{display:none !important}}.uk-invisible{visibility:hidden !important}.uk-visible-toggle:not(:hover):not(.uk-hover) .uk-hidden-hover:not(:focus){position:absolute !important;width:0 !important;height:0 !important;padding:0 !important;margin:0 !important;overflow:hidden !important}.uk-visible-toggle:not(:hover):not(.uk-hover) .uk-invisible-hover:not(:focus){opacity:0 !important}@media (pointer: coarse){.uk-hidden-touch{display:none !important}}.uk-hidden-notouch{display:none !important}@media (pointer: coarse){.uk-hidden-notouch{display:block !important}}.uk-light,.uk-section-primary:not(.uk-preserve-color),.uk-section-secondary:not(.uk-preserve-color),.uk-tile-primary:not(.uk-preserve-color),.uk-tile-secondary:not(.uk-preserve-color),.uk-card-primary.uk-card-body,.uk-card-primary>:not([class*='uk-card-media']),.uk-card-secondary.uk-card-body,.uk-card-secondary>:not([class*='uk-card-media']),.uk-overlay-primary,.uk-offcanvas-bar{color:rgba(255,255,255,0.7)}.uk-light a,.uk-section-primary:not(.uk-preserve-color) a,.uk-section-secondary:not(.uk-preserve-color) a,.uk-tile-primary:not(.uk-preserve-color) a,.uk-tile-secondary:not(.uk-preserve-color) a,.uk-card-primary.uk-card-body a,.uk-card-primary>:not([class*='uk-card-media']) a,.uk-card-secondary.uk-card-body a,.uk-card-secondary>:not([class*='uk-card-media']) a,.uk-overlay-primary a,.uk-offcanvas-bar a,.uk-light .uk-link,.uk-section-primary:not(.uk-preserve-color) .uk-link,.uk-section-secondary:not(.uk-preserve-color) .uk-link,.uk-tile-primary:not(.uk-preserve-color) .uk-link,.uk-tile-secondary:not(.uk-preserve-color) .uk-link,.uk-card-primary.uk-card-body .uk-link,.uk-card-primary>:not([class*='uk-card-media']) .uk-link,.uk-card-secondary.uk-card-body .uk-link,.uk-card-secondary>:not([class*='uk-card-media']) .uk-link,.uk-overlay-primary .uk-link,.uk-offcanvas-bar .uk-link{color:#fff}.uk-light a:hover,.uk-section-primary:not(.uk-preserve-color) a:hover,.uk-section-secondary:not(.uk-preserve-color) a:hover,.uk-tile-primary:not(.uk-preserve-color) a:hover,.uk-tile-secondary:not(.uk-preserve-color) a:hover,.uk-card-primary.uk-card-body a:hover,.uk-card-primary>:not([class*='uk-card-media']) a:hover,.uk-card-secondary.uk-card-body a:hover,.uk-card-secondary>:not([class*='uk-card-media']) a:hover,.uk-overlay-primary a:hover,.uk-offcanvas-bar a:hover,.uk-light .uk-link:hover,.uk-section-primary:not(.uk-preserve-color) .uk-link:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-link:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-link:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-link:hover,.uk-card-primary.uk-card-body .uk-link:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-link:hover,.uk-card-secondary.uk-card-body .uk-link:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-link:hover,.uk-overlay-primary .uk-link:hover,.uk-offcanvas-bar .uk-link:hover{color:#fff}.uk-light :not(pre)>code,.uk-section-primary:not(.uk-preserve-color) :not(pre)>code,.uk-section-secondary:not(.uk-preserve-color) :not(pre)>code,.uk-tile-primary:not(.uk-preserve-color) :not(pre)>code,.uk-tile-secondary:not(.uk-preserve-color) :not(pre)>code,.uk-card-primary.uk-card-body :not(pre)>code,.uk-card-primary>:not([class*='uk-card-media']) :not(pre)>code,.uk-card-secondary.uk-card-body :not(pre)>code,.uk-card-secondary>:not([class*='uk-card-media']) :not(pre)>code,.uk-overlay-primary :not(pre)>code,.uk-offcanvas-bar :not(pre)>code,.uk-light :not(pre)>kbd,.uk-section-primary:not(.uk-preserve-color) :not(pre)>kbd,.uk-section-secondary:not(.uk-preserve-color) :not(pre)>kbd,.uk-tile-primary:not(.uk-preserve-color) :not(pre)>kbd,.uk-tile-secondary:not(.uk-preserve-color) :not(pre)>kbd,.uk-card-primary.uk-card-body :not(pre)>kbd,.uk-card-primary>:not([class*='uk-card-media']) :not(pre)>kbd,.uk-card-secondary.uk-card-body :not(pre)>kbd,.uk-card-secondary>:not([class*='uk-card-media']) :not(pre)>kbd,.uk-overlay-primary :not(pre)>kbd,.uk-offcanvas-bar :not(pre)>kbd,.uk-light :not(pre)>samp,.uk-section-primary:not(.uk-preserve-color) :not(pre)>samp,.uk-section-secondary:not(.uk-preserve-color) :not(pre)>samp,.uk-tile-primary:not(.uk-preserve-color) :not(pre)>samp,.uk-tile-secondary:not(.uk-preserve-color) :not(pre)>samp,.uk-card-primary.uk-card-body :not(pre)>samp,.uk-card-primary>:not([class*='uk-card-media']) :not(pre)>samp,.uk-card-secondary.uk-card-body :not(pre)>samp,.uk-card-secondary>:not([class*='uk-card-media']) :not(pre)>samp,.uk-overlay-primary :not(pre)>samp,.uk-offcanvas-bar :not(pre)>samp{color:rgba(255,255,255,0.7);background:rgba(255,255,255,0.1)}.uk-light em,.uk-section-primary:not(.uk-preserve-color) em,.uk-section-secondary:not(.uk-preserve-color) em,.uk-tile-primary:not(.uk-preserve-color) em,.uk-tile-secondary:not(.uk-preserve-color) em,.uk-card-primary.uk-card-body em,.uk-card-primary>:not([class*='uk-card-media']) em,.uk-card-secondary.uk-card-body em,.uk-card-secondary>:not([class*='uk-card-media']) em,.uk-overlay-primary em,.uk-offcanvas-bar em{color:#fff}.uk-light h1,.uk-section-primary:not(.uk-preserve-color) h1,.uk-section-secondary:not(.uk-preserve-color) h1,.uk-tile-primary:not(.uk-preserve-color) h1,.uk-tile-secondary:not(.uk-preserve-color) h1,.uk-card-primary.uk-card-body h1,.uk-card-primary>:not([class*='uk-card-media']) h1,.uk-card-secondary.uk-card-body h1,.uk-card-secondary>:not([class*='uk-card-media']) h1,.uk-overlay-primary h1,.uk-offcanvas-bar h1,.uk-light .uk-h1,.uk-section-primary:not(.uk-preserve-color) .uk-h1,.uk-section-secondary:not(.uk-preserve-color) .uk-h1,.uk-tile-primary:not(.uk-preserve-color) .uk-h1,.uk-tile-secondary:not(.uk-preserve-color) .uk-h1,.uk-card-primary.uk-card-body .uk-h1,.uk-card-primary>:not([class*='uk-card-media']) .uk-h1,.uk-card-secondary.uk-card-body .uk-h1,.uk-card-secondary>:not([class*='uk-card-media']) .uk-h1,.uk-overlay-primary .uk-h1,.uk-offcanvas-bar .uk-h1,.uk-light h2,.uk-section-primary:not(.uk-preserve-color) h2,.uk-section-secondary:not(.uk-preserve-color) h2,.uk-tile-primary:not(.uk-preserve-color) h2,.uk-tile-secondary:not(.uk-preserve-color) h2,.uk-card-primary.uk-card-body h2,.uk-card-primary>:not([class*='uk-card-media']) h2,.uk-card-secondary.uk-card-body h2,.uk-card-secondary>:not([class*='uk-card-media']) h2,.uk-overlay-primary h2,.uk-offcanvas-bar h2,.uk-light .uk-h2,.uk-section-primary:not(.uk-preserve-color) .uk-h2,.uk-section-secondary:not(.uk-preserve-color) .uk-h2,.uk-tile-primary:not(.uk-preserve-color) .uk-h2,.uk-tile-secondary:not(.uk-preserve-color) .uk-h2,.uk-card-primary.uk-card-body .uk-h2,.uk-card-primary>:not([class*='uk-card-media']) .uk-h2,.uk-card-secondary.uk-card-body .uk-h2,.uk-card-secondary>:not([class*='uk-card-media']) .uk-h2,.uk-overlay-primary .uk-h2,.uk-offcanvas-bar .uk-h2,.uk-light h3,.uk-section-primary:not(.uk-preserve-color) h3,.uk-section-secondary:not(.uk-preserve-color) h3,.uk-tile-primary:not(.uk-preserve-color) h3,.uk-tile-secondary:not(.uk-preserve-color) h3,.uk-card-primary.uk-card-body h3,.uk-card-primary>:not([class*='uk-card-media']) h3,.uk-card-secondary.uk-card-body h3,.uk-card-secondary>:not([class*='uk-card-media']) h3,.uk-overlay-primary h3,.uk-offcanvas-bar h3,.uk-light .uk-h3,.uk-section-primary:not(.uk-preserve-color) .uk-h3,.uk-section-secondary:not(.uk-preserve-color) .uk-h3,.uk-tile-primary:not(.uk-preserve-color) .uk-h3,.uk-tile-secondary:not(.uk-preserve-color) .uk-h3,.uk-card-primary.uk-card-body .uk-h3,.uk-card-primary>:not([class*='uk-card-media']) .uk-h3,.uk-card-secondary.uk-card-body .uk-h3,.uk-card-secondary>:not([class*='uk-card-media']) .uk-h3,.uk-overlay-primary .uk-h3,.uk-offcanvas-bar .uk-h3,.uk-light h4,.uk-section-primary:not(.uk-preserve-color) h4,.uk-section-secondary:not(.uk-preserve-color) h4,.uk-tile-primary:not(.uk-preserve-color) h4,.uk-tile-secondary:not(.uk-preserve-color) h4,.uk-card-primary.uk-card-body h4,.uk-card-primary>:not([class*='uk-card-media']) h4,.uk-card-secondary.uk-card-body h4,.uk-card-secondary>:not([class*='uk-card-media']) h4,.uk-overlay-primary h4,.uk-offcanvas-bar h4,.uk-light .uk-h4,.uk-section-primary:not(.uk-preserve-color) .uk-h4,.uk-section-secondary:not(.uk-preserve-color) .uk-h4,.uk-tile-primary:not(.uk-preserve-color) .uk-h4,.uk-tile-secondary:not(.uk-preserve-color) .uk-h4,.uk-card-primary.uk-card-body .uk-h4,.uk-card-primary>:not([class*='uk-card-media']) .uk-h4,.uk-card-secondary.uk-card-body .uk-h4,.uk-card-secondary>:not([class*='uk-card-media']) .uk-h4,.uk-overlay-primary .uk-h4,.uk-offcanvas-bar .uk-h4,.uk-light h5,.uk-section-primary:not(.uk-preserve-color) h5,.uk-section-secondary:not(.uk-preserve-color) h5,.uk-tile-primary:not(.uk-preserve-color) h5,.uk-tile-secondary:not(.uk-preserve-color) h5,.uk-card-primary.uk-card-body h5,.uk-card-primary>:not([class*='uk-card-media']) h5,.uk-card-secondary.uk-card-body h5,.uk-card-secondary>:not([class*='uk-card-media']) h5,.uk-overlay-primary h5,.uk-offcanvas-bar h5,.uk-light .uk-h5,.uk-section-primary:not(.uk-preserve-color) .uk-h5,.uk-section-secondary:not(.uk-preserve-color) .uk-h5,.uk-tile-primary:not(.uk-preserve-color) .uk-h5,.uk-tile-secondary:not(.uk-preserve-color) .uk-h5,.uk-card-primary.uk-card-body .uk-h5,.uk-card-primary>:not([class*='uk-card-media']) .uk-h5,.uk-card-secondary.uk-card-body .uk-h5,.uk-card-secondary>:not([class*='uk-card-media']) .uk-h5,.uk-overlay-primary .uk-h5,.uk-offcanvas-bar .uk-h5,.uk-light h6,.uk-section-primary:not(.uk-preserve-color) h6,.uk-section-secondary:not(.uk-preserve-color) h6,.uk-tile-primary:not(.uk-preserve-color) h6,.uk-tile-secondary:not(.uk-preserve-color) h6,.uk-card-primary.uk-card-body h6,.uk-card-primary>:not([class*='uk-card-media']) h6,.uk-card-secondary.uk-card-body h6,.uk-card-secondary>:not([class*='uk-card-media']) h6,.uk-overlay-primary h6,.uk-offcanvas-bar h6,.uk-light .uk-h6,.uk-section-primary:not(.uk-preserve-color) .uk-h6,.uk-section-secondary:not(.uk-preserve-color) .uk-h6,.uk-tile-primary:not(.uk-preserve-color) .uk-h6,.uk-tile-secondary:not(.uk-preserve-color) .uk-h6,.uk-card-primary.uk-card-body .uk-h6,.uk-card-primary>:not([class*='uk-card-media']) .uk-h6,.uk-card-secondary.uk-card-body .uk-h6,.uk-card-secondary>:not([class*='uk-card-media']) .uk-h6,.uk-overlay-primary .uk-h6,.uk-offcanvas-bar .uk-h6{color:#fff}.uk-light blockquote,.uk-section-primary:not(.uk-preserve-color) blockquote,.uk-section-secondary:not(.uk-preserve-color) blockquote,.uk-tile-primary:not(.uk-preserve-color) blockquote,.uk-tile-secondary:not(.uk-preserve-color) blockquote,.uk-card-primary.uk-card-body blockquote,.uk-card-primary>:not([class*='uk-card-media']) blockquote,.uk-card-secondary.uk-card-body blockquote,.uk-card-secondary>:not([class*='uk-card-media']) blockquote,.uk-overlay-primary blockquote,.uk-offcanvas-bar blockquote{color:#fff}.uk-light blockquote footer,.uk-section-primary:not(.uk-preserve-color) blockquote footer,.uk-section-secondary:not(.uk-preserve-color) blockquote footer,.uk-tile-primary:not(.uk-preserve-color) blockquote footer,.uk-tile-secondary:not(.uk-preserve-color) blockquote footer,.uk-card-primary.uk-card-body blockquote footer,.uk-card-primary>:not([class*='uk-card-media']) blockquote footer,.uk-card-secondary.uk-card-body blockquote footer,.uk-card-secondary>:not([class*='uk-card-media']) blockquote footer,.uk-overlay-primary blockquote footer,.uk-offcanvas-bar blockquote footer{color:rgba(255,255,255,0.7)}.uk-light hr,.uk-section-primary:not(.uk-preserve-color) hr,.uk-section-secondary:not(.uk-preserve-color) hr,.uk-tile-primary:not(.uk-preserve-color) hr,.uk-tile-secondary:not(.uk-preserve-color) hr,.uk-card-primary.uk-card-body hr,.uk-card-primary>:not([class*='uk-card-media']) hr,.uk-card-secondary.uk-card-body hr,.uk-card-secondary>:not([class*='uk-card-media']) hr,.uk-overlay-primary hr,.uk-offcanvas-bar hr,.uk-light .uk-hr,.uk-section-primary:not(.uk-preserve-color) .uk-hr,.uk-section-secondary:not(.uk-preserve-color) .uk-hr,.uk-tile-primary:not(.uk-preserve-color) .uk-hr,.uk-tile-secondary:not(.uk-preserve-color) .uk-hr,.uk-card-primary.uk-card-body .uk-hr,.uk-card-primary>:not([class*='uk-card-media']) .uk-hr,.uk-card-secondary.uk-card-body .uk-hr,.uk-card-secondary>:not([class*='uk-card-media']) .uk-hr,.uk-overlay-primary .uk-hr,.uk-offcanvas-bar .uk-hr{border-top-color:rgba(255,255,255,0.2)}.uk-light a.uk-link-muted,.uk-section-primary:not(.uk-preserve-color) a.uk-link-muted,.uk-section-secondary:not(.uk-preserve-color) a.uk-link-muted,.uk-tile-primary:not(.uk-preserve-color) a.uk-link-muted,.uk-tile-secondary:not(.uk-preserve-color) a.uk-link-muted,.uk-card-primary.uk-card-body a.uk-link-muted,.uk-card-primary>:not([class*='uk-card-media']) a.uk-link-muted,.uk-card-secondary.uk-card-body a.uk-link-muted,.uk-card-secondary>:not([class*='uk-card-media']) a.uk-link-muted,.uk-overlay-primary a.uk-link-muted,.uk-offcanvas-bar a.uk-link-muted,.uk-light .uk-link-muted a,.uk-section-primary:not(.uk-preserve-color) .uk-link-muted a,.uk-section-secondary:not(.uk-preserve-color) .uk-link-muted a,.uk-tile-primary:not(.uk-preserve-color) .uk-link-muted a,.uk-tile-secondary:not(.uk-preserve-color) .uk-link-muted a,.uk-card-primary.uk-card-body .uk-link-muted a,.uk-card-primary>:not([class*='uk-card-media']) .uk-link-muted a,.uk-card-secondary.uk-card-body .uk-link-muted a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-link-muted a,.uk-overlay-primary .uk-link-muted a,.uk-offcanvas-bar .uk-link-muted a{color:rgba(255,255,255,0.5)}.uk-light a.uk-link-muted:hover,.uk-section-primary:not(.uk-preserve-color) a.uk-link-muted:hover,.uk-section-secondary:not(.uk-preserve-color) a.uk-link-muted:hover,.uk-tile-primary:not(.uk-preserve-color) a.uk-link-muted:hover,.uk-tile-secondary:not(.uk-preserve-color) a.uk-link-muted:hover,.uk-card-primary.uk-card-body a.uk-link-muted:hover,.uk-card-primary>:not([class*='uk-card-media']) a.uk-link-muted:hover,.uk-card-secondary.uk-card-body a.uk-link-muted:hover,.uk-card-secondary>:not([class*='uk-card-media']) a.uk-link-muted:hover,.uk-overlay-primary a.uk-link-muted:hover,.uk-offcanvas-bar a.uk-link-muted:hover,.uk-light .uk-link-muted a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-link-muted a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-link-muted a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-link-muted a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-link-muted a:hover,.uk-card-primary.uk-card-body .uk-link-muted a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-link-muted a:hover,.uk-card-secondary.uk-card-body .uk-link-muted a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-link-muted a:hover,.uk-overlay-primary .uk-link-muted a:hover,.uk-offcanvas-bar .uk-link-muted a:hover{color:rgba(255,255,255,0.7)}.uk-light a.uk-link-text:hover,.uk-section-primary:not(.uk-preserve-color) a.uk-link-text:hover,.uk-section-secondary:not(.uk-preserve-color) a.uk-link-text:hover,.uk-tile-primary:not(.uk-preserve-color) a.uk-link-text:hover,.uk-tile-secondary:not(.uk-preserve-color) a.uk-link-text:hover,.uk-card-primary.uk-card-body a.uk-link-text:hover,.uk-card-primary>:not([class*='uk-card-media']) a.uk-link-text:hover,.uk-card-secondary.uk-card-body a.uk-link-text:hover,.uk-card-secondary>:not([class*='uk-card-media']) a.uk-link-text:hover,.uk-overlay-primary a.uk-link-text:hover,.uk-offcanvas-bar a.uk-link-text:hover,.uk-light .uk-link-text a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-link-text a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-link-text a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-link-text a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-link-text a:hover,.uk-card-primary.uk-card-body .uk-link-text a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-link-text a:hover,.uk-card-secondary.uk-card-body .uk-link-text a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-link-text a:hover,.uk-overlay-primary .uk-link-text a:hover,.uk-offcanvas-bar .uk-link-text a:hover{color:rgba(255,255,255,0.5)}.uk-light a.uk-link-heading:hover,.uk-section-primary:not(.uk-preserve-color) a.uk-link-heading:hover,.uk-section-secondary:not(.uk-preserve-color) a.uk-link-heading:hover,.uk-tile-primary:not(.uk-preserve-color) a.uk-link-heading:hover,.uk-tile-secondary:not(.uk-preserve-color) a.uk-link-heading:hover,.uk-card-primary.uk-card-body a.uk-link-heading:hover,.uk-card-primary>:not([class*='uk-card-media']) a.uk-link-heading:hover,.uk-card-secondary.uk-card-body a.uk-link-heading:hover,.uk-card-secondary>:not([class*='uk-card-media']) a.uk-link-heading:hover,.uk-overlay-primary a.uk-link-heading:hover,.uk-offcanvas-bar a.uk-link-heading:hover,.uk-light .uk-link-heading a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-link-heading a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-link-heading a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-link-heading a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-link-heading a:hover,.uk-card-primary.uk-card-body .uk-link-heading a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-link-heading a:hover,.uk-card-secondary.uk-card-body .uk-link-heading a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-link-heading a:hover,.uk-overlay-primary .uk-link-heading a:hover,.uk-offcanvas-bar .uk-link-heading a:hover{color:#fff}.uk-light .uk-heading-divider,.uk-section-primary:not(.uk-preserve-color) .uk-heading-divider,.uk-section-secondary:not(.uk-preserve-color) .uk-heading-divider,.uk-tile-primary:not(.uk-preserve-color) .uk-heading-divider,.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-divider,.uk-card-primary.uk-card-body .uk-heading-divider,.uk-card-primary>:not([class*='uk-card-media']) .uk-heading-divider,.uk-card-secondary.uk-card-body .uk-heading-divider,.uk-card-secondary>:not([class*='uk-card-media']) .uk-heading-divider,.uk-overlay-primary .uk-heading-divider,.uk-offcanvas-bar .uk-heading-divider{border-bottom-color:rgba(255,255,255,0.2)}.uk-light .uk-heading-bullet::before,.uk-section-primary:not(.uk-preserve-color) .uk-heading-bullet::before,.uk-section-secondary:not(.uk-preserve-color) .uk-heading-bullet::before,.uk-tile-primary:not(.uk-preserve-color) .uk-heading-bullet::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-bullet::before,.uk-card-primary.uk-card-body .uk-heading-bullet::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-heading-bullet::before,.uk-card-secondary.uk-card-body .uk-heading-bullet::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-heading-bullet::before,.uk-overlay-primary .uk-heading-bullet::before,.uk-offcanvas-bar .uk-heading-bullet::before{border-left-color:rgba(255,255,255,0.2)}.uk-light .uk-heading-line>::before,.uk-section-primary:not(.uk-preserve-color) .uk-heading-line>::before,.uk-section-secondary:not(.uk-preserve-color) .uk-heading-line>::before,.uk-tile-primary:not(.uk-preserve-color) .uk-heading-line>::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-line>::before,.uk-card-primary.uk-card-body .uk-heading-line>::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-heading-line>::before,.uk-card-secondary.uk-card-body .uk-heading-line>::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-heading-line>::before,.uk-overlay-primary .uk-heading-line>::before,.uk-offcanvas-bar .uk-heading-line>::before,.uk-light .uk-heading-line>::after,.uk-section-primary:not(.uk-preserve-color) .uk-heading-line>::after,.uk-section-secondary:not(.uk-preserve-color) .uk-heading-line>::after,.uk-tile-primary:not(.uk-preserve-color) .uk-heading-line>::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-heading-line>::after,.uk-card-primary.uk-card-body .uk-heading-line>::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-heading-line>::after,.uk-card-secondary.uk-card-body .uk-heading-line>::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-heading-line>::after,.uk-overlay-primary .uk-heading-line>::after,.uk-offcanvas-bar .uk-heading-line>::after{border-bottom-color:rgba(255,255,255,0.2)}.uk-light .uk-divider-icon,.uk-section-primary:not(.uk-preserve-color) .uk-divider-icon,.uk-section-secondary:not(.uk-preserve-color) .uk-divider-icon,.uk-tile-primary:not(.uk-preserve-color) .uk-divider-icon,.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-icon,.uk-card-primary.uk-card-body .uk-divider-icon,.uk-card-primary>:not([class*='uk-card-media']) .uk-divider-icon,.uk-card-secondary.uk-card-body .uk-divider-icon,.uk-card-secondary>:not([class*='uk-card-media']) .uk-divider-icon,.uk-overlay-primary .uk-divider-icon,.uk-offcanvas-bar .uk-divider-icon{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2220%22%20height%3D%2220%22%20viewBox%3D%220%200%2020%2020%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22none%22%20stroke%3D%22rgba(255,255,255,0.2)%22%20stroke-width%3D%222%22%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%0A%3C%2Fsvg%3E%0A")}.uk-light .uk-divider-icon::before,.uk-section-primary:not(.uk-preserve-color) .uk-divider-icon::before,.uk-section-secondary:not(.uk-preserve-color) .uk-divider-icon::before,.uk-tile-primary:not(.uk-preserve-color) .uk-divider-icon::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-icon::before,.uk-card-primary.uk-card-body .uk-divider-icon::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-divider-icon::before,.uk-card-secondary.uk-card-body .uk-divider-icon::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-divider-icon::before,.uk-overlay-primary .uk-divider-icon::before,.uk-offcanvas-bar .uk-divider-icon::before,.uk-light .uk-divider-icon::after,.uk-section-primary:not(.uk-preserve-color) .uk-divider-icon::after,.uk-section-secondary:not(.uk-preserve-color) .uk-divider-icon::after,.uk-tile-primary:not(.uk-preserve-color) .uk-divider-icon::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-icon::after,.uk-card-primary.uk-card-body .uk-divider-icon::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-divider-icon::after,.uk-card-secondary.uk-card-body .uk-divider-icon::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-divider-icon::after,.uk-overlay-primary .uk-divider-icon::after,.uk-offcanvas-bar .uk-divider-icon::after{border-bottom-color:rgba(255,255,255,0.2)}.uk-light .uk-divider-small::after,.uk-section-primary:not(.uk-preserve-color) .uk-divider-small::after,.uk-section-secondary:not(.uk-preserve-color) .uk-divider-small::after,.uk-tile-primary:not(.uk-preserve-color) .uk-divider-small::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-divider-small::after,.uk-card-primary.uk-card-body .uk-divider-small::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-divider-small::after,.uk-card-secondary.uk-card-body .uk-divider-small::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-divider-small::after,.uk-overlay-primary .uk-divider-small::after,.uk-offcanvas-bar .uk-divider-small::after{border-top-color:rgba(255,255,255,0.2)}.uk-light .uk-list-divider>li:nth-child(n+2),.uk-section-primary:not(.uk-preserve-color) .uk-list-divider>li:nth-child(n+2),.uk-section-secondary:not(.uk-preserve-color) .uk-list-divider>li:nth-child(n+2),.uk-tile-primary:not(.uk-preserve-color) .uk-list-divider>li:nth-child(n+2),.uk-tile-secondary:not(.uk-preserve-color) .uk-list-divider>li:nth-child(n+2),.uk-card-primary.uk-card-body .uk-list-divider>li:nth-child(n+2),.uk-card-primary>:not([class*='uk-card-media']) .uk-list-divider>li:nth-child(n+2),.uk-card-secondary.uk-card-body .uk-list-divider>li:nth-child(n+2),.uk-card-secondary>:not([class*='uk-card-media']) .uk-list-divider>li:nth-child(n+2),.uk-overlay-primary .uk-list-divider>li:nth-child(n+2),.uk-offcanvas-bar .uk-list-divider>li:nth-child(n+2){border-top-color:rgba(255,255,255,0.2)}.uk-light .uk-list-striped>li:nth-of-type(odd),.uk-section-primary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-section-secondary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-tile-primary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-tile-secondary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-card-primary.uk-card-body .uk-list-striped>li:nth-of-type(odd),.uk-card-primary>:not([class*='uk-card-media']) .uk-list-striped>li:nth-of-type(odd),.uk-card-secondary.uk-card-body .uk-list-striped>li:nth-of-type(odd),.uk-card-secondary>:not([class*='uk-card-media']) .uk-list-striped>li:nth-of-type(odd),.uk-overlay-primary .uk-list-striped>li:nth-of-type(odd),.uk-offcanvas-bar .uk-list-striped>li:nth-of-type(odd){border-top-color:rgba(255,255,255,0.2);border-bottom-color:rgba(255,255,255,0.2)}.uk-light .uk-list-striped>li:nth-of-type(odd),.uk-section-primary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-section-secondary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-tile-primary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-tile-secondary:not(.uk-preserve-color) .uk-list-striped>li:nth-of-type(odd),.uk-card-primary.uk-card-body .uk-list-striped>li:nth-of-type(odd),.uk-card-primary>:not([class*='uk-card-media']) .uk-list-striped>li:nth-of-type(odd),.uk-card-secondary.uk-card-body .uk-list-striped>li:nth-of-type(odd),.uk-card-secondary>:not([class*='uk-card-media']) .uk-list-striped>li:nth-of-type(odd),.uk-overlay-primary .uk-list-striped>li:nth-of-type(odd),.uk-offcanvas-bar .uk-list-striped>li:nth-of-type(odd){background-color:rgba(255,255,255,0.1)}.uk-light .uk-list-bullet>li::before,.uk-section-primary:not(.uk-preserve-color) .uk-list-bullet>li::before,.uk-section-secondary:not(.uk-preserve-color) .uk-list-bullet>li::before,.uk-tile-primary:not(.uk-preserve-color) .uk-list-bullet>li::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-list-bullet>li::before,.uk-card-primary.uk-card-body .uk-list-bullet>li::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-list-bullet>li::before,.uk-card-secondary.uk-card-body .uk-list-bullet>li::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-list-bullet>li::before,.uk-overlay-primary .uk-list-bullet>li::before,.uk-offcanvas-bar .uk-list-bullet>li::before{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%226%22%20height%3D%226%22%20viewBox%3D%220%200%206%206%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22rgba(255,255,255,0.7)%22%20cx%3D%223%22%20cy%3D%223%22%20r%3D%223%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-light .uk-icon-link,.uk-section-primary:not(.uk-preserve-color) .uk-icon-link,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-link,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-link,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link,.uk-card-primary.uk-card-body .uk-icon-link,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-link,.uk-card-secondary.uk-card-body .uk-icon-link,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-link,.uk-overlay-primary .uk-icon-link,.uk-offcanvas-bar .uk-icon-link{color:rgba(255,255,255,0.5)}.uk-light .uk-icon-link:hover,.uk-section-primary:not(.uk-preserve-color) .uk-icon-link:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-link:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-link:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link:hover,.uk-card-primary.uk-card-body .uk-icon-link:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-link:hover,.uk-card-secondary.uk-card-body .uk-icon-link:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-link:hover,.uk-overlay-primary .uk-icon-link:hover,.uk-offcanvas-bar .uk-icon-link:hover,.uk-light .uk-icon-link:focus,.uk-section-primary:not(.uk-preserve-color) .uk-icon-link:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-link:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-link:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link:focus,.uk-card-primary.uk-card-body .uk-icon-link:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-link:focus,.uk-card-secondary.uk-card-body .uk-icon-link:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-link:focus,.uk-overlay-primary .uk-icon-link:focus,.uk-offcanvas-bar .uk-icon-link:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-icon-link:active,.uk-section-primary:not(.uk-preserve-color) .uk-icon-link:active,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-link:active,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-link:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-link:active,.uk-card-primary.uk-card-body .uk-icon-link:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-link:active,.uk-card-secondary.uk-card-body .uk-icon-link:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-link:active,.uk-overlay-primary .uk-icon-link:active,.uk-offcanvas-bar .uk-icon-link:active,.uk-light .uk-active>.uk-icon-link,.uk-section-primary:not(.uk-preserve-color) .uk-active>.uk-icon-link,.uk-section-secondary:not(.uk-preserve-color) .uk-active>.uk-icon-link,.uk-tile-primary:not(.uk-preserve-color) .uk-active>.uk-icon-link,.uk-tile-secondary:not(.uk-preserve-color) .uk-active>.uk-icon-link,.uk-card-primary.uk-card-body .uk-active>.uk-icon-link,.uk-card-primary>:not([class*='uk-card-media']) .uk-active>.uk-icon-link,.uk-card-secondary.uk-card-body .uk-active>.uk-icon-link,.uk-card-secondary>:not([class*='uk-card-media']) .uk-active>.uk-icon-link,.uk-overlay-primary .uk-active>.uk-icon-link,.uk-offcanvas-bar .uk-active>.uk-icon-link{color:rgba(255,255,255,0.7)}.uk-light .uk-icon-button,.uk-section-primary:not(.uk-preserve-color) .uk-icon-button,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-button,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-button,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button,.uk-card-primary.uk-card-body .uk-icon-button,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-button,.uk-card-secondary.uk-card-body .uk-icon-button,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-button,.uk-overlay-primary .uk-icon-button,.uk-offcanvas-bar .uk-icon-button{background-color:rgba(255,255,255,0.1);color:rgba(255,255,255,0.5)}.uk-light .uk-icon-button:hover,.uk-section-primary:not(.uk-preserve-color) .uk-icon-button:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-button:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-button:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button:hover,.uk-card-primary.uk-card-body .uk-icon-button:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-button:hover,.uk-card-secondary.uk-card-body .uk-icon-button:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-button:hover,.uk-overlay-primary .uk-icon-button:hover,.uk-offcanvas-bar .uk-icon-button:hover,.uk-light .uk-icon-button:focus,.uk-section-primary:not(.uk-preserve-color) .uk-icon-button:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-button:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-button:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button:focus,.uk-card-primary.uk-card-body .uk-icon-button:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-button:focus,.uk-card-secondary.uk-card-body .uk-icon-button:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-button:focus,.uk-overlay-primary .uk-icon-button:focus,.uk-offcanvas-bar .uk-icon-button:focus{background-color:rgba(242,242,242,0.1);color:rgba(255,255,255,0.7)}.uk-light .uk-icon-button:active,.uk-section-primary:not(.uk-preserve-color) .uk-icon-button:active,.uk-section-secondary:not(.uk-preserve-color) .uk-icon-button:active,.uk-tile-primary:not(.uk-preserve-color) .uk-icon-button:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-icon-button:active,.uk-card-primary.uk-card-body .uk-icon-button:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-icon-button:active,.uk-card-secondary.uk-card-body .uk-icon-button:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-icon-button:active,.uk-overlay-primary .uk-icon-button:active,.uk-offcanvas-bar .uk-icon-button:active{background-color:rgba(230,230,230,0.1);color:rgba(255,255,255,0.7)}.uk-light .uk-input,.uk-section-primary:not(.uk-preserve-color) .uk-input,.uk-section-secondary:not(.uk-preserve-color) .uk-input,.uk-tile-primary:not(.uk-preserve-color) .uk-input,.uk-tile-secondary:not(.uk-preserve-color) .uk-input,.uk-card-primary.uk-card-body .uk-input,.uk-card-primary>:not([class*='uk-card-media']) .uk-input,.uk-card-secondary.uk-card-body .uk-input,.uk-card-secondary>:not([class*='uk-card-media']) .uk-input,.uk-overlay-primary .uk-input,.uk-offcanvas-bar .uk-input,.uk-light .uk-select,.uk-section-primary:not(.uk-preserve-color) .uk-select,.uk-section-secondary:not(.uk-preserve-color) .uk-select,.uk-tile-primary:not(.uk-preserve-color) .uk-select,.uk-tile-secondary:not(.uk-preserve-color) .uk-select,.uk-card-primary.uk-card-body .uk-select,.uk-card-primary>:not([class*='uk-card-media']) .uk-select,.uk-card-secondary.uk-card-body .uk-select,.uk-card-secondary>:not([class*='uk-card-media']) .uk-select,.uk-overlay-primary .uk-select,.uk-offcanvas-bar .uk-select,.uk-light .uk-textarea,.uk-section-primary:not(.uk-preserve-color) .uk-textarea,.uk-section-secondary:not(.uk-preserve-color) .uk-textarea,.uk-tile-primary:not(.uk-preserve-color) .uk-textarea,.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea,.uk-card-primary.uk-card-body .uk-textarea,.uk-card-primary>:not([class*='uk-card-media']) .uk-textarea,.uk-card-secondary.uk-card-body .uk-textarea,.uk-card-secondary>:not([class*='uk-card-media']) .uk-textarea,.uk-overlay-primary .uk-textarea,.uk-offcanvas-bar .uk-textarea{background-color:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7);background-clip:padding-box;border-color:rgba(255,255,255,0.2)}.uk-light .uk-input:focus,.uk-section-primary:not(.uk-preserve-color) .uk-input:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-input:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-input:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-input:focus,.uk-card-primary.uk-card-body .uk-input:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-input:focus,.uk-card-secondary.uk-card-body .uk-input:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-input:focus,.uk-overlay-primary .uk-input:focus,.uk-offcanvas-bar .uk-input:focus,.uk-light .uk-select:focus,.uk-section-primary:not(.uk-preserve-color) .uk-select:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-select:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-select:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-select:focus,.uk-card-primary.uk-card-body .uk-select:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-select:focus,.uk-card-secondary.uk-card-body .uk-select:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-select:focus,.uk-overlay-primary .uk-select:focus,.uk-offcanvas-bar .uk-select:focus,.uk-light .uk-textarea:focus,.uk-section-primary:not(.uk-preserve-color) .uk-textarea:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-textarea:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-textarea:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea:focus,.uk-card-primary.uk-card-body .uk-textarea:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-textarea:focus,.uk-card-secondary.uk-card-body .uk-textarea:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-textarea:focus,.uk-overlay-primary .uk-textarea:focus,.uk-offcanvas-bar .uk-textarea:focus{background-color:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7);border-color:rgba(255,255,255,0.7)}.uk-light .uk-input:-ms-input-placeholder,.uk-section-primary:not(.uk-preserve-color) .uk-input:-ms-input-placeholder,.uk-section-secondary:not(.uk-preserve-color) .uk-input:-ms-input-placeholder,.uk-tile-primary:not(.uk-preserve-color) .uk-input:-ms-input-placeholder,.uk-tile-secondary:not(.uk-preserve-color) .uk-input:-ms-input-placeholder,.uk-card-primary.uk-card-body .uk-input:-ms-input-placeholder,.uk-card-primary>:not([class*='uk-card-media']) .uk-input:-ms-input-placeholder,.uk-card-secondary.uk-card-body .uk-input:-ms-input-placeholder,.uk-card-secondary>:not([class*='uk-card-media']) .uk-input:-ms-input-placeholder,.uk-overlay-primary .uk-input:-ms-input-placeholder,.uk-offcanvas-bar .uk-input:-ms-input-placeholder{color:rgba(255,255,255,0.5) !important}.uk-light .uk-input::placeholder,.uk-section-primary:not(.uk-preserve-color) .uk-input::placeholder,.uk-section-secondary:not(.uk-preserve-color) .uk-input::placeholder,.uk-tile-primary:not(.uk-preserve-color) .uk-input::placeholder,.uk-tile-secondary:not(.uk-preserve-color) .uk-input::placeholder,.uk-card-primary.uk-card-body .uk-input::placeholder,.uk-card-primary>:not([class*='uk-card-media']) .uk-input::placeholder,.uk-card-secondary.uk-card-body .uk-input::placeholder,.uk-card-secondary>:not([class*='uk-card-media']) .uk-input::placeholder,.uk-overlay-primary .uk-input::placeholder,.uk-offcanvas-bar .uk-input::placeholder{color:rgba(255,255,255,0.5)}.uk-light .uk-textarea:-ms-input-placeholder,.uk-section-primary:not(.uk-preserve-color) .uk-textarea:-ms-input-placeholder,.uk-section-secondary:not(.uk-preserve-color) .uk-textarea:-ms-input-placeholder,.uk-tile-primary:not(.uk-preserve-color) .uk-textarea:-ms-input-placeholder,.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea:-ms-input-placeholder,.uk-card-primary.uk-card-body .uk-textarea:-ms-input-placeholder,.uk-card-primary>:not([class*='uk-card-media']) .uk-textarea:-ms-input-placeholder,.uk-card-secondary.uk-card-body .uk-textarea:-ms-input-placeholder,.uk-card-secondary>:not([class*='uk-card-media']) .uk-textarea:-ms-input-placeholder,.uk-overlay-primary .uk-textarea:-ms-input-placeholder,.uk-offcanvas-bar .uk-textarea:-ms-input-placeholder{color:rgba(255,255,255,0.5) !important}.uk-light .uk-textarea::placeholder,.uk-section-primary:not(.uk-preserve-color) .uk-textarea::placeholder,.uk-section-secondary:not(.uk-preserve-color) .uk-textarea::placeholder,.uk-tile-primary:not(.uk-preserve-color) .uk-textarea::placeholder,.uk-tile-secondary:not(.uk-preserve-color) .uk-textarea::placeholder,.uk-card-primary.uk-card-body .uk-textarea::placeholder,.uk-card-primary>:not([class*='uk-card-media']) .uk-textarea::placeholder,.uk-card-secondary.uk-card-body .uk-textarea::placeholder,.uk-card-secondary>:not([class*='uk-card-media']) .uk-textarea::placeholder,.uk-overlay-primary .uk-textarea::placeholder,.uk-offcanvas-bar .uk-textarea::placeholder{color:rgba(255,255,255,0.5)}.uk-light .uk-select:not([multiple]):not([size]),.uk-section-primary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]),.uk-section-secondary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]),.uk-tile-primary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]),.uk-tile-secondary:not(.uk-preserve-color) .uk-select:not([multiple]):not([size]),.uk-card-primary.uk-card-body .uk-select:not([multiple]):not([size]),.uk-card-primary>:not([class*='uk-card-media']) .uk-select:not([multiple]):not([size]),.uk-card-secondary.uk-card-body .uk-select:not([multiple]):not([size]),.uk-card-secondary>:not([class*='uk-card-media']) .uk-select:not([multiple]):not([size]),.uk-overlay-primary .uk-select:not([multiple]):not([size]),.uk-offcanvas-bar .uk-select:not([multiple]):not([size]){background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2224%22%20height%3D%2216%22%20viewBox%3D%220%200%2024%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22rgba(255,255,255,0.7)%22%20points%3D%2212%201%209%206%2015%206%22%20%2F%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22rgba(255,255,255,0.7)%22%20points%3D%2212%2013%209%208%2015%208%22%20%2F%3E%0A%3C%2Fsvg%3E%0A")}.uk-light .uk-radio,.uk-section-primary:not(.uk-preserve-color) .uk-radio,.uk-section-secondary:not(.uk-preserve-color) .uk-radio,.uk-tile-primary:not(.uk-preserve-color) .uk-radio,.uk-tile-secondary:not(.uk-preserve-color) .uk-radio,.uk-card-primary.uk-card-body .uk-radio,.uk-card-primary>:not([class*='uk-card-media']) .uk-radio,.uk-card-secondary.uk-card-body .uk-radio,.uk-card-secondary>:not([class*='uk-card-media']) .uk-radio,.uk-overlay-primary .uk-radio,.uk-offcanvas-bar .uk-radio,.uk-light .uk-checkbox,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox,.uk-card-primary.uk-card-body .uk-checkbox,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox,.uk-card-secondary.uk-card-body .uk-checkbox,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox,.uk-overlay-primary .uk-checkbox,.uk-offcanvas-bar .uk-checkbox{background-color:rgba(242,242,242,0.1);border-color:rgba(255,255,255,0.2)}.uk-light .uk-radio:focus,.uk-section-primary:not(.uk-preserve-color) .uk-radio:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-radio:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-radio:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-radio:focus,.uk-card-primary.uk-card-body .uk-radio:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-radio:focus,.uk-card-secondary.uk-card-body .uk-radio:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-radio:focus,.uk-overlay-primary .uk-radio:focus,.uk-offcanvas-bar .uk-radio:focus,.uk-light .uk-checkbox:focus,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:focus,.uk-card-primary.uk-card-body .uk-checkbox:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:focus,.uk-card-secondary.uk-card-body .uk-checkbox:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:focus,.uk-overlay-primary .uk-checkbox:focus,.uk-offcanvas-bar .uk-checkbox:focus{border-color:rgba(255,255,255,0.7)}.uk-light .uk-radio:checked,.uk-section-primary:not(.uk-preserve-color) .uk-radio:checked,.uk-section-secondary:not(.uk-preserve-color) .uk-radio:checked,.uk-tile-primary:not(.uk-preserve-color) .uk-radio:checked,.uk-tile-secondary:not(.uk-preserve-color) .uk-radio:checked,.uk-card-primary.uk-card-body .uk-radio:checked,.uk-card-primary>:not([class*='uk-card-media']) .uk-radio:checked,.uk-card-secondary.uk-card-body .uk-radio:checked,.uk-card-secondary>:not([class*='uk-card-media']) .uk-radio:checked,.uk-overlay-primary .uk-radio:checked,.uk-offcanvas-bar .uk-radio:checked,.uk-light .uk-checkbox:checked,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-card-primary.uk-card-body .uk-checkbox:checked,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:checked,.uk-card-secondary.uk-card-body .uk-checkbox:checked,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:checked,.uk-overlay-primary .uk-checkbox:checked,.uk-offcanvas-bar .uk-checkbox:checked,.uk-light .uk-checkbox:indeterminate,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-card-primary.uk-card-body .uk-checkbox:indeterminate,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:indeterminate,.uk-card-secondary.uk-card-body .uk-checkbox:indeterminate,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:indeterminate,.uk-overlay-primary .uk-checkbox:indeterminate,.uk-offcanvas-bar .uk-checkbox:indeterminate{background-color:#fff;border-color:rgba(255,255,255,0.7)}.uk-light .uk-radio:checked:focus,.uk-section-primary:not(.uk-preserve-color) .uk-radio:checked:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-radio:checked:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-radio:checked:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-radio:checked:focus,.uk-card-primary.uk-card-body .uk-radio:checked:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-radio:checked:focus,.uk-card-secondary.uk-card-body .uk-radio:checked:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-radio:checked:focus,.uk-overlay-primary .uk-radio:checked:focus,.uk-offcanvas-bar .uk-radio:checked:focus,.uk-light .uk-checkbox:checked:focus,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:checked:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:checked:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:checked:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:checked:focus,.uk-card-primary.uk-card-body .uk-checkbox:checked:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:checked:focus,.uk-card-secondary.uk-card-body .uk-checkbox:checked:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:checked:focus,.uk-overlay-primary .uk-checkbox:checked:focus,.uk-offcanvas-bar .uk-checkbox:checked:focus,.uk-light .uk-checkbox:indeterminate:focus,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate:focus,.uk-card-primary.uk-card-body .uk-checkbox:indeterminate:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:indeterminate:focus,.uk-card-secondary.uk-card-body .uk-checkbox:indeterminate:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:indeterminate:focus,.uk-overlay-primary .uk-checkbox:indeterminate:focus,.uk-offcanvas-bar .uk-checkbox:indeterminate:focus{background-color:#e6e6e6}.uk-light .uk-radio:checked,.uk-section-primary:not(.uk-preserve-color) .uk-radio:checked,.uk-section-secondary:not(.uk-preserve-color) .uk-radio:checked,.uk-tile-primary:not(.uk-preserve-color) .uk-radio:checked,.uk-tile-secondary:not(.uk-preserve-color) .uk-radio:checked,.uk-card-primary.uk-card-body .uk-radio:checked,.uk-card-primary>:not([class*='uk-card-media']) .uk-radio:checked,.uk-card-secondary.uk-card-body .uk-radio:checked,.uk-card-secondary>:not([class*='uk-card-media']) .uk-radio:checked,.uk-overlay-primary .uk-radio:checked,.uk-offcanvas-bar .uk-radio:checked{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Ccircle%20fill%3D%22%23666%22%20cx%3D%228%22%20cy%3D%228%22%20r%3D%222%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-light .uk-checkbox:checked,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:checked,.uk-card-primary.uk-card-body .uk-checkbox:checked,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:checked,.uk-card-secondary.uk-card-body .uk-checkbox:checked,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:checked,.uk-overlay-primary .uk-checkbox:checked,.uk-offcanvas-bar .uk-checkbox:checked{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2211%22%20viewBox%3D%220%200%2014%2011%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolygon%20fill%3D%22%23666%22%20points%3D%2212%201%205%207.5%202%205%201%205.5%205%2010%2013%201.5%22%20%2F%3E%0A%3C%2Fsvg%3E%0A")}.uk-light .uk-checkbox:indeterminate,.uk-section-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-section-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-tile-primary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-tile-secondary:not(.uk-preserve-color) .uk-checkbox:indeterminate,.uk-card-primary.uk-card-body .uk-checkbox:indeterminate,.uk-card-primary>:not([class*='uk-card-media']) .uk-checkbox:indeterminate,.uk-card-secondary.uk-card-body .uk-checkbox:indeterminate,.uk-card-secondary>:not([class*='uk-card-media']) .uk-checkbox:indeterminate,.uk-overlay-primary .uk-checkbox:indeterminate,.uk-offcanvas-bar .uk-checkbox:indeterminate{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2216%22%20height%3D%2216%22%20viewBox%3D%220%200%2016%2016%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22%23666%22%20x%3D%223%22%20y%3D%228%22%20width%3D%2210%22%20height%3D%221%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-light .uk-form-label,.uk-section-primary:not(.uk-preserve-color) .uk-form-label,.uk-section-secondary:not(.uk-preserve-color) .uk-form-label,.uk-tile-primary:not(.uk-preserve-color) .uk-form-label,.uk-tile-secondary:not(.uk-preserve-color) .uk-form-label,.uk-card-primary.uk-card-body .uk-form-label,.uk-card-primary>:not([class*='uk-card-media']) .uk-form-label,.uk-card-secondary.uk-card-body .uk-form-label,.uk-card-secondary>:not([class*='uk-card-media']) .uk-form-label,.uk-overlay-primary .uk-form-label,.uk-offcanvas-bar .uk-form-label{color:#fff}.uk-light .uk-form-icon,.uk-section-primary:not(.uk-preserve-color) .uk-form-icon,.uk-section-secondary:not(.uk-preserve-color) .uk-form-icon,.uk-tile-primary:not(.uk-preserve-color) .uk-form-icon,.uk-tile-secondary:not(.uk-preserve-color) .uk-form-icon,.uk-card-primary.uk-card-body .uk-form-icon,.uk-card-primary>:not([class*='uk-card-media']) .uk-form-icon,.uk-card-secondary.uk-card-body .uk-form-icon,.uk-card-secondary>:not([class*='uk-card-media']) .uk-form-icon,.uk-overlay-primary .uk-form-icon,.uk-offcanvas-bar .uk-form-icon{color:rgba(255,255,255,0.5)}.uk-light .uk-form-icon:hover,.uk-section-primary:not(.uk-preserve-color) .uk-form-icon:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-form-icon:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-form-icon:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-form-icon:hover,.uk-card-primary.uk-card-body .uk-form-icon:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-form-icon:hover,.uk-card-secondary.uk-card-body .uk-form-icon:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-form-icon:hover,.uk-overlay-primary .uk-form-icon:hover,.uk-offcanvas-bar .uk-form-icon:hover{color:rgba(255,255,255,0.7)}.uk-light .uk-button-default,.uk-section-primary:not(.uk-preserve-color) .uk-button-default,.uk-section-secondary:not(.uk-preserve-color) .uk-button-default,.uk-tile-primary:not(.uk-preserve-color) .uk-button-default,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default,.uk-card-primary.uk-card-body .uk-button-default,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-default,.uk-card-secondary.uk-card-body .uk-button-default,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-default,.uk-overlay-primary .uk-button-default,.uk-offcanvas-bar .uk-button-default{background-color:rgba(0,0,0,0);color:#fff;border-color:rgba(255,255,255,0.7)}.uk-light .uk-button-default:hover,.uk-section-primary:not(.uk-preserve-color) .uk-button-default:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-button-default:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-button-default:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default:hover,.uk-card-primary.uk-card-body .uk-button-default:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-default:hover,.uk-card-secondary.uk-card-body .uk-button-default:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-default:hover,.uk-overlay-primary .uk-button-default:hover,.uk-offcanvas-bar .uk-button-default:hover,.uk-light .uk-button-default:focus,.uk-section-primary:not(.uk-preserve-color) .uk-button-default:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-button-default:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-button-default:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default:focus,.uk-card-primary.uk-card-body .uk-button-default:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-default:focus,.uk-card-secondary.uk-card-body .uk-button-default:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-default:focus,.uk-overlay-primary .uk-button-default:focus,.uk-offcanvas-bar .uk-button-default:focus{background-color:rgba(0,0,0,0);color:#fff;border-color:#fff}.uk-light .uk-button-default:active,.uk-section-primary:not(.uk-preserve-color) .uk-button-default:active,.uk-section-secondary:not(.uk-preserve-color) .uk-button-default:active,.uk-tile-primary:not(.uk-preserve-color) .uk-button-default:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default:active,.uk-card-primary.uk-card-body .uk-button-default:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-default:active,.uk-card-secondary.uk-card-body .uk-button-default:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-default:active,.uk-overlay-primary .uk-button-default:active,.uk-offcanvas-bar .uk-button-default:active,.uk-light .uk-button-default.uk-active,.uk-section-primary:not(.uk-preserve-color) .uk-button-default.uk-active,.uk-section-secondary:not(.uk-preserve-color) .uk-button-default.uk-active,.uk-tile-primary:not(.uk-preserve-color) .uk-button-default.uk-active,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-default.uk-active,.uk-card-primary.uk-card-body .uk-button-default.uk-active,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-default.uk-active,.uk-card-secondary.uk-card-body .uk-button-default.uk-active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-default.uk-active,.uk-overlay-primary .uk-button-default.uk-active,.uk-offcanvas-bar .uk-button-default.uk-active{background-color:rgba(0,0,0,0);color:#fff;border-color:#fff}.uk-light .uk-button-primary,.uk-section-primary:not(.uk-preserve-color) .uk-button-primary,.uk-section-secondary:not(.uk-preserve-color) .uk-button-primary,.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary,.uk-card-primary.uk-card-body .uk-button-primary,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-primary,.uk-card-secondary.uk-card-body .uk-button-primary,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-primary,.uk-overlay-primary .uk-button-primary,.uk-offcanvas-bar .uk-button-primary{background-color:#fff;color:#666}.uk-light .uk-button-primary:hover,.uk-section-primary:not(.uk-preserve-color) .uk-button-primary:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-button-primary:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary:hover,.uk-card-primary.uk-card-body .uk-button-primary:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-primary:hover,.uk-card-secondary.uk-card-body .uk-button-primary:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-primary:hover,.uk-overlay-primary .uk-button-primary:hover,.uk-offcanvas-bar .uk-button-primary:hover,.uk-light .uk-button-primary:focus,.uk-section-primary:not(.uk-preserve-color) .uk-button-primary:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-button-primary:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary:focus,.uk-card-primary.uk-card-body .uk-button-primary:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-primary:focus,.uk-card-secondary.uk-card-body .uk-button-primary:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-primary:focus,.uk-overlay-primary .uk-button-primary:focus,.uk-offcanvas-bar .uk-button-primary:focus{background-color:#f2f2f2;color:#666}.uk-light .uk-button-primary:active,.uk-section-primary:not(.uk-preserve-color) .uk-button-primary:active,.uk-section-secondary:not(.uk-preserve-color) .uk-button-primary:active,.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary:active,.uk-card-primary.uk-card-body .uk-button-primary:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-primary:active,.uk-card-secondary.uk-card-body .uk-button-primary:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-primary:active,.uk-overlay-primary .uk-button-primary:active,.uk-offcanvas-bar .uk-button-primary:active,.uk-light .uk-button-primary.uk-active,.uk-section-primary:not(.uk-preserve-color) .uk-button-primary.uk-active,.uk-section-secondary:not(.uk-preserve-color) .uk-button-primary.uk-active,.uk-tile-primary:not(.uk-preserve-color) .uk-button-primary.uk-active,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-primary.uk-active,.uk-card-primary.uk-card-body .uk-button-primary.uk-active,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-primary.uk-active,.uk-card-secondary.uk-card-body .uk-button-primary.uk-active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-primary.uk-active,.uk-overlay-primary .uk-button-primary.uk-active,.uk-offcanvas-bar .uk-button-primary.uk-active{background-color:#e6e6e6;color:#666}.uk-light .uk-button-secondary,.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary,.uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary,.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary,.uk-card-primary.uk-card-body .uk-button-secondary,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-secondary,.uk-card-secondary.uk-card-body .uk-button-secondary,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-secondary,.uk-overlay-primary .uk-button-secondary,.uk-offcanvas-bar .uk-button-secondary{background-color:#fff;color:#666}.uk-light .uk-button-secondary:hover,.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary:hover,.uk-card-primary.uk-card-body .uk-button-secondary:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-secondary:hover,.uk-card-secondary.uk-card-body .uk-button-secondary:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-secondary:hover,.uk-overlay-primary .uk-button-secondary:hover,.uk-offcanvas-bar .uk-button-secondary:hover,.uk-light .uk-button-secondary:focus,.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary:focus,.uk-card-primary.uk-card-body .uk-button-secondary:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-secondary:focus,.uk-card-secondary.uk-card-body .uk-button-secondary:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-secondary:focus,.uk-overlay-primary .uk-button-secondary:focus,.uk-offcanvas-bar .uk-button-secondary:focus{background-color:#f2f2f2;color:#666}.uk-light .uk-button-secondary:active,.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary:active,.uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary:active,.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary:active,.uk-card-primary.uk-card-body .uk-button-secondary:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-secondary:active,.uk-card-secondary.uk-card-body .uk-button-secondary:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-secondary:active,.uk-overlay-primary .uk-button-secondary:active,.uk-offcanvas-bar .uk-button-secondary:active,.uk-light .uk-button-secondary.uk-active,.uk-section-primary:not(.uk-preserve-color) .uk-button-secondary.uk-active,.uk-section-secondary:not(.uk-preserve-color) .uk-button-secondary.uk-active,.uk-tile-primary:not(.uk-preserve-color) .uk-button-secondary.uk-active,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-secondary.uk-active,.uk-card-primary.uk-card-body .uk-button-secondary.uk-active,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-secondary.uk-active,.uk-card-secondary.uk-card-body .uk-button-secondary.uk-active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-secondary.uk-active,.uk-overlay-primary .uk-button-secondary.uk-active,.uk-offcanvas-bar .uk-button-secondary.uk-active{background-color:#e6e6e6;color:#666}.uk-light .uk-button-text,.uk-section-primary:not(.uk-preserve-color) .uk-button-text,.uk-section-secondary:not(.uk-preserve-color) .uk-button-text,.uk-tile-primary:not(.uk-preserve-color) .uk-button-text,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text,.uk-card-primary.uk-card-body .uk-button-text,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-text,.uk-card-secondary.uk-card-body .uk-button-text,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-text,.uk-overlay-primary .uk-button-text,.uk-offcanvas-bar .uk-button-text{color:#fff}.uk-light .uk-button-text::before,.uk-section-primary:not(.uk-preserve-color) .uk-button-text::before,.uk-section-secondary:not(.uk-preserve-color) .uk-button-text::before,.uk-tile-primary:not(.uk-preserve-color) .uk-button-text::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text::before,.uk-card-primary.uk-card-body .uk-button-text::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-text::before,.uk-card-secondary.uk-card-body .uk-button-text::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-text::before,.uk-overlay-primary .uk-button-text::before,.uk-offcanvas-bar .uk-button-text::before{border-bottom-color:#fff}.uk-light .uk-button-text:hover,.uk-section-primary:not(.uk-preserve-color) .uk-button-text:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-button-text:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-button-text:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text:hover,.uk-card-primary.uk-card-body .uk-button-text:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-text:hover,.uk-card-secondary.uk-card-body .uk-button-text:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-text:hover,.uk-overlay-primary .uk-button-text:hover,.uk-offcanvas-bar .uk-button-text:hover,.uk-light .uk-button-text:focus,.uk-section-primary:not(.uk-preserve-color) .uk-button-text:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-button-text:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-button-text:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text:focus,.uk-card-primary.uk-card-body .uk-button-text:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-text:focus,.uk-card-secondary.uk-card-body .uk-button-text:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-text:focus,.uk-overlay-primary .uk-button-text:focus,.uk-offcanvas-bar .uk-button-text:focus{color:#fff}.uk-light .uk-button-text:disabled,.uk-section-primary:not(.uk-preserve-color) .uk-button-text:disabled,.uk-section-secondary:not(.uk-preserve-color) .uk-button-text:disabled,.uk-tile-primary:not(.uk-preserve-color) .uk-button-text:disabled,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-text:disabled,.uk-card-primary.uk-card-body .uk-button-text:disabled,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-text:disabled,.uk-card-secondary.uk-card-body .uk-button-text:disabled,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-text:disabled,.uk-overlay-primary .uk-button-text:disabled,.uk-offcanvas-bar .uk-button-text:disabled{color:rgba(255,255,255,0.5)}.uk-light .uk-button-link,.uk-section-primary:not(.uk-preserve-color) .uk-button-link,.uk-section-secondary:not(.uk-preserve-color) .uk-button-link,.uk-tile-primary:not(.uk-preserve-color) .uk-button-link,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-link,.uk-card-primary.uk-card-body .uk-button-link,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-link,.uk-card-secondary.uk-card-body .uk-button-link,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-link,.uk-overlay-primary .uk-button-link,.uk-offcanvas-bar .uk-button-link{color:rgba(255,255,255,0.5)}.uk-light .uk-button-link:hover,.uk-section-primary:not(.uk-preserve-color) .uk-button-link:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-button-link:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-button-link:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-link:hover,.uk-card-primary.uk-card-body .uk-button-link:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-link:hover,.uk-card-secondary.uk-card-body .uk-button-link:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-link:hover,.uk-overlay-primary .uk-button-link:hover,.uk-offcanvas-bar .uk-button-link:hover,.uk-light .uk-button-link:focus,.uk-section-primary:not(.uk-preserve-color) .uk-button-link:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-button-link:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-button-link:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-button-link:focus,.uk-card-primary.uk-card-body .uk-button-link:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-button-link:focus,.uk-card-secondary.uk-card-body .uk-button-link:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-button-link:focus,.uk-overlay-primary .uk-button-link:focus,.uk-offcanvas-bar .uk-button-link:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-grid-divider>:not(.uk-first-column)::before,.uk-section-primary:not(.uk-preserve-color) .uk-grid-divider>:not(.uk-first-column)::before,.uk-section-secondary:not(.uk-preserve-color) .uk-grid-divider>:not(.uk-first-column)::before,.uk-tile-primary:not(.uk-preserve-color) .uk-grid-divider>:not(.uk-first-column)::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-grid-divider>:not(.uk-first-column)::before,.uk-card-primary.uk-card-body .uk-grid-divider>:not(.uk-first-column)::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-grid-divider>:not(.uk-first-column)::before,.uk-card-secondary.uk-card-body .uk-grid-divider>:not(.uk-first-column)::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-grid-divider>:not(.uk-first-column)::before,.uk-overlay-primary .uk-grid-divider>:not(.uk-first-column)::before,.uk-offcanvas-bar .uk-grid-divider>:not(.uk-first-column)::before{border-left-color:rgba(255,255,255,0.2)}.uk-light .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-section-primary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-section-secondary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-tile-primary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-card-primary.uk-card-body .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-card-secondary.uk-card-body .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-overlay-primary .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before,.uk-offcanvas-bar .uk-grid-divider.uk-grid-stack>.uk-grid-margin::before{border-top-color:rgba(255,255,255,0.2)}.uk-light .uk-close,.uk-section-primary:not(.uk-preserve-color) .uk-close,.uk-section-secondary:not(.uk-preserve-color) .uk-close,.uk-tile-primary:not(.uk-preserve-color) .uk-close,.uk-tile-secondary:not(.uk-preserve-color) .uk-close,.uk-card-primary.uk-card-body .uk-close,.uk-card-primary>:not([class*='uk-card-media']) .uk-close,.uk-card-secondary.uk-card-body .uk-close,.uk-card-secondary>:not([class*='uk-card-media']) .uk-close,.uk-overlay-primary .uk-close,.uk-offcanvas-bar .uk-close{color:rgba(255,255,255,0.5)}.uk-light .uk-close:hover,.uk-section-primary:not(.uk-preserve-color) .uk-close:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-close:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-close:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-close:hover,.uk-card-primary.uk-card-body .uk-close:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-close:hover,.uk-card-secondary.uk-card-body .uk-close:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-close:hover,.uk-overlay-primary .uk-close:hover,.uk-offcanvas-bar .uk-close:hover,.uk-light .uk-close:focus,.uk-section-primary:not(.uk-preserve-color) .uk-close:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-close:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-close:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-close:focus,.uk-card-primary.uk-card-body .uk-close:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-close:focus,.uk-card-secondary.uk-card-body .uk-close:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-close:focus,.uk-overlay-primary .uk-close:focus,.uk-offcanvas-bar .uk-close:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-totop,.uk-section-primary:not(.uk-preserve-color) .uk-totop,.uk-section-secondary:not(.uk-preserve-color) .uk-totop,.uk-tile-primary:not(.uk-preserve-color) .uk-totop,.uk-tile-secondary:not(.uk-preserve-color) .uk-totop,.uk-card-primary.uk-card-body .uk-totop,.uk-card-primary>:not([class*='uk-card-media']) .uk-totop,.uk-card-secondary.uk-card-body .uk-totop,.uk-card-secondary>:not([class*='uk-card-media']) .uk-totop,.uk-overlay-primary .uk-totop,.uk-offcanvas-bar .uk-totop{color:rgba(255,255,255,0.5)}.uk-light .uk-totop:hover,.uk-section-primary:not(.uk-preserve-color) .uk-totop:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-totop:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-totop:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-totop:hover,.uk-card-primary.uk-card-body .uk-totop:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-totop:hover,.uk-card-secondary.uk-card-body .uk-totop:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-totop:hover,.uk-overlay-primary .uk-totop:hover,.uk-offcanvas-bar .uk-totop:hover,.uk-light .uk-totop:focus,.uk-section-primary:not(.uk-preserve-color) .uk-totop:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-totop:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-totop:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-totop:focus,.uk-card-primary.uk-card-body .uk-totop:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-totop:focus,.uk-card-secondary.uk-card-body .uk-totop:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-totop:focus,.uk-overlay-primary .uk-totop:focus,.uk-offcanvas-bar .uk-totop:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-totop:active,.uk-section-primary:not(.uk-preserve-color) .uk-totop:active,.uk-section-secondary:not(.uk-preserve-color) .uk-totop:active,.uk-tile-primary:not(.uk-preserve-color) .uk-totop:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-totop:active,.uk-card-primary.uk-card-body .uk-totop:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-totop:active,.uk-card-secondary.uk-card-body .uk-totop:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-totop:active,.uk-overlay-primary .uk-totop:active,.uk-offcanvas-bar .uk-totop:active{color:#fff}.uk-light .uk-badge,.uk-section-primary:not(.uk-preserve-color) .uk-badge,.uk-section-secondary:not(.uk-preserve-color) .uk-badge,.uk-tile-primary:not(.uk-preserve-color) .uk-badge,.uk-tile-secondary:not(.uk-preserve-color) .uk-badge,.uk-card-primary.uk-card-body .uk-badge,.uk-card-primary>:not([class*='uk-card-media']) .uk-badge,.uk-card-secondary.uk-card-body .uk-badge,.uk-card-secondary>:not([class*='uk-card-media']) .uk-badge,.uk-overlay-primary .uk-badge,.uk-offcanvas-bar .uk-badge{background-color:#fff;color:#666}.uk-light .uk-badge:hover,.uk-section-primary:not(.uk-preserve-color) .uk-badge:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-badge:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-badge:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-badge:hover,.uk-card-primary.uk-card-body .uk-badge:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-badge:hover,.uk-card-secondary.uk-card-body .uk-badge:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-badge:hover,.uk-overlay-primary .uk-badge:hover,.uk-offcanvas-bar .uk-badge:hover,.uk-light .uk-badge:focus,.uk-section-primary:not(.uk-preserve-color) .uk-badge:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-badge:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-badge:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-badge:focus,.uk-card-primary.uk-card-body .uk-badge:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-badge:focus,.uk-card-secondary.uk-card-body .uk-badge:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-badge:focus,.uk-overlay-primary .uk-badge:focus,.uk-offcanvas-bar .uk-badge:focus{color:#666}.uk-light .uk-label,.uk-section-primary:not(.uk-preserve-color) .uk-label,.uk-section-secondary:not(.uk-preserve-color) .uk-label,.uk-tile-primary:not(.uk-preserve-color) .uk-label,.uk-tile-secondary:not(.uk-preserve-color) .uk-label,.uk-card-primary.uk-card-body .uk-label,.uk-card-primary>:not([class*='uk-card-media']) .uk-label,.uk-card-secondary.uk-card-body .uk-label,.uk-card-secondary>:not([class*='uk-card-media']) .uk-label,.uk-overlay-primary .uk-label,.uk-offcanvas-bar .uk-label{background-color:#fff;color:#666}.uk-light .uk-article-meta,.uk-section-primary:not(.uk-preserve-color) .uk-article-meta,.uk-section-secondary:not(.uk-preserve-color) .uk-article-meta,.uk-tile-primary:not(.uk-preserve-color) .uk-article-meta,.uk-tile-secondary:not(.uk-preserve-color) .uk-article-meta,.uk-card-primary.uk-card-body .uk-article-meta,.uk-card-primary>:not([class*='uk-card-media']) .uk-article-meta,.uk-card-secondary.uk-card-body .uk-article-meta,.uk-card-secondary>:not([class*='uk-card-media']) .uk-article-meta,.uk-overlay-primary .uk-article-meta,.uk-offcanvas-bar .uk-article-meta{color:rgba(255,255,255,0.5)}.uk-light .uk-search-input,.uk-section-primary:not(.uk-preserve-color) .uk-search-input,.uk-section-secondary:not(.uk-preserve-color) .uk-search-input,.uk-tile-primary:not(.uk-preserve-color) .uk-search-input,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-input,.uk-card-primary.uk-card-body .uk-search-input,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-input,.uk-card-secondary.uk-card-body .uk-search-input,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-input,.uk-overlay-primary .uk-search-input,.uk-offcanvas-bar .uk-search-input{color:rgba(255,255,255,0.7)}.uk-light .uk-search-input:-ms-input-placeholder,.uk-section-primary:not(.uk-preserve-color) .uk-search-input:-ms-input-placeholder,.uk-section-secondary:not(.uk-preserve-color) .uk-search-input:-ms-input-placeholder,.uk-tile-primary:not(.uk-preserve-color) .uk-search-input:-ms-input-placeholder,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-input:-ms-input-placeholder,.uk-card-primary.uk-card-body .uk-search-input:-ms-input-placeholder,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-input:-ms-input-placeholder,.uk-card-secondary.uk-card-body .uk-search-input:-ms-input-placeholder,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-input:-ms-input-placeholder,.uk-overlay-primary .uk-search-input:-ms-input-placeholder,.uk-offcanvas-bar .uk-search-input:-ms-input-placeholder{color:rgba(255,255,255,0.5) !important}.uk-light .uk-search-input::placeholder,.uk-section-primary:not(.uk-preserve-color) .uk-search-input::placeholder,.uk-section-secondary:not(.uk-preserve-color) .uk-search-input::placeholder,.uk-tile-primary:not(.uk-preserve-color) .uk-search-input::placeholder,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-input::placeholder,.uk-card-primary.uk-card-body .uk-search-input::placeholder,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-input::placeholder,.uk-card-secondary.uk-card-body .uk-search-input::placeholder,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-input::placeholder,.uk-overlay-primary .uk-search-input::placeholder,.uk-offcanvas-bar .uk-search-input::placeholder{color:rgba(255,255,255,0.5)}.uk-light .uk-search .uk-search-icon,.uk-section-primary:not(.uk-preserve-color) .uk-search .uk-search-icon,.uk-section-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon,.uk-tile-primary:not(.uk-preserve-color) .uk-search .uk-search-icon,.uk-tile-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon,.uk-card-primary.uk-card-body .uk-search .uk-search-icon,.uk-card-primary>:not([class*='uk-card-media']) .uk-search .uk-search-icon,.uk-card-secondary.uk-card-body .uk-search .uk-search-icon,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search .uk-search-icon,.uk-overlay-primary .uk-search .uk-search-icon,.uk-offcanvas-bar .uk-search .uk-search-icon{color:rgba(255,255,255,0.5)}.uk-light .uk-search .uk-search-icon:hover,.uk-section-primary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-search .uk-search-icon:hover,.uk-card-primary.uk-card-body .uk-search .uk-search-icon:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-search .uk-search-icon:hover,.uk-card-secondary.uk-card-body .uk-search .uk-search-icon:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search .uk-search-icon:hover,.uk-overlay-primary .uk-search .uk-search-icon:hover,.uk-offcanvas-bar .uk-search .uk-search-icon:hover{color:rgba(255,255,255,0.5)}.uk-light .uk-search-default .uk-search-input,.uk-section-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input,.uk-section-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input,.uk-tile-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input,.uk-card-primary.uk-card-body .uk-search-default .uk-search-input,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-default .uk-search-input,.uk-card-secondary.uk-card-body .uk-search-default .uk-search-input,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-default .uk-search-input,.uk-overlay-primary .uk-search-default .uk-search-input,.uk-offcanvas-bar .uk-search-default .uk-search-input{background-color:rgba(0,0,0,0);border-color:rgba(255,255,255,0.2)}.uk-light .uk-search-default .uk-search-input:focus,.uk-section-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-default .uk-search-input:focus,.uk-card-primary.uk-card-body .uk-search-default .uk-search-input:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-default .uk-search-input:focus,.uk-card-secondary.uk-card-body .uk-search-default .uk-search-input:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-default .uk-search-input:focus,.uk-overlay-primary .uk-search-default .uk-search-input:focus,.uk-offcanvas-bar .uk-search-default .uk-search-input:focus{background-color:rgba(0,0,0,0)}.uk-light .uk-search-navbar .uk-search-input,.uk-section-primary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input,.uk-section-secondary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input,.uk-tile-primary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-navbar .uk-search-input,.uk-card-primary.uk-card-body .uk-search-navbar .uk-search-input,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-navbar .uk-search-input,.uk-card-secondary.uk-card-body .uk-search-navbar .uk-search-input,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-navbar .uk-search-input,.uk-overlay-primary .uk-search-navbar .uk-search-input,.uk-offcanvas-bar .uk-search-navbar .uk-search-input{background-color:rgba(0,0,0,0)}.uk-light .uk-search-large .uk-search-input,.uk-section-primary:not(.uk-preserve-color) .uk-search-large .uk-search-input,.uk-section-secondary:not(.uk-preserve-color) .uk-search-large .uk-search-input,.uk-tile-primary:not(.uk-preserve-color) .uk-search-large .uk-search-input,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-large .uk-search-input,.uk-card-primary.uk-card-body .uk-search-large .uk-search-input,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-large .uk-search-input,.uk-card-secondary.uk-card-body .uk-search-large .uk-search-input,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-large .uk-search-input,.uk-overlay-primary .uk-search-large .uk-search-input,.uk-offcanvas-bar .uk-search-large .uk-search-input{background-color:rgba(0,0,0,0)}.uk-light .uk-search-toggle,.uk-section-primary:not(.uk-preserve-color) .uk-search-toggle,.uk-section-secondary:not(.uk-preserve-color) .uk-search-toggle,.uk-tile-primary:not(.uk-preserve-color) .uk-search-toggle,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-toggle,.uk-card-primary.uk-card-body .uk-search-toggle,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-toggle,.uk-card-secondary.uk-card-body .uk-search-toggle,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-toggle,.uk-overlay-primary .uk-search-toggle,.uk-offcanvas-bar .uk-search-toggle{color:rgba(255,255,255,0.5)}.uk-light .uk-search-toggle:hover,.uk-section-primary:not(.uk-preserve-color) .uk-search-toggle:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-search-toggle:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-search-toggle:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-toggle:hover,.uk-card-primary.uk-card-body .uk-search-toggle:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-toggle:hover,.uk-card-secondary.uk-card-body .uk-search-toggle:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-toggle:hover,.uk-overlay-primary .uk-search-toggle:hover,.uk-offcanvas-bar .uk-search-toggle:hover,.uk-light .uk-search-toggle:focus,.uk-section-primary:not(.uk-preserve-color) .uk-search-toggle:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-search-toggle:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-search-toggle:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-search-toggle:focus,.uk-card-primary.uk-card-body .uk-search-toggle:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-search-toggle:focus,.uk-card-secondary.uk-card-body .uk-search-toggle:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-search-toggle:focus,.uk-overlay-primary .uk-search-toggle:focus,.uk-offcanvas-bar .uk-search-toggle:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-nav-parent-icon>.uk-parent>a::after,.uk-section-primary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent>a::after,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent>a::after,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent>a::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent>a::after,.uk-card-primary.uk-card-body .uk-nav-parent-icon>.uk-parent>a::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-parent-icon>.uk-parent>a::after,.uk-card-secondary.uk-card-body .uk-nav-parent-icon>.uk-parent>a::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-parent-icon>.uk-parent>a::after,.uk-overlay-primary .uk-nav-parent-icon>.uk-parent>a::after,.uk-offcanvas-bar .uk-nav-parent-icon>.uk-parent>a::after{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22rgba(255,255,255,0.7)%22%20stroke-width%3D%221.1%22%20points%3D%2210%201%204%207%2010%2013%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-light .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-section-primary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-card-primary.uk-card-body .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-card-secondary.uk-card-body .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-overlay-primary .uk-nav-parent-icon>.uk-parent.uk-open>a::after,.uk-offcanvas-bar .uk-nav-parent-icon>.uk-parent.uk-open>a::after{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2214%22%20height%3D%2214%22%20viewBox%3D%220%200%2014%2014%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Cpolyline%20fill%3D%22none%22%20stroke%3D%22rgba(255,255,255,0.7)%22%20stroke-width%3D%221.1%22%20points%3D%221%204%207%2010%2013%204%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-light .uk-nav-default>li>a,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default>li>a,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default>li>a,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default>li>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default>li>a,.uk-card-primary.uk-card-body .uk-nav-default>li>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default>li>a,.uk-card-secondary.uk-card-body .uk-nav-default>li>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default>li>a,.uk-overlay-primary .uk-nav-default>li>a,.uk-offcanvas-bar .uk-nav-default>li>a{color:rgba(255,255,255,0.5)}.uk-light .uk-nav-default>li>a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default>li>a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default>li>a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default>li>a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default>li>a:hover,.uk-card-primary.uk-card-body .uk-nav-default>li>a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default>li>a:hover,.uk-card-secondary.uk-card-body .uk-nav-default>li>a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default>li>a:hover,.uk-overlay-primary .uk-nav-default>li>a:hover,.uk-offcanvas-bar .uk-nav-default>li>a:hover,.uk-light .uk-nav-default>li>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default>li>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default>li>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default>li>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default>li>a:focus,.uk-card-primary.uk-card-body .uk-nav-default>li>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default>li>a:focus,.uk-card-secondary.uk-card-body .uk-nav-default>li>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default>li>a:focus,.uk-overlay-primary .uk-nav-default>li>a:focus,.uk-offcanvas-bar .uk-nav-default>li>a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-nav-default>li.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default>li.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default>li.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default>li.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default>li.uk-active>a,.uk-card-primary.uk-card-body .uk-nav-default>li.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default>li.uk-active>a,.uk-card-secondary.uk-card-body .uk-nav-default>li.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default>li.uk-active>a,.uk-overlay-primary .uk-nav-default>li.uk-active>a,.uk-offcanvas-bar .uk-nav-default>li.uk-active>a{color:#fff}.uk-light .uk-nav-default .uk-nav-header,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-header,.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-header,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-header,.uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-header,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-header,.uk-overlay-primary .uk-nav-default .uk-nav-header,.uk-offcanvas-bar .uk-nav-default .uk-nav-header{color:#fff}.uk-light .uk-nav-default .uk-nav-divider,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-divider,.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-divider,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-divider,.uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-divider,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-divider,.uk-overlay-primary .uk-nav-default .uk-nav-divider,.uk-offcanvas-bar .uk-nav-default .uk-nav-divider{border-top-color:rgba(255,255,255,0.2)}.uk-light .uk-nav-default .uk-nav-sub a,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a,.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub a,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a,.uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-sub a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a,.uk-overlay-primary .uk-nav-default .uk-nav-sub a,.uk-offcanvas-bar .uk-nav-default .uk-nav-sub a{color:rgba(255,255,255,0.5)}.uk-light .uk-nav-default .uk-nav-sub a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:hover,.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a:hover,.uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-sub a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a:hover,.uk-overlay-primary .uk-nav-default .uk-nav-sub a:hover,.uk-offcanvas-bar .uk-nav-default .uk-nav-sub a:hover,.uk-light .uk-nav-default .uk-nav-sub a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-default .uk-nav-sub a:focus,.uk-card-primary.uk-card-body .uk-nav-default .uk-nav-sub a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a:focus,.uk-card-secondary.uk-card-body .uk-nav-default .uk-nav-sub a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-default .uk-nav-sub a:focus,.uk-overlay-primary .uk-nav-default .uk-nav-sub a:focus,.uk-offcanvas-bar .uk-nav-default .uk-nav-sub a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-nav-primary>li>a,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary>li>a,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary>li>a,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary>li>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary>li>a,.uk-card-primary.uk-card-body .uk-nav-primary>li>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary>li>a,.uk-card-secondary.uk-card-body .uk-nav-primary>li>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary>li>a,.uk-overlay-primary .uk-nav-primary>li>a,.uk-offcanvas-bar .uk-nav-primary>li>a{color:rgba(255,255,255,0.5)}.uk-light .uk-nav-primary>li>a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary>li>a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary>li>a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary>li>a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary>li>a:hover,.uk-card-primary.uk-card-body .uk-nav-primary>li>a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary>li>a:hover,.uk-card-secondary.uk-card-body .uk-nav-primary>li>a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary>li>a:hover,.uk-overlay-primary .uk-nav-primary>li>a:hover,.uk-offcanvas-bar .uk-nav-primary>li>a:hover,.uk-light .uk-nav-primary>li>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary>li>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary>li>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary>li>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary>li>a:focus,.uk-card-primary.uk-card-body .uk-nav-primary>li>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary>li>a:focus,.uk-card-secondary.uk-card-body .uk-nav-primary>li>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary>li>a:focus,.uk-overlay-primary .uk-nav-primary>li>a:focus,.uk-offcanvas-bar .uk-nav-primary>li>a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-nav-primary>li.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary>li.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary>li.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary>li.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary>li.uk-active>a,.uk-card-primary.uk-card-body .uk-nav-primary>li.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary>li.uk-active>a,.uk-card-secondary.uk-card-body .uk-nav-primary>li.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary>li.uk-active>a,.uk-overlay-primary .uk-nav-primary>li.uk-active>a,.uk-offcanvas-bar .uk-nav-primary>li.uk-active>a{color:#fff}.uk-light .uk-nav-primary .uk-nav-header,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-header,.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-header,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-header,.uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-header,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-header,.uk-overlay-primary .uk-nav-primary .uk-nav-header,.uk-offcanvas-bar .uk-nav-primary .uk-nav-header{color:#fff}.uk-light .uk-nav-primary .uk-nav-divider,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-divider,.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-divider,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-divider,.uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-divider,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-divider,.uk-overlay-primary .uk-nav-primary .uk-nav-divider,.uk-offcanvas-bar .uk-nav-primary .uk-nav-divider{border-top-color:rgba(255,255,255,0.2)}.uk-light .uk-nav-primary .uk-nav-sub a,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a,.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub a,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a,.uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-sub a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a,.uk-overlay-primary .uk-nav-primary .uk-nav-sub a,.uk-offcanvas-bar .uk-nav-primary .uk-nav-sub a{color:rgba(255,255,255,0.5)}.uk-light .uk-nav-primary .uk-nav-sub a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:hover,.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a:hover,.uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-sub a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a:hover,.uk-overlay-primary .uk-nav-primary .uk-nav-sub a:hover,.uk-offcanvas-bar .uk-nav-primary .uk-nav-sub a:hover,.uk-light .uk-nav-primary .uk-nav-sub a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-nav-primary .uk-nav-sub a:focus,.uk-card-primary.uk-card-body .uk-nav-primary .uk-nav-sub a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a:focus,.uk-card-secondary.uk-card-body .uk-nav-primary .uk-nav-sub a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-nav-primary .uk-nav-sub a:focus,.uk-overlay-primary .uk-nav-primary .uk-nav-sub a:focus,.uk-offcanvas-bar .uk-nav-primary .uk-nav-sub a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-navbar-nav>li>a,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a,.uk-card-primary.uk-card-body .uk-navbar-nav>li>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a,.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a,.uk-overlay-primary .uk-navbar-nav>li>a,.uk-offcanvas-bar .uk-navbar-nav>li>a{color:rgba(255,255,255,0.5)}.uk-light .uk-navbar-nav>li:hover>a,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li:hover>a,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li:hover>a,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav>li:hover>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav>li:hover>a,.uk-card-primary.uk-card-body .uk-navbar-nav>li:hover>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li:hover>a,.uk-card-secondary.uk-card-body .uk-navbar-nav>li:hover>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li:hover>a,.uk-overlay-primary .uk-navbar-nav>li:hover>a,.uk-offcanvas-bar .uk-navbar-nav>li:hover>a,.uk-light .uk-navbar-nav>li>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a:focus,.uk-card-primary.uk-card-body .uk-navbar-nav>li>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:focus,.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:focus,.uk-overlay-primary .uk-navbar-nav>li>a:focus,.uk-offcanvas-bar .uk-navbar-nav>li>a:focus,.uk-light .uk-navbar-nav>li>a.uk-open,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a.uk-open,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a.uk-open,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a.uk-open,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a.uk-open,.uk-card-primary.uk-card-body .uk-navbar-nav>li>a.uk-open,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a.uk-open,.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a.uk-open,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a.uk-open,.uk-overlay-primary .uk-navbar-nav>li>a.uk-open,.uk-offcanvas-bar .uk-navbar-nav>li>a.uk-open{color:rgba(255,255,255,0.7)}.uk-light .uk-navbar-nav>li>a:active,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a:active,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a:active,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav>li>a:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav>li>a:active,.uk-card-primary.uk-card-body .uk-navbar-nav>li>a:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:active,.uk-card-secondary.uk-card-body .uk-navbar-nav>li>a:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li>a:active,.uk-overlay-primary .uk-navbar-nav>li>a:active,.uk-offcanvas-bar .uk-navbar-nav>li>a:active{color:#fff}.uk-light .uk-navbar-nav>li.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-nav>li.uk-active>a,.uk-card-primary.uk-card-body .uk-navbar-nav>li.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-nav>li.uk-active>a,.uk-card-secondary.uk-card-body .uk-navbar-nav>li.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-nav>li.uk-active>a,.uk-overlay-primary .uk-navbar-nav>li.uk-active>a,.uk-offcanvas-bar .uk-navbar-nav>li.uk-active>a{color:#fff}.uk-light .uk-navbar-item,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-item,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-item,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-item,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-item,.uk-card-primary.uk-card-body .uk-navbar-item,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-item,.uk-card-secondary.uk-card-body .uk-navbar-item,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-item,.uk-overlay-primary .uk-navbar-item,.uk-offcanvas-bar .uk-navbar-item{color:rgba(255,255,255,0.7)}.uk-light .uk-navbar-toggle,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-toggle,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle,.uk-card-primary.uk-card-body .uk-navbar-toggle,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-toggle,.uk-card-secondary.uk-card-body .uk-navbar-toggle,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-toggle,.uk-overlay-primary .uk-navbar-toggle,.uk-offcanvas-bar .uk-navbar-toggle{color:rgba(255,255,255,0.5)}.uk-light .uk-navbar-toggle:hover,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-toggle:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle:hover,.uk-card-primary.uk-card-body .uk-navbar-toggle:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-toggle:hover,.uk-card-secondary.uk-card-body .uk-navbar-toggle:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-toggle:hover,.uk-overlay-primary .uk-navbar-toggle:hover,.uk-offcanvas-bar .uk-navbar-toggle:hover,.uk-light .uk-navbar-toggle:focus,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-toggle:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle:focus,.uk-card-primary.uk-card-body .uk-navbar-toggle:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-toggle:focus,.uk-card-secondary.uk-card-body .uk-navbar-toggle:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-toggle:focus,.uk-overlay-primary .uk-navbar-toggle:focus,.uk-offcanvas-bar .uk-navbar-toggle:focus,.uk-light .uk-navbar-toggle.uk-open,.uk-section-primary:not(.uk-preserve-color) .uk-navbar-toggle.uk-open,.uk-section-secondary:not(.uk-preserve-color) .uk-navbar-toggle.uk-open,.uk-tile-primary:not(.uk-preserve-color) .uk-navbar-toggle.uk-open,.uk-tile-secondary:not(.uk-preserve-color) .uk-navbar-toggle.uk-open,.uk-card-primary.uk-card-body .uk-navbar-toggle.uk-open,.uk-card-primary>:not([class*='uk-card-media']) .uk-navbar-toggle.uk-open,.uk-card-secondary.uk-card-body .uk-navbar-toggle.uk-open,.uk-card-secondary>:not([class*='uk-card-media']) .uk-navbar-toggle.uk-open,.uk-overlay-primary .uk-navbar-toggle.uk-open,.uk-offcanvas-bar .uk-navbar-toggle.uk-open{color:rgba(255,255,255,0.7)}.uk-light .uk-subnav>*>:first-child,.uk-section-primary:not(.uk-preserve-color) .uk-subnav>*>:first-child,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav>*>:first-child,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav>*>:first-child,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav>*>:first-child,.uk-card-primary.uk-card-body .uk-subnav>*>:first-child,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav>*>:first-child,.uk-card-secondary.uk-card-body .uk-subnav>*>:first-child,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav>*>:first-child,.uk-overlay-primary .uk-subnav>*>:first-child,.uk-offcanvas-bar .uk-subnav>*>:first-child{color:rgba(255,255,255,0.5)}.uk-light .uk-subnav>*>a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-subnav>*>a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav>*>a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav>*>a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav>*>a:hover,.uk-card-primary.uk-card-body .uk-subnav>*>a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav>*>a:hover,.uk-card-secondary.uk-card-body .uk-subnav>*>a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav>*>a:hover,.uk-overlay-primary .uk-subnav>*>a:hover,.uk-offcanvas-bar .uk-subnav>*>a:hover,.uk-light .uk-subnav>*>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-subnav>*>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav>*>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav>*>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav>*>a:focus,.uk-card-primary.uk-card-body .uk-subnav>*>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav>*>a:focus,.uk-card-secondary.uk-card-body .uk-subnav>*>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav>*>a:focus,.uk-overlay-primary .uk-subnav>*>a:focus,.uk-offcanvas-bar .uk-subnav>*>a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-subnav>.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-subnav>.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav>.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav>.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav>.uk-active>a,.uk-card-primary.uk-card-body .uk-subnav>.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav>.uk-active>a,.uk-card-secondary.uk-card-body .uk-subnav>.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav>.uk-active>a,.uk-overlay-primary .uk-subnav>.uk-active>a,.uk-offcanvas-bar .uk-subnav>.uk-active>a{color:#fff}.uk-light .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-section-primary:not(.uk-preserve-color) .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-primary.uk-card-body .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-secondary.uk-card-body .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-overlay-primary .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before,.uk-offcanvas-bar .uk-subnav-divider>:nth-child(n+2):not(.uk-first-column)::before{border-left-color:rgba(255,255,255,0.2)}.uk-light .uk-subnav-pill>*>:first-child,.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill>*>:first-child,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>:first-child,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill>*>:first-child,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>:first-child,.uk-card-primary.uk-card-body .uk-subnav-pill>*>:first-child,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav-pill>*>:first-child,.uk-card-secondary.uk-card-body .uk-subnav-pill>*>:first-child,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav-pill>*>:first-child,.uk-overlay-primary .uk-subnav-pill>*>:first-child,.uk-offcanvas-bar .uk-subnav-pill>*>:first-child{background-color:rgba(0,0,0,0);color:rgba(255,255,255,0.5)}.uk-light .uk-subnav-pill>*>a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill>*>a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill>*>a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>a:hover,.uk-card-primary.uk-card-body .uk-subnav-pill>*>a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav-pill>*>a:hover,.uk-card-secondary.uk-card-body .uk-subnav-pill>*>a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav-pill>*>a:hover,.uk-overlay-primary .uk-subnav-pill>*>a:hover,.uk-offcanvas-bar .uk-subnav-pill>*>a:hover,.uk-light .uk-subnav-pill>*>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill>*>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill>*>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>a:focus,.uk-card-primary.uk-card-body .uk-subnav-pill>*>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav-pill>*>a:focus,.uk-card-secondary.uk-card-body .uk-subnav-pill>*>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav-pill>*>a:focus,.uk-overlay-primary .uk-subnav-pill>*>a:focus,.uk-offcanvas-bar .uk-subnav-pill>*>a:focus{background-color:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7)}.uk-light .uk-subnav-pill>*>a:active,.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill>*>a:active,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>a:active,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill>*>a:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill>*>a:active,.uk-card-primary.uk-card-body .uk-subnav-pill>*>a:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav-pill>*>a:active,.uk-card-secondary.uk-card-body .uk-subnav-pill>*>a:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav-pill>*>a:active,.uk-overlay-primary .uk-subnav-pill>*>a:active,.uk-offcanvas-bar .uk-subnav-pill>*>a:active{background-color:rgba(255,255,255,0.1);color:rgba(255,255,255,0.7)}.uk-light .uk-subnav-pill>.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-subnav-pill>.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav-pill>.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav-pill>.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav-pill>.uk-active>a,.uk-card-primary.uk-card-body .uk-subnav-pill>.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav-pill>.uk-active>a,.uk-card-secondary.uk-card-body .uk-subnav-pill>.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav-pill>.uk-active>a,.uk-overlay-primary .uk-subnav-pill>.uk-active>a,.uk-offcanvas-bar .uk-subnav-pill>.uk-active>a{background-color:#fff;color:#666}.uk-light .uk-subnav>.uk-disabled>a,.uk-section-primary:not(.uk-preserve-color) .uk-subnav>.uk-disabled>a,.uk-section-secondary:not(.uk-preserve-color) .uk-subnav>.uk-disabled>a,.uk-tile-primary:not(.uk-preserve-color) .uk-subnav>.uk-disabled>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-subnav>.uk-disabled>a,.uk-card-primary.uk-card-body .uk-subnav>.uk-disabled>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-subnav>.uk-disabled>a,.uk-card-secondary.uk-card-body .uk-subnav>.uk-disabled>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-subnav>.uk-disabled>a,.uk-overlay-primary .uk-subnav>.uk-disabled>a,.uk-offcanvas-bar .uk-subnav>.uk-disabled>a{color:rgba(255,255,255,0.5)}.uk-light .uk-breadcrumb>*>*,.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb>*>*,.uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb>*>*,.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb>*>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb>*>*,.uk-card-primary.uk-card-body .uk-breadcrumb>*>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-breadcrumb>*>*,.uk-card-secondary.uk-card-body .uk-breadcrumb>*>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-breadcrumb>*>*,.uk-overlay-primary .uk-breadcrumb>*>*,.uk-offcanvas-bar .uk-breadcrumb>*>*{color:rgba(255,255,255,0.5)}.uk-light .uk-breadcrumb>*>:hover,.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb>*>:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb>*>:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb>*>:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb>*>:hover,.uk-card-primary.uk-card-body .uk-breadcrumb>*>:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-breadcrumb>*>:hover,.uk-card-secondary.uk-card-body .uk-breadcrumb>*>:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-breadcrumb>*>:hover,.uk-overlay-primary .uk-breadcrumb>*>:hover,.uk-offcanvas-bar .uk-breadcrumb>*>:hover,.uk-light .uk-breadcrumb>*>:focus,.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb>*>:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb>*>:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb>*>:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb>*>:focus,.uk-card-primary.uk-card-body .uk-breadcrumb>*>:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-breadcrumb>*>:focus,.uk-card-secondary.uk-card-body .uk-breadcrumb>*>:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-breadcrumb>*>:focus,.uk-overlay-primary .uk-breadcrumb>*>:focus,.uk-offcanvas-bar .uk-breadcrumb>*>:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-breadcrumb>:last-child>*,.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb>:last-child>*,.uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb>:last-child>*,.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb>:last-child>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb>:last-child>*,.uk-card-primary.uk-card-body .uk-breadcrumb>:last-child>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-breadcrumb>:last-child>*,.uk-card-secondary.uk-card-body .uk-breadcrumb>:last-child>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-breadcrumb>:last-child>*,.uk-overlay-primary .uk-breadcrumb>:last-child>*,.uk-offcanvas-bar .uk-breadcrumb>:last-child>*{color:rgba(255,255,255,0.7)}.uk-light .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-section-primary:not(.uk-preserve-color) .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-section-secondary:not(.uk-preserve-color) .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-tile-primary:not(.uk-preserve-color) .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-primary.uk-card-body .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-secondary.uk-card-body .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-overlay-primary .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before,.uk-offcanvas-bar .uk-breadcrumb>:nth-child(n+2):not(.uk-first-column)::before{color:rgba(255,255,255,0.5)}.uk-light .uk-pagination>*>*,.uk-section-primary:not(.uk-preserve-color) .uk-pagination>*>*,.uk-section-secondary:not(.uk-preserve-color) .uk-pagination>*>*,.uk-tile-primary:not(.uk-preserve-color) .uk-pagination>*>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination>*>*,.uk-card-primary.uk-card-body .uk-pagination>*>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-pagination>*>*,.uk-card-secondary.uk-card-body .uk-pagination>*>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-pagination>*>*,.uk-overlay-primary .uk-pagination>*>*,.uk-offcanvas-bar .uk-pagination>*>*{color:rgba(255,255,255,0.5)}.uk-light .uk-pagination>*>:hover,.uk-section-primary:not(.uk-preserve-color) .uk-pagination>*>:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-pagination>*>:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-pagination>*>:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination>*>:hover,.uk-card-primary.uk-card-body .uk-pagination>*>:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-pagination>*>:hover,.uk-card-secondary.uk-card-body .uk-pagination>*>:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-pagination>*>:hover,.uk-overlay-primary .uk-pagination>*>:hover,.uk-offcanvas-bar .uk-pagination>*>:hover,.uk-light .uk-pagination>*>:focus,.uk-section-primary:not(.uk-preserve-color) .uk-pagination>*>:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-pagination>*>:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-pagination>*>:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination>*>:focus,.uk-card-primary.uk-card-body .uk-pagination>*>:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-pagination>*>:focus,.uk-card-secondary.uk-card-body .uk-pagination>*>:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-pagination>*>:focus,.uk-overlay-primary .uk-pagination>*>:focus,.uk-offcanvas-bar .uk-pagination>*>:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-pagination>.uk-active>*,.uk-section-primary:not(.uk-preserve-color) .uk-pagination>.uk-active>*,.uk-section-secondary:not(.uk-preserve-color) .uk-pagination>.uk-active>*,.uk-tile-primary:not(.uk-preserve-color) .uk-pagination>.uk-active>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination>.uk-active>*,.uk-card-primary.uk-card-body .uk-pagination>.uk-active>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-pagination>.uk-active>*,.uk-card-secondary.uk-card-body .uk-pagination>.uk-active>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-pagination>.uk-active>*,.uk-overlay-primary .uk-pagination>.uk-active>*,.uk-offcanvas-bar .uk-pagination>.uk-active>*{color:rgba(255,255,255,0.7)}.uk-light .uk-pagination>.uk-disabled>*,.uk-section-primary:not(.uk-preserve-color) .uk-pagination>.uk-disabled>*,.uk-section-secondary:not(.uk-preserve-color) .uk-pagination>.uk-disabled>*,.uk-tile-primary:not(.uk-preserve-color) .uk-pagination>.uk-disabled>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-pagination>.uk-disabled>*,.uk-card-primary.uk-card-body .uk-pagination>.uk-disabled>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-pagination>.uk-disabled>*,.uk-card-secondary.uk-card-body .uk-pagination>.uk-disabled>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-pagination>.uk-disabled>*,.uk-overlay-primary .uk-pagination>.uk-disabled>*,.uk-offcanvas-bar .uk-pagination>.uk-disabled>*{color:rgba(255,255,255,0.5)}.uk-light .uk-tab::before,.uk-section-primary:not(.uk-preserve-color) .uk-tab::before,.uk-section-secondary:not(.uk-preserve-color) .uk-tab::before,.uk-tile-primary:not(.uk-preserve-color) .uk-tab::before,.uk-tile-secondary:not(.uk-preserve-color) .uk-tab::before,.uk-card-primary.uk-card-body .uk-tab::before,.uk-card-primary>:not([class*='uk-card-media']) .uk-tab::before,.uk-card-secondary.uk-card-body .uk-tab::before,.uk-card-secondary>:not([class*='uk-card-media']) .uk-tab::before,.uk-overlay-primary .uk-tab::before,.uk-offcanvas-bar .uk-tab::before{border-color:rgba(255,255,255,0.2)}.uk-light .uk-tab>*>a,.uk-section-primary:not(.uk-preserve-color) .uk-tab>*>a,.uk-section-secondary:not(.uk-preserve-color) .uk-tab>*>a,.uk-tile-primary:not(.uk-preserve-color) .uk-tab>*>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-tab>*>a,.uk-card-primary.uk-card-body .uk-tab>*>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-tab>*>a,.uk-card-secondary.uk-card-body .uk-tab>*>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-tab>*>a,.uk-overlay-primary .uk-tab>*>a,.uk-offcanvas-bar .uk-tab>*>a{color:rgba(255,255,255,0.5)}.uk-light .uk-tab>*>a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-tab>*>a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-tab>*>a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-tab>*>a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-tab>*>a:hover,.uk-card-primary.uk-card-body .uk-tab>*>a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-tab>*>a:hover,.uk-card-secondary.uk-card-body .uk-tab>*>a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-tab>*>a:hover,.uk-overlay-primary .uk-tab>*>a:hover,.uk-offcanvas-bar .uk-tab>*>a:hover,.uk-light .uk-tab>*>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-tab>*>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-tab>*>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-tab>*>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-tab>*>a:focus,.uk-card-primary.uk-card-body .uk-tab>*>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-tab>*>a:focus,.uk-card-secondary.uk-card-body .uk-tab>*>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-tab>*>a:focus,.uk-overlay-primary .uk-tab>*>a:focus,.uk-offcanvas-bar .uk-tab>*>a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-tab>.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-tab>.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-tab>.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-tab>.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-tab>.uk-active>a,.uk-card-primary.uk-card-body .uk-tab>.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-tab>.uk-active>a,.uk-card-secondary.uk-card-body .uk-tab>.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-tab>.uk-active>a,.uk-overlay-primary .uk-tab>.uk-active>a,.uk-offcanvas-bar .uk-tab>.uk-active>a{color:#fff;border-color:#fff}.uk-light .uk-tab>.uk-disabled>a,.uk-section-primary:not(.uk-preserve-color) .uk-tab>.uk-disabled>a,.uk-section-secondary:not(.uk-preserve-color) .uk-tab>.uk-disabled>a,.uk-tile-primary:not(.uk-preserve-color) .uk-tab>.uk-disabled>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-tab>.uk-disabled>a,.uk-card-primary.uk-card-body .uk-tab>.uk-disabled>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-tab>.uk-disabled>a,.uk-card-secondary.uk-card-body .uk-tab>.uk-disabled>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-tab>.uk-disabled>a,.uk-overlay-primary .uk-tab>.uk-disabled>a,.uk-offcanvas-bar .uk-tab>.uk-disabled>a{color:rgba(255,255,255,0.5)}.uk-light .uk-slidenav,.uk-section-primary:not(.uk-preserve-color) .uk-slidenav,.uk-section-secondary:not(.uk-preserve-color) .uk-slidenav,.uk-tile-primary:not(.uk-preserve-color) .uk-slidenav,.uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav,.uk-card-primary.uk-card-body .uk-slidenav,.uk-card-primary>:not([class*='uk-card-media']) .uk-slidenav,.uk-card-secondary.uk-card-body .uk-slidenav,.uk-card-secondary>:not([class*='uk-card-media']) .uk-slidenav,.uk-overlay-primary .uk-slidenav,.uk-offcanvas-bar .uk-slidenav{color:rgba(255,255,255,0.7)}.uk-light .uk-slidenav:hover,.uk-section-primary:not(.uk-preserve-color) .uk-slidenav:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-slidenav:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-slidenav:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav:hover,.uk-card-primary.uk-card-body .uk-slidenav:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-slidenav:hover,.uk-card-secondary.uk-card-body .uk-slidenav:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-slidenav:hover,.uk-overlay-primary .uk-slidenav:hover,.uk-offcanvas-bar .uk-slidenav:hover,.uk-light .uk-slidenav:focus,.uk-section-primary:not(.uk-preserve-color) .uk-slidenav:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-slidenav:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-slidenav:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav:focus,.uk-card-primary.uk-card-body .uk-slidenav:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-slidenav:focus,.uk-card-secondary.uk-card-body .uk-slidenav:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-slidenav:focus,.uk-overlay-primary .uk-slidenav:focus,.uk-offcanvas-bar .uk-slidenav:focus{color:rgba(255,255,255,0.95)}.uk-light .uk-slidenav:active,.uk-section-primary:not(.uk-preserve-color) .uk-slidenav:active,.uk-section-secondary:not(.uk-preserve-color) .uk-slidenav:active,.uk-tile-primary:not(.uk-preserve-color) .uk-slidenav:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-slidenav:active,.uk-card-primary.uk-card-body .uk-slidenav:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-slidenav:active,.uk-card-secondary.uk-card-body .uk-slidenav:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-slidenav:active,.uk-overlay-primary .uk-slidenav:active,.uk-offcanvas-bar .uk-slidenav:active{color:rgba(255,255,255,0.7)}.uk-light .uk-dotnav>*>*,.uk-section-primary:not(.uk-preserve-color) .uk-dotnav>*>*,.uk-section-secondary:not(.uk-preserve-color) .uk-dotnav>*>*,.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav>*>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav>*>*,.uk-card-primary.uk-card-body .uk-dotnav>*>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-dotnav>*>*,.uk-card-secondary.uk-card-body .uk-dotnav>*>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-dotnav>*>*,.uk-overlay-primary .uk-dotnav>*>*,.uk-offcanvas-bar .uk-dotnav>*>*{background-color:rgba(0,0,0,0);border-color:rgba(255,255,255,0.9)}.uk-light .uk-dotnav>*>:hover,.uk-section-primary:not(.uk-preserve-color) .uk-dotnav>*>:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-dotnav>*>:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav>*>:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav>*>:hover,.uk-card-primary.uk-card-body .uk-dotnav>*>:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-dotnav>*>:hover,.uk-card-secondary.uk-card-body .uk-dotnav>*>:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-dotnav>*>:hover,.uk-overlay-primary .uk-dotnav>*>:hover,.uk-offcanvas-bar .uk-dotnav>*>:hover,.uk-light .uk-dotnav>*>:focus,.uk-section-primary:not(.uk-preserve-color) .uk-dotnav>*>:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-dotnav>*>:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav>*>:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav>*>:focus,.uk-card-primary.uk-card-body .uk-dotnav>*>:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-dotnav>*>:focus,.uk-card-secondary.uk-card-body .uk-dotnav>*>:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-dotnav>*>:focus,.uk-overlay-primary .uk-dotnav>*>:focus,.uk-offcanvas-bar .uk-dotnav>*>:focus{background-color:rgba(255,255,255,0.9);border-color:transparent}.uk-light .uk-dotnav>*>:active,.uk-section-primary:not(.uk-preserve-color) .uk-dotnav>*>:active,.uk-section-secondary:not(.uk-preserve-color) .uk-dotnav>*>:active,.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav>*>:active,.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav>*>:active,.uk-card-primary.uk-card-body .uk-dotnav>*>:active,.uk-card-primary>:not([class*='uk-card-media']) .uk-dotnav>*>:active,.uk-card-secondary.uk-card-body .uk-dotnav>*>:active,.uk-card-secondary>:not([class*='uk-card-media']) .uk-dotnav>*>:active,.uk-overlay-primary .uk-dotnav>*>:active,.uk-offcanvas-bar .uk-dotnav>*>:active{background-color:rgba(255,255,255,0.5);border-color:transparent}.uk-light .uk-dotnav>.uk-active>*,.uk-section-primary:not(.uk-preserve-color) .uk-dotnav>.uk-active>*,.uk-section-secondary:not(.uk-preserve-color) .uk-dotnav>.uk-active>*,.uk-tile-primary:not(.uk-preserve-color) .uk-dotnav>.uk-active>*,.uk-tile-secondary:not(.uk-preserve-color) .uk-dotnav>.uk-active>*,.uk-card-primary.uk-card-body .uk-dotnav>.uk-active>*,.uk-card-primary>:not([class*='uk-card-media']) .uk-dotnav>.uk-active>*,.uk-card-secondary.uk-card-body .uk-dotnav>.uk-active>*,.uk-card-secondary>:not([class*='uk-card-media']) .uk-dotnav>.uk-active>*,.uk-overlay-primary .uk-dotnav>.uk-active>*,.uk-offcanvas-bar .uk-dotnav>.uk-active>*{background-color:rgba(255,255,255,0.9);border-color:transparent}.uk-light .uk-accordion-title::after,.uk-section-primary:not(.uk-preserve-color) .uk-accordion-title::after,.uk-section-secondary:not(.uk-preserve-color) .uk-accordion-title::after,.uk-tile-primary:not(.uk-preserve-color) .uk-accordion-title::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-accordion-title::after,.uk-card-primary.uk-card-body .uk-accordion-title::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-accordion-title::after,.uk-card-secondary.uk-card-body .uk-accordion-title::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-accordion-title::after,.uk-overlay-primary .uk-accordion-title::after,.uk-offcanvas-bar .uk-accordion-title::after{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22rgba(255,255,255,0.7)%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%20%20%20%20%3Crect%20fill%3D%22rgba(255,255,255,0.7)%22%20width%3D%221%22%20height%3D%2213%22%20x%3D%226%22%20y%3D%220%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-light .uk-open>.uk-accordion-title::after,.uk-section-primary:not(.uk-preserve-color) .uk-open>.uk-accordion-title::after,.uk-section-secondary:not(.uk-preserve-color) .uk-open>.uk-accordion-title::after,.uk-tile-primary:not(.uk-preserve-color) .uk-open>.uk-accordion-title::after,.uk-tile-secondary:not(.uk-preserve-color) .uk-open>.uk-accordion-title::after,.uk-card-primary.uk-card-body .uk-open>.uk-accordion-title::after,.uk-card-primary>:not([class*='uk-card-media']) .uk-open>.uk-accordion-title::after,.uk-card-secondary.uk-card-body .uk-open>.uk-accordion-title::after,.uk-card-secondary>:not([class*='uk-card-media']) .uk-open>.uk-accordion-title::after,.uk-overlay-primary .uk-open>.uk-accordion-title::after,.uk-offcanvas-bar .uk-open>.uk-accordion-title::after{background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg%20width%3D%2213%22%20height%3D%2213%22%20viewBox%3D%220%200%2013%2013%22%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0A%20%20%20%20%3Crect%20fill%3D%22rgba(255,255,255,0.7)%22%20width%3D%2213%22%20height%3D%221%22%20x%3D%220%22%20y%3D%226%22%20%2F%3E%0A%3C%2Fsvg%3E")}.uk-light .uk-iconnav>*>a,.uk-section-primary:not(.uk-preserve-color) .uk-iconnav>*>a,.uk-section-secondary:not(.uk-preserve-color) .uk-iconnav>*>a,.uk-tile-primary:not(.uk-preserve-color) .uk-iconnav>*>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav>*>a,.uk-card-primary.uk-card-body .uk-iconnav>*>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-iconnav>*>a,.uk-card-secondary.uk-card-body .uk-iconnav>*>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-iconnav>*>a,.uk-overlay-primary .uk-iconnav>*>a,.uk-offcanvas-bar .uk-iconnav>*>a{color:rgba(255,255,255,0.5)}.uk-light .uk-iconnav>*>a:hover,.uk-section-primary:not(.uk-preserve-color) .uk-iconnav>*>a:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-iconnav>*>a:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-iconnav>*>a:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav>*>a:hover,.uk-card-primary.uk-card-body .uk-iconnav>*>a:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-iconnav>*>a:hover,.uk-card-secondary.uk-card-body .uk-iconnav>*>a:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-iconnav>*>a:hover,.uk-overlay-primary .uk-iconnav>*>a:hover,.uk-offcanvas-bar .uk-iconnav>*>a:hover,.uk-light .uk-iconnav>*>a:focus,.uk-section-primary:not(.uk-preserve-color) .uk-iconnav>*>a:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-iconnav>*>a:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-iconnav>*>a:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav>*>a:focus,.uk-card-primary.uk-card-body .uk-iconnav>*>a:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-iconnav>*>a:focus,.uk-card-secondary.uk-card-body .uk-iconnav>*>a:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-iconnav>*>a:focus,.uk-overlay-primary .uk-iconnav>*>a:focus,.uk-offcanvas-bar .uk-iconnav>*>a:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-iconnav>.uk-active>a,.uk-section-primary:not(.uk-preserve-color) .uk-iconnav>.uk-active>a,.uk-section-secondary:not(.uk-preserve-color) .uk-iconnav>.uk-active>a,.uk-tile-primary:not(.uk-preserve-color) .uk-iconnav>.uk-active>a,.uk-tile-secondary:not(.uk-preserve-color) .uk-iconnav>.uk-active>a,.uk-card-primary.uk-card-body .uk-iconnav>.uk-active>a,.uk-card-primary>:not([class*='uk-card-media']) .uk-iconnav>.uk-active>a,.uk-card-secondary.uk-card-body .uk-iconnav>.uk-active>a,.uk-card-secondary>:not([class*='uk-card-media']) .uk-iconnav>.uk-active>a,.uk-overlay-primary .uk-iconnav>.uk-active>a,.uk-offcanvas-bar .uk-iconnav>.uk-active>a{color:rgba(255,255,255,0.7)}.uk-light .uk-text-lead,.uk-section-primary:not(.uk-preserve-color) .uk-text-lead,.uk-section-secondary:not(.uk-preserve-color) .uk-text-lead,.uk-tile-primary:not(.uk-preserve-color) .uk-text-lead,.uk-tile-secondary:not(.uk-preserve-color) .uk-text-lead,.uk-card-primary.uk-card-body .uk-text-lead,.uk-card-primary>:not([class*='uk-card-media']) .uk-text-lead,.uk-card-secondary.uk-card-body .uk-text-lead,.uk-card-secondary>:not([class*='uk-card-media']) .uk-text-lead,.uk-overlay-primary .uk-text-lead,.uk-offcanvas-bar .uk-text-lead{color:rgba(255,255,255,0.7)}.uk-light .uk-text-meta,.uk-section-primary:not(.uk-preserve-color) .uk-text-meta,.uk-section-secondary:not(.uk-preserve-color) .uk-text-meta,.uk-tile-primary:not(.uk-preserve-color) .uk-text-meta,.uk-tile-secondary:not(.uk-preserve-color) .uk-text-meta,.uk-card-primary.uk-card-body .uk-text-meta,.uk-card-primary>:not([class*='uk-card-media']) .uk-text-meta,.uk-card-secondary.uk-card-body .uk-text-meta,.uk-card-secondary>:not([class*='uk-card-media']) .uk-text-meta,.uk-overlay-primary .uk-text-meta,.uk-offcanvas-bar .uk-text-meta{color:rgba(255,255,255,0.5)}.uk-light .uk-text-muted,.uk-section-primary:not(.uk-preserve-color) .uk-text-muted,.uk-section-secondary:not(.uk-preserve-color) .uk-text-muted,.uk-tile-primary:not(.uk-preserve-color) .uk-text-muted,.uk-tile-secondary:not(.uk-preserve-color) .uk-text-muted,.uk-card-primary.uk-card-body .uk-text-muted,.uk-card-primary>:not([class*='uk-card-media']) .uk-text-muted,.uk-card-secondary.uk-card-body .uk-text-muted,.uk-card-secondary>:not([class*='uk-card-media']) .uk-text-muted,.uk-overlay-primary .uk-text-muted,.uk-offcanvas-bar .uk-text-muted{color:rgba(255,255,255,0.5) !important}.uk-light .uk-text-primary,.uk-section-primary:not(.uk-preserve-color) .uk-text-primary,.uk-section-secondary:not(.uk-preserve-color) .uk-text-primary,.uk-tile-primary:not(.uk-preserve-color) .uk-text-primary,.uk-tile-secondary:not(.uk-preserve-color) .uk-text-primary,.uk-card-primary.uk-card-body .uk-text-primary,.uk-card-primary>:not([class*='uk-card-media']) .uk-text-primary,.uk-card-secondary.uk-card-body .uk-text-primary,.uk-card-secondary>:not([class*='uk-card-media']) .uk-text-primary,.uk-overlay-primary .uk-text-primary,.uk-offcanvas-bar .uk-text-primary{color:rgba(255,255,255,0.7) !important}.uk-light .uk-column-divider,.uk-section-primary:not(.uk-preserve-color) .uk-column-divider,.uk-section-secondary:not(.uk-preserve-color) .uk-column-divider,.uk-tile-primary:not(.uk-preserve-color) .uk-column-divider,.uk-tile-secondary:not(.uk-preserve-color) .uk-column-divider,.uk-card-primary.uk-card-body .uk-column-divider,.uk-card-primary>:not([class*='uk-card-media']) .uk-column-divider,.uk-card-secondary.uk-card-body .uk-column-divider,.uk-card-secondary>:not([class*='uk-card-media']) .uk-column-divider,.uk-overlay-primary .uk-column-divider,.uk-offcanvas-bar .uk-column-divider{column-rule-color:rgba(255,255,255,0.2)}.uk-light .uk-logo,.uk-section-primary:not(.uk-preserve-color) .uk-logo,.uk-section-secondary:not(.uk-preserve-color) .uk-logo,.uk-tile-primary:not(.uk-preserve-color) .uk-logo,.uk-tile-secondary:not(.uk-preserve-color) .uk-logo,.uk-card-primary.uk-card-body .uk-logo,.uk-card-primary>:not([class*='uk-card-media']) .uk-logo,.uk-card-secondary.uk-card-body .uk-logo,.uk-card-secondary>:not([class*='uk-card-media']) .uk-logo,.uk-overlay-primary .uk-logo,.uk-offcanvas-bar .uk-logo{color:rgba(255,255,255,0.7)}.uk-light .uk-logo:hover,.uk-section-primary:not(.uk-preserve-color) .uk-logo:hover,.uk-section-secondary:not(.uk-preserve-color) .uk-logo:hover,.uk-tile-primary:not(.uk-preserve-color) .uk-logo:hover,.uk-tile-secondary:not(.uk-preserve-color) .uk-logo:hover,.uk-card-primary.uk-card-body .uk-logo:hover,.uk-card-primary>:not([class*='uk-card-media']) .uk-logo:hover,.uk-card-secondary.uk-card-body .uk-logo:hover,.uk-card-secondary>:not([class*='uk-card-media']) .uk-logo:hover,.uk-overlay-primary .uk-logo:hover,.uk-offcanvas-bar .uk-logo:hover,.uk-light .uk-logo:focus,.uk-section-primary:not(.uk-preserve-color) .uk-logo:focus,.uk-section-secondary:not(.uk-preserve-color) .uk-logo:focus,.uk-tile-primary:not(.uk-preserve-color) .uk-logo:focus,.uk-tile-secondary:not(.uk-preserve-color) .uk-logo:focus,.uk-card-primary.uk-card-body .uk-logo:focus,.uk-card-primary>:not([class*='uk-card-media']) .uk-logo:focus,.uk-card-secondary.uk-card-body .uk-logo:focus,.uk-card-secondary>:not([class*='uk-card-media']) .uk-logo:focus,.uk-overlay-primary .uk-logo:focus,.uk-offcanvas-bar .uk-logo:focus{color:rgba(255,255,255,0.7)}.uk-light .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-section-primary:not(.uk-preserve-color) .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-section-secondary:not(.uk-preserve-color) .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-tile-primary:not(.uk-preserve-color) .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-tile-secondary:not(.uk-preserve-color) .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-card-primary.uk-card-body .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-card-primary>:not([class*='uk-card-media']) .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-card-secondary.uk-card-body .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-card-secondary>:not([class*='uk-card-media']) .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-overlay-primary .uk-logo>:not(.uk-logo-inverse):not(:only-of-type),.uk-offcanvas-bar .uk-logo>:not(.uk-logo-inverse):not(:only-of-type){display:none}.uk-light .uk-logo-inverse,.uk-section-primary:not(.uk-preserve-color) .uk-logo-inverse,.uk-section-secondary:not(.uk-preserve-color) .uk-logo-inverse,.uk-tile-primary:not(.uk-preserve-color) .uk-logo-inverse,.uk-tile-secondary:not(.uk-preserve-color) .uk-logo-inverse,.uk-card-primary.uk-card-body .uk-logo-inverse,.uk-card-primary>:not([class*='uk-card-media']) .uk-logo-inverse,.uk-card-secondary.uk-card-body .uk-logo-inverse,.uk-card-secondary>:not([class*='uk-card-media']) .uk-logo-inverse,.uk-overlay-primary .uk-logo-inverse,.uk-offcanvas-bar .uk-logo-inverse{display:inline}@media print{*,*::before,*::after{background:transparent !important;color:black !important;box-shadow:none !important;text-shadow:none !important}a,a:visited{text-decoration:underline}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}} - -/*# sourceMappingURL=uikit_blurple.css.map */
\ No newline at end of file diff --git a/static/css/uikit_blurple.css.map b/static/css/uikit_blurple.css.map deleted file mode 100644 index a3d9c90f..00000000 --- a/static/css/uikit_blurple.css.map +++ /dev/null @@ -1,154 +0,0 @@ -{ - "version": 3, - "file": "uikit_blurple.css", - "sources": [ - "../../scss/uikit/uikit_blurple.scss", - "../../scss/pysite/_variables.scss", - "../../scss/uikit/_variables-theme.scss", - "../../scss/uikit/_mixins-theme.scss", - "../../scss/uikit/_uikit-theme.scss", - "../../scss/uikit/theme/_import.scss", - "../../scss/uikit/theme/variables.scss", - "../../scss/uikit/theme/base.scss", - "../../scss/uikit/theme/link.scss", - "../../scss/uikit/theme/heading.scss", - "../../scss/uikit/theme/divider.scss", - "../../scss/uikit/theme/list.scss", - "../../scss/uikit/theme/description-list.scss", - "../../scss/uikit/theme/table.scss", - "../../scss/uikit/theme/icon.scss", - "../../scss/uikit/theme/form-range.scss", - "../../scss/uikit/theme/form.scss", - "../../scss/uikit/theme/button.scss", - "../../scss/uikit/theme/section.scss", - "../../scss/uikit/theme/container.scss", - "../../scss/uikit/theme/grid.scss", - "../../scss/uikit/theme/tile.scss", - "../../scss/uikit/theme/card.scss", - "../../scss/uikit/theme/close.scss", - "../../scss/uikit/theme/spinner.scss", - "../../scss/uikit/theme/marker.scss", - "../../scss/uikit/theme/totop.scss", - "../../scss/uikit/theme/alert.scss", - "../../scss/uikit/theme/badge.scss", - "../../scss/uikit/theme/label.scss", - "../../scss/uikit/theme/overlay.scss", - "../../scss/uikit/theme/article.scss", - "../../scss/uikit/theme/comment.scss", - "../../scss/uikit/theme/search.scss", - "../../scss/uikit/theme/nav.scss", - "../../scss/uikit/theme/navbar.scss", - "../../scss/uikit/theme/subnav.scss", - "../../scss/uikit/theme/breadcrumb.scss", - "../../scss/uikit/theme/pagination.scss", - "../../scss/uikit/theme/tab.scss", - "../../scss/uikit/theme/slidenav.scss", - "../../scss/uikit/theme/dotnav.scss", - "../../scss/uikit/theme/thumbnav.scss", - "../../scss/uikit/theme/accordion.scss", - "../../scss/uikit/theme/drop.scss", - "../../scss/uikit/theme/dropdown.scss", - "../../scss/uikit/theme/modal.scss", - "../../scss/uikit/theme/lightbox.scss", - "../../scss/uikit/theme/sticky.scss", - "../../scss/uikit/theme/offcanvas.scss", - "../../scss/uikit/theme/leader.scss", - "../../scss/uikit/theme/iconnav.scss", - "../../scss/uikit/theme/notification.scss", - "../../scss/uikit/theme/tooltip.scss", - "../../scss/uikit/theme/placeholder.scss", - "../../scss/uikit/theme/progress.scss", - "../../scss/uikit/theme/sortable.scss", - "../../scss/uikit/theme/countdown.scss", - "../../scss/uikit/theme/animation.scss", - "../../scss/uikit/theme/width.scss", - "../../scss/uikit/theme/height.scss", - "../../scss/uikit/theme/text.scss", - "../../scss/uikit/theme/column.scss", - "../../scss/uikit/theme/background.scss", - "../../scss/uikit/theme/align.scss", - "../../scss/uikit/theme/utility.scss", - "../../scss/uikit/theme/margin.scss", - "../../scss/uikit/theme/padding.scss", - "../../scss/uikit/theme/position.scss", - "../../scss/uikit/theme/transition.scss", - "../../scss/uikit/theme/inverse.scss", - "../../scss/uikit/components/_import.scss", - "../../scss/uikit/components/variables.scss", - "../../scss/uikit/components/mixin.scss", - "../../scss/uikit/components/base.scss", - "../../scss/uikit/components/link.scss", - "../../scss/uikit/components/heading.scss", - "../../scss/uikit/components/divider.scss", - "../../scss/uikit/components/list.scss", - "../../scss/uikit/components/description-list.scss", - "../../scss/uikit/components/table.scss", - "../../scss/uikit/components/icon.scss", - "../../scss/uikit/components/form-range.scss", - "../../scss/uikit/components/form.scss", - "../../scss/uikit/components/button.scss", - "../../scss/uikit/components/section.scss", - "../../scss/uikit/components/container.scss", - "../../scss/uikit/components/grid.scss", - "../../scss/uikit/components/tile.scss", - "../../scss/uikit/components/card.scss", - "../../scss/uikit/components/close.scss", - "../../scss/uikit/components/spinner.scss", - "../../scss/uikit/components/totop.scss", - "../../scss/uikit/components/marker.scss", - "../../scss/uikit/components/alert.scss", - "../../scss/uikit/components/badge.scss", - "../../scss/uikit/components/label.scss", - "../../scss/uikit/components/overlay.scss", - "../../scss/uikit/components/article.scss", - "../../scss/uikit/components/comment.scss", - "../../scss/uikit/components/search.scss", - "../../scss/uikit/components/nav.scss", - "../../scss/uikit/components/navbar.scss", - "../../scss/uikit/components/subnav.scss", - "../../scss/uikit/components/breadcrumb.scss", - "../../scss/uikit/components/pagination.scss", - "../../scss/uikit/components/tab.scss", - "../../scss/uikit/components/slidenav.scss", - "../../scss/uikit/components/dotnav.scss", - "../../scss/uikit/components/thumbnav.scss", - "../../scss/uikit/components/accordion.scss", - "../../scss/uikit/components/drop.scss", - "../../scss/uikit/components/dropdown.scss", - "../../scss/uikit/components/modal.scss", - "../../scss/uikit/components/lightbox.scss", - "../../scss/uikit/components/slideshow.scss", - "../../scss/uikit/components/slider.scss", - "../../scss/uikit/components/sticky.scss", - "../../scss/uikit/components/offcanvas.scss", - "../../scss/uikit/components/switcher.scss", - "../../scss/uikit/components/leader.scss", - "../../scss/uikit/components/iconnav.scss", - "../../scss/uikit/components/notification.scss", - "../../scss/uikit/components/tooltip.scss", - "../../scss/uikit/components/placeholder.scss", - "../../scss/uikit/components/progress.scss", - "../../scss/uikit/components/sortable.scss", - "../../scss/uikit/components/countdown.scss", - "../../scss/uikit/components/animation.scss", - "../../scss/uikit/components/width.scss", - "../../scss/uikit/components/height.scss", - "../../scss/uikit/components/text.scss", - "../../scss/uikit/components/column.scss", - "../../scss/uikit/components/cover.scss", - "../../scss/uikit/components/background.scss", - "../../scss/uikit/components/align.scss", - "../../scss/uikit/components/svg.scss", - "../../scss/uikit/components/utility.scss", - "../../scss/uikit/components/flex.scss", - "../../scss/uikit/components/margin.scss", - "../../scss/uikit/components/padding.scss", - "../../scss/uikit/components/position.scss", - "../../scss/uikit/components/transition.scss", - "../../scss/uikit/components/visibility.scss", - "../../scss/uikit/components/inverse.scss", - "../../scss/uikit/components/print.scss" - ], - "names": [], - "mappings": "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" -}
\ No newline at end of file diff --git a/static/favicon.ico b/static/favicon.ico Binary files differdeleted file mode 100644 index 046480bf..00000000 --- a/static/favicon.ico +++ /dev/null diff --git a/static/images/jams/jams_1.png b/static/images/jams/jams_1.png Binary files differdeleted file mode 100644 index 6f60301b..00000000 --- a/static/images/jams/jams_1.png +++ /dev/null diff --git a/static/images/jams/jams_10.png b/static/images/jams/jams_10.png Binary files differdeleted file mode 100644 index a1685ebf..00000000 --- a/static/images/jams/jams_10.png +++ /dev/null diff --git a/static/images/jams/jams_11.png b/static/images/jams/jams_11.png Binary files differdeleted file mode 100644 index 5dd019ac..00000000 --- a/static/images/jams/jams_11.png +++ /dev/null diff --git a/static/images/jams/jams_12.png b/static/images/jams/jams_12.png Binary files differdeleted file mode 100644 index ca75f404..00000000 --- a/static/images/jams/jams_12.png +++ /dev/null diff --git a/static/images/jams/jams_13.png b/static/images/jams/jams_13.png Binary files differdeleted file mode 100644 index b3ec813d..00000000 --- a/static/images/jams/jams_13.png +++ /dev/null diff --git a/static/images/jams/jams_14.png b/static/images/jams/jams_14.png Binary files differdeleted file mode 100644 index 6205de2a..00000000 --- a/static/images/jams/jams_14.png +++ /dev/null diff --git a/static/images/jams/jams_15.png b/static/images/jams/jams_15.png Binary files differdeleted file mode 100644 index 38deef2b..00000000 --- a/static/images/jams/jams_15.png +++ /dev/null diff --git a/static/images/jams/jams_16.png b/static/images/jams/jams_16.png Binary files differdeleted file mode 100644 index 1835c795..00000000 --- a/static/images/jams/jams_16.png +++ /dev/null diff --git a/static/images/jams/jams_17.png b/static/images/jams/jams_17.png Binary files differdeleted file mode 100644 index b62412f9..00000000 --- a/static/images/jams/jams_17.png +++ /dev/null diff --git a/static/images/jams/jams_2.png b/static/images/jams/jams_2.png Binary files differdeleted file mode 100644 index 486ace82..00000000 --- a/static/images/jams/jams_2.png +++ /dev/null diff --git a/static/images/jams/jams_3.png b/static/images/jams/jams_3.png Binary files differdeleted file mode 100644 index ea799afd..00000000 --- a/static/images/jams/jams_3.png +++ /dev/null diff --git a/static/images/jams/jams_4.png b/static/images/jams/jams_4.png Binary files differdeleted file mode 100644 index da73c511..00000000 --- a/static/images/jams/jams_4.png +++ /dev/null diff --git a/static/images/jams/jams_5.png b/static/images/jams/jams_5.png Binary files differdeleted file mode 100644 index f3782fd8..00000000 --- a/static/images/jams/jams_5.png +++ /dev/null diff --git a/static/images/jams/jams_6.png b/static/images/jams/jams_6.png Binary files differdeleted file mode 100644 index 83c74809..00000000 --- a/static/images/jams/jams_6.png +++ /dev/null diff --git a/static/images/jams/jams_7.png b/static/images/jams/jams_7.png Binary files differdeleted file mode 100644 index 1aacdff0..00000000 --- a/static/images/jams/jams_7.png +++ /dev/null diff --git a/static/images/jams/jams_8.png b/static/images/jams/jams_8.png Binary files differdeleted file mode 100644 index 9b1a9859..00000000 --- a/static/images/jams/jams_8.png +++ /dev/null diff --git a/static/images/jams/jams_9.png b/static/images/jams/jams_9.png Binary files differdeleted file mode 100644 index 9337af06..00000000 --- a/static/images/jams/jams_9.png +++ /dev/null diff --git a/static/images/jetbrains.png b/static/images/jetbrains.png Binary files differdeleted file mode 100644 index ccceb958..00000000 --- a/static/images/jetbrains.png +++ /dev/null diff --git a/static/images/partners/code monkeys.png b/static/images/partners/code monkeys.png Binary files differdeleted file mode 100644 index 198885a2..00000000 --- a/static/images/partners/code monkeys.png +++ /dev/null diff --git a/static/images/partners/functional programming.png b/static/images/partners/functional programming.png Binary files differdeleted file mode 100644 index dae5ac74..00000000 --- a/static/images/partners/functional programming.png +++ /dev/null diff --git a/static/images/partners/programming.png b/static/images/partners/programming.png Binary files differdeleted file mode 100644 index 75f4fbb1..00000000 --- a/static/images/partners/programming.png +++ /dev/null diff --git a/static/images/partners/stem.png b/static/images/partners/stem.png Binary files differdeleted file mode 100644 index 24ec97a7..00000000 --- a/static/images/partners/stem.png +++ /dev/null diff --git a/static/images/payment_icons/green.svg b/static/images/payment_icons/green.svg deleted file mode 100644 index 317ec1bf..00000000 --- a/static/images/payment_icons/green.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 72"><defs><style>.cls-1{fill:green;}</style></defs><title>Artboard 1</title><g id="Layer_2" data-name="Layer 2"><path class="cls-1" d="M36,0A35.8137,35.8137,0,0,0,12.38,8.84a34.7948,34.7948,0,0,0-3.54,3.54A35.9934,35.9934,0,0,0,59.62,63.16a34.7948,34.7948,0,0,0,3.54-3.54A35.9934,35.9934,0,0,0,36,0ZM59.61,56.07,49.4613,45.9213c-.0226.0687-.037.1386-.0609.2071a10.9065,10.9065,0,0,1-2.6627,4.1492l9.333,9.3331A30.987,30.987,0,0,1,12.39,15.93L22.5383,26.0783a11.3884,11.3884,0,0,1,2.3943-4.0939c.0944-.1034.1956-.1989.2934-.2984l-9.2967-9.2967A30.987,30.987,0,0,1,59.61,56.07Z"/><path class="cls-1" d="M41.0032,34.2656l-8.2882-2.425a2.2635,2.2635,0,0,1,.637-4.4357H38.44a4.6843,4.6843,0,0,1,2.6246.8058,1.1963,1.1963,0,0,0,1.4964-.1535l2.6707-2.6092a1.244,1.244,0,0,0-.1382-1.88,10.8515,10.8515,0,0,0-6.6382-2.3023V17.5819a1.2314,1.2314,0,0,0-1.2278-1.2279H34.7717a1.2315,1.2315,0,0,0-1.2279,1.2279v3.6836H33.352a8.4083,8.4083,0,0,0-8.3649,9.1784,8.7851,8.7851,0,0,0,6.431,7.4133l7.866,2.3022a2.2635,2.2635,0,0,1-.6369,4.4357h-5.088a4.6838,4.6838,0,0,1-2.6246-.8058,1.1964,1.1964,0,0,0-1.4965.1535L26.7675,46.552a1.244,1.244,0,0,0,.1381,1.88,10.8515,10.8515,0,0,0,6.6382,2.3023v3.6836a1.2315,1.2315,0,0,0,1.2279,1.2279h2.4558a1.2314,1.2314,0,0,0,1.2278-1.2279v-3.699A8.6688,8.6688,0,0,0,46.567,45.14a8.4271,8.4271,0,0,0-5.5638-10.8744Z"/></g></svg>
\ No newline at end of file diff --git a/static/images/payment_icons/red.svg b/static/images/payment_icons/red.svg deleted file mode 100644 index 854334d4..00000000 --- a/static/images/payment_icons/red.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 72 72"><defs><style>.cls-1{fill:#c00;}</style></defs><title>Artboard 1</title><g id="Layer_2" data-name="Layer 2"><path class="cls-1" d="M36,0A36,36,0,1,0,72,36,36,36,0,0,0,36,0ZM48.077,46.4461a9.9077,9.9077,0,0,1-9.2708,6.3764V57.05a1.4075,1.4075,0,0,1-1.4034,1.4034H34.5962A1.4074,1.4074,0,0,1,33.1929,57.05V52.84a12.4027,12.4027,0,0,1-7.5869-2.6312,1.4217,1.4217,0,0,1-.1578-2.1489L28.5,45.0778a1.3674,1.3674,0,0,1,1.71-.1754,5.3535,5.3535,0,0,0,3,.921h5.8151a2.587,2.587,0,0,0,.7279-5.07l-8.99-2.6312a10.0408,10.0408,0,0,1-7.35-8.4727,9.61,9.61,0,0,1,9.56-10.49h.2193V14.95a1.4074,1.4074,0,0,1,1.4033-1.4033h2.8066A1.4075,1.4075,0,0,1,38.8062,14.95v4.21a12.4027,12.4027,0,0,1,7.5868,2.6313,1.4217,1.4217,0,0,1,.1578,2.1489l-3.0522,2.982a1.3672,1.3672,0,0,1-1.71.1754,5.3547,5.3547,0,0,0-3-.9209h-5.815a2.587,2.587,0,0,0-.728,5.07l9.4725,2.7716A9.6312,9.6312,0,0,1,48.077,46.4461Z"/></g></svg>
\ No newline at end of file diff --git a/static/images/payment_icons/yellow.svg b/static/images/payment_icons/yellow.svg deleted file mode 100644 index 76a0bf4d..00000000 --- a/static/images/payment_icons/yellow.svg +++ /dev/null @@ -1 +0,0 @@ -<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 71.8468 71.8751"><defs><style>.cls-1{fill:#ff8000;}</style></defs><title>Artboard 1</title><g id="Layer_2" data-name="Layer 2"><path class="cls-1" d="M22.0846,2.899a1.994,1.994,0,0,0-.8093.172q-.1434.0636-.2863.1284h0L20.9,3.24l-.001,0-.0346.0159-.0014.0006-.0343.0158-.0016.0007-.0155.0071-.0018.0009-.0166.0076-.0022.001-.0139.0064-.0042.0019-.0157.0073-.0015.0007-.0143.0066-.0045.0021-.0134.0062-.0027.0013-.0149.0069L20.7,3.3319l-.0108.005-.0047.0022-.0146.0068-.0056.0026-.01.0049-.0059.0027-.0145.0068-.0049.0022-.01.0049-.0066.0031-.01.0047-.009.0042-.01.0048-.0076.0035-.0075.0036-.01.0045-.011.0052-.0078.0037-.0077.0036-.0078.0037-.0118.0056-.009.0042-.0072.0033-.0084.004L20.48,3.435l-.0141.0067-.0066.0031-.009.0042-.0056.0027-.0193.0092-.0017.0008-.01.0048-.0046.0022-.0323.0153-.0037.0018-.0106.005-.0017.0009-.02.01-.0039.0019-.01.0049-.003.0014-.0335.0161-.003.0014-.0336.0162-.003.0014-.0109.0053-.0006,0-.0231.0112-.0013.0006-.0487.0236h0A35.9612,35.9612,0,0,0,16.8579,5.41,2,2,0,0,0,18.9724,8.805,32.0261,32.0261,0,0,1,22.896,6.728a2,2,0,0,0-.8114-3.829ZM10.6829,11.136a1.9949,1.9949,0,0,0-1.48.6543l-.0008.0009-.0249.0274-.0016.0018-.0245.027L9.149,11.85l-.0119.013,0,0-.0126.014-.0012.0013-.0113.0125-.0015.0017-.012.0133-.0018.002-.0107.0118-.002.0022-.0242.027-.0018.002-.0244.0272-.002.0022-.0111.0125-.001.001-.0121.0135-.002.0023-.01.0113-.0023.0026-.012.0134-.0011.0012-.0107.0121-.0023.0026-.0237.0266-.0027.003-.0235.0265-.0022.0025-.0113.0126-.0007.0009-.0117.0132-.003.0032-.01.0109-.0022.0024-.0116.0132-.002.0023-.01.0112-.0027.0031-.0116.0131-.001.0011-.0107.0122-.0027.003-.0109.0124-.0008.001-.0114.0128-.0034.0039-.0087.01-.0029.0033-.0111.0126-.0028.0033-.01.0108-.0025.0028L8.7486,12.3l-.0022.0024-.0094.0108-.0031.0035-.0115.013-.0011.0014-.01.0118-.0031.0035-.0113.013h0l-.0111.0128-.0037.0042-.0089.01-.0026.003-.011.0127-.0031.0036-.009.01-.0026.0032-.0113.0128-.0024.003-.0094.0108-.0028.0032-.0112.013-.0019.0022-.01.0109-.0034.004-.0091.01L8.58,12.494l-.0089.01-.004.0046-.0086.01-.0025.0029-.0109.0126-.0034.0041-.0082.0095-.0035.004-.0108.0125-.0029.0034-.0086.01-.0033.0038-.0108.0127-.0025.0028-.0088.01-.004.0047-.0091.0107-.0028.0033-.01.0112-.004.0047-.0083.01-.0029.0036-.01.0121-.0043.005-.0073.0087-.0038.0043-.01.0121-.0042.0049-.0071.0084-.0044.0051-.01.0117-.0042.005-.0069.0081-.0045.0054-.0083.01-.0044.0052-.0086.01-.0042.005-.0073.0086-.0039.0046-.01.0118-.0043.0051-.0073.0086-.004.0048-.01.012-.004.0048-.0068.0082-.0045.0053-.01.0119-.0039.0046-.007.0086-.0046.0053-.0085.01-.0039.0047-.0084.01-.0045.0055-.0074.0087-.0035.0043-.01.0121L8.2,12.9411l-.0069.0082-.0043.0052-.0094.0114-.0053.0063-.0059.0069-.0051.0061-.009.011-.005.0059-.0062.0075-.0049.0059-.0071.0085-.0068.0083-.0064.0077-.0052.0063-.006.0073-.0059.007-.0082.01-.0053.0065-.0055.0067-.0053.0064-.0094.0113-.0047.0059-.0059.0071-.0052.0062-.0081.01-.0061.0075-.0056.0068-.0056.0069-.0055.0067-.0086.01-.0055.0068-.0055.0067-.0053.0065L7.986,13.2l-.0049.0059-.0061.0076-.0044.0053-.006.0072-.0086.0107-.006.0073-.0048.0058-.0056.007-.0073.0088-.0071.0088-.0051.0063-.0056.0068-.0053.0065-.009.0111-.0053.0064-.0056.0071-.0044.0054-.01.0127L7.87,13.342l-.0058.0071-.0049.006-.0074.0093-.0069.0084-.0062.0077-.0039.0048-.0065.008-.0033.0041-.0114.0142-.0038.0048-.0065.0079-.0042.0051-.01.0131-.004.0048-.0064.0081-.0036.0045-.0112.0139-.0038.0047-.0065.008L7.75,13.491l-.0214.0266-.0037.0047-.0064.008-.0017.0022-.0135.0168-.003.0038-.0067.0084-.0027.0034-.0127.0158-.0028.0036-.0067.0084-.0034.0043-.0114.0144-.0035.0043-.0065.0082-.0033.004-.0218.0276-.0028.0036-.022.0278-.0029.0036-.0071.009-.0015.0018-.0138.0175-.0022.0029-.007.0089-.0028.0036-.0131.0165-.002.0025-.0068.0087-.0032.004-.0215.0274-.003.004-.0222.0282-.0022.0028-.0072.0092-.0015.0019-.0135.0173-.0027.0034-.0069.0089-.0022.0028-.0139.0178-.0014.0018L7.4264,13.9l-.003.0039-.0219.0281-.0023.0031-.0223.0288-.0022.0028-.0075.01,0,0-.0151.0194-.0015.0022-.0074.0094-.002.0026-.0127.0166-.0029.0035-.0065.0087-.003.0037-.0215.028-.0029.0038-.0212.0276-.0033.0043-.0065.0084-.0026.0034-.0127.0165-.0023.0031-.0069.009-.0023.003-.0135.0176-.0014.002-.0071.0092-.0023.0031-.0149.02h0l-.0068.009-.0027.0035-.0211.0278-.0034.0045-.0065.0084-.0025.0034-.0119.0157-.0032.0042-.0062.0082-.004.0053-.011.0145-.0028.0038-.0065.0084-.0035.0048-.0106.014-.0036.0048-.0061.008-.0039.0052-.006.0079-.0055.0074-.0084.0111-.0041.0055-.0058.0077L7.044,14.4l-.01.013-.0044.0059-.0055.0074-.0045.006-.009.0119-.0049.0066-.0051.0068-.0055.0074-.0053.007-.0082.0109L6.977,14.49l-.0052.0069-.005.0067-.0086.0116-.0049.0065-.0053.0071-.0049.0066-.0069.0094-.0065.0087-.0051.0069-.0054.0072-.0052.007-.0074.01-.0059.008-.005.0067-.0054.0073-.0044.0061-.0089.0119-.0045.0062-.006.008-.0043.0057-.0089.0122-.0045.0062-.0054.0073-.0049.0065-.0057.0078-.0079.0108-.005.0069-.0048.0065-.0065.0088-.0053.0072-.0071.01-.0044.0059-.0061.0083-.0042.0056-.009.0125-.0038.0051-.0067.0092-.0035.0049-.01.0131-.0029.0039-.0074.01-.0036.0048-.01.0133-.002.0027-.0082.0112-.0033.0045-.0091.0127-.0012.0015-.01.0133-.0033.0046-.0084.0117-.0015.0021-.01.0139-.0027.0037-.0083.0115-.0023.0031-.01.0138-.0025.0035-.0082.0112-.0025.0034-.01.0144-.0008.0009-.01.0139-.0017.0025-.0212.0294-.0017.0024-.01.0143,0,0-.0109.0151-.0014.002-.01.0136L6.553,15.07l-.011.0153,0,0L6.5312,15.1l-.001.0013-.0219.0307-.0008.0012-.0449.0632h0q-.1809.2552-.3575.5136a2,2,0,1,0,3.3022,2.2572,32.2789,32.2789,0,0,1,2.755-3.4863,2,2,0,0,0-1.4792-3.3454ZM3.5735,23.27a2.0011,2.0011,0,0,0-1.8967,1.367c-.0726.2184-.1428.4368-.2113.657l0,.0009-.0119.0389,0,0-.0041.0131h0l-.012.0389-.0005.0017-.0113.0367-.001.0032-.0035.0116-.0006.0018-.0071.0235-.0006.002-.0035.0111-.0012.004-.0106.0348-.0012.0042-.0034.0111-.001.0031-.0061.02-.0015.0047-.003.01-.0016.0052-.01.0331-.0019.006-.0028.01-.0017.0056-.0052.0174-.0017.0058-.003.01-.0017.0059-.0067.0221,0,.001-.0027.009-.0021.0072-.0026.0086-.0026.0088-.0039.0132-.0024.0078-.0027.0091-.0021.0072-.0025.0085-.004.0137-.0028.0093-.002.0067-.0027.0092-.002.0069-.0044.0152-.0022.0074-.0026.0088-.0023.0076-.0025.0085-.0041.0141-.0022.0077-.0024.0082-.0025.0085-.0029.01-.0029.01-.0031.0105-.0022.0073-.0027.01-.0021.0069-.0041.0144L1.26,25.98l-.0027.0091-.0021.0074-.0033.0116-.0025.0087-.0032.011-.0019.0066-.0031.0107-.0017.0061-.0043.0151-.0018.0064-.0029.01-.002.0066-.0043.0151-.0014.0049-.0033.0117-.002.0068-.0033.0116-.0012.0046-.0045.0157-.0017.0059-.0031.0109-.0018.0063-.0043.0154-.0014.0051-.0032.0114-.0019.0064-.0031.0113-.0016.0055-.0044.0155-.0016.006-.0029.01-.002.0071-.0042.0152-.0013.0044-.0034.0123-.0017.0061-.0034.0123-.0012.0043-.0044.0157-.0016.0059-.0031.0112-.0017.0061-.0042.0152-.0016.0059-.003.0107-.0019.0069-.0028.01-.0023.0084L1.13,26.44l-.0018.0068-.0029.01-.0018.0064-.0041.0152-.0016.006-.0029.0106-.002.0071-.003.0112-.0014.005-.0042.0154-.0018.0065L1.1,26.5515l-.0017.0064-.0041.0154-.0015.0053-.0029.011-.002.0069-.0029.011-.0018.0071-.0038.0138-.0019.0068-.0025.01-.002.007-.004.0149-.0016.0062-.0029.0108-.0019.0068-.0029.0111-.0018.0071-.0036.0132-.0019.0074-.0027.01-.0018.0069-.0039.015-.0017.0063-.0027.01-.0019.0069-.0029.0108-.0024.0095-.003.0112-.002.0076-.0025.0093-.0018.0072-.0039.0147-.002.0075-.0023.0089-.0022.0084-.0024.0094-.0027.01-.0028.0109-.0021.008L1,26.9273l-.002.0077L.9941,26.95l-.002.0075L.99,26.966l-.0021.0079-.0026.01-.0026.01-.0029.011-.0019.0076-.0022.0087L.9734,27.03.97,27.0437l-.0021.0081L.9655,27.06l-.0021.0084-.0023.0088-.0033.0132-.0021.0082-.0023.0088-.0021.0082-.002.0084-.0036.014-.0022.0086-.0019.0076-.0022.0089-.002.0077-.0038.0151-.0018.0074L.93,27.2025l-.002.0078-.0021.0084-.0035.014L.92,27.2418l-.0018.0071-.0025.01-.0014.0059L.91,27.2821l-.0014.0057-.0025.01-.0015.006-.0084.0338-.0012.0053-.0026.01-.0012.0048-.0047.0187-.0014.0059-.0025.01-.0013.0057-.0055.0224,0,.0011-.0025.01-.0016.0062-.0024.01-.0009.0032-.0052.0219-.0009.0032-.0027.0114-.0009.0041-.0087.0356-.0011.0045-.0026.0109-.0008.0031L.84,27.5685l-.0008.0034-.0027.0116-.0009.0031-.0088.037-.0007.003-.0089.0376-.0006.0024-.0028.012-.0006.0028-.0089.0376-.0006.0025-.009.0382,0,.002-.0031.0127v.0008l-.0092.0391,0,.0023-.0089.0386,0,.0015-.003.0124-.0006.0026L.7594,27.91l0,.0014Q.58,28.6908.4352,29.483A2,2,0,0,0,4.3705,30.2a31.87,31.87,0,0,1,1.1012-4.298A2.0014,2.0014,0,0,0,3.5735,23.27ZM2.0025,37.2511c-.0631,0-.127.003-.1911.0091A2,2,0,0,0,.0091,39.44q.0642.6788.1537,1.35v0l.0052.0387v0l.0078.0576v.0011l.0052.0383v0l.0025.0188,0,.0007.0052.0381v.0012l.0081.0574v0l.0054.0385v0L.211,41.14V41.14l.0138.0962,0,.0011.0083.0569,0,.0011.0056.0379,0,.0009.0086.0573v0q.2,1.3352.4976,2.6371l0,.0012.0082.036.0006.0028.0039.0167v.0009l.0043.0181,0,.0017.0037.0161.0006.0027.004.0175,0,0,.0039.0172.0011.0044.0029.0127.0011.005.0038.016.0013.0056.0025.0106.0018.0077.0022.01.0016.0065.0034.0147.0019.0083.0019.008.0021.0088.0015.0066.0043.0182.0011.0045.0026.0107.0011.0047.0086.0366,0,.002.002.0085a2,2,0,0,0,3.891-.9277,32.0309,32.0309,0,0,1-.7248-4.38,2,2,0,0,0-1.9887-1.8114ZM6.2032,50.6667a2.0006,2.0006,0,0,0-1.7414,2.9809l.0066.0117v0l.0265.047,0,.0008.0194.0342.0009.0016.0191.0337.0009.0016.0194.034.0006.001.0064.0112.0008.0014.0193.0337.001.0017.0189.033.0015.0027.0186.0325.0015.0024.0189.0328.0013.0021.0062.0109,0,.0009.0194.0335.0017.0029.0188.0326.0011.0019.019.0326.0015.0027.0062.0105.0007.0013.012.0206.0014.0023.0062.0105.0013.0024.0125.0214,0,0,.0061.0106.0016.0025.0187.032.002.0033.0183.0312.0022.0036.0056.01.0022.0038.01.0171.0026.0045.0052.0087.0033.0056.0083.0142.0037.006.005.0086.0032.0054.0172.029.0034.0056.0049.0084.0041.0069.0076.0128.0039.0064.005.0084.0034.0058.0082.0138.0038.0062.0049.0082.0038.0065.0076.0128.0042.0068.0048.0081.004.0067.0044.0072.0074.0126.0042.0069.0047.0078.0042.0069.0058.01.0054.0089.005.0084.0042.0067.0055.0092.0045.0075.0067.0111.0037.006.0052.0087.0038.0062.0078.013.0034.0057.0059.01.0032.0054.0084.0138.0024.004.0066.0108.0031.0051.0081.0135.0022.0035.0071.0117.0032.0053.0068.0112.0022.0035.0083.0136.0034.0057.0063.01.0028.0045.0085.0142.0025.0039.0069.0114.0026.0041.0087.0142.0023.0038.007.0115.0027.0043.0089.0146,0,.0006.0089.0145.0022.0035.0081.0132.0013.0021.0093.0151.0018.0029.0081.013.0016.0026.0092.0151.0016.0025.0081.0129.0019.0032.0188.0305.0019.0029.019.0306.0017.0027.02.0313.0006.001.01.0159h0l.0414.0661v0q.8779,1.3987,1.8782,2.7089a2,2,0,1,0,3.18-2.4268,32.1847,32.1847,0,0,1-2.4438-3.7089,1.9993,1.9993,0,0,0-1.7441-1.0185Zm9.29,10.5691a2,2,0,0,0-1.2016,3.6l.0051.004.0022.0016.0179.0134.0026.0018.01.0073.0019.0014.0309.0229.0008.0007.0316.0236.0008.0005a36.0508,36.0508,0,0,0,3.5565,2.3309l0,0,.0342.02.002.001.0324.0186.0032.0018.01.0059.0018.0011.02.0112.0029.0018.01.0055.004.0023.0187.0106.0025.0015.0094.0053.0051.0028.0087.005.0066.0038.0138.0078.0061.0034.0085.0047.0072.0042.0122.0069.0072.004.0078.0044.0075.0043.0113.0063.0083.0047.0077.0043.0075.0043.0068.0038.013.0073.0065.0037.009.005.0061.0034.0136.0076.0049.0028.0111.0062.0042.0024.0148.0083.0027.0014.0129.0073.0043.0023.0133.0075.002.0011.015.0083.004.0023.0129.0071.0026.0015.016.0088.0016.0009.0143.0079.0027.0015.0161.0089,0,0,.0155.0085.0023.0014.0323.0179.0011.0005a2,2,0,0,0,1.9312-3.5029A32.1669,32.1669,0,0,1,16.69,61.6349a1.9909,1.9909,0,0,0-1.1971-.3991Zm12.7537,5.912a2,2,0,0,0-.4431,3.95q.7907.18,1.5943.326h.0011l.0568.01h0l.038.0068h.0006l.056.01.0021,0,.0366.0064.0021,0,.0165.0029.0022,0,.0182.0031.0011,0,.0168.003.0029,0,.0169.003.0011,0,.0183.0031.0019,0,.016.0028.0032.0006.0355.006.0037.0006.0153.0027.0026.0005.0176.0029.0032.0005.0146.0025.0041.0007.0166.0028.0009,0,.0176.0029.0039.0007.0142.0024.004.0007.0176.0029.0008,0,.0165.0027.0044.0007.0155.0026.002,0,.0174.0029.0042.0007.0135.0022.0048.0008.0172.0028h0l.0174.0029.0045.0007.0135.0023.0044.0006.0175.0029.0021,0,.0148.0025.0053.0008.0144.0023.0029.0005.0169.0027.0052.0009.0126.002.0051.0008.017.0027.0023,0,.0153.0024.0046.0008.0137.0021.0043.0007.0168.0027.0043.0006.0134.0022.005.0008.0164.0025h.0008l.0172.0027.005.0008.0136.0022.004.0006.0173.0026.003.0005.0145.0022.0049.0008.0146.0023.003,0,.0175.0028.0032,0,.0152.0023.0032.0006.0356.0053.0044.0007.0146.0023.0029,0,.0176.0026.0036.0006.0144.0022.0042.0006.0352.0053.0039.0005.0147.0022.0035.0005.0179.0027h.0011l.016.0024.0049.0007.0155.0023.0018,0,.0184.0027.002,0,.0161.0023.0031,0,.0362.0053.0029,0,.0164.0024.0017,0,.0188.0027h.0005l.0174.0025.0031.0005.0363.0052.0024,0,.017.0023.0015,0,.0373.0052.0019,0,.0375.0052.0008,0,.0174.0024.0025,0,.0372.0051.0015,0,.0565.0077h.0016l.0379.0052h0l.0187.0025.0008,0,.0385.0051h0q.8355.1112,1.6826.1836.0869.0075.1726.0074a2,2,0,0,0,.1681-3.9928,32.06,32.06,0,0,1-4.3868-.684,1.9994,1.9994,0,0,0-.4469-.05Zm18.6287-.9762a1.9956,1.9956,0,0,0-.6486.1086,31.8616,31.8616,0,0,1-4.2876,1.1414,2,2,0,1,0,.7566,3.9278q1.1522-.222,2.2771-.5162h0l.0376-.01h0l.0558-.0147.0013,0,.0364-.01.0018,0,.0171-.0046.001,0,.0179-.0048.0021-.0005.0161-.0044.0022-.0005.0355-.01.0031-.0008.0161-.0044.0013,0,.0177-.0048.0026-.0006.015-.0041.0036-.0009.0341-.0093.0043-.0011.0153-.0042.0018,0,.0173-.0048.0032-.0009.0144-.0039.0036-.0009.0172-.0047.0015-.0005.0158-.0043.0039-.001.0144-.004.0031-.0009.0163-.0045.0048-.0013.0124-.0034.0054-.0014.016-.0045.0038-.001.0129-.0036.0054-.0015.0137-.0038.0033-.0009.0159-.0045.0058-.0016.0115-.0032L45.54,70.68l.0158-.0044.0054-.0015.011-.0031.007-.0019.0107-.003.0063-.0018.0144-.0041.007-.0019.01-.0028.0069-.002.0149-.0041.0063-.0018.01-.0028.0076-.0022.01-.003.0083-.0023.0123-.0034.0078-.0023.0083-.0024.0082-.0023.01-.0027.0133-.0038.0071-.0021.0093-.0026.0061-.0017.0162-.0047.0072-.002.0088-.0026.0072-.002.0092-.0027.0051-.0014.0182-.0053.0055-.0016.01-.0029.0055-.0016.0192-.0055.0038-.0011.0111-.0032.0041-.0012.0349-.01.0042-.0012.0111-.0033.0024-.0007.0237-.0069.0012,0,.0119-.0035.003-.0008.0373-.011.0013,0,.0389-.0114.0005,0,.0128-.0038.0011,0,.038-.0112.0021-.0006q.7054-.21,1.3985-.4476a2,2,0,0,0-.6525-3.891ZM58.943,58.951a1.9937,1.9937,0,0,0-1.3585.5326,32.2611,32.2611,0,0,1-3.4607,2.7872,2,2,0,1,0,2.2876,3.2813,36.1654,36.1654,0,0,0,3.8911-3.1338,2,2,0,0,0-1.36-3.4673Zm8.1319-11.48a2.0008,2.0008,0,0,0-1.837,1.2073,31.9823,31.9823,0,0,1-2.04,3.9426,2,2,0,1,0,3.4162,2.081A35.8955,35.8955,0,0,0,68.91,50.2653a2.0012,2.0012,0,0,0-1.8349-2.7938Zm2.78-13.7882h-.0186a2.011,2.011,0,0,0-1.9908,2.0182L67.8468,36a32.4731,32.4731,0,0,1-.2651,4.1415,2,2,0,0,0,1.7275,2.2395,2.0257,2.0257,0,0,0,.2586.0167,2.0006,2.0006,0,0,0,1.9811-1.7442q.0783-.607.1363-1.22v0l.0067-.0712V39.36l.0049-.053,0-.0006.0014-.0168v-.0016l.0048-.053v-.0012l.0015-.0163v-.0017l.0046-.0527,0-.0018.0014-.0162,0-.0013.003-.0353v-.0016l.0013-.0152,0-.0033.0012-.0148,0-.0023.0028-.0343,0-.0034.0013-.014,0-.0033L71.7237,39h0l.0014-.0177,0-.0017.0012-.015,0-.004.0012-.0137,0-.0033.0013-.0168v0l.0014-.0172,0-.0029.0011-.0141,0-.0039.0011-.0142,0-.0029.0027-.0338,0-.0043.0009-.0127,0-.0047.0011-.0141V38.8l.0014-.017,0-.0028.001-.0142,0-.0042.0009-.013,0-.0042.0011-.0153v-.0016l.0012-.0169,0-.0037.0009-.0129.0005-.0052.0008-.0119,0-.0051.0023-.0328.0005-.0059.0007-.0108.0005-.0063.0009-.0114,0-.005.0011-.0163,0-.0035.0009-.013,0-.006.0009-.0111,0-.0055.0009-.013,0-.0038.0013-.0163,0-.005.0009-.0113,0-.0066.0007-.01.0005-.0065.0009-.0123,0-.0041.0011-.0159,0-.0059.0007-.0106,0-.0069.0007-.01,0-.0064.0009-.0128.0006-.0086.0006-.0106.0005-.0075.0006-.0088.0005-.0078.0006-.01.0005-.0065.0009-.0157,0-.0052.0006-.0112.0005-.0068.0006-.01.0005-.0071.0006-.0107,0-.0057.001-.0154,0-.0071.0006-.0095,0-.0075.0005-.009.0005-.0075.0006-.0107.0006-.01.0006-.0105.0005-.0079.0005-.0086,0-.0079.0005-.009.0005-.0075.0008-.0153,0-.0055.0006-.011,0-.0068.0006-.01,0-.0069.0007-.0095,0-.0073.0009-.0152,0-.0065.0006-.01,0-.0072.0005-.01,0-.007.0006-.0108,0-.0071.0009-.0145,0-.0059.0007-.0105,0-.0069.0005-.01,0-.0064.0007-.0134,0-.0072.0006-.0116,0-.007.0005-.01,0-.007.0005-.0107,0-.0057.0007-.0158,0-.0062,0-.0105,0-.007.0005-.0094,0-.0075,0-.0106,0-.0058.0007-.0152.0005-.0078,0-.0092,0-.007,0-.01,0-.0069.0006-.0121,0-.0068.0006-.0129,0-.0075,0-.0094,0-.0073,0-.0095,0-.0072.0007-.0155,0-.0051.0005-.0113,0-.0074.0005-.0093,0-.0073.0005-.01,0-.0066.0007-.0158,0-.0057,0-.0106,0-.0073,0-.01,0-.0069,0-.011,0-.0064.0007-.0147,0-.0072,0-.0093,0-.0078,0-.0094,0-.0069.0005-.0134,0-.0065.0005-.0127,0-.0062.0005-.01,0-.0069,0-.0107,0-.006.0006-.0156,0-.0066,0-.01,0-.0073,0-.009,0-.0082,0-.009,0-.0072.0005-.0154,0-.0067,0-.01,0-.0071,0-.01,0-.0076,0-.01,0-.01,0-.0116,0-.0073,0-.0091,0-.0078,0-.009,0-.0077.0005-.0154v-.0054l0-.0111,0-.0073,0-.0094,0-.0075,0-.01,0-.007,0-.0155v-.0064l0-.01,0-.0073,0-.01,0-.0071,0-.011,0-.0063,0-.0153v-.006l0-.0106v-.0067l0-.0109v-.006l0-.0159v-.0023l0-.0147,0-.0057,0-.0113,0-.0063,0-.0109v-.006l0-.0156,0-.0062,0-.0109v-.0065l0-.01,0-.0072,0-.0108v-.0057l0-.016v-.0059l0-.0107,0-.0069v-.01l0-.0067,0-.0139v-.0025l0-.0159v-.007l0-.01v-.0067l0-.0107v-.006l0-.0163v-.0033l0-.0132V36.66l0-.01v-.0173l0-.0064,0-.0157v-.0062l0-.01v-.0242l0-.0119v-.0046l0-.0164v-.005l0-.0119v-.0228l0-.0169h0l0-.0168V36.44l0-.0122v-.0045l0-.0169v-.0025l0-.0143v-.04l0-.0165v-.0573l0-.0159v-.0792l0-.0117V36h0v-.0636q0-.1357-.0016-.2712v-.019a1.989,1.989,0,0,0-1.99-1.9629ZM66.8169,19.95a2.0009,2.0009,0,0,0-1.82,2.8279,31.8491,31.8491,0,0,1,1.5489,4.1578,2,2,0,0,0,3.8368-1.1308q-.3781-1.2831-.8477-2.5249l-.0005-.0013-.0134-.0355,0-.0009-.0136-.0359v0l-.0066-.0171L69.5,23.1879l-.0131-.0344-.0012-.0032-.006-.0156-.0005-.0012-.0063-.0167-.0013-.0032-.0055-.0142-.0011-.0031-.0063-.0164-.0011-.003-.0053-.0133-.0017-.0046-.0061-.0157-.0005-.0014-.0058-.0151-.002-.0051-.0048-.0125-.0015-.0038-.0059-.0153-.0023-.0058-.004-.0106-.0023-.006-.0059-.0148-.002-.0052-.0041-.0105L69.401,22.93l-.0039-.01-.0035-.0089L69.3891,22.9l-.0027-.007-.0033-.0086-.0031-.0076-.0052-.0133-.0033-.0085-.0027-.0069-.0037-.0092-.0023-.0059-.0061-.0157-.0025-.0063-.0036-.0091-.0025-.0065-.0072-.0183-.0014-.0032-.0039-.01-.002-.0049-.004-.01-.0006-.0016-.0088-.0221-.0012-.0031-.0045-.0115,0-.0008L69.3,22.6729l-.0008-.0019-.0146-.0367,0-.0008q-.3064-.766-.6467-1.5143a2,2,0,0,0-1.82-1.1688ZM58.477,8.6241a2,2,0,0,0-1.3324,3.4922,32.343,32.343,0,0,1,3.1038,3.1809,2,2,0,0,0,3.0525-2.5851A36.2413,36.2413,0,0,0,59.8056,9.13a1.9924,1.9924,0,0,0-1.3286-.5058ZM46.2757,1.6284a2,2,0,0,0-.6125,3.9043,31.8707,31.8707,0,0,1,4.1184,1.6516,2,2,0,0,0,1.7476-3.5981q-1.4552-.7053-2.9817-1.2818l-.001,0L48.51,2.29l-.0026-.001L48.472,2.276l-.0029-.0011-.0108-.004-.0043-.0016-.0181-.0068-.0054-.002-.0094-.0035-.0057-.0021-.0317-.0118-.0067-.0025-.0089-.0033-.0076-.0028L48.3474,2.23l-.0086-.0032-.0075-.0027-.01-.0036-.0063-.0024-.0146-.0053L48.2945,2.21l-.0109-.0041-.0051-.0018-.0158-.0058-.0038-.0014-.0133-.0049-.0041-.0015-.0333-.0122-.0036-.0013-.0152-.0056-.0017-.0006L48.17,2.1645l-.0015,0-.016-.0058-.0022-.0009-.035-.0126-.0019-.0007-.0353-.0128-.0015-.0006q-.5892-.2127-1.1879-.4055a1.994,1.994,0,0,0-.6132-.0967ZM35.8468,0h-.2181l-.0176,0H35.47l-.0171,0h-.024l-.0146,0h-.003l-.0173,0h-.0242l-.017,0H35.35l-.0149,0h-.0243l-.0166,0h-.0057l-.012,0H35.27l-.012,0h-.006l-.0164,0h-.0068l-.01,0H35.21l-.0115,0H35.193l-.0163,0H35.17l-.0111,0-.0067,0-.0131,0-.0081,0-.013,0-.0068,0-.0111,0h-.0065l-.0166,0h-.0057l-.0116,0h-.0076l-.0109,0h-.0064l-.0163,0-.0067,0-.0108,0-.0075,0-.0115,0h-.0059l-.016,0-.0076,0-.01,0-.0076,0-.0126,0h-.0069l-.0137,0-.0078,0-.01,0-.0073,0-.014,0-.0086,0-.0105,0-.0083,0-.0094,0-.0082,0-.0153.0005-.0082,0-.0087,0-.0091,0-.0087,0-.0087,0-.0149.0005-.0089,0-.0084,0-.0088,0-.0088,0-.014,0-.0095,0-.0091,0-.0078,0-.01,0-.0065,0L34.6339.02l-.0069,0-.01,0-.0066,0-.01,0-.0055,0L34.5753.022l-.0065,0-.01,0-.0067,0-.0351.0012-.0061,0-.0107,0-.0057,0-.0209.0008-.0041,0-.0105,0-.0066,0-.01,0-.0051,0L34.416.0279l-.005,0-.0107,0-.0059,0-.0111,0h-.002L34.3582.03l-.0053,0-.0111.0005-.0055,0L34.3.0327l-.005,0-.0112,0-.0045,0-.0375.0017-.0048,0-.0113.0005-.0046,0-.0236.001h-.0018l-.012.0006-.0045,0-.0119.0005h-.0015L34.14.04h-.0024l-.0127.0006H34.122l-.04.0019H34.08l-.0133.0006H34.065l-.0407.002h-.0022l-.0134.0007h0l-.0422.0022h-.0014l-.0567.003h-.0006q-1.5432.0819-3.05.2917a2,2,0,0,0,.5536,3.9615A32.4354,32.4354,0,0,1,35.8468,4h0q.5463,0,1.0882.0181.0341.0012.0677.0012A2,2,0,0,0,37.0705.02L37.0381.0193h-.0025l-.0116,0-.0053,0-.0109,0-.0045,0L36.9839.0176l-.0071,0-.009,0-.0081,0-.0085,0-.0111,0-.01,0-.0118,0-.0073,0-.01,0h-.0063l-.0141,0h-.0031L36.8605.014h-.0046l-.0131,0h-.0049l-.016-.0005h-.0012l-.0182,0H36.8l-.0157,0h-.0033l-.0167,0h-.001l-.0186,0h-.0012l-.0166,0h-.003l-.0174,0h0L36.67.0092h-.0021l-.017,0h-.0013L36.6121.008H36.61l-.0174,0h-.0012L36.5545.0068h-.0009l-.0177,0h-.0013L36.4972.0058h-.0008l-.0174,0h-.0022L36.44.0048h-.0008l-.0174,0H36.42l-.037-.0006h0l-.0177,0h-.0023l-.0173,0H36.344l-.0367,0h-.021l-.0365,0H36.247l-.0153,0h-.0033l-.0359,0h-.04l-.0174,0h-.2885Z"/><path class="cls-1" d="M40.85,34.2656l-8.2882-2.425a2.2635,2.2635,0,0,1,.637-4.4357h5.088a4.6838,4.6838,0,0,1,2.6246.8058,1.1964,1.1964,0,0,0,1.4965-.1535l2.6706-2.6092a1.244,1.244,0,0,0-.1381-1.88,10.8515,10.8515,0,0,0-6.6382-2.3023V17.5819a1.2315,1.2315,0,0,0-1.2279-1.2279H34.6185a1.2314,1.2314,0,0,0-1.2278,1.2279v3.6836h-.1919a8.4083,8.4083,0,0,0-8.3649,9.1784,8.7852,8.7852,0,0,0,6.431,7.4133l7.8661,2.3022a2.2635,2.2635,0,0,1-.637,4.4357H33.406a4.684,4.684,0,0,1-2.6246-.8058,1.1963,1.1963,0,0,0-1.4964.1535L26.6143,46.552a1.244,1.244,0,0,0,.1382,1.88,10.8513,10.8513,0,0,0,6.6382,2.3023v3.6836a1.2314,1.2314,0,0,0,1.2278,1.2279h2.4558a1.2315,1.2315,0,0,0,1.2279-1.2279v-3.699A8.6686,8.6686,0,0,0,46.4138,45.14,8.427,8.427,0,0,0,40.85,34.2656Z"/></g></svg>
\ No newline at end of file diff --git a/static/js/script.js b/static/js/script.js deleted file mode 100644 index 3e01bd1b..00000000 --- a/static/js/script.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";function getScript(url,integrity,cross_origin){const script=document.createElement("script");script.type="text/javascript",script.src=url,script.defer=!0,void 0!==integrity&&(script.integrity=integrity),void 0!==cross_origin&&(script.crossOrigin=cross_origin),document.getElementsByTagName("head")[0].appendChild(script)}function setClass(selector,my_class){document.querySelector(selector).className=my_class}function removeClass(selector,my_class){const element=document.querySelector(selector),reg=new RegExp(`(^| )${my_class}($| )`,"g");element.className=element.className.replace(reg," ")}function error_typewriter(){const app=document.getElementById("error"),typewriter=new Typewriter(app,{loop:!1,deleteSpeed:40,typingSpeed:"natural",devMode:!1});document.getElementById("terminal-close").onclick=function(){const app=document.getElementById("win"),current_class=app.getAttribute("class");app.setAttribute("class",`${current_class} uk-animation-scale-up uk-animation-reverse`),typewriter.stop()},typewriter.appendText("Python 3.6.4 (default, Jan 5 2018, 02:35:40)\n").appendText("[GCC 7.2.1 20171224] on darwin\n").appendText('Type "help", "copyright", "credits" or "license" for more information.\n').appendText(">>> ").pauseFor(1e3).typeString("impor requests").deleteChars(9).typeString("t requests\n").appendText(">>> ").pauseFor(750).changeSettings({typingSpeed:"natural"}).typeString(`response = requests.${window._RequestMethod}('https://pythim`).deleteChars(2).typeString("ondiscord.con/").deleteChars(2).typeString(`m${window._Path}')\n`).pauseFor(1e3).appendText(`<Response [${window._Code}]>\n>>> `).typeString("# hmmmm").pauseFor(1e3).deleteChars(7).pauseFor(1e3).typeString("response.text\n").appendText(`${window._ErrorMsg}\n>>> `).start()}setClass("html","prevent-fouc"),document.onreadystatechange=function(){"interactive"===document.readyState&&(removeClass("html","prevent-fouc"),getScript("https://pro.fontawesome.com/releases/v5.1.0/js/all.js","sha384-E5SpgaZcbSJx0Iabb3Jr2AfTRiFnrdOw1mhO19DzzrT9L+wCpDyHUG2q07aQdO6E","anonymous"),getScript("https://cdnjs.cloudflare.com/ajax/libs/ace/1.3.3/ace.js"),getScript("https://cdn.jsdelivr.net/npm/flatpickr"))},function(){const startjam=new Date(Date.UTC(2018,2,23)),endjam=new Date(Date.UTC(2018,2,26)),now=Date.now();let goal;if(now+1e3<endjam.getTime()){UIkit.notification({message:'<div class=\'uk-text-center\'> <span id="countdown-title" class="uk-text-center"> <a href="/info/jams">Code Jam</a> Countdown </span> <p class=\'uk-text-large\' id="countdown-remaining">...</p><small style=\'font-size: 0.6em;\'>(Tap/click to dismiss)</small></div>',pos:"bottom-right",timeout:endjam-now});const heading=document.getElementById("countdown-title");now>startjam.getTime()?(heading.innerHTML='Current <a href="/info/jams">code jam</a> ends in...',goal=endjam.getTime()):(heading.innerHTML='Next <a href="/info/jams">code jam</a> starts in...',goal=startjam.getTime());const refreshCountdown=setInterval(()=>{let delta=goal-Date.now();if(delta<=1e3)return clearInterval(refreshCountdown),location.reload();let days=Math.floor(delta/864e5);delta-=864e5*days;let hours=Math.floor(delta/36e5);delta-=36e5*hours;let minutes=Math.floor(delta/6e4);delta-=6e4*minutes;let seconds=Math.floor(delta/1e3);days<10&&(days=`0${days}`),hours<10&&(hours=`0${hours}`),minutes<10&&(minutes=`0${minutes}`),seconds<10&&(seconds=`0${seconds}`);try{document.getElementById("countdown-remaining").innerHTML=`${days}:${hours}:${minutes}:${seconds}`}catch(e){return clearInterval(refreshCountdown)}},500)}}();class JamActions{constructor(url,csrf_token){this.url=url,this.csrf_token=csrf_token}send(action,method,data,callback){data.action=action,$.ajax(this.url,{data:data,dataType:"json",headers:{"X-CSRFToken":this.csrf_token},method:method}).done(data=>callback(!("error_code"in data),data)).fail(()=>callback(!1))}send_json(action,method,data,callback){data.action=action,$.ajax(this.url,{data:JSON.stringify(data),dataType:"json",headers:{"X-CSRFToken":this.csrf_token},contentType:"application/json",method:method}).done(data=>callback(!("error_code"in data),data)).fail(()=>callback(!1))}set_state(jam,state,callback){this.send("state","POST",{jam:jam,state:state},callback)}get_questions(callback){this.send("questions","GET",{},callback)}create_question(data,callback){this.send_json("questions","POST",data,callback)}delete_question(id,callback){this.send("question","DELETE",{id:id},callback)}associate_question(form,question,callback){this.send("associate_question","POST",{form:form,question:question},callback)}disassociate_question(form,question,callback){this.send("disassociate_question","POST",{form:form,question:question},callback)}create_infraction(id,reason,number,callback){this.send("infraction","POST",{participant:id,reason:reason,number:number},callback)}delete_infraction(id,callback){this.send("infraction","DELETE",{id:id},callback)}approve_application(id,callback){this.send("approve_application","POST",{id:id},callback)}unapprove_application(id,callback){this.send("unapprove_application","POST",{id:id},callback)}generate_teams(jam,callback){this.send("generate_teams","POST",{jam:jam},callback)}create_team(jam,callback){this.send("create_team","POST",{jam:jam},callback)}reroll_team(team,callback){this.send("reroll_team","POST",{team:team},callback)}delete_team(team,callback){this.send("team","DELETE",{team:team},callback)}set_team_member(jam,member,team,callback){this.send("set_team_member","POST",{jam:jam,member:member,team:team},callback)}set_winning_team(team,callback){this.send("set_winning_team","POST",{team:team},callback)}unset_winning_team(jam,callback){this.send("unset_winning_team","POST",{jam:jam},callback)}}function revision_diff(revisions){const buttons=document.querySelectorAll("td input"),id_reg=/compare-(before|after)-([\w|-]+)/;function getRevisionId(element){const e=element.id.match(id_reg);return[e[1],e[2]]}function getRevision(id){return revisions.filter(x=>x.id===id)[0]}buttons.forEach(button=>{button.checked=!1,button.onchange=function(){!function(element){const id=getRevisionId(element),rev=getRevision(id[1]);let aft,bef;"after"===id[0]?(document.querySelector(`#compare-before-${id[1]}`).checked=!1,buttons.forEach(e=>{"after"===getRevisionId(e)[0]&&e.id!==element.id&&(e.checked=!1)})):(document.querySelector(`#compare-after-${id[1]}`).checked=!1,buttons.forEach(e=>{"before"===getRevisionId(e)[0]&&e.id!==element.id&&(e.checked=!1),"after"===getRevisionId(e)[0]&&(getRevision(getRevisionId(e)[1]).date<=rev.date?document.querySelector(`#${e.id}`).setAttribute("disabled",""):document.querySelector(`#${e.id}`).removeAttribute("disabled"))})),buttons.forEach(button=>{const id=getRevisionId(button);button.checked&&"before"===id[0]&&(bef=id[1]),button.checked&&"after"===id[0]&&(aft=id[1])}),document.getElementById("compare-submit").href=`/history/compare/${bef}/${aft}`}(button)}})}function wiki_sidebar(){const sidebar=document.getElementById("wiki-sidebar");document.getElementById("wiki-sidebar-button").onclick=function(){sidebar.classList.contains("uk-visible@s")?sidebar.classList.remove("uk-visible@s"):sidebar.classList.add("uk-visible@s")}}!function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?module.exports=factory():"function"==typeof define&&define.amd?define(factory):global.moment=factory()}(this,function(){var hookCallback,some;function hooks(){return hookCallback.apply(null,arguments)}function isArray(input){return input instanceof Array||"[object Array]"===Object.prototype.toString.call(input)}function isObject(input){return null!=input&&"[object Object]"===Object.prototype.toString.call(input)}function isUndefined(input){return void 0===input}function isNumber(input){return"number"==typeof input||"[object Number]"===Object.prototype.toString.call(input)}function isDate(input){return input instanceof Date||"[object Date]"===Object.prototype.toString.call(input)}function map(arr,fn){var i,res=[];for(i=0;i<arr.length;++i)res.push(fn(arr[i],i));return res}function hasOwnProp(a,b){return Object.prototype.hasOwnProperty.call(a,b)}function extend(a,b){for(var i in b)hasOwnProp(b,i)&&(a[i]=b[i]);return hasOwnProp(b,"toString")&&(a.toString=b.toString),hasOwnProp(b,"valueOf")&&(a.valueOf=b.valueOf),a}function createUTC(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,!0).utc()}function getParsingFlags(m){return null==m._pf&&(m._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}),m._pf}function isValid(m){if(null==m._isValid){var flags=getParsingFlags(m),parsedParts=some.call(flags.parsedDateParts,function(i){return null!=i}),isNowValid=!isNaN(m._d.getTime())&&flags.overflow<0&&!flags.empty&&!flags.invalidMonth&&!flags.invalidWeekday&&!flags.weekdayMismatch&&!flags.nullInput&&!flags.invalidFormat&&!flags.userInvalidated&&(!flags.meridiem||flags.meridiem&&parsedParts);if(m._strict&&(isNowValid=isNowValid&&0===flags.charsLeftOver&&0===flags.unusedTokens.length&&void 0===flags.bigHour),null!=Object.isFrozen&&Object.isFrozen(m))return isNowValid;m._isValid=isNowValid}return m._isValid}function createInvalid(flags){var m=createUTC(NaN);return null!=flags?extend(getParsingFlags(m),flags):getParsingFlags(m).userInvalidated=!0,m}some=Array.prototype.some?Array.prototype.some:function(fun){for(var t=Object(this),len=t.length>>>0,i=0;i<len;i++)if(i in t&&fun.call(this,t[i],i,t))return!0;return!1};var momentProperties=hooks.momentProperties=[];function copyConfig(to,from){var i,prop,val;if(isUndefined(from._isAMomentObject)||(to._isAMomentObject=from._isAMomentObject),isUndefined(from._i)||(to._i=from._i),isUndefined(from._f)||(to._f=from._f),isUndefined(from._l)||(to._l=from._l),isUndefined(from._strict)||(to._strict=from._strict),isUndefined(from._tzm)||(to._tzm=from._tzm),isUndefined(from._isUTC)||(to._isUTC=from._isUTC),isUndefined(from._offset)||(to._offset=from._offset),isUndefined(from._pf)||(to._pf=getParsingFlags(from)),isUndefined(from._locale)||(to._locale=from._locale),momentProperties.length>0)for(i=0;i<momentProperties.length;i++)isUndefined(val=from[prop=momentProperties[i]])||(to[prop]=val);return to}var updateInProgress=!1;function Moment(config){copyConfig(this,config),this._d=new Date(null!=config._d?config._d.getTime():NaN),this.isValid()||(this._d=new Date(NaN)),!1===updateInProgress&&(updateInProgress=!0,hooks.updateOffset(this),updateInProgress=!1)}function isMoment(obj){return obj instanceof Moment||null!=obj&&null!=obj._isAMomentObject}function absFloor(number){return number<0?Math.ceil(number)||0:Math.floor(number)}function toInt(argumentForCoercion){var coercedNumber=+argumentForCoercion,value=0;return 0!==coercedNumber&&isFinite(coercedNumber)&&(value=absFloor(coercedNumber)),value}function compareArrays(array1,array2,dontConvert){var i,len=Math.min(array1.length,array2.length),lengthDiff=Math.abs(array1.length-array2.length),diffs=0;for(i=0;i<len;i++)(dontConvert&&array1[i]!==array2[i]||!dontConvert&&toInt(array1[i])!==toInt(array2[i]))&&diffs++;return diffs+lengthDiff}function warn(msg){!1===hooks.suppressDeprecationWarnings&&"undefined"!=typeof console&&console.warn&&console.warn("Deprecation warning: "+msg)}function deprecate(msg,fn){var firstTime=!0;return extend(function(){if(null!=hooks.deprecationHandler&&hooks.deprecationHandler(null,msg),firstTime){for(var arg,args=[],i=0;i<arguments.length;i++){if(arg="","object"==typeof arguments[i]){for(var key in arg+="\n["+i+"] ",arguments[0])arg+=key+": "+arguments[0][key]+", ";arg=arg.slice(0,-2)}else arg=arguments[i];args.push(arg)}warn(msg+"\nArguments: "+Array.prototype.slice.call(args).join("")+"\n"+(new Error).stack),firstTime=!1}return fn.apply(this,arguments)},fn)}var keys,deprecations={};function deprecateSimple(name,msg){null!=hooks.deprecationHandler&&hooks.deprecationHandler(name,msg),deprecations[name]||(warn(msg),deprecations[name]=!0)}function isFunction(input){return input instanceof Function||"[object Function]"===Object.prototype.toString.call(input)}function mergeConfigs(parentConfig,childConfig){var prop,res=extend({},parentConfig);for(prop in childConfig)hasOwnProp(childConfig,prop)&&(isObject(parentConfig[prop])&&isObject(childConfig[prop])?(res[prop]={},extend(res[prop],parentConfig[prop]),extend(res[prop],childConfig[prop])):null!=childConfig[prop]?res[prop]=childConfig[prop]:delete res[prop]);for(prop in parentConfig)hasOwnProp(parentConfig,prop)&&!hasOwnProp(childConfig,prop)&&isObject(parentConfig[prop])&&(res[prop]=extend({},res[prop]));return res}function Locale(config){null!=config&&this.set(config)}hooks.suppressDeprecationWarnings=!1,hooks.deprecationHandler=null,keys=Object.keys?Object.keys:function(obj){var i,res=[];for(i in obj)hasOwnProp(obj,i)&&res.push(i);return res};var aliases={};function addUnitAlias(unit,shorthand){var lowerCase=unit.toLowerCase();aliases[lowerCase]=aliases[lowerCase+"s"]=aliases[shorthand]=unit}function normalizeUnits(units){return"string"==typeof units?aliases[units]||aliases[units.toLowerCase()]:void 0}function normalizeObjectUnits(inputObject){var normalizedProp,prop,normalizedInput={};for(prop in inputObject)hasOwnProp(inputObject,prop)&&(normalizedProp=normalizeUnits(prop))&&(normalizedInput[normalizedProp]=inputObject[prop]);return normalizedInput}var priorities={};function addUnitPriority(unit,priority){priorities[unit]=priority}function zeroFill(number,targetLength,forceSign){var absNumber=""+Math.abs(number),zerosToFill=targetLength-absNumber.length;return(number>=0?forceSign?"+":"":"-")+Math.pow(10,Math.max(0,zerosToFill)).toString().substr(1)+absNumber}var formattingTokens=/(\[[^\[]*\])|(\\)?([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,localFormattingTokens=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,formatFunctions={},formatTokenFunctions={};function addFormatToken(token,padded,ordinal,callback){var func=callback;"string"==typeof callback&&(func=function(){return this[callback]()}),token&&(formatTokenFunctions[token]=func),padded&&(formatTokenFunctions[padded[0]]=function(){return zeroFill(func.apply(this,arguments),padded[1],padded[2])}),ordinal&&(formatTokenFunctions[ordinal]=function(){return this.localeData().ordinal(func.apply(this,arguments),token)})}function formatMoment(m,format){return m.isValid()?(format=expandFormat(format,m.localeData()),formatFunctions[format]=formatFunctions[format]||function(format){var i,length,input,array=format.match(formattingTokens);for(i=0,length=array.length;i<length;i++)formatTokenFunctions[array[i]]?array[i]=formatTokenFunctions[array[i]]:array[i]=(input=array[i]).match(/\[[\s\S]/)?input.replace(/^\[|\]$/g,""):input.replace(/\\/g,"");return function(mom){var i,output="";for(i=0;i<length;i++)output+=isFunction(array[i])?array[i].call(mom,format):array[i];return output}}(format),formatFunctions[format](m)):m.localeData().invalidDate()}function expandFormat(format,locale){var i=5;function replaceLongDateFormatTokens(input){return locale.longDateFormat(input)||input}for(localFormattingTokens.lastIndex=0;i>=0&&localFormattingTokens.test(format);)format=format.replace(localFormattingTokens,replaceLongDateFormatTokens),localFormattingTokens.lastIndex=0,i-=1;return format}var match1=/\d/,match2=/\d\d/,match3=/\d{3}/,match4=/\d{4}/,match6=/[+-]?\d{6}/,match1to2=/\d\d?/,match3to4=/\d\d\d\d?/,match5to6=/\d\d\d\d\d\d?/,match1to3=/\d{1,3}/,match1to4=/\d{1,4}/,match1to6=/[+-]?\d{1,6}/,matchUnsigned=/\d+/,matchSigned=/[+-]?\d+/,matchOffset=/Z|[+-]\d\d:?\d\d/gi,matchShortOffset=/Z|[+-]\d\d(?::?\d\d)?/gi,matchWord=/[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,regexes={};function addRegexToken(token,regex,strictRegex){regexes[token]=isFunction(regex)?regex:function(isStrict,localeData){return isStrict&&strictRegex?strictRegex:regex}}function getParseRegexForToken(token,config){return hasOwnProp(regexes,token)?regexes[token](config._strict,config._locale):new RegExp(regexEscape(token.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(matched,p1,p2,p3,p4){return p1||p2||p3||p4})))}function regexEscape(s){return s.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var tokens={};function addParseToken(token,callback){var i,func=callback;for("string"==typeof token&&(token=[token]),isNumber(callback)&&(func=function(input,array){array[callback]=toInt(input)}),i=0;i<token.length;i++)tokens[token[i]]=func}function addWeekParseToken(token,callback){addParseToken(token,function(input,array,config,token){config._w=config._w||{},callback(input,config._w,config,token)})}function addTimeToArrayFromToken(token,input,config){null!=input&&hasOwnProp(tokens,token)&&tokens[token](input,config._a,config,token)}var YEAR=0,MONTH=1,DATE=2,HOUR=3,MINUTE=4,SECOND=5,MILLISECOND=6,WEEK=7,WEEKDAY=8;function daysInYear(year){return isLeapYear(year)?366:365}function isLeapYear(year){return year%4==0&&year%100!=0||year%400==0}addFormatToken("Y",0,0,function(){var y=this.year();return y<=9999?""+y:"+"+y}),addFormatToken(0,["YY",2],0,function(){return this.year()%100}),addFormatToken(0,["YYYY",4],0,"year"),addFormatToken(0,["YYYYY",5],0,"year"),addFormatToken(0,["YYYYYY",6,!0],0,"year"),addUnitAlias("year","y"),addUnitPriority("year",1),addRegexToken("Y",matchSigned),addRegexToken("YY",match1to2,match2),addRegexToken("YYYY",match1to4,match4),addRegexToken("YYYYY",match1to6,match6),addRegexToken("YYYYYY",match1to6,match6),addParseToken(["YYYYY","YYYYYY"],YEAR),addParseToken("YYYY",function(input,array){array[YEAR]=2===input.length?hooks.parseTwoDigitYear(input):toInt(input)}),addParseToken("YY",function(input,array){array[YEAR]=hooks.parseTwoDigitYear(input)}),addParseToken("Y",function(input,array){array[YEAR]=parseInt(input,10)}),hooks.parseTwoDigitYear=function(input){return toInt(input)+(toInt(input)>68?1900:2e3)};var indexOf,getSetYear=makeGetSet("FullYear",!0);function makeGetSet(unit,keepTime){return function(value){return null!=value?(set$1(this,unit,value),hooks.updateOffset(this,keepTime),this):get(this,unit)}}function get(mom,unit){return mom.isValid()?mom._d["get"+(mom._isUTC?"UTC":"")+unit]():NaN}function set$1(mom,unit,value){mom.isValid()&&!isNaN(value)&&("FullYear"===unit&&isLeapYear(mom.year())&&1===mom.month()&&29===mom.date()?mom._d["set"+(mom._isUTC?"UTC":"")+unit](value,mom.month(),daysInMonth(value,mom.month())):mom._d["set"+(mom._isUTC?"UTC":"")+unit](value))}function daysInMonth(year,month){if(isNaN(year)||isNaN(month))return NaN;var x,modMonth=(month%(x=12)+x)%x;return year+=(month-modMonth)/12,1===modMonth?isLeapYear(year)?29:28:31-modMonth%7%2}indexOf=Array.prototype.indexOf?Array.prototype.indexOf:function(o){var i;for(i=0;i<this.length;++i)if(this[i]===o)return i;return-1},addFormatToken("M",["MM",2],"Mo",function(){return this.month()+1}),addFormatToken("MMM",0,0,function(format){return this.localeData().monthsShort(this,format)}),addFormatToken("MMMM",0,0,function(format){return this.localeData().months(this,format)}),addUnitAlias("month","M"),addUnitPriority("month",8),addRegexToken("M",match1to2),addRegexToken("MM",match1to2,match2),addRegexToken("MMM",function(isStrict,locale){return locale.monthsShortRegex(isStrict)}),addRegexToken("MMMM",function(isStrict,locale){return locale.monthsRegex(isStrict)}),addParseToken(["M","MM"],function(input,array){array[MONTH]=toInt(input)-1}),addParseToken(["MMM","MMMM"],function(input,array,config,token){var month=config._locale.monthsParse(input,token,config._strict);null!=month?array[MONTH]=month:getParsingFlags(config).invalidMonth=input});var MONTHS_IN_FORMAT=/D[oD]?(\[[^\[\]]*\]|\s)+MMMM?/,defaultLocaleMonths="January_February_March_April_May_June_July_August_September_October_November_December".split("_");var defaultLocaleMonthsShort="Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec".split("_");function setMonth(mom,value){var dayOfMonth;if(!mom.isValid())return mom;if("string"==typeof value)if(/^\d+$/.test(value))value=toInt(value);else if(!isNumber(value=mom.localeData().monthsParse(value)))return mom;return dayOfMonth=Math.min(mom.date(),daysInMonth(mom.year(),value)),mom._d["set"+(mom._isUTC?"UTC":"")+"Month"](value,dayOfMonth),mom}function getSetMonth(value){return null!=value?(setMonth(this,value),hooks.updateOffset(this,!0),this):get(this,"Month")}var defaultMonthsShortRegex=matchWord;var defaultMonthsRegex=matchWord;function computeMonthsParse(){function cmpLenRev(a,b){return b.length-a.length}var i,mom,shortPieces=[],longPieces=[],mixedPieces=[];for(i=0;i<12;i++)mom=createUTC([2e3,i]),shortPieces.push(this.monthsShort(mom,"")),longPieces.push(this.months(mom,"")),mixedPieces.push(this.months(mom,"")),mixedPieces.push(this.monthsShort(mom,""));for(shortPieces.sort(cmpLenRev),longPieces.sort(cmpLenRev),mixedPieces.sort(cmpLenRev),i=0;i<12;i++)shortPieces[i]=regexEscape(shortPieces[i]),longPieces[i]=regexEscape(longPieces[i]);for(i=0;i<24;i++)mixedPieces[i]=regexEscape(mixedPieces[i]);this._monthsRegex=new RegExp("^("+mixedPieces.join("|")+")","i"),this._monthsShortRegex=this._monthsRegex,this._monthsStrictRegex=new RegExp("^("+longPieces.join("|")+")","i"),this._monthsShortStrictRegex=new RegExp("^("+shortPieces.join("|")+")","i")}function createUTCDate(y){var date=new Date(Date.UTC.apply(null,arguments));return y<100&&y>=0&&isFinite(date.getUTCFullYear())&&date.setUTCFullYear(y),date}function firstWeekOffset(year,dow,doy){var fwd=7+dow-doy;return-((7+createUTCDate(year,0,fwd).getUTCDay()-dow)%7)+fwd-1}function dayOfYearFromWeeks(year,week,weekday,dow,doy){var resYear,resDayOfYear,dayOfYear=1+7*(week-1)+(7+weekday-dow)%7+firstWeekOffset(year,dow,doy);return dayOfYear<=0?resDayOfYear=daysInYear(resYear=year-1)+dayOfYear:dayOfYear>daysInYear(year)?(resYear=year+1,resDayOfYear=dayOfYear-daysInYear(year)):(resYear=year,resDayOfYear=dayOfYear),{year:resYear,dayOfYear:resDayOfYear}}function weekOfYear(mom,dow,doy){var resWeek,resYear,weekOffset=firstWeekOffset(mom.year(),dow,doy),week=Math.floor((mom.dayOfYear()-weekOffset-1)/7)+1;return week<1?resWeek=week+weeksInYear(resYear=mom.year()-1,dow,doy):week>weeksInYear(mom.year(),dow,doy)?(resWeek=week-weeksInYear(mom.year(),dow,doy),resYear=mom.year()+1):(resYear=mom.year(),resWeek=week),{week:resWeek,year:resYear}}function weeksInYear(year,dow,doy){var weekOffset=firstWeekOffset(year,dow,doy),weekOffsetNext=firstWeekOffset(year+1,dow,doy);return(daysInYear(year)-weekOffset+weekOffsetNext)/7}addFormatToken("w",["ww",2],"wo","week"),addFormatToken("W",["WW",2],"Wo","isoWeek"),addUnitAlias("week","w"),addUnitAlias("isoWeek","W"),addUnitPriority("week",5),addUnitPriority("isoWeek",5),addRegexToken("w",match1to2),addRegexToken("ww",match1to2,match2),addRegexToken("W",match1to2),addRegexToken("WW",match1to2,match2),addWeekParseToken(["w","ww","W","WW"],function(input,week,config,token){week[token.substr(0,1)]=toInt(input)});addFormatToken("d",0,"do","day"),addFormatToken("dd",0,0,function(format){return this.localeData().weekdaysMin(this,format)}),addFormatToken("ddd",0,0,function(format){return this.localeData().weekdaysShort(this,format)}),addFormatToken("dddd",0,0,function(format){return this.localeData().weekdays(this,format)}),addFormatToken("e",0,0,"weekday"),addFormatToken("E",0,0,"isoWeekday"),addUnitAlias("day","d"),addUnitAlias("weekday","e"),addUnitAlias("isoWeekday","E"),addUnitPriority("day",11),addUnitPriority("weekday",11),addUnitPriority("isoWeekday",11),addRegexToken("d",match1to2),addRegexToken("e",match1to2),addRegexToken("E",match1to2),addRegexToken("dd",function(isStrict,locale){return locale.weekdaysMinRegex(isStrict)}),addRegexToken("ddd",function(isStrict,locale){return locale.weekdaysShortRegex(isStrict)}),addRegexToken("dddd",function(isStrict,locale){return locale.weekdaysRegex(isStrict)}),addWeekParseToken(["dd","ddd","dddd"],function(input,week,config,token){var weekday=config._locale.weekdaysParse(input,token,config._strict);null!=weekday?week.d=weekday:getParsingFlags(config).invalidWeekday=input}),addWeekParseToken(["d","e","E"],function(input,week,config,token){week[token]=toInt(input)});var defaultLocaleWeekdays="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_");var defaultLocaleWeekdaysShort="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_");var defaultLocaleWeekdaysMin="Su_Mo_Tu_We_Th_Fr_Sa".split("_");var defaultWeekdaysRegex=matchWord;var defaultWeekdaysShortRegex=matchWord;var defaultWeekdaysMinRegex=matchWord;function computeWeekdaysParse(){function cmpLenRev(a,b){return b.length-a.length}var i,mom,minp,shortp,longp,minPieces=[],shortPieces=[],longPieces=[],mixedPieces=[];for(i=0;i<7;i++)mom=createUTC([2e3,1]).day(i),minp=this.weekdaysMin(mom,""),shortp=this.weekdaysShort(mom,""),longp=this.weekdays(mom,""),minPieces.push(minp),shortPieces.push(shortp),longPieces.push(longp),mixedPieces.push(minp),mixedPieces.push(shortp),mixedPieces.push(longp);for(minPieces.sort(cmpLenRev),shortPieces.sort(cmpLenRev),longPieces.sort(cmpLenRev),mixedPieces.sort(cmpLenRev),i=0;i<7;i++)shortPieces[i]=regexEscape(shortPieces[i]),longPieces[i]=regexEscape(longPieces[i]),mixedPieces[i]=regexEscape(mixedPieces[i]);this._weekdaysRegex=new RegExp("^("+mixedPieces.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+longPieces.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+shortPieces.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+minPieces.join("|")+")","i")}function hFormat(){return this.hours()%12||12}function meridiem(token,lowercase){addFormatToken(token,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),lowercase)})}function matchMeridiem(isStrict,locale){return locale._meridiemParse}addFormatToken("H",["HH",2],0,"hour"),addFormatToken("h",["hh",2],0,hFormat),addFormatToken("k",["kk",2],0,function(){return this.hours()||24}),addFormatToken("hmm",0,0,function(){return""+hFormat.apply(this)+zeroFill(this.minutes(),2)}),addFormatToken("hmmss",0,0,function(){return""+hFormat.apply(this)+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)}),addFormatToken("Hmm",0,0,function(){return""+this.hours()+zeroFill(this.minutes(),2)}),addFormatToken("Hmmss",0,0,function(){return""+this.hours()+zeroFill(this.minutes(),2)+zeroFill(this.seconds(),2)}),meridiem("a",!0),meridiem("A",!1),addUnitAlias("hour","h"),addUnitPriority("hour",13),addRegexToken("a",matchMeridiem),addRegexToken("A",matchMeridiem),addRegexToken("H",match1to2),addRegexToken("h",match1to2),addRegexToken("k",match1to2),addRegexToken("HH",match1to2,match2),addRegexToken("hh",match1to2,match2),addRegexToken("kk",match1to2,match2),addRegexToken("hmm",match3to4),addRegexToken("hmmss",match5to6),addRegexToken("Hmm",match3to4),addRegexToken("Hmmss",match5to6),addParseToken(["H","HH"],HOUR),addParseToken(["k","kk"],function(input,array,config){var kInput=toInt(input);array[HOUR]=24===kInput?0:kInput}),addParseToken(["a","A"],function(input,array,config){config._isPm=config._locale.isPM(input),config._meridiem=input}),addParseToken(["h","hh"],function(input,array,config){array[HOUR]=toInt(input),getParsingFlags(config).bigHour=!0}),addParseToken("hmm",function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos)),array[MINUTE]=toInt(input.substr(pos)),getParsingFlags(config).bigHour=!0}),addParseToken("hmmss",function(input,array,config){var pos1=input.length-4,pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1)),array[MINUTE]=toInt(input.substr(pos1,2)),array[SECOND]=toInt(input.substr(pos2)),getParsingFlags(config).bigHour=!0}),addParseToken("Hmm",function(input,array,config){var pos=input.length-2;array[HOUR]=toInt(input.substr(0,pos)),array[MINUTE]=toInt(input.substr(pos))}),addParseToken("Hmmss",function(input,array,config){var pos1=input.length-4,pos2=input.length-2;array[HOUR]=toInt(input.substr(0,pos1)),array[MINUTE]=toInt(input.substr(pos1,2)),array[SECOND]=toInt(input.substr(pos2))});var globalLocale,getSetHour=makeGetSet("Hours",!0),baseConfig={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:defaultLocaleMonths,monthsShort:defaultLocaleMonthsShort,week:{dow:0,doy:6},weekdays:defaultLocaleWeekdays,weekdaysMin:defaultLocaleWeekdaysMin,weekdaysShort:defaultLocaleWeekdaysShort,meridiemParse:/[ap]\.?m?\.?/i},locales={},localeFamilies={};function normalizeLocale(key){return key?key.toLowerCase().replace("_","-"):key}function loadLocale(name){var oldLocale=null;if(!locales[name]&&"undefined"!=typeof module&&module&&module.exports)try{oldLocale=globalLocale._abbr,require("./locale/"+name),getSetGlobalLocale(oldLocale)}catch(e){}return locales[name]}function getSetGlobalLocale(key,values){var data;return key&&((data=isUndefined(values)?getLocale(key):defineLocale(key,values))?globalLocale=data:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+key+" not found. Did you forget to load it?")),globalLocale._abbr}function defineLocale(name,config){if(null!==config){var locale,parentConfig=baseConfig;if(config.abbr=name,null!=locales[name])deprecateSimple("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."),parentConfig=locales[name]._config;else if(null!=config.parentLocale)if(null!=locales[config.parentLocale])parentConfig=locales[config.parentLocale]._config;else{if(null==(locale=loadLocale(config.parentLocale)))return localeFamilies[config.parentLocale]||(localeFamilies[config.parentLocale]=[]),localeFamilies[config.parentLocale].push({name:name,config:config}),null;parentConfig=locale._config}return locales[name]=new Locale(mergeConfigs(parentConfig,config)),localeFamilies[name]&&localeFamilies[name].forEach(function(x){defineLocale(x.name,x.config)}),getSetGlobalLocale(name),locales[name]}return delete locales[name],null}function getLocale(key){var locale;if(key&&key._locale&&key._locale._abbr&&(key=key._locale._abbr),!key)return globalLocale;if(!isArray(key)){if(locale=loadLocale(key))return locale;key=[key]}return function(names){for(var j,next,locale,split,i=0;i<names.length;){for(j=(split=normalizeLocale(names[i]).split("-")).length,next=(next=normalizeLocale(names[i+1]))?next.split("-"):null;j>0;){if(locale=loadLocale(split.slice(0,j).join("-")))return locale;if(next&&next.length>=j&&compareArrays(split,next,!0)>=j-1)break;j--}i++}return globalLocale}(key)}function checkOverflow(m){var overflow,a=m._a;return a&&-2===getParsingFlags(m).overflow&&(overflow=a[MONTH]<0||a[MONTH]>11?MONTH:a[DATE]<1||a[DATE]>daysInMonth(a[YEAR],a[MONTH])?DATE:a[HOUR]<0||a[HOUR]>24||24===a[HOUR]&&(0!==a[MINUTE]||0!==a[SECOND]||0!==a[MILLISECOND])?HOUR:a[MINUTE]<0||a[MINUTE]>59?MINUTE:a[SECOND]<0||a[SECOND]>59?SECOND:a[MILLISECOND]<0||a[MILLISECOND]>999?MILLISECOND:-1,getParsingFlags(m)._overflowDayOfYear&&(overflow<YEAR||overflow>DATE)&&(overflow=DATE),getParsingFlags(m)._overflowWeeks&&-1===overflow&&(overflow=WEEK),getParsingFlags(m)._overflowWeekday&&-1===overflow&&(overflow=WEEKDAY),getParsingFlags(m).overflow=overflow),m}function defaults(a,b,c){return null!=a?a:null!=b?b:c}function configFromArray(config){var i,date,currentDate,expectedWeekday,yearToUse,input=[];if(!config._d){for(currentDate=function(config){var nowValue=new Date(hooks.now());return config._useUTC?[nowValue.getUTCFullYear(),nowValue.getUTCMonth(),nowValue.getUTCDate()]:[nowValue.getFullYear(),nowValue.getMonth(),nowValue.getDate()]}(config),config._w&&null==config._a[DATE]&&null==config._a[MONTH]&&function(config){var w,weekYear,week,weekday,dow,doy,temp,weekdayOverflow;if(null!=(w=config._w).GG||null!=w.W||null!=w.E)dow=1,doy=4,weekYear=defaults(w.GG,config._a[YEAR],weekOfYear(createLocal(),1,4).year),week=defaults(w.W,1),((weekday=defaults(w.E,1))<1||weekday>7)&&(weekdayOverflow=!0);else{dow=config._locale._week.dow,doy=config._locale._week.doy;var curWeek=weekOfYear(createLocal(),dow,doy);weekYear=defaults(w.gg,config._a[YEAR],curWeek.year),week=defaults(w.w,curWeek.week),null!=w.d?((weekday=w.d)<0||weekday>6)&&(weekdayOverflow=!0):null!=w.e?(weekday=w.e+dow,(w.e<0||w.e>6)&&(weekdayOverflow=!0)):weekday=dow}week<1||week>weeksInYear(weekYear,dow,doy)?getParsingFlags(config)._overflowWeeks=!0:null!=weekdayOverflow?getParsingFlags(config)._overflowWeekday=!0:(temp=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy),config._a[YEAR]=temp.year,config._dayOfYear=temp.dayOfYear)}(config),null!=config._dayOfYear&&(yearToUse=defaults(config._a[YEAR],currentDate[YEAR]),(config._dayOfYear>daysInYear(yearToUse)||0===config._dayOfYear)&&(getParsingFlags(config)._overflowDayOfYear=!0),date=createUTCDate(yearToUse,0,config._dayOfYear),config._a[MONTH]=date.getUTCMonth(),config._a[DATE]=date.getUTCDate()),i=0;i<3&&null==config._a[i];++i)config._a[i]=input[i]=currentDate[i];for(;i<7;i++)config._a[i]=input[i]=null==config._a[i]?2===i?1:0:config._a[i];24===config._a[HOUR]&&0===config._a[MINUTE]&&0===config._a[SECOND]&&0===config._a[MILLISECOND]&&(config._nextDay=!0,config._a[HOUR]=0),config._d=(config._useUTC?createUTCDate:function(y,m,d,h,M,s,ms){var date=new Date(y,m,d,h,M,s,ms);return y<100&&y>=0&&isFinite(date.getFullYear())&&date.setFullYear(y),date}).apply(null,input),expectedWeekday=config._useUTC?config._d.getUTCDay():config._d.getDay(),null!=config._tzm&&config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm),config._nextDay&&(config._a[HOUR]=24),config._w&&void 0!==config._w.d&&config._w.d!==expectedWeekday&&(getParsingFlags(config).weekdayMismatch=!0)}}var extendedIsoRegex=/^\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)?)?$/,basicIsoRegex=/^\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)?)?$/,tzRegex=/Z|[+-]\d\d(?::?\d\d)?/,isoDates=[["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}/]],isoTimes=[["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/]],aspNetJsonRegex=/^\/?Date\((\-?\d+)/i;function configFromISO(config){var i,l,allowTime,dateFormat,timeFormat,tzFormat,string=config._i,match=extendedIsoRegex.exec(string)||basicIsoRegex.exec(string);if(match){for(getParsingFlags(config).iso=!0,i=0,l=isoDates.length;i<l;i++)if(isoDates[i][1].exec(match[1])){dateFormat=isoDates[i][0],allowTime=!1!==isoDates[i][2];break}if(null==dateFormat)return void(config._isValid=!1);if(match[3]){for(i=0,l=isoTimes.length;i<l;i++)if(isoTimes[i][1].exec(match[3])){timeFormat=(match[2]||" ")+isoTimes[i][0];break}if(null==timeFormat)return void(config._isValid=!1)}if(!allowTime&&null!=timeFormat)return void(config._isValid=!1);if(match[4]){if(!tzRegex.exec(match[4]))return void(config._isValid=!1);tzFormat="Z"}config._f=dateFormat+(timeFormat||"")+(tzFormat||""),configFromStringAndFormat(config)}else config._isValid=!1}var rfc2822=/^(?:(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}))$/;function extractFromRFC2822Strings(yearStr,monthStr,dayStr,hourStr,minuteStr,secondStr){var result=[function(yearStr){var year=parseInt(yearStr,10);if(year<=49)return 2e3+year;if(year<=999)return 1900+year;return year}(yearStr),defaultLocaleMonthsShort.indexOf(monthStr),parseInt(dayStr,10),parseInt(hourStr,10),parseInt(minuteStr,10)];return secondStr&&result.push(parseInt(secondStr,10)),result}var obsOffsets={UT:0,GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function configFromRFC2822(config){var match=rfc2822.exec(config._i.replace(/\([^)]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").replace(/^\s\s*/,"").replace(/\s\s*$/,""));if(match){var parsedArray=extractFromRFC2822Strings(match[4],match[3],match[2],match[5],match[6],match[7]);if(!function(weekdayStr,parsedInput,config){return!weekdayStr||defaultLocaleWeekdaysShort.indexOf(weekdayStr)===new Date(parsedInput[0],parsedInput[1],parsedInput[2]).getDay()||(getParsingFlags(config).weekdayMismatch=!0,config._isValid=!1,!1)}(match[1],parsedArray,config))return;config._a=parsedArray,config._tzm=function(obsOffset,militaryOffset,numOffset){if(obsOffset)return obsOffsets[obsOffset];if(militaryOffset)return 0;var hm=parseInt(numOffset,10),m=hm%100;return(hm-m)/100*60+m}(match[8],match[9],match[10]),config._d=createUTCDate.apply(null,config._a),config._d.setUTCMinutes(config._d.getUTCMinutes()-config._tzm),getParsingFlags(config).rfc2822=!0}else config._isValid=!1}function configFromStringAndFormat(config){if(config._f!==hooks.ISO_8601)if(config._f!==hooks.RFC_2822){config._a=[],getParsingFlags(config).empty=!0;var i,parsedInput,tokens,token,skipped,string=""+config._i,stringLength=string.length,totalParsedInputLength=0;for(tokens=expandFormat(config._f,config._locale).match(formattingTokens)||[],i=0;i<tokens.length;i++)token=tokens[i],(parsedInput=(string.match(getParseRegexForToken(token,config))||[])[0])&&((skipped=string.substr(0,string.indexOf(parsedInput))).length>0&&getParsingFlags(config).unusedInput.push(skipped),string=string.slice(string.indexOf(parsedInput)+parsedInput.length),totalParsedInputLength+=parsedInput.length),formatTokenFunctions[token]?(parsedInput?getParsingFlags(config).empty=!1:getParsingFlags(config).unusedTokens.push(token),addTimeToArrayFromToken(token,parsedInput,config)):config._strict&&!parsedInput&&getParsingFlags(config).unusedTokens.push(token);getParsingFlags(config).charsLeftOver=stringLength-totalParsedInputLength,string.length>0&&getParsingFlags(config).unusedInput.push(string),config._a[HOUR]<=12&&!0===getParsingFlags(config).bigHour&&config._a[HOUR]>0&&(getParsingFlags(config).bigHour=void 0),getParsingFlags(config).parsedDateParts=config._a.slice(0),getParsingFlags(config).meridiem=config._meridiem,config._a[HOUR]=function(locale,hour,meridiem){var isPm;if(null==meridiem)return hour;return null!=locale.meridiemHour?locale.meridiemHour(hour,meridiem):null!=locale.isPM?((isPm=locale.isPM(meridiem))&&hour<12&&(hour+=12),isPm||12!==hour||(hour=0),hour):hour}(config._locale,config._a[HOUR],config._meridiem),configFromArray(config),checkOverflow(config)}else configFromRFC2822(config);else configFromISO(config)}function prepareConfig(config){var input=config._i,format=config._f;return config._locale=config._locale||getLocale(config._l),null===input||void 0===format&&""===input?createInvalid({nullInput:!0}):("string"==typeof input&&(config._i=input=config._locale.preparse(input)),isMoment(input)?new Moment(checkOverflow(input)):(isDate(input)?config._d=input:isArray(format)?function(config){var tempConfig,bestMoment,scoreToBeat,i,currentScore;if(0===config._f.length)return getParsingFlags(config).invalidFormat=!0,void(config._d=new Date(NaN));for(i=0;i<config._f.length;i++)currentScore=0,tempConfig=copyConfig({},config),null!=config._useUTC&&(tempConfig._useUTC=config._useUTC),tempConfig._f=config._f[i],configFromStringAndFormat(tempConfig),isValid(tempConfig)&&(currentScore+=getParsingFlags(tempConfig).charsLeftOver,currentScore+=10*getParsingFlags(tempConfig).unusedTokens.length,getParsingFlags(tempConfig).score=currentScore,(null==scoreToBeat||currentScore<scoreToBeat)&&(scoreToBeat=currentScore,bestMoment=tempConfig));extend(config,bestMoment||tempConfig)}(config):format?configFromStringAndFormat(config):function(config){var input=config._i;isUndefined(input)?config._d=new Date(hooks.now()):isDate(input)?config._d=new Date(input.valueOf()):"string"==typeof input?function(config){var matched=aspNetJsonRegex.exec(config._i);null===matched?(configFromISO(config),!1===config._isValid&&(delete config._isValid,configFromRFC2822(config),!1===config._isValid&&(delete config._isValid,hooks.createFromInputFallback(config)))):config._d=new Date(+matched[1])}(config):isArray(input)?(config._a=map(input.slice(0),function(obj){return parseInt(obj,10)}),configFromArray(config)):isObject(input)?function(config){if(!config._d){var i=normalizeObjectUnits(config._i);config._a=map([i.year,i.month,i.day||i.date,i.hour,i.minute,i.second,i.millisecond],function(obj){return obj&&parseInt(obj,10)}),configFromArray(config)}}(config):isNumber(input)?config._d=new Date(input):hooks.createFromInputFallback(config)}(config),isValid(config)||(config._d=null),config))}function createLocalOrUTC(input,format,locale,strict,isUTC){var res,c={};return!0!==locale&&!1!==locale||(strict=locale,locale=void 0),(isObject(input)&&function(obj){if(Object.getOwnPropertyNames)return 0===Object.getOwnPropertyNames(obj).length;var k;for(k in obj)if(obj.hasOwnProperty(k))return!1;return!0}(input)||isArray(input)&&0===input.length)&&(input=void 0),c._isAMomentObject=!0,c._useUTC=c._isUTC=isUTC,c._l=locale,c._i=input,c._f=format,c._strict=strict,(res=new Moment(checkOverflow(prepareConfig(c))))._nextDay&&(res.add(1,"d"),res._nextDay=void 0),res}function createLocal(input,format,locale,strict){return createLocalOrUTC(input,format,locale,strict,!1)}hooks.createFromInputFallback=deprecate("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(config){config._d=new Date(config._i+(config._useUTC?" UTC":""))}),hooks.ISO_8601=function(){},hooks.RFC_2822=function(){};var prototypeMin=deprecate("moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var other=createLocal.apply(null,arguments);return this.isValid()&&other.isValid()?other<this?this:other:createInvalid()}),prototypeMax=deprecate("moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/",function(){var other=createLocal.apply(null,arguments);return this.isValid()&&other.isValid()?other>this?this:other:createInvalid()});function pickBy(fn,moments){var res,i;if(1===moments.length&&isArray(moments[0])&&(moments=moments[0]),!moments.length)return createLocal();for(res=moments[0],i=1;i<moments.length;++i)moments[i].isValid()&&!moments[i][fn](res)||(res=moments[i]);return res}var ordering=["year","quarter","month","week","day","hour","minute","second","millisecond"];function Duration(duration){var normalizedInput=normalizeObjectUnits(duration),years=normalizedInput.year||0,quarters=normalizedInput.quarter||0,months=normalizedInput.month||0,weeks=normalizedInput.week||0,days=normalizedInput.day||0,hours=normalizedInput.hour||0,minutes=normalizedInput.minute||0,seconds=normalizedInput.second||0,milliseconds=normalizedInput.millisecond||0;this._isValid=function(m){for(var key in m)if(-1===indexOf.call(ordering,key)||null!=m[key]&&isNaN(m[key]))return!1;for(var unitHasDecimal=!1,i=0;i<ordering.length;++i)if(m[ordering[i]]){if(unitHasDecimal)return!1;parseFloat(m[ordering[i]])!==toInt(m[ordering[i]])&&(unitHasDecimal=!0)}return!0}(normalizedInput),this._milliseconds=+milliseconds+1e3*seconds+6e4*minutes+1e3*hours*60*60,this._days=+days+7*weeks,this._months=+months+3*quarters+12*years,this._data={},this._locale=getLocale(),this._bubble()}function isDuration(obj){return obj instanceof Duration}function absRound(number){return number<0?-1*Math.round(-1*number):Math.round(number)}function offset(token,separator){addFormatToken(token,0,0,function(){var offset=this.utcOffset(),sign="+";return offset<0&&(offset=-offset,sign="-"),sign+zeroFill(~~(offset/60),2)+separator+zeroFill(~~offset%60,2)})}offset("Z",":"),offset("ZZ",""),addRegexToken("Z",matchShortOffset),addRegexToken("ZZ",matchShortOffset),addParseToken(["Z","ZZ"],function(input,array,config){config._useUTC=!0,config._tzm=offsetFromString(matchShortOffset,input)});var chunkOffset=/([\+\-]|\d\d)/gi;function offsetFromString(matcher,string){var matches=(string||"").match(matcher);if(null===matches)return null;var parts=((matches[matches.length-1]||[])+"").match(chunkOffset)||["-",0,0],minutes=60*parts[1]+toInt(parts[2]);return 0===minutes?0:"+"===parts[0]?minutes:-minutes}function cloneWithOffset(input,model){var res,diff;return model._isUTC?(res=model.clone(),diff=(isMoment(input)||isDate(input)?input.valueOf():createLocal(input).valueOf())-res.valueOf(),res._d.setTime(res._d.valueOf()+diff),hooks.updateOffset(res,!1),res):createLocal(input).local()}function getDateOffset(m){return 15*-Math.round(m._d.getTimezoneOffset()/15)}function isUtc(){return!!this.isValid()&&(this._isUTC&&0===this._offset)}hooks.updateOffset=function(){};var aspNetRegex=/^(\-|\+)?(?:(\d*)[. ])?(\d+)\:(\d+)(?:\:(\d+)(\.\d*)?)?$/,isoRegex=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function createDuration(input,key){var sign,ret,diffRes,duration=input,match=null;return isDuration(input)?duration={ms:input._milliseconds,d:input._days,M:input._months}:isNumber(input)?(duration={},key?duration[key]=input:duration.milliseconds=input):(match=aspNetRegex.exec(input))?(sign="-"===match[1]?-1:1,duration={y:0,d:toInt(match[DATE])*sign,h:toInt(match[HOUR])*sign,m:toInt(match[MINUTE])*sign,s:toInt(match[SECOND])*sign,ms:toInt(absRound(1e3*match[MILLISECOND]))*sign}):(match=isoRegex.exec(input))?(sign="-"===match[1]?-1:(match[1],1),duration={y:parseIso(match[2],sign),M:parseIso(match[3],sign),w:parseIso(match[4],sign),d:parseIso(match[5],sign),h:parseIso(match[6],sign),m:parseIso(match[7],sign),s:parseIso(match[8],sign)}):null==duration?duration={}:"object"==typeof duration&&("from"in duration||"to"in duration)&&(diffRes=function(base,other){var res;if(!base.isValid()||!other.isValid())return{milliseconds:0,months:0};other=cloneWithOffset(other,base),base.isBefore(other)?res=positiveMomentsDifference(base,other):((res=positiveMomentsDifference(other,base)).milliseconds=-res.milliseconds,res.months=-res.months);return res}(createLocal(duration.from),createLocal(duration.to)),(duration={}).ms=diffRes.milliseconds,duration.M=diffRes.months),ret=new Duration(duration),isDuration(input)&&hasOwnProp(input,"_locale")&&(ret._locale=input._locale),ret}function parseIso(inp,sign){var res=inp&&parseFloat(inp.replace(",","."));return(isNaN(res)?0:res)*sign}function positiveMomentsDifference(base,other){var res={milliseconds:0,months:0};return res.months=other.month()-base.month()+12*(other.year()-base.year()),base.clone().add(res.months,"M").isAfter(other)&&--res.months,res.milliseconds=+other-+base.clone().add(res.months,"M"),res}function createAdder(direction,name){return function(val,period){var tmp;return null===period||isNaN(+period)||(deprecateSimple(name,"moment()."+name+"(period, number) is deprecated. Please use moment()."+name+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),tmp=val,val=period,period=tmp),addSubtract(this,createDuration(val="string"==typeof val?+val:val,period),direction),this}}function addSubtract(mom,duration,isAdding,updateOffset){var milliseconds=duration._milliseconds,days=absRound(duration._days),months=absRound(duration._months);mom.isValid()&&(updateOffset=null==updateOffset||updateOffset,months&&setMonth(mom,get(mom,"Month")+months*isAdding),days&&set$1(mom,"Date",get(mom,"Date")+days*isAdding),milliseconds&&mom._d.setTime(mom._d.valueOf()+milliseconds*isAdding),updateOffset&&hooks.updateOffset(mom,days||months))}createDuration.fn=Duration.prototype,createDuration.invalid=function(){return createDuration(NaN)};var add=createAdder(1,"add"),subtract=createAdder(-1,"subtract");function monthDiff(a,b){var wholeMonthDiff=12*(b.year()-a.year())+(b.month()-a.month()),anchor=a.clone().add(wholeMonthDiff,"months");return-(wholeMonthDiff+(b-anchor<0?(b-anchor)/(anchor-a.clone().add(wholeMonthDiff-1,"months")):(b-anchor)/(a.clone().add(wholeMonthDiff+1,"months")-anchor)))||0}function locale(key){var newLocaleData;return void 0===key?this._locale._abbr:(null!=(newLocaleData=getLocale(key))&&(this._locale=newLocaleData),this)}hooks.defaultFormat="YYYY-MM-DDTHH:mm:ssZ",hooks.defaultFormatUtc="YYYY-MM-DDTHH:mm:ss[Z]";var lang=deprecate("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(key){return void 0===key?this.localeData():this.locale(key)});function localeData(){return this._locale}function addWeekYearFormatToken(token,getter){addFormatToken(0,[token,token.length],0,getter)}function getSetWeekYearHelper(input,week,weekday,dow,doy){var weeksTarget;return null==input?weekOfYear(this,dow,doy).year:(week>(weeksTarget=weeksInYear(input,dow,doy))&&(week=weeksTarget),function(weekYear,week,weekday,dow,doy){var dayOfYearData=dayOfYearFromWeeks(weekYear,week,weekday,dow,doy),date=createUTCDate(dayOfYearData.year,0,dayOfYearData.dayOfYear);return this.year(date.getUTCFullYear()),this.month(date.getUTCMonth()),this.date(date.getUTCDate()),this}.call(this,input,week,weekday,dow,doy))}addFormatToken(0,["gg",2],0,function(){return this.weekYear()%100}),addFormatToken(0,["GG",2],0,function(){return this.isoWeekYear()%100}),addWeekYearFormatToken("gggg","weekYear"),addWeekYearFormatToken("ggggg","weekYear"),addWeekYearFormatToken("GGGG","isoWeekYear"),addWeekYearFormatToken("GGGGG","isoWeekYear"),addUnitAlias("weekYear","gg"),addUnitAlias("isoWeekYear","GG"),addUnitPriority("weekYear",1),addUnitPriority("isoWeekYear",1),addRegexToken("G",matchSigned),addRegexToken("g",matchSigned),addRegexToken("GG",match1to2,match2),addRegexToken("gg",match1to2,match2),addRegexToken("GGGG",match1to4,match4),addRegexToken("gggg",match1to4,match4),addRegexToken("GGGGG",match1to6,match6),addRegexToken("ggggg",match1to6,match6),addWeekParseToken(["gggg","ggggg","GGGG","GGGGG"],function(input,week,config,token){week[token.substr(0,2)]=toInt(input)}),addWeekParseToken(["gg","GG"],function(input,week,config,token){week[token]=hooks.parseTwoDigitYear(input)}),addFormatToken("Q",0,"Qo","quarter"),addUnitAlias("quarter","Q"),addUnitPriority("quarter",7),addRegexToken("Q",match1),addParseToken("Q",function(input,array){array[MONTH]=3*(toInt(input)-1)}),addFormatToken("D",["DD",2],"Do","date"),addUnitAlias("date","D"),addUnitPriority("date",9),addRegexToken("D",match1to2),addRegexToken("DD",match1to2,match2),addRegexToken("Do",function(isStrict,locale){return isStrict?locale._dayOfMonthOrdinalParse||locale._ordinalParse:locale._dayOfMonthOrdinalParseLenient}),addParseToken(["D","DD"],DATE),addParseToken("Do",function(input,array){array[DATE]=toInt(input.match(match1to2)[0])});var getSetDayOfMonth=makeGetSet("Date",!0);addFormatToken("DDD",["DDDD",3],"DDDo","dayOfYear"),addUnitAlias("dayOfYear","DDD"),addUnitPriority("dayOfYear",4),addRegexToken("DDD",match1to3),addRegexToken("DDDD",match3),addParseToken(["DDD","DDDD"],function(input,array,config){config._dayOfYear=toInt(input)}),addFormatToken("m",["mm",2],0,"minute"),addUnitAlias("minute","m"),addUnitPriority("minute",14),addRegexToken("m",match1to2),addRegexToken("mm",match1to2,match2),addParseToken(["m","mm"],MINUTE);var getSetMinute=makeGetSet("Minutes",!1);addFormatToken("s",["ss",2],0,"second"),addUnitAlias("second","s"),addUnitPriority("second",15),addRegexToken("s",match1to2),addRegexToken("ss",match1to2,match2),addParseToken(["s","ss"],SECOND);var token,getSetSecond=makeGetSet("Seconds",!1);for(addFormatToken("S",0,0,function(){return~~(this.millisecond()/100)}),addFormatToken(0,["SS",2],0,function(){return~~(this.millisecond()/10)}),addFormatToken(0,["SSS",3],0,"millisecond"),addFormatToken(0,["SSSS",4],0,function(){return 10*this.millisecond()}),addFormatToken(0,["SSSSS",5],0,function(){return 100*this.millisecond()}),addFormatToken(0,["SSSSSS",6],0,function(){return 1e3*this.millisecond()}),addFormatToken(0,["SSSSSSS",7],0,function(){return 1e4*this.millisecond()}),addFormatToken(0,["SSSSSSSS",8],0,function(){return 1e5*this.millisecond()}),addFormatToken(0,["SSSSSSSSS",9],0,function(){return 1e6*this.millisecond()}),addUnitAlias("millisecond","ms"),addUnitPriority("millisecond",16),addRegexToken("S",match1to3,match1),addRegexToken("SS",match1to3,match2),addRegexToken("SSS",match1to3,match3),token="SSSS";token.length<=9;token+="S")addRegexToken(token,matchUnsigned);function parseMs(input,array){array[MILLISECOND]=toInt(1e3*("0."+input))}for(token="S";token.length<=9;token+="S")addParseToken(token,parseMs);var getSetMillisecond=makeGetSet("Milliseconds",!1);addFormatToken("z",0,0,"zoneAbbr"),addFormatToken("zz",0,0,"zoneName");var proto=Moment.prototype;function preParsePostFormat(string){return string}proto.add=add,proto.calendar=function(time,formats){var now=time||createLocal(),sod=cloneWithOffset(now,this).startOf("day"),format=hooks.calendarFormat(this,sod)||"sameElse",output=formats&&(isFunction(formats[format])?formats[format].call(this,now):formats[format]);return this.format(output||this.localeData().calendar(format,this,createLocal(now)))},proto.clone=function(){return new Moment(this)},proto.diff=function(input,units,asFloat){var that,zoneDelta,output;if(!this.isValid())return NaN;if(!(that=cloneWithOffset(input,this)).isValid())return NaN;switch(zoneDelta=6e4*(that.utcOffset()-this.utcOffset()),units=normalizeUnits(units)){case"year":output=monthDiff(this,that)/12;break;case"month":output=monthDiff(this,that);break;case"quarter":output=monthDiff(this,that)/3;break;case"second":output=(this-that)/1e3;break;case"minute":output=(this-that)/6e4;break;case"hour":output=(this-that)/36e5;break;case"day":output=(this-that-zoneDelta)/864e5;break;case"week":output=(this-that-zoneDelta)/6048e5;break;default:output=this-that}return asFloat?output:absFloor(output)},proto.endOf=function(units){return void 0===(units=normalizeUnits(units))||"millisecond"===units?this:("date"===units&&(units="day"),this.startOf(units).add(1,"isoWeek"===units?"week":units).subtract(1,"ms"))},proto.format=function(inputString){inputString||(inputString=this.isUtc()?hooks.defaultFormatUtc:hooks.defaultFormat);var output=formatMoment(this,inputString);return this.localeData().postformat(output)},proto.from=function(time,withoutSuffix){return this.isValid()&&(isMoment(time)&&time.isValid()||createLocal(time).isValid())?createDuration({to:this,from:time}).locale(this.locale()).humanize(!withoutSuffix):this.localeData().invalidDate()},proto.fromNow=function(withoutSuffix){return this.from(createLocal(),withoutSuffix)},proto.to=function(time,withoutSuffix){return this.isValid()&&(isMoment(time)&&time.isValid()||createLocal(time).isValid())?createDuration({from:this,to:time}).locale(this.locale()).humanize(!withoutSuffix):this.localeData().invalidDate()},proto.toNow=function(withoutSuffix){return this.to(createLocal(),withoutSuffix)},proto.get=function(units){return isFunction(this[units=normalizeUnits(units)])?this[units]():this},proto.invalidAt=function(){return getParsingFlags(this).overflow},proto.isAfter=function(input,units){var localInput=isMoment(input)?input:createLocal(input);return!(!this.isValid()||!localInput.isValid())&&("millisecond"===(units=normalizeUnits(isUndefined(units)?"millisecond":units))?this.valueOf()>localInput.valueOf():localInput.valueOf()<this.clone().startOf(units).valueOf())},proto.isBefore=function(input,units){var localInput=isMoment(input)?input:createLocal(input);return!(!this.isValid()||!localInput.isValid())&&("millisecond"===(units=normalizeUnits(isUndefined(units)?"millisecond":units))?this.valueOf()<localInput.valueOf():this.clone().endOf(units).valueOf()<localInput.valueOf())},proto.isBetween=function(from,to,units,inclusivity){return("("===(inclusivity=inclusivity||"()")[0]?this.isAfter(from,units):!this.isBefore(from,units))&&(")"===inclusivity[1]?this.isBefore(to,units):!this.isAfter(to,units))},proto.isSame=function(input,units){var inputMs,localInput=isMoment(input)?input:createLocal(input);return!(!this.isValid()||!localInput.isValid())&&("millisecond"===(units=normalizeUnits(units||"millisecond"))?this.valueOf()===localInput.valueOf():(inputMs=localInput.valueOf(),this.clone().startOf(units).valueOf()<=inputMs&&inputMs<=this.clone().endOf(units).valueOf()))},proto.isSameOrAfter=function(input,units){return this.isSame(input,units)||this.isAfter(input,units)},proto.isSameOrBefore=function(input,units){return this.isSame(input,units)||this.isBefore(input,units)},proto.isValid=function(){return isValid(this)},proto.lang=lang,proto.locale=locale,proto.localeData=localeData,proto.max=prototypeMax,proto.min=prototypeMin,proto.parsingFlags=function(){return extend({},getParsingFlags(this))},proto.set=function(units,value){if("object"==typeof units)for(var prioritized=function(unitsObj){var units=[];for(var u in unitsObj)units.push({unit:u,priority:priorities[u]});return units.sort(function(a,b){return a.priority-b.priority}),units}(units=normalizeObjectUnits(units)),i=0;i<prioritized.length;i++)this[prioritized[i].unit](units[prioritized[i].unit]);else if(isFunction(this[units=normalizeUnits(units)]))return this[units](value);return this},proto.startOf=function(units){switch(units=normalizeUnits(units)){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"===units&&this.weekday(0),"isoWeek"===units&&this.isoWeekday(1),"quarter"===units&&this.month(3*Math.floor(this.month()/3)),this},proto.subtract=subtract,proto.toArray=function(){var m=this;return[m.year(),m.month(),m.date(),m.hour(),m.minute(),m.second(),m.millisecond()]},proto.toObject=function(){var m=this;return{years:m.year(),months:m.month(),date:m.date(),hours:m.hours(),minutes:m.minutes(),seconds:m.seconds(),milliseconds:m.milliseconds()}},proto.toDate=function(){return new Date(this.valueOf())},proto.toISOString=function(keepOffset){if(!this.isValid())return null;var utc=!0!==keepOffset,m=utc?this.clone().utc():this;return m.year()<0||m.year()>9999?formatMoment(m,utc?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):isFunction(Date.prototype.toISOString)?utc?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",formatMoment(m,"Z")):formatMoment(m,utc?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},proto.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var func="moment",zone="";this.isLocal()||(func=0===this.utcOffset()?"moment.utc":"moment.parseZone",zone="Z");var prefix="["+func+'("]',year=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",suffix=zone+'[")]';return this.format(prefix+year+"-MM-DD[T]HH:mm:ss.SSS"+suffix)},proto.toJSON=function(){return this.isValid()?this.toISOString():null},proto.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},proto.unix=function(){return Math.floor(this.valueOf()/1e3)},proto.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},proto.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},proto.year=getSetYear,proto.isLeapYear=function(){return isLeapYear(this.year())},proto.weekYear=function(input){return getSetWeekYearHelper.call(this,input,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},proto.isoWeekYear=function(input){return getSetWeekYearHelper.call(this,input,this.isoWeek(),this.isoWeekday(),1,4)},proto.quarter=proto.quarters=function(input){return null==input?Math.ceil((this.month()+1)/3):this.month(3*(input-1)+this.month()%3)},proto.month=getSetMonth,proto.daysInMonth=function(){return daysInMonth(this.year(),this.month())},proto.week=proto.weeks=function(input){var week=this.localeData().week(this);return null==input?week:this.add(7*(input-week),"d")},proto.isoWeek=proto.isoWeeks=function(input){var week=weekOfYear(this,1,4).week;return null==input?week:this.add(7*(input-week),"d")},proto.weeksInYear=function(){var weekInfo=this.localeData()._week;return weeksInYear(this.year(),weekInfo.dow,weekInfo.doy)},proto.isoWeeksInYear=function(){return weeksInYear(this.year(),1,4)},proto.date=getSetDayOfMonth,proto.day=proto.days=function(input){if(!this.isValid())return null!=input?this:NaN;var day=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=input?(input=function(input,locale){return"string"!=typeof input?input:isNaN(input)?"number"==typeof(input=locale.weekdaysParse(input))?input:null:parseInt(input,10)}(input,this.localeData()),this.add(input-day,"d")):day},proto.weekday=function(input){if(!this.isValid())return null!=input?this:NaN;var weekday=(this.day()+7-this.localeData()._week.dow)%7;return null==input?weekday:this.add(input-weekday,"d")},proto.isoWeekday=function(input){if(!this.isValid())return null!=input?this:NaN;if(null!=input){var weekday=function(input,locale){return"string"==typeof input?locale.weekdaysParse(input)%7||7:isNaN(input)?null:input}(input,this.localeData());return this.day(this.day()%7?weekday:weekday-7)}return this.day()||7},proto.dayOfYear=function(input){var dayOfYear=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==input?dayOfYear:this.add(input-dayOfYear,"d")},proto.hour=proto.hours=getSetHour,proto.minute=proto.minutes=getSetMinute,proto.second=proto.seconds=getSetSecond,proto.millisecond=proto.milliseconds=getSetMillisecond,proto.utcOffset=function(input,keepLocalTime,keepMinutes){var localAdjust,offset=this._offset||0;if(!this.isValid())return null!=input?this:NaN;if(null!=input){if("string"==typeof input){if(null===(input=offsetFromString(matchShortOffset,input)))return this}else Math.abs(input)<16&&!keepMinutes&&(input*=60);return!this._isUTC&&keepLocalTime&&(localAdjust=getDateOffset(this)),this._offset=input,this._isUTC=!0,null!=localAdjust&&this.add(localAdjust,"m"),offset!==input&&(!keepLocalTime||this._changeInProgress?addSubtract(this,createDuration(input-offset,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,hooks.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?offset:getDateOffset(this)},proto.utc=function(keepLocalTime){return this.utcOffset(0,keepLocalTime)},proto.local=function(keepLocalTime){return this._isUTC&&(this.utcOffset(0,keepLocalTime),this._isUTC=!1,keepLocalTime&&this.subtract(getDateOffset(this),"m")),this},proto.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var tZone=offsetFromString(matchOffset,this._i);null!=tZone?this.utcOffset(tZone):this.utcOffset(0,!0)}return this},proto.hasAlignedHourOffset=function(input){return!!this.isValid()&&(input=input?createLocal(input).utcOffset():0,(this.utcOffset()-input)%60==0)},proto.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},proto.isLocal=function(){return!!this.isValid()&&!this._isUTC},proto.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},proto.isUtc=isUtc,proto.isUTC=isUtc,proto.zoneAbbr=function(){return this._isUTC?"UTC":""},proto.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},proto.dates=deprecate("dates accessor is deprecated. Use date instead.",getSetDayOfMonth),proto.months=deprecate("months accessor is deprecated. Use month instead",getSetMonth),proto.years=deprecate("years accessor is deprecated. Use year instead",getSetYear),proto.zone=deprecate("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",function(input,keepLocalTime){return null!=input?("string"!=typeof input&&(input=-input),this.utcOffset(input,keepLocalTime),this):-this.utcOffset()}),proto.isDSTShifted=deprecate("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",function(){if(!isUndefined(this._isDSTShifted))return this._isDSTShifted;var c={};if(copyConfig(c,this),(c=prepareConfig(c))._a){var other=c._isUTC?createUTC(c._a):createLocal(c._a);this._isDSTShifted=this.isValid()&&compareArrays(c._a,other.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted});var proto$1=Locale.prototype;function get$1(format,index,field,setter){var locale=getLocale(),utc=createUTC().set(setter,index);return locale[field](utc,format)}function listMonthsImpl(format,index,field){if(isNumber(format)&&(index=format,format=void 0),format=format||"",null!=index)return get$1(format,index,field,"month");var i,out=[];for(i=0;i<12;i++)out[i]=get$1(format,i,field,"month");return out}function listWeekdaysImpl(localeSorted,format,index,field){"boolean"==typeof localeSorted?(isNumber(format)&&(index=format,format=void 0),format=format||""):(index=format=localeSorted,localeSorted=!1,isNumber(format)&&(index=format,format=void 0),format=format||"");var i,locale=getLocale(),shift=localeSorted?locale._week.dow:0;if(null!=index)return get$1(format,(index+shift)%7,field,"day");var out=[];for(i=0;i<7;i++)out[i]=get$1(format,(i+shift)%7,field,"day");return out}proto$1.calendar=function(key,mom,now){var output=this._calendar[key]||this._calendar.sameElse;return isFunction(output)?output.call(mom,now):output},proto$1.longDateFormat=function(key){var format=this._longDateFormat[key],formatUpper=this._longDateFormat[key.toUpperCase()];return format||!formatUpper?format:(this._longDateFormat[key]=formatUpper.replace(/MMMM|MM|DD|dddd/g,function(val){return val.slice(1)}),this._longDateFormat[key])},proto$1.invalidDate=function(){return this._invalidDate},proto$1.ordinal=function(number){return this._ordinal.replace("%d",number)},proto$1.preparse=preParsePostFormat,proto$1.postformat=preParsePostFormat,proto$1.relativeTime=function(number,withoutSuffix,string,isFuture){var output=this._relativeTime[string];return isFunction(output)?output(number,withoutSuffix,string,isFuture):output.replace(/%d/i,number)},proto$1.pastFuture=function(diff,output){var format=this._relativeTime[diff>0?"future":"past"];return isFunction(format)?format(output):format.replace(/%s/i,output)},proto$1.set=function(config){var prop,i;for(i in config)isFunction(prop=config[i])?this[i]=prop:this["_"+i]=prop;this._config=config,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},proto$1.months=function(m,format){return m?isArray(this._months)?this._months[m.month()]:this._months[(this._months.isFormat||MONTHS_IN_FORMAT).test(format)?"format":"standalone"][m.month()]:isArray(this._months)?this._months:this._months.standalone},proto$1.monthsShort=function(m,format){return m?isArray(this._monthsShort)?this._monthsShort[m.month()]:this._monthsShort[MONTHS_IN_FORMAT.test(format)?"format":"standalone"][m.month()]:isArray(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},proto$1.monthsParse=function(monthName,format,strict){var i,mom,regex;if(this._monthsParseExact)return function(monthName,format,strict){var i,ii,mom,llc=monthName.toLocaleLowerCase();if(!this._monthsParse)for(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[],i=0;i<12;++i)mom=createUTC([2e3,i]),this._shortMonthsParse[i]=this.monthsShort(mom,"").toLocaleLowerCase(),this._longMonthsParse[i]=this.months(mom,"").toLocaleLowerCase();return strict?"MMM"===format?-1!==(ii=indexOf.call(this._shortMonthsParse,llc))?ii:null:-1!==(ii=indexOf.call(this._longMonthsParse,llc))?ii:null:"MMM"===format?-1!==(ii=indexOf.call(this._shortMonthsParse,llc))?ii:-1!==(ii=indexOf.call(this._longMonthsParse,llc))?ii:null:-1!==(ii=indexOf.call(this._longMonthsParse,llc))?ii:-1!==(ii=indexOf.call(this._shortMonthsParse,llc))?ii:null}.call(this,monthName,format,strict);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),i=0;i<12;i++){if(mom=createUTC([2e3,i]),strict&&!this._longMonthsParse[i]&&(this._longMonthsParse[i]=new RegExp("^"+this.months(mom,"").replace(".","")+"$","i"),this._shortMonthsParse[i]=new RegExp("^"+this.monthsShort(mom,"").replace(".","")+"$","i")),strict||this._monthsParse[i]||(regex="^"+this.months(mom,"")+"|^"+this.monthsShort(mom,""),this._monthsParse[i]=new RegExp(regex.replace(".",""),"i")),strict&&"MMMM"===format&&this._longMonthsParse[i].test(monthName))return i;if(strict&&"MMM"===format&&this._shortMonthsParse[i].test(monthName))return i;if(!strict&&this._monthsParse[i].test(monthName))return i}},proto$1.monthsRegex=function(isStrict){return this._monthsParseExact?(hasOwnProp(this,"_monthsRegex")||computeMonthsParse.call(this),isStrict?this._monthsStrictRegex:this._monthsRegex):(hasOwnProp(this,"_monthsRegex")||(this._monthsRegex=defaultMonthsRegex),this._monthsStrictRegex&&isStrict?this._monthsStrictRegex:this._monthsRegex)},proto$1.monthsShortRegex=function(isStrict){return this._monthsParseExact?(hasOwnProp(this,"_monthsRegex")||computeMonthsParse.call(this),isStrict?this._monthsShortStrictRegex:this._monthsShortRegex):(hasOwnProp(this,"_monthsShortRegex")||(this._monthsShortRegex=defaultMonthsShortRegex),this._monthsShortStrictRegex&&isStrict?this._monthsShortStrictRegex:this._monthsShortRegex)},proto$1.week=function(mom){return weekOfYear(mom,this._week.dow,this._week.doy).week},proto$1.firstDayOfYear=function(){return this._week.doy},proto$1.firstDayOfWeek=function(){return this._week.dow},proto$1.weekdays=function(m,format){return m?isArray(this._weekdays)?this._weekdays[m.day()]:this._weekdays[this._weekdays.isFormat.test(format)?"format":"standalone"][m.day()]:isArray(this._weekdays)?this._weekdays:this._weekdays.standalone},proto$1.weekdaysMin=function(m){return m?this._weekdaysMin[m.day()]:this._weekdaysMin},proto$1.weekdaysShort=function(m){return m?this._weekdaysShort[m.day()]:this._weekdaysShort},proto$1.weekdaysParse=function(weekdayName,format,strict){var i,mom,regex;if(this._weekdaysParseExact)return function(weekdayName,format,strict){var i,ii,mom,llc=weekdayName.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],i=0;i<7;++i)mom=createUTC([2e3,1]).day(i),this._minWeekdaysParse[i]=this.weekdaysMin(mom,"").toLocaleLowerCase(),this._shortWeekdaysParse[i]=this.weekdaysShort(mom,"").toLocaleLowerCase(),this._weekdaysParse[i]=this.weekdays(mom,"").toLocaleLowerCase();return strict?"dddd"===format?-1!==(ii=indexOf.call(this._weekdaysParse,llc))?ii:null:"ddd"===format?-1!==(ii=indexOf.call(this._shortWeekdaysParse,llc))?ii:null:-1!==(ii=indexOf.call(this._minWeekdaysParse,llc))?ii:null:"dddd"===format?-1!==(ii=indexOf.call(this._weekdaysParse,llc))?ii:-1!==(ii=indexOf.call(this._shortWeekdaysParse,llc))?ii:-1!==(ii=indexOf.call(this._minWeekdaysParse,llc))?ii:null:"ddd"===format?-1!==(ii=indexOf.call(this._shortWeekdaysParse,llc))?ii:-1!==(ii=indexOf.call(this._weekdaysParse,llc))?ii:-1!==(ii=indexOf.call(this._minWeekdaysParse,llc))?ii:null:-1!==(ii=indexOf.call(this._minWeekdaysParse,llc))?ii:-1!==(ii=indexOf.call(this._weekdaysParse,llc))?ii:-1!==(ii=indexOf.call(this._shortWeekdaysParse,llc))?ii:null}.call(this,weekdayName,format,strict);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),i=0;i<7;i++){if(mom=createUTC([2e3,1]).day(i),strict&&!this._fullWeekdaysParse[i]&&(this._fullWeekdaysParse[i]=new RegExp("^"+this.weekdays(mom,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[i]=new RegExp("^"+this.weekdaysShort(mom,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[i]=new RegExp("^"+this.weekdaysMin(mom,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[i]||(regex="^"+this.weekdays(mom,"")+"|^"+this.weekdaysShort(mom,"")+"|^"+this.weekdaysMin(mom,""),this._weekdaysParse[i]=new RegExp(regex.replace(".",""),"i")),strict&&"dddd"===format&&this._fullWeekdaysParse[i].test(weekdayName))return i;if(strict&&"ddd"===format&&this._shortWeekdaysParse[i].test(weekdayName))return i;if(strict&&"dd"===format&&this._minWeekdaysParse[i].test(weekdayName))return i;if(!strict&&this._weekdaysParse[i].test(weekdayName))return i}},proto$1.weekdaysRegex=function(isStrict){return this._weekdaysParseExact?(hasOwnProp(this,"_weekdaysRegex")||computeWeekdaysParse.call(this),isStrict?this._weekdaysStrictRegex:this._weekdaysRegex):(hasOwnProp(this,"_weekdaysRegex")||(this._weekdaysRegex=defaultWeekdaysRegex),this._weekdaysStrictRegex&&isStrict?this._weekdaysStrictRegex:this._weekdaysRegex)},proto$1.weekdaysShortRegex=function(isStrict){return this._weekdaysParseExact?(hasOwnProp(this,"_weekdaysRegex")||computeWeekdaysParse.call(this),isStrict?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(hasOwnProp(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=defaultWeekdaysShortRegex),this._weekdaysShortStrictRegex&&isStrict?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},proto$1.weekdaysMinRegex=function(isStrict){return this._weekdaysParseExact?(hasOwnProp(this,"_weekdaysRegex")||computeWeekdaysParse.call(this),isStrict?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(hasOwnProp(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=defaultWeekdaysMinRegex),this._weekdaysMinStrictRegex&&isStrict?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},proto$1.isPM=function(input){return"p"===(input+"").toLowerCase().charAt(0)},proto$1.meridiem=function(hours,minutes,isLower){return hours>11?isLower?"pm":"PM":isLower?"am":"AM"},getSetGlobalLocale("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(number){var b=number%10;return number+(1===toInt(number%100/10)?"th":1===b?"st":2===b?"nd":3===b?"rd":"th")}}),hooks.lang=deprecate("moment.lang is deprecated. Use moment.locale instead.",getSetGlobalLocale),hooks.langData=deprecate("moment.langData is deprecated. Use moment.localeData instead.",getLocale);var mathAbs=Math.abs;function addSubtract$1(duration,input,value,direction){var other=createDuration(input,value);return duration._milliseconds+=direction*other._milliseconds,duration._days+=direction*other._days,duration._months+=direction*other._months,duration._bubble()}function absCeil(number){return number<0?Math.floor(number):Math.ceil(number)}function daysToMonths(days){return 4800*days/146097}function monthsToDays(months){return 146097*months/4800}function makeAs(alias){return function(){return this.as(alias)}}var asMilliseconds=makeAs("ms"),asSeconds=makeAs("s"),asMinutes=makeAs("m"),asHours=makeAs("h"),asDays=makeAs("d"),asWeeks=makeAs("w"),asMonths=makeAs("M"),asYears=makeAs("y");function makeGetter(name){return function(){return this.isValid()?this._data[name]:NaN}}var milliseconds=makeGetter("milliseconds"),seconds=makeGetter("seconds"),minutes=makeGetter("minutes"),hours=makeGetter("hours"),days=makeGetter("days"),months=makeGetter("months"),years=makeGetter("years");var round=Math.round,thresholds={ss:44,s:45,m:45,h:22,d:26,M:11};var abs$1=Math.abs;function sign(x){return(x>0)-(x<0)||+x}function toISOString$1(){if(!this.isValid())return this.localeData().invalidDate();var minutes,hours,seconds=abs$1(this._milliseconds)/1e3,days=abs$1(this._days),months=abs$1(this._months);hours=absFloor((minutes=absFloor(seconds/60))/60),seconds%=60,minutes%=60;var Y=absFloor(months/12),M=months%=12,D=days,h=hours,m=minutes,s=seconds?seconds.toFixed(3).replace(/\.?0+$/,""):"",total=this.asSeconds();if(!total)return"P0D";var totalSign=total<0?"-":"",ymSign=sign(this._months)!==sign(total)?"-":"",daysSign=sign(this._days)!==sign(total)?"-":"",hmsSign=sign(this._milliseconds)!==sign(total)?"-":"";return totalSign+"P"+(Y?ymSign+Y+"Y":"")+(M?ymSign+M+"M":"")+(D?daysSign+D+"D":"")+(h||m||s?"T":"")+(h?hmsSign+h+"H":"")+(m?hmsSign+m+"M":"")+(s?hmsSign+s+"S":"")}var proto$2=Duration.prototype;return proto$2.isValid=function(){return this._isValid},proto$2.abs=function(){var data=this._data;return this._milliseconds=mathAbs(this._milliseconds),this._days=mathAbs(this._days),this._months=mathAbs(this._months),data.milliseconds=mathAbs(data.milliseconds),data.seconds=mathAbs(data.seconds),data.minutes=mathAbs(data.minutes),data.hours=mathAbs(data.hours),data.months=mathAbs(data.months),data.years=mathAbs(data.years),this},proto$2.add=function(input,value){return addSubtract$1(this,input,value,1)},proto$2.subtract=function(input,value){return addSubtract$1(this,input,value,-1)},proto$2.as=function(units){if(!this.isValid())return NaN;var days,months,milliseconds=this._milliseconds;if("month"===(units=normalizeUnits(units))||"year"===units)return days=this._days+milliseconds/864e5,months=this._months+daysToMonths(days),"month"===units?months:months/12;switch(days=this._days+Math.round(monthsToDays(this._months)),units){case"week":return days/7+milliseconds/6048e5;case"day":return days+milliseconds/864e5;case"hour":return 24*days+milliseconds/36e5;case"minute":return 1440*days+milliseconds/6e4;case"second":return 86400*days+milliseconds/1e3;case"millisecond":return Math.floor(864e5*days)+milliseconds;default:throw new Error("Unknown unit "+units)}},proto$2.asMilliseconds=asMilliseconds,proto$2.asSeconds=asSeconds,proto$2.asMinutes=asMinutes,proto$2.asHours=asHours,proto$2.asDays=asDays,proto$2.asWeeks=asWeeks,proto$2.asMonths=asMonths,proto$2.asYears=asYears,proto$2.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*toInt(this._months/12):NaN},proto$2._bubble=function(){var seconds,minutes,hours,years,monthsFromDays,milliseconds=this._milliseconds,days=this._days,months=this._months,data=this._data;return milliseconds>=0&&days>=0&&months>=0||milliseconds<=0&&days<=0&&months<=0||(milliseconds+=864e5*absCeil(monthsToDays(months)+days),days=0,months=0),data.milliseconds=milliseconds%1e3,seconds=absFloor(milliseconds/1e3),data.seconds=seconds%60,minutes=absFloor(seconds/60),data.minutes=minutes%60,hours=absFloor(minutes/60),data.hours=hours%24,months+=monthsFromDays=absFloor(daysToMonths(days+=absFloor(hours/24))),days-=absCeil(monthsToDays(monthsFromDays)),years=absFloor(months/12),months%=12,data.days=days,data.months=months,data.years=years,this},proto$2.clone=function(){return createDuration(this)},proto$2.get=function(units){return units=normalizeUnits(units),this.isValid()?this[units+"s"]():NaN},proto$2.milliseconds=milliseconds,proto$2.seconds=seconds,proto$2.minutes=minutes,proto$2.hours=hours,proto$2.days=days,proto$2.weeks=function(){return absFloor(this.days()/7)},proto$2.months=months,proto$2.years=years,proto$2.humanize=function(withSuffix){if(!this.isValid())return this.localeData().invalidDate();var locale=this.localeData(),output=function(posNegDuration,withoutSuffix,locale){var duration=createDuration(posNegDuration).abs(),seconds=round(duration.as("s")),minutes=round(duration.as("m")),hours=round(duration.as("h")),days=round(duration.as("d")),months=round(duration.as("M")),years=round(duration.as("y")),a=seconds<=thresholds.ss&&["s",seconds]||seconds<thresholds.s&&["ss",seconds]||minutes<=1&&["m"]||minutes<thresholds.m&&["mm",minutes]||hours<=1&&["h"]||hours<thresholds.h&&["hh",hours]||days<=1&&["d"]||days<thresholds.d&&["dd",days]||months<=1&&["M"]||months<thresholds.M&&["MM",months]||years<=1&&["y"]||["yy",years];return a[2]=withoutSuffix,a[3]=+posNegDuration>0,a[4]=locale,function(string,number,withoutSuffix,isFuture,locale){return locale.relativeTime(number||1,!!withoutSuffix,string,isFuture)}.apply(null,a)}(this,!withSuffix,locale);return withSuffix&&(output=locale.pastFuture(+this,output)),locale.postformat(output)},proto$2.toISOString=toISOString$1,proto$2.toString=toISOString$1,proto$2.toJSON=toISOString$1,proto$2.locale=locale,proto$2.localeData=localeData,proto$2.toIsoString=deprecate("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",toISOString$1),proto$2.lang=lang,addFormatToken("X",0,0,"unix"),addFormatToken("x",0,0,"valueOf"),addRegexToken("x",matchSigned),addRegexToken("X",/[+-]?\d+(\.\d{1,3})?/),addParseToken("X",function(input,array,config){config._d=new Date(1e3*parseFloat(input,10))}),addParseToken("x",function(input,array,config){config._d=new Date(toInt(input))}),hooks.version="2.22.2",hookCallback=createLocal,hooks.fn=proto,hooks.min=function(){return pickBy("isBefore",[].slice.call(arguments,0))},hooks.max=function(){return pickBy("isAfter",[].slice.call(arguments,0))},hooks.now=function(){return Date.now?Date.now():+new Date},hooks.utc=createUTC,hooks.unix=function(input){return createLocal(1e3*input)},hooks.months=function(format,index){return listMonthsImpl(format,index,"months")},hooks.isDate=isDate,hooks.locale=getSetGlobalLocale,hooks.invalid=createInvalid,hooks.duration=createDuration,hooks.isMoment=isMoment,hooks.weekdays=function(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,"weekdays")},hooks.parseZone=function(){return createLocal.apply(null,arguments).parseZone()},hooks.localeData=getLocale,hooks.isDuration=isDuration,hooks.monthsShort=function(format,index){return listMonthsImpl(format,index,"monthsShort")},hooks.weekdaysMin=function(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,"weekdaysMin")},hooks.defineLocale=defineLocale,hooks.updateLocale=function(name,config){if(null!=config){var locale,tmpLocale,parentConfig=baseConfig;null!=(tmpLocale=loadLocale(name))&&(parentConfig=tmpLocale._config),(locale=new Locale(config=mergeConfigs(parentConfig,config))).parentLocale=locales[name],locales[name]=locale,getSetGlobalLocale(name)}else null!=locales[name]&&(null!=locales[name].parentLocale?locales[name]=locales[name].parentLocale:null!=locales[name]&&delete locales[name]);return locales[name]},hooks.locales=function(){return keys(locales)},hooks.weekdaysShort=function(localeSorted,format,index){return listWeekdaysImpl(localeSorted,format,index,"weekdaysShort")},hooks.normalizeUnits=normalizeUnits,hooks.relativeTimeRounding=function(roundingFunction){return void 0===roundingFunction?round:"function"==typeof roundingFunction&&(round=roundingFunction,!0)},hooks.relativeTimeThreshold=function(threshold,limit){return void 0!==thresholds[threshold]&&(void 0===limit?thresholds[threshold]:(thresholds[threshold]=limit,"s"===threshold&&(thresholds.ss=limit-1),!0))},hooks.calendarFormat=function(myMoment,now){var diff=myMoment.diff(now,"days",!0);return diff<-6?"sameElse":diff<-1?"lastWeek":diff<0?"lastDay":diff<1?"sameDay":diff<2?"nextDay":diff<7?"nextWeek":"sameElse"},hooks.prototype=proto,hooks.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"},hooks}),function(global,factory){"object"==typeof module&&"object"==typeof module.exports?module.exports=global.document?factory(global,!0):function(w){if(!w.document)throw new Error("jQuery requires a window with a document");return factory(w)}:factory(global)}("undefined"!=typeof window?window:this,function(window,noGlobal){var arr=[],document=window.document,getProto=Object.getPrototypeOf,slice=arr.slice,concat=arr.concat,push=arr.push,indexOf=arr.indexOf,class2type={},toString=class2type.toString,hasOwn=class2type.hasOwnProperty,fnToString=hasOwn.toString,ObjectFunctionString=fnToString.call(Object),support={},isFunction=function(obj){return"function"==typeof obj&&"number"!=typeof obj.nodeType},isWindow=function(obj){return null!=obj&&obj===obj.window},preservedScriptAttributes={type:!0,src:!0,noModule:!0};function DOMEval(code,doc,node){var i,script=(doc=doc||document).createElement("script");if(script.text=code,node)for(i in preservedScriptAttributes)node[i]&&(script[i]=node[i]);doc.head.appendChild(script).parentNode.removeChild(script)}function toType(obj){return null==obj?obj+"":"object"==typeof obj||"function"==typeof obj?class2type[toString.call(obj)]||"object":typeof obj}var jQuery=function(selector,context){return new jQuery.fn.init(selector,context)},rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function isArrayLike(obj){var length=!!obj&&"length"in obj&&obj.length,type=toType(obj);return!isFunction(obj)&&!isWindow(obj)&&("array"===type||0===length||"number"==typeof length&&length>0&&length-1 in obj)}jQuery.fn=jQuery.prototype={jquery:"3.3.1",constructor:jQuery,length:0,toArray:function(){return slice.call(this)},get:function(num){return null==num?slice.call(this):num<0?this[num+this.length]:this[num]},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);return ret.prevObject=this,ret},each:function(callback){return jQuery.each(this,callback)},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},slice:function(){return this.pushStack(slice.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[])},end:function(){return this.prevObject||this.constructor()},push:push,sort:arr.sort,splice:arr.splice},jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=!1;for("boolean"==typeof target&&(deep=target,target=arguments[i]||{},i++),"object"==typeof target||isFunction(target)||(target={}),i===length&&(target=this,i--);i<length;i++)if(null!=(options=arguments[i]))for(name in options)src=target[name],target!==(copy=options[name])&&(deep&©&&(jQuery.isPlainObject(copy)||(copyIsArray=Array.isArray(copy)))?(copyIsArray?(copyIsArray=!1,clone=src&&Array.isArray(src)?src:[]):clone=src&&jQuery.isPlainObject(src)?src:{},target[name]=jQuery.extend(deep,clone,copy)):void 0!==copy&&(target[name]=copy));return target},jQuery.extend({expando:"jQuery"+("3.3.1"+Math.random()).replace(/\D/g,""),isReady:!0,error:function(msg){throw new Error(msg)},noop:function(){},isPlainObject:function(obj){var proto,Ctor;return!(!obj||"[object Object]"!==toString.call(obj))&&(!(proto=getProto(obj))||"function"==typeof(Ctor=hasOwn.call(proto,"constructor")&&proto.constructor)&&fnToString.call(Ctor)===ObjectFunctionString)},isEmptyObject:function(obj){var name;for(name in obj)return!1;return!0},globalEval:function(code){DOMEval(code)},each:function(obj,callback){var length,i=0;if(isArrayLike(obj))for(length=obj.length;i<length&&!1!==callback.call(obj[i],i,obj[i]);i++);else for(i in obj)if(!1===callback.call(obj[i],i,obj[i]))break;return obj},trim:function(text){return null==text?"":(text+"").replace(rtrim,"")},makeArray:function(arr,results){var ret=results||[];return null!=arr&&(isArrayLike(Object(arr))?jQuery.merge(ret,"string"==typeof arr?[arr]:arr):push.call(ret,arr)),ret},inArray:function(elem,arr,i){return null==arr?-1:indexOf.call(arr,elem,i)},merge:function(first,second){for(var len=+second.length,j=0,i=first.length;j<len;j++)first[i++]=second[j];return first.length=i,first},grep:function(elems,callback,invert){for(var matches=[],i=0,length=elems.length,callbackExpect=!invert;i<length;i++)!callback(elems[i],i)!==callbackExpect&&matches.push(elems[i]);return matches},map:function(elems,callback,arg){var length,value,i=0,ret=[];if(isArrayLike(elems))for(length=elems.length;i<length;i++)null!=(value=callback(elems[i],i,arg))&&ret.push(value);else for(i in elems)null!=(value=callback(elems[i],i,arg))&&ret.push(value);return concat.apply([],ret)},guid:1,support:support}),"function"==typeof Symbol&&(jQuery.fn[Symbol.iterator]=arr[Symbol.iterator]),jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase()});var Sizzle=function(window){var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+1*new Date,preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){return a===b&&(hasDuplicate=!0),0},hasOwn={}.hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=function(list,elem){for(var i=0,len=list.length;i<len;i++)if(list[i]===elem)return i;return-1},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",whitespace="[\\x20\\t\\r\\n\\f]",identifier="(?:\\\\.|[\\w-]|[^\0-\\xa0])+",attributes="\\["+whitespace+"*("+identifier+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+identifier+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|.*)\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),rtrim=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rcombinators=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rattributeQuotes=new RegExp("="+whitespace+"*([^\\]'\"]*?)"+whitespace+"*\\]","g"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={ID:new RegExp("^#("+identifier+")"),CLASS:new RegExp("^\\.("+identifier+")"),TAG:new RegExp("^("+identifier+"|[*])"),ATTR:new RegExp("^"+attributes),PSEUDO:new RegExp("^"+pseudos),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),bool:new RegExp("^(?:"+booleans+")$","i"),needsContext:new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){var high="0x"+escaped-65536;return high!=high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,1023&high|56320)},rcssescape=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,fcssescape=function(ch,asCodePoint){return asCodePoint?"\0"===ch?"�":ch.slice(0,-1)+"\\"+ch.charCodeAt(ch.length-1).toString(16)+" ":"\\"+ch},unloadHandler=function(){setDocument()},disabledAncestor=addCombinator(function(elem){return!0===elem.disabled&&("form"in elem||"label"in elem)},{dir:"parentNode",next:"legend"});try{push.apply(arr=slice.call(preferredDoc.childNodes),preferredDoc.childNodes),arr[preferredDoc.childNodes.length].nodeType}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els))}:function(target,els){for(var j=target.length,i=0;target[j++]=els[i++];);target.length=j-1}}}function Sizzle(selector,context,results,seed){var m,i,elem,nid,match,groups,newSelector,newContext=context&&context.ownerDocument,nodeType=context?context.nodeType:9;if(results=results||[],"string"!=typeof selector||!selector||1!==nodeType&&9!==nodeType&&11!==nodeType)return results;if(!seed&&((context?context.ownerDocument||context:preferredDoc)!==document&&setDocument(context),context=context||document,documentIsHTML)){if(11!==nodeType&&(match=rquickExpr.exec(selector)))if(m=match[1]){if(9===nodeType){if(!(elem=context.getElementById(m)))return results;if(elem.id===m)return results.push(elem),results}else if(newContext&&(elem=newContext.getElementById(m))&&contains(context,elem)&&elem.id===m)return results.push(elem),results}else{if(match[2])return push.apply(results,context.getElementsByTagName(selector)),results;if((m=match[3])&&support.getElementsByClassName&&context.getElementsByClassName)return push.apply(results,context.getElementsByClassName(m)),results}if(support.qsa&&!compilerCache[selector+" "]&&(!rbuggyQSA||!rbuggyQSA.test(selector))){if(1!==nodeType)newContext=context,newSelector=selector;else if("object"!==context.nodeName.toLowerCase()){for((nid=context.getAttribute("id"))?nid=nid.replace(rcssescape,fcssescape):context.setAttribute("id",nid=expando),i=(groups=tokenize(selector)).length;i--;)groups[i]="#"+nid+" "+toSelector(groups[i]);newSelector=groups.join(","),newContext=rsibling.test(selector)&&testContext(context.parentNode)||context}if(newSelector)try{return push.apply(results,newContext.querySelectorAll(newSelector)),results}catch(qsaError){}finally{nid===expando&&context.removeAttribute("id")}}}return select(selector.replace(rtrim,"$1"),context,results,seed)}function createCache(){var keys=[];return function cache(key,value){return keys.push(key+" ")>Expr.cacheLength&&delete cache[keys.shift()],cache[key+" "]=value}}function markFunction(fn){return fn[expando]=!0,fn}function assert(fn){var el=document.createElement("fieldset");try{return!!fn(el)}catch(e){return!1}finally{el.parentNode&&el.parentNode.removeChild(el),el=null}}function addHandle(attrs,handler){for(var arr=attrs.split("|"),i=arr.length;i--;)Expr.attrHandle[arr[i]]=handler}function siblingCheck(a,b){var cur=b&&a,diff=cur&&1===a.nodeType&&1===b.nodeType&&a.sourceIndex-b.sourceIndex;if(diff)return diff;if(cur)for(;cur=cur.nextSibling;)if(cur===b)return-1;return a?1:-1}function createInputPseudo(type){return function(elem){return"input"===elem.nodeName.toLowerCase()&&elem.type===type}}function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return("input"===name||"button"===name)&&elem.type===type}}function createDisabledPseudo(disabled){return function(elem){return"form"in elem?elem.parentNode&&!1===elem.disabled?"label"in elem?"label"in elem.parentNode?elem.parentNode.disabled===disabled:elem.disabled===disabled:elem.isDisabled===disabled||elem.isDisabled!==!disabled&&disabledAncestor(elem)===disabled:elem.disabled===disabled:"label"in elem&&elem.disabled===disabled}}function createPositionalPseudo(fn){return markFunction(function(argument){return argument=+argument,markFunction(function(seed,matches){for(var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;i--;)seed[j=matchIndexes[i]]&&(seed[j]=!(matches[j]=seed[j]))})})}function testContext(context){return context&&void 0!==context.getElementsByTagName&&context}for(i in support=Sizzle.support={},isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return!!documentElement&&"HTML"!==documentElement.nodeName},setDocument=Sizzle.setDocument=function(node){var hasCompare,subWindow,doc=node?node.ownerDocument||node:preferredDoc;return doc!==document&&9===doc.nodeType&&doc.documentElement?(docElem=(document=doc).documentElement,documentIsHTML=!isXML(document),preferredDoc!==document&&(subWindow=document.defaultView)&&subWindow.top!==subWindow&&(subWindow.addEventListener?subWindow.addEventListener("unload",unloadHandler,!1):subWindow.attachEvent&&subWindow.attachEvent("onunload",unloadHandler)),support.attributes=assert(function(el){return el.className="i",!el.getAttribute("className")}),support.getElementsByTagName=assert(function(el){return el.appendChild(document.createComment("")),!el.getElementsByTagName("*").length}),support.getElementsByClassName=rnative.test(document.getElementsByClassName),support.getById=assert(function(el){return docElem.appendChild(el).id=expando,!document.getElementsByName||!document.getElementsByName(expando).length}),support.getById?(Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId}},Expr.find.ID=function(id,context){if(void 0!==context.getElementById&&documentIsHTML){var elem=context.getElementById(id);return elem?[elem]:[]}}):(Expr.filter.ID=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=void 0!==elem.getAttributeNode&&elem.getAttributeNode("id");return node&&node.value===attrId}},Expr.find.ID=function(id,context){if(void 0!==context.getElementById&&documentIsHTML){var node,i,elems,elem=context.getElementById(id);if(elem){if((node=elem.getAttributeNode("id"))&&node.value===id)return[elem];for(elems=context.getElementsByName(id),i=0;elem=elems[i++];)if((node=elem.getAttributeNode("id"))&&node.value===id)return[elem]}return[]}}),Expr.find.TAG=support.getElementsByTagName?function(tag,context){return void 0!==context.getElementsByTagName?context.getElementsByTagName(tag):support.qsa?context.querySelectorAll(tag):void 0}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if("*"===tag){for(;elem=results[i++];)1===elem.nodeType&&tmp.push(elem);return tmp}return results},Expr.find.CLASS=support.getElementsByClassName&&function(className,context){if(void 0!==context.getElementsByClassName&&documentIsHTML)return context.getElementsByClassName(className)},rbuggyMatches=[],rbuggyQSA=[],(support.qsa=rnative.test(document.querySelectorAll))&&(assert(function(el){docElem.appendChild(el).innerHTML="<a id='"+expando+"'></a><select id='"+expando+"-\r\\' msallowcapture=''><option selected=''></option></select>",el.querySelectorAll("[msallowcapture^='']").length&&rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")"),el.querySelectorAll("[selected]").length||rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")"),el.querySelectorAll("[id~="+expando+"-]").length||rbuggyQSA.push("~="),el.querySelectorAll(":checked").length||rbuggyQSA.push(":checked"),el.querySelectorAll("a#"+expando+"+*").length||rbuggyQSA.push(".#.+[+~]")}),assert(function(el){el.innerHTML="<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>";var input=document.createElement("input");input.setAttribute("type","hidden"),el.appendChild(input).setAttribute("name","D"),el.querySelectorAll("[name=d]").length&&rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?="),2!==el.querySelectorAll(":enabled").length&&rbuggyQSA.push(":enabled",":disabled"),docElem.appendChild(el).disabled=!0,2!==el.querySelectorAll(":disabled").length&&rbuggyQSA.push(":enabled",":disabled"),el.querySelectorAll("*,:x"),rbuggyQSA.push(",.*:")})),(support.matchesSelector=rnative.test(matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector))&&assert(function(el){support.disconnectedMatch=matches.call(el,"*"),matches.call(el,"[s!='']:x"),rbuggyMatches.push("!=",pseudos)}),rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|")),rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|")),hasCompare=rnative.test(docElem.compareDocumentPosition),contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=9===a.nodeType?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!(!bup||1!==bup.nodeType||!(adown.contains?adown.contains(bup):a.compareDocumentPosition&&16&a.compareDocumentPosition(bup)))}:function(a,b){if(b)for(;b=b.parentNode;)if(b===a)return!0;return!1},sortOrder=hasCompare?function(a,b){if(a===b)return hasDuplicate=!0,0;var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;return compare||(1&(compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1)||!support.sortDetached&&b.compareDocumentPosition(a)===compare?a===document||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)?-1:b===document||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0:4&compare?-1:1)}:function(a,b){if(a===b)return hasDuplicate=!0,0;var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup)return a===document?-1:b===document?1:aup?-1:bup?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0;if(aup===bup)return siblingCheck(a,b);for(cur=a;cur=cur.parentNode;)ap.unshift(cur);for(cur=b;cur=cur.parentNode;)bp.unshift(cur);for(;ap[i]===bp[i];)i++;return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0},document):document},Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements)},Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document&&setDocument(elem),expr=expr.replace(rattributeQuotes,"='$1']"),support.matchesSelector&&documentIsHTML&&!compilerCache[expr+" "]&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr)))try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&11!==elem.document.nodeType)return ret}catch(e){}return Sizzle(expr,document,null,[elem]).length>0},Sizzle.contains=function(context,elem){return(context.ownerDocument||context)!==document&&setDocument(context),contains(context,elem)},Sizzle.attr=function(elem,name){(elem.ownerDocument||elem)!==document&&setDocument(elem);var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):void 0;return void 0!==val?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null},Sizzle.escape=function(sel){return(sel+"").replace(rcssescape,fcssescape)},Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg)},Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;if(hasDuplicate=!support.detectDuplicates,sortInput=!support.sortStable&&results.slice(0),results.sort(sortOrder),hasDuplicate){for(;elem=results[i++];)elem===results[i]&&(j=duplicates.push(i));for(;j--;)results.splice(duplicates[j],1)}return sortInput=null,results},getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(nodeType){if(1===nodeType||9===nodeType||11===nodeType){if("string"==typeof elem.textContent)return elem.textContent;for(elem=elem.firstChild;elem;elem=elem.nextSibling)ret+=getText(elem)}else if(3===nodeType||4===nodeType)return elem.nodeValue}else for(;node=elem[i++];)ret+=getText(node);return ret},(Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(match){return match[1]=match[1].replace(runescape,funescape),match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape),"~="===match[2]&&(match[3]=" "+match[3]+" "),match.slice(0,4)},CHILD:function(match){return match[1]=match[1].toLowerCase(),"nth"===match[1].slice(0,3)?(match[3]||Sizzle.error(match[0]),match[4]=+(match[4]?match[5]+(match[6]||1):2*("even"===match[3]||"odd"===match[3])),match[5]=+(match[7]+match[8]||"odd"===match[3])):match[3]&&Sizzle.error(match[0]),match},PSEUDO:function(match){var excess,unquoted=!match[6]&&match[2];return matchExpr.CHILD.test(match[0])?null:(match[3]?match[2]=match[4]||match[5]||"":unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,!0))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)&&(match[0]=match[0].slice(0,excess),match[2]=unquoted.slice(0,excess)),match.slice(0,3))}},filter:{TAG:function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return"*"===nodeNameSelector?function(){return!0}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName}},CLASS:function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test("string"==typeof elem.className&&elem.className||void 0!==elem.getAttribute&&elem.getAttribute("class")||"")})},ATTR:function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);return null==result?"!="===operator:!operator||(result+="","="===operator?result===check:"!="===operator?result!==check:"^="===operator?check&&0===result.indexOf(check):"*="===operator?check&&result.indexOf(check)>-1:"$="===operator?check&&result.slice(-check.length)===check:"~="===operator?(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1:"|="===operator&&(result===check||result.slice(0,check.length+1)===check+"-"))}},CHILD:function(type,what,argument,first,last){var simple="nth"!==type.slice(0,3),forward="last"!==type.slice(-4),ofType="of-type"===what;return 1===first&&0===last?function(elem){return!!elem.parentNode}:function(elem,context,xml){var cache,uniqueCache,outerCache,node,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType,diff=!1;if(parent){if(simple){for(;dir;){for(node=elem;node=node[dir];)if(ofType?node.nodeName.toLowerCase()===name:1===node.nodeType)return!1;start=dir="only"===type&&!start&&"nextSibling"}return!0}if(start=[forward?parent.firstChild:parent.lastChild],forward&&useCache){for(diff=(nodeIndex=(cache=(uniqueCache=(outerCache=(node=parent)[expando]||(node[expando]={}))[node.uniqueID]||(outerCache[node.uniqueID]={}))[type]||[])[0]===dirruns&&cache[1])&&cache[2],node=nodeIndex&&parent.childNodes[nodeIndex];node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop();)if(1===node.nodeType&&++diff&&node===elem){uniqueCache[type]=[dirruns,nodeIndex,diff];break}}else if(useCache&&(diff=nodeIndex=(cache=(uniqueCache=(outerCache=(node=elem)[expando]||(node[expando]={}))[node.uniqueID]||(outerCache[node.uniqueID]={}))[type]||[])[0]===dirruns&&cache[1]),!1===diff)for(;(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop())&&((ofType?node.nodeName.toLowerCase()!==name:1!==node.nodeType)||!++diff||(useCache&&((uniqueCache=(outerCache=node[expando]||(node[expando]={}))[node.uniqueID]||(outerCache[node.uniqueID]={}))[type]=[dirruns,diff]),node!==elem)););return(diff-=last)===first||diff%first==0&&diff/first>=0}}},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);return fn[expando]?fn(argument):fn.length>1?(args=[pseudo,pseudo,"",argument],Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){for(var idx,matched=fn(seed,argument),i=matched.length;i--;)seed[idx=indexOf(seed,matched[i])]=!(matches[idx]=matched[i])}):function(elem){return fn(elem,0,args)}):fn}},pseudos:{not:markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,context,xml){for(var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;i--;)(elem=unmatched[i])&&(seed[i]=!(matches[i]=elem))}):function(elem,context,xml){return input[0]=elem,matcher(input,null,xml,results),input[0]=null,!results.pop()}}),has:markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0}}),contains:markFunction(function(text){return text=text.replace(runescape,funescape),function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1}}),lang:markFunction(function(lang){return ridentifier.test(lang||"")||Sizzle.error("unsupported lang: "+lang),lang=lang.replace(runescape,funescape).toLowerCase(),function(elem){var elemLang;do{if(elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang"))return(elemLang=elemLang.toLowerCase())===lang||0===elemLang.indexOf(lang+"-")}while((elem=elem.parentNode)&&1===elem.nodeType);return!1}}),target:function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id},root:function(elem){return elem===docElem},focus:function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex)},enabled:createDisabledPseudo(!1),disabled:createDisabledPseudo(!0),checked:function(elem){var nodeName=elem.nodeName.toLowerCase();return"input"===nodeName&&!!elem.checked||"option"===nodeName&&!!elem.selected},selected:function(elem){return elem.parentNode&&elem.parentNode.selectedIndex,!0===elem.selected},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling)if(elem.nodeType<6)return!1;return!0},parent:function(elem){return!Expr.pseudos.empty(elem)},header:function(elem){return rheader.test(elem.nodeName)},input:function(elem){return rinputs.test(elem.nodeName)},button:function(elem){var name=elem.nodeName.toLowerCase();return"input"===name&&"button"===elem.type||"button"===name},text:function(elem){var attr;return"input"===elem.nodeName.toLowerCase()&&"text"===elem.type&&(null==(attr=elem.getAttribute("type"))||"text"===attr.toLowerCase())},first:createPositionalPseudo(function(){return[0]}),last:createPositionalPseudo(function(matchIndexes,length){return[length-1]}),eq:createPositionalPseudo(function(matchIndexes,length,argument){return[argument<0?argument+length:argument]}),even:createPositionalPseudo(function(matchIndexes,length){for(var i=0;i<length;i+=2)matchIndexes.push(i);return matchIndexes}),odd:createPositionalPseudo(function(matchIndexes,length){for(var i=1;i<length;i+=2)matchIndexes.push(i);return matchIndexes}),lt:createPositionalPseudo(function(matchIndexes,length,argument){for(var i=argument<0?argument+length:argument;--i>=0;)matchIndexes.push(i);return matchIndexes}),gt:createPositionalPseudo(function(matchIndexes,length,argument){for(var i=argument<0?argument+length:argument;++i<length;)matchIndexes.push(i);return matchIndexes})}}).pseudos.nth=Expr.pseudos.eq,{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})Expr.pseudos[i]=createInputPseudo(i);for(i in{submit:!0,reset:!0})Expr.pseudos[i]=createButtonPseudo(i);function setFilters(){}function toSelector(tokens){for(var i=0,len=tokens.length,selector="";i<len;i++)selector+=tokens[i].value;return selector}function addCombinator(matcher,combinator,base){var dir=combinator.dir,skip=combinator.next,key=skip||dir,checkNonElements=base&&"parentNode"===key,doneName=done++;return combinator.first?function(elem,context,xml){for(;elem=elem[dir];)if(1===elem.nodeType||checkNonElements)return matcher(elem,context,xml);return!1}:function(elem,context,xml){var oldCache,uniqueCache,outerCache,newCache=[dirruns,doneName];if(xml){for(;elem=elem[dir];)if((1===elem.nodeType||checkNonElements)&&matcher(elem,context,xml))return!0}else for(;elem=elem[dir];)if(1===elem.nodeType||checkNonElements)if(uniqueCache=(outerCache=elem[expando]||(elem[expando]={}))[elem.uniqueID]||(outerCache[elem.uniqueID]={}),skip&&skip===elem.nodeName.toLowerCase())elem=elem[dir]||elem;else{if((oldCache=uniqueCache[key])&&oldCache[0]===dirruns&&oldCache[1]===doneName)return newCache[2]=oldCache[2];if(uniqueCache[key]=newCache,newCache[2]=matcher(elem,context,xml))return!0}return!1}}function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){for(var i=matchers.length;i--;)if(!matchers[i](elem,context,xml))return!1;return!0}:matchers[0]}function condense(unmatched,map,filter,context,xml){for(var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=null!=map;i<len;i++)(elem=unmatched[i])&&(filter&&!filter(elem,context,xml)||(newUnmatched.push(elem),mapped&&map.push(i)));return newUnmatched}function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){return postFilter&&!postFilter[expando]&&(postFilter=setMatcher(postFilter)),postFinder&&!postFinder[expando]&&(postFinder=setMatcher(postFinder,postSelector)),markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||function(selector,contexts,results){for(var i=0,len=contexts.length;i<len;i++)Sizzle(selector,contexts[i],results);return results}(selector||"*",context.nodeType?[context]:context,[]),matcherIn=!preFilter||!seed&&selector?elems:condense(elems,preMap,preFilter,context,xml),matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher&&matcher(matcherIn,matcherOut,context,xml),postFilter)for(temp=condense(matcherOut,postMap),postFilter(temp,[],context,xml),i=temp.length;i--;)(elem=temp[i])&&(matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem));if(seed){if(postFinder||preFilter){if(postFinder){for(temp=[],i=matcherOut.length;i--;)(elem=matcherOut[i])&&temp.push(matcherIn[i]=elem);postFinder(null,matcherOut=[],temp,xml)}for(i=matcherOut.length;i--;)(elem=matcherOut[i])&&(temp=postFinder?indexOf(seed,elem):preMap[i])>-1&&(seed[temp]=!(results[temp]=elem))}}else matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut),postFinder?postFinder(null,results,matcherOut,xml):push.apply(results,matcherOut)})}function matcherFromTokens(tokens){for(var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext},implicitRelative,!0),matchAnyContext=addCombinator(function(elem){return indexOf(checkContext,elem)>-1},implicitRelative,!0),matchers=[function(elem,context,xml){var ret=!leadingRelative&&(xml||context!==outermostContext)||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));return checkContext=null,ret}];i<len;i++)if(matcher=Expr.relative[tokens[i].type])matchers=[addCombinator(elementMatcher(matchers),matcher)];else{if((matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches))[expando]){for(j=++i;j<len&&!Expr.relative[tokens[j].type];j++);return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:" "===tokens[i-2].type?"*":""})).replace(rtrim,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens(tokens=tokens.slice(j)),j<len&&toSelector(tokens))}matchers.push(matcher)}return elementMatcher(matchers)}return setFilters.prototype=Expr.filters=Expr.pseudos,Expr.setFilters=new setFilters,tokenize=Sizzle.tokenize=function(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached)return parseOnly?0:cached.slice(0);for(soFar=selector,groups=[],preFilters=Expr.preFilter;soFar;){for(type in matched&&!(match=rcomma.exec(soFar))||(match&&(soFar=soFar.slice(match[0].length)||soFar),groups.push(tokens=[])),matched=!1,(match=rcombinators.exec(soFar))&&(matched=match.shift(),tokens.push({value:matched,type:match[0].replace(rtrim," ")}),soFar=soFar.slice(matched.length)),Expr.filter)!(match=matchExpr[type].exec(soFar))||preFilters[type]&&!(match=preFilters[type](match))||(matched=match.shift(),tokens.push({value:matched,type:type,matches:match}),soFar=soFar.slice(matched.length));if(!matched)break}return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0)},compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){for(match||(match=tokenize(selector)),i=match.length;i--;)(cached=matcherFromTokens(match[i]))[expando]?setMatchers.push(cached):elementMatchers.push(cached);(cached=compilerCache(selector,function(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find.TAG("*",outermost),dirrunsUnique=dirruns+=null==contextBackup?1:Math.random()||.1,len=elems.length;for(outermost&&(outermostContext=context===document||context||outermost);i!==len&&null!=(elem=elems[i]);i++){if(byElement&&elem){for(j=0,context||elem.ownerDocument===document||(setDocument(elem),xml=!documentIsHTML);matcher=elementMatchers[j++];)if(matcher(elem,context||document,xml)){results.push(elem);break}outermost&&(dirruns=dirrunsUnique)}bySet&&((elem=!matcher&&elem)&&matchedCount--,seed&&unmatched.push(elem))}if(matchedCount+=i,bySet&&i!==matchedCount){for(j=0;matcher=setMatchers[j++];)matcher(unmatched,setMatched,context,xml);if(seed){if(matchedCount>0)for(;i--;)unmatched[i]||setMatched[i]||(setMatched[i]=pop.call(results));setMatched=condense(setMatched)}push.apply(results,setMatched),outermost&&!seed&&setMatched.length>0&&matchedCount+setMatchers.length>1&&Sizzle.uniqueSort(results)}return outermost&&(dirruns=dirrunsUnique,outermostContext=contextBackup),unmatched};return bySet?markFunction(superMatcher):superMatcher}(elementMatchers,setMatchers))).selector=selector}return cached},select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled="function"==typeof selector&&selector,match=!seed&&tokenize(selector=compiled.selector||selector);if(results=results||[],1===match.length){if((tokens=match[0]=match[0].slice(0)).length>2&&"ID"===(token=tokens[0]).type&&9===context.nodeType&&documentIsHTML&&Expr.relative[tokens[1].type]){if(!(context=(Expr.find.ID(token.matches[0].replace(runescape,funescape),context)||[])[0]))return results;compiled&&(context=context.parentNode),selector=selector.slice(tokens.shift().value.length)}for(i=matchExpr.needsContext.test(selector)?0:tokens.length;i--&&(token=tokens[i],!Expr.relative[type=token.type]);)if((find=Expr.find[type])&&(seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context))){if(tokens.splice(i,1),!(selector=seed.length&&toSelector(tokens)))return push.apply(results,seed),results;break}}return(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,!context||rsibling.test(selector)&&testContext(context.parentNode)||context),results},support.sortStable=expando.split("").sort(sortOrder).join("")===expando,support.detectDuplicates=!!hasDuplicate,setDocument(),support.sortDetached=assert(function(el){return 1&el.compareDocumentPosition(document.createElement("fieldset"))}),assert(function(el){return el.innerHTML="<a href='#'></a>","#"===el.firstChild.getAttribute("href")})||addHandle("type|href|height|width",function(elem,name,isXML){if(!isXML)return elem.getAttribute(name,"type"===name.toLowerCase()?1:2)}),support.attributes&&assert(function(el){return el.innerHTML="<input/>",el.firstChild.setAttribute("value",""),""===el.firstChild.getAttribute("value")})||addHandle("value",function(elem,name,isXML){if(!isXML&&"input"===elem.nodeName.toLowerCase())return elem.defaultValue}),assert(function(el){return null==el.getAttribute("disabled")})||addHandle(booleans,function(elem,name,isXML){var val;if(!isXML)return!0===elem[name]?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null}),Sizzle}(window);jQuery.find=Sizzle,jQuery.expr=Sizzle.selectors,jQuery.expr[":"]=jQuery.expr.pseudos,jQuery.uniqueSort=jQuery.unique=Sizzle.uniqueSort,jQuery.text=Sizzle.getText,jQuery.isXMLDoc=Sizzle.isXML,jQuery.contains=Sizzle.contains,jQuery.escapeSelector=Sizzle.escape;var dir=function(elem,dir,until){for(var matched=[],truncate=void 0!==until;(elem=elem[dir])&&9!==elem.nodeType;)if(1===elem.nodeType){if(truncate&&jQuery(elem).is(until))break;matched.push(elem)}return matched},siblings=function(n,elem){for(var matched=[];n;n=n.nextSibling)1===n.nodeType&&n!==elem&&matched.push(n);return matched},rneedsContext=jQuery.expr.match.needsContext;function nodeName(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase()}var rsingleTag=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function winnow(elements,qualifier,not){return isFunction(qualifier)?jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not}):qualifier.nodeType?jQuery.grep(elements,function(elem){return elem===qualifier!==not}):"string"!=typeof qualifier?jQuery.grep(elements,function(elem){return indexOf.call(qualifier,elem)>-1!==not}):jQuery.filter(qualifier,elements,not)}jQuery.filter=function(expr,elems,not){var elem=elems[0];return not&&(expr=":not("+expr+")"),1===elems.length&&1===elem.nodeType?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return 1===elem.nodeType}))},jQuery.fn.extend({find:function(selector){var i,ret,len=this.length,self=this;if("string"!=typeof selector)return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++)if(jQuery.contains(self[i],this))return!0}));for(ret=this.pushStack([]),i=0;i<len;i++)jQuery.find(selector,self[i],ret);return len>1?jQuery.uniqueSort(ret):ret},filter:function(selector){return this.pushStack(winnow(this,selector||[],!1))},not:function(selector){return this.pushStack(winnow(this,selector||[],!0))},is:function(selector){return!!winnow(this,"string"==typeof selector&&rneedsContext.test(selector)?jQuery(selector):selector||[],!1).length}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(jQuery.fn.init=function(selector,context,root){var match,elem;if(!selector)return this;if(root=root||rootjQuery,"string"==typeof selector){if(!(match="<"===selector[0]&&">"===selector[selector.length-1]&&selector.length>=3?[null,selector,null]:rquickExpr.exec(selector))||!match[1]&&context)return!context||context.jquery?(context||root).find(selector):this.constructor(context).find(selector);if(match[1]){if(context=context instanceof jQuery?context[0]:context,jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,!0)),rsingleTag.test(match[1])&&jQuery.isPlainObject(context))for(match in context)isFunction(this[match])?this[match](context[match]):this.attr(match,context[match]);return this}return(elem=document.getElementById(match[2]))&&(this[0]=elem,this.length=1),this}return selector.nodeType?(this[0]=selector,this.length=1,this):isFunction(selector)?void 0!==root.ready?root.ready(selector):selector(jQuery):jQuery.makeArray(selector,this)}).prototype=jQuery.fn,rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:!0,contents:!0,next:!0,prev:!0};function sibling(cur,dir){for(;(cur=cur[dir])&&1!==cur.nodeType;);return cur}jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter(function(){for(var i=0;i<l;i++)if(jQuery.contains(this,targets[i]))return!0})},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],targets="string"!=typeof selectors&&jQuery(selectors);if(!rneedsContext.test(selectors))for(;i<l;i++)for(cur=this[i];cur&&cur!==context;cur=cur.parentNode)if(cur.nodeType<11&&(targets?targets.index(cur)>-1:1===cur.nodeType&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break}return this.pushStack(matched.length>1?jQuery.uniqueSort(matched):matched)},index:function(elem){return elem?"string"==typeof elem?indexOf.call(jQuery(elem),this[0]):indexOf.call(this,elem.jquery?elem[0]:elem):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(selector,context){return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(),jQuery(selector,context))))},addBack:function(selector){return this.add(null==selector?this.prevObject:this.prevObject.filter(selector))}}),jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&11!==parent.nodeType?parent:null},parents:function(elem){return dir(elem,"parentNode")},parentsUntil:function(elem,i,until){return dir(elem,"parentNode",until)},next:function(elem){return sibling(elem,"nextSibling")},prev:function(elem){return sibling(elem,"previousSibling")},nextAll:function(elem){return dir(elem,"nextSibling")},prevAll:function(elem){return dir(elem,"previousSibling")},nextUntil:function(elem,i,until){return dir(elem,"nextSibling",until)},prevUntil:function(elem,i,until){return dir(elem,"previousSibling",until)},siblings:function(elem){return siblings((elem.parentNode||{}).firstChild,elem)},children:function(elem){return siblings(elem.firstChild)},contents:function(elem){return nodeName(elem,"iframe")?elem.contentDocument:(nodeName(elem,"template")&&(elem=elem.content||elem),jQuery.merge([],elem.childNodes))}},function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);return"Until"!==name.slice(-5)&&(selector=until),selector&&"string"==typeof selector&&(matched=jQuery.filter(selector,matched)),this.length>1&&(guaranteedUnique[name]||jQuery.uniqueSort(matched),rparentsprev.test(name)&&matched.reverse()),this.pushStack(matched)}});var rnothtmlwhite=/[^\x20\t\r\n\f]+/g;function Identity(v){return v}function Thrower(ex){throw ex}function adoptValue(value,resolve,reject,noValue){var method;try{value&&isFunction(method=value.promise)?method.call(value).done(resolve).fail(reject):value&&isFunction(method=value.then)?method.call(value,resolve,reject):resolve.apply(void 0,[value].slice(noValue))}catch(value){reject.apply(void 0,[value])}}jQuery.Callbacks=function(options){options="string"==typeof options?function(options){var object={};return jQuery.each(options.match(rnothtmlwhite)||[],function(_,flag){object[flag]=!0}),object}(options):jQuery.extend({},options);var firing,memory,fired,locked,list=[],queue=[],firingIndex=-1,fire=function(){for(locked=locked||options.once,fired=firing=!0;queue.length;firingIndex=-1)for(memory=queue.shift();++firingIndex<list.length;)!1===list[firingIndex].apply(memory[0],memory[1])&&options.stopOnFalse&&(firingIndex=list.length,memory=!1);options.memory||(memory=!1),firing=!1,locked&&(list=memory?[]:"")},self={add:function(){return list&&(memory&&!firing&&(firingIndex=list.length-1,queue.push(memory)),function add(args){jQuery.each(args,function(_,arg){isFunction(arg)?options.unique&&self.has(arg)||list.push(arg):arg&&arg.length&&"string"!==toType(arg)&&add(arg)})}(arguments),memory&&!firing&&fire()),this},remove:function(){return jQuery.each(arguments,function(_,arg){for(var index;(index=jQuery.inArray(arg,list,index))>-1;)list.splice(index,1),index<=firingIndex&&firingIndex--}),this},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:list.length>0},empty:function(){return list&&(list=[]),this},disable:function(){return locked=queue=[],list=memory="",this},disabled:function(){return!list},lock:function(){return locked=queue=[],memory||firing||(list=memory=""),this},locked:function(){return!!locked},fireWith:function(context,args){return locked||(args=[context,(args=args||[]).slice?args.slice():args],queue.push(args),firing||fire()),this},fire:function(){return self.fireWith(this,arguments),this},fired:function(){return!!fired}};return self},jQuery.extend({Deferred:function(func){var tuples=[["notify","progress",jQuery.Callbacks("memory"),jQuery.Callbacks("memory"),2],["resolve","done",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),0,"resolved"],["reject","fail",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),1,"rejected"]],state="pending",promise={state:function(){return state},always:function(){return deferred.done(arguments).fail(arguments),this},catch:function(fn){return promise.then(null,fn)},pipe:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=isFunction(fns[tuple[4]])&&fns[tuple[4]];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);returned&&isFunction(returned.promise)?returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject):newDefer[tuple[0]+"With"](this,fn?[returned]:arguments)})}),fns=null}).promise()},then:function(onFulfilled,onRejected,onProgress){var maxDepth=0;function resolve(depth,deferred,handler,special){return function(){var that=this,args=arguments,mightThrow=function(){var returned,then;if(!(depth<maxDepth)){if((returned=handler.apply(that,args))===deferred.promise())throw new TypeError("Thenable self-resolution");then=returned&&("object"==typeof returned||"function"==typeof returned)&&returned.then,isFunction(then)?special?then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special)):(maxDepth++,then.call(returned,resolve(maxDepth,deferred,Identity,special),resolve(maxDepth,deferred,Thrower,special),resolve(maxDepth,deferred,Identity,deferred.notifyWith))):(handler!==Identity&&(that=void 0,args=[returned]),(special||deferred.resolveWith)(that,args))}},process=special?mightThrow:function(){try{mightThrow()}catch(e){jQuery.Deferred.exceptionHook&&jQuery.Deferred.exceptionHook(e,process.stackTrace),depth+1>=maxDepth&&(handler!==Thrower&&(that=void 0,args=[e]),deferred.rejectWith(that,args))}};depth?process():(jQuery.Deferred.getStackHook&&(process.stackTrace=jQuery.Deferred.getStackHook()),window.setTimeout(process))}}return jQuery.Deferred(function(newDefer){tuples[0][3].add(resolve(0,newDefer,isFunction(onProgress)?onProgress:Identity,newDefer.notifyWith)),tuples[1][3].add(resolve(0,newDefer,isFunction(onFulfilled)?onFulfilled:Identity)),tuples[2][3].add(resolve(0,newDefer,isFunction(onRejected)?onRejected:Thrower))}).promise()},promise:function(obj){return null!=obj?jQuery.extend(obj,promise):promise}},deferred={};return jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[5];promise[tuple[1]]=list.add,stateString&&list.add(function(){state=stateString},tuples[3-i][2].disable,tuples[3-i][3].disable,tuples[0][2].lock,tuples[0][3].lock),list.add(tuple[3].fire),deferred[tuple[0]]=function(){return deferred[tuple[0]+"With"](this===deferred?void 0:this,arguments),this},deferred[tuple[0]+"With"]=list.fireWith}),promise.promise(deferred),func&&func.call(deferred,deferred),deferred},when:function(singleValue){var remaining=arguments.length,i=remaining,resolveContexts=Array(i),resolveValues=slice.call(arguments),master=jQuery.Deferred(),updateFunc=function(i){return function(value){resolveContexts[i]=this,resolveValues[i]=arguments.length>1?slice.call(arguments):value,--remaining||master.resolveWith(resolveContexts,resolveValues)}};if(remaining<=1&&(adoptValue(singleValue,master.done(updateFunc(i)).resolve,master.reject,!remaining),"pending"===master.state()||isFunction(resolveValues[i]&&resolveValues[i].then)))return master.then();for(;i--;)adoptValue(resolveValues[i],updateFunc(i),master.reject);return master.promise()}});var rerrorNames=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;jQuery.Deferred.exceptionHook=function(error,stack){window.console&&window.console.warn&&error&&rerrorNames.test(error.name)&&window.console.warn("jQuery.Deferred exception: "+error.message,error.stack,stack)},jQuery.readyException=function(error){window.setTimeout(function(){throw error})};var readyList=jQuery.Deferred();function completed(){document.removeEventListener("DOMContentLoaded",completed),window.removeEventListener("load",completed),jQuery.ready()}jQuery.fn.ready=function(fn){return readyList.then(fn).catch(function(error){jQuery.readyException(error)}),this},jQuery.extend({isReady:!1,readyWait:1,ready:function(wait){(!0===wait?--jQuery.readyWait:jQuery.isReady)||(jQuery.isReady=!0,!0!==wait&&--jQuery.readyWait>0||readyList.resolveWith(document,[jQuery]))}}),jQuery.ready.then=readyList.then,"complete"===document.readyState||"loading"!==document.readyState&&!document.documentElement.doScroll?window.setTimeout(jQuery.ready):(document.addEventListener("DOMContentLoaded",completed),window.addEventListener("load",completed));var access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=null==key;if("object"===toType(key))for(i in chainable=!0,key)access(elems,fn,i,key[i],!0,emptyGet,raw);else if(void 0!==value&&(chainable=!0,isFunction(value)||(raw=!0),bulk&&(raw?(fn.call(elems,value),fn=null):(bulk=fn,fn=function(elem,key,value){return bulk.call(jQuery(elem),value)})),fn))for(;i<len;i++)fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)));return chainable?elems:bulk?fn.call(elems):len?fn(elems[0],key):emptyGet},rmsPrefix=/^-ms-/,rdashAlpha=/-([a-z])/g;function fcamelCase(all,letter){return letter.toUpperCase()}function camelCase(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase)}var acceptData=function(owner){return 1===owner.nodeType||9===owner.nodeType||!+owner.nodeType};function Data(){this.expando=jQuery.expando+Data.uid++}Data.uid=1,Data.prototype={cache:function(owner){var value=owner[this.expando];return value||(value={},acceptData(owner)&&(owner.nodeType?owner[this.expando]=value:Object.defineProperty(owner,this.expando,{value:value,configurable:!0}))),value},set:function(owner,data,value){var prop,cache=this.cache(owner);if("string"==typeof data)cache[camelCase(data)]=value;else for(prop in data)cache[camelCase(prop)]=data[prop];return cache},get:function(owner,key){return void 0===key?this.cache(owner):owner[this.expando]&&owner[this.expando][camelCase(key)]},access:function(owner,key,value){return void 0===key||key&&"string"==typeof key&&void 0===value?this.get(owner,key):(this.set(owner,key,value),void 0!==value?value:key)},remove:function(owner,key){var i,cache=owner[this.expando];if(void 0!==cache){if(void 0!==key){i=(key=Array.isArray(key)?key.map(camelCase):(key=camelCase(key))in cache?[key]:key.match(rnothtmlwhite)||[]).length;for(;i--;)delete cache[key[i]]}(void 0===key||jQuery.isEmptyObject(cache))&&(owner.nodeType?owner[this.expando]=void 0:delete owner[this.expando])}},hasData:function(owner){var cache=owner[this.expando];return void 0!==cache&&!jQuery.isEmptyObject(cache)}};var dataPriv=new Data,dataUser=new Data,rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/[A-Z]/g;function dataAttr(elem,key,data){var name;if(void 0===data&&1===elem.nodeType)if(name="data-"+key.replace(rmultiDash,"-$&").toLowerCase(),"string"==typeof(data=elem.getAttribute(name))){try{data=function(data){return"true"===data||"false"!==data&&("null"===data?null:data===+data+""?+data:rbrace.test(data)?JSON.parse(data):data)}(data)}catch(e){}dataUser.set(elem,key,data)}else data=void 0;return data}jQuery.extend({hasData:function(elem){return dataUser.hasData(elem)||dataPriv.hasData(elem)},data:function(elem,name,data){return dataUser.access(elem,name,data)},removeData:function(elem,name){dataUser.remove(elem,name)},_data:function(elem,name,data){return dataPriv.access(elem,name,data)},_removeData:function(elem,name){dataPriv.remove(elem,name)}}),jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(void 0===key){if(this.length&&(data=dataUser.get(elem),1===elem.nodeType&&!dataPriv.get(elem,"hasDataAttrs"))){for(i=attrs.length;i--;)attrs[i]&&0===(name=attrs[i].name).indexOf("data-")&&(name=camelCase(name.slice(5)),dataAttr(elem,name,data[name]));dataPriv.set(elem,"hasDataAttrs",!0)}return data}return"object"==typeof key?this.each(function(){dataUser.set(this,key)}):access(this,function(value){var data;if(elem&&void 0===value)return void 0!==(data=dataUser.get(elem,key))?data:void 0!==(data=dataAttr(elem,key))?data:void 0;this.each(function(){dataUser.set(this,key,value)})},null,value,arguments.length>1,null,!0)},removeData:function(key){return this.each(function(){dataUser.remove(this,key)})}}),jQuery.extend({queue:function(elem,type,data){var queue;if(elem)return type=(type||"fx")+"queue",queue=dataPriv.get(elem,type),data&&(!queue||Array.isArray(data)?queue=dataPriv.access(elem,type,jQuery.makeArray(data)):queue.push(data)),queue||[]},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type);"inprogress"===fn&&(fn=queue.shift(),startLength--),fn&&("fx"===type&&queue.unshift("inprogress"),delete hooks.stop,fn.call(elem,function(){jQuery.dequeue(elem,type)},hooks)),!startLength&&hooks&&hooks.empty.fire()},_queueHooks:function(elem,type){var key=type+"queueHooks";return dataPriv.get(elem,key)||dataPriv.access(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){dataPriv.remove(elem,[type+"queue",key])})})}}),jQuery.fn.extend({queue:function(type,data){var setter=2;return"string"!=typeof type&&(data=type,type="fx",setter--),arguments.length<setter?jQuery.queue(this[0],type):void 0===data?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type),"fx"===type&&"inprogress"!==queue[0]&&jQuery.dequeue(this,type)})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})},clearQueue:function(type){return this.queue(type||"fx",[])},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){--count||defer.resolveWith(elements,[elements])};for("string"!=typeof type&&(obj=type,type=void 0),type=type||"fx";i--;)(tmp=dataPriv.get(elements[i],type+"queueHooks"))&&tmp.empty&&(count++,tmp.empty.add(resolve));return resolve(),defer.promise(obj)}});var pnum=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,rcssNum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i"),cssExpand=["Top","Right","Bottom","Left"],isHiddenWithinTree=function(elem,el){return"none"===(elem=el||elem).style.display||""===elem.style.display&&jQuery.contains(elem.ownerDocument,elem)&&"none"===jQuery.css(elem,"display")},swap=function(elem,options,callback,args){var ret,name,old={};for(name in options)old[name]=elem.style[name],elem.style[name]=options[name];for(name in ret=callback.apply(elem,args||[]),options)elem.style[name]=old[name];return ret};function adjustCSS(elem,prop,valueParts,tween){var adjusted,scale,maxIterations=20,currentValue=tween?function(){return tween.cur()}:function(){return jQuery.css(elem,prop,"")},initial=currentValue(),unit=valueParts&&valueParts[3]||(jQuery.cssNumber[prop]?"":"px"),initialInUnit=(jQuery.cssNumber[prop]||"px"!==unit&&+initial)&&rcssNum.exec(jQuery.css(elem,prop));if(initialInUnit&&initialInUnit[3]!==unit){for(initial/=2,unit=unit||initialInUnit[3],initialInUnit=+initial||1;maxIterations--;)jQuery.style(elem,prop,initialInUnit+unit),(1-scale)*(1-(scale=currentValue()/initial||.5))<=0&&(maxIterations=0),initialInUnit/=scale;initialInUnit*=2,jQuery.style(elem,prop,initialInUnit+unit),valueParts=valueParts||[]}return valueParts&&(initialInUnit=+initialInUnit||+initial||0,adjusted=valueParts[1]?initialInUnit+(valueParts[1]+1)*valueParts[2]:+valueParts[2],tween&&(tween.unit=unit,tween.start=initialInUnit,tween.end=adjusted)),adjusted}var defaultDisplayMap={};function getDefaultDisplay(elem){var temp,doc=elem.ownerDocument,nodeName=elem.nodeName,display=defaultDisplayMap[nodeName];return display||(temp=doc.body.appendChild(doc.createElement(nodeName)),display=jQuery.css(temp,"display"),temp.parentNode.removeChild(temp),"none"===display&&(display="block"),defaultDisplayMap[nodeName]=display,display)}function showHide(elements,show){for(var display,elem,values=[],index=0,length=elements.length;index<length;index++)(elem=elements[index]).style&&(display=elem.style.display,show?("none"===display&&(values[index]=dataPriv.get(elem,"display")||null,values[index]||(elem.style.display="")),""===elem.style.display&&isHiddenWithinTree(elem)&&(values[index]=getDefaultDisplay(elem))):"none"!==display&&(values[index]="none",dataPriv.set(elem,"display",display)));for(index=0;index<length;index++)null!=values[index]&&(elements[index].style.display=values[index]);return elements}jQuery.fn.extend({show:function(){return showHide(this,!0)},hide:function(){return showHide(this)},toggle:function(state){return"boolean"==typeof state?state?this.show():this.hide():this.each(function(){isHiddenWithinTree(this)?jQuery(this).show():jQuery(this).hide()})}});var rcheckableType=/^(?:checkbox|radio)$/i,rtagName=/<([a-z][^\/\0>\x20\t\r\n\f]+)/i,rscriptType=/^$|^module$|\/(?:java|ecma)script/i,wrapMap={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};function getAll(context,tag){var ret;return ret=void 0!==context.getElementsByTagName?context.getElementsByTagName(tag||"*"):void 0!==context.querySelectorAll?context.querySelectorAll(tag||"*"):[],void 0===tag||tag&&nodeName(context,tag)?jQuery.merge([context],ret):ret}function setGlobalEval(elems,refElements){for(var i=0,l=elems.length;i<l;i++)dataPriv.set(elems[i],"globalEval",!refElements||dataPriv.get(refElements[i],"globalEval"))}wrapMap.optgroup=wrapMap.option,wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead,wrapMap.th=wrapMap.td;var div,input,rhtml=/<|&#?\w+;/;function buildFragment(elems,context,scripts,selection,ignored){for(var elem,tmp,tag,wrap,contains,j,fragment=context.createDocumentFragment(),nodes=[],i=0,l=elems.length;i<l;i++)if((elem=elems[i])||0===elem)if("object"===toType(elem))jQuery.merge(nodes,elem.nodeType?[elem]:elem);else if(rhtml.test(elem)){for(tmp=tmp||fragment.appendChild(context.createElement("div")),tag=(rtagName.exec(elem)||["",""])[1].toLowerCase(),wrap=wrapMap[tag]||wrapMap._default,tmp.innerHTML=wrap[1]+jQuery.htmlPrefilter(elem)+wrap[2],j=wrap[0];j--;)tmp=tmp.lastChild;jQuery.merge(nodes,tmp.childNodes),(tmp=fragment.firstChild).textContent=""}else nodes.push(context.createTextNode(elem));for(fragment.textContent="",i=0;elem=nodes[i++];)if(selection&&jQuery.inArray(elem,selection)>-1)ignored&&ignored.push(elem);else if(contains=jQuery.contains(elem.ownerDocument,elem),tmp=getAll(fragment.appendChild(elem),"script"),contains&&setGlobalEval(tmp),scripts)for(j=0;elem=tmp[j++];)rscriptType.test(elem.type||"")&&scripts.push(elem);return fragment}div=document.createDocumentFragment().appendChild(document.createElement("div")),(input=document.createElement("input")).setAttribute("type","radio"),input.setAttribute("checked","checked"),input.setAttribute("name","t"),div.appendChild(input),support.checkClone=div.cloneNode(!0).cloneNode(!0).lastChild.checked,div.innerHTML="<textarea>x</textarea>",support.noCloneChecked=!!div.cloneNode(!0).lastChild.defaultValue;var documentElement=document.documentElement,rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,rtypenamespace=/^([^.]*)(?:\.(.+)|)/;function returnTrue(){return!0}function returnFalse(){return!1}function safeActiveElement(){try{return document.activeElement}catch(err){}}function on(elem,types,selector,data,fn,one){var origFn,type;if("object"==typeof types){for(type in"string"!=typeof selector&&(data=data||selector,selector=void 0),types)on(elem,type,selector,data,types[type],one);return elem}if(null==data&&null==fn?(fn=selector,data=selector=void 0):null==fn&&("string"==typeof selector?(fn=data,data=void 0):(fn=data,data=selector,selector=void 0)),!1===fn)fn=returnFalse;else if(!fn)return elem;return 1===one&&(origFn=fn,(fn=function(event){return jQuery().off(event),origFn.apply(this,arguments)}).guid=origFn.guid||(origFn.guid=jQuery.guid++)),elem.each(function(){jQuery.event.add(this,types,fn,data,selector)})}jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.get(elem);if(elemData)for(handler.handler&&(handler=(handleObjIn=handler).handler,selector=handleObjIn.selector),selector&&jQuery.find.matchesSelector(documentElement,selector),handler.guid||(handler.guid=jQuery.guid++),(events=elemData.events)||(events=elemData.events={}),(eventHandle=elemData.handle)||(eventHandle=elemData.handle=function(e){return void 0!==jQuery&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):void 0}),t=(types=(types||"").match(rnothtmlwhite)||[""]).length;t--;)type=origType=(tmp=rtypenamespace.exec(types[t])||[])[1],namespaces=(tmp[2]||"").split(".").sort(),type&&(special=jQuery.event.special[type]||{},type=(selector?special.delegateType:special.bindType)||type,special=jQuery.event.special[type]||{},handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn),(handlers=events[type])||((handlers=events[type]=[]).delegateCount=0,special.setup&&!1!==special.setup.call(elem,data,namespaces,eventHandle)||elem.addEventListener&&elem.addEventListener(type,eventHandle)),special.add&&(special.add.call(elem,handleObj),handleObj.handler.guid||(handleObj.handler.guid=handler.guid)),selector?handlers.splice(handlers.delegateCount++,0,handleObj):handlers.push(handleObj),jQuery.event.global[type]=!0)},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.hasData(elem)&&dataPriv.get(elem);if(elemData&&(events=elemData.events)){for(t=(types=(types||"").match(rnothtmlwhite)||[""]).length;t--;)if(type=origType=(tmp=rtypenamespace.exec(types[t])||[])[1],namespaces=(tmp[2]||"").split(".").sort(),type){for(special=jQuery.event.special[type]||{},handlers=events[type=(selector?special.delegateType:special.bindType)||type]||[],tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"),origCount=j=handlers.length;j--;)handleObj=handlers[j],!mappedTypes&&origType!==handleObj.origType||handler&&handler.guid!==handleObj.guid||tmp&&!tmp.test(handleObj.namespace)||selector&&selector!==handleObj.selector&&("**"!==selector||!handleObj.selector)||(handlers.splice(j,1),handleObj.selector&&handlers.delegateCount--,special.remove&&special.remove.call(elem,handleObj));origCount&&!handlers.length&&(special.teardown&&!1!==special.teardown.call(elem,namespaces,elemData.handle)||jQuery.removeEvent(elem,type,elemData.handle),delete events[type])}else for(type in events)jQuery.event.remove(elem,type+types[t],handler,selector,!0);jQuery.isEmptyObject(events)&&dataPriv.remove(elem,"handle events")}},dispatch:function(nativeEvent){var i,j,ret,matched,handleObj,handlerQueue,event=jQuery.event.fix(nativeEvent),args=new Array(arguments.length),handlers=(dataPriv.get(this,"events")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};for(args[0]=event,i=1;i<arguments.length;i++)args[i]=arguments[i];if(event.delegateTarget=this,!special.preDispatch||!1!==special.preDispatch.call(this,event)){for(handlerQueue=jQuery.event.handlers.call(this,event,handlers),i=0;(matched=handlerQueue[i++])&&!event.isPropagationStopped();)for(event.currentTarget=matched.elem,j=0;(handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped();)event.rnamespace&&!event.rnamespace.test(handleObj.namespace)||(event.handleObj=handleObj,event.data=handleObj.data,void 0!==(ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args))&&!1===(event.result=ret)&&(event.preventDefault(),event.stopPropagation()));return special.postDispatch&&special.postDispatch.call(this,event),event.result}},handlers:function(event,handlers){var i,handleObj,sel,matchedHandlers,matchedSelectors,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&!("click"===event.type&&event.button>=1))for(;cur!==this;cur=cur.parentNode||this)if(1===cur.nodeType&&("click"!==event.type||!0!==cur.disabled)){for(matchedHandlers=[],matchedSelectors={},i=0;i<delegateCount;i++)void 0===matchedSelectors[sel=(handleObj=handlers[i]).selector+" "]&&(matchedSelectors[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>-1:jQuery.find(sel,this,null,[cur]).length),matchedSelectors[sel]&&matchedHandlers.push(handleObj);matchedHandlers.length&&handlerQueue.push({elem:cur,handlers:matchedHandlers})}return cur=this,delegateCount<handlers.length&&handlerQueue.push({elem:cur,handlers:handlers.slice(delegateCount)}),handlerQueue},addProp:function(name,hook){Object.defineProperty(jQuery.Event.prototype,name,{enumerable:!0,configurable:!0,get:isFunction(hook)?function(){if(this.originalEvent)return hook(this.originalEvent)}:function(){if(this.originalEvent)return this.originalEvent[name]},set:function(value){Object.defineProperty(this,name,{enumerable:!0,configurable:!0,writable:!0,value:value})}})},fix:function(originalEvent){return originalEvent[jQuery.expando]?originalEvent:new jQuery.Event(originalEvent)},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==safeActiveElement()&&this.focus)return this.focus(),!1},delegateType:"focusin"},blur:{trigger:function(){if(this===safeActiveElement()&&this.blur)return this.blur(),!1},delegateType:"focusout"},click:{trigger:function(){if("checkbox"===this.type&&this.click&&nodeName(this,"input"))return this.click(),!1},_default:function(event){return nodeName(event.target,"a")}},beforeunload:{postDispatch:function(event){void 0!==event.result&&event.originalEvent&&(event.originalEvent.returnValue=event.result)}}}},jQuery.removeEvent=function(elem,type,handle){elem.removeEventListener&&elem.removeEventListener(type,handle)},jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event))return new jQuery.Event(src,props);src&&src.type?(this.originalEvent=src,this.type=src.type,this.isDefaultPrevented=src.defaultPrevented||void 0===src.defaultPrevented&&!1===src.returnValue?returnTrue:returnFalse,this.target=src.target&&3===src.target.nodeType?src.target.parentNode:src.target,this.currentTarget=src.currentTarget,this.relatedTarget=src.relatedTarget):this.type=src,props&&jQuery.extend(this,props),this.timeStamp=src&&src.timeStamp||Date.now(),this[jQuery.expando]=!0},jQuery.Event.prototype={constructor:jQuery.Event,isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,isSimulated:!1,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue,e&&!this.isSimulated&&e.preventDefault()},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue,e&&!this.isSimulated&&e.stopPropagation()},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue,e&&!this.isSimulated&&e.stopImmediatePropagation(),this.stopPropagation()}},jQuery.each({altKey:!0,bubbles:!0,cancelable:!0,changedTouches:!0,ctrlKey:!0,detail:!0,eventPhase:!0,metaKey:!0,pageX:!0,pageY:!0,shiftKey:!0,view:!0,char:!0,charCode:!0,key:!0,keyCode:!0,button:!0,buttons:!0,clientX:!0,clientY:!0,offsetX:!0,offsetY:!0,pointerId:!0,pointerType:!0,screenX:!0,screenY:!0,targetTouches:!0,toElement:!0,touches:!0,which:function(event){var button=event.button;return null==event.which&&rkeyEvent.test(event.type)?null!=event.charCode?event.charCode:event.keyCode:!event.which&&void 0!==button&&rmouseEvent.test(event.type)?1&button?1:2&button?3:4&button?2:0:event.which}},jQuery.event.addProp),jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,related=event.relatedTarget,handleObj=event.handleObj;return related&&(related===this||jQuery.contains(this,related))||(event.type=handleObj.origType,ret=handleObj.handler.apply(this,arguments),event.type=fix),ret}}}),jQuery.fn.extend({on:function(types,selector,data,fn){return on(this,types,selector,data,fn)},one:function(types,selector,data,fn){return on(this,types,selector,data,fn,1)},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj)return handleObj=types.handleObj,jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler),this;if("object"==typeof types){for(type in types)this.off(type,selector,types[type]);return this}return!1!==selector&&"function"!=typeof selector||(fn=selector,selector=void 0),!1===fn&&(fn=returnFalse),this.each(function(){jQuery.event.remove(this,types,fn,selector)})}});var rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi,rnoInnerhtml=/<script|<style|<link/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rcleanScript=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function manipulationTarget(elem,content){return nodeName(elem,"table")&&nodeName(11!==content.nodeType?content:content.firstChild,"tr")&&jQuery(elem).children("tbody")[0]||elem}function disableScript(elem){return elem.type=(null!==elem.getAttribute("type"))+"/"+elem.type,elem}function restoreScript(elem){return"true/"===(elem.type||"").slice(0,5)?elem.type=elem.type.slice(5):elem.removeAttribute("type"),elem}function cloneCopyEvent(src,dest){var i,l,type,pdataOld,pdataCur,udataOld,udataCur,events;if(1===dest.nodeType){if(dataPriv.hasData(src)&&(pdataOld=dataPriv.access(src),pdataCur=dataPriv.set(dest,pdataOld),events=pdataOld.events))for(type in delete pdataCur.handle,pdataCur.events={},events)for(i=0,l=events[type].length;i<l;i++)jQuery.event.add(dest,type,events[type][i]);dataUser.hasData(src)&&(udataOld=dataUser.access(src),udataCur=jQuery.extend({},udataOld),dataUser.set(dest,udataCur))}}function domManip(collection,args,callback,ignored){args=concat.apply([],args);var fragment,first,scripts,hasScripts,node,doc,i=0,l=collection.length,iNoClone=l-1,value=args[0],valueIsFunction=isFunction(value);if(valueIsFunction||l>1&&"string"==typeof value&&!support.checkClone&&rchecked.test(value))return collection.each(function(index){var self=collection.eq(index);valueIsFunction&&(args[0]=value.call(this,index,self.html())),domManip(self,args,callback,ignored)});if(l&&(first=(fragment=buildFragment(args,collection[0].ownerDocument,!1,collection,ignored)).firstChild,1===fragment.childNodes.length&&(fragment=first),first||ignored)){for(hasScripts=(scripts=jQuery.map(getAll(fragment,"script"),disableScript)).length;i<l;i++)node=fragment,i!==iNoClone&&(node=jQuery.clone(node,!0,!0),hasScripts&&jQuery.merge(scripts,getAll(node,"script"))),callback.call(collection[i],node,i);if(hasScripts)for(doc=scripts[scripts.length-1].ownerDocument,jQuery.map(scripts,restoreScript),i=0;i<hasScripts;i++)node=scripts[i],rscriptType.test(node.type||"")&&!dataPriv.access(node,"globalEval")&&jQuery.contains(doc,node)&&(node.src&&"module"!==(node.type||"").toLowerCase()?jQuery._evalUrl&&jQuery._evalUrl(node.src):DOMEval(node.textContent.replace(rcleanScript,""),doc,node))}return collection}function remove(elem,selector,keepData){for(var node,nodes=selector?jQuery.filter(selector,elem):elem,i=0;null!=(node=nodes[i]);i++)keepData||1!==node.nodeType||jQuery.cleanData(getAll(node)),node.parentNode&&(keepData&&jQuery.contains(node.ownerDocument,node)&&setGlobalEval(getAll(node,"script")),node.parentNode.removeChild(node));return elem}jQuery.extend({htmlPrefilter:function(html){return html.replace(rxhtmlTag,"<$1></$2>")},clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,src,dest,nodeName,clone=elem.cloneNode(!0),inPage=jQuery.contains(elem.ownerDocument,elem);if(!(support.noCloneChecked||1!==elem.nodeType&&11!==elem.nodeType||jQuery.isXMLDoc(elem)))for(destElements=getAll(clone),i=0,l=(srcElements=getAll(elem)).length;i<l;i++)src=srcElements[i],dest=destElements[i],void 0,"input"===(nodeName=dest.nodeName.toLowerCase())&&rcheckableType.test(src.type)?dest.checked=src.checked:"input"!==nodeName&&"textarea"!==nodeName||(dest.defaultValue=src.defaultValue);if(dataAndEvents)if(deepDataAndEvents)for(srcElements=srcElements||getAll(elem),destElements=destElements||getAll(clone),i=0,l=srcElements.length;i<l;i++)cloneCopyEvent(srcElements[i],destElements[i]);else cloneCopyEvent(elem,clone);return(destElements=getAll(clone,"script")).length>0&&setGlobalEval(destElements,!inPage&&getAll(elem,"script")),clone},cleanData:function(elems){for(var data,elem,type,special=jQuery.event.special,i=0;void 0!==(elem=elems[i]);i++)if(acceptData(elem)){if(data=elem[dataPriv.expando]){if(data.events)for(type in data.events)special[type]?jQuery.event.remove(elem,type):jQuery.removeEvent(elem,type,data.handle);elem[dataPriv.expando]=void 0}elem[dataUser.expando]&&(elem[dataUser.expando]=void 0)}}}),jQuery.fn.extend({detach:function(selector){return remove(this,selector,!0)},remove:function(selector){return remove(this,selector)},text:function(value){return access(this,function(value){return void 0===value?jQuery.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=value)})},null,value,arguments.length)},append:function(){return domManip(this,arguments,function(elem){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||manipulationTarget(this,elem).appendChild(elem)})},prepend:function(){return domManip(this,arguments,function(elem){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild)}})},before:function(){return domManip(this,arguments,function(elem){this.parentNode&&this.parentNode.insertBefore(elem,this)})},after:function(){return domManip(this,arguments,function(elem){this.parentNode&&this.parentNode.insertBefore(elem,this.nextSibling)})},empty:function(){for(var elem,i=0;null!=(elem=this[i]);i++)1===elem.nodeType&&(jQuery.cleanData(getAll(elem,!1)),elem.textContent="");return this},clone:function(dataAndEvents,deepDataAndEvents){return dataAndEvents=null!=dataAndEvents&&dataAndEvents,deepDataAndEvents=null==deepDataAndEvents?dataAndEvents:deepDataAndEvents,this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents)})},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(void 0===value&&1===elem.nodeType)return elem.innerHTML;if("string"==typeof value&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=jQuery.htmlPrefilter(value);try{for(;i<l;i++)1===(elem=this[i]||{}).nodeType&&(jQuery.cleanData(getAll(elem,!1)),elem.innerHTML=value);elem=0}catch(e){}}elem&&this.empty().append(value)},null,value,arguments.length)},replaceWith:function(){var ignored=[];return domManip(this,arguments,function(elem){var parent=this.parentNode;jQuery.inArray(this,ignored)<0&&(jQuery.cleanData(getAll(this)),parent&&parent.replaceChild(elem,this))},ignored)}}),jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){for(var elems,ret=[],insert=jQuery(selector),last=insert.length-1,i=0;i<=last;i++)elems=i===last?this:this.clone(!0),jQuery(insert[i])[original](elems),push.apply(ret,elems.get());return this.pushStack(ret)}});var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i"),getStyles=function(elem){var view=elem.ownerDocument.defaultView;return view&&view.opener||(view=window),view.getComputedStyle(elem)},rboxStyle=new RegExp(cssExpand.join("|"),"i");function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,style=elem.style;return(computed=computed||getStyles(elem))&&(""!==(ret=computed.getPropertyValue(name)||computed[name])||jQuery.contains(elem.ownerDocument,elem)||(ret=jQuery.style(elem,name)),!support.pixelBoxStyles()&&rnumnonpx.test(ret)&&rboxStyle.test(name)&&(width=style.width,minWidth=style.minWidth,maxWidth=style.maxWidth,style.minWidth=style.maxWidth=style.width=ret,ret=computed.width,style.width=width,style.minWidth=minWidth,style.maxWidth=maxWidth)),void 0!==ret?ret+"":ret}function addGetHookIf(conditionFn,hookFn){return{get:function(){if(!conditionFn())return(this.get=hookFn).apply(this,arguments);delete this.get}}}!function(){function computeStyleTests(){if(div){container.style.cssText="position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0",div.style.cssText="position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%",documentElement.appendChild(container).appendChild(div);var divStyle=window.getComputedStyle(div);pixelPositionVal="1%"!==divStyle.top,reliableMarginLeftVal=12===roundPixelMeasures(divStyle.marginLeft),div.style.right="60%",pixelBoxStylesVal=36===roundPixelMeasures(divStyle.right),boxSizingReliableVal=36===roundPixelMeasures(divStyle.width),div.style.position="absolute",scrollboxSizeVal=36===div.offsetWidth||"absolute",documentElement.removeChild(container),div=null}}function roundPixelMeasures(measure){return Math.round(parseFloat(measure))}var pixelPositionVal,boxSizingReliableVal,scrollboxSizeVal,pixelBoxStylesVal,reliableMarginLeftVal,container=document.createElement("div"),div=document.createElement("div");div.style&&(div.style.backgroundClip="content-box",div.cloneNode(!0).style.backgroundClip="",support.clearCloneStyle="content-box"===div.style.backgroundClip,jQuery.extend(support,{boxSizingReliable:function(){return computeStyleTests(),boxSizingReliableVal},pixelBoxStyles:function(){return computeStyleTests(),pixelBoxStylesVal},pixelPosition:function(){return computeStyleTests(),pixelPositionVal},reliableMarginLeft:function(){return computeStyleTests(),reliableMarginLeftVal},scrollboxSize:function(){return computeStyleTests(),scrollboxSizeVal}}))}();var rdisplayswap=/^(none|table(?!-c[ea]).+)/,rcustomProp=/^--/,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"},cssPrefixes=["Webkit","Moz","ms"],emptyStyle=document.createElement("div").style;function finalPropName(name){var ret=jQuery.cssProps[name];return ret||(ret=jQuery.cssProps[name]=function(name){if(name in emptyStyle)return name;for(var capName=name[0].toUpperCase()+name.slice(1),i=cssPrefixes.length;i--;)if((name=cssPrefixes[i]+capName)in emptyStyle)return name}(name)||name),ret}function setPositiveNumber(elem,value,subtract){var matches=rcssNum.exec(value);return matches?Math.max(0,matches[2]-(subtract||0))+(matches[3]||"px"):value}function boxModelAdjustment(elem,dimension,box,isBorderBox,styles,computedVal){var i="width"===dimension?1:0,extra=0,delta=0;if(box===(isBorderBox?"border":"content"))return 0;for(;i<4;i+=2)"margin"===box&&(delta+=jQuery.css(elem,box+cssExpand[i],!0,styles)),isBorderBox?("content"===box&&(delta-=jQuery.css(elem,"padding"+cssExpand[i],!0,styles)),"margin"!==box&&(delta-=jQuery.css(elem,"border"+cssExpand[i]+"Width",!0,styles))):(delta+=jQuery.css(elem,"padding"+cssExpand[i],!0,styles),"padding"!==box?delta+=jQuery.css(elem,"border"+cssExpand[i]+"Width",!0,styles):extra+=jQuery.css(elem,"border"+cssExpand[i]+"Width",!0,styles));return!isBorderBox&&computedVal>=0&&(delta+=Math.max(0,Math.ceil(elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-computedVal-delta-extra-.5))),delta}function getWidthOrHeight(elem,dimension,extra){var styles=getStyles(elem),val=curCSS(elem,dimension,styles),isBorderBox="border-box"===jQuery.css(elem,"boxSizing",!1,styles),valueIsBorderBox=isBorderBox;if(rnumnonpx.test(val)){if(!extra)return val;val="auto"}return valueIsBorderBox=valueIsBorderBox&&(support.boxSizingReliable()||val===elem.style[dimension]),("auto"===val||!parseFloat(val)&&"inline"===jQuery.css(elem,"display",!1,styles))&&(val=elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)],valueIsBorderBox=!0),(val=parseFloat(val)||0)+boxModelAdjustment(elem,dimension,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles,val)+"px"}function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing)}jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return""===ret?"1":ret}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(elem,name,value,extra){if(elem&&3!==elem.nodeType&&8!==elem.nodeType&&elem.style){var ret,type,hooks,origName=camelCase(name),isCustomProp=rcustomProp.test(name),style=elem.style;if(isCustomProp||(name=finalPropName(origName)),hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName],void 0===value)return hooks&&"get"in hooks&&void 0!==(ret=hooks.get(elem,!1,extra))?ret:style[name];"string"===(type=typeof value)&&(ret=rcssNum.exec(value))&&ret[1]&&(value=adjustCSS(elem,name,ret),type="number"),null!=value&&value==value&&("number"===type&&(value+=ret&&ret[3]||(jQuery.cssNumber[origName]?"":"px")),support.clearCloneStyle||""!==value||0!==name.indexOf("background")||(style[name]="inherit"),hooks&&"set"in hooks&&void 0===(value=hooks.set(elem,value,extra))||(isCustomProp?style.setProperty(name,value):style[name]=value))}},css:function(elem,name,extra,styles){var val,num,hooks,origName=camelCase(name);return rcustomProp.test(name)||(name=finalPropName(origName)),(hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName])&&"get"in hooks&&(val=hooks.get(elem,!0,extra)),void 0===val&&(val=curCSS(elem,name,styles)),"normal"===val&&name in cssNormalTransform&&(val=cssNormalTransform[name]),""===extra||extra?(num=parseFloat(val),!0===extra||isFinite(num)?num||0:val):val}}),jQuery.each(["height","width"],function(i,dimension){jQuery.cssHooks[dimension]={get:function(elem,computed,extra){if(computed)return!rdisplayswap.test(jQuery.css(elem,"display"))||elem.getClientRects().length&&elem.getBoundingClientRect().width?getWidthOrHeight(elem,dimension,extra):swap(elem,cssShow,function(){return getWidthOrHeight(elem,dimension,extra)})},set:function(elem,value,extra){var matches,styles=getStyles(elem),isBorderBox="border-box"===jQuery.css(elem,"boxSizing",!1,styles),subtract=extra&&boxModelAdjustment(elem,dimension,extra,isBorderBox,styles);return isBorderBox&&support.scrollboxSize()===styles.position&&(subtract-=Math.ceil(elem["offset"+dimension[0].toUpperCase()+dimension.slice(1)]-parseFloat(styles[dimension])-boxModelAdjustment(elem,dimension,"border",!1,styles)-.5)),subtract&&(matches=rcssNum.exec(value))&&"px"!==(matches[3]||"px")&&(elem.style[dimension]=value,value=jQuery.css(elem,dimension)),setPositiveNumber(0,value,subtract)}}}),jQuery.cssHooks.marginLeft=addGetHookIf(support.reliableMarginLeft,function(elem,computed){if(computed)return(parseFloat(curCSS(elem,"marginLeft"))||elem.getBoundingClientRect().left-swap(elem,{marginLeft:0},function(){return elem.getBoundingClientRect().left}))+"px"}),jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){for(var i=0,expanded={},parts="string"==typeof value?value.split(" "):[value];i<4;i++)expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0];return expanded}},"margin"!==prefix&&(jQuery.cssHooks[prefix+suffix].set=setPositiveNumber)}),jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(Array.isArray(name)){for(styles=getStyles(elem),len=name.length;i<len;i++)map[name[i]]=jQuery.css(elem,name[i],!1,styles);return map}return void 0!==value?jQuery.style(elem,name,value):jQuery.css(elem,name)},name,value,arguments.length>1)}}),jQuery.Tween=Tween,Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem,this.prop=prop,this.easing=easing||jQuery.easing._default,this.options=options,this.start=this.now=this.cur(),this.end=end,this.unit=unit||(jQuery.cssNumber[prop]?"":"px")},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this)},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];return this.options.duration?this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration):this.pos=eased=percent,this.now=(this.end-this.start)*eased+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),hooks&&hooks.set?hooks.set(this):Tween.propHooks._default.set(this),this}},Tween.prototype.init.prototype=Tween.prototype,Tween.propHooks={_default:{get:function(tween){var result;return 1!==tween.elem.nodeType||null!=tween.elem[tween.prop]&&null==tween.elem.style[tween.prop]?tween.elem[tween.prop]:(result=jQuery.css(tween.elem,tween.prop,""))&&"auto"!==result?result:0},set:function(tween){jQuery.fx.step[tween.prop]?jQuery.fx.step[tween.prop](tween):1!==tween.elem.nodeType||null==tween.elem.style[jQuery.cssProps[tween.prop]]&&!jQuery.cssHooks[tween.prop]?tween.elem[tween.prop]=tween.now:jQuery.style(tween.elem,tween.prop,tween.now+tween.unit)}}},Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){tween.elem.nodeType&&tween.elem.parentNode&&(tween.elem[tween.prop]=tween.now)}},jQuery.easing={linear:function(p){return p},swing:function(p){return.5-Math.cos(p*Math.PI)/2},_default:"swing"},jQuery.fx=Tween.prototype.init,jQuery.fx.step={};var fxNow,inProgress,rfxtypes=/^(?:toggle|show|hide)$/,rrun=/queueHooks$/;function schedule(){inProgress&&(!1===document.hidden&&window.requestAnimationFrame?window.requestAnimationFrame(schedule):window.setTimeout(schedule,jQuery.fx.interval),jQuery.fx.tick())}function createFxNow(){return window.setTimeout(function(){fxNow=void 0}),fxNow=Date.now()}function genFx(type,includeWidth){var which,i=0,attrs={height:type};for(includeWidth=includeWidth?1:0;i<4;i+=2-includeWidth)attrs["margin"+(which=cssExpand[i])]=attrs["padding"+which]=type;return includeWidth&&(attrs.opacity=attrs.width=type),attrs}function createTween(value,prop,animation){for(var tween,collection=(Animation.tweeners[prop]||[]).concat(Animation.tweeners["*"]),index=0,length=collection.length;index<length;index++)if(tween=collection[index].call(animation,prop,value))return tween}function Animation(elem,properties,options){var result,stopped,index=0,length=Animation.prefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem}),tick=function(){if(stopped)return!1;for(var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),percent=1-(remaining/animation.duration||0),index=0,length=animation.tweens.length;index<length;index++)animation.tweens[index].run(percent);return deferred.notifyWith(elem,[animation,percent,remaining]),percent<1&&length?remaining:(length||deferred.notifyWith(elem,[animation,1,0]),deferred.resolveWith(elem,[animation]),!1)},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(!0,{specialEasing:{},easing:jQuery.easing._default},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);return animation.tweens.push(tween),tween},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped)return this;for(stopped=!0;index<length;index++)animation.tweens[index].run(1);return gotoEnd?(deferred.notifyWith(elem,[animation,1,0]),deferred.resolveWith(elem,[animation,gotoEnd])):deferred.rejectWith(elem,[animation,gotoEnd]),this}}),props=animation.props;for(!function(props,specialEasing){var index,name,easing,value,hooks;for(index in props)if(easing=specialEasing[name=camelCase(index)],value=props[index],Array.isArray(value)&&(easing=value[1],value=props[index]=value[0]),index!==name&&(props[name]=value,delete props[index]),(hooks=jQuery.cssHooks[name])&&"expand"in hooks)for(index in value=hooks.expand(value),delete props[name],value)index in props||(props[index]=value[index],specialEasing[index]=easing);else specialEasing[name]=easing}(props,animation.opts.specialEasing);index<length;index++)if(result=Animation.prefilters[index].call(animation,elem,props,animation.opts))return isFunction(result.stop)&&(jQuery._queueHooks(animation.elem,animation.opts.queue).stop=result.stop.bind(result)),result;return jQuery.map(props,createTween,animation),isFunction(animation.opts.start)&&animation.opts.start.call(elem,animation),animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always),jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue})),animation}jQuery.Animation=jQuery.extend(Animation,{tweeners:{"*":[function(prop,value){var tween=this.createTween(prop,value);return adjustCSS(tween.elem,prop,rcssNum.exec(value),tween),tween}]},tweener:function(props,callback){isFunction(props)?(callback=props,props=["*"]):props=props.match(rnothtmlwhite);for(var prop,index=0,length=props.length;index<length;index++)prop=props[index],Animation.tweeners[prop]=Animation.tweeners[prop]||[],Animation.tweeners[prop].unshift(callback)},prefilters:[function(elem,props,opts){var prop,value,toggle,hooks,oldfire,propTween,restoreDisplay,display,isBox="width"in props||"height"in props,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHiddenWithinTree(elem),dataShow=dataPriv.get(elem,"fxshow");for(prop in opts.queue||(null==(hooks=jQuery._queueHooks(elem,"fx")).unqueued&&(hooks.unqueued=0,oldfire=hooks.empty.fire,hooks.empty.fire=function(){hooks.unqueued||oldfire()}),hooks.unqueued++,anim.always(function(){anim.always(function(){hooks.unqueued--,jQuery.queue(elem,"fx").length||hooks.empty.fire()})})),props)if(value=props[prop],rfxtypes.test(value)){if(delete props[prop],toggle=toggle||"toggle"===value,value===(hidden?"hide":"show")){if("show"!==value||!dataShow||void 0===dataShow[prop])continue;hidden=!0}orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop)}if((propTween=!jQuery.isEmptyObject(props))||!jQuery.isEmptyObject(orig))for(prop in isBox&&1===elem.nodeType&&(opts.overflow=[style.overflow,style.overflowX,style.overflowY],null==(restoreDisplay=dataShow&&dataShow.display)&&(restoreDisplay=dataPriv.get(elem,"display")),"none"===(display=jQuery.css(elem,"display"))&&(restoreDisplay?display=restoreDisplay:(showHide([elem],!0),restoreDisplay=elem.style.display||restoreDisplay,display=jQuery.css(elem,"display"),showHide([elem]))),("inline"===display||"inline-block"===display&&null!=restoreDisplay)&&"none"===jQuery.css(elem,"float")&&(propTween||(anim.done(function(){style.display=restoreDisplay}),null==restoreDisplay&&(display=style.display,restoreDisplay="none"===display?"":display)),style.display="inline-block")),opts.overflow&&(style.overflow="hidden",anim.always(function(){style.overflow=opts.overflow[0],style.overflowX=opts.overflow[1],style.overflowY=opts.overflow[2]})),propTween=!1,orig)propTween||(dataShow?"hidden"in dataShow&&(hidden=dataShow.hidden):dataShow=dataPriv.access(elem,"fxshow",{display:restoreDisplay}),toggle&&(dataShow.hidden=!hidden),hidden&&showHide([elem],!0),anim.done(function(){for(prop in hidden||showHide([elem]),dataPriv.remove(elem,"fxshow"),orig)jQuery.style(elem,prop,orig[prop])})),propTween=createTween(hidden?dataShow[prop]:0,prop,anim),prop in dataShow||(dataShow[prop]=propTween.start,hidden&&(propTween.end=propTween.start,propTween.start=0))}],prefilter:function(callback,prepend){prepend?Animation.prefilters.unshift(callback):Animation.prefilters.push(callback)}}),jQuery.speed=function(speed,easing,fn){var opt=speed&&"object"==typeof speed?jQuery.extend({},speed):{complete:fn||!fn&&easing||isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!isFunction(easing)&&easing};return jQuery.fx.off?opt.duration=0:"number"!=typeof opt.duration&&(opt.duration in jQuery.fx.speeds?opt.duration=jQuery.fx.speeds[opt.duration]:opt.duration=jQuery.fx.speeds._default),null!=opt.queue&&!0!==opt.queue||(opt.queue="fx"),opt.old=opt.complete,opt.complete=function(){isFunction(opt.old)&&opt.old.call(this),opt.queue&&jQuery.dequeue(this,opt.queue)},opt},jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHiddenWithinTree).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback)},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);(empty||dataPriv.get(this,"finish"))&&anim.stop(!0)};return doAnimation.finish=doAnimation,empty||!1===optall.queue?this.each(doAnimation):this.queue(optall.queue,doAnimation)},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop,stop(gotoEnd)};return"string"!=typeof type&&(gotoEnd=clearQueue,clearQueue=type,type=void 0),clearQueue&&!1!==type&&this.queue(type||"fx",[]),this.each(function(){var dequeue=!0,index=null!=type&&type+"queueHooks",timers=jQuery.timers,data=dataPriv.get(this);if(index)data[index]&&data[index].stop&&stopQueue(data[index]);else for(index in data)data[index]&&data[index].stop&&rrun.test(index)&&stopQueue(data[index]);for(index=timers.length;index--;)timers[index].elem!==this||null!=type&&timers[index].queue!==type||(timers[index].anim.stop(gotoEnd),dequeue=!1,timers.splice(index,1));!dequeue&&gotoEnd||jQuery.dequeue(this,type)})},finish:function(type){return!1!==type&&(type=type||"fx"),this.each(function(){var index,data=dataPriv.get(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;for(data.finish=!0,jQuery.queue(this,type,[]),hooks&&hooks.stop&&hooks.stop.call(this,!0),index=timers.length;index--;)timers[index].elem===this&&timers[index].queue===type&&(timers[index].anim.stop(!0),timers.splice(index,1));for(index=0;index<length;index++)queue[index]&&queue[index].finish&&queue[index].finish.call(this);delete data.finish})}}),jQuery.each(["toggle","show","hide"],function(i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return null==speed||"boolean"==typeof speed?cssFn.apply(this,arguments):this.animate(genFx(name,!0),speed,easing,callback)}}),jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback)}}),jQuery.timers=[],jQuery.fx.tick=function(){var timer,i=0,timers=jQuery.timers;for(fxNow=Date.now();i<timers.length;i++)(timer=timers[i])()||timers[i]!==timer||timers.splice(i--,1);timers.length||jQuery.fx.stop(),fxNow=void 0},jQuery.fx.timer=function(timer){jQuery.timers.push(timer),jQuery.fx.start()},jQuery.fx.interval=13,jQuery.fx.start=function(){inProgress||(inProgress=!0,schedule())},jQuery.fx.stop=function(){inProgress=null},jQuery.fx.speeds={slow:600,fast:200,_default:400},jQuery.fn.delay=function(time,type){return time=jQuery.fx&&jQuery.fx.speeds[time]||time,type=type||"fx",this.queue(type,function(next,hooks){var timeout=window.setTimeout(next,time);hooks.stop=function(){window.clearTimeout(timeout)}})},function(){var input=document.createElement("input"),opt=document.createElement("select").appendChild(document.createElement("option"));input.type="checkbox",support.checkOn=""!==input.value,support.optSelected=opt.selected,(input=document.createElement("input")).value="t",input.type="radio",support.radioValue="t"===input.value}();var boolHook,attrHandle=jQuery.expr.attrHandle;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1)},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name)})}}),jQuery.extend({attr:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(3!==nType&&8!==nType&&2!==nType)return void 0===elem.getAttribute?jQuery.prop(elem,name,value):(1===nType&&jQuery.isXMLDoc(elem)||(hooks=jQuery.attrHooks[name.toLowerCase()]||(jQuery.expr.match.bool.test(name)?boolHook:void 0)),void 0!==value?null===value?void jQuery.removeAttr(elem,name):hooks&&"set"in hooks&&void 0!==(ret=hooks.set(elem,value,name))?ret:(elem.setAttribute(name,value+""),value):hooks&&"get"in hooks&&null!==(ret=hooks.get(elem,name))?ret:null==(ret=jQuery.find.attr(elem,name))?void 0:ret)},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&"radio"===value&&nodeName(elem,"input")){var val=elem.value;return elem.setAttribute("type",value),val&&(elem.value=val),value}}}},removeAttr:function(elem,value){var name,i=0,attrNames=value&&value.match(rnothtmlwhite);if(attrNames&&1===elem.nodeType)for(;name=attrNames[i++];)elem.removeAttribute(name)}}),boolHook={set:function(elem,value,name){return!1===value?jQuery.removeAttr(elem,name):elem.setAttribute(name,name),name}},jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle,lowercaseName=name.toLowerCase();return isXML||(handle=attrHandle[lowercaseName],attrHandle[lowercaseName]=ret,ret=null!=getter(elem,name,isXML)?lowercaseName:null,attrHandle[lowercaseName]=handle),ret}});var rfocusable=/^(?:input|select|textarea|button)$/i,rclickable=/^(?:a|area)$/i;function stripAndCollapse(value){return(value.match(rnothtmlwhite)||[]).join(" ")}function getClass(elem){return elem.getAttribute&&elem.getAttribute("class")||""}function classesToArray(value){return Array.isArray(value)?value:"string"==typeof value&&value.match(rnothtmlwhite)||[]}jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1)},removeProp:function(name){return this.each(function(){delete this[jQuery.propFix[name]||name]})}}),jQuery.extend({prop:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(3!==nType&&8!==nType&&2!==nType)return 1===nType&&jQuery.isXMLDoc(elem)||(name=jQuery.propFix[name]||name,hooks=jQuery.propHooks[name]),void 0!==value?hooks&&"set"in hooks&&void 0!==(ret=hooks.set(elem,value,name))?ret:elem[name]=value:hooks&&"get"in hooks&&null!==(ret=hooks.get(elem,name))?ret:elem[name]},propHooks:{tabIndex:{get:function(elem){var tabindex=jQuery.find.attr(elem,"tabindex");return tabindex?parseInt(tabindex,10):rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}}),support.optSelected||(jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;return parent&&parent.parentNode&&parent.parentNode.selectedIndex,null},set:function(elem){var parent=elem.parentNode;parent&&(parent.selectedIndex,parent.parentNode&&parent.parentNode.selectedIndex)}}),jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this}),jQuery.fn.extend({addClass:function(value){var classes,elem,cur,curValue,clazz,j,finalValue,i=0;if(isFunction(value))return this.each(function(j){jQuery(this).addClass(value.call(this,j,getClass(this)))});if((classes=classesToArray(value)).length)for(;elem=this[i++];)if(curValue=getClass(elem),cur=1===elem.nodeType&&" "+stripAndCollapse(curValue)+" "){for(j=0;clazz=classes[j++];)cur.indexOf(" "+clazz+" ")<0&&(cur+=clazz+" ");curValue!==(finalValue=stripAndCollapse(cur))&&elem.setAttribute("class",finalValue)}return this},removeClass:function(value){var classes,elem,cur,curValue,clazz,j,finalValue,i=0;if(isFunction(value))return this.each(function(j){jQuery(this).removeClass(value.call(this,j,getClass(this)))});if(!arguments.length)return this.attr("class","");if((classes=classesToArray(value)).length)for(;elem=this[i++];)if(curValue=getClass(elem),cur=1===elem.nodeType&&" "+stripAndCollapse(curValue)+" "){for(j=0;clazz=classes[j++];)for(;cur.indexOf(" "+clazz+" ")>-1;)cur=cur.replace(" "+clazz+" "," ");curValue!==(finalValue=stripAndCollapse(cur))&&elem.setAttribute("class",finalValue)}return this},toggleClass:function(value,stateVal){var type=typeof value,isValidValue="string"===type||Array.isArray(value);return"boolean"==typeof stateVal&&isValidValue?stateVal?this.addClass(value):this.removeClass(value):isFunction(value)?this.each(function(i){jQuery(this).toggleClass(value.call(this,i,getClass(this),stateVal),stateVal)}):this.each(function(){var className,i,self,classNames;if(isValidValue)for(i=0,self=jQuery(this),classNames=classesToArray(value);className=classNames[i++];)self.hasClass(className)?self.removeClass(className):self.addClass(className);else void 0!==value&&"boolean"!==type||((className=getClass(this))&&dataPriv.set(this,"__className__",className),this.setAttribute&&this.setAttribute("class",className||!1===value?"":dataPriv.get(this,"__className__")||""))})},hasClass:function(selector){var className,elem,i=0;for(className=" "+selector+" ";elem=this[i++];)if(1===elem.nodeType&&(" "+stripAndCollapse(getClass(elem))+" ").indexOf(className)>-1)return!0;return!1}});var rreturn=/\r/g;jQuery.fn.extend({val:function(value){var hooks,ret,valueIsFunction,elem=this[0];return arguments.length?(valueIsFunction=isFunction(value),this.each(function(i){var val;1===this.nodeType&&(null==(val=valueIsFunction?value.call(this,i,jQuery(this).val()):value)?val="":"number"==typeof val?val+="":Array.isArray(val)&&(val=jQuery.map(val,function(value){return null==value?"":value+""})),(hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()])&&"set"in hooks&&void 0!==hooks.set(this,val,"value")||(this.value=val))})):elem?(hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()])&&"get"in hooks&&void 0!==(ret=hooks.get(elem,"value"))?ret:"string"==typeof(ret=elem.value)?ret.replace(rreturn,""):null==ret?"":ret:void 0}}),jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return null!=val?val:stripAndCollapse(jQuery.text(elem))}},select:{get:function(elem){var value,option,i,options=elem.options,index=elem.selectedIndex,one="select-one"===elem.type,values=one?null:[],max=one?index+1:options.length;for(i=index<0?max:one?index:0;i<max;i++)if(((option=options[i]).selected||i===index)&&!option.disabled&&(!option.parentNode.disabled||!nodeName(option.parentNode,"optgroup"))){if(value=jQuery(option).val(),one)return value;values.push(value)}return values},set:function(elem,value){for(var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;i--;)((option=options[i]).selected=jQuery.inArray(jQuery.valHooks.option.get(option),values)>-1)&&(optionSet=!0);return optionSet||(elem.selectedIndex=-1),values}}}}),jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(Array.isArray(value))return elem.checked=jQuery.inArray(jQuery(elem).val(),value)>-1}},support.checkOn||(jQuery.valHooks[this].get=function(elem){return null===elem.getAttribute("value")?"on":elem.value})}),support.focusin="onfocusin"in window;var rfocusMorph=/^(?:focusinfocus|focusoutblur)$/,stopPropagationCallback=function(e){e.stopPropagation()};jQuery.extend(jQuery.event,{trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,lastElement,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];if(cur=lastElement=tmp=elem=elem||document,3!==elem.nodeType&&8!==elem.nodeType&&!rfocusMorph.test(type+jQuery.event.triggered)&&(type.indexOf(".")>-1&&(type=(namespaces=type.split(".")).shift(),namespaces.sort()),ontype=type.indexOf(":")<0&&"on"+type,(event=event[jQuery.expando]?event:new jQuery.Event(type,"object"==typeof event&&event)).isTrigger=onlyHandlers?2:3,event.namespace=namespaces.join("."),event.rnamespace=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,event.result=void 0,event.target||(event.target=elem),data=null==data?[event]:jQuery.makeArray(data,[event]),special=jQuery.event.special[type]||{},onlyHandlers||!special.trigger||!1!==special.trigger.apply(elem,data))){if(!onlyHandlers&&!special.noBubble&&!isWindow(elem)){for(bubbleType=special.delegateType||type,rfocusMorph.test(bubbleType+type)||(cur=cur.parentNode);cur;cur=cur.parentNode)eventPath.push(cur),tmp=cur;tmp===(elem.ownerDocument||document)&&eventPath.push(tmp.defaultView||tmp.parentWindow||window)}for(i=0;(cur=eventPath[i++])&&!event.isPropagationStopped();)lastElement=cur,event.type=i>1?bubbleType:special.bindType||type,(handle=(dataPriv.get(cur,"events")||{})[event.type]&&dataPriv.get(cur,"handle"))&&handle.apply(cur,data),(handle=ontype&&cur[ontype])&&handle.apply&&acceptData(cur)&&(event.result=handle.apply(cur,data),!1===event.result&&event.preventDefault());return event.type=type,onlyHandlers||event.isDefaultPrevented()||special._default&&!1!==special._default.apply(eventPath.pop(),data)||!acceptData(elem)||ontype&&isFunction(elem[type])&&!isWindow(elem)&&((tmp=elem[ontype])&&(elem[ontype]=null),jQuery.event.triggered=type,event.isPropagationStopped()&&lastElement.addEventListener(type,stopPropagationCallback),elem[type](),event.isPropagationStopped()&&lastElement.removeEventListener(type,stopPropagationCallback),jQuery.event.triggered=void 0,tmp&&(elem[ontype]=tmp)),event.result}},simulate:function(type,elem,event){var e=jQuery.extend(new jQuery.Event,event,{type:type,isSimulated:!0});jQuery.event.trigger(e,null,elem)}}),jQuery.fn.extend({trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){var elem=this[0];if(elem)return jQuery.event.trigger(type,data,elem,!0)}}),support.focusin||jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event))};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this,attaches=dataPriv.access(doc,fix);attaches||doc.addEventListener(orig,handler,!0),dataPriv.access(doc,fix,(attaches||0)+1)},teardown:function(){var doc=this.ownerDocument||this,attaches=dataPriv.access(doc,fix)-1;attaches?dataPriv.access(doc,fix,attaches):(doc.removeEventListener(orig,handler,!0),dataPriv.remove(doc,fix))}}});var location=window.location,nonce=Date.now(),rquery=/\?/;jQuery.parseXML=function(data){var xml;if(!data||"string"!=typeof data)return null;try{xml=(new window.DOMParser).parseFromString(data,"text/xml")}catch(e){xml=void 0}return xml&&!xml.getElementsByTagName("parsererror").length||jQuery.error("Invalid XML: "+data),xml};var rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(Array.isArray(obj))jQuery.each(obj,function(i,v){traditional||rbracket.test(prefix)?add(prefix,v):buildParams(prefix+"["+("object"==typeof v&&null!=v?i:"")+"]",v,traditional,add)});else if(traditional||"object"!==toType(obj))add(prefix,obj);else for(name in obj)buildParams(prefix+"["+name+"]",obj[name],traditional,add)}jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,valueOrFunction){var value=isFunction(valueOrFunction)?valueOrFunction():valueOrFunction;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(null==value?"":value)};if(Array.isArray(a)||a.jquery&&!jQuery.isPlainObject(a))jQuery.each(a,function(){add(this.name,this.value)});else for(prefix in a)buildParams(prefix,a[prefix],traditional,add);return s.join("&")},jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type))}).map(function(i,elem){var val=jQuery(this).val();return null==val?null:Array.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")}}):{name:elem.name,value:val.replace(rCRLF,"\r\n")}}).get()}});var r20=/%20/g,rhash=/#.*$/,rantiCache=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/gm,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,prefilters={},transports={},allTypes="*/".concat("*"),originAnchor=document.createElement("a");function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){"string"!=typeof dataTypeExpression&&(func=dataTypeExpression,dataTypeExpression="*");var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnothtmlwhite)||[];if(isFunction(func))for(;dataType=dataTypes[i++];)"+"===dataType[0]?(dataType=dataType.slice(1)||"*",(structure[dataType]=structure[dataType]||[]).unshift(func)):(structure[dataType]=structure[dataType]||[]).push(func)}}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=structure===transports;function inspect(dataType){var selected;return inspected[dataType]=!0,jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);return"string"!=typeof dataTypeOrTransport||seekingTransport||inspected[dataTypeOrTransport]?seekingTransport?!(selected=dataTypeOrTransport):void 0:(options.dataTypes.unshift(dataTypeOrTransport),inspect(dataTypeOrTransport),!1)}),selected}return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*")}function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src)void 0!==src[key]&&((flatOptions[key]?target:deep||(deep={}))[key]=src[key]);return deep&&jQuery.extend(!0,target,deep),target}originAnchor.href=location.href,jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:location.href,type:"GET",isLocal:/^(?:about|app|app-storage|.+-extension|file|res|widget):$/.test(location.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":jQuery.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target)},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){"object"==typeof url&&(options=url,url=void 0),options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,urlAnchor,completed,fireGlobals,i,uncached,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(completed){if(!responseHeaders)for(responseHeaders={};match=rheaders.exec(responseHeadersString);)responseHeaders[match[1].toLowerCase()]=match[2];match=responseHeaders[key.toLowerCase()]}return null==match?null:match},getAllResponseHeaders:function(){return completed?responseHeadersString:null},setRequestHeader:function(name,value){return null==completed&&(name=requestHeadersNames[name.toLowerCase()]=requestHeadersNames[name.toLowerCase()]||name,requestHeaders[name]=value),this},overrideMimeType:function(type){return null==completed&&(s.mimeType=type),this},statusCode:function(map){var code;if(map)if(completed)jqXHR.always(map[jqXHR.status]);else for(code in map)statusCode[code]=[statusCode[code],map[code]];return this},abort:function(statusText){var finalText=statusText||strAbort;return transport&&transport.abort(finalText),done(0,finalText),this}};if(deferred.promise(jqXHR),s.url=((url||s.url||location.href)+"").replace(rprotocol,location.protocol+"//"),s.type=options.method||options.type||s.method||s.type,s.dataTypes=(s.dataType||"*").toLowerCase().match(rnothtmlwhite)||[""],null==s.crossDomain){urlAnchor=document.createElement("a");try{urlAnchor.href=s.url,urlAnchor.href=urlAnchor.href,s.crossDomain=originAnchor.protocol+"//"+originAnchor.host!=urlAnchor.protocol+"//"+urlAnchor.host}catch(e){s.crossDomain=!0}}if(s.data&&s.processData&&"string"!=typeof s.data&&(s.data=jQuery.param(s.data,s.traditional)),inspectPrefiltersOrTransports(prefilters,s,options,jqXHR),completed)return jqXHR;for(i in(fireGlobals=jQuery.event&&s.global)&&0==jQuery.active++&&jQuery.event.trigger("ajaxStart"),s.type=s.type.toUpperCase(),s.hasContent=!rnoContent.test(s.type),cacheURL=s.url.replace(rhash,""),s.hasContent?s.data&&s.processData&&0===(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&(s.data=s.data.replace(r20,"+")):(uncached=s.url.slice(cacheURL.length),s.data&&(s.processData||"string"==typeof s.data)&&(cacheURL+=(rquery.test(cacheURL)?"&":"?")+s.data,delete s.data),!1===s.cache&&(cacheURL=cacheURL.replace(rantiCache,"$1"),uncached=(rquery.test(cacheURL)?"&":"?")+"_="+nonce+++uncached),s.url=cacheURL+uncached),s.ifModified&&(jQuery.lastModified[cacheURL]&&jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL]),jQuery.etag[cacheURL]&&jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL])),(s.data&&s.hasContent&&!1!==s.contentType||options.contentType)&&jqXHR.setRequestHeader("Content-Type",s.contentType),jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+("*"!==s.dataTypes[0]?", "+allTypes+"; q=0.01":""):s.accepts["*"]),s.headers)jqXHR.setRequestHeader(i,s.headers[i]);if(s.beforeSend&&(!1===s.beforeSend.call(callbackContext,jqXHR,s)||completed))return jqXHR.abort();if(strAbort="abort",completeDeferred.add(s.complete),jqXHR.done(s.success),jqXHR.fail(s.error),transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR)){if(jqXHR.readyState=1,fireGlobals&&globalEventContext.trigger("ajaxSend",[jqXHR,s]),completed)return jqXHR;s.async&&s.timeout>0&&(timeoutTimer=window.setTimeout(function(){jqXHR.abort("timeout")},s.timeout));try{completed=!1,transport.send(requestHeaders,done)}catch(e){if(completed)throw e;done(-1,e)}}else done(-1,"No Transport");function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;completed||(completed=!0,timeoutTimer&&window.clearTimeout(timeoutTimer),transport=void 0,responseHeadersString=headers||"",jqXHR.readyState=status>0?4:0,isSuccess=status>=200&&status<300||304===status,responses&&(response=function(s,jqXHR,responses){for(var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;"*"===dataTypes[0];)dataTypes.shift(),void 0===ct&&(ct=s.mimeType||jqXHR.getResponseHeader("Content-Type"));if(ct)for(type in contents)if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break}if(dataTypes[0]in responses)finalDataType=dataTypes[0];else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break}firstDataType||(firstDataType=type)}finalDataType=finalDataType||firstDataType}if(finalDataType)return finalDataType!==dataTypes[0]&&dataTypes.unshift(finalDataType),responses[finalDataType]}(s,jqXHR,responses)),response=function(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1])for(conv in s.converters)converters[conv.toLowerCase()]=s.converters[conv];for(current=dataTypes.shift();current;)if(s.responseFields[current]&&(jqXHR[s.responseFields[current]]=response),!prev&&isSuccess&&s.dataFilter&&(response=s.dataFilter(response,s.dataType)),prev=current,current=dataTypes.shift())if("*"===current)current=prev;else if("*"!==prev&&prev!==current){if(!(conv=converters[prev+" "+current]||converters["* "+current]))for(conv2 in converters)if((tmp=conv2.split(" "))[1]===current&&(conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]])){!0===conv?conv=converters[conv2]:!0!==converters[conv2]&&(current=tmp[0],dataTypes.unshift(tmp[1]));break}if(!0!==conv)if(conv&&s.throws)response=conv(response);else try{response=conv(response)}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current}}}return{state:"success",data:response}}(s,response,jqXHR,isSuccess),isSuccess?(s.ifModified&&((modified=jqXHR.getResponseHeader("Last-Modified"))&&(jQuery.lastModified[cacheURL]=modified),(modified=jqXHR.getResponseHeader("etag"))&&(jQuery.etag[cacheURL]=modified)),204===status||"HEAD"===s.type?statusText="nocontent":304===status?statusText="notmodified":(statusText=response.state,success=response.data,isSuccess=!(error=response.error))):(error=statusText,!status&&statusText||(statusText="error",status<0&&(status=0))),jqXHR.status=status,jqXHR.statusText=(nativeStatusText||statusText)+"",isSuccess?deferred.resolveWith(callbackContext,[success,statusText,jqXHR]):deferred.rejectWith(callbackContext,[jqXHR,statusText,error]),jqXHR.statusCode(statusCode),statusCode=void 0,fireGlobals&&globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error]),completeDeferred.fireWith(callbackContext,[jqXHR,statusText]),fireGlobals&&(globalEventContext.trigger("ajaxComplete",[jqXHR,s]),--jQuery.active||jQuery.event.trigger("ajaxStop")))}return jqXHR},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},getScript:function(url,callback){return jQuery.get(url,void 0,callback,"script")}}),jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){return isFunction(data)&&(type=type||callback,callback=data,data=void 0),jQuery.ajax(jQuery.extend({url:url,type:method,dataType:type,data:data,success:callback},jQuery.isPlainObject(url)&&url))}}),jQuery._evalUrl=function(url){return jQuery.ajax({url:url,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,throws:!0})},jQuery.fn.extend({wrapAll:function(html){var wrap;return this[0]&&(isFunction(html)&&(html=html.call(this[0])),wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&wrap.insertBefore(this[0]),wrap.map(function(){for(var elem=this;elem.firstElementChild;)elem=elem.firstElementChild;return elem}).append(this)),this},wrapInner:function(html){return isFunction(html)?this.each(function(i){jQuery(this).wrapInner(html.call(this,i))}):this.each(function(){var self=jQuery(this),contents=self.contents();contents.length?contents.wrapAll(html):self.append(html)})},wrap:function(html){var htmlIsFunction=isFunction(html);return this.each(function(i){jQuery(this).wrapAll(htmlIsFunction?html.call(this,i):html)})},unwrap:function(selector){return this.parent(selector).not("body").each(function(){jQuery(this).replaceWith(this.childNodes)}),this}}),jQuery.expr.pseudos.hidden=function(elem){return!jQuery.expr.pseudos.visible(elem)},jQuery.expr.pseudos.visible=function(elem){return!!(elem.offsetWidth||elem.offsetHeight||elem.getClientRects().length)},jQuery.ajaxSettings.xhr=function(){try{return new window.XMLHttpRequest}catch(e){}};var xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();support.cors=!!xhrSupported&&"withCredentials"in xhrSupported,support.ajax=xhrSupported=!!xhrSupported,jQuery.ajaxTransport(function(options){var callback,errorCallback;if(support.cors||xhrSupported&&!options.crossDomain)return{send:function(headers,complete){var i,xhr=options.xhr();if(xhr.open(options.type,options.url,options.async,options.username,options.password),options.xhrFields)for(i in options.xhrFields)xhr[i]=options.xhrFields[i];for(i in options.mimeType&&xhr.overrideMimeType&&xhr.overrideMimeType(options.mimeType),options.crossDomain||headers["X-Requested-With"]||(headers["X-Requested-With"]="XMLHttpRequest"),headers)xhr.setRequestHeader(i,headers[i]);callback=function(type){return function(){callback&&(callback=errorCallback=xhr.onload=xhr.onerror=xhr.onabort=xhr.ontimeout=xhr.onreadystatechange=null,"abort"===type?xhr.abort():"error"===type?"number"!=typeof xhr.status?complete(0,"error"):complete(xhr.status,xhr.statusText):complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,"text"!==(xhr.responseType||"text")||"string"!=typeof xhr.responseText?{binary:xhr.response}:{text:xhr.responseText},xhr.getAllResponseHeaders()))}},xhr.onload=callback(),errorCallback=xhr.onerror=xhr.ontimeout=callback("error"),void 0!==xhr.onabort?xhr.onabort=errorCallback:xhr.onreadystatechange=function(){4===xhr.readyState&&window.setTimeout(function(){callback&&errorCallback()})},callback=callback("abort");try{xhr.send(options.hasContent&&options.data||null)}catch(e){if(callback)throw e}},abort:function(){callback&&callback()}}}),jQuery.ajaxPrefilter(function(s){s.crossDomain&&(s.contents.script=!1)}),jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(text){return jQuery.globalEval(text),text}}}),jQuery.ajaxPrefilter("script",function(s){void 0===s.cache&&(s.cache=!1),s.crossDomain&&(s.type="GET")}),jQuery.ajaxTransport("script",function(s){var script,callback;if(s.crossDomain)return{send:function(_,complete){script=jQuery("<script>").prop({charset:s.scriptCharset,src:s.url}).on("load error",callback=function(evt){script.remove(),callback=null,evt&&complete("error"===evt.type?404:200,evt.type)}),document.head.appendChild(script[0])},abort:function(){callback&&callback()}}});var body,oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||jQuery.expando+"_"+nonce++;return this[callback]=!0,callback}}),jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=!1!==s.jsonp&&(rjsonp.test(s.url)?"url":"string"==typeof s.data&&0===(s.contentType||"").indexOf("application/x-www-form-urlencoded")&&rjsonp.test(s.data)&&"data");if(jsonProp||"jsonp"===s.dataTypes[0])return callbackName=s.jsonpCallback=isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback,jsonProp?s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName):!1!==s.jsonp&&(s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName),s.converters["script json"]=function(){return responseContainer||jQuery.error(callbackName+" was not called"),responseContainer[0]},s.dataTypes[0]="json",overwritten=window[callbackName],window[callbackName]=function(){responseContainer=arguments},jqXHR.always(function(){void 0===overwritten?jQuery(window).removeProp(callbackName):window[callbackName]=overwritten,s[callbackName]&&(s.jsonpCallback=originalSettings.jsonpCallback,oldCallbacks.push(callbackName)),responseContainer&&isFunction(overwritten)&&overwritten(responseContainer[0]),responseContainer=overwritten=void 0}),"script"}),support.createHTMLDocument=((body=document.implementation.createHTMLDocument("").body).innerHTML="<form></form><form></form>",2===body.childNodes.length),jQuery.parseHTML=function(data,context,keepScripts){return"string"!=typeof data?[]:("boolean"==typeof context&&(keepScripts=context,context=!1),context||(support.createHTMLDocument?((base=(context=document.implementation.createHTMLDocument("")).createElement("base")).href=document.location.href,context.head.appendChild(base)):context=document),parsed=rsingleTag.exec(data),scripts=!keepScripts&&[],parsed?[context.createElement(parsed[1])]:(parsed=buildFragment([data],context,scripts),scripts&&scripts.length&&jQuery(scripts).remove(),jQuery.merge([],parsed.childNodes)));var base,parsed,scripts},jQuery.fn.load=function(url,params,callback){var selector,type,response,self=this,off=url.indexOf(" ");return off>-1&&(selector=stripAndCollapse(url.slice(off)),url=url.slice(0,off)),isFunction(params)?(callback=params,params=void 0):params&&"object"==typeof params&&(type="POST"),self.length>0&&jQuery.ajax({url:url,type:type||"GET",dataType:"html",data:params}).done(function(responseText){response=arguments,self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText)}).always(callback&&function(jqXHR,status){self.each(function(){callback.apply(this,response||[jqXHR.responseText,status,jqXHR])})}),this},jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(i,type){jQuery.fn[type]=function(fn){return this.on(type,fn)}}),jQuery.expr.pseudos.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length},jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};"static"===position&&(elem.style.position="relative"),curOffset=curElem.offset(),curCSSTop=jQuery.css(elem,"top"),curCSSLeft=jQuery.css(elem,"left"),("absolute"===position||"fixed"===position)&&(curCSSTop+curCSSLeft).indexOf("auto")>-1?(curTop=(curPosition=curElem.position()).top,curLeft=curPosition.left):(curTop=parseFloat(curCSSTop)||0,curLeft=parseFloat(curCSSLeft)||0),isFunction(options)&&(options=options.call(elem,i,jQuery.extend({},curOffset))),null!=options.top&&(props.top=options.top-curOffset.top+curTop),null!=options.left&&(props.left=options.left-curOffset.left+curLeft),"using"in options?options.using.call(elem,props):curElem.css(props)}},jQuery.fn.extend({offset:function(options){if(arguments.length)return void 0===options?this:this.each(function(i){jQuery.offset.setOffset(this,options,i)});var rect,win,elem=this[0];return elem?elem.getClientRects().length?(rect=elem.getBoundingClientRect(),win=elem.ownerDocument.defaultView,{top:rect.top+win.pageYOffset,left:rect.left+win.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var offsetParent,offset,doc,elem=this[0],parentOffset={top:0,left:0};if("fixed"===jQuery.css(elem,"position"))offset=elem.getBoundingClientRect();else{for(offset=this.offset(),doc=elem.ownerDocument,offsetParent=elem.offsetParent||doc.documentElement;offsetParent&&(offsetParent===doc.body||offsetParent===doc.documentElement)&&"static"===jQuery.css(offsetParent,"position");)offsetParent=offsetParent.parentNode;offsetParent&&offsetParent!==elem&&1===offsetParent.nodeType&&((parentOffset=jQuery(offsetParent).offset()).top+=jQuery.css(offsetParent,"borderTopWidth",!0),parentOffset.left+=jQuery.css(offsetParent,"borderLeftWidth",!0))}return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",!0),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){for(var offsetParent=this.offsetParent;offsetParent&&"static"===jQuery.css(offsetParent,"position");)offsetParent=offsetParent.offsetParent;return offsetParent||documentElement})}}),jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top="pageYOffset"===prop;jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win;if(isWindow(elem)?win=elem:9===elem.nodeType&&(win=elem.defaultView),void 0===val)return win?win[prop]:elem[method];win?win.scrollTo(top?win.pageXOffset:val,top?val:win.pageYOffset):elem[method]=val},method,val,arguments.length)}}),jQuery.each(["top","left"],function(i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed)return computed=curCSS(elem,prop),rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed})}),jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||"boolean"!=typeof margin),extra=defaultExtra||(!0===margin||!0===value?"margin":"border");return access(this,function(elem,type,value){var doc;return isWindow(elem)?0===funcName.indexOf("outer")?elem["inner"+name]:elem.document.documentElement["client"+name]:9===elem.nodeType?(doc=elem.documentElement,Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name])):void 0===value?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra)},type,chainable?margin:void 0,chainable)}})}),jQuery.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name)}}),jQuery.fn.extend({hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver)}}),jQuery.fn.extend({bind:function(types,data,fn){return this.on(types,null,data,fn)},unbind:function(types,fn){return this.off(types,null,fn)},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn)},undelegate:function(selector,types,fn){return 1===arguments.length?this.off(selector,"**"):this.off(types,selector||"**",fn)}}),jQuery.proxy=function(fn,context){var tmp,args,proxy;if("string"==typeof context&&(tmp=fn[context],context=fn,fn=tmp),isFunction(fn))return args=slice.call(arguments,2),(proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)))}).guid=fn.guid=fn.guid||jQuery.guid++,proxy},jQuery.holdReady=function(hold){hold?jQuery.readyWait++:jQuery.ready(!0)},jQuery.isArray=Array.isArray,jQuery.parseJSON=JSON.parse,jQuery.nodeName=nodeName,jQuery.isFunction=isFunction,jQuery.isWindow=isWindow,jQuery.camelCase=camelCase,jQuery.type=toType,jQuery.now=Date.now,jQuery.isNumeric=function(obj){var type=jQuery.type(obj);return("number"===type||"string"===type)&&!isNaN(obj-parseFloat(obj))},"function"==typeof define&&define.amd&&define("jquery",[],function(){return jQuery});var _jQuery=window.jQuery,_$=window.$;return jQuery.noConflict=function(deep){return window.$===jQuery&&(window.$=_$),deep&&window.jQuery===jQuery&&(window.jQuery=_jQuery),jQuery},noGlobal||(window.jQuery=window.$=jQuery),jQuery}),function(root,factory){"function"==typeof define&&define.amd?define(["moment"],factory):"object"==typeof module&&module.exports?module.exports=factory(require("moment")):factory(root.moment)}(this,function(moment){var cachedGuess,zones={},links={},names={},guesses={},momentVersion=moment.version.split("."),major=+momentVersion[0],minor=+momentVersion[1];function charCodeToInt(charCode){return charCode>96?charCode-87:charCode>64?charCode-29:charCode-48}function unpackBase60(string){var i=0,parts=string.split("."),whole=parts[0],fractional=parts[1]||"",multiplier=1,out=0,sign=1;for(45===string.charCodeAt(0)&&(i=1,sign=-1);i<whole.length;i++)out=60*out+charCodeToInt(whole.charCodeAt(i));for(i=0;i<fractional.length;i++)multiplier/=60,out+=charCodeToInt(fractional.charCodeAt(i))*multiplier;return out*sign}function arrayToInt(array){for(var i=0;i<array.length;i++)array[i]=unpackBase60(array[i])}function mapIndices(source,indices){var i,out=[];for(i=0;i<indices.length;i++)out[i]=source[indices[i]];return out}function unpack(string){var data=string.split("|"),offsets=data[2].split(" "),indices=data[3].split(""),untils=data[4].split(" ");return arrayToInt(offsets),arrayToInt(indices),arrayToInt(untils),function(array,length){for(var i=0;i<length;i++)array[i]=Math.round((array[i-1]||0)+6e4*array[i]);array[length-1]=1/0}(untils,indices.length),{name:data[0],abbrs:mapIndices(data[1].split(" "),indices),offsets:mapIndices(offsets,indices),untils:untils,population:0|data[5]}}function Zone(packedString){packedString&&this._set(unpack(packedString))}function OffsetAt(at){var timeString=at.toTimeString(),abbr=timeString.match(/\([a-z ]+\)/i);"GMT"===(abbr=abbr&&abbr[0]?(abbr=abbr[0].match(/[A-Z]/g))?abbr.join(""):void 0:(abbr=timeString.match(/[A-Z]{3,5}/g))?abbr[0]:void 0)&&(abbr=void 0),this.at=+at,this.abbr=abbr,this.offset=at.getTimezoneOffset()}function ZoneScore(zone){this.zone=zone,this.offsetScore=0,this.abbrScore=0}function findChange(low,high){for(var mid,diff;diff=6e4*((high.at-low.at)/12e4|0);)(mid=new OffsetAt(new Date(low.at+diff))).offset===low.offset?low=mid:high=mid;return low}function sortZoneScores(a,b){return a.offsetScore!==b.offsetScore?a.offsetScore-b.offsetScore:a.abbrScore!==b.abbrScore?a.abbrScore-b.abbrScore:b.zone.population-a.zone.population}function addToGuesses(name,offsets){var i,offset;for(arrayToInt(offsets),i=0;i<offsets.length;i++)offset=offsets[i],guesses[offset]=guesses[offset]||{},guesses[offset][name]=!0}function guessesForUserOffsets(offsets){var i,j,guessesOffset,offsetsLength=offsets.length,filteredGuesses={},out=[];for(i=0;i<offsetsLength;i++)for(j in guessesOffset=guesses[offsets[i].offset]||{})guessesOffset.hasOwnProperty(j)&&(filteredGuesses[j]=!0);for(i in filteredGuesses)filteredGuesses.hasOwnProperty(i)&&out.push(names[i]);return out}function rebuildGuess(){try{var intlName=Intl.DateTimeFormat().resolvedOptions().timeZone;if(intlName&&intlName.length>3){var name=names[normalizeName(intlName)];if(name)return name;logError("Moment Timezone found "+intlName+" from the Intl api, but did not have that data loaded.")}}catch(e){}var zoneScore,i,j,offsets=function(){var change,next,i,startYear=(new Date).getFullYear()-2,last=new OffsetAt(new Date(startYear,0,1)),offsets=[last];for(i=1;i<48;i++)(next=new OffsetAt(new Date(startYear,i,1))).offset!==last.offset&&(change=findChange(last,next),offsets.push(change),offsets.push(new OffsetAt(new Date(change.at+6e4)))),last=next;for(i=0;i<4;i++)offsets.push(new OffsetAt(new Date(startYear+i,0,1))),offsets.push(new OffsetAt(new Date(startYear+i,6,1)));return offsets}(),offsetsLength=offsets.length,guesses=guessesForUserOffsets(offsets),zoneScores=[];for(i=0;i<guesses.length;i++){for(zoneScore=new ZoneScore(getZone(guesses[i]),offsetsLength),j=0;j<offsetsLength;j++)zoneScore.scoreOffsetAt(offsets[j]);zoneScores.push(zoneScore)}return zoneScores.sort(sortZoneScores),zoneScores.length>0?zoneScores[0].zone.name:void 0}function normalizeName(name){return(name||"").toLowerCase().replace(/\//g,"_")}function addZone(packed){var i,name,split,normalized;for("string"==typeof packed&&(packed=[packed]),i=0;i<packed.length;i++)normalized=normalizeName(name=(split=packed[i].split("|"))[0]),zones[normalized]=packed[i],names[normalized]=name,addToGuesses(normalized,split[2].split(" "))}function getZone(name,caller){name=normalizeName(name);var link,zone=zones[name];return zone instanceof Zone?zone:"string"==typeof zone?(zone=new Zone(zone),zones[name]=zone,zone):links[name]&&caller!==getZone&&(link=getZone(links[name],getZone))?((zone=zones[name]=new Zone)._set(link),zone.name=names[name],zone):null}function addLink(aliases){var i,alias,normal0,normal1;for("string"==typeof aliases&&(aliases=[aliases]),i=0;i<aliases.length;i++)normal0=normalizeName((alias=aliases[i].split("|"))[0]),normal1=normalizeName(alias[1]),links[normal0]=normal1,names[normal0]=alias[0],links[normal1]=normal0,names[normal1]=alias[1]}function loadData(data){addZone(data.zones),addLink(data.links),tz.dataVersion=data.version}function needsOffset(m){var isUnixTimestamp="X"===m._f||"x"===m._f;return!(!m._a||void 0!==m._tzm||isUnixTimestamp)}function logError(message){"undefined"!=typeof console&&"function"==typeof console.error&&console.error(message)}function tz(input){var args=Array.prototype.slice.call(arguments,0,-1),name=arguments[arguments.length-1],zone=getZone(name),out=moment.utc.apply(null,args);return zone&&!moment.isMoment(input)&&needsOffset(out)&&out.add(zone.parse(out),"minutes"),out.tz(name),out}(major<2||2===major&&minor<6)&&logError("Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js "+moment.version+". See momentjs.com"),Zone.prototype={_set:function(unpacked){this.name=unpacked.name,this.abbrs=unpacked.abbrs,this.untils=unpacked.untils,this.offsets=unpacked.offsets,this.population=unpacked.population},_index:function(timestamp){var i,target=+timestamp,untils=this.untils;for(i=0;i<untils.length;i++)if(target<untils[i])return i},parse:function(timestamp){var offset,offsetNext,offsetPrev,i,target=+timestamp,offsets=this.offsets,untils=this.untils,max=untils.length-1;for(i=0;i<max;i++)if(offset=offsets[i],offsetNext=offsets[i+1],offsetPrev=offsets[i?i-1:i],offset<offsetNext&&tz.moveAmbiguousForward?offset=offsetNext:offset>offsetPrev&&tz.moveInvalidForward&&(offset=offsetPrev),target<untils[i]-6e4*offset)return offsets[i];return offsets[max]},abbr:function(mom){return this.abbrs[this._index(mom)]},offset:function(mom){return logError("zone.offset has been deprecated in favor of zone.utcOffset"),this.offsets[this._index(mom)]},utcOffset:function(mom){return this.offsets[this._index(mom)]}},ZoneScore.prototype.scoreOffsetAt=function(offsetAt){this.offsetScore+=Math.abs(this.zone.utcOffset(offsetAt.at)-offsetAt.offset),this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g,"")!==offsetAt.abbr&&this.abbrScore++},tz.version="0.5.17",tz.dataVersion="",tz._zones=zones,tz._links=links,tz._names=names,tz.add=addZone,tz.link=addLink,tz.load=loadData,tz.zone=getZone,tz.zoneExists=function zoneExists(name){return zoneExists.didShowError||(zoneExists.didShowError=!0,logError("moment.tz.zoneExists('"+name+"') has been deprecated in favor of !moment.tz.zone('"+name+"')")),!!getZone(name)},tz.guess=function(ignoreCache){return cachedGuess&&!ignoreCache||(cachedGuess=rebuildGuess()),cachedGuess},tz.names=function(){var i,out=[];for(i in names)names.hasOwnProperty(i)&&(zones[i]||zones[links[i]])&&names[i]&&out.push(names[i]);return out.sort()},tz.Zone=Zone,tz.unpack=unpack,tz.unpackBase60=unpackBase60,tz.needsOffset=needsOffset,tz.moveInvalidForward=!0,tz.moveAmbiguousForward=!1;var old,fn=moment.fn;function abbrWrap(old){return function(){return this._z?this._z.abbr(this):old.call(this)}}moment.tz=tz,moment.defaultZone=null,moment.updateOffset=function(mom,keepTime){var offset,zone=moment.defaultZone;void 0===mom._z&&(zone&&needsOffset(mom)&&!mom._isUTC&&(mom._d=moment.utc(mom._a)._d,mom.utc().add(zone.parse(mom),"minutes")),mom._z=zone),mom._z&&(offset=mom._z.utcOffset(mom),Math.abs(offset)<16&&(offset/=60),void 0!==mom.utcOffset?mom.utcOffset(-offset,keepTime):mom.zone(offset,keepTime))},fn.tz=function(name,keepTime){return name?(this._z=getZone(name),this._z?moment.updateOffset(this,keepTime):logError("Moment Timezone has no data for "+name+". See http://momentjs.com/timezone/docs/#/data-loading/."),this):this._z?this._z.name:void 0},fn.zoneName=abbrWrap(fn.zoneName),fn.zoneAbbr=abbrWrap(fn.zoneAbbr),fn.utc=(old=fn.utc,function(){return this._z=null,old.apply(this,arguments)}),moment.tz.setDefault=function(name){return(major<2||2===major&&minor<9)&&logError("Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js "+moment.version+"."),moment.defaultZone=name?getZone(name):null,moment};var momentProperties=moment.momentProperties;return"[object Array]"===Object.prototype.toString.call(momentProperties)?(momentProperties.push("_z"),momentProperties.push("_a")):momentProperties&&(momentProperties._z=null),loadData({version:"2018e",zones:["Africa/Abidjan|LMT GMT|g.8 0|01|-2ldXH.Q|48e5","Africa/Accra|LMT GMT +0020|.Q 0 -k|012121212121212121212121212121212121212121212121|-26BbX.8 6tzX.8 MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE 1BAk MnE 1C0k MnE 1BAk MnE 1BAk MnE|41e5","Africa/Nairobi|LMT EAT +0230 +0245|-2r.g -30 -2u -2J|01231|-1F3Cr.g 3Dzr.g okMu MFXJ|47e5","Africa/Algiers|PMT WET WEST CET CEST|-9.l 0 -10 -10 -20|0121212121212121343431312123431213|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 DA0 Imo0 rd0 De0 9Xz0 1fb0 1ap0 16K0 2yo0 mEp0 hwL0 jxA0 11A0 dDd0 17b0 11B0 1cN0 2Dy0 1cN0 1fB0 1cL0|26e5","Africa/Lagos|LMT WAT|-d.A -10|01|-22y0d.A|17e6","Africa/Bissau|LMT -01 GMT|12.k 10 0|012|-2ldX0 2xoo0|39e4","Africa/Maputo|LMT CAT|-2a.k -20|01|-2GJea.k|26e5","Africa/Cairo|EET EEST|-20 -30|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1bIO0 vb0 1ip0 11z0 1iN0 1nz0 12p0 1pz0 10N0 1pz0 16p0 1jz0 s3d0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1WL0 rd0 1Rz0 wp0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1qL0 Xd0 1oL0 11d0 1oL0 11d0 1pb0 11d0 1oL0 11d0 1oL0 11d0 1ny0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 WL0 1qN0 Rb0 1wp0 On0 1zd0 Lz0 1EN0 Fb0 c10 8n0 8Nd0 gL0 e10 mn0|15e6","Africa/Casablanca|LMT WET WEST CET|u.k 0 -10 -10|0121212121212121213121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2gMnt.E 130Lt.E rb0 Dd0 dVb0 b6p0 TX0 EoB0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4mn0 SyN0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 Rc0 11A0 e00 e00 U00 11A0 8o0 e00 11A0 11A0 5A0 e00 17c0 1fA0 1a00 1a00 1fA0 17c0 1io0 14o0 1lc0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1lc0 14o0 1fA0|32e5","Africa/Ceuta|WET WEST CET CEST|0 -10 -10 -20|010101010101010101010232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-25KN0 11z0 drd0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1y7o0 LL0 gnd0 rz0 43d0 AL0 1Nd0 XX0 1Cp0 pz0 dEp0 4VB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|85e3","Africa/El_Aaiun|LMT -01 WET WEST|Q.M 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1rDz7.c 1GVA7.c 6L0 AL0 1Nd0 XX0 1Cp0 pz0 1cBB0 AL0 1Nd0 wn0 1FB0 Db0 1zd0 Lz0 1Nf0 wM0 co0 go0 1o00 s00 dA0 vc0 11A0 A00 e00 y00 11A0 uM0 e00 Dc0 11A0 s00 e00 IM0 WM0 mo0 gM0 LA0 WM0 jA0 e00 Rc0 11A0 e00 e00 U00 11A0 8o0 e00 11A0 11A0 5A0 e00 17c0 1fA0 1a00 1a00 1fA0 17c0 1io0 14o0 1lc0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1lc0 14o0 1fA0|20e4","Africa/Johannesburg|SAST SAST SAST|-1u -20 -30|012121|-2GJdu 1Ajdu 1cL0 1cN0 1cL0|84e5","Africa/Juba|LMT CAT CAST EAT|-26.s -20 -30 -30|01212121212121212121212121212121213|-1yW26.s 1zK06.s 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0","Africa/Khartoum|LMT CAT CAST EAT|-2a.8 -20 -30 -30|012121212121212121212121212121212131|-1yW2a.8 1zK0a.8 16L0 1iN0 17b0 1jd0 17b0 1ip0 17z0 1i10 17X0 1hB0 18n0 1hd0 19b0 1gp0 19z0 1iN0 17b0 1ip0 17z0 1i10 18n0 1hd0 18L0 1gN0 19b0 1gp0 19z0 1iN0 17z0 1i10 17X0 yGd0 HjL0|51e5","Africa/Monrovia|MMT MMT GMT|H.8 I.u 0|012|-23Lzg.Q 28G01.m|11e5","Africa/Ndjamena|LMT WAT WAST|-10.c -10 -20|0121|-2le10.c 2J3c0.c Wn0|13e5","Africa/Sao_Tome|LMT GMT WAT|A.J 0 -10|012|-2le00 4i6N0","Africa/Tripoli|LMT CET CEST EET|-Q.I -10 -20 -20|012121213121212121212121213123123|-21JcQ.I 1hnBQ.I vx0 4iP0 xx0 4eN0 Bb0 7ip0 U0n0 A10 1db0 1cN0 1db0 1dd0 1db0 1eN0 1bb0 1e10 1cL0 1c10 1db0 1dd0 1db0 1cN0 1db0 1q10 fAn0 1ep0 1db0 AKq0 TA0 1o00|11e5","Africa/Tunis|PMT CET CEST|-9.l -10 -20|0121212121212121212121212121212121|-2nco9.l 18pa9.l 1qM0 DA0 3Tc0 11B0 1ze0 WM0 7z0 3d0 14L0 1cN0 1f90 1ar0 16J0 1gXB0 WM0 1rA0 11c0 nwo0 Ko0 1cM0 1cM0 1rA0 10M0 zuM0 10N0 1aN0 1qM0 WM0 1qM0 11A0 1o00|20e5","Africa/Windhoek|+0130 SAST SAST CAT WAT|-1u -20 -30 -20 -10|01213434343434343434343434343434343434343434343434343|-2GJdu 1Ajdu 1cL0 1SqL0 9Io0 16P0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0|32e4","America/Adak|NST NWT NPT BST BDT AHST HST HDT|b0 a0 a0 b0 a0 a0 a0 90|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|326","America/Anchorage|AST AWT APT AHST AHDT YST AKST AKDT|a0 90 90 a0 90 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T00 8wX0 iA0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cm0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|30e4","America/Port_of_Spain|LMT AST|46.4 40|01|-2kNvR.U|43e3","America/Araguaina|LMT -03 -02|3c.M 30 20|0121212121212121212121212121212121212121212121212121|-2glwL.c HdKL.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 ny10 Lz0|14e4","America/Argentina/Buenos_Aires|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 A4p0 uL0 1qN0 WL0","America/Argentina/Catamarca|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 7B0 8zb0 uL0","America/Argentina/Cordoba|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323132323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0 1qN0 WL0","America/Argentina/Jujuy|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1ze0 TX0 1ld0 WK0 1wp0 TX0 A4p0 uL0","America/Argentina/La_Rioja|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0","America/Argentina/Mendoza|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232312121321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1u20 SL0 1vd0 Tb0 1wp0 TW0 ri10 Op0 7TX0 uL0","America/Argentina/Rio_Gallegos|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rlB0 7B0 8zb0 uL0","America/Argentina/Salta|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231323232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 A4p0 uL0","America/Argentina/San_Juan|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323231232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Qn0 qO0 16n0 Rb0 1wp0 TX0 rld0 m10 8lb0 uL0","America/Argentina/San_Luis|CMT -04 -03 -02|4g.M 40 30 20|012121212121212121212121212121212121212121232323121212321212|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 XX0 1q20 SL0 AN0 vDb0 m10 8lb0 8L0 jd0 1qN0 WL0 1qN0","America/Argentina/Tucuman|CMT -04 -03 -02|4g.M 40 30 20|0121212121212121212121212121212121212121212323232313232123232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wq0 Ra0 1wp0 TX0 rlB0 4N0 8BX0 uL0 1qN0 WL0","America/Argentina/Ushuaia|CMT -04 -03 -02|4g.M 40 30 20|01212121212121212121212121212121212121212123232323232321232|-20UHH.c pKnH.c Mn0 1iN0 Tb0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 1C10 LX0 1C10 LX0 1C10 LX0 1C10 Mn0 MN0 2jz0 MN0 4lX0 u10 5Lb0 1pB0 Fnz0 u10 uL0 1vd0 SL0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 zvd0 Bz0 1tB0 TX0 1wp0 Rb0 1wp0 Rb0 1wp0 TX0 rkN0 8p0 8zb0 uL0","America/Curacao|LMT -0430 AST|4z.L 4u 40|012|-2kV7o.d 28KLS.d|15e4","America/Asuncion|AMT -04 -03|3O.E 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-1x589.k 1DKM9.k 3CL0 3Dd0 10L0 1pB0 10n0 1pB0 10n0 1pB0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1dd0 1cL0 1dd0 1cL0 1dd0 1db0 1dd0 1cL0 1lB0 14n0 1dd0 1cL0 1fd0 WL0 1rd0 1aL0 1dB0 Xz0 1qp0 Xb0 1qN0 10L0 1rB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 WN0 1qL0 11B0 1nX0 1ip0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 TX0 1tB0 19X0 1a10 1fz0 1a10 1fz0 1cN0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1ip0 17b0 1ip0 17b0 1ip0|28e5","America/Atikokan|CST CDT CWT CPT EST|60 50 50 50 50|0101234|-25TQ0 1in0 Rnb0 3je0 8x30 iw0|28e2","America/Bahia_Banderas|LMT MST CST PST MDT CDT|71 70 60 80 60 50|0121212131414141414141414141414141414152525252525252525252525252525252525252525252525252525252|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nW0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|84e3","America/Bahia|LMT -03 -02|2y.4 30 20|01212121212121212121212121212121212121212121212121212121212121|-2glxp.U HdLp.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 l5B0 Rb0|27e5","America/Barbados|LMT BMT AST ADT|3W.t 3W.t 40 30|01232323232|-1Q0I1.v jsM0 1ODC1.v IL0 1ip0 17b0 1ip0 17b0 1ld0 13b0|28e4","America/Belem|LMT -03 -02|3d.U 30 20|012121212121212121212121212121|-2glwK.4 HdKK.4 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|20e5","America/Belize|LMT CST -0530 CDT|5Q.M 60 5u 50|01212121212121212121212121212121212121212121212121213131|-2kBu7.c fPA7.c Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1wou Rbu 1zcu Onu 1zcu Onu 1zcu Rbu 1wou Rbu 1f0Mu qn0 lxB0 mn0|57e3","America/Blanc-Sablon|AST ADT AWT APT|40 30 30 30|010230|-25TS0 1in0 UGp0 8x50 iu0|11e2","America/Boa_Vista|LMT -04 -03|42.E 40 30|0121212121212121212121212121212121|-2glvV.k HdKV.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 smp0 WL0 1tB0 2L0|62e2","America/Bogota|BMT -05 -04|4U.g 50 40|0121|-2eb73.I 38yo3.I 2en0|90e5","America/Boise|PST PDT MST MWT MPT MDT|80 70 70 60 60 60|0101023425252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-261q0 1nX0 11B0 1nX0 8C10 JCL0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 Dd0 1Kn0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e4","America/Cambridge_Bay|-00 MST MWT MPT MDDT MDT CST CDT EST|0 70 60 60 50 60 60 50 50|0123141515151515151515151515151515151515151515678651515151515151515151515151515151515151515151515151515151515151515151515151|-21Jc0 RO90 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11A0 1nX0 2K0 WQ0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e2","America/Campo_Grande|LMT -04 -03|3C.s 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwl.w HdLl.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0 IL0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1Kp0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0|77e4","America/Cancun|LMT CST EST EDT CDT|5L.4 60 50 40 50|0123232341414141414141414141414141414141412|-1UQG0 2q2o0 yLB0 1lb0 14p0 1lb0 14p0 Lz0 xB0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 Dd0|63e4","America/Caracas|CMT -0430 -04|4r.E 4u 40|01212|-2kV7w.k 28KM2.k 1IwOu kqo0|29e5","America/Cayenne|LMT -04 -03|3t.k 40 30|012|-2mrwu.E 2gWou.E|58e3","America/Panama|CMT EST|5j.A 50|01|-2uduE.o|15e5","America/Chicago|CST CDT EST CWT CPT|60 50 50 50 50|01010101010101010101010101010101010102010101010103401010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 1wp0 TX0 WN0 1qL0 1cN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 11B0 1Hz0 14p0 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|92e5","America/Chihuahua|LMT MST CST CDT MDT|74.k 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|81e4","America/Costa_Rica|SJMT CST CDT|5A.d 60 50|0121212121|-1Xd6n.L 2lu0n.L Db0 1Kp0 Db0 pRB0 15b0 1kp0 mL0|12e5","America/Creston|MST PST|70 80|010|-29DR0 43B0|53e2","America/Cuiaba|LMT -04 -03|3I.k 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwf.E HdLf.E 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 4a10 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0 IL0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1Kp0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0|54e4","America/Danmarkshavn|LMT -03 -02 GMT|1e.E 30 20 0|01212121212121212121212121212121213|-2a5WJ.k 2z5fJ.k 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 DC0|8","America/Dawson_Creek|PST PDT PWT PPT MST|80 70 70 70 70|0102301010101010101010101010101010101010101010101010101014|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 ML0|12e3","America/Dawson|YST YDT YWT YPT YDDT PST PDT|90 80 80 80 70 80 70|0101023040565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 jrA0 fNd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|13e2","America/Denver|MST MDT MWT MPT|70 60 60 60|01010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 11B0 1qL0 WN0 mn0 Ord0 8x20 ix0 LCN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e5","America/Detroit|LMT CST EST EWT EPT EDT|5w.b 60 50 40 40 40|012342525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2Cgir.N peqr.N 156L0 8x40 iv0 6fd0 11z0 XQp0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e5","America/Edmonton|LMT MST MDT MWT MPT|7x.Q 70 60 60 60|01212121212121341212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2yd4q.8 shdq.8 1in0 17d0 hz0 2dB0 1fz0 1a10 11z0 1qN0 WL0 1qN0 11z0 IGN0 8x20 ix0 3NB0 11z0 LFB0 1cL0 3Cp0 1cL0 66N0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|10e5","America/Eirunepe|LMT -05 -04|4D.s 50 40|0121212121212121212121212121212121|-2glvk.w HdLk.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0 yTd0 d5X0|31e3","America/El_Salvador|LMT CST CDT|5U.M 60 50|012121|-1XiG3.c 2Fvc3.c WL0 1qN0 WL0|11e5","America/Tijuana|LMT MST PST PDT PWT PPT|7M.4 70 80 70 70 70|012123245232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQE0 4PX0 8mM0 8lc0 SN0 1cL0 pHB0 83r0 zI0 5O10 1Rz0 cOO0 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 BUp0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|20e5","America/Fort_Nelson|PST PDT PWT PPT MST|80 70 70 70 70|01023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010104|-25TO0 1in0 UGp0 8x10 iy0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0|39e2","America/Fort_Wayne|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010101023010101010101010101040454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 QI10 Db0 RB0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 5Tz0 1o10 qLb0 1cL0 1cN0 1cL0 1qhd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Fortaleza|LMT -03 -02|2y 30 20|0121212121212121212121212121212121212121|-2glxq HdLq 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 5z0 2mN0 On0|34e5","America/Glace_Bay|LMT AST ADT AWT APT|3X.M 40 30 30 30|012134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsI0.c CwO0.c 1in0 UGp0 8x50 iu0 iq10 11z0 Jg10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3","America/Godthab|LMT -03 -02|3q.U 30 20|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5Ux.4 2z5dx.4 19U0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e3","America/Goose_Bay|NST NDT NST NDT NWT NPT AST ADT ADDT|3u.Q 2u.Q 3u 2u 2u 2u 40 30 20|010232323232323245232323232323232323232323232323232323232326767676767676767676767676767676767676767676768676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-25TSt.8 1in0 DXb0 2HbX.8 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 S10 g0u 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|76e2","America/Grand_Turk|KMT EST EDT AST|57.a 50 40 40|01212121212121212121212121212121212121212121212121212121212121212121212121232121212121212121212121212121212121212121|-2l1uQ.O 2HHBQ.O 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 5Ip0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|37e2","America/Guatemala|LMT CST CDT|62.4 60 50|0121212121|-24KhV.U 2efXV.U An0 mtd0 Nz0 ifB0 17b0 zDB0 11z0|13e5","America/Guayaquil|QMT -05 -04|5e 50 40|0121|-1yVSK 2uILK rz0|27e5","America/Guyana|LMT -0345 -03 -04|3Q.E 3J 30 40|0123|-2dvU7.k 2r6LQ.k Bxbf|80e4","America/Halifax|LMT AST ADT AWT APT|4e.o 40 30 30 30|0121212121212121212121212121212121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsHJ.A xzzJ.A 1db0 3I30 1in0 3HX0 IL0 1E10 ML0 1yN0 Pb0 1Bd0 Mn0 1Bd0 Rz0 1w10 Xb0 1w10 LX0 1w10 Xb0 1w10 Lz0 1C10 Jz0 1E10 OL0 1yN0 Un0 1qp0 Xb0 1qp0 11X0 1w10 Lz0 1HB0 LX0 1C10 FX0 1w10 Xb0 1qp0 Xb0 1BB0 LX0 1td0 Xb0 1qp0 Xb0 Rf0 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 3Qp0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 6i10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|39e4","America/Havana|HMT CST CDT|5t.A 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Meuu.o 72zu.o ML0 sld0 An0 1Nd0 Db0 1Nd0 An0 6Ep0 An0 1Nd0 An0 JDd0 Mn0 1Ap0 On0 1fd0 11X0 1qN0 WL0 1wp0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 14n0 1ld0 14L0 1kN0 15b0 1kp0 1cL0 1cN0 1fz0 1a10 1fz0 1fB0 11z0 14p0 1nX0 11B0 1nX0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 1a10 1in0 1a10 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 17c0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 11A0 6i00 Rc0 1wo0 U00 1tA0 Rc0 1wo0 U00 1wo0 U00 1zc0 U00 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0|21e5","America/Hermosillo|LMT MST CST PST MDT|7n.Q 70 60 80 60|0121212131414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0|64e4","America/Indiana/Knox|CST CDT CWT CPT EST|60 50 50 50 50|0101023010101010101010101010101010101040101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 3NB0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 3Cn0 8wp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 z8o0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Indiana/Marengo|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010104545454545414545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 dyN0 11z0 6fd0 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1e6p0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Indiana/Petersburg|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010104010101010101010101010141014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 njX0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 3Fb0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 19co0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Indiana/Tell_City|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Indiana/Vevay|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|010102304545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 kPB0 Awn0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1lnd0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Indiana/Vincennes|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010454541014545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 g0p0 11z0 1o10 11z0 1qL0 WN0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 caL0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Indiana/Winamac|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|01010230101010101010101010101010101010454541054545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 jrz0 1cL0 1cN0 1cL0 1qhd0 1o00 Rd0 1za0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Inuvik|-00 PST PDDT MST MDT|0 80 60 70 60|0121343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-FnA0 tWU0 1fA0 wPe0 2pz0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|35e2","America/Iqaluit|-00 EWT EPT EST EDDT EDT CST CDT|0 40 40 50 30 40 60 50|01234353535353535353535353535353535353535353567353535353535353535353535353535353535353535353535353535353535353535353535353|-16K00 7nX0 iv0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|67e2","America/Jamaica|KMT EST EDT|57.a 50 40|0121212121212121212121|-2l1uQ.O 2uM1Q.O 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0|94e4","America/Juneau|PST PWT PPT PDT YDT YST AKST AKDT|80 70 70 70 80 90 90 80|01203030303030303030303030403030356767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cM0 1cM0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|33e3","America/Kentucky/Louisville|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101010102301010101010101010101010101454545454545414545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 3Fd0 Nb0 LPd0 11z0 RB0 8x30 iw0 Bb0 10N0 2bB0 8in0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 xz0 gso0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1VA0 LA0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Kentucky/Monticello|CST CDT CWT CPT EST EDT|60 50 50 50 50 40|0101023010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454545454|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 SWp0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/La_Paz|CMT BST -04|4w.A 3w.A 40|012|-1x37r.o 13b0|19e5","America/Lima|LMT -05 -04|58.A 50 40|0121212121212121|-2tyGP.o 1bDzP.o zX0 1aN0 1cL0 1cN0 1cL0 1PrB0 zX0 1O10 zX0 6Gp0 zX0 98p0 zX0|11e6","America/Los_Angeles|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 5Wp1 1VaX 3dA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|15e6","America/Maceio|LMT -03 -02|2m.Q 30 20|012121212121212121212121212121212121212121|-2glxB.8 HdLB.8 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 dMN0 Lz0 8Q10 WL0 1tB0 5z0 2mN0 On0|93e4","America/Managua|MMT CST EST CDT|5J.c 60 50 50|0121313121213131|-1quie.M 1yAMe.M 4mn0 9Up0 Dz0 1K10 Dz0 s3F0 1KH0 DB0 9In0 k8p0 19X0 1o30 11y0|22e5","America/Manaus|LMT -04 -03|40.4 40 30|01212121212121212121212121212121|-2glvX.U HdKX.U 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 dPB0 On0|19e5","America/Martinique|FFMT AST ADT|44.k 40 30|0121|-2mPTT.E 2LPbT.E 19X0|39e4","America/Matamoros|LMT CST CDT|6E 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|45e4","America/Mazatlan|LMT MST CST PST MDT|75.E 70 60 80 60|0121212131414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 otX0 gmN0 P2N0 13Vd0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|44e4","America/Menominee|CST CDT CWT CPT EST|60 50 50 50 50|01010230101041010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 1o10 11z0 LCN0 1fz0 6410 9Jb0 1cM0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|85e2","America/Merida|LMT CST EST CDT|5W.s 60 50 50|0121313131313131313131313131313131313131313131313131313131313131313131313131313131313131|-1UQG0 2q2o0 2hz0 wu30 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|11e5","America/Metlakatla|PST PWT PPT PDT AKST AKDT|80 70 70 70 90 80|0120303030303030303030303030303030454545454545454545454545454545454545454545454|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1hU10 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2","America/Mexico_City|LMT MST CST CDT CWT|6A.A 70 60 50 50|012121232324232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 gEn0 TX0 3xd0 Jb0 6zB0 SL0 e5d0 17b0 1Pff0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|20e6","America/Miquelon|LMT AST -03 -02|3I.E 40 30 20|012323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2mKkf.k 2LTAf.k gQ10 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|61e2","America/Moncton|EST AST ADT AWT APT|50 40 30 30 30|012121212121212121212134121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2IsH0 CwN0 1in0 zAo0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1Nd0 An0 1K10 Lz0 1zB0 NX0 1u10 Wn0 S20 8x50 iu0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14n1 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 ReX 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|64e3","America/Monterrey|LMT CST CDT|6F.g 60 50|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1UQG0 2FjC0 1nX0 i6p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0|41e5","America/Montevideo|LMT MMT -04 -03 -0330 -0230 -02 -0130|3I.P 3I.P 40 30 3u 2u 20 1u|012343434343434343434343435353636353636375363636363636363636363636363636363636363636363|-2tRUf.9 sVc0 8jcf.9 1db0 1dcu 1cLu 1dcu 1cLu ircu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu WLu 1fAu 1cLu 1o0u 11zu NAu 3jXu zXu Dq0u 19Xu pcu jz0 cm10 19X0 6tB0 1fbu 3o0u jX0 4vB0 xz0 3Cp0 mmu 1a10 IMu Db0 4c10 uL0 1Nd0 An0 1SN0 uL0 mp0 28L0 iPB0 un0 1SN0 xz0 1zd0 Lz0 1zd0 Rb0 1zd0 On0 1wp0 Rb0 s8p0 1fB0 1ip0 11z0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 14n0 1ld0 14n0 1ld0 14n0 1o10 11z0 1o10 11z0 1o10 11z0|17e5","America/Toronto|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101012301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 11Wu 1nzu 1fD0 WJ0 1wr0 Nb0 1Ap0 On0 1zd0 On0 1wp0 TX0 1tB0 TX0 1tB0 TX0 1tB0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 4kM0 8x40 iv0 1o10 11z0 1nX0 11z0 1o10 11z0 1o10 1qL0 11D0 1nX0 11B0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e5","America/Nassau|LMT EST EDT|59.u 50 40|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2kNuO.u 26XdO.u 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|24e4","America/New_York|EST EDT EWT EPT|50 40 40 40|01010101010101010101010101010101010101010101010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 11B0 1qL0 1a10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 RB0 8x40 iv0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|21e6","America/Nipigon|EST EDT EWT EPT|50 40 40 40|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TR0 1in0 Rnb0 3je0 8x40 iv0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|16e2","America/Nome|NST NWT NPT BST BDT YST AKST AKDT|b0 a0 a0 b0 a0 90 90 80|012034343434343434343434343434343456767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676767676|-17SX0 8wW0 iB0 Qlb0 52O0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cl0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|38e2","America/Noronha|LMT -02 -01|29.E 20 10|0121212121212121212121212121212121212121|-2glxO.k HdKO.k 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|30e2","America/North_Dakota/Beulah|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Oo0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/North_Dakota/Center|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101014545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/North_Dakota/New_Salem|MST MDT MWT MPT CST CDT|70 60 60 60 60 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101454545454545454545454545454545454545454545454545454545454545454545454|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14o0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","America/Ojinaga|LMT MST CST CDT MDT|6V.E 70 60 50 60|0121212323241414141414141414141414141414141414141414141414141414141414141414141414141414141|-1UQF0 deL0 8lc0 17c0 10M0 1dd0 2zQN0 1lb0 14p0 1lb0 14q0 1lb0 14p0 1nX0 11B0 1nX0 1fB0 WL0 1fB0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 U10 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3","America/Pangnirtung|-00 AST AWT APT ADDT ADT EDT EST CST CDT|0 40 30 30 20 30 40 50 60 50|012314151515151515151515151515151515167676767689767676767676767676767676767676767676767676767676767676767676767676767676767|-1XiM0 PnG0 8x50 iu0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1o00 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11C0 1nX0 11A0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|14e2","America/Paramaribo|LMT PMT PMT -0330 -03|3E.E 3E.Q 3E.A 3u 30|01234|-2nDUj.k Wqo0.c qanX.I 1yVXN.o|24e4","America/Phoenix|MST MDT MWT|70 60 60|01010202010|-261r0 1nX0 11B0 1nX0 SgN0 4Al1 Ap0 1db0 SWqX 1cL0|42e5","America/Port-au-Prince|PPMT EST EDT|4N 50 40|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-28RHb 2FnMb 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14q0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 i6n0 1nX0 11B0 1nX0 d430 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 3iN0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5","America/Rio_Branco|LMT -05 -04|4v.c 50 40|01212121212121212121212121212121|-2glvs.M HdLs.M 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0 d5X0|31e4","America/Porto_Velho|LMT -04 -03|4f.A 40 30|012121212121212121212121212121|-2glvI.o HdKI.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0|37e4","America/Puerto_Rico|AST AWT APT|40 30 30|0120|-17lU0 7XT0 iu0|24e5","America/Punta_Arenas|SMT -05 -04 -03|4G.K 50 40 30|0102021212121212121232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 blz0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0","America/Rainy_River|CST CDT CWT CPT|60 50 50 50|010123010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TQ0 1in0 Rnb0 3je0 8x30 iw0 19yN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|842","America/Rankin_Inlet|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313131313131313131313131313131313131313131313131313131313131313131|-vDc0 keu0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|26e2","America/Recife|LMT -03 -02|2j.A 30 20|0121212121212121212121212121212121212121|-2glxE.o HdLE.o 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 nsp0 WL0 1tB0 2L0 2pB0 On0|33e5","America/Regina|LMT MST MDT MWT MPT CST|6W.A 70 60 60 60 60|012121212121212121212121341212121212121212121212121215|-2AD51.o uHe1.o 1in0 s2L0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 66N0 1cL0 1cN0 19X0 1fB0 1cL0 1fB0 1cL0 1cN0 1cL0 M30 8x20 ix0 1ip0 1cL0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 3NB0 1cL0 1cN0|19e4","America/Resolute|-00 CST CDDT CDT EST|0 60 40 50 50|012131313131313131313131313131313131313131313431313131313431313131313131313131313131313131313131313131313131313131313131|-SnA0 GWS0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|229","America/Santarem|LMT -04 -03|3C.M 40 30|0121212121212121212121212121212|-2glwl.c HdLl.c 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 qe10 xb0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 NBd0|21e4","America/Santiago|SMT -05 -04 -03|4G.K 50 40 30|010202121212121212321232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-2q2jh.e fJAh.e 5knG.K 1Vzh.e jRAG.K 1pbh.e 11d0 1oL0 11d0 1oL0 11d0 1oL0 11d0 1pb0 11d0 nHX0 op0 9Bz0 jb0 1oN0 ko0 Qeo0 WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0|62e5","America/Santo_Domingo|SDMT EST EDT -0430 AST|4E 50 40 4u 40|01213131313131414|-1ttjk 1lJMk Mn0 6sp0 Lbu 1Cou yLu 1RAu wLu 1QMu xzu 1Q0u xXu 1PAu 13jB0 e00|29e5","America/Sao_Paulo|LMT -03 -02|36.s 30 20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-2glwR.w HdKR.w 1cc0 1e10 1bX0 Ezd0 So0 1vA0 Mn0 1BB0 ML0 1BB0 zX0 pTd0 PX0 2ep0 nz0 1C10 zX0 1C10 LX0 1C10 Mn0 H210 Rb0 1tB0 IL0 1Fd0 FX0 1EN0 FX0 1HB0 Lz0 1EN0 Lz0 1C10 IL0 1HB0 Db0 1HB0 On0 1zd0 On0 1zd0 Lz0 1zd0 Rb0 1wN0 Wn0 1tB0 Rb0 1tB0 WL0 1tB0 Rb0 1zd0 On0 1HB0 FX0 1C10 Lz0 1Ip0 HX0 1zd0 On0 1HB0 IL0 1wp0 On0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 Rb0 1zd0 Lz0 1C10 Lz0 1C10 On0 1zd0 On0 1zd0 On0 1zd0 On0 1HB0 FX0 1HB0 FX0 1HB0 IL0 1HB0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0 IL0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1HB0 FX0 1Kp0 FX0 1HB0 IL0 1EN0 FX0 1HB0 FX0 1HB0 IL0 1EN0|20e6","America/Scoresbysund|LMT -02 -01 +00|1r.Q 20 10 0|0121323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2a5Ww.8 2z5ew.8 1a00 1cK0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|452","America/Sitka|PST PWT PPT PDT YST AKST AKDT|80 70 70 70 90 90 80|01203030303030303030303030303030345656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-17T20 8x10 iy0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 co0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|90e2","America/St_Johns|NST NDT NST NDT NWT NPT NDDT|3u.Q 2u.Q 3u 2u 2u 2u 1u|01010101010101010101010101010101010102323232323232324523232323232323232323232323232323232323232323232323232323232323232323232323232323232326232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-28oit.8 14L0 1nB0 1in0 1gm0 Dz0 1JB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 19X0 1fB0 1cL0 1fB0 19X0 1fB0 19X0 10O0 eKX.8 19X0 1iq0 WL0 1qN0 WL0 1qN0 WL0 1tB0 TX0 1tB0 WL0 1qN0 WL0 1qN0 7UHu itu 1tB0 WL0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1tB0 WL0 1ld0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14n1 1lb0 14p0 1nW0 11C0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zcX Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4","America/Swift_Current|LMT MST MDT MWT MPT CST|7b.k 70 60 60 60 60|012134121212121212121215|-2AD4M.E uHdM.E 1in0 UGp0 8x20 ix0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 isN0 1cL0 3Cp0 1cL0 1cN0 11z0 1qN0 WL0 pMp0|16e3","America/Tegucigalpa|LMT CST CDT|5M.Q 60 50|01212121|-1WGGb.8 2ETcb.8 WL0 1qN0 WL0 GRd0 AL0|11e5","America/Thule|LMT AST ADT|4z.8 40 30|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a5To.Q 31NBo.Q 1cL0 1cN0 1cL0 1fB0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|656","America/Thunder_Bay|CST EST EWT EPT EDT|60 50 40 40 40|0123141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141414141|-2q5S0 1iaN0 8x40 iv0 XNB0 1cL0 1cN0 1fz0 1cN0 1cL0 3Cp0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|11e4","America/Vancouver|PST PDT PWT PPT|80 70 70 70|0102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-25TO0 1in0 UGp0 8x10 iy0 1o10 17b0 1ip0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e5","America/Whitehorse|YST YDT YWT YPT YDDT PST PDT|90 80 80 80 70 80 70|0101023040565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565656565|-25TN0 1in0 1o10 13V0 Ser0 8x00 iz0 LCL0 1fA0 3NA0 vrd0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|23e3","America/Winnipeg|CST CDT CWT CPT|60 50 50 50|010101023010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aIi0 WL0 3ND0 1in0 Jap0 Rb0 aCN0 8x30 iw0 1tB0 11z0 1ip0 11z0 1o10 11z0 1o10 11z0 1rd0 10L0 1op0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 1cL0 1cN0 11z0 6i10 WL0 6i10 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1o00 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1o00 11A0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|66e4","America/Yakutat|YST YWT YPT YDT AKST AKDT|90 80 80 80 90 80|01203030303030303030303030303030304545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-17T10 8x00 iz0 Vo10 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 cn0 10q0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|642","America/Yellowknife|-00 MST MWT MPT MDDT MDT|0 70 60 60 50 60|012314151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151515151|-1pdA0 hix0 8x20 ix0 LCL0 1fA0 zgO0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|19e3","Antarctica/Casey|-00 +08 +11|0 -80 -b0|01212121|-2q00 1DjS0 T90 40P0 KL0 blz0 3m10|10","Antarctica/Davis|-00 +07 +05|0 -70 -50|01012121|-vyo0 iXt0 alj0 1D7v0 VB0 3Wn0 KN0|70","Antarctica/DumontDUrville|-00 +10|0 -a0|0101|-U0o0 cfq0 bFm0|80","Antarctica/Macquarie|AEST AEDT -00 +11|-a0 -b0 0 -b0|0102010101010101010101010101010101010101010101010101010101010101010101010101010101010101013|-29E80 19X0 4SL0 1ayy0 Lvs0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0|1","Antarctica/Mawson|-00 +06 +05|0 -60 -50|012|-CEo0 2fyk0|60","Pacific/Auckland|NZMT NZST NZST NZDT|-bu -cu -c0 -d0|01020202020202020202020202023232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1GCVu Lz0 1tB0 11zu 1o0u 11zu 1o0u 11zu 1o0u 14nu 1lcu 14nu 1lcu 1lbu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1nXu 11Au 1qLu WMu 1qLu 11Au 1n1bu IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|14e5","Antarctica/Palmer|-00 -03 -04 -02|0 30 40 20|0121212121213121212121212121212121212121212121212121212121212121212121212121212121|-cao0 nD0 1vd0 SL0 1vd0 17z0 1cN0 1fz0 1cN0 1cL0 1cN0 asn0 Db0 jsN0 14N0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0|40","Antarctica/Rothera|-00 -03|0 30|01|gOo0|130","Antarctica/Syowa|-00 +03|0 -30|01|-vs00|20","Antarctica/Troll|-00 +00 +02|0 0 -20|01212121212121212121212121212121212121212121212121212121212121212121|1puo0 hd0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|40","Antarctica/Vostok|-00 +06|0 -60|01|-tjA0|25","Europe/Oslo|CET CEST|-10 -20|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2awM0 Qm0 W6o0 5pf0 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 wJc0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1qM0 WM0 zpc0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e4","Asia/Riyadh|LMT +03|-36.Q -30|01|-TvD6.Q|57e5","Asia/Almaty|LMT +05 +06 +07|-57.M -50 -60 -70|012323232323232323232321232323232323232323232323232|-1Pc57.M eUo7.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|15e5","Asia/Amman|LMT EET EEST|-2n.I -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1yW2n.I 1HiMn.I KL0 1oN0 11b0 1oN0 11b0 1pd0 1dz0 1cp0 11b0 1op0 11b0 fO10 1db0 1e10 1cL0 1cN0 1cL0 1cN0 1fz0 1pd0 10n0 1ld0 14n0 1hB0 15b0 1ip0 19X0 1cN0 1cL0 1cN0 17b0 1ld0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1So0 y00 1fc0 1dc0 1co0 1dc0 1cM0 1cM0 1cM0 1o00 11A0 1lc0 17c0 1cM0 1cM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 4bX0 Dd0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|25e5","Asia/Anadyr|LMT +12 +13 +14 +11|-bN.U -c0 -d0 -e0 -b0|01232121212121212121214121212121212121212121212121212121212141|-1PcbN.U eUnN.U 23CL0 1db0 2q10 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|13e3","Asia/Aqtau|LMT +04 +05 +06|-3l.4 -40 -50 -60|012323232323232323232123232312121212121212121212|-1Pc3l.4 eUnl.4 24PX0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|15e4","Asia/Aqtobe|LMT +04 +05 +06|-3M.E -40 -50 -60|0123232323232323232321232323232323232323232323232|-1Pc3M.E eUnM.E 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0|27e4","Asia/Ashgabat|LMT +04 +05 +06|-3R.w -40 -50 -60|0123232323232323232323212|-1Pc3R.w eUnR.w 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0|41e4","Asia/Atyrau|LMT +03 +05 +06 +04|-3r.I -30 -50 -60 -40|01232323232323232323242323232323232324242424242|-1Pc3r.I eUor.I 24PW0 2pX0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 2sp0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0","Asia/Baghdad|BMT +03 +04|-2V.A -30 -40|012121212121212121212121212121212121212121212121212121|-26BeV.A 2ACnV.A 11b0 1cp0 1dz0 1dd0 1db0 1cN0 1cp0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1de0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0 1dc0 1dc0 1cM0 1dc0 1cM0 1dc0 1cM0 1dc0|66e5","Asia/Qatar|LMT +04 +03|-3q.8 -40 -30|012|-21Jfq.8 27BXq.8|96e4","Asia/Baku|LMT +03 +04 +05|-3j.o -30 -40 -50|01232323232323232323232123232323232323232323232323232323232323232|-1Pc3j.o 1jUoj.o WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 9Je0 1o00 11z0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00|27e5","Asia/Bangkok|BMT +07|-6G.4 -70|01|-218SG.4|15e6","Asia/Barnaul|LMT +06 +07 +08|-5z -60 -70 -80|0123232323232323232323212323232321212121212121212121212121212121212|-21S5z pCnz 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 p90 LE0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0","Asia/Beirut|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-21aq0 1on0 1410 1db0 19B0 1in0 1ip0 WL0 1lQp0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 q6N0 En0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1op0 11b0 dA10 17b0 1iN0 17b0 1iN0 17b0 1iN0 17b0 1vB0 SL0 1mp0 13z0 1iN0 17b0 1iN0 17b0 1jd0 12n0 1a10 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0|22e5","Asia/Bishkek|LMT +05 +06 +07|-4W.o -50 -60 -70|012323232323232323232321212121212121212121212121212|-1Pc4W.o eUnW.o 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2e00 1tX0 17b0 1ip0 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1cPu 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0|87e4","Asia/Brunei|LMT +0730 +08|-7D.E -7u -80|012|-1KITD.E gDc9.E|42e4","Asia/Kolkata|MMT IST +0630|-5l.a -5u -6u|012121|-2zOtl.a 1r2LP.a 1un0 HB0 7zX0|15e6","Asia/Chita|LMT +08 +09 +10|-7x.Q -80 -90 -a0|012323232323232323232321232323232323232323232323232323232323232312|-21Q7x.Q pAnx.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3re0|33e4","Asia/Choibalsan|LMT +07 +08 +10 +09|-7C -70 -80 -a0 -90|0123434343434343434343434343434343434343434343424242|-2APHC 2UkoC cKn0 1da0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 3Db0 h1f0 1cJ0 1cP0 1cJ0|38e3","Asia/Shanghai|CST CDT|-80 -90|01010101010101010|-1c1I0 LX0 16p0 1jz0 1Myp0 Rb0 1o10 11z0 1o10 11z0 1qN0 11z0 1o10 11z0 1o10 11z0|23e6","Asia/Colombo|MMT +0530 +06 +0630|-5j.w -5u -60 -6u|01231321|-2zOtj.w 1rFbN.w 1zzu 7Apu 23dz0 11zu n3cu|22e5","Asia/Dhaka|HMT +0630 +0530 +06 +07|-5R.k -6u -5u -60 -70|0121343|-18LFR.k 1unn.k HB0 m6n0 2kxbu 1i00|16e6","Asia/Damascus|LMT EET EEST|-2p.c -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-21Jep.c Hep.c 17b0 1ip0 17b0 1ip0 17b0 1ip0 19X0 1xRB0 11X0 1oN0 10L0 1pB0 11b0 1oN0 10L0 1mp0 13X0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 1pd0 11b0 1oN0 Nb0 1AN0 Nb0 bcp0 19X0 1gp0 19X0 3ld0 1xX0 Vd0 1Bz0 Sp0 1vX0 10p0 1dz0 1cN0 1cL0 1db0 1db0 1g10 1an0 1ap0 1db0 1fd0 1db0 1cN0 1db0 1dd0 1db0 1cp0 1dz0 1c10 1dX0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1db0 1cN0 1db0 1cN0 19z0 1fB0 1qL0 11B0 1on0 Wp0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 1qL0 WN0 1qL0|26e5","Asia/Dili|LMT +08 +09|-8m.k -80 -90|01212|-2le8m.k 1dnXm.k 1nfA0 Xld0|19e4","Asia/Dubai|LMT +04|-3F.c -40|01|-21JfF.c|39e5","Asia/Dushanbe|LMT +05 +06 +07|-4z.c -50 -60 -70|012323232323232323232321|-1Pc4z.c eUnz.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2hB0|76e4","Asia/Famagusta|LMT EET EEST +03|-2f.M -20 -30 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212312121212121212121212121212121212121212121|-1Vc2f.M 2a3cf.M 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 15U0 2Ks0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00","Asia/Gaza|EET EEST IST IDT|-20 -30 -20 -30|010101010101010101010101010101012323232323232323232323232320101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 11z0 1o10 14o0 1lA1 SKX 1xd1 MKX 1AN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0|18e5","Asia/Hebron|EET EEST IST IDT|-20 -30 -20 -30|01010101010101010101010101010101232323232323232323232323232010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-1c2q0 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 pBd0 Vz0 1oN0 11b0 1oO0 10N0 1pz0 10N0 1pb0 10N0 1pb0 10N0 1pb0 10N0 1pz0 10N0 1pb0 10N0 1pb0 11d0 1oL0 dW0 hfB0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 M10 C00 17c0 1io0 17c0 1io0 17c0 1o00 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 17c0 1io0 18N0 1bz0 19z0 1gp0 1610 1iL0 12L0 1mN0 14o0 1lc0 Tb0 1xd1 MKX bB0 cn0 1cN0 1a00 1fA0 1cL0 1cN0 1nX0 1210 1nz0 1220 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1qL0|25e4","Asia/Ho_Chi_Minh|LMT PLMT +07 +08 +09|-76.E -76.u -70 -80 -90|0123423232|-2yC76.E bK00.a 1h7b6.u 5lz0 18o0 3Oq0 k5b0 aW00 BAM0|90e5","Asia/Hong_Kong|LMT HKT HKST JST|-7A.G -80 -90 -90|0121312121212121212121212121212121212121212121212121212121212121212121|-2CFHA.G 1sEP6.G 1cL0 ylu 93X0 1qQu 1tX0 Rd0 1In0 NB0 1cL0 11B0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1kL0 14N0 1nX0 U10 1tz0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 Rd0 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 17d0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 s10 1Vz0 1cN0 1cL0 1cN0 1cL0 6fd0 14n0|73e5","Asia/Hovd|LMT +06 +07 +08|-66.A -60 -70 -80|012323232323232323232323232323232323232323232323232|-2APG6.A 2Uko6.A cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|81e3","Asia/Irkutsk|IMT +07 +08 +09|-6V.5 -70 -80 -90|01232323232323232323232123232323232323232323232323232323232323232|-21zGV.5 pjXV.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4","Europe/Istanbul|IMT EET EEST +04 +03|-1U.U -20 -30 -40 -30|012121212121212121212121212121212121212121212121212121234343434342121212121212121212121212121212121212121212121212121212121212124|-2ogNU.U dzzU.U 11b0 8tB0 1on0 1410 1db0 19B0 1in0 3Rd0 Un0 1oN0 11b0 zSp0 CL0 mN0 1Vz0 1gN0 1pz0 5Rd0 1fz0 1yp0 ML0 1kp0 17b0 1ip0 17b0 1fB0 19X0 1jB0 18L0 1ip0 17z0 qdd0 xX0 3S10 Tz0 dA10 11z0 1o10 11z0 1qN0 11z0 1ze0 11B0 WM0 1qO0 WI0 1nX0 1rB0 10L0 11B0 1in0 17d0 1in0 2pX0 19E0 1fU0 16Q0 1iI0 16Q0 1iI0 1Vd0 pb0 3Kp0 14o0 1de0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1a00 1fA0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WO0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 Xc0 1qo0 WM0 1qM0 11A0 1o00 1200 1nA0 11A0 1tA0 U00 15w0|13e6","Asia/Jakarta|BMT +0720 +0730 +09 +08 WIB|-77.c -7k -7u -90 -80 -70|01232425|-1Q0Tk luM0 mPzO 8vWu 6kpu 4PXu xhcu|31e6","Asia/Jayapura|LMT +09 +0930 WIT|-9m.M -90 -9u -90|0123|-1uu9m.M sMMm.M L4nu|26e4","Asia/Jerusalem|JMT IST IDT IDDT|-2k.E -20 -30 -40|01212121212132121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-26Bek.E SyMk.E 5Rb0 10r0 1px0 10N0 1pz0 16p0 1jB0 16p0 1jx0 3LB0 Em0 or0 1cn0 1dB0 16n0 10O0 1ja0 1tC0 14o0 1cM0 1a00 11A0 1Na0 An0 1MP0 AJ0 1Kp0 LC0 1oo0 Wl0 EQN0 Db0 1fB0 Rb0 npB0 11z0 1C10 IL0 1s10 10n0 1o10 WL0 1zd0 On0 1ld0 11z0 1o10 14n0 1o10 14n0 1nd0 12n0 1nd0 Xz0 1q10 12n0 1hB0 1dX0 1ep0 1aL0 1eN0 17X0 1nf0 11z0 1tB0 19W0 1e10 17b0 1ep0 1gL0 18N0 1fz0 1eN0 17b0 1gq0 1gn0 19d0 1dz0 1c10 17X0 1hB0 1gn0 19d0 1dz0 1c10 17X0 1kp0 1dz0 1c10 1aL0 1eN0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0 10N0 1rz0 W10 1rz0 W10 1rz0 W10 1rz0 10N0 1oL0 10N0 1oL0|81e4","Asia/Kabul|+04 +0430|-40 -4u|01|-10Qs0|46e5","Asia/Kamchatka|LMT +11 +12 +13|-ay.A -b0 -c0 -d0|012323232323232323232321232323232323232323232323232323232323212|-1SLKy.A ivXy.A 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|18e4","Asia/Karachi|LMT +0530 +0630 +05 PKT PKST|-4s.c -5u -6u -50 -50 -60|012134545454|-2xoss.c 1qOKW.c 7zX0 eup0 LqMu 1fy00 1cL0 dK10 11b0 1610 1jX0|24e6","Asia/Urumqi|LMT +06|-5O.k -60|01|-1GgtO.k|32e5","Asia/Kathmandu|LMT +0530 +0545|-5F.g -5u -5J|012|-21JhF.g 2EGMb.g|12e5","Asia/Khandyga|LMT +08 +09 +10 +11|-92.d -80 -90 -a0 -b0|0123232323232323232323212323232323232323232323232343434343434343432|-21Q92.d pAp2.d 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 qK0 yN0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|66e2","Asia/Krasnoyarsk|LMT +06 +07 +08|-6b.q -60 -70 -80|01232323232323232323232123232323232323232323232323232323232323232|-21Hib.q prAb.q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5","Asia/Kuala_Lumpur|SMT +07 +0720 +0730 +09 +08|-6T.p -70 -7k -7u -90 -80|0123435|-2Bg6T.p 17anT.p l5XE 17bO 8Fyu 1so1u|71e5","Asia/Kuching|LMT +0730 +08 +0820 +09|-7l.k -7u -80 -8k -90|0123232323232323242|-1KITl.k gDbP.k 6ynu AnE 1O0k AnE 1NAk AnE 1NAk AnE 1NAk AnE 1O0k AnE 1NAk AnE pAk 8Fz0|13e4","Asia/Macau|LMT CST CDT|-7y.k -80 -90|012121212121212121212121212121212121212121|-2le80 1XO3u 1wn0 Rd0 1wn0 R9u 1wqu U10 1tz0 TVu 1tz0 17gu 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cJu 1cL0 1cN0 1fz0 1cN0 1cOu 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cJu 1cL0 1cN0 1fz0 1cN0 1cL0|57e4","Asia/Magadan|LMT +10 +11 +12|-a3.c -a0 -b0 -c0|012323232323232323232321232323232323232323232323232323232323232312|-1Pca3.c eUo3.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Cq0|95e3","Asia/Makassar|LMT MMT +08 +09 WITA|-7V.A -7V.A -80 -90 -80|01234|-21JjV.A vfc0 myLV.A 8ML0|15e5","Asia/Manila|+08 +09|-80 -90|010101010|-1kJI0 AL0 cK10 65X0 mXB0 vX0 VK10 1db0|24e6","Asia/Nicosia|LMT EET EEST|-2d.s -20 -30|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1Vc2d.s 2a3cd.s 1cL0 1qp0 Xz0 19B0 19X0 1fB0 1db0 1cp0 1cL0 1fB0 19X0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1o30 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|32e4","Asia/Novokuznetsk|LMT +06 +07 +08|-5M.M -60 -70 -80|012323232323232323232321232323232323232323232323232323232323212|-1PctM.M eULM.M 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|55e4","Asia/Novosibirsk|LMT +06 +07 +08|-5v.E -60 -70 -80|0123232323232323232323212323212121212121212121212121212121212121212|-21Qnv.E pAFv.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 ml0 Os0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 4eN0|15e5","Asia/Omsk|LMT +05 +06 +07|-4R.u -50 -60 -70|01232323232323232323232123232323232323232323232323232323232323232|-224sR.u pMLR.u 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|12e5","Asia/Oral|LMT +03 +05 +06 +04|-3p.o -30 -50 -60 -40|01232323232323232424242424242424242424242424242|-1Pc3p.o eUop.o 23CK0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 1cM0 IM0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|27e4","Asia/Pontianak|LMT PMT +0730 +09 +08 WITA WIB|-7h.k -7h.k -7u -90 -80 -80 -70|012324256|-2ua7h.k XE00 munL.k 8Rau 6kpu 4PXu xhcu Wqnu|23e4","Asia/Pyongyang|LMT KST JST KST|-8n -8u -90 -90|012313|-2um8n 97XR 1lTzu 2Onc0 6BAu|29e5","Asia/Qyzylorda|LMT +04 +05 +06|-4l.Q -40 -50 -60|0123232323232323232323232323232323232323232323|-1Pc4l.Q eUol.Q 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 3ao0 1EM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0|73e4","Asia/Rangoon|RMT +0630 +09|-6o.L -6u -90|0121|-21Jio.L SmnS.L 7j9u|48e5","Asia/Sakhalin|LMT +09 +11 +12 +10|-9u.M -90 -b0 -c0 -a0|01232323232323232323232423232323232424242424242424242424242424242|-2AGVu.M 1BoMu.M 1qFa0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 2pB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0|58e4","Asia/Samarkand|LMT +04 +05 +06|-4r.R -40 -50 -60|01232323232323232323232|-1Pc4r.R eUor.R 23CL0 3Db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0|36e4","Asia/Seoul|LMT KST JST KST KDT KDT|-8r.Q -8u -90 -90 -9u -a0|0123141414141414135353|-2um8r.Q 97XV.Q 1m1zu kKo0 2I0u OL0 1FB0 Rb0 1qN0 TX0 1tB0 TX0 1tB0 TX0 1tB0 TX0 2ap0 12FBu 11A0 1o00 11A0|23e6","Asia/Srednekolymsk|LMT +10 +11 +12|-ae.Q -a0 -b0 -c0|01232323232323232323232123232323232323232323232323232323232323232|-1Pcae.Q eUoe.Q 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|35e2","Asia/Taipei|CST JST CDT|-80 -90 -90|01020202020202020202020202020202020202020|-1iw80 joM0 1yo0 Tz0 1ip0 1jX0 1cN0 11b0 1oN0 11b0 1oN0 11b0 1oN0 11b0 10N0 1BX0 10p0 1pz0 10p0 1pz0 10p0 1db0 1dd0 1db0 1cN0 1db0 1cN0 1db0 1cN0 1db0 1BB0 ML0 1Bd0 ML0 uq10 1db0 1cN0 1db0 97B0 AL0|74e5","Asia/Tashkent|LMT +05 +06 +07|-4B.b -50 -60 -70|012323232323232323232321|-1Pc4B.b eUnB.b 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0|23e5","Asia/Tbilisi|TBMT +03 +04 +05|-2X.b -30 -40 -50|0123232323232323232323212121232323232323232323212|-1Pc2X.b 1jUnX.b WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cK0 1cL0 1cN0 1cL0 1cN0 2pz0 1cL0 1fB0 3Nz0 11B0 1nX0 11B0 1qL0 WN0 1qL0 WN0 1qL0 11B0 1nX0 11B0 1nX0 11B0 An0 Os0 WM0|11e5","Asia/Tehran|LMT TMT +0330 +04 +05 +0430|-3p.I -3p.I -3u -40 -50 -4u|01234325252525252525252525252525252525252525252525252525252525252525252525252525252525252525252525252|-2btDp.I 1d3c0 1huLT.I TXu 1pz0 sN0 vAu 1cL0 1dB0 1en0 pNB0 UL0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 64p0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0 1cN0 1dz0 1cp0 1dz0 1cp0 1dz0 1cp0 1dz0|14e6","Asia/Thimphu|LMT +0530 +06|-5W.A -5u -60|012|-Su5W.A 1BGMs.A|79e3","Asia/Tokyo|JST JDT|-90 -a0|010101010|-QJJ0 Rb0 1ld0 14n0 1zd0 On0 1zd0 On0|38e6","Asia/Tomsk|LMT +06 +07 +08|-5D.P -60 -70 -80|0123232323232323232323212323232323232323232323212121212121212121212|-21NhD.P pxzD.P 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 co0 1bB0 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3Qp0|10e5","Asia/Ulaanbaatar|LMT +07 +08 +09|-77.w -70 -80 -90|012323232323232323232323232323232323232323232323232|-2APH7.w 2Uko7.w cKn0 1db0 1dd0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 6hD0 11z0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 kEp0 1cJ0 1cP0 1cJ0|12e5","Asia/Ust-Nera|LMT +08 +09 +12 +11 +10|-9w.S -80 -90 -c0 -b0 -a0|012343434343434343434345434343434343434343434343434343434343434345|-21Q9w.S pApw.S 23CL0 1d90 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 17V0 7zD0|65e2","Asia/Vladivostok|LMT +09 +10 +11|-8L.v -90 -a0 -b0|01232323232323232323232123232323232323232323232323232323232323232|-1SJIL.v itXL.v 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|60e4","Asia/Yakutsk|LMT +08 +09 +10|-8C.W -80 -90 -a0|01232323232323232323232123232323232323232323232323232323232323232|-21Q8C.W pAoC.W 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|28e4","Asia/Yekaterinburg|LMT PMT +04 +05 +06|-42.x -3J.5 -40 -50 -60|012343434343434343434343234343434343434343434343434343434343434343|-2ag42.x 7mQh.s qBvJ.5 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|14e5","Asia/Yerevan|LMT +03 +04 +05|-2W -30 -40 -50|0123232323232323232323212121212323232323232323232323232323232|-1Pc2W 1jUnW WCL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 2pB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 4RX0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0|13e5","Atlantic/Azores|HMT -02 -01 +00 WET|1S.w 20 10 0 0|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121232323232323232323232323232323234323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-2ldW0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cL0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|25e4","Atlantic/Bermuda|LMT AST ADT|4j.i 40 30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1BnRE.G 1LTbE.G 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0|65e3","Atlantic/Canary|LMT -01 WET WEST|11.A 10 0 -10|01232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-1UtaW.o XPAW.o 1lAK0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4","Atlantic/Cape_Verde|LMT -02 -01|1y.4 20 10|01212|-2ldW0 1eEo0 7zX0 1djf0|50e4","Atlantic/Faroe|LMT WET WEST|r.4 0 -10|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2uSnw.U 2Wgow.U 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|49e3","Atlantic/Madeira|FMT -01 +00 +01 WET WEST|17.A 10 0 -10 0 -10|01212121212121212121212121212121212121212121232123212321232121212121212121212121212121212121212121454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2ldX0 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 qIl0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e4","Atlantic/Reykjavik|LMT -01 +00 GMT|1s 10 0 0|012121212121212121212121212121212121212121212121212121212121212121213|-2uWmw mfaw 1Bd0 ML0 1LB0 Cn0 1LB0 3fX0 C10 HrX0 1cO0 LB0 1EL0 LA0 1C00 Oo0 1wo0 Rc0 1wo0 Rc0 1wo0 Rc0 1zc0 Oo0 1zc0 14o0 1lc0 14o0 1lc0 14o0 1o00 11A0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1lc0 14o0 1o00 14o0|12e4","Atlantic/South_Georgia|-02|20|0||30","Atlantic/Stanley|SMT -04 -03 -02|3P.o 40 30 20|012121212121212323212121212121212121212121212121212121212121212121212|-2kJw8.A 12bA8.A 19X0 1fB0 19X0 1ip0 19X0 1fB0 19X0 1fB0 19X0 1fB0 Cn0 1Cc10 WL0 1qL0 U10 1tz0 2mN0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 U10 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1tz0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qL0 WN0 1qN0 U10 1wn0 Rd0 1wn0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1tz0 U10 1wn0 U10 1tz0 U10 1tz0 U10|21e2","Australia/Sydney|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|40e5","Australia/Adelaide|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 WM0 1qM0 Rc0 1zc0 U00 1tA0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|11e5","Australia/Brisbane|AEST AEDT|-a0 -b0|01010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0|20e5","Australia/Broken_Hill|ACST ACDT|-9u -au|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 14o0 1o00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1tA0 WM0 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|18e3","Australia/Currie|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|746","Australia/Darwin|ACST ACDT|-9u -au|010101010|-293lt xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0|12e4","Australia/Eucla|+0845 +0945|-8J -9J|0101010101010101010|-293kI xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|368","Australia/Hobart|AEST AEDT|-a0 -b0|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-29E80 19X0 10jd0 yL0 1cN0 1cL0 1fB0 19X0 VfB0 1cM0 1o00 Rc0 1wo0 Rc0 1wo0 U00 1wo0 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 11A0 1qM0 WM0 1qM0 Oo0 1zc0 Oo0 1zc0 Oo0 1wo0 WM0 1tA0 WM0 1tA0 U00 1tA0 U00 1tA0 11A0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 11A0 1o00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|21e4","Australia/Lord_Howe|AEST +1030 +1130 +11|-a0 -au -bu -b0|0121212121313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313131313|raC0 1zdu Rb0 1zd0 On0 1zd0 On0 1zd0 On0 1zd0 TXu 1qMu WLu 1tAu WLu 1tAu TXu 1tAu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu 11zu 1o0u 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 11Au 1nXu 1qMu 11zu 1o0u 11zu 1o0u 11zu 1qMu WLu 1qMu 11zu 1o0u WLu 1qMu 14nu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1fzu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1cMu 1cLu 1fAu 1cLu 1cMu 1cLu 1cMu|347","Australia/Lindeman|AEST AEDT|-a0 -b0|010101010101010101010|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 H1A0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0|10","Australia/Melbourne|AEST AEDT|-a0 -b0|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101|-293lX xcX 10jd0 yL0 1cN0 1cL0 1fB0 19X0 17c10 LA0 1C00 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 U00 1qM0 WM0 1qM0 11A0 1tA0 U00 1tA0 U00 1tA0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 11A0 1o00 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 14o0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0|39e5","Australia/Perth|AWST AWDT|-80 -90|0101010101010101010|-293jX xcX 10jd0 yL0 1cN0 1cL0 1gSp0 Oo0 l5A0 Oo0 iJA0 G00 zU00 IM0 1qM0 11A0 1o00 11A0|18e5","CET|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00","Pacific/Easter|EMT -07 -06 -05|7h.s 70 60 50|012121212121212121212121212123232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323|-1uSgG.w 1s4IG.w WL0 1zd0 On0 1ip0 11z0 1o10 11z0 1qN0 WL0 1ld0 14n0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 2pA0 11z0 1o10 11z0 1qN0 WL0 1qN0 WL0 1qN0 1cL0 1cN0 11z0 1o10 11z0 1qN0 WL0 1fB0 19X0 1qN0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1ip0 1fz0 1fB0 11z0 1qN0 WL0 1qN0 WL0 1qN0 WL0 1qN0 11z0 1o10 11z0 1o10 11z0 1qN0 WL0 1qN0 17b0 1ip0 11z0 1o10 19X0 1fB0 1nX0 G10 1EL0 Op0 1zb0 Rd0 1wn0 Rd0 46n0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Dd0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0 1Nb0 Ap0|30e2","CST6CDT|CST CDT CWT CPT|60 50 50 50|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261s0 1nX0 11B0 1nX0 SgN0 8x30 iw0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","EET|EET EEST|-20 -30|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00","Europe/Dublin|DMT IST GMT BST IST|p.l -y.D 0 -10 -10|01232323232324242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242424242|-2ax9y.D Rc0 1fzy.D 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 g600 14o0 1wo0 17c0 1io0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","EST|EST|50|0|","EST5EDT|EST EDT EWT EPT|50 40 40 40|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261t0 1nX0 11B0 1nX0 SgN0 8x40 iv0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","Etc/GMT-0|GMT|0|0|","Etc/GMT-1|+01|-10|0|","Pacific/Port_Moresby|+10|-a0|0||25e4","Pacific/Pohnpei|+11|-b0|0||34e3","Pacific/Tarawa|+12|-c0|0||29e3","Etc/GMT-13|+13|-d0|0|","Etc/GMT-14|+14|-e0|0|","Etc/GMT-2|+02|-20|0|","Etc/GMT-3|+03|-30|0|","Etc/GMT-4|+04|-40|0|","Etc/GMT-5|+05|-50|0|","Etc/GMT-6|+06|-60|0|","Indian/Christmas|+07|-70|0||21e2","Etc/GMT-8|+08|-80|0|","Pacific/Palau|+09|-90|0||21e3","Etc/GMT+1|-01|10|0|","Etc/GMT+10|-10|a0|0|","Etc/GMT+11|-11|b0|0|","Etc/GMT+12|-12|c0|0|","Etc/GMT+3|-03|30|0|","Etc/GMT+4|-04|40|0|","Etc/GMT+5|-05|50|0|","Etc/GMT+6|-06|60|0|","Etc/GMT+7|-07|70|0|","Etc/GMT+8|-08|80|0|","Etc/GMT+9|-09|90|0|","Etc/UCT|UCT|0|0|","Etc/UTC|UTC|0|0|","Europe/Amsterdam|AMT NST +0120 +0020 CEST CET|-j.w -1j.w -1k -k -20 -10|010101010101010101010101010101010101010101012323234545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545|-2aFcj.w 11b0 1iP0 11A0 1io0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1co0 1io0 1yo0 Pc0 1a00 1fA0 1Bc0 Mo0 1tc0 Uo0 1tA0 U00 1uo0 W00 1s00 VA0 1so0 Vc0 1sM0 UM0 1wo0 Rc0 1u00 Wo0 1rA0 W00 1s00 VA0 1sM0 UM0 1w00 fV0 BCX.w 1tA0 U00 1u00 Wo0 1sm0 601k WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|16e5","Europe/Andorra|WET CET CEST|0 -10 -20|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-UBA0 1xIN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|79e3","Europe/Astrakhan|LMT +03 +04 +05|-3c.c -30 -40 -50|012323232323232323212121212121212121212121212121212121212121212|-1Pcrc.c eUMc.c 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0","Europe/Athens|AMT EET EEST CEST CET|-1y.Q -20 -30 -20 -10|012123434121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2a61x.Q CNbx.Q mn0 kU10 9b0 3Es0 Xa0 1fb0 1dd0 k3X0 Nz0 SCp0 1vc0 SO0 1cM0 1a00 1ao0 1fc0 1a10 1fG0 1cg0 1dX0 1bX0 1cQ0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|35e5","Europe/London|GMT BST BDST|0 -10 -20|0101010101010101010101010101010101010101010101010121212121210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1a00 1qM0 WM0 1qM0 11A0 1o00 WM0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1tA0 IM0 90o0 U00 1tA0 U00 1tA0 U00 1tA0 U00 1tA0 WM0 1qM0 WM0 1qM0 WM0 1tA0 U00 1tA0 U00 1tA0 11z0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1o00 14o0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|10e6","Europe/Belgrade|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19RC0 3IP0 WM0 1fA0 1cM0 1cM0 1rc0 Qo0 1vmo0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Berlin|CET CEST CEMT|-10 -20 -30|01010101010101210101210101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 kL0 Nc0 m10 WM0 1ao0 1cp0 dX0 jz0 Dd0 1io0 17c0 1fA0 1a00 1ehA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e5","Europe/Prague|CET CEST GMT|-10 -20 0|01010101010101010201010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 1cM0 1qM0 11c0 mp0 xA0 mn0 17c0 1io0 17c0 1fc0 1ao0 1bNc0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|13e5","Europe/Brussels|WET CET CEST WEST|0 -10 -20 -10|0121212103030303030303030303030303030303030303030303212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ehc0 3zX0 11c0 1iO0 11A0 1o00 11A0 my0 Ic0 1qM0 Rc0 1EM0 UM0 1u00 10o0 1io0 1io0 17c0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a30 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 y00 5Wn0 WM0 1fA0 1cM0 16M0 1iM0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|21e5","Europe/Bucharest|BMT EET EEST|-1I.o -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1xApI.o 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Axc0 On0 1fA0 1a10 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|19e5","Europe/Budapest|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1ip0 17b0 1op0 1tb0 Q2m0 3Ne0 WM0 1fA0 1cM0 1cM0 1oJ0 1dc0 1030 1fA0 1cM0 1cM0 1cM0 1cM0 1fA0 1a00 1iM0 1fA0 8Ha0 Rb0 1wN0 Rb0 1BB0 Lz0 1C20 LB0 SNX0 1a10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5","Europe/Zurich|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-19Lc0 11A0 1o00 11A0 1xG10 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e4","Europe/Chisinau|CMT BMT EET EEST CEST CET MSK MSD|-1T -1I.o -20 -30 -20 -10 -30 -40|012323232323232323234545467676767676767676767323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232323232|-26jdT wGMa.A 20LI.o RA0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 27A0 2en0 39g0 WM0 1fA0 1cM0 V90 1t7z0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 gL0 WO0 1cM0 1cM0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11D0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|67e4","Europe/Copenhagen|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 Tz0 VuO0 60q0 WM0 1fA0 1cM0 1cM0 1cM0 S00 1HA0 Nc0 1C00 Dc0 1Nc0 Ao0 1h5A0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Gibraltar|GMT BST BDST CET CEST|0 -10 -20 -10 -20|010101010101010101010101010101010101010101010101012121212121010121010101010101010101034343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-2axa0 Rc0 1fA0 14M0 1fc0 1g00 1co0 1dc0 1co0 1oo0 1400 1dc0 19A0 1io0 1io0 WM0 1o00 14o0 1o00 17c0 1io0 17c0 1fA0 1a00 1lc0 17c0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1cM0 1io0 17c0 1fA0 1a00 1io0 17c0 1io0 17c0 1fA0 1a00 1io0 1qM0 Dc0 2Rz0 Dc0 1zc0 Oo0 1zc0 Rc0 1wo0 17c0 1iM0 FA0 xB0 1fA0 1a00 14o0 bb0 LA0 xB0 Rc0 1wo0 11A0 1o00 17c0 1fA0 1a00 1fA0 1cM0 1fA0 1a00 17c0 1fA0 1a00 1io0 17c0 1lc0 17c0 1fA0 10Jz0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|30e3","Europe/Helsinki|HMT EET EEST|-1D.N -20 -30|0121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-1WuND.N OULD.N 1dA0 1xGq0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Kaliningrad|CET CEST CET CEST MSK MSD EEST EET +03|-10 -20 -20 -30 -30 -40 -30 -20 -30|0101010101010232454545454545454546767676767676767676767676767676767676767676787|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 Am0 Lb0 1en0 op0 1pNz0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|44e4","Europe/Kiev|KMT EET MSK CEST CET MSD EEST|-22.4 -20 -30 -20 -10 -40 -30|0123434252525252525252525256161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc22.4 eUo2.4 rnz0 2Hg0 WM0 1fA0 da0 1v4m0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 Db0 3220 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|34e5","Europe/Kirov|LMT +03 +04 +05|-3i.M -30 -40 -50|01232323232323232321212121212121212121212121212121212121212121|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|48e4","Europe/Lisbon|LMT WET WEST WEMT CET CEST|A.J 0 -10 -20 -10 -20|012121212121212121212121212121212121212121212321232123212321212121212121212121212121212121212121214121212121212121212121212121212124545454212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2le00 aPX0 Sp0 LX0 1vc0 Tc0 1uM0 SM0 1vc0 Tc0 1vc0 SM0 1vc0 6600 1co0 3E00 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 3I00 17c0 1cM0 1cM0 3Fc0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 1tA0 1cM0 1dc0 1400 gL0 IM0 s10 U00 dX0 Rc0 pd0 Rc0 gL0 Oo0 pd0 Rc0 gL0 Oo0 pd0 14o0 1cM0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 3Co0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 pvy0 1cM0 1cM0 1fA0 1cM0 1cM0 1cN0 1cL0 1cN0 1cM0 1cM0 1cM0 1cM0 1cN0 1cL0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|27e5","Europe/Luxembourg|LMT CET CEST WET WEST WEST WET|-o.A -10 -20 0 -10 -20 -10|0121212134343434343434343434343434343434343434343434565651212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2DG0o.A t6mo.A TB0 1nX0 Up0 1o20 11A0 rW0 CM0 1qP0 R90 1EO0 UK0 1u20 10m0 1ip0 1in0 17e0 19W0 1fB0 1db0 1cp0 1in0 17d0 1fz0 1a10 1in0 1a10 1in0 17f0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Dc0 vA0 60L0 WM0 1fA0 1cM0 17c0 1io0 16M0 1C00 Uo0 1eeo0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4","Europe/Madrid|WET WEST WEMT CET CEST|0 -10 -20 -10 -20|010101010101010101210343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343|-25Td0 19B0 1cL0 1dd0 b1z0 18p0 3HX0 17d0 1fz0 1a10 1io0 1a00 1in0 17d0 iIn0 Hd0 1cL0 bb0 1200 2s20 14n0 5aL0 Mp0 1vz0 17d0 1in0 17d0 1in0 17d0 1in0 17d0 6hX0 11B0 XHX0 1a10 1fz0 1a10 19X0 1cN0 1fz0 1a10 1fC0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|62e5","Europe/Malta|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1co0 17c0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1co0 1cM0 1lA0 Xc0 1qq0 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1o10 11z0 1iN0 19z0 1fB0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4","Europe/Minsk|MMT EET MSK CEST CET MSD EEST +03|-1O -20 -30 -20 -10 -40 -30 -30|01234343252525252525252525261616161616161616161616161616161616161617|-1Pc1O eUnO qNX0 3gQ0 WM0 1fA0 1cM0 Al0 1tsn0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 3Fc0 1cN0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0|19e5","Europe/Monaco|PMT WET WEST WEMT CET CEST|-9.l 0 -10 -20 -10 -20|01212121212121212121212121212121212121212121212121232323232345454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-2nco9.l cNb9.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 2RV0 11z0 11B0 1ze0 WM0 1fA0 1cM0 1fa0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|38e3","Europe/Moscow|MMT MMT MST MDST MSD MSK +05 EET EEST MSK|-2u.h -2v.j -3v.j -4v.j -40 -30 -50 -20 -30 -40|012132345464575454545454545454545458754545454545454545454545454545454545454595|-2ag2u.h 2pyW.W 1bA0 11X0 GN0 1Hb0 c4v.j ik0 3DA0 dz0 15A0 c10 2q10 iM10 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|16e6","Europe/Paris|PMT WET WEST CEST CET WEMT|-9.l 0 -10 -20 -10 -20|0121212121212121212121212121212121212121212121212123434352543434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434343434|-2nco8.l cNb8.l HA0 19A0 1iM0 11c0 1oo0 Wo0 1rc0 QM0 1EM0 UM0 1u00 10o0 1io0 1wo0 Rc0 1a00 1fA0 1cM0 1cM0 1io0 17c0 1fA0 1a00 1io0 1a00 1io0 17c0 1fA0 1a00 1io0 17c0 1cM0 1cM0 1a00 1io0 1cM0 1cM0 1a00 1fA0 1io0 17c0 1cM0 1cM0 1a00 1fA0 1io0 1qM0 Df0 Ik0 5M30 WM0 1fA0 1cM0 Vx0 hB0 1aq0 16M0 1ekn0 1cL0 1fC0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e6","Europe/Riga|RMT LST EET MSK CEST CET MSD EEST|-1A.y -2A.y -20 -30 -20 -10 -40 -30|010102345454536363636363636363727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272727272|-25TzA.y 11A0 1iM0 ko0 gWm0 yDXA.y 2bX0 3fE0 WM0 1fA0 1cM0 1cM0 4m0 1sLy0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cN0 1o00 11A0 1o00 11A0 1qM0 3oo0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|64e4","Europe/Rome|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2arB0 Lz0 1cN0 1db0 1410 1on0 Wp0 1qL0 17d0 1cL0 M3B0 5M20 WM0 1fA0 1cM0 16M0 1iM0 16m0 1de0 1lc0 14m0 1lc0 WO0 1qM0 GTW0 On0 1C10 LA0 1C00 LA0 1EM0 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1C00 LA0 1zc0 Oo0 1C00 LA0 1C00 LA0 1zc0 Oo0 1C00 Oo0 1zc0 Oo0 1fC0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|39e5","Europe/Samara|LMT +03 +04 +05|-3k.k -30 -40 -50|0123232323232323232121232323232323232323232323232323232323212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2y10 14m0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 2sp0 WM0|12e5","Europe/Saratov|LMT +03 +04 +05|-34.i -30 -40 -50|012323232323232321212121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 5810","Europe/Simferopol|SMT EET MSK CEST CET MSD EEST MSK|-2g -20 -30 -20 -10 -40 -30 -40|012343432525252525252525252161616525252616161616161616161616161616161616172|-1Pc2g eUog rEn0 2qs0 WM0 1fA0 1cM0 3V0 1u0L0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 4eL0 1cL0 1cN0 1cL0 1cN0 dX0 WL0 1cN0 1cL0 1fB0 1o30 11B0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11z0 1nW0|33e4","Europe/Sofia|EET CET CEST EEST|-20 -10 -20 -30|01212103030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030303030|-168L0 WM0 1fA0 1cM0 1cM0 1cN0 1mKH0 1dd0 1fb0 1ap0 1fb0 1a20 1fy0 1a30 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cK0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 1nX0 11E0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|12e5","Europe/Stockholm|CET CEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2azC0 TB0 2yDe0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|15e5","Europe/Tallinn|TMT CET CEST EET MSK MSD EEST|-1D -10 -20 -20 -30 -40 -30|012103421212454545454545454546363636363636363636363636363636363636363636363636363636363636363636363636363636363636363636363|-26oND teD 11A0 1Ta0 4rXl KSLD 2FX0 2Jg0 WM0 1fA0 1cM0 18J0 1sTX0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o10 11A0 1qM0 5QM0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|41e4","Europe/Tirane|LMT CET CEST|-1j.k -10 -20|01212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2glBj.k 14pcj.k 5LC0 WM0 4M0 1fCK0 10n0 1op0 11z0 1pd0 11z0 1qN0 WL0 1qp0 Xb0 1qp0 Xb0 1qp0 11z0 1lB0 11z0 1qN0 11z0 1iN0 16n0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|42e4","Europe/Ulyanovsk|LMT +03 +04 +05 +02|-3d.A -30 -40 -50 -20|01232323232323232321214121212121212121212121212121212121212121212|-22WM0 qH90 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1fA0 2pB0 IM0 rX0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0 3rd0","Europe/Uzhgorod|CET CEST MSK MSD EET EEST|-10 -20 -30 -40 -20 -30|010101023232323232323232320454545454545454545454545454545454545454545454545454545454545454545454545454545454545454545454|-1cqL0 6i00 WM0 1fA0 1cM0 1ml0 1Cp0 1r3W0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1Q00 1Nf0 2pw0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|11e4","Europe/Vienna|CET CEST|-10 -20|0101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 3KM0 14o0 LA00 6i00 WM0 1fA0 1cM0 1cM0 1cM0 400 2qM0 1a00 1cM0 1cM0 1io0 17c0 1gHa0 19X0 1cP0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|18e5","Europe/Vilnius|WMT KMT CET EET MSK CEST MSD EEST|-1o -1z.A -10 -20 -30 -20 -40 -30|012324525254646464646464646473737373737373737352537373737373737373737373737373737373737373737373737373737373737373737373|-293do 6ILM.o 1Ooz.A zz0 Mfd0 29W0 3is0 WM0 1fA0 1cM0 LV0 1tgL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11B0 1o00 11A0 1qM0 8io0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|54e4","Europe/Volgograd|LMT +03 +04 +05|-2V.E -30 -40 -50|01232323232323232121212121212121212121212121212121212121212121|-21IqV.E psLV.E 23CL0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 2pB0 1cM0 1cM0 1cM0 1fA0 1cM0 3Co0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 8Hz0|10e5","Europe/Warsaw|WMT CET CEST EET EEST|-1o -10 -20 -20 -30|012121234312121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121|-2ctdo 1LXo 11d0 1iO0 11A0 1o00 11A0 1on0 11A0 6zy0 HWP0 5IM0 WM0 1fA0 1cM0 1dz0 1mL0 1en0 15B0 1aq0 1nA0 11A0 1io0 17c0 1fA0 1a00 iDX0 LA0 1cM0 1cM0 1C00 Oo0 1cM0 1cM0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1C00 LA0 uso0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cN0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|17e5","Europe/Zaporozhye|+0220 EET MSK CEST CET MSD EEST|-2k -20 -30 -20 -10 -40 -30|01234342525252525252525252526161616161616161616161616161616161616161616161616161616161616161616161616161616161616161616161|-1Pc2k eUok rdb0 2RE0 WM0 1fA0 8m0 1v9a0 1db0 1cN0 1db0 1cN0 1db0 1dd0 1cO0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cK0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cQ0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00|77e4","HST|HST|a0|0|","Indian/Chagos|LMT +05 +06|-4N.E -50 -60|012|-2xosN.E 3AGLN.E|30e2","Indian/Cocos|+0630|-6u|0||596","Indian/Kerguelen|-00 +05|0 -50|01|-MG00|130","Indian/Mahe|LMT +04|-3F.M -40|01|-2yO3F.M|79e3","Indian/Maldives|MMT +05|-4S -50|01|-olgS|35e4","Indian/Mauritius|LMT +04 +05|-3O -40 -50|012121|-2xorO 34unO 14L0 12kr0 11z0|15e4","Indian/Reunion|LMT +04|-3F.Q -40|01|-2mDDF.Q|84e4","Pacific/Kwajalein|+11 -12 +12|-b0 c0 -c0|012|-AX0 W9X0|14e3","MET|MET MEST|-10 -20|01010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-2aFe0 11d0 1iO0 11A0 1o00 11A0 Qrc0 6i00 WM0 1fA0 1cM0 1cM0 1cM0 16M0 1gMM0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00","MST|MST|70|0|","MST7MDT|MST MDT MWT MPT|70 60 60 60|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261r0 1nX0 11B0 1nX0 SgN0 8x20 ix0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","Pacific/Chatham|+1215 +1245 +1345|-cf -cJ -dJ|012121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212121212|-WqAf 1adef IM0 1C00 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Oo0 1zc0 Rc0 1zc0 Oo0 1qM0 14o0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1lc0 14o0 1lc0 14o0 1lc0 17c0 1io0 17c0 1io0 17c0 1io0 17c0 1io0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|600","Pacific/Apia|LMT -1130 -11 -10 +14 +13|bq.U bu b0 a0 -e0 -d0|01232345454545454545454545454545454545454545454545454545454|-2nDMx.4 1yW03.4 2rRbu 1ff0 1a00 CI0 AQ0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1io0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1a00 1fA0 1cM0 1fA0 1a00 1fA0 1a00|37e3","Pacific/Bougainville|+10 +09 +11|-a0 -90 -b0|0102|-16Wy0 7CN0 2MQp0|18e4","Pacific/Efate|LMT +11 +12|-bd.g -b0 -c0|0121212121212121212121|-2l9nd.g 2Szcd.g 1cL0 1oN0 10L0 1fB0 19X0 1fB0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1fB0 Lz0 1Nd0 An0|66e3","Pacific/Enderbury|-12 -11 +13|c0 b0 -d0|012|nIc0 B7X0|1","Pacific/Fakaofo|-11 +13|b0 -d0|01|1Gfn0|483","Pacific/Fiji|LMT +12 +13|-bT.I -c0 -d0|0121212121212121212121212121212121212121212121212121212121212121|-2bUzT.I 3m8NT.I LA0 1EM0 IM0 nJc0 LA0 1o00 Rc0 1wo0 Ao0 1Nc0 Ao0 1Q00 xz0 1SN0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0 1VA0 s00 1VA0 s00 1VA0 s00 1VA0 uM0 1SM0 uM0 1SM0 uM0|88e4","Pacific/Galapagos|LMT -05 -06|5W.o 50 60|01212|-1yVS1.A 2dTz1.A gNd0 rz0|25e3","Pacific/Gambier|LMT -09|8X.M 90|01|-2jof0.c|125","Pacific/Guadalcanal|LMT +11|-aD.M -b0|01|-2joyD.M|11e4","Pacific/Guam|GST ChST|-a0 -a0|01|1fpq0|17e4","Pacific/Honolulu|HST HDT HST|au 9u a0|010102|-1thLu 8x0 lef0 8Pz0 46p0|37e4","Pacific/Kiritimati|-1040 -10 +14|aE a0 -e0|012|nIaE B7Xk|51e2","Pacific/Kosrae|+11 +12|-b0 -c0|010|-AX0 1bdz0|66e2","Pacific/Majuro|+11 +12|-b0 -c0|01|-AX0|28e3","Pacific/Marquesas|LMT -0930|9i 9u|01|-2joeG|86e2","Pacific/Pago_Pago|LMT SST|bm.M b0|01|-2nDMB.c|37e2","Pacific/Nauru|LMT +1130 +09 +12|-b7.E -bu -90 -c0|01213|-1Xdn7.E PvzB.E 5RCu 1ouJu|10e3","Pacific/Niue|-1120 -1130 -11|bk bu b0|012|-KfME 17y0a|12e2","Pacific/Norfolk|+1112 +1130 +1230 +11|-bc -bu -cu -b0|01213|-Kgbc W01G On0 1COp0|25e4","Pacific/Noumea|LMT +11 +12|-b5.M -b0 -c0|01212121|-2l9n5.M 2EqM5.M xX0 1PB0 yn0 HeP0 Ao0|98e3","Pacific/Pitcairn|-0830 -08|8u 80|01|18Vku|56","Pacific/Rarotonga|-1030 -0930 -10|au 9u a0|012121212121212121212121212|lyWu IL0 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Onu 1zcu Rbu 1zcu Onu 1zcu Onu 1zcu Onu|13e3","Pacific/Tahiti|LMT -10|9W.g a0|01|-2joe1.I|18e4","Pacific/Tongatapu|+1220 +13 +14|-ck -d0 -e0|0121212121|-1aB0k 2n5dk 15A0 1wo0 xz0 1Q10 xz0 zWN0 s00|75e3","PST8PDT|PST PDT PWT PPT|80 70 70 70|010102301010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|-261q0 1nX0 11B0 1nX0 SgN0 8x10 iy0 QwN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1cN0 1cL0 1cN0 1cL0 s10 1Vz0 LB0 1BX0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 1cN0 1fz0 1a10 1fz0 1cN0 1cL0 1cN0 1cL0 1cN0 1cL0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 14p0 1lb0 14p0 1lb0 14p0 1nX0 11B0 1nX0 11B0 1nX0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0 Op0 1zb0","WET|WET WEST|0 -10|010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010|hDB0 1a00 1fA0 1cM0 1cM0 1cM0 1fA0 1a00 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1cM0 1fA0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00 11A0 1qM0 WM0 1qM0 WM0 1qM0 WM0 1qM0 11A0 1o00 11A0 1o00"],links:["Africa/Abidjan|Africa/Bamako","Africa/Abidjan|Africa/Banjul","Africa/Abidjan|Africa/Conakry","Africa/Abidjan|Africa/Dakar","Africa/Abidjan|Africa/Freetown","Africa/Abidjan|Africa/Lome","Africa/Abidjan|Africa/Nouakchott","Africa/Abidjan|Africa/Ouagadougou","Africa/Abidjan|Africa/Timbuktu","Africa/Abidjan|Atlantic/St_Helena","Africa/Cairo|Egypt","Africa/Johannesburg|Africa/Maseru","Africa/Johannesburg|Africa/Mbabane","Africa/Lagos|Africa/Bangui","Africa/Lagos|Africa/Brazzaville","Africa/Lagos|Africa/Douala","Africa/Lagos|Africa/Kinshasa","Africa/Lagos|Africa/Libreville","Africa/Lagos|Africa/Luanda","Africa/Lagos|Africa/Malabo","Africa/Lagos|Africa/Niamey","Africa/Lagos|Africa/Porto-Novo","Africa/Maputo|Africa/Blantyre","Africa/Maputo|Africa/Bujumbura","Africa/Maputo|Africa/Gaborone","Africa/Maputo|Africa/Harare","Africa/Maputo|Africa/Kigali","Africa/Maputo|Africa/Lubumbashi","Africa/Maputo|Africa/Lusaka","Africa/Nairobi|Africa/Addis_Ababa","Africa/Nairobi|Africa/Asmara","Africa/Nairobi|Africa/Asmera","Africa/Nairobi|Africa/Dar_es_Salaam","Africa/Nairobi|Africa/Djibouti","Africa/Nairobi|Africa/Kampala","Africa/Nairobi|Africa/Mogadishu","Africa/Nairobi|Indian/Antananarivo","Africa/Nairobi|Indian/Comoro","Africa/Nairobi|Indian/Mayotte","Africa/Tripoli|Libya","America/Adak|America/Atka","America/Adak|US/Aleutian","America/Anchorage|US/Alaska","America/Argentina/Buenos_Aires|America/Buenos_Aires","America/Argentina/Catamarca|America/Argentina/ComodRivadavia","America/Argentina/Catamarca|America/Catamarca","America/Argentina/Cordoba|America/Cordoba","America/Argentina/Cordoba|America/Rosario","America/Argentina/Jujuy|America/Jujuy","America/Argentina/Mendoza|America/Mendoza","America/Atikokan|America/Coral_Harbour","America/Chicago|US/Central","America/Curacao|America/Aruba","America/Curacao|America/Kralendijk","America/Curacao|America/Lower_Princes","America/Denver|America/Shiprock","America/Denver|Navajo","America/Denver|US/Mountain","America/Detroit|US/Michigan","America/Edmonton|Canada/Mountain","America/Fort_Wayne|America/Indiana/Indianapolis","America/Fort_Wayne|America/Indianapolis","America/Fort_Wayne|US/East-Indiana","America/Halifax|Canada/Atlantic","America/Havana|Cuba","America/Indiana/Knox|America/Knox_IN","America/Indiana/Knox|US/Indiana-Starke","America/Jamaica|Jamaica","America/Kentucky/Louisville|America/Louisville","America/Los_Angeles|US/Pacific","America/Los_Angeles|US/Pacific-New","America/Manaus|Brazil/West","America/Mazatlan|Mexico/BajaSur","America/Mexico_City|Mexico/General","America/New_York|US/Eastern","America/Noronha|Brazil/DeNoronha","America/Panama|America/Cayman","America/Phoenix|US/Arizona","America/Port_of_Spain|America/Anguilla","America/Port_of_Spain|America/Antigua","America/Port_of_Spain|America/Dominica","America/Port_of_Spain|America/Grenada","America/Port_of_Spain|America/Guadeloupe","America/Port_of_Spain|America/Marigot","America/Port_of_Spain|America/Montserrat","America/Port_of_Spain|America/St_Barthelemy","America/Port_of_Spain|America/St_Kitts","America/Port_of_Spain|America/St_Lucia","America/Port_of_Spain|America/St_Thomas","America/Port_of_Spain|America/St_Vincent","America/Port_of_Spain|America/Tortola","America/Port_of_Spain|America/Virgin","America/Regina|Canada/Saskatchewan","America/Rio_Branco|America/Porto_Acre","America/Rio_Branco|Brazil/Acre","America/Santiago|Chile/Continental","America/Sao_Paulo|Brazil/East","America/St_Johns|Canada/Newfoundland","America/Tijuana|America/Ensenada","America/Tijuana|America/Santa_Isabel","America/Tijuana|Mexico/BajaNorte","America/Toronto|America/Montreal","America/Toronto|Canada/Eastern","America/Vancouver|Canada/Pacific","America/Whitehorse|Canada/Yukon","America/Winnipeg|Canada/Central","Asia/Ashgabat|Asia/Ashkhabad","Asia/Bangkok|Asia/Phnom_Penh","Asia/Bangkok|Asia/Vientiane","Asia/Dhaka|Asia/Dacca","Asia/Dubai|Asia/Muscat","Asia/Ho_Chi_Minh|Asia/Saigon","Asia/Hong_Kong|Hongkong","Asia/Jerusalem|Asia/Tel_Aviv","Asia/Jerusalem|Israel","Asia/Kathmandu|Asia/Katmandu","Asia/Kolkata|Asia/Calcutta","Asia/Kuala_Lumpur|Asia/Singapore","Asia/Kuala_Lumpur|Singapore","Asia/Macau|Asia/Macao","Asia/Makassar|Asia/Ujung_Pandang","Asia/Nicosia|Europe/Nicosia","Asia/Qatar|Asia/Bahrain","Asia/Rangoon|Asia/Yangon","Asia/Riyadh|Asia/Aden","Asia/Riyadh|Asia/Kuwait","Asia/Seoul|ROK","Asia/Shanghai|Asia/Chongqing","Asia/Shanghai|Asia/Chungking","Asia/Shanghai|Asia/Harbin","Asia/Shanghai|PRC","Asia/Taipei|ROC","Asia/Tehran|Iran","Asia/Thimphu|Asia/Thimbu","Asia/Tokyo|Japan","Asia/Ulaanbaatar|Asia/Ulan_Bator","Asia/Urumqi|Asia/Kashgar","Atlantic/Faroe|Atlantic/Faeroe","Atlantic/Reykjavik|Iceland","Atlantic/South_Georgia|Etc/GMT+2","Australia/Adelaide|Australia/South","Australia/Brisbane|Australia/Queensland","Australia/Broken_Hill|Australia/Yancowinna","Australia/Darwin|Australia/North","Australia/Hobart|Australia/Tasmania","Australia/Lord_Howe|Australia/LHI","Australia/Melbourne|Australia/Victoria","Australia/Perth|Australia/West","Australia/Sydney|Australia/ACT","Australia/Sydney|Australia/Canberra","Australia/Sydney|Australia/NSW","Etc/GMT-0|Etc/GMT","Etc/GMT-0|Etc/GMT+0","Etc/GMT-0|Etc/GMT0","Etc/GMT-0|Etc/Greenwich","Etc/GMT-0|GMT","Etc/GMT-0|GMT+0","Etc/GMT-0|GMT-0","Etc/GMT-0|GMT0","Etc/GMT-0|Greenwich","Etc/UCT|UCT","Etc/UTC|Etc/Universal","Etc/UTC|Etc/Zulu","Etc/UTC|UTC","Etc/UTC|Universal","Etc/UTC|Zulu","Europe/Belgrade|Europe/Ljubljana","Europe/Belgrade|Europe/Podgorica","Europe/Belgrade|Europe/Sarajevo","Europe/Belgrade|Europe/Skopje","Europe/Belgrade|Europe/Zagreb","Europe/Chisinau|Europe/Tiraspol","Europe/Dublin|Eire","Europe/Helsinki|Europe/Mariehamn","Europe/Istanbul|Asia/Istanbul","Europe/Istanbul|Turkey","Europe/Lisbon|Portugal","Europe/London|Europe/Belfast","Europe/London|Europe/Guernsey","Europe/London|Europe/Isle_of_Man","Europe/London|Europe/Jersey","Europe/London|GB","Europe/London|GB-Eire","Europe/Moscow|W-SU","Europe/Oslo|Arctic/Longyearbyen","Europe/Oslo|Atlantic/Jan_Mayen","Europe/Prague|Europe/Bratislava","Europe/Rome|Europe/San_Marino","Europe/Rome|Europe/Vatican","Europe/Warsaw|Poland","Europe/Zurich|Europe/Busingen","Europe/Zurich|Europe/Vaduz","Indian/Christmas|Etc/GMT-7","Pacific/Auckland|Antarctica/McMurdo","Pacific/Auckland|Antarctica/South_Pole","Pacific/Auckland|NZ","Pacific/Chatham|NZ-CHAT","Pacific/Easter|Chile/EasterIsland","Pacific/Guam|Pacific/Saipan","Pacific/Honolulu|Pacific/Johnston","Pacific/Honolulu|US/Hawaii","Pacific/Kwajalein|Kwajalein","Pacific/Pago_Pago|Pacific/Midway","Pacific/Pago_Pago|Pacific/Samoa","Pacific/Pago_Pago|US/Samoa","Pacific/Palau|Etc/GMT-9","Pacific/Pohnpei|Etc/GMT-11","Pacific/Pohnpei|Pacific/Ponape","Pacific/Port_Moresby|Etc/GMT-10","Pacific/Port_Moresby|Pacific/Chuuk","Pacific/Port_Moresby|Pacific/Truk","Pacific/Port_Moresby|Pacific/Yap","Pacific/Tarawa|Etc/GMT-12","Pacific/Tarawa|Pacific/Funafuti","Pacific/Tarawa|Pacific/Wake","Pacific/Tarawa|Pacific/Wallis"]}),moment}),function(){!function(){for(var lastTime=0,vendors=["ms","moz","webkit","o"],x=0;x<vendors.length&&!window.requestAnimationFrame;++x)window.requestAnimationFrame=window[vendors[x]+"RequestAnimationFrame"],window.cancelAnimationFrame=window[vendors[x]+"CancelAnimationFrame"]||window[vendors[x]+"CancelRequestAnimationFrame"];window.requestAnimationFrame||(window.requestAnimationFrame=function(callback,element){var currTime=(new Date).getTime(),timeToCall=Math.max(0,16-(currTime-lastTime)),id=window.setTimeout(function(){callback(currTime+timeToCall)},timeToCall);return lastTime=currTime+timeToCall,id}),window.cancelAnimationFrame||(window.cancelAnimationFrame=function(id){clearTimeout(id)})}(),window.Typewriter=function(element,options){return this._settings={cursorAnimationPaused:!1,opacityIncreasing:!1,currentOpacity:1,delayedQue:[],delayItemsCount:0,eventQue:[],calledEvents:[],eventRunning:!1,timeout:!1,delayExecution:!1,fps:.06,typingFrameCount:0,stringToTypeHTMLArray:[],currentTypedCharacters:[],typing:!1,usedIDs:[],charAmountToDelete:!1,userOptions:{},eventLoopRerun:0},element?"object"!=typeof options?console.error("Typewriter only accepts the options as an object."):(this._settings.userOptions=options,this.default_options={strings:!1,cursorClassName:"typewriter-cursor",cursor:"|",animateCursor:!0,blinkSpeed:50,typingSpeed:"natural",deleteSpeed:"natural",charSpanClassName:"typewriter-char",wrapperClassName:"typewriter-wrapper",loop:!1,autoStart:!1,devMode:!1},this.options=this._setupOptions(options),this.el=element,this._setupTypwriterWrapper(),this._startCursorAnimation(),void(!0===this.options.autoStart&&this.options.strings&&this.typeOutAllStrings())):console.error("Please choose an DOM element so that type writer can display itself.")};var TypewriterPrototype=window.Typewriter.prototype;TypewriterPrototype.stop=function(){return this._addToEventQue(this._stopEventLoop),this},TypewriterPrototype.start=function(){return this._startEventLoop(),this},TypewriterPrototype.rerun=function(){return this._addToEventQue(this._rerunCalledEvents),this},TypewriterPrototype.typeString=function(string){if(!string||"string"!=typeof string)return console.error("Please enter a string as the paramater.");var string_chars=this._getCharacters(string);return this._addToEventQue([this._typeCharacters,[string_chars]]),this},TypewriterPrototype.deleteAll=function(){return this._addToEventQue([this._deleteChars,["all"]]),this},TypewriterPrototype.deleteChars=function(amount){return this._addToEventQue([this._deleteChars,[amount]]),this},TypewriterPrototype.pauseFor=function(ms){return this._addToEventQue([this._pauseFor,[ms]]),this},TypewriterPrototype.typeOutAllStrings=function(){var characters_array=this._getStringsAsCharsArray();if(1===characters_array.length)this._typeCharacters(characters_array[0]);else for(var i=0,length=characters_array.length;i<length;i++)this._addToEventQue([this._typeCharacters,[characters_array[i]]]),this.pauseFor(this._randomInteger(1500,2500)),this.deleteAll(),this.pauseFor(this._randomInteger(1500,2500));return this},TypewriterPrototype.changeSettings=function(new_settings){return new_settings||"object"==typeof new_settings?(this._addToEventQue([this._changeSettings,[JSON.stringify(new_settings)]]),this):console.error("Typewriter will only accept an object as the settings.")},TypewriterPrototype.changeBlinkSpeed=function(new_speed){return new_speed||"number"==typeof new_speed?(this.changeSettings({blinkSpeed:new_speed}),this):console.error("Please enter a number for the new blink speed.")},TypewriterPrototype.changeTypingSpeed=function(new_speed){if(!new_speed&&"number"!=typeof new_speed)return console.error("Please enter a number for the new typing speed.");return this.changeSettings({typingSpeed:new_speed}),this},TypewriterPrototype.changeDeleteSpeed=function(new_speed){return new_speed||"number"==typeof new_speed?(this.changeSettings({changeDeleteSpeed:new_speed}),this):console.error("Please enter a number for the new delete speed.")},TypewriterPrototype._rerunCalledEvents=function(){this._settings.currentTypedCharacters.length>0?(this.deleteAll(),this._resetEventLoop("rerunCalledEvents")):(this._settings.eventQue=this._settings.calledEvents,this._settings.calledEvents=[],this.options=this._setupOptions(this._settings.userOptions),this._settings.usedIDs=[],this.charAmountToDelete=!1,this._startEventLoop())},TypewriterPrototype._deleteChars=function(amount){return amount&&(this._settings.charAmountToDelete=amount),this._deletingCharIdsAnimation=window.requestAnimationFrame(this._deletingCharAnimationFrame.bind(this)),this},TypewriterPrototype._pauseFor=function(ms){var self=this;self._settings.eventRunning=!0,setTimeout(function(){self._resetEventLoop("pauseFor")},ms)},TypewriterPrototype._changeSettings=function(new_settings){this.options=this._setupOptions(JSON.parse(new_settings[0])),this._resetEventLoop("changeSettings"),this.options.devMode&&console.log("New settings",this.options)},TypewriterPrototype._deletingCharAnimationFrame=function(){var self=this,delete_speed=this.options.deleteSpeed,typewriter_wrapper_class_name=self.options.wrapperClassName,current_typed_char_ids=self._settings.currentTypedCharacters,char_amount_to_delete=self._settings.charAmountToDelete;if(!self._settings.charAmountToDelete||0===self._settings.charAmountToDelete||0===current_typed_char_ids)return self._resetEventLoop("deletingCharAnimationFrame"),!0;"natural"==delete_speed&&(delete_speed=self._randomInteger(50,150)),"all"==char_amount_to_delete&&(char_amount_to_delete=current_typed_char_ids.length,self._settings.charAmountToDelete=char_amount_to_delete),setTimeout(function(){if(self._settings.charAmountToDelete){var last_typed_char_index=current_typed_char_ids.length-1,get_last_typed_char=current_typed_char_ids[last_typed_char_index];self._settings.currentTypedCharacters.splice(last_typed_char_index,1);var char_to_delete_el=document.getElementById(get_last_typed_char);if(char_to_delete_el)self.el.querySelector("."+typewriter_wrapper_class_name).removeChild(char_to_delete_el),self._settings.charAmountToDelete=char_amount_to_delete-1,self.options.devMode&&console.log("Deleted char with ID",get_last_typed_char)}self._deletingCharIdsAnimation=window.requestAnimationFrame(self._deletingCharAnimationFrame.bind(self))},delete_speed)},TypewriterPrototype._setupOptions=function(new_options){var merged_options={};for(var attrname in this.default_options)merged_options[attrname]=this.default_options[attrname];if(this._settings.userOptions)for(var attrname in this._settings.userOptions)merged_options[attrname]=this._settings.userOptions[attrname];for(var attrname in new_options)merged_options[attrname]=new_options[attrname];return merged_options},TypewriterPrototype._addToEventQue=function(event){this._settings.eventQue.push(event),this._settings.eventQue.length>0&&!this._settings.eventRunning&&this.options.autoStart&&this._startEventLoop()},TypewriterPrototype._startEventLoop=function(){if(this.options.devMode&&console.log("Event loop started."),!this._settings.eventRunning){if(this._settings.eventQue.length>0){this.eventLoopRerun=0;var first_event=this._settings.eventQue[0];"function"==typeof first_event?(this._settings.eventRunning=!0,this._settings.calledEvents.push(first_event),this._settings.eventQue.splice(0,1),first_event.call(this),this.options.devMode&&console.log("Event started.")):first_event instanceof Array&&"function"==typeof first_event[0]&&first_event[1]instanceof Array&&(this._settings.eventRunning=!0,this._settings.calledEvents.push(first_event),this._settings.eventQue.splice(0,1),first_event[0].call(this,first_event[1]),this.options.devMode&&console.log("Event started."))}this._eventQueAnimation=window.requestAnimationFrame(this._startEventLoop.bind(this))}if(!this._settings.eventRunning&&this._settings.eventQue.length<=0){var self=this;return self._stopEventLoop(),void setTimeout(function(){self.options.loop&&(self.eventLoopRerun++,self.options.devMode&&console.log("Before Loop State",self._settings),self.eventLoopRerun>4?(console.error("Maximum amount of loop retries reached."),self._stopEventLoop()):(self.options.devMode&&console.log("Looping events."),self._rerunCalledEvents()))},1e3)}},TypewriterPrototype._resetEventLoop=function(name){var event_name=name||"Event";this._settings.eventRunning=!1,this._startEventLoop(),this.options.devMode&&console.log(event_name,"Finished")},TypewriterPrototype._stopEventLoop=function(){window.cancelAnimationFrame(this._eventQueAnimation),this.options.devMode&&console.log("Event loop stopped.")},TypewriterPrototype._setupTypwriterWrapper=function(){var typewriter_wrapper_class_name=this.options.wrapperClassName,typewriter_wrapper=document.createElement("span");typewriter_wrapper.className=typewriter_wrapper_class_name,this.el.innerHTML="",this.el.appendChild(typewriter_wrapper)},TypewriterPrototype._typeCharacters=function(characters_array){return this._settings.stringToTypeHTMLArray=this._convertCharsToHTML(characters_array),this._typingAnimation=window.requestAnimationFrame(this._typingAnimationFrame.bind(this,characters_array.length)),this},TypewriterPrototype._typingAnimationFrame=function(total_items){var self=this,typing_speed=this.options.typingSpeed,typewriter_wrapper_class_name=self.options.wrapperClassName;if(0==self._settings.stringToTypeHTMLArray.length)return window.cancelAnimationFrame(self._typingAnimation),this._resetEventLoop("typingAnimationFrame"),!0;"natural"==typing_speed&&(typing_speed=this._randomInteger(50,150)),setTimeout(function(){self.el.innerHTML;var item_to_type=self._settings.stringToTypeHTMLArray[0];self.el.querySelector("."+typewriter_wrapper_class_name).appendChild(item_to_type.el),self._settings.currentTypedCharacters.push(item_to_type.id),self._settings.stringToTypeHTMLArray.splice(0,1),self._typingAnimation=window.requestAnimationFrame(self._typingAnimationFrame.bind(self,total_items)),self.options.devMode&&console.log("Typed",item_to_type)},typing_speed)},TypewriterPrototype._convertCharsToHTML=function(chars){for(var chars_html_wrap_array=[],char_class_name=this.options.charSpanClassName,chars_array=chars[0],i=0,length=chars_array.length;i<length;i++){var char_element=document.createElement("span"),char_id=this._generateUniqueID();char_element.id=char_id,char_element.className=char_class_name+" typewriter-item-"+i,char_element.innerHTML=chars_array[i],chars_html_wrap_array.push({id:char_id,el:char_element})}return chars_html_wrap_array},TypewriterPrototype._getCharacters=function(string){return"string"==typeof string&&string.split("")},TypewriterPrototype._getStringsAsCharsArray=function(){var strings_array_check=this.options.strings instanceof Array,strings_string_check="string"==typeof this.options.strings;if(!strings_array_check)return strings_string_check?[this.options.strings.split("")]:console.error("Typewriter only accepts strings or an array of strings as the input.");for(var strings_chars_array=[],i=0,length=this.options.strings.length;i<length;i++){var string_chars=this._getCharacters(this.options.strings[i]);if(!string_chars){console.error("Please enter only strings.");break}strings_chars_array.push(string_chars)}return strings_chars_array},TypewriterPrototype._cursorAnimationFrame=function(){if(!this._settings.cursorAnimationPaused){var opacity_amount=.001*this.options.blinkSpeed,cursor_el=this.el.querySelector(".typewriter-cursor");1==this._settings.opacityIncreasing&&(this._settings.currentOpacity>=1&&(this._settings.opacityIncreasing=!1,this._settings.currentOpacity=1),this._settings.currentOpacity+=opacity_amount),0==this._settings.opacityIncreasing&&(this._settings.currentOpacity<=0&&(this._settings.opacityIncreasing=!0,this._settings.currentOpacity=0),this._settings.currentOpacity-=opacity_amount),cursor_el.style.opacity=this._settings.currentOpacity,this._cursorAnimation=window.requestAnimationFrame(this._cursorAnimationFrame.bind(this))}},TypewriterPrototype.appendText=function(text){return this._addToEventQue([this._appendText,[text]]),this},TypewriterPrototype._appendText=function(text){var char_class_name=this.options.charSpanClassName,char_element=document.createElement("span"),char_id=this._generateUniqueID();char_element.id=char_id,char_element.className=char_class_name+" dom-appended",char_element.innerHTML=text;var items=[];items.push({id:char_id,el:char_element}),this._settings.stringToTypeHTMLArray=items,window.requestAnimationFrame(this._typingAnimationFrame.bind(this,1))},TypewriterPrototype._startCursorAnimation=function(){var cursor=this.options.cursor,cursor_class_name=this.options.cursorClassName,cursor_element=document.createElement("span");cursor_element.className=cursor_class_name,cursor_element.innerHTML=cursor,this.el.appendChild(cursor_element),this.options.animateCursor&&(this._cursorAnimation=window.requestAnimationFrame(this._cursorAnimationFrame.bind(this)))},TypewriterPrototype._pauseCursorAnimation=function(){this._settings.cursorAnimationPaused||(window.cancelAnimationFrame(this._cursorAnimation),this._settings.cursorAnimationPaused=!0)},TypewriterPrototype._restartCursorAnimation=function(){if(!this._settings.cursorAnimationPaused)return console.error("Cursor animation is already running.");this._settings.cursorAnimationPaused=!1,this._cursorAnimation=window.requestAnimationFrame(this._cursorAnimationFrame.bind(this))},TypewriterPrototype._randomInteger=function(min,max){return Math.floor(Math.random()*(max-min+1))+min},TypewriterPrototype._randomID=function(){for(var text="",possible="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",i=0;i<this._randomInteger(5,15);i++)text+=possible.charAt(Math.floor(Math.random()*possible.length));return text},TypewriterPrototype._generateUniqueID=function(){var temp_id=this._randomID();return-1==this._settings.usedIDs.indexOf(temp_id)?(this._settings.usedIDs.push(temp_id),temp_id):this._generateUniqueID.call(this)}}(),function(global,factory){"object"==typeof exports&&"undefined"!=typeof module?module.exports=factory():"function"==typeof define&&define.amd?define("uikit",factory):global.UIkit=factory()}(this,function(){function bind(fn,context){return function(a){var l=arguments.length;return l?l>1?fn.apply(context,arguments):fn.call(context,a):fn.call(context)}}var hasOwnProperty=Object.prototype.hasOwnProperty;function hasOwn(obj,key){return hasOwnProperty.call(obj,key)}var hyphenateCache={},hyphenateRe=/([a-z\d])([A-Z])/g;function hyphenate(str){return str in hyphenateCache||(hyphenateCache[str]=str.replace(hyphenateRe,"$1-$2").toLowerCase()),hyphenateCache[str]}var camelizeRe=/-(\w)/g;function camelize(str){return str.replace(camelizeRe,toUpper)}function toUpper(_,c){return c?c.toUpperCase():""}function ucfirst(str){return str.length?toUpper(0,str.charAt(0))+str.slice(1):""}var strPrototype=String.prototype,startsWithFn=strPrototype.startsWith||function(search){return 0===this.lastIndexOf(search,0)};function startsWith(str,search){return startsWithFn.call(str,search)}var endsWithFn=strPrototype.endsWith||function(search){return this.substr(-search.length)===search};function endsWith(str,search){return endsWithFn.call(str,search)}var includesFn=function(search){return~this.indexOf(search)},includesStr=strPrototype.includes||includesFn,includesArray=Array.prototype.includes||includesFn;function includes(obj,search){return obj&&(isString(obj)?includesStr:includesArray).call(obj,search)}var isArray=Array.isArray;function isFunction(obj){return"function"==typeof obj}function isObject(obj){return null!==obj&&"object"==typeof obj}function isPlainObject(obj){return isObject(obj)&&Object.getPrototypeOf(obj)===Object.prototype}function isWindow(obj){return isObject(obj)&&obj===obj.window}function isDocument(obj){return isObject(obj)&&9===obj.nodeType}function isJQuery(obj){return isObject(obj)&&!!obj.jquery}function isNode(element){return element instanceof Node||isObject(element)&&1===element.nodeType}function isNodeCollection(element){return element instanceof NodeList||element instanceof HTMLCollection}function isBoolean(value){return"boolean"==typeof value}function isString(value){return"string"==typeof value}function isNumber(value){return"number"==typeof value}function isNumeric(value){return isNumber(value)||isString(value)&&!isNaN(value-parseFloat(value))}function isUndefined(value){return void 0===value}function toBoolean(value){return isBoolean(value)?value:"true"===value||"1"===value||""===value||"false"!==value&&"0"!==value&&value}function toNumber(value){var number=Number(value);return!isNaN(number)&&number}function toFloat(value){return parseFloat(value)||0}function toNode(element){return isNode(element)||isWindow(element)||isDocument(element)?element:isNodeCollection(element)||isJQuery(element)?element[0]:isArray(element)?toNode(element[0]):null}var arrayProto=Array.prototype;function toNodes(element){return isNode(element)?[element]:isNodeCollection(element)?arrayProto.slice.call(element):isArray(element)?element.map(toNode).filter(Boolean):isJQuery(element)?element.toArray():[]}function toList(value){return isArray(value)?value:isString(value)?value.split(/,(?![^(]*\))/).map(function(value){return isNumeric(value)?toNumber(value):toBoolean(value.trim())}):[value]}function toMs(time){return time?endsWith(time,"ms")?toFloat(time):1e3*toFloat(time):0}function swap(value,a,b){return value.replace(new RegExp(a+"|"+b,"mg"),function(match){return match===a?b:a})}var assign=Object.assign||function(target){for(var args=[],len=arguments.length-1;len-- >0;)args[len]=arguments[len+1];target=Object(target);for(var i=0;i<args.length;i++){var source=args[i];if(null!==source)for(var key in source)hasOwn(source,key)&&(target[key]=source[key])}return target};function each(obj,cb){for(var key in obj)cb.call(obj[key],obj[key],key)}function sortBy(collection,prop){return collection.sort(function(a,b){return a[prop]>b[prop]?1:b[prop]>a[prop]?-1:0})}function clamp(number,min,max){return void 0===min&&(min=0),void 0===max&&(max=1),Math.min(Math.max(number,min),max)}function noop(){}function intersectRect(r1,r2){return r1.left<=r2.right&&r2.left<=r1.right&&r1.top<=r2.bottom&&r2.top<=r1.bottom}function pointInRect(point,rect){return intersectRect({top:point.y,bottom:point.y,left:point.x,right:point.x},rect)}var Dimensions={ratio:function(dimensions,prop,value){var obj,aProp="width"===prop?"height":"width";return(obj={})[aProp]=Math.round(value*dimensions[aProp]/dimensions[prop]),obj[prop]=value,obj},contain:function(dimensions,maxDimensions){var this$1=this;return each(dimensions=assign({},dimensions),function(_,prop){return dimensions=dimensions[prop]>maxDimensions[prop]?this$1.ratio(dimensions,prop,maxDimensions[prop]):dimensions}),dimensions},cover:function(dimensions,maxDimensions){var this$1=this;return each(dimensions=this.contain(dimensions,maxDimensions),function(_,prop){return dimensions=dimensions[prop]<maxDimensions[prop]?this$1.ratio(dimensions,prop,maxDimensions[prop]):dimensions}),dimensions}};function attr(element,name,value){if(isObject(name))for(var key in name)attr(element,key,name[key]);else{if(isUndefined(value))return(element=toNode(element))&&element.getAttribute(name);toNodes(element).forEach(function(element){isFunction(value)&&(value=value.call(element,attr(element,name))),null===value?removeAttr(element,name):element.setAttribute(name,value)})}}function hasAttr(element,name){return toNodes(element).some(function(element){return element.hasAttribute(name)})}function removeAttr(element,name){element=toNodes(element),name.split(" ").forEach(function(name){return element.forEach(function(element){return element.removeAttribute(name)})})}function filterAttr(element,attribute,pattern,replacement){attr(element,attribute,function(value){return value?value.replace(pattern,replacement):value})}function data(element,attribute){for(var i=0,attrs=[attribute,"data-"+attribute];i<attrs.length;i++)if(hasAttr(element,attrs[i]))return attr(element,attrs[i])}function query(selector,context){return toNode(selector)||find(selector,isContextSelector(selector)?context:document)}function queryAll(selector,context){var nodes=toNodes(selector);return nodes.length&&nodes||findAll(selector,isContextSelector(selector)?context:document)}function find(selector,context){return toNode(_query(selector,context,"querySelector"))}function findAll(selector,context){return toNodes(_query(selector,context,"querySelectorAll"))}function _query(selector,context,queryFn){if(void 0===context&&(context=document),!selector||!isString(selector))return null;var removes;isContextSelector(selector=selector.replace(contextSanitizeRe,"$1 *"))&&(removes=[],selector=selector.split(",").map(function(selector,i){var ctx=context;if("!"===(selector=selector.trim())[0]){var selectors=selector.substr(1).trim().split(" ");ctx=closest(context.parentNode,selectors[0]),selector=selectors.slice(1).join(" ").trim()}if("-"===selector[0]){var selectors$1=selector.substr(1).trim().split(" "),prev=(ctx||context).previousElementSibling;ctx=matches(prev,selector.substr(1))?prev:null,selector=selectors$1.slice(1).join(" ")}return ctx?(ctx.id||(ctx.id="uk-"+Date.now()+i,removes.push(function(){return removeAttr(ctx,"id")})),"#"+escape(ctx.id)+" "+selector):null}).filter(Boolean).join(","),context=document);try{return context[queryFn](selector)}catch(e){return null}finally{removes&&removes.forEach(function(remove){return remove()})}}var contextSelectorRe=/(^|,)\s*[!>+~-]/,contextSanitizeRe=/([!>+~-])(?=\s+[!>+~-]|\s*$)/g;function isContextSelector(selector){return isString(selector)&&selector.match(contextSelectorRe)}var elProto=Element.prototype,matchesFn=elProto.matches||elProto.webkitMatchesSelector||elProto.msMatchesSelector;function matches(element,selector){return toNodes(element).some(function(element){return matchesFn.call(element,selector)})}var closestFn=elProto.closest||function(selector){var ancestor=this;do{if(matches(ancestor,selector))return ancestor;ancestor=ancestor.parentNode}while(ancestor&&1===ancestor.nodeType)};function closest(element,selector){return startsWith(selector,">")&&(selector=selector.slice(1)),isNode(element)?element.parentNode&&closestFn.call(element,selector):toNodes(element).map(function(element){return element.parentNode&&closestFn.call(element,selector)}).filter(Boolean)}function parents(element,selector){for(var elements=[],parent=toNode(element).parentNode;parent&&1===parent.nodeType;)matches(parent,selector)&&elements.push(parent),parent=parent.parentNode;return elements}var escapeFn=window.CSS&&CSS.escape||function(css){return css.replace(/([^\x7f-\uFFFF\w-])/g,function(match){return"\\"+match})};function escape(css){return isString(css)?escapeFn.call(null,css):""}var voidElements={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,menuitem:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};function isVoidElement(element){return toNodes(element).some(function(element){return voidElements[element.tagName.toLowerCase()]})}function isVisible(element){return toNodes(element).some(function(element){return element.offsetWidth||element.offsetHeight||element.getClientRects().length})}var selInput="input,select,textarea,button";function isInput(element){return toNodes(element).some(function(element){return matches(element,selInput)})}function filter(element,selector){return toNodes(element).filter(function(element){return matches(element,selector)})}function within(element,selector){return isString(selector)?matches(element,selector)||closest(element,selector):element===selector||(isDocument(selector)?selector.documentElement:toNode(selector)).contains(toNode(element))}function on(){for(var args=[],len=arguments.length;len--;)args[len]=arguments[len];var ref=getArgs(args),target=ref[0],type=ref[1],selector=ref[2],listener=ref[3],useCapture=ref[4];return target=toEventTarget(target),selector&&(listener=function(element,selector,listener){var this$1=this;return function(e){var target=e.target,current=">"===selector[0]?findAll(selector,element).reverse().filter(function(element){return within(target,element)})[0]:closest(target,selector);current&&(e.delegate=element,e.current=current,listener.call(this$1,e))}}(target,selector,listener)),listener.length>1&&(listener=function(listener){return function(e){return isArray(e.detail)?listener.apply(void 0,[e].concat(e.detail)):listener(e)}}(listener)),type.split(" ").forEach(function(type){return target&&target.addEventListener(type,listener,useCapture)}),function(){return off(target,type,listener,useCapture)}}function off(target,type,listener,useCapture){void 0===useCapture&&(useCapture=!1),(target=toEventTarget(target))&&type.split(" ").forEach(function(type){return target.removeEventListener(type,listener,useCapture)})}function once(){for(var args=[],len=arguments.length;len--;)args[len]=arguments[len];var ref=getArgs(args),element=ref[0],type=ref[1],selector=ref[2],listener=ref[3],useCapture=ref[4],condition=ref[5],off=on(element,type,selector,function(e){var result=!condition||condition(e);result&&(off(),listener(e,result))},useCapture);return off}function trigger(target,event,detail){return toEventTargets(target).reduce(function(notCanceled,target){return notCanceled&&target.dispatchEvent(createEvent(event,!0,!0,detail))},!0)}function createEvent(e,bubbles,cancelable,detail){if(void 0===bubbles&&(bubbles=!0),void 0===cancelable&&(cancelable=!1),isString(e)){var event=document.createEvent("CustomEvent");event.initCustomEvent(e,bubbles,cancelable,detail),e=event}return e}function getArgs(args){return isString(args[0])&&(args[0]=find(args[0])),isFunction(args[2])&&args.splice(2,0,!1),args}function isEventTarget(target){return"EventTarget"in window?target instanceof EventTarget:target&&"addEventListener"in target}function toEventTarget(target){return isEventTarget(target)?target:toNode(target)}function toEventTargets(target){return isEventTarget(target)?[target]:isArray(target)?target.map(toEventTarget).filter(Boolean):toNodes(target)}function preventClick(){var timer=setTimeout(once(document,"click",function(e){e.preventDefault(),e.stopImmediatePropagation(),clearTimeout(timer)},!0));trigger(document,"touchcancel")}var Promise$1="Promise"in window?window.Promise:PromiseFn,Deferred=function(){var this$1=this;this.promise=new Promise$1(function(resolve,reject){this$1.reject=reject,this$1.resolve=resolve})},PENDING=2,async="setImmediate"in window?setImmediate:setTimeout;function PromiseFn(executor){this.state=PENDING,this.value=void 0,this.deferred=[];var promise=this;try{executor(function(x){promise.resolve(x)},function(r){promise.reject(r)})}catch(e){promise.reject(e)}}PromiseFn.reject=function(r){return new PromiseFn(function(resolve,reject){reject(r)})},PromiseFn.resolve=function(x){return new PromiseFn(function(resolve,reject){resolve(x)})},PromiseFn.all=function(iterable){return new PromiseFn(function(resolve,reject){var result=[],count=0;function resolver(i){return function(x){result[i]=x,(count+=1)===iterable.length&&resolve(result)}}0===iterable.length&&resolve(result);for(var i=0;i<iterable.length;i+=1)PromiseFn.resolve(iterable[i]).then(resolver(i),reject)})},PromiseFn.race=function(iterable){return new PromiseFn(function(resolve,reject){for(var i=0;i<iterable.length;i+=1)PromiseFn.resolve(iterable[i]).then(resolve,reject)})};var p=PromiseFn.prototype;function ajax(url,options){return new Promise$1(function(resolve,reject){var env=assign({data:null,method:"GET",headers:{},xhr:new XMLHttpRequest,beforeSend:noop,responseType:""},options);env.beforeSend(env);var xhr=env.xhr;for(var prop in env)if(prop in xhr)try{xhr[prop]=env[prop]}catch(e){}for(var header in xhr.open(env.method.toUpperCase(),url),env.headers)xhr.setRequestHeader(header,env.headers[header]);on(xhr,"load",function(){0===xhr.status||xhr.status>=200&&xhr.status<300||304===xhr.status?resolve(xhr):reject(assign(Error(xhr.statusText),{xhr:xhr,status:xhr.status}))}),on(xhr,"error",function(){return reject(assign(Error("Network Error"),{xhr:xhr}))}),on(xhr,"timeout",function(){return reject(assign(Error("Network Timeout"),{xhr:xhr}))}),xhr.send(env.data)})}function getImage(src,srcset,sizes){return new Promise$1(function(resolve,reject){var img=new Image;img.onerror=reject,img.onload=function(){return resolve(img)},img.src=src,srcset&&(img.srcset=srcset),sizes&&(img.sizes=sizes)})}function isReady(){return"complete"===document.readyState||"loading"!==document.readyState&&!document.documentElement.doScroll}function ready(fn){if(isReady())fn();else var handle=function(){unbind1(),unbind2(),fn()},unbind1=on(document,"DOMContentLoaded",handle),unbind2=on(window,"load",handle)}function index(element,ref){return ref?toNodes(element).indexOf(toNode(ref)):toNodes((element=toNode(element))&&element.parentNode.children).indexOf(element)}function getIndex(i,elements,current,finite){void 0===current&&(current=0),void 0===finite&&(finite=!1);var length=(elements=toNodes(elements)).length;return i=isNumeric(i)?toNumber(i):"next"===i?current+1:"previous"===i?current-1:index(elements,i),finite?clamp(i,0,length-1):(i%=length)<0?i+length:i}function empty(element){return(element=toNode(element)).innerHTML="",element}function html(parent,html){return parent=toNode(parent),isUndefined(html)?parent.innerHTML:append(parent.hasChildNodes()?empty(parent):parent,html)}function append(parent,element){return parent=toNode(parent),insertNodes(element,function(element){return parent.appendChild(element)})}function before(ref,element){return ref=toNode(ref),insertNodes(element,function(element){return ref.parentNode.insertBefore(element,ref)})}function after(ref,element){return ref=toNode(ref),insertNodes(element,function(element){return ref.nextSibling?before(ref.nextSibling,element):append(ref.parentNode,element)})}function insertNodes(element,fn){return(element=isString(element)?fragment(element):element)?"length"in element?toNodes(element).map(fn):fn(element):null}function remove(element){toNodes(element).map(function(element){return element.parentNode&&element.parentNode.removeChild(element)})}function wrapAll(element,structure){for(structure=toNode(before(element,structure));structure.firstChild;)structure=structure.firstChild;return append(structure,element),structure}function wrapInner(element,structure){return toNodes(toNodes(element).map(function(element){return element.hasChildNodes?wrapAll(toNodes(element.childNodes),structure):append(element,structure)}))}function unwrap(element){toNodes(element).map(function(element){return element.parentNode}).filter(function(value,index,self){return self.indexOf(value)===index}).forEach(function(parent){before(parent,parent.childNodes),remove(parent)})}p.resolve=function(x){var promise=this;if(promise.state===PENDING){if(x===promise)throw new TypeError("Promise settled with itself.");var called=!1;try{var then=x&&x.then;if(null!==x&&isObject(x)&&isFunction(then))return void then.call(x,function(x){called||promise.resolve(x),called=!0},function(r){called||promise.reject(r),called=!0})}catch(e){return void(called||promise.reject(e))}promise.state=0,promise.value=x,promise.notify()}},p.reject=function(reason){if(this.state===PENDING){if(reason===this)throw new TypeError("Promise settled with itself.");this.state=1,this.value=reason,this.notify()}},p.notify=function(){var this$1=this;async(function(){if(this$1.state!==PENDING)for(;this$1.deferred.length;){var ref=this$1.deferred.shift(),onResolved=ref[0],onRejected=ref[1],resolve=ref[2],reject=ref[3];try{0===this$1.state?isFunction(onResolved)?resolve(onResolved.call(void 0,this$1.value)):resolve(this$1.value):1===this$1.state&&(isFunction(onRejected)?resolve(onRejected.call(void 0,this$1.value)):reject(this$1.value))}catch(e){reject(e)}}})},p.then=function(onResolved,onRejected){var this$1=this;return new PromiseFn(function(resolve,reject){this$1.deferred.push([onResolved,onRejected,resolve,reject]),this$1.notify()})},p.catch=function(onRejected){return this.then(void 0,onRejected)};var fragmentRe=/^\s*<(\w+|!)[^>]*>/,singleTagRe=/^<(\w+)\s*\/?>(?:<\/\1>)?$/;function fragment(html){var matches=singleTagRe.exec(html);if(matches)return document.createElement(matches[1]);var container=document.createElement("div");return fragmentRe.test(html)?container.insertAdjacentHTML("beforeend",html.trim()):container.textContent=html,container.childNodes.length>1?toNodes(container.childNodes):container.firstChild}function apply(node,fn){if(node&&1===node.nodeType)for(fn(node),node=node.firstElementChild;node;)apply(node,fn),node=node.nextElementSibling}function addClass(element){for(var args=[],len=arguments.length-1;len-- >0;)args[len]=arguments[len+1];apply$1(element,args,"add")}function removeClass(element){for(var args=[],len=arguments.length-1;len-- >0;)args[len]=arguments[len+1];apply$1(element,args,"remove")}function removeClasses(element,cls){filterAttr(element,"class",new RegExp("(^|\\s)"+cls+"(?!\\S)","g"),"")}function replaceClass(element){for(var args=[],len=arguments.length-1;len-- >0;)args[len]=arguments[len+1];args[0]&&removeClass(element,args[0]),args[1]&&addClass(element,args[1])}function hasClass(element,cls){return toNodes(element).some(function(element){return element.classList.contains(cls)})}function toggleClass(element){for(var args=[],len=arguments.length-1;len-- >0;)args[len]=arguments[len+1];if(args.length){var force=isString((args=getArgs$1(args))[args.length-1])?[]:args.pop();args=args.filter(Boolean),toNodes(element).forEach(function(ref){for(var classList=ref.classList,i=0;i<args.length;i++)supports.Force?classList.toggle.apply(classList,[args[i]].concat(force)):classList[(isUndefined(force)?!classList.contains(args[i]):force)?"add":"remove"](args[i])})}}function apply$1(element,args,fn){(args=getArgs$1(args).filter(Boolean)).length&&toNodes(element).forEach(function(ref){var classList=ref.classList;supports.Multiple?classList[fn].apply(classList,args):args.forEach(function(cls){return classList[fn](cls)})})}function getArgs$1(args){return args.reduce(function(args,arg){return args.concat.call(args,isString(arg)&&includes(arg," ")?arg.trim().split(" "):arg)},[])}var list,supports={};(list=document.createElement("_").classList)&&(list.add("a","b"),list.toggle("c",!1),supports.Multiple=list.contains("b"),supports.Force=!list.contains("c")),list=null;var cssNumber={"animation-iteration-count":!0,"column-count":!0,"fill-opacity":!0,"flex-grow":!0,"flex-shrink":!0,"font-weight":!0,"line-height":!0,opacity:!0,order:!0,orphans:!0,widows:!0,"z-index":!0,zoom:!0};function css(element,property,value){return toNodes(element).map(function(element){if(isString(property)){if(property=propName(property),isUndefined(value))return getStyle(element,property);value||0===value?element.style[property]=isNumeric(value)&&!cssNumber[property]?value+"px":value:element.style.removeProperty(property)}else{if(isArray(property)){var styles=getStyles(element);return property.reduce(function(props,property){return props[property]=styles[propName(property)],props},{})}isObject(property)&&each(property,function(value,property){return css(element,property,value)})}return element})[0]}function getStyles(element,pseudoElt){return(element=toNode(element)).ownerDocument.defaultView.getComputedStyle(element,pseudoElt)}function getStyle(element,property,pseudoElt){return getStyles(element,pseudoElt)[property]}var vars={};function getCssVar(name){if(!(name in vars)){var element=append(document.documentElement,document.createElement("div"));addClass(element,"var-"+name);try{vars[name]=getStyle(element,"content",":before").replace(/^["'](.*)["']$/,"$1"),vars[name]=JSON.parse(vars[name])}catch(e){}document.documentElement.removeChild(element)}return vars[name]}var cssProps={};function propName(name){var ret=cssProps[name];return ret||(ret=cssProps[name]=function(name){if((name=hyphenate(name))in style)return name;var prefixedName,i=cssPrefixes.length;for(;i--;)if((prefixedName="-"+cssPrefixes[i]+"-"+name)in style)return prefixedName}(name)||name),ret}var cssPrefixes=["webkit","moz","ms"],style=document.createElement("_").style;function transition(element,props,duration,timing){return void 0===duration&&(duration=400),void 0===timing&&(timing="linear"),Promise$1.all(toNodes(element).map(function(element){return new Promise$1(function(resolve,reject){for(var name in props){var value=css(element,name);""===value&&css(element,name,value)}var timer=setTimeout(function(){return trigger(element,"transitionend")},duration);once(element,"transitionend transitioncanceled",function(ref){var type=ref.type;clearTimeout(timer),removeClass(element,"uk-transition"),css(element,{"transition-property":"","transition-duration":"","transition-timing-function":""}),"transitioncanceled"===type?reject():resolve()},!1,function(ref){var target=ref.target;return element===target}),addClass(element,"uk-transition"),css(element,assign({"transition-property":Object.keys(props).map(propName).join(","),"transition-duration":duration+"ms","transition-timing-function":timing},props))})}))}var Transition={start:transition,stop:function(element){return trigger(element,"transitionend"),Promise$1.resolve()},cancel:function(element){trigger(element,"transitioncanceled")},inProgress:function(element){return hasClass(element,"uk-transition")}},animationPrefix="uk-animation-",clsCancelAnimation="uk-cancel-animation";function animate(element,animation,duration,origin,out){var arguments$1=arguments;return void 0===duration&&(duration=200),Promise$1.all(toNodes(element).map(function(element){return new Promise$1(function(resolve,reject){if(hasClass(element,clsCancelAnimation))requestAnimationFrame(function(){return Promise$1.resolve().then(function(){return animate.apply(void 0,arguments$1).then(resolve,reject)})});else{var cls=animation+" "+animationPrefix+(out?"leave":"enter");startsWith(animation,animationPrefix)&&(origin&&(cls+=" uk-transform-origin-"+origin),out&&(cls+=" "+animationPrefix+"reverse")),reset(),once(element,"animationend animationcancel",function(ref){var hasReset=!1;"animationcancel"===ref.type?(reject(),reset()):(resolve(),Promise$1.resolve().then(function(){hasReset=!0,reset()})),requestAnimationFrame(function(){hasReset||(addClass(element,clsCancelAnimation),requestAnimationFrame(function(){return removeClass(element,clsCancelAnimation)}))})},!1,function(ref){var target=ref.target;return element===target}),css(element,"animationDuration",duration+"ms"),addClass(element,cls)}function reset(){css(element,"animationDuration",""),removeClasses(element,animationPrefix+"\\S*")}})}))}var inProgress=new RegExp(animationPrefix+"(enter|leave)"),Animation={in:function(element,animation,duration,origin){return animate(element,animation,duration,origin,!1)},out:function(element,animation,duration,origin){return animate(element,animation,duration,origin,!0)},inProgress:function(element){return inProgress.test(attr(element,"class"))},cancel:function(element){trigger(element,"animationcancel")}};function $(selector,context){return isString(selector)?isHtml(selector)?toNode(fragment(selector)):find(selector,context):toNode(selector)}function $$(selector,context){return isString(selector)?isHtml(selector)?toNodes(fragment(selector)):findAll(selector,context):toNodes(selector)}function isHtml(str){return"<"===str[0]||str.match(/^\s*</)}var dirs={width:["x","left","right"],height:["y","top","bottom"]};function positionAt(element,target,elAttach,targetAttach,elOffset,targetOffset,flip,boundary){elAttach=getPos(elAttach),targetAttach=getPos(targetAttach);var flipped={element:elAttach,target:targetAttach};if(!element||!target)return flipped;var dim=getDimensions(element),targetDim=getDimensions(target),position=targetDim;return moveTo(position,elAttach,dim,-1),moveTo(position,targetAttach,targetDim,1),elOffset=getOffsets(elOffset,dim.width,dim.height),targetOffset=getOffsets(targetOffset,targetDim.width,targetDim.height),elOffset.x+=targetOffset.x,elOffset.y+=targetOffset.y,position.left+=elOffset.x,position.top+=elOffset.y,boundary=getDimensions(boundary||window$1(element)),flip&&each(dirs,function(ref,prop){var dir=ref[0],align=ref[1],alignFlip=ref[2];if(!0===flip||includes(flip,dir)){var elemOffset=elAttach[dir]===align?-dim[prop]:elAttach[dir]===alignFlip?dim[prop]:0,targetOffset=targetAttach[dir]===align?targetDim[prop]:targetAttach[dir]===alignFlip?-targetDim[prop]:0;if(position[align]<boundary[align]||position[align]+dim[prop]>boundary[alignFlip]){var centerOffset=dim[prop]/2,centerTargetOffset="center"===targetAttach[dir]?-targetDim[prop]/2:0;"center"===elAttach[dir]&&(apply(centerOffset,centerTargetOffset)||apply(-centerOffset,-centerTargetOffset))||apply(elemOffset,targetOffset)}}function apply(elemOffset,targetOffset){var newVal=position[align]+elemOffset+targetOffset-2*elOffset[dir];if(newVal>=boundary[align]&&newVal+dim[prop]<=boundary[alignFlip])return position[align]=newVal,["element","target"].forEach(function(el){flipped[el][dir]=elemOffset?flipped[el][dir]===dirs[prop][1]?dirs[prop][2]:dirs[prop][1]:flipped[el][dir]}),!0}}),offset(element,position),flipped}function offset(element,coordinates){if(element=toNode(element),!coordinates)return getDimensions(element);var currentOffset=offset(element),pos=css(element,"position");["left","top"].forEach(function(prop){if(prop in coordinates){var value=css(element,prop);css(element,prop,coordinates[prop]-currentOffset[prop]+toFloat("absolute"===pos&&"auto"===value?position(element)[prop]:value))}})}function getDimensions(element){var style,hidden,ref=window$1(element=toNode(element)),top=ref.pageYOffset,left=ref.pageXOffset;if(isWindow(element)){var height=element.innerHeight,width=element.innerWidth;return{top:top,left:left,height:height,width:width,bottom:top+height,right:left+width}}isVisible(element)||(style=attr(element,"style"),hidden=attr(element,"hidden"),attr(element,{style:(style||"")+";display:block !important;",hidden:null}));var rect=element.getBoundingClientRect();return isUndefined(style)||attr(element,{style:style,hidden:hidden}),{height:rect.height,width:rect.width,top:rect.top+top,left:rect.left+left,bottom:rect.bottom+top,right:rect.right+left}}function position(element){var parent=function(element){var parent=toNode(element).offsetParent;for(;parent&&"static"===css(parent,"position");)parent=parent.offsetParent;return parent||docEl(element)}(element=toNode(element)),parentOffset=parent===docEl(element)?{top:0,left:0}:offset(parent),ref=["top","left"].reduce(function(props,prop){var propName$$1=ucfirst(prop);return props[prop]-=parentOffset[prop]+(toFloat(css(element,"margin"+propName$$1))||0)+(toFloat(css(parent,"border"+propName$$1+"Width"))||0),props},offset(element));return{top:ref.top,left:ref.left}}var height=dimension("height"),width=dimension("width");function dimension(prop){var propName$$1=ucfirst(prop);return function(element,value){if(element=toNode(element),isUndefined(value)){if(isWindow(element))return element["inner"+propName$$1];if(isDocument(element)){var doc=element.documentElement;return Math.max(doc["offset"+propName$$1],doc["scroll"+propName$$1])}return(value="auto"===(value=css(element,prop))?element["offset"+propName$$1]:toFloat(value)||0)-boxModelAdjust(prop,element)}css(element,prop,value||0===value?+value+boxModelAdjust(prop,element)+"px":"")}}function boxModelAdjust(prop,element){return"border-box"===css(element,"boxSizing")?dirs[prop].slice(1).map(ucfirst).reduce(function(value,prop){return value+toFloat(css(element,"padding"+prop))+toFloat(css(element,"border"+prop+"Width"))},0):0}function moveTo(position,attach,dim,factor){each(dirs,function(ref,prop){var dir=ref[0],align=ref[1],alignFlip=ref[2];attach[dir]===alignFlip?position[align]+=dim[prop]*factor:"center"===attach[dir]&&(position[align]+=dim[prop]*factor/2)})}function getPos(pos){var x=/left|center|right/,y=/top|center|bottom/;return 1===(pos=(pos||"").split(" ")).length&&(pos=x.test(pos[0])?pos.concat(["center"]):y.test(pos[0])?["center"].concat(pos):["center","center"]),{x:x.test(pos[0])?pos[0]:"center",y:y.test(pos[1])?pos[1]:"center"}}function getOffsets(offsets,width,height){var ref=(offsets||"").split(" "),x=ref[0],y=ref[1];return{x:x?toFloat(x)*(endsWith(x,"%")?width/100:1):0,y:y?toFloat(y)*(endsWith(y,"%")?height/100:1):0}}function flipPosition(pos){switch(pos){case"left":return"right";case"right":return"left";case"top":return"bottom";case"bottom":return"top";default:return pos}}function isInView(element,topOffset,leftOffset,relativeToViewport){if(void 0===topOffset&&(topOffset=0),void 0===leftOffset&&(leftOffset=0),!isVisible(element))return!1;var win=window$1(element=toNode(element));if(relativeToViewport)return intersectRect(element.getBoundingClientRect(),{top:-topOffset,left:-leftOffset,bottom:topOffset+height(win),right:leftOffset+width(win)});var ref=offsetPosition(element),elTop=ref[0],elLeft=ref[1],top=win.pageYOffset,left=win.pageXOffset;return intersectRect({top:elTop,left:elLeft,bottom:elTop+element.offsetHeight,right:elTop+element.offsetWidth},{top:top-topOffset,left:left-leftOffset,bottom:top+topOffset+height(win),right:left+leftOffset+width(win)})}function scrolledOver(element,heightOffset){if(void 0===heightOffset&&(heightOffset=0),!isVisible(element))return 0;var win=window$1(element=toNode(element)),doc=document$1(element),elHeight=element.offsetHeight+heightOffset,top=offsetPosition(element)[0],vp=height(win),vh=vp+Math.min(0,top-vp),diff=Math.max(0,vp-(height(doc)+heightOffset-(top+elHeight)));return clamp((vh+win.pageYOffset-top)/((vh+(elHeight-(diff<vp?diff:0)))/100)/100)}function offsetPosition(element){var offset=[0,0];do{if(offset[0]+=element.offsetTop,offset[1]+=element.offsetLeft,"fixed"===css(element,"position")){var win=window$1(element);return offset[0]+=win.pageYOffset,offset[1]+=win.pageXOffset,offset}}while(element=element.offsetParent);return offset}function window$1(element){return isWindow(element)?element:document$1(element).defaultView}function document$1(element){return toNode(element).ownerDocument}function docEl(element){return document$1(element).documentElement}var isRtl="rtl"===attr(document.documentElement,"dir"),hasTouchEvents="ontouchstart"in window,hasPointerEvents=window.PointerEvent,hasTouch=hasTouchEvents||window.DocumentTouch&&document instanceof DocumentTouch||navigator.maxTouchPoints,pointerDown=hasTouch?"mousedown "+(hasTouchEvents?"touchstart":"pointerdown"):"mousedown",pointerMove=hasTouch?"mousemove "+(hasTouchEvents?"touchmove":"pointermove"):"mousemove",pointerUp=hasTouch?"mouseup "+(hasTouchEvents?"touchend":"pointerup"):"mouseup",pointerEnter=hasTouch&&hasPointerEvents?"pointerenter":"mouseenter",pointerLeave=hasTouch&&hasPointerEvents?"pointerleave":"mouseleave",fastdom={reads:[],writes:[],read:function(task){return this.reads.push(task),scheduleFlush(),task},write:function(task){return this.writes.push(task),scheduleFlush(),task},clear:function(task){return remove$1(this.reads,task)||remove$1(this.writes,task)},flush:function(){runTasks(this.reads),runTasks(this.writes.splice(0,this.writes.length)),this.scheduled=!1,(this.reads.length||this.writes.length)&&scheduleFlush()}};function scheduleFlush(){fastdom.scheduled||(fastdom.scheduled=!0,requestAnimationFrame(fastdom.flush.bind(fastdom)))}function runTasks(tasks){for(var task;task=tasks.shift();)task()}function remove$1(array,item){var index=array.indexOf(item);return!!~index&&!!array.splice(index,1)}function MouseTracker(){}function slope(a,b){return(b.y-a.y)/(b.x-a.x)}MouseTracker.prototype={positions:[],position:null,init:function(){var this$1=this;this.positions=[],this.position=null;var ticking=!1;this.unbind=on(document,"mousemove",function(e){ticking||(setTimeout(function(){var time=Date.now(),length=this$1.positions.length;length&&time-this$1.positions[length-1].time>100&&this$1.positions.splice(0,length),this$1.positions.push({time:time,x:e.pageX,y:e.pageY}),this$1.positions.length>5&&this$1.positions.shift(),ticking=!1},5),ticking=!0)})},cancel:function(){this.unbind&&this.unbind()},movesTo:function(target){if(this.positions.length<2)return!1;var p=offset(target),position$$1=this.positions[this.positions.length-1],prevPos=this.positions[0];if(p.left<=position$$1.x&&position$$1.x<=p.right&&p.top<=position$$1.y&&position$$1.y<=p.bottom)return!1;var points=[[{x:p.left,y:p.top},{x:p.right,y:p.bottom}],[{x:p.right,y:p.top},{x:p.left,y:p.bottom}]];return p.right<=position$$1.x||(p.left>=position$$1.x?(points[0].reverse(),points[1].reverse()):p.bottom<=position$$1.y?points[0].reverse():p.top>=position$$1.y&&points[1].reverse()),!!points.reduce(function(result,point){return result+(slope(prevPos,point[0])<slope(position$$1,point[0])&&slope(prevPos,point[1])>slope(position$$1,point[1]))},0)}};var strats={};function mergeFnData(parentVal,childVal,vm){return strats.computed(isFunction(parentVal)?parentVal.call(vm,vm):parentVal,isFunction(childVal)?childVal.call(vm,vm):childVal)}strats.args=strats.events=strats.init=strats.created=strats.beforeConnect=strats.connected=strats.ready=strats.beforeDisconnect=strats.disconnected=strats.destroy=function(parentVal,childVal){return parentVal=parentVal&&!isArray(parentVal)?[parentVal]:parentVal,childVal?parentVal?parentVal.concat(childVal):isArray(childVal)?childVal:[childVal]:parentVal},strats.update=function(parentVal,childVal){return strats.args(parentVal,isFunction(childVal)?{read:childVal}:childVal)},strats.props=function(parentVal,childVal){return isArray(childVal)&&(childVal=childVal.reduce(function(value,key){return value[key]=String,value},{})),strats.methods(parentVal,childVal)},strats.computed=strats.methods=function(parentVal,childVal){return childVal?parentVal?assign({},parentVal,childVal):childVal:parentVal},strats.data=function(parentVal,childVal,vm){return vm?mergeFnData(parentVal,childVal,vm):childVal?parentVal?function(vm){return mergeFnData(parentVal,childVal,vm)}:childVal:parentVal};var defaultStrat=function(parentVal,childVal){return isUndefined(childVal)?parentVal:childVal};function mergeOptions(parent,child,vm){var options={};if(isFunction(child)&&(child=child.options),child.extends&&(parent=mergeOptions(parent,child.extends,vm)),child.mixins)for(var i=0,l=child.mixins.length;i<l;i++)parent=mergeOptions(parent,child.mixins[i],vm);for(var key in parent)mergeKey(key);for(var key$1 in child)hasOwn(parent,key$1)||mergeKey(key$1);function mergeKey(key){options[key]=(strats[key]||defaultStrat)(parent[key],child[key],vm)}return options}function parseOptions(options,args){var obj;void 0===args&&(args=[]);try{return options?startsWith(options,"{")?JSON.parse(options):args.length&&!includes(options,":")?((obj={})[args[0]]=options,obj):options.split(";").reduce(function(options,option){var ref=option.split(/:(.*)/),key=ref[0],value=ref[1];return key&&!isUndefined(value)&&(options[key.trim()]=value.trim()),options},{}):{}}catch(e){return{}}}var id=0,Player=function(el){this.id=++id,this.el=toNode(el)};function post(el,cmd){try{el.contentWindow.postMessage(JSON.stringify(assign({event:"command"},cmd)),"*")}catch(e){}}Player.prototype.isVideo=function(){return this.isYoutube()||this.isVimeo()||this.isHTML5()},Player.prototype.isHTML5=function(){return"VIDEO"===this.el.tagName},Player.prototype.isIFrame=function(){return"IFRAME"===this.el.tagName},Player.prototype.isYoutube=function(){return this.isIFrame()&&!!this.el.src.match(/\/\/.*?youtube(-nocookie)?\.[a-z]+\/(watch\?v=[^&\s]+|embed)|youtu\.be\/.*/)},Player.prototype.isVimeo=function(){return this.isIFrame()&&!!this.el.src.match(/vimeo\.com\/video\/.*/)},Player.prototype.enableApi=function(){var this$1=this;if(this.ready)return this.ready;var poller,youtube=this.isYoutube(),vimeo=this.isVimeo();return youtube||vimeo?this.ready=new Promise$1(function(resolve){var cb;once(this$1.el,"load",function(){if(youtube){var listener=function(){return post(this$1.el,{event:"listening",id:this$1.id})};poller=setInterval(listener,100),listener()}}),(cb=function(data$$1){return youtube&&data$$1.id===this$1.id&&"onReady"===data$$1.event||vimeo&&Number(data$$1.player_id)===this$1.id},new Promise$1(function(resolve){once(window,"message",function(_,data$$1){return resolve(data$$1)},!1,function(ref){var data$$1=ref.data;if(data$$1&&isString(data$$1)){try{data$$1=JSON.parse(data$$1)}catch(e){return}return data$$1&&cb(data$$1)}})})).then(function(){resolve(),poller&&clearInterval(poller)}),attr(this$1.el,"src",this$1.el.src+(includes(this$1.el.src,"?")?"&":"?")+(youtube?"enablejsapi=1":"api=1&player_id="+this$1.id))}):Promise$1.resolve()},Player.prototype.play=function(){var this$1=this;if(this.isVideo())if(this.isIFrame())this.enableApi().then(function(){return post(this$1.el,{func:"playVideo",method:"play"})});else if(this.isHTML5())try{var promise=this.el.play();promise&&promise.catch(noop)}catch(e){}},Player.prototype.pause=function(){var this$1=this;this.isVideo()&&(this.isIFrame()?this.enableApi().then(function(){return post(this$1.el,{func:"pauseVideo",method:"pause"})}):this.isHTML5()&&this.el.pause())},Player.prototype.mute=function(){var this$1=this;this.isVideo()&&(this.isIFrame()?this.enableApi().then(function(){return post(this$1.el,{func:"mute",method:"setVolume",value:0})}):this.isHTML5()&&(this.el.muted=!0,attr(this.el,"muted","")))};var clickTimeout,swipeTimeout,tapTimeout,clicked,touch={};function cancelAll(){clickTimeout&&clearTimeout(clickTimeout),swipeTimeout&&clearTimeout(swipeTimeout),tapTimeout&&clearTimeout(tapTimeout),clickTimeout=swipeTimeout=tapTimeout=null,touch={}}ready(function(){on(document,"click",function(){return clicked=!0},!0),on(document,pointerDown,function(e){var target=e.target,ref=getPos$1(e),x=ref.x,y=ref.y,now=Date.now(),type=getType(e.type);touch.type&&touch.type!==type||(touch.el="tagName"in target?target:target.parentNode,clickTimeout&&clearTimeout(clickTimeout),touch.x1=x,touch.y1=y,touch.last&&now-touch.last<=250&&(touch={}),touch.type=type,touch.last=now,clicked=e.button>0)}),on(document,pointerMove,function(e){if(!e.defaultPrevented){var ref=getPos$1(e),x=ref.x,y=ref.y;touch.x2=x,touch.y2=y}}),on(document,pointerUp,function(ref){var type=ref.type,target=ref.target;touch.type===getType(type)&&(touch.x2&&Math.abs(touch.x1-touch.x2)>30||touch.y2&&Math.abs(touch.y1-touch.y2)>30?swipeTimeout=setTimeout(function(){var ref,x1,x2,y1,y2;touch.el&&(trigger(touch.el,"swipe"),trigger(touch.el,"swipe"+(x1=(ref=touch).x1,x2=ref.x2,y1=ref.y1,y2=ref.y2,Math.abs(x1-x2)>=Math.abs(y1-y2)?x1-x2>0?"Left":"Right":y1-y2>0?"Up":"Down"))),touch={}}):"last"in touch?(tapTimeout=setTimeout(function(){return trigger(touch.el,"tap")}),touch.el&&"mouseup"!==type&&within(target,touch.el)&&(clickTimeout=setTimeout(function(){clickTimeout=null,touch.el&&!clicked&&trigger(touch.el,"click"),touch={}},350))):touch={})}),on(document,"touchcancel",cancelAll),on(window,"scroll",cancelAll)});var touching=!1;function isTouch(e){return touching||"touch"===e.pointerType}function getPos$1(e){var touches=e.touches,changedTouches=e.changedTouches,ref=touches&&touches[0]||changedTouches&&changedTouches[0]||e;return{x:ref.pageX,y:ref.pageY}}function getType(type){return type.slice(0,5)}function getComponentName(attribute){return!(!startsWith(attribute,"uk-")&&!startsWith(attribute,"data-uk-"))&&camelize(attribute.replace("data-uk-","").replace("uk-",""))}on(document,"touchstart",function(){return touching=!0},!0),on(document,"click",function(){touching=!1}),on(document,"touchcancel",function(){return touching=!1},!0);var UIkit=function(options){this._init(options)};UIkit.util=Object.freeze({ajax:ajax,getImage:getImage,transition:transition,Transition:Transition,animate:animate,Animation:Animation,attr:attr,hasAttr:hasAttr,removeAttr:removeAttr,filterAttr:filterAttr,data:data,addClass:addClass,removeClass:removeClass,removeClasses:removeClasses,replaceClass:replaceClass,hasClass:hasClass,toggleClass:toggleClass,$:$,$$:$$,positionAt:positionAt,offset:offset,position:position,height:height,width:width,flipPosition:flipPosition,isInView:isInView,scrolledOver:scrolledOver,isReady:isReady,ready:ready,index:index,getIndex:getIndex,empty:empty,html:html,prepend:function(parent,element){return(parent=toNode(parent)).hasChildNodes()?insertNodes(element,function(element){return parent.insertBefore(element,parent.firstChild)}):append(parent,element)},append:append,before:before,after:after,remove:remove,wrapAll:wrapAll,wrapInner:wrapInner,unwrap:unwrap,fragment:fragment,apply:apply,isRtl:isRtl,hasTouch:hasTouch,pointerDown:pointerDown,pointerMove:pointerMove,pointerUp:pointerUp,pointerEnter:pointerEnter,pointerLeave:pointerLeave,on:on,off:off,once:once,trigger:trigger,createEvent:createEvent,toEventTargets:toEventTargets,preventClick:preventClick,fastdom:fastdom,isVoidElement:isVoidElement,isVisible:isVisible,selInput:selInput,isInput:isInput,filter:filter,within:within,bind:bind,hasOwn:hasOwn,hyphenate:hyphenate,camelize:camelize,ucfirst:ucfirst,startsWith:startsWith,endsWith:endsWith,includes:includes,isArray:isArray,isFunction:isFunction,isObject:isObject,isPlainObject:isPlainObject,isWindow:isWindow,isDocument:isDocument,isJQuery:isJQuery,isNode:isNode,isNodeCollection:isNodeCollection,isBoolean:isBoolean,isString:isString,isNumber:isNumber,isNumeric:isNumeric,isUndefined:isUndefined,toBoolean:toBoolean,toNumber:toNumber,toFloat:toFloat,toNode:toNode,toNodes:toNodes,toList:toList,toMs:toMs,swap:swap,assign:assign,each:each,sortBy:sortBy,clamp:clamp,noop:noop,intersectRect:intersectRect,pointInRect:pointInRect,Dimensions:Dimensions,MouseTracker:MouseTracker,mergeOptions:mergeOptions,parseOptions:parseOptions,Player:Player,Promise:Promise$1,Deferred:Deferred,query:query,queryAll:queryAll,find:find,findAll:findAll,matches:matches,closest:closest,parents:parents,escape:escape,css:css,getStyles:getStyles,getStyle:getStyle,getCssVar:getCssVar,propName:propName,isTouch:isTouch,getPos:getPos$1}),UIkit.data="__uikit__",UIkit.prefix="uk-",UIkit.options={},function(UIkit){var container,DATA=UIkit.data;function update(data$$1,e){if(data$$1)for(var name in data$$1)data$$1[name]._isReady&&data$$1[name]._callUpdate(e)}UIkit.use=function(plugin){if(!plugin.installed)return plugin.call(null,this),plugin.installed=!0,this},UIkit.mixin=function(mixin,component){component=(isString(component)?UIkit.component(component):component)||this,(mixin=mergeOptions({},mixin)).mixins=component.options.mixins,delete component.options.mixins,component.options=mergeOptions(mixin,component.options)},UIkit.extend=function(options){options=options||{};var Sub=function(options){this._init(options)};return(Sub.prototype=Object.create(this.prototype)).constructor=Sub,Sub.options=mergeOptions(this.options,options),Sub.super=this,Sub.extend=this.extend,Sub},UIkit.update=function(element,e){e=createEvent(e||"update"),function(element){for(var path=[];element&&element!==document.body&&element.parentNode;)element=element.parentNode,path.unshift(element);return path}(element=element?toNode(element):document.body).map(function(element){return update(element[DATA],e)}),apply(element,function(element){return update(element[DATA],e)})},Object.defineProperty(UIkit,"container",{get:function(){return container||document.body},set:function(element){container=$(element)}})}(UIkit),function(UIkit){UIkit.prototype._callHook=function(hook){var this$1=this,handlers=this.$options[hook];handlers&&handlers.forEach(function(handler){return handler.call(this$1)})},UIkit.prototype._callConnected=function(){var this$1=this;this._connected||(this._data={},this._initProps(),this._callHook("beforeConnect"),this._connected=!0,this._initEvents(),this._initObserver(),this._callHook("connected"),this._isReady||ready(function(){return this$1._callReady()}),this._callUpdate())},UIkit.prototype._callDisconnected=function(){this._connected&&(this._callHook("beforeDisconnect"),this._observer&&(this._observer.disconnect(),this._observer=null),this._unbindEvents(),this._callHook("disconnected"),this._connected=!1)},UIkit.prototype._callReady=function(){this._isReady||(this._isReady=!0,this._callHook("ready"),this._resetComputeds(),this._callUpdate())},UIkit.prototype._callUpdate=function(e){var this$1=this,type=(e=createEvent(e||"update")).type;includes(["update","load","resize"],type)&&this._resetComputeds();var updates=this.$options.update,ref=this._frames,reads=ref.reads,writes=ref.writes;updates&&updates.forEach(function(ref,i){var read=ref.read,write=ref.write,events=ref.events;("update"===type||includes(events,type))&&(read&&!includes(fastdom.reads,reads[i])&&(reads[i]=fastdom.read(function(){var result=this$1._connected&&read.call(this$1,this$1._data,e);!1===result&&write?(fastdom.clear(writes[i]),delete writes[i]):isPlainObject(result)&&assign(this$1._data,result),delete reads[i]})),write&&!includes(fastdom.writes,writes[i])&&(writes[i]=fastdom.write(function(){this$1._connected&&write.call(this$1,this$1._data,e),delete writes[i]})))})}}(UIkit),function(UIkit){var uid=0;function getProps(opts,name){var data$$1={},args=opts.args;void 0===args&&(args=[]);var props=opts.props;void 0===props&&(props={});var el=opts.el;if(!props)return data$$1;for(var key in props){var prop=hyphenate(key);if(hasAttr(el,prop)){var value=coerce(props[key],attr(el,prop));if("target"===prop&&(!value||startsWith(value,"_")))continue;data$$1[key]=value}}var options=parseOptions(data(el,name),args);for(var key$1 in options){var prop$1=camelize(key$1);void 0!==props[prop$1]&&(data$$1[prop$1]=coerce(props[prop$1],options[key$1]))}return data$$1}function registerComputed(component,key,cb){Object.defineProperty(component,key,{enumerable:!0,get:function(){var _computeds=component._computeds,$props=component.$props,$el=component.$el;return hasOwn(_computeds,key)||(_computeds[key]=cb.call(component,$props,$el)),_computeds[key]},set:function(value){component._computeds[key]=value}})}function registerEvent(component,event,key){isPlainObject(event)||(event={name:key,handler:event});var listener,name=event.name,el=event.el,handler=event.handler,capture=event.capture,delegate=event.delegate,filter$$1=event.filter,self=event.self;el=isFunction(el)?el.call(component):el||component.$el,isArray(el)?el.forEach(function(el){return registerEvent(component,assign({},event,{el:el}),key)}):!el||filter$$1&&!filter$$1.call(component)||(listener=isString(handler)?component[handler]:bind(handler,component),handler=function(e){return isArray(e.detail)?listener.apply(void 0,[e].concat(e.detail)):listener(e)},self&&(handler=function(handler){return function(e){if(e.target===e.currentTarget||e.target===e.current)return handler.call(null,e)}}(handler)),component._events.push(on(el,name,delegate?isString(delegate)?delegate:delegate.call(component):null,handler,capture)))}function notIn(options,key){return options.every(function(arr){return!arr||!hasOwn(arr,key)})}function coerce(type,value){return type===Boolean?toBoolean(value):type===Number?toNumber(value):"list"===type?toList(value):"media"===type?function(value){if(isString(value))if("@"===value[0]){var name="media-"+value.substr(1);value=toFloat(getCssVar(name))}else if(isNaN(value))return value;return!(!value||isNaN(value))&&"(min-width: "+value+"px)"}(value):type?type(value):value}UIkit.prototype._init=function(options){(options=options||{}).data=function(ref,ref$1){var data$$1=ref.data,args=(ref.el,ref$1.args),props=ref$1.props;if(void 0===props&&(props={}),data$$1=isArray(data$$1)?args&&args.length?data$$1.slice(0,args.length).reduce(function(data$$1,value,index$$1){return isPlainObject(value)?assign(data$$1,value):data$$1[args[index$$1]]=value,data$$1},{}):void 0:data$$1)for(var key in data$$1)isUndefined(data$$1[key])?delete data$$1[key]:data$$1[key]=props[key]?coerce(props[key],data$$1[key]):data$$1[key];return data$$1}(options,this.constructor.options),this.$options=mergeOptions(this.constructor.options,options,this),this.$el=null,this.$props={},this._frames={reads:{},writes:{}},this._events=[],this._uid=uid++,this._initData(),this._initMethods(),this._initComputeds(),this._callHook("created"),options.el&&this.$mount(options.el)},UIkit.prototype._initData=function(){var data$$1=this.$options.data;for(var key in void 0===data$$1&&(data$$1={}),data$$1)this.$props[key]=this[key]=data$$1[key]},UIkit.prototype._initMethods=function(){var methods=this.$options.methods;if(methods)for(var key in methods)this[key]=bind(methods[key],this)},UIkit.prototype._initComputeds=function(){var computed=this.$options.computed;if(this._resetComputeds(),computed)for(var key in computed)registerComputed(this,key,computed[key])},UIkit.prototype._resetComputeds=function(){this._computeds={}},UIkit.prototype._initProps=function(props){var key;for(key in this._resetComputeds(),props=props||getProps(this.$options,this.$name))isUndefined(props[key])||(this.$props[key]=props[key]);var exclude=[this.$options.computed,this.$options.methods];for(key in this.$props)key in props&¬In(exclude,key)&&(this[key]=this.$props[key])},UIkit.prototype._initEvents=function(){var this$1=this,events=this.$options.events;events&&events.forEach(function(event){if(hasOwn(event,"handler"))registerEvent(this$1,event);else for(var key in event)registerEvent(this$1,event[key],key)})},UIkit.prototype._unbindEvents=function(){this._events.forEach(function(unbind){return unbind()}),this._events=[]},UIkit.prototype._initObserver=function(){var this$1=this,ref=this.$options,attrs=ref.attrs,props=ref.props,el=ref.el;!this._observer&&props&&attrs&&(attrs=isArray(attrs)?attrs:Object.keys(props).map(function(key){return hyphenate(key)}),this._observer=new MutationObserver(function(){var data$$1=getProps(this$1.$options,this$1.$name);attrs.some(function(key){return!isUndefined(data$$1[key])&&data$$1[key]!==this$1.$props[key]})&&this$1.$reset()}),this._observer.observe(el,{attributes:!0,attributeFilter:attrs.concat([this.$name,"data-"+this.$name])}))}}(UIkit),function(UIkit){var DATA=UIkit.data,components={};UIkit.component=function(name,options){if(!options)return isPlainObject(components[name])&&(components[name]=UIkit.extend(components[name])),components[name];UIkit[name]=function(element,data$$1){for(var i=arguments.length,argsArray=Array(i);i--;)argsArray[i]=arguments[i];var component=UIkit.component(name);return isPlainObject(element)?new component({data:element}):component.options.functional?new component({data:[].concat(argsArray)}):element&&element.nodeType?init(element):$$(element).map(init)[0];function init(element){var instance=UIkit.getComponent(element,name);if(instance){if(!data$$1)return instance;instance.$destroy()}return new component({el:element,data:data$$1})}};var opt=isPlainObject(options)?assign({},options):options.options;if(opt.name=name,opt.install&&opt.install(UIkit,opt,name),UIkit._initialized&&!opt.functional){var id=hyphenate(name);fastdom.read(function(){return UIkit[name]("[uk-"+id+"],[data-uk-"+id+"]")})}return components[name]=isPlainObject(options)?opt:options},UIkit.getComponents=function(element){return element&&element[DATA]||{}},UIkit.getComponent=function(element,name){return UIkit.getComponents(element)[name]},UIkit.connect=function(node){if(node[DATA])for(var name in node[DATA])node[DATA][name]._callConnected();for(var i=0;i<node.attributes.length;i++){var name$1=getComponentName(node.attributes[i].name);name$1&&name$1 in components&&UIkit[name$1](node)}},UIkit.disconnect=function(node){for(var name in node[DATA])node[DATA][name]._callDisconnected()}}(UIkit),function(UIkit){var DATA=UIkit.data;UIkit.prototype.$mount=function(el){var name=this.$options.name;el[DATA]||(el[DATA]={}),el[DATA][name]||(el[DATA][name]=this,this.$el=this.$options.el=this.$options.el||el,this._callHook("init"),within(el,document)&&this._callConnected())},UIkit.prototype.$emit=function(e){this._callUpdate(e)},UIkit.prototype.$reset=function(){this._callDisconnected(),this._callConnected()},UIkit.prototype.$destroy=function(removeEl){void 0===removeEl&&(removeEl=!1);var ref=this.$options,el=ref.el,name=ref.name;el&&this._callDisconnected(),this._callHook("destroy"),el&&el[DATA]&&(delete el[DATA][name],Object.keys(el[DATA]).length||delete el[DATA],removeEl&&remove(this.$el))},UIkit.prototype.$create=function(component,element,data$$1){return UIkit[component](element,data$$1)},UIkit.prototype.$update=UIkit.update,UIkit.prototype.$getComponent=UIkit.getComponent;var names={};Object.defineProperties(UIkit.prototype,{$container:Object.getOwnPropertyDescriptor(UIkit,"container"),$name:{get:function(){var name=this.$options.name;return names[name]||(names[name]=UIkit.prefix+hyphenate(name)),names[name]}}})}(UIkit);var Class={connected:function(){addClass(this.$el,this.$name)}},Togglable={props:{cls:Boolean,animation:"list",duration:Number,origin:String,transition:String,queued:Boolean},data:{cls:!1,animation:[!1],duration:200,origin:!1,transition:"linear",queued:!1,initProps:{overflow:"",height:"",paddingTop:"",paddingBottom:"",marginTop:"",marginBottom:""},hideProps:{overflow:"hidden",height:0,paddingTop:0,paddingBottom:0,marginTop:0,marginBottom:0}},computed:{hasAnimation:function(ref){return!!ref.animation[0]},hasTransition:function(ref){var animation=ref.animation;return this.hasAnimation&&!0===animation[0]}},methods:{toggleElement:function(targets,show,animate$$1){var this$1=this;return new Promise$1(function(resolve){var p,all=function(targets){return Promise$1.all(targets.map(function(el){return this$1._toggleElement(el,show,animate$$1)}))},toggled=(targets=toNodes(targets)).filter(function(el){return this$1.isToggled(el)}),untoggled=targets.filter(function(el){return!includes(toggled,el)});if(this$1.queued&&isUndefined(animate$$1)&&isUndefined(show)&&this$1.hasAnimation&&!(targets.length<2)){var body=document.body,scroll=body.scrollTop,el=toggled[0],inProgress=Animation.inProgress(el)&&hasClass(el,"uk-animation-leave")||Transition.inProgress(el)&&"0px"===el.style.height;p=all(toggled),inProgress||(p=p.then(function(){var p=all(untoggled);return body.scrollTop=scroll,p}))}else p=all(untoggled.concat(toggled));p.then(resolve,noop)})},toggleNow:function(targets,show){var this$1=this;return new Promise$1(function(resolve){return Promise$1.all(toNodes(targets).map(function(el){return this$1._toggleElement(el,show,!1)})).then(resolve,noop)})},isToggled:function(el){var nodes=toNodes(el||this.$el);return this.cls?hasClass(nodes,this.cls.split(" ")[0]):!hasAttr(nodes,"hidden")},updateAria:function(el){!1===this.cls&&attr(el,"aria-hidden",!this.isToggled(el))},_toggleElement:function(el,show,animate$$1){var this$1=this;if(show=isBoolean(show)?show:Animation.inProgress(el)?hasClass(el,"uk-animation-leave"):Transition.inProgress(el)?"0px"===el.style.height:!this.isToggled(el),!trigger(el,"before"+(show?"show":"hide"),[this]))return Promise$1.reject();var promise=(!1!==animate$$1&&this.hasAnimation?this.hasTransition?this._toggleHeight:this._toggleAnimation:this._toggleImmediate)(el,show);return trigger(el,show?"show":"hide",[this]),promise.then(function(){trigger(el,show?"shown":"hidden",[this$1]),this$1.$update(el)})},_toggle:function(el,toggled){var changed;el&&(this.cls?(changed=includes(this.cls," ")||Boolean(toggled)!==hasClass(el,this.cls))&&toggleClass(el,this.cls,includes(this.cls," ")?void 0:toggled):(changed=Boolean(toggled)===hasAttr(el,"hidden"))&&attr(el,"hidden",toggled?null:""),$$("[autofocus]",el).some(function(el){return isVisible(el)&&(el.focus()||!0)}),this.updateAria(el),changed&&this.$update(el))},_toggleImmediate:function(el,show){return this._toggle(el,show),Promise$1.resolve()},_toggleHeight:function(el,show){var this$1=this,inProgress=Transition.inProgress(el),inner=el.hasChildNodes?toFloat(css(el.firstElementChild,"marginTop"))+toFloat(css(el.lastElementChild,"marginBottom")):0,currentHeight=isVisible(el)?height(el)+(inProgress?0:inner):0;Transition.cancel(el),this.isToggled(el)||this._toggle(el,!0),height(el,""),fastdom.flush();var endHeight=height(el)+(inProgress?0:inner);return height(el,currentHeight),(show?Transition.start(el,assign({},this.initProps,{overflow:"hidden",height:endHeight}),Math.round(this.duration*(1-currentHeight/endHeight)),this.transition):Transition.start(el,this.hideProps,Math.round(this.duration*(currentHeight/endHeight)),this.transition).then(function(){return this$1._toggle(el,!1)})).then(function(){return css(el,this$1.initProps)})},_toggleAnimation:function(el,show){var this$1=this;return Animation.cancel(el),show?(this._toggle(el,!0),Animation.in(el,this.animation[0],this.duration,this.origin)):Animation.out(el,this.animation[1]||this.animation[0],this.duration,this.origin).then(function(){return this$1._toggle(el,!1)})}}},Accordion={mixins:[Class,Togglable],props:{targets:String,active:null,collapsible:Boolean,multiple:Boolean,toggle:String,content:String,transition:String},data:{targets:"> *",active:!1,animation:[!0],collapsible:!0,multiple:!1,clsOpen:"uk-open",toggle:"> .uk-accordion-title",content:"> .uk-accordion-content",transition:"ease"},computed:{items:function(ref,$el){return $$(ref.targets,$el)}},events:[{name:"click",delegate:function(){return this.targets+" "+this.$props.toggle},handler:function(e){e.preventDefault(),this.toggle(index($$(this.targets+" "+this.$props.toggle,this.$el),e.current))}}],connected:function(){if(!1!==this.active){var active=this.items[Number(this.active)];active&&!hasClass(active,this.clsOpen)&&this.toggle(active,!1)}},update:function(){var this$1=this;this.items.forEach(function(el){return this$1._toggleImmediate($(this$1.content,el),hasClass(el,this$1.clsOpen))});var active=!this.collapsible&&!hasClass(this.items,this.clsOpen)&&this.items[0];active&&this.toggle(active,!1)},methods:{toggle:function(item,animate$$1){var this$1=this,index$$1=getIndex(item,this.items),active=filter(this.items,"."+this.clsOpen);(item=this.items[index$$1])&&[item].concat(!this.multiple&&!includes(active,item)&&active||[]).forEach(function(el){var isItem=el===item,state=isItem&&!hasClass(el,this$1.clsOpen);if(state||!isItem||this$1.collapsible||!(active.length<2)){toggleClass(el,this$1.clsOpen,state);var content=el._wrapper?el._wrapper.firstElementChild:$(this$1.content,el);el._wrapper||(el._wrapper=wrapAll(content,"<div>"),attr(el._wrapper,"hidden",state?"":null)),this$1._toggleImmediate(content,!0),this$1.toggleElement(el._wrapper,state,animate$$1).then(function(){hasClass(el,this$1.clsOpen)===state&&(state||this$1._toggleImmediate(content,!1),el._wrapper=null,unwrap(content))})}})}}},Alert={attrs:!0,mixins:[Class,Togglable],args:"animation",props:{close:String},data:{animation:[!0],selClose:".uk-alert-close",duration:150,hideProps:assign({opacity:0},Togglable.data.hideProps)},events:[{name:"click",delegate:function(){return this.selClose},handler:function(e){e.preventDefault(),this.close()}}],methods:{close:function(){var this$1=this;this.toggleElement(this.$el).then(function(){return this$1.$destroy(!0)})}}};function Core(UIkit){ready(function(){var scroll=0,started=0;if(on(window,"load resize",function(e){return UIkit.update(null,e)}),on(window,"scroll",function(e){e.dir=scroll<=window.pageYOffset?"down":"up",e.pageYOffset=scroll=window.pageYOffset,UIkit.update(null,e)},{capture:!0,passive:!1}),on(document,"animationstart",function(ref){var target=ref.target;(css(target,"animationName")||"").match(/^uk-.*(left|right)/)&&(started++,css(document.body,"overflowX","hidden"),setTimeout(function(){--started||css(document.body,"overflowX","")},toMs(css(target,"animationDuration"))+100))},!0),hasTouch){var cls="uk-hover";on(document,"tap",function(ref){var target=ref.target;return $$("."+cls).forEach(function(el){return!within(target,el)&&removeClass(el,cls)})}),Object.defineProperty(UIkit,"hoverSelector",{set:function(selector){on(document,"tap",selector,function(ref){return addClass(ref.current,cls)})}}),UIkit.hoverSelector=".uk-animation-toggle, .uk-transition-toggle, [uk-hover]"}})}var active,registered,Video={args:"autoplay",props:{automute:Boolean,autoplay:Boolean},data:{automute:!1,autoplay:!0},computed:{inView:function(ref){return"inview"===ref.autoplay}},connected:function(){this.inView&&!hasAttr(this.$el,"preload")&&(this.$el.preload="none")},ready:function(){this.player=new Player(this.$el),this.automute&&this.player.mute()},update:[{read:function(_,ref){var type=ref.type;return!(!this.player||!("scroll"!==type&&"resize"!==type||this.inView))&&{visible:isVisible(this.$el)&&"hidden"!==css(this.$el,"visibility"),inView:this.inView&&isInView(this.$el)}},write:function(ref){var visible=ref.visible,inView=ref.inView;!visible||this.inView&&!inView?this.player.pause():(!0===this.autoplay||this.inView&&inView)&&this.player.play()},events:["load","resize","scroll"]}]},Cover={mixins:[Class,Video],props:{width:Number,height:Number},data:{automute:!0},update:{write:function(){var el=this.$el;if(isVisible(el)){var ref=el.parentNode,height$$1=ref.offsetHeight,width$$1=ref.offsetWidth;css(css(el,{width:"",height:""}),Dimensions.cover({width:this.width||el.clientWidth,height:this.height||el.clientHeight},{width:width$$1+(width$$1%2?1:0),height:height$$1+(height$$1%2?1:0)}))}},events:["load","resize"]},events:{loadedmetadata:function(){this.$emit()}}},Position={props:{pos:String,offset:null,flip:Boolean,clsPos:String},data:{pos:"bottom-"+(isRtl?"right":"left"),flip:!0,offset:!1,clsPos:""},computed:{pos:function(ref){var pos=ref.pos;return(pos+(includes(pos,"-")?"":"-center")).split("-")},dir:function(){return this.pos[0]},align:function(){return this.pos[1]}},methods:{positionAt:function(element,target,boundary){var node;removeClasses(element,this.clsPos+"-(top|bottom|left|right)(-[a-z]+)?"),css(element,{top:"",left:""});var offset$$1=this.offset;offset$$1=isNumeric(offset$$1)?offset$$1:(node=$(offset$$1))?offset(node)["x"===axis?"left":"top"]-offset(target)["x"===axis?"right":"bottom"]:0;var axis=this.getAxis(),ref$1=positionAt(element,target,"x"===axis?flipPosition(this.dir)+" "+this.align:this.align+" "+flipPosition(this.dir),"x"===axis?this.dir+" "+this.align:this.align+" "+this.dir,"x"===axis?""+("left"===this.dir?-offset$$1:offset$$1):" "+("top"===this.dir?-offset$$1:offset$$1),null,this.flip,boundary).target,x=ref$1.x,y=ref$1.y;this.dir="x"===axis?x:y,this.align="x"===axis?y:x,toggleClass(element,this.clsPos+"-"+this.dir+"-"+this.align,!1===this.offset)},getAxis:function(){return"top"===this.dir||"bottom"===this.dir?"y":"x"}}},Drop={mixins:[Position,Togglable],args:"pos",props:{mode:"list",toggle:Boolean,boundary:Boolean,boundaryAlign:Boolean,delayShow:Number,delayHide:Number,clsDrop:String},data:{mode:["click","hover"],toggle:"- *",boundary:window,boundaryAlign:!1,delayShow:0,delayHide:800,clsDrop:!1,hoverIdle:200,animation:["uk-animation-fade"],cls:"uk-open"},computed:{boundary:function(ref,$el){return query(ref.boundary,$el)},clsDrop:function(ref){return ref.clsDrop||"uk-"+this.$options.name},clsPos:function(){return this.clsDrop}},init:function(){this.tracker=new MouseTracker},connected:function(){addClass(this.$el,this.clsDrop);var toggle=this.$props.toggle;this.toggle=toggle&&this.$create("toggle",query(toggle,this.$el),{target:this.$el,mode:this.mode}),this.updateAria(this.$el)},events:[{name:"click",delegate:function(){return"."+this.clsDrop+"-close"},handler:function(e){e.preventDefault(),this.hide(!1)}},{name:"click",delegate:function(){return'a[href^="#"]'},handler:function(e){if(!e.defaultPrevented){var id=e.target.hash;id||e.preventDefault(),id&&within(id,this.$el)||this.hide(!1)}}},{name:"beforescroll",handler:function(){this.hide(!1)}},{name:"toggle",self:!0,handler:function(e,toggle){e.preventDefault(),this.isToggled()?this.hide(!1):this.show(toggle,!1)}},{name:pointerEnter,filter:function(){return includes(this.mode,"hover")},handler:function(e){isTouch(e)||(active&&active!==this&&active.toggle&&includes(active.toggle.mode,"hover")&&!within(e.target,active.toggle.$el)&&!pointInRect({x:e.pageX,y:e.pageY},offset(active.$el))&&active.hide(!1),e.preventDefault(),this.show(this.toggle))}},{name:"toggleshow",handler:function(e,toggle){toggle&&!includes(toggle.target,this.$el)||(e.preventDefault(),this.show(toggle||this.toggle))}},{name:"togglehide "+pointerLeave,handler:function(e,toggle){isTouch(e)||toggle&&!includes(toggle.target,this.$el)||(e.preventDefault(),this.toggle&&includes(this.toggle.mode,"hover")&&this.hide())}},{name:"beforeshow",self:!0,handler:function(){this.clearTimers(),Animation.cancel(this.$el),this.position()}},{name:"show",self:!0,handler:function(){this.tracker.init(),this.toggle&&(addClass(this.toggle.$el,this.cls),attr(this.toggle.$el,"aria-expanded","true")),function(){if(registered)return;registered=!0,on(document,"click",function(ref){var prev,target=ref.target,defaultPrevented=ref.defaultPrevented;if(!defaultPrevented)for(;active&&active!==prev&&!within(target,active.$el)&&(!active.toggle||!within(target,active.toggle.$el));)prev=active,active.hide(!1)})}()}},{name:"beforehide",self:!0,handler:function(){this.clearTimers()}},{name:"hide",handler:function(ref){var target=ref.target;this.$el===target?(active=this.isActive()?null:active,this.toggle&&(removeClass(this.toggle.$el,this.cls),attr(this.toggle.$el,"aria-expanded","false"),this.toggle.$el.blur(),$$("a, button",this.toggle.$el).forEach(function(el){return el.blur()})),this.tracker.cancel()):active=null===active&&within(target,this.$el)&&this.isToggled()?this:active}}],update:{write:function(){this.isToggled()&&!Animation.inProgress(this.$el)&&this.position()},events:["resize"]},methods:{show:function(toggle,delay){var this$1=this;void 0===delay&&(delay=!0);var show=function(){return!this$1.isToggled()&&this$1.toggleElement(this$1.$el,!0)},tryShow=function(){if(this$1.toggle=toggle||this$1.toggle,this$1.clearTimers(),!this$1.isActive())if(delay&&active&&active!==this$1&&active.isDelaying)this$1.showTimer=setTimeout(this$1.show,10);else{if(this$1.isParentOf(active)){if(!active.hideTimer)return;active.hide(!1)}else if(active&&!this$1.isChildOf(active)&&!this$1.isParentOf(active))for(var prev;active&&active!==prev&&!this$1.isChildOf(active);)prev=active,active.hide(!1);delay&&this$1.delayShow?this$1.showTimer=setTimeout(show,this$1.delayShow):show(),active=this$1}};toggle&&this.toggle&&toggle.$el!==this.toggle.$el?(once(this.$el,"hide",tryShow),this.hide(!1)):tryShow()},hide:function(delay){var this$1=this;void 0===delay&&(delay=!0);var hide=function(){return this$1.toggleNow(this$1.$el,!1)};this.clearTimers(),this.isDelaying=this.tracker.movesTo(this.$el),delay&&this.isDelaying?this.hideTimer=setTimeout(this.hide,this.hoverIdle):delay&&this.delayHide?this.hideTimer=setTimeout(hide,this.delayHide):hide()},clearTimers:function(){clearTimeout(this.showTimer),clearTimeout(this.hideTimer),this.showTimer=null,this.hideTimer=null,this.isDelaying=!1},isActive:function(){return active===this},isChildOf:function(drop){return drop&&drop!==this&&within(this.$el,drop.$el)},isParentOf:function(drop){return drop&&drop!==this&&within(drop.$el,this.$el)},position:function(){removeClasses(this.$el,this.clsDrop+"-(stack|boundary)"),css(this.$el,{top:"",left:"",display:"block"}),toggleClass(this.$el,this.clsDrop+"-boundary",this.boundaryAlign);var boundary=offset(this.boundary),alignTo=this.boundaryAlign?boundary:offset(this.toggle.$el);if("justify"===this.align){var prop="y"===this.getAxis()?"width":"height";css(this.$el,prop,alignTo[prop])}else this.$el.offsetWidth>Math.max(boundary.right-alignTo.left,alignTo.right-boundary.left)&&addClass(this.$el,this.clsDrop+"-stack");this.positionAt(this.$el,this.boundaryAlign?this.boundary:this.toggle.$el,this.boundary),css(this.$el,"display","")}}};var Dropdown={extends:Drop},FormCustom={mixins:[Class],args:"target",props:{target:Boolean},data:{target:!1},computed:{input:function(_,$el){return $(selInput,$el)},state:function(){return this.input.nextElementSibling},target:function(ref,$el){var target=ref.target;return target&&(!0===target&&this.input.parentNode===$el&&this.input.nextElementSibling||query(target,$el))}},update:function(){var target=this.target,input=this.input;if(target){var option,prop=isInput(target)?"value":"textContent",prev=target[prop],value=input.files&&input.files[0]?input.files[0].name:matches(input,"select")&&(option=$$("option",input).filter(function(el){return el.selected})[0])?option.textContent:input.value;prev!==value&&(target[prop]=value)}},events:[{name:"focusin focusout mouseenter mouseleave",delegate:selInput,handler:function(ref){var type=ref.type;ref.current===this.input&&toggleClass(this.state,"uk-"+(includes(type,"focus")?"focus":"hover"),includes(["focusin","mouseenter"],type))}},{name:"change",handler:function(){this.$emit()}}]},Gif={update:{read:function(data$$1){var inview=isInView(this.$el);if(!inview||data$$1.isInView===inview)return!1;data$$1.isInView=inview},write:function(){this.$el.src=this.$el.src},events:["scroll","load","resize"]}},Margin={props:{margin:String,firstColumn:Boolean},data:{margin:"uk-margin-small-top",firstColumn:"uk-first-column"},update:{read:function(data$$1){var items=this.$el.children;if(!items.length||!isVisible(this.$el))return data$$1.rows=[[]];data$$1.rows=getRows(items),data$$1.stacks=!data$$1.rows.some(function(row){return row.length>1})},write:function(ref){var this$1=this;ref.rows.forEach(function(row,i){return row.forEach(function(el,j){toggleClass(el,this$1.margin,0!==i),toggleClass(el,this$1.firstColumn,0===j)})})},events:["load","resize"]}};function getRows(items){for(var rows=[[]],i=0;i<items.length;i++){var el=items[i],dim=getOffset(el);if(dim.height)for(var j=rows.length-1;j>=0;j--){var row=rows[j];if(!row[0]){row.push(el);break}var leftDim=getOffset(row[0]);if(dim.top>=leftDim.bottom-1){rows.push([el]);break}if(dim.bottom>leftDim.top){if(dim.left<leftDim.left&&!isRtl){row.unshift(el);break}row.push(el);break}if(0===j){rows.unshift([el]);break}}}return rows}function getOffset(element){var offsetTop=element.offsetTop,offsetLeft=element.offsetLeft,offsetHeight=element.offsetHeight;return{top:offsetTop,left:offsetLeft,height:offsetHeight,bottom:offsetTop+offsetHeight}}var Grid={extends:Margin,mixins:[Class],attrs:!0,name:"grid",props:{masonry:Boolean,parallax:Number},data:{margin:"uk-grid-margin",clsStack:"uk-grid-stack",masonry:!1,parallax:0},computed:{parallax:function(ref){var parallax=ref.parallax;return Math.abs(parallax)}},connected:function(){this.masonry&&addClass(this.$el,"uk-flex-top uk-flex-wrap-top")},update:[{read:function(ref){var rows=ref.rows;(this.masonry||this.parallax)&&(rows=rows.map(function(elements){return sortBy(elements,"offsetLeft")}));var root,cls,nodes,node,translates=!1,elHeight=!1;if(this.masonry){var height$$1=0;translates=rows.reduce(function(translates,row,i){return translates[i]=row.map(function(_,j){return 0===i?0:toFloat(translates[i-1][j])+(height$$1-toFloat(rows[i-1][j]&&rows[i-1][j].offsetHeight))}),height$$1=row.reduce(function(height$$1,el){return Math.max(height$$1,el.offsetHeight)},0),translates},[]),elHeight=function(rows){return Math.max.apply(Math,rows.reduce(function(sum,row){return row.forEach(function(el,i){return sum[i]=(sum[i]||0)+el.offsetHeight}),sum},[]))}(rows)+(root=this.$el,cls=this.margin,nodes=toNodes(root.children),toFloat((node=nodes.filter(function(el){return hasClass(el,cls)})[0])?css(node,"marginTop"):css(nodes[0],"paddingLeft"))*(rows.length-1))}return{rows:rows,translates:translates,height:elHeight}},write:function(ref){var rows=ref.rows,stacks=ref.stacks,height$$1=ref.height;toggleClass(this.$el,this.clsStack,stacks),css(this.$el,"paddingBottom",this.parallax&&rows.some(function(row){return row.length>1})?this.parallax:""),height$$1&&css(this.$el,"minHeight",height$$1)},events:["load","resize"]},{read:function(ref){var rows=ref.rows,height$$1=ref.height;return{scrolled:!(!this.parallax||!rows.some(function(row){return row.length>1}))&&scrolledOver(this.$el,height$$1?height$$1-height(this.$el):0)*this.parallax}},write:function(ref){var rows=ref.rows,scrolled=ref.scrolled,translates=ref.translates;(!1!==scrolled||translates)&&rows.forEach(function(row,i){return row.forEach(function(el,j){return css(el,"transform",scrolled||translates?"translateY("+((translates&&-translates[i][j])+(scrolled?j%2?scrolled:scrolled/8:0))+"px)":"")})})},events:["scroll","load","resize"]}]};var HeightMatch={args:"target",props:{target:String,row:Boolean},data:{target:"> *",row:!0},computed:{elements:function(ref,$el){return $$(ref.target,$el)}},update:{read:function(){var this$1=this;return css(this.elements,{minHeight:"",boxSizing:""}),{rows:this.row?getRows(this.elements).map(function(elements){return this$1.match(elements)}):[this.match(this.elements)]}},write:function(ref){ref.rows.forEach(function(ref){var height$$1=ref.height;return css(ref.elements,{minHeight:height$$1,boxSizing:"border-box"})})},events:["load","resize"]},methods:{match:function(elements){if(elements.length<2)return{};var heights=[],max=0;return elements.forEach(function(el){var height$$1=offset(el).height;max=Math.max(max,height$$1),heights.push(height$$1)}),elements=elements.filter(function(el,i){return heights[i]<max}),{height:max,elements:elements}}}},HeightViewport={props:{expand:Boolean,offsetTop:Boolean,offsetBottom:Boolean,minHeight:Number},data:{expand:!1,offsetTop:!1,offsetBottom:!1,minHeight:0},update:{write:function(){css(this.$el,"boxSizing","border-box");var minHeight,viewport=height(window),offsetTop=0;if(this.expand){css(this.$el,{height:"",minHeight:""});var diff=viewport-offsetHeight(document.documentElement);diff>0&&(minHeight=offsetHeight(this.$el)+diff)}else{var top=offset(this.$el).top;top<viewport/2&&this.offsetTop&&(offsetTop+=top),!0===this.offsetBottom?offsetTop+=offsetHeight(this.$el.nextElementSibling):isNumeric(this.offsetBottom)?offsetTop+=viewport/100*this.offsetBottom:this.offsetBottom&&endsWith(this.offsetBottom,"px")?offsetTop+=toFloat(this.offsetBottom):isString(this.offsetBottom)&&(offsetTop+=offsetHeight(query(this.offsetBottom,this.$el))),minHeight=offsetTop?"calc(100vh - "+offsetTop+"px)":"100vh"}if(minHeight){css(this.$el,{height:"",minHeight:minHeight});var elHeight=this.$el.offsetHeight;this.minHeight&&this.minHeight>elHeight&&css(this.$el,"minHeight",this.minHeight),viewport-offsetTop>=elHeight&&css(this.$el,"height",minHeight)}},events:["load","resize"]}};function offsetHeight(el){return el&&el.offsetHeight||0}var svgs={},SVG={attrs:!0,props:{id:String,icon:String,src:String,style:String,width:Number,height:Number,ratio:Number,class:String},data:{ratio:1,id:!1,exclude:["ratio","src","icon"],class:""},connected:function(){var assign$$1,this$1=this;if(this.class+=" uk-svg",!this.icon&&includes(this.src,"#")){var parts=this.src.split("#");parts.length>1&&(assign$$1=parts,this.src=assign$$1[0],this.icon=assign$$1[1])}this.svg=this.getSvg().then(function(svg){var el;if(isString(svg)?(this$1.icon&&includes(svg,"<symbol")&&(svg=function(svg,icon){if(!symbols[svg]){var match;for(symbols[svg]={};match=symbolRe.exec(svg);)symbols[svg][match[3]]='<svg xmlns="http://www.w3.org/2000/svg"'+match[1]+"svg>";symbolRe.lastIndex=0}return symbols[svg][icon]}(svg,this$1.icon)||svg),el=$(svg.substr(svg.indexOf("<svg")))):el=svg.cloneNode(!0),!el)return Promise$1.reject("SVG not found.");var dimensions=attr(el,"viewBox");for(var prop in dimensions&&(dimensions=dimensions.split(" "),this$1.width=this$1.$props.width||dimensions[2],this$1.height=this$1.$props.height||dimensions[3]),this$1.width*=this$1.ratio,this$1.height*=this$1.ratio,this$1.$options.props)this$1[prop]&&!includes(this$1.exclude,prop)&&attr(el,prop,this$1[prop]);this$1.id||removeAttr(el,"id"),this$1.width&&!this$1.height&&removeAttr(el,"height"),this$1.height&&!this$1.width&&removeAttr(el,"width");var root=this$1.$el;if(isVoidElement(root)||"CANVAS"===root.tagName){attr(root,{hidden:!0,id:null});var next=root.nextElementSibling;next&&el.isEqualNode(next)?el=next:after(root,el)}else{var last=root.lastElementChild;last&&el.isEqualNode(last)?el=last:append(root,el)}return this$1.svgEl=el,el},noop)},disconnected:function(){var this$1=this;isVoidElement(this.$el)&&attr(this.$el,{hidden:null,id:this.id||null}),this.svg&&this.svg.then(function(svg){return(!this$1._connected||svg!==this$1.svgEl)&&remove(svg)},noop),this.svg=this.svgEl=null},methods:{getSvg:function(){var this$1=this;return this.src?svgs[this.src]?svgs[this.src]:(svgs[this.src]=new Promise$1(function(resolve,reject){startsWith(this$1.src,"data:")?resolve(decodeURIComponent(this$1.src.split(",")[1])):ajax(this$1.src).then(function(xhr){return resolve(xhr.response)},function(){return reject("SVG not found.")})}),svgs[this.src]):Promise$1.reject()}}},symbolRe=/<symbol(.*?id=(['"])(.*?)\2[^]*?<\/)symbol>/g,symbols={};var parsed={},icons={spinner:'<svg width="30" height="30" viewBox="0 0 30 30" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" cx="15" cy="15" r="14"/></svg>',totop:'<svg width="18" height="10" viewBox="0 0 18 10" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="1.2" points="1 9 9 1 17 9 "/></svg>',marker:'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect x="9" y="4" width="1" height="11"/><rect x="4" y="9" width="11" height="1"/></svg>',"close-icon":'<svg width="14" height="14" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg"><line fill="none" stroke="#000" stroke-width="1.1" x1="1" y1="1" x2="13" y2="13"/><line fill="none" stroke="#000" stroke-width="1.1" x1="13" y1="1" x2="1" y2="13"/></svg>',"close-large":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><line fill="none" stroke="#000" stroke-width="1.4" x1="1" y1="1" x2="19" y2="19"/><line fill="none" stroke="#000" stroke-width="1.4" x1="19" y1="1" x2="1" y2="19"/></svg>',"navbar-toggle-icon":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><rect y="9" width="20" height="2"/><rect y="3" width="20" height="2"/><rect y="15" width="20" height="2"/></svg>',"overlay-icon":'<svg width="40" height="40" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"><rect x="19" y="0" width="1" height="40"/><rect x="0" y="19" width="40" height="1"/></svg>',"pagination-next":'<svg width="7" height="12" viewBox="0 0 7 12" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="1.2" points="1 1 6 6 1 11"/></svg>',"pagination-previous":'<svg width="7" height="12" viewBox="0 0 7 12" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="1.2" points="6 1 1 6 6 11"/></svg>',"search-icon":'<svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.1" cx="9" cy="9" r="7"/><path fill="none" stroke="#000" stroke-width="1.1" d="M14,14 L18,18 L14,14 Z"/></svg>',"search-large":'<svg width="40" height="40" viewBox="0 0 40 40" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.8" cx="17.5" cy="17.5" r="16.5"/><line fill="none" stroke="#000" stroke-width="1.8" x1="38" y1="39" x2="29" y2="30"/></svg>',"search-navbar":'<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><circle fill="none" stroke="#000" stroke-width="1.1" cx="10.5" cy="10.5" r="9.5"/><line fill="none" stroke="#000" stroke-width="1.1" x1="23" y1="23" x2="17" y2="17"/></svg>',"slidenav-next":'<svg width="14px" height="24px" viewBox="0 0 14 24" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="1.4" points="1.225,23 12.775,12 1.225,1 "/></svg>',"slidenav-next-large":'<svg width="25px" height="40px" viewBox="0 0 25 40" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="2" points="4.002,38.547 22.527,20.024 4,1.5 "/></svg>',"slidenav-previous":'<svg width="14px" height="24px" viewBox="0 0 14 24" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="1.4" points="12.775,1 1.225,12 12.775,23 "/></svg>',"slidenav-previous-large":'<svg width="25px" height="40px" viewBox="0 0 25 40" xmlns="http://www.w3.org/2000/svg"><polyline fill="none" stroke="#000" stroke-width="2" points="20.527,1.5 2,20.024 20.525,38.547 "/></svg>'},Icon={install:function(UIkit){UIkit.icon.add=function(name,svg){var obj,added=isString(name)?((obj={})[name]=svg,obj):name;each(added,function(svg,name){icons[name]=svg,delete parsed[name]}),UIkit._initialized&&apply(document.body,function(el){return each(UIkit.getComponents(el),function(cmp){return cmp.$options.isIcon&&cmp.icon in added&&cmp.$reset()})})}},attrs:["icon","ratio"],mixins:[Class,SVG],args:"icon",props:["icon"],data:{exclude:["id","style","class","src","icon","ratio"]},isIcon:!0,connected:function(){addClass(this.$el,"uk-icon")},methods:{getSvg:function(){var icon=function(icon){if(!icons[icon])return null;parsed[icon]||(parsed[icon]=$(icons[icon].trim()));return parsed[icon]}(function(icon){return isRtl?swap(swap(icon,"left","right"),"previous","next"):icon}(this.icon));return icon?Promise$1.resolve(icon):Promise$1.reject("Icon not found.")}}},IconComponent={extends:Icon,data:function(vm){return{icon:hyphenate(vm.constructor.options.name)}}},Slidenav={extends:IconComponent,connected:function(){addClass(this.$el,"uk-slidenav")},computed:{icon:function(ref,$el){var icon=ref.icon;return hasClass($el,"uk-slidenav-large")?icon+"-large":icon}}},Search={extends:IconComponent,computed:{icon:function(ref,$el){var icon=ref.icon;return hasClass($el,"uk-search-icon")&&parents($el,".uk-search-large").length?"search-large":parents($el,".uk-search-navbar").length?"search-navbar":icon}}},Close={extends:IconComponent,computed:{icon:function(){return"close-"+(hasClass(this.$el,"uk-close-large")?"large":"icon")}}},Spinner={extends:IconComponent,connected:function(){var this$1=this;this.svg.then(function(svg){return 1!==this$1.ratio&&css($("circle",svg),"strokeWidth",1/this$1.ratio)},noop)}};var Img={attrs:!0,props:{dataSrc:String,dataSrcset:Boolean,dataSizes:Boolean,sizes:String,width:Number,height:Number,dataWidth:Number,dataHeight:Number,offsetTop:String,offsetLeft:String,target:String},data:{dataSrc:"",dataSrcset:!1,dataSizes:!1,sizes:!1,width:!1,height:!1,offsetTop:"50vh",offsetLeft:0,target:!1},computed:{cacheKey:function(ref){var dataSrc=ref.dataSrc;return this.$name+"."+dataSrc},width:function(ref){var width$$1=ref.width,dataWidth=ref.dataWidth;return width$$1||dataWidth},height:function(ref){var height$$1=ref.height,dataHeight=ref.dataHeight;return height$$1||dataHeight},sizes:function(ref){var sizes=ref.sizes,dataSizes=ref.dataSizes;return sizes||dataSizes},isImg:function(_,$el){return isImg($el)},target:function(ref){var target=ref.target;return[this.$el].concat(queryAll(target,this.$el))},offsetTop:function(ref){return toPx(ref.offsetTop,"height")},offsetLeft:function(ref){return toPx(ref.offsetLeft,"width")}},connected:function(){storage[this.cacheKey]?setSrcAttrs(this.$el,storage[this.cacheKey]||this.dataSrc,this.dataSrcset,this.sizes):this.isImg&&this.width&&this.height&&setSrcAttrs(this.$el,function(width$$1,height$$1,sizes,color){var assign$$1;void 0===color&&(color="transparent");if(sizes){for(var matches$$1;matches$$1=sizesRe.exec(sizes);)if(!matches$$1[1]||window.matchMedia(matches$$1[1]).matches){size=matches$$1[2],matches$$1=startsWith(size,"calc")?size.substring(5,size.length-1).replace(sizeRe,function(size){return toPx(size)}).replace(/ /g,"").match(additionRe).reduce(function(a,b){return a+ +b},0):size;break}sizesRe.lastIndex=0,assign$$1=Dimensions.ratio({width:width$$1,height:height$$1},"width",toPx(matches$$1||"100vw")),width$$1=assign$$1.width,height$$1=assign$$1.height}var size;var key=width$$1+"."+height$$1+"."+color;if(urlCache[key])return urlCache[key];var canvas=fragment("<canvas>");canvas.width=width$$1,canvas.height=height$$1;var context=canvas.getContext("2d");return context.fillStyle=color,context.fillRect(0,0,width$$1,height$$1),urlCache[key]=canvas.toDataURL("image/png")}(this.width,this.height,this.sizes))},update:[{read:function(ref){var this$1=this,delay=ref.delay,image=ref.image;if(delay){if(!image&&this.target.some(function(el){return isInView(el,this$1.offsetTop,this$1.offsetLeft,!0)}))return{image:getImage(this.dataSrc,this.dataSrcset,this.sizes).then(function(img){return setSrcAttrs(this$1.$el,currentSrc(img),img.srcset,img.sizes),storage[this$1.cacheKey]=currentSrc(img),img},noop)};!this.isImg&&image&&image.then(function(img){return img&&setSrcAttrs(this$1.$el,currentSrc(img))})}},write:function(data$$1){if(!data$$1.delay)return this.$emit(),data$$1.delay=!0},events:["scroll","load","resize"]}]};function setSrcAttrs(el,src,srcset,sizes){isImg(el)?(src&&(el.src=src),srcset&&(el.srcset=srcset),sizes&&(el.sizes=sizes)):src&&css(el,"backgroundImage","url("+src+")")}var urlCache={},sizesRe=/\s*(.*?)\s*(\w+|calc\(.*?\))\s*(?:,|$)/g;var sizeRe=/\d+(?:\w+|%)/g,additionRe=/[+-]?(\d+)/g;function toPx(value,property,element){return void 0===property&&(property="width"),void 0===element&&(element=window),isNumeric(value)?+value:endsWith(value,"vw")?percent(element,"width",value):endsWith(value,"vh")?percent(element,"height",value):endsWith(value,"%")?percent(element,property,value):toFloat(value)}var dimensions={height:height,width:width};function percent(element,property,value){return dimensions[property](element)*toFloat(value)/100}function isImg(el){return"IMG"===el.tagName}function currentSrc(el){return el.currentSrc||el.src}var storage;try{(storage=window.sessionStorage||{}).__test__=1,delete storage.__test__}catch(e){storage={}}var active$1,events,Leader={mixins:[Class],props:{fill:String,media:"media"},data:{fill:"",media:!1,clsWrapper:"uk-leader-fill",clsHide:"uk-leader-hide",attrFill:"data-fill"},computed:{fill:function(ref){return ref.fill||getCssVar("leader-fill")}},connected:function(){var assign$$1;assign$$1=wrapInner(this.$el,'<span class="'+this.clsWrapper+'">'),this.wrapper=assign$$1[0]},disconnected:function(){unwrap(this.wrapper.childNodes)},update:[{read:function(ref){var changed=ref.changed,width$$1=ref.width,prev=width$$1;return{width:width$$1=Math.floor(this.$el.offsetWidth/2),changed:changed||prev!==width$$1,hide:this.media&&!window.matchMedia(this.media).matches}},write:function(data$$1){toggleClass(this.wrapper,this.clsHide,data$$1.hide),data$$1.changed&&(data$$1.changed=!1,attr(this.wrapper,this.attrFill,new Array(data$$1.width).join(this.fill)))},events:["load","resize"]}]},Container={props:{container:Boolean},data:{container:!0},computed:{container:function(ref){var container=ref.container;return!0===container&&this.$container||container&&$(container)}}},Modal={mixins:[Class,Container,Togglable],props:{selPanel:String,selClose:String,escClose:Boolean,bgClose:Boolean,stack:Boolean},data:{cls:"uk-open",escClose:!0,bgClose:!0,overlay:!0,stack:!1},computed:{panel:function(ref,$el){return $(ref.selPanel,$el)},transitionElement:function(){return this.panel},transitionDuration:function(){return toMs(css(this.transitionElement,"transitionDuration"))},bgClose:function(ref){return ref.bgClose&&this.panel}},events:[{name:"click",delegate:function(){return this.selClose},handler:function(e){e.preventDefault(),this.hide()}},{name:"toggle",self:!0,handler:function(e){e.defaultPrevented||(e.preventDefault(),this.toggle())}},{name:"beforeshow",self:!0,handler:function(e){var prev=active$1&&active$1!==this&&active$1;if(active$1=this,prev){if(!this.stack)return prev.hide().then(this.show),void e.preventDefault();this.prev=prev}!function(){if(events)return;events=[on(document,"click",function(ref){var target=ref.target,defaultPrevented=ref.defaultPrevented;!active$1||!active$1.bgClose||defaultPrevented||active$1.overlay&&!within(target,active$1.$el)||within(target,active$1.panel)||active$1.hide()}),on(document,"keydown",function(e){27===e.keyCode&&active$1&&active$1.escClose&&(e.preventDefault(),active$1.hide())})]}()}},{name:"beforehide",self:!0,handler:function(){(active$1=active$1&&active$1!==this&&active$1||this.prev)||(events&&events.forEach(function(unbind){return unbind()}),events=null)}},{name:"show",self:!0,handler:function(){hasClass(document.documentElement,this.clsPage)||(this.scrollbarWidth=width(window)-width(document),css(document.body,"overflowY",this.scrollbarWidth&&this.overlay?"scroll":"")),addClass(document.documentElement,this.clsPage)}},{name:"hidden",self:!0,handler:function(){for(var found,prev=this.prev;prev;){if(prev.clsPage===this.clsPage){found=!0;break}prev=prev.prev}found||removeClass(document.documentElement,this.clsPage),!this.prev&&css(document.body,"overflowY","")}}],methods:{toggle:function(){return this.isToggled()?this.hide():this.show()},show:function(){return this.isToggled()?Promise$1.resolve():(this.container&&this.$el.parentNode!==this.container&&(append(this.container,this.$el),this._callConnected()),this.toggleNow(this.$el,!0))},hide:function(){return this.isToggled()?this.toggleNow(this.$el,!1):Promise$1.resolve()},getActive:function(){return active$1},_toggleImmediate:function(el,show){var this$1=this;return new Promise$1(function(resolve){return requestAnimationFrame(function(){this$1._toggle(el,show),this$1.transitionDuration?once(this$1.transitionElement,"transitionend",resolve,!1,function(e){return e.target===this$1.transitionElement}):resolve()})})}}};var Modal$1={install:function(UIkit){UIkit.modal.dialog=function(content,options){var dialog=UIkit.modal(' <div class="uk-modal"> <div class="uk-modal-dialog">'+content+"</div> </div> ",options);return dialog.show(),on(dialog.$el,"hidden",function(ref){var target=ref.target,currentTarget=ref.currentTarget;target===currentTarget&&dialog.$destroy(!0)}),dialog},UIkit.modal.alert=function(message,options){return options=assign({bgClose:!1,escClose:!1,labels:UIkit.modal.labels},options),new Promise$1(function(resolve){return on(UIkit.modal.dialog(' <div class="uk-modal-body">'+(isString(message)?message:html(message))+'</div> <div class="uk-modal-footer uk-text-right"> <button class="uk-button uk-button-primary uk-modal-close" autofocus>'+options.labels.ok+"</button> </div> ",options).$el,"hide",resolve)})},UIkit.modal.confirm=function(message,options){return options=assign({bgClose:!1,escClose:!0,labels:UIkit.modal.labels},options),new Promise$1(function(resolve,reject){var confirm=UIkit.modal.dialog(' <form> <div class="uk-modal-body">'+(isString(message)?message:html(message))+'</div> <div class="uk-modal-footer uk-text-right"> <button class="uk-button uk-button-default uk-modal-close" type="button">'+options.labels.cancel+'</button> <button class="uk-button uk-button-primary" autofocus>'+options.labels.ok+"</button> </div> </form> ",options),resolved=!1;on(confirm.$el,"submit","form",function(e){e.preventDefault(),resolve(),resolved=!0,confirm.hide()}),on(confirm.$el,"hide",function(){resolved||reject()})})},UIkit.modal.prompt=function(message,value,options){return options=assign({bgClose:!1,escClose:!0,labels:UIkit.modal.labels},options),new Promise$1(function(resolve){var prompt=UIkit.modal.dialog(' <form class="uk-form-stacked"> <div class="uk-modal-body"> <label>'+(isString(message)?message:html(message))+'</label> <input class="uk-input" autofocus> </div> <div class="uk-modal-footer uk-text-right"> <button class="uk-button uk-button-default uk-modal-close" type="button">'+options.labels.cancel+'</button> <button class="uk-button uk-button-primary">'+options.labels.ok+"</button> </div> </form> ",options),input=$("input",prompt.$el);input.value=value;var resolved=!1;on(prompt.$el,"submit","form",function(e){e.preventDefault(),resolve(input.value),resolved=!0,prompt.hide()}),on(prompt.$el,"hide",function(){resolved||resolve(null)})})},UIkit.modal.labels={ok:"Ok",cancel:"Cancel"}},mixins:[Modal],data:{clsPage:"uk-modal-page",selPanel:".uk-modal-dialog",selClose:".uk-modal-close, .uk-modal-close-default, .uk-modal-close-outside, .uk-modal-close-full"},events:[{name:"show",self:!0,handler:function(){hasClass(this.panel,"uk-margin-auto-vertical")?addClass(this.$el,"uk-flex"):css(this.$el,"display","block"),height(this.$el)}},{name:"hidden",self:!0,handler:function(){css(this.$el,"display",""),removeClass(this.$el,"uk-flex")}}]};var scroll,Nav={extends:Accordion,data:{targets:"> .uk-parent",toggle:"> a",content:"> ul"}},Navbar={mixins:[Class],props:{dropdown:String,mode:"list",align:String,offset:Number,boundary:Boolean,boundaryAlign:Boolean,clsDrop:String,delayShow:Number,delayHide:Number,dropbar:Boolean,dropbarMode:String,dropbarAnchor:Boolean,duration:Number},data:{dropdown:".uk-navbar-nav > li",align:isRtl?"right":"left",clsDrop:"uk-navbar-dropdown",mode:void 0,offset:void 0,delayShow:void 0,delayHide:void 0,boundaryAlign:void 0,flip:"x",boundary:!0,dropbar:!1,dropbarMode:"slide",dropbarAnchor:!1,duration:200},computed:{boundary:function(ref,$el){var boundary=ref.boundary,boundaryAlign=ref.boundaryAlign;return!0===boundary||boundaryAlign?$el:boundary},dropbarAnchor:function(ref,$el){return query(ref.dropbarAnchor,$el)},pos:function(ref){return"bottom-"+ref.align},dropdowns:function(ref,$el){return $$(ref.dropdown+" ."+ref.clsDrop,$el)}},beforeConnect:function(){var dropbar=this.$props.dropbar;this.dropbar=dropbar&&(query(dropbar,this.$el)||$("+ .uk-navbar-dropbar",this.$el)||$("<div></div>")),this.dropbar&&(addClass(this.dropbar,"uk-navbar-dropbar"),"slide"===this.dropbarMode&&addClass(this.dropbar,"uk-navbar-dropbar-slide"))},disconnected:function(){this.dropbar&&remove(this.dropbar)},update:function(){var this$1=this;this.$create("drop",this.dropdowns.filter(function(el){return!this$1.getDropdown(el)}),assign({},this.$props,{boundary:this.boundary,pos:this.pos,offset:this.dropbar||this.offset}))},events:[{name:"mouseover",delegate:function(){return this.dropdown},handler:function(ref){var current=ref.current,active=this.getActive();active&&active.toggle&&!within(active.toggle.$el,current)&&!active.tracker.movesTo(active.$el)&&active.hide(!1)}},{name:"mouseleave",el:function(){return this.dropbar},handler:function(){var active=this.getActive();active&&!matches(this.dropbar,":hover")&&active.hide()}},{name:"beforeshow",capture:!0,filter:function(){return this.dropbar},handler:function(){this.dropbar.parentNode||after(this.dropbarAnchor||this.$el,this.dropbar)}},{name:"show",capture:!0,filter:function(){return this.dropbar},handler:function(_,drop){var $el=drop.$el,dir=drop.dir;this.clsDrop&&addClass($el,this.clsDrop+"-dropbar"),"bottom"===dir&&this.transitionTo($el.offsetHeight+toFloat(css($el,"marginTop"))+toFloat(css($el,"marginBottom")),$el)}},{name:"beforehide",filter:function(){return this.dropbar},handler:function(e,ref){var $el=ref.$el,active=this.getActive();matches(this.dropbar,":hover")&&active&&active.$el===$el&&e.preventDefault()}},{name:"hide",filter:function(){return this.dropbar},handler:function(_,ref){var $el=ref.$el,active=this.getActive();(!active||active&&active.$el===$el)&&this.transitionTo(0)}}],methods:{getActive:function(){var active=this.dropdowns.map(this.getDropdown).filter(function(drop){return drop.isActive()})[0];return active&&includes(active.mode,"hover")&&within(active.toggle.$el,this.$el)&&active},transitionTo:function(newHeight,el){var dropbar=this.dropbar,oldHeight=isVisible(dropbar)?height(dropbar):0;return css(el=oldHeight<newHeight&&el,"clip","rect(0,"+el.offsetWidth+"px,"+oldHeight+"px,0)"),height(dropbar,oldHeight),Transition.cancel([el,dropbar]),Promise.all([Transition.start(dropbar,{height:newHeight},this.duration),Transition.start(el,{clip:"rect(0,"+el.offsetWidth+"px,"+newHeight+"px,0)"},this.duration)]).catch(noop).then(function(){return css(el,{clip:""})})},getDropdown:function(el){return this.$getComponent(el,"drop")||this.$getComponent(el,"dropdown")}}},Offcanvas={mixins:[Modal],args:"mode",props:{content:String,mode:String,flip:Boolean,overlay:Boolean},data:{content:".uk-offcanvas-content",mode:"slide",flip:!1,overlay:!1,clsPage:"uk-offcanvas-page",clsContainer:"uk-offcanvas-container",selPanel:".uk-offcanvas-bar",clsFlip:"uk-offcanvas-flip",clsContent:"uk-offcanvas-content",clsContentAnimation:"uk-offcanvas-content-animation",clsSidebarAnimation:"uk-offcanvas-bar-animation",clsMode:"uk-offcanvas",clsOverlay:"uk-offcanvas-overlay",selClose:".uk-offcanvas-close"},computed:{content:function(ref){return $(ref.content)||document.body},clsFlip:function(ref){var flip=ref.flip,clsFlip=ref.clsFlip;return flip?clsFlip:""},clsOverlay:function(ref){var overlay=ref.overlay,clsOverlay=ref.clsOverlay;return overlay?clsOverlay:""},clsMode:function(ref){var mode=ref.mode;return ref.clsMode+"-"+mode},clsSidebarAnimation:function(ref){var mode=ref.mode,clsSidebarAnimation=ref.clsSidebarAnimation;return"none"===mode||"reveal"===mode?"":clsSidebarAnimation},clsContentAnimation:function(ref){var mode=ref.mode,clsContentAnimation=ref.clsContentAnimation;return"push"!==mode&&"reveal"!==mode?"":clsContentAnimation},transitionElement:function(ref){return"reveal"===ref.mode?this.panel.parentNode:this.panel}},update:{write:function(){this.getActive()===this&&((this.overlay||this.clsContentAnimation)&&width(this.content,width(window)-this.scrollbarWidth),this.overlay&&(height(this.content,height(window)),scroll&&(this.content.scrollTop=scroll.y)))},events:["resize"]},events:[{name:"click",delegate:function(){return'a[href^="#"]'},handler:function(ref){var current=ref.current;current.hash&&$(current.hash,this.content)&&(scroll=null,this.hide())}},{name:"beforescroll",filter:function(){return this.overlay},handler:function(e,scroll,target){scroll&&target&&this.isToggled()&&$(target,this.content)&&(once(this.$el,"hidden",function(){return scroll.scrollTo(target)}),e.preventDefault())}},{name:"show",self:!0,handler:function(){scroll=scroll||{x:window.pageXOffset,y:window.pageYOffset},"reveal"!==this.mode||hasClass(this.panel,this.clsMode)||(wrapAll(this.panel,"<div>"),addClass(this.panel.parentNode,this.clsMode)),css(document.documentElement,"overflowY",(!this.clsContentAnimation||this.flip)&&this.scrollbarWidth&&this.overlay?"scroll":""),addClass(document.body,this.clsContainer,this.clsFlip,this.clsOverlay),height(document.body),addClass(this.content,this.clsContentAnimation),addClass(this.panel,this.clsSidebarAnimation,"reveal"!==this.mode?this.clsMode:""),addClass(this.$el,this.clsOverlay),css(this.$el,"display","block"),height(this.$el)}},{name:"hide",self:!0,handler:function(){removeClass(this.content,this.clsContentAnimation);var active=this.getActive();("none"===this.mode||active&&active!==this&&active!==this.prev)&&trigger(this.panel,"transitionend")}},{name:"hidden",self:!0,handler:function(){if("reveal"===this.mode&&unwrap(this.panel),this.overlay){if(!scroll){var ref=this.content,x=ref.scrollLeft,y=ref.scrollTop;scroll={x:x,y:y}}}else scroll={x:window.pageXOffset,y:window.pageYOffset};removeClass(this.panel,this.clsSidebarAnimation,this.clsMode),removeClass(this.$el,this.clsOverlay),css(this.$el,"display",""),removeClass(document.body,this.clsContainer,this.clsFlip,this.clsOverlay),document.body.scrollTop=scroll.y,css(document.documentElement,"overflowY",""),width(this.content,""),height(this.content,""),window.scroll(scroll.x,scroll.y),scroll=null}},{name:"swipeLeft swipeRight",handler:function(e){this.isToggled()&&isTouch(e)&&("swipeLeft"===e.type&&!this.flip||"swipeRight"===e.type&&this.flip)&&this.hide()}}]},OverflowAuto={mixins:[Class],computed:{modal:function(_,$el){return closest($el,".uk-modal")},panel:function(_,$el){return closest($el,".uk-modal-dialog")}},connected:function(){css(this.$el,"minHeight",150)},update:{write:function(){if(this.panel&&this.modal){var current=css(this.$el,"maxHeight");css(css(this.$el,"maxHeight",150),"maxHeight",Math.max(150,150+height(this.modal)-this.panel.offsetHeight)),current!==css(this.$el,"maxHeight")&&trigger(this.$el,"resize")}},events:["load","resize"]}},Responsive={props:["width","height"],connected:function(){addClass(this.$el,"uk-responsive-width")},update:{read:function(){return!!(isVisible(this.$el)&&this.width&&this.height)&&{width:width(this.$el.parentNode),height:this.height}},write:function(dim){height(this.$el,Dimensions.contain({height:this.height,width:this.width},dim).height)},events:["load","resize"]}},Scroll={props:{duration:Number,offset:Number},data:{duration:1e3,offset:0},methods:{scrollTo:function(el){var this$1=this;el=el&&$(el)||document.body;var docHeight=height(document),winHeight=height(window),target=offset(el).top-this.offset;if(target+winHeight>docHeight&&(target=docHeight-winHeight),trigger(this.$el,"beforescroll",[this,el])){var start=Date.now(),startY=window.pageYOffset,step=function(){var k,currentY=startY+(target-startY)*(k=clamp((Date.now()-start)/this$1.duration),.5*(1-Math.cos(Math.PI*k)));window.scroll(window.pageXOffset,currentY),currentY!==target?requestAnimationFrame(step):trigger(this$1.$el,"scrolled",[this$1,el])};step()}}},events:{click:function(e){e.defaultPrevented||(e.preventDefault(),this.scrollTo(escape(this.$el.hash).substr(1)))}}};var Scrollspy={args:"cls",props:{cls:"list",target:String,hidden:Boolean,offsetTop:Number,offsetLeft:Number,repeat:Boolean,delay:Number},data:function(){return{cls:[],target:!1,hidden:!0,offsetTop:0,offsetLeft:0,repeat:!1,delay:0,inViewClass:"uk-scrollspy-inview"}},computed:{elements:function(ref,$el){var target=ref.target;return target?$$(target,$el):[$el]}},update:[{write:function(){this.hidden&&css(filter(this.elements,":not(."+this.inViewClass+")"),"visibility","hidden")}},{read:function(els){var this$1=this;els.delay&&this.elements.forEach(function(el,i){var elData=els[i];if(!elData||elData.el!==el){var cls=data(el,"uk-scrollspy-class");elData={el:el,toggles:cls&&cls.split(",")||this$1.cls}}elData.show=isInView(el,this$1.offsetTop,this$1.offsetLeft),els[i]=elData})},write:function(els){var this$1=this;if(!els.delay)return this.$emit(),els.delay=!0;var index$$1=1===this.elements.length?1:0;this.elements.forEach(function(el,i){var elData=els[i],cls=elData.toggles[i]||elData.toggles[0];if(!elData.show||elData.inview||elData.timer)!elData.show&&elData.inview&&this$1.repeat&&(elData.timer&&(clearTimeout(elData.timer),delete elData.timer),css(el,"visibility",this$1.hidden?"hidden":""),removeClass(el,this$1.inViewClass),toggleClass(el,cls),trigger(el,"outview"),this$1.$update(el),elData.inview=!1);else{var show=function(){css(el,"visibility",""),addClass(el,this$1.inViewClass),toggleClass(el,cls),trigger(el,"inview"),this$1.$update(el),elData.inview=!0,delete elData.timer};this$1.delay&&index$$1?elData.timer=setTimeout(show,this$1.delay*index$$1):show(),index$$1++}})},events:["scroll","load","resize"]}]},ScrollspyNav={props:{cls:String,closest:String,scroll:Boolean,overflow:Boolean,offset:Number},data:{cls:"uk-active",closest:!1,scroll:!1,overflow:!0,offset:0},computed:{links:function(_,$el){return $$('a[href^="#"]',$el).filter(function(el){return el.hash})},elements:function(){return this.closest?closest(this.links,this.closest):this.links},targets:function(){return $$(this.links.map(function(el){return el.hash}).join(","))}},update:[{read:function(){this.scroll&&this.$create("scroll",this.links,{offset:this.offset||0})}},{read:function(data$$1){var this$1=this,scroll=window.pageYOffset+this.offset+1,max=height(document)-height(window)+this.offset;data$$1.active=!1,this.targets.every(function(el,i){var top=offset(el).top,last=i+1===this$1.targets.length;if(!this$1.overflow&&(0===i&&top>scroll||last&&top+el.offsetTop<scroll))return!1;if(!last&&offset(this$1.targets[i+1]).top<=scroll)return!0;if(scroll>=max)for(var j=this$1.targets.length-1;j>i;j--)if(isInView(this$1.targets[j])){el=this$1.targets[j];break}return!(data$$1.active=$(filter(this$1.links,'[href="#'+el.id+'"]')))})},write:function(ref){var active=ref.active;this.links.forEach(function(el){return el.blur()}),removeClass(this.elements,this.cls),active&&trigger(this.$el,"active",[active,addClass(this.closest?closest(active,this.closest):active,this.cls)])},events:["scroll","load","resize"]}]},Sticky={mixins:[Class],attrs:!0,props:{top:null,bottom:Boolean,offset:Number,animation:String,clsActive:String,clsInactive:String,clsFixed:String,clsBelow:String,selTarget:String,widthElement:Boolean,showOnUp:Boolean,media:"media",targetOffset:Number},data:{top:0,bottom:!1,offset:0,animation:"",clsActive:"uk-active",clsInactive:"",clsFixed:"uk-sticky-fixed",clsBelow:"uk-sticky-below",selTarget:"",widthElement:!1,showOnUp:!1,media:!1,targetOffset:!1},computed:{selTarget:function(ref,$el){var selTarget=ref.selTarget;return selTarget&&$(selTarget,$el)||$el},widthElement:function(ref,$el){return query(ref.widthElement,$el)||this.placeholder}},connected:function(){this.placeholder=$("+ .uk-sticky-placeholder",this.$el)||$('<div class="uk-sticky-placeholder"></div>'),this.isActive||this.hide()},disconnected:function(){this.isActive&&(this.isActive=!1,this.hide(),removeClass(this.selTarget,this.clsInactive)),remove(this.placeholder),this.placeholder=null,this.widthElement=null},events:[{name:"active",self:!0,handler:function(){replaceClass(this.selTarget,this.clsInactive,this.clsActive)}},{name:"inactive",self:!0,handler:function(){replaceClass(this.selTarget,this.clsActive,this.clsInactive)}},{name:"load hashchange popstate",el:window,handler:function(){var this$1=this;if(!1!==this.targetOffset&&location.hash&&window.pageYOffset>0){var target=$(location.hash);target&&fastdom.read(function(){var top=offset(target).top,elTop=offset(this$1.$el).top,elHeight=this$1.$el.offsetHeight;this$1.isActive&&elTop+elHeight>=top&&elTop<=top+target.offsetHeight&&window.scroll(0,top-elHeight-(isNumeric(this$1.targetOffset)?this$1.targetOffset:0)-this$1.offset)})}}}],update:[{write:function(){var placeholder=this.placeholder,offsetHeight=this.$el.offsetHeight;css(placeholder,assign({height:"absolute"!==css(this.$el,"position")?offsetHeight:""},css(this.$el,["marginTop","marginBottom","marginLeft","marginRight"]))),within(placeholder,document)||(after(this.$el,placeholder),attr(placeholder,"hidden","")),this.topOffset=offset(this.isActive?placeholder:this.$el).top,this.bottomOffset=this.topOffset+offsetHeight;var bottom=parseProp("bottom",this);this.top=Math.max(toFloat(parseProp("top",this)),this.topOffset)-this.offset,this.bottom=bottom&&bottom-offsetHeight,this.inactive=this.media&&!window.matchMedia(this.media).matches},events:["load","resize"]},{read:function(_,ref){var scrollY=ref.scrollY;return void 0===scrollY&&(scrollY=window.pageYOffset),this.width=(isVisible(this.widthElement)?this.widthElement:this.$el).offsetWidth,{scroll:this.scroll=scrollY,visible:isVisible(this.$el)}},write:function(ref,ref$1){var this$1=this,visible=ref.visible,scroll=ref.scroll;void 0===ref$1&&(ref$1={});var dir=ref$1.dir;if(!(scroll<0||!visible||this.disabled||this.showOnUp&&!dir))if(this.inactive||scroll<this.top||this.showOnUp&&(scroll<=this.top||"down"===dir||"up"===dir&&!this.isActive&&scroll<=this.bottomOffset)){if(!this.isActive)return;this.isActive=!1,this.animation&&scroll>this.topOffset?(Animation.cancel(this.$el),Animation.out(this.$el,this.animation).then(function(){return this$1.hide()},noop)):this.hide()}else this.isActive?this.update():this.animation?(Animation.cancel(this.$el),this.show(),Animation.in(this.$el,this.animation).catch(noop)):this.show()},events:["load","resize","scroll"]}],methods:{show:function(){this.isActive=!0,this.update(),attr(this.placeholder,"hidden",null)},hide:function(){this.isActive&&!hasClass(this.selTarget,this.clsActive)||trigger(this.$el,"inactive"),removeClass(this.$el,this.clsFixed,this.clsBelow),css(this.$el,{position:"",top:"",width:""}),attr(this.placeholder,"hidden","")},update:function(){var active=0!==this.top||this.scroll>this.top,top=Math.max(0,this.offset);this.bottom&&this.scroll>this.bottom-this.offset&&(top=this.bottom-this.scroll),css(this.$el,{position:"fixed",top:top+"px",width:this.width}),hasClass(this.selTarget,this.clsActive)?active||trigger(this.$el,"inactive"):active&&trigger(this.$el,"active"),toggleClass(this.$el,this.clsBelow,this.scroll>this.bottomOffset),addClass(this.$el,this.clsFixed)}}};function parseProp(prop,ref){var $props=ref.$props,$el=ref.$el,propOffset=ref[prop+"Offset"],value=$props[prop];if(value){if(isNumeric(value))return propOffset+toFloat(value);if(isString(value)&&value.match(/^-?\d+vh$/))return height(window)*toFloat(value)/100;var el=!0===value?$el.parentNode:query(value,$el);return el?offset(el).top+el.offsetHeight:void 0}}var Switcher={mixins:[Togglable],args:"connect",props:{connect:String,toggle:String,active:Number,swiping:Boolean},data:{connect:"~.uk-switcher",toggle:"> *",active:0,swiping:!0,cls:"uk-active",clsContainer:"uk-switcher",attrItem:"uk-switcher-item",queued:!0},computed:{connects:function(ref,$el){return queryAll(ref.connect,$el)},toggles:function(ref,$el){return $$(ref.toggle,$el)}},events:[{name:"click",delegate:function(){return this.toggle+":not(.uk-disabled)"},handler:function(e){e.preventDefault(),this.show(e.current)}},{name:"click",el:function(){return this.connects},delegate:function(){return"["+this.attrItem+"],[data-"+this.attrItem+"]"},handler:function(e){e.preventDefault(),this.show(data(e.current,this.attrItem))}},{name:"swipeRight swipeLeft",filter:function(){return this.swiping},el:function(){return this.connects},handler:function(e){isTouch(e)&&(e.preventDefault(),window.getSelection().toString()||this.show("swipeLeft"===e.type?"next":"previous"))}}],update:function(){var this$1=this;this.connects.forEach(function(list){return this$1.updateAria(list.children)}),this.show(filter(this.toggles,"."+this.cls)[0]||this.toggles[this.active]||this.toggles[0])},methods:{show:function(item){for(var toggle,this$1=this,length=this.toggles.length,prev=!!this.connects.length&&index(filter(this.connects[0].children,"."+this.cls)[0]),hasPrev=prev>=0,dir="previous"===item?-1:1,next=getIndex(item,this.toggles,prev),i=0;i<length;i++,next=(next+dir+length)%length)if(!matches(this$1.toggles[next],".uk-disabled, [disabled]")){toggle=this$1.toggles[next];break}!toggle||prev>=0&&hasClass(toggle,this.cls)||prev===next||(removeClass(this.toggles,this.cls),attr(this.toggles,"aria-expanded",!1),addClass(toggle,this.cls),attr(toggle,"aria-expanded",!0),this.connects.forEach(function(list){hasPrev?this$1.toggleElement([list.children[prev],list.children[next]]):this$1.toggleNow(list.children[next])}))}}},Tab={mixins:[Class],extends:Switcher,props:{media:"media"},data:{media:960,attrItem:"uk-tab-item"},connected:function(){var cls=hasClass(this.$el,"uk-tab-left")?"uk-tab-left":!!hasClass(this.$el,"uk-tab-right")&&"uk-tab-right";cls&&this.$create("toggle",this.$el,{cls:cls,mode:"media",media:this.media})}},Toggle={mixins:[Togglable],args:"target",props:{href:String,target:null,mode:"list",media:"media"},data:{href:!1,target:!1,mode:"click",queued:!0,media:!1},computed:{target:function(ref,$el){var href=ref.href,target=ref.target;return(target=queryAll(target||href,$el)).length&&target||[$el]}},events:[{name:pointerEnter+" "+pointerLeave,filter:function(){return includes(this.mode,"hover")},handler:function(e){isTouch(e)||this.toggle("toggle"+(e.type===pointerEnter?"show":"hide"))}},{name:"click",filter:function(){return includes(this.mode,"click")||hasTouch&&includes(this.mode,"hover")},handler:function(e){var link;(isTouch(e)||includes(this.mode,"click"))&&((closest(e.target,'a[href="#"], button')||(link=closest(e.target,"a[href]"))&&(this.cls||!isVisible(this.target)||link.hash&&matches(this.target,link.hash)))&&once(document,"click",function(e){return e.preventDefault()}),this.toggle())}}],update:{write:function(){if(includes(this.mode,"media")&&this.media){var toggled=this.isToggled(this.target);(window.matchMedia(this.media).matches?!toggled:toggled)&&this.toggle()}},events:["load","resize"]},methods:{toggle:function(type){trigger(this.target,type||"toggle",[this])&&this.toggleElement(this.target)}}};UIkit.version="3.0.0-rc.5",function(UIkit){UIkit.component("accordion",Accordion),UIkit.component("alert",Alert),UIkit.component("cover",Cover),UIkit.component("drop",Drop),UIkit.component("dropdown",Dropdown),UIkit.component("formCustom",FormCustom),UIkit.component("gif",Gif),UIkit.component("grid",Grid),UIkit.component("heightMatch",HeightMatch),UIkit.component("heightViewport",HeightViewport),UIkit.component("icon",Icon),UIkit.component("img",Img),UIkit.component("leader",Leader),UIkit.component("margin",Margin),UIkit.component("modal",Modal$1),UIkit.component("nav",Nav),UIkit.component("navbar",Navbar),UIkit.component("offcanvas",Offcanvas),UIkit.component("overflowAuto",OverflowAuto),UIkit.component("responsive",Responsive),UIkit.component("scroll",Scroll),UIkit.component("scrollspy",Scrollspy),UIkit.component("scrollspyNav",ScrollspyNav),UIkit.component("sticky",Sticky),UIkit.component("svg",SVG),UIkit.component("switcher",Switcher),UIkit.component("tab",Tab),UIkit.component("toggle",Toggle),UIkit.component("video",Video),UIkit.component("close",Close),UIkit.component("marker",IconComponent),UIkit.component("navbarToggleIcon",IconComponent),UIkit.component("overlayIcon",IconComponent),UIkit.component("paginationNext",IconComponent),UIkit.component("paginationPrevious",IconComponent),UIkit.component("searchIcon",Search),UIkit.component("slidenavNext",Slidenav),UIkit.component("slidenavPrevious",Slidenav),UIkit.component("spinner",Spinner),UIkit.component("totop",IconComponent),UIkit.use(Core)}(UIkit);var Countdown={mixins:[Class],attrs:!0,props:{date:String,clsWrapper:String},data:{date:"",clsWrapper:".uk-countdown-%unit%"},computed:{date:function(ref){var date=ref.date;return Date.parse(date)},days:function(ref,$el){return $(ref.clsWrapper.replace("%unit%","days"),$el)},hours:function(ref,$el){return $(ref.clsWrapper.replace("%unit%","hours"),$el)},minutes:function(ref,$el){return $(ref.clsWrapper.replace("%unit%","minutes"),$el)},seconds:function(ref,$el){return $(ref.clsWrapper.replace("%unit%","seconds"),$el)},units:function(){var this$1=this;return["days","hours","minutes","seconds"].filter(function(unit){return this$1[unit]})}},connected:function(){this.start()},disconnected:function(){var this$1=this;this.stop(),this.units.forEach(function(unit){return empty(this$1[unit])})},events:[{name:"visibilitychange",el:document,handler:function(){document.hidden?this.stop():this.start()}}],update:{write:function(){var date,total,this$1=this,timespan=(date=this.date,{total:total=date-Date.now(),seconds:total/1e3%60,minutes:total/1e3/60%60,hours:total/1e3/60/60%24,days:total/1e3/60/60/24});timespan.total<=0&&(this.stop(),timespan.days=timespan.hours=timespan.minutes=timespan.seconds=0),this.units.forEach(function(unit){var digits=String(Math.floor(timespan[unit]));digits=digits.length<2?"0"+digits:digits;var el=this$1[unit];el.textContent!==digits&&((digits=digits.split("")).length!==el.children.length&&html(el,digits.map(function(){return"<span></span>"}).join("")),digits.forEach(function(digit,i){return el.children[i].textContent=digit}))})}},methods:{start:function(){var this$1=this;this.stop(),this.date&&this.units.length&&(this.$emit(),this.timer=setInterval(function(){return this$1.$emit()},1e3))},stop:function(){this.timer&&(clearInterval(this.timer),this.timer=null)}}};var style$1,targetClass="uk-animation-target",Animate={props:{animation:Number},data:{animation:150},computed:{target:function(){return this.$el}},methods:{animate:function(action){var this$1=this;style$1||(style$1=append(document.head,"<style>").sheet).insertRule("."+targetClass+" > * {\n margin-top: 0 !important;\n transform: none !important;\n }");var children=toNodes(this.target.children),propsFrom=children.map(function(el){return getProps(el,!0)}),oldHeight=height(this.target),oldScrollY=window.pageYOffset;action(),Transition.cancel(this.target),children.forEach(Transition.cancel),reset(this.target),this.$update(this.target),fastdom.flush();var newHeight=height(this.target),propsTo=(children=children.concat(toNodes(this.target.children).filter(function(el){return!includes(children,el)}))).map(function(el,i){return!!(el.parentNode&&i in propsFrom)&&(propsFrom[i]?isVisible(el)?getPositionWithMargin(el):{opacity:0}:{opacity:isVisible(el)?1:0})});return propsFrom=propsTo.map(function(props,i){var from=children[i].parentNode===this$1.target&&(propsFrom[i]||getProps(children[i]));if(from)if(props){if(!("opacity"in props)){from.opacity%1?props.opacity=1:delete from.opacity}}else delete from.opacity;return from}),addClass(this.target,targetClass),children.forEach(function(el,i){return propsFrom[i]&&css(el,propsFrom[i])}),css(this.target,"minHeight",oldHeight),window.scroll(window.pageXOffset,oldScrollY),Promise$1.all(children.map(function(el,i){return propsFrom[i]&&propsTo[i]?Transition.start(el,propsTo[i],this$1.animation,"ease"):Promise$1.resolve()}).concat(Transition.start(this.target,{minHeight:newHeight},this.animation,"ease"))).then(function(){children.forEach(function(el,i){return css(el,{display:0===propsTo[i].opacity?"none":"",zIndex:""})}),reset(this$1.target),this$1.$update(this$1.target)},noop)}}};function getProps(el,opacity){var zIndex=css(el,"zIndex");return!!isVisible(el)&&assign({display:"",opacity:opacity?css(el,"opacity"):"0",pointerEvents:"none",position:"absolute",zIndex:"auto"===zIndex?index(el):zIndex},getPositionWithMargin(el))}function reset(el){css(el.children,{height:"",left:"",opacity:"",pointerEvents:"",position:"",top:"",width:""}),removeClass(el,targetClass),css(el,"minHeight","")}function getPositionWithMargin(el){var ref=el.getBoundingClientRect(),height$$1=ref.height,width$$1=ref.width,ref$1=position(el),top=ref$1.top,left=ref$1.left;return{top:top+=toFloat(css(el,"marginTop")),left:left,height:height$$1,width:width$$1}}var Filter={mixins:[Animate],args:"target",props:{target:Boolean,selActive:Boolean},data:{target:null,selActive:!1,attrItem:"uk-filter-control",cls:"uk-active",animation:250},computed:{toggles:function(ref,$el){ref.attrItem;return $$("["+this.attrItem+"],[data-"+this.attrItem+"]",$el)},target:function(ref,$el){return $(ref.target,$el)}},events:[{name:"click",delegate:function(){return"["+this.attrItem+"],[data-"+this.attrItem+"]"},handler:function(e){e.preventDefault(),this.apply(e.current)}}],connected:function(){var this$1=this;if(!1!==this.selActive){var actives=$$(this.selActive,this.$el);this.toggles.forEach(function(el){return toggleClass(el,this$1.cls,includes(actives,el))})}},update:function(data$$1){var toggles=data$$1.toggles,children=data$$1.children;isEqualList(toggles,this.toggles,!1)&&isEqualList(children,this.target.children,!1)||(data$$1.toggles=this.toggles,data$$1.children=this.target.children,this.setState(this.getState(),!1))},methods:{apply:function(el){this.setState(mergeState(el,this.attrItem,this.getState()))},getState:function(){var this$1=this;return this.toggles.filter(function(item){return hasClass(item,this$1.cls)}).reduce(function(state,el){return mergeState(el,this$1.attrItem,state)},{filter:{"":""},sort:[]})},setState:function(state,animate$$1){var this$1=this;void 0===animate$$1&&(animate$$1=!0),state=assign({filter:{"":""},sort:[]},state),trigger(this.$el,"beforeFilter",[this,state]);var children=toNodes(this.target.children);this.toggles.forEach(function(el){return toggleClass(el,this$1.cls,function(el,attr$$1,ref){var stateFilter=ref.filter,ref_sort=ref.sort,stateSort=ref_sort[0],stateOrder=ref_sort[1],ref$1=getFilter(el,attr$$1),filter$$1=ref$1.filter,group=ref$1.group;void 0===group&&(group="");var sort=ref$1.sort,order=ref$1.order;void 0===order&&(order="asc");return Boolean((filter$$1||isUndefined(sort))&&group in stateFilter&&(filter$$1===stateFilter[group]||isUndefined(filter$$1)&&!stateFilter[group])||stateSort&&sort&&stateSort===sort&&stateOrder===order)}(el,this$1.attrItem,state))});var apply$$1=function(){var selector=function(ref){var selector="";return each(ref.filter,function(value){return selector+=value||""}),selector}(state);children.forEach(function(el){return css(el,"display",selector&&!matches(el,selector)?"none":"")});var ref=state.sort,sort=ref[0],order=ref[1];if(sort){var sorted=function(nodes,sort,order){return toNodes(nodes).sort(function(a,b){return data(a,sort).localeCompare(data(b,sort))*("asc"===order||-1)})}(children,sort,order);isEqualList(sorted,children)||sorted.forEach(function(el){return append(this$1.target,el)})}};animate$$1?this.animate(apply$$1).then(function(){return trigger(this$1.$el,"afterFilter",[this$1])}):(apply$$1(),trigger(this.$el,"afterFilter",[this]))}}};function getFilter(el,attr$$1){return parseOptions(data(el,attr$$1),["filter"])}function mergeState(el,attr$$1,state){return toNodes(el).forEach(function(el){var filterBy=getFilter(el,attr$$1),filter$$1=filterBy.filter,group=filterBy.group,sort=filterBy.sort,order=filterBy.order;void 0===order&&(order="asc"),(filter$$1||isUndefined(sort))&&(group?(delete state.filter[""],state.filter[group]=filter$$1):state.filter={"":filter$$1}),isUndefined(sort)||(state.sort=[sort,order])}),state}function isEqualList(listA,listB,strict){return void 0===strict&&(strict=!0),listA=toNodes(listA),listB=toNodes(listB),listA.length===listB.length&&listA.every(function(el,i){return strict?el===listB[i]:~listB.indexOf(el)})}var Animations={slide:{show:function(dir){return[{transform:translate(-100*dir)},{transform:translate()}]},percent:function(current){return translated(current)},translate:function(percent,dir){return[{transform:translate(-100*dir*percent)},{transform:translate(100*dir*(1-percent))}]}}};function translated(el){return Math.abs(css(el,"transform").split(",")[4]/el.offsetWidth)||0}function translate(value,unit){return void 0===value&&(value=0),void 0===unit&&(unit="%"),"translateX("+value+(value?unit:"")+")"}function scale3d(value){return"scale3d("+value+", "+value+", 1)"}var Animations$1=assign({},Animations,{fade:{show:function(){return[{opacity:0},{opacity:1}]},percent:function(current){return 1-css(current,"opacity")},translate:function(percent){return[{opacity:1-percent},{opacity:percent}]}},scale:{show:function(){return[{opacity:0,transform:scale3d(.8)},{opacity:1,transform:scale3d(1)}]},percent:function(current){return 1-css(current,"opacity")},translate:function(percent){return[{opacity:1-percent,transform:scale3d(1-.2*percent)},{opacity:percent,transform:scale3d(.8+.2*percent)}]}}});function triggerUpdate(el,type,data$$1){trigger(el,createEvent(type,!1,!1,data$$1))}var Slider={attrs:!0,mixins:[{props:{autoplay:Boolean,autoplayInterval:Number,pauseOnHover:Boolean},data:{autoplay:!1,autoplayInterval:7e3,pauseOnHover:!0},connected:function(){this.startAutoplay()},disconnected:function(){this.stopAutoplay()},events:[{name:"visibilitychange",el:document,handler:function(){document.hidden?this.stopAutoplay():this.startAutoplay()}},{name:pointerDown,handler:"stopAutoplay"},{name:"mouseenter",filter:function(){return this.autoplay},handler:function(){this.isHovering=!0}},{name:"mouseleave",filter:function(){return this.autoplay},handler:function(){this.isHovering=!1}}],methods:{startAutoplay:function(){var this$1=this;this.stopAutoplay(),this.autoplay&&(this.interval=setInterval(function(){return!(this$1.isHovering&&this$1.pauseOnHover)&&!this$1.stack.length&&this$1.show("next")},this.autoplayInterval))},stopAutoplay:function(){this.interval&&clearInterval(this.interval)}}},{data:{threshold:10,preventCatch:!1},init:function(){var this$1=this;["start","move","end"].forEach(function(key){var fn=this$1[key];this$1[key]=function(e){var pos=getPos$1(e).x*(isRtl?-1:1);this$1.prevPos=pos!==this$1.pos?this$1.pos:this$1.prevPos,this$1.pos=pos,fn(e)}})},events:[{name:pointerDown,delegate:function(){return this.slidesSelector},handler:function(e){var el;!isTouch(e)&&(el=e.target,!el.children.length&&el.childNodes.length)||e.button>0||this.length<2||this.preventCatch||this.start(e)}},{name:"dragstart",handler:function(e){e.preventDefault()}}],methods:{start:function(){this.drag=this.pos,this._transitioner?(this.percent=this._transitioner.percent(),this.drag+=this._transitioner.getDistance()*this.percent*this.dir,this._transitioner.translate(this.percent),this._transitioner.cancel(),this.dragging=!0,this.stack=[]):this.prevIndex=this.index,this.unbindMove=on(document,pointerMove,this.move,{capture:!0,passive:!1}),on(window,"scroll",this.unbindMove),on(document,pointerUp,this.end,!0)},move:function(e){var this$1=this,distance=this.pos-this.drag;if(!(0===distance||this.prevPos===this.pos||!this.dragging&&Math.abs(distance)<this.threshold)){e.cancelable&&e.preventDefault(),this.dragging=!0,this.dir=distance<0?1:-1;for(var slides=this.slides,prevIndex=this.prevIndex,dis=Math.abs(distance),nextIndex=this.getIndex(prevIndex+this.dir,prevIndex),width$$1=this._getDistance(prevIndex,nextIndex)||slides[prevIndex].offsetWidth;nextIndex!==prevIndex&&dis>width$$1;)this$1.drag-=width$$1*this$1.dir,prevIndex=nextIndex,dis-=width$$1,nextIndex=this$1.getIndex(prevIndex+this$1.dir,prevIndex),width$$1=this$1._getDistance(prevIndex,nextIndex)||slides[prevIndex].offsetWidth;this.percent=dis/width$$1;var itemShown,prev=slides[prevIndex],next=slides[nextIndex],changed=this.index!==nextIndex,edge=prevIndex===nextIndex;[this.index,this.prevIndex].filter(function(i){return!includes([nextIndex,prevIndex],i)}).forEach(function(i){trigger(slides[i],"itemhidden",[this$1]),edge&&(itemShown=!0,this$1.prevIndex=prevIndex)}),(this.index===prevIndex&&this.prevIndex!==prevIndex||itemShown)&&trigger(slides[this.index],"itemshown",[this]),changed&&(this.prevIndex=prevIndex,this.index=nextIndex,!edge&&trigger(prev,"beforeitemhide",[this]),trigger(next,"beforeitemshow",[this])),this._transitioner=this._translate(Math.abs(this.percent),prev,!edge&&next),changed&&(!edge&&trigger(prev,"itemhide",[this]),trigger(next,"itemshow",[this]))}},end:function(){if(off(window,"scroll",this.unbindMove),this.unbindMove(),off(document,pointerUp,this.end,!0),this.dragging){if(this.dragging=null,this.index===this.prevIndex)this.percent=1-this.percent,this.dir*=-1,this._show(!1,this.index,!0),this._transitioner=null;else{var dirChange=(isRtl?this.dir*(isRtl?1:-1):this.dir)<0==this.prevPos>this.pos;this.index=dirChange?this.index:this.prevIndex,dirChange&&(this.percent=1-this.percent),this.show(this.dir>0&&!dirChange||this.dir<0&&dirChange?"next":"previous",!0)}preventClick()}this.drag=this.percent=null}}},{data:{selNav:!1},computed:{nav:function(ref,$el){return $(ref.selNav,$el)},navItemSelector:function(ref){var attrItem=ref.attrItem;return"["+attrItem+"],[data-"+attrItem+"]"},navItems:function(_,$el){return $$(this.navItemSelector,$el)}},update:[{write:function(){var this$1=this;this.nav&&this.length!==this.nav.children.length&&html(this.nav,this.slides.map(function(_,i){return"<li "+this$1.attrItem+'="'+i+'"><a href="#"></a></li>'}).join("")),toggleClass($$(this.navItemSelector,this.$el).concat(this.nav),"uk-hidden",!this.maxIndex),this.updateNav()},events:["load","resize"]}],events:[{name:"click",delegate:function(){return this.navItemSelector},handler:function(e){e.preventDefault(),e.current.blur(),this.show(data(e.current,this.attrItem))}},{name:"itemshow",handler:"updateNav"}],methods:{updateNav:function(){var this$1=this,i=this.getValidIndex();this.navItems.forEach(function(el){var cmd=data(el,this$1.attrItem);toggleClass(el,this$1.clsActive,toNumber(cmd)===i),toggleClass(el,"uk-invisible",this$1.finite&&("previous"===cmd&&0===i||"next"===cmd&&i>=this$1.maxIndex))})}}}],props:{clsActivated:Boolean,easing:String,index:Number,finite:Boolean,velocity:Number},data:function(){return{easing:"ease",finite:!1,velocity:1,index:0,stack:[],percent:0,clsActive:"uk-active",clsActivated:!1,Transitioner:!1,transitionOptions:{}}},computed:{duration:function(ref,$el){var velocity=ref.velocity;return speedUp($el.offsetWidth/velocity)},length:function(){return this.slides.length},list:function(ref,$el){return $(ref.selList,$el)},maxIndex:function(){return this.length-1},slidesSelector:function(ref){return ref.selList+" > *"},slides:function(){return toNodes(this.list.children)}},events:{itemshown:function(){this.$update(this.list)}},methods:{show:function(index$$1,force){var this$1=this;if(void 0===force&&(force=!1),!this.dragging&&this.length){var stack=this.stack,queueIndex=force?0:stack.length,reset=function(){stack.splice(queueIndex,1),stack.length&&this$1.show(stack.shift(),!0)};if(stack[force?"unshift":"push"](index$$1),!force&&stack.length>1)2===stack.length&&this._transitioner.forward(Math.min(this.duration,200));else{var prevIndex=this.index,prev=hasClass(this.slides,this.clsActive)&&this.slides[prevIndex],nextIndex=this.getIndex(index$$1,this.index),next=this.slides[nextIndex];if(prev!==next){if(this.dir=function(index$$1,prevIndex){return"next"===index$$1?1:"previous"===index$$1?-1:index$$1<prevIndex?-1:1}(index$$1,prevIndex),this.prevIndex=prevIndex,this.index=nextIndex,prev&&trigger(prev,"beforeitemhide",[this]),!trigger(next,"beforeitemshow",[this,prev]))return this.index=this.prevIndex,void reset();var promise=this._show(prev,next,force).then(function(){return prev&&trigger(prev,"itemhidden",[this$1]),trigger(next,"itemshown",[this$1]),new Promise$1(function(resolve){fastdom.write(function(){stack.shift(),stack.length?this$1.show(stack.shift(),!0):this$1._transitioner=null,resolve()})})});return prev&&trigger(prev,"itemhide",[this]),trigger(next,"itemshow",[this]),promise}reset()}}},getIndex:function(index$$1,prev){return void 0===index$$1&&(index$$1=this.index),void 0===prev&&(prev=this.index),clamp(getIndex(index$$1,this.slides,prev,this.finite),0,this.maxIndex)},getValidIndex:function(index$$1,prevIndex){return void 0===index$$1&&(index$$1=this.index),void 0===prevIndex&&(prevIndex=this.prevIndex),this.getIndex(index$$1,prevIndex)},_show:function(prev,next,force){if(this._transitioner=this._getTransitioner(prev,next,this.dir,assign({easing:force?next.offsetWidth<600?"cubic-bezier(0.25, 0.46, 0.45, 0.94)":"cubic-bezier(0.165, 0.84, 0.44, 1)":this.easing},this.transitionOptions)),!force&&!prev)return this._transitioner.translate(1),Promise$1.resolve();var length=this.stack.length;return this._transitioner[length>1?"forward":"show"](length>1?Math.min(this.duration,75+75/(length-1)):this.duration,this.percent)},_getDistance:function(prev,next){return new this._getTransitioner(prev,prev!==next&&next).getDistance()},_translate:function(percent,prev,next){void 0===prev&&(prev=this.prevIndex),void 0===next&&(next=this.index);var transitioner=this._getTransitioner(prev!==next&&prev,next);return transitioner.translate(percent),transitioner},_getTransitioner:function(prev,next,dir,options){return void 0===prev&&(prev=this.prevIndex),void 0===next&&(next=this.index),void 0===dir&&(dir=this.dir||1),void 0===options&&(options=this.transitionOptions),new this.Transitioner(isNumber(prev)?this.slides[prev]:prev,isNumber(next)?this.slides[next]:next,dir*(isRtl?-1:1),options)}}};function speedUp(x){return.5*x+300}var Slideshow={mixins:[Slider],props:{animation:String},data:{animation:"slide",clsActivated:"uk-transition-active",Animations:Animations,Transitioner:function(prev,next,dir,ref){var animation=ref.animation,easing=ref.easing,percent=animation.percent,translate=animation.translate,show=animation.show;void 0===show&&(show=noop);var props=show(dir),deferred=new Deferred;return{dir:dir,show:function(duration,percent,linear){var this$1=this;void 0===percent&&(percent=0);var timing=linear?"linear":easing;return duration-=Math.round(duration*clamp(percent,-1,1)),this.translate(percent),triggerUpdate(next,"itemin",{percent:percent,duration:duration,timing:timing,dir:dir}),triggerUpdate(prev,"itemout",{percent:1-percent,duration:duration,timing:timing,dir:dir}),Promise$1.all([Transition.start(next,props[1],duration,timing),Transition.start(prev,props[0],duration,timing)]).then(function(){this$1.reset(),deferred.resolve()},noop),deferred.promise},stop:function(){return Transition.stop([next,prev])},cancel:function(){Transition.cancel([next,prev])},reset:function(){for(var prop in props[0])css([next,prev],prop,"")},forward:function(duration,percent){return void 0===percent&&(percent=this.percent()),Transition.cancel([next,prev]),this.show(duration,percent,!0)},translate:function(percent){this.reset();var props=translate(percent,dir);css(next,props[1]),css(prev,props[0]),triggerUpdate(next,"itemtranslatein",{percent:percent,dir:dir}),triggerUpdate(prev,"itemtranslateout",{percent:1-percent,dir:dir})},percent:function(){return percent(prev||next,next,dir)},getDistance:function(){return prev.offsetWidth}}}},computed:{animation:function(ref){var animation=ref.animation,Animations$$1=ref.Animations;return assign(animation in Animations$$1?Animations$$1[animation]:Animations$$1.slide,{name:animation})},transitionOptions:function(){return{animation:this.animation}}},events:{"itemshow itemhide itemshown itemhidden":function(ref){var target=ref.target;this.$update(target)},itemshow:function(){isNumber(this.prevIndex)&&fastdom.flush()},beforeitemshow:function(ref){addClass(ref.target,this.clsActive)},itemshown:function(ref){addClass(ref.target,this.clsActivated)},itemhidden:function(ref){removeClass(ref.target,this.clsActive,this.clsActivated)}}},LightboxPanel={mixins:[Container,Modal,Togglable,Slideshow],functional:!0,props:{delayControls:Number,preload:Number,videoAutoplay:Boolean,template:String},data:function(){return{preload:1,videoAutoplay:!1,delayControls:3e3,items:[],cls:"uk-open",clsPage:"uk-lightbox-page",selList:".uk-lightbox-items",attrItem:"uk-lightbox-item",selClose:".uk-close-large",pauseOnHover:!1,velocity:2,Animations:Animations$1,template:'<div class="uk-lightbox uk-overflow-hidden"> <ul class="uk-lightbox-items"></ul> <div class="uk-lightbox-toolbar uk-position-top uk-text-right uk-transition-slide-top uk-transition-opaque"> <button class="uk-lightbox-toolbar-icon uk-close-large" type="button" uk-close></button> </div> <a class="uk-lightbox-button uk-position-center-left uk-position-medium uk-transition-fade" href="#" uk-slidenav-previous uk-lightbox-item="previous"></a> <a class="uk-lightbox-button uk-position-center-right uk-position-medium uk-transition-fade" href="#" uk-slidenav-next uk-lightbox-item="next"></a> <div class="uk-lightbox-toolbar uk-lightbox-caption uk-position-bottom uk-text-center uk-transition-slide-bottom uk-transition-opaque"></div> </div>'}},created:function(){var this$1=this;this.$mount(append(this.container,this.template)),this.caption=$(".uk-lightbox-caption",this.$el),this.items.forEach(function(){return append(this$1.list,"<li></li>")})},events:[{name:pointerMove+" "+pointerDown+" keydown",handler:"showControls"},{name:"click",self:!0,delegate:function(){return this.slidesSelector},handler:function(e){e.preventDefault(),this.hide()}},{name:"shown",self:!0,handler:"showControls"},{name:"hide",self:!0,handler:function(){this.hideControls(),removeClass(this.slides,this.clsActive),Transition.stop(this.slides)}},{name:"keyup",el:document,handler:function(e){if(this.isToggled(this.$el))switch(e.keyCode){case 37:this.show("previous");break;case 39:this.show("next")}}},{name:"beforeitemshow",handler:function(e){this.isToggled()||(this.preventCatch=!0,e.preventDefault(),this.toggleNow(this.$el,!0),this.animation=Animations$1.scale,removeClass(e.target,this.clsActive),this.stack.splice(1,0,this.index))}},{name:"itemshow",handler:function(ref){var i=index(ref.target),caption=this.getItem(i).caption;css(this.caption,"display",caption?"":"none"),html(this.caption,caption);for(var j=0;j<=this.preload;j++)this.loadItem(this.getIndex(i+j)),this.loadItem(this.getIndex(i-j))}},{name:"itemshown",handler:function(){this.preventCatch=!1}},{name:"itemload",handler:function(_,item){var matches$$1,this$1=this,source=item.source,type=item.type,alt=item.alt;if(this.setItem(item,"<span uk-spinner></span>"),source)if("image"===type||source.match(/\.(jp(e)?g|png|gif|svg)($|\?)/i))getImage(source).then(function(img){return this$1.setItem(item,'<img width="'+img.width+'" height="'+img.height+'" src="'+source+'" alt="'+(alt||"")+'">')},function(){return this$1.setError(item)});else if("video"===type||source.match(/\.(mp4|webm|ogv)($|\?)/i)){var video=$("<video controls playsinline"+(item.poster?' poster="'+item.poster+'"':"")+' uk-video="'+this.videoAutoplay+'"></video>');attr(video,"src",source),on(video,"error",function(){return this$1.setError(item)}),on(video,"loadedmetadata",function(){attr(video,{width:video.videoWidth,height:video.videoHeight}),this$1.setItem(item,video)})}else if("iframe"===type||source.match(/\.(html|php)($|\?)/i))this.setItem(item,'<iframe class="uk-lightbox-iframe" src="'+source+'" frameborder="0" allowfullscreen></iframe>');else if(matches$$1=source.match(/\/\/.*?youtube(-nocookie)?\.[a-z]+\/watch\?v=([^&\s]+)/)||source.match(/()youtu\.be\/(.*)/)){var id=matches$$1[2],setIframe=function(width$$1,height$$1){return void 0===width$$1&&(width$$1=640),void 0===height$$1&&(height$$1=450),this$1.setItem(item,getIframe("https://www.youtube"+(matches$$1[1]||"")+".com/embed/"+id,width$$1,height$$1,this$1.videoAutoplay))};getImage("https://img.youtube.com/vi/"+id+"/maxresdefault.jpg").then(function(ref){var width$$1=ref.width,height$$1=ref.height;120===width$$1&&90===height$$1?getImage("https://img.youtube.com/vi/"+id+"/0.jpg").then(function(ref){var width$$1=ref.width,height$$1=ref.height;return setIframe(width$$1,height$$1)},setIframe):setIframe(width$$1,height$$1)},setIframe)}else(matches$$1=source.match(/(\/\/.*?)vimeo\.[a-z]+\/([0-9]+).*?/))&&ajax("https://vimeo.com/api/oembed.json?maxwidth=1920&url="+encodeURI(source),{responseType:"json",withCredentials:!1}).then(function(ref){var ref_response=ref.response,height$$1=ref_response.height,width$$1=ref_response.width;return this$1.setItem(item,getIframe("https://player.vimeo.com/video/"+matches$$1[2],width$$1,height$$1,this$1.videoAutoplay))},function(){return this$1.setError(item)})}}],methods:{loadItem:function(index$$1){void 0===index$$1&&(index$$1=this.index);var item=this.getItem(index$$1);item.content||trigger(this.$el,"itemload",[item])},getItem:function(index$$1){return void 0===index$$1&&(index$$1=this.index),this.items[index$$1]||{}},setItem:function(item,content){assign(item,{content:content});var el=html(this.slides[this.items.indexOf(item)],content);trigger(this.$el,"itemloaded",[this,el]),this.$update(el)},setError:function(item){this.setItem(item,'<span uk-icon="icon: bolt; ratio: 2"></span>')},showControls:function(){clearTimeout(this.controlsTimer),this.controlsTimer=setTimeout(this.hideControls,this.delayControls),addClass(this.$el,"uk-active","uk-transition-active")},hideControls:function(){removeClass(this.$el,"uk-active","uk-transition-active")}}};function getIframe(src,width$$1,height$$1,autoplay){return'<iframe src="'+src+'" width="'+width$$1+'" height="'+height$$1+'" style="max-width: 100%; box-sizing: border-box;" frameborder="0" allowfullscreen uk-video="autoplay: '+autoplay+'" uk-responsive></iframe>'}var obj,props=merge(LightboxPanel,"props"),defaults=merge(LightboxPanel,"data"),Lightbox={install:function(UIkit){UIkit.lightboxPanel||UIkit.component("lightboxPanel",LightboxPanel)},attrs:!0,props:assign({toggle:String},props),data:assign({toggle:"a"},Object.keys(props).reduce(function(data$$1,key){return data$$1[key]=defaults[key],data$$1},{})),computed:{toggles:function(ref,$el){return $$(ref.toggle,$el)}},disconnected:function(){this._destroy()},events:[{name:"click",delegate:function(){return this.toggle+":not(.uk-disabled)"},handler:function(e){e.preventDefault(),e.current.blur(),this.show(index(this.toggles,e.current))}}],update:function(data$$1){var listA,listB;(data$$1.toggles=data$$1.toggles||this.toggles,this.panel&&this.animation&&(this.panel.$props.animation=this.animation,this.panel.$emit()),this.panel&&(listA=data$$1.toggles,listB=this.toggles,listA.length!==listB.length||!listA.every(function(el,i){return el===listB[i]})))&&(data$$1.toggles=this.toggles,this._destroy(),this._init())},methods:{_init:function(){return this.panel=this.panel||this.$create("lightboxPanel",assign({},this.$props,{items:this.toggles.reduce(function(items,el){return items.push(["href","caption","type","poster","alt"].reduce(function(obj,attr$$1){return obj["href"===attr$$1?"source":attr$$1]=data(el,attr$$1),obj},{})),items},[])}))},_destroy:function(){this.panel&&(this.panel.$destroy(!0),this.panel=null)},show:function(index$$1){return this.panel||this._init(),this.panel.show(index$$1)},hide:function(){return this.panel&&this.panel.hide()}}};function merge(options,prop){return assign.apply(void 0,[{}].concat(options.mixins?options.mixins.map(function(mixin){return merge(mixin,prop)}):[],[isFunction(options[prop])?options[prop]():options[prop]]))}var containers={},Notification={functional:!0,args:["message","status"],data:{message:"",status:"",timeout:5e3,group:null,pos:"top-center",clsClose:"uk-notification-close",clsMsg:"uk-notification-message"},install:function(UIkit){UIkit.notification.closeAll=function(group,immediate){apply(document.body,function(el){var notification=UIkit.getComponent(el,"notification");!notification||group&&group!==notification.group||notification.close(immediate)})}},created:function(){containers[this.pos]||(containers[this.pos]=append(this.$container,'<div class="uk-notification uk-notification-'+this.pos+'"></div>'));var container=css(containers[this.pos],"display","block");this.$mount(append(container,'<div class="'+this.clsMsg+(this.status?" "+this.clsMsg+"-"+this.status:"")+'"> <a href="#" class="'+this.clsClose+'" data-uk-close></a> <div>'+this.message+"</div> </div>"))},ready:function(){var this$1=this,marginBottom=toFloat(css(this.$el,"marginBottom"));Transition.start(css(this.$el,{opacity:0,marginTop:-this.$el.offsetHeight,marginBottom:0}),{opacity:1,marginTop:0,marginBottom:marginBottom}).then(function(){this$1.timeout&&(this$1.timer=setTimeout(this$1.close,this$1.timeout))})},events:(obj={click:function(e){closest(e.target,'a[href="#"]')&&e.preventDefault(),this.close()}},obj[pointerEnter]=function(){this.timer&&clearTimeout(this.timer)},obj[pointerLeave]=function(){this.timeout&&(this.timer=setTimeout(this.close,this.timeout))},obj),methods:{close:function(immediate){var this$1=this,removeFn=function(){trigger(this$1.$el,"close",[this$1]),remove(this$1.$el),containers[this$1.pos].children.length||css(containers[this$1.pos],"display","none")};this.timer&&clearTimeout(this.timer),immediate?removeFn():Transition.start(this.$el,{opacity:0,marginTop:-this.$el.offsetHeight,marginBottom:0}).then(removeFn)}}};var props$1=["x","y","bgx","bgy","rotate","scale","color","backgroundColor","borderColor","opacity","blur","hue","grayscale","invert","saturate","sepia","fopacity"],Parallax={props:props$1.reduce(function(props,prop){return props[prop]="list",props},{media:"media"}),data:props$1.reduce(function(data$$1,prop){return data$$1[prop]=void 0,data$$1},{media:!1}),computed:{props:function(properties,$el){var this$1=this;return props$1.reduce(function(props,prop){if(isUndefined(properties[prop]))return props;var pos,bgPos,diff,isColor=prop.match(/color/i),isCssProp=isColor||"opacity"===prop,steps=properties[prop].slice(0);isCssProp&&css($el,prop,""),steps.length<2&&steps.unshift(("scale"===prop?1:isCssProp?css($el,prop):0)||0);var unit=includes(steps.join(""),"%")?"%":"px";if(isColor){var color=$el.style.color;steps=steps.map(function(step){return css(css($el,"color",step),"color").split(/[(),]/g).slice(1,-1).concat(1).slice(0,4).map(function(n){return toFloat(n)})}),$el.style.color=color}else steps=steps.map(toFloat);if(prop.match(/^bg/))if(css($el,"background-position-"+prop[2],""),bgPos=css($el,"backgroundPosition").split(" ")["x"===prop[2]?0:1],this$1.covers){var min=Math.min.apply(Math,steps),max=Math.max.apply(Math,steps),down=steps.indexOf(min)<steps.indexOf(max);diff=max-min,steps=steps.map(function(step){return step-(down?min:max)}),pos=(down?-diff:0)+"px"}else pos=bgPos;return props[prop]={steps:steps,unit:unit,pos:pos,bgPos:bgPos,diff:diff},props},{})},bgProps:function(){var this$1=this;return["bgx","bgy"].filter(function(bg){return bg in this$1.props})},covers:function(_,$el){return function(el){var backgroundSize=el.style.backgroundSize,covers="cover"===css(css(el,"backgroundSize",""),"backgroundSize");return el.style.backgroundSize=backgroundSize,covers}($el)}},disconnected:function(){delete this._image},update:[{read:function(data$$1){var this$1=this;if(data$$1.active=!this.media||window.matchMedia(this.media).matches,data$$1.image&&(data$$1.image.dimEl={width:this.$el.offsetWidth,height:this.$el.offsetHeight}),!("image"in data$$1)&&this.covers&&this.bgProps.length){var src=css(this.$el,"backgroundImage").replace(/^none|url\(["']?(.+?)["']?\)$/,"$1");src&&(data$$1.image=!1,getImage(src).then(function(img){data$$1.image={width:img.naturalWidth,height:img.naturalHeight},this$1.$emit()}))}},write:function(ref){var this$1=this,image=ref.image,active=ref.active;if(image)if(active){var dimEl=image.dimEl,dim=Dimensions.cover(image,dimEl);this.bgProps.forEach(function(prop){var ref=this$1.props[prop],diff=ref.diff,bgPos=ref.bgPos,steps=ref.steps,attr$$1="bgy"===prop?"height":"width",span=dim[attr$$1]-dimEl[attr$$1];if(bgPos.match(/%$|0px/)){if(span<diff)dimEl[attr$$1]=dim[attr$$1]+diff-span;else if(span>diff){var bgPosFloat=parseFloat(bgPos);bgPosFloat&&(this$1.props[prop].steps=steps.map(function(step){return step-(span-diff)/(100/bgPosFloat)}))}dim=Dimensions.cover(image,dimEl)}}),css(this.$el,{backgroundSize:dim.width+"px "+dim.height+"px",backgroundRepeat:"no-repeat"})}else css(this.$el,{backgroundSize:"",backgroundRepeat:""})},events:["load","resize"]}],methods:{reset:function(){var this$1=this;each(this.getCss(0),function(_,prop){return css(this$1.$el,prop,"")})},getCss:function(percent){var props=this.props,translated=!1;return Object.keys(props).reduce(function(css$$1,prop){var ref=props[prop],steps=ref.steps,unit=ref.unit,pos=ref.pos,value=getValue(steps,percent);switch(prop){case"x":case"y":if(translated)break;var ref$1=["x","y"].map(function(dir){return prop===dir?value+unit:props[dir]?getValue(props[dir].steps,percent)+props[dir].unit:0}),x=ref$1[0],y=ref$1[1];translated=css$$1.transform+=" translate3d("+x+", "+y+", 0)";break;case"rotate":css$$1.transform+=" rotate("+value+"deg)";break;case"scale":css$$1.transform+=" scale("+value+")";break;case"bgy":case"bgx":css$$1["background-position-"+prop[2]]="calc("+pos+" + "+(value+unit)+")";break;case"color":case"backgroundColor":case"borderColor":var ref$2=getStep(steps,percent),start=ref$2[0],end=ref$2[1],p=ref$2[2];css$$1[prop]="rgba("+start.map(function(value,i){return value+=p*(end[i]-value),3===i?toFloat(value):parseInt(value,10)}).join(",")+")";break;case"blur":css$$1.filter+=" blur("+value+"px)";break;case"hue":css$$1.filter+=" hue-rotate("+value+"deg)";break;case"fopacity":css$$1.filter+=" opacity("+value+"%)";break;case"grayscale":case"invert":case"saturate":case"sepia":css$$1.filter+=" "+prop+"("+value+"%)";break;default:css$$1[prop]=value}return css$$1},{transform:"",filter:""})}}};function getStep(steps,percent){var count=steps.length-1,index$$1=Math.min(Math.floor(count*percent),count-1),step=steps.slice(index$$1,index$$1+2);return step.push(1===percent?1:percent%(1/count)*count),step}function getValue(steps,percent){var ref=getStep(steps,percent),start=ref[0],end=ref[1],p=ref[2];return(isNumber(start)?start+Math.abs(start-end)*p*(start<end?1:-1):+end).toFixed(2)}var Parallax$1={mixins:[Parallax],props:{target:String,viewport:Number,easing:Number},data:{target:!1,viewport:1,easing:1},computed:{target:function(ref,$el){var target=ref.target;return target&&query(target,$el)||$el}},update:[{read:function(ref){return{prev:ref.percent,percent:function(percent,easing){return clamp(percent*(1-(easing-easing*percent)))}(scrolledOver(this.target)/(this.viewport||1),this.easing)}},write:function(ref,ref$1){var prev=ref.prev,percent=ref.percent,active=ref.active;"scroll"!==ref$1.type&&(prev=!1),active?prev!==percent&&css(this.$el,this.getCss(percent)):this.reset()},events:["scroll","load","resize"]}]};var SliderReactive={update:[{write:function(){if(!this.stack.length&&!this.dragging){var index$$1=this.getValidIndex();delete this.index,removeClass(this.slides,this.clsActive,this.clsActivated),this.show(index$$1)}},events:["load","resize"]}]};function getLeft(el,list,center){var left=getElLeft(el,list);return center?left-function(el,list){return list.offsetWidth/2-el.offsetWidth/2}(el,list):Math.min(left,getMax(list))}function getMax(list){return Math.max(0,getWidth(list)-list.offsetWidth)}function getWidth(list){return slides(list).reduce(function(right,el){return el.offsetWidth+right},0)}function getElLeft(el,list){return(el.offsetLeft+(isRtl?el.offsetWidth-list.offsetWidth:0))*(isRtl?-1:1)}function triggerUpdate$1(el,type,data$$1){trigger(el,createEvent(type,!1,!1,data$$1))}function slides(list){return toNodes(list.children)}var Slider$1={mixins:[Class,Slider,SliderReactive],props:{center:Boolean,sets:Boolean},data:{center:!1,sets:!1,attrItem:"uk-slider-item",selList:".uk-slider-items",selNav:".uk-slider-nav",clsContainer:"uk-slider-container",Transitioner:function(prev,next,dir,ref){var center=ref.center,easing=ref.easing,list=ref.list,deferred=new Deferred,from=prev?getLeft(prev,list,center):getLeft(next,list,center)+next.offsetWidth*dir,to=next?getLeft(next,list,center):from+prev.offsetWidth*dir*(isRtl?-1:1);return{dir:dir,show:function(duration,percent,linear){void 0===percent&&(percent=0);var timing=linear?"linear":easing;return duration-=Math.round(duration*clamp(percent,-1,1)),this.translate(percent),prev&&this.updateTranslates(),percent=prev?percent:clamp(percent,0,1),triggerUpdate$1(this.getItemIn(),"itemin",{percent:percent,duration:duration,timing:timing,dir:dir}),prev&&triggerUpdate$1(this.getItemIn(!0),"itemout",{percent:1-percent,duration:duration,timing:timing,dir:dir}),Transition.start(list,{transform:translate(-to*(isRtl?-1:1),"px")},duration,timing).then(deferred.resolve,noop),deferred.promise},stop:function(){return Transition.stop(list)},cancel:function(){Transition.cancel(list)},reset:function(){css(list,"transform","")},forward:function(duration,percent){return void 0===percent&&(percent=this.percent()),Transition.cancel(list),this.show(duration,percent,!0)},translate:function(percent){var distance=this.getDistance()*dir*(isRtl?-1:1);css(list,"transform",translate(clamp(distance-distance*percent-to,-getWidth(list),list.offsetWidth)*(isRtl?-1:1),"px")),this.updateTranslates(),prev&&(percent=clamp(percent,-1,1),triggerUpdate$1(this.getItemIn(),"itemtranslatein",{percent:percent,dir:dir}),triggerUpdate$1(this.getItemIn(!0),"itemtranslateout",{percent:1-percent,dir:dir}))},percent:function(){return Math.abs((css(list,"transform").split(",")[4]*(isRtl?-1:1)+from)/(to-from))},getDistance:function(){return Math.abs(to-from)},getItemIn:function(out){void 0===out&&(out=!1);var actives=this.getActives(),all=sortBy(slides(list),"offsetLeft"),i=index(all,actives[dir*(out?-1:1)>0?actives.length-1:0]);return~i&&all[i+(prev&&!out?dir:0)]},getActives:function(){var left=getLeft(prev||next,list,center);return sortBy(slides(list).filter(function(slide){var slideLeft=getElLeft(slide,list);return slideLeft>=left&&slideLeft+slide.offsetWidth<=list.offsetWidth+left}),"offsetLeft")},updateTranslates:function(){var actives=this.getActives();slides(list).forEach(function(slide){var isActive=includes(actives,slide);triggerUpdate$1(slide,"itemtranslate"+(isActive?"in":"out"),{percent:isActive?1:0,dir:slide.offsetLeft<=next.offsetLeft?1:-1})})}}}},computed:{avgWidth:function(){return getWidth(this.list)/this.length},finite:function(ref){return ref.finite||getWidth(this.list)<this.list.offsetWidth+slides(this.list).reduce(function(right,el){return Math.max(right,el.offsetWidth)},0)+this.center},maxIndex:function(){if(!this.finite||this.center&&!this.sets)return this.length-1;if(this.center)return this.sets[this.sets.length-1];css(this.slides,"order","");for(var max=getMax(this.list),i=this.length;i--;)if(getElLeft(this.list.children[i],this.list)<max)return Math.min(i+1,this.length-1);return 0},sets:function(ref){var this$1=this,sets=ref.sets,width$$1=this.list.offsetWidth/(this.center?2:1),left=0,leftCenter=width$$1,slideLeft=0;return(sets=sets&&this.slides.reduce(function(sets,slide,i){var slideWidth=offset(slide).width;if(slideLeft+slideWidth>left&&(!this$1.center&&i>this$1.maxIndex&&(i=this$1.maxIndex),!includes(sets,i))){var cmp=this$1.slides[i+1];this$1.center&&cmp&&slideWidth<leftCenter-offset(cmp).width/2?leftCenter-=slideWidth:(leftCenter=width$$1,sets.push(i),left=slideLeft+width$$1+(this$1.center?slideWidth/2:0))}return slideLeft+=slideWidth,sets},[]))&&sets.length&&sets},transitionOptions:function(){return{center:this.center,list:this.list}}},connected:function(){toggleClass(this.$el,this.clsContainer,!$("."+this.clsContainer,this.$el))},update:{write:function(){var this$1=this;$$("["+this.attrItem+"],[data-"+this.attrItem+"]",this.$el).forEach(function(el){var index$$1=data(el,this$1.attrItem);this$1.maxIndex&&toggleClass(el,"uk-hidden",isNumeric(index$$1)&&(this$1.sets&&!includes(this$1.sets,toFloat(index$$1))||index$$1>this$1.maxIndex))})},events:["load","resize"]},events:{beforeitemshow:function(e){!this.dragging&&this.sets&&this.stack.length<2&&!includes(this.sets,this.index)&&(this.index=this.getValidIndex());var diff=Math.abs(this.index-this.prevIndex+(this.dir>0&&this.index<this.prevIndex||this.dir<0&&this.index>this.prevIndex?(this.maxIndex+1)*this.dir:0));if(!this.dragging&&diff>1){for(var i=0;i<diff;i++)this.stack.splice(1,0,this.dir>0?"next":"previous");e.preventDefault()}else this.duration=speedUp(this.avgWidth/this.velocity)*((this.dir<0||!this.slides[this.prevIndex]?this.slides[this.index]:this.slides[this.prevIndex]).offsetWidth/this.avgWidth),this.reorder()},itemshow:function(){!isUndefined(this.prevIndex)&&addClass(this._getTransitioner().getItemIn(),this.clsActive)},itemshown:function(){var this$1=this,actives=this._getTransitioner(this.index).getActives();this.slides.forEach(function(slide){return toggleClass(slide,this$1.clsActive,includes(actives,slide))}),(!this.sets||includes(this.sets,toFloat(this.index)))&&this.slides.forEach(function(slide){return toggleClass(slide,this$1.clsActivated,includes(actives,slide))})}},methods:{reorder:function(){var this$1=this;if(css(this.slides,"order",""),!this.finite){var index$$1=this.dir>0&&this.slides[this.prevIndex]?this.prevIndex:this.index;if(this.slides.forEach(function(slide,i){return css(slide,"order",this$1.dir>0&&i<index$$1?1:this$1.dir<0&&i>=this$1.index?-1:"")}),this.center)for(var next=this.slides[index$$1],width$$1=this.list.offsetWidth/2-next.offsetWidth/2,j=0;width$$1>0;){var slideIndex=this$1.getIndex(--j+index$$1,index$$1),slide=this$1.slides[slideIndex];css(slide,"order",slideIndex>index$$1?-2:-1),width$$1-=slide.offsetWidth}}},getValidIndex:function(index$$1,prevIndex){var prev;if(void 0===index$$1&&(index$$1=this.index),void 0===prevIndex&&(prevIndex=this.prevIndex),index$$1=this.getIndex(index$$1,prevIndex),!this.sets)return index$$1;do{if(includes(this.sets,index$$1))return index$$1;prev=index$$1,index$$1=this.getIndex(index$$1+this.dir,prevIndex)}while(index$$1!==prev);return index$$1}}},SliderParallax={mixins:[Parallax],data:{selItem:"!li"},computed:{item:function(ref,$el){return query(ref.selItem,$el)}},events:[{name:"itemshown",self:!0,el:function(){return this.item},handler:function(){css(this.$el,this.getCss(.5))}},{name:"itemin itemout",self:!0,el:function(){return this.item},handler:function(ref){var type=ref.type,ref_detail=ref.detail,percent=ref_detail.percent,duration=ref_detail.duration,timing=ref_detail.timing,dir=ref_detail.dir;Transition.cancel(this.$el),css(this.$el,this.getCss(getCurrent(type,dir,percent))),Transition.start(this.$el,this.getCss(isIn(type)?.5:dir>0?1:0),duration,timing).catch(noop)}},{name:"transitioncanceled transitionend",self:!0,el:function(){return this.item},handler:function(){Transition.cancel(this.$el)}},{name:"itemtranslatein itemtranslateout",self:!0,el:function(){return this.item},handler:function(ref){var type=ref.type,ref_detail=ref.detail,percent=ref_detail.percent,dir=ref_detail.dir;Transition.cancel(this.$el),css(this.$el,this.getCss(getCurrent(type,dir,percent)))}}]};function isIn(type){return endsWith(type,"in")}function getCurrent(type,dir,percent){return percent/=2,isIn(type)?dir<0?1-percent:percent:dir<0?percent:1-percent}var obj$1,obj$2,Animations$2=assign({},Animations,{fade:{show:function(){return[{opacity:0,zIndex:0},{zIndex:-1}]},percent:function(current){return 1-css(current,"opacity")},translate:function(percent){return[{opacity:1-percent,zIndex:0},{zIndex:-1}]}},scale:{show:function(){return[{opacity:0,transform:scale3d(1.5),zIndex:0},{zIndex:-1}]},percent:function(current){return 1-css(current,"opacity")},translate:function(percent){return[{opacity:1-percent,transform:scale3d(1+.5*percent),zIndex:0},{zIndex:-1}]}},pull:{show:function(dir){return dir<0?[{transform:translate(30),zIndex:-1},{transform:translate(),zIndex:0}]:[{transform:translate(-100),zIndex:0},{transform:translate(),zIndex:-1}]},percent:function(current,next,dir){return dir<0?1-translated(next):translated(current)},translate:function(percent,dir){return dir<0?[{transform:translate(30*percent),zIndex:-1},{transform:translate(-100*(1-percent)),zIndex:0}]:[{transform:translate(100*-percent),zIndex:0},{transform:translate(30*(1-percent)),zIndex:-1}]}},push:{show:function(dir){return dir<0?[{transform:translate(100),zIndex:0},{transform:translate(),zIndex:-1}]:[{transform:translate(-30),zIndex:-1},{transform:translate(),zIndex:0}]},percent:function(current,next,dir){return dir>0?1-translated(next):translated(current)},translate:function(percent,dir){return dir<0?[{transform:translate(100*percent),zIndex:0},{transform:translate(-30*(1-percent)),zIndex:-1}]:[{transform:translate(-30*percent),zIndex:-1},{transform:translate(100*(1-percent)),zIndex:0}]}}}),Slideshow$1={mixins:[Class,Slideshow,SliderReactive],props:{ratio:String,minHeight:Boolean,maxHeight:Boolean},data:{ratio:"16:9",minHeight:!1,maxHeight:!1,selList:".uk-slideshow-items",attrItem:"uk-slideshow-item",selNav:".uk-slideshow-nav",Animations:Animations$2},update:{read:function(){var ref=this.ratio.split(":").map(Number),width$$1=ref[0],height$$1=ref[1];return height$$1=height$$1*this.$el.offsetWidth/width$$1,this.minHeight&&(height$$1=Math.max(this.minHeight,height$$1)),this.maxHeight&&(height$$1=Math.min(this.maxHeight,height$$1)),{height:height$$1}},write:function(ref){var hgt=ref.height;height(this.list,Math.floor(hgt))},events:["load","resize"]}},Sortable={mixins:[Class,Animate],props:{group:String,threshold:Number,clsItem:String,clsPlaceholder:String,clsDrag:String,clsDragState:String,clsBase:String,clsNoDrag:String,clsEmpty:String,clsCustom:String,handle:String},data:{group:!1,threshold:5,clsItem:"uk-sortable-item",clsPlaceholder:"uk-sortable-placeholder",clsDrag:"uk-sortable-drag",clsDragState:"uk-drag",clsBase:"uk-sortable",clsNoDrag:"uk-sortable-nodrag",clsEmpty:"uk-sortable-empty",clsCustom:"",handle:!1},init:function(){var this$1=this;["init","start","move","end"].forEach(function(key){var fn=this$1[key];this$1[key]=function(e){this$1.scrollY=window.pageYOffset;var ref=getPos$1(e),x=ref.x,y=ref.y;this$1.pos={x:x,y:y},fn(e)}})},events:(obj$1={},obj$1[pointerDown]="init",obj$1),update:{write:function(){if(this.clsEmpty&&toggleClass(this.$el,this.clsEmpty,!this.$el.children.length),this.drag){offset(this.drag,{top:this.pos.y+this.origin.top,left:this.pos.x+this.origin.left});var scroll,top=offset(this.drag).top,bottom=top+this.drag.offsetHeight;top>0&&top<this.scrollY?scroll=this.scrollY-5:bottom<height(document)&&bottom>height(window)+this.scrollY&&(scroll=this.scrollY+5),scroll&&setTimeout(function(){return window.scroll(window.pageXOffset,scroll)},5)}}},methods:{init:function(e){var target=e.target,button=e.button,defaultPrevented=e.defaultPrevented,placeholder=toNodes(this.$el.children).filter(function(el){return within(target,el)})[0];!placeholder||isInput(e.target)||this.handle&&!within(target,this.handle)||button>0||within(target,"."+this.clsNoDrag)||defaultPrevented||(e.preventDefault(),this.touched=[this],this.placeholder=placeholder,this.origin=assign({target:target,index:index(placeholder)},this.pos),on(document,pointerMove,this.move),on(document,pointerUp,this.end),on(window,"scroll",this.scroll),this.threshold||this.start(e))},start:function(e){this.drag=append(this.$container,this.placeholder.outerHTML.replace(/^<li/i,"<div").replace(/li>$/i,"div>")),css(this.drag,assign({boxSizing:"border-box",width:this.placeholder.offsetWidth,height:this.placeholder.offsetHeight},css(this.placeholder,["paddingLeft","paddingRight","paddingTop","paddingBottom"]))),attr(this.drag,"uk-no-boot",""),addClass(this.drag,this.clsDrag,this.clsCustom),height(this.drag.firstElementChild,height(this.placeholder.firstElementChild));var ref=offset(this.placeholder),left=ref.left,top=ref.top;assign(this.origin,{left:left-this.pos.x,top:top-this.pos.y}),addClass(this.placeholder,this.clsPlaceholder),addClass(this.$el.children,this.clsItem),addClass(document.documentElement,this.clsDragState),trigger(this.$el,"start",[this,this.placeholder]),this.move(e)},move:function(e){if(this.drag){this.$emit();var target="mousemove"===e.type?e.target:document.elementFromPoint(this.pos.x-document.body.scrollLeft,this.pos.y-document.body.scrollTop),sortable=this.getSortable(target),previous=this.getSortable(this.placeholder),move=sortable!==previous;if(sortable&&!within(target,this.placeholder)&&(!move||sortable.group&&sortable.group===previous.group)){if(target=sortable.$el===target.parentNode&&target||toNodes(sortable.$el.children).filter(function(element){return within(target,element)})[0],move)previous.remove(this.placeholder);else if(!target)return;sortable.insert(this.placeholder,target),includes(this.touched,sortable)||this.touched.push(sortable)}}else(Math.abs(this.pos.x-this.origin.x)>this.threshold||Math.abs(this.pos.y-this.origin.y)>this.threshold)&&this.start(e)},scroll:function(){var scroll=window.pageYOffset;scroll!==this.scrollY&&(this.pos.y+=scroll-this.scrollY,this.scrollY=scroll,this.$emit())},end:function(e){if(off(document,pointerMove,this.move),off(document,pointerUp,this.end),off(window,"scroll",this.scroll),this.drag){preventClick();var sortable=this.getSortable(this.placeholder);this===sortable?this.origin.index!==index(this.placeholder)&&trigger(this.$el,"moved",[this,this.placeholder]):(trigger(sortable.$el,"added",[sortable,this.placeholder]),trigger(this.$el,"removed",[this,this.placeholder])),trigger(this.$el,"stop",[this,this.placeholder]),remove(this.drag),this.drag=null;var classes=this.touched.map(function(sortable){return sortable.clsPlaceholder+" "+sortable.clsItem}).join(" ");this.touched.forEach(function(sortable){return removeClass(sortable.$el.children,classes)}),removeClass(document.documentElement,this.clsDragState)}else"mouseup"!==e.type&&within(e.target,"a[href]")&&(location.href=closest(e.target,"a[href]").href)},insert:function(element,target){var this$1=this;addClass(this.$el.children,this.clsItem);var insert=function(){target?!within(element,this$1.$el)||function(element,target){return element.parentNode===target.parentNode&&index(element)>index(target)}(element,target)?before(target,element):after(target,element):append(this$1.$el,element)};this.animation?this.animate(insert):insert()},remove:function(element){within(element,this.$el)&&(this.animation?this.animate(function(){return remove(element)}):remove(element))},getSortable:function(element){return element&&(this.$getComponent(element,"sortable")||this.getSortable(element.parentNode))}}};var actives=[],Tooltip={attrs:!0,args:"title",mixins:[Container,Togglable,Position],props:{delay:Number,title:String},data:{pos:"top",title:"",delay:0,animation:["uk-animation-scale-up"],duration:100,cls:"uk-active",clsPos:"uk-tooltip"},beforeConnect:function(){this._hasTitle=hasAttr(this.$el,"title"),attr(this.$el,{title:"","aria-expanded":!1})},disconnected:function(){this.hide(),attr(this.$el,{title:this._hasTitle?this.title:null,"aria-expanded":null})},methods:{show:function(){var this$1=this;includes(actives,this)||(actives.forEach(function(active){return active.hide()}),actives.push(this),this._unbind=on(document,"click",function(e){return!within(e.target,this$1.$el)&&this$1.hide()}),clearTimeout(this.showTimer),this.tooltip=append(this.container,'<div class="'+this.clsPos+'" aria-hidden><div class="'+this.clsPos+'-inner">'+this.title+"</div></div>"),attr(this.$el,"aria-expanded",!0),this.positionAt(this.tooltip,this.$el),this.origin="y"===this.getAxis()?flipPosition(this.dir)+"-"+this.align:this.align+"-"+flipPosition(this.dir),this.showTimer=setTimeout(function(){this$1.toggleElement(this$1.tooltip,!0),this$1.hideTimer=setInterval(function(){isVisible(this$1.$el)||this$1.hide()},150)},this.delay))},hide:function(){var index$$1=actives.indexOf(this);!~index$$1||matches(this.$el,"input")&&this.$el===document.activeElement||(actives.splice(index$$1,1),clearTimeout(this.showTimer),clearInterval(this.hideTimer),attr(this.$el,"aria-expanded",!1),this.toggleElement(this.tooltip,!1),this.tooltip&&remove(this.tooltip),this.tooltip=!1,this._unbind())}},events:(obj$2={},obj$2["focus "+pointerEnter+" "+pointerDown]=function(e){e.type===pointerDown&&isTouch(e)||this.show()},obj$2.blur="hide",obj$2[pointerLeave]=function(e){isTouch(e)||this.hide()},obj$2)},Upload={props:{allow:String,clsDragover:String,concurrent:Number,maxSize:Number,method:String,mime:String,msgInvalidMime:String,msgInvalidName:String,msgInvalidSize:String,multiple:Boolean,name:String,params:Object,type:String,url:String},data:{allow:!1,clsDragover:"uk-dragover",concurrent:1,maxSize:0,method:"POST",mime:!1,msgInvalidMime:"Invalid File Type: %s",msgInvalidName:"Invalid File Name: %s",msgInvalidSize:"Invalid File Size: %s Kilobytes Max",multiple:!1,name:"files[]",params:{},type:"",url:"",abort:noop,beforeAll:noop,beforeSend:noop,complete:noop,completeAll:noop,error:noop,fail:noop,load:noop,loadEnd:noop,loadStart:noop,progress:noop},events:{change:function(e){matches(e.target,'input[type="file"]')&&(e.preventDefault(),e.target.files&&this.upload(e.target.files),e.target.value="")},drop:function(e){stop(e);var transfer=e.dataTransfer;transfer&&transfer.files&&(removeClass(this.$el,this.clsDragover),this.upload(transfer.files))},dragenter:function(e){stop(e)},dragover:function(e){stop(e),addClass(this.$el,this.clsDragover)},dragleave:function(e){stop(e),removeClass(this.$el,this.clsDragover)}},methods:{upload:function(files){var this$1=this;if(files.length){trigger(this.$el,"upload",[files]);for(var i=0;i<files.length;i++){if(this$1.maxSize&&1e3*this$1.maxSize<files[i].size)return void this$1.fail(this$1.msgInvalidSize.replace("%s",this$1.maxSize));if(this$1.allow&&!match(this$1.allow,files[i].name))return void this$1.fail(this$1.msgInvalidName.replace("%s",this$1.allow));if(this$1.mime&&!match(this$1.mime,files[i].type))return void this$1.fail(this$1.msgInvalidMime.replace("%s",this$1.mime))}this.multiple||(files=[files[0]]),this.beforeAll(this,files);var chunks=function(files,size){for(var chunks=[],i=0;i<files.length;i+=size){for(var chunk=[],j=0;j<size;j++)chunk.push(files[i+j]);chunks.push(chunk)}return chunks}(files,this.concurrent),upload=function(files){var data$$1=new FormData;for(var key in files.forEach(function(file){return data$$1.append(this$1.name,file)}),this$1.params)data$$1.append(key,this$1.params[key]);ajax(this$1.url,{data:data$$1,method:this$1.method,responseType:this$1.type,beforeSend:function(env){var xhr=env.xhr;xhr.upload&&on(xhr.upload,"progress",this$1.progress),["loadStart","load","loadEnd","abort"].forEach(function(type){return on(xhr,type.toLowerCase(),this$1[type])}),this$1.beforeSend(env)}}).then(function(xhr){this$1.complete(xhr),chunks.length?upload(chunks.shift()):this$1.completeAll(xhr)},function(e){return this$1.error(e.message)})};upload(chunks.shift())}}}};function match(pattern,path){return path.match(new RegExp("^"+pattern.replace(/\//g,"\\/").replace(/\*\*/g,"(\\/[^\\/]+)*").replace(/\*/g,"[^\\/]+").replace(/((?!\\))\?/g,"$1.")+"$","i"))}function stop(e){e.preventDefault(),e.stopPropagation()}return UIkit.component("countdown",Countdown),UIkit.component("filter",Filter),UIkit.component("lightbox",Lightbox),UIkit.component("lightboxPanel",LightboxPanel),UIkit.component("notification",Notification),UIkit.component("parallax",Parallax$1),UIkit.component("slider",Slider$1),UIkit.component("sliderParallax",SliderParallax),UIkit.component("slideshow",Slideshow$1),UIkit.component("slideshowParallax",SliderParallax),UIkit.component("sortable",Sortable),UIkit.component("tooltip",Tooltip),UIkit.component("upload",Upload),function(UIkit){var connect=UIkit.connect,disconnect=UIkit.disconnect;function init(){apply$$1(document.body,connect),fastdom.flush(),new MutationObserver(function(mutations){return mutations.forEach(applyMutation)}).observe(document,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),UIkit._initialized=!0}function applyMutation(mutation){var target=mutation.target;("attributes"!==mutation.type?function(ref){for(var addedNodes=ref.addedNodes,removedNodes=ref.removedNodes,i=0;i<addedNodes.length;i++)apply$$1(addedNodes[i],connect);for(var i$1=0;i$1<removedNodes.length;i$1++)apply$$1(removedNodes[i$1],disconnect);return!0}(mutation):function(ref){var target=ref.target,attributeName=ref.attributeName;if("href"===attributeName)return!0;var name=getComponentName(attributeName);if(name&&name in UIkit){if(hasAttr(target,attributeName))return UIkit[name](target),!0;var component=UIkit.getComponent(target,name);return component?(component.$destroy(),!0):void 0}}(mutation))&&UIkit.update(target)}function apply$$1(node,fn){if(1===node.nodeType&&!hasAttr(node,"uk-no-boot"))for(fn(node),node=node.firstElementChild;node;){var next=node.nextElementSibling;apply$$1(node,fn),node=next}}"MutationObserver"in window&&(document.body?init():new MutationObserver(function(){document.body&&(this.disconnect(),init())}).observe(document,{childList:!0,subtree:!0}))}(UIkit),UIkit}); -//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL2pzL3NyYy9mb3VjLmpzIiwiLi4vanMvc3JjL2Vycm9ycy5qcyIsIi4uL2pzL3NyYy9jb3VudGRvd24uanMiLCIuLi9qcy9zcmMvamFtcy5qcyIsIi4uL2pzL3NyYy9yZXZpc2lvbl9kaWZmLmpzIiwiLi4vanMvc3JjL3dpa2kuanMiLCIuLi9qcy92ZW5kb3IvbW9tZW50L21vbWVudC5qcyIsIi4uL2pzL3ZlbmRvci9qcXVlcnkvanF1ZXJ5LTMuMy4xLmpzIiwiLi4vanMvdmVuZG9yL21vbWVudC9tb21lbnQtdGltZXpvbmUuanMiLCIuLi9qcy92ZW5kb3IvdHlwZXdyaXRlci90eXBld3JpdGVyLmpzIiwiLi4vanMvdmVuZG9yL3Vpa2l0L3Vpa2l0LmpzIl0sIm5hbWVzIjpbImdldFNjcmlwdCIsInVybCIsImludGVncml0eSIsImNyb3NzX29yaWdpbiIsInNjcmlwdCIsImRvY3VtZW50IiwiY3JlYXRlRWxlbWVudCIsInR5cGUiLCJzcmMiLCJkZWZlciIsInVuZGVmaW5lZCIsImNyb3NzT3JpZ2luIiwiZ2V0RWxlbWVudHNCeVRhZ05hbWUiLCJhcHBlbmRDaGlsZCIsInNldENsYXNzIiwic2VsZWN0b3IiLCJteV9jbGFzcyIsInF1ZXJ5U2VsZWN0b3IiLCJjbGFzc05hbWUiLCJyZW1vdmVDbGFzcyIsImVsZW1lbnQiLCJyZWciLCJSZWdFeHAiLCJyZXBsYWNlIiwiZXJyb3JfdHlwZXdyaXRlciIsImFwcCIsImdldEVsZW1lbnRCeUlkIiwidHlwZXdyaXRlciIsIlR5cGV3cml0ZXIiLCJsb29wIiwiZGVsZXRlU3BlZWQiLCJ0eXBpbmdTcGVlZCIsImRldk1vZGUiLCJvbmNsaWNrIiwiY3VycmVudF9jbGFzcyIsImdldEF0dHJpYnV0ZSIsInNldEF0dHJpYnV0ZSIsInN0b3AiLCJhcHBlbmRUZXh0IiwicGF1c2VGb3IiLCJ0eXBlU3RyaW5nIiwiZGVsZXRlQ2hhcnMiLCJjaGFuZ2VTZXR0aW5ncyIsIndpbmRvdyIsIl9SZXF1ZXN0TWV0aG9kIiwiX1BhdGgiLCJfQ29kZSIsIl9FcnJvck1zZyIsInN0YXJ0Iiwib25yZWFkeXN0YXRlY2hhbmdlIiwicmVhZHlTdGF0ZSIsInN0YXJ0amFtIiwiRGF0ZSIsIlVUQyIsImVuZGphbSIsIm5vdyIsImdvYWwiLCJnZXRUaW1lIiwiVUlraXQiLCJub3RpZmljYXRpb24iLCJtZXNzYWdlIiwicG9zIiwidGltZW91dCIsImhlYWRpbmciLCJpbm5lckhUTUwiLCJyZWZyZXNoQ291bnRkb3duIiwic2V0SW50ZXJ2YWwiLCJkZWx0YSIsImNsZWFySW50ZXJ2YWwiLCJsb2NhdGlvbiIsInJlbG9hZCIsImRheXMiLCJNYXRoIiwiZmxvb3IiLCJob3VycyIsIm1pbnV0ZXMiLCJzZWNvbmRzIiwiZSIsIkphbUFjdGlvbnMiLCJbb2JqZWN0IE9iamVjdF0iLCJjc3JmX3Rva2VuIiwidGhpcyIsImFjdGlvbiIsIm1ldGhvZCIsImRhdGEiLCJjYWxsYmFjayIsIiQiLCJhamF4IiwiZGF0YVR5cGUiLCJoZWFkZXJzIiwiWC1DU1JGVG9rZW4iLCJkb25lIiwiZmFpbCIsIkpTT04iLCJzdHJpbmdpZnkiLCJjb250ZW50VHlwZSIsImphbSIsInN0YXRlIiwic2VuZCIsInNlbmRfanNvbiIsImlkIiwiZm9ybSIsInF1ZXN0aW9uIiwicmVhc29uIiwibnVtYmVyIiwicGFydGljaXBhbnQiLCJ0ZWFtIiwibWVtYmVyIiwicmV2aXNpb25fZGlmZiIsInJldmlzaW9ucyIsImJ1dHRvbnMiLCJxdWVyeVNlbGVjdG9yQWxsIiwiaWRfcmVnIiwiZ2V0UmV2aXNpb25JZCIsIm1hdGNoIiwiZ2V0UmV2aXNpb24iLCJmaWx0ZXIiLCJ4IiwiZm9yRWFjaCIsImJ1dHRvbiIsImNoZWNrZWQiLCJvbmNoYW5nZSIsInJldiIsImFmdCIsImJlZiIsImRhdGUiLCJyZW1vdmVBdHRyaWJ1dGUiLCJocmVmIiwicmFkaW9CdXR0b25DaGVja2VkIiwid2lraV9zaWRlYmFyIiwic2lkZWJhciIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwicmVtb3ZlIiwiYWRkIiwiZ2xvYmFsIiwiZmFjdG9yeSIsImV4cG9ydHMiLCJtb2R1bGUiLCJkZWZpbmUiLCJhbWQiLCJtb21lbnQiLCJob29rQ2FsbGJhY2siLCJzb21lIiwiaG9va3MiLCJhcHBseSIsImFyZ3VtZW50cyIsImlzQXJyYXkiLCJpbnB1dCIsIkFycmF5IiwiT2JqZWN0IiwicHJvdG90eXBlIiwidG9TdHJpbmciLCJjYWxsIiwiaXNPYmplY3QiLCJpc1VuZGVmaW5lZCIsImlzTnVtYmVyIiwiaXNEYXRlIiwibWFwIiwiYXJyIiwiZm4iLCJpIiwicmVzIiwibGVuZ3RoIiwicHVzaCIsImhhc093blByb3AiLCJhIiwiYiIsImhhc093blByb3BlcnR5IiwiZXh0ZW5kIiwidmFsdWVPZiIsImNyZWF0ZVVUQyIsImZvcm1hdCIsImxvY2FsZSIsInN0cmljdCIsImNyZWF0ZUxvY2FsT3JVVEMiLCJ1dGMiLCJnZXRQYXJzaW5nRmxhZ3MiLCJtIiwiX3BmIiwiZW1wdHkiLCJ1bnVzZWRUb2tlbnMiLCJ1bnVzZWRJbnB1dCIsIm92ZXJmbG93IiwiY2hhcnNMZWZ0T3ZlciIsIm51bGxJbnB1dCIsImludmFsaWRNb250aCIsImludmFsaWRGb3JtYXQiLCJ1c2VySW52YWxpZGF0ZWQiLCJpc28iLCJwYXJzZWREYXRlUGFydHMiLCJtZXJpZGllbSIsInJmYzI4MjIiLCJ3ZWVrZGF5TWlzbWF0Y2giLCJpc1ZhbGlkIiwiX2lzVmFsaWQiLCJmbGFncyIsInBhcnNlZFBhcnRzIiwiaXNOb3dWYWxpZCIsImlzTmFOIiwiX2QiLCJpbnZhbGlkV2Vla2RheSIsIl9zdHJpY3QiLCJiaWdIb3VyIiwiaXNGcm96ZW4iLCJjcmVhdGVJbnZhbGlkIiwiTmFOIiwiZnVuIiwidCIsImxlbiIsIm1vbWVudFByb3BlcnRpZXMiLCJjb3B5Q29uZmlnIiwidG8iLCJmcm9tIiwicHJvcCIsInZhbCIsIl9pc0FNb21lbnRPYmplY3QiLCJfaSIsIl9mIiwiX2wiLCJfdHptIiwiX2lzVVRDIiwiX29mZnNldCIsIl9sb2NhbGUiLCJ1cGRhdGVJblByb2dyZXNzIiwiTW9tZW50IiwiY29uZmlnIiwidXBkYXRlT2Zmc2V0IiwiaXNNb21lbnQiLCJvYmoiLCJhYnNGbG9vciIsImNlaWwiLCJ0b0ludCIsImFyZ3VtZW50Rm9yQ29lcmNpb24iLCJjb2VyY2VkTnVtYmVyIiwidmFsdWUiLCJpc0Zpbml0ZSIsImNvbXBhcmVBcnJheXMiLCJhcnJheTEiLCJhcnJheTIiLCJkb250Q29udmVydCIsIm1pbiIsImxlbmd0aERpZmYiLCJhYnMiLCJkaWZmcyIsIndhcm4iLCJtc2ciLCJzdXBwcmVzc0RlcHJlY2F0aW9uV2FybmluZ3MiLCJjb25zb2xlIiwiZGVwcmVjYXRlIiwiZmlyc3RUaW1lIiwiZGVwcmVjYXRpb25IYW5kbGVyIiwiYXJnIiwiYXJncyIsImtleSIsInNsaWNlIiwiam9pbiIsIkVycm9yIiwic3RhY2siLCJrZXlzIiwiZGVwcmVjYXRpb25zIiwiZGVwcmVjYXRlU2ltcGxlIiwibmFtZSIsImlzRnVuY3Rpb24iLCJGdW5jdGlvbiIsIm1lcmdlQ29uZmlncyIsInBhcmVudENvbmZpZyIsImNoaWxkQ29uZmlnIiwiTG9jYWxlIiwic2V0IiwiYWxpYXNlcyIsImFkZFVuaXRBbGlhcyIsInVuaXQiLCJzaG9ydGhhbmQiLCJsb3dlckNhc2UiLCJ0b0xvd2VyQ2FzZSIsIm5vcm1hbGl6ZVVuaXRzIiwidW5pdHMiLCJub3JtYWxpemVPYmplY3RVbml0cyIsImlucHV0T2JqZWN0Iiwibm9ybWFsaXplZFByb3AiLCJub3JtYWxpemVkSW5wdXQiLCJwcmlvcml0aWVzIiwiYWRkVW5pdFByaW9yaXR5IiwicHJpb3JpdHkiLCJ6ZXJvRmlsbCIsInRhcmdldExlbmd0aCIsImZvcmNlU2lnbiIsImFic051bWJlciIsInplcm9zVG9GaWxsIiwicG93IiwibWF4Iiwic3Vic3RyIiwiZm9ybWF0dGluZ1Rva2VucyIsImxvY2FsRm9ybWF0dGluZ1Rva2VucyIsImZvcm1hdEZ1bmN0aW9ucyIsImZvcm1hdFRva2VuRnVuY3Rpb25zIiwiYWRkRm9ybWF0VG9rZW4iLCJ0b2tlbiIsInBhZGRlZCIsIm9yZGluYWwiLCJmdW5jIiwibG9jYWxlRGF0YSIsImZvcm1hdE1vbWVudCIsImV4cGFuZEZvcm1hdCIsImFycmF5IiwibW9tIiwib3V0cHV0IiwibWFrZUZvcm1hdEZ1bmN0aW9uIiwiaW52YWxpZERhdGUiLCJyZXBsYWNlTG9uZ0RhdGVGb3JtYXRUb2tlbnMiLCJsb25nRGF0ZUZvcm1hdCIsImxhc3RJbmRleCIsInRlc3QiLCJtYXRjaDEiLCJtYXRjaDIiLCJtYXRjaDMiLCJtYXRjaDQiLCJtYXRjaDYiLCJtYXRjaDF0bzIiLCJtYXRjaDN0bzQiLCJtYXRjaDV0bzYiLCJtYXRjaDF0bzMiLCJtYXRjaDF0bzQiLCJtYXRjaDF0bzYiLCJtYXRjaFVuc2lnbmVkIiwibWF0Y2hTaWduZWQiLCJtYXRjaE9mZnNldCIsIm1hdGNoU2hvcnRPZmZzZXQiLCJtYXRjaFdvcmQiLCJyZWdleGVzIiwiYWRkUmVnZXhUb2tlbiIsInJlZ2V4Iiwic3RyaWN0UmVnZXgiLCJpc1N0cmljdCIsImdldFBhcnNlUmVnZXhGb3JUb2tlbiIsInJlZ2V4RXNjYXBlIiwibWF0Y2hlZCIsInAxIiwicDIiLCJwMyIsInA0IiwicyIsInRva2VucyIsImFkZFBhcnNlVG9rZW4iLCJhZGRXZWVrUGFyc2VUb2tlbiIsIl93IiwiYWRkVGltZVRvQXJyYXlGcm9tVG9rZW4iLCJfYSIsIllFQVIiLCJNT05USCIsIkRBVEUiLCJIT1VSIiwiTUlOVVRFIiwiU0VDT05EIiwiTUlMTElTRUNPTkQiLCJXRUVLIiwiV0VFS0RBWSIsImRheXNJblllYXIiLCJ5ZWFyIiwiaXNMZWFwWWVhciIsInkiLCJwYXJzZVR3b0RpZ2l0WWVhciIsInBhcnNlSW50IiwiaW5kZXhPZiIsImdldFNldFllYXIiLCJtYWtlR2V0U2V0Iiwia2VlcFRpbWUiLCJzZXQkMSIsImdldCIsIm1vbnRoIiwiZGF5c0luTW9udGgiLCJtb2RNb250aCIsIm8iLCJtb250aHNTaG9ydCIsIm1vbnRocyIsIm1vbnRoc1Nob3J0UmVnZXgiLCJtb250aHNSZWdleCIsIm1vbnRoc1BhcnNlIiwiTU9OVEhTX0lOX0ZPUk1BVCIsImRlZmF1bHRMb2NhbGVNb250aHMiLCJzcGxpdCIsImRlZmF1bHRMb2NhbGVNb250aHNTaG9ydCIsInNldE1vbnRoIiwiZGF5T2ZNb250aCIsImdldFNldE1vbnRoIiwiZGVmYXVsdE1vbnRoc1Nob3J0UmVnZXgiLCJkZWZhdWx0TW9udGhzUmVnZXgiLCJjb21wdXRlTW9udGhzUGFyc2UiLCJjbXBMZW5SZXYiLCJzaG9ydFBpZWNlcyIsImxvbmdQaWVjZXMiLCJtaXhlZFBpZWNlcyIsInNvcnQiLCJfbW9udGhzUmVnZXgiLCJfbW9udGhzU2hvcnRSZWdleCIsIl9tb250aHNTdHJpY3RSZWdleCIsIl9tb250aHNTaG9ydFN0cmljdFJlZ2V4IiwiY3JlYXRlVVRDRGF0ZSIsImdldFVUQ0Z1bGxZZWFyIiwic2V0VVRDRnVsbFllYXIiLCJmaXJzdFdlZWtPZmZzZXQiLCJkb3ciLCJkb3kiLCJmd2QiLCJnZXRVVENEYXkiLCJkYXlPZlllYXJGcm9tV2Vla3MiLCJ3ZWVrIiwid2Vla2RheSIsInJlc1llYXIiLCJyZXNEYXlPZlllYXIiLCJkYXlPZlllYXIiLCJ3ZWVrT2ZZZWFyIiwicmVzV2VlayIsIndlZWtPZmZzZXQiLCJ3ZWVrc0luWWVhciIsIndlZWtPZmZzZXROZXh0Iiwid2Vla2RheXNNaW4iLCJ3ZWVrZGF5c1Nob3J0Iiwid2Vla2RheXMiLCJ3ZWVrZGF5c01pblJlZ2V4Iiwid2Vla2RheXNTaG9ydFJlZ2V4Iiwid2Vla2RheXNSZWdleCIsIndlZWtkYXlzUGFyc2UiLCJkIiwiZGVmYXVsdExvY2FsZVdlZWtkYXlzIiwiZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQiLCJkZWZhdWx0TG9jYWxlV2Vla2RheXNNaW4iLCJkZWZhdWx0V2Vla2RheXNSZWdleCIsImRlZmF1bHRXZWVrZGF5c1Nob3J0UmVnZXgiLCJkZWZhdWx0V2Vla2RheXNNaW5SZWdleCIsImNvbXB1dGVXZWVrZGF5c1BhcnNlIiwibWlucCIsInNob3J0cCIsImxvbmdwIiwibWluUGllY2VzIiwiZGF5IiwiX3dlZWtkYXlzUmVnZXgiLCJfd2Vla2RheXNTaG9ydFJlZ2V4IiwiX3dlZWtkYXlzTWluUmVnZXgiLCJfd2Vla2RheXNTdHJpY3RSZWdleCIsIl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXgiLCJfd2Vla2RheXNNaW5TdHJpY3RSZWdleCIsImhGb3JtYXQiLCJsb3dlcmNhc2UiLCJtYXRjaE1lcmlkaWVtIiwiX21lcmlkaWVtUGFyc2UiLCJrSW5wdXQiLCJfaXNQbSIsImlzUE0iLCJfbWVyaWRpZW0iLCJwb3MxIiwicG9zMiIsImdsb2JhbExvY2FsZSIsImdldFNldEhvdXIiLCJiYXNlQ29uZmlnIiwiY2FsZW5kYXIiLCJzYW1lRGF5IiwibmV4dERheSIsIm5leHRXZWVrIiwibGFzdERheSIsImxhc3RXZWVrIiwic2FtZUVsc2UiLCJMVFMiLCJMVCIsIkwiLCJMTCIsIkxMTCIsIkxMTEwiLCJkYXlPZk1vbnRoT3JkaW5hbFBhcnNlIiwicmVsYXRpdmVUaW1lIiwiZnV0dXJlIiwicGFzdCIsInNzIiwibW0iLCJoIiwiaGgiLCJkZCIsIk0iLCJNTSIsInl5IiwibWVyaWRpZW1QYXJzZSIsImxvY2FsZXMiLCJsb2NhbGVGYW1pbGllcyIsIm5vcm1hbGl6ZUxvY2FsZSIsImxvYWRMb2NhbGUiLCJvbGRMb2NhbGUiLCJfYWJiciIsInJlcXVpcmUiLCJnZXRTZXRHbG9iYWxMb2NhbGUiLCJ2YWx1ZXMiLCJnZXRMb2NhbGUiLCJkZWZpbmVMb2NhbGUiLCJhYmJyIiwiX2NvbmZpZyIsInBhcmVudExvY2FsZSIsIm5hbWVzIiwiaiIsIm5leHQiLCJjaG9vc2VMb2NhbGUiLCJjaGVja092ZXJmbG93IiwiX292ZXJmbG93RGF5T2ZZZWFyIiwiX292ZXJmbG93V2Vla3MiLCJfb3ZlcmZsb3dXZWVrZGF5IiwiZGVmYXVsdHMiLCJjIiwiY29uZmlnRnJvbUFycmF5IiwiY3VycmVudERhdGUiLCJleHBlY3RlZFdlZWtkYXkiLCJ5ZWFyVG9Vc2UiLCJub3dWYWx1ZSIsIl91c2VVVEMiLCJnZXRVVENNb250aCIsImdldFVUQ0RhdGUiLCJnZXRGdWxsWWVhciIsImdldE1vbnRoIiwiZ2V0RGF0ZSIsImN1cnJlbnREYXRlQXJyYXkiLCJ3Iiwid2Vla1llYXIiLCJ0ZW1wIiwid2Vla2RheU92ZXJmbG93IiwiR0ciLCJXIiwiRSIsImNyZWF0ZUxvY2FsIiwiX3dlZWsiLCJjdXJXZWVrIiwiZ2ciLCJfZGF5T2ZZZWFyIiwiZGF5T2ZZZWFyRnJvbVdlZWtJbmZvIiwiX25leHREYXkiLCJtcyIsInNldEZ1bGxZZWFyIiwiZ2V0RGF5Iiwic2V0VVRDTWludXRlcyIsImdldFVUQ01pbnV0ZXMiLCJleHRlbmRlZElzb1JlZ2V4IiwiYmFzaWNJc29SZWdleCIsInR6UmVnZXgiLCJpc29EYXRlcyIsImlzb1RpbWVzIiwiYXNwTmV0SnNvblJlZ2V4IiwiY29uZmlnRnJvbUlTTyIsImwiLCJhbGxvd1RpbWUiLCJkYXRlRm9ybWF0IiwidGltZUZvcm1hdCIsInR6Rm9ybWF0Iiwic3RyaW5nIiwiZXhlYyIsImNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQiLCJleHRyYWN0RnJvbVJGQzI4MjJTdHJpbmdzIiwieWVhclN0ciIsIm1vbnRoU3RyIiwiZGF5U3RyIiwiaG91clN0ciIsIm1pbnV0ZVN0ciIsInNlY29uZFN0ciIsInJlc3VsdCIsInVudHJ1bmNhdGVZZWFyIiwib2JzT2Zmc2V0cyIsIlVUIiwiR01UIiwiRURUIiwiRVNUIiwiQ0RUIiwiQ1NUIiwiTURUIiwiTVNUIiwiUERUIiwiUFNUIiwiY29uZmlnRnJvbVJGQzI4MjIiLCJwYXJzZWRBcnJheSIsIndlZWtkYXlTdHIiLCJwYXJzZWRJbnB1dCIsImNoZWNrV2Vla2RheSIsIm9ic09mZnNldCIsIm1pbGl0YXJ5T2Zmc2V0IiwibnVtT2Zmc2V0IiwiaG0iLCJjYWxjdWxhdGVPZmZzZXQiLCJJU09fODYwMSIsIlJGQ18yODIyIiwic2tpcHBlZCIsInN0cmluZ0xlbmd0aCIsInRvdGFsUGFyc2VkSW5wdXRMZW5ndGgiLCJob3VyIiwiaXNQbSIsIm1lcmlkaWVtSG91ciIsIm1lcmlkaWVtRml4V3JhcCIsInByZXBhcmVDb25maWciLCJwcmVwYXJzZSIsInRlbXBDb25maWciLCJiZXN0TW9tZW50Iiwic2NvcmVUb0JlYXQiLCJjdXJyZW50U2NvcmUiLCJzY29yZSIsImNvbmZpZ0Zyb21TdHJpbmdBbmRBcnJheSIsImNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrIiwiY29uZmlnRnJvbVN0cmluZyIsIm1pbnV0ZSIsInNlY29uZCIsIm1pbGxpc2Vjb25kIiwiY29uZmlnRnJvbU9iamVjdCIsImNvbmZpZ0Zyb21JbnB1dCIsImlzVVRDIiwiZ2V0T3duUHJvcGVydHlOYW1lcyIsImsiLCJpc09iamVjdEVtcHR5IiwicHJvdG90eXBlTWluIiwib3RoZXIiLCJwcm90b3R5cGVNYXgiLCJwaWNrQnkiLCJtb21lbnRzIiwib3JkZXJpbmciLCJEdXJhdGlvbiIsImR1cmF0aW9uIiwieWVhcnMiLCJxdWFydGVycyIsInF1YXJ0ZXIiLCJ3ZWVrcyIsIm1pbGxpc2Vjb25kcyIsInVuaXRIYXNEZWNpbWFsIiwicGFyc2VGbG9hdCIsImlzRHVyYXRpb25WYWxpZCIsIl9taWxsaXNlY29uZHMiLCJfZGF5cyIsIl9tb250aHMiLCJfZGF0YSIsIl9idWJibGUiLCJpc0R1cmF0aW9uIiwiYWJzUm91bmQiLCJyb3VuZCIsIm9mZnNldCIsInNlcGFyYXRvciIsInV0Y09mZnNldCIsInNpZ24iLCJvZmZzZXRGcm9tU3RyaW5nIiwiY2h1bmtPZmZzZXQiLCJtYXRjaGVyIiwibWF0Y2hlcyIsInBhcnRzIiwiY2xvbmVXaXRoT2Zmc2V0IiwibW9kZWwiLCJkaWZmIiwiY2xvbmUiLCJzZXRUaW1lIiwibG9jYWwiLCJnZXREYXRlT2Zmc2V0IiwiZ2V0VGltZXpvbmVPZmZzZXQiLCJpc1V0YyIsImFzcE5ldFJlZ2V4IiwiaXNvUmVnZXgiLCJjcmVhdGVEdXJhdGlvbiIsInJldCIsImRpZmZSZXMiLCJwYXJzZUlzbyIsImJhc2UiLCJpc0JlZm9yZSIsInBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2UiLCJtb21lbnRzRGlmZmVyZW5jZSIsImlucCIsImlzQWZ0ZXIiLCJjcmVhdGVBZGRlciIsImRpcmVjdGlvbiIsInBlcmlvZCIsInRtcCIsImFkZFN1YnRyYWN0IiwiaXNBZGRpbmciLCJpbnZhbGlkIiwic3VidHJhY3QiLCJtb250aERpZmYiLCJ3aG9sZU1vbnRoRGlmZiIsImFuY2hvciIsIm5ld0xvY2FsZURhdGEiLCJkZWZhdWx0Rm9ybWF0IiwiZGVmYXVsdEZvcm1hdFV0YyIsImxhbmciLCJhZGRXZWVrWWVhckZvcm1hdFRva2VuIiwiZ2V0dGVyIiwiZ2V0U2V0V2Vla1llYXJIZWxwZXIiLCJ3ZWVrc1RhcmdldCIsImRheU9mWWVhckRhdGEiLCJpc29XZWVrWWVhciIsIl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlIiwiX29yZGluYWxQYXJzZSIsIl9kYXlPZk1vbnRoT3JkaW5hbFBhcnNlTGVuaWVudCIsImdldFNldERheU9mTW9udGgiLCJnZXRTZXRNaW51dGUiLCJnZXRTZXRTZWNvbmQiLCJwYXJzZU1zIiwiZ2V0U2V0TWlsbGlzZWNvbmQiLCJwcm90byIsInByZVBhcnNlUG9zdEZvcm1hdCIsInRpbWUiLCJmb3JtYXRzIiwic29kIiwic3RhcnRPZiIsImNhbGVuZGFyRm9ybWF0IiwiYXNGbG9hdCIsInRoYXQiLCJ6b25lRGVsdGEiLCJlbmRPZiIsImlucHV0U3RyaW5nIiwicG9zdGZvcm1hdCIsIndpdGhvdXRTdWZmaXgiLCJodW1hbml6ZSIsImZyb21Ob3ciLCJ0b05vdyIsImludmFsaWRBdCIsImxvY2FsSW5wdXQiLCJpc0JldHdlZW4iLCJpbmNsdXNpdml0eSIsImlzU2FtZSIsImlucHV0TXMiLCJpc1NhbWVPckFmdGVyIiwiaXNTYW1lT3JCZWZvcmUiLCJwYXJzaW5nRmxhZ3MiLCJwcmlvcml0aXplZCIsInVuaXRzT2JqIiwidSIsImdldFByaW9yaXRpemVkVW5pdHMiLCJpc29XZWVrZGF5IiwidG9BcnJheSIsInRvT2JqZWN0IiwidG9EYXRlIiwidG9JU09TdHJpbmciLCJrZWVwT2Zmc2V0IiwiaW5zcGVjdCIsInpvbmUiLCJpc0xvY2FsIiwicHJlZml4Iiwic3VmZml4IiwidG9KU09OIiwidW5peCIsImNyZWF0aW9uRGF0YSIsImlzb1dlZWsiLCJpc29XZWVrcyIsIndlZWtJbmZvIiwiaXNvV2Vla3NJblllYXIiLCJwYXJzZVdlZWtkYXkiLCJwYXJzZUlzb1dlZWtkYXkiLCJrZWVwTG9jYWxUaW1lIiwia2VlcE1pbnV0ZXMiLCJsb2NhbEFkanVzdCIsIl9jaGFuZ2VJblByb2dyZXNzIiwicGFyc2Vab25lIiwidFpvbmUiLCJoYXNBbGlnbmVkSG91ck9mZnNldCIsImlzRFNUIiwiaXNVdGNPZmZzZXQiLCJ6b25lQWJiciIsInpvbmVOYW1lIiwiZGF0ZXMiLCJpc0RTVFNoaWZ0ZWQiLCJfaXNEU1RTaGlmdGVkIiwicHJvdG8kMSIsImdldCQxIiwiaW5kZXgiLCJmaWVsZCIsInNldHRlciIsImxpc3RNb250aHNJbXBsIiwib3V0IiwibGlzdFdlZWtkYXlzSW1wbCIsImxvY2FsZVNvcnRlZCIsInNoaWZ0IiwiX2NhbGVuZGFyIiwiX2xvbmdEYXRlRm9ybWF0IiwiZm9ybWF0VXBwZXIiLCJ0b1VwcGVyQ2FzZSIsIl9pbnZhbGlkRGF0ZSIsIl9vcmRpbmFsIiwiaXNGdXR1cmUiLCJfcmVsYXRpdmVUaW1lIiwicGFzdEZ1dHVyZSIsInNvdXJjZSIsImlzRm9ybWF0IiwiX21vbnRoc1Nob3J0IiwibW9udGhOYW1lIiwiX21vbnRoc1BhcnNlRXhhY3QiLCJpaSIsImxsYyIsInRvTG9jYWxlTG93ZXJDYXNlIiwiX21vbnRoc1BhcnNlIiwiX2xvbmdNb250aHNQYXJzZSIsIl9zaG9ydE1vbnRoc1BhcnNlIiwiZmlyc3REYXlPZlllYXIiLCJmaXJzdERheU9mV2VlayIsIl93ZWVrZGF5cyIsIl93ZWVrZGF5c01pbiIsIl93ZWVrZGF5c1Nob3J0Iiwid2Vla2RheU5hbWUiLCJfd2Vla2RheXNQYXJzZUV4YWN0IiwiX3dlZWtkYXlzUGFyc2UiLCJfc2hvcnRXZWVrZGF5c1BhcnNlIiwiX21pbldlZWtkYXlzUGFyc2UiLCJfZnVsbFdlZWtkYXlzUGFyc2UiLCJjaGFyQXQiLCJpc0xvd2VyIiwibGFuZ0RhdGEiLCJtYXRoQWJzIiwiYWRkU3VidHJhY3QkMSIsImFic0NlaWwiLCJkYXlzVG9Nb250aHMiLCJtb250aHNUb0RheXMiLCJtYWtlQXMiLCJhbGlhcyIsImFzIiwiYXNNaWxsaXNlY29uZHMiLCJhc1NlY29uZHMiLCJhc01pbnV0ZXMiLCJhc0hvdXJzIiwiYXNEYXlzIiwiYXNXZWVrcyIsImFzTW9udGhzIiwiYXNZZWFycyIsIm1ha2VHZXR0ZXIiLCJ0aHJlc2hvbGRzIiwiYWJzJDEiLCJ0b0lTT1N0cmluZyQxIiwiWSIsIkQiLCJ0b0ZpeGVkIiwidG90YWwiLCJ0b3RhbFNpZ24iLCJ5bVNpZ24iLCJkYXlzU2lnbiIsImhtc1NpZ24iLCJwcm90byQyIiwibW9udGhzRnJvbURheXMiLCJ3aXRoU3VmZml4IiwicG9zTmVnRHVyYXRpb24iLCJyZWxhdGl2ZVRpbWUkMSIsInRvSXNvU3RyaW5nIiwidmVyc2lvbiIsInVwZGF0ZUxvY2FsZSIsInRtcExvY2FsZSIsInJlbGF0aXZlVGltZVJvdW5kaW5nIiwicm91bmRpbmdGdW5jdGlvbiIsInJlbGF0aXZlVGltZVRocmVzaG9sZCIsInRocmVzaG9sZCIsImxpbWl0IiwibXlNb21lbnQiLCJIVE1MNV9GTVQiLCJEQVRFVElNRV9MT0NBTCIsIkRBVEVUSU1FX0xPQ0FMX1NFQ09ORFMiLCJEQVRFVElNRV9MT0NBTF9NUyIsIlRJTUUiLCJUSU1FX1NFQ09ORFMiLCJUSU1FX01TIiwibm9HbG9iYWwiLCJnZXRQcm90byIsImdldFByb3RvdHlwZU9mIiwiY29uY2F0IiwiY2xhc3MydHlwZSIsImhhc093biIsImZuVG9TdHJpbmciLCJPYmplY3RGdW5jdGlvblN0cmluZyIsInN1cHBvcnQiLCJub2RlVHlwZSIsImlzV2luZG93IiwicHJlc2VydmVkU2NyaXB0QXR0cmlidXRlcyIsIm5vTW9kdWxlIiwiRE9NRXZhbCIsImNvZGUiLCJkb2MiLCJub2RlIiwidGV4dCIsImhlYWQiLCJwYXJlbnROb2RlIiwicmVtb3ZlQ2hpbGQiLCJ0b1R5cGUiLCJqUXVlcnkiLCJjb250ZXh0IiwiaW5pdCIsInJ0cmltIiwiaXNBcnJheUxpa2UiLCJqcXVlcnkiLCJjb25zdHJ1Y3RvciIsIm51bSIsInB1c2hTdGFjayIsImVsZW1zIiwibWVyZ2UiLCJwcmV2T2JqZWN0IiwiZWFjaCIsImVsZW0iLCJmaXJzdCIsImVxIiwibGFzdCIsImVuZCIsInNwbGljZSIsIm9wdGlvbnMiLCJjb3B5IiwiY29weUlzQXJyYXkiLCJ0YXJnZXQiLCJkZWVwIiwiaXNQbGFpbk9iamVjdCIsImV4cGFuZG8iLCJyYW5kb20iLCJpc1JlYWR5IiwiZXJyb3IiLCJub29wIiwiQ3RvciIsImlzRW1wdHlPYmplY3QiLCJnbG9iYWxFdmFsIiwidHJpbSIsIm1ha2VBcnJheSIsInJlc3VsdHMiLCJpbkFycmF5IiwiZ3JlcCIsImludmVydCIsImNhbGxiYWNrRXhwZWN0IiwiZ3VpZCIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiU2l6emxlIiwiRXhwciIsImdldFRleHQiLCJpc1hNTCIsInRva2VuaXplIiwiY29tcGlsZSIsInNlbGVjdCIsIm91dGVybW9zdENvbnRleHQiLCJzb3J0SW5wdXQiLCJoYXNEdXBsaWNhdGUiLCJzZXREb2N1bWVudCIsImRvY0VsZW0iLCJkb2N1bWVudElzSFRNTCIsInJidWdneVFTQSIsInJidWdneU1hdGNoZXMiLCJwcmVmZXJyZWREb2MiLCJkaXJydW5zIiwiY2xhc3NDYWNoZSIsImNyZWF0ZUNhY2hlIiwidG9rZW5DYWNoZSIsImNvbXBpbGVyQ2FjaGUiLCJzb3J0T3JkZXIiLCJwb3AiLCJwdXNoX25hdGl2ZSIsImxpc3QiLCJib29sZWFucyIsIndoaXRlc3BhY2UiLCJpZGVudGlmaWVyIiwiYXR0cmlidXRlcyIsInBzZXVkb3MiLCJyd2hpdGVzcGFjZSIsInJjb21tYSIsInJjb21iaW5hdG9ycyIsInJhdHRyaWJ1dGVRdW90ZXMiLCJycHNldWRvIiwicmlkZW50aWZpZXIiLCJtYXRjaEV4cHIiLCJJRCIsIkNMQVNTIiwiVEFHIiwiQVRUUiIsIlBTRVVETyIsIkNISUxEIiwiYm9vbCIsIm5lZWRzQ29udGV4dCIsInJpbnB1dHMiLCJyaGVhZGVyIiwicm5hdGl2ZSIsInJxdWlja0V4cHIiLCJyc2libGluZyIsInJ1bmVzY2FwZSIsImZ1bmVzY2FwZSIsIl8iLCJlc2NhcGVkIiwiZXNjYXBlZFdoaXRlc3BhY2UiLCJoaWdoIiwiU3RyaW5nIiwiZnJvbUNoYXJDb2RlIiwicmNzc2VzY2FwZSIsImZjc3Nlc2NhcGUiLCJjaCIsImFzQ29kZVBvaW50IiwiY2hhckNvZGVBdCIsInVubG9hZEhhbmRsZXIiLCJkaXNhYmxlZEFuY2VzdG9yIiwiYWRkQ29tYmluYXRvciIsImRpc2FibGVkIiwiZGlyIiwiY2hpbGROb2RlcyIsImVscyIsInNlZWQiLCJuaWQiLCJncm91cHMiLCJuZXdTZWxlY3RvciIsIm5ld0NvbnRleHQiLCJvd25lckRvY3VtZW50IiwiZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSIsInFzYSIsIm5vZGVOYW1lIiwidG9TZWxlY3RvciIsInRlc3RDb250ZXh0IiwicXNhRXJyb3IiLCJjYWNoZSIsImNhY2hlTGVuZ3RoIiwibWFya0Z1bmN0aW9uIiwiYXNzZXJ0IiwiZWwiLCJhZGRIYW5kbGUiLCJhdHRycyIsImhhbmRsZXIiLCJhdHRySGFuZGxlIiwic2libGluZ0NoZWNrIiwiY3VyIiwic291cmNlSW5kZXgiLCJuZXh0U2libGluZyIsImNyZWF0ZUlucHV0UHNldWRvIiwiY3JlYXRlQnV0dG9uUHNldWRvIiwiY3JlYXRlRGlzYWJsZWRQc2V1ZG8iLCJpc0Rpc2FibGVkIiwiY3JlYXRlUG9zaXRpb25hbFBzZXVkbyIsImFyZ3VtZW50IiwibWF0Y2hJbmRleGVzIiwiZG9jdW1lbnRFbGVtZW50IiwiaGFzQ29tcGFyZSIsInN1YldpbmRvdyIsImRlZmF1bHRWaWV3IiwidG9wIiwiYWRkRXZlbnRMaXN0ZW5lciIsImF0dGFjaEV2ZW50IiwiY3JlYXRlQ29tbWVudCIsImdldEJ5SWQiLCJnZXRFbGVtZW50c0J5TmFtZSIsImF0dHJJZCIsImZpbmQiLCJnZXRBdHRyaWJ1dGVOb2RlIiwidGFnIiwibWF0Y2hlc1NlbGVjdG9yIiwid2Via2l0TWF0Y2hlc1NlbGVjdG9yIiwibW96TWF0Y2hlc1NlbGVjdG9yIiwib01hdGNoZXNTZWxlY3RvciIsIm1zTWF0Y2hlc1NlbGVjdG9yIiwiZGlzY29ubmVjdGVkTWF0Y2giLCJjb21wYXJlRG9jdW1lbnRQb3NpdGlvbiIsImFkb3duIiwiYnVwIiwiY29tcGFyZSIsInNvcnREZXRhY2hlZCIsImF1cCIsImFwIiwiYnAiLCJ1bnNoaWZ0IiwiZXhwciIsImVsZW1lbnRzIiwiYXR0ciIsInNwZWNpZmllZCIsImVzY2FwZSIsInNlbCIsInVuaXF1ZVNvcnQiLCJkdXBsaWNhdGVzIiwiZGV0ZWN0RHVwbGljYXRlcyIsInNvcnRTdGFibGUiLCJ0ZXh0Q29udGVudCIsImZpcnN0Q2hpbGQiLCJub2RlVmFsdWUiLCJzZWxlY3RvcnMiLCJjcmVhdGVQc2V1ZG8iLCJyZWxhdGl2ZSIsIj4iLCIgIiwiKyIsIn4iLCJwcmVGaWx0ZXIiLCJleGNlc3MiLCJ1bnF1b3RlZCIsIm5vZGVOYW1lU2VsZWN0b3IiLCJwYXR0ZXJuIiwib3BlcmF0b3IiLCJjaGVjayIsIndoYXQiLCJzaW1wbGUiLCJmb3J3YXJkIiwib2ZUeXBlIiwieG1sIiwidW5pcXVlQ2FjaGUiLCJvdXRlckNhY2hlIiwibm9kZUluZGV4IiwicGFyZW50IiwidXNlQ2FjaGUiLCJsYXN0Q2hpbGQiLCJ1bmlxdWVJRCIsInBzZXVkbyIsInNldEZpbHRlcnMiLCJpZHgiLCJub3QiLCJ1bm1hdGNoZWQiLCJoYXMiLCJpbm5lclRleHQiLCJlbGVtTGFuZyIsImhhc2giLCJyb290IiwiZm9jdXMiLCJhY3RpdmVFbGVtZW50IiwiaGFzRm9jdXMiLCJ0YWJJbmRleCIsImVuYWJsZWQiLCJzZWxlY3RlZCIsInNlbGVjdGVkSW5kZXgiLCJoZWFkZXIiLCJldmVuIiwib2RkIiwibHQiLCJndCIsInJhZGlvIiwiY2hlY2tib3giLCJmaWxlIiwicGFzc3dvcmQiLCJpbWFnZSIsInN1Ym1pdCIsInJlc2V0IiwiY29tYmluYXRvciIsInNraXAiLCJjaGVja05vbkVsZW1lbnRzIiwiZG9uZU5hbWUiLCJvbGRDYWNoZSIsIm5ld0NhY2hlIiwiZWxlbWVudE1hdGNoZXIiLCJtYXRjaGVycyIsImNvbmRlbnNlIiwibmV3VW5tYXRjaGVkIiwibWFwcGVkIiwic2V0TWF0Y2hlciIsInBvc3RGaWx0ZXIiLCJwb3N0RmluZGVyIiwicG9zdFNlbGVjdG9yIiwicHJlTWFwIiwicG9zdE1hcCIsInByZWV4aXN0aW5nIiwiY29udGV4dHMiLCJtdWx0aXBsZUNvbnRleHRzIiwibWF0Y2hlckluIiwibWF0Y2hlck91dCIsIm1hdGNoZXJGcm9tVG9rZW5zIiwiY2hlY2tDb250ZXh0IiwibGVhZGluZ1JlbGF0aXZlIiwiaW1wbGljaXRSZWxhdGl2ZSIsIm1hdGNoQ29udGV4dCIsIm1hdGNoQW55Q29udGV4dCIsImZpbHRlcnMiLCJwYXJzZU9ubHkiLCJzb0ZhciIsInByZUZpbHRlcnMiLCJjYWNoZWQiLCJzZXRNYXRjaGVycyIsImVsZW1lbnRNYXRjaGVycyIsImJ5U2V0IiwiYnlFbGVtZW50Iiwic3VwZXJNYXRjaGVyIiwib3V0ZXJtb3N0IiwibWF0Y2hlZENvdW50Iiwic2V0TWF0Y2hlZCIsImNvbnRleHRCYWNrdXAiLCJkaXJydW5zVW5pcXVlIiwibWF0Y2hlckZyb21Hcm91cE1hdGNoZXJzIiwiY29tcGlsZWQiLCJkZWZhdWx0VmFsdWUiLCJ1bmlxdWUiLCJpc1hNTERvYyIsImVzY2FwZVNlbGVjdG9yIiwidW50aWwiLCJ0cnVuY2F0ZSIsImlzIiwic2libGluZ3MiLCJuIiwicm5lZWRzQ29udGV4dCIsInJzaW5nbGVUYWciLCJ3aW5ub3ciLCJxdWFsaWZpZXIiLCJzZWxmIiwicm9vdGpRdWVyeSIsInBhcnNlSFRNTCIsInJlYWR5IiwicnBhcmVudHNwcmV2IiwiZ3VhcmFudGVlZFVuaXF1ZSIsImNoaWxkcmVuIiwiY29udGVudHMiLCJwcmV2Iiwic2libGluZyIsInRhcmdldHMiLCJjbG9zZXN0IiwicHJldkFsbCIsImFkZEJhY2siLCJwYXJlbnRzIiwicGFyZW50c1VudGlsIiwibmV4dEFsbCIsIm5leHRVbnRpbCIsInByZXZVbnRpbCIsImNvbnRlbnREb2N1bWVudCIsImNvbnRlbnQiLCJyZXZlcnNlIiwicm5vdGh0bWx3aGl0ZSIsIklkZW50aXR5IiwidiIsIlRocm93ZXIiLCJleCIsImFkb3B0VmFsdWUiLCJyZXNvbHZlIiwicmVqZWN0Iiwibm9WYWx1ZSIsInByb21pc2UiLCJ0aGVuIiwiQ2FsbGJhY2tzIiwib2JqZWN0IiwiZmxhZyIsImNyZWF0ZU9wdGlvbnMiLCJmaXJpbmciLCJtZW1vcnkiLCJmaXJlZCIsImxvY2tlZCIsInF1ZXVlIiwiZmlyaW5nSW5kZXgiLCJmaXJlIiwib25jZSIsInN0b3BPbkZhbHNlIiwiZGlzYWJsZSIsImxvY2siLCJmaXJlV2l0aCIsIkRlZmVycmVkIiwidHVwbGVzIiwiYWx3YXlzIiwiZGVmZXJyZWQiLCJjYXRjaCIsInBpcGUiLCJmbnMiLCJuZXdEZWZlciIsInR1cGxlIiwicmV0dXJuZWQiLCJwcm9ncmVzcyIsIm5vdGlmeSIsIm9uRnVsZmlsbGVkIiwib25SZWplY3RlZCIsIm9uUHJvZ3Jlc3MiLCJtYXhEZXB0aCIsImRlcHRoIiwic3BlY2lhbCIsIm1pZ2h0VGhyb3ciLCJUeXBlRXJyb3IiLCJub3RpZnlXaXRoIiwicmVzb2x2ZVdpdGgiLCJwcm9jZXNzIiwiZXhjZXB0aW9uSG9vayIsInN0YWNrVHJhY2UiLCJyZWplY3RXaXRoIiwiZ2V0U3RhY2tIb29rIiwic2V0VGltZW91dCIsInN0YXRlU3RyaW5nIiwid2hlbiIsInNpbmdsZVZhbHVlIiwicmVtYWluaW5nIiwicmVzb2x2ZUNvbnRleHRzIiwicmVzb2x2ZVZhbHVlcyIsIm1hc3RlciIsInVwZGF0ZUZ1bmMiLCJyZXJyb3JOYW1lcyIsInJlYWR5RXhjZXB0aW9uIiwicmVhZHlMaXN0IiwiY29tcGxldGVkIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsInJlYWR5V2FpdCIsIndhaXQiLCJkb1Njcm9sbCIsImFjY2VzcyIsImNoYWluYWJsZSIsImVtcHR5R2V0IiwicmF3IiwiYnVsayIsInJtc1ByZWZpeCIsInJkYXNoQWxwaGEiLCJmY2FtZWxDYXNlIiwiYWxsIiwibGV0dGVyIiwiY2FtZWxDYXNlIiwiYWNjZXB0RGF0YSIsIm93bmVyIiwiRGF0YSIsInVpZCIsImRlZmluZVByb3BlcnR5IiwiY29uZmlndXJhYmxlIiwiaGFzRGF0YSIsImRhdGFQcml2IiwiZGF0YVVzZXIiLCJyYnJhY2UiLCJybXVsdGlEYXNoIiwiZGF0YUF0dHIiLCJwYXJzZSIsImdldERhdGEiLCJyZW1vdmVEYXRhIiwiX3JlbW92ZURhdGEiLCJkZXF1ZXVlIiwic3RhcnRMZW5ndGgiLCJfcXVldWVIb29rcyIsImNsZWFyUXVldWUiLCJjb3VudCIsInBudW0iLCJyY3NzTnVtIiwiY3NzRXhwYW5kIiwiaXNIaWRkZW5XaXRoaW5UcmVlIiwic3R5bGUiLCJkaXNwbGF5IiwiY3NzIiwic3dhcCIsIm9sZCIsImFkanVzdENTUyIsInZhbHVlUGFydHMiLCJ0d2VlbiIsImFkanVzdGVkIiwic2NhbGUiLCJtYXhJdGVyYXRpb25zIiwiY3VycmVudFZhbHVlIiwiaW5pdGlhbCIsImNzc051bWJlciIsImluaXRpYWxJblVuaXQiLCJkZWZhdWx0RGlzcGxheU1hcCIsImdldERlZmF1bHREaXNwbGF5IiwiYm9keSIsInNob3dIaWRlIiwic2hvdyIsImhpZGUiLCJ0b2dnbGUiLCJyY2hlY2thYmxlVHlwZSIsInJ0YWdOYW1lIiwicnNjcmlwdFR5cGUiLCJ3cmFwTWFwIiwib3B0aW9uIiwidGhlYWQiLCJjb2wiLCJ0ciIsInRkIiwiX2RlZmF1bHQiLCJnZXRBbGwiLCJzZXRHbG9iYWxFdmFsIiwicmVmRWxlbWVudHMiLCJvcHRncm91cCIsInRib2R5IiwidGZvb3QiLCJjb2xncm91cCIsImNhcHRpb24iLCJ0aCIsImRpdiIsInJodG1sIiwiYnVpbGRGcmFnbWVudCIsInNjcmlwdHMiLCJzZWxlY3Rpb24iLCJpZ25vcmVkIiwid3JhcCIsImZyYWdtZW50IiwiY3JlYXRlRG9jdW1lbnRGcmFnbWVudCIsIm5vZGVzIiwiaHRtbFByZWZpbHRlciIsImNyZWF0ZVRleHROb2RlIiwiY2hlY2tDbG9uZSIsImNsb25lTm9kZSIsIm5vQ2xvbmVDaGVja2VkIiwicmtleUV2ZW50Iiwicm1vdXNlRXZlbnQiLCJydHlwZW5hbWVzcGFjZSIsInJldHVyblRydWUiLCJyZXR1cm5GYWxzZSIsInNhZmVBY3RpdmVFbGVtZW50IiwiZXJyIiwib24iLCJ0eXBlcyIsIm9uZSIsIm9yaWdGbiIsImV2ZW50Iiwib2ZmIiwiaGFuZGxlT2JqSW4iLCJldmVudEhhbmRsZSIsImV2ZW50cyIsImhhbmRsZU9iaiIsImhhbmRsZXJzIiwibmFtZXNwYWNlcyIsIm9yaWdUeXBlIiwiZWxlbURhdGEiLCJoYW5kbGUiLCJ0cmlnZ2VyZWQiLCJkaXNwYXRjaCIsImRlbGVnYXRlVHlwZSIsImJpbmRUeXBlIiwibmFtZXNwYWNlIiwiZGVsZWdhdGVDb3VudCIsInNldHVwIiwibWFwcGVkVHlwZXMiLCJvcmlnQ291bnQiLCJ0ZWFyZG93biIsInJlbW92ZUV2ZW50IiwibmF0aXZlRXZlbnQiLCJoYW5kbGVyUXVldWUiLCJmaXgiLCJkZWxlZ2F0ZVRhcmdldCIsInByZURpc3BhdGNoIiwiaXNQcm9wYWdhdGlvblN0b3BwZWQiLCJjdXJyZW50VGFyZ2V0IiwiaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQiLCJybmFtZXNwYWNlIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJwb3N0RGlzcGF0Y2giLCJtYXRjaGVkSGFuZGxlcnMiLCJtYXRjaGVkU2VsZWN0b3JzIiwiYWRkUHJvcCIsImhvb2siLCJFdmVudCIsImVudW1lcmFibGUiLCJvcmlnaW5hbEV2ZW50Iiwid3JpdGFibGUiLCJsb2FkIiwibm9CdWJibGUiLCJ0cmlnZ2VyIiwiYmx1ciIsImNsaWNrIiwiYmVmb3JldW5sb2FkIiwicmV0dXJuVmFsdWUiLCJwcm9wcyIsImlzRGVmYXVsdFByZXZlbnRlZCIsImRlZmF1bHRQcmV2ZW50ZWQiLCJyZWxhdGVkVGFyZ2V0IiwidGltZVN0YW1wIiwiaXNTaW11bGF0ZWQiLCJzdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24iLCJhbHRLZXkiLCJidWJibGVzIiwiY2FuY2VsYWJsZSIsImNoYW5nZWRUb3VjaGVzIiwiY3RybEtleSIsImRldGFpbCIsImV2ZW50UGhhc2UiLCJtZXRhS2V5IiwicGFnZVgiLCJwYWdlWSIsInNoaWZ0S2V5IiwidmlldyIsImNoYXIiLCJjaGFyQ29kZSIsImtleUNvZGUiLCJjbGllbnRYIiwiY2xpZW50WSIsIm9mZnNldFgiLCJvZmZzZXRZIiwicG9pbnRlcklkIiwicG9pbnRlclR5cGUiLCJzY3JlZW5YIiwic2NyZWVuWSIsInRhcmdldFRvdWNoZXMiLCJ0b0VsZW1lbnQiLCJ0b3VjaGVzIiwid2hpY2giLCJtb3VzZWVudGVyIiwibW91c2VsZWF2ZSIsInBvaW50ZXJlbnRlciIsInBvaW50ZXJsZWF2ZSIsIm9yaWciLCJyZWxhdGVkIiwicnhodG1sVGFnIiwicm5vSW5uZXJodG1sIiwicmNoZWNrZWQiLCJyY2xlYW5TY3JpcHQiLCJtYW5pcHVsYXRpb25UYXJnZXQiLCJkaXNhYmxlU2NyaXB0IiwicmVzdG9yZVNjcmlwdCIsImNsb25lQ29weUV2ZW50IiwiZGVzdCIsInBkYXRhT2xkIiwicGRhdGFDdXIiLCJ1ZGF0YU9sZCIsInVkYXRhQ3VyIiwiZG9tTWFuaXAiLCJjb2xsZWN0aW9uIiwiaGFzU2NyaXB0cyIsImlOb0Nsb25lIiwidmFsdWVJc0Z1bmN0aW9uIiwiaHRtbCIsIl9ldmFsVXJsIiwia2VlcERhdGEiLCJjbGVhbkRhdGEiLCJkYXRhQW5kRXZlbnRzIiwiZGVlcERhdGFBbmRFdmVudHMiLCJzcmNFbGVtZW50cyIsImRlc3RFbGVtZW50cyIsImluUGFnZSIsImRldGFjaCIsImFwcGVuZCIsInByZXBlbmQiLCJpbnNlcnRCZWZvcmUiLCJiZWZvcmUiLCJhZnRlciIsInJlcGxhY2VXaXRoIiwicmVwbGFjZUNoaWxkIiwiYXBwZW5kVG8iLCJwcmVwZW5kVG8iLCJpbnNlcnRBZnRlciIsInJlcGxhY2VBbGwiLCJvcmlnaW5hbCIsImluc2VydCIsInJudW1ub25weCIsImdldFN0eWxlcyIsIm9wZW5lciIsImdldENvbXB1dGVkU3R5bGUiLCJyYm94U3R5bGUiLCJjdXJDU1MiLCJjb21wdXRlZCIsIndpZHRoIiwibWluV2lkdGgiLCJtYXhXaWR0aCIsImdldFByb3BlcnR5VmFsdWUiLCJwaXhlbEJveFN0eWxlcyIsImFkZEdldEhvb2tJZiIsImNvbmRpdGlvbkZuIiwiaG9va0ZuIiwiY29tcHV0ZVN0eWxlVGVzdHMiLCJjb250YWluZXIiLCJjc3NUZXh0IiwiZGl2U3R5bGUiLCJwaXhlbFBvc2l0aW9uVmFsIiwicmVsaWFibGVNYXJnaW5MZWZ0VmFsIiwicm91bmRQaXhlbE1lYXN1cmVzIiwibWFyZ2luTGVmdCIsInJpZ2h0IiwicGl4ZWxCb3hTdHlsZXNWYWwiLCJib3hTaXppbmdSZWxpYWJsZVZhbCIsInBvc2l0aW9uIiwic2Nyb2xsYm94U2l6ZVZhbCIsIm9mZnNldFdpZHRoIiwibWVhc3VyZSIsImJhY2tncm91bmRDbGlwIiwiY2xlYXJDbG9uZVN0eWxlIiwiYm94U2l6aW5nUmVsaWFibGUiLCJwaXhlbFBvc2l0aW9uIiwicmVsaWFibGVNYXJnaW5MZWZ0Iiwic2Nyb2xsYm94U2l6ZSIsInJkaXNwbGF5c3dhcCIsInJjdXN0b21Qcm9wIiwiY3NzU2hvdyIsInZpc2liaWxpdHkiLCJjc3NOb3JtYWxUcmFuc2Zvcm0iLCJsZXR0ZXJTcGFjaW5nIiwiZm9udFdlaWdodCIsImNzc1ByZWZpeGVzIiwiZW1wdHlTdHlsZSIsImZpbmFsUHJvcE5hbWUiLCJjc3NQcm9wcyIsImNhcE5hbWUiLCJ2ZW5kb3JQcm9wTmFtZSIsInNldFBvc2l0aXZlTnVtYmVyIiwiYm94TW9kZWxBZGp1c3RtZW50IiwiZGltZW5zaW9uIiwiYm94IiwiaXNCb3JkZXJCb3giLCJzdHlsZXMiLCJjb21wdXRlZFZhbCIsImV4dHJhIiwiZ2V0V2lkdGhPckhlaWdodCIsInZhbHVlSXNCb3JkZXJCb3giLCJUd2VlbiIsImVhc2luZyIsImNzc0hvb2tzIiwib3BhY2l0eSIsImFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50IiwiY29sdW1uQ291bnQiLCJmaWxsT3BhY2l0eSIsImZsZXhHcm93IiwiZmxleFNocmluayIsImxpbmVIZWlnaHQiLCJvcmRlciIsIm9ycGhhbnMiLCJ3aWRvd3MiLCJ6SW5kZXgiLCJ6b29tIiwib3JpZ05hbWUiLCJpc0N1c3RvbVByb3AiLCJzZXRQcm9wZXJ0eSIsImdldENsaWVudFJlY3RzIiwiZ2V0Qm91bmRpbmdDbGllbnRSZWN0IiwibGVmdCIsIm1hcmdpbiIsInBhZGRpbmciLCJib3JkZXIiLCJleHBhbmQiLCJleHBhbmRlZCIsInByb3BIb29rcyIsInJ1biIsInBlcmNlbnQiLCJlYXNlZCIsInN0ZXAiLCJmeCIsInNjcm9sbFRvcCIsInNjcm9sbExlZnQiLCJsaW5lYXIiLCJwIiwic3dpbmciLCJjb3MiLCJQSSIsImZ4Tm93IiwiaW5Qcm9ncmVzcyIsInJmeHR5cGVzIiwicnJ1biIsInNjaGVkdWxlIiwiaGlkZGVuIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiaW50ZXJ2YWwiLCJ0aWNrIiwiY3JlYXRlRnhOb3ciLCJnZW5GeCIsImluY2x1ZGVXaWR0aCIsImhlaWdodCIsImNyZWF0ZVR3ZWVuIiwiYW5pbWF0aW9uIiwiQW5pbWF0aW9uIiwidHdlZW5lcnMiLCJwcm9wZXJ0aWVzIiwic3RvcHBlZCIsInByZWZpbHRlcnMiLCJjdXJyZW50VGltZSIsInN0YXJ0VGltZSIsInR3ZWVucyIsIm9wdHMiLCJzcGVjaWFsRWFzaW5nIiwib3JpZ2luYWxQcm9wZXJ0aWVzIiwib3JpZ2luYWxPcHRpb25zIiwiZ290b0VuZCIsInByb3BGaWx0ZXIiLCJiaW5kIiwiY29tcGxldGUiLCJ0aW1lciIsImFuaW0iLCIqIiwidHdlZW5lciIsIm9sZGZpcmUiLCJwcm9wVHdlZW4iLCJyZXN0b3JlRGlzcGxheSIsImlzQm94IiwiZGF0YVNob3ciLCJ1bnF1ZXVlZCIsIm92ZXJmbG93WCIsIm92ZXJmbG93WSIsInByZWZpbHRlciIsInNwZWVkIiwib3B0Iiwic3BlZWRzIiwiZmFkZVRvIiwiYW5pbWF0ZSIsIm9wdGFsbCIsImRvQW5pbWF0aW9uIiwiZmluaXNoIiwic3RvcFF1ZXVlIiwidGltZXJzIiwiY3NzRm4iLCJzbGlkZURvd24iLCJzbGlkZVVwIiwic2xpZGVUb2dnbGUiLCJmYWRlSW4iLCJmYWRlT3V0IiwiZmFkZVRvZ2dsZSIsInNsb3ciLCJmYXN0IiwiZGVsYXkiLCJjbGVhclRpbWVvdXQiLCJjaGVja09uIiwib3B0U2VsZWN0ZWQiLCJyYWRpb1ZhbHVlIiwiYm9vbEhvb2siLCJyZW1vdmVBdHRyIiwiblR5cGUiLCJhdHRySG9va3MiLCJhdHRyTmFtZXMiLCJsb3dlcmNhc2VOYW1lIiwicmZvY3VzYWJsZSIsInJjbGlja2FibGUiLCJzdHJpcEFuZENvbGxhcHNlIiwiZ2V0Q2xhc3MiLCJjbGFzc2VzVG9BcnJheSIsInJlbW92ZVByb3AiLCJwcm9wRml4IiwidGFiaW5kZXgiLCJmb3IiLCJjbGFzcyIsImFkZENsYXNzIiwiY2xhc3NlcyIsImN1clZhbHVlIiwiY2xhenoiLCJmaW5hbFZhbHVlIiwidG9nZ2xlQ2xhc3MiLCJzdGF0ZVZhbCIsImlzVmFsaWRWYWx1ZSIsImNsYXNzTmFtZXMiLCJoYXNDbGFzcyIsInJyZXR1cm4iLCJ2YWxIb29rcyIsIm9wdGlvblNldCIsImZvY3VzaW4iLCJyZm9jdXNNb3JwaCIsInN0b3BQcm9wYWdhdGlvbkNhbGxiYWNrIiwib25seUhhbmRsZXJzIiwiYnViYmxlVHlwZSIsIm9udHlwZSIsImxhc3RFbGVtZW50IiwiZXZlbnRQYXRoIiwiaXNUcmlnZ2VyIiwicGFyZW50V2luZG93Iiwic2ltdWxhdGUiLCJ0cmlnZ2VySGFuZGxlciIsImF0dGFjaGVzIiwibm9uY2UiLCJycXVlcnkiLCJwYXJzZVhNTCIsIkRPTVBhcnNlciIsInBhcnNlRnJvbVN0cmluZyIsInJicmFja2V0IiwickNSTEYiLCJyc3VibWl0dGVyVHlwZXMiLCJyc3VibWl0dGFibGUiLCJidWlsZFBhcmFtcyIsInRyYWRpdGlvbmFsIiwicGFyYW0iLCJ2YWx1ZU9yRnVuY3Rpb24iLCJlbmNvZGVVUklDb21wb25lbnQiLCJzZXJpYWxpemUiLCJzZXJpYWxpemVBcnJheSIsInIyMCIsInJoYXNoIiwicmFudGlDYWNoZSIsInJoZWFkZXJzIiwicm5vQ29udGVudCIsInJwcm90b2NvbCIsInRyYW5zcG9ydHMiLCJhbGxUeXBlcyIsIm9yaWdpbkFuY2hvciIsImFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyIsInN0cnVjdHVyZSIsImRhdGFUeXBlRXhwcmVzc2lvbiIsImRhdGFUeXBlcyIsImluc3BlY3RQcmVmaWx0ZXJzT3JUcmFuc3BvcnRzIiwianFYSFIiLCJpbnNwZWN0ZWQiLCJzZWVraW5nVHJhbnNwb3J0IiwicHJlZmlsdGVyT3JGYWN0b3J5IiwiZGF0YVR5cGVPclRyYW5zcG9ydCIsImFqYXhFeHRlbmQiLCJmbGF0T3B0aW9ucyIsImFqYXhTZXR0aW5ncyIsImFjdGl2ZSIsImxhc3RNb2RpZmllZCIsImV0YWciLCJwcm90b2NvbCIsInByb2Nlc3NEYXRhIiwiYXN5bmMiLCJhY2NlcHRzIiwianNvbiIsInJlc3BvbnNlRmllbGRzIiwiY29udmVydGVycyIsIiogdGV4dCIsInRleHQgaHRtbCIsInRleHQganNvbiIsInRleHQgeG1sIiwiYWpheFNldHVwIiwic2V0dGluZ3MiLCJhamF4UHJlZmlsdGVyIiwiYWpheFRyYW5zcG9ydCIsInRyYW5zcG9ydCIsImNhY2hlVVJMIiwicmVzcG9uc2VIZWFkZXJzU3RyaW5nIiwicmVzcG9uc2VIZWFkZXJzIiwidGltZW91dFRpbWVyIiwidXJsQW5jaG9yIiwiZmlyZUdsb2JhbHMiLCJ1bmNhY2hlZCIsImNhbGxiYWNrQ29udGV4dCIsImdsb2JhbEV2ZW50Q29udGV4dCIsImNvbXBsZXRlRGVmZXJyZWQiLCJzdGF0dXNDb2RlIiwicmVxdWVzdEhlYWRlcnMiLCJyZXF1ZXN0SGVhZGVyc05hbWVzIiwic3RyQWJvcnQiLCJnZXRSZXNwb25zZUhlYWRlciIsImdldEFsbFJlc3BvbnNlSGVhZGVycyIsInNldFJlcXVlc3RIZWFkZXIiLCJvdmVycmlkZU1pbWVUeXBlIiwibWltZVR5cGUiLCJzdGF0dXMiLCJhYm9ydCIsInN0YXR1c1RleHQiLCJmaW5hbFRleHQiLCJjcm9zc0RvbWFpbiIsImhvc3QiLCJoYXNDb250ZW50IiwiaWZNb2RpZmllZCIsImJlZm9yZVNlbmQiLCJzdWNjZXNzIiwibmF0aXZlU3RhdHVzVGV4dCIsInJlc3BvbnNlcyIsImlzU3VjY2VzcyIsInJlc3BvbnNlIiwibW9kaWZpZWQiLCJjdCIsImZpbmFsRGF0YVR5cGUiLCJmaXJzdERhdGFUeXBlIiwiYWpheEhhbmRsZVJlc3BvbnNlcyIsImNvbnYyIiwiY3VycmVudCIsImNvbnYiLCJkYXRhRmlsdGVyIiwidGhyb3dzIiwiYWpheENvbnZlcnQiLCJnZXRKU09OIiwid3JhcEFsbCIsImZpcnN0RWxlbWVudENoaWxkIiwid3JhcElubmVyIiwiaHRtbElzRnVuY3Rpb24iLCJ1bndyYXAiLCJ2aXNpYmxlIiwib2Zmc2V0SGVpZ2h0IiwieGhyIiwiWE1MSHR0cFJlcXVlc3QiLCJ4aHJTdWNjZXNzU3RhdHVzIiwiMCIsIjEyMjMiLCJ4aHJTdXBwb3J0ZWQiLCJjb3JzIiwiZXJyb3JDYWxsYmFjayIsIm9wZW4iLCJ1c2VybmFtZSIsInhockZpZWxkcyIsIm9ubG9hZCIsIm9uZXJyb3IiLCJvbmFib3J0Iiwib250aW1lb3V0IiwicmVzcG9uc2VUeXBlIiwicmVzcG9uc2VUZXh0IiwiYmluYXJ5IiwidGV4dCBzY3JpcHQiLCJjaGFyc2V0Iiwic2NyaXB0Q2hhcnNldCIsImV2dCIsIm9sZENhbGxiYWNrcyIsInJqc29ucCIsImpzb25wIiwianNvbnBDYWxsYmFjayIsIm9yaWdpbmFsU2V0dGluZ3MiLCJjYWxsYmFja05hbWUiLCJvdmVyd3JpdHRlbiIsInJlc3BvbnNlQ29udGFpbmVyIiwianNvblByb3AiLCJjcmVhdGVIVE1MRG9jdW1lbnQiLCJpbXBsZW1lbnRhdGlvbiIsImtlZXBTY3JpcHRzIiwicGFyc2VkIiwicGFyYW1zIiwiYW5pbWF0ZWQiLCJzZXRPZmZzZXQiLCJjdXJQb3NpdGlvbiIsImN1ckxlZnQiLCJjdXJDU1NUb3AiLCJjdXJUb3AiLCJjdXJPZmZzZXQiLCJjdXJDU1NMZWZ0IiwiY3VyRWxlbSIsInVzaW5nIiwicmVjdCIsIndpbiIsInBhZ2VZT2Zmc2V0IiwicGFnZVhPZmZzZXQiLCJvZmZzZXRQYXJlbnQiLCJwYXJlbnRPZmZzZXQiLCJzY3JvbGxUbyIsIkhlaWdodCIsIldpZHRoIiwiIiwiZGVmYXVsdEV4dHJhIiwiZnVuY05hbWUiLCJob3ZlciIsImZuT3ZlciIsImZuT3V0IiwidW5iaW5kIiwiZGVsZWdhdGUiLCJ1bmRlbGVnYXRlIiwicHJveHkiLCJob2xkUmVhZHkiLCJob2xkIiwicGFyc2VKU09OIiwiaXNOdW1lcmljIiwiX2pRdWVyeSIsIl8kIiwibm9Db25mbGljdCIsImNhY2hlZEd1ZXNzIiwiem9uZXMiLCJsaW5rcyIsImd1ZXNzZXMiLCJtb21lbnRWZXJzaW9uIiwibWFqb3IiLCJtaW5vciIsImNoYXJDb2RlVG9JbnQiLCJ1bnBhY2tCYXNlNjAiLCJ3aG9sZSIsImZyYWN0aW9uYWwiLCJtdWx0aXBsaWVyIiwiYXJyYXlUb0ludCIsIm1hcEluZGljZXMiLCJpbmRpY2VzIiwidW5wYWNrIiwib2Zmc2V0cyIsInVudGlscyIsIkluZmluaXR5IiwiaW50VG9VbnRpbCIsImFiYnJzIiwicG9wdWxhdGlvbiIsIlpvbmUiLCJwYWNrZWRTdHJpbmciLCJfc2V0IiwiT2Zmc2V0QXQiLCJhdCIsInRpbWVTdHJpbmciLCJ0b1RpbWVTdHJpbmciLCJab25lU2NvcmUiLCJvZmZzZXRTY29yZSIsImFiYnJTY29yZSIsImZpbmRDaGFuZ2UiLCJsb3ciLCJtaWQiLCJzb3J0Wm9uZVNjb3JlcyIsImFkZFRvR3Vlc3NlcyIsImd1ZXNzZXNGb3JVc2VyT2Zmc2V0cyIsImd1ZXNzZXNPZmZzZXQiLCJvZmZzZXRzTGVuZ3RoIiwiZmlsdGVyZWRHdWVzc2VzIiwicmVidWlsZEd1ZXNzIiwiaW50bE5hbWUiLCJJbnRsIiwiRGF0ZVRpbWVGb3JtYXQiLCJyZXNvbHZlZE9wdGlvbnMiLCJ0aW1lWm9uZSIsIm5vcm1hbGl6ZU5hbWUiLCJsb2dFcnJvciIsInpvbmVTY29yZSIsImNoYW5nZSIsInN0YXJ0WWVhciIsInVzZXJPZmZzZXRzIiwiem9uZVNjb3JlcyIsImdldFpvbmUiLCJzY29yZU9mZnNldEF0IiwiYWRkWm9uZSIsInBhY2tlZCIsIm5vcm1hbGl6ZWQiLCJjYWxsZXIiLCJsaW5rIiwiYWRkTGluayIsIm5vcm1hbDAiLCJub3JtYWwxIiwibG9hZERhdGEiLCJ0eiIsImRhdGFWZXJzaW9uIiwibmVlZHNPZmZzZXQiLCJpc1VuaXhUaW1lc3RhbXAiLCJ1bnBhY2tlZCIsIl9pbmRleCIsInRpbWVzdGFtcCIsIm9mZnNldE5leHQiLCJvZmZzZXRQcmV2IiwibW92ZUFtYmlndW91c0ZvcndhcmQiLCJtb3ZlSW52YWxpZEZvcndhcmQiLCJvZmZzZXRBdCIsIl96b25lcyIsIl9saW5rcyIsIl9uYW1lcyIsInpvbmVFeGlzdHMiLCJkaWRTaG93RXJyb3IiLCJndWVzcyIsImlnbm9yZUNhY2hlIiwiYWJicldyYXAiLCJfeiIsImRlZmF1bHRab25lIiwic2V0RGVmYXVsdCIsImxhc3RUaW1lIiwidmVuZG9ycyIsImNhbmNlbEFuaW1hdGlvbkZyYW1lIiwiY3VyclRpbWUiLCJ0aW1lVG9DYWxsIiwiX3NldHRpbmdzIiwiY3Vyc29yQW5pbWF0aW9uUGF1c2VkIiwib3BhY2l0eUluY3JlYXNpbmciLCJjdXJyZW50T3BhY2l0eSIsImRlbGF5ZWRRdWUiLCJkZWxheUl0ZW1zQ291bnQiLCJldmVudFF1ZSIsImNhbGxlZEV2ZW50cyIsImV2ZW50UnVubmluZyIsImRlbGF5RXhlY3V0aW9uIiwiZnBzIiwidHlwaW5nRnJhbWVDb3VudCIsInN0cmluZ1RvVHlwZUhUTUxBcnJheSIsImN1cnJlbnRUeXBlZENoYXJhY3RlcnMiLCJ0eXBpbmciLCJ1c2VkSURzIiwiY2hhckFtb3VudFRvRGVsZXRlIiwidXNlck9wdGlvbnMiLCJldmVudExvb3BSZXJ1biIsImRlZmF1bHRfb3B0aW9ucyIsInN0cmluZ3MiLCJjdXJzb3JDbGFzc05hbWUiLCJjdXJzb3IiLCJhbmltYXRlQ3Vyc29yIiwiYmxpbmtTcGVlZCIsImNoYXJTcGFuQ2xhc3NOYW1lIiwid3JhcHBlckNsYXNzTmFtZSIsImF1dG9TdGFydCIsIl9zZXR1cE9wdGlvbnMiLCJfc2V0dXBUeXB3cml0ZXJXcmFwcGVyIiwiX3N0YXJ0Q3Vyc29yQW5pbWF0aW9uIiwidHlwZU91dEFsbFN0cmluZ3MiLCJUeXBld3JpdGVyUHJvdG90eXBlIiwiX2FkZFRvRXZlbnRRdWUiLCJfc3RvcEV2ZW50TG9vcCIsIl9zdGFydEV2ZW50TG9vcCIsInJlcnVuIiwiX3JlcnVuQ2FsbGVkRXZlbnRzIiwic3RyaW5nX2NoYXJzIiwiX2dldENoYXJhY3RlcnMiLCJfdHlwZUNoYXJhY3RlcnMiLCJkZWxldGVBbGwiLCJfZGVsZXRlQ2hhcnMiLCJhbW91bnQiLCJfcGF1c2VGb3IiLCJjaGFyYWN0ZXJzX2FycmF5IiwiX2dldFN0cmluZ3NBc0NoYXJzQXJyYXkiLCJfcmFuZG9tSW50ZWdlciIsIm5ld19zZXR0aW5ncyIsIl9jaGFuZ2VTZXR0aW5ncyIsImNoYW5nZUJsaW5rU3BlZWQiLCJuZXdfc3BlZWQiLCJjaGFuZ2VUeXBpbmdTcGVlZCIsImNoYW5nZURlbGV0ZVNwZWVkIiwiX3Jlc2V0RXZlbnRMb29wIiwiX2RlbGV0aW5nQ2hhcklkc0FuaW1hdGlvbiIsIl9kZWxldGluZ0NoYXJBbmltYXRpb25GcmFtZSIsImxvZyIsImRlbGV0ZV9zcGVlZCIsInR5cGV3cml0ZXJfd3JhcHBlcl9jbGFzc19uYW1lIiwiY3VycmVudF90eXBlZF9jaGFyX2lkcyIsImNoYXJfYW1vdW50X3RvX2RlbGV0ZSIsImxhc3RfdHlwZWRfY2hhcl9pbmRleCIsImdldF9sYXN0X3R5cGVkX2NoYXIiLCJjaGFyX3RvX2RlbGV0ZV9lbCIsIm5ld19vcHRpb25zIiwibWVyZ2VkX29wdGlvbnMiLCJhdHRybmFtZSIsImZpcnN0X2V2ZW50IiwiX2V2ZW50UXVlQW5pbWF0aW9uIiwiZXZlbnRfbmFtZSIsInR5cGV3cml0ZXJfd3JhcHBlciIsIl9jb252ZXJ0Q2hhcnNUb0hUTUwiLCJfdHlwaW5nQW5pbWF0aW9uIiwiX3R5cGluZ0FuaW1hdGlvbkZyYW1lIiwidG90YWxfaXRlbXMiLCJ0eXBpbmdfc3BlZWQiLCJpdGVtX3RvX3R5cGUiLCJjaGFycyIsImNoYXJzX2h0bWxfd3JhcF9hcnJheSIsImNoYXJfY2xhc3NfbmFtZSIsImNoYXJzX2FycmF5IiwiY2hhcl9lbGVtZW50IiwiY2hhcl9pZCIsIl9nZW5lcmF0ZVVuaXF1ZUlEIiwic3RyaW5nc19hcnJheV9jaGVjayIsInN0cmluZ3Nfc3RyaW5nX2NoZWNrIiwic3RyaW5nc19jaGFyc19hcnJheSIsIl9jdXJzb3JBbmltYXRpb25GcmFtZSIsIm9wYWNpdHlfYW1vdW50IiwiY3Vyc29yX2VsIiwiX2N1cnNvckFuaW1hdGlvbiIsIl9hcHBlbmRUZXh0IiwiaXRlbXMiLCJjdXJzb3JfY2xhc3NfbmFtZSIsImN1cnNvcl9lbGVtZW50IiwiX3BhdXNlQ3Vyc29yQW5pbWF0aW9uIiwiX3Jlc3RhcnRDdXJzb3JBbmltYXRpb24iLCJfcmFuZG9tSUQiLCJwb3NzaWJsZSIsInRlbXBfaWQiLCJoeXBoZW5hdGVDYWNoZSIsImh5cGhlbmF0ZVJlIiwiaHlwaGVuYXRlIiwic3RyIiwiY2FtZWxpemVSZSIsImNhbWVsaXplIiwidG9VcHBlciIsInVjZmlyc3QiLCJzdHJQcm90b3R5cGUiLCJzdGFydHNXaXRoRm4iLCJzdGFydHNXaXRoIiwic2VhcmNoIiwibGFzdEluZGV4T2YiLCJlbmRzV2l0aEZuIiwiZW5kc1dpdGgiLCJpbmNsdWRlc0ZuIiwiaW5jbHVkZXNTdHIiLCJpbmNsdWRlcyIsImluY2x1ZGVzQXJyYXkiLCJpc1N0cmluZyIsImlzRG9jdW1lbnQiLCJpc0pRdWVyeSIsImlzTm9kZSIsIk5vZGUiLCJpc05vZGVDb2xsZWN0aW9uIiwiTm9kZUxpc3QiLCJIVE1MQ29sbGVjdGlvbiIsImlzQm9vbGVhbiIsInRvQm9vbGVhbiIsInRvTnVtYmVyIiwiTnVtYmVyIiwidG9GbG9hdCIsInRvTm9kZSIsImFycmF5UHJvdG8iLCJ0b05vZGVzIiwiQm9vbGVhbiIsInRvTGlzdCIsInRvTXMiLCJhc3NpZ24iLCJjYiIsInNvcnRCeSIsImNsYW1wIiwiaW50ZXJzZWN0UmVjdCIsInIxIiwicjIiLCJib3R0b20iLCJwb2ludEluUmVjdCIsInBvaW50IiwiRGltZW5zaW9ucyIsInJhdGlvIiwiZGltZW5zaW9ucyIsImFQcm9wIiwiY29udGFpbiIsIm1heERpbWVuc2lvbnMiLCJ0aGlzJDEiLCJjb3ZlciIsImhhc0F0dHIiLCJoYXNBdHRyaWJ1dGUiLCJmaWx0ZXJBdHRyIiwiYXR0cmlidXRlIiwicmVwbGFjZW1lbnQiLCJxdWVyeSIsImlzQ29udGV4dFNlbGVjdG9yIiwicXVlcnlBbGwiLCJmaW5kQWxsIiwiX3F1ZXJ5IiwicXVlcnlGbiIsInJlbW92ZXMiLCJjb250ZXh0U2FuaXRpemVSZSIsImN0eCIsInNlbGVjdG9ycyQxIiwicHJldmlvdXNFbGVtZW50U2libGluZyIsImNvbnRleHRTZWxlY3RvclJlIiwiZWxQcm90byIsIkVsZW1lbnQiLCJtYXRjaGVzRm4iLCJjbG9zZXN0Rm4iLCJhbmNlc3RvciIsImVzY2FwZUZuIiwiQ1NTIiwidm9pZEVsZW1lbnRzIiwiYXJlYSIsImJyIiwiZW1iZWQiLCJociIsImltZyIsImtleWdlbiIsIm1lbnVpdGVtIiwibWV0YSIsInRyYWNrIiwid2JyIiwiaXNWb2lkRWxlbWVudCIsInRhZ05hbWUiLCJpc1Zpc2libGUiLCJzZWxJbnB1dCIsImlzSW5wdXQiLCJ3aXRoaW4iLCJyZWYiLCJnZXRBcmdzIiwibGlzdGVuZXIiLCJ1c2VDYXB0dXJlIiwidG9FdmVudFRhcmdldCIsImNvbmRpdGlvbiIsInRvRXZlbnRUYXJnZXRzIiwicmVkdWNlIiwibm90Q2FuY2VsZWQiLCJkaXNwYXRjaEV2ZW50IiwiY3JlYXRlRXZlbnQiLCJpbml0Q3VzdG9tRXZlbnQiLCJpc0V2ZW50VGFyZ2V0IiwiRXZlbnRUYXJnZXQiLCJwcmV2ZW50Q2xpY2siLCJQcm9taXNlJDEiLCJQcm9taXNlIiwiUHJvbWlzZUZuIiwiUEVORElORyIsInNldEltbWVkaWF0ZSIsImV4ZWN1dG9yIiwiciIsIml0ZXJhYmxlIiwicmVzb2x2ZXIiLCJyYWNlIiwiZW52IiwiZ2V0SW1hZ2UiLCJzcmNzZXQiLCJzaXplcyIsIkltYWdlIiwidW5iaW5kMSIsInVuYmluZDIiLCJnZXRJbmRleCIsImZpbml0ZSIsImhhc0NoaWxkTm9kZXMiLCJpbnNlcnROb2RlcyIsImNhbGxlZCIsIm9uUmVzb2x2ZWQiLCJmcmFnbWVudFJlIiwic2luZ2xlVGFnUmUiLCJpbnNlcnRBZGphY2VudEhUTUwiLCJuZXh0RWxlbWVudFNpYmxpbmciLCJhcHBseSQxIiwicmVtb3ZlQ2xhc3NlcyIsImNscyIsInJlcGxhY2VDbGFzcyIsImZvcmNlIiwiZ2V0QXJncyQxIiwic3VwcG9ydHMiLCJGb3JjZSIsIk11bHRpcGxlIiwiYW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudCIsImNvbHVtbi1jb3VudCIsImZpbGwtb3BhY2l0eSIsImZsZXgtZ3JvdyIsImZsZXgtc2hyaW5rIiwiZm9udC13ZWlnaHQiLCJsaW5lLWhlaWdodCIsInotaW5kZXgiLCJwcm9wZXJ0eSIsInByb3BOYW1lIiwiZ2V0U3R5bGUiLCJyZW1vdmVQcm9wZXJ0eSIsInBzZXVkb0VsdCIsInZhcnMiLCJnZXRDc3NWYXIiLCJwcmVmaXhlZE5hbWUiLCJ0cmFuc2l0aW9uIiwidGltaW5nIiwidHJhbnNpdGlvbi1wcm9wZXJ0eSIsInRyYW5zaXRpb24tZHVyYXRpb24iLCJ0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbiIsIlRyYW5zaXRpb24iLCJjYW5jZWwiLCJhbmltYXRpb25QcmVmaXgiLCJjbHNDYW5jZWxBbmltYXRpb24iLCJvcmlnaW4iLCJhcmd1bWVudHMkMSIsImhhc1Jlc2V0IiwiaW4iLCJpc0h0bWwiLCIkJCIsImRpcnMiLCJwb3NpdGlvbkF0IiwiZWxBdHRhY2giLCJ0YXJnZXRBdHRhY2giLCJlbE9mZnNldCIsInRhcmdldE9mZnNldCIsImZsaXAiLCJib3VuZGFyeSIsImdldFBvcyIsImZsaXBwZWQiLCJkaW0iLCJnZXREaW1lbnNpb25zIiwidGFyZ2V0RGltIiwibW92ZVRvIiwiZ2V0T2Zmc2V0cyIsIndpbmRvdyQxIiwiYWxpZ24iLCJhbGlnbkZsaXAiLCJlbGVtT2Zmc2V0IiwiY2VudGVyT2Zmc2V0IiwiY2VudGVyVGFyZ2V0T2Zmc2V0IiwibmV3VmFsIiwiY29vcmRpbmF0ZXMiLCJjdXJyZW50T2Zmc2V0IiwiaW5uZXJIZWlnaHQiLCJpbm5lcldpZHRoIiwiZG9jRWwiLCJwcm9wTmFtZSQkMSIsImJveE1vZGVsQWRqdXN0IiwiYXR0YWNoIiwiZmFjdG9yIiwiZmxpcFBvc2l0aW9uIiwiaXNJblZpZXciLCJ0b3BPZmZzZXQiLCJsZWZ0T2Zmc2V0IiwicmVsYXRpdmVUb1ZpZXdwb3J0Iiwib2Zmc2V0UG9zaXRpb24iLCJlbFRvcCIsImVsTGVmdCIsInNjcm9sbGVkT3ZlciIsImhlaWdodE9mZnNldCIsImRvY3VtZW50JDEiLCJlbEhlaWdodCIsInZwIiwidmgiLCJvZmZzZXRUb3AiLCJvZmZzZXRMZWZ0IiwiaXNSdGwiLCJoYXNUb3VjaEV2ZW50cyIsImhhc1BvaW50ZXJFdmVudHMiLCJQb2ludGVyRXZlbnQiLCJoYXNUb3VjaCIsIkRvY3VtZW50VG91Y2giLCJuYXZpZ2F0b3IiLCJtYXhUb3VjaFBvaW50cyIsInBvaW50ZXJEb3duIiwicG9pbnRlck1vdmUiLCJwb2ludGVyVXAiLCJwb2ludGVyRW50ZXIiLCJwb2ludGVyTGVhdmUiLCJmYXN0ZG9tIiwicmVhZHMiLCJ3cml0ZXMiLCJyZWFkIiwidGFzayIsInNjaGVkdWxlRmx1c2giLCJ3cml0ZSIsImNsZWFyIiwicmVtb3ZlJDEiLCJmbHVzaCIsInJ1blRhc2tzIiwic2NoZWR1bGVkIiwidGFza3MiLCJpdGVtIiwiTW91c2VUcmFja2VyIiwic2xvcGUiLCJwb3NpdGlvbnMiLCJ0aWNraW5nIiwibW92ZXNUbyIsInBvc2l0aW9uJCQxIiwicHJldlBvcyIsInBvaW50cyIsInN0cmF0cyIsIm1lcmdlRm5EYXRhIiwicGFyZW50VmFsIiwiY2hpbGRWYWwiLCJ2bSIsImNyZWF0ZWQiLCJiZWZvcmVDb25uZWN0IiwiY29ubmVjdGVkIiwiYmVmb3JlRGlzY29ubmVjdCIsImRpc2Nvbm5lY3RlZCIsImRlc3Ryb3kiLCJ1cGRhdGUiLCJtZXRob2RzIiwiZGVmYXVsdFN0cmF0IiwibWVyZ2VPcHRpb25zIiwiY2hpbGQiLCJleHRlbmRzIiwibWl4aW5zIiwibWVyZ2VLZXkiLCJrZXkkMSIsInBhcnNlT3B0aW9ucyIsIlBsYXllciIsInBvc3QiLCJjbWQiLCJjb250ZW50V2luZG93IiwicG9zdE1lc3NhZ2UiLCJpc1ZpZGVvIiwiaXNZb3V0dWJlIiwiaXNWaW1lbyIsImlzSFRNTDUiLCJpc0lGcmFtZSIsImVuYWJsZUFwaSIsInBvbGxlciIsInlvdXR1YmUiLCJ2aW1lbyIsImRhdGEkJDEiLCJwbGF5ZXJfaWQiLCJwbGF5IiwicGF1c2UiLCJtdXRlIiwibXV0ZWQiLCJjbGlja1RpbWVvdXQiLCJzd2lwZVRpbWVvdXQiLCJ0YXBUaW1lb3V0IiwiY2xpY2tlZCIsInRvdWNoIiwiY2FuY2VsQWxsIiwiZ2V0UG9zJDEiLCJnZXRUeXBlIiwieDEiLCJ5MSIsIngyIiwieTIiLCJ0b3VjaGluZyIsImlzVG91Y2giLCJnZXRDb21wb25lbnROYW1lIiwiX2luaXQiLCJ1dGlsIiwiZnJlZXplIiwiREFUQSIsIl9pc1JlYWR5IiwiX2NhbGxVcGRhdGUiLCJ1c2UiLCJwbHVnaW4iLCJpbnN0YWxsZWQiLCJtaXhpbiIsImNvbXBvbmVudCIsIlN1YiIsImNyZWF0ZSIsInBhdGgiLCJnbG9iYWxBUEkiLCJfY2FsbEhvb2siLCIkb3B0aW9ucyIsIl9jYWxsQ29ubmVjdGVkIiwiX2Nvbm5lY3RlZCIsIl9pbml0UHJvcHMiLCJfaW5pdEV2ZW50cyIsIl9pbml0T2JzZXJ2ZXIiLCJfY2FsbFJlYWR5IiwiX2NhbGxEaXNjb25uZWN0ZWQiLCJfb2JzZXJ2ZXIiLCJkaXNjb25uZWN0IiwiX3VuYmluZEV2ZW50cyIsIl9yZXNldENvbXB1dGVkcyIsInVwZGF0ZXMiLCJfZnJhbWVzIiwiaG9va3NBUEkiLCJnZXRQcm9wcyIsImNvZXJjZSIsInByb3AkMSIsInJlZ2lzdGVyQ29tcHV0ZWQiLCJfY29tcHV0ZWRzIiwiJHByb3BzIiwiJGVsIiwicmVnaXN0ZXJFdmVudCIsImNhcHR1cmUiLCJmaWx0ZXIkJDEiLCJzZWxmRmlsdGVyIiwiX2V2ZW50cyIsIm5vdEluIiwiZXZlcnkiLCJ0b01lZGlhIiwicmVmJDEiLCJpbmRleCQkMSIsIm5vcm1hbGl6ZURhdGEiLCJfdWlkIiwiX2luaXREYXRhIiwiX2luaXRNZXRob2RzIiwiX2luaXRDb21wdXRlZHMiLCIkbW91bnQiLCIkbmFtZSIsImV4Y2x1ZGUiLCJNdXRhdGlvbk9ic2VydmVyIiwiJHJlc2V0Iiwib2JzZXJ2ZSIsImF0dHJpYnV0ZUZpbHRlciIsInN0YXRlQVBJIiwiY29tcG9uZW50cyIsImFyZ3NBcnJheSIsImZ1bmN0aW9uYWwiLCJpbnN0YW5jZSIsImdldENvbXBvbmVudCIsIiRkZXN0cm95IiwiaW5zdGFsbCIsIl9pbml0aWFsaXplZCIsImdldENvbXBvbmVudHMiLCJjb25uZWN0IiwibmFtZSQxIiwiY29tcG9uZW50QVBJIiwiJGVtaXQiLCJyZW1vdmVFbCIsIiRjcmVhdGUiLCIkdXBkYXRlIiwiJGdldENvbXBvbmVudCIsImRlZmluZVByb3BlcnRpZXMiLCIkY29udGFpbmVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiaW5zdGFuY2VBUEkiLCJDbGFzcyIsIlRvZ2dsYWJsZSIsInF1ZXVlZCIsImluaXRQcm9wcyIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwibWFyZ2luVG9wIiwibWFyZ2luQm90dG9tIiwiaGlkZVByb3BzIiwiaGFzQW5pbWF0aW9uIiwiaGFzVHJhbnNpdGlvbiIsInRvZ2dsZUVsZW1lbnQiLCJhbmltYXRlJCQxIiwiX3RvZ2dsZUVsZW1lbnQiLCJ0b2dnbGVkIiwiaXNUb2dnbGVkIiwidW50b2dnbGVkIiwic2Nyb2xsIiwidG9nZ2xlTm93IiwidXBkYXRlQXJpYSIsIl90b2dnbGVIZWlnaHQiLCJfdG9nZ2xlQW5pbWF0aW9uIiwiX3RvZ2dsZUltbWVkaWF0ZSIsIl90b2dnbGUiLCJjaGFuZ2VkIiwiaW5uZXIiLCJsYXN0RWxlbWVudENoaWxkIiwiY3VycmVudEhlaWdodCIsImVuZEhlaWdodCIsIkFjY29yZGlvbiIsImNvbGxhcHNpYmxlIiwibXVsdGlwbGUiLCJjbHNPcGVuIiwiaXNJdGVtIiwiX3dyYXBwZXIiLCJBbGVydCIsImNsb3NlIiwic2VsQ2xvc2UiLCJDb3JlIiwic3RhcnRlZCIsInBhc3NpdmUiLCJob3ZlclNlbGVjdG9yIiwicmVnaXN0ZXJlZCIsIlZpZGVvIiwiYXV0b211dGUiLCJhdXRvcGxheSIsImluVmlldyIsInByZWxvYWQiLCJwbGF5ZXIiLCJDb3ZlciIsImhlaWdodCQkMSIsIndpZHRoJCQxIiwiY2xpZW50V2lkdGgiLCJjbGllbnRIZWlnaHQiLCJsb2FkZWRtZXRhZGF0YSIsIlBvc2l0aW9uIiwiY2xzUG9zIiwib2Zmc2V0JCQxIiwiYXhpcyIsImdldEF4aXMiLCJEcm9wIiwibW9kZSIsImJvdW5kYXJ5QWxpZ24iLCJkZWxheVNob3ciLCJkZWxheUhpZGUiLCJjbHNEcm9wIiwiaG92ZXJJZGxlIiwidHJhY2tlciIsImNsZWFyVGltZXJzIiwiaXNBY3RpdmUiLCJ0cnlTaG93IiwiaXNEZWxheWluZyIsInNob3dUaW1lciIsImlzUGFyZW50T2YiLCJoaWRlVGltZXIiLCJpc0NoaWxkT2YiLCJkcm9wIiwiYWxpZ25UbyIsIkRyb3Bkb3duIiwiRm9ybUN1c3RvbSIsImZpbGVzIiwiR2lmIiwiaW52aWV3IiwiTWFyZ2luIiwiZmlyc3RDb2x1bW4iLCJyb3dzIiwiZ2V0Um93cyIsInN0YWNrcyIsInJvdyIsImdldE9mZnNldCIsImxlZnREaW0iLCJHcmlkIiwibWFzb25yeSIsInBhcmFsbGF4IiwiY2xzU3RhY2siLCJ0cmFuc2xhdGVzIiwic3VtIiwibWF4Q29sdW1uSGVpZ2h0Iiwic2Nyb2xsZWQiLCJIZWlnaHRNYXRjaCIsIm1pbkhlaWdodCIsImJveFNpemluZyIsImhlaWdodHMiLCJIZWlnaHRWaWV3cG9ydCIsIm9mZnNldEJvdHRvbSIsInZpZXdwb3J0Iiwic3ZncyIsIlNWRyIsImljb24iLCJhc3NpZ24kJDEiLCJzdmciLCJnZXRTdmciLCJzeW1ib2xzIiwic3ltYm9sUmUiLCJwYXJzZVN5bWJvbHMiLCJpc0VxdWFsTm9kZSIsInN2Z0VsIiwiZGVjb2RlVVJJQ29tcG9uZW50IiwiaWNvbnMiLCJzcGlubmVyIiwidG90b3AiLCJtYXJrZXIiLCJjbG9zZS1pY29uIiwiY2xvc2UtbGFyZ2UiLCJuYXZiYXItdG9nZ2xlLWljb24iLCJvdmVybGF5LWljb24iLCJwYWdpbmF0aW9uLW5leHQiLCJwYWdpbmF0aW9uLXByZXZpb3VzIiwic2VhcmNoLWljb24iLCJzZWFyY2gtbGFyZ2UiLCJzZWFyY2gtbmF2YmFyIiwic2xpZGVuYXYtbmV4dCIsInNsaWRlbmF2LW5leHQtbGFyZ2UiLCJzbGlkZW5hdi1wcmV2aW91cyIsInNsaWRlbmF2LXByZXZpb3VzLWxhcmdlIiwiSWNvbiIsImFkZGVkIiwiY21wIiwiaXNJY29uIiwiZ2V0SWNvbiIsImFwcGx5UnRsIiwiSWNvbkNvbXBvbmVudCIsIlNsaWRlbmF2IiwiU2VhcmNoIiwiQ2xvc2UiLCJTcGlubmVyIiwiSW1nIiwiZGF0YVNyYyIsImRhdGFTcmNzZXQiLCJkYXRhU2l6ZXMiLCJkYXRhV2lkdGgiLCJkYXRhSGVpZ2h0IiwiY2FjaGVLZXkiLCJpc0ltZyIsInRvUHgiLCJzdG9yYWdlIiwic2V0U3JjQXR0cnMiLCJjb2xvciIsIm1hdGNoZXMkJDEiLCJzaXplc1JlIiwibWF0Y2hNZWRpYSIsInNpemUiLCJzdWJzdHJpbmciLCJzaXplUmUiLCJhZGRpdGlvblJlIiwidXJsQ2FjaGUiLCJjYW52YXMiLCJnZXRDb250ZXh0IiwiZmlsbFN0eWxlIiwiZmlsbFJlY3QiLCJ0b0RhdGFVUkwiLCJnZXRQbGFjZWhvbGRlckltYWdlIiwiY3VycmVudFNyYyIsInNlc3Npb25TdG9yYWdlIiwiYWN0aXZlJDEiLCJMZWFkZXIiLCJmaWxsIiwibWVkaWEiLCJjbHNXcmFwcGVyIiwiY2xzSGlkZSIsImF0dHJGaWxsIiwid3JhcHBlciIsIkNvbnRhaW5lciIsIk1vZGFsIiwic2VsUGFuZWwiLCJlc2NDbG9zZSIsImJnQ2xvc2UiLCJvdmVybGF5IiwicGFuZWwiLCJ0cmFuc2l0aW9uRWxlbWVudCIsInRyYW5zaXRpb25EdXJhdGlvbiIsInJlZ2lzdGVyRXZlbnRzIiwiY2xzUGFnZSIsInNjcm9sbGJhcldpZHRoIiwiZm91bmQiLCJnZXRBY3RpdmUiLCJNb2RhbCQxIiwibW9kYWwiLCJkaWFsb2ciLCJhbGVydCIsImxhYmVscyIsImNvbmZpcm0iLCJyZXNvbHZlZCIsInByb21wdCIsIm9rIiwiTmF2IiwiTmF2YmFyIiwiZHJvcGRvd24iLCJkcm9wYmFyIiwiZHJvcGJhck1vZGUiLCJkcm9wYmFyQW5jaG9yIiwiZHJvcGRvd25zIiwiZ2V0RHJvcGRvd24iLCJ0cmFuc2l0aW9uVG8iLCJuZXdIZWlnaHQiLCJvbGRIZWlnaHQiLCJjbGlwIiwiT2ZmY2FudmFzIiwiY2xzQ29udGFpbmVyIiwiY2xzRmxpcCIsImNsc0NvbnRlbnQiLCJjbHNDb250ZW50QW5pbWF0aW9uIiwiY2xzU2lkZWJhckFuaW1hdGlvbiIsImNsc01vZGUiLCJjbHNPdmVybGF5IiwiT3ZlcmZsb3dBdXRvIiwiUmVzcG9uc2l2ZSIsIlNjcm9sbCIsImRvY0hlaWdodCIsIndpbkhlaWdodCIsInN0YXJ0WSIsImN1cnJlbnRZIiwiU2Nyb2xsc3B5IiwicmVwZWF0IiwiaW5WaWV3Q2xhc3MiLCJlbERhdGEiLCJ0b2dnbGVzIiwiU2Nyb2xsc3B5TmF2IiwiU3RpY2t5IiwiY2xzQWN0aXZlIiwiY2xzSW5hY3RpdmUiLCJjbHNGaXhlZCIsImNsc0JlbG93Iiwic2VsVGFyZ2V0Iiwid2lkdGhFbGVtZW50Iiwic2hvd09uVXAiLCJwbGFjZWhvbGRlciIsImJvdHRvbU9mZnNldCIsInBhcnNlUHJvcCIsImluYWN0aXZlIiwic2Nyb2xsWSIsInByb3BPZmZzZXQiLCJTd2l0Y2hlciIsInN3aXBpbmciLCJhdHRySXRlbSIsImNvbm5lY3RzIiwiZ2V0U2VsZWN0aW9uIiwiaGFzUHJldiIsIlRhYiIsIlRvZ2dsZSIsImNvcmUiLCJDb3VudGRvd24iLCJ0aW1lc3BhbiIsImRpZ2l0cyIsImRpZ2l0Iiwic3R5bGUkMSIsInRhcmdldENsYXNzIiwiQW5pbWF0ZSIsInNoZWV0IiwiaW5zZXJ0UnVsZSIsInByb3BzRnJvbSIsIm9sZFNjcm9sbFkiLCJwcm9wc1RvIiwiZ2V0UG9zaXRpb25XaXRoTWFyZ2luIiwicG9pbnRlckV2ZW50cyIsIkZpbHRlciIsInNlbEFjdGl2ZSIsImFjdGl2ZXMiLCJpc0VxdWFsTGlzdCIsInNldFN0YXRlIiwiZ2V0U3RhdGUiLCJtZXJnZVN0YXRlIiwiYXR0ciQkMSIsInN0YXRlRmlsdGVyIiwicmVmX3NvcnQiLCJzdGF0ZVNvcnQiLCJzdGF0ZU9yZGVyIiwiZ2V0RmlsdGVyIiwiZ3JvdXAiLCJtYXRjaEZpbHRlciIsImFwcGx5JCQxIiwiZ2V0U2VsZWN0b3IiLCJzb3J0ZWQiLCJsb2NhbGVDb21wYXJlIiwic29ydEl0ZW1zIiwiZmlsdGVyQnkiLCJsaXN0QSIsImxpc3RCIiwiQW5pbWF0aW9ucyIsInNsaWRlIiwidHJhbnNmb3JtIiwidHJhbnNsYXRlIiwidHJhbnNsYXRlZCIsInNjYWxlM2QiLCJBbmltYXRpb25zJDEiLCJmYWRlIiwidHJpZ2dlclVwZGF0ZSIsIlNsaWRlciIsImF1dG9wbGF5SW50ZXJ2YWwiLCJwYXVzZU9uSG92ZXIiLCJzdGFydEF1dG9wbGF5Iiwic3RvcEF1dG9wbGF5IiwiaXNIb3ZlcmluZyIsInByZXZlbnRDYXRjaCIsInNsaWRlc1NlbGVjdG9yIiwiZHJhZyIsIl90cmFuc2l0aW9uZXIiLCJnZXREaXN0YW5jZSIsImRyYWdnaW5nIiwicHJldkluZGV4IiwidW5iaW5kTW92ZSIsIm1vdmUiLCJkaXN0YW5jZSIsInNsaWRlcyIsImRpcyIsIm5leHRJbmRleCIsIl9nZXREaXN0YW5jZSIsIml0ZW1TaG93biIsImVkZ2UiLCJfdHJhbnNsYXRlIiwiX3Nob3ciLCJkaXJDaGFuZ2UiLCJzZWxOYXYiLCJuYXYiLCJuYXZJdGVtU2VsZWN0b3IiLCJuYXZJdGVtcyIsIm1heEluZGV4IiwidXBkYXRlTmF2IiwiZ2V0VmFsaWRJbmRleCIsImNsc0FjdGl2YXRlZCIsInZlbG9jaXR5IiwiVHJhbnNpdGlvbmVyIiwidHJhbnNpdGlvbk9wdGlvbnMiLCJzcGVlZFVwIiwic2VsTGlzdCIsIml0ZW1zaG93biIsInF1ZXVlSW5kZXgiLCJnZXREaXJlY3Rpb24iLCJfZ2V0VHJhbnNpdGlvbmVyIiwidHJhbnNpdGlvbmVyIiwiU2xpZGVzaG93IiwiQW5pbWF0aW9ucyQkMSIsIml0ZW1zaG93IGl0ZW1oaWRlIGl0ZW1zaG93biBpdGVtaGlkZGVuIiwiaXRlbXNob3ciLCJiZWZvcmVpdGVtc2hvdyIsIml0ZW1oaWRkZW4iLCJMaWdodGJveFBhbmVsIiwiZGVsYXlDb250cm9scyIsInZpZGVvQXV0b3BsYXkiLCJ0ZW1wbGF0ZSIsImhpZGVDb250cm9scyIsImdldEl0ZW0iLCJsb2FkSXRlbSIsImFsdCIsInNldEl0ZW0iLCJzZXRFcnJvciIsInZpZGVvIiwicG9zdGVyIiwidmlkZW9XaWR0aCIsInZpZGVvSGVpZ2h0Iiwic2V0SWZyYW1lIiwiZ2V0SWZyYW1lIiwiZW5jb2RlVVJJIiwid2l0aENyZWRlbnRpYWxzIiwicmVmX3Jlc3BvbnNlIiwic2hvd0NvbnRyb2xzIiwiY29udHJvbHNUaW1lciIsIkxpZ2h0Ym94IiwibGlnaHRib3hQYW5lbCIsIl9kZXN0cm95IiwiY29udGFpbmVycyIsIk5vdGlmaWNhdGlvbiIsImNsc0Nsb3NlIiwiY2xzTXNnIiwiY2xvc2VBbGwiLCJpbW1lZGlhdGUiLCJyZW1vdmVGbiIsInByb3BzJDEiLCJQYXJhbGxheCIsImJnUG9zIiwiaXNDb2xvciIsImlzQ3NzUHJvcCIsInN0ZXBzIiwiY292ZXJzIiwiZG93biIsImJnUHJvcHMiLCJiZyIsImJhY2tncm91bmRTaXplIiwiX2ltYWdlIiwiZGltRWwiLCJuYXR1cmFsV2lkdGgiLCJuYXR1cmFsSGVpZ2h0Iiwic3BhbiIsImJnUG9zRmxvYXQiLCJiYWNrZ3JvdW5kUmVwZWF0IiwiZ2V0Q3NzIiwiY3NzJCQxIiwiZ2V0VmFsdWUiLCJyZWYkMiIsImdldFN0ZXAiLCJQYXJhbGxheCQxIiwiZWFzZSQxIiwiU2xpZGVyUmVhY3RpdmUiLCJnZXRMZWZ0IiwiY2VudGVyIiwiZ2V0RWxMZWZ0IiwiY2VudGVyRWwiLCJnZXRNYXgiLCJnZXRXaWR0aCIsInRyaWdnZXJVcGRhdGUkMSIsIlNsaWRlciQxIiwic2V0cyIsInVwZGF0ZVRyYW5zbGF0ZXMiLCJnZXRJdGVtSW4iLCJnZXRBY3RpdmVzIiwic2xpZGVMZWZ0IiwiYXZnV2lkdGgiLCJsZWZ0Q2VudGVyIiwic2xpZGVXaWR0aCIsInJlb3JkZXIiLCJzbGlkZUluZGV4IiwiU2xpZGVyUGFyYWxsYXgiLCJzZWxJdGVtIiwicmVmX2RldGFpbCIsImdldEN1cnJlbnQiLCJpc0luIiwib2JqJDEiLCJvYmokMiIsIkFuaW1hdGlvbnMkMiIsInB1bGwiLCJTbGlkZXNob3ckMSIsIm1heEhlaWdodCIsImhndCIsIlNvcnRhYmxlIiwiY2xzSXRlbSIsImNsc1BsYWNlaG9sZGVyIiwiY2xzRHJhZyIsImNsc0RyYWdTdGF0ZSIsImNsc0Jhc2UiLCJjbHNOb0RyYWciLCJjbHNFbXB0eSIsImNsc0N1c3RvbSIsInRvdWNoZWQiLCJvdXRlckhUTUwiLCJlbGVtZW50RnJvbVBvaW50Iiwic29ydGFibGUiLCJnZXRTb3J0YWJsZSIsInByZXZpb3VzIiwiaXNQcmVkZWNlc3NvciIsIlRvb2x0aXAiLCJ0aXRsZSIsIl9oYXNUaXRsZSIsImFyaWEtZXhwYW5kZWQiLCJfdW5iaW5kIiwidG9vbHRpcCIsIlVwbG9hZCIsImFsbG93IiwiY2xzRHJhZ292ZXIiLCJjb25jdXJyZW50IiwibWF4U2l6ZSIsIm1pbWUiLCJtc2dJbnZhbGlkTWltZSIsIm1zZ0ludmFsaWROYW1lIiwibXNnSW52YWxpZFNpemUiLCJiZWZvcmVBbGwiLCJjb21wbGV0ZUFsbCIsImxvYWRFbmQiLCJsb2FkU3RhcnQiLCJ1cGxvYWQiLCJ0cmFuc2ZlciIsImRhdGFUcmFuc2ZlciIsImRyYWdlbnRlciIsImRyYWdvdmVyIiwiZHJhZ2xlYXZlIiwiY2h1bmtzIiwiY2h1bmsiLCJGb3JtRGF0YSIsIm11dGF0aW9ucyIsImFwcGx5TXV0YXRpb24iLCJjaGlsZExpc3QiLCJzdWJ0cmVlIiwiY2hhcmFjdGVyRGF0YSIsIm11dGF0aW9uIiwiYWRkZWROb2RlcyIsInJlbW92ZWROb2RlcyIsImkkMSIsImFwcGx5Q2hpbGRMaXN0IiwiYXR0cmlidXRlTmFtZSIsImFwcGx5QXR0cmlidXRlIiwiYm9vdCJdLCJtYXBwaW5ncyI6IkFBQUEsYUFFQSxTQUFBQSxVQUFBQyxJQUFBQyxVQUFBQyxjQUNBLE1BQUFDLE9BQUFDLFNBQUFDLGNBQUEsVUFDQUYsT0FBQUcsS0FBQSxrQkFDQUgsT0FBQUksSUFBQVAsSUFDQUcsT0FBQUssT0FBQSxPQUVBQyxJQUFBUixZQUNBRSxPQUFBRixVQUFBQSxnQkFHQVEsSUFBQVAsZUFDQUMsT0FBQU8sWUFBQVIsY0FHQUUsU0FBQU8scUJBQUEsUUFBQSxHQUFBQyxZQUFBVCxRQUdBLFNBQUFVLFNBQUFDLFNBQUFDLFVBQ0FYLFNBQUFZLGNBQUFGLFVBRUFHLFVBQUFGLFNBR0EsU0FBQUcsWUFBQUosU0FBQUMsVUFDQSxNQUFBSSxRQUFBZixTQUFBWSxjQUFBRixVQUNBTSxJQUFBLElBQUFDLGVBQUFOLGdCQUFBLEtBQ0FJLFFBQUFGLFVBQUFFLFFBQUFGLFVBQUFLLFFBQUFGLElBQUEsS0N4QkEsU0FBQUcsbUJBQ0EsTUFBQUMsSUFBQXBCLFNBQUFxQixlQUFBLFNBRUFDLFdBQUEsSUFBQUMsV0FBQUgsS0FDQUksTUFBQSxFQUNBQyxZQUFBLEdBQ0FDLFlBQUEsVUFDQUMsU0FBQSxJQVVBM0IsU0FBQXFCLGVBQUEsa0JBQUFPLFFBUEEsV0FDQSxN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QUNBLHFDQUNBLDZCQUNBLGtDQUNBLHFDQUNBLDhCQUNBLG1DQUNBLGdDQUNBLDZCQUNBLHlDQUNBLHdDQUNBLHlDQUNBLHdDQUNBLDJDQUNBLHdDQUNBLDJDQUNBLDhDQUNBLHlDQUNBLHlDQUNBLDBDQUNBLDJDQUNBLHdDQUNBLHVDQUNBLHFDQUNBLHdDQUNBLGlDQUNBLHFDQUNBLGdDQUNBLHVDQUNBLG1DQUNBLHVDQUNBLG1DQUNBLG1DQUNBLGlDQUNBLG1DQUNBLGtDQUNBLGtDQUNBLCtCQUNBLCtCQUNBLDhCQUNBLHdCQUNBLHlCQUNBLCtCQUNBLDBCQUNBLCtCQUNBLHdCQUNBLCtCQUNBLDZCQUNBLG1DQUNBLDhCQUNBLHdCQUNBLG1DQUNBLDhCQUNBLDBCQUNBLDJCQUNBLHdCQUNBLDBCQUNBLGlCQUNBLCtCQUNBLCtCQUNBLDRCQUNBLG9CQUNBLGtCQUNBLG1CQUNBLDJCQUNBLG1CQUNBLG1DQUNBLDJCQUNBLGlDQUNBLDZCQUNBLG1DQUNBLHFDQUNBLDBDQUNBLDZDQUNBLG1DQUNBLHNDQUNBLG9DQUNBLHlDQUNBLGlDQUNBLGlDQUNBLHNDQUNBLGlDQUNBLG9CQUNBLHNCQUNBLHFCQUNBLDBCQUNBLGdCQUNBLGtCQUNBLGtCQUNBLGlCQUNBLHNCQUNBLGNBQ0Esd0JBQ0EsbUJBQ0EsY0FDQSxvQkFDQSxlQUNBLG1DQUNBLG1DQUNBLGtDQUNBLGdDQUNBLGdDQUNBLGtDQUNBLHFCQUNBLG1DQUNBLGdDQUNBLHlCQUNBLHlCQUNBLCtCQUNBLGdDQUNBLG1DQUNBLDhCQUNBLG1CQUNBLHdCQUNBLHFCQUNBLGtDQUNBLGlDQUNBLGtDQUNBLGdDQUNBLDZCQUNBLHVCQUNBLGdDQUNBLDZCQUNBLDZCQUNBLHNDQUNBLHlDQUNBLHNCQUNBLDBCQUNBLG9DQUNBLDhCQUNBLG9DQUNBLDZCQUNBLDhCQUNBLG1DQUNBLGtDQUNBLDZCQUNBLDBCQUNBLDZCQUNBLGlDQUNBLGtDQUNBLHFDQUNBLG9DQUNBLG1DQUNBLDRCQUNBLGtDQUNBLDhCQUNBLG1DQUtBcnRELFNDMXFDQSxZQVFBLFdBR0EsSUFG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LFFBQUEzdEMsT0FBQW1pRSxlQUVBLE9BREF4MkYsTUFBQTRNLE1BQUF5bkIsU0FDQSxFQUdBLElBQUEwK0MsVUFBQS95RSxNQUFBczJFLGFBQUFqaUQsT0FBQXpuQixNQUVBLE9BQUFtbUUsV0FDQUEsVUFBQXdELFlBQ0EsUUFGQSxHQTVCQWtnQixDQUFBTixZQUVBbjJGLE1BQUF3dkUsT0FBQW43QyxRQWlEQSxTQUFBbzFELFNBQUFoM0QsS0FBQW5zQixJQUVBLEdBQUEsSUFBQW1zQixLQUFBUCxXQUFBOHZDLFFBQUF2dkMsS0FBQSxjQU1BLElBRkFuc0IsR0FBQW1zQixNQUNBQSxLQUFBQSxLQUFBKzZCLGtCQUNBLzZCLE1BQUEsQ0FDQSxJQUFBalgsS0FBQWlYLEtBQUF5MEMsbUJBQ0F1aUIsU0FBQWgzRCxLQUFBbnNCLElBQ0Ftc0IsS0FBQWpYLE1BMUdBLHFCQUFBdmMsU0FJQXRDLFNBQUFreUMsS0FFQTViLE9BSUEsSUFBQTRpRCxpQkFBQSxXQUVBbDVFLFNBQUFreUMsT0FDQXR0QyxLQUFBdXlFLGFBQ0E3Z0QsVUFHQThpRCxRQUFBcDVFLFVBQUFxNUYsV0FBQSxFQUFBQyxTQUFBLEtBOHZSQVMsQ0FBQTEyRixPQUdBQSIsImZpbGUiOiJzY3JpcHQuanMiLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuZnVuY3Rpb24gZ2V0U2NyaXB0KHVybCwgaW50ZWdyaXR5LCBjcm9zc19vcmlnaW4pIHtcbiAgICBjb25zdCBzY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwic2NyaXB0XCIpO1xuICAgIHNjcmlwdC50eXBlID0gXCJ0ZXh0L2phdmFzY3JpcHRcIjtcbiAgICBzY3JpcHQuc3JjID0gdXJsO1xuICAgIHNjcmlwdC5kZWZlciA9IHRydWU7XG5cbiAgICBpZiAoaW50ZWdyaXR5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc2NyaXB0LmludGVncml0eSA9IGludGVncml0eTtcbiAgICB9XG5cbiAgICBpZiAoY3Jvc3Nfb3JpZ2luICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc2NyaXB0LmNyb3NzT3JpZ2luID0gY3Jvc3Nfb3JpZ2luO1xuICAgIH1cblxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiaGVhZFwiKVswXS5hcHBlbmRDaGlsZChzY3JpcHQpO1xufVxuXG5mdW5jdGlvbiBzZXRDbGFzcyhzZWxlY3RvciwgbXlfY2xhc3MpIHtcbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG4gICAgLy8gY29uc29sZS5sb2coZWxlbWVudCk7XG4gICAgZWxlbWVudC5jbGFzc05hbWUgPSBteV9jbGFzcztcbn1cblxuZnVuY3Rpb24gcmVtb3ZlQ2xhc3Moc2VsZWN0b3IsIG15X2NsYXNzKSB7XG4gICAgY29uc3QgZWxlbWVudCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpO1xuICAgIGNvbnN0IHJlZyA9IG5ldyBSZWdFeHAoYChefCApJHtteV9jbGFzc30oJHwgKWAsIFwiZ1wiKTtcbiAgICBlbGVtZW50LmNsYXNzTmFtZSA9IGVsZW1lbnQuY2xhc3NOYW1lLnJlcGxhY2UocmVnLCBcIiBcIik7XG59XG5cbi8vIGhpZGUgdGhlIGh0bWwgd2hlbiB0aGUgcGFnZSBsb2FkcywgYnV0IG9ubHkgaWYganMgaXMgdHVybmVkIG9uLlxuc2V0Q2xhc3MoXCJodG1sXCIsIFwicHJldmVudC1mb3VjXCIpO1xuXG4vLyB3aGVuIHRoZSBET00gaGFzIGZpbmlzaGVkIGxvYWRpbmcsIHVuaGlkZSB0aGUgaHRtbFxuZG9jdW1lbnQub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24gKCkge1xuICAgIGlmIChkb2N1bWVudC5yZWFkeVN0YXRlID09PSBcImludGVyYWN0aXZlXCIpIHtcbiAgICAgICAgcmVtb3ZlQ2xhc3MoXCJodG1sXCIsIFwicHJldmVudC1mb3VjXCIpO1xuICAgICAgICBnZXRTY3JpcHQoXG4gICAgICAgICAgICBcImh0dHBzOi8vcHJvLmZvbnRhd2Vzb21lLmNvbS9yZWxlYXNlcy92NS4xLjAvanMvYWxsLmpzXCIsIC8vIFVSTFxuICAgICAgICAgICAgXCJzaGEzODQtRTVTcGdhWmNiU0p4MElhYmIzSnIyQWZUUmlGbnJkT3cxbWhPMTlEenpyVDlMK3dDcER5SFVHMnEwN2FRZE82RVwiLCAvLyBJbnRlZ3JpdHlcbiAgICAgICAgICAgIFwiYW5vbnltb3VzXCIgLy8gQ3Jvc3Mtb3JpZ2luXG4gICAgICAgICk7XG4gICAgICAgIGdldFNjcmlwdChcbiAgICAgICAgICAgIFwiaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvYWNlLzEuMy4zL2FjZS5qc1wiXG4gICAgICAgICk7XG4gICAgICAgIGdldFNjcmlwdChcbiAgICAgICAgICAgIFwiaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9mbGF0cGlja3JcIlxuICAgICAgICApO1xuICAgIH1cbn07XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLyogZXhwb3J0ZWQgZXJyb3JfdHlwZXdyaXRlciAqL1xuXG5mdW5jdGlvbiBlcnJvcl90eXBld3JpdGVyKCkge1xuICAgIGNvbnN0IGFwcCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiZXJyb3JcIik7XG5cbiAgICBjb25zdCB0eXBld3JpdGVyID0gbmV3IFR5cGV3cml0ZXIoYXBwLCB7XG4gICAgICAgIFwibG9vcFwiOiBmYWxzZSxcbiAgICAgICAgXCJkZWxldGVTcGVlZFwiOiA0MCxcbiAgICAgICAgXCJ0eXBpbmdTcGVlZFwiOiBcIm5hdHVyYWxcIixcbiAgICAgICAgXCJkZXZNb2RlXCI6IGZhbHNlXG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBjbG9zZVdpbmRvdygpIHtcbiAgICAgICAgY29uc3QgYXBwID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJ3aW5cIik7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRfY2xhc3MgPSBhcHAuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIik7XG4gICAgICAgIGFwcC5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCBgJHtjdXJyZW50X2NsYXNzIH0gdWstYW5pbWF0aW9uLXNjYWxlLXVwIHVrLWFuaW1hdGlvbi1yZXZlcnNlYCk7XG4gICAgICAgIHR5cGV3cml0ZXIuc3RvcCgpO1xuICAgIH1cblxuICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwidGVybWluYWwtY2xvc2VcIikub25jbGljayA9IGNsb3NlV2luZG93O1xuXG4gICAgdHlwZXdyaXRlci5hcHBlbmRUZXh0KFwiUHl0aG9uIDMuNi40IChkZWZhdWx0LCBKYW4gIDUgMjAxOCwgMDI6MzU6NDApXFxuXCIpXG4gICAgICAgIC5hcHBlbmRUZXh0KFwiW0dDQyA3LjIuMSAyMDE3MTIyNF0gb24gZGFyd2luXFxuXCIpXG4gICAgICAgIC5hcHBlbmRUZXh0KFwiVHlwZSBcXFwiaGVscFxcXCIsIFxcXCJjb3B5cmlnaHRcXFwiLCBcXFwiY3JlZGl0c1xcXCIgb3IgXFxcImxpY2Vuc2VcXFwiIGZvciBtb3JlIGluZm9ybWF0aW9uLlxcblwiKVxuICAgICAgICAuYXBwZW5kVGV4dChcIj4+PiBcIilcbiAgICAgICAgLnBhdXNlRm9yKDEwMDApXG4gICAgICAgIC50eXBlU3RyaW5nKFwiaW1wb3IgcmVxdWVzdHNcIilcbiAgICAgICAgLmRlbGV0ZUNoYXJzKDkpXG4gICAgICAgIC50eXBlU3RyaW5nKFwidCByZXF1ZXN0c1xcblwiKVxuICAgICAgICAuYXBwZW5kVGV4dChcIj4+PiBcIilcbiAgICAgICAgLnBhdXNlRm9yKDc1MClcbiAgICAgICAgLmNoYW5nZVNldHRpbmdzKHtcInR5cGluZ1NwZWVkXCI6IFwibmF0dXJhbFwifSlcbiAgICAgICAgLnR5cGVTdHJpbmcoYHJlc3BvbnNlID0gcmVxdWVzdHMuJHsgd2luZG93Ll9SZXF1ZXN0TWV0aG9kIH0oJ2h0dHBzOi8vcHl0aGltYClcbiAgICAgICAgLmRlbGV0ZUNoYXJzKDIpXG4gICAgICAgIC50eXBlU3RyaW5nKFwib25kaXNjb3JkLmNvbi9cIilcbiAgICAgICAgLmRlbGV0ZUNoYXJzKDIpXG4gICAgICAgIC50eXBlU3RyaW5nKGBtJHsgd2luZG93Ll9QYXRoIH0nKVxcbmApXG4gICAgICAgIC5wYXVzZUZvcigxMDAwKVxuICAgICAgICAuYXBwZW5kVGV4dChgJmx0O1Jlc3BvbnNlIFskeyB3aW5kb3cuX0NvZGUgfV0mZ3Q7XFxuPj4+IGApXG4gICAgICAgIC50eXBlU3RyaW5nKFwiIyBobW1tbVwiKVxuICAgICAgICAucGF1c2VGb3IoMTAwMClcbiAgICAgICAgLmRlbGV0ZUNoYXJzKDcpXG4gICAgICAgIC5wYXVzZUZvcigxMDAwKVxuICAgICAgICAudHlwZVN0cmluZyhcInJlc3BvbnNlLnRleHRcXG5cIilcbiAgICAgICAgLmFwcGVuZFRleHQoYCR7IHdpbmRvdy5fRXJyb3JNc2cgfVxcbj4+PiBgKVxuICAgICAgICAuc3RhcnQoKTtcbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuXG4oZnVuY3Rpb24oKXsgLy8gVXNlIGEgY2xvc3VyZSB0byBhdm9pZCBwb2xsdXRpbmcgZ2xvYmFsIHNjb3BlXG4gICAgLy8gVE9ETzogVGhpcyBuZWVkcyB0byBiZSBidWlsdCBpbnRvIHRoZSBqYW1zIHN5c3RlbVxuICAgIGNvbnN0IHN0YXJ0amFtID0gbmV3IERhdGUoRGF0ZS5VVEMoMjAxOCwgMiwgMjMpKTtcbiAgICBjb25zdCBlbmRqYW0gPSBuZXcgRGF0ZShEYXRlLlVUQygyMDE4LCAyLCAyNikpO1xuXG4gICAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgICBsZXQgZ29hbDtcblxuICAgIGlmIChub3cgKyAxMDAwIDwgZW5kamFtLmdldFRpbWUoKSkgeyAvLyBPbmx5IGRvIGFueXRoaW5nIGlmIHRoZSBqYW0gaGFzbid0IGVuZGVkXG4gICAgICAgIFVJa2l0Lm5vdGlmaWNhdGlvbiggLy8gU3Bhd24gdGhlIG5vdGlmaWNhdGlvblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwibWVzc2FnZVwiOiBcIlwiXG4gICAgICAgICAgICAgICAgICArIFwiPGRpdiBjbGFzcz0ndWstdGV4dC1jZW50ZXInPlwiXG4gICAgICAgICAgICAgICAgICArIFwiICAgIDxzcGFuIGlkPVxcXCJjb3VudGRvd24tdGl0bGVcXFwiIGNsYXNzPVxcXCJ1ay10ZXh0LWNlbnRlclxcXCI+XCJcbiAgICAgICAgICAgICAgICAgICsgXCIgICAgICAgIDxhIGhyZWY9XFxcIi9pbmZvL2phbXNcXFwiPkNvZGUgSmFtPC9hPiBDb3VudGRvd25cIlxuICAgICAgICAgICAgICAgICAgKyBcIiAgICA8L3NwYW4+XCJcbiAgICAgICAgICAgICAgICAgICsgXCIgICAgPHAgY2xhc3M9J3VrLXRleHQtbGFyZ2UnIGlkPVxcXCJjb3VudGRvd24tcmVtYWluaW5nXFxcIj4uLi48L3A+XCJcbiAgICAgICAgICAgICAgICAgICsgXCI8c21hbGwgc3R5bGU9J2ZvbnQtc2l6ZTogMC42ZW07Jz4oVGFwL2NsaWNrIHRvIGRpc21pc3MpPC9zbWFsbD5cIlxuICAgICAgICAgICAgICAgICAgKyBcIjwvZGl2PlwiLFxuICAgICAgICAgICAgICAgIFwicG9zXCI6IFwiYm90dG9tLXJpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJ0aW1lb3V0XCI6IGVuZGphbSAtIG5vd1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IGhlYWRpbmcgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNvdW50ZG93bi10aXRsZVwiKTtcblxuICAgICAgICBpZiAobm93ID4gc3RhcnRqYW0uZ2V0VGltZSgpKSB7IC8vIEphbSdzIGFscmVhZHkgc3RhcnRlZFxuICAgICAgICAgICAgaGVhZGluZy5pbm5lckhUTUwgPSBcIkN1cnJlbnQgPGEgaHJlZj1cXFwiL2luZm8vamFtc1xcXCI+Y29kZSBqYW08L2E+IGVuZHMgaW4uLi5cIjtcbiAgICAgICAgICAgIGdvYWwgPSBlbmRqYW0uZ2V0VGltZSgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaGVhZGluZy5pbm5lckhUTUwgPSBcIk5leHQgPGEgaHJlZj1cXFwiL2luZm8vamFtc1xcXCI+Y29kZSBqYW08L2E+IHN0YXJ0cyBpbi4uLlwiO1xuICAgICAgICAgICAgZ29hbCA9IHN0YXJ0amFtLmdldFRpbWUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJlZnJlc2hDb3VudGRvd24gPSBzZXRJbnRlcnZhbCgoKSA9PiB7IC8vIENyZWF0ZSBhIHJlcGVhdGluZyB0YXNrXG4gICAgICAgICAgICBsZXQgZGVsdGEgPSBnb2FsIC0gRGF0ZS5ub3coKTsgLy8gVGltZSB1bnRpbCB0aGUgZ29hbCBpcyBtZXRcblxuICAgICAgICAgICAgaWYgKGRlbHRhIDw9IDEwMDApIHsgLy8gR29hbCBoYXMgYmVlbiBtZXQsIGJlc3QgcmVsb2FkXG4gICAgICAgICAgICAgICAgY2xlYXJJbnRlcnZhbChyZWZyZXNoQ291bnRkb3duKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gbG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBkYXlzID0gTWF0aC5mbG9vcihkZWx0YSAvICgyNCAqIDYwICogNjAgKiAxMDAwKSk7XG4gICAgICAgICAgICBkZWx0YSAtPSBkYXlzICogKDI0ICogNjAgKiA2MCAqIDEwMDApO1xuXG4gICAgICAgICAgICBsZXQgaG91cnMgPSBNYXRoLmZsb29yKGRlbHRhIC8gKDYwICogNjAgKiAxMDAwKSk7XG4gICAgICAgICAgICBkZWx0YSAtPSBob3VycyAqICg2MCAqIDYwICogMTAwMCk7XG5cbiAgICAgICAgICAgIGxldCBtaW51dGVzID0gTWF0aC5mbG9vcihkZWx0YSAvICg2MCAqIDEwMDApKTtcbiAgICAgICAgICAgIGRlbHRhIC09IG1pbnV0ZXMgKiAoNjAgKiAxMDAwKTtcblxuICAgICAgICAgICAgbGV0IHNlY29uZHMgPSBNYXRoLmZsb29yKGRlbHRhIC8gMTAwMCk7XG5cbiAgICAgICAgICAgIGlmIChkYXlzIDwgMTApIHtcbiAgICAgICAgICAgICAgICBkYXlzID0gYDAke2RheXN9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGhvdXJzIDwgMTApIHtcbiAgICAgICAgICAgICAgICBob3VycyA9IGAwJHtob3Vyc31gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAobWludXRlcyA8IDEwKSB7XG4gICAgICAgICAgICAgICAgbWludXRlcyA9IGAwJHttaW51dGVzfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzZWNvbmRzIDwgMTApIHtcbiAgICAgICAgICAgICAgICBzZWNvbmRzID0gYDAke3NlY29uZHN9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcImNvdW50ZG93bi1yZW1haW5pbmdcIikuaW5uZXJIVE1MID0gYCR7ZGF5c306JHtob3Vyc306JHttaW51dGVzfToke3NlY29uZHN9YDtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsgLy8gTm90aWZpY2F0aW9uIHdhcyBwcm9iYWJseSBjbG9zZWQsIHNvIHdlIGNhbiBzdG9wIGNvdW50aW5nXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNsZWFySW50ZXJ2YWwocmVmcmVzaENvdW50ZG93bik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIDUwMCk7XG4gICAgfVxufSkoKTtcbiIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBleHBvcnRlZCBKYW1BY3Rpb25zICovXG5cbmNsYXNzIEphbUFjdGlvbnMge1xuICAgIGNvbnN0cnVjdG9yKHVybCwgY3NyZl90b2tlbikge1xuICAgICAgICB0aGlzLnVybCA9IHVybDtcbiAgICAgICAgdGhpcy5jc3JmX3Rva2VuID0gY3NyZl90b2tlbjtcbiAgICB9XG5cbiAgICBzZW5kKGFjdGlvbiwgbWV0aG9kLCBkYXRhLCBjYWxsYmFjaykge1xuICAgICAgICBkYXRhW1wiYWN0aW9uXCJdID0gYWN0aW9uO1xuXG4gICAgICAgICQuYWpheCh0aGlzLnVybCwge1xuICAgICAgICAgICAgXCJkYXRhXCI6IGRhdGEsXG4gICAgICAgICAgICBcImRhdGFUeXBlXCI6IFwianNvblwiLFxuICAgICAgICAgICAgXCJoZWFkZXJzXCI6IHtcIlgtQ1NSRlRva2VuXCI6IHRoaXMuY3NyZl90b2tlbn0sXG4gICAgICAgICAgICBcIm1ldGhvZFwiOiBtZXRob2QsXG4gICAgICAgIH0pLmRvbmUoZGF0YSA9PiB7XG4gICAgICAgICAgICBpZiAoXCJlcnJvcl9jb2RlXCIgaW4gZGF0YSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhmYWxzZSwgZGF0YSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayh0cnVlLCBkYXRhKTtcbiAgICAgICAgfSkuZmFpbCgoKSA9PiBjYWxsYmFjayhmYWxzZSkpO1xuICAgIH1cblxuICAgIHNlbmRfanNvbihhY3Rpb24sIG1ldGhvZCwgZGF0YSwgY2FsbGJhY2spIHtcbiAgICAgICAgZGF0YVtcImFjdGlvblwiXSA9IGFjdGlvbjtcblxuICAgICAgICAkLmFqYXgodGhpcy51cmwsIHtcbiAgICAgICAgICAgIFwiZGF0YVwiOiBKU09OLnN0cmluZ2lmeShkYXRhKSxcbiAgICAgICAgICAgIFwiZGF0YVR5cGVcIjogXCJqc29uXCIsXG4gICAgICAgICAgICBcImhlYWRlcnNcIjoge1wiWC1DU1JGVG9rZW5cIjogdGhpcy5jc3JmX3Rva2VufSxcbiAgICAgICAgICAgIFwiY29udGVudFR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgICAgICAgICBcIm1ldGhvZFwiOiBtZXRob2RcbiAgICAgICAgfSkuZG9uZShkYXRhID0+IHtcbiAgICAgICAgICAgIGlmIChcImVycm9yX2NvZGVcIiBpbiBkYXRhKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGZhbHNlLCBkYXRhKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHRydWUsIGRhdGEpO1xuICAgICAgICB9KS5mYWlsKCgpID0+IGNhbGxiYWNrKGZhbHNlKSk7XG4gICAgfVxuXG4gICAgc2V0X3N0YXRlKGphbSwgc3RhdGUsIGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuc2VuZChcbiAgICAgICAgICAgIFwic3RhdGVcIixcbiAgICAgICAgICAgIFwiUE9TVFwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwiamFtXCI6IGphbSxcbiAgICAgICAgICAgICAgICBcInN0YXRlXCI6IHN0YXRlXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2FsbGJhY2tcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRfcXVlc3Rpb25zKGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuc2VuZChcbiAgICAgICAgICAgIFwicXVlc3Rpb25zXCIsXG4gICAgICAgICAgICBcIkdFVFwiLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgICBjYWxsYmFja1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGNyZWF0ZV9xdWVzdGlvbihkYXRhLCBjYWxsYmFjaykge1xuICAgICAgICB0aGlzLnNlbmRfanNvbihcbiAgICAgICAgICAgIFwicXVlc3Rpb25zXCIsXG4gICAgICAgICAgICBcIlBPU1RcIixcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBjYWxsYmFja1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGRlbGV0ZV9xdWVzdGlvbihpZCwgY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5zZW5kKFxuICAgICAgICAgICAgXCJxdWVzdGlvblwiLFxuICAgICAgICAgICAgXCJERUxFVEVcIixcbiAgICAgICAgICAgIHtcImlkXCI6IGlkfSxcbiAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgYXNzb2NpYXRlX3F1ZXN0aW9uKGZvcm0sIHF1ZXN0aW9uLCBjYWxsYmFjaykge1xuICAgICAgICB0aGlzLnNlbmQoXG4gICAgICAgICAgICBcImFzc29jaWF0ZV9xdWVzdGlvblwiLFxuICAgICAgICAgICAgXCJQT1NUXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJmb3JtXCI6IGZvcm0sXG4gICAgICAgICAgICAgICAgXCJxdWVzdGlvblwiOiBxdWVzdGlvbixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjYWxsYmFja1xuICAgICAgICApO1xuICAgIH1cblxuICAgIGRpc2Fzc29jaWF0ZV9xdWVzdGlvbihmb3JtLCBxdWVzdGlvbiwgY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5zZW5kKFxuICAgICAgICAgICAgXCJkaXNhc3NvY2lhdGVfcXVlc3Rpb25cIixcbiAgICAgICAgICAgIFwiUE9TVFwiLFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFwiZm9ybVwiOiBmb3JtLFxuICAgICAgICAgICAgICAgIFwicXVlc3Rpb25cIjogcXVlc3Rpb24sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2FsbGJhY2tcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjcmVhdGVfaW5mcmFjdGlvbihpZCwgcmVhc29uLCBudW1iZXIsIGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuc2VuZChcbiAgICAgICAgICAgIFwiaW5mcmFjdGlvblwiLFxuICAgICAgICAgICAgXCJQT1NUXCIsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgXCJwYXJ0aWNpcGFudFwiOiBpZCxcbiAgICAgICAgICAgICAgICBcInJlYXNvblwiOiByZWFzb24sXG4gICAgICAgICAgICAgICAgXCJudW1iZXJcIjogbnVtYmVyXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2FsbGJhY2tcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBkZWxldGVfaW5mcmFjdGlvbihpZCwgY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5zZW5kKFxuICAgICAgICAgICAgXCJpbmZyYWN0aW9uXCIsXG4gICAgICAgICAgICBcIkRFTEVURVwiLFxuICAgICAgICAgICAge1wiaWRcIjogaWR9LFxuICAgICAgICAgICAgY2FsbGJhY2tcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBhcHByb3ZlX2FwcGxpY2F0aW9uKGlkLCBjYWxsYmFjaykge1xuICAgICAgICB0aGlzLnNlbmQoXG4gICAgICAgICAgICBcImFwcHJvdmVfYXBwbGljYXRpb25cIixcbiAgICAgICAgICAgIFwiUE9TVFwiLFxuICAgICAgICAgICAge1wiaWRcIjogaWR9LFxuICAgICAgICAgICAgY2FsbGJhY2tcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICB1bmFwcHJvdmVfYXBwbGljYXRpb24oaWQsIGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuc2VuZChcbiAgICAgICAgICAgIFwidW5hcHByb3ZlX2FwcGxpY2F0aW9uXCIsXG4gICAgICAgICAgICBcIlBPU1RcIixcbiAgICAgICAgICAgIHtcImlkXCI6IGlkfSxcbiAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZ2VuZXJhdGVfdGVhbXMoamFtLCBjYWxsYmFjaykge1xuICAgICAgICB0aGlzLnNlbmQoXG4gICAgICAgICAgICBcImdlbmVyYXRlX3RlYW1zXCIsXG4gICAgICAgICAgICBcIlBPU1RcIixcbiAgICAgICAgICAgIHtcImphbVwiOiBqYW19LFxuICAgICAgICAgICAgY2FsbGJhY2tcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBjcmVhdGVfdGVhbShqYW0sIGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuc2VuZChcbiAgICAgICAgICAgIFwiY3JlYXRlX3RlYW1cIixcbiAgICAgICAgICAgIFwiUE9TVFwiLFxuICAgICAgICAgICAge1wiamFtXCI6IGphbX0sXG4gICAgICAgICAgICBjYWxsYmFja1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlcm9sbF90ZWFtKHRlYW0sIGNhbGxiYWNrKSB7XG4gICAgICAgIHRoaXMuc2VuZChcbiAgICAgICAgICAgIFwicmVyb2xsX3RlYW1cIixcbiAgICAgICAgICAgIFwiUE9TVFwiLFxuICAgICAgICAgICAge1widGVhbVwiOiB0ZWFtfSxcbiAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZGVsZXRlX3RlYW0odGVhbSwgY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5zZW5kKFxuICAgICAgICAgICAgXCJ0ZWFtXCIsXG4gICAgICAgICAgICBcIkRFTEVURVwiLFxuICAgICAgICAgICAge1widGVhbVwiOiB0ZWFtfSxcbiAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0X3RlYW1fbWVtYmVyKGphbSwgbWVtYmVyLCB0ZWFtLCBjYWxsYmFjaykge1xuICAgICAgICB0aGlzLnNlbmQoXG4gICAgICAgICAgICBcInNldF90ZWFtX21lbWJlclwiLFxuICAgICAgICAgICAgXCJQT1NUXCIsXG4gICAgICAgICAgICB7XCJqYW1cIjogamFtLCBcIm1lbWJlclwiOiBtZW1iZXIsIFwidGVhbVwiOiB0ZWFtfSxcbiAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0X3dpbm5pbmdfdGVhbSh0ZWFtLCBjYWxsYmFjaykge1xuICAgICAgICB0aGlzLnNlbmQoXG4gICAgICAgICAgICBcInNldF93aW5uaW5nX3RlYW1cIixcbiAgICAgICAgICAgIFwiUE9TVFwiLFxuICAgICAgICAgICAge1widGVhbVwiOiB0ZWFtfSxcbiAgICAgICAgICAgIGNhbGxiYWNrXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgdW5zZXRfd2lubmluZ190ZWFtKGphbSwgY2FsbGJhY2spIHtcbiAgICAgICAgdGhpcy5zZW5kKFxuICAgICAgICAgICAgXCJ1bnNldF93aW5uaW5nX3RlYW1cIixcbiAgICAgICAgICAgIFwiUE9TVFwiLFxuICAgICAgICAgICAge1wiamFtXCI6IGphbX0sXG4gICAgICAgICAgICBjYWxsYmFja1xuICAgICAgICApO1xuICAgIH1cbn1cbiIsIlwidXNlIHN0cmljdFwiO1xuXG4vKiBleHBvcnRlZCByZXZpc2lvbl9kaWZmICovXG5cbmZ1bmN0aW9uIHJldmlzaW9uX2RpZmYocmV2aXNpb25zKSB7XG4gICAgY29uc3QgYnV0dG9ucyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCJ0ZCBpbnB1dFwiKTsgLy8gRmV0Y2ggYWxsIHJhZGlvIGJ1dHRvbnNcbiAgICBjb25zdCBpZF9yZWcgPSAvY29tcGFyZS0oYmVmb3JlfGFmdGVyKS0oW1xcd3wtXSspLzsgLy8gTWF0Y2hlcyBjb21wYXJlLWFmdGVyL2JlZm9yZS1JRFxuXG5cbiAgICBmdW5jdGlvbiBnZXRSZXZpc2lvbklkKGVsZW1lbnQpe1xuICAgICAgICBjb25zdCBlID0gZWxlbWVudC5pZC5tYXRjaChpZF9yZWcpOyAvLyBNYXRjaCBJRCB3aXRoIFJlZ0V4cFxuICAgICAgICByZXR1cm4gW2VbMV0sIGVbMl1dOyAvLyBlIGlzIGluIGZvcm1hdCBvZiBbZnVsbCBpZCwgYWZ0ZXIvYmVmb3JlLCBJRF0gd2Ugb25seSB3YW50IElEICYgbW9kZVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFJldmlzaW9uKGlkKSB7XG4gICAgICAgIGNvbnN0IGUgPSByZXZpc2lvbnMuZmlsdGVyKCh4KSA9PiB7XG4gICAgICAgICAgICAvLyBGaWx0ZXIgdGhyb3VnaCBhbGwgcmV2aXNpb25zIHRvIGZpbmQgdGhlIHNlbGVjdGVkIG9uZSAocmV2aXNpb25zIGluIGRlY2xhcmVkIGluIHRoZSB0ZW1wbGF0ZSlcbiAgICAgICAgICAgIHJldHVybiB4LmlkID09PSBpZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBlWzBdO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJhZGlvQnV0dG9uQ2hlY2tlZChlbGVtZW50KSB7XG4gICAgICAgIGNvbnN0IGlkID0gZ2V0UmV2aXNpb25JZChlbGVtZW50KTtcbiAgICAgICAgY29uc3QgcmV2ID0gZ2V0UmV2aXNpb24oaWRbMV0pO1xuICAgICAgICBpZiAoaWRbMF0gPT09IFwiYWZ0ZXJcIil7XG4gICAgICAgICAgICAvKlxuICAgICAgICAgICAgICogRGVzZWxlY3QgdGhlIG9wcG9zaXRlIGNoZWNrYm94IHRvIHRoZSBvbmUgd2hpY2ggaGFzIGJlZW4gY2hlY2tlZFxuICAgICAgICAgICAgICogYmVjYXVzZSB3ZSBkb24ndCB3YW50IGNoZWNraW5nIG9mIHRoZSBzYW1lIHJldmlzaW9uXG4gICAgICAgICAgICAgKi9cblxuICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgI2NvbXBhcmUtYmVmb3JlLSR7aWRbMV19YCkuY2hlY2tlZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICBidXR0b25zLmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZ2V0UmV2aXNpb25JZChlKVswXSA9PT0gXCJhZnRlclwiICYmIGUuaWQgIT09IGVsZW1lbnQuaWQpIHsgLy8gRGVzZWxlY3QgYWxsIGNoZWNrYm94ZXMgaW4gdGhlIHNhbWUgcm93XG4gICAgICAgICAgICAgICAgICAgIGUuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgeyAvLyBUaGlzIGVsc2UgZG9lcyB0aGUgc2FtZSBhcyBhYm92ZSBidXQgZm9yIHRoZSBiZWZvcmUgY29sdW1uXG4gICAgICAgICAgICBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKGAjY29tcGFyZS1hZnRlci0ke2lkWzFdfWApLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGJ1dHRvbnMuZm9yRWFjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChnZXRSZXZpc2lvbklkKGUpWzBdID09PSBcImJlZm9yZVwiICYmIGUuaWQgIT09IGVsZW1lbnQuaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZS5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgLy8gVGhpcyBtYWtlcyBzdXJlIHRoYXQgeW91IGRvIG5vdCBjb21wYXJlIGEgbmV3IHJldmlzaW9uIHdpdGggYW4gb2xkIG9uZVxuICAgICAgICAgICAgICAgIGlmIChnZXRSZXZpc2lvbklkKGUpWzBdID09PSBcImFmdGVyXCIpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdG1wcmV2ID0gZ2V0UmV2aXNpb24oZ2V0UmV2aXNpb25JZChlKVsxXSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKHRtcHJldik7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0bXByZXYuZGF0ZSA8PSByZXYuZGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcihgIyR7ZS5pZH1gKS5zZXRBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiLCBcIlwiKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoYCMke2UuaWR9YCkucmVtb3ZlQXR0cmlidXRlKFwiZGlzYWJsZWRcIik7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBhZnQsIGJlZjtcblxuICAgICAgICBidXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4geyAvLyBGaW5kIHRoZSBzZWxlY3RlZCBwb3N0c1xuICAgICAgICAgICAgY29uc3QgaWQgPSBnZXRSZXZpc2lvbklkKGJ1dHRvbik7XG4gICAgICAgICAgICBpZiAoYnV0dG9uLmNoZWNrZWQgJiYgaWRbMF0gPT09IFwiYmVmb3JlXCIpIHtcbiAgICAgICAgICAgICAgICBiZWYgPSBpZFsxXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGJ1dHRvbi5jaGVja2VkICYmIGlkWzBdID09PSBcImFmdGVyXCIpIHtcbiAgICAgICAgICAgICAgICBhZnQgPSBpZFsxXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gU3dpdGNoIHRoZSBidXR0b25zIEhSRUYgdG8gcG9pbnQgdG8gdGhlIGNvcnJlY3QgY29tcGFyZSBVUkxcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJjb21wYXJlLXN1Ym1pdFwiKS5ocmVmID0gYC9oaXN0b3J5L2NvbXBhcmUvJHtiZWZ9LyR7YWZ0fWA7XG5cbiAgICB9XG5cbiAgICBidXR0b25zLmZvckVhY2goKGJ1dHRvbikgPT4ge1xuICAgICAgICBidXR0b24uY2hlY2tlZCA9IGZhbHNlOyAvLyBTb21lIGJyb3dzZXJzIHJlbWVtYmVyIGlmIGEgYnV0dG9uIGlzIGNoZWNrZWQuXG4gICAgICAgIGJ1dHRvbi5vbmNoYW5nZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgcmFkaW9CdXR0b25DaGVja2VkKGJ1dHRvbik7XG4gICAgICAgIH07XG4gICAgfSk7XG59XG4iLCJcInVzZSBzdHJpY3RcIjtcblxuLyogZXhwb3J0ZWQgd2lraV9zaWRlYmFyICovXG5cbmZ1bmN0aW9uIHdpa2lfc2lkZWJhcigpe1xuICAgIGNvbnN0IHZpc2libGVfY2xhc3MgPSBcInVrLXZpc2libGVAc1wiO1xuICAgIGNvbnN0IHNpZGViYXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChcIndpa2ktc2lkZWJhclwiKTtcbiAgICBjb25zdCBkaXNwbGF5X2J1dHRvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwid2lraS1zaWRlYmFyLWJ1dHRvblwiKTtcblxuICAgIGRpc3BsYXlfYnV0dG9uLm9uY2xpY2sgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgaWYgKHNpZGViYXIuY2xhc3NMaXN0LmNvbnRhaW5zKHZpc2libGVfY2xhc3MpKSB7XG4gICAgICAgICAgICBzaWRlYmFyLmNsYXNzTGlzdC5yZW1vdmUodmlzaWJsZV9jbGFzcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBzaWRlYmFyLmNsYXNzTGlzdC5hZGQodmlzaWJsZV9jbGFzcyk7XG4gICAgICAgIH1cbiAgICB9O1xufVxuIiwiLy8hIG1vbWVudC5qc1xuXG47KGZ1bmN0aW9uIChnbG9iYWwsIGZhY3RvcnkpIHtcbiAgICB0eXBlb2YgZXhwb3J0cyA9PT0gJ29iamVjdCcgJiYgdHlwZW9mIG1vZHVsZSAhPT0gJ3VuZGVmaW5lZCcgPyBtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkoKSA6XG4gICAgdHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kID8gZGVmaW5lKGZhY3RvcnkpIDpcbiAgICBnbG9iYWwubW9tZW50ID0gZmFjdG9yeSgpXG59KHRoaXMsIChmdW5jdGlvbiAoKSB7ICd1c2Ugc3RyaWN0JztcblxuICAgIHZhciBob29rQ2FsbGJhY2s7XG5cbiAgICBmdW5jdGlvbiBob29rcyAoKSB7XG4gICAgICAgIHJldHVybiBob29rQ2FsbGJhY2suYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGlzIGRvbmUgdG8gcmVnaXN0ZXIgdGhlIG1ldGhvZCBjYWxsZWQgd2l0aCBtb21lbnQoKVxuICAgIC8vIHdpdGhvdXQgY3JlYXRpbmcgY2lyY3VsYXIgZGVwZW5kZW5jaWVzLlxuICAgIGZ1bmN0aW9uIHNldEhvb2tDYWxsYmFjayAoY2FsbGJhY2spIHtcbiAgICAgICAgaG9va0NhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNBcnJheShpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgaW5zdGFuY2VvZiBBcnJheSB8fCBPYmplY3QucHJvdG90eXBlLnRvU3RyaW5nLmNhbGwoaW5wdXQpID09PSAnW29iamVjdCBBcnJheV0nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzT2JqZWN0KGlucHV0KSB7XG4gICAgICAgIC8vIElFOCB3aWxsIHRyZWF0IHVuZGVmaW5lZCBhbmQgbnVsbCBhcyBvYmplY3QgaWYgaXQgd2Fzbid0IGZvclxuICAgICAgICAvLyBpbnB1dCAhPSBudWxsXG4gICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsICYmIE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpbnB1dCkgPT09ICdbb2JqZWN0IE9iamVjdF0nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzT2JqZWN0RW1wdHkob2JqKSB7XG4gICAgICAgIGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcykge1xuICAgICAgICAgICAgcmV0dXJuIChPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhvYmopLmxlbmd0aCA9PT0gMCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB2YXIgaztcbiAgICAgICAgICAgIGZvciAoayBpbiBvYmopIHtcbiAgICAgICAgICAgICAgICBpZiAob2JqLmhhc093blByb3BlcnR5KGspKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVW5kZWZpbmVkKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PT0gdm9pZCAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzTnVtYmVyKGlucHV0KSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgaW5wdXQgPT09ICdudW1iZXInIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpbnB1dCkgPT09ICdbb2JqZWN0IE51bWJlcl0nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRGF0ZShpbnB1dCkge1xuICAgICAgICByZXR1cm4gaW5wdXQgaW5zdGFuY2VvZiBEYXRlIHx8IE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChpbnB1dCkgPT09ICdbb2JqZWN0IERhdGVdJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXAoYXJyLCBmbikge1xuICAgICAgICB2YXIgcmVzID0gW10sIGk7XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCBhcnIubGVuZ3RoOyArK2kpIHtcbiAgICAgICAgICAgIHJlcy5wdXNoKGZuKGFycltpXSwgaSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFzT3duUHJvcChhLCBiKSB7XG4gICAgICAgIHJldHVybiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwgYik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZXh0ZW5kKGEsIGIpIHtcbiAgICAgICAgZm9yICh2YXIgaSBpbiBiKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcChiLCBpKSkge1xuICAgICAgICAgICAgICAgIGFbaV0gPSBiW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc093blByb3AoYiwgJ3RvU3RyaW5nJykpIHtcbiAgICAgICAgICAgIGEudG9TdHJpbmcgPSBiLnRvU3RyaW5nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGhhc093blByb3AoYiwgJ3ZhbHVlT2YnKSkge1xuICAgICAgICAgICAgYS52YWx1ZU9mID0gYi52YWx1ZU9mO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGE7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlVVRDIChpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWxPclVUQyhpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCwgdHJ1ZSkudXRjKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGVmYXVsdFBhcnNpbmdGbGFncygpIHtcbiAgICAgICAgLy8gV2UgbmVlZCB0byBkZWVwIGNsb25lIHRoaXMgb2JqZWN0LlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZW1wdHkgICAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgICB1bnVzZWRUb2tlbnMgICAgOiBbXSxcbiAgICAgICAgICAgIHVudXNlZElucHV0ICAgICA6IFtdLFxuICAgICAgICAgICAgb3ZlcmZsb3cgICAgICAgIDogLTIsXG4gICAgICAgICAgICBjaGFyc0xlZnRPdmVyICAgOiAwLFxuICAgICAgICAgICAgbnVsbElucHV0ICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgICBpbnZhbGlkTW9udGggICAgOiBudWxsLFxuICAgICAgICAgICAgaW52YWxpZEZvcm1hdCAgIDogZmFsc2UsXG4gICAgICAgICAgICB1c2VySW52YWxpZGF0ZWQgOiBmYWxzZSxcbiAgICAgICAgICAgIGlzbyAgICAgICAgICAgICA6IGZhbHNlLFxuICAgICAgICAgICAgcGFyc2VkRGF0ZVBhcnRzIDogW10sXG4gICAgICAgICAgICBtZXJpZGllbSAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgcmZjMjgyMiAgICAgICAgIDogZmFsc2UsXG4gICAgICAgICAgICB3ZWVrZGF5TWlzbWF0Y2ggOiBmYWxzZVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFBhcnNpbmdGbGFncyhtKSB7XG4gICAgICAgIGlmIChtLl9wZiA9PSBudWxsKSB7XG4gICAgICAgICAgICBtLl9wZiA9IGRlZmF1bHRQYXJzaW5nRmxhZ3MoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbS5fcGY7XG4gICAgfVxuXG4gICAgdmFyIHNvbWU7XG4gICAgaWYgKEFycmF5LnByb3RvdHlwZS5zb21lKSB7XG4gICAgICAgIHNvbWUgPSBBcnJheS5wcm90b3R5cGUuc29tZTtcbiAgICB9IGVsc2Uge1xuICAgICAgICBzb21lID0gZnVuY3Rpb24gKGZ1bikge1xuICAgICAgICAgICAgdmFyIHQgPSBPYmplY3QodGhpcyk7XG4gICAgICAgICAgICB2YXIgbGVuID0gdC5sZW5ndGggPj4+IDA7XG5cbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoaSBpbiB0ICYmIGZ1bi5jYWxsKHRoaXMsIHRbaV0sIGksIHQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVmFsaWQobSkge1xuICAgICAgICBpZiAobS5faXNWYWxpZCA9PSBudWxsKSB7XG4gICAgICAgICAgICB2YXIgZmxhZ3MgPSBnZXRQYXJzaW5nRmxhZ3MobSk7XG4gICAgICAgICAgICB2YXIgcGFyc2VkUGFydHMgPSBzb21lLmNhbGwoZmxhZ3MucGFyc2VkRGF0ZVBhcnRzLCBmdW5jdGlvbiAoaSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpICE9IG51bGw7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHZhciBpc05vd1ZhbGlkID0gIWlzTmFOKG0uX2QuZ2V0VGltZSgpKSAmJlxuICAgICAgICAgICAgICAgIGZsYWdzLm92ZXJmbG93IDwgMCAmJlxuICAgICAgICAgICAgICAgICFmbGFncy5lbXB0eSAmJlxuICAgICAgICAgICAgICAgICFmbGFncy5pbnZhbGlkTW9udGggJiZcbiAgICAgICAgICAgICAgICAhZmxhZ3MuaW52YWxpZFdlZWtkYXkgJiZcbiAgICAgICAgICAgICAgICAhZmxhZ3Mud2Vla2RheU1pc21hdGNoICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLm51bGxJbnB1dCAmJlxuICAgICAgICAgICAgICAgICFmbGFncy5pbnZhbGlkRm9ybWF0ICYmXG4gICAgICAgICAgICAgICAgIWZsYWdzLnVzZXJJbnZhbGlkYXRlZCAmJlxuICAgICAgICAgICAgICAgICghZmxhZ3MubWVyaWRpZW0gfHwgKGZsYWdzLm1lcmlkaWVtICYmIHBhcnNlZFBhcnRzKSk7XG5cbiAgICAgICAgICAgIGlmIChtLl9zdHJpY3QpIHtcbiAgICAgICAgICAgICAgICBpc05vd1ZhbGlkID0gaXNOb3dWYWxpZCAmJlxuICAgICAgICAgICAgICAgICAgICBmbGFncy5jaGFyc0xlZnRPdmVyID09PSAwICYmXG4gICAgICAgICAgICAgICAgICAgIGZsYWdzLnVudXNlZFRva2Vucy5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgZmxhZ3MuYmlnSG91ciA9PT0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoT2JqZWN0LmlzRnJvemVuID09IG51bGwgfHwgIU9iamVjdC5pc0Zyb3plbihtKSkge1xuICAgICAgICAgICAgICAgIG0uX2lzVmFsaWQgPSBpc05vd1ZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzTm93VmFsaWQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG0uX2lzVmFsaWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlSW52YWxpZCAoZmxhZ3MpIHtcbiAgICAgICAgdmFyIG0gPSBjcmVhdGVVVEMoTmFOKTtcbiAgICAgICAgaWYgKGZsYWdzICE9IG51bGwpIHtcbiAgICAgICAgICAgIGV4dGVuZChnZXRQYXJzaW5nRmxhZ3MobSksIGZsYWdzKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhtKS51c2VySW52YWxpZGF0ZWQgPSB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG07XG4gICAgfVxuXG4gICAgLy8gUGx1Z2lucyB0aGF0IGFkZCBwcm9wZXJ0aWVzIHNob3VsZCBhbHNvIGFkZCB0aGUga2V5IGhlcmUgKG51bGwgdmFsdWUpLFxuICAgIC8vIHNvIHdlIGNhbiBwcm9wZXJseSBjbG9uZSBvdXJzZWx2ZXMuXG4gICAgdmFyIG1vbWVudFByb3BlcnRpZXMgPSBob29rcy5tb21lbnRQcm9wZXJ0aWVzID0gW107XG5cbiAgICBmdW5jdGlvbiBjb3B5Q29uZmlnKHRvLCBmcm9tKSB7XG4gICAgICAgIHZhciBpLCBwcm9wLCB2YWw7XG5cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9pc0FNb21lbnRPYmplY3QpKSB7XG4gICAgICAgICAgICB0by5faXNBTW9tZW50T2JqZWN0ID0gZnJvbS5faXNBTW9tZW50T2JqZWN0O1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5faSkpIHtcbiAgICAgICAgICAgIHRvLl9pID0gZnJvbS5faTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX2YpKSB7XG4gICAgICAgICAgICB0by5fZiA9IGZyb20uX2Y7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9sKSkge1xuICAgICAgICAgICAgdG8uX2wgPSBmcm9tLl9sO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fc3RyaWN0KSkge1xuICAgICAgICAgICAgdG8uX3N0cmljdCA9IGZyb20uX3N0cmljdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX3R6bSkpIHtcbiAgICAgICAgICAgIHRvLl90em0gPSBmcm9tLl90em07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCFpc1VuZGVmaW5lZChmcm9tLl9pc1VUQykpIHtcbiAgICAgICAgICAgIHRvLl9pc1VUQyA9IGZyb20uX2lzVVRDO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fb2Zmc2V0KSkge1xuICAgICAgICAgICAgdG8uX29mZnNldCA9IGZyb20uX29mZnNldDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKGZyb20uX3BmKSkge1xuICAgICAgICAgICAgdG8uX3BmID0gZ2V0UGFyc2luZ0ZsYWdzKGZyb20pO1xuICAgICAgICB9XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoZnJvbS5fbG9jYWxlKSkge1xuICAgICAgICAgICAgdG8uX2xvY2FsZSA9IGZyb20uX2xvY2FsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtb21lbnRQcm9wZXJ0aWVzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGZvciAoaSA9IDA7IGkgPCBtb21lbnRQcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcHJvcCA9IG1vbWVudFByb3BlcnRpZXNbaV07XG4gICAgICAgICAgICAgICAgdmFsID0gZnJvbVtwcm9wXTtcbiAgICAgICAgICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHZhbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdG9bcHJvcF0gPSB2YWw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRvO1xuICAgIH1cblxuICAgIHZhciB1cGRhdGVJblByb2dyZXNzID0gZmFsc2U7XG5cbiAgICAvLyBNb21lbnQgcHJvdG90eXBlIG9iamVjdFxuICAgIGZ1bmN0aW9uIE1vbWVudChjb25maWcpIHtcbiAgICAgICAgY29weUNvbmZpZyh0aGlzLCBjb25maWcpO1xuICAgICAgICB0aGlzLl9kID0gbmV3IERhdGUoY29uZmlnLl9kICE9IG51bGwgPyBjb25maWcuX2QuZ2V0VGltZSgpIDogTmFOKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgdGhpcy5fZCA9IG5ldyBEYXRlKE5hTik7XG4gICAgICAgIH1cbiAgICAgICAgLy8gUHJldmVudCBpbmZpbml0ZSBsb29wIGluIGNhc2UgdXBkYXRlT2Zmc2V0IGNyZWF0ZXMgbmV3IG1vbWVudFxuICAgICAgICAvLyBvYmplY3RzLlxuICAgICAgICBpZiAodXBkYXRlSW5Qcm9ncmVzcyA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIHVwZGF0ZUluUHJvZ3Jlc3MgPSB0cnVlO1xuICAgICAgICAgICAgaG9va3MudXBkYXRlT2Zmc2V0KHRoaXMpO1xuICAgICAgICAgICAgdXBkYXRlSW5Qcm9ncmVzcyA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNNb21lbnQgKG9iaikge1xuICAgICAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgTW9tZW50IHx8IChvYmogIT0gbnVsbCAmJiBvYmouX2lzQU1vbWVudE9iamVjdCAhPSBudWxsKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhYnNGbG9vciAobnVtYmVyKSB7XG4gICAgICAgIGlmIChudW1iZXIgPCAwKSB7XG4gICAgICAgICAgICAvLyAtMCAtPiAwXG4gICAgICAgICAgICByZXR1cm4gTWF0aC5jZWlsKG51bWJlcikgfHwgMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0ludChhcmd1bWVudEZvckNvZXJjaW9uKSB7XG4gICAgICAgIHZhciBjb2VyY2VkTnVtYmVyID0gK2FyZ3VtZW50Rm9yQ29lcmNpb24sXG4gICAgICAgICAgICB2YWx1ZSA9IDA7XG5cbiAgICAgICAgaWYgKGNvZXJjZWROdW1iZXIgIT09IDAgJiYgaXNGaW5pdGUoY29lcmNlZE51bWJlcikpIHtcbiAgICAgICAgICAgIHZhbHVlID0gYWJzRmxvb3IoY29lcmNlZE51bWJlcik7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgLy8gY29tcGFyZSB0d28gYXJyYXlzLCByZXR1cm4gdGhlIG51bWJlciBvZiBkaWZmZXJlbmNlc1xuICAgIGZ1bmN0aW9uIGNvbXBhcmVBcnJheXMoYXJyYXkxLCBhcnJheTIsIGRvbnRDb252ZXJ0KSB7XG4gICAgICAgIHZhciBsZW4gPSBNYXRoLm1pbihhcnJheTEubGVuZ3RoLCBhcnJheTIubGVuZ3RoKSxcbiAgICAgICAgICAgIGxlbmd0aERpZmYgPSBNYXRoLmFicyhhcnJheTEubGVuZ3RoIC0gYXJyYXkyLmxlbmd0aCksXG4gICAgICAgICAgICBkaWZmcyA9IDAsXG4gICAgICAgICAgICBpO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuOyBpKyspIHtcbiAgICAgICAgICAgIGlmICgoZG9udENvbnZlcnQgJiYgYXJyYXkxW2ldICE9PSBhcnJheTJbaV0pIHx8XG4gICAgICAgICAgICAgICAgKCFkb250Q29udmVydCAmJiB0b0ludChhcnJheTFbaV0pICE9PSB0b0ludChhcnJheTJbaV0pKSkge1xuICAgICAgICAgICAgICAgIGRpZmZzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpZmZzICsgbGVuZ3RoRGlmZjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB3YXJuKG1zZykge1xuICAgICAgICBpZiAoaG9va3Muc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmdzID09PSBmYWxzZSAmJlxuICAgICAgICAgICAgICAgICh0eXBlb2YgY29uc29sZSAhPT0gICd1bmRlZmluZWQnKSAmJiBjb25zb2xlLndhcm4pIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignRGVwcmVjYXRpb24gd2FybmluZzogJyArIG1zZyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkZXByZWNhdGUobXNnLCBmbikge1xuICAgICAgICB2YXIgZmlyc3RUaW1lID0gdHJ1ZTtcblxuICAgICAgICByZXR1cm4gZXh0ZW5kKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmIChob29rcy5kZXByZWNhdGlvbkhhbmRsZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlcihudWxsLCBtc2cpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpcnN0VGltZSkge1xuICAgICAgICAgICAgICAgIHZhciBhcmdzID0gW107XG4gICAgICAgICAgICAgICAgdmFyIGFyZztcbiAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBhcmcgPSAnJztcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhcmd1bWVudHNbaV0gPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgKz0gJ1xcblsnICsgaSArICddICc7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gYXJndW1lbnRzWzBdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJnICs9IGtleSArICc6ICcgKyBhcmd1bWVudHNbMF1ba2V5XSArICcsICc7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmcuc2xpY2UoMCwgLTIpOyAvLyBSZW1vdmUgdHJhaWxpbmcgY29tbWEgYW5kIHNwYWNlXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcmcgPSBhcmd1bWVudHNbaV07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYXJncy5wdXNoKGFyZyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHdhcm4obXNnICsgJ1xcbkFyZ3VtZW50czogJyArIEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKGFyZ3MpLmpvaW4oJycpICsgJ1xcbicgKyAobmV3IEVycm9yKCkpLnN0YWNrKTtcbiAgICAgICAgICAgICAgICBmaXJzdFRpbWUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9LCBmbik7XG4gICAgfVxuXG4gICAgdmFyIGRlcHJlY2F0aW9ucyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gZGVwcmVjYXRlU2ltcGxlKG5hbWUsIG1zZykge1xuICAgICAgICBpZiAoaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyICE9IG51bGwpIHtcbiAgICAgICAgICAgIGhvb2tzLmRlcHJlY2F0aW9uSGFuZGxlcihuYW1lLCBtc2cpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghZGVwcmVjYXRpb25zW25hbWVdKSB7XG4gICAgICAgICAgICB3YXJuKG1zZyk7XG4gICAgICAgICAgICBkZXByZWNhdGlvbnNbbmFtZV0gPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaG9va3Muc3VwcHJlc3NEZXByZWNhdGlvbldhcm5pbmdzID0gZmFsc2U7XG4gICAgaG9va3MuZGVwcmVjYXRpb25IYW5kbGVyID0gbnVsbDtcblxuICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24oaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGlucHV0IGluc3RhbmNlb2YgRnVuY3Rpb24gfHwgT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKGlucHV0KSA9PT0gJ1tvYmplY3QgRnVuY3Rpb25dJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXQgKGNvbmZpZykge1xuICAgICAgICB2YXIgcHJvcCwgaTtcbiAgICAgICAgZm9yIChpIGluIGNvbmZpZykge1xuICAgICAgICAgICAgcHJvcCA9IGNvbmZpZ1tpXTtcbiAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKHByb3ApKSB7XG4gICAgICAgICAgICAgICAgdGhpc1tpXSA9IHByb3A7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXNbJ18nICsgaV0gPSBwcm9wO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IGNvbmZpZztcbiAgICAgICAgLy8gTGVuaWVudCBvcmRpbmFsIHBhcnNpbmcgYWNjZXB0cyBqdXN0IGEgbnVtYmVyIGluIGFkZGl0aW9uIHRvXG4gICAgICAgIC8vIG51bWJlciArIChwb3NzaWJseSkgc3R1ZmYgY29taW5nIGZyb20gX2RheU9mTW9udGhPcmRpbmFsUGFyc2UuXG4gICAgICAgIC8vIFRPRE86IFJlbW92ZSBcIm9yZGluYWxQYXJzZVwiIGZhbGxiYWNrIGluIG5leHQgbWFqb3IgcmVsZWFzZS5cbiAgICAgICAgdGhpcy5fZGF5T2ZNb250aE9yZGluYWxQYXJzZUxlbmllbnQgPSBuZXcgUmVnRXhwKFxuICAgICAgICAgICAgKHRoaXMuX2RheU9mTW9udGhPcmRpbmFsUGFyc2Uuc291cmNlIHx8IHRoaXMuX29yZGluYWxQYXJzZS5zb3VyY2UpICtcbiAgICAgICAgICAgICAgICAnfCcgKyAoL1xcZHsxLDJ9Lykuc291cmNlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtZXJnZUNvbmZpZ3MocGFyZW50Q29uZmlnLCBjaGlsZENvbmZpZykge1xuICAgICAgICB2YXIgcmVzID0gZXh0ZW5kKHt9LCBwYXJlbnRDb25maWcpLCBwcm9wO1xuICAgICAgICBmb3IgKHByb3AgaW4gY2hpbGRDb25maWcpIHtcbiAgICAgICAgICAgIGlmIChoYXNPd25Qcm9wKGNoaWxkQ29uZmlnLCBwcm9wKSkge1xuICAgICAgICAgICAgICAgIGlmIChpc09iamVjdChwYXJlbnRDb25maWdbcHJvcF0pICYmIGlzT2JqZWN0KGNoaWxkQ29uZmlnW3Byb3BdKSkge1xuICAgICAgICAgICAgICAgICAgICByZXNbcHJvcF0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZXh0ZW5kKHJlc1twcm9wXSwgcGFyZW50Q29uZmlnW3Byb3BdKTtcbiAgICAgICAgICAgICAgICAgICAgZXh0ZW5kKHJlc1twcm9wXSwgY2hpbGRDb25maWdbcHJvcF0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hpbGRDb25maWdbcHJvcF0gIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZXNbcHJvcF0gPSBjaGlsZENvbmZpZ1twcm9wXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgcmVzW3Byb3BdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBmb3IgKHByb3AgaW4gcGFyZW50Q29uZmlnKSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcChwYXJlbnRDb25maWcsIHByb3ApICYmXG4gICAgICAgICAgICAgICAgICAgICFoYXNPd25Qcm9wKGNoaWxkQ29uZmlnLCBwcm9wKSAmJlxuICAgICAgICAgICAgICAgICAgICBpc09iamVjdChwYXJlbnRDb25maWdbcHJvcF0pKSB7XG4gICAgICAgICAgICAgICAgLy8gbWFrZSBzdXJlIGNoYW5nZXMgdG8gcHJvcGVydGllcyBkb24ndCBtb2RpZnkgcGFyZW50IGNvbmZpZ1xuICAgICAgICAgICAgICAgIHJlc1twcm9wXSA9IGV4dGVuZCh7fSwgcmVzW3Byb3BdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIExvY2FsZShjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZyAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNldChjb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGtleXM7XG5cbiAgICBpZiAoT2JqZWN0LmtleXMpIHtcbiAgICAgICAga2V5cyA9IE9iamVjdC5rZXlzO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIGtleXMgPSBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICB2YXIgaSwgcmVzID0gW107XG4gICAgICAgICAgICBmb3IgKGkgaW4gb2JqKSB7XG4gICAgICAgICAgICAgICAgaWYgKGhhc093blByb3Aob2JqLCBpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXMucHVzaChpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0Q2FsZW5kYXIgPSB7XG4gICAgICAgIHNhbWVEYXkgOiAnW1RvZGF5IGF0XSBMVCcsXG4gICAgICAgIG5leHREYXkgOiAnW1RvbW9ycm93IGF0XSBMVCcsXG4gICAgICAgIG5leHRXZWVrIDogJ2RkZGQgW2F0XSBMVCcsXG4gICAgICAgIGxhc3REYXkgOiAnW1llc3RlcmRheSBhdF0gTFQnLFxuICAgICAgICBsYXN0V2VlayA6ICdbTGFzdF0gZGRkZCBbYXRdIExUJyxcbiAgICAgICAgc2FtZUVsc2UgOiAnTCdcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gY2FsZW5kYXIgKGtleSwgbW9tLCBub3cpIHtcbiAgICAgICAgdmFyIG91dHB1dCA9IHRoaXMuX2NhbGVuZGFyW2tleV0gfHwgdGhpcy5fY2FsZW5kYXJbJ3NhbWVFbHNlJ107XG4gICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKG91dHB1dCkgPyBvdXRwdXQuY2FsbChtb20sIG5vdykgOiBvdXRwdXQ7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb25nRGF0ZUZvcm1hdCA9IHtcbiAgICAgICAgTFRTICA6ICdoOm1tOnNzIEEnLFxuICAgICAgICBMVCAgIDogJ2g6bW0gQScsXG4gICAgICAgIEwgICAgOiAnTU0vREQvWVlZWScsXG4gICAgICAgIExMICAgOiAnTU1NTSBELCBZWVlZJyxcbiAgICAgICAgTExMICA6ICdNTU1NIEQsIFlZWVkgaDptbSBBJyxcbiAgICAgICAgTExMTCA6ICdkZGRkLCBNTU1NIEQsIFlZWVkgaDptbSBBJ1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBsb25nRGF0ZUZvcm1hdCAoa2V5KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXldLFxuICAgICAgICAgICAgZm9ybWF0VXBwZXIgPSB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXkudG9VcHBlckNhc2UoKV07XG5cbiAgICAgICAgaWYgKGZvcm1hdCB8fCAhZm9ybWF0VXBwZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmb3JtYXQ7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXldID0gZm9ybWF0VXBwZXIucmVwbGFjZSgvTU1NTXxNTXxERHxkZGRkL2csIGZ1bmN0aW9uICh2YWwpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWwuc2xpY2UoMSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLl9sb25nRGF0ZUZvcm1hdFtrZXldO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0SW52YWxpZERhdGUgPSAnSW52YWxpZCBkYXRlJztcblxuICAgIGZ1bmN0aW9uIGludmFsaWREYXRlICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ludmFsaWREYXRlO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0T3JkaW5hbCA9ICclZCc7XG4gICAgdmFyIGRlZmF1bHREYXlPZk1vbnRoT3JkaW5hbFBhcnNlID0gL1xcZHsxLDJ9LztcblxuICAgIGZ1bmN0aW9uIG9yZGluYWwgKG51bWJlcikge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3JkaW5hbC5yZXBsYWNlKCclZCcsIG51bWJlcik7XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRSZWxhdGl2ZVRpbWUgPSB7XG4gICAgICAgIGZ1dHVyZSA6ICdpbiAlcycsXG4gICAgICAgIHBhc3QgICA6ICclcyBhZ28nLFxuICAgICAgICBzICA6ICdhIGZldyBzZWNvbmRzJyxcbiAgICAgICAgc3MgOiAnJWQgc2Vjb25kcycsXG4gICAgICAgIG0gIDogJ2EgbWludXRlJyxcbiAgICAgICAgbW0gOiAnJWQgbWludXRlcycsXG4gICAgICAgIGggIDogJ2FuIGhvdXInLFxuICAgICAgICBoaCA6ICclZCBob3VycycsXG4gICAgICAgIGQgIDogJ2EgZGF5JyxcbiAgICAgICAgZGQgOiAnJWQgZGF5cycsXG4gICAgICAgIE0gIDogJ2EgbW9udGgnLFxuICAgICAgICBNTSA6ICclZCBtb250aHMnLFxuICAgICAgICB5ICA6ICdhIHllYXInLFxuICAgICAgICB5eSA6ICclZCB5ZWFycydcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lIChudW1iZXIsIHdpdGhvdXRTdWZmaXgsIHN0cmluZywgaXNGdXR1cmUpIHtcbiAgICAgICAgdmFyIG91dHB1dCA9IHRoaXMuX3JlbGF0aXZlVGltZVtzdHJpbmddO1xuICAgICAgICByZXR1cm4gKGlzRnVuY3Rpb24ob3V0cHV0KSkgP1xuICAgICAgICAgICAgb3V0cHV0KG51bWJlciwgd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSkgOlxuICAgICAgICAgICAgb3V0cHV0LnJlcGxhY2UoLyVkL2ksIG51bWJlcik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFzdEZ1dHVyZSAoZGlmZiwgb3V0cHV0KSB7XG4gICAgICAgIHZhciBmb3JtYXQgPSB0aGlzLl9yZWxhdGl2ZVRpbWVbZGlmZiA+IDAgPyAnZnV0dXJlJyA6ICdwYXN0J107XG4gICAgICAgIHJldHVybiBpc0Z1bmN0aW9uKGZvcm1hdCkgPyBmb3JtYXQob3V0cHV0KSA6IGZvcm1hdC5yZXBsYWNlKC8lcy9pLCBvdXRwdXQpO1xuICAgIH1cblxuICAgIHZhciBhbGlhc2VzID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRVbml0QWxpYXMgKHVuaXQsIHNob3J0aGFuZCkge1xuICAgICAgICB2YXIgbG93ZXJDYXNlID0gdW5pdC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICBhbGlhc2VzW2xvd2VyQ2FzZV0gPSBhbGlhc2VzW2xvd2VyQ2FzZSArICdzJ10gPSBhbGlhc2VzW3Nob3J0aGFuZF0gPSB1bml0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZVVuaXRzKHVuaXRzKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgdW5pdHMgPT09ICdzdHJpbmcnID8gYWxpYXNlc1t1bml0c10gfHwgYWxpYXNlc1t1bml0cy50b0xvd2VyQ2FzZSgpXSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBub3JtYWxpemVPYmplY3RVbml0cyhpbnB1dE9iamVjdCkge1xuICAgICAgICB2YXIgbm9ybWFsaXplZElucHV0ID0ge30sXG4gICAgICAgICAgICBub3JtYWxpemVkUHJvcCxcbiAgICAgICAgICAgIHByb3A7XG5cbiAgICAgICAgZm9yIChwcm9wIGluIGlucHV0T2JqZWN0KSB7XG4gICAgICAgICAgICBpZiAoaGFzT3duUHJvcChpbnB1dE9iamVjdCwgcHJvcCkpIHtcbiAgICAgICAgICAgICAgICBub3JtYWxpemVkUHJvcCA9IG5vcm1hbGl6ZVVuaXRzKHByb3ApO1xuICAgICAgICAgICAgICAgIGlmIChub3JtYWxpemVkUHJvcCkge1xuICAgICAgICAgICAgICAgICAgICBub3JtYWxpemVkSW5wdXRbbm9ybWFsaXplZFByb3BdID0gaW5wdXRPYmplY3RbcHJvcF07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZWRJbnB1dDtcbiAgICB9XG5cbiAgICB2YXIgcHJpb3JpdGllcyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gYWRkVW5pdFByaW9yaXR5KHVuaXQsIHByaW9yaXR5KSB7XG4gICAgICAgIHByaW9yaXRpZXNbdW5pdF0gPSBwcmlvcml0eTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRQcmlvcml0aXplZFVuaXRzKHVuaXRzT2JqKSB7XG4gICAgICAgIHZhciB1bml0cyA9IFtdO1xuICAgICAgICBmb3IgKHZhciB1IGluIHVuaXRzT2JqKSB7XG4gICAgICAgICAgICB1bml0cy5wdXNoKHt1bml0OiB1LCBwcmlvcml0eTogcHJpb3JpdGllc1t1XX0pO1xuICAgICAgICB9XG4gICAgICAgIHVuaXRzLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgICAgIHJldHVybiBhLnByaW9yaXR5IC0gYi5wcmlvcml0eTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB1bml0cztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB6ZXJvRmlsbChudW1iZXIsIHRhcmdldExlbmd0aCwgZm9yY2VTaWduKSB7XG4gICAgICAgIHZhciBhYnNOdW1iZXIgPSAnJyArIE1hdGguYWJzKG51bWJlciksXG4gICAgICAgICAgICB6ZXJvc1RvRmlsbCA9IHRhcmdldExlbmd0aCAtIGFic051bWJlci5sZW5ndGgsXG4gICAgICAgICAgICBzaWduID0gbnVtYmVyID49IDA7XG4gICAgICAgIHJldHVybiAoc2lnbiA/IChmb3JjZVNpZ24gPyAnKycgOiAnJykgOiAnLScpICtcbiAgICAgICAgICAgIE1hdGgucG93KDEwLCBNYXRoLm1heCgwLCB6ZXJvc1RvRmlsbCkpLnRvU3RyaW5nKCkuc3Vic3RyKDEpICsgYWJzTnVtYmVyO1xuICAgIH1cblxuICAgIHZhciBmb3JtYXR0aW5nVG9rZW5zID0gLyhcXFtbXlxcW10qXFxdKXwoXFxcXCk/KFtIaF1tbShzcyk/fE1vfE1NP00/TT98RG98REREb3xERD9EP0Q/fGRkZD9kP3xkbz98d1tvfHddP3xXW298V10/fFFvP3xZWVlZWVl8WVlZWVl8WVlZWXxZWXxnZyhnZ2c/KT98R0coR0dHPyk/fGV8RXxhfEF8aGg/fEhIP3xraz98bW0/fHNzP3xTezEsOX18eHxYfHp6P3xaWj98LikvZztcblxuICAgIHZhciBsb2NhbEZvcm1hdHRpbmdUb2tlbnMgPSAvKFxcW1teXFxbXSpcXF0pfChcXFxcKT8oTFRTfExUfExMP0w/TD98bHsxLDR9KS9nO1xuXG4gICAgdmFyIGZvcm1hdEZ1bmN0aW9ucyA9IHt9O1xuXG4gICAgdmFyIGZvcm1hdFRva2VuRnVuY3Rpb25zID0ge307XG5cbiAgICAvLyB0b2tlbjogICAgJ00nXG4gICAgLy8gcGFkZGVkOiAgIFsnTU0nLCAyXVxuICAgIC8vIG9yZGluYWw6ICAnTW8nXG4gICAgLy8gY2FsbGJhY2s6IGZ1bmN0aW9uICgpIHsgdGhpcy5tb250aCgpICsgMSB9XG4gICAgZnVuY3Rpb24gYWRkRm9ybWF0VG9rZW4gKHRva2VuLCBwYWRkZWQsIG9yZGluYWwsIGNhbGxiYWNrKSB7XG4gICAgICAgIHZhciBmdW5jID0gY2FsbGJhY2s7XG4gICAgICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBmdW5jID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzW2NhbGxiYWNrXSgpO1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodG9rZW4pIHtcbiAgICAgICAgICAgIGZvcm1hdFRva2VuRnVuY3Rpb25zW3Rva2VuXSA9IGZ1bmM7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhZGRlZCkge1xuICAgICAgICAgICAgZm9ybWF0VG9rZW5GdW5jdGlvbnNbcGFkZGVkWzBdXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gemVyb0ZpbGwoZnVuYy5hcHBseSh0aGlzLCBhcmd1bWVudHMpLCBwYWRkZWRbMV0sIHBhZGRlZFsyXSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcmRpbmFsKSB7XG4gICAgICAgICAgICBmb3JtYXRUb2tlbkZ1bmN0aW9uc1tvcmRpbmFsXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkub3JkaW5hbChmdW5jLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyksIHRva2VuKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW1vdmVGb3JtYXR0aW5nVG9rZW5zKGlucHV0KSB7XG4gICAgICAgIGlmIChpbnB1dC5tYXRjaCgvXFxbW1xcc1xcU10vKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0LnJlcGxhY2UoL15cXFt8XFxdJC9nLCAnJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlucHV0LnJlcGxhY2UoL1xcXFwvZywgJycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1ha2VGb3JtYXRGdW5jdGlvbihmb3JtYXQpIHtcbiAgICAgICAgdmFyIGFycmF5ID0gZm9ybWF0Lm1hdGNoKGZvcm1hdHRpbmdUb2tlbnMpLCBpLCBsZW5ndGg7XG5cbiAgICAgICAgZm9yIChpID0gMCwgbGVuZ3RoID0gYXJyYXkubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXRUb2tlbkZ1bmN0aW9uc1thcnJheVtpXV0pIHtcbiAgICAgICAgICAgICAgICBhcnJheVtpXSA9IGZvcm1hdFRva2VuRnVuY3Rpb25zW2FycmF5W2ldXTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYXJyYXlbaV0gPSByZW1vdmVGb3JtYXR0aW5nVG9rZW5zKGFycmF5W2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAobW9tKSB7XG4gICAgICAgICAgICB2YXIgb3V0cHV0ID0gJycsIGk7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gaXNGdW5jdGlvbihhcnJheVtpXSkgPyBhcnJheVtpXS5jYWxsKG1vbSwgZm9ybWF0KSA6IGFycmF5W2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIG91dHB1dDtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBmb3JtYXQgZGF0ZSB1c2luZyBuYXRpdmUgZGF0ZSBvYmplY3RcbiAgICBmdW5jdGlvbiBmb3JtYXRNb21lbnQobSwgZm9ybWF0KSB7XG4gICAgICAgIGlmICghbS5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBtLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9ybWF0ID0gZXhwYW5kRm9ybWF0KGZvcm1hdCwgbS5sb2NhbGVEYXRhKCkpO1xuICAgICAgICBmb3JtYXRGdW5jdGlvbnNbZm9ybWF0XSA9IGZvcm1hdEZ1bmN0aW9uc1tmb3JtYXRdIHx8IG1ha2VGb3JtYXRGdW5jdGlvbihmb3JtYXQpO1xuXG4gICAgICAgIHJldHVybiBmb3JtYXRGdW5jdGlvbnNbZm9ybWF0XShtKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBleHBhbmRGb3JtYXQoZm9ybWF0LCBsb2NhbGUpIHtcbiAgICAgICAgdmFyIGkgPSA1O1xuXG4gICAgICAgIGZ1bmN0aW9uIHJlcGxhY2VMb25nRGF0ZUZvcm1hdFRva2VucyhpbnB1dCkge1xuICAgICAgICAgICAgcmV0dXJuIGxvY2FsZS5sb25nRGF0ZUZvcm1hdChpbnB1dCkgfHwgaW5wdXQ7XG4gICAgICAgIH1cblxuICAgICAgICBsb2NhbEZvcm1hdHRpbmdUb2tlbnMubGFzdEluZGV4ID0gMDtcbiAgICAgICAgd2hpbGUgKGkgPj0gMCAmJiBsb2NhbEZvcm1hdHRpbmdUb2tlbnMudGVzdChmb3JtYXQpKSB7XG4gICAgICAgICAgICBmb3JtYXQgPSBmb3JtYXQucmVwbGFjZShsb2NhbEZvcm1hdHRpbmdUb2tlbnMsIHJlcGxhY2VMb25nRGF0ZUZvcm1hdFRva2Vucyk7XG4gICAgICAgICAgICBsb2NhbEZvcm1hdHRpbmdUb2tlbnMubGFzdEluZGV4ID0gMDtcbiAgICAgICAgICAgIGkgLT0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmb3JtYXQ7XG4gICAgfVxuXG4gICAgdmFyIG1hdGNoMSAgICAgICAgID0gL1xcZC87ICAgICAgICAgICAgLy8gICAgICAgMCAtIDlcbiAgICB2YXIgbWF0Y2gyICAgICAgICAgPSAvXFxkXFxkLzsgICAgICAgICAgLy8gICAgICAwMCAtIDk5XG4gICAgdmFyIG1hdGNoMyAgICAgICAgID0gL1xcZHszfS87ICAgICAgICAgLy8gICAgIDAwMCAtIDk5OVxuICAgIHZhciBtYXRjaDQgICAgICAgICA9IC9cXGR7NH0vOyAgICAgICAgIC8vICAgIDAwMDAgLSA5OTk5XG4gICAgdmFyIG1hdGNoNiAgICAgICAgID0gL1srLV0/XFxkezZ9LzsgICAgLy8gLTk5OTk5OSAtIDk5OTk5OVxuICAgIHZhciBtYXRjaDF0bzIgICAgICA9IC9cXGRcXGQ/LzsgICAgICAgICAvLyAgICAgICAwIC0gOTlcbiAgICB2YXIgbWF0Y2gzdG80ICAgICAgPSAvXFxkXFxkXFxkXFxkPy87ICAgICAvLyAgICAgOTk5IC0gOTk5OVxuICAgIHZhciBtYXRjaDV0bzYgICAgICA9IC9cXGRcXGRcXGRcXGRcXGRcXGQ/LzsgLy8gICA5OTk5OSAtIDk5OTk5OVxuICAgIHZhciBtYXRjaDF0bzMgICAgICA9IC9cXGR7MSwzfS87ICAgICAgIC8vICAgICAgIDAgLSA5OTlcbiAgICB2YXIgbWF0Y2gxdG80ICAgICAgPSAvXFxkezEsNH0vOyAgICAgICAvLyAgICAgICAwIC0gOTk5OVxuICAgIHZhciBtYXRjaDF0bzYgICAgICA9IC9bKy1dP1xcZHsxLDZ9LzsgIC8vIC05OTk5OTkgLSA5OTk5OTlcblxuICAgIHZhciBtYXRjaFVuc2lnbmVkICA9IC9cXGQrLzsgICAgICAgICAgIC8vICAgICAgIDAgLSBpbmZcbiAgICB2YXIgbWF0Y2hTaWduZWQgICAgPSAvWystXT9cXGQrLzsgICAgICAvLyAgICAtaW5mIC0gaW5mXG5cbiAgICB2YXIgbWF0Y2hPZmZzZXQgICAgPSAvWnxbKy1dXFxkXFxkOj9cXGRcXGQvZ2k7IC8vICswMDowMCAtMDA6MDAgKzAwMDAgLTAwMDAgb3IgWlxuICAgIHZhciBtYXRjaFNob3J0T2Zmc2V0ID0gL1p8WystXVxcZFxcZCg/Ojo/XFxkXFxkKT8vZ2k7IC8vICswMCAtMDAgKzAwOjAwIC0wMDowMCArMDAwMCAtMDAwMCBvciBaXG5cbiAgICB2YXIgbWF0Y2hUaW1lc3RhbXAgPSAvWystXT9cXGQrKFxcLlxcZHsxLDN9KT8vOyAvLyAxMjM0NTY3ODkgMTIzNDU2Nzg5LjEyM1xuXG4gICAgLy8gYW55IHdvcmQgKG9yIHR3bykgY2hhcmFjdGVycyBvciBudW1iZXJzIGluY2x1ZGluZyB0d28vdGhyZWUgd29yZCBtb250aCBpbiBhcmFiaWMuXG4gICAgLy8gaW5jbHVkZXMgc2NvdHRpc2ggZ2FlbGljIHR3byB3b3JkIGFuZCBoeXBoZW5hdGVkIG1vbnRoc1xuICAgIHZhciBtYXRjaFdvcmQgPSAvWzAtOV17MCwyNTZ9WydhLXpcXHUwMEEwLVxcdTA1RkZcXHUwNzAwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGMDdcXHVGRjEwLVxcdUZGRUZdezEsMjU2fXxbXFx1MDYwMC1cXHUwNkZGXFwvXXsxLDI1Nn0oXFxzKj9bXFx1MDYwMC1cXHUwNkZGXXsxLDI1Nn0pezEsMn0vaTtcblxuICAgIHZhciByZWdleGVzID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRSZWdleFRva2VuICh0b2tlbiwgcmVnZXgsIHN0cmljdFJlZ2V4KSB7XG4gICAgICAgIHJlZ2V4ZXNbdG9rZW5dID0gaXNGdW5jdGlvbihyZWdleCkgPyByZWdleCA6IGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuIChpc1N0cmljdCAmJiBzdHJpY3RSZWdleCkgPyBzdHJpY3RSZWdleCA6IHJlZ2V4O1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFBhcnNlUmVnZXhGb3JUb2tlbiAodG9rZW4sIGNvbmZpZykge1xuICAgICAgICBpZiAoIWhhc093blByb3AocmVnZXhlcywgdG9rZW4pKSB7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlZ0V4cCh1bmVzY2FwZUZvcm1hdCh0b2tlbikpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlZ2V4ZXNbdG9rZW5dKGNvbmZpZy5fc3RyaWN0LCBjb25maWcuX2xvY2FsZSk7XG4gICAgfVxuXG4gICAgLy8gQ29kZSBmcm9tIGh0dHA6Ly9zdGFja292ZXJmbG93LmNvbS9xdWVzdGlvbnMvMzU2MTQ5My9pcy10aGVyZS1hLXJlZ2V4cC1lc2NhcGUtZnVuY3Rpb24taW4tamF2YXNjcmlwdFxuICAgIGZ1bmN0aW9uIHVuZXNjYXBlRm9ybWF0KHMpIHtcbiAgICAgICAgcmV0dXJuIHJlZ2V4RXNjYXBlKHMucmVwbGFjZSgnXFxcXCcsICcnKS5yZXBsYWNlKC9cXFxcKFxcWyl8XFxcXChcXF0pfFxcWyhbXlxcXVxcW10qKVxcXXxcXFxcKC4pL2csIGZ1bmN0aW9uIChtYXRjaGVkLCBwMSwgcDIsIHAzLCBwNCkge1xuICAgICAgICAgICAgcmV0dXJuIHAxIHx8IHAyIHx8IHAzIHx8IHA0O1xuICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVnZXhFc2NhcGUocykge1xuICAgICAgICByZXR1cm4gcy5yZXBsYWNlKC9bLVxcL1xcXFxeJCorPy4oKXxbXFxde31dL2csICdcXFxcJCYnKTtcbiAgICB9XG5cbiAgICB2YXIgdG9rZW5zID0ge307XG5cbiAgICBmdW5jdGlvbiBhZGRQYXJzZVRva2VuICh0b2tlbiwgY2FsbGJhY2spIHtcbiAgICAgICAgdmFyIGksIGZ1bmMgPSBjYWxsYmFjaztcbiAgICAgICAgaWYgKHR5cGVvZiB0b2tlbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHRva2VuID0gW3Rva2VuXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNOdW1iZXIoY2FsbGJhY2spKSB7XG4gICAgICAgICAgICBmdW5jID0gZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICAgICAgICAgIGFycmF5W2NhbGxiYWNrXSA9IHRvSW50KGlucHV0KTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgZm9yIChpID0gMDsgaSA8IHRva2VuLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0b2tlbnNbdG9rZW5baV1dID0gZnVuYztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZFdlZWtQYXJzZVRva2VuICh0b2tlbiwgY2FsbGJhY2spIHtcbiAgICAgICAgYWRkUGFyc2VUb2tlbih0b2tlbiwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnLCB0b2tlbikge1xuICAgICAgICAgICAgY29uZmlnLl93ID0gY29uZmlnLl93IHx8IHt9O1xuICAgICAgICAgICAgY2FsbGJhY2soaW5wdXQsIGNvbmZpZy5fdywgY29uZmlnLCB0b2tlbik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZFRpbWVUb0FycmF5RnJvbVRva2VuKHRva2VuLCBpbnB1dCwgY29uZmlnKSB7XG4gICAgICAgIGlmIChpbnB1dCAhPSBudWxsICYmIGhhc093blByb3AodG9rZW5zLCB0b2tlbikpIHtcbiAgICAgICAgICAgIHRva2Vuc1t0b2tlbl0oaW5wdXQsIGNvbmZpZy5fYSwgY29uZmlnLCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgWUVBUiA9IDA7XG4gICAgdmFyIE1PTlRIID0gMTtcbiAgICB2YXIgREFURSA9IDI7XG4gICAgdmFyIEhPVVIgPSAzO1xuICAgIHZhciBNSU5VVEUgPSA0O1xuICAgIHZhciBTRUNPTkQgPSA1O1xuICAgIHZhciBNSUxMSVNFQ09ORCA9IDY7XG4gICAgdmFyIFdFRUsgPSA3O1xuICAgIHZhciBXRUVLREFZID0gODtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdZJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICB2YXIgeSA9IHRoaXMueWVhcigpO1xuICAgICAgICByZXR1cm4geSA8PSA5OTk5ID8gJycgKyB5IDogJysnICsgeTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnWVknLCAyXSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy55ZWFyKCkgJSAxMDA7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1lZWVknLCAgIDRdLCAgICAgICAwLCAneWVhcicpO1xuICAgIGFkZEZvcm1hdFRva2VuKDAsIFsnWVlZWVknLCAgNV0sICAgICAgIDAsICd5ZWFyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydZWVlZWVknLCA2LCB0cnVlXSwgMCwgJ3llYXInKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygneWVhcicsICd5Jyk7XG5cbiAgICAvLyBQUklPUklUSUVTXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3llYXInLCAxKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ1knLCAgICAgIG1hdGNoU2lnbmVkKTtcbiAgICBhZGRSZWdleFRva2VuKCdZWScsICAgICBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignWVlZWScsICAgbWF0Y2gxdG80LCBtYXRjaDQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1lZWVlZJywgIG1hdGNoMXRvNiwgbWF0Y2g2KTtcbiAgICBhZGRSZWdleFRva2VuKCdZWVlZWVknLCBtYXRjaDF0bzYsIG1hdGNoNik7XG5cbiAgICBhZGRQYXJzZVRva2VuKFsnWVlZWVknLCAnWVlZWVlZJ10sIFlFQVIpO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1lZWVknLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W1lFQVJdID0gaW5wdXQubGVuZ3RoID09PSAyID8gaG9va3MucGFyc2VUd29EaWdpdFllYXIoaW5wdXQpIDogdG9JbnQoaW5wdXQpO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ1lZJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtZRUFSXSA9IGhvb2tzLnBhcnNlVHdvRGlnaXRZZWFyKGlucHV0KTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdZJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSkge1xuICAgICAgICBhcnJheVtZRUFSXSA9IHBhcnNlSW50KGlucHV0LCAxMCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICBmdW5jdGlvbiBkYXlzSW5ZZWFyKHllYXIpIHtcbiAgICAgICAgcmV0dXJuIGlzTGVhcFllYXIoeWVhcikgPyAzNjYgOiAzNjU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNMZWFwWWVhcih5ZWFyKSB7XG4gICAgICAgIHJldHVybiAoeWVhciAlIDQgPT09IDAgJiYgeWVhciAlIDEwMCAhPT0gMCkgfHwgeWVhciAlIDQwMCA9PT0gMDtcbiAgICB9XG5cbiAgICAvLyBIT09LU1xuXG4gICAgaG9va3MucGFyc2VUd29EaWdpdFllYXIgPSBmdW5jdGlvbiAoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIHRvSW50KGlucHV0KSArICh0b0ludChpbnB1dCkgPiA2OCA/IDE5MDAgOiAyMDAwKTtcbiAgICB9O1xuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldFllYXIgPSBtYWtlR2V0U2V0KCdGdWxsWWVhcicsIHRydWUpO1xuXG4gICAgZnVuY3Rpb24gZ2V0SXNMZWFwWWVhciAoKSB7XG4gICAgICAgIHJldHVybiBpc0xlYXBZZWFyKHRoaXMueWVhcigpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYWtlR2V0U2V0ICh1bml0LCBrZWVwVGltZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHNldCQxKHRoaXMsIHVuaXQsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywga2VlcFRpbWUpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0KHRoaXMsIHVuaXQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldCAobW9tLCB1bml0KSB7XG4gICAgICAgIHJldHVybiBtb20uaXNWYWxpZCgpID9cbiAgICAgICAgICAgIG1vbS5fZFsnZ2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyB1bml0XSgpIDogTmFOO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldCQxIChtb20sIHVuaXQsIHZhbHVlKSB7XG4gICAgICAgIGlmIChtb20uaXNWYWxpZCgpICYmICFpc05hTih2YWx1ZSkpIHtcbiAgICAgICAgICAgIGlmICh1bml0ID09PSAnRnVsbFllYXInICYmIGlzTGVhcFllYXIobW9tLnllYXIoKSkgJiYgbW9tLm1vbnRoKCkgPT09IDEgJiYgbW9tLmRhdGUoKSA9PT0gMjkpIHtcbiAgICAgICAgICAgICAgICBtb20uX2RbJ3NldCcgKyAobW9tLl9pc1VUQyA/ICdVVEMnIDogJycpICsgdW5pdF0odmFsdWUsIG1vbS5tb250aCgpLCBkYXlzSW5Nb250aCh2YWx1ZSwgbW9tLm1vbnRoKCkpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vbS5fZFsnc2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyB1bml0XSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBzdHJpbmdHZXQgKHVuaXRzKSB7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICBpZiAoaXNGdW5jdGlvbih0aGlzW3VuaXRzXSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzW3VuaXRzXSgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuXG4gICAgZnVuY3Rpb24gc3RyaW5nU2V0ICh1bml0cywgdmFsdWUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiB1bml0cyA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgIHVuaXRzID0gbm9ybWFsaXplT2JqZWN0VW5pdHModW5pdHMpO1xuICAgICAgICAgICAgdmFyIHByaW9yaXRpemVkID0gZ2V0UHJpb3JpdGl6ZWRVbml0cyh1bml0cyk7XG4gICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByaW9yaXRpemVkLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgdGhpc1twcmlvcml0aXplZFtpXS51bml0XSh1bml0c1twcmlvcml0aXplZFtpXS51bml0XSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKHVuaXRzKTtcbiAgICAgICAgICAgIGlmIChpc0Z1bmN0aW9uKHRoaXNbdW5pdHNdKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzW3VuaXRzXSh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW9kKG4sIHgpIHtcbiAgICAgICAgcmV0dXJuICgobiAlIHgpICsgeCkgJSB4O1xuICAgIH1cblxuICAgIHZhciBpbmRleE9mO1xuXG4gICAgaWYgKEFycmF5LnByb3RvdHlwZS5pbmRleE9mKSB7XG4gICAgICAgIGluZGV4T2YgPSBBcnJheS5wcm90b3R5cGUuaW5kZXhPZjtcbiAgICB9IGVsc2Uge1xuICAgICAgICBpbmRleE9mID0gZnVuY3Rpb24gKG8pIHtcbiAgICAgICAgICAgIC8vIEkga25vd1xuICAgICAgICAgICAgdmFyIGk7XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdGhpcy5sZW5ndGg7ICsraSkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzW2ldID09PSBvKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkYXlzSW5Nb250aCh5ZWFyLCBtb250aCkge1xuICAgICAgICBpZiAoaXNOYU4oeWVhcikgfHwgaXNOYU4obW9udGgpKSB7XG4gICAgICAgICAgICByZXR1cm4gTmFOO1xuICAgICAgICB9XG4gICAgICAgIHZhciBtb2RNb250aCA9IG1vZChtb250aCwgMTIpO1xuICAgICAgICB5ZWFyICs9IChtb250aCAtIG1vZE1vbnRoKSAvIDEyO1xuICAgICAgICByZXR1cm4gbW9kTW9udGggPT09IDEgPyAoaXNMZWFwWWVhcih5ZWFyKSA/IDI5IDogMjgpIDogKDMxIC0gbW9kTW9udGggJSA3ICUgMik7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ00nLCBbJ01NJywgMl0sICdNbycsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9udGgoKSArIDE7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignTU1NJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubW9udGhzU2hvcnQodGhpcywgZm9ybWF0KTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdNTU1NJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkubW9udGhzKHRoaXMsIGZvcm1hdCk7XG4gICAgfSk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ21vbnRoJywgJ00nKTtcblxuICAgIC8vIFBSSU9SSVRZXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ21vbnRoJywgOCk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdNJywgICAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdNTScsICAgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ01NTScsICBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLm1vbnRoc1Nob3J0UmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ01NTU0nLCBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLm1vbnRoc1JlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydNJywgJ01NJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbTU9OVEhdID0gdG9JbnQoaW5wdXQpIC0gMTtcbiAgICB9KTtcblxuICAgIGFkZFBhcnNlVG9rZW4oWydNTU0nLCAnTU1NTSddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHZhciBtb250aCA9IGNvbmZpZy5fbG9jYWxlLm1vbnRoc1BhcnNlKGlucHV0LCB0b2tlbiwgY29uZmlnLl9zdHJpY3QpO1xuICAgICAgICAvLyBpZiB3ZSBkaWRuJ3QgZmluZCBhIG1vbnRoIG5hbWUsIG1hcmsgdGhlIGRhdGUgYXMgaW52YWxpZC5cbiAgICAgICAgaWYgKG1vbnRoICE9IG51bGwpIHtcbiAgICAgICAgICAgIGFycmF5W01PTlRIXSA9IG1vbnRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuaW52YWxpZE1vbnRoID0gaW5wdXQ7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIExPQ0FMRVNcblxuICAgIHZhciBNT05USFNfSU5fRk9STUFUID0gL0Rbb0RdPyhcXFtbXlxcW1xcXV0qXFxdfFxccykrTU1NTT8vO1xuICAgIHZhciBkZWZhdWx0TG9jYWxlTW9udGhzID0gJ0phbnVhcnlfRmVicnVhcnlfTWFyY2hfQXByaWxfTWF5X0p1bmVfSnVseV9BdWd1c3RfU2VwdGVtYmVyX09jdG9iZXJfTm92ZW1iZXJfRGVjZW1iZXInLnNwbGl0KCdfJyk7XG4gICAgZnVuY3Rpb24gbG9jYWxlTW9udGhzIChtLCBmb3JtYXQpIHtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl9tb250aHMpID8gdGhpcy5fbW9udGhzIDpcbiAgICAgICAgICAgICAgICB0aGlzLl9tb250aHNbJ3N0YW5kYWxvbmUnXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl9tb250aHMpID8gdGhpcy5fbW9udGhzW20ubW9udGgoKV0gOlxuICAgICAgICAgICAgdGhpcy5fbW9udGhzWyh0aGlzLl9tb250aHMuaXNGb3JtYXQgfHwgTU9OVEhTX0lOX0ZPUk1BVCkudGVzdChmb3JtYXQpID8gJ2Zvcm1hdCcgOiAnc3RhbmRhbG9uZSddW20ubW9udGgoKV07XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVNb250aHNTaG9ydCA9ICdKYW5fRmViX01hcl9BcHJfTWF5X0p1bl9KdWxfQXVnX1NlcF9PY3RfTm92X0RlYycuc3BsaXQoJ18nKTtcbiAgICBmdW5jdGlvbiBsb2NhbGVNb250aHNTaG9ydCAobSwgZm9ybWF0KSB7XG4gICAgICAgIGlmICghbSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fbW9udGhzU2hvcnQpID8gdGhpcy5fbW9udGhzU2hvcnQgOlxuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1Nob3J0WydzdGFuZGFsb25lJ107XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQXJyYXkodGhpcy5fbW9udGhzU2hvcnQpID8gdGhpcy5fbW9udGhzU2hvcnRbbS5tb250aCgpXSA6XG4gICAgICAgICAgICB0aGlzLl9tb250aHNTaG9ydFtNT05USFNfSU5fRk9STUFULnRlc3QoZm9ybWF0KSA/ICdmb3JtYXQnIDogJ3N0YW5kYWxvbmUnXVttLm1vbnRoKCldO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhbmRsZVN0cmljdFBhcnNlKG1vbnRoTmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksIGlpLCBtb20sIGxsYyA9IG1vbnRoTmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoIXRoaXMuX21vbnRoc1BhcnNlKSB7XG4gICAgICAgICAgICAvLyB0aGlzIGlzIG5vdCB1c2VkXG4gICAgICAgICAgICB0aGlzLl9tb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlID0gW107XG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7ICsraSkge1xuICAgICAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgaV0pO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Nob3J0TW9udGhzUGFyc2VbaV0gPSB0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldID0gdGhpcy5tb250aHMobW9tLCAnJykudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdNTU0nKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9sb25nTW9udGhzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdNTU0nKSB7XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbG9uZ01vbnRoc1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX2xvbmdNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fc2hvcnRNb250aHNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlTW9udGhzUGFyc2UgKG1vbnRoTmFtZSwgZm9ybWF0LCBzdHJpY3QpIHtcbiAgICAgICAgdmFyIGksIG1vbSwgcmVnZXg7XG5cbiAgICAgICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIHJldHVybiBoYW5kbGVTdHJpY3RQYXJzZS5jYWxsKHRoaXMsIG1vbnRoTmFtZSwgZm9ybWF0LCBzdHJpY3QpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLl9tb250aHNQYXJzZSkge1xuICAgICAgICAgICAgdGhpcy5fbW9udGhzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX2xvbmdNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZSA9IFtdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gVE9ETzogYWRkIHNvcnRpbmdcbiAgICAgICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSBtb250aCAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlclxuICAgICAgICAvLyBzZWUgc29ydGluZyBpbiBjb21wdXRlTW9udGhzUGFyc2VcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCBpXSk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmICF0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9sb25nTW9udGhzUGFyc2VbaV0gPSBuZXcgUmVnRXhwKCdeJyArIHRoaXMubW9udGhzKG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnJykgKyAnJCcsICdpJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRNb250aHNQYXJzZVtpXSA9IG5ldyBSZWdFeHAoJ14nICsgdGhpcy5tb250aHNTaG9ydChtb20sICcnKS5yZXBsYWNlKCcuJywgJycpICsgJyQnLCAnaScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCFzdHJpY3QgJiYgIXRoaXMuX21vbnRoc1BhcnNlW2ldKSB7XG4gICAgICAgICAgICAgICAgcmVnZXggPSAnXicgKyB0aGlzLm1vbnRocyhtb20sICcnKSArICd8XicgKyB0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpO1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1BhcnNlW2ldID0gbmV3IFJlZ0V4cChyZWdleC5yZXBsYWNlKCcuJywgJycpLCAnaScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gdGVzdCB0aGUgcmVnZXhcbiAgICAgICAgICAgIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnTU1NTScgJiYgdGhpcy5fbG9uZ01vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnTU1NJyAmJiB0aGlzLl9zaG9ydE1vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICghc3RyaWN0ICYmIHRoaXMuX21vbnRoc1BhcnNlW2ldLnRlc3QobW9udGhOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gc2V0TW9udGggKG1vbSwgdmFsdWUpIHtcbiAgICAgICAgdmFyIGRheU9mTW9udGg7XG5cbiAgICAgICAgaWYgKCFtb20uaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAvLyBObyBvcFxuICAgICAgICAgICAgcmV0dXJuIG1vbTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICBpZiAoL15cXGQrJC8udGVzdCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IHRvSW50KHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSBtb20ubG9jYWxlRGF0YSgpLm1vbnRoc1BhcnNlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAvLyBUT0RPOiBBbm90aGVyIHNpbGVudCBmYWlsdXJlP1xuICAgICAgICAgICAgICAgIGlmICghaXNOdW1iZXIodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBtb207XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZGF5T2ZNb250aCA9IE1hdGgubWluKG1vbS5kYXRlKCksIGRheXNJbk1vbnRoKG1vbS55ZWFyKCksIHZhbHVlKSk7XG4gICAgICAgIG1vbS5fZFsnc2V0JyArIChtb20uX2lzVVRDID8gJ1VUQycgOiAnJykgKyAnTW9udGgnXSh2YWx1ZSwgZGF5T2ZNb250aCk7XG4gICAgICAgIHJldHVybiBtb207XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0TW9udGggKHZhbHVlKSB7XG4gICAgICAgIGlmICh2YWx1ZSAhPSBudWxsKSB7XG4gICAgICAgICAgICBzZXRNb250aCh0aGlzLCB2YWx1ZSk7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQodGhpcywgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBnZXQodGhpcywgJ01vbnRoJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXREYXlzSW5Nb250aCAoKSB7XG4gICAgICAgIHJldHVybiBkYXlzSW5Nb250aCh0aGlzLnllYXIoKSwgdGhpcy5tb250aCgpKTtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdE1vbnRoc1Nob3J0UmVnZXggPSBtYXRjaFdvcmQ7XG4gICAgZnVuY3Rpb24gbW9udGhzU2hvcnRSZWdleCAoaXNTdHJpY3QpIHtcbiAgICAgICAgaWYgKHRoaXMuX21vbnRoc1BhcnNlRXhhY3QpIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlTW9udGhzUGFyc2UuY2FsbCh0aGlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChpc1N0cmljdCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1Nob3J0UmVnZXgnKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX21vbnRoc1Nob3J0UmVnZXggPSBkZWZhdWx0TW9udGhzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4ICYmIGlzU3RyaWN0ID9cbiAgICAgICAgICAgICAgICB0aGlzLl9tb250aHNTaG9ydFN0cmljdFJlZ2V4IDogdGhpcy5fbW9udGhzU2hvcnRSZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TW9udGhzUmVnZXggPSBtYXRjaFdvcmQ7XG4gICAgZnVuY3Rpb24gbW9udGhzUmVnZXggKGlzU3RyaWN0KSB7XG4gICAgICAgIGlmICh0aGlzLl9tb250aHNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ19tb250aHNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgY29tcHV0ZU1vbnRoc1BhcnNlLmNhbGwodGhpcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoaXNTdHJpY3QpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fbW9udGhzU3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX21vbnRoc1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tb250aHNSZWdleCA9IGRlZmF1bHRNb250aHNSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9tb250aHNTdHJpY3RSZWdleCAmJiBpc1N0cmljdCA/XG4gICAgICAgICAgICAgICAgdGhpcy5fbW9udGhzU3RyaWN0UmVnZXggOiB0aGlzLl9tb250aHNSZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNvbXB1dGVNb250aHNQYXJzZSAoKSB7XG4gICAgICAgIGZ1bmN0aW9uIGNtcExlblJldihhLCBiKSB7XG4gICAgICAgICAgICByZXR1cm4gYi5sZW5ndGggLSBhLmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzaG9ydFBpZWNlcyA9IFtdLCBsb25nUGllY2VzID0gW10sIG1peGVkUGllY2VzID0gW10sXG4gICAgICAgICAgICBpLCBtb207XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAxMjsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcbiAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgaV0pO1xuICAgICAgICAgICAgc2hvcnRQaWVjZXMucHVzaCh0aGlzLm1vbnRoc1Nob3J0KG1vbSwgJycpKTtcbiAgICAgICAgICAgIGxvbmdQaWVjZXMucHVzaCh0aGlzLm1vbnRocyhtb20sICcnKSk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlcy5wdXNoKHRoaXMubW9udGhzKG1vbSwgJycpKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2godGhpcy5tb250aHNTaG9ydChtb20sICcnKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gU29ydGluZyBtYWtlcyBzdXJlIGlmIG9uZSBtb250aCAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlciBpdFxuICAgICAgICAvLyB3aWxsIG1hdGNoIHRoZSBsb25nZXIgcGllY2UuXG4gICAgICAgIHNob3J0UGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbG9uZ1BpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIG1peGVkUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDEyOyBpKyspIHtcbiAgICAgICAgICAgIHNob3J0UGllY2VzW2ldID0gcmVnZXhFc2NhcGUoc2hvcnRQaWVjZXNbaV0pO1xuICAgICAgICAgICAgbG9uZ1BpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKGxvbmdQaWVjZXNbaV0pO1xuICAgICAgICB9XG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAyNDsgaSsrKSB7XG4gICAgICAgICAgICBtaXhlZFBpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKG1peGVkUGllY2VzW2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX21vbnRoc1JlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbWl4ZWRQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl9tb250aHNTaG9ydFJlZ2V4ID0gdGhpcy5fbW9udGhzUmVnZXg7XG4gICAgICAgIHRoaXMuX21vbnRoc1N0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbG9uZ1BpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX21vbnRoc1Nob3J0U3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBzaG9ydFBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlRGF0ZSAoeSwgbSwgZCwgaCwgTSwgcywgbXMpIHtcbiAgICAgICAgLy8gY2FuJ3QganVzdCBhcHBseSgpIHRvIGNyZWF0ZSBhIGRhdGU6XG4gICAgICAgIC8vIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8xODEzNDhcbiAgICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZSh5LCBtLCBkLCBoLCBNLCBzLCBtcyk7XG5cbiAgICAgICAgLy8gdGhlIGRhdGUgY29uc3RydWN0b3IgcmVtYXBzIHllYXJzIDAtOTkgdG8gMTkwMC0xOTk5XG4gICAgICAgIGlmICh5IDwgMTAwICYmIHkgPj0gMCAmJiBpc0Zpbml0ZShkYXRlLmdldEZ1bGxZZWFyKCkpKSB7XG4gICAgICAgICAgICBkYXRlLnNldEZ1bGxZZWFyKHkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZVVUQ0RhdGUgKHkpIHtcbiAgICAgICAgdmFyIGRhdGUgPSBuZXcgRGF0ZShEYXRlLlVUQy5hcHBseShudWxsLCBhcmd1bWVudHMpKTtcblxuICAgICAgICAvLyB0aGUgRGF0ZS5VVEMgZnVuY3Rpb24gcmVtYXBzIHllYXJzIDAtOTkgdG8gMTkwMC0xOTk5XG4gICAgICAgIGlmICh5IDwgMTAwICYmIHkgPj0gMCAmJiBpc0Zpbml0ZShkYXRlLmdldFVUQ0Z1bGxZZWFyKCkpKSB7XG4gICAgICAgICAgICBkYXRlLnNldFVUQ0Z1bGxZZWFyKHkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkYXRlO1xuICAgIH1cblxuICAgIC8vIHN0YXJ0LW9mLWZpcnN0LXdlZWsgLSBzdGFydC1vZi15ZWFyXG4gICAgZnVuY3Rpb24gZmlyc3RXZWVrT2Zmc2V0KHllYXIsIGRvdywgZG95KSB7XG4gICAgICAgIHZhciAvLyBmaXJzdC13ZWVrIGRheSAtLSB3aGljaCBqYW51YXJ5IGlzIGFsd2F5cyBpbiB0aGUgZmlyc3Qgd2VlayAoNCBmb3IgaXNvLCAxIGZvciBvdGhlcilcbiAgICAgICAgICAgIGZ3ZCA9IDcgKyBkb3cgLSBkb3ksXG4gICAgICAgICAgICAvLyBmaXJzdC13ZWVrIGRheSBsb2NhbCB3ZWVrZGF5IC0tIHdoaWNoIGxvY2FsIHdlZWtkYXkgaXMgZndkXG4gICAgICAgICAgICBmd2RsdyA9ICg3ICsgY3JlYXRlVVRDRGF0ZSh5ZWFyLCAwLCBmd2QpLmdldFVUQ0RheSgpIC0gZG93KSAlIDc7XG5cbiAgICAgICAgcmV0dXJuIC1md2RsdyArIGZ3ZCAtIDE7XG4gICAgfVxuXG4gICAgLy8gaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvSVNPX3dlZWtfZGF0ZSNDYWxjdWxhdGluZ19hX2RhdGVfZ2l2ZW5fdGhlX3llYXIuMkNfd2Vla19udW1iZXJfYW5kX3dlZWtkYXlcbiAgICBmdW5jdGlvbiBkYXlPZlllYXJGcm9tV2Vla3MoeWVhciwgd2Vlaywgd2Vla2RheSwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIGxvY2FsV2Vla2RheSA9ICg3ICsgd2Vla2RheSAtIGRvdykgJSA3LFxuICAgICAgICAgICAgd2Vla09mZnNldCA9IGZpcnN0V2Vla09mZnNldCh5ZWFyLCBkb3csIGRveSksXG4gICAgICAgICAgICBkYXlPZlllYXIgPSAxICsgNyAqICh3ZWVrIC0gMSkgKyBsb2NhbFdlZWtkYXkgKyB3ZWVrT2Zmc2V0LFxuICAgICAgICAgICAgcmVzWWVhciwgcmVzRGF5T2ZZZWFyO1xuXG4gICAgICAgIGlmIChkYXlPZlllYXIgPD0gMCkge1xuICAgICAgICAgICAgcmVzWWVhciA9IHllYXIgLSAxO1xuICAgICAgICAgICAgcmVzRGF5T2ZZZWFyID0gZGF5c0luWWVhcihyZXNZZWFyKSArIGRheU9mWWVhcjtcbiAgICAgICAgfSBlbHNlIGlmIChkYXlPZlllYXIgPiBkYXlzSW5ZZWFyKHllYXIpKSB7XG4gICAgICAgICAgICByZXNZZWFyID0geWVhciArIDE7XG4gICAgICAgICAgICByZXNEYXlPZlllYXIgPSBkYXlPZlllYXIgLSBkYXlzSW5ZZWFyKHllYXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzWWVhciA9IHllYXI7XG4gICAgICAgICAgICByZXNEYXlPZlllYXIgPSBkYXlPZlllYXI7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeWVhcjogcmVzWWVhcixcbiAgICAgICAgICAgIGRheU9mWWVhcjogcmVzRGF5T2ZZZWFyXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Vla09mWWVhcihtb20sIGRvdywgZG95KSB7XG4gICAgICAgIHZhciB3ZWVrT2Zmc2V0ID0gZmlyc3RXZWVrT2Zmc2V0KG1vbS55ZWFyKCksIGRvdywgZG95KSxcbiAgICAgICAgICAgIHdlZWsgPSBNYXRoLmZsb29yKChtb20uZGF5T2ZZZWFyKCkgLSB3ZWVrT2Zmc2V0IC0gMSkgLyA3KSArIDEsXG4gICAgICAgICAgICByZXNXZWVrLCByZXNZZWFyO1xuXG4gICAgICAgIGlmICh3ZWVrIDwgMSkge1xuICAgICAgICAgICAgcmVzWWVhciA9IG1vbS55ZWFyKCkgLSAxO1xuICAgICAgICAgICAgcmVzV2VlayA9IHdlZWsgKyB3ZWVrc0luWWVhcihyZXNZZWFyLCBkb3csIGRveSk7XG4gICAgICAgIH0gZWxzZSBpZiAod2VlayA+IHdlZWtzSW5ZZWFyKG1vbS55ZWFyKCksIGRvdywgZG95KSkge1xuICAgICAgICAgICAgcmVzV2VlayA9IHdlZWsgLSB3ZWVrc0luWWVhcihtb20ueWVhcigpLCBkb3csIGRveSk7XG4gICAgICAgICAgICByZXNZZWFyID0gbW9tLnllYXIoKSArIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXNZZWFyID0gbW9tLnllYXIoKTtcbiAgICAgICAgICAgIHJlc1dlZWsgPSB3ZWVrO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHdlZWs6IHJlc1dlZWssXG4gICAgICAgICAgICB5ZWFyOiByZXNZZWFyXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd2Vla3NJblllYXIoeWVhciwgZG93LCBkb3kpIHtcbiAgICAgICAgdmFyIHdlZWtPZmZzZXQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciwgZG93LCBkb3kpLFxuICAgICAgICAgICAgd2Vla09mZnNldE5leHQgPSBmaXJzdFdlZWtPZmZzZXQoeWVhciArIDEsIGRvdywgZG95KTtcbiAgICAgICAgcmV0dXJuIChkYXlzSW5ZZWFyKHllYXIpIC0gd2Vla09mZnNldCArIHdlZWtPZmZzZXROZXh0KSAvIDc7XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ3cnLCBbJ3d3JywgMl0sICd3bycsICd3ZWVrJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ1cnLCBbJ1dXJywgMl0sICdXbycsICdpc29XZWVrJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3dlZWsnLCAndycpO1xuICAgIGFkZFVuaXRBbGlhcygnaXNvV2VlaycsICdXJyk7XG5cbiAgICAvLyBQUklPUklUSUVTXG5cbiAgICBhZGRVbml0UHJpb3JpdHkoJ3dlZWsnLCA1KTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2lzb1dlZWsnLCA1KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ3cnLCAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCd3dycsIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdXJywgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignV1cnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG5cbiAgICBhZGRXZWVrUGFyc2VUb2tlbihbJ3cnLCAnd3cnLCAnVycsICdXVyddLCBmdW5jdGlvbiAoaW5wdXQsIHdlZWssIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgd2Vla1t0b2tlbi5zdWJzdHIoMCwgMSldID0gdG9JbnQoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgLy8gTE9DQUxFU1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlV2VlayAobW9tKSB7XG4gICAgICAgIHJldHVybiB3ZWVrT2ZZZWFyKG1vbSwgdGhpcy5fd2Vlay5kb3csIHRoaXMuX3dlZWsuZG95KS53ZWVrO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TG9jYWxlV2VlayA9IHtcbiAgICAgICAgZG93IDogMCwgLy8gU3VuZGF5IGlzIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICAgIGRveSA6IDYgIC8vIFRoZSB3ZWVrIHRoYXQgY29udGFpbnMgSmFuIDFzdCBpcyB0aGUgZmlyc3Qgd2VlayBvZiB0aGUgeWVhci5cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlRmlyc3REYXlPZldlZWsgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2Vlay5kb3c7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9jYWxlRmlyc3REYXlPZlllYXIgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2Vlay5kb3k7XG4gICAgfVxuXG4gICAgLy8gTU9NRU5UU1xuXG4gICAgZnVuY3Rpb24gZ2V0U2V0V2VlayAoaW5wdXQpIHtcbiAgICAgICAgdmFyIHdlZWsgPSB0aGlzLmxvY2FsZURhdGEoKS53ZWVrKHRoaXMpO1xuICAgICAgICByZXR1cm4gaW5wdXQgPT0gbnVsbCA/IHdlZWsgOiB0aGlzLmFkZCgoaW5wdXQgLSB3ZWVrKSAqIDcsICdkJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0SVNPV2VlayAoaW5wdXQpIHtcbiAgICAgICAgdmFyIHdlZWsgPSB3ZWVrT2ZZZWFyKHRoaXMsIDEsIDQpLndlZWs7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gd2VlayA6IHRoaXMuYWRkKChpbnB1dCAtIHdlZWspICogNywgJ2QnKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignZCcsIDAsICdkbycsICdkYXknKTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdkZCcsIDAsIDAsIGZ1bmN0aW9uIChmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLndlZWtkYXlzTWluKHRoaXMsIGZvcm1hdCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignZGRkJywgMCwgMCwgZnVuY3Rpb24gKGZvcm1hdCkge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkud2Vla2RheXNTaG9ydCh0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2RkZGQnLCAwLCAwLCBmdW5jdGlvbiAoZm9ybWF0KSB7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS53ZWVrZGF5cyh0aGlzLCBmb3JtYXQpO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2UnLCAwLCAwLCAnd2Vla2RheScpO1xuICAgIGFkZEZvcm1hdFRva2VuKCdFJywgMCwgMCwgJ2lzb1dlZWtkYXknKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnZGF5JywgJ2QnKTtcbiAgICBhZGRVbml0QWxpYXMoJ3dlZWtkYXknLCAnZScpO1xuICAgIGFkZFVuaXRBbGlhcygnaXNvV2Vla2RheScsICdFJyk7XG5cbiAgICAvLyBQUklPUklUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnZGF5JywgMTEpO1xuICAgIGFkZFVuaXRQcmlvcml0eSgnd2Vla2RheScsIDExKTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2lzb1dlZWtkYXknLCAxMSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdkJywgICAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdlJywgICAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdFJywgICAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdkZCcsICAgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS53ZWVrZGF5c01pblJlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcbiAgICBhZGRSZWdleFRva2VuKCdkZGQnLCAgIGZ1bmN0aW9uIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUud2Vla2RheXNTaG9ydFJlZ2V4KGlzU3RyaWN0KTtcbiAgICB9KTtcbiAgICBhZGRSZWdleFRva2VuKCdkZGRkJywgICBmdW5jdGlvbiAoaXNTdHJpY3QsIGxvY2FsZSkge1xuICAgICAgICByZXR1cm4gbG9jYWxlLndlZWtkYXlzUmVnZXgoaXNTdHJpY3QpO1xuICAgIH0pO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWydkZCcsICdkZGQnLCAnZGRkZCddLCBmdW5jdGlvbiAoaW5wdXQsIHdlZWssIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgdmFyIHdlZWtkYXkgPSBjb25maWcuX2xvY2FsZS53ZWVrZGF5c1BhcnNlKGlucHV0LCB0b2tlbiwgY29uZmlnLl9zdHJpY3QpO1xuICAgICAgICAvLyBpZiB3ZSBkaWRuJ3QgZ2V0IGEgd2Vla2RheSBuYW1lLCBtYXJrIHRoZSBkYXRlIGFzIGludmFsaWRcbiAgICAgICAgaWYgKHdlZWtkYXkgIT0gbnVsbCkge1xuICAgICAgICAgICAgd2Vlay5kID0gd2Vla2RheTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLmludmFsaWRXZWVrZGF5ID0gaW5wdXQ7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIGFkZFdlZWtQYXJzZVRva2VuKFsnZCcsICdlJywgJ0UnXSwgZnVuY3Rpb24gKGlucHV0LCB3ZWVrLCBjb25maWcsIHRva2VuKSB7XG4gICAgICAgIHdlZWtbdG9rZW5dID0gdG9JbnQoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgLy8gSEVMUEVSU1xuXG4gICAgZnVuY3Rpb24gcGFyc2VXZWVrZGF5KGlucHV0LCBsb2NhbGUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghaXNOYU4oaW5wdXQpKSB7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VJbnQoaW5wdXQsIDEwKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlucHV0ID0gbG9jYWxlLndlZWtkYXlzUGFyc2UoaW5wdXQpO1xuICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcGFyc2VJc29XZWVrZGF5KGlucHV0LCBsb2NhbGUpIHtcbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiBsb2NhbGUud2Vla2RheXNQYXJzZShpbnB1dCkgJSA3IHx8IDc7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzTmFOKGlucHV0KSA/IG51bGwgOiBpbnB1dDtcbiAgICB9XG5cbiAgICAvLyBMT0NBTEVTXG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZVdlZWtkYXlzID0gJ1N1bmRheV9Nb25kYXlfVHVlc2RheV9XZWRuZXNkYXlfVGh1cnNkYXlfRnJpZGF5X1NhdHVyZGF5Jy5zcGxpdCgnXycpO1xuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWtkYXlzIChtLCBmb3JtYXQpIHtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl93ZWVrZGF5cykgPyB0aGlzLl93ZWVrZGF5cyA6XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNbJ3N0YW5kYWxvbmUnXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gaXNBcnJheSh0aGlzLl93ZWVrZGF5cykgPyB0aGlzLl93ZWVrZGF5c1ttLmRheSgpXSA6XG4gICAgICAgICAgICB0aGlzLl93ZWVrZGF5c1t0aGlzLl93ZWVrZGF5cy5pc0Zvcm1hdC50ZXN0KGZvcm1hdCkgPyAnZm9ybWF0JyA6ICdzdGFuZGFsb25lJ11bbS5kYXkoKV07XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRMb2NhbGVXZWVrZGF5c1Nob3J0ID0gJ1N1bl9Nb25fVHVlX1dlZF9UaHVfRnJpX1NhdCcuc3BsaXQoJ18nKTtcbiAgICBmdW5jdGlvbiBsb2NhbGVXZWVrZGF5c1Nob3J0IChtKSB7XG4gICAgICAgIHJldHVybiAobSkgPyB0aGlzLl93ZWVrZGF5c1Nob3J0W20uZGF5KCldIDogdGhpcy5fd2Vla2RheXNTaG9ydDtcbiAgICB9XG5cbiAgICB2YXIgZGVmYXVsdExvY2FsZVdlZWtkYXlzTWluID0gJ1N1X01vX1R1X1dlX1RoX0ZyX1NhJy5zcGxpdCgnXycpO1xuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWtkYXlzTWluIChtKSB7XG4gICAgICAgIHJldHVybiAobSkgPyB0aGlzLl93ZWVrZGF5c01pblttLmRheSgpXSA6IHRoaXMuX3dlZWtkYXlzTWluO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhbmRsZVN0cmljdFBhcnNlJDEod2Vla2RheU5hbWUsIGZvcm1hdCwgc3RyaWN0KSB7XG4gICAgICAgIHZhciBpLCBpaSwgbW9tLCBsbGMgPSB3ZWVrZGF5TmFtZS50b0xvY2FsZUxvd2VyQ2FzZSgpO1xuICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fbWluV2Vla2RheXNQYXJzZSA9IFtdO1xuXG4gICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgKytpKSB7XG4gICAgICAgICAgICAgICAgbW9tID0gY3JlYXRlVVRDKFsyMDAwLCAxXSkuZGF5KGkpO1xuICAgICAgICAgICAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2VbaV0gPSB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW2ldID0gdGhpcy53ZWVrZGF5c1Nob3J0KG1vbSwgJycpLnRvTG9jYWxlTG93ZXJDYXNlKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZVtpXSA9IHRoaXMud2Vla2RheXMobW9tLCAnJykudG9Mb2NhbGVMb3dlckNhc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChzdHJpY3QpIHtcbiAgICAgICAgICAgIGlmIChmb3JtYXQgPT09ICdkZGRkJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3dlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnZGRkJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIHJldHVybiBpaSAhPT0gLTEgPyBpaSA6IG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoZm9ybWF0ID09PSAnZGRkZCcpIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgaWYgKGlpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaWk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX21pbldlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0ID09PSAnZGRkJykge1xuICAgICAgICAgICAgICAgIGlpID0gaW5kZXhPZi5jYWxsKHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fd2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICBpZiAoaWkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpaTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWkgPSBpbmRleE9mLmNhbGwodGhpcy5fbWluV2Vla2RheXNQYXJzZSwgbGxjKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gaWkgIT09IC0xID8gaWkgOiBudWxsO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9taW5XZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl93ZWVrZGF5c1BhcnNlLCBsbGMpO1xuICAgICAgICAgICAgICAgIGlmIChpaSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGlpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpaSA9IGluZGV4T2YuY2FsbCh0aGlzLl9zaG9ydFdlZWtkYXlzUGFyc2UsIGxsYyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlpICE9PSAtMSA/IGlpIDogbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxvY2FsZVdlZWtkYXlzUGFyc2UgKHdlZWtkYXlOYW1lLCBmb3JtYXQsIHN0cmljdCkge1xuICAgICAgICB2YXIgaSwgbW9tLCByZWdleDtcblxuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICByZXR1cm4gaGFuZGxlU3RyaWN0UGFyc2UkMS5jYWxsKHRoaXMsIHdlZWtkYXlOYW1lLCBmb3JtYXQsIHN0cmljdCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2UpIHtcbiAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX21pbldlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgICAgIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZSA9IFtdO1xuICAgICAgICAgICAgdGhpcy5fZnVsbFdlZWtkYXlzUGFyc2UgPSBbXTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIC8vIG1ha2UgdGhlIHJlZ2V4IGlmIHdlIGRvbid0IGhhdmUgaXQgYWxyZWFkeVxuXG4gICAgICAgICAgICBtb20gPSBjcmVhdGVVVEMoWzIwMDAsIDFdKS5kYXkoaSk7XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmICF0aGlzLl9mdWxsV2Vla2RheXNQYXJzZVtpXSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cCgnXicgKyB0aGlzLndlZWtkYXlzKG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnXFxcXC4/JykgKyAnJCcsICdpJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2hvcnRXZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cCgnXicgKyB0aGlzLndlZWtkYXlzU2hvcnQobW9tLCAnJykucmVwbGFjZSgnLicsICdcXFxcLj8nKSArICckJywgJ2knKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9taW5XZWVrZGF5c1BhcnNlW2ldID0gbmV3IFJlZ0V4cCgnXicgKyB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpLnJlcGxhY2UoJy4nLCAnXFxcXC4/JykgKyAnJCcsICdpJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuX3dlZWtkYXlzUGFyc2VbaV0pIHtcbiAgICAgICAgICAgICAgICByZWdleCA9ICdeJyArIHRoaXMud2Vla2RheXMobW9tLCAnJykgKyAnfF4nICsgdGhpcy53ZWVrZGF5c1Nob3J0KG1vbSwgJycpICsgJ3xeJyArIHRoaXMud2Vla2RheXNNaW4obW9tLCAnJyk7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNQYXJzZVtpXSA9IG5ldyBSZWdFeHAocmVnZXgucmVwbGFjZSgnLicsICcnKSwgJ2knKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHRlc3QgdGhlIHJlZ2V4XG4gICAgICAgICAgICBpZiAoc3RyaWN0ICYmIGZvcm1hdCA9PT0gJ2RkZGQnICYmIHRoaXMuX2Z1bGxXZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0cmljdCAmJiBmb3JtYXQgPT09ICdkZGQnICYmIHRoaXMuX3Nob3J0V2Vla2RheXNQYXJzZVtpXS50ZXN0KHdlZWtkYXlOYW1lKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdHJpY3QgJiYgZm9ybWF0ID09PSAnZGQnICYmIHRoaXMuX21pbldlZWtkYXlzUGFyc2VbaV0udGVzdCh3ZWVrZGF5TmFtZSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gaTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXN0cmljdCAmJiB0aGlzLl93ZWVrZGF5c1BhcnNlW2ldLnRlc3Qod2Vla2RheU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRTZXREYXlPZldlZWsgKGlucHV0KSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dCAhPSBudWxsID8gdGhpcyA6IE5hTjtcbiAgICAgICAgfVxuICAgICAgICB2YXIgZGF5ID0gdGhpcy5faXNVVEMgPyB0aGlzLl9kLmdldFVUQ0RheSgpIDogdGhpcy5fZC5nZXREYXkoKTtcbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlucHV0ID0gcGFyc2VXZWVrZGF5KGlucHV0LCB0aGlzLmxvY2FsZURhdGEoKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hZGQoaW5wdXQgLSBkYXksICdkJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gZGF5O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0TG9jYWxlRGF5T2ZXZWVrIChpbnB1dCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gaW5wdXQgIT0gbnVsbCA/IHRoaXMgOiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHdlZWtkYXkgPSAodGhpcy5kYXkoKSArIDcgLSB0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3cpICUgNztcbiAgICAgICAgcmV0dXJuIGlucHV0ID09IG51bGwgPyB3ZWVrZGF5IDogdGhpcy5hZGQoaW5wdXQgLSB3ZWVrZGF5LCAnZCcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFNldElTT0RheU9mV2VlayAoaW5wdXQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gYmVoYXZlcyB0aGUgc2FtZSBhcyBtb21lbnQjZGF5IGV4Y2VwdFxuICAgICAgICAvLyBhcyBhIGdldHRlciwgcmV0dXJucyA3IGluc3RlYWQgb2YgMCAoMS03IHJhbmdlIGluc3RlYWQgb2YgMC02KVxuICAgICAgICAvLyBhcyBhIHNldHRlciwgc3VuZGF5IHNob3VsZCBiZWxvbmcgdG8gdGhlIHByZXZpb3VzIHdlZWsuXG5cbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHZhciB3ZWVrZGF5ID0gcGFyc2VJc29XZWVrZGF5KGlucHV0LCB0aGlzLmxvY2FsZURhdGEoKSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5kYXkodGhpcy5kYXkoKSAlIDcgPyB3ZWVrZGF5IDogd2Vla2RheSAtIDcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGF5KCkgfHwgNztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBkZWZhdWx0V2Vla2RheXNSZWdleCA9IG1hdGNoV29yZDtcbiAgICBmdW5jdGlvbiB3ZWVrZGF5c1JlZ2V4IChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlV2Vla2RheXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNSZWdleCA9IGRlZmF1bHRXZWVrZGF5c1JlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXggJiYgaXNTdHJpY3QgP1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXggOiB0aGlzLl93ZWVrZGF5c1JlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGRlZmF1bHRXZWVrZGF5c1Nob3J0UmVnZXggPSBtYXRjaFdvcmQ7XG4gICAgZnVuY3Rpb24gd2Vla2RheXNTaG9ydFJlZ2V4IChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlV2Vla2RheXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghaGFzT3duUHJvcCh0aGlzLCAnX3dlZWtkYXlzU2hvcnRSZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNTaG9ydFJlZ2V4ID0gZGVmYXVsdFdlZWtkYXlzU2hvcnRSZWdleDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c1Nob3J0U3RyaWN0UmVnZXggJiYgaXNTdHJpY3QgP1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzU2hvcnRTdHJpY3RSZWdleCA6IHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBkZWZhdWx0V2Vla2RheXNNaW5SZWdleCA9IG1hdGNoV29yZDtcbiAgICBmdW5jdGlvbiB3ZWVrZGF5c01pblJlZ2V4IChpc1N0cmljdCkge1xuICAgICAgICBpZiAodGhpcy5fd2Vla2RheXNQYXJzZUV4YWN0KSB7XG4gICAgICAgICAgICBpZiAoIWhhc093blByb3AodGhpcywgJ193ZWVrZGF5c1JlZ2V4JykpIHtcbiAgICAgICAgICAgICAgICBjb21wdXRlV2Vla2RheXNQYXJzZS5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGlzU3RyaWN0KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXg7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl93ZWVrZGF5c01pblJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCFoYXNPd25Qcm9wKHRoaXMsICdfd2Vla2RheXNNaW5SZWdleCcpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fd2Vla2RheXNNaW5SZWdleCA9IGRlZmF1bHRXZWVrZGF5c01pblJlZ2V4O1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXggJiYgaXNTdHJpY3QgP1xuICAgICAgICAgICAgICAgIHRoaXMuX3dlZWtkYXlzTWluU3RyaWN0UmVnZXggOiB0aGlzLl93ZWVrZGF5c01pblJlZ2V4O1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICBmdW5jdGlvbiBjb21wdXRlV2Vla2RheXNQYXJzZSAoKSB7XG4gICAgICAgIGZ1bmN0aW9uIGNtcExlblJldihhLCBiKSB7XG4gICAgICAgICAgICByZXR1cm4gYi5sZW5ndGggLSBhLmxlbmd0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBtaW5QaWVjZXMgPSBbXSwgc2hvcnRQaWVjZXMgPSBbXSwgbG9uZ1BpZWNlcyA9IFtdLCBtaXhlZFBpZWNlcyA9IFtdLFxuICAgICAgICAgICAgaSwgbW9tLCBtaW5wLCBzaG9ydHAsIGxvbmdwO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICAvLyBtYWtlIHRoZSByZWdleCBpZiB3ZSBkb24ndCBoYXZlIGl0IGFscmVhZHlcbiAgICAgICAgICAgIG1vbSA9IGNyZWF0ZVVUQyhbMjAwMCwgMV0pLmRheShpKTtcbiAgICAgICAgICAgIG1pbnAgPSB0aGlzLndlZWtkYXlzTWluKG1vbSwgJycpO1xuICAgICAgICAgICAgc2hvcnRwID0gdGhpcy53ZWVrZGF5c1Nob3J0KG1vbSwgJycpO1xuICAgICAgICAgICAgbG9uZ3AgPSB0aGlzLndlZWtkYXlzKG1vbSwgJycpO1xuICAgICAgICAgICAgbWluUGllY2VzLnB1c2gobWlucCk7XG4gICAgICAgICAgICBzaG9ydFBpZWNlcy5wdXNoKHNob3J0cCk7XG4gICAgICAgICAgICBsb25nUGllY2VzLnB1c2gobG9uZ3ApO1xuICAgICAgICAgICAgbWl4ZWRQaWVjZXMucHVzaChtaW5wKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2goc2hvcnRwKTtcbiAgICAgICAgICAgIG1peGVkUGllY2VzLnB1c2gobG9uZ3ApO1xuICAgICAgICB9XG4gICAgICAgIC8vIFNvcnRpbmcgbWFrZXMgc3VyZSBpZiBvbmUgd2Vla2RheSAob3IgYWJicikgaXMgYSBwcmVmaXggb2YgYW5vdGhlciBpdFxuICAgICAgICAvLyB3aWxsIG1hdGNoIHRoZSBsb25nZXIgcGllY2UuXG4gICAgICAgIG1pblBpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIHNob3J0UGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgbG9uZ1BpZWNlcy5zb3J0KGNtcExlblJldik7XG4gICAgICAgIG1peGVkUGllY2VzLnNvcnQoY21wTGVuUmV2KTtcbiAgICAgICAgZm9yIChpID0gMDsgaSA8IDc7IGkrKykge1xuICAgICAgICAgICAgc2hvcnRQaWVjZXNbaV0gPSByZWdleEVzY2FwZShzaG9ydFBpZWNlc1tpXSk7XG4gICAgICAgICAgICBsb25nUGllY2VzW2ldID0gcmVnZXhFc2NhcGUobG9uZ1BpZWNlc1tpXSk7XG4gICAgICAgICAgICBtaXhlZFBpZWNlc1tpXSA9IHJlZ2V4RXNjYXBlKG1peGVkUGllY2VzW2ldKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3dlZWtkYXlzUmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBtaXhlZFBpZWNlcy5qb2luKCd8JykgKyAnKScsICdpJyk7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzU2hvcnRSZWdleCA9IHRoaXMuX3dlZWtkYXlzUmVnZXg7XG4gICAgICAgIHRoaXMuX3dlZWtkYXlzTWluUmVnZXggPSB0aGlzLl93ZWVrZGF5c1JlZ2V4O1xuXG4gICAgICAgIHRoaXMuX3dlZWtkYXlzU3RyaWN0UmVnZXggPSBuZXcgUmVnRXhwKCdeKCcgKyBsb25nUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICAgICAgdGhpcy5fd2Vla2RheXNTaG9ydFN0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgc2hvcnRQaWVjZXMuam9pbignfCcpICsgJyknLCAnaScpO1xuICAgICAgICB0aGlzLl93ZWVrZGF5c01pblN0cmljdFJlZ2V4ID0gbmV3IFJlZ0V4cCgnXignICsgbWluUGllY2VzLmpvaW4oJ3wnKSArICcpJywgJ2knKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBmdW5jdGlvbiBoRm9ybWF0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3VycygpICUgMTIgfHwgMTI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24ga0Zvcm1hdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaG91cnMoKSB8fCAyNDtcbiAgICB9XG5cbiAgICBhZGRGb3JtYXRUb2tlbignSCcsIFsnSEgnLCAyXSwgMCwgJ2hvdXInKTtcbiAgICBhZGRGb3JtYXRUb2tlbignaCcsIFsnaGgnLCAyXSwgMCwgaEZvcm1hdCk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ2snLCBbJ2trJywgMl0sIDAsIGtGb3JtYXQpO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ2htbScsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICcnICsgaEZvcm1hdC5hcHBseSh0aGlzKSArIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKTtcbiAgICB9KTtcblxuICAgIGFkZEZvcm1hdFRva2VuKCdobW1zcycsIDAsIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuICcnICsgaEZvcm1hdC5hcHBseSh0aGlzKSArIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKSArXG4gICAgICAgICAgICB6ZXJvRmlsbCh0aGlzLnNlY29uZHMoKSwgMik7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignSG1tJywgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gJycgKyB0aGlzLmhvdXJzKCkgKyB6ZXJvRmlsbCh0aGlzLm1pbnV0ZXMoKSwgMik7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbignSG1tc3MnLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiAnJyArIHRoaXMuaG91cnMoKSArIHplcm9GaWxsKHRoaXMubWludXRlcygpLCAyKSArXG4gICAgICAgICAgICB6ZXJvRmlsbCh0aGlzLnNlY29uZHMoKSwgMik7XG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBtZXJpZGllbSAodG9rZW4sIGxvd2VyY2FzZSkge1xuICAgICAgICBhZGRGb3JtYXRUb2tlbih0b2tlbiwgMCwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLm1lcmlkaWVtKHRoaXMuaG91cnMoKSwgdGhpcy5taW51dGVzKCksIGxvd2VyY2FzZSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG1lcmlkaWVtKCdhJywgdHJ1ZSk7XG4gICAgbWVyaWRpZW0oJ0EnLCBmYWxzZSk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2hvdXInLCAnaCcpO1xuXG4gICAgLy8gUFJJT1JJVFlcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2hvdXInLCAxMyk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBmdW5jdGlvbiBtYXRjaE1lcmlkaWVtIChpc1N0cmljdCwgbG9jYWxlKSB7XG4gICAgICAgIHJldHVybiBsb2NhbGUuX21lcmlkaWVtUGFyc2U7XG4gICAgfVxuXG4gICAgYWRkUmVnZXhUb2tlbignYScsICBtYXRjaE1lcmlkaWVtKTtcbiAgICBhZGRSZWdleFRva2VuKCdBJywgIG1hdGNoTWVyaWRpZW0pO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0gnLCAgbWF0Y2gxdG8yKTtcbiAgICBhZGRSZWdleFRva2VuKCdoJywgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignaycsICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0hIJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2hoJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2trJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuXG4gICAgYWRkUmVnZXhUb2tlbignaG1tJywgbWF0Y2gzdG80KTtcbiAgICBhZGRSZWdleFRva2VuKCdobW1zcycsIG1hdGNoNXRvNik7XG4gICAgYWRkUmVnZXhUb2tlbignSG1tJywgbWF0Y2gzdG80KTtcbiAgICBhZGRSZWdleFRva2VuKCdIbW1zcycsIG1hdGNoNXRvNik7XG5cbiAgICBhZGRQYXJzZVRva2VuKFsnSCcsICdISCddLCBIT1VSKTtcbiAgICBhZGRQYXJzZVRva2VuKFsnaycsICdrayddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIGtJbnB1dCA9IHRvSW50KGlucHV0KTtcbiAgICAgICAgYXJyYXlbSE9VUl0gPSBrSW5wdXQgPT09IDI0ID8gMCA6IGtJbnB1dDtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKFsnYScsICdBJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBjb25maWcuX2lzUG0gPSBjb25maWcuX2xvY2FsZS5pc1BNKGlucHV0KTtcbiAgICAgICAgY29uZmlnLl9tZXJpZGllbSA9IGlucHV0O1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oWydoJywgJ2hoJ10sIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXksIGNvbmZpZykge1xuICAgICAgICBhcnJheVtIT1VSXSA9IHRvSW50KGlucHV0KTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuYmlnSG91ciA9IHRydWU7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignaG1tJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBwb3MgPSBpbnB1dC5sZW5ndGggLSAyO1xuICAgICAgICBhcnJheVtIT1VSXSA9IHRvSW50KGlucHV0LnN1YnN0cigwLCBwb3MpKTtcbiAgICAgICAgYXJyYXlbTUlOVVRFXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MpKTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuYmlnSG91ciA9IHRydWU7XG4gICAgfSk7XG4gICAgYWRkUGFyc2VUb2tlbignaG1tc3MnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIHBvczEgPSBpbnB1dC5sZW5ndGggLSA0O1xuICAgICAgICB2YXIgcG9zMiA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvczEpKTtcbiAgICAgICAgYXJyYXlbTUlOVVRFXSA9IHRvSW50KGlucHV0LnN1YnN0cihwb3MxLCAyKSk7XG4gICAgICAgIGFycmF5W1NFQ09ORF0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zMikpO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdHJ1ZTtcbiAgICB9KTtcbiAgICBhZGRQYXJzZVRva2VuKCdIbW0nLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgdmFyIHBvcyA9IGlucHV0Lmxlbmd0aCAtIDI7XG4gICAgICAgIGFycmF5W0hPVVJdID0gdG9JbnQoaW5wdXQuc3Vic3RyKDAsIHBvcykpO1xuICAgICAgICBhcnJheVtNSU5VVEVdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvcykpO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ0htbXNzJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIHZhciBwb3MxID0gaW5wdXQubGVuZ3RoIC0gNDtcbiAgICAgICAgdmFyIHBvczIgPSBpbnB1dC5sZW5ndGggLSAyO1xuICAgICAgICBhcnJheVtIT1VSXSA9IHRvSW50KGlucHV0LnN1YnN0cigwLCBwb3MxKSk7XG4gICAgICAgIGFycmF5W01JTlVURV0gPSB0b0ludChpbnB1dC5zdWJzdHIocG9zMSwgMikpO1xuICAgICAgICBhcnJheVtTRUNPTkRdID0gdG9JbnQoaW5wdXQuc3Vic3RyKHBvczIpKTtcbiAgICB9KTtcblxuICAgIC8vIExPQ0FMRVNcblxuICAgIGZ1bmN0aW9uIGxvY2FsZUlzUE0gKGlucHV0KSB7XG4gICAgICAgIC8vIElFOCBRdWlya3MgTW9kZSAmIElFNyBTdGFuZGFyZHMgTW9kZSBkbyBub3QgYWxsb3cgYWNjZXNzaW5nIHN0cmluZ3MgbGlrZSBhcnJheXNcbiAgICAgICAgLy8gVXNpbmcgY2hhckF0IHNob3VsZCBiZSBtb3JlIGNvbXBhdGlibGUuXG4gICAgICAgIHJldHVybiAoKGlucHV0ICsgJycpLnRvTG93ZXJDYXNlKCkuY2hhckF0KDApID09PSAncCcpO1xuICAgIH1cblxuICAgIHZhciBkZWZhdWx0TG9jYWxlTWVyaWRpZW1QYXJzZSA9IC9bYXBdXFwuP20/XFwuPy9pO1xuICAgIGZ1bmN0aW9uIGxvY2FsZU1lcmlkaWVtIChob3VycywgbWludXRlcywgaXNMb3dlcikge1xuICAgICAgICBpZiAoaG91cnMgPiAxMSkge1xuICAgICAgICAgICAgcmV0dXJuIGlzTG93ZXIgPyAncG0nIDogJ1BNJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBpc0xvd2VyID8gJ2FtJyA6ICdBTSc7XG4gICAgICAgIH1cbiAgICB9XG5cblxuICAgIC8vIE1PTUVOVFNcblxuICAgIC8vIFNldHRpbmcgdGhlIGhvdXIgc2hvdWxkIGtlZXAgdGhlIHRpbWUsIGJlY2F1c2UgdGhlIHVzZXIgZXhwbGljaXRseVxuICAgIC8vIHNwZWNpZmllZCB3aGljaCBob3VyIHRoZXkgd2FudC4gU28gdHJ5aW5nIHRvIG1haW50YWluIHRoZSBzYW1lIGhvdXIgKGluXG4gICAgLy8gYSBuZXcgdGltZXpvbmUpIG1ha2VzIHNlbnNlLiBBZGRpbmcvc3VidHJhY3RpbmcgaG91cnMgZG9lcyBub3QgZm9sbG93XG4gICAgLy8gdGhpcyBydWxlLlxuICAgIHZhciBnZXRTZXRIb3VyID0gbWFrZUdldFNldCgnSG91cnMnLCB0cnVlKTtcblxuICAgIHZhciBiYXNlQ29uZmlnID0ge1xuICAgICAgICBjYWxlbmRhcjogZGVmYXVsdENhbGVuZGFyLFxuICAgICAgICBsb25nRGF0ZUZvcm1hdDogZGVmYXVsdExvbmdEYXRlRm9ybWF0LFxuICAgICAgICBpbnZhbGlkRGF0ZTogZGVmYXVsdEludmFsaWREYXRlLFxuICAgICAgICBvcmRpbmFsOiBkZWZhdWx0T3JkaW5hbCxcbiAgICAgICAgZGF5T2ZNb250aE9yZGluYWxQYXJzZTogZGVmYXVsdERheU9mTW9udGhPcmRpbmFsUGFyc2UsXG4gICAgICAgIHJlbGF0aXZlVGltZTogZGVmYXVsdFJlbGF0aXZlVGltZSxcblxuICAgICAgICBtb250aHM6IGRlZmF1bHRMb2NhbGVNb250aHMsXG4gICAgICAgIG1vbnRoc1Nob3J0OiBkZWZhdWx0TG9jYWxlTW9udGhzU2hvcnQsXG5cbiAgICAgICAgd2VlazogZGVmYXVsdExvY2FsZVdlZWssXG5cbiAgICAgICAgd2Vla2RheXM6IGRlZmF1bHRMb2NhbGVXZWVrZGF5cyxcbiAgICAgICAgd2Vla2RheXNNaW46IGRlZmF1bHRMb2NhbGVXZWVrZGF5c01pbixcbiAgICAgICAgd2Vla2RheXNTaG9ydDogZGVmYXVsdExvY2FsZVdlZWtkYXlzU2hvcnQsXG5cbiAgICAgICAgbWVyaWRpZW1QYXJzZTogZGVmYXVsdExvY2FsZU1lcmlkaWVtUGFyc2VcbiAgICB9O1xuXG4gICAgLy8gaW50ZXJuYWwgc3RvcmFnZSBmb3IgbG9jYWxlIGNvbmZpZyBmaWxlc1xuICAgIHZhciBsb2NhbGVzID0ge307XG4gICAgdmFyIGxvY2FsZUZhbWlsaWVzID0ge307XG4gICAgdmFyIGdsb2JhbExvY2FsZTtcblxuICAgIGZ1bmN0aW9uIG5vcm1hbGl6ZUxvY2FsZShrZXkpIHtcbiAgICAgICAgcmV0dXJuIGtleSA/IGtleS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoJ18nLCAnLScpIDoga2V5O1xuICAgIH1cblxuICAgIC8vIHBpY2sgdGhlIGxvY2FsZSBmcm9tIHRoZSBhcnJheVxuICAgIC8vIHRyeSBbJ2VuLWF1JywgJ2VuLWdiJ10gYXMgJ2VuLWF1JywgJ2VuLWdiJywgJ2VuJywgYXMgaW4gbW92ZSB0aHJvdWdoIHRoZSBsaXN0IHRyeWluZyBlYWNoXG4gICAgLy8gc3Vic3RyaW5nIGZyb20gbW9zdCBzcGVjaWZpYyB0byBsZWFzdCwgYnV0IG1vdmUgdG8gdGhlIG5leHQgYXJyYXkgaXRlbSBpZiBpdCdzIGEgbW9yZSBzcGVjaWZpYyB2YXJpYW50IHRoYW4gdGhlIGN1cnJlbnQgcm9vdFxuICAgIGZ1bmN0aW9uIGNob29zZUxvY2FsZShuYW1lcykge1xuICAgICAgICB2YXIgaSA9IDAsIGosIG5leHQsIGxvY2FsZSwgc3BsaXQ7XG5cbiAgICAgICAgd2hpbGUgKGkgPCBuYW1lcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHNwbGl0ID0gbm9ybWFsaXplTG9jYWxlKG5hbWVzW2ldKS5zcGxpdCgnLScpO1xuICAgICAgICAgICAgaiA9IHNwbGl0Lmxlbmd0aDtcbiAgICAgICAgICAgIG5leHQgPSBub3JtYWxpemVMb2NhbGUobmFtZXNbaSArIDFdKTtcbiAgICAgICAgICAgIG5leHQgPSBuZXh0ID8gbmV4dC5zcGxpdCgnLScpIDogbnVsbDtcbiAgICAgICAgICAgIHdoaWxlIChqID4gMCkge1xuICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvYWRMb2NhbGUoc3BsaXQuc2xpY2UoMCwgaikuam9pbignLScpKTtcbiAgICAgICAgICAgICAgICBpZiAobG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChuZXh0ICYmIG5leHQubGVuZ3RoID49IGogJiYgY29tcGFyZUFycmF5cyhzcGxpdCwgbmV4dCwgdHJ1ZSkgPj0gaiAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgLy90aGUgbmV4dCBhcnJheSBpdGVtIGlzIGJldHRlciB0aGFuIGEgc2hhbGxvd2VyIHN1YnN0cmluZyBvZiB0aGlzIG9uZVxuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgai0tO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaSsrO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBnbG9iYWxMb2NhbGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbG9hZExvY2FsZShuYW1lKSB7XG4gICAgICAgIHZhciBvbGRMb2NhbGUgPSBudWxsO1xuICAgICAgICAvLyBUT0RPOiBGaW5kIGEgYmV0dGVyIHdheSB0byByZWdpc3RlciBhbmQgbG9hZCBhbGwgdGhlIGxvY2FsZXMgaW4gTm9kZVxuICAgICAgICBpZiAoIWxvY2FsZXNbbmFtZV0gJiYgKHR5cGVvZiBtb2R1bGUgIT09ICd1bmRlZmluZWQnKSAmJlxuICAgICAgICAgICAgICAgIG1vZHVsZSAmJiBtb2R1bGUuZXhwb3J0cykge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICBvbGRMb2NhbGUgPSBnbG9iYWxMb2NhbGUuX2FiYnI7XG4gICAgICAgICAgICAgICAgdmFyIGFsaWFzZWRSZXF1aXJlID0gcmVxdWlyZTtcbiAgICAgICAgICAgICAgICBhbGlhc2VkUmVxdWlyZSgnLi9sb2NhbGUvJyArIG5hbWUpO1xuICAgICAgICAgICAgICAgIGdldFNldEdsb2JhbExvY2FsZShvbGRMb2NhbGUpO1xuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbG9jYWxlc1tuYW1lXTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgbG9hZCBsb2NhbGUgYW5kIHRoZW4gc2V0IHRoZSBnbG9iYWwgbG9jYWxlLiAgSWZcbiAgICAvLyBubyBhcmd1bWVudHMgYXJlIHBhc3NlZCBpbiwgaXQgd2lsbCBzaW1wbHkgcmV0dXJuIHRoZSBjdXJyZW50IGdsb2JhbFxuICAgIC8vIGxvY2FsZSBrZXkuXG4gICAgZnVuY3Rpb24gZ2V0U2V0R2xvYmFsTG9jYWxlIChrZXksIHZhbHVlcykge1xuICAgICAgICB2YXIgZGF0YTtcbiAgICAgICAgaWYgKGtleSkge1xuICAgICAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gZ2V0TG9jYWxlKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICBkYXRhID0gZGVmaW5lTG9jYWxlKGtleSwgdmFsdWVzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRhdGEpIHtcbiAgICAgICAgICAgICAgICAvLyBtb21lbnQuZHVyYXRpb24uX2xvY2FsZSA9IG1vbWVudC5fbG9jYWxlID0gZGF0YTtcbiAgICAgICAgICAgICAgICBnbG9iYWxMb2NhbGUgPSBkYXRhO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCh0eXBlb2YgY29uc29sZSAhPT0gICd1bmRlZmluZWQnKSAmJiBjb25zb2xlLndhcm4pIHtcbiAgICAgICAgICAgICAgICAgICAgLy93YXJuIHVzZXIgaWYgYXJndW1lbnRzIGFyZSBwYXNzZWQgYnV0IHRoZSBsb2NhbGUgY291bGQgbm90IGJlIHNldFxuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oJ0xvY2FsZSAnICsga2V5ICsgICcgbm90IGZvdW5kLiBEaWQgeW91IGZvcmdldCB0byBsb2FkIGl0PycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBnbG9iYWxMb2NhbGUuX2FiYnI7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGVmaW5lTG9jYWxlIChuYW1lLCBjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZyAhPT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGxvY2FsZSwgcGFyZW50Q29uZmlnID0gYmFzZUNvbmZpZztcbiAgICAgICAgICAgIGNvbmZpZy5hYmJyID0gbmFtZTtcbiAgICAgICAgICAgIGlmIChsb2NhbGVzW25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBkZXByZWNhdGVTaW1wbGUoJ2RlZmluZUxvY2FsZU92ZXJyaWRlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1c2UgbW9tZW50LnVwZGF0ZUxvY2FsZShsb2NhbGVOYW1lLCBjb25maWcpIHRvIGNoYW5nZSAnICtcbiAgICAgICAgICAgICAgICAgICAgICAgICdhbiBleGlzdGluZyBsb2NhbGUuIG1vbWVudC5kZWZpbmVMb2NhbGUobG9jYWxlTmFtZSwgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnY29uZmlnKSBzaG91bGQgb25seSBiZSB1c2VkIGZvciBjcmVhdGluZyBhIG5ldyBsb2NhbGUgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAnU2VlIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvZGVmaW5lLWxvY2FsZS8gZm9yIG1vcmUgaW5mby4nKTtcbiAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSBsb2NhbGVzW25hbWVdLl9jb25maWc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbmZpZy5wYXJlbnRMb2NhbGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGlmIChsb2NhbGVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gbG9jYWxlc1tjb25maWcucGFyZW50TG9jYWxlXS5fY29uZmlnO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGxvY2FsZSA9IGxvYWRMb2NhbGUoY29uZmlnLnBhcmVudExvY2FsZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2NhbGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Q29uZmlnID0gbG9jYWxlLl9jb25maWc7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWxvY2FsZUZhbWlsaWVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlRmFtaWxpZXNbY29uZmlnLnBhcmVudExvY2FsZV0gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGxvY2FsZUZhbWlsaWVzW2NvbmZpZy5wYXJlbnRMb2NhbGVdLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnOiBjb25maWdcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2NhbGVzW25hbWVdID0gbmV3IExvY2FsZShtZXJnZUNvbmZpZ3MocGFyZW50Q29uZmlnLCBjb25maWcpKTtcblxuICAgICAgICAgICAgaWYgKGxvY2FsZUZhbWlsaWVzW25hbWVdKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxlRmFtaWxpZXNbbmFtZV0uZm9yRWFjaChmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICBkZWZpbmVMb2NhbGUoeC5uYW1lLCB4LmNvbmZpZyk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIGJhY2t3YXJkcyBjb21wYXQgZm9yIG5vdzogYWxzbyBzZXQgdGhlIGxvY2FsZVxuICAgICAgICAgICAgLy8gbWFrZSBzdXJlIHdlIHNldCB0aGUgbG9jYWxlIEFGVEVSIGFsbCBjaGlsZCBsb2NhbGVzIGhhdmUgYmVlblxuICAgICAgICAgICAgLy8gY3JlYXRlZCwgc28gd2Ugd29uJ3QgZW5kIHVwIHdpdGggdGhlIGNoaWxkIGxvY2FsZSBzZXQuXG4gICAgICAgICAgICBnZXRTZXRHbG9iYWxMb2NhbGUobmFtZSk7XG5cblxuICAgICAgICAgICAgcmV0dXJuIGxvY2FsZXNbbmFtZV07XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB1c2VmdWwgZm9yIHRlc3RpbmdcbiAgICAgICAgICAgIGRlbGV0ZSBsb2NhbGVzW25hbWVdO1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVMb2NhbGUobmFtZSwgY29uZmlnKSB7XG4gICAgICAgIGlmIChjb25maWcgIT0gbnVsbCkge1xuICAgICAgICAgICAgdmFyIGxvY2FsZSwgdG1wTG9jYWxlLCBwYXJlbnRDb25maWcgPSBiYXNlQ29uZmlnO1xuICAgICAgICAgICAgLy8gTUVSR0VcbiAgICAgICAgICAgIHRtcExvY2FsZSA9IGxvYWRMb2NhbGUobmFtZSk7XG4gICAgICAgICAgICBpZiAodG1wTG9jYWxlICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBwYXJlbnRDb25maWcgPSB0bXBMb2NhbGUuX2NvbmZpZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbmZpZyA9IG1lcmdlQ29uZmlncyhwYXJlbnRDb25maWcsIGNvbmZpZyk7XG4gICAgICAgICAgICBsb2NhbGUgPSBuZXcgTG9jYWxlKGNvbmZpZyk7XG4gICAgICAgICAgICBsb2NhbGUucGFyZW50TG9jYWxlID0gbG9jYWxlc1tuYW1lXTtcbiAgICAgICAgICAgIGxvY2FsZXNbbmFtZV0gPSBsb2NhbGU7XG5cbiAgICAgICAgICAgIC8vIGJhY2t3YXJkcyBjb21wYXQgZm9yIG5vdzogYWxzbyBzZXQgdGhlIGxvY2FsZVxuICAgICAgICAgICAgZ2V0U2V0R2xvYmFsTG9jYWxlKG5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gcGFzcyBudWxsIGZvciBjb25maWcgdG8gdW51cGRhdGUsIHVzZWZ1bCBmb3IgdGVzdHNcbiAgICAgICAgICAgIGlmIChsb2NhbGVzW25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICBpZiAobG9jYWxlc1tuYW1lXS5wYXJlbnRMb2NhbGUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBsb2NhbGVzW25hbWVdID0gbG9jYWxlc1tuYW1lXS5wYXJlbnRMb2NhbGU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChsb2NhbGVzW25hbWVdICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGxvY2FsZXNbbmFtZV07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBsb2NhbGVzW25hbWVdO1xuICAgIH1cblxuICAgIC8vIHJldHVybnMgbG9jYWxlIGRhdGFcbiAgICBmdW5jdGlvbiBnZXRMb2NhbGUgKGtleSkge1xuICAgICAgICB2YXIgbG9jYWxlO1xuXG4gICAgICAgIGlmIChrZXkgJiYga2V5Ll9sb2NhbGUgJiYga2V5Ll9sb2NhbGUuX2FiYnIpIHtcbiAgICAgICAgICAgIGtleSA9IGtleS5fbG9jYWxlLl9hYmJyO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBnbG9iYWxMb2NhbGU7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzQXJyYXkoa2V5KSkge1xuICAgICAgICAgICAgLy9zaG9ydC1jaXJjdWl0IGV2ZXJ5dGhpbmcgZWxzZVxuICAgICAgICAgICAgbG9jYWxlID0gbG9hZExvY2FsZShrZXkpO1xuICAgICAgICAgICAgaWYgKGxvY2FsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBsb2NhbGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBrZXkgPSBba2V5XTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjaG9vc2VMb2NhbGUoa2V5KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TG9jYWxlcygpIHtcbiAgICAgICAgcmV0dXJuIGtleXMobG9jYWxlcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tPdmVyZmxvdyAobSkge1xuICAgICAgICB2YXIgb3ZlcmZsb3c7XG4gICAgICAgIHZhciBhID0gbS5fYTtcblxuICAgICAgICBpZiAoYSAmJiBnZXRQYXJzaW5nRmxhZ3MobSkub3ZlcmZsb3cgPT09IC0yKSB7XG4gICAgICAgICAgICBvdmVyZmxvdyA9XG4gICAgICAgICAgICAgICAgYVtNT05USF0gICAgICAgPCAwIHx8IGFbTU9OVEhdICAgICAgID4gMTEgID8gTU9OVEggOlxuICAgICAgICAgICAgICAgIGFbREFURV0gICAgICAgIDwgMSB8fCBhW0RBVEVdICAgICAgICA+IGRheXNJbk1vbnRoKGFbWUVBUl0sIGFbTU9OVEhdKSA/IERBVEUgOlxuICAgICAgICAgICAgICAgIGFbSE9VUl0gICAgICAgIDwgMCB8fCBhW0hPVVJdICAgICAgICA+IDI0IHx8IChhW0hPVVJdID09PSAyNCAmJiAoYVtNSU5VVEVdICE9PSAwIHx8IGFbU0VDT05EXSAhPT0gMCB8fCBhW01JTExJU0VDT05EXSAhPT0gMCkpID8gSE9VUiA6XG4gICAgICAgICAgICAgICAgYVtNSU5VVEVdICAgICAgPCAwIHx8IGFbTUlOVVRFXSAgICAgID4gNTkgID8gTUlOVVRFIDpcbiAgICAgICAgICAgICAgICBhW1NFQ09ORF0gICAgICA8IDAgfHwgYVtTRUNPTkRdICAgICAgPiA1OSAgPyBTRUNPTkQgOlxuICAgICAgICAgICAgICAgIGFbTUlMTElTRUNPTkRdIDwgMCB8fCBhW01JTExJU0VDT05EXSA+IDk5OSA/IE1JTExJU0VDT05EIDpcbiAgICAgICAgICAgICAgICAtMTtcblxuICAgICAgICAgICAgaWYgKGdldFBhcnNpbmdGbGFncyhtKS5fb3ZlcmZsb3dEYXlPZlllYXIgJiYgKG92ZXJmbG93IDwgWUVBUiB8fCBvdmVyZmxvdyA+IERBVEUpKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cgPSBEQVRFO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGdldFBhcnNpbmdGbGFncyhtKS5fb3ZlcmZsb3dXZWVrcyAmJiBvdmVyZmxvdyA9PT0gLTEpIHtcbiAgICAgICAgICAgICAgICBvdmVyZmxvdyA9IFdFRUs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZ2V0UGFyc2luZ0ZsYWdzKG0pLl9vdmVyZmxvd1dlZWtkYXkgJiYgb3ZlcmZsb3cgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3cgPSBXRUVLREFZO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MobSkub3ZlcmZsb3cgPSBvdmVyZmxvdztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBtO1xuICAgIH1cblxuICAgIC8vIFBpY2sgdGhlIGZpcnN0IGRlZmluZWQgb2YgdHdvIG9yIHRocmVlIGFyZ3VtZW50cy5cbiAgICBmdW5jdGlvbiBkZWZhdWx0cyhhLCBiLCBjKSB7XG4gICAgICAgIGlmIChhICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBhO1xuICAgICAgICB9XG4gICAgICAgIGlmIChiICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGN1cnJlbnREYXRlQXJyYXkoY29uZmlnKSB7XG4gICAgICAgIC8vIGhvb2tzIGlzIGFjdHVhbGx5IHRoZSBleHBvcnRlZCBtb21lbnQgb2JqZWN0XG4gICAgICAgIHZhciBub3dWYWx1ZSA9IG5ldyBEYXRlKGhvb2tzLm5vdygpKTtcbiAgICAgICAgaWYgKGNvbmZpZy5fdXNlVVRDKSB7XG4gICAgICAgICAgICByZXR1cm4gW25vd1ZhbHVlLmdldFVUQ0Z1bGxZZWFyKCksIG5vd1ZhbHVlLmdldFVUQ01vbnRoKCksIG5vd1ZhbHVlLmdldFVUQ0RhdGUoKV07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIFtub3dWYWx1ZS5nZXRGdWxsWWVhcigpLCBub3dWYWx1ZS5nZXRNb250aCgpLCBub3dWYWx1ZS5nZXREYXRlKCldO1xuICAgIH1cblxuICAgIC8vIGNvbnZlcnQgYW4gYXJyYXkgdG8gYSBkYXRlLlxuICAgIC8vIHRoZSBhcnJheSBzaG91bGQgbWlycm9yIHRoZSBwYXJhbWV0ZXJzIGJlbG93XG4gICAgLy8gbm90ZTogYWxsIHZhbHVlcyBwYXN0IHRoZSB5ZWFyIGFyZSBvcHRpb25hbCBhbmQgd2lsbCBkZWZhdWx0IHRvIHRoZSBsb3dlc3QgcG9zc2libGUgdmFsdWUuXG4gICAgLy8gW3llYXIsIG1vbnRoLCBkYXkgLCBob3VyLCBtaW51dGUsIHNlY29uZCwgbWlsbGlzZWNvbmRdXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbUFycmF5IChjb25maWcpIHtcbiAgICAgICAgdmFyIGksIGRhdGUsIGlucHV0ID0gW10sIGN1cnJlbnREYXRlLCBleHBlY3RlZFdlZWtkYXksIHllYXJUb1VzZTtcblxuICAgICAgICBpZiAoY29uZmlnLl9kKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlQXJyYXkoY29uZmlnKTtcblxuICAgICAgICAvL2NvbXB1dGUgZGF5IG9mIHRoZSB5ZWFyIGZyb20gd2Vla3MgYW5kIHdlZWtkYXlzXG4gICAgICAgIGlmIChjb25maWcuX3cgJiYgY29uZmlnLl9hW0RBVEVdID09IG51bGwgJiYgY29uZmlnLl9hW01PTlRIXSA9PSBudWxsKSB7XG4gICAgICAgICAgICBkYXlPZlllYXJGcm9tV2Vla0luZm8oY29uZmlnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vaWYgdGhlIGRheSBvZiB0aGUgeWVhciBpcyBzZXQsIGZpZ3VyZSBvdXQgd2hhdCBpdCBpc1xuICAgICAgICBpZiAoY29uZmlnLl9kYXlPZlllYXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgeWVhclRvVXNlID0gZGVmYXVsdHMoY29uZmlnLl9hW1lFQVJdLCBjdXJyZW50RGF0ZVtZRUFSXSk7XG5cbiAgICAgICAgICAgIGlmIChjb25maWcuX2RheU9mWWVhciA+IGRheXNJblllYXIoeWVhclRvVXNlKSB8fCBjb25maWcuX2RheU9mWWVhciA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd0RheU9mWWVhciA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRhdGUgPSBjcmVhdGVVVENEYXRlKHllYXJUb1VzZSwgMCwgY29uZmlnLl9kYXlPZlllYXIpO1xuICAgICAgICAgICAgY29uZmlnLl9hW01PTlRIXSA9IGRhdGUuZ2V0VVRDTW9udGgoKTtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtEQVRFXSA9IGRhdGUuZ2V0VVRDRGF0ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRGVmYXVsdCB0byBjdXJyZW50IGRhdGUuXG4gICAgICAgIC8vICogaWYgbm8geWVhciwgbW9udGgsIGRheSBvZiBtb250aCBhcmUgZ2l2ZW4sIGRlZmF1bHQgdG8gdG9kYXlcbiAgICAgICAgLy8gKiBpZiBkYXkgb2YgbW9udGggaXMgZ2l2ZW4sIGRlZmF1bHQgbW9udGggYW5kIHllYXJcbiAgICAgICAgLy8gKiBpZiBtb250aCBpcyBnaXZlbiwgZGVmYXVsdCBvbmx5IHllYXJcbiAgICAgICAgLy8gKiBpZiB5ZWFyIGlzIGdpdmVuLCBkb24ndCBkZWZhdWx0IGFueXRoaW5nXG4gICAgICAgIGZvciAoaSA9IDA7IGkgPCAzICYmIGNvbmZpZy5fYVtpXSA9PSBudWxsOyArK2kpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtpXSA9IGlucHV0W2ldID0gY3VycmVudERhdGVbaV07XG4gICAgICAgIH1cblxuICAgICAgICAvLyBaZXJvIG91dCB3aGF0ZXZlciB3YXMgbm90IGRlZmF1bHRlZCwgaW5jbHVkaW5nIHRpbWVcbiAgICAgICAgZm9yICg7IGkgPCA3OyBpKyspIHtcbiAgICAgICAgICAgIGNvbmZpZy5fYVtpXSA9IGlucHV0W2ldID0gKGNvbmZpZy5fYVtpXSA9PSBudWxsKSA/IChpID09PSAyID8gMSA6IDApIDogY29uZmlnLl9hW2ldO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gQ2hlY2sgZm9yIDI0OjAwOjAwLjAwMFxuICAgICAgICBpZiAoY29uZmlnLl9hW0hPVVJdID09PSAyNCAmJlxuICAgICAgICAgICAgICAgIGNvbmZpZy5fYVtNSU5VVEVdID09PSAwICYmXG4gICAgICAgICAgICAgICAgY29uZmlnLl9hW1NFQ09ORF0gPT09IDAgJiZcbiAgICAgICAgICAgICAgICBjb25maWcuX2FbTUlMTElTRUNPTkRdID09PSAwKSB7XG4gICAgICAgICAgICBjb25maWcuX25leHREYXkgPSB0cnVlO1xuICAgICAgICAgICAgY29uZmlnLl9hW0hPVVJdID0gMDtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZy5fZCA9IChjb25maWcuX3VzZVVUQyA/IGNyZWF0ZVVUQ0RhdGUgOiBjcmVhdGVEYXRlKS5hcHBseShudWxsLCBpbnB1dCk7XG4gICAgICAgIGV4cGVjdGVkV2Vla2RheSA9IGNvbmZpZy5fdXNlVVRDID8gY29uZmlnLl9kLmdldFVUQ0RheSgpIDogY29uZmlnLl9kLmdldERheSgpO1xuXG4gICAgICAgIC8vIEFwcGx5IHRpbWV6b25lIG9mZnNldCBmcm9tIGlucHV0LiBUaGUgYWN0dWFsIHV0Y09mZnNldCBjYW4gYmUgY2hhbmdlZFxuICAgICAgICAvLyB3aXRoIHBhcnNlWm9uZS5cbiAgICAgICAgaWYgKGNvbmZpZy5fdHptICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZC5zZXRVVENNaW51dGVzKGNvbmZpZy5fZC5nZXRVVENNaW51dGVzKCkgLSBjb25maWcuX3R6bSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29uZmlnLl9uZXh0RGF5KSB7XG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPSAyNDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGNoZWNrIGZvciBtaXNtYXRjaGluZyBkYXkgb2Ygd2Vla1xuICAgICAgICBpZiAoY29uZmlnLl93ICYmIHR5cGVvZiBjb25maWcuX3cuZCAhPT0gJ3VuZGVmaW5lZCcgJiYgY29uZmlnLl93LmQgIT09IGV4cGVjdGVkV2Vla2RheSkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykud2Vla2RheU1pc21hdGNoID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRheU9mWWVhckZyb21XZWVrSW5mbyhjb25maWcpIHtcbiAgICAgICAgdmFyIHcsIHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSwgdGVtcCwgd2Vla2RheU92ZXJmbG93O1xuXG4gICAgICAgIHcgPSBjb25maWcuX3c7XG4gICAgICAgIGlmICh3LkdHICE9IG51bGwgfHwgdy5XICE9IG51bGwgfHwgdy5FICE9IG51bGwpIHtcbiAgICAgICAgICAgIGRvdyA9IDE7XG4gICAgICAgICAgICBkb3kgPSA0O1xuXG4gICAgICAgICAgICAvLyBUT0RPOiBXZSBuZWVkIHRvIHRha2UgdGhlIGN1cnJlbnQgaXNvV2Vla1llYXIsIGJ1dCB0aGF0IGRlcGVuZHMgb25cbiAgICAgICAgICAgIC8vIGhvdyB3ZSBpbnRlcnByZXQgbm93IChsb2NhbCwgdXRjLCBmaXhlZCBvZmZzZXQpLiBTbyBjcmVhdGVcbiAgICAgICAgICAgIC8vIGEgbm93IHZlcnNpb24gb2YgY3VycmVudCBjb25maWcgKHRha2UgbG9jYWwvdXRjL29mZnNldCBmbGFncywgYW5kXG4gICAgICAgICAgICAvLyBjcmVhdGUgbm93KS5cbiAgICAgICAgICAgIHdlZWtZZWFyID0gZGVmYXVsdHMody5HRywgY29uZmlnLl9hW1lFQVJdLCB3ZWVrT2ZZZWFyKGNyZWF0ZUxvY2FsKCksIDEsIDQpLnllYXIpO1xuICAgICAgICAgICAgd2VlayA9IGRlZmF1bHRzKHcuVywgMSk7XG4gICAgICAgICAgICB3ZWVrZGF5ID0gZGVmYXVsdHMody5FLCAxKTtcbiAgICAgICAgICAgIGlmICh3ZWVrZGF5IDwgMSB8fCB3ZWVrZGF5ID4gNykge1xuICAgICAgICAgICAgICAgIHdlZWtkYXlPdmVyZmxvdyA9IHRydWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkb3cgPSBjb25maWcuX2xvY2FsZS5fd2Vlay5kb3c7XG4gICAgICAgICAgICBkb3kgPSBjb25maWcuX2xvY2FsZS5fd2Vlay5kb3k7XG5cbiAgICAgICAgICAgIHZhciBjdXJXZWVrID0gd2Vla09mWWVhcihjcmVhdGVMb2NhbCgpLCBkb3csIGRveSk7XG5cbiAgICAgICAgICAgIHdlZWtZZWFyID0gZGVmYXVsdHMody5nZywgY29uZmlnLl9hW1lFQVJdLCBjdXJXZWVrLnllYXIpO1xuXG4gICAgICAgICAgICAvLyBEZWZhdWx0IHRvIGN1cnJlbnQgd2Vlay5cbiAgICAgICAgICAgIHdlZWsgPSBkZWZhdWx0cyh3LncsIGN1cldlZWsud2Vlayk7XG5cbiAgICAgICAgICAgIGlmICh3LmQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIHdlZWtkYXkgLS0gbG93IGRheSBudW1iZXJzIGFyZSBjb25zaWRlcmVkIG5leHQgd2Vla1xuICAgICAgICAgICAgICAgIHdlZWtkYXkgPSB3LmQ7XG4gICAgICAgICAgICAgICAgaWYgKHdlZWtkYXkgPCAwIHx8IHdlZWtkYXkgPiA2KSB7XG4gICAgICAgICAgICAgICAgICAgIHdlZWtkYXlPdmVyZmxvdyA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmICh3LmUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIC8vIGxvY2FsIHdlZWtkYXkgLS0gY291bnRpbmcgc3RhcnRzIGZyb20gYmVnaW5pbmcgb2Ygd2Vla1xuICAgICAgICAgICAgICAgIHdlZWtkYXkgPSB3LmUgKyBkb3c7XG4gICAgICAgICAgICAgICAgaWYgKHcuZSA8IDAgfHwgdy5lID4gNikge1xuICAgICAgICAgICAgICAgICAgICB3ZWVrZGF5T3ZlcmZsb3cgPSB0cnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgLy8gZGVmYXVsdCB0byBiZWdpbmluZyBvZiB3ZWVrXG4gICAgICAgICAgICAgICAgd2Vla2RheSA9IGRvdztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAod2VlayA8IDEgfHwgd2VlayA+IHdlZWtzSW5ZZWFyKHdlZWtZZWFyLCBkb3csIGRveSkpIHtcbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLl9vdmVyZmxvd1dlZWtzID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh3ZWVrZGF5T3ZlcmZsb3cgIT0gbnVsbCkge1xuICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuX292ZXJmbG93V2Vla2RheSA9IHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0ZW1wID0gZGF5T2ZZZWFyRnJvbVdlZWtzKHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSk7XG4gICAgICAgICAgICBjb25maWcuX2FbWUVBUl0gPSB0ZW1wLnllYXI7XG4gICAgICAgICAgICBjb25maWcuX2RheU9mWWVhciA9IHRlbXAuZGF5T2ZZZWFyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gaXNvIDg2MDEgcmVnZXhcbiAgICAvLyAwMDAwLTAwLTAwIDAwMDAtVzAwIG9yIDAwMDAtVzAwLTAgKyBUICsgMDAgb3IgMDA6MDAgb3IgMDA6MDA6MDAgb3IgMDA6MDA6MDAuMDAwICsgKzAwOjAwIG9yICswMDAwIG9yICswMClcbiAgICB2YXIgZXh0ZW5kZWRJc29SZWdleCA9IC9eXFxzKigoPzpbKy1dXFxkezZ9fFxcZHs0fSktKD86XFxkXFxkLVxcZFxcZHxXXFxkXFxkLVxcZHxXXFxkXFxkfFxcZFxcZFxcZHxcXGRcXGQpKSg/OihUfCApKFxcZFxcZCg/OjpcXGRcXGQoPzo6XFxkXFxkKD86Wy4sXVxcZCspPyk/KT8pKFtcXCtcXC1dXFxkXFxkKD86Oj9cXGRcXGQpP3xcXHMqWik/KT8kLztcbiAgICB2YXIgYmFzaWNJc29SZWdleCA9IC9eXFxzKigoPzpbKy1dXFxkezZ9fFxcZHs0fSkoPzpcXGRcXGRcXGRcXGR8V1xcZFxcZFxcZHxXXFxkXFxkfFxcZFxcZFxcZHxcXGRcXGQpKSg/OihUfCApKFxcZFxcZCg/OlxcZFxcZCg/OlxcZFxcZCg/OlsuLF1cXGQrKT8pPyk/KShbXFwrXFwtXVxcZFxcZCg/Ojo/XFxkXFxkKT98XFxzKlopPyk/JC87XG5cbiAgICB2YXIgdHpSZWdleCA9IC9afFsrLV1cXGRcXGQoPzo6P1xcZFxcZCk/LztcblxuICAgIHZhciBpc29EYXRlcyA9IFtcbiAgICAgICAgWydZWVlZWVktTU0tREQnLCAvWystXVxcZHs2fS1cXGRcXGQtXFxkXFxkL10sXG4gICAgICAgIFsnWVlZWS1NTS1ERCcsIC9cXGR7NH0tXFxkXFxkLVxcZFxcZC9dLFxuICAgICAgICBbJ0dHR0ctW1ddV1ctRScsIC9cXGR7NH0tV1xcZFxcZC1cXGQvXSxcbiAgICAgICAgWydHR0dHLVtXXVdXJywgL1xcZHs0fS1XXFxkXFxkLywgZmFsc2VdLFxuICAgICAgICBbJ1lZWVktREREJywgL1xcZHs0fS1cXGR7M30vXSxcbiAgICAgICAgWydZWVlZLU1NJywgL1xcZHs0fS1cXGRcXGQvLCBmYWxzZV0sXG4gICAgICAgIFsnWVlZWVlZTU1ERCcsIC9bKy1dXFxkezEwfS9dLFxuICAgICAgICBbJ1lZWVlNTUREJywgL1xcZHs4fS9dLFxuICAgICAgICAvLyBZWVlZTU0gaXMgTk9UIGFsbG93ZWQgYnkgdGhlIHN0YW5kYXJkXG4gICAgICAgIFsnR0dHR1tXXVdXRScsIC9cXGR7NH1XXFxkezN9L10sXG4gICAgICAgIFsnR0dHR1tXXVdXJywgL1xcZHs0fVdcXGR7Mn0vLCBmYWxzZV0sXG4gICAgICAgIFsnWVlZWURERCcsIC9cXGR7N30vXVxuICAgIF07XG5cbiAgICAvLyBpc28gdGltZSBmb3JtYXRzIGFuZCByZWdleGVzXG4gICAgdmFyIGlzb1RpbWVzID0gW1xuICAgICAgICBbJ0hIOm1tOnNzLlNTU1MnLCAvXFxkXFxkOlxcZFxcZDpcXGRcXGRcXC5cXGQrL10sXG4gICAgICAgIFsnSEg6bW06c3MsU1NTUycsIC9cXGRcXGQ6XFxkXFxkOlxcZFxcZCxcXGQrL10sXG4gICAgICAgIFsnSEg6bW06c3MnLCAvXFxkXFxkOlxcZFxcZDpcXGRcXGQvXSxcbiAgICAgICAgWydISDptbScsIC9cXGRcXGQ6XFxkXFxkL10sXG4gICAgICAgIFsnSEhtbXNzLlNTU1MnLCAvXFxkXFxkXFxkXFxkXFxkXFxkXFwuXFxkKy9dLFxuICAgICAgICBbJ0hIbW1zcyxTU1NTJywgL1xcZFxcZFxcZFxcZFxcZFxcZCxcXGQrL10sXG4gICAgICAgIFsnSEhtbXNzJywgL1xcZFxcZFxcZFxcZFxcZFxcZC9dLFxuICAgICAgICBbJ0hIbW0nLCAvXFxkXFxkXFxkXFxkL10sXG4gICAgICAgIFsnSEgnLCAvXFxkXFxkL11cbiAgICBdO1xuXG4gICAgdmFyIGFzcE5ldEpzb25SZWdleCA9IC9eXFwvP0RhdGVcXCgoXFwtP1xcZCspL2k7XG5cbiAgICAvLyBkYXRlIGZyb20gaXNvIGZvcm1hdFxuICAgIGZ1bmN0aW9uIGNvbmZpZ0Zyb21JU08oY29uZmlnKSB7XG4gICAgICAgIHZhciBpLCBsLFxuICAgICAgICAgICAgc3RyaW5nID0gY29uZmlnLl9pLFxuICAgICAgICAgICAgbWF0Y2ggPSBleHRlbmRlZElzb1JlZ2V4LmV4ZWMoc3RyaW5nKSB8fCBiYXNpY0lzb1JlZ2V4LmV4ZWMoc3RyaW5nKSxcbiAgICAgICAgICAgIGFsbG93VGltZSwgZGF0ZUZvcm1hdCwgdGltZUZvcm1hdCwgdHpGb3JtYXQ7XG5cbiAgICAgICAgaWYgKG1hdGNoKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pc28gPSB0cnVlO1xuXG4gICAgICAgICAgICBmb3IgKGkgPSAwLCBsID0gaXNvRGF0ZXMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGlzb0RhdGVzW2ldWzFdLmV4ZWMobWF0Y2hbMV0pKSB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGVGb3JtYXQgPSBpc29EYXRlc1tpXVswXTtcbiAgICAgICAgICAgICAgICAgICAgYWxsb3dUaW1lID0gaXNvRGF0ZXNbaV1bMl0gIT09IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoZGF0ZUZvcm1hdCA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgY29uZmlnLl9pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG1hdGNoWzNdKSB7XG4gICAgICAgICAgICAgICAgZm9yIChpID0gMCwgbCA9IGlzb1RpbWVzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNvVGltZXNbaV1bMV0uZXhlYyhtYXRjaFszXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIG1hdGNoWzJdIHNob3VsZCBiZSAnVCcgb3Igc3BhY2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpbWVGb3JtYXQgPSAobWF0Y2hbMl0gfHwgJyAnKSArIGlzb1RpbWVzW2ldWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKHRpbWVGb3JtYXQgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghYWxsb3dUaW1lICYmIHRpbWVGb3JtYXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChtYXRjaFs0XSkge1xuICAgICAgICAgICAgICAgIGlmICh0elJlZ2V4LmV4ZWMobWF0Y2hbNF0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHR6Rm9ybWF0ID0gJ1onO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uZmlnLl9mID0gZGF0ZUZvcm1hdCArICh0aW1lRm9ybWF0IHx8ICcnKSArICh0ekZvcm1hdCB8fCAnJyk7XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25maWcuX2lzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFJGQyAyODIyIHJlZ2V4OiBGb3IgZGV0YWlscyBzZWUgaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzI4MjIjc2VjdGlvbi0zLjNcbiAgICB2YXIgcmZjMjgyMiA9IC9eKD86KE1vbnxUdWV8V2VkfFRodXxGcml8U2F0fFN1biksP1xccyk/KFxcZHsxLDJ9KVxccyhKYW58RmVifE1hcnxBcHJ8TWF5fEp1bnxKdWx8QXVnfFNlcHxPY3R8Tm92fERlYylcXHMoXFxkezIsNH0pXFxzKFxcZFxcZCk6KFxcZFxcZCkoPzo6KFxcZFxcZCkpP1xccyg/OihVVHxHTVR8W0VDTVBdW1NEXVQpfChbWnpdKXwoWystXVxcZHs0fSkpJC87XG5cbiAgICBmdW5jdGlvbiBleHRyYWN0RnJvbVJGQzI4MjJTdHJpbmdzKHllYXJTdHIsIG1vbnRoU3RyLCBkYXlTdHIsIGhvdXJTdHIsIG1pbnV0ZVN0ciwgc2Vjb25kU3RyKSB7XG4gICAgICAgIHZhciByZXN1bHQgPSBbXG4gICAgICAgICAgICB1bnRydW5jYXRlWWVhcih5ZWFyU3RyKSxcbiAgICAgICAgICAgIGRlZmF1bHRMb2NhbGVNb250aHNTaG9ydC5pbmRleE9mKG1vbnRoU3RyKSxcbiAgICAgICAgICAgIHBhcnNlSW50KGRheVN0ciwgMTApLFxuICAgICAgICAgICAgcGFyc2VJbnQoaG91clN0ciwgMTApLFxuICAgICAgICAgICAgcGFyc2VJbnQobWludXRlU3RyLCAxMClcbiAgICAgICAgXTtcblxuICAgICAgICBpZiAoc2Vjb25kU3RyKSB7XG4gICAgICAgICAgICByZXN1bHQucHVzaChwYXJzZUludChzZWNvbmRTdHIsIDEwKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHVudHJ1bmNhdGVZZWFyKHllYXJTdHIpIHtcbiAgICAgICAgdmFyIHllYXIgPSBwYXJzZUludCh5ZWFyU3RyLCAxMCk7XG4gICAgICAgIGlmICh5ZWFyIDw9IDQ5KSB7XG4gICAgICAgICAgICByZXR1cm4gMjAwMCArIHllYXI7XG4gICAgICAgIH0gZWxzZSBpZiAoeWVhciA8PSA5OTkpIHtcbiAgICAgICAgICAgIHJldHVybiAxOTAwICsgeWVhcjtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4geWVhcjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwcmVwcm9jZXNzUkZDMjgyMihzKSB7XG4gICAgICAgIC8vIFJlbW92ZSBjb21tZW50cyBhbmQgZm9sZGluZyB3aGl0ZXNwYWNlIGFuZCByZXBsYWNlIG11bHRpcGxlLXNwYWNlcyB3aXRoIGEgc2luZ2xlIHNwYWNlXG4gICAgICAgIHJldHVybiBzLnJlcGxhY2UoL1xcKFteKV0qXFwpfFtcXG5cXHRdL2csICcgJykucmVwbGFjZSgvKFxcc1xccyspL2csICcgJykucmVwbGFjZSgvXlxcc1xccyovLCAnJykucmVwbGFjZSgvXFxzXFxzKiQvLCAnJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY2hlY2tXZWVrZGF5KHdlZWtkYXlTdHIsIHBhcnNlZElucHV0LCBjb25maWcpIHtcbiAgICAgICAgaWYgKHdlZWtkYXlTdHIpIHtcbiAgICAgICAgICAgIC8vIFRPRE86IFJlcGxhY2UgdGhlIHZhbmlsbGEgSlMgRGF0ZSBvYmplY3Qgd2l0aCBhbiBpbmRlcGVudGVudCBkYXktb2Ytd2VlayBjaGVjay5cbiAgICAgICAgICAgIHZhciB3ZWVrZGF5UHJvdmlkZWQgPSBkZWZhdWx0TG9jYWxlV2Vla2RheXNTaG9ydC5pbmRleE9mKHdlZWtkYXlTdHIpLFxuICAgICAgICAgICAgICAgIHdlZWtkYXlBY3R1YWwgPSBuZXcgRGF0ZShwYXJzZWRJbnB1dFswXSwgcGFyc2VkSW5wdXRbMV0sIHBhcnNlZElucHV0WzJdKS5nZXREYXkoKTtcbiAgICAgICAgICAgIGlmICh3ZWVrZGF5UHJvdmlkZWQgIT09IHdlZWtkYXlBY3R1YWwpIHtcbiAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS53ZWVrZGF5TWlzbWF0Y2ggPSB0cnVlO1xuICAgICAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YXIgb2JzT2Zmc2V0cyA9IHtcbiAgICAgICAgVVQ6IDAsXG4gICAgICAgIEdNVDogMCxcbiAgICAgICAgRURUOiAtNCAqIDYwLFxuICAgICAgICBFU1Q6IC01ICogNjAsXG4gICAgICAgIENEVDogLTUgKiA2MCxcbiAgICAgICAgQ1NUOiAtNiAqIDYwLFxuICAgICAgICBNRFQ6IC02ICogNjAsXG4gICAgICAgIE1TVDogLTcgKiA2MCxcbiAgICAgICAgUERUOiAtNyAqIDYwLFxuICAgICAgICBQU1Q6IC04ICogNjBcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gY2FsY3VsYXRlT2Zmc2V0KG9ic09mZnNldCwgbWlsaXRhcnlPZmZzZXQsIG51bU9mZnNldCkge1xuICAgICAgICBpZiAob2JzT2Zmc2V0KSB7XG4gICAgICAgICAgICByZXR1cm4gb2JzT2Zmc2V0c1tvYnNPZmZzZXRdO1xuICAgICAgICB9IGVsc2UgaWYgKG1pbGl0YXJ5T2Zmc2V0KSB7XG4gICAgICAgICAgICAvLyB0aGUgb25seSBhbGxvd2VkIG1pbGl0YXJ5IHR6IGlzIFpcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmFyIGhtID0gcGFyc2VJbnQobnVtT2Zmc2V0LCAxMCk7XG4gICAgICAgICAgICB2YXIgbSA9IGhtICUgMTAwLCBoID0gKGhtIC0gbSkgLyAxMDA7XG4gICAgICAgICAgICByZXR1cm4gaCAqIDYwICsgbTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIGRhdGUgYW5kIHRpbWUgZnJvbSByZWYgMjgyMiBmb3JtYXRcbiAgICBmdW5jdGlvbiBjb25maWdGcm9tUkZDMjgyMihjb25maWcpIHtcbiAgICAgICAgdmFyIG1hdGNoID0gcmZjMjgyMi5leGVjKHByZXByb2Nlc3NSRkMyODIyKGNvbmZpZy5faSkpO1xuICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIHZhciBwYXJzZWRBcnJheSA9IGV4dHJhY3RGcm9tUkZDMjgyMlN0cmluZ3MobWF0Y2hbNF0sIG1hdGNoWzNdLCBtYXRjaFsyXSwgbWF0Y2hbNV0sIG1hdGNoWzZdLCBtYXRjaFs3XSk7XG4gICAgICAgICAgICBpZiAoIWNoZWNrV2Vla2RheShtYXRjaFsxXSwgcGFyc2VkQXJyYXksIGNvbmZpZykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbmZpZy5fYSA9IHBhcnNlZEFycmF5O1xuICAgICAgICAgICAgY29uZmlnLl90em0gPSBjYWxjdWxhdGVPZmZzZXQobWF0Y2hbOF0sIG1hdGNoWzldLCBtYXRjaFsxMF0pO1xuXG4gICAgICAgICAgICBjb25maWcuX2QgPSBjcmVhdGVVVENEYXRlLmFwcGx5KG51bGwsIGNvbmZpZy5fYSk7XG4gICAgICAgICAgICBjb25maWcuX2Quc2V0VVRDTWludXRlcyhjb25maWcuX2QuZ2V0VVRDTWludXRlcygpIC0gY29uZmlnLl90em0pO1xuXG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5yZmMyODIyID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbmZpZy5faXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZGF0ZSBmcm9tIGlzbyBmb3JtYXQgb3IgZmFsbGJhY2tcbiAgICBmdW5jdGlvbiBjb25maWdGcm9tU3RyaW5nKGNvbmZpZykge1xuICAgICAgICB2YXIgbWF0Y2hlZCA9IGFzcE5ldEpzb25SZWdleC5leGVjKGNvbmZpZy5faSk7XG5cbiAgICAgICAgaWYgKG1hdGNoZWQgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKCttYXRjaGVkWzFdKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbmZpZ0Zyb21JU08oY29uZmlnKTtcbiAgICAgICAgaWYgKGNvbmZpZy5faXNWYWxpZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGRlbGV0ZSBjb25maWcuX2lzVmFsaWQ7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25maWdGcm9tUkZDMjgyMihjb25maWcpO1xuICAgICAgICBpZiAoY29uZmlnLl9pc1ZhbGlkID09PSBmYWxzZSkge1xuICAgICAgICAgICAgZGVsZXRlIGNvbmZpZy5faXNWYWxpZDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpbmFsIGF0dGVtcHQsIHVzZSBJbnB1dCBGYWxsYmFja1xuICAgICAgICBob29rcy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayhjb25maWcpO1xuICAgIH1cblxuICAgIGhvb2tzLmNyZWF0ZUZyb21JbnB1dEZhbGxiYWNrID0gZGVwcmVjYXRlKFxuICAgICAgICAndmFsdWUgcHJvdmlkZWQgaXMgbm90IGluIGEgcmVjb2duaXplZCBSRkMyODIyIG9yIElTTyBmb3JtYXQuIG1vbWVudCBjb25zdHJ1Y3Rpb24gZmFsbHMgYmFjayB0byBqcyBEYXRlKCksICcgK1xuICAgICAgICAnd2hpY2ggaXMgbm90IHJlbGlhYmxlIGFjcm9zcyBhbGwgYnJvd3NlcnMgYW5kIHZlcnNpb25zLiBOb24gUkZDMjgyMi9JU08gZGF0ZSBmb3JtYXRzIGFyZSAnICtcbiAgICAgICAgJ2Rpc2NvdXJhZ2VkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYW4gdXBjb21pbmcgbWFqb3IgcmVsZWFzZS4gUGxlYXNlIHJlZmVyIHRvICcgK1xuICAgICAgICAnaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9qcy1kYXRlLyBmb3IgbW9yZSBpbmZvLicsXG4gICAgICAgIGZ1bmN0aW9uIChjb25maWcpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKGNvbmZpZy5faSArIChjb25maWcuX3VzZVVUQyA/ICcgVVRDJyA6ICcnKSk7XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgLy8gY29uc3RhbnQgdGhhdCByZWZlcnMgdG8gdGhlIElTTyBzdGFuZGFyZFxuICAgIGhvb2tzLklTT184NjAxID0gZnVuY3Rpb24gKCkge307XG5cbiAgICAvLyBjb25zdGFudCB0aGF0IHJlZmVycyB0byB0aGUgUkZDIDI4MjIgZm9ybVxuICAgIGhvb2tzLlJGQ18yODIyID0gZnVuY3Rpb24gKCkge307XG5cbiAgICAvLyBkYXRlIGZyb20gc3RyaW5nIGFuZCBmb3JtYXQgc3RyaW5nXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbVN0cmluZ0FuZEZvcm1hdChjb25maWcpIHtcbiAgICAgICAgLy8gVE9ETzogTW92ZSB0aGlzIHRvIGFub3RoZXIgcGFydCBvZiB0aGUgY3JlYXRpb24gZmxvdyB0byBwcmV2ZW50IGNpcmN1bGFyIGRlcHNcbiAgICAgICAgaWYgKGNvbmZpZy5fZiA9PT0gaG9va3MuSVNPXzg2MDEpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21JU08oY29uZmlnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29uZmlnLl9mID09PSBob29rcy5SRkNfMjgyMikge1xuICAgICAgICAgICAgY29uZmlnRnJvbVJGQzI4MjIoY29uZmlnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25maWcuX2EgPSBbXTtcbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuZW1wdHkgPSB0cnVlO1xuXG4gICAgICAgIC8vIFRoaXMgYXJyYXkgaXMgdXNlZCB0byBtYWtlIGEgRGF0ZSwgZWl0aGVyIHdpdGggYG5ldyBEYXRlYCBvciBgRGF0ZS5VVENgXG4gICAgICAgIHZhciBzdHJpbmcgPSAnJyArIGNvbmZpZy5faSxcbiAgICAgICAgICAgIGksIHBhcnNlZElucHV0LCB0b2tlbnMsIHRva2VuLCBza2lwcGVkLFxuICAgICAgICAgICAgc3RyaW5nTGVuZ3RoID0gc3RyaW5nLmxlbmd0aCxcbiAgICAgICAgICAgIHRvdGFsUGFyc2VkSW5wdXRMZW5ndGggPSAwO1xuXG4gICAgICAgIHRva2VucyA9IGV4cGFuZEZvcm1hdChjb25maWcuX2YsIGNvbmZpZy5fbG9jYWxlKS5tYXRjaChmb3JtYXR0aW5nVG9rZW5zKSB8fCBbXTtcblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICB0b2tlbiA9IHRva2Vuc1tpXTtcbiAgICAgICAgICAgIHBhcnNlZElucHV0ID0gKHN0cmluZy5tYXRjaChnZXRQYXJzZVJlZ2V4Rm9yVG9rZW4odG9rZW4sIGNvbmZpZykpIHx8IFtdKVswXTtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCd0b2tlbicsIHRva2VuLCAncGFyc2VkSW5wdXQnLCBwYXJzZWRJbnB1dCxcbiAgICAgICAgICAgIC8vICAgICAgICAgJ3JlZ2V4JywgZ2V0UGFyc2VSZWdleEZvclRva2VuKHRva2VuLCBjb25maWcpKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRJbnB1dCkge1xuICAgICAgICAgICAgICAgIHNraXBwZWQgPSBzdHJpbmcuc3Vic3RyKDAsIHN0cmluZy5pbmRleE9mKHBhcnNlZElucHV0KSk7XG4gICAgICAgICAgICAgICAgaWYgKHNraXBwZWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRJbnB1dC5wdXNoKHNraXBwZWQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBzdHJpbmcgPSBzdHJpbmcuc2xpY2Uoc3RyaW5nLmluZGV4T2YocGFyc2VkSW5wdXQpICsgcGFyc2VkSW5wdXQubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB0b3RhbFBhcnNlZElucHV0TGVuZ3RoICs9IHBhcnNlZElucHV0Lmxlbmd0aDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIGRvbid0IHBhcnNlIGlmIGl0J3Mgbm90IGEga25vd24gdG9rZW5cbiAgICAgICAgICAgIGlmIChmb3JtYXRUb2tlbkZ1bmN0aW9uc1t0b2tlbl0pIHtcbiAgICAgICAgICAgICAgICBpZiAocGFyc2VkSW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykuZW1wdHkgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyhjb25maWcpLnVudXNlZFRva2Vucy5wdXNoKHRva2VuKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgYWRkVGltZVRvQXJyYXlGcm9tVG9rZW4odG9rZW4sIHBhcnNlZElucHV0LCBjb25maWcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZWxzZSBpZiAoY29uZmlnLl9zdHJpY3QgJiYgIXBhcnNlZElucHV0KSB7XG4gICAgICAgICAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykudW51c2VkVG9rZW5zLnB1c2godG9rZW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gYWRkIHJlbWFpbmluZyB1bnBhcnNlZCBpbnB1dCBsZW5ndGggdG8gdGhlIHN0cmluZ1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5jaGFyc0xlZnRPdmVyID0gc3RyaW5nTGVuZ3RoIC0gdG90YWxQYXJzZWRJbnB1dExlbmd0aDtcbiAgICAgICAgaWYgKHN0cmluZy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS51bnVzZWRJbnB1dC5wdXNoKHN0cmluZyk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBjbGVhciBfMTJoIGZsYWcgaWYgaG91ciBpcyA8PSAxMlxuICAgICAgICBpZiAoY29uZmlnLl9hW0hPVVJdIDw9IDEyICYmXG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID09PSB0cnVlICYmXG4gICAgICAgICAgICBjb25maWcuX2FbSE9VUl0gPiAwKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5iaWdIb3VyID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgZ2V0UGFyc2luZ0ZsYWdzKGNvbmZpZykucGFyc2VkRGF0ZVBhcnRzID0gY29uZmlnLl9hLnNsaWNlKDApO1xuICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5tZXJpZGllbSA9IGNvbmZpZy5fbWVyaWRpZW07XG4gICAgICAgIC8vIGhhbmRsZSBtZXJpZGllbVxuICAgICAgICBjb25maWcuX2FbSE9VUl0gPSBtZXJpZGllbUZpeFdyYXAoY29uZmlnLl9sb2NhbGUsIGNvbmZpZy5fYVtIT1VSXSwgY29uZmlnLl9tZXJpZGllbSk7XG5cbiAgICAgICAgY29uZmlnRnJvbUFycmF5KGNvbmZpZyk7XG4gICAgICAgIGNoZWNrT3ZlcmZsb3coY29uZmlnKTtcbiAgICB9XG5cblxuICAgIGZ1bmN0aW9uIG1lcmlkaWVtRml4V3JhcCAobG9jYWxlLCBob3VyLCBtZXJpZGllbSkge1xuICAgICAgICB2YXIgaXNQbTtcblxuICAgICAgICBpZiAobWVyaWRpZW0gPT0gbnVsbCkge1xuICAgICAgICAgICAgLy8gbm90aGluZyB0byBkb1xuICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxvY2FsZS5tZXJpZGllbUhvdXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGxvY2FsZS5tZXJpZGllbUhvdXIoaG91ciwgbWVyaWRpZW0pO1xuICAgICAgICB9IGVsc2UgaWYgKGxvY2FsZS5pc1BNICE9IG51bGwpIHtcbiAgICAgICAgICAgIC8vIEZhbGxiYWNrXG4gICAgICAgICAgICBpc1BtID0gbG9jYWxlLmlzUE0obWVyaWRpZW0pO1xuICAgICAgICAgICAgaWYgKGlzUG0gJiYgaG91ciA8IDEyKSB7XG4gICAgICAgICAgICAgICAgaG91ciArPSAxMjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghaXNQbSAmJiBob3VyID09PSAxMikge1xuICAgICAgICAgICAgICAgIGhvdXIgPSAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGhvdXI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyB0aGlzIGlzIG5vdCBzdXBwb3NlZCB0byBoYXBwZW5cbiAgICAgICAgICAgIHJldHVybiBob3VyO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gZGF0ZSBmcm9tIHN0cmluZyBhbmQgYXJyYXkgb2YgZm9ybWF0IHN0cmluZ3NcbiAgICBmdW5jdGlvbiBjb25maWdGcm9tU3RyaW5nQW5kQXJyYXkoY29uZmlnKSB7XG4gICAgICAgIHZhciB0ZW1wQ29uZmlnLFxuICAgICAgICAgICAgYmVzdE1vbWVudCxcblxuICAgICAgICAgICAgc2NvcmVUb0JlYXQsXG4gICAgICAgICAgICBpLFxuICAgICAgICAgICAgY3VycmVudFNjb3JlO1xuXG4gICAgICAgIGlmIChjb25maWcuX2YubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICBnZXRQYXJzaW5nRmxhZ3MoY29uZmlnKS5pbnZhbGlkRm9ybWF0ID0gdHJ1ZTtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKE5hTik7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgY29uZmlnLl9mLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjdXJyZW50U2NvcmUgPSAwO1xuICAgICAgICAgICAgdGVtcENvbmZpZyA9IGNvcHlDb25maWcoe30sIGNvbmZpZyk7XG4gICAgICAgICAgICBpZiAoY29uZmlnLl91c2VVVEMgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRlbXBDb25maWcuX3VzZVVUQyA9IGNvbmZpZy5fdXNlVVRDO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGVtcENvbmZpZy5fZiA9IGNvbmZpZy5fZltpXTtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmdBbmRGb3JtYXQodGVtcENvbmZpZyk7XG5cbiAgICAgICAgICAgIGlmICghaXNWYWxpZCh0ZW1wQ29uZmlnKSkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBpZiB0aGVyZSBpcyBhbnkgaW5wdXQgdGhhdCB3YXMgbm90IHBhcnNlZCBhZGQgYSBwZW5hbHR5IGZvciB0aGF0IGZvcm1hdFxuICAgICAgICAgICAgY3VycmVudFNjb3JlICs9IGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS5jaGFyc0xlZnRPdmVyO1xuXG4gICAgICAgICAgICAvL29yIHRva2Vuc1xuICAgICAgICAgICAgY3VycmVudFNjb3JlICs9IGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS51bnVzZWRUb2tlbnMubGVuZ3RoICogMTA7XG5cbiAgICAgICAgICAgIGdldFBhcnNpbmdGbGFncyh0ZW1wQ29uZmlnKS5zY29yZSA9IGN1cnJlbnRTY29yZTtcblxuICAgICAgICAgICAgaWYgKHNjb3JlVG9CZWF0ID09IG51bGwgfHwgY3VycmVudFNjb3JlIDwgc2NvcmVUb0JlYXQpIHtcbiAgICAgICAgICAgICAgICBzY29yZVRvQmVhdCA9IGN1cnJlbnRTY29yZTtcbiAgICAgICAgICAgICAgICBiZXN0TW9tZW50ID0gdGVtcENvbmZpZztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGV4dGVuZChjb25maWcsIGJlc3RNb21lbnQgfHwgdGVtcENvbmZpZyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbU9iamVjdChjb25maWcpIHtcbiAgICAgICAgaWYgKGNvbmZpZy5fZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGkgPSBub3JtYWxpemVPYmplY3RVbml0cyhjb25maWcuX2kpO1xuICAgICAgICBjb25maWcuX2EgPSBtYXAoW2kueWVhciwgaS5tb250aCwgaS5kYXkgfHwgaS5kYXRlLCBpLmhvdXIsIGkubWludXRlLCBpLnNlY29uZCwgaS5taWxsaXNlY29uZF0sIGZ1bmN0aW9uIChvYmopIHtcbiAgICAgICAgICAgIHJldHVybiBvYmogJiYgcGFyc2VJbnQob2JqLCAxMCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbmZpZ0Zyb21BcnJheShjb25maWcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUZyb21Db25maWcgKGNvbmZpZykge1xuICAgICAgICB2YXIgcmVzID0gbmV3IE1vbWVudChjaGVja092ZXJmbG93KHByZXBhcmVDb25maWcoY29uZmlnKSkpO1xuICAgICAgICBpZiAocmVzLl9uZXh0RGF5KSB7XG4gICAgICAgICAgICAvLyBBZGRpbmcgaXMgc21hcnQgZW5vdWdoIGFyb3VuZCBEU1RcbiAgICAgICAgICAgIHJlcy5hZGQoMSwgJ2QnKTtcbiAgICAgICAgICAgIHJlcy5fbmV4dERheSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJlcGFyZUNvbmZpZyAoY29uZmlnKSB7XG4gICAgICAgIHZhciBpbnB1dCA9IGNvbmZpZy5faSxcbiAgICAgICAgICAgIGZvcm1hdCA9IGNvbmZpZy5fZjtcblxuICAgICAgICBjb25maWcuX2xvY2FsZSA9IGNvbmZpZy5fbG9jYWxlIHx8IGdldExvY2FsZShjb25maWcuX2wpO1xuXG4gICAgICAgIGlmIChpbnB1dCA9PT0gbnVsbCB8fCAoZm9ybWF0ID09PSB1bmRlZmluZWQgJiYgaW5wdXQgPT09ICcnKSkge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUludmFsaWQoe251bGxJbnB1dDogdHJ1ZX0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbmZpZy5faSA9IGlucHV0ID0gY29uZmlnLl9sb2NhbGUucHJlcGFyc2UoaW5wdXQpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzTW9tZW50KGlucHV0KSkge1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBNb21lbnQoY2hlY2tPdmVyZmxvdyhpbnB1dCkpO1xuICAgICAgICB9IGVsc2UgaWYgKGlzRGF0ZShpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IGlucHV0O1xuICAgICAgICB9IGVsc2UgaWYgKGlzQXJyYXkoZm9ybWF0KSkge1xuICAgICAgICAgICAgY29uZmlnRnJvbVN0cmluZ0FuZEFycmF5KGNvbmZpZyk7XG4gICAgICAgIH0gZWxzZSBpZiAoZm9ybWF0KSB7XG4gICAgICAgICAgICBjb25maWdGcm9tU3RyaW5nQW5kRm9ybWF0KGNvbmZpZyk7XG4gICAgICAgIH0gIGVsc2Uge1xuICAgICAgICAgICAgY29uZmlnRnJvbUlucHV0KGNvbmZpZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIWlzVmFsaWQoY29uZmlnKSkge1xuICAgICAgICAgICAgY29uZmlnLl9kID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb25maWc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY29uZmlnRnJvbUlucHV0KGNvbmZpZykge1xuICAgICAgICB2YXIgaW5wdXQgPSBjb25maWcuX2k7XG4gICAgICAgIGlmIChpc1VuZGVmaW5lZChpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKGhvb2tzLm5vdygpKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0RhdGUoaW5wdXQpKSB7XG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShpbnB1dC52YWx1ZU9mKCkpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21TdHJpbmcoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc0FycmF5KGlucHV0KSkge1xuICAgICAgICAgICAgY29uZmlnLl9hID0gbWFwKGlucHV0LnNsaWNlKDApLCBmdW5jdGlvbiAob2JqKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KG9iaiwgMTApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBjb25maWdGcm9tQXJyYXkoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc09iamVjdChpbnB1dCkpIHtcbiAgICAgICAgICAgIGNvbmZpZ0Zyb21PYmplY3QoY29uZmlnKTtcbiAgICAgICAgfSBlbHNlIGlmIChpc051bWJlcihpbnB1dCkpIHtcbiAgICAgICAgICAgIC8vIGZyb20gbWlsbGlzZWNvbmRzXG4gICAgICAgICAgICBjb25maWcuX2QgPSBuZXcgRGF0ZShpbnB1dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBob29rcy5jcmVhdGVGcm9tSW5wdXRGYWxsYmFjayhjb25maWcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlTG9jYWxPclVUQyAoaW5wdXQsIGZvcm1hdCwgbG9jYWxlLCBzdHJpY3QsIGlzVVRDKSB7XG4gICAgICAgIHZhciBjID0ge307XG5cbiAgICAgICAgaWYgKGxvY2FsZSA9PT0gdHJ1ZSB8fCBsb2NhbGUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICBzdHJpY3QgPSBsb2NhbGU7XG4gICAgICAgICAgICBsb2NhbGUgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoKGlzT2JqZWN0KGlucHV0KSAmJiBpc09iamVjdEVtcHR5KGlucHV0KSkgfHxcbiAgICAgICAgICAgICAgICAoaXNBcnJheShpbnB1dCkgJiYgaW5wdXQubGVuZ3RoID09PSAwKSkge1xuICAgICAgICAgICAgaW5wdXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgLy8gb2JqZWN0IGNvbnN0cnVjdGlvbiBtdXN0IGJlIGRvbmUgdGhpcyB3YXkuXG4gICAgICAgIC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8xNDIzXG4gICAgICAgIGMuX2lzQU1vbWVudE9iamVjdCA9IHRydWU7XG4gICAgICAgIGMuX3VzZVVUQyA9IGMuX2lzVVRDID0gaXNVVEM7XG4gICAgICAgIGMuX2wgPSBsb2NhbGU7XG4gICAgICAgIGMuX2kgPSBpbnB1dDtcbiAgICAgICAgYy5fZiA9IGZvcm1hdDtcbiAgICAgICAgYy5fc3RyaWN0ID0gc3RyaWN0O1xuXG4gICAgICAgIHJldHVybiBjcmVhdGVGcm9tQ29uZmlnKGMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNyZWF0ZUxvY2FsIChpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlTG9jYWxPclVUQyhpbnB1dCwgZm9ybWF0LCBsb2NhbGUsIHN0cmljdCwgZmFsc2UpO1xuICAgIH1cblxuICAgIHZhciBwcm90b3R5cGVNaW4gPSBkZXByZWNhdGUoXG4gICAgICAgICdtb21lbnQoKS5taW4gaXMgZGVwcmVjYXRlZCwgdXNlIG1vbWVudC5tYXggaW5zdGVhZC4gaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9taW4tbWF4LycsXG4gICAgICAgIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciBvdGhlciA9IGNyZWF0ZUxvY2FsLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG4gICAgICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG90aGVyIDwgdGhpcyA/IHRoaXMgOiBvdGhlcjtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUludmFsaWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICk7XG5cbiAgICB2YXIgcHJvdG90eXBlTWF4ID0gZGVwcmVjYXRlKFxuICAgICAgICAnbW9tZW50KCkubWF4IGlzIGRlcHJlY2F0ZWQsIHVzZSBtb21lbnQubWluIGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3MvbWluLW1heC8nLFxuICAgICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgb3RoZXIgPSBjcmVhdGVMb2NhbC5hcHBseShudWxsLCBhcmd1bWVudHMpO1xuICAgICAgICAgICAgaWYgKHRoaXMuaXNWYWxpZCgpICYmIG90aGVyLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBvdGhlciA+IHRoaXMgPyB0aGlzIDogb3RoZXI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVJbnZhbGlkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgLy8gUGljayBhIG1vbWVudCBtIGZyb20gbW9tZW50cyBzbyB0aGF0IG1bZm5dKG90aGVyKSBpcyB0cnVlIGZvciBhbGxcbiAgICAvLyBvdGhlci4gVGhpcyByZWxpZXMgb24gdGhlIGZ1bmN0aW9uIGZuIHRvIGJlIHRyYW5zaXRpdmUuXG4gICAgLy9cbiAgICAvLyBtb21lbnRzIHNob3VsZCBlaXRoZXIgYmUgYW4gYXJyYXkgb2YgbW9tZW50IG9iamVjdHMgb3IgYW4gYXJyYXksIHdob3NlXG4gICAgLy8gZmlyc3QgZWxlbWVudCBpcyBhbiBhcnJheSBvZiBtb21lbnQgb2JqZWN0cy5cbiAgICBmdW5jdGlvbiBwaWNrQnkoZm4sIG1vbWVudHMpIHtcbiAgICAgICAgdmFyIHJlcywgaTtcbiAgICAgICAgaWYgKG1vbWVudHMubGVuZ3RoID09PSAxICYmIGlzQXJyYXkobW9tZW50c1swXSkpIHtcbiAgICAgICAgICAgIG1vbWVudHMgPSBtb21lbnRzWzBdO1xuICAgICAgICB9XG4gICAgICAgIGlmICghbW9tZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVMb2NhbCgpO1xuICAgICAgICB9XG4gICAgICAgIHJlcyA9IG1vbWVudHNbMF07XG4gICAgICAgIGZvciAoaSA9IDE7IGkgPCBtb21lbnRzLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBpZiAoIW1vbWVudHNbaV0uaXNWYWxpZCgpIHx8IG1vbWVudHNbaV1bZm5dKHJlcykpIHtcbiAgICAgICAgICAgICAgICByZXMgPSBtb21lbnRzW2ldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogVXNlIFtdLnNvcnQgaW5zdGVhZD9cbiAgICBmdW5jdGlvbiBtaW4gKCkge1xuICAgICAgICB2YXIgYXJncyA9IFtdLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwKTtcblxuICAgICAgICByZXR1cm4gcGlja0J5KCdpc0JlZm9yZScsIGFyZ3MpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1heCAoKSB7XG4gICAgICAgIHZhciBhcmdzID0gW10uc2xpY2UuY2FsbChhcmd1bWVudHMsIDApO1xuXG4gICAgICAgIHJldHVybiBwaWNrQnkoJ2lzQWZ0ZXInLCBhcmdzKTtcbiAgICB9XG5cbiAgICB2YXIgbm93ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gRGF0ZS5ub3cgPyBEYXRlLm5vdygpIDogKyhuZXcgRGF0ZSgpKTtcbiAgICB9O1xuXG4gICAgdmFyIG9yZGVyaW5nID0gWyd5ZWFyJywgJ3F1YXJ0ZXInLCAnbW9udGgnLCAnd2VlaycsICdkYXknLCAnaG91cicsICdtaW51dGUnLCAnc2Vjb25kJywgJ21pbGxpc2Vjb25kJ107XG5cbiAgICBmdW5jdGlvbiBpc0R1cmF0aW9uVmFsaWQobSkge1xuICAgICAgICBmb3IgKHZhciBrZXkgaW4gbSkge1xuICAgICAgICAgICAgaWYgKCEoaW5kZXhPZi5jYWxsKG9yZGVyaW5nLCBrZXkpICE9PSAtMSAmJiAobVtrZXldID09IG51bGwgfHwgIWlzTmFOKG1ba2V5XSkpKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHZhciB1bml0SGFzRGVjaW1hbCA9IGZhbHNlO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IG9yZGVyaW5nLmxlbmd0aDsgKytpKSB7XG4gICAgICAgICAgICBpZiAobVtvcmRlcmluZ1tpXV0pIHtcbiAgICAgICAgICAgICAgICBpZiAodW5pdEhhc0RlY2ltYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOyAvLyBvbmx5IGFsbG93IG5vbi1pbnRlZ2VycyBmb3Igc21hbGxlc3QgdW5pdFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocGFyc2VGbG9hdChtW29yZGVyaW5nW2ldXSkgIT09IHRvSW50KG1bb3JkZXJpbmdbaV1dKSkge1xuICAgICAgICAgICAgICAgICAgICB1bml0SGFzRGVjaW1hbCA9IHRydWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNWYWxpZCQxKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNWYWxpZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVJbnZhbGlkJDEoKSB7XG4gICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbihOYU4pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIER1cmF0aW9uIChkdXJhdGlvbikge1xuICAgICAgICB2YXIgbm9ybWFsaXplZElucHV0ID0gbm9ybWFsaXplT2JqZWN0VW5pdHMoZHVyYXRpb24pLFxuICAgICAgICAgICAgeWVhcnMgPSBub3JtYWxpemVkSW5wdXQueWVhciB8fCAwLFxuICAgICAgICAgICAgcXVhcnRlcnMgPSBub3JtYWxpemVkSW5wdXQucXVhcnRlciB8fCAwLFxuICAgICAgICAgICAgbW9udGhzID0gbm9ybWFsaXplZElucHV0Lm1vbnRoIHx8IDAsXG4gICAgICAgICAgICB3ZWVrcyA9IG5vcm1hbGl6ZWRJbnB1dC53ZWVrIHx8IDAsXG4gICAgICAgICAgICBkYXlzID0gbm9ybWFsaXplZElucHV0LmRheSB8fCAwLFxuICAgICAgICAgICAgaG91cnMgPSBub3JtYWxpemVkSW5wdXQuaG91ciB8fCAwLFxuICAgICAgICAgICAgbWludXRlcyA9IG5vcm1hbGl6ZWRJbnB1dC5taW51dGUgfHwgMCxcbiAgICAgICAgICAgIHNlY29uZHMgPSBub3JtYWxpemVkSW5wdXQuc2Vjb25kIHx8IDAsXG4gICAgICAgICAgICBtaWxsaXNlY29uZHMgPSBub3JtYWxpemVkSW5wdXQubWlsbGlzZWNvbmQgfHwgMDtcblxuICAgICAgICB0aGlzLl9pc1ZhbGlkID0gaXNEdXJhdGlvblZhbGlkKG5vcm1hbGl6ZWRJbnB1dCk7XG5cbiAgICAgICAgLy8gcmVwcmVzZW50YXRpb24gZm9yIGRhdGVBZGRSZW1vdmVcbiAgICAgICAgdGhpcy5fbWlsbGlzZWNvbmRzID0gK21pbGxpc2Vjb25kcyArXG4gICAgICAgICAgICBzZWNvbmRzICogMWUzICsgLy8gMTAwMFxuICAgICAgICAgICAgbWludXRlcyAqIDZlNCArIC8vIDEwMDAgKiA2MFxuICAgICAgICAgICAgaG91cnMgKiAxMDAwICogNjAgKiA2MDsgLy91c2luZyAxMDAwICogNjAgKiA2MCBpbnN0ZWFkIG9mIDM2ZTUgdG8gYXZvaWQgZmxvYXRpbmcgcG9pbnQgcm91bmRpbmcgZXJyb3JzIGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8yOTc4XG4gICAgICAgIC8vIEJlY2F1c2Ugb2YgZGF0ZUFkZFJlbW92ZSB0cmVhdHMgMjQgaG91cnMgYXMgZGlmZmVyZW50IGZyb20gYVxuICAgICAgICAvLyBkYXkgd2hlbiB3b3JraW5nIGFyb3VuZCBEU1QsIHdlIG5lZWQgdG8gc3RvcmUgdGhlbSBzZXBhcmF0ZWx5XG4gICAgICAgIHRoaXMuX2RheXMgPSArZGF5cyArXG4gICAgICAgICAgICB3ZWVrcyAqIDc7XG4gICAgICAgIC8vIEl0IGlzIGltcG9zc2libGUgdG8gdHJhbnNsYXRlIG1vbnRocyBpbnRvIGRheXMgd2l0aG91dCBrbm93aW5nXG4gICAgICAgIC8vIHdoaWNoIG1vbnRocyB5b3UgYXJlIGFyZSB0YWxraW5nIGFib3V0LCBzbyB3ZSBoYXZlIHRvIHN0b3JlXG4gICAgICAgIC8vIGl0IHNlcGFyYXRlbHkuXG4gICAgICAgIHRoaXMuX21vbnRocyA9ICttb250aHMgK1xuICAgICAgICAgICAgcXVhcnRlcnMgKiAzICtcbiAgICAgICAgICAgIHllYXJzICogMTI7XG5cbiAgICAgICAgdGhpcy5fZGF0YSA9IHt9O1xuXG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IGdldExvY2FsZSgpO1xuXG4gICAgICAgIHRoaXMuX2J1YmJsZSgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRHVyYXRpb24gKG9iaikge1xuICAgICAgICByZXR1cm4gb2JqIGluc3RhbmNlb2YgRHVyYXRpb247XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWJzUm91bmQgKG51bWJlcikge1xuICAgICAgICBpZiAobnVtYmVyIDwgMCkge1xuICAgICAgICAgICAgcmV0dXJuIE1hdGgucm91bmQoLTEgKiBudW1iZXIpICogLTE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5yb3VuZChudW1iZXIpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgZnVuY3Rpb24gb2Zmc2V0ICh0b2tlbiwgc2VwYXJhdG9yKSB7XG4gICAgICAgIGFkZEZvcm1hdFRva2VuKHRva2VuLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgb2Zmc2V0ID0gdGhpcy51dGNPZmZzZXQoKTtcbiAgICAgICAgICAgIHZhciBzaWduID0gJysnO1xuICAgICAgICAgICAgaWYgKG9mZnNldCA8IDApIHtcbiAgICAgICAgICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0O1xuICAgICAgICAgICAgICAgIHNpZ24gPSAnLSc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc2lnbiArIHplcm9GaWxsKH5+KG9mZnNldCAvIDYwKSwgMikgKyBzZXBhcmF0b3IgKyB6ZXJvRmlsbCh+fihvZmZzZXQpICUgNjAsIDIpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvZmZzZXQoJ1onLCAnOicpO1xuICAgIG9mZnNldCgnWlonLCAnJyk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdaJywgIG1hdGNoU2hvcnRPZmZzZXQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1paJywgbWF0Y2hTaG9ydE9mZnNldCk7XG4gICAgYWRkUGFyc2VUb2tlbihbJ1onLCAnWlonXSwgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5fdXNlVVRDID0gdHJ1ZTtcbiAgICAgICAgY29uZmlnLl90em0gPSBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoU2hvcnRPZmZzZXQsIGlucHV0KTtcbiAgICB9KTtcblxuICAgIC8vIEhFTFBFUlNcblxuICAgIC8vIHRpbWV6b25lIGNodW5rZXJcbiAgICAvLyAnKzEwOjAwJyA+IFsnMTAnLCAgJzAwJ11cbiAgICAvLyAnLTE1MzAnICA+IFsnLTE1JywgJzMwJ11cbiAgICB2YXIgY2h1bmtPZmZzZXQgPSAvKFtcXCtcXC1dfFxcZFxcZCkvZ2k7XG5cbiAgICBmdW5jdGlvbiBvZmZzZXRGcm9tU3RyaW5nKG1hdGNoZXIsIHN0cmluZykge1xuICAgICAgICB2YXIgbWF0Y2hlcyA9IChzdHJpbmcgfHwgJycpLm1hdGNoKG1hdGNoZXIpO1xuXG4gICAgICAgIGlmIChtYXRjaGVzID09PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjaHVuayAgID0gbWF0Y2hlc1ttYXRjaGVzLmxlbmd0aCAtIDFdIHx8IFtdO1xuICAgICAgICB2YXIgcGFydHMgICA9IChjaHVuayArICcnKS5tYXRjaChjaHVua09mZnNldCkgfHwgWyctJywgMCwgMF07XG4gICAgICAgIHZhciBtaW51dGVzID0gKyhwYXJ0c1sxXSAqIDYwKSArIHRvSW50KHBhcnRzWzJdKTtcblxuICAgICAgICByZXR1cm4gbWludXRlcyA9PT0gMCA/XG4gICAgICAgICAgMCA6XG4gICAgICAgICAgcGFydHNbMF0gPT09ICcrJyA/IG1pbnV0ZXMgOiAtbWludXRlcztcbiAgICB9XG5cbiAgICAvLyBSZXR1cm4gYSBtb21lbnQgZnJvbSBpbnB1dCwgdGhhdCBpcyBsb2NhbC91dGMvem9uZSBlcXVpdmFsZW50IHRvIG1vZGVsLlxuICAgIGZ1bmN0aW9uIGNsb25lV2l0aE9mZnNldChpbnB1dCwgbW9kZWwpIHtcbiAgICAgICAgdmFyIHJlcywgZGlmZjtcbiAgICAgICAgaWYgKG1vZGVsLl9pc1VUQykge1xuICAgICAgICAgICAgcmVzID0gbW9kZWwuY2xvbmUoKTtcbiAgICAgICAgICAgIGRpZmYgPSAoaXNNb21lbnQoaW5wdXQpIHx8IGlzRGF0ZShpbnB1dCkgPyBpbnB1dC52YWx1ZU9mKCkgOiBjcmVhdGVMb2NhbChpbnB1dCkudmFsdWVPZigpKSAtIHJlcy52YWx1ZU9mKCk7XG4gICAgICAgICAgICAvLyBVc2UgbG93LWxldmVsIGFwaSwgYmVjYXVzZSB0aGlzIGZuIGlzIGxvdy1sZXZlbCBhcGkuXG4gICAgICAgICAgICByZXMuX2Quc2V0VGltZShyZXMuX2QudmFsdWVPZigpICsgZGlmZik7XG4gICAgICAgICAgICBob29rcy51cGRhdGVPZmZzZXQocmVzLCBmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm4gcmVzO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsKGlucHV0KS5sb2NhbCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RGF0ZU9mZnNldCAobSkge1xuICAgICAgICAvLyBPbiBGaXJlZm94LjI0IERhdGUjZ2V0VGltZXpvbmVPZmZzZXQgcmV0dXJucyBhIGZsb2F0aW5nIHBvaW50LlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vbW9tZW50L21vbWVudC9wdWxsLzE4NzFcbiAgICAgICAgcmV0dXJuIC1NYXRoLnJvdW5kKG0uX2QuZ2V0VGltZXpvbmVPZmZzZXQoKSAvIDE1KSAqIDE1O1xuICAgIH1cblxuICAgIC8vIEhPT0tTXG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgY2FsbGVkIHdoZW5ldmVyIGEgbW9tZW50IGlzIG11dGF0ZWQuXG4gICAgLy8gSXQgaXMgaW50ZW5kZWQgdG8ga2VlcCB0aGUgb2Zmc2V0IGluIHN5bmMgd2l0aCB0aGUgdGltZXpvbmUuXG4gICAgaG9va3MudXBkYXRlT2Zmc2V0ID0gZnVuY3Rpb24gKCkge307XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICAvLyBrZWVwTG9jYWxUaW1lID0gdHJ1ZSBtZWFucyBvbmx5IGNoYW5nZSB0aGUgdGltZXpvbmUsIHdpdGhvdXRcbiAgICAvLyBhZmZlY3RpbmcgdGhlIGxvY2FsIGhvdXIuIFNvIDU6MzE6MjYgKzAzMDAgLS1bdXRjT2Zmc2V0KDIsIHRydWUpXS0tPlxuICAgIC8vIDU6MzE6MjYgKzAyMDAgSXQgaXMgcG9zc2libGUgdGhhdCA1OjMxOjI2IGRvZXNuJ3QgZXhpc3Qgd2l0aCBvZmZzZXRcbiAgICAvLyArMDIwMCwgc28gd2UgYWRqdXN0IHRoZSB0aW1lIGFzIG5lZWRlZCwgdG8gYmUgdmFsaWQuXG4gICAgLy9cbiAgICAvLyBLZWVwaW5nIHRoZSB0aW1lIGFjdHVhbGx5IGFkZHMvc3VidHJhY3RzIChvbmUgaG91cilcbiAgICAvLyBmcm9tIHRoZSBhY3R1YWwgcmVwcmVzZW50ZWQgdGltZS4gVGhhdCBpcyB3aHkgd2UgY2FsbCB1cGRhdGVPZmZzZXRcbiAgICAvLyBhIHNlY29uZCB0aW1lLiBJbiBjYXNlIGl0IHdhbnRzIHVzIHRvIGNoYW5nZSB0aGUgb2Zmc2V0IGFnYWluXG4gICAgLy8gX2NoYW5nZUluUHJvZ3Jlc3MgPT0gdHJ1ZSBjYXNlLCB0aGVuIHdlIGhhdmUgdG8gYWRqdXN0LCBiZWNhdXNlXG4gICAgLy8gdGhlcmUgaXMgbm8gc3VjaCB0aW1lIGluIHRoZSBnaXZlbiB0aW1lem9uZS5cbiAgICBmdW5jdGlvbiBnZXRTZXRPZmZzZXQgKGlucHV0LCBrZWVwTG9jYWxUaW1lLCBrZWVwTWludXRlcykge1xuICAgICAgICB2YXIgb2Zmc2V0ID0gdGhpcy5fb2Zmc2V0IHx8IDAsXG4gICAgICAgICAgICBsb2NhbEFkanVzdDtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIGlucHV0ICE9IG51bGwgPyB0aGlzIDogTmFOO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbnB1dCAhPSBudWxsKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGlucHV0ID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaFNob3J0T2Zmc2V0LCBpbnB1dCk7XG4gICAgICAgICAgICAgICAgaWYgKGlucHV0ID09PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoTWF0aC5hYnMoaW5wdXQpIDwgMTYgJiYgIWtlZXBNaW51dGVzKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSBpbnB1dCAqIDYwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCF0aGlzLl9pc1VUQyAmJiBrZWVwTG9jYWxUaW1lKSB7XG4gICAgICAgICAgICAgICAgbG9jYWxBZGp1c3QgPSBnZXREYXRlT2Zmc2V0KHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5fb2Zmc2V0ID0gaW5wdXQ7XG4gICAgICAgICAgICB0aGlzLl9pc1VUQyA9IHRydWU7XG4gICAgICAgICAgICBpZiAobG9jYWxBZGp1c3QgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkKGxvY2FsQWRqdXN0LCAnbScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKG9mZnNldCAhPT0gaW5wdXQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWtlZXBMb2NhbFRpbWUgfHwgdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcykge1xuICAgICAgICAgICAgICAgICAgICBhZGRTdWJ0cmFjdCh0aGlzLCBjcmVhdGVEdXJhdGlvbihpbnB1dCAtIG9mZnNldCwgJ20nKSwgMSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2NoYW5nZUluUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcyA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldCh0aGlzLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hhbmdlSW5Qcm9ncmVzcyA9IG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyBvZmZzZXQgOiBnZXREYXRlT2Zmc2V0KHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0Wm9uZSAoaW5wdXQsIGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgaW5wdXQgPSAtaW5wdXQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KGlucHV0LCBrZWVwTG9jYWxUaW1lKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gLXRoaXMudXRjT2Zmc2V0KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzZXRPZmZzZXRUb1VUQyAoa2VlcExvY2FsVGltZSkge1xuICAgICAgICByZXR1cm4gdGhpcy51dGNPZmZzZXQoMCwga2VlcExvY2FsVGltZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0T2Zmc2V0VG9Mb2NhbCAoa2VlcExvY2FsVGltZSkge1xuICAgICAgICBpZiAodGhpcy5faXNVVEMpIHtcbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KDAsIGtlZXBMb2NhbFRpbWUpO1xuICAgICAgICAgICAgdGhpcy5faXNVVEMgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGtlZXBMb2NhbFRpbWUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnRyYWN0KGdldERhdGVPZmZzZXQodGhpcyksICdtJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2V0T2Zmc2V0VG9QYXJzZWRPZmZzZXQgKCkge1xuICAgICAgICBpZiAodGhpcy5fdHptICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KHRoaXMuX3R6bSwgZmFsc2UsIHRydWUpO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLl9pID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgdmFyIHRab25lID0gb2Zmc2V0RnJvbVN0cmluZyhtYXRjaE9mZnNldCwgdGhpcy5faSk7XG4gICAgICAgICAgICBpZiAodFpvbmUgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KHRab25lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMudXRjT2Zmc2V0KDAsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGhhc0FsaWduZWRIb3VyT2Zmc2V0IChpbnB1dCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaW5wdXQgPSBpbnB1dCA/IGNyZWF0ZUxvY2FsKGlucHV0KS51dGNPZmZzZXQoKSA6IDA7XG5cbiAgICAgICAgcmV0dXJuICh0aGlzLnV0Y09mZnNldCgpIC0gaW5wdXQpICUgNjAgPT09IDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEYXlsaWdodFNhdmluZ1RpbWUgKCkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoKSA+IHRoaXMuY2xvbmUoKS5tb250aCgwKS51dGNPZmZzZXQoKSB8fFxuICAgICAgICAgICAgdGhpcy51dGNPZmZzZXQoKSA+IHRoaXMuY2xvbmUoKS5tb250aCg1KS51dGNPZmZzZXQoKVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRGF5bGlnaHRTYXZpbmdUaW1lU2hpZnRlZCAoKSB7XG4gICAgICAgIGlmICghaXNVbmRlZmluZWQodGhpcy5faXNEU1RTaGlmdGVkKSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX2lzRFNUU2hpZnRlZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBjID0ge307XG5cbiAgICAgICAgY29weUNvbmZpZyhjLCB0aGlzKTtcbiAgICAgICAgYyA9IHByZXBhcmVDb25maWcoYyk7XG5cbiAgICAgICAgaWYgKGMuX2EpIHtcbiAgICAgICAgICAgIHZhciBvdGhlciA9IGMuX2lzVVRDID8gY3JlYXRlVVRDKGMuX2EpIDogY3JlYXRlTG9jYWwoYy5fYSk7XG4gICAgICAgICAgICB0aGlzLl9pc0RTVFNoaWZ0ZWQgPSB0aGlzLmlzVmFsaWQoKSAmJlxuICAgICAgICAgICAgICAgIGNvbXBhcmVBcnJheXMoYy5fYSwgb3RoZXIudG9BcnJheSgpKSA+IDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9pc0RTVFNoaWZ0ZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9pc0RTVFNoaWZ0ZWQ7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNMb2NhbCAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/ICF0aGlzLl9pc1VUQyA6IGZhbHNlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVXRjT2Zmc2V0ICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy5faXNVVEMgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1V0YyAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSA/IHRoaXMuX2lzVVRDICYmIHRoaXMuX29mZnNldCA9PT0gMCA6IGZhbHNlO1xuICAgIH1cblxuICAgIC8vIEFTUC5ORVQganNvbiBkYXRlIGZvcm1hdCByZWdleFxuICAgIHZhciBhc3BOZXRSZWdleCA9IC9eKFxcLXxcXCspPyg/OihcXGQqKVsuIF0pPyhcXGQrKVxcOihcXGQrKSg/OlxcOihcXGQrKShcXC5cXGQqKT8pPyQvO1xuXG4gICAgLy8gZnJvbSBodHRwOi8vZG9jcy5jbG9zdXJlLWxpYnJhcnkuZ29vZ2xlY29kZS5jb20vZ2l0L2Nsb3N1cmVfZ29vZ19kYXRlX2RhdGUuanMuc291cmNlLmh0bWxcbiAgICAvLyBzb21ld2hhdCBtb3JlIGluIGxpbmUgd2l0aCA0LjQuMy4yIDIwMDQgc3BlYywgYnV0IGFsbG93cyBkZWNpbWFsIGFueXdoZXJlXG4gICAgLy8gYW5kIGZ1cnRoZXIgbW9kaWZpZWQgdG8gYWxsb3cgZm9yIHN0cmluZ3MgY29udGFpbmluZyBib3RoIHdlZWsgYW5kIGRheVxuICAgIHZhciBpc29SZWdleCA9IC9eKC18XFwrKT9QKD86KFstK10/WzAtOSwuXSopWSk/KD86KFstK10/WzAtOSwuXSopTSk/KD86KFstK10/WzAtOSwuXSopVyk/KD86KFstK10/WzAtOSwuXSopRCk/KD86VCg/OihbLStdP1swLTksLl0qKUgpPyg/OihbLStdP1swLTksLl0qKU0pPyg/OihbLStdP1swLTksLl0qKVMpPyk/JC87XG5cbiAgICBmdW5jdGlvbiBjcmVhdGVEdXJhdGlvbiAoaW5wdXQsIGtleSkge1xuICAgICAgICB2YXIgZHVyYXRpb24gPSBpbnB1dCxcbiAgICAgICAgICAgIC8vIG1hdGNoaW5nIGFnYWluc3QgcmVnZXhwIGlzIGV4cGVuc2l2ZSwgZG8gaXQgb24gZGVtYW5kXG4gICAgICAgICAgICBtYXRjaCA9IG51bGwsXG4gICAgICAgICAgICBzaWduLFxuICAgICAgICAgICAgcmV0LFxuICAgICAgICAgICAgZGlmZlJlcztcblxuICAgICAgICBpZiAoaXNEdXJhdGlvbihpbnB1dCkpIHtcbiAgICAgICAgICAgIGR1cmF0aW9uID0ge1xuICAgICAgICAgICAgICAgIG1zIDogaW5wdXQuX21pbGxpc2Vjb25kcyxcbiAgICAgICAgICAgICAgICBkICA6IGlucHV0Ll9kYXlzLFxuICAgICAgICAgICAgICAgIE0gIDogaW5wdXQuX21vbnRoc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmIChpc051bWJlcihpbnB1dCkpIHtcbiAgICAgICAgICAgIGR1cmF0aW9uID0ge307XG4gICAgICAgICAgICBpZiAoa2V5KSB7XG4gICAgICAgICAgICAgICAgZHVyYXRpb25ba2V5XSA9IGlucHV0O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBkdXJhdGlvbi5taWxsaXNlY29uZHMgPSBpbnB1dDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmICghIShtYXRjaCA9IGFzcE5ldFJlZ2V4LmV4ZWMoaW5wdXQpKSkge1xuICAgICAgICAgICAgc2lnbiA9IChtYXRjaFsxXSA9PT0gJy0nKSA/IC0xIDogMTtcbiAgICAgICAgICAgIGR1cmF0aW9uID0ge1xuICAgICAgICAgICAgICAgIHkgIDogMCxcbiAgICAgICAgICAgICAgICBkICA6IHRvSW50KG1hdGNoW0RBVEVdKSAgICAgICAgICAgICAgICAgICAgICAgICAqIHNpZ24sXG4gICAgICAgICAgICAgICAgaCAgOiB0b0ludChtYXRjaFtIT1VSXSkgICAgICAgICAgICAgICAgICAgICAgICAgKiBzaWduLFxuICAgICAgICAgICAgICAgIG0gIDogdG9JbnQobWF0Y2hbTUlOVVRFXSkgICAgICAgICAgICAgICAgICAgICAgICogc2lnbixcbiAgICAgICAgICAgICAgICBzICA6IHRvSW50KG1hdGNoW1NFQ09ORF0pICAgICAgICAgICAgICAgICAgICAgICAqIHNpZ24sXG4gICAgICAgICAgICAgICAgbXMgOiB0b0ludChhYnNSb3VuZChtYXRjaFtNSUxMSVNFQ09ORF0gKiAxMDAwKSkgKiBzaWduIC8vIHRoZSBtaWxsaXNlY29uZCBkZWNpbWFsIHBvaW50IGlzIGluY2x1ZGVkIGluIHRoZSBtYXRjaFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfSBlbHNlIGlmICghIShtYXRjaCA9IGlzb1JlZ2V4LmV4ZWMoaW5wdXQpKSkge1xuICAgICAgICAgICAgc2lnbiA9IChtYXRjaFsxXSA9PT0gJy0nKSA/IC0xIDogKG1hdGNoWzFdID09PSAnKycpID8gMSA6IDE7XG4gICAgICAgICAgICBkdXJhdGlvbiA9IHtcbiAgICAgICAgICAgICAgICB5IDogcGFyc2VJc28obWF0Y2hbMl0sIHNpZ24pLFxuICAgICAgICAgICAgICAgIE0gOiBwYXJzZUlzbyhtYXRjaFszXSwgc2lnbiksXG4gICAgICAgICAgICAgICAgdyA6IHBhcnNlSXNvKG1hdGNoWzRdLCBzaWduKSxcbiAgICAgICAgICAgICAgICBkIDogcGFyc2VJc28obWF0Y2hbNV0sIHNpZ24pLFxuICAgICAgICAgICAgICAgIGggOiBwYXJzZUlzbyhtYXRjaFs2XSwgc2lnbiksXG4gICAgICAgICAgICAgICAgbSA6IHBhcnNlSXNvKG1hdGNoWzddLCBzaWduKSxcbiAgICAgICAgICAgICAgICBzIDogcGFyc2VJc28obWF0Y2hbOF0sIHNpZ24pXG4gICAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKGR1cmF0aW9uID09IG51bGwpIHsvLyBjaGVja3MgZm9yIG51bGwgb3IgdW5kZWZpbmVkXG4gICAgICAgICAgICBkdXJhdGlvbiA9IHt9O1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBkdXJhdGlvbiA9PT0gJ29iamVjdCcgJiYgKCdmcm9tJyBpbiBkdXJhdGlvbiB8fCAndG8nIGluIGR1cmF0aW9uKSkge1xuICAgICAgICAgICAgZGlmZlJlcyA9IG1vbWVudHNEaWZmZXJlbmNlKGNyZWF0ZUxvY2FsKGR1cmF0aW9uLmZyb20pLCBjcmVhdGVMb2NhbChkdXJhdGlvbi50bykpO1xuXG4gICAgICAgICAgICBkdXJhdGlvbiA9IHt9O1xuICAgICAgICAgICAgZHVyYXRpb24ubXMgPSBkaWZmUmVzLm1pbGxpc2Vjb25kcztcbiAgICAgICAgICAgIGR1cmF0aW9uLk0gPSBkaWZmUmVzLm1vbnRocztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldCA9IG5ldyBEdXJhdGlvbihkdXJhdGlvbik7XG5cbiAgICAgICAgaWYgKGlzRHVyYXRpb24oaW5wdXQpICYmIGhhc093blByb3AoaW5wdXQsICdfbG9jYWxlJykpIHtcbiAgICAgICAgICAgIHJldC5fbG9jYWxlID0gaW5wdXQuX2xvY2FsZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuXG4gICAgY3JlYXRlRHVyYXRpb24uZm4gPSBEdXJhdGlvbi5wcm90b3R5cGU7XG4gICAgY3JlYXRlRHVyYXRpb24uaW52YWxpZCA9IGNyZWF0ZUludmFsaWQkMTtcblxuICAgIGZ1bmN0aW9uIHBhcnNlSXNvIChpbnAsIHNpZ24pIHtcbiAgICAgICAgLy8gV2UnZCBub3JtYWxseSB1c2Ugfn5pbnAgZm9yIHRoaXMsIGJ1dCB1bmZvcnR1bmF0ZWx5IGl0IGFsc29cbiAgICAgICAgLy8gY29udmVydHMgZmxvYXRzIHRvIGludHMuXG4gICAgICAgIC8vIGlucCBtYXkgYmUgdW5kZWZpbmVkLCBzbyBjYXJlZnVsIGNhbGxpbmcgcmVwbGFjZSBvbiBpdC5cbiAgICAgICAgdmFyIHJlcyA9IGlucCAmJiBwYXJzZUZsb2F0KGlucC5yZXBsYWNlKCcsJywgJy4nKSk7XG4gICAgICAgIC8vIGFwcGx5IHNpZ24gd2hpbGUgd2UncmUgYXQgaXRcbiAgICAgICAgcmV0dXJuIChpc05hTihyZXMpID8gMCA6IHJlcykgKiBzaWduO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBvc2l0aXZlTW9tZW50c0RpZmZlcmVuY2UoYmFzZSwgb3RoZXIpIHtcbiAgICAgICAgdmFyIHJlcyA9IHttaWxsaXNlY29uZHM6IDAsIG1vbnRoczogMH07XG5cbiAgICAgICAgcmVzLm1vbnRocyA9IG90aGVyLm1vbnRoKCkgLSBiYXNlLm1vbnRoKCkgK1xuICAgICAgICAgICAgKG90aGVyLnllYXIoKSAtIGJhc2UueWVhcigpKSAqIDEyO1xuICAgICAgICBpZiAoYmFzZS5jbG9uZSgpLmFkZChyZXMubW9udGhzLCAnTScpLmlzQWZ0ZXIob3RoZXIpKSB7XG4gICAgICAgICAgICAtLXJlcy5tb250aHM7XG4gICAgICAgIH1cblxuICAgICAgICByZXMubWlsbGlzZWNvbmRzID0gK290aGVyIC0gKyhiYXNlLmNsb25lKCkuYWRkKHJlcy5tb250aHMsICdNJykpO1xuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW9tZW50c0RpZmZlcmVuY2UoYmFzZSwgb3RoZXIpIHtcbiAgICAgICAgdmFyIHJlcztcbiAgICAgICAgaWYgKCEoYmFzZS5pc1ZhbGlkKCkgJiYgb3RoZXIuaXNWYWxpZCgpKSkge1xuICAgICAgICAgICAgcmV0dXJuIHttaWxsaXNlY29uZHM6IDAsIG1vbnRoczogMH07XG4gICAgICAgIH1cblxuICAgICAgICBvdGhlciA9IGNsb25lV2l0aE9mZnNldChvdGhlciwgYmFzZSk7XG4gICAgICAgIGlmIChiYXNlLmlzQmVmb3JlKG90aGVyKSkge1xuICAgICAgICAgICAgcmVzID0gcG9zaXRpdmVNb21lbnRzRGlmZmVyZW5jZShiYXNlLCBvdGhlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXMgPSBwb3NpdGl2ZU1vbWVudHNEaWZmZXJlbmNlKG90aGVyLCBiYXNlKTtcbiAgICAgICAgICAgIHJlcy5taWxsaXNlY29uZHMgPSAtcmVzLm1pbGxpc2Vjb25kcztcbiAgICAgICAgICAgIHJlcy5tb250aHMgPSAtcmVzLm1vbnRocztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXM7XG4gICAgfVxuXG4gICAgLy8gVE9ETzogcmVtb3ZlICduYW1lJyBhcmcgYWZ0ZXIgZGVwcmVjYXRpb24gaXMgcmVtb3ZlZFxuICAgIGZ1bmN0aW9uIGNyZWF0ZUFkZGVyKGRpcmVjdGlvbiwgbmFtZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHZhbCwgcGVyaW9kKSB7XG4gICAgICAgICAgICB2YXIgZHVyLCB0bXA7XG4gICAgICAgICAgICAvL2ludmVydCB0aGUgYXJndW1lbnRzLCBidXQgY29tcGxhaW4gYWJvdXQgaXRcbiAgICAgICAgICAgIGlmIChwZXJpb2QgIT09IG51bGwgJiYgIWlzTmFOKCtwZXJpb2QpKSB7XG4gICAgICAgICAgICAgICAgZGVwcmVjYXRlU2ltcGxlKG5hbWUsICdtb21lbnQoKS4nICsgbmFtZSAgKyAnKHBlcmlvZCwgbnVtYmVyKSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIG1vbWVudCgpLicgKyBuYW1lICsgJyhudW1iZXIsIHBlcmlvZCkuICcgK1xuICAgICAgICAgICAgICAgICdTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9hZGQtaW52ZXJ0ZWQtcGFyYW0vIGZvciBtb3JlIGluZm8uJyk7XG4gICAgICAgICAgICAgICAgdG1wID0gdmFsOyB2YWwgPSBwZXJpb2Q7IHBlcmlvZCA9IHRtcDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFsID0gdHlwZW9mIHZhbCA9PT0gJ3N0cmluZycgPyArdmFsIDogdmFsO1xuICAgICAgICAgICAgZHVyID0gY3JlYXRlRHVyYXRpb24odmFsLCBwZXJpb2QpO1xuICAgICAgICAgICAgYWRkU3VidHJhY3QodGhpcywgZHVyLCBkaXJlY3Rpb24pO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkU3VidHJhY3QgKG1vbSwgZHVyYXRpb24sIGlzQWRkaW5nLCB1cGRhdGVPZmZzZXQpIHtcbiAgICAgICAgdmFyIG1pbGxpc2Vjb25kcyA9IGR1cmF0aW9uLl9taWxsaXNlY29uZHMsXG4gICAgICAgICAgICBkYXlzID0gYWJzUm91bmQoZHVyYXRpb24uX2RheXMpLFxuICAgICAgICAgICAgbW9udGhzID0gYWJzUm91bmQoZHVyYXRpb24uX21vbnRocyk7XG5cbiAgICAgICAgaWYgKCFtb20uaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICAvLyBObyBvcFxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdXBkYXRlT2Zmc2V0ID0gdXBkYXRlT2Zmc2V0ID09IG51bGwgPyB0cnVlIDogdXBkYXRlT2Zmc2V0O1xuXG4gICAgICAgIGlmIChtb250aHMpIHtcbiAgICAgICAgICAgIHNldE1vbnRoKG1vbSwgZ2V0KG1vbSwgJ01vbnRoJykgKyBtb250aHMgKiBpc0FkZGluZyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRheXMpIHtcbiAgICAgICAgICAgIHNldCQxKG1vbSwgJ0RhdGUnLCBnZXQobW9tLCAnRGF0ZScpICsgZGF5cyAqIGlzQWRkaW5nKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAobWlsbGlzZWNvbmRzKSB7XG4gICAgICAgICAgICBtb20uX2Quc2V0VGltZShtb20uX2QudmFsdWVPZigpICsgbWlsbGlzZWNvbmRzICogaXNBZGRpbmcpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh1cGRhdGVPZmZzZXQpIHtcbiAgICAgICAgICAgIGhvb2tzLnVwZGF0ZU9mZnNldChtb20sIGRheXMgfHwgbW9udGhzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBhZGQgICAgICA9IGNyZWF0ZUFkZGVyKDEsICdhZGQnKTtcbiAgICB2YXIgc3VidHJhY3QgPSBjcmVhdGVBZGRlcigtMSwgJ3N1YnRyYWN0Jyk7XG5cbiAgICBmdW5jdGlvbiBnZXRDYWxlbmRhckZvcm1hdChteU1vbWVudCwgbm93KSB7XG4gICAgICAgIHZhciBkaWZmID0gbXlNb21lbnQuZGlmZihub3csICdkYXlzJywgdHJ1ZSk7XG4gICAgICAgIHJldHVybiBkaWZmIDwgLTYgPyAnc2FtZUVsc2UnIDpcbiAgICAgICAgICAgICAgICBkaWZmIDwgLTEgPyAnbGFzdFdlZWsnIDpcbiAgICAgICAgICAgICAgICBkaWZmIDwgMCA/ICdsYXN0RGF5JyA6XG4gICAgICAgICAgICAgICAgZGlmZiA8IDEgPyAnc2FtZURheScgOlxuICAgICAgICAgICAgICAgIGRpZmYgPCAyID8gJ25leHREYXknIDpcbiAgICAgICAgICAgICAgICBkaWZmIDwgNyA/ICduZXh0V2VlaycgOiAnc2FtZUVsc2UnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNhbGVuZGFyJDEgKHRpbWUsIGZvcm1hdHMpIHtcbiAgICAgICAgLy8gV2Ugd2FudCB0byBjb21wYXJlIHRoZSBzdGFydCBvZiB0b2RheSwgdnMgdGhpcy5cbiAgICAgICAgLy8gR2V0dGluZyBzdGFydC1vZi10b2RheSBkZXBlbmRzIG9uIHdoZXRoZXIgd2UncmUgbG9jYWwvdXRjL29mZnNldCBvciBub3QuXG4gICAgICAgIHZhciBub3cgPSB0aW1lIHx8IGNyZWF0ZUxvY2FsKCksXG4gICAgICAgICAgICBzb2QgPSBjbG9uZVdpdGhPZmZzZXQobm93LCB0aGlzKS5zdGFydE9mKCdkYXknKSxcbiAgICAgICAgICAgIGZvcm1hdCA9IGhvb2tzLmNhbGVuZGFyRm9ybWF0KHRoaXMsIHNvZCkgfHwgJ3NhbWVFbHNlJztcblxuICAgICAgICB2YXIgb3V0cHV0ID0gZm9ybWF0cyAmJiAoaXNGdW5jdGlvbihmb3JtYXRzW2Zvcm1hdF0pID8gZm9ybWF0c1tmb3JtYXRdLmNhbGwodGhpcywgbm93KSA6IGZvcm1hdHNbZm9ybWF0XSk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0KG91dHB1dCB8fCB0aGlzLmxvY2FsZURhdGEoKS5jYWxlbmRhcihmb3JtYXQsIHRoaXMsIGNyZWF0ZUxvY2FsKG5vdykpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjbG9uZSAoKSB7XG4gICAgICAgIHJldHVybiBuZXcgTW9tZW50KHRoaXMpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQWZ0ZXIgKGlucHV0LCB1bml0cykge1xuICAgICAgICB2YXIgbG9jYWxJbnB1dCA9IGlzTW9tZW50KGlucHV0KSA/IGlucHV0IDogY3JlYXRlTG9jYWwoaW5wdXQpO1xuICAgICAgICBpZiAoISh0aGlzLmlzVmFsaWQoKSAmJiBsb2NhbElucHV0LmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICB1bml0cyA9IG5vcm1hbGl6ZVVuaXRzKCFpc1VuZGVmaW5lZCh1bml0cykgPyB1bml0cyA6ICdtaWxsaXNlY29uZCcpO1xuICAgICAgICBpZiAodW5pdHMgPT09ICdtaWxsaXNlY29uZCcpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnZhbHVlT2YoKSA+IGxvY2FsSW5wdXQudmFsdWVPZigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGxvY2FsSW5wdXQudmFsdWVPZigpIDwgdGhpcy5jbG9uZSgpLnN0YXJ0T2YodW5pdHMpLnZhbHVlT2YoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQmVmb3JlIChpbnB1dCwgdW5pdHMpIHtcbiAgICAgICAgdmFyIGxvY2FsSW5wdXQgPSBpc01vbWVudChpbnB1dCkgPyBpbnB1dCA6IGNyZWF0ZUxvY2FsKGlucHV0KTtcbiAgICAgICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxJbnB1dC5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyghaXNVbmRlZmluZWQodW5pdHMpID8gdW5pdHMgOiAnbWlsbGlzZWNvbmQnKTtcbiAgICAgICAgaWYgKHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPCBsb2NhbElucHV0LnZhbHVlT2YoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNsb25lKCkuZW5kT2YodW5pdHMpLnZhbHVlT2YoKSA8IGxvY2FsSW5wdXQudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNCZXR3ZWVuIChmcm9tLCB0bywgdW5pdHMsIGluY2x1c2l2aXR5KSB7XG4gICAgICAgIGluY2x1c2l2aXR5ID0gaW5jbHVzaXZpdHkgfHwgJygpJztcbiAgICAgICAgcmV0dXJuIChpbmNsdXNpdml0eVswXSA9PT0gJygnID8gdGhpcy5pc0FmdGVyKGZyb20sIHVuaXRzKSA6ICF0aGlzLmlzQmVmb3JlKGZyb20sIHVuaXRzKSkgJiZcbiAgICAgICAgICAgIChpbmNsdXNpdml0eVsxXSA9PT0gJyknID8gdGhpcy5pc0JlZm9yZSh0bywgdW5pdHMpIDogIXRoaXMuaXNBZnRlcih0bywgdW5pdHMpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1NhbWUgKGlucHV0LCB1bml0cykge1xuICAgICAgICB2YXIgbG9jYWxJbnB1dCA9IGlzTW9tZW50KGlucHV0KSA/IGlucHV0IDogY3JlYXRlTG9jYWwoaW5wdXQpLFxuICAgICAgICAgICAgaW5wdXRNcztcbiAgICAgICAgaWYgKCEodGhpcy5pc1ZhbGlkKCkgJiYgbG9jYWxJbnB1dC5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyB8fCAnbWlsbGlzZWNvbmQnKTtcbiAgICAgICAgaWYgKHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy52YWx1ZU9mKCkgPT09IGxvY2FsSW5wdXQudmFsdWVPZigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaW5wdXRNcyA9IGxvY2FsSW5wdXQudmFsdWVPZigpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY2xvbmUoKS5zdGFydE9mKHVuaXRzKS52YWx1ZU9mKCkgPD0gaW5wdXRNcyAmJiBpbnB1dE1zIDw9IHRoaXMuY2xvbmUoKS5lbmRPZih1bml0cykudmFsdWVPZigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNTYW1lT3JBZnRlciAoaW5wdXQsIHVuaXRzKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzU2FtZShpbnB1dCwgdW5pdHMpIHx8IHRoaXMuaXNBZnRlcihpbnB1dCx1bml0cyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNTYW1lT3JCZWZvcmUgKGlucHV0LCB1bml0cykge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1NhbWUoaW5wdXQsIHVuaXRzKSB8fCB0aGlzLmlzQmVmb3JlKGlucHV0LHVuaXRzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkaWZmIChpbnB1dCwgdW5pdHMsIGFzRmxvYXQpIHtcbiAgICAgICAgdmFyIHRoYXQsXG4gICAgICAgICAgICB6b25lRGVsdGEsXG4gICAgICAgICAgICBvdXRwdXQ7XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuIE5hTjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoYXQgPSBjbG9uZVdpdGhPZmZzZXQoaW5wdXQsIHRoaXMpO1xuXG4gICAgICAgIGlmICghdGhhdC5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cblxuICAgICAgICB6b25lRGVsdGEgPSAodGhhdC51dGNPZmZzZXQoKSAtIHRoaXMudXRjT2Zmc2V0KCkpICogNmU0O1xuXG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuXG4gICAgICAgIHN3aXRjaCAodW5pdHMpIHtcbiAgICAgICAgICAgIGNhc2UgJ3llYXInOiBvdXRwdXQgPSBtb250aERpZmYodGhpcywgdGhhdCkgLyAxMjsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdtb250aCc6IG91dHB1dCA9IG1vbnRoRGlmZih0aGlzLCB0aGF0KTsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdxdWFydGVyJzogb3V0cHV0ID0gbW9udGhEaWZmKHRoaXMsIHRoYXQpIC8gMzsgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdzZWNvbmQnOiBvdXRwdXQgPSAodGhpcyAtIHRoYXQpIC8gMWUzOyBicmVhazsgLy8gMTAwMFxuICAgICAgICAgICAgY2FzZSAnbWludXRlJzogb3V0cHV0ID0gKHRoaXMgLSB0aGF0KSAvIDZlNDsgYnJlYWs7IC8vIDEwMDAgKiA2MFxuICAgICAgICAgICAgY2FzZSAnaG91cic6IG91dHB1dCA9ICh0aGlzIC0gdGhhdCkgLyAzNmU1OyBicmVhazsgLy8gMTAwMCAqIDYwICogNjBcbiAgICAgICAgICAgIGNhc2UgJ2RheSc6IG91dHB1dCA9ICh0aGlzIC0gdGhhdCAtIHpvbmVEZWx0YSkgLyA4NjRlNTsgYnJlYWs7IC8vIDEwMDAgKiA2MCAqIDYwICogMjQsIG5lZ2F0ZSBkc3RcbiAgICAgICAgICAgIGNhc2UgJ3dlZWsnOiBvdXRwdXQgPSAodGhpcyAtIHRoYXQgLSB6b25lRGVsdGEpIC8gNjA0OGU1OyBicmVhazsgLy8gMTAwMCAqIDYwICogNjAgKiAyNCAqIDcsIG5lZ2F0ZSBkc3RcbiAgICAgICAgICAgIGRlZmF1bHQ6IG91dHB1dCA9IHRoaXMgLSB0aGF0O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFzRmxvYXQgPyBvdXRwdXQgOiBhYnNGbG9vcihvdXRwdXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1vbnRoRGlmZiAoYSwgYikge1xuICAgICAgICAvLyBkaWZmZXJlbmNlIGluIG1vbnRoc1xuICAgICAgICB2YXIgd2hvbGVNb250aERpZmYgPSAoKGIueWVhcigpIC0gYS55ZWFyKCkpICogMTIpICsgKGIubW9udGgoKSAtIGEubW9udGgoKSksXG4gICAgICAgICAgICAvLyBiIGlzIGluIChhbmNob3IgLSAxIG1vbnRoLCBhbmNob3IgKyAxIG1vbnRoKVxuICAgICAgICAgICAgYW5jaG9yID0gYS5jbG9uZSgpLmFkZCh3aG9sZU1vbnRoRGlmZiwgJ21vbnRocycpLFxuICAgICAgICAgICAgYW5jaG9yMiwgYWRqdXN0O1xuXG4gICAgICAgIGlmIChiIC0gYW5jaG9yIDwgMCkge1xuICAgICAgICAgICAgYW5jaG9yMiA9IGEuY2xvbmUoKS5hZGQod2hvbGVNb250aERpZmYgLSAxLCAnbW9udGhzJyk7XG4gICAgICAgICAgICAvLyBsaW5lYXIgYWNyb3NzIHRoZSBtb250aFxuICAgICAgICAgICAgYWRqdXN0ID0gKGIgLSBhbmNob3IpIC8gKGFuY2hvciAtIGFuY2hvcjIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgYW5jaG9yMiA9IGEuY2xvbmUoKS5hZGQod2hvbGVNb250aERpZmYgKyAxLCAnbW9udGhzJyk7XG4gICAgICAgICAgICAvLyBsaW5lYXIgYWNyb3NzIHRoZSBtb250aFxuICAgICAgICAgICAgYWRqdXN0ID0gKGIgLSBhbmNob3IpIC8gKGFuY2hvcjIgLSBhbmNob3IpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy9jaGVjayBmb3IgbmVnYXRpdmUgemVybywgcmV0dXJuIHplcm8gaWYgbmVnYXRpdmUgemVyb1xuICAgICAgICByZXR1cm4gLSh3aG9sZU1vbnRoRGlmZiArIGFkanVzdCkgfHwgMDtcbiAgICB9XG5cbiAgICBob29rcy5kZWZhdWx0Rm9ybWF0ID0gJ1lZWVktTU0tRERUSEg6bW06c3NaJztcbiAgICBob29rcy5kZWZhdWx0Rm9ybWF0VXRjID0gJ1lZWVktTU0tRERUSEg6bW06c3NbWl0nO1xuXG4gICAgZnVuY3Rpb24gdG9TdHJpbmcgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jbG9uZSgpLmxvY2FsZSgnZW4nKS5mb3JtYXQoJ2RkZCBNTU0gREQgWVlZWSBISDptbTpzcyBbR01UXVpaJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9JU09TdHJpbmcoa2VlcE9mZnNldCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICB2YXIgdXRjID0ga2VlcE9mZnNldCAhPT0gdHJ1ZTtcbiAgICAgICAgdmFyIG0gPSB1dGMgPyB0aGlzLmNsb25lKCkudXRjKCkgOiB0aGlzO1xuICAgICAgICBpZiAobS55ZWFyKCkgPCAwIHx8IG0ueWVhcigpID4gOTk5OSkge1xuICAgICAgICAgICAgcmV0dXJuIGZvcm1hdE1vbWVudChtLCB1dGMgPyAnWVlZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTW1pdJyA6ICdZWVlZWVktTU0tRERbVF1ISDptbTpzcy5TU1NaJyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzRnVuY3Rpb24oRGF0ZS5wcm90b3R5cGUudG9JU09TdHJpbmcpKSB7XG4gICAgICAgICAgICAvLyBuYXRpdmUgaW1wbGVtZW50YXRpb24gaXMgfjUweCBmYXN0ZXIsIHVzZSBpdCB3aGVuIHdlIGNhblxuICAgICAgICAgICAgaWYgKHV0Yykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnRvRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgRGF0ZSh0aGlzLnZhbHVlT2YoKSArIHRoaXMudXRjT2Zmc2V0KCkgKiA2MCAqIDEwMDApLnRvSVNPU3RyaW5nKCkucmVwbGFjZSgnWicsIGZvcm1hdE1vbWVudChtLCAnWicpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZm9ybWF0TW9tZW50KG0sIHV0YyA/ICdZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTW1pdJyA6ICdZWVlZLU1NLUREW1RdSEg6bW06c3MuU1NTWicpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybiBhIGh1bWFuIHJlYWRhYmxlIHJlcHJlc2VudGF0aW9uIG9mIGEgbW9tZW50IHRoYXQgY2FuXG4gICAgICogYWxzbyBiZSBldmFsdWF0ZWQgdG8gZ2V0IGEgbmV3IG1vbWVudCB3aGljaCBpcyB0aGUgc2FtZVxuICAgICAqXG4gICAgICogQGxpbmsgaHR0cHM6Ly9ub2RlanMub3JnL2Rpc3QvbGF0ZXN0L2RvY3MvYXBpL3V0aWwuaHRtbCN1dGlsX2N1c3RvbV9pbnNwZWN0X2Z1bmN0aW9uX29uX29iamVjdHNcbiAgICAgKi9cbiAgICBmdW5jdGlvbiBpbnNwZWN0ICgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzVmFsaWQoKSkge1xuICAgICAgICAgICAgcmV0dXJuICdtb21lbnQuaW52YWxpZCgvKiAnICsgdGhpcy5faSArICcgKi8pJztcbiAgICAgICAgfVxuICAgICAgICB2YXIgZnVuYyA9ICdtb21lbnQnO1xuICAgICAgICB2YXIgem9uZSA9ICcnO1xuICAgICAgICBpZiAoIXRoaXMuaXNMb2NhbCgpKSB7XG4gICAgICAgICAgICBmdW5jID0gdGhpcy51dGNPZmZzZXQoKSA9PT0gMCA/ICdtb21lbnQudXRjJyA6ICdtb21lbnQucGFyc2Vab25lJztcbiAgICAgICAgICAgIHpvbmUgPSAnWic7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIHByZWZpeCA9ICdbJyArIGZ1bmMgKyAnKFwiXSc7XG4gICAgICAgIHZhciB5ZWFyID0gKDAgPD0gdGhpcy55ZWFyKCkgJiYgdGhpcy55ZWFyKCkgPD0gOTk5OSkgPyAnWVlZWScgOiAnWVlZWVlZJztcbiAgICAgICAgdmFyIGRhdGV0aW1lID0gJy1NTS1ERFtUXUhIOm1tOnNzLlNTUyc7XG4gICAgICAgIHZhciBzdWZmaXggPSB6b25lICsgJ1tcIildJztcblxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXQocHJlZml4ICsgeWVhciArIGRhdGV0aW1lICsgc3VmZml4KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmb3JtYXQgKGlucHV0U3RyaW5nKSB7XG4gICAgICAgIGlmICghaW5wdXRTdHJpbmcpIHtcbiAgICAgICAgICAgIGlucHV0U3RyaW5nID0gdGhpcy5pc1V0YygpID8gaG9va3MuZGVmYXVsdEZvcm1hdFV0YyA6IGhvb2tzLmRlZmF1bHRGb3JtYXQ7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIG91dHB1dCA9IGZvcm1hdE1vbWVudCh0aGlzLCBpbnB1dFN0cmluZyk7XG4gICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5wb3N0Zm9ybWF0KG91dHB1dCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZnJvbSAodGltZSwgd2l0aG91dFN1ZmZpeCkge1xuICAgICAgICBpZiAodGhpcy5pc1ZhbGlkKCkgJiZcbiAgICAgICAgICAgICAgICAoKGlzTW9tZW50KHRpbWUpICYmIHRpbWUuaXNWYWxpZCgpKSB8fFxuICAgICAgICAgICAgICAgICBjcmVhdGVMb2NhbCh0aW1lKS5pc1ZhbGlkKCkpKSB7XG4gICAgICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24oe3RvOiB0aGlzLCBmcm9tOiB0aW1lfSkubG9jYWxlKHRoaXMubG9jYWxlKCkpLmh1bWFuaXplKCF3aXRob3V0U3VmZml4KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKS5pbnZhbGlkRGF0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZnJvbU5vdyAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gdGhpcy5mcm9tKGNyZWF0ZUxvY2FsKCksIHdpdGhvdXRTdWZmaXgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvICh0aW1lLCB3aXRob3V0U3VmZml4KSB7XG4gICAgICAgIGlmICh0aGlzLmlzVmFsaWQoKSAmJlxuICAgICAgICAgICAgICAgICgoaXNNb21lbnQodGltZSkgJiYgdGltZS5pc1ZhbGlkKCkpIHx8XG4gICAgICAgICAgICAgICAgIGNyZWF0ZUxvY2FsKHRpbWUpLmlzVmFsaWQoKSkpIHtcbiAgICAgICAgICAgIHJldHVybiBjcmVhdGVEdXJhdGlvbih7ZnJvbTogdGhpcywgdG86IHRpbWV9KS5sb2NhbGUodGhpcy5sb2NhbGUoKSkuaHVtYW5pemUoIXdpdGhvdXRTdWZmaXgpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlRGF0YSgpLmludmFsaWREYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b05vdyAod2l0aG91dFN1ZmZpeCkge1xuICAgICAgICByZXR1cm4gdGhpcy50byhjcmVhdGVMb2NhbCgpLCB3aXRob3V0U3VmZml4KTtcbiAgICB9XG5cbiAgICAvLyBJZiBwYXNzZWQgYSBsb2NhbGUga2V5LCBpdCB3aWxsIHNldCB0aGUgbG9jYWxlIGZvciB0aGlzXG4gICAgLy8gaW5zdGFuY2UuICBPdGhlcndpc2UsIGl0IHdpbGwgcmV0dXJuIHRoZSBsb2NhbGUgY29uZmlndXJhdGlvblxuICAgIC8vIHZhcmlhYmxlcyBmb3IgdGhpcyBpbnN0YW5jZS5cbiAgICBmdW5jdGlvbiBsb2NhbGUgKGtleSkge1xuICAgICAgICB2YXIgbmV3TG9jYWxlRGF0YTtcblxuICAgICAgICBpZiAoa2V5ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGUuX2FiYnI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBuZXdMb2NhbGVEYXRhID0gZ2V0TG9jYWxlKGtleSk7XG4gICAgICAgICAgICBpZiAobmV3TG9jYWxlRGF0YSAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fbG9jYWxlID0gbmV3TG9jYWxlRGF0YTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGxhbmcgPSBkZXByZWNhdGUoXG4gICAgICAgICdtb21lbnQoKS5sYW5nKCkgaXMgZGVwcmVjYXRlZC4gSW5zdGVhZCwgdXNlIG1vbWVudCgpLmxvY2FsZURhdGEoKSB0byBnZXQgdGhlIGxhbmd1YWdlIGNvbmZpZ3VyYXRpb24uIFVzZSBtb21lbnQoKS5sb2NhbGUoKSB0byBjaGFuZ2UgbGFuZ3VhZ2VzLicsXG4gICAgICAgIGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgIGlmIChrZXkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxvY2FsZURhdGEoKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9jYWxlKGtleSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICApO1xuXG4gICAgZnVuY3Rpb24gbG9jYWxlRGF0YSAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2NhbGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3RhcnRPZiAodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgIC8vIHRoZSBmb2xsb3dpbmcgc3dpdGNoIGludGVudGlvbmFsbHkgb21pdHMgYnJlYWsga2V5d29yZHNcbiAgICAgICAgLy8gdG8gdXRpbGl6ZSBmYWxsaW5nIHRocm91Z2ggdGhlIGNhc2VzLlxuICAgICAgICBzd2l0Y2ggKHVuaXRzKSB7XG4gICAgICAgICAgICBjYXNlICd5ZWFyJzpcbiAgICAgICAgICAgICAgICB0aGlzLm1vbnRoKDApO1xuICAgICAgICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICAgICAgICAgIGNhc2UgJ3F1YXJ0ZXInOlxuICAgICAgICAgICAgY2FzZSAnbW9udGgnOlxuICAgICAgICAgICAgICAgIHRoaXMuZGF0ZSgxKTtcbiAgICAgICAgICAgICAgICAvKiBmYWxscyB0aHJvdWdoICovXG4gICAgICAgICAgICBjYXNlICd3ZWVrJzpcbiAgICAgICAgICAgIGNhc2UgJ2lzb1dlZWsnOlxuICAgICAgICAgICAgY2FzZSAnZGF5JzpcbiAgICAgICAgICAgIGNhc2UgJ2RhdGUnOlxuICAgICAgICAgICAgICAgIHRoaXMuaG91cnMoMCk7XG4gICAgICAgICAgICAgICAgLyogZmFsbHMgdGhyb3VnaCAqL1xuICAgICAgICAgICAgY2FzZSAnaG91cic6XG4gICAgICAgICAgICAgICAgdGhpcy5taW51dGVzKDApO1xuICAgICAgICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICAgICAgICAgIGNhc2UgJ21pbnV0ZSc6XG4gICAgICAgICAgICAgICAgdGhpcy5zZWNvbmRzKDApO1xuICAgICAgICAgICAgICAgIC8qIGZhbGxzIHRocm91Z2ggKi9cbiAgICAgICAgICAgIGNhc2UgJ3NlY29uZCc6XG4gICAgICAgICAgICAgICAgdGhpcy5taWxsaXNlY29uZHMoMCk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyB3ZWVrcyBhcmUgYSBzcGVjaWFsIGNhc2VcbiAgICAgICAgaWYgKHVuaXRzID09PSAnd2VlaycpIHtcbiAgICAgICAgICAgIHRoaXMud2Vla2RheSgwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodW5pdHMgPT09ICdpc29XZWVrJykge1xuICAgICAgICAgICAgdGhpcy5pc29XZWVrZGF5KDEpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcXVhcnRlcnMgYXJlIGFsc28gc3BlY2lhbFxuICAgICAgICBpZiAodW5pdHMgPT09ICdxdWFydGVyJykge1xuICAgICAgICAgICAgdGhpcy5tb250aChNYXRoLmZsb29yKHRoaXMubW9udGgoKSAvIDMpICogMyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbmRPZiAodW5pdHMpIHtcbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG4gICAgICAgIGlmICh1bml0cyA9PT0gdW5kZWZpbmVkIHx8IHVuaXRzID09PSAnbWlsbGlzZWNvbmQnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcztcbiAgICAgICAgfVxuXG4gICAgICAgIC8vICdkYXRlJyBpcyBhbiBhbGlhcyBmb3IgJ2RheScsIHNvIGl0IHNob3VsZCBiZSBjb25zaWRlcmVkIGFzIHN1Y2guXG4gICAgICAgIGlmICh1bml0cyA9PT0gJ2RhdGUnKSB7XG4gICAgICAgICAgICB1bml0cyA9ICdkYXknO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhcnRPZih1bml0cykuYWRkKDEsICh1bml0cyA9PT0gJ2lzb1dlZWsnID8gJ3dlZWsnIDogdW5pdHMpKS5zdWJ0cmFjdCgxLCAnbXMnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB2YWx1ZU9mICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2QudmFsdWVPZigpIC0gKCh0aGlzLl9vZmZzZXQgfHwgMCkgKiA2MDAwMCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdW5peCAoKSB7XG4gICAgICAgIHJldHVybiBNYXRoLmZsb29yKHRoaXMudmFsdWVPZigpIC8gMTAwMCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9EYXRlICgpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBEYXRlKHRoaXMudmFsdWVPZigpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0FycmF5ICgpIHtcbiAgICAgICAgdmFyIG0gPSB0aGlzO1xuICAgICAgICByZXR1cm4gW20ueWVhcigpLCBtLm1vbnRoKCksIG0uZGF0ZSgpLCBtLmhvdXIoKSwgbS5taW51dGUoKSwgbS5zZWNvbmQoKSwgbS5taWxsaXNlY29uZCgpXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b09iamVjdCAoKSB7XG4gICAgICAgIHZhciBtID0gdGhpcztcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHllYXJzOiBtLnllYXIoKSxcbiAgICAgICAgICAgIG1vbnRoczogbS5tb250aCgpLFxuICAgICAgICAgICAgZGF0ZTogbS5kYXRlKCksXG4gICAgICAgICAgICBob3VyczogbS5ob3VycygpLFxuICAgICAgICAgICAgbWludXRlczogbS5taW51dGVzKCksXG4gICAgICAgICAgICBzZWNvbmRzOiBtLnNlY29uZHMoKSxcbiAgICAgICAgICAgIG1pbGxpc2Vjb25kczogbS5taWxsaXNlY29uZHMoKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSlNPTiAoKSB7XG4gICAgICAgIC8vIG5ldyBEYXRlKE5hTikudG9KU09OKCkgPT09IG51bGxcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy50b0lTT1N0cmluZygpIDogbnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1ZhbGlkJDIgKCkge1xuICAgICAgICByZXR1cm4gaXNWYWxpZCh0aGlzKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJzaW5nRmxhZ3MgKCkge1xuICAgICAgICByZXR1cm4gZXh0ZW5kKHt9LCBnZXRQYXJzaW5nRmxhZ3ModGhpcykpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGludmFsaWRBdCAoKSB7XG4gICAgICAgIHJldHVybiBnZXRQYXJzaW5nRmxhZ3ModGhpcykub3ZlcmZsb3c7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRpb25EYXRhKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaW5wdXQ6IHRoaXMuX2ksXG4gICAgICAgICAgICBmb3JtYXQ6IHRoaXMuX2YsXG4gICAgICAgICAgICBsb2NhbGU6IHRoaXMuX2xvY2FsZSxcbiAgICAgICAgICAgIGlzVVRDOiB0aGlzLl9pc1VUQyxcbiAgICAgICAgICAgIHN0cmljdDogdGhpcy5fc3RyaWN0XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydnZycsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLndlZWtZZWFyKCkgJSAxMDA7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ0dHJywgMl0sIDAsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNvV2Vla1llYXIoKSAlIDEwMDtcbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4gKHRva2VuLCBnZXR0ZXIpIHtcbiAgICAgICAgYWRkRm9ybWF0VG9rZW4oMCwgW3Rva2VuLCB0b2tlbi5sZW5ndGhdLCAwLCBnZXR0ZXIpO1xuICAgIH1cblxuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ2dnZ2cnLCAgICAgJ3dlZWtZZWFyJyk7XG4gICAgYWRkV2Vla1llYXJGb3JtYXRUb2tlbignZ2dnZ2cnLCAgICAnd2Vla1llYXInKTtcbiAgICBhZGRXZWVrWWVhckZvcm1hdFRva2VuKCdHR0dHJywgICdpc29XZWVrWWVhcicpO1xuICAgIGFkZFdlZWtZZWFyRm9ybWF0VG9rZW4oJ0dHR0dHJywgJ2lzb1dlZWtZZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3dlZWtZZWFyJywgJ2dnJyk7XG4gICAgYWRkVW5pdEFsaWFzKCdpc29XZWVrWWVhcicsICdHRycpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnd2Vla1llYXInLCAxKTtcbiAgICBhZGRVbml0UHJpb3JpdHkoJ2lzb1dlZWtZZWFyJywgMSk7XG5cblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ0cnLCAgICAgIG1hdGNoU2lnbmVkKTtcbiAgICBhZGRSZWdleFRva2VuKCdnJywgICAgICBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignR0cnLCAgICAgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ2dnJywgICAgIG1hdGNoMXRvMiwgbWF0Y2gyKTtcbiAgICBhZGRSZWdleFRva2VuKCdHR0dHJywgICBtYXRjaDF0bzQsIG1hdGNoNCk7XG4gICAgYWRkUmVnZXhUb2tlbignZ2dnZycsICAgbWF0Y2gxdG80LCBtYXRjaDQpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0dHR0dHJywgIG1hdGNoMXRvNiwgbWF0Y2g2KTtcbiAgICBhZGRSZWdleFRva2VuKCdnZ2dnZycsICBtYXRjaDF0bzYsIG1hdGNoNik7XG5cbiAgICBhZGRXZWVrUGFyc2VUb2tlbihbJ2dnZ2cnLCAnZ2dnZ2cnLCAnR0dHRycsICdHR0dHRyddLCBmdW5jdGlvbiAoaW5wdXQsIHdlZWssIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgd2Vla1t0b2tlbi5zdWJzdHIoMCwgMildID0gdG9JbnQoaW5wdXQpO1xuICAgIH0pO1xuXG4gICAgYWRkV2Vla1BhcnNlVG9rZW4oWydnZycsICdHRyddLCBmdW5jdGlvbiAoaW5wdXQsIHdlZWssIGNvbmZpZywgdG9rZW4pIHtcbiAgICAgICAgd2Vla1t0b2tlbl0gPSBob29rcy5wYXJzZVR3b0RpZ2l0WWVhcihpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRTZXRXZWVrWWVhciAoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGdldFNldFdlZWtZZWFySGVscGVyLmNhbGwodGhpcyxcbiAgICAgICAgICAgICAgICBpbnB1dCxcbiAgICAgICAgICAgICAgICB0aGlzLndlZWsoKSxcbiAgICAgICAgICAgICAgICB0aGlzLndlZWtkYXkoKSxcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2FsZURhdGEoKS5fd2Vlay5kb3csXG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhbGVEYXRhKCkuX3dlZWsuZG95KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZXRJU09XZWVrWWVhciAoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGdldFNldFdlZWtZZWFySGVscGVyLmNhbGwodGhpcyxcbiAgICAgICAgICAgICAgICBpbnB1dCwgdGhpcy5pc29XZWVrKCksIHRoaXMuaXNvV2Vla2RheSgpLCAxLCA0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRJU09XZWVrc0luWWVhciAoKSB7XG4gICAgICAgIHJldHVybiB3ZWVrc0luWWVhcih0aGlzLnllYXIoKSwgMSwgNCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0V2Vla3NJblllYXIgKCkge1xuICAgICAgICB2YXIgd2Vla0luZm8gPSB0aGlzLmxvY2FsZURhdGEoKS5fd2VlaztcbiAgICAgICAgcmV0dXJuIHdlZWtzSW5ZZWFyKHRoaXMueWVhcigpLCB3ZWVrSW5mby5kb3csIHdlZWtJbmZvLmRveSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U2V0V2Vla1llYXJIZWxwZXIoaW5wdXQsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KSB7XG4gICAgICAgIHZhciB3ZWVrc1RhcmdldDtcbiAgICAgICAgaWYgKGlucHV0ID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiB3ZWVrT2ZZZWFyKHRoaXMsIGRvdywgZG95KS55ZWFyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgd2Vla3NUYXJnZXQgPSB3ZWVrc0luWWVhcihpbnB1dCwgZG93LCBkb3kpO1xuICAgICAgICAgICAgaWYgKHdlZWsgPiB3ZWVrc1RhcmdldCkge1xuICAgICAgICAgICAgICAgIHdlZWsgPSB3ZWVrc1RhcmdldDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBzZXRXZWVrQWxsLmNhbGwodGhpcywgaW5wdXQsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNldFdlZWtBbGwod2Vla1llYXIsIHdlZWssIHdlZWtkYXksIGRvdywgZG95KSB7XG4gICAgICAgIHZhciBkYXlPZlllYXJEYXRhID0gZGF5T2ZZZWFyRnJvbVdlZWtzKHdlZWtZZWFyLCB3ZWVrLCB3ZWVrZGF5LCBkb3csIGRveSksXG4gICAgICAgICAgICBkYXRlID0gY3JlYXRlVVRDRGF0ZShkYXlPZlllYXJEYXRhLnllYXIsIDAsIGRheU9mWWVhckRhdGEuZGF5T2ZZZWFyKTtcblxuICAgICAgICB0aGlzLnllYXIoZGF0ZS5nZXRVVENGdWxsWWVhcigpKTtcbiAgICAgICAgdGhpcy5tb250aChkYXRlLmdldFVUQ01vbnRoKCkpO1xuICAgICAgICB0aGlzLmRhdGUoZGF0ZS5nZXRVVENEYXRlKCkpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignUScsIDAsICdRbycsICdxdWFydGVyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3F1YXJ0ZXInLCAnUScpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgncXVhcnRlcicsIDcpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignUScsIG1hdGNoMSk7XG4gICAgYWRkUGFyc2VUb2tlbignUScsIGZ1bmN0aW9uIChpbnB1dCwgYXJyYXkpIHtcbiAgICAgICAgYXJyYXlbTU9OVEhdID0gKHRvSW50KGlucHV0KSAtIDEpICogMztcbiAgICB9KTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIGZ1bmN0aW9uIGdldFNldFF1YXJ0ZXIgKGlucHV0KSB7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gTWF0aC5jZWlsKCh0aGlzLm1vbnRoKCkgKyAxKSAvIDMpIDogdGhpcy5tb250aCgoaW5wdXQgLSAxKSAqIDMgKyB0aGlzLm1vbnRoKCkgJSAzKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignRCcsIFsnREQnLCAyXSwgJ0RvJywgJ2RhdGUnKTtcblxuICAgIC8vIEFMSUFTRVNcblxuICAgIGFkZFVuaXRBbGlhcygnZGF0ZScsICdEJyk7XG5cbiAgICAvLyBQUklPUklUWVxuICAgIGFkZFVuaXRQcmlvcml0eSgnZGF0ZScsIDkpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignRCcsICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0REJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0RvJywgZnVuY3Rpb24gKGlzU3RyaWN0LCBsb2NhbGUpIHtcbiAgICAgICAgLy8gVE9ETzogUmVtb3ZlIFwib3JkaW5hbFBhcnNlXCIgZmFsbGJhY2sgaW4gbmV4dCBtYWpvciByZWxlYXNlLlxuICAgICAgICByZXR1cm4gaXNTdHJpY3QgP1xuICAgICAgICAgIChsb2NhbGUuX2RheU9mTW9udGhPcmRpbmFsUGFyc2UgfHwgbG9jYWxlLl9vcmRpbmFsUGFyc2UpIDpcbiAgICAgICAgICBsb2NhbGUuX2RheU9mTW9udGhPcmRpbmFsUGFyc2VMZW5pZW50O1xuICAgIH0pO1xuXG4gICAgYWRkUGFyc2VUb2tlbihbJ0QnLCAnREQnXSwgREFURSk7XG4gICAgYWRkUGFyc2VUb2tlbignRG8nLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W0RBVEVdID0gdG9JbnQoaW5wdXQubWF0Y2gobWF0Y2gxdG8yKVswXSk7XG4gICAgfSk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0RGF5T2ZNb250aCA9IG1ha2VHZXRTZXQoJ0RhdGUnLCB0cnVlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdEREQnLCBbJ0REREQnLCAzXSwgJ0RERG8nLCAnZGF5T2ZZZWFyJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ2RheU9mWWVhcicsICdEREQnKTtcblxuICAgIC8vIFBSSU9SSVRZXG4gICAgYWRkVW5pdFByaW9yaXR5KCdkYXlPZlllYXInLCA0KTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ0RERCcsICBtYXRjaDF0bzMpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ0REREQnLCBtYXRjaDMpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydEREQnLCAnRERERCddLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl9kYXlPZlllYXIgPSB0b0ludChpbnB1dCk7XG4gICAgfSk7XG5cbiAgICAvLyBIRUxQRVJTXG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRTZXREYXlPZlllYXIgKGlucHV0KSB7XG4gICAgICAgIHZhciBkYXlPZlllYXIgPSBNYXRoLnJvdW5kKCh0aGlzLmNsb25lKCkuc3RhcnRPZignZGF5JykgLSB0aGlzLmNsb25lKCkuc3RhcnRPZigneWVhcicpKSAvIDg2NGU1KSArIDE7XG4gICAgICAgIHJldHVybiBpbnB1dCA9PSBudWxsID8gZGF5T2ZZZWFyIDogdGhpcy5hZGQoKGlucHV0IC0gZGF5T2ZZZWFyKSwgJ2QnKTtcbiAgICB9XG5cbiAgICAvLyBGT1JNQVRUSU5HXG5cbiAgICBhZGRGb3JtYXRUb2tlbignbScsIFsnbW0nLCAyXSwgMCwgJ21pbnV0ZScpO1xuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdtaW51dGUnLCAnbScpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnbWludXRlJywgMTQpO1xuXG4gICAgLy8gUEFSU0lOR1xuXG4gICAgYWRkUmVnZXhUb2tlbignbScsICBtYXRjaDF0bzIpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ21tJywgbWF0Y2gxdG8yLCBtYXRjaDIpO1xuICAgIGFkZFBhcnNlVG9rZW4oWydtJywgJ21tJ10sIE1JTlVURSk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICB2YXIgZ2V0U2V0TWludXRlID0gbWFrZUdldFNldCgnTWludXRlcycsIGZhbHNlKTtcblxuICAgIC8vIEZPUk1BVFRJTkdcblxuICAgIGFkZEZvcm1hdFRva2VuKCdzJywgWydzcycsIDJdLCAwLCAnc2Vjb25kJyk7XG5cbiAgICAvLyBBTElBU0VTXG5cbiAgICBhZGRVbml0QWxpYXMoJ3NlY29uZCcsICdzJyk7XG5cbiAgICAvLyBQUklPUklUWVxuXG4gICAgYWRkVW5pdFByaW9yaXR5KCdzZWNvbmQnLCAxNSk7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdzJywgIG1hdGNoMXRvMik7XG4gICAgYWRkUmVnZXhUb2tlbignc3MnLCBtYXRjaDF0bzIsIG1hdGNoMik7XG4gICAgYWRkUGFyc2VUb2tlbihbJ3MnLCAnc3MnXSwgU0VDT05EKTtcblxuICAgIC8vIE1PTUVOVFNcblxuICAgIHZhciBnZXRTZXRTZWNvbmQgPSBtYWtlR2V0U2V0KCdTZWNvbmRzJywgZmFsc2UpO1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1MnLCAwLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB+fih0aGlzLm1pbGxpc2Vjb25kKCkgLyAxMDApO1xuICAgIH0pO1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTUycsIDJdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB+fih0aGlzLm1pbGxpc2Vjb25kKCkgLyAxMCk7XG4gICAgfSk7XG5cbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTUycsIDNdLCAwLCAnbWlsbGlzZWNvbmQnKTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1MnLCA0XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTUycsIDVdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1MnLCA2XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDtcbiAgICB9KTtcbiAgICBhZGRGb3JtYXRUb2tlbigwLCBbJ1NTU1NTU1MnLCA3XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTUycsIDhdLCAwLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLm1pbGxpc2Vjb25kKCkgKiAxMDAwMDA7XG4gICAgfSk7XG4gICAgYWRkRm9ybWF0VG9rZW4oMCwgWydTU1NTU1NTU1MnLCA5XSwgMCwgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5taWxsaXNlY29uZCgpICogMTAwMDAwMDtcbiAgICB9KTtcblxuXG4gICAgLy8gQUxJQVNFU1xuXG4gICAgYWRkVW5pdEFsaWFzKCdtaWxsaXNlY29uZCcsICdtcycpO1xuXG4gICAgLy8gUFJJT1JJVFlcblxuICAgIGFkZFVuaXRQcmlvcml0eSgnbWlsbGlzZWNvbmQnLCAxNik7XG5cbiAgICAvLyBQQVJTSU5HXG5cbiAgICBhZGRSZWdleFRva2VuKCdTJywgICAgbWF0Y2gxdG8zLCBtYXRjaDEpO1xuICAgIGFkZFJlZ2V4VG9rZW4oJ1NTJywgICBtYXRjaDF0bzMsIG1hdGNoMik7XG4gICAgYWRkUmVnZXhUb2tlbignU1NTJywgIG1hdGNoMXRvMywgbWF0Y2gzKTtcblxuICAgIHZhciB0b2tlbjtcbiAgICBmb3IgKHRva2VuID0gJ1NTU1MnOyB0b2tlbi5sZW5ndGggPD0gOTsgdG9rZW4gKz0gJ1MnKSB7XG4gICAgICAgIGFkZFJlZ2V4VG9rZW4odG9rZW4sIG1hdGNoVW5zaWduZWQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlTXMoaW5wdXQsIGFycmF5KSB7XG4gICAgICAgIGFycmF5W01JTExJU0VDT05EXSA9IHRvSW50KCgnMC4nICsgaW5wdXQpICogMTAwMCk7XG4gICAgfVxuXG4gICAgZm9yICh0b2tlbiA9ICdTJzsgdG9rZW4ubGVuZ3RoIDw9IDk7IHRva2VuICs9ICdTJykge1xuICAgICAgICBhZGRQYXJzZVRva2VuKHRva2VuLCBwYXJzZU1zKTtcbiAgICB9XG4gICAgLy8gTU9NRU5UU1xuXG4gICAgdmFyIGdldFNldE1pbGxpc2Vjb25kID0gbWFrZUdldFNldCgnTWlsbGlzZWNvbmRzJywgZmFsc2UpO1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ3onLCAgMCwgMCwgJ3pvbmVBYmJyJyk7XG4gICAgYWRkRm9ybWF0VG9rZW4oJ3p6JywgMCwgMCwgJ3pvbmVOYW1lJyk7XG5cbiAgICAvLyBNT01FTlRTXG5cbiAgICBmdW5jdGlvbiBnZXRab25lQWJiciAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1VUQyA/ICdVVEMnIDogJyc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0Wm9uZU5hbWUgKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXNVVEMgPyAnQ29vcmRpbmF0ZWQgVW5pdmVyc2FsIFRpbWUnIDogJyc7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvID0gTW9tZW50LnByb3RvdHlwZTtcblxuICAgIHByb3RvLmFkZCAgICAgICAgICAgICAgID0gYWRkO1xuICAgIHByb3RvLmNhbGVuZGFyICAgICAgICAgID0gY2FsZW5kYXIkMTtcbiAgICBwcm90by5jbG9uZSAgICAgICAgICAgICA9IGNsb25lO1xuICAgIHByb3RvLmRpZmYgICAgICAgICAgICAgID0gZGlmZjtcbiAgICBwcm90by5lbmRPZiAgICAgICAgICAgICA9IGVuZE9mO1xuICAgIHByb3RvLmZvcm1hdCAgICAgICAgICAgID0gZm9ybWF0O1xuICAgIHByb3RvLmZyb20gICAgICAgICAgICAgID0gZnJvbTtcbiAgICBwcm90by5mcm9tTm93ICAgICAgICAgICA9IGZyb21Ob3c7XG4gICAgcHJvdG8udG8gICAgICAgICAgICAgICAgPSB0bztcbiAgICBwcm90by50b05vdyAgICAgICAgICAgICA9IHRvTm93O1xuICAgIHByb3RvLmdldCAgICAgICAgICAgICAgID0gc3RyaW5nR2V0O1xuICAgIHByb3RvLmludmFsaWRBdCAgICAgICAgID0gaW52YWxpZEF0O1xuICAgIHByb3RvLmlzQWZ0ZXIgICAgICAgICAgID0gaXNBZnRlcjtcbiAgICBwcm90by5pc0JlZm9yZSAgICAgICAgICA9IGlzQmVmb3JlO1xuICAgIHByb3RvLmlzQmV0d2VlbiAgICAgICAgID0gaXNCZXR3ZWVuO1xuICAgIHByb3RvLmlzU2FtZSAgICAgICAgICAgID0gaXNTYW1lO1xuICAgIHByb3RvLmlzU2FtZU9yQWZ0ZXIgICAgID0gaXNTYW1lT3JBZnRlcjtcbiAgICBwcm90by5pc1NhbWVPckJlZm9yZSAgICA9IGlzU2FtZU9yQmVmb3JlO1xuICAgIHByb3RvLmlzVmFsaWQgICAgICAgICAgID0gaXNWYWxpZCQyO1xuICAgIHByb3RvLmxhbmcgICAgICAgICAgICAgID0gbGFuZztcbiAgICBwcm90by5sb2NhbGUgICAgICAgICAgICA9IGxvY2FsZTtcbiAgICBwcm90by5sb2NhbGVEYXRhICAgICAgICA9IGxvY2FsZURhdGE7XG4gICAgcHJvdG8ubWF4ICAgICAgICAgICAgICAgPSBwcm90b3R5cGVNYXg7XG4gICAgcHJvdG8ubWluICAgICAgICAgICAgICAgPSBwcm90b3R5cGVNaW47XG4gICAgcHJvdG8ucGFyc2luZ0ZsYWdzICAgICAgPSBwYXJzaW5nRmxhZ3M7XG4gICAgcHJvdG8uc2V0ICAgICAgICAgICAgICAgPSBzdHJpbmdTZXQ7XG4gICAgcHJvdG8uc3RhcnRPZiAgICAgICAgICAgPSBzdGFydE9mO1xuICAgIHByb3RvLnN1YnRyYWN0ICAgICAgICAgID0gc3VidHJhY3Q7XG4gICAgcHJvdG8udG9BcnJheSAgICAgICAgICAgPSB0b0FycmF5O1xuICAgIHByb3RvLnRvT2JqZWN0ICAgICAgICAgID0gdG9PYmplY3Q7XG4gICAgcHJvdG8udG9EYXRlICAgICAgICAgICAgPSB0b0RhdGU7XG4gICAgcHJvdG8udG9JU09TdHJpbmcgICAgICAgPSB0b0lTT1N0cmluZztcbiAgICBwcm90by5pbnNwZWN0ICAgICAgICAgICA9IGluc3BlY3Q7XG4gICAgcHJvdG8udG9KU09OICAgICAgICAgICAgPSB0b0pTT047XG4gICAgcHJvdG8udG9TdHJpbmcgICAgICAgICAgPSB0b1N0cmluZztcbiAgICBwcm90by51bml4ICAgICAgICAgICAgICA9IHVuaXg7XG4gICAgcHJvdG8udmFsdWVPZiAgICAgICAgICAgPSB2YWx1ZU9mO1xuICAgIHByb3RvLmNyZWF0aW9uRGF0YSAgICAgID0gY3JlYXRpb25EYXRhO1xuICAgIHByb3RvLnllYXIgICAgICAgPSBnZXRTZXRZZWFyO1xuICAgIHByb3RvLmlzTGVhcFllYXIgPSBnZXRJc0xlYXBZZWFyO1xuICAgIHByb3RvLndlZWtZZWFyICAgID0gZ2V0U2V0V2Vla1llYXI7XG4gICAgcHJvdG8uaXNvV2Vla1llYXIgPSBnZXRTZXRJU09XZWVrWWVhcjtcbiAgICBwcm90by5xdWFydGVyID0gcHJvdG8ucXVhcnRlcnMgPSBnZXRTZXRRdWFydGVyO1xuICAgIHByb3RvLm1vbnRoICAgICAgID0gZ2V0U2V0TW9udGg7XG4gICAgcHJvdG8uZGF5c0luTW9udGggPSBnZXREYXlzSW5Nb250aDtcbiAgICBwcm90by53ZWVrICAgICAgICAgICA9IHByb3RvLndlZWtzICAgICAgICA9IGdldFNldFdlZWs7XG4gICAgcHJvdG8uaXNvV2VlayAgICAgICAgPSBwcm90by5pc29XZWVrcyAgICAgPSBnZXRTZXRJU09XZWVrO1xuICAgIHByb3RvLndlZWtzSW5ZZWFyICAgID0gZ2V0V2Vla3NJblllYXI7XG4gICAgcHJvdG8uaXNvV2Vla3NJblllYXIgPSBnZXRJU09XZWVrc0luWWVhcjtcbiAgICBwcm90by5kYXRlICAgICAgID0gZ2V0U2V0RGF5T2ZNb250aDtcbiAgICBwcm90by5kYXkgICAgICAgID0gcHJvdG8uZGF5cyAgICAgICAgICAgICA9IGdldFNldERheU9mV2VlaztcbiAgICBwcm90by53ZWVrZGF5ICAgID0gZ2V0U2V0TG9jYWxlRGF5T2ZXZWVrO1xuICAgIHByb3RvLmlzb1dlZWtkYXkgPSBnZXRTZXRJU09EYXlPZldlZWs7XG4gICAgcHJvdG8uZGF5T2ZZZWFyICA9IGdldFNldERheU9mWWVhcjtcbiAgICBwcm90by5ob3VyID0gcHJvdG8uaG91cnMgPSBnZXRTZXRIb3VyO1xuICAgIHByb3RvLm1pbnV0ZSA9IHByb3RvLm1pbnV0ZXMgPSBnZXRTZXRNaW51dGU7XG4gICAgcHJvdG8uc2Vjb25kID0gcHJvdG8uc2Vjb25kcyA9IGdldFNldFNlY29uZDtcbiAgICBwcm90by5taWxsaXNlY29uZCA9IHByb3RvLm1pbGxpc2Vjb25kcyA9IGdldFNldE1pbGxpc2Vjb25kO1xuICAgIHByb3RvLnV0Y09mZnNldCAgICAgICAgICAgID0gZ2V0U2V0T2Zmc2V0O1xuICAgIHByb3RvLnV0YyAgICAgICAgICAgICAgICAgID0gc2V0T2Zmc2V0VG9VVEM7XG4gICAgcHJvdG8ubG9jYWwgICAgICAgICAgICAgICAgPSBzZXRPZmZzZXRUb0xvY2FsO1xuICAgIHByb3RvLnBhcnNlWm9uZSAgICAgICAgICAgID0gc2V0T2Zmc2V0VG9QYXJzZWRPZmZzZXQ7XG4gICAgcHJvdG8uaGFzQWxpZ25lZEhvdXJPZmZzZXQgPSBoYXNBbGlnbmVkSG91ck9mZnNldDtcbiAgICBwcm90by5pc0RTVCAgICAgICAgICAgICAgICA9IGlzRGF5bGlnaHRTYXZpbmdUaW1lO1xuICAgIHByb3RvLmlzTG9jYWwgICAgICAgICAgICAgID0gaXNMb2NhbDtcbiAgICBwcm90by5pc1V0Y09mZnNldCAgICAgICAgICA9IGlzVXRjT2Zmc2V0O1xuICAgIHByb3RvLmlzVXRjICAgICAgICAgICAgICAgID0gaXNVdGM7XG4gICAgcHJvdG8uaXNVVEMgICAgICAgICAgICAgICAgPSBpc1V0YztcbiAgICBwcm90by56b25lQWJiciA9IGdldFpvbmVBYmJyO1xuICAgIHByb3RvLnpvbmVOYW1lID0gZ2V0Wm9uZU5hbWU7XG4gICAgcHJvdG8uZGF0ZXMgID0gZGVwcmVjYXRlKCdkYXRlcyBhY2Nlc3NvciBpcyBkZXByZWNhdGVkLiBVc2UgZGF0ZSBpbnN0ZWFkLicsIGdldFNldERheU9mTW9udGgpO1xuICAgIHByb3RvLm1vbnRocyA9IGRlcHJlY2F0ZSgnbW9udGhzIGFjY2Vzc29yIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb250aCBpbnN0ZWFkJywgZ2V0U2V0TW9udGgpO1xuICAgIHByb3RvLnllYXJzICA9IGRlcHJlY2F0ZSgneWVhcnMgYWNjZXNzb3IgaXMgZGVwcmVjYXRlZC4gVXNlIHllYXIgaW5zdGVhZCcsIGdldFNldFllYXIpO1xuICAgIHByb3RvLnpvbmUgICA9IGRlcHJlY2F0ZSgnbW9tZW50KCkuem9uZSBpcyBkZXByZWNhdGVkLCB1c2UgbW9tZW50KCkudXRjT2Zmc2V0IGluc3RlYWQuIGh0dHA6Ly9tb21lbnRqcy5jb20vZ3VpZGVzLyMvd2FybmluZ3Mvem9uZS8nLCBnZXRTZXRab25lKTtcbiAgICBwcm90by5pc0RTVFNoaWZ0ZWQgPSBkZXByZWNhdGUoJ2lzRFNUU2hpZnRlZCBpcyBkZXByZWNhdGVkLiBTZWUgaHR0cDovL21vbWVudGpzLmNvbS9ndWlkZXMvIy93YXJuaW5ncy9kc3Qtc2hpZnRlZC8gZm9yIG1vcmUgaW5mb3JtYXRpb24nLCBpc0RheWxpZ2h0U2F2aW5nVGltZVNoaWZ0ZWQpO1xuXG4gICAgZnVuY3Rpb24gY3JlYXRlVW5peCAoaW5wdXQpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsKGlucHV0ICogMTAwMCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlSW5ab25lICgpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUxvY2FsLmFwcGx5KG51bGwsIGFyZ3VtZW50cykucGFyc2Vab25lKCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJlUGFyc2VQb3N0Rm9ybWF0IChzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHN0cmluZztcbiAgICB9XG5cbiAgICB2YXIgcHJvdG8kMSA9IExvY2FsZS5wcm90b3R5cGU7XG5cbiAgICBwcm90byQxLmNhbGVuZGFyICAgICAgICA9IGNhbGVuZGFyO1xuICAgIHByb3RvJDEubG9uZ0RhdGVGb3JtYXQgID0gbG9uZ0RhdGVGb3JtYXQ7XG4gICAgcHJvdG8kMS5pbnZhbGlkRGF0ZSAgICAgPSBpbnZhbGlkRGF0ZTtcbiAgICBwcm90byQxLm9yZGluYWwgICAgICAgICA9IG9yZGluYWw7XG4gICAgcHJvdG8kMS5wcmVwYXJzZSAgICAgICAgPSBwcmVQYXJzZVBvc3RGb3JtYXQ7XG4gICAgcHJvdG8kMS5wb3N0Zm9ybWF0ICAgICAgPSBwcmVQYXJzZVBvc3RGb3JtYXQ7XG4gICAgcHJvdG8kMS5yZWxhdGl2ZVRpbWUgICAgPSByZWxhdGl2ZVRpbWU7XG4gICAgcHJvdG8kMS5wYXN0RnV0dXJlICAgICAgPSBwYXN0RnV0dXJlO1xuICAgIHByb3RvJDEuc2V0ICAgICAgICAgICAgID0gc2V0O1xuXG4gICAgcHJvdG8kMS5tb250aHMgICAgICAgICAgICA9ICAgICAgICBsb2NhbGVNb250aHM7XG4gICAgcHJvdG8kMS5tb250aHNTaG9ydCAgICAgICA9ICAgICAgICBsb2NhbGVNb250aHNTaG9ydDtcbiAgICBwcm90byQxLm1vbnRoc1BhcnNlICAgICAgID0gICAgICAgIGxvY2FsZU1vbnRoc1BhcnNlO1xuICAgIHByb3RvJDEubW9udGhzUmVnZXggICAgICAgPSBtb250aHNSZWdleDtcbiAgICBwcm90byQxLm1vbnRoc1Nob3J0UmVnZXggID0gbW9udGhzU2hvcnRSZWdleDtcbiAgICBwcm90byQxLndlZWsgPSBsb2NhbGVXZWVrO1xuICAgIHByb3RvJDEuZmlyc3REYXlPZlllYXIgPSBsb2NhbGVGaXJzdERheU9mWWVhcjtcbiAgICBwcm90byQxLmZpcnN0RGF5T2ZXZWVrID0gbG9jYWxlRmlyc3REYXlPZldlZWs7XG5cbiAgICBwcm90byQxLndlZWtkYXlzICAgICAgID0gICAgICAgIGxvY2FsZVdlZWtkYXlzO1xuICAgIHByb3RvJDEud2Vla2RheXNNaW4gICAgPSAgICAgICAgbG9jYWxlV2Vla2RheXNNaW47XG4gICAgcHJvdG8kMS53ZWVrZGF5c1Nob3J0ICA9ICAgICAgICBsb2NhbGVXZWVrZGF5c1Nob3J0O1xuICAgIHByb3RvJDEud2Vla2RheXNQYXJzZSAgPSAgICAgICAgbG9jYWxlV2Vla2RheXNQYXJzZTtcblxuICAgIHByb3RvJDEud2Vla2RheXNSZWdleCAgICAgICA9ICAgICAgICB3ZWVrZGF5c1JlZ2V4O1xuICAgIHByb3RvJDEud2Vla2RheXNTaG9ydFJlZ2V4ICA9ICAgICAgICB3ZWVrZGF5c1Nob3J0UmVnZXg7XG4gICAgcHJvdG8kMS53ZWVrZGF5c01pblJlZ2V4ICAgID0gICAgICAgIHdlZWtkYXlzTWluUmVnZXg7XG5cbiAgICBwcm90byQxLmlzUE0gPSBsb2NhbGVJc1BNO1xuICAgIHByb3RvJDEubWVyaWRpZW0gPSBsb2NhbGVNZXJpZGllbTtcblxuICAgIGZ1bmN0aW9uIGdldCQxIChmb3JtYXQsIGluZGV4LCBmaWVsZCwgc2V0dGVyKSB7XG4gICAgICAgIHZhciBsb2NhbGUgPSBnZXRMb2NhbGUoKTtcbiAgICAgICAgdmFyIHV0YyA9IGNyZWF0ZVVUQygpLnNldChzZXR0ZXIsIGluZGV4KTtcbiAgICAgICAgcmV0dXJuIGxvY2FsZVtmaWVsZF0odXRjLCBmb3JtYXQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RNb250aHNJbXBsIChmb3JtYXQsIGluZGV4LCBmaWVsZCkge1xuICAgICAgICBpZiAoaXNOdW1iZXIoZm9ybWF0KSkge1xuICAgICAgICAgICAgaW5kZXggPSBmb3JtYXQ7XG4gICAgICAgICAgICBmb3JtYXQgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBmb3JtYXQgPSBmb3JtYXQgfHwgJyc7XG5cbiAgICAgICAgaWYgKGluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXQkMShmb3JtYXQsIGluZGV4LCBmaWVsZCwgJ21vbnRoJyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgaTtcbiAgICAgICAgdmFyIG91dCA9IFtdO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgMTI7IGkrKykge1xuICAgICAgICAgICAgb3V0W2ldID0gZ2V0JDEoZm9ybWF0LCBpLCBmaWVsZCwgJ21vbnRoJyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG91dDtcbiAgICB9XG5cbiAgICAvLyAoKVxuICAgIC8vICg1KVxuICAgIC8vIChmbXQsIDUpXG4gICAgLy8gKGZtdClcbiAgICAvLyAodHJ1ZSlcbiAgICAvLyAodHJ1ZSwgNSlcbiAgICAvLyAodHJ1ZSwgZm10LCA1KVxuICAgIC8vICh0cnVlLCBmbXQpXG4gICAgZnVuY3Rpb24gbGlzdFdlZWtkYXlzSW1wbCAobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4LCBmaWVsZCkge1xuICAgICAgICBpZiAodHlwZW9mIGxvY2FsZVNvcnRlZCA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgICAgICAgICBpZiAoaXNOdW1iZXIoZm9ybWF0KSkge1xuICAgICAgICAgICAgICAgIGluZGV4ID0gZm9ybWF0O1xuICAgICAgICAgICAgICAgIGZvcm1hdCA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9ybWF0ID0gZm9ybWF0IHx8ICcnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9ybWF0ID0gbG9jYWxlU29ydGVkO1xuICAgICAgICAgICAgaW5kZXggPSBmb3JtYXQ7XG4gICAgICAgICAgICBsb2NhbGVTb3J0ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGlzTnVtYmVyKGZvcm1hdCkpIHtcbiAgICAgICAgICAgICAgICBpbmRleCA9IGZvcm1hdDtcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvcm1hdCA9IGZvcm1hdCB8fCAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBsb2NhbGUgPSBnZXRMb2NhbGUoKSxcbiAgICAgICAgICAgIHNoaWZ0ID0gbG9jYWxlU29ydGVkID8gbG9jYWxlLl93ZWVrLmRvdyA6IDA7XG5cbiAgICAgICAgaWYgKGluZGV4ICE9IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXQkMShmb3JtYXQsIChpbmRleCArIHNoaWZ0KSAlIDcsIGZpZWxkLCAnZGF5Jyk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgaTtcbiAgICAgICAgdmFyIG91dCA9IFtdO1xuICAgICAgICBmb3IgKGkgPSAwOyBpIDwgNzsgaSsrKSB7XG4gICAgICAgICAgICBvdXRbaV0gPSBnZXQkMShmb3JtYXQsIChpICsgc2hpZnQpICUgNywgZmllbGQsICdkYXknKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gb3V0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RNb250aHMgKGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RNb250aHNJbXBsKGZvcm1hdCwgaW5kZXgsICdtb250aHMnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0TW9udGhzU2hvcnQgKGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RNb250aHNJbXBsKGZvcm1hdCwgaW5kZXgsICdtb250aHNTaG9ydCcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxpc3RXZWVrZGF5cyAobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4KSB7XG4gICAgICAgIHJldHVybiBsaXN0V2Vla2RheXNJbXBsKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCwgJ3dlZWtkYXlzJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdFdlZWtkYXlzU2hvcnQgKGxvY2FsZVNvcnRlZCwgZm9ybWF0LCBpbmRleCkge1xuICAgICAgICByZXR1cm4gbGlzdFdlZWtkYXlzSW1wbChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgsICd3ZWVrZGF5c1Nob3J0Jyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbGlzdFdlZWtkYXlzTWluIChsb2NhbGVTb3J0ZWQsIGZvcm1hdCwgaW5kZXgpIHtcbiAgICAgICAgcmV0dXJuIGxpc3RXZWVrZGF5c0ltcGwobG9jYWxlU29ydGVkLCBmb3JtYXQsIGluZGV4LCAnd2Vla2RheXNNaW4nKTtcbiAgICB9XG5cbiAgICBnZXRTZXRHbG9iYWxMb2NhbGUoJ2VuJywge1xuICAgICAgICBkYXlPZk1vbnRoT3JkaW5hbFBhcnNlOiAvXFxkezEsMn0odGh8c3R8bmR8cmQpLyxcbiAgICAgICAgb3JkaW5hbCA6IGZ1bmN0aW9uIChudW1iZXIpIHtcbiAgICAgICAgICAgIHZhciBiID0gbnVtYmVyICUgMTAsXG4gICAgICAgICAgICAgICAgb3V0cHV0ID0gKHRvSW50KG51bWJlciAlIDEwMCAvIDEwKSA9PT0gMSkgPyAndGgnIDpcbiAgICAgICAgICAgICAgICAoYiA9PT0gMSkgPyAnc3QnIDpcbiAgICAgICAgICAgICAgICAoYiA9PT0gMikgPyAnbmQnIDpcbiAgICAgICAgICAgICAgICAoYiA9PT0gMykgPyAncmQnIDogJ3RoJztcbiAgICAgICAgICAgIHJldHVybiBudW1iZXIgKyBvdXRwdXQ7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNpZGUgZWZmZWN0IGltcG9ydHNcblxuICAgIGhvb2tzLmxhbmcgPSBkZXByZWNhdGUoJ21vbWVudC5sYW5nIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb21lbnQubG9jYWxlIGluc3RlYWQuJywgZ2V0U2V0R2xvYmFsTG9jYWxlKTtcbiAgICBob29rcy5sYW5nRGF0YSA9IGRlcHJlY2F0ZSgnbW9tZW50LmxhbmdEYXRhIGlzIGRlcHJlY2F0ZWQuIFVzZSBtb21lbnQubG9jYWxlRGF0YSBpbnN0ZWFkLicsIGdldExvY2FsZSk7XG5cbiAgICB2YXIgbWF0aEFicyA9IE1hdGguYWJzO1xuXG4gICAgZnVuY3Rpb24gYWJzICgpIHtcbiAgICAgICAgdmFyIGRhdGEgICAgICAgICAgID0gdGhpcy5fZGF0YTtcblxuICAgICAgICB0aGlzLl9taWxsaXNlY29uZHMgPSBtYXRoQWJzKHRoaXMuX21pbGxpc2Vjb25kcyk7XG4gICAgICAgIHRoaXMuX2RheXMgICAgICAgICA9IG1hdGhBYnModGhpcy5fZGF5cyk7XG4gICAgICAgIHRoaXMuX21vbnRocyAgICAgICA9IG1hdGhBYnModGhpcy5fbW9udGhzKTtcblxuICAgICAgICBkYXRhLm1pbGxpc2Vjb25kcyAgPSBtYXRoQWJzKGRhdGEubWlsbGlzZWNvbmRzKTtcbiAgICAgICAgZGF0YS5zZWNvbmRzICAgICAgID0gbWF0aEFicyhkYXRhLnNlY29uZHMpO1xuICAgICAgICBkYXRhLm1pbnV0ZXMgICAgICAgPSBtYXRoQWJzKGRhdGEubWludXRlcyk7XG4gICAgICAgIGRhdGEuaG91cnMgICAgICAgICA9IG1hdGhBYnMoZGF0YS5ob3Vycyk7XG4gICAgICAgIGRhdGEubW9udGhzICAgICAgICA9IG1hdGhBYnMoZGF0YS5tb250aHMpO1xuICAgICAgICBkYXRhLnllYXJzICAgICAgICAgPSBtYXRoQWJzKGRhdGEueWVhcnMpO1xuXG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFkZFN1YnRyYWN0JDEgKGR1cmF0aW9uLCBpbnB1dCwgdmFsdWUsIGRpcmVjdGlvbikge1xuICAgICAgICB2YXIgb3RoZXIgPSBjcmVhdGVEdXJhdGlvbihpbnB1dCwgdmFsdWUpO1xuXG4gICAgICAgIGR1cmF0aW9uLl9taWxsaXNlY29uZHMgKz0gZGlyZWN0aW9uICogb3RoZXIuX21pbGxpc2Vjb25kcztcbiAgICAgICAgZHVyYXRpb24uX2RheXMgICAgICAgICArPSBkaXJlY3Rpb24gKiBvdGhlci5fZGF5cztcbiAgICAgICAgZHVyYXRpb24uX21vbnRocyAgICAgICArPSBkaXJlY3Rpb24gKiBvdGhlci5fbW9udGhzO1xuXG4gICAgICAgIHJldHVybiBkdXJhdGlvbi5fYnViYmxlKCk7XG4gICAgfVxuXG4gICAgLy8gc3VwcG9ydHMgb25seSAyLjAtc3R5bGUgYWRkKDEsICdzJykgb3IgYWRkKGR1cmF0aW9uKVxuICAgIGZ1bmN0aW9uIGFkZCQxIChpbnB1dCwgdmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGFkZFN1YnRyYWN0JDEodGhpcywgaW5wdXQsIHZhbHVlLCAxKTtcbiAgICB9XG5cbiAgICAvLyBzdXBwb3J0cyBvbmx5IDIuMC1zdHlsZSBzdWJ0cmFjdCgxLCAncycpIG9yIHN1YnRyYWN0KGR1cmF0aW9uKVxuICAgIGZ1bmN0aW9uIHN1YnRyYWN0JDEgKGlucHV0LCB2YWx1ZSkge1xuICAgICAgICByZXR1cm4gYWRkU3VidHJhY3QkMSh0aGlzLCBpbnB1dCwgdmFsdWUsIC0xKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhYnNDZWlsIChudW1iZXIpIHtcbiAgICAgICAgaWYgKG51bWJlciA8IDApIHtcbiAgICAgICAgICAgIHJldHVybiBNYXRoLmZsb29yKG51bWJlcik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gTWF0aC5jZWlsKG51bWJlcik7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBidWJibGUgKCkge1xuICAgICAgICB2YXIgbWlsbGlzZWNvbmRzID0gdGhpcy5fbWlsbGlzZWNvbmRzO1xuICAgICAgICB2YXIgZGF5cyAgICAgICAgID0gdGhpcy5fZGF5cztcbiAgICAgICAgdmFyIG1vbnRocyAgICAgICA9IHRoaXMuX21vbnRocztcbiAgICAgICAgdmFyIGRhdGEgICAgICAgICA9IHRoaXMuX2RhdGE7XG4gICAgICAgIHZhciBzZWNvbmRzLCBtaW51dGVzLCBob3VycywgeWVhcnMsIG1vbnRoc0Zyb21EYXlzO1xuXG4gICAgICAgIC8vIGlmIHdlIGhhdmUgYSBtaXggb2YgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIHZhbHVlcywgYnViYmxlIGRvd24gZmlyc3RcbiAgICAgICAgLy8gY2hlY2s6IGh0dHBzOi8vZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50L2lzc3Vlcy8yMTY2XG4gICAgICAgIGlmICghKChtaWxsaXNlY29uZHMgPj0gMCAmJiBkYXlzID49IDAgJiYgbW9udGhzID49IDApIHx8XG4gICAgICAgICAgICAgICAgKG1pbGxpc2Vjb25kcyA8PSAwICYmIGRheXMgPD0gMCAmJiBtb250aHMgPD0gMCkpKSB7XG4gICAgICAgICAgICBtaWxsaXNlY29uZHMgKz0gYWJzQ2VpbChtb250aHNUb0RheXMobW9udGhzKSArIGRheXMpICogODY0ZTU7XG4gICAgICAgICAgICBkYXlzID0gMDtcbiAgICAgICAgICAgIG1vbnRocyA9IDA7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGNvZGUgYnViYmxlcyB1cCB2YWx1ZXMsIHNlZSB0aGUgdGVzdHMgZm9yXG4gICAgICAgIC8vIGV4YW1wbGVzIG9mIHdoYXQgdGhhdCBtZWFucy5cbiAgICAgICAgZGF0YS5taWxsaXNlY29uZHMgPSBtaWxsaXNlY29uZHMgJSAxMDAwO1xuXG4gICAgICAgIHNlY29uZHMgICAgICAgICAgID0gYWJzRmxvb3IobWlsbGlzZWNvbmRzIC8gMTAwMCk7XG4gICAgICAgIGRhdGEuc2Vjb25kcyAgICAgID0gc2Vjb25kcyAlIDYwO1xuXG4gICAgICAgIG1pbnV0ZXMgICAgICAgICAgID0gYWJzRmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgICAgICAgZGF0YS5taW51dGVzICAgICAgPSBtaW51dGVzICUgNjA7XG5cbiAgICAgICAgaG91cnMgICAgICAgICAgICAgPSBhYnNGbG9vcihtaW51dGVzIC8gNjApO1xuICAgICAgICBkYXRhLmhvdXJzICAgICAgICA9IGhvdXJzICUgMjQ7XG5cbiAgICAgICAgZGF5cyArPSBhYnNGbG9vcihob3VycyAvIDI0KTtcblxuICAgICAgICAvLyBjb252ZXJ0IGRheXMgdG8gbW9udGhzXG4gICAgICAgIG1vbnRoc0Zyb21EYXlzID0gYWJzRmxvb3IoZGF5c1RvTW9udGhzKGRheXMpKTtcbiAgICAgICAgbW9udGhzICs9IG1vbnRoc0Zyb21EYXlzO1xuICAgICAgICBkYXlzIC09IGFic0NlaWwobW9udGhzVG9EYXlzKG1vbnRoc0Zyb21EYXlzKSk7XG5cbiAgICAgICAgLy8gMTIgbW9udGhzIC0+IDEgeWVhclxuICAgICAgICB5ZWFycyA9IGFic0Zsb29yKG1vbnRocyAvIDEyKTtcbiAgICAgICAgbW9udGhzICU9IDEyO1xuXG4gICAgICAgIGRhdGEuZGF5cyAgID0gZGF5cztcbiAgICAgICAgZGF0YS5tb250aHMgPSBtb250aHM7XG4gICAgICAgIGRhdGEueWVhcnMgID0geWVhcnM7XG5cbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGF5c1RvTW9udGhzIChkYXlzKSB7XG4gICAgICAgIC8vIDQwMCB5ZWFycyBoYXZlIDE0NjA5NyBkYXlzICh0YWtpbmcgaW50byBhY2NvdW50IGxlYXAgeWVhciBydWxlcylcbiAgICAgICAgLy8gNDAwIHllYXJzIGhhdmUgMTIgbW9udGhzID09PSA0ODAwXG4gICAgICAgIHJldHVybiBkYXlzICogNDgwMCAvIDE0NjA5NztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtb250aHNUb0RheXMgKG1vbnRocykge1xuICAgICAgICAvLyB0aGUgcmV2ZXJzZSBvZiBkYXlzVG9Nb250aHNcbiAgICAgICAgcmV0dXJuIG1vbnRocyAqIDE0NjA5NyAvIDQ4MDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXMgKHVuaXRzKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGRheXM7XG4gICAgICAgIHZhciBtb250aHM7XG4gICAgICAgIHZhciBtaWxsaXNlY29uZHMgPSB0aGlzLl9taWxsaXNlY29uZHM7XG5cbiAgICAgICAgdW5pdHMgPSBub3JtYWxpemVVbml0cyh1bml0cyk7XG5cbiAgICAgICAgaWYgKHVuaXRzID09PSAnbW9udGgnIHx8IHVuaXRzID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIGRheXMgICA9IHRoaXMuX2RheXMgICArIG1pbGxpc2Vjb25kcyAvIDg2NGU1O1xuICAgICAgICAgICAgbW9udGhzID0gdGhpcy5fbW9udGhzICsgZGF5c1RvTW9udGhzKGRheXMpO1xuICAgICAgICAgICAgcmV0dXJuIHVuaXRzID09PSAnbW9udGgnID8gbW9udGhzIDogbW9udGhzIC8gMTI7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBoYW5kbGUgbWlsbGlzZWNvbmRzIHNlcGFyYXRlbHkgYmVjYXVzZSBvZiBmbG9hdGluZyBwb2ludCBtYXRoIGVycm9ycyAoaXNzdWUgIzE4NjcpXG4gICAgICAgICAgICBkYXlzID0gdGhpcy5fZGF5cyArIE1hdGgucm91bmQobW9udGhzVG9EYXlzKHRoaXMuX21vbnRocykpO1xuICAgICAgICAgICAgc3dpdGNoICh1bml0cykge1xuICAgICAgICAgICAgICAgIGNhc2UgJ3dlZWsnICAgOiByZXR1cm4gZGF5cyAvIDcgICAgICsgbWlsbGlzZWNvbmRzIC8gNjA0OGU1O1xuICAgICAgICAgICAgICAgIGNhc2UgJ2RheScgICAgOiByZXR1cm4gZGF5cyAgICAgICAgICsgbWlsbGlzZWNvbmRzIC8gODY0ZTU7XG4gICAgICAgICAgICAgICAgY2FzZSAnaG91cicgICA6IHJldHVybiBkYXlzICogMjQgICAgKyBtaWxsaXNlY29uZHMgLyAzNmU1O1xuICAgICAgICAgICAgICAgIGNhc2UgJ21pbnV0ZScgOiByZXR1cm4gZGF5cyAqIDE0NDAgICsgbWlsbGlzZWNvbmRzIC8gNmU0O1xuICAgICAgICAgICAgICAgIGNhc2UgJ3NlY29uZCcgOiByZXR1cm4gZGF5cyAqIDg2NDAwICsgbWlsbGlzZWNvbmRzIC8gMTAwMDtcbiAgICAgICAgICAgICAgICAvLyBNYXRoLmZsb29yIHByZXZlbnRzIGZsb2F0aW5nIHBvaW50IG1hdGggZXJyb3JzIGhlcmVcbiAgICAgICAgICAgICAgICBjYXNlICdtaWxsaXNlY29uZCc6IHJldHVybiBNYXRoLmZsb29yKGRheXMgKiA4NjRlNSkgKyBtaWxsaXNlY29uZHM7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDogdGhyb3cgbmV3IEVycm9yKCdVbmtub3duIHVuaXQgJyArIHVuaXRzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRPRE86IFVzZSB0aGlzLmFzKCdtcycpP1xuICAgIGZ1bmN0aW9uIHZhbHVlT2YkMSAoKSB7XG4gICAgICAgIGlmICghdGhpcy5pc1ZhbGlkKCkpIHtcbiAgICAgICAgICAgIHJldHVybiBOYU47XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuX21pbGxpc2Vjb25kcyArXG4gICAgICAgICAgICB0aGlzLl9kYXlzICogODY0ZTUgK1xuICAgICAgICAgICAgKHRoaXMuX21vbnRocyAlIDEyKSAqIDI1OTJlNiArXG4gICAgICAgICAgICB0b0ludCh0aGlzLl9tb250aHMgLyAxMikgKiAzMTUzNmU2XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWFrZUFzIChhbGlhcykge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXMoYWxpYXMpO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHZhciBhc01pbGxpc2Vjb25kcyA9IG1ha2VBcygnbXMnKTtcbiAgICB2YXIgYXNTZWNvbmRzICAgICAgPSBtYWtlQXMoJ3MnKTtcbiAgICB2YXIgYXNNaW51dGVzICAgICAgPSBtYWtlQXMoJ20nKTtcbiAgICB2YXIgYXNIb3VycyAgICAgICAgPSBtYWtlQXMoJ2gnKTtcbiAgICB2YXIgYXNEYXlzICAgICAgICAgPSBtYWtlQXMoJ2QnKTtcbiAgICB2YXIgYXNXZWVrcyAgICAgICAgPSBtYWtlQXMoJ3cnKTtcbiAgICB2YXIgYXNNb250aHMgICAgICAgPSBtYWtlQXMoJ00nKTtcbiAgICB2YXIgYXNZZWFycyAgICAgICAgPSBtYWtlQXMoJ3knKTtcblxuICAgIGZ1bmN0aW9uIGNsb25lJDEgKCkge1xuICAgICAgICByZXR1cm4gY3JlYXRlRHVyYXRpb24odGhpcyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0JDIgKHVuaXRzKSB7XG4gICAgICAgIHVuaXRzID0gbm9ybWFsaXplVW5pdHModW5pdHMpO1xuICAgICAgICByZXR1cm4gdGhpcy5pc1ZhbGlkKCkgPyB0aGlzW3VuaXRzICsgJ3MnXSgpIDogTmFOO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG1ha2VHZXR0ZXIobmFtZSkge1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNWYWxpZCgpID8gdGhpcy5fZGF0YVtuYW1lXSA6IE5hTjtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgbWlsbGlzZWNvbmRzID0gbWFrZUdldHRlcignbWlsbGlzZWNvbmRzJyk7XG4gICAgdmFyIHNlY29uZHMgICAgICA9IG1ha2VHZXR0ZXIoJ3NlY29uZHMnKTtcbiAgICB2YXIgbWludXRlcyAgICAgID0gbWFrZUdldHRlcignbWludXRlcycpO1xuICAgIHZhciBob3VycyAgICAgICAgPSBtYWtlR2V0dGVyKCdob3VycycpO1xuICAgIHZhciBkYXlzICAgICAgICAgPSBtYWtlR2V0dGVyKCdkYXlzJyk7XG4gICAgdmFyIG1vbnRocyAgICAgICA9IG1ha2VHZXR0ZXIoJ21vbnRocycpO1xuICAgIHZhciB5ZWFycyAgICAgICAgPSBtYWtlR2V0dGVyKCd5ZWFycycpO1xuXG4gICAgZnVuY3Rpb24gd2Vla3MgKCkge1xuICAgICAgICByZXR1cm4gYWJzRmxvb3IodGhpcy5kYXlzKCkgLyA3KTtcbiAgICB9XG5cbiAgICB2YXIgcm91bmQgPSBNYXRoLnJvdW5kO1xuICAgIHZhciB0aHJlc2hvbGRzID0ge1xuICAgICAgICBzczogNDQsICAgICAgICAgLy8gYSBmZXcgc2Vjb25kcyB0byBzZWNvbmRzXG4gICAgICAgIHMgOiA0NSwgICAgICAgICAvLyBzZWNvbmRzIHRvIG1pbnV0ZVxuICAgICAgICBtIDogNDUsICAgICAgICAgLy8gbWludXRlcyB0byBob3VyXG4gICAgICAgIGggOiAyMiwgICAgICAgICAvLyBob3VycyB0byBkYXlcbiAgICAgICAgZCA6IDI2LCAgICAgICAgIC8vIGRheXMgdG8gbW9udGhcbiAgICAgICAgTSA6IDExICAgICAgICAgIC8vIG1vbnRocyB0byB5ZWFyXG4gICAgfTtcblxuICAgIC8vIGhlbHBlciBmdW5jdGlvbiBmb3IgbW9tZW50LmZuLmZyb20sIG1vbWVudC5mbi5mcm9tTm93LCBhbmQgbW9tZW50LmR1cmF0aW9uLmZuLmh1bWFuaXplXG4gICAgZnVuY3Rpb24gc3Vic3RpdHV0ZVRpbWVBZ28oc3RyaW5nLCBudW1iZXIsIHdpdGhvdXRTdWZmaXgsIGlzRnV0dXJlLCBsb2NhbGUpIHtcbiAgICAgICAgcmV0dXJuIGxvY2FsZS5yZWxhdGl2ZVRpbWUobnVtYmVyIHx8IDEsICEhd2l0aG91dFN1ZmZpeCwgc3RyaW5nLCBpc0Z1dHVyZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVsYXRpdmVUaW1lJDEgKHBvc05lZ0R1cmF0aW9uLCB3aXRob3V0U3VmZml4LCBsb2NhbGUpIHtcbiAgICAgICAgdmFyIGR1cmF0aW9uID0gY3JlYXRlRHVyYXRpb24ocG9zTmVnRHVyYXRpb24pLmFicygpO1xuICAgICAgICB2YXIgc2Vjb25kcyAgPSByb3VuZChkdXJhdGlvbi5hcygncycpKTtcbiAgICAgICAgdmFyIG1pbnV0ZXMgID0gcm91bmQoZHVyYXRpb24uYXMoJ20nKSk7XG4gICAgICAgIHZhciBob3VycyAgICA9IHJvdW5kKGR1cmF0aW9uLmFzKCdoJykpO1xuICAgICAgICB2YXIgZGF5cyAgICAgPSByb3VuZChkdXJhdGlvbi5hcygnZCcpKTtcbiAgICAgICAgdmFyIG1vbnRocyAgID0gcm91bmQoZHVyYXRpb24uYXMoJ00nKSk7XG4gICAgICAgIHZhciB5ZWFycyAgICA9IHJvdW5kKGR1cmF0aW9uLmFzKCd5JykpO1xuXG4gICAgICAgIHZhciBhID0gc2Vjb25kcyA8PSB0aHJlc2hvbGRzLnNzICYmIFsncycsIHNlY29uZHNdICB8fFxuICAgICAgICAgICAgICAgIHNlY29uZHMgPCB0aHJlc2hvbGRzLnMgICAmJiBbJ3NzJywgc2Vjb25kc10gfHxcbiAgICAgICAgICAgICAgICBtaW51dGVzIDw9IDEgICAgICAgICAgICAgJiYgWydtJ10gICAgICAgICAgIHx8XG4gICAgICAgICAgICAgICAgbWludXRlcyA8IHRocmVzaG9sZHMubSAgICYmIFsnbW0nLCBtaW51dGVzXSB8fFxuICAgICAgICAgICAgICAgIGhvdXJzICAgPD0gMSAgICAgICAgICAgICAmJiBbJ2gnXSAgICAgICAgICAgfHxcbiAgICAgICAgICAgICAgICBob3VycyAgIDwgdGhyZXNob2xkcy5oICAgJiYgWydoaCcsIGhvdXJzXSAgIHx8XG4gICAgICAgICAgICAgICAgZGF5cyAgICA8PSAxICAgICAgICAgICAgICYmIFsnZCddICAgICAgICAgICB8fFxuICAgICAgICAgICAgICAgIGRheXMgICAgPCB0aHJlc2hvbGRzLmQgICAmJiBbJ2RkJywgZGF5c10gICAgfHxcbiAgICAgICAgICAgICAgICBtb250aHMgIDw9IDEgICAgICAgICAgICAgJiYgWydNJ10gICAgICAgICAgIHx8XG4gICAgICAgICAgICAgICAgbW9udGhzICA8IHRocmVzaG9sZHMuTSAgICYmIFsnTU0nLCBtb250aHNdICB8fFxuICAgICAgICAgICAgICAgIHllYXJzICAgPD0gMSAgICAgICAgICAgICAmJiBbJ3knXSAgICAgICAgICAgfHwgWyd5eScsIHllYXJzXTtcblxuICAgICAgICBhWzJdID0gd2l0aG91dFN1ZmZpeDtcbiAgICAgICAgYVszXSA9ICtwb3NOZWdEdXJhdGlvbiA+IDA7XG4gICAgICAgIGFbNF0gPSBsb2NhbGU7XG4gICAgICAgIHJldHVybiBzdWJzdGl0dXRlVGltZUFnby5hcHBseShudWxsLCBhKTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gc2V0IHRoZSByb3VuZGluZyBmdW5jdGlvbiBmb3IgcmVsYXRpdmUgdGltZSBzdHJpbmdzXG4gICAgZnVuY3Rpb24gZ2V0U2V0UmVsYXRpdmVUaW1lUm91bmRpbmcgKHJvdW5kaW5nRnVuY3Rpb24pIHtcbiAgICAgICAgaWYgKHJvdW5kaW5nRnVuY3Rpb24gPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgcmV0dXJuIHJvdW5kO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0eXBlb2Yocm91bmRpbmdGdW5jdGlvbikgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJvdW5kID0gcm91bmRpbmdGdW5jdGlvbjtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICAvLyBUaGlzIGZ1bmN0aW9uIGFsbG93cyB5b3UgdG8gc2V0IGEgdGhyZXNob2xkIGZvciByZWxhdGl2ZSB0aW1lIHN0cmluZ3NcbiAgICBmdW5jdGlvbiBnZXRTZXRSZWxhdGl2ZVRpbWVUaHJlc2hvbGQgKHRocmVzaG9sZCwgbGltaXQpIHtcbiAgICAgICAgaWYgKHRocmVzaG9sZHNbdGhyZXNob2xkXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGxpbWl0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB0aHJlc2hvbGRzW3RocmVzaG9sZF07XG4gICAgICAgIH1cbiAgICAgICAgdGhyZXNob2xkc1t0aHJlc2hvbGRdID0gbGltaXQ7XG4gICAgICAgIGlmICh0aHJlc2hvbGQgPT09ICdzJykge1xuICAgICAgICAgICAgdGhyZXNob2xkcy5zcyA9IGxpbWl0IC0gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBodW1hbml6ZSAod2l0aFN1ZmZpeCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBsb2NhbGUgPSB0aGlzLmxvY2FsZURhdGEoKTtcbiAgICAgICAgdmFyIG91dHB1dCA9IHJlbGF0aXZlVGltZSQxKHRoaXMsICF3aXRoU3VmZml4LCBsb2NhbGUpO1xuXG4gICAgICAgIGlmICh3aXRoU3VmZml4KSB7XG4gICAgICAgICAgICBvdXRwdXQgPSBsb2NhbGUucGFzdEZ1dHVyZSgrdGhpcywgb3V0cHV0KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsb2NhbGUucG9zdGZvcm1hdChvdXRwdXQpO1xuICAgIH1cblxuICAgIHZhciBhYnMkMSA9IE1hdGguYWJzO1xuXG4gICAgZnVuY3Rpb24gc2lnbih4KSB7XG4gICAgICAgIHJldHVybiAoKHggPiAwKSAtICh4IDwgMCkpIHx8ICt4O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvSVNPU3RyaW5nJDEoKSB7XG4gICAgICAgIC8vIGZvciBJU08gc3RyaW5ncyB3ZSBkbyBub3QgdXNlIHRoZSBub3JtYWwgYnViYmxpbmcgcnVsZXM6XG4gICAgICAgIC8vICAqIG1pbGxpc2Vjb25kcyBidWJibGUgdXAgdW50aWwgdGhleSBiZWNvbWUgaG91cnNcbiAgICAgICAgLy8gICogZGF5cyBkbyBub3QgYnViYmxlIGF0IGFsbFxuICAgICAgICAvLyAgKiBtb250aHMgYnViYmxlIHVwIHVudGlsIHRoZXkgYmVjb21lIHllYXJzXG4gICAgICAgIC8vIFRoaXMgaXMgYmVjYXVzZSB0aGVyZSBpcyBubyBjb250ZXh0LWZyZWUgY29udmVyc2lvbiBiZXR3ZWVuIGhvdXJzIGFuZCBkYXlzXG4gICAgICAgIC8vICh0aGluayBvZiBjbG9jayBjaGFuZ2VzKVxuICAgICAgICAvLyBhbmQgYWxzbyBub3QgYmV0d2VlbiBkYXlzIGFuZCBtb250aHMgKDI4LTMxIGRheXMgcGVyIG1vbnRoKVxuICAgICAgICBpZiAoIXRoaXMuaXNWYWxpZCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5sb2NhbGVEYXRhKCkuaW52YWxpZERhdGUoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzZWNvbmRzID0gYWJzJDEodGhpcy5fbWlsbGlzZWNvbmRzKSAvIDEwMDA7XG4gICAgICAgIHZhciBkYXlzICAgICAgICAgPSBhYnMkMSh0aGlzLl9kYXlzKTtcbiAgICAgICAgdmFyIG1vbnRocyAgICAgICA9IGFicyQxKHRoaXMuX21vbnRocyk7XG4gICAgICAgIHZhciBtaW51dGVzLCBob3VycywgeWVhcnM7XG5cbiAgICAgICAgLy8gMzYwMCBzZWNvbmRzIC0+IDYwIG1pbnV0ZXMgLT4gMSBob3VyXG4gICAgICAgIG1pbnV0ZXMgICAgICAgICAgID0gYWJzRmxvb3Ioc2Vjb25kcyAvIDYwKTtcbiAgICAgICAgaG91cnMgICAgICAgICAgICAgPSBhYnNGbG9vcihtaW51dGVzIC8gNjApO1xuICAgICAgICBzZWNvbmRzICU9IDYwO1xuICAgICAgICBtaW51dGVzICU9IDYwO1xuXG4gICAgICAgIC8vIDEyIG1vbnRocyAtPiAxIHllYXJcbiAgICAgICAgeWVhcnMgID0gYWJzRmxvb3IobW9udGhzIC8gMTIpO1xuICAgICAgICBtb250aHMgJT0gMTI7XG5cblxuICAgICAgICAvLyBpbnNwaXJlZCBieSBodHRwczovL2dpdGh1Yi5jb20vZG9yZGlsbGUvbW9tZW50LWlzb2R1cmF0aW9uL2Jsb2IvbWFzdGVyL21vbWVudC5pc29kdXJhdGlvbi5qc1xuICAgICAgICB2YXIgWSA9IHllYXJzO1xuICAgICAgICB2YXIgTSA9IG1vbnRocztcbiAgICAgICAgdmFyIEQgPSBkYXlzO1xuICAgICAgICB2YXIgaCA9IGhvdXJzO1xuICAgICAgICB2YXIgbSA9IG1pbnV0ZXM7XG4gICAgICAgIHZhciBzID0gc2Vjb25kcyA/IHNlY29uZHMudG9GaXhlZCgzKS5yZXBsYWNlKC9cXC4/MCskLywgJycpIDogJyc7XG4gICAgICAgIHZhciB0b3RhbCA9IHRoaXMuYXNTZWNvbmRzKCk7XG5cbiAgICAgICAgaWYgKCF0b3RhbCkge1xuICAgICAgICAgICAgLy8gdGhpcyBpcyB0aGUgc2FtZSBhcyBDIydzIChOb2RhKSBhbmQgcHl0aG9uIChpc29kYXRlKS4uLlxuICAgICAgICAgICAgLy8gYnV0IG5vdCBvdGhlciBKUyAoZ29vZy5kYXRlKVxuICAgICAgICAgICAgcmV0dXJuICdQMEQnO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHRvdGFsU2lnbiA9IHRvdGFsIDwgMCA/ICctJyA6ICcnO1xuICAgICAgICB2YXIgeW1TaWduID0gc2lnbih0aGlzLl9tb250aHMpICE9PSBzaWduKHRvdGFsKSA/ICctJyA6ICcnO1xuICAgICAgICB2YXIgZGF5c1NpZ24gPSBzaWduKHRoaXMuX2RheXMpICE9PSBzaWduKHRvdGFsKSA/ICctJyA6ICcnO1xuICAgICAgICB2YXIgaG1zU2lnbiA9IHNpZ24odGhpcy5fbWlsbGlzZWNvbmRzKSAhPT0gc2lnbih0b3RhbCkgPyAnLScgOiAnJztcblxuICAgICAgICByZXR1cm4gdG90YWxTaWduICsgJ1AnICtcbiAgICAgICAgICAgIChZID8geW1TaWduICsgWSArICdZJyA6ICcnKSArXG4gICAgICAgICAgICAoTSA/IHltU2lnbiArIE0gKyAnTScgOiAnJykgK1xuICAgICAgICAgICAgKEQgPyBkYXlzU2lnbiArIEQgKyAnRCcgOiAnJykgK1xuICAgICAgICAgICAgKChoIHx8IG0gfHwgcykgPyAnVCcgOiAnJykgK1xuICAgICAgICAgICAgKGggPyBobXNTaWduICsgaCArICdIJyA6ICcnKSArXG4gICAgICAgICAgICAobSA/IGhtc1NpZ24gKyBtICsgJ00nIDogJycpICtcbiAgICAgICAgICAgIChzID8gaG1zU2lnbiArIHMgKyAnUycgOiAnJyk7XG4gICAgfVxuXG4gICAgdmFyIHByb3RvJDIgPSBEdXJhdGlvbi5wcm90b3R5cGU7XG5cbiAgICBwcm90byQyLmlzVmFsaWQgICAgICAgID0gaXNWYWxpZCQxO1xuICAgIHByb3RvJDIuYWJzICAgICAgICAgICAgPSBhYnM7XG4gICAgcHJvdG8kMi5hZGQgICAgICAgICAgICA9IGFkZCQxO1xuICAgIHByb3RvJDIuc3VidHJhY3QgICAgICAgPSBzdWJ0cmFjdCQxO1xuICAgIHByb3RvJDIuYXMgICAgICAgICAgICAgPSBhcztcbiAgICBwcm90byQyLmFzTWlsbGlzZWNvbmRzID0gYXNNaWxsaXNlY29uZHM7XG4gICAgcHJvdG8kMi5hc1NlY29uZHMgICAgICA9IGFzU2Vjb25kcztcbiAgICBwcm90byQyLmFzTWludXRlcyAgICAgID0gYXNNaW51dGVzO1xuICAgIHByb3RvJDIuYXNIb3VycyAgICAgICAgPSBhc0hvdXJzO1xuICAgIHByb3RvJDIuYXNEYXlzICAgICAgICAgPSBhc0RheXM7XG4gICAgcHJvdG8kMi5hc1dlZWtzICAgICAgICA9IGFzV2Vla3M7XG4gICAgcHJvdG8kMi5hc01vbnRocyAgICAgICA9IGFzTW9udGhzO1xuICAgIHByb3RvJDIuYXNZZWFycyAgICAgICAgPSBhc1llYXJzO1xuICAgIHByb3RvJDIudmFsdWVPZiAgICAgICAgPSB2YWx1ZU9mJDE7XG4gICAgcHJvdG8kMi5fYnViYmxlICAgICAgICA9IGJ1YmJsZTtcbiAgICBwcm90byQyLmNsb25lICAgICAgICAgID0gY2xvbmUkMTtcbiAgICBwcm90byQyLmdldCAgICAgICAgICAgID0gZ2V0JDI7XG4gICAgcHJvdG8kMi5taWxsaXNlY29uZHMgICA9IG1pbGxpc2Vjb25kcztcbiAgICBwcm90byQyLnNlY29uZHMgICAgICAgID0gc2Vjb25kcztcbiAgICBwcm90byQyLm1pbnV0ZXMgICAgICAgID0gbWludXRlcztcbiAgICBwcm90byQyLmhvdXJzICAgICAgICAgID0gaG91cnM7XG4gICAgcHJvdG8kMi5kYXlzICAgICAgICAgICA9IGRheXM7XG4gICAgcHJvdG8kMi53ZWVrcyAgICAgICAgICA9IHdlZWtzO1xuICAgIHByb3RvJDIubW9udGhzICAgICAgICAgPSBtb250aHM7XG4gICAgcHJvdG8kMi55ZWFycyAgICAgICAgICA9IHllYXJzO1xuICAgIHByb3RvJDIuaHVtYW5pemUgICAgICAgPSBodW1hbml6ZTtcbiAgICBwcm90byQyLnRvSVNPU3RyaW5nICAgID0gdG9JU09TdHJpbmckMTtcbiAgICBwcm90byQyLnRvU3RyaW5nICAgICAgID0gdG9JU09TdHJpbmckMTtcbiAgICBwcm90byQyLnRvSlNPTiAgICAgICAgID0gdG9JU09TdHJpbmckMTtcbiAgICBwcm90byQyLmxvY2FsZSAgICAgICAgID0gbG9jYWxlO1xuICAgIHByb3RvJDIubG9jYWxlRGF0YSAgICAgPSBsb2NhbGVEYXRhO1xuXG4gICAgcHJvdG8kMi50b0lzb1N0cmluZyA9IGRlcHJlY2F0ZSgndG9Jc29TdHJpbmcoKSBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIHRvSVNPU3RyaW5nKCkgaW5zdGVhZCAobm90aWNlIHRoZSBjYXBpdGFscyknLCB0b0lTT1N0cmluZyQxKTtcbiAgICBwcm90byQyLmxhbmcgPSBsYW5nO1xuXG4gICAgLy8gU2lkZSBlZmZlY3QgaW1wb3J0c1xuXG4gICAgLy8gRk9STUFUVElOR1xuXG4gICAgYWRkRm9ybWF0VG9rZW4oJ1gnLCAwLCAwLCAndW5peCcpO1xuICAgIGFkZEZvcm1hdFRva2VuKCd4JywgMCwgMCwgJ3ZhbHVlT2YnKTtcblxuICAgIC8vIFBBUlNJTkdcblxuICAgIGFkZFJlZ2V4VG9rZW4oJ3gnLCBtYXRjaFNpZ25lZCk7XG4gICAgYWRkUmVnZXhUb2tlbignWCcsIG1hdGNoVGltZXN0YW1wKTtcbiAgICBhZGRQYXJzZVRva2VuKCdYJywgZnVuY3Rpb24gKGlucHV0LCBhcnJheSwgY29uZmlnKSB7XG4gICAgICAgIGNvbmZpZy5fZCA9IG5ldyBEYXRlKHBhcnNlRmxvYXQoaW5wdXQsIDEwKSAqIDEwMDApO1xuICAgIH0pO1xuICAgIGFkZFBhcnNlVG9rZW4oJ3gnLCBmdW5jdGlvbiAoaW5wdXQsIGFycmF5LCBjb25maWcpIHtcbiAgICAgICAgY29uZmlnLl9kID0gbmV3IERhdGUodG9JbnQoaW5wdXQpKTtcbiAgICB9KTtcblxuICAgIC8vIFNpZGUgZWZmZWN0IGltcG9ydHNcblxuXG4gICAgaG9va3MudmVyc2lvbiA9ICcyLjIyLjInO1xuXG4gICAgc2V0SG9va0NhbGxiYWNrKGNyZWF0ZUxvY2FsKTtcblxuICAgIGhvb2tzLmZuICAgICAgICAgICAgICAgICAgICA9IHByb3RvO1xuICAgIGhvb2tzLm1pbiAgICAgICAgICAgICAgICAgICA9IG1pbjtcbiAgICBob29rcy5tYXggICAgICAgICAgICAgICAgICAgPSBtYXg7XG4gICAgaG9va3Mubm93ICAgICAgICAgICAgICAgICAgID0gbm93O1xuICAgIGhvb2tzLnV0YyAgICAgICAgICAgICAgICAgICA9IGNyZWF0ZVVUQztcbiAgICBob29rcy51bml4ICAgICAgICAgICAgICAgICAgPSBjcmVhdGVVbml4O1xuICAgIGhvb2tzLm1vbnRocyAgICAgICAgICAgICAgICA9IGxpc3RNb250aHM7XG4gICAgaG9va3MuaXNEYXRlICAgICAgICAgICAgICAgID0gaXNEYXRlO1xuICAgIGhvb2tzLmxvY2FsZSAgICAgICAgICAgICAgICA9IGdldFNldEdsb2JhbExvY2FsZTtcbiAgICBob29rcy5pbnZhbGlkICAgICAgICAgICAgICAgPSBjcmVhdGVJbnZhbGlkO1xuICAgIGhvb2tzLmR1cmF0aW9uICAgICAgICAgICAgICA9IGNyZWF0ZUR1cmF0aW9uO1xuICAgIGhvb2tzLmlzTW9tZW50ICAgICAgICAgICAgICA9IGlzTW9tZW50O1xuICAgIGhvb2tzLndlZWtkYXlzICAgICAgICAgICAgICA9IGxpc3RXZWVrZGF5cztcbiAgICBob29rcy5wYXJzZVpvbmUgICAgICAgICAgICAgPSBjcmVhdGVJblpvbmU7XG4gICAgaG9va3MubG9jYWxlRGF0YSAgICAgICAgICAgID0gZ2V0TG9jYWxlO1xuICAgIGhvb2tzLmlzRHVyYXRpb24gICAgICAgICAgICA9IGlzRHVyYXRpb247XG4gICAgaG9va3MubW9udGhzU2hvcnQgICAgICAgICAgID0gbGlzdE1vbnRoc1Nob3J0O1xuICAgIGhvb2tzLndlZWtkYXlzTWluICAgICAgICAgICA9IGxpc3RXZWVrZGF5c01pbjtcbiAgICBob29rcy5kZWZpbmVMb2NhbGUgICAgICAgICAgPSBkZWZpbmVMb2NhbGU7XG4gICAgaG9va3MudXBkYXRlTG9jYWxlICAgICAgICAgID0gdXBkYXRlTG9jYWxlO1xuICAgIGhvb2tzLmxvY2FsZXMgICAgICAgICAgICAgICA9IGxpc3RMb2NhbGVzO1xuICAgIGhvb2tzLndlZWtkYXlzU2hvcnQgICAgICAgICA9IGxpc3RXZWVrZGF5c1Nob3J0O1xuICAgIGhvb2tzLm5vcm1hbGl6ZVVuaXRzICAgICAgICA9IG5vcm1hbGl6ZVVuaXRzO1xuICAgIGhvb2tzLnJlbGF0aXZlVGltZVJvdW5kaW5nICA9IGdldFNldFJlbGF0aXZlVGltZVJvdW5kaW5nO1xuICAgIGhvb2tzLnJlbGF0aXZlVGltZVRocmVzaG9sZCA9IGdldFNldFJlbGF0aXZlVGltZVRocmVzaG9sZDtcbiAgICBob29rcy5jYWxlbmRhckZvcm1hdCAgICAgICAgPSBnZXRDYWxlbmRhckZvcm1hdDtcbiAgICBob29rcy5wcm90b3R5cGUgICAgICAgICAgICAgPSBwcm90bztcblxuICAgIC8vIGN1cnJlbnRseSBIVE1MNSBpbnB1dCB0eXBlIG9ubHkgc3VwcG9ydHMgMjQtaG91ciBmb3JtYXRzXG4gICAgaG9va3MuSFRNTDVfRk1UID0ge1xuICAgICAgICBEQVRFVElNRV9MT0NBTDogJ1lZWVktTU0tRERUSEg6bW0nLCAgICAgICAgICAgICAvLyA8aW5wdXQgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgLz5cbiAgICAgICAgREFURVRJTUVfTE9DQUxfU0VDT05EUzogJ1lZWVktTU0tRERUSEg6bW06c3MnLCAgLy8gPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIHN0ZXA9XCIxXCIgLz5cbiAgICAgICAgREFURVRJTUVfTE9DQUxfTVM6ICdZWVlZLU1NLUREVEhIOm1tOnNzLlNTUycsICAgLy8gPGlucHV0IHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIHN0ZXA9XCIwLjAwMVwiIC8+XG4gICAgICAgIERBVEU6ICdZWVlZLU1NLUREJywgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDxpbnB1dCB0eXBlPVwiZGF0ZVwiIC8+XG4gICAgICAgIFRJTUU6ICdISDptbScsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIDxpbnB1dCB0eXBlPVwidGltZVwiIC8+XG4gICAgICAgIFRJTUVfU0VDT05EUzogJ0hIOm1tOnNzJywgICAgICAgICAgICAgICAgICAgICAgIC8vIDxpbnB1dCB0eXBlPVwidGltZVwiIHN0ZXA9XCIxXCIgLz5cbiAgICAgICAgVElNRV9NUzogJ0hIOm1tOnNzLlNTUycsICAgICAgICAgICAgICAgICAgICAgICAgLy8gPGlucHV0IHR5cGU9XCJ0aW1lXCIgc3RlcD1cIjAuMDAxXCIgLz5cbiAgICAgICAgV0VFSzogJ1lZWVktW1ddV1cnLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gPGlucHV0IHR5cGU9XCJ3ZWVrXCIgLz5cbiAgICAgICAgTU9OVEg6ICdZWVlZLU1NJyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gPGlucHV0IHR5cGU9XCJtb250aFwiIC8+XG4gICAgfTtcblxuICAgIHJldHVybiBob29rcztcblxufSkpKTsiLCIvKiFcbiAqIGpRdWVyeSBKYXZhU2NyaXB0IExpYnJhcnkgdjMuMy4xXG4gKiBodHRwczovL2pxdWVyeS5jb20vXG4gKlxuICogSW5jbHVkZXMgU2l6emxlLmpzXG4gKiBodHRwczovL3NpenpsZWpzLmNvbS9cbiAqXG4gKiBDb3B5cmlnaHQgSlMgRm91bmRhdGlvbiBhbmQgb3RoZXIgY29udHJpYnV0b3JzXG4gKiBSZWxlYXNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2VcbiAqIGh0dHBzOi8vanF1ZXJ5Lm9yZy9saWNlbnNlXG4gKlxuICogRGF0ZTogMjAxOC0wMS0yMFQxNzoyNFpcbiAqL1xuKCBmdW5jdGlvbiggZ2xvYmFsLCBmYWN0b3J5ICkge1xuXG5cdFwidXNlIHN0cmljdFwiO1xuXG5cdGlmICggdHlwZW9mIG1vZHVsZSA9PT0gXCJvYmplY3RcIiAmJiB0eXBlb2YgbW9kdWxlLmV4cG9ydHMgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHQvLyBGb3IgQ29tbW9uSlMgYW5kIENvbW1vbkpTLWxpa2UgZW52aXJvbm1lbnRzIHdoZXJlIGEgcHJvcGVyIGB3aW5kb3dgXG5cdFx0Ly8gaXMgcHJlc2VudCwgZXhlY3V0ZSB0aGUgZmFjdG9yeSBhbmQgZ2V0IGpRdWVyeS5cblx0XHQvLyBGb3IgZW52aXJvbm1lbnRzIHRoYXQgZG8gbm90IGhhdmUgYSBgd2luZG93YCB3aXRoIGEgYGRvY3VtZW50YFxuXHRcdC8vIChzdWNoIGFzIE5vZGUuanMpLCBleHBvc2UgYSBmYWN0b3J5IGFzIG1vZHVsZS5leHBvcnRzLlxuXHRcdC8vIFRoaXMgYWNjZW50dWF0ZXMgdGhlIG5lZWQgZm9yIHRoZSBjcmVhdGlvbiBvZiBhIHJlYWwgYHdpbmRvd2AuXG5cdFx0Ly8gZS5nLiB2YXIgalF1ZXJ5ID0gcmVxdWlyZShcImpxdWVyeVwiKSh3aW5kb3cpO1xuXHRcdC8vIFNlZSB0aWNrZXQgIzE0NTQ5IGZvciBtb3JlIGluZm8uXG5cdFx0bW9kdWxlLmV4cG9ydHMgPSBnbG9iYWwuZG9jdW1lbnQgP1xuXHRcdFx0ZmFjdG9yeSggZ2xvYmFsLCB0cnVlICkgOlxuXHRcdFx0ZnVuY3Rpb24oIHcgKSB7XG5cdFx0XHRcdGlmICggIXcuZG9jdW1lbnQgKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKCBcImpRdWVyeSByZXF1aXJlcyBhIHdpbmRvdyB3aXRoIGEgZG9jdW1lbnRcIiApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBmYWN0b3J5KCB3ICk7XG5cdFx0XHR9O1xuXHR9IGVsc2Uge1xuXHRcdGZhY3RvcnkoIGdsb2JhbCApO1xuXHR9XG5cbi8vIFBhc3MgdGhpcyBpZiB3aW5kb3cgaXMgbm90IGRlZmluZWQgeWV0XG59ICkoIHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIgPyB3aW5kb3cgOiB0aGlzLCBmdW5jdGlvbiggd2luZG93LCBub0dsb2JhbCApIHtcblxuLy8gRWRnZSA8PSAxMiAtIDEzKywgRmlyZWZveCA8PTE4IC0gNDUrLCBJRSAxMCAtIDExLCBTYWZhcmkgNS4xIC0gOSssIGlPUyA2IC0gOS4xXG4vLyB0aHJvdyBleGNlcHRpb25zIHdoZW4gbm9uLXN0cmljdCBjb2RlIChlLmcuLCBBU1AuTkVUIDQuNSkgYWNjZXNzZXMgc3RyaWN0IG1vZGVcbi8vIGFyZ3VtZW50cy5jYWxsZWUuY2FsbGVyICh0cmFjLTEzMzM1KS4gQnV0IGFzIG9mIGpRdWVyeSAzLjAgKDIwMTYpLCBzdHJpY3QgbW9kZSBzaG91bGQgYmUgY29tbW9uXG4vLyBlbm91Z2ggdGhhdCBhbGwgc3VjaCBhdHRlbXB0cyBhcmUgZ3VhcmRlZCBpbiBhIHRyeSBibG9jay5cblwidXNlIHN0cmljdFwiO1xuXG52YXIgYXJyID0gW107XG5cbnZhciBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVudDtcblxudmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mO1xuXG52YXIgc2xpY2UgPSBhcnIuc2xpY2U7XG5cbnZhciBjb25jYXQgPSBhcnIuY29uY2F0O1xuXG52YXIgcHVzaCA9IGFyci5wdXNoO1xuXG52YXIgaW5kZXhPZiA9IGFyci5pbmRleE9mO1xuXG52YXIgY2xhc3MydHlwZSA9IHt9O1xuXG52YXIgdG9TdHJpbmcgPSBjbGFzczJ0eXBlLnRvU3RyaW5nO1xuXG52YXIgaGFzT3duID0gY2xhc3MydHlwZS5oYXNPd25Qcm9wZXJ0eTtcblxudmFyIGZuVG9TdHJpbmcgPSBoYXNPd24udG9TdHJpbmc7XG5cbnZhciBPYmplY3RGdW5jdGlvblN0cmluZyA9IGZuVG9TdHJpbmcuY2FsbCggT2JqZWN0ICk7XG5cbnZhciBzdXBwb3J0ID0ge307XG5cbnZhciBpc0Z1bmN0aW9uID0gZnVuY3Rpb24gaXNGdW5jdGlvbiggb2JqICkge1xuXG4gICAgICAvLyBTdXBwb3J0OiBDaHJvbWUgPD01NywgRmlyZWZveCA8PTUyXG4gICAgICAvLyBJbiBzb21lIGJyb3dzZXJzLCB0eXBlb2YgcmV0dXJucyBcImZ1bmN0aW9uXCIgZm9yIEhUTUwgPG9iamVjdD4gZWxlbWVudHNcbiAgICAgIC8vIChpLmUuLCBgdHlwZW9mIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwib2JqZWN0XCIgKSA9PT0gXCJmdW5jdGlvblwiYCkuXG4gICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGNsYXNzaWZ5ICphbnkqIERPTSBub2RlIGFzIGEgZnVuY3Rpb24uXG4gICAgICByZXR1cm4gdHlwZW9mIG9iaiA9PT0gXCJmdW5jdGlvblwiICYmIHR5cGVvZiBvYmoubm9kZVR5cGUgIT09IFwibnVtYmVyXCI7XG4gIH07XG5cblxudmFyIGlzV2luZG93ID0gZnVuY3Rpb24gaXNXaW5kb3coIG9iaiApIHtcblx0XHRyZXR1cm4gb2JqICE9IG51bGwgJiYgb2JqID09PSBvYmoud2luZG93O1xuXHR9O1xuXG5cblxuXG5cdHZhciBwcmVzZXJ2ZWRTY3JpcHRBdHRyaWJ1dGVzID0ge1xuXHRcdHR5cGU6IHRydWUsXG5cdFx0c3JjOiB0cnVlLFxuXHRcdG5vTW9kdWxlOiB0cnVlXG5cdH07XG5cblx0ZnVuY3Rpb24gRE9NRXZhbCggY29kZSwgZG9jLCBub2RlICkge1xuXHRcdGRvYyA9IGRvYyB8fCBkb2N1bWVudDtcblxuXHRcdHZhciBpLFxuXHRcdFx0c2NyaXB0ID0gZG9jLmNyZWF0ZUVsZW1lbnQoIFwic2NyaXB0XCIgKTtcblxuXHRcdHNjcmlwdC50ZXh0ID0gY29kZTtcblx0XHRpZiAoIG5vZGUgKSB7XG5cdFx0XHRmb3IgKCBpIGluIHByZXNlcnZlZFNjcmlwdEF0dHJpYnV0ZXMgKSB7XG5cdFx0XHRcdGlmICggbm9kZVsgaSBdICkge1xuXHRcdFx0XHRcdHNjcmlwdFsgaSBdID0gbm9kZVsgaSBdO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGRvYy5oZWFkLmFwcGVuZENoaWxkKCBzY3JpcHQgKS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBzY3JpcHQgKTtcblx0fVxuXG5cbmZ1bmN0aW9uIHRvVHlwZSggb2JqICkge1xuXHRpZiAoIG9iaiA9PSBudWxsICkge1xuXHRcdHJldHVybiBvYmogKyBcIlwiO1xuXHR9XG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTIuMyBvbmx5IChmdW5jdGlvbmlzaCBSZWdFeHApXG5cdHJldHVybiB0eXBlb2Ygb2JqID09PSBcIm9iamVjdFwiIHx8IHR5cGVvZiBvYmogPT09IFwiZnVuY3Rpb25cIiA/XG5cdFx0Y2xhc3MydHlwZVsgdG9TdHJpbmcuY2FsbCggb2JqICkgXSB8fCBcIm9iamVjdFwiIDpcblx0XHR0eXBlb2Ygb2JqO1xufVxuLyogZ2xvYmFsIFN5bWJvbCAqL1xuLy8gRGVmaW5pbmcgdGhpcyBnbG9iYWwgaW4gLmVzbGludHJjLmpzb24gd291bGQgY3JlYXRlIGEgZGFuZ2VyIG9mIHVzaW5nIHRoZSBnbG9iYWxcbi8vIHVuZ3VhcmRlZCBpbiBhbm90aGVyIHBsYWNlLCBpdCBzZWVtcyBzYWZlciB0byBkZWZpbmUgZ2xvYmFsIG9ubHkgZm9yIHRoaXMgbW9kdWxlXG5cblxuXG52YXJcblx0dmVyc2lvbiA9IFwiMy4zLjFcIixcblxuXHQvLyBEZWZpbmUgYSBsb2NhbCBjb3B5IG9mIGpRdWVyeVxuXHRqUXVlcnkgPSBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7XG5cblx0XHQvLyBUaGUgalF1ZXJ5IG9iamVjdCBpcyBhY3R1YWxseSBqdXN0IHRoZSBpbml0IGNvbnN0cnVjdG9yICdlbmhhbmNlZCdcblx0XHQvLyBOZWVkIGluaXQgaWYgalF1ZXJ5IGlzIGNhbGxlZCAoanVzdCBhbGxvdyBlcnJvciB0byBiZSB0aHJvd24gaWYgbm90IGluY2x1ZGVkKVxuXHRcdHJldHVybiBuZXcgalF1ZXJ5LmZuLmluaXQoIHNlbGVjdG9yLCBjb250ZXh0ICk7XG5cdH0sXG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMCBvbmx5XG5cdC8vIE1ha2Ugc3VyZSB3ZSB0cmltIEJPTSBhbmQgTkJTUFxuXHRydHJpbSA9IC9eW1xcc1xcdUZFRkZcXHhBMF0rfFtcXHNcXHVGRUZGXFx4QTBdKyQvZztcblxualF1ZXJ5LmZuID0galF1ZXJ5LnByb3RvdHlwZSA9IHtcblxuXHQvLyBUaGUgY3VycmVudCB2ZXJzaW9uIG9mIGpRdWVyeSBiZWluZyB1c2VkXG5cdGpxdWVyeTogdmVyc2lvbixcblxuXHRjb25zdHJ1Y3RvcjogalF1ZXJ5LFxuXG5cdC8vIFRoZSBkZWZhdWx0IGxlbmd0aCBvZiBhIGpRdWVyeSBvYmplY3QgaXMgMFxuXHRsZW5ndGg6IDAsXG5cblx0dG9BcnJheTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHNsaWNlLmNhbGwoIHRoaXMgKTtcblx0fSxcblxuXHQvLyBHZXQgdGhlIE50aCBlbGVtZW50IGluIHRoZSBtYXRjaGVkIGVsZW1lbnQgc2V0IE9SXG5cdC8vIEdldCB0aGUgd2hvbGUgbWF0Y2hlZCBlbGVtZW50IHNldCBhcyBhIGNsZWFuIGFycmF5XG5cdGdldDogZnVuY3Rpb24oIG51bSApIHtcblxuXHRcdC8vIFJldHVybiBhbGwgdGhlIGVsZW1lbnRzIGluIGEgY2xlYW4gYXJyYXlcblx0XHRpZiAoIG51bSA9PSBudWxsICkge1xuXHRcdFx0cmV0dXJuIHNsaWNlLmNhbGwoIHRoaXMgKTtcblx0XHR9XG5cblx0XHQvLyBSZXR1cm4ganVzdCB0aGUgb25lIGVsZW1lbnQgZnJvbSB0aGUgc2V0XG5cdFx0cmV0dXJuIG51bSA8IDAgPyB0aGlzWyBudW0gKyB0aGlzLmxlbmd0aCBdIDogdGhpc1sgbnVtIF07XG5cdH0sXG5cblx0Ly8gVGFrZSBhbiBhcnJheSBvZiBlbGVtZW50cyBhbmQgcHVzaCBpdCBvbnRvIHRoZSBzdGFja1xuXHQvLyAocmV0dXJuaW5nIHRoZSBuZXcgbWF0Y2hlZCBlbGVtZW50IHNldClcblx0cHVzaFN0YWNrOiBmdW5jdGlvbiggZWxlbXMgKSB7XG5cblx0XHQvLyBCdWlsZCBhIG5ldyBqUXVlcnkgbWF0Y2hlZCBlbGVtZW50IHNldFxuXHRcdHZhciByZXQgPSBqUXVlcnkubWVyZ2UoIHRoaXMuY29uc3RydWN0b3IoKSwgZWxlbXMgKTtcblxuXHRcdC8vIEFkZCB0aGUgb2xkIG9iamVjdCBvbnRvIHRoZSBzdGFjayAoYXMgYSByZWZlcmVuY2UpXG5cdFx0cmV0LnByZXZPYmplY3QgPSB0aGlzO1xuXG5cdFx0Ly8gUmV0dXJuIHRoZSBuZXdseS1mb3JtZWQgZWxlbWVudCBzZXRcblx0XHRyZXR1cm4gcmV0O1xuXHR9LFxuXG5cdC8vIEV4ZWN1dGUgYSBjYWxsYmFjayBmb3IgZXZlcnkgZWxlbWVudCBpbiB0aGUgbWF0Y2hlZCBzZXQuXG5cdGVhY2g6IGZ1bmN0aW9uKCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmVhY2goIHRoaXMsIGNhbGxiYWNrICk7XG5cdH0sXG5cblx0bWFwOiBmdW5jdGlvbiggY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqUXVlcnkubWFwKCB0aGlzLCBmdW5jdGlvbiggZWxlbSwgaSApIHtcblx0XHRcdHJldHVybiBjYWxsYmFjay5jYWxsKCBlbGVtLCBpLCBlbGVtICk7XG5cdFx0fSApICk7XG5cdH0sXG5cblx0c2xpY2U6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggc2xpY2UuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApICk7XG5cdH0sXG5cblx0Zmlyc3Q6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiB0aGlzLmVxKCAwICk7XG5cdH0sXG5cblx0bGFzdDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMuZXEoIC0xICk7XG5cdH0sXG5cblx0ZXE6IGZ1bmN0aW9uKCBpICkge1xuXHRcdHZhciBsZW4gPSB0aGlzLmxlbmd0aCxcblx0XHRcdGogPSAraSArICggaSA8IDAgPyBsZW4gOiAwICk7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBqID49IDAgJiYgaiA8IGxlbiA/IFsgdGhpc1sgaiBdIF0gOiBbXSApO1xuXHR9LFxuXG5cdGVuZDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMucHJldk9iamVjdCB8fCB0aGlzLmNvbnN0cnVjdG9yKCk7XG5cdH0sXG5cblx0Ly8gRm9yIGludGVybmFsIHVzZSBvbmx5LlxuXHQvLyBCZWhhdmVzIGxpa2UgYW4gQXJyYXkncyBtZXRob2QsIG5vdCBsaWtlIGEgalF1ZXJ5IG1ldGhvZC5cblx0cHVzaDogcHVzaCxcblx0c29ydDogYXJyLnNvcnQsXG5cdHNwbGljZTogYXJyLnNwbGljZVxufTtcblxualF1ZXJ5LmV4dGVuZCA9IGpRdWVyeS5mbi5leHRlbmQgPSBmdW5jdGlvbigpIHtcblx0dmFyIG9wdGlvbnMsIG5hbWUsIHNyYywgY29weSwgY29weUlzQXJyYXksIGNsb25lLFxuXHRcdHRhcmdldCA9IGFyZ3VtZW50c1sgMCBdIHx8IHt9LFxuXHRcdGkgPSAxLFxuXHRcdGxlbmd0aCA9IGFyZ3VtZW50cy5sZW5ndGgsXG5cdFx0ZGVlcCA9IGZhbHNlO1xuXG5cdC8vIEhhbmRsZSBhIGRlZXAgY29weSBzaXR1YXRpb25cblx0aWYgKCB0eXBlb2YgdGFyZ2V0ID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRkZWVwID0gdGFyZ2V0O1xuXG5cdFx0Ly8gU2tpcCB0aGUgYm9vbGVhbiBhbmQgdGhlIHRhcmdldFxuXHRcdHRhcmdldCA9IGFyZ3VtZW50c1sgaSBdIHx8IHt9O1xuXHRcdGkrKztcblx0fVxuXG5cdC8vIEhhbmRsZSBjYXNlIHdoZW4gdGFyZ2V0IGlzIGEgc3RyaW5nIG9yIHNvbWV0aGluZyAocG9zc2libGUgaW4gZGVlcCBjb3B5KVxuXHRpZiAoIHR5cGVvZiB0YXJnZXQgIT09IFwib2JqZWN0XCIgJiYgIWlzRnVuY3Rpb24oIHRhcmdldCApICkge1xuXHRcdHRhcmdldCA9IHt9O1xuXHR9XG5cblx0Ly8gRXh0ZW5kIGpRdWVyeSBpdHNlbGYgaWYgb25seSBvbmUgYXJndW1lbnQgaXMgcGFzc2VkXG5cdGlmICggaSA9PT0gbGVuZ3RoICkge1xuXHRcdHRhcmdldCA9IHRoaXM7XG5cdFx0aS0tO1xuXHR9XG5cblx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpKysgKSB7XG5cblx0XHQvLyBPbmx5IGRlYWwgd2l0aCBub24tbnVsbC91bmRlZmluZWQgdmFsdWVzXG5cdFx0aWYgKCAoIG9wdGlvbnMgPSBhcmd1bWVudHNbIGkgXSApICE9IG51bGwgKSB7XG5cblx0XHRcdC8vIEV4dGVuZCB0aGUgYmFzZSBvYmplY3Rcblx0XHRcdGZvciAoIG5hbWUgaW4gb3B0aW9ucyApIHtcblx0XHRcdFx0c3JjID0gdGFyZ2V0WyBuYW1lIF07XG5cdFx0XHRcdGNvcHkgPSBvcHRpb25zWyBuYW1lIF07XG5cblx0XHRcdFx0Ly8gUHJldmVudCBuZXZlci1lbmRpbmcgbG9vcFxuXHRcdFx0XHRpZiAoIHRhcmdldCA9PT0gY29weSApIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFJlY3Vyc2UgaWYgd2UncmUgbWVyZ2luZyBwbGFpbiBvYmplY3RzIG9yIGFycmF5c1xuXHRcdFx0XHRpZiAoIGRlZXAgJiYgY29weSAmJiAoIGpRdWVyeS5pc1BsYWluT2JqZWN0KCBjb3B5ICkgfHxcblx0XHRcdFx0XHQoIGNvcHlJc0FycmF5ID0gQXJyYXkuaXNBcnJheSggY29weSApICkgKSApIHtcblxuXHRcdFx0XHRcdGlmICggY29weUlzQXJyYXkgKSB7XG5cdFx0XHRcdFx0XHRjb3B5SXNBcnJheSA9IGZhbHNlO1xuXHRcdFx0XHRcdFx0Y2xvbmUgPSBzcmMgJiYgQXJyYXkuaXNBcnJheSggc3JjICkgPyBzcmMgOiBbXTtcblxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRjbG9uZSA9IHNyYyAmJiBqUXVlcnkuaXNQbGFpbk9iamVjdCggc3JjICkgPyBzcmMgOiB7fTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBOZXZlciBtb3ZlIG9yaWdpbmFsIG9iamVjdHMsIGNsb25lIHRoZW1cblx0XHRcdFx0XHR0YXJnZXRbIG5hbWUgXSA9IGpRdWVyeS5leHRlbmQoIGRlZXAsIGNsb25lLCBjb3B5ICk7XG5cblx0XHRcdFx0Ly8gRG9uJ3QgYnJpbmcgaW4gdW5kZWZpbmVkIHZhbHVlc1xuXHRcdFx0XHR9IGVsc2UgaWYgKCBjb3B5ICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdFx0dGFyZ2V0WyBuYW1lIF0gPSBjb3B5O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmplY3Rcblx0cmV0dXJuIHRhcmdldDtcbn07XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHQvLyBVbmlxdWUgZm9yIGVhY2ggY29weSBvZiBqUXVlcnkgb24gdGhlIHBhZ2Vcblx0ZXhwYW5kbzogXCJqUXVlcnlcIiArICggdmVyc2lvbiArIE1hdGgucmFuZG9tKCkgKS5yZXBsYWNlKCAvXFxEL2csIFwiXCIgKSxcblxuXHQvLyBBc3N1bWUgalF1ZXJ5IGlzIHJlYWR5IHdpdGhvdXQgdGhlIHJlYWR5IG1vZHVsZVxuXHRpc1JlYWR5OiB0cnVlLFxuXG5cdGVycm9yOiBmdW5jdGlvbiggbXNnICkge1xuXHRcdHRocm93IG5ldyBFcnJvciggbXNnICk7XG5cdH0sXG5cblx0bm9vcDogZnVuY3Rpb24oKSB7fSxcblxuXHRpc1BsYWluT2JqZWN0OiBmdW5jdGlvbiggb2JqICkge1xuXHRcdHZhciBwcm90bywgQ3RvcjtcblxuXHRcdC8vIERldGVjdCBvYnZpb3VzIG5lZ2F0aXZlc1xuXHRcdC8vIFVzZSB0b1N0cmluZyBpbnN0ZWFkIG9mIGpRdWVyeS50eXBlIHRvIGNhdGNoIGhvc3Qgb2JqZWN0c1xuXHRcdGlmICggIW9iaiB8fCB0b1N0cmluZy5jYWxsKCBvYmogKSAhPT0gXCJbb2JqZWN0IE9iamVjdF1cIiApIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9XG5cblx0XHRwcm90byA9IGdldFByb3RvKCBvYmogKTtcblxuXHRcdC8vIE9iamVjdHMgd2l0aCBubyBwcm90b3R5cGUgKGUuZy4sIGBPYmplY3QuY3JlYXRlKCBudWxsIClgKSBhcmUgcGxhaW5cblx0XHRpZiAoICFwcm90byApIHtcblx0XHRcdHJldHVybiB0cnVlO1xuXHRcdH1cblxuXHRcdC8vIE9iamVjdHMgd2l0aCBwcm90b3R5cGUgYXJlIHBsYWluIGlmZiB0aGV5IHdlcmUgY29uc3RydWN0ZWQgYnkgYSBnbG9iYWwgT2JqZWN0IGZ1bmN0aW9uXG5cdFx0Q3RvciA9IGhhc093bi5jYWxsKCBwcm90bywgXCJjb25zdHJ1Y3RvclwiICkgJiYgcHJvdG8uY29uc3RydWN0b3I7XG5cdFx0cmV0dXJuIHR5cGVvZiBDdG9yID09PSBcImZ1bmN0aW9uXCIgJiYgZm5Ub1N0cmluZy5jYWxsKCBDdG9yICkgPT09IE9iamVjdEZ1bmN0aW9uU3RyaW5nO1xuXHR9LFxuXG5cdGlzRW1wdHlPYmplY3Q6IGZ1bmN0aW9uKCBvYmogKSB7XG5cblx0XHQvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuXHRcdC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZXNsaW50L2VzbGludC9pc3N1ZXMvNjEyNVxuXHRcdHZhciBuYW1lO1xuXG5cdFx0Zm9yICggbmFtZSBpbiBvYmogKSB7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fVxuXHRcdHJldHVybiB0cnVlO1xuXHR9LFxuXG5cdC8vIEV2YWx1YXRlcyBhIHNjcmlwdCBpbiBhIGdsb2JhbCBjb250ZXh0XG5cdGdsb2JhbEV2YWw6IGZ1bmN0aW9uKCBjb2RlICkge1xuXHRcdERPTUV2YWwoIGNvZGUgKTtcblx0fSxcblxuXHRlYWNoOiBmdW5jdGlvbiggb2JqLCBjYWxsYmFjayApIHtcblx0XHR2YXIgbGVuZ3RoLCBpID0gMDtcblxuXHRcdGlmICggaXNBcnJheUxpa2UoIG9iaiApICkge1xuXHRcdFx0bGVuZ3RoID0gb2JqLmxlbmd0aDtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSsrICkge1xuXHRcdFx0XHRpZiAoIGNhbGxiYWNrLmNhbGwoIG9ialsgaSBdLCBpLCBvYmpbIGkgXSApID09PSBmYWxzZSApIHtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gZWxzZSB7XG5cdFx0XHRmb3IgKCBpIGluIG9iaiApIHtcblx0XHRcdFx0aWYgKCBjYWxsYmFjay5jYWxsKCBvYmpbIGkgXSwgaSwgb2JqWyBpIF0gKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gb2JqO1xuXHR9LFxuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjAgb25seVxuXHR0cmltOiBmdW5jdGlvbiggdGV4dCApIHtcblx0XHRyZXR1cm4gdGV4dCA9PSBudWxsID9cblx0XHRcdFwiXCIgOlxuXHRcdFx0KCB0ZXh0ICsgXCJcIiApLnJlcGxhY2UoIHJ0cmltLCBcIlwiICk7XG5cdH0sXG5cblx0Ly8gcmVzdWx0cyBpcyBmb3IgaW50ZXJuYWwgdXNhZ2Ugb25seVxuXHRtYWtlQXJyYXk6IGZ1bmN0aW9uKCBhcnIsIHJlc3VsdHMgKSB7XG5cdFx0dmFyIHJldCA9IHJlc3VsdHMgfHwgW107XG5cblx0XHRpZiAoIGFyciAhPSBudWxsICkge1xuXHRcdFx0aWYgKCBpc0FycmF5TGlrZSggT2JqZWN0KCBhcnIgKSApICkge1xuXHRcdFx0XHRqUXVlcnkubWVyZ2UoIHJldCxcblx0XHRcdFx0XHR0eXBlb2YgYXJyID09PSBcInN0cmluZ1wiID9cblx0XHRcdFx0XHRbIGFyciBdIDogYXJyXG5cdFx0XHRcdCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwdXNoLmNhbGwoIHJldCwgYXJyICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHJldDtcblx0fSxcblxuXHRpbkFycmF5OiBmdW5jdGlvbiggZWxlbSwgYXJyLCBpICkge1xuXHRcdHJldHVybiBhcnIgPT0gbnVsbCA/IC0xIDogaW5kZXhPZi5jYWxsKCBhcnIsIGVsZW0sIGkgKTtcblx0fSxcblxuXHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0Ly8gcHVzaC5hcHBseShfLCBhcnJheWxpa2UpIHRocm93cyBvbiBhbmNpZW50IFdlYktpdFxuXHRtZXJnZTogZnVuY3Rpb24oIGZpcnN0LCBzZWNvbmQgKSB7XG5cdFx0dmFyIGxlbiA9ICtzZWNvbmQubGVuZ3RoLFxuXHRcdFx0aiA9IDAsXG5cdFx0XHRpID0gZmlyc3QubGVuZ3RoO1xuXG5cdFx0Zm9yICggOyBqIDwgbGVuOyBqKysgKSB7XG5cdFx0XHRmaXJzdFsgaSsrIF0gPSBzZWNvbmRbIGogXTtcblx0XHR9XG5cblx0XHRmaXJzdC5sZW5ndGggPSBpO1xuXG5cdFx0cmV0dXJuIGZpcnN0O1xuXHR9LFxuXG5cdGdyZXA6IGZ1bmN0aW9uKCBlbGVtcywgY2FsbGJhY2ssIGludmVydCApIHtcblx0XHR2YXIgY2FsbGJhY2tJbnZlcnNlLFxuXHRcdFx0bWF0Y2hlcyA9IFtdLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRsZW5ndGggPSBlbGVtcy5sZW5ndGgsXG5cdFx0XHRjYWxsYmFja0V4cGVjdCA9ICFpbnZlcnQ7XG5cblx0XHQvLyBHbyB0aHJvdWdoIHRoZSBhcnJheSwgb25seSBzYXZpbmcgdGhlIGl0ZW1zXG5cdFx0Ly8gdGhhdCBwYXNzIHRoZSB2YWxpZGF0b3IgZnVuY3Rpb25cblx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkrKyApIHtcblx0XHRcdGNhbGxiYWNrSW52ZXJzZSA9ICFjYWxsYmFjayggZWxlbXNbIGkgXSwgaSApO1xuXHRcdFx0aWYgKCBjYWxsYmFja0ludmVyc2UgIT09IGNhbGxiYWNrRXhwZWN0ICkge1xuXHRcdFx0XHRtYXRjaGVzLnB1c2goIGVsZW1zWyBpIF0gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gbWF0Y2hlcztcblx0fSxcblxuXHQvLyBhcmcgaXMgZm9yIGludGVybmFsIHVzYWdlIG9ubHlcblx0bWFwOiBmdW5jdGlvbiggZWxlbXMsIGNhbGxiYWNrLCBhcmcgKSB7XG5cdFx0dmFyIGxlbmd0aCwgdmFsdWUsXG5cdFx0XHRpID0gMCxcblx0XHRcdHJldCA9IFtdO1xuXG5cdFx0Ly8gR28gdGhyb3VnaCB0aGUgYXJyYXksIHRyYW5zbGF0aW5nIGVhY2ggb2YgdGhlIGl0ZW1zIHRvIHRoZWlyIG5ldyB2YWx1ZXNcblx0XHRpZiAoIGlzQXJyYXlMaWtlKCBlbGVtcyApICkge1xuXHRcdFx0bGVuZ3RoID0gZWxlbXMubGVuZ3RoO1xuXHRcdFx0Zm9yICggOyBpIDwgbGVuZ3RoOyBpKysgKSB7XG5cdFx0XHRcdHZhbHVlID0gY2FsbGJhY2soIGVsZW1zWyBpIF0sIGksIGFyZyApO1xuXG5cdFx0XHRcdGlmICggdmFsdWUgIT0gbnVsbCApIHtcblx0XHRcdFx0XHRyZXQucHVzaCggdmFsdWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0Ly8gR28gdGhyb3VnaCBldmVyeSBrZXkgb24gdGhlIG9iamVjdCxcblx0XHR9IGVsc2Uge1xuXHRcdFx0Zm9yICggaSBpbiBlbGVtcyApIHtcblx0XHRcdFx0dmFsdWUgPSBjYWxsYmFjayggZWxlbXNbIGkgXSwgaSwgYXJnICk7XG5cblx0XHRcdFx0aWYgKCB2YWx1ZSAhPSBudWxsICkge1xuXHRcdFx0XHRcdHJldC5wdXNoKCB2YWx1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gRmxhdHRlbiBhbnkgbmVzdGVkIGFycmF5c1xuXHRcdHJldHVybiBjb25jYXQuYXBwbHkoIFtdLCByZXQgKTtcblx0fSxcblxuXHQvLyBBIGdsb2JhbCBHVUlEIGNvdW50ZXIgZm9yIG9iamVjdHNcblx0Z3VpZDogMSxcblxuXHQvLyBqUXVlcnkuc3VwcG9ydCBpcyBub3QgdXNlZCBpbiBDb3JlIGJ1dCBvdGhlciBwcm9qZWN0cyBhdHRhY2ggdGhlaXJcblx0Ly8gcHJvcGVydGllcyB0byBpdCBzbyBpdCBuZWVkcyB0byBleGlzdC5cblx0c3VwcG9ydDogc3VwcG9ydFxufSApO1xuXG5pZiAoIHR5cGVvZiBTeW1ib2wgPT09IFwiZnVuY3Rpb25cIiApIHtcblx0alF1ZXJ5LmZuWyBTeW1ib2wuaXRlcmF0b3IgXSA9IGFyclsgU3ltYm9sLml0ZXJhdG9yIF07XG59XG5cbi8vIFBvcHVsYXRlIHRoZSBjbGFzczJ0eXBlIG1hcFxualF1ZXJ5LmVhY2goIFwiQm9vbGVhbiBOdW1iZXIgU3RyaW5nIEZ1bmN0aW9uIEFycmF5IERhdGUgUmVnRXhwIE9iamVjdCBFcnJvciBTeW1ib2xcIi5zcGxpdCggXCIgXCIgKSxcbmZ1bmN0aW9uKCBpLCBuYW1lICkge1xuXHRjbGFzczJ0eXBlWyBcIltvYmplY3QgXCIgKyBuYW1lICsgXCJdXCIgXSA9IG5hbWUudG9Mb3dlckNhc2UoKTtcbn0gKTtcblxuZnVuY3Rpb24gaXNBcnJheUxpa2UoIG9iaiApIHtcblxuXHQvLyBTdXBwb3J0OiByZWFsIGlPUyA4LjIgb25seSAobm90IHJlcHJvZHVjaWJsZSBpbiBzaW11bGF0b3IpXG5cdC8vIGBpbmAgY2hlY2sgdXNlZCB0byBwcmV2ZW50IEpJVCBlcnJvciAoZ2gtMjE0NSlcblx0Ly8gaGFzT3duIGlzbid0IHVzZWQgaGVyZSBkdWUgdG8gZmFsc2UgbmVnYXRpdmVzXG5cdC8vIHJlZ2FyZGluZyBOb2RlbGlzdCBsZW5ndGggaW4gSUVcblx0dmFyIGxlbmd0aCA9ICEhb2JqICYmIFwibGVuZ3RoXCIgaW4gb2JqICYmIG9iai5sZW5ndGgsXG5cdFx0dHlwZSA9IHRvVHlwZSggb2JqICk7XG5cblx0aWYgKCBpc0Z1bmN0aW9uKCBvYmogKSB8fCBpc1dpbmRvdyggb2JqICkgKSB7XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0cmV0dXJuIHR5cGUgPT09IFwiYXJyYXlcIiB8fCBsZW5ndGggPT09IDAgfHxcblx0XHR0eXBlb2YgbGVuZ3RoID09PSBcIm51bWJlclwiICYmIGxlbmd0aCA+IDAgJiYgKCBsZW5ndGggLSAxICkgaW4gb2JqO1xufVxudmFyIFNpenpsZSA9XG4vKiFcbiAqIFNpenpsZSBDU1MgU2VsZWN0b3IgRW5naW5lIHYyLjMuM1xuICogaHR0cHM6Ly9zaXp6bGVqcy5jb20vXG4gKlxuICogQ29weXJpZ2h0IGpRdWVyeSBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnNcbiAqIFJlbGVhc2VkIHVuZGVyIHRoZSBNSVQgbGljZW5zZVxuICogaHR0cDovL2pxdWVyeS5vcmcvbGljZW5zZVxuICpcbiAqIERhdGU6IDIwMTYtMDgtMDhcbiAqL1xuKGZ1bmN0aW9uKCB3aW5kb3cgKSB7XG5cbnZhciBpLFxuXHRzdXBwb3J0LFxuXHRFeHByLFxuXHRnZXRUZXh0LFxuXHRpc1hNTCxcblx0dG9rZW5pemUsXG5cdGNvbXBpbGUsXG5cdHNlbGVjdCxcblx0b3V0ZXJtb3N0Q29udGV4dCxcblx0c29ydElucHV0LFxuXHRoYXNEdXBsaWNhdGUsXG5cblx0Ly8gTG9jYWwgZG9jdW1lbnQgdmFyc1xuXHRzZXREb2N1bWVudCxcblx0ZG9jdW1lbnQsXG5cdGRvY0VsZW0sXG5cdGRvY3VtZW50SXNIVE1MLFxuXHRyYnVnZ3lRU0EsXG5cdHJidWdneU1hdGNoZXMsXG5cdG1hdGNoZXMsXG5cdGNvbnRhaW5zLFxuXG5cdC8vIEluc3RhbmNlLXNwZWNpZmljIGRhdGFcblx0ZXhwYW5kbyA9IFwic2l6emxlXCIgKyAxICogbmV3IERhdGUoKSxcblx0cHJlZmVycmVkRG9jID0gd2luZG93LmRvY3VtZW50LFxuXHRkaXJydW5zID0gMCxcblx0ZG9uZSA9IDAsXG5cdGNsYXNzQ2FjaGUgPSBjcmVhdGVDYWNoZSgpLFxuXHR0b2tlbkNhY2hlID0gY3JlYXRlQ2FjaGUoKSxcblx0Y29tcGlsZXJDYWNoZSA9IGNyZWF0ZUNhY2hlKCksXG5cdHNvcnRPcmRlciA9IGZ1bmN0aW9uKCBhLCBiICkge1xuXHRcdGlmICggYSA9PT0gYiApIHtcblx0XHRcdGhhc0R1cGxpY2F0ZSA9IHRydWU7XG5cdFx0fVxuXHRcdHJldHVybiAwO1xuXHR9LFxuXG5cdC8vIEluc3RhbmNlIG1ldGhvZHNcblx0aGFzT3duID0gKHt9KS5oYXNPd25Qcm9wZXJ0eSxcblx0YXJyID0gW10sXG5cdHBvcCA9IGFyci5wb3AsXG5cdHB1c2hfbmF0aXZlID0gYXJyLnB1c2gsXG5cdHB1c2ggPSBhcnIucHVzaCxcblx0c2xpY2UgPSBhcnIuc2xpY2UsXG5cdC8vIFVzZSBhIHN0cmlwcGVkLWRvd24gaW5kZXhPZiBhcyBpdCdzIGZhc3RlciB0aGFuIG5hdGl2ZVxuXHQvLyBodHRwczovL2pzcGVyZi5jb20vdGhvci1pbmRleG9mLXZzLWZvci81XG5cdGluZGV4T2YgPSBmdW5jdGlvbiggbGlzdCwgZWxlbSApIHtcblx0XHR2YXIgaSA9IDAsXG5cdFx0XHRsZW4gPSBsaXN0Lmxlbmd0aDtcblx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdGlmICggbGlzdFtpXSA9PT0gZWxlbSApIHtcblx0XHRcdFx0cmV0dXJuIGk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiAtMTtcblx0fSxcblxuXHRib29sZWFucyA9IFwiY2hlY2tlZHxzZWxlY3RlZHxhc3luY3xhdXRvZm9jdXN8YXV0b3BsYXl8Y29udHJvbHN8ZGVmZXJ8ZGlzYWJsZWR8aGlkZGVufGlzbWFwfGxvb3B8bXVsdGlwbGV8b3BlbnxyZWFkb25seXxyZXF1aXJlZHxzY29wZWRcIixcblxuXHQvLyBSZWd1bGFyIGV4cHJlc3Npb25zXG5cblx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvY3NzMy1zZWxlY3RvcnMvI3doaXRlc3BhY2Vcblx0d2hpdGVzcGFjZSA9IFwiW1xcXFx4MjBcXFxcdFxcXFxyXFxcXG5cXFxcZl1cIixcblxuXHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9DU1MyMS9zeW5kYXRhLmh0bWwjdmFsdWUtZGVmLWlkZW50aWZpZXJcblx0aWRlbnRpZmllciA9IFwiKD86XFxcXFxcXFwufFtcXFxcdy1dfFteXFwwLVxcXFx4YTBdKStcIixcblxuXHQvLyBBdHRyaWJ1dGUgc2VsZWN0b3JzOiBodHRwOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI2F0dHJpYnV0ZS1zZWxlY3RvcnNcblx0YXR0cmlidXRlcyA9IFwiXFxcXFtcIiArIHdoaXRlc3BhY2UgKyBcIiooXCIgKyBpZGVudGlmaWVyICsgXCIpKD86XCIgKyB3aGl0ZXNwYWNlICtcblx0XHQvLyBPcGVyYXRvciAoY2FwdHVyZSAyKVxuXHRcdFwiKihbKl4kfCF+XT89KVwiICsgd2hpdGVzcGFjZSArXG5cdFx0Ly8gXCJBdHRyaWJ1dGUgdmFsdWVzIG11c3QgYmUgQ1NTIGlkZW50aWZpZXJzIFtjYXB0dXJlIDVdIG9yIHN0cmluZ3MgW2NhcHR1cmUgMyBvciBjYXB0dXJlIDRdXCJcblx0XHRcIiooPzonKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcJ10pKiknfFxcXCIoKD86XFxcXFxcXFwufFteXFxcXFxcXFxcXFwiXSkqKVxcXCJ8KFwiICsgaWRlbnRpZmllciArIFwiKSl8KVwiICsgd2hpdGVzcGFjZSArXG5cdFx0XCIqXFxcXF1cIixcblxuXHRwc2V1ZG9zID0gXCI6KFwiICsgaWRlbnRpZmllciArIFwiKSg/OlxcXFwoKFwiICtcblx0XHQvLyBUbyByZWR1Y2UgdGhlIG51bWJlciBvZiBzZWxlY3RvcnMgbmVlZGluZyB0b2tlbml6ZSBpbiB0aGUgcHJlRmlsdGVyLCBwcmVmZXIgYXJndW1lbnRzOlxuXHRcdC8vIDEuIHF1b3RlZCAoY2FwdHVyZSAzOyBjYXB0dXJlIDQgb3IgY2FwdHVyZSA1KVxuXHRcdFwiKCcoKD86XFxcXFxcXFwufFteXFxcXFxcXFwnXSkqKSd8XFxcIigoPzpcXFxcXFxcXC58W15cXFxcXFxcXFxcXCJdKSopXFxcIil8XCIgK1xuXHRcdC8vIDIuIHNpbXBsZSAoY2FwdHVyZSA2KVxuXHRcdFwiKCg/OlxcXFxcXFxcLnxbXlxcXFxcXFxcKClbXFxcXF1dfFwiICsgYXR0cmlidXRlcyArIFwiKSopfFwiICtcblx0XHQvLyAzLiBhbnl0aGluZyBlbHNlIChjYXB0dXJlIDIpXG5cdFx0XCIuKlwiICtcblx0XHRcIilcXFxcKXwpXCIsXG5cblx0Ly8gTGVhZGluZyBhbmQgbm9uLWVzY2FwZWQgdHJhaWxpbmcgd2hpdGVzcGFjZSwgY2FwdHVyaW5nIHNvbWUgbm9uLXdoaXRlc3BhY2UgY2hhcmFjdGVycyBwcmVjZWRpbmcgdGhlIGxhdHRlclxuXHRyd2hpdGVzcGFjZSA9IG5ldyBSZWdFeHAoIHdoaXRlc3BhY2UgKyBcIitcIiwgXCJnXCIgKSxcblx0cnRyaW0gPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIit8KCg/Ol58W15cXFxcXFxcXF0pKD86XFxcXFxcXFwuKSopXCIgKyB3aGl0ZXNwYWNlICsgXCIrJFwiLCBcImdcIiApLFxuXG5cdHJjb21tYSA9IG5ldyBSZWdFeHAoIFwiXlwiICsgd2hpdGVzcGFjZSArIFwiKixcIiArIHdoaXRlc3BhY2UgKyBcIipcIiApLFxuXHRyY29tYmluYXRvcnMgPSBuZXcgUmVnRXhwKCBcIl5cIiArIHdoaXRlc3BhY2UgKyBcIiooWz4rfl18XCIgKyB3aGl0ZXNwYWNlICsgXCIpXCIgKyB3aGl0ZXNwYWNlICsgXCIqXCIgKSxcblxuXHRyYXR0cmlidXRlUXVvdGVzID0gbmV3IFJlZ0V4cCggXCI9XCIgKyB3aGl0ZXNwYWNlICsgXCIqKFteXFxcXF0nXFxcIl0qPylcIiArIHdoaXRlc3BhY2UgKyBcIipcXFxcXVwiLCBcImdcIiApLFxuXG5cdHJwc2V1ZG8gPSBuZXcgUmVnRXhwKCBwc2V1ZG9zICksXG5cdHJpZGVudGlmaWVyID0gbmV3IFJlZ0V4cCggXCJeXCIgKyBpZGVudGlmaWVyICsgXCIkXCIgKSxcblxuXHRtYXRjaEV4cHIgPSB7XG5cdFx0XCJJRFwiOiBuZXcgUmVnRXhwKCBcIl4jKFwiICsgaWRlbnRpZmllciArIFwiKVwiICksXG5cdFx0XCJDTEFTU1wiOiBuZXcgUmVnRXhwKCBcIl5cXFxcLihcIiArIGlkZW50aWZpZXIgKyBcIilcIiApLFxuXHRcdFwiVEFHXCI6IG5ldyBSZWdFeHAoIFwiXihcIiArIGlkZW50aWZpZXIgKyBcInxbKl0pXCIgKSxcblx0XHRcIkFUVFJcIjogbmV3IFJlZ0V4cCggXCJeXCIgKyBhdHRyaWJ1dGVzICksXG5cdFx0XCJQU0VVRE9cIjogbmV3IFJlZ0V4cCggXCJeXCIgKyBwc2V1ZG9zICksXG5cdFx0XCJDSElMRFwiOiBuZXcgUmVnRXhwKCBcIl46KG9ubHl8Zmlyc3R8bGFzdHxudGh8bnRoLWxhc3QpLShjaGlsZHxvZi10eXBlKSg/OlxcXFwoXCIgKyB3aGl0ZXNwYWNlICtcblx0XHRcdFwiKihldmVufG9kZHwoKFsrLV18KShcXFxcZCopbnwpXCIgKyB3aGl0ZXNwYWNlICsgXCIqKD86KFsrLV18KVwiICsgd2hpdGVzcGFjZSArXG5cdFx0XHRcIiooXFxcXGQrKXwpKVwiICsgd2hpdGVzcGFjZSArIFwiKlxcXFwpfClcIiwgXCJpXCIgKSxcblx0XHRcImJvb2xcIjogbmV3IFJlZ0V4cCggXCJeKD86XCIgKyBib29sZWFucyArIFwiKSRcIiwgXCJpXCIgKSxcblx0XHQvLyBGb3IgdXNlIGluIGxpYnJhcmllcyBpbXBsZW1lbnRpbmcgLmlzKClcblx0XHQvLyBXZSB1c2UgdGhpcyBmb3IgUE9TIG1hdGNoaW5nIGluIGBzZWxlY3RgXG5cdFx0XCJuZWVkc0NvbnRleHRcIjogbmV3IFJlZ0V4cCggXCJeXCIgKyB3aGl0ZXNwYWNlICsgXCIqWz4rfl18OihldmVufG9kZHxlcXxndHxsdHxudGh8Zmlyc3R8bGFzdCkoPzpcXFxcKFwiICtcblx0XHRcdHdoaXRlc3BhY2UgKyBcIiooKD86LVxcXFxkKT9cXFxcZCopXCIgKyB3aGl0ZXNwYWNlICsgXCIqXFxcXCl8KSg/PVteLV18JClcIiwgXCJpXCIgKVxuXHR9LFxuXG5cdHJpbnB1dHMgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxidXR0b24pJC9pLFxuXHRyaGVhZGVyID0gL15oXFxkJC9pLFxuXG5cdHJuYXRpdmUgPSAvXltee10rXFx7XFxzKlxcW25hdGl2ZSBcXHcvLFxuXG5cdC8vIEVhc2lseS1wYXJzZWFibGUvcmV0cmlldmFibGUgSUQgb3IgVEFHIG9yIENMQVNTIHNlbGVjdG9yc1xuXHRycXVpY2tFeHByID0gL14oPzojKFtcXHctXSspfChcXHcrKXxcXC4oW1xcdy1dKykpJC8sXG5cblx0cnNpYmxpbmcgPSAvWyt+XS8sXG5cblx0Ly8gQ1NTIGVzY2FwZXNcblx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI2VzY2FwZWQtY2hhcmFjdGVyc1xuXHRydW5lc2NhcGUgPSBuZXcgUmVnRXhwKCBcIlxcXFxcXFxcKFtcXFxcZGEtZl17MSw2fVwiICsgd2hpdGVzcGFjZSArIFwiP3woXCIgKyB3aGl0ZXNwYWNlICsgXCIpfC4pXCIsIFwiaWdcIiApLFxuXHRmdW5lc2NhcGUgPSBmdW5jdGlvbiggXywgZXNjYXBlZCwgZXNjYXBlZFdoaXRlc3BhY2UgKSB7XG5cdFx0dmFyIGhpZ2ggPSBcIjB4XCIgKyBlc2NhcGVkIC0gMHgxMDAwMDtcblx0XHQvLyBOYU4gbWVhbnMgbm9uLWNvZGVwb2ludFxuXHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3g8MjRcblx0XHQvLyBXb3JrYXJvdW5kIGVycm9uZW91cyBudW1lcmljIGludGVycHJldGF0aW9uIG9mICtcIjB4XCJcblx0XHRyZXR1cm4gaGlnaCAhPT0gaGlnaCB8fCBlc2NhcGVkV2hpdGVzcGFjZSA/XG5cdFx0XHRlc2NhcGVkIDpcblx0XHRcdGhpZ2ggPCAwID9cblx0XHRcdFx0Ly8gQk1QIGNvZGVwb2ludFxuXHRcdFx0XHRTdHJpbmcuZnJvbUNoYXJDb2RlKCBoaWdoICsgMHgxMDAwMCApIDpcblx0XHRcdFx0Ly8gU3VwcGxlbWVudGFsIFBsYW5lIGNvZGVwb2ludCAoc3Vycm9nYXRlIHBhaXIpXG5cdFx0XHRcdFN0cmluZy5mcm9tQ2hhckNvZGUoIGhpZ2ggPj4gMTAgfCAweEQ4MDAsIGhpZ2ggJiAweDNGRiB8IDB4REMwMCApO1xuXHR9LFxuXG5cdC8vIENTUyBzdHJpbmcvaWRlbnRpZmllciBzZXJpYWxpemF0aW9uXG5cdC8vIGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3NvbS8jY29tbW9uLXNlcmlhbGl6aW5nLWlkaW9tc1xuXHRyY3NzZXNjYXBlID0gLyhbXFwwLVxceDFmXFx4N2ZdfF4tP1xcZCl8Xi0kfFteXFwwLVxceDFmXFx4N2YtXFx1RkZGRlxcdy1dL2csXG5cdGZjc3Nlc2NhcGUgPSBmdW5jdGlvbiggY2gsIGFzQ29kZVBvaW50ICkge1xuXHRcdGlmICggYXNDb2RlUG9pbnQgKSB7XG5cblx0XHRcdC8vIFUrMDAwMCBOVUxMIGJlY29tZXMgVStGRkZEIFJFUExBQ0VNRU5UIENIQVJBQ1RFUlxuXHRcdFx0aWYgKCBjaCA9PT0gXCJcXDBcIiApIHtcblx0XHRcdFx0cmV0dXJuIFwiXFx1RkZGRFwiO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDb250cm9sIGNoYXJhY3RlcnMgYW5kIChkZXBlbmRlbnQgdXBvbiBwb3NpdGlvbikgbnVtYmVycyBnZXQgZXNjYXBlZCBhcyBjb2RlIHBvaW50c1xuXHRcdFx0cmV0dXJuIGNoLnNsaWNlKCAwLCAtMSApICsgXCJcXFxcXCIgKyBjaC5jaGFyQ29kZUF0KCBjaC5sZW5ndGggLSAxICkudG9TdHJpbmcoIDE2ICkgKyBcIiBcIjtcblx0XHR9XG5cblx0XHQvLyBPdGhlciBwb3RlbnRpYWxseS1zcGVjaWFsIEFTQ0lJIGNoYXJhY3RlcnMgZ2V0IGJhY2tzbGFzaC1lc2NhcGVkXG5cdFx0cmV0dXJuIFwiXFxcXFwiICsgY2g7XG5cdH0sXG5cblx0Ly8gVXNlZCBmb3IgaWZyYW1lc1xuXHQvLyBTZWUgc2V0RG9jdW1lbnQoKVxuXHQvLyBSZW1vdmluZyB0aGUgZnVuY3Rpb24gd3JhcHBlciBjYXVzZXMgYSBcIlBlcm1pc3Npb24gRGVuaWVkXCJcblx0Ly8gZXJyb3IgaW4gSUVcblx0dW5sb2FkSGFuZGxlciA9IGZ1bmN0aW9uKCkge1xuXHRcdHNldERvY3VtZW50KCk7XG5cdH0sXG5cblx0ZGlzYWJsZWRBbmNlc3RvciA9IGFkZENvbWJpbmF0b3IoXG5cdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gdHJ1ZSAmJiAoXCJmb3JtXCIgaW4gZWxlbSB8fCBcImxhYmVsXCIgaW4gZWxlbSk7XG5cdFx0fSxcblx0XHR7IGRpcjogXCJwYXJlbnROb2RlXCIsIG5leHQ6IFwibGVnZW5kXCIgfVxuXHQpO1xuXG4vLyBPcHRpbWl6ZSBmb3IgcHVzaC5hcHBseSggXywgTm9kZUxpc3QgKVxudHJ5IHtcblx0cHVzaC5hcHBseShcblx0XHQoYXJyID0gc2xpY2UuY2FsbCggcHJlZmVycmVkRG9jLmNoaWxkTm9kZXMgKSksXG5cdFx0cHJlZmVycmVkRG9jLmNoaWxkTm9kZXNcblx0KTtcblx0Ly8gU3VwcG9ydDogQW5kcm9pZDw0LjBcblx0Ly8gRGV0ZWN0IHNpbGVudGx5IGZhaWxpbmcgcHVzaC5hcHBseVxuXHRhcnJbIHByZWZlcnJlZERvYy5jaGlsZE5vZGVzLmxlbmd0aCBdLm5vZGVUeXBlO1xufSBjYXRjaCAoIGUgKSB7XG5cdHB1c2ggPSB7IGFwcGx5OiBhcnIubGVuZ3RoID9cblxuXHRcdC8vIExldmVyYWdlIHNsaWNlIGlmIHBvc3NpYmxlXG5cdFx0ZnVuY3Rpb24oIHRhcmdldCwgZWxzICkge1xuXHRcdFx0cHVzaF9uYXRpdmUuYXBwbHkoIHRhcmdldCwgc2xpY2UuY2FsbChlbHMpICk7XG5cdFx0fSA6XG5cblx0XHQvLyBTdXBwb3J0OiBJRTw5XG5cdFx0Ly8gT3RoZXJ3aXNlIGFwcGVuZCBkaXJlY3RseVxuXHRcdGZ1bmN0aW9uKCB0YXJnZXQsIGVscyApIHtcblx0XHRcdHZhciBqID0gdGFyZ2V0Lmxlbmd0aCxcblx0XHRcdFx0aSA9IDA7XG5cdFx0XHQvLyBDYW4ndCB0cnVzdCBOb2RlTGlzdC5sZW5ndGhcblx0XHRcdHdoaWxlICggKHRhcmdldFtqKytdID0gZWxzW2krK10pICkge31cblx0XHRcdHRhcmdldC5sZW5ndGggPSBqIC0gMTtcblx0XHR9XG5cdH07XG59XG5cbmZ1bmN0aW9uIFNpenpsZSggc2VsZWN0b3IsIGNvbnRleHQsIHJlc3VsdHMsIHNlZWQgKSB7XG5cdHZhciBtLCBpLCBlbGVtLCBuaWQsIG1hdGNoLCBncm91cHMsIG5ld1NlbGVjdG9yLFxuXHRcdG5ld0NvbnRleHQgPSBjb250ZXh0ICYmIGNvbnRleHQub3duZXJEb2N1bWVudCxcblxuXHRcdC8vIG5vZGVUeXBlIGRlZmF1bHRzIHRvIDksIHNpbmNlIGNvbnRleHQgZGVmYXVsdHMgdG8gZG9jdW1lbnRcblx0XHRub2RlVHlwZSA9IGNvbnRleHQgPyBjb250ZXh0Lm5vZGVUeXBlIDogOTtcblxuXHRyZXN1bHRzID0gcmVzdWx0cyB8fCBbXTtcblxuXHQvLyBSZXR1cm4gZWFybHkgZnJvbSBjYWxscyB3aXRoIGludmFsaWQgc2VsZWN0b3Igb3IgY29udGV4dFxuXHRpZiAoIHR5cGVvZiBzZWxlY3RvciAhPT0gXCJzdHJpbmdcIiB8fCAhc2VsZWN0b3IgfHxcblx0XHRub2RlVHlwZSAhPT0gMSAmJiBub2RlVHlwZSAhPT0gOSAmJiBub2RlVHlwZSAhPT0gMTEgKSB7XG5cblx0XHRyZXR1cm4gcmVzdWx0cztcblx0fVxuXG5cdC8vIFRyeSB0byBzaG9ydGN1dCBmaW5kIG9wZXJhdGlvbnMgKGFzIG9wcG9zZWQgdG8gZmlsdGVycykgaW4gSFRNTCBkb2N1bWVudHNcblx0aWYgKCAhc2VlZCApIHtcblxuXHRcdGlmICggKCBjb250ZXh0ID8gY29udGV4dC5vd25lckRvY3VtZW50IHx8IGNvbnRleHQgOiBwcmVmZXJyZWREb2MgKSAhPT0gZG9jdW1lbnQgKSB7XG5cdFx0XHRzZXREb2N1bWVudCggY29udGV4dCApO1xuXHRcdH1cblx0XHRjb250ZXh0ID0gY29udGV4dCB8fCBkb2N1bWVudDtcblxuXHRcdGlmICggZG9jdW1lbnRJc0hUTUwgKSB7XG5cblx0XHRcdC8vIElmIHRoZSBzZWxlY3RvciBpcyBzdWZmaWNpZW50bHkgc2ltcGxlLCB0cnkgdXNpbmcgYSBcImdldCpCeSpcIiBET00gbWV0aG9kXG5cdFx0XHQvLyAoZXhjZXB0aW5nIERvY3VtZW50RnJhZ21lbnQgY29udGV4dCwgd2hlcmUgdGhlIG1ldGhvZHMgZG9uJ3QgZXhpc3QpXG5cdFx0XHRpZiAoIG5vZGVUeXBlICE9PSAxMSAmJiAobWF0Y2ggPSBycXVpY2tFeHByLmV4ZWMoIHNlbGVjdG9yICkpICkge1xuXG5cdFx0XHRcdC8vIElEIHNlbGVjdG9yXG5cdFx0XHRcdGlmICggKG0gPSBtYXRjaFsxXSkgKSB7XG5cblx0XHRcdFx0XHQvLyBEb2N1bWVudCBjb250ZXh0XG5cdFx0XHRcdFx0aWYgKCBub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0XHRcdGlmICggKGVsZW0gPSBjb250ZXh0LmdldEVsZW1lbnRCeUlkKCBtICkpICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFLCBPcGVyYSwgV2Via2l0XG5cdFx0XHRcdFx0XHRcdC8vIFRPRE86IGlkZW50aWZ5IHZlcnNpb25zXG5cdFx0XHRcdFx0XHRcdC8vIGdldEVsZW1lbnRCeUlkIGNhbiBtYXRjaCBlbGVtZW50cyBieSBuYW1lIGluc3RlYWQgb2YgSURcblx0XHRcdFx0XHRcdFx0aWYgKCBlbGVtLmlkID09PSBtICkge1xuXHRcdFx0XHRcdFx0XHRcdHJlc3VsdHMucHVzaCggZWxlbSApO1xuXHRcdFx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIEVsZW1lbnQgY29udGV4dFxuXHRcdFx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFLCBPcGVyYSwgV2Via2l0XG5cdFx0XHRcdFx0XHQvLyBUT0RPOiBpZGVudGlmeSB2ZXJzaW9uc1xuXHRcdFx0XHRcdFx0Ly8gZ2V0RWxlbWVudEJ5SWQgY2FuIG1hdGNoIGVsZW1lbnRzIGJ5IG5hbWUgaW5zdGVhZCBvZiBJRFxuXHRcdFx0XHRcdFx0aWYgKCBuZXdDb250ZXh0ICYmIChlbGVtID0gbmV3Q29udGV4dC5nZXRFbGVtZW50QnlJZCggbSApKSAmJlxuXHRcdFx0XHRcdFx0XHRjb250YWlucyggY29udGV4dCwgZWxlbSApICYmXG5cdFx0XHRcdFx0XHRcdGVsZW0uaWQgPT09IG0gKSB7XG5cblx0XHRcdFx0XHRcdFx0cmVzdWx0cy5wdXNoKCBlbGVtICk7XG5cdFx0XHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBUeXBlIHNlbGVjdG9yXG5cdFx0XHRcdH0gZWxzZSBpZiAoIG1hdGNoWzJdICkge1xuXHRcdFx0XHRcdHB1c2guYXBwbHkoIHJlc3VsdHMsIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHNlbGVjdG9yICkgKTtcblx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblxuXHRcdFx0XHQvLyBDbGFzcyBzZWxlY3RvclxuXHRcdFx0XHR9IGVsc2UgaWYgKCAobSA9IG1hdGNoWzNdKSAmJiBzdXBwb3J0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgJiZcblx0XHRcdFx0XHRjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUgKSB7XG5cblx0XHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBjb250ZXh0LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoIG0gKSApO1xuXHRcdFx0XHRcdHJldHVybiByZXN1bHRzO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIFRha2UgYWR2YW50YWdlIG9mIHF1ZXJ5U2VsZWN0b3JBbGxcblx0XHRcdGlmICggc3VwcG9ydC5xc2EgJiZcblx0XHRcdFx0IWNvbXBpbGVyQ2FjaGVbIHNlbGVjdG9yICsgXCIgXCIgXSAmJlxuXHRcdFx0XHQoIXJidWdneVFTQSB8fCAhcmJ1Z2d5UVNBLnRlc3QoIHNlbGVjdG9yICkpICkge1xuXG5cdFx0XHRcdGlmICggbm9kZVR5cGUgIT09IDEgKSB7XG5cdFx0XHRcdFx0bmV3Q29udGV4dCA9IGNvbnRleHQ7XG5cdFx0XHRcdFx0bmV3U2VsZWN0b3IgPSBzZWxlY3RvcjtcblxuXHRcdFx0XHQvLyBxU0EgbG9va3Mgb3V0c2lkZSBFbGVtZW50IGNvbnRleHQsIHdoaWNoIGlzIG5vdCB3aGF0IHdlIHdhbnRcblx0XHRcdFx0Ly8gVGhhbmtzIHRvIEFuZHJldyBEdXBvbnQgZm9yIHRoaXMgd29ya2Fyb3VuZCB0ZWNobmlxdWVcblx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPD04XG5cdFx0XHRcdC8vIEV4Y2x1ZGUgb2JqZWN0IGVsZW1lbnRzXG5cdFx0XHRcdH0gZWxzZSBpZiAoIGNvbnRleHQubm9kZU5hbWUudG9Mb3dlckNhc2UoKSAhPT0gXCJvYmplY3RcIiApIHtcblxuXHRcdFx0XHRcdC8vIENhcHR1cmUgdGhlIGNvbnRleHQgSUQsIHNldHRpbmcgaXQgZmlyc3QgaWYgbmVjZXNzYXJ5XG5cdFx0XHRcdFx0aWYgKCAobmlkID0gY29udGV4dC5nZXRBdHRyaWJ1dGUoIFwiaWRcIiApKSApIHtcblx0XHRcdFx0XHRcdG5pZCA9IG5pZC5yZXBsYWNlKCByY3NzZXNjYXBlLCBmY3NzZXNjYXBlICk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGNvbnRleHQuc2V0QXR0cmlidXRlKCBcImlkXCIsIChuaWQgPSBleHBhbmRvKSApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFByZWZpeCBldmVyeSBzZWxlY3RvciBpbiB0aGUgbGlzdFxuXHRcdFx0XHRcdGdyb3VwcyA9IHRva2VuaXplKCBzZWxlY3RvciApO1xuXHRcdFx0XHRcdGkgPSBncm91cHMubGVuZ3RoO1xuXHRcdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdFx0Z3JvdXBzW2ldID0gXCIjXCIgKyBuaWQgKyBcIiBcIiArIHRvU2VsZWN0b3IoIGdyb3Vwc1tpXSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRuZXdTZWxlY3RvciA9IGdyb3Vwcy5qb2luKCBcIixcIiApO1xuXG5cdFx0XHRcdFx0Ly8gRXhwYW5kIGNvbnRleHQgZm9yIHNpYmxpbmcgc2VsZWN0b3JzXG5cdFx0XHRcdFx0bmV3Q29udGV4dCA9IHJzaWJsaW5nLnRlc3QoIHNlbGVjdG9yICkgJiYgdGVzdENvbnRleHQoIGNvbnRleHQucGFyZW50Tm9kZSApIHx8XG5cdFx0XHRcdFx0XHRjb250ZXh0O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKCBuZXdTZWxlY3RvciApIHtcblx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0cHVzaC5hcHBseSggcmVzdWx0cyxcblx0XHRcdFx0XHRcdFx0bmV3Q29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCBuZXdTZWxlY3RvciApXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cdFx0XHRcdFx0fSBjYXRjaCAoIHFzYUVycm9yICkge1xuXHRcdFx0XHRcdH0gZmluYWxseSB7XG5cdFx0XHRcdFx0XHRpZiAoIG5pZCA9PT0gZXhwYW5kbyApIHtcblx0XHRcdFx0XHRcdFx0Y29udGV4dC5yZW1vdmVBdHRyaWJ1dGUoIFwiaWRcIiApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIEFsbCBvdGhlcnNcblx0cmV0dXJuIHNlbGVjdCggc2VsZWN0b3IucmVwbGFjZSggcnRyaW0sIFwiJDFcIiApLCBjb250ZXh0LCByZXN1bHRzLCBzZWVkICk7XG59XG5cbi8qKlxuICogQ3JlYXRlIGtleS12YWx1ZSBjYWNoZXMgb2YgbGltaXRlZCBzaXplXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb24oc3RyaW5nLCBvYmplY3QpfSBSZXR1cm5zIHRoZSBPYmplY3QgZGF0YSBhZnRlciBzdG9yaW5nIGl0IG9uIGl0c2VsZiB3aXRoXG4gKlx0cHJvcGVydHkgbmFtZSB0aGUgKHNwYWNlLXN1ZmZpeGVkKSBzdHJpbmcgYW5kIChpZiB0aGUgY2FjaGUgaXMgbGFyZ2VyIHRoYW4gRXhwci5jYWNoZUxlbmd0aClcbiAqXHRkZWxldGluZyB0aGUgb2xkZXN0IGVudHJ5XG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZUNhY2hlKCkge1xuXHR2YXIga2V5cyA9IFtdO1xuXG5cdGZ1bmN0aW9uIGNhY2hlKCBrZXksIHZhbHVlICkge1xuXHRcdC8vIFVzZSAoa2V5ICsgXCIgXCIpIHRvIGF2b2lkIGNvbGxpc2lvbiB3aXRoIG5hdGl2ZSBwcm90b3R5cGUgcHJvcGVydGllcyAoc2VlIElzc3VlICMxNTcpXG5cdFx0aWYgKCBrZXlzLnB1c2goIGtleSArIFwiIFwiICkgPiBFeHByLmNhY2hlTGVuZ3RoICkge1xuXHRcdFx0Ly8gT25seSBrZWVwIHRoZSBtb3N0IHJlY2VudCBlbnRyaWVzXG5cdFx0XHRkZWxldGUgY2FjaGVbIGtleXMuc2hpZnQoKSBdO1xuXHRcdH1cblx0XHRyZXR1cm4gKGNhY2hlWyBrZXkgKyBcIiBcIiBdID0gdmFsdWUpO1xuXHR9XG5cdHJldHVybiBjYWNoZTtcbn1cblxuLyoqXG4gKiBNYXJrIGEgZnVuY3Rpb24gZm9yIHNwZWNpYWwgdXNlIGJ5IFNpenpsZVxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGZ1bmN0aW9uIHRvIG1hcmtcbiAqL1xuZnVuY3Rpb24gbWFya0Z1bmN0aW9uKCBmbiApIHtcblx0Zm5bIGV4cGFuZG8gXSA9IHRydWU7XG5cdHJldHVybiBmbjtcbn1cblxuLyoqXG4gKiBTdXBwb3J0IHRlc3RpbmcgdXNpbmcgYW4gZWxlbWVudFxuICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gUGFzc2VkIHRoZSBjcmVhdGVkIGVsZW1lbnQgYW5kIHJldHVybnMgYSBib29sZWFuIHJlc3VsdFxuICovXG5mdW5jdGlvbiBhc3NlcnQoIGZuICkge1xuXHR2YXIgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwiZmllbGRzZXRcIik7XG5cblx0dHJ5IHtcblx0XHRyZXR1cm4gISFmbiggZWwgKTtcblx0fSBjYXRjaCAoZSkge1xuXHRcdHJldHVybiBmYWxzZTtcblx0fSBmaW5hbGx5IHtcblx0XHQvLyBSZW1vdmUgZnJvbSBpdHMgcGFyZW50IGJ5IGRlZmF1bHRcblx0XHRpZiAoIGVsLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRlbC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCBlbCApO1xuXHRcdH1cblx0XHQvLyByZWxlYXNlIG1lbW9yeSBpbiBJRVxuXHRcdGVsID0gbnVsbDtcblx0fVxufVxuXG4vKipcbiAqIEFkZHMgdGhlIHNhbWUgaGFuZGxlciBmb3IgYWxsIG9mIHRoZSBzcGVjaWZpZWQgYXR0cnNcbiAqIEBwYXJhbSB7U3RyaW5nfSBhdHRycyBQaXBlLXNlcGFyYXRlZCBsaXN0IG9mIGF0dHJpYnV0ZXNcbiAqIEBwYXJhbSB7RnVuY3Rpb259IGhhbmRsZXIgVGhlIG1ldGhvZCB0aGF0IHdpbGwgYmUgYXBwbGllZFxuICovXG5mdW5jdGlvbiBhZGRIYW5kbGUoIGF0dHJzLCBoYW5kbGVyICkge1xuXHR2YXIgYXJyID0gYXR0cnMuc3BsaXQoXCJ8XCIpLFxuXHRcdGkgPSBhcnIubGVuZ3RoO1xuXG5cdHdoaWxlICggaS0tICkge1xuXHRcdEV4cHIuYXR0ckhhbmRsZVsgYXJyW2ldIF0gPSBoYW5kbGVyO1xuXHR9XG59XG5cbi8qKlxuICogQ2hlY2tzIGRvY3VtZW50IG9yZGVyIG9mIHR3byBzaWJsaW5nc1xuICogQHBhcmFtIHtFbGVtZW50fSBhXG4gKiBAcGFyYW0ge0VsZW1lbnR9IGJcbiAqIEByZXR1cm5zIHtOdW1iZXJ9IFJldHVybnMgbGVzcyB0aGFuIDAgaWYgYSBwcmVjZWRlcyBiLCBncmVhdGVyIHRoYW4gMCBpZiBhIGZvbGxvd3MgYlxuICovXG5mdW5jdGlvbiBzaWJsaW5nQ2hlY2soIGEsIGIgKSB7XG5cdHZhciBjdXIgPSBiICYmIGEsXG5cdFx0ZGlmZiA9IGN1ciAmJiBhLm5vZGVUeXBlID09PSAxICYmIGIubm9kZVR5cGUgPT09IDEgJiZcblx0XHRcdGEuc291cmNlSW5kZXggLSBiLnNvdXJjZUluZGV4O1xuXG5cdC8vIFVzZSBJRSBzb3VyY2VJbmRleCBpZiBhdmFpbGFibGUgb24gYm90aCBub2Rlc1xuXHRpZiAoIGRpZmYgKSB7XG5cdFx0cmV0dXJuIGRpZmY7XG5cdH1cblxuXHQvLyBDaGVjayBpZiBiIGZvbGxvd3MgYVxuXHRpZiAoIGN1ciApIHtcblx0XHR3aGlsZSAoIChjdXIgPSBjdXIubmV4dFNpYmxpbmcpICkge1xuXHRcdFx0aWYgKCBjdXIgPT09IGIgKSB7XG5cdFx0XHRcdHJldHVybiAtMTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gYSA/IDEgOiAtMTtcbn1cblxuLyoqXG4gKiBSZXR1cm5zIGEgZnVuY3Rpb24gdG8gdXNlIGluIHBzZXVkb3MgZm9yIGlucHV0IHR5cGVzXG4gKiBAcGFyYW0ge1N0cmluZ30gdHlwZVxuICovXG5mdW5jdGlvbiBjcmVhdGVJbnB1dFBzZXVkbyggdHlwZSApIHtcblx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHZhciBuYW1lID0gZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRcdHJldHVybiBuYW1lID09PSBcImlucHV0XCIgJiYgZWxlbS50eXBlID09PSB0eXBlO1xuXHR9O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0byB1c2UgaW4gcHNldWRvcyBmb3IgYnV0dG9uc1xuICogQHBhcmFtIHtTdHJpbmd9IHR5cGVcbiAqL1xuZnVuY3Rpb24gY3JlYXRlQnV0dG9uUHNldWRvKCB0eXBlICkge1xuXHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0dmFyIG5hbWUgPSBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7XG5cdFx0cmV0dXJuIChuYW1lID09PSBcImlucHV0XCIgfHwgbmFtZSA9PT0gXCJidXR0b25cIikgJiYgZWxlbS50eXBlID09PSB0eXBlO1xuXHR9O1xufVxuXG4vKipcbiAqIFJldHVybnMgYSBmdW5jdGlvbiB0byB1c2UgaW4gcHNldWRvcyBmb3IgOmVuYWJsZWQvOmRpc2FibGVkXG4gKiBAcGFyYW0ge0Jvb2xlYW59IGRpc2FibGVkIHRydWUgZm9yIDpkaXNhYmxlZDsgZmFsc2UgZm9yIDplbmFibGVkXG4gKi9cbmZ1bmN0aW9uIGNyZWF0ZURpc2FibGVkUHNldWRvKCBkaXNhYmxlZCApIHtcblxuXHQvLyBLbm93biA6ZGlzYWJsZWQgZmFsc2UgcG9zaXRpdmVzOiBmaWVsZHNldFtkaXNhYmxlZF0gPiBsZWdlbmQ6bnRoLW9mLXR5cGUobisyKSA6Y2FuLWRpc2FibGVcblx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0Ly8gT25seSBjZXJ0YWluIGVsZW1lbnRzIGNhbiBtYXRjaCA6ZW5hYmxlZCBvciA6ZGlzYWJsZWRcblx0XHQvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zY3JpcHRpbmcuaHRtbCNzZWxlY3Rvci1lbmFibGVkXG5cdFx0Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2NyaXB0aW5nLmh0bWwjc2VsZWN0b3ItZGlzYWJsZWRcblx0XHRpZiAoIFwiZm9ybVwiIGluIGVsZW0gKSB7XG5cblx0XHRcdC8vIENoZWNrIGZvciBpbmhlcml0ZWQgZGlzYWJsZWRuZXNzIG9uIHJlbGV2YW50IG5vbi1kaXNhYmxlZCBlbGVtZW50czpcblx0XHRcdC8vICogbGlzdGVkIGZvcm0tYXNzb2NpYXRlZCBlbGVtZW50cyBpbiBhIGRpc2FibGVkIGZpZWxkc2V0XG5cdFx0XHQvLyAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Zvcm1zLmh0bWwjY2F0ZWdvcnktbGlzdGVkXG5cdFx0XHQvLyAgIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2Zvcm1zLmh0bWwjY29uY2VwdC1mZS1kaXNhYmxlZFxuXHRcdFx0Ly8gKiBvcHRpb24gZWxlbWVudHMgaW4gYSBkaXNhYmxlZCBvcHRncm91cFxuXHRcdFx0Ly8gICBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9mb3Jtcy5odG1sI2NvbmNlcHQtb3B0aW9uLWRpc2FibGVkXG5cdFx0XHQvLyBBbGwgc3VjaCBlbGVtZW50cyBoYXZlIGEgXCJmb3JtXCIgcHJvcGVydHkuXG5cdFx0XHRpZiAoIGVsZW0ucGFyZW50Tm9kZSAmJiBlbGVtLmRpc2FibGVkID09PSBmYWxzZSApIHtcblxuXHRcdFx0XHQvLyBPcHRpb24gZWxlbWVudHMgZGVmZXIgdG8gYSBwYXJlbnQgb3B0Z3JvdXAgaWYgcHJlc2VudFxuXHRcdFx0XHRpZiAoIFwibGFiZWxcIiBpbiBlbGVtICkge1xuXHRcdFx0XHRcdGlmICggXCJsYWJlbFwiIGluIGVsZW0ucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0XHRcdHJldHVybiBlbGVtLnBhcmVudE5vZGUuZGlzYWJsZWQgPT09IGRpc2FibGVkO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZGlzYWJsZWQ7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgNiAtIDExXG5cdFx0XHRcdC8vIFVzZSB0aGUgaXNEaXNhYmxlZCBzaG9ydGN1dCBwcm9wZXJ0eSB0byBjaGVjayBmb3IgZGlzYWJsZWQgZmllbGRzZXQgYW5jZXN0b3JzXG5cdFx0XHRcdHJldHVybiBlbGVtLmlzRGlzYWJsZWQgPT09IGRpc2FibGVkIHx8XG5cblx0XHRcdFx0XHQvLyBXaGVyZSB0aGVyZSBpcyBubyBpc0Rpc2FibGVkLCBjaGVjayBtYW51YWxseVxuXHRcdFx0XHRcdC8qIGpzaGludCAtVzAxOCAqL1xuXHRcdFx0XHRcdGVsZW0uaXNEaXNhYmxlZCAhPT0gIWRpc2FibGVkICYmXG5cdFx0XHRcdFx0XHRkaXNhYmxlZEFuY2VzdG9yKCBlbGVtICkgPT09IGRpc2FibGVkO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZGlzYWJsZWQ7XG5cblx0XHQvLyBUcnkgdG8gd2lubm93IG91dCBlbGVtZW50cyB0aGF0IGNhbid0IGJlIGRpc2FibGVkIGJlZm9yZSB0cnVzdGluZyB0aGUgZGlzYWJsZWQgcHJvcGVydHkuXG5cdFx0Ly8gU29tZSB2aWN0aW1zIGdldCBjYXVnaHQgaW4gb3VyIG5ldCAobGFiZWwsIGxlZ2VuZCwgbWVudSwgdHJhY2spLCBidXQgaXQgc2hvdWxkbid0XG5cdFx0Ly8gZXZlbiBleGlzdCBvbiB0aGVtLCBsZXQgYWxvbmUgaGF2ZSBhIGJvb2xlYW4gdmFsdWUuXG5cdFx0fSBlbHNlIGlmICggXCJsYWJlbFwiIGluIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5kaXNhYmxlZCA9PT0gZGlzYWJsZWQ7XG5cdFx0fVxuXG5cdFx0Ly8gUmVtYWluaW5nIGVsZW1lbnRzIGFyZSBuZWl0aGVyIDplbmFibGVkIG5vciA6ZGlzYWJsZWRcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH07XG59XG5cbi8qKlxuICogUmV0dXJucyBhIGZ1bmN0aW9uIHRvIHVzZSBpbiBwc2V1ZG9zIGZvciBwb3NpdGlvbmFsc1xuICogQHBhcmFtIHtGdW5jdGlvbn0gZm5cbiAqL1xuZnVuY3Rpb24gY3JlYXRlUG9zaXRpb25hbFBzZXVkbyggZm4gKSB7XG5cdHJldHVybiBtYXJrRnVuY3Rpb24oZnVuY3Rpb24oIGFyZ3VtZW50ICkge1xuXHRcdGFyZ3VtZW50ID0gK2FyZ3VtZW50O1xuXHRcdHJldHVybiBtYXJrRnVuY3Rpb24oZnVuY3Rpb24oIHNlZWQsIG1hdGNoZXMgKSB7XG5cdFx0XHR2YXIgaixcblx0XHRcdFx0bWF0Y2hJbmRleGVzID0gZm4oIFtdLCBzZWVkLmxlbmd0aCwgYXJndW1lbnQgKSxcblx0XHRcdFx0aSA9IG1hdGNoSW5kZXhlcy5sZW5ndGg7XG5cblx0XHRcdC8vIE1hdGNoIGVsZW1lbnRzIGZvdW5kIGF0IHRoZSBzcGVjaWZpZWQgaW5kZXhlc1xuXHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdGlmICggc2VlZFsgKGogPSBtYXRjaEluZGV4ZXNbaV0pIF0gKSB7XG5cdFx0XHRcdFx0c2VlZFtqXSA9ICEobWF0Y2hlc1tqXSA9IHNlZWRbal0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSk7XG5cdH0pO1xufVxuXG4vKipcbiAqIENoZWNrcyBhIG5vZGUgZm9yIHZhbGlkaXR5IGFzIGEgU2l6emxlIGNvbnRleHRcbiAqIEBwYXJhbSB7RWxlbWVudHxPYmplY3Q9fSBjb250ZXh0XG4gKiBAcmV0dXJucyB7RWxlbWVudHxPYmplY3R8Qm9vbGVhbn0gVGhlIGlucHV0IG5vZGUgaWYgYWNjZXB0YWJsZSwgb3RoZXJ3aXNlIGEgZmFsc3kgdmFsdWVcbiAqL1xuZnVuY3Rpb24gdGVzdENvbnRleHQoIGNvbnRleHQgKSB7XG5cdHJldHVybiBjb250ZXh0ICYmIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lICE9PSBcInVuZGVmaW5lZFwiICYmIGNvbnRleHQ7XG59XG5cbi8vIEV4cG9zZSBzdXBwb3J0IHZhcnMgZm9yIGNvbnZlbmllbmNlXG5zdXBwb3J0ID0gU2l6emxlLnN1cHBvcnQgPSB7fTtcblxuLyoqXG4gKiBEZXRlY3RzIFhNTCBub2Rlc1xuICogQHBhcmFtIHtFbGVtZW50fE9iamVjdH0gZWxlbSBBbiBlbGVtZW50IG9yIGEgZG9jdW1lbnRcbiAqIEByZXR1cm5zIHtCb29sZWFufSBUcnVlIGlmZiBlbGVtIGlzIGEgbm9uLUhUTUwgWE1MIG5vZGVcbiAqL1xuaXNYTUwgPSBTaXp6bGUuaXNYTUwgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0Ly8gZG9jdW1lbnRFbGVtZW50IGlzIHZlcmlmaWVkIGZvciBjYXNlcyB3aGVyZSBpdCBkb2Vzbid0IHlldCBleGlzdFxuXHQvLyAoc3VjaCBhcyBsb2FkaW5nIGlmcmFtZXMgaW4gSUUgLSAjNDgzMylcblx0dmFyIGRvY3VtZW50RWxlbWVudCA9IGVsZW0gJiYgKGVsZW0ub3duZXJEb2N1bWVudCB8fCBlbGVtKS5kb2N1bWVudEVsZW1lbnQ7XG5cdHJldHVybiBkb2N1bWVudEVsZW1lbnQgPyBkb2N1bWVudEVsZW1lbnQubm9kZU5hbWUgIT09IFwiSFRNTFwiIDogZmFsc2U7XG59O1xuXG4vKipcbiAqIFNldHMgZG9jdW1lbnQtcmVsYXRlZCB2YXJpYWJsZXMgb25jZSBiYXNlZCBvbiB0aGUgY3VycmVudCBkb2N1bWVudFxuICogQHBhcmFtIHtFbGVtZW50fE9iamVjdH0gW2RvY10gQW4gZWxlbWVudCBvciBkb2N1bWVudCBvYmplY3QgdG8gdXNlIHRvIHNldCB0aGUgZG9jdW1lbnRcbiAqIEByZXR1cm5zIHtPYmplY3R9IFJldHVybnMgdGhlIGN1cnJlbnQgZG9jdW1lbnRcbiAqL1xuc2V0RG9jdW1lbnQgPSBTaXp6bGUuc2V0RG9jdW1lbnQgPSBmdW5jdGlvbiggbm9kZSApIHtcblx0dmFyIGhhc0NvbXBhcmUsIHN1YldpbmRvdyxcblx0XHRkb2MgPSBub2RlID8gbm9kZS5vd25lckRvY3VtZW50IHx8IG5vZGUgOiBwcmVmZXJyZWREb2M7XG5cblx0Ly8gUmV0dXJuIGVhcmx5IGlmIGRvYyBpcyBpbnZhbGlkIG9yIGFscmVhZHkgc2VsZWN0ZWRcblx0aWYgKCBkb2MgPT09IGRvY3VtZW50IHx8IGRvYy5ub2RlVHlwZSAhPT0gOSB8fCAhZG9jLmRvY3VtZW50RWxlbWVudCApIHtcblx0XHRyZXR1cm4gZG9jdW1lbnQ7XG5cdH1cblxuXHQvLyBVcGRhdGUgZ2xvYmFsIHZhcmlhYmxlc1xuXHRkb2N1bWVudCA9IGRvYztcblx0ZG9jRWxlbSA9IGRvY3VtZW50LmRvY3VtZW50RWxlbWVudDtcblx0ZG9jdW1lbnRJc0hUTUwgPSAhaXNYTUwoIGRvY3VtZW50ICk7XG5cblx0Ly8gU3VwcG9ydDogSUUgOS0xMSwgRWRnZVxuXHQvLyBBY2Nlc3NpbmcgaWZyYW1lIGRvY3VtZW50cyBhZnRlciB1bmxvYWQgdGhyb3dzIFwicGVybWlzc2lvbiBkZW5pZWRcIiBlcnJvcnMgKGpRdWVyeSAjMTM5MzYpXG5cdGlmICggcHJlZmVycmVkRG9jICE9PSBkb2N1bWVudCAmJlxuXHRcdChzdWJXaW5kb3cgPSBkb2N1bWVudC5kZWZhdWx0VmlldykgJiYgc3ViV2luZG93LnRvcCAhPT0gc3ViV2luZG93ICkge1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgMTEsIEVkZ2Vcblx0XHRpZiAoIHN1YldpbmRvdy5hZGRFdmVudExpc3RlbmVyICkge1xuXHRcdFx0c3ViV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIFwidW5sb2FkXCIsIHVubG9hZEhhbmRsZXIsIGZhbHNlICk7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTAgb25seVxuXHRcdH0gZWxzZSBpZiAoIHN1YldpbmRvdy5hdHRhY2hFdmVudCApIHtcblx0XHRcdHN1YldpbmRvdy5hdHRhY2hFdmVudCggXCJvbnVubG9hZFwiLCB1bmxvYWRIYW5kbGVyICk7XG5cdFx0fVxuXHR9XG5cblx0LyogQXR0cmlidXRlc1xuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cblx0Ly8gU3VwcG9ydDogSUU8OFxuXHQvLyBWZXJpZnkgdGhhdCBnZXRBdHRyaWJ1dGUgcmVhbGx5IHJldHVybnMgYXR0cmlidXRlcyBhbmQgbm90IHByb3BlcnRpZXNcblx0Ly8gKGV4Y2VwdGluZyBJRTggYm9vbGVhbnMpXG5cdHN1cHBvcnQuYXR0cmlidXRlcyA9IGFzc2VydChmdW5jdGlvbiggZWwgKSB7XG5cdFx0ZWwuY2xhc3NOYW1lID0gXCJpXCI7XG5cdFx0cmV0dXJuICFlbC5nZXRBdHRyaWJ1dGUoXCJjbGFzc05hbWVcIik7XG5cdH0pO1xuXG5cdC8qIGdldEVsZW1lbnQocylCeSpcblx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8vIENoZWNrIGlmIGdldEVsZW1lbnRzQnlUYWdOYW1lKFwiKlwiKSByZXR1cm5zIG9ubHkgZWxlbWVudHNcblx0c3VwcG9ydC5nZXRFbGVtZW50c0J5VGFnTmFtZSA9IGFzc2VydChmdW5jdGlvbiggZWwgKSB7XG5cdFx0ZWwuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUNvbW1lbnQoXCJcIikgKTtcblx0XHRyZXR1cm4gIWVsLmdldEVsZW1lbnRzQnlUYWdOYW1lKFwiKlwiKS5sZW5ndGg7XG5cdH0pO1xuXG5cdC8vIFN1cHBvcnQ6IElFPDlcblx0c3VwcG9ydC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lID0gcm5hdGl2ZS50ZXN0KCBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICk7XG5cblx0Ly8gU3VwcG9ydDogSUU8MTBcblx0Ly8gQ2hlY2sgaWYgZ2V0RWxlbWVudEJ5SWQgcmV0dXJucyBlbGVtZW50cyBieSBuYW1lXG5cdC8vIFRoZSBicm9rZW4gZ2V0RWxlbWVudEJ5SWQgbWV0aG9kcyBkb24ndCBwaWNrIHVwIHByb2dyYW1tYXRpY2FsbHktc2V0IG5hbWVzLFxuXHQvLyBzbyB1c2UgYSByb3VuZGFib3V0IGdldEVsZW1lbnRzQnlOYW1lIHRlc3Rcblx0c3VwcG9ydC5nZXRCeUlkID0gYXNzZXJ0KGZ1bmN0aW9uKCBlbCApIHtcblx0XHRkb2NFbGVtLmFwcGVuZENoaWxkKCBlbCApLmlkID0gZXhwYW5kbztcblx0XHRyZXR1cm4gIWRvY3VtZW50LmdldEVsZW1lbnRzQnlOYW1lIHx8ICFkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZSggZXhwYW5kbyApLmxlbmd0aDtcblx0fSk7XG5cblx0Ly8gSUQgZmlsdGVyIGFuZCBmaW5kXG5cdGlmICggc3VwcG9ydC5nZXRCeUlkICkge1xuXHRcdEV4cHIuZmlsdGVyW1wiSURcIl0gPSBmdW5jdGlvbiggaWQgKSB7XG5cdFx0XHR2YXIgYXR0cklkID0gaWQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0cmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKFwiaWRcIikgPT09IGF0dHJJZDtcblx0XHRcdH07XG5cdFx0fTtcblx0XHRFeHByLmZpbmRbXCJJRFwiXSA9IGZ1bmN0aW9uKCBpZCwgY29udGV4dCApIHtcblx0XHRcdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQgIT09IFwidW5kZWZpbmVkXCIgJiYgZG9jdW1lbnRJc0hUTUwgKSB7XG5cdFx0XHRcdHZhciBlbGVtID0gY29udGV4dC5nZXRFbGVtZW50QnlJZCggaWQgKTtcblx0XHRcdFx0cmV0dXJuIGVsZW0gPyBbIGVsZW0gXSA6IFtdO1xuXHRcdFx0fVxuXHRcdH07XG5cdH0gZWxzZSB7XG5cdFx0RXhwci5maWx0ZXJbXCJJRFwiXSA9ICBmdW5jdGlvbiggaWQgKSB7XG5cdFx0XHR2YXIgYXR0cklkID0gaWQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0dmFyIG5vZGUgPSB0eXBlb2YgZWxlbS5nZXRBdHRyaWJ1dGVOb2RlICE9PSBcInVuZGVmaW5lZFwiICYmXG5cdFx0XHRcdFx0ZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKFwiaWRcIik7XG5cdFx0XHRcdHJldHVybiBub2RlICYmIG5vZGUudmFsdWUgPT09IGF0dHJJZDtcblx0XHRcdH07XG5cdFx0fTtcblxuXHRcdC8vIFN1cHBvcnQ6IElFIDYgLSA3IG9ubHlcblx0XHQvLyBnZXRFbGVtZW50QnlJZCBpcyBub3QgcmVsaWFibGUgYXMgYSBmaW5kIHNob3J0Y3V0XG5cdFx0RXhwci5maW5kW1wiSURcIl0gPSBmdW5jdGlvbiggaWQsIGNvbnRleHQgKSB7XG5cdFx0XHRpZiAoIHR5cGVvZiBjb250ZXh0LmdldEVsZW1lbnRCeUlkICE9PSBcInVuZGVmaW5lZFwiICYmIGRvY3VtZW50SXNIVE1MICkge1xuXHRcdFx0XHR2YXIgbm9kZSwgaSwgZWxlbXMsXG5cdFx0XHRcdFx0ZWxlbSA9IGNvbnRleHQuZ2V0RWxlbWVudEJ5SWQoIGlkICk7XG5cblx0XHRcdFx0aWYgKCBlbGVtICkge1xuXG5cdFx0XHRcdFx0Ly8gVmVyaWZ5IHRoZSBpZCBhdHRyaWJ1dGVcblx0XHRcdFx0XHRub2RlID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKFwiaWRcIik7XG5cdFx0XHRcdFx0aWYgKCBub2RlICYmIG5vZGUudmFsdWUgPT09IGlkICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIFsgZWxlbSBdO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIEZhbGwgYmFjayBvbiBnZXRFbGVtZW50c0J5TmFtZVxuXHRcdFx0XHRcdGVsZW1zID0gY29udGV4dC5nZXRFbGVtZW50c0J5TmFtZSggaWQgKTtcblx0XHRcdFx0XHRpID0gMDtcblx0XHRcdFx0XHR3aGlsZSAoIChlbGVtID0gZWxlbXNbaSsrXSkgKSB7XG5cdFx0XHRcdFx0XHRub2RlID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKFwiaWRcIik7XG5cdFx0XHRcdFx0XHRpZiAoIG5vZGUgJiYgbm9kZS52YWx1ZSA9PT0gaWQgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiBbIGVsZW0gXTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gW107XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxuXG5cdC8vIFRhZ1xuXHRFeHByLmZpbmRbXCJUQUdcIl0gPSBzdXBwb3J0LmdldEVsZW1lbnRzQnlUYWdOYW1lID9cblx0XHRmdW5jdGlvbiggdGFnLCBjb250ZXh0ICkge1xuXHRcdFx0aWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblx0XHRcdFx0cmV0dXJuIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoIHRhZyApO1xuXG5cdFx0XHQvLyBEb2N1bWVudEZyYWdtZW50IG5vZGVzIGRvbid0IGhhdmUgZ0VCVE5cblx0XHRcdH0gZWxzZSBpZiAoIHN1cHBvcnQucXNhICkge1xuXHRcdFx0XHRyZXR1cm4gY29udGV4dC5xdWVyeVNlbGVjdG9yQWxsKCB0YWcgKTtcblx0XHRcdH1cblx0XHR9IDpcblxuXHRcdGZ1bmN0aW9uKCB0YWcsIGNvbnRleHQgKSB7XG5cdFx0XHR2YXIgZWxlbSxcblx0XHRcdFx0dG1wID0gW10sXG5cdFx0XHRcdGkgPSAwLFxuXHRcdFx0XHQvLyBCeSBoYXBweSBjb2luY2lkZW5jZSwgYSAoYnJva2VuKSBnRUJUTiBhcHBlYXJzIG9uIERvY3VtZW50RnJhZ21lbnQgbm9kZXMgdG9vXG5cdFx0XHRcdHJlc3VsdHMgPSBjb250ZXh0LmdldEVsZW1lbnRzQnlUYWdOYW1lKCB0YWcgKTtcblxuXHRcdFx0Ly8gRmlsdGVyIG91dCBwb3NzaWJsZSBjb21tZW50c1xuXHRcdFx0aWYgKCB0YWcgPT09IFwiKlwiICkge1xuXHRcdFx0XHR3aGlsZSAoIChlbGVtID0gcmVzdWx0c1tpKytdKSApIHtcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHRcdFx0XHR0bXAucHVzaCggZWxlbSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB0bXA7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHR9O1xuXG5cdC8vIENsYXNzXG5cdEV4cHIuZmluZFtcIkNMQVNTXCJdID0gc3VwcG9ydC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICYmIGZ1bmN0aW9uKCBjbGFzc05hbWUsIGNvbnRleHQgKSB7XG5cdFx0aWYgKCB0eXBlb2YgY29udGV4dC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lICE9PSBcInVuZGVmaW5lZFwiICYmIGRvY3VtZW50SXNIVE1MICkge1xuXHRcdFx0cmV0dXJuIGNvbnRleHQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSggY2xhc3NOYW1lICk7XG5cdFx0fVxuXHR9O1xuXG5cdC8qIFFTQS9tYXRjaGVzU2VsZWN0b3Jcblx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8vIFFTQSBhbmQgbWF0Y2hlc1NlbGVjdG9yIHN1cHBvcnRcblxuXHQvLyBtYXRjaGVzU2VsZWN0b3IoOmFjdGl2ZSkgcmVwb3J0cyBmYWxzZSB3aGVuIHRydWUgKElFOS9PcGVyYSAxMS41KVxuXHRyYnVnZ3lNYXRjaGVzID0gW107XG5cblx0Ly8gcVNhKDpmb2N1cykgcmVwb3J0cyBmYWxzZSB3aGVuIHRydWUgKENocm9tZSAyMSlcblx0Ly8gV2UgYWxsb3cgdGhpcyBiZWNhdXNlIG9mIGEgYnVnIGluIElFOC85IHRoYXQgdGhyb3dzIGFuIGVycm9yXG5cdC8vIHdoZW5ldmVyIGBkb2N1bWVudC5hY3RpdmVFbGVtZW50YCBpcyBhY2Nlc3NlZCBvbiBhbiBpZnJhbWVcblx0Ly8gU28sIHdlIGFsbG93IDpmb2N1cyB0byBwYXNzIHRocm91Z2ggUVNBIGFsbCB0aGUgdGltZSB0byBhdm9pZCB0aGUgSUUgZXJyb3Jcblx0Ly8gU2VlIGh0dHBzOi8vYnVncy5qcXVlcnkuY29tL3RpY2tldC8xMzM3OFxuXHRyYnVnZ3lRU0EgPSBbXTtcblxuXHRpZiAoIChzdXBwb3J0LnFzYSA9IHJuYXRpdmUudGVzdCggZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCApKSApIHtcblx0XHQvLyBCdWlsZCBRU0EgcmVnZXhcblx0XHQvLyBSZWdleCBzdHJhdGVneSBhZG9wdGVkIGZyb20gRGllZ28gUGVyaW5pXG5cdFx0YXNzZXJ0KGZ1bmN0aW9uKCBlbCApIHtcblx0XHRcdC8vIFNlbGVjdCBpcyBzZXQgdG8gZW1wdHkgc3RyaW5nIG9uIHB1cnBvc2Vcblx0XHRcdC8vIFRoaXMgaXMgdG8gdGVzdCBJRSdzIHRyZWF0bWVudCBvZiBub3QgZXhwbGljaXRseVxuXHRcdFx0Ly8gc2V0dGluZyBhIGJvb2xlYW4gY29udGVudCBhdHRyaWJ1dGUsXG5cdFx0XHQvLyBzaW5jZSBpdHMgcHJlc2VuY2Ugc2hvdWxkIGJlIGVub3VnaFxuXHRcdFx0Ly8gaHR0cHM6Ly9idWdzLmpxdWVyeS5jb20vdGlja2V0LzEyMzU5XG5cdFx0XHRkb2NFbGVtLmFwcGVuZENoaWxkKCBlbCApLmlubmVySFRNTCA9IFwiPGEgaWQ9J1wiICsgZXhwYW5kbyArIFwiJz48L2E+XCIgK1xuXHRcdFx0XHRcIjxzZWxlY3QgaWQ9J1wiICsgZXhwYW5kbyArIFwiLVxcclxcXFwnIG1zYWxsb3djYXB0dXJlPScnPlwiICtcblx0XHRcdFx0XCI8b3B0aW9uIHNlbGVjdGVkPScnPjwvb3B0aW9uPjwvc2VsZWN0PlwiO1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRTgsIE9wZXJhIDExLTEyLjE2XG5cdFx0XHQvLyBOb3RoaW5nIHNob3VsZCBiZSBzZWxlY3RlZCB3aGVuIGVtcHR5IHN0cmluZ3MgZm9sbG93IF49IG9yICQ9IG9yICo9XG5cdFx0XHQvLyBUaGUgdGVzdCBhdHRyaWJ1dGUgbXVzdCBiZSB1bmtub3duIGluIE9wZXJhIGJ1dCBcInNhZmVcIiBmb3IgV2luUlRcblx0XHRcdC8vIGh0dHBzOi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvaWUvaGg0NjUzODguYXNweCNhdHRyaWJ1dGVfc2VjdGlvblxuXHRcdFx0aWYgKCBlbC5xdWVyeVNlbGVjdG9yQWxsKFwiW21zYWxsb3djYXB0dXJlXj0nJ11cIikubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaCggXCJbKl4kXT1cIiArIHdoaXRlc3BhY2UgKyBcIiooPzonJ3xcXFwiXFxcIilcIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdXBwb3J0OiBJRThcblx0XHRcdC8vIEJvb2xlYW4gYXR0cmlidXRlcyBhbmQgXCJ2YWx1ZVwiIGFyZSBub3QgdHJlYXRlZCBjb3JyZWN0bHlcblx0XHRcdGlmICggIWVsLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbc2VsZWN0ZWRdXCIpLmxlbmd0aCApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goIFwiXFxcXFtcIiArIHdoaXRlc3BhY2UgKyBcIiooPzp2YWx1ZXxcIiArIGJvb2xlYW5zICsgXCIpXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3VwcG9ydDogQ2hyb21lPDI5LCBBbmRyb2lkPDQuNCwgU2FmYXJpPDcuMCssIGlPUzw3LjArLCBQaGFudG9tSlM8MS45LjgrXG5cdFx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKCBcIltpZH49XCIgKyBleHBhbmRvICsgXCItXVwiICkubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaChcIn49XCIpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBXZWJraXQvT3BlcmEgLSA6Y2hlY2tlZCBzaG91bGQgcmV0dXJuIHNlbGVjdGVkIG9wdGlvbiBlbGVtZW50c1xuXHRcdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvMjAxMS9SRUMtY3NzMy1zZWxlY3RvcnMtMjAxMTA5MjkvI2NoZWNrZWRcblx0XHRcdC8vIElFOCB0aHJvd3MgZXJyb3IgaGVyZSBhbmQgd2lsbCBub3Qgc2VlIGxhdGVyIHRlc3RzXG5cdFx0XHRpZiAoICFlbC5xdWVyeVNlbGVjdG9yQWxsKFwiOmNoZWNrZWRcIikubGVuZ3RoICkge1xuXHRcdFx0XHRyYnVnZ3lRU0EucHVzaChcIjpjaGVja2VkXCIpO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdXBwb3J0OiBTYWZhcmkgOCssIGlPUyA4K1xuXHRcdFx0Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNjg1MVxuXHRcdFx0Ly8gSW4tcGFnZSBgc2VsZWN0b3IjaWQgc2libGluZy1jb21iaW5hdG9yIHNlbGVjdG9yYCBmYWlsc1xuXHRcdFx0aWYgKCAhZWwucXVlcnlTZWxlY3RvckFsbCggXCJhI1wiICsgZXhwYW5kbyArIFwiKypcIiApLmxlbmd0aCApIHtcblx0XHRcdFx0cmJ1Z2d5UVNBLnB1c2goXCIuIy4rWyt+XVwiKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdGFzc2VydChmdW5jdGlvbiggZWwgKSB7XG5cdFx0XHRlbC5pbm5lckhUTUwgPSBcIjxhIGhyZWY9JycgZGlzYWJsZWQ9J2Rpc2FibGVkJz48L2E+XCIgK1xuXHRcdFx0XHRcIjxzZWxlY3QgZGlzYWJsZWQ9J2Rpc2FibGVkJz48b3B0aW9uLz48L3NlbGVjdD5cIjtcblxuXHRcdFx0Ly8gU3VwcG9ydDogV2luZG93cyA4IE5hdGl2ZSBBcHBzXG5cdFx0XHQvLyBUaGUgdHlwZSBhbmQgbmFtZSBhdHRyaWJ1dGVzIGFyZSByZXN0cmljdGVkIGR1cmluZyAuaW5uZXJIVE1MIGFzc2lnbm1lbnRcblx0XHRcdHZhciBpbnB1dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJpbnB1dFwiKTtcblx0XHRcdGlucHV0LnNldEF0dHJpYnV0ZSggXCJ0eXBlXCIsIFwiaGlkZGVuXCIgKTtcblx0XHRcdGVsLmFwcGVuZENoaWxkKCBpbnB1dCApLnNldEF0dHJpYnV0ZSggXCJuYW1lXCIsIFwiRFwiICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFOFxuXHRcdFx0Ly8gRW5mb3JjZSBjYXNlLXNlbnNpdGl2aXR5IG9mIG5hbWUgYXR0cmlidXRlXG5cdFx0XHRpZiAoIGVsLnF1ZXJ5U2VsZWN0b3JBbGwoXCJbbmFtZT1kXVwiKS5sZW5ndGggKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIm5hbWVcIiArIHdoaXRlc3BhY2UgKyBcIipbKl4kfCF+XT89XCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRkYgMy41IC0gOmVuYWJsZWQvOmRpc2FibGVkIGFuZCBoaWRkZW4gZWxlbWVudHMgKGhpZGRlbiBlbGVtZW50cyBhcmUgc3RpbGwgZW5hYmxlZClcblx0XHRcdC8vIElFOCB0aHJvd3MgZXJyb3IgaGVyZSBhbmQgd2lsbCBub3Qgc2VlIGxhdGVyIHRlc3RzXG5cdFx0XHRpZiAoIGVsLnF1ZXJ5U2VsZWN0b3JBbGwoXCI6ZW5hYmxlZFwiKS5sZW5ndGggIT09IDIgKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIjplbmFibGVkXCIsIFwiOmRpc2FibGVkXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gU3VwcG9ydDogSUU5LTExK1xuXHRcdFx0Ly8gSUUncyA6ZGlzYWJsZWQgc2VsZWN0b3IgZG9lcyBub3QgcGljayB1cCB0aGUgY2hpbGRyZW4gb2YgZGlzYWJsZWQgZmllbGRzZXRzXG5cdFx0XHRkb2NFbGVtLmFwcGVuZENoaWxkKCBlbCApLmRpc2FibGVkID0gdHJ1ZTtcblx0XHRcdGlmICggZWwucXVlcnlTZWxlY3RvckFsbChcIjpkaXNhYmxlZFwiKS5sZW5ndGggIT09IDIgKSB7XG5cdFx0XHRcdHJidWdneVFTQS5wdXNoKCBcIjplbmFibGVkXCIsIFwiOmRpc2FibGVkXCIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gT3BlcmEgMTAtMTEgZG9lcyBub3QgdGhyb3cgb24gcG9zdC1jb21tYSBpbnZhbGlkIHBzZXVkb3Ncblx0XHRcdGVsLnF1ZXJ5U2VsZWN0b3JBbGwoXCIqLDp4XCIpO1xuXHRcdFx0cmJ1Z2d5UVNBLnB1c2goXCIsLio6XCIpO1xuXHRcdH0pO1xuXHR9XG5cblx0aWYgKCAoc3VwcG9ydC5tYXRjaGVzU2VsZWN0b3IgPSBybmF0aXZlLnRlc3QoIChtYXRjaGVzID0gZG9jRWxlbS5tYXRjaGVzIHx8XG5cdFx0ZG9jRWxlbS53ZWJraXRNYXRjaGVzU2VsZWN0b3IgfHxcblx0XHRkb2NFbGVtLm1vek1hdGNoZXNTZWxlY3RvciB8fFxuXHRcdGRvY0VsZW0ub01hdGNoZXNTZWxlY3RvciB8fFxuXHRcdGRvY0VsZW0ubXNNYXRjaGVzU2VsZWN0b3IpICkpICkge1xuXG5cdFx0YXNzZXJ0KGZ1bmN0aW9uKCBlbCApIHtcblx0XHRcdC8vIENoZWNrIHRvIHNlZSBpZiBpdCdzIHBvc3NpYmxlIHRvIGRvIG1hdGNoZXNTZWxlY3RvclxuXHRcdFx0Ly8gb24gYSBkaXNjb25uZWN0ZWQgbm9kZSAoSUUgOSlcblx0XHRcdHN1cHBvcnQuZGlzY29ubmVjdGVkTWF0Y2ggPSBtYXRjaGVzLmNhbGwoIGVsLCBcIipcIiApO1xuXG5cdFx0XHQvLyBUaGlzIHNob3VsZCBmYWlsIHdpdGggYW4gZXhjZXB0aW9uXG5cdFx0XHQvLyBHZWNrbyBkb2VzIG5vdCBlcnJvciwgcmV0dXJucyBmYWxzZSBpbnN0ZWFkXG5cdFx0XHRtYXRjaGVzLmNhbGwoIGVsLCBcIltzIT0nJ106eFwiICk7XG5cdFx0XHRyYnVnZ3lNYXRjaGVzLnB1c2goIFwiIT1cIiwgcHNldWRvcyApO1xuXHRcdH0pO1xuXHR9XG5cblx0cmJ1Z2d5UVNBID0gcmJ1Z2d5UVNBLmxlbmd0aCAmJiBuZXcgUmVnRXhwKCByYnVnZ3lRU0Euam9pbihcInxcIikgKTtcblx0cmJ1Z2d5TWF0Y2hlcyA9IHJidWdneU1hdGNoZXMubGVuZ3RoICYmIG5ldyBSZWdFeHAoIHJidWdneU1hdGNoZXMuam9pbihcInxcIikgKTtcblxuXHQvKiBDb250YWluc1xuXHQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cdGhhc0NvbXBhcmUgPSBybmF0aXZlLnRlc3QoIGRvY0VsZW0uY29tcGFyZURvY3VtZW50UG9zaXRpb24gKTtcblxuXHQvLyBFbGVtZW50IGNvbnRhaW5zIGFub3RoZXJcblx0Ly8gUHVycG9zZWZ1bGx5IHNlbGYtZXhjbHVzaXZlXG5cdC8vIEFzIGluLCBhbiBlbGVtZW50IGRvZXMgbm90IGNvbnRhaW4gaXRzZWxmXG5cdGNvbnRhaW5zID0gaGFzQ29tcGFyZSB8fCBybmF0aXZlLnRlc3QoIGRvY0VsZW0uY29udGFpbnMgKSA/XG5cdFx0ZnVuY3Rpb24oIGEsIGIgKSB7XG5cdFx0XHR2YXIgYWRvd24gPSBhLm5vZGVUeXBlID09PSA5ID8gYS5kb2N1bWVudEVsZW1lbnQgOiBhLFxuXHRcdFx0XHRidXAgPSBiICYmIGIucGFyZW50Tm9kZTtcblx0XHRcdHJldHVybiBhID09PSBidXAgfHwgISEoIGJ1cCAmJiBidXAubm9kZVR5cGUgPT09IDEgJiYgKFxuXHRcdFx0XHRhZG93bi5jb250YWlucyA/XG5cdFx0XHRcdFx0YWRvd24uY29udGFpbnMoIGJ1cCApIDpcblx0XHRcdFx0XHRhLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uICYmIGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oIGJ1cCApICYgMTZcblx0XHRcdCkpO1xuXHRcdH0gOlxuXHRcdGZ1bmN0aW9uKCBhLCBiICkge1xuXHRcdFx0aWYgKCBiICkge1xuXHRcdFx0XHR3aGlsZSAoIChiID0gYi5wYXJlbnROb2RlKSApIHtcblx0XHRcdFx0XHRpZiAoIGIgPT09IGEgKSB7XG5cdFx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9O1xuXG5cdC8qIFNvcnRpbmdcblx0LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5cdC8vIERvY3VtZW50IG9yZGVyIHNvcnRpbmdcblx0c29ydE9yZGVyID0gaGFzQ29tcGFyZSA/XG5cdGZ1bmN0aW9uKCBhLCBiICkge1xuXG5cdFx0Ly8gRmxhZyBmb3IgZHVwbGljYXRlIHJlbW92YWxcblx0XHRpZiAoIGEgPT09IGIgKSB7XG5cdFx0XHRoYXNEdXBsaWNhdGUgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXG5cdFx0Ly8gU29ydCBvbiBtZXRob2QgZXhpc3RlbmNlIGlmIG9ubHkgb25lIGlucHV0IGhhcyBjb21wYXJlRG9jdW1lbnRQb3NpdGlvblxuXHRcdHZhciBjb21wYXJlID0gIWEuY29tcGFyZURvY3VtZW50UG9zaXRpb24gLSAhYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbjtcblx0XHRpZiAoIGNvbXBhcmUgKSB7XG5cdFx0XHRyZXR1cm4gY29tcGFyZTtcblx0XHR9XG5cblx0XHQvLyBDYWxjdWxhdGUgcG9zaXRpb24gaWYgYm90aCBpbnB1dHMgYmVsb25nIHRvIHRoZSBzYW1lIGRvY3VtZW50XG5cdFx0Y29tcGFyZSA9ICggYS5vd25lckRvY3VtZW50IHx8IGEgKSA9PT0gKCBiLm93bmVyRG9jdW1lbnQgfHwgYiApID9cblx0XHRcdGEuY29tcGFyZURvY3VtZW50UG9zaXRpb24oIGIgKSA6XG5cblx0XHRcdC8vIE90aGVyd2lzZSB3ZSBrbm93IHRoZXkgYXJlIGRpc2Nvbm5lY3RlZFxuXHRcdFx0MTtcblxuXHRcdC8vIERpc2Nvbm5lY3RlZCBub2Rlc1xuXHRcdGlmICggY29tcGFyZSAmIDEgfHxcblx0XHRcdCghc3VwcG9ydC5zb3J0RGV0YWNoZWQgJiYgYi5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiggYSApID09PSBjb21wYXJlKSApIHtcblxuXHRcdFx0Ly8gQ2hvb3NlIHRoZSBmaXJzdCBlbGVtZW50IHRoYXQgaXMgcmVsYXRlZCB0byBvdXIgcHJlZmVycmVkIGRvY3VtZW50XG5cdFx0XHRpZiAoIGEgPT09IGRvY3VtZW50IHx8IGEub3duZXJEb2N1bWVudCA9PT0gcHJlZmVycmVkRG9jICYmIGNvbnRhaW5zKHByZWZlcnJlZERvYywgYSkgKSB7XG5cdFx0XHRcdHJldHVybiAtMTtcblx0XHRcdH1cblx0XHRcdGlmICggYiA9PT0gZG9jdW1lbnQgfHwgYi5vd25lckRvY3VtZW50ID09PSBwcmVmZXJyZWREb2MgJiYgY29udGFpbnMocHJlZmVycmVkRG9jLCBiKSApIHtcblx0XHRcdFx0cmV0dXJuIDE7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE1haW50YWluIG9yaWdpbmFsIG9yZGVyXG5cdFx0XHRyZXR1cm4gc29ydElucHV0ID9cblx0XHRcdFx0KCBpbmRleE9mKCBzb3J0SW5wdXQsIGEgKSAtIGluZGV4T2YoIHNvcnRJbnB1dCwgYiApICkgOlxuXHRcdFx0XHQwO1xuXHRcdH1cblxuXHRcdHJldHVybiBjb21wYXJlICYgNCA/IC0xIDogMTtcblx0fSA6XG5cdGZ1bmN0aW9uKCBhLCBiICkge1xuXHRcdC8vIEV4aXQgZWFybHkgaWYgdGhlIG5vZGVzIGFyZSBpZGVudGljYWxcblx0XHRpZiAoIGEgPT09IGIgKSB7XG5cdFx0XHRoYXNEdXBsaWNhdGUgPSB0cnVlO1xuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXG5cdFx0dmFyIGN1cixcblx0XHRcdGkgPSAwLFxuXHRcdFx0YXVwID0gYS5wYXJlbnROb2RlLFxuXHRcdFx0YnVwID0gYi5wYXJlbnROb2RlLFxuXHRcdFx0YXAgPSBbIGEgXSxcblx0XHRcdGJwID0gWyBiIF07XG5cblx0XHQvLyBQYXJlbnRsZXNzIG5vZGVzIGFyZSBlaXRoZXIgZG9jdW1lbnRzIG9yIGRpc2Nvbm5lY3RlZFxuXHRcdGlmICggIWF1cCB8fCAhYnVwICkge1xuXHRcdFx0cmV0dXJuIGEgPT09IGRvY3VtZW50ID8gLTEgOlxuXHRcdFx0XHRiID09PSBkb2N1bWVudCA/IDEgOlxuXHRcdFx0XHRhdXAgPyAtMSA6XG5cdFx0XHRcdGJ1cCA/IDEgOlxuXHRcdFx0XHRzb3J0SW5wdXQgP1xuXHRcdFx0XHQoIGluZGV4T2YoIHNvcnRJbnB1dCwgYSApIC0gaW5kZXhPZiggc29ydElucHV0LCBiICkgKSA6XG5cdFx0XHRcdDA7XG5cblx0XHQvLyBJZiB0aGUgbm9kZXMgYXJlIHNpYmxpbmdzLCB3ZSBjYW4gZG8gYSBxdWljayBjaGVja1xuXHRcdH0gZWxzZSBpZiAoIGF1cCA9PT0gYnVwICkge1xuXHRcdFx0cmV0dXJuIHNpYmxpbmdDaGVjayggYSwgYiApO1xuXHRcdH1cblxuXHRcdC8vIE90aGVyd2lzZSB3ZSBuZWVkIGZ1bGwgbGlzdHMgb2YgdGhlaXIgYW5jZXN0b3JzIGZvciBjb21wYXJpc29uXG5cdFx0Y3VyID0gYTtcblx0XHR3aGlsZSAoIChjdXIgPSBjdXIucGFyZW50Tm9kZSkgKSB7XG5cdFx0XHRhcC51bnNoaWZ0KCBjdXIgKTtcblx0XHR9XG5cdFx0Y3VyID0gYjtcblx0XHR3aGlsZSAoIChjdXIgPSBjdXIucGFyZW50Tm9kZSkgKSB7XG5cdFx0XHRicC51bnNoaWZ0KCBjdXIgKTtcblx0XHR9XG5cblx0XHQvLyBXYWxrIGRvd24gdGhlIHRyZWUgbG9va2luZyBmb3IgYSBkaXNjcmVwYW5jeVxuXHRcdHdoaWxlICggYXBbaV0gPT09IGJwW2ldICkge1xuXHRcdFx0aSsrO1xuXHRcdH1cblxuXHRcdHJldHVybiBpID9cblx0XHRcdC8vIERvIGEgc2libGluZyBjaGVjayBpZiB0aGUgbm9kZXMgaGF2ZSBhIGNvbW1vbiBhbmNlc3RvclxuXHRcdFx0c2libGluZ0NoZWNrKCBhcFtpXSwgYnBbaV0gKSA6XG5cblx0XHRcdC8vIE90aGVyd2lzZSBub2RlcyBpbiBvdXIgZG9jdW1lbnQgc29ydCBmaXJzdFxuXHRcdFx0YXBbaV0gPT09IHByZWZlcnJlZERvYyA/IC0xIDpcblx0XHRcdGJwW2ldID09PSBwcmVmZXJyZWREb2MgPyAxIDpcblx0XHRcdDA7XG5cdH07XG5cblx0cmV0dXJuIGRvY3VtZW50O1xufTtcblxuU2l6emxlLm1hdGNoZXMgPSBmdW5jdGlvbiggZXhwciwgZWxlbWVudHMgKSB7XG5cdHJldHVybiBTaXp6bGUoIGV4cHIsIG51bGwsIG51bGwsIGVsZW1lbnRzICk7XG59O1xuXG5TaXp6bGUubWF0Y2hlc1NlbGVjdG9yID0gZnVuY3Rpb24oIGVsZW0sIGV4cHIgKSB7XG5cdC8vIFNldCBkb2N1bWVudCB2YXJzIGlmIG5lZWRlZFxuXHRpZiAoICggZWxlbS5vd25lckRvY3VtZW50IHx8IGVsZW0gKSAhPT0gZG9jdW1lbnQgKSB7XG5cdFx0c2V0RG9jdW1lbnQoIGVsZW0gKTtcblx0fVxuXG5cdC8vIE1ha2Ugc3VyZSB0aGF0IGF0dHJpYnV0ZSBzZWxlY3RvcnMgYXJlIHF1b3RlZFxuXHRleHByID0gZXhwci5yZXBsYWNlKCByYXR0cmlidXRlUXVvdGVzLCBcIj0nJDEnXVwiICk7XG5cblx0aWYgKCBzdXBwb3J0Lm1hdGNoZXNTZWxlY3RvciAmJiBkb2N1bWVudElzSFRNTCAmJlxuXHRcdCFjb21waWxlckNhY2hlWyBleHByICsgXCIgXCIgXSAmJlxuXHRcdCggIXJidWdneU1hdGNoZXMgfHwgIXJidWdneU1hdGNoZXMudGVzdCggZXhwciApICkgJiZcblx0XHQoICFyYnVnZ3lRU0EgICAgIHx8ICFyYnVnZ3lRU0EudGVzdCggZXhwciApICkgKSB7XG5cblx0XHR0cnkge1xuXHRcdFx0dmFyIHJldCA9IG1hdGNoZXMuY2FsbCggZWxlbSwgZXhwciApO1xuXG5cdFx0XHQvLyBJRSA5J3MgbWF0Y2hlc1NlbGVjdG9yIHJldHVybnMgZmFsc2Ugb24gZGlzY29ubmVjdGVkIG5vZGVzXG5cdFx0XHRpZiAoIHJldCB8fCBzdXBwb3J0LmRpc2Nvbm5lY3RlZE1hdGNoIHx8XG5cdFx0XHRcdFx0Ly8gQXMgd2VsbCwgZGlzY29ubmVjdGVkIG5vZGVzIGFyZSBzYWlkIHRvIGJlIGluIGEgZG9jdW1lbnRcblx0XHRcdFx0XHQvLyBmcmFnbWVudCBpbiBJRSA5XG5cdFx0XHRcdFx0ZWxlbS5kb2N1bWVudCAmJiBlbGVtLmRvY3VtZW50Lm5vZGVUeXBlICE9PSAxMSApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblx0XHR9IGNhdGNoIChlKSB7fVxuXHR9XG5cblx0cmV0dXJuIFNpenpsZSggZXhwciwgZG9jdW1lbnQsIG51bGwsIFsgZWxlbSBdICkubGVuZ3RoID4gMDtcbn07XG5cblNpenpsZS5jb250YWlucyA9IGZ1bmN0aW9uKCBjb250ZXh0LCBlbGVtICkge1xuXHQvLyBTZXQgZG9jdW1lbnQgdmFycyBpZiBuZWVkZWRcblx0aWYgKCAoIGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0ICkgIT09IGRvY3VtZW50ICkge1xuXHRcdHNldERvY3VtZW50KCBjb250ZXh0ICk7XG5cdH1cblx0cmV0dXJuIGNvbnRhaW5zKCBjb250ZXh0LCBlbGVtICk7XG59O1xuXG5TaXp6bGUuYXR0ciA9IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xuXHQvLyBTZXQgZG9jdW1lbnQgdmFycyBpZiBuZWVkZWRcblx0aWYgKCAoIGVsZW0ub3duZXJEb2N1bWVudCB8fCBlbGVtICkgIT09IGRvY3VtZW50ICkge1xuXHRcdHNldERvY3VtZW50KCBlbGVtICk7XG5cdH1cblxuXHR2YXIgZm4gPSBFeHByLmF0dHJIYW5kbGVbIG5hbWUudG9Mb3dlckNhc2UoKSBdLFxuXHRcdC8vIERvbid0IGdldCBmb29sZWQgYnkgT2JqZWN0LnByb3RvdHlwZSBwcm9wZXJ0aWVzIChqUXVlcnkgIzEzODA3KVxuXHRcdHZhbCA9IGZuICYmIGhhc093bi5jYWxsKCBFeHByLmF0dHJIYW5kbGUsIG5hbWUudG9Mb3dlckNhc2UoKSApID9cblx0XHRcdGZuKCBlbGVtLCBuYW1lLCAhZG9jdW1lbnRJc0hUTUwgKSA6XG5cdFx0XHR1bmRlZmluZWQ7XG5cblx0cmV0dXJuIHZhbCAhPT0gdW5kZWZpbmVkID9cblx0XHR2YWwgOlxuXHRcdHN1cHBvcnQuYXR0cmlidXRlcyB8fCAhZG9jdW1lbnRJc0hUTUwgP1xuXHRcdFx0ZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUgKSA6XG5cdFx0XHQodmFsID0gZWxlbS5nZXRBdHRyaWJ1dGVOb2RlKG5hbWUpKSAmJiB2YWwuc3BlY2lmaWVkID9cblx0XHRcdFx0dmFsLnZhbHVlIDpcblx0XHRcdFx0bnVsbDtcbn07XG5cblNpenpsZS5lc2NhcGUgPSBmdW5jdGlvbiggc2VsICkge1xuXHRyZXR1cm4gKHNlbCArIFwiXCIpLnJlcGxhY2UoIHJjc3Nlc2NhcGUsIGZjc3Nlc2NhcGUgKTtcbn07XG5cblNpenpsZS5lcnJvciA9IGZ1bmN0aW9uKCBtc2cgKSB7XG5cdHRocm93IG5ldyBFcnJvciggXCJTeW50YXggZXJyb3IsIHVucmVjb2duaXplZCBleHByZXNzaW9uOiBcIiArIG1zZyApO1xufTtcblxuLyoqXG4gKiBEb2N1bWVudCBzb3J0aW5nIGFuZCByZW1vdmluZyBkdXBsaWNhdGVzXG4gKiBAcGFyYW0ge0FycmF5TGlrZX0gcmVzdWx0c1xuICovXG5TaXp6bGUudW5pcXVlU29ydCA9IGZ1bmN0aW9uKCByZXN1bHRzICkge1xuXHR2YXIgZWxlbSxcblx0XHRkdXBsaWNhdGVzID0gW10sXG5cdFx0aiA9IDAsXG5cdFx0aSA9IDA7XG5cblx0Ly8gVW5sZXNzIHdlICprbm93KiB3ZSBjYW4gZGV0ZWN0IGR1cGxpY2F0ZXMsIGFzc3VtZSB0aGVpciBwcmVzZW5jZVxuXHRoYXNEdXBsaWNhdGUgPSAhc3VwcG9ydC5kZXRlY3REdXBsaWNhdGVzO1xuXHRzb3J0SW5wdXQgPSAhc3VwcG9ydC5zb3J0U3RhYmxlICYmIHJlc3VsdHMuc2xpY2UoIDAgKTtcblx0cmVzdWx0cy5zb3J0KCBzb3J0T3JkZXIgKTtcblxuXHRpZiAoIGhhc0R1cGxpY2F0ZSApIHtcblx0XHR3aGlsZSAoIChlbGVtID0gcmVzdWx0c1tpKytdKSApIHtcblx0XHRcdGlmICggZWxlbSA9PT0gcmVzdWx0c1sgaSBdICkge1xuXHRcdFx0XHRqID0gZHVwbGljYXRlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0cmVzdWx0cy5zcGxpY2UoIGR1cGxpY2F0ZXNbIGogXSwgMSApO1xuXHRcdH1cblx0fVxuXG5cdC8vIENsZWFyIGlucHV0IGFmdGVyIHNvcnRpbmcgdG8gcmVsZWFzZSBvYmplY3RzXG5cdC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vanF1ZXJ5L3NpenpsZS9wdWxsLzIyNVxuXHRzb3J0SW5wdXQgPSBudWxsO1xuXG5cdHJldHVybiByZXN1bHRzO1xufTtcblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9uIGZvciByZXRyaWV2aW5nIHRoZSB0ZXh0IHZhbHVlIG9mIGFuIGFycmF5IG9mIERPTSBub2Rlc1xuICogQHBhcmFtIHtBcnJheXxFbGVtZW50fSBlbGVtXG4gKi9cbmdldFRleHQgPSBTaXp6bGUuZ2V0VGV4dCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHR2YXIgbm9kZSxcblx0XHRyZXQgPSBcIlwiLFxuXHRcdGkgPSAwLFxuXHRcdG5vZGVUeXBlID0gZWxlbS5ub2RlVHlwZTtcblxuXHRpZiAoICFub2RlVHlwZSApIHtcblx0XHQvLyBJZiBubyBub2RlVHlwZSwgdGhpcyBpcyBleHBlY3RlZCB0byBiZSBhbiBhcnJheVxuXHRcdHdoaWxlICggKG5vZGUgPSBlbGVtW2krK10pICkge1xuXHRcdFx0Ly8gRG8gbm90IHRyYXZlcnNlIGNvbW1lbnQgbm9kZXNcblx0XHRcdHJldCArPSBnZXRUZXh0KCBub2RlICk7XG5cdFx0fVxuXHR9IGVsc2UgaWYgKCBub2RlVHlwZSA9PT0gMSB8fCBub2RlVHlwZSA9PT0gOSB8fCBub2RlVHlwZSA9PT0gMTEgKSB7XG5cdFx0Ly8gVXNlIHRleHRDb250ZW50IGZvciBlbGVtZW50c1xuXHRcdC8vIGlubmVyVGV4dCB1c2FnZSByZW1vdmVkIGZvciBjb25zaXN0ZW5jeSBvZiBuZXcgbGluZXMgKGpRdWVyeSAjMTExNTMpXG5cdFx0aWYgKCB0eXBlb2YgZWxlbS50ZXh0Q29udGVudCA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiBlbGVtLnRleHRDb250ZW50O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyBUcmF2ZXJzZSBpdHMgY2hpbGRyZW5cblx0XHRcdGZvciAoIGVsZW0gPSBlbGVtLmZpcnN0Q2hpbGQ7IGVsZW07IGVsZW0gPSBlbGVtLm5leHRTaWJsaW5nICkge1xuXHRcdFx0XHRyZXQgKz0gZ2V0VGV4dCggZWxlbSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fSBlbHNlIGlmICggbm9kZVR5cGUgPT09IDMgfHwgbm9kZVR5cGUgPT09IDQgKSB7XG5cdFx0cmV0dXJuIGVsZW0ubm9kZVZhbHVlO1xuXHR9XG5cdC8vIERvIG5vdCBpbmNsdWRlIGNvbW1lbnQgb3IgcHJvY2Vzc2luZyBpbnN0cnVjdGlvbiBub2Rlc1xuXG5cdHJldHVybiByZXQ7XG59O1xuXG5FeHByID0gU2l6emxlLnNlbGVjdG9ycyA9IHtcblxuXHQvLyBDYW4gYmUgYWRqdXN0ZWQgYnkgdGhlIHVzZXJcblx0Y2FjaGVMZW5ndGg6IDUwLFxuXG5cdGNyZWF0ZVBzZXVkbzogbWFya0Z1bmN0aW9uLFxuXG5cdG1hdGNoOiBtYXRjaEV4cHIsXG5cblx0YXR0ckhhbmRsZToge30sXG5cblx0ZmluZDoge30sXG5cblx0cmVsYXRpdmU6IHtcblx0XHRcIj5cIjogeyBkaXI6IFwicGFyZW50Tm9kZVwiLCBmaXJzdDogdHJ1ZSB9LFxuXHRcdFwiIFwiOiB7IGRpcjogXCJwYXJlbnROb2RlXCIgfSxcblx0XHRcIitcIjogeyBkaXI6IFwicHJldmlvdXNTaWJsaW5nXCIsIGZpcnN0OiB0cnVlIH0sXG5cdFx0XCJ+XCI6IHsgZGlyOiBcInByZXZpb3VzU2libGluZ1wiIH1cblx0fSxcblxuXHRwcmVGaWx0ZXI6IHtcblx0XHRcIkFUVFJcIjogZnVuY3Rpb24oIG1hdGNoICkge1xuXHRcdFx0bWF0Y2hbMV0gPSBtYXRjaFsxXS5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXG5cdFx0XHQvLyBNb3ZlIHRoZSBnaXZlbiB2YWx1ZSB0byBtYXRjaFszXSB3aGV0aGVyIHF1b3RlZCBvciB1bnF1b3RlZFxuXHRcdFx0bWF0Y2hbM10gPSAoIG1hdGNoWzNdIHx8IG1hdGNoWzRdIHx8IG1hdGNoWzVdIHx8IFwiXCIgKS5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApO1xuXG5cdFx0XHRpZiAoIG1hdGNoWzJdID09PSBcIn49XCIgKSB7XG5cdFx0XHRcdG1hdGNoWzNdID0gXCIgXCIgKyBtYXRjaFszXSArIFwiIFwiO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbWF0Y2guc2xpY2UoIDAsIDQgKTtcblx0XHR9LFxuXG5cdFx0XCJDSElMRFwiOiBmdW5jdGlvbiggbWF0Y2ggKSB7XG5cdFx0XHQvKiBtYXRjaGVzIGZyb20gbWF0Y2hFeHByW1wiQ0hJTERcIl1cblx0XHRcdFx0MSB0eXBlIChvbmx5fG50aHwuLi4pXG5cdFx0XHRcdDIgd2hhdCAoY2hpbGR8b2YtdHlwZSlcblx0XHRcdFx0MyBhcmd1bWVudCAoZXZlbnxvZGR8XFxkKnxcXGQqbihbKy1dXFxkKyk/fC4uLilcblx0XHRcdFx0NCB4bi1jb21wb25lbnQgb2YgeG4reSBhcmd1bWVudCAoWystXT9cXGQqbnwpXG5cdFx0XHRcdDUgc2lnbiBvZiB4bi1jb21wb25lbnRcblx0XHRcdFx0NiB4IG9mIHhuLWNvbXBvbmVudFxuXHRcdFx0XHQ3IHNpZ24gb2YgeS1jb21wb25lbnRcblx0XHRcdFx0OCB5IG9mIHktY29tcG9uZW50XG5cdFx0XHQqL1xuXHRcdFx0bWF0Y2hbMV0gPSBtYXRjaFsxXS50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0XHRpZiAoIG1hdGNoWzFdLnNsaWNlKCAwLCAzICkgPT09IFwibnRoXCIgKSB7XG5cdFx0XHRcdC8vIG50aC0qIHJlcXVpcmVzIGFyZ3VtZW50XG5cdFx0XHRcdGlmICggIW1hdGNoWzNdICkge1xuXHRcdFx0XHRcdFNpenpsZS5lcnJvciggbWF0Y2hbMF0gKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIG51bWVyaWMgeCBhbmQgeSBwYXJhbWV0ZXJzIGZvciBFeHByLmZpbHRlci5DSElMRFxuXHRcdFx0XHQvLyByZW1lbWJlciB0aGF0IGZhbHNlL3RydWUgY2FzdCByZXNwZWN0aXZlbHkgdG8gMC8xXG5cdFx0XHRcdG1hdGNoWzRdID0gKyggbWF0Y2hbNF0gPyBtYXRjaFs1XSArIChtYXRjaFs2XSB8fCAxKSA6IDIgKiAoIG1hdGNoWzNdID09PSBcImV2ZW5cIiB8fCBtYXRjaFszXSA9PT0gXCJvZGRcIiApICk7XG5cdFx0XHRcdG1hdGNoWzVdID0gKyggKCBtYXRjaFs3XSArIG1hdGNoWzhdICkgfHwgbWF0Y2hbM10gPT09IFwib2RkXCIgKTtcblxuXHRcdFx0Ly8gb3RoZXIgdHlwZXMgcHJvaGliaXQgYXJndW1lbnRzXG5cdFx0XHR9IGVsc2UgaWYgKCBtYXRjaFszXSApIHtcblx0XHRcdFx0U2l6emxlLmVycm9yKCBtYXRjaFswXSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gbWF0Y2g7XG5cdFx0fSxcblxuXHRcdFwiUFNFVURPXCI6IGZ1bmN0aW9uKCBtYXRjaCApIHtcblx0XHRcdHZhciBleGNlc3MsXG5cdFx0XHRcdHVucXVvdGVkID0gIW1hdGNoWzZdICYmIG1hdGNoWzJdO1xuXG5cdFx0XHRpZiAoIG1hdGNoRXhwcltcIkNISUxEXCJdLnRlc3QoIG1hdGNoWzBdICkgKSB7XG5cdFx0XHRcdHJldHVybiBudWxsO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBBY2NlcHQgcXVvdGVkIGFyZ3VtZW50cyBhcy1pc1xuXHRcdFx0aWYgKCBtYXRjaFszXSApIHtcblx0XHRcdFx0bWF0Y2hbMl0gPSBtYXRjaFs0XSB8fCBtYXRjaFs1XSB8fCBcIlwiO1xuXG5cdFx0XHQvLyBTdHJpcCBleGNlc3MgY2hhcmFjdGVycyBmcm9tIHVucXVvdGVkIGFyZ3VtZW50c1xuXHRcdFx0fSBlbHNlIGlmICggdW5xdW90ZWQgJiYgcnBzZXVkby50ZXN0KCB1bnF1b3RlZCApICYmXG5cdFx0XHRcdC8vIEdldCBleGNlc3MgZnJvbSB0b2tlbml6ZSAocmVjdXJzaXZlbHkpXG5cdFx0XHRcdChleGNlc3MgPSB0b2tlbml6ZSggdW5xdW90ZWQsIHRydWUgKSkgJiZcblx0XHRcdFx0Ly8gYWR2YW5jZSB0byB0aGUgbmV4dCBjbG9zaW5nIHBhcmVudGhlc2lzXG5cdFx0XHRcdChleGNlc3MgPSB1bnF1b3RlZC5pbmRleE9mKCBcIilcIiwgdW5xdW90ZWQubGVuZ3RoIC0gZXhjZXNzICkgLSB1bnF1b3RlZC5sZW5ndGgpICkge1xuXG5cdFx0XHRcdC8vIGV4Y2VzcyBpcyBhIG5lZ2F0aXZlIGluZGV4XG5cdFx0XHRcdG1hdGNoWzBdID0gbWF0Y2hbMF0uc2xpY2UoIDAsIGV4Y2VzcyApO1xuXHRcdFx0XHRtYXRjaFsyXSA9IHVucXVvdGVkLnNsaWNlKCAwLCBleGNlc3MgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmV0dXJuIG9ubHkgY2FwdHVyZXMgbmVlZGVkIGJ5IHRoZSBwc2V1ZG8gZmlsdGVyIG1ldGhvZCAodHlwZSBhbmQgYXJndW1lbnQpXG5cdFx0XHRyZXR1cm4gbWF0Y2guc2xpY2UoIDAsIDMgKTtcblx0XHR9XG5cdH0sXG5cblx0ZmlsdGVyOiB7XG5cblx0XHRcIlRBR1wiOiBmdW5jdGlvbiggbm9kZU5hbWVTZWxlY3RvciApIHtcblx0XHRcdHZhciBub2RlTmFtZSA9IG5vZGVOYW1lU2VsZWN0b3IucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIG5vZGVOYW1lU2VsZWN0b3IgPT09IFwiKlwiID9cblx0XHRcdFx0ZnVuY3Rpb24oKSB7IHJldHVybiB0cnVlOyB9IDpcblx0XHRcdFx0ZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGVsZW0ubm9kZU5hbWUgJiYgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBub2RlTmFtZTtcblx0XHRcdFx0fTtcblx0XHR9LFxuXG5cdFx0XCJDTEFTU1wiOiBmdW5jdGlvbiggY2xhc3NOYW1lICkge1xuXHRcdFx0dmFyIHBhdHRlcm4gPSBjbGFzc0NhY2hlWyBjbGFzc05hbWUgKyBcIiBcIiBdO1xuXG5cdFx0XHRyZXR1cm4gcGF0dGVybiB8fFxuXHRcdFx0XHQocGF0dGVybiA9IG5ldyBSZWdFeHAoIFwiKF58XCIgKyB3aGl0ZXNwYWNlICsgXCIpXCIgKyBjbGFzc05hbWUgKyBcIihcIiArIHdoaXRlc3BhY2UgKyBcInwkKVwiICkpICYmXG5cdFx0XHRcdGNsYXNzQ2FjaGUoIGNsYXNzTmFtZSwgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHBhdHRlcm4udGVzdCggdHlwZW9mIGVsZW0uY2xhc3NOYW1lID09PSBcInN0cmluZ1wiICYmIGVsZW0uY2xhc3NOYW1lIHx8IHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZSAhPT0gXCJ1bmRlZmluZWRcIiAmJiBlbGVtLmdldEF0dHJpYnV0ZShcImNsYXNzXCIpIHx8IFwiXCIgKTtcblx0XHRcdFx0fSk7XG5cdFx0fSxcblxuXHRcdFwiQVRUUlwiOiBmdW5jdGlvbiggbmFtZSwgb3BlcmF0b3IsIGNoZWNrICkge1xuXHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgcmVzdWx0ID0gU2l6emxlLmF0dHIoIGVsZW0sIG5hbWUgKTtcblxuXHRcdFx0XHRpZiAoIHJlc3VsdCA9PSBudWxsICkge1xuXHRcdFx0XHRcdHJldHVybiBvcGVyYXRvciA9PT0gXCIhPVwiO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICggIW9wZXJhdG9yICkge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmVzdWx0ICs9IFwiXCI7XG5cblx0XHRcdFx0cmV0dXJuIG9wZXJhdG9yID09PSBcIj1cIiA/IHJlc3VsdCA9PT0gY2hlY2sgOlxuXHRcdFx0XHRcdG9wZXJhdG9yID09PSBcIiE9XCIgPyByZXN1bHQgIT09IGNoZWNrIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCJePVwiID8gY2hlY2sgJiYgcmVzdWx0LmluZGV4T2YoIGNoZWNrICkgPT09IDAgOlxuXHRcdFx0XHRcdG9wZXJhdG9yID09PSBcIio9XCIgPyBjaGVjayAmJiByZXN1bHQuaW5kZXhPZiggY2hlY2sgKSA+IC0xIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCIkPVwiID8gY2hlY2sgJiYgcmVzdWx0LnNsaWNlKCAtY2hlY2subGVuZ3RoICkgPT09IGNoZWNrIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCJ+PVwiID8gKCBcIiBcIiArIHJlc3VsdC5yZXBsYWNlKCByd2hpdGVzcGFjZSwgXCIgXCIgKSArIFwiIFwiICkuaW5kZXhPZiggY2hlY2sgKSA+IC0xIDpcblx0XHRcdFx0XHRvcGVyYXRvciA9PT0gXCJ8PVwiID8gcmVzdWx0ID09PSBjaGVjayB8fCByZXN1bHQuc2xpY2UoIDAsIGNoZWNrLmxlbmd0aCArIDEgKSA9PT0gY2hlY2sgKyBcIi1cIiA6XG5cdFx0XHRcdFx0ZmFsc2U7XG5cdFx0XHR9O1xuXHRcdH0sXG5cblx0XHRcIkNISUxEXCI6IGZ1bmN0aW9uKCB0eXBlLCB3aGF0LCBhcmd1bWVudCwgZmlyc3QsIGxhc3QgKSB7XG5cdFx0XHR2YXIgc2ltcGxlID0gdHlwZS5zbGljZSggMCwgMyApICE9PSBcIm50aFwiLFxuXHRcdFx0XHRmb3J3YXJkID0gdHlwZS5zbGljZSggLTQgKSAhPT0gXCJsYXN0XCIsXG5cdFx0XHRcdG9mVHlwZSA9IHdoYXQgPT09IFwib2YtdHlwZVwiO1xuXG5cdFx0XHRyZXR1cm4gZmlyc3QgPT09IDEgJiYgbGFzdCA9PT0gMCA/XG5cblx0XHRcdFx0Ly8gU2hvcnRjdXQgZm9yIDpudGgtKihuKVxuXHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRyZXR1cm4gISFlbGVtLnBhcmVudE5vZGU7XG5cdFx0XHRcdH0gOlxuXG5cdFx0XHRcdGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHRcdFx0dmFyIGNhY2hlLCB1bmlxdWVDYWNoZSwgb3V0ZXJDYWNoZSwgbm9kZSwgbm9kZUluZGV4LCBzdGFydCxcblx0XHRcdFx0XHRcdGRpciA9IHNpbXBsZSAhPT0gZm9yd2FyZCA/IFwibmV4dFNpYmxpbmdcIiA6IFwicHJldmlvdXNTaWJsaW5nXCIsXG5cdFx0XHRcdFx0XHRwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGUsXG5cdFx0XHRcdFx0XHRuYW1lID0gb2ZUeXBlICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSxcblx0XHRcdFx0XHRcdHVzZUNhY2hlID0gIXhtbCAmJiAhb2ZUeXBlLFxuXHRcdFx0XHRcdFx0ZGlmZiA9IGZhbHNlO1xuXG5cdFx0XHRcdFx0aWYgKCBwYXJlbnQgKSB7XG5cblx0XHRcdFx0XHRcdC8vIDooZmlyc3R8bGFzdHxvbmx5KS0oY2hpbGR8b2YtdHlwZSlcblx0XHRcdFx0XHRcdGlmICggc2ltcGxlICkge1xuXHRcdFx0XHRcdFx0XHR3aGlsZSAoIGRpciApIHtcblx0XHRcdFx0XHRcdFx0XHRub2RlID0gZWxlbTtcblx0XHRcdFx0XHRcdFx0XHR3aGlsZSAoIChub2RlID0gbm9kZVsgZGlyIF0pICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBvZlR5cGUgP1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRub2RlLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IG5hbWUgOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHRub2RlLm5vZGVUeXBlID09PSAxICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0Ly8gUmV2ZXJzZSBkaXJlY3Rpb24gZm9yIDpvbmx5LSogKGlmIHdlIGhhdmVuJ3QgeWV0IGRvbmUgc28pXG5cdFx0XHRcdFx0XHRcdFx0c3RhcnQgPSBkaXIgPSB0eXBlID09PSBcIm9ubHlcIiAmJiAhc3RhcnQgJiYgXCJuZXh0U2libGluZ1wiO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRzdGFydCA9IFsgZm9yd2FyZCA/IHBhcmVudC5maXJzdENoaWxkIDogcGFyZW50Lmxhc3RDaGlsZCBdO1xuXG5cdFx0XHRcdFx0XHQvLyBub24teG1sIDpudGgtY2hpbGQoLi4uKSBzdG9yZXMgY2FjaGUgZGF0YSBvbiBgcGFyZW50YFxuXHRcdFx0XHRcdFx0aWYgKCBmb3J3YXJkICYmIHVzZUNhY2hlICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIFNlZWsgYGVsZW1gIGZyb20gYSBwcmV2aW91c2x5LWNhY2hlZCBpbmRleFxuXG5cdFx0XHRcdFx0XHRcdC8vIC4uLmluIGEgZ3ppcC1mcmllbmRseSB3YXlcblx0XHRcdFx0XHRcdFx0bm9kZSA9IHBhcmVudDtcblx0XHRcdFx0XHRcdFx0b3V0ZXJDYWNoZSA9IG5vZGVbIGV4cGFuZG8gXSB8fCAobm9kZVsgZXhwYW5kbyBdID0ge30pO1xuXG5cdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw5IG9ubHlcblx0XHRcdFx0XHRcdFx0Ly8gRGVmZW5kIGFnYWluc3QgY2xvbmVkIGF0dHJvcGVydGllcyAoalF1ZXJ5IGdoLTE3MDkpXG5cdFx0XHRcdFx0XHRcdHVuaXF1ZUNhY2hlID0gb3V0ZXJDYWNoZVsgbm9kZS51bmlxdWVJRCBdIHx8XG5cdFx0XHRcdFx0XHRcdFx0KG91dGVyQ2FjaGVbIG5vZGUudW5pcXVlSUQgXSA9IHt9KTtcblxuXHRcdFx0XHRcdFx0XHRjYWNoZSA9IHVuaXF1ZUNhY2hlWyB0eXBlIF0gfHwgW107XG5cdFx0XHRcdFx0XHRcdG5vZGVJbmRleCA9IGNhY2hlWyAwIF0gPT09IGRpcnJ1bnMgJiYgY2FjaGVbIDEgXTtcblx0XHRcdFx0XHRcdFx0ZGlmZiA9IG5vZGVJbmRleCAmJiBjYWNoZVsgMiBdO1xuXHRcdFx0XHRcdFx0XHRub2RlID0gbm9kZUluZGV4ICYmIHBhcmVudC5jaGlsZE5vZGVzWyBub2RlSW5kZXggXTtcblxuXHRcdFx0XHRcdFx0XHR3aGlsZSAoIChub2RlID0gKytub2RlSW5kZXggJiYgbm9kZSAmJiBub2RlWyBkaXIgXSB8fFxuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gRmFsbGJhY2sgdG8gc2Vla2luZyBgZWxlbWAgZnJvbSB0aGUgc3RhcnRcblx0XHRcdFx0XHRcdFx0XHQoZGlmZiA9IG5vZGVJbmRleCA9IDApIHx8IHN0YXJ0LnBvcCgpKSApIHtcblxuXHRcdFx0XHRcdFx0XHRcdC8vIFdoZW4gZm91bmQsIGNhY2hlIGluZGV4ZXMgb24gYHBhcmVudGAgYW5kIGJyZWFrXG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBub2RlLm5vZGVUeXBlID09PSAxICYmICsrZGlmZiAmJiBub2RlID09PSBlbGVtICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dW5pcXVlQ2FjaGVbIHR5cGUgXSA9IFsgZGlycnVucywgbm9kZUluZGV4LCBkaWZmIF07XG5cdFx0XHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0Ly8gVXNlIHByZXZpb3VzbHktY2FjaGVkIGVsZW1lbnQgaW5kZXggaWYgYXZhaWxhYmxlXG5cdFx0XHRcdFx0XHRcdGlmICggdXNlQ2FjaGUgKSB7XG5cdFx0XHRcdFx0XHRcdFx0Ly8gLi4uaW4gYSBnemlwLWZyaWVuZGx5IHdheVxuXHRcdFx0XHRcdFx0XHRcdG5vZGUgPSBlbGVtO1xuXHRcdFx0XHRcdFx0XHRcdG91dGVyQ2FjaGUgPSBub2RlWyBleHBhbmRvIF0gfHwgKG5vZGVbIGV4cGFuZG8gXSA9IHt9KTtcblxuXHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw5IG9ubHlcblx0XHRcdFx0XHRcdFx0XHQvLyBEZWZlbmQgYWdhaW5zdCBjbG9uZWQgYXR0cm9wZXJ0aWVzIChqUXVlcnkgZ2gtMTcwOSlcblx0XHRcdFx0XHRcdFx0XHR1bmlxdWVDYWNoZSA9IG91dGVyQ2FjaGVbIG5vZGUudW5pcXVlSUQgXSB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0KG91dGVyQ2FjaGVbIG5vZGUudW5pcXVlSUQgXSA9IHt9KTtcblxuXHRcdFx0XHRcdFx0XHRcdGNhY2hlID0gdW5pcXVlQ2FjaGVbIHR5cGUgXSB8fCBbXTtcblx0XHRcdFx0XHRcdFx0XHRub2RlSW5kZXggPSBjYWNoZVsgMCBdID09PSBkaXJydW5zICYmIGNhY2hlWyAxIF07XG5cdFx0XHRcdFx0XHRcdFx0ZGlmZiA9IG5vZGVJbmRleDtcblx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdC8vIHhtbCA6bnRoLWNoaWxkKC4uLilcblx0XHRcdFx0XHRcdFx0Ly8gb3IgOm50aC1sYXN0LWNoaWxkKC4uLikgb3IgOm50aCgtbGFzdCk/LW9mLXR5cGUoLi4uKVxuXHRcdFx0XHRcdFx0XHRpZiAoIGRpZmYgPT09IGZhbHNlICkge1xuXHRcdFx0XHRcdFx0XHRcdC8vIFVzZSB0aGUgc2FtZSBsb29wIGFzIGFib3ZlIHRvIHNlZWsgYGVsZW1gIGZyb20gdGhlIHN0YXJ0XG5cdFx0XHRcdFx0XHRcdFx0d2hpbGUgKCAobm9kZSA9ICsrbm9kZUluZGV4ICYmIG5vZGUgJiYgbm9kZVsgZGlyIF0gfHxcblx0XHRcdFx0XHRcdFx0XHRcdChkaWZmID0gbm9kZUluZGV4ID0gMCkgfHwgc3RhcnQucG9wKCkpICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoICggb2ZUeXBlID9cblx0XHRcdFx0XHRcdFx0XHRcdFx0bm9kZS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpID09PSBuYW1lIDpcblx0XHRcdFx0XHRcdFx0XHRcdFx0bm9kZS5ub2RlVHlwZSA9PT0gMSApICYmXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCsrZGlmZiApIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBDYWNoZSB0aGUgaW5kZXggb2YgZWFjaCBlbmNvdW50ZXJlZCBlbGVtZW50XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggdXNlQ2FjaGUgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0b3V0ZXJDYWNoZSA9IG5vZGVbIGV4cGFuZG8gXSB8fCAobm9kZVsgZXhwYW5kbyBdID0ge30pO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPDkgb25seVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIERlZmVuZCBhZ2FpbnN0IGNsb25lZCBhdHRyb3BlcnRpZXMgKGpRdWVyeSBnaC0xNzA5KVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHVuaXF1ZUNhY2hlID0gb3V0ZXJDYWNoZVsgbm9kZS51bmlxdWVJRCBdIHx8XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHQob3V0ZXJDYWNoZVsgbm9kZS51bmlxdWVJRCBdID0ge30pO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0dW5pcXVlQ2FjaGVbIHR5cGUgXSA9IFsgZGlycnVucywgZGlmZiBdO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBub2RlID09PSBlbGVtICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIEluY29ycG9yYXRlIHRoZSBvZmZzZXQsIHRoZW4gY2hlY2sgYWdhaW5zdCBjeWNsZSBzaXplXG5cdFx0XHRcdFx0XHRkaWZmIC09IGxhc3Q7XG5cdFx0XHRcdFx0XHRyZXR1cm4gZGlmZiA9PT0gZmlyc3QgfHwgKCBkaWZmICUgZmlyc3QgPT09IDAgJiYgZGlmZiAvIGZpcnN0ID49IDAgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH07XG5cdFx0fSxcblxuXHRcdFwiUFNFVURPXCI6IGZ1bmN0aW9uKCBwc2V1ZG8sIGFyZ3VtZW50ICkge1xuXHRcdFx0Ly8gcHNldWRvLWNsYXNzIG5hbWVzIGFyZSBjYXNlLWluc2Vuc2l0aXZlXG5cdFx0XHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi9zZWxlY3RvcnMvI3BzZXVkby1jbGFzc2VzXG5cdFx0XHQvLyBQcmlvcml0aXplIGJ5IGNhc2Ugc2Vuc2l0aXZpdHkgaW4gY2FzZSBjdXN0b20gcHNldWRvcyBhcmUgYWRkZWQgd2l0aCB1cHBlcmNhc2UgbGV0dGVyc1xuXHRcdFx0Ly8gUmVtZW1iZXIgdGhhdCBzZXRGaWx0ZXJzIGluaGVyaXRzIGZyb20gcHNldWRvc1xuXHRcdFx0dmFyIGFyZ3MsXG5cdFx0XHRcdGZuID0gRXhwci5wc2V1ZG9zWyBwc2V1ZG8gXSB8fCBFeHByLnNldEZpbHRlcnNbIHBzZXVkby50b0xvd2VyQ2FzZSgpIF0gfHxcblx0XHRcdFx0XHRTaXp6bGUuZXJyb3IoIFwidW5zdXBwb3J0ZWQgcHNldWRvOiBcIiArIHBzZXVkbyApO1xuXG5cdFx0XHQvLyBUaGUgdXNlciBtYXkgdXNlIGNyZWF0ZVBzZXVkbyB0byBpbmRpY2F0ZSB0aGF0XG5cdFx0XHQvLyBhcmd1bWVudHMgYXJlIG5lZWRlZCB0byBjcmVhdGUgdGhlIGZpbHRlciBmdW5jdGlvblxuXHRcdFx0Ly8ganVzdCBhcyBTaXp6bGUgZG9lc1xuXHRcdFx0aWYgKCBmblsgZXhwYW5kbyBdICkge1xuXHRcdFx0XHRyZXR1cm4gZm4oIGFyZ3VtZW50ICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEJ1dCBtYWludGFpbiBzdXBwb3J0IGZvciBvbGQgc2lnbmF0dXJlc1xuXHRcdFx0aWYgKCBmbi5sZW5ndGggPiAxICkge1xuXHRcdFx0XHRhcmdzID0gWyBwc2V1ZG8sIHBzZXVkbywgXCJcIiwgYXJndW1lbnQgXTtcblx0XHRcdFx0cmV0dXJuIEV4cHIuc2V0RmlsdGVycy5oYXNPd25Qcm9wZXJ0eSggcHNldWRvLnRvTG93ZXJDYXNlKCkgKSA/XG5cdFx0XHRcdFx0bWFya0Z1bmN0aW9uKGZ1bmN0aW9uKCBzZWVkLCBtYXRjaGVzICkge1xuXHRcdFx0XHRcdFx0dmFyIGlkeCxcblx0XHRcdFx0XHRcdFx0bWF0Y2hlZCA9IGZuKCBzZWVkLCBhcmd1bWVudCApLFxuXHRcdFx0XHRcdFx0XHRpID0gbWF0Y2hlZC5sZW5ndGg7XG5cdFx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0XHRcdFx0aWR4ID0gaW5kZXhPZiggc2VlZCwgbWF0Y2hlZFtpXSApO1xuXHRcdFx0XHRcdFx0XHRzZWVkWyBpZHggXSA9ICEoIG1hdGNoZXNbIGlkeCBdID0gbWF0Y2hlZFtpXSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH0pIDpcblx0XHRcdFx0XHRmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0XHRcdHJldHVybiBmbiggZWxlbSwgMCwgYXJncyApO1xuXHRcdFx0XHRcdH07XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiBmbjtcblx0XHR9XG5cdH0sXG5cblx0cHNldWRvczoge1xuXHRcdC8vIFBvdGVudGlhbGx5IGNvbXBsZXggcHNldWRvc1xuXHRcdFwibm90XCI6IG1hcmtGdW5jdGlvbihmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0XHQvLyBUcmltIHRoZSBzZWxlY3RvciBwYXNzZWQgdG8gY29tcGlsZVxuXHRcdFx0Ly8gdG8gYXZvaWQgdHJlYXRpbmcgbGVhZGluZyBhbmQgdHJhaWxpbmdcblx0XHRcdC8vIHNwYWNlcyBhcyBjb21iaW5hdG9yc1xuXHRcdFx0dmFyIGlucHV0ID0gW10sXG5cdFx0XHRcdHJlc3VsdHMgPSBbXSxcblx0XHRcdFx0bWF0Y2hlciA9IGNvbXBpbGUoIHNlbGVjdG9yLnJlcGxhY2UoIHJ0cmltLCBcIiQxXCIgKSApO1xuXG5cdFx0XHRyZXR1cm4gbWF0Y2hlclsgZXhwYW5kbyBdID9cblx0XHRcdFx0bWFya0Z1bmN0aW9uKGZ1bmN0aW9uKCBzZWVkLCBtYXRjaGVzLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHRcdFx0dmFyIGVsZW0sXG5cdFx0XHRcdFx0XHR1bm1hdGNoZWQgPSBtYXRjaGVyKCBzZWVkLCBudWxsLCB4bWwsIFtdICksXG5cdFx0XHRcdFx0XHRpID0gc2VlZC5sZW5ndGg7XG5cblx0XHRcdFx0XHQvLyBNYXRjaCBlbGVtZW50cyB1bm1hdGNoZWQgYnkgYG1hdGNoZXJgXG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRpZiAoIChlbGVtID0gdW5tYXRjaGVkW2ldKSApIHtcblx0XHRcdFx0XHRcdFx0c2VlZFtpXSA9ICEobWF0Y2hlc1tpXSA9IGVsZW0pO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSkgOlxuXHRcdFx0XHRmdW5jdGlvbiggZWxlbSwgY29udGV4dCwgeG1sICkge1xuXHRcdFx0XHRcdGlucHV0WzBdID0gZWxlbTtcblx0XHRcdFx0XHRtYXRjaGVyKCBpbnB1dCwgbnVsbCwgeG1sLCByZXN1bHRzICk7XG5cdFx0XHRcdFx0Ly8gRG9uJ3Qga2VlcCB0aGUgZWxlbWVudCAoaXNzdWUgIzI5OSlcblx0XHRcdFx0XHRpbnB1dFswXSA9IG51bGw7XG5cdFx0XHRcdFx0cmV0dXJuICFyZXN1bHRzLnBvcCgpO1xuXHRcdFx0XHR9O1xuXHRcdH0pLFxuXG5cdFx0XCJoYXNcIjogbWFya0Z1bmN0aW9uKGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0cmV0dXJuIFNpenpsZSggc2VsZWN0b3IsIGVsZW0gKS5sZW5ndGggPiAwO1xuXHRcdFx0fTtcblx0XHR9KSxcblxuXHRcdFwiY29udGFpbnNcIjogbWFya0Z1bmN0aW9uKGZ1bmN0aW9uKCB0ZXh0ICkge1xuXHRcdFx0dGV4dCA9IHRleHQucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKTtcblx0XHRcdHJldHVybiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdFx0cmV0dXJuICggZWxlbS50ZXh0Q29udGVudCB8fCBlbGVtLmlubmVyVGV4dCB8fCBnZXRUZXh0KCBlbGVtICkgKS5pbmRleE9mKCB0ZXh0ICkgPiAtMTtcblx0XHRcdH07XG5cdFx0fSksXG5cblx0XHQvLyBcIldoZXRoZXIgYW4gZWxlbWVudCBpcyByZXByZXNlbnRlZCBieSBhIDpsYW5nKCkgc2VsZWN0b3Jcblx0XHQvLyBpcyBiYXNlZCBzb2xlbHkgb24gdGhlIGVsZW1lbnQncyBsYW5ndWFnZSB2YWx1ZVxuXHRcdC8vIGJlaW5nIGVxdWFsIHRvIHRoZSBpZGVudGlmaWVyIEMsXG5cdFx0Ly8gb3IgYmVnaW5uaW5nIHdpdGggdGhlIGlkZW50aWZpZXIgQyBpbW1lZGlhdGVseSBmb2xsb3dlZCBieSBcIi1cIi5cblx0XHQvLyBUaGUgbWF0Y2hpbmcgb2YgQyBhZ2FpbnN0IHRoZSBlbGVtZW50J3MgbGFuZ3VhZ2UgdmFsdWUgaXMgcGVyZm9ybWVkIGNhc2UtaW5zZW5zaXRpdmVseS5cblx0XHQvLyBUaGUgaWRlbnRpZmllciBDIGRvZXMgbm90IGhhdmUgdG8gYmUgYSB2YWxpZCBsYW5ndWFnZSBuYW1lLlwiXG5cdFx0Ly8gaHR0cDovL3d3dy53My5vcmcvVFIvc2VsZWN0b3JzLyNsYW5nLXBzZXVkb1xuXHRcdFwibGFuZ1wiOiBtYXJrRnVuY3Rpb24oIGZ1bmN0aW9uKCBsYW5nICkge1xuXHRcdFx0Ly8gbGFuZyB2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgaWRlbnRpZmllclxuXHRcdFx0aWYgKCAhcmlkZW50aWZpZXIudGVzdChsYW5nIHx8IFwiXCIpICkge1xuXHRcdFx0XHRTaXp6bGUuZXJyb3IoIFwidW5zdXBwb3J0ZWQgbGFuZzogXCIgKyBsYW5nICk7XG5cdFx0XHR9XG5cdFx0XHRsYW5nID0gbGFuZy5yZXBsYWNlKCBydW5lc2NhcGUsIGZ1bmVzY2FwZSApLnRvTG93ZXJDYXNlKCk7XG5cdFx0XHRyZXR1cm4gZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRcdHZhciBlbGVtTGFuZztcblx0XHRcdFx0ZG8ge1xuXHRcdFx0XHRcdGlmICggKGVsZW1MYW5nID0gZG9jdW1lbnRJc0hUTUwgP1xuXHRcdFx0XHRcdFx0ZWxlbS5sYW5nIDpcblx0XHRcdFx0XHRcdGVsZW0uZ2V0QXR0cmlidXRlKFwieG1sOmxhbmdcIikgfHwgZWxlbS5nZXRBdHRyaWJ1dGUoXCJsYW5nXCIpKSApIHtcblxuXHRcdFx0XHRcdFx0ZWxlbUxhbmcgPSBlbGVtTGFuZy50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHRcdFx0cmV0dXJuIGVsZW1MYW5nID09PSBsYW5nIHx8IGVsZW1MYW5nLmluZGV4T2YoIGxhbmcgKyBcIi1cIiApID09PSAwO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSB3aGlsZSAoIChlbGVtID0gZWxlbS5wYXJlbnROb2RlKSAmJiBlbGVtLm5vZGVUeXBlID09PSAxICk7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH07XG5cdFx0fSksXG5cblx0XHQvLyBNaXNjZWxsYW5lb3VzXG5cdFx0XCJ0YXJnZXRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgaGFzaCA9IHdpbmRvdy5sb2NhdGlvbiAmJiB3aW5kb3cubG9jYXRpb24uaGFzaDtcblx0XHRcdHJldHVybiBoYXNoICYmIGhhc2guc2xpY2UoIDEgKSA9PT0gZWxlbS5pZDtcblx0XHR9LFxuXG5cdFx0XCJyb290XCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0gPT09IGRvY0VsZW07XG5cdFx0fSxcblxuXHRcdFwiZm9jdXNcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gZWxlbSA9PT0gZG9jdW1lbnQuYWN0aXZlRWxlbWVudCAmJiAoIWRvY3VtZW50Lmhhc0ZvY3VzIHx8IGRvY3VtZW50Lmhhc0ZvY3VzKCkpICYmICEhKGVsZW0udHlwZSB8fCBlbGVtLmhyZWYgfHwgfmVsZW0udGFiSW5kZXgpO1xuXHRcdH0sXG5cblx0XHQvLyBCb29sZWFuIHByb3BlcnRpZXNcblx0XHRcImVuYWJsZWRcIjogY3JlYXRlRGlzYWJsZWRQc2V1ZG8oIGZhbHNlICksXG5cdFx0XCJkaXNhYmxlZFwiOiBjcmVhdGVEaXNhYmxlZFBzZXVkbyggdHJ1ZSApLFxuXG5cdFx0XCJjaGVja2VkXCI6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0Ly8gSW4gQ1NTMywgOmNoZWNrZWQgc2hvdWxkIHJldHVybiBib3RoIGNoZWNrZWQgYW5kIHNlbGVjdGVkIGVsZW1lbnRzXG5cdFx0XHQvLyBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDExL1JFQy1jc3MzLXNlbGVjdG9ycy0yMDExMDkyOS8jY2hlY2tlZFxuXHRcdFx0dmFyIG5vZGVOYW1lID0gZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0cmV0dXJuIChub2RlTmFtZSA9PT0gXCJpbnB1dFwiICYmICEhZWxlbS5jaGVja2VkKSB8fCAobm9kZU5hbWUgPT09IFwib3B0aW9uXCIgJiYgISFlbGVtLnNlbGVjdGVkKTtcblx0XHR9LFxuXG5cdFx0XCJzZWxlY3RlZFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdC8vIEFjY2Vzc2luZyB0aGlzIHByb3BlcnR5IG1ha2VzIHNlbGVjdGVkLWJ5LWRlZmF1bHRcblx0XHRcdC8vIG9wdGlvbnMgaW4gU2FmYXJpIHdvcmsgcHJvcGVybHlcblx0XHRcdGlmICggZWxlbS5wYXJlbnROb2RlICkge1xuXHRcdFx0XHRlbGVtLnBhcmVudE5vZGUuc2VsZWN0ZWRJbmRleDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGVsZW0uc2VsZWN0ZWQgPT09IHRydWU7XG5cdFx0fSxcblxuXHRcdC8vIENvbnRlbnRzXG5cdFx0XCJlbXB0eVwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdC8vIGh0dHA6Ly93d3cudzMub3JnL1RSL3NlbGVjdG9ycy8jZW1wdHktcHNldWRvXG5cdFx0XHQvLyA6ZW1wdHkgaXMgbmVnYXRlZCBieSBlbGVtZW50ICgxKSBvciBjb250ZW50IG5vZGVzICh0ZXh0OiAzOyBjZGF0YTogNDsgZW50aXR5IHJlZjogNSksXG5cdFx0XHQvLyAgIGJ1dCBub3QgYnkgb3RoZXJzIChjb21tZW50OiA4OyBwcm9jZXNzaW5nIGluc3RydWN0aW9uOiA3OyBldGMuKVxuXHRcdFx0Ly8gbm9kZVR5cGUgPCA2IHdvcmtzIGJlY2F1c2UgYXR0cmlidXRlcyAoMikgZG8gbm90IGFwcGVhciBhcyBjaGlsZHJlblxuXHRcdFx0Zm9yICggZWxlbSA9IGVsZW0uZmlyc3RDaGlsZDsgZWxlbTsgZWxlbSA9IGVsZW0ubmV4dFNpYmxpbmcgKSB7XG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA8IDYgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHR9LFxuXG5cdFx0XCJwYXJlbnRcIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gIUV4cHIucHNldWRvc1tcImVtcHR5XCJdKCBlbGVtICk7XG5cdFx0fSxcblxuXHRcdC8vIEVsZW1lbnQvaW5wdXQgdHlwZXNcblx0XHRcImhlYWRlclwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiByaGVhZGVyLnRlc3QoIGVsZW0ubm9kZU5hbWUgKTtcblx0XHR9LFxuXG5cdFx0XCJpbnB1dFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHJldHVybiByaW5wdXRzLnRlc3QoIGVsZW0ubm9kZU5hbWUgKTtcblx0XHR9LFxuXG5cdFx0XCJidXR0b25cIjogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHR2YXIgbmFtZSA9IGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKTtcblx0XHRcdHJldHVybiBuYW1lID09PSBcImlucHV0XCIgJiYgZWxlbS50eXBlID09PSBcImJ1dHRvblwiIHx8IG5hbWUgPT09IFwiYnV0dG9uXCI7XG5cdFx0fSxcblxuXHRcdFwidGV4dFwiOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHZhciBhdHRyO1xuXHRcdFx0cmV0dXJuIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gXCJpbnB1dFwiICYmXG5cdFx0XHRcdGVsZW0udHlwZSA9PT0gXCJ0ZXh0XCIgJiZcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBJRTw4XG5cdFx0XHRcdC8vIE5ldyBIVE1MNSBhdHRyaWJ1dGUgdmFsdWVzIChlLmcuLCBcInNlYXJjaFwiKSBhcHBlYXIgd2l0aCBlbGVtLnR5cGUgPT09IFwidGV4dFwiXG5cdFx0XHRcdCggKGF0dHIgPSBlbGVtLmdldEF0dHJpYnV0ZShcInR5cGVcIikpID09IG51bGwgfHwgYXR0ci50b0xvd2VyQ2FzZSgpID09PSBcInRleHRcIiApO1xuXHRcdH0sXG5cblx0XHQvLyBQb3NpdGlvbi1pbi1jb2xsZWN0aW9uXG5cdFx0XCJmaXJzdFwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKGZ1bmN0aW9uKCkge1xuXHRcdFx0cmV0dXJuIFsgMCBdO1xuXHRcdH0pLFxuXG5cdFx0XCJsYXN0XCI6IGNyZWF0ZVBvc2l0aW9uYWxQc2V1ZG8oZnVuY3Rpb24oIG1hdGNoSW5kZXhlcywgbGVuZ3RoICkge1xuXHRcdFx0cmV0dXJuIFsgbGVuZ3RoIC0gMSBdO1xuXHRcdH0pLFxuXG5cdFx0XCJlcVwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCwgYXJndW1lbnQgKSB7XG5cdFx0XHRyZXR1cm4gWyBhcmd1bWVudCA8IDAgPyBhcmd1bWVudCArIGxlbmd0aCA6IGFyZ3VtZW50IF07XG5cdFx0fSksXG5cblx0XHRcImV2ZW5cIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhmdW5jdGlvbiggbWF0Y2hJbmRleGVzLCBsZW5ndGggKSB7XG5cdFx0XHR2YXIgaSA9IDA7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW5ndGg7IGkgKz0gMiApIHtcblx0XHRcdFx0bWF0Y2hJbmRleGVzLnB1c2goIGkgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiBtYXRjaEluZGV4ZXM7XG5cdFx0fSksXG5cblx0XHRcIm9kZFwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCApIHtcblx0XHRcdHZhciBpID0gMTtcblx0XHRcdGZvciAoIDsgaSA8IGxlbmd0aDsgaSArPSAyICkge1xuXHRcdFx0XHRtYXRjaEluZGV4ZXMucHVzaCggaSApO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG1hdGNoSW5kZXhlcztcblx0XHR9KSxcblxuXHRcdFwibHRcIjogY3JlYXRlUG9zaXRpb25hbFBzZXVkbyhmdW5jdGlvbiggbWF0Y2hJbmRleGVzLCBsZW5ndGgsIGFyZ3VtZW50ICkge1xuXHRcdFx0dmFyIGkgPSBhcmd1bWVudCA8IDAgPyBhcmd1bWVudCArIGxlbmd0aCA6IGFyZ3VtZW50O1xuXHRcdFx0Zm9yICggOyAtLWkgPj0gMDsgKSB7XG5cdFx0XHRcdG1hdGNoSW5kZXhlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbWF0Y2hJbmRleGVzO1xuXHRcdH0pLFxuXG5cdFx0XCJndFwiOiBjcmVhdGVQb3NpdGlvbmFsUHNldWRvKGZ1bmN0aW9uKCBtYXRjaEluZGV4ZXMsIGxlbmd0aCwgYXJndW1lbnQgKSB7XG5cdFx0XHR2YXIgaSA9IGFyZ3VtZW50IDwgMCA/IGFyZ3VtZW50ICsgbGVuZ3RoIDogYXJndW1lbnQ7XG5cdFx0XHRmb3IgKCA7ICsraSA8IGxlbmd0aDsgKSB7XG5cdFx0XHRcdG1hdGNoSW5kZXhlcy5wdXNoKCBpICk7XG5cdFx0XHR9XG5cdFx0XHRyZXR1cm4gbWF0Y2hJbmRleGVzO1xuXHRcdH0pXG5cdH1cbn07XG5cbkV4cHIucHNldWRvc1tcIm50aFwiXSA9IEV4cHIucHNldWRvc1tcImVxXCJdO1xuXG4vLyBBZGQgYnV0dG9uL2lucHV0IHR5cGUgcHNldWRvc1xuZm9yICggaSBpbiB7IHJhZGlvOiB0cnVlLCBjaGVja2JveDogdHJ1ZSwgZmlsZTogdHJ1ZSwgcGFzc3dvcmQ6IHRydWUsIGltYWdlOiB0cnVlIH0gKSB7XG5cdEV4cHIucHNldWRvc1sgaSBdID0gY3JlYXRlSW5wdXRQc2V1ZG8oIGkgKTtcbn1cbmZvciAoIGkgaW4geyBzdWJtaXQ6IHRydWUsIHJlc2V0OiB0cnVlIH0gKSB7XG5cdEV4cHIucHNldWRvc1sgaSBdID0gY3JlYXRlQnV0dG9uUHNldWRvKCBpICk7XG59XG5cbi8vIEVhc3kgQVBJIGZvciBjcmVhdGluZyBuZXcgc2V0RmlsdGVyc1xuZnVuY3Rpb24gc2V0RmlsdGVycygpIHt9XG5zZXRGaWx0ZXJzLnByb3RvdHlwZSA9IEV4cHIuZmlsdGVycyA9IEV4cHIucHNldWRvcztcbkV4cHIuc2V0RmlsdGVycyA9IG5ldyBzZXRGaWx0ZXJzKCk7XG5cbnRva2VuaXplID0gU2l6emxlLnRva2VuaXplID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBwYXJzZU9ubHkgKSB7XG5cdHZhciBtYXRjaGVkLCBtYXRjaCwgdG9rZW5zLCB0eXBlLFxuXHRcdHNvRmFyLCBncm91cHMsIHByZUZpbHRlcnMsXG5cdFx0Y2FjaGVkID0gdG9rZW5DYWNoZVsgc2VsZWN0b3IgKyBcIiBcIiBdO1xuXG5cdGlmICggY2FjaGVkICkge1xuXHRcdHJldHVybiBwYXJzZU9ubHkgPyAwIDogY2FjaGVkLnNsaWNlKCAwICk7XG5cdH1cblxuXHRzb0ZhciA9IHNlbGVjdG9yO1xuXHRncm91cHMgPSBbXTtcblx0cHJlRmlsdGVycyA9IEV4cHIucHJlRmlsdGVyO1xuXG5cdHdoaWxlICggc29GYXIgKSB7XG5cblx0XHQvLyBDb21tYSBhbmQgZmlyc3QgcnVuXG5cdFx0aWYgKCAhbWF0Y2hlZCB8fCAobWF0Y2ggPSByY29tbWEuZXhlYyggc29GYXIgKSkgKSB7XG5cdFx0XHRpZiAoIG1hdGNoICkge1xuXHRcdFx0XHQvLyBEb24ndCBjb25zdW1lIHRyYWlsaW5nIGNvbW1hcyBhcyB2YWxpZFxuXHRcdFx0XHRzb0ZhciA9IHNvRmFyLnNsaWNlKCBtYXRjaFswXS5sZW5ndGggKSB8fCBzb0Zhcjtcblx0XHRcdH1cblx0XHRcdGdyb3Vwcy5wdXNoKCAodG9rZW5zID0gW10pICk7XG5cdFx0fVxuXG5cdFx0bWF0Y2hlZCA9IGZhbHNlO1xuXG5cdFx0Ly8gQ29tYmluYXRvcnNcblx0XHRpZiAoIChtYXRjaCA9IHJjb21iaW5hdG9ycy5leGVjKCBzb0ZhciApKSApIHtcblx0XHRcdG1hdGNoZWQgPSBtYXRjaC5zaGlmdCgpO1xuXHRcdFx0dG9rZW5zLnB1c2goe1xuXHRcdFx0XHR2YWx1ZTogbWF0Y2hlZCxcblx0XHRcdFx0Ly8gQ2FzdCBkZXNjZW5kYW50IGNvbWJpbmF0b3JzIHRvIHNwYWNlXG5cdFx0XHRcdHR5cGU6IG1hdGNoWzBdLnJlcGxhY2UoIHJ0cmltLCBcIiBcIiApXG5cdFx0XHR9KTtcblx0XHRcdHNvRmFyID0gc29GYXIuc2xpY2UoIG1hdGNoZWQubGVuZ3RoICk7XG5cdFx0fVxuXG5cdFx0Ly8gRmlsdGVyc1xuXHRcdGZvciAoIHR5cGUgaW4gRXhwci5maWx0ZXIgKSB7XG5cdFx0XHRpZiAoIChtYXRjaCA9IG1hdGNoRXhwclsgdHlwZSBdLmV4ZWMoIHNvRmFyICkpICYmICghcHJlRmlsdGVyc1sgdHlwZSBdIHx8XG5cdFx0XHRcdChtYXRjaCA9IHByZUZpbHRlcnNbIHR5cGUgXSggbWF0Y2ggKSkpICkge1xuXHRcdFx0XHRtYXRjaGVkID0gbWF0Y2guc2hpZnQoKTtcblx0XHRcdFx0dG9rZW5zLnB1c2goe1xuXHRcdFx0XHRcdHZhbHVlOiBtYXRjaGVkLFxuXHRcdFx0XHRcdHR5cGU6IHR5cGUsXG5cdFx0XHRcdFx0bWF0Y2hlczogbWF0Y2hcblx0XHRcdFx0fSk7XG5cdFx0XHRcdHNvRmFyID0gc29GYXIuc2xpY2UoIG1hdGNoZWQubGVuZ3RoICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCAhbWF0Y2hlZCApIHtcblx0XHRcdGJyZWFrO1xuXHRcdH1cblx0fVxuXG5cdC8vIFJldHVybiB0aGUgbGVuZ3RoIG9mIHRoZSBpbnZhbGlkIGV4Y2Vzc1xuXHQvLyBpZiB3ZSdyZSBqdXN0IHBhcnNpbmdcblx0Ly8gT3RoZXJ3aXNlLCB0aHJvdyBhbiBlcnJvciBvciByZXR1cm4gdG9rZW5zXG5cdHJldHVybiBwYXJzZU9ubHkgP1xuXHRcdHNvRmFyLmxlbmd0aCA6XG5cdFx0c29GYXIgP1xuXHRcdFx0U2l6emxlLmVycm9yKCBzZWxlY3RvciApIDpcblx0XHRcdC8vIENhY2hlIHRoZSB0b2tlbnNcblx0XHRcdHRva2VuQ2FjaGUoIHNlbGVjdG9yLCBncm91cHMgKS5zbGljZSggMCApO1xufTtcblxuZnVuY3Rpb24gdG9TZWxlY3RvciggdG9rZW5zICkge1xuXHR2YXIgaSA9IDAsXG5cdFx0bGVuID0gdG9rZW5zLmxlbmd0aCxcblx0XHRzZWxlY3RvciA9IFwiXCI7XG5cdGZvciAoIDsgaSA8IGxlbjsgaSsrICkge1xuXHRcdHNlbGVjdG9yICs9IHRva2Vuc1tpXS52YWx1ZTtcblx0fVxuXHRyZXR1cm4gc2VsZWN0b3I7XG59XG5cbmZ1bmN0aW9uIGFkZENvbWJpbmF0b3IoIG1hdGNoZXIsIGNvbWJpbmF0b3IsIGJhc2UgKSB7XG5cdHZhciBkaXIgPSBjb21iaW5hdG9yLmRpcixcblx0XHRza2lwID0gY29tYmluYXRvci5uZXh0LFxuXHRcdGtleSA9IHNraXAgfHwgZGlyLFxuXHRcdGNoZWNrTm9uRWxlbWVudHMgPSBiYXNlICYmIGtleSA9PT0gXCJwYXJlbnROb2RlXCIsXG5cdFx0ZG9uZU5hbWUgPSBkb25lKys7XG5cblx0cmV0dXJuIGNvbWJpbmF0b3IuZmlyc3QgP1xuXHRcdC8vIENoZWNrIGFnYWluc3QgY2xvc2VzdCBhbmNlc3Rvci9wcmVjZWRpbmcgZWxlbWVudFxuXHRcdGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHR3aGlsZSAoIChlbGVtID0gZWxlbVsgZGlyIF0pICkge1xuXHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgY2hlY2tOb25FbGVtZW50cyApIHtcblx0XHRcdFx0XHRyZXR1cm4gbWF0Y2hlciggZWxlbSwgY29udGV4dCwgeG1sICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9IDpcblxuXHRcdC8vIENoZWNrIGFnYWluc3QgYWxsIGFuY2VzdG9yL3ByZWNlZGluZyBlbGVtZW50c1xuXHRcdGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHR2YXIgb2xkQ2FjaGUsIHVuaXF1ZUNhY2hlLCBvdXRlckNhY2hlLFxuXHRcdFx0XHRuZXdDYWNoZSA9IFsgZGlycnVucywgZG9uZU5hbWUgXTtcblxuXHRcdFx0Ly8gV2UgY2FuJ3Qgc2V0IGFyYml0cmFyeSBkYXRhIG9uIFhNTCBub2Rlcywgc28gdGhleSBkb24ndCBiZW5lZml0IGZyb20gY29tYmluYXRvciBjYWNoaW5nXG5cdFx0XHRpZiAoIHhtbCApIHtcblx0XHRcdFx0d2hpbGUgKCAoZWxlbSA9IGVsZW1bIGRpciBdKSApIHtcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgY2hlY2tOb25FbGVtZW50cyApIHtcblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlciggZWxlbSwgY29udGV4dCwgeG1sICkgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0d2hpbGUgKCAoZWxlbSA9IGVsZW1bIGRpciBdKSApIHtcblx0XHRcdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgY2hlY2tOb25FbGVtZW50cyApIHtcblx0XHRcdFx0XHRcdG91dGVyQ2FjaGUgPSBlbGVtWyBleHBhbmRvIF0gfHwgKGVsZW1bIGV4cGFuZG8gXSA9IHt9KTtcblxuXHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgPDkgb25seVxuXHRcdFx0XHRcdFx0Ly8gRGVmZW5kIGFnYWluc3QgY2xvbmVkIGF0dHJvcGVydGllcyAoalF1ZXJ5IGdoLTE3MDkpXG5cdFx0XHRcdFx0XHR1bmlxdWVDYWNoZSA9IG91dGVyQ2FjaGVbIGVsZW0udW5pcXVlSUQgXSB8fCAob3V0ZXJDYWNoZVsgZWxlbS51bmlxdWVJRCBdID0ge30pO1xuXG5cdFx0XHRcdFx0XHRpZiAoIHNraXAgJiYgc2tpcCA9PT0gZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICkge1xuXHRcdFx0XHRcdFx0XHRlbGVtID0gZWxlbVsgZGlyIF0gfHwgZWxlbTtcblx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIChvbGRDYWNoZSA9IHVuaXF1ZUNhY2hlWyBrZXkgXSkgJiZcblx0XHRcdFx0XHRcdFx0b2xkQ2FjaGVbIDAgXSA9PT0gZGlycnVucyAmJiBvbGRDYWNoZVsgMSBdID09PSBkb25lTmFtZSApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBBc3NpZ24gdG8gbmV3Q2FjaGUgc28gcmVzdWx0cyBiYWNrLXByb3BhZ2F0ZSB0byBwcmV2aW91cyBlbGVtZW50c1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gKG5ld0NhY2hlWyAyIF0gPSBvbGRDYWNoZVsgMiBdKTtcblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdC8vIFJldXNlIG5ld2NhY2hlIHNvIHJlc3VsdHMgYmFjay1wcm9wYWdhdGUgdG8gcHJldmlvdXMgZWxlbWVudHNcblx0XHRcdFx0XHRcdFx0dW5pcXVlQ2FjaGVbIGtleSBdID0gbmV3Q2FjaGU7XG5cblx0XHRcdFx0XHRcdFx0Ly8gQSBtYXRjaCBtZWFucyB3ZSdyZSBkb25lOyBhIGZhaWwgbWVhbnMgd2UgaGF2ZSB0byBrZWVwIGNoZWNraW5nXG5cdFx0XHRcdFx0XHRcdGlmICggKG5ld0NhY2hlWyAyIF0gPSBtYXRjaGVyKCBlbGVtLCBjb250ZXh0LCB4bWwgKSkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9O1xufVxuXG5mdW5jdGlvbiBlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSB7XG5cdHJldHVybiBtYXRjaGVycy5sZW5ndGggPiAxID9cblx0XHRmdW5jdGlvbiggZWxlbSwgY29udGV4dCwgeG1sICkge1xuXHRcdFx0dmFyIGkgPSBtYXRjaGVycy5sZW5ndGg7XG5cdFx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdFx0aWYgKCAhbWF0Y2hlcnNbaV0oIGVsZW0sIGNvbnRleHQsIHhtbCApICkge1xuXHRcdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fSA6XG5cdFx0bWF0Y2hlcnNbMF07XG59XG5cbmZ1bmN0aW9uIG11bHRpcGxlQ29udGV4dHMoIHNlbGVjdG9yLCBjb250ZXh0cywgcmVzdWx0cyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGxlbiA9IGNvbnRleHRzLmxlbmd0aDtcblx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0U2l6emxlKCBzZWxlY3RvciwgY29udGV4dHNbaV0sIHJlc3VsdHMgKTtcblx0fVxuXHRyZXR1cm4gcmVzdWx0cztcbn1cblxuZnVuY3Rpb24gY29uZGVuc2UoIHVubWF0Y2hlZCwgbWFwLCBmaWx0ZXIsIGNvbnRleHQsIHhtbCApIHtcblx0dmFyIGVsZW0sXG5cdFx0bmV3VW5tYXRjaGVkID0gW10sXG5cdFx0aSA9IDAsXG5cdFx0bGVuID0gdW5tYXRjaGVkLmxlbmd0aCxcblx0XHRtYXBwZWQgPSBtYXAgIT0gbnVsbDtcblxuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRpZiAoIChlbGVtID0gdW5tYXRjaGVkW2ldKSApIHtcblx0XHRcdGlmICggIWZpbHRlciB8fCBmaWx0ZXIoIGVsZW0sIGNvbnRleHQsIHhtbCApICkge1xuXHRcdFx0XHRuZXdVbm1hdGNoZWQucHVzaCggZWxlbSApO1xuXHRcdFx0XHRpZiAoIG1hcHBlZCApIHtcblx0XHRcdFx0XHRtYXAucHVzaCggaSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0cmV0dXJuIG5ld1VubWF0Y2hlZDtcbn1cblxuZnVuY3Rpb24gc2V0TWF0Y2hlciggcHJlRmlsdGVyLCBzZWxlY3RvciwgbWF0Y2hlciwgcG9zdEZpbHRlciwgcG9zdEZpbmRlciwgcG9zdFNlbGVjdG9yICkge1xuXHRpZiAoIHBvc3RGaWx0ZXIgJiYgIXBvc3RGaWx0ZXJbIGV4cGFuZG8gXSApIHtcblx0XHRwb3N0RmlsdGVyID0gc2V0TWF0Y2hlciggcG9zdEZpbHRlciApO1xuXHR9XG5cdGlmICggcG9zdEZpbmRlciAmJiAhcG9zdEZpbmRlclsgZXhwYW5kbyBdICkge1xuXHRcdHBvc3RGaW5kZXIgPSBzZXRNYXRjaGVyKCBwb3N0RmluZGVyLCBwb3N0U2VsZWN0b3IgKTtcblx0fVxuXHRyZXR1cm4gbWFya0Z1bmN0aW9uKGZ1bmN0aW9uKCBzZWVkLCByZXN1bHRzLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0dmFyIHRlbXAsIGksIGVsZW0sXG5cdFx0XHRwcmVNYXAgPSBbXSxcblx0XHRcdHBvc3RNYXAgPSBbXSxcblx0XHRcdHByZWV4aXN0aW5nID0gcmVzdWx0cy5sZW5ndGgsXG5cblx0XHRcdC8vIEdldCBpbml0aWFsIGVsZW1lbnRzIGZyb20gc2VlZCBvciBjb250ZXh0XG5cdFx0XHRlbGVtcyA9IHNlZWQgfHwgbXVsdGlwbGVDb250ZXh0cyggc2VsZWN0b3IgfHwgXCIqXCIsIGNvbnRleHQubm9kZVR5cGUgPyBbIGNvbnRleHQgXSA6IGNvbnRleHQsIFtdICksXG5cblx0XHRcdC8vIFByZWZpbHRlciB0byBnZXQgbWF0Y2hlciBpbnB1dCwgcHJlc2VydmluZyBhIG1hcCBmb3Igc2VlZC1yZXN1bHRzIHN5bmNocm9uaXphdGlvblxuXHRcdFx0bWF0Y2hlckluID0gcHJlRmlsdGVyICYmICggc2VlZCB8fCAhc2VsZWN0b3IgKSA/XG5cdFx0XHRcdGNvbmRlbnNlKCBlbGVtcywgcHJlTWFwLCBwcmVGaWx0ZXIsIGNvbnRleHQsIHhtbCApIDpcblx0XHRcdFx0ZWxlbXMsXG5cblx0XHRcdG1hdGNoZXJPdXQgPSBtYXRjaGVyID9cblx0XHRcdFx0Ly8gSWYgd2UgaGF2ZSBhIHBvc3RGaW5kZXIsIG9yIGZpbHRlcmVkIHNlZWQsIG9yIG5vbi1zZWVkIHBvc3RGaWx0ZXIgb3IgcHJlZXhpc3RpbmcgcmVzdWx0cyxcblx0XHRcdFx0cG9zdEZpbmRlciB8fCAoIHNlZWQgPyBwcmVGaWx0ZXIgOiBwcmVleGlzdGluZyB8fCBwb3N0RmlsdGVyICkgP1xuXG5cdFx0XHRcdFx0Ly8gLi4uaW50ZXJtZWRpYXRlIHByb2Nlc3NpbmcgaXMgbmVjZXNzYXJ5XG5cdFx0XHRcdFx0W10gOlxuXG5cdFx0XHRcdFx0Ly8gLi4ub3RoZXJ3aXNlIHVzZSByZXN1bHRzIGRpcmVjdGx5XG5cdFx0XHRcdFx0cmVzdWx0cyA6XG5cdFx0XHRcdG1hdGNoZXJJbjtcblxuXHRcdC8vIEZpbmQgcHJpbWFyeSBtYXRjaGVzXG5cdFx0aWYgKCBtYXRjaGVyICkge1xuXHRcdFx0bWF0Y2hlciggbWF0Y2hlckluLCBtYXRjaGVyT3V0LCBjb250ZXh0LCB4bWwgKTtcblx0XHR9XG5cblx0XHQvLyBBcHBseSBwb3N0RmlsdGVyXG5cdFx0aWYgKCBwb3N0RmlsdGVyICkge1xuXHRcdFx0dGVtcCA9IGNvbmRlbnNlKCBtYXRjaGVyT3V0LCBwb3N0TWFwICk7XG5cdFx0XHRwb3N0RmlsdGVyKCB0ZW1wLCBbXSwgY29udGV4dCwgeG1sICk7XG5cblx0XHRcdC8vIFVuLW1hdGNoIGZhaWxpbmcgZWxlbWVudHMgYnkgbW92aW5nIHRoZW0gYmFjayB0byBtYXRjaGVySW5cblx0XHRcdGkgPSB0ZW1wLmxlbmd0aDtcblx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRpZiAoIChlbGVtID0gdGVtcFtpXSkgKSB7XG5cdFx0XHRcdFx0bWF0Y2hlck91dFsgcG9zdE1hcFtpXSBdID0gIShtYXRjaGVySW5bIHBvc3RNYXBbaV0gXSA9IGVsZW0pO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKCBzZWVkICkge1xuXHRcdFx0aWYgKCBwb3N0RmluZGVyIHx8IHByZUZpbHRlciApIHtcblx0XHRcdFx0aWYgKCBwb3N0RmluZGVyICkge1xuXHRcdFx0XHRcdC8vIEdldCB0aGUgZmluYWwgbWF0Y2hlck91dCBieSBjb25kZW5zaW5nIHRoaXMgaW50ZXJtZWRpYXRlIGludG8gcG9zdEZpbmRlciBjb250ZXh0c1xuXHRcdFx0XHRcdHRlbXAgPSBbXTtcblx0XHRcdFx0XHRpID0gbWF0Y2hlck91dC5sZW5ndGg7XG5cdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRpZiAoIChlbGVtID0gbWF0Y2hlck91dFtpXSkgKSB7XG5cdFx0XHRcdFx0XHRcdC8vIFJlc3RvcmUgbWF0Y2hlckluIHNpbmNlIGVsZW0gaXMgbm90IHlldCBhIGZpbmFsIG1hdGNoXG5cdFx0XHRcdFx0XHRcdHRlbXAucHVzaCggKG1hdGNoZXJJbltpXSA9IGVsZW0pICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHBvc3RGaW5kZXIoIG51bGwsIChtYXRjaGVyT3V0ID0gW10pLCB0ZW1wLCB4bWwgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIE1vdmUgbWF0Y2hlZCBlbGVtZW50cyBmcm9tIHNlZWQgdG8gcmVzdWx0cyB0byBrZWVwIHRoZW0gc3luY2hyb25pemVkXG5cdFx0XHRcdGkgPSBtYXRjaGVyT3V0Lmxlbmd0aDtcblx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0aWYgKCAoZWxlbSA9IG1hdGNoZXJPdXRbaV0pICYmXG5cdFx0XHRcdFx0XHQodGVtcCA9IHBvc3RGaW5kZXIgPyBpbmRleE9mKCBzZWVkLCBlbGVtICkgOiBwcmVNYXBbaV0pID4gLTEgKSB7XG5cblx0XHRcdFx0XHRcdHNlZWRbdGVtcF0gPSAhKHJlc3VsdHNbdGVtcF0gPSBlbGVtKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdC8vIEFkZCBlbGVtZW50cyB0byByZXN1bHRzLCB0aHJvdWdoIHBvc3RGaW5kZXIgaWYgZGVmaW5lZFxuXHRcdH0gZWxzZSB7XG5cdFx0XHRtYXRjaGVyT3V0ID0gY29uZGVuc2UoXG5cdFx0XHRcdG1hdGNoZXJPdXQgPT09IHJlc3VsdHMgP1xuXHRcdFx0XHRcdG1hdGNoZXJPdXQuc3BsaWNlKCBwcmVleGlzdGluZywgbWF0Y2hlck91dC5sZW5ndGggKSA6XG5cdFx0XHRcdFx0bWF0Y2hlck91dFxuXHRcdFx0KTtcblx0XHRcdGlmICggcG9zdEZpbmRlciApIHtcblx0XHRcdFx0cG9zdEZpbmRlciggbnVsbCwgcmVzdWx0cywgbWF0Y2hlck91dCwgeG1sICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBtYXRjaGVyT3V0ICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9KTtcbn1cblxuZnVuY3Rpb24gbWF0Y2hlckZyb21Ub2tlbnMoIHRva2VucyApIHtcblx0dmFyIGNoZWNrQ29udGV4dCwgbWF0Y2hlciwgaixcblx0XHRsZW4gPSB0b2tlbnMubGVuZ3RoLFxuXHRcdGxlYWRpbmdSZWxhdGl2ZSA9IEV4cHIucmVsYXRpdmVbIHRva2Vuc1swXS50eXBlIF0sXG5cdFx0aW1wbGljaXRSZWxhdGl2ZSA9IGxlYWRpbmdSZWxhdGl2ZSB8fCBFeHByLnJlbGF0aXZlW1wiIFwiXSxcblx0XHRpID0gbGVhZGluZ1JlbGF0aXZlID8gMSA6IDAsXG5cblx0XHQvLyBUaGUgZm91bmRhdGlvbmFsIG1hdGNoZXIgZW5zdXJlcyB0aGF0IGVsZW1lbnRzIGFyZSByZWFjaGFibGUgZnJvbSB0b3AtbGV2ZWwgY29udGV4dChzKVxuXHRcdG1hdGNoQ29udGV4dCA9IGFkZENvbWJpbmF0b3IoIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0gPT09IGNoZWNrQ29udGV4dDtcblx0XHR9LCBpbXBsaWNpdFJlbGF0aXZlLCB0cnVlICksXG5cdFx0bWF0Y2hBbnlDb250ZXh0ID0gYWRkQ29tYmluYXRvciggZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gaW5kZXhPZiggY2hlY2tDb250ZXh0LCBlbGVtICkgPiAtMTtcblx0XHR9LCBpbXBsaWNpdFJlbGF0aXZlLCB0cnVlICksXG5cdFx0bWF0Y2hlcnMgPSBbIGZ1bmN0aW9uKCBlbGVtLCBjb250ZXh0LCB4bWwgKSB7XG5cdFx0XHR2YXIgcmV0ID0gKCAhbGVhZGluZ1JlbGF0aXZlICYmICggeG1sIHx8IGNvbnRleHQgIT09IG91dGVybW9zdENvbnRleHQgKSApIHx8IChcblx0XHRcdFx0KGNoZWNrQ29udGV4dCA9IGNvbnRleHQpLm5vZGVUeXBlID9cblx0XHRcdFx0XHRtYXRjaENvbnRleHQoIGVsZW0sIGNvbnRleHQsIHhtbCApIDpcblx0XHRcdFx0XHRtYXRjaEFueUNvbnRleHQoIGVsZW0sIGNvbnRleHQsIHhtbCApICk7XG5cdFx0XHQvLyBBdm9pZCBoYW5naW5nIG9udG8gZWxlbWVudCAoaXNzdWUgIzI5OSlcblx0XHRcdGNoZWNrQ29udGV4dCA9IG51bGw7XG5cdFx0XHRyZXR1cm4gcmV0O1xuXHRcdH0gXTtcblxuXHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRpZiAoIChtYXRjaGVyID0gRXhwci5yZWxhdGl2ZVsgdG9rZW5zW2ldLnR5cGUgXSkgKSB7XG5cdFx0XHRtYXRjaGVycyA9IFsgYWRkQ29tYmluYXRvcihlbGVtZW50TWF0Y2hlciggbWF0Y2hlcnMgKSwgbWF0Y2hlcikgXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0bWF0Y2hlciA9IEV4cHIuZmlsdGVyWyB0b2tlbnNbaV0udHlwZSBdLmFwcGx5KCBudWxsLCB0b2tlbnNbaV0ubWF0Y2hlcyApO1xuXG5cdFx0XHQvLyBSZXR1cm4gc3BlY2lhbCB1cG9uIHNlZWluZyBhIHBvc2l0aW9uYWwgbWF0Y2hlclxuXHRcdFx0aWYgKCBtYXRjaGVyWyBleHBhbmRvIF0gKSB7XG5cdFx0XHRcdC8vIEZpbmQgdGhlIG5leHQgcmVsYXRpdmUgb3BlcmF0b3IgKGlmIGFueSkgZm9yIHByb3BlciBoYW5kbGluZ1xuXHRcdFx0XHRqID0gKytpO1xuXHRcdFx0XHRmb3IgKCA7IGogPCBsZW47IGorKyApIHtcblx0XHRcdFx0XHRpZiAoIEV4cHIucmVsYXRpdmVbIHRva2Vuc1tqXS50eXBlIF0gKSB7XG5cdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHNldE1hdGNoZXIoXG5cdFx0XHRcdFx0aSA+IDEgJiYgZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICksXG5cdFx0XHRcdFx0aSA+IDEgJiYgdG9TZWxlY3Rvcihcblx0XHRcdFx0XHRcdC8vIElmIHRoZSBwcmVjZWRpbmcgdG9rZW4gd2FzIGEgZGVzY2VuZGFudCBjb21iaW5hdG9yLCBpbnNlcnQgYW4gaW1wbGljaXQgYW55LWVsZW1lbnQgYCpgXG5cdFx0XHRcdFx0XHR0b2tlbnMuc2xpY2UoIDAsIGkgLSAxICkuY29uY2F0KHsgdmFsdWU6IHRva2Vuc1sgaSAtIDIgXS50eXBlID09PSBcIiBcIiA/IFwiKlwiIDogXCJcIiB9KVxuXHRcdFx0XHRcdCkucmVwbGFjZSggcnRyaW0sIFwiJDFcIiApLFxuXHRcdFx0XHRcdG1hdGNoZXIsXG5cdFx0XHRcdFx0aSA8IGogJiYgbWF0Y2hlckZyb21Ub2tlbnMoIHRva2Vucy5zbGljZSggaSwgaiApICksXG5cdFx0XHRcdFx0aiA8IGxlbiAmJiBtYXRjaGVyRnJvbVRva2VucyggKHRva2VucyA9IHRva2Vucy5zbGljZSggaiApKSApLFxuXHRcdFx0XHRcdGogPCBsZW4gJiYgdG9TZWxlY3RvciggdG9rZW5zIClcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdG1hdGNoZXJzLnB1c2goIG1hdGNoZXIgKTtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gZWxlbWVudE1hdGNoZXIoIG1hdGNoZXJzICk7XG59XG5cbmZ1bmN0aW9uIG1hdGNoZXJGcm9tR3JvdXBNYXRjaGVycyggZWxlbWVudE1hdGNoZXJzLCBzZXRNYXRjaGVycyApIHtcblx0dmFyIGJ5U2V0ID0gc2V0TWF0Y2hlcnMubGVuZ3RoID4gMCxcblx0XHRieUVsZW1lbnQgPSBlbGVtZW50TWF0Y2hlcnMubGVuZ3RoID4gMCxcblx0XHRzdXBlck1hdGNoZXIgPSBmdW5jdGlvbiggc2VlZCwgY29udGV4dCwgeG1sLCByZXN1bHRzLCBvdXRlcm1vc3QgKSB7XG5cdFx0XHR2YXIgZWxlbSwgaiwgbWF0Y2hlcixcblx0XHRcdFx0bWF0Y2hlZENvdW50ID0gMCxcblx0XHRcdFx0aSA9IFwiMFwiLFxuXHRcdFx0XHR1bm1hdGNoZWQgPSBzZWVkICYmIFtdLFxuXHRcdFx0XHRzZXRNYXRjaGVkID0gW10sXG5cdFx0XHRcdGNvbnRleHRCYWNrdXAgPSBvdXRlcm1vc3RDb250ZXh0LFxuXHRcdFx0XHQvLyBXZSBtdXN0IGFsd2F5cyBoYXZlIGVpdGhlciBzZWVkIGVsZW1lbnRzIG9yIG91dGVybW9zdCBjb250ZXh0XG5cdFx0XHRcdGVsZW1zID0gc2VlZCB8fCBieUVsZW1lbnQgJiYgRXhwci5maW5kW1wiVEFHXCJdKCBcIipcIiwgb3V0ZXJtb3N0ICksXG5cdFx0XHRcdC8vIFVzZSBpbnRlZ2VyIGRpcnJ1bnMgaWZmIHRoaXMgaXMgdGhlIG91dGVybW9zdCBtYXRjaGVyXG5cdFx0XHRcdGRpcnJ1bnNVbmlxdWUgPSAoZGlycnVucyArPSBjb250ZXh0QmFja3VwID09IG51bGwgPyAxIDogTWF0aC5yYW5kb20oKSB8fCAwLjEpLFxuXHRcdFx0XHRsZW4gPSBlbGVtcy5sZW5ndGg7XG5cblx0XHRcdGlmICggb3V0ZXJtb3N0ICkge1xuXHRcdFx0XHRvdXRlcm1vc3RDb250ZXh0ID0gY29udGV4dCA9PT0gZG9jdW1lbnQgfHwgY29udGV4dCB8fCBvdXRlcm1vc3Q7XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCBlbGVtZW50cyBwYXNzaW5nIGVsZW1lbnRNYXRjaGVycyBkaXJlY3RseSB0byByZXN1bHRzXG5cdFx0XHQvLyBTdXBwb3J0OiBJRTw5LCBTYWZhcmlcblx0XHRcdC8vIFRvbGVyYXRlIE5vZGVMaXN0IHByb3BlcnRpZXMgKElFOiBcImxlbmd0aFwiOyBTYWZhcmk6IDxudW1iZXI+KSBtYXRjaGluZyBlbGVtZW50cyBieSBpZFxuXHRcdFx0Zm9yICggOyBpICE9PSBsZW4gJiYgKGVsZW0gPSBlbGVtc1tpXSkgIT0gbnVsbDsgaSsrICkge1xuXHRcdFx0XHRpZiAoIGJ5RWxlbWVudCAmJiBlbGVtICkge1xuXHRcdFx0XHRcdGogPSAwO1xuXHRcdFx0XHRcdGlmICggIWNvbnRleHQgJiYgZWxlbS5vd25lckRvY3VtZW50ICE9PSBkb2N1bWVudCApIHtcblx0XHRcdFx0XHRcdHNldERvY3VtZW50KCBlbGVtICk7XG5cdFx0XHRcdFx0XHR4bWwgPSAhZG9jdW1lbnRJc0hUTUw7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHdoaWxlICggKG1hdGNoZXIgPSBlbGVtZW50TWF0Y2hlcnNbaisrXSkgKSB7XG5cdFx0XHRcdFx0XHRpZiAoIG1hdGNoZXIoIGVsZW0sIGNvbnRleHQgfHwgZG9jdW1lbnQsIHhtbCkgKSB7XG5cdFx0XHRcdFx0XHRcdHJlc3VsdHMucHVzaCggZWxlbSApO1xuXHRcdFx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKCBvdXRlcm1vc3QgKSB7XG5cdFx0XHRcdFx0XHRkaXJydW5zID0gZGlycnVuc1VuaXF1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBUcmFjayB1bm1hdGNoZWQgZWxlbWVudHMgZm9yIHNldCBmaWx0ZXJzXG5cdFx0XHRcdGlmICggYnlTZXQgKSB7XG5cdFx0XHRcdFx0Ly8gVGhleSB3aWxsIGhhdmUgZ29uZSB0aHJvdWdoIGFsbCBwb3NzaWJsZSBtYXRjaGVyc1xuXHRcdFx0XHRcdGlmICggKGVsZW0gPSAhbWF0Y2hlciAmJiBlbGVtKSApIHtcblx0XHRcdFx0XHRcdG1hdGNoZWRDb3VudC0tO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIExlbmd0aGVuIHRoZSBhcnJheSBmb3IgZXZlcnkgZWxlbWVudCwgbWF0Y2hlZCBvciBub3Rcblx0XHRcdFx0XHRpZiAoIHNlZWQgKSB7XG5cdFx0XHRcdFx0XHR1bm1hdGNoZWQucHVzaCggZWxlbSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBgaWAgaXMgbm93IHRoZSBjb3VudCBvZiBlbGVtZW50cyB2aXNpdGVkIGFib3ZlLCBhbmQgYWRkaW5nIGl0IHRvIGBtYXRjaGVkQ291bnRgXG5cdFx0XHQvLyBtYWtlcyB0aGUgbGF0dGVyIG5vbm5lZ2F0aXZlLlxuXHRcdFx0bWF0Y2hlZENvdW50ICs9IGk7XG5cblx0XHRcdC8vIEFwcGx5IHNldCBmaWx0ZXJzIHRvIHVubWF0Y2hlZCBlbGVtZW50c1xuXHRcdFx0Ly8gTk9URTogVGhpcyBjYW4gYmUgc2tpcHBlZCBpZiB0aGVyZSBhcmUgbm8gdW5tYXRjaGVkIGVsZW1lbnRzIChpLmUuLCBgbWF0Y2hlZENvdW50YFxuXHRcdFx0Ly8gZXF1YWxzIGBpYCksIHVubGVzcyB3ZSBkaWRuJ3QgdmlzaXQgX2FueV8gZWxlbWVudHMgaW4gdGhlIGFib3ZlIGxvb3AgYmVjYXVzZSB3ZSBoYXZlXG5cdFx0XHQvLyBubyBlbGVtZW50IG1hdGNoZXJzIGFuZCBubyBzZWVkLlxuXHRcdFx0Ly8gSW5jcmVtZW50aW5nIGFuIGluaXRpYWxseS1zdHJpbmcgXCIwXCIgYGlgIGFsbG93cyBgaWAgdG8gcmVtYWluIGEgc3RyaW5nIG9ubHkgaW4gdGhhdFxuXHRcdFx0Ly8gY2FzZSwgd2hpY2ggd2lsbCByZXN1bHQgaW4gYSBcIjAwXCIgYG1hdGNoZWRDb3VudGAgdGhhdCBkaWZmZXJzIGZyb20gYGlgIGJ1dCBpcyBhbHNvXG5cdFx0XHQvLyBudW1lcmljYWxseSB6ZXJvLlxuXHRcdFx0aWYgKCBieVNldCAmJiBpICE9PSBtYXRjaGVkQ291bnQgKSB7XG5cdFx0XHRcdGogPSAwO1xuXHRcdFx0XHR3aGlsZSAoIChtYXRjaGVyID0gc2V0TWF0Y2hlcnNbaisrXSkgKSB7XG5cdFx0XHRcdFx0bWF0Y2hlciggdW5tYXRjaGVkLCBzZXRNYXRjaGVkLCBjb250ZXh0LCB4bWwgKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGlmICggc2VlZCApIHtcblx0XHRcdFx0XHQvLyBSZWludGVncmF0ZSBlbGVtZW50IG1hdGNoZXMgdG8gZWxpbWluYXRlIHRoZSBuZWVkIGZvciBzb3J0aW5nXG5cdFx0XHRcdFx0aWYgKCBtYXRjaGVkQ291bnQgPiAwICkge1xuXHRcdFx0XHRcdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRcdFx0XHRcdGlmICggISh1bm1hdGNoZWRbaV0gfHwgc2V0TWF0Y2hlZFtpXSkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0c2V0TWF0Y2hlZFtpXSA9IHBvcC5jYWxsKCByZXN1bHRzICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHQvLyBEaXNjYXJkIGluZGV4IHBsYWNlaG9sZGVyIHZhbHVlcyB0byBnZXQgb25seSBhY3R1YWwgbWF0Y2hlc1xuXHRcdFx0XHRcdHNldE1hdGNoZWQgPSBjb25kZW5zZSggc2V0TWF0Y2hlZCApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gQWRkIG1hdGNoZXMgdG8gcmVzdWx0c1xuXHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBzZXRNYXRjaGVkICk7XG5cblx0XHRcdFx0Ly8gU2VlZGxlc3Mgc2V0IG1hdGNoZXMgc3VjY2VlZGluZyBtdWx0aXBsZSBzdWNjZXNzZnVsIG1hdGNoZXJzIHN0aXB1bGF0ZSBzb3J0aW5nXG5cdFx0XHRcdGlmICggb3V0ZXJtb3N0ICYmICFzZWVkICYmIHNldE1hdGNoZWQubGVuZ3RoID4gMCAmJlxuXHRcdFx0XHRcdCggbWF0Y2hlZENvdW50ICsgc2V0TWF0Y2hlcnMubGVuZ3RoICkgPiAxICkge1xuXG5cdFx0XHRcdFx0U2l6emxlLnVuaXF1ZVNvcnQoIHJlc3VsdHMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBPdmVycmlkZSBtYW5pcHVsYXRpb24gb2YgZ2xvYmFscyBieSBuZXN0ZWQgbWF0Y2hlcnNcblx0XHRcdGlmICggb3V0ZXJtb3N0ICkge1xuXHRcdFx0XHRkaXJydW5zID0gZGlycnVuc1VuaXF1ZTtcblx0XHRcdFx0b3V0ZXJtb3N0Q29udGV4dCA9IGNvbnRleHRCYWNrdXA7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB1bm1hdGNoZWQ7XG5cdFx0fTtcblxuXHRyZXR1cm4gYnlTZXQgP1xuXHRcdG1hcmtGdW5jdGlvbiggc3VwZXJNYXRjaGVyICkgOlxuXHRcdHN1cGVyTWF0Y2hlcjtcbn1cblxuY29tcGlsZSA9IFNpenpsZS5jb21waWxlID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBtYXRjaCAvKiBJbnRlcm5hbCBVc2UgT25seSAqLyApIHtcblx0dmFyIGksXG5cdFx0c2V0TWF0Y2hlcnMgPSBbXSxcblx0XHRlbGVtZW50TWF0Y2hlcnMgPSBbXSxcblx0XHRjYWNoZWQgPSBjb21waWxlckNhY2hlWyBzZWxlY3RvciArIFwiIFwiIF07XG5cblx0aWYgKCAhY2FjaGVkICkge1xuXHRcdC8vIEdlbmVyYXRlIGEgZnVuY3Rpb24gb2YgcmVjdXJzaXZlIGZ1bmN0aW9ucyB0aGF0IGNhbiBiZSB1c2VkIHRvIGNoZWNrIGVhY2ggZWxlbWVudFxuXHRcdGlmICggIW1hdGNoICkge1xuXHRcdFx0bWF0Y2ggPSB0b2tlbml6ZSggc2VsZWN0b3IgKTtcblx0XHR9XG5cdFx0aSA9IG1hdGNoLmxlbmd0aDtcblx0XHR3aGlsZSAoIGktLSApIHtcblx0XHRcdGNhY2hlZCA9IG1hdGNoZXJGcm9tVG9rZW5zKCBtYXRjaFtpXSApO1xuXHRcdFx0aWYgKCBjYWNoZWRbIGV4cGFuZG8gXSApIHtcblx0XHRcdFx0c2V0TWF0Y2hlcnMucHVzaCggY2FjaGVkICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRlbGVtZW50TWF0Y2hlcnMucHVzaCggY2FjaGVkICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ2FjaGUgdGhlIGNvbXBpbGVkIGZ1bmN0aW9uXG5cdFx0Y2FjaGVkID0gY29tcGlsZXJDYWNoZSggc2VsZWN0b3IsIG1hdGNoZXJGcm9tR3JvdXBNYXRjaGVycyggZWxlbWVudE1hdGNoZXJzLCBzZXRNYXRjaGVycyApICk7XG5cblx0XHQvLyBTYXZlIHNlbGVjdG9yIGFuZCB0b2tlbml6YXRpb25cblx0XHRjYWNoZWQuc2VsZWN0b3IgPSBzZWxlY3Rvcjtcblx0fVxuXHRyZXR1cm4gY2FjaGVkO1xufTtcblxuLyoqXG4gKiBBIGxvdy1sZXZlbCBzZWxlY3Rpb24gZnVuY3Rpb24gdGhhdCB3b3JrcyB3aXRoIFNpenpsZSdzIGNvbXBpbGVkXG4gKiAgc2VsZWN0b3IgZnVuY3Rpb25zXG4gKiBAcGFyYW0ge1N0cmluZ3xGdW5jdGlvbn0gc2VsZWN0b3IgQSBzZWxlY3RvciBvciBhIHByZS1jb21waWxlZFxuICogIHNlbGVjdG9yIGZ1bmN0aW9uIGJ1aWx0IHdpdGggU2l6emxlLmNvbXBpbGVcbiAqIEBwYXJhbSB7RWxlbWVudH0gY29udGV4dFxuICogQHBhcmFtIHtBcnJheX0gW3Jlc3VsdHNdXG4gKiBAcGFyYW0ge0FycmF5fSBbc2VlZF0gQSBzZXQgb2YgZWxlbWVudHMgdG8gbWF0Y2ggYWdhaW5zdFxuICovXG5zZWxlY3QgPSBTaXp6bGUuc2VsZWN0ID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByZXN1bHRzLCBzZWVkICkge1xuXHR2YXIgaSwgdG9rZW5zLCB0b2tlbiwgdHlwZSwgZmluZCxcblx0XHRjb21waWxlZCA9IHR5cGVvZiBzZWxlY3RvciA9PT0gXCJmdW5jdGlvblwiICYmIHNlbGVjdG9yLFxuXHRcdG1hdGNoID0gIXNlZWQgJiYgdG9rZW5pemUoIChzZWxlY3RvciA9IGNvbXBpbGVkLnNlbGVjdG9yIHx8IHNlbGVjdG9yKSApO1xuXG5cdHJlc3VsdHMgPSByZXN1bHRzIHx8IFtdO1xuXG5cdC8vIFRyeSB0byBtaW5pbWl6ZSBvcGVyYXRpb25zIGlmIHRoZXJlIGlzIG9ubHkgb25lIHNlbGVjdG9yIGluIHRoZSBsaXN0IGFuZCBubyBzZWVkXG5cdC8vICh0aGUgbGF0dGVyIG9mIHdoaWNoIGd1YXJhbnRlZXMgdXMgY29udGV4dClcblx0aWYgKCBtYXRjaC5sZW5ndGggPT09IDEgKSB7XG5cblx0XHQvLyBSZWR1Y2UgY29udGV4dCBpZiB0aGUgbGVhZGluZyBjb21wb3VuZCBzZWxlY3RvciBpcyBhbiBJRFxuXHRcdHRva2VucyA9IG1hdGNoWzBdID0gbWF0Y2hbMF0uc2xpY2UoIDAgKTtcblx0XHRpZiAoIHRva2Vucy5sZW5ndGggPiAyICYmICh0b2tlbiA9IHRva2Vuc1swXSkudHlwZSA9PT0gXCJJRFwiICYmXG5cdFx0XHRcdGNvbnRleHQubm9kZVR5cGUgPT09IDkgJiYgZG9jdW1lbnRJc0hUTUwgJiYgRXhwci5yZWxhdGl2ZVsgdG9rZW5zWzFdLnR5cGUgXSApIHtcblxuXHRcdFx0Y29udGV4dCA9ICggRXhwci5maW5kW1wiSURcIl0oIHRva2VuLm1hdGNoZXNbMF0ucmVwbGFjZShydW5lc2NhcGUsIGZ1bmVzY2FwZSksIGNvbnRleHQgKSB8fCBbXSApWzBdO1xuXHRcdFx0aWYgKCAhY29udGV4dCApIHtcblx0XHRcdFx0cmV0dXJuIHJlc3VsdHM7XG5cblx0XHRcdC8vIFByZWNvbXBpbGVkIG1hdGNoZXJzIHdpbGwgc3RpbGwgdmVyaWZ5IGFuY2VzdHJ5LCBzbyBzdGVwIHVwIGEgbGV2ZWxcblx0XHRcdH0gZWxzZSBpZiAoIGNvbXBpbGVkICkge1xuXHRcdFx0XHRjb250ZXh0ID0gY29udGV4dC5wYXJlbnROb2RlO1xuXHRcdFx0fVxuXG5cdFx0XHRzZWxlY3RvciA9IHNlbGVjdG9yLnNsaWNlKCB0b2tlbnMuc2hpZnQoKS52YWx1ZS5sZW5ndGggKTtcblx0XHR9XG5cblx0XHQvLyBGZXRjaCBhIHNlZWQgc2V0IGZvciByaWdodC10by1sZWZ0IG1hdGNoaW5nXG5cdFx0aSA9IG1hdGNoRXhwcltcIm5lZWRzQ29udGV4dFwiXS50ZXN0KCBzZWxlY3RvciApID8gMCA6IHRva2Vucy5sZW5ndGg7XG5cdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHR0b2tlbiA9IHRva2Vuc1tpXTtcblxuXHRcdFx0Ly8gQWJvcnQgaWYgd2UgaGl0IGEgY29tYmluYXRvclxuXHRcdFx0aWYgKCBFeHByLnJlbGF0aXZlWyAodHlwZSA9IHRva2VuLnR5cGUpIF0gKSB7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCAoZmluZCA9IEV4cHIuZmluZFsgdHlwZSBdKSApIHtcblx0XHRcdFx0Ly8gU2VhcmNoLCBleHBhbmRpbmcgY29udGV4dCBmb3IgbGVhZGluZyBzaWJsaW5nIGNvbWJpbmF0b3JzXG5cdFx0XHRcdGlmICggKHNlZWQgPSBmaW5kKFxuXHRcdFx0XHRcdHRva2VuLm1hdGNoZXNbMF0ucmVwbGFjZSggcnVuZXNjYXBlLCBmdW5lc2NhcGUgKSxcblx0XHRcdFx0XHRyc2libGluZy50ZXN0KCB0b2tlbnNbMF0udHlwZSApICYmIHRlc3RDb250ZXh0KCBjb250ZXh0LnBhcmVudE5vZGUgKSB8fCBjb250ZXh0XG5cdFx0XHRcdCkpICkge1xuXG5cdFx0XHRcdFx0Ly8gSWYgc2VlZCBpcyBlbXB0eSBvciBubyB0b2tlbnMgcmVtYWluLCB3ZSBjYW4gcmV0dXJuIGVhcmx5XG5cdFx0XHRcdFx0dG9rZW5zLnNwbGljZSggaSwgMSApO1xuXHRcdFx0XHRcdHNlbGVjdG9yID0gc2VlZC5sZW5ndGggJiYgdG9TZWxlY3RvciggdG9rZW5zICk7XG5cdFx0XHRcdFx0aWYgKCAhc2VsZWN0b3IgKSB7XG5cdFx0XHRcdFx0XHRwdXNoLmFwcGx5KCByZXN1bHRzLCBzZWVkICk7XG5cdFx0XHRcdFx0XHRyZXR1cm4gcmVzdWx0cztcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIENvbXBpbGUgYW5kIGV4ZWN1dGUgYSBmaWx0ZXJpbmcgZnVuY3Rpb24gaWYgb25lIGlzIG5vdCBwcm92aWRlZFxuXHQvLyBQcm92aWRlIGBtYXRjaGAgdG8gYXZvaWQgcmV0b2tlbml6YXRpb24gaWYgd2UgbW9kaWZpZWQgdGhlIHNlbGVjdG9yIGFib3ZlXG5cdCggY29tcGlsZWQgfHwgY29tcGlsZSggc2VsZWN0b3IsIG1hdGNoICkgKShcblx0XHRzZWVkLFxuXHRcdGNvbnRleHQsXG5cdFx0IWRvY3VtZW50SXNIVE1MLFxuXHRcdHJlc3VsdHMsXG5cdFx0IWNvbnRleHQgfHwgcnNpYmxpbmcudGVzdCggc2VsZWN0b3IgKSAmJiB0ZXN0Q29udGV4dCggY29udGV4dC5wYXJlbnROb2RlICkgfHwgY29udGV4dFxuXHQpO1xuXHRyZXR1cm4gcmVzdWx0cztcbn07XG5cbi8vIE9uZS10aW1lIGFzc2lnbm1lbnRzXG5cbi8vIFNvcnQgc3RhYmlsaXR5XG5zdXBwb3J0LnNvcnRTdGFibGUgPSBleHBhbmRvLnNwbGl0KFwiXCIpLnNvcnQoIHNvcnRPcmRlciApLmpvaW4oXCJcIikgPT09IGV4cGFuZG87XG5cbi8vIFN1cHBvcnQ6IENocm9tZSAxNC0zNStcbi8vIEFsd2F5cyBhc3N1bWUgZHVwbGljYXRlcyBpZiB0aGV5IGFyZW4ndCBwYXNzZWQgdG8gdGhlIGNvbXBhcmlzb24gZnVuY3Rpb25cbnN1cHBvcnQuZGV0ZWN0RHVwbGljYXRlcyA9ICEhaGFzRHVwbGljYXRlO1xuXG4vLyBJbml0aWFsaXplIGFnYWluc3QgdGhlIGRlZmF1bHQgZG9jdW1lbnRcbnNldERvY3VtZW50KCk7XG5cbi8vIFN1cHBvcnQ6IFdlYmtpdDw1MzcuMzIgLSBTYWZhcmkgNi4wLjMvQ2hyb21lIDI1IChmaXhlZCBpbiBDaHJvbWUgMjcpXG4vLyBEZXRhY2hlZCBub2RlcyBjb25mb3VuZGluZ2x5IGZvbGxvdyAqZWFjaCBvdGhlcipcbnN1cHBvcnQuc29ydERldGFjaGVkID0gYXNzZXJ0KGZ1bmN0aW9uKCBlbCApIHtcblx0Ly8gU2hvdWxkIHJldHVybiAxLCBidXQgcmV0dXJucyA0IChmb2xsb3dpbmcpXG5cdHJldHVybiBlbC5jb21wYXJlRG9jdW1lbnRQb3NpdGlvbiggZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImZpZWxkc2V0XCIpICkgJiAxO1xufSk7XG5cbi8vIFN1cHBvcnQ6IElFPDhcbi8vIFByZXZlbnQgYXR0cmlidXRlL3Byb3BlcnR5IFwiaW50ZXJwb2xhdGlvblwiXG4vLyBodHRwczovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21zNTM2NDI5JTI4VlMuODUlMjkuYXNweFxuaWYgKCAhYXNzZXJ0KGZ1bmN0aW9uKCBlbCApIHtcblx0ZWwuaW5uZXJIVE1MID0gXCI8YSBocmVmPScjJz48L2E+XCI7XG5cdHJldHVybiBlbC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZShcImhyZWZcIikgPT09IFwiI1wiIDtcbn0pICkge1xuXHRhZGRIYW5kbGUoIFwidHlwZXxocmVmfGhlaWdodHx3aWR0aFwiLCBmdW5jdGlvbiggZWxlbSwgbmFtZSwgaXNYTUwgKSB7XG5cdFx0aWYgKCAhaXNYTUwgKSB7XG5cdFx0XHRyZXR1cm4gZWxlbS5nZXRBdHRyaWJ1dGUoIG5hbWUsIG5hbWUudG9Mb3dlckNhc2UoKSA9PT0gXCJ0eXBlXCIgPyAxIDogMiApO1xuXHRcdH1cblx0fSk7XG59XG5cbi8vIFN1cHBvcnQ6IElFPDlcbi8vIFVzZSBkZWZhdWx0VmFsdWUgaW4gcGxhY2Ugb2YgZ2V0QXR0cmlidXRlKFwidmFsdWVcIilcbmlmICggIXN1cHBvcnQuYXR0cmlidXRlcyB8fCAhYXNzZXJ0KGZ1bmN0aW9uKCBlbCApIHtcblx0ZWwuaW5uZXJIVE1MID0gXCI8aW5wdXQvPlwiO1xuXHRlbC5maXJzdENoaWxkLnNldEF0dHJpYnV0ZSggXCJ2YWx1ZVwiLCBcIlwiICk7XG5cdHJldHVybiBlbC5maXJzdENoaWxkLmdldEF0dHJpYnV0ZSggXCJ2YWx1ZVwiICkgPT09IFwiXCI7XG59KSApIHtcblx0YWRkSGFuZGxlKCBcInZhbHVlXCIsIGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHtcblx0XHRpZiAoICFpc1hNTCAmJiBlbGVtLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgPT09IFwiaW5wdXRcIiApIHtcblx0XHRcdHJldHVybiBlbGVtLmRlZmF1bHRWYWx1ZTtcblx0XHR9XG5cdH0pO1xufVxuXG4vLyBTdXBwb3J0OiBJRTw5XG4vLyBVc2UgZ2V0QXR0cmlidXRlTm9kZSB0byBmZXRjaCBib29sZWFucyB3aGVuIGdldEF0dHJpYnV0ZSBsaWVzXG5pZiAoICFhc3NlcnQoZnVuY3Rpb24oIGVsICkge1xuXHRyZXR1cm4gZWwuZ2V0QXR0cmlidXRlKFwiZGlzYWJsZWRcIikgPT0gbnVsbDtcbn0pICkge1xuXHRhZGRIYW5kbGUoIGJvb2xlYW5zLCBmdW5jdGlvbiggZWxlbSwgbmFtZSwgaXNYTUwgKSB7XG5cdFx0dmFyIHZhbDtcblx0XHRpZiAoICFpc1hNTCApIHtcblx0XHRcdHJldHVybiBlbGVtWyBuYW1lIF0gPT09IHRydWUgPyBuYW1lLnRvTG93ZXJDYXNlKCkgOlxuXHRcdFx0XHRcdCh2YWwgPSBlbGVtLmdldEF0dHJpYnV0ZU5vZGUoIG5hbWUgKSkgJiYgdmFsLnNwZWNpZmllZCA/XG5cdFx0XHRcdFx0dmFsLnZhbHVlIDpcblx0XHRcdFx0bnVsbDtcblx0XHR9XG5cdH0pO1xufVxuXG5yZXR1cm4gU2l6emxlO1xuXG59KSggd2luZG93ICk7XG5cblxuXG5qUXVlcnkuZmluZCA9IFNpenpsZTtcbmpRdWVyeS5leHByID0gU2l6emxlLnNlbGVjdG9ycztcblxuLy8gRGVwcmVjYXRlZFxualF1ZXJ5LmV4cHJbIFwiOlwiIF0gPSBqUXVlcnkuZXhwci5wc2V1ZG9zO1xualF1ZXJ5LnVuaXF1ZVNvcnQgPSBqUXVlcnkudW5pcXVlID0gU2l6emxlLnVuaXF1ZVNvcnQ7XG5qUXVlcnkudGV4dCA9IFNpenpsZS5nZXRUZXh0O1xualF1ZXJ5LmlzWE1MRG9jID0gU2l6emxlLmlzWE1MO1xualF1ZXJ5LmNvbnRhaW5zID0gU2l6emxlLmNvbnRhaW5zO1xualF1ZXJ5LmVzY2FwZVNlbGVjdG9yID0gU2l6emxlLmVzY2FwZTtcblxuXG5cblxudmFyIGRpciA9IGZ1bmN0aW9uKCBlbGVtLCBkaXIsIHVudGlsICkge1xuXHR2YXIgbWF0Y2hlZCA9IFtdLFxuXHRcdHRydW5jYXRlID0gdW50aWwgIT09IHVuZGVmaW5lZDtcblxuXHR3aGlsZSAoICggZWxlbSA9IGVsZW1bIGRpciBdICkgJiYgZWxlbS5ub2RlVHlwZSAhPT0gOSApIHtcblx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cdFx0XHRpZiAoIHRydW5jYXRlICYmIGpRdWVyeSggZWxlbSApLmlzKCB1bnRpbCApICkge1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdG1hdGNoZWQucHVzaCggZWxlbSApO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gbWF0Y2hlZDtcbn07XG5cblxudmFyIHNpYmxpbmdzID0gZnVuY3Rpb24oIG4sIGVsZW0gKSB7XG5cdHZhciBtYXRjaGVkID0gW107XG5cblx0Zm9yICggOyBuOyBuID0gbi5uZXh0U2libGluZyApIHtcblx0XHRpZiAoIG4ubm9kZVR5cGUgPT09IDEgJiYgbiAhPT0gZWxlbSApIHtcblx0XHRcdG1hdGNoZWQucHVzaCggbiApO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBtYXRjaGVkO1xufTtcblxuXG52YXIgcm5lZWRzQ29udGV4dCA9IGpRdWVyeS5leHByLm1hdGNoLm5lZWRzQ29udGV4dDtcblxuXG5cbmZ1bmN0aW9uIG5vZGVOYW1lKCBlbGVtLCBuYW1lICkge1xuXG4gIHJldHVybiBlbGVtLm5vZGVOYW1lICYmIGVsZW0ubm9kZU5hbWUudG9Mb3dlckNhc2UoKSA9PT0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXG59O1xudmFyIHJzaW5nbGVUYWcgPSAoIC9ePChbYS16XVteXFwvXFwwPjpcXHgyMFxcdFxcclxcblxcZl0qKVtcXHgyMFxcdFxcclxcblxcZl0qXFwvPz4oPzo8XFwvXFwxPnwpJC9pICk7XG5cblxuXG4vLyBJbXBsZW1lbnQgdGhlIGlkZW50aWNhbCBmdW5jdGlvbmFsaXR5IGZvciBmaWx0ZXIgYW5kIG5vdFxuZnVuY3Rpb24gd2lubm93KCBlbGVtZW50cywgcXVhbGlmaWVyLCBub3QgKSB7XG5cdGlmICggaXNGdW5jdGlvbiggcXVhbGlmaWVyICkgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0sIGkgKSB7XG5cdFx0XHRyZXR1cm4gISFxdWFsaWZpZXIuY2FsbCggZWxlbSwgaSwgZWxlbSApICE9PSBub3Q7XG5cdFx0fSApO1xuXHR9XG5cblx0Ly8gU2luZ2xlIGVsZW1lbnRcblx0aWYgKCBxdWFsaWZpZXIubm9kZVR5cGUgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gKCBlbGVtID09PSBxdWFsaWZpZXIgKSAhPT0gbm90O1xuXHRcdH0gKTtcblx0fVxuXG5cdC8vIEFycmF5bGlrZSBvZiBlbGVtZW50cyAoalF1ZXJ5LCBhcmd1bWVudHMsIEFycmF5KVxuXHRpZiAoIHR5cGVvZiBxdWFsaWZpZXIgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5ncmVwKCBlbGVtZW50cywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0XHRyZXR1cm4gKCBpbmRleE9mLmNhbGwoIHF1YWxpZmllciwgZWxlbSApID4gLTEgKSAhPT0gbm90O1xuXHRcdH0gKTtcblx0fVxuXG5cdC8vIEZpbHRlcmVkIGRpcmVjdGx5IGZvciBib3RoIHNpbXBsZSBhbmQgY29tcGxleCBzZWxlY3RvcnNcblx0cmV0dXJuIGpRdWVyeS5maWx0ZXIoIHF1YWxpZmllciwgZWxlbWVudHMsIG5vdCApO1xufVxuXG5qUXVlcnkuZmlsdGVyID0gZnVuY3Rpb24oIGV4cHIsIGVsZW1zLCBub3QgKSB7XG5cdHZhciBlbGVtID0gZWxlbXNbIDAgXTtcblxuXHRpZiAoIG5vdCApIHtcblx0XHRleHByID0gXCI6bm90KFwiICsgZXhwciArIFwiKVwiO1xuXHR9XG5cblx0aWYgKCBlbGVtcy5sZW5ndGggPT09IDEgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKCBlbGVtLCBleHByICkgPyBbIGVsZW0gXSA6IFtdO1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeS5maW5kLm1hdGNoZXMoIGV4cHIsIGpRdWVyeS5ncmVwKCBlbGVtcywgZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGVsZW0ubm9kZVR5cGUgPT09IDE7XG5cdH0gKSApO1xufTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRmaW5kOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0dmFyIGksIHJldCxcblx0XHRcdGxlbiA9IHRoaXMubGVuZ3RoLFxuXHRcdFx0c2VsZiA9IHRoaXM7XG5cblx0XHRpZiAoIHR5cGVvZiBzZWxlY3RvciAhPT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggalF1ZXJ5KCBzZWxlY3RvciApLmZpbHRlciggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGZvciAoIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRcdFx0aWYgKCBqUXVlcnkuY29udGFpbnMoIHNlbGZbIGkgXSwgdGhpcyApICkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9ICkgKTtcblx0XHR9XG5cblx0XHRyZXQgPSB0aGlzLnB1c2hTdGFjayggW10gKTtcblxuXHRcdGZvciAoIGkgPSAwOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRqUXVlcnkuZmluZCggc2VsZWN0b3IsIHNlbGZbIGkgXSwgcmV0ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGxlbiA+IDEgPyBqUXVlcnkudW5pcXVlU29ydCggcmV0ICkgOiByZXQ7XG5cdH0sXG5cdGZpbHRlcjogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggd2lubm93KCB0aGlzLCBzZWxlY3RvciB8fCBbXSwgZmFsc2UgKSApO1xuXHR9LFxuXHRub3Q6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHdpbm5vdyggdGhpcywgc2VsZWN0b3IgfHwgW10sIHRydWUgKSApO1xuXHR9LFxuXHRpczogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiAhIXdpbm5vdyhcblx0XHRcdHRoaXMsXG5cblx0XHRcdC8vIElmIHRoaXMgaXMgYSBwb3NpdGlvbmFsL3JlbGF0aXZlIHNlbGVjdG9yLCBjaGVjayBtZW1iZXJzaGlwIGluIHRoZSByZXR1cm5lZCBzZXRcblx0XHRcdC8vIHNvICQoXCJwOmZpcnN0XCIpLmlzKFwicDpsYXN0XCIpIHdvbid0IHJldHVybiB0cnVlIGZvciBhIGRvYyB3aXRoIHR3byBcInBcIi5cblx0XHRcdHR5cGVvZiBzZWxlY3RvciA9PT0gXCJzdHJpbmdcIiAmJiBybmVlZHNDb250ZXh0LnRlc3QoIHNlbGVjdG9yICkgP1xuXHRcdFx0XHRqUXVlcnkoIHNlbGVjdG9yICkgOlxuXHRcdFx0XHRzZWxlY3RvciB8fCBbXSxcblx0XHRcdGZhbHNlXG5cdFx0KS5sZW5ndGg7XG5cdH1cbn0gKTtcblxuXG4vLyBJbml0aWFsaXplIGEgalF1ZXJ5IG9iamVjdFxuXG5cbi8vIEEgY2VudHJhbCByZWZlcmVuY2UgdG8gdGhlIHJvb3QgalF1ZXJ5KGRvY3VtZW50KVxudmFyIHJvb3RqUXVlcnksXG5cblx0Ly8gQSBzaW1wbGUgd2F5IHRvIGNoZWNrIGZvciBIVE1MIHN0cmluZ3Ncblx0Ly8gUHJpb3JpdGl6ZSAjaWQgb3ZlciA8dGFnPiB0byBhdm9pZCBYU1MgdmlhIGxvY2F0aW9uLmhhc2ggKCM5NTIxKVxuXHQvLyBTdHJpY3QgSFRNTCByZWNvZ25pdGlvbiAoIzExMjkwOiBtdXN0IHN0YXJ0IHdpdGggPClcblx0Ly8gU2hvcnRjdXQgc2ltcGxlICNpZCBjYXNlIGZvciBzcGVlZFxuXHRycXVpY2tFeHByID0gL14oPzpcXHMqKDxbXFx3XFxXXSs+KVtePl0qfCMoW1xcdy1dKykpJC8sXG5cblx0aW5pdCA9IGpRdWVyeS5mbi5pbml0ID0gZnVuY3Rpb24oIHNlbGVjdG9yLCBjb250ZXh0LCByb290ICkge1xuXHRcdHZhciBtYXRjaCwgZWxlbTtcblxuXHRcdC8vIEhBTkRMRTogJChcIlwiKSwgJChudWxsKSwgJCh1bmRlZmluZWQpLCAkKGZhbHNlKVxuXHRcdGlmICggIXNlbGVjdG9yICkge1xuXHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0fVxuXG5cdFx0Ly8gTWV0aG9kIGluaXQoKSBhY2NlcHRzIGFuIGFsdGVybmF0ZSByb290alF1ZXJ5XG5cdFx0Ly8gc28gbWlncmF0ZSBjYW4gc3VwcG9ydCBqUXVlcnkuc3ViIChnaC0yMTAxKVxuXHRcdHJvb3QgPSByb290IHx8IHJvb3RqUXVlcnk7XG5cblx0XHQvLyBIYW5kbGUgSFRNTCBzdHJpbmdzXG5cdFx0aWYgKCB0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRpZiAoIHNlbGVjdG9yWyAwIF0gPT09IFwiPFwiICYmXG5cdFx0XHRcdHNlbGVjdG9yWyBzZWxlY3Rvci5sZW5ndGggLSAxIF0gPT09IFwiPlwiICYmXG5cdFx0XHRcdHNlbGVjdG9yLmxlbmd0aCA+PSAzICkge1xuXG5cdFx0XHRcdC8vIEFzc3VtZSB0aGF0IHN0cmluZ3MgdGhhdCBzdGFydCBhbmQgZW5kIHdpdGggPD4gYXJlIEhUTUwgYW5kIHNraXAgdGhlIHJlZ2V4IGNoZWNrXG5cdFx0XHRcdG1hdGNoID0gWyBudWxsLCBzZWxlY3RvciwgbnVsbCBdO1xuXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRtYXRjaCA9IHJxdWlja0V4cHIuZXhlYyggc2VsZWN0b3IgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTWF0Y2ggaHRtbCBvciBtYWtlIHN1cmUgbm8gY29udGV4dCBpcyBzcGVjaWZpZWQgZm9yICNpZFxuXHRcdFx0aWYgKCBtYXRjaCAmJiAoIG1hdGNoWyAxIF0gfHwgIWNvbnRleHQgKSApIHtcblxuXHRcdFx0XHQvLyBIQU5ETEU6ICQoaHRtbCkgLT4gJChhcnJheSlcblx0XHRcdFx0aWYgKCBtYXRjaFsgMSBdICkge1xuXHRcdFx0XHRcdGNvbnRleHQgPSBjb250ZXh0IGluc3RhbmNlb2YgalF1ZXJ5ID8gY29udGV4dFsgMCBdIDogY29udGV4dDtcblxuXHRcdFx0XHRcdC8vIE9wdGlvbiB0byBydW4gc2NyaXB0cyBpcyB0cnVlIGZvciBiYWNrLWNvbXBhdFxuXHRcdFx0XHRcdC8vIEludGVudGlvbmFsbHkgbGV0IHRoZSBlcnJvciBiZSB0aHJvd24gaWYgcGFyc2VIVE1MIGlzIG5vdCBwcmVzZW50XG5cdFx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCB0aGlzLCBqUXVlcnkucGFyc2VIVE1MKFxuXHRcdFx0XHRcdFx0bWF0Y2hbIDEgXSxcblx0XHRcdFx0XHRcdGNvbnRleHQgJiYgY29udGV4dC5ub2RlVHlwZSA/IGNvbnRleHQub3duZXJEb2N1bWVudCB8fCBjb250ZXh0IDogZG9jdW1lbnQsXG5cdFx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0KSApO1xuXG5cdFx0XHRcdFx0Ly8gSEFORExFOiAkKGh0bWwsIHByb3BzKVxuXHRcdFx0XHRcdGlmICggcnNpbmdsZVRhZy50ZXN0KCBtYXRjaFsgMSBdICkgJiYgalF1ZXJ5LmlzUGxhaW5PYmplY3QoIGNvbnRleHQgKSApIHtcblx0XHRcdFx0XHRcdGZvciAoIG1hdGNoIGluIGNvbnRleHQgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gUHJvcGVydGllcyBvZiBjb250ZXh0IGFyZSBjYWxsZWQgYXMgbWV0aG9kcyBpZiBwb3NzaWJsZVxuXHRcdFx0XHRcdFx0XHRpZiAoIGlzRnVuY3Rpb24oIHRoaXNbIG1hdGNoIF0gKSApIHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzWyBtYXRjaCBdKCBjb250ZXh0WyBtYXRjaCBdICk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gLi4uYW5kIG90aGVyd2lzZSBzZXQgYXMgYXR0cmlidXRlc1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuYXR0ciggbWF0Y2gsIGNvbnRleHRbIG1hdGNoIF0gKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXG5cdFx0XHRcdC8vIEhBTkRMRTogJCgjaWQpXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZWxlbSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCBtYXRjaFsgMiBdICk7XG5cblx0XHRcdFx0XHRpZiAoIGVsZW0gKSB7XG5cblx0XHRcdFx0XHRcdC8vIEluamVjdCB0aGUgZWxlbWVudCBkaXJlY3RseSBpbnRvIHRoZSBqUXVlcnkgb2JqZWN0XG5cdFx0XHRcdFx0XHR0aGlzWyAwIF0gPSBlbGVtO1xuXHRcdFx0XHRcdFx0dGhpcy5sZW5ndGggPSAxO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fVxuXG5cdFx0XHQvLyBIQU5ETEU6ICQoZXhwciwgJCguLi4pKVxuXHRcdFx0fSBlbHNlIGlmICggIWNvbnRleHQgfHwgY29udGV4dC5qcXVlcnkgKSB7XG5cdFx0XHRcdHJldHVybiAoIGNvbnRleHQgfHwgcm9vdCApLmZpbmQoIHNlbGVjdG9yICk7XG5cblx0XHRcdC8vIEhBTkRMRTogJChleHByLCBjb250ZXh0KVxuXHRcdFx0Ly8gKHdoaWNoIGlzIGp1c3QgZXF1aXZhbGVudCB0bzogJChjb250ZXh0KS5maW5kKGV4cHIpXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRyZXR1cm4gdGhpcy5jb25zdHJ1Y3RvciggY29udGV4dCApLmZpbmQoIHNlbGVjdG9yICk7XG5cdFx0XHR9XG5cblx0XHQvLyBIQU5ETEU6ICQoRE9NRWxlbWVudClcblx0XHR9IGVsc2UgaWYgKCBzZWxlY3Rvci5ub2RlVHlwZSApIHtcblx0XHRcdHRoaXNbIDAgXSA9IHNlbGVjdG9yO1xuXHRcdFx0dGhpcy5sZW5ndGggPSAxO1xuXHRcdFx0cmV0dXJuIHRoaXM7XG5cblx0XHQvLyBIQU5ETEU6ICQoZnVuY3Rpb24pXG5cdFx0Ly8gU2hvcnRjdXQgZm9yIGRvY3VtZW50IHJlYWR5XG5cdFx0fSBlbHNlIGlmICggaXNGdW5jdGlvbiggc2VsZWN0b3IgKSApIHtcblx0XHRcdHJldHVybiByb290LnJlYWR5ICE9PSB1bmRlZmluZWQgP1xuXHRcdFx0XHRyb290LnJlYWR5KCBzZWxlY3RvciApIDpcblxuXHRcdFx0XHQvLyBFeGVjdXRlIGltbWVkaWF0ZWx5IGlmIHJlYWR5IGlzIG5vdCBwcmVzZW50XG5cdFx0XHRcdHNlbGVjdG9yKCBqUXVlcnkgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4galF1ZXJ5Lm1ha2VBcnJheSggc2VsZWN0b3IsIHRoaXMgKTtcblx0fTtcblxuLy8gR2l2ZSB0aGUgaW5pdCBmdW5jdGlvbiB0aGUgalF1ZXJ5IHByb3RvdHlwZSBmb3IgbGF0ZXIgaW5zdGFudGlhdGlvblxuaW5pdC5wcm90b3R5cGUgPSBqUXVlcnkuZm47XG5cbi8vIEluaXRpYWxpemUgY2VudHJhbCByZWZlcmVuY2VcbnJvb3RqUXVlcnkgPSBqUXVlcnkoIGRvY3VtZW50ICk7XG5cblxudmFyIHJwYXJlbnRzcHJldiA9IC9eKD86cGFyZW50c3xwcmV2KD86VW50aWx8QWxsKSkvLFxuXG5cdC8vIE1ldGhvZHMgZ3VhcmFudGVlZCB0byBwcm9kdWNlIGEgdW5pcXVlIHNldCB3aGVuIHN0YXJ0aW5nIGZyb20gYSB1bmlxdWUgc2V0XG5cdGd1YXJhbnRlZWRVbmlxdWUgPSB7XG5cdFx0Y2hpbGRyZW46IHRydWUsXG5cdFx0Y29udGVudHM6IHRydWUsXG5cdFx0bmV4dDogdHJ1ZSxcblx0XHRwcmV2OiB0cnVlXG5cdH07XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0aGFzOiBmdW5jdGlvbiggdGFyZ2V0ICkge1xuXHRcdHZhciB0YXJnZXRzID0galF1ZXJ5KCB0YXJnZXQsIHRoaXMgKSxcblx0XHRcdGwgPSB0YXJnZXRzLmxlbmd0aDtcblxuXHRcdHJldHVybiB0aGlzLmZpbHRlciggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgaSA9IDA7XG5cdFx0XHRmb3IgKCA7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdGlmICggalF1ZXJ5LmNvbnRhaW5zKCB0aGlzLCB0YXJnZXRzWyBpIF0gKSApIHtcblx0XHRcdFx0XHRyZXR1cm4gdHJ1ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHRjbG9zZXN0OiBmdW5jdGlvbiggc2VsZWN0b3JzLCBjb250ZXh0ICkge1xuXHRcdHZhciBjdXIsXG5cdFx0XHRpID0gMCxcblx0XHRcdGwgPSB0aGlzLmxlbmd0aCxcblx0XHRcdG1hdGNoZWQgPSBbXSxcblx0XHRcdHRhcmdldHMgPSB0eXBlb2Ygc2VsZWN0b3JzICE9PSBcInN0cmluZ1wiICYmIGpRdWVyeSggc2VsZWN0b3JzICk7XG5cblx0XHQvLyBQb3NpdGlvbmFsIHNlbGVjdG9ycyBuZXZlciBtYXRjaCwgc2luY2UgdGhlcmUncyBubyBfc2VsZWN0aW9uXyBjb250ZXh0XG5cdFx0aWYgKCAhcm5lZWRzQ29udGV4dC50ZXN0KCBzZWxlY3RvcnMgKSApIHtcblx0XHRcdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0Zm9yICggY3VyID0gdGhpc1sgaSBdOyBjdXIgJiYgY3VyICE9PSBjb250ZXh0OyBjdXIgPSBjdXIucGFyZW50Tm9kZSApIHtcblxuXHRcdFx0XHRcdC8vIEFsd2F5cyBza2lwIGRvY3VtZW50IGZyYWdtZW50c1xuXHRcdFx0XHRcdGlmICggY3VyLm5vZGVUeXBlIDwgMTEgJiYgKCB0YXJnZXRzID9cblx0XHRcdFx0XHRcdHRhcmdldHMuaW5kZXgoIGN1ciApID4gLTEgOlxuXG5cdFx0XHRcdFx0XHQvLyBEb24ndCBwYXNzIG5vbi1lbGVtZW50cyB0byBTaXp6bGVcblx0XHRcdFx0XHRcdGN1ci5ub2RlVHlwZSA9PT0gMSAmJlxuXHRcdFx0XHRcdFx0XHRqUXVlcnkuZmluZC5tYXRjaGVzU2VsZWN0b3IoIGN1ciwgc2VsZWN0b3JzICkgKSApIHtcblxuXHRcdFx0XHRcdFx0bWF0Y2hlZC5wdXNoKCBjdXIgKTtcblx0XHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLnB1c2hTdGFjayggbWF0Y2hlZC5sZW5ndGggPiAxID8galF1ZXJ5LnVuaXF1ZVNvcnQoIG1hdGNoZWQgKSA6IG1hdGNoZWQgKTtcblx0fSxcblxuXHQvLyBEZXRlcm1pbmUgdGhlIHBvc2l0aW9uIG9mIGFuIGVsZW1lbnQgd2l0aGluIHRoZSBzZXRcblx0aW5kZXg6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0Ly8gTm8gYXJndW1lbnQsIHJldHVybiBpbmRleCBpbiBwYXJlbnRcblx0XHRpZiAoICFlbGVtICkge1xuXHRcdFx0cmV0dXJuICggdGhpc1sgMCBdICYmIHRoaXNbIDAgXS5wYXJlbnROb2RlICkgPyB0aGlzLmZpcnN0KCkucHJldkFsbCgpLmxlbmd0aCA6IC0xO1xuXHRcdH1cblxuXHRcdC8vIEluZGV4IGluIHNlbGVjdG9yXG5cdFx0aWYgKCB0eXBlb2YgZWxlbSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHJldHVybiBpbmRleE9mLmNhbGwoIGpRdWVyeSggZWxlbSApLCB0aGlzWyAwIF0gKTtcblx0XHR9XG5cblx0XHQvLyBMb2NhdGUgdGhlIHBvc2l0aW9uIG9mIHRoZSBkZXNpcmVkIGVsZW1lbnRcblx0XHRyZXR1cm4gaW5kZXhPZi5jYWxsKCB0aGlzLFxuXG5cdFx0XHQvLyBJZiBpdCByZWNlaXZlcyBhIGpRdWVyeSBvYmplY3QsIHRoZSBmaXJzdCBlbGVtZW50IGlzIHVzZWRcblx0XHRcdGVsZW0uanF1ZXJ5ID8gZWxlbVsgMCBdIDogZWxlbVxuXHRcdCk7XG5cdH0sXG5cblx0YWRkOiBmdW5jdGlvbiggc2VsZWN0b3IsIGNvbnRleHQgKSB7XG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKFxuXHRcdFx0alF1ZXJ5LnVuaXF1ZVNvcnQoXG5cdFx0XHRcdGpRdWVyeS5tZXJnZSggdGhpcy5nZXQoKSwgalF1ZXJ5KCBzZWxlY3RvciwgY29udGV4dCApIClcblx0XHRcdClcblx0XHQpO1xuXHR9LFxuXG5cdGFkZEJhY2s6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gdGhpcy5hZGQoIHNlbGVjdG9yID09IG51bGwgP1xuXHRcdFx0dGhpcy5wcmV2T2JqZWN0IDogdGhpcy5wcmV2T2JqZWN0LmZpbHRlciggc2VsZWN0b3IgKVxuXHRcdCk7XG5cdH1cbn0gKTtcblxuZnVuY3Rpb24gc2libGluZyggY3VyLCBkaXIgKSB7XG5cdHdoaWxlICggKCBjdXIgPSBjdXJbIGRpciBdICkgJiYgY3VyLm5vZGVUeXBlICE9PSAxICkge31cblx0cmV0dXJuIGN1cjtcbn1cblxualF1ZXJ5LmVhY2goIHtcblx0cGFyZW50OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHR2YXIgcGFyZW50ID0gZWxlbS5wYXJlbnROb2RlO1xuXHRcdHJldHVybiBwYXJlbnQgJiYgcGFyZW50Lm5vZGVUeXBlICE9PSAxMSA/IHBhcmVudCA6IG51bGw7XG5cdH0sXG5cdHBhcmVudHM6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBkaXIoIGVsZW0sIFwicGFyZW50Tm9kZVwiICk7XG5cdH0sXG5cdHBhcmVudHNVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkge1xuXHRcdHJldHVybiBkaXIoIGVsZW0sIFwicGFyZW50Tm9kZVwiLCB1bnRpbCApO1xuXHR9LFxuXHRuZXh0OiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gc2libGluZyggZWxlbSwgXCJuZXh0U2libGluZ1wiICk7XG5cdH0sXG5cdHByZXY6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBzaWJsaW5nKCBlbGVtLCBcInByZXZpb3VzU2libGluZ1wiICk7XG5cdH0sXG5cdG5leHRBbGw6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBkaXIoIGVsZW0sIFwibmV4dFNpYmxpbmdcIiApO1xuXHR9LFxuXHRwcmV2QWxsOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gZGlyKCBlbGVtLCBcInByZXZpb3VzU2libGluZ1wiICk7XG5cdH0sXG5cdG5leHRVbnRpbDogZnVuY3Rpb24oIGVsZW0sIGksIHVudGlsICkge1xuXHRcdHJldHVybiBkaXIoIGVsZW0sIFwibmV4dFNpYmxpbmdcIiwgdW50aWwgKTtcblx0fSxcblx0cHJldlVudGlsOiBmdW5jdGlvbiggZWxlbSwgaSwgdW50aWwgKSB7XG5cdFx0cmV0dXJuIGRpciggZWxlbSwgXCJwcmV2aW91c1NpYmxpbmdcIiwgdW50aWwgKTtcblx0fSxcblx0c2libGluZ3M6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdHJldHVybiBzaWJsaW5ncyggKCBlbGVtLnBhcmVudE5vZGUgfHwge30gKS5maXJzdENoaWxkLCBlbGVtICk7XG5cdH0sXG5cdGNoaWxkcmVuOiBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRyZXR1cm4gc2libGluZ3MoIGVsZW0uZmlyc3RDaGlsZCApO1xuXHR9LFxuXHRjb250ZW50czogZnVuY3Rpb24oIGVsZW0gKSB7XG4gICAgICAgIGlmICggbm9kZU5hbWUoIGVsZW0sIFwiaWZyYW1lXCIgKSApIHtcbiAgICAgICAgICAgIHJldHVybiBlbGVtLmNvbnRlbnREb2N1bWVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFN1cHBvcnQ6IElFIDkgLSAxMSBvbmx5LCBpT1MgNyBvbmx5LCBBbmRyb2lkIEJyb3dzZXIgPD00LjMgb25seVxuICAgICAgICAvLyBUcmVhdCB0aGUgdGVtcGxhdGUgZWxlbWVudCBhcyBhIHJlZ3VsYXIgb25lIGluIGJyb3dzZXJzIHRoYXRcbiAgICAgICAgLy8gZG9uJ3Qgc3VwcG9ydCBpdC5cbiAgICAgICAgaWYgKCBub2RlTmFtZSggZWxlbSwgXCJ0ZW1wbGF0ZVwiICkgKSB7XG4gICAgICAgICAgICBlbGVtID0gZWxlbS5jb250ZW50IHx8IGVsZW07XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4galF1ZXJ5Lm1lcmdlKCBbXSwgZWxlbS5jaGlsZE5vZGVzICk7XG5cdH1cbn0sIGZ1bmN0aW9uKCBuYW1lLCBmbiApIHtcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggdW50aWwsIHNlbGVjdG9yICkge1xuXHRcdHZhciBtYXRjaGVkID0galF1ZXJ5Lm1hcCggdGhpcywgZm4sIHVudGlsICk7XG5cblx0XHRpZiAoIG5hbWUuc2xpY2UoIC01ICkgIT09IFwiVW50aWxcIiApIHtcblx0XHRcdHNlbGVjdG9yID0gdW50aWw7XG5cdFx0fVxuXG5cdFx0aWYgKCBzZWxlY3RvciAmJiB0eXBlb2Ygc2VsZWN0b3IgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRtYXRjaGVkID0galF1ZXJ5LmZpbHRlciggc2VsZWN0b3IsIG1hdGNoZWQgKTtcblx0XHR9XG5cblx0XHRpZiAoIHRoaXMubGVuZ3RoID4gMSApIHtcblxuXHRcdFx0Ly8gUmVtb3ZlIGR1cGxpY2F0ZXNcblx0XHRcdGlmICggIWd1YXJhbnRlZWRVbmlxdWVbIG5hbWUgXSApIHtcblx0XHRcdFx0alF1ZXJ5LnVuaXF1ZVNvcnQoIG1hdGNoZWQgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmV2ZXJzZSBvcmRlciBmb3IgcGFyZW50cyogYW5kIHByZXYtZGVyaXZhdGl2ZXNcblx0XHRcdGlmICggcnBhcmVudHNwcmV2LnRlc3QoIG5hbWUgKSApIHtcblx0XHRcdFx0bWF0Y2hlZC5yZXZlcnNlKCk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMucHVzaFN0YWNrKCBtYXRjaGVkICk7XG5cdH07XG59ICk7XG52YXIgcm5vdGh0bWx3aGl0ZSA9ICggL1teXFx4MjBcXHRcXHJcXG5cXGZdKy9nICk7XG5cblxuXG4vLyBDb252ZXJ0IFN0cmluZy1mb3JtYXR0ZWQgb3B0aW9ucyBpbnRvIE9iamVjdC1mb3JtYXR0ZWQgb25lc1xuZnVuY3Rpb24gY3JlYXRlT3B0aW9ucyggb3B0aW9ucyApIHtcblx0dmFyIG9iamVjdCA9IHt9O1xuXHRqUXVlcnkuZWFjaCggb3B0aW9ucy5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFtdLCBmdW5jdGlvbiggXywgZmxhZyApIHtcblx0XHRvYmplY3RbIGZsYWcgXSA9IHRydWU7XG5cdH0gKTtcblx0cmV0dXJuIG9iamVjdDtcbn1cblxuLypcbiAqIENyZWF0ZSBhIGNhbGxiYWNrIGxpc3QgdXNpbmcgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzOlxuICpcbiAqXHRvcHRpb25zOiBhbiBvcHRpb25hbCBsaXN0IG9mIHNwYWNlLXNlcGFyYXRlZCBvcHRpb25zIHRoYXQgd2lsbCBjaGFuZ2UgaG93XG4gKlx0XHRcdHRoZSBjYWxsYmFjayBsaXN0IGJlaGF2ZXMgb3IgYSBtb3JlIHRyYWRpdGlvbmFsIG9wdGlvbiBvYmplY3RcbiAqXG4gKiBCeSBkZWZhdWx0IGEgY2FsbGJhY2sgbGlzdCB3aWxsIGFjdCBsaWtlIGFuIGV2ZW50IGNhbGxiYWNrIGxpc3QgYW5kIGNhbiBiZVxuICogXCJmaXJlZFwiIG11bHRpcGxlIHRpbWVzLlxuICpcbiAqIFBvc3NpYmxlIG9wdGlvbnM6XG4gKlxuICpcdG9uY2U6XHRcdFx0d2lsbCBlbnN1cmUgdGhlIGNhbGxiYWNrIGxpc3QgY2FuIG9ubHkgYmUgZmlyZWQgb25jZSAobGlrZSBhIERlZmVycmVkKVxuICpcbiAqXHRtZW1vcnk6XHRcdFx0d2lsbCBrZWVwIHRyYWNrIG9mIHByZXZpb3VzIHZhbHVlcyBhbmQgd2lsbCBjYWxsIGFueSBjYWxsYmFjayBhZGRlZFxuICpcdFx0XHRcdFx0YWZ0ZXIgdGhlIGxpc3QgaGFzIGJlZW4gZmlyZWQgcmlnaHQgYXdheSB3aXRoIHRoZSBsYXRlc3QgXCJtZW1vcml6ZWRcIlxuICpcdFx0XHRcdFx0dmFsdWVzIChsaWtlIGEgRGVmZXJyZWQpXG4gKlxuICpcdHVuaXF1ZTpcdFx0XHR3aWxsIGVuc3VyZSBhIGNhbGxiYWNrIGNhbiBvbmx5IGJlIGFkZGVkIG9uY2UgKG5vIGR1cGxpY2F0ZSBpbiB0aGUgbGlzdClcbiAqXG4gKlx0c3RvcE9uRmFsc2U6XHRpbnRlcnJ1cHQgY2FsbGluZ3Mgd2hlbiBhIGNhbGxiYWNrIHJldHVybnMgZmFsc2VcbiAqXG4gKi9cbmpRdWVyeS5DYWxsYmFja3MgPSBmdW5jdGlvbiggb3B0aW9ucyApIHtcblxuXHQvLyBDb252ZXJ0IG9wdGlvbnMgZnJvbSBTdHJpbmctZm9ybWF0dGVkIHRvIE9iamVjdC1mb3JtYXR0ZWQgaWYgbmVlZGVkXG5cdC8vICh3ZSBjaGVjayBpbiBjYWNoZSBmaXJzdClcblx0b3B0aW9ucyA9IHR5cGVvZiBvcHRpb25zID09PSBcInN0cmluZ1wiID9cblx0XHRjcmVhdGVPcHRpb25zKCBvcHRpb25zICkgOlxuXHRcdGpRdWVyeS5leHRlbmQoIHt9LCBvcHRpb25zICk7XG5cblx0dmFyIC8vIEZsYWcgdG8ga25vdyBpZiBsaXN0IGlzIGN1cnJlbnRseSBmaXJpbmdcblx0XHRmaXJpbmcsXG5cblx0XHQvLyBMYXN0IGZpcmUgdmFsdWUgZm9yIG5vbi1mb3JnZXR0YWJsZSBsaXN0c1xuXHRcdG1lbW9yeSxcblxuXHRcdC8vIEZsYWcgdG8ga25vdyBpZiBsaXN0IHdhcyBhbHJlYWR5IGZpcmVkXG5cdFx0ZmlyZWQsXG5cblx0XHQvLyBGbGFnIHRvIHByZXZlbnQgZmlyaW5nXG5cdFx0bG9ja2VkLFxuXG5cdFx0Ly8gQWN0dWFsIGNhbGxiYWNrIGxpc3Rcblx0XHRsaXN0ID0gW10sXG5cblx0XHQvLyBRdWV1ZSBvZiBleGVjdXRpb24gZGF0YSBmb3IgcmVwZWF0YWJsZSBsaXN0c1xuXHRcdHF1ZXVlID0gW10sXG5cblx0XHQvLyBJbmRleCBvZiBjdXJyZW50bHkgZmlyaW5nIGNhbGxiYWNrIChtb2RpZmllZCBieSBhZGQvcmVtb3ZlIGFzIG5lZWRlZClcblx0XHRmaXJpbmdJbmRleCA9IC0xLFxuXG5cdFx0Ly8gRmlyZSBjYWxsYmFja3Ncblx0XHRmaXJlID0gZnVuY3Rpb24oKSB7XG5cblx0XHRcdC8vIEVuZm9yY2Ugc2luZ2xlLWZpcmluZ1xuXHRcdFx0bG9ja2VkID0gbG9ja2VkIHx8IG9wdGlvbnMub25jZTtcblxuXHRcdFx0Ly8gRXhlY3V0ZSBjYWxsYmFja3MgZm9yIGFsbCBwZW5kaW5nIGV4ZWN1dGlvbnMsXG5cdFx0XHQvLyByZXNwZWN0aW5nIGZpcmluZ0luZGV4IG92ZXJyaWRlcyBhbmQgcnVudGltZSBjaGFuZ2VzXG5cdFx0XHRmaXJlZCA9IGZpcmluZyA9IHRydWU7XG5cdFx0XHRmb3IgKCA7IHF1ZXVlLmxlbmd0aDsgZmlyaW5nSW5kZXggPSAtMSApIHtcblx0XHRcdFx0bWVtb3J5ID0gcXVldWUuc2hpZnQoKTtcblx0XHRcdFx0d2hpbGUgKCArK2ZpcmluZ0luZGV4IDwgbGlzdC5sZW5ndGggKSB7XG5cblx0XHRcdFx0XHQvLyBSdW4gY2FsbGJhY2sgYW5kIGNoZWNrIGZvciBlYXJseSB0ZXJtaW5hdGlvblxuXHRcdFx0XHRcdGlmICggbGlzdFsgZmlyaW5nSW5kZXggXS5hcHBseSggbWVtb3J5WyAwIF0sIG1lbW9yeVsgMSBdICkgPT09IGZhbHNlICYmXG5cdFx0XHRcdFx0XHRvcHRpb25zLnN0b3BPbkZhbHNlICkge1xuXG5cdFx0XHRcdFx0XHQvLyBKdW1wIHRvIGVuZCBhbmQgZm9yZ2V0IHRoZSBkYXRhIHNvIC5hZGQgZG9lc24ndCByZS1maXJlXG5cdFx0XHRcdFx0XHRmaXJpbmdJbmRleCA9IGxpc3QubGVuZ3RoO1xuXHRcdFx0XHRcdFx0bWVtb3J5ID0gZmFsc2U7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIEZvcmdldCB0aGUgZGF0YSBpZiB3ZSdyZSBkb25lIHdpdGggaXRcblx0XHRcdGlmICggIW9wdGlvbnMubWVtb3J5ICkge1xuXHRcdFx0XHRtZW1vcnkgPSBmYWxzZTtcblx0XHRcdH1cblxuXHRcdFx0ZmlyaW5nID0gZmFsc2U7XG5cblx0XHRcdC8vIENsZWFuIHVwIGlmIHdlJ3JlIGRvbmUgZmlyaW5nIGZvciBnb29kXG5cdFx0XHRpZiAoIGxvY2tlZCApIHtcblxuXHRcdFx0XHQvLyBLZWVwIGFuIGVtcHR5IGxpc3QgaWYgd2UgaGF2ZSBkYXRhIGZvciBmdXR1cmUgYWRkIGNhbGxzXG5cdFx0XHRcdGlmICggbWVtb3J5ICkge1xuXHRcdFx0XHRcdGxpc3QgPSBbXTtcblxuXHRcdFx0XHQvLyBPdGhlcndpc2UsIHRoaXMgb2JqZWN0IGlzIHNwZW50XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0bGlzdCA9IFwiXCI7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0Ly8gQWN0dWFsIENhbGxiYWNrcyBvYmplY3Rcblx0XHRzZWxmID0ge1xuXG5cdFx0XHQvLyBBZGQgYSBjYWxsYmFjayBvciBhIGNvbGxlY3Rpb24gb2YgY2FsbGJhY2tzIHRvIHRoZSBsaXN0XG5cdFx0XHRhZGQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGxpc3QgKSB7XG5cblx0XHRcdFx0XHQvLyBJZiB3ZSBoYXZlIG1lbW9yeSBmcm9tIGEgcGFzdCBydW4sIHdlIHNob3VsZCBmaXJlIGFmdGVyIGFkZGluZ1xuXHRcdFx0XHRcdGlmICggbWVtb3J5ICYmICFmaXJpbmcgKSB7XG5cdFx0XHRcdFx0XHRmaXJpbmdJbmRleCA9IGxpc3QubGVuZ3RoIC0gMTtcblx0XHRcdFx0XHRcdHF1ZXVlLnB1c2goIG1lbW9yeSApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdCggZnVuY3Rpb24gYWRkKCBhcmdzICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5LmVhY2goIGFyZ3MsIGZ1bmN0aW9uKCBfLCBhcmcgKSB7XG5cdFx0XHRcdFx0XHRcdGlmICggaXNGdW5jdGlvbiggYXJnICkgKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKCAhb3B0aW9ucy51bmlxdWUgfHwgIXNlbGYuaGFzKCBhcmcgKSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGxpc3QucHVzaCggYXJnICk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9IGVsc2UgaWYgKCBhcmcgJiYgYXJnLmxlbmd0aCAmJiB0b1R5cGUoIGFyZyApICE9PSBcInN0cmluZ1wiICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gSW5zcGVjdCByZWN1cnNpdmVseVxuXHRcdFx0XHRcdFx0XHRcdGFkZCggYXJnICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gKTtcblx0XHRcdFx0XHR9ICkoIGFyZ3VtZW50cyApO1xuXG5cdFx0XHRcdFx0aWYgKCBtZW1vcnkgJiYgIWZpcmluZyApIHtcblx0XHRcdFx0XHRcdGZpcmUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBSZW1vdmUgYSBjYWxsYmFjayBmcm9tIHRoZSBsaXN0XG5cdFx0XHRyZW1vdmU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRqUXVlcnkuZWFjaCggYXJndW1lbnRzLCBmdW5jdGlvbiggXywgYXJnICkge1xuXHRcdFx0XHRcdHZhciBpbmRleDtcblx0XHRcdFx0XHR3aGlsZSAoICggaW5kZXggPSBqUXVlcnkuaW5BcnJheSggYXJnLCBsaXN0LCBpbmRleCApICkgPiAtMSApIHtcblx0XHRcdFx0XHRcdGxpc3Quc3BsaWNlKCBpbmRleCwgMSApO1xuXG5cdFx0XHRcdFx0XHQvLyBIYW5kbGUgZmlyaW5nIGluZGV4ZXNcblx0XHRcdFx0XHRcdGlmICggaW5kZXggPD0gZmlyaW5nSW5kZXggKSB7XG5cdFx0XHRcdFx0XHRcdGZpcmluZ0luZGV4LS07XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9ICk7XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gQ2hlY2sgaWYgYSBnaXZlbiBjYWxsYmFjayBpcyBpbiB0aGUgbGlzdC5cblx0XHRcdC8vIElmIG5vIGFyZ3VtZW50IGlzIGdpdmVuLCByZXR1cm4gd2hldGhlciBvciBub3QgbGlzdCBoYXMgY2FsbGJhY2tzIGF0dGFjaGVkLlxuXHRcdFx0aGFzOiBmdW5jdGlvbiggZm4gKSB7XG5cdFx0XHRcdHJldHVybiBmbiA/XG5cdFx0XHRcdFx0alF1ZXJ5LmluQXJyYXkoIGZuLCBsaXN0ICkgPiAtMSA6XG5cdFx0XHRcdFx0bGlzdC5sZW5ndGggPiAwO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gUmVtb3ZlIGFsbCBjYWxsYmFja3MgZnJvbSB0aGUgbGlzdFxuXHRcdFx0ZW1wdHk6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGxpc3QgKSB7XG5cdFx0XHRcdFx0bGlzdCA9IFtdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblxuXHRcdFx0Ly8gRGlzYWJsZSAuZmlyZSBhbmQgLmFkZFxuXHRcdFx0Ly8gQWJvcnQgYW55IGN1cnJlbnQvcGVuZGluZyBleGVjdXRpb25zXG5cdFx0XHQvLyBDbGVhciBhbGwgY2FsbGJhY2tzIGFuZCB2YWx1ZXNcblx0XHRcdGRpc2FibGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRsb2NrZWQgPSBxdWV1ZSA9IFtdO1xuXHRcdFx0XHRsaXN0ID0gbWVtb3J5ID0gXCJcIjtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXHRcdFx0ZGlzYWJsZWQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gIWxpc3Q7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBEaXNhYmxlIC5maXJlXG5cdFx0XHQvLyBBbHNvIGRpc2FibGUgLmFkZCB1bmxlc3Mgd2UgaGF2ZSBtZW1vcnkgKHNpbmNlIGl0IHdvdWxkIGhhdmUgbm8gZWZmZWN0KVxuXHRcdFx0Ly8gQWJvcnQgYW55IHBlbmRpbmcgZXhlY3V0aW9uc1xuXHRcdFx0bG9jazogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGxvY2tlZCA9IHF1ZXVlID0gW107XG5cdFx0XHRcdGlmICggIW1lbW9yeSAmJiAhZmlyaW5nICkge1xuXHRcdFx0XHRcdGxpc3QgPSBtZW1vcnkgPSBcIlwiO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fSxcblx0XHRcdGxvY2tlZDogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHJldHVybiAhIWxvY2tlZDtcblx0XHRcdH0sXG5cblx0XHRcdC8vIENhbGwgYWxsIGNhbGxiYWNrcyB3aXRoIHRoZSBnaXZlbiBjb250ZXh0IGFuZCBhcmd1bWVudHNcblx0XHRcdGZpcmVXaXRoOiBmdW5jdGlvbiggY29udGV4dCwgYXJncyApIHtcblx0XHRcdFx0aWYgKCAhbG9ja2VkICkge1xuXHRcdFx0XHRcdGFyZ3MgPSBhcmdzIHx8IFtdO1xuXHRcdFx0XHRcdGFyZ3MgPSBbIGNvbnRleHQsIGFyZ3Muc2xpY2UgPyBhcmdzLnNsaWNlKCkgOiBhcmdzIF07XG5cdFx0XHRcdFx0cXVldWUucHVzaCggYXJncyApO1xuXHRcdFx0XHRcdGlmICggIWZpcmluZyApIHtcblx0XHRcdFx0XHRcdGZpcmUoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBDYWxsIGFsbCB0aGUgY2FsbGJhY2tzIHdpdGggdGhlIGdpdmVuIGFyZ3VtZW50c1xuXHRcdFx0ZmlyZTogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHNlbGYuZmlyZVdpdGgoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdH0sXG5cblx0XHRcdC8vIFRvIGtub3cgaWYgdGhlIGNhbGxiYWNrcyBoYXZlIGFscmVhZHkgYmVlbiBjYWxsZWQgYXQgbGVhc3Qgb25jZVxuXHRcdFx0ZmlyZWQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRyZXR1cm4gISFmaXJlZDtcblx0XHRcdH1cblx0XHR9O1xuXG5cdHJldHVybiBzZWxmO1xufTtcblxuXG5mdW5jdGlvbiBJZGVudGl0eSggdiApIHtcblx0cmV0dXJuIHY7XG59XG5mdW5jdGlvbiBUaHJvd2VyKCBleCApIHtcblx0dGhyb3cgZXg7XG59XG5cbmZ1bmN0aW9uIGFkb3B0VmFsdWUoIHZhbHVlLCByZXNvbHZlLCByZWplY3QsIG5vVmFsdWUgKSB7XG5cdHZhciBtZXRob2Q7XG5cblx0dHJ5IHtcblxuXHRcdC8vIENoZWNrIGZvciBwcm9taXNlIGFzcGVjdCBmaXJzdCB0byBwcml2aWxlZ2Ugc3luY2hyb25vdXMgYmVoYXZpb3Jcblx0XHRpZiAoIHZhbHVlICYmIGlzRnVuY3Rpb24oICggbWV0aG9kID0gdmFsdWUucHJvbWlzZSApICkgKSB7XG5cdFx0XHRtZXRob2QuY2FsbCggdmFsdWUgKS5kb25lKCByZXNvbHZlICkuZmFpbCggcmVqZWN0ICk7XG5cblx0XHQvLyBPdGhlciB0aGVuYWJsZXNcblx0XHR9IGVsc2UgaWYgKCB2YWx1ZSAmJiBpc0Z1bmN0aW9uKCAoIG1ldGhvZCA9IHZhbHVlLnRoZW4gKSApICkge1xuXHRcdFx0bWV0aG9kLmNhbGwoIHZhbHVlLCByZXNvbHZlLCByZWplY3QgKTtcblxuXHRcdC8vIE90aGVyIG5vbi10aGVuYWJsZXNcblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyBDb250cm9sIGByZXNvbHZlYCBhcmd1bWVudHMgYnkgbGV0dGluZyBBcnJheSNzbGljZSBjYXN0IGJvb2xlYW4gYG5vVmFsdWVgIHRvIGludGVnZXI6XG5cdFx0XHQvLyAqIGZhbHNlOiBbIHZhbHVlIF0uc2xpY2UoIDAgKSA9PiByZXNvbHZlKCB2YWx1ZSApXG5cdFx0XHQvLyAqIHRydWU6IFsgdmFsdWUgXS5zbGljZSggMSApID0+IHJlc29sdmUoKVxuXHRcdFx0cmVzb2x2ZS5hcHBseSggdW5kZWZpbmVkLCBbIHZhbHVlIF0uc2xpY2UoIG5vVmFsdWUgKSApO1xuXHRcdH1cblxuXHQvLyBGb3IgUHJvbWlzZXMvQSssIGNvbnZlcnQgZXhjZXB0aW9ucyBpbnRvIHJlamVjdGlvbnNcblx0Ly8gU2luY2UgalF1ZXJ5LndoZW4gZG9lc24ndCB1bndyYXAgdGhlbmFibGVzLCB3ZSBjYW4gc2tpcCB0aGUgZXh0cmEgY2hlY2tzIGFwcGVhcmluZyBpblxuXHQvLyBEZWZlcnJlZCN0aGVuIHRvIGNvbmRpdGlvbmFsbHkgc3VwcHJlc3MgcmVqZWN0aW9uLlxuXHR9IGNhdGNoICggdmFsdWUgKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDQuMCBvbmx5XG5cdFx0Ly8gU3RyaWN0IG1vZGUgZnVuY3Rpb25zIGludm9rZWQgd2l0aG91dCAuY2FsbC8uYXBwbHkgZ2V0IGdsb2JhbC1vYmplY3QgY29udGV4dFxuXHRcdHJlamVjdC5hcHBseSggdW5kZWZpbmVkLCBbIHZhbHVlIF0gKTtcblx0fVxufVxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cblx0RGVmZXJyZWQ6IGZ1bmN0aW9uKCBmdW5jICkge1xuXHRcdHZhciB0dXBsZXMgPSBbXG5cblx0XHRcdFx0Ly8gYWN0aW9uLCBhZGQgbGlzdGVuZXIsIGNhbGxiYWNrcyxcblx0XHRcdFx0Ly8gLi4uIC50aGVuIGhhbmRsZXJzLCBhcmd1bWVudCBpbmRleCwgW2ZpbmFsIHN0YXRlXVxuXHRcdFx0XHRbIFwibm90aWZ5XCIsIFwicHJvZ3Jlc3NcIiwgalF1ZXJ5LkNhbGxiYWNrcyggXCJtZW1vcnlcIiApLFxuXHRcdFx0XHRcdGpRdWVyeS5DYWxsYmFja3MoIFwibWVtb3J5XCIgKSwgMiBdLFxuXHRcdFx0XHRbIFwicmVzb2x2ZVwiLCBcImRvbmVcIiwgalF1ZXJ5LkNhbGxiYWNrcyggXCJvbmNlIG1lbW9yeVwiICksXG5cdFx0XHRcdFx0alF1ZXJ5LkNhbGxiYWNrcyggXCJvbmNlIG1lbW9yeVwiICksIDAsIFwicmVzb2x2ZWRcIiBdLFxuXHRcdFx0XHRbIFwicmVqZWN0XCIsIFwiZmFpbFwiLCBqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKSxcblx0XHRcdFx0XHRqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKSwgMSwgXCJyZWplY3RlZFwiIF1cblx0XHRcdF0sXG5cdFx0XHRzdGF0ZSA9IFwicGVuZGluZ1wiLFxuXHRcdFx0cHJvbWlzZSA9IHtcblx0XHRcdFx0c3RhdGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiBzdGF0ZTtcblx0XHRcdFx0fSxcblx0XHRcdFx0YWx3YXlzOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRkZWZlcnJlZC5kb25lKCBhcmd1bWVudHMgKS5mYWlsKCBhcmd1bWVudHMgKTtcblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblx0XHRcdFx0XCJjYXRjaFwiOiBmdW5jdGlvbiggZm4gKSB7XG5cdFx0XHRcdFx0cmV0dXJuIHByb21pc2UudGhlbiggbnVsbCwgZm4gKTtcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBLZWVwIHBpcGUgZm9yIGJhY2stY29tcGF0XG5cdFx0XHRcdHBpcGU6IGZ1bmN0aW9uKCAvKiBmbkRvbmUsIGZuRmFpbCwgZm5Qcm9ncmVzcyAqLyApIHtcblx0XHRcdFx0XHR2YXIgZm5zID0gYXJndW1lbnRzO1xuXG5cdFx0XHRcdFx0cmV0dXJuIGpRdWVyeS5EZWZlcnJlZCggZnVuY3Rpb24oIG5ld0RlZmVyICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5LmVhY2goIHR1cGxlcywgZnVuY3Rpb24oIGksIHR1cGxlICkge1xuXG5cdFx0XHRcdFx0XHRcdC8vIE1hcCB0dXBsZXMgKHByb2dyZXNzLCBkb25lLCBmYWlsKSB0byBhcmd1bWVudHMgKGRvbmUsIGZhaWwsIHByb2dyZXNzKVxuXHRcdFx0XHRcdFx0XHR2YXIgZm4gPSBpc0Z1bmN0aW9uKCBmbnNbIHR1cGxlWyA0IF0gXSApICYmIGZuc1sgdHVwbGVbIDQgXSBdO1xuXG5cdFx0XHRcdFx0XHRcdC8vIGRlZmVycmVkLnByb2dyZXNzKGZ1bmN0aW9uKCkgeyBiaW5kIHRvIG5ld0RlZmVyIG9yIG5ld0RlZmVyLm5vdGlmeSB9KVxuXHRcdFx0XHRcdFx0XHQvLyBkZWZlcnJlZC5kb25lKGZ1bmN0aW9uKCkgeyBiaW5kIHRvIG5ld0RlZmVyIG9yIG5ld0RlZmVyLnJlc29sdmUgfSlcblx0XHRcdFx0XHRcdFx0Ly8gZGVmZXJyZWQuZmFpbChmdW5jdGlvbigpIHsgYmluZCB0byBuZXdEZWZlciBvciBuZXdEZWZlci5yZWplY3QgfSlcblx0XHRcdFx0XHRcdFx0ZGVmZXJyZWRbIHR1cGxlWyAxIF0gXSggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0dmFyIHJldHVybmVkID0gZm4gJiYgZm4uYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRcdFx0XHRcdGlmICggcmV0dXJuZWQgJiYgaXNGdW5jdGlvbiggcmV0dXJuZWQucHJvbWlzZSApICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuZWQucHJvbWlzZSgpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC5wcm9ncmVzcyggbmV3RGVmZXIubm90aWZ5IClcblx0XHRcdFx0XHRcdFx0XHRcdFx0LmRvbmUoIG5ld0RlZmVyLnJlc29sdmUgKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQuZmFpbCggbmV3RGVmZXIucmVqZWN0ICk7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdG5ld0RlZmVyWyB0dXBsZVsgMCBdICsgXCJXaXRoXCIgXShcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcyxcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm4gPyBbIHJldHVybmVkIF0gOiBhcmd1bWVudHNcblx0XHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0XHR9ICk7XG5cdFx0XHRcdFx0XHRmbnMgPSBudWxsO1xuXHRcdFx0XHRcdH0gKS5wcm9taXNlKCk7XG5cdFx0XHRcdH0sXG5cdFx0XHRcdHRoZW46IGZ1bmN0aW9uKCBvbkZ1bGZpbGxlZCwgb25SZWplY3RlZCwgb25Qcm9ncmVzcyApIHtcblx0XHRcdFx0XHR2YXIgbWF4RGVwdGggPSAwO1xuXHRcdFx0XHRcdGZ1bmN0aW9uIHJlc29sdmUoIGRlcHRoLCBkZWZlcnJlZCwgaGFuZGxlciwgc3BlY2lhbCApIHtcblx0XHRcdFx0XHRcdHJldHVybiBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdFx0dmFyIHRoYXQgPSB0aGlzLFxuXHRcdFx0XHRcdFx0XHRcdGFyZ3MgPSBhcmd1bWVudHMsXG5cdFx0XHRcdFx0XHRcdFx0bWlnaHRUaHJvdyA9IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRcdFx0dmFyIHJldHVybmVkLCB0aGVuO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy4zLjMuM1xuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNTlcblx0XHRcdFx0XHRcdFx0XHRcdC8vIElnbm9yZSBkb3VibGUtcmVzb2x1dGlvbiBhdHRlbXB0c1xuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBkZXB0aCA8IG1heERlcHRoICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm47XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdHJldHVybmVkID0gaGFuZGxlci5hcHBseSggdGhhdCwgYXJncyApO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy4xXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBodHRwczovL3Byb21pc2VzYXBsdXMuY29tLyNwb2ludC00OFxuXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCByZXR1cm5lZCA9PT0gZGVmZXJyZWQucHJvbWlzZSgpICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKCBcIlRoZW5hYmxlIHNlbGYtcmVzb2x1dGlvblwiICk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IFByb21pc2VzL0ErIHNlY3Rpb25zIDIuMy4zLjEsIDMuNVxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNTRcblx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTc1XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBSZXRyaWV2ZSBgdGhlbmAgb25seSBvbmNlXG5cdFx0XHRcdFx0XHRcdFx0XHR0aGVuID0gcmV0dXJuZWQgJiZcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBTdXBwb3J0OiBQcm9taXNlcy9BKyBzZWN0aW9uIDIuMy40XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTY0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIE9ubHkgY2hlY2sgb2JqZWN0cyBhbmQgZnVuY3Rpb25zIGZvciB0aGVuYWJpbGl0eVxuXHRcdFx0XHRcdFx0XHRcdFx0XHQoIHR5cGVvZiByZXR1cm5lZCA9PT0gXCJvYmplY3RcIiB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGVvZiByZXR1cm5lZCA9PT0gXCJmdW5jdGlvblwiICkgJiZcblx0XHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuZWQudGhlbjtcblxuXHRcdFx0XHRcdFx0XHRcdFx0Ly8gSGFuZGxlIGEgcmV0dXJuZWQgdGhlbmFibGVcblx0XHRcdFx0XHRcdFx0XHRcdGlmICggaXNGdW5jdGlvbiggdGhlbiApICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFNwZWNpYWwgcHJvY2Vzc29ycyAobm90aWZ5KSBqdXN0IHdhaXQgZm9yIHJlc29sdXRpb25cblx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBzcGVjaWFsICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoZW4uY2FsbChcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJldHVybmVkLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBJZGVudGl0eSwgc3BlY2lhbCApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBUaHJvd2VyLCBzcGVjaWFsIClcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIE5vcm1hbCBwcm9jZXNzb3JzIChyZXNvbHZlKSBhbHNvIGhvb2sgaW50byBwcm9ncmVzc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gLi4uYW5kIGRpc3JlZ2FyZCBvbGRlciByZXNvbHV0aW9uIHZhbHVlc1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1heERlcHRoKys7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGVuLmNhbGwoXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm5lZCxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoIG1heERlcHRoLCBkZWZlcnJlZCwgSWRlbnRpdHksIHNwZWNpYWwgKSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc29sdmUoIG1heERlcHRoLCBkZWZlcnJlZCwgVGhyb3dlciwgc3BlY2lhbCApLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzb2x2ZSggbWF4RGVwdGgsIGRlZmVycmVkLCBJZGVudGl0eSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZGVmZXJyZWQubm90aWZ5V2l0aCApXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBIYW5kbGUgYWxsIG90aGVyIHJldHVybmVkIHZhbHVlc1xuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHQvLyBPbmx5IHN1YnN0aXR1dGUgaGFuZGxlcnMgcGFzcyBvbiBjb250ZXh0XG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGFuZCBtdWx0aXBsZSB2YWx1ZXMgKG5vbi1zcGVjIGJlaGF2aW9yKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIGhhbmRsZXIgIT09IElkZW50aXR5ICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRoYXQgPSB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0YXJncyA9IFsgcmV0dXJuZWQgXTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIFByb2Nlc3MgdGhlIHZhbHVlKHMpXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIERlZmF1bHQgcHJvY2VzcyBpcyByZXNvbHZlXG5cdFx0XHRcdFx0XHRcdFx0XHRcdCggc3BlY2lhbCB8fCBkZWZlcnJlZC5yZXNvbHZlV2l0aCApKCB0aGF0LCBhcmdzICk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSxcblxuXHRcdFx0XHRcdFx0XHRcdC8vIE9ubHkgbm9ybWFsIHByb2Nlc3NvcnMgKHJlc29sdmUpIGNhdGNoIGFuZCByZWplY3QgZXhjZXB0aW9uc1xuXHRcdFx0XHRcdFx0XHRcdHByb2Nlc3MgPSBzcGVjaWFsID9cblx0XHRcdFx0XHRcdFx0XHRcdG1pZ2h0VGhyb3cgOlxuXHRcdFx0XHRcdFx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0bWlnaHRUaHJvdygpO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR9IGNhdGNoICggZSApIHtcblxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5LkRlZmVycmVkLmV4Y2VwdGlvbkhvb2sgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayggZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cHJvY2Vzcy5zdGFja1RyYWNlICk7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogUHJvbWlzZXMvQSsgc2VjdGlvbiAyLjMuMy4zLjQuMVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGh0dHBzOi8vcHJvbWlzZXNhcGx1cy5jb20vI3BvaW50LTYxXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0Ly8gSWdub3JlIHBvc3QtcmVzb2x1dGlvbiBleGNlcHRpb25zXG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBkZXB0aCArIDEgPj0gbWF4RGVwdGggKSB7XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIE9ubHkgc3Vic3RpdHV0ZSBoYW5kbGVycyBwYXNzIG9uIGNvbnRleHRcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdC8vIGFuZCBtdWx0aXBsZSB2YWx1ZXMgKG5vbi1zcGVjIGJlaGF2aW9yKVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCBoYW5kbGVyICE9PSBUaHJvd2VyICkge1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0aGF0ID0gdW5kZWZpbmVkO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRhcmdzID0gWyBlIF07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRlZmVycmVkLnJlamVjdFdpdGgoIHRoYXQsIGFyZ3MgKTtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0XHRcdH07XG5cblx0XHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogUHJvbWlzZXMvQSsgc2VjdGlvbiAyLjMuMy4zLjFcblx0XHRcdFx0XHRcdFx0Ly8gaHR0cHM6Ly9wcm9taXNlc2FwbHVzLmNvbS8jcG9pbnQtNTdcblx0XHRcdFx0XHRcdFx0Ly8gUmUtcmVzb2x2ZSBwcm9taXNlcyBpbW1lZGlhdGVseSB0byBkb2RnZSBmYWxzZSByZWplY3Rpb24gZnJvbVxuXHRcdFx0XHRcdFx0XHQvLyBzdWJzZXF1ZW50IGVycm9yc1xuXHRcdFx0XHRcdFx0XHRpZiAoIGRlcHRoICkge1xuXHRcdFx0XHRcdFx0XHRcdHByb2Nlc3MoKTtcblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHRcdC8vIENhbGwgYW4gb3B0aW9uYWwgaG9vayB0byByZWNvcmQgdGhlIHN0YWNrLCBpbiBjYXNlIG9mIGV4Y2VwdGlvblxuXHRcdFx0XHRcdFx0XHRcdC8vIHNpbmNlIGl0J3Mgb3RoZXJ3aXNlIGxvc3Qgd2hlbiBleGVjdXRpb24gZ29lcyBhc3luY1xuXHRcdFx0XHRcdFx0XHRcdGlmICggalF1ZXJ5LkRlZmVycmVkLmdldFN0YWNrSG9vayApIHtcblx0XHRcdFx0XHRcdFx0XHRcdHByb2Nlc3Muc3RhY2tUcmFjZSA9IGpRdWVyeS5EZWZlcnJlZC5nZXRTdGFja0hvb2soKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0d2luZG93LnNldFRpbWVvdXQoIHByb2Nlc3MgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRyZXR1cm4galF1ZXJ5LkRlZmVycmVkKCBmdW5jdGlvbiggbmV3RGVmZXIgKSB7XG5cblx0XHRcdFx0XHRcdC8vIHByb2dyZXNzX2hhbmRsZXJzLmFkZCggLi4uIClcblx0XHRcdFx0XHRcdHR1cGxlc1sgMCBdWyAzIF0uYWRkKFxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKFxuXHRcdFx0XHRcdFx0XHRcdDAsXG5cdFx0XHRcdFx0XHRcdFx0bmV3RGVmZXIsXG5cdFx0XHRcdFx0XHRcdFx0aXNGdW5jdGlvbiggb25Qcm9ncmVzcyApID9cblx0XHRcdFx0XHRcdFx0XHRcdG9uUHJvZ3Jlc3MgOlxuXHRcdFx0XHRcdFx0XHRcdFx0SWRlbnRpdHksXG5cdFx0XHRcdFx0XHRcdFx0bmV3RGVmZXIubm90aWZ5V2l0aFxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHQvLyBmdWxmaWxsZWRfaGFuZGxlcnMuYWRkKCAuLi4gKVxuXHRcdFx0XHRcdFx0dHVwbGVzWyAxIF1bIDMgXS5hZGQoXG5cdFx0XHRcdFx0XHRcdHJlc29sdmUoXG5cdFx0XHRcdFx0XHRcdFx0MCxcblx0XHRcdFx0XHRcdFx0XHRuZXdEZWZlcixcblx0XHRcdFx0XHRcdFx0XHRpc0Z1bmN0aW9uKCBvbkZ1bGZpbGxlZCApID9cblx0XHRcdFx0XHRcdFx0XHRcdG9uRnVsZmlsbGVkIDpcblx0XHRcdFx0XHRcdFx0XHRcdElkZW50aXR5XG5cdFx0XHRcdFx0XHRcdClcblx0XHRcdFx0XHRcdCk7XG5cblx0XHRcdFx0XHRcdC8vIHJlamVjdGVkX2hhbmRsZXJzLmFkZCggLi4uIClcblx0XHRcdFx0XHRcdHR1cGxlc1sgMiBdWyAzIF0uYWRkKFxuXHRcdFx0XHRcdFx0XHRyZXNvbHZlKFxuXHRcdFx0XHRcdFx0XHRcdDAsXG5cdFx0XHRcdFx0XHRcdFx0bmV3RGVmZXIsXG5cdFx0XHRcdFx0XHRcdFx0aXNGdW5jdGlvbiggb25SZWplY3RlZCApID9cblx0XHRcdFx0XHRcdFx0XHRcdG9uUmVqZWN0ZWQgOlxuXHRcdFx0XHRcdFx0XHRcdFx0VGhyb3dlclxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH0gKS5wcm9taXNlKCk7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gR2V0IGEgcHJvbWlzZSBmb3IgdGhpcyBkZWZlcnJlZFxuXHRcdFx0XHQvLyBJZiBvYmogaXMgcHJvdmlkZWQsIHRoZSBwcm9taXNlIGFzcGVjdCBpcyBhZGRlZCB0byB0aGUgb2JqZWN0XG5cdFx0XHRcdHByb21pc2U6IGZ1bmN0aW9uKCBvYmogKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG9iaiAhPSBudWxsID8galF1ZXJ5LmV4dGVuZCggb2JqLCBwcm9taXNlICkgOiBwcm9taXNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0ZGVmZXJyZWQgPSB7fTtcblxuXHRcdC8vIEFkZCBsaXN0LXNwZWNpZmljIG1ldGhvZHNcblx0XHRqUXVlcnkuZWFjaCggdHVwbGVzLCBmdW5jdGlvbiggaSwgdHVwbGUgKSB7XG5cdFx0XHR2YXIgbGlzdCA9IHR1cGxlWyAyIF0sXG5cdFx0XHRcdHN0YXRlU3RyaW5nID0gdHVwbGVbIDUgXTtcblxuXHRcdFx0Ly8gcHJvbWlzZS5wcm9ncmVzcyA9IGxpc3QuYWRkXG5cdFx0XHQvLyBwcm9taXNlLmRvbmUgPSBsaXN0LmFkZFxuXHRcdFx0Ly8gcHJvbWlzZS5mYWlsID0gbGlzdC5hZGRcblx0XHRcdHByb21pc2VbIHR1cGxlWyAxIF0gXSA9IGxpc3QuYWRkO1xuXG5cdFx0XHQvLyBIYW5kbGUgc3RhdGVcblx0XHRcdGlmICggc3RhdGVTdHJpbmcgKSB7XG5cdFx0XHRcdGxpc3QuYWRkKFxuXHRcdFx0XHRcdGZ1bmN0aW9uKCkge1xuXG5cdFx0XHRcdFx0XHQvLyBzdGF0ZSA9IFwicmVzb2x2ZWRcIiAoaS5lLiwgZnVsZmlsbGVkKVxuXHRcdFx0XHRcdFx0Ly8gc3RhdGUgPSBcInJlamVjdGVkXCJcblx0XHRcdFx0XHRcdHN0YXRlID0gc3RhdGVTdHJpbmc7XG5cdFx0XHRcdFx0fSxcblxuXHRcdFx0XHRcdC8vIHJlamVjdGVkX2NhbGxiYWNrcy5kaXNhYmxlXG5cdFx0XHRcdFx0Ly8gZnVsZmlsbGVkX2NhbGxiYWNrcy5kaXNhYmxlXG5cdFx0XHRcdFx0dHVwbGVzWyAzIC0gaSBdWyAyIF0uZGlzYWJsZSxcblxuXHRcdFx0XHRcdC8vIHJlamVjdGVkX2hhbmRsZXJzLmRpc2FibGVcblx0XHRcdFx0XHQvLyBmdWxmaWxsZWRfaGFuZGxlcnMuZGlzYWJsZVxuXHRcdFx0XHRcdHR1cGxlc1sgMyAtIGkgXVsgMyBdLmRpc2FibGUsXG5cblx0XHRcdFx0XHQvLyBwcm9ncmVzc19jYWxsYmFja3MubG9ja1xuXHRcdFx0XHRcdHR1cGxlc1sgMCBdWyAyIF0ubG9jayxcblxuXHRcdFx0XHRcdC8vIHByb2dyZXNzX2hhbmRsZXJzLmxvY2tcblx0XHRcdFx0XHR0dXBsZXNbIDAgXVsgMyBdLmxvY2tcblx0XHRcdFx0KTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gcHJvZ3Jlc3NfaGFuZGxlcnMuZmlyZVxuXHRcdFx0Ly8gZnVsZmlsbGVkX2hhbmRsZXJzLmZpcmVcblx0XHRcdC8vIHJlamVjdGVkX2hhbmRsZXJzLmZpcmVcblx0XHRcdGxpc3QuYWRkKCB0dXBsZVsgMyBdLmZpcmUgKTtcblxuXHRcdFx0Ly8gZGVmZXJyZWQubm90aWZ5ID0gZnVuY3Rpb24oKSB7IGRlZmVycmVkLm5vdGlmeVdpdGgoLi4uKSB9XG5cdFx0XHQvLyBkZWZlcnJlZC5yZXNvbHZlID0gZnVuY3Rpb24oKSB7IGRlZmVycmVkLnJlc29sdmVXaXRoKC4uLikgfVxuXHRcdFx0Ly8gZGVmZXJyZWQucmVqZWN0ID0gZnVuY3Rpb24oKSB7IGRlZmVycmVkLnJlamVjdFdpdGgoLi4uKSB9XG5cdFx0XHRkZWZlcnJlZFsgdHVwbGVbIDAgXSBdID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGRlZmVycmVkWyB0dXBsZVsgMCBdICsgXCJXaXRoXCIgXSggdGhpcyA9PT0gZGVmZXJyZWQgPyB1bmRlZmluZWQgOiB0aGlzLCBhcmd1bWVudHMgKTtcblx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHR9O1xuXG5cdFx0XHQvLyBkZWZlcnJlZC5ub3RpZnlXaXRoID0gbGlzdC5maXJlV2l0aFxuXHRcdFx0Ly8gZGVmZXJyZWQucmVzb2x2ZVdpdGggPSBsaXN0LmZpcmVXaXRoXG5cdFx0XHQvLyBkZWZlcnJlZC5yZWplY3RXaXRoID0gbGlzdC5maXJlV2l0aFxuXHRcdFx0ZGVmZXJyZWRbIHR1cGxlWyAwIF0gKyBcIldpdGhcIiBdID0gbGlzdC5maXJlV2l0aDtcblx0XHR9ICk7XG5cblx0XHQvLyBNYWtlIHRoZSBkZWZlcnJlZCBhIHByb21pc2Vcblx0XHRwcm9taXNlLnByb21pc2UoIGRlZmVycmVkICk7XG5cblx0XHQvLyBDYWxsIGdpdmVuIGZ1bmMgaWYgYW55XG5cdFx0aWYgKCBmdW5jICkge1xuXHRcdFx0ZnVuYy5jYWxsKCBkZWZlcnJlZCwgZGVmZXJyZWQgKTtcblx0XHR9XG5cblx0XHQvLyBBbGwgZG9uZSFcblx0XHRyZXR1cm4gZGVmZXJyZWQ7XG5cdH0sXG5cblx0Ly8gRGVmZXJyZWQgaGVscGVyXG5cdHdoZW46IGZ1bmN0aW9uKCBzaW5nbGVWYWx1ZSApIHtcblx0XHR2YXJcblxuXHRcdFx0Ly8gY291bnQgb2YgdW5jb21wbGV0ZWQgc3Vib3JkaW5hdGVzXG5cdFx0XHRyZW1haW5pbmcgPSBhcmd1bWVudHMubGVuZ3RoLFxuXG5cdFx0XHQvLyBjb3VudCBvZiB1bnByb2Nlc3NlZCBhcmd1bWVudHNcblx0XHRcdGkgPSByZW1haW5pbmcsXG5cblx0XHRcdC8vIHN1Ym9yZGluYXRlIGZ1bGZpbGxtZW50IGRhdGFcblx0XHRcdHJlc29sdmVDb250ZXh0cyA9IEFycmF5KCBpICksXG5cdFx0XHRyZXNvbHZlVmFsdWVzID0gc2xpY2UuY2FsbCggYXJndW1lbnRzICksXG5cblx0XHRcdC8vIHRoZSBtYXN0ZXIgRGVmZXJyZWRcblx0XHRcdG1hc3RlciA9IGpRdWVyeS5EZWZlcnJlZCgpLFxuXG5cdFx0XHQvLyBzdWJvcmRpbmF0ZSBjYWxsYmFjayBmYWN0b3J5XG5cdFx0XHR1cGRhdGVGdW5jID0gZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRcdHJldHVybiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHRcdFx0cmVzb2x2ZUNvbnRleHRzWyBpIF0gPSB0aGlzO1xuXHRcdFx0XHRcdHJlc29sdmVWYWx1ZXNbIGkgXSA9IGFyZ3VtZW50cy5sZW5ndGggPiAxID8gc2xpY2UuY2FsbCggYXJndW1lbnRzICkgOiB2YWx1ZTtcblx0XHRcdFx0XHRpZiAoICEoIC0tcmVtYWluaW5nICkgKSB7XG5cdFx0XHRcdFx0XHRtYXN0ZXIucmVzb2x2ZVdpdGgoIHJlc29sdmVDb250ZXh0cywgcmVzb2x2ZVZhbHVlcyApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fTtcblx0XHRcdH07XG5cblx0XHQvLyBTaW5nbGUtIGFuZCBlbXB0eSBhcmd1bWVudHMgYXJlIGFkb3B0ZWQgbGlrZSBQcm9taXNlLnJlc29sdmVcblx0XHRpZiAoIHJlbWFpbmluZyA8PSAxICkge1xuXHRcdFx0YWRvcHRWYWx1ZSggc2luZ2xlVmFsdWUsIG1hc3Rlci5kb25lKCB1cGRhdGVGdW5jKCBpICkgKS5yZXNvbHZlLCBtYXN0ZXIucmVqZWN0LFxuXHRcdFx0XHQhcmVtYWluaW5nICk7XG5cblx0XHRcdC8vIFVzZSAudGhlbigpIHRvIHVud3JhcCBzZWNvbmRhcnkgdGhlbmFibGVzIChjZi4gZ2gtMzAwMClcblx0XHRcdGlmICggbWFzdGVyLnN0YXRlKCkgPT09IFwicGVuZGluZ1wiIHx8XG5cdFx0XHRcdGlzRnVuY3Rpb24oIHJlc29sdmVWYWx1ZXNbIGkgXSAmJiByZXNvbHZlVmFsdWVzWyBpIF0udGhlbiApICkge1xuXG5cdFx0XHRcdHJldHVybiBtYXN0ZXIudGhlbigpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIE11bHRpcGxlIGFyZ3VtZW50cyBhcmUgYWdncmVnYXRlZCBsaWtlIFByb21pc2UuYWxsIGFycmF5IGVsZW1lbnRzXG5cdFx0d2hpbGUgKCBpLS0gKSB7XG5cdFx0XHRhZG9wdFZhbHVlKCByZXNvbHZlVmFsdWVzWyBpIF0sIHVwZGF0ZUZ1bmMoIGkgKSwgbWFzdGVyLnJlamVjdCApO1xuXHRcdH1cblxuXHRcdHJldHVybiBtYXN0ZXIucHJvbWlzZSgpO1xuXHR9XG59ICk7XG5cblxuLy8gVGhlc2UgdXN1YWxseSBpbmRpY2F0ZSBhIHByb2dyYW1tZXIgbWlzdGFrZSBkdXJpbmcgZGV2ZWxvcG1lbnQsXG4vLyB3YXJuIGFib3V0IHRoZW0gQVNBUCByYXRoZXIgdGhhbiBzd2FsbG93aW5nIHRoZW0gYnkgZGVmYXVsdC5cbnZhciByZXJyb3JOYW1lcyA9IC9eKEV2YWx8SW50ZXJuYWx8UmFuZ2V8UmVmZXJlbmNlfFN5bnRheHxUeXBlfFVSSSlFcnJvciQvO1xuXG5qUXVlcnkuRGVmZXJyZWQuZXhjZXB0aW9uSG9vayA9IGZ1bmN0aW9uKCBlcnJvciwgc3RhY2sgKSB7XG5cblx0Ly8gU3VwcG9ydDogSUUgOCAtIDkgb25seVxuXHQvLyBDb25zb2xlIGV4aXN0cyB3aGVuIGRldiB0b29scyBhcmUgb3Blbiwgd2hpY2ggY2FuIGhhcHBlbiBhdCBhbnkgdGltZVxuXHRpZiAoIHdpbmRvdy5jb25zb2xlICYmIHdpbmRvdy5jb25zb2xlLndhcm4gJiYgZXJyb3IgJiYgcmVycm9yTmFtZXMudGVzdCggZXJyb3IubmFtZSApICkge1xuXHRcdHdpbmRvdy5jb25zb2xlLndhcm4oIFwialF1ZXJ5LkRlZmVycmVkIGV4Y2VwdGlvbjogXCIgKyBlcnJvci5tZXNzYWdlLCBlcnJvci5zdGFjaywgc3RhY2sgKTtcblx0fVxufTtcblxuXG5cblxualF1ZXJ5LnJlYWR5RXhjZXB0aW9uID0gZnVuY3Rpb24oIGVycm9yICkge1xuXHR3aW5kb3cuc2V0VGltZW91dCggZnVuY3Rpb24oKSB7XG5cdFx0dGhyb3cgZXJyb3I7XG5cdH0gKTtcbn07XG5cblxuXG5cbi8vIFRoZSBkZWZlcnJlZCB1c2VkIG9uIERPTSByZWFkeVxudmFyIHJlYWR5TGlzdCA9IGpRdWVyeS5EZWZlcnJlZCgpO1xuXG5qUXVlcnkuZm4ucmVhZHkgPSBmdW5jdGlvbiggZm4gKSB7XG5cblx0cmVhZHlMaXN0XG5cdFx0LnRoZW4oIGZuIClcblxuXHRcdC8vIFdyYXAgalF1ZXJ5LnJlYWR5RXhjZXB0aW9uIGluIGEgZnVuY3Rpb24gc28gdGhhdCB0aGUgbG9va3VwXG5cdFx0Ly8gaGFwcGVucyBhdCB0aGUgdGltZSBvZiBlcnJvciBoYW5kbGluZyBpbnN0ZWFkIG9mIGNhbGxiYWNrXG5cdFx0Ly8gcmVnaXN0cmF0aW9uLlxuXHRcdC5jYXRjaCggZnVuY3Rpb24oIGVycm9yICkge1xuXHRcdFx0alF1ZXJ5LnJlYWR5RXhjZXB0aW9uKCBlcnJvciApO1xuXHRcdH0gKTtcblxuXHRyZXR1cm4gdGhpcztcbn07XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHQvLyBJcyB0aGUgRE9NIHJlYWR5IHRvIGJlIHVzZWQ/IFNldCB0byB0cnVlIG9uY2UgaXQgb2NjdXJzLlxuXHRpc1JlYWR5OiBmYWxzZSxcblxuXHQvLyBBIGNvdW50ZXIgdG8gdHJhY2sgaG93IG1hbnkgaXRlbXMgdG8gd2FpdCBmb3IgYmVmb3JlXG5cdC8vIHRoZSByZWFkeSBldmVudCBmaXJlcy4gU2VlICM2NzgxXG5cdHJlYWR5V2FpdDogMSxcblxuXHQvLyBIYW5kbGUgd2hlbiB0aGUgRE9NIGlzIHJlYWR5XG5cdHJlYWR5OiBmdW5jdGlvbiggd2FpdCApIHtcblxuXHRcdC8vIEFib3J0IGlmIHRoZXJlIGFyZSBwZW5kaW5nIGhvbGRzIG9yIHdlJ3JlIGFscmVhZHkgcmVhZHlcblx0XHRpZiAoIHdhaXQgPT09IHRydWUgPyAtLWpRdWVyeS5yZWFkeVdhaXQgOiBqUXVlcnkuaXNSZWFkeSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBSZW1lbWJlciB0aGF0IHRoZSBET00gaXMgcmVhZHlcblx0XHRqUXVlcnkuaXNSZWFkeSA9IHRydWU7XG5cblx0XHQvLyBJZiBhIG5vcm1hbCBET00gUmVhZHkgZXZlbnQgZmlyZWQsIGRlY3JlbWVudCwgYW5kIHdhaXQgaWYgbmVlZCBiZVxuXHRcdGlmICggd2FpdCAhPT0gdHJ1ZSAmJiAtLWpRdWVyeS5yZWFkeVdhaXQgPiAwICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIElmIHRoZXJlIGFyZSBmdW5jdGlvbnMgYm91bmQsIHRvIGV4ZWN1dGVcblx0XHRyZWFkeUxpc3QucmVzb2x2ZVdpdGgoIGRvY3VtZW50LCBbIGpRdWVyeSBdICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LnJlYWR5LnRoZW4gPSByZWFkeUxpc3QudGhlbjtcblxuLy8gVGhlIHJlYWR5IGV2ZW50IGhhbmRsZXIgYW5kIHNlbGYgY2xlYW51cCBtZXRob2RcbmZ1bmN0aW9uIGNvbXBsZXRlZCgpIHtcblx0ZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJET01Db250ZW50TG9hZGVkXCIsIGNvbXBsZXRlZCApO1xuXHR3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lciggXCJsb2FkXCIsIGNvbXBsZXRlZCApO1xuXHRqUXVlcnkucmVhZHkoKTtcbn1cblxuLy8gQ2F0Y2ggY2FzZXMgd2hlcmUgJChkb2N1bWVudCkucmVhZHkoKSBpcyBjYWxsZWRcbi8vIGFmdGVyIHRoZSBicm93c2VyIGV2ZW50IGhhcyBhbHJlYWR5IG9jY3VycmVkLlxuLy8gU3VwcG9ydDogSUUgPD05IC0gMTAgb25seVxuLy8gT2xkZXIgSUUgc29tZXRpbWVzIHNpZ25hbHMgXCJpbnRlcmFjdGl2ZVwiIHRvbyBzb29uXG5pZiAoIGRvY3VtZW50LnJlYWR5U3RhdGUgPT09IFwiY29tcGxldGVcIiB8fFxuXHQoIGRvY3VtZW50LnJlYWR5U3RhdGUgIT09IFwibG9hZGluZ1wiICYmICFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGwgKSApIHtcblxuXHQvLyBIYW5kbGUgaXQgYXN5bmNocm9ub3VzbHkgdG8gYWxsb3cgc2NyaXB0cyB0aGUgb3Bwb3J0dW5pdHkgdG8gZGVsYXkgcmVhZHlcblx0d2luZG93LnNldFRpbWVvdXQoIGpRdWVyeS5yZWFkeSApO1xuXG59IGVsc2Uge1xuXG5cdC8vIFVzZSB0aGUgaGFuZHkgZXZlbnQgY2FsbGJhY2tcblx0ZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lciggXCJET01Db250ZW50TG9hZGVkXCIsIGNvbXBsZXRlZCApO1xuXG5cdC8vIEEgZmFsbGJhY2sgdG8gd2luZG93Lm9ubG9hZCwgdGhhdCB3aWxsIGFsd2F5cyB3b3JrXG5cdHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCBcImxvYWRcIiwgY29tcGxldGVkICk7XG59XG5cblxuXG5cbi8vIE11bHRpZnVuY3Rpb25hbCBtZXRob2QgdG8gZ2V0IGFuZCBzZXQgdmFsdWVzIG9mIGEgY29sbGVjdGlvblxuLy8gVGhlIHZhbHVlL3MgY2FuIG9wdGlvbmFsbHkgYmUgZXhlY3V0ZWQgaWYgaXQncyBhIGZ1bmN0aW9uXG52YXIgYWNjZXNzID0gZnVuY3Rpb24oIGVsZW1zLCBmbiwga2V5LCB2YWx1ZSwgY2hhaW5hYmxlLCBlbXB0eUdldCwgcmF3ICkge1xuXHR2YXIgaSA9IDAsXG5cdFx0bGVuID0gZWxlbXMubGVuZ3RoLFxuXHRcdGJ1bGsgPSBrZXkgPT0gbnVsbDtcblxuXHQvLyBTZXRzIG1hbnkgdmFsdWVzXG5cdGlmICggdG9UeXBlKCBrZXkgKSA9PT0gXCJvYmplY3RcIiApIHtcblx0XHRjaGFpbmFibGUgPSB0cnVlO1xuXHRcdGZvciAoIGkgaW4ga2V5ICkge1xuXHRcdFx0YWNjZXNzKCBlbGVtcywgZm4sIGksIGtleVsgaSBdLCB0cnVlLCBlbXB0eUdldCwgcmF3ICk7XG5cdFx0fVxuXG5cdC8vIFNldHMgb25lIHZhbHVlXG5cdH0gZWxzZSBpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0Y2hhaW5hYmxlID0gdHJ1ZTtcblxuXHRcdGlmICggIWlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyYXcgPSB0cnVlO1xuXHRcdH1cblxuXHRcdGlmICggYnVsayApIHtcblxuXHRcdFx0Ly8gQnVsayBvcGVyYXRpb25zIHJ1biBhZ2FpbnN0IHRoZSBlbnRpcmUgc2V0XG5cdFx0XHRpZiAoIHJhdyApIHtcblx0XHRcdFx0Zm4uY2FsbCggZWxlbXMsIHZhbHVlICk7XG5cdFx0XHRcdGZuID0gbnVsbDtcblxuXHRcdFx0Ly8gLi4uZXhjZXB0IHdoZW4gZXhlY3V0aW5nIGZ1bmN0aW9uIHZhbHVlc1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0YnVsayA9IGZuO1xuXHRcdFx0XHRmbiA9IGZ1bmN0aW9uKCBlbGVtLCBrZXksIHZhbHVlICkge1xuXHRcdFx0XHRcdHJldHVybiBidWxrLmNhbGwoIGpRdWVyeSggZWxlbSApLCB2YWx1ZSApO1xuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdGlmICggZm4gKSB7XG5cdFx0XHRmb3IgKCA7IGkgPCBsZW47IGkrKyApIHtcblx0XHRcdFx0Zm4oXG5cdFx0XHRcdFx0ZWxlbXNbIGkgXSwga2V5LCByYXcgP1xuXHRcdFx0XHRcdHZhbHVlIDpcblx0XHRcdFx0XHR2YWx1ZS5jYWxsKCBlbGVtc1sgaSBdLCBpLCBmbiggZWxlbXNbIGkgXSwga2V5ICkgKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGlmICggY2hhaW5hYmxlICkge1xuXHRcdHJldHVybiBlbGVtcztcblx0fVxuXG5cdC8vIEdldHNcblx0aWYgKCBidWxrICkge1xuXHRcdHJldHVybiBmbi5jYWxsKCBlbGVtcyApO1xuXHR9XG5cblx0cmV0dXJuIGxlbiA/IGZuKCBlbGVtc1sgMCBdLCBrZXkgKSA6IGVtcHR5R2V0O1xufTtcblxuXG4vLyBNYXRjaGVzIGRhc2hlZCBzdHJpbmcgZm9yIGNhbWVsaXppbmdcbnZhciBybXNQcmVmaXggPSAvXi1tcy0vLFxuXHRyZGFzaEFscGhhID0gLy0oW2Etel0pL2c7XG5cbi8vIFVzZWQgYnkgY2FtZWxDYXNlIGFzIGNhbGxiYWNrIHRvIHJlcGxhY2UoKVxuZnVuY3Rpb24gZmNhbWVsQ2FzZSggYWxsLCBsZXR0ZXIgKSB7XG5cdHJldHVybiBsZXR0ZXIudG9VcHBlckNhc2UoKTtcbn1cblxuLy8gQ29udmVydCBkYXNoZWQgdG8gY2FtZWxDYXNlOyB1c2VkIGJ5IHRoZSBjc3MgYW5kIGRhdGEgbW9kdWxlc1xuLy8gU3VwcG9ydDogSUUgPD05IC0gMTEsIEVkZ2UgMTIgLSAxNVxuLy8gTWljcm9zb2Z0IGZvcmdvdCB0byBodW1wIHRoZWlyIHZlbmRvciBwcmVmaXggKCM5NTcyKVxuZnVuY3Rpb24gY2FtZWxDYXNlKCBzdHJpbmcgKSB7XG5cdHJldHVybiBzdHJpbmcucmVwbGFjZSggcm1zUHJlZml4LCBcIm1zLVwiICkucmVwbGFjZSggcmRhc2hBbHBoYSwgZmNhbWVsQ2FzZSApO1xufVxudmFyIGFjY2VwdERhdGEgPSBmdW5jdGlvbiggb3duZXIgKSB7XG5cblx0Ly8gQWNjZXB0cyBvbmx5OlxuXHQvLyAgLSBOb2RlXG5cdC8vICAgIC0gTm9kZS5FTEVNRU5UX05PREVcblx0Ly8gICAgLSBOb2RlLkRPQ1VNRU5UX05PREVcblx0Ly8gIC0gT2JqZWN0XG5cdC8vICAgIC0gQW55XG5cdHJldHVybiBvd25lci5ub2RlVHlwZSA9PT0gMSB8fCBvd25lci5ub2RlVHlwZSA9PT0gOSB8fCAhKCArb3duZXIubm9kZVR5cGUgKTtcbn07XG5cblxuXG5cbmZ1bmN0aW9uIERhdGEoKSB7XG5cdHRoaXMuZXhwYW5kbyA9IGpRdWVyeS5leHBhbmRvICsgRGF0YS51aWQrKztcbn1cblxuRGF0YS51aWQgPSAxO1xuXG5EYXRhLnByb3RvdHlwZSA9IHtcblxuXHRjYWNoZTogZnVuY3Rpb24oIG93bmVyICkge1xuXG5cdFx0Ly8gQ2hlY2sgaWYgdGhlIG93bmVyIG9iamVjdCBhbHJlYWR5IGhhcyBhIGNhY2hlXG5cdFx0dmFyIHZhbHVlID0gb3duZXJbIHRoaXMuZXhwYW5kbyBdO1xuXG5cdFx0Ly8gSWYgbm90LCBjcmVhdGUgb25lXG5cdFx0aWYgKCAhdmFsdWUgKSB7XG5cdFx0XHR2YWx1ZSA9IHt9O1xuXG5cdFx0XHQvLyBXZSBjYW4gYWNjZXB0IGRhdGEgZm9yIG5vbi1lbGVtZW50IG5vZGVzIGluIG1vZGVybiBicm93c2Vycyxcblx0XHRcdC8vIGJ1dCB3ZSBzaG91bGQgbm90LCBzZWUgIzgzMzUuXG5cdFx0XHQvLyBBbHdheXMgcmV0dXJuIGFuIGVtcHR5IG9iamVjdC5cblx0XHRcdGlmICggYWNjZXB0RGF0YSggb3duZXIgKSApIHtcblxuXHRcdFx0XHQvLyBJZiBpdCBpcyBhIG5vZGUgdW5saWtlbHkgdG8gYmUgc3RyaW5naWZ5LWVkIG9yIGxvb3BlZCBvdmVyXG5cdFx0XHRcdC8vIHVzZSBwbGFpbiBhc3NpZ25tZW50XG5cdFx0XHRcdGlmICggb3duZXIubm9kZVR5cGUgKSB7XG5cdFx0XHRcdFx0b3duZXJbIHRoaXMuZXhwYW5kbyBdID0gdmFsdWU7XG5cblx0XHRcdFx0Ly8gT3RoZXJ3aXNlIHNlY3VyZSBpdCBpbiBhIG5vbi1lbnVtZXJhYmxlIHByb3BlcnR5XG5cdFx0XHRcdC8vIGNvbmZpZ3VyYWJsZSBtdXN0IGJlIHRydWUgdG8gYWxsb3cgdGhlIHByb3BlcnR5IHRvIGJlXG5cdFx0XHRcdC8vIGRlbGV0ZWQgd2hlbiBkYXRhIGlzIHJlbW92ZWRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoIG93bmVyLCB0aGlzLmV4cGFuZG8sIHtcblx0XHRcdFx0XHRcdHZhbHVlOiB2YWx1ZSxcblx0XHRcdFx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZVxuXHRcdFx0XHRcdH0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB2YWx1ZTtcblx0fSxcblx0c2V0OiBmdW5jdGlvbiggb3duZXIsIGRhdGEsIHZhbHVlICkge1xuXHRcdHZhciBwcm9wLFxuXHRcdFx0Y2FjaGUgPSB0aGlzLmNhY2hlKCBvd25lciApO1xuXG5cdFx0Ly8gSGFuZGxlOiBbIG93bmVyLCBrZXksIHZhbHVlIF0gYXJnc1xuXHRcdC8vIEFsd2F5cyB1c2UgY2FtZWxDYXNlIGtleSAoZ2gtMjI1Nylcblx0XHRpZiAoIHR5cGVvZiBkYXRhID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0Y2FjaGVbIGNhbWVsQ2FzZSggZGF0YSApIF0gPSB2YWx1ZTtcblxuXHRcdC8vIEhhbmRsZTogWyBvd25lciwgeyBwcm9wZXJ0aWVzIH0gXSBhcmdzXG5cdFx0fSBlbHNlIHtcblxuXHRcdFx0Ly8gQ29weSB0aGUgcHJvcGVydGllcyBvbmUtYnktb25lIHRvIHRoZSBjYWNoZSBvYmplY3Rcblx0XHRcdGZvciAoIHByb3AgaW4gZGF0YSApIHtcblx0XHRcdFx0Y2FjaGVbIGNhbWVsQ2FzZSggcHJvcCApIF0gPSBkYXRhWyBwcm9wIF07XG5cdFx0XHR9XG5cdFx0fVxuXHRcdHJldHVybiBjYWNoZTtcblx0fSxcblx0Z2V0OiBmdW5jdGlvbiggb3duZXIsIGtleSApIHtcblx0XHRyZXR1cm4ga2V5ID09PSB1bmRlZmluZWQgP1xuXHRcdFx0dGhpcy5jYWNoZSggb3duZXIgKSA6XG5cblx0XHRcdC8vIEFsd2F5cyB1c2UgY2FtZWxDYXNlIGtleSAoZ2gtMjI1Nylcblx0XHRcdG93bmVyWyB0aGlzLmV4cGFuZG8gXSAmJiBvd25lclsgdGhpcy5leHBhbmRvIF1bIGNhbWVsQ2FzZSgga2V5ICkgXTtcblx0fSxcblx0YWNjZXNzOiBmdW5jdGlvbiggb3duZXIsIGtleSwgdmFsdWUgKSB7XG5cblx0XHQvLyBJbiBjYXNlcyB3aGVyZSBlaXRoZXI6XG5cdFx0Ly9cblx0XHQvLyAgIDEuIE5vIGtleSB3YXMgc3BlY2lmaWVkXG5cdFx0Ly8gICAyLiBBIHN0cmluZyBrZXkgd2FzIHNwZWNpZmllZCwgYnV0IG5vIHZhbHVlIHByb3ZpZGVkXG5cdFx0Ly9cblx0XHQvLyBUYWtlIHRoZSBcInJlYWRcIiBwYXRoIGFuZCBhbGxvdyB0aGUgZ2V0IG1ldGhvZCB0byBkZXRlcm1pbmVcblx0XHQvLyB3aGljaCB2YWx1ZSB0byByZXR1cm4sIHJlc3BlY3RpdmVseSBlaXRoZXI6XG5cdFx0Ly9cblx0XHQvLyAgIDEuIFRoZSBlbnRpcmUgY2FjaGUgb2JqZWN0XG5cdFx0Ly8gICAyLiBUaGUgZGF0YSBzdG9yZWQgYXQgdGhlIGtleVxuXHRcdC8vXG5cdFx0aWYgKCBrZXkgPT09IHVuZGVmaW5lZCB8fFxuXHRcdFx0XHQoICgga2V5ICYmIHR5cGVvZiBrZXkgPT09IFwic3RyaW5nXCIgKSAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkICkgKSB7XG5cblx0XHRcdHJldHVybiB0aGlzLmdldCggb3duZXIsIGtleSApO1xuXHRcdH1cblxuXHRcdC8vIFdoZW4gdGhlIGtleSBpcyBub3QgYSBzdHJpbmcsIG9yIGJvdGggYSBrZXkgYW5kIHZhbHVlXG5cdFx0Ly8gYXJlIHNwZWNpZmllZCwgc2V0IG9yIGV4dGVuZCAoZXhpc3Rpbmcgb2JqZWN0cykgd2l0aCBlaXRoZXI6XG5cdFx0Ly9cblx0XHQvLyAgIDEuIEFuIG9iamVjdCBvZiBwcm9wZXJ0aWVzXG5cdFx0Ly8gICAyLiBBIGtleSBhbmQgdmFsdWVcblx0XHQvL1xuXHRcdHRoaXMuc2V0KCBvd25lciwga2V5LCB2YWx1ZSApO1xuXG5cdFx0Ly8gU2luY2UgdGhlIFwic2V0XCIgcGF0aCBjYW4gaGF2ZSB0d28gcG9zc2libGUgZW50cnkgcG9pbnRzXG5cdFx0Ly8gcmV0dXJuIHRoZSBleHBlY3RlZCBkYXRhIGJhc2VkIG9uIHdoaWNoIHBhdGggd2FzIHRha2VuWypdXG5cdFx0cmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgPyB2YWx1ZSA6IGtleTtcblx0fSxcblx0cmVtb3ZlOiBmdW5jdGlvbiggb3duZXIsIGtleSApIHtcblx0XHR2YXIgaSxcblx0XHRcdGNhY2hlID0gb3duZXJbIHRoaXMuZXhwYW5kbyBdO1xuXG5cdFx0aWYgKCBjYWNoZSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICgga2V5ICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdC8vIFN1cHBvcnQgYXJyYXkgb3Igc3BhY2Ugc2VwYXJhdGVkIHN0cmluZyBvZiBrZXlzXG5cdFx0XHRpZiAoIEFycmF5LmlzQXJyYXkoIGtleSApICkge1xuXG5cdFx0XHRcdC8vIElmIGtleSBpcyBhbiBhcnJheSBvZiBrZXlzLi4uXG5cdFx0XHRcdC8vIFdlIGFsd2F5cyBzZXQgY2FtZWxDYXNlIGtleXMsIHNvIHJlbW92ZSB0aGF0LlxuXHRcdFx0XHRrZXkgPSBrZXkubWFwKCBjYW1lbENhc2UgKTtcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGtleSA9IGNhbWVsQ2FzZSgga2V5ICk7XG5cblx0XHRcdFx0Ly8gSWYgYSBrZXkgd2l0aCB0aGUgc3BhY2VzIGV4aXN0cywgdXNlIGl0LlxuXHRcdFx0XHQvLyBPdGhlcndpc2UsIGNyZWF0ZSBhbiBhcnJheSBieSBtYXRjaGluZyBub24td2hpdGVzcGFjZVxuXHRcdFx0XHRrZXkgPSBrZXkgaW4gY2FjaGUgP1xuXHRcdFx0XHRcdFsga2V5IF0gOlxuXHRcdFx0XHRcdCgga2V5Lm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgW10gKTtcblx0XHRcdH1cblxuXHRcdFx0aSA9IGtleS5sZW5ndGg7XG5cblx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRkZWxldGUgY2FjaGVbIGtleVsgaSBdIF07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUmVtb3ZlIHRoZSBleHBhbmRvIGlmIHRoZXJlJ3Mgbm8gbW9yZSBkYXRhXG5cdFx0aWYgKCBrZXkgPT09IHVuZGVmaW5lZCB8fCBqUXVlcnkuaXNFbXB0eU9iamVjdCggY2FjaGUgKSApIHtcblxuXHRcdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9MzUgLSA0NVxuXHRcdFx0Ly8gV2Via2l0ICYgQmxpbmsgcGVyZm9ybWFuY2Ugc3VmZmVycyB3aGVuIGRlbGV0aW5nIHByb3BlcnRpZXNcblx0XHRcdC8vIGZyb20gRE9NIG5vZGVzLCBzbyBzZXQgdG8gdW5kZWZpbmVkIGluc3RlYWRcblx0XHRcdC8vIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTM3ODYwNyAoYnVnIHJlc3RyaWN0ZWQpXG5cdFx0XHRpZiAoIG93bmVyLm5vZGVUeXBlICkge1xuXHRcdFx0XHRvd25lclsgdGhpcy5leHBhbmRvIF0gPSB1bmRlZmluZWQ7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkZWxldGUgb3duZXJbIHRoaXMuZXhwYW5kbyBdO1xuXHRcdFx0fVxuXHRcdH1cblx0fSxcblx0aGFzRGF0YTogZnVuY3Rpb24oIG93bmVyICkge1xuXHRcdHZhciBjYWNoZSA9IG93bmVyWyB0aGlzLmV4cGFuZG8gXTtcblx0XHRyZXR1cm4gY2FjaGUgIT09IHVuZGVmaW5lZCAmJiAhalF1ZXJ5LmlzRW1wdHlPYmplY3QoIGNhY2hlICk7XG5cdH1cbn07XG52YXIgZGF0YVByaXYgPSBuZXcgRGF0YSgpO1xuXG52YXIgZGF0YVVzZXIgPSBuZXcgRGF0YSgpO1xuXG5cblxuLy9cdEltcGxlbWVudGF0aW9uIFN1bW1hcnlcbi8vXG4vL1x0MS4gRW5mb3JjZSBBUEkgc3VyZmFjZSBhbmQgc2VtYW50aWMgY29tcGF0aWJpbGl0eSB3aXRoIDEuOS54IGJyYW5jaFxuLy9cdDIuIEltcHJvdmUgdGhlIG1vZHVsZSdzIG1haW50YWluYWJpbGl0eSBieSByZWR1Y2luZyB0aGUgc3RvcmFnZVxuLy9cdFx0cGF0aHMgdG8gYSBzaW5nbGUgbWVjaGFuaXNtLlxuLy9cdDMuIFVzZSB0aGUgc2FtZSBzaW5nbGUgbWVjaGFuaXNtIHRvIHN1cHBvcnQgXCJwcml2YXRlXCIgYW5kIFwidXNlclwiIGRhdGEuXG4vL1x0NC4gX05ldmVyXyBleHBvc2UgXCJwcml2YXRlXCIgZGF0YSB0byB1c2VyIGNvZGUgKFRPRE86IERyb3AgX2RhdGEsIF9yZW1vdmVEYXRhKVxuLy9cdDUuIEF2b2lkIGV4cG9zaW5nIGltcGxlbWVudGF0aW9uIGRldGFpbHMgb24gdXNlciBvYmplY3RzIChlZy4gZXhwYW5kbyBwcm9wZXJ0aWVzKVxuLy9cdDYuIFByb3ZpZGUgYSBjbGVhciBwYXRoIGZvciBpbXBsZW1lbnRhdGlvbiB1cGdyYWRlIHRvIFdlYWtNYXAgaW4gMjAxNFxuXG52YXIgcmJyYWNlID0gL14oPzpcXHtbXFx3XFxXXSpcXH18XFxbW1xcd1xcV10qXFxdKSQvLFxuXHRybXVsdGlEYXNoID0gL1tBLVpdL2c7XG5cbmZ1bmN0aW9uIGdldERhdGEoIGRhdGEgKSB7XG5cdGlmICggZGF0YSA9PT0gXCJ0cnVlXCIgKSB7XG5cdFx0cmV0dXJuIHRydWU7XG5cdH1cblxuXHRpZiAoIGRhdGEgPT09IFwiZmFsc2VcIiApIHtcblx0XHRyZXR1cm4gZmFsc2U7XG5cdH1cblxuXHRpZiAoIGRhdGEgPT09IFwibnVsbFwiICkge1xuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0Ly8gT25seSBjb252ZXJ0IHRvIGEgbnVtYmVyIGlmIGl0IGRvZXNuJ3QgY2hhbmdlIHRoZSBzdHJpbmdcblx0aWYgKCBkYXRhID09PSArZGF0YSArIFwiXCIgKSB7XG5cdFx0cmV0dXJuICtkYXRhO1xuXHR9XG5cblx0aWYgKCByYnJhY2UudGVzdCggZGF0YSApICkge1xuXHRcdHJldHVybiBKU09OLnBhcnNlKCBkYXRhICk7XG5cdH1cblxuXHRyZXR1cm4gZGF0YTtcbn1cblxuZnVuY3Rpb24gZGF0YUF0dHIoIGVsZW0sIGtleSwgZGF0YSApIHtcblx0dmFyIG5hbWU7XG5cblx0Ly8gSWYgbm90aGluZyB3YXMgZm91bmQgaW50ZXJuYWxseSwgdHJ5IHRvIGZldGNoIGFueVxuXHQvLyBkYXRhIGZyb20gdGhlIEhUTUw1IGRhdGEtKiBhdHRyaWJ1dGVcblx0aWYgKCBkYXRhID09PSB1bmRlZmluZWQgJiYgZWxlbS5ub2RlVHlwZSA9PT0gMSApIHtcblx0XHRuYW1lID0gXCJkYXRhLVwiICsga2V5LnJlcGxhY2UoIHJtdWx0aURhc2gsIFwiLSQmXCIgKS50b0xvd2VyQ2FzZSgpO1xuXHRcdGRhdGEgPSBlbGVtLmdldEF0dHJpYnV0ZSggbmFtZSApO1xuXG5cdFx0aWYgKCB0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIiApIHtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdGRhdGEgPSBnZXREYXRhKCBkYXRhICk7XG5cdFx0XHR9IGNhdGNoICggZSApIHt9XG5cblx0XHRcdC8vIE1ha2Ugc3VyZSB3ZSBzZXQgdGhlIGRhdGEgc28gaXQgaXNuJ3QgY2hhbmdlZCBsYXRlclxuXHRcdFx0ZGF0YVVzZXIuc2V0KCBlbGVtLCBrZXksIGRhdGEgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblx0cmV0dXJuIGRhdGE7XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblx0aGFzRGF0YTogZnVuY3Rpb24oIGVsZW0gKSB7XG5cdFx0cmV0dXJuIGRhdGFVc2VyLmhhc0RhdGEoIGVsZW0gKSB8fCBkYXRhUHJpdi5oYXNEYXRhKCBlbGVtICk7XG5cdH0sXG5cblx0ZGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGRhdGEgKSB7XG5cdFx0cmV0dXJuIGRhdGFVc2VyLmFjY2VzcyggZWxlbSwgbmFtZSwgZGF0YSApO1xuXHR9LFxuXG5cdHJlbW92ZURhdGE6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lICkge1xuXHRcdGRhdGFVc2VyLnJlbW92ZSggZWxlbSwgbmFtZSApO1xuXHR9LFxuXG5cdC8vIFRPRE86IE5vdyB0aGF0IGFsbCBjYWxscyB0byBfZGF0YSBhbmQgX3JlbW92ZURhdGEgaGF2ZSBiZWVuIHJlcGxhY2VkXG5cdC8vIHdpdGggZGlyZWN0IGNhbGxzIHRvIGRhdGFQcml2IG1ldGhvZHMsIHRoZXNlIGNhbiBiZSBkZXByZWNhdGVkLlxuXHRfZGF0YTogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIGRhdGEgKSB7XG5cdFx0cmV0dXJuIGRhdGFQcml2LmFjY2VzcyggZWxlbSwgbmFtZSwgZGF0YSApO1xuXHR9LFxuXG5cdF9yZW1vdmVEYXRhOiBmdW5jdGlvbiggZWxlbSwgbmFtZSApIHtcblx0XHRkYXRhUHJpdi5yZW1vdmUoIGVsZW0sIG5hbWUgKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGRhdGE6IGZ1bmN0aW9uKCBrZXksIHZhbHVlICkge1xuXHRcdHZhciBpLCBuYW1lLCBkYXRhLFxuXHRcdFx0ZWxlbSA9IHRoaXNbIDAgXSxcblx0XHRcdGF0dHJzID0gZWxlbSAmJiBlbGVtLmF0dHJpYnV0ZXM7XG5cblx0XHQvLyBHZXRzIGFsbCB2YWx1ZXNcblx0XHRpZiAoIGtleSA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0aWYgKCB0aGlzLmxlbmd0aCApIHtcblx0XHRcdFx0ZGF0YSA9IGRhdGFVc2VyLmdldCggZWxlbSApO1xuXG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAhZGF0YVByaXYuZ2V0KCBlbGVtLCBcImhhc0RhdGFBdHRyc1wiICkgKSB7XG5cdFx0XHRcdFx0aSA9IGF0dHJzLmxlbmd0aDtcblx0XHRcdFx0XHR3aGlsZSAoIGktLSApIHtcblxuXHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgMTEgb25seVxuXHRcdFx0XHRcdFx0Ly8gVGhlIGF0dHJzIGVsZW1lbnRzIGNhbiBiZSBudWxsICgjMTQ4OTQpXG5cdFx0XHRcdFx0XHRpZiAoIGF0dHJzWyBpIF0gKSB7XG5cdFx0XHRcdFx0XHRcdG5hbWUgPSBhdHRyc1sgaSBdLm5hbWU7XG5cdFx0XHRcdFx0XHRcdGlmICggbmFtZS5pbmRleE9mKCBcImRhdGEtXCIgKSA9PT0gMCApIHtcblx0XHRcdFx0XHRcdFx0XHRuYW1lID0gY2FtZWxDYXNlKCBuYW1lLnNsaWNlKCA1ICkgKTtcblx0XHRcdFx0XHRcdFx0XHRkYXRhQXR0ciggZWxlbSwgbmFtZSwgZGF0YVsgbmFtZSBdICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZGF0YVByaXYuc2V0KCBlbGVtLCBcImhhc0RhdGFBdHRyc1wiLCB0cnVlICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGRhdGE7XG5cdFx0fVxuXG5cdFx0Ly8gU2V0cyBtdWx0aXBsZSB2YWx1ZXNcblx0XHRpZiAoIHR5cGVvZiBrZXkgPT09IFwib2JqZWN0XCIgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGF0YVVzZXIuc2V0KCB0aGlzLCBrZXkgKTtcblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gYWNjZXNzKCB0aGlzLCBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgZGF0YTtcblxuXHRcdFx0Ly8gVGhlIGNhbGxpbmcgalF1ZXJ5IG9iamVjdCAoZWxlbWVudCBtYXRjaGVzKSBpcyBub3QgZW1wdHlcblx0XHRcdC8vIChhbmQgdGhlcmVmb3JlIGhhcyBhbiBlbGVtZW50IGFwcGVhcnMgYXQgdGhpc1sgMCBdKSBhbmQgdGhlXG5cdFx0XHQvLyBgdmFsdWVgIHBhcmFtZXRlciB3YXMgbm90IHVuZGVmaW5lZC4gQW4gZW1wdHkgalF1ZXJ5IG9iamVjdFxuXHRcdFx0Ly8gd2lsbCByZXN1bHQgaW4gYHVuZGVmaW5lZGAgZm9yIGVsZW0gPSB0aGlzWyAwIF0gd2hpY2ggd2lsbFxuXHRcdFx0Ly8gdGhyb3cgYW4gZXhjZXB0aW9uIGlmIGFuIGF0dGVtcHQgdG8gcmVhZCBhIGRhdGEgY2FjaGUgaXMgbWFkZS5cblx0XHRcdGlmICggZWxlbSAmJiB2YWx1ZSA9PT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHRcdC8vIEF0dGVtcHQgdG8gZ2V0IGRhdGEgZnJvbSB0aGUgY2FjaGVcblx0XHRcdFx0Ly8gVGhlIGtleSB3aWxsIGFsd2F5cyBiZSBjYW1lbENhc2VkIGluIERhdGFcblx0XHRcdFx0ZGF0YSA9IGRhdGFVc2VyLmdldCggZWxlbSwga2V5ICk7XG5cdFx0XHRcdGlmICggZGF0YSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHJldHVybiBkYXRhO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gQXR0ZW1wdCB0byBcImRpc2NvdmVyXCIgdGhlIGRhdGEgaW5cblx0XHRcdFx0Ly8gSFRNTDUgY3VzdG9tIGRhdGEtKiBhdHRyc1xuXHRcdFx0XHRkYXRhID0gZGF0YUF0dHIoIGVsZW0sIGtleSApO1xuXHRcdFx0XHRpZiAoIGRhdGEgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRyZXR1cm4gZGF0YTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIFdlIHRyaWVkIHJlYWxseSBoYXJkLCBidXQgdGhlIGRhdGEgZG9lc24ndCBleGlzdC5cblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBTZXQgdGhlIGRhdGEuLi5cblx0XHRcdHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0Ly8gV2UgYWx3YXlzIHN0b3JlIHRoZSBjYW1lbENhc2VkIGtleVxuXHRcdFx0XHRkYXRhVXNlci5zZXQoIHRoaXMsIGtleSwgdmFsdWUgKTtcblx0XHRcdH0gKTtcblx0XHR9LCBudWxsLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEsIG51bGwsIHRydWUgKTtcblx0fSxcblxuXHRyZW1vdmVEYXRhOiBmdW5jdGlvbigga2V5ICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0ZGF0YVVzZXIucmVtb3ZlKCB0aGlzLCBrZXkgKTtcblx0XHR9ICk7XG5cdH1cbn0gKTtcblxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdHF1ZXVlOiBmdW5jdGlvbiggZWxlbSwgdHlwZSwgZGF0YSApIHtcblx0XHR2YXIgcXVldWU7XG5cblx0XHRpZiAoIGVsZW0gKSB7XG5cdFx0XHR0eXBlID0gKCB0eXBlIHx8IFwiZnhcIiApICsgXCJxdWV1ZVwiO1xuXHRcdFx0cXVldWUgPSBkYXRhUHJpdi5nZXQoIGVsZW0sIHR5cGUgKTtcblxuXHRcdFx0Ly8gU3BlZWQgdXAgZGVxdWV1ZSBieSBnZXR0aW5nIG91dCBxdWlja2x5IGlmIHRoaXMgaXMganVzdCBhIGxvb2t1cFxuXHRcdFx0aWYgKCBkYXRhICkge1xuXHRcdFx0XHRpZiAoICFxdWV1ZSB8fCBBcnJheS5pc0FycmF5KCBkYXRhICkgKSB7XG5cdFx0XHRcdFx0cXVldWUgPSBkYXRhUHJpdi5hY2Nlc3MoIGVsZW0sIHR5cGUsIGpRdWVyeS5tYWtlQXJyYXkoIGRhdGEgKSApO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHF1ZXVlLnB1c2goIGRhdGEgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHF1ZXVlIHx8IFtdO1xuXHRcdH1cblx0fSxcblxuXHRkZXF1ZXVlOiBmdW5jdGlvbiggZWxlbSwgdHlwZSApIHtcblx0XHR0eXBlID0gdHlwZSB8fCBcImZ4XCI7XG5cblx0XHR2YXIgcXVldWUgPSBqUXVlcnkucXVldWUoIGVsZW0sIHR5cGUgKSxcblx0XHRcdHN0YXJ0TGVuZ3RoID0gcXVldWUubGVuZ3RoLFxuXHRcdFx0Zm4gPSBxdWV1ZS5zaGlmdCgpLFxuXHRcdFx0aG9va3MgPSBqUXVlcnkuX3F1ZXVlSG9va3MoIGVsZW0sIHR5cGUgKSxcblx0XHRcdG5leHQgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0alF1ZXJ5LmRlcXVldWUoIGVsZW0sIHR5cGUgKTtcblx0XHRcdH07XG5cblx0XHQvLyBJZiB0aGUgZnggcXVldWUgaXMgZGVxdWV1ZWQsIGFsd2F5cyByZW1vdmUgdGhlIHByb2dyZXNzIHNlbnRpbmVsXG5cdFx0aWYgKCBmbiA9PT0gXCJpbnByb2dyZXNzXCIgKSB7XG5cdFx0XHRmbiA9IHF1ZXVlLnNoaWZ0KCk7XG5cdFx0XHRzdGFydExlbmd0aC0tO1xuXHRcdH1cblxuXHRcdGlmICggZm4gKSB7XG5cblx0XHRcdC8vIEFkZCBhIHByb2dyZXNzIHNlbnRpbmVsIHRvIHByZXZlbnQgdGhlIGZ4IHF1ZXVlIGZyb20gYmVpbmdcblx0XHRcdC8vIGF1dG9tYXRpY2FsbHkgZGVxdWV1ZWRcblx0XHRcdGlmICggdHlwZSA9PT0gXCJmeFwiICkge1xuXHRcdFx0XHRxdWV1ZS51bnNoaWZ0KCBcImlucHJvZ3Jlc3NcIiApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDbGVhciB1cCB0aGUgbGFzdCBxdWV1ZSBzdG9wIGZ1bmN0aW9uXG5cdFx0XHRkZWxldGUgaG9va3Muc3RvcDtcblx0XHRcdGZuLmNhbGwoIGVsZW0sIG5leHQsIGhvb2tzICk7XG5cdFx0fVxuXG5cdFx0aWYgKCAhc3RhcnRMZW5ndGggJiYgaG9va3MgKSB7XG5cdFx0XHRob29rcy5lbXB0eS5maXJlKCk7XG5cdFx0fVxuXHR9LFxuXG5cdC8vIE5vdCBwdWJsaWMgLSBnZW5lcmF0ZSBhIHF1ZXVlSG9va3Mgb2JqZWN0LCBvciByZXR1cm4gdGhlIGN1cnJlbnQgb25lXG5cdF9xdWV1ZUhvb2tzOiBmdW5jdGlvbiggZWxlbSwgdHlwZSApIHtcblx0XHR2YXIga2V5ID0gdHlwZSArIFwicXVldWVIb29rc1wiO1xuXHRcdHJldHVybiBkYXRhUHJpdi5nZXQoIGVsZW0sIGtleSApIHx8IGRhdGFQcml2LmFjY2VzcyggZWxlbSwga2V5LCB7XG5cdFx0XHRlbXB0eTogalF1ZXJ5LkNhbGxiYWNrcyggXCJvbmNlIG1lbW9yeVwiICkuYWRkKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBlbGVtLCBbIHR5cGUgKyBcInF1ZXVlXCIsIGtleSBdICk7XG5cdFx0XHR9IClcblx0XHR9ICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRxdWV1ZTogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7XG5cdFx0dmFyIHNldHRlciA9IDI7XG5cblx0XHRpZiAoIHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0ZGF0YSA9IHR5cGU7XG5cdFx0XHR0eXBlID0gXCJmeFwiO1xuXHRcdFx0c2V0dGVyLS07XG5cdFx0fVxuXG5cdFx0aWYgKCBhcmd1bWVudHMubGVuZ3RoIDwgc2V0dGVyICkge1xuXHRcdFx0cmV0dXJuIGpRdWVyeS5xdWV1ZSggdGhpc1sgMCBdLCB0eXBlICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGRhdGEgPT09IHVuZGVmaW5lZCA/XG5cdFx0XHR0aGlzIDpcblx0XHRcdHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHZhciBxdWV1ZSA9IGpRdWVyeS5xdWV1ZSggdGhpcywgdHlwZSwgZGF0YSApO1xuXG5cdFx0XHRcdC8vIEVuc3VyZSBhIGhvb2tzIGZvciB0aGlzIHF1ZXVlXG5cdFx0XHRcdGpRdWVyeS5fcXVldWVIb29rcyggdGhpcywgdHlwZSApO1xuXG5cdFx0XHRcdGlmICggdHlwZSA9PT0gXCJmeFwiICYmIHF1ZXVlWyAwIF0gIT09IFwiaW5wcm9ncmVzc1wiICkge1xuXHRcdFx0XHRcdGpRdWVyeS5kZXF1ZXVlKCB0aGlzLCB0eXBlICk7XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0fSxcblx0ZGVxdWV1ZTogZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApO1xuXHRcdH0gKTtcblx0fSxcblx0Y2xlYXJRdWV1ZTogZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0cmV0dXJuIHRoaXMucXVldWUoIHR5cGUgfHwgXCJmeFwiLCBbXSApO1xuXHR9LFxuXG5cdC8vIEdldCBhIHByb21pc2UgcmVzb2x2ZWQgd2hlbiBxdWV1ZXMgb2YgYSBjZXJ0YWluIHR5cGVcblx0Ly8gYXJlIGVtcHRpZWQgKGZ4IGlzIHRoZSB0eXBlIGJ5IGRlZmF1bHQpXG5cdHByb21pc2U6IGZ1bmN0aW9uKCB0eXBlLCBvYmogKSB7XG5cdFx0dmFyIHRtcCxcblx0XHRcdGNvdW50ID0gMSxcblx0XHRcdGRlZmVyID0galF1ZXJ5LkRlZmVycmVkKCksXG5cdFx0XHRlbGVtZW50cyA9IHRoaXMsXG5cdFx0XHRpID0gdGhpcy5sZW5ndGgsXG5cdFx0XHRyZXNvbHZlID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggISggLS1jb3VudCApICkge1xuXHRcdFx0XHRcdGRlZmVyLnJlc29sdmVXaXRoKCBlbGVtZW50cywgWyBlbGVtZW50cyBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHRpZiAoIHR5cGVvZiB0eXBlICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0b2JqID0gdHlwZTtcblx0XHRcdHR5cGUgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXHRcdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblxuXHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0dG1wID0gZGF0YVByaXYuZ2V0KCBlbGVtZW50c1sgaSBdLCB0eXBlICsgXCJxdWV1ZUhvb2tzXCIgKTtcblx0XHRcdGlmICggdG1wICYmIHRtcC5lbXB0eSApIHtcblx0XHRcdFx0Y291bnQrKztcblx0XHRcdFx0dG1wLmVtcHR5LmFkZCggcmVzb2x2ZSApO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXNvbHZlKCk7XG5cdFx0cmV0dXJuIGRlZmVyLnByb21pc2UoIG9iaiApO1xuXHR9XG59ICk7XG52YXIgcG51bSA9ICggL1srLV0/KD86XFxkKlxcLnwpXFxkKyg/OltlRV1bKy1dP1xcZCt8KS8gKS5zb3VyY2U7XG5cbnZhciByY3NzTnVtID0gbmV3IFJlZ0V4cCggXCJeKD86KFsrLV0pPXwpKFwiICsgcG51bSArIFwiKShbYS16JV0qKSRcIiwgXCJpXCIgKTtcblxuXG52YXIgY3NzRXhwYW5kID0gWyBcIlRvcFwiLCBcIlJpZ2h0XCIsIFwiQm90dG9tXCIsIFwiTGVmdFwiIF07XG5cbnZhciBpc0hpZGRlbldpdGhpblRyZWUgPSBmdW5jdGlvbiggZWxlbSwgZWwgKSB7XG5cblx0XHQvLyBpc0hpZGRlbldpdGhpblRyZWUgbWlnaHQgYmUgY2FsbGVkIGZyb20galF1ZXJ5I2ZpbHRlciBmdW5jdGlvbjtcblx0XHQvLyBpbiB0aGF0IGNhc2UsIGVsZW1lbnQgd2lsbCBiZSBzZWNvbmQgYXJndW1lbnRcblx0XHRlbGVtID0gZWwgfHwgZWxlbTtcblxuXHRcdC8vIElubGluZSBzdHlsZSB0cnVtcHMgYWxsXG5cdFx0cmV0dXJuIGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJub25lXCIgfHxcblx0XHRcdGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJcIiAmJlxuXG5cdFx0XHQvLyBPdGhlcndpc2UsIGNoZWNrIGNvbXB1dGVkIHN0eWxlXG5cdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NDMgLSA0NVxuXHRcdFx0Ly8gRGlzY29ubmVjdGVkIGVsZW1lbnRzIGNhbiBoYXZlIGNvbXB1dGVkIGRpc3BsYXk6IG5vbmUsIHNvIGZpcnN0IGNvbmZpcm0gdGhhdCBlbGVtIGlzXG5cdFx0XHQvLyBpbiB0aGUgZG9jdW1lbnQuXG5cdFx0XHRqUXVlcnkuY29udGFpbnMoIGVsZW0ub3duZXJEb2N1bWVudCwgZWxlbSApICYmXG5cblx0XHRcdGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiICkgPT09IFwibm9uZVwiO1xuXHR9O1xuXG52YXIgc3dhcCA9IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBjYWxsYmFjaywgYXJncyApIHtcblx0dmFyIHJldCwgbmFtZSxcblx0XHRvbGQgPSB7fTtcblxuXHQvLyBSZW1lbWJlciB0aGUgb2xkIHZhbHVlcywgYW5kIGluc2VydCB0aGUgbmV3IG9uZXNcblx0Zm9yICggbmFtZSBpbiBvcHRpb25zICkge1xuXHRcdG9sZFsgbmFtZSBdID0gZWxlbS5zdHlsZVsgbmFtZSBdO1xuXHRcdGVsZW0uc3R5bGVbIG5hbWUgXSA9IG9wdGlvbnNbIG5hbWUgXTtcblx0fVxuXG5cdHJldCA9IGNhbGxiYWNrLmFwcGx5KCBlbGVtLCBhcmdzIHx8IFtdICk7XG5cblx0Ly8gUmV2ZXJ0IHRoZSBvbGQgdmFsdWVzXG5cdGZvciAoIG5hbWUgaW4gb3B0aW9ucyApIHtcblx0XHRlbGVtLnN0eWxlWyBuYW1lIF0gPSBvbGRbIG5hbWUgXTtcblx0fVxuXG5cdHJldHVybiByZXQ7XG59O1xuXG5cblxuXG5mdW5jdGlvbiBhZGp1c3RDU1MoIGVsZW0sIHByb3AsIHZhbHVlUGFydHMsIHR3ZWVuICkge1xuXHR2YXIgYWRqdXN0ZWQsIHNjYWxlLFxuXHRcdG1heEl0ZXJhdGlvbnMgPSAyMCxcblx0XHRjdXJyZW50VmFsdWUgPSB0d2VlbiA/XG5cdFx0XHRmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuIHR3ZWVuLmN1cigpO1xuXHRcdFx0fSA6XG5cdFx0XHRmdW5jdGlvbigpIHtcblx0XHRcdFx0cmV0dXJuIGpRdWVyeS5jc3MoIGVsZW0sIHByb3AsIFwiXCIgKTtcblx0XHRcdH0sXG5cdFx0aW5pdGlhbCA9IGN1cnJlbnRWYWx1ZSgpLFxuXHRcdHVuaXQgPSB2YWx1ZVBhcnRzICYmIHZhbHVlUGFydHNbIDMgXSB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIHByb3AgXSA/IFwiXCIgOiBcInB4XCIgKSxcblxuXHRcdC8vIFN0YXJ0aW5nIHZhbHVlIGNvbXB1dGF0aW9uIGlzIHJlcXVpcmVkIGZvciBwb3RlbnRpYWwgdW5pdCBtaXNtYXRjaGVzXG5cdFx0aW5pdGlhbEluVW5pdCA9ICggalF1ZXJ5LmNzc051bWJlclsgcHJvcCBdIHx8IHVuaXQgIT09IFwicHhcIiAmJiAraW5pdGlhbCApICYmXG5cdFx0XHRyY3NzTnVtLmV4ZWMoIGpRdWVyeS5jc3MoIGVsZW0sIHByb3AgKSApO1xuXG5cdGlmICggaW5pdGlhbEluVW5pdCAmJiBpbml0aWFsSW5Vbml0WyAzIF0gIT09IHVuaXQgKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NTRcblx0XHQvLyBIYWx2ZSB0aGUgaXRlcmF0aW9uIHRhcmdldCB2YWx1ZSB0byBwcmV2ZW50IGludGVyZmVyZW5jZSBmcm9tIENTUyB1cHBlciBib3VuZHMgKGdoLTIxNDQpXG5cdFx0aW5pdGlhbCA9IGluaXRpYWwgLyAyO1xuXG5cdFx0Ly8gVHJ1c3QgdW5pdHMgcmVwb3J0ZWQgYnkgalF1ZXJ5LmNzc1xuXHRcdHVuaXQgPSB1bml0IHx8IGluaXRpYWxJblVuaXRbIDMgXTtcblxuXHRcdC8vIEl0ZXJhdGl2ZWx5IGFwcHJveGltYXRlIGZyb20gYSBub256ZXJvIHN0YXJ0aW5nIHBvaW50XG5cdFx0aW5pdGlhbEluVW5pdCA9ICtpbml0aWFsIHx8IDE7XG5cblx0XHR3aGlsZSAoIG1heEl0ZXJhdGlvbnMtLSApIHtcblxuXHRcdFx0Ly8gRXZhbHVhdGUgYW5kIHVwZGF0ZSBvdXIgYmVzdCBndWVzcyAoZG91YmxpbmcgZ3Vlc3NlcyB0aGF0IHplcm8gb3V0KS5cblx0XHRcdC8vIEZpbmlzaCBpZiB0aGUgc2NhbGUgZXF1YWxzIG9yIGNyb3NzZXMgMSAobWFraW5nIHRoZSBvbGQqbmV3IHByb2R1Y3Qgbm9uLXBvc2l0aXZlKS5cblx0XHRcdGpRdWVyeS5zdHlsZSggZWxlbSwgcHJvcCwgaW5pdGlhbEluVW5pdCArIHVuaXQgKTtcblx0XHRcdGlmICggKCAxIC0gc2NhbGUgKSAqICggMSAtICggc2NhbGUgPSBjdXJyZW50VmFsdWUoKSAvIGluaXRpYWwgfHwgMC41ICkgKSA8PSAwICkge1xuXHRcdFx0XHRtYXhJdGVyYXRpb25zID0gMDtcblx0XHRcdH1cblx0XHRcdGluaXRpYWxJblVuaXQgPSBpbml0aWFsSW5Vbml0IC8gc2NhbGU7XG5cblx0XHR9XG5cblx0XHRpbml0aWFsSW5Vbml0ID0gaW5pdGlhbEluVW5pdCAqIDI7XG5cdFx0alF1ZXJ5LnN0eWxlKCBlbGVtLCBwcm9wLCBpbml0aWFsSW5Vbml0ICsgdW5pdCApO1xuXG5cdFx0Ly8gTWFrZSBzdXJlIHdlIHVwZGF0ZSB0aGUgdHdlZW4gcHJvcGVydGllcyBsYXRlciBvblxuXHRcdHZhbHVlUGFydHMgPSB2YWx1ZVBhcnRzIHx8IFtdO1xuXHR9XG5cblx0aWYgKCB2YWx1ZVBhcnRzICkge1xuXHRcdGluaXRpYWxJblVuaXQgPSAraW5pdGlhbEluVW5pdCB8fCAraW5pdGlhbCB8fCAwO1xuXG5cdFx0Ly8gQXBwbHkgcmVsYXRpdmUgb2Zmc2V0ICgrPS8tPSkgaWYgc3BlY2lmaWVkXG5cdFx0YWRqdXN0ZWQgPSB2YWx1ZVBhcnRzWyAxIF0gP1xuXHRcdFx0aW5pdGlhbEluVW5pdCArICggdmFsdWVQYXJ0c1sgMSBdICsgMSApICogdmFsdWVQYXJ0c1sgMiBdIDpcblx0XHRcdCt2YWx1ZVBhcnRzWyAyIF07XG5cdFx0aWYgKCB0d2VlbiApIHtcblx0XHRcdHR3ZWVuLnVuaXQgPSB1bml0O1xuXHRcdFx0dHdlZW4uc3RhcnQgPSBpbml0aWFsSW5Vbml0O1xuXHRcdFx0dHdlZW4uZW5kID0gYWRqdXN0ZWQ7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBhZGp1c3RlZDtcbn1cblxuXG52YXIgZGVmYXVsdERpc3BsYXlNYXAgPSB7fTtcblxuZnVuY3Rpb24gZ2V0RGVmYXVsdERpc3BsYXkoIGVsZW0gKSB7XG5cdHZhciB0ZW1wLFxuXHRcdGRvYyA9IGVsZW0ub3duZXJEb2N1bWVudCxcblx0XHRub2RlTmFtZSA9IGVsZW0ubm9kZU5hbWUsXG5cdFx0ZGlzcGxheSA9IGRlZmF1bHREaXNwbGF5TWFwWyBub2RlTmFtZSBdO1xuXG5cdGlmICggZGlzcGxheSApIHtcblx0XHRyZXR1cm4gZGlzcGxheTtcblx0fVxuXG5cdHRlbXAgPSBkb2MuYm9keS5hcHBlbmRDaGlsZCggZG9jLmNyZWF0ZUVsZW1lbnQoIG5vZGVOYW1lICkgKTtcblx0ZGlzcGxheSA9IGpRdWVyeS5jc3MoIHRlbXAsIFwiZGlzcGxheVwiICk7XG5cblx0dGVtcC5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKCB0ZW1wICk7XG5cblx0aWYgKCBkaXNwbGF5ID09PSBcIm5vbmVcIiApIHtcblx0XHRkaXNwbGF5ID0gXCJibG9ja1wiO1xuXHR9XG5cdGRlZmF1bHREaXNwbGF5TWFwWyBub2RlTmFtZSBdID0gZGlzcGxheTtcblxuXHRyZXR1cm4gZGlzcGxheTtcbn1cblxuZnVuY3Rpb24gc2hvd0hpZGUoIGVsZW1lbnRzLCBzaG93ICkge1xuXHR2YXIgZGlzcGxheSwgZWxlbSxcblx0XHR2YWx1ZXMgPSBbXSxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gZWxlbWVudHMubGVuZ3RoO1xuXG5cdC8vIERldGVybWluZSBuZXcgZGlzcGxheSB2YWx1ZSBmb3IgZWxlbWVudHMgdGhhdCBuZWVkIHRvIGNoYW5nZVxuXHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdGVsZW0gPSBlbGVtZW50c1sgaW5kZXggXTtcblx0XHRpZiAoICFlbGVtLnN0eWxlICkge1xuXHRcdFx0Y29udGludWU7XG5cdFx0fVxuXG5cdFx0ZGlzcGxheSA9IGVsZW0uc3R5bGUuZGlzcGxheTtcblx0XHRpZiAoIHNob3cgKSB7XG5cblx0XHRcdC8vIFNpbmNlIHdlIGZvcmNlIHZpc2liaWxpdHkgdXBvbiBjYXNjYWRlLWhpZGRlbiBlbGVtZW50cywgYW4gaW1tZWRpYXRlIChhbmQgc2xvdylcblx0XHRcdC8vIGNoZWNrIGlzIHJlcXVpcmVkIGluIHRoaXMgZmlyc3QgbG9vcCB1bmxlc3Mgd2UgaGF2ZSBhIG5vbmVtcHR5IGRpc3BsYXkgdmFsdWUgKGVpdGhlclxuXHRcdFx0Ly8gaW5saW5lIG9yIGFib3V0LXRvLWJlLXJlc3RvcmVkKVxuXHRcdFx0aWYgKCBkaXNwbGF5ID09PSBcIm5vbmVcIiApIHtcblx0XHRcdFx0dmFsdWVzWyBpbmRleCBdID0gZGF0YVByaXYuZ2V0KCBlbGVtLCBcImRpc3BsYXlcIiApIHx8IG51bGw7XG5cdFx0XHRcdGlmICggIXZhbHVlc1sgaW5kZXggXSApIHtcblx0XHRcdFx0XHRlbGVtLnN0eWxlLmRpc3BsYXkgPSBcIlwiO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAoIGVsZW0uc3R5bGUuZGlzcGxheSA9PT0gXCJcIiAmJiBpc0hpZGRlbldpdGhpblRyZWUoIGVsZW0gKSApIHtcblx0XHRcdFx0dmFsdWVzWyBpbmRleCBdID0gZ2V0RGVmYXVsdERpc3BsYXkoIGVsZW0gKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0aWYgKCBkaXNwbGF5ICE9PSBcIm5vbmVcIiApIHtcblx0XHRcdFx0dmFsdWVzWyBpbmRleCBdID0gXCJub25lXCI7XG5cblx0XHRcdFx0Ly8gUmVtZW1iZXIgd2hhdCB3ZSdyZSBvdmVyd3JpdGluZ1xuXHRcdFx0XHRkYXRhUHJpdi5zZXQoIGVsZW0sIFwiZGlzcGxheVwiLCBkaXNwbGF5ICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG5cblx0Ly8gU2V0IHRoZSBkaXNwbGF5IG9mIHRoZSBlbGVtZW50cyBpbiBhIHNlY29uZCBsb29wIHRvIGF2b2lkIGNvbnN0YW50IHJlZmxvd1xuXHRmb3IgKCBpbmRleCA9IDA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdGlmICggdmFsdWVzWyBpbmRleCBdICE9IG51bGwgKSB7XG5cdFx0XHRlbGVtZW50c1sgaW5kZXggXS5zdHlsZS5kaXNwbGF5ID0gdmFsdWVzWyBpbmRleCBdO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBlbGVtZW50cztcbn1cblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRzaG93OiBmdW5jdGlvbigpIHtcblx0XHRyZXR1cm4gc2hvd0hpZGUoIHRoaXMsIHRydWUgKTtcblx0fSxcblx0aGlkZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHNob3dIaWRlKCB0aGlzICk7XG5cdH0sXG5cdHRvZ2dsZTogZnVuY3Rpb24oIHN0YXRlICkge1xuXHRcdGlmICggdHlwZW9mIHN0YXRlID09PSBcImJvb2xlYW5cIiApIHtcblx0XHRcdHJldHVybiBzdGF0ZSA/IHRoaXMuc2hvdygpIDogdGhpcy5oaWRlKCk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIGlzSGlkZGVuV2l0aGluVHJlZSggdGhpcyApICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5zaG93KCk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS5oaWRlKCk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG59ICk7XG52YXIgcmNoZWNrYWJsZVR5cGUgPSAoIC9eKD86Y2hlY2tib3h8cmFkaW8pJC9pICk7XG5cbnZhciBydGFnTmFtZSA9ICggLzwoW2Etel1bXlxcL1xcMD5cXHgyMFxcdFxcclxcblxcZl0rKS9pICk7XG5cbnZhciByc2NyaXB0VHlwZSA9ICggL14kfF5tb2R1bGUkfFxcLyg/OmphdmF8ZWNtYSlzY3JpcHQvaSApO1xuXG5cblxuLy8gV2UgaGF2ZSB0byBjbG9zZSB0aGVzZSB0YWdzIHRvIHN1cHBvcnQgWEhUTUwgKCMxMzIwMClcbnZhciB3cmFwTWFwID0ge1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5cdG9wdGlvbjogWyAxLCBcIjxzZWxlY3QgbXVsdGlwbGU9J211bHRpcGxlJz5cIiwgXCI8L3NlbGVjdD5cIiBdLFxuXG5cdC8vIFhIVE1MIHBhcnNlcnMgZG8gbm90IG1hZ2ljYWxseSBpbnNlcnQgZWxlbWVudHMgaW4gdGhlXG5cdC8vIHNhbWUgd2F5IHRoYXQgdGFnIHNvdXAgcGFyc2VycyBkby4gU28gd2UgY2Fubm90IHNob3J0ZW5cblx0Ly8gdGhpcyBieSBvbWl0dGluZyA8dGJvZHk+IG9yIG90aGVyIHJlcXVpcmVkIGVsZW1lbnRzLlxuXHR0aGVhZDogWyAxLCBcIjx0YWJsZT5cIiwgXCI8L3RhYmxlPlwiIF0sXG5cdGNvbDogWyAyLCBcIjx0YWJsZT48Y29sZ3JvdXA+XCIsIFwiPC9jb2xncm91cD48L3RhYmxlPlwiIF0sXG5cdHRyOiBbIDIsIFwiPHRhYmxlPjx0Ym9keT5cIiwgXCI8L3Rib2R5PjwvdGFibGU+XCIgXSxcblx0dGQ6IFsgMywgXCI8dGFibGU+PHRib2R5Pjx0cj5cIiwgXCI8L3RyPjwvdGJvZHk+PC90YWJsZT5cIiBdLFxuXG5cdF9kZWZhdWx0OiBbIDAsIFwiXCIsIFwiXCIgXVxufTtcblxuLy8gU3VwcG9ydDogSUUgPD05IG9ubHlcbndyYXBNYXAub3B0Z3JvdXAgPSB3cmFwTWFwLm9wdGlvbjtcblxud3JhcE1hcC50Ym9keSA9IHdyYXBNYXAudGZvb3QgPSB3cmFwTWFwLmNvbGdyb3VwID0gd3JhcE1hcC5jYXB0aW9uID0gd3JhcE1hcC50aGVhZDtcbndyYXBNYXAudGggPSB3cmFwTWFwLnRkO1xuXG5cbmZ1bmN0aW9uIGdldEFsbCggY29udGV4dCwgdGFnICkge1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9OSAtIDExIG9ubHlcblx0Ly8gVXNlIHR5cGVvZiB0byBhdm9pZCB6ZXJvLWFyZ3VtZW50IG1ldGhvZCBpbnZvY2F0aW9uIG9uIGhvc3Qgb2JqZWN0cyAoIzE1MTUxKVxuXHR2YXIgcmV0O1xuXG5cdGlmICggdHlwZW9mIGNvbnRleHQuZ2V0RWxlbWVudHNCeVRhZ05hbWUgIT09IFwidW5kZWZpbmVkXCIgKSB7XG5cdFx0cmV0ID0gY29udGV4dC5nZXRFbGVtZW50c0J5VGFnTmFtZSggdGFnIHx8IFwiKlwiICk7XG5cblx0fSBlbHNlIGlmICggdHlwZW9mIGNvbnRleHQucXVlcnlTZWxlY3RvckFsbCAhPT0gXCJ1bmRlZmluZWRcIiApIHtcblx0XHRyZXQgPSBjb250ZXh0LnF1ZXJ5U2VsZWN0b3JBbGwoIHRhZyB8fCBcIipcIiApO1xuXG5cdH0gZWxzZSB7XG5cdFx0cmV0ID0gW107XG5cdH1cblxuXHRpZiAoIHRhZyA9PT0gdW5kZWZpbmVkIHx8IHRhZyAmJiBub2RlTmFtZSggY29udGV4dCwgdGFnICkgKSB7XG5cdFx0cmV0dXJuIGpRdWVyeS5tZXJnZSggWyBjb250ZXh0IF0sIHJldCApO1xuXHR9XG5cblx0cmV0dXJuIHJldDtcbn1cblxuXG4vLyBNYXJrIHNjcmlwdHMgYXMgaGF2aW5nIGFscmVhZHkgYmVlbiBldmFsdWF0ZWRcbmZ1bmN0aW9uIHNldEdsb2JhbEV2YWwoIGVsZW1zLCByZWZFbGVtZW50cyApIHtcblx0dmFyIGkgPSAwLFxuXHRcdGwgPSBlbGVtcy5sZW5ndGg7XG5cblx0Zm9yICggOyBpIDwgbDsgaSsrICkge1xuXHRcdGRhdGFQcml2LnNldChcblx0XHRcdGVsZW1zWyBpIF0sXG5cdFx0XHRcImdsb2JhbEV2YWxcIixcblx0XHRcdCFyZWZFbGVtZW50cyB8fCBkYXRhUHJpdi5nZXQoIHJlZkVsZW1lbnRzWyBpIF0sIFwiZ2xvYmFsRXZhbFwiIClcblx0XHQpO1xuXHR9XG59XG5cblxudmFyIHJodG1sID0gLzx8JiM/XFx3KzsvO1xuXG5mdW5jdGlvbiBidWlsZEZyYWdtZW50KCBlbGVtcywgY29udGV4dCwgc2NyaXB0cywgc2VsZWN0aW9uLCBpZ25vcmVkICkge1xuXHR2YXIgZWxlbSwgdG1wLCB0YWcsIHdyYXAsIGNvbnRhaW5zLCBqLFxuXHRcdGZyYWdtZW50ID0gY29udGV4dC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksXG5cdFx0bm9kZXMgPSBbXSxcblx0XHRpID0gMCxcblx0XHRsID0gZWxlbXMubGVuZ3RoO1xuXG5cdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRlbGVtID0gZWxlbXNbIGkgXTtcblxuXHRcdGlmICggZWxlbSB8fCBlbGVtID09PSAwICkge1xuXG5cdFx0XHQvLyBBZGQgbm9kZXMgZGlyZWN0bHlcblx0XHRcdGlmICggdG9UeXBlKCBlbGVtICkgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMCBvbmx5LCBQaGFudG9tSlMgMSBvbmx5XG5cdFx0XHRcdC8vIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdFx0alF1ZXJ5Lm1lcmdlKCBub2RlcywgZWxlbS5ub2RlVHlwZSA/IFsgZWxlbSBdIDogZWxlbSApO1xuXG5cdFx0XHQvLyBDb252ZXJ0IG5vbi1odG1sIGludG8gYSB0ZXh0IG5vZGVcblx0XHRcdH0gZWxzZSBpZiAoICFyaHRtbC50ZXN0KCBlbGVtICkgKSB7XG5cdFx0XHRcdG5vZGVzLnB1c2goIGNvbnRleHQuY3JlYXRlVGV4dE5vZGUoIGVsZW0gKSApO1xuXG5cdFx0XHQvLyBDb252ZXJ0IGh0bWwgaW50byBET00gbm9kZXNcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRtcCA9IHRtcCB8fCBmcmFnbWVudC5hcHBlbmRDaGlsZCggY29udGV4dC5jcmVhdGVFbGVtZW50KCBcImRpdlwiICkgKTtcblxuXHRcdFx0XHQvLyBEZXNlcmlhbGl6ZSBhIHN0YW5kYXJkIHJlcHJlc2VudGF0aW9uXG5cdFx0XHRcdHRhZyA9ICggcnRhZ05hbWUuZXhlYyggZWxlbSApIHx8IFsgXCJcIiwgXCJcIiBdIClbIDEgXS50b0xvd2VyQ2FzZSgpO1xuXHRcdFx0XHR3cmFwID0gd3JhcE1hcFsgdGFnIF0gfHwgd3JhcE1hcC5fZGVmYXVsdDtcblx0XHRcdFx0dG1wLmlubmVySFRNTCA9IHdyYXBbIDEgXSArIGpRdWVyeS5odG1sUHJlZmlsdGVyKCBlbGVtICkgKyB3cmFwWyAyIF07XG5cblx0XHRcdFx0Ly8gRGVzY2VuZCB0aHJvdWdoIHdyYXBwZXJzIHRvIHRoZSByaWdodCBjb250ZW50XG5cdFx0XHRcdGogPSB3cmFwWyAwIF07XG5cdFx0XHRcdHdoaWxlICggai0tICkge1xuXHRcdFx0XHRcdHRtcCA9IHRtcC5sYXN0Q2hpbGQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0XHRcdFx0Ly8gcHVzaC5hcHBseShfLCBhcnJheWxpa2UpIHRocm93cyBvbiBhbmNpZW50IFdlYktpdFxuXHRcdFx0XHRqUXVlcnkubWVyZ2UoIG5vZGVzLCB0bXAuY2hpbGROb2RlcyApO1xuXG5cdFx0XHRcdC8vIFJlbWVtYmVyIHRoZSB0b3AtbGV2ZWwgY29udGFpbmVyXG5cdFx0XHRcdHRtcCA9IGZyYWdtZW50LmZpcnN0Q2hpbGQ7XG5cblx0XHRcdFx0Ly8gRW5zdXJlIHRoZSBjcmVhdGVkIG5vZGVzIGFyZSBvcnBoYW5lZCAoIzEyMzkyKVxuXHRcdFx0XHR0bXAudGV4dENvbnRlbnQgPSBcIlwiO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIFJlbW92ZSB3cmFwcGVyIGZyb20gZnJhZ21lbnRcblx0ZnJhZ21lbnQudGV4dENvbnRlbnQgPSBcIlwiO1xuXG5cdGkgPSAwO1xuXHR3aGlsZSAoICggZWxlbSA9IG5vZGVzWyBpKysgXSApICkge1xuXG5cdFx0Ly8gU2tpcCBlbGVtZW50cyBhbHJlYWR5IGluIHRoZSBjb250ZXh0IGNvbGxlY3Rpb24gKHRyYWMtNDA4Nylcblx0XHRpZiAoIHNlbGVjdGlvbiAmJiBqUXVlcnkuaW5BcnJheSggZWxlbSwgc2VsZWN0aW9uICkgPiAtMSApIHtcblx0XHRcdGlmICggaWdub3JlZCApIHtcblx0XHRcdFx0aWdub3JlZC5wdXNoKCBlbGVtICk7XG5cdFx0XHR9XG5cdFx0XHRjb250aW51ZTtcblx0XHR9XG5cblx0XHRjb250YWlucyA9IGpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LCBlbGVtICk7XG5cblx0XHQvLyBBcHBlbmQgdG8gZnJhZ21lbnRcblx0XHR0bXAgPSBnZXRBbGwoIGZyYWdtZW50LmFwcGVuZENoaWxkKCBlbGVtICksIFwic2NyaXB0XCIgKTtcblxuXHRcdC8vIFByZXNlcnZlIHNjcmlwdCBldmFsdWF0aW9uIGhpc3Rvcnlcblx0XHRpZiAoIGNvbnRhaW5zICkge1xuXHRcdFx0c2V0R2xvYmFsRXZhbCggdG1wICk7XG5cdFx0fVxuXG5cdFx0Ly8gQ2FwdHVyZSBleGVjdXRhYmxlc1xuXHRcdGlmICggc2NyaXB0cyApIHtcblx0XHRcdGogPSAwO1xuXHRcdFx0d2hpbGUgKCAoIGVsZW0gPSB0bXBbIGorKyBdICkgKSB7XG5cdFx0XHRcdGlmICggcnNjcmlwdFR5cGUudGVzdCggZWxlbS50eXBlIHx8IFwiXCIgKSApIHtcblx0XHRcdFx0XHRzY3JpcHRzLnB1c2goIGVsZW0gKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBmcmFnbWVudDtcbn1cblxuXG4oIGZ1bmN0aW9uKCkge1xuXHR2YXIgZnJhZ21lbnQgPSBkb2N1bWVudC5jcmVhdGVEb2N1bWVudEZyYWdtZW50KCksXG5cdFx0ZGl2ID0gZnJhZ21lbnQuYXBwZW5kQ2hpbGQoIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZGl2XCIgKSApLFxuXHRcdGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJpbnB1dFwiICk7XG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZCA0LjAgLSA0LjMgb25seVxuXHQvLyBDaGVjayBzdGF0ZSBsb3N0IGlmIHRoZSBuYW1lIGlzIHNldCAoIzExMjE3KVxuXHQvLyBTdXBwb3J0OiBXaW5kb3dzIFdlYiBBcHBzIChXV0EpXG5cdC8vIGBuYW1lYCBhbmQgYHR5cGVgIG11c3QgdXNlIC5zZXRBdHRyaWJ1dGUgZm9yIFdXQSAoIzE0OTAxKVxuXHRpbnB1dC5zZXRBdHRyaWJ1dGUoIFwidHlwZVwiLCBcInJhZGlvXCIgKTtcblx0aW5wdXQuc2V0QXR0cmlidXRlKCBcImNoZWNrZWRcIiwgXCJjaGVja2VkXCIgKTtcblx0aW5wdXQuc2V0QXR0cmlidXRlKCBcIm5hbWVcIiwgXCJ0XCIgKTtcblxuXHRkaXYuYXBwZW5kQ2hpbGQoIGlucHV0ICk7XG5cblx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMSBvbmx5XG5cdC8vIE9sZGVyIFdlYktpdCBkb2Vzbid0IGNsb25lIGNoZWNrZWQgc3RhdGUgY29ycmVjdGx5IGluIGZyYWdtZW50c1xuXHRzdXBwb3J0LmNoZWNrQ2xvbmUgPSBkaXYuY2xvbmVOb2RlKCB0cnVlICkuY2xvbmVOb2RlKCB0cnVlICkubGFzdENoaWxkLmNoZWNrZWQ7XG5cblx0Ly8gU3VwcG9ydDogSUUgPD0xMSBvbmx5XG5cdC8vIE1ha2Ugc3VyZSB0ZXh0YXJlYSAoYW5kIGNoZWNrYm94KSBkZWZhdWx0VmFsdWUgaXMgcHJvcGVybHkgY2xvbmVkXG5cdGRpdi5pbm5lckhUTUwgPSBcIjx0ZXh0YXJlYT54PC90ZXh0YXJlYT5cIjtcblx0c3VwcG9ydC5ub0Nsb25lQ2hlY2tlZCA9ICEhZGl2LmNsb25lTm9kZSggdHJ1ZSApLmxhc3RDaGlsZC5kZWZhdWx0VmFsdWU7XG59ICkoKTtcbnZhciBkb2N1bWVudEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQ7XG5cblxuXG52YXJcblx0cmtleUV2ZW50ID0gL15rZXkvLFxuXHRybW91c2VFdmVudCA9IC9eKD86bW91c2V8cG9pbnRlcnxjb250ZXh0bWVudXxkcmFnfGRyb3ApfGNsaWNrLyxcblx0cnR5cGVuYW1lc3BhY2UgPSAvXihbXi5dKikoPzpcXC4oLispfCkvO1xuXG5mdW5jdGlvbiByZXR1cm5UcnVlKCkge1xuXHRyZXR1cm4gdHJ1ZTtcbn1cblxuZnVuY3Rpb24gcmV0dXJuRmFsc2UoKSB7XG5cdHJldHVybiBmYWxzZTtcbn1cblxuLy8gU3VwcG9ydDogSUUgPD05IG9ubHlcbi8vIFNlZSAjMTMzOTMgZm9yIG1vcmUgaW5mb1xuZnVuY3Rpb24gc2FmZUFjdGl2ZUVsZW1lbnQoKSB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG5cdH0gY2F0Y2ggKCBlcnIgKSB7IH1cbn1cblxuZnVuY3Rpb24gb24oIGVsZW0sIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4sIG9uZSApIHtcblx0dmFyIG9yaWdGbiwgdHlwZTtcblxuXHQvLyBUeXBlcyBjYW4gYmUgYSBtYXAgb2YgdHlwZXMvaGFuZGxlcnNcblx0aWYgKCB0eXBlb2YgdHlwZXMgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHQvLyAoIHR5cGVzLU9iamVjdCwgc2VsZWN0b3IsIGRhdGEgKVxuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yICE9PSBcInN0cmluZ1wiICkge1xuXG5cdFx0XHQvLyAoIHR5cGVzLU9iamVjdCwgZGF0YSApXG5cdFx0XHRkYXRhID0gZGF0YSB8fCBzZWxlY3Rvcjtcblx0XHRcdHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRmb3IgKCB0eXBlIGluIHR5cGVzICkge1xuXHRcdFx0b24oIGVsZW0sIHR5cGUsIHNlbGVjdG9yLCBkYXRhLCB0eXBlc1sgdHlwZSBdLCBvbmUgKTtcblx0XHR9XG5cdFx0cmV0dXJuIGVsZW07XG5cdH1cblxuXHRpZiAoIGRhdGEgPT0gbnVsbCAmJiBmbiA9PSBudWxsICkge1xuXG5cdFx0Ly8gKCB0eXBlcywgZm4gKVxuXHRcdGZuID0gc2VsZWN0b3I7XG5cdFx0ZGF0YSA9IHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHR9IGVsc2UgaWYgKCBmbiA9PSBudWxsICkge1xuXHRcdGlmICggdHlwZW9mIHNlbGVjdG9yID09PSBcInN0cmluZ1wiICkge1xuXG5cdFx0XHQvLyAoIHR5cGVzLCBzZWxlY3RvciwgZm4gKVxuXHRcdFx0Zm4gPSBkYXRhO1xuXHRcdFx0ZGF0YSA9IHVuZGVmaW5lZDtcblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyAoIHR5cGVzLCBkYXRhLCBmbiApXG5cdFx0XHRmbiA9IGRhdGE7XG5cdFx0XHRkYXRhID0gc2VsZWN0b3I7XG5cdFx0XHRzZWxlY3RvciA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdH1cblx0aWYgKCBmbiA9PT0gZmFsc2UgKSB7XG5cdFx0Zm4gPSByZXR1cm5GYWxzZTtcblx0fSBlbHNlIGlmICggIWZuICkge1xuXHRcdHJldHVybiBlbGVtO1xuXHR9XG5cblx0aWYgKCBvbmUgPT09IDEgKSB7XG5cdFx0b3JpZ0ZuID0gZm47XG5cdFx0Zm4gPSBmdW5jdGlvbiggZXZlbnQgKSB7XG5cblx0XHRcdC8vIENhbiB1c2UgYW4gZW1wdHkgc2V0LCBzaW5jZSBldmVudCBjb250YWlucyB0aGUgaW5mb1xuXHRcdFx0alF1ZXJ5KCkub2ZmKCBldmVudCApO1xuXHRcdFx0cmV0dXJuIG9yaWdGbi5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0fTtcblxuXHRcdC8vIFVzZSBzYW1lIGd1aWQgc28gY2FsbGVyIGNhbiByZW1vdmUgdXNpbmcgb3JpZ0ZuXG5cdFx0Zm4uZ3VpZCA9IG9yaWdGbi5ndWlkIHx8ICggb3JpZ0ZuLmd1aWQgPSBqUXVlcnkuZ3VpZCsrICk7XG5cdH1cblx0cmV0dXJuIGVsZW0uZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0alF1ZXJ5LmV2ZW50LmFkZCggdGhpcywgdHlwZXMsIGZuLCBkYXRhLCBzZWxlY3RvciApO1xuXHR9ICk7XG59XG5cbi8qXG4gKiBIZWxwZXIgZnVuY3Rpb25zIGZvciBtYW5hZ2luZyBldmVudHMgLS0gbm90IHBhcnQgb2YgdGhlIHB1YmxpYyBpbnRlcmZhY2UuXG4gKiBQcm9wcyB0byBEZWFuIEVkd2FyZHMnIGFkZEV2ZW50IGxpYnJhcnkgZm9yIG1hbnkgb2YgdGhlIGlkZWFzLlxuICovXG5qUXVlcnkuZXZlbnQgPSB7XG5cblx0Z2xvYmFsOiB7fSxcblxuXHRhZGQ6IGZ1bmN0aW9uKCBlbGVtLCB0eXBlcywgaGFuZGxlciwgZGF0YSwgc2VsZWN0b3IgKSB7XG5cblx0XHR2YXIgaGFuZGxlT2JqSW4sIGV2ZW50SGFuZGxlLCB0bXAsXG5cdFx0XHRldmVudHMsIHQsIGhhbmRsZU9iaixcblx0XHRcdHNwZWNpYWwsIGhhbmRsZXJzLCB0eXBlLCBuYW1lc3BhY2VzLCBvcmlnVHlwZSxcblx0XHRcdGVsZW1EYXRhID0gZGF0YVByaXYuZ2V0KCBlbGVtICk7XG5cblx0XHQvLyBEb24ndCBhdHRhY2ggZXZlbnRzIHRvIG5vRGF0YSBvciB0ZXh0L2NvbW1lbnQgbm9kZXMgKGJ1dCBhbGxvdyBwbGFpbiBvYmplY3RzKVxuXHRcdGlmICggIWVsZW1EYXRhICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIENhbGxlciBjYW4gcGFzcyBpbiBhbiBvYmplY3Qgb2YgY3VzdG9tIGRhdGEgaW4gbGlldSBvZiB0aGUgaGFuZGxlclxuXHRcdGlmICggaGFuZGxlci5oYW5kbGVyICkge1xuXHRcdFx0aGFuZGxlT2JqSW4gPSBoYW5kbGVyO1xuXHRcdFx0aGFuZGxlciA9IGhhbmRsZU9iakluLmhhbmRsZXI7XG5cdFx0XHRzZWxlY3RvciA9IGhhbmRsZU9iakluLnNlbGVjdG9yO1xuXHRcdH1cblxuXHRcdC8vIEVuc3VyZSB0aGF0IGludmFsaWQgc2VsZWN0b3JzIHRocm93IGV4Y2VwdGlvbnMgYXQgYXR0YWNoIHRpbWVcblx0XHQvLyBFdmFsdWF0ZSBhZ2FpbnN0IGRvY3VtZW50RWxlbWVudCBpbiBjYXNlIGVsZW0gaXMgYSBub24tZWxlbWVudCBub2RlIChlLmcuLCBkb2N1bWVudClcblx0XHRpZiAoIHNlbGVjdG9yICkge1xuXHRcdFx0alF1ZXJ5LmZpbmQubWF0Y2hlc1NlbGVjdG9yKCBkb2N1bWVudEVsZW1lbnQsIHNlbGVjdG9yICk7XG5cdFx0fVxuXG5cdFx0Ly8gTWFrZSBzdXJlIHRoYXQgdGhlIGhhbmRsZXIgaGFzIGEgdW5pcXVlIElELCB1c2VkIHRvIGZpbmQvcmVtb3ZlIGl0IGxhdGVyXG5cdFx0aWYgKCAhaGFuZGxlci5ndWlkICkge1xuXHRcdFx0aGFuZGxlci5ndWlkID0galF1ZXJ5Lmd1aWQrKztcblx0XHR9XG5cblx0XHQvLyBJbml0IHRoZSBlbGVtZW50J3MgZXZlbnQgc3RydWN0dXJlIGFuZCBtYWluIGhhbmRsZXIsIGlmIHRoaXMgaXMgdGhlIGZpcnN0XG5cdFx0aWYgKCAhKCBldmVudHMgPSBlbGVtRGF0YS5ldmVudHMgKSApIHtcblx0XHRcdGV2ZW50cyA9IGVsZW1EYXRhLmV2ZW50cyA9IHt9O1xuXHRcdH1cblx0XHRpZiAoICEoIGV2ZW50SGFuZGxlID0gZWxlbURhdGEuaGFuZGxlICkgKSB7XG5cdFx0XHRldmVudEhhbmRsZSA9IGVsZW1EYXRhLmhhbmRsZSA9IGZ1bmN0aW9uKCBlICkge1xuXG5cdFx0XHRcdC8vIERpc2NhcmQgdGhlIHNlY29uZCBldmVudCBvZiBhIGpRdWVyeS5ldmVudC50cmlnZ2VyKCkgYW5kXG5cdFx0XHRcdC8vIHdoZW4gYW4gZXZlbnQgaXMgY2FsbGVkIGFmdGVyIGEgcGFnZSBoYXMgdW5sb2FkZWRcblx0XHRcdFx0cmV0dXJuIHR5cGVvZiBqUXVlcnkgIT09IFwidW5kZWZpbmVkXCIgJiYgalF1ZXJ5LmV2ZW50LnRyaWdnZXJlZCAhPT0gZS50eXBlID9cblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQuZGlzcGF0Y2guYXBwbHkoIGVsZW0sIGFyZ3VtZW50cyApIDogdW5kZWZpbmVkO1xuXHRcdFx0fTtcblx0XHR9XG5cblx0XHQvLyBIYW5kbGUgbXVsdGlwbGUgZXZlbnRzIHNlcGFyYXRlZCBieSBhIHNwYWNlXG5cdFx0dHlwZXMgPSAoIHR5cGVzIHx8IFwiXCIgKS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFsgXCJcIiBdO1xuXHRcdHQgPSB0eXBlcy5sZW5ndGg7XG5cdFx0d2hpbGUgKCB0LS0gKSB7XG5cdFx0XHR0bXAgPSBydHlwZW5hbWVzcGFjZS5leGVjKCB0eXBlc1sgdCBdICkgfHwgW107XG5cdFx0XHR0eXBlID0gb3JpZ1R5cGUgPSB0bXBbIDEgXTtcblx0XHRcdG5hbWVzcGFjZXMgPSAoIHRtcFsgMiBdIHx8IFwiXCIgKS5zcGxpdCggXCIuXCIgKS5zb3J0KCk7XG5cblx0XHRcdC8vIFRoZXJlICptdXN0KiBiZSBhIHR5cGUsIG5vIGF0dGFjaGluZyBuYW1lc3BhY2Utb25seSBoYW5kbGVyc1xuXHRcdFx0aWYgKCAhdHlwZSApIHtcblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIGV2ZW50IGNoYW5nZXMgaXRzIHR5cGUsIHVzZSB0aGUgc3BlY2lhbCBldmVudCBoYW5kbGVycyBmb3IgdGhlIGNoYW5nZWQgdHlwZVxuXHRcdFx0c3BlY2lhbCA9IGpRdWVyeS5ldmVudC5zcGVjaWFsWyB0eXBlIF0gfHwge307XG5cblx0XHRcdC8vIElmIHNlbGVjdG9yIGRlZmluZWQsIGRldGVybWluZSBzcGVjaWFsIGV2ZW50IGFwaSB0eXBlLCBvdGhlcndpc2UgZ2l2ZW4gdHlwZVxuXHRcdFx0dHlwZSA9ICggc2VsZWN0b3IgPyBzcGVjaWFsLmRlbGVnYXRlVHlwZSA6IHNwZWNpYWwuYmluZFR5cGUgKSB8fCB0eXBlO1xuXG5cdFx0XHQvLyBVcGRhdGUgc3BlY2lhbCBiYXNlZCBvbiBuZXdseSByZXNldCB0eXBlXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIHR5cGUgXSB8fCB7fTtcblxuXHRcdFx0Ly8gaGFuZGxlT2JqIGlzIHBhc3NlZCB0byBhbGwgZXZlbnQgaGFuZGxlcnNcblx0XHRcdGhhbmRsZU9iaiA9IGpRdWVyeS5leHRlbmQoIHtcblx0XHRcdFx0dHlwZTogdHlwZSxcblx0XHRcdFx0b3JpZ1R5cGU6IG9yaWdUeXBlLFxuXHRcdFx0XHRkYXRhOiBkYXRhLFxuXHRcdFx0XHRoYW5kbGVyOiBoYW5kbGVyLFxuXHRcdFx0XHRndWlkOiBoYW5kbGVyLmd1aWQsXG5cdFx0XHRcdHNlbGVjdG9yOiBzZWxlY3Rvcixcblx0XHRcdFx0bmVlZHNDb250ZXh0OiBzZWxlY3RvciAmJiBqUXVlcnkuZXhwci5tYXRjaC5uZWVkc0NvbnRleHQudGVzdCggc2VsZWN0b3IgKSxcblx0XHRcdFx0bmFtZXNwYWNlOiBuYW1lc3BhY2VzLmpvaW4oIFwiLlwiIClcblx0XHRcdH0sIGhhbmRsZU9iakluICk7XG5cblx0XHRcdC8vIEluaXQgdGhlIGV2ZW50IGhhbmRsZXIgcXVldWUgaWYgd2UncmUgdGhlIGZpcnN0XG5cdFx0XHRpZiAoICEoIGhhbmRsZXJzID0gZXZlbnRzWyB0eXBlIF0gKSApIHtcblx0XHRcdFx0aGFuZGxlcnMgPSBldmVudHNbIHR5cGUgXSA9IFtdO1xuXHRcdFx0XHRoYW5kbGVycy5kZWxlZ2F0ZUNvdW50ID0gMDtcblxuXHRcdFx0XHQvLyBPbmx5IHVzZSBhZGRFdmVudExpc3RlbmVyIGlmIHRoZSBzcGVjaWFsIGV2ZW50cyBoYW5kbGVyIHJldHVybnMgZmFsc2Vcblx0XHRcdFx0aWYgKCAhc3BlY2lhbC5zZXR1cCB8fFxuXHRcdFx0XHRcdHNwZWNpYWwuc2V0dXAuY2FsbCggZWxlbSwgZGF0YSwgbmFtZXNwYWNlcywgZXZlbnRIYW5kbGUgKSA9PT0gZmFsc2UgKSB7XG5cblx0XHRcdFx0XHRpZiAoIGVsZW0uYWRkRXZlbnRMaXN0ZW5lciApIHtcblx0XHRcdFx0XHRcdGVsZW0uYWRkRXZlbnRMaXN0ZW5lciggdHlwZSwgZXZlbnRIYW5kbGUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0aWYgKCBzcGVjaWFsLmFkZCApIHtcblx0XHRcdFx0c3BlY2lhbC5hZGQuY2FsbCggZWxlbSwgaGFuZGxlT2JqICk7XG5cblx0XHRcdFx0aWYgKCAhaGFuZGxlT2JqLmhhbmRsZXIuZ3VpZCApIHtcblx0XHRcdFx0XHRoYW5kbGVPYmouaGFuZGxlci5ndWlkID0gaGFuZGxlci5ndWlkO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdC8vIEFkZCB0byB0aGUgZWxlbWVudCdzIGhhbmRsZXIgbGlzdCwgZGVsZWdhdGVzIGluIGZyb250XG5cdFx0XHRpZiAoIHNlbGVjdG9yICkge1xuXHRcdFx0XHRoYW5kbGVycy5zcGxpY2UoIGhhbmRsZXJzLmRlbGVnYXRlQ291bnQrKywgMCwgaGFuZGxlT2JqICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRoYW5kbGVycy5wdXNoKCBoYW5kbGVPYmogKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gS2VlcCB0cmFjayBvZiB3aGljaCBldmVudHMgaGF2ZSBldmVyIGJlZW4gdXNlZCwgZm9yIGV2ZW50IG9wdGltaXphdGlvblxuXHRcdFx0alF1ZXJ5LmV2ZW50Lmdsb2JhbFsgdHlwZSBdID0gdHJ1ZTtcblx0XHR9XG5cblx0fSxcblxuXHQvLyBEZXRhY2ggYW4gZXZlbnQgb3Igc2V0IG9mIGV2ZW50cyBmcm9tIGFuIGVsZW1lbnRcblx0cmVtb3ZlOiBmdW5jdGlvbiggZWxlbSwgdHlwZXMsIGhhbmRsZXIsIHNlbGVjdG9yLCBtYXBwZWRUeXBlcyApIHtcblxuXHRcdHZhciBqLCBvcmlnQ291bnQsIHRtcCxcblx0XHRcdGV2ZW50cywgdCwgaGFuZGxlT2JqLFxuXHRcdFx0c3BlY2lhbCwgaGFuZGxlcnMsIHR5cGUsIG5hbWVzcGFjZXMsIG9yaWdUeXBlLFxuXHRcdFx0ZWxlbURhdGEgPSBkYXRhUHJpdi5oYXNEYXRhKCBlbGVtICkgJiYgZGF0YVByaXYuZ2V0KCBlbGVtICk7XG5cblx0XHRpZiAoICFlbGVtRGF0YSB8fCAhKCBldmVudHMgPSBlbGVtRGF0YS5ldmVudHMgKSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBPbmNlIGZvciBlYWNoIHR5cGUubmFtZXNwYWNlIGluIHR5cGVzOyB0eXBlIG1heSBiZSBvbWl0dGVkXG5cdFx0dHlwZXMgPSAoIHR5cGVzIHx8IFwiXCIgKS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFsgXCJcIiBdO1xuXHRcdHQgPSB0eXBlcy5sZW5ndGg7XG5cdFx0d2hpbGUgKCB0LS0gKSB7XG5cdFx0XHR0bXAgPSBydHlwZW5hbWVzcGFjZS5leGVjKCB0eXBlc1sgdCBdICkgfHwgW107XG5cdFx0XHR0eXBlID0gb3JpZ1R5cGUgPSB0bXBbIDEgXTtcblx0XHRcdG5hbWVzcGFjZXMgPSAoIHRtcFsgMiBdIHx8IFwiXCIgKS5zcGxpdCggXCIuXCIgKS5zb3J0KCk7XG5cblx0XHRcdC8vIFVuYmluZCBhbGwgZXZlbnRzIChvbiB0aGlzIG5hbWVzcGFjZSwgaWYgcHJvdmlkZWQpIGZvciB0aGUgZWxlbWVudFxuXHRcdFx0aWYgKCAhdHlwZSApIHtcblx0XHRcdFx0Zm9yICggdHlwZSBpbiBldmVudHMgKSB7XG5cdFx0XHRcdFx0alF1ZXJ5LmV2ZW50LnJlbW92ZSggZWxlbSwgdHlwZSArIHR5cGVzWyB0IF0sIGhhbmRsZXIsIHNlbGVjdG9yLCB0cnVlICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0Y29udGludWU7XG5cdFx0XHR9XG5cblx0XHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xuXHRcdFx0dHlwZSA9ICggc2VsZWN0b3IgPyBzcGVjaWFsLmRlbGVnYXRlVHlwZSA6IHNwZWNpYWwuYmluZFR5cGUgKSB8fCB0eXBlO1xuXHRcdFx0aGFuZGxlcnMgPSBldmVudHNbIHR5cGUgXSB8fCBbXTtcblx0XHRcdHRtcCA9IHRtcFsgMiBdICYmXG5cdFx0XHRcdG5ldyBSZWdFeHAoIFwiKF58XFxcXC4pXCIgKyBuYW1lc3BhY2VzLmpvaW4oIFwiXFxcXC4oPzouKlxcXFwufClcIiApICsgXCIoXFxcXC58JClcIiApO1xuXG5cdFx0XHQvLyBSZW1vdmUgbWF0Y2hpbmcgZXZlbnRzXG5cdFx0XHRvcmlnQ291bnQgPSBqID0gaGFuZGxlcnMubGVuZ3RoO1xuXHRcdFx0d2hpbGUgKCBqLS0gKSB7XG5cdFx0XHRcdGhhbmRsZU9iaiA9IGhhbmRsZXJzWyBqIF07XG5cblx0XHRcdFx0aWYgKCAoIG1hcHBlZFR5cGVzIHx8IG9yaWdUeXBlID09PSBoYW5kbGVPYmoub3JpZ1R5cGUgKSAmJlxuXHRcdFx0XHRcdCggIWhhbmRsZXIgfHwgaGFuZGxlci5ndWlkID09PSBoYW5kbGVPYmouZ3VpZCApICYmXG5cdFx0XHRcdFx0KCAhdG1wIHx8IHRtcC50ZXN0KCBoYW5kbGVPYmoubmFtZXNwYWNlICkgKSAmJlxuXHRcdFx0XHRcdCggIXNlbGVjdG9yIHx8IHNlbGVjdG9yID09PSBoYW5kbGVPYmouc2VsZWN0b3IgfHxcblx0XHRcdFx0XHRcdHNlbGVjdG9yID09PSBcIioqXCIgJiYgaGFuZGxlT2JqLnNlbGVjdG9yICkgKSB7XG5cdFx0XHRcdFx0aGFuZGxlcnMuc3BsaWNlKCBqLCAxICk7XG5cblx0XHRcdFx0XHRpZiAoIGhhbmRsZU9iai5zZWxlY3RvciApIHtcblx0XHRcdFx0XHRcdGhhbmRsZXJzLmRlbGVnYXRlQ291bnQtLTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYgKCBzcGVjaWFsLnJlbW92ZSApIHtcblx0XHRcdFx0XHRcdHNwZWNpYWwucmVtb3ZlLmNhbGwoIGVsZW0sIGhhbmRsZU9iaiApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBSZW1vdmUgZ2VuZXJpYyBldmVudCBoYW5kbGVyIGlmIHdlIHJlbW92ZWQgc29tZXRoaW5nIGFuZCBubyBtb3JlIGhhbmRsZXJzIGV4aXN0XG5cdFx0XHQvLyAoYXZvaWRzIHBvdGVudGlhbCBmb3IgZW5kbGVzcyByZWN1cnNpb24gZHVyaW5nIHJlbW92YWwgb2Ygc3BlY2lhbCBldmVudCBoYW5kbGVycylcblx0XHRcdGlmICggb3JpZ0NvdW50ICYmICFoYW5kbGVycy5sZW5ndGggKSB7XG5cdFx0XHRcdGlmICggIXNwZWNpYWwudGVhcmRvd24gfHxcblx0XHRcdFx0XHRzcGVjaWFsLnRlYXJkb3duLmNhbGwoIGVsZW0sIG5hbWVzcGFjZXMsIGVsZW1EYXRhLmhhbmRsZSApID09PSBmYWxzZSApIHtcblxuXHRcdFx0XHRcdGpRdWVyeS5yZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZWxlbURhdGEuaGFuZGxlICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRkZWxldGUgZXZlbnRzWyB0eXBlIF07XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gUmVtb3ZlIGRhdGEgYW5kIHRoZSBleHBhbmRvIGlmIGl0J3Mgbm8gbG9uZ2VyIHVzZWRcblx0XHRpZiAoIGpRdWVyeS5pc0VtcHR5T2JqZWN0KCBldmVudHMgKSApIHtcblx0XHRcdGRhdGFQcml2LnJlbW92ZSggZWxlbSwgXCJoYW5kbGUgZXZlbnRzXCIgKTtcblx0XHR9XG5cdH0sXG5cblx0ZGlzcGF0Y2g6IGZ1bmN0aW9uKCBuYXRpdmVFdmVudCApIHtcblxuXHRcdC8vIE1ha2UgYSB3cml0YWJsZSBqUXVlcnkuRXZlbnQgZnJvbSB0aGUgbmF0aXZlIGV2ZW50IG9iamVjdFxuXHRcdHZhciBldmVudCA9IGpRdWVyeS5ldmVudC5maXgoIG5hdGl2ZUV2ZW50ICk7XG5cblx0XHR2YXIgaSwgaiwgcmV0LCBtYXRjaGVkLCBoYW5kbGVPYmosIGhhbmRsZXJRdWV1ZSxcblx0XHRcdGFyZ3MgPSBuZXcgQXJyYXkoIGFyZ3VtZW50cy5sZW5ndGggKSxcblx0XHRcdGhhbmRsZXJzID0gKCBkYXRhUHJpdi5nZXQoIHRoaXMsIFwiZXZlbnRzXCIgKSB8fCB7fSApWyBldmVudC50eXBlIF0gfHwgW10sXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWxbIGV2ZW50LnR5cGUgXSB8fCB7fTtcblxuXHRcdC8vIFVzZSB0aGUgZml4LWVkIGpRdWVyeS5FdmVudCByYXRoZXIgdGhhbiB0aGUgKHJlYWQtb25seSkgbmF0aXZlIGV2ZW50XG5cdFx0YXJnc1sgMCBdID0gZXZlbnQ7XG5cblx0XHRmb3IgKCBpID0gMTsgaSA8IGFyZ3VtZW50cy5sZW5ndGg7IGkrKyApIHtcblx0XHRcdGFyZ3NbIGkgXSA9IGFyZ3VtZW50c1sgaSBdO1xuXHRcdH1cblxuXHRcdGV2ZW50LmRlbGVnYXRlVGFyZ2V0ID0gdGhpcztcblxuXHRcdC8vIENhbGwgdGhlIHByZURpc3BhdGNoIGhvb2sgZm9yIHRoZSBtYXBwZWQgdHlwZSwgYW5kIGxldCBpdCBiYWlsIGlmIGRlc2lyZWRcblx0XHRpZiAoIHNwZWNpYWwucHJlRGlzcGF0Y2ggJiYgc3BlY2lhbC5wcmVEaXNwYXRjaC5jYWxsKCB0aGlzLCBldmVudCApID09PSBmYWxzZSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBEZXRlcm1pbmUgaGFuZGxlcnNcblx0XHRoYW5kbGVyUXVldWUgPSBqUXVlcnkuZXZlbnQuaGFuZGxlcnMuY2FsbCggdGhpcywgZXZlbnQsIGhhbmRsZXJzICk7XG5cblx0XHQvLyBSdW4gZGVsZWdhdGVzIGZpcnN0OyB0aGV5IG1heSB3YW50IHRvIHN0b3AgcHJvcGFnYXRpb24gYmVuZWF0aCB1c1xuXHRcdGkgPSAwO1xuXHRcdHdoaWxlICggKCBtYXRjaGVkID0gaGFuZGxlclF1ZXVlWyBpKysgXSApICYmICFldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICkge1xuXHRcdFx0ZXZlbnQuY3VycmVudFRhcmdldCA9IG1hdGNoZWQuZWxlbTtcblxuXHRcdFx0aiA9IDA7XG5cdFx0XHR3aGlsZSAoICggaGFuZGxlT2JqID0gbWF0Y2hlZC5oYW5kbGVyc1sgaisrIF0gKSAmJlxuXHRcdFx0XHQhZXZlbnQuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQoKSApIHtcblxuXHRcdFx0XHQvLyBUcmlnZ2VyZWQgZXZlbnQgbXVzdCBlaXRoZXIgMSkgaGF2ZSBubyBuYW1lc3BhY2UsIG9yIDIpIGhhdmUgbmFtZXNwYWNlKHMpXG5cdFx0XHRcdC8vIGEgc3Vic2V0IG9yIGVxdWFsIHRvIHRob3NlIGluIHRoZSBib3VuZCBldmVudCAoYm90aCBjYW4gaGF2ZSBubyBuYW1lc3BhY2UpLlxuXHRcdFx0XHRpZiAoICFldmVudC5ybmFtZXNwYWNlIHx8IGV2ZW50LnJuYW1lc3BhY2UudGVzdCggaGFuZGxlT2JqLm5hbWVzcGFjZSApICkge1xuXG5cdFx0XHRcdFx0ZXZlbnQuaGFuZGxlT2JqID0gaGFuZGxlT2JqO1xuXHRcdFx0XHRcdGV2ZW50LmRhdGEgPSBoYW5kbGVPYmouZGF0YTtcblxuXHRcdFx0XHRcdHJldCA9ICggKCBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgaGFuZGxlT2JqLm9yaWdUeXBlIF0gfHwge30gKS5oYW5kbGUgfHxcblx0XHRcdFx0XHRcdGhhbmRsZU9iai5oYW5kbGVyICkuYXBwbHkoIG1hdGNoZWQuZWxlbSwgYXJncyApO1xuXG5cdFx0XHRcdFx0aWYgKCByZXQgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRcdGlmICggKCBldmVudC5yZXN1bHQgPSByZXQgKSA9PT0gZmFsc2UgKSB7XG5cdFx0XHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdFx0XHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENhbGwgdGhlIHBvc3REaXNwYXRjaCBob29rIGZvciB0aGUgbWFwcGVkIHR5cGVcblx0XHRpZiAoIHNwZWNpYWwucG9zdERpc3BhdGNoICkge1xuXHRcdFx0c3BlY2lhbC5wb3N0RGlzcGF0Y2guY2FsbCggdGhpcywgZXZlbnQgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gZXZlbnQucmVzdWx0O1xuXHR9LFxuXG5cdGhhbmRsZXJzOiBmdW5jdGlvbiggZXZlbnQsIGhhbmRsZXJzICkge1xuXHRcdHZhciBpLCBoYW5kbGVPYmosIHNlbCwgbWF0Y2hlZEhhbmRsZXJzLCBtYXRjaGVkU2VsZWN0b3JzLFxuXHRcdFx0aGFuZGxlclF1ZXVlID0gW10sXG5cdFx0XHRkZWxlZ2F0ZUNvdW50ID0gaGFuZGxlcnMuZGVsZWdhdGVDb3VudCxcblx0XHRcdGN1ciA9IGV2ZW50LnRhcmdldDtcblxuXHRcdC8vIEZpbmQgZGVsZWdhdGUgaGFuZGxlcnNcblx0XHRpZiAoIGRlbGVnYXRlQ291bnQgJiZcblxuXHRcdFx0Ly8gU3VwcG9ydDogSUUgPD05XG5cdFx0XHQvLyBCbGFjay1ob2xlIFNWRyA8dXNlPiBpbnN0YW5jZSB0cmVlcyAodHJhYy0xMzE4MClcblx0XHRcdGN1ci5ub2RlVHlwZSAmJlxuXG5cdFx0XHQvLyBTdXBwb3J0OiBGaXJlZm94IDw9NDJcblx0XHRcdC8vIFN1cHByZXNzIHNwZWMtdmlvbGF0aW5nIGNsaWNrcyBpbmRpY2F0aW5nIGEgbm9uLXByaW1hcnkgcG9pbnRlciBidXR0b24gKHRyYWMtMzg2MSlcblx0XHRcdC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50LXR5cGUtY2xpY2tcblx0XHRcdC8vIFN1cHBvcnQ6IElFIDExIG9ubHlcblx0XHRcdC8vIC4uLmJ1dCBub3QgYXJyb3cga2V5IFwiY2xpY2tzXCIgb2YgcmFkaW8gaW5wdXRzLCB3aGljaCBjYW4gaGF2ZSBgYnV0dG9uYCAtMSAoZ2gtMjM0Mylcblx0XHRcdCEoIGV2ZW50LnR5cGUgPT09IFwiY2xpY2tcIiAmJiBldmVudC5idXR0b24gPj0gMSApICkge1xuXG5cdFx0XHRmb3IgKCA7IGN1ciAhPT0gdGhpczsgY3VyID0gY3VyLnBhcmVudE5vZGUgfHwgdGhpcyApIHtcblxuXHRcdFx0XHQvLyBEb24ndCBjaGVjayBub24tZWxlbWVudHMgKCMxMzIwOClcblx0XHRcdFx0Ly8gRG9uJ3QgcHJvY2VzcyBjbGlja3Mgb24gZGlzYWJsZWQgZWxlbWVudHMgKCM2OTExLCAjODE2NSwgIzExMzgyLCAjMTE3NjQpXG5cdFx0XHRcdGlmICggY3VyLm5vZGVUeXBlID09PSAxICYmICEoIGV2ZW50LnR5cGUgPT09IFwiY2xpY2tcIiAmJiBjdXIuZGlzYWJsZWQgPT09IHRydWUgKSApIHtcblx0XHRcdFx0XHRtYXRjaGVkSGFuZGxlcnMgPSBbXTtcblx0XHRcdFx0XHRtYXRjaGVkU2VsZWN0b3JzID0ge307XG5cdFx0XHRcdFx0Zm9yICggaSA9IDA7IGkgPCBkZWxlZ2F0ZUNvdW50OyBpKysgKSB7XG5cdFx0XHRcdFx0XHRoYW5kbGVPYmogPSBoYW5kbGVyc1sgaSBdO1xuXG5cdFx0XHRcdFx0XHQvLyBEb24ndCBjb25mbGljdCB3aXRoIE9iamVjdC5wcm90b3R5cGUgcHJvcGVydGllcyAoIzEzMjAzKVxuXHRcdFx0XHRcdFx0c2VsID0gaGFuZGxlT2JqLnNlbGVjdG9yICsgXCIgXCI7XG5cblx0XHRcdFx0XHRcdGlmICggbWF0Y2hlZFNlbGVjdG9yc1sgc2VsIF0gPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRcdFx0bWF0Y2hlZFNlbGVjdG9yc1sgc2VsIF0gPSBoYW5kbGVPYmoubmVlZHNDb250ZXh0ID9cblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkoIHNlbCwgdGhpcyApLmluZGV4KCBjdXIgKSA+IC0xIDpcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuZmluZCggc2VsLCB0aGlzLCBudWxsLCBbIGN1ciBdICkubGVuZ3RoO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0aWYgKCBtYXRjaGVkU2VsZWN0b3JzWyBzZWwgXSApIHtcblx0XHRcdFx0XHRcdFx0bWF0Y2hlZEhhbmRsZXJzLnB1c2goIGhhbmRsZU9iaiApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAoIG1hdGNoZWRIYW5kbGVycy5sZW5ndGggKSB7XG5cdFx0XHRcdFx0XHRoYW5kbGVyUXVldWUucHVzaCggeyBlbGVtOiBjdXIsIGhhbmRsZXJzOiBtYXRjaGVkSGFuZGxlcnMgfSApO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEFkZCB0aGUgcmVtYWluaW5nIChkaXJlY3RseS1ib3VuZCkgaGFuZGxlcnNcblx0XHRjdXIgPSB0aGlzO1xuXHRcdGlmICggZGVsZWdhdGVDb3VudCA8IGhhbmRsZXJzLmxlbmd0aCApIHtcblx0XHRcdGhhbmRsZXJRdWV1ZS5wdXNoKCB7IGVsZW06IGN1ciwgaGFuZGxlcnM6IGhhbmRsZXJzLnNsaWNlKCBkZWxlZ2F0ZUNvdW50ICkgfSApO1xuXHRcdH1cblxuXHRcdHJldHVybiBoYW5kbGVyUXVldWU7XG5cdH0sXG5cblx0YWRkUHJvcDogZnVuY3Rpb24oIG5hbWUsIGhvb2sgKSB7XG5cdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KCBqUXVlcnkuRXZlbnQucHJvdG90eXBlLCBuYW1lLCB7XG5cdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuXG5cdFx0XHRnZXQ6IGlzRnVuY3Rpb24oIGhvb2sgKSA/XG5cdFx0XHRcdGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGlmICggdGhpcy5vcmlnaW5hbEV2ZW50ICkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gaG9vayggdGhpcy5vcmlnaW5hbEV2ZW50ICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9IDpcblx0XHRcdFx0ZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0aWYgKCB0aGlzLm9yaWdpbmFsRXZlbnQgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB0aGlzLm9yaWdpbmFsRXZlbnRbIG5hbWUgXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0sXG5cblx0XHRcdHNldDogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoIHRoaXMsIG5hbWUsIHtcblx0XHRcdFx0XHRlbnVtZXJhYmxlOiB0cnVlLFxuXHRcdFx0XHRcdGNvbmZpZ3VyYWJsZTogdHJ1ZSxcblx0XHRcdFx0XHR3cml0YWJsZTogdHJ1ZSxcblx0XHRcdFx0XHR2YWx1ZTogdmFsdWVcblx0XHRcdFx0fSApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblxuXHRmaXg6IGZ1bmN0aW9uKCBvcmlnaW5hbEV2ZW50ICkge1xuXHRcdHJldHVybiBvcmlnaW5hbEV2ZW50WyBqUXVlcnkuZXhwYW5kbyBdID9cblx0XHRcdG9yaWdpbmFsRXZlbnQgOlxuXHRcdFx0bmV3IGpRdWVyeS5FdmVudCggb3JpZ2luYWxFdmVudCApO1xuXHR9LFxuXG5cdHNwZWNpYWw6IHtcblx0XHRsb2FkOiB7XG5cblx0XHRcdC8vIFByZXZlbnQgdHJpZ2dlcmVkIGltYWdlLmxvYWQgZXZlbnRzIGZyb20gYnViYmxpbmcgdG8gd2luZG93LmxvYWRcblx0XHRcdG5vQnViYmxlOiB0cnVlXG5cdFx0fSxcblx0XHRmb2N1czoge1xuXG5cdFx0XHQvLyBGaXJlIG5hdGl2ZSBldmVudCBpZiBwb3NzaWJsZSBzbyBibHVyL2ZvY3VzIHNlcXVlbmNlIGlzIGNvcnJlY3Rcblx0XHRcdHRyaWdnZXI6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIHRoaXMgIT09IHNhZmVBY3RpdmVFbGVtZW50KCkgJiYgdGhpcy5mb2N1cyApIHtcblx0XHRcdFx0XHR0aGlzLmZvY3VzKCk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0ZGVsZWdhdGVUeXBlOiBcImZvY3VzaW5cIlxuXHRcdH0sXG5cdFx0Ymx1cjoge1xuXHRcdFx0dHJpZ2dlcjogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdGlmICggdGhpcyA9PT0gc2FmZUFjdGl2ZUVsZW1lbnQoKSAmJiB0aGlzLmJsdXIgKSB7XG5cdFx0XHRcdFx0dGhpcy5ibHVyKCk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXHRcdFx0ZGVsZWdhdGVUeXBlOiBcImZvY3Vzb3V0XCJcblx0XHR9LFxuXHRcdGNsaWNrOiB7XG5cblx0XHRcdC8vIEZvciBjaGVja2JveCwgZmlyZSBuYXRpdmUgZXZlbnQgc28gY2hlY2tlZCBzdGF0ZSB3aWxsIGJlIHJpZ2h0XG5cdFx0XHR0cmlnZ2VyOiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCB0aGlzLnR5cGUgPT09IFwiY2hlY2tib3hcIiAmJiB0aGlzLmNsaWNrICYmIG5vZGVOYW1lKCB0aGlzLCBcImlucHV0XCIgKSApIHtcblx0XHRcdFx0XHR0aGlzLmNsaWNrKCk7XG5cdFx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0XHR9XG5cdFx0XHR9LFxuXG5cdFx0XHQvLyBGb3IgY3Jvc3MtYnJvd3NlciBjb25zaXN0ZW5jeSwgZG9uJ3QgZmlyZSBuYXRpdmUgLmNsaWNrKCkgb24gbGlua3Ncblx0XHRcdF9kZWZhdWx0OiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHRcdHJldHVybiBub2RlTmFtZSggZXZlbnQudGFyZ2V0LCBcImFcIiApO1xuXHRcdFx0fVxuXHRcdH0sXG5cblx0XHRiZWZvcmV1bmxvYWQ6IHtcblx0XHRcdHBvc3REaXNwYXRjaDogZnVuY3Rpb24oIGV2ZW50ICkge1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggMjArXG5cdFx0XHRcdC8vIEZpcmVmb3ggZG9lc24ndCBhbGVydCBpZiB0aGUgcmV0dXJuVmFsdWUgZmllbGQgaXMgbm90IHNldC5cblx0XHRcdFx0aWYgKCBldmVudC5yZXN1bHQgIT09IHVuZGVmaW5lZCAmJiBldmVudC5vcmlnaW5hbEV2ZW50ICkge1xuXHRcdFx0XHRcdGV2ZW50Lm9yaWdpbmFsRXZlbnQucmV0dXJuVmFsdWUgPSBldmVudC5yZXN1bHQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn07XG5cbmpRdWVyeS5yZW1vdmVFdmVudCA9IGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCBoYW5kbGUgKSB7XG5cblx0Ly8gVGhpcyBcImlmXCIgaXMgbmVlZGVkIGZvciBwbGFpbiBvYmplY3RzXG5cdGlmICggZWxlbS5yZW1vdmVFdmVudExpc3RlbmVyICkge1xuXHRcdGVsZW0ucmVtb3ZlRXZlbnRMaXN0ZW5lciggdHlwZSwgaGFuZGxlICk7XG5cdH1cbn07XG5cbmpRdWVyeS5FdmVudCA9IGZ1bmN0aW9uKCBzcmMsIHByb3BzICkge1xuXG5cdC8vIEFsbG93IGluc3RhbnRpYXRpb24gd2l0aG91dCB0aGUgJ25ldycga2V5d29yZFxuXHRpZiAoICEoIHRoaXMgaW5zdGFuY2VvZiBqUXVlcnkuRXZlbnQgKSApIHtcblx0XHRyZXR1cm4gbmV3IGpRdWVyeS5FdmVudCggc3JjLCBwcm9wcyApO1xuXHR9XG5cblx0Ly8gRXZlbnQgb2JqZWN0XG5cdGlmICggc3JjICYmIHNyYy50eXBlICkge1xuXHRcdHRoaXMub3JpZ2luYWxFdmVudCA9IHNyYztcblx0XHR0aGlzLnR5cGUgPSBzcmMudHlwZTtcblxuXHRcdC8vIEV2ZW50cyBidWJibGluZyB1cCB0aGUgZG9jdW1lbnQgbWF5IGhhdmUgYmVlbiBtYXJrZWQgYXMgcHJldmVudGVkXG5cdFx0Ly8gYnkgYSBoYW5kbGVyIGxvd2VyIGRvd24gdGhlIHRyZWU7IHJlZmxlY3QgdGhlIGNvcnJlY3QgdmFsdWUuXG5cdFx0dGhpcy5pc0RlZmF1bHRQcmV2ZW50ZWQgPSBzcmMuZGVmYXVsdFByZXZlbnRlZCB8fFxuXHRcdFx0XHRzcmMuZGVmYXVsdFByZXZlbnRlZCA9PT0gdW5kZWZpbmVkICYmXG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTIuMyBvbmx5XG5cdFx0XHRcdHNyYy5yZXR1cm5WYWx1ZSA9PT0gZmFsc2UgP1xuXHRcdFx0cmV0dXJuVHJ1ZSA6XG5cdFx0XHRyZXR1cm5GYWxzZTtcblxuXHRcdC8vIENyZWF0ZSB0YXJnZXQgcHJvcGVydGllc1xuXHRcdC8vIFN1cHBvcnQ6IFNhZmFyaSA8PTYgLSA3IG9ubHlcblx0XHQvLyBUYXJnZXQgc2hvdWxkIG5vdCBiZSBhIHRleHQgbm9kZSAoIzUwNCwgIzEzMTQzKVxuXHRcdHRoaXMudGFyZ2V0ID0gKCBzcmMudGFyZ2V0ICYmIHNyYy50YXJnZXQubm9kZVR5cGUgPT09IDMgKSA/XG5cdFx0XHRzcmMudGFyZ2V0LnBhcmVudE5vZGUgOlxuXHRcdFx0c3JjLnRhcmdldDtcblxuXHRcdHRoaXMuY3VycmVudFRhcmdldCA9IHNyYy5jdXJyZW50VGFyZ2V0O1xuXHRcdHRoaXMucmVsYXRlZFRhcmdldCA9IHNyYy5yZWxhdGVkVGFyZ2V0O1xuXG5cdC8vIEV2ZW50IHR5cGVcblx0fSBlbHNlIHtcblx0XHR0aGlzLnR5cGUgPSBzcmM7XG5cdH1cblxuXHQvLyBQdXQgZXhwbGljaXRseSBwcm92aWRlZCBwcm9wZXJ0aWVzIG9udG8gdGhlIGV2ZW50IG9iamVjdFxuXHRpZiAoIHByb3BzICkge1xuXHRcdGpRdWVyeS5leHRlbmQoIHRoaXMsIHByb3BzICk7XG5cdH1cblxuXHQvLyBDcmVhdGUgYSB0aW1lc3RhbXAgaWYgaW5jb21pbmcgZXZlbnQgZG9lc24ndCBoYXZlIG9uZVxuXHR0aGlzLnRpbWVTdGFtcCA9IHNyYyAmJiBzcmMudGltZVN0YW1wIHx8IERhdGUubm93KCk7XG5cblx0Ly8gTWFyayBpdCBhcyBmaXhlZFxuXHR0aGlzWyBqUXVlcnkuZXhwYW5kbyBdID0gdHJ1ZTtcbn07XG5cbi8vIGpRdWVyeS5FdmVudCBpcyBiYXNlZCBvbiBET00zIEV2ZW50cyBhcyBzcGVjaWZpZWQgYnkgdGhlIEVDTUFTY3JpcHQgTGFuZ3VhZ2UgQmluZGluZ1xuLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSLzIwMDMvV0QtRE9NLUxldmVsLTMtRXZlbnRzLTIwMDMwMzMxL2VjbWEtc2NyaXB0LWJpbmRpbmcuaHRtbFxualF1ZXJ5LkV2ZW50LnByb3RvdHlwZSA9IHtcblx0Y29uc3RydWN0b3I6IGpRdWVyeS5FdmVudCxcblx0aXNEZWZhdWx0UHJldmVudGVkOiByZXR1cm5GYWxzZSxcblx0aXNQcm9wYWdhdGlvblN0b3BwZWQ6IHJldHVybkZhbHNlLFxuXHRpc0ltbWVkaWF0ZVByb3BhZ2F0aW9uU3RvcHBlZDogcmV0dXJuRmFsc2UsXG5cdGlzU2ltdWxhdGVkOiBmYWxzZSxcblxuXHRwcmV2ZW50RGVmYXVsdDogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGUgPSB0aGlzLm9yaWdpbmFsRXZlbnQ7XG5cblx0XHR0aGlzLmlzRGVmYXVsdFByZXZlbnRlZCA9IHJldHVyblRydWU7XG5cblx0XHRpZiAoIGUgJiYgIXRoaXMuaXNTaW11bGF0ZWQgKSB7XG5cdFx0XHRlLnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXHR9LFxuXHRzdG9wUHJvcGFnYXRpb246IGZ1bmN0aW9uKCkge1xuXHRcdHZhciBlID0gdGhpcy5vcmlnaW5hbEV2ZW50O1xuXG5cdFx0dGhpcy5pc1Byb3BhZ2F0aW9uU3RvcHBlZCA9IHJldHVyblRydWU7XG5cblx0XHRpZiAoIGUgJiYgIXRoaXMuaXNTaW11bGF0ZWQgKSB7XG5cdFx0XHRlLnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdH1cblx0fSxcblx0c3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgZSA9IHRoaXMub3JpZ2luYWxFdmVudDtcblxuXHRcdHRoaXMuaXNJbW1lZGlhdGVQcm9wYWdhdGlvblN0b3BwZWQgPSByZXR1cm5UcnVlO1xuXG5cdFx0aWYgKCBlICYmICF0aGlzLmlzU2ltdWxhdGVkICkge1xuXHRcdFx0ZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblx0XHR9XG5cblx0XHR0aGlzLnN0b3BQcm9wYWdhdGlvbigpO1xuXHR9XG59O1xuXG4vLyBJbmNsdWRlcyBhbGwgY29tbW9uIGV2ZW50IHByb3BzIGluY2x1ZGluZyBLZXlFdmVudCBhbmQgTW91c2VFdmVudCBzcGVjaWZpYyBwcm9wc1xualF1ZXJ5LmVhY2goIHtcblx0YWx0S2V5OiB0cnVlLFxuXHRidWJibGVzOiB0cnVlLFxuXHRjYW5jZWxhYmxlOiB0cnVlLFxuXHRjaGFuZ2VkVG91Y2hlczogdHJ1ZSxcblx0Y3RybEtleTogdHJ1ZSxcblx0ZGV0YWlsOiB0cnVlLFxuXHRldmVudFBoYXNlOiB0cnVlLFxuXHRtZXRhS2V5OiB0cnVlLFxuXHRwYWdlWDogdHJ1ZSxcblx0cGFnZVk6IHRydWUsXG5cdHNoaWZ0S2V5OiB0cnVlLFxuXHR2aWV3OiB0cnVlLFxuXHRcImNoYXJcIjogdHJ1ZSxcblx0Y2hhckNvZGU6IHRydWUsXG5cdGtleTogdHJ1ZSxcblx0a2V5Q29kZTogdHJ1ZSxcblx0YnV0dG9uOiB0cnVlLFxuXHRidXR0b25zOiB0cnVlLFxuXHRjbGllbnRYOiB0cnVlLFxuXHRjbGllbnRZOiB0cnVlLFxuXHRvZmZzZXRYOiB0cnVlLFxuXHRvZmZzZXRZOiB0cnVlLFxuXHRwb2ludGVySWQ6IHRydWUsXG5cdHBvaW50ZXJUeXBlOiB0cnVlLFxuXHRzY3JlZW5YOiB0cnVlLFxuXHRzY3JlZW5ZOiB0cnVlLFxuXHR0YXJnZXRUb3VjaGVzOiB0cnVlLFxuXHR0b0VsZW1lbnQ6IHRydWUsXG5cdHRvdWNoZXM6IHRydWUsXG5cblx0d2hpY2g6IGZ1bmN0aW9uKCBldmVudCApIHtcblx0XHR2YXIgYnV0dG9uID0gZXZlbnQuYnV0dG9uO1xuXG5cdFx0Ly8gQWRkIHdoaWNoIGZvciBrZXkgZXZlbnRzXG5cdFx0aWYgKCBldmVudC53aGljaCA9PSBudWxsICYmIHJrZXlFdmVudC50ZXN0KCBldmVudC50eXBlICkgKSB7XG5cdFx0XHRyZXR1cm4gZXZlbnQuY2hhckNvZGUgIT0gbnVsbCA/IGV2ZW50LmNoYXJDb2RlIDogZXZlbnQua2V5Q29kZTtcblx0XHR9XG5cblx0XHQvLyBBZGQgd2hpY2ggZm9yIGNsaWNrOiAxID09PSBsZWZ0OyAyID09PSBtaWRkbGU7IDMgPT09IHJpZ2h0XG5cdFx0aWYgKCAhZXZlbnQud2hpY2ggJiYgYnV0dG9uICE9PSB1bmRlZmluZWQgJiYgcm1vdXNlRXZlbnQudGVzdCggZXZlbnQudHlwZSApICkge1xuXHRcdFx0aWYgKCBidXR0b24gJiAxICkge1xuXHRcdFx0XHRyZXR1cm4gMTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBidXR0b24gJiAyICkge1xuXHRcdFx0XHRyZXR1cm4gMztcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBidXR0b24gJiA0ICkge1xuXHRcdFx0XHRyZXR1cm4gMjtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIDA7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIGV2ZW50LndoaWNoO1xuXHR9XG59LCBqUXVlcnkuZXZlbnQuYWRkUHJvcCApO1xuXG4vLyBDcmVhdGUgbW91c2VlbnRlci9sZWF2ZSBldmVudHMgdXNpbmcgbW91c2VvdmVyL291dCBhbmQgZXZlbnQtdGltZSBjaGVja3Ncbi8vIHNvIHRoYXQgZXZlbnQgZGVsZWdhdGlvbiB3b3JrcyBpbiBqUXVlcnkuXG4vLyBEbyB0aGUgc2FtZSBmb3IgcG9pbnRlcmVudGVyL3BvaW50ZXJsZWF2ZSBhbmQgcG9pbnRlcm92ZXIvcG9pbnRlcm91dFxuLy9cbi8vIFN1cHBvcnQ6IFNhZmFyaSA3IG9ubHlcbi8vIFNhZmFyaSBzZW5kcyBtb3VzZWVudGVyIHRvbyBvZnRlbjsgc2VlOlxuLy8gaHR0cHM6Ly9idWdzLmNocm9taXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9NDcwMjU4XG4vLyBmb3IgdGhlIGRlc2NyaXB0aW9uIG9mIHRoZSBidWcgKGl0IGV4aXN0ZWQgaW4gb2xkZXIgQ2hyb21lIHZlcnNpb25zIGFzIHdlbGwpLlxualF1ZXJ5LmVhY2goIHtcblx0bW91c2VlbnRlcjogXCJtb3VzZW92ZXJcIixcblx0bW91c2VsZWF2ZTogXCJtb3VzZW91dFwiLFxuXHRwb2ludGVyZW50ZXI6IFwicG9pbnRlcm92ZXJcIixcblx0cG9pbnRlcmxlYXZlOiBcInBvaW50ZXJvdXRcIlxufSwgZnVuY3Rpb24oIG9yaWcsIGZpeCApIHtcblx0alF1ZXJ5LmV2ZW50LnNwZWNpYWxbIG9yaWcgXSA9IHtcblx0XHRkZWxlZ2F0ZVR5cGU6IGZpeCxcblx0XHRiaW5kVHlwZTogZml4LFxuXG5cdFx0aGFuZGxlOiBmdW5jdGlvbiggZXZlbnQgKSB7XG5cdFx0XHR2YXIgcmV0LFxuXHRcdFx0XHR0YXJnZXQgPSB0aGlzLFxuXHRcdFx0XHRyZWxhdGVkID0gZXZlbnQucmVsYXRlZFRhcmdldCxcblx0XHRcdFx0aGFuZGxlT2JqID0gZXZlbnQuaGFuZGxlT2JqO1xuXG5cdFx0XHQvLyBGb3IgbW91c2VlbnRlci9sZWF2ZSBjYWxsIHRoZSBoYW5kbGVyIGlmIHJlbGF0ZWQgaXMgb3V0c2lkZSB0aGUgdGFyZ2V0LlxuXHRcdFx0Ly8gTkI6IE5vIHJlbGF0ZWRUYXJnZXQgaWYgdGhlIG1vdXNlIGxlZnQvZW50ZXJlZCB0aGUgYnJvd3NlciB3aW5kb3dcblx0XHRcdGlmICggIXJlbGF0ZWQgfHwgKCByZWxhdGVkICE9PSB0YXJnZXQgJiYgIWpRdWVyeS5jb250YWlucyggdGFyZ2V0LCByZWxhdGVkICkgKSApIHtcblx0XHRcdFx0ZXZlbnQudHlwZSA9IGhhbmRsZU9iai5vcmlnVHlwZTtcblx0XHRcdFx0cmV0ID0gaGFuZGxlT2JqLmhhbmRsZXIuYXBwbHkoIHRoaXMsIGFyZ3VtZW50cyApO1xuXHRcdFx0XHRldmVudC50eXBlID0gZml4O1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIHJldDtcblx0XHR9XG5cdH07XG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblxuXHRvbjogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIG9uKCB0aGlzLCB0eXBlcywgc2VsZWN0b3IsIGRhdGEsIGZuICk7XG5cdH0sXG5cdG9uZTogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIG9uKCB0aGlzLCB0eXBlcywgc2VsZWN0b3IsIGRhdGEsIGZuLCAxICk7XG5cdH0sXG5cdG9mZjogZnVuY3Rpb24oIHR5cGVzLCBzZWxlY3RvciwgZm4gKSB7XG5cdFx0dmFyIGhhbmRsZU9iaiwgdHlwZTtcblx0XHRpZiAoIHR5cGVzICYmIHR5cGVzLnByZXZlbnREZWZhdWx0ICYmIHR5cGVzLmhhbmRsZU9iaiApIHtcblxuXHRcdFx0Ly8gKCBldmVudCApICBkaXNwYXRjaGVkIGpRdWVyeS5FdmVudFxuXHRcdFx0aGFuZGxlT2JqID0gdHlwZXMuaGFuZGxlT2JqO1xuXHRcdFx0alF1ZXJ5KCB0eXBlcy5kZWxlZ2F0ZVRhcmdldCApLm9mZihcblx0XHRcdFx0aGFuZGxlT2JqLm5hbWVzcGFjZSA/XG5cdFx0XHRcdFx0aGFuZGxlT2JqLm9yaWdUeXBlICsgXCIuXCIgKyBoYW5kbGVPYmoubmFtZXNwYWNlIDpcblx0XHRcdFx0XHRoYW5kbGVPYmoub3JpZ1R5cGUsXG5cdFx0XHRcdGhhbmRsZU9iai5zZWxlY3Rvcixcblx0XHRcdFx0aGFuZGxlT2JqLmhhbmRsZXJcblx0XHRcdCk7XG5cdFx0XHRyZXR1cm4gdGhpcztcblx0XHR9XG5cdFx0aWYgKCB0eXBlb2YgdHlwZXMgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHRcdC8vICggdHlwZXMtb2JqZWN0IFssIHNlbGVjdG9yXSApXG5cdFx0XHRmb3IgKCB0eXBlIGluIHR5cGVzICkge1xuXHRcdFx0XHR0aGlzLm9mZiggdHlwZSwgc2VsZWN0b3IsIHR5cGVzWyB0eXBlIF0gKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHRpZiAoIHNlbGVjdG9yID09PSBmYWxzZSB8fCB0eXBlb2Ygc2VsZWN0b3IgPT09IFwiZnVuY3Rpb25cIiApIHtcblxuXHRcdFx0Ly8gKCB0eXBlcyBbLCBmbl0gKVxuXHRcdFx0Zm4gPSBzZWxlY3Rvcjtcblx0XHRcdHNlbGVjdG9yID0gdW5kZWZpbmVkO1xuXHRcdH1cblx0XHRpZiAoIGZuID09PSBmYWxzZSApIHtcblx0XHRcdGZuID0gcmV0dXJuRmFsc2U7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0alF1ZXJ5LmV2ZW50LnJlbW92ZSggdGhpcywgdHlwZXMsIGZuLCBzZWxlY3RvciApO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5cbnZhclxuXG5cdC8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4gKi9cblxuXHQvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2VzbGludC9lc2xpbnQvaXNzdWVzLzMyMjlcblx0cnhodG1sVGFnID0gLzwoPyFhcmVhfGJyfGNvbHxlbWJlZHxocnxpbWd8aW5wdXR8bGlua3xtZXRhfHBhcmFtKSgoW2Etel1bXlxcL1xcMD5cXHgyMFxcdFxcclxcblxcZl0qKVtePl0qKVxcLz4vZ2ksXG5cblx0LyogZXNsaW50LWVuYWJsZSAqL1xuXG5cdC8vIFN1cHBvcnQ6IElFIDw9MTAgLSAxMSwgRWRnZSAxMiAtIDEzIG9ubHlcblx0Ly8gSW4gSUUvRWRnZSB1c2luZyByZWdleCBncm91cHMgaGVyZSBjYXVzZXMgc2V2ZXJlIHNsb3dkb3ducy5cblx0Ly8gU2VlIGh0dHBzOi8vY29ubmVjdC5taWNyb3NvZnQuY29tL0lFL2ZlZWRiYWNrL2RldGFpbHMvMTczNjUxMi9cblx0cm5vSW5uZXJodG1sID0gLzxzY3JpcHR8PHN0eWxlfDxsaW5rL2ksXG5cblx0Ly8gY2hlY2tlZD1cImNoZWNrZWRcIiBvciBjaGVja2VkXG5cdHJjaGVja2VkID0gL2NoZWNrZWRcXHMqKD86W149XXw9XFxzKi5jaGVja2VkLikvaSxcblx0cmNsZWFuU2NyaXB0ID0gL15cXHMqPCEoPzpcXFtDREFUQVxcW3wtLSl8KD86XFxdXFxdfC0tKT5cXHMqJC9nO1xuXG4vLyBQcmVmZXIgYSB0Ym9keSBvdmVyIGl0cyBwYXJlbnQgdGFibGUgZm9yIGNvbnRhaW5pbmcgbmV3IHJvd3NcbmZ1bmN0aW9uIG1hbmlwdWxhdGlvblRhcmdldCggZWxlbSwgY29udGVudCApIHtcblx0aWYgKCBub2RlTmFtZSggZWxlbSwgXCJ0YWJsZVwiICkgJiZcblx0XHRub2RlTmFtZSggY29udGVudC5ub2RlVHlwZSAhPT0gMTEgPyBjb250ZW50IDogY29udGVudC5maXJzdENoaWxkLCBcInRyXCIgKSApIHtcblxuXHRcdHJldHVybiBqUXVlcnkoIGVsZW0gKS5jaGlsZHJlbiggXCJ0Ym9keVwiIClbIDAgXSB8fCBlbGVtO1xuXHR9XG5cblx0cmV0dXJuIGVsZW07XG59XG5cbi8vIFJlcGxhY2UvcmVzdG9yZSB0aGUgdHlwZSBhdHRyaWJ1dGUgb2Ygc2NyaXB0IGVsZW1lbnRzIGZvciBzYWZlIERPTSBtYW5pcHVsYXRpb25cbmZ1bmN0aW9uIGRpc2FibGVTY3JpcHQoIGVsZW0gKSB7XG5cdGVsZW0udHlwZSA9ICggZWxlbS5nZXRBdHRyaWJ1dGUoIFwidHlwZVwiICkgIT09IG51bGwgKSArIFwiL1wiICsgZWxlbS50eXBlO1xuXHRyZXR1cm4gZWxlbTtcbn1cbmZ1bmN0aW9uIHJlc3RvcmVTY3JpcHQoIGVsZW0gKSB7XG5cdGlmICggKCBlbGVtLnR5cGUgfHwgXCJcIiApLnNsaWNlKCAwLCA1ICkgPT09IFwidHJ1ZS9cIiApIHtcblx0XHRlbGVtLnR5cGUgPSBlbGVtLnR5cGUuc2xpY2UoIDUgKTtcblx0fSBlbHNlIHtcblx0XHRlbGVtLnJlbW92ZUF0dHJpYnV0ZSggXCJ0eXBlXCIgKTtcblx0fVxuXG5cdHJldHVybiBlbGVtO1xufVxuXG5mdW5jdGlvbiBjbG9uZUNvcHlFdmVudCggc3JjLCBkZXN0ICkge1xuXHR2YXIgaSwgbCwgdHlwZSwgcGRhdGFPbGQsIHBkYXRhQ3VyLCB1ZGF0YU9sZCwgdWRhdGFDdXIsIGV2ZW50cztcblxuXHRpZiAoIGRlc3Qubm9kZVR5cGUgIT09IDEgKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Ly8gMS4gQ29weSBwcml2YXRlIGRhdGE6IGV2ZW50cywgaGFuZGxlcnMsIGV0Yy5cblx0aWYgKCBkYXRhUHJpdi5oYXNEYXRhKCBzcmMgKSApIHtcblx0XHRwZGF0YU9sZCA9IGRhdGFQcml2LmFjY2Vzcyggc3JjICk7XG5cdFx0cGRhdGFDdXIgPSBkYXRhUHJpdi5zZXQoIGRlc3QsIHBkYXRhT2xkICk7XG5cdFx0ZXZlbnRzID0gcGRhdGFPbGQuZXZlbnRzO1xuXG5cdFx0aWYgKCBldmVudHMgKSB7XG5cdFx0XHRkZWxldGUgcGRhdGFDdXIuaGFuZGxlO1xuXHRcdFx0cGRhdGFDdXIuZXZlbnRzID0ge307XG5cblx0XHRcdGZvciAoIHR5cGUgaW4gZXZlbnRzICkge1xuXHRcdFx0XHRmb3IgKCBpID0gMCwgbCA9IGV2ZW50c1sgdHlwZSBdLmxlbmd0aDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQuYWRkKCBkZXN0LCB0eXBlLCBldmVudHNbIHR5cGUgXVsgaSBdICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyAyLiBDb3B5IHVzZXIgZGF0YVxuXHRpZiAoIGRhdGFVc2VyLmhhc0RhdGEoIHNyYyApICkge1xuXHRcdHVkYXRhT2xkID0gZGF0YVVzZXIuYWNjZXNzKCBzcmMgKTtcblx0XHR1ZGF0YUN1ciA9IGpRdWVyeS5leHRlbmQoIHt9LCB1ZGF0YU9sZCApO1xuXG5cdFx0ZGF0YVVzZXIuc2V0KCBkZXN0LCB1ZGF0YUN1ciApO1xuXHR9XG59XG5cbi8vIEZpeCBJRSBidWdzLCBzZWUgc3VwcG9ydCB0ZXN0c1xuZnVuY3Rpb24gZml4SW5wdXQoIHNyYywgZGVzdCApIHtcblx0dmFyIG5vZGVOYW1lID0gZGVzdC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpO1xuXG5cdC8vIEZhaWxzIHRvIHBlcnNpc3QgdGhlIGNoZWNrZWQgc3RhdGUgb2YgYSBjbG9uZWQgY2hlY2tib3ggb3IgcmFkaW8gYnV0dG9uLlxuXHRpZiAoIG5vZGVOYW1lID09PSBcImlucHV0XCIgJiYgcmNoZWNrYWJsZVR5cGUudGVzdCggc3JjLnR5cGUgKSApIHtcblx0XHRkZXN0LmNoZWNrZWQgPSBzcmMuY2hlY2tlZDtcblxuXHQvLyBGYWlscyB0byByZXR1cm4gdGhlIHNlbGVjdGVkIG9wdGlvbiB0byB0aGUgZGVmYXVsdCBzZWxlY3RlZCBzdGF0ZSB3aGVuIGNsb25pbmcgb3B0aW9uc1xuXHR9IGVsc2UgaWYgKCBub2RlTmFtZSA9PT0gXCJpbnB1dFwiIHx8IG5vZGVOYW1lID09PSBcInRleHRhcmVhXCIgKSB7XG5cdFx0ZGVzdC5kZWZhdWx0VmFsdWUgPSBzcmMuZGVmYXVsdFZhbHVlO1xuXHR9XG59XG5cbmZ1bmN0aW9uIGRvbU1hbmlwKCBjb2xsZWN0aW9uLCBhcmdzLCBjYWxsYmFjaywgaWdub3JlZCApIHtcblxuXHQvLyBGbGF0dGVuIGFueSBuZXN0ZWQgYXJyYXlzXG5cdGFyZ3MgPSBjb25jYXQuYXBwbHkoIFtdLCBhcmdzICk7XG5cblx0dmFyIGZyYWdtZW50LCBmaXJzdCwgc2NyaXB0cywgaGFzU2NyaXB0cywgbm9kZSwgZG9jLFxuXHRcdGkgPSAwLFxuXHRcdGwgPSBjb2xsZWN0aW9uLmxlbmd0aCxcblx0XHRpTm9DbG9uZSA9IGwgLSAxLFxuXHRcdHZhbHVlID0gYXJnc1sgMCBdLFxuXHRcdHZhbHVlSXNGdW5jdGlvbiA9IGlzRnVuY3Rpb24oIHZhbHVlICk7XG5cblx0Ly8gV2UgY2FuJ3QgY2xvbmVOb2RlIGZyYWdtZW50cyB0aGF0IGNvbnRhaW4gY2hlY2tlZCwgaW4gV2ViS2l0XG5cdGlmICggdmFsdWVJc0Z1bmN0aW9uIHx8XG5cdFx0XHQoIGwgPiAxICYmIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJlxuXHRcdFx0XHQhc3VwcG9ydC5jaGVja0Nsb25lICYmIHJjaGVja2VkLnRlc3QoIHZhbHVlICkgKSApIHtcblx0XHRyZXR1cm4gY29sbGVjdGlvbi5lYWNoKCBmdW5jdGlvbiggaW5kZXggKSB7XG5cdFx0XHR2YXIgc2VsZiA9IGNvbGxlY3Rpb24uZXEoIGluZGV4ICk7XG5cdFx0XHRpZiAoIHZhbHVlSXNGdW5jdGlvbiApIHtcblx0XHRcdFx0YXJnc1sgMCBdID0gdmFsdWUuY2FsbCggdGhpcywgaW5kZXgsIHNlbGYuaHRtbCgpICk7XG5cdFx0XHR9XG5cdFx0XHRkb21NYW5pcCggc2VsZiwgYXJncywgY2FsbGJhY2ssIGlnbm9yZWQgKTtcblx0XHR9ICk7XG5cdH1cblxuXHRpZiAoIGwgKSB7XG5cdFx0ZnJhZ21lbnQgPSBidWlsZEZyYWdtZW50KCBhcmdzLCBjb2xsZWN0aW9uWyAwIF0ub3duZXJEb2N1bWVudCwgZmFsc2UsIGNvbGxlY3Rpb24sIGlnbm9yZWQgKTtcblx0XHRmaXJzdCA9IGZyYWdtZW50LmZpcnN0Q2hpbGQ7XG5cblx0XHRpZiAoIGZyYWdtZW50LmNoaWxkTm9kZXMubGVuZ3RoID09PSAxICkge1xuXHRcdFx0ZnJhZ21lbnQgPSBmaXJzdDtcblx0XHR9XG5cblx0XHQvLyBSZXF1aXJlIGVpdGhlciBuZXcgY29udGVudCBvciBhbiBpbnRlcmVzdCBpbiBpZ25vcmVkIGVsZW1lbnRzIHRvIGludm9rZSB0aGUgY2FsbGJhY2tcblx0XHRpZiAoIGZpcnN0IHx8IGlnbm9yZWQgKSB7XG5cdFx0XHRzY3JpcHRzID0galF1ZXJ5Lm1hcCggZ2V0QWxsKCBmcmFnbWVudCwgXCJzY3JpcHRcIiApLCBkaXNhYmxlU2NyaXB0ICk7XG5cdFx0XHRoYXNTY3JpcHRzID0gc2NyaXB0cy5sZW5ndGg7XG5cblx0XHRcdC8vIFVzZSB0aGUgb3JpZ2luYWwgZnJhZ21lbnQgZm9yIHRoZSBsYXN0IGl0ZW1cblx0XHRcdC8vIGluc3RlYWQgb2YgdGhlIGZpcnN0IGJlY2F1c2UgaXQgY2FuIGVuZCB1cFxuXHRcdFx0Ly8gYmVpbmcgZW1wdGllZCBpbmNvcnJlY3RseSBpbiBjZXJ0YWluIHNpdHVhdGlvbnMgKCM4MDcwKS5cblx0XHRcdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0bm9kZSA9IGZyYWdtZW50O1xuXG5cdFx0XHRcdGlmICggaSAhPT0gaU5vQ2xvbmUgKSB7XG5cdFx0XHRcdFx0bm9kZSA9IGpRdWVyeS5jbG9uZSggbm9kZSwgdHJ1ZSwgdHJ1ZSApO1xuXG5cdFx0XHRcdFx0Ly8gS2VlcCByZWZlcmVuY2VzIHRvIGNsb25lZCBzY3JpcHRzIGZvciBsYXRlciByZXN0b3JhdGlvblxuXHRcdFx0XHRcdGlmICggaGFzU2NyaXB0cyApIHtcblxuXHRcdFx0XHRcdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMCBvbmx5LCBQaGFudG9tSlMgMSBvbmx5XG5cdFx0XHRcdFx0XHQvLyBwdXNoLmFwcGx5KF8sIGFycmF5bGlrZSkgdGhyb3dzIG9uIGFuY2llbnQgV2ViS2l0XG5cdFx0XHRcdFx0XHRqUXVlcnkubWVyZ2UoIHNjcmlwdHMsIGdldEFsbCggbm9kZSwgXCJzY3JpcHRcIiApICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0Y2FsbGJhY2suY2FsbCggY29sbGVjdGlvblsgaSBdLCBub2RlLCBpICk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICggaGFzU2NyaXB0cyApIHtcblx0XHRcdFx0ZG9jID0gc2NyaXB0c1sgc2NyaXB0cy5sZW5ndGggLSAxIF0ub3duZXJEb2N1bWVudDtcblxuXHRcdFx0XHQvLyBSZWVuYWJsZSBzY3JpcHRzXG5cdFx0XHRcdGpRdWVyeS5tYXAoIHNjcmlwdHMsIHJlc3RvcmVTY3JpcHQgKTtcblxuXHRcdFx0XHQvLyBFdmFsdWF0ZSBleGVjdXRhYmxlIHNjcmlwdHMgb24gZmlyc3QgZG9jdW1lbnQgaW5zZXJ0aW9uXG5cdFx0XHRcdGZvciAoIGkgPSAwOyBpIDwgaGFzU2NyaXB0czsgaSsrICkge1xuXHRcdFx0XHRcdG5vZGUgPSBzY3JpcHRzWyBpIF07XG5cdFx0XHRcdFx0aWYgKCByc2NyaXB0VHlwZS50ZXN0KCBub2RlLnR5cGUgfHwgXCJcIiApICYmXG5cdFx0XHRcdFx0XHQhZGF0YVByaXYuYWNjZXNzKCBub2RlLCBcImdsb2JhbEV2YWxcIiApICYmXG5cdFx0XHRcdFx0XHRqUXVlcnkuY29udGFpbnMoIGRvYywgbm9kZSApICkge1xuXG5cdFx0XHRcdFx0XHRpZiAoIG5vZGUuc3JjICYmICggbm9kZS50eXBlIHx8IFwiXCIgKS50b0xvd2VyQ2FzZSgpICAhPT0gXCJtb2R1bGVcIiApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBPcHRpb25hbCBBSkFYIGRlcGVuZGVuY3ksIGJ1dCB3b24ndCBydW4gc2NyaXB0cyBpZiBub3QgcHJlc2VudFxuXHRcdFx0XHRcdFx0XHRpZiAoIGpRdWVyeS5fZXZhbFVybCApIHtcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuX2V2YWxVcmwoIG5vZGUuc3JjICk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRcdERPTUV2YWwoIG5vZGUudGV4dENvbnRlbnQucmVwbGFjZSggcmNsZWFuU2NyaXB0LCBcIlwiICksIGRvYywgbm9kZSApO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHJldHVybiBjb2xsZWN0aW9uO1xufVxuXG5mdW5jdGlvbiByZW1vdmUoIGVsZW0sIHNlbGVjdG9yLCBrZWVwRGF0YSApIHtcblx0dmFyIG5vZGUsXG5cdFx0bm9kZXMgPSBzZWxlY3RvciA/IGpRdWVyeS5maWx0ZXIoIHNlbGVjdG9yLCBlbGVtICkgOiBlbGVtLFxuXHRcdGkgPSAwO1xuXG5cdGZvciAoIDsgKCBub2RlID0gbm9kZXNbIGkgXSApICE9IG51bGw7IGkrKyApIHtcblx0XHRpZiAoICFrZWVwRGF0YSAmJiBub2RlLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggZ2V0QWxsKCBub2RlICkgKTtcblx0XHR9XG5cblx0XHRpZiAoIG5vZGUucGFyZW50Tm9kZSApIHtcblx0XHRcdGlmICgga2VlcERhdGEgJiYgalF1ZXJ5LmNvbnRhaW5zKCBub2RlLm93bmVyRG9jdW1lbnQsIG5vZGUgKSApIHtcblx0XHRcdFx0c2V0R2xvYmFsRXZhbCggZ2V0QWxsKCBub2RlLCBcInNjcmlwdFwiICkgKTtcblx0XHRcdH1cblx0XHRcdG5vZGUucGFyZW50Tm9kZS5yZW1vdmVDaGlsZCggbm9kZSApO1xuXHRcdH1cblx0fVxuXG5cdHJldHVybiBlbGVtO1xufVxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdGh0bWxQcmVmaWx0ZXI6IGZ1bmN0aW9uKCBodG1sICkge1xuXHRcdHJldHVybiBodG1sLnJlcGxhY2UoIHJ4aHRtbFRhZywgXCI8JDE+PC8kMj5cIiApO1xuXHR9LFxuXG5cdGNsb25lOiBmdW5jdGlvbiggZWxlbSwgZGF0YUFuZEV2ZW50cywgZGVlcERhdGFBbmRFdmVudHMgKSB7XG5cdFx0dmFyIGksIGwsIHNyY0VsZW1lbnRzLCBkZXN0RWxlbWVudHMsXG5cdFx0XHRjbG9uZSA9IGVsZW0uY2xvbmVOb2RlKCB0cnVlICksXG5cdFx0XHRpblBhZ2UgPSBqUXVlcnkuY29udGFpbnMoIGVsZW0ub3duZXJEb2N1bWVudCwgZWxlbSApO1xuXG5cdFx0Ly8gRml4IElFIGNsb25pbmcgaXNzdWVzXG5cdFx0aWYgKCAhc3VwcG9ydC5ub0Nsb25lQ2hlY2tlZCAmJiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgfHwgZWxlbS5ub2RlVHlwZSA9PT0gMTEgKSAmJlxuXHRcdFx0XHQhalF1ZXJ5LmlzWE1MRG9jKCBlbGVtICkgKSB7XG5cblx0XHRcdC8vIFdlIGVzY2hldyBTaXp6bGUgaGVyZSBmb3IgcGVyZm9ybWFuY2UgcmVhc29uczogaHR0cHM6Ly9qc3BlcmYuY29tL2dldGFsbC12cy1zaXp6bGUvMlxuXHRcdFx0ZGVzdEVsZW1lbnRzID0gZ2V0QWxsKCBjbG9uZSApO1xuXHRcdFx0c3JjRWxlbWVudHMgPSBnZXRBbGwoIGVsZW0gKTtcblxuXHRcdFx0Zm9yICggaSA9IDAsIGwgPSBzcmNFbGVtZW50cy5sZW5ndGg7IGkgPCBsOyBpKysgKSB7XG5cdFx0XHRcdGZpeElucHV0KCBzcmNFbGVtZW50c1sgaSBdLCBkZXN0RWxlbWVudHNbIGkgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIENvcHkgdGhlIGV2ZW50cyBmcm9tIHRoZSBvcmlnaW5hbCB0byB0aGUgY2xvbmVcblx0XHRpZiAoIGRhdGFBbmRFdmVudHMgKSB7XG5cdFx0XHRpZiAoIGRlZXBEYXRhQW5kRXZlbnRzICkge1xuXHRcdFx0XHRzcmNFbGVtZW50cyA9IHNyY0VsZW1lbnRzIHx8IGdldEFsbCggZWxlbSApO1xuXHRcdFx0XHRkZXN0RWxlbWVudHMgPSBkZXN0RWxlbWVudHMgfHwgZ2V0QWxsKCBjbG9uZSApO1xuXG5cdFx0XHRcdGZvciAoIGkgPSAwLCBsID0gc3JjRWxlbWVudHMubGVuZ3RoOyBpIDwgbDsgaSsrICkge1xuXHRcdFx0XHRcdGNsb25lQ29weUV2ZW50KCBzcmNFbGVtZW50c1sgaSBdLCBkZXN0RWxlbWVudHNbIGkgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRjbG9uZUNvcHlFdmVudCggZWxlbSwgY2xvbmUgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBQcmVzZXJ2ZSBzY3JpcHQgZXZhbHVhdGlvbiBoaXN0b3J5XG5cdFx0ZGVzdEVsZW1lbnRzID0gZ2V0QWxsKCBjbG9uZSwgXCJzY3JpcHRcIiApO1xuXHRcdGlmICggZGVzdEVsZW1lbnRzLmxlbmd0aCA+IDAgKSB7XG5cdFx0XHRzZXRHbG9iYWxFdmFsKCBkZXN0RWxlbWVudHMsICFpblBhZ2UgJiYgZ2V0QWxsKCBlbGVtLCBcInNjcmlwdFwiICkgKTtcblx0XHR9XG5cblx0XHQvLyBSZXR1cm4gdGhlIGNsb25lZCBzZXRcblx0XHRyZXR1cm4gY2xvbmU7XG5cdH0sXG5cblx0Y2xlYW5EYXRhOiBmdW5jdGlvbiggZWxlbXMgKSB7XG5cdFx0dmFyIGRhdGEsIGVsZW0sIHR5cGUsXG5cdFx0XHRzcGVjaWFsID0galF1ZXJ5LmV2ZW50LnNwZWNpYWwsXG5cdFx0XHRpID0gMDtcblxuXHRcdGZvciAoIDsgKCBlbGVtID0gZWxlbXNbIGkgXSApICE9PSB1bmRlZmluZWQ7IGkrKyApIHtcblx0XHRcdGlmICggYWNjZXB0RGF0YSggZWxlbSApICkge1xuXHRcdFx0XHRpZiAoICggZGF0YSA9IGVsZW1bIGRhdGFQcml2LmV4cGFuZG8gXSApICkge1xuXHRcdFx0XHRcdGlmICggZGF0YS5ldmVudHMgKSB7XG5cdFx0XHRcdFx0XHRmb3IgKCB0eXBlIGluIGRhdGEuZXZlbnRzICkge1xuXHRcdFx0XHRcdFx0XHRpZiAoIHNwZWNpYWxbIHR5cGUgXSApIHtcblx0XHRcdFx0XHRcdFx0XHRqUXVlcnkuZXZlbnQucmVtb3ZlKCBlbGVtLCB0eXBlICk7XG5cblx0XHRcdFx0XHRcdFx0Ly8gVGhpcyBpcyBhIHNob3J0Y3V0IHRvIGF2b2lkIGpRdWVyeS5ldmVudC5yZW1vdmUncyBvdmVyaGVhZFxuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdGpRdWVyeS5yZW1vdmVFdmVudCggZWxlbSwgdHlwZSwgZGF0YS5oYW5kbGUgKTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IENocm9tZSA8PTM1IC0gNDUrXG5cdFx0XHRcdFx0Ly8gQXNzaWduIHVuZGVmaW5lZCBpbnN0ZWFkIG9mIHVzaW5nIGRlbGV0ZSwgc2VlIERhdGEjcmVtb3ZlXG5cdFx0XHRcdFx0ZWxlbVsgZGF0YVByaXYuZXhwYW5kbyBdID0gdW5kZWZpbmVkO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICggZWxlbVsgZGF0YVVzZXIuZXhwYW5kbyBdICkge1xuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogQ2hyb21lIDw9MzUgLSA0NStcblx0XHRcdFx0XHQvLyBBc3NpZ24gdW5kZWZpbmVkIGluc3RlYWQgb2YgdXNpbmcgZGVsZXRlLCBzZWUgRGF0YSNyZW1vdmVcblx0XHRcdFx0XHRlbGVtWyBkYXRhVXNlci5leHBhbmRvIF0gPSB1bmRlZmluZWQ7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRkZXRhY2g6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHRyZXR1cm4gcmVtb3ZlKCB0aGlzLCBzZWxlY3RvciwgdHJ1ZSApO1xuXHR9LFxuXG5cdHJlbW92ZTogZnVuY3Rpb24oIHNlbGVjdG9yICkge1xuXHRcdHJldHVybiByZW1vdmUoIHRoaXMsIHNlbGVjdG9yICk7XG5cdH0sXG5cblx0dGV4dDogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID9cblx0XHRcdFx0alF1ZXJ5LnRleHQoIHRoaXMgKSA6XG5cdFx0XHRcdHRoaXMuZW1wdHkoKS5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgPT09IDEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gMTEgfHwgdGhpcy5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0XHRcdHRoaXMudGV4dENvbnRlbnQgPSB2YWx1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gKTtcblx0XHR9LCBudWxsLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCApO1xuXHR9LFxuXG5cdGFwcGVuZDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGRvbU1hbmlwKCB0aGlzLCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0aWYgKCB0aGlzLm5vZGVUeXBlID09PSAxIHx8IHRoaXMubm9kZVR5cGUgPT09IDExIHx8IHRoaXMubm9kZVR5cGUgPT09IDkgKSB7XG5cdFx0XHRcdHZhciB0YXJnZXQgPSBtYW5pcHVsYXRpb25UYXJnZXQoIHRoaXMsIGVsZW0gKTtcblx0XHRcdFx0dGFyZ2V0LmFwcGVuZENoaWxkKCBlbGVtICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdHByZXBlbmQ6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBkb21NYW5pcCggdGhpcywgYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdGlmICggdGhpcy5ub2RlVHlwZSA9PT0gMSB8fCB0aGlzLm5vZGVUeXBlID09PSAxMSB8fCB0aGlzLm5vZGVUeXBlID09PSA5ICkge1xuXHRcdFx0XHR2YXIgdGFyZ2V0ID0gbWFuaXB1bGF0aW9uVGFyZ2V0KCB0aGlzLCBlbGVtICk7XG5cdFx0XHRcdHRhcmdldC5pbnNlcnRCZWZvcmUoIGVsZW0sIHRhcmdldC5maXJzdENoaWxkICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGJlZm9yZTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIGRvbU1hbmlwKCB0aGlzLCBhcmd1bWVudHMsIGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0aWYgKCB0aGlzLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdHRoaXMucGFyZW50Tm9kZS5pbnNlcnRCZWZvcmUoIGVsZW0sIHRoaXMgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0YWZ0ZXI6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBkb21NYW5pcCggdGhpcywgYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdGlmICggdGhpcy5wYXJlbnROb2RlICkge1xuXHRcdFx0XHR0aGlzLnBhcmVudE5vZGUuaW5zZXJ0QmVmb3JlKCBlbGVtLCB0aGlzLm5leHRTaWJsaW5nICk7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGVtcHR5OiBmdW5jdGlvbigpIHtcblx0XHR2YXIgZWxlbSxcblx0XHRcdGkgPSAwO1xuXG5cdFx0Zm9yICggOyAoIGVsZW0gPSB0aGlzWyBpIF0gKSAhPSBudWxsOyBpKysgKSB7XG5cdFx0XHRpZiAoIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cblx0XHRcdFx0Ly8gUHJldmVudCBtZW1vcnkgbGVha3Ncblx0XHRcdFx0alF1ZXJ5LmNsZWFuRGF0YSggZ2V0QWxsKCBlbGVtLCBmYWxzZSApICk7XG5cblx0XHRcdFx0Ly8gUmVtb3ZlIGFueSByZW1haW5pbmcgbm9kZXNcblx0XHRcdFx0ZWxlbS50ZXh0Q29udGVudCA9IFwiXCI7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0Y2xvbmU6IGZ1bmN0aW9uKCBkYXRhQW5kRXZlbnRzLCBkZWVwRGF0YUFuZEV2ZW50cyApIHtcblx0XHRkYXRhQW5kRXZlbnRzID0gZGF0YUFuZEV2ZW50cyA9PSBudWxsID8gZmFsc2UgOiBkYXRhQW5kRXZlbnRzO1xuXHRcdGRlZXBEYXRhQW5kRXZlbnRzID0gZGVlcERhdGFBbmRFdmVudHMgPT0gbnVsbCA/IGRhdGFBbmRFdmVudHMgOiBkZWVwRGF0YUFuZEV2ZW50cztcblxuXHRcdHJldHVybiB0aGlzLm1hcCggZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXR1cm4galF1ZXJ5LmNsb25lKCB0aGlzLCBkYXRhQW5kRXZlbnRzLCBkZWVwRGF0YUFuZEV2ZW50cyApO1xuXHRcdH0gKTtcblx0fSxcblxuXHRodG1sOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdFx0dmFyIGVsZW0gPSB0aGlzWyAwIF0gfHwge30sXG5cdFx0XHRcdGkgPSAwLFxuXHRcdFx0XHRsID0gdGhpcy5sZW5ndGg7XG5cblx0XHRcdGlmICggdmFsdWUgPT09IHVuZGVmaW5lZCAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRyZXR1cm4gZWxlbS5pbm5lckhUTUw7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNlZSBpZiB3ZSBjYW4gdGFrZSBhIHNob3J0Y3V0IGFuZCBqdXN0IHVzZSBpbm5lckhUTUxcblx0XHRcdGlmICggdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiICYmICFybm9Jbm5lcmh0bWwudGVzdCggdmFsdWUgKSAmJlxuXHRcdFx0XHQhd3JhcE1hcFsgKCBydGFnTmFtZS5leGVjKCB2YWx1ZSApIHx8IFsgXCJcIiwgXCJcIiBdIClbIDEgXS50b0xvd2VyQ2FzZSgpIF0gKSB7XG5cblx0XHRcdFx0dmFsdWUgPSBqUXVlcnkuaHRtbFByZWZpbHRlciggdmFsdWUgKTtcblxuXHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdGZvciAoIDsgaSA8IGw7IGkrKyApIHtcblx0XHRcdFx0XHRcdGVsZW0gPSB0aGlzWyBpIF0gfHwge307XG5cblx0XHRcdFx0XHRcdC8vIFJlbW92ZSBlbGVtZW50IG5vZGVzIGFuZCBwcmV2ZW50IG1lbW9yeSBsZWFrc1xuXHRcdFx0XHRcdFx0aWYgKCBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0XHRcdFx0XHRqUXVlcnkuY2xlYW5EYXRhKCBnZXRBbGwoIGVsZW0sIGZhbHNlICkgKTtcblx0XHRcdFx0XHRcdFx0ZWxlbS5pbm5lckhUTUwgPSB2YWx1ZTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRlbGVtID0gMDtcblxuXHRcdFx0XHQvLyBJZiB1c2luZyBpbm5lckhUTUwgdGhyb3dzIGFuIGV4Y2VwdGlvbiwgdXNlIHRoZSBmYWxsYmFjayBtZXRob2Rcblx0XHRcdFx0fSBjYXRjaCAoIGUgKSB7fVxuXHRcdFx0fVxuXG5cdFx0XHRpZiAoIGVsZW0gKSB7XG5cdFx0XHRcdHRoaXMuZW1wdHkoKS5hcHBlbmQoIHZhbHVlICk7XG5cdFx0XHR9XG5cdFx0fSwgbnVsbCwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggKTtcblx0fSxcblxuXHRyZXBsYWNlV2l0aDogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGlnbm9yZWQgPSBbXTtcblxuXHRcdC8vIE1ha2UgdGhlIGNoYW5nZXMsIHJlcGxhY2luZyBlYWNoIG5vbi1pZ25vcmVkIGNvbnRleHQgZWxlbWVudCB3aXRoIHRoZSBuZXcgY29udGVudFxuXHRcdHJldHVybiBkb21NYW5pcCggdGhpcywgYXJndW1lbnRzLCBmdW5jdGlvbiggZWxlbSApIHtcblx0XHRcdHZhciBwYXJlbnQgPSB0aGlzLnBhcmVudE5vZGU7XG5cblx0XHRcdGlmICggalF1ZXJ5LmluQXJyYXkoIHRoaXMsIGlnbm9yZWQgKSA8IDAgKSB7XG5cdFx0XHRcdGpRdWVyeS5jbGVhbkRhdGEoIGdldEFsbCggdGhpcyApICk7XG5cdFx0XHRcdGlmICggcGFyZW50ICkge1xuXHRcdFx0XHRcdHBhcmVudC5yZXBsYWNlQ2hpbGQoIGVsZW0sIHRoaXMgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0Ly8gRm9yY2UgY2FsbGJhY2sgaW52b2NhdGlvblxuXHRcdH0sIGlnbm9yZWQgKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZWFjaCgge1xuXHRhcHBlbmRUbzogXCJhcHBlbmRcIixcblx0cHJlcGVuZFRvOiBcInByZXBlbmRcIixcblx0aW5zZXJ0QmVmb3JlOiBcImJlZm9yZVwiLFxuXHRpbnNlcnRBZnRlcjogXCJhZnRlclwiLFxuXHRyZXBsYWNlQWxsOiBcInJlcGxhY2VXaXRoXCJcbn0sIGZ1bmN0aW9uKCBuYW1lLCBvcmlnaW5hbCApIHtcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0dmFyIGVsZW1zLFxuXHRcdFx0cmV0ID0gW10sXG5cdFx0XHRpbnNlcnQgPSBqUXVlcnkoIHNlbGVjdG9yICksXG5cdFx0XHRsYXN0ID0gaW5zZXJ0Lmxlbmd0aCAtIDEsXG5cdFx0XHRpID0gMDtcblxuXHRcdGZvciAoIDsgaSA8PSBsYXN0OyBpKysgKSB7XG5cdFx0XHRlbGVtcyA9IGkgPT09IGxhc3QgPyB0aGlzIDogdGhpcy5jbG9uZSggdHJ1ZSApO1xuXHRcdFx0alF1ZXJ5KCBpbnNlcnRbIGkgXSApWyBvcmlnaW5hbCBdKCBlbGVtcyApO1xuXG5cdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDw9NC4wIG9ubHksIFBoYW50b21KUyAxIG9ubHlcblx0XHRcdC8vIC5nZXQoKSBiZWNhdXNlIHB1c2guYXBwbHkoXywgYXJyYXlsaWtlKSB0aHJvd3Mgb24gYW5jaWVudCBXZWJLaXRcblx0XHRcdHB1c2guYXBwbHkoIHJldCwgZWxlbXMuZ2V0KCkgKTtcblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcy5wdXNoU3RhY2soIHJldCApO1xuXHR9O1xufSApO1xudmFyIHJudW1ub25weCA9IG5ldyBSZWdFeHAoIFwiXihcIiArIHBudW0gKyBcIikoPyFweClbYS16JV0rJFwiLCBcImlcIiApO1xuXG52YXIgZ2V0U3R5bGVzID0gZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA8PTExIG9ubHksIEZpcmVmb3ggPD0zMCAoIzE1MDk4LCAjMTQxNTApXG5cdFx0Ly8gSUUgdGhyb3dzIG9uIGVsZW1lbnRzIGNyZWF0ZWQgaW4gcG9wdXBzXG5cdFx0Ly8gRkYgbWVhbndoaWxlIHRocm93cyBvbiBmcmFtZSBlbGVtZW50cyB0aHJvdWdoIFwiZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZVwiXG5cdFx0dmFyIHZpZXcgPSBlbGVtLm93bmVyRG9jdW1lbnQuZGVmYXVsdFZpZXc7XG5cblx0XHRpZiAoICF2aWV3IHx8ICF2aWV3Lm9wZW5lciApIHtcblx0XHRcdHZpZXcgPSB3aW5kb3c7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZpZXcuZ2V0Q29tcHV0ZWRTdHlsZSggZWxlbSApO1xuXHR9O1xuXG52YXIgcmJveFN0eWxlID0gbmV3IFJlZ0V4cCggY3NzRXhwYW5kLmpvaW4oIFwifFwiICksIFwiaVwiICk7XG5cblxuXG4oIGZ1bmN0aW9uKCkge1xuXG5cdC8vIEV4ZWN1dGluZyBib3RoIHBpeGVsUG9zaXRpb24gJiBib3hTaXppbmdSZWxpYWJsZSB0ZXN0cyByZXF1aXJlIG9ubHkgb25lIGxheW91dFxuXHQvLyBzbyB0aGV5J3JlIGV4ZWN1dGVkIGF0IHRoZSBzYW1lIHRpbWUgdG8gc2F2ZSB0aGUgc2Vjb25kIGNvbXB1dGF0aW9uLlxuXHRmdW5jdGlvbiBjb21wdXRlU3R5bGVUZXN0cygpIHtcblxuXHRcdC8vIFRoaXMgaXMgYSBzaW5nbGV0b24sIHdlIG5lZWQgdG8gZXhlY3V0ZSBpdCBvbmx5IG9uY2Vcblx0XHRpZiAoICFkaXYgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Y29udGFpbmVyLnN0eWxlLmNzc1RleHQgPSBcInBvc2l0aW9uOmFic29sdXRlO2xlZnQ6LTExMTExcHg7d2lkdGg6NjBweDtcIiArXG5cdFx0XHRcIm1hcmdpbi10b3A6MXB4O3BhZGRpbmc6MDtib3JkZXI6MFwiO1xuXHRcdGRpdi5zdHlsZS5jc3NUZXh0ID1cblx0XHRcdFwicG9zaXRpb246cmVsYXRpdmU7ZGlzcGxheTpibG9jaztib3gtc2l6aW5nOmJvcmRlci1ib3g7b3ZlcmZsb3c6c2Nyb2xsO1wiICtcblx0XHRcdFwibWFyZ2luOmF1dG87Ym9yZGVyOjFweDtwYWRkaW5nOjFweDtcIiArXG5cdFx0XHRcIndpZHRoOjYwJTt0b3A6MSVcIjtcblx0XHRkb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoIGNvbnRhaW5lciApLmFwcGVuZENoaWxkKCBkaXYgKTtcblxuXHRcdHZhciBkaXZTdHlsZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKCBkaXYgKTtcblx0XHRwaXhlbFBvc2l0aW9uVmFsID0gZGl2U3R5bGUudG9wICE9PSBcIjElXCI7XG5cblx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDQuMCAtIDQuMyBvbmx5LCBGaXJlZm94IDw9MyAtIDQ0XG5cdFx0cmVsaWFibGVNYXJnaW5MZWZ0VmFsID0gcm91bmRQaXhlbE1lYXN1cmVzKCBkaXZTdHlsZS5tYXJnaW5MZWZ0ICkgPT09IDEyO1xuXG5cdFx0Ly8gU3VwcG9ydDogQW5kcm9pZCA0LjAgLSA0LjMgb25seSwgU2FmYXJpIDw9OS4xIC0gMTAuMSwgaU9TIDw9Ny4wIC0gOS4zXG5cdFx0Ly8gU29tZSBzdHlsZXMgY29tZSBiYWNrIHdpdGggcGVyY2VudGFnZSB2YWx1ZXMsIGV2ZW4gdGhvdWdoIHRoZXkgc2hvdWxkbid0XG5cdFx0ZGl2LnN0eWxlLnJpZ2h0ID0gXCI2MCVcIjtcblx0XHRwaXhlbEJveFN0eWxlc1ZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2U3R5bGUucmlnaHQgKSA9PT0gMzY7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IC0gMTEgb25seVxuXHRcdC8vIERldGVjdCBtaXNyZXBvcnRpbmcgb2YgY29udGVudCBkaW1lbnNpb25zIGZvciBib3gtc2l6aW5nOmJvcmRlci1ib3ggZWxlbWVudHNcblx0XHRib3hTaXppbmdSZWxpYWJsZVZhbCA9IHJvdW5kUGl4ZWxNZWFzdXJlcyggZGl2U3R5bGUud2lkdGggKSA9PT0gMzY7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA5IG9ubHlcblx0XHQvLyBEZXRlY3Qgb3ZlcmZsb3c6c2Nyb2xsIHNjcmV3aW5lc3MgKGdoLTM2OTkpXG5cdFx0ZGl2LnN0eWxlLnBvc2l0aW9uID0gXCJhYnNvbHV0ZVwiO1xuXHRcdHNjcm9sbGJveFNpemVWYWwgPSBkaXYub2Zmc2V0V2lkdGggPT09IDM2IHx8IFwiYWJzb2x1dGVcIjtcblxuXHRcdGRvY3VtZW50RWxlbWVudC5yZW1vdmVDaGlsZCggY29udGFpbmVyICk7XG5cblx0XHQvLyBOdWxsaWZ5IHRoZSBkaXYgc28gaXQgd291bGRuJ3QgYmUgc3RvcmVkIGluIHRoZSBtZW1vcnkgYW5kXG5cdFx0Ly8gaXQgd2lsbCBhbHNvIGJlIGEgc2lnbiB0aGF0IGNoZWNrcyBhbHJlYWR5IHBlcmZvcm1lZFxuXHRcdGRpdiA9IG51bGw7XG5cdH1cblxuXHRmdW5jdGlvbiByb3VuZFBpeGVsTWVhc3VyZXMoIG1lYXN1cmUgKSB7XG5cdFx0cmV0dXJuIE1hdGgucm91bmQoIHBhcnNlRmxvYXQoIG1lYXN1cmUgKSApO1xuXHR9XG5cblx0dmFyIHBpeGVsUG9zaXRpb25WYWwsIGJveFNpemluZ1JlbGlhYmxlVmFsLCBzY3JvbGxib3hTaXplVmFsLCBwaXhlbEJveFN0eWxlc1ZhbCxcblx0XHRyZWxpYWJsZU1hcmdpbkxlZnRWYWwsXG5cdFx0Y29udGFpbmVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJkaXZcIiApLFxuXHRcdGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZGl2XCIgKTtcblxuXHQvLyBGaW5pc2ggZWFybHkgaW4gbGltaXRlZCAobm9uLWJyb3dzZXIpIGVudmlyb25tZW50c1xuXHRpZiAoICFkaXYuc3R5bGUgKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTEgb25seVxuXHQvLyBTdHlsZSBvZiBjbG9uZWQgZWxlbWVudCBhZmZlY3RzIHNvdXJjZSBlbGVtZW50IGNsb25lZCAoIzg5MDgpXG5cdGRpdi5zdHlsZS5iYWNrZ3JvdW5kQ2xpcCA9IFwiY29udGVudC1ib3hcIjtcblx0ZGl2LmNsb25lTm9kZSggdHJ1ZSApLnN0eWxlLmJhY2tncm91bmRDbGlwID0gXCJcIjtcblx0c3VwcG9ydC5jbGVhckNsb25lU3R5bGUgPSBkaXYuc3R5bGUuYmFja2dyb3VuZENsaXAgPT09IFwiY29udGVudC1ib3hcIjtcblxuXHRqUXVlcnkuZXh0ZW5kKCBzdXBwb3J0LCB7XG5cdFx0Ym94U2l6aW5nUmVsaWFibGU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29tcHV0ZVN0eWxlVGVzdHMoKTtcblx0XHRcdHJldHVybiBib3hTaXppbmdSZWxpYWJsZVZhbDtcblx0XHR9LFxuXHRcdHBpeGVsQm94U3R5bGVzOiBmdW5jdGlvbigpIHtcblx0XHRcdGNvbXB1dGVTdHlsZVRlc3RzKCk7XG5cdFx0XHRyZXR1cm4gcGl4ZWxCb3hTdHlsZXNWYWw7XG5cdFx0fSxcblx0XHRwaXhlbFBvc2l0aW9uOiBmdW5jdGlvbigpIHtcblx0XHRcdGNvbXB1dGVTdHlsZVRlc3RzKCk7XG5cdFx0XHRyZXR1cm4gcGl4ZWxQb3NpdGlvblZhbDtcblx0XHR9LFxuXHRcdHJlbGlhYmxlTWFyZ2luTGVmdDogZnVuY3Rpb24oKSB7XG5cdFx0XHRjb21wdXRlU3R5bGVUZXN0cygpO1xuXHRcdFx0cmV0dXJuIHJlbGlhYmxlTWFyZ2luTGVmdFZhbDtcblx0XHR9LFxuXHRcdHNjcm9sbGJveFNpemU6IGZ1bmN0aW9uKCkge1xuXHRcdFx0Y29tcHV0ZVN0eWxlVGVzdHMoKTtcblx0XHRcdHJldHVybiBzY3JvbGxib3hTaXplVmFsO1xuXHRcdH1cblx0fSApO1xufSApKCk7XG5cblxuZnVuY3Rpb24gY3VyQ1NTKCBlbGVtLCBuYW1lLCBjb21wdXRlZCApIHtcblx0dmFyIHdpZHRoLCBtaW5XaWR0aCwgbWF4V2lkdGgsIHJldCxcblxuXHRcdC8vIFN1cHBvcnQ6IEZpcmVmb3ggNTErXG5cdFx0Ly8gUmV0cmlldmluZyBzdHlsZSBiZWZvcmUgY29tcHV0ZWQgc29tZWhvd1xuXHRcdC8vIGZpeGVzIGFuIGlzc3VlIHdpdGggZ2V0dGluZyB3cm9uZyB2YWx1ZXNcblx0XHQvLyBvbiBkZXRhY2hlZCBlbGVtZW50c1xuXHRcdHN0eWxlID0gZWxlbS5zdHlsZTtcblxuXHRjb21wdXRlZCA9IGNvbXB1dGVkIHx8IGdldFN0eWxlcyggZWxlbSApO1xuXG5cdC8vIGdldFByb3BlcnR5VmFsdWUgaXMgbmVlZGVkIGZvcjpcblx0Ly8gICAuY3NzKCdmaWx0ZXInKSAoSUUgOSBvbmx5LCAjMTI1MzcpXG5cdC8vICAgLmNzcygnLS1jdXN0b21Qcm9wZXJ0eSkgKCMzMTQ0KVxuXHRpZiAoIGNvbXB1dGVkICkge1xuXHRcdHJldCA9IGNvbXB1dGVkLmdldFByb3BlcnR5VmFsdWUoIG5hbWUgKSB8fCBjb21wdXRlZFsgbmFtZSBdO1xuXG5cdFx0aWYgKCByZXQgPT09IFwiXCIgJiYgIWpRdWVyeS5jb250YWlucyggZWxlbS5vd25lckRvY3VtZW50LCBlbGVtICkgKSB7XG5cdFx0XHRyZXQgPSBqUXVlcnkuc3R5bGUoIGVsZW0sIG5hbWUgKTtcblx0XHR9XG5cblx0XHQvLyBBIHRyaWJ1dGUgdG8gdGhlIFwiYXdlc29tZSBoYWNrIGJ5IERlYW4gRWR3YXJkc1wiXG5cdFx0Ly8gQW5kcm9pZCBCcm93c2VyIHJldHVybnMgcGVyY2VudGFnZSBmb3Igc29tZSB2YWx1ZXMsXG5cdFx0Ly8gYnV0IHdpZHRoIHNlZW1zIHRvIGJlIHJlbGlhYmx5IHBpeGVscy5cblx0XHQvLyBUaGlzIGlzIGFnYWluc3QgdGhlIENTU09NIGRyYWZ0IHNwZWM6XG5cdFx0Ly8gaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzc29tLyNyZXNvbHZlZC12YWx1ZXNcblx0XHRpZiAoICFzdXBwb3J0LnBpeGVsQm94U3R5bGVzKCkgJiYgcm51bW5vbnB4LnRlc3QoIHJldCApICYmIHJib3hTdHlsZS50ZXN0KCBuYW1lICkgKSB7XG5cblx0XHRcdC8vIFJlbWVtYmVyIHRoZSBvcmlnaW5hbCB2YWx1ZXNcblx0XHRcdHdpZHRoID0gc3R5bGUud2lkdGg7XG5cdFx0XHRtaW5XaWR0aCA9IHN0eWxlLm1pbldpZHRoO1xuXHRcdFx0bWF4V2lkdGggPSBzdHlsZS5tYXhXaWR0aDtcblxuXHRcdFx0Ly8gUHV0IGluIHRoZSBuZXcgdmFsdWVzIHRvIGdldCBhIGNvbXB1dGVkIHZhbHVlIG91dFxuXHRcdFx0c3R5bGUubWluV2lkdGggPSBzdHlsZS5tYXhXaWR0aCA9IHN0eWxlLndpZHRoID0gcmV0O1xuXHRcdFx0cmV0ID0gY29tcHV0ZWQud2lkdGg7XG5cblx0XHRcdC8vIFJldmVydCB0aGUgY2hhbmdlZCB2YWx1ZXNcblx0XHRcdHN0eWxlLndpZHRoID0gd2lkdGg7XG5cdFx0XHRzdHlsZS5taW5XaWR0aCA9IG1pbldpZHRoO1xuXHRcdFx0c3R5bGUubWF4V2lkdGggPSBtYXhXaWR0aDtcblx0XHR9XG5cdH1cblxuXHRyZXR1cm4gcmV0ICE9PSB1bmRlZmluZWQgP1xuXG5cdFx0Ly8gU3VwcG9ydDogSUUgPD05IC0gMTEgb25seVxuXHRcdC8vIElFIHJldHVybnMgekluZGV4IHZhbHVlIGFzIGFuIGludGVnZXIuXG5cdFx0cmV0ICsgXCJcIiA6XG5cdFx0cmV0O1xufVxuXG5cbmZ1bmN0aW9uIGFkZEdldEhvb2tJZiggY29uZGl0aW9uRm4sIGhvb2tGbiApIHtcblxuXHQvLyBEZWZpbmUgdGhlIGhvb2ssIHdlJ2xsIGNoZWNrIG9uIHRoZSBmaXJzdCBydW4gaWYgaXQncyByZWFsbHkgbmVlZGVkLlxuXHRyZXR1cm4ge1xuXHRcdGdldDogZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIGNvbmRpdGlvbkZuKCkgKSB7XG5cblx0XHRcdFx0Ly8gSG9vayBub3QgbmVlZGVkIChvciBpdCdzIG5vdCBwb3NzaWJsZSB0byB1c2UgaXQgZHVlXG5cdFx0XHRcdC8vIHRvIG1pc3NpbmcgZGVwZW5kZW5jeSksIHJlbW92ZSBpdC5cblx0XHRcdFx0ZGVsZXRlIHRoaXMuZ2V0O1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdC8vIEhvb2sgbmVlZGVkOyByZWRlZmluZSBpdCBzbyB0aGF0IHRoZSBzdXBwb3J0IHRlc3QgaXMgbm90IGV4ZWN1dGVkIGFnYWluLlxuXHRcdFx0cmV0dXJuICggdGhpcy5nZXQgPSBob29rRm4gKS5hcHBseSggdGhpcywgYXJndW1lbnRzICk7XG5cdFx0fVxuXHR9O1xufVxuXG5cbnZhclxuXG5cdC8vIFN3YXBwYWJsZSBpZiBkaXNwbGF5IGlzIG5vbmUgb3Igc3RhcnRzIHdpdGggdGFibGVcblx0Ly8gZXhjZXB0IFwidGFibGVcIiwgXCJ0YWJsZS1jZWxsXCIsIG9yIFwidGFibGUtY2FwdGlvblwiXG5cdC8vIFNlZSBoZXJlIGZvciBkaXNwbGF5IHZhbHVlczogaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9DU1MvZGlzcGxheVxuXHRyZGlzcGxheXN3YXAgPSAvXihub25lfHRhYmxlKD8hLWNbZWFdKS4rKS8sXG5cdHJjdXN0b21Qcm9wID0gL14tLS8sXG5cdGNzc1Nob3cgPSB7IHBvc2l0aW9uOiBcImFic29sdXRlXCIsIHZpc2liaWxpdHk6IFwiaGlkZGVuXCIsIGRpc3BsYXk6IFwiYmxvY2tcIiB9LFxuXHRjc3NOb3JtYWxUcmFuc2Zvcm0gPSB7XG5cdFx0bGV0dGVyU3BhY2luZzogXCIwXCIsXG5cdFx0Zm9udFdlaWdodDogXCI0MDBcIlxuXHR9LFxuXG5cdGNzc1ByZWZpeGVzID0gWyBcIldlYmtpdFwiLCBcIk1velwiLCBcIm1zXCIgXSxcblx0ZW1wdHlTdHlsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiZGl2XCIgKS5zdHlsZTtcblxuLy8gUmV0dXJuIGEgY3NzIHByb3BlcnR5IG1hcHBlZCB0byBhIHBvdGVudGlhbGx5IHZlbmRvciBwcmVmaXhlZCBwcm9wZXJ0eVxuZnVuY3Rpb24gdmVuZG9yUHJvcE5hbWUoIG5hbWUgKSB7XG5cblx0Ly8gU2hvcnRjdXQgZm9yIG5hbWVzIHRoYXQgYXJlIG5vdCB2ZW5kb3IgcHJlZml4ZWRcblx0aWYgKCBuYW1lIGluIGVtcHR5U3R5bGUgKSB7XG5cdFx0cmV0dXJuIG5hbWU7XG5cdH1cblxuXHQvLyBDaGVjayBmb3IgdmVuZG9yIHByZWZpeGVkIG5hbWVzXG5cdHZhciBjYXBOYW1lID0gbmFtZVsgMCBdLnRvVXBwZXJDYXNlKCkgKyBuYW1lLnNsaWNlKCAxICksXG5cdFx0aSA9IGNzc1ByZWZpeGVzLmxlbmd0aDtcblxuXHR3aGlsZSAoIGktLSApIHtcblx0XHRuYW1lID0gY3NzUHJlZml4ZXNbIGkgXSArIGNhcE5hbWU7XG5cdFx0aWYgKCBuYW1lIGluIGVtcHR5U3R5bGUgKSB7XG5cdFx0XHRyZXR1cm4gbmFtZTtcblx0XHR9XG5cdH1cbn1cblxuLy8gUmV0dXJuIGEgcHJvcGVydHkgbWFwcGVkIGFsb25nIHdoYXQgalF1ZXJ5LmNzc1Byb3BzIHN1Z2dlc3RzIG9yIHRvXG4vLyBhIHZlbmRvciBwcmVmaXhlZCBwcm9wZXJ0eS5cbmZ1bmN0aW9uIGZpbmFsUHJvcE5hbWUoIG5hbWUgKSB7XG5cdHZhciByZXQgPSBqUXVlcnkuY3NzUHJvcHNbIG5hbWUgXTtcblx0aWYgKCAhcmV0ICkge1xuXHRcdHJldCA9IGpRdWVyeS5jc3NQcm9wc1sgbmFtZSBdID0gdmVuZG9yUHJvcE5hbWUoIG5hbWUgKSB8fCBuYW1lO1xuXHR9XG5cdHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIHNldFBvc2l0aXZlTnVtYmVyKCBlbGVtLCB2YWx1ZSwgc3VidHJhY3QgKSB7XG5cblx0Ly8gQW55IHJlbGF0aXZlICgrLy0pIHZhbHVlcyBoYXZlIGFscmVhZHkgYmVlblxuXHQvLyBub3JtYWxpemVkIGF0IHRoaXMgcG9pbnRcblx0dmFyIG1hdGNoZXMgPSByY3NzTnVtLmV4ZWMoIHZhbHVlICk7XG5cdHJldHVybiBtYXRjaGVzID9cblxuXHRcdC8vIEd1YXJkIGFnYWluc3QgdW5kZWZpbmVkIFwic3VidHJhY3RcIiwgZS5nLiwgd2hlbiB1c2VkIGFzIGluIGNzc0hvb2tzXG5cdFx0TWF0aC5tYXgoIDAsIG1hdGNoZXNbIDIgXSAtICggc3VidHJhY3QgfHwgMCApICkgKyAoIG1hdGNoZXNbIDMgXSB8fCBcInB4XCIgKSA6XG5cdFx0dmFsdWU7XG59XG5cbmZ1bmN0aW9uIGJveE1vZGVsQWRqdXN0bWVudCggZWxlbSwgZGltZW5zaW9uLCBib3gsIGlzQm9yZGVyQm94LCBzdHlsZXMsIGNvbXB1dGVkVmFsICkge1xuXHR2YXIgaSA9IGRpbWVuc2lvbiA9PT0gXCJ3aWR0aFwiID8gMSA6IDAsXG5cdFx0ZXh0cmEgPSAwLFxuXHRcdGRlbHRhID0gMDtcblxuXHQvLyBBZGp1c3RtZW50IG1heSBub3QgYmUgbmVjZXNzYXJ5XG5cdGlmICggYm94ID09PSAoIGlzQm9yZGVyQm94ID8gXCJib3JkZXJcIiA6IFwiY29udGVudFwiICkgKSB7XG5cdFx0cmV0dXJuIDA7XG5cdH1cblxuXHRmb3IgKCA7IGkgPCA0OyBpICs9IDIgKSB7XG5cblx0XHQvLyBCb3RoIGJveCBtb2RlbHMgZXhjbHVkZSBtYXJnaW5cblx0XHRpZiAoIGJveCA9PT0gXCJtYXJnaW5cIiApIHtcblx0XHRcdGRlbHRhICs9IGpRdWVyeS5jc3MoIGVsZW0sIGJveCArIGNzc0V4cGFuZFsgaSBdLCB0cnVlLCBzdHlsZXMgKTtcblx0XHR9XG5cblx0XHQvLyBJZiB3ZSBnZXQgaGVyZSB3aXRoIGEgY29udGVudC1ib3gsIHdlJ3JlIHNlZWtpbmcgXCJwYWRkaW5nXCIgb3IgXCJib3JkZXJcIiBvciBcIm1hcmdpblwiXG5cdFx0aWYgKCAhaXNCb3JkZXJCb3ggKSB7XG5cblx0XHRcdC8vIEFkZCBwYWRkaW5nXG5cdFx0XHRkZWx0YSArPSBqUXVlcnkuY3NzKCBlbGVtLCBcInBhZGRpbmdcIiArIGNzc0V4cGFuZFsgaSBdLCB0cnVlLCBzdHlsZXMgKTtcblxuXHRcdFx0Ly8gRm9yIFwiYm9yZGVyXCIgb3IgXCJtYXJnaW5cIiwgYWRkIGJvcmRlclxuXHRcdFx0aWYgKCBib3ggIT09IFwicGFkZGluZ1wiICkge1xuXHRcdFx0XHRkZWx0YSArPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJvcmRlclwiICsgY3NzRXhwYW5kWyBpIF0gKyBcIldpZHRoXCIsIHRydWUsIHN0eWxlcyApO1xuXG5cdFx0XHQvLyBCdXQgc3RpbGwga2VlcCB0cmFjayBvZiBpdCBvdGhlcndpc2Vcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdGV4dHJhICs9IGpRdWVyeS5jc3MoIGVsZW0sIFwiYm9yZGVyXCIgKyBjc3NFeHBhbmRbIGkgXSArIFwiV2lkdGhcIiwgdHJ1ZSwgc3R5bGVzICk7XG5cdFx0XHR9XG5cblx0XHQvLyBJZiB3ZSBnZXQgaGVyZSB3aXRoIGEgYm9yZGVyLWJveCAoY29udGVudCArIHBhZGRpbmcgKyBib3JkZXIpLCB3ZSdyZSBzZWVraW5nIFwiY29udGVudFwiIG9yXG5cdFx0Ly8gXCJwYWRkaW5nXCIgb3IgXCJtYXJnaW5cIlxuXHRcdH0gZWxzZSB7XG5cblx0XHRcdC8vIEZvciBcImNvbnRlbnRcIiwgc3VidHJhY3QgcGFkZGluZ1xuXHRcdFx0aWYgKCBib3ggPT09IFwiY29udGVudFwiICkge1xuXHRcdFx0XHRkZWx0YSAtPSBqUXVlcnkuY3NzKCBlbGVtLCBcInBhZGRpbmdcIiArIGNzc0V4cGFuZFsgaSBdLCB0cnVlLCBzdHlsZXMgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRm9yIFwiY29udGVudFwiIG9yIFwicGFkZGluZ1wiLCBzdWJ0cmFjdCBib3JkZXJcblx0XHRcdGlmICggYm94ICE9PSBcIm1hcmdpblwiICkge1xuXHRcdFx0XHRkZWx0YSAtPSBqUXVlcnkuY3NzKCBlbGVtLCBcImJvcmRlclwiICsgY3NzRXhwYW5kWyBpIF0gKyBcIldpZHRoXCIsIHRydWUsIHN0eWxlcyApO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIEFjY291bnQgZm9yIHBvc2l0aXZlIGNvbnRlbnQtYm94IHNjcm9sbCBndXR0ZXIgd2hlbiByZXF1ZXN0ZWQgYnkgcHJvdmlkaW5nIGNvbXB1dGVkVmFsXG5cdGlmICggIWlzQm9yZGVyQm94ICYmIGNvbXB1dGVkVmFsID49IDAgKSB7XG5cblx0XHQvLyBvZmZzZXRXaWR0aC9vZmZzZXRIZWlnaHQgaXMgYSByb3VuZGVkIHN1bSBvZiBjb250ZW50LCBwYWRkaW5nLCBzY3JvbGwgZ3V0dGVyLCBhbmQgYm9yZGVyXG5cdFx0Ly8gQXNzdW1pbmcgaW50ZWdlciBzY3JvbGwgZ3V0dGVyLCBzdWJ0cmFjdCB0aGUgcmVzdCBhbmQgcm91bmQgZG93blxuXHRcdGRlbHRhICs9IE1hdGgubWF4KCAwLCBNYXRoLmNlaWwoXG5cdFx0XHRlbGVtWyBcIm9mZnNldFwiICsgZGltZW5zaW9uWyAwIF0udG9VcHBlckNhc2UoKSArIGRpbWVuc2lvbi5zbGljZSggMSApIF0gLVxuXHRcdFx0Y29tcHV0ZWRWYWwgLVxuXHRcdFx0ZGVsdGEgLVxuXHRcdFx0ZXh0cmEgLVxuXHRcdFx0MC41XG5cdFx0KSApO1xuXHR9XG5cblx0cmV0dXJuIGRlbHRhO1xufVxuXG5mdW5jdGlvbiBnZXRXaWR0aE9ySGVpZ2h0KCBlbGVtLCBkaW1lbnNpb24sIGV4dHJhICkge1xuXG5cdC8vIFN0YXJ0IHdpdGggY29tcHV0ZWQgc3R5bGVcblx0dmFyIHN0eWxlcyA9IGdldFN0eWxlcyggZWxlbSApLFxuXHRcdHZhbCA9IGN1ckNTUyggZWxlbSwgZGltZW5zaW9uLCBzdHlsZXMgKSxcblx0XHRpc0JvcmRlckJveCA9IGpRdWVyeS5jc3MoIGVsZW0sIFwiYm94U2l6aW5nXCIsIGZhbHNlLCBzdHlsZXMgKSA9PT0gXCJib3JkZXItYm94XCIsXG5cdFx0dmFsdWVJc0JvcmRlckJveCA9IGlzQm9yZGVyQm94O1xuXG5cdC8vIFN1cHBvcnQ6IEZpcmVmb3ggPD01NFxuXHQvLyBSZXR1cm4gYSBjb25mb3VuZGluZyBub24tcGl4ZWwgdmFsdWUgb3IgZmVpZ24gaWdub3JhbmNlLCBhcyBhcHByb3ByaWF0ZS5cblx0aWYgKCBybnVtbm9ucHgudGVzdCggdmFsICkgKSB7XG5cdFx0aWYgKCAhZXh0cmEgKSB7XG5cdFx0XHRyZXR1cm4gdmFsO1xuXHRcdH1cblx0XHR2YWwgPSBcImF1dG9cIjtcblx0fVxuXG5cdC8vIENoZWNrIGZvciBzdHlsZSBpbiBjYXNlIGEgYnJvd3NlciB3aGljaCByZXR1cm5zIHVucmVsaWFibGUgdmFsdWVzXG5cdC8vIGZvciBnZXRDb21wdXRlZFN0eWxlIHNpbGVudGx5IGZhbGxzIGJhY2sgdG8gdGhlIHJlbGlhYmxlIGVsZW0uc3R5bGVcblx0dmFsdWVJc0JvcmRlckJveCA9IHZhbHVlSXNCb3JkZXJCb3ggJiZcblx0XHQoIHN1cHBvcnQuYm94U2l6aW5nUmVsaWFibGUoKSB8fCB2YWwgPT09IGVsZW0uc3R5bGVbIGRpbWVuc2lvbiBdICk7XG5cblx0Ly8gRmFsbCBiYWNrIHRvIG9mZnNldFdpZHRoL29mZnNldEhlaWdodCB3aGVuIHZhbHVlIGlzIFwiYXV0b1wiXG5cdC8vIFRoaXMgaGFwcGVucyBmb3IgaW5saW5lIGVsZW1lbnRzIHdpdGggbm8gZXhwbGljaXQgc2V0dGluZyAoZ2gtMzU3MSlcblx0Ly8gU3VwcG9ydDogQW5kcm9pZCA8PTQuMSAtIDQuMyBvbmx5XG5cdC8vIEFsc28gdXNlIG9mZnNldFdpZHRoL29mZnNldEhlaWdodCBmb3IgbWlzcmVwb3J0ZWQgaW5saW5lIGRpbWVuc2lvbnMgKGdoLTM2MDIpXG5cdGlmICggdmFsID09PSBcImF1dG9cIiB8fFxuXHRcdCFwYXJzZUZsb2F0KCB2YWwgKSAmJiBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiwgZmFsc2UsIHN0eWxlcyApID09PSBcImlubGluZVwiICkge1xuXG5cdFx0dmFsID0gZWxlbVsgXCJvZmZzZXRcIiArIGRpbWVuc2lvblsgMCBdLnRvVXBwZXJDYXNlKCkgKyBkaW1lbnNpb24uc2xpY2UoIDEgKSBdO1xuXG5cdFx0Ly8gb2Zmc2V0V2lkdGgvb2Zmc2V0SGVpZ2h0IHByb3ZpZGUgYm9yZGVyLWJveCB2YWx1ZXNcblx0XHR2YWx1ZUlzQm9yZGVyQm94ID0gdHJ1ZTtcblx0fVxuXG5cdC8vIE5vcm1hbGl6ZSBcIlwiIGFuZCBhdXRvXG5cdHZhbCA9IHBhcnNlRmxvYXQoIHZhbCApIHx8IDA7XG5cblx0Ly8gQWRqdXN0IGZvciB0aGUgZWxlbWVudCdzIGJveCBtb2RlbFxuXHRyZXR1cm4gKCB2YWwgK1xuXHRcdGJveE1vZGVsQWRqdXN0bWVudChcblx0XHRcdGVsZW0sXG5cdFx0XHRkaW1lbnNpb24sXG5cdFx0XHRleHRyYSB8fCAoIGlzQm9yZGVyQm94ID8gXCJib3JkZXJcIiA6IFwiY29udGVudFwiICksXG5cdFx0XHR2YWx1ZUlzQm9yZGVyQm94LFxuXHRcdFx0c3R5bGVzLFxuXG5cdFx0XHQvLyBQcm92aWRlIHRoZSBjdXJyZW50IGNvbXB1dGVkIHNpemUgdG8gcmVxdWVzdCBzY3JvbGwgZ3V0dGVyIGNhbGN1bGF0aW9uIChnaC0zNTg5KVxuXHRcdFx0dmFsXG5cdFx0KVxuXHQpICsgXCJweFwiO1xufVxuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cblx0Ly8gQWRkIGluIHN0eWxlIHByb3BlcnR5IGhvb2tzIGZvciBvdmVycmlkaW5nIHRoZSBkZWZhdWx0XG5cdC8vIGJlaGF2aW9yIG9mIGdldHRpbmcgYW5kIHNldHRpbmcgYSBzdHlsZSBwcm9wZXJ0eVxuXHRjc3NIb29rczoge1xuXHRcdG9wYWNpdHk6IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkge1xuXHRcdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXG5cdFx0XHRcdFx0Ly8gV2Ugc2hvdWxkIGFsd2F5cyBnZXQgYSBudW1iZXIgYmFjayBmcm9tIG9wYWNpdHlcblx0XHRcdFx0XHR2YXIgcmV0ID0gY3VyQ1NTKCBlbGVtLCBcIm9wYWNpdHlcIiApO1xuXHRcdFx0XHRcdHJldHVybiByZXQgPT09IFwiXCIgPyBcIjFcIiA6IHJldDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fSxcblxuXHQvLyBEb24ndCBhdXRvbWF0aWNhbGx5IGFkZCBcInB4XCIgdG8gdGhlc2UgcG9zc2libHktdW5pdGxlc3MgcHJvcGVydGllc1xuXHRjc3NOdW1iZXI6IHtcblx0XHRcImFuaW1hdGlvbkl0ZXJhdGlvbkNvdW50XCI6IHRydWUsXG5cdFx0XCJjb2x1bW5Db3VudFwiOiB0cnVlLFxuXHRcdFwiZmlsbE9wYWNpdHlcIjogdHJ1ZSxcblx0XHRcImZsZXhHcm93XCI6IHRydWUsXG5cdFx0XCJmbGV4U2hyaW5rXCI6IHRydWUsXG5cdFx0XCJmb250V2VpZ2h0XCI6IHRydWUsXG5cdFx0XCJsaW5lSGVpZ2h0XCI6IHRydWUsXG5cdFx0XCJvcGFjaXR5XCI6IHRydWUsXG5cdFx0XCJvcmRlclwiOiB0cnVlLFxuXHRcdFwib3JwaGFuc1wiOiB0cnVlLFxuXHRcdFwid2lkb3dzXCI6IHRydWUsXG5cdFx0XCJ6SW5kZXhcIjogdHJ1ZSxcblx0XHRcInpvb21cIjogdHJ1ZVxuXHR9LFxuXG5cdC8vIEFkZCBpbiBwcm9wZXJ0aWVzIHdob3NlIG5hbWVzIHlvdSB3aXNoIHRvIGZpeCBiZWZvcmVcblx0Ly8gc2V0dGluZyBvciBnZXR0aW5nIHRoZSB2YWx1ZVxuXHRjc3NQcm9wczoge30sXG5cblx0Ly8gR2V0IGFuZCBzZXQgdGhlIHN0eWxlIHByb3BlcnR5IG9uIGEgRE9NIE5vZGVcblx0c3R5bGU6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSwgZXh0cmEgKSB7XG5cblx0XHQvLyBEb24ndCBzZXQgc3R5bGVzIG9uIHRleHQgYW5kIGNvbW1lbnQgbm9kZXNcblx0XHRpZiAoICFlbGVtIHx8IGVsZW0ubm9kZVR5cGUgPT09IDMgfHwgZWxlbS5ub2RlVHlwZSA9PT0gOCB8fCAhZWxlbS5zdHlsZSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHQvLyBNYWtlIHN1cmUgdGhhdCB3ZSdyZSB3b3JraW5nIHdpdGggdGhlIHJpZ2h0IG5hbWVcblx0XHR2YXIgcmV0LCB0eXBlLCBob29rcyxcblx0XHRcdG9yaWdOYW1lID0gY2FtZWxDYXNlKCBuYW1lICksXG5cdFx0XHRpc0N1c3RvbVByb3AgPSByY3VzdG9tUHJvcC50ZXN0KCBuYW1lICksXG5cdFx0XHRzdHlsZSA9IGVsZW0uc3R5bGU7XG5cblx0XHQvLyBNYWtlIHN1cmUgdGhhdCB3ZSdyZSB3b3JraW5nIHdpdGggdGhlIHJpZ2h0IG5hbWUuIFdlIGRvbid0XG5cdFx0Ly8gd2FudCB0byBxdWVyeSB0aGUgdmFsdWUgaWYgaXQgaXMgYSBDU1MgY3VzdG9tIHByb3BlcnR5XG5cdFx0Ly8gc2luY2UgdGhleSBhcmUgdXNlci1kZWZpbmVkLlxuXHRcdGlmICggIWlzQ3VzdG9tUHJvcCApIHtcblx0XHRcdG5hbWUgPSBmaW5hbFByb3BOYW1lKCBvcmlnTmFtZSApO1xuXHRcdH1cblxuXHRcdC8vIEdldHMgaG9vayBmb3IgdGhlIHByZWZpeGVkIHZlcnNpb24sIHRoZW4gdW5wcmVmaXhlZCB2ZXJzaW9uXG5cdFx0aG9va3MgPSBqUXVlcnkuY3NzSG9va3NbIG5hbWUgXSB8fCBqUXVlcnkuY3NzSG9va3NbIG9yaWdOYW1lIF07XG5cblx0XHQvLyBDaGVjayBpZiB3ZSdyZSBzZXR0aW5nIGEgdmFsdWVcblx0XHRpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHR0eXBlID0gdHlwZW9mIHZhbHVlO1xuXG5cdFx0XHQvLyBDb252ZXJ0IFwiKz1cIiBvciBcIi09XCIgdG8gcmVsYXRpdmUgbnVtYmVycyAoIzczNDUpXG5cdFx0XHRpZiAoIHR5cGUgPT09IFwic3RyaW5nXCIgJiYgKCByZXQgPSByY3NzTnVtLmV4ZWMoIHZhbHVlICkgKSAmJiByZXRbIDEgXSApIHtcblx0XHRcdFx0dmFsdWUgPSBhZGp1c3RDU1MoIGVsZW0sIG5hbWUsIHJldCApO1xuXG5cdFx0XHRcdC8vIEZpeGVzIGJ1ZyAjOTIzN1xuXHRcdFx0XHR0eXBlID0gXCJudW1iZXJcIjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gTWFrZSBzdXJlIHRoYXQgbnVsbCBhbmQgTmFOIHZhbHVlcyBhcmVuJ3Qgc2V0ICgjNzExNilcblx0XHRcdGlmICggdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZSAhPT0gdmFsdWUgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgYSBudW1iZXIgd2FzIHBhc3NlZCBpbiwgYWRkIHRoZSB1bml0IChleGNlcHQgZm9yIGNlcnRhaW4gQ1NTIHByb3BlcnRpZXMpXG5cdFx0XHRpZiAoIHR5cGUgPT09IFwibnVtYmVyXCIgKSB7XG5cdFx0XHRcdHZhbHVlICs9IHJldCAmJiByZXRbIDMgXSB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIG9yaWdOYW1lIF0gPyBcIlwiIDogXCJweFwiICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIGJhY2tncm91bmQtKiBwcm9wcyBhZmZlY3Qgb3JpZ2luYWwgY2xvbmUncyB2YWx1ZXNcblx0XHRcdGlmICggIXN1cHBvcnQuY2xlYXJDbG9uZVN0eWxlICYmIHZhbHVlID09PSBcIlwiICYmIG5hbWUuaW5kZXhPZiggXCJiYWNrZ3JvdW5kXCIgKSA9PT0gMCApIHtcblx0XHRcdFx0c3R5bGVbIG5hbWUgXSA9IFwiaW5oZXJpdFwiO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkLCB1c2UgdGhhdCB2YWx1ZSwgb3RoZXJ3aXNlIGp1c3Qgc2V0IHRoZSBzcGVjaWZpZWQgdmFsdWVcblx0XHRcdGlmICggIWhvb2tzIHx8ICEoIFwic2V0XCIgaW4gaG9va3MgKSB8fFxuXHRcdFx0XHQoIHZhbHVlID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgZXh0cmEgKSApICE9PSB1bmRlZmluZWQgKSB7XG5cblx0XHRcdFx0aWYgKCBpc0N1c3RvbVByb3AgKSB7XG5cdFx0XHRcdFx0c3R5bGUuc2V0UHJvcGVydHkoIG5hbWUsIHZhbHVlICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0c3R5bGVbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHR9IGVsc2Uge1xuXG5cdFx0XHQvLyBJZiBhIGhvb2sgd2FzIHByb3ZpZGVkIGdldCB0aGUgbm9uLWNvbXB1dGVkIHZhbHVlIGZyb20gdGhlcmVcblx0XHRcdGlmICggaG9va3MgJiYgXCJnZXRcIiBpbiBob29rcyAmJlxuXHRcdFx0XHQoIHJldCA9IGhvb2tzLmdldCggZWxlbSwgZmFsc2UsIGV4dHJhICkgKSAhPT0gdW5kZWZpbmVkICkge1xuXG5cdFx0XHRcdHJldHVybiByZXQ7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE90aGVyd2lzZSBqdXN0IGdldCB0aGUgdmFsdWUgZnJvbSB0aGUgc3R5bGUgb2JqZWN0XG5cdFx0XHRyZXR1cm4gc3R5bGVbIG5hbWUgXTtcblx0XHR9XG5cdH0sXG5cblx0Y3NzOiBmdW5jdGlvbiggZWxlbSwgbmFtZSwgZXh0cmEsIHN0eWxlcyApIHtcblx0XHR2YXIgdmFsLCBudW0sIGhvb2tzLFxuXHRcdFx0b3JpZ05hbWUgPSBjYW1lbENhc2UoIG5hbWUgKSxcblx0XHRcdGlzQ3VzdG9tUHJvcCA9IHJjdXN0b21Qcm9wLnRlc3QoIG5hbWUgKTtcblxuXHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHdlJ3JlIHdvcmtpbmcgd2l0aCB0aGUgcmlnaHQgbmFtZS4gV2UgZG9uJ3Rcblx0XHQvLyB3YW50IHRvIG1vZGlmeSB0aGUgdmFsdWUgaWYgaXQgaXMgYSBDU1MgY3VzdG9tIHByb3BlcnR5XG5cdFx0Ly8gc2luY2UgdGhleSBhcmUgdXNlci1kZWZpbmVkLlxuXHRcdGlmICggIWlzQ3VzdG9tUHJvcCApIHtcblx0XHRcdG5hbWUgPSBmaW5hbFByb3BOYW1lKCBvcmlnTmFtZSApO1xuXHRcdH1cblxuXHRcdC8vIFRyeSBwcmVmaXhlZCBuYW1lIGZvbGxvd2VkIGJ5IHRoZSB1bnByZWZpeGVkIG5hbWVcblx0XHRob29rcyA9IGpRdWVyeS5jc3NIb29rc1sgbmFtZSBdIHx8IGpRdWVyeS5jc3NIb29rc1sgb3JpZ05hbWUgXTtcblxuXHRcdC8vIElmIGEgaG9vayB3YXMgcHJvdmlkZWQgZ2V0IHRoZSBjb21wdXRlZCB2YWx1ZSBmcm9tIHRoZXJlXG5cdFx0aWYgKCBob29rcyAmJiBcImdldFwiIGluIGhvb2tzICkge1xuXHRcdFx0dmFsID0gaG9va3MuZ2V0KCBlbGVtLCB0cnVlLCBleHRyYSApO1xuXHRcdH1cblxuXHRcdC8vIE90aGVyd2lzZSwgaWYgYSB3YXkgdG8gZ2V0IHRoZSBjb21wdXRlZCB2YWx1ZSBleGlzdHMsIHVzZSB0aGF0XG5cdFx0aWYgKCB2YWwgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdHZhbCA9IGN1ckNTUyggZWxlbSwgbmFtZSwgc3R5bGVzICk7XG5cdFx0fVxuXG5cdFx0Ly8gQ29udmVydCBcIm5vcm1hbFwiIHRvIGNvbXB1dGVkIHZhbHVlXG5cdFx0aWYgKCB2YWwgPT09IFwibm9ybWFsXCIgJiYgbmFtZSBpbiBjc3NOb3JtYWxUcmFuc2Zvcm0gKSB7XG5cdFx0XHR2YWwgPSBjc3NOb3JtYWxUcmFuc2Zvcm1bIG5hbWUgXTtcblx0XHR9XG5cblx0XHQvLyBNYWtlIG51bWVyaWMgaWYgZm9yY2VkIG9yIGEgcXVhbGlmaWVyIHdhcyBwcm92aWRlZCBhbmQgdmFsIGxvb2tzIG51bWVyaWNcblx0XHRpZiAoIGV4dHJhID09PSBcIlwiIHx8IGV4dHJhICkge1xuXHRcdFx0bnVtID0gcGFyc2VGbG9hdCggdmFsICk7XG5cdFx0XHRyZXR1cm4gZXh0cmEgPT09IHRydWUgfHwgaXNGaW5pdGUoIG51bSApID8gbnVtIHx8IDAgOiB2YWw7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHZhbDtcblx0fVxufSApO1xuXG5qUXVlcnkuZWFjaCggWyBcImhlaWdodFwiLCBcIndpZHRoXCIgXSwgZnVuY3Rpb24oIGksIGRpbWVuc2lvbiApIHtcblx0alF1ZXJ5LmNzc0hvb2tzWyBkaW1lbnNpb24gXSA9IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtLCBjb21wdXRlZCwgZXh0cmEgKSB7XG5cdFx0XHRpZiAoIGNvbXB1dGVkICkge1xuXG5cdFx0XHRcdC8vIENlcnRhaW4gZWxlbWVudHMgY2FuIGhhdmUgZGltZW5zaW9uIGluZm8gaWYgd2UgaW52aXNpYmx5IHNob3cgdGhlbVxuXHRcdFx0XHQvLyBidXQgaXQgbXVzdCBoYXZlIGEgY3VycmVudCBkaXNwbGF5IHN0eWxlIHRoYXQgd291bGQgYmVuZWZpdFxuXHRcdFx0XHRyZXR1cm4gcmRpc3BsYXlzd2FwLnRlc3QoIGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiICkgKSAmJlxuXG5cdFx0XHRcdFx0Ly8gU3VwcG9ydDogU2FmYXJpIDgrXG5cdFx0XHRcdFx0Ly8gVGFibGUgY29sdW1ucyBpbiBTYWZhcmkgaGF2ZSBub24temVybyBvZmZzZXRXaWR0aCAmIHplcm9cblx0XHRcdFx0XHQvLyBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCB1bmxlc3MgZGlzcGxheSBpcyBjaGFuZ2VkLlxuXHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHRcdFx0XHRcdC8vIFJ1bm5pbmcgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IG9uIGEgZGlzY29ubmVjdGVkIG5vZGVcblx0XHRcdFx0XHQvLyBpbiBJRSB0aHJvd3MgYW4gZXJyb3IuXG5cdFx0XHRcdFx0KCAhZWxlbS5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCB8fCAhZWxlbS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCApID9cblx0XHRcdFx0XHRcdHN3YXAoIGVsZW0sIGNzc1Nob3csIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gZ2V0V2lkdGhPckhlaWdodCggZWxlbSwgZGltZW5zaW9uLCBleHRyYSApO1xuXHRcdFx0XHRcdFx0fSApIDpcblx0XHRcdFx0XHRcdGdldFdpZHRoT3JIZWlnaHQoIGVsZW0sIGRpbWVuc2lvbiwgZXh0cmEgKTtcblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUsIGV4dHJhICkge1xuXHRcdFx0dmFyIG1hdGNoZXMsXG5cdFx0XHRcdHN0eWxlcyA9IGdldFN0eWxlcyggZWxlbSApLFxuXHRcdFx0XHRpc0JvcmRlckJveCA9IGpRdWVyeS5jc3MoIGVsZW0sIFwiYm94U2l6aW5nXCIsIGZhbHNlLCBzdHlsZXMgKSA9PT0gXCJib3JkZXItYm94XCIsXG5cdFx0XHRcdHN1YnRyYWN0ID0gZXh0cmEgJiYgYm94TW9kZWxBZGp1c3RtZW50KFxuXHRcdFx0XHRcdGVsZW0sXG5cdFx0XHRcdFx0ZGltZW5zaW9uLFxuXHRcdFx0XHRcdGV4dHJhLFxuXHRcdFx0XHRcdGlzQm9yZGVyQm94LFxuXHRcdFx0XHRcdHN0eWxlc1xuXHRcdFx0XHQpO1xuXG5cdFx0XHQvLyBBY2NvdW50IGZvciB1bnJlbGlhYmxlIGJvcmRlci1ib3ggZGltZW5zaW9ucyBieSBjb21wYXJpbmcgb2Zmc2V0KiB0byBjb21wdXRlZCBhbmRcblx0XHRcdC8vIGZha2luZyBhIGNvbnRlbnQtYm94IHRvIGdldCBib3JkZXIgYW5kIHBhZGRpbmcgKGdoLTM2OTkpXG5cdFx0XHRpZiAoIGlzQm9yZGVyQm94ICYmIHN1cHBvcnQuc2Nyb2xsYm94U2l6ZSgpID09PSBzdHlsZXMucG9zaXRpb24gKSB7XG5cdFx0XHRcdHN1YnRyYWN0IC09IE1hdGguY2VpbChcblx0XHRcdFx0XHRlbGVtWyBcIm9mZnNldFwiICsgZGltZW5zaW9uWyAwIF0udG9VcHBlckNhc2UoKSArIGRpbWVuc2lvbi5zbGljZSggMSApIF0gLVxuXHRcdFx0XHRcdHBhcnNlRmxvYXQoIHN0eWxlc1sgZGltZW5zaW9uIF0gKSAtXG5cdFx0XHRcdFx0Ym94TW9kZWxBZGp1c3RtZW50KCBlbGVtLCBkaW1lbnNpb24sIFwiYm9yZGVyXCIsIGZhbHNlLCBzdHlsZXMgKSAtXG5cdFx0XHRcdFx0MC41XG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENvbnZlcnQgdG8gcGl4ZWxzIGlmIHZhbHVlIGFkanVzdG1lbnQgaXMgbmVlZGVkXG5cdFx0XHRpZiAoIHN1YnRyYWN0ICYmICggbWF0Y2hlcyA9IHJjc3NOdW0uZXhlYyggdmFsdWUgKSApICYmXG5cdFx0XHRcdCggbWF0Y2hlc1sgMyBdIHx8IFwicHhcIiApICE9PSBcInB4XCIgKSB7XG5cblx0XHRcdFx0ZWxlbS5zdHlsZVsgZGltZW5zaW9uIF0gPSB2YWx1ZTtcblx0XHRcdFx0dmFsdWUgPSBqUXVlcnkuY3NzKCBlbGVtLCBkaW1lbnNpb24gKTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHNldFBvc2l0aXZlTnVtYmVyKCBlbGVtLCB2YWx1ZSwgc3VidHJhY3QgKTtcblx0XHR9XG5cdH07XG59ICk7XG5cbmpRdWVyeS5jc3NIb29rcy5tYXJnaW5MZWZ0ID0gYWRkR2V0SG9va0lmKCBzdXBwb3J0LnJlbGlhYmxlTWFyZ2luTGVmdCxcblx0ZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkge1xuXHRcdGlmICggY29tcHV0ZWQgKSB7XG5cdFx0XHRyZXR1cm4gKCBwYXJzZUZsb2F0KCBjdXJDU1MoIGVsZW0sIFwibWFyZ2luTGVmdFwiICkgKSB8fFxuXHRcdFx0XHRlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuXHRcdFx0XHRcdHN3YXAoIGVsZW0sIHsgbWFyZ2luTGVmdDogMCB9LCBmdW5jdGlvbigpIHtcblx0XHRcdFx0XHRcdHJldHVybiBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQ7XG5cdFx0XHRcdFx0fSApXG5cdFx0XHRcdCkgKyBcInB4XCI7XG5cdFx0fVxuXHR9XG4pO1xuXG4vLyBUaGVzZSBob29rcyBhcmUgdXNlZCBieSBhbmltYXRlIHRvIGV4cGFuZCBwcm9wZXJ0aWVzXG5qUXVlcnkuZWFjaCgge1xuXHRtYXJnaW46IFwiXCIsXG5cdHBhZGRpbmc6IFwiXCIsXG5cdGJvcmRlcjogXCJXaWR0aFwiXG59LCBmdW5jdGlvbiggcHJlZml4LCBzdWZmaXggKSB7XG5cdGpRdWVyeS5jc3NIb29rc1sgcHJlZml4ICsgc3VmZml4IF0gPSB7XG5cdFx0ZXhwYW5kOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0XHR2YXIgaSA9IDAsXG5cdFx0XHRcdGV4cGFuZGVkID0ge30sXG5cblx0XHRcdFx0Ly8gQXNzdW1lcyBhIHNpbmdsZSBudW1iZXIgaWYgbm90IGEgc3RyaW5nXG5cdFx0XHRcdHBhcnRzID0gdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiID8gdmFsdWUuc3BsaXQoIFwiIFwiICkgOiBbIHZhbHVlIF07XG5cblx0XHRcdGZvciAoIDsgaSA8IDQ7IGkrKyApIHtcblx0XHRcdFx0ZXhwYW5kZWRbIHByZWZpeCArIGNzc0V4cGFuZFsgaSBdICsgc3VmZml4IF0gPVxuXHRcdFx0XHRcdHBhcnRzWyBpIF0gfHwgcGFydHNbIGkgLSAyIF0gfHwgcGFydHNbIDAgXTtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIGV4cGFuZGVkO1xuXHRcdH1cblx0fTtcblxuXHRpZiAoIHByZWZpeCAhPT0gXCJtYXJnaW5cIiApIHtcblx0XHRqUXVlcnkuY3NzSG9va3NbIHByZWZpeCArIHN1ZmZpeCBdLnNldCA9IHNldFBvc2l0aXZlTnVtYmVyO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0Y3NzOiBmdW5jdGlvbiggbmFtZSwgdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xuXHRcdFx0dmFyIHN0eWxlcywgbGVuLFxuXHRcdFx0XHRtYXAgPSB7fSxcblx0XHRcdFx0aSA9IDA7XG5cblx0XHRcdGlmICggQXJyYXkuaXNBcnJheSggbmFtZSApICkge1xuXHRcdFx0XHRzdHlsZXMgPSBnZXRTdHlsZXMoIGVsZW0gKTtcblx0XHRcdFx0bGVuID0gbmFtZS5sZW5ndGg7XG5cblx0XHRcdFx0Zm9yICggOyBpIDwgbGVuOyBpKysgKSB7XG5cdFx0XHRcdFx0bWFwWyBuYW1lWyBpIF0gXSA9IGpRdWVyeS5jc3MoIGVsZW0sIG5hbWVbIGkgXSwgZmFsc2UsIHN0eWxlcyApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIG1hcDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIHZhbHVlICE9PSB1bmRlZmluZWQgP1xuXHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIG5hbWUsIHZhbHVlICkgOlxuXHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCBuYW1lICk7XG5cdFx0fSwgbmFtZSwgdmFsdWUsIGFyZ3VtZW50cy5sZW5ndGggPiAxICk7XG5cdH1cbn0gKTtcblxuXG5mdW5jdGlvbiBUd2VlbiggZWxlbSwgb3B0aW9ucywgcHJvcCwgZW5kLCBlYXNpbmcgKSB7XG5cdHJldHVybiBuZXcgVHdlZW4ucHJvdG90eXBlLmluaXQoIGVsZW0sIG9wdGlvbnMsIHByb3AsIGVuZCwgZWFzaW5nICk7XG59XG5qUXVlcnkuVHdlZW4gPSBUd2VlbjtcblxuVHdlZW4ucHJvdG90eXBlID0ge1xuXHRjb25zdHJ1Y3RvcjogVHdlZW4sXG5cdGluaXQ6IGZ1bmN0aW9uKCBlbGVtLCBvcHRpb25zLCBwcm9wLCBlbmQsIGVhc2luZywgdW5pdCApIHtcblx0XHR0aGlzLmVsZW0gPSBlbGVtO1xuXHRcdHRoaXMucHJvcCA9IHByb3A7XG5cdFx0dGhpcy5lYXNpbmcgPSBlYXNpbmcgfHwgalF1ZXJ5LmVhc2luZy5fZGVmYXVsdDtcblx0XHR0aGlzLm9wdGlvbnMgPSBvcHRpb25zO1xuXHRcdHRoaXMuc3RhcnQgPSB0aGlzLm5vdyA9IHRoaXMuY3VyKCk7XG5cdFx0dGhpcy5lbmQgPSBlbmQ7XG5cdFx0dGhpcy51bml0ID0gdW5pdCB8fCAoIGpRdWVyeS5jc3NOdW1iZXJbIHByb3AgXSA/IFwiXCIgOiBcInB4XCIgKTtcblx0fSxcblx0Y3VyOiBmdW5jdGlvbigpIHtcblx0XHR2YXIgaG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdO1xuXG5cdFx0cmV0dXJuIGhvb2tzICYmIGhvb2tzLmdldCA/XG5cdFx0XHRob29rcy5nZXQoIHRoaXMgKSA6XG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuZ2V0KCB0aGlzICk7XG5cdH0sXG5cdHJ1bjogZnVuY3Rpb24oIHBlcmNlbnQgKSB7XG5cdFx0dmFyIGVhc2VkLFxuXHRcdFx0aG9va3MgPSBUd2Vlbi5wcm9wSG9va3NbIHRoaXMucHJvcCBdO1xuXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuZHVyYXRpb24gKSB7XG5cdFx0XHR0aGlzLnBvcyA9IGVhc2VkID0galF1ZXJ5LmVhc2luZ1sgdGhpcy5lYXNpbmcgXShcblx0XHRcdFx0cGVyY2VudCwgdGhpcy5vcHRpb25zLmR1cmF0aW9uICogcGVyY2VudCwgMCwgMSwgdGhpcy5vcHRpb25zLmR1cmF0aW9uXG5cdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLnBvcyA9IGVhc2VkID0gcGVyY2VudDtcblx0XHR9XG5cdFx0dGhpcy5ub3cgPSAoIHRoaXMuZW5kIC0gdGhpcy5zdGFydCApICogZWFzZWQgKyB0aGlzLnN0YXJ0O1xuXG5cdFx0aWYgKCB0aGlzLm9wdGlvbnMuc3RlcCApIHtcblx0XHRcdHRoaXMub3B0aW9ucy5zdGVwLmNhbGwoIHRoaXMuZWxlbSwgdGhpcy5ub3csIHRoaXMgKTtcblx0XHR9XG5cblx0XHRpZiAoIGhvb2tzICYmIGhvb2tzLnNldCApIHtcblx0XHRcdGhvb2tzLnNldCggdGhpcyApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRUd2Vlbi5wcm9wSG9va3MuX2RlZmF1bHQuc2V0KCB0aGlzICk7XG5cdFx0fVxuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59O1xuXG5Ud2Vlbi5wcm90b3R5cGUuaW5pdC5wcm90b3R5cGUgPSBUd2Vlbi5wcm90b3R5cGU7XG5cblR3ZWVuLnByb3BIb29rcyA9IHtcblx0X2RlZmF1bHQ6IHtcblx0XHRnZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblx0XHRcdHZhciByZXN1bHQ7XG5cblx0XHRcdC8vIFVzZSBhIHByb3BlcnR5IG9uIHRoZSBlbGVtZW50IGRpcmVjdGx5IHdoZW4gaXQgaXMgbm90IGEgRE9NIGVsZW1lbnQsXG5cdFx0XHQvLyBvciB3aGVuIHRoZXJlIGlzIG5vIG1hdGNoaW5nIHN0eWxlIHByb3BlcnR5IHRoYXQgZXhpc3RzLlxuXHRcdFx0aWYgKCB0d2Vlbi5lbGVtLm5vZGVUeXBlICE9PSAxIHx8XG5cdFx0XHRcdHR3ZWVuLmVsZW1bIHR3ZWVuLnByb3AgXSAhPSBudWxsICYmIHR3ZWVuLmVsZW0uc3R5bGVbIHR3ZWVuLnByb3AgXSA9PSBudWxsICkge1xuXHRcdFx0XHRyZXR1cm4gdHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBQYXNzaW5nIGFuIGVtcHR5IHN0cmluZyBhcyBhIDNyZCBwYXJhbWV0ZXIgdG8gLmNzcyB3aWxsIGF1dG9tYXRpY2FsbHlcblx0XHRcdC8vIGF0dGVtcHQgYSBwYXJzZUZsb2F0IGFuZCBmYWxsYmFjayB0byBhIHN0cmluZyBpZiB0aGUgcGFyc2UgZmFpbHMuXG5cdFx0XHQvLyBTaW1wbGUgdmFsdWVzIHN1Y2ggYXMgXCIxMHB4XCIgYXJlIHBhcnNlZCB0byBGbG9hdDtcblx0XHRcdC8vIGNvbXBsZXggdmFsdWVzIHN1Y2ggYXMgXCJyb3RhdGUoMXJhZClcIiBhcmUgcmV0dXJuZWQgYXMtaXMuXG5cdFx0XHRyZXN1bHQgPSBqUXVlcnkuY3NzKCB0d2Vlbi5lbGVtLCB0d2Vlbi5wcm9wLCBcIlwiICk7XG5cblx0XHRcdC8vIEVtcHR5IHN0cmluZ3MsIG51bGwsIHVuZGVmaW5lZCBhbmQgXCJhdXRvXCIgYXJlIGNvbnZlcnRlZCB0byAwLlxuXHRcdFx0cmV0dXJuICFyZXN1bHQgfHwgcmVzdWx0ID09PSBcImF1dG9cIiA/IDAgOiByZXN1bHQ7XG5cdFx0fSxcblx0XHRzZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblxuXHRcdFx0Ly8gVXNlIHN0ZXAgaG9vayBmb3IgYmFjayBjb21wYXQuXG5cdFx0XHQvLyBVc2UgY3NzSG9vayBpZiBpdHMgdGhlcmUuXG5cdFx0XHQvLyBVc2UgLnN0eWxlIGlmIGF2YWlsYWJsZSBhbmQgdXNlIHBsYWluIHByb3BlcnRpZXMgd2hlcmUgYXZhaWxhYmxlLlxuXHRcdFx0aWYgKCBqUXVlcnkuZnguc3RlcFsgdHdlZW4ucHJvcCBdICkge1xuXHRcdFx0XHRqUXVlcnkuZnguc3RlcFsgdHdlZW4ucHJvcCBdKCB0d2VlbiApO1xuXHRcdFx0fSBlbHNlIGlmICggdHdlZW4uZWxlbS5ub2RlVHlwZSA9PT0gMSAmJlxuXHRcdFx0XHQoIHR3ZWVuLmVsZW0uc3R5bGVbIGpRdWVyeS5jc3NQcm9wc1sgdHdlZW4ucHJvcCBdIF0gIT0gbnVsbCB8fFxuXHRcdFx0XHRcdGpRdWVyeS5jc3NIb29rc1sgdHdlZW4ucHJvcCBdICkgKSB7XG5cdFx0XHRcdGpRdWVyeS5zdHlsZSggdHdlZW4uZWxlbSwgdHdlZW4ucHJvcCwgdHdlZW4ubm93ICsgdHdlZW4udW5pdCApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdID0gdHdlZW4ubm93O1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufTtcblxuLy8gU3VwcG9ydDogSUUgPD05IG9ubHlcbi8vIFBhbmljIGJhc2VkIGFwcHJvYWNoIHRvIHNldHRpbmcgdGhpbmdzIG9uIGRpc2Nvbm5lY3RlZCBub2Rlc1xuVHdlZW4ucHJvcEhvb2tzLnNjcm9sbFRvcCA9IFR3ZWVuLnByb3BIb29rcy5zY3JvbGxMZWZ0ID0ge1xuXHRzZXQ6IGZ1bmN0aW9uKCB0d2VlbiApIHtcblx0XHRpZiAoIHR3ZWVuLmVsZW0ubm9kZVR5cGUgJiYgdHdlZW4uZWxlbS5wYXJlbnROb2RlICkge1xuXHRcdFx0dHdlZW4uZWxlbVsgdHdlZW4ucHJvcCBdID0gdHdlZW4ubm93O1xuXHRcdH1cblx0fVxufTtcblxualF1ZXJ5LmVhc2luZyA9IHtcblx0bGluZWFyOiBmdW5jdGlvbiggcCApIHtcblx0XHRyZXR1cm4gcDtcblx0fSxcblx0c3dpbmc6IGZ1bmN0aW9uKCBwICkge1xuXHRcdHJldHVybiAwLjUgLSBNYXRoLmNvcyggcCAqIE1hdGguUEkgKSAvIDI7XG5cdH0sXG5cdF9kZWZhdWx0OiBcInN3aW5nXCJcbn07XG5cbmpRdWVyeS5meCA9IFR3ZWVuLnByb3RvdHlwZS5pbml0O1xuXG4vLyBCYWNrIGNvbXBhdCA8MS44IGV4dGVuc2lvbiBwb2ludFxualF1ZXJ5LmZ4LnN0ZXAgPSB7fTtcblxuXG5cblxudmFyXG5cdGZ4Tm93LCBpblByb2dyZXNzLFxuXHRyZnh0eXBlcyA9IC9eKD86dG9nZ2xlfHNob3d8aGlkZSkkLyxcblx0cnJ1biA9IC9xdWV1ZUhvb2tzJC87XG5cbmZ1bmN0aW9uIHNjaGVkdWxlKCkge1xuXHRpZiAoIGluUHJvZ3Jlc3MgKSB7XG5cdFx0aWYgKCBkb2N1bWVudC5oaWRkZW4gPT09IGZhbHNlICYmIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgKSB7XG5cdFx0XHR3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKCBzY2hlZHVsZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR3aW5kb3cuc2V0VGltZW91dCggc2NoZWR1bGUsIGpRdWVyeS5meC5pbnRlcnZhbCApO1xuXHRcdH1cblxuXHRcdGpRdWVyeS5meC50aWNrKCk7XG5cdH1cbn1cblxuLy8gQW5pbWF0aW9ucyBjcmVhdGVkIHN5bmNocm9ub3VzbHkgd2lsbCBydW4gc3luY2hyb25vdXNseVxuZnVuY3Rpb24gY3JlYXRlRnhOb3coKSB7XG5cdHdpbmRvdy5zZXRUaW1lb3V0KCBmdW5jdGlvbigpIHtcblx0XHRmeE5vdyA9IHVuZGVmaW5lZDtcblx0fSApO1xuXHRyZXR1cm4gKCBmeE5vdyA9IERhdGUubm93KCkgKTtcbn1cblxuLy8gR2VuZXJhdGUgcGFyYW1ldGVycyB0byBjcmVhdGUgYSBzdGFuZGFyZCBhbmltYXRpb25cbmZ1bmN0aW9uIGdlbkZ4KCB0eXBlLCBpbmNsdWRlV2lkdGggKSB7XG5cdHZhciB3aGljaCxcblx0XHRpID0gMCxcblx0XHRhdHRycyA9IHsgaGVpZ2h0OiB0eXBlIH07XG5cblx0Ly8gSWYgd2UgaW5jbHVkZSB3aWR0aCwgc3RlcCB2YWx1ZSBpcyAxIHRvIGRvIGFsbCBjc3NFeHBhbmQgdmFsdWVzLFxuXHQvLyBvdGhlcndpc2Ugc3RlcCB2YWx1ZSBpcyAyIHRvIHNraXAgb3ZlciBMZWZ0IGFuZCBSaWdodFxuXHRpbmNsdWRlV2lkdGggPSBpbmNsdWRlV2lkdGggPyAxIDogMDtcblx0Zm9yICggOyBpIDwgNDsgaSArPSAyIC0gaW5jbHVkZVdpZHRoICkge1xuXHRcdHdoaWNoID0gY3NzRXhwYW5kWyBpIF07XG5cdFx0YXR0cnNbIFwibWFyZ2luXCIgKyB3aGljaCBdID0gYXR0cnNbIFwicGFkZGluZ1wiICsgd2hpY2ggXSA9IHR5cGU7XG5cdH1cblxuXHRpZiAoIGluY2x1ZGVXaWR0aCApIHtcblx0XHRhdHRycy5vcGFjaXR5ID0gYXR0cnMud2lkdGggPSB0eXBlO1xuXHR9XG5cblx0cmV0dXJuIGF0dHJzO1xufVxuXG5mdW5jdGlvbiBjcmVhdGVUd2VlbiggdmFsdWUsIHByb3AsIGFuaW1hdGlvbiApIHtcblx0dmFyIHR3ZWVuLFxuXHRcdGNvbGxlY3Rpb24gPSAoIEFuaW1hdGlvbi50d2VlbmVyc1sgcHJvcCBdIHx8IFtdICkuY29uY2F0KCBBbmltYXRpb24udHdlZW5lcnNbIFwiKlwiIF0gKSxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gY29sbGVjdGlvbi5sZW5ndGg7XG5cdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0aWYgKCAoIHR3ZWVuID0gY29sbGVjdGlvblsgaW5kZXggXS5jYWxsKCBhbmltYXRpb24sIHByb3AsIHZhbHVlICkgKSApIHtcblxuXHRcdFx0Ly8gV2UncmUgZG9uZSB3aXRoIHRoaXMgcHJvcGVydHlcblx0XHRcdHJldHVybiB0d2Vlbjtcblx0XHR9XG5cdH1cbn1cblxuZnVuY3Rpb24gZGVmYXVsdFByZWZpbHRlciggZWxlbSwgcHJvcHMsIG9wdHMgKSB7XG5cdHZhciBwcm9wLCB2YWx1ZSwgdG9nZ2xlLCBob29rcywgb2xkZmlyZSwgcHJvcFR3ZWVuLCByZXN0b3JlRGlzcGxheSwgZGlzcGxheSxcblx0XHRpc0JveCA9IFwid2lkdGhcIiBpbiBwcm9wcyB8fCBcImhlaWdodFwiIGluIHByb3BzLFxuXHRcdGFuaW0gPSB0aGlzLFxuXHRcdG9yaWcgPSB7fSxcblx0XHRzdHlsZSA9IGVsZW0uc3R5bGUsXG5cdFx0aGlkZGVuID0gZWxlbS5ub2RlVHlwZSAmJiBpc0hpZGRlbldpdGhpblRyZWUoIGVsZW0gKSxcblx0XHRkYXRhU2hvdyA9IGRhdGFQcml2LmdldCggZWxlbSwgXCJmeHNob3dcIiApO1xuXG5cdC8vIFF1ZXVlLXNraXBwaW5nIGFuaW1hdGlvbnMgaGlqYWNrIHRoZSBmeCBob29rc1xuXHRpZiAoICFvcHRzLnF1ZXVlICkge1xuXHRcdGhvb2tzID0galF1ZXJ5Ll9xdWV1ZUhvb2tzKCBlbGVtLCBcImZ4XCIgKTtcblx0XHRpZiAoIGhvb2tzLnVucXVldWVkID09IG51bGwgKSB7XG5cdFx0XHRob29rcy51bnF1ZXVlZCA9IDA7XG5cdFx0XHRvbGRmaXJlID0gaG9va3MuZW1wdHkuZmlyZTtcblx0XHRcdGhvb2tzLmVtcHR5LmZpcmUgPSBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCAhaG9va3MudW5xdWV1ZWQgKSB7XG5cdFx0XHRcdFx0b2xkZmlyZSgpO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdH1cblx0XHRob29rcy51bnF1ZXVlZCsrO1xuXG5cdFx0YW5pbS5hbHdheXMoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvLyBFbnN1cmUgdGhlIGNvbXBsZXRlIGhhbmRsZXIgaXMgY2FsbGVkIGJlZm9yZSB0aGlzIGNvbXBsZXRlc1xuXHRcdFx0YW5pbS5hbHdheXMoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRob29rcy51bnF1ZXVlZC0tO1xuXHRcdFx0XHRpZiAoICFqUXVlcnkucXVldWUoIGVsZW0sIFwiZnhcIiApLmxlbmd0aCApIHtcblx0XHRcdFx0XHRob29rcy5lbXB0eS5maXJlKCk7XG5cdFx0XHRcdH1cblx0XHRcdH0gKTtcblx0XHR9ICk7XG5cdH1cblxuXHQvLyBEZXRlY3Qgc2hvdy9oaWRlIGFuaW1hdGlvbnNcblx0Zm9yICggcHJvcCBpbiBwcm9wcyApIHtcblx0XHR2YWx1ZSA9IHByb3BzWyBwcm9wIF07XG5cdFx0aWYgKCByZnh0eXBlcy50ZXN0KCB2YWx1ZSApICkge1xuXHRcdFx0ZGVsZXRlIHByb3BzWyBwcm9wIF07XG5cdFx0XHR0b2dnbGUgPSB0b2dnbGUgfHwgdmFsdWUgPT09IFwidG9nZ2xlXCI7XG5cdFx0XHRpZiAoIHZhbHVlID09PSAoIGhpZGRlbiA/IFwiaGlkZVwiIDogXCJzaG93XCIgKSApIHtcblxuXHRcdFx0XHQvLyBQcmV0ZW5kIHRvIGJlIGhpZGRlbiBpZiB0aGlzIGlzIGEgXCJzaG93XCIgYW5kXG5cdFx0XHRcdC8vIHRoZXJlIGlzIHN0aWxsIGRhdGEgZnJvbSBhIHN0b3BwZWQgc2hvdy9oaWRlXG5cdFx0XHRcdGlmICggdmFsdWUgPT09IFwic2hvd1wiICYmIGRhdGFTaG93ICYmIGRhdGFTaG93WyBwcm9wIF0gIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0XHRoaWRkZW4gPSB0cnVlO1xuXG5cdFx0XHRcdC8vIElnbm9yZSBhbGwgb3RoZXIgbm8tb3Agc2hvdy9oaWRlIGRhdGFcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRjb250aW51ZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0b3JpZ1sgcHJvcCBdID0gZGF0YVNob3cgJiYgZGF0YVNob3dbIHByb3AgXSB8fCBqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AgKTtcblx0XHR9XG5cdH1cblxuXHQvLyBCYWlsIG91dCBpZiB0aGlzIGlzIGEgbm8tb3AgbGlrZSAuaGlkZSgpLmhpZGUoKVxuXHRwcm9wVHdlZW4gPSAhalF1ZXJ5LmlzRW1wdHlPYmplY3QoIHByb3BzICk7XG5cdGlmICggIXByb3BUd2VlbiAmJiBqUXVlcnkuaXNFbXB0eU9iamVjdCggb3JpZyApICkge1xuXHRcdHJldHVybjtcblx0fVxuXG5cdC8vIFJlc3RyaWN0IFwib3ZlcmZsb3dcIiBhbmQgXCJkaXNwbGF5XCIgc3R5bGVzIGR1cmluZyBib3ggYW5pbWF0aW9uc1xuXHRpZiAoIGlzQm94ICYmIGVsZW0ubm9kZVR5cGUgPT09IDEgKSB7XG5cblx0XHQvLyBTdXBwb3J0OiBJRSA8PTkgLSAxMSwgRWRnZSAxMiAtIDE1XG5cdFx0Ly8gUmVjb3JkIGFsbCAzIG92ZXJmbG93IGF0dHJpYnV0ZXMgYmVjYXVzZSBJRSBkb2VzIG5vdCBpbmZlciB0aGUgc2hvcnRoYW5kXG5cdFx0Ly8gZnJvbSBpZGVudGljYWxseS12YWx1ZWQgb3ZlcmZsb3dYIGFuZCBvdmVyZmxvd1kgYW5kIEVkZ2UganVzdCBtaXJyb3JzXG5cdFx0Ly8gdGhlIG92ZXJmbG93WCB2YWx1ZSB0aGVyZS5cblx0XHRvcHRzLm92ZXJmbG93ID0gWyBzdHlsZS5vdmVyZmxvdywgc3R5bGUub3ZlcmZsb3dYLCBzdHlsZS5vdmVyZmxvd1kgXTtcblxuXHRcdC8vIElkZW50aWZ5IGEgZGlzcGxheSB0eXBlLCBwcmVmZXJyaW5nIG9sZCBzaG93L2hpZGUgZGF0YSBvdmVyIHRoZSBDU1MgY2FzY2FkZVxuXHRcdHJlc3RvcmVEaXNwbGF5ID0gZGF0YVNob3cgJiYgZGF0YVNob3cuZGlzcGxheTtcblx0XHRpZiAoIHJlc3RvcmVEaXNwbGF5ID09IG51bGwgKSB7XG5cdFx0XHRyZXN0b3JlRGlzcGxheSA9IGRhdGFQcml2LmdldCggZWxlbSwgXCJkaXNwbGF5XCIgKTtcblx0XHR9XG5cdFx0ZGlzcGxheSA9IGpRdWVyeS5jc3MoIGVsZW0sIFwiZGlzcGxheVwiICk7XG5cdFx0aWYgKCBkaXNwbGF5ID09PSBcIm5vbmVcIiApIHtcblx0XHRcdGlmICggcmVzdG9yZURpc3BsYXkgKSB7XG5cdFx0XHRcdGRpc3BsYXkgPSByZXN0b3JlRGlzcGxheTtcblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0Ly8gR2V0IG5vbmVtcHR5IHZhbHVlKHMpIGJ5IHRlbXBvcmFyaWx5IGZvcmNpbmcgdmlzaWJpbGl0eVxuXHRcdFx0XHRzaG93SGlkZSggWyBlbGVtIF0sIHRydWUgKTtcblx0XHRcdFx0cmVzdG9yZURpc3BsYXkgPSBlbGVtLnN0eWxlLmRpc3BsYXkgfHwgcmVzdG9yZURpc3BsYXk7XG5cdFx0XHRcdGRpc3BsYXkgPSBqUXVlcnkuY3NzKCBlbGVtLCBcImRpc3BsYXlcIiApO1xuXHRcdFx0XHRzaG93SGlkZSggWyBlbGVtIF0gKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBBbmltYXRlIGlubGluZSBlbGVtZW50cyBhcyBpbmxpbmUtYmxvY2tcblx0XHRpZiAoIGRpc3BsYXkgPT09IFwiaW5saW5lXCIgfHwgZGlzcGxheSA9PT0gXCJpbmxpbmUtYmxvY2tcIiAmJiByZXN0b3JlRGlzcGxheSAhPSBudWxsICkge1xuXHRcdFx0aWYgKCBqUXVlcnkuY3NzKCBlbGVtLCBcImZsb2F0XCIgKSA9PT0gXCJub25lXCIgKSB7XG5cblx0XHRcdFx0Ly8gUmVzdG9yZSB0aGUgb3JpZ2luYWwgZGlzcGxheSB2YWx1ZSBhdCB0aGUgZW5kIG9mIHB1cmUgc2hvdy9oaWRlIGFuaW1hdGlvbnNcblx0XHRcdFx0aWYgKCAhcHJvcFR3ZWVuICkge1xuXHRcdFx0XHRcdGFuaW0uZG9uZSggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRzdHlsZS5kaXNwbGF5ID0gcmVzdG9yZURpc3BsYXk7XG5cdFx0XHRcdFx0fSApO1xuXHRcdFx0XHRcdGlmICggcmVzdG9yZURpc3BsYXkgPT0gbnVsbCApIHtcblx0XHRcdFx0XHRcdGRpc3BsYXkgPSBzdHlsZS5kaXNwbGF5O1xuXHRcdFx0XHRcdFx0cmVzdG9yZURpc3BsYXkgPSBkaXNwbGF5ID09PSBcIm5vbmVcIiA/IFwiXCIgOiBkaXNwbGF5O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHRzdHlsZS5kaXNwbGF5ID0gXCJpbmxpbmUtYmxvY2tcIjtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRpZiAoIG9wdHMub3ZlcmZsb3cgKSB7XG5cdFx0c3R5bGUub3ZlcmZsb3cgPSBcImhpZGRlblwiO1xuXHRcdGFuaW0uYWx3YXlzKCBmdW5jdGlvbigpIHtcblx0XHRcdHN0eWxlLm92ZXJmbG93ID0gb3B0cy5vdmVyZmxvd1sgMCBdO1xuXHRcdFx0c3R5bGUub3ZlcmZsb3dYID0gb3B0cy5vdmVyZmxvd1sgMSBdO1xuXHRcdFx0c3R5bGUub3ZlcmZsb3dZID0gb3B0cy5vdmVyZmxvd1sgMiBdO1xuXHRcdH0gKTtcblx0fVxuXG5cdC8vIEltcGxlbWVudCBzaG93L2hpZGUgYW5pbWF0aW9uc1xuXHRwcm9wVHdlZW4gPSBmYWxzZTtcblx0Zm9yICggcHJvcCBpbiBvcmlnICkge1xuXG5cdFx0Ly8gR2VuZXJhbCBzaG93L2hpZGUgc2V0dXAgZm9yIHRoaXMgZWxlbWVudCBhbmltYXRpb25cblx0XHRpZiAoICFwcm9wVHdlZW4gKSB7XG5cdFx0XHRpZiAoIGRhdGFTaG93ICkge1xuXHRcdFx0XHRpZiAoIFwiaGlkZGVuXCIgaW4gZGF0YVNob3cgKSB7XG5cdFx0XHRcdFx0aGlkZGVuID0gZGF0YVNob3cuaGlkZGVuO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRkYXRhU2hvdyA9IGRhdGFQcml2LmFjY2VzcyggZWxlbSwgXCJmeHNob3dcIiwgeyBkaXNwbGF5OiByZXN0b3JlRGlzcGxheSB9ICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN0b3JlIGhpZGRlbi92aXNpYmxlIGZvciB0b2dnbGUgc28gYC5zdG9wKCkudG9nZ2xlKClgIFwicmV2ZXJzZXNcIlxuXHRcdFx0aWYgKCB0b2dnbGUgKSB7XG5cdFx0XHRcdGRhdGFTaG93LmhpZGRlbiA9ICFoaWRkZW47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNob3cgZWxlbWVudHMgYmVmb3JlIGFuaW1hdGluZyB0aGVtXG5cdFx0XHRpZiAoIGhpZGRlbiApIHtcblx0XHRcdFx0c2hvd0hpZGUoIFsgZWxlbSBdLCB0cnVlICk7XG5cdFx0XHR9XG5cblx0XHRcdC8qIGVzbGludC1kaXNhYmxlIG5vLWxvb3AtZnVuYyAqL1xuXG5cdFx0XHRhbmltLmRvbmUoIGZ1bmN0aW9uKCkge1xuXG5cdFx0XHQvKiBlc2xpbnQtZW5hYmxlIG5vLWxvb3AtZnVuYyAqL1xuXG5cdFx0XHRcdC8vIFRoZSBmaW5hbCBzdGVwIG9mIGEgXCJoaWRlXCIgYW5pbWF0aW9uIGlzIGFjdHVhbGx5IGhpZGluZyB0aGUgZWxlbWVudFxuXHRcdFx0XHRpZiAoICFoaWRkZW4gKSB7XG5cdFx0XHRcdFx0c2hvd0hpZGUoIFsgZWxlbSBdICk7XG5cdFx0XHRcdH1cblx0XHRcdFx0ZGF0YVByaXYucmVtb3ZlKCBlbGVtLCBcImZ4c2hvd1wiICk7XG5cdFx0XHRcdGZvciAoIHByb3AgaW4gb3JpZyApIHtcblx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHByb3AsIG9yaWdbIHByb3AgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0Ly8gUGVyLXByb3BlcnR5IHNldHVwXG5cdFx0cHJvcFR3ZWVuID0gY3JlYXRlVHdlZW4oIGhpZGRlbiA/IGRhdGFTaG93WyBwcm9wIF0gOiAwLCBwcm9wLCBhbmltICk7XG5cdFx0aWYgKCAhKCBwcm9wIGluIGRhdGFTaG93ICkgKSB7XG5cdFx0XHRkYXRhU2hvd1sgcHJvcCBdID0gcHJvcFR3ZWVuLnN0YXJ0O1xuXHRcdFx0aWYgKCBoaWRkZW4gKSB7XG5cdFx0XHRcdHByb3BUd2Vlbi5lbmQgPSBwcm9wVHdlZW4uc3RhcnQ7XG5cdFx0XHRcdHByb3BUd2Vlbi5zdGFydCA9IDA7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59XG5cbmZ1bmN0aW9uIHByb3BGaWx0ZXIoIHByb3BzLCBzcGVjaWFsRWFzaW5nICkge1xuXHR2YXIgaW5kZXgsIG5hbWUsIGVhc2luZywgdmFsdWUsIGhvb2tzO1xuXG5cdC8vIGNhbWVsQ2FzZSwgc3BlY2lhbEVhc2luZyBhbmQgZXhwYW5kIGNzc0hvb2sgcGFzc1xuXHRmb3IgKCBpbmRleCBpbiBwcm9wcyApIHtcblx0XHRuYW1lID0gY2FtZWxDYXNlKCBpbmRleCApO1xuXHRcdGVhc2luZyA9IHNwZWNpYWxFYXNpbmdbIG5hbWUgXTtcblx0XHR2YWx1ZSA9IHByb3BzWyBpbmRleCBdO1xuXHRcdGlmICggQXJyYXkuaXNBcnJheSggdmFsdWUgKSApIHtcblx0XHRcdGVhc2luZyA9IHZhbHVlWyAxIF07XG5cdFx0XHR2YWx1ZSA9IHByb3BzWyBpbmRleCBdID0gdmFsdWVbIDAgXTtcblx0XHR9XG5cblx0XHRpZiAoIGluZGV4ICE9PSBuYW1lICkge1xuXHRcdFx0cHJvcHNbIG5hbWUgXSA9IHZhbHVlO1xuXHRcdFx0ZGVsZXRlIHByb3BzWyBpbmRleCBdO1xuXHRcdH1cblxuXHRcdGhvb2tzID0galF1ZXJ5LmNzc0hvb2tzWyBuYW1lIF07XG5cdFx0aWYgKCBob29rcyAmJiBcImV4cGFuZFwiIGluIGhvb2tzICkge1xuXHRcdFx0dmFsdWUgPSBob29rcy5leHBhbmQoIHZhbHVlICk7XG5cdFx0XHRkZWxldGUgcHJvcHNbIG5hbWUgXTtcblxuXHRcdFx0Ly8gTm90IHF1aXRlICQuZXh0ZW5kLCB0aGlzIHdvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBrZXlzLlxuXHRcdFx0Ly8gUmV1c2luZyAnaW5kZXgnIGJlY2F1c2Ugd2UgaGF2ZSB0aGUgY29ycmVjdCBcIm5hbWVcIlxuXHRcdFx0Zm9yICggaW5kZXggaW4gdmFsdWUgKSB7XG5cdFx0XHRcdGlmICggISggaW5kZXggaW4gcHJvcHMgKSApIHtcblx0XHRcdFx0XHRwcm9wc1sgaW5kZXggXSA9IHZhbHVlWyBpbmRleCBdO1xuXHRcdFx0XHRcdHNwZWNpYWxFYXNpbmdbIGluZGV4IF0gPSBlYXNpbmc7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0c3BlY2lhbEVhc2luZ1sgbmFtZSBdID0gZWFzaW5nO1xuXHRcdH1cblx0fVxufVxuXG5mdW5jdGlvbiBBbmltYXRpb24oIGVsZW0sIHByb3BlcnRpZXMsIG9wdGlvbnMgKSB7XG5cdHZhciByZXN1bHQsXG5cdFx0c3RvcHBlZCxcblx0XHRpbmRleCA9IDAsXG5cdFx0bGVuZ3RoID0gQW5pbWF0aW9uLnByZWZpbHRlcnMubGVuZ3RoLFxuXHRcdGRlZmVycmVkID0galF1ZXJ5LkRlZmVycmVkKCkuYWx3YXlzKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gRG9uJ3QgbWF0Y2ggZWxlbSBpbiB0aGUgOmFuaW1hdGVkIHNlbGVjdG9yXG5cdFx0XHRkZWxldGUgdGljay5lbGVtO1xuXHRcdH0gKSxcblx0XHR0aWNrID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRpZiAoIHN0b3BwZWQgKSB7XG5cdFx0XHRcdHJldHVybiBmYWxzZTtcblx0XHRcdH1cblx0XHRcdHZhciBjdXJyZW50VGltZSA9IGZ4Tm93IHx8IGNyZWF0ZUZ4Tm93KCksXG5cdFx0XHRcdHJlbWFpbmluZyA9IE1hdGgubWF4KCAwLCBhbmltYXRpb24uc3RhcnRUaW1lICsgYW5pbWF0aW9uLmR1cmF0aW9uIC0gY3VycmVudFRpbWUgKSxcblxuXHRcdFx0XHQvLyBTdXBwb3J0OiBBbmRyb2lkIDIuMyBvbmx5XG5cdFx0XHRcdC8vIEFyY2hhaWMgY3Jhc2ggYnVnIHdvbid0IGFsbG93IHVzIHRvIHVzZSBgMSAtICggMC41IHx8IDAgKWAgKCMxMjQ5Nylcblx0XHRcdFx0dGVtcCA9IHJlbWFpbmluZyAvIGFuaW1hdGlvbi5kdXJhdGlvbiB8fCAwLFxuXHRcdFx0XHRwZXJjZW50ID0gMSAtIHRlbXAsXG5cdFx0XHRcdGluZGV4ID0gMCxcblx0XHRcdFx0bGVuZ3RoID0gYW5pbWF0aW9uLnR3ZWVucy5sZW5ndGg7XG5cblx0XHRcdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0XHRcdGFuaW1hdGlvbi50d2VlbnNbIGluZGV4IF0ucnVuKCBwZXJjZW50ICk7XG5cdFx0XHR9XG5cblx0XHRcdGRlZmVycmVkLm5vdGlmeVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCBwZXJjZW50LCByZW1haW5pbmcgXSApO1xuXG5cdFx0XHQvLyBJZiB0aGVyZSdzIG1vcmUgdG8gZG8sIHlpZWxkXG5cdFx0XHRpZiAoIHBlcmNlbnQgPCAxICYmIGxlbmd0aCApIHtcblx0XHRcdFx0cmV0dXJuIHJlbWFpbmluZztcblx0XHRcdH1cblxuXHRcdFx0Ly8gSWYgdGhpcyB3YXMgYW4gZW1wdHkgYW5pbWF0aW9uLCBzeW50aGVzaXplIGEgZmluYWwgcHJvZ3Jlc3Mgbm90aWZpY2F0aW9uXG5cdFx0XHRpZiAoICFsZW5ndGggKSB7XG5cdFx0XHRcdGRlZmVycmVkLm5vdGlmeVdpdGgoIGVsZW0sIFsgYW5pbWF0aW9uLCAxLCAwIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUmVzb2x2ZSB0aGUgYW5pbWF0aW9uIGFuZCByZXBvcnQgaXRzIGNvbmNsdXNpb25cblx0XHRcdGRlZmVycmVkLnJlc29sdmVXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiBdICk7XG5cdFx0XHRyZXR1cm4gZmFsc2U7XG5cdFx0fSxcblx0XHRhbmltYXRpb24gPSBkZWZlcnJlZC5wcm9taXNlKCB7XG5cdFx0XHRlbGVtOiBlbGVtLFxuXHRcdFx0cHJvcHM6IGpRdWVyeS5leHRlbmQoIHt9LCBwcm9wZXJ0aWVzICksXG5cdFx0XHRvcHRzOiBqUXVlcnkuZXh0ZW5kKCB0cnVlLCB7XG5cdFx0XHRcdHNwZWNpYWxFYXNpbmc6IHt9LFxuXHRcdFx0XHRlYXNpbmc6IGpRdWVyeS5lYXNpbmcuX2RlZmF1bHRcblx0XHRcdH0sIG9wdGlvbnMgKSxcblx0XHRcdG9yaWdpbmFsUHJvcGVydGllczogcHJvcGVydGllcyxcblx0XHRcdG9yaWdpbmFsT3B0aW9uczogb3B0aW9ucyxcblx0XHRcdHN0YXJ0VGltZTogZnhOb3cgfHwgY3JlYXRlRnhOb3coKSxcblx0XHRcdGR1cmF0aW9uOiBvcHRpb25zLmR1cmF0aW9uLFxuXHRcdFx0dHdlZW5zOiBbXSxcblx0XHRcdGNyZWF0ZVR3ZWVuOiBmdW5jdGlvbiggcHJvcCwgZW5kICkge1xuXHRcdFx0XHR2YXIgdHdlZW4gPSBqUXVlcnkuVHdlZW4oIGVsZW0sIGFuaW1hdGlvbi5vcHRzLCBwcm9wLCBlbmQsXG5cdFx0XHRcdFx0XHRhbmltYXRpb24ub3B0cy5zcGVjaWFsRWFzaW5nWyBwcm9wIF0gfHwgYW5pbWF0aW9uLm9wdHMuZWFzaW5nICk7XG5cdFx0XHRcdGFuaW1hdGlvbi50d2VlbnMucHVzaCggdHdlZW4gKTtcblx0XHRcdFx0cmV0dXJuIHR3ZWVuO1xuXHRcdFx0fSxcblx0XHRcdHN0b3A6IGZ1bmN0aW9uKCBnb3RvRW5kICkge1xuXHRcdFx0XHR2YXIgaW5kZXggPSAwLFxuXG5cdFx0XHRcdFx0Ly8gSWYgd2UgYXJlIGdvaW5nIHRvIHRoZSBlbmQsIHdlIHdhbnQgdG8gcnVuIGFsbCB0aGUgdHdlZW5zXG5cdFx0XHRcdFx0Ly8gb3RoZXJ3aXNlIHdlIHNraXAgdGhpcyBwYXJ0XG5cdFx0XHRcdFx0bGVuZ3RoID0gZ290b0VuZCA/IGFuaW1hdGlvbi50d2VlbnMubGVuZ3RoIDogMDtcblx0XHRcdFx0aWYgKCBzdG9wcGVkICkge1xuXHRcdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHN0b3BwZWQgPSB0cnVlO1xuXHRcdFx0XHRmb3IgKCA7IGluZGV4IDwgbGVuZ3RoOyBpbmRleCsrICkge1xuXHRcdFx0XHRcdGFuaW1hdGlvbi50d2VlbnNbIGluZGV4IF0ucnVuKCAxICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBSZXNvbHZlIHdoZW4gd2UgcGxheWVkIHRoZSBsYXN0IGZyYW1lOyBvdGhlcndpc2UsIHJlamVjdFxuXHRcdFx0XHRpZiAoIGdvdG9FbmQgKSB7XG5cdFx0XHRcdFx0ZGVmZXJyZWQubm90aWZ5V2l0aCggZWxlbSwgWyBhbmltYXRpb24sIDEsIDAgXSApO1xuXHRcdFx0XHRcdGRlZmVycmVkLnJlc29sdmVXaXRoKCBlbGVtLCBbIGFuaW1hdGlvbiwgZ290b0VuZCBdICk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0ZGVmZXJyZWQucmVqZWN0V2l0aCggZWxlbSwgWyBhbmltYXRpb24sIGdvdG9FbmQgXSApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiB0aGlzO1xuXHRcdFx0fVxuXHRcdH0gKSxcblx0XHRwcm9wcyA9IGFuaW1hdGlvbi5wcm9wcztcblxuXHRwcm9wRmlsdGVyKCBwcm9wcywgYW5pbWF0aW9uLm9wdHMuc3BlY2lhbEVhc2luZyApO1xuXG5cdGZvciAoIDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0cmVzdWx0ID0gQW5pbWF0aW9uLnByZWZpbHRlcnNbIGluZGV4IF0uY2FsbCggYW5pbWF0aW9uLCBlbGVtLCBwcm9wcywgYW5pbWF0aW9uLm9wdHMgKTtcblx0XHRpZiAoIHJlc3VsdCApIHtcblx0XHRcdGlmICggaXNGdW5jdGlvbiggcmVzdWx0LnN0b3AgKSApIHtcblx0XHRcdFx0alF1ZXJ5Ll9xdWV1ZUhvb2tzKCBhbmltYXRpb24uZWxlbSwgYW5pbWF0aW9uLm9wdHMucXVldWUgKS5zdG9wID1cblx0XHRcdFx0XHRyZXN1bHQuc3RvcC5iaW5kKCByZXN1bHQgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXN1bHQ7XG5cdFx0fVxuXHR9XG5cblx0alF1ZXJ5Lm1hcCggcHJvcHMsIGNyZWF0ZVR3ZWVuLCBhbmltYXRpb24gKTtcblxuXHRpZiAoIGlzRnVuY3Rpb24oIGFuaW1hdGlvbi5vcHRzLnN0YXJ0ICkgKSB7XG5cdFx0YW5pbWF0aW9uLm9wdHMuc3RhcnQuY2FsbCggZWxlbSwgYW5pbWF0aW9uICk7XG5cdH1cblxuXHQvLyBBdHRhY2ggY2FsbGJhY2tzIGZyb20gb3B0aW9uc1xuXHRhbmltYXRpb25cblx0XHQucHJvZ3Jlc3MoIGFuaW1hdGlvbi5vcHRzLnByb2dyZXNzIClcblx0XHQuZG9uZSggYW5pbWF0aW9uLm9wdHMuZG9uZSwgYW5pbWF0aW9uLm9wdHMuY29tcGxldGUgKVxuXHRcdC5mYWlsKCBhbmltYXRpb24ub3B0cy5mYWlsIClcblx0XHQuYWx3YXlzKCBhbmltYXRpb24ub3B0cy5hbHdheXMgKTtcblxuXHRqUXVlcnkuZngudGltZXIoXG5cdFx0alF1ZXJ5LmV4dGVuZCggdGljaywge1xuXHRcdFx0ZWxlbTogZWxlbSxcblx0XHRcdGFuaW06IGFuaW1hdGlvbixcblx0XHRcdHF1ZXVlOiBhbmltYXRpb24ub3B0cy5xdWV1ZVxuXHRcdH0gKVxuXHQpO1xuXG5cdHJldHVybiBhbmltYXRpb247XG59XG5cbmpRdWVyeS5BbmltYXRpb24gPSBqUXVlcnkuZXh0ZW5kKCBBbmltYXRpb24sIHtcblxuXHR0d2VlbmVyczoge1xuXHRcdFwiKlwiOiBbIGZ1bmN0aW9uKCBwcm9wLCB2YWx1ZSApIHtcblx0XHRcdHZhciB0d2VlbiA9IHRoaXMuY3JlYXRlVHdlZW4oIHByb3AsIHZhbHVlICk7XG5cdFx0XHRhZGp1c3RDU1MoIHR3ZWVuLmVsZW0sIHByb3AsIHJjc3NOdW0uZXhlYyggdmFsdWUgKSwgdHdlZW4gKTtcblx0XHRcdHJldHVybiB0d2Vlbjtcblx0XHR9IF1cblx0fSxcblxuXHR0d2VlbmVyOiBmdW5jdGlvbiggcHJvcHMsIGNhbGxiYWNrICkge1xuXHRcdGlmICggaXNGdW5jdGlvbiggcHJvcHMgKSApIHtcblx0XHRcdGNhbGxiYWNrID0gcHJvcHM7XG5cdFx0XHRwcm9wcyA9IFsgXCIqXCIgXTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0cHJvcHMgPSBwcm9wcy5tYXRjaCggcm5vdGh0bWx3aGl0ZSApO1xuXHRcdH1cblxuXHRcdHZhciBwcm9wLFxuXHRcdFx0aW5kZXggPSAwLFxuXHRcdFx0bGVuZ3RoID0gcHJvcHMubGVuZ3RoO1xuXG5cdFx0Zm9yICggOyBpbmRleCA8IGxlbmd0aDsgaW5kZXgrKyApIHtcblx0XHRcdHByb3AgPSBwcm9wc1sgaW5kZXggXTtcblx0XHRcdEFuaW1hdGlvbi50d2VlbmVyc1sgcHJvcCBdID0gQW5pbWF0aW9uLnR3ZWVuZXJzWyBwcm9wIF0gfHwgW107XG5cdFx0XHRBbmltYXRpb24udHdlZW5lcnNbIHByb3AgXS51bnNoaWZ0KCBjYWxsYmFjayApO1xuXHRcdH1cblx0fSxcblxuXHRwcmVmaWx0ZXJzOiBbIGRlZmF1bHRQcmVmaWx0ZXIgXSxcblxuXHRwcmVmaWx0ZXI6IGZ1bmN0aW9uKCBjYWxsYmFjaywgcHJlcGVuZCApIHtcblx0XHRpZiAoIHByZXBlbmQgKSB7XG5cdFx0XHRBbmltYXRpb24ucHJlZmlsdGVycy51bnNoaWZ0KCBjYWxsYmFjayApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRBbmltYXRpb24ucHJlZmlsdGVycy5wdXNoKCBjYWxsYmFjayApO1xuXHRcdH1cblx0fVxufSApO1xuXG5qUXVlcnkuc3BlZWQgPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgZm4gKSB7XG5cdHZhciBvcHQgPSBzcGVlZCAmJiB0eXBlb2Ygc3BlZWQgPT09IFwib2JqZWN0XCIgPyBqUXVlcnkuZXh0ZW5kKCB7fSwgc3BlZWQgKSA6IHtcblx0XHRjb21wbGV0ZTogZm4gfHwgIWZuICYmIGVhc2luZyB8fFxuXHRcdFx0aXNGdW5jdGlvbiggc3BlZWQgKSAmJiBzcGVlZCxcblx0XHRkdXJhdGlvbjogc3BlZWQsXG5cdFx0ZWFzaW5nOiBmbiAmJiBlYXNpbmcgfHwgZWFzaW5nICYmICFpc0Z1bmN0aW9uKCBlYXNpbmcgKSAmJiBlYXNpbmdcblx0fTtcblxuXHQvLyBHbyB0byB0aGUgZW5kIHN0YXRlIGlmIGZ4IGFyZSBvZmZcblx0aWYgKCBqUXVlcnkuZngub2ZmICkge1xuXHRcdG9wdC5kdXJhdGlvbiA9IDA7XG5cblx0fSBlbHNlIHtcblx0XHRpZiAoIHR5cGVvZiBvcHQuZHVyYXRpb24gIT09IFwibnVtYmVyXCIgKSB7XG5cdFx0XHRpZiAoIG9wdC5kdXJhdGlvbiBpbiBqUXVlcnkuZnguc3BlZWRzICkge1xuXHRcdFx0XHRvcHQuZHVyYXRpb24gPSBqUXVlcnkuZnguc3BlZWRzWyBvcHQuZHVyYXRpb24gXTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0b3B0LmR1cmF0aW9uID0galF1ZXJ5LmZ4LnNwZWVkcy5fZGVmYXVsdDtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHQvLyBOb3JtYWxpemUgb3B0LnF1ZXVlIC0gdHJ1ZS91bmRlZmluZWQvbnVsbCAtPiBcImZ4XCJcblx0aWYgKCBvcHQucXVldWUgPT0gbnVsbCB8fCBvcHQucXVldWUgPT09IHRydWUgKSB7XG5cdFx0b3B0LnF1ZXVlID0gXCJmeFwiO1xuXHR9XG5cblx0Ly8gUXVldWVpbmdcblx0b3B0Lm9sZCA9IG9wdC5jb21wbGV0ZTtcblxuXHRvcHQuY29tcGxldGUgPSBmdW5jdGlvbigpIHtcblx0XHRpZiAoIGlzRnVuY3Rpb24oIG9wdC5vbGQgKSApIHtcblx0XHRcdG9wdC5vbGQuY2FsbCggdGhpcyApO1xuXHRcdH1cblxuXHRcdGlmICggb3B0LnF1ZXVlICkge1xuXHRcdFx0alF1ZXJ5LmRlcXVldWUoIHRoaXMsIG9wdC5xdWV1ZSApO1xuXHRcdH1cblx0fTtcblxuXHRyZXR1cm4gb3B0O1xufTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRmYWRlVG86IGZ1bmN0aW9uKCBzcGVlZCwgdG8sIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cblx0XHQvLyBTaG93IGFueSBoaWRkZW4gZWxlbWVudHMgYWZ0ZXIgc2V0dGluZyBvcGFjaXR5IHRvIDBcblx0XHRyZXR1cm4gdGhpcy5maWx0ZXIoIGlzSGlkZGVuV2l0aGluVHJlZSApLmNzcyggXCJvcGFjaXR5XCIsIDAgKS5zaG93KClcblxuXHRcdFx0Ly8gQW5pbWF0ZSB0byB0aGUgdmFsdWUgc3BlY2lmaWVkXG5cdFx0XHQuZW5kKCkuYW5pbWF0ZSggeyBvcGFjaXR5OiB0byB9LCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApO1xuXHR9LFxuXHRhbmltYXRlOiBmdW5jdGlvbiggcHJvcCwgc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cdFx0dmFyIGVtcHR5ID0galF1ZXJ5LmlzRW1wdHlPYmplY3QoIHByb3AgKSxcblx0XHRcdG9wdGFsbCA9IGpRdWVyeS5zcGVlZCggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSxcblx0XHRcdGRvQW5pbWF0aW9uID0gZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0Ly8gT3BlcmF0ZSBvbiBhIGNvcHkgb2YgcHJvcCBzbyBwZXItcHJvcGVydHkgZWFzaW5nIHdvbid0IGJlIGxvc3Rcblx0XHRcdFx0dmFyIGFuaW0gPSBBbmltYXRpb24oIHRoaXMsIGpRdWVyeS5leHRlbmQoIHt9LCBwcm9wICksIG9wdGFsbCApO1xuXG5cdFx0XHRcdC8vIEVtcHR5IGFuaW1hdGlvbnMsIG9yIGZpbmlzaGluZyByZXNvbHZlcyBpbW1lZGlhdGVseVxuXHRcdFx0XHRpZiAoIGVtcHR5IHx8IGRhdGFQcml2LmdldCggdGhpcywgXCJmaW5pc2hcIiApICkge1xuXHRcdFx0XHRcdGFuaW0uc3RvcCggdHJ1ZSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9O1xuXHRcdFx0ZG9BbmltYXRpb24uZmluaXNoID0gZG9BbmltYXRpb247XG5cblx0XHRyZXR1cm4gZW1wdHkgfHwgb3B0YWxsLnF1ZXVlID09PSBmYWxzZSA/XG5cdFx0XHR0aGlzLmVhY2goIGRvQW5pbWF0aW9uICkgOlxuXHRcdFx0dGhpcy5xdWV1ZSggb3B0YWxsLnF1ZXVlLCBkb0FuaW1hdGlvbiApO1xuXHR9LFxuXHRzdG9wOiBmdW5jdGlvbiggdHlwZSwgY2xlYXJRdWV1ZSwgZ290b0VuZCApIHtcblx0XHR2YXIgc3RvcFF1ZXVlID0gZnVuY3Rpb24oIGhvb2tzICkge1xuXHRcdFx0dmFyIHN0b3AgPSBob29rcy5zdG9wO1xuXHRcdFx0ZGVsZXRlIGhvb2tzLnN0b3A7XG5cdFx0XHRzdG9wKCBnb3RvRW5kICk7XG5cdFx0fTtcblxuXHRcdGlmICggdHlwZW9mIHR5cGUgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRnb3RvRW5kID0gY2xlYXJRdWV1ZTtcblx0XHRcdGNsZWFyUXVldWUgPSB0eXBlO1xuXHRcdFx0dHlwZSA9IHVuZGVmaW5lZDtcblx0XHR9XG5cdFx0aWYgKCBjbGVhclF1ZXVlICYmIHR5cGUgIT09IGZhbHNlICkge1xuXHRcdFx0dGhpcy5xdWV1ZSggdHlwZSB8fCBcImZ4XCIsIFtdICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgZGVxdWV1ZSA9IHRydWUsXG5cdFx0XHRcdGluZGV4ID0gdHlwZSAhPSBudWxsICYmIHR5cGUgKyBcInF1ZXVlSG9va3NcIixcblx0XHRcdFx0dGltZXJzID0galF1ZXJ5LnRpbWVycyxcblx0XHRcdFx0ZGF0YSA9IGRhdGFQcml2LmdldCggdGhpcyApO1xuXG5cdFx0XHRpZiAoIGluZGV4ICkge1xuXHRcdFx0XHRpZiAoIGRhdGFbIGluZGV4IF0gJiYgZGF0YVsgaW5kZXggXS5zdG9wICkge1xuXHRcdFx0XHRcdHN0b3BRdWV1ZSggZGF0YVsgaW5kZXggXSApO1xuXHRcdFx0XHR9XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRmb3IgKCBpbmRleCBpbiBkYXRhICkge1xuXHRcdFx0XHRcdGlmICggZGF0YVsgaW5kZXggXSAmJiBkYXRhWyBpbmRleCBdLnN0b3AgJiYgcnJ1bi50ZXN0KCBpbmRleCApICkge1xuXHRcdFx0XHRcdFx0c3RvcFF1ZXVlKCBkYXRhWyBpbmRleCBdICk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cblx0XHRcdGZvciAoIGluZGV4ID0gdGltZXJzLmxlbmd0aDsgaW5kZXgtLTsgKSB7XG5cdFx0XHRcdGlmICggdGltZXJzWyBpbmRleCBdLmVsZW0gPT09IHRoaXMgJiZcblx0XHRcdFx0XHQoIHR5cGUgPT0gbnVsbCB8fCB0aW1lcnNbIGluZGV4IF0ucXVldWUgPT09IHR5cGUgKSApIHtcblxuXHRcdFx0XHRcdHRpbWVyc1sgaW5kZXggXS5hbmltLnN0b3AoIGdvdG9FbmQgKTtcblx0XHRcdFx0XHRkZXF1ZXVlID0gZmFsc2U7XG5cdFx0XHRcdFx0dGltZXJzLnNwbGljZSggaW5kZXgsIDEgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQvLyBTdGFydCB0aGUgbmV4dCBpbiB0aGUgcXVldWUgaWYgdGhlIGxhc3Qgc3RlcCB3YXNuJ3QgZm9yY2VkLlxuXHRcdFx0Ly8gVGltZXJzIGN1cnJlbnRseSB3aWxsIGNhbGwgdGhlaXIgY29tcGxldGUgY2FsbGJhY2tzLCB3aGljaFxuXHRcdFx0Ly8gd2lsbCBkZXF1ZXVlIGJ1dCBvbmx5IGlmIHRoZXkgd2VyZSBnb3RvRW5kLlxuXHRcdFx0aWYgKCBkZXF1ZXVlIHx8ICFnb3RvRW5kICkge1xuXHRcdFx0XHRqUXVlcnkuZGVxdWV1ZSggdGhpcywgdHlwZSApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0fSxcblx0ZmluaXNoOiBmdW5jdGlvbiggdHlwZSApIHtcblx0XHRpZiAoIHR5cGUgIT09IGZhbHNlICkge1xuXHRcdFx0dHlwZSA9IHR5cGUgfHwgXCJmeFwiO1xuXHRcdH1cblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBpbmRleCxcblx0XHRcdFx0ZGF0YSA9IGRhdGFQcml2LmdldCggdGhpcyApLFxuXHRcdFx0XHRxdWV1ZSA9IGRhdGFbIHR5cGUgKyBcInF1ZXVlXCIgXSxcblx0XHRcdFx0aG9va3MgPSBkYXRhWyB0eXBlICsgXCJxdWV1ZUhvb2tzXCIgXSxcblx0XHRcdFx0dGltZXJzID0galF1ZXJ5LnRpbWVycyxcblx0XHRcdFx0bGVuZ3RoID0gcXVldWUgPyBxdWV1ZS5sZW5ndGggOiAwO1xuXG5cdFx0XHQvLyBFbmFibGUgZmluaXNoaW5nIGZsYWcgb24gcHJpdmF0ZSBkYXRhXG5cdFx0XHRkYXRhLmZpbmlzaCA9IHRydWU7XG5cblx0XHRcdC8vIEVtcHR5IHRoZSBxdWV1ZSBmaXJzdFxuXHRcdFx0alF1ZXJ5LnF1ZXVlKCB0aGlzLCB0eXBlLCBbXSApO1xuXG5cdFx0XHRpZiAoIGhvb2tzICYmIGhvb2tzLnN0b3AgKSB7XG5cdFx0XHRcdGhvb2tzLnN0b3AuY2FsbCggdGhpcywgdHJ1ZSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBMb29rIGZvciBhbnkgYWN0aXZlIGFuaW1hdGlvbnMsIGFuZCBmaW5pc2ggdGhlbVxuXHRcdFx0Zm9yICggaW5kZXggPSB0aW1lcnMubGVuZ3RoOyBpbmRleC0tOyApIHtcblx0XHRcdFx0aWYgKCB0aW1lcnNbIGluZGV4IF0uZWxlbSA9PT0gdGhpcyAmJiB0aW1lcnNbIGluZGV4IF0ucXVldWUgPT09IHR5cGUgKSB7XG5cdFx0XHRcdFx0dGltZXJzWyBpbmRleCBdLmFuaW0uc3RvcCggdHJ1ZSApO1xuXHRcdFx0XHRcdHRpbWVycy5zcGxpY2UoIGluZGV4LCAxICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gTG9vayBmb3IgYW55IGFuaW1hdGlvbnMgaW4gdGhlIG9sZCBxdWV1ZSBhbmQgZmluaXNoIHRoZW1cblx0XHRcdGZvciAoIGluZGV4ID0gMDsgaW5kZXggPCBsZW5ndGg7IGluZGV4KysgKSB7XG5cdFx0XHRcdGlmICggcXVldWVbIGluZGV4IF0gJiYgcXVldWVbIGluZGV4IF0uZmluaXNoICkge1xuXHRcdFx0XHRcdHF1ZXVlWyBpbmRleCBdLmZpbmlzaC5jYWxsKCB0aGlzICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gVHVybiBvZmYgZmluaXNoaW5nIGZsYWdcblx0XHRcdGRlbGV0ZSBkYXRhLmZpbmlzaDtcblx0XHR9ICk7XG5cdH1cbn0gKTtcblxualF1ZXJ5LmVhY2goIFsgXCJ0b2dnbGVcIiwgXCJzaG93XCIsIFwiaGlkZVwiIF0sIGZ1bmN0aW9uKCBpLCBuYW1lICkge1xuXHR2YXIgY3NzRm4gPSBqUXVlcnkuZm5bIG5hbWUgXTtcblx0alF1ZXJ5LmZuWyBuYW1lIF0gPSBmdW5jdGlvbiggc3BlZWQsIGVhc2luZywgY2FsbGJhY2sgKSB7XG5cdFx0cmV0dXJuIHNwZWVkID09IG51bGwgfHwgdHlwZW9mIHNwZWVkID09PSBcImJvb2xlYW5cIiA/XG5cdFx0XHRjc3NGbi5hcHBseSggdGhpcywgYXJndW1lbnRzICkgOlxuXHRcdFx0dGhpcy5hbmltYXRlKCBnZW5GeCggbmFtZSwgdHJ1ZSApLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApO1xuXHR9O1xufSApO1xuXG4vLyBHZW5lcmF0ZSBzaG9ydGN1dHMgZm9yIGN1c3RvbSBhbmltYXRpb25zXG5qUXVlcnkuZWFjaCgge1xuXHRzbGlkZURvd246IGdlbkZ4KCBcInNob3dcIiApLFxuXHRzbGlkZVVwOiBnZW5GeCggXCJoaWRlXCIgKSxcblx0c2xpZGVUb2dnbGU6IGdlbkZ4KCBcInRvZ2dsZVwiICksXG5cdGZhZGVJbjogeyBvcGFjaXR5OiBcInNob3dcIiB9LFxuXHRmYWRlT3V0OiB7IG9wYWNpdHk6IFwiaGlkZVwiIH0sXG5cdGZhZGVUb2dnbGU6IHsgb3BhY2l0eTogXCJ0b2dnbGVcIiB9XG59LCBmdW5jdGlvbiggbmFtZSwgcHJvcHMgKSB7XG5cdGpRdWVyeS5mblsgbmFtZSBdID0gZnVuY3Rpb24oIHNwZWVkLCBlYXNpbmcsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiB0aGlzLmFuaW1hdGUoIHByb3BzLCBzcGVlZCwgZWFzaW5nLCBjYWxsYmFjayApO1xuXHR9O1xufSApO1xuXG5qUXVlcnkudGltZXJzID0gW107XG5qUXVlcnkuZngudGljayA9IGZ1bmN0aW9uKCkge1xuXHR2YXIgdGltZXIsXG5cdFx0aSA9IDAsXG5cdFx0dGltZXJzID0galF1ZXJ5LnRpbWVycztcblxuXHRmeE5vdyA9IERhdGUubm93KCk7XG5cblx0Zm9yICggOyBpIDwgdGltZXJzLmxlbmd0aDsgaSsrICkge1xuXHRcdHRpbWVyID0gdGltZXJzWyBpIF07XG5cblx0XHQvLyBSdW4gdGhlIHRpbWVyIGFuZCBzYWZlbHkgcmVtb3ZlIGl0IHdoZW4gZG9uZSAoYWxsb3dpbmcgZm9yIGV4dGVybmFsIHJlbW92YWwpXG5cdFx0aWYgKCAhdGltZXIoKSAmJiB0aW1lcnNbIGkgXSA9PT0gdGltZXIgKSB7XG5cdFx0XHR0aW1lcnMuc3BsaWNlKCBpLS0sIDEgKTtcblx0XHR9XG5cdH1cblxuXHRpZiAoICF0aW1lcnMubGVuZ3RoICkge1xuXHRcdGpRdWVyeS5meC5zdG9wKCk7XG5cdH1cblx0ZnhOb3cgPSB1bmRlZmluZWQ7XG59O1xuXG5qUXVlcnkuZngudGltZXIgPSBmdW5jdGlvbiggdGltZXIgKSB7XG5cdGpRdWVyeS50aW1lcnMucHVzaCggdGltZXIgKTtcblx0alF1ZXJ5LmZ4LnN0YXJ0KCk7XG59O1xuXG5qUXVlcnkuZnguaW50ZXJ2YWwgPSAxMztcbmpRdWVyeS5meC5zdGFydCA9IGZ1bmN0aW9uKCkge1xuXHRpZiAoIGluUHJvZ3Jlc3MgKSB7XG5cdFx0cmV0dXJuO1xuXHR9XG5cblx0aW5Qcm9ncmVzcyA9IHRydWU7XG5cdHNjaGVkdWxlKCk7XG59O1xuXG5qUXVlcnkuZnguc3RvcCA9IGZ1bmN0aW9uKCkge1xuXHRpblByb2dyZXNzID0gbnVsbDtcbn07XG5cbmpRdWVyeS5meC5zcGVlZHMgPSB7XG5cdHNsb3c6IDYwMCxcblx0ZmFzdDogMjAwLFxuXG5cdC8vIERlZmF1bHQgc3BlZWRcblx0X2RlZmF1bHQ6IDQwMFxufTtcblxuXG4vLyBCYXNlZCBvZmYgb2YgdGhlIHBsdWdpbiBieSBDbGludCBIZWxmZXJzLCB3aXRoIHBlcm1pc3Npb24uXG4vLyBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAxMDAzMjQwMTQ3NDcvaHR0cDovL2JsaW5kc2lnbmFscy5jb20vaW5kZXgucGhwLzIwMDkvMDcvanF1ZXJ5LWRlbGF5L1xualF1ZXJ5LmZuLmRlbGF5ID0gZnVuY3Rpb24oIHRpbWUsIHR5cGUgKSB7XG5cdHRpbWUgPSBqUXVlcnkuZnggPyBqUXVlcnkuZnguc3BlZWRzWyB0aW1lIF0gfHwgdGltZSA6IHRpbWU7XG5cdHR5cGUgPSB0eXBlIHx8IFwiZnhcIjtcblxuXHRyZXR1cm4gdGhpcy5xdWV1ZSggdHlwZSwgZnVuY3Rpb24oIG5leHQsIGhvb2tzICkge1xuXHRcdHZhciB0aW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoIG5leHQsIHRpbWUgKTtcblx0XHRob29rcy5zdG9wID0gZnVuY3Rpb24oKSB7XG5cdFx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KCB0aW1lb3V0ICk7XG5cdFx0fTtcblx0fSApO1xufTtcblxuXG4oIGZ1bmN0aW9uKCkge1xuXHR2YXIgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImlucHV0XCIgKSxcblx0XHRzZWxlY3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcInNlbGVjdFwiICksXG5cdFx0b3B0ID0gc2VsZWN0LmFwcGVuZENoaWxkKCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcIm9wdGlvblwiICkgKTtcblxuXHRpbnB1dC50eXBlID0gXCJjaGVja2JveFwiO1xuXG5cdC8vIFN1cHBvcnQ6IEFuZHJvaWQgPD00LjMgb25seVxuXHQvLyBEZWZhdWx0IHZhbHVlIGZvciBhIGNoZWNrYm94IHNob3VsZCBiZSBcIm9uXCJcblx0c3VwcG9ydC5jaGVja09uID0gaW5wdXQudmFsdWUgIT09IFwiXCI7XG5cblx0Ly8gU3VwcG9ydDogSUUgPD0xMSBvbmx5XG5cdC8vIE11c3QgYWNjZXNzIHNlbGVjdGVkSW5kZXggdG8gbWFrZSBkZWZhdWx0IG9wdGlvbnMgc2VsZWN0XG5cdHN1cHBvcnQub3B0U2VsZWN0ZWQgPSBvcHQuc2VsZWN0ZWQ7XG5cblx0Ly8gU3VwcG9ydDogSUUgPD0xMSBvbmx5XG5cdC8vIEFuIGlucHV0IGxvc2VzIGl0cyB2YWx1ZSBhZnRlciBiZWNvbWluZyBhIHJhZGlvXG5cdGlucHV0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCggXCJpbnB1dFwiICk7XG5cdGlucHV0LnZhbHVlID0gXCJ0XCI7XG5cdGlucHV0LnR5cGUgPSBcInJhZGlvXCI7XG5cdHN1cHBvcnQucmFkaW9WYWx1ZSA9IGlucHV0LnZhbHVlID09PSBcInRcIjtcbn0gKSgpO1xuXG5cbnZhciBib29sSG9vayxcblx0YXR0ckhhbmRsZSA9IGpRdWVyeS5leHByLmF0dHJIYW5kbGU7XG5cbmpRdWVyeS5mbi5leHRlbmQoIHtcblx0YXR0cjogZnVuY3Rpb24oIG5hbWUsIHZhbHVlICkge1xuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGpRdWVyeS5hdHRyLCBuYW1lLCB2YWx1ZSwgYXJndW1lbnRzLmxlbmd0aCA+IDEgKTtcblx0fSxcblxuXHRyZW1vdmVBdHRyOiBmdW5jdGlvbiggbmFtZSApIHtcblx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbigpIHtcblx0XHRcdGpRdWVyeS5yZW1vdmVBdHRyKCB0aGlzLCBuYW1lICk7XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5leHRlbmQoIHtcblx0YXR0cjogZnVuY3Rpb24oIGVsZW0sIG5hbWUsIHZhbHVlICkge1xuXHRcdHZhciByZXQsIGhvb2tzLFxuXHRcdFx0blR5cGUgPSBlbGVtLm5vZGVUeXBlO1xuXG5cdFx0Ly8gRG9uJ3QgZ2V0L3NldCBhdHRyaWJ1dGVzIG9uIHRleHQsIGNvbW1lbnQgYW5kIGF0dHJpYnV0ZSBub2Rlc1xuXHRcdGlmICggblR5cGUgPT09IDMgfHwgblR5cGUgPT09IDggfHwgblR5cGUgPT09IDIgKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0Ly8gRmFsbGJhY2sgdG8gcHJvcCB3aGVuIGF0dHJpYnV0ZXMgYXJlIG5vdCBzdXBwb3J0ZWRcblx0XHRpZiAoIHR5cGVvZiBlbGVtLmdldEF0dHJpYnV0ZSA9PT0gXCJ1bmRlZmluZWRcIiApIHtcblx0XHRcdHJldHVybiBqUXVlcnkucHJvcCggZWxlbSwgbmFtZSwgdmFsdWUgKTtcblx0XHR9XG5cblx0XHQvLyBBdHRyaWJ1dGUgaG9va3MgYXJlIGRldGVybWluZWQgYnkgdGhlIGxvd2VyY2FzZSB2ZXJzaW9uXG5cdFx0Ly8gR3JhYiBuZWNlc3NhcnkgaG9vayBpZiBvbmUgaXMgZGVmaW5lZFxuXHRcdGlmICggblR5cGUgIT09IDEgfHwgIWpRdWVyeS5pc1hNTERvYyggZWxlbSApICkge1xuXHRcdFx0aG9va3MgPSBqUXVlcnkuYXR0ckhvb2tzWyBuYW1lLnRvTG93ZXJDYXNlKCkgXSB8fFxuXHRcdFx0XHQoIGpRdWVyeS5leHByLm1hdGNoLmJvb2wudGVzdCggbmFtZSApID8gYm9vbEhvb2sgOiB1bmRlZmluZWQgKTtcblx0XHR9XG5cblx0XHRpZiAoIHZhbHVlICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRpZiAoIHZhbHVlID09PSBudWxsICkge1xuXHRcdFx0XHRqUXVlcnkucmVtb3ZlQXR0ciggZWxlbSwgbmFtZSApO1xuXHRcdFx0XHRyZXR1cm47XG5cdFx0XHR9XG5cblx0XHRcdGlmICggaG9va3MgJiYgXCJzZXRcIiBpbiBob29rcyAmJlxuXHRcdFx0XHQoIHJldCA9IGhvb2tzLnNldCggZWxlbSwgdmFsdWUsIG5hbWUgKSApICE9PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdHJldHVybiByZXQ7XG5cdFx0XHR9XG5cblx0XHRcdGVsZW0uc2V0QXR0cmlidXRlKCBuYW1lLCB2YWx1ZSArIFwiXCIgKTtcblx0XHRcdHJldHVybiB2YWx1ZTtcblx0XHR9XG5cblx0XHRpZiAoIGhvb2tzICYmIFwiZ2V0XCIgaW4gaG9va3MgJiYgKCByZXQgPSBob29rcy5nZXQoIGVsZW0sIG5hbWUgKSApICE9PSBudWxsICkge1xuXHRcdFx0cmV0dXJuIHJldDtcblx0XHR9XG5cblx0XHRyZXQgPSBqUXVlcnkuZmluZC5hdHRyKCBlbGVtLCBuYW1lICk7XG5cblx0XHQvLyBOb24tZXhpc3RlbnQgYXR0cmlidXRlcyByZXR1cm4gbnVsbCwgd2Ugbm9ybWFsaXplIHRvIHVuZGVmaW5lZFxuXHRcdHJldHVybiByZXQgPT0gbnVsbCA/IHVuZGVmaW5lZCA6IHJldDtcblx0fSxcblxuXHRhdHRySG9va3M6IHtcblx0XHR0eXBlOiB7XG5cdFx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHtcblx0XHRcdFx0aWYgKCAhc3VwcG9ydC5yYWRpb1ZhbHVlICYmIHZhbHVlID09PSBcInJhZGlvXCIgJiZcblx0XHRcdFx0XHRub2RlTmFtZSggZWxlbSwgXCJpbnB1dFwiICkgKSB7XG5cdFx0XHRcdFx0dmFyIHZhbCA9IGVsZW0udmFsdWU7XG5cdFx0XHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIFwidHlwZVwiLCB2YWx1ZSApO1xuXHRcdFx0XHRcdGlmICggdmFsICkge1xuXHRcdFx0XHRcdFx0ZWxlbS52YWx1ZSA9IHZhbDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHZhbHVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdHJlbW92ZUF0dHI6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSApIHtcblx0XHR2YXIgbmFtZSxcblx0XHRcdGkgPSAwLFxuXG5cdFx0XHQvLyBBdHRyaWJ1dGUgbmFtZXMgY2FuIGNvbnRhaW4gbm9uLUhUTUwgd2hpdGVzcGFjZSBjaGFyYWN0ZXJzXG5cdFx0XHQvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zeW50YXguaHRtbCNhdHRyaWJ1dGVzLTJcblx0XHRcdGF0dHJOYW1lcyA9IHZhbHVlICYmIHZhbHVlLm1hdGNoKCBybm90aHRtbHdoaXRlICk7XG5cblx0XHRpZiAoIGF0dHJOYW1lcyAmJiBlbGVtLm5vZGVUeXBlID09PSAxICkge1xuXHRcdFx0d2hpbGUgKCAoIG5hbWUgPSBhdHRyTmFtZXNbIGkrKyBdICkgKSB7XG5cdFx0XHRcdGVsZW0ucmVtb3ZlQXR0cmlidXRlKCBuYW1lICk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9XG59ICk7XG5cbi8vIEhvb2tzIGZvciBib29sZWFuIGF0dHJpYnV0ZXNcbmJvb2xIb29rID0ge1xuXHRzZXQ6IGZ1bmN0aW9uKCBlbGVtLCB2YWx1ZSwgbmFtZSApIHtcblx0XHRpZiAoIHZhbHVlID09PSBmYWxzZSApIHtcblxuXHRcdFx0Ly8gUmVtb3ZlIGJvb2xlYW4gYXR0cmlidXRlcyB3aGVuIHNldCB0byBmYWxzZVxuXHRcdFx0alF1ZXJ5LnJlbW92ZUF0dHIoIGVsZW0sIG5hbWUgKTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0ZWxlbS5zZXRBdHRyaWJ1dGUoIG5hbWUsIG5hbWUgKTtcblx0XHR9XG5cdFx0cmV0dXJuIG5hbWU7XG5cdH1cbn07XG5cbmpRdWVyeS5lYWNoKCBqUXVlcnkuZXhwci5tYXRjaC5ib29sLnNvdXJjZS5tYXRjaCggL1xcdysvZyApLCBmdW5jdGlvbiggaSwgbmFtZSApIHtcblx0dmFyIGdldHRlciA9IGF0dHJIYW5kbGVbIG5hbWUgXSB8fCBqUXVlcnkuZmluZC5hdHRyO1xuXG5cdGF0dHJIYW5kbGVbIG5hbWUgXSA9IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCBpc1hNTCApIHtcblx0XHR2YXIgcmV0LCBoYW5kbGUsXG5cdFx0XHRsb3dlcmNhc2VOYW1lID0gbmFtZS50b0xvd2VyQ2FzZSgpO1xuXG5cdFx0aWYgKCAhaXNYTUwgKSB7XG5cblx0XHRcdC8vIEF2b2lkIGFuIGluZmluaXRlIGxvb3AgYnkgdGVtcG9yYXJpbHkgcmVtb3ZpbmcgdGhpcyBmdW5jdGlvbiBmcm9tIHRoZSBnZXR0ZXJcblx0XHRcdGhhbmRsZSA9IGF0dHJIYW5kbGVbIGxvd2VyY2FzZU5hbWUgXTtcblx0XHRcdGF0dHJIYW5kbGVbIGxvd2VyY2FzZU5hbWUgXSA9IHJldDtcblx0XHRcdHJldCA9IGdldHRlciggZWxlbSwgbmFtZSwgaXNYTUwgKSAhPSBudWxsID9cblx0XHRcdFx0bG93ZXJjYXNlTmFtZSA6XG5cdFx0XHRcdG51bGw7XG5cdFx0XHRhdHRySGFuZGxlWyBsb3dlcmNhc2VOYW1lIF0gPSBoYW5kbGU7XG5cdFx0fVxuXHRcdHJldHVybiByZXQ7XG5cdH07XG59ICk7XG5cblxuXG5cbnZhciByZm9jdXNhYmxlID0gL14oPzppbnB1dHxzZWxlY3R8dGV4dGFyZWF8YnV0dG9uKSQvaSxcblx0cmNsaWNrYWJsZSA9IC9eKD86YXxhcmVhKSQvaTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRwcm9wOiBmdW5jdGlvbiggbmFtZSwgdmFsdWUgKSB7XG5cdFx0cmV0dXJuIGFjY2VzcyggdGhpcywgalF1ZXJ5LnByb3AsIG5hbWUsIHZhbHVlLCBhcmd1bWVudHMubGVuZ3RoID4gMSApO1xuXHR9LFxuXG5cdHJlbW92ZVByb3A6IGZ1bmN0aW9uKCBuYW1lICkge1xuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0ZGVsZXRlIHRoaXNbIGpRdWVyeS5wcm9wRml4WyBuYW1lIF0gfHwgbmFtZSBdO1xuXHRcdH0gKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZXh0ZW5kKCB7XG5cdHByb3A6IGZ1bmN0aW9uKCBlbGVtLCBuYW1lLCB2YWx1ZSApIHtcblx0XHR2YXIgcmV0LCBob29rcyxcblx0XHRcdG5UeXBlID0gZWxlbS5ub2RlVHlwZTtcblxuXHRcdC8vIERvbid0IGdldC9zZXQgcHJvcGVydGllcyBvbiB0ZXh0LCBjb21tZW50IGFuZCBhdHRyaWJ1dGUgbm9kZXNcblx0XHRpZiAoIG5UeXBlID09PSAzIHx8IG5UeXBlID09PSA4IHx8IG5UeXBlID09PSAyICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICggblR5cGUgIT09IDEgfHwgIWpRdWVyeS5pc1hNTERvYyggZWxlbSApICkge1xuXG5cdFx0XHQvLyBGaXggbmFtZSBhbmQgYXR0YWNoIGhvb2tzXG5cdFx0XHRuYW1lID0galF1ZXJ5LnByb3BGaXhbIG5hbWUgXSB8fCBuYW1lO1xuXHRcdFx0aG9va3MgPSBqUXVlcnkucHJvcEhvb2tzWyBuYW1lIF07XG5cdFx0fVxuXG5cdFx0aWYgKCB2YWx1ZSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0aWYgKCBob29rcyAmJiBcInNldFwiIGluIGhvb2tzICYmXG5cdFx0XHRcdCggcmV0ID0gaG9va3Muc2V0KCBlbGVtLCB2YWx1ZSwgbmFtZSApICkgIT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuIHJldDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuICggZWxlbVsgbmFtZSBdID0gdmFsdWUgKTtcblx0XHR9XG5cblx0XHRpZiAoIGhvb2tzICYmIFwiZ2V0XCIgaW4gaG9va3MgJiYgKCByZXQgPSBob29rcy5nZXQoIGVsZW0sIG5hbWUgKSApICE9PSBudWxsICkge1xuXHRcdFx0cmV0dXJuIHJldDtcblx0XHR9XG5cblx0XHRyZXR1cm4gZWxlbVsgbmFtZSBdO1xuXHR9LFxuXG5cdHByb3BIb29rczoge1xuXHRcdHRhYkluZGV4OiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OSAtIDExIG9ubHlcblx0XHRcdFx0Ly8gZWxlbS50YWJJbmRleCBkb2Vzbid0IGFsd2F5cyByZXR1cm4gdGhlXG5cdFx0XHRcdC8vIGNvcnJlY3QgdmFsdWUgd2hlbiBpdCBoYXNuJ3QgYmVlbiBleHBsaWNpdGx5IHNldFxuXHRcdFx0XHQvLyBodHRwczovL3dlYi5hcmNoaXZlLm9yZy93ZWIvMjAxNDExMTYyMzMzNDcvaHR0cDovL2ZsdWlkcHJvamVjdC5vcmcvYmxvZy8yMDA4LzAxLzA5L2dldHRpbmctc2V0dGluZy1hbmQtcmVtb3ZpbmctdGFiaW5kZXgtdmFsdWVzLXdpdGgtamF2YXNjcmlwdC9cblx0XHRcdFx0Ly8gVXNlIHByb3BlciBhdHRyaWJ1dGUgcmV0cmlldmFsKCMxMjA3Milcblx0XHRcdFx0dmFyIHRhYmluZGV4ID0galF1ZXJ5LmZpbmQuYXR0ciggZWxlbSwgXCJ0YWJpbmRleFwiICk7XG5cblx0XHRcdFx0aWYgKCB0YWJpbmRleCApIHtcblx0XHRcdFx0XHRyZXR1cm4gcGFyc2VJbnQoIHRhYmluZGV4LCAxMCApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdHJmb2N1c2FibGUudGVzdCggZWxlbS5ub2RlTmFtZSApIHx8XG5cdFx0XHRcdFx0cmNsaWNrYWJsZS50ZXN0KCBlbGVtLm5vZGVOYW1lICkgJiZcblx0XHRcdFx0XHRlbGVtLmhyZWZcblx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0cmV0dXJuIDA7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gLTE7XG5cdFx0XHR9XG5cdFx0fVxuXHR9LFxuXG5cdHByb3BGaXg6IHtcblx0XHRcImZvclwiOiBcImh0bWxGb3JcIixcblx0XHRcImNsYXNzXCI6IFwiY2xhc3NOYW1lXCJcblx0fVxufSApO1xuXG4vLyBTdXBwb3J0OiBJRSA8PTExIG9ubHlcbi8vIEFjY2Vzc2luZyB0aGUgc2VsZWN0ZWRJbmRleCBwcm9wZXJ0eVxuLy8gZm9yY2VzIHRoZSBicm93c2VyIHRvIHJlc3BlY3Qgc2V0dGluZyBzZWxlY3RlZFxuLy8gb24gdGhlIG9wdGlvblxuLy8gVGhlIGdldHRlciBlbnN1cmVzIGEgZGVmYXVsdCBvcHRpb24gaXMgc2VsZWN0ZWRcbi8vIHdoZW4gaW4gYW4gb3B0Z3JvdXBcbi8vIGVzbGludCBydWxlIFwibm8tdW51c2VkLWV4cHJlc3Npb25zXCIgaXMgZGlzYWJsZWQgZm9yIHRoaXMgY29kZVxuLy8gc2luY2UgaXQgY29uc2lkZXJzIHN1Y2ggYWNjZXNzaW9ucyBub29wXG5pZiAoICFzdXBwb3J0Lm9wdFNlbGVjdGVkICkge1xuXHRqUXVlcnkucHJvcEhvb2tzLnNlbGVjdGVkID0ge1xuXHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdC8qIGVzbGludCBuby11bnVzZWQtZXhwcmVzc2lvbnM6IFwib2ZmXCIgKi9cblxuXHRcdFx0dmFyIHBhcmVudCA9IGVsZW0ucGFyZW50Tm9kZTtcblx0XHRcdGlmICggcGFyZW50ICYmIHBhcmVudC5wYXJlbnROb2RlICkge1xuXHRcdFx0XHRwYXJlbnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIG51bGw7XG5cdFx0fSxcblx0XHRzZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXG5cdFx0XHQvKiBlc2xpbnQgbm8tdW51c2VkLWV4cHJlc3Npb25zOiBcIm9mZlwiICovXG5cblx0XHRcdHZhciBwYXJlbnQgPSBlbGVtLnBhcmVudE5vZGU7XG5cdFx0XHRpZiAoIHBhcmVudCApIHtcblx0XHRcdFx0cGFyZW50LnNlbGVjdGVkSW5kZXg7XG5cblx0XHRcdFx0aWYgKCBwYXJlbnQucGFyZW50Tm9kZSApIHtcblx0XHRcdFx0XHRwYXJlbnQucGFyZW50Tm9kZS5zZWxlY3RlZEluZGV4O1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xufVxuXG5qUXVlcnkuZWFjaCggW1xuXHRcInRhYkluZGV4XCIsXG5cdFwicmVhZE9ubHlcIixcblx0XCJtYXhMZW5ndGhcIixcblx0XCJjZWxsU3BhY2luZ1wiLFxuXHRcImNlbGxQYWRkaW5nXCIsXG5cdFwicm93U3BhblwiLFxuXHRcImNvbFNwYW5cIixcblx0XCJ1c2VNYXBcIixcblx0XCJmcmFtZUJvcmRlclwiLFxuXHRcImNvbnRlbnRFZGl0YWJsZVwiXG5dLCBmdW5jdGlvbigpIHtcblx0alF1ZXJ5LnByb3BGaXhbIHRoaXMudG9Mb3dlckNhc2UoKSBdID0gdGhpcztcbn0gKTtcblxuXG5cblxuXHQvLyBTdHJpcCBhbmQgY29sbGFwc2Ugd2hpdGVzcGFjZSBhY2NvcmRpbmcgdG8gSFRNTCBzcGVjXG5cdC8vIGh0dHBzOi8vaW5mcmEuc3BlYy53aGF0d2cub3JnLyNzdHJpcC1hbmQtY29sbGFwc2UtYXNjaWktd2hpdGVzcGFjZVxuXHRmdW5jdGlvbiBzdHJpcEFuZENvbGxhcHNlKCB2YWx1ZSApIHtcblx0XHR2YXIgdG9rZW5zID0gdmFsdWUubWF0Y2goIHJub3RodG1sd2hpdGUgKSB8fCBbXTtcblx0XHRyZXR1cm4gdG9rZW5zLmpvaW4oIFwiIFwiICk7XG5cdH1cblxuXG5mdW5jdGlvbiBnZXRDbGFzcyggZWxlbSApIHtcblx0cmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlICYmIGVsZW0uZ2V0QXR0cmlidXRlKCBcImNsYXNzXCIgKSB8fCBcIlwiO1xufVxuXG5mdW5jdGlvbiBjbGFzc2VzVG9BcnJheSggdmFsdWUgKSB7XG5cdGlmICggQXJyYXkuaXNBcnJheSggdmFsdWUgKSApIHtcblx0XHRyZXR1cm4gdmFsdWU7XG5cdH1cblx0aWYgKCB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgKSB7XG5cdFx0cmV0dXJuIHZhbHVlLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgW107XG5cdH1cblx0cmV0dXJuIFtdO1xufVxuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cdGFkZENsYXNzOiBmdW5jdGlvbiggdmFsdWUgKSB7XG5cdFx0dmFyIGNsYXNzZXMsIGVsZW0sIGN1ciwgY3VyVmFsdWUsIGNsYXp6LCBqLCBmaW5hbFZhbHVlLFxuXHRcdFx0aSA9IDA7XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaiApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkuYWRkQ2xhc3MoIHZhbHVlLmNhbGwoIHRoaXMsIGosIGdldENsYXNzKCB0aGlzICkgKSApO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdGNsYXNzZXMgPSBjbGFzc2VzVG9BcnJheSggdmFsdWUgKTtcblxuXHRcdGlmICggY2xhc3Nlcy5sZW5ndGggKSB7XG5cdFx0XHR3aGlsZSAoICggZWxlbSA9IHRoaXNbIGkrKyBdICkgKSB7XG5cdFx0XHRcdGN1clZhbHVlID0gZ2V0Q2xhc3MoIGVsZW0gKTtcblx0XHRcdFx0Y3VyID0gZWxlbS5ub2RlVHlwZSA9PT0gMSAmJiAoIFwiIFwiICsgc3RyaXBBbmRDb2xsYXBzZSggY3VyVmFsdWUgKSArIFwiIFwiICk7XG5cblx0XHRcdFx0aWYgKCBjdXIgKSB7XG5cdFx0XHRcdFx0aiA9IDA7XG5cdFx0XHRcdFx0d2hpbGUgKCAoIGNsYXp6ID0gY2xhc3Nlc1sgaisrIF0gKSApIHtcblx0XHRcdFx0XHRcdGlmICggY3VyLmluZGV4T2YoIFwiIFwiICsgY2xhenogKyBcIiBcIiApIDwgMCApIHtcblx0XHRcdFx0XHRcdFx0Y3VyICs9IGNsYXp6ICsgXCIgXCI7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gT25seSBhc3NpZ24gaWYgZGlmZmVyZW50IHRvIGF2b2lkIHVubmVlZGVkIHJlbmRlcmluZy5cblx0XHRcdFx0XHRmaW5hbFZhbHVlID0gc3RyaXBBbmRDb2xsYXBzZSggY3VyICk7XG5cdFx0XHRcdFx0aWYgKCBjdXJWYWx1ZSAhPT0gZmluYWxWYWx1ZSApIHtcblx0XHRcdFx0XHRcdGVsZW0uc2V0QXR0cmlidXRlKCBcImNsYXNzXCIsIGZpbmFsVmFsdWUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHRyZW1vdmVDbGFzczogZnVuY3Rpb24oIHZhbHVlICkge1xuXHRcdHZhciBjbGFzc2VzLCBlbGVtLCBjdXIsIGN1clZhbHVlLCBjbGF6eiwgaiwgZmluYWxWYWx1ZSxcblx0XHRcdGkgPSAwO1xuXG5cdFx0aWYgKCBpc0Z1bmN0aW9uKCB2YWx1ZSApICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oIGogKSB7XG5cdFx0XHRcdGpRdWVyeSggdGhpcyApLnJlbW92ZUNsYXNzKCB2YWx1ZS5jYWxsKCB0aGlzLCBqLCBnZXRDbGFzcyggdGhpcyApICkgKTtcblx0XHRcdH0gKTtcblx0XHR9XG5cblx0XHRpZiAoICFhcmd1bWVudHMubGVuZ3RoICkge1xuXHRcdFx0cmV0dXJuIHRoaXMuYXR0ciggXCJjbGFzc1wiLCBcIlwiICk7XG5cdFx0fVxuXG5cdFx0Y2xhc3NlcyA9IGNsYXNzZXNUb0FycmF5KCB2YWx1ZSApO1xuXG5cdFx0aWYgKCBjbGFzc2VzLmxlbmd0aCApIHtcblx0XHRcdHdoaWxlICggKCBlbGVtID0gdGhpc1sgaSsrIF0gKSApIHtcblx0XHRcdFx0Y3VyVmFsdWUgPSBnZXRDbGFzcyggZWxlbSApO1xuXG5cdFx0XHRcdC8vIFRoaXMgZXhwcmVzc2lvbiBpcyBoZXJlIGZvciBiZXR0ZXIgY29tcHJlc3NpYmlsaXR5IChzZWUgYWRkQ2xhc3MpXG5cdFx0XHRcdGN1ciA9IGVsZW0ubm9kZVR5cGUgPT09IDEgJiYgKCBcIiBcIiArIHN0cmlwQW5kQ29sbGFwc2UoIGN1clZhbHVlICkgKyBcIiBcIiApO1xuXG5cdFx0XHRcdGlmICggY3VyICkge1xuXHRcdFx0XHRcdGogPSAwO1xuXHRcdFx0XHRcdHdoaWxlICggKCBjbGF6eiA9IGNsYXNzZXNbIGorKyBdICkgKSB7XG5cblx0XHRcdFx0XHRcdC8vIFJlbW92ZSAqYWxsKiBpbnN0YW5jZXNcblx0XHRcdFx0XHRcdHdoaWxlICggY3VyLmluZGV4T2YoIFwiIFwiICsgY2xhenogKyBcIiBcIiApID4gLTEgKSB7XG5cdFx0XHRcdFx0XHRcdGN1ciA9IGN1ci5yZXBsYWNlKCBcIiBcIiArIGNsYXp6ICsgXCIgXCIsIFwiIFwiICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gT25seSBhc3NpZ24gaWYgZGlmZmVyZW50IHRvIGF2b2lkIHVubmVlZGVkIHJlbmRlcmluZy5cblx0XHRcdFx0XHRmaW5hbFZhbHVlID0gc3RyaXBBbmRDb2xsYXBzZSggY3VyICk7XG5cdFx0XHRcdFx0aWYgKCBjdXJWYWx1ZSAhPT0gZmluYWxWYWx1ZSApIHtcblx0XHRcdFx0XHRcdGVsZW0uc2V0QXR0cmlidXRlKCBcImNsYXNzXCIsIGZpbmFsVmFsdWUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gdGhpcztcblx0fSxcblxuXHR0b2dnbGVDbGFzczogZnVuY3Rpb24oIHZhbHVlLCBzdGF0ZVZhbCApIHtcblx0XHR2YXIgdHlwZSA9IHR5cGVvZiB2YWx1ZSxcblx0XHRcdGlzVmFsaWRWYWx1ZSA9IHR5cGUgPT09IFwic3RyaW5nXCIgfHwgQXJyYXkuaXNBcnJheSggdmFsdWUgKTtcblxuXHRcdGlmICggdHlwZW9mIHN0YXRlVmFsID09PSBcImJvb2xlYW5cIiAmJiBpc1ZhbGlkVmFsdWUgKSB7XG5cdFx0XHRyZXR1cm4gc3RhdGVWYWwgPyB0aGlzLmFkZENsYXNzKCB2YWx1ZSApIDogdGhpcy5yZW1vdmVDbGFzcyggdmFsdWUgKTtcblx0XHR9XG5cblx0XHRpZiAoIGlzRnVuY3Rpb24oIHZhbHVlICkgKSB7XG5cdFx0XHRyZXR1cm4gdGhpcy5lYWNoKCBmdW5jdGlvbiggaSApIHtcblx0XHRcdFx0alF1ZXJ5KCB0aGlzICkudG9nZ2xlQ2xhc3MoXG5cdFx0XHRcdFx0dmFsdWUuY2FsbCggdGhpcywgaSwgZ2V0Q2xhc3MoIHRoaXMgKSwgc3RhdGVWYWwgKSxcblx0XHRcdFx0XHRzdGF0ZVZhbFxuXHRcdFx0XHQpO1xuXHRcdFx0fSApO1xuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGNsYXNzTmFtZSwgaSwgc2VsZiwgY2xhc3NOYW1lcztcblxuXHRcdFx0aWYgKCBpc1ZhbGlkVmFsdWUgKSB7XG5cblx0XHRcdFx0Ly8gVG9nZ2xlIGluZGl2aWR1YWwgY2xhc3MgbmFtZXNcblx0XHRcdFx0aSA9IDA7XG5cdFx0XHRcdHNlbGYgPSBqUXVlcnkoIHRoaXMgKTtcblx0XHRcdFx0Y2xhc3NOYW1lcyA9IGNsYXNzZXNUb0FycmF5KCB2YWx1ZSApO1xuXG5cdFx0XHRcdHdoaWxlICggKCBjbGFzc05hbWUgPSBjbGFzc05hbWVzWyBpKysgXSApICkge1xuXG5cdFx0XHRcdFx0Ly8gQ2hlY2sgZWFjaCBjbGFzc05hbWUgZ2l2ZW4sIHNwYWNlIHNlcGFyYXRlZCBsaXN0XG5cdFx0XHRcdFx0aWYgKCBzZWxmLmhhc0NsYXNzKCBjbGFzc05hbWUgKSApIHtcblx0XHRcdFx0XHRcdHNlbGYucmVtb3ZlQ2xhc3MoIGNsYXNzTmFtZSApO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRzZWxmLmFkZENsYXNzKCBjbGFzc05hbWUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0Ly8gVG9nZ2xlIHdob2xlIGNsYXNzIG5hbWVcblx0XHRcdH0gZWxzZSBpZiAoIHZhbHVlID09PSB1bmRlZmluZWQgfHwgdHlwZSA9PT0gXCJib29sZWFuXCIgKSB7XG5cdFx0XHRcdGNsYXNzTmFtZSA9IGdldENsYXNzKCB0aGlzICk7XG5cdFx0XHRcdGlmICggY2xhc3NOYW1lICkge1xuXG5cdFx0XHRcdFx0Ly8gU3RvcmUgY2xhc3NOYW1lIGlmIHNldFxuXHRcdFx0XHRcdGRhdGFQcml2LnNldCggdGhpcywgXCJfX2NsYXNzTmFtZV9fXCIsIGNsYXNzTmFtZSApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gSWYgdGhlIGVsZW1lbnQgaGFzIGEgY2xhc3MgbmFtZSBvciBpZiB3ZSdyZSBwYXNzZWQgYGZhbHNlYCxcblx0XHRcdFx0Ly8gdGhlbiByZW1vdmUgdGhlIHdob2xlIGNsYXNzbmFtZSAoaWYgdGhlcmUgd2FzIG9uZSwgdGhlIGFib3ZlIHNhdmVkIGl0KS5cblx0XHRcdFx0Ly8gT3RoZXJ3aXNlIGJyaW5nIGJhY2sgd2hhdGV2ZXIgd2FzIHByZXZpb3VzbHkgc2F2ZWQgKGlmIGFueXRoaW5nKSxcblx0XHRcdFx0Ly8gZmFsbGluZyBiYWNrIHRvIHRoZSBlbXB0eSBzdHJpbmcgaWYgbm90aGluZyB3YXMgc3RvcmVkLlxuXHRcdFx0XHRpZiAoIHRoaXMuc2V0QXR0cmlidXRlICkge1xuXHRcdFx0XHRcdHRoaXMuc2V0QXR0cmlidXRlKCBcImNsYXNzXCIsXG5cdFx0XHRcdFx0XHRjbGFzc05hbWUgfHwgdmFsdWUgPT09IGZhbHNlID9cblx0XHRcdFx0XHRcdFwiXCIgOlxuXHRcdFx0XHRcdFx0ZGF0YVByaXYuZ2V0KCB0aGlzLCBcIl9fY2xhc3NOYW1lX19cIiApIHx8IFwiXCJcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9LFxuXG5cdGhhc0NsYXNzOiBmdW5jdGlvbiggc2VsZWN0b3IgKSB7XG5cdFx0dmFyIGNsYXNzTmFtZSwgZWxlbSxcblx0XHRcdGkgPSAwO1xuXG5cdFx0Y2xhc3NOYW1lID0gXCIgXCIgKyBzZWxlY3RvciArIFwiIFwiO1xuXHRcdHdoaWxlICggKCBlbGVtID0gdGhpc1sgaSsrIF0gKSApIHtcblx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMSAmJlxuXHRcdFx0XHQoIFwiIFwiICsgc3RyaXBBbmRDb2xsYXBzZSggZ2V0Q2xhc3MoIGVsZW0gKSApICsgXCIgXCIgKS5pbmRleE9mKCBjbGFzc05hbWUgKSA+IC0xICkge1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxufSApO1xuXG5cblxuXG52YXIgcnJldHVybiA9IC9cXHIvZztcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHR2YWw6IGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHR2YXIgaG9va3MsIHJldCwgdmFsdWVJc0Z1bmN0aW9uLFxuXHRcdFx0ZWxlbSA9IHRoaXNbIDAgXTtcblxuXHRcdGlmICggIWFyZ3VtZW50cy5sZW5ndGggKSB7XG5cdFx0XHRpZiAoIGVsZW0gKSB7XG5cdFx0XHRcdGhvb2tzID0galF1ZXJ5LnZhbEhvb2tzWyBlbGVtLnR5cGUgXSB8fFxuXHRcdFx0XHRcdGpRdWVyeS52YWxIb29rc1sgZWxlbS5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIF07XG5cblx0XHRcdFx0aWYgKCBob29rcyAmJlxuXHRcdFx0XHRcdFwiZ2V0XCIgaW4gaG9va3MgJiZcblx0XHRcdFx0XHQoIHJldCA9IGhvb2tzLmdldCggZWxlbSwgXCJ2YWx1ZVwiICkgKSAhPT0gdW5kZWZpbmVkXG5cdFx0XHRcdCkge1xuXHRcdFx0XHRcdHJldHVybiByZXQ7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXQgPSBlbGVtLnZhbHVlO1xuXG5cdFx0XHRcdC8vIEhhbmRsZSBtb3N0IGNvbW1vbiBzdHJpbmcgY2FzZXNcblx0XHRcdFx0aWYgKCB0eXBlb2YgcmV0ID09PSBcInN0cmluZ1wiICkge1xuXHRcdFx0XHRcdHJldHVybiByZXQucmVwbGFjZSggcnJldHVybiwgXCJcIiApO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gSGFuZGxlIGNhc2VzIHdoZXJlIHZhbHVlIGlzIG51bGwvdW5kZWYgb3IgbnVtYmVyXG5cdFx0XHRcdHJldHVybiByZXQgPT0gbnVsbCA/IFwiXCIgOiByZXQ7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR2YWx1ZUlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uKCB2YWx1ZSApO1xuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHR2YXIgdmFsO1xuXG5cdFx0XHRpZiAoIHRoaXMubm9kZVR5cGUgIT09IDEgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCB2YWx1ZUlzRnVuY3Rpb24gKSB7XG5cdFx0XHRcdHZhbCA9IHZhbHVlLmNhbGwoIHRoaXMsIGksIGpRdWVyeSggdGhpcyApLnZhbCgpICk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR2YWwgPSB2YWx1ZTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gVHJlYXQgbnVsbC91bmRlZmluZWQgYXMgXCJcIjsgY29udmVydCBudW1iZXJzIHRvIHN0cmluZ1xuXHRcdFx0aWYgKCB2YWwgPT0gbnVsbCApIHtcblx0XHRcdFx0dmFsID0gXCJcIjtcblxuXHRcdFx0fSBlbHNlIGlmICggdHlwZW9mIHZhbCA9PT0gXCJudW1iZXJcIiApIHtcblx0XHRcdFx0dmFsICs9IFwiXCI7XG5cblx0XHRcdH0gZWxzZSBpZiAoIEFycmF5LmlzQXJyYXkoIHZhbCApICkge1xuXHRcdFx0XHR2YWwgPSBqUXVlcnkubWFwKCB2YWwsIGZ1bmN0aW9uKCB2YWx1ZSApIHtcblx0XHRcdFx0XHRyZXR1cm4gdmFsdWUgPT0gbnVsbCA/IFwiXCIgOiB2YWx1ZSArIFwiXCI7XG5cdFx0XHRcdH0gKTtcblx0XHRcdH1cblxuXHRcdFx0aG9va3MgPSBqUXVlcnkudmFsSG9va3NbIHRoaXMudHlwZSBdIHx8IGpRdWVyeS52YWxIb29rc1sgdGhpcy5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpIF07XG5cblx0XHRcdC8vIElmIHNldCByZXR1cm5zIHVuZGVmaW5lZCwgZmFsbCBiYWNrIHRvIG5vcm1hbCBzZXR0aW5nXG5cdFx0XHRpZiAoICFob29rcyB8fCAhKCBcInNldFwiIGluIGhvb2tzICkgfHwgaG9va3Muc2V0KCB0aGlzLCB2YWwsIFwidmFsdWVcIiApID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdHRoaXMudmFsdWUgPSB2YWw7XG5cdFx0XHR9XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cbmpRdWVyeS5leHRlbmQoIHtcblx0dmFsSG9va3M6IHtcblx0XHRvcHRpb246IHtcblx0XHRcdGdldDogZnVuY3Rpb24oIGVsZW0gKSB7XG5cblx0XHRcdFx0dmFyIHZhbCA9IGpRdWVyeS5maW5kLmF0dHIoIGVsZW0sIFwidmFsdWVcIiApO1xuXHRcdFx0XHRyZXR1cm4gdmFsICE9IG51bGwgP1xuXHRcdFx0XHRcdHZhbCA6XG5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTEwIC0gMTEgb25seVxuXHRcdFx0XHRcdC8vIG9wdGlvbi50ZXh0IHRocm93cyBleGNlcHRpb25zICgjMTQ2ODYsICMxNDg1OClcblx0XHRcdFx0XHQvLyBTdHJpcCBhbmQgY29sbGFwc2Ugd2hpdGVzcGFjZVxuXHRcdFx0XHRcdC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI3N0cmlwLWFuZC1jb2xsYXBzZS13aGl0ZXNwYWNlXG5cdFx0XHRcdFx0c3RyaXBBbmRDb2xsYXBzZSggalF1ZXJ5LnRleHQoIGVsZW0gKSApO1xuXHRcdFx0fVxuXHRcdH0sXG5cdFx0c2VsZWN0OiB7XG5cdFx0XHRnZXQ6IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0XHR2YXIgdmFsdWUsIG9wdGlvbiwgaSxcblx0XHRcdFx0XHRvcHRpb25zID0gZWxlbS5vcHRpb25zLFxuXHRcdFx0XHRcdGluZGV4ID0gZWxlbS5zZWxlY3RlZEluZGV4LFxuXHRcdFx0XHRcdG9uZSA9IGVsZW0udHlwZSA9PT0gXCJzZWxlY3Qtb25lXCIsXG5cdFx0XHRcdFx0dmFsdWVzID0gb25lID8gbnVsbCA6IFtdLFxuXHRcdFx0XHRcdG1heCA9IG9uZSA/IGluZGV4ICsgMSA6IG9wdGlvbnMubGVuZ3RoO1xuXG5cdFx0XHRcdGlmICggaW5kZXggPCAwICkge1xuXHRcdFx0XHRcdGkgPSBtYXg7XG5cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRpID0gb25lID8gaW5kZXggOiAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gTG9vcCB0aHJvdWdoIGFsbCB0aGUgc2VsZWN0ZWQgb3B0aW9uc1xuXHRcdFx0XHRmb3IgKCA7IGkgPCBtYXg7IGkrKyApIHtcblx0XHRcdFx0XHRvcHRpb24gPSBvcHRpb25zWyBpIF07XG5cblx0XHRcdFx0XHQvLyBTdXBwb3J0OiBJRSA8PTkgb25seVxuXHRcdFx0XHRcdC8vIElFOC05IGRvZXNuJ3QgdXBkYXRlIHNlbGVjdGVkIGFmdGVyIGZvcm0gcmVzZXQgKCMyNTUxKVxuXHRcdFx0XHRcdGlmICggKCBvcHRpb24uc2VsZWN0ZWQgfHwgaSA9PT0gaW5kZXggKSAmJlxuXG5cdFx0XHRcdFx0XHRcdC8vIERvbid0IHJldHVybiBvcHRpb25zIHRoYXQgYXJlIGRpc2FibGVkIG9yIGluIGEgZGlzYWJsZWQgb3B0Z3JvdXBcblx0XHRcdFx0XHRcdFx0IW9wdGlvbi5kaXNhYmxlZCAmJlxuXHRcdFx0XHRcdFx0XHQoICFvcHRpb24ucGFyZW50Tm9kZS5kaXNhYmxlZCB8fFxuXHRcdFx0XHRcdFx0XHRcdCFub2RlTmFtZSggb3B0aW9uLnBhcmVudE5vZGUsIFwib3B0Z3JvdXBcIiApICkgKSB7XG5cblx0XHRcdFx0XHRcdC8vIEdldCB0aGUgc3BlY2lmaWMgdmFsdWUgZm9yIHRoZSBvcHRpb25cblx0XHRcdFx0XHRcdHZhbHVlID0galF1ZXJ5KCBvcHRpb24gKS52YWwoKTtcblxuXHRcdFx0XHRcdFx0Ly8gV2UgZG9uJ3QgbmVlZCBhbiBhcnJheSBmb3Igb25lIHNlbGVjdHNcblx0XHRcdFx0XHRcdGlmICggb25lICkge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdmFsdWU7XG5cdFx0XHRcdFx0XHR9XG5cblx0XHRcdFx0XHRcdC8vIE11bHRpLVNlbGVjdHMgcmV0dXJuIGFuIGFycmF5XG5cdFx0XHRcdFx0XHR2YWx1ZXMucHVzaCggdmFsdWUgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHRyZXR1cm4gdmFsdWVzO1xuXHRcdFx0fSxcblxuXHRcdFx0c2V0OiBmdW5jdGlvbiggZWxlbSwgdmFsdWUgKSB7XG5cdFx0XHRcdHZhciBvcHRpb25TZXQsIG9wdGlvbixcblx0XHRcdFx0XHRvcHRpb25zID0gZWxlbS5vcHRpb25zLFxuXHRcdFx0XHRcdHZhbHVlcyA9IGpRdWVyeS5tYWtlQXJyYXkoIHZhbHVlICksXG5cdFx0XHRcdFx0aSA9IG9wdGlvbnMubGVuZ3RoO1xuXG5cdFx0XHRcdHdoaWxlICggaS0tICkge1xuXHRcdFx0XHRcdG9wdGlvbiA9IG9wdGlvbnNbIGkgXTtcblxuXHRcdFx0XHRcdC8qIGVzbGludC1kaXNhYmxlIG5vLWNvbmQtYXNzaWduICovXG5cblx0XHRcdFx0XHRpZiAoIG9wdGlvbi5zZWxlY3RlZCA9XG5cdFx0XHRcdFx0XHRqUXVlcnkuaW5BcnJheSggalF1ZXJ5LnZhbEhvb2tzLm9wdGlvbi5nZXQoIG9wdGlvbiApLCB2YWx1ZXMgKSA+IC0xXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHRvcHRpb25TZXQgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdC8qIGVzbGludC1lbmFibGUgbm8tY29uZC1hc3NpZ24gKi9cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIEZvcmNlIGJyb3dzZXJzIHRvIGJlaGF2ZSBjb25zaXN0ZW50bHkgd2hlbiBub24tbWF0Y2hpbmcgdmFsdWUgaXMgc2V0XG5cdFx0XHRcdGlmICggIW9wdGlvblNldCApIHtcblx0XHRcdFx0XHRlbGVtLnNlbGVjdGVkSW5kZXggPSAtMTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gdmFsdWVzO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxufSApO1xuXG4vLyBSYWRpb3MgYW5kIGNoZWNrYm94ZXMgZ2V0dGVyL3NldHRlclxualF1ZXJ5LmVhY2goIFsgXCJyYWRpb1wiLCBcImNoZWNrYm94XCIgXSwgZnVuY3Rpb24oKSB7XG5cdGpRdWVyeS52YWxIb29rc1sgdGhpcyBdID0ge1xuXHRcdHNldDogZnVuY3Rpb24oIGVsZW0sIHZhbHVlICkge1xuXHRcdFx0aWYgKCBBcnJheS5pc0FycmF5KCB2YWx1ZSApICkge1xuXHRcdFx0XHRyZXR1cm4gKCBlbGVtLmNoZWNrZWQgPSBqUXVlcnkuaW5BcnJheSggalF1ZXJ5KCBlbGVtICkudmFsKCksIHZhbHVlICkgPiAtMSApO1xuXHRcdFx0fVxuXHRcdH1cblx0fTtcblx0aWYgKCAhc3VwcG9ydC5jaGVja09uICkge1xuXHRcdGpRdWVyeS52YWxIb29rc1sgdGhpcyBdLmdldCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRcdFx0cmV0dXJuIGVsZW0uZ2V0QXR0cmlidXRlKCBcInZhbHVlXCIgKSA9PT0gbnVsbCA/IFwib25cIiA6IGVsZW0udmFsdWU7XG5cdFx0fTtcblx0fVxufSApO1xuXG5cblxuXG4vLyBSZXR1cm4galF1ZXJ5IGZvciBhdHRyaWJ1dGVzLW9ubHkgaW5jbHVzaW9uXG5cblxuc3VwcG9ydC5mb2N1c2luID0gXCJvbmZvY3VzaW5cIiBpbiB3aW5kb3c7XG5cblxudmFyIHJmb2N1c01vcnBoID0gL14oPzpmb2N1c2luZm9jdXN8Zm9jdXNvdXRibHVyKSQvLFxuXHRzdG9wUHJvcGFnYXRpb25DYWxsYmFjayA9IGZ1bmN0aW9uKCBlICkge1xuXHRcdGUuc3RvcFByb3BhZ2F0aW9uKCk7XG5cdH07XG5cbmpRdWVyeS5leHRlbmQoIGpRdWVyeS5ldmVudCwge1xuXG5cdHRyaWdnZXI6IGZ1bmN0aW9uKCBldmVudCwgZGF0YSwgZWxlbSwgb25seUhhbmRsZXJzICkge1xuXG5cdFx0dmFyIGksIGN1ciwgdG1wLCBidWJibGVUeXBlLCBvbnR5cGUsIGhhbmRsZSwgc3BlY2lhbCwgbGFzdEVsZW1lbnQsXG5cdFx0XHRldmVudFBhdGggPSBbIGVsZW0gfHwgZG9jdW1lbnQgXSxcblx0XHRcdHR5cGUgPSBoYXNPd24uY2FsbCggZXZlbnQsIFwidHlwZVwiICkgPyBldmVudC50eXBlIDogZXZlbnQsXG5cdFx0XHRuYW1lc3BhY2VzID0gaGFzT3duLmNhbGwoIGV2ZW50LCBcIm5hbWVzcGFjZVwiICkgPyBldmVudC5uYW1lc3BhY2Uuc3BsaXQoIFwiLlwiICkgOiBbXTtcblxuXHRcdGN1ciA9IGxhc3RFbGVtZW50ID0gdG1wID0gZWxlbSA9IGVsZW0gfHwgZG9jdW1lbnQ7XG5cblx0XHQvLyBEb24ndCBkbyBldmVudHMgb24gdGV4dCBhbmQgY29tbWVudCBub2Rlc1xuXHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gMyB8fCBlbGVtLm5vZGVUeXBlID09PSA4ICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIGZvY3VzL2JsdXIgbW9ycGhzIHRvIGZvY3VzaW4vb3V0OyBlbnN1cmUgd2UncmUgbm90IGZpcmluZyB0aGVtIHJpZ2h0IG5vd1xuXHRcdGlmICggcmZvY3VzTW9ycGgudGVzdCggdHlwZSArIGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgKSApIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAoIHR5cGUuaW5kZXhPZiggXCIuXCIgKSA+IC0xICkge1xuXG5cdFx0XHQvLyBOYW1lc3BhY2VkIHRyaWdnZXI7IGNyZWF0ZSBhIHJlZ2V4cCB0byBtYXRjaCBldmVudCB0eXBlIGluIGhhbmRsZSgpXG5cdFx0XHRuYW1lc3BhY2VzID0gdHlwZS5zcGxpdCggXCIuXCIgKTtcblx0XHRcdHR5cGUgPSBuYW1lc3BhY2VzLnNoaWZ0KCk7XG5cdFx0XHRuYW1lc3BhY2VzLnNvcnQoKTtcblx0XHR9XG5cdFx0b250eXBlID0gdHlwZS5pbmRleE9mKCBcIjpcIiApIDwgMCAmJiBcIm9uXCIgKyB0eXBlO1xuXG5cdFx0Ly8gQ2FsbGVyIGNhbiBwYXNzIGluIGEgalF1ZXJ5LkV2ZW50IG9iamVjdCwgT2JqZWN0LCBvciBqdXN0IGFuIGV2ZW50IHR5cGUgc3RyaW5nXG5cdFx0ZXZlbnQgPSBldmVudFsgalF1ZXJ5LmV4cGFuZG8gXSA/XG5cdFx0XHRldmVudCA6XG5cdFx0XHRuZXcgalF1ZXJ5LkV2ZW50KCB0eXBlLCB0eXBlb2YgZXZlbnQgPT09IFwib2JqZWN0XCIgJiYgZXZlbnQgKTtcblxuXHRcdC8vIFRyaWdnZXIgYml0bWFzazogJiAxIGZvciBuYXRpdmUgaGFuZGxlcnM7ICYgMiBmb3IgalF1ZXJ5IChhbHdheXMgdHJ1ZSlcblx0XHRldmVudC5pc1RyaWdnZXIgPSBvbmx5SGFuZGxlcnMgPyAyIDogMztcblx0XHRldmVudC5uYW1lc3BhY2UgPSBuYW1lc3BhY2VzLmpvaW4oIFwiLlwiICk7XG5cdFx0ZXZlbnQucm5hbWVzcGFjZSA9IGV2ZW50Lm5hbWVzcGFjZSA/XG5cdFx0XHRuZXcgUmVnRXhwKCBcIihefFxcXFwuKVwiICsgbmFtZXNwYWNlcy5qb2luKCBcIlxcXFwuKD86LipcXFxcLnwpXCIgKSArIFwiKFxcXFwufCQpXCIgKSA6XG5cdFx0XHRudWxsO1xuXG5cdFx0Ly8gQ2xlYW4gdXAgdGhlIGV2ZW50IGluIGNhc2UgaXQgaXMgYmVpbmcgcmV1c2VkXG5cdFx0ZXZlbnQucmVzdWx0ID0gdW5kZWZpbmVkO1xuXHRcdGlmICggIWV2ZW50LnRhcmdldCApIHtcblx0XHRcdGV2ZW50LnRhcmdldCA9IGVsZW07XG5cdFx0fVxuXG5cdFx0Ly8gQ2xvbmUgYW55IGluY29taW5nIGRhdGEgYW5kIHByZXBlbmQgdGhlIGV2ZW50LCBjcmVhdGluZyB0aGUgaGFuZGxlciBhcmcgbGlzdFxuXHRcdGRhdGEgPSBkYXRhID09IG51bGwgP1xuXHRcdFx0WyBldmVudCBdIDpcblx0XHRcdGpRdWVyeS5tYWtlQXJyYXkoIGRhdGEsIFsgZXZlbnQgXSApO1xuXG5cdFx0Ly8gQWxsb3cgc3BlY2lhbCBldmVudHMgdG8gZHJhdyBvdXRzaWRlIHRoZSBsaW5lc1xuXHRcdHNwZWNpYWwgPSBqUXVlcnkuZXZlbnQuc3BlY2lhbFsgdHlwZSBdIHx8IHt9O1xuXHRcdGlmICggIW9ubHlIYW5kbGVycyAmJiBzcGVjaWFsLnRyaWdnZXIgJiYgc3BlY2lhbC50cmlnZ2VyLmFwcGx5KCBlbGVtLCBkYXRhICkgPT09IGZhbHNlICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIERldGVybWluZSBldmVudCBwcm9wYWdhdGlvbiBwYXRoIGluIGFkdmFuY2UsIHBlciBXM0MgZXZlbnRzIHNwZWMgKCM5OTUxKVxuXHRcdC8vIEJ1YmJsZSB1cCB0byBkb2N1bWVudCwgdGhlbiB0byB3aW5kb3c7IHdhdGNoIGZvciBhIGdsb2JhbCBvd25lckRvY3VtZW50IHZhciAoIzk3MjQpXG5cdFx0aWYgKCAhb25seUhhbmRsZXJzICYmICFzcGVjaWFsLm5vQnViYmxlICYmICFpc1dpbmRvdyggZWxlbSApICkge1xuXG5cdFx0XHRidWJibGVUeXBlID0gc3BlY2lhbC5kZWxlZ2F0ZVR5cGUgfHwgdHlwZTtcblx0XHRcdGlmICggIXJmb2N1c01vcnBoLnRlc3QoIGJ1YmJsZVR5cGUgKyB0eXBlICkgKSB7XG5cdFx0XHRcdGN1ciA9IGN1ci5wYXJlbnROb2RlO1xuXHRcdFx0fVxuXHRcdFx0Zm9yICggOyBjdXI7IGN1ciA9IGN1ci5wYXJlbnROb2RlICkge1xuXHRcdFx0XHRldmVudFBhdGgucHVzaCggY3VyICk7XG5cdFx0XHRcdHRtcCA9IGN1cjtcblx0XHRcdH1cblxuXHRcdFx0Ly8gT25seSBhZGQgd2luZG93IGlmIHdlIGdvdCB0byBkb2N1bWVudCAoZS5nLiwgbm90IHBsYWluIG9iaiBvciBkZXRhY2hlZCBET00pXG5cdFx0XHRpZiAoIHRtcCA9PT0gKCBlbGVtLm93bmVyRG9jdW1lbnQgfHwgZG9jdW1lbnQgKSApIHtcblx0XHRcdFx0ZXZlbnRQYXRoLnB1c2goIHRtcC5kZWZhdWx0VmlldyB8fCB0bXAucGFyZW50V2luZG93IHx8IHdpbmRvdyApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIEZpcmUgaGFuZGxlcnMgb24gdGhlIGV2ZW50IHBhdGhcblx0XHRpID0gMDtcblx0XHR3aGlsZSAoICggY3VyID0gZXZlbnRQYXRoWyBpKysgXSApICYmICFldmVudC5pc1Byb3BhZ2F0aW9uU3RvcHBlZCgpICkge1xuXHRcdFx0bGFzdEVsZW1lbnQgPSBjdXI7XG5cdFx0XHRldmVudC50eXBlID0gaSA+IDEgP1xuXHRcdFx0XHRidWJibGVUeXBlIDpcblx0XHRcdFx0c3BlY2lhbC5iaW5kVHlwZSB8fCB0eXBlO1xuXG5cdFx0XHQvLyBqUXVlcnkgaGFuZGxlclxuXHRcdFx0aGFuZGxlID0gKCBkYXRhUHJpdi5nZXQoIGN1ciwgXCJldmVudHNcIiApIHx8IHt9IClbIGV2ZW50LnR5cGUgXSAmJlxuXHRcdFx0XHRkYXRhUHJpdi5nZXQoIGN1ciwgXCJoYW5kbGVcIiApO1xuXHRcdFx0aWYgKCBoYW5kbGUgKSB7XG5cdFx0XHRcdGhhbmRsZS5hcHBseSggY3VyLCBkYXRhICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIE5hdGl2ZSBoYW5kbGVyXG5cdFx0XHRoYW5kbGUgPSBvbnR5cGUgJiYgY3VyWyBvbnR5cGUgXTtcblx0XHRcdGlmICggaGFuZGxlICYmIGhhbmRsZS5hcHBseSAmJiBhY2NlcHREYXRhKCBjdXIgKSApIHtcblx0XHRcdFx0ZXZlbnQucmVzdWx0ID0gaGFuZGxlLmFwcGx5KCBjdXIsIGRhdGEgKTtcblx0XHRcdFx0aWYgKCBldmVudC5yZXN1bHQgPT09IGZhbHNlICkge1xuXHRcdFx0XHRcdGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdFx0ZXZlbnQudHlwZSA9IHR5cGU7XG5cblx0XHQvLyBJZiBub2JvZHkgcHJldmVudGVkIHRoZSBkZWZhdWx0IGFjdGlvbiwgZG8gaXQgbm93XG5cdFx0aWYgKCAhb25seUhhbmRsZXJzICYmICFldmVudC5pc0RlZmF1bHRQcmV2ZW50ZWQoKSApIHtcblxuXHRcdFx0aWYgKCAoICFzcGVjaWFsLl9kZWZhdWx0IHx8XG5cdFx0XHRcdHNwZWNpYWwuX2RlZmF1bHQuYXBwbHkoIGV2ZW50UGF0aC5wb3AoKSwgZGF0YSApID09PSBmYWxzZSApICYmXG5cdFx0XHRcdGFjY2VwdERhdGEoIGVsZW0gKSApIHtcblxuXHRcdFx0XHQvLyBDYWxsIGEgbmF0aXZlIERPTSBtZXRob2Qgb24gdGhlIHRhcmdldCB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGV2ZW50LlxuXHRcdFx0XHQvLyBEb24ndCBkbyBkZWZhdWx0IGFjdGlvbnMgb24gd2luZG93LCB0aGF0J3Mgd2hlcmUgZ2xvYmFsIHZhcmlhYmxlcyBiZSAoIzYxNzApXG5cdFx0XHRcdGlmICggb250eXBlICYmIGlzRnVuY3Rpb24oIGVsZW1bIHR5cGUgXSApICYmICFpc1dpbmRvdyggZWxlbSApICkge1xuXG5cdFx0XHRcdFx0Ly8gRG9uJ3QgcmUtdHJpZ2dlciBhbiBvbkZPTyBldmVudCB3aGVuIHdlIGNhbGwgaXRzIEZPTygpIG1ldGhvZFxuXHRcdFx0XHRcdHRtcCA9IGVsZW1bIG9udHlwZSBdO1xuXG5cdFx0XHRcdFx0aWYgKCB0bXAgKSB7XG5cdFx0XHRcdFx0XHRlbGVtWyBvbnR5cGUgXSA9IG51bGw7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly8gUHJldmVudCByZS10cmlnZ2VyaW5nIG9mIHRoZSBzYW1lIGV2ZW50LCBzaW5jZSB3ZSBhbHJlYWR5IGJ1YmJsZWQgaXQgYWJvdmVcblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlcmVkID0gdHlwZTtcblxuXHRcdFx0XHRcdGlmICggZXZlbnQuaXNQcm9wYWdhdGlvblN0b3BwZWQoKSApIHtcblx0XHRcdFx0XHRcdGxhc3RFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIHR5cGUsIHN0b3BQcm9wYWdhdGlvbkNhbGxiYWNrICk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0ZWxlbVsgdHlwZSBdKCk7XG5cblx0XHRcdFx0XHRpZiAoIGV2ZW50LmlzUHJvcGFnYXRpb25TdG9wcGVkKCkgKSB7XG5cdFx0XHRcdFx0XHRsYXN0RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCB0eXBlLCBzdG9wUHJvcGFnYXRpb25DYWxsYmFjayApO1xuXHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyZWQgPSB1bmRlZmluZWQ7XG5cblx0XHRcdFx0XHRpZiAoIHRtcCApIHtcblx0XHRcdFx0XHRcdGVsZW1bIG9udHlwZSBdID0gdG1wO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBldmVudC5yZXN1bHQ7XG5cdH0sXG5cblx0Ly8gUGlnZ3liYWNrIG9uIGEgZG9ub3IgZXZlbnQgdG8gc2ltdWxhdGUgYSBkaWZmZXJlbnQgb25lXG5cdC8vIFVzZWQgb25seSBmb3IgYGZvY3VzKGluIHwgb3V0KWAgZXZlbnRzXG5cdHNpbXVsYXRlOiBmdW5jdGlvbiggdHlwZSwgZWxlbSwgZXZlbnQgKSB7XG5cdFx0dmFyIGUgPSBqUXVlcnkuZXh0ZW5kKFxuXHRcdFx0bmV3IGpRdWVyeS5FdmVudCgpLFxuXHRcdFx0ZXZlbnQsXG5cdFx0XHR7XG5cdFx0XHRcdHR5cGU6IHR5cGUsXG5cdFx0XHRcdGlzU2ltdWxhdGVkOiB0cnVlXG5cdFx0XHR9XG5cdFx0KTtcblxuXHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyKCBlLCBudWxsLCBlbGVtICk7XG5cdH1cblxufSApO1xuXG5qUXVlcnkuZm4uZXh0ZW5kKCB7XG5cblx0dHJpZ2dlcjogZnVuY3Rpb24oIHR5cGUsIGRhdGEgKSB7XG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkuZXZlbnQudHJpZ2dlciggdHlwZSwgZGF0YSwgdGhpcyApO1xuXHRcdH0gKTtcblx0fSxcblx0dHJpZ2dlckhhbmRsZXI6IGZ1bmN0aW9uKCB0eXBlLCBkYXRhICkge1xuXHRcdHZhciBlbGVtID0gdGhpc1sgMCBdO1xuXHRcdGlmICggZWxlbSApIHtcblx0XHRcdHJldHVybiBqUXVlcnkuZXZlbnQudHJpZ2dlciggdHlwZSwgZGF0YSwgZWxlbSwgdHJ1ZSApO1xuXHRcdH1cblx0fVxufSApO1xuXG5cbi8vIFN1cHBvcnQ6IEZpcmVmb3ggPD00NFxuLy8gRmlyZWZveCBkb2Vzbid0IGhhdmUgZm9jdXMoaW4gfCBvdXQpIGV2ZW50c1xuLy8gUmVsYXRlZCB0aWNrZXQgLSBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD02ODc3ODdcbi8vXG4vLyBTdXBwb3J0OiBDaHJvbWUgPD00OCAtIDQ5LCBTYWZhcmkgPD05LjAgLSA5LjFcbi8vIGZvY3VzKGluIHwgb3V0KSBldmVudHMgZmlyZSBhZnRlciBmb2N1cyAmIGJsdXIgZXZlbnRzLFxuLy8gd2hpY2ggaXMgc3BlYyB2aW9sYXRpb24gLSBodHRwOi8vd3d3LnczLm9yZy9UUi9ET00tTGV2ZWwtMy1FdmVudHMvI2V2ZW50cy1mb2N1c2V2ZW50LWV2ZW50LW9yZGVyXG4vLyBSZWxhdGVkIHRpY2tldCAtIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTQ0OTg1N1xuaWYgKCAhc3VwcG9ydC5mb2N1c2luICkge1xuXHRqUXVlcnkuZWFjaCggeyBmb2N1czogXCJmb2N1c2luXCIsIGJsdXI6IFwiZm9jdXNvdXRcIiB9LCBmdW5jdGlvbiggb3JpZywgZml4ICkge1xuXG5cdFx0Ly8gQXR0YWNoIGEgc2luZ2xlIGNhcHR1cmluZyBoYW5kbGVyIG9uIHRoZSBkb2N1bWVudCB3aGlsZSBzb21lb25lIHdhbnRzIGZvY3VzaW4vZm9jdXNvdXRcblx0XHR2YXIgaGFuZGxlciA9IGZ1bmN0aW9uKCBldmVudCApIHtcblx0XHRcdGpRdWVyeS5ldmVudC5zaW11bGF0ZSggZml4LCBldmVudC50YXJnZXQsIGpRdWVyeS5ldmVudC5maXgoIGV2ZW50ICkgKTtcblx0XHR9O1xuXG5cdFx0alF1ZXJ5LmV2ZW50LnNwZWNpYWxbIGZpeCBdID0ge1xuXHRcdFx0c2V0dXA6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR2YXIgZG9jID0gdGhpcy5vd25lckRvY3VtZW50IHx8IHRoaXMsXG5cdFx0XHRcdFx0YXR0YWNoZXMgPSBkYXRhUHJpdi5hY2Nlc3MoIGRvYywgZml4ICk7XG5cblx0XHRcdFx0aWYgKCAhYXR0YWNoZXMgKSB7XG5cdFx0XHRcdFx0ZG9jLmFkZEV2ZW50TGlzdGVuZXIoIG9yaWcsIGhhbmRsZXIsIHRydWUgKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkYXRhUHJpdi5hY2Nlc3MoIGRvYywgZml4LCAoIGF0dGFjaGVzIHx8IDAgKSArIDEgKTtcblx0XHRcdH0sXG5cdFx0XHR0ZWFyZG93bjogZnVuY3Rpb24oKSB7XG5cdFx0XHRcdHZhciBkb2MgPSB0aGlzLm93bmVyRG9jdW1lbnQgfHwgdGhpcyxcblx0XHRcdFx0XHRhdHRhY2hlcyA9IGRhdGFQcml2LmFjY2VzcyggZG9jLCBmaXggKSAtIDE7XG5cblx0XHRcdFx0aWYgKCAhYXR0YWNoZXMgKSB7XG5cdFx0XHRcdFx0ZG9jLnJlbW92ZUV2ZW50TGlzdGVuZXIoIG9yaWcsIGhhbmRsZXIsIHRydWUgKTtcblx0XHRcdFx0XHRkYXRhUHJpdi5yZW1vdmUoIGRvYywgZml4ICk7XG5cblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRkYXRhUHJpdi5hY2Nlc3MoIGRvYywgZml4LCBhdHRhY2hlcyApO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fTtcblx0fSApO1xufVxudmFyIGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uO1xuXG52YXIgbm9uY2UgPSBEYXRlLm5vdygpO1xuXG52YXIgcnF1ZXJ5ID0gKCAvXFw/LyApO1xuXG5cblxuLy8gQ3Jvc3MtYnJvd3NlciB4bWwgcGFyc2luZ1xualF1ZXJ5LnBhcnNlWE1MID0gZnVuY3Rpb24oIGRhdGEgKSB7XG5cdHZhciB4bWw7XG5cdGlmICggIWRhdGEgfHwgdHlwZW9mIGRhdGEgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0cmV0dXJuIG51bGw7XG5cdH1cblxuXHQvLyBTdXBwb3J0OiBJRSA5IC0gMTEgb25seVxuXHQvLyBJRSB0aHJvd3Mgb24gcGFyc2VGcm9tU3RyaW5nIHdpdGggaW52YWxpZCBpbnB1dC5cblx0dHJ5IHtcblx0XHR4bWwgPSAoIG5ldyB3aW5kb3cuRE9NUGFyc2VyKCkgKS5wYXJzZUZyb21TdHJpbmcoIGRhdGEsIFwidGV4dC94bWxcIiApO1xuXHR9IGNhdGNoICggZSApIHtcblx0XHR4bWwgPSB1bmRlZmluZWQ7XG5cdH1cblxuXHRpZiAoICF4bWwgfHwgeG1sLmdldEVsZW1lbnRzQnlUYWdOYW1lKCBcInBhcnNlcmVycm9yXCIgKS5sZW5ndGggKSB7XG5cdFx0alF1ZXJ5LmVycm9yKCBcIkludmFsaWQgWE1MOiBcIiArIGRhdGEgKTtcblx0fVxuXHRyZXR1cm4geG1sO1xufTtcblxuXG52YXJcblx0cmJyYWNrZXQgPSAvXFxbXFxdJC8sXG5cdHJDUkxGID0gL1xccj9cXG4vZyxcblx0cnN1Ym1pdHRlclR5cGVzID0gL14oPzpzdWJtaXR8YnV0dG9ufGltYWdlfHJlc2V0fGZpbGUpJC9pLFxuXHRyc3VibWl0dGFibGUgPSAvXig/OmlucHV0fHNlbGVjdHx0ZXh0YXJlYXxrZXlnZW4pL2k7XG5cbmZ1bmN0aW9uIGJ1aWxkUGFyYW1zKCBwcmVmaXgsIG9iaiwgdHJhZGl0aW9uYWwsIGFkZCApIHtcblx0dmFyIG5hbWU7XG5cblx0aWYgKCBBcnJheS5pc0FycmF5KCBvYmogKSApIHtcblxuXHRcdC8vIFNlcmlhbGl6ZSBhcnJheSBpdGVtLlxuXHRcdGpRdWVyeS5lYWNoKCBvYmosIGZ1bmN0aW9uKCBpLCB2ICkge1xuXHRcdFx0aWYgKCB0cmFkaXRpb25hbCB8fCByYnJhY2tldC50ZXN0KCBwcmVmaXggKSApIHtcblxuXHRcdFx0XHQvLyBUcmVhdCBlYWNoIGFycmF5IGl0ZW0gYXMgYSBzY2FsYXIuXG5cdFx0XHRcdGFkZCggcHJlZml4LCB2ICk7XG5cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0Ly8gSXRlbSBpcyBub24tc2NhbGFyIChhcnJheSBvciBvYmplY3QpLCBlbmNvZGUgaXRzIG51bWVyaWMgaW5kZXguXG5cdFx0XHRcdGJ1aWxkUGFyYW1zKFxuXHRcdFx0XHRcdHByZWZpeCArIFwiW1wiICsgKCB0eXBlb2YgdiA9PT0gXCJvYmplY3RcIiAmJiB2ICE9IG51bGwgPyBpIDogXCJcIiApICsgXCJdXCIsXG5cdFx0XHRcdFx0dixcblx0XHRcdFx0XHR0cmFkaXRpb25hbCxcblx0XHRcdFx0XHRhZGRcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9ICk7XG5cblx0fSBlbHNlIGlmICggIXRyYWRpdGlvbmFsICYmIHRvVHlwZSggb2JqICkgPT09IFwib2JqZWN0XCIgKSB7XG5cblx0XHQvLyBTZXJpYWxpemUgb2JqZWN0IGl0ZW0uXG5cdFx0Zm9yICggbmFtZSBpbiBvYmogKSB7XG5cdFx0XHRidWlsZFBhcmFtcyggcHJlZml4ICsgXCJbXCIgKyBuYW1lICsgXCJdXCIsIG9ialsgbmFtZSBdLCB0cmFkaXRpb25hbCwgYWRkICk7XG5cdFx0fVxuXG5cdH0gZWxzZSB7XG5cblx0XHQvLyBTZXJpYWxpemUgc2NhbGFyIGl0ZW0uXG5cdFx0YWRkKCBwcmVmaXgsIG9iaiApO1xuXHR9XG59XG5cbi8vIFNlcmlhbGl6ZSBhbiBhcnJheSBvZiBmb3JtIGVsZW1lbnRzIG9yIGEgc2V0IG9mXG4vLyBrZXkvdmFsdWVzIGludG8gYSBxdWVyeSBzdHJpbmdcbmpRdWVyeS5wYXJhbSA9IGZ1bmN0aW9uKCBhLCB0cmFkaXRpb25hbCApIHtcblx0dmFyIHByZWZpeCxcblx0XHRzID0gW10sXG5cdFx0YWRkID0gZnVuY3Rpb24oIGtleSwgdmFsdWVPckZ1bmN0aW9uICkge1xuXG5cdFx0XHQvLyBJZiB2YWx1ZSBpcyBhIGZ1bmN0aW9uLCBpbnZva2UgaXQgYW5kIHVzZSBpdHMgcmV0dXJuIHZhbHVlXG5cdFx0XHR2YXIgdmFsdWUgPSBpc0Z1bmN0aW9uKCB2YWx1ZU9yRnVuY3Rpb24gKSA/XG5cdFx0XHRcdHZhbHVlT3JGdW5jdGlvbigpIDpcblx0XHRcdFx0dmFsdWVPckZ1bmN0aW9uO1xuXG5cdFx0XHRzWyBzLmxlbmd0aCBdID0gZW5jb2RlVVJJQ29tcG9uZW50KCBrZXkgKSArIFwiPVwiICtcblx0XHRcdFx0ZW5jb2RlVVJJQ29tcG9uZW50KCB2YWx1ZSA9PSBudWxsID8gXCJcIiA6IHZhbHVlICk7XG5cdFx0fTtcblxuXHQvLyBJZiBhbiBhcnJheSB3YXMgcGFzc2VkIGluLCBhc3N1bWUgdGhhdCBpdCBpcyBhbiBhcnJheSBvZiBmb3JtIGVsZW1lbnRzLlxuXHRpZiAoIEFycmF5LmlzQXJyYXkoIGEgKSB8fCAoIGEuanF1ZXJ5ICYmICFqUXVlcnkuaXNQbGFpbk9iamVjdCggYSApICkgKSB7XG5cblx0XHQvLyBTZXJpYWxpemUgdGhlIGZvcm0gZWxlbWVudHNcblx0XHRqUXVlcnkuZWFjaCggYSwgZnVuY3Rpb24oKSB7XG5cdFx0XHRhZGQoIHRoaXMubmFtZSwgdGhpcy52YWx1ZSApO1xuXHRcdH0gKTtcblxuXHR9IGVsc2Uge1xuXG5cdFx0Ly8gSWYgdHJhZGl0aW9uYWwsIGVuY29kZSB0aGUgXCJvbGRcIiB3YXkgKHRoZSB3YXkgMS4zLjIgb3Igb2xkZXJcblx0XHQvLyBkaWQgaXQpLCBvdGhlcndpc2UgZW5jb2RlIHBhcmFtcyByZWN1cnNpdmVseS5cblx0XHRmb3IgKCBwcmVmaXggaW4gYSApIHtcblx0XHRcdGJ1aWxkUGFyYW1zKCBwcmVmaXgsIGFbIHByZWZpeCBdLCB0cmFkaXRpb25hbCwgYWRkICk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gUmV0dXJuIHRoZSByZXN1bHRpbmcgc2VyaWFsaXphdGlvblxuXHRyZXR1cm4gcy5qb2luKCBcIiZcIiApO1xufTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRzZXJpYWxpemU6IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBqUXVlcnkucGFyYW0oIHRoaXMuc2VyaWFsaXplQXJyYXkoKSApO1xuXHR9LFxuXHRzZXJpYWxpemVBcnJheTogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMubWFwKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gQ2FuIGFkZCBwcm9wSG9vayBmb3IgXCJlbGVtZW50c1wiIHRvIGZpbHRlciBvciBhZGQgZm9ybSBlbGVtZW50c1xuXHRcdFx0dmFyIGVsZW1lbnRzID0galF1ZXJ5LnByb3AoIHRoaXMsIFwiZWxlbWVudHNcIiApO1xuXHRcdFx0cmV0dXJuIGVsZW1lbnRzID8galF1ZXJ5Lm1ha2VBcnJheSggZWxlbWVudHMgKSA6IHRoaXM7XG5cdFx0fSApXG5cdFx0LmZpbHRlciggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgdHlwZSA9IHRoaXMudHlwZTtcblxuXHRcdFx0Ly8gVXNlIC5pcyggXCI6ZGlzYWJsZWRcIiApIHNvIHRoYXQgZmllbGRzZXRbZGlzYWJsZWRdIHdvcmtzXG5cdFx0XHRyZXR1cm4gdGhpcy5uYW1lICYmICFqUXVlcnkoIHRoaXMgKS5pcyggXCI6ZGlzYWJsZWRcIiApICYmXG5cdFx0XHRcdHJzdWJtaXR0YWJsZS50ZXN0KCB0aGlzLm5vZGVOYW1lICkgJiYgIXJzdWJtaXR0ZXJUeXBlcy50ZXN0KCB0eXBlICkgJiZcblx0XHRcdFx0KCB0aGlzLmNoZWNrZWQgfHwgIXJjaGVja2FibGVUeXBlLnRlc3QoIHR5cGUgKSApO1xuXHRcdH0gKVxuXHRcdC5tYXAoIGZ1bmN0aW9uKCBpLCBlbGVtICkge1xuXHRcdFx0dmFyIHZhbCA9IGpRdWVyeSggdGhpcyApLnZhbCgpO1xuXG5cdFx0XHRpZiAoIHZhbCA9PSBudWxsICkge1xuXHRcdFx0XHRyZXR1cm4gbnVsbDtcblx0XHRcdH1cblxuXHRcdFx0aWYgKCBBcnJheS5pc0FycmF5KCB2YWwgKSApIHtcblx0XHRcdFx0cmV0dXJuIGpRdWVyeS5tYXAoIHZhbCwgZnVuY3Rpb24oIHZhbCApIHtcblx0XHRcdFx0XHRyZXR1cm4geyBuYW1lOiBlbGVtLm5hbWUsIHZhbHVlOiB2YWwucmVwbGFjZSggckNSTEYsIFwiXFxyXFxuXCIgKSB9O1xuXHRcdFx0XHR9ICk7XG5cdFx0XHR9XG5cblx0XHRcdHJldHVybiB7IG5hbWU6IGVsZW0ubmFtZSwgdmFsdWU6IHZhbC5yZXBsYWNlKCByQ1JMRiwgXCJcXHJcXG5cIiApIH07XG5cdFx0fSApLmdldCgpO1xuXHR9XG59ICk7XG5cblxudmFyXG5cdHIyMCA9IC8lMjAvZyxcblx0cmhhc2ggPSAvIy4qJC8sXG5cdHJhbnRpQ2FjaGUgPSAvKFs/Jl0pXz1bXiZdKi8sXG5cdHJoZWFkZXJzID0gL14oLio/KTpbIFxcdF0qKFteXFxyXFxuXSopJC9tZyxcblxuXHQvLyAjNzY1MywgIzgxMjUsICM4MTUyOiBsb2NhbCBwcm90b2NvbCBkZXRlY3Rpb25cblx0cmxvY2FsUHJvdG9jb2wgPSAvXig/OmFib3V0fGFwcHxhcHAtc3RvcmFnZXwuKy1leHRlbnNpb258ZmlsZXxyZXN8d2lkZ2V0KTokLyxcblx0cm5vQ29udGVudCA9IC9eKD86R0VUfEhFQUQpJC8sXG5cdHJwcm90b2NvbCA9IC9eXFwvXFwvLyxcblxuXHQvKiBQcmVmaWx0ZXJzXG5cdCAqIDEpIFRoZXkgYXJlIHVzZWZ1bCB0byBpbnRyb2R1Y2UgY3VzdG9tIGRhdGFUeXBlcyAoc2VlIGFqYXgvanNvbnAuanMgZm9yIGFuIGV4YW1wbGUpXG5cdCAqIDIpIFRoZXNlIGFyZSBjYWxsZWQ6XG5cdCAqICAgIC0gQkVGT1JFIGFza2luZyBmb3IgYSB0cmFuc3BvcnRcblx0ICogICAgLSBBRlRFUiBwYXJhbSBzZXJpYWxpemF0aW9uIChzLmRhdGEgaXMgYSBzdHJpbmcgaWYgcy5wcm9jZXNzRGF0YSBpcyB0cnVlKVxuXHQgKiAzKSBrZXkgaXMgdGhlIGRhdGFUeXBlXG5cdCAqIDQpIHRoZSBjYXRjaGFsbCBzeW1ib2wgXCIqXCIgY2FuIGJlIHVzZWRcblx0ICogNSkgZXhlY3V0aW9uIHdpbGwgc3RhcnQgd2l0aCB0cmFuc3BvcnQgZGF0YVR5cGUgYW5kIFRIRU4gY29udGludWUgZG93biB0byBcIipcIiBpZiBuZWVkZWRcblx0ICovXG5cdHByZWZpbHRlcnMgPSB7fSxcblxuXHQvKiBUcmFuc3BvcnRzIGJpbmRpbmdzXG5cdCAqIDEpIGtleSBpcyB0aGUgZGF0YVR5cGVcblx0ICogMikgdGhlIGNhdGNoYWxsIHN5bWJvbCBcIipcIiBjYW4gYmUgdXNlZFxuXHQgKiAzKSBzZWxlY3Rpb24gd2lsbCBzdGFydCB3aXRoIHRyYW5zcG9ydCBkYXRhVHlwZSBhbmQgVEhFTiBnbyB0byBcIipcIiBpZiBuZWVkZWRcblx0ICovXG5cdHRyYW5zcG9ydHMgPSB7fSxcblxuXHQvLyBBdm9pZCBjb21tZW50LXByb2xvZyBjaGFyIHNlcXVlbmNlICgjMTAwOTgpOyBtdXN0IGFwcGVhc2UgbGludCBhbmQgZXZhZGUgY29tcHJlc3Npb25cblx0YWxsVHlwZXMgPSBcIiovXCIuY29uY2F0KCBcIipcIiApLFxuXG5cdC8vIEFuY2hvciB0YWcgZm9yIHBhcnNpbmcgdGhlIGRvY3VtZW50IG9yaWdpblxuXHRvcmlnaW5BbmNob3IgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCBcImFcIiApO1xuXHRvcmlnaW5BbmNob3IuaHJlZiA9IGxvY2F0aW9uLmhyZWY7XG5cbi8vIEJhc2UgXCJjb25zdHJ1Y3RvclwiIGZvciBqUXVlcnkuYWpheFByZWZpbHRlciBhbmQgalF1ZXJ5LmFqYXhUcmFuc3BvcnRcbmZ1bmN0aW9uIGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggc3RydWN0dXJlICkge1xuXG5cdC8vIGRhdGFUeXBlRXhwcmVzc2lvbiBpcyBvcHRpb25hbCBhbmQgZGVmYXVsdHMgdG8gXCIqXCJcblx0cmV0dXJuIGZ1bmN0aW9uKCBkYXRhVHlwZUV4cHJlc3Npb24sIGZ1bmMgKSB7XG5cblx0XHRpZiAoIHR5cGVvZiBkYXRhVHlwZUV4cHJlc3Npb24gIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0XHRmdW5jID0gZGF0YVR5cGVFeHByZXNzaW9uO1xuXHRcdFx0ZGF0YVR5cGVFeHByZXNzaW9uID0gXCIqXCI7XG5cdFx0fVxuXG5cdFx0dmFyIGRhdGFUeXBlLFxuXHRcdFx0aSA9IDAsXG5cdFx0XHRkYXRhVHlwZXMgPSBkYXRhVHlwZUV4cHJlc3Npb24udG9Mb3dlckNhc2UoKS5tYXRjaCggcm5vdGh0bWx3aGl0ZSApIHx8IFtdO1xuXG5cdFx0aWYgKCBpc0Z1bmN0aW9uKCBmdW5jICkgKSB7XG5cblx0XHRcdC8vIEZvciBlYWNoIGRhdGFUeXBlIGluIHRoZSBkYXRhVHlwZUV4cHJlc3Npb25cblx0XHRcdHdoaWxlICggKCBkYXRhVHlwZSA9IGRhdGFUeXBlc1sgaSsrIF0gKSApIHtcblxuXHRcdFx0XHQvLyBQcmVwZW5kIGlmIHJlcXVlc3RlZFxuXHRcdFx0XHRpZiAoIGRhdGFUeXBlWyAwIF0gPT09IFwiK1wiICkge1xuXHRcdFx0XHRcdGRhdGFUeXBlID0gZGF0YVR5cGUuc2xpY2UoIDEgKSB8fCBcIipcIjtcblx0XHRcdFx0XHQoIHN0cnVjdHVyZVsgZGF0YVR5cGUgXSA9IHN0cnVjdHVyZVsgZGF0YVR5cGUgXSB8fCBbXSApLnVuc2hpZnQoIGZ1bmMgKTtcblxuXHRcdFx0XHQvLyBPdGhlcndpc2UgYXBwZW5kXG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0KCBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gPSBzdHJ1Y3R1cmVbIGRhdGFUeXBlIF0gfHwgW10gKS5wdXNoKCBmdW5jICk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH07XG59XG5cbi8vIEJhc2UgaW5zcGVjdGlvbiBmdW5jdGlvbiBmb3IgcHJlZmlsdGVycyBhbmQgdHJhbnNwb3J0c1xuZnVuY3Rpb24gaW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHN0cnVjdHVyZSwgb3B0aW9ucywgb3JpZ2luYWxPcHRpb25zLCBqcVhIUiApIHtcblxuXHR2YXIgaW5zcGVjdGVkID0ge30sXG5cdFx0c2Vla2luZ1RyYW5zcG9ydCA9ICggc3RydWN0dXJlID09PSB0cmFuc3BvcnRzICk7XG5cblx0ZnVuY3Rpb24gaW5zcGVjdCggZGF0YVR5cGUgKSB7XG5cdFx0dmFyIHNlbGVjdGVkO1xuXHRcdGluc3BlY3RlZFsgZGF0YVR5cGUgXSA9IHRydWU7XG5cdFx0alF1ZXJ5LmVhY2goIHN0cnVjdHVyZVsgZGF0YVR5cGUgXSB8fCBbXSwgZnVuY3Rpb24oIF8sIHByZWZpbHRlck9yRmFjdG9yeSApIHtcblx0XHRcdHZhciBkYXRhVHlwZU9yVHJhbnNwb3J0ID0gcHJlZmlsdGVyT3JGYWN0b3J5KCBvcHRpb25zLCBvcmlnaW5hbE9wdGlvbnMsIGpxWEhSICk7XG5cdFx0XHRpZiAoIHR5cGVvZiBkYXRhVHlwZU9yVHJhbnNwb3J0ID09PSBcInN0cmluZ1wiICYmXG5cdFx0XHRcdCFzZWVraW5nVHJhbnNwb3J0ICYmICFpbnNwZWN0ZWRbIGRhdGFUeXBlT3JUcmFuc3BvcnQgXSApIHtcblxuXHRcdFx0XHRvcHRpb25zLmRhdGFUeXBlcy51bnNoaWZ0KCBkYXRhVHlwZU9yVHJhbnNwb3J0ICk7XG5cdFx0XHRcdGluc3BlY3QoIGRhdGFUeXBlT3JUcmFuc3BvcnQgKTtcblx0XHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdFx0fSBlbHNlIGlmICggc2Vla2luZ1RyYW5zcG9ydCApIHtcblx0XHRcdFx0cmV0dXJuICEoIHNlbGVjdGVkID0gZGF0YVR5cGVPclRyYW5zcG9ydCApO1xuXHRcdFx0fVxuXHRcdH0gKTtcblx0XHRyZXR1cm4gc2VsZWN0ZWQ7XG5cdH1cblxuXHRyZXR1cm4gaW5zcGVjdCggb3B0aW9ucy5kYXRhVHlwZXNbIDAgXSApIHx8ICFpbnNwZWN0ZWRbIFwiKlwiIF0gJiYgaW5zcGVjdCggXCIqXCIgKTtcbn1cblxuLy8gQSBzcGVjaWFsIGV4dGVuZCBmb3IgYWpheCBvcHRpb25zXG4vLyB0aGF0IHRha2VzIFwiZmxhdFwiIG9wdGlvbnMgKG5vdCB0byBiZSBkZWVwIGV4dGVuZGVkKVxuLy8gRml4ZXMgIzk4ODdcbmZ1bmN0aW9uIGFqYXhFeHRlbmQoIHRhcmdldCwgc3JjICkge1xuXHR2YXIga2V5LCBkZWVwLFxuXHRcdGZsYXRPcHRpb25zID0galF1ZXJ5LmFqYXhTZXR0aW5ncy5mbGF0T3B0aW9ucyB8fCB7fTtcblxuXHRmb3IgKCBrZXkgaW4gc3JjICkge1xuXHRcdGlmICggc3JjWyBrZXkgXSAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0KCBmbGF0T3B0aW9uc1sga2V5IF0gPyB0YXJnZXQgOiAoIGRlZXAgfHwgKCBkZWVwID0ge30gKSApIClbIGtleSBdID0gc3JjWyBrZXkgXTtcblx0XHR9XG5cdH1cblx0aWYgKCBkZWVwICkge1xuXHRcdGpRdWVyeS5leHRlbmQoIHRydWUsIHRhcmdldCwgZGVlcCApO1xuXHR9XG5cblx0cmV0dXJuIHRhcmdldDtcbn1cblxuLyogSGFuZGxlcyByZXNwb25zZXMgdG8gYW4gYWpheCByZXF1ZXN0OlxuICogLSBmaW5kcyB0aGUgcmlnaHQgZGF0YVR5cGUgKG1lZGlhdGVzIGJldHdlZW4gY29udGVudC10eXBlIGFuZCBleHBlY3RlZCBkYXRhVHlwZSlcbiAqIC0gcmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyByZXNwb25zZVxuICovXG5mdW5jdGlvbiBhamF4SGFuZGxlUmVzcG9uc2VzKCBzLCBqcVhIUiwgcmVzcG9uc2VzICkge1xuXG5cdHZhciBjdCwgdHlwZSwgZmluYWxEYXRhVHlwZSwgZmlyc3REYXRhVHlwZSxcblx0XHRjb250ZW50cyA9IHMuY29udGVudHMsXG5cdFx0ZGF0YVR5cGVzID0gcy5kYXRhVHlwZXM7XG5cblx0Ly8gUmVtb3ZlIGF1dG8gZGF0YVR5cGUgYW5kIGdldCBjb250ZW50LXR5cGUgaW4gdGhlIHByb2Nlc3Ncblx0d2hpbGUgKCBkYXRhVHlwZXNbIDAgXSA9PT0gXCIqXCIgKSB7XG5cdFx0ZGF0YVR5cGVzLnNoaWZ0KCk7XG5cdFx0aWYgKCBjdCA9PT0gdW5kZWZpbmVkICkge1xuXHRcdFx0Y3QgPSBzLm1pbWVUeXBlIHx8IGpxWEhSLmdldFJlc3BvbnNlSGVhZGVyKCBcIkNvbnRlbnQtVHlwZVwiICk7XG5cdFx0fVxuXHR9XG5cblx0Ly8gQ2hlY2sgaWYgd2UncmUgZGVhbGluZyB3aXRoIGEga25vd24gY29udGVudC10eXBlXG5cdGlmICggY3QgKSB7XG5cdFx0Zm9yICggdHlwZSBpbiBjb250ZW50cyApIHtcblx0XHRcdGlmICggY29udGVudHNbIHR5cGUgXSAmJiBjb250ZW50c1sgdHlwZSBdLnRlc3QoIGN0ICkgKSB7XG5cdFx0XHRcdGRhdGFUeXBlcy51bnNoaWZ0KCB0eXBlICk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8vIENoZWNrIHRvIHNlZSBpZiB3ZSBoYXZlIGEgcmVzcG9uc2UgZm9yIHRoZSBleHBlY3RlZCBkYXRhVHlwZVxuXHRpZiAoIGRhdGFUeXBlc1sgMCBdIGluIHJlc3BvbnNlcyApIHtcblx0XHRmaW5hbERhdGFUeXBlID0gZGF0YVR5cGVzWyAwIF07XG5cdH0gZWxzZSB7XG5cblx0XHQvLyBUcnkgY29udmVydGlibGUgZGF0YVR5cGVzXG5cdFx0Zm9yICggdHlwZSBpbiByZXNwb25zZXMgKSB7XG5cdFx0XHRpZiAoICFkYXRhVHlwZXNbIDAgXSB8fCBzLmNvbnZlcnRlcnNbIHR5cGUgKyBcIiBcIiArIGRhdGFUeXBlc1sgMCBdIF0gKSB7XG5cdFx0XHRcdGZpbmFsRGF0YVR5cGUgPSB0eXBlO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdGlmICggIWZpcnN0RGF0YVR5cGUgKSB7XG5cdFx0XHRcdGZpcnN0RGF0YVR5cGUgPSB0eXBlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIE9yIGp1c3QgdXNlIGZpcnN0IG9uZVxuXHRcdGZpbmFsRGF0YVR5cGUgPSBmaW5hbERhdGFUeXBlIHx8IGZpcnN0RGF0YVR5cGU7XG5cdH1cblxuXHQvLyBJZiB3ZSBmb3VuZCBhIGRhdGFUeXBlXG5cdC8vIFdlIGFkZCB0aGUgZGF0YVR5cGUgdG8gdGhlIGxpc3QgaWYgbmVlZGVkXG5cdC8vIGFuZCByZXR1cm4gdGhlIGNvcnJlc3BvbmRpbmcgcmVzcG9uc2Vcblx0aWYgKCBmaW5hbERhdGFUeXBlICkge1xuXHRcdGlmICggZmluYWxEYXRhVHlwZSAhPT0gZGF0YVR5cGVzWyAwIF0gKSB7XG5cdFx0XHRkYXRhVHlwZXMudW5zaGlmdCggZmluYWxEYXRhVHlwZSApO1xuXHRcdH1cblx0XHRyZXR1cm4gcmVzcG9uc2VzWyBmaW5hbERhdGFUeXBlIF07XG5cdH1cbn1cblxuLyogQ2hhaW4gY29udmVyc2lvbnMgZ2l2ZW4gdGhlIHJlcXVlc3QgYW5kIHRoZSBvcmlnaW5hbCByZXNwb25zZVxuICogQWxzbyBzZXRzIHRoZSByZXNwb25zZVhYWCBmaWVsZHMgb24gdGhlIGpxWEhSIGluc3RhbmNlXG4gKi9cbmZ1bmN0aW9uIGFqYXhDb252ZXJ0KCBzLCByZXNwb25zZSwganFYSFIsIGlzU3VjY2VzcyApIHtcblx0dmFyIGNvbnYyLCBjdXJyZW50LCBjb252LCB0bXAsIHByZXYsXG5cdFx0Y29udmVydGVycyA9IHt9LFxuXG5cdFx0Ly8gV29yayB3aXRoIGEgY29weSBvZiBkYXRhVHlwZXMgaW4gY2FzZSB3ZSBuZWVkIHRvIG1vZGlmeSBpdCBmb3IgY29udmVyc2lvblxuXHRcdGRhdGFUeXBlcyA9IHMuZGF0YVR5cGVzLnNsaWNlKCk7XG5cblx0Ly8gQ3JlYXRlIGNvbnZlcnRlcnMgbWFwIHdpdGggbG93ZXJjYXNlZCBrZXlzXG5cdGlmICggZGF0YVR5cGVzWyAxIF0gKSB7XG5cdFx0Zm9yICggY29udiBpbiBzLmNvbnZlcnRlcnMgKSB7XG5cdFx0XHRjb252ZXJ0ZXJzWyBjb252LnRvTG93ZXJDYXNlKCkgXSA9IHMuY29udmVydGVyc1sgY29udiBdO1xuXHRcdH1cblx0fVxuXG5cdGN1cnJlbnQgPSBkYXRhVHlwZXMuc2hpZnQoKTtcblxuXHQvLyBDb252ZXJ0IHRvIGVhY2ggc2VxdWVudGlhbCBkYXRhVHlwZVxuXHR3aGlsZSAoIGN1cnJlbnQgKSB7XG5cblx0XHRpZiAoIHMucmVzcG9uc2VGaWVsZHNbIGN1cnJlbnQgXSApIHtcblx0XHRcdGpxWEhSWyBzLnJlc3BvbnNlRmllbGRzWyBjdXJyZW50IF0gXSA9IHJlc3BvbnNlO1xuXHRcdH1cblxuXHRcdC8vIEFwcGx5IHRoZSBkYXRhRmlsdGVyIGlmIHByb3ZpZGVkXG5cdFx0aWYgKCAhcHJldiAmJiBpc1N1Y2Nlc3MgJiYgcy5kYXRhRmlsdGVyICkge1xuXHRcdFx0cmVzcG9uc2UgPSBzLmRhdGFGaWx0ZXIoIHJlc3BvbnNlLCBzLmRhdGFUeXBlICk7XG5cdFx0fVxuXG5cdFx0cHJldiA9IGN1cnJlbnQ7XG5cdFx0Y3VycmVudCA9IGRhdGFUeXBlcy5zaGlmdCgpO1xuXG5cdFx0aWYgKCBjdXJyZW50ICkge1xuXG5cdFx0XHQvLyBUaGVyZSdzIG9ubHkgd29yayB0byBkbyBpZiBjdXJyZW50IGRhdGFUeXBlIGlzIG5vbi1hdXRvXG5cdFx0XHRpZiAoIGN1cnJlbnQgPT09IFwiKlwiICkge1xuXG5cdFx0XHRcdGN1cnJlbnQgPSBwcmV2O1xuXG5cdFx0XHQvLyBDb252ZXJ0IHJlc3BvbnNlIGlmIHByZXYgZGF0YVR5cGUgaXMgbm9uLWF1dG8gYW5kIGRpZmZlcnMgZnJvbSBjdXJyZW50XG5cdFx0XHR9IGVsc2UgaWYgKCBwcmV2ICE9PSBcIipcIiAmJiBwcmV2ICE9PSBjdXJyZW50ICkge1xuXG5cdFx0XHRcdC8vIFNlZWsgYSBkaXJlY3QgY29udmVydGVyXG5cdFx0XHRcdGNvbnYgPSBjb252ZXJ0ZXJzWyBwcmV2ICsgXCIgXCIgKyBjdXJyZW50IF0gfHwgY29udmVydGVyc1sgXCIqIFwiICsgY3VycmVudCBdO1xuXG5cdFx0XHRcdC8vIElmIG5vbmUgZm91bmQsIHNlZWsgYSBwYWlyXG5cdFx0XHRcdGlmICggIWNvbnYgKSB7XG5cdFx0XHRcdFx0Zm9yICggY29udjIgaW4gY29udmVydGVycyApIHtcblxuXHRcdFx0XHRcdFx0Ly8gSWYgY29udjIgb3V0cHV0cyBjdXJyZW50XG5cdFx0XHRcdFx0XHR0bXAgPSBjb252Mi5zcGxpdCggXCIgXCIgKTtcblx0XHRcdFx0XHRcdGlmICggdG1wWyAxIF0gPT09IGN1cnJlbnQgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gSWYgcHJldiBjYW4gYmUgY29udmVydGVkIHRvIGFjY2VwdGVkIGlucHV0XG5cdFx0XHRcdFx0XHRcdGNvbnYgPSBjb252ZXJ0ZXJzWyBwcmV2ICsgXCIgXCIgKyB0bXBbIDAgXSBdIHx8XG5cdFx0XHRcdFx0XHRcdFx0Y29udmVydGVyc1sgXCIqIFwiICsgdG1wWyAwIF0gXTtcblx0XHRcdFx0XHRcdFx0aWYgKCBjb252ICkge1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gQ29uZGVuc2UgZXF1aXZhbGVuY2UgY29udmVydGVyc1xuXHRcdFx0XHRcdFx0XHRcdGlmICggY29udiA9PT0gdHJ1ZSApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbnYgPSBjb252ZXJ0ZXJzWyBjb252MiBdO1xuXG5cdFx0XHRcdFx0XHRcdFx0Ly8gT3RoZXJ3aXNlLCBpbnNlcnQgdGhlIGludGVybWVkaWF0ZSBkYXRhVHlwZVxuXHRcdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIGNvbnZlcnRlcnNbIGNvbnYyIF0gIT09IHRydWUgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjdXJyZW50ID0gdG1wWyAwIF07XG5cdFx0XHRcdFx0XHRcdFx0XHRkYXRhVHlwZXMudW5zaGlmdCggdG1wWyAxIF0gKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBBcHBseSBjb252ZXJ0ZXIgKGlmIG5vdCBhbiBlcXVpdmFsZW5jZSlcblx0XHRcdFx0aWYgKCBjb252ICE9PSB0cnVlICkge1xuXG5cdFx0XHRcdFx0Ly8gVW5sZXNzIGVycm9ycyBhcmUgYWxsb3dlZCB0byBidWJibGUsIGNhdGNoIGFuZCByZXR1cm4gdGhlbVxuXHRcdFx0XHRcdGlmICggY29udiAmJiBzLnRocm93cyApIHtcblx0XHRcdFx0XHRcdHJlc3BvbnNlID0gY29udiggcmVzcG9uc2UgKTtcblx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0cmVzcG9uc2UgPSBjb252KCByZXNwb25zZSApO1xuXHRcdFx0XHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cdFx0XHRcdFx0XHRcdHJldHVybiB7XG5cdFx0XHRcdFx0XHRcdFx0c3RhdGU6IFwicGFyc2VyZXJyb3JcIixcblx0XHRcdFx0XHRcdFx0XHRlcnJvcjogY29udiA/IGUgOiBcIk5vIGNvbnZlcnNpb24gZnJvbSBcIiArIHByZXYgKyBcIiB0byBcIiArIGN1cnJlbnRcblx0XHRcdFx0XHRcdFx0fTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRyZXR1cm4geyBzdGF0ZTogXCJzdWNjZXNzXCIsIGRhdGE6IHJlc3BvbnNlIH07XG59XG5cbmpRdWVyeS5leHRlbmQoIHtcblxuXHQvLyBDb3VudGVyIGZvciBob2xkaW5nIHRoZSBudW1iZXIgb2YgYWN0aXZlIHF1ZXJpZXNcblx0YWN0aXZlOiAwLFxuXG5cdC8vIExhc3QtTW9kaWZpZWQgaGVhZGVyIGNhY2hlIGZvciBuZXh0IHJlcXVlc3Rcblx0bGFzdE1vZGlmaWVkOiB7fSxcblx0ZXRhZzoge30sXG5cblx0YWpheFNldHRpbmdzOiB7XG5cdFx0dXJsOiBsb2NhdGlvbi5ocmVmLFxuXHRcdHR5cGU6IFwiR0VUXCIsXG5cdFx0aXNMb2NhbDogcmxvY2FsUHJvdG9jb2wudGVzdCggbG9jYXRpb24ucHJvdG9jb2wgKSxcblx0XHRnbG9iYWw6IHRydWUsXG5cdFx0cHJvY2Vzc0RhdGE6IHRydWUsXG5cdFx0YXN5bmM6IHRydWUsXG5cdFx0Y29udGVudFR5cGU6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkOyBjaGFyc2V0PVVURi04XCIsXG5cblx0XHQvKlxuXHRcdHRpbWVvdXQ6IDAsXG5cdFx0ZGF0YTogbnVsbCxcblx0XHRkYXRhVHlwZTogbnVsbCxcblx0XHR1c2VybmFtZTogbnVsbCxcblx0XHRwYXNzd29yZDogbnVsbCxcblx0XHRjYWNoZTogbnVsbCxcblx0XHR0aHJvd3M6IGZhbHNlLFxuXHRcdHRyYWRpdGlvbmFsOiBmYWxzZSxcblx0XHRoZWFkZXJzOiB7fSxcblx0XHQqL1xuXG5cdFx0YWNjZXB0czoge1xuXHRcdFx0XCIqXCI6IGFsbFR5cGVzLFxuXHRcdFx0dGV4dDogXCJ0ZXh0L3BsYWluXCIsXG5cdFx0XHRodG1sOiBcInRleHQvaHRtbFwiLFxuXHRcdFx0eG1sOiBcImFwcGxpY2F0aW9uL3htbCwgdGV4dC94bWxcIixcblx0XHRcdGpzb246IFwiYXBwbGljYXRpb24vanNvbiwgdGV4dC9qYXZhc2NyaXB0XCJcblx0XHR9LFxuXG5cdFx0Y29udGVudHM6IHtcblx0XHRcdHhtbDogL1xcYnhtbFxcYi8sXG5cdFx0XHRodG1sOiAvXFxiaHRtbC8sXG5cdFx0XHRqc29uOiAvXFxianNvblxcYi9cblx0XHR9LFxuXG5cdFx0cmVzcG9uc2VGaWVsZHM6IHtcblx0XHRcdHhtbDogXCJyZXNwb25zZVhNTFwiLFxuXHRcdFx0dGV4dDogXCJyZXNwb25zZVRleHRcIixcblx0XHRcdGpzb246IFwicmVzcG9uc2VKU09OXCJcblx0XHR9LFxuXG5cdFx0Ly8gRGF0YSBjb252ZXJ0ZXJzXG5cdFx0Ly8gS2V5cyBzZXBhcmF0ZSBzb3VyY2UgKG9yIGNhdGNoYWxsIFwiKlwiKSBhbmQgZGVzdGluYXRpb24gdHlwZXMgd2l0aCBhIHNpbmdsZSBzcGFjZVxuXHRcdGNvbnZlcnRlcnM6IHtcblxuXHRcdFx0Ly8gQ29udmVydCBhbnl0aGluZyB0byB0ZXh0XG5cdFx0XHRcIiogdGV4dFwiOiBTdHJpbmcsXG5cblx0XHRcdC8vIFRleHQgdG8gaHRtbCAodHJ1ZSA9IG5vIHRyYW5zZm9ybWF0aW9uKVxuXHRcdFx0XCJ0ZXh0IGh0bWxcIjogdHJ1ZSxcblxuXHRcdFx0Ly8gRXZhbHVhdGUgdGV4dCBhcyBhIGpzb24gZXhwcmVzc2lvblxuXHRcdFx0XCJ0ZXh0IGpzb25cIjogSlNPTi5wYXJzZSxcblxuXHRcdFx0Ly8gUGFyc2UgdGV4dCBhcyB4bWxcblx0XHRcdFwidGV4dCB4bWxcIjogalF1ZXJ5LnBhcnNlWE1MXG5cdFx0fSxcblxuXHRcdC8vIEZvciBvcHRpb25zIHRoYXQgc2hvdWxkbid0IGJlIGRlZXAgZXh0ZW5kZWQ6XG5cdFx0Ly8geW91IGNhbiBhZGQgeW91ciBvd24gY3VzdG9tIG9wdGlvbnMgaGVyZSBpZlxuXHRcdC8vIGFuZCB3aGVuIHlvdSBjcmVhdGUgb25lIHRoYXQgc2hvdWxkbid0IGJlXG5cdFx0Ly8gZGVlcCBleHRlbmRlZCAoc2VlIGFqYXhFeHRlbmQpXG5cdFx0ZmxhdE9wdGlvbnM6IHtcblx0XHRcdHVybDogdHJ1ZSxcblx0XHRcdGNvbnRleHQ6IHRydWVcblx0XHR9XG5cdH0sXG5cblx0Ly8gQ3JlYXRlcyBhIGZ1bGwgZmxlZGdlZCBzZXR0aW5ncyBvYmplY3QgaW50byB0YXJnZXRcblx0Ly8gd2l0aCBib3RoIGFqYXhTZXR0aW5ncyBhbmQgc2V0dGluZ3MgZmllbGRzLlxuXHQvLyBJZiB0YXJnZXQgaXMgb21pdHRlZCwgd3JpdGVzIGludG8gYWpheFNldHRpbmdzLlxuXHRhamF4U2V0dXA6IGZ1bmN0aW9uKCB0YXJnZXQsIHNldHRpbmdzICkge1xuXHRcdHJldHVybiBzZXR0aW5ncyA/XG5cblx0XHRcdC8vIEJ1aWxkaW5nIGEgc2V0dGluZ3Mgb2JqZWN0XG5cdFx0XHRhamF4RXh0ZW5kKCBhamF4RXh0ZW5kKCB0YXJnZXQsIGpRdWVyeS5hamF4U2V0dGluZ3MgKSwgc2V0dGluZ3MgKSA6XG5cblx0XHRcdC8vIEV4dGVuZGluZyBhamF4U2V0dGluZ3Ncblx0XHRcdGFqYXhFeHRlbmQoIGpRdWVyeS5hamF4U2V0dGluZ3MsIHRhcmdldCApO1xuXHR9LFxuXG5cdGFqYXhQcmVmaWx0ZXI6IGFkZFRvUHJlZmlsdGVyc09yVHJhbnNwb3J0cyggcHJlZmlsdGVycyApLFxuXHRhamF4VHJhbnNwb3J0OiBhZGRUb1ByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHRyYW5zcG9ydHMgKSxcblxuXHQvLyBNYWluIG1ldGhvZFxuXHRhamF4OiBmdW5jdGlvbiggdXJsLCBvcHRpb25zICkge1xuXG5cdFx0Ly8gSWYgdXJsIGlzIGFuIG9iamVjdCwgc2ltdWxhdGUgcHJlLTEuNSBzaWduYXR1cmVcblx0XHRpZiAoIHR5cGVvZiB1cmwgPT09IFwib2JqZWN0XCIgKSB7XG5cdFx0XHRvcHRpb25zID0gdXJsO1xuXHRcdFx0dXJsID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdC8vIEZvcmNlIG9wdGlvbnMgdG8gYmUgYW4gb2JqZWN0XG5cdFx0b3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cblx0XHR2YXIgdHJhbnNwb3J0LFxuXG5cdFx0XHQvLyBVUkwgd2l0aG91dCBhbnRpLWNhY2hlIHBhcmFtXG5cdFx0XHRjYWNoZVVSTCxcblxuXHRcdFx0Ly8gUmVzcG9uc2UgaGVhZGVyc1xuXHRcdFx0cmVzcG9uc2VIZWFkZXJzU3RyaW5nLFxuXHRcdFx0cmVzcG9uc2VIZWFkZXJzLFxuXG5cdFx0XHQvLyB0aW1lb3V0IGhhbmRsZVxuXHRcdFx0dGltZW91dFRpbWVyLFxuXG5cdFx0XHQvLyBVcmwgY2xlYW51cCB2YXJcblx0XHRcdHVybEFuY2hvcixcblxuXHRcdFx0Ly8gUmVxdWVzdCBzdGF0ZSAoYmVjb21lcyBmYWxzZSB1cG9uIHNlbmQgYW5kIHRydWUgdXBvbiBjb21wbGV0aW9uKVxuXHRcdFx0Y29tcGxldGVkLFxuXG5cdFx0XHQvLyBUbyBrbm93IGlmIGdsb2JhbCBldmVudHMgYXJlIHRvIGJlIGRpc3BhdGNoZWRcblx0XHRcdGZpcmVHbG9iYWxzLFxuXG5cdFx0XHQvLyBMb29wIHZhcmlhYmxlXG5cdFx0XHRpLFxuXG5cdFx0XHQvLyB1bmNhY2hlZCBwYXJ0IG9mIHRoZSB1cmxcblx0XHRcdHVuY2FjaGVkLFxuXG5cdFx0XHQvLyBDcmVhdGUgdGhlIGZpbmFsIG9wdGlvbnMgb2JqZWN0XG5cdFx0XHRzID0galF1ZXJ5LmFqYXhTZXR1cCgge30sIG9wdGlvbnMgKSxcblxuXHRcdFx0Ly8gQ2FsbGJhY2tzIGNvbnRleHRcblx0XHRcdGNhbGxiYWNrQ29udGV4dCA9IHMuY29udGV4dCB8fCBzLFxuXG5cdFx0XHQvLyBDb250ZXh0IGZvciBnbG9iYWwgZXZlbnRzIGlzIGNhbGxiYWNrQ29udGV4dCBpZiBpdCBpcyBhIERPTSBub2RlIG9yIGpRdWVyeSBjb2xsZWN0aW9uXG5cdFx0XHRnbG9iYWxFdmVudENvbnRleHQgPSBzLmNvbnRleHQgJiZcblx0XHRcdFx0KCBjYWxsYmFja0NvbnRleHQubm9kZVR5cGUgfHwgY2FsbGJhY2tDb250ZXh0LmpxdWVyeSApID9cblx0XHRcdFx0XHRqUXVlcnkoIGNhbGxiYWNrQ29udGV4dCApIDpcblx0XHRcdFx0XHRqUXVlcnkuZXZlbnQsXG5cblx0XHRcdC8vIERlZmVycmVkc1xuXHRcdFx0ZGVmZXJyZWQgPSBqUXVlcnkuRGVmZXJyZWQoKSxcblx0XHRcdGNvbXBsZXRlRGVmZXJyZWQgPSBqUXVlcnkuQ2FsbGJhY2tzKCBcIm9uY2UgbWVtb3J5XCIgKSxcblxuXHRcdFx0Ly8gU3RhdHVzLWRlcGVuZGVudCBjYWxsYmFja3Ncblx0XHRcdHN0YXR1c0NvZGUgPSBzLnN0YXR1c0NvZGUgfHwge30sXG5cblx0XHRcdC8vIEhlYWRlcnMgKHRoZXkgYXJlIHNlbnQgYWxsIGF0IG9uY2UpXG5cdFx0XHRyZXF1ZXN0SGVhZGVycyA9IHt9LFxuXHRcdFx0cmVxdWVzdEhlYWRlcnNOYW1lcyA9IHt9LFxuXG5cdFx0XHQvLyBEZWZhdWx0IGFib3J0IG1lc3NhZ2Vcblx0XHRcdHN0ckFib3J0ID0gXCJjYW5jZWxlZFwiLFxuXG5cdFx0XHQvLyBGYWtlIHhoclxuXHRcdFx0anFYSFIgPSB7XG5cdFx0XHRcdHJlYWR5U3RhdGU6IDAsXG5cblx0XHRcdFx0Ly8gQnVpbGRzIGhlYWRlcnMgaGFzaHRhYmxlIGlmIG5lZWRlZFxuXHRcdFx0XHRnZXRSZXNwb25zZUhlYWRlcjogZnVuY3Rpb24oIGtleSApIHtcblx0XHRcdFx0XHR2YXIgbWF0Y2g7XG5cdFx0XHRcdFx0aWYgKCBjb21wbGV0ZWQgKSB7XG5cdFx0XHRcdFx0XHRpZiAoICFyZXNwb25zZUhlYWRlcnMgKSB7XG5cdFx0XHRcdFx0XHRcdHJlc3BvbnNlSGVhZGVycyA9IHt9O1xuXHRcdFx0XHRcdFx0XHR3aGlsZSAoICggbWF0Y2ggPSByaGVhZGVycy5leGVjKCByZXNwb25zZUhlYWRlcnNTdHJpbmcgKSApICkge1xuXHRcdFx0XHRcdFx0XHRcdHJlc3BvbnNlSGVhZGVyc1sgbWF0Y2hbIDEgXS50b0xvd2VyQ2FzZSgpIF0gPSBtYXRjaFsgMiBdO1xuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRtYXRjaCA9IHJlc3BvbnNlSGVhZGVyc1sga2V5LnRvTG93ZXJDYXNlKCkgXTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIG1hdGNoID09IG51bGwgPyBudWxsIDogbWF0Y2g7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gUmF3IHN0cmluZ1xuXHRcdFx0XHRnZXRBbGxSZXNwb25zZUhlYWRlcnM6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdHJldHVybiBjb21wbGV0ZWQgPyByZXNwb25zZUhlYWRlcnNTdHJpbmcgOiBudWxsO1xuXHRcdFx0XHR9LFxuXG5cdFx0XHRcdC8vIENhY2hlcyB0aGUgaGVhZGVyXG5cdFx0XHRcdHNldFJlcXVlc3RIZWFkZXI6IGZ1bmN0aW9uKCBuYW1lLCB2YWx1ZSApIHtcblx0XHRcdFx0XHRpZiAoIGNvbXBsZXRlZCA9PSBudWxsICkge1xuXHRcdFx0XHRcdFx0bmFtZSA9IHJlcXVlc3RIZWFkZXJzTmFtZXNbIG5hbWUudG9Mb3dlckNhc2UoKSBdID1cblx0XHRcdFx0XHRcdFx0cmVxdWVzdEhlYWRlcnNOYW1lc1sgbmFtZS50b0xvd2VyQ2FzZSgpIF0gfHwgbmFtZTtcblx0XHRcdFx0XHRcdHJlcXVlc3RIZWFkZXJzWyBuYW1lIF0gPSB2YWx1ZTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH0sXG5cblx0XHRcdFx0Ly8gT3ZlcnJpZGVzIHJlc3BvbnNlIGNvbnRlbnQtdHlwZSBoZWFkZXJcblx0XHRcdFx0b3ZlcnJpZGVNaW1lVHlwZTogZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0XHRcdFx0aWYgKCBjb21wbGV0ZWQgPT0gbnVsbCApIHtcblx0XHRcdFx0XHRcdHMubWltZVR5cGUgPSB0eXBlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBTdGF0dXMtZGVwZW5kZW50IGNhbGxiYWNrc1xuXHRcdFx0XHRzdGF0dXNDb2RlOiBmdW5jdGlvbiggbWFwICkge1xuXHRcdFx0XHRcdHZhciBjb2RlO1xuXHRcdFx0XHRcdGlmICggbWFwICkge1xuXHRcdFx0XHRcdFx0aWYgKCBjb21wbGV0ZWQgKSB7XG5cblx0XHRcdFx0XHRcdFx0Ly8gRXhlY3V0ZSB0aGUgYXBwcm9wcmlhdGUgY2FsbGJhY2tzXG5cdFx0XHRcdFx0XHRcdGpxWEhSLmFsd2F5cyggbWFwWyBqcVhIUi5zdGF0dXMgXSApO1xuXHRcdFx0XHRcdFx0fSBlbHNlIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBMYXp5LWFkZCB0aGUgbmV3IGNhbGxiYWNrcyBpbiBhIHdheSB0aGF0IHByZXNlcnZlcyBvbGQgb25lc1xuXHRcdFx0XHRcdFx0XHRmb3IgKCBjb2RlIGluIG1hcCApIHtcblx0XHRcdFx0XHRcdFx0XHRzdGF0dXNDb2RlWyBjb2RlIF0gPSBbIHN0YXR1c0NvZGVbIGNvZGUgXSwgbWFwWyBjb2RlIF0gXTtcblx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRyZXR1cm4gdGhpcztcblx0XHRcdFx0fSxcblxuXHRcdFx0XHQvLyBDYW5jZWwgdGhlIHJlcXVlc3Rcblx0XHRcdFx0YWJvcnQ6IGZ1bmN0aW9uKCBzdGF0dXNUZXh0ICkge1xuXHRcdFx0XHRcdHZhciBmaW5hbFRleHQgPSBzdGF0dXNUZXh0IHx8IHN0ckFib3J0O1xuXHRcdFx0XHRcdGlmICggdHJhbnNwb3J0ICkge1xuXHRcdFx0XHRcdFx0dHJhbnNwb3J0LmFib3J0KCBmaW5hbFRleHQgKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0ZG9uZSggMCwgZmluYWxUZXh0ICk7XG5cdFx0XHRcdFx0cmV0dXJuIHRoaXM7XG5cdFx0XHRcdH1cblx0XHRcdH07XG5cblx0XHQvLyBBdHRhY2ggZGVmZXJyZWRzXG5cdFx0ZGVmZXJyZWQucHJvbWlzZSgganFYSFIgKTtcblxuXHRcdC8vIEFkZCBwcm90b2NvbCBpZiBub3QgcHJvdmlkZWQgKHByZWZpbHRlcnMgbWlnaHQgZXhwZWN0IGl0KVxuXHRcdC8vIEhhbmRsZSBmYWxzeSB1cmwgaW4gdGhlIHNldHRpbmdzIG9iamVjdCAoIzEwMDkzOiBjb25zaXN0ZW5jeSB3aXRoIG9sZCBzaWduYXR1cmUpXG5cdFx0Ly8gV2UgYWxzbyB1c2UgdGhlIHVybCBwYXJhbWV0ZXIgaWYgYXZhaWxhYmxlXG5cdFx0cy51cmwgPSAoICggdXJsIHx8IHMudXJsIHx8IGxvY2F0aW9uLmhyZWYgKSArIFwiXCIgKVxuXHRcdFx0LnJlcGxhY2UoIHJwcm90b2NvbCwgbG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKTtcblxuXHRcdC8vIEFsaWFzIG1ldGhvZCBvcHRpb24gdG8gdHlwZSBhcyBwZXIgdGlja2V0ICMxMjAwNFxuXHRcdHMudHlwZSA9IG9wdGlvbnMubWV0aG9kIHx8IG9wdGlvbnMudHlwZSB8fCBzLm1ldGhvZCB8fCBzLnR5cGU7XG5cblx0XHQvLyBFeHRyYWN0IGRhdGFUeXBlcyBsaXN0XG5cdFx0cy5kYXRhVHlwZXMgPSAoIHMuZGF0YVR5cGUgfHwgXCIqXCIgKS50b0xvd2VyQ2FzZSgpLm1hdGNoKCBybm90aHRtbHdoaXRlICkgfHwgWyBcIlwiIF07XG5cblx0XHQvLyBBIGNyb3NzLWRvbWFpbiByZXF1ZXN0IGlzIGluIG9yZGVyIHdoZW4gdGhlIG9yaWdpbiBkb2Vzbid0IG1hdGNoIHRoZSBjdXJyZW50IG9yaWdpbi5cblx0XHRpZiAoIHMuY3Jvc3NEb21haW4gPT0gbnVsbCApIHtcblx0XHRcdHVybEFuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoIFwiYVwiICk7XG5cblx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OCAtIDExLCBFZGdlIDEyIC0gMTVcblx0XHRcdC8vIElFIHRocm93cyBleGNlcHRpb24gb24gYWNjZXNzaW5nIHRoZSBocmVmIHByb3BlcnR5IGlmIHVybCBpcyBtYWxmb3JtZWQsXG5cdFx0XHQvLyBlLmcuIGh0dHA6Ly9leGFtcGxlLmNvbTo4MHgvXG5cdFx0XHR0cnkge1xuXHRcdFx0XHR1cmxBbmNob3IuaHJlZiA9IHMudXJsO1xuXG5cdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OCAtIDExIG9ubHlcblx0XHRcdFx0Ly8gQW5jaG9yJ3MgaG9zdCBwcm9wZXJ0eSBpc24ndCBjb3JyZWN0bHkgc2V0IHdoZW4gcy51cmwgaXMgcmVsYXRpdmVcblx0XHRcdFx0dXJsQW5jaG9yLmhyZWYgPSB1cmxBbmNob3IuaHJlZjtcblx0XHRcdFx0cy5jcm9zc0RvbWFpbiA9IG9yaWdpbkFuY2hvci5wcm90b2NvbCArIFwiLy9cIiArIG9yaWdpbkFuY2hvci5ob3N0ICE9PVxuXHRcdFx0XHRcdHVybEFuY2hvci5wcm90b2NvbCArIFwiLy9cIiArIHVybEFuY2hvci5ob3N0O1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cblx0XHRcdFx0Ly8gSWYgdGhlcmUgaXMgYW4gZXJyb3IgcGFyc2luZyB0aGUgVVJMLCBhc3N1bWUgaXQgaXMgY3Jvc3NEb21haW4sXG5cdFx0XHRcdC8vIGl0IGNhbiBiZSByZWplY3RlZCBieSB0aGUgdHJhbnNwb3J0IGlmIGl0IGlzIGludmFsaWRcblx0XHRcdFx0cy5jcm9zc0RvbWFpbiA9IHRydWU7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ29udmVydCBkYXRhIGlmIG5vdCBhbHJlYWR5IGEgc3RyaW5nXG5cdFx0aWYgKCBzLmRhdGEgJiYgcy5wcm9jZXNzRGF0YSAmJiB0eXBlb2Ygcy5kYXRhICE9PSBcInN0cmluZ1wiICkge1xuXHRcdFx0cy5kYXRhID0galF1ZXJ5LnBhcmFtKCBzLmRhdGEsIHMudHJhZGl0aW9uYWwgKTtcblx0XHR9XG5cblx0XHQvLyBBcHBseSBwcmVmaWx0ZXJzXG5cdFx0aW5zcGVjdFByZWZpbHRlcnNPclRyYW5zcG9ydHMoIHByZWZpbHRlcnMsIHMsIG9wdGlvbnMsIGpxWEhSICk7XG5cblx0XHQvLyBJZiByZXF1ZXN0IHdhcyBhYm9ydGVkIGluc2lkZSBhIHByZWZpbHRlciwgc3RvcCB0aGVyZVxuXHRcdGlmICggY29tcGxldGVkICkge1xuXHRcdFx0cmV0dXJuIGpxWEhSO1xuXHRcdH1cblxuXHRcdC8vIFdlIGNhbiBmaXJlIGdsb2JhbCBldmVudHMgYXMgb2Ygbm93IGlmIGFza2VkIHRvXG5cdFx0Ly8gRG9uJ3QgZmlyZSBldmVudHMgaWYgalF1ZXJ5LmV2ZW50IGlzIHVuZGVmaW5lZCBpbiBhbiBBTUQtdXNhZ2Ugc2NlbmFyaW8gKCMxNTExOClcblx0XHRmaXJlR2xvYmFscyA9IGpRdWVyeS5ldmVudCAmJiBzLmdsb2JhbDtcblxuXHRcdC8vIFdhdGNoIGZvciBhIG5ldyBzZXQgb2YgcmVxdWVzdHNcblx0XHRpZiAoIGZpcmVHbG9iYWxzICYmIGpRdWVyeS5hY3RpdmUrKyA9PT0gMCApIHtcblx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyKCBcImFqYXhTdGFydFwiICk7XG5cdFx0fVxuXG5cdFx0Ly8gVXBwZXJjYXNlIHRoZSB0eXBlXG5cdFx0cy50eXBlID0gcy50eXBlLnRvVXBwZXJDYXNlKCk7XG5cblx0XHQvLyBEZXRlcm1pbmUgaWYgcmVxdWVzdCBoYXMgY29udGVudFxuXHRcdHMuaGFzQ29udGVudCA9ICFybm9Db250ZW50LnRlc3QoIHMudHlwZSApO1xuXG5cdFx0Ly8gU2F2ZSB0aGUgVVJMIGluIGNhc2Ugd2UncmUgdG95aW5nIHdpdGggdGhlIElmLU1vZGlmaWVkLVNpbmNlXG5cdFx0Ly8gYW5kL29yIElmLU5vbmUtTWF0Y2ggaGVhZGVyIGxhdGVyIG9uXG5cdFx0Ly8gUmVtb3ZlIGhhc2ggdG8gc2ltcGxpZnkgdXJsIG1hbmlwdWxhdGlvblxuXHRcdGNhY2hlVVJMID0gcy51cmwucmVwbGFjZSggcmhhc2gsIFwiXCIgKTtcblxuXHRcdC8vIE1vcmUgb3B0aW9ucyBoYW5kbGluZyBmb3IgcmVxdWVzdHMgd2l0aCBubyBjb250ZW50XG5cdFx0aWYgKCAhcy5oYXNDb250ZW50ICkge1xuXG5cdFx0XHQvLyBSZW1lbWJlciB0aGUgaGFzaCBzbyB3ZSBjYW4gcHV0IGl0IGJhY2tcblx0XHRcdHVuY2FjaGVkID0gcy51cmwuc2xpY2UoIGNhY2hlVVJMLmxlbmd0aCApO1xuXG5cdFx0XHQvLyBJZiBkYXRhIGlzIGF2YWlsYWJsZSBhbmQgc2hvdWxkIGJlIHByb2Nlc3NlZCwgYXBwZW5kIGRhdGEgdG8gdXJsXG5cdFx0XHRpZiAoIHMuZGF0YSAmJiAoIHMucHJvY2Vzc0RhdGEgfHwgdHlwZW9mIHMuZGF0YSA9PT0gXCJzdHJpbmdcIiApICkge1xuXHRcdFx0XHRjYWNoZVVSTCArPSAoIHJxdWVyeS50ZXN0KCBjYWNoZVVSTCApID8gXCImXCIgOiBcIj9cIiApICsgcy5kYXRhO1xuXG5cdFx0XHRcdC8vICM5NjgyOiByZW1vdmUgZGF0YSBzbyB0aGF0IGl0J3Mgbm90IHVzZWQgaW4gYW4gZXZlbnR1YWwgcmV0cnlcblx0XHRcdFx0ZGVsZXRlIHMuZGF0YTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQWRkIG9yIHVwZGF0ZSBhbnRpLWNhY2hlIHBhcmFtIGlmIG5lZWRlZFxuXHRcdFx0aWYgKCBzLmNhY2hlID09PSBmYWxzZSApIHtcblx0XHRcdFx0Y2FjaGVVUkwgPSBjYWNoZVVSTC5yZXBsYWNlKCByYW50aUNhY2hlLCBcIiQxXCIgKTtcblx0XHRcdFx0dW5jYWNoZWQgPSAoIHJxdWVyeS50ZXN0KCBjYWNoZVVSTCApID8gXCImXCIgOiBcIj9cIiApICsgXCJfPVwiICsgKCBub25jZSsrICkgKyB1bmNhY2hlZDtcblx0XHRcdH1cblxuXHRcdFx0Ly8gUHV0IGhhc2ggYW5kIGFudGktY2FjaGUgb24gdGhlIFVSTCB0aGF0IHdpbGwgYmUgcmVxdWVzdGVkIChnaC0xNzMyKVxuXHRcdFx0cy51cmwgPSBjYWNoZVVSTCArIHVuY2FjaGVkO1xuXG5cdFx0Ly8gQ2hhbmdlICclMjAnIHRvICcrJyBpZiB0aGlzIGlzIGVuY29kZWQgZm9ybSBib2R5IGNvbnRlbnQgKGdoLTI2NTgpXG5cdFx0fSBlbHNlIGlmICggcy5kYXRhICYmIHMucHJvY2Vzc0RhdGEgJiZcblx0XHRcdCggcy5jb250ZW50VHlwZSB8fCBcIlwiICkuaW5kZXhPZiggXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIiApID09PSAwICkge1xuXHRcdFx0cy5kYXRhID0gcy5kYXRhLnJlcGxhY2UoIHIyMCwgXCIrXCIgKTtcblx0XHR9XG5cblx0XHQvLyBTZXQgdGhlIElmLU1vZGlmaWVkLVNpbmNlIGFuZC9vciBJZi1Ob25lLU1hdGNoIGhlYWRlciwgaWYgaW4gaWZNb2RpZmllZCBtb2RlLlxuXHRcdGlmICggcy5pZk1vZGlmaWVkICkge1xuXHRcdFx0aWYgKCBqUXVlcnkubGFzdE1vZGlmaWVkWyBjYWNoZVVSTCBdICkge1xuXHRcdFx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKCBcIklmLU1vZGlmaWVkLVNpbmNlXCIsIGpRdWVyeS5sYXN0TW9kaWZpZWRbIGNhY2hlVVJMIF0gKTtcblx0XHRcdH1cblx0XHRcdGlmICggalF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gKSB7XG5cdFx0XHRcdGpxWEhSLnNldFJlcXVlc3RIZWFkZXIoIFwiSWYtTm9uZS1NYXRjaFwiLCBqUXVlcnkuZXRhZ1sgY2FjaGVVUkwgXSApO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgY29ycmVjdCBoZWFkZXIsIGlmIGRhdGEgaXMgYmVpbmcgc2VudFxuXHRcdGlmICggcy5kYXRhICYmIHMuaGFzQ29udGVudCAmJiBzLmNvbnRlbnRUeXBlICE9PSBmYWxzZSB8fCBvcHRpb25zLmNvbnRlbnRUeXBlICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggXCJDb250ZW50LVR5cGVcIiwgcy5jb250ZW50VHlwZSApO1xuXHRcdH1cblxuXHRcdC8vIFNldCB0aGUgQWNjZXB0cyBoZWFkZXIgZm9yIHRoZSBzZXJ2ZXIsIGRlcGVuZGluZyBvbiB0aGUgZGF0YVR5cGVcblx0XHRqcVhIUi5zZXRSZXF1ZXN0SGVhZGVyKFxuXHRcdFx0XCJBY2NlcHRcIixcblx0XHRcdHMuZGF0YVR5cGVzWyAwIF0gJiYgcy5hY2NlcHRzWyBzLmRhdGFUeXBlc1sgMCBdIF0gP1xuXHRcdFx0XHRzLmFjY2VwdHNbIHMuZGF0YVR5cGVzWyAwIF0gXSArXG5cdFx0XHRcdFx0KCBzLmRhdGFUeXBlc1sgMCBdICE9PSBcIipcIiA/IFwiLCBcIiArIGFsbFR5cGVzICsgXCI7IHE9MC4wMVwiIDogXCJcIiApIDpcblx0XHRcdFx0cy5hY2NlcHRzWyBcIipcIiBdXG5cdFx0KTtcblxuXHRcdC8vIENoZWNrIGZvciBoZWFkZXJzIG9wdGlvblxuXHRcdGZvciAoIGkgaW4gcy5oZWFkZXJzICkge1xuXHRcdFx0anFYSFIuc2V0UmVxdWVzdEhlYWRlciggaSwgcy5oZWFkZXJzWyBpIF0gKTtcblx0XHR9XG5cblx0XHQvLyBBbGxvdyBjdXN0b20gaGVhZGVycy9taW1ldHlwZXMgYW5kIGVhcmx5IGFib3J0XG5cdFx0aWYgKCBzLmJlZm9yZVNlbmQgJiZcblx0XHRcdCggcy5iZWZvcmVTZW5kLmNhbGwoIGNhbGxiYWNrQ29udGV4dCwganFYSFIsIHMgKSA9PT0gZmFsc2UgfHwgY29tcGxldGVkICkgKSB7XG5cblx0XHRcdC8vIEFib3J0IGlmIG5vdCBkb25lIGFscmVhZHkgYW5kIHJldHVyblxuXHRcdFx0cmV0dXJuIGpxWEhSLmFib3J0KCk7XG5cdFx0fVxuXG5cdFx0Ly8gQWJvcnRpbmcgaXMgbm8gbG9uZ2VyIGEgY2FuY2VsbGF0aW9uXG5cdFx0c3RyQWJvcnQgPSBcImFib3J0XCI7XG5cblx0XHQvLyBJbnN0YWxsIGNhbGxiYWNrcyBvbiBkZWZlcnJlZHNcblx0XHRjb21wbGV0ZURlZmVycmVkLmFkZCggcy5jb21wbGV0ZSApO1xuXHRcdGpxWEhSLmRvbmUoIHMuc3VjY2VzcyApO1xuXHRcdGpxWEhSLmZhaWwoIHMuZXJyb3IgKTtcblxuXHRcdC8vIEdldCB0cmFuc3BvcnRcblx0XHR0cmFuc3BvcnQgPSBpbnNwZWN0UHJlZmlsdGVyc09yVHJhbnNwb3J0cyggdHJhbnNwb3J0cywgcywgb3B0aW9ucywganFYSFIgKTtcblxuXHRcdC8vIElmIG5vIHRyYW5zcG9ydCwgd2UgYXV0by1hYm9ydFxuXHRcdGlmICggIXRyYW5zcG9ydCApIHtcblx0XHRcdGRvbmUoIC0xLCBcIk5vIFRyYW5zcG9ydFwiICk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSAxO1xuXG5cdFx0XHQvLyBTZW5kIGdsb2JhbCBldmVudFxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIFwiYWpheFNlbmRcIiwgWyBqcVhIUiwgcyBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIElmIHJlcXVlc3Qgd2FzIGFib3J0ZWQgaW5zaWRlIGFqYXhTZW5kLCBzdG9wIHRoZXJlXG5cdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0cmV0dXJuIGpxWEhSO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBUaW1lb3V0XG5cdFx0XHRpZiAoIHMuYXN5bmMgJiYgcy50aW1lb3V0ID4gMCApIHtcblx0XHRcdFx0dGltZW91dFRpbWVyID0gd2luZG93LnNldFRpbWVvdXQoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdGpxWEhSLmFib3J0KCBcInRpbWVvdXRcIiApO1xuXHRcdFx0XHR9LCBzLnRpbWVvdXQgKTtcblx0XHRcdH1cblxuXHRcdFx0dHJ5IHtcblx0XHRcdFx0Y29tcGxldGVkID0gZmFsc2U7XG5cdFx0XHRcdHRyYW5zcG9ydC5zZW5kKCByZXF1ZXN0SGVhZGVycywgZG9uZSApO1xuXHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cblx0XHRcdFx0Ly8gUmV0aHJvdyBwb3N0LWNvbXBsZXRpb24gZXhjZXB0aW9uc1xuXHRcdFx0XHRpZiAoIGNvbXBsZXRlZCApIHtcblx0XHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gUHJvcGFnYXRlIG90aGVycyBhcyByZXN1bHRzXG5cdFx0XHRcdGRvbmUoIC0xLCBlICk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Ly8gQ2FsbGJhY2sgZm9yIHdoZW4gZXZlcnl0aGluZyBpcyBkb25lXG5cdFx0ZnVuY3Rpb24gZG9uZSggc3RhdHVzLCBuYXRpdmVTdGF0dXNUZXh0LCByZXNwb25zZXMsIGhlYWRlcnMgKSB7XG5cdFx0XHR2YXIgaXNTdWNjZXNzLCBzdWNjZXNzLCBlcnJvciwgcmVzcG9uc2UsIG1vZGlmaWVkLFxuXHRcdFx0XHRzdGF0dXNUZXh0ID0gbmF0aXZlU3RhdHVzVGV4dDtcblxuXHRcdFx0Ly8gSWdub3JlIHJlcGVhdCBpbnZvY2F0aW9uc1xuXHRcdFx0aWYgKCBjb21wbGV0ZWQgKSB7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29tcGxldGVkID0gdHJ1ZTtcblxuXHRcdFx0Ly8gQ2xlYXIgdGltZW91dCBpZiBpdCBleGlzdHNcblx0XHRcdGlmICggdGltZW91dFRpbWVyICkge1xuXHRcdFx0XHR3aW5kb3cuY2xlYXJUaW1lb3V0KCB0aW1lb3V0VGltZXIgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gRGVyZWZlcmVuY2UgdHJhbnNwb3J0IGZvciBlYXJseSBnYXJiYWdlIGNvbGxlY3Rpb25cblx0XHRcdC8vIChubyBtYXR0ZXIgaG93IGxvbmcgdGhlIGpxWEhSIG9iamVjdCB3aWxsIGJlIHVzZWQpXG5cdFx0XHR0cmFuc3BvcnQgPSB1bmRlZmluZWQ7XG5cblx0XHRcdC8vIENhY2hlIHJlc3BvbnNlIGhlYWRlcnNcblx0XHRcdHJlc3BvbnNlSGVhZGVyc1N0cmluZyA9IGhlYWRlcnMgfHwgXCJcIjtcblxuXHRcdFx0Ly8gU2V0IHJlYWR5U3RhdGVcblx0XHRcdGpxWEhSLnJlYWR5U3RhdGUgPSBzdGF0dXMgPiAwID8gNCA6IDA7XG5cblx0XHRcdC8vIERldGVybWluZSBpZiBzdWNjZXNzZnVsXG5cdFx0XHRpc1N1Y2Nlc3MgPSBzdGF0dXMgPj0gMjAwICYmIHN0YXR1cyA8IDMwMCB8fCBzdGF0dXMgPT09IDMwNDtcblxuXHRcdFx0Ly8gR2V0IHJlc3BvbnNlIGRhdGFcblx0XHRcdGlmICggcmVzcG9uc2VzICkge1xuXHRcdFx0XHRyZXNwb25zZSA9IGFqYXhIYW5kbGVSZXNwb25zZXMoIHMsIGpxWEhSLCByZXNwb25zZXMgKTtcblx0XHRcdH1cblxuXHRcdFx0Ly8gQ29udmVydCBubyBtYXR0ZXIgd2hhdCAodGhhdCB3YXkgcmVzcG9uc2VYWFggZmllbGRzIGFyZSBhbHdheXMgc2V0KVxuXHRcdFx0cmVzcG9uc2UgPSBhamF4Q29udmVydCggcywgcmVzcG9uc2UsIGpxWEhSLCBpc1N1Y2Nlc3MgKTtcblxuXHRcdFx0Ly8gSWYgc3VjY2Vzc2Z1bCwgaGFuZGxlIHR5cGUgY2hhaW5pbmdcblx0XHRcdGlmICggaXNTdWNjZXNzICkge1xuXG5cdFx0XHRcdC8vIFNldCB0aGUgSWYtTW9kaWZpZWQtU2luY2UgYW5kL29yIElmLU5vbmUtTWF0Y2ggaGVhZGVyLCBpZiBpbiBpZk1vZGlmaWVkIG1vZGUuXG5cdFx0XHRcdGlmICggcy5pZk1vZGlmaWVkICkge1xuXHRcdFx0XHRcdG1vZGlmaWVkID0ganFYSFIuZ2V0UmVzcG9uc2VIZWFkZXIoIFwiTGFzdC1Nb2RpZmllZFwiICk7XG5cdFx0XHRcdFx0aWYgKCBtb2RpZmllZCApIHtcblx0XHRcdFx0XHRcdGpRdWVyeS5sYXN0TW9kaWZpZWRbIGNhY2hlVVJMIF0gPSBtb2RpZmllZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0bW9kaWZpZWQgPSBqcVhIUi5nZXRSZXNwb25zZUhlYWRlciggXCJldGFnXCIgKTtcblx0XHRcdFx0XHRpZiAoIG1vZGlmaWVkICkge1xuXHRcdFx0XHRcdFx0alF1ZXJ5LmV0YWdbIGNhY2hlVVJMIF0gPSBtb2RpZmllZDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBpZiBubyBjb250ZW50XG5cdFx0XHRcdGlmICggc3RhdHVzID09PSAyMDQgfHwgcy50eXBlID09PSBcIkhFQURcIiApIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gXCJub2NvbnRlbnRcIjtcblxuXHRcdFx0XHQvLyBpZiBub3QgbW9kaWZpZWRcblx0XHRcdFx0fSBlbHNlIGlmICggc3RhdHVzID09PSAzMDQgKSB7XG5cdFx0XHRcdFx0c3RhdHVzVGV4dCA9IFwibm90bW9kaWZpZWRcIjtcblxuXHRcdFx0XHQvLyBJZiB3ZSBoYXZlIGRhdGEsIGxldCdzIGNvbnZlcnQgaXRcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRzdGF0dXNUZXh0ID0gcmVzcG9uc2Uuc3RhdGU7XG5cdFx0XHRcdFx0c3VjY2VzcyA9IHJlc3BvbnNlLmRhdGE7XG5cdFx0XHRcdFx0ZXJyb3IgPSByZXNwb25zZS5lcnJvcjtcblx0XHRcdFx0XHRpc1N1Y2Nlc3MgPSAhZXJyb3I7XG5cdFx0XHRcdH1cblx0XHRcdH0gZWxzZSB7XG5cblx0XHRcdFx0Ly8gRXh0cmFjdCBlcnJvciBmcm9tIHN0YXR1c1RleHQgYW5kIG5vcm1hbGl6ZSBmb3Igbm9uLWFib3J0c1xuXHRcdFx0XHRlcnJvciA9IHN0YXR1c1RleHQ7XG5cdFx0XHRcdGlmICggc3RhdHVzIHx8ICFzdGF0dXNUZXh0ICkge1xuXHRcdFx0XHRcdHN0YXR1c1RleHQgPSBcImVycm9yXCI7XG5cdFx0XHRcdFx0aWYgKCBzdGF0dXMgPCAwICkge1xuXHRcdFx0XHRcdFx0c3RhdHVzID0gMDtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblx0XHRcdH1cblxuXHRcdFx0Ly8gU2V0IGRhdGEgZm9yIHRoZSBmYWtlIHhociBvYmplY3Rcblx0XHRcdGpxWEhSLnN0YXR1cyA9IHN0YXR1cztcblx0XHRcdGpxWEhSLnN0YXR1c1RleHQgPSAoIG5hdGl2ZVN0YXR1c1RleHQgfHwgc3RhdHVzVGV4dCApICsgXCJcIjtcblxuXHRcdFx0Ly8gU3VjY2Vzcy9FcnJvclxuXHRcdFx0aWYgKCBpc1N1Y2Nlc3MgKSB7XG5cdFx0XHRcdGRlZmVycmVkLnJlc29sdmVXaXRoKCBjYWxsYmFja0NvbnRleHQsIFsgc3VjY2Vzcywgc3RhdHVzVGV4dCwganFYSFIgXSApO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZGVmZXJyZWQucmVqZWN0V2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIGpxWEhSLCBzdGF0dXNUZXh0LCBlcnJvciBdICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIFN0YXR1cy1kZXBlbmRlbnQgY2FsbGJhY2tzXG5cdFx0XHRqcVhIUi5zdGF0dXNDb2RlKCBzdGF0dXNDb2RlICk7XG5cdFx0XHRzdGF0dXNDb2RlID0gdW5kZWZpbmVkO1xuXG5cdFx0XHRpZiAoIGZpcmVHbG9iYWxzICkge1xuXHRcdFx0XHRnbG9iYWxFdmVudENvbnRleHQudHJpZ2dlciggaXNTdWNjZXNzID8gXCJhamF4U3VjY2Vzc1wiIDogXCJhamF4RXJyb3JcIixcblx0XHRcdFx0XHRbIGpxWEhSLCBzLCBpc1N1Y2Nlc3MgPyBzdWNjZXNzIDogZXJyb3IgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBDb21wbGV0ZVxuXHRcdFx0Y29tcGxldGVEZWZlcnJlZC5maXJlV2l0aCggY2FsbGJhY2tDb250ZXh0LCBbIGpxWEhSLCBzdGF0dXNUZXh0IF0gKTtcblxuXHRcdFx0aWYgKCBmaXJlR2xvYmFscyApIHtcblx0XHRcdFx0Z2xvYmFsRXZlbnRDb250ZXh0LnRyaWdnZXIoIFwiYWpheENvbXBsZXRlXCIsIFsganFYSFIsIHMgXSApO1xuXG5cdFx0XHRcdC8vIEhhbmRsZSB0aGUgZ2xvYmFsIEFKQVggY291bnRlclxuXHRcdFx0XHRpZiAoICEoIC0talF1ZXJ5LmFjdGl2ZSApICkge1xuXHRcdFx0XHRcdGpRdWVyeS5ldmVudC50cmlnZ2VyKCBcImFqYXhTdG9wXCIgKTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiBqcVhIUjtcblx0fSxcblxuXHRnZXRKU09OOiBmdW5jdGlvbiggdXJsLCBkYXRhLCBjYWxsYmFjayApIHtcblx0XHRyZXR1cm4galF1ZXJ5LmdldCggdXJsLCBkYXRhLCBjYWxsYmFjaywgXCJqc29uXCIgKTtcblx0fSxcblxuXHRnZXRTY3JpcHQ6IGZ1bmN0aW9uKCB1cmwsIGNhbGxiYWNrICkge1xuXHRcdHJldHVybiBqUXVlcnkuZ2V0KCB1cmwsIHVuZGVmaW5lZCwgY2FsbGJhY2ssIFwic2NyaXB0XCIgKTtcblx0fVxufSApO1xuXG5qUXVlcnkuZWFjaCggWyBcImdldFwiLCBcInBvc3RcIiBdLCBmdW5jdGlvbiggaSwgbWV0aG9kICkge1xuXHRqUXVlcnlbIG1ldGhvZCBdID0gZnVuY3Rpb24oIHVybCwgZGF0YSwgY2FsbGJhY2ssIHR5cGUgKSB7XG5cblx0XHQvLyBTaGlmdCBhcmd1bWVudHMgaWYgZGF0YSBhcmd1bWVudCB3YXMgb21pdHRlZFxuXHRcdGlmICggaXNGdW5jdGlvbiggZGF0YSApICkge1xuXHRcdFx0dHlwZSA9IHR5cGUgfHwgY2FsbGJhY2s7XG5cdFx0XHRjYWxsYmFjayA9IGRhdGE7XG5cdFx0XHRkYXRhID0gdW5kZWZpbmVkO1xuXHRcdH1cblxuXHRcdC8vIFRoZSB1cmwgY2FuIGJlIGFuIG9wdGlvbnMgb2JqZWN0ICh3aGljaCB0aGVuIG11c3QgaGF2ZSAudXJsKVxuXHRcdHJldHVybiBqUXVlcnkuYWpheCggalF1ZXJ5LmV4dGVuZCgge1xuXHRcdFx0dXJsOiB1cmwsXG5cdFx0XHR0eXBlOiBtZXRob2QsXG5cdFx0XHRkYXRhVHlwZTogdHlwZSxcblx0XHRcdGRhdGE6IGRhdGEsXG5cdFx0XHRzdWNjZXNzOiBjYWxsYmFja1xuXHRcdH0sIGpRdWVyeS5pc1BsYWluT2JqZWN0KCB1cmwgKSAmJiB1cmwgKSApO1xuXHR9O1xufSApO1xuXG5cbmpRdWVyeS5fZXZhbFVybCA9IGZ1bmN0aW9uKCB1cmwgKSB7XG5cdHJldHVybiBqUXVlcnkuYWpheCgge1xuXHRcdHVybDogdXJsLFxuXG5cdFx0Ly8gTWFrZSB0aGlzIGV4cGxpY2l0LCBzaW5jZSB1c2VyIGNhbiBvdmVycmlkZSB0aGlzIHRocm91Z2ggYWpheFNldHVwICgjMTEyNjQpXG5cdFx0dHlwZTogXCJHRVRcIixcblx0XHRkYXRhVHlwZTogXCJzY3JpcHRcIixcblx0XHRjYWNoZTogdHJ1ZSxcblx0XHRhc3luYzogZmFsc2UsXG5cdFx0Z2xvYmFsOiBmYWxzZSxcblx0XHRcInRocm93c1wiOiB0cnVlXG5cdH0gKTtcbn07XG5cblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHR3cmFwQWxsOiBmdW5jdGlvbiggaHRtbCApIHtcblx0XHR2YXIgd3JhcDtcblxuXHRcdGlmICggdGhpc1sgMCBdICkge1xuXHRcdFx0aWYgKCBpc0Z1bmN0aW9uKCBodG1sICkgKSB7XG5cdFx0XHRcdGh0bWwgPSBodG1sLmNhbGwoIHRoaXNbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHQvLyBUaGUgZWxlbWVudHMgdG8gd3JhcCB0aGUgdGFyZ2V0IGFyb3VuZFxuXHRcdFx0d3JhcCA9IGpRdWVyeSggaHRtbCwgdGhpc1sgMCBdLm93bmVyRG9jdW1lbnQgKS5lcSggMCApLmNsb25lKCB0cnVlICk7XG5cblx0XHRcdGlmICggdGhpc1sgMCBdLnBhcmVudE5vZGUgKSB7XG5cdFx0XHRcdHdyYXAuaW5zZXJ0QmVmb3JlKCB0aGlzWyAwIF0gKTtcblx0XHRcdH1cblxuXHRcdFx0d3JhcC5tYXAoIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHR2YXIgZWxlbSA9IHRoaXM7XG5cblx0XHRcdFx0d2hpbGUgKCBlbGVtLmZpcnN0RWxlbWVudENoaWxkICkge1xuXHRcdFx0XHRcdGVsZW0gPSBlbGVtLmZpcnN0RWxlbWVudENoaWxkO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0cmV0dXJuIGVsZW07XG5cdFx0XHR9ICkuYXBwZW5kKCB0aGlzICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXM7XG5cdH0sXG5cblx0d3JhcElubmVyOiBmdW5jdGlvbiggaHRtbCApIHtcblx0XHRpZiAoIGlzRnVuY3Rpb24oIGh0bWwgKSApIHtcblx0XHRcdHJldHVybiB0aGlzLmVhY2goIGZ1bmN0aW9uKCBpICkge1xuXHRcdFx0XHRqUXVlcnkoIHRoaXMgKS53cmFwSW5uZXIoIGh0bWwuY2FsbCggdGhpcywgaSApICk7XG5cdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHR2YXIgc2VsZiA9IGpRdWVyeSggdGhpcyApLFxuXHRcdFx0XHRjb250ZW50cyA9IHNlbGYuY29udGVudHMoKTtcblxuXHRcdFx0aWYgKCBjb250ZW50cy5sZW5ndGggKSB7XG5cdFx0XHRcdGNvbnRlbnRzLndyYXBBbGwoIGh0bWwgKTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0c2VsZi5hcHBlbmQoIGh0bWwgKTtcblx0XHRcdH1cblx0XHR9ICk7XG5cdH0sXG5cblx0d3JhcDogZnVuY3Rpb24oIGh0bWwgKSB7XG5cdFx0dmFyIGh0bWxJc0Z1bmN0aW9uID0gaXNGdW5jdGlvbiggaHRtbCApO1xuXG5cdFx0cmV0dXJuIHRoaXMuZWFjaCggZnVuY3Rpb24oIGkgKSB7XG5cdFx0XHRqUXVlcnkoIHRoaXMgKS53cmFwQWxsKCBodG1sSXNGdW5jdGlvbiA/IGh0bWwuY2FsbCggdGhpcywgaSApIDogaHRtbCApO1xuXHRcdH0gKTtcblx0fSxcblxuXHR1bndyYXA6IGZ1bmN0aW9uKCBzZWxlY3RvciApIHtcblx0XHR0aGlzLnBhcmVudCggc2VsZWN0b3IgKS5ub3QoIFwiYm9keVwiICkuZWFjaCggZnVuY3Rpb24oKSB7XG5cdFx0XHRqUXVlcnkoIHRoaXMgKS5yZXBsYWNlV2l0aCggdGhpcy5jaGlsZE5vZGVzICk7XG5cdFx0fSApO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG59ICk7XG5cblxualF1ZXJ5LmV4cHIucHNldWRvcy5oaWRkZW4gPSBmdW5jdGlvbiggZWxlbSApIHtcblx0cmV0dXJuICFqUXVlcnkuZXhwci5wc2V1ZG9zLnZpc2libGUoIGVsZW0gKTtcbn07XG5qUXVlcnkuZXhwci5wc2V1ZG9zLnZpc2libGUgPSBmdW5jdGlvbiggZWxlbSApIHtcblx0cmV0dXJuICEhKCBlbGVtLm9mZnNldFdpZHRoIHx8IGVsZW0ub2Zmc2V0SGVpZ2h0IHx8IGVsZW0uZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggKTtcbn07XG5cblxuXG5cbmpRdWVyeS5hamF4U2V0dGluZ3MueGhyID0gZnVuY3Rpb24oKSB7XG5cdHRyeSB7XG5cdFx0cmV0dXJuIG5ldyB3aW5kb3cuWE1MSHR0cFJlcXVlc3QoKTtcblx0fSBjYXRjaCAoIGUgKSB7fVxufTtcblxudmFyIHhoclN1Y2Nlc3NTdGF0dXMgPSB7XG5cblx0XHQvLyBGaWxlIHByb3RvY29sIGFsd2F5cyB5aWVsZHMgc3RhdHVzIGNvZGUgMCwgYXNzdW1lIDIwMFxuXHRcdDA6IDIwMCxcblxuXHRcdC8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5cdFx0Ly8gIzE0NTA6IHNvbWV0aW1lcyBJRSByZXR1cm5zIDEyMjMgd2hlbiBpdCBzaG91bGQgYmUgMjA0XG5cdFx0MTIyMzogMjA0XG5cdH0sXG5cdHhoclN1cHBvcnRlZCA9IGpRdWVyeS5hamF4U2V0dGluZ3MueGhyKCk7XG5cbnN1cHBvcnQuY29ycyA9ICEheGhyU3VwcG9ydGVkICYmICggXCJ3aXRoQ3JlZGVudGlhbHNcIiBpbiB4aHJTdXBwb3J0ZWQgKTtcbnN1cHBvcnQuYWpheCA9IHhoclN1cHBvcnRlZCA9ICEheGhyU3VwcG9ydGVkO1xuXG5qUXVlcnkuYWpheFRyYW5zcG9ydCggZnVuY3Rpb24oIG9wdGlvbnMgKSB7XG5cdHZhciBjYWxsYmFjaywgZXJyb3JDYWxsYmFjaztcblxuXHQvLyBDcm9zcyBkb21haW4gb25seSBhbGxvd2VkIGlmIHN1cHBvcnRlZCB0aHJvdWdoIFhNTEh0dHBSZXF1ZXN0XG5cdGlmICggc3VwcG9ydC5jb3JzIHx8IHhoclN1cHBvcnRlZCAmJiAhb3B0aW9ucy5jcm9zc0RvbWFpbiApIHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0c2VuZDogZnVuY3Rpb24oIGhlYWRlcnMsIGNvbXBsZXRlICkge1xuXHRcdFx0XHR2YXIgaSxcblx0XHRcdFx0XHR4aHIgPSBvcHRpb25zLnhocigpO1xuXG5cdFx0XHRcdHhoci5vcGVuKFxuXHRcdFx0XHRcdG9wdGlvbnMudHlwZSxcblx0XHRcdFx0XHRvcHRpb25zLnVybCxcblx0XHRcdFx0XHRvcHRpb25zLmFzeW5jLFxuXHRcdFx0XHRcdG9wdGlvbnMudXNlcm5hbWUsXG5cdFx0XHRcdFx0b3B0aW9ucy5wYXNzd29yZFxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdC8vIEFwcGx5IGN1c3RvbSBmaWVsZHMgaWYgcHJvdmlkZWRcblx0XHRcdFx0aWYgKCBvcHRpb25zLnhockZpZWxkcyApIHtcblx0XHRcdFx0XHRmb3IgKCBpIGluIG9wdGlvbnMueGhyRmllbGRzICkge1xuXHRcdFx0XHRcdFx0eGhyWyBpIF0gPSBvcHRpb25zLnhockZpZWxkc1sgaSBdO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIE92ZXJyaWRlIG1pbWUgdHlwZSBpZiBuZWVkZWRcblx0XHRcdFx0aWYgKCBvcHRpb25zLm1pbWVUeXBlICYmIHhoci5vdmVycmlkZU1pbWVUeXBlICkge1xuXHRcdFx0XHRcdHhoci5vdmVycmlkZU1pbWVUeXBlKCBvcHRpb25zLm1pbWVUeXBlICk7XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBYLVJlcXVlc3RlZC1XaXRoIGhlYWRlclxuXHRcdFx0XHQvLyBGb3IgY3Jvc3MtZG9tYWluIHJlcXVlc3RzLCBzZWVpbmcgYXMgY29uZGl0aW9ucyBmb3IgYSBwcmVmbGlnaHQgYXJlXG5cdFx0XHRcdC8vIGFraW4gdG8gYSBqaWdzYXcgcHV6emxlLCB3ZSBzaW1wbHkgbmV2ZXIgc2V0IGl0IHRvIGJlIHN1cmUuXG5cdFx0XHRcdC8vIChpdCBjYW4gYWx3YXlzIGJlIHNldCBvbiBhIHBlci1yZXF1ZXN0IGJhc2lzIG9yIGV2ZW4gdXNpbmcgYWpheFNldHVwKVxuXHRcdFx0XHQvLyBGb3Igc2FtZS1kb21haW4gcmVxdWVzdHMsIHdvbid0IGNoYW5nZSBoZWFkZXIgaWYgYWxyZWFkeSBwcm92aWRlZC5cblx0XHRcdFx0aWYgKCAhb3B0aW9ucy5jcm9zc0RvbWFpbiAmJiAhaGVhZGVyc1sgXCJYLVJlcXVlc3RlZC1XaXRoXCIgXSApIHtcblx0XHRcdFx0XHRoZWFkZXJzWyBcIlgtUmVxdWVzdGVkLVdpdGhcIiBdID0gXCJYTUxIdHRwUmVxdWVzdFwiO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gU2V0IGhlYWRlcnNcblx0XHRcdFx0Zm9yICggaSBpbiBoZWFkZXJzICkge1xuXHRcdFx0XHRcdHhoci5zZXRSZXF1ZXN0SGVhZGVyKCBpLCBoZWFkZXJzWyBpIF0gKTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdC8vIENhbGxiYWNrXG5cdFx0XHRcdGNhbGxiYWNrID0gZnVuY3Rpb24oIHR5cGUgKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRcdFx0aWYgKCBjYWxsYmFjayApIHtcblx0XHRcdFx0XHRcdFx0Y2FsbGJhY2sgPSBlcnJvckNhbGxiYWNrID0geGhyLm9ubG9hZCA9XG5cdFx0XHRcdFx0XHRcdFx0eGhyLm9uZXJyb3IgPSB4aHIub25hYm9ydCA9IHhoci5vbnRpbWVvdXQgPVxuXHRcdFx0XHRcdFx0XHRcdFx0eGhyLm9ucmVhZHlzdGF0ZWNoYW5nZSA9IG51bGw7XG5cblx0XHRcdFx0XHRcdFx0aWYgKCB0eXBlID09PSBcImFib3J0XCIgKSB7XG5cdFx0XHRcdFx0XHRcdFx0eGhyLmFib3J0KCk7XG5cdFx0XHRcdFx0XHRcdH0gZWxzZSBpZiAoIHR5cGUgPT09IFwiZXJyb3JcIiApIHtcblxuXHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5cdFx0XHRcdFx0XHRcdFx0Ly8gT24gYSBtYW51YWwgbmF0aXZlIGFib3J0LCBJRTkgdGhyb3dzXG5cdFx0XHRcdFx0XHRcdFx0Ly8gZXJyb3JzIG9uIGFueSBwcm9wZXJ0eSBhY2Nlc3MgdGhhdCBpcyBub3QgcmVhZHlTdGF0ZVxuXHRcdFx0XHRcdFx0XHRcdGlmICggdHlwZW9mIHhoci5zdGF0dXMgIT09IFwibnVtYmVyXCIgKSB7XG5cdFx0XHRcdFx0XHRcdFx0XHRjb21wbGV0ZSggMCwgXCJlcnJvclwiICk7XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGNvbXBsZXRlKFxuXG5cdFx0XHRcdFx0XHRcdFx0XHRcdC8vIEZpbGU6IHByb3RvY29sIGFsd2F5cyB5aWVsZHMgc3RhdHVzIDA7IHNlZSAjODYwNSwgIzE0MjA3XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHhoci5zdGF0dXMsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHhoci5zdGF0dXNUZXh0XG5cdFx0XHRcdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRjb21wbGV0ZShcblx0XHRcdFx0XHRcdFx0XHRcdHhoclN1Y2Nlc3NTdGF0dXNbIHhoci5zdGF0dXMgXSB8fCB4aHIuc3RhdHVzLFxuXHRcdFx0XHRcdFx0XHRcdFx0eGhyLnN0YXR1c1RleHQsXG5cblx0XHRcdFx0XHRcdFx0XHRcdC8vIFN1cHBvcnQ6IElFIDw9OSBvbmx5XG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBJRTkgaGFzIG5vIFhIUjIgYnV0IHRocm93cyBvbiBiaW5hcnkgKHRyYWMtMTE0MjYpXG5cdFx0XHRcdFx0XHRcdFx0XHQvLyBGb3IgWEhSMiBub24tdGV4dCwgbGV0IHRoZSBjYWxsZXIgaGFuZGxlIGl0IChnaC0yNDk4KVxuXHRcdFx0XHRcdFx0XHRcdFx0KCB4aHIucmVzcG9uc2VUeXBlIHx8IFwidGV4dFwiICkgIT09IFwidGV4dFwiICB8fFxuXHRcdFx0XHRcdFx0XHRcdFx0dHlwZW9mIHhoci5yZXNwb25zZVRleHQgIT09IFwic3RyaW5nXCIgP1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IGJpbmFyeTogeGhyLnJlc3BvbnNlIH0gOlxuXHRcdFx0XHRcdFx0XHRcdFx0XHR7IHRleHQ6IHhoci5yZXNwb25zZVRleHQgfSxcblx0XHRcdFx0XHRcdFx0XHRcdHhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKVxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9O1xuXG5cdFx0XHRcdC8vIExpc3RlbiB0byBldmVudHNcblx0XHRcdFx0eGhyLm9ubG9hZCA9IGNhbGxiYWNrKCk7XG5cdFx0XHRcdGVycm9yQ2FsbGJhY2sgPSB4aHIub25lcnJvciA9IHhoci5vbnRpbWVvdXQgPSBjYWxsYmFjayggXCJlcnJvclwiICk7XG5cblx0XHRcdFx0Ly8gU3VwcG9ydDogSUUgOSBvbmx5XG5cdFx0XHRcdC8vIFVzZSBvbnJlYWR5c3RhdGVjaGFuZ2UgdG8gcmVwbGFjZSBvbmFib3J0XG5cdFx0XHRcdC8vIHRvIGhhbmRsZSB1bmNhdWdodCBhYm9ydHNcblx0XHRcdFx0aWYgKCB4aHIub25hYm9ydCAhPT0gdW5kZWZpbmVkICkge1xuXHRcdFx0XHRcdHhoci5vbmFib3J0ID0gZXJyb3JDYWxsYmFjaztcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR4aHIub25yZWFkeXN0YXRlY2hhbmdlID0gZnVuY3Rpb24oKSB7XG5cblx0XHRcdFx0XHRcdC8vIENoZWNrIHJlYWR5U3RhdGUgYmVmb3JlIHRpbWVvdXQgYXMgaXQgY2hhbmdlc1xuXHRcdFx0XHRcdFx0aWYgKCB4aHIucmVhZHlTdGF0ZSA9PT0gNCApIHtcblxuXHRcdFx0XHRcdFx0XHQvLyBBbGxvdyBvbmVycm9yIHRvIGJlIGNhbGxlZCBmaXJzdCxcblx0XHRcdFx0XHRcdFx0Ly8gYnV0IHRoYXQgd2lsbCBub3QgaGFuZGxlIGEgbmF0aXZlIGFib3J0XG5cdFx0XHRcdFx0XHRcdC8vIEFsc28sIHNhdmUgZXJyb3JDYWxsYmFjayB0byBhIHZhcmlhYmxlXG5cdFx0XHRcdFx0XHRcdC8vIGFzIHhoci5vbmVycm9yIGNhbm5vdCBiZSBhY2Nlc3NlZFxuXHRcdFx0XHRcdFx0XHR3aW5kb3cuc2V0VGltZW91dCggZnVuY3Rpb24oKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKCBjYWxsYmFjayApIHtcblx0XHRcdFx0XHRcdFx0XHRcdGVycm9yQ2FsbGJhY2soKTtcblx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdH0gKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Ly8gQ3JlYXRlIHRoZSBhYm9ydCBjYWxsYmFja1xuXHRcdFx0XHRjYWxsYmFjayA9IGNhbGxiYWNrKCBcImFib3J0XCIgKTtcblxuXHRcdFx0XHR0cnkge1xuXG5cdFx0XHRcdFx0Ly8gRG8gc2VuZCB0aGUgcmVxdWVzdCAodGhpcyBtYXkgcmFpc2UgYW4gZXhjZXB0aW9uKVxuXHRcdFx0XHRcdHhoci5zZW5kKCBvcHRpb25zLmhhc0NvbnRlbnQgJiYgb3B0aW9ucy5kYXRhIHx8IG51bGwgKTtcblx0XHRcdFx0fSBjYXRjaCAoIGUgKSB7XG5cblx0XHRcdFx0XHQvLyAjMTQ2ODM6IE9ubHkgcmV0aHJvdyBpZiB0aGlzIGhhc24ndCBiZWVuIG5vdGlmaWVkIGFzIGFuIGVycm9yIHlldFxuXHRcdFx0XHRcdGlmICggY2FsbGJhY2sgKSB7XG5cdFx0XHRcdFx0XHR0aHJvdyBlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSxcblxuXHRcdFx0YWJvcnQ6IGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRpZiAoIGNhbGxiYWNrICkge1xuXHRcdFx0XHRcdGNhbGxiYWNrKCk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9O1xuXHR9XG59ICk7XG5cblxuXG5cbi8vIFByZXZlbnQgYXV0by1leGVjdXRpb24gb2Ygc2NyaXB0cyB3aGVuIG5vIGV4cGxpY2l0IGRhdGFUeXBlIHdhcyBwcm92aWRlZCAoU2VlIGdoLTI0MzIpXG5qUXVlcnkuYWpheFByZWZpbHRlciggZnVuY3Rpb24oIHMgKSB7XG5cdGlmICggcy5jcm9zc0RvbWFpbiApIHtcblx0XHRzLmNvbnRlbnRzLnNjcmlwdCA9IGZhbHNlO1xuXHR9XG59ICk7XG5cbi8vIEluc3RhbGwgc2NyaXB0IGRhdGFUeXBlXG5qUXVlcnkuYWpheFNldHVwKCB7XG5cdGFjY2VwdHM6IHtcblx0XHRzY3JpcHQ6IFwidGV4dC9qYXZhc2NyaXB0LCBhcHBsaWNhdGlvbi9qYXZhc2NyaXB0LCBcIiArXG5cdFx0XHRcImFwcGxpY2F0aW9uL2VjbWFzY3JpcHQsIGFwcGxpY2F0aW9uL3gtZWNtYXNjcmlwdFwiXG5cdH0sXG5cdGNvbnRlbnRzOiB7XG5cdFx0c2NyaXB0OiAvXFxiKD86amF2YXxlY21hKXNjcmlwdFxcYi9cblx0fSxcblx0Y29udmVydGVyczoge1xuXHRcdFwidGV4dCBzY3JpcHRcIjogZnVuY3Rpb24oIHRleHQgKSB7XG5cdFx0XHRqUXVlcnkuZ2xvYmFsRXZhbCggdGV4dCApO1xuXHRcdFx0cmV0dXJuIHRleHQ7XG5cdFx0fVxuXHR9XG59ICk7XG5cbi8vIEhhbmRsZSBjYWNoZSdzIHNwZWNpYWwgY2FzZSBhbmQgY3Jvc3NEb21haW5cbmpRdWVyeS5hamF4UHJlZmlsdGVyKCBcInNjcmlwdFwiLCBmdW5jdGlvbiggcyApIHtcblx0aWYgKCBzLmNhY2hlID09PSB1bmRlZmluZWQgKSB7XG5cdFx0cy5jYWNoZSA9IGZhbHNlO1xuXHR9XG5cdGlmICggcy5jcm9zc0RvbWFpbiApIHtcblx0XHRzLnR5cGUgPSBcIkdFVFwiO1xuXHR9XG59ICk7XG5cbi8vIEJpbmQgc2NyaXB0IHRhZyBoYWNrIHRyYW5zcG9ydFxualF1ZXJ5LmFqYXhUcmFuc3BvcnQoIFwic2NyaXB0XCIsIGZ1bmN0aW9uKCBzICkge1xuXG5cdC8vIFRoaXMgdHJhbnNwb3J0IG9ubHkgZGVhbHMgd2l0aCBjcm9zcyBkb21haW4gcmVxdWVzdHNcblx0aWYgKCBzLmNyb3NzRG9tYWluICkge1xuXHRcdHZhciBzY3JpcHQsIGNhbGxiYWNrO1xuXHRcdHJldHVybiB7XG5cdFx0XHRzZW5kOiBmdW5jdGlvbiggXywgY29tcGxldGUgKSB7XG5cdFx0XHRcdHNjcmlwdCA9IGpRdWVyeSggXCI8c2NyaXB0PlwiICkucHJvcCgge1xuXHRcdFx0XHRcdGNoYXJzZXQ6IHMuc2NyaXB0Q2hhcnNldCxcblx0XHRcdFx0XHRzcmM6IHMudXJsXG5cdFx0XHRcdH0gKS5vbihcblx0XHRcdFx0XHRcImxvYWQgZXJyb3JcIixcblx0XHRcdFx0XHRjYWxsYmFjayA9IGZ1bmN0aW9uKCBldnQgKSB7XG5cdFx0XHRcdFx0XHRzY3JpcHQucmVtb3ZlKCk7XG5cdFx0XHRcdFx0XHRjYWxsYmFjayA9IG51bGw7XG5cdFx0XHRcdFx0XHRpZiAoIGV2dCApIHtcblx0XHRcdFx0XHRcdFx0Y29tcGxldGUoIGV2dC50eXBlID09PSBcImVycm9yXCIgPyA0MDQgOiAyMDAsIGV2dC50eXBlICk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdC8vIFVzZSBuYXRpdmUgRE9NIG1hbmlwdWxhdGlvbiB0byBhdm9pZCBvdXIgZG9tTWFuaXAgQUpBWCB0cmlja2VyeVxuXHRcdFx0XHRkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKCBzY3JpcHRbIDAgXSApO1xuXHRcdFx0fSxcblx0XHRcdGFib3J0OiBmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYgKCBjYWxsYmFjayApIHtcblx0XHRcdFx0XHRjYWxsYmFjaygpO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fTtcblx0fVxufSApO1xuXG5cblxuXG52YXIgb2xkQ2FsbGJhY2tzID0gW10sXG5cdHJqc29ucCA9IC8oPSlcXD8oPz0mfCQpfFxcP1xcPy87XG5cbi8vIERlZmF1bHQganNvbnAgc2V0dGluZ3NcbmpRdWVyeS5hamF4U2V0dXAoIHtcblx0anNvbnA6IFwiY2FsbGJhY2tcIixcblx0anNvbnBDYWxsYmFjazogZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGNhbGxiYWNrID0gb2xkQ2FsbGJhY2tzLnBvcCgpIHx8ICggalF1ZXJ5LmV4cGFuZG8gKyBcIl9cIiArICggbm9uY2UrKyApICk7XG5cdFx0dGhpc1sgY2FsbGJhY2sgXSA9IHRydWU7XG5cdFx0cmV0dXJuIGNhbGxiYWNrO1xuXHR9XG59ICk7XG5cbi8vIERldGVjdCwgbm9ybWFsaXplIG9wdGlvbnMgYW5kIGluc3RhbGwgY2FsbGJhY2tzIGZvciBqc29ucCByZXF1ZXN0c1xualF1ZXJ5LmFqYXhQcmVmaWx0ZXIoIFwianNvbiBqc29ucFwiLCBmdW5jdGlvbiggcywgb3JpZ2luYWxTZXR0aW5ncywganFYSFIgKSB7XG5cblx0dmFyIGNhbGxiYWNrTmFtZSwgb3ZlcndyaXR0ZW4sIHJlc3BvbnNlQ29udGFpbmVyLFxuXHRcdGpzb25Qcm9wID0gcy5qc29ucCAhPT0gZmFsc2UgJiYgKCByanNvbnAudGVzdCggcy51cmwgKSA/XG5cdFx0XHRcInVybFwiIDpcblx0XHRcdHR5cGVvZiBzLmRhdGEgPT09IFwic3RyaW5nXCIgJiZcblx0XHRcdFx0KCBzLmNvbnRlbnRUeXBlIHx8IFwiXCIgKVxuXHRcdFx0XHRcdC5pbmRleE9mKCBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiICkgPT09IDAgJiZcblx0XHRcdFx0cmpzb25wLnRlc3QoIHMuZGF0YSApICYmIFwiZGF0YVwiXG5cdFx0KTtcblxuXHQvLyBIYW5kbGUgaWZmIHRoZSBleHBlY3RlZCBkYXRhIHR5cGUgaXMgXCJqc29ucFwiIG9yIHdlIGhhdmUgYSBwYXJhbWV0ZXIgdG8gc2V0XG5cdGlmICgganNvblByb3AgfHwgcy5kYXRhVHlwZXNbIDAgXSA9PT0gXCJqc29ucFwiICkge1xuXG5cdFx0Ly8gR2V0IGNhbGxiYWNrIG5hbWUsIHJlbWVtYmVyaW5nIHByZWV4aXN0aW5nIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBpdFxuXHRcdGNhbGxiYWNrTmFtZSA9IHMuanNvbnBDYWxsYmFjayA9IGlzRnVuY3Rpb24oIHMuanNvbnBDYWxsYmFjayApID9cblx0XHRcdHMuanNvbnBDYWxsYmFjaygpIDpcblx0XHRcdHMuanNvbnBDYWxsYmFjaztcblxuXHRcdC8vIEluc2VydCBjYWxsYmFjayBpbnRvIHVybCBvciBmb3JtIGRhdGFcblx0XHRpZiAoIGpzb25Qcm9wICkge1xuXHRcdFx0c1sganNvblByb3AgXSA9IHNbIGpzb25Qcm9wIF0ucmVwbGFjZSggcmpzb25wLCBcIiQxXCIgKyBjYWxsYmFja05hbWUgKTtcblx0XHR9IGVsc2UgaWYgKCBzLmpzb25wICE9PSBmYWxzZSApIHtcblx0XHRcdHMudXJsICs9ICggcnF1ZXJ5LnRlc3QoIHMudXJsICkgPyBcIiZcIiA6IFwiP1wiICkgKyBzLmpzb25wICsgXCI9XCIgKyBjYWxsYmFja05hbWU7XG5cdFx0fVxuXG5cdFx0Ly8gVXNlIGRhdGEgY29udmVydGVyIHRvIHJldHJpZXZlIGpzb24gYWZ0ZXIgc2NyaXB0IGV4ZWN1dGlvblxuXHRcdHMuY29udmVydGVyc1sgXCJzY3JpcHQganNvblwiIF0gPSBmdW5jdGlvbigpIHtcblx0XHRcdGlmICggIXJlc3BvbnNlQ29udGFpbmVyICkge1xuXHRcdFx0XHRqUXVlcnkuZXJyb3IoIGNhbGxiYWNrTmFtZSArIFwiIHdhcyBub3QgY2FsbGVkXCIgKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiByZXNwb25zZUNvbnRhaW5lclsgMCBdO1xuXHRcdH07XG5cblx0XHQvLyBGb3JjZSBqc29uIGRhdGFUeXBlXG5cdFx0cy5kYXRhVHlwZXNbIDAgXSA9IFwianNvblwiO1xuXG5cdFx0Ly8gSW5zdGFsbCBjYWxsYmFja1xuXHRcdG92ZXJ3cml0dGVuID0gd2luZG93WyBjYWxsYmFja05hbWUgXTtcblx0XHR3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gZnVuY3Rpb24oKSB7XG5cdFx0XHRyZXNwb25zZUNvbnRhaW5lciA9IGFyZ3VtZW50cztcblx0XHR9O1xuXG5cdFx0Ly8gQ2xlYW4tdXAgZnVuY3Rpb24gKGZpcmVzIGFmdGVyIGNvbnZlcnRlcnMpXG5cdFx0anFYSFIuYWx3YXlzKCBmdW5jdGlvbigpIHtcblxuXHRcdFx0Ly8gSWYgcHJldmlvdXMgdmFsdWUgZGlkbid0IGV4aXN0IC0gcmVtb3ZlIGl0XG5cdFx0XHRpZiAoIG92ZXJ3cml0dGVuID09PSB1bmRlZmluZWQgKSB7XG5cdFx0XHRcdGpRdWVyeSggd2luZG93ICkucmVtb3ZlUHJvcCggY2FsbGJhY2tOYW1lICk7XG5cblx0XHRcdC8vIE90aGVyd2lzZSByZXN0b3JlIHByZWV4aXN0aW5nIHZhbHVlXG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR3aW5kb3dbIGNhbGxiYWNrTmFtZSBdID0gb3ZlcndyaXR0ZW47XG5cdFx0XHR9XG5cblx0XHRcdC8vIFNhdmUgYmFjayBhcyBmcmVlXG5cdFx0XHRpZiAoIHNbIGNhbGxiYWNrTmFtZSBdICkge1xuXG5cdFx0XHRcdC8vIE1ha2Ugc3VyZSB0aGF0IHJlLXVzaW5nIHRoZSBvcHRpb25zIGRvZXNuJ3Qgc2NyZXcgdGhpbmdzIGFyb3VuZFxuXHRcdFx0XHRzLmpzb25wQ2FsbGJhY2sgPSBvcmlnaW5hbFNldHRpbmdzLmpzb25wQ2FsbGJhY2s7XG5cblx0XHRcdFx0Ly8gU2F2ZSB0aGUgY2FsbGJhY2sgbmFtZSBmb3IgZnV0dXJlIHVzZVxuXHRcdFx0XHRvbGRDYWxsYmFja3MucHVzaCggY2FsbGJhY2tOYW1lICk7XG5cdFx0XHR9XG5cblx0XHRcdC8vIENhbGwgaWYgaXQgd2FzIGEgZnVuY3Rpb24gYW5kIHdlIGhhdmUgYSByZXNwb25zZVxuXHRcdFx0aWYgKCByZXNwb25zZUNvbnRhaW5lciAmJiBpc0Z1bmN0aW9uKCBvdmVyd3JpdHRlbiApICkge1xuXHRcdFx0XHRvdmVyd3JpdHRlbiggcmVzcG9uc2VDb250YWluZXJbIDAgXSApO1xuXHRcdFx0fVxuXG5cdFx0XHRyZXNwb25zZUNvbnRhaW5lciA9IG92ZXJ3cml0dGVuID0gdW5kZWZpbmVkO1xuXHRcdH0gKTtcblxuXHRcdC8vIERlbGVnYXRlIHRvIHNjcmlwdFxuXHRcdHJldHVybiBcInNjcmlwdFwiO1xuXHR9XG59ICk7XG5cblxuXG5cbi8vIFN1cHBvcnQ6IFNhZmFyaSA4IG9ubHlcbi8vIEluIFNhZmFyaSA4IGRvY3VtZW50cyBjcmVhdGVkIHZpYSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnRcbi8vIGNvbGxhcHNlIHNpYmxpbmcgZm9ybXM6IHRoZSBzZWNvbmQgb25lIGJlY29tZXMgYSBjaGlsZCBvZiB0aGUgZmlyc3Qgb25lLlxuLy8gQmVjYXVzZSBvZiB0aGF0LCB0aGlzIHNlY3VyaXR5IG1lYXN1cmUgaGFzIHRvIGJlIGRpc2FibGVkIGluIFNhZmFyaSA4LlxuLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNzMzN1xuc3VwcG9ydC5jcmVhdGVIVE1MRG9jdW1lbnQgPSAoIGZ1bmN0aW9uKCkge1xuXHR2YXIgYm9keSA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZUhUTUxEb2N1bWVudCggXCJcIiApLmJvZHk7XG5cdGJvZHkuaW5uZXJIVE1MID0gXCI8Zm9ybT48L2Zvcm0+PGZvcm0+PC9mb3JtPlwiO1xuXHRyZXR1cm4gYm9keS5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMjtcbn0gKSgpO1xuXG5cbi8vIEFyZ3VtZW50IFwiZGF0YVwiIHNob3VsZCBiZSBzdHJpbmcgb2YgaHRtbFxuLy8gY29udGV4dCAob3B0aW9uYWwpOiBJZiBzcGVjaWZpZWQsIHRoZSBmcmFnbWVudCB3aWxsIGJlIGNyZWF0ZWQgaW4gdGhpcyBjb250ZXh0LFxuLy8gZGVmYXVsdHMgdG8gZG9jdW1lbnRcbi8vIGtlZXBTY3JpcHRzIChvcHRpb25hbCk6IElmIHRydWUsIHdpbGwgaW5jbHVkZSBzY3JpcHRzIHBhc3NlZCBpbiB0aGUgaHRtbCBzdHJpbmdcbmpRdWVyeS5wYXJzZUhUTUwgPSBmdW5jdGlvbiggZGF0YSwgY29udGV4dCwga2VlcFNjcmlwdHMgKSB7XG5cdGlmICggdHlwZW9mIGRhdGEgIT09IFwic3RyaW5nXCIgKSB7XG5cdFx0cmV0dXJuIFtdO1xuXHR9XG5cdGlmICggdHlwZW9mIGNvbnRleHQgPT09IFwiYm9vbGVhblwiICkge1xuXHRcdGtlZXBTY3JpcHRzID0gY29udGV4dDtcblx0XHRjb250ZXh0ID0gZmFsc2U7XG5cdH1cblxuXHR2YXIgYmFzZSwgcGFyc2VkLCBzY3JpcHRzO1xuXG5cdGlmICggIWNvbnRleHQgKSB7XG5cblx0XHQvLyBTdG9wIHNjcmlwdHMgb3IgaW5saW5lIGV2ZW50IGhhbmRsZXJzIGZyb20gYmVpbmcgZXhlY3V0ZWQgaW1tZWRpYXRlbHlcblx0XHQvLyBieSB1c2luZyBkb2N1bWVudC5pbXBsZW1lbnRhdGlvblxuXHRcdGlmICggc3VwcG9ydC5jcmVhdGVIVE1MRG9jdW1lbnQgKSB7XG5cdFx0XHRjb250ZXh0ID0gZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlSFRNTERvY3VtZW50KCBcIlwiICk7XG5cblx0XHRcdC8vIFNldCB0aGUgYmFzZSBocmVmIGZvciB0aGUgY3JlYXRlZCBkb2N1bWVudFxuXHRcdFx0Ly8gc28gYW55IHBhcnNlZCBlbGVtZW50cyB3aXRoIFVSTHNcblx0XHRcdC8vIGFyZSBiYXNlZCBvbiB0aGUgZG9jdW1lbnQncyBVUkwgKGdoLTI5NjUpXG5cdFx0XHRiYXNlID0gY29udGV4dC5jcmVhdGVFbGVtZW50KCBcImJhc2VcIiApO1xuXHRcdFx0YmFzZS5ocmVmID0gZG9jdW1lbnQubG9jYXRpb24uaHJlZjtcblx0XHRcdGNvbnRleHQuaGVhZC5hcHBlbmRDaGlsZCggYmFzZSApO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRjb250ZXh0ID0gZG9jdW1lbnQ7XG5cdFx0fVxuXHR9XG5cblx0cGFyc2VkID0gcnNpbmdsZVRhZy5leGVjKCBkYXRhICk7XG5cdHNjcmlwdHMgPSAha2VlcFNjcmlwdHMgJiYgW107XG5cblx0Ly8gU2luZ2xlIHRhZ1xuXHRpZiAoIHBhcnNlZCApIHtcblx0XHRyZXR1cm4gWyBjb250ZXh0LmNyZWF0ZUVsZW1lbnQoIHBhcnNlZFsgMSBdICkgXTtcblx0fVxuXG5cdHBhcnNlZCA9IGJ1aWxkRnJhZ21lbnQoIFsgZGF0YSBdLCBjb250ZXh0LCBzY3JpcHRzICk7XG5cblx0aWYgKCBzY3JpcHRzICYmIHNjcmlwdHMubGVuZ3RoICkge1xuXHRcdGpRdWVyeSggc2NyaXB0cyApLnJlbW92ZSgpO1xuXHR9XG5cblx0cmV0dXJuIGpRdWVyeS5tZXJnZSggW10sIHBhcnNlZC5jaGlsZE5vZGVzICk7XG59O1xuXG5cbi8qKlxuICogTG9hZCBhIHVybCBpbnRvIGEgcGFnZVxuICovXG5qUXVlcnkuZm4ubG9hZCA9IGZ1bmN0aW9uKCB1cmwsIHBhcmFtcywgY2FsbGJhY2sgKSB7XG5cdHZhciBzZWxlY3RvciwgdHlwZSwgcmVzcG9uc2UsXG5cdFx0c2VsZiA9IHRoaXMsXG5cdFx0b2ZmID0gdXJsLmluZGV4T2YoIFwiIFwiICk7XG5cblx0aWYgKCBvZmYgPiAtMSApIHtcblx0XHRzZWxlY3RvciA9IHN0cmlwQW5kQ29sbGFwc2UoIHVybC5zbGljZSggb2ZmICkgKTtcblx0XHR1cmwgPSB1cmwuc2xpY2UoIDAsIG9mZiApO1xuXHR9XG5cblx0Ly8gSWYgaXQncyBhIGZ1bmN0aW9uXG5cdGlmICggaXNGdW5jdGlvbiggcGFyYW1zICkgKSB7XG5cblx0XHQvLyBXZSBhc3N1bWUgdGhhdCBpdCdzIHRoZSBjYWxsYmFja1xuXHRcdGNhbGxiYWNrID0gcGFyYW1zO1xuXHRcdHBhcmFtcyA9IHVuZGVmaW5lZDtcblxuXHQvLyBPdGhlcndpc2UsIGJ1aWxkIGEgcGFyYW0gc3RyaW5nXG5cdH0gZWxzZSBpZiAoIHBhcmFtcyAmJiB0eXBlb2YgcGFyYW1zID09PSBcIm9iamVjdFwiICkge1xuXHRcdHR5cGUgPSBcIlBPU1RcIjtcblx0fVxuXG5cdC8vIElmIHdlIGhhdmUgZWxlbWVudHMgdG8gbW9kaWZ5LCBtYWtlIHRoZSByZXF1ZXN0XG5cdGlmICggc2VsZi5sZW5ndGggPiAwICkge1xuXHRcdGpRdWVyeS5hamF4KCB7XG5cdFx0XHR1cmw6IHVybCxcblxuXHRcdFx0Ly8gSWYgXCJ0eXBlXCIgdmFyaWFibGUgaXMgdW5kZWZpbmVkLCB0aGVuIFwiR0VUXCIgbWV0aG9kIHdpbGwgYmUgdXNlZC5cblx0XHRcdC8vIE1ha2UgdmFsdWUgb2YgdGhpcyBmaWVsZCBleHBsaWNpdCBzaW5jZVxuXHRcdFx0Ly8gdXNlciBjYW4gb3ZlcnJpZGUgaXQgdGhyb3VnaCBhamF4U2V0dXAgbWV0aG9kXG5cdFx0XHR0eXBlOiB0eXBlIHx8IFwiR0VUXCIsXG5cdFx0XHRkYXRhVHlwZTogXCJodG1sXCIsXG5cdFx0XHRkYXRhOiBwYXJhbXNcblx0XHR9ICkuZG9uZSggZnVuY3Rpb24oIHJlc3BvbnNlVGV4dCApIHtcblxuXHRcdFx0Ly8gU2F2ZSByZXNwb25zZSBmb3IgdXNlIGluIGNvbXBsZXRlIGNhbGxiYWNrXG5cdFx0XHRyZXNwb25zZSA9IGFyZ3VtZW50cztcblxuXHRcdFx0c2VsZi5odG1sKCBzZWxlY3RvciA/XG5cblx0XHRcdFx0Ly8gSWYgYSBzZWxlY3RvciB3YXMgc3BlY2lmaWVkLCBsb2NhdGUgdGhlIHJpZ2h0IGVsZW1lbnRzIGluIGEgZHVtbXkgZGl2XG5cdFx0XHRcdC8vIEV4Y2x1ZGUgc2NyaXB0cyB0byBhdm9pZCBJRSAnUGVybWlzc2lvbiBEZW5pZWQnIGVycm9yc1xuXHRcdFx0XHRqUXVlcnkoIFwiPGRpdj5cIiApLmFwcGVuZCggalF1ZXJ5LnBhcnNlSFRNTCggcmVzcG9uc2VUZXh0ICkgKS5maW5kKCBzZWxlY3RvciApIDpcblxuXHRcdFx0XHQvLyBPdGhlcndpc2UgdXNlIHRoZSBmdWxsIHJlc3VsdFxuXHRcdFx0XHRyZXNwb25zZVRleHQgKTtcblxuXHRcdC8vIElmIHRoZSByZXF1ZXN0IHN1Y2NlZWRzLCB0aGlzIGZ1bmN0aW9uIGdldHMgXCJkYXRhXCIsIFwic3RhdHVzXCIsIFwianFYSFJcIlxuXHRcdC8vIGJ1dCB0aGV5IGFyZSBpZ25vcmVkIGJlY2F1c2UgcmVzcG9uc2Ugd2FzIHNldCBhYm92ZS5cblx0XHQvLyBJZiBpdCBmYWlscywgdGhpcyBmdW5jdGlvbiBnZXRzIFwianFYSFJcIiwgXCJzdGF0dXNcIiwgXCJlcnJvclwiXG5cdFx0fSApLmFsd2F5cyggY2FsbGJhY2sgJiYgZnVuY3Rpb24oIGpxWEhSLCBzdGF0dXMgKSB7XG5cdFx0XHRzZWxmLmVhY2goIGZ1bmN0aW9uKCkge1xuXHRcdFx0XHRjYWxsYmFjay5hcHBseSggdGhpcywgcmVzcG9uc2UgfHwgWyBqcVhIUi5yZXNwb25zZVRleHQsIHN0YXR1cywganFYSFIgXSApO1xuXHRcdFx0fSApO1xuXHRcdH0gKTtcblx0fVxuXG5cdHJldHVybiB0aGlzO1xufTtcblxuXG5cblxuLy8gQXR0YWNoIGEgYnVuY2ggb2YgZnVuY3Rpb25zIGZvciBoYW5kbGluZyBjb21tb24gQUpBWCBldmVudHNcbmpRdWVyeS5lYWNoKCBbXG5cdFwiYWpheFN0YXJ0XCIsXG5cdFwiYWpheFN0b3BcIixcblx0XCJhamF4Q29tcGxldGVcIixcblx0XCJhamF4RXJyb3JcIixcblx0XCJhamF4U3VjY2Vzc1wiLFxuXHRcImFqYXhTZW5kXCJcbl0sIGZ1bmN0aW9uKCBpLCB0eXBlICkge1xuXHRqUXVlcnkuZm5bIHR5cGUgXSA9IGZ1bmN0aW9uKCBmbiApIHtcblx0XHRyZXR1cm4gdGhpcy5vbiggdHlwZSwgZm4gKTtcblx0fTtcbn0gKTtcblxuXG5cblxualF1ZXJ5LmV4cHIucHNldWRvcy5hbmltYXRlZCA9IGZ1bmN0aW9uKCBlbGVtICkge1xuXHRyZXR1cm4galF1ZXJ5LmdyZXAoIGpRdWVyeS50aW1lcnMsIGZ1bmN0aW9uKCBmbiApIHtcblx0XHRyZXR1cm4gZWxlbSA9PT0gZm4uZWxlbTtcblx0fSApLmxlbmd0aDtcbn07XG5cblxuXG5cbmpRdWVyeS5vZmZzZXQgPSB7XG5cdHNldE9mZnNldDogZnVuY3Rpb24oIGVsZW0sIG9wdGlvbnMsIGkgKSB7XG5cdFx0dmFyIGN1clBvc2l0aW9uLCBjdXJMZWZ0LCBjdXJDU1NUb3AsIGN1clRvcCwgY3VyT2Zmc2V0LCBjdXJDU1NMZWZ0LCBjYWxjdWxhdGVQb3NpdGlvbixcblx0XHRcdHBvc2l0aW9uID0galF1ZXJ5LmNzcyggZWxlbSwgXCJwb3NpdGlvblwiICksXG5cdFx0XHRjdXJFbGVtID0galF1ZXJ5KCBlbGVtICksXG5cdFx0XHRwcm9wcyA9IHt9O1xuXG5cdFx0Ly8gU2V0IHBvc2l0aW9uIGZpcnN0LCBpbi1jYXNlIHRvcC9sZWZ0IGFyZSBzZXQgZXZlbiBvbiBzdGF0aWMgZWxlbVxuXHRcdGlmICggcG9zaXRpb24gPT09IFwic3RhdGljXCIgKSB7XG5cdFx0XHRlbGVtLnN0eWxlLnBvc2l0aW9uID0gXCJyZWxhdGl2ZVwiO1xuXHRcdH1cblxuXHRcdGN1ck9mZnNldCA9IGN1ckVsZW0ub2Zmc2V0KCk7XG5cdFx0Y3VyQ1NTVG9wID0galF1ZXJ5LmNzcyggZWxlbSwgXCJ0b3BcIiApO1xuXHRcdGN1ckNTU0xlZnQgPSBqUXVlcnkuY3NzKCBlbGVtLCBcImxlZnRcIiApO1xuXHRcdGNhbGN1bGF0ZVBvc2l0aW9uID0gKCBwb3NpdGlvbiA9PT0gXCJhYnNvbHV0ZVwiIHx8IHBvc2l0aW9uID09PSBcImZpeGVkXCIgKSAmJlxuXHRcdFx0KCBjdXJDU1NUb3AgKyBjdXJDU1NMZWZ0ICkuaW5kZXhPZiggXCJhdXRvXCIgKSA+IC0xO1xuXG5cdFx0Ly8gTmVlZCB0byBiZSBhYmxlIHRvIGNhbGN1bGF0ZSBwb3NpdGlvbiBpZiBlaXRoZXJcblx0XHQvLyB0b3Agb3IgbGVmdCBpcyBhdXRvIGFuZCBwb3NpdGlvbiBpcyBlaXRoZXIgYWJzb2x1dGUgb3IgZml4ZWRcblx0XHRpZiAoIGNhbGN1bGF0ZVBvc2l0aW9uICkge1xuXHRcdFx0Y3VyUG9zaXRpb24gPSBjdXJFbGVtLnBvc2l0aW9uKCk7XG5cdFx0XHRjdXJUb3AgPSBjdXJQb3NpdGlvbi50b3A7XG5cdFx0XHRjdXJMZWZ0ID0gY3VyUG9zaXRpb24ubGVmdDtcblxuXHRcdH0gZWxzZSB7XG5cdFx0XHRjdXJUb3AgPSBwYXJzZUZsb2F0KCBjdXJDU1NUb3AgKSB8fCAwO1xuXHRcdFx0Y3VyTGVmdCA9IHBhcnNlRmxvYXQoIGN1ckNTU0xlZnQgKSB8fCAwO1xuXHRcdH1cblxuXHRcdGlmICggaXNGdW5jdGlvbiggb3B0aW9ucyApICkge1xuXG5cdFx0XHQvLyBVc2UgalF1ZXJ5LmV4dGVuZCBoZXJlIHRvIGFsbG93IG1vZGlmaWNhdGlvbiBvZiBjb29yZGluYXRlcyBhcmd1bWVudCAoZ2gtMTg0OClcblx0XHRcdG9wdGlvbnMgPSBvcHRpb25zLmNhbGwoIGVsZW0sIGksIGpRdWVyeS5leHRlbmQoIHt9LCBjdXJPZmZzZXQgKSApO1xuXHRcdH1cblxuXHRcdGlmICggb3B0aW9ucy50b3AgIT0gbnVsbCApIHtcblx0XHRcdHByb3BzLnRvcCA9ICggb3B0aW9ucy50b3AgLSBjdXJPZmZzZXQudG9wICkgKyBjdXJUb3A7XG5cdFx0fVxuXHRcdGlmICggb3B0aW9ucy5sZWZ0ICE9IG51bGwgKSB7XG5cdFx0XHRwcm9wcy5sZWZ0ID0gKCBvcHRpb25zLmxlZnQgLSBjdXJPZmZzZXQubGVmdCApICsgY3VyTGVmdDtcblx0XHR9XG5cblx0XHRpZiAoIFwidXNpbmdcIiBpbiBvcHRpb25zICkge1xuXHRcdFx0b3B0aW9ucy51c2luZy5jYWxsKCBlbGVtLCBwcm9wcyApO1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdGN1ckVsZW0uY3NzKCBwcm9wcyApO1xuXHRcdH1cblx0fVxufTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXG5cdC8vIG9mZnNldCgpIHJlbGF0ZXMgYW4gZWxlbWVudCdzIGJvcmRlciBib3ggdG8gdGhlIGRvY3VtZW50IG9yaWdpblxuXHRvZmZzZXQ6IGZ1bmN0aW9uKCBvcHRpb25zICkge1xuXG5cdFx0Ly8gUHJlc2VydmUgY2hhaW5pbmcgZm9yIHNldHRlclxuXHRcdGlmICggYXJndW1lbnRzLmxlbmd0aCApIHtcblx0XHRcdHJldHVybiBvcHRpb25zID09PSB1bmRlZmluZWQgP1xuXHRcdFx0XHR0aGlzIDpcblx0XHRcdFx0dGhpcy5lYWNoKCBmdW5jdGlvbiggaSApIHtcblx0XHRcdFx0XHRqUXVlcnkub2Zmc2V0LnNldE9mZnNldCggdGhpcywgb3B0aW9ucywgaSApO1xuXHRcdFx0XHR9ICk7XG5cdFx0fVxuXG5cdFx0dmFyIHJlY3QsIHdpbixcblx0XHRcdGVsZW0gPSB0aGlzWyAwIF07XG5cblx0XHRpZiAoICFlbGVtICkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdC8vIFJldHVybiB6ZXJvcyBmb3IgZGlzY29ubmVjdGVkIGFuZCBoaWRkZW4gKGRpc3BsYXk6IG5vbmUpIGVsZW1lbnRzIChnaC0yMzEwKVxuXHRcdC8vIFN1cHBvcnQ6IElFIDw9MTEgb25seVxuXHRcdC8vIFJ1bm5pbmcgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IG9uIGFcblx0XHQvLyBkaXNjb25uZWN0ZWQgbm9kZSBpbiBJRSB0aHJvd3MgYW4gZXJyb3Jcblx0XHRpZiAoICFlbGVtLmdldENsaWVudFJlY3RzKCkubGVuZ3RoICkge1xuXHRcdFx0cmV0dXJuIHsgdG9wOiAwLCBsZWZ0OiAwIH07XG5cdFx0fVxuXG5cdFx0Ly8gR2V0IGRvY3VtZW50LXJlbGF0aXZlIHBvc2l0aW9uIGJ5IGFkZGluZyB2aWV3cG9ydCBzY3JvbGwgdG8gdmlld3BvcnQtcmVsYXRpdmUgZ0JDUlxuXHRcdHJlY3QgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXHRcdHdpbiA9IGVsZW0ub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldztcblx0XHRyZXR1cm4ge1xuXHRcdFx0dG9wOiByZWN0LnRvcCArIHdpbi5wYWdlWU9mZnNldCxcblx0XHRcdGxlZnQ6IHJlY3QubGVmdCArIHdpbi5wYWdlWE9mZnNldFxuXHRcdH07XG5cdH0sXG5cblx0Ly8gcG9zaXRpb24oKSByZWxhdGVzIGFuIGVsZW1lbnQncyBtYXJnaW4gYm94IHRvIGl0cyBvZmZzZXQgcGFyZW50J3MgcGFkZGluZyBib3hcblx0Ly8gVGhpcyBjb3JyZXNwb25kcyB0byB0aGUgYmVoYXZpb3Igb2YgQ1NTIGFic29sdXRlIHBvc2l0aW9uaW5nXG5cdHBvc2l0aW9uOiBmdW5jdGlvbigpIHtcblx0XHRpZiAoICF0aGlzWyAwIF0gKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dmFyIG9mZnNldFBhcmVudCwgb2Zmc2V0LCBkb2MsXG5cdFx0XHRlbGVtID0gdGhpc1sgMCBdLFxuXHRcdFx0cGFyZW50T2Zmc2V0ID0geyB0b3A6IDAsIGxlZnQ6IDAgfTtcblxuXHRcdC8vIHBvc2l0aW9uOmZpeGVkIGVsZW1lbnRzIGFyZSBvZmZzZXQgZnJvbSB0aGUgdmlld3BvcnQsIHdoaWNoIGl0c2VsZiBhbHdheXMgaGFzIHplcm8gb2Zmc2V0XG5cdFx0aWYgKCBqUXVlcnkuY3NzKCBlbGVtLCBcInBvc2l0aW9uXCIgKSA9PT0gXCJmaXhlZFwiICkge1xuXG5cdFx0XHQvLyBBc3N1bWUgcG9zaXRpb246Zml4ZWQgaW1wbGllcyBhdmFpbGFiaWxpdHkgb2YgZ2V0Qm91bmRpbmdDbGllbnRSZWN0XG5cdFx0XHRvZmZzZXQgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG5cdFx0fSBlbHNlIHtcblx0XHRcdG9mZnNldCA9IHRoaXMub2Zmc2V0KCk7XG5cblx0XHRcdC8vIEFjY291bnQgZm9yIHRoZSAqcmVhbCogb2Zmc2V0IHBhcmVudCwgd2hpY2ggY2FuIGJlIHRoZSBkb2N1bWVudCBvciBpdHMgcm9vdCBlbGVtZW50XG5cdFx0XHQvLyB3aGVuIGEgc3RhdGljYWxseSBwb3NpdGlvbmVkIGVsZW1lbnQgaXMgaWRlbnRpZmllZFxuXHRcdFx0ZG9jID0gZWxlbS5vd25lckRvY3VtZW50O1xuXHRcdFx0b2Zmc2V0UGFyZW50ID0gZWxlbS5vZmZzZXRQYXJlbnQgfHwgZG9jLmRvY3VtZW50RWxlbWVudDtcblx0XHRcdHdoaWxlICggb2Zmc2V0UGFyZW50ICYmXG5cdFx0XHRcdCggb2Zmc2V0UGFyZW50ID09PSBkb2MuYm9keSB8fCBvZmZzZXRQYXJlbnQgPT09IGRvYy5kb2N1bWVudEVsZW1lbnQgKSAmJlxuXHRcdFx0XHRqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnQsIFwicG9zaXRpb25cIiApID09PSBcInN0YXRpY1wiICkge1xuXG5cdFx0XHRcdG9mZnNldFBhcmVudCA9IG9mZnNldFBhcmVudC5wYXJlbnROb2RlO1xuXHRcdFx0fVxuXHRcdFx0aWYgKCBvZmZzZXRQYXJlbnQgJiYgb2Zmc2V0UGFyZW50ICE9PSBlbGVtICYmIG9mZnNldFBhcmVudC5ub2RlVHlwZSA9PT0gMSApIHtcblxuXHRcdFx0XHQvLyBJbmNvcnBvcmF0ZSBib3JkZXJzIGludG8gaXRzIG9mZnNldCwgc2luY2UgdGhleSBhcmUgb3V0c2lkZSBpdHMgY29udGVudCBvcmlnaW5cblx0XHRcdFx0cGFyZW50T2Zmc2V0ID0galF1ZXJ5KCBvZmZzZXRQYXJlbnQgKS5vZmZzZXQoKTtcblx0XHRcdFx0cGFyZW50T2Zmc2V0LnRvcCArPSBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnQsIFwiYm9yZGVyVG9wV2lkdGhcIiwgdHJ1ZSApO1xuXHRcdFx0XHRwYXJlbnRPZmZzZXQubGVmdCArPSBqUXVlcnkuY3NzKCBvZmZzZXRQYXJlbnQsIFwiYm9yZGVyTGVmdFdpZHRoXCIsIHRydWUgKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHQvLyBTdWJ0cmFjdCBwYXJlbnQgb2Zmc2V0cyBhbmQgZWxlbWVudCBtYXJnaW5zXG5cdFx0cmV0dXJuIHtcblx0XHRcdHRvcDogb2Zmc2V0LnRvcCAtIHBhcmVudE9mZnNldC50b3AgLSBqUXVlcnkuY3NzKCBlbGVtLCBcIm1hcmdpblRvcFwiLCB0cnVlICksXG5cdFx0XHRsZWZ0OiBvZmZzZXQubGVmdCAtIHBhcmVudE9mZnNldC5sZWZ0IC0galF1ZXJ5LmNzcyggZWxlbSwgXCJtYXJnaW5MZWZ0XCIsIHRydWUgKVxuXHRcdH07XG5cdH0sXG5cblx0Ly8gVGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gZG9jdW1lbnRFbGVtZW50IGluIHRoZSBmb2xsb3dpbmcgY2FzZXM6XG5cdC8vIDEpIEZvciB0aGUgZWxlbWVudCBpbnNpZGUgdGhlIGlmcmFtZSB3aXRob3V0IG9mZnNldFBhcmVudCwgdGhpcyBtZXRob2Qgd2lsbCByZXR1cm5cblx0Ly8gICAgZG9jdW1lbnRFbGVtZW50IG9mIHRoZSBwYXJlbnQgd2luZG93XG5cdC8vIDIpIEZvciB0aGUgaGlkZGVuIG9yIGRldGFjaGVkIGVsZW1lbnRcblx0Ly8gMykgRm9yIGJvZHkgb3IgaHRtbCBlbGVtZW50LCBpLmUuIGluIGNhc2Ugb2YgdGhlIGh0bWwgbm9kZSAtIGl0IHdpbGwgcmV0dXJuIGl0c2VsZlxuXHQvL1xuXHQvLyBidXQgdGhvc2UgZXhjZXB0aW9ucyB3ZXJlIG5ldmVyIHByZXNlbnRlZCBhcyBhIHJlYWwgbGlmZSB1c2UtY2FzZXNcblx0Ly8gYW5kIG1pZ2h0IGJlIGNvbnNpZGVyZWQgYXMgbW9yZSBwcmVmZXJhYmxlIHJlc3VsdHMuXG5cdC8vXG5cdC8vIFRoaXMgbG9naWMsIGhvd2V2ZXIsIGlzIG5vdCBndWFyYW50ZWVkIGFuZCBjYW4gY2hhbmdlIGF0IGFueSBwb2ludCBpbiB0aGUgZnV0dXJlXG5cdG9mZnNldFBhcmVudDogZnVuY3Rpb24oKSB7XG5cdFx0cmV0dXJuIHRoaXMubWFwKCBmdW5jdGlvbigpIHtcblx0XHRcdHZhciBvZmZzZXRQYXJlbnQgPSB0aGlzLm9mZnNldFBhcmVudDtcblxuXHRcdFx0d2hpbGUgKCBvZmZzZXRQYXJlbnQgJiYgalF1ZXJ5LmNzcyggb2Zmc2V0UGFyZW50LCBcInBvc2l0aW9uXCIgKSA9PT0gXCJzdGF0aWNcIiApIHtcblx0XHRcdFx0b2Zmc2V0UGFyZW50ID0gb2Zmc2V0UGFyZW50Lm9mZnNldFBhcmVudDtcblx0XHRcdH1cblxuXHRcdFx0cmV0dXJuIG9mZnNldFBhcmVudCB8fCBkb2N1bWVudEVsZW1lbnQ7XG5cdFx0fSApO1xuXHR9XG59ICk7XG5cbi8vIENyZWF0ZSBzY3JvbGxMZWZ0IGFuZCBzY3JvbGxUb3AgbWV0aG9kc1xualF1ZXJ5LmVhY2goIHsgc2Nyb2xsTGVmdDogXCJwYWdlWE9mZnNldFwiLCBzY3JvbGxUb3A6IFwicGFnZVlPZmZzZXRcIiB9LCBmdW5jdGlvbiggbWV0aG9kLCBwcm9wICkge1xuXHR2YXIgdG9wID0gXCJwYWdlWU9mZnNldFwiID09PSBwcm9wO1xuXG5cdGpRdWVyeS5mblsgbWV0aG9kIF0gPSBmdW5jdGlvbiggdmFsICkge1xuXHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCBtZXRob2QsIHZhbCApIHtcblxuXHRcdFx0Ly8gQ29hbGVzY2UgZG9jdW1lbnRzIGFuZCB3aW5kb3dzXG5cdFx0XHR2YXIgd2luO1xuXHRcdFx0aWYgKCBpc1dpbmRvdyggZWxlbSApICkge1xuXHRcdFx0XHR3aW4gPSBlbGVtO1xuXHRcdFx0fSBlbHNlIGlmICggZWxlbS5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0d2luID0gZWxlbS5kZWZhdWx0Vmlldztcblx0XHRcdH1cblxuXHRcdFx0aWYgKCB2YWwgPT09IHVuZGVmaW5lZCApIHtcblx0XHRcdFx0cmV0dXJuIHdpbiA/IHdpblsgcHJvcCBdIDogZWxlbVsgbWV0aG9kIF07XG5cdFx0XHR9XG5cblx0XHRcdGlmICggd2luICkge1xuXHRcdFx0XHR3aW4uc2Nyb2xsVG8oXG5cdFx0XHRcdFx0IXRvcCA/IHZhbCA6IHdpbi5wYWdlWE9mZnNldCxcblx0XHRcdFx0XHR0b3AgPyB2YWwgOiB3aW4ucGFnZVlPZmZzZXRcblx0XHRcdFx0KTtcblxuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0ZWxlbVsgbWV0aG9kIF0gPSB2YWw7XG5cdFx0XHR9XG5cdFx0fSwgbWV0aG9kLCB2YWwsIGFyZ3VtZW50cy5sZW5ndGggKTtcblx0fTtcbn0gKTtcblxuLy8gU3VwcG9ydDogU2FmYXJpIDw9NyAtIDkuMSwgQ2hyb21lIDw9MzcgLSA0OVxuLy8gQWRkIHRoZSB0b3AvbGVmdCBjc3NIb29rcyB1c2luZyBqUXVlcnkuZm4ucG9zaXRpb25cbi8vIFdlYmtpdCBidWc6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA4NFxuLy8gQmxpbmsgYnVnOiBodHRwczovL2J1Z3MuY2hyb21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD01ODkzNDdcbi8vIGdldENvbXB1dGVkU3R5bGUgcmV0dXJucyBwZXJjZW50IHdoZW4gc3BlY2lmaWVkIGZvciB0b3AvbGVmdC9ib3R0b20vcmlnaHQ7XG4vLyByYXRoZXIgdGhhbiBtYWtlIHRoZSBjc3MgbW9kdWxlIGRlcGVuZCBvbiB0aGUgb2Zmc2V0IG1vZHVsZSwganVzdCBjaGVjayBmb3IgaXQgaGVyZVxualF1ZXJ5LmVhY2goIFsgXCJ0b3BcIiwgXCJsZWZ0XCIgXSwgZnVuY3Rpb24oIGksIHByb3AgKSB7XG5cdGpRdWVyeS5jc3NIb29rc1sgcHJvcCBdID0gYWRkR2V0SG9va0lmKCBzdXBwb3J0LnBpeGVsUG9zaXRpb24sXG5cdFx0ZnVuY3Rpb24oIGVsZW0sIGNvbXB1dGVkICkge1xuXHRcdFx0aWYgKCBjb21wdXRlZCApIHtcblx0XHRcdFx0Y29tcHV0ZWQgPSBjdXJDU1MoIGVsZW0sIHByb3AgKTtcblxuXHRcdFx0XHQvLyBJZiBjdXJDU1MgcmV0dXJucyBwZXJjZW50YWdlLCBmYWxsYmFjayB0byBvZmZzZXRcblx0XHRcdFx0cmV0dXJuIHJudW1ub25weC50ZXN0KCBjb21wdXRlZCApID9cblx0XHRcdFx0XHRqUXVlcnkoIGVsZW0gKS5wb3NpdGlvbigpWyBwcm9wIF0gKyBcInB4XCIgOlxuXHRcdFx0XHRcdGNvbXB1dGVkO1xuXHRcdFx0fVxuXHRcdH1cblx0KTtcbn0gKTtcblxuXG4vLyBDcmVhdGUgaW5uZXJIZWlnaHQsIGlubmVyV2lkdGgsIGhlaWdodCwgd2lkdGgsIG91dGVySGVpZ2h0IGFuZCBvdXRlcldpZHRoIG1ldGhvZHNcbmpRdWVyeS5lYWNoKCB7IEhlaWdodDogXCJoZWlnaHRcIiwgV2lkdGg6IFwid2lkdGhcIiB9LCBmdW5jdGlvbiggbmFtZSwgdHlwZSApIHtcblx0alF1ZXJ5LmVhY2goIHsgcGFkZGluZzogXCJpbm5lclwiICsgbmFtZSwgY29udGVudDogdHlwZSwgXCJcIjogXCJvdXRlclwiICsgbmFtZSB9LFxuXHRcdGZ1bmN0aW9uKCBkZWZhdWx0RXh0cmEsIGZ1bmNOYW1lICkge1xuXG5cdFx0Ly8gTWFyZ2luIGlzIG9ubHkgZm9yIG91dGVySGVpZ2h0LCBvdXRlcldpZHRoXG5cdFx0alF1ZXJ5LmZuWyBmdW5jTmFtZSBdID0gZnVuY3Rpb24oIG1hcmdpbiwgdmFsdWUgKSB7XG5cdFx0XHR2YXIgY2hhaW5hYmxlID0gYXJndW1lbnRzLmxlbmd0aCAmJiAoIGRlZmF1bHRFeHRyYSB8fCB0eXBlb2YgbWFyZ2luICE9PSBcImJvb2xlYW5cIiApLFxuXHRcdFx0XHRleHRyYSA9IGRlZmF1bHRFeHRyYSB8fCAoIG1hcmdpbiA9PT0gdHJ1ZSB8fCB2YWx1ZSA9PT0gdHJ1ZSA/IFwibWFyZ2luXCIgOiBcImJvcmRlclwiICk7XG5cblx0XHRcdHJldHVybiBhY2Nlc3MoIHRoaXMsIGZ1bmN0aW9uKCBlbGVtLCB0eXBlLCB2YWx1ZSApIHtcblx0XHRcdFx0dmFyIGRvYztcblxuXHRcdFx0XHRpZiAoIGlzV2luZG93KCBlbGVtICkgKSB7XG5cblx0XHRcdFx0XHQvLyAkKCB3aW5kb3cgKS5vdXRlcldpZHRoL0hlaWdodCByZXR1cm4gdy9oIGluY2x1ZGluZyBzY3JvbGxiYXJzIChnaC0xNzI5KVxuXHRcdFx0XHRcdHJldHVybiBmdW5jTmFtZS5pbmRleE9mKCBcIm91dGVyXCIgKSA9PT0gMCA/XG5cdFx0XHRcdFx0XHRlbGVtWyBcImlubmVyXCIgKyBuYW1lIF0gOlxuXHRcdFx0XHRcdFx0ZWxlbS5kb2N1bWVudC5kb2N1bWVudEVsZW1lbnRbIFwiY2xpZW50XCIgKyBuYW1lIF07XG5cdFx0XHRcdH1cblxuXHRcdFx0XHQvLyBHZXQgZG9jdW1lbnQgd2lkdGggb3IgaGVpZ2h0XG5cdFx0XHRcdGlmICggZWxlbS5ub2RlVHlwZSA9PT0gOSApIHtcblx0XHRcdFx0XHRkb2MgPSBlbGVtLmRvY3VtZW50RWxlbWVudDtcblxuXHRcdFx0XHRcdC8vIEVpdGhlciBzY3JvbGxbV2lkdGgvSGVpZ2h0XSBvciBvZmZzZXRbV2lkdGgvSGVpZ2h0XSBvciBjbGllbnRbV2lkdGgvSGVpZ2h0XSxcblx0XHRcdFx0XHQvLyB3aGljaGV2ZXIgaXMgZ3JlYXRlc3Rcblx0XHRcdFx0XHRyZXR1cm4gTWF0aC5tYXgoXG5cdFx0XHRcdFx0XHRlbGVtLmJvZHlbIFwic2Nyb2xsXCIgKyBuYW1lIF0sIGRvY1sgXCJzY3JvbGxcIiArIG5hbWUgXSxcblx0XHRcdFx0XHRcdGVsZW0uYm9keVsgXCJvZmZzZXRcIiArIG5hbWUgXSwgZG9jWyBcIm9mZnNldFwiICsgbmFtZSBdLFxuXHRcdFx0XHRcdFx0ZG9jWyBcImNsaWVudFwiICsgbmFtZSBdXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXG5cdFx0XHRcdHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkID9cblxuXHRcdFx0XHRcdC8vIEdldCB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnQsIHJlcXVlc3RpbmcgYnV0IG5vdCBmb3JjaW5nIHBhcnNlRmxvYXRcblx0XHRcdFx0XHRqUXVlcnkuY3NzKCBlbGVtLCB0eXBlLCBleHRyYSApIDpcblxuXHRcdFx0XHRcdC8vIFNldCB3aWR0aCBvciBoZWlnaHQgb24gdGhlIGVsZW1lbnRcblx0XHRcdFx0XHRqUXVlcnkuc3R5bGUoIGVsZW0sIHR5cGUsIHZhbHVlLCBleHRyYSApO1xuXHRcdFx0fSwgdHlwZSwgY2hhaW5hYmxlID8gbWFyZ2luIDogdW5kZWZpbmVkLCBjaGFpbmFibGUgKTtcblx0XHR9O1xuXHR9ICk7XG59ICk7XG5cblxualF1ZXJ5LmVhY2goICggXCJibHVyIGZvY3VzIGZvY3VzaW4gZm9jdXNvdXQgcmVzaXplIHNjcm9sbCBjbGljayBkYmxjbGljayBcIiArXG5cdFwibW91c2Vkb3duIG1vdXNldXAgbW91c2Vtb3ZlIG1vdXNlb3ZlciBtb3VzZW91dCBtb3VzZWVudGVyIG1vdXNlbGVhdmUgXCIgK1xuXHRcImNoYW5nZSBzZWxlY3Qgc3VibWl0IGtleWRvd24ga2V5cHJlc3Mga2V5dXAgY29udGV4dG1lbnVcIiApLnNwbGl0KCBcIiBcIiApLFxuXHRmdW5jdGlvbiggaSwgbmFtZSApIHtcblxuXHQvLyBIYW5kbGUgZXZlbnQgYmluZGluZ1xuXHRqUXVlcnkuZm5bIG5hbWUgXSA9IGZ1bmN0aW9uKCBkYXRhLCBmbiApIHtcblx0XHRyZXR1cm4gYXJndW1lbnRzLmxlbmd0aCA+IDAgP1xuXHRcdFx0dGhpcy5vbiggbmFtZSwgbnVsbCwgZGF0YSwgZm4gKSA6XG5cdFx0XHR0aGlzLnRyaWdnZXIoIG5hbWUgKTtcblx0fTtcbn0gKTtcblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXHRob3ZlcjogZnVuY3Rpb24oIGZuT3ZlciwgZm5PdXQgKSB7XG5cdFx0cmV0dXJuIHRoaXMubW91c2VlbnRlciggZm5PdmVyICkubW91c2VsZWF2ZSggZm5PdXQgfHwgZm5PdmVyICk7XG5cdH1cbn0gKTtcblxuXG5cblxualF1ZXJ5LmZuLmV4dGVuZCgge1xuXG5cdGJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBudWxsLCBkYXRhLCBmbiApO1xuXHR9LFxuXHR1bmJpbmQ6IGZ1bmN0aW9uKCB0eXBlcywgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub2ZmKCB0eXBlcywgbnVsbCwgZm4gKTtcblx0fSxcblxuXHRkZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZGF0YSwgZm4gKSB7XG5cdFx0cmV0dXJuIHRoaXMub24oIHR5cGVzLCBzZWxlY3RvciwgZGF0YSwgZm4gKTtcblx0fSxcblx0dW5kZWxlZ2F0ZTogZnVuY3Rpb24oIHNlbGVjdG9yLCB0eXBlcywgZm4gKSB7XG5cblx0XHQvLyAoIG5hbWVzcGFjZSApIG9yICggc2VsZWN0b3IsIHR5cGVzIFssIGZuXSApXG5cdFx0cmV0dXJuIGFyZ3VtZW50cy5sZW5ndGggPT09IDEgP1xuXHRcdFx0dGhpcy5vZmYoIHNlbGVjdG9yLCBcIioqXCIgKSA6XG5cdFx0XHR0aGlzLm9mZiggdHlwZXMsIHNlbGVjdG9yIHx8IFwiKipcIiwgZm4gKTtcblx0fVxufSApO1xuXG4vLyBCaW5kIGEgZnVuY3Rpb24gdG8gYSBjb250ZXh0LCBvcHRpb25hbGx5IHBhcnRpYWxseSBhcHBseWluZyBhbnlcbi8vIGFyZ3VtZW50cy5cbi8vIGpRdWVyeS5wcm94eSBpcyBkZXByZWNhdGVkIHRvIHByb21vdGUgc3RhbmRhcmRzIChzcGVjaWZpY2FsbHkgRnVuY3Rpb24jYmluZClcbi8vIEhvd2V2ZXIsIGl0IGlzIG5vdCBzbGF0ZWQgZm9yIHJlbW92YWwgYW55IHRpbWUgc29vblxualF1ZXJ5LnByb3h5ID0gZnVuY3Rpb24oIGZuLCBjb250ZXh0ICkge1xuXHR2YXIgdG1wLCBhcmdzLCBwcm94eTtcblxuXHRpZiAoIHR5cGVvZiBjb250ZXh0ID09PSBcInN0cmluZ1wiICkge1xuXHRcdHRtcCA9IGZuWyBjb250ZXh0IF07XG5cdFx0Y29udGV4dCA9IGZuO1xuXHRcdGZuID0gdG1wO1xuXHR9XG5cblx0Ly8gUXVpY2sgY2hlY2sgdG8gZGV0ZXJtaW5lIGlmIHRhcmdldCBpcyBjYWxsYWJsZSwgaW4gdGhlIHNwZWNcblx0Ly8gdGhpcyB0aHJvd3MgYSBUeXBlRXJyb3IsIGJ1dCB3ZSB3aWxsIGp1c3QgcmV0dXJuIHVuZGVmaW5lZC5cblx0aWYgKCAhaXNGdW5jdGlvbiggZm4gKSApIHtcblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0Ly8gU2ltdWxhdGVkIGJpbmRcblx0YXJncyA9IHNsaWNlLmNhbGwoIGFyZ3VtZW50cywgMiApO1xuXHRwcm94eSA9IGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBmbi5hcHBseSggY29udGV4dCB8fCB0aGlzLCBhcmdzLmNvbmNhdCggc2xpY2UuY2FsbCggYXJndW1lbnRzICkgKSApO1xuXHR9O1xuXG5cdC8vIFNldCB0aGUgZ3VpZCBvZiB1bmlxdWUgaGFuZGxlciB0byB0aGUgc2FtZSBvZiBvcmlnaW5hbCBoYW5kbGVyLCBzbyBpdCBjYW4gYmUgcmVtb3ZlZFxuXHRwcm94eS5ndWlkID0gZm4uZ3VpZCA9IGZuLmd1aWQgfHwgalF1ZXJ5Lmd1aWQrKztcblxuXHRyZXR1cm4gcHJveHk7XG59O1xuXG5qUXVlcnkuaG9sZFJlYWR5ID0gZnVuY3Rpb24oIGhvbGQgKSB7XG5cdGlmICggaG9sZCApIHtcblx0XHRqUXVlcnkucmVhZHlXYWl0Kys7XG5cdH0gZWxzZSB7XG5cdFx0alF1ZXJ5LnJlYWR5KCB0cnVlICk7XG5cdH1cbn07XG5qUXVlcnkuaXNBcnJheSA9IEFycmF5LmlzQXJyYXk7XG5qUXVlcnkucGFyc2VKU09OID0gSlNPTi5wYXJzZTtcbmpRdWVyeS5ub2RlTmFtZSA9IG5vZGVOYW1lO1xualF1ZXJ5LmlzRnVuY3Rpb24gPSBpc0Z1bmN0aW9uO1xualF1ZXJ5LmlzV2luZG93ID0gaXNXaW5kb3c7XG5qUXVlcnkuY2FtZWxDYXNlID0gY2FtZWxDYXNlO1xualF1ZXJ5LnR5cGUgPSB0b1R5cGU7XG5cbmpRdWVyeS5ub3cgPSBEYXRlLm5vdztcblxualF1ZXJ5LmlzTnVtZXJpYyA9IGZ1bmN0aW9uKCBvYmogKSB7XG5cblx0Ly8gQXMgb2YgalF1ZXJ5IDMuMCwgaXNOdW1lcmljIGlzIGxpbWl0ZWQgdG9cblx0Ly8gc3RyaW5ncyBhbmQgbnVtYmVycyAocHJpbWl0aXZlcyBvciBvYmplY3RzKVxuXHQvLyB0aGF0IGNhbiBiZSBjb2VyY2VkIHRvIGZpbml0ZSBudW1iZXJzIChnaC0yNjYyKVxuXHR2YXIgdHlwZSA9IGpRdWVyeS50eXBlKCBvYmogKTtcblx0cmV0dXJuICggdHlwZSA9PT0gXCJudW1iZXJcIiB8fCB0eXBlID09PSBcInN0cmluZ1wiICkgJiZcblxuXHRcdC8vIHBhcnNlRmxvYXQgTmFOcyBudW1lcmljLWNhc3QgZmFsc2UgcG9zaXRpdmVzIChcIlwiKVxuXHRcdC8vIC4uLmJ1dCBtaXNpbnRlcnByZXRzIGxlYWRpbmctbnVtYmVyIHN0cmluZ3MsIHBhcnRpY3VsYXJseSBoZXggbGl0ZXJhbHMgKFwiMHguLi5cIilcblx0XHQvLyBzdWJ0cmFjdGlvbiBmb3JjZXMgaW5maW5pdGllcyB0byBOYU5cblx0XHQhaXNOYU4oIG9iaiAtIHBhcnNlRmxvYXQoIG9iaiApICk7XG59O1xuXG5cblxuXG4vLyBSZWdpc3RlciBhcyBhIG5hbWVkIEFNRCBtb2R1bGUsIHNpbmNlIGpRdWVyeSBjYW4gYmUgY29uY2F0ZW5hdGVkIHdpdGggb3RoZXJcbi8vIGZpbGVzIHRoYXQgbWF5IHVzZSBkZWZpbmUsIGJ1dCBub3QgdmlhIGEgcHJvcGVyIGNvbmNhdGVuYXRpb24gc2NyaXB0IHRoYXRcbi8vIHVuZGVyc3RhbmRzIGFub255bW91cyBBTUQgbW9kdWxlcy4gQSBuYW1lZCBBTUQgaXMgc2FmZXN0IGFuZCBtb3N0IHJvYnVzdFxuLy8gd2F5IHRvIHJlZ2lzdGVyLiBMb3dlcmNhc2UganF1ZXJ5IGlzIHVzZWQgYmVjYXVzZSBBTUQgbW9kdWxlIG5hbWVzIGFyZVxuLy8gZGVyaXZlZCBmcm9tIGZpbGUgbmFtZXMsIGFuZCBqUXVlcnkgaXMgbm9ybWFsbHkgZGVsaXZlcmVkIGluIGEgbG93ZXJjYXNlXG4vLyBmaWxlIG5hbWUuIERvIHRoaXMgYWZ0ZXIgY3JlYXRpbmcgdGhlIGdsb2JhbCBzbyB0aGF0IGlmIGFuIEFNRCBtb2R1bGUgd2FudHNcbi8vIHRvIGNhbGwgbm9Db25mbGljdCB0byBoaWRlIHRoaXMgdmVyc2lvbiBvZiBqUXVlcnksIGl0IHdpbGwgd29yay5cblxuLy8gTm90ZSB0aGF0IGZvciBtYXhpbXVtIHBvcnRhYmlsaXR5LCBsaWJyYXJpZXMgdGhhdCBhcmUgbm90IGpRdWVyeSBzaG91bGRcbi8vIGRlY2xhcmUgdGhlbXNlbHZlcyBhcyBhbm9ueW1vdXMgbW9kdWxlcywgYW5kIGF2b2lkIHNldHRpbmcgYSBnbG9iYWwgaWYgYW5cbi8vIEFNRCBsb2FkZXIgaXMgcHJlc2VudC4galF1ZXJ5IGlzIGEgc3BlY2lhbCBjYXNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vanJidXJrZS9yZXF1aXJlanMvd2lraS9VcGRhdGluZy1leGlzdGluZy1saWJyYXJpZXMjd2lraS1hbm9uXG5cbmlmICggdHlwZW9mIGRlZmluZSA9PT0gXCJmdW5jdGlvblwiICYmIGRlZmluZS5hbWQgKSB7XG5cdGRlZmluZSggXCJqcXVlcnlcIiwgW10sIGZ1bmN0aW9uKCkge1xuXHRcdHJldHVybiBqUXVlcnk7XG5cdH0gKTtcbn1cblxuXG5cblxudmFyXG5cblx0Ly8gTWFwIG92ZXIgalF1ZXJ5IGluIGNhc2Ugb2Ygb3ZlcndyaXRlXG5cdF9qUXVlcnkgPSB3aW5kb3cualF1ZXJ5LFxuXG5cdC8vIE1hcCBvdmVyIHRoZSAkIGluIGNhc2Ugb2Ygb3ZlcndyaXRlXG5cdF8kID0gd2luZG93LiQ7XG5cbmpRdWVyeS5ub0NvbmZsaWN0ID0gZnVuY3Rpb24oIGRlZXAgKSB7XG5cdGlmICggd2luZG93LiQgPT09IGpRdWVyeSApIHtcblx0XHR3aW5kb3cuJCA9IF8kO1xuXHR9XG5cblx0aWYgKCBkZWVwICYmIHdpbmRvdy5qUXVlcnkgPT09IGpRdWVyeSApIHtcblx0XHR3aW5kb3cualF1ZXJ5ID0gX2pRdWVyeTtcblx0fVxuXG5cdHJldHVybiBqUXVlcnk7XG59O1xuXG4vLyBFeHBvc2UgalF1ZXJ5IGFuZCAkIGlkZW50aWZpZXJzLCBldmVuIGluIEFNRFxuLy8gKCM3MTAyI2NvbW1lbnQ6MTAsIGh0dHBzOi8vZ2l0aHViLmNvbS9qcXVlcnkvanF1ZXJ5L3B1bGwvNTU3KVxuLy8gYW5kIENvbW1vbkpTIGZvciBicm93c2VyIGVtdWxhdG9ycyAoIzEzNTY2KVxuaWYgKCAhbm9HbG9iYWwgKSB7XG5cdHdpbmRvdy5qUXVlcnkgPSB3aW5kb3cuJCA9IGpRdWVyeTtcbn1cblxuXG5cblxucmV0dXJuIGpRdWVyeTtcbn0gKTtcbiIsIi8vISBtb21lbnQtdGltZXpvbmUuanNcbi8vISB2ZXJzaW9uIDogMC41LjE3XG4vLyEgQ29weXJpZ2h0IChjKSBKUyBGb3VuZGF0aW9uIGFuZCBvdGhlciBjb250cmlidXRvcnNcbi8vISBsaWNlbnNlIDogTUlUXG4vLyEgZ2l0aHViLmNvbS9tb21lbnQvbW9tZW50LXRpbWV6b25lXG5cbihmdW5jdGlvbiAocm9vdCwgZmFjdG9yeSkge1xuXHRcInVzZSBzdHJpY3RcIjtcblxuXHQvKmdsb2JhbCBkZWZpbmUqL1xuXHRpZiAodHlwZW9mIGRlZmluZSA9PT0gJ2Z1bmN0aW9uJyAmJiBkZWZpbmUuYW1kKSB7XG5cdFx0ZGVmaW5lKFsnbW9tZW50J10sIGZhY3RvcnkpOyAgICAgICAgICAgICAgICAgLy8gQU1EXG5cdH0gZWxzZSBpZiAodHlwZW9mIG1vZHVsZSA9PT0gJ29iamVjdCcgJiYgbW9kdWxlLmV4cG9ydHMpIHtcblx0XHRtb2R1bGUuZXhwb3J0cyA9IGZhY3RvcnkocmVxdWlyZSgnbW9tZW50JykpOyAvLyBOb2RlXG5cdH0gZWxzZSB7XG5cdFx0ZmFjdG9yeShyb290Lm1vbWVudCk7ICAgICAgICAgICAgICAgICAgICAgICAgLy8gQnJvd3NlclxuXHR9XG59KHRoaXMsIGZ1bmN0aW9uIChtb21lbnQpIHtcblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0Ly8gRG8gbm90IGxvYWQgbW9tZW50LXRpbWV6b25lIGEgc2Vjb25kIHRpbWUuXG5cdC8vIGlmIChtb21lbnQudHogIT09IHVuZGVmaW5lZCkge1xuXHQvLyBcdGxvZ0Vycm9yKCdNb21lbnQgVGltZXpvbmUgJyArIG1vbWVudC50ei52ZXJzaW9uICsgJyB3YXMgYWxyZWFkeSBsb2FkZWQgJyArIChtb21lbnQudHouZGF0YVZlcnNpb24gPyAnd2l0aCBkYXRhIGZyb20gJyA6ICd3aXRob3V0IGFueSBkYXRhJykgKyBtb21lbnQudHouZGF0YVZlcnNpb24pO1xuXHQvLyBcdHJldHVybiBtb21lbnQ7XG5cdC8vIH1cblxuXHR2YXIgVkVSU0lPTiA9IFwiMC41LjE3XCIsXG5cdFx0em9uZXMgPSB7fSxcblx0XHRsaW5rcyA9IHt9LFxuXHRcdG5hbWVzID0ge30sXG5cdFx0Z3Vlc3NlcyA9IHt9LFxuXHRcdGNhY2hlZEd1ZXNzLFxuXG5cdFx0bW9tZW50VmVyc2lvbiA9IG1vbWVudC52ZXJzaW9uLnNwbGl0KCcuJyksXG5cdFx0bWFqb3IgPSArbW9tZW50VmVyc2lvblswXSxcblx0XHRtaW5vciA9ICttb21lbnRWZXJzaW9uWzFdO1xuXG5cdC8vIE1vbWVudC5qcyB2ZXJzaW9uIGNoZWNrXG5cdGlmIChtYWpvciA8IDIgfHwgKG1ham9yID09PSAyICYmIG1pbm9yIDwgNikpIHtcblx0XHRsb2dFcnJvcignTW9tZW50IFRpbWV6b25lIHJlcXVpcmVzIE1vbWVudC5qcyA+PSAyLjYuMC4gWW91IGFyZSB1c2luZyBNb21lbnQuanMgJyArIG1vbWVudC52ZXJzaW9uICsgJy4gU2VlIG1vbWVudGpzLmNvbScpO1xuXHR9XG5cblx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXHRcdFVucGFja2luZ1xuXHQqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblx0ZnVuY3Rpb24gY2hhckNvZGVUb0ludChjaGFyQ29kZSkge1xuXHRcdGlmIChjaGFyQ29kZSA+IDk2KSB7XG5cdFx0XHRyZXR1cm4gY2hhckNvZGUgLSA4Nztcblx0XHR9IGVsc2UgaWYgKGNoYXJDb2RlID4gNjQpIHtcblx0XHRcdHJldHVybiBjaGFyQ29kZSAtIDI5O1xuXHRcdH1cblx0XHRyZXR1cm4gY2hhckNvZGUgLSA0ODtcblx0fVxuXG5cdGZ1bmN0aW9uIHVucGFja0Jhc2U2MChzdHJpbmcpIHtcblx0XHR2YXIgaSA9IDAsXG5cdFx0XHRwYXJ0cyA9IHN0cmluZy5zcGxpdCgnLicpLFxuXHRcdFx0d2hvbGUgPSBwYXJ0c1swXSxcblx0XHRcdGZyYWN0aW9uYWwgPSBwYXJ0c1sxXSB8fCAnJyxcblx0XHRcdG11bHRpcGxpZXIgPSAxLFxuXHRcdFx0bnVtLFxuXHRcdFx0b3V0ID0gMCxcblx0XHRcdHNpZ24gPSAxO1xuXG5cdFx0Ly8gaGFuZGxlIG5lZ2F0aXZlIG51bWJlcnNcblx0XHRpZiAoc3RyaW5nLmNoYXJDb2RlQXQoMCkgPT09IDQ1KSB7XG5cdFx0XHRpID0gMTtcblx0XHRcdHNpZ24gPSAtMTtcblx0XHR9XG5cblx0XHQvLyBoYW5kbGUgZGlnaXRzIGJlZm9yZSB0aGUgZGVjaW1hbFxuXHRcdGZvciAoaTsgaSA8IHdob2xlLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRudW0gPSBjaGFyQ29kZVRvSW50KHdob2xlLmNoYXJDb2RlQXQoaSkpO1xuXHRcdFx0b3V0ID0gNjAgKiBvdXQgKyBudW07XG5cdFx0fVxuXG5cdFx0Ly8gaGFuZGxlIGRpZ2l0cyBhZnRlciB0aGUgZGVjaW1hbFxuXHRcdGZvciAoaSA9IDA7IGkgPCBmcmFjdGlvbmFsLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRtdWx0aXBsaWVyID0gbXVsdGlwbGllciAvIDYwO1xuXHRcdFx0bnVtID0gY2hhckNvZGVUb0ludChmcmFjdGlvbmFsLmNoYXJDb2RlQXQoaSkpO1xuXHRcdFx0b3V0ICs9IG51bSAqIG11bHRpcGxpZXI7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG91dCAqIHNpZ247XG5cdH1cblxuXHRmdW5jdGlvbiBhcnJheVRvSW50IChhcnJheSkge1xuXHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYXJyYXkubGVuZ3RoOyBpKyspIHtcblx0XHRcdGFycmF5W2ldID0gdW5wYWNrQmFzZTYwKGFycmF5W2ldKTtcblx0XHR9XG5cdH1cblxuXHRmdW5jdGlvbiBpbnRUb1VudGlsIChhcnJheSwgbGVuZ3RoKSB7XG5cdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsZW5ndGg7IGkrKykge1xuXHRcdFx0YXJyYXlbaV0gPSBNYXRoLnJvdW5kKChhcnJheVtpIC0gMV0gfHwgMCkgKyAoYXJyYXlbaV0gKiA2MDAwMCkpOyAvLyBtaW51dGVzIHRvIG1pbGxpc2Vjb25kc1xuXHRcdH1cblxuXHRcdGFycmF5W2xlbmd0aCAtIDFdID0gSW5maW5pdHk7XG5cdH1cblxuXHRmdW5jdGlvbiBtYXBJbmRpY2VzIChzb3VyY2UsIGluZGljZXMpIHtcblx0XHR2YXIgb3V0ID0gW10sIGk7XG5cblx0XHRmb3IgKGkgPSAwOyBpIDwgaW5kaWNlcy5sZW5ndGg7IGkrKykge1xuXHRcdFx0b3V0W2ldID0gc291cmNlW2luZGljZXNbaV1dO1xuXHRcdH1cblxuXHRcdHJldHVybiBvdXQ7XG5cdH1cblxuXHRmdW5jdGlvbiB1bnBhY2sgKHN0cmluZykge1xuXHRcdHZhciBkYXRhID0gc3RyaW5nLnNwbGl0KCd8JyksXG5cdFx0XHRvZmZzZXRzID0gZGF0YVsyXS5zcGxpdCgnICcpLFxuXHRcdFx0aW5kaWNlcyA9IGRhdGFbM10uc3BsaXQoJycpLFxuXHRcdFx0dW50aWxzICA9IGRhdGFbNF0uc3BsaXQoJyAnKTtcblxuXHRcdGFycmF5VG9JbnQob2Zmc2V0cyk7XG5cdFx0YXJyYXlUb0ludChpbmRpY2VzKTtcblx0XHRhcnJheVRvSW50KHVudGlscyk7XG5cblx0XHRpbnRUb1VudGlsKHVudGlscywgaW5kaWNlcy5sZW5ndGgpO1xuXG5cdFx0cmV0dXJuIHtcblx0XHRcdG5hbWUgICAgICAgOiBkYXRhWzBdLFxuXHRcdFx0YWJicnMgICAgICA6IG1hcEluZGljZXMoZGF0YVsxXS5zcGxpdCgnICcpLCBpbmRpY2VzKSxcblx0XHRcdG9mZnNldHMgICAgOiBtYXBJbmRpY2VzKG9mZnNldHMsIGluZGljZXMpLFxuXHRcdFx0dW50aWxzICAgICA6IHVudGlscyxcblx0XHRcdHBvcHVsYXRpb24gOiBkYXRhWzVdIHwgMFxuXHRcdH07XG5cdH1cblxuXHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cdFx0Wm9uZSBvYmplY3Rcblx0KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cdGZ1bmN0aW9uIFpvbmUgKHBhY2tlZFN0cmluZykge1xuXHRcdGlmIChwYWNrZWRTdHJpbmcpIHtcblx0XHRcdHRoaXMuX3NldCh1bnBhY2socGFja2VkU3RyaW5nKSk7XG5cdFx0fVxuXHR9XG5cblx0Wm9uZS5wcm90b3R5cGUgPSB7XG5cdFx0X3NldCA6IGZ1bmN0aW9uICh1bnBhY2tlZCkge1xuXHRcdFx0dGhpcy5uYW1lICAgICAgID0gdW5wYWNrZWQubmFtZTtcblx0XHRcdHRoaXMuYWJicnMgICAgICA9IHVucGFja2VkLmFiYnJzO1xuXHRcdFx0dGhpcy51bnRpbHMgICAgID0gdW5wYWNrZWQudW50aWxzO1xuXHRcdFx0dGhpcy5vZmZzZXRzICAgID0gdW5wYWNrZWQub2Zmc2V0cztcblx0XHRcdHRoaXMucG9wdWxhdGlvbiA9IHVucGFja2VkLnBvcHVsYXRpb247XG5cdFx0fSxcblxuXHRcdF9pbmRleCA6IGZ1bmN0aW9uICh0aW1lc3RhbXApIHtcblx0XHRcdHZhciB0YXJnZXQgPSArdGltZXN0YW1wLFxuXHRcdFx0XHR1bnRpbHMgPSB0aGlzLnVudGlscyxcblx0XHRcdFx0aTtcblxuXHRcdFx0Zm9yIChpID0gMDsgaSA8IHVudGlscy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAodGFyZ2V0IDwgdW50aWxzW2ldKSB7XG5cdFx0XHRcdFx0cmV0dXJuIGk7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHR9LFxuXG5cdFx0cGFyc2UgOiBmdW5jdGlvbiAodGltZXN0YW1wKSB7XG5cdFx0XHR2YXIgdGFyZ2V0ICA9ICt0aW1lc3RhbXAsXG5cdFx0XHRcdG9mZnNldHMgPSB0aGlzLm9mZnNldHMsXG5cdFx0XHRcdHVudGlscyAgPSB0aGlzLnVudGlscyxcblx0XHRcdFx0bWF4ICAgICA9IHVudGlscy5sZW5ndGggLSAxLFxuXHRcdFx0XHRvZmZzZXQsIG9mZnNldE5leHQsIG9mZnNldFByZXYsIGk7XG5cblx0XHRcdGZvciAoaSA9IDA7IGkgPCBtYXg7IGkrKykge1xuXHRcdFx0XHRvZmZzZXQgICAgID0gb2Zmc2V0c1tpXTtcblx0XHRcdFx0b2Zmc2V0TmV4dCA9IG9mZnNldHNbaSArIDFdO1xuXHRcdFx0XHRvZmZzZXRQcmV2ID0gb2Zmc2V0c1tpID8gaSAtIDEgOiBpXTtcblxuXHRcdFx0XHRpZiAob2Zmc2V0IDwgb2Zmc2V0TmV4dCAmJiB0ei5tb3ZlQW1iaWd1b3VzRm9yd2FyZCkge1xuXHRcdFx0XHRcdG9mZnNldCA9IG9mZnNldE5leHQ7XG5cdFx0XHRcdH0gZWxzZSBpZiAob2Zmc2V0ID4gb2Zmc2V0UHJldiAmJiB0ei5tb3ZlSW52YWxpZEZvcndhcmQpIHtcblx0XHRcdFx0XHRvZmZzZXQgPSBvZmZzZXRQcmV2O1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0aWYgKHRhcmdldCA8IHVudGlsc1tpXSAtIChvZmZzZXQgKiA2MDAwMCkpIHtcblx0XHRcdFx0XHRyZXR1cm4gb2Zmc2V0c1tpXTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHRyZXR1cm4gb2Zmc2V0c1ttYXhdO1xuXHRcdH0sXG5cblx0XHRhYmJyIDogZnVuY3Rpb24gKG1vbSkge1xuXHRcdFx0cmV0dXJuIHRoaXMuYWJicnNbdGhpcy5faW5kZXgobW9tKV07XG5cdFx0fSxcblxuXHRcdG9mZnNldCA6IGZ1bmN0aW9uIChtb20pIHtcblx0XHRcdGxvZ0Vycm9yKFwiem9uZS5vZmZzZXQgaGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBmYXZvciBvZiB6b25lLnV0Y09mZnNldFwiKTtcblx0XHRcdHJldHVybiB0aGlzLm9mZnNldHNbdGhpcy5faW5kZXgobW9tKV07XG5cdFx0fSxcblxuXHRcdHV0Y09mZnNldCA6IGZ1bmN0aW9uIChtb20pIHtcblx0XHRcdHJldHVybiB0aGlzLm9mZnNldHNbdGhpcy5faW5kZXgobW9tKV07XG5cdFx0fVxuXHR9O1xuXG5cdC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcblx0XHRDdXJyZW50IFRpbWV6b25lXG5cdCoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuXHRmdW5jdGlvbiBPZmZzZXRBdChhdCkge1xuXHRcdHZhciB0aW1lU3RyaW5nID0gYXQudG9UaW1lU3RyaW5nKCk7XG5cdFx0dmFyIGFiYnIgPSB0aW1lU3RyaW5nLm1hdGNoKC9cXChbYS16IF0rXFwpL2kpO1xuXHRcdGlmIChhYmJyICYmIGFiYnJbMF0pIHtcblx0XHRcdC8vIDE3OjU2OjMxIEdNVC0wNjAwIChDU1QpXG5cdFx0XHQvLyAxNzo1NjozMSBHTVQtMDYwMCAoQ2VudHJhbCBTdGFuZGFyZCBUaW1lKVxuXHRcdFx0YWJiciA9IGFiYnJbMF0ubWF0Y2goL1tBLVpdL2cpO1xuXHRcdFx0YWJiciA9IGFiYnIgPyBhYmJyLmpvaW4oJycpIDogdW5kZWZpbmVkO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHQvLyAxNzo1NjozMSBDU1Rcblx0XHRcdC8vIDE3OjU2OjMxIEdNVCswODAwICjlj7DljJfmqJnmupbmmYLplpMpXG5cdFx0XHRhYmJyID0gdGltZVN0cmluZy5tYXRjaCgvW0EtWl17Myw1fS9nKTtcblx0XHRcdGFiYnIgPSBhYmJyID8gYWJiclswXSA6IHVuZGVmaW5lZDtcblx0XHR9XG5cblx0XHRpZiAoYWJiciA9PT0gJ0dNVCcpIHtcblx0XHRcdGFiYnIgPSB1bmRlZmluZWQ7XG5cdFx0fVxuXG5cdFx0dGhpcy5hdCA9ICthdDtcblx0XHR0aGlzLmFiYnIgPSBhYmJyO1xuXHRcdHRoaXMub2Zmc2V0ID0gYXQuZ2V0VGltZXpvbmVPZmZzZXQoKTtcblx0fVxuXG5cdGZ1bmN0aW9uIFpvbmVTY29yZSh6b25lKSB7XG5cdFx0dGhpcy56b25lID0gem9uZTtcblx0XHR0aGlzLm9mZnNldFNjb3JlID0gMDtcblx0XHR0aGlzLmFiYnJTY29yZSA9IDA7XG5cdH1cblxuXHRab25lU2NvcmUucHJvdG90eXBlLnNjb3JlT2Zmc2V0QXQgPSBmdW5jdGlvbiAob2Zmc2V0QXQpIHtcblx0XHR0aGlzLm9mZnNldFNjb3JlICs9IE1hdGguYWJzKHRoaXMuem9uZS51dGNPZmZzZXQob2Zmc2V0QXQuYXQpIC0gb2Zmc2V0QXQub2Zmc2V0KTtcblx0XHRpZiAodGhpcy56b25lLmFiYnIob2Zmc2V0QXQuYXQpLnJlcGxhY2UoL1teQS1aXS9nLCAnJykgIT09IG9mZnNldEF0LmFiYnIpIHtcblx0XHRcdHRoaXMuYWJiclNjb3JlKys7XG5cdFx0fVxuXHR9O1xuXG5cdGZ1bmN0aW9uIGZpbmRDaGFuZ2UobG93LCBoaWdoKSB7XG5cdFx0dmFyIG1pZCwgZGlmZjtcblxuXHRcdHdoaWxlICgoZGlmZiA9ICgoaGlnaC5hdCAtIGxvdy5hdCkgLyAxMmU0IHwgMCkgKiA2ZTQpKSB7XG5cdFx0XHRtaWQgPSBuZXcgT2Zmc2V0QXQobmV3IERhdGUobG93LmF0ICsgZGlmZikpO1xuXHRcdFx0aWYgKG1pZC5vZmZzZXQgPT09IGxvdy5vZmZzZXQpIHtcblx0XHRcdFx0bG93ID0gbWlkO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0aGlnaCA9IG1pZDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gbG93O1xuXHR9XG5cblx0ZnVuY3Rpb24gdXNlck9mZnNldHMoKSB7XG5cdFx0dmFyIHN0YXJ0WWVhciA9IG5ldyBEYXRlKCkuZ2V0RnVsbFllYXIoKSAtIDIsXG5cdFx0XHRsYXN0ID0gbmV3IE9mZnNldEF0KG5ldyBEYXRlKHN0YXJ0WWVhciwgMCwgMSkpLFxuXHRcdFx0b2Zmc2V0cyA9IFtsYXN0XSxcblx0XHRcdGNoYW5nZSwgbmV4dCwgaTtcblxuXHRcdGZvciAoaSA9IDE7IGkgPCA0ODsgaSsrKSB7XG5cdFx0XHRuZXh0ID0gbmV3IE9mZnNldEF0KG5ldyBEYXRlKHN0YXJ0WWVhciwgaSwgMSkpO1xuXHRcdFx0aWYgKG5leHQub2Zmc2V0ICE9PSBsYXN0Lm9mZnNldCkge1xuXHRcdFx0XHRjaGFuZ2UgPSBmaW5kQ2hhbmdlKGxhc3QsIG5leHQpO1xuXHRcdFx0XHRvZmZzZXRzLnB1c2goY2hhbmdlKTtcblx0XHRcdFx0b2Zmc2V0cy5wdXNoKG5ldyBPZmZzZXRBdChuZXcgRGF0ZShjaGFuZ2UuYXQgKyA2ZTQpKSk7XG5cdFx0XHR9XG5cdFx0XHRsYXN0ID0gbmV4dDtcblx0XHR9XG5cblx0XHRmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7XG5cdFx0XHRvZmZzZXRzLnB1c2gobmV3IE9mZnNldEF0KG5ldyBEYXRlKHN0YXJ0WWVhciArIGksIDAsIDEpKSk7XG5cdFx0XHRvZmZzZXRzLnB1c2gobmV3IE9mZnNldEF0KG5ldyBEYXRlKHN0YXJ0WWVhciArIGksIDYsIDEpKSk7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG9mZnNldHM7XG5cdH1cblxuXHRmdW5jdGlvbiBzb3J0Wm9uZVNjb3JlcyAoYSwgYikge1xuXHRcdGlmIChhLm9mZnNldFNjb3JlICE9PSBiLm9mZnNldFNjb3JlKSB7XG5cdFx0XHRyZXR1cm4gYS5vZmZzZXRTY29yZSAtIGIub2Zmc2V0U2NvcmU7XG5cdFx0fVxuXHRcdGlmIChhLmFiYnJTY29yZSAhPT0gYi5hYmJyU2NvcmUpIHtcblx0XHRcdHJldHVybiBhLmFiYnJTY29yZSAtIGIuYWJiclNjb3JlO1xuXHRcdH1cblx0XHRyZXR1cm4gYi56b25lLnBvcHVsYXRpb24gLSBhLnpvbmUucG9wdWxhdGlvbjtcblx0fVxuXG5cdGZ1bmN0aW9uIGFkZFRvR3Vlc3NlcyAobmFtZSwgb2Zmc2V0cykge1xuXHRcdHZhciBpLCBvZmZzZXQ7XG5cdFx0YXJyYXlUb0ludChvZmZzZXRzKTtcblx0XHRmb3IgKGkgPSAwOyBpIDwgb2Zmc2V0cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0b2Zmc2V0ID0gb2Zmc2V0c1tpXTtcblx0XHRcdGd1ZXNzZXNbb2Zmc2V0XSA9IGd1ZXNzZXNbb2Zmc2V0XSB8fCB7fTtcblx0XHRcdGd1ZXNzZXNbb2Zmc2V0XVtuYW1lXSA9IHRydWU7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gZ3Vlc3Nlc0ZvclVzZXJPZmZzZXRzIChvZmZzZXRzKSB7XG5cdFx0dmFyIG9mZnNldHNMZW5ndGggPSBvZmZzZXRzLmxlbmd0aCxcblx0XHRcdGZpbHRlcmVkR3Vlc3NlcyA9IHt9LFxuXHRcdFx0b3V0ID0gW10sXG5cdFx0XHRpLCBqLCBndWVzc2VzT2Zmc2V0O1xuXG5cdFx0Zm9yIChpID0gMDsgaSA8IG9mZnNldHNMZW5ndGg7IGkrKykge1xuXHRcdFx0Z3Vlc3Nlc09mZnNldCA9IGd1ZXNzZXNbb2Zmc2V0c1tpXS5vZmZzZXRdIHx8IHt9O1xuXHRcdFx0Zm9yIChqIGluIGd1ZXNzZXNPZmZzZXQpIHtcblx0XHRcdFx0aWYgKGd1ZXNzZXNPZmZzZXQuaGFzT3duUHJvcGVydHkoaikpIHtcblx0XHRcdFx0XHRmaWx0ZXJlZEd1ZXNzZXNbal0gPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0Zm9yIChpIGluIGZpbHRlcmVkR3Vlc3Nlcykge1xuXHRcdFx0aWYgKGZpbHRlcmVkR3Vlc3Nlcy5oYXNPd25Qcm9wZXJ0eShpKSkge1xuXHRcdFx0XHRvdXQucHVzaChuYW1lc1tpXSk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG91dDtcblx0fVxuXG5cdGZ1bmN0aW9uIHJlYnVpbGRHdWVzcyAoKSB7XG5cblx0XHQvLyB1c2UgSW50bCBBUEkgd2hlbiBhdmFpbGFibGUgYW5kIHJldHVybmluZyB2YWxpZCB0aW1lIHpvbmVcblx0XHR0cnkge1xuXHRcdFx0dmFyIGludGxOYW1lID0gSW50bC5EYXRlVGltZUZvcm1hdCgpLnJlc29sdmVkT3B0aW9ucygpLnRpbWVab25lO1xuXHRcdFx0aWYgKGludGxOYW1lICYmIGludGxOYW1lLmxlbmd0aCA+IDMpIHtcblx0XHRcdFx0dmFyIG5hbWUgPSBuYW1lc1tub3JtYWxpemVOYW1lKGludGxOYW1lKV07XG5cdFx0XHRcdGlmIChuYW1lKSB7XG5cdFx0XHRcdFx0cmV0dXJuIG5hbWU7XG5cdFx0XHRcdH1cblx0XHRcdFx0bG9nRXJyb3IoXCJNb21lbnQgVGltZXpvbmUgZm91bmQgXCIgKyBpbnRsTmFtZSArIFwiIGZyb20gdGhlIEludGwgYXBpLCBidXQgZGlkIG5vdCBoYXZlIHRoYXQgZGF0YSBsb2FkZWQuXCIpO1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdC8vIEludGwgdW5hdmFpbGFibGUsIGZhbGwgYmFjayB0byBtYW51YWwgZ3Vlc3NpbmcuXG5cdFx0fVxuXG5cdFx0dmFyIG9mZnNldHMgPSB1c2VyT2Zmc2V0cygpLFxuXHRcdFx0b2Zmc2V0c0xlbmd0aCA9IG9mZnNldHMubGVuZ3RoLFxuXHRcdFx0Z3Vlc3NlcyA9IGd1ZXNzZXNGb3JVc2VyT2Zmc2V0cyhvZmZzZXRzKSxcblx0XHRcdHpvbmVTY29yZXMgPSBbXSxcblx0XHRcdHpvbmVTY29yZSwgaSwgajtcblxuXHRcdGZvciAoaSA9IDA7IGkgPCBndWVzc2VzLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHR6b25lU2NvcmUgPSBuZXcgWm9uZVNjb3JlKGdldFpvbmUoZ3Vlc3Nlc1tpXSksIG9mZnNldHNMZW5ndGgpO1xuXHRcdFx0Zm9yIChqID0gMDsgaiA8IG9mZnNldHNMZW5ndGg7IGorKykge1xuXHRcdFx0XHR6b25lU2NvcmUuc2NvcmVPZmZzZXRBdChvZmZzZXRzW2pdKTtcblx0XHRcdH1cblx0XHRcdHpvbmVTY29yZXMucHVzaCh6b25lU2NvcmUpO1xuXHRcdH1cblxuXHRcdHpvbmVTY29yZXMuc29ydChzb3J0Wm9uZVNjb3Jlcyk7XG5cblx0XHRyZXR1cm4gem9uZVNjb3Jlcy5sZW5ndGggPiAwID8gem9uZVNjb3Jlc1swXS56b25lLm5hbWUgOiB1bmRlZmluZWQ7XG5cdH1cblxuXHRmdW5jdGlvbiBndWVzcyAoaWdub3JlQ2FjaGUpIHtcblx0XHRpZiAoIWNhY2hlZEd1ZXNzIHx8IGlnbm9yZUNhY2hlKSB7XG5cdFx0XHRjYWNoZWRHdWVzcyA9IHJlYnVpbGRHdWVzcygpO1xuXHRcdH1cblx0XHRyZXR1cm4gY2FjaGVkR3Vlc3M7XG5cdH1cblxuXHQvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG5cdFx0R2xvYmFsIE1ldGhvZHNcblx0KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cdGZ1bmN0aW9uIG5vcm1hbGl6ZU5hbWUgKG5hbWUpIHtcblx0XHRyZXR1cm4gKG5hbWUgfHwgJycpLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFwvL2csICdfJyk7XG5cdH1cblxuXHRmdW5jdGlvbiBhZGRab25lIChwYWNrZWQpIHtcblx0XHR2YXIgaSwgbmFtZSwgc3BsaXQsIG5vcm1hbGl6ZWQ7XG5cblx0XHRpZiAodHlwZW9mIHBhY2tlZCA9PT0gXCJzdHJpbmdcIikge1xuXHRcdFx0cGFja2VkID0gW3BhY2tlZF07XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMDsgaSA8IHBhY2tlZC5sZW5ndGg7IGkrKykge1xuXHRcdFx0c3BsaXQgPSBwYWNrZWRbaV0uc3BsaXQoJ3wnKTtcblx0XHRcdG5hbWUgPSBzcGxpdFswXTtcblx0XHRcdG5vcm1hbGl6ZWQgPSBub3JtYWxpemVOYW1lKG5hbWUpO1xuXHRcdFx0em9uZXNbbm9ybWFsaXplZF0gPSBwYWNrZWRbaV07XG5cdFx0XHRuYW1lc1tub3JtYWxpemVkXSA9IG5hbWU7XG5cdFx0XHRhZGRUb0d1ZXNzZXMobm9ybWFsaXplZCwgc3BsaXRbMl0uc3BsaXQoJyAnKSk7XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gZ2V0Wm9uZSAobmFtZSwgY2FsbGVyKSB7XG5cdFx0bmFtZSA9IG5vcm1hbGl6ZU5hbWUobmFtZSk7XG5cblx0XHR2YXIgem9uZSA9IHpvbmVzW25hbWVdO1xuXHRcdHZhciBsaW5rO1xuXG5cdFx0aWYgKHpvbmUgaW5zdGFuY2VvZiBab25lKSB7XG5cdFx0XHRyZXR1cm4gem9uZTtcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIHpvbmUgPT09ICdzdHJpbmcnKSB7XG5cdFx0XHR6b25lID0gbmV3IFpvbmUoem9uZSk7XG5cdFx0XHR6b25lc1tuYW1lXSA9IHpvbmU7XG5cdFx0XHRyZXR1cm4gem9uZTtcblx0XHR9XG5cblx0XHQvLyBQYXNzIGdldFpvbmUgdG8gcHJldmVudCByZWN1cnNpb24gbW9yZSB0aGFuIDEgbGV2ZWwgZGVlcFxuXHRcdGlmIChsaW5rc1tuYW1lXSAmJiBjYWxsZXIgIT09IGdldFpvbmUgJiYgKGxpbmsgPSBnZXRab25lKGxpbmtzW25hbWVdLCBnZXRab25lKSkpIHtcblx0XHRcdHpvbmUgPSB6b25lc1tuYW1lXSA9IG5ldyBab25lKCk7XG5cdFx0XHR6b25lLl9zZXQobGluayk7XG5cdFx0XHR6b25lLm5hbWUgPSBuYW1lc1tuYW1lXTtcblx0XHRcdHJldHVybiB6b25lO1xuXHRcdH1cblxuXHRcdHJldHVybiBudWxsO1xuXHR9XG5cblx0ZnVuY3Rpb24gZ2V0TmFtZXMgKCkge1xuXHRcdHZhciBpLCBvdXQgPSBbXTtcblxuXHRcdGZvciAoaSBpbiBuYW1lcykge1xuXHRcdFx0aWYgKG5hbWVzLmhhc093blByb3BlcnR5KGkpICYmICh6b25lc1tpXSB8fCB6b25lc1tsaW5rc1tpXV0pICYmIG5hbWVzW2ldKSB7XG5cdFx0XHRcdG91dC5wdXNoKG5hbWVzW2ldKTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gb3V0LnNvcnQoKTtcblx0fVxuXG5cdGZ1bmN0aW9uIGFkZExpbmsgKGFsaWFzZXMpIHtcblx0XHR2YXIgaSwgYWxpYXMsIG5vcm1hbDAsIG5vcm1hbDE7XG5cblx0XHRpZiAodHlwZW9mIGFsaWFzZXMgPT09IFwic3RyaW5nXCIpIHtcblx0XHRcdGFsaWFzZXMgPSBbYWxpYXNlc107XG5cdFx0fVxuXG5cdFx0Zm9yIChpID0gMDsgaSA8IGFsaWFzZXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdGFsaWFzID0gYWxpYXNlc1tpXS5zcGxpdCgnfCcpO1xuXG5cdFx0XHRub3JtYWwwID0gbm9ybWFsaXplTmFtZShhbGlhc1swXSk7XG5cdFx0XHRub3JtYWwxID0gbm9ybWFsaXplTmFtZShhbGlhc1sxXSk7XG5cblx0XHRcdGxpbmtzW25vcm1hbDBdID0gbm9ybWFsMTtcblx0XHRcdG5hbWVzW25vcm1hbDBdID0gYWxpYXNbMF07XG5cblx0XHRcdGxpbmtzW25vcm1hbDFdID0gbm9ybWFsMDtcblx0XHRcdG5hbWVzW25vcm1hbDFdID0gYWxpYXNbMV07XG5cdFx0fVxuXHR9XG5cblx0ZnVuY3Rpb24gbG9hZERhdGEgKGRhdGEpIHtcblx0XHRhZGRab25lKGRhdGEuem9uZXMpO1xuXHRcdGFkZExpbmsoZGF0YS5saW5rcyk7XG5cdFx0dHouZGF0YVZlcnNpb24gPSBkYXRhLnZlcnNpb247XG5cdH1cblxuXHRmdW5jdGlvbiB6b25lRXhpc3RzIChuYW1lKSB7XG5cdFx0aWYgKCF6b25lRXhpc3RzLmRpZFNob3dFcnJvcikge1xuXHRcdFx0em9uZUV4aXN0cy5kaWRTaG93RXJyb3IgPSB0cnVlO1xuXHRcdFx0XHRsb2dFcnJvcihcIm1vbWVudC50ei56b25lRXhpc3RzKCdcIiArIG5hbWUgKyBcIicpIGhhcyBiZWVuIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgIW1vbWVudC50ei56b25lKCdcIiArIG5hbWUgKyBcIicpXCIpO1xuXHRcdH1cblx0XHRyZXR1cm4gISFnZXRab25lKG5hbWUpO1xuXHR9XG5cblx0ZnVuY3Rpb24gbmVlZHNPZmZzZXQgKG0pIHtcblx0XHR2YXIgaXNVbml4VGltZXN0YW1wID0gKG0uX2YgPT09ICdYJyB8fCBtLl9mID09PSAneCcpO1xuXHRcdHJldHVybiAhIShtLl9hICYmIChtLl90em0gPT09IHVuZGVmaW5lZCkgJiYgIWlzVW5peFRpbWVzdGFtcCk7XG5cdH1cblxuXHRmdW5jdGlvbiBsb2dFcnJvciAobWVzc2FnZSkge1xuXHRcdGlmICh0eXBlb2YgY29uc29sZSAhPT0gJ3VuZGVmaW5lZCcgJiYgdHlwZW9mIGNvbnNvbGUuZXJyb3IgPT09ICdmdW5jdGlvbicpIHtcblx0XHRcdGNvbnNvbGUuZXJyb3IobWVzc2FnZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXHRcdG1vbWVudC50eiBuYW1lc3BhY2Vcblx0KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG5cdGZ1bmN0aW9uIHR6IChpbnB1dCkge1xuXHRcdHZhciBhcmdzID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLCAwLCAtMSksXG5cdFx0XHRuYW1lID0gYXJndW1lbnRzW2FyZ3VtZW50cy5sZW5ndGggLSAxXSxcblx0XHRcdHpvbmUgPSBnZXRab25lKG5hbWUpLFxuXHRcdFx0b3V0ICA9IG1vbWVudC51dGMuYXBwbHkobnVsbCwgYXJncyk7XG5cblx0XHRpZiAoem9uZSAmJiAhbW9tZW50LmlzTW9tZW50KGlucHV0KSAmJiBuZWVkc09mZnNldChvdXQpKSB7XG5cdFx0XHRvdXQuYWRkKHpvbmUucGFyc2Uob3V0KSwgJ21pbnV0ZXMnKTtcblx0XHR9XG5cblx0XHRvdXQudHoobmFtZSk7XG5cblx0XHRyZXR1cm4gb3V0O1xuXHR9XG5cblx0dHoudmVyc2lvbiAgICAgID0gVkVSU0lPTjtcblx0dHouZGF0YVZlcnNpb24gID0gJyc7XG5cdHR6Ll96b25lcyAgICAgICA9IHpvbmVzO1xuXHR0ei5fbGlua3MgICAgICAgPSBsaW5rcztcblx0dHouX25hbWVzICAgICAgID0gbmFtZXM7XG5cdHR6LmFkZCAgICAgICAgICA9IGFkZFpvbmU7XG5cdHR6LmxpbmsgICAgICAgICA9IGFkZExpbms7XG5cdHR6LmxvYWQgICAgICAgICA9IGxvYWREYXRhO1xuXHR0ei56b25lICAgICAgICAgPSBnZXRab25lO1xuXHR0ei56b25lRXhpc3RzICAgPSB6b25lRXhpc3RzOyAvLyBkZXByZWNhdGVkIGluIDAuMS4wXG5cdHR6Lmd1ZXNzICAgICAgICA9IGd1ZXNzO1xuXHR0ei5uYW1lcyAgICAgICAgPSBnZXROYW1lcztcblx0dHouWm9uZSAgICAgICAgID0gWm9uZTtcblx0dHoudW5wYWNrICAgICAgID0gdW5wYWNrO1xuXHR0ei51bnBhY2tCYXNlNjAgPSB1bnBhY2tCYXNlNjA7XG5cdHR6Lm5lZWRzT2Zmc2V0ICA9IG5lZWRzT2Zmc2V0O1xuXHR0ei5tb3ZlSW52YWxpZEZvcndhcmQgICA9IHRydWU7XG5cdHR6Lm1vdmVBbWJpZ3VvdXNGb3J3YXJkID0gZmFsc2U7XG5cblx0LyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuXHRcdEludGVyZmFjZSB3aXRoIE1vbWVudC5qc1xuXHQqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cblx0dmFyIGZuID0gbW9tZW50LmZuO1xuXG5cdG1vbWVudC50eiA9IHR6O1xuXG5cdG1vbWVudC5kZWZhdWx0Wm9uZSA9IG51bGw7XG5cblx0bW9tZW50LnVwZGF0ZU9mZnNldCA9IGZ1bmN0aW9uIChtb20sIGtlZXBUaW1lKSB7XG5cdFx0dmFyIHpvbmUgPSBtb21lbnQuZGVmYXVsdFpvbmUsXG5cdFx0XHRvZmZzZXQ7XG5cblx0XHRpZiAobW9tLl96ID09PSB1bmRlZmluZWQpIHtcblx0XHRcdGlmICh6b25lICYmIG5lZWRzT2Zmc2V0KG1vbSkgJiYgIW1vbS5faXNVVEMpIHtcblx0XHRcdFx0bW9tLl9kID0gbW9tZW50LnV0Yyhtb20uX2EpLl9kO1xuXHRcdFx0XHRtb20udXRjKCkuYWRkKHpvbmUucGFyc2UobW9tKSwgJ21pbnV0ZXMnKTtcblx0XHRcdH1cblx0XHRcdG1vbS5feiA9IHpvbmU7XG5cdFx0fVxuXHRcdGlmIChtb20uX3opIHtcblx0XHRcdG9mZnNldCA9IG1vbS5fei51dGNPZmZzZXQobW9tKTtcblx0XHRcdGlmIChNYXRoLmFicyhvZmZzZXQpIDwgMTYpIHtcblx0XHRcdFx0b2Zmc2V0ID0gb2Zmc2V0IC8gNjA7XG5cdFx0XHR9XG5cdFx0XHRpZiAobW9tLnV0Y09mZnNldCAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdG1vbS51dGNPZmZzZXQoLW9mZnNldCwga2VlcFRpbWUpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0bW9tLnpvbmUob2Zmc2V0LCBrZWVwVGltZSk7XG5cdFx0XHR9XG5cdFx0fVxuXHR9O1xuXG5cdGZuLnR6ID0gZnVuY3Rpb24gKG5hbWUsIGtlZXBUaW1lKSB7XG5cdFx0aWYgKG5hbWUpIHtcblx0XHRcdHRoaXMuX3ogPSBnZXRab25lKG5hbWUpO1xuXHRcdFx0aWYgKHRoaXMuX3opIHtcblx0XHRcdFx0bW9tZW50LnVwZGF0ZU9mZnNldCh0aGlzLCBrZWVwVGltZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRsb2dFcnJvcihcIk1vbWVudCBUaW1lem9uZSBoYXMgbm8gZGF0YSBmb3IgXCIgKyBuYW1lICsgXCIuIFNlZSBodHRwOi8vbW9tZW50anMuY29tL3RpbWV6b25lL2RvY3MvIy9kYXRhLWxvYWRpbmcvLlwiKTtcblx0XHRcdH1cblx0XHRcdHJldHVybiB0aGlzO1xuXHRcdH1cblx0XHRpZiAodGhpcy5feikgeyByZXR1cm4gdGhpcy5fei5uYW1lOyB9XG5cdH07XG5cblx0ZnVuY3Rpb24gYWJicldyYXAgKG9sZCkge1xuXHRcdHJldHVybiBmdW5jdGlvbiAoKSB7XG5cdFx0XHRpZiAodGhpcy5feikgeyByZXR1cm4gdGhpcy5fei5hYmJyKHRoaXMpOyB9XG5cdFx0XHRyZXR1cm4gb2xkLmNhbGwodGhpcyk7XG5cdFx0fTtcblx0fVxuXG5cdGZ1bmN0aW9uIHJlc2V0Wm9uZVdyYXAgKG9sZCkge1xuXHRcdHJldHVybiBmdW5jdGlvbiAoKSB7XG5cdFx0XHR0aGlzLl96ID0gbnVsbDtcblx0XHRcdHJldHVybiBvbGQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcblx0XHR9O1xuXHR9XG5cblx0Zm4uem9uZU5hbWUgPSBhYmJyV3JhcChmbi56b25lTmFtZSk7XG5cdGZuLnpvbmVBYmJyID0gYWJicldyYXAoZm4uem9uZUFiYnIpO1xuXHRmbi51dGMgICAgICA9IHJlc2V0Wm9uZVdyYXAoZm4udXRjKTtcblxuXHRtb21lbnQudHouc2V0RGVmYXVsdCA9IGZ1bmN0aW9uKG5hbWUpIHtcblx0XHRpZiAobWFqb3IgPCAyIHx8IChtYWpvciA9PT0gMiAmJiBtaW5vciA8IDkpKSB7XG5cdFx0XHRsb2dFcnJvcignTW9tZW50IFRpbWV6b25lIHNldERlZmF1bHQoKSByZXF1aXJlcyBNb21lbnQuanMgPj0gMi45LjAuIFlvdSBhcmUgdXNpbmcgTW9tZW50LmpzICcgKyBtb21lbnQudmVyc2lvbiArICcuJyk7XG5cdFx0fVxuXHRcdG1vbWVudC5kZWZhdWx0Wm9uZSA9IG5hbWUgPyBnZXRab25lKG5hbWUpIDogbnVsbDtcblx0XHRyZXR1cm4gbW9tZW50O1xuXHR9O1xuXG5cdC8vIENsb25pbmcgYSBtb21lbnQgc2hvdWxkIGluY2x1ZGUgdGhlIF96IHByb3BlcnR5LlxuXHR2YXIgbW9tZW50UHJvcGVydGllcyA9IG1vbWVudC5tb21lbnRQcm9wZXJ0aWVzO1xuXHRpZiAoT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5jYWxsKG1vbWVudFByb3BlcnRpZXMpID09PSAnW29iamVjdCBBcnJheV0nKSB7XG5cdFx0Ly8gbW9tZW50IDIuOC4xK1xuXHRcdG1vbWVudFByb3BlcnRpZXMucHVzaCgnX3onKTtcblx0XHRtb21lbnRQcm9wZXJ0aWVzLnB1c2goJ19hJyk7XG5cdH0gZWxzZSBpZiAobW9tZW50UHJvcGVydGllcykge1xuXHRcdC8vIG1vbWVudCAyLjcuMFxuXHRcdG1vbWVudFByb3BlcnRpZXMuX3ogPSBudWxsO1xuXHR9XG5cblx0bG9hZERhdGEoe1xuXHRcdFwidmVyc2lvblwiOiBcIjIwMThlXCIsXG5cdFx0XCJ6b25lc1wiOiBbXG5cdFx0XHRcIkFmcmljYS9BYmlkamFufExNVCBHTVR8Zy44IDB8MDF8LTJsZFhILlF8NDhlNVwiLFxuXHRcdFx0XCJBZnJpY2EvQWNjcmF8TE1UIEdNVCArMDAyMHwuUSAwIC1rfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMjZCYlguOCA2dHpYLjggTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FIDFDMGsgTW5FIDFCQWsgTW5FIDFCQWsgTW5FfDQxZTVcIixcblx0XHRcdFwiQWZyaWNhL05haXJvYml8TE1UIEVBVCArMDIzMCArMDI0NXwtMnIuZyAtMzAgLTJ1IC0ySnwwMTIzMXwtMUYzQ3IuZyAzRHpyLmcgb2tNdSBNRlhKfDQ3ZTVcIixcblx0XHRcdFwiQWZyaWNhL0FsZ2llcnN8UE1UIFdFVCBXRVNUIENFVCBDRVNUfC05LmwgMCAtMTAgLTEwIC0yMHwwMTIxMjEyMTIxMjEyMTIxMzQzNDMxMzEyMTIzNDMxMjEzfC0ybmNvOS5sIGNOYjkubCBIQTAgMTlBMCAxaU0wIDExYzAgMW9vMCBXbzAgMXJjMCBRTTAgMUVNMCBVTTAgREEwIEltbzAgcmQwIERlMCA5WHowIDFmYjAgMWFwMCAxNkswIDJ5bzAgbUVwMCBod0wwIGp4QTAgMTFBMCBkRGQwIDE3YjAgMTFCMCAxY04wIDJEeTAgMWNOMCAxZkIwIDFjTDB8MjZlNVwiLFxuXHRcdFx0XCJBZnJpY2EvTGFnb3N8TE1UIFdBVHwtZC5BIC0xMHwwMXwtMjJ5MGQuQXwxN2U2XCIsXG5cdFx0XHRcIkFmcmljYS9CaXNzYXV8TE1UIC0wMSBHTVR8MTIuayAxMCAwfDAxMnwtMmxkWDAgMnhvbzB8MzllNFwiLFxuXHRcdFx0XCJBZnJpY2EvTWFwdXRvfExNVCBDQVR8LTJhLmsgLTIwfDAxfC0yR0plYS5rfDI2ZTVcIixcblx0XHRcdFwiQWZyaWNhL0NhaXJvfEVFVCBFRVNUfC0yMCAtMzB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMWJJTzAgdmIwIDFpcDAgMTF6MCAxaU4wIDFuejAgMTJwMCAxcHowIDEwTjAgMXB6MCAxNnAwIDFqejAgczNkMCBWejAgMW9OMCAxMWIwIDFvTzAgMTBOMCAxcHowIDEwTjAgMXBiMCAxME4wIDFwYjAgMTBOMCAxcGIwIDEwTjAgMXB6MCAxME4wIDFwYjAgMTBOMCAxcGIwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFvTDAgMTFkMCAxcGIwIDExZDAgMW9MMCAxMWQwIDFvTDAgMTFkMCAxb0wwIDExZDAgMXBiMCAxMWQwIDFvTDAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCAxb0wwIDExZDAgMVdMMCByZDAgMVJ6MCB3cDAgMXBiMCAxMWQwIDFvTDAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCAxcUwwIFhkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFwYjAgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFueTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCBXTDAgMXFOMCBSYjAgMXdwMCBPbjAgMXpkMCBMejAgMUVOMCBGYjAgYzEwIDhuMCA4TmQwIGdMMCBlMTAgbW4wfDE1ZTZcIixcblx0XHRcdFwiQWZyaWNhL0Nhc2FibGFuY2F8TE1UIFdFVCBXRVNUIENFVHx1LmsgMCAtMTAgLTEwfDAxMjEyMTIxMjEyMTIxMjEyMTMxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJnTW50LkUgMTMwTHQuRSByYjAgRGQwIGRWYjAgYjZwMCBUWDAgRW9CMCBMTDAgZ25kMCByejAgNDNkMCBBTDAgMU5kMCBYWDAgMUNwMCBwejAgZEVwMCA0bW4wIFN5TjAgQUwwIDFOZDAgd24wIDFGQjAgRGIwIDF6ZDAgTHowIDFOZjAgd00wIGNvMCBnbzAgMW8wMCBzMDAgZEEwIHZjMCAxMUEwIEEwMCBlMDAgeTAwIDExQTAgdU0wIGUwMCBEYzAgMTFBMCBzMDAgZTAwIElNMCBXTTAgbW8wIGdNMCBMQTAgV00wIGpBMCBlMDAgUmMwIDExQTAgZTAwIGUwMCBVMDAgMTFBMCA4bzAgZTAwIDExQTAgMTFBMCA1QTAgZTAwIDE3YzAgMWZBMCAxYTAwIDFhMDAgMWZBMCAxN2MwIDFpbzAgMTRvMCAxbGMwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbGMwIDE0bzAgMWZBMHwzMmU1XCIsXG5cdFx0XHRcIkFmcmljYS9DZXV0YXxXRVQgV0VTVCBDRVQgQ0VTVHwwIC0xMCAtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMnwtMjVLTjAgMTF6MCBkcmQwIDE4cDAgM0hYMCAxN2QwIDFmejAgMWExMCAxaW8wIDFhMDAgMXk3bzAgTEwwIGduZDAgcnowIDQzZDAgQUwwIDFOZDAgWFgwIDFDcDAgcHowIGRFcDAgNFZCMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8ODVlM1wiLFxuXHRcdFx0XCJBZnJpY2EvRWxfQWFpdW58TE1UIC0wMSBXRVQgV0VTVHxRLk0gMTAgMCAtMTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFyRHo3LmMgMUdWQTcuYyA2TDAgQUwwIDFOZDAgWFgwIDFDcDAgcHowIDFjQkIwIEFMMCAxTmQwIHduMCAxRkIwIERiMCAxemQwIEx6MCAxTmYwIHdNMCBjbzAgZ28wIDFvMDAgczAwIGRBMCB2YzAgMTFBMCBBMDAgZTAwIHkwMCAxMUEwIHVNMCBlMDAgRGMwIDExQTAgczAwIGUwMCBJTTAgV00wIG1vMCBnTTAgTEEwIFdNMCBqQTAgZTAwIFJjMCAxMUEwIGUwMCBlMDAgVTAwIDExQTAgOG8wIGUwMCAxMUEwIDExQTAgNUEwIGUwMCAxN2MwIDFmQTAgMWEwMCAxYTAwIDFmQTAgMTdjMCAxaW8wIDE0bzAgMWxjMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMWxjMCAxNG8wIDFmQTB8MjBlNFwiLFxuXHRcdFx0XCJBZnJpY2EvSm9oYW5uZXNidXJnfFNBU1QgU0FTVCBTQVNUfC0xdSAtMjAgLTMwfDAxMjEyMXwtMkdKZHUgMUFqZHUgMWNMMCAxY04wIDFjTDB8ODRlNVwiLFxuXHRcdFx0XCJBZnJpY2EvSnViYXxMTVQgQ0FUIENBU1QgRUFUfC0yNi5zIC0yMCAtMzAgLTMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzfC0xeVcyNi5zIDF6SzA2LnMgMTZMMCAxaU4wIDE3YjAgMWpkMCAxN2IwIDFpcDAgMTd6MCAxaTEwIDE3WDAgMWhCMCAxOG4wIDFoZDAgMTliMCAxZ3AwIDE5ejAgMWlOMCAxN2IwIDFpcDAgMTd6MCAxaTEwIDE4bjAgMWhkMCAxOEwwIDFnTjAgMTliMCAxZ3AwIDE5ejAgMWlOMCAxN3owIDFpMTAgMTdYMCB5R2QwXCIsXG5cdFx0XHRcIkFmcmljYS9LaGFydG91bXxMTVQgQ0FUIENBU1QgRUFUfC0yYS44IC0yMCAtMzAgLTMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzMXwtMXlXMmEuOCAxekswYS44IDE2TDAgMWlOMCAxN2IwIDFqZDAgMTdiMCAxaXAwIDE3ejAgMWkxMCAxN1gwIDFoQjAgMThuMCAxaGQwIDE5YjAgMWdwMCAxOXowIDFpTjAgMTdiMCAxaXAwIDE3ejAgMWkxMCAxOG4wIDFoZDAgMThMMCAxZ04wIDE5YjAgMWdwMCAxOXowIDFpTjAgMTd6MCAxaTEwIDE3WDAgeUdkMCBIakwwfDUxZTVcIixcblx0XHRcdFwiQWZyaWNhL01vbnJvdmlhfE1NVCBNTVQgR01UfEguOCBJLnUgMHwwMTJ8LTIzTHpnLlEgMjhHMDEubXwxMWU1XCIsXG5cdFx0XHRcIkFmcmljYS9OZGphbWVuYXxMTVQgV0FUIFdBU1R8LTEwLmMgLTEwIC0yMHwwMTIxfC0ybGUxMC5jIDJKM2MwLmMgV24wfDEzZTVcIixcblx0XHRcdFwiQWZyaWNhL1Nhb19Ub21lfExNVCBHTVQgV0FUfEEuSiAwIC0xMHwwMTJ8LTJsZTAwIDRpNk4wXCIsXG5cdFx0XHRcIkFmcmljYS9Ucmlwb2xpfExNVCBDRVQgQ0VTVCBFRVR8LVEuSSAtMTAgLTIwIC0yMHwwMTIxMjEyMTMxMjEyMTIxMjEyMTIxMjEyMTMxMjMxMjN8LTIxSmNRLkkgMWhuQlEuSSB2eDAgNGlQMCB4eDAgNGVOMCBCYjAgN2lwMCBVMG4wIEExMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFkYjAgMWVOMCAxYmIwIDFlMTAgMWNMMCAxYzEwIDFkYjAgMWRkMCAxZGIwIDFjTjAgMWRiMCAxcTEwIGZBbjAgMWVwMCAxZGIwIEFLcTAgVEEwIDFvMDB8MTFlNVwiLFxuXHRcdFx0XCJBZnJpY2EvVHVuaXN8UE1UIENFVCBDRVNUfC05LmwgLTEwIC0yMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0ybmNvOS5sIDE4cGE5LmwgMXFNMCBEQTAgM1RjMCAxMUIwIDF6ZTAgV00wIDd6MCAzZDAgMTRMMCAxY04wIDFmOTAgMWFyMCAxNkowIDFnWEIwIFdNMCAxckEwIDExYzAgbndvMCBLbzAgMWNNMCAxY00wIDFyQTAgMTBNMCB6dU0wIDEwTjAgMWFOMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMHwyMGU1XCIsXG5cdFx0XHRcIkFmcmljYS9XaW5kaG9la3wrMDEzMCBTQVNUIFNBU1QgQ0FUIFdBVHwtMXUgLTIwIC0zMCAtMjAgLTEwfDAxMjEzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzfC0yR0pkdSAxQWpkdSAxY0wwIDFTcUwwIDlJbzAgMTZQMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwfDMyZTRcIixcblx0XHRcdFwiQW1lcmljYS9BZGFrfE5TVCBOV1QgTlBUIEJTVCBCRFQgQUhTVCBIU1QgSERUfGIwIGEwIGEwIGIwIGEwIGEwIGEwIDkwfDAxMjAzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQ1Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3NnwtMTdTWDAgOHdXMCBpQjAgUWxiMCA1Mk8wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgY20wIDEwcTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MzI2XCIsXG5cdFx0XHRcIkFtZXJpY2EvQW5jaG9yYWdlfEFTVCBBV1QgQVBUIEFIU1QgQUhEVCBZU1QgQUtTVCBBS0RUfGEwIDkwIDkwIGEwIDkwIDkwIDkwIDgwfDAxMjAzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQ1Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3NnwtMTdUMDAgOHdYMCBpQTAgUWxiMCA1Mk8wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgY20wIDEwcTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MzBlNFwiLFxuXHRcdFx0XCJBbWVyaWNhL1BvcnRfb2ZfU3BhaW58TE1UIEFTVHw0Ni40IDQwfDAxfC0ya052Ui5VfDQzZTNcIixcblx0XHRcdFwiQW1lcmljYS9BcmFndWFpbmF8TE1UIC0wMyAtMDJ8M2MuTSAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ2x3TC5jIEhkS0wuYyAxY2MwIDFlMTAgMWJYMCBFemQwIFNvMCAxdkEwIE1uMCAxQkIwIE1MMCAxQkIwIHpYMCBxZTEwIHhiMCAyZXAwIG56MCAxQzEwIHpYMCAxQzEwIExYMCAxQzEwIE1uMCBIMjEwIFJiMCAxdEIwIElMMCAxRmQwIEZYMCAxRU4wIEZYMCAxSEIwIEx6MCBkTU4wIEx6MCAxemQwIFJiMCAxd04wIFduMCAxdEIwIFJiMCAxdEIwIFdMMCAxdEIwIFJiMCAxemQwIE9uMCAxSEIwIEZYMCBueTEwIEx6MHwxNGU0XCIsXG5cdFx0XHRcIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlc3xDTVQgLTA0IC0wMyAtMDJ8NGcuTSA0MCAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIzMjMyMzIzMjMyMzIzMnwtMjBVSEguYyBwS25ILmMgTW4wIDFpTjAgVGIwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIE1OMCAyanowIE1OMCA0bFgwIHUxMCA1TGIwIDFwQjAgRm56MCB1MTAgdUwwIDF2ZDAgU0wwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAgenZkMCBCejAgMXRCMCBUWDAgMXdwMCBSYjAgMXdwMCBSYjAgMXdwMCBUWDAgQTRwMCB1TDAgMXFOMCBXTDBcIixcblx0XHRcdFwiQW1lcmljYS9BcmdlbnRpbmEvQ2F0YW1hcmNhfENNVCAtMDQgLTAzIC0wMnw0Zy5NIDQwIDMwIDIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIzMjMyMzIzMTMyMzIxMjMyfC0yMFVISC5jIHBLbkguYyBNbjAgMWlOMCBUYjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgTU4wIDJqejAgTU4wIDRsWDAgdTEwIDVMYjAgMXBCMCBGbnowIHUxMCB1TDAgMXZkMCBTTDAgMXZkMCBTTDAgMXZkMCAxN3owIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCBhc24wIERiMCB6dmQwIEJ6MCAxdEIwIFRYMCAxd3AwIFJiMCAxd3EwIFJhMCAxd3AwIFRYMCBybEIwIDdCMCA4emIwIHVMMFwiLFxuXHRcdFx0XCJBbWVyaWNhL0FyZ2VudGluYS9Db3Jkb2JhfENNVCAtMDQgLTAzIC0wMnw0Zy5NIDQwIDMwIDIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIzMjMyMzIzMTMyMzIzMjMyfC0yMFVISC5jIHBLbkguYyBNbjAgMWlOMCBUYjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgTU4wIDJqejAgTU4wIDRsWDAgdTEwIDVMYjAgMXBCMCBGbnowIHUxMCB1TDAgMXZkMCBTTDAgMXZkMCBTTDAgMXZkMCAxN3owIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCBhc24wIERiMCB6dmQwIEJ6MCAxdEIwIFRYMCAxd3AwIFJiMCAxd3EwIFJhMCAxd3AwIFRYMCBBNHAwIHVMMCAxcU4wIFdMMFwiLFxuXHRcdFx0XCJBbWVyaWNhL0FyZ2VudGluYS9KdWp1eXxDTVQgLTA0IC0wMyAtMDJ8NGcuTSA0MCAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIzMjMxMjEzMjMyMzJ8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgVFgwIDF6ZTAgVFgwIDFsZDAgV0swIDF3cDAgVFgwIEE0cDAgdUwwXCIsXG5cdFx0XHRcIkFtZXJpY2EvQXJnZW50aW5hL0xhX1Jpb2phfENNVCAtMDQgLTAzIC0wMnw0Zy5NIDQwIDMwIDIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIzMjMyMzIzMTIzMjMyMTIzMnwtMjBVSEguYyBwS25ILmMgTW4wIDFpTjAgVGIwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIE1OMCAyanowIE1OMCA0bFgwIHUxMCA1TGIwIDFwQjAgRm56MCB1MTAgdUwwIDF2ZDAgU0wwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAgenZkMCBCejAgMXRCMCBUWDAgMXdwMCBRbjAgcU8wIDE2bjAgUmIwIDF3cDAgVFgwIHJsQjAgN0IwIDh6YjAgdUwwXCIsXG5cdFx0XHRcIkFtZXJpY2EvQXJnZW50aW5hL01lbmRvemF8Q01UIC0wNCAtMDMgLTAyfDRnLk0gNDAgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjMyMzIzMTIxMjEzMjEyMzJ8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgVFgwIDF1MjAgU0wwIDF2ZDAgVGIwIDF3cDAgVFcwIHJpMTAgT3AwIDdUWDAgdUwwXCIsXG5cdFx0XHRcIkFtZXJpY2EvQXJnZW50aW5hL1Jpb19HYWxsZWdvc3xDTVQgLTA0IC0wMyAtMDJ8NGcuTSA0MCAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIzMjMyMzIzMjMyMTIzMnwtMjBVSEguYyBwS25ILmMgTW4wIDFpTjAgVGIwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTFgwIDFDMTAgTW4wIE1OMCAyanowIE1OMCA0bFgwIHUxMCA1TGIwIDFwQjAgRm56MCB1MTAgdUwwIDF2ZDAgU0wwIDF2ZDAgU0wwIDF2ZDAgMTd6MCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgYXNuMCBEYjAgenZkMCBCejAgMXRCMCBUWDAgMXdwMCBSYjAgMXdwMCBSYjAgMXdwMCBUWDAgcmxCMCA3QjAgOHpiMCB1TDBcIixcblx0XHRcdFwiQW1lcmljYS9BcmdlbnRpbmEvU2FsdGF8Q01UIC0wNCAtMDMgLTAyfDRnLk0gNDAgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjMyMzIzMjMxMzIzMjMyfC0yMFVISC5jIHBLbkguYyBNbjAgMWlOMCBUYjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBMWDAgMUMxMCBNbjAgTU4wIDJqejAgTU4wIDRsWDAgdTEwIDVMYjAgMXBCMCBGbnowIHUxMCB1TDAgMXZkMCBTTDAgMXZkMCBTTDAgMXZkMCAxN3owIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCBhc24wIERiMCB6dmQwIEJ6MCAxdEIwIFRYMCAxd3AwIFJiMCAxd3EwIFJhMCAxd3AwIFRYMCBBNHAwIHVMMFwiLFxuXHRcdFx0XCJBbWVyaWNhL0FyZ2VudGluYS9TYW5fSnVhbnxDTVQgLTA0IC0wMyAtMDJ8NGcuTSA0MCAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIzMjMyMzEyMzIzMjEyMzJ8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgVFgwIDF3cDAgUW4wIHFPMCAxNm4wIFJiMCAxd3AwIFRYMCBybGQwIG0xMCA4bGIwIHVMMFwiLFxuXHRcdFx0XCJBbWVyaWNhL0FyZ2VudGluYS9TYW5fTHVpc3xDTVQgLTA0IC0wMyAtMDJ8NGcuTSA0MCAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIzMjMxMjEyMTIzMjEyMTJ8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgWFgwIDFxMjAgU0wwIEFOMCB2RGIwIG0xMCA4bGIwIDhMMCBqZDAgMXFOMCBXTDAgMXFOMFwiLFxuXHRcdFx0XCJBbWVyaWNhL0FyZ2VudGluYS9UdWN1bWFufENNVCAtMDQgLTAzIC0wMnw0Zy5NIDQwIDMwIDIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIzMjMyMzIzMTMyMzIxMjMyMzJ8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgVFgwIDF3cDAgUmIwIDF3cTAgUmEwIDF3cDAgVFgwIHJsQjAgNE4wIDhCWDAgdUwwIDFxTjAgV0wwXCIsXG5cdFx0XHRcIkFtZXJpY2EvQXJnZW50aW5hL1VzaHVhaWF8Q01UIC0wNCAtMDMgLTAyfDRnLk0gNDAgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjMyMzIzMjMyMzIzMjEyMzJ8LTIwVUhILmMgcEtuSC5jIE1uMCAxaU4wIFRiMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIExYMCAxQzEwIE1uMCBNTjAgMmp6MCBNTjAgNGxYMCB1MTAgNUxiMCAxcEIwIEZuejAgdTEwIHVMMCAxdmQwIFNMMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIHp2ZDAgQnowIDF0QjAgVFgwIDF3cDAgUmIwIDF3cDAgUmIwIDF3cDAgVFgwIHJrTjAgOHAwIDh6YjAgdUwwXCIsXG5cdFx0XHRcIkFtZXJpY2EvQ3VyYWNhb3xMTVQgLTA0MzAgQVNUfDR6LkwgNHUgNDB8MDEyfC0ya1Y3by5kIDI4S0xTLmR8MTVlNFwiLFxuXHRcdFx0XCJBbWVyaWNhL0FzdW5jaW9ufEFNVCAtMDQgLTAzfDNPLkUgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyfC0xeDU4OS5rIDFES005LmsgM0NMMCAzRGQwIDEwTDAgMXBCMCAxMG4wIDFwQjAgMTBuMCAxcEIwIDFjTDAgMWRkMCAxZGIwIDFkZDAgMWNMMCAxZGQwIDFjTDAgMWRkMCAxY0wwIDFkZDAgMWRiMCAxZGQwIDFjTDAgMWRkMCAxY0wwIDFkZDAgMWNMMCAxZGQwIDFkYjAgMWRkMCAxY0wwIDFsQjAgMTRuMCAxZGQwIDFjTDAgMWZkMCBXTDAgMXJkMCAxYUwwIDFkQjAgWHowIDFxcDAgWGIwIDFxTjAgMTBMMCAxckIwIFRYMCAxdEIwIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDFjTDAgV04wIDFxTDAgMTFCMCAxblgwIDFpcDAgV0wwIDFxTjAgV0wwIDFxTjAgV0wwIDF0QjAgVFgwIDF0QjAgVFgwIDF0QjAgMTlYMCAxYTEwIDFmejAgMWExMCAxZnowIDFjTjAgMTdiMCAxaXAwIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFpcDAgMTdiMCAxaXAwIDE3YjAgMWlwMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFpcDAgMTdiMCAxaXAwIDE3YjAgMWlwMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWlwMCAxN2IwIDFpcDAgMTdiMCAxaXAwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWlwMCAxN2IwIDFpcDAgMTdiMCAxaXAwfDI4ZTVcIixcblx0XHRcdFwiQW1lcmljYS9BdGlrb2thbnxDU1QgQ0RUIENXVCBDUFQgRVNUfDYwIDUwIDUwIDUwIDUwfDAxMDEyMzR8LTI1VFEwIDFpbjAgUm5iMCAzamUwIDh4MzAgaXcwfDI4ZTJcIixcblx0XHRcdFwiQW1lcmljYS9CYWhpYV9CYW5kZXJhc3xMTVQgTVNUIENTVCBQU1QgTURUIENEVHw3MSA3MCA2MCA4MCA2MCA1MHwwMTIxMjEyMTMxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyfC0xVVFGMCBkZUwwIDhsYzAgMTdjMCAxME0wIDFkZDAgb3RYMCBnbU4wIFAyTjAgMTNWZDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuVzAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjB8ODRlM1wiLFxuXHRcdFx0XCJBbWVyaWNhL0JhaGlhfExNVCAtMDMgLTAyfDJ5LjQgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJnbHhwLlUgSGRMcC5VIDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIDFFTjAgRlgwIDFIQjAgTHowIDFFTjAgTHowIDFDMTAgSUwwIDFIQjAgRGIwIDFIQjAgT24wIDF6ZDAgT24wIDF6ZDAgTHowIDF6ZDAgUmIwIDF3TjAgV24wIDF0QjAgUmIwIDF0QjAgV0wwIDF0QjAgUmIwIDF6ZDAgT24wIDFIQjAgRlgwIGw1QjAgUmIwfDI3ZTVcIixcblx0XHRcdFwiQW1lcmljYS9CYXJiYWRvc3xMTVQgQk1UIEFTVCBBRFR8M1cudCAzVy50IDQwIDMwfDAxMjMyMzIzMjMyfC0xUTBJMS52IGpzTTAgMU9EQzEudiBJTDAgMWlwMCAxN2IwIDFpcDAgMTdiMCAxbGQwIDEzYjB8MjhlNFwiLFxuXHRcdFx0XCJBbWVyaWNhL0JlbGVtfExNVCAtMDMgLTAyfDNkLlUgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ2x3Sy40IEhkS0suNCAxY2MwIDFlMTAgMWJYMCBFemQwIFNvMCAxdkEwIE1uMCAxQkIwIE1MMCAxQkIwIHpYMCBxZTEwIHhiMCAyZXAwIG56MCAxQzEwIHpYMCAxQzEwIExYMCAxQzEwIE1uMCBIMjEwIFJiMCAxdEIwIElMMCAxRmQwIEZYMHwyMGU1XCIsXG5cdFx0XHRcIkFtZXJpY2EvQmVsaXplfExNVCBDU1QgLTA1MzAgQ0RUfDVRLk0gNjAgNXUgNTB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTMxMzF8LTJrQnU3LmMgZlBBNy5jIE9udSAxemN1IFJidSAxd291IFJidSAxd291IFJidSAxemN1IE9udSAxemN1IE9udSAxemN1IFJidSAxd291IFJidSAxd291IFJidSAxd291IFJidSAxemN1IE9udSAxemN1IE9udSAxemN1IFJidSAxd291IFJidSAxd291IFJidSAxemN1IE9udSAxemN1IE9udSAxemN1IE9udSAxemN1IFJidSAxd291IFJidSAxd291IFJidSAxemN1IE9udSAxemN1IE9udSAxemN1IFJidSAxd291IFJidSAxZjBNdSBxbjAgbHhCMCBtbjB8NTdlM1wiLFxuXHRcdFx0XCJBbWVyaWNhL0JsYW5jLVNhYmxvbnxBU1QgQURUIEFXVCBBUFR8NDAgMzAgMzAgMzB8MDEwMjMwfC0yNVRTMCAxaW4wIFVHcDAgOHg1MCBpdTB8MTFlMlwiLFxuXHRcdFx0XCJBbWVyaWNhL0JvYV9WaXN0YXxMTVQgLTA0IC0wM3w0Mi5FIDQwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJnbHZWLmsgSGRLVi5rIDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIHNtcDAgV0wwIDF0QjAgMkwwfDYyZTJcIixcblx0XHRcdFwiQW1lcmljYS9Cb2dvdGF8Qk1UIC0wNSAtMDR8NFUuZyA1MCA0MHwwMTIxfC0yZWI3My5JIDM4eW8zLkkgMmVuMHw5MGU1XCIsXG5cdFx0XHRcIkFtZXJpY2EvQm9pc2V8UFNUIFBEVCBNU1QgTVdUIE1QVCBNRFR8ODAgNzAgNzAgNjAgNjAgNjB8MDEwMTAyMzQyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MnwtMjYxcTAgMW5YMCAxMUIwIDFuWDAgOEMxMCBKQ0wwIDh4MjAgaXgwIFF3TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBEZDAgMUtuMCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MjFlNFwiLFxuXHRcdFx0XCJBbWVyaWNhL0NhbWJyaWRnZV9CYXl8LTAwIE1TVCBNV1QgTVBUIE1ERFQgTURUIENTVCBDRFQgRVNUfDAgNzAgNjAgNjAgNTAgNjAgNjAgNTAgNTB8MDEyMzE0MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTY3ODY1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MXwtMjFKYzAgUk85MCA4eDIwIGl4MCBMQ0wwIDFmQTAgemdPMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUEwIDFuWDAgMkswIFdRMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MTVlMlwiLFxuXHRcdFx0XCJBbWVyaWNhL0NhbXBvX0dyYW5kZXxMTVQgLTA0IC0wM3wzQy5zIDQwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMnwtMmdsd2wudyBIZExsLncgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgMUVOMCBMejAgMUMxMCBJTDAgMUhCMCBEYjAgMUhCMCBPbjAgMXpkMCBPbjAgMXpkMCBMejAgMXpkMCBSYjAgMXdOMCBXbjAgMXRCMCBSYjAgMXRCMCBXTDAgMXRCMCBSYjAgMXpkMCBPbjAgMUhCMCBGWDAgMUMxMCBMejAgMUlwMCBIWDAgMXpkMCBPbjAgMUhCMCBJTDAgMXdwMCBPbjAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCBPbjAgMXpkMCBSYjAgMXpkMCBMejAgMUMxMCBMejAgMUMxMCBPbjAgMXpkMCBPbjAgMXpkMCBPbjAgMXpkMCBPbjAgMUhCMCBGWDAgMUhCMCBGWDAgMUhCMCBJTDAgMUhCMCBGWDAgMUhCMCBJTDAgMUVOMCBGWDAgMUhCMCBGWDAgMUhCMCBJTDAgMUVOMCBJTDAgMUhCMCBGWDAgMUhCMCBGWDAgMUhCMCBGWDAgMUhCMCBGWDAgMUhCMCBGWDAgMUtwMCBGWDAgMUhCMCBJTDAgMUVOMCBGWDAgMUhCMCBGWDAgMUhCMCBJTDAgMUVOMHw3N2U0XCIsXG5cdFx0XHRcIkFtZXJpY2EvQ2FuY3VufExNVCBDU1QgRVNUIEVEVCBDRFR8NUwuNCA2MCA1MCA0MCA1MHwwMTIzMjMyMzQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDEyfC0xVVFHMCAycTJvMCB5TEIwIDFsYjAgMTRwMCAxbGIwIDE0cDAgTHowIHhCMCAxNHAwIDFuWDAgMTFCMCAxblgwIDFmQjAgV0wwIDFmQjAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCBEZDB8NjNlNFwiLFxuXHRcdFx0XCJBbWVyaWNhL0NhcmFjYXN8Q01UIC0wNDMwIC0wNHw0ci5FIDR1IDQwfDAxMjEyfC0ya1Y3dy5rIDI4S00yLmsgMUl3T3Uga3FvMHwyOWU1XCIsXG5cdFx0XHRcIkFtZXJpY2EvQ2F5ZW5uZXxMTVQgLTA0IC0wM3wzdC5rIDQwIDMwfDAxMnwtMm1yd3UuRSAyZ1dvdS5FfDU4ZTNcIixcblx0XHRcdFwiQW1lcmljYS9QYW5hbWF8Q01UIEVTVHw1ai5BIDUwfDAxfC0ydWR1RS5vfDE1ZTVcIixcblx0XHRcdFwiQW1lcmljYS9DaGljYWdvfENTVCBDRFQgRVNUIENXVCBDUFR8NjAgNTAgNTAgNTAgNTB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDIwMTAxMDEwMTAxMDM0MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI2MXMwIDFuWDAgMTFCMCAxblgwIDF3cDAgVFgwIFdOMCAxcUwwIDFjTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDExQjAgMUh6MCAxNHAwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgUkIwIDh4MzAgaXcwIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHw5MmU1XCIsXG5cdFx0XHRcIkFtZXJpY2EvQ2hpaHVhaHVhfExNVCBNU1QgQ1NUIENEVCBNRFR8NzQuayA3MCA2MCA1MCA2MHwwMTIxMjEyMzIzMjQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxfC0xVVFGMCBkZUwwIDhsYzAgMTdjMCAxME0wIDFkZDAgMnpRTjAgMWxiMCAxNHAwIDFsYjAgMTRxMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjB8ODFlNFwiLFxuXHRcdFx0XCJBbWVyaWNhL0Nvc3RhX1JpY2F8U0pNVCBDU1QgQ0RUfDVBLmQgNjAgNTB8MDEyMTIxMjEyMXwtMVhkNm4uTCAybHUwbi5MIERiMCAxS3AwIERiMCBwUkIwIDE1YjAgMWtwMCBtTDB8MTJlNVwiLFxuXHRcdFx0XCJBbWVyaWNhL0NyZXN0b258TVNUIFBTVHw3MCA4MHwwMTB8LTI5RFIwIDQzQjB8NTNlMlwiLFxuXHRcdFx0XCJBbWVyaWNhL0N1aWFiYXxMTVQgLTA0IC0wM3wzSS5rIDQwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTJ8LTJnbHdmLkUgSGRMZi5FIDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIDFFTjAgRlgwIDFIQjAgTHowIDFFTjAgTHowIDFDMTAgSUwwIDFIQjAgRGIwIDFIQjAgT24wIDF6ZDAgT24wIDF6ZDAgTHowIDF6ZDAgUmIwIDF3TjAgV24wIDF0QjAgUmIwIDF0QjAgV0wwIDF0QjAgUmIwIDF6ZDAgT24wIDFIQjAgRlgwIDRhMTAgSFgwIDF6ZDAgT24wIDFIQjAgSUwwIDF3cDAgT24wIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgT24wIDF6ZDAgUmIwIDF6ZDAgTHowIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDFIQjAgRlgwIDFIQjAgRlgwIDFIQjAgSUwwIDFIQjAgRlgwIDFIQjAgSUwwIDFFTjAgRlgwIDFIQjAgRlgwIDFIQjAgSUwwIDFFTjAgSUwwIDFIQjAgRlgwIDFIQjAgRlgwIDFIQjAgRlgwIDFIQjAgRlgwIDFIQjAgRlgwIDFLcDAgRlgwIDFIQjAgSUwwIDFFTjAgRlgwIDFIQjAgRlgwIDFIQjAgSUwwIDFFTjB8NTRlNFwiLFxuXHRcdFx0XCJBbWVyaWNhL0Rhbm1hcmtzaGF2bnxMTVQgLTAzIC0wMiBHTVR8MWUuRSAzMCAyMCAwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEzfC0yYTVXSi5rIDJ6NWZKLmsgMTlVMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCBEQzB8OFwiLFxuXHRcdFx0XCJBbWVyaWNhL0Rhd3Nvbl9DcmVla3xQU1QgUERUIFBXVCBQUFQgTVNUfDgwIDcwIDcwIDcwIDcwfDAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTR8LTI1VE8wIDFpbjAgVUdwMCA4eDEwIGl5MCAzTkIwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgTUwwfDEyZTNcIixcblx0XHRcdFwiQW1lcmljYS9EYXdzb258WVNUIFlEVCBZV1QgWVBUIFlERFQgUFNUIFBEVHw5MCA4MCA4MCA4MCA3MCA4MCA3MHwwMTAxMDIzMDQwNTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1fC0yNVROMCAxaW4wIDFvMTAgMTNWMCBTZXIwIDh4MDAgaXowIExDTDAgMWZBMCBqckEwIGZOZDAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwfDEzZTJcIixcblx0XHRcdFwiQW1lcmljYS9EZW52ZXJ8TVNUIE1EVCBNV1QgTVBUfDcwIDYwIDYwIDYwfDAxMDEwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNjFyMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIG1uMCBPcmQwIDh4MjAgaXgwIExDTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHwyNmU1XCIsXG5cdFx0XHRcIkFtZXJpY2EvRGV0cm9pdHxMTVQgQ1NUIEVTVCBFV1QgRVBUIEVEVHw1dy5iIDYwIDUwIDQwIDQwIDQwfDAxMjM0MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MnwtMkNnaXIuTiBwZXFyLk4gMTU2TDAgOHg0MCBpdjAgNmZkMCAxMXowIFhRcDAgMWNMMCBzMTAgMVZ6MCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwfDM3ZTVcIixcblx0XHRcdFwiQW1lcmljYS9FZG1vbnRvbnxMTVQgTVNUIE1EVCBNV1QgTVBUfDd4LlEgNzAgNjAgNjAgNjB8MDEyMTIxMjEyMTIxMjEzNDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJ5ZDRxLjggc2hkcS44IDFpbjAgMTdkMCBoejAgMmRCMCAxZnowIDFhMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgSUdOMCA4eDIwIGl4MCAzTkIwIDExejAgTEZCMCAxY0wwIDNDcDAgMWNMMCA2Nk4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwfDEwZTVcIixcblx0XHRcdFwiQW1lcmljYS9FaXJ1bmVwZXxMTVQgLTA1IC0wNHw0RC5zIDUwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJnbHZrLncgSGRMay53IDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIGRQQjAgT24wIHlUZDAgZDVYMHwzMWUzXCIsXG5cdFx0XHRcIkFtZXJpY2EvRWxfU2FsdmFkb3J8TE1UIENTVCBDRFR8NVUuTSA2MCA1MHwwMTIxMjF8LTFYaUczLmMgMkZ2YzMuYyBXTDAgMXFOMCBXTDB8MTFlNVwiLFxuXHRcdFx0XCJBbWVyaWNhL1RpanVhbmF8TE1UIE1TVCBQU1QgUERUIFBXVCBQUFR8N00uNCA3MCA4MCA3MCA3MCA3MHwwMTIxMjMyNDUyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFVUUUwIDRQWDAgOG1NMCA4bGMwIFNOMCAxY0wwIHBIQjAgODNyMCB6STAgNU8xMCAxUnowIGNPTzAgMTFBMCAxbzAwIDExQTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCBCVXAwIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgVTEwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MjBlNVwiLFxuXHRcdFx0XCJBbWVyaWNhL0ZvcnRfTmVsc29ufFBTVCBQRFQgUFdUIFBQVCBNU1R8ODAgNzAgNzAgNzAgNzB8MDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDR8LTI1VE8wIDFpbjAgVUdwMCA4eDEwIGl5MCAzTkIwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwfDM5ZTJcIixcblx0XHRcdFwiQW1lcmljYS9Gb3J0X1dheW5lfENTVCBDRFQgQ1dUIENQVCBFU1QgRURUfDYwIDUwIDUwIDUwIDUwIDQwfDAxMDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTA0MDQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgUUkxMCBEYjAgUkIwIDh4MzAgaXcwIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCA1VHowIDFvMTAgcUxiMCAxY0wwIDFjTjAgMWNMMCAxcWhkMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwXCIsXG5cdFx0XHRcIkFtZXJpY2EvRm9ydGFsZXphfExNVCAtMDMgLTAyfDJ5IDMwIDIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJnbHhxIEhkTHEgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgbnNwMCBXTDAgMXRCMCA1ejAgMm1OMCBPbjB8MzRlNVwiLFxuXHRcdFx0XCJBbWVyaWNhL0dsYWNlX0JheXxMTVQgQVNUIEFEVCBBV1QgQVBUfDNYLk0gNDAgMzAgMzAgMzB8MDEyMTM0MTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0ySXNJMC5jIEN3TzAuYyAxaW4wIFVHcDAgOHg1MCBpdTAgaXExMCAxMXowIEpnMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MTllM1wiLFxuXHRcdFx0XCJBbWVyaWNhL0dvZHRoYWJ8TE1UIC0wMyAtMDJ8M3EuVSAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yYTVVeC40IDJ6NWR4LjQgMTlVMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDE3ZTNcIixcblx0XHRcdFwiQW1lcmljYS9Hb29zZV9CYXl8TlNUIE5EVCBOU1QgTkRUIE5XVCBOUFQgQVNUIEFEVCBBRERUfDN1LlEgMnUuUSAzdSAydSAydSAydSA0MCAzMCAyMHwwMTAyMzIzMjMyMzIzMjMyNDUyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njg2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzZ8LTI1VFN0LjggMWluMCBEWGIwIDJIYlguOCBXTDAgMXFOMCBXTDAgMXFOMCBXTDAgMXRCMCBUWDAgMXRCMCBXTDAgMXFOMCBXTDAgMXFOMCA3VUh1IGl0dSAxdEIwIFdMMCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIFdMMCAxdEIwIFdMMCAxbGQwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCBTMTAgZzB1IDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNG4xIDFsYjAgMTRwMCAxblcwIDExQzAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemNYIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwfDc2ZTJcIixcblx0XHRcdFwiQW1lcmljYS9HcmFuZF9UdXJrfEtNVCBFU1QgRURUIEFTVHw1Ny5hIDUwIDQwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjMyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0ybDF1US5PIDJISEJRLk8gMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCA1SXAwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MzdlMlwiLFxuXHRcdFx0XCJBbWVyaWNhL0d1YXRlbWFsYXxMTVQgQ1NUIENEVHw2Mi40IDYwIDUwfDAxMjEyMTIxMjF8LTI0S2hWLlUgMmVmWFYuVSBBbjAgbXRkMCBOejAgaWZCMCAxN2IwIHpEQjAgMTF6MHwxM2U1XCIsXG5cdFx0XHRcIkFtZXJpY2EvR3VheWFxdWlsfFFNVCAtMDUgLTA0fDVlIDUwIDQwfDAxMjF8LTF5VlNLIDJ1SUxLIHJ6MHwyN2U1XCIsXG5cdFx0XHRcIkFtZXJpY2EvR3V5YW5hfExNVCAtMDM0NSAtMDMgLTA0fDNRLkUgM0ogMzAgNDB8MDEyM3wtMmR2VTcuayAycjZMUS5rIEJ4YmZ8ODBlNFwiLFxuXHRcdFx0XCJBbWVyaWNhL0hhbGlmYXh8TE1UIEFTVCBBRFQgQVdUIEFQVHw0ZS5vIDQwIDMwIDMwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJJc0hKLkEgeHp6Si5BIDFkYjAgM0kzMCAxaW4wIDNIWDAgSUwwIDFFMTAgTUwwIDF5TjAgUGIwIDFCZDAgTW4wIDFCZDAgUnowIDF3MTAgWGIwIDF3MTAgTFgwIDF3MTAgWGIwIDF3MTAgTHowIDFDMTAgSnowIDFFMTAgT0wwIDF5TjAgVW4wIDFxcDAgWGIwIDFxcDAgMTFYMCAxdzEwIEx6MCAxSEIwIExYMCAxQzEwIEZYMCAxdzEwIFhiMCAxcXAwIFhiMCAxQkIwIExYMCAxdGQwIFhiMCAxcXAwIFhiMCBSZjAgOHg1MCBpdTAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDNRcDAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAzUXAwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgNmkxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MzllNFwiLFxuXHRcdFx0XCJBbWVyaWNhL0hhdmFuYXxITVQgQ1NUIENEVHw1dC5BIDUwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMU1ldXUubyA3Mnp1Lm8gTUwwIHNsZDAgQW4wIDFOZDAgRGIwIDFOZDAgQW4wIDZFcDAgQW4wIDFOZDAgQW4wIEpEZDAgTW4wIDFBcDAgT24wIDFmZDAgMTFYMCAxcU4wIFdMMCAxd3AwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDE0bjAgMWxkMCAxNEwwIDFrTjAgMTViMCAxa3AwIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxZkIwIDExejAgMTRwMCAxblgwIDExQjAgMW5YMCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDE0bjAgMWxkMCAxNG4wIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxYTEwIDFpbjAgMWExMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxZkEwIDE3YzAgMW8wMCAxMUEwIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDExQTAgNmkwMCBSYzAgMXdvMCBVMDAgMXRBMCBSYzAgMXdvMCBVMDAgMXdvMCBVMDAgMXpjMCBVMDAgMXFNMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMHwyMWU1XCIsXG5cdFx0XHRcIkFtZXJpY2EvSGVybW9zaWxsb3xMTVQgTVNUIENTVCBQU1QgTURUfDduLlEgNzAgNjAgODAgNjB8MDEyMTIxMjEzMTQxNDE0MXwtMVVRRjAgZGVMMCA4bGMwIDE3YzAgMTBNMCAxZGQwIG90WDAgZ21OMCBQMk4wIDEzVmQwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMHw2NGU0XCIsXG5cdFx0XHRcIkFtZXJpY2EvSW5kaWFuYS9Lbm94fENTVCBDRFQgQ1dUIENQVCBFU1R8NjAgNTAgNTAgNTAgNTB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTA0MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE0MTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCAzTkIwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDExejAgMW8xMCAxMXowIDFvMTAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgM0NuMCA4d3AwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIHo4bzAgMW8wMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMFwiLFxuXHRcdFx0XCJBbWVyaWNhL0luZGlhbmEvTWFyZW5nb3xDU1QgQ0RUIENXVCBDUFQgRVNUIEVEVHw2MCA1MCA1MCA1MCA1MCA0MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTA0NTQ1NDU0NTQ1NDE0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFzMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MzAgaXcwIGR5TjAgMTF6MCA2ZmQwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBqcnowIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVkEwIExBMCAxQlgwIDFlNnAwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjBcIixcblx0XHRcdFwiQW1lcmljYS9JbmRpYW5hL1BldGVyc2J1cmd8Q1NUIENEVCBDV1QgQ1BUIEVTVCBFRFR8NjAgNTAgNTAgNTAgNTAgNDB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDQwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNDEwMTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTI2MXMwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgzMCBpdzAgbmpYMCBXTjAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAzRmIwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDE5Y28wIDFvMDAgUmQwIDF6YjAgT28wIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjBcIixcblx0XHRcdFwiQW1lcmljYS9JbmRpYW5hL1RlbGxfQ2l0eXxDU1QgQ0RUIENXVCBDUFQgRVNUIEVEVHw2MCA1MCA1MCA1MCA1MCA0MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDQ1NDU0MTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCAxbzEwIDExejAgZzBwMCAxMXowIDFvMTAgMTF6MCAxcUwwIFdOMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgV0wwIDFxTjAgMWNMMCAxY04wIDFjTDAgMWNOMCBjYUwwIDFjTDAgMWNOMCAxY0wwIDFxaGQwIDFvMDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjBcIixcblx0XHRcdFwiQW1lcmljYS9JbmRpYW5hL1ZldmF5fENTVCBDRFQgQ1dUIENQVCBFU1QgRURUfDYwIDUwIDUwIDUwIDUwIDQwfDAxMDEwMjMwNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCBrUEIwIEF3bjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxbG5kMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwXCIsXG5cdFx0XHRcIkFtZXJpY2EvSW5kaWFuYS9WaW5jZW5uZXN8Q1NUIENEVCBDV1QgQ1BUIEVTVCBFRFR8NjAgNTAgNTAgNTAgNTAgNDB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTA0NTQ1NDEwMTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTI2MXMwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgzMCBpdzAgMW8xMCAxMXowIGcwcDAgMTF6MCAxbzEwIDExejAgMXFMMCBXTjAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMWZ6MCAxY04wIFdMMCAxcU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgY2FMMCAxY0wwIDFjTjAgMWNMMCAxcWhkMCAxbzAwIFJkMCAxemIwIE9vMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwXCIsXG5cdFx0XHRcIkFtZXJpY2EvSW5kaWFuYS9XaW5hbWFjfENTVCBDRFQgQ1dUIENQVCBFU1QgRURUfDYwIDUwIDUwIDUwIDUwIDQwfDAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwNDU0NTQxMDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFzMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MzAgaXcwIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBqcnowIDFjTDAgMWNOMCAxY0wwIDFxaGQwIDFvMDAgUmQwIDF6YTAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjBcIixcblx0XHRcdFwiQW1lcmljYS9JbnV2aWt8LTAwIFBTVCBQRERUIE1TVCBNRFR8MCA4MCA2MCA3MCA2MHwwMTIxMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzfC1GbkEwIHRXVTAgMWZBMCB3UGUwIDJwejAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwfDM1ZTJcIixcblx0XHRcdFwiQW1lcmljYS9JcWFsdWl0fC0wMCBFV1QgRVBUIEVTVCBFRERUIEVEVCBDU1QgQ0RUfDAgNDAgNDAgNTAgMzAgNDAgNjAgNTB8MDEyMzQzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1NjczNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTM1MzUzNTN8LTE2SzAwIDduWDAgaXYwIExDTDAgMWZBMCB6Z08wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQzAgMW5YMCAxMUEwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHw2N2UyXCIsXG5cdFx0XHRcIkFtZXJpY2EvSmFtYWljYXxLTVQgRVNUIEVEVHw1Ny5hIDUwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJsMXVRLk8gMnVNMVEuTyAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejB8OTRlNFwiLFxuXHRcdFx0XCJBbWVyaWNhL0p1bmVhdXxQU1QgUFdUIFBQVCBQRFQgWURUIFlTVCBBS1NUIEFLRFR8ODAgNzAgNzAgNzAgODAgOTAgOTAgODB8MDEyMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzA0MDMwMzAzNTY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzZ8LTE3VDIwIDh4MTAgaXkwIFZvMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNNMCAxY00wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCBjbzAgMTBxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHwzM2UzXCIsXG5cdFx0XHRcIkFtZXJpY2EvS2VudHVja3kvTG91aXN2aWxsZXxDU1QgQ0RUIENXVCBDUFQgRVNUIEVEVHw2MCA1MCA1MCA1MCA1MCA0MHwwMTAxMDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNDU0NTQ1NDU0NTQ1NDE0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFzMCAxblgwIDExQjAgMW5YMCAzRmQwIE5iMCBMUGQwIDExejAgUkIwIDh4MzAgaXcwIEJiMCAxME4wIDJiQjAgOGluMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCB4ejAgZ3NvMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWQTAgTEEwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwXCIsXG5cdFx0XHRcIkFtZXJpY2EvS2VudHVja3kvTW9udGljZWxsb3xDU1QgQ0RUIENXVCBDUFQgRVNUIEVEVHw2MCA1MCA1MCA1MCA1MCA0MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFzMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MzAgaXcwIFNXcDAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUEwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMFwiLFxuXHRcdFx0XCJBbWVyaWNhL0xhX1BhenxDTVQgQlNUIC0wNHw0dy5BIDN3LkEgNDB8MDEyfC0xeDM3ci5vIDEzYjB8MTllNVwiLFxuXHRcdFx0XCJBbWVyaWNhL0xpbWF8TE1UIC0wNSAtMDR8NTguQSA1MCA0MHwwMTIxMjEyMTIxMjEyMTIxfC0ydHlHUC5vIDFiRHpQLm8gelgwIDFhTjAgMWNMMCAxY04wIDFjTDAgMVByQjAgelgwIDFPMTAgelgwIDZHcDAgelgwIDk4cDAgelgwfDExZTZcIixcblx0XHRcdFwiQW1lcmljYS9Mb3NfQW5nZWxlc3xQU1QgUERUIFBXVCBQUFR8ODAgNzAgNzAgNzB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNjFxMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MTAgaXkwIDVXcDEgMVZhWCAzZEEwIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwfDE1ZTZcIixcblx0XHRcdFwiQW1lcmljYS9NYWNlaW98TE1UIC0wMyAtMDJ8Mm0uUSAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJnbHhCLjggSGRMQi44IDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHFlMTAgeGIwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIDFFTjAgRlgwIDFIQjAgTHowIGRNTjAgTHowIDhRMTAgV0wwIDF0QjAgNXowIDJtTjAgT24wfDkzZTRcIixcblx0XHRcdFwiQW1lcmljYS9NYW5hZ3VhfE1NVCBDU1QgRVNUIENEVHw1Si5jIDYwIDUwIDUwfDAxMjEzMTMxMjEyMTMxMzF8LTFxdWllLk0gMXlBTWUuTSA0bW4wIDlVcDAgRHowIDFLMTAgRHowIHMzRjAgMUtIMCBEQjAgOUluMCBrOHAwIDE5WDAgMW8zMCAxMXkwfDIyZTVcIixcblx0XHRcdFwiQW1lcmljYS9NYW5hdXN8TE1UIC0wNCAtMDN8NDAuNCA0MCAzMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdsdlguVSBIZEtYLlUgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgZFBCMCBPbjB8MTllNVwiLFxuXHRcdFx0XCJBbWVyaWNhL01hcnRpbmlxdWV8RkZNVCBBU1QgQURUfDQ0LmsgNDAgMzB8MDEyMXwtMm1QVFQuRSAyTFBiVC5FIDE5WDB8MzllNFwiLFxuXHRcdFx0XCJBbWVyaWNhL01hdGFtb3Jvc3xMTVQgQ1NUIENEVHw2RSA2MCA1MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0xVVFHMCAyRmpDMCAxblgwIGk2cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCBVMTAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHw0NWU0XCIsXG5cdFx0XHRcIkFtZXJpY2EvTWF6YXRsYW58TE1UIE1TVCBDU1QgUFNUIE1EVHw3NS5FIDcwIDYwIDgwIDYwfDAxMjEyMTIxMzE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDF8LTFVUUYwIGRlTDAgOGxjMCAxN2MwIDEwTTAgMWRkMCBvdFgwIGdtTjAgUDJOMCAxM1ZkMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxZkIwIFdMMCAxZkIwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMHw0NGU0XCIsXG5cdFx0XHRcIkFtZXJpY2EvTWVub21pbmVlfENTVCBDRFQgQ1dUIENQVCBFU1R8NjAgNTAgNTAgNTAgNTB8MDEwMTAyMzAxMDEwNDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI2MXMwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgzMCBpdzAgMW8xMCAxMXowIExDTjAgMWZ6MCA2NDEwIDlKYjAgMWNNMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8ODVlMlwiLFxuXHRcdFx0XCJBbWVyaWNhL01lcmlkYXxMTVQgQ1NUIEVTVCBDRFR8NVcucyA2MCA1MCA1MHwwMTIxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxfC0xVVFHMCAycTJvMCAyaHowIHd1MzAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjB8MTFlNVwiLFxuXHRcdFx0XCJBbWVyaWNhL01ldGxha2F0bGF8UFNUIFBXVCBQUFQgUERUIEFLU1QgQUtEVHw4MCA3MCA3MCA3MCA5MCA4MHwwMTIwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0xN1QyMCA4eDEwIGl5MCBWbzEwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWhVMTAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MTRlMlwiLFxuXHRcdFx0XCJBbWVyaWNhL01leGljb19DaXR5fExNVCBNU1QgQ1NUIENEVCBDV1R8NkEuQSA3MCA2MCA1MCA1MHwwMTIxMjEyMzIzMjQyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFVUUYwIGRlTDAgOGxjMCAxN2MwIDEwTTAgMWRkMCBnRW4wIFRYMCAzeGQwIEpiMCA2ekIwIFNMMCBlNWQwIDE3YjAgMVBmZjAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMWZCMCBXTDAgMWZCMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjB8MjBlNlwiLFxuXHRcdFx0XCJBbWVyaWNhL01pcXVlbG9ufExNVCBBU1QgLTAzIC0wMnwzSS5FIDQwIDMwIDIwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMnwtMm1La2YuayAyTFRBZi5rIGdRMTAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8NjFlMlwiLFxuXHRcdFx0XCJBbWVyaWNhL01vbmN0b258RVNUIEFTVCBBRFQgQVdUIEFQVHw1MCA0MCAzMCAzMCAzMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMzQxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJJc0gwIEN3TjAgMWluMCB6QW8wIEFuMCAxTmQwIEFuMCAxTmQwIEFuMCAxTmQwIEFuMCAxTmQwIEFuMCAxTmQwIEFuMCAxSzEwIEx6MCAxekIwIE5YMCAxdTEwIFduMCBTMjAgOHg1MCBpdTAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAzQ3AwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRuMSAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZVggMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHw2NGUzXCIsXG5cdFx0XHRcIkFtZXJpY2EvTW9udGVycmV5fExNVCBDU1QgQ0RUfDZGLmcgNjAgNTB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMVVRRzAgMkZqQzAgMW5YMCBpNnAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDFmQjAgV0wwIDFmQjAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwfDQxZTVcIixcblx0XHRcdFwiQW1lcmljYS9Nb250ZXZpZGVvfExNVCBNTVQgLTA0IC0wMyAtMDMzMCAtMDIzMCAtMDIgLTAxMzB8M0kuUCAzSS5QIDQwIDMwIDN1IDJ1IDIwIDF1fDAxMjM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNTM1MzYzNjM1MzYzNjM3NTM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2M3wtMnRSVWYuOSBzVmMwIDhqY2YuOSAxZGIwIDFkY3UgMWNMdSAxZGN1IDFjTHUgaXJjdSAxMXp1IDFvMHUgMTF6dSAxbzB1IDExenUgMW8wdSAxMXp1IDFxTXUgV0x1IDFxTXUgV0x1IDFmQXUgMWNMdSAxbzB1IDExenUgTkF1IDNqWHUgelh1IERxMHUgMTlYdSBwY3UganowIGNtMTAgMTlYMCA2dEIwIDFmYnUgM28wdSBqWDAgNHZCMCB4ejAgM0NwMCBtbXUgMWExMCBJTXUgRGIwIDRjMTAgdUwwIDFOZDAgQW4wIDFTTjAgdUwwIG1wMCAyOEwwIGlQQjAgdW4wIDFTTjAgeHowIDF6ZDAgTHowIDF6ZDAgUmIwIDF6ZDAgT24wIDF3cDAgUmIwIHM4cDAgMWZCMCAxaXAwIDExejAgMWxkMCAxNG4wIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxNG4wIDFsZDAgMTRuMCAxbGQwIDE0bjAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejB8MTdlNVwiLFxuXHRcdFx0XCJBbWVyaWNhL1Rvcm9udG98RVNUIEVEVCBFV1QgRVBUfDUwIDQwIDQwIDQwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNVRSMCAxaW4wIDExV3UgMW56dSAxZkQwIFdKMCAxd3IwIE5iMCAxQXAwIE9uMCAxemQwIE9uMCAxd3AwIFRYMCAxdEIwIFRYMCAxdEIwIFRYMCAxdEIwIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCA0a00wIDh4NDAgaXYwIDFvMTAgMTF6MCAxblgwIDExejAgMW8xMCAxMXowIDFvMTAgMXFMMCAxMUQwIDFuWDAgMTFCMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHw2NWU1XCIsXG5cdFx0XHRcIkFtZXJpY2EvTmFzc2F1fExNVCBFU1QgRURUfDU5LnUgNTAgNDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0ya051Ty51IDI2WGRPLnUgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHwyNGU0XCIsXG5cdFx0XHRcIkFtZXJpY2EvTmV3X1lvcmt8RVNUIEVEVCBFV1QgRVBUfDUwIDQwIDQwIDQwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNjF0MCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgMWExMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgUkIwIDh4NDAgaXYwIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHwyMWU2XCIsXG5cdFx0XHRcIkFtZXJpY2EvTmlwaWdvbnxFU1QgRURUIEVXVCBFUFR8NTAgNDAgNDAgNDB8MDEwMTIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNVRSMCAxaW4wIFJuYjAgM2plMCA4eDQwIGl2MCAxOXlOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MTZlMlwiLFxuXHRcdFx0XCJBbWVyaWNhL05vbWV8TlNUIE5XVCBOUFQgQlNUIEJEVCBZU1QgQUtTVCBBS0RUfGIwIGEwIGEwIGIwIGEwIDkwIDkwIDgwfDAxMjAzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQ1Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3NnwtMTdTWDAgOHdXMCBpQjAgUWxiMCA1Mk8wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgY2wwIDEwcTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MzhlMlwiLFxuXHRcdFx0XCJBbWVyaWNhL05vcm9uaGF8TE1UIC0wMiAtMDF8MjkuRSAyMCAxMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ2x4Ty5rIEhkS08uayAxY2MwIDFlMTAgMWJYMCBFemQwIFNvMCAxdkEwIE1uMCAxQkIwIE1MMCAxQkIwIHpYMCBxZTEwIHhiMCAyZXAwIG56MCAxQzEwIHpYMCAxQzEwIExYMCAxQzEwIE1uMCBIMjEwIFJiMCAxdEIwIElMMCAxRmQwIEZYMCAxRU4wIEZYMCAxSEIwIEx6MCBuc3AwIFdMMCAxdEIwIDJMMCAycEIwIE9uMHwzMGUyXCIsXG5cdFx0XHRcIkFtZXJpY2EvTm9ydGhfRGFrb3RhL0JldWxhaHxNU1QgTURUIE1XVCBNUFQgQ1NUIENEVHw3MCA2MCA2MCA2MCA2MCA1MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTI2MXIwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgyMCBpeDAgUXdOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPbzAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMFwiLFxuXHRcdFx0XCJBbWVyaWNhL05vcnRoX0Rha290YS9DZW50ZXJ8TVNUIE1EVCBNV1QgTVBUIENTVCBDRFR8NzAgNjAgNjAgNjAgNjAgNTB8MDEwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDE0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0yNjFyMCAxblgwIDExQjAgMW5YMCBTZ04wIDh4MjAgaXgwIFF3TjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCBzMTAgMVZ6MCBMQjAgMUJYMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0bzAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjBcIixcblx0XHRcdFwiQW1lcmljYS9Ob3J0aF9EYWtvdGEvTmV3X1NhbGVtfE1TVCBNRFQgTVdUIE1QVCBDU1QgQ0RUfDcwIDYwIDYwIDYwIDYwIDUwfDAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMjYxcjAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDIwIGl4MCBRd04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0bzAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwXCIsXG5cdFx0XHRcIkFtZXJpY2EvT2ppbmFnYXxMTVQgTVNUIENTVCBDRFQgTURUfDZWLkUgNzAgNjAgNTAgNjB8MDEyMTIxMjMyMzI0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MXwtMVVRRjAgZGVMMCA4bGMwIDE3YzAgMTBNMCAxZGQwIDJ6UU4wIDFsYjAgMTRwMCAxbGIwIDE0cTAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDFmQjAgV0wwIDFmQjAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgVTEwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MjNlM1wiLFxuXHRcdFx0XCJBbWVyaWNhL1BhbmduaXJ0dW5nfC0wMCBBU1QgQVdUIEFQVCBBRERUIEFEVCBFRFQgRVNUIENTVCBDRFR8MCA0MCAzMCAzMCAyMCAzMCA0MCA1MCA2MCA1MHwwMTIzMTQxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNjc2NzY3Njc2ODk3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njd8LTFYaU0wIFBuRzAgOHg1MCBpdTAgTENMMCAxZkEwIHpnTzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW8wMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFDMCAxblgwIDExQTAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwfDE0ZTJcIixcblx0XHRcdFwiQW1lcmljYS9QYXJhbWFyaWJvfExNVCBQTVQgUE1UIC0wMzMwIC0wM3wzRS5FIDNFLlEgM0UuQSAzdSAzMHwwMTIzNHwtMm5EVWouayBXcW8wLmMgcWFuWC5JIDF5VlhOLm98MjRlNFwiLFxuXHRcdFx0XCJBbWVyaWNhL1Bob2VuaXh8TVNUIE1EVCBNV1R8NzAgNjAgNjB8MDEwMTAyMDIwMTB8LTI2MXIwIDFuWDAgMTFCMCAxblgwIFNnTjAgNEFsMSBBcDAgMWRiMCBTV3FYIDFjTDB8NDJlNVwiLFxuXHRcdFx0XCJBbWVyaWNhL1BvcnQtYXUtUHJpbmNlfFBQTVQgRVNUIEVEVHw0TiA1MCA0MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMjhSSGIgMkZuTWIgMTlYMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRxMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIGk2bjAgMW5YMCAxMUIwIDFuWDAgZDQzMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIDNpTjAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHwyM2U1XCIsXG5cdFx0XHRcIkFtZXJpY2EvUmlvX0JyYW5jb3xMTVQgLTA1IC0wNHw0di5jIDUwIDQwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ2x2cy5NIEhkTHMuTSAxY2MwIDFlMTAgMWJYMCBFemQwIFNvMCAxdkEwIE1uMCAxQkIwIE1MMCAxQkIwIHpYMCBxZTEwIHhiMCAyZXAwIG56MCAxQzEwIHpYMCAxQzEwIExYMCAxQzEwIE1uMCBIMjEwIFJiMCAxdEIwIElMMCAxRmQwIEZYMCBOQmQwIGQ1WDB8MzFlNFwiLFxuXHRcdFx0XCJBbWVyaWNhL1BvcnRvX1ZlbGhvfExNVCAtMDQgLTAzfDRmLkEgNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZ2x2SS5vIEhkS0kubyAxY2MwIDFlMTAgMWJYMCBFemQwIFNvMCAxdkEwIE1uMCAxQkIwIE1MMCAxQkIwIHpYMCBxZTEwIHhiMCAyZXAwIG56MCAxQzEwIHpYMCAxQzEwIExYMCAxQzEwIE1uMCBIMjEwIFJiMCAxdEIwIElMMCAxRmQwIEZYMHwzN2U0XCIsXG5cdFx0XHRcIkFtZXJpY2EvUHVlcnRvX1JpY298QVNUIEFXVCBBUFR8NDAgMzAgMzB8MDEyMHwtMTdsVTAgN1hUMCBpdTB8MjRlNVwiLFxuXHRcdFx0XCJBbWVyaWNhL1B1bnRhX0FyZW5hc3xTTVQgLTA1IC0wNCAtMDN8NEcuSyA1MCA0MCAzMHwwMTAyMDIxMjEyMTIxMjEyMTIxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzfC0ycTJqaC5lIGZKQWguZSA1a25HLksgMVZ6aC5lIGpSQUcuSyAxcGJoLmUgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFvTDAgMTFkMCAxcGIwIDExZDAgbkhYMCBvcDAgYmx6MCBrbzAgUWVvMCBXTDAgMXpkMCBPbjAgMWlwMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxbGQwIDE0bjAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgMWNMMCAxY04wIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFmQjAgMTlYMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxN2IwIDFpcDAgMTF6MCAxaXAwIDFmejAgMWZCMCAxMXowIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTdiMCAxaXAwIDExejAgMW8xMCAxOVgwIDFmQjAgMW5YMCBHMTAgMUVMMCBPcDAgMXpiMCBSZDAgMXduMCBSZDAgNDZuMCBBcDBcIixcblx0XHRcdFwiQW1lcmljYS9SYWlueV9SaXZlcnxDU1QgQ0RUIENXVCBDUFR8NjAgNTAgNTAgNTB8MDEwMTIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNVRRMCAxaW4wIFJuYjAgM2plMCA4eDMwIGl3MCAxOXlOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8ODQyXCIsXG5cdFx0XHRcIkFtZXJpY2EvUmFua2luX0lubGV0fC0wMCBDU1QgQ0REVCBDRFQgRVNUfDAgNjAgNDAgNTAgNTB8MDEyMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzNDMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxfC12RGMwIGtldTAgMWZBMCB6Z08wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHwyNmUyXCIsXG5cdFx0XHRcIkFtZXJpY2EvUmVjaWZlfExNVCAtMDMgLTAyfDJqLkEgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdseEUubyBIZExFLm8gMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgMUVOMCBGWDAgMUhCMCBMejAgbnNwMCBXTDAgMXRCMCAyTDAgMnBCMCBPbjB8MzNlNVwiLFxuXHRcdFx0XCJBbWVyaWNhL1JlZ2luYXxMTVQgTVNUIE1EVCBNV1QgTVBUIENTVHw2Vy5BIDcwIDYwIDYwIDYwIDYwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTM0MTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxNXwtMkFENTEubyB1SGUxLm8gMWluMCBzMkwwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDExejAgNjZOMCAxY0wwIDFjTjAgMTlYMCAxZkIwIDFjTDAgMWZCMCAxY0wwIDFjTjAgMWNMMCBNMzAgOHgyMCBpeDAgMWlwMCAxY0wwIDFpcDAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAzTkIwIDFjTDAgMWNOMHwxOWU0XCIsXG5cdFx0XHRcIkFtZXJpY2EvUmVzb2x1dGV8LTAwIENTVCBDRERUIENEVCBFU1R8MCA2MCA0MCA1MCA1MHwwMTIxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTM0MzEzMTMxMzEzMTM0MzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzF8LVNuQTAgR1dTMCAxZkEwIHpnTzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwfDIyOVwiLFxuXHRcdFx0XCJBbWVyaWNhL1NhbnRhcmVtfExNVCAtMDQgLTAzfDNDLk0gNDAgMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMnwtMmdsd2wuYyBIZExsLmMgMWNjMCAxZTEwIDFiWDAgRXpkMCBTbzAgMXZBMCBNbjAgMUJCMCBNTDAgMUJCMCB6WDAgcWUxMCB4YjAgMmVwMCBuejAgMUMxMCB6WDAgMUMxMCBMWDAgMUMxMCBNbjAgSDIxMCBSYjAgMXRCMCBJTDAgMUZkMCBGWDAgTkJkMHwyMWU0XCIsXG5cdFx0XHRcIkFtZXJpY2EvU2FudGlhZ298U01UIC0wNSAtMDQgLTAzfDRHLksgNTAgNDAgMzB8MDEwMjAyMTIxMjEyMTIxMjEyMzIxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzfC0ycTJqaC5lIGZKQWguZSA1a25HLksgMVZ6aC5lIGpSQUcuSyAxcGJoLmUgMTFkMCAxb0wwIDExZDAgMW9MMCAxMWQwIDFvTDAgMTFkMCAxcGIwIDExZDAgbkhYMCBvcDAgOUJ6MCBqYjAgMW9OMCBrbzAgUWVvMCBXTDAgMXpkMCBPbjAgMWlwMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxbGQwIDE0bjAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgMWNMMCAxY04wIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFmQjAgMTlYMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxN2IwIDFpcDAgMTF6MCAxaXAwIDFmejAgMWZCMCAxMXowIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTdiMCAxaXAwIDExejAgMW8xMCAxOVgwIDFmQjAgMW5YMCBHMTAgMUVMMCBPcDAgMXpiMCBSZDAgMXduMCBSZDAgNDZuMCBBcDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBEZDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBEZDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBEZDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBBcDAgMU5iMCBBcDB8NjJlNVwiLFxuXHRcdFx0XCJBbWVyaWNhL1NhbnRvX0RvbWluZ298U0RNVCBFU1QgRURUIC0wNDMwIEFTVHw0RSA1MCA0MCA0dSA0MHwwMTIxMzEzMTMxMzEzMTQxNHwtMXR0amsgMWxKTWsgTW4wIDZzcDAgTGJ1IDFDb3UgeUx1IDFSQXUgd0x1IDFRTXUgeHp1IDFRMHUgeFh1IDFQQXUgMTNqQjAgZTAwfDI5ZTVcIixcblx0XHRcdFwiQW1lcmljYS9TYW9fUGF1bG98TE1UIC0wMyAtMDJ8MzYucyAzMCAyMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTJ8LTJnbHdSLncgSGRLUi53IDFjYzAgMWUxMCAxYlgwIEV6ZDAgU28wIDF2QTAgTW4wIDFCQjAgTUwwIDFCQjAgelgwIHBUZDAgUFgwIDJlcDAgbnowIDFDMTAgelgwIDFDMTAgTFgwIDFDMTAgTW4wIEgyMTAgUmIwIDF0QjAgSUwwIDFGZDAgRlgwIDFFTjAgRlgwIDFIQjAgTHowIDFFTjAgTHowIDFDMTAgSUwwIDFIQjAgRGIwIDFIQjAgT24wIDF6ZDAgT24wIDF6ZDAgTHowIDF6ZDAgUmIwIDF3TjAgV24wIDF0QjAgUmIwIDF0QjAgV0wwIDF0QjAgUmIwIDF6ZDAgT24wIDFIQjAgRlgwIDFDMTAgTHowIDFJcDAgSFgwIDF6ZDAgT24wIDFIQjAgSUwwIDF3cDAgT24wIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgT24wIDF6ZDAgUmIwIDF6ZDAgTHowIDFDMTAgTHowIDFDMTAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDFIQjAgRlgwIDFIQjAgRlgwIDFIQjAgSUwwIDFIQjAgRlgwIDFIQjAgSUwwIDFFTjAgRlgwIDFIQjAgRlgwIDFIQjAgSUwwIDFFTjAgSUwwIDFIQjAgRlgwIDFIQjAgRlgwIDFIQjAgRlgwIDFIQjAgRlgwIDFIQjAgRlgwIDFLcDAgRlgwIDFIQjAgSUwwIDFFTjAgRlgwIDFIQjAgRlgwIDFIQjAgSUwwIDFFTjB8MjBlNlwiLFxuXHRcdFx0XCJBbWVyaWNhL1Njb3Jlc2J5c3VuZHxMTVQgLTAyIC0wMSArMDB8MXIuUSAyMCAxMCAwfDAxMjEzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTJhNVd3LjggMno1ZXcuOCAxYTAwIDFjSzAgMWNMMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8NDUyXCIsXG5cdFx0XHRcIkFtZXJpY2EvU2l0a2F8UFNUIFBXVCBQUFQgUERUIFlTVCBBS1NUIEFLRFR8ODAgNzAgNzAgNzAgOTAgOTAgODB8MDEyMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzNDU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjV8LTE3VDIwIDh4MTAgaXkwIFZvMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCBjbzAgMTBxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHw5MGUyXCIsXG5cdFx0XHRcIkFtZXJpY2EvU3RfSm9obnN8TlNUIE5EVCBOU1QgTkRUIE5XVCBOUFQgTkREVHwzdS5RIDJ1LlEgM3UgMnUgMnUgMnUgMXV8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDIzMjMyMzIzMjMyMzIzMjQ1MjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjYyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTI4b2l0LjggMTRMMCAxbkIwIDFpbjAgMWdtMCBEejAgMUpCMCAxY0wwIDFjTjAgMWNMMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxZkIwIDE5WDAgMWZCMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCAxY0wwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMTBPMCBlS1guOCAxOVgwIDFpcTAgV0wwIDFxTjAgV0wwIDFxTjAgV0wwIDF0QjAgVFgwIDF0QjAgV0wwIDFxTjAgV0wwIDFxTjAgN1VIdSBpdHUgMXRCMCBXTDAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCBXTDAgMXRCMCBXTDAgMWxkMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRuMSAxbGIwIDE0cDAgMW5XMCAxMUMwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpjWCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHwxMWU0XCIsXG5cdFx0XHRcIkFtZXJpY2EvU3dpZnRfQ3VycmVudHxMTVQgTVNUIE1EVCBNV1QgTVBUIENTVHw3Yi5rIDcwIDYwIDYwIDYwIDYwfDAxMjEzNDEyMTIxMjEyMTIxMjEyMTIxNXwtMkFENE0uRSB1SGRNLkUgMWluMCBVR3AwIDh4MjAgaXgwIDFvMTAgMTdiMCAxaXAwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCBpc04wIDFjTDAgM0NwMCAxY0wwIDFjTjAgMTF6MCAxcU4wIFdMMCBwTXAwfDE2ZTNcIixcblx0XHRcdFwiQW1lcmljYS9UZWd1Y2lnYWxwYXxMTVQgQ1NUIENEVHw1TS5RIDYwIDUwfDAxMjEyMTIxfC0xV0dHYi44IDJFVGNiLjggV0wwIDFxTjAgV0wwIEdSZDAgQUwwfDExZTVcIixcblx0XHRcdFwiQW1lcmljYS9UaHVsZXxMTVQgQVNUIEFEVHw0ei44IDQwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmE1VG8uUSAzMU5Cby5RIDFjTDAgMWNOMCAxY0wwIDFmQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8NjU2XCIsXG5cdFx0XHRcIkFtZXJpY2EvVGh1bmRlcl9CYXl8Q1NUIEVTVCBFV1QgRVBUIEVEVHw2MCA1MCA0MCA0MCA0MHwwMTIzMTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxNDE0MTQxfC0ycTVTMCAxaWFOMCA4eDQwIGl2MCBYTkIwIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAzQ3AwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHwxMWU0XCIsXG5cdFx0XHRcIkFtZXJpY2EvVmFuY291dmVyfFBTVCBQRFQgUFdUIFBQVHw4MCA3MCA3MCA3MHwwMTAyMzAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yNVRPMCAxaW4wIFVHcDAgOHgxMCBpeTAgMW8xMCAxN2IwIDFpcDAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHwyM2U1XCIsXG5cdFx0XHRcIkFtZXJpY2EvV2hpdGVob3JzZXxZU1QgWURUIFlXVCBZUFQgWUREVCBQU1QgUERUfDkwIDgwIDgwIDgwIDcwIDgwIDcwfDAxMDEwMjMwNDA1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjU2NTY1NjV8LTI1VE4wIDFpbjAgMW8xMCAxM1YwIFNlcjAgOHgwMCBpejAgTENMMCAxZkEwIDNOQTAgdnJkMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8MjNlM1wiLFxuXHRcdFx0XCJBbWVyaWNhL1dpbm5pcGVnfENTVCBDRFQgQ1dUIENQVHw2MCA1MCA1MCA1MHwwMTAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhSWkwIFdMMCAzTkQwIDFpbjAgSmFwMCBSYjAgYUNOMCA4eDMwIGl3MCAxdEIwIDExejAgMWlwMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXJkMCAxMEwwIDFvcDAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxY0wwIDFjTjAgMTF6MCA2aTEwIFdMMCA2aTEwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxNG8wIDFsYzAgMTRvMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwfDY2ZTRcIixcblx0XHRcdFwiQW1lcmljYS9ZYWt1dGF0fFlTVCBZV1QgWVBUIFlEVCBBS1NUIEFLRFR8OTAgODAgODAgODAgOTAgODB8MDEyMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTE3VDEwIDh4MDAgaXowIFZvMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCBjbjAgMTBxMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMHw2NDJcIixcblx0XHRcdFwiQW1lcmljYS9ZZWxsb3drbmlmZXwtMDAgTVNUIE1XVCBNUFQgTUREVCBNRFR8MCA3MCA2MCA2MCA1MCA2MHwwMTIzMTQxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTE1MTUxNTF8LTFwZEEwIGhpeDAgOHgyMCBpeDAgTENMMCAxZkEwIHpnTzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwfDE5ZTNcIixcblx0XHRcdFwiQW50YXJjdGljYS9DYXNleXwtMDAgKzA4ICsxMXwwIC04MCAtYjB8MDEyMTIxMjF8LTJxMDAgMURqUzAgVDkwIDQwUDAgS0wwIGJsejAgM20xMHwxMFwiLFxuXHRcdFx0XCJBbnRhcmN0aWNhL0RhdmlzfC0wMCArMDcgKzA1fDAgLTcwIC01MHwwMTAxMjEyMXwtdnlvMCBpWHQwIGFsajAgMUQ3djAgVkIwIDNXbjAgS04wfDcwXCIsXG5cdFx0XHRcIkFudGFyY3RpY2EvRHVtb250RFVydmlsbGV8LTAwICsxMHwwIC1hMHwwMTAxfC1VMG8wIGNmcTAgYkZtMHw4MFwiLFxuXHRcdFx0XCJBbnRhcmN0aWNhL01hY3F1YXJpZXxBRVNUIEFFRFQgLTAwICsxMXwtYTAgLWIwIDAgLWIwfDAxMDIwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTN8LTI5RTgwIDE5WDAgNFNMMCAxYXl5MCBMdnMwIDFjTTAgMW8wMCBSYzAgMXdvMCBSYzAgMXdvMCBVMDAgMXdvMCBMQTAgMUMwMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCAxMUEwIDFxTTAgV00wIDFxTTAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF3bzAgV00wIDF0QTAgV00wIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgMTFBMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxMUEwIDFvMDAgMWlvMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFhMDAgMWlvMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTB8MVwiLFxuXHRcdFx0XCJBbnRhcmN0aWNhL01hd3NvbnwtMDAgKzA2ICswNXwwIC02MCAtNTB8MDEyfC1DRW8wIDJmeWswfDYwXCIsXG5cdFx0XHRcIlBhY2lmaWMvQXVja2xhbmR8TlpNVCBOWlNUIE5aU1QgTlpEVHwtYnUgLWN1IC1jMCAtZDB8MDEwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjN8LTFHQ1Z1IEx6MCAxdEIwIDExenUgMW8wdSAxMXp1IDFvMHUgMTF6dSAxbzB1IDE0bnUgMWxjdSAxNG51IDFsY3UgMWxidSAxMUF1IDFuWHUgMTFBdSAxblh1IDExQXUgMW5YdSAxMUF1IDFuWHUgMTFBdSAxcUx1IFdNdSAxcUx1IDExQXUgMW4xYnUgSU0wIDFDMDAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDFxTTAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxN2MwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFpbzAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFpbzAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDB8MTRlNVwiLFxuXHRcdFx0XCJBbnRhcmN0aWNhL1BhbG1lcnwtMDAgLTAzIC0wNCAtMDJ8MCAzMCA0MCAyMHwwMTIxMjEyMTIxMjEzMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC1jYW8wIG5EMCAxdmQwIFNMMCAxdmQwIDE3ejAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIGFzbjAgRGIwIGpzTjAgMTROMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIDFjTDAgMWNOMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxZkIwIDE5WDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgMTdiMCAxaXAwIDExejAgMWlwMCAxZnowIDFmQjAgMTF6MCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIFdMMCAxcU4wIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDE3YjAgMWlwMCAxMXowIDFvMTAgMTlYMCAxZkIwIDFuWDAgRzEwIDFFTDAgT3AwIDF6YjAgUmQwIDF3bjAgUmQwIDQ2bjAgQXAwfDQwXCIsXG5cdFx0XHRcIkFudGFyY3RpY2EvUm90aGVyYXwtMDAgLTAzfDAgMzB8MDF8Z09vMHwxMzBcIixcblx0XHRcdFwiQW50YXJjdGljYS9TeW93YXwtMDAgKzAzfDAgLTMwfDAxfC12czAwfDIwXCIsXG5cdFx0XHRcIkFudGFyY3RpY2EvVHJvbGx8LTAwICswMCArMDJ8MCAwIC0yMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwxcHVvMCBoZDAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8NDBcIixcblx0XHRcdFwiQW50YXJjdGljYS9Wb3N0b2t8LTAwICswNnwwIC02MHwwMXwtdGpBMHwyNVwiLFxuXHRcdFx0XCJFdXJvcGUvT3Nsb3xDRVQgQ0VTVHwtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMmF3TTAgUW0wIFc2bzAgNXBmMCBXTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIHdKYzAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFxTTAgV00wIHpwYzAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDYyZTRcIixcblx0XHRcdFwiQXNpYS9SaXlhZGh8TE1UICswM3wtMzYuUSAtMzB8MDF8LVR2RDYuUXw1N2U1XCIsXG5cdFx0XHRcIkFzaWEvQWxtYXR5fExNVCArMDUgKzA2ICswN3wtNTcuTSAtNTAgLTYwIC03MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFQYzU3Lk0gZVVvNy5NIDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMnBCMCBJTTAgclgwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wfDE1ZTVcIixcblx0XHRcdFwiQXNpYS9BbW1hbnxMTVQgRUVUIEVFU1R8LTJuLkkgLTIwIC0zMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0xeVcybi5JIDFIaU1uLkkgS0wwIDFvTjAgMTFiMCAxb04wIDExYjAgMXBkMCAxZHowIDFjcDAgMTFiMCAxb3AwIDExYjAgZk8xMCAxZGIwIDFlMTAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFwZDAgMTBuMCAxbGQwIDE0bjAgMWhCMCAxNWIwIDFpcDAgMTlYMCAxY04wIDFjTDAgMWNOMCAxN2IwIDFsZDAgMTRvMCAxbGMwIDE3YzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxU28wIHkwMCAxZmMwIDFkYzAgMWNvMCAxZGMwIDFjTTAgMWNNMCAxY00wIDFvMDAgMTFBMCAxbGMwIDE3YzAgMWNNMCAxY00wIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCA0YlgwIERkMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTB8MjVlNVwiLFxuXHRcdFx0XCJBc2lhL0FuYWR5cnxMTVQgKzEyICsxMyArMTQgKzExfC1iTi5VIC1jMCAtZDAgLWUwIC1iMHwwMTIzMjEyMTIxMjEyMTIxMjEyMTIxNDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjE0MXwtMVBjYk4uVSBlVW5OLlUgMjNDTDAgMWRiMCAycTEwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMnBCMCBJTTAgclgwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMnNwMCBXTTB8MTNlM1wiLFxuXHRcdFx0XCJBc2lhL0FxdGF1fExNVCArMDQgKzA1ICswNnwtM2wuNCAtNDAgLTUwIC02MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIxMjMyMzIzMTIxMjEyMTIxMjEyMTIxMjEyMTJ8LTFQYzNsLjQgZVVubC40IDI0UFgwIDJwWDAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAycEIwIElNMCByWDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTjAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwfDE1ZTRcIixcblx0XHRcdFwiQXNpYS9BcXRvYmV8TE1UICswNCArMDUgKzA2fC0zTS5FIC00MCAtNTAgLTYwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFQYzNNLkUgZVVuTS5FIDIzQ0wwIDNEYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAycEIwIElNMCByWDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTB8MjdlNFwiLFxuXHRcdFx0XCJBc2lhL0FzaGdhYmF0fExNVCArMDQgKzA1ICswNnwtM1IudyAtNDAgLTUwIC02MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjEyfC0xUGMzUi53IGVVblIudyAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDJwQjAgSU0wfDQxZTRcIixcblx0XHRcdFwiQXNpYS9BdHlyYXV8TE1UICswMyArMDUgKzA2ICswNHwtM3IuSSAtMzAgLTUwIC02MCAtNDB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyNDIzMjMyMzIzMjMyMzIzMjQyNDI0MjQyNDJ8LTFQYzNyLkkgZVVvci5JIDI0UFcwIDJwWDAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAycEIwIElNMCByWDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAyc3AwIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMFwiLFxuXHRcdFx0XCJBc2lhL0JhZ2hkYWR8Qk1UICswMyArMDR8LTJWLkEgLTMwIC00MHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTI2QmVWLkEgMkFDblYuQSAxMWIwIDFjcDAgMWR6MCAxZGQwIDFkYjAgMWNOMCAxY3AwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWRlMCAxZGMwIDFkYzAgMWRjMCAxY00wIDFkYzAgMWNNMCAxZGMwIDFjTTAgMWRjMCAxZGMwIDFkYzAgMWNNMCAxZGMwIDFjTTAgMWRjMCAxY00wIDFkYzAgMWRjMCAxZGMwIDFjTTAgMWRjMCAxY00wIDFkYzAgMWNNMCAxZGMwIDFkYzAgMWRjMCAxY00wIDFkYzAgMWNNMCAxZGMwIDFjTTAgMWRjMHw2NmU1XCIsXG5cdFx0XHRcIkFzaWEvUWF0YXJ8TE1UICswNCArMDN8LTNxLjggLTQwIC0zMHwwMTJ8LTIxSmZxLjggMjdCWHEuOHw5NmU0XCIsXG5cdFx0XHRcIkFzaWEvQmFrdXxMTVQgKzAzICswNCArMDV8LTNqLm8gLTMwIC00MCAtNTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFQYzNqLm8gMWpVb2oubyBXQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMnBCMCAxY00wIDlKZTAgMW8wMCAxMXowIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMHwyN2U1XCIsXG5cdFx0XHRcIkFzaWEvQmFuZ2tva3xCTVQgKzA3fC02Ry40IC03MHwwMXwtMjE4U0cuNHwxNWU2XCIsXG5cdFx0XHRcIkFzaWEvQmFybmF1bHxMTVQgKzA2ICswNyArMDh8LTV6IC02MCAtNzAgLTgwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMTIzMjMyMzIzMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTJ8LTIxUzV6IHBDbnogMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAycEIwIElNMCByWDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgcDkwIExFMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDhIejAgM3JkMFwiLFxuXHRcdFx0XCJBc2lhL0JlaXJ1dHxFRVQgRUVTVHwtMjAgLTMwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjFhcTAgMW9uMCAxNDEwIDFkYjAgMTlCMCAxaW4wIDFpcDAgV0wwIDFsUXAwIDExYjAgMW9OMCAxMWIwIDFvTjAgMTFiMCAxcGQwIDExYjAgMW9OMCAxMWIwIHE2TjAgRW4wIDFvTjAgMTFiMCAxb04wIDExYjAgMW9OMCAxMWIwIDFwZDAgMTFiMCAxb04wIDExYjAgMW9wMCAxMWIwIGRBMTAgMTdiMCAxaU4wIDE3YjAgMWlOMCAxN2IwIDFpTjAgMTdiMCAxdkIwIFNMMCAxbXAwIDEzejAgMWlOMCAxN2IwIDFpTjAgMTdiMCAxamQwIDEybjAgMWExMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMHwyMmU1XCIsXG5cdFx0XHRcIkFzaWEvQmlzaGtla3xMTVQgKzA1ICswNiArMDd8LTRXLm8gLTUwIC02MCAtNzB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyfC0xUGM0Vy5vIGVVblcubyAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDJlMDAgMXRYMCAxN2IwIDFpcDAgMTdiMCAxaXAwIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTlYMCAxY1B1IDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjB8ODdlNFwiLFxuXHRcdFx0XCJBc2lhL0JydW5laXxMTVQgKzA3MzAgKzA4fC03RC5FIC03dSAtODB8MDEyfC0xS0lURC5FIGdEYzkuRXw0MmU0XCIsXG5cdFx0XHRcIkFzaWEvS29sa2F0YXxNTVQgSVNUICswNjMwfC01bC5hIC01dSAtNnV8MDEyMTIxfC0yek90bC5hIDFyMkxQLmEgMXVuMCBIQjAgN3pYMHwxNWU2XCIsXG5cdFx0XHRcIkFzaWEvQ2hpdGF8TE1UICswOCArMDkgKzEwfC03eC5RIC04MCAtOTAgLWEwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMxMnwtMjFRN3guUSBwQW54LlEgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAycEIwIElNMCByWDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDhIejAgM3JlMHwzM2U0XCIsXG5cdFx0XHRcIkFzaWEvQ2hvaWJhbHNhbnxMTVQgKzA3ICswOCArMTAgKzA5fC03QyAtNzAgLTgwIC1hMCAtOTB8MDEyMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQyNDI0MnwtMkFQSEMgMlVrb0MgY0tuMCAxZGEwIDFkZDAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDZoRDAgMTF6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDNEYjAgaDFmMCAxY0owIDFjUDAgMWNKMHwzOGUzXCIsXG5cdFx0XHRcIkFzaWEvU2hhbmdoYWl8Q1NUIENEVHwtODAgLTkwfDAxMDEwMTAxMDEwMTAxMDEwfC0xYzFJMCBMWDAgMTZwMCAxanowIDFNeXAwIFJiMCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowfDIzZTZcIixcblx0XHRcdFwiQXNpYS9Db2xvbWJvfE1NVCArMDUzMCArMDYgKzA2MzB8LTVqLncgLTV1IC02MCAtNnV8MDEyMzEzMjF8LTJ6T3RqLncgMXJGYk4udyAxenp1IDdBcHUgMjNkejAgMTF6dSBuM2N1fDIyZTVcIixcblx0XHRcdFwiQXNpYS9EaGFrYXxITVQgKzA2MzAgKzA1MzAgKzA2ICswN3wtNVIuayAtNnUgLTV1IC02MCAtNzB8MDEyMTM0M3wtMThMRlIuayAxdW5uLmsgSEIwIG02bjAgMmt4YnUgMWkwMHwxNmU2XCIsXG5cdFx0XHRcIkFzaWEvRGFtYXNjdXN8TE1UIEVFVCBFRVNUfC0ycC5jIC0yMCAtMzB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTIxSmVwLmMgSGVwLmMgMTdiMCAxaXAwIDE3YjAgMWlwMCAxN2IwIDFpcDAgMTlYMCAxeFJCMCAxMVgwIDFvTjAgMTBMMCAxcEIwIDExYjAgMW9OMCAxMEwwIDFtcDAgMTNYMCAxb04wIDExYjAgMXBkMCAxMWIwIDFvTjAgMTFiMCAxb04wIDExYjAgMW9OMCAxMWIwIDFwZDAgMTFiMCAxb04wIDExYjAgMW9OMCAxMWIwIDFvTjAgMTFiMCAxcGQwIDExYjAgMW9OMCBOYjAgMUFOMCBOYjAgYmNwMCAxOVgwIDFncDAgMTlYMCAzbGQwIDF4WDAgVmQwIDFCejAgU3AwIDF2WDAgMTBwMCAxZHowIDFjTjAgMWNMMCAxZGIwIDFkYjAgMWcxMCAxYW4wIDFhcDAgMWRiMCAxZmQwIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWRiMCAxY3AwIDFkejAgMWMxMCAxZFgwIDFjTjAgMWRiMCAxZGQwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxZGIwIDFjTjAgMWRiMCAxY04wIDE5ejAgMWZCMCAxcUwwIDExQjAgMW9uMCBXcDAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxblgwIDExQjAgMW5YMCAxMUIwIDFxTDAgV04wIDFxTDB8MjZlNVwiLFxuXHRcdFx0XCJBc2lhL0RpbGl8TE1UICswOCArMDl8LThtLmsgLTgwIC05MHwwMTIxMnwtMmxlOG0uayAxZG5YbS5rIDFuZkEwIFhsZDB8MTllNFwiLFxuXHRcdFx0XCJBc2lhL0R1YmFpfExNVCArMDR8LTNGLmMgLTQwfDAxfC0yMUpmRi5jfDM5ZTVcIixcblx0XHRcdFwiQXNpYS9EdXNoYW5iZXxMTVQgKzA1ICswNiArMDd8LTR6LmMgLTUwIC02MCAtNzB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIxfC0xUGM0ei5jIGVVbnouYyAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDJoQjB8NzZlNFwiLFxuXHRcdFx0XCJBc2lhL0ZhbWFndXN0YXxMTVQgRUVUIEVFU1QgKzAzfC0yZi5NIC0yMCAtMzAgLTMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIzMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTFWYzJmLk0gMmEzY2YuTSAxY0wwIDFxcDAgWHowIDE5QjAgMTlYMCAxZkIwIDFkYjAgMWNwMCAxY0wwIDFmQjAgMTlYMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxZkIwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMW8zMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxNVUwIDJLczAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDBcIixcblx0XHRcdFwiQXNpYS9HYXphfEVFVCBFRVNUIElTVCBJRFR8LTIwIC0zMCAtMjAgLTMwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMWMycTAgNVJiMCAxMHIwIDFweDAgMTBOMCAxcHowIDE2cDAgMWpCMCAxNnAwIDFqeDAgcEJkMCBWejAgMW9OMCAxMWIwIDFvTzAgMTBOMCAxcHowIDEwTjAgMXBiMCAxME4wIDFwYjAgMTBOMCAxcGIwIDEwTjAgMXB6MCAxME4wIDFwYjAgMTBOMCAxcGIwIDExZDAgMW9MMCBkVzAgaGZCMCBEYjAgMWZCMCBSYjAgbnBCMCAxMXowIDFDMTAgSUwwIDFzMTAgMTBuMCAxbzEwIFdMMCAxemQwIE9uMCAxbGQwIDExejAgMW8xMCAxNG4wIDFvMTAgMTRuMCAxbmQwIDEybjAgMW5kMCBYejAgMXExMCAxMm4wIE0xMCBDMDAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFvMDAgMWNMMCAxZkIwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxN2MwIDFpbzAgMThOMCAxYnowIDE5ejAgMWdwMCAxNjEwIDFpTDAgMTF6MCAxbzEwIDE0bzAgMWxBMSBTS1ggMXhkMSBNS1ggMUFOMCAxYTAwIDFmQTAgMWNMMCAxY04wIDFuWDAgMTIxMCAxbnowIDEyMjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFxTDB8MThlNVwiLFxuXHRcdFx0XCJBc2lhL0hlYnJvbnxFRVQgRUVTVCBJU1QgSURUfC0yMCAtMzAgLTIwIC0zMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMWMycTAgNVJiMCAxMHIwIDFweDAgMTBOMCAxcHowIDE2cDAgMWpCMCAxNnAwIDFqeDAgcEJkMCBWejAgMW9OMCAxMWIwIDFvTzAgMTBOMCAxcHowIDEwTjAgMXBiMCAxME4wIDFwYjAgMTBOMCAxcGIwIDEwTjAgMXB6MCAxME4wIDFwYjAgMTBOMCAxcGIwIDExZDAgMW9MMCBkVzAgaGZCMCBEYjAgMWZCMCBSYjAgbnBCMCAxMXowIDFDMTAgSUwwIDFzMTAgMTBuMCAxbzEwIFdMMCAxemQwIE9uMCAxbGQwIDExejAgMW8xMCAxNG4wIDFvMTAgMTRuMCAxbmQwIDEybjAgMW5kMCBYejAgMXExMCAxMm4wIE0xMCBDMDAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFvMDAgMWNMMCAxZkIwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxN2MwIDFpbzAgMThOMCAxYnowIDE5ejAgMWdwMCAxNjEwIDFpTDAgMTJMMCAxbU4wIDE0bzAgMWxjMCBUYjAgMXhkMSBNS1ggYkIwIGNuMCAxY04wIDFhMDAgMWZBMCAxY0wwIDFjTjAgMW5YMCAxMjEwIDFuejAgMTIyMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCAxMUIwIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgV04wIDFxTDAgMTFCMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMXFMMHwyNWU0XCIsXG5cdFx0XHRcIkFzaWEvSG9fQ2hpX01pbmh8TE1UIFBMTVQgKzA3ICswOCArMDl8LTc2LkUgLTc2LnUgLTcwIC04MCAtOTB8MDEyMzQyMzIzMnwtMnlDNzYuRSBiSzAwLmEgMWg3YjYudSA1bHowIDE4bzAgM09xMCBrNWIwIGFXMDAgQkFNMHw5MGU1XCIsXG5cdFx0XHRcIkFzaWEvSG9uZ19Lb25nfExNVCBIS1QgSEtTVCBKU1R8LTdBLkcgLTgwIC05MCAtOTB8MDEyMTMxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMkNGSEEuRyAxc0VQNi5HIDFjTDAgeWx1IDkzWDAgMXFRdSAxdFgwIFJkMCAxSW4wIE5CMCAxY0wwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWtMMCAxNE4wIDFuWDAgVTEwIDF0ejAgVTEwIDF3bjAgUmQwIDF3bjAgVTEwIDF0ejAgVTEwIDF0ejAgVTEwIDF0ejAgVTEwIDF3bjAgUmQwIDF3bjAgUmQwIDF3bjAgVTEwIDF0ejAgVTEwIDF0ejAgMTdkMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgczEwIDFWejAgMWNOMCAxY0wwIDFjTjAgMWNMMCA2ZmQwIDE0bjB8NzNlNVwiLFxuXHRcdFx0XCJBc2lhL0hvdmR8TE1UICswNiArMDcgKzA4fC02Ni5BIC02MCAtNzAgLTgwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMnwtMkFQRzYuQSAyVWtvNi5BIGNLbjAgMWRiMCAxZGQwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxZkIwIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCA2aEQwIDExejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCBrRXAwIDFjSjAgMWNQMCAxY0owfDgxZTNcIixcblx0XHRcdFwiQXNpYS9Jcmt1dHNrfElNVCArMDcgKzA4ICswOXwtNlYuNSAtNzAgLTgwIC05MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMnwtMjF6R1YuNSBwalhWLjUgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAycEIwIElNMCByWDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDhIejB8NjBlNFwiLFxuXHRcdFx0XCJFdXJvcGUvSXN0YW5idWx8SU1UIEVFVCBFRVNUICswNCArMDN8LTFVLlUgLTIwIC0zMCAtNDAgLTMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIzNDM0MzQzNDM0MjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyNHwtMm9nTlUuVSBkenpVLlUgMTFiMCA4dEIwIDFvbjAgMTQxMCAxZGIwIDE5QjAgMWluMCAzUmQwIFVuMCAxb04wIDExYjAgelNwMCBDTDAgbU4wIDFWejAgMWdOMCAxcHowIDVSZDAgMWZ6MCAxeXAwIE1MMCAxa3AwIDE3YjAgMWlwMCAxN2IwIDFmQjAgMTlYMCAxakIwIDE4TDAgMWlwMCAxN3owIHFkZDAgeFgwIDNTMTAgVHowIGRBMTAgMTF6MCAxbzEwIDExejAgMXFOMCAxMXowIDF6ZTAgMTFCMCBXTTAgMXFPMCBXSTAgMW5YMCAxckIwIDEwTDAgMTFCMCAxaW4wIDE3ZDAgMWluMCAycFgwIDE5RTAgMWZVMCAxNlEwIDFpSTAgMTZRMCAxaUkwIDFWZDAgcGIwIDNLcDAgMTRvMCAxZGUwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFhMDAgMWZBMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdPMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFhjMCAxcW8wIFdNMCAxcU0wIDExQTAgMW8wMCAxMjAwIDFuQTAgMTFBMCAxdEEwIFUwMCAxNXcwfDEzZTZcIixcblx0XHRcdFwiQXNpYS9KYWthcnRhfEJNVCArMDcyMCArMDczMCArMDkgKzA4IFdJQnwtNzcuYyAtN2sgLTd1IC05MCAtODAgLTcwfDAxMjMyNDI1fC0xUTBUayBsdU0wIG1Qek8gOHZXdSA2a3B1IDRQWHUgeGhjdXwzMWU2XCIsXG5cdFx0XHRcIkFzaWEvSmF5YXB1cmF8TE1UICswOSArMDkzMCBXSVR8LTltLk0gLTkwIC05dSAtOTB8MDEyM3wtMXV1OW0uTSBzTU1tLk0gTDRudXwyNmU0XCIsXG5cdFx0XHRcIkFzaWEvSmVydXNhbGVtfEpNVCBJU1QgSURUIElERFR8LTJrLkUgLTIwIC0zMCAtNDB8MDEyMTIxMjEyMTIxMzIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTI2QmVrLkUgU3lNay5FIDVSYjAgMTByMCAxcHgwIDEwTjAgMXB6MCAxNnAwIDFqQjAgMTZwMCAxangwIDNMQjAgRW0wIG9yMCAxY24wIDFkQjAgMTZuMCAxME8wIDFqYTAgMXRDMCAxNG8wIDFjTTAgMWEwMCAxMUEwIDFOYTAgQW4wIDFNUDAgQUowIDFLcDAgTEMwIDFvbzAgV2wwIEVRTjAgRGIwIDFmQjAgUmIwIG5wQjAgMTF6MCAxQzEwIElMMCAxczEwIDEwbjAgMW8xMCBXTDAgMXpkMCBPbjAgMWxkMCAxMXowIDFvMTAgMTRuMCAxbzEwIDE0bjAgMW5kMCAxMm4wIDFuZDAgWHowIDFxMTAgMTJuMCAxaEIwIDFkWDAgMWVwMCAxYUwwIDFlTjAgMTdYMCAxbmYwIDExejAgMXRCMCAxOVcwIDFlMTAgMTdiMCAxZXAwIDFnTDAgMThOMCAxZnowIDFlTjAgMTdiMCAxZ3EwIDFnbjAgMTlkMCAxZHowIDFjMTAgMTdYMCAxaEIwIDFnbjAgMTlkMCAxZHowIDFjMTAgMTdYMCAxa3AwIDFkejAgMWMxMCAxYUwwIDFlTjAgMW9MMCAxME4wIDFvTDAgMTBOMCAxb0wwIDEwTjAgMXJ6MCBXMTAgMXJ6MCBXMTAgMXJ6MCAxME4wIDFvTDAgMTBOMCAxb0wwIDEwTjAgMXJ6MCBXMTAgMXJ6MCBXMTAgMXJ6MCAxME4wIDFvTDAgMTBOMCAxb0wwIDEwTjAgMW9MMCAxME4wIDFyejAgVzEwIDFyejAgVzEwIDFyejAgMTBOMCAxb0wwIDEwTjAgMW9MMCAxME4wIDFyejAgVzEwIDFyejAgVzEwIDFyejAgVzEwIDFyejAgMTBOMCAxb0wwIDEwTjAgMW9MMHw4MWU0XCIsXG5cdFx0XHRcIkFzaWEvS2FidWx8KzA0ICswNDMwfC00MCAtNHV8MDF8LTEwUXMwfDQ2ZTVcIixcblx0XHRcdFwiQXNpYS9LYW1jaGF0a2F8TE1UICsxMSArMTIgKzEzfC1heS5BIC1iMCAtYzAgLWQwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIxMnwtMVNMS3kuQSBpdlh5LkEgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAycEIwIElNMCByWDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAyc3AwIFdNMHwxOGU0XCIsXG5cdFx0XHRcIkFzaWEvS2FyYWNoaXxMTVQgKzA1MzAgKzA2MzAgKzA1IFBLVCBQS1NUfC00cy5jIC01dSAtNnUgLTUwIC01MCAtNjB8MDEyMTM0NTQ1NDU0fC0yeG9zcy5jIDFxT0tXLmMgN3pYMCBldXAwIExxTXUgMWZ5MDAgMWNMMCBkSzEwIDExYjAgMTYxMCAxalgwfDI0ZTZcIixcblx0XHRcdFwiQXNpYS9VcnVtcWl8TE1UICswNnwtNU8uayAtNjB8MDF8LTFHZ3RPLmt8MzJlNVwiLFxuXHRcdFx0XCJBc2lhL0thdGhtYW5kdXxMTVQgKzA1MzAgKzA1NDV8LTVGLmcgLTV1IC01SnwwMTJ8LTIxSmhGLmcgMkVHTWIuZ3wxMmU1XCIsXG5cdFx0XHRcIkFzaWEvS2hhbmR5Z2F8TE1UICswOCArMDkgKzEwICsxMXwtOTIuZCAtODAgLTkwIC1hMCAtYjB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjM0MzQzNDM0MzQzNDM0MzQzMnwtMjFROTIuZCBwQXAyLmQgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAycEIwIElNMCByWDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCBxSzAgeU4wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDE3VjAgN3pEMHw2NmUyXCIsXG5cdFx0XHRcIkFzaWEvS3Jhc25veWFyc2t8TE1UICswNiArMDcgKzA4fC02Yi5xIC02MCAtNzAgLTgwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0yMUhpYi5xIHByQWIucSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDJwQjAgSU0wIHJYMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MHwxMGU1XCIsXG5cdFx0XHRcIkFzaWEvS3VhbGFfTHVtcHVyfFNNVCArMDcgKzA3MjAgKzA3MzAgKzA5ICswOHwtNlQucCAtNzAgLTdrIC03dSAtOTAgLTgwfDAxMjM0MzV8LTJCZzZULnAgMTdhblQucCBsNVhFIDE3Yk8gOEZ5dSAxc28xdXw3MWU1XCIsXG5cdFx0XHRcIkFzaWEvS3VjaGluZ3xMTVQgKzA3MzAgKzA4ICswODIwICswOXwtN2wuayAtN3UgLTgwIC04ayAtOTB8MDEyMzIzMjMyMzIzMjMyMzI0MnwtMUtJVGwuayBnRGJQLmsgNnludSBBbkUgMU8wayBBbkUgMU5BayBBbkUgMU5BayBBbkUgMU5BayBBbkUgMU8wayBBbkUgMU5BayBBbkUgcEFrIDhGejB8MTNlNFwiLFxuXHRcdFx0XCJBc2lhL01hY2F1fExNVCBDU1QgQ0RUfC03eS5rIC04MCAtOTB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0ybGU4MCAxWE8zdSAxd24wIFJkMCAxd24wIFI5dSAxd3F1IFUxMCAxdHowIFRWdSAxdHowIDE3Z3UgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjSnUgMWNMMCAxY04wIDFmejAgMWNOMCAxY091IDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjSnUgMWNMMCAxY04wIDFmejAgMWNOMCAxY0wwfDU3ZTRcIixcblx0XHRcdFwiQXNpYS9NYWdhZGFufExNVCArMTAgKzExICsxMnwtYTMuYyAtYTAgLWIwIC1jMHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMTJ8LTFQY2EzLmMgZVVvMy5jIDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMnBCMCBJTTAgclgwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowIDNDcTB8OTVlM1wiLFxuXHRcdFx0XCJBc2lhL01ha2Fzc2FyfExNVCBNTVQgKzA4ICswOSBXSVRBfC03Vi5BIC03Vi5BIC04MCAtOTAgLTgwfDAxMjM0fC0yMUpqVi5BIHZmYzAgbXlMVi5BIDhNTDB8MTVlNVwiLFxuXHRcdFx0XCJBc2lhL01hbmlsYXwrMDggKzA5fC04MCAtOTB8MDEwMTAxMDEwfC0xa0pJMCBBTDAgY0sxMCA2NVgwIG1YQjAgdlgwIFZLMTAgMWRiMHwyNGU2XCIsXG5cdFx0XHRcIkFzaWEvTmljb3NpYXxMTVQgRUVUIEVFU1R8LTJkLnMgLTIwIC0zMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMVZjMmQucyAyYTNjZC5zIDFjTDAgMXFwMCBYejAgMTlCMCAxOVgwIDFmQjAgMWRiMCAxY3AwIDFjTDAgMWZCMCAxOVgwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxbzMwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8MzJlNFwiLFxuXHRcdFx0XCJBc2lhL05vdm9rdXpuZXRza3xMTVQgKzA2ICswNyArMDh8LTVNLk0gLTYwIC03MCAtODB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjEyfC0xUGN0TS5NIGVVTE0uTSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDJwQjAgSU0wIHJYMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDJzcDAgV00wfDU1ZTRcIixcblx0XHRcdFwiQXNpYS9Ob3Zvc2liaXJza3xMTVQgKzA2ICswNyArMDh8LTV2LkUgLTYwIC03MCAtODB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIxMjMyMzIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMnwtMjFRbnYuRSBwQUZ2LkUgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAycEIwIElNMCByWDAgMWNNMCAxY00wIG1sMCBPczAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDhIejAgNGVOMHwxNWU1XCIsXG5cdFx0XHRcIkFzaWEvT21za3xMTVQgKzA1ICswNiArMDd8LTRSLnUgLTUwIC02MCAtNzB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTIyNHNSLnUgcE1MUi51IDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMnBCMCBJTTAgclgwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowfDEyZTVcIixcblx0XHRcdFwiQXNpYS9PcmFsfExNVCArMDMgKzA1ICswNiArMDR8LTNwLm8gLTMwIC01MCAtNjAgLTQwfDAxMjMyMzIzMjMyMzIzMjMyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyfC0xUGMzcC5vIGVVb3AubyAyM0NLMCAzRGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDJwQjAgMWNNMCAxZkEwIDFjTTAgMWNNMCBJTTAgMUVNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwfDI3ZTRcIixcblx0XHRcdFwiQXNpYS9Qb250aWFuYWt8TE1UIFBNVCArMDczMCArMDkgKzA4IFdJVEEgV0lCfC03aC5rIC03aC5rIC03dSAtOTAgLTgwIC04MCAtNzB8MDEyMzI0MjU2fC0ydWE3aC5rIFhFMDAgbXVuTC5rIDhSYXUgNmtwdSA0UFh1IHhoY3UgV3FudXwyM2U0XCIsXG5cdFx0XHRcIkFzaWEvUHlvbmd5YW5nfExNVCBLU1QgSlNUIEtTVHwtOG4gLTh1IC05MCAtOTB8MDEyMzEzfC0ydW04biA5N1hSIDFsVHp1IDJPbmMwIDZCQXV8MjllNVwiLFxuXHRcdFx0XCJBc2lhL1F5enlsb3JkYXxMTVQgKzA0ICswNSArMDZ8LTRsLlEgLTQwIC01MCAtNjB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyM3wtMVBjNGwuUSBlVW9sLlEgMjNDTDAgM0RiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDNhbzAgMUVNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwfDczZTRcIixcblx0XHRcdFwiQXNpYS9SYW5nb29ufFJNVCArMDYzMCArMDl8LTZvLkwgLTZ1IC05MHwwMTIxfC0yMUppby5MIFNtblMuTCA3ajl1fDQ4ZTVcIixcblx0XHRcdFwiQXNpYS9TYWtoYWxpbnxMTVQgKzA5ICsxMSArMTIgKzEwfC05dS5NIC05MCAtYjAgLWMwIC1hMHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjQyMzIzMjMyMzIzMjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MnwtMkFHVnUuTSAxQm9NdS5NIDFxRmEwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMnBCMCBJTTAgclgwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDJwQjAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCAzcmQwfDU4ZTRcIixcblx0XHRcdFwiQXNpYS9TYW1hcmthbmR8TE1UICswNCArMDUgKzA2fC00ci5SIC00MCAtNTAgLTYwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0xUGM0ci5SIGVVb3IuUiAyM0NMMCAzRGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wfDM2ZTRcIixcblx0XHRcdFwiQXNpYS9TZW91bHxMTVQgS1NUIEpTVCBLU1QgS0RUIEtEVHwtOHIuUSAtOHUgLTkwIC05MCAtOXUgLWEwfDAxMjMxNDE0MTQxNDE0MTQxMzUzNTN8LTJ1bThyLlEgOTdYVi5RIDFtMXp1IGtLbzAgMkkwdSBPTDAgMUZCMCBSYjAgMXFOMCBUWDAgMXRCMCBUWDAgMXRCMCBUWDAgMXRCMCBUWDAgMmFwMCAxMkZCdSAxMUEwIDFvMDAgMTFBMHwyM2U2XCIsXG5cdFx0XHRcIkFzaWEvU3JlZG5la29seW1za3xMTVQgKzEwICsxMSArMTJ8LWFlLlEgLWEwIC1iMCAtYzB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFQY2FlLlEgZVVvZS5RIDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMnBCMCBJTTAgclgwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowfDM1ZTJcIixcblx0XHRcdFwiQXNpYS9UYWlwZWl8Q1NUIEpTVCBDRFR8LTgwIC05MCAtOTB8MDEwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjAyMDIwMjB8LTFpdzgwIGpvTTAgMXlvMCBUejAgMWlwMCAxalgwIDFjTjAgMTFiMCAxb04wIDExYjAgMW9OMCAxMWIwIDFvTjAgMTFiMCAxME4wIDFCWDAgMTBwMCAxcHowIDEwcDAgMXB6MCAxMHAwIDFkYjAgMWRkMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFCQjAgTUwwIDFCZDAgTUwwIHVxMTAgMWRiMCAxY04wIDFkYjAgOTdCMCBBTDB8NzRlNVwiLFxuXHRcdFx0XCJBc2lhL1Rhc2hrZW50fExNVCArMDUgKzA2ICswN3wtNEIuYiAtNTAgLTYwIC03MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjF8LTFQYzRCLmIgZVVuQi5iIDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMnBCMHwyM2U1XCIsXG5cdFx0XHRcIkFzaWEvVGJpbGlzaXxUQk1UICswMyArMDQgKzA1fC0yWC5iIC0zMCAtNDAgLTUwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMTIxMjEyMzIzMjMyMzIzMjMyMzIzMjMyMTJ8LTFQYzJYLmIgMWpVblguYiBXQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMnBCMCAxY0swIDFjTDAgMWNOMCAxY0wwIDFjTjAgMnB6MCAxY0wwIDFmQjAgM056MCAxMUIwIDFuWDAgMTFCMCAxcUwwIFdOMCAxcUwwIFdOMCAxcUwwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTFCMCBBbjAgT3MwIFdNMHwxMWU1XCIsXG5cdFx0XHRcIkFzaWEvVGVocmFufExNVCBUTVQgKzAzMzAgKzA0ICswNSArMDQzMHwtM3AuSSAtM3AuSSAtM3UgLTQwIC01MCAtNHV8MDEyMzQzMjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTI1MjUyNTJ8LTJidERwLkkgMWQzYzAgMWh1TFQuSSBUWHUgMXB6MCBzTjAgdkF1IDFjTDAgMWRCMCAxZW4wIHBOQjAgVUwwIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNOMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY04wIDFkejAgNjRwMCAxZHowIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY04wIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNOMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY04wIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjTjAgMWR6MCAxY3AwIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY04wIDFkejAgMWNwMCAxZHowIDFjcDAgMWR6MCAxY3AwIDFkejB8MTRlNlwiLFxuXHRcdFx0XCJBc2lhL1RoaW1waHV8TE1UICswNTMwICswNnwtNVcuQSAtNXUgLTYwfDAxMnwtU3U1Vy5BIDFCR01zLkF8NzllM1wiLFxuXHRcdFx0XCJBc2lhL1Rva3lvfEpTVCBKRFR8LTkwIC1hMHwwMTAxMDEwMTB8LVFKSjAgUmIwIDFsZDAgMTRuMCAxemQwIE9uMCAxemQwIE9uMHwzOGU2XCIsXG5cdFx0XHRcIkFzaWEvVG9tc2t8TE1UICswNiArMDcgKzA4fC01RC5QIC02MCAtNzAgLTgwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMTIxMjEyMTIxMjEyMTIxMjEyMTJ8LTIxTmhELlAgcHh6RC5QIDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMnBCMCBJTTAgclgwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgY28wIDFiQjAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCAzUXAwfDEwZTVcIixcblx0XHRcdFwiQXNpYS9VbGFhbmJhYXRhcnxMTVQgKzA3ICswOCArMDl8LTc3LncgLTcwIC04MCAtOTB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0yQVBINy53IDJVa283LncgY0tuMCAxZGIwIDFkZDAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDZoRDAgMTF6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIGtFcDAgMWNKMCAxY1AwIDFjSjB8MTJlNVwiLFxuXHRcdFx0XCJBc2lhL1VzdC1OZXJhfExNVCArMDggKzA5ICsxMiArMTEgKzEwfC05dy5TIC04MCAtOTAgLWMwIC1iMCAtYTB8MDEyMzQzNDM0MzQzNDM0MzQzNDM0MzQ1NDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQ1fC0yMVE5dy5TIHBBcHcuUyAyM0NMMCAxZDkwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDJwQjAgSU0wIHJYMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMTdWMCA3ekQwfDY1ZTJcIixcblx0XHRcdFwiQXNpYS9WbGFkaXZvc3Rva3xMTVQgKzA5ICsxMCArMTF8LThMLnYgLTkwIC1hMCAtYjB8MDEyMzIzMjMyMzIzMjMyMzIzMjMyMzIxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFTSklMLnYgaXRYTC52IDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMnBCMCBJTTAgclgwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowfDYwZTRcIixcblx0XHRcdFwiQXNpYS9ZYWt1dHNrfExNVCArMDggKzA5ICsxMHwtOEMuVyAtODAgLTkwIC1hMHwwMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMnwtMjFROEMuVyBwQW9DLlcgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAycEIwIElNMCByWDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDhIejB8MjhlNFwiLFxuXHRcdFx0XCJBc2lhL1lla2F0ZXJpbmJ1cmd8TE1UIFBNVCArMDQgKzA1ICswNnwtNDIueCAtM0ouNSAtNDAgLTUwIC02MHwwMTIzNDM0MzQzNDM0MzQzNDM0MzQzNDMyMzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDN8LTJhZzQyLnggN21RaC5zIHFCdkouNSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDJwQjAgSU0wIHJYMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MHwxNGU1XCIsXG5cdFx0XHRcIkFzaWEvWWVyZXZhbnxMTVQgKzAzICswNCArMDV8LTJXIC0zMCAtNDAgLTUwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMTIxMjEyMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTFQYzJXIDFqVW5XIFdDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAycEIwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgNFJYMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTB8MTNlNVwiLFxuXHRcdFx0XCJBdGxhbnRpYy9Bem9yZXN8SE1UIC0wMiAtMDEgKzAwIFdFVHwxUy53IDIwIDEwIDAgMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIzMjEyMzIxMjMyMTIzMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzNDMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMnwtMmxkVzAgYVBYMCBTcDAgTFgwIDF2YzAgVGMwIDF1TTAgU00wIDF2YzAgVGMwIDF2YzAgU00wIDF2YzAgNjYwMCAxY28wIDNFMDAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxYTAwIDFpbzAgMTdjMCAzSTAwIDE3YzAgMWNNMCAxY00wIDNGYzAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxcU0wIERjMCAxdEEwIDFjTTAgMWRjMCAxNDAwIGdMMCBJTTAgczEwIFUwMCBkWDAgUmMwIHBkMCBSYzAgZ0wwIE9vMCBwZDAgUmMwIGdMMCBPbzAgcGQwIDE0bzAgMWNNMCAxY1AwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAzQ28wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIHFJbDAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY04wIDFjTDAgMWNOMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTjAgMWNMMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY0wwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDI1ZTRcIixcblx0XHRcdFwiQXRsYW50aWMvQmVybXVkYXxMTVQgQVNUIEFEVHw0ai5pIDQwIDMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTFCblJFLkcgMUxUYkUuRyAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFmejAgMWExMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgUmQwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjAgT3AwIDF6YjB8NjVlM1wiLFxuXHRcdFx0XCJBdGxhbnRpYy9DYW5hcnl8TE1UIC0wMSBXRVQgV0VTVHwxMS5BIDEwIDAgLTEwfDAxMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyfC0xVXRhVy5vIFhQQVcubyAxbEFLMCAxYTEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8NTRlNFwiLFxuXHRcdFx0XCJBdGxhbnRpYy9DYXBlX1ZlcmRlfExNVCAtMDIgLTAxfDF5LjQgMjAgMTB8MDEyMTJ8LTJsZFcwIDFlRW8wIDd6WDAgMWRqZjB8NTBlNFwiLFxuXHRcdFx0XCJBdGxhbnRpYy9GYXJvZXxMTVQgV0VUIFdFU1R8ci40IDAgLTEwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0ydVNudy5VIDJXZ293LlUgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8NDllM1wiLFxuXHRcdFx0XCJBdGxhbnRpYy9NYWRlaXJhfEZNVCAtMDEgKzAwICswMSBXRVQgV0VTVHwxNy5BIDEwIDAgLTEwIDAgLTEwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjMyMTIzMjEyMzIxMjMyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0fC0ybGRYMCBhUFgwIFNwMCBMWDAgMXZjMCBUYzAgMXVNMCBTTTAgMXZjMCBUYzAgMXZjMCBTTTAgMXZjMCA2NjAwIDFjbzAgM0UwMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDFhMDAgMWlvMCAxN2MwIDNJMDAgMTdjMCAxY00wIDFjTTAgM0ZjMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGMwIDF0QTAgMWNNMCAxZGMwIDE0MDAgZ0wwIElNMCBzMTAgVTAwIGRYMCBSYzAgcGQwIFJjMCBnTDAgT28wIHBkMCBSYzAgZ0wwIE9vMCBwZDAgMTRvMCAxY00wIDFjUDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDNDbzAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgcUlsMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTjAgMWNMMCAxY04wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxY0wwIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8MjdlNFwiLFxuXHRcdFx0XCJBdGxhbnRpYy9SZXlramF2aWt8TE1UIC0wMSArMDAgR01UfDFzIDEwIDAgMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTN8LTJ1V213IG1mYXcgMUJkMCBNTDAgMUxCMCBDbjAgMUxCMCAzZlgwIEMxMCBIclgwIDFjTzAgTEIwIDFFTDAgTEEwIDFDMDAgT28wIDF3bzAgUmMwIDF3bzAgUmMwIDF3bzAgUmMwIDF6YzAgT28wIDF6YzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFvMDAgMTFBMCAxbGMwIDE0bzAgMW8wMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbzAwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbzAwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFvMDAgMTRvMHwxMmU0XCIsXG5cdFx0XHRcIkF0bGFudGljL1NvdXRoX0dlb3JnaWF8LTAyfDIwfDB8fDMwXCIsXG5cdFx0XHRcIkF0bGFudGljL1N0YW5sZXl8U01UIC0wNCAtMDMgLTAyfDNQLm8gNDAgMzAgMjB8MDEyMTIxMjEyMTIxMjEyMzIzMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyfC0ya0p3OC5BIDEyYkE4LkEgMTlYMCAxZkIwIDE5WDAgMWlwMCAxOVgwIDFmQjAgMTlYMCAxZkIwIDE5WDAgMWZCMCBDbjAgMUNjMTAgV0wwIDFxTDAgVTEwIDF0ejAgMm1OMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXR6MCBVMTAgMXR6MCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXR6MCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFMMCBXTjAgMXFOMCBVMTAgMXduMCBSZDAgMXduMCBVMTAgMXR6MCBVMTAgMXR6MCBVMTAgMXR6MCBVMTAgMXR6MCBVMTAgMXduMCBVMTAgMXR6MCBVMTAgMXR6MCBVMTB8MjFlMlwiLFxuXHRcdFx0XCJBdXN0cmFsaWEvU3lkbmV5fEFFU1QgQUVEVHwtYTAgLWIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDF8LTI5M2xYIHhjWCAxMGpkMCB5TDAgMWNOMCAxY0wwIDFmQjAgMTlYMCAxN2MxMCBMQTAgMUMwMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCAxNG8wIDFvMDAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgVTAwIDFxTTAgV00wIDF0QTAgV00wIDF0QTAgVTAwIDF0QTAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxMUEwIDFvMDAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgV00wIDFxTTAgMTRvMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTB8NDBlNVwiLFxuXHRcdFx0XCJBdXN0cmFsaWEvQWRlbGFpZGV8QUNTVCBBQ0RUfC05dSAtYXV8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMXwtMjkzbHQgeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDE3YzEwIExBMCAxQzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFUwMCAxcU0wIFdNMCAxdEEwIFdNMCAxdEEwIFUwMCAxdEEwIFUwMCAxdEEwIE9vMCAxemMwIFdNMCAxcU0wIFJjMCAxemMwIFUwMCAxdEEwIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgV00wIDFxTTAgMTRvMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTB8MTFlNVwiLFxuXHRcdFx0XCJBdXN0cmFsaWEvQnJpc2JhbmV8QUVTVCBBRURUfC1hMCAtYjB8MDEwMTAxMDEwMTAxMDEwMTB8LTI5M2xYIHhjWCAxMGpkMCB5TDAgMWNOMCAxY0wwIDFmQjAgMTlYMCAxN2MxMCBMQTAgSDFBMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzB8MjBlNVwiLFxuXHRcdFx0XCJBdXN0cmFsaWEvQnJva2VuX0hpbGx8QUNTVCBBQ0RUfC05dSAtYXV8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMXwtMjkzbHQgeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDE3YzEwIExBMCAxQzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIDE0bzAgMW8wMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBVMDAgMXFNMCBXTTAgMXRBMCBXTTAgMXRBMCBVMDAgMXRBMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIFdNMCAxcU0wIDE0bzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wfDE4ZTNcIixcblx0XHRcdFwiQXVzdHJhbGlhL0N1cnJpZXxBRVNUIEFFRFR8LWEwIC1iMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxfC0yOUU4MCAxOVgwIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwIDE3YzEwIExBMCAxQzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIDExQTAgMXFNMCBXTTAgMXFNMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXdvMCBXTTAgMXRBMCBXTTAgMXRBMCBVMDAgMXRBMCBVMDAgMXRBMCAxMUEwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDExQTAgMW8wMCAxaW8wIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWEwMCAxaW8wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wfDc0NlwiLFxuXHRcdFx0XCJBdXN0cmFsaWEvRGFyd2lufEFDU1QgQUNEVHwtOXUgLWF1fDAxMDEwMTAxMHwtMjkzbHQgeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwfDEyZTRcIixcblx0XHRcdFwiQXVzdHJhbGlhL0V1Y2xhfCswODQ1ICswOTQ1fC04SiAtOUp8MDEwMTAxMDEwMTAxMDEwMTAxMHwtMjkza0kgeGNYIDEwamQwIHlMMCAxY04wIDFjTDAgMWdTcDAgT28wIGw1QTAgT28wIGlKQTAgRzAwIHpVMDAgSU0wIDFxTTAgMTFBMCAxbzAwIDExQTB8MzY4XCIsXG5cdFx0XHRcIkF1c3RyYWxpYS9Ib2JhcnR8QUVTVCBBRURUfC1hMCAtYjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxfC0yOUU4MCAxOVgwIDEwamQwIHlMMCAxY04wIDFjTDAgMWZCMCAxOVgwIFZmQjAgMWNNMCAxbzAwIFJjMCAxd28wIFJjMCAxd28wIFUwMCAxd28wIExBMCAxQzAwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIE9vMCAxemMwIDExQTAgMXFNMCBXTTAgMXFNMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXdvMCBXTTAgMXRBMCBXTTAgMXRBMCBVMDAgMXRBMCBVMDAgMXRBMCAxMUEwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDExQTAgMW8wMCAxaW8wIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWEwMCAxaW8wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wfDIxZTRcIixcblx0XHRcdFwiQXVzdHJhbGlhL0xvcmRfSG93ZXxBRVNUICsxMDMwICsxMTMwICsxMXwtYTAgLWF1IC1idSAtYjB8MDEyMTIxMjEyMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxMzEzMTMxM3xyYUMwIDF6ZHUgUmIwIDF6ZDAgT24wIDF6ZDAgT24wIDF6ZDAgT24wIDF6ZDAgVFh1IDFxTXUgV0x1IDF0QXUgV0x1IDF0QXUgVFh1IDF0QXUgT251IDF6Y3UgT251IDF6Y3UgT251IDF6Y3UgUmJ1IDF6Y3UgT251IDF6Y3UgT251IDF6Y3UgMTF6dSAxbzB1IDExenUgMW8wdSAxMXp1IDFvMHUgMTF6dSAxcU11IFdMdSAxMUF1IDFuWHUgMXFNdSAxMXp1IDFvMHUgMTF6dSAxbzB1IDExenUgMXFNdSBXTHUgMXFNdSAxMXp1IDFvMHUgV0x1IDFxTXUgMTRudSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWZBdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWZBdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFmenUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxZkF1IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxY011IDFjTHUgMWNNdSAxY0x1IDFjTXUgMWNMdSAxZkF1IDFjTHUgMWNNdSAxY0x1IDFjTXV8MzQ3XCIsXG5cdFx0XHRcIkF1c3RyYWxpYS9MaW5kZW1hbnxBRVNUIEFFRFR8LWEwIC1iMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI5M2xYIHhjWCAxMGpkMCB5TDAgMWNOMCAxY0wwIDFmQjAgMTlYMCAxN2MxMCBMQTAgSDFBMCBPbzAgMXpjMCBPbzAgMXpjMCBPbzAgMXpjMCBSYzAgMXpjMCBPbzB8MTBcIixcblx0XHRcdFwiQXVzdHJhbGlhL01lbGJvdXJuZXxBRVNUIEFFRFR8LWEwIC1iMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxfC0yOTNsWCB4Y1ggMTBqZDAgeUwwIDFjTjAgMWNMMCAxZkIwIDE5WDAgMTdjMTAgTEEwIDFDMDAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgVTAwIDFxTTAgV00wIDFxTTAgMTFBMCAxdEEwIFUwMCAxdEEwIFUwMCAxdEEwIE9vMCAxemMwIE9vMCAxemMwIFJjMCAxemMwIE9vMCAxemMwIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMTFBMCAxbzAwIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIFdNMCAxcU0wIDE0bzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wfDM5ZTVcIixcblx0XHRcdFwiQXVzdHJhbGlhL1BlcnRofEFXU1QgQVdEVHwtODAgLTkwfDAxMDEwMTAxMDEwMTAxMDEwMTB8LTI5M2pYIHhjWCAxMGpkMCB5TDAgMWNOMCAxY0wwIDFnU3AwIE9vMCBsNUEwIE9vMCBpSkEwIEcwMCB6VTAwIElNMCAxcU0wIDExQTAgMW8wMCAxMUEwfDE4ZTVcIixcblx0XHRcdFwiQ0VUfENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhRmUwIDExZDAgMWlPMCAxMUEwIDFvMDAgMTFBMCBRcmMwIDZpMDAgV00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMTZNMCAxZ01NMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDBcIixcblx0XHRcdFwiUGFjaWZpYy9FYXN0ZXJ8RU1UIC0wNyAtMDYgLTA1fDdoLnMgNzAgNjAgNTB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzfC0xdVNnRy53IDFzNElHLncgV0wwIDF6ZDAgT24wIDFpcDAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMWxkMCAxNG4wIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFxTjAgV0wwIDFxTjAgV0wwIDFxTjAgMTF6MCAxbzEwIDJwQTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCAxY0wwIDFjTjAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMWZCMCAxOVgwIDFxTjAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxcU4wIFdMMCAxcU4wIDE3YjAgMWlwMCAxMXowIDFpcDAgMWZ6MCAxZkIwIDExejAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCBXTDAgMXFOMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMXFOMCBXTDAgMXFOMCAxN2IwIDFpcDAgMTF6MCAxbzEwIDE5WDAgMWZCMCAxblgwIEcxMCAxRUwwIE9wMCAxemIwIFJkMCAxd24wIFJkMCA0Nm4wIEFwMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIERkMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIERkMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIERkMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIEFwMCAxTmIwIEFwMHwzMGUyXCIsXG5cdFx0XHRcIkNTVDZDRFR8Q1NUIENEVCBDV1QgQ1BUfDYwIDUwIDUwIDUwfDAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjYxczAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDMwIGl3MCBRd04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwXCIsXG5cdFx0XHRcIkVFVHxFRVQgRUVTVHwtMjAgLTMwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHxoREIwIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMFwiLFxuXHRcdFx0XCJFdXJvcGUvRHVibGlufERNVCBJU1QgR01UIEJTVCBJU1R8cC5sIC15LkQgMCAtMTAgLTEwfDAxMjMyMzIzMjMyMzI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyNDI0MjQyfC0yYXg5eS5EIFJjMCAxZnp5LkQgMTRNMCAxZmMwIDFnMDAgMWNvMCAxZGMwIDFjbzAgMW9vMCAxNDAwIDFkYzAgMTlBMCAxaW8wIDFpbzAgV00wIDFvMDAgMTRvMCAxbzAwIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxbGMwIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWNNMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMXFNMCBEYzAgZzYwMCAxNG8wIDF3bzAgMTdjMCAxaW8wIDExQTAgMW8wMCAxN2MwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxbGMwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFhMDAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDF0QTAgSU0wIDkwbzAgVTAwIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDF0QTAgVTAwIDF0QTAgVTAwIDF0QTAgMTF6MCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxNG8wIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDEyZTVcIixcblx0XHRcdFwiRVNUfEVTVHw1MHwwfFwiLFxuXHRcdFx0XCJFU1Q1RURUfEVTVCBFRFQgRVdUIEVQVHw1MCA0MCA0MCA0MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI2MXQwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHg0MCBpdjAgUXdOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMFwiLFxuXHRcdFx0XCJFdGMvR01ULTB8R01UfDB8MHxcIixcblx0XHRcdFwiRXRjL0dNVC0xfCswMXwtMTB8MHxcIixcblx0XHRcdFwiUGFjaWZpYy9Qb3J0X01vcmVzYnl8KzEwfC1hMHwwfHwyNWU0XCIsXG5cdFx0XHRcIlBhY2lmaWMvUG9obnBlaXwrMTF8LWIwfDB8fDM0ZTNcIixcblx0XHRcdFwiUGFjaWZpYy9UYXJhd2F8KzEyfC1jMHwwfHwyOWUzXCIsXG5cdFx0XHRcIkV0Yy9HTVQtMTN8KzEzfC1kMHwwfFwiLFxuXHRcdFx0XCJFdGMvR01ULTE0fCsxNHwtZTB8MHxcIixcblx0XHRcdFwiRXRjL0dNVC0yfCswMnwtMjB8MHxcIixcblx0XHRcdFwiRXRjL0dNVC0zfCswM3wtMzB8MHxcIixcblx0XHRcdFwiRXRjL0dNVC00fCswNHwtNDB8MHxcIixcblx0XHRcdFwiRXRjL0dNVC01fCswNXwtNTB8MHxcIixcblx0XHRcdFwiRXRjL0dNVC02fCswNnwtNjB8MHxcIixcblx0XHRcdFwiSW5kaWFuL0NocmlzdG1hc3wrMDd8LTcwfDB8fDIxZTJcIixcblx0XHRcdFwiRXRjL0dNVC04fCswOHwtODB8MHxcIixcblx0XHRcdFwiUGFjaWZpYy9QYWxhdXwrMDl8LTkwfDB8fDIxZTNcIixcblx0XHRcdFwiRXRjL0dNVCsxfC0wMXwxMHwwfFwiLFxuXHRcdFx0XCJFdGMvR01UKzEwfC0xMHxhMHwwfFwiLFxuXHRcdFx0XCJFdGMvR01UKzExfC0xMXxiMHwwfFwiLFxuXHRcdFx0XCJFdGMvR01UKzEyfC0xMnxjMHwwfFwiLFxuXHRcdFx0XCJFdGMvR01UKzN8LTAzfDMwfDB8XCIsXG5cdFx0XHRcIkV0Yy9HTVQrNHwtMDR8NDB8MHxcIixcblx0XHRcdFwiRXRjL0dNVCs1fC0wNXw1MHwwfFwiLFxuXHRcdFx0XCJFdGMvR01UKzZ8LTA2fDYwfDB8XCIsXG5cdFx0XHRcIkV0Yy9HTVQrN3wtMDd8NzB8MHxcIixcblx0XHRcdFwiRXRjL0dNVCs4fC0wOHw4MHwwfFwiLFxuXHRcdFx0XCJFdGMvR01UKzl8LTA5fDkwfDB8XCIsXG5cdFx0XHRcIkV0Yy9VQ1R8VUNUfDB8MHxcIixcblx0XHRcdFwiRXRjL1VUQ3xVVEN8MHwwfFwiLFxuXHRcdFx0XCJFdXJvcGUvQW1zdGVyZGFtfEFNVCBOU1QgKzAxMjAgKzAwMjAgQ0VTVCBDRVR8LWoudyAtMWoudyAtMWsgLWsgLTIwIC0xMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTIzMjMyMzQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDV8LTJhRmNqLncgMTFiMCAxaVAwIDExQTAgMWlvMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFjbzAgMWlvMCAxeW8wIFBjMCAxYTAwIDFmQTAgMUJjMCBNbzAgMXRjMCBVbzAgMXRBMCBVMDAgMXVvMCBXMDAgMXMwMCBWQTAgMXNvMCBWYzAgMXNNMCBVTTAgMXdvMCBSYzAgMXUwMCBXbzAgMXJBMCBXMDAgMXMwMCBWQTAgMXNNMCBVTTAgMXcwMCBmVjAgQkNYLncgMXRBMCBVMDAgMXUwMCBXbzAgMXNtMCA2MDFrIFdNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDE2TTAgMWdNTTAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDE2ZTVcIixcblx0XHRcdFwiRXVyb3BlL0FuZG9ycmF8V0VUIENFVCBDRVNUfDAgLTEwIC0yMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LVVCQTAgMXhJTjAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMHw3OWUzXCIsXG5cdFx0XHRcIkV1cm9wZS9Bc3RyYWtoYW58TE1UICswMyArMDQgKzA1fC0zYy5jIC0zMCAtNDAgLTUwfDAxMjMyMzIzMjMyMzIzMjMyMzIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMnwtMVBjcmMuYyBlVU1jLmMgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMnBCMCAxY00wIDFmQTAgMWNNMCAzQ28wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCAzcmQwXCIsXG5cdFx0XHRcIkV1cm9wZS9BdGhlbnN8QU1UIEVFVCBFRVNUIENFU1QgQ0VUfC0xeS5RIC0yMCAtMzAgLTIwIC0xMHwwMTIxMjM0MzQxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJhNjF4LlEgQ05ieC5RIG1uMCBrVTEwIDliMCAzRXMwIFhhMCAxZmIwIDFkZDAgazNYMCBOejAgU0NwMCAxdmMwIFNPMCAxY00wIDFhMDAgMWFvMCAxZmMwIDFhMTAgMWZHMCAxY2cwIDFkWDAgMWJYMCAxY1EwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDM1ZTVcIixcblx0XHRcdFwiRXVyb3BlL0xvbmRvbnxHTVQgQlNUIEJEU1R8MCAtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMjEyMTIxMjEyMTAxMDEyMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJheGEwIFJjMCAxZkEwIDE0TTAgMWZjMCAxZzAwIDFjbzAgMWRjMCAxY28wIDFvbzAgMTQwMCAxZGMwIDE5QTAgMWlvMCAxaW8wIFdNMCAxbzAwIDE0bzAgMW8wMCAxN2MwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWxjMCAxN2MwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxZkEwIDFjTTAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxaW8wIDFxTTAgRGMwIDJSejAgRGMwIDF6YzAgT28wIDF6YzAgUmMwIDF3bzAgMTdjMCAxaU0wIEZBMCB4QjAgMWZBMCAxYTAwIDE0bzAgYmIwIExBMCB4QjAgUmMwIDF3bzAgMTFBMCAxbzAwIDE3YzAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFsYzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWEwMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXRBMCBJTTAgOTBvMCBVMDAgMXRBMCBVMDAgMXRBMCBVMDAgMXRBMCBVMDAgMXRBMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXRBMCBVMDAgMXRBMCBVMDAgMXRBMCAxMXowIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDE0bzAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8MTBlNlwiLFxuXHRcdFx0XCJFdXJvcGUvQmVsZ3JhZGV8Q0VUIENFU1R8LTEwIC0yMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMTlSQzAgM0lQMCBXTTAgMWZBMCAxY00wIDFjTTAgMXJjMCBRbzAgMXZtbzAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDEyZTVcIixcblx0XHRcdFwiRXVyb3BlL0JlcmxpbnxDRVQgQ0VTVCBDRU1UfC0xMCAtMjAgLTMwfDAxMDEwMTAxMDEwMTAxMjEwMTAxMjEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yYUZlMCAxMWQwIDFpTzAgMTFBMCAxbzAwIDExQTAgUXJjMCA2aTAwIFdNMCAxZkEwIDFjTTAgMWNNMCAxY00wIGtMMCBOYzAgbTEwIFdNMCAxYW8wIDFjcDAgZFgwIGp6MCBEZDAgMWlvMCAxN2MwIDFmQTAgMWEwMCAxZWhBMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8NDFlNVwiLFxuXHRcdFx0XCJFdXJvcGUvUHJhZ3VlfENFVCBDRVNUIEdNVHwtMTAgLTIwIDB8MDEwMTAxMDEwMTAxMDEwMTAyMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhRmUwIDExZDAgMWlPMCAxMUEwIDFvMDAgMTFBMCBRcmMwIDZpMDAgV00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxcU0wIDExYzAgbXAwIHhBMCBtbjAgMTdjMCAxaW8wIDE3YzAgMWZjMCAxYW8wIDFiTmMwIDFjTTAgMWZBMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8MTNlNVwiLFxuXHRcdFx0XCJFdXJvcGUvQnJ1c3NlbHN8V0VUIENFVCBDRVNUIFdFU1R8MCAtMTAgLTIwIC0xMHwwMTIxMjEyMTAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yZWhjMCAzelgwIDExYzAgMWlPMCAxMUEwIDFvMDAgMTFBMCBteTAgSWMwIDFxTTAgUmMwIDFFTTAgVU0wIDF1MDAgMTBvMCAxaW8wIDFpbzAgMTdjMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxYTMwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFpbzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGMwIHkwMCA1V24wIFdNMCAxZkEwIDFjTTAgMTZNMCAxaU0wIDE2TTAgMUMwMCBVbzAgMWVlbzAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDIxZTVcIixcblx0XHRcdFwiRXVyb3BlL0J1Y2hhcmVzdHxCTVQgRUVUIEVFU1R8LTFJLm8gLTIwIC0zMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0xeEFwSS5vIDIwTEkubyBSQTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFBeGMwIE9uMCAxZkEwIDFhMTAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjSzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNMMCAxY04wIDFjTDAgMWZCMCAxblgwIDExRTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMHwxOWU1XCIsXG5cdFx0XHRcIkV1cm9wZS9CdWRhcGVzdHxDRVQgQ0VTVHwtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhRmUwIDExZDAgMWlPMCAxMUEwIDFpcDAgMTdiMCAxb3AwIDF0YjAgUTJtMCAzTmUwIFdNMCAxZkEwIDFjTTAgMWNNMCAxb0owIDFkYzAgMTAzMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxYTAwIDFpTTAgMWZBMCA4SGEwIFJiMCAxd04wIFJiMCAxQkIwIEx6MCAxQzIwIExCMCBTTlgwIDFhMTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMHwxN2U1XCIsXG5cdFx0XHRcIkV1cm9wZS9adXJpY2h8Q0VUIENFU1R8LTEwIC0yMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMTlMYzAgMTFBMCAxbzAwIDExQTAgMXhHMTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8MzhlNFwiLFxuXHRcdFx0XCJFdXJvcGUvQ2hpc2luYXV8Q01UIEJNVCBFRVQgRUVTVCBDRVNUIENFVCBNU0sgTVNEfC0xVCAtMUkubyAtMjAgLTMwIC0yMCAtMTAgLTMwIC00MHwwMTIzMjMyMzIzMjMyMzIzMjMyMzQ1NDU0Njc2NzY3Njc2NzY3Njc2NzY3NjczMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzJ8LTI2amRUIHdHTWEuQSAyMExJLm8gUkEwIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAyN0EwIDJlbjAgMzlnMCBXTTAgMWZBMCAxY00wIFY5MCAxdDd6MCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCBnTDAgV08wIDFjTTAgMWNNMCAxY0swIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCAxblgwIDExRDAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMHw2N2U0XCIsXG5cdFx0XHRcIkV1cm9wZS9Db3BlbmhhZ2VufENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMmF6QzAgVHowIFZ1TzAgNjBxMCBXTTAgMWZBMCAxY00wIDFjTTAgMWNNMCBTMDAgMUhBMCBOYzAgMUMwMCBEYzAgMU5jMCBBbzAgMWg1QTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDEyZTVcIixcblx0XHRcdFwiRXVyb3BlL0dpYnJhbHRhcnxHTVQgQlNUIEJEU1QgQ0VUIENFU1R8MCAtMTAgLTIwIC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEyMTIxMjEyMTIxMDEwMTIxMDEwMTAxMDEwMTAxMDEwMTAxMDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzfC0yYXhhMCBSYzAgMWZBMCAxNE0wIDFmYzAgMWcwMCAxY28wIDFkYzAgMWNvMCAxb28wIDE0MDAgMWRjMCAxOUEwIDFpbzAgMWlvMCBXTTAgMW8wMCAxNG8wIDFvMDAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFsYzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWZBMCAxY00wIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxcU0wIERjMCAyUnowIERjMCAxemMwIE9vMCAxemMwIFJjMCAxd28wIDE3YzAgMWlNMCBGQTAgeEIwIDFmQTAgMWEwMCAxNG8wIGJiMCBMQTAgeEIwIFJjMCAxd28wIDExQTAgMW8wMCAxN2MwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxbGMwIDE3YzAgMWZBMCAxMEp6MCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDMwZTNcIixcblx0XHRcdFwiRXVyb3BlL0hlbHNpbmtpfEhNVCBFRVQgRUVTVHwtMUQuTiAtMjAgLTMwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTFXdU5ELk4gT1VMRC5OIDFkQTAgMXhHcTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8MTJlNVwiLFxuXHRcdFx0XCJFdXJvcGUvS2FsaW5pbmdyYWR8Q0VUIENFU1QgQ0VUIENFU1QgTVNLIE1TRCBFRVNUIEVFVCArMDN8LTEwIC0yMCAtMjAgLTMwIC0zMCAtNDAgLTMwIC0yMCAtMzB8MDEwMTAxMDEwMTAxMDIzMjQ1NDU0NTQ1NDU0NTQ1NDU0Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc2NzY3Njc4N3wtMmFGZTAgMTFkMCAxaU8wIDExQTAgMW8wMCAxMUEwIFFyYzAgNmkwMCBXTTAgMWZBMCAxY00wIDFjTTAgQW0wIExiMCAxZW4wIG9wMCAxcE56MCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTjAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowfDQ0ZTRcIixcblx0XHRcdFwiRXVyb3BlL0tpZXZ8S01UIEVFVCBNU0sgQ0VTVCBDRVQgTVNEIEVFU1R8LTIyLjQgLTIwIC0zMCAtMjAgLTEwIC00MCAtMzB8MDEyMzQzNDI1MjUyNTI1MjUyNTI1MjUyNTI1NjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MXwtMVBjMjIuNCBlVW8yLjQgcm56MCAySGcwIFdNMCAxZkEwIGRhMCAxdjRtMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCBEYjAgMzIyMCAxY0swIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY1EwIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMHwzNGU1XCIsXG5cdFx0XHRcIkV1cm9wZS9LaXJvdnxMTVQgKzAzICswNCArMDV8LTNpLk0gLTMwIC00MCAtNTB8MDEyMzIzMjMyMzIzMjMyMzIzMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTIyV00wIHFIOTAgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMnBCMCAxY00wIDFmQTAgMWNNMCAzQ28wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MHw0OGU0XCIsXG5cdFx0XHRcIkV1cm9wZS9MaXNib258TE1UIFdFVCBXRVNUIFdFTVQgQ0VUIENFU1R8QS5KIDAgLTEwIC0yMCAtMTAgLTIwfDAxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjMyMTIzMjEyMzIxMjMyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxNDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyNDU0NTQ1NDIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmxlMDAgYVBYMCBTcDAgTFgwIDF2YzAgVGMwIDF1TTAgU00wIDF2YzAgVGMwIDF2YzAgU00wIDF2YzAgNjYwMCAxY28wIDNFMDAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxYTAwIDFpbzAgMTdjMCAzSTAwIDE3YzAgMWNNMCAxY00wIDNGYzAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxcU0wIERjMCAxdEEwIDFjTTAgMWRjMCAxNDAwIGdMMCBJTTAgczEwIFUwMCBkWDAgUmMwIHBkMCBSYzAgZ0wwIE9vMCBwZDAgUmMwIGdMMCBPbzAgcGQwIDE0bzAgMWNNMCAxY1AwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAzQ28wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIHB2eTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTjAgMWNMMCAxY04wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxY0wwIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8MjdlNVwiLFxuXHRcdFx0XCJFdXJvcGUvTHV4ZW1ib3VyZ3xMTVQgQ0VUIENFU1QgV0VUIFdFU1QgV0VTVCBXRVR8LW8uQSAtMTAgLTIwIDAgLTEwIC0yMCAtMTB8MDEyMTIxMjEzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDU2NTY1MTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMkRHMG8uQSB0Nm1vLkEgVEIwIDFuWDAgVXAwIDFvMjAgMTFBMCByVzAgQ00wIDFxUDAgUjkwIDFFTzAgVUswIDF1MjAgMTBtMCAxaXAwIDFpbjAgMTdlMCAxOVcwIDFmQjAgMWRiMCAxY3AwIDFpbjAgMTdkMCAxZnowIDFhMTAgMWluMCAxYTEwIDFpbjAgMTdmMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFpbzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGMwIHZBMCA2MEwwIFdNMCAxZkEwIDFjTTAgMTdjMCAxaW8wIDE2TTAgMUMwMCBVbzAgMWVlbzAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDU0ZTRcIixcblx0XHRcdFwiRXVyb3BlL01hZHJpZHxXRVQgV0VTVCBXRU1UIENFVCBDRVNUfDAgLTEwIC0yMCAtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTIxMDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0M3wtMjVUZDAgMTlCMCAxY0wwIDFkZDAgYjF6MCAxOHAwIDNIWDAgMTdkMCAxZnowIDFhMTAgMWlvMCAxYTAwIDFpbjAgMTdkMCBpSW4wIEhkMCAxY0wwIGJiMCAxMjAwIDJzMjAgMTRuMCA1YUwwIE1wMCAxdnowIDE3ZDAgMWluMCAxN2QwIDFpbjAgMTdkMCAxaW4wIDE3ZDAgNmhYMCAxMUIwIFhIWDAgMWExMCAxZnowIDFhMTAgMTlYMCAxY04wIDFmejAgMWExMCAxZkMwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDYyZTVcIixcblx0XHRcdFwiRXVyb3BlL01hbHRhfENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMmFyQjAgTHowIDFjTjAgMWRiMCAxNDEwIDFvbjAgV3AwIDFxTDAgMTdkMCAxY0wwIE0zQjAgNU0yMCBXTTAgMWZBMCAxY28wIDE3YzAgMWlNMCAxNm0wIDFkZTAgMWxjMCAxNG0wIDFsYzAgV08wIDFxTTAgR1RXMCBPbjAgMUMxMCBMQTAgMUMwMCBMQTAgMUVNMCBMQTAgMUMwMCBMQTAgMXpjMCBPbzAgMUMwMCBPbzAgMWNvMCAxY00wIDFsQTAgWGMwIDFxcTAgMTF6MCAxbzEwIDExejAgMW8xMCAxMXowIDFvMTAgMTF6MCAxbzEwIDExejAgMWlOMCAxOXowIDFmQjAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8NDJlNFwiLFxuXHRcdFx0XCJFdXJvcGUvTWluc2t8TU1UIEVFVCBNU0sgQ0VTVCBDRVQgTVNEIEVFU1QgKzAzfC0xTyAtMjAgLTMwIC0yMCAtMTAgLTQwIC0zMCAtMzB8MDEyMzQzNDMyNTI1MjUyNTI1MjUyNTI1MjUyNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTd8LTFQYzFPIGVVbk8gcU5YMCAzZ1EwIFdNMCAxZkEwIDFjTTAgQWwwIDF0c24wIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAzRmMwIDFjTjAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTB8MTllNVwiLFxuXHRcdFx0XCJFdXJvcGUvTW9uYWNvfFBNVCBXRVQgV0VTVCBXRU1UIENFVCBDRVNUfC05LmwgMCAtMTAgLTIwIC0xMCAtMjB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMzIzMjMyMzIzNDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTR8LTJuY285LmwgY05iOS5sIEhBMCAxOUEwIDFpTTAgMTFjMCAxb28wIFdvMCAxcmMwIFFNMCAxRU0wIFVNMCAxdTAwIDEwbzAgMWlvMCAxd28wIFJjMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxYTAwIDFpbzAgMTdjMCAxZkEwIDFhMDAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFpbzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDE3YzAgMWNNMCAxY00wIDFhMDAgMWZBMCAxaW8wIDFxTTAgRGYwIDJSVjAgMTF6MCAxMUIwIDF6ZTAgV00wIDFmQTAgMWNNMCAxZmEwIDFhcTAgMTZNMCAxZWtuMCAxY0wwIDFmQzAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDM4ZTNcIixcblx0XHRcdFwiRXVyb3BlL01vc2Nvd3xNTVQgTU1UIE1TVCBNRFNUIE1TRCBNU0sgKzA1IEVFVCBFRVNUIE1TS3wtMnUuaCAtMnYuaiAtM3YuaiAtNHYuaiAtNDAgLTMwIC01MCAtMjAgLTMwIC00MHwwMTIxMzIzNDU0NjQ1NzU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTg3NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1OTV8LTJhZzJ1LmggMnB5Vy5XIDFiQTAgMTFYMCBHTjAgMUhiMCBjNHYuaiBpazAgM0RBMCBkejAgMTVBMCBjMTAgMnExMCBpTTEwIDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY04wIElNMCByWDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDhIejB8MTZlNlwiLFxuXHRcdFx0XCJFdXJvcGUvUGFyaXN8UE1UIFdFVCBXRVNUIENFU1QgQ0VUIFdFTVR8LTkubCAwIC0xMCAtMjAgLTEwIC0yMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIzNDM0MzUyNTQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0MzQzNDM0fC0ybmNvOC5sIGNOYjgubCBIQTAgMTlBMCAxaU0wIDExYzAgMW9vMCBXbzAgMXJjMCBRTTAgMUVNMCBVTTAgMXUwMCAxMG8wIDFpbzAgMXdvMCBSYzAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMWEwMCAxaW8wIDE3YzAgMWZBMCAxYTAwIDFpbzAgMTdjMCAxY00wIDFjTTAgMWEwMCAxaW8wIDFjTTAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxN2MwIDFjTTAgMWNNMCAxYTAwIDFmQTAgMWlvMCAxcU0wIERmMCBJazAgNU0zMCBXTTAgMWZBMCAxY00wIFZ4MCBoQjAgMWFxMCAxNk0wIDFla24wIDFjTDAgMWZDMCAxYTAwIDFmQTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8MTFlNlwiLFxuXHRcdFx0XCJFdXJvcGUvUmlnYXxSTVQgTFNUIEVFVCBNU0sgQ0VTVCBDRVQgTVNEIEVFU1R8LTFBLnkgLTJBLnkgLTIwIC0zMCAtMjAgLTEwIC00MCAtMzB8MDEwMTAyMzQ1NDU0NTM2MzYzNjM2MzYzNjM2MzYzNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyNzI3MjcyfC0yNVR6QS55IDExQTAgMWlNMCBrbzAgZ1dtMCB5RFhBLnkgMmJYMCAzZkUwIFdNMCAxZkEwIDFjTTAgMWNNMCA0bTAgMXNMeTAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY04wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY04wIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCAzb28wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDY0ZTRcIixcblx0XHRcdFwiRXVyb3BlL1JvbWV8Q0VUIENFU1R8LTEwIC0yMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfC0yYXJCMCBMejAgMWNOMCAxZGIwIDE0MTAgMW9uMCBXcDAgMXFMMCAxN2QwIDFjTDAgTTNCMCA1TTIwIFdNMCAxZkEwIDFjTTAgMTZNMCAxaU0wIDE2bTAgMWRlMCAxbGMwIDE0bTAgMWxjMCBXTzAgMXFNMCBHVFcwIE9uMCAxQzEwIExBMCAxQzAwIExBMCAxRU0wIExBMCAxQzAwIExBMCAxemMwIE9vMCAxQzAwIE9vMCAxQzAwIExBMCAxemMwIE9vMCAxQzAwIExBMCAxQzAwIExBMCAxemMwIE9vMCAxQzAwIE9vMCAxemMwIE9vMCAxZkMwIDFhMDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMHwzOWU1XCIsXG5cdFx0XHRcIkV1cm9wZS9TYW1hcmF8TE1UICswMyArMDQgKzA1fC0zay5rIC0zMCAtNDAgLTUwfDAxMjMyMzIzMjMyMzIzMjMyMzIxMjEyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMzIzMjMyMTJ8LTIyV00wIHFIOTAgMjNDTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMnBCMCAxY00wIDFmQTAgMnkxMCAxNG0wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMnNwMCBXTTB8MTJlNVwiLFxuXHRcdFx0XCJFdXJvcGUvU2FyYXRvdnxMTVQgKzAzICswNCArMDV8LTM0LmkgLTMwIC00MCAtNTB8MDEyMzIzMjMyMzIzMjMyMzIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyfC0yMldNMCBxSDkwIDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMnBCMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgM0NvMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDhIejAgNTgxMFwiLFxuXHRcdFx0XCJFdXJvcGUvU2ltZmVyb3BvbHxTTVQgRUVUIE1TSyBDRVNUIENFVCBNU0QgRUVTVCBNU0t8LTJnIC0yMCAtMzAgLTIwIC0xMCAtNDAgLTMwIC00MHwwMTIzNDM0MzI1MjUyNTI1MjUyNTI1MjUyNTIxNjE2MTY1MjUyNTI2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNzJ8LTFQYzJnIGVVb2cgckVuMCAycXMwIFdNMCAxZkEwIDFjTTAgM1YwIDF1MEwwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxUTAwIDRlTDAgMWNMMCAxY04wIDFjTDAgMWNOMCBkWDAgV0wwIDFjTjAgMWNMMCAxZkIwIDFvMzAgMTFCMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExejAgMW5XMHwzM2U0XCIsXG5cdFx0XHRcIkV1cm9wZS9Tb2ZpYXxFRVQgQ0VUIENFU1QgRUVTVHwtMjAgLTEwIC0yMCAtMzB8MDEyMTIxMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzAzMDMwMzB8LTE2OEwwIFdNMCAxZkEwIDFjTTAgMWNNMCAxY04wIDFtS0gwIDFkZDAgMWZiMCAxYXAwIDFmYjAgMWEyMCAxZnkwIDFhMzAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY0swIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFmQjAgMW5YMCAxMUUwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8MTJlNVwiLFxuXHRcdFx0XCJFdXJvcGUvU3RvY2tob2xtfENFVCBDRVNUfC0xMCAtMjB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhekMwIFRCMCAyeURlMCAxYTAwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8MTVlNVwiLFxuXHRcdFx0XCJFdXJvcGUvVGFsbGlubnxUTVQgQ0VUIENFU1QgRUVUIE1TSyBNU0QgRUVTVHwtMUQgLTEwIC0yMCAtMjAgLTMwIC00MCAtMzB8MDEyMTAzNDIxMjEyNDU0NTQ1NDU0NTQ1NDU0NTQ2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzNjM2MzYzfC0yNm9ORCB0ZUQgMTFBMCAxVGEwIDRyWGwgS1NMRCAyRlgwIDJKZzAgV00wIDFmQTAgMWNNMCAxOEowIDFzVFgwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8xMCAxMUEwIDFxTTAgNVFNMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDQxZTRcIixcblx0XHRcdFwiRXVyb3BlL1RpcmFuZXxMTVQgQ0VUIENFU1R8LTFqLmsgLTEwIC0yMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmdsQmouayAxNHBjai5rIDVMQzAgV00wIDRNMCAxZkNLMCAxMG4wIDFvcDAgMTF6MCAxcGQwIDExejAgMXFOMCBXTDAgMXFwMCBYYjAgMXFwMCBYYjAgMXFwMCAxMXowIDFsQjAgMTF6MCAxcU4wIDExejAgMWlOMCAxNm4wIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8NDJlNFwiLFxuXHRcdFx0XCJFdXJvcGUvVWx5YW5vdnNrfExNVCArMDMgKzA0ICswNSArMDJ8LTNkLkEgLTMwIC00MCAtNTAgLTIwfDAxMjMyMzIzMjMyMzIzMjMyMzIxMjE0MTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyfC0yMldNMCBxSDkwIDIzQ0wwIDFkYjAgMWNOMCAxZGIwIDFjTjAgMWRiMCAxZGQwIDFjTzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDJwQjAgMWNNMCAxZkEwIDJwQjAgSU0wIHJYMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgOEh6MCAzcmQwXCIsXG5cdFx0XHRcIkV1cm9wZS9Vemhnb3JvZHxDRVQgQ0VTVCBNU0sgTVNEIEVFVCBFRVNUfC0xMCAtMjAgLTMwIC00MCAtMjAgLTMwfDAxMDEwMTAyMzIzMjMyMzIzMjMyMzIzMjMyMDQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMWNxTDAgNmkwMCBXTTAgMWZBMCAxY00wIDFtbDAgMUNwMCAxcjNXMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMVEwMCAxTmYwIDJwdzAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjUTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDExZTRcIixcblx0XHRcdFwiRXVyb3BlL1ZpZW5uYXxDRVQgQ0VTVHwtMTAgLTIwfDAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTJhRmUwIDExZDAgMWlPMCAxMUEwIDFvMDAgMTFBMCAzS00wIDE0bzAgTEEwMCA2aTAwIFdNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDQwMCAycU0wIDFhMDAgMWNNMCAxY00wIDFpbzAgMTdjMCAxZ0hhMCAxOVgwIDFjUDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDB8MThlNVwiLFxuXHRcdFx0XCJFdXJvcGUvVmlsbml1c3xXTVQgS01UIENFVCBFRVQgTVNLIENFU1QgTVNEIEVFU1R8LTFvIC0xei5BIC0xMCAtMjAgLTMwIC0yMCAtNDAgLTMwfDAxMjMyNDUyNTI1NDY0NjQ2NDY0NjQ2NDY0NjQ3MzczNzM3MzczNzM3MzczNzM1MjUzNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3MzczNzM3M3wtMjkzZG8gNklMTS5vIDFPb3ouQSB6ejAgTWZkMCAyOVcwIDNpczAgV00wIDFmQTAgMWNNMCBMVjAgMXRnTDAgMWRiMCAxY04wIDFkYjAgMWNOMCAxZGIwIDFkZDAgMWNPMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY04wIDFjTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMW8wMCAxMUEwIDFvMDAgMTFCMCAxbzAwIDExQTAgMXFNMCA4aW8wIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMHw1NGU0XCIsXG5cdFx0XHRcIkV1cm9wZS9Wb2xnb2dyYWR8TE1UICswMyArMDQgKzA1fC0yVi5FIC0zMCAtNDAgLTUwfDAxMjMyMzIzMjMyMzIzMjMyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0yMUlxVi5FIHBzTFYuRSAyM0NMMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDJwQjAgMWNNMCAxY00wIDFjTTAgMWZBMCAxY00wIDNDbzAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCA4SHowfDEwZTVcIixcblx0XHRcdFwiRXVyb3BlL1dhcnNhd3xXTVQgQ0VUIENFU1QgRUVUIEVFU1R8LTFvIC0xMCAtMjAgLTIwIC0zMHwwMTIxMjEyMzQzMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjF8LTJjdGRvIDFMWG8gMTFkMCAxaU8wIDExQTAgMW8wMCAxMUEwIDFvbjAgMTFBMCA2enkwIEhXUDAgNUlNMCBXTTAgMWZBMCAxY00wIDFkejAgMW1MMCAxZW4wIDE1QjAgMWFxMCAxbkEwIDExQTAgMWlvMCAxN2MwIDFmQTAgMWEwMCBpRFgwIExBMCAxY00wIDFjTTAgMUMwMCBPbzAgMWNNMCAxY00wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDFDMDAgTEEwIHVzbzAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNOMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwfDE3ZTVcIixcblx0XHRcdFwiRXVyb3BlL1phcG9yb3poeWV8KzAyMjAgRUVUIE1TSyBDRVNUIENFVCBNU0QgRUVTVHwtMmsgLTIwIC0zMCAtMjAgLTEwIC00MCAtMzB8MDEyMzQzNDI1MjUyNTI1MjUyNTI1MjUyNTI1MjYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjE2MTYxNjF8LTFQYzJrIGVVb2sgcmRiMCAyUkUwIFdNMCAxZkEwIDhtMCAxdjlhMCAxZGIwIDFjTjAgMWRiMCAxY04wIDFkYjAgMWRkMCAxY08wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNLMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY1EwIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMHw3N2U0XCIsXG5cdFx0XHRcIkhTVHxIU1R8YTB8MHxcIixcblx0XHRcdFwiSW5kaWFuL0NoYWdvc3xMTVQgKzA1ICswNnwtNE4uRSAtNTAgLTYwfDAxMnwtMnhvc04uRSAzQUdMTi5FfDMwZTJcIixcblx0XHRcdFwiSW5kaWFuL0NvY29zfCswNjMwfC02dXwwfHw1OTZcIixcblx0XHRcdFwiSW5kaWFuL0tlcmd1ZWxlbnwtMDAgKzA1fDAgLTUwfDAxfC1NRzAwfDEzMFwiLFxuXHRcdFx0XCJJbmRpYW4vTWFoZXxMTVQgKzA0fC0zRi5NIC00MHwwMXwtMnlPM0YuTXw3OWUzXCIsXG5cdFx0XHRcIkluZGlhbi9NYWxkaXZlc3xNTVQgKzA1fC00UyAtNTB8MDF8LW9sZ1N8MzVlNFwiLFxuXHRcdFx0XCJJbmRpYW4vTWF1cml0aXVzfExNVCArMDQgKzA1fC0zTyAtNDAgLTUwfDAxMjEyMXwtMnhvck8gMzR1bk8gMTRMMCAxMmtyMCAxMXowfDE1ZTRcIixcblx0XHRcdFwiSW5kaWFuL1JldW5pb258TE1UICswNHwtM0YuUSAtNDB8MDF8LTJtRERGLlF8ODRlNFwiLFxuXHRcdFx0XCJQYWNpZmljL0t3YWphbGVpbnwrMTEgLTEyICsxMnwtYjAgYzAgLWMwfDAxMnwtQVgwIFc5WDB8MTRlM1wiLFxuXHRcdFx0XCJNRVR8TUVUIE1FU1R8LTEwIC0yMHwwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMmFGZTAgMTFkMCAxaU8wIDExQTAgMW8wMCAxMUEwIFFyYzAgNmkwMCBXTTAgMWZBMCAxY00wIDFjTTAgMWNNMCAxNk0wIDFnTU0wIDFhMDAgMWZBMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFhMDAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWZBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMFwiLFxuXHRcdFx0XCJNU1R8TVNUfDcwfDB8XCIsXG5cdFx0XHRcIk1TVDdNRFR8TVNUIE1EVCBNV1QgTVBUfDcwIDYwIDYwIDYwfDAxMDEwMjMwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMHwtMjYxcjAgMW5YMCAxMUIwIDFuWDAgU2dOMCA4eDIwIGl4MCBRd04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFjTjAgMWNMMCAxY04wIDFjTDAgczEwIDFWejAgTEIwIDFCWDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxZnowIDFhMTAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCAxNHAwIDFsYjAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIFJkMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwIE9wMCAxemIwXCIsXG5cdFx0XHRcIlBhY2lmaWMvQ2hhdGhhbXwrMTIxNSArMTI0NSArMTM0NXwtY2YgLWNKIC1kSnwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTJ8LVdxQWYgMWFkZWYgSU0wIDFDMDAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgT28wIDF6YzAgUmMwIDF6YzAgT28wIDFxTTAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFpbzAgMTdjMCAxbGMwIDE0bzAgMWxjMCAxNG8wIDFsYzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFsYzAgMTRvMCAxbGMwIDE0bzAgMWxjMCAxN2MwIDFpbzAgMTdjMCAxaW8wIDE3YzAgMWlvMCAxN2MwIDFpbzAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFpbzAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxY00wIDFmQTAgMWEwMCAxZkEwIDFhMDB8NjAwXCIsXG5cdFx0XHRcIlBhY2lmaWMvQXBpYXxMTVQgLTExMzAgLTExIC0xMCArMTQgKzEzfGJxLlUgYnUgYjAgYTAgLWUwIC1kMHwwMTIzMjM0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NDU0NTQ1NHwtMm5ETXguNCAxeVcwMy40IDJyUmJ1IDFmZjAgMWEwMCBDSTAgQVEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFjTTAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxaW8wIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWEwMCAxZkEwIDFhMDAgMWZBMCAxYTAwIDFmQTAgMWNNMCAxZkEwIDFhMDAgMWZBMCAxYTAwfDM3ZTNcIixcblx0XHRcdFwiUGFjaWZpYy9Cb3VnYWludmlsbGV8KzEwICswOSArMTF8LWEwIC05MCAtYjB8MDEwMnwtMTZXeTAgN0NOMCAyTVFwMHwxOGU0XCIsXG5cdFx0XHRcIlBhY2lmaWMvRWZhdGV8TE1UICsxMSArMTJ8LWJkLmcgLWIwIC1jMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxfC0ybDluZC5nIDJTemNkLmcgMWNMMCAxb04wIDEwTDAgMWZCMCAxOVgwIDFmQjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWZCMCBMejAgMU5kMCBBbjB8NjZlM1wiLFxuXHRcdFx0XCJQYWNpZmljL0VuZGVyYnVyeXwtMTIgLTExICsxM3xjMCBiMCAtZDB8MDEyfG5JYzAgQjdYMHwxXCIsXG5cdFx0XHRcIlBhY2lmaWMvRmFrYW9mb3wtMTEgKzEzfGIwIC1kMHwwMXwxR2ZuMHw0ODNcIixcblx0XHRcdFwiUGFjaWZpYy9GaWppfExNVCArMTIgKzEzfC1iVC5JIC1jMCAtZDB8MDEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMXwtMmJVelQuSSAzbThOVC5JIExBMCAxRU0wIElNMCBuSmMwIExBMCAxbzAwIFJjMCAxd28wIEFvMCAxTmMwIEFvMCAxUTAwIHh6MCAxU04wIHVNMCAxU00wIHVNMCAxVkEwIHMwMCAxVkEwIHMwMCAxVkEwIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxVkEwIHMwMCAxVkEwIHMwMCAxVkEwIHMwMCAxVkEwIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxVkEwIHMwMCAxVkEwIHMwMCAxVkEwIHVNMCAxU00wIHVNMCAxU00wIHVNMCAxVkEwIHMwMCAxVkEwIHMwMCAxVkEwIHMwMCAxVkEwIHVNMCAxU00wIHVNMCAxU00wIHVNMHw4OGU0XCIsXG5cdFx0XHRcIlBhY2lmaWMvR2FsYXBhZ29zfExNVCAtMDUgLTA2fDVXLm8gNTAgNjB8MDEyMTJ8LTF5VlMxLkEgMmRUejEuQSBnTmQwIHJ6MHwyNWUzXCIsXG5cdFx0XHRcIlBhY2lmaWMvR2FtYmllcnxMTVQgLTA5fDhYLk0gOTB8MDF8LTJqb2YwLmN8MTI1XCIsXG5cdFx0XHRcIlBhY2lmaWMvR3VhZGFsY2FuYWx8TE1UICsxMXwtYUQuTSAtYjB8MDF8LTJqb3lELk18MTFlNFwiLFxuXHRcdFx0XCJQYWNpZmljL0d1YW18R1NUIENoU1R8LWEwIC1hMHwwMXwxZnBxMHwxN2U0XCIsXG5cdFx0XHRcIlBhY2lmaWMvSG9ub2x1bHV8SFNUIEhEVCBIU1R8YXUgOXUgYTB8MDEwMTAyfC0xdGhMdSA4eDAgbGVmMCA4UHowIDQ2cDB8MzdlNFwiLFxuXHRcdFx0XCJQYWNpZmljL0tpcml0aW1hdGl8LTEwNDAgLTEwICsxNHxhRSBhMCAtZTB8MDEyfG5JYUUgQjdYa3w1MWUyXCIsXG5cdFx0XHRcIlBhY2lmaWMvS29zcmFlfCsxMSArMTJ8LWIwIC1jMHwwMTB8LUFYMCAxYmR6MHw2NmUyXCIsXG5cdFx0XHRcIlBhY2lmaWMvTWFqdXJvfCsxMSArMTJ8LWIwIC1jMHwwMXwtQVgwfDI4ZTNcIixcblx0XHRcdFwiUGFjaWZpYy9NYXJxdWVzYXN8TE1UIC0wOTMwfDlpIDl1fDAxfC0yam9lR3w4NmUyXCIsXG5cdFx0XHRcIlBhY2lmaWMvUGFnb19QYWdvfExNVCBTU1R8Ym0uTSBiMHwwMXwtMm5ETUIuY3wzN2UyXCIsXG5cdFx0XHRcIlBhY2lmaWMvTmF1cnV8TE1UICsxMTMwICswOSArMTJ8LWI3LkUgLWJ1IC05MCAtYzB8MDEyMTN8LTFYZG43LkUgUHZ6Qi5FIDVSQ3UgMW91SnV8MTBlM1wiLFxuXHRcdFx0XCJQYWNpZmljL05pdWV8LTExMjAgLTExMzAgLTExfGJrIGJ1IGIwfDAxMnwtS2ZNRSAxN3kwYXwxMmUyXCIsXG5cdFx0XHRcIlBhY2lmaWMvTm9yZm9sa3wrMTExMiArMTEzMCArMTIzMCArMTF8LWJjIC1idSAtY3UgLWIwfDAxMjEzfC1LZ2JjIFcwMUcgT24wIDFDT3AwfDI1ZTRcIixcblx0XHRcdFwiUGFjaWZpYy9Ob3VtZWF8TE1UICsxMSArMTJ8LWI1Lk0gLWIwIC1jMHwwMTIxMjEyMXwtMmw5bjUuTSAyRXFNNS5NIHhYMCAxUEIwIHluMCBIZVAwIEFvMHw5OGUzXCIsXG5cdFx0XHRcIlBhY2lmaWMvUGl0Y2Fpcm58LTA4MzAgLTA4fDh1IDgwfDAxfDE4Vmt1fDU2XCIsXG5cdFx0XHRcIlBhY2lmaWMvUmFyb3RvbmdhfC0xMDMwIC0wOTMwIC0xMHxhdSA5dSBhMHwwMTIxMjEyMTIxMjEyMTIxMjEyMTIxMjEyMTJ8bHlXdSBJTDAgMXpjdSBPbnUgMXpjdSBPbnUgMXpjdSBSYnUgMXpjdSBPbnUgMXpjdSBPbnUgMXpjdSBPbnUgMXpjdSBPbnUgMXpjdSBPbnUgMXpjdSBSYnUgMXpjdSBPbnUgMXpjdSBPbnUgMXpjdSBPbnV8MTNlM1wiLFxuXHRcdFx0XCJQYWNpZmljL1RhaGl0aXxMTVQgLTEwfDlXLmcgYTB8MDF8LTJqb2UxLkl8MThlNFwiLFxuXHRcdFx0XCJQYWNpZmljL1RvbmdhdGFwdXwrMTIyMCArMTMgKzE0fC1jayAtZDAgLWUwfDAxMjEyMTIxMjF8LTFhQjBrIDJuNWRrIDE1QTAgMXdvMCB4ejAgMVExMCB4ejAgeldOMCBzMDB8NzVlM1wiLFxuXHRcdFx0XCJQU1Q4UERUfFBTVCBQRFQgUFdUIFBQVHw4MCA3MCA3MCA3MHwwMTAxMDIzMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTB8LTI2MXEwIDFuWDAgMTFCMCAxblgwIFNnTjAgOHgxMCBpeTAgUXdOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxY04wIDFjTDAgMWNOMCAxY0wwIHMxMCAxVnowIExCMCAxQlgwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMWNOMCAxY0wwIDFjTjAgMWZ6MCAxYTEwIDFmejAgMWNOMCAxY0wwIDFjTjAgMWNMMCAxY04wIDFjTDAgMTRwMCAxbGIwIDE0cDAgMW5YMCAxMUIwIDFuWDAgMTFCMCAxblgwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFsYjAgMTRwMCAxblgwIDExQjAgMW5YMCAxMUIwIDFuWDAgMTRwMCAxbGIwIDE0cDAgMWxiMCAxNHAwIDFuWDAgMTFCMCAxblgwIDExQjAgMW5YMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBSZDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMCBPcDAgMXpiMFwiLFxuXHRcdFx0XCJXRVR8V0VUIFdFU1R8MCAtMTB8MDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwMTAxMDEwfGhEQjAgMWEwMCAxZkEwIDFjTTAgMWNNMCAxY00wIDFmQTAgMWEwMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFmQTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxY00wIDFjTTAgMWNNMCAxZkEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFxTTAgV00wIDFxTTAgV00wIDFxTTAgMTFBMCAxbzAwIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxcU0wIFdNMCAxcU0wIFdNMCAxcU0wIDExQTAgMW8wMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwIDExQTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCBXTTAgMXFNMCAxMUEwIDFvMDAgMTFBMCAxbzAwXCJcblx0XHRdLFxuXHRcdFwibGlua3NcIjogW1xuXHRcdFx0XCJBZnJpY2EvQWJpZGphbnxBZnJpY2EvQmFtYWtvXCIsXG5cdFx0XHRcIkFmcmljYS9BYmlkamFufEFmcmljYS9CYW5qdWxcIixcblx0XHRcdFwiQWZyaWNhL0FiaWRqYW58QWZyaWNhL0NvbmFrcnlcIixcblx0XHRcdFwiQWZyaWNhL0FiaWRqYW58QWZyaWNhL0Rha2FyXCIsXG5cdFx0XHRcIkFmcmljYS9BYmlkamFufEFmcmljYS9GcmVldG93blwiLFxuXHRcdFx0XCJBZnJpY2EvQWJpZGphbnxBZnJpY2EvTG9tZVwiLFxuXHRcdFx0XCJBZnJpY2EvQWJpZGphbnxBZnJpY2EvTm91YWtjaG90dFwiLFxuXHRcdFx0XCJBZnJpY2EvQWJpZGphbnxBZnJpY2EvT3VhZ2Fkb3Vnb3VcIixcblx0XHRcdFwiQWZyaWNhL0FiaWRqYW58QWZyaWNhL1RpbWJ1a3R1XCIsXG5cdFx0XHRcIkFmcmljYS9BYmlkamFufEF0bGFudGljL1N0X0hlbGVuYVwiLFxuXHRcdFx0XCJBZnJpY2EvQ2Fpcm98RWd5cHRcIixcblx0XHRcdFwiQWZyaWNhL0pvaGFubmVzYnVyZ3xBZnJpY2EvTWFzZXJ1XCIsXG5cdFx0XHRcIkFmcmljYS9Kb2hhbm5lc2J1cmd8QWZyaWNhL01iYWJhbmVcIixcblx0XHRcdFwiQWZyaWNhL0xhZ29zfEFmcmljYS9CYW5ndWlcIixcblx0XHRcdFwiQWZyaWNhL0xhZ29zfEFmcmljYS9CcmF6emF2aWxsZVwiLFxuXHRcdFx0XCJBZnJpY2EvTGFnb3N8QWZyaWNhL0RvdWFsYVwiLFxuXHRcdFx0XCJBZnJpY2EvTGFnb3N8QWZyaWNhL0tpbnNoYXNhXCIsXG5cdFx0XHRcIkFmcmljYS9MYWdvc3xBZnJpY2EvTGlicmV2aWxsZVwiLFxuXHRcdFx0XCJBZnJpY2EvTGFnb3N8QWZyaWNhL0x1YW5kYVwiLFxuXHRcdFx0XCJBZnJpY2EvTGFnb3N8QWZyaWNhL01hbGFib1wiLFxuXHRcdFx0XCJBZnJpY2EvTGFnb3N8QWZyaWNhL05pYW1leVwiLFxuXHRcdFx0XCJBZnJpY2EvTGFnb3N8QWZyaWNhL1BvcnRvLU5vdm9cIixcblx0XHRcdFwiQWZyaWNhL01hcHV0b3xBZnJpY2EvQmxhbnR5cmVcIixcblx0XHRcdFwiQWZyaWNhL01hcHV0b3xBZnJpY2EvQnVqdW1idXJhXCIsXG5cdFx0XHRcIkFmcmljYS9NYXB1dG98QWZyaWNhL0dhYm9yb25lXCIsXG5cdFx0XHRcIkFmcmljYS9NYXB1dG98QWZyaWNhL0hhcmFyZVwiLFxuXHRcdFx0XCJBZnJpY2EvTWFwdXRvfEFmcmljYS9LaWdhbGlcIixcblx0XHRcdFwiQWZyaWNhL01hcHV0b3xBZnJpY2EvTHVidW1iYXNoaVwiLFxuXHRcdFx0XCJBZnJpY2EvTWFwdXRvfEFmcmljYS9MdXNha2FcIixcblx0XHRcdFwiQWZyaWNhL05haXJvYml8QWZyaWNhL0FkZGlzX0FiYWJhXCIsXG5cdFx0XHRcIkFmcmljYS9OYWlyb2JpfEFmcmljYS9Bc21hcmFcIixcblx0XHRcdFwiQWZyaWNhL05haXJvYml8QWZyaWNhL0FzbWVyYVwiLFxuXHRcdFx0XCJBZnJpY2EvTmFpcm9iaXxBZnJpY2EvRGFyX2VzX1NhbGFhbVwiLFxuXHRcdFx0XCJBZnJpY2EvTmFpcm9iaXxBZnJpY2EvRGppYm91dGlcIixcblx0XHRcdFwiQWZyaWNhL05haXJvYml8QWZyaWNhL0thbXBhbGFcIixcblx0XHRcdFwiQWZyaWNhL05haXJvYml8QWZyaWNhL01vZ2FkaXNodVwiLFxuXHRcdFx0XCJBZnJpY2EvTmFpcm9iaXxJbmRpYW4vQW50YW5hbmFyaXZvXCIsXG5cdFx0XHRcIkFmcmljYS9OYWlyb2JpfEluZGlhbi9Db21vcm9cIixcblx0XHRcdFwiQWZyaWNhL05haXJvYml8SW5kaWFuL01heW90dGVcIixcblx0XHRcdFwiQWZyaWNhL1RyaXBvbGl8TGlieWFcIixcblx0XHRcdFwiQW1lcmljYS9BZGFrfEFtZXJpY2EvQXRrYVwiLFxuXHRcdFx0XCJBbWVyaWNhL0FkYWt8VVMvQWxldXRpYW5cIixcblx0XHRcdFwiQW1lcmljYS9BbmNob3JhZ2V8VVMvQWxhc2thXCIsXG5cdFx0XHRcIkFtZXJpY2EvQXJnZW50aW5hL0J1ZW5vc19BaXJlc3xBbWVyaWNhL0J1ZW5vc19BaXJlc1wiLFxuXHRcdFx0XCJBbWVyaWNhL0FyZ2VudGluYS9DYXRhbWFyY2F8QW1lcmljYS9BcmdlbnRpbmEvQ29tb2RSaXZhZGF2aWFcIixcblx0XHRcdFwiQW1lcmljYS9BcmdlbnRpbmEvQ2F0YW1hcmNhfEFtZXJpY2EvQ2F0YW1hcmNhXCIsXG5cdFx0XHRcIkFtZXJpY2EvQXJnZW50aW5hL0NvcmRvYmF8QW1lcmljYS9Db3Jkb2JhXCIsXG5cdFx0XHRcIkFtZXJpY2EvQXJnZW50aW5hL0NvcmRvYmF8QW1lcmljYS9Sb3NhcmlvXCIsXG5cdFx0XHRcIkFtZXJpY2EvQXJnZW50aW5hL0p1anV5fEFtZXJpY2EvSnVqdXlcIixcblx0XHRcdFwiQW1lcmljYS9BcmdlbnRpbmEvTWVuZG96YXxBbWVyaWNhL01lbmRvemFcIixcblx0XHRcdFwiQW1lcmljYS9BdGlrb2thbnxBbWVyaWNhL0NvcmFsX0hhcmJvdXJcIixcblx0XHRcdFwiQW1lcmljYS9DaGljYWdvfFVTL0NlbnRyYWxcIixcblx0XHRcdFwiQW1lcmljYS9DdXJhY2FvfEFtZXJpY2EvQXJ1YmFcIixcblx0XHRcdFwiQW1lcmljYS9DdXJhY2FvfEFtZXJpY2EvS3JhbGVuZGlqa1wiLFxuXHRcdFx0XCJBbWVyaWNhL0N1cmFjYW98QW1lcmljYS9Mb3dlcl9QcmluY2VzXCIsXG5cdFx0XHRcIkFtZXJpY2EvRGVudmVyfEFtZXJpY2EvU2hpcHJvY2tcIixcblx0XHRcdFwiQW1lcmljYS9EZW52ZXJ8TmF2YWpvXCIsXG5cdFx0XHRcIkFtZXJpY2EvRGVudmVyfFVTL01vdW50YWluXCIsXG5cdFx0XHRcIkFtZXJpY2EvRGV0cm9pdHxVUy9NaWNoaWdhblwiLFxuXHRcdFx0XCJBbWVyaWNhL0VkbW9udG9ufENhbmFkYS9Nb3VudGFpblwiLFxuXHRcdFx0XCJBbWVyaWNhL0ZvcnRfV2F5bmV8QW1lcmljYS9JbmRpYW5hL0luZGlhbmFwb2xpc1wiLFxuXHRcdFx0XCJBbWVyaWNhL0ZvcnRfV2F5bmV8QW1lcmljYS9JbmRpYW5hcG9saXNcIixcblx0XHRcdFwiQW1lcmljYS9Gb3J0X1dheW5lfFVTL0Vhc3QtSW5kaWFuYVwiLFxuXHRcdFx0XCJBbWVyaWNhL0hhbGlmYXh8Q2FuYWRhL0F0bGFudGljXCIsXG5cdFx0XHRcIkFtZXJpY2EvSGF2YW5hfEN1YmFcIixcblx0XHRcdFwiQW1lcmljYS9JbmRpYW5hL0tub3h8QW1lcmljYS9Lbm94X0lOXCIsXG5cdFx0XHRcIkFtZXJpY2EvSW5kaWFuYS9Lbm94fFVTL0luZGlhbmEtU3RhcmtlXCIsXG5cdFx0XHRcIkFtZXJpY2EvSmFtYWljYXxKYW1haWNhXCIsXG5cdFx0XHRcIkFtZXJpY2EvS2VudHVja3kvTG91aXN2aWxsZXxBbWVyaWNhL0xvdWlzdmlsbGVcIixcblx0XHRcdFwiQW1lcmljYS9Mb3NfQW5nZWxlc3xVUy9QYWNpZmljXCIsXG5cdFx0XHRcIkFtZXJpY2EvTG9zX0FuZ2VsZXN8VVMvUGFjaWZpYy1OZXdcIixcblx0XHRcdFwiQW1lcmljYS9NYW5hdXN8QnJhemlsL1dlc3RcIixcblx0XHRcdFwiQW1lcmljYS9NYXphdGxhbnxNZXhpY28vQmFqYVN1clwiLFxuXHRcdFx0XCJBbWVyaWNhL01leGljb19DaXR5fE1leGljby9HZW5lcmFsXCIsXG5cdFx0XHRcIkFtZXJpY2EvTmV3X1lvcmt8VVMvRWFzdGVyblwiLFxuXHRcdFx0XCJBbWVyaWNhL05vcm9uaGF8QnJhemlsL0RlTm9yb25oYVwiLFxuXHRcdFx0XCJBbWVyaWNhL1BhbmFtYXxBbWVyaWNhL0NheW1hblwiLFxuXHRcdFx0XCJBbWVyaWNhL1Bob2VuaXh8VVMvQXJpem9uYVwiLFxuXHRcdFx0XCJBbWVyaWNhL1BvcnRfb2ZfU3BhaW58QW1lcmljYS9Bbmd1aWxsYVwiLFxuXHRcdFx0XCJBbWVyaWNhL1BvcnRfb2ZfU3BhaW58QW1lcmljYS9BbnRpZ3VhXCIsXG5cdFx0XHRcIkFtZXJpY2EvUG9ydF9vZl9TcGFpbnxBbWVyaWNhL0RvbWluaWNhXCIsXG5cdFx0XHRcIkFtZXJpY2EvUG9ydF9vZl9TcGFpbnxBbWVyaWNhL0dyZW5hZGFcIixcblx0XHRcdFwiQW1lcmljYS9Qb3J0X29mX1NwYWlufEFtZXJpY2EvR3VhZGVsb3VwZVwiLFxuXHRcdFx0XCJBbWVyaWNhL1BvcnRfb2ZfU3BhaW58QW1lcmljYS9NYXJpZ290XCIsXG5cdFx0XHRcIkFtZXJpY2EvUG9ydF9vZl9TcGFpbnxBbWVyaWNhL01vbnRzZXJyYXRcIixcblx0XHRcdFwiQW1lcmljYS9Qb3J0X29mX1NwYWlufEFtZXJpY2EvU3RfQmFydGhlbGVteVwiLFxuXHRcdFx0XCJBbWVyaWNhL1BvcnRfb2ZfU3BhaW58QW1lcmljYS9TdF9LaXR0c1wiLFxuXHRcdFx0XCJBbWVyaWNhL1BvcnRfb2ZfU3BhaW58QW1lcmljYS9TdF9MdWNpYVwiLFxuXHRcdFx0XCJBbWVyaWNhL1BvcnRfb2ZfU3BhaW58QW1lcmljYS9TdF9UaG9tYXNcIixcblx0XHRcdFwiQW1lcmljYS9Qb3J0X29mX1NwYWlufEFtZXJpY2EvU3RfVmluY2VudFwiLFxuXHRcdFx0XCJBbWVyaWNhL1BvcnRfb2ZfU3BhaW58QW1lcmljYS9Ub3J0b2xhXCIsXG5cdFx0XHRcIkFtZXJpY2EvUG9ydF9vZl9TcGFpbnxBbWVyaWNhL1ZpcmdpblwiLFxuXHRcdFx0XCJBbWVyaWNhL1JlZ2luYXxDYW5hZGEvU2Fza2F0Y2hld2FuXCIsXG5cdFx0XHRcIkFtZXJpY2EvUmlvX0JyYW5jb3xBbWVyaWNhL1BvcnRvX0FjcmVcIixcblx0XHRcdFwiQW1lcmljYS9SaW9fQnJhbmNvfEJyYXppbC9BY3JlXCIsXG5cdFx0XHRcIkFtZXJpY2EvU2FudGlhZ298Q2hpbGUvQ29udGluZW50YWxcIixcblx0XHRcdFwiQW1lcmljYS9TYW9fUGF1bG98QnJhemlsL0Vhc3RcIixcblx0XHRcdFwiQW1lcmljYS9TdF9Kb2huc3xDYW5hZGEvTmV3Zm91bmRsYW5kXCIsXG5cdFx0XHRcIkFtZXJpY2EvVGlqdWFuYXxBbWVyaWNhL0Vuc2VuYWRhXCIsXG5cdFx0XHRcIkFtZXJpY2EvVGlqdWFuYXxBbWVyaWNhL1NhbnRhX0lzYWJlbFwiLFxuXHRcdFx0XCJBbWVyaWNhL1RpanVhbmF8TWV4aWNvL0JhamFOb3J0ZVwiLFxuXHRcdFx0XCJBbWVyaWNhL1Rvcm9udG98QW1lcmljYS9Nb250cmVhbFwiLFxuXHRcdFx0XCJBbWVyaWNhL1Rvcm9udG98Q2FuYWRhL0Vhc3Rlcm5cIixcblx0XHRcdFwiQW1lcmljYS9WYW5jb3V2ZXJ8Q2FuYWRhL1BhY2lmaWNcIixcblx0XHRcdFwiQW1lcmljYS9XaGl0ZWhvcnNlfENhbmFkYS9ZdWtvblwiLFxuXHRcdFx0XCJBbWVyaWNhL1dpbm5pcGVnfENhbmFkYS9DZW50cmFsXCIsXG5cdFx0XHRcIkFzaWEvQXNoZ2FiYXR8QXNpYS9Bc2hraGFiYWRcIixcblx0XHRcdFwiQXNpYS9CYW5na29rfEFzaWEvUGhub21fUGVuaFwiLFxuXHRcdFx0XCJBc2lhL0Jhbmdrb2t8QXNpYS9WaWVudGlhbmVcIixcblx0XHRcdFwiQXNpYS9EaGFrYXxBc2lhL0RhY2NhXCIsXG5cdFx0XHRcIkFzaWEvRHViYWl8QXNpYS9NdXNjYXRcIixcblx0XHRcdFwiQXNpYS9Ib19DaGlfTWluaHxBc2lhL1NhaWdvblwiLFxuXHRcdFx0XCJBc2lhL0hvbmdfS29uZ3xIb25na29uZ1wiLFxuXHRcdFx0XCJBc2lhL0plcnVzYWxlbXxBc2lhL1RlbF9Bdml2XCIsXG5cdFx0XHRcIkFzaWEvSmVydXNhbGVtfElzcmFlbFwiLFxuXHRcdFx0XCJBc2lhL0thdGhtYW5kdXxBc2lhL0thdG1hbmR1XCIsXG5cdFx0XHRcIkFzaWEvS29sa2F0YXxBc2lhL0NhbGN1dHRhXCIsXG5cdFx0XHRcIkFzaWEvS3VhbGFfTHVtcHVyfEFzaWEvU2luZ2Fwb3JlXCIsXG5cdFx0XHRcIkFzaWEvS3VhbGFfTHVtcHVyfFNpbmdhcG9yZVwiLFxuXHRcdFx0XCJBc2lhL01hY2F1fEFzaWEvTWFjYW9cIixcblx0XHRcdFwiQXNpYS9NYWthc3NhcnxBc2lhL1VqdW5nX1BhbmRhbmdcIixcblx0XHRcdFwiQXNpYS9OaWNvc2lhfEV1cm9wZS9OaWNvc2lhXCIsXG5cdFx0XHRcIkFzaWEvUWF0YXJ8QXNpYS9CYWhyYWluXCIsXG5cdFx0XHRcIkFzaWEvUmFuZ29vbnxBc2lhL1lhbmdvblwiLFxuXHRcdFx0XCJBc2lhL1JpeWFkaHxBc2lhL0FkZW5cIixcblx0XHRcdFwiQXNpYS9SaXlhZGh8QXNpYS9LdXdhaXRcIixcblx0XHRcdFwiQXNpYS9TZW91bHxST0tcIixcblx0XHRcdFwiQXNpYS9TaGFuZ2hhaXxBc2lhL0Nob25ncWluZ1wiLFxuXHRcdFx0XCJBc2lhL1NoYW5naGFpfEFzaWEvQ2h1bmdraW5nXCIsXG5cdFx0XHRcIkFzaWEvU2hhbmdoYWl8QXNpYS9IYXJiaW5cIixcblx0XHRcdFwiQXNpYS9TaGFuZ2hhaXxQUkNcIixcblx0XHRcdFwiQXNpYS9UYWlwZWl8Uk9DXCIsXG5cdFx0XHRcIkFzaWEvVGVocmFufElyYW5cIixcblx0XHRcdFwiQXNpYS9UaGltcGh1fEFzaWEvVGhpbWJ1XCIsXG5cdFx0XHRcIkFzaWEvVG9reW98SmFwYW5cIixcblx0XHRcdFwiQXNpYS9VbGFhbmJhYXRhcnxBc2lhL1VsYW5fQmF0b3JcIixcblx0XHRcdFwiQXNpYS9VcnVtcWl8QXNpYS9LYXNoZ2FyXCIsXG5cdFx0XHRcIkF0bGFudGljL0Zhcm9lfEF0bGFudGljL0ZhZXJvZVwiLFxuXHRcdFx0XCJBdGxhbnRpYy9SZXlramF2aWt8SWNlbGFuZFwiLFxuXHRcdFx0XCJBdGxhbnRpYy9Tb3V0aF9HZW9yZ2lhfEV0Yy9HTVQrMlwiLFxuXHRcdFx0XCJBdXN0cmFsaWEvQWRlbGFpZGV8QXVzdHJhbGlhL1NvdXRoXCIsXG5cdFx0XHRcIkF1c3RyYWxpYS9CcmlzYmFuZXxBdXN0cmFsaWEvUXVlZW5zbGFuZFwiLFxuXHRcdFx0XCJBdXN0cmFsaWEvQnJva2VuX0hpbGx8QXVzdHJhbGlhL1lhbmNvd2lubmFcIixcblx0XHRcdFwiQXVzdHJhbGlhL0RhcndpbnxBdXN0cmFsaWEvTm9ydGhcIixcblx0XHRcdFwiQXVzdHJhbGlhL0hvYmFydHxBdXN0cmFsaWEvVGFzbWFuaWFcIixcblx0XHRcdFwiQXVzdHJhbGlhL0xvcmRfSG93ZXxBdXN0cmFsaWEvTEhJXCIsXG5cdFx0XHRcIkF1c3RyYWxpYS9NZWxib3VybmV8QXVzdHJhbGlhL1ZpY3RvcmlhXCIsXG5cdFx0XHRcIkF1c3RyYWxpYS9QZXJ0aHxBdXN0cmFsaWEvV2VzdFwiLFxuXHRcdFx0XCJBdXN0cmFsaWEvU3lkbmV5fEF1c3RyYWxpYS9BQ1RcIixcblx0XHRcdFwiQXVzdHJhbGlhL1N5ZG5leXxBdXN0cmFsaWEvQ2FuYmVycmFcIixcblx0XHRcdFwiQXVzdHJhbGlhL1N5ZG5leXxBdXN0cmFsaWEvTlNXXCIsXG5cdFx0XHRcIkV0Yy9HTVQtMHxFdGMvR01UXCIsXG5cdFx0XHRcIkV0Yy9HTVQtMHxFdGMvR01UKzBcIixcblx0XHRcdFwiRXRjL0dNVC0wfEV0Yy9HTVQwXCIsXG5cdFx0XHRcIkV0Yy9HTVQtMHxFdGMvR3JlZW53aWNoXCIsXG5cdFx0XHRcIkV0Yy9HTVQtMHxHTVRcIixcblx0XHRcdFwiRXRjL0dNVC0wfEdNVCswXCIsXG5cdFx0XHRcIkV0Yy9HTVQtMHxHTVQtMFwiLFxuXHRcdFx0XCJFdGMvR01ULTB8R01UMFwiLFxuXHRcdFx0XCJFdGMvR01ULTB8R3JlZW53aWNoXCIsXG5cdFx0XHRcIkV0Yy9VQ1R8VUNUXCIsXG5cdFx0XHRcIkV0Yy9VVEN8RXRjL1VuaXZlcnNhbFwiLFxuXHRcdFx0XCJFdGMvVVRDfEV0Yy9adWx1XCIsXG5cdFx0XHRcIkV0Yy9VVEN8VVRDXCIsXG5cdFx0XHRcIkV0Yy9VVEN8VW5pdmVyc2FsXCIsXG5cdFx0XHRcIkV0Yy9VVEN8WnVsdVwiLFxuXHRcdFx0XCJFdXJvcGUvQmVsZ3JhZGV8RXVyb3BlL0xqdWJsamFuYVwiLFxuXHRcdFx0XCJFdXJvcGUvQmVsZ3JhZGV8RXVyb3BlL1BvZGdvcmljYVwiLFxuXHRcdFx0XCJFdXJvcGUvQmVsZ3JhZGV8RXVyb3BlL1NhcmFqZXZvXCIsXG5cdFx0XHRcIkV1cm9wZS9CZWxncmFkZXxFdXJvcGUvU2tvcGplXCIsXG5cdFx0XHRcIkV1cm9wZS9CZWxncmFkZXxFdXJvcGUvWmFncmViXCIsXG5cdFx0XHRcIkV1cm9wZS9DaGlzaW5hdXxFdXJvcGUvVGlyYXNwb2xcIixcblx0XHRcdFwiRXVyb3BlL0R1YmxpbnxFaXJlXCIsXG5cdFx0XHRcIkV1cm9wZS9IZWxzaW5raXxFdXJvcGUvTWFyaWVoYW1uXCIsXG5cdFx0XHRcIkV1cm9wZS9Jc3RhbmJ1bHxBc2lhL0lzdGFuYnVsXCIsXG5cdFx0XHRcIkV1cm9wZS9Jc3RhbmJ1bHxUdXJrZXlcIixcblx0XHRcdFwiRXVyb3BlL0xpc2JvbnxQb3J0dWdhbFwiLFxuXHRcdFx0XCJFdXJvcGUvTG9uZG9ufEV1cm9wZS9CZWxmYXN0XCIsXG5cdFx0XHRcIkV1cm9wZS9Mb25kb258RXVyb3BlL0d1ZXJuc2V5XCIsXG5cdFx0XHRcIkV1cm9wZS9Mb25kb258RXVyb3BlL0lzbGVfb2ZfTWFuXCIsXG5cdFx0XHRcIkV1cm9wZS9Mb25kb258RXVyb3BlL0plcnNleVwiLFxuXHRcdFx0XCJFdXJvcGUvTG9uZG9ufEdCXCIsXG5cdFx0XHRcIkV1cm9wZS9Mb25kb258R0ItRWlyZVwiLFxuXHRcdFx0XCJFdXJvcGUvTW9zY293fFctU1VcIixcblx0XHRcdFwiRXVyb3BlL09zbG98QXJjdGljL0xvbmd5ZWFyYnllblwiLFxuXHRcdFx0XCJFdXJvcGUvT3Nsb3xBdGxhbnRpYy9KYW5fTWF5ZW5cIixcblx0XHRcdFwiRXVyb3BlL1ByYWd1ZXxFdXJvcGUvQnJhdGlzbGF2YVwiLFxuXHRcdFx0XCJFdXJvcGUvUm9tZXxFdXJvcGUvU2FuX01hcmlub1wiLFxuXHRcdFx0XCJFdXJvcGUvUm9tZXxFdXJvcGUvVmF0aWNhblwiLFxuXHRcdFx0XCJFdXJvcGUvV2Fyc2F3fFBvbGFuZFwiLFxuXHRcdFx0XCJFdXJvcGUvWnVyaWNofEV1cm9wZS9CdXNpbmdlblwiLFxuXHRcdFx0XCJFdXJvcGUvWnVyaWNofEV1cm9wZS9WYWR1elwiLFxuXHRcdFx0XCJJbmRpYW4vQ2hyaXN0bWFzfEV0Yy9HTVQtN1wiLFxuXHRcdFx0XCJQYWNpZmljL0F1Y2tsYW5kfEFudGFyY3RpY2EvTWNNdXJkb1wiLFxuXHRcdFx0XCJQYWNpZmljL0F1Y2tsYW5kfEFudGFyY3RpY2EvU291dGhfUG9sZVwiLFxuXHRcdFx0XCJQYWNpZmljL0F1Y2tsYW5kfE5aXCIsXG5cdFx0XHRcIlBhY2lmaWMvQ2hhdGhhbXxOWi1DSEFUXCIsXG5cdFx0XHRcIlBhY2lmaWMvRWFzdGVyfENoaWxlL0Vhc3RlcklzbGFuZFwiLFxuXHRcdFx0XCJQYWNpZmljL0d1YW18UGFjaWZpYy9TYWlwYW5cIixcblx0XHRcdFwiUGFjaWZpYy9Ib25vbHVsdXxQYWNpZmljL0pvaG5zdG9uXCIsXG5cdFx0XHRcIlBhY2lmaWMvSG9ub2x1bHV8VVMvSGF3YWlpXCIsXG5cdFx0XHRcIlBhY2lmaWMvS3dhamFsZWlufEt3YWphbGVpblwiLFxuXHRcdFx0XCJQYWNpZmljL1BhZ29fUGFnb3xQYWNpZmljL01pZHdheVwiLFxuXHRcdFx0XCJQYWNpZmljL1BhZ29fUGFnb3xQYWNpZmljL1NhbW9hXCIsXG5cdFx0XHRcIlBhY2lmaWMvUGFnb19QYWdvfFVTL1NhbW9hXCIsXG5cdFx0XHRcIlBhY2lmaWMvUGFsYXV8RXRjL0dNVC05XCIsXG5cdFx0XHRcIlBhY2lmaWMvUG9obnBlaXxFdGMvR01ULTExXCIsXG5cdFx0XHRcIlBhY2lmaWMvUG9obnBlaXxQYWNpZmljL1BvbmFwZVwiLFxuXHRcdFx0XCJQYWNpZmljL1BvcnRfTW9yZXNieXxFdGMvR01ULTEwXCIsXG5cdFx0XHRcIlBhY2lmaWMvUG9ydF9Nb3Jlc2J5fFBhY2lmaWMvQ2h1dWtcIixcblx0XHRcdFwiUGFjaWZpYy9Qb3J0X01vcmVzYnl8UGFjaWZpYy9UcnVrXCIsXG5cdFx0XHRcIlBhY2lmaWMvUG9ydF9Nb3Jlc2J5fFBhY2lmaWMvWWFwXCIsXG5cdFx0XHRcIlBhY2lmaWMvVGFyYXdhfEV0Yy9HTVQtMTJcIixcblx0XHRcdFwiUGFjaWZpYy9UYXJhd2F8UGFjaWZpYy9GdW5hZnV0aVwiLFxuXHRcdFx0XCJQYWNpZmljL1RhcmF3YXxQYWNpZmljL1dha2VcIixcblx0XHRcdFwiUGFjaWZpYy9UYXJhd2F8UGFjaWZpYy9XYWxsaXNcIlxuXHRcdF1cblx0fSk7XG5cblxuXHRyZXR1cm4gbW9tZW50O1xufSkpOyIsIi8qXG4gKiBUaXRsZTogVHlwZXdyaXRlciBKU1xuICogRGVzY3JpcHRpb246IEEgbmF0aXZlIGphdmFzY3JpcHQgcGx1Z2luIHRoYXQgY2FuIGJlIHVzZWQgdG8gY3JlYXRlIGFuIGVsZWdlbnQgYXV0b21hdGljIHR5cGV3cml0ZXIgYW5pbWF0aW9uIGVmZmVjdCBvbiB3ZWJzaXRlcy5cbiAqIEF1dGhvcjogVGFtZWVtIFNhZmlcbiAqIFdlYnNpdGU6IGh0dHBzOi8vc2FmaS5tZS51a1xuICogVmVyc2lvbjogMS4wLjBcbiAqL1xuXG4oZnVuY3Rpb24oKSB7XG5cblx0XCJ1c2Ugc3RyaWN0XCI7XG5cblx0Ly8gaHR0cDovL3BhdWxpcmlzaC5jb20vMjAxMS9yZXF1ZXN0YW5pbWF0aW9uZnJhbWUtZm9yLXNtYXJ0LWFuaW1hdGluZy9cblx0Ly8gaHR0cDovL215Lm9wZXJhLmNvbS9lbW9sbGVyL2Jsb2cvMjAxMS8xMi8yMC9yZXF1ZXN0YW5pbWF0aW9uZnJhbWUtZm9yLXNtYXJ0LWVyLWFuaW1hdGluZ1xuXHQvLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgcG9seWZpbGwgYnkgRXJpayBNw7ZsbGVyLiBmaXhlcyBmcm9tIFBhdWwgSXJpc2ggYW5kIFRpbm8gWmlqZGVsXG5cdC8vIE1JVCBsaWNlbnNlXG5cdChmdW5jdGlvbigpIHtcblx0ICAgIHZhciBsYXN0VGltZSA9IDA7XG5cdCAgICB2YXIgdmVuZG9ycyA9IFsnbXMnLCAnbW96JywgJ3dlYmtpdCcsICdvJ107XG5cdCAgICBmb3IodmFyIHggPSAwOyB4IDwgdmVuZG9ycy5sZW5ndGggJiYgIXdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWU7ICsreCkge1xuXHQgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUgPSB3aW5kb3dbdmVuZG9yc1t4XSsnUmVxdWVzdEFuaW1hdGlvbkZyYW1lJ107XG5cdCAgICAgICAgd2luZG93LmNhbmNlbEFuaW1hdGlvbkZyYW1lID0gd2luZG93W3ZlbmRvcnNbeF0rJ0NhbmNlbEFuaW1hdGlvbkZyYW1lJ11cblx0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCB3aW5kb3dbdmVuZG9yc1t4XSsnQ2FuY2VsUmVxdWVzdEFuaW1hdGlvbkZyYW1lJ107XG5cdCAgICB9XG5cblx0ICAgIGlmICghd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSlcblx0ICAgICAgICB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gZnVuY3Rpb24oY2FsbGJhY2ssIGVsZW1lbnQpIHtcblx0ICAgICAgICAgICAgdmFyIGN1cnJUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XG5cdCAgICAgICAgICAgIHZhciB0aW1lVG9DYWxsID0gTWF0aC5tYXgoMCwgMTYgLSAoY3VyclRpbWUgLSBsYXN0VGltZSkpO1xuXHQgICAgICAgICAgICB2YXIgaWQgPSB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsgY2FsbGJhY2soY3VyclRpbWUgKyB0aW1lVG9DYWxsKTsgfSxcblx0ICAgICAgICAgICAgICB0aW1lVG9DYWxsKTtcblx0ICAgICAgICAgICAgbGFzdFRpbWUgPSBjdXJyVGltZSArIHRpbWVUb0NhbGw7XG5cdCAgICAgICAgICAgIHJldHVybiBpZDtcblx0ICAgICAgICB9O1xuXG5cdCAgICBpZiAoIXdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSlcblx0ICAgICAgICB3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbihpZCkge1xuXHQgICAgICAgICAgICBjbGVhclRpbWVvdXQoaWQpO1xuXHQgICAgICAgIH07XG5cdH0oKSk7XG5cblx0d2luZG93LlR5cGV3cml0ZXIgPSBmdW5jdGlvbiBUeXBld3JpdGVyKGVsZW1lbnQsIG9wdGlvbnMpIHtcblx0XHR0aGlzLl9zZXR0aW5ncyA9IHtcblx0XHRcdGN1cnNvckFuaW1hdGlvblBhdXNlZDogZmFsc2UsXG5cdFx0XHRvcGFjaXR5SW5jcmVhc2luZzogZmFsc2UsXG5cdFx0XHRjdXJyZW50T3BhY2l0eTogMSxcblx0XHRcdGRlbGF5ZWRRdWU6IFtdLFxuXHRcdFx0ZGVsYXlJdGVtc0NvdW50OiAwLFxuXHRcdFx0ZXZlbnRRdWU6IFtdLFxuXHRcdFx0Y2FsbGVkRXZlbnRzOiBbXSxcblx0XHRcdGV2ZW50UnVubmluZzogZmFsc2UsXG5cdFx0XHR0aW1lb3V0OiBmYWxzZSxcblx0XHRcdGRlbGF5RXhlY3V0aW9uOiBmYWxzZSxcblx0XHRcdGZwczogKDYwLzEwMDApLFxuXHRcdFx0dHlwaW5nRnJhbWVDb3VudDogMCxcblx0XHRcdHN0cmluZ1RvVHlwZUhUTUxBcnJheTogW10sXG5cdFx0XHRjdXJyZW50VHlwZWRDaGFyYWN0ZXJzOiBbXSxcblx0XHRcdHR5cGluZzogZmFsc2UsXG5cdFx0XHR1c2VkSURzOiBbXSxcblx0XHRcdGNoYXJBbW91bnRUb0RlbGV0ZTogZmFsc2UsXG5cdFx0XHR1c2VyT3B0aW9uczoge30sXG5cdFx0XHRldmVudExvb3BSZXJ1bjogMFxuXHRcdH07XG5cblx0XHRpZighZWxlbWVudCkge1xuXHRcdFx0cmV0dXJuIGNvbnNvbGUuZXJyb3IoJ1BsZWFzZSBjaG9vc2UgYW4gRE9NIGVsZW1lbnQgc28gdGhhdCB0eXBlIHdyaXRlciBjYW4gZGlzcGxheSBpdHNlbGYuJyk7XG5cdFx0fVxuXG5cdFx0Ly8gaWYoIW9wdGlvbnMuc3RyaW5ncyAmJiAhKG9wdGlvbnMuc3RyaW5ncyBpbnN0YW5jZW9mIEFycmF5IHx8IHR5cGVvZiBvcHRpb25zLnN0cmluZ3MgPT09ICdzdHJpbmcnKSkge1xuXHRcdC8vIFx0cmV0dXJuIGNvbnNvbGUuZXJyb3IoJ1BsZWFzZSBlbnRlciBhbiBhcnJheSBvZiBzdHJpbmdzIGZvciB0aGUgdHlwZXdyaXRlciBhbmltYXRpb24gdG8gd29yay4nKTtcblx0XHQvLyB9XG5cblx0XHRpZih0eXBlb2Ygb3B0aW9ucyAhPT0gJ29iamVjdCcpIHtcblx0XHRcdHJldHVybiBjb25zb2xlLmVycm9yKCdUeXBld3JpdGVyIG9ubHkgYWNjZXB0cyB0aGUgb3B0aW9ucyBhcyBhbiBvYmplY3QuJyk7XG5cdFx0fVxuXG5cdFx0dGhpcy5fc2V0dGluZ3MudXNlck9wdGlvbnMgPSBvcHRpb25zO1xuXG5cdFx0dGhpcy5kZWZhdWx0X29wdGlvbnMgPSB7XG5cdFx0XHRzdHJpbmdzOiBmYWxzZSxcblx0XHRcdGN1cnNvckNsYXNzTmFtZTogJ3R5cGV3cml0ZXItY3Vyc29yJyxcblx0XHRcdGN1cnNvcjogJ3wnLFxuXHRcdFx0YW5pbWF0ZUN1cnNvcjogdHJ1ZSxcblx0XHRcdGJsaW5rU3BlZWQ6IDUwLFxuXHRcdFx0dHlwaW5nU3BlZWQ6ICduYXR1cmFsJyxcblx0XHRcdGRlbGV0ZVNwZWVkOiAnbmF0dXJhbCcsXG5cdFx0XHRjaGFyU3BhbkNsYXNzTmFtZTogJ3R5cGV3cml0ZXItY2hhcicsXG5cdFx0XHR3cmFwcGVyQ2xhc3NOYW1lOiAndHlwZXdyaXRlci13cmFwcGVyJyxcblx0XHRcdGxvb3A6IGZhbHNlLFxuXHRcdFx0YXV0b1N0YXJ0OiBmYWxzZSxcblx0XHRcdGRldk1vZGU6IGZhbHNlXG5cdFx0fTtcblxuXHRcdHRoaXMub3B0aW9ucyA9IHRoaXMuX3NldHVwT3B0aW9ucyhvcHRpb25zKTtcblxuXHRcdHRoaXMuZWwgPSBlbGVtZW50O1xuXG5cdFx0dGhpcy5fc2V0dXBUeXB3cml0ZXJXcmFwcGVyKCk7XG5cblx0XHR0aGlzLl9zdGFydEN1cnNvckFuaW1hdGlvbigpO1xuXG5cdFx0aWYodGhpcy5vcHRpb25zLmF1dG9TdGFydCA9PT0gdHJ1ZSAmJiB0aGlzLm9wdGlvbnMuc3RyaW5ncykge1xuXHRcdFx0dGhpcy50eXBlT3V0QWxsU3RyaW5ncygpO1xuXHRcdH1cblxuXHR9O1xuXG5cdHZhciBUeXBld3JpdGVyUHJvdG90eXBlID0gd2luZG93LlR5cGV3cml0ZXIucHJvdG90eXBlO1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuc3RvcCA9IGZ1bmN0aW9uKCkge1xuXHRcdHRoaXMuX2FkZFRvRXZlbnRRdWUodGhpcy5fc3RvcEV2ZW50TG9vcClcblx0XHRyZXR1cm4gdGhpcztcblx0fTtcblxuXHRUeXBld3JpdGVyUHJvdG90eXBlLnN0YXJ0ID0gZnVuY3Rpb24oKSB7XG5cdFx0dGhpcy5fc3RhcnRFdmVudExvb3AoKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fTtcblxuXHRUeXBld3JpdGVyUHJvdG90eXBlLnJlcnVuID0gZnVuY3Rpb24oKSB7XG5cdFx0dGhpcy5fYWRkVG9FdmVudFF1ZSh0aGlzLl9yZXJ1bkNhbGxlZEV2ZW50cyk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH07XG5cblx0VHlwZXdyaXRlclByb3RvdHlwZS50eXBlU3RyaW5nID0gZnVuY3Rpb24oc3RyaW5nKSB7XG5cdFx0aWYoIXN0cmluZyB8fCB0eXBlb2Ygc3RyaW5nICE9ICdzdHJpbmcnKSB7XG5cdFx0XHRyZXR1cm4gY29uc29sZS5lcnJvcignUGxlYXNlIGVudGVyIGEgc3RyaW5nIGFzIHRoZSBwYXJhbWF0ZXIuJyk7XG5cdFx0fVxuXG5cdFx0dmFyIHN0cmluZ19jaGFycyA9IHRoaXMuX2dldENoYXJhY3RlcnMoc3RyaW5nKTtcblxuXHRcdHRoaXMuX2FkZFRvRXZlbnRRdWUoW3RoaXMuX3R5cGVDaGFyYWN0ZXJzLCBbc3RyaW5nX2NoYXJzXV0pO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9O1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuZGVsZXRlQWxsID0gZnVuY3Rpb24oKSB7XG5cdFx0dGhpcy5fYWRkVG9FdmVudFF1ZShbdGhpcy5fZGVsZXRlQ2hhcnMsIFsnYWxsJ11dKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fTtcblxuXHRUeXBld3JpdGVyUHJvdG90eXBlLmRlbGV0ZUNoYXJzID0gZnVuY3Rpb24oYW1vdW50KSB7XG5cdFx0dGhpcy5fYWRkVG9FdmVudFF1ZShbdGhpcy5fZGVsZXRlQ2hhcnMsIFthbW91bnRdXSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH07XG5cblx0VHlwZXdyaXRlclByb3RvdHlwZS5wYXVzZUZvciA9IGZ1bmN0aW9uKG1zKSB7XG5cdFx0dGhpcy5fYWRkVG9FdmVudFF1ZShbdGhpcy5fcGF1c2VGb3IsIFttc11dKTtcblx0XHRyZXR1cm4gdGhpcztcblx0fTtcblxuXHRUeXBld3JpdGVyUHJvdG90eXBlLnR5cGVPdXRBbGxTdHJpbmdzID0gZnVuY3Rpb24oKSB7XG5cdFx0dmFyIGNoYXJhY3RlcnNfYXJyYXkgPSB0aGlzLl9nZXRTdHJpbmdzQXNDaGFyc0FycmF5KCk7XG5cblx0XHRpZihjaGFyYWN0ZXJzX2FycmF5Lmxlbmd0aCA9PT0gMSkge1xuXHRcdFx0dGhpcy5fdHlwZUNoYXJhY3RlcnMoY2hhcmFjdGVyc19hcnJheVswXSk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGZvcih2YXIgaSA9IDAsIGxlbmd0aCA9IGNoYXJhY3RlcnNfYXJyYXkubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0dGhpcy5fYWRkVG9FdmVudFF1ZShbdGhpcy5fdHlwZUNoYXJhY3RlcnMsIFtjaGFyYWN0ZXJzX2FycmF5W2ldXV0pO1xuXHRcdFx0XHR0aGlzLnBhdXNlRm9yKHRoaXMuX3JhbmRvbUludGVnZXIoMTUwMCwgMjUwMCkpO1xuXHRcdFx0XHR0aGlzLmRlbGV0ZUFsbCgpO1xuXHRcdFx0XHR0aGlzLnBhdXNlRm9yKHRoaXMuX3JhbmRvbUludGVnZXIoMTUwMCwgMjUwMCkpO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzO1xuXG5cdH07XG5cblx0VHlwZXdyaXRlclByb3RvdHlwZS5jaGFuZ2VTZXR0aW5ncyA9IGZ1bmN0aW9uKG5ld19zZXR0aW5ncykge1xuXHRcdGlmKCFuZXdfc2V0dGluZ3MgJiYgdHlwZW9mIG5ld19zZXR0aW5ncyAhPT0gJ29iamVjdCcpIHtcblx0XHRcdHJldHVybiBjb25zb2xlLmVycm9yKCdUeXBld3JpdGVyIHdpbGwgb25seSBhY2NlcHQgYW4gb2JqZWN0IGFzIHRoZSBzZXR0aW5ncy4nKTtcblx0XHR9XG5cblx0XHR0aGlzLl9hZGRUb0V2ZW50UXVlKFt0aGlzLl9jaGFuZ2VTZXR0aW5ncywgW0pTT04uc3RyaW5naWZ5KG5ld19zZXR0aW5ncyldXSk7XG5cblx0XHRyZXR1cm4gdGhpcztcblxuXHR9O1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuY2hhbmdlQmxpbmtTcGVlZCA9IGZ1bmN0aW9uKG5ld19zcGVlZCkge1xuXHRcdGlmKCFuZXdfc3BlZWQgJiYgdHlwZW9mIG5ld19zcGVlZCAhPT0gJ251bWJlcicpIHtcblx0XHRcdHJldHVybiBjb25zb2xlLmVycm9yKCdQbGVhc2UgZW50ZXIgYSBudW1iZXIgZm9yIHRoZSBuZXcgYmxpbmsgc3BlZWQuJyk7XG5cdFx0fVxuXG5cdFx0dGhpcy5jaGFuZ2VTZXR0aW5ncyh7XG5cdFx0XHRibGlua1NwZWVkOiBuZXdfc3BlZWRcblx0XHR9KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXHR9O1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuY2hhbmdlVHlwaW5nU3BlZWQgPSBmdW5jdGlvbihuZXdfc3BlZWQpIHtcblx0XHRpZighbmV3X3NwZWVkICYmIHR5cGVvZiBuZXdfc3BlZWQgIT09ICdudW1iZXInKSB7XG5cdFx0XHRyZXR1cm4gY29uc29sZS5lcnJvcignUGxlYXNlIGVudGVyIGEgbnVtYmVyIGZvciB0aGUgbmV3IHR5cGluZyBzcGVlZC4nKTtcblx0XHR9XG5cblx0XHR2YXIgbmV3X3NldHRpbmdzID0ge1xuXHRcdFx0dHlwaW5nU3BlZWQ6IG5ld19zcGVlZFxuXHRcdH07XG5cblx0XHR0aGlzLmNoYW5nZVNldHRpbmdzKHtcblx0XHRcdHR5cGluZ1NwZWVkOiBuZXdfc3BlZWRcblx0XHR9KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXHR9O1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuY2hhbmdlRGVsZXRlU3BlZWQgPSBmdW5jdGlvbihuZXdfc3BlZWQpIHtcblx0XHRpZighbmV3X3NwZWVkICYmIHR5cGVvZiBuZXdfc3BlZWQgIT09ICdudW1iZXInKSB7XG5cdFx0XHRyZXR1cm4gY29uc29sZS5lcnJvcignUGxlYXNlIGVudGVyIGEgbnVtYmVyIGZvciB0aGUgbmV3IGRlbGV0ZSBzcGVlZC4nKTtcblx0XHR9XG5cblx0XHR0aGlzLmNoYW5nZVNldHRpbmdzKHtcblx0XHRcdGNoYW5nZURlbGV0ZVNwZWVkOiBuZXdfc3BlZWRcblx0XHR9KTtcblxuXHRcdHJldHVybiB0aGlzO1xuXHR9O1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuX3JlcnVuQ2FsbGVkRXZlbnRzID0gZnVuY3Rpb24oKSB7XG5cdFx0aWYodGhpcy5fc2V0dGluZ3MuY3VycmVudFR5cGVkQ2hhcmFjdGVycy5sZW5ndGggPiAwKSB7XG5cdFx0XHR0aGlzLmRlbGV0ZUFsbCgpO1xuXHRcdFx0dGhpcy5fcmVzZXRFdmVudExvb3AoJ3JlcnVuQ2FsbGVkRXZlbnRzJyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdHRoaXMuX3NldHRpbmdzLmV2ZW50UXVlID0gdGhpcy5fc2V0dGluZ3MuY2FsbGVkRXZlbnRzO1xuXHRcdFx0dGhpcy5fc2V0dGluZ3MuY2FsbGVkRXZlbnRzID0gW107XG5cdFx0XHR0aGlzLm9wdGlvbnMgPSB0aGlzLl9zZXR1cE9wdGlvbnModGhpcy5fc2V0dGluZ3MudXNlck9wdGlvbnMpO1xuXHRcdFx0dGhpcy5fc2V0dGluZ3MudXNlZElEcyA9IFtdO1xuXHRcdFx0dGhpcy5jaGFyQW1vdW50VG9EZWxldGUgPSBmYWxzZTtcblx0XHRcdHRoaXMuX3N0YXJ0RXZlbnRMb29wKCk7XG5cdFx0fVxuXHR9O1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuX2RlbGV0ZUNoYXJzID0gZnVuY3Rpb24oYW1vdW50KSB7XG5cblxuXHRcdGlmKGFtb3VudCkge1xuXHRcdFx0dGhpcy5fc2V0dGluZ3MuY2hhckFtb3VudFRvRGVsZXRlID0gYW1vdW50O1xuXHRcdH1cblx0XHR0aGlzLl9kZWxldGluZ0NoYXJJZHNBbmltYXRpb24gPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuX2RlbGV0aW5nQ2hhckFuaW1hdGlvbkZyYW1lLmJpbmQodGhpcykpO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9O1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuX3BhdXNlRm9yID0gZnVuY3Rpb24obXMpIHtcblx0XHR2YXIgc2VsZiA9IHRoaXM7XG5cdFx0c2VsZi5fc2V0dGluZ3MuZXZlbnRSdW5uaW5nID0gdHJ1ZTtcblx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0c2VsZi5fcmVzZXRFdmVudExvb3AoJ3BhdXNlRm9yJyk7XG5cdFx0fSwgbXMpO1xuXHR9O1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuX2NoYW5nZVNldHRpbmdzID0gZnVuY3Rpb24obmV3X3NldHRpbmdzKSB7XG5cdFx0dGhpcy5vcHRpb25zID0gdGhpcy5fc2V0dXBPcHRpb25zKEpTT04ucGFyc2UobmV3X3NldHRpbmdzWzBdKSk7XG5cdFx0dGhpcy5fcmVzZXRFdmVudExvb3AoJ2NoYW5nZVNldHRpbmdzJyk7XG5cblx0XHRpZih0aGlzLm9wdGlvbnMuZGV2TW9kZSkge1xuXHRcdFx0Y29uc29sZS5sb2coJ05ldyBzZXR0aW5ncycsIHRoaXMub3B0aW9ucyk7XG5cdFx0fVxuXG5cdH07XG5cblx0VHlwZXdyaXRlclByb3RvdHlwZS5fZGVsZXRpbmdDaGFyQW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbigpIHtcblx0XHR2YXIgc2VsZiA9IHRoaXM7XG5cdFx0dmFyIGRlbGV0ZV9zcGVlZCA9IHRoaXMub3B0aW9ucy5kZWxldGVTcGVlZDtcblx0XHR2YXIgdHlwZXdyaXRlcl93cmFwcGVyX2NsYXNzX25hbWUgPSBzZWxmLm9wdGlvbnMud3JhcHBlckNsYXNzTmFtZTtcblx0XHR2YXIgY3VycmVudF90eXBlZF9jaGFyX2lkcyA9IHNlbGYuX3NldHRpbmdzLmN1cnJlbnRUeXBlZENoYXJhY3RlcnM7XG5cdFx0dmFyIGNoYXJfYW1vdW50X3RvX2RlbGV0ZSA9IHNlbGYuX3NldHRpbmdzLmNoYXJBbW91bnRUb0RlbGV0ZTtcblxuXHRcdGlmKCFzZWxmLl9zZXR0aW5ncy5jaGFyQW1vdW50VG9EZWxldGUgfHwgc2VsZi5fc2V0dGluZ3MuY2hhckFtb3VudFRvRGVsZXRlID09PSAwIHx8IGN1cnJlbnRfdHlwZWRfY2hhcl9pZHMgPT09IDApIHtcblx0XHRcdHNlbGYuX3Jlc2V0RXZlbnRMb29wKCdkZWxldGluZ0NoYXJBbmltYXRpb25GcmFtZScpO1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0aWYoZGVsZXRlX3NwZWVkID09ICduYXR1cmFsJykge1xuXHRcdFx0ZGVsZXRlX3NwZWVkID0gc2VsZi5fcmFuZG9tSW50ZWdlcig1MCwgMTUwKTtcblx0XHR9XG5cblx0XHRpZihjaGFyX2Ftb3VudF90b19kZWxldGUgPT0gJ2FsbCcpIHtcblx0XHRcdGNoYXJfYW1vdW50X3RvX2RlbGV0ZSA9IGN1cnJlbnRfdHlwZWRfY2hhcl9pZHMubGVuZ3RoO1xuXHRcdFx0c2VsZi5fc2V0dGluZ3MuY2hhckFtb3VudFRvRGVsZXRlID0gY2hhcl9hbW91bnRfdG9fZGVsZXRlO1xuXHRcdH1cblxuXHRcdHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7XG5cdFx0XHRpZihzZWxmLl9zZXR0aW5ncy5jaGFyQW1vdW50VG9EZWxldGUpIHtcblx0XHRcdFx0dmFyIGxhc3RfdHlwZWRfY2hhcl9pbmRleCA9IGN1cnJlbnRfdHlwZWRfY2hhcl9pZHMubGVuZ3RoIC0gMTtcblx0XHRcdFx0dmFyIGdldF9sYXN0X3R5cGVkX2NoYXIgPSBjdXJyZW50X3R5cGVkX2NoYXJfaWRzW2xhc3RfdHlwZWRfY2hhcl9pbmRleF07XG5cblx0XHRcdFx0c2VsZi5fc2V0dGluZ3MuY3VycmVudFR5cGVkQ2hhcmFjdGVycy5zcGxpY2UobGFzdF90eXBlZF9jaGFyX2luZGV4LCAxKTtcblxuXHRcdFx0XHR2YXIgY2hhcl90b19kZWxldGVfZWwgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChnZXRfbGFzdF90eXBlZF9jaGFyKTtcblxuXHRcdFx0XHRpZihjaGFyX3RvX2RlbGV0ZV9lbCkge1xuXHRcdFx0XHRcdHZhciB0eXBld3JpdGVyX3dyYXBwZXJfZWwgPSBzZWxmLmVsLnF1ZXJ5U2VsZWN0b3IoJy4nICsgdHlwZXdyaXRlcl93cmFwcGVyX2NsYXNzX25hbWUpO1xuXHRcdFx0XHRcdHR5cGV3cml0ZXJfd3JhcHBlcl9lbC5yZW1vdmVDaGlsZChjaGFyX3RvX2RlbGV0ZV9lbCk7XG5cdFx0XHRcdFx0c2VsZi5fc2V0dGluZ3MuY2hhckFtb3VudFRvRGVsZXRlID0gY2hhcl9hbW91bnRfdG9fZGVsZXRlIC0gMTtcblxuXHRcdFx0XHRcdGlmKHNlbGYub3B0aW9ucy5kZXZNb2RlKSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnRGVsZXRlZCBjaGFyIHdpdGggSUQnLCBnZXRfbGFzdF90eXBlZF9jaGFyKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH1cblxuXHRcdFx0fVxuXG5cdFx0XHRzZWxmLl9kZWxldGluZ0NoYXJJZHNBbmltYXRpb24gPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHNlbGYuX2RlbGV0aW5nQ2hhckFuaW1hdGlvbkZyYW1lLmJpbmQoc2VsZikpO1xuXG5cdFx0fSwgZGVsZXRlX3NwZWVkKTtcblx0fTtcblxuXHRUeXBld3JpdGVyUHJvdG90eXBlLl9zZXR1cE9wdGlvbnMgPSBmdW5jdGlvbihuZXdfb3B0aW9ucykge1xuXHQgICAgdmFyIG1lcmdlZF9vcHRpb25zID0ge307XG5cblx0ICAgIGZvciAodmFyIGF0dHJuYW1lIGluIHRoaXMuZGVmYXVsdF9vcHRpb25zKSB7XG5cdCAgICBcdG1lcmdlZF9vcHRpb25zW2F0dHJuYW1lXSA9IHRoaXMuZGVmYXVsdF9vcHRpb25zW2F0dHJuYW1lXTtcblx0ICAgIH1cblxuXHQgICAgaWYodGhpcy5fc2V0dGluZ3MudXNlck9wdGlvbnMpIHtcblx0ICAgIFx0Zm9yICh2YXIgYXR0cm5hbWUgaW4gdGhpcy5fc2V0dGluZ3MudXNlck9wdGlvbnMpIHtcblx0XHQgICAgXHRtZXJnZWRfb3B0aW9uc1thdHRybmFtZV0gPSB0aGlzLl9zZXR0aW5ncy51c2VyT3B0aW9uc1thdHRybmFtZV07XG5cdFx0ICAgIH1cblx0ICAgIH1cblxuXHQgICAgZm9yICh2YXIgYXR0cm5hbWUgaW4gbmV3X29wdGlvbnMpIHtcblx0ICAgIFx0bWVyZ2VkX29wdGlvbnNbYXR0cm5hbWVdID0gbmV3X29wdGlvbnNbYXR0cm5hbWVdO1xuXHQgICAgfVxuXG5cdCAgICByZXR1cm4gbWVyZ2VkX29wdGlvbnM7XG5cdH1cblxuXHRUeXBld3JpdGVyUHJvdG90eXBlLl9hZGRUb0V2ZW50UXVlID0gZnVuY3Rpb24oZXZlbnQpIHtcblx0XHR0aGlzLl9zZXR0aW5ncy5ldmVudFF1ZS5wdXNoKGV2ZW50KTtcblx0XHRpZih0aGlzLl9zZXR0aW5ncy5ldmVudFF1ZS5sZW5ndGggPiAwICYmICF0aGlzLl9zZXR0aW5ncy5ldmVudFJ1bm5pbmcgJiYgdGhpcy5vcHRpb25zLmF1dG9TdGFydCkge1xuXHRcdFx0dGhpcy5fc3RhcnRFdmVudExvb3AoKTtcblx0XHR9XG5cdH07XG5cblx0VHlwZXdyaXRlclByb3RvdHlwZS5fc3RhcnRFdmVudExvb3AgPSBmdW5jdGlvbigpIHtcblx0XHRpZih0aGlzLm9wdGlvbnMuZGV2TW9kZSkge1xuXHRcdFx0Y29uc29sZS5sb2coJ0V2ZW50IGxvb3Agc3RhcnRlZC4nKTtcblx0XHR9XG5cblx0XHRpZighdGhpcy5fc2V0dGluZ3MuZXZlbnRSdW5uaW5nKSB7XG5cblx0XHRcdGlmKHRoaXMuX3NldHRpbmdzLmV2ZW50UXVlLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0dGhpcy5ldmVudExvb3BSZXJ1biA9IDA7XG5cdFx0XHRcdHZhciBmaXJzdF9ldmVudCA9IHRoaXMuX3NldHRpbmdzLmV2ZW50UXVlWzBdO1xuXHRcdFx0XHRpZih0eXBlb2YgZmlyc3RfZXZlbnQgPT0gJ2Z1bmN0aW9uJykge1xuXHRcdFx0XHRcdHRoaXMuX3NldHRpbmdzLmV2ZW50UnVubmluZyA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5fc2V0dGluZ3MuY2FsbGVkRXZlbnRzLnB1c2goZmlyc3RfZXZlbnQpO1xuXHRcdFx0XHRcdHRoaXMuX3NldHRpbmdzLmV2ZW50UXVlLnNwbGljZSgwLCAxKTtcblx0XHRcdFx0XHRmaXJzdF9ldmVudC5jYWxsKHRoaXMpO1xuXHRcdFx0XHRcdGlmKHRoaXMub3B0aW9ucy5kZXZNb2RlKSB7XG5cdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnRXZlbnQgc3RhcnRlZC4nKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdH0gZWxzZSBpZihmaXJzdF9ldmVudCBpbnN0YW5jZW9mIEFycmF5KSB7XG5cdFx0XHRcdFx0aWYodHlwZW9mIGZpcnN0X2V2ZW50WzBdID09ICdmdW5jdGlvbicgJiYgZmlyc3RfZXZlbnRbMV0gaW5zdGFuY2VvZiBBcnJheSkge1xuXHRcdFx0XHRcdFx0dGhpcy5fc2V0dGluZ3MuZXZlbnRSdW5uaW5nID0gdHJ1ZTtcblx0XHRcdFx0XHRcdHRoaXMuX3NldHRpbmdzLmNhbGxlZEV2ZW50cy5wdXNoKGZpcnN0X2V2ZW50KTtcblx0XHRcdFx0XHRcdHRoaXMuX3NldHRpbmdzLmV2ZW50UXVlLnNwbGljZSgwLCAxKTtcblx0XHRcdFx0XHRcdGZpcnN0X2V2ZW50WzBdLmNhbGwodGhpcywgZmlyc3RfZXZlbnRbMV0pO1xuXHRcdFx0XHRcdFx0aWYodGhpcy5vcHRpb25zLmRldk1vZGUpIHtcblx0XHRcdFx0XHRcdFx0Y29uc29sZS5sb2coJ0V2ZW50IHN0YXJ0ZWQuJyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHR0aGlzLl9ldmVudFF1ZUFuaW1hdGlvbiA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5fc3RhcnRFdmVudExvb3AuYmluZCh0aGlzKSk7XG5cdFx0fVxuXG5cdFx0aWYoIXRoaXMuX3NldHRpbmdzLmV2ZW50UnVubmluZyAmJiB0aGlzLl9zZXR0aW5ncy5ldmVudFF1ZS5sZW5ndGggPD0gMCkge1xuXHRcdFx0dmFyIHNlbGYgPSB0aGlzO1xuXHRcdFx0c2VsZi5fc3RvcEV2ZW50TG9vcCgpO1xuXHRcdFx0c2V0VGltZW91dChmdW5jdGlvbigpIHtcblx0XHRcdFx0aWYoc2VsZi5vcHRpb25zLmxvb3ApIHtcblx0XHRcdFx0XHRzZWxmLmV2ZW50TG9vcFJlcnVuKys7XG5cdFx0XHRcdFx0aWYoc2VsZi5vcHRpb25zLmRldk1vZGUpIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUubG9nKCdCZWZvcmUgTG9vcCBTdGF0ZScsIHNlbGYuX3NldHRpbmdzKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0aWYoc2VsZi5ldmVudExvb3BSZXJ1biA+IDQpIHtcblx0XHRcdFx0XHRcdGNvbnNvbGUuZXJyb3IoJ01heGltdW0gYW1vdW50IG9mIGxvb3AgcmV0cmllcyByZWFjaGVkLicpO1xuXHRcdFx0XHRcdFx0c2VsZi5fc3RvcEV2ZW50TG9vcCgpO1xuXHRcdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0XHRpZihzZWxmLm9wdGlvbnMuZGV2TW9kZSkge1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmxvZygnTG9vcGluZyBldmVudHMuJyk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRzZWxmLl9yZXJ1bkNhbGxlZEV2ZW50cygpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSwgMTAwMCk7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdH07XG5cblx0VHlwZXdyaXRlclByb3RvdHlwZS5fcmVzZXRFdmVudExvb3AgPSBmdW5jdGlvbihuYW1lKSB7XG5cdFx0dmFyIGV2ZW50X25hbWUgPSBuYW1lIHx8ICdFdmVudCc7XG5cdFx0dGhpcy5fc2V0dGluZ3MuZXZlbnRSdW5uaW5nID0gZmFsc2U7XG5cdFx0dGhpcy5fc3RhcnRFdmVudExvb3AoKTtcblx0XHRpZih0aGlzLm9wdGlvbnMuZGV2TW9kZSkge1xuXHRcdFx0Y29uc29sZS5sb2coZXZlbnRfbmFtZSwgJ0ZpbmlzaGVkJyk7XG5cdFx0fVxuXHR9O1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuX3N0b3BFdmVudExvb3AgPSBmdW5jdGlvbigpIHtcblx0XHR3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUodGhpcy5fZXZlbnRRdWVBbmltYXRpb24pO1xuXHRcdGlmKHRoaXMub3B0aW9ucy5kZXZNb2RlKSB7XG5cdFx0XHRjb25zb2xlLmxvZygnRXZlbnQgbG9vcCBzdG9wcGVkLicpO1xuXHRcdH1cblx0fTtcblxuXHRUeXBld3JpdGVyUHJvdG90eXBlLl9zZXR1cFR5cHdyaXRlcldyYXBwZXIgPSBmdW5jdGlvbigpIHtcblx0XHR2YXIgdHlwZXdyaXRlcl93cmFwcGVyX2NsYXNzX25hbWUgPSB0aGlzLm9wdGlvbnMud3JhcHBlckNsYXNzTmFtZTtcblx0XHR2YXIgdHlwZXdyaXRlcl93cmFwcGVyID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuXHRcdHR5cGV3cml0ZXJfd3JhcHBlci5jbGFzc05hbWUgPSB0eXBld3JpdGVyX3dyYXBwZXJfY2xhc3NfbmFtZTtcblx0XHR0aGlzLmVsLmlubmVySFRNTCA9ICcnO1xuXHRcdHRoaXMuZWwuYXBwZW5kQ2hpbGQodHlwZXdyaXRlcl93cmFwcGVyKTtcblx0fTtcblxuXHRUeXBld3JpdGVyUHJvdG90eXBlLl90eXBlQ2hhcmFjdGVycyA9IGZ1bmN0aW9uKGNoYXJhY3RlcnNfYXJyYXkpIHtcblx0XHR0aGlzLl9zZXR0aW5ncy5zdHJpbmdUb1R5cGVIVE1MQXJyYXkgPSB0aGlzLl9jb252ZXJ0Q2hhcnNUb0hUTUwoY2hhcmFjdGVyc19hcnJheSk7XG5cdFx0dGhpcy5fdHlwaW5nQW5pbWF0aW9uID0gd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSh0aGlzLl90eXBpbmdBbmltYXRpb25GcmFtZS5iaW5kKHRoaXMsIGNoYXJhY3RlcnNfYXJyYXkubGVuZ3RoKSk7XG5cdFx0cmV0dXJuIHRoaXM7XG5cdH07XG5cblx0VHlwZXdyaXRlclByb3RvdHlwZS5fdHlwaW5nQW5pbWF0aW9uRnJhbWUgPSBmdW5jdGlvbih0b3RhbF9pdGVtcykge1xuXHRcdHZhciBzZWxmID0gdGhpcztcblx0XHR2YXIgdHlwaW5nX3NwZWVkID0gdGhpcy5vcHRpb25zLnR5cGluZ1NwZWVkO1xuXHRcdHZhciB0eXBld3JpdGVyX3dyYXBwZXJfY2xhc3NfbmFtZSA9IHNlbGYub3B0aW9ucy53cmFwcGVyQ2xhc3NOYW1lO1xuXG5cdFx0aWYoc2VsZi5fc2V0dGluZ3Muc3RyaW5nVG9UeXBlSFRNTEFycmF5Lmxlbmd0aCA9PSAwKSB7XG5cdFx0XHR3aW5kb3cuY2FuY2VsQW5pbWF0aW9uRnJhbWUoc2VsZi5fdHlwaW5nQW5pbWF0aW9uKTtcblx0XHRcdHRoaXMuX3Jlc2V0RXZlbnRMb29wKCd0eXBpbmdBbmltYXRpb25GcmFtZScpO1xuXHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0fVxuXG5cdFx0aWYodHlwaW5nX3NwZWVkID09ICduYXR1cmFsJykge1xuXHRcdFx0dHlwaW5nX3NwZWVkID0gdGhpcy5fcmFuZG9tSW50ZWdlcig1MCwgMTUwKTtcblx0XHR9XG5cblx0XHRzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuXHRcdFx0dmFyIGVsX2lubmVyX2h0bWwgPSBzZWxmLmVsLmlubmVySFRNTDtcblx0XHRcdHZhciBpdGVtX3RvX3R5cGUgPSBzZWxmLl9zZXR0aW5ncy5zdHJpbmdUb1R5cGVIVE1MQXJyYXlbMF07XG5cdFx0XHRzZWxmLmVsLnF1ZXJ5U2VsZWN0b3IoJy4nICsgdHlwZXdyaXRlcl93cmFwcGVyX2NsYXNzX25hbWUpLmFwcGVuZENoaWxkKGl0ZW1fdG9fdHlwZS5lbCk7XG5cdFx0XHRzZWxmLl9zZXR0aW5ncy5jdXJyZW50VHlwZWRDaGFyYWN0ZXJzLnB1c2goaXRlbV90b190eXBlLmlkKTtcblx0XHRcdHNlbGYuX3NldHRpbmdzLnN0cmluZ1RvVHlwZUhUTUxBcnJheS5zcGxpY2UoMCwgMSk7XG5cdFx0XHRzZWxmLl90eXBpbmdBbmltYXRpb24gPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHNlbGYuX3R5cGluZ0FuaW1hdGlvbkZyYW1lLmJpbmQoc2VsZiwgdG90YWxfaXRlbXMpKTtcblx0XHRcdGlmKHNlbGYub3B0aW9ucy5kZXZNb2RlKSB7XG5cdFx0XHRcdGNvbnNvbGUubG9nKCdUeXBlZCcsIGl0ZW1fdG9fdHlwZSk7XG5cdFx0XHR9XG5cdFx0fSwgdHlwaW5nX3NwZWVkKTtcblx0fTtcblxuXHRUeXBld3JpdGVyUHJvdG90eXBlLl9jb252ZXJ0Q2hhcnNUb0hUTUwgPSBmdW5jdGlvbihjaGFycykge1xuXHRcdHZhciBjaGFyc19odG1sX3dyYXBfYXJyYXkgPSBbXTtcblx0XHR2YXIgY2hhcl9jbGFzc19uYW1lID0gdGhpcy5vcHRpb25zLmNoYXJTcGFuQ2xhc3NOYW1lO1xuXHRcdHZhciBjaGFyc19hcnJheSA9IGNoYXJzWzBdO1xuXG5cdFx0Zm9yKHZhciBpID0gMCwgbGVuZ3RoID0gY2hhcnNfYXJyYXkubGVuZ3RoOyBpIDwgbGVuZ3RoOyBpKyspIHtcblx0XHRcdHZhciBjaGFyX2VsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzcGFuJyk7XG5cdFx0XHR2YXIgY2hhcl9pZCA9IHRoaXMuX2dlbmVyYXRlVW5pcXVlSUQoKTtcblx0XHRcdGNoYXJfZWxlbWVudC5pZCA9IGNoYXJfaWQ7XG5cdFx0XHRjaGFyX2VsZW1lbnQuY2xhc3NOYW1lID0gY2hhcl9jbGFzc19uYW1lICsgJyB0eXBld3JpdGVyLWl0ZW0tJyArIGk7XG5cdFx0XHRjaGFyX2VsZW1lbnQuaW5uZXJIVE1MID0gY2hhcnNfYXJyYXlbaV07XG5cdFx0XHRjaGFyc19odG1sX3dyYXBfYXJyYXkucHVzaCh7XG5cdFx0XHRcdGlkOiBjaGFyX2lkLFxuXHRcdFx0XHRlbDogY2hhcl9lbGVtZW50XG5cdFx0XHR9KTtcblx0XHR9XG5cblx0XHRyZXR1cm4gY2hhcnNfaHRtbF93cmFwX2FycmF5O1xuXHR9O1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuX2dldENoYXJhY3RlcnMgPSBmdW5jdGlvbihzdHJpbmcpIHtcblx0XHRpZih0eXBlb2Ygc3RyaW5nICE9PSAnc3RyaW5nJykge1xuXHRcdFx0cmV0dXJuIGZhbHNlO1xuXHRcdH1cblx0XHRyZXR1cm4gc3RyaW5nLnNwbGl0KFwiXCIpO1xuXHR9O1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuX2dldFN0cmluZ3NBc0NoYXJzQXJyYXkgPSBmdW5jdGlvbigpIHtcblx0XHR2YXIgc3RyaW5nc19hcnJheV9jaGVjayA9IHRoaXMub3B0aW9ucy5zdHJpbmdzIGluc3RhbmNlb2YgQXJyYXk7XG5cdFx0dmFyIHN0cmluZ3Nfc3RyaW5nX2NoZWNrID0gdHlwZW9mIHRoaXMub3B0aW9ucy5zdHJpbmdzID09PSAnc3RyaW5nJztcblx0XHRpZighc3RyaW5nc19hcnJheV9jaGVjaykge1xuXHRcdFx0aWYoIXN0cmluZ3Nfc3RyaW5nX2NoZWNrKSB7XG5cdFx0XHRcdHJldHVybiBjb25zb2xlLmVycm9yKCdUeXBld3JpdGVyIG9ubHkgYWNjZXB0cyBzdHJpbmdzIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MgYXMgdGhlIGlucHV0LicpO1xuXHRcdFx0fVxuXHRcdFx0cmV0dXJuIFt0aGlzLm9wdGlvbnMuc3RyaW5ncy5zcGxpdChcIlwiKV07XG5cdFx0fVxuXG5cdFx0dmFyIHN0cmluZ3NfY2hhcnNfYXJyYXkgPSBbXTtcblxuXHRcdGZvciAodmFyIGkgPSAwLCBsZW5ndGggPSB0aGlzLm9wdGlvbnMuc3RyaW5ncy5sZW5ndGg7IGkgPCBsZW5ndGg7IGkrKykge1xuXHRcdFx0dmFyIHN0cmluZ19jaGFycyA9IHRoaXMuX2dldENoYXJhY3RlcnModGhpcy5vcHRpb25zLnN0cmluZ3NbaV0pO1xuXHRcdFx0aWYoIXN0cmluZ19jaGFycykge1xuXHRcdFx0XHRjb25zb2xlLmVycm9yKCdQbGVhc2UgZW50ZXIgb25seSBzdHJpbmdzLicpO1xuXHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHRcdHN0cmluZ3NfY2hhcnNfYXJyYXkucHVzaChzdHJpbmdfY2hhcnMpO1xuICAgIFx0fVxuXG4gICAgXHRyZXR1cm4gc3RyaW5nc19jaGFyc19hcnJheTtcblx0fTtcblxuXHRUeXBld3JpdGVyUHJvdG90eXBlLl9jdXJzb3JBbmltYXRpb25GcmFtZSA9IGZ1bmN0aW9uKCkge1xuXHRcdGlmKCF0aGlzLl9zZXR0aW5ncy5jdXJzb3JBbmltYXRpb25QYXVzZWQpIHtcblx0XHRcdHZhciBibGlua19zcGVlZCA9IHRoaXMub3B0aW9ucy5ibGlua1NwZWVkO1xuXHRcdFx0dmFyIG9wYWNpdHlfYW1vdW50ID0gKDEvMTAwMCkgKiBibGlua19zcGVlZDtcblxuXHRcdFx0dmFyIGN1cnNvcl9lbCA9IHRoaXMuZWwucXVlcnlTZWxlY3RvcignLnR5cGV3cml0ZXItY3Vyc29yJyk7XG5cblx0XHRcdGlmKHRoaXMuX3NldHRpbmdzLm9wYWNpdHlJbmNyZWFzaW5nID09IHRydWUpIHtcblx0XHRcdFx0aWYodGhpcy5fc2V0dGluZ3MuY3VycmVudE9wYWNpdHkgPj0gMSkge1xuXHRcdFx0XHRcdHRoaXMuX3NldHRpbmdzLm9wYWNpdHlJbmNyZWFzaW5nID0gZmFsc2U7XG5cdFx0XHRcdFx0dGhpcy5fc2V0dGluZ3MuY3VycmVudE9wYWNpdHkgPSAxO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5fc2V0dGluZ3MuY3VycmVudE9wYWNpdHkgKz0gb3BhY2l0eV9hbW91bnQ7XG5cdFx0XHR9XG5cblx0XHRcdGlmKHRoaXMuX3NldHRpbmdzLm9wYWNpdHlJbmNyZWFzaW5nID09IGZhbHNlKSB7XG5cdFx0XHRcdGlmKHRoaXMuX3NldHRpbmdzLmN1cnJlbnRPcGFjaXR5IDw9IDApIHtcblx0XHRcdFx0XHR0aGlzLl9zZXR0aW5ncy5vcGFjaXR5SW5jcmVhc2luZyA9IHRydWU7XG5cdFx0XHRcdFx0dGhpcy5fc2V0dGluZ3MuY3VycmVudE9wYWNpdHkgPSAwO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0dGhpcy5fc2V0dGluZ3MuY3VycmVudE9wYWNpdHkgLT0gb3BhY2l0eV9hbW91bnQ7XG5cdFx0XHR9XG5cblx0XHRcdGN1cnNvcl9lbC5zdHlsZS5vcGFjaXR5ID0gdGhpcy5fc2V0dGluZ3MuY3VycmVudE9wYWNpdHk7XG5cdFx0XHR0aGlzLl9jdXJzb3JBbmltYXRpb24gPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuX2N1cnNvckFuaW1hdGlvbkZyYW1lLmJpbmQodGhpcykpO1xuXHRcdH1cblx0fTtcblxuXHRUeXBld3JpdGVyUHJvdG90eXBlLmFwcGVuZFRleHQgPSBmdW5jdGlvbih0ZXh0KXtcblx0ICAgIHRoaXMuX2FkZFRvRXZlbnRRdWUoW3RoaXMuX2FwcGVuZFRleHQsIFt0ZXh0XV0pXG4gICAgICAgIHJldHVybiB0aGlzXG4gICAgfVxuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuX2FwcGVuZFRleHQgPSBmdW5jdGlvbih0ZXh0KXtcbiAgICAgICAgICAgIHZhciBjaGFyX2NsYXNzX25hbWUgPSB0aGlzLm9wdGlvbnMuY2hhclNwYW5DbGFzc05hbWU7XG4gICAgICAgICAgICB2YXIgY2hhcl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICAgICAgdmFyIGNoYXJfaWQgPSB0aGlzLl9nZW5lcmF0ZVVuaXF1ZUlEKCk7XG4gICAgICAgICAgICBjaGFyX2VsZW1lbnQuaWQgPSBjaGFyX2lkO1xuICAgICAgICAgICAgY2hhcl9lbGVtZW50LmNsYXNzTmFtZSA9IGNoYXJfY2xhc3NfbmFtZSArICcgZG9tLWFwcGVuZGVkJ1xuICAgICAgICAgICAgY2hhcl9lbGVtZW50LmlubmVySFRNTCA9IHRleHRcbiAgICAgICAgICAgIHZhciBpdGVtcyA9ICBbXVxuICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgaWQ6IGNoYXJfaWQsXG4gICAgICAgICAgICAgICAgZWw6IGNoYXJfZWxlbWVudFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuX3NldHRpbmdzLnN0cmluZ1RvVHlwZUhUTUxBcnJheSA9IGl0ZW1zXG5cbiAgICAgICAgICAgIHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5fdHlwaW5nQW5pbWF0aW9uRnJhbWUuYmluZCh0aGlzLCAxKSk7XG5cbiAgICB9XG5cblx0VHlwZXdyaXRlclByb3RvdHlwZS5fc3RhcnRDdXJzb3JBbmltYXRpb24gPSBmdW5jdGlvbigpIHtcblx0XHR2YXIgY3Vyc29yID0gdGhpcy5vcHRpb25zLmN1cnNvcjtcblx0XHR2YXIgY3Vyc29yX2NsYXNzX25hbWUgPSB0aGlzLm9wdGlvbnMuY3Vyc29yQ2xhc3NOYW1lO1xuXG5cdFx0dmFyIGN1cnNvcl9lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuXHRcdGN1cnNvcl9lbGVtZW50LmNsYXNzTmFtZSA9IGN1cnNvcl9jbGFzc19uYW1lO1xuXHRcdGN1cnNvcl9lbGVtZW50LmlubmVySFRNTCA9IGN1cnNvcjtcblxuXHRcdHRoaXMuZWwuYXBwZW5kQ2hpbGQoY3Vyc29yX2VsZW1lbnQpO1xuXHRcdGlmKHRoaXMub3B0aW9ucy5hbmltYXRlQ3Vyc29yKSB7XG5cdFx0XHR0aGlzLl9jdXJzb3JBbmltYXRpb24gPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMuX2N1cnNvckFuaW1hdGlvbkZyYW1lLmJpbmQodGhpcykpO1xuXHRcdH1cblx0fTtcblxuXHRUeXBld3JpdGVyUHJvdG90eXBlLl9wYXVzZUN1cnNvckFuaW1hdGlvbiA9IGZ1bmN0aW9uKCkge1xuXHRcdGlmKCF0aGlzLl9zZXR0aW5ncy5jdXJzb3JBbmltYXRpb25QYXVzZWQpIHtcblx0XHRcdHdpbmRvdy5jYW5jZWxBbmltYXRpb25GcmFtZSh0aGlzLl9jdXJzb3JBbmltYXRpb24pO1xuXHRcdFx0dGhpcy5fc2V0dGluZ3MuY3Vyc29yQW5pbWF0aW9uUGF1c2VkID0gdHJ1ZTtcblx0XHR9XG5cdH07XG5cblx0VHlwZXdyaXRlclByb3RvdHlwZS5fcmVzdGFydEN1cnNvckFuaW1hdGlvbiA9IGZ1bmN0aW9uKCkge1xuXHRcdGlmKCF0aGlzLl9zZXR0aW5ncy5jdXJzb3JBbmltYXRpb25QYXVzZWQpIHtcblx0XHRcdHJldHVybiBjb25zb2xlLmVycm9yKCdDdXJzb3IgYW5pbWF0aW9uIGlzIGFscmVhZHkgcnVubmluZy4nKVxuXHRcdH1cblxuXHRcdHRoaXMuX3NldHRpbmdzLmN1cnNvckFuaW1hdGlvblBhdXNlZCA9IGZhbHNlO1xuXHRcdHRoaXMuX2N1cnNvckFuaW1hdGlvbiA9IHdpbmRvdy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUodGhpcy5fY3Vyc29yQW5pbWF0aW9uRnJhbWUuYmluZCh0aGlzKSk7XG5cdH07XG5cblx0LyogVXRpbHMgKi9cblx0VHlwZXdyaXRlclByb3RvdHlwZS5fcmFuZG9tSW50ZWdlciA9IGZ1bmN0aW9uKG1pbiwgbWF4KSB7XG5cdFx0cmV0dXJuIE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIChtYXggLSBtaW4gKyAxKSkgKyBtaW47XG5cdH07XG5cblx0VHlwZXdyaXRlclByb3RvdHlwZS5fcmFuZG9tSUQgPSBmdW5jdGlvbigpIHtcblx0XHR2YXIgdGV4dCA9IFwiXCI7XG4gICAgXHR2YXIgcG9zc2libGUgPSBcIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5XCI7XG5cbiAgICBcdGZvciggdmFyIGk9MDsgaSA8IHRoaXMuX3JhbmRvbUludGVnZXIoNSwgMTUpOyBpKysgKSB7XG4gICAgXHRcdHRleHQgKz0gcG9zc2libGUuY2hhckF0KE1hdGguZmxvb3IoTWF0aC5yYW5kb20oKSAqIHBvc3NpYmxlLmxlbmd0aCkpO1xuXHRcdH1cbiAgICBcdHJldHVybiB0ZXh0O1xuXHR9O1xuXG5cdFR5cGV3cml0ZXJQcm90b3R5cGUuX2dlbmVyYXRlVW5pcXVlSUQgPSBmdW5jdGlvbigpIHtcblx0XHR2YXIgdGVtcF9pZCA9IHRoaXMuX3JhbmRvbUlEKCk7XG5cdFx0aWYodGhpcy5fc2V0dGluZ3MudXNlZElEcy5pbmRleE9mKHRlbXBfaWQpID09IC0xKSB7XG5cdFx0XHR0aGlzLl9zZXR0aW5ncy51c2VkSURzLnB1c2godGVtcF9pZCk7XG5cdFx0XHRyZXR1cm4gdGVtcF9pZDtcblx0XHR9XG5cdFx0cmV0dXJuIHRoaXMuX2dlbmVyYXRlVW5pcXVlSUQuY2FsbCh0aGlzKTtcblx0fTtcblxuXG59KSgpOyIsIi8qISBVSWtpdCAzLjAuMC1yYy41IHwgaHR0cDovL3d3dy5nZXR1aWtpdC5jb20gfCAoYykgMjAxNCAtIDIwMTcgWU9PdGhlbWUgfCBNSVQgTGljZW5zZSAqL1xuXG4oZnVuY3Rpb24gKGdsb2JhbCwgZmFjdG9yeSkge1xuICAgIHR5cGVvZiBleHBvcnRzID09PSAnb2JqZWN0JyAmJiB0eXBlb2YgbW9kdWxlICE9PSAndW5kZWZpbmVkJyA/IG1vZHVsZS5leHBvcnRzID0gZmFjdG9yeSgpIDpcbiAgICB0eXBlb2YgZGVmaW5lID09PSAnZnVuY3Rpb24nICYmIGRlZmluZS5hbWQgPyBkZWZpbmUoJ3Vpa2l0JywgZmFjdG9yeSkgOlxuICAgIChnbG9iYWwuVUlraXQgPSBmYWN0b3J5KCkpO1xufSh0aGlzLCAoZnVuY3Rpb24gKCkgeyAndXNlIHN0cmljdCc7XG5cbiAgICBmdW5jdGlvbiBiaW5kKGZuLCBjb250ZXh0KSB7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoYSkge1xuICAgICAgICAgICAgdmFyIGwgPSBhcmd1bWVudHMubGVuZ3RoO1xuICAgICAgICAgICAgcmV0dXJuIGwgPyBsID4gMSA/IGZuLmFwcGx5KGNvbnRleHQsIGFyZ3VtZW50cykgOiBmbi5jYWxsKGNvbnRleHQsIGEpIDogZm4uY2FsbChjb250ZXh0KTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgcmVmID0gT2JqZWN0LnByb3RvdHlwZTtcbiAgICB2YXIgaGFzT3duUHJvcGVydHkgPSByZWYuaGFzT3duUHJvcGVydHk7XG5cbiAgICBmdW5jdGlvbiBoYXNPd24ob2JqLCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIGhhc093blByb3BlcnR5LmNhbGwob2JqLCBrZXkpO1xuICAgIH1cblxuICAgIHZhciBoeXBoZW5hdGVDYWNoZSA9IHt9O1xuICAgIHZhciBoeXBoZW5hdGVSZSA9IC8oW2EtelxcZF0pKFtBLVpdKS9nO1xuXG4gICAgZnVuY3Rpb24gaHlwaGVuYXRlKHN0cikge1xuXG4gICAgICAgIGlmICghKHN0ciBpbiBoeXBoZW5hdGVDYWNoZSkpIHtcbiAgICAgICAgICAgIGh5cGhlbmF0ZUNhY2hlW3N0cl0gPSBzdHJcbiAgICAgICAgICAgICAgICAucmVwbGFjZShoeXBoZW5hdGVSZSwgJyQxLSQyJylcbiAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBoeXBoZW5hdGVDYWNoZVtzdHJdO1xuICAgIH1cblxuICAgIHZhciBjYW1lbGl6ZVJlID0gLy0oXFx3KS9nO1xuXG4gICAgZnVuY3Rpb24gY2FtZWxpemUoc3RyKSB7XG4gICAgICAgIHJldHVybiBzdHIucmVwbGFjZShjYW1lbGl6ZVJlLCB0b1VwcGVyKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b1VwcGVyKF8sIGMpIHtcbiAgICAgICAgcmV0dXJuIGMgPyBjLnRvVXBwZXJDYXNlKCkgOiAnJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB1Y2ZpcnN0KHN0cikge1xuICAgICAgICByZXR1cm4gc3RyLmxlbmd0aCA/IHRvVXBwZXIobnVsbCwgc3RyLmNoYXJBdCgwKSkgKyBzdHIuc2xpY2UoMSkgOiAnJztcbiAgICB9XG5cbiAgICB2YXIgc3RyUHJvdG90eXBlID0gU3RyaW5nLnByb3RvdHlwZTtcbiAgICB2YXIgc3RhcnRzV2l0aEZuID0gc3RyUHJvdG90eXBlLnN0YXJ0c1dpdGggfHwgZnVuY3Rpb24gKHNlYXJjaCkgeyByZXR1cm4gdGhpcy5sYXN0SW5kZXhPZihzZWFyY2gsIDApID09PSAwOyB9O1xuXG4gICAgZnVuY3Rpb24gc3RhcnRzV2l0aChzdHIsIHNlYXJjaCkge1xuICAgICAgICByZXR1cm4gc3RhcnRzV2l0aEZuLmNhbGwoc3RyLCBzZWFyY2gpO1xuICAgIH1cblxuICAgIHZhciBlbmRzV2l0aEZuID0gc3RyUHJvdG90eXBlLmVuZHNXaXRoIHx8IGZ1bmN0aW9uIChzZWFyY2gpIHsgcmV0dXJuIHRoaXMuc3Vic3RyKC1zZWFyY2gubGVuZ3RoKSA9PT0gc2VhcmNoOyB9O1xuXG4gICAgZnVuY3Rpb24gZW5kc1dpdGgoc3RyLCBzZWFyY2gpIHtcbiAgICAgICAgcmV0dXJuIGVuZHNXaXRoRm4uY2FsbChzdHIsIHNlYXJjaCk7XG4gICAgfVxuXG4gICAgdmFyIGluY2x1ZGVzRm4gPSBmdW5jdGlvbiAoc2VhcmNoKSB7IHJldHVybiB+dGhpcy5pbmRleE9mKHNlYXJjaCk7IH07XG4gICAgdmFyIGluY2x1ZGVzU3RyID0gc3RyUHJvdG90eXBlLmluY2x1ZGVzIHx8IGluY2x1ZGVzRm47XG4gICAgdmFyIGluY2x1ZGVzQXJyYXkgPSBBcnJheS5wcm90b3R5cGUuaW5jbHVkZXMgfHwgaW5jbHVkZXNGbjtcblxuICAgIGZ1bmN0aW9uIGluY2x1ZGVzKG9iaiwgc2VhcmNoKSB7XG4gICAgICAgIHJldHVybiBvYmogJiYgKGlzU3RyaW5nKG9iaikgPyBpbmNsdWRlc1N0ciA6IGluY2x1ZGVzQXJyYXkpLmNhbGwob2JqLCBzZWFyY2gpO1xuICAgIH1cblxuICAgIHZhciBpc0FycmF5ID0gQXJyYXkuaXNBcnJheTtcblxuICAgIGZ1bmN0aW9uIGlzRnVuY3Rpb24ob2JqKSB7XG4gICAgICAgIHJldHVybiB0eXBlb2Ygb2JqID09PSAnZnVuY3Rpb24nO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzT2JqZWN0KG9iaikge1xuICAgICAgICByZXR1cm4gb2JqICE9PSBudWxsICYmIHR5cGVvZiBvYmogPT09ICdvYmplY3QnO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzUGxhaW5PYmplY3Qob2JqKSB7XG4gICAgICAgIHJldHVybiBpc09iamVjdChvYmopICYmIE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopID09PSBPYmplY3QucHJvdG90eXBlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzV2luZG93KG9iaikge1xuICAgICAgICByZXR1cm4gaXNPYmplY3Qob2JqKSAmJiBvYmogPT09IG9iai53aW5kb3c7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNEb2N1bWVudChvYmopIHtcbiAgICAgICAgcmV0dXJuIGlzT2JqZWN0KG9iaikgJiYgb2JqLm5vZGVUeXBlID09PSA5O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzSlF1ZXJ5KG9iaikge1xuICAgICAgICByZXR1cm4gaXNPYmplY3Qob2JqKSAmJiAhIW9iai5qcXVlcnk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNOb2RlKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQgaW5zdGFuY2VvZiBOb2RlIHx8IGlzT2JqZWN0KGVsZW1lbnQpICYmIGVsZW1lbnQubm9kZVR5cGUgPT09IDE7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNOb2RlQ29sbGVjdGlvbihlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50IGluc3RhbmNlb2YgTm9kZUxpc3QgfHwgZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxDb2xsZWN0aW9uO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbic7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNTdHJpbmcodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZyc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNOdW1iZXIodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcic7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNOdW1lcmljKHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpc051bWJlcih2YWx1ZSkgfHwgaXNTdHJpbmcodmFsdWUpICYmICFpc05hTih2YWx1ZSAtIHBhcnNlRmxvYXQodmFsdWUpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWx1ZSkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHZvaWQgMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0Jvb2xlYW4odmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIGlzQm9vbGVhbih2YWx1ZSlcbiAgICAgICAgICAgID8gdmFsdWVcbiAgICAgICAgICAgIDogdmFsdWUgPT09ICd0cnVlJyB8fCB2YWx1ZSA9PT0gJzEnIHx8IHZhbHVlID09PSAnJ1xuICAgICAgICAgICAgICAgID8gdHJ1ZVxuICAgICAgICAgICAgICAgIDogdmFsdWUgPT09ICdmYWxzZScgfHwgdmFsdWUgPT09ICcwJ1xuICAgICAgICAgICAgICAgICAgICA/IGZhbHNlXG4gICAgICAgICAgICAgICAgICAgIDogdmFsdWU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9OdW1iZXIodmFsdWUpIHtcbiAgICAgICAgdmFyIG51bWJlciA9IE51bWJlcih2YWx1ZSk7XG4gICAgICAgIHJldHVybiAhaXNOYU4obnVtYmVyKSA/IG51bWJlciA6IGZhbHNlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvRmxvYXQodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQodmFsdWUpIHx8IDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9Ob2RlKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGlzTm9kZShlbGVtZW50KSB8fCBpc1dpbmRvdyhlbGVtZW50KSB8fCBpc0RvY3VtZW50KGVsZW1lbnQpXG4gICAgICAgICAgICA/IGVsZW1lbnRcbiAgICAgICAgICAgIDogaXNOb2RlQ29sbGVjdGlvbihlbGVtZW50KSB8fCBpc0pRdWVyeShlbGVtZW50KVxuICAgICAgICAgICAgICAgID8gZWxlbWVudFswXVxuICAgICAgICAgICAgICAgIDogaXNBcnJheShlbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICA/IHRvTm9kZShlbGVtZW50WzBdKVxuICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgfVxuXG4gICAgdmFyIGFycmF5UHJvdG8gPSBBcnJheS5wcm90b3R5cGU7XG4gICAgZnVuY3Rpb24gdG9Ob2RlcyhlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBpc05vZGUoZWxlbWVudClcbiAgICAgICAgICAgID8gW2VsZW1lbnRdXG4gICAgICAgICAgICA6IGlzTm9kZUNvbGxlY3Rpb24oZWxlbWVudClcbiAgICAgICAgICAgICAgICA/IGFycmF5UHJvdG8uc2xpY2UuY2FsbChlbGVtZW50KVxuICAgICAgICAgICAgICAgIDogaXNBcnJheShlbGVtZW50KVxuICAgICAgICAgICAgICAgICAgICA/IGVsZW1lbnQubWFwKHRvTm9kZSkuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgICAgIDogaXNKUXVlcnkoZWxlbWVudClcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZWxlbWVudC50b0FycmF5KClcbiAgICAgICAgICAgICAgICAgICAgICAgIDogW107XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9MaXN0KHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpc0FycmF5KHZhbHVlKVxuICAgICAgICAgICAgPyB2YWx1ZVxuICAgICAgICAgICAgOiBpc1N0cmluZyh2YWx1ZSlcbiAgICAgICAgICAgICAgICA/IHZhbHVlLnNwbGl0KC8sKD8hW14oXSpcXCkpLykubWFwKGZ1bmN0aW9uICh2YWx1ZSkgeyByZXR1cm4gaXNOdW1lcmljKHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICA/IHRvTnVtYmVyKHZhbHVlKVxuICAgICAgICAgICAgICAgICAgICA6IHRvQm9vbGVhbih2YWx1ZS50cmltKCkpOyB9KVxuICAgICAgICAgICAgICAgIDogW3ZhbHVlXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b01zKHRpbWUpIHtcbiAgICAgICAgcmV0dXJuICF0aW1lXG4gICAgICAgICAgICA/IDBcbiAgICAgICAgICAgIDogZW5kc1dpdGgodGltZSwgJ21zJylcbiAgICAgICAgICAgICAgICA/IHRvRmxvYXQodGltZSlcbiAgICAgICAgICAgICAgICA6IHRvRmxvYXQodGltZSkgKiAxMDAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN3YXAodmFsdWUsIGEsIGIpIHtcbiAgICAgICAgcmV0dXJuIHZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cCgoYSArIFwifFwiICsgYiksICdtZycpLCBmdW5jdGlvbiAobWF0Y2gpIHtcbiAgICAgICAgICAgIHJldHVybiBtYXRjaCA9PT0gYSA/IGIgOiBhO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB2YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbiAodGFyZ2V0KSB7XG4gICAgICAgIHZhciBhcmdzID0gW10sIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGggLSAxO1xuICAgICAgICB3aGlsZSAoIGxlbi0tID4gMCApIGFyZ3NbIGxlbiBdID0gYXJndW1lbnRzWyBsZW4gKyAxIF07XG5cbiAgICAgICAgdGFyZ2V0ID0gT2JqZWN0KHRhcmdldCk7XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgdmFyIHNvdXJjZSA9IGFyZ3NbaV07XG4gICAgICAgICAgICBpZiAoc291cmNlICE9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIHNvdXJjZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaGFzT3duKHNvdXJjZSwga2V5KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0W2tleV0gPSBzb3VyY2Vba2V5XTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGFyZ2V0O1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBlYWNoKG9iaiwgY2IpIHtcbiAgICAgICAgZm9yICh2YXIga2V5IGluIG9iaikge1xuICAgICAgICAgICAgY2IuY2FsbChvYmpba2V5XSwgb2JqW2tleV0sIGtleSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzb3J0QnkoY29sbGVjdGlvbiwgcHJvcCkge1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbi5zb3J0KGZ1bmN0aW9uIChhLCBiKSB7IHJldHVybiBhW3Byb3BdID4gYltwcm9wXVxuICAgICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICAgIDogYltwcm9wXSA+IGFbcHJvcF1cbiAgICAgICAgICAgICAgICAgICAgPyAtMVxuICAgICAgICAgICAgICAgICAgICA6IDA7IH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjbGFtcChudW1iZXIsIG1pbiwgbWF4KSB7XG4gICAgICAgIGlmICggbWluID09PSB2b2lkIDAgKSBtaW4gPSAwO1xuICAgICAgICBpZiAoIG1heCA9PT0gdm9pZCAwICkgbWF4ID0gMTtcblxuICAgICAgICByZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgobnVtYmVyLCBtaW4pLCBtYXgpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG5vb3AoKSB7fVxuXG4gICAgZnVuY3Rpb24gaW50ZXJzZWN0UmVjdChyMSwgcjIpIHtcbiAgICAgICAgcmV0dXJuIHIxLmxlZnQgPD0gcjIucmlnaHQgJiZcbiAgICAgICAgICAgIHIyLmxlZnQgPD0gcjEucmlnaHQgJiZcbiAgICAgICAgICAgIHIxLnRvcCA8PSByMi5ib3R0b20gJiZcbiAgICAgICAgICAgIHIyLnRvcCA8PSByMS5ib3R0b207XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcG9pbnRJblJlY3QocG9pbnQsIHJlY3QpIHtcbiAgICAgICAgcmV0dXJuIGludGVyc2VjdFJlY3Qoe3RvcDogcG9pbnQueSwgYm90dG9tOiBwb2ludC55LCBsZWZ0OiBwb2ludC54LCByaWdodDogcG9pbnQueH0sIHJlY3QpO1xuICAgIH1cblxuICAgIHZhciBEaW1lbnNpb25zID0ge1xuXG4gICAgICAgIHJhdGlvOiBmdW5jdGlvbihkaW1lbnNpb25zLCBwcm9wLCB2YWx1ZSkge1xuICAgICAgICAgICAgdmFyIG9iajtcblxuXG4gICAgICAgICAgICB2YXIgYVByb3AgPSBwcm9wID09PSAnd2lkdGgnID8gJ2hlaWdodCcgOiAnd2lkdGgnO1xuXG4gICAgICAgICAgICByZXR1cm4gKCBvYmogPSB7fSwgb2JqW2FQcm9wXSA9IE1hdGgucm91bmQodmFsdWUgKiBkaW1lbnNpb25zW2FQcm9wXSAvIGRpbWVuc2lvbnNbcHJvcF0pLCBvYmpbcHJvcF0gPSB2YWx1ZSwgb2JqICk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY29udGFpbjogZnVuY3Rpb24oZGltZW5zaW9ucywgbWF4RGltZW5zaW9ucykge1xuICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgICAgICAgICAgIGRpbWVuc2lvbnMgPSBhc3NpZ24oe30sIGRpbWVuc2lvbnMpO1xuXG4gICAgICAgICAgICBlYWNoKGRpbWVuc2lvbnMsIGZ1bmN0aW9uIChfLCBwcm9wKSB7IHJldHVybiBkaW1lbnNpb25zID0gZGltZW5zaW9uc1twcm9wXSA+IG1heERpbWVuc2lvbnNbcHJvcF1cbiAgICAgICAgICAgICAgICA/IHRoaXMkMS5yYXRpbyhkaW1lbnNpb25zLCBwcm9wLCBtYXhEaW1lbnNpb25zW3Byb3BdKVxuICAgICAgICAgICAgICAgIDogZGltZW5zaW9uczsgfVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuIGRpbWVuc2lvbnM7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY292ZXI6IGZ1bmN0aW9uKGRpbWVuc2lvbnMsIG1heERpbWVuc2lvbnMpIHtcbiAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgICAgICAgICBkaW1lbnNpb25zID0gdGhpcy5jb250YWluKGRpbWVuc2lvbnMsIG1heERpbWVuc2lvbnMpO1xuXG4gICAgICAgICAgICBlYWNoKGRpbWVuc2lvbnMsIGZ1bmN0aW9uIChfLCBwcm9wKSB7IHJldHVybiBkaW1lbnNpb25zID0gZGltZW5zaW9uc1twcm9wXSA8IG1heERpbWVuc2lvbnNbcHJvcF1cbiAgICAgICAgICAgICAgICA/IHRoaXMkMS5yYXRpbyhkaW1lbnNpb25zLCBwcm9wLCBtYXhEaW1lbnNpb25zW3Byb3BdKVxuICAgICAgICAgICAgICAgIDogZGltZW5zaW9uczsgfVxuICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgcmV0dXJuIGRpbWVuc2lvbnM7XG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBhdHRyKGVsZW1lbnQsIG5hbWUsIHZhbHVlKSB7XG5cbiAgICAgICAgaWYgKGlzT2JqZWN0KG5hbWUpKSB7XG4gICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gbmFtZSkge1xuICAgICAgICAgICAgICAgIGF0dHIoZWxlbWVudCwga2V5LCBuYW1lW2tleV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbHVlKSkge1xuICAgICAgICAgICAgZWxlbWVudCA9IHRvTm9kZShlbGVtZW50KTtcbiAgICAgICAgICAgIHJldHVybiBlbGVtZW50ICYmIGVsZW1lbnQuZ2V0QXR0cmlidXRlKG5hbWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdG9Ob2RlcyhlbGVtZW50KS5mb3JFYWNoKGZ1bmN0aW9uIChlbGVtZW50KSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNGdW5jdGlvbih2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5jYWxsKGVsZW1lbnQsIGF0dHIoZWxlbWVudCwgbmFtZSkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVBdHRyKGVsZW1lbnQsIG5hbWUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKG5hbWUsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaGFzQXR0cihlbGVtZW50LCBuYW1lKSB7XG4gICAgICAgIHJldHVybiB0b05vZGVzKGVsZW1lbnQpLnNvbWUoZnVuY3Rpb24gKGVsZW1lbnQpIHsgcmV0dXJuIGVsZW1lbnQuaGFzQXR0cmlidXRlKG5hbWUpOyB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW1vdmVBdHRyKGVsZW1lbnQsIG5hbWUpIHtcbiAgICAgICAgZWxlbWVudCA9IHRvTm9kZXMoZWxlbWVudCk7XG4gICAgICAgIG5hbWUuc3BsaXQoJyAnKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7IHJldHVybiBlbGVtZW50LmZvckVhY2goZnVuY3Rpb24gKGVsZW1lbnQpIHsgcmV0dXJuIGVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKG5hbWUpOyB9XG4gICAgICAgICAgICApOyB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZmlsdGVyQXR0cihlbGVtZW50LCBhdHRyaWJ1dGUsIHBhdHRlcm4sIHJlcGxhY2VtZW50KSB7XG4gICAgICAgIGF0dHIoZWxlbWVudCwgYXR0cmlidXRlLCBmdW5jdGlvbiAodmFsdWUpIHsgcmV0dXJuIHZhbHVlID8gdmFsdWUucmVwbGFjZShwYXR0ZXJuLCByZXBsYWNlbWVudCkgOiB2YWx1ZTsgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZGF0YShlbGVtZW50LCBhdHRyaWJ1dGUpIHtcbiAgICAgICAgZm9yICh2YXIgaSA9IDAsIGF0dHJzID0gW2F0dHJpYnV0ZSwgKFwiZGF0YS1cIiArIGF0dHJpYnV0ZSldOyBpIDwgYXR0cnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChoYXNBdHRyKGVsZW1lbnQsIGF0dHJzW2ldKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhdHRyKGVsZW1lbnQsIGF0dHJzW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHF1ZXJ5KHNlbGVjdG9yLCBjb250ZXh0KSB7XG4gICAgICAgIHJldHVybiB0b05vZGUoc2VsZWN0b3IpIHx8IGZpbmQoc2VsZWN0b3IsIGlzQ29udGV4dFNlbGVjdG9yKHNlbGVjdG9yKSA/IGNvbnRleHQgOiBkb2N1bWVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcXVlcnlBbGwoc2VsZWN0b3IsIGNvbnRleHQpIHtcbiAgICAgICAgdmFyIG5vZGVzID0gdG9Ob2RlcyhzZWxlY3Rvcik7XG4gICAgICAgIHJldHVybiBub2Rlcy5sZW5ndGggJiYgbm9kZXMgfHwgZmluZEFsbChzZWxlY3RvciwgaXNDb250ZXh0U2VsZWN0b3Ioc2VsZWN0b3IpID8gY29udGV4dCA6IGRvY3VtZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmaW5kKHNlbGVjdG9yLCBjb250ZXh0KSB7XG4gICAgICAgIHJldHVybiB0b05vZGUoX3F1ZXJ5KHNlbGVjdG9yLCBjb250ZXh0LCAncXVlcnlTZWxlY3RvcicpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBmaW5kQWxsKHNlbGVjdG9yLCBjb250ZXh0KSB7XG4gICAgICAgIHJldHVybiB0b05vZGVzKF9xdWVyeShzZWxlY3RvciwgY29udGV4dCwgJ3F1ZXJ5U2VsZWN0b3JBbGwnKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gX3F1ZXJ5KHNlbGVjdG9yLCBjb250ZXh0LCBxdWVyeUZuKSB7XG4gICAgICAgIGlmICggY29udGV4dCA9PT0gdm9pZCAwICkgY29udGV4dCA9IGRvY3VtZW50O1xuXG5cbiAgICAgICAgaWYgKCFzZWxlY3RvciB8fCAhaXNTdHJpbmcoc2VsZWN0b3IpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHNlbGVjdG9yID0gc2VsZWN0b3IucmVwbGFjZShjb250ZXh0U2FuaXRpemVSZSwgJyQxIConKTtcblxuICAgICAgICB2YXIgcmVtb3ZlcztcblxuICAgICAgICBpZiAoaXNDb250ZXh0U2VsZWN0b3Ioc2VsZWN0b3IpKSB7XG5cbiAgICAgICAgICAgIHJlbW92ZXMgPSBbXTtcblxuICAgICAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3Rvci5zcGxpdCgnLCcpLm1hcChmdW5jdGlvbiAoc2VsZWN0b3IsIGkpIHtcblxuICAgICAgICAgICAgICAgIHZhciBjdHggPSBjb250ZXh0O1xuXG4gICAgICAgICAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3Rvci50cmltKCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoc2VsZWN0b3JbMF0gPT09ICchJykge1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciBzZWxlY3RvcnMgPSBzZWxlY3Rvci5zdWJzdHIoMSkudHJpbSgpLnNwbGl0KCcgJyk7XG4gICAgICAgICAgICAgICAgICAgIGN0eCA9IGNsb3Nlc3QoY29udGV4dC5wYXJlbnROb2RlLCBzZWxlY3RvcnNbMF0pO1xuICAgICAgICAgICAgICAgICAgICBzZWxlY3RvciA9IHNlbGVjdG9ycy5zbGljZSgxKS5qb2luKCcgJykudHJpbSgpO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHNlbGVjdG9yWzBdID09PSAnLScpIHtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgc2VsZWN0b3JzJDEgPSBzZWxlY3Rvci5zdWJzdHIoMSkudHJpbSgpLnNwbGl0KCcgJyk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwcmV2ID0gKGN0eCB8fCBjb250ZXh0KS5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgICAgICAgICAgICAgICAgICBjdHggPSBtYXRjaGVzKHByZXYsIHNlbGVjdG9yLnN1YnN0cigxKSkgPyBwcmV2IDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0b3IgPSBzZWxlY3RvcnMkMS5zbGljZSgxKS5qb2luKCcgJyk7XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWN0eCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWN0eC5pZCkge1xuICAgICAgICAgICAgICAgICAgICBjdHguaWQgPSBcInVrLVwiICsgKERhdGUubm93KCkpICsgaTtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3Zlcy5wdXNoKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlbW92ZUF0dHIoY3R4LCAnaWQnKTsgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcIiNcIiArIChlc2NhcGUoY3R4LmlkKSkgKyBcIiBcIiArIHNlbGVjdG9yKTtcblxuICAgICAgICAgICAgfSkuZmlsdGVyKEJvb2xlYW4pLmpvaW4oJywnKTtcblxuICAgICAgICAgICAgY29udGV4dCA9IGRvY3VtZW50O1xuXG4gICAgICAgIH1cblxuICAgICAgICB0cnkge1xuXG4gICAgICAgICAgICByZXR1cm4gY29udGV4dFtxdWVyeUZuXShzZWxlY3Rvcik7XG5cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcblxuICAgICAgICB9IGZpbmFsbHkge1xuXG4gICAgICAgICAgICByZW1vdmVzICYmIHJlbW92ZXMuZm9yRWFjaChmdW5jdGlvbiAocmVtb3ZlKSB7IHJldHVybiByZW1vdmUoKTsgfSk7XG5cbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgdmFyIGNvbnRleHRTZWxlY3RvclJlID0gLyhefCwpXFxzKlshPit+LV0vO1xuICAgIHZhciBjb250ZXh0U2FuaXRpemVSZSA9IC8oWyE+K34tXSkoPz1cXHMrWyE+K34tXXxcXHMqJCkvZztcblxuICAgIGZ1bmN0aW9uIGlzQ29udGV4dFNlbGVjdG9yKHNlbGVjdG9yKSB7XG4gICAgICAgIHJldHVybiBpc1N0cmluZyhzZWxlY3RvcikgJiYgc2VsZWN0b3IubWF0Y2goY29udGV4dFNlbGVjdG9yUmUpO1xuICAgIH1cblxuICAgIHZhciBlbFByb3RvID0gRWxlbWVudC5wcm90b3R5cGU7XG4gICAgdmFyIG1hdGNoZXNGbiA9IGVsUHJvdG8ubWF0Y2hlcyB8fCBlbFByb3RvLndlYmtpdE1hdGNoZXNTZWxlY3RvciB8fCBlbFByb3RvLm1zTWF0Y2hlc1NlbGVjdG9yO1xuXG4gICAgZnVuY3Rpb24gbWF0Y2hlcyhlbGVtZW50LCBzZWxlY3Rvcikge1xuICAgICAgICByZXR1cm4gdG9Ob2RlcyhlbGVtZW50KS5zb21lKGZ1bmN0aW9uIChlbGVtZW50KSB7IHJldHVybiBtYXRjaGVzRm4uY2FsbChlbGVtZW50LCBzZWxlY3Rvcik7IH0pO1xuICAgIH1cblxuICAgIHZhciBjbG9zZXN0Rm4gPSBlbFByb3RvLmNsb3Nlc3QgfHwgZnVuY3Rpb24gKHNlbGVjdG9yKSB7XG4gICAgICAgIHZhciBhbmNlc3RvciA9IHRoaXM7XG5cbiAgICAgICAgZG8ge1xuXG4gICAgICAgICAgICBpZiAobWF0Y2hlcyhhbmNlc3Rvciwgc2VsZWN0b3IpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFuY2VzdG9yO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBhbmNlc3RvciA9IGFuY2VzdG9yLnBhcmVudE5vZGU7XG5cbiAgICAgICAgfSB3aGlsZSAoYW5jZXN0b3IgJiYgYW5jZXN0b3Iubm9kZVR5cGUgPT09IDEpO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBjbG9zZXN0KGVsZW1lbnQsIHNlbGVjdG9yKSB7XG5cbiAgICAgICAgaWYgKHN0YXJ0c1dpdGgoc2VsZWN0b3IsICc+JykpIHtcbiAgICAgICAgICAgIHNlbGVjdG9yID0gc2VsZWN0b3Iuc2xpY2UoMSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXNOb2RlKGVsZW1lbnQpXG4gICAgICAgICAgICA/IGVsZW1lbnQucGFyZW50Tm9kZSAmJiBjbG9zZXN0Rm4uY2FsbChlbGVtZW50LCBzZWxlY3RvcilcbiAgICAgICAgICAgIDogdG9Ob2RlcyhlbGVtZW50KS5tYXAoZnVuY3Rpb24gKGVsZW1lbnQpIHsgcmV0dXJuIGVsZW1lbnQucGFyZW50Tm9kZSAmJiBjbG9zZXN0Rm4uY2FsbChlbGVtZW50LCBzZWxlY3Rvcik7IH0pLmZpbHRlcihCb29sZWFuKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBwYXJlbnRzKGVsZW1lbnQsIHNlbGVjdG9yKSB7XG4gICAgICAgIHZhciBlbGVtZW50cyA9IFtdO1xuICAgICAgICB2YXIgcGFyZW50ID0gdG9Ob2RlKGVsZW1lbnQpLnBhcmVudE5vZGU7XG5cbiAgICAgICAgd2hpbGUgKHBhcmVudCAmJiBwYXJlbnQubm9kZVR5cGUgPT09IDEpIHtcblxuICAgICAgICAgICAgaWYgKG1hdGNoZXMocGFyZW50LCBzZWxlY3RvcikpIHtcbiAgICAgICAgICAgICAgICBlbGVtZW50cy5wdXNoKHBhcmVudCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5wYXJlbnROb2RlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGVsZW1lbnRzO1xuICAgIH1cblxuICAgIHZhciBlc2NhcGVGbiA9IHdpbmRvdy5DU1MgJiYgQ1NTLmVzY2FwZSB8fCBmdW5jdGlvbiAoY3NzKSB7IHJldHVybiBjc3MucmVwbGFjZSgvKFteXFx4N2YtXFx1RkZGRlxcdy1dKS9nLCBmdW5jdGlvbiAobWF0Y2gpIHsgcmV0dXJuIChcIlxcXFxcIiArIG1hdGNoKTsgfSk7IH07XG4gICAgZnVuY3Rpb24gZXNjYXBlKGNzcykge1xuICAgICAgICByZXR1cm4gaXNTdHJpbmcoY3NzKSA/IGVzY2FwZUZuLmNhbGwobnVsbCwgY3NzKSA6ICcnO1xuICAgIH1cblxuICAgIHZhciB2b2lkRWxlbWVudHMgPSB7XG4gICAgICAgIGFyZWE6IHRydWUsXG4gICAgICAgIGJhc2U6IHRydWUsXG4gICAgICAgIGJyOiB0cnVlLFxuICAgICAgICBjb2w6IHRydWUsXG4gICAgICAgIGVtYmVkOiB0cnVlLFxuICAgICAgICBocjogdHJ1ZSxcbiAgICAgICAgaW1nOiB0cnVlLFxuICAgICAgICBpbnB1dDogdHJ1ZSxcbiAgICAgICAga2V5Z2VuOiB0cnVlLFxuICAgICAgICBsaW5rOiB0cnVlLFxuICAgICAgICBtZW51aXRlbTogdHJ1ZSxcbiAgICAgICAgbWV0YTogdHJ1ZSxcbiAgICAgICAgcGFyYW06IHRydWUsXG4gICAgICAgIHNvdXJjZTogdHJ1ZSxcbiAgICAgICAgdHJhY2s6IHRydWUsXG4gICAgICAgIHdicjogdHJ1ZVxuICAgIH07XG4gICAgZnVuY3Rpb24gaXNWb2lkRWxlbWVudChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0b05vZGVzKGVsZW1lbnQpLnNvbWUoZnVuY3Rpb24gKGVsZW1lbnQpIHsgcmV0dXJuIHZvaWRFbGVtZW50c1tlbGVtZW50LnRhZ05hbWUudG9Mb3dlckNhc2UoKV07IH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzVmlzaWJsZShlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0b05vZGVzKGVsZW1lbnQpLnNvbWUoZnVuY3Rpb24gKGVsZW1lbnQpIHsgcmV0dXJuIGVsZW1lbnQub2Zmc2V0V2lkdGggfHwgZWxlbWVudC5vZmZzZXRIZWlnaHQgfHwgZWxlbWVudC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aDsgfSk7XG4gICAgfVxuXG4gICAgdmFyIHNlbElucHV0ID0gJ2lucHV0LHNlbGVjdCx0ZXh0YXJlYSxidXR0b24nO1xuICAgIGZ1bmN0aW9uIGlzSW5wdXQoZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gdG9Ob2RlcyhlbGVtZW50KS5zb21lKGZ1bmN0aW9uIChlbGVtZW50KSB7IHJldHVybiBtYXRjaGVzKGVsZW1lbnQsIHNlbElucHV0KTsgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZmlsdGVyKGVsZW1lbnQsIHNlbGVjdG9yKSB7XG4gICAgICAgIHJldHVybiB0b05vZGVzKGVsZW1lbnQpLmZpbHRlcihmdW5jdGlvbiAoZWxlbWVudCkgeyByZXR1cm4gbWF0Y2hlcyhlbGVtZW50LCBzZWxlY3Rvcik7IH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdpdGhpbihlbGVtZW50LCBzZWxlY3Rvcikge1xuICAgICAgICByZXR1cm4gIWlzU3RyaW5nKHNlbGVjdG9yKVxuICAgICAgICAgICAgPyBlbGVtZW50ID09PSBzZWxlY3RvciB8fCAoaXNEb2N1bWVudChzZWxlY3RvcilcbiAgICAgICAgICAgICAgICA/IHNlbGVjdG9yLmRvY3VtZW50RWxlbWVudFxuICAgICAgICAgICAgICAgIDogdG9Ob2RlKHNlbGVjdG9yKSkuY29udGFpbnModG9Ob2RlKGVsZW1lbnQpKSAvLyBJRSAxMSBkb2N1bWVudCBkb2VzIG5vdCBpbXBsZW1lbnQgY29udGFpbnNcbiAgICAgICAgICAgIDogbWF0Y2hlcyhlbGVtZW50LCBzZWxlY3RvcikgfHwgY2xvc2VzdChlbGVtZW50LCBzZWxlY3Rvcik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gb24oKSB7XG4gICAgICAgIHZhciBhcmdzID0gW10sIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGg7XG4gICAgICAgIHdoaWxlICggbGVuLS0gKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuIF07XG5cblxuICAgICAgICB2YXIgcmVmID0gZ2V0QXJncyhhcmdzKTtcbiAgICAgICAgdmFyIHRhcmdldCA9IHJlZlswXTtcbiAgICAgICAgdmFyIHR5cGUgPSByZWZbMV07XG4gICAgICAgIHZhciBzZWxlY3RvciA9IHJlZlsyXTtcbiAgICAgICAgdmFyIGxpc3RlbmVyID0gcmVmWzNdO1xuICAgICAgICB2YXIgdXNlQ2FwdHVyZSA9IHJlZls0XTtcblxuICAgICAgICB0YXJnZXQgPSB0b0V2ZW50VGFyZ2V0KHRhcmdldCk7XG5cbiAgICAgICAgaWYgKHNlbGVjdG9yKSB7XG4gICAgICAgICAgICBsaXN0ZW5lciA9IGRlbGVnYXRlKHRhcmdldCwgc2VsZWN0b3IsIGxpc3RlbmVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChsaXN0ZW5lci5sZW5ndGggPiAxKSB7XG4gICAgICAgICAgICBsaXN0ZW5lciA9IGRldGFpbChsaXN0ZW5lcik7XG4gICAgICAgIH1cblxuICAgICAgICB0eXBlLnNwbGl0KCcgJykuZm9yRWFjaChmdW5jdGlvbiAodHlwZSkgeyByZXR1cm4gdGFyZ2V0ICYmIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKTsgfSk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoKSB7IHJldHVybiBvZmYodGFyZ2V0LCB0eXBlLCBsaXN0ZW5lciwgdXNlQ2FwdHVyZSk7IH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gb2ZmKHRhcmdldCwgdHlwZSwgbGlzdGVuZXIsIHVzZUNhcHR1cmUpIHtcbiAgICAgICAgaWYgKCB1c2VDYXB0dXJlID09PSB2b2lkIDAgKSB1c2VDYXB0dXJlID0gZmFsc2U7XG5cbiAgICAgICAgdGFyZ2V0ID0gdG9FdmVudFRhcmdldCh0YXJnZXQpO1xuICAgICAgICB0YXJnZXQgJiYgdHlwZS5zcGxpdCgnICcpLmZvckVhY2goZnVuY3Rpb24gKHR5cGUpIHsgcmV0dXJuIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGxpc3RlbmVyLCB1c2VDYXB0dXJlKTsgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gb25jZSgpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aDtcbiAgICAgICAgd2hpbGUgKCBsZW4tLSApIGFyZ3NbIGxlbiBdID0gYXJndW1lbnRzWyBsZW4gXTtcblxuXG4gICAgICAgIHZhciByZWYgPSBnZXRBcmdzKGFyZ3MpO1xuICAgICAgICB2YXIgZWxlbWVudCA9IHJlZlswXTtcbiAgICAgICAgdmFyIHR5cGUgPSByZWZbMV07XG4gICAgICAgIHZhciBzZWxlY3RvciA9IHJlZlsyXTtcbiAgICAgICAgdmFyIGxpc3RlbmVyID0gcmVmWzNdO1xuICAgICAgICB2YXIgdXNlQ2FwdHVyZSA9IHJlZls0XTtcbiAgICAgICAgdmFyIGNvbmRpdGlvbiA9IHJlZls1XTtcbiAgICAgICAgdmFyIG9mZiA9IG9uKGVsZW1lbnQsIHR5cGUsIHNlbGVjdG9yLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdmFyIHJlc3VsdCA9ICFjb25kaXRpb24gfHwgY29uZGl0aW9uKGUpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgICAgICAgIG9mZigpO1xuICAgICAgICAgICAgICAgIGxpc3RlbmVyKGUsIHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIHVzZUNhcHR1cmUpO1xuXG4gICAgICAgIHJldHVybiBvZmY7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdHJpZ2dlcih0YXJnZXQsIGV2ZW50LCBkZXRhaWwpIHtcbiAgICAgICAgcmV0dXJuIHRvRXZlbnRUYXJnZXRzKHRhcmdldCkucmVkdWNlKGZ1bmN0aW9uIChub3RDYW5jZWxlZCwgdGFyZ2V0KSB7IHJldHVybiBub3RDYW5jZWxlZCAmJiB0YXJnZXQuZGlzcGF0Y2hFdmVudChjcmVhdGVFdmVudChldmVudCwgdHJ1ZSwgdHJ1ZSwgZGV0YWlsKSk7IH1cbiAgICAgICAgICAgICwgdHJ1ZSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY3JlYXRlRXZlbnQoZSwgYnViYmxlcywgY2FuY2VsYWJsZSwgZGV0YWlsKSB7XG4gICAgICAgIGlmICggYnViYmxlcyA9PT0gdm9pZCAwICkgYnViYmxlcyA9IHRydWU7XG4gICAgICAgIGlmICggY2FuY2VsYWJsZSA9PT0gdm9pZCAwICkgY2FuY2VsYWJsZSA9IGZhbHNlO1xuXG4gICAgICAgIGlmIChpc1N0cmluZyhlKSkge1xuICAgICAgICAgICAgdmFyIGV2ZW50ID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0N1c3RvbUV2ZW50Jyk7IC8vIElFIDExXG4gICAgICAgICAgICBldmVudC5pbml0Q3VzdG9tRXZlbnQoZSwgYnViYmxlcywgY2FuY2VsYWJsZSwgZGV0YWlsKTtcbiAgICAgICAgICAgIGUgPSBldmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldEFyZ3MoYXJncykge1xuXG4gICAgICAgIGlmIChpc1N0cmluZyhhcmdzWzBdKSkge1xuICAgICAgICAgICAgYXJnc1swXSA9IGZpbmQoYXJnc1swXSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNGdW5jdGlvbihhcmdzWzJdKSkge1xuICAgICAgICAgICAgYXJncy5zcGxpY2UoMiwgMCwgZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhcmdzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRlbGVnYXRlKGVsZW1lbnQsIHNlbGVjdG9yLCBsaXN0ZW5lcikge1xuICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGUpIHtcblxuICAgICAgICAgICAgdmFyIHRhcmdldCA9IGUudGFyZ2V0O1xuICAgICAgICAgICAgdmFyIGN1cnJlbnQgPSBzZWxlY3RvclswXSA9PT0gJz4nXG4gICAgICAgICAgICAgICAgPyBmaW5kQWxsKHNlbGVjdG9yLCBlbGVtZW50KS5yZXZlcnNlKCkuZmlsdGVyKGZ1bmN0aW9uIChlbGVtZW50KSB7IHJldHVybiB3aXRoaW4odGFyZ2V0LCBlbGVtZW50KTsgfSlbMF1cbiAgICAgICAgICAgICAgICA6IGNsb3Nlc3QodGFyZ2V0LCBzZWxlY3Rvcik7XG5cbiAgICAgICAgICAgIGlmIChjdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgZS5kZWxlZ2F0ZSA9IGVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgZS5jdXJyZW50ID0gY3VycmVudDtcblxuICAgICAgICAgICAgICAgIGxpc3RlbmVyLmNhbGwodGhpcyQxLCBlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkZXRhaWwobGlzdGVuZXIpIHtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uIChlKSB7IHJldHVybiBpc0FycmF5KGUuZGV0YWlsKSA/IGxpc3RlbmVyLmFwcGx5KHZvaWQgMCwgW2VdLmNvbmNhdChlLmRldGFpbCkpIDogbGlzdGVuZXIoZSk7IH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNFdmVudFRhcmdldCh0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJuICdFdmVudFRhcmdldCcgaW4gd2luZG93XG4gICAgICAgICAgICA/IHRhcmdldCBpbnN0YW5jZW9mIEV2ZW50VGFyZ2V0XG4gICAgICAgICAgICA6IHRhcmdldCAmJiAnYWRkRXZlbnRMaXN0ZW5lcicgaW4gdGFyZ2V0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRvRXZlbnRUYXJnZXQodGFyZ2V0KSB7XG4gICAgICAgIHJldHVybiBpc0V2ZW50VGFyZ2V0KHRhcmdldCkgPyB0YXJnZXQgOiB0b05vZGUodGFyZ2V0KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b0V2ZW50VGFyZ2V0cyh0YXJnZXQpIHtcbiAgICAgICAgcmV0dXJuIGlzRXZlbnRUYXJnZXQodGFyZ2V0KVxuICAgICAgICAgICAgPyBbdGFyZ2V0XVxuICAgICAgICAgICAgOiBpc0FycmF5KHRhcmdldClcbiAgICAgICAgICAgICAgICA/IHRhcmdldC5tYXAodG9FdmVudFRhcmdldCkuZmlsdGVyKEJvb2xlYW4pXG4gICAgICAgICAgICAgICAgOiB0b05vZGVzKHRhcmdldCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcHJldmVudENsaWNrKCkge1xuXG4gICAgICAgIHZhciB0aW1lciA9IHNldFRpbWVvdXQob25jZShkb2N1bWVudCwgJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHtcblxuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgZS5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcblxuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRpbWVyKTtcblxuICAgICAgICB9LCB0cnVlKSk7XG5cbiAgICAgICAgdHJpZ2dlcihkb2N1bWVudCwgJ3RvdWNoY2FuY2VsJyk7XG5cbiAgICB9XG5cbiAgICAvKiBnbG9iYWwgc2V0SW1tZWRpYXRlICovXG5cbiAgICB2YXIgUHJvbWlzZSQxID0gJ1Byb21pc2UnIGluIHdpbmRvdyA/IHdpbmRvdy5Qcm9taXNlIDogUHJvbWlzZUZuO1xuXG4gICAgdmFyIERlZmVycmVkID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgICAgIHRoaXMucHJvbWlzZSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuICAgICAgICAgICAgdGhpcyQxLnJlamVjdCA9IHJlamVjdDtcbiAgICAgICAgICAgIHRoaXMkMS5yZXNvbHZlID0gcmVzb2x2ZTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIC8qKlxuICAgICAqIFByb21pc2VzL0ErIHBvbHlmaWxsIHYxLjEuNCAoaHR0cHM6Ly9naXRodWIuY29tL2JyYW1zdGVpbi9wcm9taXMpXG4gICAgICovXG5cbiAgICB2YXIgUkVTT0xWRUQgPSAwO1xuICAgIHZhciBSRUpFQ1RFRCA9IDE7XG4gICAgdmFyIFBFTkRJTkcgPSAyO1xuXG4gICAgdmFyIGFzeW5jID0gJ3NldEltbWVkaWF0ZScgaW4gd2luZG93ID8gc2V0SW1tZWRpYXRlIDogc2V0VGltZW91dDtcblxuICAgIGZ1bmN0aW9uIFByb21pc2VGbihleGVjdXRvcikge1xuXG4gICAgICAgIHRoaXMuc3RhdGUgPSBQRU5ESU5HO1xuICAgICAgICB0aGlzLnZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmRlZmVycmVkID0gW107XG5cbiAgICAgICAgdmFyIHByb21pc2UgPSB0aGlzO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBleGVjdXRvcihcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiAoeCkge1xuICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoeCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBmdW5jdGlvbiAocikge1xuICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChyKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICBwcm9taXNlLnJlamVjdChlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIFByb21pc2VGbi5yZWplY3QgPSBmdW5jdGlvbiAocikge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2VGbihmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICByZWplY3Qocik7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBQcm9taXNlRm4ucmVzb2x2ZSA9IGZ1bmN0aW9uICh4KSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZUZuKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHJlc29sdmUoeCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBQcm9taXNlRm4uYWxsID0gZnVuY3Rpb24gYWxsKGl0ZXJhYmxlKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZUZuKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHZhciByZXN1bHQgPSBbXTtcbiAgICAgICAgICAgIHZhciBjb3VudCA9IDA7XG5cbiAgICAgICAgICAgIGlmIChpdGVyYWJsZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZ1bmN0aW9uIHJlc29sdmVyKGkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0W2ldID0geDtcbiAgICAgICAgICAgICAgICAgICAgY291bnQgKz0gMTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoY291bnQgPT09IGl0ZXJhYmxlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShyZXN1bHQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpdGVyYWJsZS5sZW5ndGg7IGkgKz0gMSkge1xuICAgICAgICAgICAgICAgIFByb21pc2VGbi5yZXNvbHZlKGl0ZXJhYmxlW2ldKS50aGVuKHJlc29sdmVyKGkpLCByZWplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgUHJvbWlzZUZuLnJhY2UgPSBmdW5jdGlvbiByYWNlKGl0ZXJhYmxlKSB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZUZuKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaXRlcmFibGUubGVuZ3RoOyBpICs9IDEpIHtcbiAgICAgICAgICAgICAgICBQcm9taXNlRm4ucmVzb2x2ZShpdGVyYWJsZVtpXSkudGhlbihyZXNvbHZlLCByZWplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgdmFyIHAgPSBQcm9taXNlRm4ucHJvdG90eXBlO1xuXG4gICAgcC5yZXNvbHZlID0gZnVuY3Rpb24gcmVzb2x2ZSh4KSB7XG4gICAgICAgIHZhciBwcm9taXNlID0gdGhpcztcblxuICAgICAgICBpZiAocHJvbWlzZS5zdGF0ZSA9PT0gUEVORElORykge1xuICAgICAgICAgICAgaWYgKHggPT09IHByb21pc2UpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKCdQcm9taXNlIHNldHRsZWQgd2l0aCBpdHNlbGYuJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBjYWxsZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICB2YXIgdGhlbiA9IHggJiYgeC50aGVuO1xuXG4gICAgICAgICAgICAgICAgaWYgKHggIT09IG51bGwgJiYgaXNPYmplY3QoeCkgJiYgaXNGdW5jdGlvbih0aGVuKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGVuLmNhbGwoXG4gICAgICAgICAgICAgICAgICAgICAgICB4LFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlc29sdmUoeCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNhbGxlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNhbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FsbGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoIWNhbGxlZCkge1xuICAgICAgICAgICAgICAgICAgICBwcm9taXNlLnJlamVjdChlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBwcm9taXNlLnN0YXRlID0gUkVTT0xWRUQ7XG4gICAgICAgICAgICBwcm9taXNlLnZhbHVlID0geDtcbiAgICAgICAgICAgIHByb21pc2Uubm90aWZ5KCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcC5yZWplY3QgPSBmdW5jdGlvbiByZWplY3QocmVhc29uKSB7XG4gICAgICAgIHZhciBwcm9taXNlID0gdGhpcztcblxuICAgICAgICBpZiAocHJvbWlzZS5zdGF0ZSA9PT0gUEVORElORykge1xuICAgICAgICAgICAgaWYgKHJlYXNvbiA9PT0gcHJvbWlzZSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoJ1Byb21pc2Ugc2V0dGxlZCB3aXRoIGl0c2VsZi4nKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcHJvbWlzZS5zdGF0ZSA9IFJFSkVDVEVEO1xuICAgICAgICAgICAgcHJvbWlzZS52YWx1ZSA9IHJlYXNvbjtcbiAgICAgICAgICAgIHByb21pc2Uubm90aWZ5KCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcC5ub3RpZnkgPSBmdW5jdGlvbiBub3RpZnkoKSB7XG4gICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgICAgIGFzeW5jKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICh0aGlzJDEuc3RhdGUgIT09IFBFTkRJTkcpIHtcbiAgICAgICAgICAgICAgICB3aGlsZSAodGhpcyQxLmRlZmVycmVkLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVmID0gdGhpcyQxLmRlZmVycmVkLnNoaWZ0KCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBvblJlc29sdmVkID0gcmVmWzBdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgb25SZWplY3RlZCA9IHJlZlsxXTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlc29sdmUgPSByZWZbMl07XG4gICAgICAgICAgICAgICAgICAgIHZhciByZWplY3QgPSByZWZbM107XG5cbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzJDEuc3RhdGUgPT09IFJFU09MVkVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24ob25SZXNvbHZlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShvblJlc29sdmVkLmNhbGwodW5kZWZpbmVkLCB0aGlzJDEudmFsdWUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHRoaXMkMS52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzJDEuc3RhdGUgPT09IFJFSkVDVEVEKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzRnVuY3Rpb24ob25SZWplY3RlZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShvblJlamVjdGVkLmNhbGwodW5kZWZpbmVkLCB0aGlzJDEudmFsdWUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QodGhpcyQxLnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHAudGhlbiA9IGZ1bmN0aW9uIHRoZW4ob25SZXNvbHZlZCwgb25SZWplY3RlZCkge1xuICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2VGbihmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgICAgICB0aGlzJDEuZGVmZXJyZWQucHVzaChbb25SZXNvbHZlZCwgb25SZWplY3RlZCwgcmVzb2x2ZSwgcmVqZWN0XSk7XG4gICAgICAgICAgICB0aGlzJDEubm90aWZ5KCk7XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBwLmNhdGNoID0gZnVuY3Rpb24gKG9uUmVqZWN0ZWQpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGhlbih1bmRlZmluZWQsIG9uUmVqZWN0ZWQpO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBhamF4KHVybCwgb3B0aW9ucykge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG5cbiAgICAgICAgICAgIHZhciBlbnYgPSBhc3NpZ24oe1xuICAgICAgICAgICAgICAgIGRhdGE6IG51bGwsXG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgICAgICAgICBoZWFkZXJzOiB7fSxcbiAgICAgICAgICAgICAgICB4aHI6IG5ldyBYTUxIdHRwUmVxdWVzdCgpLFxuICAgICAgICAgICAgICAgIGJlZm9yZVNlbmQ6IG5vb3AsXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAnJ1xuICAgICAgICAgICAgfSwgb3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGVudi5iZWZvcmVTZW5kKGVudik7XG5cbiAgICAgICAgICAgIHZhciB4aHIgPSBlbnYueGhyO1xuXG4gICAgICAgICAgICBmb3IgKHZhciBwcm9wIGluIGVudikge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wIGluIHhocikge1xuICAgICAgICAgICAgICAgICAgICB0cnkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB4aHJbcHJvcF0gPSBlbnZbcHJvcF07XG5cbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHhoci5vcGVuKGVudi5tZXRob2QudG9VcHBlckNhc2UoKSwgdXJsKTtcblxuICAgICAgICAgICAgZm9yICh2YXIgaGVhZGVyIGluIGVudi5oZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoaGVhZGVyLCBlbnYuaGVhZGVyc1toZWFkZXJdKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgb24oeGhyLCAnbG9hZCcsIGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzID09PSAwIHx8IHhoci5zdGF0dXMgPj0gMjAwICYmIHhoci5zdGF0dXMgPCAzMDAgfHwgeGhyLnN0YXR1cyA9PT0gMzA0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoeGhyKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoYXNzaWduKEVycm9yKHhoci5zdGF0dXNUZXh0KSwge1xuICAgICAgICAgICAgICAgICAgICAgICAgeGhyOiB4aHIsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHhoci5zdGF0dXNcbiAgICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG9uKHhociwgJ2Vycm9yJywgZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVqZWN0KGFzc2lnbihFcnJvcignTmV0d29yayBFcnJvcicpLCB7eGhyOiB4aHJ9KSk7IH0pO1xuICAgICAgICAgICAgb24oeGhyLCAndGltZW91dCcsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlamVjdChhc3NpZ24oRXJyb3IoJ05ldHdvcmsgVGltZW91dCcpLCB7eGhyOiB4aHJ9KSk7IH0pO1xuXG4gICAgICAgICAgICB4aHIuc2VuZChlbnYuZGF0YSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldEltYWdlKHNyYywgc3Jjc2V0LCBzaXplcykge1xuXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcbiAgICAgICAgICAgIHZhciBpbWcgPSBuZXcgSW1hZ2UoKTtcblxuICAgICAgICAgICAgaW1nLm9uZXJyb3IgPSByZWplY3Q7XG4gICAgICAgICAgICBpbWcub25sb2FkID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gcmVzb2x2ZShpbWcpOyB9O1xuXG4gICAgICAgICAgICBpbWcuc3JjID0gc3JjO1xuICAgICAgICAgICAgc3Jjc2V0ICYmIChpbWcuc3Jjc2V0ID0gc3Jjc2V0KTtcbiAgICAgICAgICAgIHNpemVzICYmIChpbWcuc2l6ZXMgPSBzaXplcyk7XG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNSZWFkeSgpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LnJlYWR5U3RhdGUgPT09ICdjb21wbGV0ZScgfHwgZG9jdW1lbnQucmVhZHlTdGF0ZSAhPT0gJ2xvYWRpbmcnICYmICFkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuZG9TY3JvbGw7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gcmVhZHkoZm4pIHtcblxuICAgICAgICBpZiAoaXNSZWFkeSgpKSB7XG4gICAgICAgICAgICBmbigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGhhbmRsZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHVuYmluZDEoKTtcbiAgICAgICAgICAgIHVuYmluZDIoKTtcbiAgICAgICAgICAgIGZuKCk7XG4gICAgICAgIH07XG4gICAgICAgIHZhciB1bmJpbmQxID0gb24oZG9jdW1lbnQsICdET01Db250ZW50TG9hZGVkJywgaGFuZGxlKTtcbiAgICAgICAgdmFyIHVuYmluZDIgPSBvbih3aW5kb3csICdsb2FkJywgaGFuZGxlKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbmRleChlbGVtZW50LCByZWYpIHtcbiAgICAgICAgcmV0dXJuIHJlZlxuICAgICAgICAgICAgPyB0b05vZGVzKGVsZW1lbnQpLmluZGV4T2YodG9Ob2RlKHJlZikpXG4gICAgICAgICAgICA6IHRvTm9kZXMoKGVsZW1lbnQgPSB0b05vZGUoZWxlbWVudCkpICYmIGVsZW1lbnQucGFyZW50Tm9kZS5jaGlsZHJlbikuaW5kZXhPZihlbGVtZW50KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRJbmRleChpLCBlbGVtZW50cywgY3VycmVudCwgZmluaXRlKSB7XG4gICAgICAgIGlmICggY3VycmVudCA9PT0gdm9pZCAwICkgY3VycmVudCA9IDA7XG4gICAgICAgIGlmICggZmluaXRlID09PSB2b2lkIDAgKSBmaW5pdGUgPSBmYWxzZTtcblxuXG4gICAgICAgIGVsZW1lbnRzID0gdG9Ob2RlcyhlbGVtZW50cyk7XG5cbiAgICAgICAgdmFyIGxlbmd0aCA9IGVsZW1lbnRzLmxlbmd0aDtcblxuICAgICAgICBpID0gaXNOdW1lcmljKGkpXG4gICAgICAgICAgICA/IHRvTnVtYmVyKGkpXG4gICAgICAgICAgICA6IGkgPT09ICduZXh0J1xuICAgICAgICAgICAgICAgID8gY3VycmVudCArIDFcbiAgICAgICAgICAgICAgICA6IGkgPT09ICdwcmV2aW91cydcbiAgICAgICAgICAgICAgICAgICAgPyBjdXJyZW50IC0gMVxuICAgICAgICAgICAgICAgICAgICA6IGluZGV4KGVsZW1lbnRzLCBpKTtcblxuICAgICAgICBpZiAoZmluaXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gY2xhbXAoaSwgMCwgbGVuZ3RoIC0gMSk7XG4gICAgICAgIH1cblxuICAgICAgICBpICU9IGxlbmd0aDtcblxuICAgICAgICByZXR1cm4gaSA8IDAgPyBpICsgbGVuZ3RoIDogaTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBlbXB0eShlbGVtZW50KSB7XG4gICAgICAgIGVsZW1lbnQgPSB0b05vZGUoZWxlbWVudCk7XG4gICAgICAgIGVsZW1lbnQuaW5uZXJIVE1MID0gJyc7XG4gICAgICAgIHJldHVybiBlbGVtZW50O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGh0bWwocGFyZW50LCBodG1sKSB7XG4gICAgICAgIHBhcmVudCA9IHRvTm9kZShwYXJlbnQpO1xuICAgICAgICByZXR1cm4gaXNVbmRlZmluZWQoaHRtbClcbiAgICAgICAgICAgID8gcGFyZW50LmlubmVySFRNTFxuICAgICAgICAgICAgOiBhcHBlbmQocGFyZW50Lmhhc0NoaWxkTm9kZXMoKSA/IGVtcHR5KHBhcmVudCkgOiBwYXJlbnQsIGh0bWwpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHByZXBlbmQocGFyZW50LCBlbGVtZW50KSB7XG5cbiAgICAgICAgcGFyZW50ID0gdG9Ob2RlKHBhcmVudCk7XG5cbiAgICAgICAgaWYgKCFwYXJlbnQuaGFzQ2hpbGROb2RlcygpKSB7XG4gICAgICAgICAgICByZXR1cm4gYXBwZW5kKHBhcmVudCwgZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gaW5zZXJ0Tm9kZXMoZWxlbWVudCwgZnVuY3Rpb24gKGVsZW1lbnQpIHsgcmV0dXJuIHBhcmVudC5pbnNlcnRCZWZvcmUoZWxlbWVudCwgcGFyZW50LmZpcnN0Q2hpbGQpOyB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFwcGVuZChwYXJlbnQsIGVsZW1lbnQpIHtcbiAgICAgICAgcGFyZW50ID0gdG9Ob2RlKHBhcmVudCk7XG4gICAgICAgIHJldHVybiBpbnNlcnROb2RlcyhlbGVtZW50LCBmdW5jdGlvbiAoZWxlbWVudCkgeyByZXR1cm4gcGFyZW50LmFwcGVuZENoaWxkKGVsZW1lbnQpOyB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBiZWZvcmUocmVmLCBlbGVtZW50KSB7XG4gICAgICAgIHJlZiA9IHRvTm9kZShyZWYpO1xuICAgICAgICByZXR1cm4gaW5zZXJ0Tm9kZXMoZWxlbWVudCwgZnVuY3Rpb24gKGVsZW1lbnQpIHsgcmV0dXJuIHJlZi5wYXJlbnROb2RlLmluc2VydEJlZm9yZShlbGVtZW50LCByZWYpOyB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhZnRlcihyZWYsIGVsZW1lbnQpIHtcbiAgICAgICAgcmVmID0gdG9Ob2RlKHJlZik7XG4gICAgICAgIHJldHVybiBpbnNlcnROb2RlcyhlbGVtZW50LCBmdW5jdGlvbiAoZWxlbWVudCkgeyByZXR1cm4gcmVmLm5leHRTaWJsaW5nXG4gICAgICAgICAgICA/IGJlZm9yZShyZWYubmV4dFNpYmxpbmcsIGVsZW1lbnQpXG4gICAgICAgICAgICA6IGFwcGVuZChyZWYucGFyZW50Tm9kZSwgZWxlbWVudCk7IH1cbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBpbnNlcnROb2RlcyhlbGVtZW50LCBmbikge1xuICAgICAgICBlbGVtZW50ID0gaXNTdHJpbmcoZWxlbWVudCkgPyBmcmFnbWVudChlbGVtZW50KSA6IGVsZW1lbnQ7XG4gICAgICAgIHJldHVybiBlbGVtZW50XG4gICAgICAgICAgICA/ICdsZW5ndGgnIGluIGVsZW1lbnRcbiAgICAgICAgICAgICAgICA/IHRvTm9kZXMoZWxlbWVudCkubWFwKGZuKVxuICAgICAgICAgICAgICAgIDogZm4oZWxlbWVudClcbiAgICAgICAgICAgIDogbnVsbDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW1vdmUoZWxlbWVudCkge1xuICAgICAgICB0b05vZGVzKGVsZW1lbnQpLm1hcChmdW5jdGlvbiAoZWxlbWVudCkgeyByZXR1cm4gZWxlbWVudC5wYXJlbnROb2RlICYmIGVsZW1lbnQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChlbGVtZW50KTsgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gd3JhcEFsbChlbGVtZW50LCBzdHJ1Y3R1cmUpIHtcblxuICAgICAgICBzdHJ1Y3R1cmUgPSB0b05vZGUoYmVmb3JlKGVsZW1lbnQsIHN0cnVjdHVyZSkpO1xuXG4gICAgICAgIHdoaWxlIChzdHJ1Y3R1cmUuZmlyc3RDaGlsZCkge1xuICAgICAgICAgICAgc3RydWN0dXJlID0gc3RydWN0dXJlLmZpcnN0Q2hpbGQ7XG4gICAgICAgIH1cblxuICAgICAgICBhcHBlbmQoc3RydWN0dXJlLCBlbGVtZW50KTtcblxuICAgICAgICByZXR1cm4gc3RydWN0dXJlO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdyYXBJbm5lcihlbGVtZW50LCBzdHJ1Y3R1cmUpIHtcbiAgICAgICAgcmV0dXJuIHRvTm9kZXModG9Ob2RlcyhlbGVtZW50KS5tYXAoZnVuY3Rpb24gKGVsZW1lbnQpIHsgcmV0dXJuIGVsZW1lbnQuaGFzQ2hpbGROb2RlcyA/IHdyYXBBbGwodG9Ob2RlcyhlbGVtZW50LmNoaWxkTm9kZXMpLCBzdHJ1Y3R1cmUpIDogYXBwZW5kKGVsZW1lbnQsIHN0cnVjdHVyZSk7IH1cbiAgICAgICAgKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdW53cmFwKGVsZW1lbnQpIHtcbiAgICAgICAgdG9Ob2RlcyhlbGVtZW50KVxuICAgICAgICAgICAgLm1hcChmdW5jdGlvbiAoZWxlbWVudCkgeyByZXR1cm4gZWxlbWVudC5wYXJlbnROb2RlOyB9KVxuICAgICAgICAgICAgLmZpbHRlcihmdW5jdGlvbiAodmFsdWUsIGluZGV4LCBzZWxmKSB7IHJldHVybiBzZWxmLmluZGV4T2YodmFsdWUpID09PSBpbmRleDsgfSlcbiAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uIChwYXJlbnQpIHtcbiAgICAgICAgICAgICAgICBiZWZvcmUocGFyZW50LCBwYXJlbnQuY2hpbGROb2Rlcyk7XG4gICAgICAgICAgICAgICAgcmVtb3ZlKHBhcmVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB2YXIgZnJhZ21lbnRSZSA9IC9eXFxzKjwoXFx3K3whKVtePl0qPi87XG4gICAgdmFyIHNpbmdsZVRhZ1JlID0gL148KFxcdyspXFxzKlxcLz8+KD86PFxcL1xcMT4pPyQvO1xuXG4gICAgZnVuY3Rpb24gZnJhZ21lbnQoaHRtbCkge1xuXG4gICAgICAgIHZhciBtYXRjaGVzID0gc2luZ2xlVGFnUmUuZXhlYyhodG1sKTtcbiAgICAgICAgaWYgKG1hdGNoZXMpIHtcbiAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5jcmVhdGVFbGVtZW50KG1hdGNoZXNbMV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xuICAgICAgICBpZiAoZnJhZ21lbnRSZS50ZXN0KGh0bWwpKSB7XG4gICAgICAgICAgICBjb250YWluZXIuaW5zZXJ0QWRqYWNlbnRIVE1MKCdiZWZvcmVlbmQnLCBodG1sLnRyaW0oKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb250YWluZXIudGV4dENvbnRlbnQgPSBodG1sO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbnRhaW5lci5jaGlsZE5vZGVzLmxlbmd0aCA+IDEgPyB0b05vZGVzKGNvbnRhaW5lci5jaGlsZE5vZGVzKSA6IGNvbnRhaW5lci5maXJzdENoaWxkO1xuXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYXBwbHkobm9kZSwgZm4pIHtcblxuICAgICAgICBpZiAoIW5vZGUgfHwgbm9kZS5ub2RlVHlwZSAhPT0gMSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZm4obm9kZSk7XG4gICAgICAgIG5vZGUgPSBub2RlLmZpcnN0RWxlbWVudENoaWxkO1xuICAgICAgICB3aGlsZSAobm9kZSkge1xuICAgICAgICAgICAgYXBwbHkobm9kZSwgZm4pO1xuICAgICAgICAgICAgbm9kZSA9IG5vZGUubmV4dEVsZW1lbnRTaWJsaW5nO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYWRkQ2xhc3MoZWxlbWVudCkge1xuICAgICAgICB2YXIgYXJncyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKCBsZW4tLSA+IDAgKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuICsgMSBdO1xuXG4gICAgICAgIGFwcGx5JDEoZWxlbWVudCwgYXJncywgJ2FkZCcpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbW92ZUNsYXNzKGVsZW1lbnQpIHtcbiAgICAgICAgdmFyIGFyZ3MgPSBbXSwgbGVuID0gYXJndW1lbnRzLmxlbmd0aCAtIDE7XG4gICAgICAgIHdoaWxlICggbGVuLS0gPiAwICkgYXJnc1sgbGVuIF0gPSBhcmd1bWVudHNbIGxlbiArIDEgXTtcblxuICAgICAgICBhcHBseSQxKGVsZW1lbnQsIGFyZ3MsICdyZW1vdmUnKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZW1vdmVDbGFzc2VzKGVsZW1lbnQsIGNscykge1xuICAgICAgICBmaWx0ZXJBdHRyKGVsZW1lbnQsICdjbGFzcycsIG5ldyBSZWdFeHAoKFwiKF58XFxcXHMpXCIgKyBjbHMgKyBcIig/IVxcXFxTKVwiKSwgJ2cnKSwgJycpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlcGxhY2VDbGFzcyhlbGVtZW50KSB7XG4gICAgICAgIHZhciBhcmdzID0gW10sIGxlbiA9IGFyZ3VtZW50cy5sZW5ndGggLSAxO1xuICAgICAgICB3aGlsZSAoIGxlbi0tID4gMCApIGFyZ3NbIGxlbiBdID0gYXJndW1lbnRzWyBsZW4gKyAxIF07XG5cbiAgICAgICAgYXJnc1swXSAmJiByZW1vdmVDbGFzcyhlbGVtZW50LCBhcmdzWzBdKTtcbiAgICAgICAgYXJnc1sxXSAmJiBhZGRDbGFzcyhlbGVtZW50LCBhcmdzWzFdKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBoYXNDbGFzcyhlbGVtZW50LCBjbHMpIHtcbiAgICAgICAgcmV0dXJuIHRvTm9kZXMoZWxlbWVudCkuc29tZShmdW5jdGlvbiAoZWxlbWVudCkgeyByZXR1cm4gZWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoY2xzKTsgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gdG9nZ2xlQ2xhc3MoZWxlbWVudCkge1xuICAgICAgICB2YXIgYXJncyA9IFtdLCBsZW4gPSBhcmd1bWVudHMubGVuZ3RoIC0gMTtcbiAgICAgICAgd2hpbGUgKCBsZW4tLSA+IDAgKSBhcmdzWyBsZW4gXSA9IGFyZ3VtZW50c1sgbGVuICsgMSBdO1xuXG5cbiAgICAgICAgaWYgKCFhcmdzLmxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgYXJncyA9IGdldEFyZ3MkMShhcmdzKTtcblxuICAgICAgICB2YXIgZm9yY2UgPSAhaXNTdHJpbmcoYXJnc1thcmdzLmxlbmd0aCAtIDFdKSA/IGFyZ3MucG9wKCkgOiBbXTsgLy8gaW4gaU9TIDkuMyBmb3JjZSA9PT0gdW5kZWZpbmVkIGV2YWx1YXRlcyB0byBmYWxzZVxuXG4gICAgICAgIGFyZ3MgPSBhcmdzLmZpbHRlcihCb29sZWFuKTtcblxuICAgICAgICB0b05vZGVzKGVsZW1lbnQpLmZvckVhY2goZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgdmFyIGNsYXNzTGlzdCA9IHJlZi5jbGFzc0xpc3Q7XG5cbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYXJncy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHN1cHBvcnRzLkZvcmNlXG4gICAgICAgICAgICAgICAgICAgID8gY2xhc3NMaXN0LnRvZ2dsZS5hcHBseShjbGFzc0xpc3QsIFthcmdzW2ldXS5jb25jYXQoZm9yY2UpKVxuICAgICAgICAgICAgICAgICAgICA6IChjbGFzc0xpc3RbKCFpc1VuZGVmaW5lZChmb3JjZSkgPyBmb3JjZSA6ICFjbGFzc0xpc3QuY29udGFpbnMoYXJnc1tpXSkpID8gJ2FkZCcgOiAncmVtb3ZlJ10oYXJnc1tpXSkpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGFwcGx5JDEoZWxlbWVudCwgYXJncywgZm4pIHtcbiAgICAgICAgYXJncyA9IGdldEFyZ3MkMShhcmdzKS5maWx0ZXIoQm9vbGVhbik7XG5cbiAgICAgICAgYXJncy5sZW5ndGggJiYgdG9Ob2RlcyhlbGVtZW50KS5mb3JFYWNoKGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgIHZhciBjbGFzc0xpc3QgPSByZWYuY2xhc3NMaXN0O1xuXG4gICAgICAgICAgICBzdXBwb3J0cy5NdWx0aXBsZVxuICAgICAgICAgICAgICAgID8gY2xhc3NMaXN0W2ZuXS5hcHBseShjbGFzc0xpc3QsIGFyZ3MpXG4gICAgICAgICAgICAgICAgOiBhcmdzLmZvckVhY2goZnVuY3Rpb24gKGNscykgeyByZXR1cm4gY2xhc3NMaXN0W2ZuXShjbHMpOyB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0QXJncyQxKGFyZ3MpIHtcbiAgICAgICAgcmV0dXJuIGFyZ3MucmVkdWNlKGZ1bmN0aW9uIChhcmdzLCBhcmcpIHsgcmV0dXJuIGFyZ3MuY29uY2F0LmNhbGwoYXJncywgaXNTdHJpbmcoYXJnKSAmJiBpbmNsdWRlcyhhcmcsICcgJykgPyBhcmcudHJpbSgpLnNwbGl0KCcgJykgOiBhcmcpOyB9XG4gICAgICAgICAgICAsIFtdKTtcbiAgICB9XG5cbiAgICB2YXIgc3VwcG9ydHMgPSB7fTtcblxuICAgIC8vIElFIDExXG4gICAgKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICB2YXIgbGlzdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ18nKS5jbGFzc0xpc3Q7XG4gICAgICAgIGlmIChsaXN0KSB7XG4gICAgICAgICAgICBsaXN0LmFkZCgnYScsICdiJyk7XG4gICAgICAgICAgICBsaXN0LnRvZ2dsZSgnYycsIGZhbHNlKTtcbiAgICAgICAgICAgIHN1cHBvcnRzLk11bHRpcGxlID0gbGlzdC5jb250YWlucygnYicpO1xuICAgICAgICAgICAgc3VwcG9ydHMuRm9yY2UgPSAhbGlzdC5jb250YWlucygnYycpO1xuICAgICAgICB9XG4gICAgICAgIGxpc3QgPSBudWxsO1xuXG4gICAgfSkoKTtcblxuICAgIHZhciBjc3NOdW1iZXIgPSB7XG4gICAgICAgICdhbmltYXRpb24taXRlcmF0aW9uLWNvdW50JzogdHJ1ZSxcbiAgICAgICAgJ2NvbHVtbi1jb3VudCc6IHRydWUsXG4gICAgICAgICdmaWxsLW9wYWNpdHknOiB0cnVlLFxuICAgICAgICAnZmxleC1ncm93JzogdHJ1ZSxcbiAgICAgICAgJ2ZsZXgtc2hyaW5rJzogdHJ1ZSxcbiAgICAgICAgJ2ZvbnQtd2VpZ2h0JzogdHJ1ZSxcbiAgICAgICAgJ2xpbmUtaGVpZ2h0JzogdHJ1ZSxcbiAgICAgICAgJ29wYWNpdHknOiB0cnVlLFxuICAgICAgICAnb3JkZXInOiB0cnVlLFxuICAgICAgICAnb3JwaGFucyc6IHRydWUsXG4gICAgICAgICd3aWRvd3MnOiB0cnVlLFxuICAgICAgICAnei1pbmRleCc6IHRydWUsXG4gICAgICAgICd6b29tJzogdHJ1ZVxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBjc3MoZWxlbWVudCwgcHJvcGVydHksIHZhbHVlKSB7XG5cbiAgICAgICAgcmV0dXJuIHRvTm9kZXMoZWxlbWVudCkubWFwKGZ1bmN0aW9uIChlbGVtZW50KSB7XG5cbiAgICAgICAgICAgIGlmIChpc1N0cmluZyhwcm9wZXJ0eSkpIHtcblxuICAgICAgICAgICAgICAgIHByb3BlcnR5ID0gcHJvcE5hbWUocHJvcGVydHkpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U3R5bGUoZWxlbWVudCwgcHJvcGVydHkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoIXZhbHVlICYmIHZhbHVlICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGUucmVtb3ZlUHJvcGVydHkocHJvcGVydHkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1lbnQuc3R5bGVbcHJvcGVydHldID0gaXNOdW1lcmljKHZhbHVlKSAmJiAhY3NzTnVtYmVyW3Byb3BlcnR5XSA/ICh2YWx1ZSArIFwicHhcIikgOiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNBcnJheShwcm9wZXJ0eSkpIHtcblxuICAgICAgICAgICAgICAgIHZhciBzdHlsZXMgPSBnZXRTdHlsZXMoZWxlbWVudCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcGVydHkucmVkdWNlKGZ1bmN0aW9uIChwcm9wcywgcHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHNbcHJvcGVydHldID0gc3R5bGVzW3Byb3BOYW1lKHByb3BlcnR5KV07XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcztcbiAgICAgICAgICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNPYmplY3QocHJvcGVydHkpKSB7XG4gICAgICAgICAgICAgICAgZWFjaChwcm9wZXJ0eSwgZnVuY3Rpb24gKHZhbHVlLCBwcm9wZXJ0eSkgeyByZXR1cm4gY3NzKGVsZW1lbnQsIHByb3BlcnR5LCB2YWx1ZSk7IH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudDtcblxuICAgICAgICB9KVswXTtcblxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFN0eWxlcyhlbGVtZW50LCBwc2V1ZG9FbHQpIHtcbiAgICAgICAgZWxlbWVudCA9IHRvTm9kZShlbGVtZW50KTtcbiAgICAgICAgcmV0dXJuIGVsZW1lbnQub3duZXJEb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQsIHBzZXVkb0VsdCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0U3R5bGUoZWxlbWVudCwgcHJvcGVydHksIHBzZXVkb0VsdCkge1xuICAgICAgICByZXR1cm4gZ2V0U3R5bGVzKGVsZW1lbnQsIHBzZXVkb0VsdClbcHJvcGVydHldO1xuICAgIH1cblxuICAgIHZhciB2YXJzID0ge307XG5cbiAgICBmdW5jdGlvbiBnZXRDc3NWYXIobmFtZSkge1xuXG4gICAgICAgIGlmICghKG5hbWUgaW4gdmFycykpIHtcblxuICAgICAgICAgICAgLyogdXNhZ2UgaW4gY3NzOiAudmFyLW5hbWU6YmVmb3JlIHsgY29udGVudDpcInh5elwiIH0gKi9cblxuICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBhcHBlbmQoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7XG5cbiAgICAgICAgICAgIGFkZENsYXNzKGVsZW1lbnQsIChcInZhci1cIiArIG5hbWUpKTtcblxuICAgICAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgICAgIHZhcnNbbmFtZV0gPSBnZXRTdHlsZShlbGVtZW50LCAnY29udGVudCcsICc6YmVmb3JlJykucmVwbGFjZSgvXltcIiddKC4qKVtcIiddJC8sICckMScpO1xuICAgICAgICAgICAgICAgIHZhcnNbbmFtZV0gPSBKU09OLnBhcnNlKHZhcnNbbmFtZV0pO1xuXG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoZWxlbWVudCk7XG5cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YXJzW25hbWVdO1xuXG4gICAgfVxuXG4gICAgdmFyIGNzc1Byb3BzID0ge307XG5cbiAgICBmdW5jdGlvbiBwcm9wTmFtZShuYW1lKSB7XG5cbiAgICAgICAgdmFyIHJldCA9IGNzc1Byb3BzW25hbWVdO1xuICAgICAgICBpZiAoIXJldCkge1xuICAgICAgICAgICAgcmV0ID0gY3NzUHJvcHNbbmFtZV0gPSB2ZW5kb3JQcm9wTmFtZShuYW1lKSB8fCBuYW1lO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuXG4gICAgdmFyIGNzc1ByZWZpeGVzID0gWyd3ZWJraXQnLCAnbW96JywgJ21zJ107XG4gICAgdmFyIHJlZiQxID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnXycpO1xuICAgIHZhciBzdHlsZSA9IHJlZiQxLnN0eWxlO1xuXG4gICAgZnVuY3Rpb24gdmVuZG9yUHJvcE5hbWUobmFtZSkge1xuXG4gICAgICAgIG5hbWUgPSBoeXBoZW5hdGUobmFtZSk7XG5cbiAgICAgICAgaWYgKG5hbWUgaW4gc3R5bGUpIHtcbiAgICAgICAgICAgIHJldHVybiBuYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGkgPSBjc3NQcmVmaXhlcy5sZW5ndGgsIHByZWZpeGVkTmFtZTtcblxuICAgICAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgICAgICBwcmVmaXhlZE5hbWUgPSBcIi1cIiArIChjc3NQcmVmaXhlc1tpXSkgKyBcIi1cIiArIG5hbWU7XG4gICAgICAgICAgICBpZiAocHJlZml4ZWROYW1lIGluIHN0eWxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZWZpeGVkTmFtZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyYW5zaXRpb24oZWxlbWVudCwgcHJvcHMsIGR1cmF0aW9uLCB0aW1pbmcpIHtcbiAgICAgICAgaWYgKCBkdXJhdGlvbiA9PT0gdm9pZCAwICkgZHVyYXRpb24gPSA0MDA7XG4gICAgICAgIGlmICggdGltaW5nID09PSB2b2lkIDAgKSB0aW1pbmcgPSAnbGluZWFyJztcblxuXG4gICAgICAgIHJldHVybiBQcm9taXNlJDEuYWxsKHRvTm9kZXMoZWxlbWVudCkubWFwKGZ1bmN0aW9uIChlbGVtZW50KSB7IHJldHVybiBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlLCByZWplY3QpIHtcblxuICAgICAgICAgICAgICAgIGZvciAodmFyIG5hbWUgaW4gcHJvcHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gY3NzKGVsZW1lbnQsIG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjc3MoZWxlbWVudCwgbmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIHRpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7IHJldHVybiB0cmlnZ2VyKGVsZW1lbnQsICd0cmFuc2l0aW9uZW5kJyk7IH0sIGR1cmF0aW9uKTtcblxuICAgICAgICAgICAgICAgIG9uY2UoZWxlbWVudCwgJ3RyYW5zaXRpb25lbmQgdHJhbnNpdGlvbmNhbmNlbGVkJywgZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdHlwZSA9IHJlZi50eXBlO1xuXG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aW1lcik7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKGVsZW1lbnQsICd1ay10cmFuc2l0aW9uJyk7XG4gICAgICAgICAgICAgICAgICAgIGNzcyhlbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAndHJhbnNpdGlvbi1wcm9wZXJ0eSc6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3RyYW5zaXRpb24tZHVyYXRpb24nOiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd0cmFuc2l0aW9uLXRpbWluZy1mdW5jdGlvbic6ICcnXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0eXBlID09PSAndHJhbnNpdGlvbmNhbmNlbGVkJyA/IHJlamVjdCgpIDogcmVzb2x2ZSgpO1xuICAgICAgICAgICAgICAgIH0sIGZhbHNlLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0YXJnZXQgPSByZWYudGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50ID09PSB0YXJnZXQ7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBhZGRDbGFzcyhlbGVtZW50LCAndWstdHJhbnNpdGlvbicpO1xuICAgICAgICAgICAgICAgIGNzcyhlbGVtZW50LCBhc3NpZ24oe1xuICAgICAgICAgICAgICAgICAgICAndHJhbnNpdGlvbi1wcm9wZXJ0eSc6IE9iamVjdC5rZXlzKHByb3BzKS5tYXAocHJvcE5hbWUpLmpvaW4oJywnKSxcbiAgICAgICAgICAgICAgICAgICAgJ3RyYW5zaXRpb24tZHVyYXRpb24nOiAoZHVyYXRpb24gKyBcIm1zXCIpLFxuICAgICAgICAgICAgICAgICAgICAndHJhbnNpdGlvbi10aW1pbmctZnVuY3Rpb24nOiB0aW1pbmdcbiAgICAgICAgICAgICAgICB9LCBwcm9wcykpO1xuXG4gICAgICAgICAgICB9KTsgfVxuICAgICAgICApKTtcblxuICAgIH1cblxuICAgIHZhciBUcmFuc2l0aW9uID0ge1xuXG4gICAgICAgIHN0YXJ0OiB0cmFuc2l0aW9uLFxuXG4gICAgICAgIHN0b3A6IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIHRyaWdnZXIoZWxlbWVudCwgJ3RyYW5zaXRpb25lbmQnKTtcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlJDEucmVzb2x2ZSgpO1xuICAgICAgICB9LFxuXG4gICAgICAgIGNhbmNlbDogZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICAgICAgdHJpZ2dlcihlbGVtZW50LCAndHJhbnNpdGlvbmNhbmNlbGVkJyk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgaW5Qcm9ncmVzczogZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuIGhhc0NsYXNzKGVsZW1lbnQsICd1ay10cmFuc2l0aW9uJyk7XG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICB2YXIgYW5pbWF0aW9uUHJlZml4ID0gJ3VrLWFuaW1hdGlvbi0nO1xuICAgIHZhciBjbHNDYW5jZWxBbmltYXRpb24gPSAndWstY2FuY2VsLWFuaW1hdGlvbic7XG5cbiAgICBmdW5jdGlvbiBhbmltYXRlKGVsZW1lbnQsIGFuaW1hdGlvbiwgZHVyYXRpb24sIG9yaWdpbiwgb3V0KSB7XG4gICAgICAgIHZhciBhcmd1bWVudHMkMSA9IGFyZ3VtZW50cztcbiAgICAgICAgaWYgKCBkdXJhdGlvbiA9PT0gdm9pZCAwICkgZHVyYXRpb24gPSAyMDA7XG5cblxuICAgICAgICByZXR1cm4gUHJvbWlzZSQxLmFsbCh0b05vZGVzKGVsZW1lbnQpLm1hcChmdW5jdGlvbiAoZWxlbWVudCkgeyByZXR1cm4gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoaGFzQ2xhc3MoZWxlbWVudCwgY2xzQ2FuY2VsQW5pbWF0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24gKCkgeyByZXR1cm4gUHJvbWlzZSQxLnJlc29sdmUoKS50aGVuKGZ1bmN0aW9uICgpIHsgcmV0dXJuIGFuaW1hdGUuYXBwbHkodm9pZCAwLCBhcmd1bWVudHMkMSkudGhlbihyZXNvbHZlLCByZWplY3QpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICApOyB9XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgY2xzID0gYW5pbWF0aW9uICsgXCIgXCIgKyBhbmltYXRpb25QcmVmaXggKyAob3V0ID8gJ2xlYXZlJyA6ICdlbnRlcicpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHN0YXJ0c1dpdGgoYW5pbWF0aW9uLCBhbmltYXRpb25QcmVmaXgpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG9yaWdpbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2xzICs9IFwiIHVrLXRyYW5zZm9ybS1vcmlnaW4tXCIgKyBvcmlnaW47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAob3V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjbHMgKz0gXCIgXCIgKyBhbmltYXRpb25QcmVmaXggKyBcInJldmVyc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmVzZXQoKTtcblxuICAgICAgICAgICAgICAgIG9uY2UoZWxlbWVudCwgJ2FuaW1hdGlvbmVuZCBhbmltYXRpb25jYW5jZWwnLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0eXBlID0gcmVmLnR5cGU7XG5cblxuICAgICAgICAgICAgICAgICAgICB2YXIgaGFzUmVzZXQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZSA9PT0gJ2FuaW1hdGlvbmNhbmNlbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIFByb21pc2UkMS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFzUmVzZXQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc1Jlc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkQ2xhc3MoZWxlbWVudCwgY2xzQ2FuY2VsQW5pbWF0aW9uKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlvbiAoKSB7IHJldHVybiByZW1vdmVDbGFzcyhlbGVtZW50LCBjbHNDYW5jZWxBbmltYXRpb24pOyB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB9LCBmYWxzZSwgZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gcmVmLnRhcmdldDtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudCA9PT0gdGFyZ2V0O1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgY3NzKGVsZW1lbnQsICdhbmltYXRpb25EdXJhdGlvbicsIChkdXJhdGlvbiArIFwibXNcIikpO1xuICAgICAgICAgICAgICAgIGFkZENsYXNzKGVsZW1lbnQsIGNscyk7XG5cbiAgICAgICAgICAgICAgICBmdW5jdGlvbiByZXNldCgpIHtcbiAgICAgICAgICAgICAgICAgICAgY3NzKGVsZW1lbnQsICdhbmltYXRpb25EdXJhdGlvbicsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3NlcyhlbGVtZW50LCAoYW5pbWF0aW9uUHJlZml4ICsgXCJcXFxcUypcIikpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSk7IH1cbiAgICAgICAgKSk7XG5cbiAgICB9XG5cbiAgICB2YXIgaW5Qcm9ncmVzcyA9IG5ldyBSZWdFeHAoKGFuaW1hdGlvblByZWZpeCArIFwiKGVudGVyfGxlYXZlKVwiKSk7XG4gICAgdmFyIEFuaW1hdGlvbiA9IHtcblxuICAgICAgICBpbjogZnVuY3Rpb24oZWxlbWVudCwgYW5pbWF0aW9uLCBkdXJhdGlvbiwgb3JpZ2luKSB7XG4gICAgICAgICAgICByZXR1cm4gYW5pbWF0ZShlbGVtZW50LCBhbmltYXRpb24sIGR1cmF0aW9uLCBvcmlnaW4sIGZhbHNlKTtcbiAgICAgICAgfSxcblxuICAgICAgICBvdXQ6IGZ1bmN0aW9uKGVsZW1lbnQsIGFuaW1hdGlvbiwgZHVyYXRpb24sIG9yaWdpbikge1xuICAgICAgICAgICAgcmV0dXJuIGFuaW1hdGUoZWxlbWVudCwgYW5pbWF0aW9uLCBkdXJhdGlvbiwgb3JpZ2luLCB0cnVlKTtcbiAgICAgICAgfSxcblxuICAgICAgICBpblByb2dyZXNzOiBmdW5jdGlvbihlbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm4gaW5Qcm9ncmVzcy50ZXN0KGF0dHIoZWxlbWVudCwgJ2NsYXNzJykpO1xuICAgICAgICB9LFxuXG4gICAgICAgIGNhbmNlbDogZnVuY3Rpb24oZWxlbWVudCkge1xuICAgICAgICAgICAgdHJpZ2dlcihlbGVtZW50LCAnYW5pbWF0aW9uY2FuY2VsJyk7XG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiAkKHNlbGVjdG9yLCBjb250ZXh0KSB7XG4gICAgICAgIHJldHVybiAhaXNTdHJpbmcoc2VsZWN0b3IpXG4gICAgICAgICAgICA/IHRvTm9kZShzZWxlY3RvcilcbiAgICAgICAgICAgIDogaXNIdG1sKHNlbGVjdG9yKVxuICAgICAgICAgICAgICAgID8gdG9Ob2RlKGZyYWdtZW50KHNlbGVjdG9yKSlcbiAgICAgICAgICAgICAgICA6IGZpbmQoc2VsZWN0b3IsIGNvbnRleHQpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uICQkKHNlbGVjdG9yLCBjb250ZXh0KSB7XG4gICAgICAgIHJldHVybiAhaXNTdHJpbmcoc2VsZWN0b3IpXG4gICAgICAgICAgICA/IHRvTm9kZXMoc2VsZWN0b3IpXG4gICAgICAgICAgICA6IGlzSHRtbChzZWxlY3RvcilcbiAgICAgICAgICAgICAgICA/IHRvTm9kZXMoZnJhZ21lbnQoc2VsZWN0b3IpKVxuICAgICAgICAgICAgICAgIDogZmluZEFsbChzZWxlY3RvciwgY29udGV4dCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNIdG1sKHN0cikge1xuICAgICAgICByZXR1cm4gc3RyWzBdID09PSAnPCcgfHwgc3RyLm1hdGNoKC9eXFxzKjwvKTtcbiAgICB9XG5cbiAgICB2YXIgZGlycyA9IHtcbiAgICAgICAgd2lkdGg6IFsneCcsICdsZWZ0JywgJ3JpZ2h0J10sXG4gICAgICAgIGhlaWdodDogWyd5JywgJ3RvcCcsICdib3R0b20nXVxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBwb3NpdGlvbkF0KGVsZW1lbnQsIHRhcmdldCwgZWxBdHRhY2gsIHRhcmdldEF0dGFjaCwgZWxPZmZzZXQsIHRhcmdldE9mZnNldCwgZmxpcCwgYm91bmRhcnkpIHtcblxuICAgICAgICBlbEF0dGFjaCA9IGdldFBvcyhlbEF0dGFjaCk7XG4gICAgICAgIHRhcmdldEF0dGFjaCA9IGdldFBvcyh0YXJnZXRBdHRhY2gpO1xuXG4gICAgICAgIHZhciBmbGlwcGVkID0ge2VsZW1lbnQ6IGVsQXR0YWNoLCB0YXJnZXQ6IHRhcmdldEF0dGFjaH07XG5cbiAgICAgICAgaWYgKCFlbGVtZW50IHx8ICF0YXJnZXQpIHtcbiAgICAgICAgICAgIHJldHVybiBmbGlwcGVkO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGRpbSA9IGdldERpbWVuc2lvbnMoZWxlbWVudCk7XG4gICAgICAgIHZhciB0YXJnZXREaW0gPSBnZXREaW1lbnNpb25zKHRhcmdldCk7XG4gICAgICAgIHZhciBwb3NpdGlvbiA9IHRhcmdldERpbTtcblxuICAgICAgICBtb3ZlVG8ocG9zaXRpb24sIGVsQXR0YWNoLCBkaW0sIC0xKTtcbiAgICAgICAgbW92ZVRvKHBvc2l0aW9uLCB0YXJnZXRBdHRhY2gsIHRhcmdldERpbSwgMSk7XG5cbiAgICAgICAgZWxPZmZzZXQgPSBnZXRPZmZzZXRzKGVsT2Zmc2V0LCBkaW0ud2lkdGgsIGRpbS5oZWlnaHQpO1xuICAgICAgICB0YXJnZXRPZmZzZXQgPSBnZXRPZmZzZXRzKHRhcmdldE9mZnNldCwgdGFyZ2V0RGltLndpZHRoLCB0YXJnZXREaW0uaGVpZ2h0KTtcblxuICAgICAgICBlbE9mZnNldFsneCddICs9IHRhcmdldE9mZnNldFsneCddO1xuICAgICAgICBlbE9mZnNldFsneSddICs9IHRhcmdldE9mZnNldFsneSddO1xuXG4gICAgICAgIHBvc2l0aW9uLmxlZnQgKz0gZWxPZmZzZXRbJ3gnXTtcbiAgICAgICAgcG9zaXRpb24udG9wICs9IGVsT2Zmc2V0Wyd5J107XG5cbiAgICAgICAgYm91bmRhcnkgPSBnZXREaW1lbnNpb25zKGJvdW5kYXJ5IHx8IHdpbmRvdyQxKGVsZW1lbnQpKTtcblxuICAgICAgICBpZiAoZmxpcCkge1xuICAgICAgICAgICAgZWFjaChkaXJzLCBmdW5jdGlvbiAocmVmLCBwcm9wKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRpciA9IHJlZlswXTtcbiAgICAgICAgICAgICAgICB2YXIgYWxpZ24gPSByZWZbMV07XG4gICAgICAgICAgICAgICAgdmFyIGFsaWduRmxpcCA9IHJlZlsyXTtcblxuXG4gICAgICAgICAgICAgICAgaWYgKCEoZmxpcCA9PT0gdHJ1ZSB8fCBpbmNsdWRlcyhmbGlwLCBkaXIpKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIGVsZW1PZmZzZXQgPSBlbEF0dGFjaFtkaXJdID09PSBhbGlnblxuICAgICAgICAgICAgICAgICAgICA/IC1kaW1bcHJvcF1cbiAgICAgICAgICAgICAgICAgICAgOiBlbEF0dGFjaFtkaXJdID09PSBhbGlnbkZsaXBcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZGltW3Byb3BdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IDA7XG5cbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0T2Zmc2V0ID0gdGFyZ2V0QXR0YWNoW2Rpcl0gPT09IGFsaWduXG4gICAgICAgICAgICAgICAgICAgID8gdGFyZ2V0RGltW3Byb3BdXG4gICAgICAgICAgICAgICAgICAgIDogdGFyZ2V0QXR0YWNoW2Rpcl0gPT09IGFsaWduRmxpcFxuICAgICAgICAgICAgICAgICAgICAgICAgPyAtdGFyZ2V0RGltW3Byb3BdXG4gICAgICAgICAgICAgICAgICAgICAgICA6IDA7XG5cbiAgICAgICAgICAgICAgICBpZiAocG9zaXRpb25bYWxpZ25dIDwgYm91bmRhcnlbYWxpZ25dIHx8IHBvc2l0aW9uW2FsaWduXSArIGRpbVtwcm9wXSA+IGJvdW5kYXJ5W2FsaWduRmxpcF0pIHtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgY2VudGVyT2Zmc2V0ID0gZGltW3Byb3BdIC8gMjtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNlbnRlclRhcmdldE9mZnNldCA9IHRhcmdldEF0dGFjaFtkaXJdID09PSAnY2VudGVyJyA/IC10YXJnZXREaW1bcHJvcF0gLyAyIDogMDtcblxuICAgICAgICAgICAgICAgICAgICBlbEF0dGFjaFtkaXJdID09PSAnY2VudGVyJyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBseShjZW50ZXJPZmZzZXQsIGNlbnRlclRhcmdldE9mZnNldClcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGFwcGx5KC1jZW50ZXJPZmZzZXQsIC1jZW50ZXJUYXJnZXRPZmZzZXQpXG4gICAgICAgICAgICAgICAgICAgICkgfHwgYXBwbHkoZWxlbU9mZnNldCwgdGFyZ2V0T2Zmc2V0KTtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGFwcGx5KGVsZW1PZmZzZXQsIHRhcmdldE9mZnNldCkge1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciBuZXdWYWwgPSBwb3NpdGlvblthbGlnbl0gKyBlbGVtT2Zmc2V0ICsgdGFyZ2V0T2Zmc2V0IC0gZWxPZmZzZXRbZGlyXSAqIDI7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKG5ld1ZhbCA+PSBib3VuZGFyeVthbGlnbl0gJiYgbmV3VmFsICsgZGltW3Byb3BdIDw9IGJvdW5kYXJ5W2FsaWduRmxpcF0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uW2FsaWduXSA9IG5ld1ZhbDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgWydlbGVtZW50JywgJ3RhcmdldCddLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmxpcHBlZFtlbF1bZGlyXSA9ICFlbGVtT2Zmc2V0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZmxpcHBlZFtlbF1bZGlyXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGZsaXBwZWRbZWxdW2Rpcl0gPT09IGRpcnNbcHJvcF1bMV1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZGlyc1twcm9wXVsyXVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBkaXJzW3Byb3BdWzFdO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgb2Zmc2V0KGVsZW1lbnQsIHBvc2l0aW9uKTtcblxuICAgICAgICByZXR1cm4gZmxpcHBlZDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBvZmZzZXQoZWxlbWVudCwgY29vcmRpbmF0ZXMpIHtcblxuICAgICAgICBlbGVtZW50ID0gdG9Ob2RlKGVsZW1lbnQpO1xuXG4gICAgICAgIGlmIChjb29yZGluYXRlcykge1xuXG4gICAgICAgICAgICB2YXIgY3VycmVudE9mZnNldCA9IG9mZnNldChlbGVtZW50KTtcbiAgICAgICAgICAgIHZhciBwb3MgPSBjc3MoZWxlbWVudCwgJ3Bvc2l0aW9uJyk7XG5cbiAgICAgICAgICAgIFsnbGVmdCcsICd0b3AnXS5mb3JFYWNoKGZ1bmN0aW9uIChwcm9wKSB7XG4gICAgICAgICAgICAgICAgaWYgKHByb3AgaW4gY29vcmRpbmF0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHZhbHVlID0gY3NzKGVsZW1lbnQsIHByb3ApO1xuICAgICAgICAgICAgICAgICAgICBjc3MoZWxlbWVudCwgcHJvcCwgY29vcmRpbmF0ZXNbcHJvcF0gLSBjdXJyZW50T2Zmc2V0W3Byb3BdXG4gICAgICAgICAgICAgICAgICAgICAgICArIHRvRmxvYXQocG9zID09PSAnYWJzb2x1dGUnICYmIHZhbHVlID09PSAnYXV0bydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHBvc2l0aW9uKGVsZW1lbnQpW3Byb3BdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB2YWx1ZSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldERpbWVuc2lvbnMoZWxlbWVudCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0RGltZW5zaW9ucyhlbGVtZW50KSB7XG5cbiAgICAgICAgZWxlbWVudCA9IHRvTm9kZShlbGVtZW50KTtcblxuICAgICAgICB2YXIgcmVmID0gd2luZG93JDEoZWxlbWVudCk7XG4gICAgICAgIHZhciB0b3AgPSByZWYucGFnZVlPZmZzZXQ7XG4gICAgICAgIHZhciBsZWZ0ID0gcmVmLnBhZ2VYT2Zmc2V0O1xuXG4gICAgICAgIGlmIChpc1dpbmRvdyhlbGVtZW50KSkge1xuXG4gICAgICAgICAgICB2YXIgaGVpZ2h0ID0gZWxlbWVudC5pbm5lckhlaWdodDtcbiAgICAgICAgICAgIHZhciB3aWR0aCA9IGVsZW1lbnQuaW5uZXJXaWR0aDtcblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB0b3A6IHRvcCxcbiAgICAgICAgICAgICAgICBsZWZ0OiBsZWZ0LFxuICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgICAgICAgICBib3R0b206IHRvcCArIGhlaWdodCxcbiAgICAgICAgICAgICAgICByaWdodDogbGVmdCArIHdpZHRoLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBzdHlsZSwgaGlkZGVuO1xuXG4gICAgICAgIGlmICghaXNWaXNpYmxlKGVsZW1lbnQpKSB7XG4gICAgICAgICAgICBzdHlsZSA9IGF0dHIoZWxlbWVudCwgJ3N0eWxlJyk7XG4gICAgICAgICAgICBoaWRkZW4gPSBhdHRyKGVsZW1lbnQsICdoaWRkZW4nKTtcblxuICAgICAgICAgICAgYXR0cihlbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgc3R5bGU6ICgoc3R5bGUgfHwgJycpICsgXCI7ZGlzcGxheTpibG9jayAhaW1wb3J0YW50O1wiKSxcbiAgICAgICAgICAgICAgICBoaWRkZW46IG51bGxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdmFyIHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgIGlmICghaXNVbmRlZmluZWQoc3R5bGUpKSB7XG4gICAgICAgICAgICBhdHRyKGVsZW1lbnQsIHtzdHlsZTogc3R5bGUsIGhpZGRlbjogaGlkZGVufSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVpZ2h0OiByZWN0LmhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiByZWN0LndpZHRoLFxuICAgICAgICAgICAgdG9wOiByZWN0LnRvcCArIHRvcCxcbiAgICAgICAgICAgIGxlZnQ6IHJlY3QubGVmdCArIGxlZnQsXG4gICAgICAgICAgICBib3R0b206IHJlY3QuYm90dG9tICsgdG9wLFxuICAgICAgICAgICAgcmlnaHQ6IHJlY3QucmlnaHQgKyBsZWZ0LFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBvc2l0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgZWxlbWVudCA9IHRvTm9kZShlbGVtZW50KTtcblxuICAgICAgICB2YXIgcGFyZW50ID0gb2Zmc2V0UGFyZW50KGVsZW1lbnQpO1xuICAgICAgICB2YXIgcGFyZW50T2Zmc2V0ID0gcGFyZW50ID09PSBkb2NFbChlbGVtZW50KSA/IHt0b3A6IDAsIGxlZnQ6IDB9IDogb2Zmc2V0KHBhcmVudCk7XG4gICAgICAgIHZhciByZWYgPSBbJ3RvcCcsICdsZWZ0J10ucmVkdWNlKGZ1bmN0aW9uIChwcm9wcywgcHJvcCkge1xuICAgICAgICAgICAgdmFyIHByb3BOYW1lJCQxID0gdWNmaXJzdChwcm9wKTtcbiAgICAgICAgICAgIHByb3BzW3Byb3BdIC09IHBhcmVudE9mZnNldFtwcm9wXVxuICAgICAgICAgICAgICAgICsgKHRvRmxvYXQoY3NzKGVsZW1lbnQsIChcIm1hcmdpblwiICsgcHJvcE5hbWUkJDEpKSkgfHwgMClcbiAgICAgICAgICAgICAgICArICh0b0Zsb2F0KGNzcyhwYXJlbnQsIChcImJvcmRlclwiICsgcHJvcE5hbWUkJDEgKyBcIldpZHRoXCIpKSkgfHwgMCk7XG4gICAgICAgICAgICByZXR1cm4gcHJvcHM7XG4gICAgICAgIH0sIG9mZnNldChlbGVtZW50KSk7XG4gICAgICAgIHZhciB0b3AgPSByZWYudG9wO1xuICAgICAgICB2YXIgbGVmdCA9IHJlZi5sZWZ0O1xuXG4gICAgICAgIHJldHVybiB7dG9wOiB0b3AsIGxlZnQ6IGxlZnR9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIG9mZnNldFBhcmVudChlbGVtZW50KSB7XG5cbiAgICAgICAgdmFyIHBhcmVudCA9IHRvTm9kZShlbGVtZW50KS5vZmZzZXRQYXJlbnQ7XG5cbiAgICAgICAgd2hpbGUgKHBhcmVudCAmJiBjc3MocGFyZW50LCAncG9zaXRpb24nKSA9PT0gJ3N0YXRpYycpIHtcbiAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudC5vZmZzZXRQYXJlbnQ7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcGFyZW50IHx8IGRvY0VsKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHZhciBoZWlnaHQgPSBkaW1lbnNpb24oJ2hlaWdodCcpO1xuICAgIHZhciB3aWR0aCA9IGRpbWVuc2lvbignd2lkdGgnKTtcblxuICAgIGZ1bmN0aW9uIGRpbWVuc2lvbihwcm9wKSB7XG4gICAgICAgIHZhciBwcm9wTmFtZSQkMSA9IHVjZmlyc3QocHJvcCk7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbiAoZWxlbWVudCwgdmFsdWUpIHtcblxuICAgICAgICAgICAgZWxlbWVudCA9IHRvTm9kZShlbGVtZW50KTtcblxuICAgICAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHZhbHVlKSkge1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzV2luZG93KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50WyhcImlubmVyXCIgKyBwcm9wTmFtZSQkMSldO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpc0RvY3VtZW50KGVsZW1lbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkb2MgPSBlbGVtZW50LmRvY3VtZW50RWxlbWVudDtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWF4KGRvY1soXCJvZmZzZXRcIiArIHByb3BOYW1lJCQxKV0sIGRvY1soXCJzY3JvbGxcIiArIHByb3BOYW1lJCQxKV0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhbHVlID0gY3NzKGVsZW1lbnQsIHByb3ApO1xuICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUgPT09ICdhdXRvJyA/IGVsZW1lbnRbKFwib2Zmc2V0XCIgKyBwcm9wTmFtZSQkMSldIDogdG9GbG9hdCh2YWx1ZSkgfHwgMDtcblxuICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZSAtIGJveE1vZGVsQWRqdXN0KHByb3AsIGVsZW1lbnQpO1xuXG4gICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgY3NzKGVsZW1lbnQsIHByb3AsICF2YWx1ZSAmJiB2YWx1ZSAhPT0gMFxuICAgICAgICAgICAgICAgICAgICA/ICcnXG4gICAgICAgICAgICAgICAgICAgIDogK3ZhbHVlICsgYm94TW9kZWxBZGp1c3QocHJvcCwgZWxlbWVudCkgKyAncHgnXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYm94TW9kZWxBZGp1c3QocHJvcCwgZWxlbWVudCkge1xuICAgICAgICByZXR1cm4gY3NzKGVsZW1lbnQsICdib3hTaXppbmcnKSA9PT0gJ2JvcmRlci1ib3gnXG4gICAgICAgICAgICA/IGRpcnNbcHJvcF0uc2xpY2UoMSkubWFwKHVjZmlyc3QpLnJlZHVjZShmdW5jdGlvbiAodmFsdWUsIHByb3ApIHsgcmV0dXJuIHZhbHVlXG4gICAgICAgICAgICAgICAgKyB0b0Zsb2F0KGNzcyhlbGVtZW50LCAoXCJwYWRkaW5nXCIgKyBwcm9wKSkpXG4gICAgICAgICAgICAgICAgKyB0b0Zsb2F0KGNzcyhlbGVtZW50LCAoXCJib3JkZXJcIiArIHByb3AgKyBcIldpZHRoXCIpKSk7IH1cbiAgICAgICAgICAgICAgICAsIDApXG4gICAgICAgICAgICA6IDA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbW92ZVRvKHBvc2l0aW9uLCBhdHRhY2gsIGRpbSwgZmFjdG9yKSB7XG4gICAgICAgIGVhY2goZGlycywgZnVuY3Rpb24gKHJlZiwgcHJvcCkge1xuICAgICAgICAgICAgdmFyIGRpciA9IHJlZlswXTtcbiAgICAgICAgICAgIHZhciBhbGlnbiA9IHJlZlsxXTtcbiAgICAgICAgICAgIHZhciBhbGlnbkZsaXAgPSByZWZbMl07XG5cbiAgICAgICAgICAgIGlmIChhdHRhY2hbZGlyXSA9PT0gYWxpZ25GbGlwKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25bYWxpZ25dICs9IGRpbVtwcm9wXSAqIGZhY3RvcjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoYXR0YWNoW2Rpcl0gPT09ICdjZW50ZXInKSB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25bYWxpZ25dICs9IGRpbVtwcm9wXSAqIGZhY3RvciAvIDI7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFBvcyhwb3MpIHtcblxuICAgICAgICB2YXIgeCA9IC9sZWZ0fGNlbnRlcnxyaWdodC87XG4gICAgICAgIHZhciB5ID0gL3RvcHxjZW50ZXJ8Ym90dG9tLztcblxuICAgICAgICBwb3MgPSAocG9zIHx8ICcnKS5zcGxpdCgnICcpO1xuXG4gICAgICAgIGlmIChwb3MubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICBwb3MgPSB4LnRlc3QocG9zWzBdKVxuICAgICAgICAgICAgICAgID8gcG9zLmNvbmNhdChbJ2NlbnRlciddKVxuICAgICAgICAgICAgICAgIDogeS50ZXN0KHBvc1swXSlcbiAgICAgICAgICAgICAgICAgICAgPyBbJ2NlbnRlciddLmNvbmNhdChwb3MpXG4gICAgICAgICAgICAgICAgICAgIDogWydjZW50ZXInLCAnY2VudGVyJ107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogeC50ZXN0KHBvc1swXSkgPyBwb3NbMF0gOiAnY2VudGVyJyxcbiAgICAgICAgICAgIHk6IHkudGVzdChwb3NbMV0pID8gcG9zWzFdIDogJ2NlbnRlcidcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRPZmZzZXRzKG9mZnNldHMsIHdpZHRoLCBoZWlnaHQpIHtcblxuICAgICAgICB2YXIgcmVmID0gKG9mZnNldHMgfHwgJycpLnNwbGl0KCcgJyk7XG4gICAgICAgIHZhciB4ID0gcmVmWzBdO1xuICAgICAgICB2YXIgeSA9IHJlZlsxXTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgeDogeCA/IHRvRmxvYXQoeCkgKiAoZW5kc1dpdGgoeCwgJyUnKSA/IHdpZHRoIC8gMTAwIDogMSkgOiAwLFxuICAgICAgICAgICAgeTogeSA/IHRvRmxvYXQoeSkgKiAoZW5kc1dpdGgoeSwgJyUnKSA/IGhlaWdodCAvIDEwMCA6IDEpIDogMFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGZsaXBQb3NpdGlvbihwb3MpIHtcbiAgICAgICAgc3dpdGNoIChwb3MpIHtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgICAgIHJldHVybiAncmlnaHQnO1xuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnbGVmdCc7XG4gICAgICAgICAgICBjYXNlICd0b3AnOlxuICAgICAgICAgICAgICAgIHJldHVybiAnYm90dG9tJztcbiAgICAgICAgICAgIGNhc2UgJ2JvdHRvbSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuICd0b3AnO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9zO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gaXNJblZpZXcoZWxlbWVudCwgdG9wT2Zmc2V0LCBsZWZ0T2Zmc2V0LCByZWxhdGl2ZVRvVmlld3BvcnQpIHtcbiAgICAgICAgaWYgKCB0b3BPZmZzZXQgPT09IHZvaWQgMCApIHRvcE9mZnNldCA9IDA7XG4gICAgICAgIGlmICggbGVmdE9mZnNldCA9PT0gdm9pZCAwICkgbGVmdE9mZnNldCA9IDA7XG5cblxuICAgICAgICBpZiAoIWlzVmlzaWJsZShlbGVtZW50KSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudCA9IHRvTm9kZShlbGVtZW50KTtcbiAgICAgICAgdmFyIHdpbiA9IHdpbmRvdyQxKGVsZW1lbnQpO1xuXG4gICAgICAgIGlmIChyZWxhdGl2ZVRvVmlld3BvcnQpIHtcblxuICAgICAgICAgICAgcmV0dXJuIGludGVyc2VjdFJlY3QoZWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKSwge1xuICAgICAgICAgICAgICAgIHRvcDogLXRvcE9mZnNldCxcbiAgICAgICAgICAgICAgICBsZWZ0OiAtbGVmdE9mZnNldCxcbiAgICAgICAgICAgICAgICBib3R0b206IHRvcE9mZnNldCArIGhlaWdodCh3aW4pLFxuICAgICAgICAgICAgICAgIHJpZ2h0OiBsZWZ0T2Zmc2V0ICsgd2lkdGgod2luKVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgdmFyIHJlZiA9IG9mZnNldFBvc2l0aW9uKGVsZW1lbnQpO1xuICAgICAgICAgICAgdmFyIGVsVG9wID0gcmVmWzBdO1xuICAgICAgICAgICAgdmFyIGVsTGVmdCA9IHJlZlsxXTtcbiAgICAgICAgICAgIHZhciB0b3AgPSB3aW4ucGFnZVlPZmZzZXQ7XG4gICAgICAgICAgICB2YXIgbGVmdCA9IHdpbi5wYWdlWE9mZnNldDtcblxuICAgICAgICAgICAgcmV0dXJuIGludGVyc2VjdFJlY3QoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IGVsVG9wLFxuICAgICAgICAgICAgICAgICAgICBsZWZ0OiBlbExlZnQsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogZWxUb3AgKyBlbGVtZW50Lm9mZnNldEhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IGVsVG9wICsgZWxlbWVudC5vZmZzZXRXaWR0aFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICB0b3A6IHRvcCAtIHRvcE9mZnNldCxcbiAgICAgICAgICAgICAgICAgICAgbGVmdDogbGVmdCAtIGxlZnRPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIGJvdHRvbTogdG9wICsgdG9wT2Zmc2V0ICsgaGVpZ2h0KHdpbiksXG4gICAgICAgICAgICAgICAgICAgIHJpZ2h0OiBsZWZ0ICsgbGVmdE9mZnNldCArIHdpZHRoKHdpbilcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBzY3JvbGxlZE92ZXIoZWxlbWVudCwgaGVpZ2h0T2Zmc2V0KSB7XG4gICAgICAgIGlmICggaGVpZ2h0T2Zmc2V0ID09PSB2b2lkIDAgKSBoZWlnaHRPZmZzZXQgPSAwO1xuXG5cbiAgICAgICAgaWYgKCFpc1Zpc2libGUoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9XG5cbiAgICAgICAgZWxlbWVudCA9IHRvTm9kZShlbGVtZW50KTtcblxuICAgICAgICB2YXIgd2luID0gd2luZG93JDEoZWxlbWVudCk7XG4gICAgICAgIHZhciBkb2MgPSBkb2N1bWVudCQxKGVsZW1lbnQpO1xuICAgICAgICB2YXIgZWxIZWlnaHQgPSBlbGVtZW50Lm9mZnNldEhlaWdodCArIGhlaWdodE9mZnNldDtcbiAgICAgICAgdmFyIHJlZiA9IG9mZnNldFBvc2l0aW9uKGVsZW1lbnQpO1xuICAgICAgICB2YXIgdG9wID0gcmVmWzBdO1xuICAgICAgICB2YXIgdnAgPSBoZWlnaHQod2luKTtcbiAgICAgICAgdmFyIHZoID0gdnAgKyBNYXRoLm1pbigwLCB0b3AgLSB2cCk7XG4gICAgICAgIHZhciBkaWZmID0gTWF0aC5tYXgoMCwgdnAgLSAoaGVpZ2h0KGRvYykgKyBoZWlnaHRPZmZzZXQgLSAodG9wICsgZWxIZWlnaHQpKSk7XG5cbiAgICAgICAgcmV0dXJuIGNsYW1wKCgodmggKyB3aW4ucGFnZVlPZmZzZXQgLSB0b3ApIC8gKCh2aCArIChlbEhlaWdodCAtIChkaWZmIDwgdnAgPyBkaWZmIDogMCkpKSAvIDEwMCkpIC8gMTAwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBvZmZzZXRQb3NpdGlvbihlbGVtZW50KSB7XG4gICAgICAgIHZhciBvZmZzZXQgPSBbMCwgMF07XG5cbiAgICAgICAgZG8ge1xuXG4gICAgICAgICAgICBvZmZzZXRbMF0gKz0gZWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICAgICAgICBvZmZzZXRbMV0gKz0gZWxlbWVudC5vZmZzZXRMZWZ0O1xuXG4gICAgICAgICAgICBpZiAoY3NzKGVsZW1lbnQsICdwb3NpdGlvbicpID09PSAnZml4ZWQnKSB7XG4gICAgICAgICAgICAgICAgdmFyIHdpbiA9IHdpbmRvdyQxKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIG9mZnNldFswXSArPSB3aW4ucGFnZVlPZmZzZXQ7XG4gICAgICAgICAgICAgICAgb2Zmc2V0WzFdICs9IHdpbi5wYWdlWE9mZnNldDtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2Zmc2V0O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0gd2hpbGUgKChlbGVtZW50ID0gZWxlbWVudC5vZmZzZXRQYXJlbnQpKTtcblxuICAgICAgICByZXR1cm4gb2Zmc2V0O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHdpbmRvdyQxKGVsZW1lbnQpIHtcbiAgICAgICAgcmV0dXJuIGlzV2luZG93KGVsZW1lbnQpID8gZWxlbWVudCA6IGRvY3VtZW50JDEoZWxlbWVudCkuZGVmYXVsdFZpZXc7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZG9jdW1lbnQkMShlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiB0b05vZGUoZWxlbWVudCkub3duZXJEb2N1bWVudDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBkb2NFbChlbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBkb2N1bWVudCQxKGVsZW1lbnQpLmRvY3VtZW50RWxlbWVudDtcbiAgICB9XG5cbiAgICAvKiBnbG9iYWwgRG9jdW1lbnRUb3VjaCAqL1xuXG4gICAgdmFyIGlzUnRsID0gYXR0cihkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsICdkaXInKSA9PT0gJ3J0bCc7XG5cbiAgICB2YXIgaGFzVG91Y2hFdmVudHMgPSAnb250b3VjaHN0YXJ0JyBpbiB3aW5kb3c7XG4gICAgdmFyIGhhc1BvaW50ZXJFdmVudHMgPSB3aW5kb3cuUG9pbnRlckV2ZW50O1xuICAgIHZhciBoYXNUb3VjaCA9IGhhc1RvdWNoRXZlbnRzXG4gICAgICAgIHx8IHdpbmRvdy5Eb2N1bWVudFRvdWNoICYmIGRvY3VtZW50IGluc3RhbmNlb2YgRG9jdW1lbnRUb3VjaFxuICAgICAgICB8fCBuYXZpZ2F0b3IubWF4VG91Y2hQb2ludHM7IC8vIElFID49MTFcblxuICAgIHZhciBwb2ludGVyRG93biA9ICFoYXNUb3VjaCA/ICdtb3VzZWRvd24nIDogKFwibW91c2Vkb3duIFwiICsgKGhhc1RvdWNoRXZlbnRzID8gJ3RvdWNoc3RhcnQnIDogJ3BvaW50ZXJkb3duJykpO1xuICAgIHZhciBwb2ludGVyTW92ZSA9ICFoYXNUb3VjaCA/ICdtb3VzZW1vdmUnIDogKFwibW91c2Vtb3ZlIFwiICsgKGhhc1RvdWNoRXZlbnRzID8gJ3RvdWNobW92ZScgOiAncG9pbnRlcm1vdmUnKSk7XG4gICAgdmFyIHBvaW50ZXJVcCA9ICFoYXNUb3VjaCA/ICdtb3VzZXVwJyA6IChcIm1vdXNldXAgXCIgKyAoaGFzVG91Y2hFdmVudHMgPyAndG91Y2hlbmQnIDogJ3BvaW50ZXJ1cCcpKTtcbiAgICB2YXIgcG9pbnRlckVudGVyID0gaGFzVG91Y2ggJiYgaGFzUG9pbnRlckV2ZW50cyA/ICdwb2ludGVyZW50ZXInIDogJ21vdXNlZW50ZXInO1xuICAgIHZhciBwb2ludGVyTGVhdmUgPSBoYXNUb3VjaCAmJiBoYXNQb2ludGVyRXZlbnRzID8gJ3BvaW50ZXJsZWF2ZScgOiAnbW91c2VsZWF2ZSc7XG5cbiAgICAvKlxuICAgICAgICBCYXNlZCBvbjpcbiAgICAgICAgQ29weXJpZ2h0IChjKSAyMDE2IFdpbHNvbiBQYWdlIHdpbHNvbnBhZ2VAbWUuY29tXG4gICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS93aWxzb25wYWdlL2Zhc3Rkb21cbiAgICAqL1xuXG4gICAgdmFyIGZhc3Rkb20gPSB7XG5cbiAgICAgICAgcmVhZHM6IFtdLFxuICAgICAgICB3cml0ZXM6IFtdLFxuXG4gICAgICAgIHJlYWQ6IGZ1bmN0aW9uKHRhc2spIHtcbiAgICAgICAgICAgIHRoaXMucmVhZHMucHVzaCh0YXNrKTtcbiAgICAgICAgICAgIHNjaGVkdWxlRmx1c2goKTtcbiAgICAgICAgICAgIHJldHVybiB0YXNrO1xuICAgICAgICB9LFxuXG4gICAgICAgIHdyaXRlOiBmdW5jdGlvbih0YXNrKSB7XG4gICAgICAgICAgICB0aGlzLndyaXRlcy5wdXNoKHRhc2spO1xuICAgICAgICAgICAgc2NoZWR1bGVGbHVzaCgpO1xuICAgICAgICAgICAgcmV0dXJuIHRhc2s7XG4gICAgICAgIH0sXG5cbiAgICAgICAgY2xlYXI6IGZ1bmN0aW9uKHRhc2spIHtcbiAgICAgICAgICAgIHJldHVybiByZW1vdmUkMSh0aGlzLnJlYWRzLCB0YXNrKSB8fCByZW1vdmUkMSh0aGlzLndyaXRlcywgdGFzayk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZmx1c2g6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICBydW5UYXNrcyh0aGlzLnJlYWRzKTtcbiAgICAgICAgICAgIHJ1blRhc2tzKHRoaXMud3JpdGVzLnNwbGljZSgwLCB0aGlzLndyaXRlcy5sZW5ndGgpKTtcblxuICAgICAgICAgICAgdGhpcy5zY2hlZHVsZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKHRoaXMucmVhZHMubGVuZ3RoIHx8IHRoaXMud3JpdGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHNjaGVkdWxlRmx1c2goKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gc2NoZWR1bGVGbHVzaCgpIHtcbiAgICAgICAgaWYgKCFmYXN0ZG9tLnNjaGVkdWxlZCkge1xuICAgICAgICAgICAgZmFzdGRvbS5zY2hlZHVsZWQgPSB0cnVlO1xuICAgICAgICAgICAgcmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZhc3Rkb20uZmx1c2guYmluZChmYXN0ZG9tKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBydW5UYXNrcyh0YXNrcykge1xuICAgICAgICB2YXIgdGFzaztcbiAgICAgICAgd2hpbGUgKCh0YXNrID0gdGFza3Muc2hpZnQoKSkpIHtcbiAgICAgICAgICAgIHRhc2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHJlbW92ZSQxKGFycmF5LCBpdGVtKSB7XG4gICAgICAgIHZhciBpbmRleCA9IGFycmF5LmluZGV4T2YoaXRlbSk7XG4gICAgICAgIHJldHVybiAhIX5pbmRleCAmJiAhIWFycmF5LnNwbGljZShpbmRleCwgMSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gTW91c2VUcmFja2VyKCkge31cblxuICAgIE1vdXNlVHJhY2tlci5wcm90b3R5cGUgPSB7XG5cbiAgICAgICAgcG9zaXRpb25zOiBbXSxcbiAgICAgICAgcG9zaXRpb246IG51bGwsXG5cbiAgICAgICAgaW5pdDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9ucyA9IFtdO1xuICAgICAgICAgICAgdGhpcy5wb3NpdGlvbiA9IG51bGw7XG5cbiAgICAgICAgICAgIHZhciB0aWNraW5nID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLnVuYmluZCA9IG9uKGRvY3VtZW50LCAnbW91c2Vtb3ZlJywgZnVuY3Rpb24gKGUpIHtcblxuICAgICAgICAgICAgICAgIGlmICh0aWNraW5nKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgdGltZSA9IERhdGUubm93KCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZWYgPSB0aGlzJDEucG9zaXRpb25zO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gcmVmLmxlbmd0aDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobGVuZ3RoICYmICh0aW1lIC0gdGhpcyQxLnBvc2l0aW9uc1tsZW5ndGggLSAxXS50aW1lID4gMTAwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLnBvc2l0aW9ucy5zcGxpY2UoMCwgbGVuZ3RoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMkMS5wb3NpdGlvbnMucHVzaCh7dGltZTogdGltZSwgeDogZS5wYWdlWCwgeTogZS5wYWdlWX0pO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzJDEucG9zaXRpb25zLmxlbmd0aCA+IDUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMkMS5wb3NpdGlvbnMuc2hpZnQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRpY2tpbmcgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9LCA1KTtcblxuICAgICAgICAgICAgICAgIHRpY2tpbmcgPSB0cnVlO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSxcblxuICAgICAgICBjYW5jZWw6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgaWYgKHRoaXMudW5iaW5kKSB7XG4gICAgICAgICAgICAgICAgdGhpcy51bmJpbmQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBtb3Zlc1RvOiBmdW5jdGlvbih0YXJnZXQpIHtcblxuICAgICAgICAgICAgaWYgKHRoaXMucG9zaXRpb25zLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBwID0gb2Zmc2V0KHRhcmdldCk7XG4gICAgICAgICAgICB2YXIgcG9zaXRpb24kJDEgPSB0aGlzLnBvc2l0aW9uc1t0aGlzLnBvc2l0aW9ucy5sZW5ndGggLSAxXTtcbiAgICAgICAgICAgIHZhciByZWYgPSB0aGlzLnBvc2l0aW9ucztcbiAgICAgICAgICAgIHZhciBwcmV2UG9zID0gcmVmWzBdO1xuXG4gICAgICAgICAgICBpZiAocC5sZWZ0IDw9IHBvc2l0aW9uJCQxLnggJiYgcG9zaXRpb24kJDEueCA8PSBwLnJpZ2h0ICYmIHAudG9wIDw9IHBvc2l0aW9uJCQxLnkgJiYgcG9zaXRpb24kJDEueSA8PSBwLmJvdHRvbSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHBvaW50cyA9IFtcbiAgICAgICAgICAgICAgICBbe3g6IHAubGVmdCwgeTogcC50b3B9LCB7eDogcC5yaWdodCwgeTogcC5ib3R0b219XSxcbiAgICAgICAgICAgICAgICBbe3g6IHAucmlnaHQsIHk6IHAudG9wfSwge3g6IHAubGVmdCwgeTogcC5ib3R0b219XVxuICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgaWYgKHAucmlnaHQgPD0gcG9zaXRpb24kJDEueCkgOyBlbHNlIGlmIChwLmxlZnQgPj0gcG9zaXRpb24kJDEueCkge1xuICAgICAgICAgICAgICAgIHBvaW50c1swXS5yZXZlcnNlKCk7XG4gICAgICAgICAgICAgICAgcG9pbnRzWzFdLnJldmVyc2UoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocC5ib3R0b20gPD0gcG9zaXRpb24kJDEueSkge1xuICAgICAgICAgICAgICAgIHBvaW50c1swXS5yZXZlcnNlKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHAudG9wID49IHBvc2l0aW9uJCQxLnkpIHtcbiAgICAgICAgICAgICAgICBwb2ludHNbMV0ucmV2ZXJzZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gISFwb2ludHMucmVkdWNlKGZ1bmN0aW9uIChyZXN1bHQsIHBvaW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdCArIChzbG9wZShwcmV2UG9zLCBwb2ludFswXSkgPCBzbG9wZShwb3NpdGlvbiQkMSwgcG9pbnRbMF0pICYmIHNsb3BlKHByZXZQb3MsIHBvaW50WzFdKSA+IHNsb3BlKHBvc2l0aW9uJCQxLCBwb2ludFsxXSkpO1xuICAgICAgICAgICAgfSwgMCk7XG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBzbG9wZShhLCBiKSB7XG4gICAgICAgIHJldHVybiAoYi55IC0gYS55KSAvIChiLnggLSBhLngpO1xuICAgIH1cblxuICAgIHZhciBzdHJhdHMgPSB7fTtcblxuICAgIC8vIGNvbmNhdCBzdHJhdGVneVxuICAgIHN0cmF0cy5hcmdzID1cbiAgICBzdHJhdHMuZXZlbnRzID1cbiAgICBzdHJhdHMuaW5pdCA9XG4gICAgc3RyYXRzLmNyZWF0ZWQgPVxuICAgIHN0cmF0cy5iZWZvcmVDb25uZWN0ID1cbiAgICBzdHJhdHMuY29ubmVjdGVkID1cbiAgICBzdHJhdHMucmVhZHkgPVxuICAgIHN0cmF0cy5iZWZvcmVEaXNjb25uZWN0ID1cbiAgICBzdHJhdHMuZGlzY29ubmVjdGVkID1cbiAgICBzdHJhdHMuZGVzdHJveSA9IGZ1bmN0aW9uIChwYXJlbnRWYWwsIGNoaWxkVmFsKSB7XG5cbiAgICAgICAgcGFyZW50VmFsID0gcGFyZW50VmFsICYmICFpc0FycmF5KHBhcmVudFZhbCkgPyBbcGFyZW50VmFsXSA6IHBhcmVudFZhbDtcblxuICAgICAgICByZXR1cm4gY2hpbGRWYWxcbiAgICAgICAgICAgID8gcGFyZW50VmFsXG4gICAgICAgICAgICAgICAgPyBwYXJlbnRWYWwuY29uY2F0KGNoaWxkVmFsKVxuICAgICAgICAgICAgICAgIDogaXNBcnJheShjaGlsZFZhbClcbiAgICAgICAgICAgICAgICAgICAgPyBjaGlsZFZhbFxuICAgICAgICAgICAgICAgICAgICA6IFtjaGlsZFZhbF1cbiAgICAgICAgICAgIDogcGFyZW50VmFsO1xuICAgIH07XG5cbiAgICAvLyB1cGRhdGUgc3RyYXRlZ3lcbiAgICBzdHJhdHMudXBkYXRlID0gZnVuY3Rpb24gKHBhcmVudFZhbCwgY2hpbGRWYWwpIHtcbiAgICAgICAgcmV0dXJuIHN0cmF0cy5hcmdzKHBhcmVudFZhbCwgaXNGdW5jdGlvbihjaGlsZFZhbCkgPyB7cmVhZDogY2hpbGRWYWx9IDogY2hpbGRWYWwpO1xuICAgIH07XG5cbiAgICAvLyBwcm9wZXJ0eSBzdHJhdGVneVxuICAgIHN0cmF0cy5wcm9wcyA9IGZ1bmN0aW9uIChwYXJlbnRWYWwsIGNoaWxkVmFsKSB7XG5cbiAgICAgICAgaWYgKGlzQXJyYXkoY2hpbGRWYWwpKSB7XG4gICAgICAgICAgICBjaGlsZFZhbCA9IGNoaWxkVmFsLnJlZHVjZShmdW5jdGlvbiAodmFsdWUsIGtleSkge1xuICAgICAgICAgICAgICAgIHZhbHVlW2tleV0gPSBTdHJpbmc7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICAgICAgfSwge30pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHN0cmF0cy5tZXRob2RzKHBhcmVudFZhbCwgY2hpbGRWYWwpO1xuICAgIH07XG5cbiAgICAvLyBleHRlbmQgc3RyYXRlZ3lcbiAgICBzdHJhdHMuY29tcHV0ZWQgPVxuICAgIHN0cmF0cy5tZXRob2RzID0gZnVuY3Rpb24gKHBhcmVudFZhbCwgY2hpbGRWYWwpIHtcbiAgICAgICAgcmV0dXJuIGNoaWxkVmFsXG4gICAgICAgICAgICA/IHBhcmVudFZhbFxuICAgICAgICAgICAgICAgID8gYXNzaWduKHt9LCBwYXJlbnRWYWwsIGNoaWxkVmFsKVxuICAgICAgICAgICAgICAgIDogY2hpbGRWYWxcbiAgICAgICAgICAgIDogcGFyZW50VmFsO1xuICAgIH07XG5cbiAgICAvLyBkYXRhIHN0cmF0ZWd5XG4gICAgc3RyYXRzLmRhdGEgPSBmdW5jdGlvbiAocGFyZW50VmFsLCBjaGlsZFZhbCwgdm0pIHtcblxuICAgICAgICBpZiAoIXZtKSB7XG5cbiAgICAgICAgICAgIGlmICghY2hpbGRWYWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGFyZW50VmFsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIXBhcmVudFZhbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZFZhbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uICh2bSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBtZXJnZUZuRGF0YShwYXJlbnRWYWwsIGNoaWxkVmFsLCB2bSk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWVyZ2VGbkRhdGEocGFyZW50VmFsLCBjaGlsZFZhbCwgdm0pO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBtZXJnZUZuRGF0YShwYXJlbnRWYWwsIGNoaWxkVmFsLCB2bSkge1xuICAgICAgICByZXR1cm4gc3RyYXRzLmNvbXB1dGVkKFxuICAgICAgICAgICAgaXNGdW5jdGlvbihwYXJlbnRWYWwpXG4gICAgICAgICAgICAgICAgPyBwYXJlbnRWYWwuY2FsbCh2bSwgdm0pXG4gICAgICAgICAgICAgICAgOiBwYXJlbnRWYWwsXG4gICAgICAgICAgICBpc0Z1bmN0aW9uKGNoaWxkVmFsKVxuICAgICAgICAgICAgICAgID8gY2hpbGRWYWwuY2FsbCh2bSwgdm0pXG4gICAgICAgICAgICAgICAgOiBjaGlsZFZhbFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8vIGRlZmF1bHQgc3RyYXRlZ3lcbiAgICB2YXIgZGVmYXVsdFN0cmF0ID0gZnVuY3Rpb24gKHBhcmVudFZhbCwgY2hpbGRWYWwpIHtcbiAgICAgICAgcmV0dXJuIGlzVW5kZWZpbmVkKGNoaWxkVmFsKSA/IHBhcmVudFZhbCA6IGNoaWxkVmFsO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBtZXJnZU9wdGlvbnMocGFyZW50LCBjaGlsZCwgdm0pIHtcblxuICAgICAgICB2YXIgb3B0aW9ucyA9IHt9O1xuXG4gICAgICAgIGlmIChpc0Z1bmN0aW9uKGNoaWxkKSkge1xuICAgICAgICAgICAgY2hpbGQgPSBjaGlsZC5vcHRpb25zO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGNoaWxkLmV4dGVuZHMpIHtcbiAgICAgICAgICAgIHBhcmVudCA9IG1lcmdlT3B0aW9ucyhwYXJlbnQsIGNoaWxkLmV4dGVuZHMsIHZtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChjaGlsZC5taXhpbnMpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwLCBsID0gY2hpbGQubWl4aW5zLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgICAgICAgICAgIHBhcmVudCA9IG1lcmdlT3B0aW9ucyhwYXJlbnQsIGNoaWxkLm1peGluc1tpXSwgdm0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZm9yICh2YXIga2V5IGluIHBhcmVudCkge1xuICAgICAgICAgICAgbWVyZ2VLZXkoa2V5KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAodmFyIGtleSQxIGluIGNoaWxkKSB7XG4gICAgICAgICAgICBpZiAoIWhhc093bihwYXJlbnQsIGtleSQxKSkge1xuICAgICAgICAgICAgICAgIG1lcmdlS2V5KGtleSQxKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIG1lcmdlS2V5KGtleSkge1xuICAgICAgICAgICAgb3B0aW9uc1trZXldID0gKHN0cmF0c1trZXldIHx8IGRlZmF1bHRTdHJhdCkocGFyZW50W2tleV0sIGNoaWxkW2tleV0sIHZtKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBvcHRpb25zO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHBhcnNlT3B0aW9ucyhvcHRpb25zLCBhcmdzKSB7XG4gICAgICAgIHZhciBvYmo7XG5cbiAgICAgICAgaWYgKCBhcmdzID09PSB2b2lkIDAgKSBhcmdzID0gW107XG5cbiAgICAgICAgdHJ5IHtcblxuICAgICAgICAgICAgcmV0dXJuICFvcHRpb25zXG4gICAgICAgICAgICAgICAgPyB7fVxuICAgICAgICAgICAgICAgIDogc3RhcnRzV2l0aChvcHRpb25zLCAneycpXG4gICAgICAgICAgICAgICAgICAgID8gSlNPTi5wYXJzZShvcHRpb25zKVxuICAgICAgICAgICAgICAgICAgICA6IGFyZ3MubGVuZ3RoICYmICFpbmNsdWRlcyhvcHRpb25zLCAnOicpXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICgoIG9iaiA9IHt9LCBvYmpbYXJnc1swXV0gPSBvcHRpb25zLCBvYmogKSlcbiAgICAgICAgICAgICAgICAgICAgICAgIDogb3B0aW9ucy5zcGxpdCgnOycpLnJlZHVjZShmdW5jdGlvbiAob3B0aW9ucywgb3B0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlZiA9IG9wdGlvbi5zcGxpdCgvOiguKikvKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIga2V5ID0gcmVmWzBdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IHJlZlsxXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa2V5ICYmICFpc1VuZGVmaW5lZCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uc1trZXkudHJpbSgpXSA9IHZhbHVlLnRyaW0oKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9wdGlvbnM7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCB7fSk7XG5cbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICB2YXIgaWQgPSAwO1xuXG4gICAgdmFyIFBsYXllciA9IGZ1bmN0aW9uKGVsKSB7XG4gICAgICAgIHRoaXMuaWQgPSArK2lkO1xuICAgICAgICB0aGlzLmVsID0gdG9Ob2RlKGVsKTtcbiAgICB9O1xuXG4gICAgUGxheWVyLnByb3RvdHlwZS5pc1ZpZGVvID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc1lvdXR1YmUoKSB8fCB0aGlzLmlzVmltZW8oKSB8fCB0aGlzLmlzSFRNTDUoKTtcbiAgICB9O1xuXG4gICAgUGxheWVyLnByb3RvdHlwZS5pc0hUTUw1ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC50YWdOYW1lID09PSAnVklERU8nO1xuICAgIH07XG5cbiAgICBQbGF5ZXIucHJvdG90eXBlLmlzSUZyYW1lID0gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lbC50YWdOYW1lID09PSAnSUZSQU1FJztcbiAgICB9O1xuXG4gICAgUGxheWVyLnByb3RvdHlwZS5pc1lvdXR1YmUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzSUZyYW1lKCkgJiYgISF0aGlzLmVsLnNyYy5tYXRjaCgvXFwvXFwvLio/eW91dHViZSgtbm9jb29raWUpP1xcLlthLXpdK1xcLyh3YXRjaFxcP3Y9W14mXFxzXSt8ZW1iZWQpfHlvdXR1XFwuYmVcXC8uKi8pO1xuICAgIH07XG5cbiAgICBQbGF5ZXIucHJvdG90eXBlLmlzVmltZW8gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzSUZyYW1lKCkgJiYgISF0aGlzLmVsLnNyYy5tYXRjaCgvdmltZW9cXC5jb21cXC92aWRlb1xcLy4qLyk7XG4gICAgfTtcblxuICAgIFBsYXllci5wcm90b3R5cGUuZW5hYmxlQXBpID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICBpZiAodGhpcy5yZWFkeSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVhZHk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgeW91dHViZSA9IHRoaXMuaXNZb3V0dWJlKCk7XG4gICAgICAgIHZhciB2aW1lbyA9IHRoaXMuaXNWaW1lbygpO1xuXG4gICAgICAgIHZhciBwb2xsZXI7XG5cbiAgICAgICAgaWYgKHlvdXR1YmUgfHwgdmltZW8pIHtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVhZHkgPSBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG5cbiAgICAgICAgICAgICAgICBvbmNlKHRoaXMkMS5lbCwgJ2xvYWQnLCBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh5b3V0dWJlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGlzdGVuZXIgPSBmdW5jdGlvbiAoKSB7IHJldHVybiBwb3N0KHRoaXMkMS5lbCwge2V2ZW50OiAnbGlzdGVuaW5nJywgaWQ6IHRoaXMkMS5pZH0pOyB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgcG9sbGVyID0gc2V0SW50ZXJ2YWwobGlzdGVuZXIsIDEwMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBsaXN0ZW4oZnVuY3Rpb24gKGRhdGEkJDEpIHsgcmV0dXJuIHlvdXR1YmUgJiYgZGF0YSQkMS5pZCA9PT0gdGhpcyQxLmlkICYmIGRhdGEkJDEuZXZlbnQgPT09ICdvblJlYWR5JyB8fCB2aW1lbyAmJiBOdW1iZXIoZGF0YSQkMS5wbGF5ZXJfaWQpID09PSB0aGlzJDEuaWQ7IH0pXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvbGxlciAmJiBjbGVhckludGVydmFsKHBvbGxlcik7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgYXR0cih0aGlzJDEuZWwsICdzcmMnLCAoXCJcIiArICh0aGlzJDEuZWwuc3JjKSArIChpbmNsdWRlcyh0aGlzJDEuZWwuc3JjLCAnPycpID8gJyYnIDogJz8nKSArICh5b3V0dWJlID8gJ2VuYWJsZWpzYXBpPTEnIDogKFwiYXBpPTEmcGxheWVyX2lkPVwiICsgKHRoaXMkMS5pZCkpKSkpO1xuXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UkMS5yZXNvbHZlKCk7XG5cbiAgICB9O1xuXG4gICAgUGxheWVyLnByb3RvdHlwZS5wbGF5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICBpZiAoIXRoaXMuaXNWaWRlbygpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0lGcmFtZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZUFwaSgpLnRoZW4oZnVuY3Rpb24gKCkgeyByZXR1cm4gcG9zdCh0aGlzJDEuZWwsIHtmdW5jOiAncGxheVZpZGVvJywgbWV0aG9kOiAncGxheSd9KTsgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5pc0hUTUw1KCkpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgdmFyIHByb21pc2UgPSB0aGlzLmVsLnBsYXkoKTtcblxuICAgICAgICAgICAgICAgIGlmIChwcm9taXNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb21pc2UuY2F0Y2gobm9vcCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBQbGF5ZXIucHJvdG90eXBlLnBhdXNlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICBpZiAoIXRoaXMuaXNWaWRlbygpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0lGcmFtZSgpKSB7XG4gICAgICAgICAgICB0aGlzLmVuYWJsZUFwaSgpLnRoZW4oZnVuY3Rpb24gKCkgeyByZXR1cm4gcG9zdCh0aGlzJDEuZWwsIHtmdW5jOiAncGF1c2VWaWRlbycsIG1ldGhvZDogJ3BhdXNlJ30pOyB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzSFRNTDUoKSkge1xuICAgICAgICAgICAgdGhpcy5lbC5wYXVzZSgpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIFBsYXllci5wcm90b3R5cGUubXV0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVmlkZW8oKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNJRnJhbWUoKSkge1xuICAgICAgICAgICAgdGhpcy5lbmFibGVBcGkoKS50aGVuKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHBvc3QodGhpcyQxLmVsLCB7ZnVuYzogJ211dGUnLCBtZXRob2Q6ICdzZXRWb2x1bWUnLCB2YWx1ZTogMH0pOyB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzSFRNTDUoKSkge1xuICAgICAgICAgICAgdGhpcy5lbC5tdXRlZCA9IHRydWU7XG4gICAgICAgICAgICBhdHRyKHRoaXMuZWwsICdtdXRlZCcsICcnKTtcbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHBvc3QoZWwsIGNtZCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgICAgZWwuY29udGVudFdpbmRvdy5wb3N0TWVzc2FnZShKU09OLnN0cmluZ2lmeShhc3NpZ24oe2V2ZW50OiAnY29tbWFuZCd9LCBjbWQpKSwgJyonKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge31cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsaXN0ZW4oY2IpIHtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSkge1xuXG4gICAgICAgICAgICBvbmNlKHdpbmRvdywgJ21lc3NhZ2UnLCBmdW5jdGlvbiAoXywgZGF0YSQkMSkgeyByZXR1cm4gcmVzb2x2ZShkYXRhJCQxKTsgfSwgZmFsc2UsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgZGF0YSQkMSA9IHJlZi5kYXRhO1xuXG5cbiAgICAgICAgICAgICAgICBpZiAoIWRhdGEkJDEgfHwgIWlzU3RyaW5nKGRhdGEkJDEpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICBkYXRhJCQxID0gSlNPTi5wYXJzZShkYXRhJCQxKTtcbiAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZGF0YSQkMSAmJiBjYihkYXRhJCQxKTtcblxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgfSk7XG5cbiAgICB9XG5cbiAgICAvKlxuICAgICAgICBCYXNlZCBvbjpcbiAgICAgICAgQ29weXJpZ2h0IChjKSAyMDEwLTIwMTYgVGhvbWFzIEZ1Y2hzXG4gICAgICAgIGh0dHA6Ly96ZXB0b2pzLmNvbS9cbiAgICAqL1xuXG4gICAgdmFyIHRvdWNoID0ge30sIGNsaWNrVGltZW91dCwgc3dpcGVUaW1lb3V0LCB0YXBUaW1lb3V0LCBjbGlja2VkO1xuXG4gICAgZnVuY3Rpb24gc3dpcGVEaXJlY3Rpb24ocmVmKSB7XG4gICAgICAgIHZhciB4MSA9IHJlZi54MTtcbiAgICAgICAgdmFyIHgyID0gcmVmLngyO1xuICAgICAgICB2YXIgeTEgPSByZWYueTE7XG4gICAgICAgIHZhciB5MiA9IHJlZi55MjtcblxuICAgICAgICByZXR1cm4gTWF0aC5hYnMoeDEgLSB4MikgPj0gTWF0aC5hYnMoeTEgLSB5MikgPyAoeDEgLSB4MiA+IDAgPyAnTGVmdCcgOiAnUmlnaHQnKSA6ICh5MSAtIHkyID4gMCA/ICdVcCcgOiAnRG93bicpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNhbmNlbEFsbCgpIHtcbiAgICAgICAgY2xpY2tUaW1lb3V0ICYmIGNsZWFyVGltZW91dChjbGlja1RpbWVvdXQpO1xuICAgICAgICBzd2lwZVRpbWVvdXQgJiYgY2xlYXJUaW1lb3V0KHN3aXBlVGltZW91dCk7XG4gICAgICAgIHRhcFRpbWVvdXQgJiYgY2xlYXJUaW1lb3V0KHRhcFRpbWVvdXQpO1xuICAgICAgICBjbGlja1RpbWVvdXQgPSBzd2lwZVRpbWVvdXQgPSB0YXBUaW1lb3V0ID0gbnVsbDtcbiAgICAgICAgdG91Y2ggPSB7fTtcbiAgICB9XG5cbiAgICByZWFkeShmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgb24oZG9jdW1lbnQsICdjbGljaycsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIGNsaWNrZWQgPSB0cnVlOyB9LCB0cnVlKTtcblxuICAgICAgICBvbihkb2N1bWVudCwgcG9pbnRlckRvd24sIGZ1bmN0aW9uIChlKSB7XG5cbiAgICAgICAgICAgIHZhciB0YXJnZXQgPSBlLnRhcmdldDtcbiAgICAgICAgICAgIHZhciByZWYgPSBnZXRQb3MkMShlKTtcbiAgICAgICAgICAgIHZhciB4ID0gcmVmLng7XG4gICAgICAgICAgICB2YXIgeSA9IHJlZi55O1xuICAgICAgICAgICAgdmFyIG5vdyA9IERhdGUubm93KCk7XG4gICAgICAgICAgICB2YXIgdHlwZSA9IGdldFR5cGUoZS50eXBlKTtcblxuICAgICAgICAgICAgaWYgKHRvdWNoLnR5cGUgJiYgdG91Y2gudHlwZSAhPT0gdHlwZSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdG91Y2guZWwgPSAndGFnTmFtZScgaW4gdGFyZ2V0ID8gdGFyZ2V0IDogdGFyZ2V0LnBhcmVudE5vZGU7XG5cbiAgICAgICAgICAgIGNsaWNrVGltZW91dCAmJiBjbGVhclRpbWVvdXQoY2xpY2tUaW1lb3V0KTtcblxuICAgICAgICAgICAgdG91Y2gueDEgPSB4O1xuICAgICAgICAgICAgdG91Y2gueTEgPSB5O1xuXG4gICAgICAgICAgICBpZiAodG91Y2gubGFzdCAmJiBub3cgLSB0b3VjaC5sYXN0IDw9IDI1MCkge1xuICAgICAgICAgICAgICAgIHRvdWNoID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRvdWNoLnR5cGUgPSB0eXBlO1xuICAgICAgICAgICAgdG91Y2gubGFzdCA9IG5vdztcblxuICAgICAgICAgICAgY2xpY2tlZCA9IGUuYnV0dG9uID4gMDtcblxuICAgICAgICB9KTtcblxuICAgICAgICBvbihkb2N1bWVudCwgcG9pbnRlck1vdmUsIGZ1bmN0aW9uIChlKSB7XG5cbiAgICAgICAgICAgIGlmIChlLmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciByZWYgPSBnZXRQb3MkMShlKTtcbiAgICAgICAgICAgIHZhciB4ID0gcmVmLng7XG4gICAgICAgICAgICB2YXIgeSA9IHJlZi55O1xuXG4gICAgICAgICAgICB0b3VjaC54MiA9IHg7XG4gICAgICAgICAgICB0b3VjaC55MiA9IHk7XG5cbiAgICAgICAgfSk7XG5cbiAgICAgICAgb24oZG9jdW1lbnQsIHBvaW50ZXJVcCwgZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgdmFyIHR5cGUgPSByZWYudHlwZTtcbiAgICAgICAgICAgIHZhciB0YXJnZXQgPSByZWYudGFyZ2V0O1xuXG5cbiAgICAgICAgICAgIGlmICh0b3VjaC50eXBlICE9PSBnZXRUeXBlKHR5cGUpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBzd2lwZVxuICAgICAgICAgICAgaWYgKHRvdWNoLngyICYmIE1hdGguYWJzKHRvdWNoLngxIC0gdG91Y2gueDIpID4gMzAgfHwgdG91Y2gueTIgJiYgTWF0aC5hYnModG91Y2gueTEgLSB0b3VjaC55MikgPiAzMCkge1xuXG4gICAgICAgICAgICAgICAgc3dpcGVUaW1lb3V0ID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0b3VjaC5lbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcih0b3VjaC5lbCwgJ3N3aXBlJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKHRvdWNoLmVsLCAoXCJzd2lwZVwiICsgKHN3aXBlRGlyZWN0aW9uKHRvdWNoKSkpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0b3VjaCA9IHt9O1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAvLyBub3JtYWwgdGFwXG4gICAgICAgICAgICB9IGVsc2UgaWYgKCdsYXN0JyBpbiB0b3VjaCkge1xuXG4gICAgICAgICAgICAgICAgdGFwVGltZW91dCA9IHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gdHJpZ2dlcih0b3VjaC5lbCwgJ3RhcCcpOyB9KTtcblxuICAgICAgICAgICAgICAgIC8vIHRyaWdnZXIgc2luZ2xlIGNsaWNrIGFmdGVyIDM1MG1zIG9mIGluYWN0aXZpdHlcbiAgICAgICAgICAgICAgICBpZiAodG91Y2guZWwgJiYgdHlwZSAhPT0gJ21vdXNldXAnICYmIHdpdGhpbih0YXJnZXQsIHRvdWNoLmVsKSkge1xuICAgICAgICAgICAgICAgICAgICBjbGlja1RpbWVvdXQgPSBzZXRUaW1lb3V0KGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWNrVGltZW91dCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodG91Y2guZWwgJiYgIWNsaWNrZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKHRvdWNoLmVsLCAnY2xpY2snKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHRvdWNoID0ge307XG4gICAgICAgICAgICAgICAgICAgIH0sIDM1MCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRvdWNoID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSk7XG5cbiAgICAgICAgb24oZG9jdW1lbnQsICd0b3VjaGNhbmNlbCcsIGNhbmNlbEFsbCk7XG4gICAgICAgIG9uKHdpbmRvdywgJ3Njcm9sbCcsIGNhbmNlbEFsbCk7XG5cbiAgICB9KTtcblxuICAgIHZhciB0b3VjaGluZyA9IGZhbHNlO1xuICAgIG9uKGRvY3VtZW50LCAndG91Y2hzdGFydCcsIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRvdWNoaW5nID0gdHJ1ZTsgfSwgdHJ1ZSk7XG4gICAgb24oZG9jdW1lbnQsICdjbGljaycsIGZ1bmN0aW9uICgpIHt0b3VjaGluZyA9IGZhbHNlO30pO1xuICAgIG9uKGRvY3VtZW50LCAndG91Y2hjYW5jZWwnLCBmdW5jdGlvbiAoKSB7IHJldHVybiB0b3VjaGluZyA9IGZhbHNlOyB9LCB0cnVlKTtcblxuICAgIGZ1bmN0aW9uIGlzVG91Y2goZSkge1xuICAgICAgICByZXR1cm4gdG91Y2hpbmcgfHwgZS5wb2ludGVyVHlwZSA9PT0gJ3RvdWNoJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRQb3MkMShlKSB7XG4gICAgICAgIHZhciB0b3VjaGVzID0gZS50b3VjaGVzO1xuICAgICAgICB2YXIgY2hhbmdlZFRvdWNoZXMgPSBlLmNoYW5nZWRUb3VjaGVzO1xuICAgICAgICB2YXIgcmVmID0gdG91Y2hlcyAmJiB0b3VjaGVzWzBdIHx8IGNoYW5nZWRUb3VjaGVzICYmIGNoYW5nZWRUb3VjaGVzWzBdIHx8IGU7XG4gICAgICAgIHZhciB4ID0gcmVmLnBhZ2VYO1xuICAgICAgICB2YXIgeSA9IHJlZi5wYWdlWTtcblxuICAgICAgICByZXR1cm4ge3g6IHgsIHk6IHl9O1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldFR5cGUodHlwZSkge1xuICAgICAgICByZXR1cm4gdHlwZS5zbGljZSgwLCA1KTtcbiAgICB9XG5cblxuXG4gICAgdmFyIHV0aWwgPSAvKiNfX1BVUkVfXyovT2JqZWN0LmZyZWV6ZSh7XG4gICAgICAgIGFqYXg6IGFqYXgsXG4gICAgICAgIGdldEltYWdlOiBnZXRJbWFnZSxcbiAgICAgICAgdHJhbnNpdGlvbjogdHJhbnNpdGlvbixcbiAgICAgICAgVHJhbnNpdGlvbjogVHJhbnNpdGlvbixcbiAgICAgICAgYW5pbWF0ZTogYW5pbWF0ZSxcbiAgICAgICAgQW5pbWF0aW9uOiBBbmltYXRpb24sXG4gICAgICAgIGF0dHI6IGF0dHIsXG4gICAgICAgIGhhc0F0dHI6IGhhc0F0dHIsXG4gICAgICAgIHJlbW92ZUF0dHI6IHJlbW92ZUF0dHIsXG4gICAgICAgIGZpbHRlckF0dHI6IGZpbHRlckF0dHIsXG4gICAgICAgIGRhdGE6IGRhdGEsXG4gICAgICAgIGFkZENsYXNzOiBhZGRDbGFzcyxcbiAgICAgICAgcmVtb3ZlQ2xhc3M6IHJlbW92ZUNsYXNzLFxuICAgICAgICByZW1vdmVDbGFzc2VzOiByZW1vdmVDbGFzc2VzLFxuICAgICAgICByZXBsYWNlQ2xhc3M6IHJlcGxhY2VDbGFzcyxcbiAgICAgICAgaGFzQ2xhc3M6IGhhc0NsYXNzLFxuICAgICAgICB0b2dnbGVDbGFzczogdG9nZ2xlQ2xhc3MsXG4gICAgICAgICQ6ICQsXG4gICAgICAgICQkOiAkJCxcbiAgICAgICAgcG9zaXRpb25BdDogcG9zaXRpb25BdCxcbiAgICAgICAgb2Zmc2V0OiBvZmZzZXQsXG4gICAgICAgIHBvc2l0aW9uOiBwb3NpdGlvbixcbiAgICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgIHdpZHRoOiB3aWR0aCxcbiAgICAgICAgZmxpcFBvc2l0aW9uOiBmbGlwUG9zaXRpb24sXG4gICAgICAgIGlzSW5WaWV3OiBpc0luVmlldyxcbiAgICAgICAgc2Nyb2xsZWRPdmVyOiBzY3JvbGxlZE92ZXIsXG4gICAgICAgIGlzUmVhZHk6IGlzUmVhZHksXG4gICAgICAgIHJlYWR5OiByZWFkeSxcbiAgICAgICAgaW5kZXg6IGluZGV4LFxuICAgICAgICBnZXRJbmRleDogZ2V0SW5kZXgsXG4gICAgICAgIGVtcHR5OiBlbXB0eSxcbiAgICAgICAgaHRtbDogaHRtbCxcbiAgICAgICAgcHJlcGVuZDogcHJlcGVuZCxcbiAgICAgICAgYXBwZW5kOiBhcHBlbmQsXG4gICAgICAgIGJlZm9yZTogYmVmb3JlLFxuICAgICAgICBhZnRlcjogYWZ0ZXIsXG4gICAgICAgIHJlbW92ZTogcmVtb3ZlLFxuICAgICAgICB3cmFwQWxsOiB3cmFwQWxsLFxuICAgICAgICB3cmFwSW5uZXI6IHdyYXBJbm5lcixcbiAgICAgICAgdW53cmFwOiB1bndyYXAsXG4gICAgICAgIGZyYWdtZW50OiBmcmFnbWVudCxcbiAgICAgICAgYXBwbHk6IGFwcGx5LFxuICAgICAgICBpc1J0bDogaXNSdGwsXG4gICAgICAgIGhhc1RvdWNoOiBoYXNUb3VjaCxcbiAgICAgICAgcG9pbnRlckRvd246IHBvaW50ZXJEb3duLFxuICAgICAgICBwb2ludGVyTW92ZTogcG9pbnRlck1vdmUsXG4gICAgICAgIHBvaW50ZXJVcDogcG9pbnRlclVwLFxuICAgICAgICBwb2ludGVyRW50ZXI6IHBvaW50ZXJFbnRlcixcbiAgICAgICAgcG9pbnRlckxlYXZlOiBwb2ludGVyTGVhdmUsXG4gICAgICAgIG9uOiBvbixcbiAgICAgICAgb2ZmOiBvZmYsXG4gICAgICAgIG9uY2U6IG9uY2UsXG4gICAgICAgIHRyaWdnZXI6IHRyaWdnZXIsXG4gICAgICAgIGNyZWF0ZUV2ZW50OiBjcmVhdGVFdmVudCxcbiAgICAgICAgdG9FdmVudFRhcmdldHM6IHRvRXZlbnRUYXJnZXRzLFxuICAgICAgICBwcmV2ZW50Q2xpY2s6IHByZXZlbnRDbGljayxcbiAgICAgICAgZmFzdGRvbTogZmFzdGRvbSxcbiAgICAgICAgaXNWb2lkRWxlbWVudDogaXNWb2lkRWxlbWVudCxcbiAgICAgICAgaXNWaXNpYmxlOiBpc1Zpc2libGUsXG4gICAgICAgIHNlbElucHV0OiBzZWxJbnB1dCxcbiAgICAgICAgaXNJbnB1dDogaXNJbnB1dCxcbiAgICAgICAgZmlsdGVyOiBmaWx0ZXIsXG4gICAgICAgIHdpdGhpbjogd2l0aGluLFxuICAgICAgICBiaW5kOiBiaW5kLFxuICAgICAgICBoYXNPd246IGhhc093bixcbiAgICAgICAgaHlwaGVuYXRlOiBoeXBoZW5hdGUsXG4gICAgICAgIGNhbWVsaXplOiBjYW1lbGl6ZSxcbiAgICAgICAgdWNmaXJzdDogdWNmaXJzdCxcbiAgICAgICAgc3RhcnRzV2l0aDogc3RhcnRzV2l0aCxcbiAgICAgICAgZW5kc1dpdGg6IGVuZHNXaXRoLFxuICAgICAgICBpbmNsdWRlczogaW5jbHVkZXMsXG4gICAgICAgIGlzQXJyYXk6IGlzQXJyYXksXG4gICAgICAgIGlzRnVuY3Rpb246IGlzRnVuY3Rpb24sXG4gICAgICAgIGlzT2JqZWN0OiBpc09iamVjdCxcbiAgICAgICAgaXNQbGFpbk9iamVjdDogaXNQbGFpbk9iamVjdCxcbiAgICAgICAgaXNXaW5kb3c6IGlzV2luZG93LFxuICAgICAgICBpc0RvY3VtZW50OiBpc0RvY3VtZW50LFxuICAgICAgICBpc0pRdWVyeTogaXNKUXVlcnksXG4gICAgICAgIGlzTm9kZTogaXNOb2RlLFxuICAgICAgICBpc05vZGVDb2xsZWN0aW9uOiBpc05vZGVDb2xsZWN0aW9uLFxuICAgICAgICBpc0Jvb2xlYW46IGlzQm9vbGVhbixcbiAgICAgICAgaXNTdHJpbmc6IGlzU3RyaW5nLFxuICAgICAgICBpc051bWJlcjogaXNOdW1iZXIsXG4gICAgICAgIGlzTnVtZXJpYzogaXNOdW1lcmljLFxuICAgICAgICBpc1VuZGVmaW5lZDogaXNVbmRlZmluZWQsXG4gICAgICAgIHRvQm9vbGVhbjogdG9Cb29sZWFuLFxuICAgICAgICB0b051bWJlcjogdG9OdW1iZXIsXG4gICAgICAgIHRvRmxvYXQ6IHRvRmxvYXQsXG4gICAgICAgIHRvTm9kZTogdG9Ob2RlLFxuICAgICAgICB0b05vZGVzOiB0b05vZGVzLFxuICAgICAgICB0b0xpc3Q6IHRvTGlzdCxcbiAgICAgICAgdG9NczogdG9NcyxcbiAgICAgICAgc3dhcDogc3dhcCxcbiAgICAgICAgYXNzaWduOiBhc3NpZ24sXG4gICAgICAgIGVhY2g6IGVhY2gsXG4gICAgICAgIHNvcnRCeTogc29ydEJ5LFxuICAgICAgICBjbGFtcDogY2xhbXAsXG4gICAgICAgIG5vb3A6IG5vb3AsXG4gICAgICAgIGludGVyc2VjdFJlY3Q6IGludGVyc2VjdFJlY3QsXG4gICAgICAgIHBvaW50SW5SZWN0OiBwb2ludEluUmVjdCxcbiAgICAgICAgRGltZW5zaW9uczogRGltZW5zaW9ucyxcbiAgICAgICAgTW91c2VUcmFja2VyOiBNb3VzZVRyYWNrZXIsXG4gICAgICAgIG1lcmdlT3B0aW9uczogbWVyZ2VPcHRpb25zLFxuICAgICAgICBwYXJzZU9wdGlvbnM6IHBhcnNlT3B0aW9ucyxcbiAgICAgICAgUGxheWVyOiBQbGF5ZXIsXG4gICAgICAgIFByb21pc2U6IFByb21pc2UkMSxcbiAgICAgICAgRGVmZXJyZWQ6IERlZmVycmVkLFxuICAgICAgICBxdWVyeTogcXVlcnksXG4gICAgICAgIHF1ZXJ5QWxsOiBxdWVyeUFsbCxcbiAgICAgICAgZmluZDogZmluZCxcbiAgICAgICAgZmluZEFsbDogZmluZEFsbCxcbiAgICAgICAgbWF0Y2hlczogbWF0Y2hlcyxcbiAgICAgICAgY2xvc2VzdDogY2xvc2VzdCxcbiAgICAgICAgcGFyZW50czogcGFyZW50cyxcbiAgICAgICAgZXNjYXBlOiBlc2NhcGUsXG4gICAgICAgIGNzczogY3NzLFxuICAgICAgICBnZXRTdHlsZXM6IGdldFN0eWxlcyxcbiAgICAgICAgZ2V0U3R5bGU6IGdldFN0eWxlLFxuICAgICAgICBnZXRDc3NWYXI6IGdldENzc1ZhcixcbiAgICAgICAgcHJvcE5hbWU6IHByb3BOYW1lLFxuICAgICAgICBpc1RvdWNoOiBpc1RvdWNoLFxuICAgICAgICBnZXRQb3M6IGdldFBvcyQxXG4gICAgfSk7XG5cbiAgICBmdW5jdGlvbiBjb21wb25lbnRBUEkgKFVJa2l0KSB7XG5cbiAgICAgICAgdmFyIERBVEEgPSBVSWtpdC5kYXRhO1xuXG4gICAgICAgIHZhciBjb21wb25lbnRzID0ge307XG5cbiAgICAgICAgVUlraXQuY29tcG9uZW50ID0gZnVuY3Rpb24gKG5hbWUsIG9wdGlvbnMpIHtcblxuICAgICAgICAgICAgaWYgKCFvcHRpb25zKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoaXNQbGFpbk9iamVjdChjb21wb25lbnRzW25hbWVdKSkge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRzW25hbWVdID0gVUlraXQuZXh0ZW5kKGNvbXBvbmVudHNbbmFtZV0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRzW25hbWVdO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIFVJa2l0W25hbWVdID0gZnVuY3Rpb24gKGVsZW1lbnQsIGRhdGEkJDEpIHtcbiAgICAgICAgICAgICAgICB2YXIgaSA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3NBcnJheSA9IEFycmF5KGkpO1xuICAgICAgICAgICAgICAgIHdoaWxlICggaS0tICkgYXJnc0FycmF5W2ldID0gYXJndW1lbnRzW2ldO1xuXG5cbiAgICAgICAgICAgICAgICB2YXIgY29tcG9uZW50ID0gVUlraXQuY29tcG9uZW50KG5hbWUpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QoZWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBjb21wb25lbnQoe2RhdGE6IGVsZW1lbnR9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoY29tcG9uZW50Lm9wdGlvbnMuZnVuY3Rpb25hbCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbmV3IGNvbXBvbmVudCh7ZGF0YTogW10uY29uY2F0KCBhcmdzQXJyYXkgKX0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBlbGVtZW50ICYmIGVsZW1lbnQubm9kZVR5cGUgPyBpbml0KGVsZW1lbnQpIDogJCQoZWxlbWVudCkubWFwKGluaXQpWzBdO1xuXG4gICAgICAgICAgICAgICAgZnVuY3Rpb24gaW5pdChlbGVtZW50KSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGluc3RhbmNlID0gVUlraXQuZ2V0Q29tcG9uZW50KGVsZW1lbnQsIG5hbWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbnN0YW5jZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRhJCQxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluc3RhbmNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnN0YW5jZS4kZGVzdHJveSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBjb21wb25lbnQoe2VsOiBlbGVtZW50LCBkYXRhOiBkYXRhJCQxfSk7XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHZhciBvcHQgPSBpc1BsYWluT2JqZWN0KG9wdGlvbnMpID8gYXNzaWduKHt9LCBvcHRpb25zKSA6IG9wdGlvbnMub3B0aW9ucztcblxuICAgICAgICAgICAgb3B0Lm5hbWUgPSBuYW1lO1xuXG4gICAgICAgICAgICBpZiAob3B0Lmluc3RhbGwpIHtcbiAgICAgICAgICAgICAgICBvcHQuaW5zdGFsbChVSWtpdCwgb3B0LCBuYW1lKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFVJa2l0Ll9pbml0aWFsaXplZCAmJiAhb3B0LmZ1bmN0aW9uYWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgaWQgPSBoeXBoZW5hdGUobmFtZSk7XG4gICAgICAgICAgICAgICAgZmFzdGRvbS5yZWFkKGZ1bmN0aW9uICgpIHsgcmV0dXJuIFVJa2l0W25hbWVdKChcIlt1ay1cIiArIGlkICsgXCJdLFtkYXRhLXVrLVwiICsgaWQgKyBcIl1cIikpOyB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudHNbbmFtZV0gPSBpc1BsYWluT2JqZWN0KG9wdGlvbnMpID8gb3B0IDogb3B0aW9ucztcbiAgICAgICAgfTtcblxuICAgICAgICBVSWtpdC5nZXRDb21wb25lbnRzID0gZnVuY3Rpb24gKGVsZW1lbnQpIHsgcmV0dXJuIGVsZW1lbnQgJiYgZWxlbWVudFtEQVRBXSB8fCB7fTsgfTtcbiAgICAgICAgVUlraXQuZ2V0Q29tcG9uZW50ID0gZnVuY3Rpb24gKGVsZW1lbnQsIG5hbWUpIHsgcmV0dXJuIFVJa2l0LmdldENvbXBvbmVudHMoZWxlbWVudClbbmFtZV07IH07XG5cbiAgICAgICAgVUlraXQuY29ubmVjdCA9IGZ1bmN0aW9uIChub2RlKSB7XG5cbiAgICAgICAgICAgIGlmIChub2RlW0RBVEFdKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIgbmFtZSBpbiBub2RlW0RBVEFdKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vZGVbREFUQV1bbmFtZV0uX2NhbGxDb25uZWN0ZWQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbm9kZS5hdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgbmFtZSQxID0gZ2V0Q29tcG9uZW50TmFtZShub2RlLmF0dHJpYnV0ZXNbaV0ubmFtZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAobmFtZSQxICYmIG5hbWUkMSBpbiBjb21wb25lbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgIFVJa2l0W25hbWUkMV0obm9kZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfTtcblxuICAgICAgICBVSWtpdC5kaXNjb25uZWN0ID0gZnVuY3Rpb24gKG5vZGUpIHtcbiAgICAgICAgICAgIGZvciAodmFyIG5hbWUgaW4gbm9kZVtEQVRBXSkge1xuICAgICAgICAgICAgICAgIG5vZGVbREFUQV1bbmFtZV0uX2NhbGxEaXNjb25uZWN0ZWQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldENvbXBvbmVudE5hbWUoYXR0cmlidXRlKSB7XG4gICAgICAgIHJldHVybiBzdGFydHNXaXRoKGF0dHJpYnV0ZSwgJ3VrLScpIHx8IHN0YXJ0c1dpdGgoYXR0cmlidXRlLCAnZGF0YS11ay0nKVxuICAgICAgICAgICAgPyBjYW1lbGl6ZShhdHRyaWJ1dGUucmVwbGFjZSgnZGF0YS11ay0nLCAnJykucmVwbGFjZSgndWstJywgJycpKVxuICAgICAgICAgICAgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBib290IChVSWtpdCkge1xuXG4gICAgICAgIHZhciBjb25uZWN0ID0gVUlraXQuY29ubmVjdDtcbiAgICAgICAgdmFyIGRpc2Nvbm5lY3QgPSBVSWtpdC5kaXNjb25uZWN0O1xuXG4gICAgICAgIGlmICghKCdNdXRhdGlvbk9ic2VydmVyJyBpbiB3aW5kb3cpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZG9jdW1lbnQuYm9keSkge1xuXG4gICAgICAgICAgICBpbml0KCk7XG5cbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgKG5ldyBNdXRhdGlvbk9ic2VydmVyKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgICAgIGlmIChkb2N1bWVudC5ib2R5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgICAgICBpbml0KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9KSkub2JzZXJ2ZShkb2N1bWVudCwge2NoaWxkTGlzdDogdHJ1ZSwgc3VidHJlZTogdHJ1ZX0pO1xuXG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBpbml0KCkge1xuXG4gICAgICAgICAgICBhcHBseSQkMShkb2N1bWVudC5ib2R5LCBjb25uZWN0KTtcblxuICAgICAgICAgICAgZmFzdGRvbS5mbHVzaCgpO1xuXG4gICAgICAgICAgICAobmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24gKG11dGF0aW9ucykgeyByZXR1cm4gbXV0YXRpb25zLmZvckVhY2goYXBwbHlNdXRhdGlvbik7IH0pKS5vYnNlcnZlKGRvY3VtZW50LCB7XG4gICAgICAgICAgICAgICAgY2hpbGRMaXN0OiB0cnVlLFxuICAgICAgICAgICAgICAgIHN1YnRyZWU6IHRydWUsXG4gICAgICAgICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB0cnVlXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgVUlraXQuX2luaXRpYWxpemVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGFwcGx5TXV0YXRpb24obXV0YXRpb24pIHtcblxuICAgICAgICAgICAgdmFyIHRhcmdldCA9IG11dGF0aW9uLnRhcmdldDtcbiAgICAgICAgICAgIHZhciB0eXBlID0gbXV0YXRpb24udHlwZTtcblxuICAgICAgICAgICAgdmFyIHVwZGF0ZSA9IHR5cGUgIT09ICdhdHRyaWJ1dGVzJ1xuICAgICAgICAgICAgICAgID8gYXBwbHlDaGlsZExpc3QobXV0YXRpb24pXG4gICAgICAgICAgICAgICAgOiBhcHBseUF0dHJpYnV0ZShtdXRhdGlvbik7XG5cbiAgICAgICAgICAgIHVwZGF0ZSAmJiBVSWtpdC51cGRhdGUodGFyZ2V0KTtcblxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gYXBwbHlBdHRyaWJ1dGUocmVmKSB7XG4gICAgICAgICAgICB2YXIgdGFyZ2V0ID0gcmVmLnRhcmdldDtcbiAgICAgICAgICAgIHZhciBhdHRyaWJ1dGVOYW1lID0gcmVmLmF0dHJpYnV0ZU5hbWU7XG5cblxuICAgICAgICAgICAgaWYgKGF0dHJpYnV0ZU5hbWUgPT09ICdocmVmJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgbmFtZSA9IGdldENvbXBvbmVudE5hbWUoYXR0cmlidXRlTmFtZSk7XG5cbiAgICAgICAgICAgIGlmICghbmFtZSB8fCAhKG5hbWUgaW4gVUlraXQpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoaGFzQXR0cih0YXJnZXQsIGF0dHJpYnV0ZU5hbWUpKSB7XG4gICAgICAgICAgICAgICAgVUlraXRbbmFtZV0odGFyZ2V0KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIGNvbXBvbmVudCA9IFVJa2l0LmdldENvbXBvbmVudCh0YXJnZXQsIG5hbWUpO1xuXG4gICAgICAgICAgICBpZiAoY29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgY29tcG9uZW50LiRkZXN0cm95KCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGFwcGx5Q2hpbGRMaXN0KHJlZikge1xuICAgICAgICAgICAgdmFyIGFkZGVkTm9kZXMgPSByZWYuYWRkZWROb2RlcztcbiAgICAgICAgICAgIHZhciByZW1vdmVkTm9kZXMgPSByZWYucmVtb3ZlZE5vZGVzO1xuXG5cbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgYWRkZWROb2Rlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIGFwcGx5JCQxKGFkZGVkTm9kZXNbaV0sIGNvbm5lY3QpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKHZhciBpJDEgPSAwOyBpJDEgPCByZW1vdmVkTm9kZXMubGVuZ3RoOyBpJDErKykge1xuICAgICAgICAgICAgICAgIGFwcGx5JCQxKHJlbW92ZWROb2Rlc1tpJDFdLCBkaXNjb25uZWN0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBhcHBseSQkMShub2RlLCBmbikge1xuXG4gICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSAhPT0gMSB8fCBoYXNBdHRyKG5vZGUsICd1ay1uby1ib290JykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGZuKG5vZGUpO1xuICAgICAgICAgICAgbm9kZSA9IG5vZGUuZmlyc3RFbGVtZW50Q2hpbGQ7XG4gICAgICAgICAgICB3aGlsZSAobm9kZSkge1xuICAgICAgICAgICAgICAgIHZhciBuZXh0ID0gbm9kZS5uZXh0RWxlbWVudFNpYmxpbmc7XG4gICAgICAgICAgICAgICAgYXBwbHkkJDEobm9kZSwgZm4pO1xuICAgICAgICAgICAgICAgIG5vZGUgPSBuZXh0O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnbG9iYWxBUEkgKFVJa2l0KSB7XG5cbiAgICAgICAgdmFyIERBVEEgPSBVSWtpdC5kYXRhO1xuXG4gICAgICAgIFVJa2l0LnVzZSA9IGZ1bmN0aW9uIChwbHVnaW4pIHtcblxuICAgICAgICAgICAgaWYgKHBsdWdpbi5pbnN0YWxsZWQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHBsdWdpbi5jYWxsKG51bGwsIHRoaXMpO1xuICAgICAgICAgICAgcGx1Z2luLmluc3RhbGxlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICB9O1xuXG4gICAgICAgIFVJa2l0Lm1peGluID0gZnVuY3Rpb24gKG1peGluLCBjb21wb25lbnQpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudCA9IChpc1N0cmluZyhjb21wb25lbnQpID8gVUlraXQuY29tcG9uZW50KGNvbXBvbmVudCkgOiBjb21wb25lbnQpIHx8IHRoaXM7XG4gICAgICAgICAgICBtaXhpbiA9IG1lcmdlT3B0aW9ucyh7fSwgbWl4aW4pO1xuICAgICAgICAgICAgbWl4aW4ubWl4aW5zID0gY29tcG9uZW50Lm9wdGlvbnMubWl4aW5zO1xuICAgICAgICAgICAgZGVsZXRlIGNvbXBvbmVudC5vcHRpb25zLm1peGlucztcbiAgICAgICAgICAgIGNvbXBvbmVudC5vcHRpb25zID0gbWVyZ2VPcHRpb25zKG1peGluLCBjb21wb25lbnQub3B0aW9ucyk7XG4gICAgICAgIH07XG5cbiAgICAgICAgVUlraXQuZXh0ZW5kID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcblxuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG5cbiAgICAgICAgICAgIHZhciBTdXBlciA9IHRoaXM7XG4gICAgICAgICAgICB2YXIgU3ViID0gZnVuY3Rpb24gVUlraXRDb21wb25lbnQgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9pbml0KG9wdGlvbnMpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgU3ViLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUoU3VwZXIucHJvdG90eXBlKTtcbiAgICAgICAgICAgIFN1Yi5wcm90b3R5cGUuY29uc3RydWN0b3IgPSBTdWI7XG4gICAgICAgICAgICBTdWIub3B0aW9ucyA9IG1lcmdlT3B0aW9ucyhTdXBlci5vcHRpb25zLCBvcHRpb25zKTtcblxuICAgICAgICAgICAgU3ViWydzdXBlciddID0gU3VwZXI7XG4gICAgICAgICAgICBTdWIuZXh0ZW5kID0gU3VwZXIuZXh0ZW5kO1xuXG4gICAgICAgICAgICByZXR1cm4gU3ViO1xuICAgICAgICB9O1xuXG4gICAgICAgIFVJa2l0LnVwZGF0ZSA9IGZ1bmN0aW9uIChlbGVtZW50LCBlKSB7XG5cbiAgICAgICAgICAgIGUgPSBjcmVhdGVFdmVudChlIHx8ICd1cGRhdGUnKTtcbiAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50ID8gdG9Ob2RlKGVsZW1lbnQpIDogZG9jdW1lbnQuYm9keTtcblxuICAgICAgICAgICAgcGF0aChlbGVtZW50KS5tYXAoZnVuY3Rpb24gKGVsZW1lbnQpIHsgcmV0dXJuIHVwZGF0ZShlbGVtZW50W0RBVEFdLCBlKTsgfSk7XG4gICAgICAgICAgICBhcHBseShlbGVtZW50LCBmdW5jdGlvbiAoZWxlbWVudCkgeyByZXR1cm4gdXBkYXRlKGVsZW1lbnRbREFUQV0sIGUpOyB9KTtcblxuICAgICAgICB9O1xuXG4gICAgICAgIHZhciBjb250YWluZXI7XG4gICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShVSWtpdCwgJ2NvbnRhaW5lcicsIHtcblxuICAgICAgICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGFpbmVyIHx8IGRvY3VtZW50LmJvZHk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICBjb250YWluZXIgPSAkKGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZShkYXRhJCQxLCBlKSB7XG5cbiAgICAgICAgICAgIGlmICghZGF0YSQkMSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yICh2YXIgbmFtZSBpbiBkYXRhJCQxKSB7XG4gICAgICAgICAgICAgICAgaWYgKGRhdGEkJDFbbmFtZV0uX2lzUmVhZHkpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YSQkMVtuYW1lXS5fY2FsbFVwZGF0ZShlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIHBhdGgoZWxlbWVudCkge1xuICAgICAgICAgICAgdmFyIHBhdGggPSBbXTtcblxuICAgICAgICAgICAgd2hpbGUgKGVsZW1lbnQgJiYgZWxlbWVudCAhPT0gZG9jdW1lbnQuYm9keSAmJiBlbGVtZW50LnBhcmVudE5vZGUpIHtcblxuICAgICAgICAgICAgICAgIGVsZW1lbnQgPSBlbGVtZW50LnBhcmVudE5vZGU7XG4gICAgICAgICAgICAgICAgcGF0aC51bnNoaWZ0KGVsZW1lbnQpO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBwYXRoO1xuICAgICAgICB9XG5cbiAgICB9XG5cbiAgICBmdW5jdGlvbiBob29rc0FQSSAoVUlraXQpIHtcblxuICAgICAgICBVSWtpdC5wcm90b3R5cGUuX2NhbGxIb29rID0gZnVuY3Rpb24gKGhvb2spIHtcbiAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgIHZhciBoYW5kbGVycyA9IHRoaXMuJG9wdGlvbnNbaG9va107XG5cbiAgICAgICAgICAgIGlmIChoYW5kbGVycykge1xuICAgICAgICAgICAgICAgIGhhbmRsZXJzLmZvckVhY2goZnVuY3Rpb24gKGhhbmRsZXIpIHsgcmV0dXJuIGhhbmRsZXIuY2FsbCh0aGlzJDEpOyB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBVSWtpdC5wcm90b3R5cGUuX2NhbGxDb25uZWN0ZWQgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICBpZiAodGhpcy5fY29ubmVjdGVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9kYXRhID0ge307XG4gICAgICAgICAgICB0aGlzLl9pbml0UHJvcHMoKTtcblxuICAgICAgICAgICAgdGhpcy5fY2FsbEhvb2soJ2JlZm9yZUNvbm5lY3QnKTtcbiAgICAgICAgICAgIHRoaXMuX2Nvbm5lY3RlZCA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuX2luaXRFdmVudHMoKTtcbiAgICAgICAgICAgIHRoaXMuX2luaXRPYnNlcnZlcigpO1xuXG4gICAgICAgICAgICB0aGlzLl9jYWxsSG9vaygnY29ubmVjdGVkJyk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5faXNSZWFkeSkge1xuICAgICAgICAgICAgICAgIHJlYWR5KGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMkMS5fY2FsbFJlYWR5KCk7IH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9jYWxsVXBkYXRlKCk7XG4gICAgICAgIH07XG5cbiAgICAgICAgVUlraXQucHJvdG90eXBlLl9jYWxsRGlzY29ubmVjdGVkID0gZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2Nvbm5lY3RlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fY2FsbEhvb2soJ2JlZm9yZURpc2Nvbm5lY3QnKTtcblxuICAgICAgICAgICAgaWYgKHRoaXMuX29ic2VydmVyKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX29ic2VydmVyID0gbnVsbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5fdW5iaW5kRXZlbnRzKCk7XG4gICAgICAgICAgICB0aGlzLl9jYWxsSG9vaygnZGlzY29ubmVjdGVkJyk7XG5cbiAgICAgICAgICAgIHRoaXMuX2Nvbm5lY3RlZCA9IGZhbHNlO1xuXG4gICAgICAgIH07XG5cbiAgICAgICAgVUlraXQucHJvdG90eXBlLl9jYWxsUmVhZHkgPSBmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9pc1JlYWR5KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLl9pc1JlYWR5ID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuX2NhbGxIb29rKCdyZWFkeScpO1xuICAgICAgICAgICAgdGhpcy5fcmVzZXRDb21wdXRlZHMoKTtcbiAgICAgICAgICAgIHRoaXMuX2NhbGxVcGRhdGUoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBVSWtpdC5wcm90b3R5cGUuX2NhbGxVcGRhdGUgPSBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgZSA9IGNyZWF0ZUV2ZW50KGUgfHwgJ3VwZGF0ZScpO1xuXG4gICAgICAgICAgICB2YXIgdHlwZSA9IGUudHlwZTtcblxuICAgICAgICAgICAgaWYgKGluY2x1ZGVzKFsndXBkYXRlJywgJ2xvYWQnLCAncmVzaXplJ10sIHR5cGUpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmVzZXRDb21wdXRlZHMoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFyIHVwZGF0ZXMgPSB0aGlzLiRvcHRpb25zLnVwZGF0ZTtcbiAgICAgICAgICAgIHZhciByZWYgPSB0aGlzLl9mcmFtZXM7XG4gICAgICAgICAgICB2YXIgcmVhZHMgPSByZWYucmVhZHM7XG4gICAgICAgICAgICB2YXIgd3JpdGVzID0gcmVmLndyaXRlcztcblxuICAgICAgICAgICAgaWYgKCF1cGRhdGVzKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB1cGRhdGVzLmZvckVhY2goZnVuY3Rpb24gKHJlZiwgaSkge1xuICAgICAgICAgICAgICAgIHZhciByZWFkID0gcmVmLnJlYWQ7XG4gICAgICAgICAgICAgICAgdmFyIHdyaXRlID0gcmVmLndyaXRlO1xuICAgICAgICAgICAgICAgIHZhciBldmVudHMgPSByZWYuZXZlbnRzO1xuXG5cbiAgICAgICAgICAgICAgICBpZiAodHlwZSAhPT0gJ3VwZGF0ZScgJiYgIWluY2x1ZGVzKGV2ZW50cywgdHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChyZWFkICYmICFpbmNsdWRlcyhmYXN0ZG9tLnJlYWRzLCByZWFkc1tpXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVhZHNbaV0gPSBmYXN0ZG9tLnJlYWQoZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcyQxLl9jb25uZWN0ZWQgJiYgcmVhZC5jYWxsKHRoaXMkMSwgdGhpcyQxLl9kYXRhLCBlKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdCA9PT0gZmFsc2UgJiYgd3JpdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYXN0ZG9tLmNsZWFyKHdyaXRlc1tpXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHdyaXRlc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNQbGFpbk9iamVjdChyZXN1bHQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzaWduKHRoaXMkMS5fZGF0YSwgcmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSByZWFkc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHdyaXRlICYmICFpbmNsdWRlcyhmYXN0ZG9tLndyaXRlcywgd3JpdGVzW2ldKSkge1xuICAgICAgICAgICAgICAgICAgICB3cml0ZXNbaV0gPSBmYXN0ZG9tLndyaXRlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMkMS5fY29ubmVjdGVkICYmIHdyaXRlLmNhbGwodGhpcyQxLCB0aGlzJDEuX2RhdGEsIGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHdyaXRlc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB9O1xuXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3RhdGVBUEkgKFVJa2l0KSB7XG5cbiAgICAgICAgdmFyIHVpZCA9IDA7XG5cbiAgICAgICAgVUlraXQucHJvdG90eXBlLl9pbml0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcblxuICAgICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4gICAgICAgICAgICBvcHRpb25zLmRhdGEgPSBub3JtYWxpemVEYXRhKG9wdGlvbnMsIHRoaXMuY29uc3RydWN0b3Iub3B0aW9ucyk7XG5cbiAgICAgICAgICAgIHRoaXMuJG9wdGlvbnMgPSBtZXJnZU9wdGlvbnModGhpcy5jb25zdHJ1Y3Rvci5vcHRpb25zLCBvcHRpb25zLCB0aGlzKTtcbiAgICAgICAgICAgIHRoaXMuJGVsID0gbnVsbDtcbiAgICAgICAgICAgIHRoaXMuJHByb3BzID0ge307XG5cbiAgICAgICAgICAgIHRoaXMuX2ZyYW1lcyA9IHtyZWFkczoge30sIHdyaXRlczoge319O1xuICAgICAgICAgICAgdGhpcy5fZXZlbnRzID0gW107XG5cbiAgICAgICAgICAgIHRoaXMuX3VpZCA9IHVpZCsrO1xuICAgICAgICAgICAgdGhpcy5faW5pdERhdGEoKTtcbiAgICAgICAgICAgIHRoaXMuX2luaXRNZXRob2RzKCk7XG4gICAgICAgICAgICB0aGlzLl9pbml0Q29tcHV0ZWRzKCk7XG4gICAgICAgICAgICB0aGlzLl9jYWxsSG9vaygnY3JlYXRlZCcpO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy5lbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuJG1vdW50KG9wdGlvbnMuZWwpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIFVJa2l0LnByb3RvdHlwZS5faW5pdERhdGEgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICB2YXIgcmVmID0gdGhpcy4kb3B0aW9ucztcbiAgICAgICAgICAgIHZhciBkYXRhJCQxID0gcmVmLmRhdGE7IGlmICggZGF0YSQkMSA9PT0gdm9pZCAwICkgZGF0YSQkMSA9IHt9O1xuXG4gICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gZGF0YSQkMSkge1xuICAgICAgICAgICAgICAgIHRoaXMkMS4kcHJvcHNba2V5XSA9IHRoaXMkMVtrZXldID0gZGF0YSQkMVtrZXldO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIFVJa2l0LnByb3RvdHlwZS5faW5pdE1ldGhvZHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICB2YXIgcmVmID0gdGhpcy4kb3B0aW9ucztcbiAgICAgICAgICAgIHZhciBtZXRob2RzID0gcmVmLm1ldGhvZHM7XG5cbiAgICAgICAgICAgIGlmIChtZXRob2RzKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIG1ldGhvZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcyQxW2tleV0gPSBiaW5kKG1ldGhvZHNba2V5XSwgdGhpcyQxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgVUlraXQucHJvdG90eXBlLl9pbml0Q29tcHV0ZWRzID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgdmFyIHJlZiA9IHRoaXMuJG9wdGlvbnM7XG4gICAgICAgICAgICB2YXIgY29tcHV0ZWQgPSByZWYuY29tcHV0ZWQ7XG5cbiAgICAgICAgICAgIHRoaXMuX3Jlc2V0Q29tcHV0ZWRzKCk7XG5cbiAgICAgICAgICAgIGlmIChjb21wdXRlZCkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIGtleSBpbiBjb21wdXRlZCkge1xuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckNvbXB1dGVkKHRoaXMkMSwga2V5LCBjb21wdXRlZFtrZXldKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgVUlraXQucHJvdG90eXBlLl9yZXNldENvbXB1dGVkcyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuX2NvbXB1dGVkcyA9IHt9O1xuICAgICAgICB9O1xuXG4gICAgICAgIFVJa2l0LnByb3RvdHlwZS5faW5pdFByb3BzID0gZnVuY3Rpb24gKHByb3BzKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICB2YXIga2V5O1xuXG4gICAgICAgICAgICB0aGlzLl9yZXNldENvbXB1dGVkcygpO1xuXG4gICAgICAgICAgICBwcm9wcyA9IHByb3BzIHx8IGdldFByb3BzKHRoaXMuJG9wdGlvbnMsIHRoaXMuJG5hbWUpO1xuXG4gICAgICAgICAgICBmb3IgKGtleSBpbiBwcm9wcykge1xuICAgICAgICAgICAgICAgIGlmICghaXNVbmRlZmluZWQocHJvcHNba2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcyQxLiRwcm9wc1trZXldID0gcHJvcHNba2V5XTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBleGNsdWRlID0gW3RoaXMuJG9wdGlvbnMuY29tcHV0ZWQsIHRoaXMuJG9wdGlvbnMubWV0aG9kc107XG4gICAgICAgICAgICBmb3IgKGtleSBpbiB0aGlzJDEuJHByb3BzKSB7XG4gICAgICAgICAgICAgICAgaWYgKGtleSBpbiBwcm9wcyAmJiBub3RJbihleGNsdWRlLCBrZXkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMkMVtrZXldID0gdGhpcyQxLiRwcm9wc1trZXldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBVSWtpdC5wcm90b3R5cGUuX2luaXRFdmVudHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICB2YXIgcmVmID0gdGhpcy4kb3B0aW9ucztcbiAgICAgICAgICAgIHZhciBldmVudHMgPSByZWYuZXZlbnRzO1xuXG4gICAgICAgICAgICBpZiAoZXZlbnRzKSB7XG5cbiAgICAgICAgICAgICAgICBldmVudHMuZm9yRWFjaChmdW5jdGlvbiAoZXZlbnQpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWhhc093bihldmVudCwgJ2hhbmRsZXInKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIGV2ZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJFdmVudCh0aGlzJDEsIGV2ZW50W2tleV0sIGtleSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWdpc3RlckV2ZW50KHRoaXMkMSwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBVSWtpdC5wcm90b3R5cGUuX3VuYmluZEV2ZW50cyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50cy5mb3JFYWNoKGZ1bmN0aW9uICh1bmJpbmQpIHsgcmV0dXJuIHVuYmluZCgpOyB9KTtcbiAgICAgICAgICAgIHRoaXMuX2V2ZW50cyA9IFtdO1xuICAgICAgICB9O1xuXG4gICAgICAgIFVJa2l0LnByb3RvdHlwZS5faW5pdE9ic2VydmVyID0gZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgdmFyIHJlZiA9IHRoaXMuJG9wdGlvbnM7XG4gICAgICAgICAgICB2YXIgYXR0cnMgPSByZWYuYXR0cnM7XG4gICAgICAgICAgICB2YXIgcHJvcHMgPSByZWYucHJvcHM7XG4gICAgICAgICAgICB2YXIgZWwgPSByZWYuZWw7XG4gICAgICAgICAgICBpZiAodGhpcy5fb2JzZXJ2ZXIgfHwgIXByb3BzIHx8ICFhdHRycykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYXR0cnMgPSBpc0FycmF5KGF0dHJzKSA/IGF0dHJzIDogT2JqZWN0LmtleXMocHJvcHMpLm1hcChmdW5jdGlvbiAoa2V5KSB7IHJldHVybiBoeXBoZW5hdGUoa2V5KTsgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuX29ic2VydmVyID0gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICAgICAgdmFyIGRhdGEkJDEgPSBnZXRQcm9wcyh0aGlzJDEuJG9wdGlvbnMsIHRoaXMkMS4kbmFtZSk7XG4gICAgICAgICAgICAgICAgaWYgKGF0dHJzLnNvbWUoZnVuY3Rpb24gKGtleSkgeyByZXR1cm4gIWlzVW5kZWZpbmVkKGRhdGEkJDFba2V5XSkgJiYgZGF0YSQkMVtrZXldICE9PSB0aGlzJDEuJHByb3BzW2tleV07IH0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMkMS4kcmVzZXQoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKGVsLCB7YXR0cmlidXRlczogdHJ1ZSwgYXR0cmlidXRlRmlsdGVyOiBhdHRycy5jb25jYXQoW3RoaXMuJG5hbWUsIChcImRhdGEtXCIgKyAodGhpcy4kbmFtZSkpXSl9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBmdW5jdGlvbiBnZXRQcm9wcyhvcHRzLCBuYW1lKSB7XG5cbiAgICAgICAgICAgIHZhciBkYXRhJCQxID0ge307XG4gICAgICAgICAgICB2YXIgYXJncyA9IG9wdHMuYXJnczsgaWYgKCBhcmdzID09PSB2b2lkIDAgKSBhcmdzID0gW107XG4gICAgICAgICAgICB2YXIgcHJvcHMgPSBvcHRzLnByb3BzOyBpZiAoIHByb3BzID09PSB2b2lkIDAgKSBwcm9wcyA9IHt9O1xuICAgICAgICAgICAgdmFyIGVsID0gb3B0cy5lbDtcblxuICAgICAgICAgICAgaWYgKCFwcm9wcykge1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhJCQxO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKHZhciBrZXkgaW4gcHJvcHMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcHJvcCA9IGh5cGhlbmF0ZShrZXkpO1xuICAgICAgICAgICAgICAgIGlmIChoYXNBdHRyKGVsLCBwcm9wKSkge1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciB2YWx1ZSA9IGNvZXJjZShwcm9wc1trZXldLCBhdHRyKGVsLCBwcm9wKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb3AgPT09ICd0YXJnZXQnICYmICghdmFsdWUgfHwgc3RhcnRzV2l0aCh2YWx1ZSwgJ18nKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZGF0YSQkMVtrZXldID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgb3B0aW9ucyA9IHBhcnNlT3B0aW9ucyhkYXRhKGVsLCBuYW1lKSwgYXJncyk7XG5cbiAgICAgICAgICAgIGZvciAodmFyIGtleSQxIGluIG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICB2YXIgcHJvcCQxID0gY2FtZWxpemUoa2V5JDEpO1xuICAgICAgICAgICAgICAgIGlmIChwcm9wc1twcm9wJDFdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0YSQkMVtwcm9wJDFdID0gY29lcmNlKHByb3BzW3Byb3AkMV0sIG9wdGlvbnNba2V5JDFdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBkYXRhJCQxO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gcmVnaXN0ZXJDb21wdXRlZChjb21wb25lbnQsIGtleSwgY2IpIHtcbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjb21wb25lbnQsIGtleSwge1xuXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcblxuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIF9jb21wdXRlZHMgPSBjb21wb25lbnQuX2NvbXB1dGVkcztcbiAgICAgICAgICAgICAgICAgICAgdmFyICRwcm9wcyA9IGNvbXBvbmVudC4kcHJvcHM7XG4gICAgICAgICAgICAgICAgICAgIHZhciAkZWwgPSBjb21wb25lbnQuJGVsO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghaGFzT3duKF9jb21wdXRlZHMsIGtleSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIF9jb21wdXRlZHNba2V5XSA9IGNiLmNhbGwoY29tcG9uZW50LCAkcHJvcHMsICRlbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gX2NvbXB1dGVkc1trZXldO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudC5fY29tcHV0ZWRzW2tleV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gcmVnaXN0ZXJFdmVudChjb21wb25lbnQsIGV2ZW50LCBrZXkpIHtcblxuICAgICAgICAgICAgaWYgKCFpc1BsYWluT2JqZWN0KGV2ZW50KSkge1xuICAgICAgICAgICAgICAgIGV2ZW50ID0gKHtuYW1lOiBrZXksIGhhbmRsZXI6IGV2ZW50fSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBuYW1lID0gZXZlbnQubmFtZTtcbiAgICAgICAgICAgIHZhciBlbCA9IGV2ZW50LmVsO1xuICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSBldmVudC5oYW5kbGVyO1xuICAgICAgICAgICAgdmFyIGNhcHR1cmUgPSBldmVudC5jYXB0dXJlO1xuICAgICAgICAgICAgdmFyIGRlbGVnYXRlID0gZXZlbnQuZGVsZWdhdGU7XG4gICAgICAgICAgICB2YXIgZmlsdGVyJCQxID0gZXZlbnQuZmlsdGVyO1xuICAgICAgICAgICAgdmFyIHNlbGYgPSBldmVudC5zZWxmO1xuICAgICAgICAgICAgZWwgPSBpc0Z1bmN0aW9uKGVsKVxuICAgICAgICAgICAgICAgID8gZWwuY2FsbChjb21wb25lbnQpXG4gICAgICAgICAgICAgICAgOiBlbCB8fCBjb21wb25lbnQuJGVsO1xuXG4gICAgICAgICAgICBpZiAoaXNBcnJheShlbCkpIHtcbiAgICAgICAgICAgICAgICBlbC5mb3JFYWNoKGZ1bmN0aW9uIChlbCkgeyByZXR1cm4gcmVnaXN0ZXJFdmVudChjb21wb25lbnQsIGFzc2lnbih7fSwgZXZlbnQsIHtlbDogZWx9KSwga2V5KTsgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWVsIHx8IGZpbHRlciQkMSAmJiAhZmlsdGVyJCQxLmNhbGwoY29tcG9uZW50KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaGFuZGxlciA9IGRldGFpbChpc1N0cmluZyhoYW5kbGVyKSA/IGNvbXBvbmVudFtoYW5kbGVyXSA6IGJpbmQoaGFuZGxlciwgY29tcG9uZW50KSk7XG5cbiAgICAgICAgICAgIGlmIChzZWxmKSB7XG4gICAgICAgICAgICAgICAgaGFuZGxlciA9IHNlbGZGaWx0ZXIoaGFuZGxlcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbXBvbmVudC5fZXZlbnRzLnB1c2goXG4gICAgICAgICAgICAgICAgb24oXG4gICAgICAgICAgICAgICAgICAgIGVsLFxuICAgICAgICAgICAgICAgICAgICBuYW1lLFxuICAgICAgICAgICAgICAgICAgICAhZGVsZWdhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgID8gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgOiBpc1N0cmluZyhkZWxlZ2F0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGRlbGVnYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBkZWxlZ2F0ZS5jYWxsKGNvbXBvbmVudCksXG4gICAgICAgICAgICAgICAgICAgIGhhbmRsZXIsXG4gICAgICAgICAgICAgICAgICAgIGNhcHR1cmVcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuXG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBzZWxmRmlsdGVyKGhhbmRsZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiBzZWxmSGFuZGxlcihlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUudGFyZ2V0ID09PSBlLmN1cnJlbnRUYXJnZXQgfHwgZS50YXJnZXQgPT09IGUuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGFuZGxlci5jYWxsKG51bGwsIGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBub3RJbihvcHRpb25zLCBrZXkpIHtcbiAgICAgICAgICAgIHJldHVybiBvcHRpb25zLmV2ZXJ5KGZ1bmN0aW9uIChhcnIpIHsgcmV0dXJuICFhcnIgfHwgIWhhc093bihhcnIsIGtleSk7IH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZGV0YWlsKGxpc3RlbmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGlzQXJyYXkoZS5kZXRhaWwpID8gbGlzdGVuZXIuYXBwbHkodm9pZCAwLCBbZV0uY29uY2F0KGUuZGV0YWlsKSkgOiBsaXN0ZW5lcihlKTsgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZ1bmN0aW9uIGNvZXJjZSh0eXBlLCB2YWx1ZSkge1xuXG4gICAgICAgICAgICBpZiAodHlwZSA9PT0gQm9vbGVhbikge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b0Jvb2xlYW4odmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSBOdW1iZXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9OdW1iZXIodmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlID09PSAnbGlzdCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9MaXN0KHZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ21lZGlhJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB0b01lZGlhKHZhbHVlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHR5cGUgPyB0eXBlKHZhbHVlKSA6IHZhbHVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gdG9NZWRpYSh2YWx1ZSkge1xuXG4gICAgICAgICAgICBpZiAoaXNTdHJpbmcodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgaWYgKHZhbHVlWzBdID09PSAnQCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIG5hbWUgPSBcIm1lZGlhLVwiICsgKHZhbHVlLnN1YnN0cigxKSk7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdG9GbG9hdChnZXRDc3NWYXIobmFtZSkpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNOYU4odmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZSAmJiAhaXNOYU4odmFsdWUpID8gKFwiKG1pbi13aWR0aDogXCIgKyB2YWx1ZSArIFwicHgpXCIpIDogZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBub3JtYWxpemVEYXRhKHJlZiwgcmVmJDEpIHtcbiAgICAgICAgICAgIHZhciBkYXRhJCQxID0gcmVmLmRhdGE7XG4gICAgICAgICAgICB2YXIgZWwgPSByZWYuZWw7XG4gICAgICAgICAgICB2YXIgYXJncyA9IHJlZiQxLmFyZ3M7XG4gICAgICAgICAgICB2YXIgcHJvcHMgPSByZWYkMS5wcm9wczsgaWYgKCBwcm9wcyA9PT0gdm9pZCAwICkgcHJvcHMgPSB7fTtcblxuICAgICAgICAgICAgZGF0YSQkMSA9IGlzQXJyYXkoZGF0YSQkMSlcbiAgICAgICAgICAgICAgICA/IGFyZ3MgJiYgYXJncy5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgPyBkYXRhJCQxLnNsaWNlKDAsIGFyZ3MubGVuZ3RoKS5yZWR1Y2UoZnVuY3Rpb24gKGRhdGEkJDEsIHZhbHVlLCBpbmRleCQkMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzUGxhaW5PYmplY3QodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXNzaWduKGRhdGEkJDEsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSQkMVthcmdzW2luZGV4JCQxXV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkYXRhJCQxO1xuICAgICAgICAgICAgICAgICAgICB9LCB7fSlcbiAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICA6IGRhdGEkJDE7XG5cbiAgICAgICAgICAgIGlmIChkYXRhJCQxKSB7XG4gICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIGRhdGEkJDEpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzVW5kZWZpbmVkKGRhdGEkJDFba2V5XSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBkYXRhJCQxW2tleV07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhJCQxW2tleV0gPSBwcm9wc1trZXldID8gY29lcmNlKHByb3BzW2tleV0sIGRhdGEkJDFba2V5XSwgZWwpIDogZGF0YSQkMVtrZXldO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZGF0YSQkMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZ1bmN0aW9uIGluc3RhbmNlQVBJIChVSWtpdCkge1xuXG4gICAgICAgIHZhciBEQVRBID0gVUlraXQuZGF0YTtcblxuICAgICAgICBVSWtpdC5wcm90b3R5cGUuJG1vdW50ID0gZnVuY3Rpb24gKGVsKSB7XG5cbiAgICAgICAgICAgIHZhciByZWYgPSB0aGlzLiRvcHRpb25zO1xuICAgICAgICAgICAgdmFyIG5hbWUgPSByZWYubmFtZTtcblxuICAgICAgICAgICAgaWYgKCFlbFtEQVRBXSkge1xuICAgICAgICAgICAgICAgIGVsW0RBVEFdID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChlbFtEQVRBXVtuYW1lXSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZWxbREFUQV1bbmFtZV0gPSB0aGlzO1xuXG4gICAgICAgICAgICB0aGlzLiRlbCA9IHRoaXMuJG9wdGlvbnMuZWwgPSB0aGlzLiRvcHRpb25zLmVsIHx8IGVsO1xuXG4gICAgICAgICAgICB0aGlzLl9jYWxsSG9vaygnaW5pdCcpO1xuXG4gICAgICAgICAgICBpZiAod2l0aGluKGVsLCBkb2N1bWVudCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYWxsQ29ubmVjdGVkKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG5cbiAgICAgICAgVUlraXQucHJvdG90eXBlLiRlbWl0ID0gZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGxVcGRhdGUoZSk7XG4gICAgICAgIH07XG5cbiAgICAgICAgVUlraXQucHJvdG90eXBlLiRyZXNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGxEaXNjb25uZWN0ZWQoKTtcbiAgICAgICAgICAgIHRoaXMuX2NhbGxDb25uZWN0ZWQoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBVSWtpdC5wcm90b3R5cGUuJGRlc3Ryb3kgPSBmdW5jdGlvbiAocmVtb3ZlRWwpIHtcbiAgICAgICAgICAgIGlmICggcmVtb3ZlRWwgPT09IHZvaWQgMCApIHJlbW92ZUVsID0gZmFsc2U7XG5cblxuICAgICAgICAgICAgdmFyIHJlZiA9IHRoaXMuJG9wdGlvbnM7XG4gICAgICAgICAgICB2YXIgZWwgPSByZWYuZWw7XG4gICAgICAgICAgICB2YXIgbmFtZSA9IHJlZi5uYW1lO1xuXG4gICAgICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jYWxsRGlzY29ubmVjdGVkKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuX2NhbGxIb29rKCdkZXN0cm95Jyk7XG5cbiAgICAgICAgICAgIGlmICghZWwgfHwgIWVsW0RBVEFdKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkZWxldGUgZWxbREFUQV1bbmFtZV07XG5cbiAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXMoZWxbREFUQV0pLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBlbFtEQVRBXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHJlbW92ZUVsKSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlKHRoaXMuJGVsKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBVSWtpdC5wcm90b3R5cGUuJGNyZWF0ZSA9IGZ1bmN0aW9uIChjb21wb25lbnQsIGVsZW1lbnQsIGRhdGEkJDEpIHtcbiAgICAgICAgICAgIHJldHVybiBVSWtpdFtjb21wb25lbnRdKGVsZW1lbnQsIGRhdGEkJDEpO1xuICAgICAgICB9O1xuXG4gICAgICAgIFVJa2l0LnByb3RvdHlwZS4kdXBkYXRlID0gVUlraXQudXBkYXRlO1xuICAgICAgICBVSWtpdC5wcm90b3R5cGUuJGdldENvbXBvbmVudCA9IFVJa2l0LmdldENvbXBvbmVudDtcblxuICAgICAgICB2YXIgbmFtZXMgPSB7fTtcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoVUlraXQucHJvdG90eXBlLCB7XG5cbiAgICAgICAgICAgICRjb250YWluZXI6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoVUlraXQsICdjb250YWluZXInKSxcblxuICAgICAgICAgICAgJG5hbWU6IHtcblxuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZWYgPSB0aGlzLiRvcHRpb25zO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbmFtZSA9IHJlZi5uYW1lO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghbmFtZXNbbmFtZV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVzW25hbWVdID0gVUlraXQucHJlZml4ICsgaHlwaGVuYXRlKG5hbWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG5hbWVzW25hbWVdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgdmFyIFVJa2l0ID0gZnVuY3Rpb24gKG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5faW5pdChvcHRpb25zKTtcbiAgICB9O1xuXG4gICAgVUlraXQudXRpbCA9IHV0aWw7XG4gICAgVUlraXQuZGF0YSA9ICdfX3Vpa2l0X18nO1xuICAgIFVJa2l0LnByZWZpeCA9ICd1ay0nO1xuICAgIFVJa2l0Lm9wdGlvbnMgPSB7fTtcblxuICAgIGdsb2JhbEFQSShVSWtpdCk7XG4gICAgaG9va3NBUEkoVUlraXQpO1xuICAgIHN0YXRlQVBJKFVJa2l0KTtcbiAgICBjb21wb25lbnRBUEkoVUlraXQpO1xuICAgIGluc3RhbmNlQVBJKFVJa2l0KTtcblxuICAgIHZhciBDbGFzcyA9IHtcblxuICAgICAgICBjb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kZWwsIHRoaXMuJG5hbWUpO1xuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgdmFyIFRvZ2dsYWJsZSA9IHtcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgY2xzOiBCb29sZWFuLFxuICAgICAgICAgICAgYW5pbWF0aW9uOiAnbGlzdCcsXG4gICAgICAgICAgICBkdXJhdGlvbjogTnVtYmVyLFxuICAgICAgICAgICAgb3JpZ2luOiBTdHJpbmcsXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBTdHJpbmcsXG4gICAgICAgICAgICBxdWV1ZWQ6IEJvb2xlYW5cbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBjbHM6IGZhbHNlLFxuICAgICAgICAgICAgYW5pbWF0aW9uOiBbZmFsc2VdLFxuICAgICAgICAgICAgZHVyYXRpb246IDIwMCxcbiAgICAgICAgICAgIG9yaWdpbjogZmFsc2UsXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAnbGluZWFyJyxcbiAgICAgICAgICAgIHF1ZXVlZDogZmFsc2UsXG5cbiAgICAgICAgICAgIGluaXRQcm9wczoge1xuICAgICAgICAgICAgICAgIG92ZXJmbG93OiAnJyxcbiAgICAgICAgICAgICAgICBoZWlnaHQ6ICcnLFxuICAgICAgICAgICAgICAgIHBhZGRpbmdUb3A6ICcnLFxuICAgICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206ICcnLFxuICAgICAgICAgICAgICAgIG1hcmdpblRvcDogJycsXG4gICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAnJ1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgaGlkZVByb3BzOiB7XG4gICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgIGhlaWdodDogMCxcbiAgICAgICAgICAgICAgICBwYWRkaW5nVG9wOiAwLFxuICAgICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206IDAsXG4gICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAwLFxuICAgICAgICAgICAgICAgIG1hcmdpbkJvdHRvbTogMFxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgY29tcHV0ZWQ6IHtcblxuICAgICAgICAgICAgaGFzQW5pbWF0aW9uOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgYW5pbWF0aW9uID0gcmVmLmFuaW1hdGlvbjtcblxuICAgICAgICAgICAgICAgIHJldHVybiAhIWFuaW1hdGlvblswXTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGhhc1RyYW5zaXRpb246IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciBhbmltYXRpb24gPSByZWYuYW5pbWF0aW9uO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaGFzQW5pbWF0aW9uICYmIGFuaW1hdGlvblswXSA9PT0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIG1ldGhvZHM6IHtcblxuICAgICAgICAgICAgdG9nZ2xlRWxlbWVudDogZnVuY3Rpb24odGFyZ2V0cywgc2hvdywgYW5pbWF0ZSQkMSkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUpIHtcblxuICAgICAgICAgICAgICAgICAgICB0YXJnZXRzID0gdG9Ob2Rlcyh0YXJnZXRzKTtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgYWxsID0gZnVuY3Rpb24gKHRhcmdldHMpIHsgcmV0dXJuIFByb21pc2UkMS5hbGwodGFyZ2V0cy5tYXAoZnVuY3Rpb24gKGVsKSB7IHJldHVybiB0aGlzJDEuX3RvZ2dsZUVsZW1lbnQoZWwsIHNob3csIGFuaW1hdGUkJDEpOyB9KSk7IH07XG4gICAgICAgICAgICAgICAgICAgIHZhciB0b2dnbGVkID0gdGFyZ2V0cy5maWx0ZXIoZnVuY3Rpb24gKGVsKSB7IHJldHVybiB0aGlzJDEuaXNUb2dnbGVkKGVsKTsgfSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciB1bnRvZ2dsZWQgPSB0YXJnZXRzLmZpbHRlcihmdW5jdGlvbiAoZWwpIHsgcmV0dXJuICFpbmNsdWRlcyh0b2dnbGVkLCBlbCk7IH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciBwO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcyQxLnF1ZXVlZCB8fCAhaXNVbmRlZmluZWQoYW5pbWF0ZSQkMSkgfHwgIWlzVW5kZWZpbmVkKHNob3cpIHx8ICF0aGlzJDEuaGFzQW5pbWF0aW9uIHx8IHRhcmdldHMubGVuZ3RoIDwgMikge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBwID0gYWxsKHVudG9nZ2xlZC5jb25jYXQodG9nZ2xlZCkpO1xuXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBib2R5ID0gZG9jdW1lbnQuYm9keTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzY3JvbGwgPSBib2R5LnNjcm9sbFRvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlbCA9IHRvZ2dsZWRbMF07XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaW5Qcm9ncmVzcyA9IEFuaW1hdGlvbi5pblByb2dyZXNzKGVsKSAmJiBoYXNDbGFzcyhlbCwgJ3VrLWFuaW1hdGlvbi1sZWF2ZScpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFRyYW5zaXRpb24uaW5Qcm9ncmVzcyhlbCkgJiYgZWwuc3R5bGUuaGVpZ2h0ID09PSAnMHB4JztcblxuICAgICAgICAgICAgICAgICAgICAgICAgcCA9IGFsbCh0b2dnbGVkKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpblByb2dyZXNzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcCA9IHAudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwID0gYWxsKHVudG9nZ2xlZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvZHkuc2Nyb2xsVG9wID0gc2Nyb2xsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcC50aGVuKHJlc29sdmUsIG5vb3ApO1xuXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB0b2dnbGVOb3c6IGZ1bmN0aW9uKHRhcmdldHMsIHNob3cpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJldHVybiBQcm9taXNlJDEuYWxsKHRvTm9kZXModGFyZ2V0cykubWFwKGZ1bmN0aW9uIChlbCkgeyByZXR1cm4gdGhpcyQxLl90b2dnbGVFbGVtZW50KGVsLCBzaG93LCBmYWxzZSk7IH0pKS50aGVuKHJlc29sdmUsIG5vb3ApOyB9KTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGlzVG9nZ2xlZDogZnVuY3Rpb24oZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgbm9kZXMgPSB0b05vZGVzKGVsIHx8IHRoaXMuJGVsKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbHNcbiAgICAgICAgICAgICAgICAgICAgPyBoYXNDbGFzcyhub2RlcywgdGhpcy5jbHMuc3BsaXQoJyAnKVswXSlcbiAgICAgICAgICAgICAgICAgICAgOiAhaGFzQXR0cihub2RlcywgJ2hpZGRlbicpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdXBkYXRlQXJpYTogZnVuY3Rpb24oZWwpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jbHMgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHIoZWwsICdhcmlhLWhpZGRlbicsICF0aGlzLmlzVG9nZ2xlZChlbCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIF90b2dnbGVFbGVtZW50OiBmdW5jdGlvbihlbCwgc2hvdywgYW5pbWF0ZSQkMSkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgICAgICBzaG93ID0gaXNCb29sZWFuKHNob3cpXG4gICAgICAgICAgICAgICAgICAgID8gc2hvd1xuICAgICAgICAgICAgICAgICAgICA6IEFuaW1hdGlvbi5pblByb2dyZXNzKGVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBoYXNDbGFzcyhlbCwgJ3VrLWFuaW1hdGlvbi1sZWF2ZScpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFRyYW5zaXRpb24uaW5Qcm9ncmVzcyhlbClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGVsLnN0eWxlLmhlaWdodCA9PT0gJzBweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICF0aGlzLmlzVG9nZ2xlZChlbCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRyaWdnZXIoZWwsIChcImJlZm9yZVwiICsgKHNob3cgPyAnc2hvdycgOiAnaGlkZScpKSwgW3RoaXNdKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZSQxLnJlamVjdCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBwcm9taXNlID0gKGFuaW1hdGUkJDEgPT09IGZhbHNlIHx8ICF0aGlzLmhhc0FuaW1hdGlvblxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuX3RvZ2dsZUltbWVkaWF0ZVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuaGFzVHJhbnNpdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgPyB0aGlzLl90b2dnbGVIZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5fdG9nZ2xlQW5pbWF0aW9uXG4gICAgICAgICAgICAgICAgKShlbCwgc2hvdyk7XG5cbiAgICAgICAgICAgICAgICB0cmlnZ2VyKGVsLCBzaG93ID8gJ3Nob3cnIDogJ2hpZGUnLCBbdGhpc10pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHByb21pc2UudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyaWdnZXIoZWwsIHNob3cgPyAnc2hvd24nIDogJ2hpZGRlbicsIFt0aGlzJDFdKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcyQxLiR1cGRhdGUoZWwpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgX3RvZ2dsZTogZnVuY3Rpb24oZWwsIHRvZ2dsZWQpIHtcblxuICAgICAgICAgICAgICAgIGlmICghZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBjaGFuZ2VkO1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNscykge1xuICAgICAgICAgICAgICAgICAgICBjaGFuZ2VkID0gaW5jbHVkZXModGhpcy5jbHMsICcgJykgfHwgQm9vbGVhbih0b2dnbGVkKSAhPT0gaGFzQ2xhc3MoZWwsIHRoaXMuY2xzKTtcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCAmJiB0b2dnbGVDbGFzcyhlbCwgdGhpcy5jbHMsIGluY2x1ZGVzKHRoaXMuY2xzLCAnICcpID8gdW5kZWZpbmVkIDogdG9nZ2xlZCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCA9IEJvb2xlYW4odG9nZ2xlZCkgPT09IGhhc0F0dHIoZWwsICdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgY2hhbmdlZCAmJiBhdHRyKGVsLCAnaGlkZGVuJywgIXRvZ2dsZWQgPyAnJyA6IG51bGwpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICQkKCdbYXV0b2ZvY3VzXScsIGVsKS5zb21lKGZ1bmN0aW9uIChlbCkgeyByZXR1cm4gaXNWaXNpYmxlKGVsKSAmJiAoZWwuZm9jdXMoKSB8fCB0cnVlKTsgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUFyaWEoZWwpO1xuICAgICAgICAgICAgICAgIGNoYW5nZWQgJiYgdGhpcy4kdXBkYXRlKGVsKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIF90b2dnbGVJbW1lZGlhdGU6IGZ1bmN0aW9uKGVsLCBzaG93KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdG9nZ2xlKGVsLCBzaG93KTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZSQxLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIF90b2dnbGVIZWlnaHQ6IGZ1bmN0aW9uKGVsLCBzaG93KSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgICAgIHZhciBpblByb2dyZXNzID0gVHJhbnNpdGlvbi5pblByb2dyZXNzKGVsKTtcbiAgICAgICAgICAgICAgICB2YXIgaW5uZXIgPSBlbC5oYXNDaGlsZE5vZGVzID8gdG9GbG9hdChjc3MoZWwuZmlyc3RFbGVtZW50Q2hpbGQsICdtYXJnaW5Ub3AnKSkgKyB0b0Zsb2F0KGNzcyhlbC5sYXN0RWxlbWVudENoaWxkLCAnbWFyZ2luQm90dG9tJykpIDogMDtcbiAgICAgICAgICAgICAgICB2YXIgY3VycmVudEhlaWdodCA9IGlzVmlzaWJsZShlbCkgPyBoZWlnaHQoZWwpICsgKGluUHJvZ3Jlc3MgPyAwIDogaW5uZXIpIDogMDtcblxuICAgICAgICAgICAgICAgIFRyYW5zaXRpb24uY2FuY2VsKGVsKTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc1RvZ2dsZWQoZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RvZ2dsZShlbCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaGVpZ2h0KGVsLCAnJyk7XG5cbiAgICAgICAgICAgICAgICAvLyBVcGRhdGUgY2hpbGQgY29tcG9uZW50cyBmaXJzdFxuICAgICAgICAgICAgICAgIGZhc3Rkb20uZmx1c2goKTtcblxuICAgICAgICAgICAgICAgIHZhciBlbmRIZWlnaHQgPSBoZWlnaHQoZWwpICsgKGluUHJvZ3Jlc3MgPyAwIDogaW5uZXIpO1xuICAgICAgICAgICAgICAgIGhlaWdodChlbCwgY3VycmVudEhlaWdodCk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKHNob3dcbiAgICAgICAgICAgICAgICAgICAgPyBUcmFuc2l0aW9uLnN0YXJ0KGVsLCBhc3NpZ24oe30sIHRoaXMuaW5pdFByb3BzLCB7b3ZlcmZsb3c6ICdoaWRkZW4nLCBoZWlnaHQ6IGVuZEhlaWdodH0pLCBNYXRoLnJvdW5kKHRoaXMuZHVyYXRpb24gKiAoMSAtIGN1cnJlbnRIZWlnaHQgLyBlbmRIZWlnaHQpKSwgdGhpcy50cmFuc2l0aW9uKVxuICAgICAgICAgICAgICAgICAgICA6IFRyYW5zaXRpb24uc3RhcnQoZWwsIHRoaXMuaGlkZVByb3BzLCBNYXRoLnJvdW5kKHRoaXMuZHVyYXRpb24gKiAoY3VycmVudEhlaWdodCAvIGVuZEhlaWdodCkpLCB0aGlzLnRyYW5zaXRpb24pLnRoZW4oZnVuY3Rpb24gKCkgeyByZXR1cm4gdGhpcyQxLl90b2dnbGUoZWwsIGZhbHNlKTsgfSlcbiAgICAgICAgICAgICAgICApLnRoZW4oZnVuY3Rpb24gKCkgeyByZXR1cm4gY3NzKGVsLCB0aGlzJDEuaW5pdFByb3BzKTsgfSk7XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIF90b2dnbGVBbmltYXRpb246IGZ1bmN0aW9uKGVsLCBzaG93KSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgICAgIEFuaW1hdGlvbi5jYW5jZWwoZWwpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHNob3cpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdG9nZ2xlKGVsLCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEFuaW1hdGlvbi5pbihlbCwgdGhpcy5hbmltYXRpb25bMF0sIHRoaXMuZHVyYXRpb24sIHRoaXMub3JpZ2luKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gQW5pbWF0aW9uLm91dChlbCwgdGhpcy5hbmltYXRpb25bMV0gfHwgdGhpcy5hbmltYXRpb25bMF0sIHRoaXMuZHVyYXRpb24sIHRoaXMub3JpZ2luKS50aGVuKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMkMS5fdG9nZ2xlKGVsLCBmYWxzZSk7IH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICB2YXIgQWNjb3JkaW9uID0ge1xuXG4gICAgICAgIG1peGluczogW0NsYXNzLCBUb2dnbGFibGVdLFxuXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICB0YXJnZXRzOiBTdHJpbmcsXG4gICAgICAgICAgICBhY3RpdmU6IG51bGwsXG4gICAgICAgICAgICBjb2xsYXBzaWJsZTogQm9vbGVhbixcbiAgICAgICAgICAgIG11bHRpcGxlOiBCb29sZWFuLFxuICAgICAgICAgICAgdG9nZ2xlOiBTdHJpbmcsXG4gICAgICAgICAgICBjb250ZW50OiBTdHJpbmcsXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiBTdHJpbmdcbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0YXJnZXRzOiAnPiAqJyxcbiAgICAgICAgICAgIGFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICBhbmltYXRpb246IFt0cnVlXSxcbiAgICAgICAgICAgIGNvbGxhcHNpYmxlOiB0cnVlLFxuICAgICAgICAgICAgbXVsdGlwbGU6IGZhbHNlLFxuICAgICAgICAgICAgY2xzT3BlbjogJ3VrLW9wZW4nLFxuICAgICAgICAgICAgdG9nZ2xlOiAnPiAudWstYWNjb3JkaW9uLXRpdGxlJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6ICc+IC51ay1hY2NvcmRpb24tY29udGVudCcsXG4gICAgICAgICAgICB0cmFuc2l0aW9uOiAnZWFzZSdcbiAgICAgICAgfSxcblxuICAgICAgICBjb21wdXRlZDoge1xuXG4gICAgICAgICAgICBpdGVtczogZnVuY3Rpb24ocmVmLCAkZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0cyA9IHJlZi50YXJnZXRzO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuICQkKHRhcmdldHMsICRlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICBldmVudHM6IFtcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ2NsaWNrJyxcblxuICAgICAgICAgICAgICAgIGRlbGVnYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgodGhpcy50YXJnZXRzKSArIFwiIFwiICsgKHRoaXMuJHByb3BzLnRvZ2dsZSkpO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGUoaW5kZXgoJCQoKCh0aGlzLnRhcmdldHMpICsgXCIgXCIgKyAodGhpcy4kcHJvcHMudG9nZ2xlKSksIHRoaXMuJGVsKSwgZS5jdXJyZW50KSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXSxcblxuICAgICAgICBjb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICBpZiAodGhpcy5hY3RpdmUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgYWN0aXZlID0gdGhpcy5pdGVtc1tOdW1iZXIodGhpcy5hY3RpdmUpXTtcbiAgICAgICAgICAgIGlmIChhY3RpdmUgJiYgIWhhc0NsYXNzKGFjdGl2ZSwgdGhpcy5jbHNPcGVuKSkge1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlKGFjdGl2ZSwgZmFsc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIHVwZGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7IHJldHVybiB0aGlzJDEuX3RvZ2dsZUltbWVkaWF0ZSgkKHRoaXMkMS5jb250ZW50LCBlbCksIGhhc0NsYXNzKGVsLCB0aGlzJDEuY2xzT3BlbikpOyB9KTtcblxuICAgICAgICAgICAgdmFyIGFjdGl2ZSA9ICF0aGlzLmNvbGxhcHNpYmxlICYmICFoYXNDbGFzcyh0aGlzLml0ZW1zLCB0aGlzLmNsc09wZW4pICYmIHRoaXMuaXRlbXNbMF07XG4gICAgICAgICAgICBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy50b2dnbGUoYWN0aXZlLCBmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG5cbiAgICAgICAgbWV0aG9kczoge1xuXG4gICAgICAgICAgICB0b2dnbGU6IGZ1bmN0aW9uKGl0ZW0sIGFuaW1hdGUkJDEpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICAgICAgdmFyIGluZGV4JCQxID0gZ2V0SW5kZXgoaXRlbSwgdGhpcy5pdGVtcyk7XG4gICAgICAgICAgICAgICAgdmFyIGFjdGl2ZSA9IGZpbHRlcih0aGlzLml0ZW1zLCAoXCIuXCIgKyAodGhpcy5jbHNPcGVuKSkpO1xuXG4gICAgICAgICAgICAgICAgaXRlbSA9IHRoaXMuaXRlbXNbaW5kZXgkJDFdO1xuXG4gICAgICAgICAgICAgICAgaXRlbSAmJiBbaXRlbV1cbiAgICAgICAgICAgICAgICAgICAgLmNvbmNhdCghdGhpcy5tdWx0aXBsZSAmJiAhaW5jbHVkZXMoYWN0aXZlLCBpdGVtKSAmJiBhY3RpdmUgfHwgW10pXG4gICAgICAgICAgICAgICAgICAgIC5mb3JFYWNoKGZ1bmN0aW9uIChlbCkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgaXNJdGVtID0gZWwgPT09IGl0ZW07XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3RhdGUgPSBpc0l0ZW0gJiYgIWhhc0NsYXNzKGVsLCB0aGlzJDEuY2xzT3Blbik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RhdGUgJiYgaXNJdGVtICYmICF0aGlzJDEuY29sbGFwc2libGUgJiYgYWN0aXZlLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZUNsYXNzKGVsLCB0aGlzJDEuY2xzT3Blbiwgc3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgY29udGVudCA9IGVsLl93cmFwcGVyID8gZWwuX3dyYXBwZXIuZmlyc3RFbGVtZW50Q2hpbGQgOiAkKHRoaXMkMS5jb250ZW50LCBlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZWwuX3dyYXBwZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbC5fd3JhcHBlciA9IHdyYXBBbGwoY29udGVudCwgJzxkaXY+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cihlbC5fd3JhcHBlciwgJ2hpZGRlbicsIHN0YXRlID8gJycgOiBudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLl90b2dnbGVJbW1lZGlhdGUoY29udGVudCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzJDEudG9nZ2xlRWxlbWVudChlbC5fd3JhcHBlciwgc3RhdGUsIGFuaW1hdGUkJDEpLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChoYXNDbGFzcyhlbCwgdGhpcyQxLmNsc09wZW4pID09PSBzdGF0ZSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICghc3RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMkMS5fdG9nZ2xlSW1tZWRpYXRlKGNvbnRlbnQsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsLl93cmFwcGVyID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW53cmFwKGNvbnRlbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICB2YXIgQWxlcnQgPSB7XG5cbiAgICAgICAgYXR0cnM6IHRydWUsXG5cbiAgICAgICAgbWl4aW5zOiBbQ2xhc3MsIFRvZ2dsYWJsZV0sXG5cbiAgICAgICAgYXJnczogJ2FuaW1hdGlvbicsXG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGNsb3NlOiBTdHJpbmdcbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBhbmltYXRpb246IFt0cnVlXSxcbiAgICAgICAgICAgIHNlbENsb3NlOiAnLnVrLWFsZXJ0LWNsb3NlJyxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAxNTAsXG4gICAgICAgICAgICBoaWRlUHJvcHM6IGFzc2lnbih7b3BhY2l0eTogMH0sIFRvZ2dsYWJsZS5kYXRhLmhpZGVQcm9wcylcbiAgICAgICAgfSxcblxuICAgICAgICBldmVudHM6IFtcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ2NsaWNrJyxcblxuICAgICAgICAgICAgICAgIGRlbGVnYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2VsQ2xvc2U7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIGNsb3NlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlRWxlbWVudCh0aGlzLiRlbCkudGhlbihmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzJDEuJGRlc3Ryb3kodHJ1ZSk7IH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBDb3JlIChVSWtpdCkge1xuXG4gICAgICAgIHJlYWR5KGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgdmFyIHNjcm9sbCA9IDA7XG4gICAgICAgICAgICB2YXIgc3RhcnRlZCA9IDA7XG5cbiAgICAgICAgICAgIG9uKHdpbmRvdywgJ2xvYWQgcmVzaXplJywgZnVuY3Rpb24gKGUpIHsgcmV0dXJuIFVJa2l0LnVwZGF0ZShudWxsLCBlKTsgfSk7XG4gICAgICAgICAgICBvbih3aW5kb3csICdzY3JvbGwnLCBmdW5jdGlvbiAoZSkge1xuICAgICAgICAgICAgICAgIGUuZGlyID0gc2Nyb2xsIDw9IHdpbmRvdy5wYWdlWU9mZnNldCA/ICdkb3duJyA6ICd1cCc7XG4gICAgICAgICAgICAgICAgZS5wYWdlWU9mZnNldCA9IHNjcm9sbCA9IHdpbmRvdy5wYWdlWU9mZnNldDtcbiAgICAgICAgICAgICAgICBVSWtpdC51cGRhdGUobnVsbCwgZSk7XG4gICAgICAgICAgICB9LCB7Y2FwdHVyZTogdHJ1ZSwgcGFzc2l2ZTogZmFsc2V9KTtcblxuICAgICAgICAgICAgb24oZG9jdW1lbnQsICdhbmltYXRpb25zdGFydCcsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gcmVmLnRhcmdldDtcblxuICAgICAgICAgICAgICAgIGlmICgoY3NzKHRhcmdldCwgJ2FuaW1hdGlvbk5hbWUnKSB8fCAnJykubWF0Y2goL151ay0uKihsZWZ0fHJpZ2h0KS8pKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgc3RhcnRlZCsrO1xuICAgICAgICAgICAgICAgICAgICBjc3MoZG9jdW1lbnQuYm9keSwgJ292ZXJmbG93WCcsICdoaWRkZW4nKTtcbiAgICAgICAgICAgICAgICAgICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIS0tc3RhcnRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcyhkb2N1bWVudC5ib2R5LCAnb3ZlcmZsb3dYJywgJycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9LCB0b01zKGNzcyh0YXJnZXQsICdhbmltYXRpb25EdXJhdGlvbicpKSArIDEwMCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIGlmICghaGFzVG91Y2gpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBjbHMgPSAndWstaG92ZXInO1xuXG4gICAgICAgICAgICBvbihkb2N1bWVudCwgJ3RhcCcsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9IHJlZi50YXJnZXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICQkKChcIi5cIiArIGNscykpLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7IHJldHVybiAhd2l0aGluKHRhcmdldCwgZWwpICYmIHJlbW92ZUNsYXNzKGVsLCBjbHMpOyB9XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShVSWtpdCwgJ2hvdmVyU2VsZWN0b3InLCB7XG5cbiAgICAgICAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgICAgICAgIG9uKGRvY3VtZW50LCAndGFwJywgc2VsZWN0b3IsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gcmVmLmN1cnJlbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBhZGRDbGFzcyhjdXJyZW50LCBjbHMpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBVSWtpdC5ob3ZlclNlbGVjdG9yID0gJy51ay1hbmltYXRpb24tdG9nZ2xlLCAudWstdHJhbnNpdGlvbi10b2dnbGUsIFt1ay1ob3Zlcl0nO1xuXG4gICAgICAgIH0pO1xuXG4gICAgfVxuXG4gICAgdmFyIFZpZGVvID0ge1xuXG4gICAgICAgIGFyZ3M6ICdhdXRvcGxheScsXG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGF1dG9tdXRlOiBCb29sZWFuLFxuICAgICAgICAgICAgYXV0b3BsYXk6IEJvb2xlYW4sXG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgYXV0b211dGU6IGZhbHNlLFxuICAgICAgICAgICAgYXV0b3BsYXk6IHRydWVcbiAgICAgICAgfSxcblxuICAgICAgICBjb21wdXRlZDoge1xuXG4gICAgICAgICAgICBpblZpZXc6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciBhdXRvcGxheSA9IHJlZi5hdXRvcGxheTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBhdXRvcGxheSA9PT0gJ2ludmlldyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICBjb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICBpZiAodGhpcy5pblZpZXcgJiYgIWhhc0F0dHIodGhpcy4kZWwsICdwcmVsb2FkJykpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRlbC5wcmVsb2FkID0gJ25vbmUnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgcmVhZHk6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICB0aGlzLnBsYXllciA9IG5ldyBQbGF5ZXIodGhpcy4kZWwpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5hdXRvbXV0ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMucGxheWVyLm11dGUoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIHVwZGF0ZTogW1xuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICByZWFkOiBmdW5jdGlvbihfLCByZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHR5cGUgPSByZWYudHlwZTtcblxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAhdGhpcy5wbGF5ZXIgfHwgKHR5cGUgPT09ICdzY3JvbGwnIHx8IHR5cGUgPT09ICdyZXNpemUnKSAmJiAhdGhpcy5pblZpZXdcbiAgICAgICAgICAgICAgICAgICAgICAgID8gZmFsc2VcbiAgICAgICAgICAgICAgICAgICAgICAgIDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGU6IGlzVmlzaWJsZSh0aGlzLiRlbCkgJiYgY3NzKHRoaXMuJGVsLCAndmlzaWJpbGl0eScpICE9PSAnaGlkZGVuJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpblZpZXc6IHRoaXMuaW5WaWV3ICYmIGlzSW5WaWV3KHRoaXMuJGVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdmlzaWJsZSA9IHJlZi52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICB2YXIgaW5WaWV3ID0gcmVmLmluVmlldztcblxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdmlzaWJsZSB8fCB0aGlzLmluVmlldyAmJiAhaW5WaWV3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYXllci5wYXVzZSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYXV0b3BsYXkgPT09IHRydWUgfHwgdGhpcy5pblZpZXcgJiYgaW5WaWV3KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBsYXllci5wbGF5KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBldmVudHM6IFsnbG9hZCcsICdyZXNpemUnLCAnc2Nyb2xsJ11cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIF1cblxuICAgIH07XG5cbiAgICB2YXIgQ292ZXIgPSB7XG5cbiAgICAgICAgbWl4aW5zOiBbQ2xhc3MsIFZpZGVvXSxcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgd2lkdGg6IE51bWJlcixcbiAgICAgICAgICAgIGhlaWdodDogTnVtYmVyXG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgYXV0b211dGU6IHRydWVcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGU6IHtcblxuICAgICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICAgICAgdmFyIGVsID0gdGhpcy4kZWw7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWlzVmlzaWJsZShlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciByZWYgPSBlbC5wYXJlbnROb2RlO1xuICAgICAgICAgICAgICAgIHZhciBoZWlnaHQkJDEgPSByZWYub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgICAgIHZhciB3aWR0aCQkMSA9IHJlZi5vZmZzZXRXaWR0aDtcblxuICAgICAgICAgICAgICAgIGNzcyhcbiAgICAgICAgICAgICAgICAgICAgY3NzKGVsLCB7d2lkdGg6ICcnLCBoZWlnaHQ6ICcnfSksXG4gICAgICAgICAgICAgICAgICAgIERpbWVuc2lvbnMuY292ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHRoaXMud2lkdGggfHwgZWwuY2xpZW50V2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLmhlaWdodCB8fCBlbC5jbGllbnRIZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoJCQxICsgKHdpZHRoJCQxICUgMiA/IDEgOiAwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCQkMSArIChoZWlnaHQkJDEgJSAyID8gMSA6IDApXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBldmVudHM6IFsnbG9hZCcsICdyZXNpemUnXVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiB7XG5cbiAgICAgICAgICAgIGxvYWRlZG1ldGFkYXRhOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIHZhciBQb3NpdGlvbiA9IHtcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgcG9zOiBTdHJpbmcsXG4gICAgICAgICAgICBvZmZzZXQ6IG51bGwsXG4gICAgICAgICAgICBmbGlwOiBCb29sZWFuLFxuICAgICAgICAgICAgY2xzUG9zOiBTdHJpbmdcbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBwb3M6IChcImJvdHRvbS1cIiArICghaXNSdGwgPyAnbGVmdCcgOiAncmlnaHQnKSksXG4gICAgICAgICAgICBmbGlwOiB0cnVlLFxuICAgICAgICAgICAgb2Zmc2V0OiBmYWxzZSxcbiAgICAgICAgICAgIGNsc1BvczogJydcbiAgICAgICAgfSxcblxuICAgICAgICBjb21wdXRlZDoge1xuXG4gICAgICAgICAgICBwb3M6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciBwb3MgPSByZWYucG9zO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChwb3MgKyAoIWluY2x1ZGVzKHBvcywgJy0nKSA/ICctY2VudGVyJyA6ICcnKSkuc3BsaXQoJy0nKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGRpcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucG9zWzBdO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgYWxpZ246IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBvc1sxXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIG1ldGhvZHM6IHtcblxuICAgICAgICAgICAgcG9zaXRpb25BdDogZnVuY3Rpb24oZWxlbWVudCwgdGFyZ2V0LCBib3VuZGFyeSkge1xuXG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3NlcyhlbGVtZW50LCAoKHRoaXMuY2xzUG9zKSArIFwiLSh0b3B8Ym90dG9tfGxlZnR8cmlnaHQpKC1bYS16XSspP1wiKSk7XG4gICAgICAgICAgICAgICAgY3NzKGVsZW1lbnQsIHt0b3A6ICcnLCBsZWZ0OiAnJ30pO1xuXG4gICAgICAgICAgICAgICAgdmFyIG5vZGU7XG4gICAgICAgICAgICAgICAgdmFyIHJlZiA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmFyIG9mZnNldCQkMSA9IHJlZi5vZmZzZXQ7XG5cbiAgICAgICAgICAgICAgICBvZmZzZXQkJDEgPSBpc051bWVyaWMob2Zmc2V0JCQxKVxuICAgICAgICAgICAgICAgICAgICA/IG9mZnNldCQkMVxuICAgICAgICAgICAgICAgICAgICA6IChub2RlID0gJChvZmZzZXQkJDEpKVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBvZmZzZXQobm9kZSlbYXhpcyA9PT0gJ3gnID8gJ2xlZnQnIDogJ3RvcCddIC0gb2Zmc2V0KHRhcmdldClbYXhpcyA9PT0gJ3gnID8gJ3JpZ2h0JyA6ICdib3R0b20nXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiAwO1xuXG4gICAgICAgICAgICAgICAgdmFyIGF4aXMgPSB0aGlzLmdldEF4aXMoKTtcbiAgICAgICAgICAgICAgICB2YXIgcmVmJDEgPSBwb3NpdGlvbkF0KFxuICAgICAgICAgICAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQsXG4gICAgICAgICAgICAgICAgICAgIGF4aXMgPT09ICd4JyA/ICgoZmxpcFBvc2l0aW9uKHRoaXMuZGlyKSkgKyBcIiBcIiArICh0aGlzLmFsaWduKSkgOiAoKHRoaXMuYWxpZ24pICsgXCIgXCIgKyAoZmxpcFBvc2l0aW9uKHRoaXMuZGlyKSkpLFxuICAgICAgICAgICAgICAgICAgICBheGlzID09PSAneCcgPyAoKHRoaXMuZGlyKSArIFwiIFwiICsgKHRoaXMuYWxpZ24pKSA6ICgodGhpcy5hbGlnbikgKyBcIiBcIiArICh0aGlzLmRpcikpLFxuICAgICAgICAgICAgICAgICAgICBheGlzID09PSAneCcgPyAoXCJcIiArICh0aGlzLmRpciA9PT0gJ2xlZnQnID8gLW9mZnNldCQkMSA6IG9mZnNldCQkMSkpIDogKFwiIFwiICsgKHRoaXMuZGlyID09PSAndG9wJyA/IC1vZmZzZXQkJDEgOiBvZmZzZXQkJDEpKSxcbiAgICAgICAgICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mbGlwLFxuICAgICAgICAgICAgICAgICAgICBib3VuZGFyeVxuICAgICAgICAgICAgICAgICkudGFyZ2V0O1xuICAgICAgICAgICAgICAgIHZhciB4ID0gcmVmJDEueDtcbiAgICAgICAgICAgICAgICB2YXIgeSA9IHJlZiQxLnk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmRpciA9IGF4aXMgPT09ICd4JyA/IHggOiB5O1xuICAgICAgICAgICAgICAgIHRoaXMuYWxpZ24gPSBheGlzID09PSAneCcgPyB5IDogeDtcblxuICAgICAgICAgICAgICAgIHRvZ2dsZUNsYXNzKGVsZW1lbnQsICgodGhpcy5jbHNQb3MpICsgXCItXCIgKyAodGhpcy5kaXIpICsgXCItXCIgKyAodGhpcy5hbGlnbikpLCB0aGlzLm9mZnNldCA9PT0gZmFsc2UpO1xuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBnZXRBeGlzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaXIgPT09ICd0b3AnIHx8IHRoaXMuZGlyID09PSAnYm90dG9tJyA/ICd5JyA6ICd4JztcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgdmFyIGFjdGl2ZTtcblxuICAgIHZhciBEcm9wID0ge1xuXG4gICAgICAgIG1peGluczogW1Bvc2l0aW9uLCBUb2dnbGFibGVdLFxuXG4gICAgICAgIGFyZ3M6ICdwb3MnLFxuXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBtb2RlOiAnbGlzdCcsXG4gICAgICAgICAgICB0b2dnbGU6IEJvb2xlYW4sXG4gICAgICAgICAgICBib3VuZGFyeTogQm9vbGVhbixcbiAgICAgICAgICAgIGJvdW5kYXJ5QWxpZ246IEJvb2xlYW4sXG4gICAgICAgICAgICBkZWxheVNob3c6IE51bWJlcixcbiAgICAgICAgICAgIGRlbGF5SGlkZTogTnVtYmVyLFxuICAgICAgICAgICAgY2xzRHJvcDogU3RyaW5nXG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgbW9kZTogWydjbGljaycsICdob3ZlciddLFxuICAgICAgICAgICAgdG9nZ2xlOiAnLSAqJyxcbiAgICAgICAgICAgIGJvdW5kYXJ5OiB3aW5kb3csXG4gICAgICAgICAgICBib3VuZGFyeUFsaWduOiBmYWxzZSxcbiAgICAgICAgICAgIGRlbGF5U2hvdzogMCxcbiAgICAgICAgICAgIGRlbGF5SGlkZTogODAwLFxuICAgICAgICAgICAgY2xzRHJvcDogZmFsc2UsXG4gICAgICAgICAgICBob3ZlcklkbGU6IDIwMCxcbiAgICAgICAgICAgIGFuaW1hdGlvbjogWyd1ay1hbmltYXRpb24tZmFkZSddLFxuICAgICAgICAgICAgY2xzOiAndWstb3BlbidcbiAgICAgICAgfSxcblxuICAgICAgICBjb21wdXRlZDoge1xuXG4gICAgICAgICAgICBib3VuZGFyeTogZnVuY3Rpb24ocmVmLCAkZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgYm91bmRhcnkgPSByZWYuYm91bmRhcnk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcXVlcnkoYm91bmRhcnksICRlbCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBjbHNEcm9wOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2xzRHJvcCA9IHJlZi5jbHNEcm9wO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNsc0Ryb3AgfHwgKFwidWstXCIgKyAodGhpcy4kb3B0aW9ucy5uYW1lKSk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBjbHNQb3M6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNsc0Ryb3A7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICBpbml0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHRoaXMudHJhY2tlciA9IG5ldyBNb3VzZVRyYWNrZXIoKTtcbiAgICAgICAgfSxcblxuICAgICAgICBjb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICBhZGRDbGFzcyh0aGlzLiRlbCwgdGhpcy5jbHNEcm9wKTtcblxuICAgICAgICAgICAgdmFyIHJlZiA9IHRoaXMuJHByb3BzO1xuICAgICAgICAgICAgdmFyIHRvZ2dsZSA9IHJlZi50b2dnbGU7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZSA9IHRvZ2dsZSAmJiB0aGlzLiRjcmVhdGUoJ3RvZ2dsZScsIHF1ZXJ5KHRvZ2dsZSwgdGhpcy4kZWwpLCB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiB0aGlzLiRlbCxcbiAgICAgICAgICAgICAgICBtb2RlOiB0aGlzLm1vZGVcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUFyaWEodGhpcy4kZWwpO1xuXG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiBbXG5cblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ2NsaWNrJyxcblxuICAgICAgICAgICAgICAgIGRlbGVnYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcIi5cIiArICh0aGlzLmNsc0Ryb3ApICsgXCItY2xvc2VcIik7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ2NsaWNrJyxcblxuICAgICAgICAgICAgICAgIGRlbGVnYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICdhW2hyZWZePVwiI1wiXSc7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKGUpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZS5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB2YXIgaWQgPSBlLnRhcmdldC5oYXNoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghaWQgfHwgIXdpdGhpbihpZCwgdGhpcy4kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAnYmVmb3Jlc2Nyb2xsJyxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ3RvZ2dsZScsXG5cbiAgICAgICAgICAgICAgICBzZWxmOiB0cnVlLFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oZSwgdG9nZ2xlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzVG9nZ2xlZCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KHRvZ2dsZSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiBwb2ludGVyRW50ZXIsXG5cbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5jbHVkZXModGhpcy5tb2RlLCAnaG92ZXInKTtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oZSkge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpc1RvdWNoKGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiBhY3RpdmUgIT09IHRoaXNcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGFjdGl2ZS50b2dnbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICYmIGluY2x1ZGVzKGFjdGl2ZS50b2dnbGUubW9kZSwgJ2hvdmVyJylcbiAgICAgICAgICAgICAgICAgICAgICAgICYmICF3aXRoaW4oZS50YXJnZXQsIGFjdGl2ZS50b2dnbGUuJGVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgJiYgIXBvaW50SW5SZWN0KHt4OiBlLnBhZ2VYLCB5OiBlLnBhZ2VZfSwgb2Zmc2V0KGFjdGl2ZS4kZWwpKVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZS5oaWRlKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KHRoaXMudG9nZ2xlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6ICd0b2dnbGVzaG93JyxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKGUsIHRvZ2dsZSkge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0b2dnbGUgJiYgIWluY2x1ZGVzKHRvZ2dsZS50YXJnZXQsIHRoaXMuJGVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3codG9nZ2xlIHx8IHRoaXMudG9nZ2xlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6IChcInRvZ2dsZWhpZGUgXCIgKyBwb2ludGVyTGVhdmUpLFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oZSwgdG9nZ2xlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzVG91Y2goZSkgfHwgdG9nZ2xlICYmICFpbmNsdWRlcyh0b2dnbGUudGFyZ2V0LCB0aGlzLiRlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy50b2dnbGUgJiYgaW5jbHVkZXModGhpcy50b2dnbGUubW9kZSwgJ2hvdmVyJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAnYmVmb3Jlc2hvdycsXG5cbiAgICAgICAgICAgICAgICBzZWxmOiB0cnVlLFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJUaW1lcnMoKTtcbiAgICAgICAgICAgICAgICAgICAgQW5pbWF0aW9uLmNhbmNlbCh0aGlzLiRlbCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb24oKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6ICdzaG93JyxcblxuICAgICAgICAgICAgICAgIHNlbGY6IHRydWUsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFja2VyLmluaXQoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudG9nZ2xlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLnRvZ2dsZS4kZWwsIHRoaXMuY2xzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIodGhpcy50b2dnbGUuJGVsLCAnYXJpYS1leHBhbmRlZCcsICd0cnVlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVnaXN0ZXJFdmVudCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ2JlZm9yZWhpZGUnLFxuXG4gICAgICAgICAgICAgICAgc2VsZjogdHJ1ZSxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsZWFyVGltZXJzKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAnaGlkZScsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9IHJlZi50YXJnZXQ7XG5cblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy4kZWwgIT09IHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlID0gYWN0aXZlID09PSBudWxsICYmIHdpdGhpbih0YXJnZXQsIHRoaXMuJGVsKSAmJiB0aGlzLmlzVG9nZ2xlZCgpID8gdGhpcyA6IGFjdGl2ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZSA9IHRoaXMuaXNBY3RpdmUoKSA/IG51bGwgOiBhY3RpdmU7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMudG9nZ2xlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLnRvZ2dsZS4kZWwsIHRoaXMuY2xzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIodGhpcy50b2dnbGUuJGVsLCAnYXJpYS1leHBhbmRlZCcsICdmYWxzZScpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGUuJGVsLmJsdXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICQkKCdhLCBidXR0b24nLCB0aGlzLnRvZ2dsZS4kZWwpLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7IHJldHVybiBlbC5ibHVyKCk7IH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFja2VyLmNhbmNlbCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIF0sXG5cbiAgICAgICAgdXBkYXRlOiB7XG5cbiAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmlzVG9nZ2xlZCgpICYmICFBbmltYXRpb24uaW5Qcm9ncmVzcyh0aGlzLiRlbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3NpdGlvbigpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZXZlbnRzOiBbJ3Jlc2l6ZSddXG5cbiAgICAgICAgfSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIHNob3c6IGZ1bmN0aW9uKHRvZ2dsZSwgZGVsYXkpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcbiAgICAgICAgICAgICAgICBpZiAoIGRlbGF5ID09PSB2b2lkIDAgKSBkZWxheSA9IHRydWU7XG5cblxuICAgICAgICAgICAgICAgIHZhciBzaG93ID0gZnVuY3Rpb24gKCkgeyByZXR1cm4gIXRoaXMkMS5pc1RvZ2dsZWQoKSAmJiB0aGlzJDEudG9nZ2xlRWxlbWVudCh0aGlzJDEuJGVsLCB0cnVlKTsgfTtcbiAgICAgICAgICAgICAgICB2YXIgdHJ5U2hvdyA9IGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzJDEudG9nZ2xlID0gdG9nZ2xlIHx8IHRoaXMkMS50b2dnbGU7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcyQxLmNsZWFyVGltZXJzKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMkMS5pc0FjdGl2ZSgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVsYXkgJiYgYWN0aXZlICYmIGFjdGl2ZSAhPT0gdGhpcyQxICYmIGFjdGl2ZS5pc0RlbGF5aW5nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzJDEuc2hvd1RpbWVyID0gc2V0VGltZW91dCh0aGlzJDEuc2hvdywgMTApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMkMS5pc1BhcmVudE9mKGFjdGl2ZSkpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZS5oaWRlVGltZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY3RpdmUuaGlkZShmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGFjdGl2ZSAmJiAhdGhpcyQxLmlzQ2hpbGRPZihhY3RpdmUpICYmICF0aGlzJDEuaXNQYXJlbnRPZihhY3RpdmUpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBwcmV2O1xuICAgICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKGFjdGl2ZSAmJiBhY3RpdmUgIT09IHByZXYgJiYgIXRoaXMkMS5pc0NoaWxkT2YoYWN0aXZlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXYgPSBhY3RpdmU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlLmhpZGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoZGVsYXkgJiYgdGhpcyQxLmRlbGF5U2hvdykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLnNob3dUaW1lciA9IHNldFRpbWVvdXQoc2hvdywgdGhpcyQxLmRlbGF5U2hvdyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBhY3RpdmUgPSB0aGlzJDE7XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGlmICh0b2dnbGUgJiYgdGhpcy50b2dnbGUgJiYgdG9nZ2xlLiRlbCAhPT0gdGhpcy50b2dnbGUuJGVsKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgb25jZSh0aGlzLiRlbCwgJ2hpZGUnLCB0cnlTaG93KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKGZhbHNlKTtcblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyeVNob3coKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBoaWRlOiBmdW5jdGlvbihkZWxheSkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGlmICggZGVsYXkgPT09IHZvaWQgMCApIGRlbGF5ID0gdHJ1ZTtcblxuXG4gICAgICAgICAgICAgICAgdmFyIGhpZGUgPSBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzJDEudG9nZ2xlTm93KHRoaXMkMS4kZWwsIGZhbHNlKTsgfTtcblxuICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJUaW1lcnMoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuaXNEZWxheWluZyA9IHRoaXMudHJhY2tlci5tb3Zlc1RvKHRoaXMuJGVsKTtcblxuICAgICAgICAgICAgICAgIGlmIChkZWxheSAmJiB0aGlzLmlzRGVsYXlpbmcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlVGltZXIgPSBzZXRUaW1lb3V0KHRoaXMuaGlkZSwgdGhpcy5ob3ZlcklkbGUpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZGVsYXkgJiYgdGhpcy5kZWxheUhpZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlVGltZXIgPSBzZXRUaW1lb3V0KGhpZGUsIHRoaXMuZGVsYXlIaWRlKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBoaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgY2xlYXJUaW1lcnM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLnNob3dUaW1lcik7XG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaGlkZVRpbWVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dUaW1lciA9IG51bGw7XG4gICAgICAgICAgICAgICAgdGhpcy5oaWRlVGltZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIHRoaXMuaXNEZWxheWluZyA9IGZhbHNlO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgaXNBY3RpdmU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY3RpdmUgPT09IHRoaXM7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBpc0NoaWxkT2Y6IGZ1bmN0aW9uKGRyb3ApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZHJvcCAmJiBkcm9wICE9PSB0aGlzICYmIHdpdGhpbih0aGlzLiRlbCwgZHJvcC4kZWwpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgaXNQYXJlbnRPZjogZnVuY3Rpb24oZHJvcCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBkcm9wICYmIGRyb3AgIT09IHRoaXMgJiYgd2l0aGluKGRyb3AuJGVsLCB0aGlzLiRlbCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBwb3NpdGlvbjogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzc2VzKHRoaXMuJGVsLCAoKHRoaXMuY2xzRHJvcCkgKyBcIi0oc3RhY2t8Ym91bmRhcnkpXCIpKTtcbiAgICAgICAgICAgICAgICBjc3ModGhpcy4kZWwsIHt0b3A6ICcnLCBsZWZ0OiAnJywgZGlzcGxheTogJ2Jsb2NrJ30pO1xuICAgICAgICAgICAgICAgIHRvZ2dsZUNsYXNzKHRoaXMuJGVsLCAoKHRoaXMuY2xzRHJvcCkgKyBcIi1ib3VuZGFyeVwiKSwgdGhpcy5ib3VuZGFyeUFsaWduKTtcblxuICAgICAgICAgICAgICAgIHZhciBib3VuZGFyeSA9IG9mZnNldCh0aGlzLmJvdW5kYXJ5KTtcbiAgICAgICAgICAgICAgICB2YXIgYWxpZ25UbyA9IHRoaXMuYm91bmRhcnlBbGlnbiA/IGJvdW5kYXJ5IDogb2Zmc2V0KHRoaXMudG9nZ2xlLiRlbCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hbGlnbiA9PT0gJ2p1c3RpZnknKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwcm9wID0gdGhpcy5nZXRBeGlzKCkgPT09ICd5JyA/ICd3aWR0aCcgOiAnaGVpZ2h0JztcbiAgICAgICAgICAgICAgICAgICAgY3NzKHRoaXMuJGVsLCBwcm9wLCBhbGlnblRvW3Byb3BdKTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuJGVsLm9mZnNldFdpZHRoID4gTWF0aC5tYXgoYm91bmRhcnkucmlnaHQgLSBhbGlnblRvLmxlZnQsIGFsaWduVG8ucmlnaHQgLSBib3VuZGFyeS5sZWZ0KSkge1xuICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLiRlbCwgKCh0aGlzLmNsc0Ryb3ApICsgXCItc3RhY2tcIikpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMucG9zaXRpb25BdCh0aGlzLiRlbCwgdGhpcy5ib3VuZGFyeUFsaWduID8gdGhpcy5ib3VuZGFyeSA6IHRoaXMudG9nZ2xlLiRlbCwgdGhpcy5ib3VuZGFyeSk7XG5cbiAgICAgICAgICAgICAgICBjc3ModGhpcy4kZWwsICdkaXNwbGF5JywgJycpO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIHZhciByZWdpc3RlcmVkO1xuXG4gICAgZnVuY3Rpb24gcmVnaXN0ZXJFdmVudCgpIHtcblxuICAgICAgICBpZiAocmVnaXN0ZXJlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgcmVnaXN0ZXJlZCA9IHRydWU7XG4gICAgICAgIG9uKGRvY3VtZW50LCAnY2xpY2snLCBmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICB2YXIgdGFyZ2V0ID0gcmVmLnRhcmdldDtcbiAgICAgICAgICAgIHZhciBkZWZhdWx0UHJldmVudGVkID0gcmVmLmRlZmF1bHRQcmV2ZW50ZWQ7XG5cbiAgICAgICAgICAgIHZhciBwcmV2O1xuXG4gICAgICAgICAgICBpZiAoZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgd2hpbGUgKGFjdGl2ZSAmJiBhY3RpdmUgIT09IHByZXYgJiYgIXdpdGhpbih0YXJnZXQsIGFjdGl2ZS4kZWwpICYmICEoYWN0aXZlLnRvZ2dsZSAmJiB3aXRoaW4odGFyZ2V0LCBhY3RpdmUudG9nZ2xlLiRlbCkpKSB7XG4gICAgICAgICAgICAgICAgcHJldiA9IGFjdGl2ZTtcbiAgICAgICAgICAgICAgICBhY3RpdmUuaGlkZShmYWxzZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHZhciBEcm9wZG93biA9IHtcblxuICAgICAgICBleHRlbmRzOiBEcm9wXG5cbiAgICB9O1xuXG4gICAgdmFyIEZvcm1DdXN0b20gPSB7XG5cbiAgICAgICAgbWl4aW5zOiBbQ2xhc3NdLFxuXG4gICAgICAgIGFyZ3M6ICd0YXJnZXQnLFxuXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICB0YXJnZXQ6IEJvb2xlYW5cbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0YXJnZXQ6IGZhbHNlXG4gICAgICAgIH0sXG5cbiAgICAgICAgY29tcHV0ZWQ6IHtcblxuICAgICAgICAgICAgaW5wdXQ6IGZ1bmN0aW9uKF8sICRlbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAkKHNlbElucHV0LCAkZWwpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc3RhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmlucHV0Lm5leHRFbGVtZW50U2libGluZztcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHRhcmdldDogZnVuY3Rpb24ocmVmLCAkZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gcmVmLnRhcmdldDtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0YXJnZXQgJiYgKHRhcmdldCA9PT0gdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLmlucHV0LnBhcmVudE5vZGUgPT09ICRlbFxuICAgICAgICAgICAgICAgICAgICAmJiB0aGlzLmlucHV0Lm5leHRFbGVtZW50U2libGluZ1xuICAgICAgICAgICAgICAgICAgICB8fCBxdWVyeSh0YXJnZXQsICRlbCkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgdXBkYXRlOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgdmFyIHJlZiA9IHRoaXM7XG4gICAgICAgICAgICB2YXIgdGFyZ2V0ID0gcmVmLnRhcmdldDtcbiAgICAgICAgICAgIHZhciBpbnB1dCA9IHJlZi5pbnB1dDtcblxuICAgICAgICAgICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhciBvcHRpb247XG4gICAgICAgICAgICB2YXIgcHJvcCA9IGlzSW5wdXQodGFyZ2V0KSA/ICd2YWx1ZScgOiAndGV4dENvbnRlbnQnO1xuICAgICAgICAgICAgdmFyIHByZXYgPSB0YXJnZXRbcHJvcF07XG4gICAgICAgICAgICB2YXIgdmFsdWUgPSBpbnB1dC5maWxlcyAmJiBpbnB1dC5maWxlc1swXVxuICAgICAgICAgICAgICAgID8gaW5wdXQuZmlsZXNbMF0ubmFtZVxuICAgICAgICAgICAgICAgIDogbWF0Y2hlcyhpbnB1dCwgJ3NlbGVjdCcpICYmIChvcHRpb24gPSAkJCgnb3B0aW9uJywgaW5wdXQpLmZpbHRlcihmdW5jdGlvbiAoZWwpIHsgcmV0dXJuIGVsLnNlbGVjdGVkOyB9KVswXSlcbiAgICAgICAgICAgICAgICAgICAgPyBvcHRpb24udGV4dENvbnRlbnRcbiAgICAgICAgICAgICAgICAgICAgOiBpbnB1dC52YWx1ZTtcblxuICAgICAgICAgICAgaWYgKHByZXYgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0W3Byb3BdID0gdmFsdWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICBldmVudHM6IFtcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ2ZvY3VzaW4gZm9jdXNvdXQgbW91c2VlbnRlciBtb3VzZWxlYXZlJyxcblxuICAgICAgICAgICAgICAgIGRlbGVnYXRlOiBzZWxJbnB1dCxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdHlwZSA9IHJlZi50eXBlO1xuICAgICAgICAgICAgICAgICAgICB2YXIgY3VycmVudCA9IHJlZi5jdXJyZW50O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50ID09PSB0aGlzLmlucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChcInVrLVwiICsgKGluY2x1ZGVzKHR5cGUsICdmb2N1cycpID8gJ2ZvY3VzJyA6ICdob3ZlcicpKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmNsdWRlcyhbJ2ZvY3VzaW4nLCAnbW91c2VlbnRlciddLCB0eXBlKVxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ2NoYW5nZScsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kZW1pdCgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIF1cblxuICAgIH07XG5cbiAgICAvLyBEZXByZWNhdGVkXG4gICAgdmFyIEdpZiA9IHtcblxuICAgICAgICB1cGRhdGU6IHtcblxuICAgICAgICAgICAgcmVhZDogZnVuY3Rpb24oZGF0YSQkMSkge1xuXG4gICAgICAgICAgICAgICAgdmFyIGludmlldyA9IGlzSW5WaWV3KHRoaXMuJGVsKTtcblxuICAgICAgICAgICAgICAgIGlmICghaW52aWV3IHx8IGRhdGEkJDEuaXNJblZpZXcgPT09IGludmlldykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZGF0YSQkMS5pc0luVmlldyA9IGludmlldztcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB0aGlzLiRlbC5zcmMgPSB0aGlzLiRlbC5zcmM7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBldmVudHM6IFsnc2Nyb2xsJywgJ2xvYWQnLCAncmVzaXplJ11cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIHZhciBNYXJnaW4gPSB7XG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIG1hcmdpbjogU3RyaW5nLFxuICAgICAgICAgICAgZmlyc3RDb2x1bW46IEJvb2xlYW5cbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBtYXJnaW46ICd1ay1tYXJnaW4tc21hbGwtdG9wJyxcbiAgICAgICAgICAgIGZpcnN0Q29sdW1uOiAndWstZmlyc3QtY29sdW1uJ1xuICAgICAgICB9LFxuXG4gICAgICAgIHVwZGF0ZToge1xuXG4gICAgICAgICAgICByZWFkOiBmdW5jdGlvbihkYXRhJCQxKSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgaXRlbXMgPSB0aGlzLiRlbC5jaGlsZHJlbjtcbiAgICAgICAgICAgICAgICB2YXIgcm93cyA9IFtbXV07XG5cbiAgICAgICAgICAgICAgICBpZiAoIWl0ZW1zLmxlbmd0aCB8fCAhaXNWaXNpYmxlKHRoaXMuJGVsKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YSQkMS5yb3dzID0gcm93cztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBkYXRhJCQxLnJvd3MgPSBnZXRSb3dzKGl0ZW1zKTtcbiAgICAgICAgICAgICAgICBkYXRhJCQxLnN0YWNrcyA9ICFkYXRhJCQxLnJvd3Muc29tZShmdW5jdGlvbiAocm93KSB7IHJldHVybiByb3cubGVuZ3RoID4gMTsgfSk7XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcbiAgICAgICAgICAgICAgICB2YXIgcm93cyA9IHJlZi5yb3dzO1xuXG5cbiAgICAgICAgICAgICAgICByb3dzLmZvckVhY2goZnVuY3Rpb24gKHJvdywgaSkgeyByZXR1cm4gcm93LmZvckVhY2goZnVuY3Rpb24gKGVsLCBqKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyhlbCwgdGhpcyQxLm1hcmdpbiwgaSAhPT0gMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyhlbCwgdGhpcyQxLmZpcnN0Q29sdW1uLCBqID09PSAwKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7IH1cbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBldmVudHM6IFsnbG9hZCcsICdyZXNpemUnXVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRSb3dzKGl0ZW1zKSB7XG4gICAgICAgIHZhciByb3dzID0gW1tdXTtcblxuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGl0ZW1zLmxlbmd0aDsgaSsrKSB7XG5cbiAgICAgICAgICAgIHZhciBlbCA9IGl0ZW1zW2ldO1xuICAgICAgICAgICAgdmFyIGRpbSA9IGdldE9mZnNldChlbCk7XG5cbiAgICAgICAgICAgIGlmICghZGltLmhlaWdodCkge1xuICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBmb3IgKHZhciBqID0gcm93cy5sZW5ndGggLSAxOyBqID49IDA7IGotLSkge1xuXG4gICAgICAgICAgICAgICAgdmFyIHJvdyA9IHJvd3Nbal07XG5cbiAgICAgICAgICAgICAgICBpZiAoIXJvd1swXSkge1xuICAgICAgICAgICAgICAgICAgICByb3cucHVzaChlbCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBsZWZ0RGltID0gZ2V0T2Zmc2V0KHJvd1swXSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZGltLnRvcCA+PSBsZWZ0RGltLmJvdHRvbSAtIDEpIHtcbiAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKFtlbF0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoZGltLmJvdHRvbSA+IGxlZnREaW0udG9wKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGRpbS5sZWZ0IDwgbGVmdERpbS5sZWZ0ICYmICFpc1J0bCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm93LnVuc2hpZnQoZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByb3cucHVzaChlbCk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChqID09PSAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHJvd3MudW5zaGlmdChbZWxdKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByb3dzO1xuXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0T2Zmc2V0KGVsZW1lbnQpIHtcblxuICAgICAgICB2YXIgb2Zmc2V0VG9wID0gZWxlbWVudC5vZmZzZXRUb3A7XG4gICAgICAgIHZhciBvZmZzZXRMZWZ0ID0gZWxlbWVudC5vZmZzZXRMZWZ0O1xuICAgICAgICB2YXIgb2Zmc2V0SGVpZ2h0ID0gZWxlbWVudC5vZmZzZXRIZWlnaHQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvcDogb2Zmc2V0VG9wLFxuICAgICAgICAgICAgbGVmdDogb2Zmc2V0TGVmdCxcbiAgICAgICAgICAgIGhlaWdodDogb2Zmc2V0SGVpZ2h0LFxuICAgICAgICAgICAgYm90dG9tOiBvZmZzZXRUb3AgKyBvZmZzZXRIZWlnaHRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgR3JpZCA9IHtcblxuICAgICAgICBleHRlbmRzOiBNYXJnaW4sXG5cbiAgICAgICAgbWl4aW5zOiBbQ2xhc3NdLFxuXG4gICAgICAgIGF0dHJzOiB0cnVlLFxuXG4gICAgICAgIG5hbWU6ICdncmlkJyxcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgbWFzb25yeTogQm9vbGVhbixcbiAgICAgICAgICAgIHBhcmFsbGF4OiBOdW1iZXJcbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBtYXJnaW46ICd1ay1ncmlkLW1hcmdpbicsXG4gICAgICAgICAgICBjbHNTdGFjazogJ3VrLWdyaWQtc3RhY2snLFxuICAgICAgICAgICAgbWFzb25yeTogZmFsc2UsXG4gICAgICAgICAgICBwYXJhbGxheDogMFxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIHBhcmFsbGF4OiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgcGFyYWxsYXggPSByZWYucGFyYWxsYXg7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5hYnMocGFyYWxsYXgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgY29ubmVjdGVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHRoaXMubWFzb25yeSAmJiBhZGRDbGFzcyh0aGlzLiRlbCwgJ3VrLWZsZXgtdG9wIHVrLWZsZXgtd3JhcC10b3AnKTtcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGU6IFtcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgcmVhZDogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByb3dzID0gcmVmLnJvd3M7XG5cblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXNvbnJ5IHx8IHRoaXMucGFyYWxsYXgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvd3MgPSByb3dzLm1hcChmdW5jdGlvbiAoZWxlbWVudHMpIHsgcmV0dXJuIHNvcnRCeShlbGVtZW50cywgJ29mZnNldExlZnQnKTsgfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB2YXIgdHJhbnNsYXRlcyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZWxIZWlnaHQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXNvbnJ5KSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBoZWlnaHQkJDEgPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGVzID0gcm93cy5yZWR1Y2UoZnVuY3Rpb24gKHRyYW5zbGF0ZXMsIHJvdywgaSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlc1tpXSA9IHJvdy5tYXAoZnVuY3Rpb24gKF8sIGopIHsgcmV0dXJuIGkgPT09IDAgPyAwIDogdG9GbG9hdCh0cmFuc2xhdGVzW2kgLSAxXVtqXSkgKyAoaGVpZ2h0JCQxIC0gdG9GbG9hdChyb3dzW2kgLSAxXVtqXSAmJiByb3dzW2kgLSAxXVtqXS5vZmZzZXRIZWlnaHQpKTsgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0JCQxID0gcm93LnJlZHVjZShmdW5jdGlvbiAoaGVpZ2h0JCQxLCBlbCkgeyByZXR1cm4gTWF0aC5tYXgoaGVpZ2h0JCQxLCBlbC5vZmZzZXRIZWlnaHQpOyB9LCAwKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cmFuc2xhdGVzO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGVsSGVpZ2h0ID0gbWF4Q29sdW1uSGVpZ2h0KHJvd3MpICsgZ2V0TWFyZ2luVG9wKHRoaXMuJGVsLCB0aGlzLm1hcmdpbikgKiAocm93cy5sZW5ndGggLSAxKTtcblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtyb3dzOiByb3dzLCB0cmFuc2xhdGVzOiB0cmFuc2xhdGVzLCBoZWlnaHQ6IGVsSGVpZ2h0fTtcblxuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICB3cml0ZTogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByb3dzID0gcmVmLnJvd3M7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdGFja3MgPSByZWYuc3RhY2tzO1xuICAgICAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0JCQxID0gcmVmLmhlaWdodDtcblxuXG4gICAgICAgICAgICAgICAgICAgIHRvZ2dsZUNsYXNzKHRoaXMuJGVsLCB0aGlzLmNsc1N0YWNrLCBzdGFja3MpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNzcyh0aGlzLiRlbCwgJ3BhZGRpbmdCb3R0b20nLCB0aGlzLnBhcmFsbGF4ICYmIHJvd3Muc29tZShmdW5jdGlvbiAocm93KSB7IHJldHVybiByb3cubGVuZ3RoID4gMTsgfSkgPyB0aGlzLnBhcmFsbGF4IDogJycpO1xuXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCQkMSAmJiBjc3ModGhpcy4kZWwsICdtaW5IZWlnaHQnLCBoZWlnaHQkJDEpO1xuXG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGV2ZW50czogWydsb2FkJywgJ3Jlc2l6ZSddXG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIHJlYWQ6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgcm93cyA9IHJlZi5yb3dzO1xuICAgICAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0JCQxID0gcmVmLmhlaWdodDtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsZWQ6IHRoaXMucGFyYWxsYXggJiYgcm93cy5zb21lKGZ1bmN0aW9uIChyb3cpIHsgcmV0dXJuIHJvdy5sZW5ndGggPiAxOyB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gc2Nyb2xsZWRPdmVyKHRoaXMuJGVsLCBoZWlnaHQkJDEgPyBoZWlnaHQkJDEgLSBoZWlnaHQodGhpcy4kZWwpIDogMCkgKiB0aGlzLnBhcmFsbGF4XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBmYWxzZVxuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICB3cml0ZTogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciByb3dzID0gcmVmLnJvd3M7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzY3JvbGxlZCA9IHJlZi5zY3JvbGxlZDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRyYW5zbGF0ZXMgPSByZWYudHJhbnNsYXRlcztcblxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGxlZCA9PT0gZmFsc2UgJiYgIXRyYW5zbGF0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJvd3MuZm9yRWFjaChmdW5jdGlvbiAocm93LCBpKSB7IHJldHVybiByb3cuZm9yRWFjaChmdW5jdGlvbiAoZWwsIGopIHsgcmV0dXJuIGNzcyhlbCwgJ3RyYW5zZm9ybScsICFzY3JvbGxlZCAmJiAhdHJhbnNsYXRlcyA/ICcnIDogKFwidHJhbnNsYXRlWShcIiArICgodHJhbnNsYXRlcyAmJiAtdHJhbnNsYXRlc1tpXVtqXSkgKyAoc2Nyb2xsZWQgPyBqICUgMiA/IHNjcm9sbGVkIDogc2Nyb2xsZWQgLyA4IDogMCkpICsgXCJweClcIikpOyB9XG4gICAgICAgICAgICAgICAgICAgICAgICApOyB9XG4gICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgZXZlbnRzOiBbJ3Njcm9sbCcsICdsb2FkJywgJ3Jlc2l6ZSddXG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICBdXG5cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gZ2V0TWFyZ2luVG9wKHJvb3QsIGNscykge1xuXG4gICAgICAgIHZhciBub2RlcyA9IHRvTm9kZXMocm9vdC5jaGlsZHJlbik7XG4gICAgICAgIHZhciByZWYgPSBub2Rlcy5maWx0ZXIoZnVuY3Rpb24gKGVsKSB7IHJldHVybiBoYXNDbGFzcyhlbCwgY2xzKTsgfSk7XG4gICAgICAgIHZhciBub2RlID0gcmVmWzBdO1xuXG4gICAgICAgIHJldHVybiB0b0Zsb2F0KG5vZGVcbiAgICAgICAgICAgID8gY3NzKG5vZGUsICdtYXJnaW5Ub3AnKVxuICAgICAgICAgICAgOiBjc3Mobm9kZXNbMF0sICdwYWRkaW5nTGVmdCcpKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXhDb2x1bW5IZWlnaHQocm93cykge1xuICAgICAgICByZXR1cm4gTWF0aC5tYXguYXBwbHkoTWF0aCwgcm93cy5yZWR1Y2UoZnVuY3Rpb24gKHN1bSwgcm93KSB7XG4gICAgICAgICAgICByb3cuZm9yRWFjaChmdW5jdGlvbiAoZWwsIGkpIHsgcmV0dXJuIHN1bVtpXSA9IChzdW1baV0gfHwgMCkgKyBlbC5vZmZzZXRIZWlnaHQ7IH0pO1xuICAgICAgICAgICAgcmV0dXJuIHN1bTtcbiAgICAgICAgfSwgW10pKTtcbiAgICB9XG5cbiAgICB2YXIgSGVpZ2h0TWF0Y2ggPSB7XG5cbiAgICAgICAgYXJnczogJ3RhcmdldCcsXG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIHRhcmdldDogU3RyaW5nLFxuICAgICAgICAgICAgcm93OiBCb29sZWFuXG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgdGFyZ2V0OiAnPiAqJyxcbiAgICAgICAgICAgIHJvdzogdHJ1ZVxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIGVsZW1lbnRzOiBmdW5jdGlvbihyZWYsICRlbCkge1xuICAgICAgICAgICAgICAgIHZhciB0YXJnZXQgPSByZWYudGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuICQkKHRhcmdldCwgJGVsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIHVwZGF0ZToge1xuXG4gICAgICAgICAgICByZWFkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICAgICAgY3NzKHRoaXMuZWxlbWVudHMsIHtcbiAgICAgICAgICAgICAgICAgICAgbWluSGVpZ2h0OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgYm94U2l6aW5nOiAnJ1xuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgcm93czogIXRoaXMucm93XG4gICAgICAgICAgICAgICAgICAgICAgICA/IFt0aGlzLm1hdGNoKHRoaXMuZWxlbWVudHMpXVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBnZXRSb3dzKHRoaXMuZWxlbWVudHMpLm1hcChmdW5jdGlvbiAoZWxlbWVudHMpIHsgcmV0dXJuIHRoaXMkMS5tYXRjaChlbGVtZW50cyk7IH0pXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgcm93cyA9IHJlZi5yb3dzO1xuXG5cbiAgICAgICAgICAgICAgICByb3dzLmZvckVhY2goZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0JCQxID0gcmVmLmhlaWdodDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGVsZW1lbnRzID0gcmVmLmVsZW1lbnRzO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjc3MoZWxlbWVudHMsIHtcbiAgICAgICAgICAgICAgICAgICAgbWluSGVpZ2h0OiBoZWlnaHQkJDEsXG4gICAgICAgICAgICAgICAgICAgIGJveFNpemluZzogJ2JvcmRlci1ib3gnXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGV2ZW50czogWydsb2FkJywgJ3Jlc2l6ZSddXG5cbiAgICAgICAgfSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIG1hdGNoOiBmdW5jdGlvbihlbGVtZW50cykge1xuXG4gICAgICAgICAgICAgICAgaWYgKGVsZW1lbnRzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHt9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBoZWlnaHRzID0gW107XG4gICAgICAgICAgICAgICAgdmFyIG1heCA9IDA7XG5cbiAgICAgICAgICAgICAgICBlbGVtZW50c1xuICAgICAgICAgICAgICAgICAgICAuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZWYgPSBvZmZzZXQoZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhlaWdodCQkMSA9IHJlZi5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBtYXggPSBNYXRoLm1heChtYXgsIGhlaWdodCQkMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHRzLnB1c2goaGVpZ2h0JCQxKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBlbGVtZW50cyA9IGVsZW1lbnRzLmZpbHRlcihmdW5jdGlvbiAoZWwsIGkpIHsgcmV0dXJuIGhlaWdodHNbaV0gPCBtYXg7IH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtoZWlnaHQ6IG1heCwgZWxlbWVudHM6IGVsZW1lbnRzfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIHZhciBIZWlnaHRWaWV3cG9ydCA9IHtcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgZXhwYW5kOiBCb29sZWFuLFxuICAgICAgICAgICAgb2Zmc2V0VG9wOiBCb29sZWFuLFxuICAgICAgICAgICAgb2Zmc2V0Qm90dG9tOiBCb29sZWFuLFxuICAgICAgICAgICAgbWluSGVpZ2h0OiBOdW1iZXJcbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBleHBhbmQ6IGZhbHNlLFxuICAgICAgICAgICAgb2Zmc2V0VG9wOiBmYWxzZSxcbiAgICAgICAgICAgIG9mZnNldEJvdHRvbTogZmFsc2UsXG4gICAgICAgICAgICBtaW5IZWlnaHQ6IDBcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGU6IHtcblxuICAgICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICAgICAgY3NzKHRoaXMuJGVsLCAnYm94U2l6aW5nJywgJ2JvcmRlci1ib3gnKTtcblxuICAgICAgICAgICAgICAgIHZhciB2aWV3cG9ydCA9IGhlaWdodCh3aW5kb3cpO1xuICAgICAgICAgICAgICAgIHZhciBtaW5IZWlnaHQsIG9mZnNldFRvcCA9IDA7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5leHBhbmQpIHtcblxuICAgICAgICAgICAgICAgICAgICBjc3ModGhpcy4kZWwsIHtoZWlnaHQ6ICcnLCBtaW5IZWlnaHQ6ICcnfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGRpZmYgPSB2aWV3cG9ydCAtIG9mZnNldEhlaWdodChkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChkaWZmID4gMCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWluSGVpZ2h0ID0gb2Zmc2V0SGVpZ2h0KHRoaXMuJGVsKSArIGRpZmY7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlZiA9IG9mZnNldCh0aGlzLiRlbCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0b3AgPSByZWYudG9wO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0b3AgPCB2aWV3cG9ydCAvIDIgJiYgdGhpcy5vZmZzZXRUb3ApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFRvcCArPSB0b3A7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5vZmZzZXRCb3R0b20gPT09IHRydWUpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0VG9wICs9IG9mZnNldEhlaWdodCh0aGlzLiRlbC5uZXh0RWxlbWVudFNpYmxpbmcpO1xuXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNOdW1lcmljKHRoaXMub2Zmc2V0Qm90dG9tKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3AgKz0gKHZpZXdwb3J0IC8gMTAwKSAqIHRoaXMub2Zmc2V0Qm90dG9tO1xuXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5vZmZzZXRCb3R0b20gJiYgZW5kc1dpdGgodGhpcy5vZmZzZXRCb3R0b20sICdweCcpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldFRvcCArPSB0b0Zsb2F0KHRoaXMub2Zmc2V0Qm90dG9tKTtcblxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGlzU3RyaW5nKHRoaXMub2Zmc2V0Qm90dG9tKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXRUb3AgKz0gb2Zmc2V0SGVpZ2h0KHF1ZXJ5KHRoaXMub2Zmc2V0Qm90dG9tLCB0aGlzLiRlbCkpO1xuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBvbiBtb2JpbGUgZGV2aWNlcyAoaU9TIGFuZCBBbmRyb2lkKSB3aW5kb3cuaW5uZXJIZWlnaHQgIT09IDEwMHZoXG4gICAgICAgICAgICAgICAgICAgIG1pbkhlaWdodCA9IG9mZnNldFRvcCA/IChcImNhbGMoMTAwdmggLSBcIiArIG9mZnNldFRvcCArIFwicHgpXCIpIDogJzEwMHZoJztcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghbWluSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBjc3ModGhpcy4kZWwsIHtoZWlnaHQ6ICcnLCBtaW5IZWlnaHQ6IG1pbkhlaWdodH0pO1xuXG4gICAgICAgICAgICAgICAgdmFyIGVsSGVpZ2h0ID0gdGhpcy4kZWwub2Zmc2V0SGVpZ2h0O1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbkhlaWdodCAmJiB0aGlzLm1pbkhlaWdodCA+IGVsSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNzcyh0aGlzLiRlbCwgJ21pbkhlaWdodCcsIHRoaXMubWluSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBJRSAxMSBmaXggKG1pbi1oZWlnaHQgb24gYSBmbGV4IGNvbnRhaW5lciB3b24ndCBhcHBseSB0byBpdHMgZmxleCBpdGVtcylcbiAgICAgICAgICAgICAgICBpZiAodmlld3BvcnQgLSBvZmZzZXRUb3AgPj0gZWxIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgY3NzKHRoaXMuJGVsLCAnaGVpZ2h0JywgbWluSGVpZ2h0KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGV2ZW50czogWydsb2FkJywgJ3Jlc2l6ZSddXG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIG9mZnNldEhlaWdodChlbCkge1xuICAgICAgICByZXR1cm4gZWwgJiYgZWwub2Zmc2V0SGVpZ2h0IHx8IDA7XG4gICAgfVxuXG4gICAgdmFyIHN2Z3MgPSB7fTtcblxuICAgIHZhciBTVkcgPSB7XG5cbiAgICAgICAgYXR0cnM6IHRydWUsXG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGlkOiBTdHJpbmcsXG4gICAgICAgICAgICBpY29uOiBTdHJpbmcsXG4gICAgICAgICAgICBzcmM6IFN0cmluZyxcbiAgICAgICAgICAgIHN0eWxlOiBTdHJpbmcsXG4gICAgICAgICAgICB3aWR0aDogTnVtYmVyLFxuICAgICAgICAgICAgaGVpZ2h0OiBOdW1iZXIsXG4gICAgICAgICAgICByYXRpbzogTnVtYmVyLFxuICAgICAgICAgICAgJ2NsYXNzJzogU3RyaW5nXG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgcmF0aW86IDEsXG4gICAgICAgICAgICBpZDogZmFsc2UsXG4gICAgICAgICAgICBleGNsdWRlOiBbJ3JhdGlvJywgJ3NyYycsICdpY29uJ10sXG4gICAgICAgICAgICAnY2xhc3MnOiAnJ1xuICAgICAgICB9LFxuXG4gICAgICAgIGNvbm5lY3RlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcbiAgICAgICAgICAgIHZhciBhc3NpZ24kJDE7XG5cblxuICAgICAgICAgICAgdGhpcy5jbGFzcyArPSAnIHVrLXN2Zyc7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pY29uICYmIGluY2x1ZGVzKHRoaXMuc3JjLCAnIycpKSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgcGFydHMgPSB0aGlzLnNyYy5zcGxpdCgnIycpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgICAgICAgICAgICAgKGFzc2lnbiQkMSA9IHBhcnRzLCB0aGlzLnNyYyA9IGFzc2lnbiQkMVswXSwgdGhpcy5pY29uID0gYXNzaWduJCQxWzFdKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMuc3ZnID0gdGhpcy5nZXRTdmcoKS50aGVuKGZ1bmN0aW9uIChzdmcpIHtcblxuICAgICAgICAgICAgICAgIHZhciBlbDtcblxuICAgICAgICAgICAgICAgIGlmIChpc1N0cmluZyhzdmcpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMkMS5pY29uICYmIGluY2x1ZGVzKHN2ZywgJzxzeW1ib2wnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc3ZnID0gcGFyc2VTeW1ib2xzKHN2ZywgdGhpcyQxLmljb24pIHx8IHN2ZztcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGVsID0gJChzdmcuc3Vic3RyKHN2Zy5pbmRleE9mKCc8c3ZnJykpKTtcblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGVsID0gc3ZnLmNsb25lTm9kZSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIWVsKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlJDEucmVqZWN0KCdTVkcgbm90IGZvdW5kLicpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBkaW1lbnNpb25zID0gYXR0cihlbCwgJ3ZpZXdCb3gnKTtcblxuICAgICAgICAgICAgICAgIGlmIChkaW1lbnNpb25zKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpbWVuc2lvbnMgPSBkaW1lbnNpb25zLnNwbGl0KCcgJyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMkMS53aWR0aCA9IHRoaXMkMS4kcHJvcHMud2lkdGggfHwgZGltZW5zaW9uc1syXTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcyQxLmhlaWdodCA9IHRoaXMkMS4kcHJvcHMuaGVpZ2h0IHx8IGRpbWVuc2lvbnNbM107XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcyQxLndpZHRoICo9IHRoaXMkMS5yYXRpbztcbiAgICAgICAgICAgICAgICB0aGlzJDEuaGVpZ2h0ICo9IHRoaXMkMS5yYXRpbztcblxuICAgICAgICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gdGhpcyQxLiRvcHRpb25zLnByb3BzKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzJDFbcHJvcF0gJiYgIWluY2x1ZGVzKHRoaXMkMS5leGNsdWRlLCBwcm9wKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cihlbCwgcHJvcCwgdGhpcyQxW3Byb3BdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghdGhpcyQxLmlkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZUF0dHIoZWwsICdpZCcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzJDEud2lkdGggJiYgIXRoaXMkMS5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQXR0cihlbCwgJ2hlaWdodCcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzJDEuaGVpZ2h0ICYmICF0aGlzJDEud2lkdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQXR0cihlbCwgJ3dpZHRoJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIHJvb3QgPSB0aGlzJDEuJGVsO1xuICAgICAgICAgICAgICAgIGlmIChpc1ZvaWRFbGVtZW50KHJvb3QpIHx8IHJvb3QudGFnTmFtZSA9PT0gJ0NBTlZBUycpIHtcblxuICAgICAgICAgICAgICAgICAgICBhdHRyKHJvb3QsIHtoaWRkZW46IHRydWUsIGlkOiBudWxsfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIG5leHQgPSByb290Lm5leHRFbGVtZW50U2libGluZztcbiAgICAgICAgICAgICAgICAgICAgaWYgKG5leHQgJiYgZWwuaXNFcXVhbE5vZGUobmV4dCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsID0gbmV4dDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyKHJvb3QsIGVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgbGFzdCA9IHJvb3QubGFzdEVsZW1lbnRDaGlsZDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGxhc3QgJiYgZWwuaXNFcXVhbE5vZGUobGFzdCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVsID0gbGFzdDtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZChyb290LCBlbCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMkMS5zdmdFbCA9IGVsO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsO1xuXG4gICAgICAgICAgICB9LCBub29wKTtcblxuICAgICAgICB9LFxuXG4gICAgICAgIGRpc2Nvbm5lY3RlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICBpZiAoaXNWb2lkRWxlbWVudCh0aGlzLiRlbCkpIHtcbiAgICAgICAgICAgICAgICBhdHRyKHRoaXMuJGVsLCB7aGlkZGVuOiBudWxsLCBpZDogdGhpcy5pZCB8fCBudWxsfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICh0aGlzLnN2Zykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3ZnLnRoZW4oZnVuY3Rpb24gKHN2ZykgeyByZXR1cm4gKCF0aGlzJDEuX2Nvbm5lY3RlZCB8fCBzdmcgIT09IHRoaXMkMS5zdmdFbCkgJiYgcmVtb3ZlKHN2Zyk7IH0sIG5vb3ApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnN2ZyA9IHRoaXMuc3ZnRWwgPSBudWxsO1xuXG4gICAgICAgIH0sXG5cbiAgICAgICAgbWV0aG9kczoge1xuXG4gICAgICAgICAgICBnZXRTdmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc3JjKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlJDEucmVqZWN0KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHN2Z3NbdGhpcy5zcmNdKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzdmdzW3RoaXMuc3JjXTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzdmdzW3RoaXMuc3JjXSA9IG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFydHNXaXRoKHRoaXMkMS5zcmMsICdkYXRhOicpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKGRlY29kZVVSSUNvbXBvbmVudCh0aGlzJDEuc3JjLnNwbGl0KCcsJylbMV0pKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgYWpheCh0aGlzJDEuc3JjKS50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICh4aHIpIHsgcmV0dXJuIHJlc29sdmUoeGhyLnJlc3BvbnNlKTsgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7IHJldHVybiByZWplY3QoJ1NWRyBub3QgZm91bmQuJyk7IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gc3Znc1t0aGlzLnNyY107XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgdmFyIHN5bWJvbFJlID0gLzxzeW1ib2woLio/aWQ9KFsnXCJdKSguKj8pXFwyW15dKj88XFwvKXN5bWJvbD4vZztcbiAgICB2YXIgc3ltYm9scyA9IHt9O1xuXG4gICAgZnVuY3Rpb24gcGFyc2VTeW1ib2xzKHN2ZywgaWNvbikge1xuXG4gICAgICAgIGlmICghc3ltYm9sc1tzdmddKSB7XG5cbiAgICAgICAgICAgIHN5bWJvbHNbc3ZnXSA9IHt9O1xuXG4gICAgICAgICAgICB2YXIgbWF0Y2g7XG4gICAgICAgICAgICB3aGlsZSAoKG1hdGNoID0gc3ltYm9sUmUuZXhlYyhzdmcpKSkge1xuICAgICAgICAgICAgICAgIHN5bWJvbHNbc3ZnXVttYXRjaFszXV0gPSBcIjxzdmcgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIlwiICsgKG1hdGNoWzFdKSArIFwic3ZnPlwiO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBzeW1ib2xSZS5sYXN0SW5kZXggPSAwO1xuXG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gc3ltYm9sc1tzdmddW2ljb25dO1xuICAgIH1cblxuICAgIHZhciBjbG9zZUljb24gPSBcIjxzdmcgd2lkdGg9XFxcIjE0XFxcIiBoZWlnaHQ9XFxcIjE0XFxcIiB2aWV3Qm94PVxcXCIwIDAgMTQgMTRcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PGxpbmUgZmlsbD1cXFwibm9uZVxcXCIgc3Ryb2tlPVxcXCIjMDAwXFxcIiBzdHJva2Utd2lkdGg9XFxcIjEuMVxcXCIgeDE9XFxcIjFcXFwiIHkxPVxcXCIxXFxcIiB4Mj1cXFwiMTNcXFwiIHkyPVxcXCIxM1xcXCIvPjxsaW5lIGZpbGw9XFxcIm5vbmVcXFwiIHN0cm9rZT1cXFwiIzAwMFxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIxLjFcXFwiIHgxPVxcXCIxM1xcXCIgeTE9XFxcIjFcXFwiIHgyPVxcXCIxXFxcIiB5Mj1cXFwiMTNcXFwiLz48L3N2Zz5cIjtcblxuICAgIHZhciBjbG9zZUxhcmdlID0gXCI8c3ZnIHdpZHRoPVxcXCIyMFxcXCIgaGVpZ2h0PVxcXCIyMFxcXCIgdmlld0JveD1cXFwiMCAwIDIwIDIwXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxsaW5lIGZpbGw9XFxcIm5vbmVcXFwiIHN0cm9rZT1cXFwiIzAwMFxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIxLjRcXFwiIHgxPVxcXCIxXFxcIiB5MT1cXFwiMVxcXCIgeDI9XFxcIjE5XFxcIiB5Mj1cXFwiMTlcXFwiLz48bGluZSBmaWxsPVxcXCJub25lXFxcIiBzdHJva2U9XFxcIiMwMDBcXFwiIHN0cm9rZS13aWR0aD1cXFwiMS40XFxcIiB4MT1cXFwiMTlcXFwiIHkxPVxcXCIxXFxcIiB4Mj1cXFwiMVxcXCIgeTI9XFxcIjE5XFxcIi8+PC9zdmc+XCI7XG5cbiAgICB2YXIgbWFya2VyID0gXCI8c3ZnIHdpZHRoPVxcXCIyMFxcXCIgaGVpZ2h0PVxcXCIyMFxcXCIgdmlld0JveD1cXFwiMCAwIDIwIDIwXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxyZWN0IHg9XFxcIjlcXFwiIHk9XFxcIjRcXFwiIHdpZHRoPVxcXCIxXFxcIiBoZWlnaHQ9XFxcIjExXFxcIi8+PHJlY3QgeD1cXFwiNFxcXCIgeT1cXFwiOVxcXCIgd2lkdGg9XFxcIjExXFxcIiBoZWlnaHQ9XFxcIjFcXFwiLz48L3N2Zz5cIjtcblxuICAgIHZhciBuYXZiYXJUb2dnbGVJY29uID0gXCI8c3ZnIHdpZHRoPVxcXCIyMFxcXCIgaGVpZ2h0PVxcXCIyMFxcXCIgdmlld0JveD1cXFwiMCAwIDIwIDIwXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxyZWN0IHk9XFxcIjlcXFwiIHdpZHRoPVxcXCIyMFxcXCIgaGVpZ2h0PVxcXCIyXFxcIi8+PHJlY3QgeT1cXFwiM1xcXCIgd2lkdGg9XFxcIjIwXFxcIiBoZWlnaHQ9XFxcIjJcXFwiLz48cmVjdCB5PVxcXCIxNVxcXCIgd2lkdGg9XFxcIjIwXFxcIiBoZWlnaHQ9XFxcIjJcXFwiLz48L3N2Zz5cIjtcblxuICAgIHZhciBvdmVybGF5SWNvbiA9IFwiPHN2ZyB3aWR0aD1cXFwiNDBcXFwiIGhlaWdodD1cXFwiNDBcXFwiIHZpZXdCb3g9XFxcIjAgMCA0MCA0MFxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cmVjdCB4PVxcXCIxOVxcXCIgeT1cXFwiMFxcXCIgd2lkdGg9XFxcIjFcXFwiIGhlaWdodD1cXFwiNDBcXFwiLz48cmVjdCB4PVxcXCIwXFxcIiB5PVxcXCIxOVxcXCIgd2lkdGg9XFxcIjQwXFxcIiBoZWlnaHQ9XFxcIjFcXFwiLz48L3N2Zz5cIjtcblxuICAgIHZhciBwYWdpbmF0aW9uTmV4dCA9IFwiPHN2ZyB3aWR0aD1cXFwiN1xcXCIgaGVpZ2h0PVxcXCIxMlxcXCIgdmlld0JveD1cXFwiMCAwIDcgMTJcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBvbHlsaW5lIGZpbGw9XFxcIm5vbmVcXFwiIHN0cm9rZT1cXFwiIzAwMFxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIxLjJcXFwiIHBvaW50cz1cXFwiMSAxIDYgNiAxIDExXFxcIi8+PC9zdmc+XCI7XG5cbiAgICB2YXIgcGFnaW5hdGlvblByZXZpb3VzID0gXCI8c3ZnIHdpZHRoPVxcXCI3XFxcIiBoZWlnaHQ9XFxcIjEyXFxcIiB2aWV3Qm94PVxcXCIwIDAgNyAxMlxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cG9seWxpbmUgZmlsbD1cXFwibm9uZVxcXCIgc3Ryb2tlPVxcXCIjMDAwXFxcIiBzdHJva2Utd2lkdGg9XFxcIjEuMlxcXCIgcG9pbnRzPVxcXCI2IDEgMSA2IDYgMTFcXFwiLz48L3N2Zz5cIjtcblxuICAgIHZhciBzZWFyY2hJY29uID0gXCI8c3ZnIHdpZHRoPVxcXCIyMFxcXCIgaGVpZ2h0PVxcXCIyMFxcXCIgdmlld0JveD1cXFwiMCAwIDIwIDIwXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxjaXJjbGUgZmlsbD1cXFwibm9uZVxcXCIgc3Ryb2tlPVxcXCIjMDAwXFxcIiBzdHJva2Utd2lkdGg9XFxcIjEuMVxcXCIgY3g9XFxcIjlcXFwiIGN5PVxcXCI5XFxcIiByPVxcXCI3XFxcIi8+PHBhdGggZmlsbD1cXFwibm9uZVxcXCIgc3Ryb2tlPVxcXCIjMDAwXFxcIiBzdHJva2Utd2lkdGg9XFxcIjEuMVxcXCIgZD1cXFwiTTE0LDE0IEwxOCwxOCBMMTQsMTQgWlxcXCIvPjwvc3ZnPlwiO1xuXG4gICAgdmFyIHNlYXJjaExhcmdlID0gXCI8c3ZnIHdpZHRoPVxcXCI0MFxcXCIgaGVpZ2h0PVxcXCI0MFxcXCIgdmlld0JveD1cXFwiMCAwIDQwIDQwXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxjaXJjbGUgZmlsbD1cXFwibm9uZVxcXCIgc3Ryb2tlPVxcXCIjMDAwXFxcIiBzdHJva2Utd2lkdGg9XFxcIjEuOFxcXCIgY3g9XFxcIjE3LjVcXFwiIGN5PVxcXCIxNy41XFxcIiByPVxcXCIxNi41XFxcIi8+PGxpbmUgZmlsbD1cXFwibm9uZVxcXCIgc3Ryb2tlPVxcXCIjMDAwXFxcIiBzdHJva2Utd2lkdGg9XFxcIjEuOFxcXCIgeDE9XFxcIjM4XFxcIiB5MT1cXFwiMzlcXFwiIHgyPVxcXCIyOVxcXCIgeTI9XFxcIjMwXFxcIi8+PC9zdmc+XCI7XG5cbiAgICB2YXIgc2VhcmNoTmF2YmFyID0gXCI8c3ZnIHdpZHRoPVxcXCIyNFxcXCIgaGVpZ2h0PVxcXCIyNFxcXCIgdmlld0JveD1cXFwiMCAwIDI0IDI0XFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxjaXJjbGUgZmlsbD1cXFwibm9uZVxcXCIgc3Ryb2tlPVxcXCIjMDAwXFxcIiBzdHJva2Utd2lkdGg9XFxcIjEuMVxcXCIgY3g9XFxcIjEwLjVcXFwiIGN5PVxcXCIxMC41XFxcIiByPVxcXCI5LjVcXFwiLz48bGluZSBmaWxsPVxcXCJub25lXFxcIiBzdHJva2U9XFxcIiMwMDBcXFwiIHN0cm9rZS13aWR0aD1cXFwiMS4xXFxcIiB4MT1cXFwiMjNcXFwiIHkxPVxcXCIyM1xcXCIgeDI9XFxcIjE3XFxcIiB5Mj1cXFwiMTdcXFwiLz48L3N2Zz5cIjtcblxuICAgIHZhciBzbGlkZW5hdk5leHQgPSBcIjxzdmcgd2lkdGg9XFxcIjE0cHhcXFwiIGhlaWdodD1cXFwiMjRweFxcXCIgdmlld0JveD1cXFwiMCAwIDE0IDI0XFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxwb2x5bGluZSBmaWxsPVxcXCJub25lXFxcIiBzdHJva2U9XFxcIiMwMDBcXFwiIHN0cm9rZS13aWR0aD1cXFwiMS40XFxcIiBwb2ludHM9XFxcIjEuMjI1LDIzIDEyLjc3NSwxMiAxLjIyNSwxIFxcXCIvPjwvc3ZnPlwiO1xuXG4gICAgdmFyIHNsaWRlbmF2TmV4dExhcmdlID0gXCI8c3ZnIHdpZHRoPVxcXCIyNXB4XFxcIiBoZWlnaHQ9XFxcIjQwcHhcXFwiIHZpZXdCb3g9XFxcIjAgMCAyNSA0MFxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cG9seWxpbmUgZmlsbD1cXFwibm9uZVxcXCIgc3Ryb2tlPVxcXCIjMDAwXFxcIiBzdHJva2Utd2lkdGg9XFxcIjJcXFwiIHBvaW50cz1cXFwiNC4wMDIsMzguNTQ3IDIyLjUyNywyMC4wMjQgNCwxLjUgXFxcIi8+PC9zdmc+XCI7XG5cbiAgICB2YXIgc2xpZGVuYXZQcmV2aW91cyA9IFwiPHN2ZyB3aWR0aD1cXFwiMTRweFxcXCIgaGVpZ2h0PVxcXCIyNHB4XFxcIiB2aWV3Qm94PVxcXCIwIDAgMTQgMjRcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBvbHlsaW5lIGZpbGw9XFxcIm5vbmVcXFwiIHN0cm9rZT1cXFwiIzAwMFxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIxLjRcXFwiIHBvaW50cz1cXFwiMTIuNzc1LDEgMS4yMjUsMTIgMTIuNzc1LDIzIFxcXCIvPjwvc3ZnPlwiO1xuXG4gICAgdmFyIHNsaWRlbmF2UHJldmlvdXNMYXJnZSA9IFwiPHN2ZyB3aWR0aD1cXFwiMjVweFxcXCIgaGVpZ2h0PVxcXCI0MHB4XFxcIiB2aWV3Qm94PVxcXCIwIDAgMjUgNDBcXFwiIHhtbG5zPVxcXCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1xcXCI+PHBvbHlsaW5lIGZpbGw9XFxcIm5vbmVcXFwiIHN0cm9rZT1cXFwiIzAwMFxcXCIgc3Ryb2tlLXdpZHRoPVxcXCIyXFxcIiBwb2ludHM9XFxcIjIwLjUyNywxLjUgMiwyMC4wMjQgMjAuNTI1LDM4LjU0NyBcXFwiLz48L3N2Zz5cIjtcblxuICAgIHZhciBzcGlubmVyID0gXCI8c3ZnIHdpZHRoPVxcXCIzMFxcXCIgaGVpZ2h0PVxcXCIzMFxcXCIgdmlld0JveD1cXFwiMCAwIDMwIDMwXFxcIiB4bWxucz1cXFwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcXFwiPjxjaXJjbGUgZmlsbD1cXFwibm9uZVxcXCIgc3Ryb2tlPVxcXCIjMDAwXFxcIiBjeD1cXFwiMTVcXFwiIGN5PVxcXCIxNVxcXCIgcj1cXFwiMTRcXFwiLz48L3N2Zz5cIjtcblxuICAgIHZhciB0b3RvcCA9IFwiPHN2ZyB3aWR0aD1cXFwiMThcXFwiIGhlaWdodD1cXFwiMTBcXFwiIHZpZXdCb3g9XFxcIjAgMCAxOCAxMFxcXCIgeG1sbnM9XFxcImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXFxcIj48cG9seWxpbmUgZmlsbD1cXFwibm9uZVxcXCIgc3Ryb2tlPVxcXCIjMDAwXFxcIiBzdHJva2Utd2lkdGg9XFxcIjEuMlxcXCIgcG9pbnRzPVxcXCIxIDkgOSAxIDE3IDkgXFxcIi8+PC9zdmc+XCI7XG5cbiAgICB2YXIgcGFyc2VkID0ge307XG4gICAgdmFyIGljb25zID0ge1xuICAgICAgICBzcGlubmVyOiBzcGlubmVyLFxuICAgICAgICB0b3RvcDogdG90b3AsXG4gICAgICAgIG1hcmtlcjogbWFya2VyLFxuICAgICAgICAnY2xvc2UtaWNvbic6IGNsb3NlSWNvbixcbiAgICAgICAgJ2Nsb3NlLWxhcmdlJzogY2xvc2VMYXJnZSxcbiAgICAgICAgJ25hdmJhci10b2dnbGUtaWNvbic6IG5hdmJhclRvZ2dsZUljb24sXG4gICAgICAgICdvdmVybGF5LWljb24nOiBvdmVybGF5SWNvbixcbiAgICAgICAgJ3BhZ2luYXRpb24tbmV4dCc6IHBhZ2luYXRpb25OZXh0LFxuICAgICAgICAncGFnaW5hdGlvbi1wcmV2aW91cyc6IHBhZ2luYXRpb25QcmV2aW91cyxcbiAgICAgICAgJ3NlYXJjaC1pY29uJzogc2VhcmNoSWNvbixcbiAgICAgICAgJ3NlYXJjaC1sYXJnZSc6IHNlYXJjaExhcmdlLFxuICAgICAgICAnc2VhcmNoLW5hdmJhcic6IHNlYXJjaE5hdmJhcixcbiAgICAgICAgJ3NsaWRlbmF2LW5leHQnOiBzbGlkZW5hdk5leHQsXG4gICAgICAgICdzbGlkZW5hdi1uZXh0LWxhcmdlJzogc2xpZGVuYXZOZXh0TGFyZ2UsXG4gICAgICAgICdzbGlkZW5hdi1wcmV2aW91cyc6IHNsaWRlbmF2UHJldmlvdXMsXG4gICAgICAgICdzbGlkZW5hdi1wcmV2aW91cy1sYXJnZSc6IHNsaWRlbmF2UHJldmlvdXNMYXJnZVxuICAgIH07XG5cbiAgICB2YXIgSWNvbiA9IHtcblxuICAgICAgICBpbnN0YWxsOiBpbnN0YWxsLFxuXG4gICAgICAgIGF0dHJzOiBbJ2ljb24nLCAncmF0aW8nXSxcblxuICAgICAgICBtaXhpbnM6IFtDbGFzcywgU1ZHXSxcblxuICAgICAgICBhcmdzOiAnaWNvbicsXG5cbiAgICAgICAgcHJvcHM6IFsnaWNvbiddLFxuXG4gICAgICAgIGRhdGE6IHtleGNsdWRlOiBbJ2lkJywgJ3N0eWxlJywgJ2NsYXNzJywgJ3NyYycsICdpY29uJywgJ3JhdGlvJ119LFxuXG4gICAgICAgIGlzSWNvbjogdHJ1ZSxcblxuICAgICAgICBjb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kZWwsICd1ay1pY29uJyk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgbWV0aG9kczoge1xuXG4gICAgICAgICAgICBnZXRTdmc6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICAgICAgdmFyIGljb24gPSBnZXRJY29uKGFwcGx5UnRsKHRoaXMuaWNvbikpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFpY29uKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlJDEucmVqZWN0KCdJY29uIG5vdCBmb3VuZC4nKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZSQxLnJlc29sdmUoaWNvbik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIHZhciBJY29uQ29tcG9uZW50ID0ge1xuXG4gICAgICAgIGV4dGVuZHM6IEljb24sXG5cbiAgICAgICAgZGF0YTogZnVuY3Rpb24gKHZtKSB7IHJldHVybiAoe1xuICAgICAgICAgICAgaWNvbjogaHlwaGVuYXRlKHZtLmNvbnN0cnVjdG9yLm9wdGlvbnMubmFtZSlcbiAgICAgICAgfSk7IH1cblxuICAgIH07XG5cbiAgICB2YXIgU2xpZGVuYXYgPSB7XG5cbiAgICAgICAgZXh0ZW5kczogSWNvbkNvbXBvbmVudCxcblxuICAgICAgICBjb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kZWwsICd1ay1zbGlkZW5hdicpO1xuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIGljb246IGZ1bmN0aW9uKHJlZiwgJGVsKSB7XG4gICAgICAgICAgICAgICAgdmFyIGljb24gPSByZWYuaWNvbjtcblxuICAgICAgICAgICAgICAgIHJldHVybiBoYXNDbGFzcygkZWwsICd1ay1zbGlkZW5hdi1sYXJnZScpXG4gICAgICAgICAgICAgICAgICAgID8gKGljb24gKyBcIi1sYXJnZVwiKVxuICAgICAgICAgICAgICAgICAgICA6IGljb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIHZhciBTZWFyY2ggPSB7XG5cbiAgICAgICAgZXh0ZW5kczogSWNvbkNvbXBvbmVudCxcblxuICAgICAgICBjb21wdXRlZDoge1xuXG4gICAgICAgICAgICBpY29uOiBmdW5jdGlvbihyZWYsICRlbCkge1xuICAgICAgICAgICAgICAgIHZhciBpY29uID0gcmVmLmljb247XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gaGFzQ2xhc3MoJGVsLCAndWstc2VhcmNoLWljb24nKSAmJiBwYXJlbnRzKCRlbCwgJy51ay1zZWFyY2gtbGFyZ2UnKS5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgPyAnc2VhcmNoLWxhcmdlJ1xuICAgICAgICAgICAgICAgICAgICA6IHBhcmVudHMoJGVsLCAnLnVrLXNlYXJjaC1uYXZiYXInKS5sZW5ndGhcbiAgICAgICAgICAgICAgICAgICAgICAgID8gJ3NlYXJjaC1uYXZiYXInXG4gICAgICAgICAgICAgICAgICAgICAgICA6IGljb247XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIHZhciBDbG9zZSA9IHtcblxuICAgICAgICBleHRlbmRzOiBJY29uQ29tcG9uZW50LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIGljb246IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXCJjbG9zZS1cIiArIChoYXNDbGFzcyh0aGlzLiRlbCwgJ3VrLWNsb3NlLWxhcmdlJykgPyAnbGFyZ2UnIDogJ2ljb24nKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIHZhciBTcGlubmVyID0ge1xuXG4gICAgICAgIGV4dGVuZHM6IEljb25Db21wb25lbnQsXG5cbiAgICAgICAgY29ubmVjdGVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgICAgICAgICB0aGlzLnN2Zy50aGVuKGZ1bmN0aW9uIChzdmcpIHsgcmV0dXJuIHRoaXMkMS5yYXRpbyAhPT0gMSAmJiBjc3MoJCgnY2lyY2xlJywgc3ZnKSwgJ3N0cm9rZVdpZHRoJywgMSAvIHRoaXMkMS5yYXRpbyk7IH0sIG5vb3ApO1xuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gaW5zdGFsbChVSWtpdCkge1xuICAgICAgICBVSWtpdC5pY29uLmFkZCA9IGZ1bmN0aW9uIChuYW1lLCBzdmcpIHtcbiAgICAgICAgICAgIHZhciBvYmo7XG5cblxuICAgICAgICAgICAgdmFyIGFkZGVkID0gaXNTdHJpbmcobmFtZSkgPyAoKCBvYmogPSB7fSwgb2JqW25hbWVdID0gc3ZnLCBvYmogKSkgOiBuYW1lO1xuICAgICAgICAgICAgZWFjaChhZGRlZCwgZnVuY3Rpb24gKHN2ZywgbmFtZSkge1xuICAgICAgICAgICAgICAgIGljb25zW25hbWVdID0gc3ZnO1xuICAgICAgICAgICAgICAgIGRlbGV0ZSBwYXJzZWRbbmFtZV07XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYgKFVJa2l0Ll9pbml0aWFsaXplZCkge1xuICAgICAgICAgICAgICAgIGFwcGx5KGRvY3VtZW50LmJvZHksIGZ1bmN0aW9uIChlbCkgeyByZXR1cm4gZWFjaChVSWtpdC5nZXRDb21wb25lbnRzKGVsKSwgZnVuY3Rpb24gKGNtcCkgeyByZXR1cm4gY21wLiRvcHRpb25zLmlzSWNvbiAmJiBjbXAuaWNvbiBpbiBhZGRlZCAmJiBjbXAuJHJlc2V0KCk7IH1cbiAgICAgICAgICAgICAgICAgICAgKTsgfVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0SWNvbihpY29uKSB7XG5cbiAgICAgICAgaWYgKCFpY29uc1tpY29uXSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXBhcnNlZFtpY29uXSkge1xuICAgICAgICAgICAgcGFyc2VkW2ljb25dID0gJChpY29uc1tpY29uXS50cmltKCkpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlZFtpY29uXTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBhcHBseVJ0bChpY29uKSB7XG4gICAgICAgIHJldHVybiBpc1J0bCA/IHN3YXAoc3dhcChpY29uLCAnbGVmdCcsICdyaWdodCcpLCAncHJldmlvdXMnLCAnbmV4dCcpIDogaWNvbjtcbiAgICB9XG5cbiAgICB2YXIgSW1nID0ge1xuXG4gICAgICAgIGF0dHJzOiB0cnVlLFxuXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBkYXRhU3JjOiBTdHJpbmcsXG4gICAgICAgICAgICBkYXRhU3Jjc2V0OiBCb29sZWFuLFxuICAgICAgICAgICAgZGF0YVNpemVzOiBCb29sZWFuLFxuICAgICAgICAgICAgc2l6ZXM6IFN0cmluZyxcbiAgICAgICAgICAgIHdpZHRoOiBOdW1iZXIsXG4gICAgICAgICAgICBoZWlnaHQ6IE51bWJlcixcbiAgICAgICAgICAgIGRhdGFXaWR0aDogTnVtYmVyLFxuICAgICAgICAgICAgZGF0YUhlaWdodDogTnVtYmVyLFxuICAgICAgICAgICAgb2Zmc2V0VG9wOiBTdHJpbmcsXG4gICAgICAgICAgICBvZmZzZXRMZWZ0OiBTdHJpbmcsXG4gICAgICAgICAgICB0YXJnZXQ6IFN0cmluZ1xuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGRhdGFTcmM6ICcnLFxuICAgICAgICAgICAgZGF0YVNyY3NldDogZmFsc2UsXG4gICAgICAgICAgICBkYXRhU2l6ZXM6IGZhbHNlLFxuICAgICAgICAgICAgc2l6ZXM6IGZhbHNlLFxuICAgICAgICAgICAgd2lkdGg6IGZhbHNlLFxuICAgICAgICAgICAgaGVpZ2h0OiBmYWxzZSxcbiAgICAgICAgICAgIG9mZnNldFRvcDogJzUwdmgnLFxuICAgICAgICAgICAgb2Zmc2V0TGVmdDogMCxcbiAgICAgICAgICAgIHRhcmdldDogZmFsc2VcbiAgICAgICAgfSxcblxuICAgICAgICBjb21wdXRlZDoge1xuXG4gICAgICAgICAgICBjYWNoZUtleTogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRhdGFTcmMgPSByZWYuZGF0YVNyYztcblxuICAgICAgICAgICAgICAgIHJldHVybiAoKHRoaXMuJG5hbWUpICsgXCIuXCIgKyBkYXRhU3JjKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHdpZHRoOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgd2lkdGgkJDEgPSByZWYud2lkdGg7XG4gICAgICAgICAgICAgICAgdmFyIGRhdGFXaWR0aCA9IHJlZi5kYXRhV2lkdGg7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gd2lkdGgkJDEgfHwgZGF0YVdpZHRoO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgaGVpZ2h0OiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0JCQxID0gcmVmLmhlaWdodDtcbiAgICAgICAgICAgICAgICB2YXIgZGF0YUhlaWdodCA9IHJlZi5kYXRhSGVpZ2h0O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGhlaWdodCQkMSB8fCBkYXRhSGVpZ2h0O1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2l6ZXM6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciBzaXplcyA9IHJlZi5zaXplcztcbiAgICAgICAgICAgICAgICB2YXIgZGF0YVNpemVzID0gcmVmLmRhdGFTaXplcztcblxuICAgICAgICAgICAgICAgIHJldHVybiBzaXplcyB8fCBkYXRhU2l6ZXM7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBpc0ltZzogZnVuY3Rpb24oXywgJGVsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzSW1nKCRlbCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB0YXJnZXQ6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciB0YXJnZXQgPSByZWYudGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFt0aGlzLiRlbF0uY29uY2F0KHF1ZXJ5QWxsKHRhcmdldCwgdGhpcy4kZWwpKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIG9mZnNldFRvcDogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgdmFyIG9mZnNldFRvcCA9IHJlZi5vZmZzZXRUb3A7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdG9QeChvZmZzZXRUb3AsICdoZWlnaHQnKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIG9mZnNldExlZnQ6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciBvZmZzZXRMZWZ0ID0gcmVmLm9mZnNldExlZnQ7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdG9QeChvZmZzZXRMZWZ0LCAnd2lkdGgnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbm5lY3RlZDogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgIGlmIChzdG9yYWdlW3RoaXMuY2FjaGVLZXldKSB7XG4gICAgICAgICAgICAgICAgc2V0U3JjQXR0cnModGhpcy4kZWwsIHN0b3JhZ2VbdGhpcy5jYWNoZUtleV0gfHwgdGhpcy5kYXRhU3JjLCB0aGlzLmRhdGFTcmNzZXQsIHRoaXMuc2l6ZXMpO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmlzSW1nICYmIHRoaXMud2lkdGggJiYgdGhpcy5oZWlnaHQpIHtcbiAgICAgICAgICAgICAgICBzZXRTcmNBdHRycyh0aGlzLiRlbCwgZ2V0UGxhY2Vob2xkZXJJbWFnZSh0aGlzLndpZHRoLCB0aGlzLmhlaWdodCwgdGhpcy5zaXplcykpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgdXBkYXRlOiBbXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIHJlYWQ6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRlbGF5ID0gcmVmLmRlbGF5O1xuICAgICAgICAgICAgICAgICAgICB2YXIgaW1hZ2UgPSByZWYuaW1hZ2U7XG5cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWRlbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoaW1hZ2UgfHwgIXRoaXMudGFyZ2V0LnNvbWUoZnVuY3Rpb24gKGVsKSB7IHJldHVybiBpc0luVmlldyhlbCwgdGhpcyQxLm9mZnNldFRvcCwgdGhpcyQxLm9mZnNldExlZnQsIHRydWUpOyB9KSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNJbWcgJiYgaW1hZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWFnZS50aGVuKGZ1bmN0aW9uIChpbWcpIHsgcmV0dXJuIGltZyAmJiBzZXRTcmNBdHRycyh0aGlzJDEuJGVsLCBjdXJyZW50U3JjKGltZykpOyB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGltYWdlOiBnZXRJbWFnZSh0aGlzLmRhdGFTcmMsIHRoaXMuZGF0YVNyY3NldCwgdGhpcy5zaXplcykudGhlbihmdW5jdGlvbiAoaW1nKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRTcmNBdHRycyh0aGlzJDEuJGVsLCBjdXJyZW50U3JjKGltZyksIGltZy5zcmNzZXQsIGltZy5zaXplcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RvcmFnZVt0aGlzJDEuY2FjaGVLZXldID0gY3VycmVudFNyYyhpbWcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBpbWc7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIG5vb3ApXG4gICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKGRhdGEkJDEpIHtcblxuICAgICAgICAgICAgICAgICAgICAvLyBHaXZlIHBsYWNlaG9sZGVyIGltYWdlcyB0aW1lIHRvIGFwcGx5IHRoZWlyIGRpbWVuc2lvbnNcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFkYXRhJCQxLmRlbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZGF0YSQkMS5kZWxheSA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBldmVudHM6IFsnc2Nyb2xsJywgJ2xvYWQnLCAncmVzaXplJ11cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIF1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBzZXRTcmNBdHRycyhlbCwgc3JjLCBzcmNzZXQsIHNpemVzKSB7XG5cbiAgICAgICAgaWYgKGlzSW1nKGVsKSkge1xuICAgICAgICAgICAgc3JjICYmIChlbC5zcmMgPSBzcmMpO1xuICAgICAgICAgICAgc3Jjc2V0ICYmIChlbC5zcmNzZXQgPSBzcmNzZXQpO1xuICAgICAgICAgICAgc2l6ZXMgJiYgKGVsLnNpemVzID0gc2l6ZXMpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgc3JjICYmIGNzcyhlbCwgJ2JhY2tncm91bmRJbWFnZScsIChcInVybChcIiArIHNyYyArIFwiKVwiKSk7XG4gICAgICAgIH1cblxuICAgIH1cblxuICAgIHZhciB1cmxDYWNoZSA9IHt9O1xuICAgIHZhciBzaXplc1JlID0gL1xccyooLio/KVxccyooXFx3K3xjYWxjXFwoLio/XFwpKVxccyooPzosfCQpL2c7XG4gICAgZnVuY3Rpb24gZ2V0UGxhY2Vob2xkZXJJbWFnZSh3aWR0aCQkMSwgaGVpZ2h0JCQxLCBzaXplcywgY29sb3IpIHtcbiAgICAgICAgdmFyIGFzc2lnbiQkMTtcblxuICAgICAgICBpZiAoIGNvbG9yID09PSB2b2lkIDAgKSBjb2xvciA9ICd0cmFuc3BhcmVudCc7XG5cbiAgICAgICAgaWYgKHNpemVzKSB7XG4gICAgICAgICAgICB2YXIgbWF0Y2hlcyQkMTtcblxuICAgICAgICAgICAgd2hpbGUgKChtYXRjaGVzJCQxID0gc2l6ZXNSZS5leGVjKHNpemVzKSkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoZXMkJDFbMV0gfHwgd2luZG93Lm1hdGNoTWVkaWEobWF0Y2hlcyQkMVsxXSkubWF0Y2hlcykge1xuICAgICAgICAgICAgICAgICAgICBtYXRjaGVzJCQxID0gZXZhbHVhdGVTaXplKG1hdGNoZXMkJDFbMl0pO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNpemVzUmUubGFzdEluZGV4ID0gMDtcblxuICAgICAgICAgICAgKChhc3NpZ24kJDEgPSBEaW1lbnNpb25zLnJhdGlvKHt3aWR0aDogd2lkdGgkJDEsIGhlaWdodDogaGVpZ2h0JCQxfSwgJ3dpZHRoJywgdG9QeChtYXRjaGVzJCQxIHx8ICcxMDB2dycpKSwgd2lkdGgkJDEgPSBhc3NpZ24kJDEud2lkdGgsIGhlaWdodCQkMSA9IGFzc2lnbiQkMS5oZWlnaHQpKTtcblxuICAgICAgICB9XG5cbiAgICAgICAgdmFyIGtleSA9IHdpZHRoJCQxICsgXCIuXCIgKyBoZWlnaHQkJDEgKyBcIi5cIiArIGNvbG9yO1xuICAgICAgICBpZiAodXJsQ2FjaGVba2V5XSkge1xuICAgICAgICAgICAgcmV0dXJuIHVybENhY2hlW2tleV07XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgY2FudmFzID0gZnJhZ21lbnQoJzxjYW52YXM+Jyk7XG4gICAgICAgIGNhbnZhcy53aWR0aCA9IHdpZHRoJCQxO1xuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gaGVpZ2h0JCQxO1xuXG4gICAgICAgIHZhciBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGNvbnRleHQuZmlsbFN0eWxlID0gY29sb3I7XG4gICAgICAgIGNvbnRleHQuZmlsbFJlY3QoMCwgMCwgd2lkdGgkJDEsIGhlaWdodCQkMSk7XG5cbiAgICAgICAgcmV0dXJuIHVybENhY2hlW2tleV0gPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKTtcbiAgICB9XG5cbiAgICB2YXIgc2l6ZVJlID0gL1xcZCsoPzpcXHcrfCUpL2c7XG4gICAgdmFyIGFkZGl0aW9uUmUgPSAvWystXT8oXFxkKykvZztcbiAgICBmdW5jdGlvbiBldmFsdWF0ZVNpemUoc2l6ZSkge1xuICAgICAgICByZXR1cm4gc3RhcnRzV2l0aChzaXplLCAnY2FsYycpXG4gICAgICAgICAgICA/IHNpemVcbiAgICAgICAgICAgICAgICAuc3Vic3RyaW5nKDUsIHNpemUubGVuZ3RoIC0gMSlcbiAgICAgICAgICAgICAgICAucmVwbGFjZShzaXplUmUsIGZ1bmN0aW9uIChzaXplKSB7IHJldHVybiB0b1B4KHNpemUpOyB9KVxuICAgICAgICAgICAgICAgIC5yZXBsYWNlKC8gL2csICcnKVxuICAgICAgICAgICAgICAgIC5tYXRjaChhZGRpdGlvblJlKVxuICAgICAgICAgICAgICAgIC5yZWR1Y2UoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGEgKyArYjsgfSwgMClcbiAgICAgICAgICAgIDogc2l6ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0b1B4KHZhbHVlLCBwcm9wZXJ0eSwgZWxlbWVudCkge1xuICAgICAgICBpZiAoIHByb3BlcnR5ID09PSB2b2lkIDAgKSBwcm9wZXJ0eSA9ICd3aWR0aCc7XG4gICAgICAgIGlmICggZWxlbWVudCA9PT0gdm9pZCAwICkgZWxlbWVudCA9IHdpbmRvdztcblxuICAgICAgICByZXR1cm4gaXNOdW1lcmljKHZhbHVlKVxuICAgICAgICAgICAgPyArdmFsdWVcbiAgICAgICAgICAgIDogZW5kc1dpdGgodmFsdWUsICd2dycpXG4gICAgICAgICAgICAgICAgPyBwZXJjZW50KGVsZW1lbnQsICd3aWR0aCcsIHZhbHVlKVxuICAgICAgICAgICAgICAgIDogZW5kc1dpdGgodmFsdWUsICd2aCcpXG4gICAgICAgICAgICAgICAgICAgID8gcGVyY2VudChlbGVtZW50LCAnaGVpZ2h0JywgdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgIDogZW5kc1dpdGgodmFsdWUsICclJylcbiAgICAgICAgICAgICAgICAgICAgICAgID8gcGVyY2VudChlbGVtZW50LCBwcm9wZXJ0eSwgdmFsdWUpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRvRmxvYXQodmFsdWUpO1xuICAgIH1cblxuICAgIHZhciBkaW1lbnNpb25zID0ge2hlaWdodDogaGVpZ2h0LCB3aWR0aDogd2lkdGh9O1xuICAgIGZ1bmN0aW9uIHBlcmNlbnQoZWxlbWVudCwgcHJvcGVydHksIHZhbHVlKSB7XG4gICAgICAgIHJldHVybiBkaW1lbnNpb25zW3Byb3BlcnR5XShlbGVtZW50KSAqIHRvRmxvYXQodmFsdWUpIC8gMTAwO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzSW1nKGVsKSB7XG4gICAgICAgIHJldHVybiBlbC50YWdOYW1lID09PSAnSU1HJztcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBjdXJyZW50U3JjKGVsKSB7XG4gICAgICAgIHJldHVybiBlbC5jdXJyZW50U3JjIHx8IGVsLnNyYztcbiAgICB9XG5cbiAgICB2YXIga2V5ID0gJ19fdGVzdF9fJztcbiAgICB2YXIgc3RvcmFnZTtcblxuICAgIC8vIHdvcmthcm91bmQgZm9yIFNhZmFyaSdzIHByaXZhdGUgYnJvd3NpbmcgbW9kZSBhbmQgYWNjZXNzaW5nIHNlc3Npb25TdG9yYWdlIGluIEJsaW5rXG4gICAgdHJ5IHtcbiAgICAgICAgc3RvcmFnZSA9IHdpbmRvdy5zZXNzaW9uU3RvcmFnZSB8fCB7fTtcbiAgICAgICAgc3RvcmFnZVtrZXldID0gMTtcbiAgICAgICAgZGVsZXRlIHN0b3JhZ2Vba2V5XTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHN0b3JhZ2UgPSB7fTtcbiAgICB9XG5cbiAgICB2YXIgTGVhZGVyID0ge1xuXG4gICAgICAgIG1peGluczogW0NsYXNzXSxcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgZmlsbDogU3RyaW5nLFxuICAgICAgICAgICAgbWVkaWE6ICdtZWRpYSdcbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBmaWxsOiAnJyxcbiAgICAgICAgICAgIG1lZGlhOiBmYWxzZSxcbiAgICAgICAgICAgIGNsc1dyYXBwZXI6ICd1ay1sZWFkZXItZmlsbCcsXG4gICAgICAgICAgICBjbHNIaWRlOiAndWstbGVhZGVyLWhpZGUnLFxuICAgICAgICAgICAgYXR0ckZpbGw6ICdkYXRhLWZpbGwnXG4gICAgICAgIH0sXG5cbiAgICAgICAgY29tcHV0ZWQ6IHtcblxuICAgICAgICAgICAgZmlsbDogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgdmFyIGZpbGwgPSByZWYuZmlsbDtcblxuICAgICAgICAgICAgICAgIHJldHVybiBmaWxsIHx8IGdldENzc1ZhcignbGVhZGVyLWZpbGwnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbm5lY3RlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgYXNzaWduJCQxO1xuXG4gICAgICAgICAgICAoYXNzaWduJCQxID0gd3JhcElubmVyKHRoaXMuJGVsLCAoXCI8c3BhbiBjbGFzcz1cXFwiXCIgKyAodGhpcy5jbHNXcmFwcGVyKSArIFwiXFxcIj5cIikpLCB0aGlzLndyYXBwZXIgPSBhc3NpZ24kJDFbMF0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIGRpc2Nvbm5lY3RlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB1bndyYXAodGhpcy53cmFwcGVyLmNoaWxkTm9kZXMpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHVwZGF0ZTogW1xuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICByZWFkOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNoYW5nZWQgPSByZWYuY2hhbmdlZDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHdpZHRoJCQxID0gcmVmLndpZHRoO1xuXG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHByZXYgPSB3aWR0aCQkMTtcblxuICAgICAgICAgICAgICAgICAgICB3aWR0aCQkMSA9IE1hdGguZmxvb3IodGhpcy4kZWwub2Zmc2V0V2lkdGggLyAyKTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoJCQxLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hhbmdlZDogY2hhbmdlZCB8fCBwcmV2ICE9PSB3aWR0aCQkMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhpZGU6IHRoaXMubWVkaWEgJiYgIXdpbmRvdy5tYXRjaE1lZGlhKHRoaXMubWVkaWEpLm1hdGNoZXNcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKGRhdGEkJDEpIHtcblxuICAgICAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyh0aGlzLndyYXBwZXIsIHRoaXMuY2xzSGlkZSwgZGF0YSQkMS5oaWRlKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSQkMS5jaGFuZ2VkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhJCQxLmNoYW5nZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGF0dHIodGhpcy53cmFwcGVyLCB0aGlzLmF0dHJGaWxsLCBuZXcgQXJyYXkoZGF0YSQkMS53aWR0aCkuam9pbih0aGlzLmZpbGwpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGV2ZW50czogWydsb2FkJywgJ3Jlc2l6ZSddXG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgXVxuXG4gICAgfTtcblxuICAgIHZhciBDb250YWluZXIgPSB7XG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGNvbnRhaW5lcjogQm9vbGVhblxuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGNvbnRhaW5lcjogdHJ1ZVxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIGNvbnRhaW5lcjogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNvbnRhaW5lciA9IHJlZi5jb250YWluZXI7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gY29udGFpbmVyID09PSB0cnVlICYmIHRoaXMuJGNvbnRhaW5lciB8fCBjb250YWluZXIgJiYgJChjb250YWluZXIpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICB2YXIgYWN0aXZlJDE7XG5cbiAgICB2YXIgTW9kYWwgPSB7XG5cbiAgICAgICAgbWl4aW5zOiBbQ2xhc3MsIENvbnRhaW5lciwgVG9nZ2xhYmxlXSxcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgc2VsUGFuZWw6IFN0cmluZyxcbiAgICAgICAgICAgIHNlbENsb3NlOiBTdHJpbmcsXG4gICAgICAgICAgICBlc2NDbG9zZTogQm9vbGVhbixcbiAgICAgICAgICAgIGJnQ2xvc2U6IEJvb2xlYW4sXG4gICAgICAgICAgICBzdGFjazogQm9vbGVhblxuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGNsczogJ3VrLW9wZW4nLFxuICAgICAgICAgICAgZXNjQ2xvc2U6IHRydWUsXG4gICAgICAgICAgICBiZ0Nsb3NlOiB0cnVlLFxuICAgICAgICAgICAgb3ZlcmxheTogdHJ1ZSxcbiAgICAgICAgICAgIHN0YWNrOiBmYWxzZVxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIHBhbmVsOiBmdW5jdGlvbihyZWYsICRlbCkge1xuICAgICAgICAgICAgICAgIHZhciBzZWxQYW5lbCA9IHJlZi5zZWxQYW5lbDtcblxuICAgICAgICAgICAgICAgIHJldHVybiAkKHNlbFBhbmVsLCAkZWwpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdHJhbnNpdGlvbkVsZW1lbnQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnBhbmVsO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdHJhbnNpdGlvbkR1cmF0aW9uOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9Ncyhjc3ModGhpcy50cmFuc2l0aW9uRWxlbWVudCwgJ3RyYW5zaXRpb25EdXJhdGlvbicpKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGJnQ2xvc2U6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciBiZ0Nsb3NlID0gcmVmLmJnQ2xvc2U7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYmdDbG9zZSAmJiB0aGlzLnBhbmVsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiBbXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6ICdjbGljaycsXG5cbiAgICAgICAgICAgICAgICBkZWxlZ2F0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNlbENsb3NlO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAndG9nZ2xlJyxcblxuICAgICAgICAgICAgICAgIHNlbGY6IHRydWUsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGUuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdiZWZvcmVzaG93JyxcblxuICAgICAgICAgICAgICAgIHNlbGY6IHRydWUsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHByZXYgPSBhY3RpdmUkMSAmJiBhY3RpdmUkMSAhPT0gdGhpcyAmJiBhY3RpdmUkMTtcblxuICAgICAgICAgICAgICAgICAgICBhY3RpdmUkMSA9IHRoaXM7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHByZXYpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnN0YWNrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2ID0gcHJldjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJldi5oaWRlKCkudGhlbih0aGlzLnNob3cpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZWdpc3RlckV2ZW50cygpO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2JlZm9yZWhpZGUnLFxuXG4gICAgICAgICAgICAgICAgc2VsZjogdHJ1ZSxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZSQxID0gYWN0aXZlJDEgJiYgYWN0aXZlJDEgIT09IHRoaXMgJiYgYWN0aXZlJDEgfHwgdGhpcy5wcmV2O1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghYWN0aXZlJDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlcmVnaXN0ZXJFdmVudHMoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAnc2hvdycsXG5cbiAgICAgICAgICAgICAgICBzZWxmOiB0cnVlLFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFoYXNDbGFzcyhkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHRoaXMuY2xzUGFnZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2Nyb2xsYmFyV2lkdGggPSB3aWR0aCh3aW5kb3cpIC0gd2lkdGgoZG9jdW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY3NzKGRvY3VtZW50LmJvZHksICdvdmVyZmxvd1knLCB0aGlzLnNjcm9sbGJhcldpZHRoICYmIHRoaXMub3ZlcmxheSA/ICdzY3JvbGwnIDogJycpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgYWRkQ2xhc3MoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCB0aGlzLmNsc1BhZ2UpO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAnaGlkZGVuJyxcblxuICAgICAgICAgICAgICAgIHNlbGY6IHRydWUsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgICAgICAgICB2YXIgZm91bmQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZWYgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcHJldiA9IHJlZi5wcmV2O1xuXG4gICAgICAgICAgICAgICAgICAgIHdoaWxlIChwcmV2KSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChwcmV2LmNsc1BhZ2UgPT09IHRoaXMkMS5jbHNQYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm91bmQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2ID0gcHJldi5wcmV2O1xuXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWZvdW5kKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyhkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHRoaXMuY2xzUGFnZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICF0aGlzLnByZXYgJiYgY3NzKGRvY3VtZW50LmJvZHksICdvdmVyZmxvd1knLCAnJyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIHRvZ2dsZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNUb2dnbGVkKCkgPyB0aGlzLmhpZGUoKSA6IHRoaXMuc2hvdygpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2hvdzogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1RvZ2dsZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZSQxLnJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb250YWluZXIgJiYgdGhpcy4kZWwucGFyZW50Tm9kZSAhPT0gdGhpcy5jb250YWluZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kKHRoaXMuY29udGFpbmVyLCB0aGlzLiRlbCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2NhbGxDb25uZWN0ZWQoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b2dnbGVOb3codGhpcy4kZWwsIHRydWUpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgaGlkZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNUb2dnbGVkKClcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnRvZ2dsZU5vdyh0aGlzLiRlbCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgIDogUHJvbWlzZSQxLnJlc29sdmUoKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGdldEFjdGl2ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjdGl2ZSQxO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgX3RvZ2dsZUltbWVkaWF0ZTogZnVuY3Rpb24oZWwsIHNob3cpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJldHVybiByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLl90b2dnbGUoZWwsIHNob3cpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcyQxLnRyYW5zaXRpb25EdXJhdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uY2UodGhpcyQxLnRyYW5zaXRpb25FbGVtZW50LCAndHJhbnNpdGlvbmVuZCcsIHJlc29sdmUsIGZhbHNlLCBmdW5jdGlvbiAoZSkgeyByZXR1cm4gZS50YXJnZXQgPT09IHRoaXMkMS50cmFuc2l0aW9uRWxlbWVudDsgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7IH1cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICB2YXIgZXZlbnRzO1xuXG4gICAgZnVuY3Rpb24gcmVnaXN0ZXJFdmVudHMoKSB7XG5cbiAgICAgICAgaWYgKGV2ZW50cykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnRzID0gW1xuICAgICAgICAgICAgb24oZG9jdW1lbnQsICdjbGljaycsIGZ1bmN0aW9uIChyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gcmVmLnRhcmdldDtcbiAgICAgICAgICAgICAgICB2YXIgZGVmYXVsdFByZXZlbnRlZCA9IHJlZi5kZWZhdWx0UHJldmVudGVkO1xuXG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZSQxICYmIGFjdGl2ZSQxLmJnQ2xvc2UgJiYgIWRlZmF1bHRQcmV2ZW50ZWQgJiYgKCFhY3RpdmUkMS5vdmVybGF5IHx8IHdpdGhpbih0YXJnZXQsIGFjdGl2ZSQxLiRlbCkpICYmICF3aXRoaW4odGFyZ2V0LCBhY3RpdmUkMS5wYW5lbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlJDEuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgb24oZG9jdW1lbnQsICdrZXlkb3duJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoZS5rZXlDb2RlID09PSAyNyAmJiBhY3RpdmUkMSAmJiBhY3RpdmUkMS5lc2NDbG9zZSkge1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZSQxLmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICBdO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGRlcmVnaXN0ZXJFdmVudHMoKSB7XG4gICAgICAgIGV2ZW50cyAmJiBldmVudHMuZm9yRWFjaChmdW5jdGlvbiAodW5iaW5kKSB7IHJldHVybiB1bmJpbmQoKTsgfSk7XG4gICAgICAgIGV2ZW50cyA9IG51bGw7XG4gICAgfVxuXG4gICAgdmFyIE1vZGFsJDEgPSB7XG5cbiAgICAgICAgaW5zdGFsbDogaW5zdGFsbCQxLFxuXG4gICAgICAgIG1peGluczogW01vZGFsXSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBjbHNQYWdlOiAndWstbW9kYWwtcGFnZScsXG4gICAgICAgICAgICBzZWxQYW5lbDogJy51ay1tb2RhbC1kaWFsb2cnLFxuICAgICAgICAgICAgc2VsQ2xvc2U6ICcudWstbW9kYWwtY2xvc2UsIC51ay1tb2RhbC1jbG9zZS1kZWZhdWx0LCAudWstbW9kYWwtY2xvc2Utb3V0c2lkZSwgLnVrLW1vZGFsLWNsb3NlLWZ1bGwnXG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiBbXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnc2hvdycsXG5cbiAgICAgICAgICAgICAgICBzZWxmOiB0cnVlLFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGhhc0NsYXNzKHRoaXMucGFuZWwsICd1ay1tYXJnaW4tYXV0by12ZXJ0aWNhbCcpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLiRlbCwgJ3VrLWZsZXgnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcyh0aGlzLiRlbCwgJ2Rpc3BsYXknLCAnYmxvY2snKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGhlaWdodCh0aGlzLiRlbCk7IC8vIGZvcmNlIHJlZmxvd1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnaGlkZGVuJyxcblxuICAgICAgICAgICAgICAgIHNlbGY6IHRydWUsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgICAgICAgICBjc3ModGhpcy4kZWwsICdkaXNwbGF5JywgJycpO1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLiRlbCwgJ3VrLWZsZXgnKTtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICBdXG5cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gaW5zdGFsbCQxIChVSWtpdCkge1xuXG4gICAgICAgIFVJa2l0Lm1vZGFsLmRpYWxvZyA9IGZ1bmN0aW9uIChjb250ZW50LCBvcHRpb25zKSB7XG5cbiAgICAgICAgICAgIHZhciBkaWFsb2cgPSBVSWtpdC5tb2RhbCgoXCIgPGRpdiBjbGFzcz1cXFwidWstbW9kYWxcXFwiPiA8ZGl2IGNsYXNzPVxcXCJ1ay1tb2RhbC1kaWFsb2dcXFwiPlwiICsgY29udGVudCArIFwiPC9kaXY+IDwvZGl2PiBcIiksIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICBkaWFsb2cuc2hvdygpO1xuXG4gICAgICAgICAgICBvbihkaWFsb2cuJGVsLCAnaGlkZGVuJywgZnVuY3Rpb24gKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciB0YXJnZXQgPSByZWYudGFyZ2V0O1xuICAgICAgICAgICAgICAgIHZhciBjdXJyZW50VGFyZ2V0ID0gcmVmLmN1cnJlbnRUYXJnZXQ7XG5cbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0ID09PSBjdXJyZW50VGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZy4kZGVzdHJveSh0cnVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgcmV0dXJuIGRpYWxvZztcbiAgICAgICAgfTtcblxuICAgICAgICBVSWtpdC5tb2RhbC5hbGVydCA9IGZ1bmN0aW9uIChtZXNzYWdlLCBvcHRpb25zKSB7XG5cbiAgICAgICAgICAgIG9wdGlvbnMgPSBhc3NpZ24oe2JnQ2xvc2U6IGZhbHNlLCBlc2NDbG9zZTogZmFsc2UsIGxhYmVsczogVUlraXQubW9kYWwubGFiZWxzfSwgb3B0aW9ucyk7XG5cbiAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSQxKFxuICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChyZXNvbHZlKSB7IHJldHVybiBvbihVSWtpdC5tb2RhbC5kaWFsb2coKFwiIDxkaXYgY2xhc3M9XFxcInVrLW1vZGFsLWJvZHlcXFwiPlwiICsgKGlzU3RyaW5nKG1lc3NhZ2UpID8gbWVzc2FnZSA6IGh0bWwobWVzc2FnZSkpICsgXCI8L2Rpdj4gPGRpdiBjbGFzcz1cXFwidWstbW9kYWwtZm9vdGVyIHVrLXRleHQtcmlnaHRcXFwiPiA8YnV0dG9uIGNsYXNzPVxcXCJ1ay1idXR0b24gdWstYnV0dG9uLXByaW1hcnkgdWstbW9kYWwtY2xvc2VcXFwiIGF1dG9mb2N1cz5cIiArIChvcHRpb25zLmxhYmVscy5vaykgKyBcIjwvYnV0dG9uPiA8L2Rpdj4gXCIpLCBvcHRpb25zKS4kZWwsICdoaWRlJywgcmVzb2x2ZSk7IH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH07XG5cbiAgICAgICAgVUlraXQubW9kYWwuY29uZmlybSA9IGZ1bmN0aW9uIChtZXNzYWdlLCBvcHRpb25zKSB7XG5cbiAgICAgICAgICAgIG9wdGlvbnMgPSBhc3NpZ24oe2JnQ2xvc2U6IGZhbHNlLCBlc2NDbG9zZTogdHJ1ZSwgbGFiZWxzOiBVSWtpdC5tb2RhbC5sYWJlbHN9LCBvcHRpb25zKTtcblxuICAgICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlJDEoZnVuY3Rpb24gKHJlc29sdmUsIHJlamVjdCkge1xuXG4gICAgICAgICAgICAgICAgdmFyIGNvbmZpcm0gPSBVSWtpdC5tb2RhbC5kaWFsb2coKFwiIDxmb3JtPiA8ZGl2IGNsYXNzPVxcXCJ1ay1tb2RhbC1ib2R5XFxcIj5cIiArIChpc1N0cmluZyhtZXNzYWdlKSA/IG1lc3NhZ2UgOiBodG1sKG1lc3NhZ2UpKSArIFwiPC9kaXY+IDxkaXYgY2xhc3M9XFxcInVrLW1vZGFsLWZvb3RlciB1ay10ZXh0LXJpZ2h0XFxcIj4gPGJ1dHRvbiBjbGFzcz1cXFwidWstYnV0dG9uIHVrLWJ1dHRvbi1kZWZhdWx0IHVrLW1vZGFsLWNsb3NlXFxcIiB0eXBlPVxcXCJidXR0b25cXFwiPlwiICsgKG9wdGlvbnMubGFiZWxzLmNhbmNlbCkgKyBcIjwvYnV0dG9uPiA8YnV0dG9uIGNsYXNzPVxcXCJ1ay1idXR0b24gdWstYnV0dG9uLXByaW1hcnlcXFwiIGF1dG9mb2N1cz5cIiArIChvcHRpb25zLmxhYmVscy5vaykgKyBcIjwvYnV0dG9uPiA8L2Rpdj4gPC9mb3JtPiBcIiksIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICAgICAgdmFyIHJlc29sdmVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBvbihjb25maXJtLiRlbCwgJ3N1Ym1pdCcsICdmb3JtJywgZnVuY3Rpb24gKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgY29uZmlybS5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgb24oY29uZmlybS4kZWwsICdoaWRlJywgZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc29sdmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBVSWtpdC5tb2RhbC5wcm9tcHQgPSBmdW5jdGlvbiAobWVzc2FnZSwgdmFsdWUsIG9wdGlvbnMpIHtcblxuICAgICAgICAgICAgb3B0aW9ucyA9IGFzc2lnbih7YmdDbG9zZTogZmFsc2UsIGVzY0Nsb3NlOiB0cnVlLCBsYWJlbHM6IFVJa2l0Lm1vZGFsLmxhYmVsc30sIG9wdGlvbnMpO1xuXG4gICAgICAgICAgICByZXR1cm4gbmV3IFByb21pc2UkMShmdW5jdGlvbiAocmVzb2x2ZSkge1xuXG4gICAgICAgICAgICAgICAgdmFyIHByb21wdCA9IFVJa2l0Lm1vZGFsLmRpYWxvZygoXCIgPGZvcm0gY2xhc3M9XFxcInVrLWZvcm0tc3RhY2tlZFxcXCI+IDxkaXYgY2xhc3M9XFxcInVrLW1vZGFsLWJvZHlcXFwiPiA8bGFiZWw+XCIgKyAoaXNTdHJpbmcobWVzc2FnZSkgPyBtZXNzYWdlIDogaHRtbChtZXNzYWdlKSkgKyBcIjwvbGFiZWw+IDxpbnB1dCBjbGFzcz1cXFwidWstaW5wdXRcXFwiIGF1dG9mb2N1cz4gPC9kaXY+IDxkaXYgY2xhc3M9XFxcInVrLW1vZGFsLWZvb3RlciB1ay10ZXh0LXJpZ2h0XFxcIj4gPGJ1dHRvbiBjbGFzcz1cXFwidWstYnV0dG9uIHVrLWJ1dHRvbi1kZWZhdWx0IHVrLW1vZGFsLWNsb3NlXFxcIiB0eXBlPVxcXCJidXR0b25cXFwiPlwiICsgKG9wdGlvbnMubGFiZWxzLmNhbmNlbCkgKyBcIjwvYnV0dG9uPiA8YnV0dG9uIGNsYXNzPVxcXCJ1ay1idXR0b24gdWstYnV0dG9uLXByaW1hcnlcXFwiPlwiICsgKG9wdGlvbnMubGFiZWxzLm9rKSArIFwiPC9idXR0b24+IDwvZGl2PiA8L2Zvcm0+IFwiKSwgb3B0aW9ucyksXG4gICAgICAgICAgICAgICAgICAgIGlucHV0ID0gJCgnaW5wdXQnLCBwcm9tcHQuJGVsKTtcblxuICAgICAgICAgICAgICAgIGlucHV0LnZhbHVlID0gdmFsdWU7XG5cbiAgICAgICAgICAgICAgICB2YXIgcmVzb2x2ZWQgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgIG9uKHByb21wdC4kZWwsICdzdWJtaXQnLCAnZm9ybScsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShpbnB1dC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgcHJvbXB0LmhpZGUoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBvbihwcm9tcHQuJGVsLCAnaGlkZScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXNvbHZlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZShudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBVSWtpdC5tb2RhbC5sYWJlbHMgPSB7XG4gICAgICAgICAgICBvazogJ09rJyxcbiAgICAgICAgICAgIGNhbmNlbDogJ0NhbmNlbCdcbiAgICAgICAgfTtcblxuICAgIH1cblxuICAgIHZhciBOYXYgPSB7XG5cbiAgICAgICAgZXh0ZW5kczogQWNjb3JkaW9uLFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHRhcmdldHM6ICc+IC51ay1wYXJlbnQnLFxuICAgICAgICAgICAgdG9nZ2xlOiAnPiBhJyxcbiAgICAgICAgICAgIGNvbnRlbnQ6ICc+IHVsJ1xuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgdmFyIE5hdmJhciA9IHtcblxuICAgICAgICBtaXhpbnM6IFtDbGFzc10sXG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGRyb3Bkb3duOiBTdHJpbmcsXG4gICAgICAgICAgICBtb2RlOiAnbGlzdCcsXG4gICAgICAgICAgICBhbGlnbjogU3RyaW5nLFxuICAgICAgICAgICAgb2Zmc2V0OiBOdW1iZXIsXG4gICAgICAgICAgICBib3VuZGFyeTogQm9vbGVhbixcbiAgICAgICAgICAgIGJvdW5kYXJ5QWxpZ246IEJvb2xlYW4sXG4gICAgICAgICAgICBjbHNEcm9wOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWxheVNob3c6IE51bWJlcixcbiAgICAgICAgICAgIGRlbGF5SGlkZTogTnVtYmVyLFxuICAgICAgICAgICAgZHJvcGJhcjogQm9vbGVhbixcbiAgICAgICAgICAgIGRyb3BiYXJNb2RlOiBTdHJpbmcsXG4gICAgICAgICAgICBkcm9wYmFyQW5jaG9yOiBCb29sZWFuLFxuICAgICAgICAgICAgZHVyYXRpb246IE51bWJlclxuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGRyb3Bkb3duOiAnLnVrLW5hdmJhci1uYXYgPiBsaScsXG4gICAgICAgICAgICBhbGlnbjogIWlzUnRsID8gJ2xlZnQnIDogJ3JpZ2h0JyxcbiAgICAgICAgICAgIGNsc0Ryb3A6ICd1ay1uYXZiYXItZHJvcGRvd24nLFxuICAgICAgICAgICAgbW9kZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgb2Zmc2V0OiB1bmRlZmluZWQsXG4gICAgICAgICAgICBkZWxheVNob3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGRlbGF5SGlkZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgYm91bmRhcnlBbGlnbjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgZmxpcDogJ3gnLFxuICAgICAgICAgICAgYm91bmRhcnk6IHRydWUsXG4gICAgICAgICAgICBkcm9wYmFyOiBmYWxzZSxcbiAgICAgICAgICAgIGRyb3BiYXJNb2RlOiAnc2xpZGUnLFxuICAgICAgICAgICAgZHJvcGJhckFuY2hvcjogZmFsc2UsXG4gICAgICAgICAgICBkdXJhdGlvbjogMjAwLFxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIGJvdW5kYXJ5OiBmdW5jdGlvbihyZWYsICRlbCkge1xuICAgICAgICAgICAgICAgIHZhciBib3VuZGFyeSA9IHJlZi5ib3VuZGFyeTtcbiAgICAgICAgICAgICAgICB2YXIgYm91bmRhcnlBbGlnbiA9IHJlZi5ib3VuZGFyeUFsaWduO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChib3VuZGFyeSA9PT0gdHJ1ZSB8fCBib3VuZGFyeUFsaWduKSA/ICRlbCA6IGJvdW5kYXJ5O1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZHJvcGJhckFuY2hvcjogZnVuY3Rpb24ocmVmLCAkZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgZHJvcGJhckFuY2hvciA9IHJlZi5kcm9wYmFyQW5jaG9yO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5KGRyb3BiYXJBbmNob3IsICRlbCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBwb3M6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciBhbGlnbiA9IHJlZi5hbGlnbjtcblxuICAgICAgICAgICAgICAgIHJldHVybiAoXCJib3R0b20tXCIgKyBhbGlnbik7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBkcm9wZG93bnM6IGZ1bmN0aW9uKHJlZiwgJGVsKSB7XG4gICAgICAgICAgICAgICAgdmFyIGRyb3Bkb3duID0gcmVmLmRyb3Bkb3duO1xuICAgICAgICAgICAgICAgIHZhciBjbHNEcm9wID0gcmVmLmNsc0Ryb3A7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gJCQoKGRyb3Bkb3duICsgXCIgLlwiICsgY2xzRHJvcCksICRlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICBiZWZvcmVDb25uZWN0OiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgdmFyIHJlZiA9IHRoaXMuJHByb3BzO1xuICAgICAgICAgICAgdmFyIGRyb3BiYXIgPSByZWYuZHJvcGJhcjtcblxuICAgICAgICAgICAgdGhpcy5kcm9wYmFyID0gZHJvcGJhciAmJiAocXVlcnkoZHJvcGJhciwgdGhpcy4kZWwpIHx8ICQoJysgLnVrLW5hdmJhci1kcm9wYmFyJywgdGhpcy4kZWwpIHx8ICQoJzxkaXY+PC9kaXY+JykpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5kcm9wYmFyKSB7XG5cbiAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLmRyb3BiYXIsICd1ay1uYXZiYXItZHJvcGJhcicpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZHJvcGJhck1vZGUgPT09ICdzbGlkZScpIHtcbiAgICAgICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy5kcm9wYmFyLCAndWstbmF2YmFyLWRyb3BiYXItc2xpZGUnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICBkaXNjb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdGhpcy5kcm9wYmFyICYmIHJlbW92ZSh0aGlzLmRyb3BiYXIpO1xuICAgICAgICB9LFxuXG4gICAgICAgIHVwZGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICB0aGlzLiRjcmVhdGUoXG4gICAgICAgICAgICAgICAgJ2Ryb3AnLFxuICAgICAgICAgICAgICAgIHRoaXMuZHJvcGRvd25zLmZpbHRlcihmdW5jdGlvbiAoZWwpIHsgcmV0dXJuICF0aGlzJDEuZ2V0RHJvcGRvd24oZWwpOyB9KSxcbiAgICAgICAgICAgICAgICBhc3NpZ24oe30sIHRoaXMuJHByb3BzLCB7Ym91bmRhcnk6IHRoaXMuYm91bmRhcnksIHBvczogdGhpcy5wb3MsIG9mZnNldDogdGhpcy5kcm9wYmFyIHx8IHRoaXMub2Zmc2V0fSlcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgfSxcblxuICAgICAgICBldmVudHM6IFtcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdtb3VzZW92ZXInLFxuXG4gICAgICAgICAgICAgICAgZGVsZWdhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kcm9wZG93bjtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gcmVmLmN1cnJlbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGFjdGl2ZSA9IHRoaXMuZ2V0QWN0aXZlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChhY3RpdmUgJiYgYWN0aXZlLnRvZ2dsZSAmJiAhd2l0aGluKGFjdGl2ZS50b2dnbGUuJGVsLCBjdXJyZW50KSAmJiAhYWN0aXZlLnRyYWNrZXIubW92ZXNUbyhhY3RpdmUuJGVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlLmhpZGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ21vdXNlbGVhdmUnLFxuXG4gICAgICAgICAgICAgICAgZWw6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kcm9wYmFyO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFjdGl2ZSA9IHRoaXMuZ2V0QWN0aXZlKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZSAmJiAhbWF0Y2hlcyh0aGlzLmRyb3BiYXIsICc6aG92ZXInKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWN0aXZlLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnYmVmb3Jlc2hvdycsXG5cbiAgICAgICAgICAgICAgICBjYXB0dXJlOiB0cnVlLFxuXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZHJvcGJhcjtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmRyb3BiYXIucGFyZW50Tm9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWZ0ZXIodGhpcy5kcm9wYmFyQW5jaG9yIHx8IHRoaXMuJGVsLCB0aGlzLmRyb3BiYXIpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ3Nob3cnLFxuXG4gICAgICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZSxcblxuICAgICAgICAgICAgICAgIGZpbHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRyb3BiYXI7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKF8sIGRyb3ApIHtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgJGVsID0gZHJvcC4kZWw7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkaXIgPSBkcm9wLmRpcjtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNsc0Ryb3AgJiYgYWRkQ2xhc3MoJGVsLCAoKHRoaXMuY2xzRHJvcCkgKyBcIi1kcm9wYmFyXCIpKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZGlyID09PSAnYm90dG9tJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uVG8oJGVsLm9mZnNldEhlaWdodCArIHRvRmxvYXQoY3NzKCRlbCwgJ21hcmdpblRvcCcpKSArIHRvRmxvYXQoY3NzKCRlbCwgJ21hcmdpbkJvdHRvbScpKSwgJGVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnYmVmb3JlaGlkZScsXG5cbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kcm9wYmFyO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlLCByZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyICRlbCA9IHJlZi4kZWw7XG5cblxuICAgICAgICAgICAgICAgICAgICB2YXIgYWN0aXZlID0gdGhpcy5nZXRBY3RpdmUoKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobWF0Y2hlcyh0aGlzLmRyb3BiYXIsICc6aG92ZXInKSAmJiBhY3RpdmUgJiYgYWN0aXZlLiRlbCA9PT0gJGVsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2hpZGUnLFxuXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZHJvcGJhcjtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oXywgcmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciAkZWwgPSByZWYuJGVsO1xuXG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGFjdGl2ZSA9IHRoaXMuZ2V0QWN0aXZlKCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFhY3RpdmUgfHwgYWN0aXZlICYmIGFjdGl2ZS4kZWwgPT09ICRlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2l0aW9uVG8oMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIGdldEFjdGl2ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIHJlZiA9IHRoaXMuZHJvcGRvd25zLm1hcCh0aGlzLmdldERyb3Bkb3duKS5maWx0ZXIoZnVuY3Rpb24gKGRyb3ApIHsgcmV0dXJuIGRyb3AuaXNBY3RpdmUoKTsgfSk7XG4gICAgICAgICAgICAgICAgdmFyIGFjdGl2ZSA9IHJlZlswXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gYWN0aXZlICYmIGluY2x1ZGVzKGFjdGl2ZS5tb2RlLCAnaG92ZXInKSAmJiB3aXRoaW4oYWN0aXZlLnRvZ2dsZS4kZWwsIHRoaXMuJGVsKSAmJiBhY3RpdmU7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB0cmFuc2l0aW9uVG86IGZ1bmN0aW9uKG5ld0hlaWdodCwgZWwpIHtcblxuICAgICAgICAgICAgICAgIHZhciByZWYgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHZhciBkcm9wYmFyID0gcmVmLmRyb3BiYXI7XG4gICAgICAgICAgICAgICAgdmFyIG9sZEhlaWdodCA9IGlzVmlzaWJsZShkcm9wYmFyKSA/IGhlaWdodChkcm9wYmFyKSA6IDA7XG5cbiAgICAgICAgICAgICAgICBlbCA9IG9sZEhlaWdodCA8IG5ld0hlaWdodCAmJiBlbDtcblxuICAgICAgICAgICAgICAgIGNzcyhlbCwgJ2NsaXAnLCAoXCJyZWN0KDAsXCIgKyAoZWwub2Zmc2V0V2lkdGgpICsgXCJweCxcIiArIG9sZEhlaWdodCArIFwicHgsMClcIikpO1xuXG4gICAgICAgICAgICAgICAgaGVpZ2h0KGRyb3BiYXIsIG9sZEhlaWdodCk7XG5cbiAgICAgICAgICAgICAgICBUcmFuc2l0aW9uLmNhbmNlbChbZWwsIGRyb3BiYXJdKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoW1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2l0aW9uLnN0YXJ0KGRyb3BiYXIsIHtoZWlnaHQ6IG5ld0hlaWdodH0sIHRoaXMuZHVyYXRpb24pLFxuICAgICAgICAgICAgICAgICAgICBUcmFuc2l0aW9uLnN0YXJ0KGVsLCB7Y2xpcDogKFwicmVjdCgwLFwiICsgKGVsLm9mZnNldFdpZHRoKSArIFwicHgsXCIgKyBuZXdIZWlnaHQgKyBcInB4LDApXCIpfSwgdGhpcy5kdXJhdGlvbilcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgICAgICAgICAuY2F0Y2gobm9vcClcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oZnVuY3Rpb24gKCkgeyByZXR1cm4gY3NzKGVsLCB7Y2xpcDogJyd9KTsgfSk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBnZXREcm9wZG93bjogZnVuY3Rpb24oZWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy4kZ2V0Q29tcG9uZW50KGVsLCAnZHJvcCcpIHx8IHRoaXMuJGdldENvbXBvbmVudChlbCwgJ2Ryb3Bkb3duJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIHZhciBzY3JvbGw7XG5cbiAgICB2YXIgT2ZmY2FudmFzID0ge1xuXG4gICAgICAgIG1peGluczogW01vZGFsXSxcblxuICAgICAgICBhcmdzOiAnbW9kZScsXG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGNvbnRlbnQ6IFN0cmluZyxcbiAgICAgICAgICAgIG1vZGU6IFN0cmluZyxcbiAgICAgICAgICAgIGZsaXA6IEJvb2xlYW4sXG4gICAgICAgICAgICBvdmVybGF5OiBCb29sZWFuXG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgY29udGVudDogJy51ay1vZmZjYW52YXMtY29udGVudCcsXG4gICAgICAgICAgICBtb2RlOiAnc2xpZGUnLFxuICAgICAgICAgICAgZmxpcDogZmFsc2UsXG4gICAgICAgICAgICBvdmVybGF5OiBmYWxzZSxcbiAgICAgICAgICAgIGNsc1BhZ2U6ICd1ay1vZmZjYW52YXMtcGFnZScsXG4gICAgICAgICAgICBjbHNDb250YWluZXI6ICd1ay1vZmZjYW52YXMtY29udGFpbmVyJyxcbiAgICAgICAgICAgIHNlbFBhbmVsOiAnLnVrLW9mZmNhbnZhcy1iYXInLFxuICAgICAgICAgICAgY2xzRmxpcDogJ3VrLW9mZmNhbnZhcy1mbGlwJyxcbiAgICAgICAgICAgIGNsc0NvbnRlbnQ6ICd1ay1vZmZjYW52YXMtY29udGVudCcsXG4gICAgICAgICAgICBjbHNDb250ZW50QW5pbWF0aW9uOiAndWstb2ZmY2FudmFzLWNvbnRlbnQtYW5pbWF0aW9uJyxcbiAgICAgICAgICAgIGNsc1NpZGViYXJBbmltYXRpb246ICd1ay1vZmZjYW52YXMtYmFyLWFuaW1hdGlvbicsXG4gICAgICAgICAgICBjbHNNb2RlOiAndWstb2ZmY2FudmFzJyxcbiAgICAgICAgICAgIGNsc092ZXJsYXk6ICd1ay1vZmZjYW52YXMtb3ZlcmxheScsXG4gICAgICAgICAgICBzZWxDbG9zZTogJy51ay1vZmZjYW52YXMtY2xvc2UnXG4gICAgICAgIH0sXG5cbiAgICAgICAgY29tcHV0ZWQ6IHtcblxuICAgICAgICAgICAgY29udGVudDogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNvbnRlbnQgPSByZWYuY29udGVudDtcblxuICAgICAgICAgICAgICAgIHJldHVybiAkKGNvbnRlbnQpIHx8IGRvY3VtZW50LmJvZHk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBjbHNGbGlwOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgZmxpcCA9IHJlZi5mbGlwO1xuICAgICAgICAgICAgICAgIHZhciBjbHNGbGlwID0gcmVmLmNsc0ZsaXA7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gZmxpcCA/IGNsc0ZsaXAgOiAnJztcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGNsc092ZXJsYXk6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciBvdmVybGF5ID0gcmVmLm92ZXJsYXk7XG4gICAgICAgICAgICAgICAgdmFyIGNsc092ZXJsYXkgPSByZWYuY2xzT3ZlcmxheTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBvdmVybGF5ID8gY2xzT3ZlcmxheSA6ICcnO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgY2xzTW9kZTogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgdmFyIG1vZGUgPSByZWYubW9kZTtcbiAgICAgICAgICAgICAgICB2YXIgY2xzTW9kZSA9IHJlZi5jbHNNb2RlO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChjbHNNb2RlICsgXCItXCIgKyBtb2RlKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGNsc1NpZGViYXJBbmltYXRpb246IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciBtb2RlID0gcmVmLm1vZGU7XG4gICAgICAgICAgICAgICAgdmFyIGNsc1NpZGViYXJBbmltYXRpb24gPSByZWYuY2xzU2lkZWJhckFuaW1hdGlvbjtcblxuICAgICAgICAgICAgICAgIHJldHVybiBtb2RlID09PSAnbm9uZScgfHwgbW9kZSA9PT0gJ3JldmVhbCcgPyAnJyA6IGNsc1NpZGViYXJBbmltYXRpb247XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBjbHNDb250ZW50QW5pbWF0aW9uOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgbW9kZSA9IHJlZi5tb2RlO1xuICAgICAgICAgICAgICAgIHZhciBjbHNDb250ZW50QW5pbWF0aW9uID0gcmVmLmNsc0NvbnRlbnRBbmltYXRpb247XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbW9kZSAhPT0gJ3B1c2gnICYmIG1vZGUgIT09ICdyZXZlYWwnID8gJycgOiBjbHNDb250ZW50QW5pbWF0aW9uO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdHJhbnNpdGlvbkVsZW1lbnQ6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciBtb2RlID0gcmVmLm1vZGU7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbW9kZSA9PT0gJ3JldmVhbCcgPyB0aGlzLnBhbmVsLnBhcmVudE5vZGUgOiB0aGlzLnBhbmVsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgdXBkYXRlOiB7XG5cbiAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmdldEFjdGl2ZSgpID09PSB0aGlzKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheSB8fCB0aGlzLmNsc0NvbnRlbnRBbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoKHRoaXMuY29udGVudCwgd2lkdGgod2luZG93KSAtIHRoaXMuc2Nyb2xsYmFyV2lkdGgpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3ZlcmxheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0KHRoaXMuY29udGVudCwgaGVpZ2h0KHdpbmRvdykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNjcm9sbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY29udGVudC5zY3JvbGxUb3AgPSBzY3JvbGwueTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBldmVudHM6IFsncmVzaXplJ11cblxuICAgICAgICB9LFxuXG4gICAgICAgIGV2ZW50czogW1xuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAnY2xpY2snLFxuXG4gICAgICAgICAgICAgICAgZGVsZWdhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJ2FbaHJlZl49XCIjXCJdJztcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gcmVmLmN1cnJlbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnQuaGFzaCAmJiAkKGN1cnJlbnQuaGFzaCwgdGhpcy5jb250ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAnYmVmb3Jlc2Nyb2xsJyxcblxuICAgICAgICAgICAgICAgIGZpbHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLm92ZXJsYXk7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKGUsIHNjcm9sbCwgdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGwgJiYgdGFyZ2V0ICYmIHRoaXMuaXNUb2dnbGVkKCkgJiYgJCh0YXJnZXQsIHRoaXMuY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uY2UodGhpcy4kZWwsICdoaWRkZW4nLCBmdW5jdGlvbiAoKSB7IHJldHVybiBzY3JvbGwuc2Nyb2xsVG8odGFyZ2V0KTsgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnc2hvdycsXG5cbiAgICAgICAgICAgICAgICBzZWxmOiB0cnVlLFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgc2Nyb2xsID0gc2Nyb2xsIHx8IHt4OiB3aW5kb3cucGFnZVhPZmZzZXQsIHk6IHdpbmRvdy5wYWdlWU9mZnNldH07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ3JldmVhbCcgJiYgIWhhc0NsYXNzKHRoaXMucGFuZWwsIHRoaXMuY2xzTW9kZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBBbGwodGhpcy5wYW5lbCwgJzxkaXY+Jyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLnBhbmVsLnBhcmVudE5vZGUsIHRoaXMuY2xzTW9kZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBjc3MoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnb3ZlcmZsb3dZJywgKCF0aGlzLmNsc0NvbnRlbnRBbmltYXRpb24gfHwgdGhpcy5mbGlwKSAmJiB0aGlzLnNjcm9sbGJhcldpZHRoICYmIHRoaXMub3ZlcmxheSA/ICdzY3JvbGwnIDogJycpO1xuICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyhkb2N1bWVudC5ib2R5LCB0aGlzLmNsc0NvbnRhaW5lciwgdGhpcy5jbHNGbGlwLCB0aGlzLmNsc092ZXJsYXkpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQoZG9jdW1lbnQuYm9keSk7IC8vIGZvcmNlIHJlZmxvd1xuICAgICAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLmNvbnRlbnQsIHRoaXMuY2xzQ29udGVudEFuaW1hdGlvbik7XG4gICAgICAgICAgICAgICAgICAgIGFkZENsYXNzKHRoaXMucGFuZWwsIHRoaXMuY2xzU2lkZWJhckFuaW1hdGlvbiwgdGhpcy5tb2RlICE9PSAncmV2ZWFsJyA/IHRoaXMuY2xzTW9kZSA6ICcnKTtcbiAgICAgICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kZWwsIHRoaXMuY2xzT3ZlcmxheSk7XG4gICAgICAgICAgICAgICAgICAgIGNzcyh0aGlzLiRlbCwgJ2Rpc3BsYXknLCAnYmxvY2snKTtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0KHRoaXMuJGVsKTsgLy8gZm9yY2UgcmVmbG93XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2hpZGUnLFxuXG4gICAgICAgICAgICAgICAgc2VsZjogdHJ1ZSxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLmNvbnRlbnQsIHRoaXMuY2xzQ29udGVudEFuaW1hdGlvbik7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGFjdGl2ZSA9IHRoaXMuZ2V0QWN0aXZlKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm1vZGUgPT09ICdub25lJyB8fCBhY3RpdmUgJiYgYWN0aXZlICE9PSB0aGlzICYmIGFjdGl2ZSAhPT0gdGhpcy5wcmV2KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKHRoaXMucGFuZWwsICd0cmFuc2l0aW9uZW5kJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2hpZGRlbicsXG5cbiAgICAgICAgICAgICAgICBzZWxmOiB0cnVlLFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubW9kZSA9PT0gJ3JldmVhbCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHVud3JhcCh0aGlzLnBhbmVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghdGhpcy5vdmVybGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzY3JvbGwgPSB7eDogd2luZG93LnBhZ2VYT2Zmc2V0LCB5OiB3aW5kb3cucGFnZVlPZmZzZXR9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzY3JvbGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZWYgPSB0aGlzLmNvbnRlbnQ7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgeCA9IHJlZi5zY3JvbGxMZWZ0O1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHkgPSByZWYuc2Nyb2xsVG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsID0ge3g6IHgsIHk6IHl9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy5wYW5lbCwgdGhpcy5jbHNTaWRlYmFyQW5pbWF0aW9uLCB0aGlzLmNsc01vZGUpO1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLiRlbCwgdGhpcy5jbHNPdmVybGF5KTtcbiAgICAgICAgICAgICAgICAgICAgY3NzKHRoaXMuJGVsLCAnZGlzcGxheScsICcnKTtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3MoZG9jdW1lbnQuYm9keSwgdGhpcy5jbHNDb250YWluZXIsIHRoaXMuY2xzRmxpcCwgdGhpcy5jbHNPdmVybGF5KTtcbiAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxUb3AgPSBzY3JvbGwueTtcblxuICAgICAgICAgICAgICAgICAgICBjc3MoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LCAnb3ZlcmZsb3dZJywgJycpO1xuXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoKHRoaXMuY29udGVudCwgJycpO1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQodGhpcy5jb250ZW50LCAnJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgd2luZG93LnNjcm9sbChzY3JvbGwueCwgc2Nyb2xsLnkpO1xuXG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbCA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ3N3aXBlTGVmdCBzd2lwZVJpZ2h0JyxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKGUpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pc1RvZ2dsZWQoKSAmJiBpc1RvdWNoKGUpICYmIChlLnR5cGUgPT09ICdzd2lwZUxlZnQnICYmICF0aGlzLmZsaXAgfHwgZS50eXBlID09PSAnc3dpcGVSaWdodCcgJiYgdGhpcy5mbGlwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICBdXG5cbiAgICB9O1xuXG4gICAgdmFyIE92ZXJmbG93QXV0byA9IHtcblxuICAgICAgICBtaXhpbnM6IFtDbGFzc10sXG5cbiAgICAgICAgY29tcHV0ZWQ6IHtcblxuICAgICAgICAgICAgbW9kYWw6IGZ1bmN0aW9uKF8sICRlbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjbG9zZXN0KCRlbCwgJy51ay1tb2RhbCcpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcGFuZWw6IGZ1bmN0aW9uKF8sICRlbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBjbG9zZXN0KCRlbCwgJy51ay1tb2RhbC1kaWFsb2cnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbm5lY3RlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBjc3ModGhpcy4kZWwsICdtaW5IZWlnaHQnLCAxNTApO1xuICAgICAgICB9LFxuXG4gICAgICAgIHVwZGF0ZToge1xuXG4gICAgICAgICAgICB3cml0ZTogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMucGFuZWwgfHwgIXRoaXMubW9kYWwpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBjdXJyZW50ID0gY3NzKHRoaXMuJGVsLCAnbWF4SGVpZ2h0Jyk7XG5cbiAgICAgICAgICAgICAgICBjc3MoY3NzKHRoaXMuJGVsLCAnbWF4SGVpZ2h0JywgMTUwKSwgJ21heEhlaWdodCcsIE1hdGgubWF4KDE1MCwgMTUwICsgaGVpZ2h0KHRoaXMubW9kYWwpIC0gdGhpcy5wYW5lbC5vZmZzZXRIZWlnaHQpKTtcbiAgICAgICAgICAgICAgICBpZiAoY3VycmVudCAhPT0gY3NzKHRoaXMuJGVsLCAnbWF4SGVpZ2h0JykpIHtcbiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcih0aGlzLiRlbCwgJ3Jlc2l6ZScpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGV2ZW50czogWydsb2FkJywgJ3Jlc2l6ZSddXG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIHZhciBSZXNwb25zaXZlID0ge1xuXG4gICAgICAgIHByb3BzOiBbJ3dpZHRoJywgJ2hlaWdodCddLFxuXG4gICAgICAgIGNvbm5lY3RlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICBhZGRDbGFzcyh0aGlzLiRlbCwgJ3VrLXJlc3BvbnNpdmUtd2lkdGgnKTtcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGU6IHtcblxuICAgICAgICAgICAgcmVhZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGlzVmlzaWJsZSh0aGlzLiRlbCkgJiYgdGhpcy53aWR0aCAmJiB0aGlzLmhlaWdodFxuICAgICAgICAgICAgICAgICAgICA/IHt3aWR0aDogd2lkdGgodGhpcy4kZWwucGFyZW50Tm9kZSksIGhlaWdodDogdGhpcy5oZWlnaHR9XG4gICAgICAgICAgICAgICAgICAgIDogZmFsc2U7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB3cml0ZTogZnVuY3Rpb24oZGltKSB7XG4gICAgICAgICAgICAgICAgaGVpZ2h0KHRoaXMuJGVsLCBEaW1lbnNpb25zLmNvbnRhaW4oe2hlaWdodDogdGhpcy5oZWlnaHQsIHdpZHRoOiB0aGlzLndpZHRofSwgZGltKS5oZWlnaHQpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZXZlbnRzOiBbJ2xvYWQnLCAncmVzaXplJ11cblxuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgdmFyIFNjcm9sbCA9IHtcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgZHVyYXRpb246IE51bWJlcixcbiAgICAgICAgICAgIG9mZnNldDogTnVtYmVyXG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgZHVyYXRpb246IDEwMDAsXG4gICAgICAgICAgICBvZmZzZXQ6IDBcbiAgICAgICAgfSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIHNjcm9sbFRvOiBmdW5jdGlvbihlbCkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgICAgICBlbCA9IGVsICYmICQoZWwpIHx8IGRvY3VtZW50LmJvZHk7XG5cbiAgICAgICAgICAgICAgICB2YXIgZG9jSGVpZ2h0ID0gaGVpZ2h0KGRvY3VtZW50KTtcbiAgICAgICAgICAgICAgICB2YXIgd2luSGVpZ2h0ID0gaGVpZ2h0KHdpbmRvdyk7XG5cbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gb2Zmc2V0KGVsKS50b3AgLSB0aGlzLm9mZnNldDtcbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0ICsgd2luSGVpZ2h0ID4gZG9jSGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRhcmdldCA9IGRvY0hlaWdodCAtIHdpbkhlaWdodDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRyaWdnZXIodGhpcy4kZWwsICdiZWZvcmVzY3JvbGwnLCBbdGhpcywgZWxdKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIHN0YXJ0ID0gRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgICB2YXIgc3RhcnRZID0gd2luZG93LnBhZ2VZT2Zmc2V0O1xuICAgICAgICAgICAgICAgIHZhciBzdGVwID0gZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciBjdXJyZW50WSA9IHN0YXJ0WSArICh0YXJnZXQgLSBzdGFydFkpICogZWFzZShjbGFtcCgoRGF0ZS5ub3coKSAtIHN0YXJ0KSAvIHRoaXMkMS5kdXJhdGlvbikpO1xuXG4gICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGwod2luZG93LnBhZ2VYT2Zmc2V0LCBjdXJyZW50WSk7XG5cbiAgICAgICAgICAgICAgICAgICAgLy8gc2Nyb2xsIG1vcmUgaWYgd2UgaGF2ZSBub3QgcmVhY2hlZCBvdXIgZGVzdGluYXRpb25cbiAgICAgICAgICAgICAgICAgICAgaWYgKGN1cnJlbnRZICE9PSB0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShzdGVwKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIodGhpcyQxLiRlbCwgJ3Njcm9sbGVkJywgW3RoaXMkMSwgZWxdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHN0ZXAoKTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiB7XG5cbiAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbihlKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoZS5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxUbyhlc2NhcGUodGhpcy4kZWwuaGFzaCkuc3Vic3RyKDEpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gZWFzZShrKSB7XG4gICAgICAgIHJldHVybiAwLjUgKiAoMSAtIE1hdGguY29zKE1hdGguUEkgKiBrKSk7XG4gICAgfVxuXG4gICAgdmFyIFNjcm9sbHNweSA9IHtcblxuICAgICAgICBhcmdzOiAnY2xzJyxcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgY2xzOiAnbGlzdCcsXG4gICAgICAgICAgICB0YXJnZXQ6IFN0cmluZyxcbiAgICAgICAgICAgIGhpZGRlbjogQm9vbGVhbixcbiAgICAgICAgICAgIG9mZnNldFRvcDogTnVtYmVyLFxuICAgICAgICAgICAgb2Zmc2V0TGVmdDogTnVtYmVyLFxuICAgICAgICAgICAgcmVwZWF0OiBCb29sZWFuLFxuICAgICAgICAgICAgZGVsYXk6IE51bWJlclxuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICh7XG4gICAgICAgICAgICBjbHM6IFtdLFxuICAgICAgICAgICAgdGFyZ2V0OiBmYWxzZSxcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgICAgIG9mZnNldFRvcDogMCxcbiAgICAgICAgICAgIG9mZnNldExlZnQ6IDAsXG4gICAgICAgICAgICByZXBlYXQ6IGZhbHNlLFxuICAgICAgICAgICAgZGVsYXk6IDAsXG4gICAgICAgICAgICBpblZpZXdDbGFzczogJ3VrLXNjcm9sbHNweS1pbnZpZXcnXG4gICAgICAgIH0pOyB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIGVsZW1lbnRzOiBmdW5jdGlvbihyZWYsICRlbCkge1xuICAgICAgICAgICAgICAgIHZhciB0YXJnZXQgPSByZWYudGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRhcmdldCA/ICQkKHRhcmdldCwgJGVsKSA6IFskZWxdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgdXBkYXRlOiBbXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjc3MoZmlsdGVyKHRoaXMuZWxlbWVudHMsIChcIjpub3QoLlwiICsgKHRoaXMuaW5WaWV3Q2xhc3MpICsgXCIpXCIpKSwgJ3Zpc2liaWxpdHknLCAnaGlkZGVuJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIHJlYWQ6IGZ1bmN0aW9uKGVscykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICAgICAgICAgIGlmICghZWxzLmRlbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVsZW1lbnRzLmZvckVhY2goZnVuY3Rpb24gKGVsLCBpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlbERhdGEgPSBlbHNbaV07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghZWxEYXRhIHx8IGVsRGF0YS5lbCAhPT0gZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgY2xzID0gZGF0YShlbCwgJ3VrLXNjcm9sbHNweS1jbGFzcycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsRGF0YSA9IHtlbDogZWwsIHRvZ2dsZXM6IGNscyAmJiBjbHMuc3BsaXQoJywnKSB8fCB0aGlzJDEuY2xzfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgZWxEYXRhLnNob3cgPSBpc0luVmlldyhlbCwgdGhpcyQxLm9mZnNldFRvcCwgdGhpcyQxLm9mZnNldExlZnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZWxzW2ldID0gZWxEYXRhO1xuXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICB3cml0ZTogZnVuY3Rpb24oZWxzKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgICAgICAgICAgLy8gTGV0IGNoaWxkIGNvbXBvbmVudHMgYmUgYXBwbGllZCBhdCBsZWFzdCBvbmNlIGZpcnN0XG4gICAgICAgICAgICAgICAgICAgIGlmICghZWxzLmRlbGF5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZWxzLmRlbGF5ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHZhciBpbmRleCQkMSA9IHRoaXMuZWxlbWVudHMubGVuZ3RoID09PSAxID8gMSA6IDA7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lbGVtZW50cy5mb3JFYWNoKGZ1bmN0aW9uIChlbCwgaSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgZWxEYXRhID0gZWxzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNscyA9IGVsRGF0YS50b2dnbGVzW2ldIHx8IGVsRGF0YS50b2dnbGVzWzBdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZWxEYXRhLnNob3cgJiYgIWVsRGF0YS5pbnZpZXcgJiYgIWVsRGF0YS50aW1lcikge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHNob3cgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcyhlbCwgJ3Zpc2liaWxpdHknLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFkZENsYXNzKGVsLCB0aGlzJDEuaW5WaWV3Q2xhc3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyhlbCwgY2xzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKGVsLCAnaW52aWV3Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLiR1cGRhdGUoZWwpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsRGF0YS5pbnZpZXcgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGUgZWxEYXRhLnRpbWVyO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcyQxLmRlbGF5ICYmIGluZGV4JCQxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsRGF0YS50aW1lciA9IHNldFRpbWVvdXQoc2hvdywgdGhpcyQxLmRlbGF5ICogaW5kZXgkJDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3coKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbmRleCQkMSsrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFlbERhdGEuc2hvdyAmJiBlbERhdGEuaW52aWV3ICYmIHRoaXMkMS5yZXBlYXQpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlbERhdGEudGltZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KGVsRGF0YS50aW1lcik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBlbERhdGEudGltZXI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzKGVsLCAndmlzaWJpbGl0eScsIHRoaXMkMS5oaWRkZW4gPyAnaGlkZGVuJyA6ICcnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyhlbCwgdGhpcyQxLmluVmlld0NsYXNzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyhlbCwgY2xzKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyaWdnZXIoZWwsICdvdXR2aWV3Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzJDEuJHVwZGF0ZShlbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbERhdGEuaW52aWV3ID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGV2ZW50czogWydzY3JvbGwnLCAnbG9hZCcsICdyZXNpemUnXVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXVxuXG4gICAgfTtcblxuICAgIHZhciBTY3JvbGxzcHlOYXYgPSB7XG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGNsczogU3RyaW5nLFxuICAgICAgICAgICAgY2xvc2VzdDogU3RyaW5nLFxuICAgICAgICAgICAgc2Nyb2xsOiBCb29sZWFuLFxuICAgICAgICAgICAgb3ZlcmZsb3c6IEJvb2xlYW4sXG4gICAgICAgICAgICBvZmZzZXQ6IE51bWJlclxuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGNsczogJ3VrLWFjdGl2ZScsXG4gICAgICAgICAgICBjbG9zZXN0OiBmYWxzZSxcbiAgICAgICAgICAgIHNjcm9sbDogZmFsc2UsXG4gICAgICAgICAgICBvdmVyZmxvdzogdHJ1ZSxcbiAgICAgICAgICAgIG9mZnNldDogMFxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIGxpbmtzOiBmdW5jdGlvbihfLCAkZWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJCQoJ2FbaHJlZl49XCIjXCJdJywgJGVsKS5maWx0ZXIoZnVuY3Rpb24gKGVsKSB7IHJldHVybiBlbC5oYXNoOyB9KTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGVsZW1lbnRzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jbG9zZXN0ID8gY2xvc2VzdCh0aGlzLmxpbmtzLCB0aGlzLmNsb3Nlc3QpIDogdGhpcy5saW5rcztcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHRhcmdldHM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAkJCh0aGlzLmxpbmtzLm1hcChmdW5jdGlvbiAoZWwpIHsgcmV0dXJuIGVsLmhhc2g7IH0pLmpvaW4oJywnKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGU6IFtcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgcmVhZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLnNjcm9sbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kY3JlYXRlKCdzY3JvbGwnLCB0aGlzLmxpbmtzLCB7b2Zmc2V0OiB0aGlzLm9mZnNldCB8fCAwfSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIHJlYWQ6IGZ1bmN0aW9uKGRhdGEkJDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgICAgICAgICB2YXIgc2Nyb2xsID0gd2luZG93LnBhZ2VZT2Zmc2V0ICsgdGhpcy5vZmZzZXQgKyAxO1xuICAgICAgICAgICAgICAgICAgICB2YXIgbWF4ID0gaGVpZ2h0KGRvY3VtZW50KSAtIGhlaWdodCh3aW5kb3cpICsgdGhpcy5vZmZzZXQ7XG5cbiAgICAgICAgICAgICAgICAgICAgZGF0YSQkMS5hY3RpdmUgPSBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRhcmdldHMuZXZlcnkoZnVuY3Rpb24gKGVsLCBpKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZWYgPSBvZmZzZXQoZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHRvcCA9IHJlZi50b3A7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgbGFzdCA9IGkgKyAxID09PSB0aGlzJDEudGFyZ2V0cy5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghdGhpcyQxLm92ZXJmbG93ICYmIChpID09PSAwICYmIHRvcCA+IHNjcm9sbCB8fCBsYXN0ICYmIHRvcCArIGVsLm9mZnNldFRvcCA8IHNjcm9sbCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghbGFzdCAmJiBvZmZzZXQodGhpcyQxLnRhcmdldHNbaSArIDFdKS50b3AgPD0gc2Nyb2xsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGwgPj0gbWF4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIgaiA9IHRoaXMkMS50YXJnZXRzLmxlbmd0aCAtIDE7IGogPiBpOyBqLS0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGlzSW5WaWV3KHRoaXMkMS50YXJnZXRzW2pdKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWwgPSB0aGlzJDEudGFyZ2V0c1tqXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gIShkYXRhJCQxLmFjdGl2ZSA9ICQoZmlsdGVyKHRoaXMkMS5saW5rcywgKFwiW2hyZWY9XFxcIiNcIiArIChlbC5pZCkgKyBcIlxcXCJdXCIpKSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFjdGl2ZSA9IHJlZi5hY3RpdmU7XG5cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxpbmtzLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7IHJldHVybiBlbC5ibHVyKCk7IH0pO1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnRzLCB0aGlzLmNscyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcih0aGlzLiRlbCwgJ2FjdGl2ZScsIFthY3RpdmUsIGFkZENsYXNzKHRoaXMuY2xvc2VzdCA/IGNsb3Nlc3QoYWN0aXZlLCB0aGlzLmNsb3Nlc3QpIDogYWN0aXZlLCB0aGlzLmNscyldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGV2ZW50czogWydzY3JvbGwnLCAnbG9hZCcsICdyZXNpemUnXVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXVxuXG4gICAgfTtcblxuICAgIHZhciBTdGlja3kgPSB7XG5cbiAgICAgICAgbWl4aW5zOiBbQ2xhc3NdLFxuXG4gICAgICAgIGF0dHJzOiB0cnVlLFxuXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICB0b3A6IG51bGwsXG4gICAgICAgICAgICBib3R0b206IEJvb2xlYW4sXG4gICAgICAgICAgICBvZmZzZXQ6IE51bWJlcixcbiAgICAgICAgICAgIGFuaW1hdGlvbjogU3RyaW5nLFxuICAgICAgICAgICAgY2xzQWN0aXZlOiBTdHJpbmcsXG4gICAgICAgICAgICBjbHNJbmFjdGl2ZTogU3RyaW5nLFxuICAgICAgICAgICAgY2xzRml4ZWQ6IFN0cmluZyxcbiAgICAgICAgICAgIGNsc0JlbG93OiBTdHJpbmcsXG4gICAgICAgICAgICBzZWxUYXJnZXQ6IFN0cmluZyxcbiAgICAgICAgICAgIHdpZHRoRWxlbWVudDogQm9vbGVhbixcbiAgICAgICAgICAgIHNob3dPblVwOiBCb29sZWFuLFxuICAgICAgICAgICAgbWVkaWE6ICdtZWRpYScsXG4gICAgICAgICAgICB0YXJnZXRPZmZzZXQ6IE51bWJlclxuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgIGJvdHRvbTogZmFsc2UsXG4gICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICBhbmltYXRpb246ICcnLFxuICAgICAgICAgICAgY2xzQWN0aXZlOiAndWstYWN0aXZlJyxcbiAgICAgICAgICAgIGNsc0luYWN0aXZlOiAnJyxcbiAgICAgICAgICAgIGNsc0ZpeGVkOiAndWstc3RpY2t5LWZpeGVkJyxcbiAgICAgICAgICAgIGNsc0JlbG93OiAndWstc3RpY2t5LWJlbG93JyxcbiAgICAgICAgICAgIHNlbFRhcmdldDogJycsXG4gICAgICAgICAgICB3aWR0aEVsZW1lbnQ6IGZhbHNlLFxuICAgICAgICAgICAgc2hvd09uVXA6IGZhbHNlLFxuICAgICAgICAgICAgbWVkaWE6IGZhbHNlLFxuICAgICAgICAgICAgdGFyZ2V0T2Zmc2V0OiBmYWxzZVxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIHNlbFRhcmdldDogZnVuY3Rpb24ocmVmLCAkZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2VsVGFyZ2V0ID0gcmVmLnNlbFRhcmdldDtcblxuICAgICAgICAgICAgICAgIHJldHVybiBzZWxUYXJnZXQgJiYgJChzZWxUYXJnZXQsICRlbCkgfHwgJGVsO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgd2lkdGhFbGVtZW50OiBmdW5jdGlvbihyZWYsICRlbCkge1xuICAgICAgICAgICAgICAgIHZhciB3aWR0aEVsZW1lbnQgPSByZWYud2lkdGhFbGVtZW50O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHF1ZXJ5KHdpZHRoRWxlbWVudCwgJGVsKSB8fCB0aGlzLnBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgY29ubmVjdGVkOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9ICQoJysgLnVrLXN0aWNreS1wbGFjZWhvbGRlcicsIHRoaXMuJGVsKSB8fCAkKCc8ZGl2IGNsYXNzPVwidWstc3RpY2t5LXBsYWNlaG9sZGVyXCI+PC9kaXY+Jyk7XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pc0FjdGl2ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGRpc2Nvbm5lY3RlZDogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pc0FjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuc2VsVGFyZ2V0LCB0aGlzLmNsc0luYWN0aXZlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmVtb3ZlKHRoaXMucGxhY2Vob2xkZXIpO1xuICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IG51bGw7XG4gICAgICAgICAgICB0aGlzLndpZHRoRWxlbWVudCA9IG51bGw7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiBbXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnYWN0aXZlJyxcblxuICAgICAgICAgICAgICAgIHNlbGY6IHRydWUsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZUNsYXNzKHRoaXMuc2VsVGFyZ2V0LCB0aGlzLmNsc0luYWN0aXZlLCB0aGlzLmNsc0FjdGl2ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2luYWN0aXZlJyxcblxuICAgICAgICAgICAgICAgIHNlbGY6IHRydWUsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVwbGFjZUNsYXNzKHRoaXMuc2VsVGFyZ2V0LCB0aGlzLmNsc0FjdGl2ZSwgdGhpcy5jbHNJbmFjdGl2ZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAnbG9hZCBoYXNoY2hhbmdlIHBvcHN0YXRlJyxcblxuICAgICAgICAgICAgICAgIGVsOiB3aW5kb3csXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgICAgICAgICBpZiAoISh0aGlzLnRhcmdldE9mZnNldCAhPT0gZmFsc2UgJiYgbG9jYXRpb24uaGFzaCAmJiB3aW5kb3cucGFnZVlPZmZzZXQgPiAwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9ICQobG9jYXRpb24uaGFzaCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRhcmdldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmFzdGRvbS5yZWFkKGZ1bmN0aW9uICgpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciByZWYgPSBvZmZzZXQodGFyZ2V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgdG9wID0gcmVmLnRvcDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgZWxUb3AgPSBvZmZzZXQodGhpcyQxLiRlbCkudG9wO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBlbEhlaWdodCA9IHRoaXMkMS4kZWwub2Zmc2V0SGVpZ2h0O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMkMS5pc0FjdGl2ZSAmJiBlbFRvcCArIGVsSGVpZ2h0ID49IHRvcCAmJiBlbFRvcCA8PSB0b3AgKyB0YXJnZXQub2Zmc2V0SGVpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGwoMCwgdG9wIC0gZWxIZWlnaHQgLSAoaXNOdW1lcmljKHRoaXMkMS50YXJnZXRPZmZzZXQpID8gdGhpcyQxLnRhcmdldE9mZnNldCA6IDApIC0gdGhpcyQxLm9mZnNldCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXSxcblxuICAgICAgICB1cGRhdGU6IFtcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciByZWYgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICB2YXIgcGxhY2Vob2xkZXIgPSByZWYucGxhY2Vob2xkZXI7XG4gICAgICAgICAgICAgICAgICAgIHZhciBvZmZzZXRIZWlnaHQgPSByZWYuJGVsLm9mZnNldEhlaWdodDtcblxuICAgICAgICAgICAgICAgICAgICBjc3MocGxhY2Vob2xkZXIsIGFzc2lnbihcbiAgICAgICAgICAgICAgICAgICAgICAgIHtoZWlnaHQ6IGNzcyh0aGlzLiRlbCwgJ3Bvc2l0aW9uJykgIT09ICdhYnNvbHV0ZScgPyBvZmZzZXRIZWlnaHQgOiAnJ30sXG4gICAgICAgICAgICAgICAgICAgICAgICBjc3ModGhpcy4kZWwsIFsnbWFyZ2luVG9wJywgJ21hcmdpbkJvdHRvbScsICdtYXJnaW5MZWZ0JywgJ21hcmdpblJpZ2h0J10pXG4gICAgICAgICAgICAgICAgICAgICkpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghd2l0aGluKHBsYWNlaG9sZGVyLCBkb2N1bWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyKHRoaXMuJGVsLCBwbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICBhdHRyKHBsYWNlaG9sZGVyLCAnaGlkZGVuJywgJycpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b3BPZmZzZXQgPSBvZmZzZXQodGhpcy5pc0FjdGl2ZSA/IHBsYWNlaG9sZGVyIDogdGhpcy4kZWwpLnRvcDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ib3R0b21PZmZzZXQgPSB0aGlzLnRvcE9mZnNldCArIG9mZnNldEhlaWdodDtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgYm90dG9tID0gcGFyc2VQcm9wKCdib3R0b20nLCB0aGlzKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvcCA9IE1hdGgubWF4KHRvRmxvYXQocGFyc2VQcm9wKCd0b3AnLCB0aGlzKSksIHRoaXMudG9wT2Zmc2V0KSAtIHRoaXMub2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmJvdHRvbSA9IGJvdHRvbSAmJiBib3R0b20gLSBvZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5hY3RpdmUgPSB0aGlzLm1lZGlhICYmICF3aW5kb3cubWF0Y2hNZWRpYSh0aGlzLm1lZGlhKS5tYXRjaGVzO1xuXG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGV2ZW50czogWydsb2FkJywgJ3Jlc2l6ZSddXG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIHJlYWQ6IGZ1bmN0aW9uKF8sIHJlZikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2Nyb2xsWSA9IHJlZi5zY3JvbGxZOyBpZiAoIHNjcm9sbFkgPT09IHZvaWQgMCApIHNjcm9sbFkgPSB3aW5kb3cucGFnZVlPZmZzZXQ7XG5cblxuICAgICAgICAgICAgICAgICAgICB0aGlzLndpZHRoID0gKGlzVmlzaWJsZSh0aGlzLndpZHRoRWxlbWVudCkgPyB0aGlzLndpZHRoRWxlbWVudCA6IHRoaXMuJGVsKS5vZmZzZXRXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgc2Nyb2xsOiB0aGlzLnNjcm9sbCA9IHNjcm9sbFksXG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlOiBpc1Zpc2libGUodGhpcy4kZWwpXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbihyZWYsIHJlZiQxKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuICAgICAgICAgICAgICAgICAgICB2YXIgdmlzaWJsZSA9IHJlZi52aXNpYmxlO1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2Nyb2xsID0gcmVmLnNjcm9sbDtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCByZWYkMSA9PT0gdm9pZCAwICkgcmVmJDEgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRpciA9IHJlZiQxLmRpcjtcblxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzY3JvbGwgPCAwIHx8ICF2aXNpYmxlIHx8IHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5zaG93T25VcCAmJiAhZGlyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5pbmFjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfHwgc2Nyb2xsIDwgdGhpcy50b3BcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IHRoaXMuc2hvd09uVXAgJiYgKHNjcm9sbCA8PSB0aGlzLnRvcCB8fCBkaXIgPT09ICdkb3duJyB8fCBkaXIgPT09ICd1cCcgJiYgIXRoaXMuaXNBY3RpdmUgJiYgc2Nyb2xsIDw9IHRoaXMuYm90dG9tT2Zmc2V0KVxuICAgICAgICAgICAgICAgICAgICApIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF0aGlzLmlzQWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmlzQWN0aXZlID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbiAmJiBzY3JvbGwgPiB0aGlzLnRvcE9mZnNldCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuaW1hdGlvbi5jYW5jZWwodGhpcy4kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIEFuaW1hdGlvbi5vdXQodGhpcy4kZWwsIHRoaXMuYW5pbWF0aW9uKS50aGVuKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMkMS5oaWRlKCk7IH0sIG5vb3ApO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuaXNBY3RpdmUpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51cGRhdGUoKTtcblxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYW5pbWF0aW9uKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIEFuaW1hdGlvbi5jYW5jZWwodGhpcy4kZWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBBbmltYXRpb24uaW4odGhpcy4kZWwsIHRoaXMuYW5pbWF0aW9uKS5jYXRjaChub29wKTtcblxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBldmVudHM6IFsnbG9hZCcsICdyZXNpemUnLCAnc2Nyb2xsJ11cblxuICAgICAgICAgICAgfSBdLFxuXG4gICAgICAgIG1ldGhvZHM6IHtcblxuICAgICAgICAgICAgc2hvdzogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmlzQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgICAgICAgICAgICAgIGF0dHIodGhpcy5wbGFjZWhvbGRlciwgJ2hpZGRlbicsIG51bGwpO1xuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBoaWRlOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5pc0FjdGl2ZSB8fCBoYXNDbGFzcyh0aGlzLnNlbFRhcmdldCwgdGhpcy5jbHNBY3RpdmUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyaWdnZXIodGhpcy4kZWwsICdpbmFjdGl2ZScpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuJGVsLCB0aGlzLmNsc0ZpeGVkLCB0aGlzLmNsc0JlbG93KTtcbiAgICAgICAgICAgICAgICBjc3ModGhpcy4kZWwsIHtwb3NpdGlvbjogJycsIHRvcDogJycsIHdpZHRoOiAnJ30pO1xuICAgICAgICAgICAgICAgIGF0dHIodGhpcy5wbGFjZWhvbGRlciwgJ2hpZGRlbicsICcnKTtcblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdXBkYXRlOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgICAgIHZhciBhY3RpdmUgPSB0aGlzLnRvcCAhPT0gMCB8fCB0aGlzLnNjcm9sbCA+IHRoaXMudG9wO1xuICAgICAgICAgICAgICAgIHZhciB0b3AgPSBNYXRoLm1heCgwLCB0aGlzLm9mZnNldCk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5ib3R0b20gJiYgdGhpcy5zY3JvbGwgPiB0aGlzLmJvdHRvbSAtIHRoaXMub2Zmc2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRvcCA9IHRoaXMuYm90dG9tIC0gdGhpcy5zY3JvbGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgY3NzKHRoaXMuJGVsLCB7XG4gICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgICAgICAgICAgICAgICB0b3A6ICh0b3AgKyBcInB4XCIpLFxuICAgICAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy53aWR0aFxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKGhhc0NsYXNzKHRoaXMuc2VsVGFyZ2V0LCB0aGlzLmNsc0FjdGl2ZSkpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcih0aGlzLiRlbCwgJ2luYWN0aXZlJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoYWN0aXZlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyaWdnZXIodGhpcy4kZWwsICdhY3RpdmUnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyh0aGlzLiRlbCwgdGhpcy5jbHNCZWxvdywgdGhpcy5zY3JvbGwgPiB0aGlzLmJvdHRvbU9mZnNldCk7XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kZWwsIHRoaXMuY2xzRml4ZWQpO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHBhcnNlUHJvcChwcm9wLCByZWYpIHtcbiAgICAgICAgdmFyICRwcm9wcyA9IHJlZi4kcHJvcHM7XG4gICAgICAgIHZhciAkZWwgPSByZWYuJGVsO1xuICAgICAgICB2YXIgcHJvcE9mZnNldCA9IHJlZlsocHJvcCArIFwiT2Zmc2V0XCIpXTtcblxuXG4gICAgICAgIHZhciB2YWx1ZSA9ICRwcm9wc1twcm9wXTtcblxuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoaXNOdW1lcmljKHZhbHVlKSkge1xuXG4gICAgICAgICAgICByZXR1cm4gcHJvcE9mZnNldCArIHRvRmxvYXQodmFsdWUpO1xuXG4gICAgICAgIH0gZWxzZSBpZiAoaXNTdHJpbmcodmFsdWUpICYmIHZhbHVlLm1hdGNoKC9eLT9cXGQrdmgkLykpIHtcblxuICAgICAgICAgICAgcmV0dXJuIGhlaWdodCh3aW5kb3cpICogdG9GbG9hdCh2YWx1ZSkgLyAxMDA7XG5cbiAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgdmFyIGVsID0gdmFsdWUgPT09IHRydWUgPyAkZWwucGFyZW50Tm9kZSA6IHF1ZXJ5KHZhbHVlLCAkZWwpO1xuXG4gICAgICAgICAgICBpZiAoZWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2Zmc2V0KGVsKS50b3AgKyBlbC5vZmZzZXRIZWlnaHQ7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBTd2l0Y2hlciA9IHtcblxuICAgICAgICBtaXhpbnM6IFtUb2dnbGFibGVdLFxuXG4gICAgICAgIGFyZ3M6ICdjb25uZWN0JyxcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgY29ubmVjdDogU3RyaW5nLFxuICAgICAgICAgICAgdG9nZ2xlOiBTdHJpbmcsXG4gICAgICAgICAgICBhY3RpdmU6IE51bWJlcixcbiAgICAgICAgICAgIHN3aXBpbmc6IEJvb2xlYW5cbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBjb25uZWN0OiAnfi51ay1zd2l0Y2hlcicsXG4gICAgICAgICAgICB0b2dnbGU6ICc+IConLFxuICAgICAgICAgICAgYWN0aXZlOiAwLFxuICAgICAgICAgICAgc3dpcGluZzogdHJ1ZSxcbiAgICAgICAgICAgIGNsczogJ3VrLWFjdGl2ZScsXG4gICAgICAgICAgICBjbHNDb250YWluZXI6ICd1ay1zd2l0Y2hlcicsXG4gICAgICAgICAgICBhdHRySXRlbTogJ3VrLXN3aXRjaGVyLWl0ZW0nLFxuICAgICAgICAgICAgcXVldWVkOiB0cnVlXG4gICAgICAgIH0sXG5cbiAgICAgICAgY29tcHV0ZWQ6IHtcblxuICAgICAgICAgICAgY29ubmVjdHM6IGZ1bmN0aW9uKHJlZiwgJGVsKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNvbm5lY3QgPSByZWYuY29ubmVjdDtcblxuICAgICAgICAgICAgICAgIHJldHVybiBxdWVyeUFsbChjb25uZWN0LCAkZWwpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdG9nZ2xlczogZnVuY3Rpb24ocmVmLCAkZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgdG9nZ2xlID0gcmVmLnRvZ2dsZTtcblxuICAgICAgICAgICAgICAgIHJldHVybiAkJCh0b2dnbGUsICRlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICBldmVudHM6IFtcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ2NsaWNrJyxcblxuICAgICAgICAgICAgICAgIGRlbGVnYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICgodGhpcy50b2dnbGUpICsgXCI6bm90KC51ay1kaXNhYmxlZClcIik7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3coZS5jdXJyZW50KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnY2xpY2snLFxuXG4gICAgICAgICAgICAgICAgZWw6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb25uZWN0cztcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgZGVsZWdhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFwiW1wiICsgKHRoaXMuYXR0ckl0ZW0pICsgXCJdLFtkYXRhLVwiICsgKHRoaXMuYXR0ckl0ZW0pICsgXCJdXCIpO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KGRhdGEoZS5jdXJyZW50LCB0aGlzLmF0dHJJdGVtKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdzd2lwZVJpZ2h0IHN3aXBlTGVmdCcsXG5cbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zd2lwaW5nO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBlbDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbm5lY3RzO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNUb3VjaChlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXdpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3coZS50eXBlID09PSAnc3dpcGVMZWZ0JyA/ICduZXh0JyA6ICdwcmV2aW91cycpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIF0sXG5cbiAgICAgICAgdXBkYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgIHRoaXMuY29ubmVjdHMuZm9yRWFjaChmdW5jdGlvbiAobGlzdCkgeyByZXR1cm4gdGhpcyQxLnVwZGF0ZUFyaWEobGlzdC5jaGlsZHJlbik7IH0pO1xuICAgICAgICAgICAgdGhpcy5zaG93KGZpbHRlcih0aGlzLnRvZ2dsZXMsIChcIi5cIiArICh0aGlzLmNscykpKVswXSB8fCB0aGlzLnRvZ2dsZXNbdGhpcy5hY3RpdmVdIHx8IHRoaXMudG9nZ2xlc1swXSk7XG5cbiAgICAgICAgfSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIHNob3c6IGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICAgICAgdmFyIHJlZiA9IHRoaXMudG9nZ2xlcztcbiAgICAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gcmVmLmxlbmd0aDtcbiAgICAgICAgICAgICAgICB2YXIgcHJldiA9ICEhdGhpcy5jb25uZWN0cy5sZW5ndGggJiYgaW5kZXgoZmlsdGVyKHRoaXMuY29ubmVjdHNbMF0uY2hpbGRyZW4sIChcIi5cIiArICh0aGlzLmNscykpKVswXSk7XG4gICAgICAgICAgICAgICAgdmFyIGhhc1ByZXYgPSBwcmV2ID49IDA7XG4gICAgICAgICAgICAgICAgdmFyIGRpciA9IGl0ZW0gPT09ICdwcmV2aW91cycgPyAtMSA6IDE7XG5cbiAgICAgICAgICAgICAgICB2YXIgdG9nZ2xlLCBuZXh0ID0gZ2V0SW5kZXgoaXRlbSwgdGhpcy50b2dnbGVzLCBwcmV2KTtcblxuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbGVuZ3RoOyBpKyssIG5leHQgPSAobmV4dCArIGRpciArIGxlbmd0aCkgJSBsZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFtYXRjaGVzKHRoaXMkMS50b2dnbGVzW25leHRdLCAnLnVrLWRpc2FibGVkLCBbZGlzYWJsZWRdJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRvZ2dsZSA9IHRoaXMkMS50b2dnbGVzW25leHRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRvZ2dsZSB8fCBwcmV2ID49IDAgJiYgaGFzQ2xhc3ModG9nZ2xlLCB0aGlzLmNscykgfHwgcHJldiA9PT0gbmV4dCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmVtb3ZlQ2xhc3ModGhpcy50b2dnbGVzLCB0aGlzLmNscyk7XG4gICAgICAgICAgICAgICAgYXR0cih0aGlzLnRvZ2dsZXMsICdhcmlhLWV4cGFuZGVkJywgZmFsc2UpO1xuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRvZ2dsZSwgdGhpcy5jbHMpO1xuICAgICAgICAgICAgICAgIGF0dHIodG9nZ2xlLCAnYXJpYS1leHBhbmRlZCcsIHRydWUpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5jb25uZWN0cy5mb3JFYWNoKGZ1bmN0aW9uIChsaXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaGFzUHJldikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLnRvZ2dsZU5vdyhsaXN0LmNoaWxkcmVuW25leHRdKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMkMS50b2dnbGVFbGVtZW50KFtsaXN0LmNoaWxkcmVuW3ByZXZdLCBsaXN0LmNoaWxkcmVuW25leHRdXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICB2YXIgVGFiID0ge1xuXG4gICAgICAgIG1peGluczogW0NsYXNzXSxcblxuICAgICAgICBleHRlbmRzOiBTd2l0Y2hlcixcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgbWVkaWE6ICdtZWRpYSdcbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBtZWRpYTogOTYwLFxuICAgICAgICAgICAgYXR0ckl0ZW06ICd1ay10YWItaXRlbSdcbiAgICAgICAgfSxcblxuICAgICAgICBjb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICB2YXIgY2xzID0gaGFzQ2xhc3ModGhpcy4kZWwsICd1ay10YWItbGVmdCcpXG4gICAgICAgICAgICAgICAgPyAndWstdGFiLWxlZnQnXG4gICAgICAgICAgICAgICAgOiBoYXNDbGFzcyh0aGlzLiRlbCwgJ3VrLXRhYi1yaWdodCcpXG4gICAgICAgICAgICAgICAgICAgID8gJ3VrLXRhYi1yaWdodCdcbiAgICAgICAgICAgICAgICAgICAgOiBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGNscykge1xuICAgICAgICAgICAgICAgIHRoaXMuJGNyZWF0ZSgndG9nZ2xlJywgdGhpcy4kZWwsIHtjbHM6IGNscywgbW9kZTogJ21lZGlhJywgbWVkaWE6IHRoaXMubWVkaWF9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIHZhciBUb2dnbGUgPSB7XG5cbiAgICAgICAgbWl4aW5zOiBbVG9nZ2xhYmxlXSxcblxuICAgICAgICBhcmdzOiAndGFyZ2V0JyxcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgaHJlZjogU3RyaW5nLFxuICAgICAgICAgICAgdGFyZ2V0OiBudWxsLFxuICAgICAgICAgICAgbW9kZTogJ2xpc3QnLFxuICAgICAgICAgICAgbWVkaWE6ICdtZWRpYSdcbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBocmVmOiBmYWxzZSxcbiAgICAgICAgICAgIHRhcmdldDogZmFsc2UsXG4gICAgICAgICAgICBtb2RlOiAnY2xpY2snLFxuICAgICAgICAgICAgcXVldWVkOiB0cnVlLFxuICAgICAgICAgICAgbWVkaWE6IGZhbHNlXG4gICAgICAgIH0sXG5cbiAgICAgICAgY29tcHV0ZWQ6IHtcblxuICAgICAgICAgICAgdGFyZ2V0OiBmdW5jdGlvbihyZWYsICRlbCkge1xuICAgICAgICAgICAgICAgIHZhciBocmVmID0gcmVmLmhyZWY7XG4gICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9IHJlZi50YXJnZXQ7XG5cbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBxdWVyeUFsbCh0YXJnZXQgfHwgaHJlZiwgJGVsKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0Lmxlbmd0aCAmJiB0YXJnZXQgfHwgWyRlbF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICBldmVudHM6IFtcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogKHBvaW50ZXJFbnRlciArIFwiIFwiICsgcG9pbnRlckxlYXZlKSxcblxuICAgICAgICAgICAgICAgIGZpbHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBpbmNsdWRlcyh0aGlzLm1vZGUsICdob3ZlcicpO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaXNUb3VjaChlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGUoKFwidG9nZ2xlXCIgKyAoZS50eXBlID09PSBwb2ludGVyRW50ZXIgPyAnc2hvdycgOiAnaGlkZScpKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6ICdjbGljaycsXG5cbiAgICAgICAgICAgICAgICBmaWx0ZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5jbHVkZXModGhpcy5tb2RlLCAnY2xpY2snKSB8fCBoYXNUb3VjaCAmJiBpbmNsdWRlcyh0aGlzLm1vZGUsICdob3ZlcicpO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpc1RvdWNoKGUpICYmICFpbmNsdWRlcyh0aGlzLm1vZGUsICdjbGljaycpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPIGJldHRlciBpc1RvZ2dsZWQgaGFuZGxpbmdcbiAgICAgICAgICAgICAgICAgICAgdmFyIGxpbms7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjbG9zZXN0KGUudGFyZ2V0LCAnYVtocmVmPVwiI1wiXSwgYnV0dG9uJylcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IChsaW5rID0gY2xvc2VzdChlLnRhcmdldCwgJ2FbaHJlZl0nKSkgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2xzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgIWlzVmlzaWJsZSh0aGlzLnRhcmdldClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBsaW5rLmhhc2ggJiYgbWF0Y2hlcyh0aGlzLnRhcmdldCwgbGluay5oYXNoKVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uY2UoZG9jdW1lbnQsICdjbGljaycsIGZ1bmN0aW9uIChlKSB7IHJldHVybiBlLnByZXZlbnREZWZhdWx0KCk7IH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cbiAgICAgICAgXSxcblxuICAgICAgICB1cGRhdGU6IHtcblxuICAgICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICAgICAgaWYgKCFpbmNsdWRlcyh0aGlzLm1vZGUsICdtZWRpYScpIHx8ICF0aGlzLm1lZGlhKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgdG9nZ2xlZCA9IHRoaXMuaXNUb2dnbGVkKHRoaXMudGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBpZiAod2luZG93Lm1hdGNoTWVkaWEodGhpcy5tZWRpYSkubWF0Y2hlcyA/ICF0b2dnbGVkIDogdG9nZ2xlZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZXZlbnRzOiBbJ2xvYWQnLCAncmVzaXplJ11cblxuICAgICAgICB9LFxuXG4gICAgICAgIG1ldGhvZHM6IHtcblxuICAgICAgICAgICAgdG9nZ2xlOiBmdW5jdGlvbih0eXBlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRyaWdnZXIodGhpcy50YXJnZXQsIHR5cGUgfHwgJ3RvZ2dsZScsIFt0aGlzXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVFbGVtZW50KHRoaXMudGFyZ2V0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGNvcmUgKFVJa2l0KSB7XG5cbiAgICAgICAgLy8gY29yZSBjb21wb25lbnRzXG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgnYWNjb3JkaW9uJywgQWNjb3JkaW9uKTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCdhbGVydCcsIEFsZXJ0KTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCdjb3ZlcicsIENvdmVyKTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCdkcm9wJywgRHJvcCk7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgnZHJvcGRvd24nLCBEcm9wZG93bik7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgnZm9ybUN1c3RvbScsIEZvcm1DdXN0b20pO1xuICAgICAgICBVSWtpdC5jb21wb25lbnQoJ2dpZicsIEdpZik7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgnZ3JpZCcsIEdyaWQpO1xuICAgICAgICBVSWtpdC5jb21wb25lbnQoJ2hlaWdodE1hdGNoJywgSGVpZ2h0TWF0Y2gpO1xuICAgICAgICBVSWtpdC5jb21wb25lbnQoJ2hlaWdodFZpZXdwb3J0JywgSGVpZ2h0Vmlld3BvcnQpO1xuICAgICAgICBVSWtpdC5jb21wb25lbnQoJ2ljb24nLCBJY29uKTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCdpbWcnLCBJbWcpO1xuICAgICAgICBVSWtpdC5jb21wb25lbnQoJ2xlYWRlcicsIExlYWRlcik7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgnbWFyZ2luJywgTWFyZ2luKTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCdtb2RhbCcsIE1vZGFsJDEpO1xuICAgICAgICBVSWtpdC5jb21wb25lbnQoJ25hdicsIE5hdik7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgnbmF2YmFyJywgTmF2YmFyKTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCdvZmZjYW52YXMnLCBPZmZjYW52YXMpO1xuICAgICAgICBVSWtpdC5jb21wb25lbnQoJ292ZXJmbG93QXV0bycsIE92ZXJmbG93QXV0byk7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgncmVzcG9uc2l2ZScsIFJlc3BvbnNpdmUpO1xuICAgICAgICBVSWtpdC5jb21wb25lbnQoJ3Njcm9sbCcsIFNjcm9sbCk7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgnc2Nyb2xsc3B5JywgU2Nyb2xsc3B5KTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCdzY3JvbGxzcHlOYXYnLCBTY3JvbGxzcHlOYXYpO1xuICAgICAgICBVSWtpdC5jb21wb25lbnQoJ3N0aWNreScsIFN0aWNreSk7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgnc3ZnJywgU1ZHKTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCdzd2l0Y2hlcicsIFN3aXRjaGVyKTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCd0YWInLCBUYWIpO1xuICAgICAgICBVSWtpdC5jb21wb25lbnQoJ3RvZ2dsZScsIFRvZ2dsZSk7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgndmlkZW8nLCBWaWRlbyk7XG5cbiAgICAgICAgLy8gSWNvbiBjb21wb25lbnRzXG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgnY2xvc2UnLCBDbG9zZSk7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgnbWFya2VyJywgSWNvbkNvbXBvbmVudCk7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgnbmF2YmFyVG9nZ2xlSWNvbicsIEljb25Db21wb25lbnQpO1xuICAgICAgICBVSWtpdC5jb21wb25lbnQoJ292ZXJsYXlJY29uJywgSWNvbkNvbXBvbmVudCk7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgncGFnaW5hdGlvbk5leHQnLCBJY29uQ29tcG9uZW50KTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCdwYWdpbmF0aW9uUHJldmlvdXMnLCBJY29uQ29tcG9uZW50KTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCdzZWFyY2hJY29uJywgU2VhcmNoKTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCdzbGlkZW5hdk5leHQnLCBTbGlkZW5hdik7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgnc2xpZGVuYXZQcmV2aW91cycsIFNsaWRlbmF2KTtcbiAgICAgICAgVUlraXQuY29tcG9uZW50KCdzcGlubmVyJywgU3Bpbm5lcik7XG4gICAgICAgIFVJa2l0LmNvbXBvbmVudCgndG90b3AnLCBJY29uQ29tcG9uZW50KTtcblxuICAgICAgICAvLyBjb3JlIGZ1bmN0aW9uYWxpdHlcbiAgICAgICAgVUlraXQudXNlKENvcmUpO1xuXG4gICAgfVxuXG4gICAgVUlraXQudmVyc2lvbiA9ICczLjAuMC1yYy41JztcblxuICAgIGNvcmUoVUlraXQpO1xuXG4gICAgdmFyIENvdW50ZG93biA9IHtcblxuICAgICAgICBtaXhpbnM6IFtDbGFzc10sXG5cbiAgICAgICAgYXR0cnM6IHRydWUsXG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGRhdGU6IFN0cmluZyxcbiAgICAgICAgICAgIGNsc1dyYXBwZXI6IFN0cmluZ1xuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGRhdGU6ICcnLFxuICAgICAgICAgICAgY2xzV3JhcHBlcjogJy51ay1jb3VudGRvd24tJXVuaXQlJ1xuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIGRhdGU6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciBkYXRlID0gcmVmLmRhdGU7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gRGF0ZS5wYXJzZShkYXRlKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGRheXM6IGZ1bmN0aW9uKHJlZiwgJGVsKSB7XG4gICAgICAgICAgICAgICAgdmFyIGNsc1dyYXBwZXIgPSByZWYuY2xzV3JhcHBlcjtcblxuICAgICAgICAgICAgICAgIHJldHVybiAkKGNsc1dyYXBwZXIucmVwbGFjZSgnJXVuaXQlJywgJ2RheXMnKSwgJGVsKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGhvdXJzOiBmdW5jdGlvbihyZWYsICRlbCkge1xuICAgICAgICAgICAgICAgIHZhciBjbHNXcmFwcGVyID0gcmVmLmNsc1dyYXBwZXI7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gJChjbHNXcmFwcGVyLnJlcGxhY2UoJyV1bml0JScsICdob3VycycpLCAkZWwpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgbWludXRlczogZnVuY3Rpb24ocmVmLCAkZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2xzV3JhcHBlciA9IHJlZi5jbHNXcmFwcGVyO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuICQoY2xzV3JhcHBlci5yZXBsYWNlKCcldW5pdCUnLCAnbWludXRlcycpLCAkZWwpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2Vjb25kczogZnVuY3Rpb24ocmVmLCAkZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgY2xzV3JhcHBlciA9IHJlZi5jbHNXcmFwcGVyO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuICQoY2xzV3JhcHBlci5yZXBsYWNlKCcldW5pdCUnLCAnc2Vjb25kcycpLCAkZWwpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdW5pdHM6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIFsnZGF5cycsICdob3VycycsICdtaW51dGVzJywgJ3NlY29uZHMnXS5maWx0ZXIoZnVuY3Rpb24gKHVuaXQpIHsgcmV0dXJuIHRoaXMkMVt1bml0XTsgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICBjb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdGhpcy5zdGFydCgpO1xuICAgICAgICB9LFxuXG4gICAgICAgIGRpc2Nvbm5lY3RlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAgICAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgICAgICB0aGlzLnVuaXRzLmZvckVhY2goZnVuY3Rpb24gKHVuaXQpIHsgcmV0dXJuIGVtcHR5KHRoaXMkMVt1bml0XSk7IH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIGV2ZW50czogW1xuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAndmlzaWJpbGl0eWNoYW5nZScsXG5cbiAgICAgICAgICAgICAgICBlbDogZG9jdW1lbnQsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGRvY3VtZW50LmhpZGRlbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdG9wKCk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICBdLFxuXG4gICAgICAgIHVwZGF0ZToge1xuXG4gICAgICAgICAgICB3cml0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgICAgIHZhciB0aW1lc3BhbiA9IGdldFRpbWVTcGFuKHRoaXMuZGF0ZSk7XG5cbiAgICAgICAgICAgICAgICBpZiAodGltZXNwYW4udG90YWwgPD0gMCkge1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRpbWVzcGFuLmRheXNcbiAgICAgICAgICAgICAgICAgICAgICAgID0gdGltZXNwYW4uaG91cnNcbiAgICAgICAgICAgICAgICAgICAgICAgID0gdGltZXNwYW4ubWludXRlc1xuICAgICAgICAgICAgICAgICAgICAgICAgPSB0aW1lc3Bhbi5zZWNvbmRzXG4gICAgICAgICAgICAgICAgICAgICAgICA9IDA7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy51bml0cy5mb3JFYWNoKGZ1bmN0aW9uICh1bml0KSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGRpZ2l0cyA9IFN0cmluZyhNYXRoLmZsb29yKHRpbWVzcGFuW3VuaXRdKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgZGlnaXRzID0gZGlnaXRzLmxlbmd0aCA8IDIgPyAoXCIwXCIgKyBkaWdpdHMpIDogZGlnaXRzO1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciBlbCA9IHRoaXMkMVt1bml0XTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGVsLnRleHRDb250ZW50ICE9PSBkaWdpdHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpZ2l0cyA9IGRpZ2l0cy5zcGxpdCgnJyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaWdpdHMubGVuZ3RoICE9PSBlbC5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBodG1sKGVsLCBkaWdpdHMubWFwKGZ1bmN0aW9uICgpIHsgcmV0dXJuICc8c3Bhbj48L3NwYW4+JzsgfSkuam9pbignJykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBkaWdpdHMuZm9yRWFjaChmdW5jdGlvbiAoZGlnaXQsIGkpIHsgcmV0dXJuIGVsLmNoaWxkcmVuW2ldLnRleHRDb250ZW50ID0gZGlnaXQ7IH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgbWV0aG9kczoge1xuXG4gICAgICAgICAgICBzdGFydDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcCgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZSAmJiB0aGlzLnVuaXRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXIgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzJDEuJGVtaXQoKTsgfSwgMTAwMCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzdG9wOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLnRpbWVyKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy50aW1lcik7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRUaW1lU3BhbihkYXRlKSB7XG5cbiAgICAgICAgdmFyIHRvdGFsID0gZGF0ZSAtIERhdGUubm93KCk7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvdGFsOiB0b3RhbCxcbiAgICAgICAgICAgIHNlY29uZHM6IHRvdGFsIC8gMTAwMCAlIDYwLFxuICAgICAgICAgICAgbWludXRlczogdG90YWwgLyAxMDAwIC8gNjAgJSA2MCxcbiAgICAgICAgICAgIGhvdXJzOiB0b3RhbCAvIDEwMDAgLyA2MCAvIDYwICUgMjQsXG4gICAgICAgICAgICBkYXlzOiB0b3RhbCAvIDEwMDAgLyA2MCAvIDYwIC8gMjRcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB2YXIgdGFyZ2V0Q2xhc3MgPSAndWstYW5pbWF0aW9uLXRhcmdldCc7XG5cbiAgICB2YXIgQW5pbWF0ZSA9IHtcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiBOdW1iZXJcbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBhbmltYXRpb246IDE1MFxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIHRhcmdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuJGVsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgbWV0aG9kczoge1xuXG4gICAgICAgICAgICBhbmltYXRlOiBmdW5jdGlvbihhY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICAgICAgYWRkU3R5bGUoKTtcblxuICAgICAgICAgICAgICAgIHZhciBjaGlsZHJlbiA9IHRvTm9kZXModGhpcy50YXJnZXQuY2hpbGRyZW4pO1xuICAgICAgICAgICAgICAgIHZhciBwcm9wc0Zyb20gPSBjaGlsZHJlbi5tYXAoZnVuY3Rpb24gKGVsKSB7IHJldHVybiBnZXRQcm9wcyhlbCwgdHJ1ZSk7IH0pO1xuXG4gICAgICAgICAgICAgICAgdmFyIG9sZEhlaWdodCA9IGhlaWdodCh0aGlzLnRhcmdldCk7XG4gICAgICAgICAgICAgICAgdmFyIG9sZFNjcm9sbFkgPSB3aW5kb3cucGFnZVlPZmZzZXQ7XG5cbiAgICAgICAgICAgICAgICBhY3Rpb24oKTtcblxuICAgICAgICAgICAgICAgIFRyYW5zaXRpb24uY2FuY2VsKHRoaXMudGFyZ2V0KTtcbiAgICAgICAgICAgICAgICBjaGlsZHJlbi5mb3JFYWNoKFRyYW5zaXRpb24uY2FuY2VsKTtcblxuICAgICAgICAgICAgICAgIHJlc2V0KHRoaXMudGFyZ2V0KTtcbiAgICAgICAgICAgICAgICB0aGlzLiR1cGRhdGUodGhpcy50YXJnZXQpO1xuICAgICAgICAgICAgICAgIGZhc3Rkb20uZmx1c2goKTtcblxuICAgICAgICAgICAgICAgIHZhciBuZXdIZWlnaHQgPSBoZWlnaHQodGhpcy50YXJnZXQpO1xuXG4gICAgICAgICAgICAgICAgY2hpbGRyZW4gPSBjaGlsZHJlbi5jb25jYXQodG9Ob2Rlcyh0aGlzLnRhcmdldC5jaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uIChlbCkgeyByZXR1cm4gIWluY2x1ZGVzKGNoaWxkcmVuLCBlbCk7IH0pKTtcblxuICAgICAgICAgICAgICAgIHZhciBwcm9wc1RvID0gY2hpbGRyZW4ubWFwKGZ1bmN0aW9uIChlbCwgaSkgeyByZXR1cm4gZWwucGFyZW50Tm9kZSAmJiBpIGluIHByb3BzRnJvbVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBwcm9wc0Zyb21baV1cbiAgICAgICAgICAgICAgICAgICAgICAgID8gaXNWaXNpYmxlKGVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gZ2V0UG9zaXRpb25XaXRoTWFyZ2luKGVsKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge29wYWNpdHk6IDB9XG4gICAgICAgICAgICAgICAgICAgICAgICA6IHtvcGFjaXR5OiBpc1Zpc2libGUoZWwpID8gMSA6IDB9XG4gICAgICAgICAgICAgICAgICAgICAgICA6IGZhbHNlOyB9XG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIHByb3BzRnJvbSA9IHByb3BzVG8ubWFwKGZ1bmN0aW9uIChwcm9wcywgaSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgZnJvbSA9IGNoaWxkcmVuW2ldLnBhcmVudE5vZGUgPT09IHRoaXMkMS50YXJnZXRcbiAgICAgICAgICAgICAgICAgICAgICAgID8gcHJvcHNGcm9tW2ldIHx8IGdldFByb3BzKGNoaWxkcmVuW2ldKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBmYWxzZTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZnJvbSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFwcm9wcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmcm9tLm9wYWNpdHk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCEoJ29wYWNpdHknIGluIHByb3BzKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBvcGFjaXR5ID0gZnJvbS5vcGFjaXR5O1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKG9wYWNpdHkgJSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9wYWNpdHkgPSAxO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmcm9tLm9wYWNpdHk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZyb207XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLnRhcmdldCwgdGFyZ2V0Q2xhc3MpO1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGVsLCBpKSB7IHJldHVybiBwcm9wc0Zyb21baV0gJiYgY3NzKGVsLCBwcm9wc0Zyb21baV0pOyB9KTtcbiAgICAgICAgICAgICAgICBjc3ModGhpcy50YXJnZXQsICdtaW5IZWlnaHQnLCBvbGRIZWlnaHQpO1xuICAgICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGwod2luZG93LnBhZ2VYT2Zmc2V0LCBvbGRTY3JvbGxZKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBQcm9taXNlJDEuYWxsKGNoaWxkcmVuLm1hcChmdW5jdGlvbiAoZWwsIGkpIHsgcmV0dXJuIHByb3BzRnJvbVtpXSAmJiBwcm9wc1RvW2ldXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFRyYW5zaXRpb24uc3RhcnQoZWwsIHByb3BzVG9baV0sIHRoaXMkMS5hbmltYXRpb24sICdlYXNlJylcbiAgICAgICAgICAgICAgICAgICAgICAgIDogUHJvbWlzZSQxLnJlc29sdmUoKTsgfVxuICAgICAgICAgICAgICAgICkuY29uY2F0KFRyYW5zaXRpb24uc3RhcnQodGhpcy50YXJnZXQsIHttaW5IZWlnaHQ6IG5ld0hlaWdodH0sIHRoaXMuYW5pbWF0aW9uLCAnZWFzZScpKSkudGhlbihmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGVsLCBpKSB7IHJldHVybiBjc3MoZWwsIHtkaXNwbGF5OiBwcm9wc1RvW2ldLm9wYWNpdHkgPT09IDAgPyAnbm9uZScgOiAnJywgekluZGV4OiAnJ30pOyB9KTtcbiAgICAgICAgICAgICAgICAgICAgcmVzZXQodGhpcyQxLnRhcmdldCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMkMS4kdXBkYXRlKHRoaXMkMS50YXJnZXQpO1xuICAgICAgICAgICAgICAgIH0sIG5vb3ApO1xuXG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gZ2V0UHJvcHMoZWwsIG9wYWNpdHkpIHtcblxuICAgICAgICB2YXIgekluZGV4ID0gY3NzKGVsLCAnekluZGV4Jyk7XG5cbiAgICAgICAgcmV0dXJuIGlzVmlzaWJsZShlbClcbiAgICAgICAgICAgID8gYXNzaWduKHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5OiAnJyxcbiAgICAgICAgICAgICAgICBvcGFjaXR5OiBvcGFjaXR5ID8gY3NzKGVsLCAnb3BhY2l0eScpIDogJzAnLFxuICAgICAgICAgICAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICAgICAgICB6SW5kZXg6IHpJbmRleCA9PT0gJ2F1dG8nID8gaW5kZXgoZWwpIDogekluZGV4XG4gICAgICAgICAgICB9LCBnZXRQb3NpdGlvbldpdGhNYXJnaW4oZWwpKVxuICAgICAgICAgICAgOiBmYWxzZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiByZXNldChlbCkge1xuICAgICAgICBjc3MoZWwuY2hpbGRyZW4sIHtcbiAgICAgICAgICAgIGhlaWdodDogJycsXG4gICAgICAgICAgICBsZWZ0OiAnJyxcbiAgICAgICAgICAgIG9wYWNpdHk6ICcnLFxuICAgICAgICAgICAgcG9pbnRlckV2ZW50czogJycsXG4gICAgICAgICAgICBwb3NpdGlvbjogJycsXG4gICAgICAgICAgICB0b3A6ICcnLFxuICAgICAgICAgICAgd2lkdGg6ICcnXG4gICAgICAgIH0pO1xuICAgICAgICByZW1vdmVDbGFzcyhlbCwgdGFyZ2V0Q2xhc3MpO1xuICAgICAgICBjc3MoZWwsICdtaW5IZWlnaHQnLCAnJyk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0UG9zaXRpb25XaXRoTWFyZ2luKGVsKSB7XG4gICAgICAgIHZhciByZWYgPSBlbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgdmFyIGhlaWdodCQkMSA9IHJlZi5oZWlnaHQ7XG4gICAgICAgIHZhciB3aWR0aCQkMSA9IHJlZi53aWR0aDtcbiAgICAgICAgdmFyIHJlZiQxID0gcG9zaXRpb24oZWwpO1xuICAgICAgICB2YXIgdG9wID0gcmVmJDEudG9wO1xuICAgICAgICB2YXIgbGVmdCA9IHJlZiQxLmxlZnQ7XG4gICAgICAgIHRvcCArPSB0b0Zsb2F0KGNzcyhlbCwgJ21hcmdpblRvcCcpKTtcblxuICAgICAgICByZXR1cm4ge3RvcDogdG9wLCBsZWZ0OiBsZWZ0LCBoZWlnaHQ6IGhlaWdodCQkMSwgd2lkdGg6IHdpZHRoJCQxfTtcbiAgICB9XG5cbiAgICB2YXIgc3R5bGUkMTtcblxuICAgIGZ1bmN0aW9uIGFkZFN0eWxlKCkge1xuICAgICAgICBpZiAoIXN0eWxlJDEpIHtcbiAgICAgICAgICAgIHN0eWxlJDEgPSBhcHBlbmQoZG9jdW1lbnQuaGVhZCwgJzxzdHlsZT4nKS5zaGVldDtcbiAgICAgICAgICAgIHN0eWxlJDEuaW5zZXJ0UnVsZShcbiAgICAgICAgICAgICAgICAoXCIuXCIgKyB0YXJnZXRDbGFzcyArIFwiID4gKiB7XFxuICAgICAgICAgICAgICAgICAgICBtYXJnaW4tdG9wOiAwICFpbXBvcnRhbnQ7XFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm06IG5vbmUgIWltcG9ydGFudDtcXG4gICAgICAgICAgICAgICAgfVwiKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhciBGaWx0ZXIgPSB7XG5cbiAgICAgICAgbWl4aW5zOiBbQW5pbWF0ZV0sXG5cbiAgICAgICAgYXJnczogJ3RhcmdldCcsXG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIHRhcmdldDogQm9vbGVhbixcbiAgICAgICAgICAgIHNlbEFjdGl2ZTogQm9vbGVhblxuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHRhcmdldDogbnVsbCxcbiAgICAgICAgICAgIHNlbEFjdGl2ZTogZmFsc2UsXG4gICAgICAgICAgICBhdHRySXRlbTogJ3VrLWZpbHRlci1jb250cm9sJyxcbiAgICAgICAgICAgIGNsczogJ3VrLWFjdGl2ZScsXG4gICAgICAgICAgICBhbmltYXRpb246IDI1MFxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIHRvZ2dsZXM6IGZ1bmN0aW9uKHJlZiwgJGVsKSB7XG4gICAgICAgICAgICAgICAgdmFyIGF0dHJJdGVtID0gcmVmLmF0dHJJdGVtO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuICQkKChcIltcIiArICh0aGlzLmF0dHJJdGVtKSArIFwiXSxbZGF0YS1cIiArICh0aGlzLmF0dHJJdGVtKSArIFwiXVwiKSwgJGVsKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHRhcmdldDogZnVuY3Rpb24ocmVmLCAkZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gcmVmLnRhcmdldDtcblxuICAgICAgICAgICAgICAgIHJldHVybiAkKHRhcmdldCwgJGVsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIGV2ZW50czogW1xuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAnY2xpY2snLFxuXG4gICAgICAgICAgICAgICAgZGVsZWdhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFwiW1wiICsgKHRoaXMuYXR0ckl0ZW0pICsgXCJdLFtkYXRhLVwiICsgKHRoaXMuYXR0ckl0ZW0pICsgXCJdXCIpO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5KGUuY3VycmVudCk7XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICBdLFxuXG4gICAgICAgIGNvbm5lY3RlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICBpZiAodGhpcy5zZWxBY3RpdmUgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgYWN0aXZlcyA9ICQkKHRoaXMuc2VsQWN0aXZlLCB0aGlzLiRlbCk7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZXMuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHsgcmV0dXJuIHRvZ2dsZUNsYXNzKGVsLCB0aGlzJDEuY2xzLCBpbmNsdWRlcyhhY3RpdmVzLCBlbCkpOyB9KTtcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGU6IGZ1bmN0aW9uKGRhdGEkJDEpIHtcblxuICAgICAgICAgICAgdmFyIHRvZ2dsZXMgPSBkYXRhJCQxLnRvZ2dsZXM7XG4gICAgICAgICAgICB2YXIgY2hpbGRyZW4gPSBkYXRhJCQxLmNoaWxkcmVuO1xuICAgICAgICAgICAgaWYgKGlzRXF1YWxMaXN0KHRvZ2dsZXMsIHRoaXMudG9nZ2xlcywgZmFsc2UpICYmIGlzRXF1YWxMaXN0KGNoaWxkcmVuLCB0aGlzLnRhcmdldC5jaGlsZHJlbiwgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBkYXRhJCQxLnRvZ2dsZXMgPSB0aGlzLnRvZ2dsZXM7XG4gICAgICAgICAgICBkYXRhJCQxLmNoaWxkcmVuID0gdGhpcy50YXJnZXQuY2hpbGRyZW47XG5cbiAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUodGhpcy5nZXRTdGF0ZSgpLCBmYWxzZSk7XG5cbiAgICAgICAgfSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIGFwcGx5OiBmdW5jdGlvbihlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMuc2V0U3RhdGUobWVyZ2VTdGF0ZShlbCwgdGhpcy5hdHRySXRlbSwgdGhpcy5nZXRTdGF0ZSgpKSk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBnZXRTdGF0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50b2dnbGVzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIoZnVuY3Rpb24gKGl0ZW0pIHsgcmV0dXJuIGhhc0NsYXNzKGl0ZW0sIHRoaXMkMS5jbHMpOyB9KVxuICAgICAgICAgICAgICAgICAgICAucmVkdWNlKGZ1bmN0aW9uIChzdGF0ZSwgZWwpIHsgcmV0dXJuIG1lcmdlU3RhdGUoZWwsIHRoaXMkMS5hdHRySXRlbSwgc3RhdGUpOyB9LCB7ZmlsdGVyOiB7Jyc6ICcnfSwgc29ydDogW119KTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNldFN0YXRlOiBmdW5jdGlvbihzdGF0ZSwgYW5pbWF0ZSQkMSkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGlmICggYW5pbWF0ZSQkMSA9PT0gdm9pZCAwICkgYW5pbWF0ZSQkMSA9IHRydWU7XG5cblxuICAgICAgICAgICAgICAgIHN0YXRlID0gYXNzaWduKHtmaWx0ZXI6IHsnJzogJyd9LCBzb3J0OiBbXX0sIHN0YXRlKTtcblxuICAgICAgICAgICAgICAgIHRyaWdnZXIodGhpcy4kZWwsICdiZWZvcmVGaWx0ZXInLCBbdGhpcywgc3RhdGVdKTtcblxuICAgICAgICAgICAgICAgIHZhciBjaGlsZHJlbiA9IHRvTm9kZXModGhpcy50YXJnZXQuY2hpbGRyZW4pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy50b2dnbGVzLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7IHJldHVybiB0b2dnbGVDbGFzcyhlbCwgdGhpcyQxLmNscywgbWF0Y2hGaWx0ZXIoZWwsIHRoaXMkMS5hdHRySXRlbSwgc3RhdGUpKTsgfSk7XG5cbiAgICAgICAgICAgICAgICB2YXIgYXBwbHkkJDEgPSBmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHNlbGVjdG9yID0gZ2V0U2VsZWN0b3Ioc3RhdGUpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLmZvckVhY2goZnVuY3Rpb24gKGVsKSB7IHJldHVybiBjc3MoZWwsICdkaXNwbGF5Jywgc2VsZWN0b3IgJiYgIW1hdGNoZXMoZWwsIHNlbGVjdG9yKSA/ICdub25lJyA6ICcnKTsgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlZiA9IHN0YXRlLnNvcnQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzb3J0ID0gcmVmWzBdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgb3JkZXIgPSByZWZbMV07XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNvcnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzb3J0ZWQgPSBzb3J0SXRlbXMoY2hpbGRyZW4sIHNvcnQsIG9yZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNFcXVhbExpc3Qoc29ydGVkLCBjaGlsZHJlbikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb3J0ZWQuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHsgcmV0dXJuIGFwcGVuZCh0aGlzJDEudGFyZ2V0LCBlbCk7IH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKGFuaW1hdGUkJDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRlKGFwcGx5JCQxKS50aGVuKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRyaWdnZXIodGhpcyQxLiRlbCwgJ2FmdGVyRmlsdGVyJywgW3RoaXMkMV0pOyB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhcHBseSQkMSgpO1xuICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKHRoaXMuJGVsLCAnYWZ0ZXJGaWx0ZXInLCBbdGhpc10pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRGaWx0ZXIoZWwsIGF0dHIkJDEpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlT3B0aW9ucyhkYXRhKGVsLCBhdHRyJCQxKSwgWydmaWx0ZXInXSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gbWVyZ2VTdGF0ZShlbCwgYXR0ciQkMSwgc3RhdGUpIHtcblxuICAgICAgICB0b05vZGVzKGVsKS5mb3JFYWNoKGZ1bmN0aW9uIChlbCkge1xuICAgICAgICAgICAgdmFyIGZpbHRlckJ5ID0gZ2V0RmlsdGVyKGVsLCBhdHRyJCQxKTtcbiAgICAgICAgICAgIHZhciBmaWx0ZXIkJDEgPSBmaWx0ZXJCeS5maWx0ZXI7XG4gICAgICAgICAgICB2YXIgZ3JvdXAgPSBmaWx0ZXJCeS5ncm91cDtcbiAgICAgICAgICAgIHZhciBzb3J0ID0gZmlsdGVyQnkuc29ydDtcbiAgICAgICAgICAgIHZhciBvcmRlciA9IGZpbHRlckJ5Lm9yZGVyOyBpZiAoIG9yZGVyID09PSB2b2lkIDAgKSBvcmRlciA9ICdhc2MnO1xuXG4gICAgICAgICAgICBpZiAoZmlsdGVyJCQxIHx8IGlzVW5kZWZpbmVkKHNvcnQpKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoZ3JvdXApIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHN0YXRlLmZpbHRlclsnJ107XG4gICAgICAgICAgICAgICAgICAgIHN0YXRlLmZpbHRlcltncm91cF0gPSBmaWx0ZXIkJDE7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhdGUuZmlsdGVyID0geycnOiBmaWx0ZXIkJDF9O1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIWlzVW5kZWZpbmVkKHNvcnQpKSB7XG4gICAgICAgICAgICAgICAgc3RhdGUuc29ydCA9IFtzb3J0LCBvcmRlcl07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtYXRjaEZpbHRlcihlbCwgYXR0ciQkMSwgcmVmKSB7XG4gICAgICAgIHZhciBzdGF0ZUZpbHRlciA9IHJlZi5maWx0ZXI7XG4gICAgICAgIHZhciByZWZfc29ydCA9IHJlZi5zb3J0O1xuICAgICAgICB2YXIgc3RhdGVTb3J0ID0gcmVmX3NvcnRbMF07XG4gICAgICAgIHZhciBzdGF0ZU9yZGVyID0gcmVmX3NvcnRbMV07XG5cbiAgICAgICAgdmFyIHJlZiQxID0gZ2V0RmlsdGVyKGVsLCBhdHRyJCQxKTtcbiAgICAgICAgdmFyIGZpbHRlciQkMSA9IHJlZiQxLmZpbHRlcjtcbiAgICAgICAgdmFyIGdyb3VwID0gcmVmJDEuZ3JvdXA7IGlmICggZ3JvdXAgPT09IHZvaWQgMCApIGdyb3VwID0gJyc7XG4gICAgICAgIHZhciBzb3J0ID0gcmVmJDEuc29ydDtcbiAgICAgICAgdmFyIG9yZGVyID0gcmVmJDEub3JkZXI7IGlmICggb3JkZXIgPT09IHZvaWQgMCApIG9yZGVyID0gJ2FzYyc7XG4gICAgICAgIHJldHVybiBCb29sZWFuKFxuICAgICAgICAgICAgKGZpbHRlciQkMSB8fCBpc1VuZGVmaW5lZChzb3J0KSkgJiYgZ3JvdXAgaW4gc3RhdGVGaWx0ZXIgJiYgKGZpbHRlciQkMSA9PT0gc3RhdGVGaWx0ZXJbZ3JvdXBdIHx8IGlzVW5kZWZpbmVkKGZpbHRlciQkMSkgJiYgIXN0YXRlRmlsdGVyW2dyb3VwXSlcbiAgICAgICAgICAgIHx8IHN0YXRlU29ydCAmJiBzb3J0ICYmIHN0YXRlU29ydCA9PT0gc29ydCAmJiBzdGF0ZU9yZGVyID09PSBvcmRlclxuICAgICAgICApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGlzRXF1YWxMaXN0KGxpc3RBLCBsaXN0Qiwgc3RyaWN0KSB7XG4gICAgICAgIGlmICggc3RyaWN0ID09PSB2b2lkIDAgKSBzdHJpY3QgPSB0cnVlO1xuXG5cbiAgICAgICAgbGlzdEEgPSB0b05vZGVzKGxpc3RBKTtcbiAgICAgICAgbGlzdEIgPSB0b05vZGVzKGxpc3RCKTtcblxuICAgICAgICByZXR1cm4gbGlzdEEubGVuZ3RoID09PSBsaXN0Qi5sZW5ndGhcbiAgICAgICAgICAgICYmIGxpc3RBLmV2ZXJ5KGZ1bmN0aW9uIChlbCwgaSkgeyByZXR1cm4gc3RyaWN0ID8gZWwgPT09IGxpc3RCW2ldIDogfmxpc3RCLmluZGV4T2YoZWwpOyB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTZWxlY3RvcihyZWYpIHtcbiAgICAgICAgdmFyIGZpbHRlciQkMSA9IHJlZi5maWx0ZXI7XG5cbiAgICAgICAgdmFyIHNlbGVjdG9yID0gJyc7XG4gICAgICAgIGVhY2goZmlsdGVyJCQxLCBmdW5jdGlvbiAodmFsdWUpIHsgcmV0dXJuIHNlbGVjdG9yICs9IHZhbHVlIHx8ICcnOyB9KTtcbiAgICAgICAgcmV0dXJuIHNlbGVjdG9yO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNvcnRJdGVtcyhub2Rlcywgc29ydCwgb3JkZXIpIHtcbiAgICAgICAgcmV0dXJuIHRvTm9kZXMobm9kZXMpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHsgcmV0dXJuIGRhdGEoYSwgc29ydCkubG9jYWxlQ29tcGFyZShkYXRhKGIsIHNvcnQpKSAqIChvcmRlciA9PT0gJ2FzYycgfHwgLTEpOyB9KTtcbiAgICB9XG5cbiAgICB2YXIgQW5pbWF0aW9ucyA9IHtcblxuICAgICAgICBzbGlkZToge1xuXG4gICAgICAgICAgICBzaG93OiBmdW5jdGlvbihkaXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB7dHJhbnNmb3JtOiB0cmFuc2xhdGUoZGlyICogLTEwMCl9LFxuICAgICAgICAgICAgICAgICAgICB7dHJhbnNmb3JtOiB0cmFuc2xhdGUoKX1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcGVyY2VudDogZnVuY3Rpb24oY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmFuc2xhdGVkKGN1cnJlbnQpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbihwZXJjZW50LCBkaXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB7dHJhbnNmb3JtOiB0cmFuc2xhdGUoZGlyICogLTEwMCAqIHBlcmNlbnQpfSxcbiAgICAgICAgICAgICAgICAgICAge3RyYW5zZm9ybTogdHJhbnNsYXRlKGRpciAqIDEwMCAqICgxIC0gcGVyY2VudCkpfVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIHRyYW5zbGF0ZWQoZWwpIHtcbiAgICAgICAgcmV0dXJuIE1hdGguYWJzKGNzcyhlbCwgJ3RyYW5zZm9ybScpLnNwbGl0KCcsJylbNF0gLyBlbC5vZmZzZXRXaWR0aCkgfHwgMDtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmFuc2xhdGUodmFsdWUsIHVuaXQpIHtcbiAgICAgICAgaWYgKCB2YWx1ZSA9PT0gdm9pZCAwICkgdmFsdWUgPSAwO1xuICAgICAgICBpZiAoIHVuaXQgPT09IHZvaWQgMCApIHVuaXQgPSAnJSc7XG5cbiAgICAgICAgcmV0dXJuIChcInRyYW5zbGF0ZVgoXCIgKyB2YWx1ZSArICh2YWx1ZSA/IHVuaXQgOiAnJykgKyBcIilcIik7IC8vIGN1cnJlbnRseSBub3QgdHJhbnNsYXRlM2QgdG8gc3VwcG9ydCBJRSwgdHJhbnNsYXRlM2Qgd2l0aGluIHRyYW5zbGF0ZTNkIGRvZXMgbm90IHdvcmsgd2hpbGUgdHJhbnNpdGlvbmluZ1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHNjYWxlM2QodmFsdWUpIHtcbiAgICAgICAgcmV0dXJuIChcInNjYWxlM2QoXCIgKyB2YWx1ZSArIFwiLCBcIiArIHZhbHVlICsgXCIsIDEpXCIpO1xuICAgIH1cblxuICAgIHZhciBBbmltYXRpb25zJDEgPSBhc3NpZ24oe30sIEFuaW1hdGlvbnMsIHtcblxuICAgICAgICBmYWRlOiB7XG5cbiAgICAgICAgICAgIHNob3c6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIHtvcGFjaXR5OiAwfSxcbiAgICAgICAgICAgICAgICAgICAge29wYWNpdHk6IDF9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHBlcmNlbnQ6IGZ1bmN0aW9uKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMSAtIGNzcyhjdXJyZW50LCAnb3BhY2l0eScpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbihwZXJjZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAge29wYWNpdHk6IDEgLSBwZXJjZW50fSxcbiAgICAgICAgICAgICAgICAgICAge29wYWNpdHk6IHBlcmNlbnR9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIHNjYWxlOiB7XG5cbiAgICAgICAgICAgIHNob3c6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgICAgIHtvcGFjaXR5OiAwLCB0cmFuc2Zvcm06IHNjYWxlM2QoMSAtIC4yKX0sXG4gICAgICAgICAgICAgICAgICAgIHtvcGFjaXR5OiAxLCB0cmFuc2Zvcm06IHNjYWxlM2QoMSl9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHBlcmNlbnQ6IGZ1bmN0aW9uKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMSAtIGNzcyhjdXJyZW50LCAnb3BhY2l0eScpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbihwZXJjZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAge29wYWNpdHk6IDEgLSBwZXJjZW50LCB0cmFuc2Zvcm06IHNjYWxlM2QoMSAtIC4yICogcGVyY2VudCl9LFxuICAgICAgICAgICAgICAgICAgICB7b3BhY2l0eTogcGVyY2VudCwgdHJhbnNmb3JtOiBzY2FsZTNkKDEgLSAuMiArIC4yICogcGVyY2VudCl9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9KTtcblxuICAgIGZ1bmN0aW9uIFRyYW5zaXRpb25lcihwcmV2LCBuZXh0LCBkaXIsIHJlZikge1xuICAgICAgICB2YXIgYW5pbWF0aW9uID0gcmVmLmFuaW1hdGlvbjtcbiAgICAgICAgdmFyIGVhc2luZyA9IHJlZi5lYXNpbmc7XG5cblxuICAgICAgICB2YXIgcGVyY2VudCA9IGFuaW1hdGlvbi5wZXJjZW50O1xuICAgICAgICB2YXIgdHJhbnNsYXRlID0gYW5pbWF0aW9uLnRyYW5zbGF0ZTtcbiAgICAgICAgdmFyIHNob3cgPSBhbmltYXRpb24uc2hvdzsgaWYgKCBzaG93ID09PSB2b2lkIDAgKSBzaG93ID0gbm9vcDtcbiAgICAgICAgdmFyIHByb3BzID0gc2hvdyhkaXIpO1xuICAgICAgICB2YXIgZGVmZXJyZWQgPSBuZXcgRGVmZXJyZWQoKTtcblxuICAgICAgICByZXR1cm4ge1xuXG4gICAgICAgICAgICBkaXI6IGRpcixcblxuICAgICAgICAgICAgc2hvdzogZnVuY3Rpb24oZHVyYXRpb24sIHBlcmNlbnQsIGxpbmVhcikge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGlmICggcGVyY2VudCA9PT0gdm9pZCAwICkgcGVyY2VudCA9IDA7XG5cblxuICAgICAgICAgICAgICAgIHZhciB0aW1pbmcgPSBsaW5lYXIgPyAnbGluZWFyJyA6IGVhc2luZztcbiAgICAgICAgICAgICAgICBkdXJhdGlvbiAtPSBNYXRoLnJvdW5kKGR1cmF0aW9uICogY2xhbXAocGVyY2VudCwgLTEsIDEpKTtcblxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlKHBlcmNlbnQpO1xuXG4gICAgICAgICAgICAgICAgdHJpZ2dlclVwZGF0ZShuZXh0LCAnaXRlbWluJywge3BlcmNlbnQ6IHBlcmNlbnQsIGR1cmF0aW9uOiBkdXJhdGlvbiwgdGltaW5nOiB0aW1pbmcsIGRpcjogZGlyfSk7XG4gICAgICAgICAgICAgICAgdHJpZ2dlclVwZGF0ZShwcmV2LCAnaXRlbW91dCcsIHtwZXJjZW50OiAxIC0gcGVyY2VudCwgZHVyYXRpb246IGR1cmF0aW9uLCB0aW1pbmc6IHRpbWluZywgZGlyOiBkaXJ9KTtcblxuICAgICAgICAgICAgICAgIFByb21pc2UkMS5hbGwoW1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2l0aW9uLnN0YXJ0KG5leHQsIHByb3BzWzFdLCBkdXJhdGlvbiwgdGltaW5nKSxcbiAgICAgICAgICAgICAgICAgICAgVHJhbnNpdGlvbi5zdGFydChwcmV2LCBwcm9wc1swXSwgZHVyYXRpb24sIHRpbWluZylcbiAgICAgICAgICAgICAgICBdKS50aGVuKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcyQxLnJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGRlZmVycmVkLnJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LCBub29wKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBkZWZlcnJlZC5wcm9taXNlO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc3RvcDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFRyYW5zaXRpb24uc3RvcChbbmV4dCwgcHJldl0pO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgY2FuY2VsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBUcmFuc2l0aW9uLmNhbmNlbChbbmV4dCwgcHJldl0pO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGZvciAodmFyIHByb3AgaW4gcHJvcHNbMF0pIHtcbiAgICAgICAgICAgICAgICAgICAgY3NzKFtuZXh0LCBwcmV2XSwgcHJvcCwgJycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGZvcndhcmQ6IGZ1bmN0aW9uKGR1cmF0aW9uLCBwZXJjZW50KSB7XG4gICAgICAgICAgICAgICAgaWYgKCBwZXJjZW50ID09PSB2b2lkIDAgKSBwZXJjZW50ID0gdGhpcy5wZXJjZW50KCk7XG5cbiAgICAgICAgICAgICAgICBUcmFuc2l0aW9uLmNhbmNlbChbbmV4dCwgcHJldl0pO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNob3coZHVyYXRpb24sIHBlcmNlbnQsIHRydWUpO1xuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB0cmFuc2xhdGU6IGZ1bmN0aW9uKHBlcmNlbnQpIHtcblxuICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcblxuICAgICAgICAgICAgICAgIHZhciBwcm9wcyA9IHRyYW5zbGF0ZShwZXJjZW50LCBkaXIpO1xuICAgICAgICAgICAgICAgIGNzcyhuZXh0LCBwcm9wc1sxXSk7XG4gICAgICAgICAgICAgICAgY3NzKHByZXYsIHByb3BzWzBdKTtcbiAgICAgICAgICAgICAgICB0cmlnZ2VyVXBkYXRlKG5leHQsICdpdGVtdHJhbnNsYXRlaW4nLCB7cGVyY2VudDogcGVyY2VudCwgZGlyOiBkaXJ9KTtcbiAgICAgICAgICAgICAgICB0cmlnZ2VyVXBkYXRlKHByZXYsICdpdGVtdHJhbnNsYXRlb3V0Jywge3BlcmNlbnQ6IDEgLSBwZXJjZW50LCBkaXI6IGRpcn0pO1xuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBwZXJjZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcGVyY2VudChwcmV2IHx8IG5leHQsIG5leHQsIGRpcik7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBnZXREaXN0YW5jZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHByZXYub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfTtcblxuICAgIH1cblxuICAgIGZ1bmN0aW9uIHRyaWdnZXJVcGRhdGUoZWwsIHR5cGUsIGRhdGEkJDEpIHtcbiAgICAgICAgdHJpZ2dlcihlbCwgY3JlYXRlRXZlbnQodHlwZSwgZmFsc2UsIGZhbHNlLCBkYXRhJCQxKSk7XG4gICAgfVxuXG4gICAgdmFyIFNsaWRlckF1dG9wbGF5ID0ge1xuXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBhdXRvcGxheTogQm9vbGVhbixcbiAgICAgICAgICAgIGF1dG9wbGF5SW50ZXJ2YWw6IE51bWJlcixcbiAgICAgICAgICAgIHBhdXNlT25Ib3ZlcjogQm9vbGVhblxuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGF1dG9wbGF5OiBmYWxzZSxcbiAgICAgICAgICAgIGF1dG9wbGF5SW50ZXJ2YWw6IDcwMDAsXG4gICAgICAgICAgICBwYXVzZU9uSG92ZXI6IHRydWVcbiAgICAgICAgfSxcblxuICAgICAgICBjb25uZWN0ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdGhpcy5zdGFydEF1dG9wbGF5KCk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZGlzY29ubmVjdGVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHRoaXMuc3RvcEF1dG9wbGF5KCk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiBbXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6ICd2aXNpYmlsaXR5Y2hhbmdlJyxcblxuICAgICAgICAgICAgICAgIGVsOiBkb2N1bWVudCxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZG9jdW1lbnQuaGlkZGVuKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3BBdXRvcGxheSgpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydEF1dG9wbGF5KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6IHBvaW50ZXJEb3duLFxuICAgICAgICAgICAgICAgIGhhbmRsZXI6ICdzdG9wQXV0b3BsYXknXG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6ICdtb3VzZWVudGVyJyxcblxuICAgICAgICAgICAgICAgIGZpbHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmF1dG9wbGF5O1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0hvdmVyaW5nID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6ICdtb3VzZWxlYXZlJyxcblxuICAgICAgICAgICAgICAgIGZpbHRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmF1dG9wbGF5O1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0hvdmVyaW5nID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIHN0YXJ0QXV0b3BsYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgICAgICB0aGlzLnN0b3BBdXRvcGxheSgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuYXV0b3BsYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnRlcnZhbCA9IHNldEludGVydmFsKFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKCkgeyByZXR1cm4gISh0aGlzJDEuaXNIb3ZlcmluZyAmJiB0aGlzJDEucGF1c2VPbkhvdmVyKSAmJiAhdGhpcyQxLnN0YWNrLmxlbmd0aCAmJiB0aGlzJDEuc2hvdygnbmV4dCcpOyB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5hdXRvcGxheUludGVydmFsXG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzdG9wQXV0b3BsYXk6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmludGVydmFsKSB7XG4gICAgICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5pbnRlcnZhbCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICB2YXIgU2xpZGVyRHJhZyA9IHtcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICB0aHJlc2hvbGQ6IDEwLFxuICAgICAgICAgICAgcHJldmVudENhdGNoOiBmYWxzZVxuICAgICAgICB9LFxuXG4gICAgICAgIGluaXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgWydzdGFydCcsICdtb3ZlJywgJ2VuZCddLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuXG4gICAgICAgICAgICAgICAgdmFyIGZuID0gdGhpcyQxW2tleV07XG4gICAgICAgICAgICAgICAgdGhpcyQxW2tleV0gPSBmdW5jdGlvbiAoZSkge1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciBwb3MgPSBnZXRQb3MkMShlKS54ICogKGlzUnRsID8gLTEgOiAxKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzJDEucHJldlBvcyA9IHBvcyAhPT0gdGhpcyQxLnBvcyA/IHRoaXMkMS5wb3MgOiB0aGlzJDEucHJldlBvcztcbiAgICAgICAgICAgICAgICAgICAgdGhpcyQxLnBvcyA9IHBvcztcblxuICAgICAgICAgICAgICAgICAgICBmbihlKTtcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICB9LFxuXG4gICAgICAgIGV2ZW50czogW1xuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiBwb2ludGVyRG93bixcblxuICAgICAgICAgICAgICAgIGRlbGVnYXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2xpZGVzU2VsZWN0b3I7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKGUpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWlzVG91Y2goZSkgJiYgaGFzVGV4dE5vZGVzT25seShlLnRhcmdldClcbiAgICAgICAgICAgICAgICAgICAgICAgIHx8IGUuYnV0dG9uID4gMFxuICAgICAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5sZW5ndGggPCAyXG4gICAgICAgICAgICAgICAgICAgICAgICB8fCB0aGlzLnByZXZlbnRDYXRjaFxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhcnQoZSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ2RyYWdzdGFydCcsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIHN0YXJ0OiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgICAgIHRoaXMuZHJhZyA9IHRoaXMucG9zO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuX3RyYW5zaXRpb25lcikge1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGVyY2VudCA9IHRoaXMuX3RyYW5zaXRpb25lci5wZXJjZW50KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhZyArPSB0aGlzLl90cmFuc2l0aW9uZXIuZ2V0RGlzdGFuY2UoKSAqIHRoaXMucGVyY2VudCAqIHRoaXMuZGlyO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zaXRpb25lci50cmFuc2xhdGUodGhpcy5wZXJjZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNpdGlvbmVyLmNhbmNlbCgpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc3RhY2sgPSBbXTtcblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJldkluZGV4ID0gdGhpcy5pbmRleDtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLnVuYmluZE1vdmUgPSBvbihkb2N1bWVudCwgcG9pbnRlck1vdmUsIHRoaXMubW92ZSwge2NhcHR1cmU6IHRydWUsIHBhc3NpdmU6IGZhbHNlfSk7XG4gICAgICAgICAgICAgICAgb24od2luZG93LCAnc2Nyb2xsJywgdGhpcy51bmJpbmRNb3ZlKTtcbiAgICAgICAgICAgICAgICBvbihkb2N1bWVudCwgcG9pbnRlclVwLCB0aGlzLmVuZCwgdHJ1ZSk7XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIG1vdmU6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICAgICAgdmFyIGRpc3RhbmNlID0gdGhpcy5wb3MgLSB0aGlzLmRyYWc7XG5cbiAgICAgICAgICAgICAgICBpZiAoZGlzdGFuY2UgPT09IDAgfHwgdGhpcy5wcmV2UG9zID09PSB0aGlzLnBvcyB8fCAhdGhpcy5kcmFnZ2luZyAmJiBNYXRoLmFicyhkaXN0YW5jZSkgPCB0aGlzLnRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZS5jYW5jZWxhYmxlICYmIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ2dpbmcgPSB0cnVlO1xuICAgICAgICAgICAgICAgIHRoaXMuZGlyID0gKGRpc3RhbmNlIDwgMCA/IDEgOiAtMSk7XG5cbiAgICAgICAgICAgICAgICB2YXIgcmVmID0gdGhpcztcbiAgICAgICAgICAgICAgICB2YXIgc2xpZGVzID0gcmVmLnNsaWRlcztcbiAgICAgICAgICAgICAgICB2YXIgcmVmJDEgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHZhciBwcmV2SW5kZXggPSByZWYkMS5wcmV2SW5kZXg7XG4gICAgICAgICAgICAgICAgdmFyIGRpcyA9IE1hdGguYWJzKGRpc3RhbmNlKTtcbiAgICAgICAgICAgICAgICB2YXIgbmV4dEluZGV4ID0gdGhpcy5nZXRJbmRleChwcmV2SW5kZXggKyB0aGlzLmRpciwgcHJldkluZGV4KTtcbiAgICAgICAgICAgICAgICB2YXIgd2lkdGgkJDEgPSB0aGlzLl9nZXREaXN0YW5jZShwcmV2SW5kZXgsIG5leHRJbmRleCkgfHwgc2xpZGVzW3ByZXZJbmRleF0ub2Zmc2V0V2lkdGg7XG5cbiAgICAgICAgICAgICAgICB3aGlsZSAobmV4dEluZGV4ICE9PSBwcmV2SW5kZXggJiYgZGlzID4gd2lkdGgkJDEpIHtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzJDEuZHJhZyAtPSB3aWR0aCQkMSAqIHRoaXMkMS5kaXI7XG5cbiAgICAgICAgICAgICAgICAgICAgcHJldkluZGV4ID0gbmV4dEluZGV4O1xuICAgICAgICAgICAgICAgICAgICBkaXMgLT0gd2lkdGgkJDE7XG4gICAgICAgICAgICAgICAgICAgIG5leHRJbmRleCA9IHRoaXMkMS5nZXRJbmRleChwcmV2SW5kZXggKyB0aGlzJDEuZGlyLCBwcmV2SW5kZXgpO1xuICAgICAgICAgICAgICAgICAgICB3aWR0aCQkMSA9IHRoaXMkMS5fZ2V0RGlzdGFuY2UocHJldkluZGV4LCBuZXh0SW5kZXgpIHx8IHNsaWRlc1twcmV2SW5kZXhdLm9mZnNldFdpZHRoO1xuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5wZXJjZW50ID0gZGlzIC8gd2lkdGgkJDE7XG5cbiAgICAgICAgICAgICAgICB2YXIgcHJldiA9IHNsaWRlc1twcmV2SW5kZXhdO1xuICAgICAgICAgICAgICAgIHZhciBuZXh0ID0gc2xpZGVzW25leHRJbmRleF07XG4gICAgICAgICAgICAgICAgdmFyIGNoYW5nZWQgPSB0aGlzLmluZGV4ICE9PSBuZXh0SW5kZXg7XG4gICAgICAgICAgICAgICAgdmFyIGVkZ2UgPSBwcmV2SW5kZXggPT09IG5leHRJbmRleDtcblxuICAgICAgICAgICAgICAgIHZhciBpdGVtU2hvd247XG5cbiAgICAgICAgICAgICAgICBbdGhpcy5pbmRleCwgdGhpcy5wcmV2SW5kZXhdLmZpbHRlcihmdW5jdGlvbiAoaSkgeyByZXR1cm4gIWluY2x1ZGVzKFtuZXh0SW5kZXgsIHByZXZJbmRleF0sIGkpOyB9KS5mb3JFYWNoKGZ1bmN0aW9uIChpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRyaWdnZXIoc2xpZGVzW2ldLCAnaXRlbWhpZGRlbicsIFt0aGlzJDFdKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZWRnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbVNob3duID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMkMS5wcmV2SW5kZXggPSBwcmV2SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuaW5kZXggPT09IHByZXZJbmRleCAmJiB0aGlzLnByZXZJbmRleCAhPT0gcHJldkluZGV4IHx8IGl0ZW1TaG93bikge1xuICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKHNsaWRlc1t0aGlzLmluZGV4XSwgJ2l0ZW1zaG93bicsIFt0aGlzXSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2SW5kZXggPSBwcmV2SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5kZXggPSBuZXh0SW5kZXg7XG5cbiAgICAgICAgICAgICAgICAgICAgIWVkZ2UgJiYgdHJpZ2dlcihwcmV2LCAnYmVmb3JlaXRlbWhpZGUnLCBbdGhpc10pO1xuICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKG5leHQsICdiZWZvcmVpdGVtc2hvdycsIFt0aGlzXSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNpdGlvbmVyID0gdGhpcy5fdHJhbnNsYXRlKE1hdGguYWJzKHRoaXMucGVyY2VudCksIHByZXYsICFlZGdlICYmIG5leHQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoYW5nZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgIWVkZ2UgJiYgdHJpZ2dlcihwcmV2LCAnaXRlbWhpZGUnLCBbdGhpc10pO1xuICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyKG5leHQsICdpdGVtc2hvdycsIFt0aGlzXSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBlbmQ6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICAgICAgb2ZmKHdpbmRvdywgJ3Njcm9sbCcsIHRoaXMudW5iaW5kTW92ZSk7XG4gICAgICAgICAgICAgICAgdGhpcy51bmJpbmRNb3ZlKCk7XG4gICAgICAgICAgICAgICAgb2ZmKGRvY3VtZW50LCBwb2ludGVyVXAsIHRoaXMuZW5kLCB0cnVlKTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRyYWdnaW5nKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kcmFnZ2luZyA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaW5kZXggPT09IHRoaXMucHJldkluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBlcmNlbnQgPSAxIC0gdGhpcy5wZXJjZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXIgKj0gLTE7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9zaG93KGZhbHNlLCB0aGlzLmluZGV4LCB0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX3RyYW5zaXRpb25lciA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBkaXJDaGFuZ2UgPSAoaXNSdGwgPyB0aGlzLmRpciAqIChpc1J0bCA/IDEgOiAtMSkgOiB0aGlzLmRpcikgPCAwID09PSB0aGlzLnByZXZQb3MgPiB0aGlzLnBvcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuaW5kZXggPSBkaXJDaGFuZ2UgPyB0aGlzLmluZGV4IDogdGhpcy5wcmV2SW5kZXg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkaXJDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBlcmNlbnQgPSAxIC0gdGhpcy5wZXJjZW50O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3codGhpcy5kaXIgPiAwICYmICFkaXJDaGFuZ2UgfHwgdGhpcy5kaXIgPCAwICYmIGRpckNoYW5nZSA/ICduZXh0JyA6ICdwcmV2aW91cycsIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcHJldmVudENsaWNrKCk7XG5cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdcbiAgICAgICAgICAgICAgICAgICAgPSB0aGlzLnBlcmNlbnRcbiAgICAgICAgICAgICAgICAgICAgPSBudWxsO1xuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGhhc1RleHROb2Rlc09ubHkoZWwpIHtcbiAgICAgICAgcmV0dXJuICFlbC5jaGlsZHJlbi5sZW5ndGggJiYgZWwuY2hpbGROb2Rlcy5sZW5ndGg7XG4gICAgfVxuXG4gICAgdmFyIFNsaWRlck5hdiA9IHtcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBzZWxOYXY6IGZhbHNlXG4gICAgICAgIH0sXG5cbiAgICAgICAgY29tcHV0ZWQ6IHtcblxuICAgICAgICAgICAgbmF2OiBmdW5jdGlvbihyZWYsICRlbCkge1xuICAgICAgICAgICAgICAgIHZhciBzZWxOYXYgPSByZWYuc2VsTmF2O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuICQoc2VsTmF2LCAkZWwpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgbmF2SXRlbVNlbGVjdG9yOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgYXR0ckl0ZW0gPSByZWYuYXR0ckl0ZW07XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gKFwiW1wiICsgYXR0ckl0ZW0gKyBcIl0sW2RhdGEtXCIgKyBhdHRySXRlbSArIFwiXVwiKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIG5hdkl0ZW1zOiBmdW5jdGlvbihfLCAkZWwpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gJCQodGhpcy5uYXZJdGVtU2VsZWN0b3IsICRlbCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGU6IFtcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLm5hdiAmJiB0aGlzLmxlbmd0aCAhPT0gdGhpcy5uYXYuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sKHRoaXMubmF2LCB0aGlzLnNsaWRlcy5tYXAoZnVuY3Rpb24gKF8sIGkpIHsgcmV0dXJuIChcIjxsaSBcIiArICh0aGlzJDEuYXR0ckl0ZW0pICsgXCI9XFxcIlwiICsgaSArIFwiXFxcIj48YSBocmVmPVxcXCIjXFxcIj48L2E+PC9saT5cIik7IH0pLmpvaW4oJycpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRvZ2dsZUNsYXNzKCQkKHRoaXMubmF2SXRlbVNlbGVjdG9yLCB0aGlzLiRlbCkuY29uY2F0KHRoaXMubmF2KSwgJ3VrLWhpZGRlbicsICF0aGlzLm1heEluZGV4KTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZU5hdigpO1xuXG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGV2ZW50czogWydsb2FkJywgJ3Jlc2l6ZSddXG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICBdLFxuXG4gICAgICAgIGV2ZW50czogW1xuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAnY2xpY2snLFxuXG4gICAgICAgICAgICAgICAgZGVsZWdhdGU6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5uYXZJdGVtU2VsZWN0b3I7XG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgICAgICBlLmN1cnJlbnQuYmx1cigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3coZGF0YShlLmN1cnJlbnQsIHRoaXMuYXR0ckl0ZW0pKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6ICdpdGVtc2hvdycsXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogJ3VwZGF0ZU5hdidcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIF0sXG5cbiAgICAgICAgbWV0aG9kczoge1xuXG4gICAgICAgICAgICB1cGRhdGVOYXY6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgICAgICB2YXIgaSA9IHRoaXMuZ2V0VmFsaWRJbmRleCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubmF2SXRlbXMuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgY21kID0gZGF0YShlbCwgdGhpcyQxLmF0dHJJdGVtKTtcblxuICAgICAgICAgICAgICAgICAgICB0b2dnbGVDbGFzcyhlbCwgdGhpcyQxLmNsc0FjdGl2ZSwgdG9OdW1iZXIoY21kKSA9PT0gaSk7XG4gICAgICAgICAgICAgICAgICAgIHRvZ2dsZUNsYXNzKGVsLCAndWstaW52aXNpYmxlJywgdGhpcyQxLmZpbml0ZSAmJiAoY21kID09PSAncHJldmlvdXMnICYmIGkgPT09IDAgfHwgY21kID09PSAnbmV4dCcgJiYgaSA+PSB0aGlzJDEubWF4SW5kZXgpKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICB2YXIgU2xpZGVyID0ge1xuXG4gICAgICAgIGF0dHJzOiB0cnVlLFxuXG4gICAgICAgIG1peGluczogW1NsaWRlckF1dG9wbGF5LCBTbGlkZXJEcmFnLCBTbGlkZXJOYXZdLFxuXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBjbHNBY3RpdmF0ZWQ6IEJvb2xlYW4sXG4gICAgICAgICAgICBlYXNpbmc6IFN0cmluZyxcbiAgICAgICAgICAgIGluZGV4OiBOdW1iZXIsXG4gICAgICAgICAgICBmaW5pdGU6IEJvb2xlYW4sXG4gICAgICAgICAgICB2ZWxvY2l0eTogTnVtYmVyXG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF0YTogZnVuY3Rpb24gKCkgeyByZXR1cm4gKHtcbiAgICAgICAgICAgIGVhc2luZzogJ2Vhc2UnLFxuICAgICAgICAgICAgZmluaXRlOiBmYWxzZSxcbiAgICAgICAgICAgIHZlbG9jaXR5OiAxLFxuICAgICAgICAgICAgaW5kZXg6IDAsXG4gICAgICAgICAgICBzdGFjazogW10sXG4gICAgICAgICAgICBwZXJjZW50OiAwLFxuICAgICAgICAgICAgY2xzQWN0aXZlOiAndWstYWN0aXZlJyxcbiAgICAgICAgICAgIGNsc0FjdGl2YXRlZDogZmFsc2UsXG4gICAgICAgICAgICBUcmFuc2l0aW9uZXI6IGZhbHNlLFxuICAgICAgICAgICAgdHJhbnNpdGlvbk9wdGlvbnM6IHt9XG4gICAgICAgIH0pOyB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIGR1cmF0aW9uOiBmdW5jdGlvbihyZWYsICRlbCkge1xuICAgICAgICAgICAgICAgIHZhciB2ZWxvY2l0eSA9IHJlZi52ZWxvY2l0eTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBzcGVlZFVwKCRlbC5vZmZzZXRXaWR0aCAvIHZlbG9jaXR5KTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGxlbmd0aDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuc2xpZGVzLmxlbmd0aDtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGxpc3Q6IGZ1bmN0aW9uKHJlZiwgJGVsKSB7XG4gICAgICAgICAgICAgICAgdmFyIHNlbExpc3QgPSByZWYuc2VsTGlzdDtcblxuICAgICAgICAgICAgICAgIHJldHVybiAkKHNlbExpc3QsICRlbCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBtYXhJbmRleDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNsaWRlc1NlbGVjdG9yOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2VsTGlzdCA9IHJlZi5zZWxMaXN0O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChzZWxMaXN0ICsgXCIgPiAqXCIpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2xpZGVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdG9Ob2Rlcyh0aGlzLmxpc3QuY2hpbGRyZW4pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiB7XG5cbiAgICAgICAgICAgIGl0ZW1zaG93bjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdGhpcy4kdXBkYXRlKHRoaXMubGlzdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIHNob3c6IGZ1bmN0aW9uKGluZGV4JCQxLCBmb3JjZSkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuICAgICAgICAgICAgICAgIGlmICggZm9yY2UgPT09IHZvaWQgMCApIGZvcmNlID0gZmFsc2U7XG5cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmRyYWdnaW5nIHx8ICF0aGlzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIHJlZiA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmFyIHN0YWNrID0gcmVmLnN0YWNrO1xuICAgICAgICAgICAgICAgIHZhciBxdWV1ZUluZGV4ID0gZm9yY2UgPyAwIDogc3RhY2subGVuZ3RoO1xuICAgICAgICAgICAgICAgIHZhciByZXNldCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgc3RhY2suc3BsaWNlKHF1ZXVlSW5kZXgsIDEpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMkMS5zaG93KHN0YWNrLnNoaWZ0KCksIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHN0YWNrW2ZvcmNlID8gJ3Vuc2hpZnQnIDogJ3B1c2gnXShpbmRleCQkMSk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIWZvcmNlICYmIHN0YWNrLmxlbmd0aCA+IDEpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoc3RhY2subGVuZ3RoID09PSAyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2l0aW9uZXIuZm9yd2FyZChNYXRoLm1pbih0aGlzLmR1cmF0aW9uLCAyMDApKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgcHJldkluZGV4ID0gdGhpcy5pbmRleDtcbiAgICAgICAgICAgICAgICB2YXIgcHJldiA9IGhhc0NsYXNzKHRoaXMuc2xpZGVzLCB0aGlzLmNsc0FjdGl2ZSkgJiYgdGhpcy5zbGlkZXNbcHJldkluZGV4XTtcbiAgICAgICAgICAgICAgICB2YXIgbmV4dEluZGV4ID0gdGhpcy5nZXRJbmRleChpbmRleCQkMSwgdGhpcy5pbmRleCk7XG4gICAgICAgICAgICAgICAgdmFyIG5leHQgPSB0aGlzLnNsaWRlc1tuZXh0SW5kZXhdO1xuXG4gICAgICAgICAgICAgICAgaWYgKHByZXYgPT09IG5leHQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRoaXMuZGlyID0gZ2V0RGlyZWN0aW9uKGluZGV4JCQxLCBwcmV2SW5kZXgpO1xuICAgICAgICAgICAgICAgIHRoaXMucHJldkluZGV4ID0gcHJldkluZGV4O1xuICAgICAgICAgICAgICAgIHRoaXMuaW5kZXggPSBuZXh0SW5kZXg7XG5cbiAgICAgICAgICAgICAgICBwcmV2ICYmIHRyaWdnZXIocHJldiwgJ2JlZm9yZWl0ZW1oaWRlJywgW3RoaXNdKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRyaWdnZXIobmV4dCwgJ2JlZm9yZWl0ZW1zaG93JywgW3RoaXMsIHByZXZdKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluZGV4ID0gdGhpcy5wcmV2SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgIHJlc2V0KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgcHJvbWlzZSA9IHRoaXMuX3Nob3cocHJldiwgbmV4dCwgZm9yY2UpLnRoZW4oZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICAgICAgICAgIHByZXYgJiYgdHJpZ2dlcihwcmV2LCAnaXRlbWhpZGRlbicsIFt0aGlzJDFdKTtcbiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcihuZXh0LCAnaXRlbXNob3duJywgW3RoaXMkMV0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSQxKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmYXN0ZG9tLndyaXRlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFjay5zaGlmdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdGFjay5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLnNob3coc3RhY2suc2hpZnQoKSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLl90cmFuc2l0aW9uZXIgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHByZXYgJiYgdHJpZ2dlcihwcmV2LCAnaXRlbWhpZGUnLCBbdGhpc10pO1xuICAgICAgICAgICAgICAgIHRyaWdnZXIobmV4dCwgJ2l0ZW1zaG93JywgW3RoaXNdKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBwcm9taXNlO1xuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBnZXRJbmRleDogZnVuY3Rpb24oaW5kZXgkJDEsIHByZXYpIHtcbiAgICAgICAgICAgICAgICBpZiAoIGluZGV4JCQxID09PSB2b2lkIDAgKSBpbmRleCQkMSA9IHRoaXMuaW5kZXg7XG4gICAgICAgICAgICAgICAgaWYgKCBwcmV2ID09PSB2b2lkIDAgKSBwcmV2ID0gdGhpcy5pbmRleDtcblxuICAgICAgICAgICAgICAgIHJldHVybiBjbGFtcChnZXRJbmRleChpbmRleCQkMSwgdGhpcy5zbGlkZXMsIHByZXYsIHRoaXMuZmluaXRlKSwgMCwgdGhpcy5tYXhJbmRleCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBnZXRWYWxpZEluZGV4OiBmdW5jdGlvbihpbmRleCQkMSwgcHJldkluZGV4KSB7XG4gICAgICAgICAgICAgICAgaWYgKCBpbmRleCQkMSA9PT0gdm9pZCAwICkgaW5kZXgkJDEgPSB0aGlzLmluZGV4O1xuICAgICAgICAgICAgICAgIGlmICggcHJldkluZGV4ID09PSB2b2lkIDAgKSBwcmV2SW5kZXggPSB0aGlzLnByZXZJbmRleDtcblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEluZGV4KGluZGV4JCQxLCBwcmV2SW5kZXgpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgX3Nob3c6IGZ1bmN0aW9uKHByZXYsIG5leHQsIGZvcmNlKSB7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2l0aW9uZXIgPSB0aGlzLl9nZXRUcmFuc2l0aW9uZXIoXG4gICAgICAgICAgICAgICAgICAgIHByZXYsXG4gICAgICAgICAgICAgICAgICAgIG5leHQsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlyLFxuICAgICAgICAgICAgICAgICAgICBhc3NpZ24oe1xuICAgICAgICAgICAgICAgICAgICAgICAgZWFzaW5nOiBmb3JjZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gbmV4dC5vZmZzZXRXaWR0aCA8IDYwMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdjdWJpYy1iZXppZXIoMC4yNSwgMC40NiwgMC40NSwgMC45NCknIC8qIGVhc2VPdXRRdWFkICovXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ2N1YmljLWJlemllcigwLjE2NSwgMC44NCwgMC40NCwgMSknIC8qIGVhc2VPdXRRdWFydCAqL1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5lYXNpbmdcbiAgICAgICAgICAgICAgICAgICAgfSwgdGhpcy50cmFuc2l0aW9uT3B0aW9ucylcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgaWYgKCFmb3JjZSAmJiAhcHJldikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl90cmFuc2l0aW9uZXIudHJhbnNsYXRlKDEpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZSQxLnJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgcmVmID0gdGhpcy5zdGFjaztcbiAgICAgICAgICAgICAgICB2YXIgbGVuZ3RoID0gcmVmLmxlbmd0aDtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5fdHJhbnNpdGlvbmVyW2xlbmd0aCA+IDEgPyAnZm9yd2FyZCcgOiAnc2hvdyddKGxlbmd0aCA+IDEgPyBNYXRoLm1pbih0aGlzLmR1cmF0aW9uLCA3NSArIDc1IC8gKGxlbmd0aCAtIDEpKSA6IHRoaXMuZHVyYXRpb24sIHRoaXMucGVyY2VudCk7XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIF9nZXREaXN0YW5jZTogZnVuY3Rpb24ocHJldiwgbmV4dCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBuZXcgdGhpcy5fZ2V0VHJhbnNpdGlvbmVyKHByZXYsIHByZXYgIT09IG5leHQgJiYgbmV4dCkuZ2V0RGlzdGFuY2UoKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIF90cmFuc2xhdGU6IGZ1bmN0aW9uKHBlcmNlbnQsIHByZXYsIG5leHQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIHByZXYgPT09IHZvaWQgMCApIHByZXYgPSB0aGlzLnByZXZJbmRleDtcbiAgICAgICAgICAgICAgICBpZiAoIG5leHQgPT09IHZvaWQgMCApIG5leHQgPSB0aGlzLmluZGV4O1xuXG4gICAgICAgICAgICAgICAgdmFyIHRyYW5zaXRpb25lciA9IHRoaXMuX2dldFRyYW5zaXRpb25lcihwcmV2ICE9PSBuZXh0ID8gcHJldiA6IGZhbHNlLCBuZXh0KTtcbiAgICAgICAgICAgICAgICB0cmFuc2l0aW9uZXIudHJhbnNsYXRlKHBlcmNlbnQpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0cmFuc2l0aW9uZXI7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBfZ2V0VHJhbnNpdGlvbmVyOiBmdW5jdGlvbihwcmV2LCBuZXh0LCBkaXIsIG9wdGlvbnMpIHtcbiAgICAgICAgICAgICAgICBpZiAoIHByZXYgPT09IHZvaWQgMCApIHByZXYgPSB0aGlzLnByZXZJbmRleDtcbiAgICAgICAgICAgICAgICBpZiAoIG5leHQgPT09IHZvaWQgMCApIG5leHQgPSB0aGlzLmluZGV4O1xuICAgICAgICAgICAgICAgIGlmICggZGlyID09PSB2b2lkIDAgKSBkaXIgPSB0aGlzLmRpciB8fCAxO1xuICAgICAgICAgICAgICAgIGlmICggb3B0aW9ucyA9PT0gdm9pZCAwICkgb3B0aW9ucyA9IHRoaXMudHJhbnNpdGlvbk9wdGlvbnM7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gbmV3IHRoaXMuVHJhbnNpdGlvbmVyKFxuICAgICAgICAgICAgICAgICAgICBpc051bWJlcihwcmV2KSA/IHRoaXMuc2xpZGVzW3ByZXZdIDogcHJldixcbiAgICAgICAgICAgICAgICAgICAgaXNOdW1iZXIobmV4dCkgPyB0aGlzLnNsaWRlc1tuZXh0XSA6IG5leHQsXG4gICAgICAgICAgICAgICAgICAgIGRpciAqIChpc1J0bCA/IC0xIDogMSksXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXREaXJlY3Rpb24oaW5kZXgkJDEsIHByZXZJbmRleCkge1xuICAgICAgICByZXR1cm4gaW5kZXgkJDEgPT09ICduZXh0J1xuICAgICAgICAgICAgPyAxXG4gICAgICAgICAgICA6IGluZGV4JCQxID09PSAncHJldmlvdXMnXG4gICAgICAgICAgICAgICAgPyAtMVxuICAgICAgICAgICAgICAgIDogaW5kZXgkJDEgPCBwcmV2SW5kZXhcbiAgICAgICAgICAgICAgICAgICAgPyAtMVxuICAgICAgICAgICAgICAgICAgICA6IDE7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc3BlZWRVcCh4KSB7XG4gICAgICAgIHJldHVybiAuNSAqIHggKyAzMDA7IC8vIHBhcmFib2xhIHRocm91Z2ggKDQwMCw1MDA7IDYwMCw2MDA7IDE4MDAsMTIwMClcbiAgICB9XG5cbiAgICB2YXIgU2xpZGVzaG93ID0ge1xuXG4gICAgICAgIG1peGluczogW1NsaWRlcl0sXG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIGFuaW1hdGlvbjogU3RyaW5nXG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgYW5pbWF0aW9uOiAnc2xpZGUnLFxuICAgICAgICAgICAgY2xzQWN0aXZhdGVkOiAndWstdHJhbnNpdGlvbi1hY3RpdmUnLFxuICAgICAgICAgICAgQW5pbWF0aW9uczogQW5pbWF0aW9ucyxcbiAgICAgICAgICAgIFRyYW5zaXRpb25lcjogVHJhbnNpdGlvbmVyXG4gICAgICAgIH0sXG5cbiAgICAgICAgY29tcHV0ZWQ6IHtcblxuICAgICAgICAgICAgYW5pbWF0aW9uOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgYW5pbWF0aW9uID0gcmVmLmFuaW1hdGlvbjtcbiAgICAgICAgICAgICAgICB2YXIgQW5pbWF0aW9ucyQkMSA9IHJlZi5BbmltYXRpb25zO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGFzc2lnbihhbmltYXRpb24gaW4gQW5pbWF0aW9ucyQkMSA/IEFuaW1hdGlvbnMkJDFbYW5pbWF0aW9uXSA6IEFuaW1hdGlvbnMkJDEuc2xpZGUsIHtuYW1lOiBhbmltYXRpb259KTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHRyYW5zaXRpb25PcHRpb25zOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge2FuaW1hdGlvbjogdGhpcy5hbmltYXRpb259O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiB7XG5cbiAgICAgICAgICAgICdpdGVtc2hvdyBpdGVtaGlkZSBpdGVtc2hvd24gaXRlbWhpZGRlbic6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciB0YXJnZXQgPSByZWYudGFyZ2V0O1xuXG4gICAgICAgICAgICAgICAgdGhpcy4kdXBkYXRlKHRhcmdldCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBpdGVtc2hvdzogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgaXNOdW1iZXIodGhpcy5wcmV2SW5kZXgpICYmIGZhc3Rkb20uZmx1c2goKTsgLy8gaU9TIDEwKyB3aWxsIGhvbm9yIHRoZSB2aWRlby5wbGF5IG9ubHkgaWYgY2FsbGVkIGZyb20gYSBnZXN0dXJlIGhhbmRsZXJcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGJlZm9yZWl0ZW1zaG93OiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gcmVmLnRhcmdldDtcblxuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRhcmdldCwgdGhpcy5jbHNBY3RpdmUpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgaXRlbXNob3duOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gcmVmLnRhcmdldDtcblxuICAgICAgICAgICAgICAgIGFkZENsYXNzKHRhcmdldCwgdGhpcy5jbHNBY3RpdmF0ZWQpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgaXRlbWhpZGRlbjogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9IHJlZi50YXJnZXQ7XG5cbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0YXJnZXQsIHRoaXMuY2xzQWN0aXZlLCB0aGlzLmNsc0FjdGl2YXRlZCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIHZhciBMaWdodGJveFBhbmVsID0ge1xuXG4gICAgICAgIG1peGluczogW0NvbnRhaW5lciwgTW9kYWwsIFRvZ2dsYWJsZSwgU2xpZGVzaG93XSxcblxuICAgICAgICBmdW5jdGlvbmFsOiB0cnVlLFxuXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBkZWxheUNvbnRyb2xzOiBOdW1iZXIsXG4gICAgICAgICAgICBwcmVsb2FkOiBOdW1iZXIsXG4gICAgICAgICAgICB2aWRlb0F1dG9wbGF5OiBCb29sZWFuLFxuICAgICAgICAgICAgdGVtcGxhdGU6IFN0cmluZ1xuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IGZ1bmN0aW9uICgpIHsgcmV0dXJuICh7XG4gICAgICAgICAgICBwcmVsb2FkOiAxLFxuICAgICAgICAgICAgdmlkZW9BdXRvcGxheTogZmFsc2UsXG4gICAgICAgICAgICBkZWxheUNvbnRyb2xzOiAzMDAwLFxuICAgICAgICAgICAgaXRlbXM6IFtdLFxuICAgICAgICAgICAgY2xzOiAndWstb3BlbicsXG4gICAgICAgICAgICBjbHNQYWdlOiAndWstbGlnaHRib3gtcGFnZScsXG4gICAgICAgICAgICBzZWxMaXN0OiAnLnVrLWxpZ2h0Ym94LWl0ZW1zJyxcbiAgICAgICAgICAgIGF0dHJJdGVtOiAndWstbGlnaHRib3gtaXRlbScsXG4gICAgICAgICAgICBzZWxDbG9zZTogJy51ay1jbG9zZS1sYXJnZScsXG4gICAgICAgICAgICBwYXVzZU9uSG92ZXI6IGZhbHNlLFxuICAgICAgICAgICAgdmVsb2NpdHk6IDIsXG4gICAgICAgICAgICBBbmltYXRpb25zOiBBbmltYXRpb25zJDEsXG4gICAgICAgICAgICB0ZW1wbGF0ZTogXCI8ZGl2IGNsYXNzPVxcXCJ1ay1saWdodGJveCB1ay1vdmVyZmxvdy1oaWRkZW5cXFwiPiA8dWwgY2xhc3M9XFxcInVrLWxpZ2h0Ym94LWl0ZW1zXFxcIj48L3VsPiA8ZGl2IGNsYXNzPVxcXCJ1ay1saWdodGJveC10b29sYmFyIHVrLXBvc2l0aW9uLXRvcCB1ay10ZXh0LXJpZ2h0IHVrLXRyYW5zaXRpb24tc2xpZGUtdG9wIHVrLXRyYW5zaXRpb24tb3BhcXVlXFxcIj4gPGJ1dHRvbiBjbGFzcz1cXFwidWstbGlnaHRib3gtdG9vbGJhci1pY29uIHVrLWNsb3NlLWxhcmdlXFxcIiB0eXBlPVxcXCJidXR0b25cXFwiIHVrLWNsb3NlPjwvYnV0dG9uPiA8L2Rpdj4gPGEgY2xhc3M9XFxcInVrLWxpZ2h0Ym94LWJ1dHRvbiB1ay1wb3NpdGlvbi1jZW50ZXItbGVmdCB1ay1wb3NpdGlvbi1tZWRpdW0gdWstdHJhbnNpdGlvbi1mYWRlXFxcIiBocmVmPVxcXCIjXFxcIiB1ay1zbGlkZW5hdi1wcmV2aW91cyB1ay1saWdodGJveC1pdGVtPVxcXCJwcmV2aW91c1xcXCI+PC9hPiA8YSBjbGFzcz1cXFwidWstbGlnaHRib3gtYnV0dG9uIHVrLXBvc2l0aW9uLWNlbnRlci1yaWdodCB1ay1wb3NpdGlvbi1tZWRpdW0gdWstdHJhbnNpdGlvbi1mYWRlXFxcIiBocmVmPVxcXCIjXFxcIiB1ay1zbGlkZW5hdi1uZXh0IHVrLWxpZ2h0Ym94LWl0ZW09XFxcIm5leHRcXFwiPjwvYT4gPGRpdiBjbGFzcz1cXFwidWstbGlnaHRib3gtdG9vbGJhciB1ay1saWdodGJveC1jYXB0aW9uIHVrLXBvc2l0aW9uLWJvdHRvbSB1ay10ZXh0LWNlbnRlciB1ay10cmFuc2l0aW9uLXNsaWRlLWJvdHRvbSB1ay10cmFuc2l0aW9uLW9wYXF1ZVxcXCI+PC9kaXY+IDwvZGl2PlwiXG4gICAgICAgIH0pOyB9LFxuXG4gICAgICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgdGhpcy4kbW91bnQoYXBwZW5kKHRoaXMuY29udGFpbmVyLCB0aGlzLnRlbXBsYXRlKSk7XG5cbiAgICAgICAgICAgIHRoaXMuY2FwdGlvbiA9ICQoJy51ay1saWdodGJveC1jYXB0aW9uJywgdGhpcy4kZWwpO1xuXG4gICAgICAgICAgICB0aGlzLml0ZW1zLmZvckVhY2goZnVuY3Rpb24gKCkgeyByZXR1cm4gYXBwZW5kKHRoaXMkMS5saXN0LCAnPGxpPjwvbGk+Jyk7IH0pO1xuXG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiBbXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6IChwb2ludGVyTW92ZSArIFwiIFwiICsgcG9pbnRlckRvd24gKyBcIiBrZXlkb3duXCIpLFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogJ3Nob3dDb250cm9scydcblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ2NsaWNrJyxcblxuICAgICAgICAgICAgICAgIHNlbGY6IHRydWUsXG5cbiAgICAgICAgICAgICAgICBkZWxlZ2F0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNsaWRlc1NlbGVjdG9yO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAnc2hvd24nLFxuXG4gICAgICAgICAgICAgICAgc2VsZjogdHJ1ZSxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6ICdzaG93Q29udHJvbHMnXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB7XG5cbiAgICAgICAgICAgICAgICBuYW1lOiAnaGlkZScsXG5cbiAgICAgICAgICAgICAgICBzZWxmOiB0cnVlLFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlQ29udHJvbHMoKTtcblxuICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLnNsaWRlcywgdGhpcy5jbHNBY3RpdmUpO1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2l0aW9uLnN0b3AodGhpcy5zbGlkZXMpO1xuXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ2tleXVwJyxcblxuICAgICAgICAgICAgICAgIGVsOiBkb2N1bWVudCxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKGUpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMuaXNUb2dnbGVkKHRoaXMuJGVsKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChlLmtleUNvZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgMzc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCdwcmV2aW91cycpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAzOTpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3coJ25leHQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6ICdiZWZvcmVpdGVtc2hvdycsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMuaXNUb2dnbGVkKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucHJldmVudENhdGNoID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b2dnbGVOb3codGhpcy4kZWwsIHRydWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYW5pbWF0aW9uID0gQW5pbWF0aW9ucyQxWydzY2FsZSddO1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyhlLnRhcmdldCwgdGhpcy5jbHNBY3RpdmUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YWNrLnNwbGljZSgxLCAwLCB0aGlzLmluZGV4KTtcblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ2l0ZW1zaG93JyxcblxuICAgICAgICAgICAgICAgIGhhbmRsZXI6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9IHJlZi50YXJnZXQ7XG5cblxuICAgICAgICAgICAgICAgICAgICB2YXIgaSA9IGluZGV4KHRhcmdldCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZWYkMSA9IHRoaXMuZ2V0SXRlbShpKTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGNhcHRpb24gPSByZWYkMS5jYXB0aW9uO1xuXG4gICAgICAgICAgICAgICAgICAgIGNzcyh0aGlzLmNhcHRpb24sICdkaXNwbGF5JywgY2FwdGlvbiA/ICcnIDogJ25vbmUnKTtcbiAgICAgICAgICAgICAgICAgICAgaHRtbCh0aGlzLmNhcHRpb24sIGNhcHRpb24pO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGogPSAwOyBqIDw9IHRoaXMucHJlbG9hZDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzJDEubG9hZEl0ZW0odGhpcyQxLmdldEluZGV4KGkgKyBqKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzJDEubG9hZEl0ZW0odGhpcyQxLmdldEluZGV4KGkgLSBqKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgbmFtZTogJ2l0ZW1zaG93bicsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmV2ZW50Q2F0Y2ggPSBmYWxzZTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6ICdpdGVtbG9hZCcsXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihfLCBpdGVtKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHNvdXJjZSA9IGl0ZW0uc291cmNlO1xuICAgICAgICAgICAgICAgICAgICB2YXIgdHlwZSA9IGl0ZW0udHlwZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFsdCA9IGl0ZW0uYWx0O1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0SXRlbShpdGVtLCAnPHNwYW4gdWstc3Bpbm5lcj48L3NwYW4+Jyk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFzb3VyY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHZhciBtYXRjaGVzJCQxO1xuXG4gICAgICAgICAgICAgICAgICAgIC8vIEltYWdlXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlID09PSAnaW1hZ2UnIHx8IHNvdXJjZS5tYXRjaCgvXFwuKGpwKGUpP2d8cG5nfGdpZnxzdmcpKCR8XFw/KS9pKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBnZXRJbWFnZShzb3VyY2UpLnRoZW4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKGltZykgeyByZXR1cm4gdGhpcyQxLnNldEl0ZW0oaXRlbSwgKFwiPGltZyB3aWR0aD1cXFwiXCIgKyAoaW1nLndpZHRoKSArIFwiXFxcIiBoZWlnaHQ9XFxcIlwiICsgKGltZy5oZWlnaHQpICsgXCJcXFwiIHNyYz1cXFwiXCIgKyBzb3VyY2UgKyBcIlxcXCIgYWx0PVxcXCJcIiArIChhbHQgPyBhbHQgOiAnJykgKyBcIlxcXCI+XCIpKTsgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzJDEuc2V0RXJyb3IoaXRlbSk7IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZpZGVvXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ3ZpZGVvJyB8fCBzb3VyY2UubWF0Y2goL1xcLihtcDR8d2VibXxvZ3YpKCR8XFw/KS9pKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgdmlkZW8gPSAkKChcIjx2aWRlbyBjb250cm9scyBwbGF5c2lubGluZVwiICsgKGl0ZW0ucG9zdGVyID8gKFwiIHBvc3Rlcj1cXFwiXCIgKyAoaXRlbS5wb3N0ZXIpICsgXCJcXFwiXCIpIDogJycpICsgXCIgdWstdmlkZW89XFxcIlwiICsgKHRoaXMudmlkZW9BdXRvcGxheSkgKyBcIlxcXCI+PC92aWRlbz5cIikpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYXR0cih2aWRlbywgJ3NyYycsIHNvdXJjZSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uKHZpZGVvLCAnZXJyb3InLCBmdW5jdGlvbiAoKSB7IHJldHVybiB0aGlzJDEuc2V0RXJyb3IoaXRlbSk7IH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgb24odmlkZW8sICdsb2FkZWRtZXRhZGF0YScsIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhdHRyKHZpZGVvLCB7d2lkdGg6IHZpZGVvLnZpZGVvV2lkdGgsIGhlaWdodDogdmlkZW8udmlkZW9IZWlnaHR9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzJDEuc2V0SXRlbShpdGVtLCB2aWRlbyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gSWZyYW1lXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAodHlwZSA9PT0gJ2lmcmFtZScgfHwgc291cmNlLm1hdGNoKC9cXC4oaHRtbHxwaHApKCR8XFw/KS9pKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEl0ZW0oaXRlbSwgKFwiPGlmcmFtZSBjbGFzcz1cXFwidWstbGlnaHRib3gtaWZyYW1lXFxcIiBzcmM9XFxcIlwiICsgc291cmNlICsgXCJcXFwiIGZyYW1lYm9yZGVyPVxcXCIwXFxcIiBhbGxvd2Z1bGxzY3JlZW4+PC9pZnJhbWU+XCIpKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gWW91VHViZVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKChtYXRjaGVzJCQxID0gc291cmNlLm1hdGNoKC9cXC9cXC8uKj95b3V0dWJlKC1ub2Nvb2tpZSk/XFwuW2Etel0rXFwvd2F0Y2hcXD92PShbXiZcXHNdKykvKSB8fCBzb3VyY2UubWF0Y2goLygpeW91dHVcXC5iZVxcLyguKikvKSkpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGlkID0gbWF0Y2hlcyQkMVsyXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzZXRJZnJhbWUgPSBmdW5jdGlvbiAod2lkdGgkJDEsIGhlaWdodCQkMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggd2lkdGgkJDEgPT09IHZvaWQgMCApIHdpZHRoJCQxID0gNjQwO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICggaGVpZ2h0JCQxID09PSB2b2lkIDAgKSBoZWlnaHQkJDEgPSA0NTA7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcyQxLnNldEl0ZW0oaXRlbSwgZ2V0SWZyYW1lKChcImh0dHBzOi8vd3d3LnlvdXR1YmVcIiArIChtYXRjaGVzJCQxWzFdIHx8ICcnKSArIFwiLmNvbS9lbWJlZC9cIiArIGlkKSwgd2lkdGgkJDEsIGhlaWdodCQkMSwgdGhpcyQxLnZpZGVvQXV0b3BsYXkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGdldEltYWdlKChcImh0dHBzOi8vaW1nLnlvdXR1YmUuY29tL3ZpL1wiICsgaWQgKyBcIi9tYXhyZXNkZWZhdWx0LmpwZ1wiKSkudGhlbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB3aWR0aCQkMSA9IHJlZi53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhlaWdodCQkMSA9IHJlZi5oZWlnaHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gWW91VHViZSBkZWZhdWx0IDQwNCB0aHVtYiwgZmFsbCBiYWNrIHRvIGxvdyByZXNvbHV0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3aWR0aCQkMSA9PT0gMTIwICYmIGhlaWdodCQkMSA9PT0gOTApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdldEltYWdlKChcImh0dHBzOi8vaW1nLnlvdXR1YmUuY29tL3ZpL1wiICsgaWQgKyBcIi8wLmpwZ1wiKSkudGhlbihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciB3aWR0aCQkMSA9IHJlZi53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhlaWdodCQkMSA9IHJlZi5oZWlnaHQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNldElmcmFtZSh3aWR0aCQkMSwgaGVpZ2h0JCQxKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SWZyYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0SWZyYW1lKHdpZHRoJCQxLCBoZWlnaHQkJDEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRJZnJhbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFZpbWVvXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKG1hdGNoZXMkJDEgPSBzb3VyY2UubWF0Y2goLyhcXC9cXC8uKj8pdmltZW9cXC5bYS16XStcXC8oWzAtOV0rKS4qPy8pKSkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBhamF4KChcImh0dHBzOi8vdmltZW8uY29tL2FwaS9vZW1iZWQuanNvbj9tYXh3aWR0aD0xOTIwJnVybD1cIiArIChlbmNvZGVVUkkoc291cmNlKSkpLCB7cmVzcG9uc2VUeXBlOiAnanNvbicsIHdpdGhDcmVkZW50aWFsczogZmFsc2V9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiAocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVmX3Jlc3BvbnNlID0gcmVmLnJlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGhlaWdodCQkMSA9IHJlZl9yZXNwb25zZS5oZWlnaHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgd2lkdGgkJDEgPSByZWZfcmVzcG9uc2Uud2lkdGg7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzJDEuc2V0SXRlbShpdGVtLCBnZXRJZnJhbWUoKFwiaHR0cHM6Ly9wbGF5ZXIudmltZW8uY29tL3ZpZGVvL1wiICsgKG1hdGNoZXMkJDFbMl0pKSwgd2lkdGgkJDEsIGhlaWdodCQkMSwgdGhpcyQxLnZpZGVvQXV0b3BsYXkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsgcmV0dXJuIHRoaXMkMS5zZXRFcnJvcihpdGVtKTsgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIGxvYWRJdGVtOiBmdW5jdGlvbihpbmRleCQkMSkge1xuICAgICAgICAgICAgICAgIGlmICggaW5kZXgkJDEgPT09IHZvaWQgMCApIGluZGV4JCQxID0gdGhpcy5pbmRleDtcblxuXG4gICAgICAgICAgICAgICAgdmFyIGl0ZW0gPSB0aGlzLmdldEl0ZW0oaW5kZXgkJDEpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGl0ZW0uY29udGVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdHJpZ2dlcih0aGlzLiRlbCwgJ2l0ZW1sb2FkJywgW2l0ZW1dKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGdldEl0ZW06IGZ1bmN0aW9uKGluZGV4JCQxKSB7XG4gICAgICAgICAgICAgICAgaWYgKCBpbmRleCQkMSA9PT0gdm9pZCAwICkgaW5kZXgkJDEgPSB0aGlzLmluZGV4O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbXNbaW5kZXgkJDFdIHx8IHt9O1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2V0SXRlbTogZnVuY3Rpb24oaXRlbSwgY29udGVudCkge1xuICAgICAgICAgICAgICAgIGFzc2lnbihpdGVtLCB7Y29udGVudDogY29udGVudH0pO1xuICAgICAgICAgICAgICAgIHZhciBlbCA9IGh0bWwodGhpcy5zbGlkZXNbdGhpcy5pdGVtcy5pbmRleE9mKGl0ZW0pXSwgY29udGVudCk7XG4gICAgICAgICAgICAgICAgdHJpZ2dlcih0aGlzLiRlbCwgJ2l0ZW1sb2FkZWQnLCBbdGhpcywgZWxdKTtcbiAgICAgICAgICAgICAgICB0aGlzLiR1cGRhdGUoZWwpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2V0RXJyb3I6IGZ1bmN0aW9uKGl0ZW0pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNldEl0ZW0oaXRlbSwgJzxzcGFuIHVrLWljb249XCJpY29uOiBib2x0OyByYXRpbzogMlwiPjwvc3Bhbj4nKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNob3dDb250cm9sczogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5jb250cm9sc1RpbWVyKTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRyb2xzVGltZXIgPSBzZXRUaW1lb3V0KHRoaXMuaGlkZUNvbnRyb2xzLCB0aGlzLmRlbGF5Q29udHJvbHMpO1xuXG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kZWwsICd1ay1hY3RpdmUnLCAndWstdHJhbnNpdGlvbi1hY3RpdmUnKTtcblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgaGlkZUNvbnRyb2xzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLiRlbCwgJ3VrLWFjdGl2ZScsICd1ay10cmFuc2l0aW9uLWFjdGl2ZScpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBnZXRJZnJhbWUoc3JjLCB3aWR0aCQkMSwgaGVpZ2h0JCQxLCBhdXRvcGxheSkge1xuICAgICAgICByZXR1cm4gKFwiPGlmcmFtZSBzcmM9XFxcIlwiICsgc3JjICsgXCJcXFwiIHdpZHRoPVxcXCJcIiArIHdpZHRoJCQxICsgXCJcXFwiIGhlaWdodD1cXFwiXCIgKyBoZWlnaHQkJDEgKyBcIlxcXCIgc3R5bGU9XFxcIm1heC13aWR0aDogMTAwJTsgYm94LXNpemluZzogYm9yZGVyLWJveDtcXFwiIGZyYW1lYm9yZGVyPVxcXCIwXFxcIiBhbGxvd2Z1bGxzY3JlZW4gdWstdmlkZW89XFxcImF1dG9wbGF5OiBcIiArIGF1dG9wbGF5ICsgXCJcXFwiIHVrLXJlc3BvbnNpdmU+PC9pZnJhbWU+XCIpO1xuICAgIH1cblxuICAgIHZhciBwcm9wcyA9IG1lcmdlKExpZ2h0Ym94UGFuZWwsICdwcm9wcycpO1xuICAgIHZhciBkZWZhdWx0cyA9IG1lcmdlKExpZ2h0Ym94UGFuZWwsICdkYXRhJyk7XG5cbiAgICB2YXIgTGlnaHRib3ggPSB7XG5cbiAgICAgICAgaW5zdGFsbDogaW5zdGFsbCQyLFxuXG4gICAgICAgIGF0dHJzOiB0cnVlLFxuXG4gICAgICAgIHByb3BzOiBhc3NpZ24oe3RvZ2dsZTogU3RyaW5nfSwgcHJvcHMpLFxuXG4gICAgICAgIGRhdGE6IGFzc2lnbih7dG9nZ2xlOiAnYSd9LCBPYmplY3Qua2V5cyhwcm9wcykucmVkdWNlKGZ1bmN0aW9uIChkYXRhJCQxLCBrZXkpIHtcbiAgICAgICAgICAgIGRhdGEkJDFba2V5XSA9IGRlZmF1bHRzW2tleV07XG4gICAgICAgICAgICByZXR1cm4gZGF0YSQkMTtcbiAgICAgICAgfSwge30pKSxcblxuICAgICAgICBjb21wdXRlZDoge1xuXG4gICAgICAgICAgICB0b2dnbGVzOiBmdW5jdGlvbihyZWYsICRlbCkge1xuICAgICAgICAgICAgICAgIHZhciB0b2dnbGUgPSByZWYudG9nZ2xlO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuICQkKHRvZ2dsZSwgJGVsKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIGRpc2Nvbm5lY3RlZDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB0aGlzLl9kZXN0cm95KCk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiBbXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6ICdjbGljaycsXG5cbiAgICAgICAgICAgICAgICBkZWxlZ2F0ZTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoKHRoaXMudG9nZ2xlKSArIFwiOm5vdCgudWstZGlzYWJsZWQpXCIpO1xuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBoYW5kbGVyOiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICAgICAgZS5jdXJyZW50LmJsdXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KGluZGV4KHRoaXMudG9nZ2xlcywgZS5jdXJyZW50KSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXSxcblxuICAgICAgICB1cGRhdGU6IGZ1bmN0aW9uKGRhdGEkJDEpIHtcblxuICAgICAgICAgICAgZGF0YSQkMS50b2dnbGVzID0gZGF0YSQkMS50b2dnbGVzIHx8IHRoaXMudG9nZ2xlcztcblxuICAgICAgICAgICAgaWYgKHRoaXMucGFuZWwgJiYgdGhpcy5hbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsLiRwcm9wcy5hbmltYXRpb24gPSB0aGlzLmFuaW1hdGlvbjtcbiAgICAgICAgICAgICAgICB0aGlzLnBhbmVsLiRlbWl0KCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5wYW5lbCB8fCBpc0VxdWFsTGlzdCQxKGRhdGEkJDEudG9nZ2xlcywgdGhpcy50b2dnbGVzKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGF0YSQkMS50b2dnbGVzID0gdGhpcy50b2dnbGVzO1xuICAgICAgICAgICAgdGhpcy5fZGVzdHJveSgpO1xuICAgICAgICAgICAgdGhpcy5faW5pdCgpO1xuXG4gICAgICAgIH0sXG5cbiAgICAgICAgbWV0aG9kczoge1xuXG4gICAgICAgICAgICBfaW5pdDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMucGFuZWwgPSB0aGlzLnBhbmVsIHx8IHRoaXMuJGNyZWF0ZSgnbGlnaHRib3hQYW5lbCcsIGFzc2lnbih7fSwgdGhpcy4kcHJvcHMsIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbXM6IHRoaXMudG9nZ2xlcy5yZWR1Y2UoZnVuY3Rpb24gKGl0ZW1zLCBlbCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMucHVzaChbJ2hyZWYnLCAnY2FwdGlvbicsICd0eXBlJywgJ3Bvc3RlcicsICdhbHQnXS5yZWR1Y2UoZnVuY3Rpb24gKG9iaiwgYXR0ciQkMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ialthdHRyJCQxID09PSAnaHJlZicgPyAnc291cmNlJyA6IGF0dHIkJDFdID0gZGF0YShlbCwgYXR0ciQkMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9iajtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0sIHt9KSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgICAgICAgICAgICAgICAgIH0sIFtdKVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIF9kZXN0cm95OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5wYW5lbCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhbmVsLiRkZXN0cm95KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBhbmVsID0gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBzaG93OiBmdW5jdGlvbihpbmRleCQkMSkge1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnBhbmVsKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2luaXQoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYW5lbC5zaG93KGluZGV4JCQxKTtcblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgaGlkZTogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5wYW5lbCAmJiB0aGlzLnBhbmVsLmhpZGUoKTtcblxuICAgICAgICAgICAgfVxuXG4gICAgICAgIH1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBpc0VxdWFsTGlzdCQxKGxpc3RBLCBsaXN0Qikge1xuICAgICAgICByZXR1cm4gbGlzdEEubGVuZ3RoID09PSBsaXN0Qi5sZW5ndGhcbiAgICAgICAgICAgICYmIGxpc3RBLmV2ZXJ5KGZ1bmN0aW9uIChlbCwgaSkgeyByZXR1cm4gZWwgPT09IGxpc3RCW2ldOyB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBtZXJnZShvcHRpb25zLCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBhc3NpZ24uYXBwbHkoXG4gICAgICAgICAgICB2b2lkIDAsIFsge30gXS5jb25jYXQoIChvcHRpb25zLm1peGlucyA/IG9wdGlvbnMubWl4aW5zLm1hcChmdW5jdGlvbiAobWl4aW4pIHsgcmV0dXJuIG1lcmdlKG1peGluLCBwcm9wKTsgfSkgOiBbXSksXG4gICAgICAgICAgICBbaXNGdW5jdGlvbihvcHRpb25zW3Byb3BdKSA/IG9wdGlvbnNbcHJvcF0oKSA6IG9wdGlvbnNbcHJvcF1dICkpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGluc3RhbGwkMihVSWtpdCkge1xuICAgICAgICBpZiAoIVVJa2l0LmxpZ2h0Ym94UGFuZWwpIHtcbiAgICAgICAgICAgIFVJa2l0LmNvbXBvbmVudCgnbGlnaHRib3hQYW5lbCcsIExpZ2h0Ym94UGFuZWwpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdmFyIG9iajtcblxuICAgIHZhciBjb250YWluZXJzID0ge307XG5cbiAgICB2YXIgTm90aWZpY2F0aW9uID0ge1xuXG4gICAgICAgIGZ1bmN0aW9uYWw6IHRydWUsXG5cbiAgICAgICAgYXJnczogWydtZXNzYWdlJywgJ3N0YXR1cyddLFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIG1lc3NhZ2U6ICcnLFxuICAgICAgICAgICAgc3RhdHVzOiAnJyxcbiAgICAgICAgICAgIHRpbWVvdXQ6IDUwMDAsXG4gICAgICAgICAgICBncm91cDogbnVsbCxcbiAgICAgICAgICAgIHBvczogJ3RvcC1jZW50ZXInLFxuICAgICAgICAgICAgY2xzQ2xvc2U6ICd1ay1ub3RpZmljYXRpb24tY2xvc2UnLFxuICAgICAgICAgICAgY2xzTXNnOiAndWstbm90aWZpY2F0aW9uLW1lc3NhZ2UnXG4gICAgICAgIH0sXG5cbiAgICAgICAgaW5zdGFsbDogaW5zdGFsbCQzLFxuXG4gICAgICAgIGNyZWF0ZWQ6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICBpZiAoIWNvbnRhaW5lcnNbdGhpcy5wb3NdKSB7XG4gICAgICAgICAgICAgICAgY29udGFpbmVyc1t0aGlzLnBvc10gPSBhcHBlbmQodGhpcy4kY29udGFpbmVyLCAoXCI8ZGl2IGNsYXNzPVxcXCJ1ay1ub3RpZmljYXRpb24gdWstbm90aWZpY2F0aW9uLVwiICsgKHRoaXMucG9zKSArIFwiXFxcIj48L2Rpdj5cIikpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB2YXIgY29udGFpbmVyID0gY3NzKGNvbnRhaW5lcnNbdGhpcy5wb3NdLCAnZGlzcGxheScsICdibG9jaycpO1xuXG4gICAgICAgICAgICB0aGlzLiRtb3VudChhcHBlbmQoY29udGFpbmVyLFxuICAgICAgICAgICAgICAgIChcIjxkaXYgY2xhc3M9XFxcIlwiICsgKHRoaXMuY2xzTXNnKSArICh0aGlzLnN0YXR1cyA/IChcIiBcIiArICh0aGlzLmNsc01zZykgKyBcIi1cIiArICh0aGlzLnN0YXR1cykpIDogJycpICsgXCJcXFwiPiA8YSBocmVmPVxcXCIjXFxcIiBjbGFzcz1cXFwiXCIgKyAodGhpcy5jbHNDbG9zZSkgKyBcIlxcXCIgZGF0YS11ay1jbG9zZT48L2E+IDxkaXY+XCIgKyAodGhpcy5tZXNzYWdlKSArIFwiPC9kaXY+IDwvZGl2PlwiKVxuICAgICAgICAgICAgKSk7XG5cbiAgICAgICAgfSxcblxuICAgICAgICByZWFkeTogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICB2YXIgbWFyZ2luQm90dG9tID0gdG9GbG9hdChjc3ModGhpcy4kZWwsICdtYXJnaW5Cb3R0b20nKSk7XG4gICAgICAgICAgICBUcmFuc2l0aW9uLnN0YXJ0KFxuICAgICAgICAgICAgICAgIGNzcyh0aGlzLiRlbCwge29wYWNpdHk6IDAsIG1hcmdpblRvcDogLXRoaXMuJGVsLm9mZnNldEhlaWdodCwgbWFyZ2luQm90dG9tOiAwfSksXG4gICAgICAgICAgICAgICAge29wYWNpdHk6IDEsIG1hcmdpblRvcDogMCwgbWFyZ2luQm90dG9tOiBtYXJnaW5Cb3R0b219XG4gICAgICAgICAgICApLnRoZW4oZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzJDEudGltZW91dCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzJDEudGltZXIgPSBzZXRUaW1lb3V0KHRoaXMkMS5jbG9zZSwgdGhpcyQxLnRpbWVvdXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiAoIG9iaiA9IHtcblxuICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHtcbiAgICAgICAgICAgICAgICBpZiAoY2xvc2VzdChlLnRhcmdldCwgJ2FbaHJlZj1cIiNcIl0nKSkge1xuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LCBvYmpbcG9pbnRlckVudGVyXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy50aW1lcikge1xuICAgICAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgb2JqW3BvaW50ZXJMZWF2ZV0gPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGltZW91dCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCh0aGlzLmNsb3NlLCB0aGlzLnRpbWVvdXQpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIG9iaiApLFxuXG4gICAgICAgIG1ldGhvZHM6IHtcblxuICAgICAgICAgICAgY2xvc2U6IGZ1bmN0aW9uKGltbWVkaWF0ZSkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgICAgICB2YXIgcmVtb3ZlRm4gPSBmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcih0aGlzJDEuJGVsLCAnY2xvc2UnLCBbdGhpcyQxXSk7XG4gICAgICAgICAgICAgICAgICAgIHJlbW92ZSh0aGlzJDEuJGVsKTtcblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWNvbnRhaW5lcnNbdGhpcyQxLnBvc10uY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjc3MoY29udGFpbmVyc1t0aGlzJDEucG9zXSwgJ2Rpc3BsYXknLCAnbm9uZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMudGltZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChpbW1lZGlhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlRm4oKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBUcmFuc2l0aW9uLnN0YXJ0KHRoaXMuJGVsLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGFjaXR5OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAtdGhpcy4kZWwub2Zmc2V0SGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luQm90dG9tOiAwXG4gICAgICAgICAgICAgICAgICAgIH0pLnRoZW4ocmVtb3ZlRm4pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gaW5zdGFsbCQzKFVJa2l0KSB7XG4gICAgICAgIFVJa2l0Lm5vdGlmaWNhdGlvbi5jbG9zZUFsbCA9IGZ1bmN0aW9uIChncm91cCwgaW1tZWRpYXRlKSB7XG4gICAgICAgICAgICBhcHBseShkb2N1bWVudC5ib2R5LCBmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgICAgICAgICB2YXIgbm90aWZpY2F0aW9uID0gVUlraXQuZ2V0Q29tcG9uZW50KGVsLCAnbm90aWZpY2F0aW9uJyk7XG4gICAgICAgICAgICAgICAgaWYgKG5vdGlmaWNhdGlvbiAmJiAoIWdyb3VwIHx8IGdyb3VwID09PSBub3RpZmljYXRpb24uZ3JvdXApKSB7XG4gICAgICAgICAgICAgICAgICAgIG5vdGlmaWNhdGlvbi5jbG9zZShpbW1lZGlhdGUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIHZhciBwcm9wcyQxID0gWyd4JywgJ3knLCAnYmd4JywgJ2JneScsICdyb3RhdGUnLCAnc2NhbGUnLCAnY29sb3InLCAnYmFja2dyb3VuZENvbG9yJywgJ2JvcmRlckNvbG9yJywgJ29wYWNpdHknLCAnYmx1cicsICdodWUnLCAnZ3JheXNjYWxlJywgJ2ludmVydCcsICdzYXR1cmF0ZScsICdzZXBpYScsICdmb3BhY2l0eSddO1xuXG4gICAgdmFyIFBhcmFsbGF4ID0ge1xuXG4gICAgICAgIHByb3BzOiBwcm9wcyQxLnJlZHVjZShmdW5jdGlvbiAocHJvcHMsIHByb3ApIHtcbiAgICAgICAgICAgIHByb3BzW3Byb3BdID0gJ2xpc3QnO1xuICAgICAgICAgICAgcmV0dXJuIHByb3BzO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICBtZWRpYTogJ21lZGlhJ1xuICAgICAgICB9KSxcblxuICAgICAgICBkYXRhOiBwcm9wcyQxLnJlZHVjZShmdW5jdGlvbiAoZGF0YSQkMSwgcHJvcCkge1xuICAgICAgICAgICAgZGF0YSQkMVtwcm9wXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHJldHVybiBkYXRhJCQxO1xuICAgICAgICB9LCB7XG4gICAgICAgICAgICBtZWRpYTogZmFsc2VcbiAgICAgICAgfSksXG5cbiAgICAgICAgY29tcHV0ZWQ6IHtcblxuICAgICAgICAgICAgcHJvcHM6IGZ1bmN0aW9uKHByb3BlcnRpZXMsICRlbCkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHMkMS5yZWR1Y2UoZnVuY3Rpb24gKHByb3BzLCBwcm9wKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzVW5kZWZpbmVkKHByb3BlcnRpZXNbcHJvcF0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcHJvcHM7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB2YXIgaXNDb2xvciA9IHByb3AubWF0Y2goL2NvbG9yL2kpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgaXNDc3NQcm9wID0gaXNDb2xvciB8fCBwcm9wID09PSAnb3BhY2l0eSc7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHBvcywgYmdQb3MsIGRpZmY7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdGVwcyA9IHByb3BlcnRpZXNbcHJvcF0uc2xpY2UoMCk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGlzQ3NzUHJvcCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3NzKCRlbCwgcHJvcCwgJycpO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHN0ZXBzLmxlbmd0aCA8IDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0ZXBzLnVuc2hpZnQoKHByb3AgPT09ICdzY2FsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IGlzQ3NzUHJvcFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGNzcygkZWwsIHByb3ApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMCkgfHwgMCk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB2YXIgdW5pdCA9IGluY2x1ZGVzKHN0ZXBzLmpvaW4oJycpLCAnJScpID8gJyUnIDogJ3B4JztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoaXNDb2xvcikge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVmID0gJGVsLnN0eWxlO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGNvbG9yID0gcmVmLmNvbG9yO1xuICAgICAgICAgICAgICAgICAgICAgICAgc3RlcHMgPSBzdGVwcy5tYXAoZnVuY3Rpb24gKHN0ZXApIHsgcmV0dXJuIHBhcnNlQ29sb3IoJGVsLCBzdGVwKTsgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAkZWwuc3R5bGUuY29sb3IgPSBjb2xvcjtcblxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGVwcyA9IHN0ZXBzLm1hcCh0b0Zsb2F0KTtcblxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHByb3AubWF0Y2goL15iZy8pKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNzcygkZWwsIChcImJhY2tncm91bmQtcG9zaXRpb24tXCIgKyAocHJvcFsyXSkpLCAnJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBiZ1BvcyA9IGNzcygkZWwsICdiYWNrZ3JvdW5kUG9zaXRpb24nKS5zcGxpdCgnICcpW3Byb3BbMl0gPT09ICd4JyA/IDAgOiAxXTsgLy8gSUUgMTEgY2FuJ3QgcmVhZCBiYWNrZ3JvdW5kLXBvc2l0aW9uLVt4fHldXG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aGlzJDEuY292ZXJzKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgbWluID0gTWF0aC5taW4uYXBwbHkoTWF0aCwgc3RlcHMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBtYXggPSBNYXRoLm1heC5hcHBseShNYXRoLCBzdGVwcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRvd24gPSBzdGVwcy5pbmRleE9mKG1pbikgPCBzdGVwcy5pbmRleE9mKG1heCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaWZmID0gbWF4IC0gbWluO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RlcHMgPSBzdGVwcy5tYXAoZnVuY3Rpb24gKHN0ZXApIHsgcmV0dXJuIHN0ZXAgLSAoZG93biA/IG1pbiA6IG1heCk7IH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IChkb3duID8gLWRpZmYgOiAwKSArIFwicHhcIjtcblxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvcyA9IGJnUG9zO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwcm9wc1twcm9wXSA9IHtzdGVwczogc3RlcHMsIHVuaXQ6IHVuaXQsIHBvczogcG9zLCBiZ1BvczogYmdQb3MsIGRpZmY6IGRpZmZ9O1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9wcztcblxuICAgICAgICAgICAgICAgIH0sIHt9KTtcblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgYmdQcm9wczogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gWydiZ3gnLCAnYmd5J10uZmlsdGVyKGZ1bmN0aW9uIChiZykgeyByZXR1cm4gYmcgaW4gdGhpcyQxLnByb3BzOyB9KTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGNvdmVyczogZnVuY3Rpb24oXywgJGVsKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvdmVycygkZWwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgZGlzY29ubmVjdGVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9pbWFnZTtcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGU6IFtcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgcmVhZDogZnVuY3Rpb24oZGF0YSQkMSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICAgICAgICAgIGRhdGEkJDEuYWN0aXZlID0gIXRoaXMubWVkaWEgfHwgd2luZG93Lm1hdGNoTWVkaWEodGhpcy5tZWRpYSkubWF0Y2hlcztcblxuICAgICAgICAgICAgICAgICAgICBpZiAoZGF0YSQkMS5pbWFnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSQkMS5pbWFnZS5kaW1FbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogdGhpcy4kZWwub2Zmc2V0V2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiB0aGlzLiRlbC5vZmZzZXRIZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoJ2ltYWdlJyBpbiBkYXRhJCQxIHx8ICF0aGlzLmNvdmVycyB8fCAhdGhpcy5iZ1Byb3BzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHNyYyA9IGNzcyh0aGlzLiRlbCwgJ2JhY2tncm91bmRJbWFnZScpLnJlcGxhY2UoL15ub25lfHVybFxcKFtcIiddPyguKz8pW1wiJ10/XFwpJC8sICckMScpO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICghc3JjKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBkYXRhJCQxLmltYWdlID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICAgICAgZ2V0SW1hZ2Uoc3JjKS50aGVuKGZ1bmN0aW9uIChpbWcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEkJDEuaW1hZ2UgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IGltZy5uYXR1cmFsV2lkdGgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBpbWcubmF0dXJhbEhlaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLiRlbWl0KCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpbWFnZSA9IHJlZi5pbWFnZTtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFjdGl2ZSA9IHJlZi5hY3RpdmU7XG5cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWltYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoIWFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3NzKHRoaXMuJGVsLCB7YmFja2dyb3VuZFNpemU6ICcnLCBiYWNrZ3JvdW5kUmVwZWF0OiAnJ30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGRpbUVsID0gaW1hZ2UuZGltRWw7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGRpbSA9IERpbWVuc2lvbnMuY292ZXIoaW1hZ2UsIGRpbUVsKTtcblxuICAgICAgICAgICAgICAgICAgICB0aGlzLmJnUHJvcHMuZm9yRWFjaChmdW5jdGlvbiAocHJvcCkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVmID0gdGhpcyQxLnByb3BzW3Byb3BdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIGRpZmYgPSByZWYuZGlmZjtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBiZ1BvcyA9IHJlZi5iZ1BvcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBzdGVwcyA9IHJlZi5zdGVwcztcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhciBhdHRyJCQxID0gcHJvcCA9PT0gJ2JneScgPyAnaGVpZ2h0JyA6ICd3aWR0aCc7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgc3BhbiA9IGRpbVthdHRyJCQxXSAtIGRpbUVsW2F0dHIkJDFdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWJnUG9zLm1hdGNoKC8lJHwwcHgvKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNwYW4gPCBkaWZmKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZGltRWxbYXR0ciQkMV0gPSBkaW1bYXR0ciQkMV0gKyBkaWZmIC0gc3BhbjtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc3BhbiA+IGRpZmYpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBiZ1Bvc0Zsb2F0ID0gcGFyc2VGbG9hdChiZ1Bvcyk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmdQb3NGbG9hdCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzJDEucHJvcHNbcHJvcF0uc3RlcHMgPSBzdGVwcy5tYXAoZnVuY3Rpb24gKHN0ZXApIHsgcmV0dXJuIHN0ZXAgLSAoc3BhbiAtIGRpZmYpIC8gKDEwMCAvIGJnUG9zRmxvYXQpOyB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpbSA9IERpbWVuc2lvbnMuY292ZXIoaW1hZ2UsIGRpbUVsKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgY3NzKHRoaXMuJGVsLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogKChkaW0ud2lkdGgpICsgXCJweCBcIiArIChkaW0uaGVpZ2h0KSArIFwicHhcIiksXG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kUmVwZWF0OiAnbm8tcmVwZWF0J1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBldmVudHM6IFsnbG9hZCcsICdyZXNpemUnXVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIHJlc2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuICAgICAgICAgICAgICAgIGVhY2godGhpcy5nZXRDc3MoMCksIGZ1bmN0aW9uIChfLCBwcm9wKSB7IHJldHVybiBjc3ModGhpcyQxLiRlbCwgcHJvcCwgJycpOyB9KTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGdldENzczogZnVuY3Rpb24ocGVyY2VudCkge1xuXG4gICAgICAgICAgICAgICAgdmFyIHJlZiA9IHRoaXM7XG4gICAgICAgICAgICAgICAgdmFyIHByb3BzID0gcmVmLnByb3BzO1xuICAgICAgICAgICAgICAgIHZhciB0cmFuc2xhdGVkID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMocHJvcHMpLnJlZHVjZShmdW5jdGlvbiAoY3NzJCQxLCBwcm9wKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIHJlZiA9IHByb3BzW3Byb3BdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgc3RlcHMgPSByZWYuc3RlcHM7XG4gICAgICAgICAgICAgICAgICAgIHZhciB1bml0ID0gcmVmLnVuaXQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwb3MgPSByZWYucG9zO1xuICAgICAgICAgICAgICAgICAgICB2YXIgdmFsdWUgPSBnZXRWYWx1ZShzdGVwcywgcGVyY2VudCk7XG5cbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChwcm9wKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHRyYW5zZm9ybXNcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ3gnOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAneSc6XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodHJhbnNsYXRlZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgcmVmJDEgPSBbJ3gnLCAneSddLm1hcChmdW5jdGlvbiAoZGlyKSB7IHJldHVybiBwcm9wID09PSBkaXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB2YWx1ZSArIHVuaXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBwcm9wc1tkaXJdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IGdldFZhbHVlKHByb3BzW2Rpcl0uc3RlcHMsIHBlcmNlbnQpICsgcHJvcHNbZGlyXS51bml0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IDA7IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB2YXIgeCA9IHJlZiQxWzBdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgeSA9IHJlZiQxWzFdO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRlZCA9IGNzcyQkMS50cmFuc2Zvcm0gKz0gXCIgdHJhbnNsYXRlM2QoXCIgKyB4ICsgXCIsIFwiICsgeSArIFwiLCAwKVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAncm90YXRlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3MkJDEudHJhbnNmb3JtICs9IFwiIHJvdGF0ZShcIiArIHZhbHVlICsgXCJkZWcpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzY2FsZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzJCQxLnRyYW5zZm9ybSArPSBcIiBzY2FsZShcIiArIHZhbHVlICsgXCIpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGJnIGltYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdiZ3knOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnYmd4JzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3MkJDFbKFwiYmFja2dyb3VuZC1wb3NpdGlvbi1cIiArIChwcm9wWzJdKSldID0gXCJjYWxjKFwiICsgcG9zICsgXCIgKyBcIiArICh2YWx1ZSArIHVuaXQpICsgXCIpXCI7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbG9yXG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdjb2xvcic6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdiYWNrZ3JvdW5kQ29sb3InOlxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnYm9yZGVyQ29sb3InOlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyIHJlZiQyID0gZ2V0U3RlcChzdGVwcywgcGVyY2VudCk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzdGFydCA9IHJlZiQyWzBdO1xuICAgICAgICAgICAgICAgICAgICB2YXIgZW5kID0gcmVmJDJbMV07XG4gICAgICAgICAgICAgICAgICAgIHZhciBwID0gcmVmJDJbMl07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3MkJDFbcHJvcF0gPSBcInJnYmEoXCIgKyAoc3RhcnQubWFwKGZ1bmN0aW9uICh2YWx1ZSwgaSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSArIHAgKiAoZW5kW2ldIC0gdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGkgPT09IDMgPyB0b0Zsb2F0KHZhbHVlKSA6IHBhcnNlSW50KHZhbHVlLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmpvaW4oJywnKSkgKyBcIilcIjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQ1NTIEZpbHRlclxuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnYmx1cic6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzJCQxLmZpbHRlciArPSBcIiBibHVyKFwiICsgdmFsdWUgKyBcInB4KVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnaHVlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjc3MkJDEuZmlsdGVyICs9IFwiIGh1ZS1yb3RhdGUoXCIgKyB2YWx1ZSArIFwiZGVnKVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZm9wYWNpdHknOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcyQkMS5maWx0ZXIgKz0gXCIgb3BhY2l0eShcIiArIHZhbHVlICsgXCIlKVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FzZSAnZ3JheXNjYWxlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgJ2ludmVydCc6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzYXR1cmF0ZSc6XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlICdzZXBpYSc6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3NzJCQxLmZpbHRlciArPSBcIiBcIiArIHByb3AgKyBcIihcIiArIHZhbHVlICsgXCIlKVwiO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNzcyQkMVtwcm9wXSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNzcyQkMTtcblxuICAgICAgICAgICAgICAgIH0sIHt0cmFuc2Zvcm06ICcnLCBmaWx0ZXI6ICcnfSk7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gcGFyc2VDb2xvcihlbCwgY29sb3IpIHtcbiAgICAgICAgcmV0dXJuIGNzcyhjc3MoZWwsICdjb2xvcicsIGNvbG9yKSwgJ2NvbG9yJykuc3BsaXQoL1soKSxdL2cpLnNsaWNlKDEsIC0xKS5jb25jYXQoMSkuc2xpY2UoMCwgNCkubWFwKGZ1bmN0aW9uIChuKSB7IHJldHVybiB0b0Zsb2F0KG4pOyB9KTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRTdGVwKHN0ZXBzLCBwZXJjZW50KSB7XG4gICAgICAgIHZhciBjb3VudCA9IHN0ZXBzLmxlbmd0aCAtIDE7XG4gICAgICAgIHZhciBpbmRleCQkMSA9IE1hdGgubWluKE1hdGguZmxvb3IoY291bnQgKiBwZXJjZW50KSwgY291bnQgLSAxKTtcbiAgICAgICAgdmFyIHN0ZXAgPSBzdGVwcy5zbGljZShpbmRleCQkMSwgaW5kZXgkJDEgKyAyKTtcblxuICAgICAgICBzdGVwLnB1c2gocGVyY2VudCA9PT0gMSA/IDEgOiBwZXJjZW50ICUgKDEgLyBjb3VudCkgKiBjb3VudCk7XG5cbiAgICAgICAgcmV0dXJuIHN0ZXA7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0VmFsdWUoc3RlcHMsIHBlcmNlbnQpIHtcbiAgICAgICAgdmFyIHJlZiA9IGdldFN0ZXAoc3RlcHMsIHBlcmNlbnQpO1xuICAgICAgICB2YXIgc3RhcnQgPSByZWZbMF07XG4gICAgICAgIHZhciBlbmQgPSByZWZbMV07XG4gICAgICAgIHZhciBwID0gcmVmWzJdO1xuICAgICAgICByZXR1cm4gKGlzTnVtYmVyKHN0YXJ0KVxuICAgICAgICAgICAgICAgID8gc3RhcnQgKyBNYXRoLmFicyhzdGFydCAtIGVuZCkgKiBwICogKHN0YXJ0IDwgZW5kID8gMSA6IC0xKVxuICAgICAgICAgICAgICAgIDogK2VuZFxuICAgICAgICApLnRvRml4ZWQoMik7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gY292ZXJzKGVsKSB7XG4gICAgICAgIHZhciByZWYgPSBlbC5zdHlsZTtcbiAgICAgICAgdmFyIGJhY2tncm91bmRTaXplID0gcmVmLmJhY2tncm91bmRTaXplO1xuICAgICAgICB2YXIgY292ZXJzID0gY3NzKGNzcyhlbCwgJ2JhY2tncm91bmRTaXplJywgJycpLCAnYmFja2dyb3VuZFNpemUnKSA9PT0gJ2NvdmVyJztcbiAgICAgICAgZWwuc3R5bGUuYmFja2dyb3VuZFNpemUgPSBiYWNrZ3JvdW5kU2l6ZTtcbiAgICAgICAgcmV0dXJuIGNvdmVycztcbiAgICB9XG5cbiAgICB2YXIgUGFyYWxsYXgkMSA9IHtcblxuICAgICAgICBtaXhpbnM6IFtQYXJhbGxheF0sXG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIHRhcmdldDogU3RyaW5nLFxuICAgICAgICAgICAgdmlld3BvcnQ6IE51bWJlcixcbiAgICAgICAgICAgIGVhc2luZzogTnVtYmVyLFxuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHRhcmdldDogZmFsc2UsXG4gICAgICAgICAgICB2aWV3cG9ydDogMSxcbiAgICAgICAgICAgIGVhc2luZzogMSxcbiAgICAgICAgfSxcblxuICAgICAgICBjb21wdXRlZDoge1xuXG4gICAgICAgICAgICB0YXJnZXQ6IGZ1bmN0aW9uKHJlZiwgJGVsKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRhcmdldCA9IHJlZi50YXJnZXQ7XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdGFyZ2V0ICYmIHF1ZXJ5KHRhcmdldCwgJGVsKSB8fCAkZWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGU6IFtcblxuICAgICAgICAgICAge1xuXG4gICAgICAgICAgICAgICAgcmVhZDogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBwZXJjZW50ID0gcmVmLnBlcmNlbnQ7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXY6IHBlcmNlbnQsXG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50OiBlYXNlJDEoc2Nyb2xsZWRPdmVyKHRoaXMudGFyZ2V0KSAvICh0aGlzLnZpZXdwb3J0IHx8IDEpLCB0aGlzLmVhc2luZylcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgd3JpdGU6IGZ1bmN0aW9uKHJlZiwgcmVmJDEpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHByZXYgPSByZWYucHJldjtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBlcmNlbnQgPSByZWYucGVyY2VudDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGFjdGl2ZSA9IHJlZi5hY3RpdmU7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0eXBlID0gcmVmJDEudHlwZTtcblxuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlICE9PSAnc2Nyb2xsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJldiA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFhY3RpdmUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChwcmV2ICE9PSBwZXJjZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjc3ModGhpcy4kZWwsIHRoaXMuZ2V0Q3NzKHBlcmNlbnQpKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgICAgIGV2ZW50czogWydzY3JvbGwnLCAnbG9hZCcsICdyZXNpemUnXVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIF1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBlYXNlJDEocGVyY2VudCwgZWFzaW5nKSB7XG4gICAgICAgIHJldHVybiBjbGFtcChwZXJjZW50ICogKDEgLSAoZWFzaW5nIC0gZWFzaW5nICogcGVyY2VudCkpKTtcbiAgICB9XG5cbiAgICB2YXIgU2xpZGVyUmVhY3RpdmUgPSB7XG5cbiAgICAgICAgdXBkYXRlOiBbXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcy5zdGFjay5sZW5ndGggfHwgdGhpcy5kcmFnZ2luZykge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4JCQxID0gdGhpcy5nZXRWYWxpZEluZGV4KCk7XG4gICAgICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLmluZGV4O1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLnNsaWRlcywgdGhpcy5jbHNBY3RpdmUsIHRoaXMuY2xzQWN0aXZhdGVkKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KGluZGV4JCQxKTtcblxuICAgICAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgICAgICBldmVudHM6IFsnbG9hZCcsICdyZXNpemUnXVxuXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgXVxuXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIFRyYW5zaXRpb25lciQxIChwcmV2LCBuZXh0LCBkaXIsIHJlZikge1xuICAgICAgICB2YXIgY2VudGVyID0gcmVmLmNlbnRlcjtcbiAgICAgICAgdmFyIGVhc2luZyA9IHJlZi5lYXNpbmc7XG4gICAgICAgIHZhciBsaXN0ID0gcmVmLmxpc3Q7XG5cblxuICAgICAgICB2YXIgZGVmZXJyZWQgPSBuZXcgRGVmZXJyZWQoKTtcblxuICAgICAgICB2YXIgZnJvbSA9IHByZXZcbiAgICAgICAgICAgID8gZ2V0TGVmdChwcmV2LCBsaXN0LCBjZW50ZXIpXG4gICAgICAgICAgICA6IGdldExlZnQobmV4dCwgbGlzdCwgY2VudGVyKSArIG5leHQub2Zmc2V0V2lkdGggKiBkaXI7XG4gICAgICAgIHZhciB0byA9IG5leHRcbiAgICAgICAgICAgID8gZ2V0TGVmdChuZXh0LCBsaXN0LCBjZW50ZXIpXG4gICAgICAgICAgICA6IGZyb20gKyBwcmV2Lm9mZnNldFdpZHRoICogZGlyICogKGlzUnRsID8gLTEgOiAxKTtcblxuICAgICAgICByZXR1cm4ge1xuXG4gICAgICAgICAgICBkaXI6IGRpcixcblxuICAgICAgICAgICAgc2hvdzogZnVuY3Rpb24oZHVyYXRpb24sIHBlcmNlbnQsIGxpbmVhcikge1xuICAgICAgICAgICAgICAgIGlmICggcGVyY2VudCA9PT0gdm9pZCAwICkgcGVyY2VudCA9IDA7XG5cblxuICAgICAgICAgICAgICAgIHZhciB0aW1pbmcgPSBsaW5lYXIgPyAnbGluZWFyJyA6IGVhc2luZztcbiAgICAgICAgICAgICAgICBkdXJhdGlvbiAtPSBNYXRoLnJvdW5kKGR1cmF0aW9uICogY2xhbXAocGVyY2VudCwgLTEsIDEpKTtcblxuICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlKHBlcmNlbnQpO1xuXG4gICAgICAgICAgICAgICAgcHJldiAmJiB0aGlzLnVwZGF0ZVRyYW5zbGF0ZXMoKTtcbiAgICAgICAgICAgICAgICBwZXJjZW50ID0gcHJldiA/IHBlcmNlbnQgOiBjbGFtcChwZXJjZW50LCAwLCAxKTtcbiAgICAgICAgICAgICAgICB0cmlnZ2VyVXBkYXRlJDEodGhpcy5nZXRJdGVtSW4oKSwgJ2l0ZW1pbicsIHtwZXJjZW50OiBwZXJjZW50LCBkdXJhdGlvbjogZHVyYXRpb24sIHRpbWluZzogdGltaW5nLCBkaXI6IGRpcn0pO1xuICAgICAgICAgICAgICAgIHByZXYgJiYgdHJpZ2dlclVwZGF0ZSQxKHRoaXMuZ2V0SXRlbUluKHRydWUpLCAnaXRlbW91dCcsIHtwZXJjZW50OiAxIC0gcGVyY2VudCwgZHVyYXRpb246IGR1cmF0aW9uLCB0aW1pbmc6IHRpbWluZywgZGlyOiBkaXJ9KTtcblxuICAgICAgICAgICAgICAgIFRyYW5zaXRpb25cbiAgICAgICAgICAgICAgICAgICAgLnN0YXJ0KGxpc3QsIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtdG8gKiAoaXNSdGwgPyAtMSA6IDEpLCAncHgnKX0sIGR1cmF0aW9uLCB0aW1pbmcpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKGRlZmVycmVkLnJlc29sdmUsIG5vb3ApO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGRlZmVycmVkLnByb21pc2U7XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHN0b3A6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBUcmFuc2l0aW9uLnN0b3AobGlzdCk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBjYW5jZWw6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIFRyYW5zaXRpb24uY2FuY2VsKGxpc3QpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIGNzcyhsaXN0LCAndHJhbnNmb3JtJywgJycpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZm9yd2FyZDogZnVuY3Rpb24oZHVyYXRpb24sIHBlcmNlbnQpIHtcbiAgICAgICAgICAgICAgICBpZiAoIHBlcmNlbnQgPT09IHZvaWQgMCApIHBlcmNlbnQgPSB0aGlzLnBlcmNlbnQoKTtcblxuICAgICAgICAgICAgICAgIFRyYW5zaXRpb24uY2FuY2VsKGxpc3QpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNob3coZHVyYXRpb24sIHBlcmNlbnQsIHRydWUpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbihwZXJjZW50KSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgZGlzdGFuY2UgPSB0aGlzLmdldERpc3RhbmNlKCkgKiBkaXIgKiAoaXNSdGwgPyAtMSA6IDEpO1xuXG4gICAgICAgICAgICAgICAgY3NzKGxpc3QsICd0cmFuc2Zvcm0nLCB0cmFuc2xhdGUoY2xhbXAoXG4gICAgICAgICAgICAgICAgICAgIC10byArIChkaXN0YW5jZSAtIGRpc3RhbmNlICogcGVyY2VudCksXG4gICAgICAgICAgICAgICAgICAgIC1nZXRXaWR0aChsaXN0KSxcbiAgICAgICAgICAgICAgICAgICAgbGlzdC5vZmZzZXRXaWR0aFxuICAgICAgICAgICAgICAgICkgKiAoaXNSdGwgPyAtMSA6IDEpLCAncHgnKSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVRyYW5zbGF0ZXMoKTtcblxuICAgICAgICAgICAgICAgIGlmIChwcmV2KSB7XG4gICAgICAgICAgICAgICAgICAgIHBlcmNlbnQgPSBjbGFtcChwZXJjZW50LCAtMSwgMSk7XG4gICAgICAgICAgICAgICAgICAgIHRyaWdnZXJVcGRhdGUkMSh0aGlzLmdldEl0ZW1JbigpLCAnaXRlbXRyYW5zbGF0ZWluJywge3BlcmNlbnQ6IHBlcmNlbnQsIGRpcjogZGlyfSk7XG4gICAgICAgICAgICAgICAgICAgIHRyaWdnZXJVcGRhdGUkMSh0aGlzLmdldEl0ZW1Jbih0cnVlKSwgJ2l0ZW10cmFuc2xhdGVvdXQnLCB7cGVyY2VudDogMSAtIHBlcmNlbnQsIGRpcjogZGlyfSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBwZXJjZW50OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5hYnMoKGNzcyhsaXN0LCAndHJhbnNmb3JtJykuc3BsaXQoJywnKVs0XSAqIChpc1J0bCA/IC0xIDogMSkgKyBmcm9tKSAvICh0byAtIGZyb20pKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGdldERpc3RhbmNlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gTWF0aC5hYnModG8gLSBmcm9tKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGdldEl0ZW1JbjogZnVuY3Rpb24ob3V0KSB7XG4gICAgICAgICAgICAgICAgaWYgKCBvdXQgPT09IHZvaWQgMCApIG91dCA9IGZhbHNlO1xuXG5cbiAgICAgICAgICAgICAgICB2YXIgYWN0aXZlcyA9IHRoaXMuZ2V0QWN0aXZlcygpO1xuICAgICAgICAgICAgICAgIHZhciBhbGwgPSBzb3J0Qnkoc2xpZGVzKGxpc3QpLCAnb2Zmc2V0TGVmdCcpO1xuICAgICAgICAgICAgICAgIHZhciBpID0gaW5kZXgoYWxsLCBhY3RpdmVzW2RpciAqIChvdXQgPyAtMSA6IDEpID4gMCA/IGFjdGl2ZXMubGVuZ3RoIC0gMSA6IDBdKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiB+aSAmJiBhbGxbaSArIChwcmV2ICYmICFvdXQgPyBkaXIgOiAwKV07XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGdldEFjdGl2ZXM6IGZ1bmN0aW9uKCkge1xuXG4gICAgICAgICAgICAgICAgdmFyIGxlZnQgPSBnZXRMZWZ0KHByZXYgfHwgbmV4dCwgbGlzdCwgY2VudGVyKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBzb3J0Qnkoc2xpZGVzKGxpc3QpLmZpbHRlcihmdW5jdGlvbiAoc2xpZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNsaWRlTGVmdCA9IGdldEVsTGVmdChzbGlkZSwgbGlzdCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzbGlkZUxlZnQgPj0gbGVmdCAmJiBzbGlkZUxlZnQgKyBzbGlkZS5vZmZzZXRXaWR0aCA8PSBsaXN0Lm9mZnNldFdpZHRoICsgbGVmdDtcbiAgICAgICAgICAgICAgICB9KSwgJ29mZnNldExlZnQnKTtcblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdXBkYXRlVHJhbnNsYXRlczogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgYWN0aXZlcyA9IHRoaXMuZ2V0QWN0aXZlcygpO1xuXG4gICAgICAgICAgICAgICAgc2xpZGVzKGxpc3QpLmZvckVhY2goZnVuY3Rpb24gKHNsaWRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBpc0FjdGl2ZSA9IGluY2x1ZGVzKGFjdGl2ZXMsIHNsaWRlKTtcblxuICAgICAgICAgICAgICAgICAgICB0cmlnZ2VyVXBkYXRlJDEoc2xpZGUsIChcIml0ZW10cmFuc2xhdGVcIiArIChpc0FjdGl2ZSA/ICdpbicgOiAnb3V0JykpLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwZXJjZW50OiBpc0FjdGl2ZSA/IDEgOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlyOiBzbGlkZS5vZmZzZXRMZWZ0IDw9IG5leHQub2Zmc2V0TGVmdCA/IDEgOiAtMVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9O1xuXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0TGVmdChlbCwgbGlzdCwgY2VudGVyKSB7XG5cbiAgICAgICAgdmFyIGxlZnQgPSBnZXRFbExlZnQoZWwsIGxpc3QpO1xuXG4gICAgICAgIHJldHVybiBjZW50ZXJcbiAgICAgICAgICAgID8gbGVmdCAtIGNlbnRlckVsKGVsLCBsaXN0KVxuICAgICAgICAgICAgOiBNYXRoLm1pbihsZWZ0LCBnZXRNYXgobGlzdCkpO1xuXG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0TWF4KGxpc3QpIHtcbiAgICAgICAgcmV0dXJuIE1hdGgubWF4KDAsIGdldFdpZHRoKGxpc3QpIC0gbGlzdC5vZmZzZXRXaWR0aCk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gZ2V0V2lkdGgobGlzdCkge1xuICAgICAgICByZXR1cm4gc2xpZGVzKGxpc3QpLnJlZHVjZShmdW5jdGlvbiAocmlnaHQsIGVsKSB7IHJldHVybiBlbC5vZmZzZXRXaWR0aCArIHJpZ2h0OyB9LCAwKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRNYXhXaWR0aChsaXN0KSB7XG4gICAgICAgIHJldHVybiBzbGlkZXMobGlzdCkucmVkdWNlKGZ1bmN0aW9uIChyaWdodCwgZWwpIHsgcmV0dXJuIE1hdGgubWF4KHJpZ2h0LCBlbC5vZmZzZXRXaWR0aCk7IH0sIDApO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNlbnRlckVsKGVsLCBsaXN0KSB7XG4gICAgICAgIHJldHVybiBsaXN0Lm9mZnNldFdpZHRoIC8gMiAtIGVsLm9mZnNldFdpZHRoIC8gMjtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRFbExlZnQoZWwsIGxpc3QpIHtcbiAgICAgICAgcmV0dXJuIChlbC5vZmZzZXRMZWZ0ICsgKGlzUnRsID8gZWwub2Zmc2V0V2lkdGggLSBsaXN0Lm9mZnNldFdpZHRoIDogMCkpICogKGlzUnRsID8gLTEgOiAxKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiB0cmlnZ2VyVXBkYXRlJDEoZWwsIHR5cGUsIGRhdGEkJDEpIHtcbiAgICAgICAgdHJpZ2dlcihlbCwgY3JlYXRlRXZlbnQodHlwZSwgZmFsc2UsIGZhbHNlLCBkYXRhJCQxKSk7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gc2xpZGVzKGxpc3QpIHtcbiAgICAgICAgcmV0dXJuIHRvTm9kZXMobGlzdC5jaGlsZHJlbik7XG4gICAgfVxuXG4gICAgdmFyIFNsaWRlciQxID0ge1xuXG4gICAgICAgIG1peGluczogW0NsYXNzLCBTbGlkZXIsIFNsaWRlclJlYWN0aXZlXSxcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgY2VudGVyOiBCb29sZWFuLFxuICAgICAgICAgICAgc2V0czogQm9vbGVhbixcbiAgICAgICAgfSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBjZW50ZXI6IGZhbHNlLFxuICAgICAgICAgICAgc2V0czogZmFsc2UsXG4gICAgICAgICAgICBhdHRySXRlbTogJ3VrLXNsaWRlci1pdGVtJyxcbiAgICAgICAgICAgIHNlbExpc3Q6ICcudWstc2xpZGVyLWl0ZW1zJyxcbiAgICAgICAgICAgIHNlbE5hdjogJy51ay1zbGlkZXItbmF2JyxcbiAgICAgICAgICAgIGNsc0NvbnRhaW5lcjogJ3VrLXNsaWRlci1jb250YWluZXInLFxuICAgICAgICAgICAgVHJhbnNpdGlvbmVyOiBUcmFuc2l0aW9uZXIkMVxuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIGF2Z1dpZHRoOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0V2lkdGgodGhpcy5saXN0KSAvIHRoaXMubGVuZ3RoO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZmluaXRlOiBmdW5jdGlvbihyZWYpIHtcbiAgICAgICAgICAgICAgICB2YXIgZmluaXRlID0gcmVmLmZpbml0ZTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBmaW5pdGUgfHwgZ2V0V2lkdGgodGhpcy5saXN0KSA8IHRoaXMubGlzdC5vZmZzZXRXaWR0aCArIGdldE1heFdpZHRoKHRoaXMubGlzdCkgKyB0aGlzLmNlbnRlcjtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIG1heEluZGV4OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmZpbml0ZSB8fCB0aGlzLmNlbnRlciAmJiAhdGhpcy5zZXRzKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY2VudGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnNldHNbdGhpcy5zZXRzLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGNzcyh0aGlzLnNsaWRlcywgJ29yZGVyJywgJycpO1xuXG4gICAgICAgICAgICAgICAgdmFyIG1heCA9IGdldE1heCh0aGlzLmxpc3QpO1xuICAgICAgICAgICAgICAgIHZhciBpID0gdGhpcy5sZW5ndGg7XG5cbiAgICAgICAgICAgICAgICB3aGlsZSAoaS0tKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChnZXRFbExlZnQodGhpcyQxLmxpc3QuY2hpbGRyZW5baV0sIHRoaXMkMS5saXN0KSA8IG1heCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE1hdGgubWluKGkgKyAxLCB0aGlzJDEubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHNldHM6IGZ1bmN0aW9uKHJlZikge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuICAgICAgICAgICAgICAgIHZhciBzZXRzID0gcmVmLnNldHM7XG5cblxuICAgICAgICAgICAgICAgIHZhciB3aWR0aCQkMSA9IHRoaXMubGlzdC5vZmZzZXRXaWR0aCAvICh0aGlzLmNlbnRlciA/IDIgOiAxKTtcblxuICAgICAgICAgICAgICAgIHZhciBsZWZ0ID0gMDtcbiAgICAgICAgICAgICAgICB2YXIgbGVmdENlbnRlciA9IHdpZHRoJCQxO1xuICAgICAgICAgICAgICAgIHZhciBzbGlkZUxlZnQgPSAwO1xuXG4gICAgICAgICAgICAgICAgc2V0cyA9IHNldHMgJiYgdGhpcy5zbGlkZXMucmVkdWNlKGZ1bmN0aW9uIChzZXRzLCBzbGlkZSwgaSkge1xuXG4gICAgICAgICAgICAgICAgICAgIHZhciByZWYgPSBvZmZzZXQoc2xpZGUpO1xuICAgICAgICAgICAgICAgICAgICB2YXIgc2xpZGVXaWR0aCA9IHJlZi53aWR0aDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHNsaWRlUmlnaHQgPSBzbGlkZUxlZnQgKyBzbGlkZVdpZHRoO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChzbGlkZVJpZ2h0ID4gbGVmdCkge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXRoaXMkMS5jZW50ZXIgJiYgaSA+IHRoaXMkMS5tYXhJbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGkgPSB0aGlzJDEubWF4SW5kZXg7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaW5jbHVkZXMoc2V0cywgaSkpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhciBjbXAgPSB0aGlzJDEuc2xpZGVzW2kgKyAxXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodGhpcyQxLmNlbnRlciAmJiBjbXAgJiYgc2xpZGVXaWR0aCA8IGxlZnRDZW50ZXIgLSBvZmZzZXQoY21wKS53aWR0aCAvIDIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVmdENlbnRlciAtPSBzbGlkZVdpZHRoO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlZnRDZW50ZXIgPSB3aWR0aCQkMTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0cy5wdXNoKGkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZWZ0ID0gc2xpZGVMZWZ0ICsgd2lkdGgkJDEgKyAodGhpcyQxLmNlbnRlciA/IHNsaWRlV2lkdGggLyAyIDogMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzbGlkZUxlZnQgKz0gc2xpZGVXaWR0aDtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2V0cztcblxuICAgICAgICAgICAgICAgIH0sIFtdKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBzZXRzICYmIHNldHMubGVuZ3RoICYmIHNldHM7XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHRyYW5zaXRpb25PcHRpb25zOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IHRoaXMuY2VudGVyLFxuICAgICAgICAgICAgICAgICAgICBsaXN0OiB0aGlzLmxpc3RcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgY29ubmVjdGVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHRvZ2dsZUNsYXNzKHRoaXMuJGVsLCB0aGlzLmNsc0NvbnRhaW5lciwgISQoKFwiLlwiICsgKHRoaXMuY2xzQ29udGFpbmVyKSksIHRoaXMuJGVsKSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgdXBkYXRlOiB7XG5cbiAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICAgICAgJCQoKFwiW1wiICsgKHRoaXMuYXR0ckl0ZW0pICsgXCJdLFtkYXRhLVwiICsgKHRoaXMuYXR0ckl0ZW0pICsgXCJdXCIpLCB0aGlzLiRlbCkuZm9yRWFjaChmdW5jdGlvbiAoZWwpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFyIGluZGV4JCQxID0gZGF0YShlbCwgdGhpcyQxLmF0dHJJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcyQxLm1heEluZGV4ICYmIHRvZ2dsZUNsYXNzKGVsLCAndWstaGlkZGVuJywgaXNOdW1lcmljKGluZGV4JCQxKSAmJiAodGhpcyQxLnNldHMgJiYgIWluY2x1ZGVzKHRoaXMkMS5zZXRzLCB0b0Zsb2F0KGluZGV4JCQxKSkgfHwgaW5kZXgkJDEgPiB0aGlzJDEubWF4SW5kZXgpKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZXZlbnRzOiBbJ2xvYWQnLCAncmVzaXplJ11cblxuICAgICAgICB9LFxuXG4gICAgICAgIGV2ZW50czoge1xuXG4gICAgICAgICAgICBiZWZvcmVpdGVtc2hvdzogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZHJhZ2dpbmcgJiYgdGhpcy5zZXRzICYmIHRoaXMuc3RhY2subGVuZ3RoIDwgMiAmJiAhaW5jbHVkZXModGhpcy5zZXRzLCB0aGlzLmluZGV4KSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmluZGV4ID0gdGhpcy5nZXRWYWxpZEluZGV4KCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdmFyIGRpZmYgPSBNYXRoLmFicyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmRleFxuICAgICAgICAgICAgICAgICAgICAtIHRoaXMucHJldkluZGV4XG4gICAgICAgICAgICAgICAgICAgICsgKHRoaXMuZGlyID4gMCAmJiB0aGlzLmluZGV4IDwgdGhpcy5wcmV2SW5kZXggfHwgdGhpcy5kaXIgPCAwICYmIHRoaXMuaW5kZXggPiB0aGlzLnByZXZJbmRleCA/ICh0aGlzLm1heEluZGV4ICsgMSkgKiB0aGlzLmRpciA6IDApXG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5kcmFnZ2luZyAmJiBkaWZmID4gMSkge1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZGlmZjsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzJDEuc3RhY2suc3BsaWNlKDEsIDAsIHRoaXMkMS5kaXIgPiAwID8gJ25leHQnIDogJ3ByZXZpb3VzJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLmR1cmF0aW9uID0gc3BlZWRVcCh0aGlzLmF2Z1dpZHRoIC8gdGhpcy52ZWxvY2l0eSlcbiAgICAgICAgICAgICAgICAgICAgKiAoKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5kaXIgPCAwIHx8ICF0aGlzLnNsaWRlc1t0aGlzLnByZXZJbmRleF1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc2xpZGVzW3RoaXMuaW5kZXhdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNsaWRlc1t0aGlzLnByZXZJbmRleF1cbiAgICAgICAgICAgICAgICAgICAgKS5vZmZzZXRXaWR0aCAvIHRoaXMuYXZnV2lkdGgpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5yZW9yZGVyKCk7XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGl0ZW1zaG93OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAhaXNVbmRlZmluZWQodGhpcy5wcmV2SW5kZXgpICYmIGFkZENsYXNzKHRoaXMuX2dldFRyYW5zaXRpb25lcigpLmdldEl0ZW1JbigpLCB0aGlzLmNsc0FjdGl2ZSk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBpdGVtc2hvd246IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgICAgICAgICAgICAgdmFyIGFjdGl2ZXMgPSB0aGlzLl9nZXRUcmFuc2l0aW9uZXIodGhpcy5pbmRleCkuZ2V0QWN0aXZlcygpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2xpZGVzLmZvckVhY2goZnVuY3Rpb24gKHNsaWRlKSB7IHJldHVybiB0b2dnbGVDbGFzcyhzbGlkZSwgdGhpcyQxLmNsc0FjdGl2ZSwgaW5jbHVkZXMoYWN0aXZlcywgc2xpZGUpKTsgfSk7XG4gICAgICAgICAgICAgICAgKCF0aGlzLnNldHMgfHwgaW5jbHVkZXModGhpcy5zZXRzLCB0b0Zsb2F0KHRoaXMuaW5kZXgpKSkgJiYgdGhpcy5zbGlkZXMuZm9yRWFjaChmdW5jdGlvbiAoc2xpZGUpIHsgcmV0dXJuIHRvZ2dsZUNsYXNzKHNsaWRlLCB0aGlzJDEuY2xzQWN0aXZhdGVkLCBpbmNsdWRlcyhhY3RpdmVzLCBzbGlkZSkpOyB9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIG1ldGhvZHM6IHtcblxuICAgICAgICAgICAgcmVvcmRlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG5cblxuICAgICAgICAgICAgICAgIGNzcyh0aGlzLnNsaWRlcywgJ29yZGVyJywgJycpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZmluaXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB2YXIgaW5kZXgkJDEgPSB0aGlzLmRpciA+IDAgJiYgdGhpcy5zbGlkZXNbdGhpcy5wcmV2SW5kZXhdID8gdGhpcy5wcmV2SW5kZXggOiB0aGlzLmluZGV4O1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zbGlkZXMuZm9yRWFjaChmdW5jdGlvbiAoc2xpZGUsIGkpIHsgcmV0dXJuIGNzcyhzbGlkZSwgJ29yZGVyJywgdGhpcyQxLmRpciA+IDAgJiYgaSA8IGluZGV4JCQxXG4gICAgICAgICAgICAgICAgICAgICAgICA/IDFcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcyQxLmRpciA8IDAgJiYgaSA+PSB0aGlzJDEuaW5kZXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IC0xXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgICAgICAgICAgICApOyB9XG4gICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jZW50ZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBuZXh0ID0gdGhpcy5zbGlkZXNbaW5kZXgkJDFdO1xuICAgICAgICAgICAgICAgIHZhciB3aWR0aCQkMSA9IHRoaXMubGlzdC5vZmZzZXRXaWR0aCAvIDIgLSBuZXh0Lm9mZnNldFdpZHRoIC8gMjtcbiAgICAgICAgICAgICAgICB2YXIgaiA9IDA7XG5cbiAgICAgICAgICAgICAgICB3aGlsZSAod2lkdGgkJDEgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzbGlkZUluZGV4ID0gdGhpcyQxLmdldEluZGV4KC0taiArIGluZGV4JCQxLCBpbmRleCQkMSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciBzbGlkZSA9IHRoaXMkMS5zbGlkZXNbc2xpZGVJbmRleF07XG5cbiAgICAgICAgICAgICAgICAgICAgY3NzKHNsaWRlLCAnb3JkZXInLCBzbGlkZUluZGV4ID4gaW5kZXgkJDEgPyAtMiA6IC0xKTtcbiAgICAgICAgICAgICAgICAgICAgd2lkdGgkJDEgLT0gc2xpZGUub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBnZXRWYWxpZEluZGV4OiBmdW5jdGlvbihpbmRleCQkMSwgcHJldkluZGV4KSB7XG4gICAgICAgICAgICAgICAgdmFyIHRoaXMkMSA9IHRoaXM7XG4gICAgICAgICAgICAgICAgaWYgKCBpbmRleCQkMSA9PT0gdm9pZCAwICkgaW5kZXgkJDEgPSB0aGlzLmluZGV4O1xuICAgICAgICAgICAgICAgIGlmICggcHJldkluZGV4ID09PSB2b2lkIDAgKSBwcmV2SW5kZXggPSB0aGlzLnByZXZJbmRleDtcblxuXG4gICAgICAgICAgICAgICAgaW5kZXgkJDEgPSB0aGlzLmdldEluZGV4KGluZGV4JCQxLCBwcmV2SW5kZXgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnNldHMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGluZGV4JCQxO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHZhciBwcmV2O1xuXG4gICAgICAgICAgICAgICAgZG8ge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmNsdWRlcyh0aGlzJDEuc2V0cywgaW5kZXgkJDEpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW5kZXgkJDE7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBwcmV2ID0gaW5kZXgkJDE7XG4gICAgICAgICAgICAgICAgICAgIGluZGV4JCQxID0gdGhpcyQxLmdldEluZGV4KGluZGV4JCQxICsgdGhpcyQxLmRpciwgcHJldkluZGV4KTtcblxuICAgICAgICAgICAgICAgIH0gd2hpbGUgKGluZGV4JCQxICE9PSBwcmV2KTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBpbmRleCQkMTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgdmFyIFNsaWRlclBhcmFsbGF4ID0ge1xuXG4gICAgICAgIG1peGluczogW1BhcmFsbGF4XSxcblxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBzZWxJdGVtOiAnIWxpJ1xuICAgICAgICB9LFxuXG4gICAgICAgIGNvbXB1dGVkOiB7XG5cbiAgICAgICAgICAgIGl0ZW06IGZ1bmN0aW9uKHJlZiwgJGVsKSB7XG4gICAgICAgICAgICAgICAgdmFyIHNlbEl0ZW0gPSByZWYuc2VsSXRlbTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBxdWVyeShzZWxJdGVtLCAkZWwpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgZXZlbnRzOiBbXG5cbiAgICAgICAgICAgIHtcblxuICAgICAgICAgICAgICAgIG5hbWU6ICdpdGVtc2hvd24nLFxuXG4gICAgICAgICAgICAgICAgc2VsZjogdHJ1ZSxcblxuICAgICAgICAgICAgICAgIGVsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbTtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIGNzcyh0aGlzLiRlbCwgdGhpcy5nZXRDc3MoLjUpKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnaXRlbWluIGl0ZW1vdXQnLFxuXG4gICAgICAgICAgICAgICAgc2VsZjogdHJ1ZSxcblxuICAgICAgICAgICAgICAgIGVsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbTtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0eXBlID0gcmVmLnR5cGU7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZWZfZGV0YWlsID0gcmVmLmRldGFpbDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBlcmNlbnQgPSByZWZfZGV0YWlsLnBlcmNlbnQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkdXJhdGlvbiA9IHJlZl9kZXRhaWwuZHVyYXRpb247XG4gICAgICAgICAgICAgICAgICAgIHZhciB0aW1pbmcgPSByZWZfZGV0YWlsLnRpbWluZztcbiAgICAgICAgICAgICAgICAgICAgdmFyIGRpciA9IHJlZl9kZXRhaWwuZGlyO1xuXG5cbiAgICAgICAgICAgICAgICAgICAgVHJhbnNpdGlvbi5jYW5jZWwodGhpcy4kZWwpO1xuICAgICAgICAgICAgICAgICAgICBjc3ModGhpcy4kZWwsIHRoaXMuZ2V0Q3NzKGdldEN1cnJlbnQodHlwZSwgZGlyLCBwZXJjZW50KSkpO1xuXG4gICAgICAgICAgICAgICAgICAgIFRyYW5zaXRpb24uc3RhcnQodGhpcy4kZWwsIHRoaXMuZ2V0Q3NzKGlzSW4odHlwZSlcbiAgICAgICAgICAgICAgICAgICAgICAgID8gLjVcbiAgICAgICAgICAgICAgICAgICAgICAgIDogZGlyID4gMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gMVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogMFxuICAgICAgICAgICAgICAgICAgICApLCBkdXJhdGlvbiwgdGltaW5nKS5jYXRjaChub29wKTtcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAndHJhbnNpdGlvbmNhbmNlbGVkIHRyYW5zaXRpb25lbmQnLFxuXG4gICAgICAgICAgICAgICAgc2VsZjogdHJ1ZSxcblxuICAgICAgICAgICAgICAgIGVsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbTtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIFRyYW5zaXRpb24uY2FuY2VsKHRoaXMuJGVsKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnaXRlbXRyYW5zbGF0ZWluIGl0ZW10cmFuc2xhdGVvdXQnLFxuXG4gICAgICAgICAgICAgICAgc2VsZjogdHJ1ZSxcblxuICAgICAgICAgICAgICAgIGVsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXRlbTtcbiAgICAgICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciB0eXBlID0gcmVmLnR5cGU7XG4gICAgICAgICAgICAgICAgICAgIHZhciByZWZfZGV0YWlsID0gcmVmLmRldGFpbDtcbiAgICAgICAgICAgICAgICAgICAgdmFyIHBlcmNlbnQgPSByZWZfZGV0YWlsLnBlcmNlbnQ7XG4gICAgICAgICAgICAgICAgICAgIHZhciBkaXIgPSByZWZfZGV0YWlsLmRpcjtcblxuICAgICAgICAgICAgICAgICAgICBUcmFuc2l0aW9uLmNhbmNlbCh0aGlzLiRlbCk7XG4gICAgICAgICAgICAgICAgICAgIGNzcyh0aGlzLiRlbCwgdGhpcy5nZXRDc3MoZ2V0Q3VycmVudCh0eXBlLCBkaXIsIHBlcmNlbnQpKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgIF1cblxuICAgIH07XG5cbiAgICBmdW5jdGlvbiBpc0luKHR5cGUpIHtcbiAgICAgICAgcmV0dXJuIGVuZHNXaXRoKHR5cGUsICdpbicpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGdldEN1cnJlbnQodHlwZSwgZGlyLCBwZXJjZW50KSB7XG5cbiAgICAgICAgcGVyY2VudCAvPSAyO1xuXG4gICAgICAgIHJldHVybiAhaXNJbih0eXBlKVxuICAgICAgICAgICAgPyBkaXIgPCAwXG4gICAgICAgICAgICAgICAgPyBwZXJjZW50XG4gICAgICAgICAgICAgICAgOiAxIC0gcGVyY2VudFxuICAgICAgICAgICAgOiBkaXIgPCAwXG4gICAgICAgICAgICAgICAgPyAxIC0gcGVyY2VudFxuICAgICAgICAgICAgICAgIDogcGVyY2VudDtcbiAgICB9XG5cbiAgICB2YXIgQW5pbWF0aW9ucyQyID0gYXNzaWduKHt9LCBBbmltYXRpb25zLCB7XG5cbiAgICAgICAgZmFkZToge1xuXG4gICAgICAgICAgICBzaG93OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB7b3BhY2l0eTogMCwgekluZGV4OiAwfSxcbiAgICAgICAgICAgICAgICAgICAge3pJbmRleDogLTF9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHBlcmNlbnQ6IGZ1bmN0aW9uKGN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gMSAtIGNzcyhjdXJyZW50LCAnb3BhY2l0eScpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbihwZXJjZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAge29wYWNpdHk6IDEgLSBwZXJjZW50LCB6SW5kZXg6IDB9LFxuICAgICAgICAgICAgICAgICAgICB7ekluZGV4OiAtMX1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgc2NhbGU6IHtcblxuICAgICAgICAgICAgc2hvdzogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAgICAgICAgICAge29wYWNpdHk6IDAsIHRyYW5zZm9ybTogc2NhbGUzZCgxICsgLjUpLCB6SW5kZXg6IDB9LFxuICAgICAgICAgICAgICAgICAgICB7ekluZGV4OiAtMX1cbiAgICAgICAgICAgICAgICBdO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgcGVyY2VudDogZnVuY3Rpb24oY3VycmVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAxIC0gY3NzKGN1cnJlbnQsICdvcGFjaXR5Jyk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB0cmFuc2xhdGU6IGZ1bmN0aW9uKHBlcmNlbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgICAgICB7b3BhY2l0eTogMSAtIHBlcmNlbnQsIHRyYW5zZm9ybTogc2NhbGUzZCgxICsgLjUgKiBwZXJjZW50KSwgekluZGV4OiAwfSxcbiAgICAgICAgICAgICAgICAgICAge3pJbmRleDogLTF9XG4gICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIHB1bGw6IHtcblxuICAgICAgICAgICAgc2hvdzogZnVuY3Rpb24oZGlyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpciA8IDBcbiAgICAgICAgICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7dHJhbnNmb3JtOiB0cmFuc2xhdGUoMzApLCB6SW5kZXg6IC0xfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZSgpLCB6SW5kZXg6IDB9IF1cbiAgICAgICAgICAgICAgICAgICAgOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7dHJhbnNmb3JtOiB0cmFuc2xhdGUoLTEwMCksIHpJbmRleDogMH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7dHJhbnNmb3JtOiB0cmFuc2xhdGUoKSwgekluZGV4OiAtMX1cbiAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHBlcmNlbnQ6IGZ1bmN0aW9uKGN1cnJlbnQsIG5leHQsIGRpcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXIgPCAwXG4gICAgICAgICAgICAgICAgICAgID8gMSAtIHRyYW5zbGF0ZWQobmV4dClcbiAgICAgICAgICAgICAgICAgICAgOiB0cmFuc2xhdGVkKGN1cnJlbnQpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbihwZXJjZW50LCBkaXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlyIDwgMFxuICAgICAgICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZSgzMCAqIHBlcmNlbnQpLCB6SW5kZXg6IC0xfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMTAwICogKDEgLSBwZXJjZW50KSksIHpJbmRleDogMH0gXVxuICAgICAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtcGVyY2VudCAqIDEwMCksIHpJbmRleDogMH0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7dHJhbnNmb3JtOiB0cmFuc2xhdGUoMzAgKiAoMSAtIHBlcmNlbnQpKSwgekluZGV4OiAtMX1cbiAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIHB1c2g6IHtcblxuICAgICAgICAgICAgc2hvdzogZnVuY3Rpb24oZGlyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGRpciA8IDBcbiAgICAgICAgICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7dHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwKSwgekluZGV4OiAwfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZSgpLCB6SW5kZXg6IC0xfSBdXG4gICAgICAgICAgICAgICAgICAgIDogW1xuICAgICAgICAgICAgICAgICAgICAgICAge3RyYW5zZm9ybTogdHJhbnNsYXRlKC0zMCksIHpJbmRleDogLTF9LFxuICAgICAgICAgICAgICAgICAgICAgICAge3RyYW5zZm9ybTogdHJhbnNsYXRlKCksIHpJbmRleDogMH1cbiAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHBlcmNlbnQ6IGZ1bmN0aW9uKGN1cnJlbnQsIG5leHQsIGRpcikge1xuICAgICAgICAgICAgICAgIHJldHVybiBkaXIgPiAwXG4gICAgICAgICAgICAgICAgICAgID8gMSAtIHRyYW5zbGF0ZWQobmV4dClcbiAgICAgICAgICAgICAgICAgICAgOiB0cmFuc2xhdGVkKGN1cnJlbnQpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgdHJhbnNsYXRlOiBmdW5jdGlvbihwZXJjZW50LCBkaXIpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZGlyIDwgMFxuICAgICAgICAgICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZShwZXJjZW50ICogMTAwKSwgekluZGV4OiAwfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMzAgKiAoMSAtIHBlcmNlbnQpKSwgekluZGV4OiAtMX0gXVxuICAgICAgICAgICAgICAgICAgICA6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgIHt0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMzAgKiBwZXJjZW50KSwgekluZGV4OiAtMX0sXG4gICAgICAgICAgICAgICAgICAgICAgICB7dHJhbnNmb3JtOiB0cmFuc2xhdGUoMTAwICogKDEgLSBwZXJjZW50KSksIHpJbmRleDogMH1cbiAgICAgICAgICAgICAgICAgICAgXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9KTtcblxuICAgIHZhciBTbGlkZXNob3ckMSA9IHtcblxuICAgICAgICBtaXhpbnM6IFtDbGFzcywgU2xpZGVzaG93LCBTbGlkZXJSZWFjdGl2ZV0sXG5cbiAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgIHJhdGlvOiBTdHJpbmcsXG4gICAgICAgICAgICBtaW5IZWlnaHQ6IEJvb2xlYW4sXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IEJvb2xlYW4sXG4gICAgICAgIH0sXG5cbiAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgcmF0aW86ICcxNjo5JyxcbiAgICAgICAgICAgIG1pbkhlaWdodDogZmFsc2UsXG4gICAgICAgICAgICBtYXhIZWlnaHQ6IGZhbHNlLFxuICAgICAgICAgICAgc2VsTGlzdDogJy51ay1zbGlkZXNob3ctaXRlbXMnLFxuICAgICAgICAgICAgYXR0ckl0ZW06ICd1ay1zbGlkZXNob3ctaXRlbScsXG4gICAgICAgICAgICBzZWxOYXY6ICcudWstc2xpZGVzaG93LW5hdicsXG4gICAgICAgICAgICBBbmltYXRpb25zOiBBbmltYXRpb25zJDJcbiAgICAgICAgfSxcblxuICAgICAgICB1cGRhdGU6IHtcblxuICAgICAgICAgICAgcmVhZDogZnVuY3Rpb24oKSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgcmVmID0gdGhpcy5yYXRpby5zcGxpdCgnOicpLm1hcChOdW1iZXIpO1xuICAgICAgICAgICAgICAgIHZhciB3aWR0aCQkMSA9IHJlZlswXTtcbiAgICAgICAgICAgICAgICB2YXIgaGVpZ2h0JCQxID0gcmVmWzFdO1xuXG4gICAgICAgICAgICAgICAgaGVpZ2h0JCQxID0gaGVpZ2h0JCQxICogdGhpcy4kZWwub2Zmc2V0V2lkdGggLyB3aWR0aCQkMTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm1pbkhlaWdodCkge1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQkJDEgPSBNYXRoLm1heCh0aGlzLm1pbkhlaWdodCwgaGVpZ2h0JCQxKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tYXhIZWlnaHQpIHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0JCQxID0gTWF0aC5taW4odGhpcy5tYXhIZWlnaHQsIGhlaWdodCQkMSk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHtoZWlnaHQ6IGhlaWdodCQkMX07XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICB3cml0ZTogZnVuY3Rpb24ocmVmKSB7XG4gICAgICAgICAgICAgICAgdmFyIGhndCA9IHJlZi5oZWlnaHQ7XG5cbiAgICAgICAgICAgICAgICBoZWlnaHQodGhpcy5saXN0LCBNYXRoLmZsb29yKGhndCkpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZXZlbnRzOiBbJ2xvYWQnLCAncmVzaXplJ11cblxuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgdmFyIG9iaiQxO1xuXG4gICAgdmFyIFNvcnRhYmxlID0ge1xuXG4gICAgICAgIG1peGluczogW0NsYXNzLCBBbmltYXRlXSxcblxuICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgZ3JvdXA6IFN0cmluZyxcbiAgICAgICAgICAgIHRocmVzaG9sZDogTnVtYmVyLFxuICAgICAgICAgICAgY2xzSXRlbTogU3RyaW5nLFxuICAgICAgICAgICAgY2xzUGxhY2Vob2xkZXI6IFN0cmluZyxcbiAgICAgICAgICAgIGNsc0RyYWc6IFN0cmluZyxcbiAgICAgICAgICAgIGNsc0RyYWdTdGF0ZTogU3RyaW5nLFxuICAgICAgICAgICAgY2xzQmFzZTogU3RyaW5nLFxuICAgICAgICAgICAgY2xzTm9EcmFnOiBTdHJpbmcsXG4gICAgICAgICAgICBjbHNFbXB0eTogU3RyaW5nLFxuICAgICAgICAgICAgY2xzQ3VzdG9tOiBTdHJpbmcsXG4gICAgICAgICAgICBoYW5kbGU6IFN0cmluZ1xuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGdyb3VwOiBmYWxzZSxcbiAgICAgICAgICAgIHRocmVzaG9sZDogNSxcbiAgICAgICAgICAgIGNsc0l0ZW06ICd1ay1zb3J0YWJsZS1pdGVtJyxcbiAgICAgICAgICAgIGNsc1BsYWNlaG9sZGVyOiAndWstc29ydGFibGUtcGxhY2Vob2xkZXInLFxuICAgICAgICAgICAgY2xzRHJhZzogJ3VrLXNvcnRhYmxlLWRyYWcnLFxuICAgICAgICAgICAgY2xzRHJhZ1N0YXRlOiAndWstZHJhZycsXG4gICAgICAgICAgICBjbHNCYXNlOiAndWstc29ydGFibGUnLFxuICAgICAgICAgICAgY2xzTm9EcmFnOiAndWstc29ydGFibGUtbm9kcmFnJyxcbiAgICAgICAgICAgIGNsc0VtcHR5OiAndWstc29ydGFibGUtZW1wdHknLFxuICAgICAgICAgICAgY2xzQ3VzdG9tOiAnJyxcbiAgICAgICAgICAgIGhhbmRsZTogZmFsc2VcbiAgICAgICAgfSxcblxuICAgICAgICBpbml0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG4gICAgICAgICAgICBbJ2luaXQnLCAnc3RhcnQnLCAnbW92ZScsICdlbmQnXS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgICAgICAgICAgICAgICB2YXIgZm4gPSB0aGlzJDFba2V5XTtcbiAgICAgICAgICAgICAgICB0aGlzJDFba2V5XSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMkMS5zY3JvbGxZID0gd2luZG93LnBhZ2VZT2Zmc2V0O1xuICAgICAgICAgICAgICAgICAgICB2YXIgcmVmID0gZ2V0UG9zJDEoZSk7XG4gICAgICAgICAgICAgICAgICAgIHZhciB4ID0gcmVmLng7XG4gICAgICAgICAgICAgICAgICAgIHZhciB5ID0gcmVmLnk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMkMS5wb3MgPSB7eDogeCwgeTogeX07XG5cbiAgICAgICAgICAgICAgICAgICAgZm4oZSk7XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuXG4gICAgICAgIGV2ZW50czogKCBvYmokMSA9IHt9LCBvYmokMVtwb2ludGVyRG93bl0gPSAnaW5pdCcsIG9iaiQxICksXG5cbiAgICAgICAgdXBkYXRlOiB7XG5cbiAgICAgICAgICAgIHdyaXRlOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNsc0VtcHR5KSB7XG4gICAgICAgICAgICAgICAgICAgIHRvZ2dsZUNsYXNzKHRoaXMuJGVsLCB0aGlzLmNsc0VtcHR5LCAhdGhpcy4kZWwuY2hpbGRyZW4ubGVuZ3RoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZHJhZykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgb2Zmc2V0KHRoaXMuZHJhZywge3RvcDogdGhpcy5wb3MueSArIHRoaXMub3JpZ2luLnRvcCwgbGVmdDogdGhpcy5wb3MueCArIHRoaXMub3JpZ2luLmxlZnR9KTtcblxuICAgICAgICAgICAgICAgIHZhciByZWYgPSBvZmZzZXQodGhpcy5kcmFnKTtcbiAgICAgICAgICAgICAgICB2YXIgdG9wID0gcmVmLnRvcDtcbiAgICAgICAgICAgICAgICB2YXIgYm90dG9tID0gdG9wICsgdGhpcy5kcmFnLm9mZnNldEhlaWdodDtcbiAgICAgICAgICAgICAgICB2YXIgc2Nyb2xsO1xuXG4gICAgICAgICAgICAgICAgaWYgKHRvcCA+IDAgJiYgdG9wIDwgdGhpcy5zY3JvbGxZKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbCA9IHRoaXMuc2Nyb2xsWSAtIDU7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChib3R0b20gPCBoZWlnaHQoZG9jdW1lbnQpICYmIGJvdHRvbSA+IGhlaWdodCh3aW5kb3cpICsgdGhpcy5zY3JvbGxZKSB7XG4gICAgICAgICAgICAgICAgICAgIHNjcm9sbCA9IHRoaXMuc2Nyb2xsWSArIDU7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgc2Nyb2xsICYmIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkgeyByZXR1cm4gd2luZG93LnNjcm9sbCh3aW5kb3cucGFnZVhPZmZzZXQsIHNjcm9sbCk7IH0sIDUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgIH0sXG5cbiAgICAgICAgbWV0aG9kczoge1xuXG4gICAgICAgICAgICBpbml0OiBmdW5jdGlvbihlKSB7XG5cbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZS50YXJnZXQ7XG4gICAgICAgICAgICAgICAgdmFyIGJ1dHRvbiA9IGUuYnV0dG9uO1xuICAgICAgICAgICAgICAgIHZhciBkZWZhdWx0UHJldmVudGVkID0gZS5kZWZhdWx0UHJldmVudGVkO1xuICAgICAgICAgICAgICAgIHZhciByZWYgPSB0b05vZGVzKHRoaXMuJGVsLmNoaWxkcmVuKS5maWx0ZXIoZnVuY3Rpb24gKGVsKSB7IHJldHVybiB3aXRoaW4odGFyZ2V0LCBlbCk7IH0pO1xuICAgICAgICAgICAgICAgIHZhciBwbGFjZWhvbGRlciA9IHJlZlswXTtcblxuICAgICAgICAgICAgICAgIGlmICghcGxhY2Vob2xkZXJcbiAgICAgICAgICAgICAgICAgICAgfHwgaXNJbnB1dChlLnRhcmdldClcbiAgICAgICAgICAgICAgICAgICAgfHwgdGhpcy5oYW5kbGUgJiYgIXdpdGhpbih0YXJnZXQsIHRoaXMuaGFuZGxlKVxuICAgICAgICAgICAgICAgICAgICB8fCBidXR0b24gPiAwXG4gICAgICAgICAgICAgICAgICAgIHx8IHdpdGhpbih0YXJnZXQsIChcIi5cIiArICh0aGlzLmNsc05vRHJhZykpKVxuICAgICAgICAgICAgICAgICAgICB8fCBkZWZhdWx0UHJldmVudGVkXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnRvdWNoZWQgPSBbdGhpc107XG4gICAgICAgICAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IHBsYWNlaG9sZGVyO1xuICAgICAgICAgICAgICAgIHRoaXMub3JpZ2luID0gYXNzaWduKHt0YXJnZXQ6IHRhcmdldCwgaW5kZXg6IGluZGV4KHBsYWNlaG9sZGVyKX0sIHRoaXMucG9zKTtcblxuICAgICAgICAgICAgICAgIG9uKGRvY3VtZW50LCBwb2ludGVyTW92ZSwgdGhpcy5tb3ZlKTtcbiAgICAgICAgICAgICAgICBvbihkb2N1bWVudCwgcG9pbnRlclVwLCB0aGlzLmVuZCk7XG4gICAgICAgICAgICAgICAgb24od2luZG93LCAnc2Nyb2xsJywgdGhpcy5zY3JvbGwpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0KGUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc3RhcnQ6IGZ1bmN0aW9uKGUpIHtcblxuICAgICAgICAgICAgICAgIHRoaXMuZHJhZyA9IGFwcGVuZCh0aGlzLiRjb250YWluZXIsIHRoaXMucGxhY2Vob2xkZXIub3V0ZXJIVE1MLnJlcGxhY2UoL148bGkvaSwgJzxkaXYnKS5yZXBsYWNlKC9saT4kL2ksICdkaXY+JykpO1xuXG4gICAgICAgICAgICAgICAgY3NzKHRoaXMuZHJhZywgYXNzaWduKHtcbiAgICAgICAgICAgICAgICAgICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB0aGlzLnBsYWNlaG9sZGVyLm9mZnNldFdpZHRoLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IHRoaXMucGxhY2Vob2xkZXIub2Zmc2V0SGVpZ2h0XG4gICAgICAgICAgICAgICAgfSwgY3NzKHRoaXMucGxhY2Vob2xkZXIsIFsncGFkZGluZ0xlZnQnLCAncGFkZGluZ1JpZ2h0JywgJ3BhZGRpbmdUb3AnLCAncGFkZGluZ0JvdHRvbSddKSkpO1xuICAgICAgICAgICAgICAgIGF0dHIodGhpcy5kcmFnLCAndWstbm8tYm9vdCcsICcnKTtcbiAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLmRyYWcsIHRoaXMuY2xzRHJhZywgdGhpcy5jbHNDdXN0b20pO1xuXG4gICAgICAgICAgICAgICAgaGVpZ2h0KHRoaXMuZHJhZy5maXJzdEVsZW1lbnRDaGlsZCwgaGVpZ2h0KHRoaXMucGxhY2Vob2xkZXIuZmlyc3RFbGVtZW50Q2hpbGQpKTtcblxuICAgICAgICAgICAgICAgIHZhciByZWYgPSBvZmZzZXQodGhpcy5wbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgICAgdmFyIGxlZnQgPSByZWYubGVmdDtcbiAgICAgICAgICAgICAgICB2YXIgdG9wID0gcmVmLnRvcDtcbiAgICAgICAgICAgICAgICBhc3NpZ24odGhpcy5vcmlnaW4sIHtsZWZ0OiBsZWZ0IC0gdGhpcy5wb3MueCwgdG9wOiB0b3AgLSB0aGlzLnBvcy55fSk7XG5cbiAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLnBsYWNlaG9sZGVyLCB0aGlzLmNsc1BsYWNlaG9sZGVyKTtcbiAgICAgICAgICAgICAgICBhZGRDbGFzcyh0aGlzLiRlbC5jaGlsZHJlbiwgdGhpcy5jbHNJdGVtKTtcbiAgICAgICAgICAgICAgICBhZGRDbGFzcyhkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHRoaXMuY2xzRHJhZ1N0YXRlKTtcblxuICAgICAgICAgICAgICAgIHRyaWdnZXIodGhpcy4kZWwsICdzdGFydCcsIFt0aGlzLCB0aGlzLnBsYWNlaG9sZGVyXSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLm1vdmUoZSk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBtb3ZlOiBmdW5jdGlvbihlKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZHJhZykge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChNYXRoLmFicyh0aGlzLnBvcy54IC0gdGhpcy5vcmlnaW4ueCkgPiB0aGlzLnRocmVzaG9sZCB8fCBNYXRoLmFicyh0aGlzLnBvcy55IC0gdGhpcy5vcmlnaW4ueSkgPiB0aGlzLnRocmVzaG9sZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydChlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCk7XG5cbiAgICAgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZS50eXBlID09PSAnbW91c2Vtb3ZlJyA/IGUudGFyZ2V0IDogZG9jdW1lbnQuZWxlbWVudEZyb21Qb2ludCh0aGlzLnBvcy54IC0gZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0LCB0aGlzLnBvcy55IC0gZG9jdW1lbnQuYm9keS5zY3JvbGxUb3ApO1xuXG4gICAgICAgICAgICAgICAgdmFyIHNvcnRhYmxlID0gdGhpcy5nZXRTb3J0YWJsZSh0YXJnZXQpO1xuICAgICAgICAgICAgICAgIHZhciBwcmV2aW91cyA9IHRoaXMuZ2V0U29ydGFibGUodGhpcy5wbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgICAgdmFyIG1vdmUgPSBzb3J0YWJsZSAhPT0gcHJldmlvdXM7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXNvcnRhYmxlIHx8IHdpdGhpbih0YXJnZXQsIHRoaXMucGxhY2Vob2xkZXIpIHx8IG1vdmUgJiYgKCFzb3J0YWJsZS5ncm91cCB8fCBzb3J0YWJsZS5ncm91cCAhPT0gcHJldmlvdXMuZ3JvdXApKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICB0YXJnZXQgPSBzb3J0YWJsZS4kZWwgPT09IHRhcmdldC5wYXJlbnROb2RlICYmIHRhcmdldCB8fCB0b05vZGVzKHNvcnRhYmxlLiRlbC5jaGlsZHJlbikuZmlsdGVyKGZ1bmN0aW9uIChlbGVtZW50KSB7IHJldHVybiB3aXRoaW4odGFyZ2V0LCBlbGVtZW50KTsgfSlbMF07XG5cbiAgICAgICAgICAgICAgICBpZiAobW92ZSkge1xuICAgICAgICAgICAgICAgICAgICBwcmV2aW91cy5yZW1vdmUodGhpcy5wbGFjZWhvbGRlcik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghdGFyZ2V0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBzb3J0YWJsZS5pbnNlcnQodGhpcy5wbGFjZWhvbGRlciwgdGFyZ2V0KTtcblxuICAgICAgICAgICAgICAgIGlmICghaW5jbHVkZXModGhpcy50b3VjaGVkLCBzb3J0YWJsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b3VjaGVkLnB1c2goc29ydGFibGUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgc2Nyb2xsOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICB2YXIgc2Nyb2xsID0gd2luZG93LnBhZ2VZT2Zmc2V0O1xuICAgICAgICAgICAgICAgIGlmIChzY3JvbGwgIT09IHRoaXMuc2Nyb2xsWSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcy55ICs9IHNjcm9sbCAtIHRoaXMuc2Nyb2xsWTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zY3JvbGxZID0gc2Nyb2xsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLiRlbWl0KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZW5kOiBmdW5jdGlvbihlKSB7XG5cbiAgICAgICAgICAgICAgICBvZmYoZG9jdW1lbnQsIHBvaW50ZXJNb3ZlLCB0aGlzLm1vdmUpO1xuICAgICAgICAgICAgICAgIG9mZihkb2N1bWVudCwgcG9pbnRlclVwLCB0aGlzLmVuZCk7XG4gICAgICAgICAgICAgICAgb2ZmKHdpbmRvdywgJ3Njcm9sbCcsIHRoaXMuc2Nyb2xsKTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5kcmFnKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGUudHlwZSAhPT0gJ21vdXNldXAnICYmIHdpdGhpbihlLnRhcmdldCwgJ2FbaHJlZl0nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb24uaHJlZiA9IGNsb3Nlc3QoZS50YXJnZXQsICdhW2hyZWZdJykuaHJlZjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBwcmV2ZW50Q2xpY2soKTtcblxuICAgICAgICAgICAgICAgIHZhciBzb3J0YWJsZSA9IHRoaXMuZ2V0U29ydGFibGUodGhpcy5wbGFjZWhvbGRlcik7XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcyA9PT0gc29ydGFibGUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMub3JpZ2luLmluZGV4ICE9PSBpbmRleCh0aGlzLnBsYWNlaG9sZGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcih0aGlzLiRlbCwgJ21vdmVkJywgW3RoaXMsIHRoaXMucGxhY2Vob2xkZXJdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRyaWdnZXIoc29ydGFibGUuJGVsLCAnYWRkZWQnLCBbc29ydGFibGUsIHRoaXMucGxhY2Vob2xkZXJdKTtcbiAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcih0aGlzLiRlbCwgJ3JlbW92ZWQnLCBbdGhpcywgdGhpcy5wbGFjZWhvbGRlcl0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRyaWdnZXIodGhpcy4kZWwsICdzdG9wJywgW3RoaXMsIHRoaXMucGxhY2Vob2xkZXJdKTtcblxuICAgICAgICAgICAgICAgIHJlbW92ZSh0aGlzLmRyYWcpO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZyA9IG51bGw7XG5cbiAgICAgICAgICAgICAgICB2YXIgY2xhc3NlcyA9IHRoaXMudG91Y2hlZC5tYXAoZnVuY3Rpb24gKHNvcnRhYmxlKSB7IHJldHVybiAoKHNvcnRhYmxlLmNsc1BsYWNlaG9sZGVyKSArIFwiIFwiICsgKHNvcnRhYmxlLmNsc0l0ZW0pKTsgfSkuam9pbignICcpO1xuICAgICAgICAgICAgICAgIHRoaXMudG91Y2hlZC5mb3JFYWNoKGZ1bmN0aW9uIChzb3J0YWJsZSkgeyByZXR1cm4gcmVtb3ZlQ2xhc3Moc29ydGFibGUuJGVsLmNoaWxkcmVuLCBjbGFzc2VzKTsgfSk7XG5cbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyhkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQsIHRoaXMuY2xzRHJhZ1N0YXRlKTtcblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgaW5zZXJ0OiBmdW5jdGlvbihlbGVtZW50LCB0YXJnZXQpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kZWwuY2hpbGRyZW4sIHRoaXMuY2xzSXRlbSk7XG5cbiAgICAgICAgICAgICAgICB2YXIgaW5zZXJ0ID0gZnVuY3Rpb24gKCkge1xuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0YXJnZXQpIHtcblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF3aXRoaW4oZWxlbWVudCwgdGhpcyQxLiRlbCkgfHwgaXNQcmVkZWNlc3NvcihlbGVtZW50LCB0YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVmb3JlKHRhcmdldCwgZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFmdGVyKHRhcmdldCwgZWxlbWVudCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVuZCh0aGlzJDEuJGVsLCBlbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmFuaW1hdGlvbikge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmFuaW1hdGUoaW5zZXJ0KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpbnNlcnQoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIHJlbW92ZTogZnVuY3Rpb24oZWxlbWVudCkge1xuXG4gICAgICAgICAgICAgICAgaWYgKCF3aXRoaW4oZWxlbWVudCwgdGhpcy4kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5hbmltYXRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hbmltYXRlKGZ1bmN0aW9uICgpIHsgcmV0dXJuIHJlbW92ZShlbGVtZW50KTsgfSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKGVsZW1lbnQpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZ2V0U29ydGFibGU6IGZ1bmN0aW9uKGVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZWxlbWVudCAmJiAodGhpcy4kZ2V0Q29tcG9uZW50KGVsZW1lbnQsICdzb3J0YWJsZScpIHx8IHRoaXMuZ2V0U29ydGFibGUoZWxlbWVudC5wYXJlbnROb2RlKSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfVxuXG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGlzUHJlZGVjZXNzb3IoZWxlbWVudCwgdGFyZ2V0KSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50LnBhcmVudE5vZGUgPT09IHRhcmdldC5wYXJlbnROb2RlICYmIGluZGV4KGVsZW1lbnQpID4gaW5kZXgodGFyZ2V0KTtcbiAgICB9XG5cbiAgICB2YXIgb2JqJDI7XG5cbiAgICB2YXIgYWN0aXZlcyA9IFtdO1xuXG4gICAgdmFyIFRvb2x0aXAgPSB7XG5cbiAgICAgICAgYXR0cnM6IHRydWUsXG5cbiAgICAgICAgYXJnczogJ3RpdGxlJyxcblxuICAgICAgICBtaXhpbnM6IFtDb250YWluZXIsIFRvZ2dsYWJsZSwgUG9zaXRpb25dLFxuXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBkZWxheTogTnVtYmVyLFxuICAgICAgICAgICAgdGl0bGU6IFN0cmluZ1xuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIHBvczogJ3RvcCcsXG4gICAgICAgICAgICB0aXRsZTogJycsXG4gICAgICAgICAgICBkZWxheTogMCxcbiAgICAgICAgICAgIGFuaW1hdGlvbjogWyd1ay1hbmltYXRpb24tc2NhbGUtdXAnXSxcbiAgICAgICAgICAgIGR1cmF0aW9uOiAxMDAsXG4gICAgICAgICAgICBjbHM6ICd1ay1hY3RpdmUnLFxuICAgICAgICAgICAgY2xzUG9zOiAndWstdG9vbHRpcCdcbiAgICAgICAgfSxcblxuICAgICAgICBiZWZvcmVDb25uZWN0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHRoaXMuX2hhc1RpdGxlID0gaGFzQXR0cih0aGlzLiRlbCwgJ3RpdGxlJyk7XG4gICAgICAgICAgICBhdHRyKHRoaXMuJGVsLCB7dGl0bGU6ICcnLCAnYXJpYS1leHBhbmRlZCc6IGZhbHNlfSk7XG4gICAgICAgIH0sXG5cbiAgICAgICAgZGlzY29ubmVjdGVkOiBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgYXR0cih0aGlzLiRlbCwge3RpdGxlOiB0aGlzLl9oYXNUaXRsZSA/IHRoaXMudGl0bGUgOiBudWxsLCAnYXJpYS1leHBhbmRlZCc6IG51bGx9KTtcbiAgICAgICAgfSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIHNob3c6IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgIHZhciB0aGlzJDEgPSB0aGlzO1xuXG5cbiAgICAgICAgICAgICAgICBpZiAoaW5jbHVkZXMoYWN0aXZlcywgdGhpcykpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGFjdGl2ZXMuZm9yRWFjaChmdW5jdGlvbiAoYWN0aXZlKSB7IHJldHVybiBhY3RpdmUuaGlkZSgpOyB9KTtcbiAgICAgICAgICAgICAgICBhY3RpdmVzLnB1c2godGhpcyk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLl91bmJpbmQgPSBvbihkb2N1bWVudCwgJ2NsaWNrJywgZnVuY3Rpb24gKGUpIHsgcmV0dXJuICF3aXRoaW4oZS50YXJnZXQsIHRoaXMkMS4kZWwpICYmIHRoaXMkMS5oaWRlKCk7IH0pO1xuXG4gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuc2hvd1RpbWVyKTtcblxuICAgICAgICAgICAgICAgIHRoaXMudG9vbHRpcCA9IGFwcGVuZCh0aGlzLmNvbnRhaW5lciwgKFwiPGRpdiBjbGFzcz1cXFwiXCIgKyAodGhpcy5jbHNQb3MpICsgXCJcXFwiIGFyaWEtaGlkZGVuPjxkaXYgY2xhc3M9XFxcIlwiICsgKHRoaXMuY2xzUG9zKSArIFwiLWlubmVyXFxcIj5cIiArICh0aGlzLnRpdGxlKSArIFwiPC9kaXY+PC9kaXY+XCIpKTtcblxuICAgICAgICAgICAgICAgIGF0dHIodGhpcy4kZWwsICdhcmlhLWV4cGFuZGVkJywgdHJ1ZSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uQXQodGhpcy50b29sdGlwLCB0aGlzLiRlbCk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLm9yaWdpbiA9IHRoaXMuZ2V0QXhpcygpID09PSAneScgPyAoKGZsaXBQb3NpdGlvbih0aGlzLmRpcikpICsgXCItXCIgKyAodGhpcy5hbGlnbikpIDogKCh0aGlzLmFsaWduKSArIFwiLVwiICsgKGZsaXBQb3NpdGlvbih0aGlzLmRpcikpKTtcblxuICAgICAgICAgICAgICAgIHRoaXMuc2hvd1RpbWVyID0gc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgdGhpcyQxLnRvZ2dsZUVsZW1lbnQodGhpcyQxLnRvb2x0aXAsIHRydWUpO1xuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMkMS5oaWRlVGltZXIgPSBzZXRJbnRlcnZhbChmdW5jdGlvbiAoKSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaXNWaXNpYmxlKHRoaXMkMS4kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLmhpZGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICB9LCAxNTApO1xuXG4gICAgICAgICAgICAgICAgfSwgdGhpcy5kZWxheSk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBoaWRlOiBmdW5jdGlvbigpIHtcblxuICAgICAgICAgICAgICAgIHZhciBpbmRleCQkMSA9IGFjdGl2ZXMuaW5kZXhPZih0aGlzKTtcblxuICAgICAgICAgICAgICAgIGlmICghfmluZGV4JCQxIHx8IG1hdGNoZXModGhpcy4kZWwsICdpbnB1dCcpICYmIHRoaXMuJGVsID09PSBkb2N1bWVudC5hY3RpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBhY3RpdmVzLnNwbGljZShpbmRleCQkMSwgMSk7XG5cbiAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zaG93VGltZXIpO1xuICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5oaWRlVGltZXIpO1xuICAgICAgICAgICAgICAgIGF0dHIodGhpcy4kZWwsICdhcmlhLWV4cGFuZGVkJywgZmFsc2UpO1xuICAgICAgICAgICAgICAgIHRoaXMudG9nZ2xlRWxlbWVudCh0aGlzLnRvb2x0aXAsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2x0aXAgJiYgcmVtb3ZlKHRoaXMudG9vbHRpcCk7XG4gICAgICAgICAgICAgICAgdGhpcy50b29sdGlwID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW5iaW5kKCk7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9LFxuXG4gICAgICAgIGV2ZW50czogKCBvYmokMiA9IHt9LCBvYmokMlsoXCJmb2N1cyBcIiArIHBvaW50ZXJFbnRlciArIFwiIFwiICsgcG9pbnRlckRvd24pXSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKGUudHlwZSAhPT0gcG9pbnRlckRvd24gfHwgIWlzVG91Y2goZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSwgb2JqJDIuYmx1ciA9ICdoaWRlJywgb2JqJDJbcG9pbnRlckxlYXZlXSA9IGZ1bmN0aW9uIChlKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFpc1RvdWNoKGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sIG9iaiQyIClcblxuICAgIH07XG5cbiAgICB2YXIgVXBsb2FkID0ge1xuXG4gICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICBhbGxvdzogU3RyaW5nLFxuICAgICAgICAgICAgY2xzRHJhZ292ZXI6IFN0cmluZyxcbiAgICAgICAgICAgIGNvbmN1cnJlbnQ6IE51bWJlcixcbiAgICAgICAgICAgIG1heFNpemU6IE51bWJlcixcbiAgICAgICAgICAgIG1ldGhvZDogU3RyaW5nLFxuICAgICAgICAgICAgbWltZTogU3RyaW5nLFxuICAgICAgICAgICAgbXNnSW52YWxpZE1pbWU6IFN0cmluZyxcbiAgICAgICAgICAgIG1zZ0ludmFsaWROYW1lOiBTdHJpbmcsXG4gICAgICAgICAgICBtc2dJbnZhbGlkU2l6ZTogU3RyaW5nLFxuICAgICAgICAgICAgbXVsdGlwbGU6IEJvb2xlYW4sXG4gICAgICAgICAgICBuYW1lOiBTdHJpbmcsXG4gICAgICAgICAgICBwYXJhbXM6IE9iamVjdCxcbiAgICAgICAgICAgIHR5cGU6IFN0cmluZyxcbiAgICAgICAgICAgIHVybDogU3RyaW5nLFxuICAgICAgICB9LFxuXG4gICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGFsbG93OiBmYWxzZSxcbiAgICAgICAgICAgIGNsc0RyYWdvdmVyOiAndWstZHJhZ292ZXInLFxuICAgICAgICAgICAgY29uY3VycmVudDogMSxcbiAgICAgICAgICAgIG1heFNpemU6IDAsXG4gICAgICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgICAgIG1pbWU6IGZhbHNlLFxuICAgICAgICAgICAgbXNnSW52YWxpZE1pbWU6ICdJbnZhbGlkIEZpbGUgVHlwZTogJXMnLFxuICAgICAgICAgICAgbXNnSW52YWxpZE5hbWU6ICdJbnZhbGlkIEZpbGUgTmFtZTogJXMnLFxuICAgICAgICAgICAgbXNnSW52YWxpZFNpemU6ICdJbnZhbGlkIEZpbGUgU2l6ZTogJXMgS2lsb2J5dGVzIE1heCcsXG4gICAgICAgICAgICBtdWx0aXBsZTogZmFsc2UsXG4gICAgICAgICAgICBuYW1lOiAnZmlsZXNbXScsXG4gICAgICAgICAgICBwYXJhbXM6IHt9LFxuICAgICAgICAgICAgdHlwZTogJycsXG4gICAgICAgICAgICB1cmw6ICcnLFxuICAgICAgICAgICAgYWJvcnQ6IG5vb3AsXG4gICAgICAgICAgICBiZWZvcmVBbGw6IG5vb3AsXG4gICAgICAgICAgICBiZWZvcmVTZW5kOiBub29wLFxuICAgICAgICAgICAgY29tcGxldGU6IG5vb3AsXG4gICAgICAgICAgICBjb21wbGV0ZUFsbDogbm9vcCxcbiAgICAgICAgICAgIGVycm9yOiBub29wLFxuICAgICAgICAgICAgZmFpbDogbm9vcCxcbiAgICAgICAgICAgIGxvYWQ6IG5vb3AsXG4gICAgICAgICAgICBsb2FkRW5kOiBub29wLFxuICAgICAgICAgICAgbG9hZFN0YXJ0OiBub29wLFxuICAgICAgICAgICAgcHJvZ3Jlc3M6IG5vb3BcbiAgICAgICAgfSxcblxuICAgICAgICBldmVudHM6IHtcblxuICAgICAgICAgICAgY2hhbmdlOiBmdW5jdGlvbihlKSB7XG5cbiAgICAgICAgICAgICAgICBpZiAoIW1hdGNoZXMoZS50YXJnZXQsICdpbnB1dFt0eXBlPVwiZmlsZVwiXScpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoZS50YXJnZXQuZmlsZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy51cGxvYWQoZS50YXJnZXQuZmlsZXMpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGUudGFyZ2V0LnZhbHVlID0gJyc7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBkcm9wOiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgc3RvcChlKTtcblxuICAgICAgICAgICAgICAgIHZhciB0cmFuc2ZlciA9IGUuZGF0YVRyYW5zZmVyO1xuXG4gICAgICAgICAgICAgICAgaWYgKCF0cmFuc2ZlciB8fCAhdHJhbnNmZXIuZmlsZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJlbW92ZUNsYXNzKHRoaXMuJGVsLCB0aGlzLmNsc0RyYWdvdmVyKTtcblxuICAgICAgICAgICAgICAgIHRoaXMudXBsb2FkKHRyYW5zZmVyLmZpbGVzKTtcbiAgICAgICAgICAgIH0sXG5cbiAgICAgICAgICAgIGRyYWdlbnRlcjogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHN0b3AoZSk7XG4gICAgICAgICAgICB9LFxuXG4gICAgICAgICAgICBkcmFnb3ZlcjogZnVuY3Rpb24oZSkge1xuICAgICAgICAgICAgICAgIHN0b3AoZSk7XG4gICAgICAgICAgICAgICAgYWRkQ2xhc3ModGhpcy4kZWwsIHRoaXMuY2xzRHJhZ292ZXIpO1xuICAgICAgICAgICAgfSxcblxuICAgICAgICAgICAgZHJhZ2xlYXZlOiBmdW5jdGlvbihlKSB7XG4gICAgICAgICAgICAgICAgc3RvcChlKTtcbiAgICAgICAgICAgICAgICByZW1vdmVDbGFzcyh0aGlzLiRlbCwgdGhpcy5jbHNEcmFnb3Zlcik7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgfSxcblxuICAgICAgICBtZXRob2RzOiB7XG5cbiAgICAgICAgICAgIHVwbG9hZDogZnVuY3Rpb24oZmlsZXMpIHtcbiAgICAgICAgICAgICAgICB2YXIgdGhpcyQxID0gdGhpcztcblxuXG4gICAgICAgICAgICAgICAgaWYgKCFmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHRyaWdnZXIodGhpcy4kZWwsICd1cGxvYWQnLCBbZmlsZXNdKTtcblxuICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcblxuICAgICAgICAgICAgICAgICAgICBpZiAodGhpcyQxLm1heFNpemUgJiYgdGhpcyQxLm1heFNpemUgKiAxMDAwIDwgZmlsZXNbaV0uc2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLmZhaWwodGhpcyQxLm1zZ0ludmFsaWRTaXplLnJlcGxhY2UoJyVzJywgdGhpcyQxLm1heFNpemUpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzJDEuYWxsb3cgJiYgIW1hdGNoKHRoaXMkMS5hbGxvdywgZmlsZXNbaV0ubmFtZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMkMS5mYWlsKHRoaXMkMS5tc2dJbnZhbGlkTmFtZS5yZXBsYWNlKCclcycsIHRoaXMkMS5hbGxvdykpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHRoaXMkMS5taW1lICYmICFtYXRjaCh0aGlzJDEubWltZSwgZmlsZXNbaV0udHlwZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMkMS5mYWlsKHRoaXMkMS5tc2dJbnZhbGlkTWltZS5yZXBsYWNlKCclcycsIHRoaXMkMS5taW1lKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5tdWx0aXBsZSkge1xuICAgICAgICAgICAgICAgICAgICBmaWxlcyA9IFtmaWxlc1swXV07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgdGhpcy5iZWZvcmVBbGwodGhpcywgZmlsZXMpO1xuXG4gICAgICAgICAgICAgICAgdmFyIGNodW5rcyA9IGNodW5rKGZpbGVzLCB0aGlzLmNvbmN1cnJlbnQpO1xuICAgICAgICAgICAgICAgIHZhciB1cGxvYWQgPSBmdW5jdGlvbiAoZmlsZXMpIHtcblxuICAgICAgICAgICAgICAgICAgICB2YXIgZGF0YSQkMSA9IG5ldyBGb3JtRGF0YSgpO1xuXG4gICAgICAgICAgICAgICAgICAgIGZpbGVzLmZvckVhY2goZnVuY3Rpb24gKGZpbGUpIHsgcmV0dXJuIGRhdGEkJDEuYXBwZW5kKHRoaXMkMS5uYW1lLCBmaWxlKTsgfSk7XG5cbiAgICAgICAgICAgICAgICAgICAgZm9yICh2YXIga2V5IGluIHRoaXMkMS5wYXJhbXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEkJDEuYXBwZW5kKGtleSwgdGhpcyQxLnBhcmFtc1trZXldKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGFqYXgodGhpcyQxLnVybCwge1xuICAgICAgICAgICAgICAgICAgICAgICAgZGF0YTogZGF0YSQkMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGhvZDogdGhpcyQxLm1ldGhvZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlVHlwZTogdGhpcyQxLnR5cGUsXG4gICAgICAgICAgICAgICAgICAgICAgICBiZWZvcmVTZW5kOiBmdW5jdGlvbiAoZW52KSB7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXIgeGhyID0gZW52LnhocjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4aHIudXBsb2FkICYmIG9uKHhoci51cGxvYWQsICdwcm9ncmVzcycsIHRoaXMkMS5wcm9ncmVzcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWydsb2FkU3RhcnQnLCAnbG9hZCcsICdsb2FkRW5kJywgJ2Fib3J0J10uZm9yRWFjaChmdW5jdGlvbiAodHlwZSkgeyByZXR1cm4gb24oeGhyLCB0eXBlLnRvTG93ZXJDYXNlKCksIHRoaXMkMVt0eXBlXSk7IH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLmJlZm9yZVNlbmQoZW52KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KS50aGVuKFxuICAgICAgICAgICAgICAgICAgICAgICAgZnVuY3Rpb24gKHhocikge1xuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcyQxLmNvbXBsZXRlKHhocik7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2h1bmtzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWQoY2h1bmtzLnNoaWZ0KCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMkMS5jb21wbGV0ZUFsbCh4aHIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIChlKSB7IHJldHVybiB0aGlzJDEuZXJyb3IoZS5tZXNzYWdlKTsgfVxuICAgICAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgIHVwbG9hZChjaHVua3Muc2hpZnQoKSk7XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICB9XG5cbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gbWF0Y2gocGF0dGVybiwgcGF0aCkge1xuICAgICAgICByZXR1cm4gcGF0aC5tYXRjaChuZXcgUmVnRXhwKChcIl5cIiArIChwYXR0ZXJuLnJlcGxhY2UoL1xcLy9nLCAnXFxcXC8nKS5yZXBsYWNlKC9cXCpcXCovZywgJyhcXFxcL1teXFxcXC9dKykqJykucmVwbGFjZSgvXFwqL2csICdbXlxcXFwvXSsnKS5yZXBsYWNlKC8oKD8hXFxcXCkpXFw/L2csICckMS4nKSkgKyBcIiRcIiksICdpJykpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGNodW5rKGZpbGVzLCBzaXplKSB7XG4gICAgICAgIHZhciBjaHVua3MgPSBbXTtcbiAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlcy5sZW5ndGg7IGkgKz0gc2l6ZSkge1xuICAgICAgICAgICAgdmFyIGNodW5rID0gW107XG4gICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHNpemU7IGorKykge1xuICAgICAgICAgICAgICAgIGNodW5rLnB1c2goZmlsZXNbaSArIGpdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNodW5rcy5wdXNoKGNodW5rKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2h1bmtzO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIHN0b3AoZSkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgfVxuXG4gICAgVUlraXQuY29tcG9uZW50KCdjb3VudGRvd24nLCBDb3VudGRvd24pO1xuICAgIFVJa2l0LmNvbXBvbmVudCgnZmlsdGVyJywgRmlsdGVyKTtcbiAgICBVSWtpdC5jb21wb25lbnQoJ2xpZ2h0Ym94JywgTGlnaHRib3gpO1xuICAgIFVJa2l0LmNvbXBvbmVudCgnbGlnaHRib3hQYW5lbCcsIExpZ2h0Ym94UGFuZWwpO1xuICAgIFVJa2l0LmNvbXBvbmVudCgnbm90aWZpY2F0aW9uJywgTm90aWZpY2F0aW9uKTtcbiAgICBVSWtpdC5jb21wb25lbnQoJ3BhcmFsbGF4JywgUGFyYWxsYXgkMSk7XG4gICAgVUlraXQuY29tcG9uZW50KCdzbGlkZXInLCBTbGlkZXIkMSk7XG4gICAgVUlraXQuY29tcG9uZW50KCdzbGlkZXJQYXJhbGxheCcsIFNsaWRlclBhcmFsbGF4KTtcbiAgICBVSWtpdC5jb21wb25lbnQoJ3NsaWRlc2hvdycsIFNsaWRlc2hvdyQxKTtcbiAgICBVSWtpdC5jb21wb25lbnQoJ3NsaWRlc2hvd1BhcmFsbGF4JywgU2xpZGVyUGFyYWxsYXgpO1xuICAgIFVJa2l0LmNvbXBvbmVudCgnc29ydGFibGUnLCBTb3J0YWJsZSk7XG4gICAgVUlraXQuY29tcG9uZW50KCd0b29sdGlwJywgVG9vbHRpcCk7XG4gICAgVUlraXQuY29tcG9uZW50KCd1cGxvYWQnLCBVcGxvYWQpO1xuXG4gICAge1xuICAgICAgICBib290KFVJa2l0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gVUlraXQ7XG5cbn0pKSk7XG4iXX0= diff --git a/static/js/script.js.map b/static/js/script.js.map deleted file mode 100644 index 97dd2dee..00000000 --- a/static/js/script.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["500.js","fouc.js","jquery/jquery-3.3.1.js","moment/moment-timezone.js","moment/moment.js","typewriter/typewriter.js","uikit/uikit.js","countdown.js","jams.js","revision_diff.js","wiki.js"],"names":["error_typewriter","app","document","getElementById","typewriter","Typewriter","loop","deleteSpeed","typingSpeed","devMode","onclick","current_class","getAttribute","setAttribute","stop","appendText","pauseFor","typeString","deleteChars","changeSettings","window","_RequestMethod","_Path","_Code","_ErrorMsg","start","getScript","url","integrity","cross_origin","script","createElement","type","src","defer","undefined","crossOrigin","getElementsByTagName","appendChild","setClass","selector","my_class","querySelector","className","removeClass","element","reg","RegExp","replace","global","factory","module","exports","w","Error","this","noGlobal","arr","getProto","Object","getPrototypeOf","slice","concat","push","indexOf","class2type","toString","hasOwn","hasOwnProperty","fnToString","ObjectFunctionString","call","support","isFunction","obj","nodeType","isWindow","preservedScriptAttributes","noModule","DOMEval","code","doc","node","i","text","head","parentNode","removeChild","toType","jQuery","context","fn","init","rtrim","isArrayLike","length","prototype","jquery","constructor","toArray","get","num","pushStack","elems","ret","merge","prevObject","each","callback","map","elem","apply","arguments","first","eq","last","len","j","end","sort","splice","extend","options","name","copy","copyIsArray","clone","target","deep","isPlainObject","Array","isArray","expando","Math","random","isReady","error","msg","noop","proto","Ctor","isEmptyObject","globalEval","trim","makeArray","results","inArray","second","grep","invert","matches","callbackExpect","arg","value","guid","Symbol","iterator","split","toLowerCase","Sizzle","Expr","getText","isXML","tokenize","compile","select","outermostContext","sortInput","hasDuplicate","setDocument","docElem","documentIsHTML","rbuggyQSA","rbuggyMatches","contains","Date","preferredDoc","dirruns","done","classCache","createCache","tokenCache","compilerCache","sortOrder","a","b","pop","push_native","list","booleans","whitespace","identifier","attributes","pseudos","rwhitespace","rcomma","rcombinators","rattributeQuotes","rpseudo","ridentifier","matchExpr","ID","CLASS","TAG","ATTR","PSEUDO","CHILD","bool","needsContext","rinputs","rheader","rnative","rquickExpr","rsibling","runescape","funescape","_","escaped","escapedWhitespace","high","String","fromCharCode","rcssescape","fcssescape","ch","asCodePoint","charCodeAt","unloadHandler","disabledAncestor","addCombinator","disabled","dir","next","childNodes","e","els","seed","m","nid","match","groups","newSelector","newContext","ownerDocument","exec","id","getElementsByClassName","qsa","test","nodeName","toSelector","join","testContext","querySelectorAll","qsaError","removeAttribute","keys","cache","key","cacheLength","shift","markFunction","assert","el","addHandle","attrs","handler","attrHandle","siblingCheck","cur","diff","sourceIndex","nextSibling","createInputPseudo","createButtonPseudo","createDisabledPseudo","isDisabled","createPositionalPseudo","argument","matchIndexes","documentElement","hasCompare","subWindow","defaultView","top","addEventListener","attachEvent","createComment","getById","getElementsByName","filter","attrId","find","getAttributeNode","tag","tmp","innerHTML","input","matchesSelector","webkitMatchesSelector","mozMatchesSelector","oMatchesSelector","msMatchesSelector","disconnectedMatch","compareDocumentPosition","adown","bup","compare","sortDetached","aup","ap","bp","unshift","expr","elements","attr","val","specified","escape","sel","uniqueSort","duplicates","detectDuplicates","sortStable","textContent","firstChild","nodeValue","selectors","createPseudo","relative",">"," ","+","~","preFilter","excess","unquoted","nodeNameSelector","pattern","operator","check","result","what","simple","forward","ofType","xml","uniqueCache","outerCache","nodeIndex","parent","useCache","lastChild","uniqueID","pseudo","args","setFilters","idx","matched","not","matcher","unmatched","has","innerText","lang","elemLang","hash","location","root","focus","activeElement","hasFocus","href","tabIndex","enabled","checked","selected","selectedIndex","empty","header","button","even","odd","lt","gt","radio","checkbox","file","password","image","submit","reset","tokens","combinator","base","skip","checkNonElements","doneName","oldCache","newCache","elementMatcher","matchers","condense","newUnmatched","mapped","setMatcher","postFilter","postFinder","postSelector","temp","preMap","postMap","preexisting","contexts","multipleContexts","matcherIn","matcherOut","matcherFromTokens","checkContext","leadingRelative","implicitRelative","matchContext","matchAnyContext","filters","parseOnly","soFar","preFilters","cached","setMatchers","elementMatchers","bySet","byElement","superMatcher","outermost","matchedCount","setMatched","contextBackup","dirrunsUnique","matcherFromGroupMatchers","token","compiled","defaultValue","unique","isXMLDoc","escapeSelector","until","truncate","is","siblings","n","rneedsContext","rsingleTag","winnow","qualifier","self","rootjQuery","parseHTML","ready","rparentsprev","guaranteedUnique","children","contents","prev","sibling","targets","l","closest","index","prevAll","add","addBack","parents","parentsUntil","nextAll","nextUntil","prevUntil","contentDocument","content","reverse","rnothtmlwhite","Identity","v","Thrower","ex","adoptValue","resolve","reject","noValue","method","promise","fail","then","Callbacks","object","flag","createOptions","firing","memory","fired","locked","queue","firingIndex","fire","once","stopOnFalse","remove","disable","lock","fireWith","Deferred","func","tuples","state","always","deferred","catch","pipe","fns","newDefer","tuple","returned","progress","notify","onFulfilled","onRejected","onProgress","maxDepth","depth","special","that","mightThrow","TypeError","notifyWith","resolveWith","process","exceptionHook","stackTrace","rejectWith","getStackHook","setTimeout","stateString","when","singleValue","remaining","resolveContexts","resolveValues","master","updateFunc","rerrorNames","stack","console","warn","message","readyException","readyList","completed","removeEventListener","readyWait","wait","readyState","doScroll","access","chainable","emptyGet","raw","bulk","rmsPrefix","rdashAlpha","fcamelCase","all","letter","toUpperCase","camelCase","string","acceptData","owner","Data","uid","defineProperty","configurable","set","data","prop","hasData","dataPriv","dataUser","rbrace","rmultiDash","dataAttr","JSON","parse","getData","removeData","_data","_removeData","dequeue","startLength","hooks","_queueHooks","setter","clearQueue","count","pnum","source","rcssNum","cssExpand","isHiddenWithinTree","style","display","css","swap","old","adjustCSS","valueParts","tween","adjusted","scale","maxIterations","currentValue","initial","unit","cssNumber","initialInUnit","defaultDisplayMap","getDefaultDisplay","body","showHide","show","values","hide","toggle","rcheckableType","rtagName","rscriptType","wrapMap","option","thead","col","tr","td","_default","getAll","setGlobalEval","refElements","optgroup","tbody","tfoot","colgroup","caption","th","div","rhtml","buildFragment","scripts","selection","ignored","wrap","fragment","createDocumentFragment","nodes","htmlPrefilter","createTextNode","checkClone","cloneNode","noCloneChecked","rkeyEvent","rmouseEvent","rtypenamespace","returnTrue","returnFalse","safeActiveElement","err","on","types","one","origFn","event","off","handleObjIn","eventHandle","events","t","handleObj","handlers","namespaces","origType","elemData","handle","triggered","dispatch","delegateType","bindType","namespace","delegateCount","setup","mappedTypes","origCount","teardown","removeEvent","nativeEvent","handlerQueue","fix","delegateTarget","preDispatch","isPropagationStopped","currentTarget","isImmediatePropagationStopped","rnamespace","preventDefault","stopPropagation","postDispatch","matchedHandlers","matchedSelectors","addProp","hook","Event","enumerable","originalEvent","writable","load","noBubble","trigger","blur","click","beforeunload","returnValue","props","isDefaultPrevented","defaultPrevented","relatedTarget","timeStamp","now","isSimulated","stopImmediatePropagation","altKey","bubbles","cancelable","changedTouches","ctrlKey","detail","eventPhase","metaKey","pageX","pageY","shiftKey","view","char","charCode","keyCode","buttons","clientX","clientY","offsetX","offsetY","pointerId","pointerType","screenX","screenY","targetTouches","toElement","touches","which","mouseenter","mouseleave","pointerenter","pointerleave","orig","related","rxhtmlTag","rnoInnerhtml","rchecked","rcleanScript","manipulationTarget","disableScript","restoreScript","cloneCopyEvent","dest","pdataOld","pdataCur","udataOld","udataCur","domManip","collection","hasScripts","iNoClone","valueIsFunction","html","_evalUrl","keepData","cleanData","dataAndEvents","deepDataAndEvents","srcElements","destElements","inPage","detach","append","prepend","insertBefore","before","after","replaceWith","replaceChild","appendTo","prependTo","insertAfter","replaceAll","original","insert","rnumnonpx","getStyles","opener","getComputedStyle","rboxStyle","curCSS","computed","width","minWidth","maxWidth","getPropertyValue","pixelBoxStyles","addGetHookIf","conditionFn","hookFn","computeStyleTests","container","cssText","divStyle","pixelPositionVal","reliableMarginLeftVal","roundPixelMeasures","marginLeft","right","pixelBoxStylesVal","boxSizingReliableVal","position","scrollboxSizeVal","offsetWidth","measure","round","parseFloat","backgroundClip","clearCloneStyle","boxSizingReliable","pixelPosition","reliableMarginLeft","scrollboxSize","rdisplayswap","rcustomProp","cssShow","visibility","cssNormalTransform","letterSpacing","fontWeight","cssPrefixes","emptyStyle","finalPropName","cssProps","capName","vendorPropName","setPositiveNumber","subtract","max","boxModelAdjustment","dimension","box","isBorderBox","styles","computedVal","extra","delta","ceil","getWidthOrHeight","valueIsBorderBox","Tween","easing","cssHooks","opacity","animationIterationCount","columnCount","fillOpacity","flexGrow","flexShrink","lineHeight","order","orphans","widows","zIndex","zoom","origName","isCustomProp","setProperty","isFinite","getClientRects","getBoundingClientRect","left","margin","padding","border","prefix","suffix","expand","expanded","parts","propHooks","run","percent","eased","duration","pos","step","fx","scrollTop","scrollLeft","linear","p","swing","cos","PI","fxNow","inProgress","rfxtypes","rrun","schedule","hidden","requestAnimationFrame","interval","tick","createFxNow","genFx","includeWidth","height","createTween","animation","Animation","tweeners","properties","stopped","prefilters","currentTime","startTime","tweens","opts","specialEasing","originalProperties","originalOptions","gotoEnd","propFilter","bind","complete","timer","anim","*","tweener","oldfire","propTween","restoreDisplay","isBox","dataShow","unqueued","overflow","overflowX","overflowY","prefilter","speed","opt","speeds","fadeTo","to","animate","optall","doAnimation","finish","stopQueue","timers","cssFn","slideDown","slideUp","slideToggle","fadeIn","fadeOut","fadeToggle","slow","fast","delay","time","timeout","clearTimeout","checkOn","optSelected","radioValue","boolHook","removeAttr","nType","attrHooks","attrNames","getter","lowercaseName","rfocusable","rclickable","stripAndCollapse","getClass","classesToArray","removeProp","propFix","tabindex","parseInt","for","class","addClass","classes","curValue","clazz","finalValue","toggleClass","stateVal","isValidValue","classNames","hasClass","rreturn","valHooks","optionSet","focusin","rfocusMorph","stopPropagationCallback","onlyHandlers","bubbleType","ontype","lastElement","eventPath","isTrigger","parentWindow","simulate","triggerHandler","attaches","nonce","rquery","parseXML","DOMParser","parseFromString","rbracket","rCRLF","rsubmitterTypes","rsubmittable","buildParams","traditional","param","s","valueOrFunction","encodeURIComponent","serialize","serializeArray","r20","rhash","rantiCache","rheaders","rnoContent","rprotocol","transports","allTypes","originAnchor","addToPrefiltersOrTransports","structure","dataTypeExpression","dataType","dataTypes","inspectPrefiltersOrTransports","jqXHR","inspected","seekingTransport","inspect","prefilterOrFactory","dataTypeOrTransport","ajaxExtend","flatOptions","ajaxSettings","active","lastModified","etag","isLocal","protocol","processData","async","contentType","accepts","json","responseFields","converters","* text","text html","text json","text xml","ajaxSetup","settings","ajaxPrefilter","ajaxTransport","ajax","transport","cacheURL","responseHeadersString","responseHeaders","timeoutTimer","urlAnchor","fireGlobals","uncached","callbackContext","globalEventContext","completeDeferred","statusCode","requestHeaders","requestHeadersNames","strAbort","getResponseHeader","getAllResponseHeaders","setRequestHeader","overrideMimeType","mimeType","status","abort","statusText","finalText","crossDomain","host","hasContent","ifModified","headers","beforeSend","success","send","nativeStatusText","responses","isSuccess","response","modified","ct","finalDataType","firstDataType","ajaxHandleResponses","conv2","current","conv","dataFilter","throws","ajaxConvert","getJSON","wrapAll","firstElementChild","wrapInner","htmlIsFunction","unwrap","visible","offsetHeight","xhr","XMLHttpRequest","xhrSuccessStatus","0","1223","xhrSupported","cors","errorCallback","open","username","xhrFields","onload","onerror","onabort","ontimeout","onreadystatechange","responseType","responseText","binary","text script","charset","scriptCharset","evt","oldCallbacks","rjsonp","jsonp","jsonpCallback","originalSettings","callbackName","overwritten","responseContainer","jsonProp","createHTMLDocument","implementation","keepScripts","parsed","params","animated","offset","setOffset","curPosition","curLeft","curCSSTop","curTop","curOffset","curCSSLeft","curElem","using","rect","win","pageYOffset","pageXOffset","offsetParent","parentOffset","scrollTo","Height","Width","","defaultExtra","funcName","hover","fnOver","fnOut","unbind","delegate","undelegate","proxy","holdReady","hold","parseJSON","isNumeric","isNaN","define","amd","_jQuery","_$","$","noConflict","require","moment","cachedGuess","zones","links","names","guesses","momentVersion","version","major","minor","charCodeToInt","unpackBase60","whole","fractional","multiplier","out","sign","arrayToInt","array","mapIndices","indices","unpack","offsets","untils","Infinity","intToUntil","abbrs","population","Zone","packedString","_set","OffsetAt","at","timeString","toTimeString","abbr","getTimezoneOffset","ZoneScore","zone","offsetScore","abbrScore","findChange","low","mid","sortZoneScores","addToGuesses","guessesForUserOffsets","guessesOffset","offsetsLength","filteredGuesses","rebuildGuess","intlName","Intl","DateTimeFormat","resolvedOptions","timeZone","normalizeName","logError","zoneScore","change","startYear","getFullYear","userOffsets","zoneScores","getZone","scoreOffsetAt","addZone","packed","normalized","caller","link","addLink","aliases","alias","normal0","normal1","needsOffset","isUnixTimestamp","_f","_a","_tzm","tz","utc","isMoment","unpacked","_index","timestamp","offsetNext","offsetPrev","moveAmbiguousForward","moveInvalidForward","mom","utcOffset","offsetAt","abs","dataVersion","_zones","_links","_names","zoneExists","didShowError","guess","ignoreCache","abbrWrap","_z","defaultZone","updateOffset","keepTime","_isUTC","_d","zoneName","zoneAbbr","setDefault","momentProperties","hookCallback","some","isObject","isUndefined","isNumber","isDate","res","hasOwnProp","valueOf","createUTC","format","locale","strict","createLocalOrUTC","getParsingFlags","_pf","unusedTokens","unusedInput","charsLeftOver","nullInput","invalidMonth","invalidFormat","userInvalidated","iso","parsedDateParts","meridiem","rfc2822","weekdayMismatch","isValid","_isValid","flags","parsedParts","isNowValid","getTime","invalidWeekday","_strict","bigHour","isFrozen","createInvalid","NaN","fun","copyConfig","from","_isAMomentObject","_i","_l","_offset","_locale","updateInProgress","Moment","config","absFloor","number","floor","toInt","argumentForCoercion","coercedNumber","compareArrays","array1","array2","dontConvert","min","lengthDiff","diffs","suppressDeprecationWarnings","deprecate","firstTime","deprecationHandler","deprecations","deprecateSimple","Function","mergeConfigs","parentConfig","childConfig","Locale","addUnitAlias","shorthand","lowerCase","normalizeUnits","units","normalizeObjectUnits","inputObject","normalizedProp","normalizedInput","priorities","addUnitPriority","priority","zeroFill","targetLength","forceSign","absNumber","zerosToFill","pow","substr","formattingTokens","localFormattingTokens","formatFunctions","formatTokenFunctions","addFormatToken","padded","ordinal","localeData","formatMoment","expandFormat","output","makeFormatFunction","invalidDate","replaceLongDateFormatTokens","longDateFormat","lastIndex","match1","match2","match3","match4","match6","match1to2","match3to4","match5to6","match1to3","match1to4","match1to6","matchUnsigned","matchSigned","matchOffset","matchShortOffset","matchWord","regexes","addRegexToken","regex","strictRegex","isStrict","getParseRegexForToken","regexEscape","p1","p2","p3","p4","addParseToken","addWeekParseToken","_w","addTimeToArrayFromToken","YEAR","MONTH","DATE","HOUR","MINUTE","SECOND","MILLISECOND","WEEK","WEEKDAY","daysInYear","year","isLeapYear","y","parseTwoDigitYear","getSetYear","makeGetSet","set$1","month","date","daysInMonth","x","modMonth","o","monthsShort","months","monthsShortRegex","monthsRegex","monthsParse","MONTHS_IN_FORMAT","defaultLocaleMonths","defaultLocaleMonthsShort","setMonth","dayOfMonth","getSetMonth","defaultMonthsShortRegex","defaultMonthsRegex","computeMonthsParse","cmpLenRev","shortPieces","longPieces","mixedPieces","_monthsRegex","_monthsShortRegex","_monthsStrictRegex","_monthsShortStrictRegex","createUTCDate","UTC","getUTCFullYear","setUTCFullYear","firstWeekOffset","dow","doy","fwd","getUTCDay","dayOfYearFromWeeks","week","weekday","resYear","resDayOfYear","dayOfYear","weekOfYear","resWeek","weekOffset","weeksInYear","weekOffsetNext","weekdaysMin","weekdaysShort","weekdays","weekdaysMinRegex","weekdaysShortRegex","weekdaysRegex","weekdaysParse","d","defaultLocaleWeekdays","defaultLocaleWeekdaysShort","defaultLocaleWeekdaysMin","defaultWeekdaysRegex","defaultWeekdaysShortRegex","defaultWeekdaysMinRegex","computeWeekdaysParse","minp","shortp","longp","minPieces","day","_weekdaysRegex","_weekdaysShortRegex","_weekdaysMinRegex","_weekdaysStrictRegex","_weekdaysShortStrictRegex","_weekdaysMinStrictRegex","hFormat","hours","lowercase","minutes","matchMeridiem","_meridiemParse","seconds","kInput","_isPm","isPM","_meridiem","pos1","pos2","globalLocale","getSetHour","baseConfig","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","LTS","LT","L","LL","LLL","LLLL","dayOfMonthOrdinalParse","relativeTime","future","past","ss","mm","h","hh","dd","M","MM","yy","meridiemParse","locales","localeFamilies","normalizeLocale","loadLocale","oldLocale","_abbr","getSetGlobalLocale","getLocale","defineLocale","_config","parentLocale","forEach","chooseLocale","checkOverflow","_overflowDayOfYear","_overflowWeeks","_overflowWeekday","defaults","c","configFromArray","currentDate","expectedWeekday","yearToUse","nowValue","_useUTC","getUTCMonth","getUTCDate","getMonth","getDate","currentDateArray","weekYear","weekdayOverflow","GG","W","E","createLocal","_week","curWeek","gg","_dayOfYear","dayOfYearFromWeekInfo","_nextDay","ms","setFullYear","getDay","setUTCMinutes","getUTCMinutes","extendedIsoRegex","basicIsoRegex","tzRegex","isoDates","isoTimes","aspNetJsonRegex","configFromISO","allowTime","dateFormat","timeFormat","tzFormat","configFromStringAndFormat","extractFromRFC2822Strings","yearStr","monthStr","dayStr","hourStr","minuteStr","secondStr","untruncateYear","obsOffsets","UT","GMT","EDT","EST","CDT","CST","MDT","MST","PDT","PST","configFromRFC2822","parsedArray","weekdayStr","parsedInput","checkWeekday","obsOffset","militaryOffset","numOffset","hm","calculateOffset","ISO_8601","RFC_2822","skipped","stringLength","totalParsedInputLength","hour","isPm","meridiemHour","meridiemFixWrap","prepareConfig","preparse","tempConfig","bestMoment","scoreToBeat","currentScore","score","configFromStringAndArray","createFromInputFallback","configFromString","minute","millisecond","configFromObject","configFromInput","isUTC","getOwnPropertyNames","k","isObjectEmpty","prototypeMin","other","prototypeMax","pickBy","moments","ordering","Duration","years","quarters","quarter","weeks","days","milliseconds","unitHasDecimal","isDurationValid","_milliseconds","_days","_months","_bubble","isDuration","absRound","separator","offsetFromString","chunkOffset","cloneWithOffset","model","setTime","local","getDateOffset","isUtc","aspNetRegex","isoRegex","createDuration","diffRes","parseIso","isBefore","positiveMomentsDifference","momentsDifference","inp","isAfter","createAdder","direction","period","addSubtract","isAdding","invalid","monthDiff","wholeMonthDiff","anchor","newLocaleData","defaultFormat","defaultFormatUtc","addWeekYearFormatToken","getSetWeekYearHelper","weeksTarget","dayOfYearData","isoWeekYear","_dayOfMonthOrdinalParse","_ordinalParse","_dayOfMonthOrdinalParseLenient","getSetDayOfMonth","getSetMinute","getSetSecond","parseMs","getSetMillisecond","preParsePostFormat","formats","sod","startOf","calendarFormat","asFloat","zoneDelta","endOf","inputString","postformat","withoutSuffix","humanize","fromNow","toNow","invalidAt","localInput","isBetween","inclusivity","isSame","inputMs","isSameOrAfter","isSameOrBefore","parsingFlags","prioritized","unitsObj","u","getPrioritizedUnits","isoWeekday","toObject","toDate","toISOString","keepOffset","toJSON","unix","creationData","isoWeek","isoWeeks","weekInfo","isoWeeksInYear","parseWeekday","parseIsoWeekday","keepLocalTime","keepMinutes","localAdjust","_changeInProgress","parseZone","tZone","hasAlignedHourOffset","isDST","isUtcOffset","dates","isDSTShifted","_isDSTShifted","proto$1","get$1","field","listMonthsImpl","listWeekdaysImpl","localeSorted","_calendar","_longDateFormat","formatUpper","_invalidDate","_ordinal","isFuture","_relativeTime","pastFuture","isFormat","_monthsShort","monthName","_monthsParseExact","ii","llc","toLocaleLowerCase","_monthsParse","_longMonthsParse","_shortMonthsParse","firstDayOfYear","firstDayOfWeek","_weekdays","_weekdaysMin","_weekdaysShort","weekdayName","_weekdaysParseExact","_weekdaysParse","_shortWeekdaysParse","_minWeekdaysParse","_fullWeekdaysParse","charAt","isLower","langData","mathAbs","addSubtract$1","absCeil","daysToMonths","monthsToDays","makeAs","as","asMilliseconds","asSeconds","asMinutes","asHours","asDays","asWeeks","asMonths","asYears","makeGetter","thresholds","abs$1","toISOString$1","Y","D","toFixed","total","totalSign","ymSign","daysSign","hmsSign","proto$2","monthsFromDays","withSuffix","posNegDuration","relativeTime$1","toIsoString","updateLocale","tmpLocale","relativeTimeRounding","roundingFunction","relativeTimeThreshold","threshold","limit","myMoment","HTML5_FMT","DATETIME_LOCAL","DATETIME_LOCAL_SECONDS","DATETIME_LOCAL_MS","TIME","TIME_SECONDS","TIME_MS","lastTime","vendors","cancelAnimationFrame","currTime","timeToCall","_settings","cursorAnimationPaused","opacityIncreasing","currentOpacity","delayedQue","delayItemsCount","eventQue","calledEvents","eventRunning","delayExecution","fps","typingFrameCount","stringToTypeHTMLArray","currentTypedCharacters","typing","usedIDs","charAmountToDelete","userOptions","eventLoopRerun","default_options","strings","cursorClassName","cursor","animateCursor","blinkSpeed","charSpanClassName","wrapperClassName","autoStart","_setupOptions","_setupTypwriterWrapper","_startCursorAnimation","typeOutAllStrings","TypewriterPrototype","_addToEventQue","_stopEventLoop","_startEventLoop","rerun","_rerunCalledEvents","string_chars","_getCharacters","_typeCharacters","deleteAll","_deleteChars","amount","_pauseFor","characters_array","_getStringsAsCharsArray","_randomInteger","new_settings","_changeSettings","stringify","changeBlinkSpeed","new_speed","changeTypingSpeed","changeDeleteSpeed","_resetEventLoop","_deletingCharIdsAnimation","_deletingCharAnimationFrame","log","delete_speed","typewriter_wrapper_class_name","current_typed_char_ids","char_amount_to_delete","last_typed_char_index","get_last_typed_char","char_to_delete_el","new_options","merged_options","attrname","first_event","_eventQueAnimation","event_name","typewriter_wrapper","_convertCharsToHTML","_typingAnimation","_typingAnimationFrame","total_items","typing_speed","item_to_type","chars","chars_html_wrap_array","char_class_name","chars_array","char_element","char_id","_generateUniqueID","strings_array_check","strings_string_check","strings_chars_array","_cursorAnimationFrame","opacity_amount","cursor_el","_cursorAnimation","_appendText","items","cursor_class_name","cursor_element","_pauseCursorAnimation","_restartCursorAnimation","_randomID","possible","temp_id","UIkit","hyphenateCache","hyphenateRe","hyphenate","str","camelizeRe","camelize","toUpper","ucfirst","strPrototype","startsWithFn","startsWith","search","lastIndexOf","endsWithFn","endsWith","includesFn","includesStr","includes","includesArray","isString","isDocument","isJQuery","isNode","Node","isNodeCollection","NodeList","HTMLCollection","isBoolean","toBoolean","toNumber","Number","toFloat","toNode","arrayProto","toNodes","Boolean","toList","toMs","assign","cb","sortBy","clamp","intersectRect","r1","r2","bottom","pointInRect","point","Dimensions","ratio","dimensions","aProp","contain","maxDimensions","this$1","cover","hasAttr","hasAttribute","filterAttr","attribute","replacement","query","isContextSelector","queryAll","findAll","_query","queryFn","removes","contextSanitizeRe","ctx","selectors$1","previousElementSibling","contextSelectorRe","elProto","Element","matchesFn","closestFn","ancestor","escapeFn","CSS","voidElements","area","br","embed","hr","img","keygen","menuitem","meta","track","wbr","isVoidElement","tagName","isVisible","selInput","isInput","within","ref","getArgs","listener","useCapture","toEventTarget","condition","toEventTargets","reduce","notCanceled","dispatchEvent","createEvent","initCustomEvent","isEventTarget","EventTarget","preventClick","Promise$1","Promise","PromiseFn","PENDING","setImmediate","executor","r","iterable","resolver","race","env","getImage","srcset","sizes","Image","unbind1","unbind2","getIndex","finite","hasChildNodes","insertNodes","called","reason","onResolved","fragmentRe","singleTagRe","insertAdjacentHTML","nextElementSibling","apply$1","removeClasses","cls","replaceClass","classList","force","getArgs$1","supports","Force","Multiple","animation-iteration-count","column-count","fill-opacity","flex-grow","flex-shrink","font-weight","line-height","z-index","property","propName","getStyle","removeProperty","pseudoElt","vars","getCssVar","prefixedName","transition","timing","transition-property","transition-duration","transition-timing-function","Transition","cancel","animationPrefix","clsCancelAnimation","origin","arguments$1","hasReset","in","isHtml","$$","dirs","positionAt","elAttach","targetAttach","elOffset","targetOffset","flip","boundary","getPos","flipped","dim","getDimensions","targetDim","moveTo","getOffsets","window$1","align","alignFlip","elemOffset","centerOffset","centerTargetOffset","newVal","coordinates","currentOffset","innerHeight","innerWidth","docEl","propName$$1","boxModelAdjust","attach","factor","flipPosition","isInView","topOffset","leftOffset","relativeToViewport","offsetPosition","elTop","elLeft","scrolledOver","heightOffset","document$1","elHeight","vp","vh","offsetTop","offsetLeft","isRtl","hasTouchEvents","hasPointerEvents","PointerEvent","hasTouch","DocumentTouch","navigator","maxTouchPoints","pointerDown","pointerMove","pointerUp","pointerEnter","pointerLeave","fastdom","reads","writes","read","task","scheduleFlush","write","clear","remove$1","flush","runTasks","scheduled","tasks","item","MouseTracker","slope","positions","ticking","movesTo","position$$1","prevPos","points","strats","mergeFnData","parentVal","childVal","vm","created","beforeConnect","connected","beforeDisconnect","disconnected","destroy","update","methods","defaultStrat","mergeOptions","child","extends","mixins","mergeKey","key$1","parseOptions","Player","post","cmd","contentWindow","postMessage","isVideo","isYoutube","isVimeo","isHTML5","isIFrame","enableApi","poller","youtube","vimeo","setInterval","data$$1","player_id","clearInterval","play","pause","mute","muted","clickTimeout","swipeTimeout","tapTimeout","clicked","touch","cancelAll","getPos$1","getType","x1","y1","x2","y2","touching","isTouch","getComponentName","_init","util","freeze","DATA","_isReady","_callUpdate","use","plugin","installed","mixin","component","Sub","create","path","globalAPI","_callHook","$options","_callConnected","_connected","_initProps","_initEvents","_initObserver","_callReady","_callDisconnected","_observer","disconnect","_unbindEvents","_resetComputeds","updates","_frames","hooksAPI","getProps","coerce","prop$1","registerComputed","_computeds","$props","$el","registerEvent","capture","filter$$1","selfFilter","_events","notIn","every","toMedia","ref$1","index$$1","normalizeData","_uid","_initData","_initMethods","_initComputeds","$mount","$name","exclude","MutationObserver","$reset","observe","attributeFilter","stateAPI","components","argsArray","functional","instance","getComponent","$destroy","install","_initialized","getComponents","connect","name$1","componentAPI","$emit","removeEl","$create","$update","$getComponent","defineProperties","$container","getOwnPropertyDescriptor","instanceAPI","Class","Togglable","queued","initProps","paddingTop","paddingBottom","marginTop","marginBottom","hideProps","hasAnimation","hasTransition","toggleElement","animate$$1","_toggleElement","toggled","isToggled","untoggled","scroll","toggleNow","updateAria","_toggleHeight","_toggleAnimation","_toggleImmediate","_toggle","changed","inner","lastElementChild","currentHeight","endHeight","Accordion","collapsible","multiple","clsOpen","isItem","_wrapper","Alert","close","selClose","Core","started","passive","hoverSelector","registered","Video","automute","autoplay","inView","preload","player","Cover","height$$1","width$$1","clientWidth","clientHeight","loadedmetadata","Position","clsPos","offset$$1","axis","getAxis","Drop","mode","boundaryAlign","delayShow","delayHide","clsDrop","hoverIdle","tracker","clearTimers","isActive","tryShow","isDelaying","showTimer","isParentOf","hideTimer","isChildOf","drop","alignTo","Dropdown","FormCustom","files","Gif","inview","Margin","firstColumn","rows","getRows","stacks","row","getOffset","leftDim","Grid","masonry","parallax","clsStack","translates","sum","maxColumnHeight","scrolled","HeightMatch","minHeight","boxSizing","heights","HeightViewport","offsetBottom","viewport","svgs","SVG","icon","assign$$1","svg","getSvg","symbols","symbolRe","parseSymbols","isEqualNode","svgEl","decodeURIComponent","icons","spinner","totop","marker","close-icon","close-large","navbar-toggle-icon","overlay-icon","pagination-next","pagination-previous","search-icon","search-large","search-navbar","slidenav-next","slidenav-next-large","slidenav-previous","slidenav-previous-large","Icon","added","cmp","isIcon","getIcon","applyRtl","IconComponent","Slidenav","Search","Close","Spinner","Img","dataSrc","dataSrcset","dataSizes","dataWidth","dataHeight","cacheKey","isImg","toPx","storage","setSrcAttrs","color","matches$$1","sizesRe","matchMedia","size","substring","sizeRe","additionRe","urlCache","canvas","getContext","fillStyle","fillRect","toDataURL","getPlaceholderImage","currentSrc","sessionStorage","active$1","Leader","fill","media","clsWrapper","clsHide","attrFill","wrapper","Container","Modal","selPanel","escClose","bgClose","overlay","panel","transitionElement","transitionDuration","registerEvents","clsPage","scrollbarWidth","found","getActive","Modal$1","modal","dialog","alert","labels","confirm","resolved","prompt","ok","Nav","Navbar","dropdown","dropbar","dropbarMode","dropbarAnchor","dropdowns","getDropdown","transitionTo","newHeight","oldHeight","clip","Offcanvas","clsContainer","clsFlip","clsContent","clsContentAnimation","clsSidebarAnimation","clsMode","clsOverlay","OverflowAuto","Responsive","Scroll","docHeight","winHeight","startY","currentY","Scrollspy","repeat","inViewClass","elData","toggles","ScrollspyNav","Sticky","clsActive","clsInactive","clsFixed","clsBelow","selTarget","widthElement","showOnUp","placeholder","bottomOffset","parseProp","inactive","scrollY","propOffset","Switcher","swiping","attrItem","connects","getSelection","hasPrev","Tab","Toggle","core","Countdown","timespan","digits","digit","style$1","targetClass","Animate","action","sheet","insertRule","propsFrom","oldScrollY","propsTo","getPositionWithMargin","pointerEvents","Filter","selActive","actives","isEqualList","setState","getState","mergeState","attr$$1","stateFilter","ref_sort","stateSort","stateOrder","getFilter","group","matchFilter","apply$$1","getSelector","sorted","localeCompare","sortItems","filterBy","listA","listB","Animations","slide","transform","translate","translated","scale3d","Animations$1","fade","triggerUpdate","Slider","autoplayInterval","pauseOnHover","startAutoplay","stopAutoplay","isHovering","preventCatch","slidesSelector","drag","_transitioner","getDistance","dragging","prevIndex","unbindMove","move","distance","slides","dis","nextIndex","_getDistance","itemShown","edge","_translate","_show","dirChange","selNav","nav","navItemSelector","navItems","maxIndex","updateNav","getValidIndex","clsActivated","velocity","Transitioner","transitionOptions","speedUp","selList","itemshown","queueIndex","getDirection","_getTransitioner","transitioner","Slideshow","Animations$$1","itemshow itemhide itemshown itemhidden","itemshow","beforeitemshow","itemhidden","LightboxPanel","delayControls","videoAutoplay","template","hideControls","getItem","loadItem","alt","setItem","setError","video","poster","videoWidth","videoHeight","setIframe","getIframe","encodeURI","withCredentials","ref_response","showControls","controlsTimer","Lightbox","lightboxPanel","_destroy","containers","Notification","clsClose","clsMsg","notification","closeAll","immediate","removeFn","props$1","Parallax","bgPos","isColor","isCssProp","steps","covers","down","bgProps","bg","backgroundSize","_image","dimEl","naturalWidth","naturalHeight","span","bgPosFloat","backgroundRepeat","getCss","css$$1","getValue","ref$2","getStep","Parallax$1","ease$1","SliderReactive","getLeft","center","getElLeft","centerEl","getMax","getWidth","triggerUpdate$1","Slider$1","sets","updateTranslates","getItemIn","getActives","slideLeft","avgWidth","leftCenter","slideWidth","reorder","slideIndex","SliderParallax","selItem","ref_detail","getCurrent","isIn","obj$1","obj$2","Animations$2","pull","Slideshow$1","maxHeight","hgt","Sortable","clsItem","clsPlaceholder","clsDrag","clsDragState","clsBase","clsNoDrag","clsEmpty","clsCustom","touched","outerHTML","elementFromPoint","sortable","getSortable","previous","isPredecessor","Tooltip","title","_hasTitle","aria-expanded","_unbind","tooltip","Upload","allow","clsDragover","concurrent","maxSize","mime","msgInvalidMime","msgInvalidName","msgInvalidSize","beforeAll","completeAll","loadEnd","loadStart","upload","transfer","dataTransfer","dragenter","dragover","dragleave","chunks","chunk","FormData","mutations","applyMutation","childList","subtree","characterData","mutation","addedNodes","removedNodes","i$1","applyChildList","attributeName","applyAttribute","boot","startjam","endjam","goal","heading","refreshCountdown","reload","JamActions","[object Object]","csrf_token","X-CSRFToken","jam","send_json","form","question","participant","revision_diff","revisions","id_reg","getRevisionId","getRevision","onchange","rev","aft","bef","radioButtonChecked","sidebar"],"mappings":"AAIA,SAAAA,mBACA,MAAAC,IAAAC,SAAAC,eAAA,SAEAC,WAAA,IAAAC,WAAAJ,KACAK,MAAA,EACAC,YAAA,GACAC,YAAA,UACAC,SAAA,IAUAP,SAAAC,eAAA,kBAAAO,QAPA,WACA,MAAAT,IAAAC,SAAAC,eAAA,OACAQ,cAAAV,IAAAW,aAAA,SACAX,IAAAY,aAAA,WAAAF,4DACAP,WAAAU,QAKAV,WAAAW,WAAA,mDACAA,WAAA,oCACAA,WAAA,4EACAA,WAAA,QACAC,SAAA,KACAC,WAAA,kBACAC,YAAA,GACAD,WAAA,gBACAF,WAAA,QACAC,SAAA,KACAG,gBAAAX,YAAA,YACAS,kCAAAG,OAAAC,kCACAH,YAAA,GACAD,WAAA,kBACAC,YAAA,GACAD,eAAAG,OAAAE,aACAN,SAAA,KACAD,4BAAAK,OAAAG,oBACAN,WAAA,WACAD,SAAA,KACAE,YAAA,GACAF,SAAA,KACAC,WAAA,mBACAF,cAAAK,OAAAI,mBACAC,QC7CA,SAAAC,UAAAC,IAAAC,UAAAC,cACA,MAAAC,OAAA5B,SAAA6B,cAAA,UACAD,OAAAE,KAAA,kBACAF,OAAAG,IAAAN,IACAG,OAAAI,OAAA,OAEAC,IAAAP,YACAE,OAAAF,UAAAA,gBAGAO,IAAAN,eACAC,OAAAM,YAAAP,cAGA3B,SAAAmC,qBAAA,QAAA,GAAAC,YAAAR,QAGA,SAAAS,SAAAC,SAAAC,UACAvC,SAAAwC,cAAAF,UAEAG,UAAAF,SAGA,SAAAG,YAAAJ,SAAAC,UACA,MAAAI,QAAA3C,SAAAwC,cAAAF,UACAM,IAAA,IAAAC,eAAAN,gBAAA,KACAI,QAAAF,UAAAE,QAAAF,UAAAK,QAAAF,IAAA,MCfA,SAAAG,OAAAC,SAEA,aAEA,iBAAAC,QAAA,iBAAAA,OAAAC,QASAD,OAAAC,QAAAH,OAAA/C,SACAgD,QAAAD,QAAA,GACA,SAAAI,GACA,IAAAA,EAAAnD,SACA,MAAA,IAAAoD,MAAA,4CAEA,OAAAJ,QAAAG,IAGAH,QAAAD,QAtBA,CA0BA,oBAAA7B,OAAAA,OAAAmC,KAAA,SAAAnC,OAAAoC,UAMA,aAEA,IAAAC,OAEAvD,SAAAkB,OAAAlB,SAEAwD,SAAAC,OAAAC,eAEAC,MAAAJ,IAAAI,MAEAC,OAAAL,IAAAK,OAEAC,KAAAN,IAAAM,KAEAC,QAAAP,IAAAO,QAEAC,cAEAC,SAAAD,WAAAC,SAEAC,OAAAF,WAAAG,eAEAC,WAAAF,OAAAD,SAEAI,qBAAAD,WAAAE,KAAAZ,QAEAa,WAEAC,WAAA,SAAAC,KAMA,MAAA,mBAAAA,KAAA,iBAAAA,IAAAC,UAIAC,SAAA,SAAAF,KACA,OAAA,MAAAA,KAAAA,MAAAA,IAAAtD,QAMAyD,2BACA7C,MAAA,EACAC,KAAA,EACA6C,UAAA,GAGA,SAAAC,QAAAC,KAAAC,IAAAC,MAGA,IAAAC,EACArD,QAHAmD,IAAAA,KAAA/E,UAGA6B,cAAA,UAGA,GADAD,OAAAsD,KAAAJ,KACAE,KACA,IAAAC,KAAAN,0BACAK,KAAAC,KACArD,OAAAqD,GAAAD,KAAAC,IAIAF,IAAAI,KAAA/C,YAAAR,QAAAwD,WAAAC,YAAAzD,QAIA,SAAA0D,OAAAd,KACA,OAAA,MAAAA,IACAA,IAAA,GAIA,iBAAAA,KAAA,mBAAAA,IACAT,WAAAC,SAAAK,KAAAG,OAAA,gBACAA,IAQA,IAIAe,OAAA,SAAAjD,SAAAkD,SAIA,OAAA,IAAAD,OAAAE,GAAAC,KAAApD,SAAAkD,UAKAG,MAAA,qCAmVA,SAAAC,YAAApB,KAMA,IAAAqB,SAAArB,KAAA,WAAAA,KAAAA,IAAAqB,OACA/D,KAAAwD,OAAAd,KAEA,OAAAD,WAAAC,OAAAE,SAAAF,OAIA,UAAA1C,MAAA,IAAA+D,QACA,iBAAAA,QAAAA,OAAA,GAAAA,OAAA,KAAArB,KA/VAe,OAAAE,GAAAF,OAAAO,WAGAC,OAjBA,QAmBAC,YAAAT,OAGAM,OAAA,EAEAI,QAAA,WACA,OAAAtC,MAAAU,KAAAhB,OAKA6C,IAAA,SAAAC,KAGA,OAAA,MAAAA,IACAxC,MAAAU,KAAAhB,MAIA8C,IAAA,EAAA9C,KAAA8C,IAAA9C,KAAAwC,QAAAxC,KAAA8C,MAKAC,UAAA,SAAAC,OAGA,IAAAC,IAAAf,OAAAgB,MAAAlD,KAAA2C,cAAAK,OAMA,OAHAC,IAAAE,WAAAnD,KAGAiD,KAIAG,KAAA,SAAAC,UACA,OAAAnB,OAAAkB,KAAApD,KAAAqD,WAGAC,IAAA,SAAAD,UACA,OAAArD,KAAA+C,UAAAb,OAAAoB,IAAAtD,KAAA,SAAAuD,KAAA3B,GACA,OAAAyB,SAAArC,KAAAuC,KAAA3B,EAAA2B,UAIAjD,MAAA,WACA,OAAAN,KAAA+C,UAAAzC,MAAAkD,MAAAxD,KAAAyD,aAGAC,MAAA,WACA,OAAA1D,KAAA2D,GAAA,IAGAC,KAAA,WACA,OAAA5D,KAAA2D,IAAA,IAGAA,GAAA,SAAA/B,GACA,IAAAiC,IAAA7D,KAAAwC,OACAsB,GAAAlC,GAAAA,EAAA,EAAAiC,IAAA,GACA,OAAA7D,KAAA+C,UAAAe,GAAA,GAAAA,EAAAD,KAAA7D,KAAA8D,SAGAC,IAAA,WACA,OAAA/D,KAAAmD,YAAAnD,KAAA2C,eAKAnC,KAAAA,KACAwD,KAAA9D,IAAA8D,KACAC,OAAA/D,IAAA+D,QAGA/B,OAAAgC,OAAAhC,OAAAE,GAAA8B,OAAA,WACA,IAAAC,QAAAC,KAAA1F,IAAA2F,KAAAC,YAAAC,MACAC,OAAAf,UAAA,OACA7B,EAAA,EACAY,OAAAiB,UAAAjB,OACAiC,MAAA,EAsBA,IAnBA,kBAAAD,SACAC,KAAAD,OAGAA,OAAAf,UAAA7B,OACAA,KAIA,iBAAA4C,QAAAtD,WAAAsD,UACAA,WAIA5C,IAAAY,SACAgC,OAAAxE,KACA4B,KAGAA,EAAAY,OAAAZ,IAGA,GAAA,OAAAuC,QAAAV,UAAA7B,IAGA,IAAAwC,QAAAD,QACAzF,IAAA8F,OAAAJ,MAIAI,UAHAH,KAAAF,QAAAC,SAQAK,MAAAJ,OAAAnC,OAAAwC,cAAAL,QACAC,YAAAK,MAAAC,QAAAP,SAEAC,aACAA,aAAA,EACAC,MAAA7F,KAAAiG,MAAAC,QAAAlG,KAAAA,QAGA6F,MAAA7F,KAAAwD,OAAAwC,cAAAhG,KAAAA,OAIA8F,OAAAJ,MAAAlC,OAAAgC,OAAAO,KAAAF,MAAAF,YAGAzF,IAAAyF,OACAG,OAAAJ,MAAAC,OAOA,OAAAG,QAGAtC,OAAAgC,QAGAW,QAAA,UAvKA,QAuKAC,KAAAC,UAAAtF,QAAA,MAAA,IAGAuF,SAAA,EAEAC,MAAA,SAAAC,KACA,MAAA,IAAAnF,MAAAmF,MAGAC,KAAA,aAEAT,cAAA,SAAAvD,KACA,IAAAiE,MAAAC,KAIA,SAAAlE,KAAA,oBAAAR,SAAAK,KAAAG,UAIAiE,MAAAjF,SAAAgB,OASA,mBADAkE,KAAAzE,OAAAI,KAAAoE,MAAA,gBAAAA,MAAAzC,cACA7B,WAAAE,KAAAqE,QAAAtE,uBAGAuE,cAAA,SAAAnE,KAIA,IAAAiD,KAEA,IAAAA,QAAAjD,IACA,OAAA,EAEA,OAAA,GAIAoE,WAAA,SAAA9D,MACAD,QAAAC,OAGA2B,KAAA,SAAAjC,IAAAkC,UACA,IAAAb,OAAAZ,EAAA,EAEA,GAAAW,YAAApB,KAEA,IADAqB,OAAArB,IAAAqB,OACAZ,EAAAY,SACA,IAAAa,SAAArC,KAAAG,IAAAS,GAAAA,EAAAT,IAAAS,IADAA,UAMA,IAAAA,KAAAT,IACA,IAAA,IAAAkC,SAAArC,KAAAG,IAAAS,GAAAA,EAAAT,IAAAS,IACA,MAKA,OAAAT,KAIAqE,KAAA,SAAA3D,MACA,OAAA,MAAAA,KACA,IACAA,KAAA,IAAApC,QAAA6C,MAAA,KAIAmD,UAAA,SAAAvF,IAAAwF,SACA,IAAAzC,IAAAyC,YAaA,OAXA,MAAAxF,MACAqC,YAAAnC,OAAAF,MACAgC,OAAAgB,MAAAD,IACA,iBAAA/C,KACAA,KAAAA,KAGAM,KAAAQ,KAAAiC,IAAA/C,MAIA+C,KAGA0C,QAAA,SAAApC,KAAArD,IAAA0B,GACA,OAAA,MAAA1B,KAAA,EAAAO,QAAAO,KAAAd,IAAAqD,KAAA3B,IAKAsB,MAAA,SAAAQ,MAAAkC,QAKA,IAJA,IAAA/B,KAAA+B,OAAApD,OACAsB,EAAA,EACAlC,EAAA8B,MAAAlB,OAEAsB,EAAAD,IAAAC,IACAJ,MAAA9B,KAAAgE,OAAA9B,GAKA,OAFAJ,MAAAlB,OAAAZ,EAEA8B,OAGAmC,KAAA,SAAA7C,MAAAK,SAAAyC,QASA,IARA,IACAC,WACAnE,EAAA,EACAY,OAAAQ,MAAAR,OACAwD,gBAAAF,OAIAlE,EAAAY,OAAAZ,KACAyB,SAAAL,MAAApB,GAAAA,KACAoE,gBACAD,QAAAvF,KAAAwC,MAAApB,IAIA,OAAAmE,SAIAzC,IAAA,SAAAN,MAAAK,SAAA4C,KACA,IAAAzD,OAAA0D,MACAtE,EAAA,EACAqB,OAGA,GAAAV,YAAAS,OAEA,IADAR,OAAAQ,MAAAR,OACAZ,EAAAY,OAAAZ,IAGA,OAFAsE,MAAA7C,SAAAL,MAAApB,GAAAA,EAAAqE,OAGAhD,IAAAzC,KAAA0F,YAMA,IAAAtE,KAAAoB,MAGA,OAFAkD,MAAA7C,SAAAL,MAAApB,GAAAA,EAAAqE,OAGAhD,IAAAzC,KAAA0F,OAMA,OAAA3F,OAAAiD,SAAAP,MAIAkD,KAAA,EAIAlF,QAAAA,UAGA,mBAAAmF,SACAlE,OAAAE,GAAAgE,OAAAC,UAAAnG,IAAAkG,OAAAC,WAIAnE,OAAAkB,KAAA,uEAAAkD,MAAA,KACA,SAAA1E,EAAAwC,MACA1D,WAAA,WAAA0D,KAAA,KAAAA,KAAAmC,gBAmBA,IAAAC,OAWA,SAAA3I,QAEA,IAAA+D,EACAX,QACAwF,KACAC,QACAC,MACAC,SACAC,QACAC,OACAC,iBACAC,UACAC,aAGAC,YACAvK,SACAwK,QACAC,eACAC,UACAC,cACAvB,QACAwB,SAGA1C,QAAA,SAAA,EAAA,IAAA2C,KACAC,aAAA5J,OAAAlB,SACA+K,QAAA,EACAC,KAAA,EACAC,WAAAC,cACAC,WAAAD,cACAE,cAAAF,cACAG,UAAA,SAAAC,EAAAC,GAIA,OAHAD,IAAAC,IACAjB,cAAA,GAEA,GAIArG,UAAAC,eACAX,OACAiI,IAAAjI,IAAAiI,IACAC,YAAAlI,IAAAM,KACAA,KAAAN,IAAAM,KACAF,MAAAJ,IAAAI,MAGAG,QAAA,SAAA4H,KAAA9E,MAGA,IAFA,IAAA3B,EAAA,EACAiC,IAAAwE,KAAA7F,OACAZ,EAAAiC,IAAAjC,IACA,GAAAyG,KAAAzG,KAAA2B,KACA,OAAA3B,EAGA,OAAA,GAGA0G,SAAA,6HAKAC,WAAA,sBAGAC,WAAA,gCAGAC,WAAA,MAAAF,WAAA,KAAAC,WAAA,OAAAD,WAEA,gBAAAA,WAEA,2DAAAC,WAAA,OAAAD,WACA,OAEAG,QAAA,KAAAF,WAAA,wFAKAC,WAAA,eAMAE,YAAA,IAAAnJ,OAAA+I,WAAA,IAAA,KACAjG,MAAA,IAAA9C,OAAA,IAAA+I,WAAA,8BAAAA,WAAA,KAAA,KAEAK,OAAA,IAAApJ,OAAA,IAAA+I,WAAA,KAAAA,WAAA,KACAM,aAAA,IAAArJ,OAAA,IAAA+I,WAAA,WAAAA,WAAA,IAAAA,WAAA,KAEAO,iBAAA,IAAAtJ,OAAA,IAAA+I,WAAA,iBAAAA,WAAA,OAAA,KAEAQ,QAAA,IAAAvJ,OAAAkJ,SACAM,YAAA,IAAAxJ,OAAA,IAAAgJ,WAAA,KAEAS,WACAC,GAAA,IAAA1J,OAAA,MAAAgJ,WAAA,KACAW,MAAA,IAAA3J,OAAA,QAAAgJ,WAAA,KACAY,IAAA,IAAA5J,OAAA,KAAAgJ,WAAA,SACAa,KAAA,IAAA7J,OAAA,IAAAiJ,YACAa,OAAA,IAAA9J,OAAA,IAAAkJ,SACAa,MAAA,IAAA/J,OAAA,yDAAA+I,WACA,+BAAAA,WAAA,cAAAA,WACA,aAAAA,WAAA,SAAA,KACAiB,KAAA,IAAAhK,OAAA,OAAA8I,SAAA,KAAA,KAGAmB,aAAA,IAAAjK,OAAA,IAAA+I,WAAA,mDACAA,WAAA,mBAAAA,WAAA,mBAAA,MAGAmB,QAAA,sCACAC,QAAA,SAEAC,QAAA,yBAGAC,WAAA,mCAEAC,SAAA,OAIAC,UAAA,IAAAvK,OAAA,qBAAA+I,WAAA,MAAAA,WAAA,OAAA,MACAyB,UAAA,SAAAC,EAAAC,QAAAC,mBACA,IAAAC,KAAA,KAAAF,QAAA,MAIA,OAAAE,MAAAA,MAAAD,kBACAD,QACAE,KAAA,EAEAC,OAAAC,aAAAF,KAAA,OAEAC,OAAAC,aAAAF,MAAA,GAAA,MAAA,KAAAA,KAAA,QAKAG,WAAA,sDACAC,WAAA,SAAAC,GAAAC,aACA,OAAAA,YAGA,OAAAD,GACA,IAIAA,GAAAnK,MAAA,GAAA,GAAA,KAAAmK,GAAAE,WAAAF,GAAAjI,OAAA,GAAA7B,SAAA,IAAA,IAIA,KAAA8J,IAOAG,cAAA,WACA1D,eAGA2D,iBAAAC,cACA,SAAAvH,MACA,OAAA,IAAAA,KAAAwH,WAAA,SAAAxH,MAAA,UAAAA,QAEAyH,IAAA,aAAAC,KAAA,WAIA,IACAzK,KAAAgD,MACAtD,IAAAI,MAAAU,KAAAyG,aAAAyD,YACAzD,aAAAyD,YAIAhL,IAAAuH,aAAAyD,WAAA1I,QAAApB,SACA,MAAA+J,GACA3K,MAAAgD,MAAAtD,IAAAsC,OAGA,SAAAgC,OAAA4G,KACAhD,YAAA5E,MAAAgB,OAAAlE,MAAAU,KAAAoK,OAKA,SAAA5G,OAAA4G,KAIA,IAHA,IAAAtH,EAAAU,OAAAhC,OACAZ,EAAA,EAEA4C,OAAAV,KAAAsH,IAAAxJ,OACA4C,OAAAhC,OAAAsB,EAAA,IAKA,SAAA0C,OAAAvH,SAAAkD,QAAAuD,QAAA2F,MACA,IAAAC,EAAA1J,EAAA2B,KAAAgI,IAAAC,MAAAC,OAAAC,YACAC,WAAAxJ,SAAAA,QAAAyJ,cAGAxK,SAAAe,QAAAA,QAAAf,SAAA,EAKA,GAHAsE,QAAAA,YAGA,iBAAAzG,WAAAA,UACA,IAAAmC,UAAA,IAAAA,UAAA,KAAAA,SAEA,OAAAsE,QAIA,IAAA2F,QAEAlJ,QAAAA,QAAAyJ,eAAAzJ,QAAAsF,gBAAA9K,UACAuK,YAAA/E,SAEAA,QAAAA,SAAAxF,SAEAyK,gBAAA,CAIA,GAAA,KAAAhG,WAAAoK,MAAA3B,WAAAgC,KAAA5M,WAGA,GAAAqM,EAAAE,MAAA,IAGA,GAAA,IAAApK,SAAA,CACA,KAAAmC,KAAApB,QAAAvF,eAAA0O,IAUA,OAAA5F,QALA,GAAAnC,KAAAuI,KAAAR,EAEA,OADA5F,QAAAlF,KAAA+C,MACAmC,aAYA,GAAAiG,aAAApI,KAAAoI,WAAA/O,eAAA0O,KACA/D,SAAApF,QAAAoB,OACAA,KAAAuI,KAAAR,EAGA,OADA5F,QAAAlF,KAAA+C,MACAmC,YAKA,CAAA,GAAA8F,MAAA,GAEA,OADAhL,KAAAgD,MAAAkC,QAAAvD,QAAArD,qBAAAG,WACAyG,QAGA,IAAA4F,EAAAE,MAAA,KAAAvK,QAAA8K,wBACA5J,QAAA4J,uBAGA,OADAvL,KAAAgD,MAAAkC,QAAAvD,QAAA4J,uBAAAT,IACA5F,QAKA,GAAAzE,QAAA+K,MACAjE,cAAA9I,SAAA,QACAoI,YAAAA,UAAA4E,KAAAhN,WAAA,CAEA,GAAA,IAAAmC,SACAuK,WAAAxJ,QACAuJ,YAAAzM,cAMA,GAAA,WAAAkD,QAAA+J,SAAA3F,cAAA,CAYA,KATAgF,IAAApJ,QAAA9E,aAAA,OACAkO,IAAAA,IAAA9L,QAAA8K,WAAAC,YAEArI,QAAA7E,aAAA,KAAAiO,IAAA1G,SAKAjD,GADA6J,OAAA7E,SAAA3H,WACAuD,OACAZ,KACA6J,OAAA7J,GAAA,IAAA2J,IAAA,IAAAY,WAAAV,OAAA7J,IAEA8J,YAAAD,OAAAW,KAAA,KAGAT,WAAA7B,SAAAmC,KAAAhN,WAAAoN,YAAAlK,QAAAJ,aACAI,QAGA,GAAAuJ,YACA,IAIA,OAHAlL,KAAAgD,MAAAkC,QACAiG,WAAAW,iBAAAZ,cAEAhG,QACA,MAAA6G,WACA,QACAhB,MAAA1G,SACA1C,QAAAqK,gBAAA,QASA,OAAA1F,OAAA7H,SAAAQ,QAAA6C,MAAA,MAAAH,QAAAuD,QAAA2F,MASA,SAAAxD,cACA,IAAA4E,QAUA,OARA,SAAAC,MAAAC,IAAAzG,OAMA,OAJAuG,KAAAjM,KAAAmM,IAAA,KAAAlG,KAAAmG,oBAEAF,MAAAD,KAAAI,SAEAH,MAAAC,IAAA,KAAAzG,OASA,SAAA4G,aAAA1K,IAEA,OADAA,GAAAyC,UAAA,EACAzC,GAOA,SAAA2K,OAAA3K,IACA,IAAA4K,GAAArQ,SAAA6B,cAAA,YAEA,IACA,QAAA4D,GAAA4K,IACA,MAAA7B,GACA,OAAA,EACA,QAEA6B,GAAAjL,YACAiL,GAAAjL,WAAAC,YAAAgL,IAGAA,GAAA,MASA,SAAAC,UAAAC,MAAAC,SAIA,IAHA,IAAAjN,IAAAgN,MAAA5G,MAAA,KACA1E,EAAA1B,IAAAsC,OAEAZ,KACA6E,KAAA2G,WAAAlN,IAAA0B,IAAAuL,QAUA,SAAAE,aAAApF,EAAAC,GACA,IAAAoF,IAAApF,GAAAD,EACAsF,KAAAD,KAAA,IAAArF,EAAA7G,UAAA,IAAA8G,EAAA9G,UACA6G,EAAAuF,YAAAtF,EAAAsF,YAGA,GAAAD,KACA,OAAAA,KAIA,GAAAD,IACA,KAAAA,IAAAA,IAAAG,aACA,GAAAH,MAAApF,EACA,OAAA,EAKA,OAAAD,EAAA,GAAA,EAOA,SAAAyF,kBAAAjP,MACA,OAAA,SAAA8E,MAEA,MAAA,UADAA,KAAA2I,SAAA3F,eACAhD,KAAA9E,OAAAA,MAQA,SAAAkP,mBAAAlP,MACA,OAAA,SAAA8E,MACA,IAAAa,KAAAb,KAAA2I,SAAA3F,cACA,OAAA,UAAAnC,MAAA,WAAAA,OAAAb,KAAA9E,OAAAA,MAQA,SAAAmP,qBAAA7C,UAGA,OAAA,SAAAxH,MAKA,MAAA,SAAAA,KASAA,KAAAxB,aAAA,IAAAwB,KAAAwH,SAGA,UAAAxH,KACA,UAAAA,KAAAxB,WACAwB,KAAAxB,WAAAgJ,WAAAA,SAEAxH,KAAAwH,WAAAA,SAMAxH,KAAAsK,aAAA9C,UAIAxH,KAAAsK,cAAA9C,UACAF,iBAAAtH,QAAAwH,SAGAxH,KAAAwH,WAAAA,SAKA,UAAAxH,MACAA,KAAAwH,WAAAA,UAYA,SAAA+C,uBAAA1L,IACA,OAAA0K,aAAA,SAAAiB,UAEA,OADAA,UAAAA,SACAjB,aAAA,SAAAzB,KAAAtF,SAMA,IALA,IAAAjC,EACAkK,aAAA5L,MAAAiJ,KAAA7I,OAAAuL,UACAnM,EAAAoM,aAAAxL,OAGAZ,KACAyJ,KAAAvH,EAAAkK,aAAApM,MACAyJ,KAAAvH,KAAAiC,QAAAjC,GAAAuH,KAAAvH,SAYA,SAAAuI,YAAAlK,SACA,OAAAA,cAAA,IAAAA,QAAArD,sBAAAqD,QAijCA,IAAAP,KA7iCAX,QAAAuF,OAAAvF,WAOA0F,MAAAH,OAAAG,MAAA,SAAApD,MAGA,IAAA0K,gBAAA1K,OAAAA,KAAAqI,eAAArI,MAAA0K,gBACA,QAAAA,iBAAA,SAAAA,gBAAA/B,UAQAhF,YAAAV,OAAAU,YAAA,SAAAvF,MACA,IAAAuM,WAAAC,UACAzM,IAAAC,KAAAA,KAAAiK,eAAAjK,KAAA8F,aAGA,OAAA/F,MAAA/E,UAAA,IAAA+E,IAAAN,UAAAM,IAAAuM,iBAMA9G,SADAxK,SAAA+E,KACAuM,gBACA7G,gBAAAT,MAAAhK,UAIA8K,eAAA9K,WACAwR,UAAAxR,SAAAyR,cAAAD,UAAAE,MAAAF,YAGAA,UAAAG,iBACAH,UAAAG,iBAAA,SAAA1D,eAAA,GAGAuD,UAAAI,aACAJ,UAAAI,YAAA,WAAA3D,gBAUA3J,QAAAwH,WAAAsE,OAAA,SAAAC,IAEA,OADAA,GAAA5N,UAAA,KACA4N,GAAA3P,aAAA,eAOA4D,QAAAnC,qBAAAiO,OAAA,SAAAC,IAEA,OADAA,GAAAjO,YAAApC,SAAA6R,cAAA,MACAxB,GAAAlO,qBAAA,KAAA0D,SAIAvB,QAAA8K,uBAAAnC,QAAAqC,KAAAtP,SAAAoP,wBAMA9K,QAAAwN,QAAA1B,OAAA,SAAAC,IAEA,OADA7F,QAAApI,YAAAiO,IAAAlB,GAAAjH,SACAlI,SAAA+R,oBAAA/R,SAAA+R,kBAAA7J,SAAArC,SAIAvB,QAAAwN,SACAhI,KAAAkI,OAAA,GAAA,SAAA7C,IACA,IAAA8C,OAAA9C,GAAArM,QAAAsK,UAAAC,WACA,OAAA,SAAAzG,MACA,OAAAA,KAAAlG,aAAA,QAAAuR,SAGAnI,KAAAoI,KAAA,GAAA,SAAA/C,GAAA3J,SACA,QAAA,IAAAA,QAAAvF,gBAAAwK,eAAA,CACA,IAAA7D,KAAApB,QAAAvF,eAAAkP,IACA,OAAAvI,MAAAA,aAIAkD,KAAAkI,OAAA,GAAA,SAAA7C,IACA,IAAA8C,OAAA9C,GAAArM,QAAAsK,UAAAC,WACA,OAAA,SAAAzG,MACA,IAAA5B,UAAA,IAAA4B,KAAAuL,kBACAvL,KAAAuL,iBAAA,MACA,OAAAnN,MAAAA,KAAAuE,QAAA0I,SAMAnI,KAAAoI,KAAA,GAAA,SAAA/C,GAAA3J,SACA,QAAA,IAAAA,QAAAvF,gBAAAwK,eAAA,CACA,IAAAzF,KAAAC,EAAAoB,MACAO,KAAApB,QAAAvF,eAAAkP,IAEA,GAAAvI,KAAA,CAIA,IADA5B,KAAA4B,KAAAuL,iBAAA,QACAnN,KAAAuE,QAAA4F,GACA,OAAAvI,MAMA,IAFAP,MAAAb,QAAAuM,kBAAA5C,IACAlK,EAAA,EACA2B,KAAAP,MAAApB,MAEA,IADAD,KAAA4B,KAAAuL,iBAAA,QACAnN,KAAAuE,QAAA4F,GACA,OAAAvI,MAKA,YAMAkD,KAAAoI,KAAA,IAAA5N,QAAAnC,qBACA,SAAAiQ,IAAA5M,SACA,YAAA,IAAAA,QAAArD,qBACAqD,QAAArD,qBAAAiQ,KAGA9N,QAAA+K,IACA7J,QAAAmK,iBAAAyC,UADA,GAKA,SAAAA,IAAA5M,SACA,IAAAoB,KACAyL,OACApN,EAAA,EAEA8D,QAAAvD,QAAArD,qBAAAiQ,KAGA,GAAA,MAAAA,IAAA,CACA,KAAAxL,KAAAmC,QAAA9D,MACA,IAAA2B,KAAAnC,UACA4N,IAAAxO,KAAA+C,MAIA,OAAAyL,IAEA,OAAAtJ,SAIAe,KAAAoI,KAAA,MAAA5N,QAAA8K,wBAAA,SAAA3M,UAAA+C,SACA,QAAA,IAAAA,QAAA4J,wBAAA3E,eACA,OAAAjF,QAAA4J,uBAAA3M,YAUAkI,iBAOAD,cAEApG,QAAA+K,IAAApC,QAAAqC,KAAAtP,SAAA2P,qBAGAS,OAAA,SAAAC,IAMA7F,QAAApI,YAAAiO,IAAAiC,UAAA,UAAApK,QAAA,qBACAA,QAAA,kEAOAmI,GAAAV,iBAAA,wBAAA9J,QACA6E,UAAA7G,KAAA,SAAA+H,WAAA,gBAKAyE,GAAAV,iBAAA,cAAA9J,QACA6E,UAAA7G,KAAA,MAAA+H,WAAA,aAAAD,SAAA,KAIA0E,GAAAV,iBAAA,QAAAzH,QAAA,MAAArC,QACA6E,UAAA7G,KAAA,MAMAwM,GAAAV,iBAAA,YAAA9J,QACA6E,UAAA7G,KAAA,YAMAwM,GAAAV,iBAAA,KAAAzH,QAAA,MAAArC,QACA6E,UAAA7G,KAAA,cAIAuM,OAAA,SAAAC,IACAA,GAAAiC,UAAA,oFAKA,IAAAC,MAAAvS,SAAA6B,cAAA,SACA0Q,MAAA5R,aAAA,OAAA,UACA0P,GAAAjO,YAAAmQ,OAAA5R,aAAA,OAAA,KAIA0P,GAAAV,iBAAA,YAAA9J,QACA6E,UAAA7G,KAAA,OAAA+H,WAAA,eAKA,IAAAyE,GAAAV,iBAAA,YAAA9J,QACA6E,UAAA7G,KAAA,WAAA,aAKA2G,QAAApI,YAAAiO,IAAAjC,UAAA,EACA,IAAAiC,GAAAV,iBAAA,aAAA9J,QACA6E,UAAA7G,KAAA,WAAA,aAIAwM,GAAAV,iBAAA,QACAjF,UAAA7G,KAAA,YAIAS,QAAAkO,gBAAAvF,QAAAqC,KAAAlG,QAAAoB,QAAApB,SACAoB,QAAAiI,uBACAjI,QAAAkI,oBACAlI,QAAAmI,kBACAnI,QAAAoI,qBAEAxC,OAAA,SAAAC,IAGA/L,QAAAuO,kBAAAzJ,QAAA/E,KAAAgM,GAAA,KAIAjH,QAAA/E,KAAAgM,GAAA,aACA1F,cAAA9G,KAAA,KAAAkI,WAIArB,UAAAA,UAAA7E,QAAA,IAAAhD,OAAA6H,UAAA+E,KAAA,MACA9E,cAAAA,cAAA9E,QAAA,IAAAhD,OAAA8H,cAAA8E,KAAA,MAIA8B,WAAAtE,QAAAqC,KAAA9E,QAAAsI,yBAKAlI,SAAA2G,YAAAtE,QAAAqC,KAAA9E,QAAAI,UACA,SAAAU,EAAAC,GACA,IAAAwH,MAAA,IAAAzH,EAAA7G,SAAA6G,EAAAgG,gBAAAhG,EACA0H,IAAAzH,GAAAA,EAAAnG,WACA,OAAAkG,IAAA0H,QAAAA,KAAA,IAAAA,IAAAvO,YACAsO,MAAAnI,SACAmI,MAAAnI,SAAAoI,KACA1H,EAAAwH,yBAAA,GAAAxH,EAAAwH,wBAAAE,QAGA,SAAA1H,EAAAC,GACA,GAAAA,EACA,KAAAA,EAAAA,EAAAnG,YACA,GAAAmG,IAAAD,EACA,OAAA,EAIA,OAAA,GAOAD,UAAAkG,WACA,SAAAjG,EAAAC,GAGA,GAAAD,IAAAC,EAEA,OADAjB,cAAA,EACA,EAIA,IAAA2I,SAAA3H,EAAAwH,yBAAAvH,EAAAuH,wBACA,OAAAG,UAYA,GAPAA,SAAA3H,EAAA2D,eAAA3D,MAAAC,EAAA0D,eAAA1D,GACAD,EAAAwH,wBAAAvH,GAGA,KAIAjH,QAAA4O,cAAA3H,EAAAuH,wBAAAxH,KAAA2H,QAGA3H,IAAAtL,UAAAsL,EAAA2D,gBAAAnE,cAAAF,SAAAE,aAAAQ,IACA,EAEAC,IAAAvL,UAAAuL,EAAA0D,gBAAAnE,cAAAF,SAAAE,aAAAS,GACA,EAIAlB,UACAvG,QAAAuG,UAAAiB,GAAAxH,QAAAuG,UAAAkB,GACA,EAGA,EAAA0H,SAAA,EAAA,IAEA,SAAA3H,EAAAC,GAEA,GAAAD,IAAAC,EAEA,OADAjB,cAAA,EACA,EAGA,IAAAqG,IACA1L,EAAA,EACAkO,IAAA7H,EAAAlG,WACA4N,IAAAzH,EAAAnG,WACAgO,IAAA9H,GACA+H,IAAA9H,GAGA,IAAA4H,MAAAH,IACA,OAAA1H,IAAAtL,UAAA,EACAuL,IAAAvL,SAAA,EACAmT,KAAA,EACAH,IAAA,EACA3I,UACAvG,QAAAuG,UAAAiB,GAAAxH,QAAAuG,UAAAkB,GACA,EAGA,GAAA4H,MAAAH,IACA,OAAAtC,aAAApF,EAAAC,GAKA,IADAoF,IAAArF,EACAqF,IAAAA,IAAAvL,YACAgO,GAAAE,QAAA3C,KAGA,IADAA,IAAApF,EACAoF,IAAAA,IAAAvL,YACAiO,GAAAC,QAAA3C,KAIA,KAAAyC,GAAAnO,KAAAoO,GAAApO,IACAA,IAGA,OAAAA,EAEAyL,aAAA0C,GAAAnO,GAAAoO,GAAApO,IAGAmO,GAAAnO,KAAA6F,cAAA,EACAuI,GAAApO,KAAA6F,aAAA,EACA,GAGA9K,UA3YAA,UA8YA6J,OAAAT,QAAA,SAAAmK,KAAAC,UACA,OAAA3J,OAAA0J,KAAA,KAAA,KAAAC,WAGA3J,OAAA2I,gBAAA,SAAA5L,KAAA2M,MASA,IAPA3M,KAAAqI,eAAArI,QAAA5G,UACAuK,YAAA3D,MAIA2M,KAAAA,KAAAzQ,QAAAqJ,iBAAA,UAEA7H,QAAAkO,iBAAA/H,iBACAW,cAAAmI,KAAA,QACA5I,gBAAAA,cAAA2E,KAAAiE,UACA7I,YAAAA,UAAA4E,KAAAiE,OAEA,IACA,IAAAjN,IAAA8C,QAAA/E,KAAAuC,KAAA2M,MAGA,GAAAjN,KAAAhC,QAAAuO,mBAGAjM,KAAA5G,UAAA,KAAA4G,KAAA5G,SAAAyE,SACA,OAAA6B,IAEA,MAAAkI,IAGA,OAAA3E,OAAA0J,KAAAvT,SAAA,MAAA4G,OAAAf,OAAA,GAGAgE,OAAAe,SAAA,SAAApF,QAAAoB,MAKA,OAHApB,QAAAyJ,eAAAzJ,WAAAxF,UACAuK,YAAA/E,SAEAoF,SAAApF,QAAAoB,OAGAiD,OAAA4J,KAAA,SAAA7M,KAAAa,OAEAb,KAAAqI,eAAArI,QAAA5G,UACAuK,YAAA3D,MAGA,IAAAnB,GAAAqE,KAAA2G,WAAAhJ,KAAAmC,eAEA8J,IAAAjO,IAAAxB,OAAAI,KAAAyF,KAAA2G,WAAAhJ,KAAAmC,eACAnE,GAAAmB,KAAAa,MAAAgD,qBACAxI,EAEA,YAAAA,IAAAyR,IACAA,IACApP,QAAAwH,aAAArB,eACA7D,KAAAlG,aAAA+G,OACAiM,IAAA9M,KAAAuL,iBAAA1K,QAAAiM,IAAAC,UACAD,IAAAnK,MACA,MAGAM,OAAA+J,OAAA,SAAAC,KACA,OAAAA,IAAA,IAAA/Q,QAAA8K,WAAAC,aAGAhE,OAAAvB,MAAA,SAAAC,KACA,MAAA,IAAAnF,MAAA,0CAAAmF,MAOAsB,OAAAiK,WAAA,SAAA/K,SACA,IAAAnC,KACAmN,cACA5M,EAAA,EACAlC,EAAA,EAOA,GAJAqF,cAAAhG,QAAA0P,iBACA3J,WAAA/F,QAAA2P,YAAAlL,QAAApF,MAAA,GACAoF,QAAA1B,KAAAgE,WAEAf,aAAA,CACA,KAAA1D,KAAAmC,QAAA9D,MACA2B,OAAAmC,QAAA9D,KACAkC,EAAA4M,WAAAlQ,KAAAoB,IAGA,KAAAkC,KACA4B,QAAAzB,OAAAyM,WAAA5M,GAAA,GAQA,OAFAkD,UAAA,KAEAtB,SAOAgB,QAAAF,OAAAE,QAAA,SAAAnD,MACA,IAAA5B,KACAsB,IAAA,GACArB,EAAA,EACAR,SAAAmC,KAAAnC,SAEA,GAAAA,UAMA,GAAA,IAAAA,UAAA,IAAAA,UAAA,KAAAA,SAAA,CAGA,GAAA,iBAAAmC,KAAAsN,YACA,OAAAtN,KAAAsN,YAGA,IAAAtN,KAAAA,KAAAuN,WAAAvN,KAAAA,KAAAA,KAAAkK,YACAxK,KAAAyD,QAAAnD,WAGA,GAAA,IAAAnC,UAAA,IAAAA,SACA,OAAAmC,KAAAwN,eAhBA,KAAApP,KAAA4B,KAAA3B,MAEAqB,KAAAyD,QAAA/E,MAkBA,OAAAsB,MAGAwD,KAAAD,OAAAwK,WAGApE,YAAA,GAEAqE,aAAAnE,aAEAtB,MAAAvC,UAEAmE,cAEAyB,QAEAqC,UACAC,KAAAnG,IAAA,aAAAtH,OAAA,GACA0N,KAAApG,IAAA,cACAqG,KAAArG,IAAA,kBAAAtH,OAAA,GACA4N,KAAAtG,IAAA,oBAGAuG,WACAlI,KAAA,SAAAmC,OAUA,OATAA,MAAA,GAAAA,MAAA,GAAA/L,QAAAsK,UAAAC,WAGAwB,MAAA,IAAAA,MAAA,IAAAA,MAAA,IAAAA,MAAA,IAAA,IAAA/L,QAAAsK,UAAAC,WAEA,OAAAwB,MAAA,KACAA,MAAA,GAAA,IAAAA,MAAA,GAAA,KAGAA,MAAAlL,MAAA,EAAA,IAGAiJ,MAAA,SAAAiC,OA6BA,OAlBAA,MAAA,GAAAA,MAAA,GAAAjF,cAEA,QAAAiF,MAAA,GAAAlL,MAAA,EAAA,IAEAkL,MAAA,IACAhF,OAAAvB,MAAAuG,MAAA,IAKAA,MAAA,KAAAA,MAAA,GAAAA,MAAA,IAAAA,MAAA,IAAA,GAAA,GAAA,SAAAA,MAAA,IAAA,QAAAA,MAAA,KACAA,MAAA,KAAAA,MAAA,GAAAA,MAAA,IAAA,QAAAA,MAAA,KAGAA,MAAA,IACAhF,OAAAvB,MAAAuG,MAAA,IAGAA,OAGAlC,OAAA,SAAAkC,OACA,IAAAgG,OACAC,UAAAjG,MAAA,IAAAA,MAAA,GAEA,OAAAvC,UAAA,MAAAgD,KAAAT,MAAA,IACA,MAIAA,MAAA,GACAA,MAAA,GAAAA,MAAA,IAAAA,MAAA,IAAA,GAGAiG,UAAA1I,QAAAkD,KAAAwF,YAEAD,OAAA5K,SAAA6K,UAAA,MAEAD,OAAAC,SAAAhR,QAAA,IAAAgR,SAAAjP,OAAAgP,QAAAC,SAAAjP,UAGAgJ,MAAA,GAAAA,MAAA,GAAAlL,MAAA,EAAAkR,QACAhG,MAAA,GAAAiG,SAAAnR,MAAA,EAAAkR,SAIAhG,MAAAlL,MAAA,EAAA,MAIAqO,QAEAvF,IAAA,SAAAsI,kBACA,IAAAxF,SAAAwF,iBAAAjS,QAAAsK,UAAAC,WAAAzD,cACA,MAAA,MAAAmL,iBACA,WAAA,OAAA,GACA,SAAAnO,MACA,OAAAA,KAAA2I,UAAA3I,KAAA2I,SAAA3F,gBAAA2F,WAIA/C,MAAA,SAAA/J,WACA,IAAAuS,QAAA/J,WAAAxI,UAAA,KAEA,OAAAuS,UACAA,QAAA,IAAAnS,OAAA,MAAA+I,WAAA,IAAAnJ,UAAA,IAAAmJ,WAAA,SACAX,WAAAxI,UAAA,SAAAmE,MACA,OAAAoO,QAAA1F,KAAA,iBAAA1I,KAAAnE,WAAAmE,KAAAnE,gBAAA,IAAAmE,KAAAlG,cAAAkG,KAAAlG,aAAA,UAAA,OAIAgM,KAAA,SAAAjF,KAAAwN,SAAAC,OACA,OAAA,SAAAtO,MACA,IAAAuO,OAAAtL,OAAA4J,KAAA7M,KAAAa,MAEA,OAAA,MAAA0N,OACA,OAAAF,UAEAA,WAIAE,QAAA,GAEA,MAAAF,SAAAE,SAAAD,MACA,OAAAD,SAAAE,SAAAD,MACA,OAAAD,SAAAC,OAAA,IAAAC,OAAArR,QAAAoR,OACA,OAAAD,SAAAC,OAAAC,OAAArR,QAAAoR,QAAA,EACA,OAAAD,SAAAC,OAAAC,OAAAxR,OAAAuR,MAAArP,UAAAqP,MACA,OAAAD,UAAA,IAAAE,OAAArS,QAAAkJ,YAAA,KAAA,KAAAlI,QAAAoR,QAAA,EACA,OAAAD,WAAAE,SAAAD,OAAAC,OAAAxR,MAAA,EAAAuR,MAAArP,OAAA,KAAAqP,MAAA,QAKAtI,MAAA,SAAA9K,KAAAsT,KAAAhE,SAAArK,MAAAE,MACA,IAAAoO,OAAA,QAAAvT,KAAA6B,MAAA,EAAA,GACA2R,QAAA,SAAAxT,KAAA6B,OAAA,GACA4R,OAAA,YAAAH,KAEA,OAAA,IAAArO,OAAA,IAAAE,KAGA,SAAAL,MACA,QAAAA,KAAAxB,YAGA,SAAAwB,KAAApB,QAAAgQ,KACA,IAAAzF,MAAA0F,YAAAC,WAAA1Q,KAAA2Q,UAAApU,MACA8M,IAAAgH,SAAAC,QAAA,cAAA,kBACAM,OAAAhP,KAAAxB,WACAqC,KAAA8N,QAAA3O,KAAA2I,SAAA3F,cACAiM,UAAAL,MAAAD,OACA3E,MAAA,EAEA,GAAAgF,OAAA,CAGA,GAAAP,OAAA,CACA,KAAAhH,KAAA,CAEA,IADArJ,KAAA4B,KACA5B,KAAAA,KAAAqJ,MACA,GAAAkH,OACAvQ,KAAAuK,SAAA3F,gBAAAnC,KACA,IAAAzC,KAAAP,SAEA,OAAA,EAIAlD,MAAA8M,IAAA,SAAAvM,OAAAP,OAAA,cAEA,OAAA,EAMA,GAHAA,OAAA+T,QAAAM,OAAAzB,WAAAyB,OAAAE,WAGAR,SAAAO,UAkBA,IAHAjF,MADA+E,WADA5F,OAHA0F,aAJAC,YADA1Q,KAAA4Q,QACA1N,WAAAlD,KAAAkD,cAIAlD,KAAA+Q,YACAL,WAAA1Q,KAAA+Q,eAEAjU,WACA,KAAAiJ,SAAAgF,MAAA,KACAA,MAAA,GACA/K,KAAA2Q,WAAAC,OAAArH,WAAAoH,WAEA3Q,OAAA2Q,WAAA3Q,MAAAA,KAAAqJ,OAGAuC,KAAA+E,UAAA,IAAApU,MAAAiK,OAGA,GAAA,IAAAxG,KAAAP,YAAAmM,MAAA5L,OAAA4B,KAAA,CACA6O,YAAA3T,OAAAiJ,QAAA4K,UAAA/E,MACA,YAuBA,GAjBAiF,WAYAjF,KADA+E,WADA5F,OAHA0F,aAJAC,YADA1Q,KAAA4B,MACAsB,WAAAlD,KAAAkD,cAIAlD,KAAA+Q,YACAL,WAAA1Q,KAAA+Q,eAEAjU,WACA,KAAAiJ,SAAAgF,MAAA,KAMA,IAAAa,KAEA,MAAA5L,OAAA2Q,WAAA3Q,MAAAA,KAAAqJ,OACAuC,KAAA+E,UAAA,IAAApU,MAAAiK,UAEA+J,OACAvQ,KAAAuK,SAAA3F,gBAAAnC,KACA,IAAAzC,KAAAP,cACAmM,OAGAiF,YAKAJ,aAJAC,WAAA1Q,KAAAkD,WAAAlD,KAAAkD,cAIAlD,KAAA+Q,YACAL,WAAA1Q,KAAA+Q,eAEAjU,OAAAiJ,QAAA6F,OAGA5L,OAAA4B,SAUA,OADAgK,MAAA3J,QACAF,OAAA6J,KAAA7J,OAAA,GAAA6J,KAAA7J,OAAA,KAKA4F,OAAA,SAAAqJ,OAAA5E,UAKA,IAAA6E,KACAxQ,GAAAqE,KAAAiC,QAAAiK,SAAAlM,KAAAoM,WAAAF,OAAApM,gBACAC,OAAAvB,MAAA,uBAAA0N,QAKA,OAAAvQ,GAAAyC,SACAzC,GAAA2L,UAIA3L,GAAAI,OAAA,GACAoQ,MAAAD,OAAAA,OAAA,GAAA5E,UACAtH,KAAAoM,WAAAhS,eAAA8R,OAAApM,eACAuG,aAAA,SAAAzB,KAAAtF,SAIA,IAHA,IAAA+M,IACAC,QAAA3Q,GAAAiJ,KAAA0C,UACAnM,EAAAmR,QAAAvQ,OACAZ,KAEAyJ,KADAyH,IAAArS,QAAA4K,KAAA0H,QAAAnR,OACAmE,QAAA+M,KAAAC,QAAAnR,MAGA,SAAA2B,MACA,OAAAnB,GAAAmB,KAAA,EAAAqP,QAIAxQ,KAIAsG,SAEAsK,IAAAlG,aAAA,SAAA7N,UAIA,IAAAiQ,SACAxJ,WACAuN,QAAApM,QAAA5H,SAAAQ,QAAA6C,MAAA,OAEA,OAAA2Q,QAAApO,SACAiI,aAAA,SAAAzB,KAAAtF,QAAA5D,QAAAgQ,KAMA,IALA,IAAA5O,KACA2P,UAAAD,QAAA5H,KAAA,KAAA8G,QACAvQ,EAAAyJ,KAAA7I,OAGAZ,MACA2B,KAAA2P,UAAAtR,MACAyJ,KAAAzJ,KAAAmE,QAAAnE,GAAA2B,SAIA,SAAAA,KAAApB,QAAAgQ,KAKA,OAJAjD,MAAA,GAAA3L,KACA0P,QAAA/D,MAAA,KAAAiD,IAAAzM,SAEAwJ,MAAA,GAAA,MACAxJ,QAAAyC,SAIAgL,IAAArG,aAAA,SAAA7N,UACA,OAAA,SAAAsE,MACA,OAAAiD,OAAAvH,SAAAsE,MAAAf,OAAA,KAIA+E,SAAAuF,aAAA,SAAAjL,MAEA,OADAA,KAAAA,KAAApC,QAAAsK,UAAAC,WACA,SAAAzG,MACA,OAAAA,KAAAsN,aAAAtN,KAAA6P,WAAA1M,QAAAnD,OAAA9C,QAAAoB,OAAA,KAWAwR,KAAAvG,aAAA,SAAAuG,MAMA,OAJArK,YAAAiD,KAAAoH,MAAA,KACA7M,OAAAvB,MAAA,qBAAAoO,MAEAA,KAAAA,KAAA5T,QAAAsK,UAAAC,WAAAzD,cACA,SAAAhD,MACA,IAAA+P,SACA,GACA,GAAAA,SAAAlM,eACA7D,KAAA8P,KACA9P,KAAAlG,aAAA,aAAAkG,KAAAlG,aAAA,QAGA,OADAiW,SAAAA,SAAA/M,iBACA8M,MAAA,IAAAC,SAAA7S,QAAA4S,KAAA,YAEA9P,KAAAA,KAAAxB,aAAA,IAAAwB,KAAAnC,UACA,OAAA,KAKAoD,OAAA,SAAAjB,MACA,IAAAgQ,KAAA1V,OAAA2V,UAAA3V,OAAA2V,SAAAD,KACA,OAAAA,MAAAA,KAAAjT,MAAA,KAAAiD,KAAAuI,IAGA2H,KAAA,SAAAlQ,MACA,OAAAA,OAAA4D,SAGAuM,MAAA,SAAAnQ,MACA,OAAAA,OAAA5G,SAAAgX,iBAAAhX,SAAAiX,UAAAjX,SAAAiX,gBAAArQ,KAAA9E,MAAA8E,KAAAsQ,OAAAtQ,KAAAuQ,WAIAC,QAAAnG,sBAAA,GACA7C,SAAA6C,sBAAA,GAEAoG,QAAA,SAAAzQ,MAGA,IAAA2I,SAAA3I,KAAA2I,SAAA3F,cACA,MAAA,UAAA2F,YAAA3I,KAAAyQ,SAAA,WAAA9H,YAAA3I,KAAA0Q,UAGAA,SAAA,SAAA1Q,MAOA,OAJAA,KAAAxB,YACAwB,KAAAxB,WAAAmS,eAGA,IAAA3Q,KAAA0Q,UAIAE,MAAA,SAAA5Q,MAKA,IAAAA,KAAAA,KAAAuN,WAAAvN,KAAAA,KAAAA,KAAAkK,YACA,GAAAlK,KAAAnC,SAAA,EACA,OAAA,EAGA,OAAA,GAGAmR,OAAA,SAAAhP,MACA,OAAAkD,KAAAiC,QAAA,MAAAnF,OAIA6Q,OAAA,SAAA7Q,MACA,OAAAoG,QAAAsC,KAAA1I,KAAA2I,WAGAgD,MAAA,SAAA3L,MACA,OAAAmG,QAAAuC,KAAA1I,KAAA2I,WAGAmI,OAAA,SAAA9Q,MACA,IAAAa,KAAAb,KAAA2I,SAAA3F,cACA,MAAA,UAAAnC,MAAA,WAAAb,KAAA9E,MAAA,WAAA2F,MAGAvC,KAAA,SAAA0B,MACA,IAAA6M,KACA,MAAA,UAAA7M,KAAA2I,SAAA3F,eACA,SAAAhD,KAAA9E,OAIA,OAAA2R,KAAA7M,KAAAlG,aAAA,UAAA,SAAA+S,KAAA7J,gBAIA7C,MAAAoK,uBAAA,WACA,OAAA,KAGAlK,KAAAkK,uBAAA,SAAAE,aAAAxL,QACA,OAAAA,OAAA,KAGAmB,GAAAmK,uBAAA,SAAAE,aAAAxL,OAAAuL,UACA,OAAAA,SAAA,EAAAA,SAAAvL,OAAAuL,YAGAuG,KAAAxG,uBAAA,SAAAE,aAAAxL,QAEA,IADA,IAAAZ,EAAA,EACAA,EAAAY,OAAAZ,GAAA,EACAoM,aAAAxN,KAAAoB,GAEA,OAAAoM,eAGAuG,IAAAzG,uBAAA,SAAAE,aAAAxL,QAEA,IADA,IAAAZ,EAAA,EACAA,EAAAY,OAAAZ,GAAA,EACAoM,aAAAxN,KAAAoB,GAEA,OAAAoM,eAGAwG,GAAA1G,uBAAA,SAAAE,aAAAxL,OAAAuL,UAEA,IADA,IAAAnM,EAAAmM,SAAA,EAAAA,SAAAvL,OAAAuL,WACAnM,GAAA,GACAoM,aAAAxN,KAAAoB,GAEA,OAAAoM,eAGAyG,GAAA3G,uBAAA,SAAAE,aAAAxL,OAAAuL,UAEA,IADA,IAAAnM,EAAAmM,SAAA,EAAAA,SAAAvL,OAAAuL,WACAnM,EAAAY,QACAwL,aAAAxN,KAAAoB,GAEA,OAAAoM,kBAKAtF,QAAA,IAAAjC,KAAAiC,QAAA,IAGAgM,OAAA,EAAAC,UAAA,EAAAC,MAAA,EAAAC,UAAA,EAAAC,OAAA,GACArO,KAAAiC,QAAA9G,GAAA8L,kBAAA9L,GAEA,IAAAA,KAAAmT,QAAA,EAAAC,OAAA,GACAvO,KAAAiC,QAAA9G,GAAA+L,mBAAA/L,GAIA,SAAAiR,cAuEA,SAAA1G,WAAA8I,QAIA,IAHA,IAAArT,EAAA,EACAiC,IAAAoR,OAAAzS,OACAvD,SAAA,GACA2C,EAAAiC,IAAAjC,IACA3C,UAAAgW,OAAArT,GAAAsE,MAEA,OAAAjH,SAGA,SAAA6L,cAAAmI,QAAAiC,WAAAC,MACA,IAAAnK,IAAAkK,WAAAlK,IACAoK,KAAAF,WAAAjK,KACA0B,IAAAyI,MAAApK,IACAqK,iBAAAF,MAAA,eAAAxI,IACA2I,SAAA3N,OAEA,OAAAuN,WAAAxR,MAEA,SAAAH,KAAApB,QAAAgQ,KACA,KAAA5O,KAAAA,KAAAyH,MACA,GAAA,IAAAzH,KAAAnC,UAAAiU,iBACA,OAAApC,QAAA1P,KAAApB,QAAAgQ,KAGA,OAAA,GAIA,SAAA5O,KAAApB,QAAAgQ,KACA,IAAAoD,SAAAnD,YAAAC,WACAmD,UAAA9N,QAAA4N,UAGA,GAAAnD,KACA,KAAA5O,KAAAA,KAAAyH,MACA,IAAA,IAAAzH,KAAAnC,UAAAiU,mBACApC,QAAA1P,KAAApB,QAAAgQ,KACA,OAAA,OAKA,KAAA5O,KAAAA,KAAAyH,MACA,GAAA,IAAAzH,KAAAnC,UAAAiU,iBAOA,GAFAjD,aAJAC,WAAA9O,KAAAsB,WAAAtB,KAAAsB,cAIAtB,KAAAmP,YAAAL,WAAA9O,KAAAmP,cAEA0C,MAAAA,OAAA7R,KAAA2I,SAAA3F,cACAhD,KAAAA,KAAAyH,MAAAzH,SACA,CAAA,IAAAgS,SAAAnD,YAAAzF,OACA4I,SAAA,KAAA7N,SAAA6N,SAAA,KAAAD,SAGA,OAAAE,SAAA,GAAAD,SAAA,GAMA,GAHAnD,YAAAzF,KAAA6I,SAGAA,SAAA,GAAAvC,QAAA1P,KAAApB,QAAAgQ,KACA,OAAA,EAMA,OAAA,GAIA,SAAAsD,eAAAC,UACA,OAAAA,SAAAlT,OAAA,EACA,SAAAe,KAAApB,QAAAgQ,KAEA,IADA,IAAAvQ,EAAA8T,SAAAlT,OACAZ,KACA,IAAA8T,SAAA9T,GAAA2B,KAAApB,QAAAgQ,KACA,OAAA,EAGA,OAAA,GAEAuD,SAAA,GAYA,SAAAC,SAAAzC,UAAA5P,IAAAqL,OAAAxM,QAAAgQ,KAOA,IANA,IAAA5O,KACAqS,gBACAhU,EAAA,EACAiC,IAAAqP,UAAA1Q,OACAqT,OAAA,MAAAvS,IAEA1B,EAAAiC,IAAAjC,KACA2B,KAAA2P,UAAAtR,MACA+M,SAAAA,OAAApL,KAAApB,QAAAgQ,OACAyD,aAAApV,KAAA+C,MACAsS,QACAvS,IAAA9C,KAAAoB,KAMA,OAAAgU,aAGA,SAAAE,WAAAvE,UAAAtS,SAAAgU,QAAA8C,WAAAC,WAAAC,cAOA,OANAF,aAAAA,WAAAlR,WACAkR,WAAAD,WAAAC,aAEAC,aAAAA,WAAAnR,WACAmR,WAAAF,WAAAE,WAAAC,eAEAnJ,aAAA,SAAAzB,KAAA3F,QAAAvD,QAAAgQ,KACA,IAAA+D,KAAAtU,EAAA2B,KACA4S,UACAC,WACAC,YAAA3Q,QAAAlD,OAGAQ,MAAAqI,MA5CA,SAAApM,SAAAqX,SAAA5Q,SAGA,IAFA,IAAA9D,EAAA,EACAiC,IAAAyS,SAAA9T,OACAZ,EAAAiC,IAAAjC,IACA4E,OAAAvH,SAAAqX,SAAA1U,GAAA8D,SAEA,OAAAA,QAsCA6Q,CAAAtX,UAAA,IAAAkD,QAAAf,UAAAe,SAAAA,YAGAqU,WAAAjF,YAAAlG,MAAApM,SAEA+D,MADA2S,SAAA3S,MAAAmT,OAAA5E,UAAApP,QAAAgQ,KAGAsE,WAAAxD,QAEA+C,aAAA3K,KAAAkG,UAAA8E,aAAAN,eAMArQ,QACA8Q,UAQA,GALAvD,SACAA,QAAAuD,UAAAC,WAAAtU,QAAAgQ,KAIA4D,WAMA,IALAG,KAAAP,SAAAc,WAAAL,SACAL,WAAAG,QAAA/T,QAAAgQ,KAGAvQ,EAAAsU,KAAA1T,OACAZ,MACA2B,KAAA2S,KAAAtU,MACA6U,WAAAL,QAAAxU,MAAA4U,UAAAJ,QAAAxU,IAAA2B,OAKA,GAAA8H,MACA,GAAA2K,YAAAzE,UAAA,CACA,GAAAyE,WAAA,CAIA,IAFAE,QACAtU,EAAA6U,WAAAjU,OACAZ,MACA2B,KAAAkT,WAAA7U,KAEAsU,KAAA1V,KAAAgW,UAAA5U,GAAA2B,MAGAyS,WAAA,KAAAS,cAAAP,KAAA/D,KAKA,IADAvQ,EAAA6U,WAAAjU,OACAZ,MACA2B,KAAAkT,WAAA7U,MACAsU,KAAAF,WAAAvV,QAAA4K,KAAA9H,MAAA4S,OAAAvU,KAAA,IAEAyJ,KAAA6K,QAAAxQ,QAAAwQ,MAAA3S,aAOAkT,WAAAd,SACAc,aAAA/Q,QACA+Q,WAAAxS,OAAAoS,YAAAI,WAAAjU,QACAiU,YAEAT,WACAA,WAAA,KAAAtQ,QAAA+Q,WAAAtE,KAEA3R,KAAAgD,MAAAkC,QAAA+Q,cAMA,SAAAC,kBAAAzB,QAwBA,IAvBA,IAAA0B,aAAA1D,QAAAnP,EACAD,IAAAoR,OAAAzS,OACAoU,gBAAAnQ,KAAAyK,SAAA+D,OAAA,GAAAxW,MACAoY,iBAAAD,iBAAAnQ,KAAAyK,SAAA,KACAtP,EAAAgV,gBAAA,EAAA,EAGAE,aAAAhM,cAAA,SAAAvH,MACA,OAAAA,OAAAoT,cACAE,kBAAA,GACAE,gBAAAjM,cAAA,SAAAvH,MACA,OAAA9C,QAAAkW,aAAApT,OAAA,GACAsT,kBAAA,GACAnB,UAAA,SAAAnS,KAAApB,QAAAgQ,KACA,IAAAlP,KAAA2T,kBAAAzE,KAAAhQ,UAAA4E,qBACA4P,aAAAxU,SAAAf,SACA0V,aAAAvT,KAAApB,QAAAgQ,KACA4E,gBAAAxT,KAAApB,QAAAgQ,MAGA,OADAwE,aAAA,KACA1T,MAGArB,EAAAiC,IAAAjC,IACA,GAAAqR,QAAAxM,KAAAyK,SAAA+D,OAAArT,GAAAnD,MACAiX,UAAA5K,cAAA2K,eAAAC,UAAAzC,cACA,CAIA,IAHAA,QAAAxM,KAAAkI,OAAAsG,OAAArT,GAAAnD,MAAA+E,MAAA,KAAAyR,OAAArT,GAAAmE,UAGAlB,SAAA,CAGA,IADAf,IAAAlC,EACAkC,EAAAD,MACA4C,KAAAyK,SAAA+D,OAAAnR,GAAArF,MADAqF,KAKA,OAAAgS,WACAlU,EAAA,GAAA6T,eAAAC,UACA9T,EAAA,GAAAuK,WAEA8I,OAAA3U,MAAA,EAAAsB,EAAA,GAAArB,QAAA2F,MAAA,MAAA+O,OAAArT,EAAA,GAAAnD,KAAA,IAAA,MACAgB,QAAA6C,MAAA,MACA2Q,QACArR,EAAAkC,GAAA4S,kBAAAzB,OAAA3U,MAAAsB,EAAAkC,IACAA,EAAAD,KAAA6S,kBAAAzB,OAAAA,OAAA3U,MAAAwD,IACAA,EAAAD,KAAAsI,WAAA8I,SAGAS,SAAAlV,KAAAyS,SAIA,OAAAwC,eAAAC,UA8RA,OA9mBA7C,WAAApQ,UAAAgE,KAAAuQ,QAAAvQ,KAAAiC,QACAjC,KAAAoM,WAAA,IAAAA,WAEAjM,SAAAJ,OAAAI,SAAA,SAAA3H,SAAAgY,WACA,IAAAlE,QAAAvH,MAAAyJ,OAAAxW,KACAyY,MAAAzL,OAAA0L,WACAC,OAAAtP,WAAA7I,SAAA,KAEA,GAAAmY,OACA,OAAAH,UAAA,EAAAG,OAAA9W,MAAA,GAOA,IAJA4W,MAAAjY,SACAwM,UACA0L,WAAA1Q,KAAA8K,UAEA2F,OAAA,CAyBA,IAAAzY,QAtBAsU,WAAAvH,MAAA5C,OAAAiD,KAAAqL,UACA1L,QAEA0L,MAAAA,MAAA5W,MAAAkL,MAAA,GAAAhJ,SAAA0U,OAEAzL,OAAAjL,KAAAyU,YAGAlC,SAAA,GAGAvH,MAAA3C,aAAAgD,KAAAqL,UACAnE,QAAAvH,MAAAqB,QACAoI,OAAAzU,MACA0F,MAAA6M,QAEAtU,KAAA+M,MAAA,GAAA/L,QAAA6C,MAAA,OAEA4U,MAAAA,MAAA5W,MAAAyS,QAAAvQ,SAIAiE,KAAAkI,SACAnD,MAAAvC,UAAAxK,MAAAoN,KAAAqL,SAAAC,WAAA1Y,SACA+M,MAAA2L,WAAA1Y,MAAA+M,UACAuH,QAAAvH,MAAAqB,QACAoI,OAAAzU,MACA0F,MAAA6M,QACAtU,KAAAA,KACAsH,QAAAyF,QAEA0L,MAAAA,MAAA5W,MAAAyS,QAAAvQ,SAIA,IAAAuQ,QACA,MAOA,OAAAkE,UACAC,MAAA1U,OACA0U,MACA1Q,OAAAvB,MAAAhG,UAEA6I,WAAA7I,SAAAwM,QAAAnL,MAAA,IA+XAuG,QAAAL,OAAAK,QAAA,SAAA5H,SAAAuM,OACA,IAAA5J,EACAyV,eACAC,mBACAF,OAAArP,cAAA9I,SAAA,KAEA,IAAAmY,OAAA,CAMA,IAJA5L,QACAA,MAAA5E,SAAA3H,WAEA2C,EAAA4J,MAAAhJ,OACAZ,MACAwV,OAAAV,kBAAAlL,MAAA5J,KACAiD,SACAwS,YAAA7W,KAAA4W,QAEAE,gBAAA9W,KAAA4W,SAKAA,OAAArP,cAAA9I,SArIA,SAAAqY,gBAAAD,aACA,IAAAE,MAAAF,YAAA7U,OAAA,EACAgV,UAAAF,gBAAA9U,OAAA,EACAiV,aAAA,SAAApM,KAAAlJ,QAAAgQ,IAAAzM,QAAAgS,WACA,IAAAnU,KAAAO,EAAAmP,QACA0E,aAAA,EACA/V,EAAA,IACAsR,UAAA7H,SACAuM,cACAC,cAAA9Q,iBAEA/D,MAAAqI,MAAAmM,WAAA/Q,KAAAoI,KAAA,IAAA,IAAA6I,WAEAI,cAAApQ,SAAA,MAAAmQ,cAAA,EAAA/S,KAAAC,UAAA,GACAlB,IAAAb,MAAAR,OASA,IAPAkV,YACA3Q,iBAAA5E,UAAAxF,UAAAwF,SAAAuV,WAMA9V,IAAAiC,KAAA,OAAAN,KAAAP,MAAApB,IAAAA,IAAA,CACA,GAAA4V,WAAAjU,KAAA,CAMA,IALAO,EAAA,EACA3B,SAAAoB,KAAAqI,gBAAAjP,WACAuK,YAAA3D,MACA4O,KAAA/K,gBAEA6L,QAAAqE,gBAAAxT,MACA,GAAAmP,QAAA1P,KAAApB,SAAAxF,SAAAwV,KAAA,CACAzM,QAAAlF,KAAA+C,MACA,MAGAmU,YACAhQ,QAAAoQ,eAKAP,SAEAhU,MAAA0P,SAAA1P,OACAoU,eAIAtM,MACA6H,UAAA1S,KAAA+C,OAgBA,GATAoU,cAAA/V,EASA2V,OAAA3V,IAAA+V,aAAA,CAEA,IADA7T,EAAA,EACAmP,QAAAoE,YAAAvT,MACAmP,QAAAC,UAAA0E,WAAAzV,QAAAgQ,KAGA,GAAA9G,KAAA,CAEA,GAAAsM,aAAA,EACA,KAAA/V,KACAsR,UAAAtR,IAAAgW,WAAAhW,KACAgW,WAAAhW,GAAAuG,IAAAnH,KAAA0E,UAMAkS,WAAAjC,SAAAiC,YAIApX,KAAAgD,MAAAkC,QAAAkS,YAGAF,YAAArM,MAAAuM,WAAApV,OAAA,GACAmV,aAAAN,YAAA7U,OAAA,GAEAgE,OAAAiK,WAAA/K,SAUA,OALAgS,YACAhQ,QAAAoQ,cACA/Q,iBAAA8Q,eAGA3E,WAGA,OAAAqE,MACAzK,aAAA2K,cACAA,aAyBAM,CAAAT,gBAAAD,eAGApY,SAAAA,SAEA,OAAAmY,QAYAtQ,OAAAN,OAAAM,OAAA,SAAA7H,SAAAkD,QAAAuD,QAAA2F,MACA,IAAAzJ,EAAAqT,OAAA+C,MAAAvZ,KAAAoQ,KACAoJ,SAAA,mBAAAhZ,UAAAA,SACAuM,OAAAH,MAAAzE,SAAA3H,SAAAgZ,SAAAhZ,UAAAA,UAMA,GAJAyG,QAAAA,YAIA,IAAA8F,MAAAhJ,OAAA,CAIA,IADAyS,OAAAzJ,MAAA,GAAAA,MAAA,GAAAlL,MAAA,IACAkC,OAAA,GAAA,QAAAwV,MAAA/C,OAAA,IAAAxW,MACA,IAAA0D,QAAAf,UAAAgG,gBAAAX,KAAAyK,SAAA+D,OAAA,GAAAxW,MAAA,CAGA,KADA0D,SAAAsE,KAAAoI,KAAA,GAAAmJ,MAAAjS,QAAA,GAAAtG,QAAAsK,UAAAC,WAAA7H,cAAA,IAEA,OAAAuD,QAGAuS,WACA9V,QAAAA,QAAAJ,YAGA9C,SAAAA,SAAAqB,MAAA2U,OAAApI,QAAA3G,MAAA1D,QAKA,IADAZ,EAAAqH,UAAA,aAAAgD,KAAAhN,UAAA,EAAAgW,OAAAzS,OACAZ,MACAoW,MAAA/C,OAAArT,IAGA6E,KAAAyK,SAAAzS,KAAAuZ,MAAAvZ,QAGA,IAAAoQ,KAAApI,KAAAoI,KAAApQ,SAEA4M,KAAAwD,KACAmJ,MAAAjS,QAAA,GAAAtG,QAAAsK,UAAAC,WACAF,SAAAmC,KAAAgJ,OAAA,GAAAxW,OAAA4N,YAAAlK,QAAAJ,aAAAI,UACA,CAKA,GAFA8S,OAAAhR,OAAArC,EAAA,KACA3C,SAAAoM,KAAA7I,QAAA2J,WAAA8I,SAGA,OADAzU,KAAAgD,MAAAkC,QAAA2F,MACA3F,QAGA,OAeA,OAPAuS,UAAApR,QAAA5H,SAAAuM,QACAH,KACAlJ,SACAiF,eACA1B,SACAvD,SAAA2H,SAAAmC,KAAAhN,WAAAoN,YAAAlK,QAAAJ,aAAAI,SAEAuD,SAMAzE,QAAA2P,WAAA/L,QAAAyB,MAAA,IAAAtC,KAAAgE,WAAAoE,KAAA,MAAAvH,QAIA5D,QAAA0P,mBAAA1J,aAGAC,cAIAjG,QAAA4O,aAAA9C,OAAA,SAAAC,IAEA,OAAA,EAAAA,GAAAyC,wBAAA9S,SAAA6B,cAAA,eAMAuO,OAAA,SAAAC,IAEA,OADAA,GAAAiC,UAAA,mBACA,MAAAjC,GAAA8D,WAAAzT,aAAA,WAEA4P,UAAA,yBAAA,SAAA1J,KAAAa,KAAAuC,OACA,IAAAA,MACA,OAAApD,KAAAlG,aAAA+G,KAAA,SAAAA,KAAAmC,cAAA,EAAA,KAOAtF,QAAAwH,YAAAsE,OAAA,SAAAC,IAGA,OAFAA,GAAAiC,UAAA,WACAjC,GAAA8D,WAAAxT,aAAA,QAAA,IACA,KAAA0P,GAAA8D,WAAAzT,aAAA,YAEA4P,UAAA,QAAA,SAAA1J,KAAAa,KAAAuC,OACA,IAAAA,OAAA,UAAApD,KAAA2I,SAAA3F,cACA,OAAAhD,KAAA2U,eAOAnL,OAAA,SAAAC,IACA,OAAA,MAAAA,GAAA3P,aAAA,eAEA4P,UAAA3E,SAAA,SAAA/E,KAAAa,KAAAuC,OACA,IAAA0J,IACA,IAAA1J,MACA,OAAA,IAAApD,KAAAa,MAAAA,KAAAmC,eACA8J,IAAA9M,KAAAuL,iBAAA1K,QAAAiM,IAAAC,UACAD,IAAAnK,MACA,OAKAM,OAhsEA,CAksEA3I,QAIAqE,OAAA2M,KAAArI,OACAtE,OAAAgO,KAAA1J,OAAAwK,UAGA9O,OAAAgO,KAAA,KAAAhO,OAAAgO,KAAAxH,QACAxG,OAAAuO,WAAAvO,OAAAiW,OAAA3R,OAAAiK,WACAvO,OAAAL,KAAA2E,OAAAE,QACAxE,OAAAkW,SAAA5R,OAAAG,MACAzE,OAAAqF,SAAAf,OAAAe,SACArF,OAAAmW,eAAA7R,OAAA+J,OAKA,IAAAvF,IAAA,SAAAzH,KAAAyH,IAAAsN,OAIA,IAHA,IAAAvF,WACAwF,cAAA3Z,IAAA0Z,OAEA/U,KAAAA,KAAAyH,OAAA,IAAAzH,KAAAnC,UACA,GAAA,IAAAmC,KAAAnC,SAAA,CACA,GAAAmX,UAAArW,OAAAqB,MAAAiV,GAAAF,OACA,MAEAvF,QAAAvS,KAAA+C,MAGA,OAAAwP,SAIA0F,SAAA,SAAAC,EAAAnV,MAGA,IAFA,IAAAwP,WAEA2F,EAAAA,EAAAA,EAAAjL,YACA,IAAAiL,EAAAtX,UAAAsX,IAAAnV,MACAwP,QAAAvS,KAAAkY,GAIA,OAAA3F,SAIA4F,cAAAzW,OAAAgO,KAAA1E,MAAA/B,aAIA,SAAAyC,SAAA3I,KAAAa,MAEA,OAAAb,KAAA2I,UAAA3I,KAAA2I,SAAA3F,gBAAAnC,KAAAmC,cAGA,IAAAqS,WAAA,kEAKA,SAAAC,OAAA1I,SAAA2I,UAAA9F,KACA,OAAA9R,WAAA4X,WACA5W,OAAA2D,KAAAsK,SAAA,SAAA5M,KAAA3B,GACA,QAAAkX,UAAA9X,KAAAuC,KAAA3B,EAAA2B,QAAAyP,MAKA8F,UAAA1X,SACAc,OAAA2D,KAAAsK,SAAA,SAAA5M,MACA,OAAAA,OAAAuV,YAAA9F,MAKA,iBAAA8F,UACA5W,OAAA2D,KAAAsK,SAAA,SAAA5M,MACA,OAAA9C,QAAAO,KAAA8X,UAAAvV,OAAA,IAAAyP,MAKA9Q,OAAAyM,OAAAmK,UAAA3I,SAAA6C,KAGA9Q,OAAAyM,OAAA,SAAAuB,KAAAlN,MAAAgQ,KACA,IAAAzP,KAAAP,MAAA,GAMA,OAJAgQ,MACA9C,KAAA,QAAAA,KAAA,KAGA,IAAAlN,MAAAR,QAAA,IAAAe,KAAAnC,SACAc,OAAA2M,KAAAM,gBAAA5L,KAAA2M,OAAA3M,SAGArB,OAAA2M,KAAA9I,QAAAmK,KAAAhO,OAAA2D,KAAA7C,MAAA,SAAAO,MACA,OAAA,IAAAA,KAAAnC,aAIAc,OAAAE,GAAA8B,QACA2K,KAAA,SAAA5P,UACA,IAAA2C,EAAAqB,IACAY,IAAA7D,KAAAwC,OACAuW,KAAA/Y,KAEA,GAAA,iBAAAf,SACA,OAAAe,KAAA+C,UAAAb,OAAAjD,UAAA0P,OAAA,WACA,IAAA/M,EAAA,EAAAA,EAAAiC,IAAAjC,IACA,GAAAM,OAAAqF,SAAAwR,KAAAnX,GAAA5B,MACA,OAAA,KAQA,IAFAiD,IAAAjD,KAAA+C,cAEAnB,EAAA,EAAAA,EAAAiC,IAAAjC,IACAM,OAAA2M,KAAA5P,SAAA8Z,KAAAnX,GAAAqB,KAGA,OAAAY,IAAA,EAAA3B,OAAAuO,WAAAxN,KAAAA,KAEA0L,OAAA,SAAA1P,UACA,OAAAe,KAAA+C,UAAA8V,OAAA7Y,KAAAf,cAAA,KAEA+T,IAAA,SAAA/T,UACA,OAAAe,KAAA+C,UAAA8V,OAAA7Y,KAAAf,cAAA,KAEAuZ,GAAA,SAAAvZ,UACA,QAAA4Z,OACA7Y,KAIA,iBAAAf,UAAA0Z,cAAA1M,KAAAhN,UACAiD,OAAAjD,UACAA,cACA,GACAuD,UASA,IAAAwW,WAMAnP,WAAA,uCAEA3H,OAAAE,GAAAC,KAAA,SAAApD,SAAAkD,QAAAsR,MACA,IAAAjI,MAAAjI,KAGA,IAAAtE,SACA,OAAAe,KAQA,GAHAyT,KAAAA,MAAAuF,WAGA,iBAAA/Z,SAAA,CAaA,KAPAuM,MALA,MAAAvM,SAAA,IACA,MAAAA,SAAAA,SAAAuD,OAAA,IACAvD,SAAAuD,QAAA,GAGA,KAAAvD,SAAA,MAGA4K,WAAAgC,KAAA5M,aAIAuM,MAAA,IAAArJ,QA6CA,OAAAA,SAAAA,QAAAO,QACAP,SAAAsR,MAAA5E,KAAA5P,UAKAe,KAAA2C,YAAAR,SAAA0M,KAAA5P,UAhDA,GAAAuM,MAAA,GAAA,CAYA,GAXArJ,QAAAA,mBAAAD,OAAAC,QAAA,GAAAA,QAIAD,OAAAgB,MAAAlD,KAAAkC,OAAA+W,UACAzN,MAAA,GACArJ,SAAAA,QAAAf,SAAAe,QAAAyJ,eAAAzJ,QAAAxF,UACA,IAIAic,WAAA3M,KAAAT,MAAA,KAAAtJ,OAAAwC,cAAAvC,SACA,IAAAqJ,SAAArJ,QAGAjB,WAAAlB,KAAAwL,QACAxL,KAAAwL,OAAArJ,QAAAqJ,QAIAxL,KAAAoQ,KAAA5E,MAAArJ,QAAAqJ,QAKA,OAAAxL,KAYA,OARAuD,KAAA5G,SAAAC,eAAA4O,MAAA,OAKAxL,KAAA,GAAAuD,KACAvD,KAAAwC,OAAA,GAEAxC,KAcA,OAAAf,SAAAmC,UACApB,KAAA,GAAAf,SACAe,KAAAwC,OAAA,EACAxC,MAIAkB,WAAAjC,eACAL,IAAA6U,KAAAyF,MACAzF,KAAAyF,MAAAja,UAGAA,SAAAiD,QAGAA,OAAAuD,UAAAxG,SAAAe,QAIAyC,UAAAP,OAAAE,GAGA4W,WAAA9W,OAAAvF,UAGA,IAAAwc,aAAA,iCAGAC,kBACAC,UAAA,EACAC,UAAA,EACArO,MAAA,EACAsO,MAAA,GAoFA,SAAAC,QAAAlM,IAAAtC,KACA,MAAAsC,IAAAA,IAAAtC,OAAA,IAAAsC,IAAAlM,WACA,OAAAkM,IAnFApL,OAAAE,GAAA8B,QACAiP,IAAA,SAAA3O,QACA,IAAAiV,QAAAvX,OAAAsC,OAAAxE,MACA0Z,EAAAD,QAAAjX,OAEA,OAAAxC,KAAA2O,OAAA,WAEA,IADA,IAAA/M,EAAA,EACAA,EAAA8X,EAAA9X,IACA,GAAAM,OAAAqF,SAAAvH,KAAAyZ,QAAA7X,IACA,OAAA,KAMA+X,QAAA,SAAA3I,UAAA7O,SACA,IAAAmL,IACA1L,EAAA,EACA8X,EAAA1Z,KAAAwC,OACAuQ,WACA0G,QAAA,iBAAAzI,WAAA9O,OAAA8O,WAGA,IAAA2H,cAAA1M,KAAA+E,WACA,KAAApP,EAAA8X,EAAA9X,IACA,IAAA0L,IAAAtN,KAAA4B,GAAA0L,KAAAA,MAAAnL,QAAAmL,IAAAA,IAAAvL,WAGA,GAAAuL,IAAAlM,SAAA,KAAAqY,QACAA,QAAAG,MAAAtM,MAAA,EAGA,IAAAA,IAAAlM,UACAc,OAAA2M,KAAAM,gBAAA7B,IAAA0D,YAAA,CAEA+B,QAAAvS,KAAA8M,KACA,MAMA,OAAAtN,KAAA+C,UAAAgQ,QAAAvQ,OAAA,EAAAN,OAAAuO,WAAAsC,SAAAA,UAIA6G,MAAA,SAAArW,MAGA,OAAAA,KAKA,iBAAAA,KACA9C,QAAAO,KAAAkB,OAAAqB,MAAAvD,KAAA,IAIAS,QAAAO,KAAAhB,KAGAuD,KAAAb,OAAAa,KAAA,GAAAA,MAZAvD,KAAA,IAAAA,KAAA,GAAA+B,WAAA/B,KAAA0D,QAAAmW,UAAArX,QAAA,GAgBAsX,IAAA,SAAA7a,SAAAkD,SACA,OAAAnC,KAAA+C,UACAb,OAAAuO,WACAvO,OAAAgB,MAAAlD,KAAA6C,MAAAX,OAAAjD,SAAAkD,aAKA4X,QAAA,SAAA9a,UACA,OAAAe,KAAA8Z,IAAA,MAAA7a,SACAe,KAAAmD,WAAAnD,KAAAmD,WAAAwL,OAAA1P,cAUAiD,OAAAkB,MACAmP,OAAA,SAAAhP,MACA,IAAAgP,OAAAhP,KAAAxB,WACA,OAAAwQ,QAAA,KAAAA,OAAAnR,SAAAmR,OAAA,MAEAyH,QAAA,SAAAzW,MACA,OAAAyH,IAAAzH,KAAA,eAEA0W,aAAA,SAAA1W,KAAA3B,EAAA0W,OACA,OAAAtN,IAAAzH,KAAA,aAAA+U,QAEArN,KAAA,SAAA1H,MACA,OAAAiW,QAAAjW,KAAA,gBAEAgW,KAAA,SAAAhW,MACA,OAAAiW,QAAAjW,KAAA,oBAEA2W,QAAA,SAAA3W,MACA,OAAAyH,IAAAzH,KAAA,gBAEAsW,QAAA,SAAAtW,MACA,OAAAyH,IAAAzH,KAAA,oBAEA4W,UAAA,SAAA5W,KAAA3B,EAAA0W,OACA,OAAAtN,IAAAzH,KAAA,cAAA+U,QAEA8B,UAAA,SAAA7W,KAAA3B,EAAA0W,OACA,OAAAtN,IAAAzH,KAAA,kBAAA+U,QAEAG,SAAA,SAAAlV,MACA,OAAAkV,UAAAlV,KAAAxB,gBAAA+O,WAAAvN,OAEA8V,SAAA,SAAA9V,MACA,OAAAkV,SAAAlV,KAAAuN,aAEAwI,SAAA,SAAA/V,MACA,OAAA2I,SAAA3I,KAAA,UACAA,KAAA8W,iBAMAnO,SAAA3I,KAAA,cACAA,KAAAA,KAAA+W,SAAA/W,MAGArB,OAAAgB,SAAAK,KAAA2H,eAEA,SAAA9G,KAAAhC,IACAF,OAAAE,GAAAgC,MAAA,SAAAkU,MAAArZ,UACA,IAAA8T,QAAA7Q,OAAAoB,IAAAtD,KAAAoC,GAAAkW,OAuBA,MArBA,UAAAlU,KAAA9D,OAAA,KACArB,SAAAqZ,OAGArZ,UAAA,iBAAAA,WACA8T,QAAA7Q,OAAAyM,OAAA1P,SAAA8T,UAGA/S,KAAAwC,OAAA,IAGA4W,iBAAAhV,OACAlC,OAAAuO,WAAAsC,SAIAoG,aAAAlN,KAAA7H,OACA2O,QAAAwH,WAIAva,KAAA+C,UAAAgQ,YAGA,IAAAyH,cAAA,oBAsOA,SAAAC,SAAAC,GACA,OAAAA,EAEA,SAAAC,QAAAC,IACA,MAAAA,GAGA,SAAAC,WAAA3U,MAAA4U,QAAAC,OAAAC,SACA,IAAAC,OAEA,IAGA/U,OAAAhF,WAAA+Z,OAAA/U,MAAAgV,SACAD,OAAAja,KAAAkF,OAAAyB,KAAAmT,SAAAK,KAAAJ,QAGA7U,OAAAhF,WAAA+Z,OAAA/U,MAAAkV,MACAH,OAAAja,KAAAkF,MAAA4U,QAAAC,QAQAD,QAAAtX,WAAA5E,GAAAsH,OAAA5F,MAAA0a,UAMA,MAAA9U,OAIA6U,OAAAvX,WAAA5E,GAAAsH,SAvOAhE,OAAAmZ,UAAA,SAAAlX,SAIAA,QAAA,iBAAAA,QAlCA,SAAAA,SACA,IAAAmX,UAIA,OAHApZ,OAAAkB,KAAAe,QAAAqH,MAAAgP,mBAAA,SAAAvQ,EAAAsR,MACAD,OAAAC,OAAA,IAEAD,OA8BAE,CAAArX,SACAjC,OAAAgC,UAAAC,SAEA,IACAsX,OAGAC,OAGAC,MAGAC,OAGAvT,QAGAwT,SAGAC,aAAA,EAGAC,KAAA,WAQA,IALAH,OAAAA,QAAAzX,QAAA6X,KAIAL,MAAAF,QAAA,EACAI,MAAArZ,OAAAsZ,aAAA,EAEA,IADAJ,OAAAG,MAAAhP,UACAiP,YAAAzT,KAAA7F,SAGA,IAAA6F,KAAAyT,aAAAtY,MAAAkY,OAAA,GAAAA,OAAA,KACAvX,QAAA8X,cAGAH,YAAAzT,KAAA7F,OACAkZ,QAAA,GAMAvX,QAAAuX,SACAA,QAAA,GAGAD,QAAA,EAGAG,SAIAvT,KADAqT,UAKA,KAMA3C,MAGAe,IAAA,WA2BA,OA1BAzR,OAGAqT,SAAAD,SACAK,YAAAzT,KAAA7F,OAAA,EACAqZ,MAAArb,KAAAkb,SAGA,SAAA5B,IAAAlH,MACA1Q,OAAAkB,KAAAwP,KAAA,SAAA3I,EAAAhE,KACA/E,WAAA+E,KACA9B,QAAAgU,QAAAY,KAAA5F,IAAAlN,MACAoC,KAAA7H,KAAAyF,KAEAA,KAAAA,IAAAzD,QAAA,WAAAP,OAAAgE,MAGA6T,IAAA7T,OATA,CAYAxC,WAEAiY,SAAAD,QACAM,QAGA/b,MAIAkc,OAAA,WAYA,OAXAha,OAAAkB,KAAAK,UAAA,SAAAwG,EAAAhE,KAEA,IADA,IAAA2T,OACAA,MAAA1X,OAAAyD,QAAAM,IAAAoC,KAAAuR,SAAA,GACAvR,KAAApE,OAAA2V,MAAA,GAGAA,OAAAkC,aACAA,gBAIA9b,MAKAmT,IAAA,SAAA/Q,IACA,OAAAA,GACAF,OAAAyD,QAAAvD,GAAAiG,OAAA,EACAA,KAAA7F,OAAA,GAIA2R,MAAA,WAIA,OAHA9L,OACAA,SAEArI,MAMAmc,QAAA,WAGA,OAFAP,OAAAC,SACAxT,KAAAqT,OAAA,GACA1b,MAEA+K,SAAA,WACA,OAAA1C,MAMA+T,KAAA,WAKA,OAJAR,OAAAC,SACAH,QAAAD,SACApT,KAAAqT,OAAA,IAEA1b,MAEA4b,OAAA,WACA,QAAAA,QAIAS,SAAA,SAAAla,QAAAyQ,MASA,OARAgJ,SAEAhJ,MAAAzQ,SADAyQ,KAAAA,UACAtS,MAAAsS,KAAAtS,QAAAsS,MACAiJ,MAAArb,KAAAoS,MACA6I,QACAM,QAGA/b,MAIA+b,KAAA,WAEA,OADAhD,KAAAsD,SAAArc,KAAAyD,WACAzD,MAIA2b,MAAA,WACA,QAAAA,QAIA,OAAA5C,MA4CA7W,OAAAgC,QAEAoY,SAAA,SAAAC,MACA,IAAAC,SAIA,SAAA,WAAAta,OAAAmZ,UAAA,UACAnZ,OAAAmZ,UAAA,UAAA,IACA,UAAA,OAAAnZ,OAAAmZ,UAAA,eACAnZ,OAAAmZ,UAAA,eAAA,EAAA,aACA,SAAA,OAAAnZ,OAAAmZ,UAAA,eACAnZ,OAAAmZ,UAAA,eAAA,EAAA,aAEAoB,MAAA,UACAvB,SACAuB,MAAA,WACA,OAAAA,OAEAC,OAAA,WAEA,OADAC,SAAAhV,KAAAlE,WAAA0X,KAAA1X,WACAzD,MAEA4c,MAAA,SAAAxa,IACA,OAAA8Y,QAAAE,KAAA,KAAAhZ,KAIAya,KAAA,WACA,IAAAC,IAAArZ,UAEA,OAAAvB,OAAAoa,SAAA,SAAAS,UACA7a,OAAAkB,KAAAoZ,OAAA,SAAA5a,EAAAob,OAGA,IAAA5a,GAAAlB,WAAA4b,IAAAE,MAAA,MAAAF,IAAAE,MAAA,IAKAL,SAAAK,MAAA,IAAA,WACA,IAAAC,SAAA7a,IAAAA,GAAAoB,MAAAxD,KAAAyD,WACAwZ,UAAA/b,WAAA+b,SAAA/B,SACA+B,SAAA/B,UACAgC,SAAAH,SAAAI,QACAxV,KAAAoV,SAAAjC,SACAK,KAAA4B,SAAAhC,QAEAgC,SAAAC,MAAA,GAAA,QACAhd,KACAoC,IAAA6a,UAAAxZ,eAKAqZ,IAAA,OACA5B,WAEAE,KAAA,SAAAgC,YAAAC,WAAAC,YACA,IAAAC,SAAA,EACA,SAAAzC,QAAA0C,MAAAb,SAAAxP,QAAAsQ,SACA,OAAA,WACA,IAAAC,KAAA1d,KACA4S,KAAAnP,UACAka,WAAA,WACA,IAAAV,SAAA7B,KAKA,KAAAoC,MAAAD,UAAA,CAQA,IAJAN,SAAA9P,QAAA3J,MAAAka,KAAA9K,SAIA+J,SAAAzB,UACA,MAAA,IAAA0C,UAAA,4BAOAxC,KAAA6B,WAKA,iBAAAA,UACA,mBAAAA,WACAA,SAAA7B,KAGAla,WAAAka,MAGAqC,QACArC,KAAApa,KACAic,SACAnC,QAAAyC,SAAAZ,SAAAlC,SAAAgD,SACA3C,QAAAyC,SAAAZ,SAAAhC,QAAA8C,WAOAF,WAEAnC,KAAApa,KACAic,SACAnC,QAAAyC,SAAAZ,SAAAlC,SAAAgD,SACA3C,QAAAyC,SAAAZ,SAAAhC,QAAA8C,SACA3C,QAAAyC,SAAAZ,SAAAlC,SACAkC,SAAAkB,eASA1Q,UAAAsN,WACAiD,UAAA9e,EACAgU,MAAAqK,YAKAQ,SAAAd,SAAAmB,aAAAJ,KAAA9K,SAKAmL,QAAAN,QACAE,WACA,WACA,IACAA,aACA,MAAAxS,GAEAjJ,OAAAoa,SAAA0B,eACA9b,OAAAoa,SAAA0B,cAAA7S,EACA4S,QAAAE,YAMAT,MAAA,GAAAD,WAIApQ,UAAAwN,UACA+C,UAAA9e,EACAgU,MAAAzH,IAGAwR,SAAAuB,WAAAR,KAAA9K,SASA4K,MACAO,WAKA7b,OAAAoa,SAAA6B,eACAJ,QAAAE,WAAA/b,OAAAoa,SAAA6B,gBAEAtgB,OAAAugB,WAAAL,WAKA,OAAA7b,OAAAoa,SAAA,SAAAS,UAGAP,OAAA,GAAA,GAAA1C,IACAgB,QACA,EACAiC,SACA7b,WAAAoc,YACAA,WACA7C,SACAsC,SAAAc,aAKArB,OAAA,GAAA,GAAA1C,IACAgB,QACA,EACAiC,SACA7b,WAAAkc,aACAA,YACA3C,WAKA+B,OAAA,GAAA,GAAA1C,IACAgB,QACA,EACAiC,SACA7b,WAAAmc,YACAA,WACA1C,YAGAO,WAKAA,QAAA,SAAA/Z,KACA,OAAA,MAAAA,IAAAe,OAAAgC,OAAA/C,IAAA+Z,SAAAA,UAGAyB,YAkEA,OA/DAza,OAAAkB,KAAAoZ,OAAA,SAAA5a,EAAAob,OACA,IAAA3U,KAAA2U,MAAA,GACAqB,YAAArB,MAAA,GAKA9B,QAAA8B,MAAA,IAAA3U,KAAAyR,IAGAuE,aACAhW,KAAAyR,IACA,WAIA2C,MAAA4B,aAKA7B,OAAA,EAAA5a,GAAA,GAAAua,QAIAK,OAAA,EAAA5a,GAAA,GAAAua,QAGAK,OAAA,GAAA,GAAAJ,KAGAI,OAAA,GAAA,GAAAJ,MAOA/T,KAAAyR,IAAAkD,MAAA,GAAAjB,MAKAY,SAAAK,MAAA,IAAA,WAEA,OADAL,SAAAK,MAAA,GAAA,QAAAhd,OAAA2c,cAAA/d,EAAAoB,KAAAyD,WACAzD,MAMA2c,SAAAK,MAAA,GAAA,QAAA3U,KAAAgU,WAIAnB,QAAAA,QAAAyB,UAGAJ,MACAA,KAAAvb,KAAA2b,SAAAA,UAIAA,UAIA2B,KAAA,SAAAC,aACA,IAGAC,UAAA/a,UAAAjB,OAGAZ,EAAA4c,UAGAC,gBAAA9Z,MAAA/C,GACA8c,cAAApe,MAAAU,KAAAyC,WAGAkb,OAAAzc,OAAAoa,WAGAsC,WAAA,SAAAhd,GACA,OAAA,SAAAsE,OACAuY,gBAAA7c,GAAA5B,KACA0e,cAAA9c,GAAA6B,UAAAjB,OAAA,EAAAlC,MAAAU,KAAAyC,WAAAyC,QACAsY,WACAG,OAAAb,YAAAW,gBAAAC,iBAMA,GAAAF,WAAA,IACA3D,WAAA0D,YAAAI,OAAAhX,KAAAiX,WAAAhd,IAAAkZ,QAAA6D,OAAA5D,QACAyD,WAGA,YAAAG,OAAAlC,SACAvb,WAAAwd,cAAA9c,IAAA8c,cAAA9c,GAAAwZ,OAEA,OAAAuD,OAAAvD,OAKA,KAAAxZ,KACAiZ,WAAA6D,cAAA9c,GAAAgd,WAAAhd,GAAA+c,OAAA5D,QAGA,OAAA4D,OAAAzD,aAOA,IAAA2D,YAAA,yDAEA3c,OAAAoa,SAAA0B,cAAA,SAAA/Y,MAAA6Z,OAIAjhB,OAAAkhB,SAAAlhB,OAAAkhB,QAAAC,MAAA/Z,OAAA4Z,YAAA5S,KAAAhH,MAAAb,OACAvG,OAAAkhB,QAAAC,KAAA,8BAAA/Z,MAAAga,QAAAha,MAAA6Z,MAAAA,QAOA5c,OAAAgd,eAAA,SAAAja,OACApH,OAAAugB,WAAA,WACA,MAAAnZ,SAQA,IAAAka,UAAAjd,OAAAoa,WAkDA,SAAA8C,YACAziB,SAAA0iB,oBAAA,mBAAAD,WACAvhB,OAAAwhB,oBAAA,OAAAD,WACAld,OAAAgX,QAnDAhX,OAAAE,GAAA8W,MAAA,SAAA9W,IAYA,OAVA+c,UACA/D,KAAAhZ,IAKAwa,MAAA,SAAA3X,OACA/C,OAAAgd,eAAAja,SAGAjF,MAGAkC,OAAAgC,QAGAc,SAAA,EAIAsa,UAAA,EAGApG,MAAA,SAAAqG,QAGA,IAAAA,OAAArd,OAAAod,UAAApd,OAAA8C,WAKA9C,OAAA8C,SAAA,GAGA,IAAAua,QAAArd,OAAAod,UAAA,GAKAH,UAAArB,YAAAnhB,UAAAuF,aAIAA,OAAAgX,MAAAkC,KAAA+D,UAAA/D,KAaA,aAAAze,SAAA6iB,YACA,YAAA7iB,SAAA6iB,aAAA7iB,SAAAsR,gBAAAwR,SAGA5hB,OAAAugB,WAAAlc,OAAAgX,QAKAvc,SAAA2R,iBAAA,mBAAA8Q,WAGAvhB,OAAAyQ,iBAAA,OAAA8Q,YAQA,IAAAM,OAAA,SAAA1c,MAAAZ,GAAAuK,IAAAzG,MAAAyZ,UAAAC,SAAAC,KACA,IAAAje,EAAA,EACAiC,IAAAb,MAAAR,OACAsd,KAAA,MAAAnT,IAGA,GAAA,WAAA1K,OAAA0K,KAEA,IAAA/K,KADA+d,WAAA,EACAhT,IACA+S,OAAA1c,MAAAZ,GAAAR,EAAA+K,IAAA/K,IAAA,EAAAge,SAAAC,UAIA,QAAAjhB,IAAAsH,QACAyZ,WAAA,EAEAze,WAAAgF,SACA2Z,KAAA,GAGAC,OAGAD,KACAzd,GAAApB,KAAAgC,MAAAkD,OACA9D,GAAA,OAIA0d,KAAA1d,GACAA,GAAA,SAAAmB,KAAAoJ,IAAAzG,OACA,OAAA4Z,KAAA9e,KAAAkB,OAAAqB,MAAA2C,UAKA9D,IACA,KAAAR,EAAAiC,IAAAjC,IACAQ,GACAY,MAAApB,GAAA+K,IAAAkT,IACA3Z,MACAA,MAAAlF,KAAAgC,MAAApB,GAAAA,EAAAQ,GAAAY,MAAApB,GAAA+K,OAMA,OAAAgT,UACA3c,MAIA8c,KACA1d,GAAApB,KAAAgC,OAGAa,IAAAzB,GAAAY,MAAA,GAAA2J,KAAAiT,UAKAG,UAAA,QACAC,WAAA,YAGA,SAAAC,WAAAC,IAAAC,QACA,OAAAA,OAAAC,cAMA,SAAAC,UAAAC,QACA,OAAAA,OAAA7gB,QAAAsgB,UAAA,OAAAtgB,QAAAugB,WAAAC,YAEA,IAAAM,WAAA,SAAAC,OAQA,OAAA,IAAAA,MAAApf,UAAA,IAAAof,MAAApf,YAAAof,MAAApf,UAMA,SAAAqf,OACAzgB,KAAA6E,QAAA3C,OAAA2C,QAAA4b,KAAAC,MAGAD,KAAAC,IAAA,EAEAD,KAAAhe,WAEAiK,MAAA,SAAA8T,OAGA,IAAAta,MAAAsa,MAAAxgB,KAAA6E,SA4BA,OAzBAqB,QACAA,SAKAqa,WAAAC,SAIAA,MAAApf,SACAof,MAAAxgB,KAAA6E,SAAAqB,MAMA9F,OAAAugB,eAAAH,MAAAxgB,KAAA6E,SACAqB,MAAAA,MACA0a,cAAA,MAMA1a,OAEA2a,IAAA,SAAAL,MAAAM,KAAA5a,OACA,IAAA6a,KACArU,MAAA1M,KAAA0M,MAAA8T,OAIA,GAAA,iBAAAM,KACApU,MAAA2T,UAAAS,OAAA5a,WAMA,IAAA6a,QAAAD,KACApU,MAAA2T,UAAAU,OAAAD,KAAAC,MAGA,OAAArU,OAEA7J,IAAA,SAAA2d,MAAA7T,KACA,YAAA/N,IAAA+N,IACA3M,KAAA0M,MAAA8T,OAGAA,MAAAxgB,KAAA6E,UAAA2b,MAAAxgB,KAAA6E,SAAAwb,UAAA1T,OAEA+S,OAAA,SAAAc,MAAA7T,IAAAzG,OAaA,YAAAtH,IAAA+N,KACAA,KAAA,iBAAAA,UAAA/N,IAAAsH,MAEAlG,KAAA6C,IAAA2d,MAAA7T,MASA3M,KAAA6gB,IAAAL,MAAA7T,IAAAzG,YAIAtH,IAAAsH,MAAAA,MAAAyG,MAEAuP,OAAA,SAAAsE,MAAA7T,KACA,IAAA/K,EACA8K,MAAA8T,MAAAxgB,KAAA6E,SAEA,QAAAjG,IAAA8N,MAAA,CAIA,QAAA9N,IAAA+N,IAAA,CAkBA/K,GAXA+K,IAJAhI,MAAAC,QAAA+H,KAIAA,IAAArJ,IAAA+c,YAEA1T,IAAA0T,UAAA1T,QAIAD,OACAC,KACAA,IAAAnB,MAAAgP,oBAGAhY,OAEA,KAAAZ,YACA8K,MAAAC,IAAA/K,UAKAhD,IAAA+N,KAAAzK,OAAAoD,cAAAoH,UAMA8T,MAAApf,SACAof,MAAAxgB,KAAA6E,cAAAjG,SAEA4hB,MAAAxgB,KAAA6E,YAIAmc,QAAA,SAAAR,OACA,IAAA9T,MAAA8T,MAAAxgB,KAAA6E,SACA,YAAAjG,IAAA8N,QAAAxK,OAAAoD,cAAAoH,SAGA,IAAAuU,SAAA,IAAAR,KAEAS,SAAA,IAAAT,KAcAU,OAAA,gCACAC,WAAA,SA2BA,SAAAC,SAAA9d,KAAAoJ,IAAAmU,MACA,IAAA1c,KAIA,QAAAxF,IAAAkiB,MAAA,IAAAvd,KAAAnC,SAIA,GAHAgD,KAAA,QAAAuI,IAAAlN,QAAA2hB,WAAA,OAAA7a,cAGA,iBAFAua,KAAAvd,KAAAlG,aAAA+G,OAEA,CACA,IACA0c,KApCA,SAAAA,MACA,MAAA,SAAAA,MAIA,UAAAA,OAIA,SAAAA,KACA,KAIAA,QAAAA,KAAA,IACAA,KAGAK,OAAAlV,KAAA6U,MACAQ,KAAAC,MAAAT,MAGAA,MAcAU,CAAAV,MACA,MAAA3V,IAGA+V,SAAAL,IAAAtd,KAAAoJ,IAAAmU,WAEAA,UAAAliB,EAGA,OAAAkiB,KAGA5e,OAAAgC,QACA8c,QAAA,SAAAzd,MACA,OAAA2d,SAAAF,QAAAzd,OAAA0d,SAAAD,QAAAzd,OAGAud,KAAA,SAAAvd,KAAAa,KAAA0c,MACA,OAAAI,SAAAxB,OAAAnc,KAAAa,KAAA0c,OAGAW,WAAA,SAAAle,KAAAa,MACA8c,SAAAhF,OAAA3Y,KAAAa,OAKAsd,MAAA,SAAAne,KAAAa,KAAA0c,MACA,OAAAG,SAAAvB,OAAAnc,KAAAa,KAAA0c,OAGAa,YAAA,SAAApe,KAAAa,MACA6c,SAAA/E,OAAA3Y,KAAAa,SAIAlC,OAAAE,GAAA8B,QACA4c,KAAA,SAAAnU,IAAAzG,OACA,IAAAtE,EAAAwC,KAAA0c,KACAvd,KAAAvD,KAAA,GACAkN,MAAA3J,MAAAA,KAAAkF,WAGA,QAAA7J,IAAA+N,IAAA,CACA,GAAA3M,KAAAwC,SACAse,KAAAI,SAAAre,IAAAU,MAEA,IAAAA,KAAAnC,WAAA6f,SAAApe,IAAAU,KAAA,iBAAA,CAEA,IADA3B,EAAAsL,MAAA1K,OACAZ,KAIAsL,MAAAtL,IAEA,KADAwC,KAAA8I,MAAAtL,GAAAwC,MACA3D,QAAA,WACA2D,KAAAic,UAAAjc,KAAA9D,MAAA,IACA+gB,SAAA9d,KAAAa,KAAA0c,KAAA1c,QAIA6c,SAAAJ,IAAAtd,KAAA,gBAAA,GAIA,OAAAud,KAIA,MAAA,iBAAAnU,IACA3M,KAAAoD,KAAA,WACA8d,SAAAL,IAAA7gB,KAAA2M,OAIA+S,OAAA1f,KAAA,SAAAkG,OACA,IAAA4a,KAOA,GAAAvd,WAAA3E,IAAAsH,MAKA,YAAAtH,KADAkiB,KAAAI,SAAAre,IAAAU,KAAAoJ,MAEAmU,UAMAliB,KADAkiB,KAAAO,SAAA9d,KAAAoJ,MAEAmU,UAIA,EAIA9gB,KAAAoD,KAAA,WAGA8d,SAAAL,IAAA7gB,KAAA2M,IAAAzG,UAEA,KAAAA,MAAAzC,UAAAjB,OAAA,EAAA,MAAA,IAGAif,WAAA,SAAA9U,KACA,OAAA3M,KAAAoD,KAAA,WACA8d,SAAAhF,OAAAlc,KAAA2M,UAMAzK,OAAAgC,QACA2X,MAAA,SAAAtY,KAAA9E,KAAAqiB,MACA,IAAAjF,MAEA,GAAAtY,KAYA,OAXA9E,MAAAA,MAAA,MAAA,QACAod,MAAAoF,SAAApe,IAAAU,KAAA9E,MAGAqiB,QACAjF,OAAAlX,MAAAC,QAAAkc,MACAjF,MAAAoF,SAAAvB,OAAAnc,KAAA9E,KAAAyD,OAAAuD,UAAAqb,OAEAjF,MAAArb,KAAAsgB,OAGAjF,WAIA+F,QAAA,SAAAre,KAAA9E,MACAA,KAAAA,MAAA,KAEA,IAAAod,MAAA3Z,OAAA2Z,MAAAtY,KAAA9E,MACAojB,YAAAhG,MAAArZ,OACAJ,GAAAyZ,MAAAhP,QACAiV,MAAA5f,OAAA6f,YAAAxe,KAAA9E,MAMA,eAAA2D,KACAA,GAAAyZ,MAAAhP,QACAgV,eAGAzf,KAIA,OAAA3D,MACAod,MAAA5L,QAAA,qBAIA6R,MAAAvkB,KACA6E,GAAApB,KAAAuC,KApBA,WACArB,OAAA0f,QAAAre,KAAA9E,OAmBAqjB,SAGAD,aAAAC,OACAA,MAAA3N,MAAA4H,QAKAgG,YAAA,SAAAxe,KAAA9E,MACA,IAAAkO,IAAAlO,KAAA,aACA,OAAAwiB,SAAApe,IAAAU,KAAAoJ,MAAAsU,SAAAvB,OAAAnc,KAAAoJ,KACAwH,MAAAjS,OAAAmZ,UAAA,eAAAvB,IAAA,WACAmH,SAAA/E,OAAA3Y,MAAA9E,KAAA,QAAAkO,aAMAzK,OAAAE,GAAA8B,QACA2X,MAAA,SAAApd,KAAAqiB,MACA,IAAAkB,OAAA,EAQA,MANA,iBAAAvjB,OACAqiB,KAAAriB,KACAA,KAAA,KACAujB,UAGAve,UAAAjB,OAAAwf,OACA9f,OAAA2Z,MAAA7b,KAAA,GAAAvB,WAGAG,IAAAkiB,KACA9gB,KACAA,KAAAoD,KAAA,WACA,IAAAyY,MAAA3Z,OAAA2Z,MAAA7b,KAAAvB,KAAAqiB,MAGA5e,OAAA6f,YAAA/hB,KAAAvB,MAEA,OAAAA,MAAA,eAAAod,MAAA,IACA3Z,OAAA0f,QAAA5hB,KAAAvB,SAIAmjB,QAAA,SAAAnjB,MACA,OAAAuB,KAAAoD,KAAA,WACAlB,OAAA0f,QAAA5hB,KAAAvB,SAGAwjB,WAAA,SAAAxjB,MACA,OAAAuB,KAAA6b,MAAApd,MAAA,UAKAyc,QAAA,SAAAzc,KAAA0C,KACA,IAAA6N,IACAkT,MAAA,EACAvjB,MAAAuD,OAAAoa,WACAnM,SAAAnQ,KACA4B,EAAA5B,KAAAwC,OACAsY,QAAA,aACAoH,OACAvjB,MAAAmf,YAAA3N,UAAAA,YAUA,IANA,iBAAA1R,OACA0C,IAAA1C,KACAA,UAAAG,GAEAH,KAAAA,MAAA,KAEAmD,MACAoN,IAAAiS,SAAApe,IAAAsN,SAAAvO,GAAAnD,KAAA,gBACAuQ,IAAAmF,QACA+N,QACAlT,IAAAmF,MAAA2F,IAAAgB,UAIA,OADAA,UACAnc,MAAAuc,QAAA/Z,QAGA,IAAAghB,KAAA,sCAAAC,OAEAC,QAAA,IAAA7iB,OAAA,iBAAA2iB,KAAA,cAAA,KAGAG,WAAA,MAAA,QAAA,SAAA,QAEAC,mBAAA,SAAAhf,KAAAyJ,IAOA,MAAA,UAHAzJ,KAAAyJ,IAAAzJ,MAGAif,MAAAC,SACA,KAAAlf,KAAAif,MAAAC,SAMAvgB,OAAAqF,SAAAhE,KAAAqI,cAAArI,OAEA,SAAArB,OAAAwgB,IAAAnf,KAAA,YAGAof,KAAA,SAAApf,KAAAY,QAAAd,SAAAuP,MACA,IAAA3P,IAAAmB,KACAwe,OAGA,IAAAxe,QAAAD,QACAye,IAAAxe,MAAAb,KAAAif,MAAApe,MACAb,KAAAif,MAAApe,MAAAD,QAAAC,MAMA,IAAAA,QAHAnB,IAAAI,SAAAG,MAAAD,KAAAqP,UAGAzO,QACAZ,KAAAif,MAAApe,MAAAwe,IAAAxe,MAGA,OAAAnB,KAMA,SAAA4f,UAAAtf,KAAAwd,KAAA+B,WAAAC,OACA,IAAAC,SAAAC,MACAC,cAAA,GACAC,aAAAJ,MACA,WACA,OAAAA,MAAAzV,OAEA,WACA,OAAApL,OAAAwgB,IAAAnf,KAAAwd,KAAA,KAEAqC,QAAAD,eACAE,KAAAP,YAAAA,WAAA,KAAA5gB,OAAAohB,UAAAvC,MAAA,GAAA,MAGAwC,eAAArhB,OAAAohB,UAAAvC,OAAA,OAAAsC,OAAAD,UACAf,QAAAxW,KAAA3J,OAAAwgB,IAAAnf,KAAAwd,OAEA,GAAAwC,eAAAA,cAAA,KAAAF,KAAA,CAYA,IARAD,SAAA,EAGAC,KAAAA,MAAAE,cAAA,GAGAA,eAAAH,SAAA,EAEAF,iBAIAhhB,OAAAsgB,MAAAjf,KAAAwd,KAAAwC,cAAAF,OACA,EAAAJ,QAAA,GAAAA,MAAAE,eAAAC,SAAA,MAAA,IACAF,cAAA,GAEAK,eAAAN,MAIAM,eAAA,EACArhB,OAAAsgB,MAAAjf,KAAAwd,KAAAwC,cAAAF,MAGAP,WAAAA,eAgBA,OAbAA,aACAS,eAAAA,gBAAAH,SAAA,EAGAJ,SAAAF,WAAA,GACAS,eAAAT,WAAA,GAAA,GAAAA,WAAA,IACAA,WAAA,GACAC,QACAA,MAAAM,KAAAA,KACAN,MAAA7kB,MAAAqlB,cACAR,MAAAhf,IAAAif,WAGAA,SAIA,IAAAQ,qBAEA,SAAAC,kBAAAlgB,MACA,IAAA2S,KACAxU,IAAA6B,KAAAqI,cACAM,SAAA3I,KAAA2I,SACAuW,QAAAe,kBAAAtX,UAEA,OAAAuW,UAIAvM,KAAAxU,IAAAgiB,KAAA3kB,YAAA2C,IAAAlD,cAAA0N,WACAuW,QAAAvgB,OAAAwgB,IAAAxM,KAAA,WAEAA,KAAAnU,WAAAC,YAAAkU,MAEA,SAAAuM,UACAA,QAAA,SAEAe,kBAAAtX,UAAAuW,QAEAA,SAGA,SAAAkB,SAAAxT,SAAAyT,MAOA,IANA,IAAAnB,QAAAlf,KACAsgB,UACAjK,MAAA,EACApX,OAAA2N,SAAA3N,OAGAoX,MAAApX,OAAAoX,SACArW,KAAA4M,SAAAyJ,QACA4I,QAIAC,QAAAlf,KAAAif,MAAAC,QACAmB,MAKA,SAAAnB,UACAoB,OAAAjK,OAAAqH,SAAApe,IAAAU,KAAA,YAAA,KACAsgB,OAAAjK,SACArW,KAAAif,MAAAC,QAAA,KAGA,KAAAlf,KAAAif,MAAAC,SAAAF,mBAAAhf,QACAsgB,OAAAjK,OAAA6J,kBAAAlgB,QAGA,SAAAkf,UACAoB,OAAAjK,OAAA,OAGAqH,SAAAJ,IAAAtd,KAAA,UAAAkf,WAMA,IAAA7I,MAAA,EAAAA,MAAApX,OAAAoX,QACA,MAAAiK,OAAAjK,SACAzJ,SAAAyJ,OAAA4I,MAAAC,QAAAoB,OAAAjK,QAIA,OAAAzJ,SAGAjO,OAAAE,GAAA8B,QACA0f,KAAA,WACA,OAAAD,SAAA3jB,MAAA,IAEA8jB,KAAA,WACA,OAAAH,SAAA3jB,OAEA+jB,OAAA,SAAAtH,OACA,MAAA,kBAAAA,MACAA,MAAAzc,KAAA4jB,OAAA5jB,KAAA8jB,OAGA9jB,KAAAoD,KAAA,WACAmf,mBAAAviB,MACAkC,OAAAlC,MAAA4jB,OAEA1hB,OAAAlC,MAAA8jB,YAKA,IAAAE,eAAA,wBAEAC,SAAA,iCAEAC,YAAA,qCAKAC,SAGAC,QAAA,EAAA,+BAAA,aAKAC,OAAA,EAAA,UAAA,YACAC,KAAA,EAAA,oBAAA,uBACAC,IAAA,EAAA,iBAAA,oBACAC,IAAA,EAAA,qBAAA,yBAEAC,UAAA,EAAA,GAAA,KAUA,SAAAC,OAAAviB,QAAA4M,KAIA,IAAA9L,IAYA,OATAA,SADA,IAAAd,QAAArD,qBACAqD,QAAArD,qBAAAiQ,KAAA,UAEA,IAAA5M,QAAAmK,iBACAnK,QAAAmK,iBAAAyC,KAAA,aAMAnQ,IAAAmQ,KAAAA,KAAA7C,SAAA/J,QAAA4M,KACA7M,OAAAgB,OAAAf,SAAAc,KAGAA,IAKA,SAAA0hB,cAAA3hB,MAAA4hB,aAIA,IAHA,IAAAhjB,EAAA,EACA8X,EAAA1W,MAAAR,OAEAZ,EAAA8X,EAAA9X,IACAqf,SAAAJ,IACA7d,MAAApB,GACA,cACAgjB,aAAA3D,SAAApe,IAAA+hB,YAAAhjB,GAAA,eAvCAuiB,QAAAU,SAAAV,QAAAC,OAEAD,QAAAW,MAAAX,QAAAY,MAAAZ,QAAAa,SAAAb,QAAAc,QAAAd,QAAAE,MACAF,QAAAe,GAAAf,QAAAK,GA0CA,IA8FAW,IACAjW,MA/FAkW,MAAA,YAEA,SAAAC,cAAAriB,MAAAb,QAAAmjB,QAAAC,UAAAC,SAOA,IANA,IAAAjiB,KAAAyL,IAAAD,IAAA0W,KAAAle,SAAAzD,EACA4hB,SAAAvjB,QAAAwjB,yBACAC,SACAhkB,EAAA,EACA8X,EAAA1W,MAAAR,OAEAZ,EAAA8X,EAAA9X,IAGA,IAFA2B,KAAAP,MAAApB,KAEA,IAAA2B,KAGA,GAAA,WAAAtB,OAAAsB,MAIArB,OAAAgB,MAAA0iB,MAAAriB,KAAAnC,UAAAmC,MAAAA,WAGA,GAAA6hB,MAAAnZ,KAAA1I,MAIA,CAUA,IATAyL,IAAAA,KAAA0W,SAAA3mB,YAAAoD,QAAA3D,cAAA,QAGAuQ,KAAAkV,SAAApY,KAAAtI,QAAA,GAAA,KAAA,GAAAgD,cACAkf,KAAAtB,QAAApV,MAAAoV,QAAAM,SACAzV,IAAAC,UAAAwW,KAAA,GAAAvjB,OAAA2jB,cAAAtiB,MAAAkiB,KAAA,GAGA3hB,EAAA2hB,KAAA,GACA3hB,KACAkL,IAAAA,IAAAyD,UAKAvQ,OAAAgB,MAAA0iB,MAAA5W,IAAA9D,aAGA8D,IAAA0W,SAAA5U,YAGAD,YAAA,QAzBA+U,MAAAplB,KAAA2B,QAAA2jB,eAAAviB,OAkCA,IAHAmiB,SAAA7U,YAAA,GAEAjP,EAAA,EACA2B,KAAAqiB,MAAAhkB,MAGA,GAAA2jB,WAAArjB,OAAAyD,QAAApC,KAAAgiB,YAAA,EACAC,SACAA,QAAAhlB,KAAA+C,WAgBA,GAXAgE,SAAArF,OAAAqF,SAAAhE,KAAAqI,cAAArI,MAGAyL,IAAA0V,OAAAgB,SAAA3mB,YAAAwE,MAAA,UAGAgE,UACAod,cAAA3V,KAIAsW,QAEA,IADAxhB,EAAA,EACAP,KAAAyL,IAAAlL,MACAogB,YAAAjY,KAAA1I,KAAA9E,MAAA,KACA6mB,QAAA9kB,KAAA+C,MAMA,OAAAmiB,SAMAP,IADAxoB,SAAAgpB,yBACA5mB,YAAApC,SAAA6B,cAAA,SACA0Q,MAAAvS,SAAA6B,cAAA,UAMAlB,aAAA,OAAA,SACA4R,MAAA5R,aAAA,UAAA,WACA4R,MAAA5R,aAAA,OAAA,KAEA6nB,IAAApmB,YAAAmQ,OAIAjO,QAAA8kB,WAAAZ,IAAAa,WAAA,GAAAA,WAAA,GAAAvT,UAAAuB,QAIAmR,IAAAlW,UAAA,yBACAhO,QAAAglB,iBAAAd,IAAAa,WAAA,GAAAvT,UAAAyF,aAEA,IAAAjK,gBAAAtR,SAAAsR,gBAKAiY,UAAA,OACAC,YAAA,iDACAC,eAAA,sBAEA,SAAAC,aACA,OAAA,EAGA,SAAAC,cACA,OAAA,EAKA,SAAAC,oBACA,IACA,OAAA5pB,SAAAgX,cACA,MAAA6S,OAGA,SAAAC,GAAAljB,KAAAmjB,MAAAznB,SAAA6hB,KAAA1e,GAAAukB,KACA,IAAAC,OAAAnoB,KAGA,GAAA,iBAAAioB,MAAA,CASA,IAAAjoB,OANA,iBAAAQ,WAGA6hB,KAAAA,MAAA7hB,SACAA,cAAAL,GAEA8nB,MACAD,GAAAljB,KAAA9E,KAAAQ,SAAA6hB,KAAA4F,MAAAjoB,MAAAkoB,KAEA,OAAApjB,KAsBA,GAnBA,MAAAud,MAAA,MAAA1e,IAGAA,GAAAnD,SACA6hB,KAAA7hB,cAAAL,GACA,MAAAwD,KACA,iBAAAnD,UAGAmD,GAAA0e,KACAA,UAAAliB,IAIAwD,GAAA0e,KACAA,KAAA7hB,SACAA,cAAAL,KAGA,IAAAwD,GACAA,GAAAkkB,iBACA,IAAAlkB,GACA,OAAAmB,KAeA,OAZA,IAAAojB,MACAC,OAAAxkB,IACAA,GAAA,SAAAykB,OAIA,OADA3kB,SAAA4kB,IAAAD,OACAD,OAAApjB,MAAAxD,KAAAyD,aAIA0C,KAAAygB,OAAAzgB,OAAAygB,OAAAzgB,KAAAjE,OAAAiE,SAEA5C,KAAAH,KAAA,WACAlB,OAAA2kB,MAAA/M,IAAA9Z,KAAA0mB,MAAAtkB,GAAA0e,KAAA7hB,YAQAiD,OAAA2kB,OAEAnnB,UAEAoa,IAAA,SAAAvW,KAAAmjB,MAAAvZ,QAAA2T,KAAA7hB,UAEA,IAAA8nB,YAAAC,YAAAhY,IACAiY,OAAAC,EAAAC,UACA1J,QAAA2J,SAAA3oB,KAAA4oB,WAAAC,SACAC,SAAAtG,SAAApe,IAAAU,MAGA,GAAAgkB,SAuCA,IAlCApa,QAAAA,UAEAA,SADA4Z,YAAA5Z,SACAA,QACAlO,SAAA8nB,YAAA9nB,UAKAA,UACAiD,OAAA2M,KAAAM,gBAAAlB,gBAAAhP,UAIAkO,QAAAhH,OACAgH,QAAAhH,KAAAjE,OAAAiE,SAIA8gB,OAAAM,SAAAN,UACAA,OAAAM,SAAAN,YAEAD,YAAAO,SAAAC,UACAR,YAAAO,SAAAC,OAAA,SAAArc,GAIA,YAAA,IAAAjJ,QAAAA,OAAA2kB,MAAAY,YAAAtc,EAAA1M,KACAyD,OAAA2kB,MAAAa,SAAAlkB,MAAAD,KAAAE,gBAAA7E,IAMAsoB,GADAR,OAAAA,OAAA,IAAAlb,MAAAgP,iBAAA,KACAhY,OACA0kB,KAEAzoB,KAAA6oB,UADAtY,IAAAoX,eAAAva,KAAA6a,MAAAQ,SACA,GACAG,YAAArY,IAAA,IAAA,IAAA1I,MAAA,KAAAtC,OAGAvF,OAKAgf,QAAAvb,OAAA2kB,MAAApJ,QAAAhf,UAGAA,MAAAQ,SAAAwe,QAAAkK,aAAAlK,QAAAmK,WAAAnpB,KAGAgf,QAAAvb,OAAA2kB,MAAApJ,QAAAhf,UAGA0oB,UAAAjlB,OAAAgC,QACAzF,KAAAA,KACA6oB,SAAAA,SACAxG,KAAAA,KACA3T,QAAAA,QACAhH,KAAAgH,QAAAhH,KACAlH,SAAAA,SACAwK,aAAAxK,UAAAiD,OAAAgO,KAAA1E,MAAA/B,aAAAwC,KAAAhN,UACA4oB,UAAAR,WAAAjb,KAAA,MACA2a,cAGAK,SAAAH,OAAAxoB,UACA2oB,SAAAH,OAAAxoB,UACAqpB,cAAA,EAGArK,QAAAsK,QACA,IAAAtK,QAAAsK,MAAA/mB,KAAAuC,KAAAud,KAAAuG,WAAAL,cAEAzjB,KAAA+K,kBACA/K,KAAA+K,iBAAA7P,KAAAuoB,cAKAvJ,QAAA3D,MACA2D,QAAA3D,IAAA9Y,KAAAuC,KAAA4jB,WAEAA,UAAAha,QAAAhH,OACAghB,UAAAha,QAAAhH,KAAAgH,QAAAhH,OAKAlH,SACAmoB,SAAAnjB,OAAAmjB,SAAAU,gBAAA,EAAAX,WAEAC,SAAA5mB,KAAA2mB,WAIAjlB,OAAA2kB,MAAAnnB,OAAAjB,OAAA,IAMAyd,OAAA,SAAA3Y,KAAAmjB,MAAAvZ,QAAAlO,SAAA+oB,aAEA,IAAAlkB,EAAAmkB,UAAAjZ,IACAiY,OAAAC,EAAAC,UACA1J,QAAA2J,SAAA3oB,KAAA4oB,WAAAC,SACAC,SAAAtG,SAAAD,QAAAzd,OAAA0d,SAAApe,IAAAU,MAEA,GAAAgkB,WAAAN,OAAAM,SAAAN,QAAA,CAOA,IADAC,GADAR,OAAAA,OAAA,IAAAlb,MAAAgP,iBAAA,KACAhY,OACA0kB,KAMA,GAJAzoB,KAAA6oB,UADAtY,IAAAoX,eAAAva,KAAA6a,MAAAQ,SACA,GACAG,YAAArY,IAAA,IAAA,IAAA1I,MAAA,KAAAtC,OAGAvF,KAAA,CAeA,IARAgf,QAAAvb,OAAA2kB,MAAApJ,QAAAhf,UAEA2oB,SAAAH,OADAxoB,MAAAQ,SAAAwe,QAAAkK,aAAAlK,QAAAmK,WAAAnpB,UAEAuQ,IAAAA,IAAA,IACA,IAAAxP,OAAA,UAAA6nB,WAAAjb,KAAA,iBAAA,WAGA6b,UAAAnkB,EAAAsjB,SAAA5kB,OACAsB,KACAqjB,UAAAC,SAAAtjB,IAEAkkB,aAAAV,WAAAH,UAAAG,UACAna,SAAAA,QAAAhH,OAAAghB,UAAAhhB,MACA6I,MAAAA,IAAA/C,KAAAkb,UAAAU,YACA5oB,UAAAA,WAAAkoB,UAAAloB,WACA,OAAAA,WAAAkoB,UAAAloB,YACAmoB,SAAAnjB,OAAAH,EAAA,GAEAqjB,UAAAloB,UACAmoB,SAAAU,gBAEArK,QAAAvB,QACAuB,QAAAvB,OAAAlb,KAAAuC,KAAA4jB,YAOAc,YAAAb,SAAA5kB,SACAib,QAAAyK,WACA,IAAAzK,QAAAyK,SAAAlnB,KAAAuC,KAAA8jB,WAAAE,SAAAC,SAEAtlB,OAAAimB,YAAA5kB,KAAA9E,KAAA8oB,SAAAC,eAGAP,OAAAxoB,YA1CA,IAAAA,QAAAwoB,OACA/kB,OAAA2kB,MAAA3K,OAAA3Y,KAAA9E,KAAAioB,MAAAQ,GAAA/Z,QAAAlO,UAAA,GA8CAiD,OAAAoD,cAAA2hB,SACAhG,SAAA/E,OAAA3Y,KAAA,mBAIAmkB,SAAA,SAAAU,aAGA,IAEAxmB,EAAAkC,EAAAb,IAAA8P,QAAAoU,UAAAkB,aAFAxB,MAAA3kB,OAAA2kB,MAAAyB,IAAAF,aAGAxV,KAAA,IAAAjO,MAAAlB,UAAAjB,QACA4kB,UAAAnG,SAAApe,IAAA7C,KAAA,eAAA6mB,MAAApoB,UACAgf,QAAAvb,OAAA2kB,MAAApJ,QAAAoJ,MAAApoB,UAKA,IAFAmU,KAAA,GAAAiU,MAEAjlB,EAAA,EAAAA,EAAA6B,UAAAjB,OAAAZ,IACAgR,KAAAhR,GAAA6B,UAAA7B,GAMA,GAHAilB,MAAA0B,eAAAvoB,MAGAyd,QAAA+K,cAAA,IAAA/K,QAAA+K,YAAAxnB,KAAAhB,KAAA6mB,OAAA,CASA,IAJAwB,aAAAnmB,OAAA2kB,MAAAO,SAAApmB,KAAAhB,KAAA6mB,MAAAO,UAGAxlB,EAAA,GACAmR,QAAAsV,aAAAzmB,QAAAilB,MAAA4B,wBAIA,IAHA5B,MAAA6B,cAAA3V,QAAAxP,KAEAO,EAAA,GACAqjB,UAAApU,QAAAqU,SAAAtjB,QACA+iB,MAAA8B,iCAIA9B,MAAA+B,aAAA/B,MAAA+B,WAAA3c,KAAAkb,UAAAU,aAEAhB,MAAAM,UAAAA,UACAN,MAAA/F,KAAAqG,UAAArG,UAKAliB,KAHAqE,MAAAf,OAAA2kB,MAAApJ,QAAA0J,UAAAG,eAAAE,QACAL,UAAAha,SAAA3J,MAAAuP,QAAAxP,KAAAqP,SAGA,KAAAiU,MAAA/U,OAAA7O,OACA4jB,MAAAgC,iBACAhC,MAAAiC,oBAYA,OAJArL,QAAAsL,cACAtL,QAAAsL,aAAA/nB,KAAAhB,KAAA6mB,OAGAA,MAAA/U,SAGAsV,SAAA,SAAAP,MAAAO,UACA,IAAAxlB,EAAAulB,UAAA3W,IAAAwY,gBAAAC,iBACAZ,gBACAP,cAAAV,SAAAU,cACAxa,IAAAuZ,MAAAriB,OAGA,GAAAsjB,eAIAxa,IAAAlM,YAOA,UAAAylB,MAAApoB,MAAAooB,MAAAxS,QAAA,GAEA,KAAA/G,MAAAtN,KAAAsN,IAAAA,IAAAvL,YAAA/B,KAIA,GAAA,IAAAsN,IAAAlM,WAAA,UAAAylB,MAAApoB,OAAA,IAAA6O,IAAAvC,UAAA,CAGA,IAFAie,mBACAC,oBACArnB,EAAA,EAAAA,EAAAkmB,cAAAlmB,SAMAhD,IAAAqqB,iBAFAzY,KAHA2W,UAAAC,SAAAxlB,IAGA3C,SAAA,OAGAgqB,iBAAAzY,KAAA2W,UAAA1d,aACAvH,OAAAsO,IAAAxQ,MAAA4Z,MAAAtM,MAAA,EACApL,OAAA2M,KAAA2B,IAAAxQ,KAAA,MAAAsN,MAAA9K,QAEAymB,iBAAAzY,MACAwY,gBAAAxoB,KAAA2mB,WAGA6B,gBAAAxmB,QACA6lB,aAAA7nB,MAAA+C,KAAA+J,IAAA8Z,SAAA4B,kBAYA,OALA1b,IAAAtN,KACA8nB,cAAAV,SAAA5kB,QACA6lB,aAAA7nB,MAAA+C,KAAA+J,IAAA8Z,SAAAA,SAAA9mB,MAAAwnB,iBAGAO,cAGAa,QAAA,SAAA9kB,KAAA+kB,MACA/oB,OAAAugB,eAAAze,OAAAknB,MAAA3mB,UAAA2B,MACAilB,YAAA,EACAzI,cAAA,EAEA/d,IAAA3B,WAAAioB,MACA,WACA,GAAAnpB,KAAAspB,cACA,OAAAH,KAAAnpB,KAAAspB,gBAGA,WACA,GAAAtpB,KAAAspB,cACA,OAAAtpB,KAAAspB,cAAAllB,OAIAyc,IAAA,SAAA3a,OACA9F,OAAAugB,eAAA3gB,KAAAoE,MACAilB,YAAA,EACAzI,cAAA,EACA2I,UAAA,EACArjB,MAAAA,YAMAoiB,IAAA,SAAAgB,eACA,OAAAA,cAAApnB,OAAA2C,SACAykB,cACA,IAAApnB,OAAAknB,MAAAE,gBAGA7L,SACA+L,MAGAC,UAAA,GAEA/V,OAGAgW,QAAA,WACA,GAAA1pB,OAAAumB,qBAAAvmB,KAAA0T,MAEA,OADA1T,KAAA0T,SACA,GAGAiU,aAAA,WAEAgC,MACAD,QAAA,WACA,GAAA1pB,OAAAumB,qBAAAvmB,KAAA2pB,KAEA,OADA3pB,KAAA2pB,QACA,GAGAhC,aAAA,YAEAiC,OAGAF,QAAA,WACA,GAAA,aAAA1pB,KAAAvB,MAAAuB,KAAA4pB,OAAA1d,SAAAlM,KAAA,SAEA,OADAA,KAAA4pB,SACA,GAKAnF,SAAA,SAAAoC,OACA,OAAA3a,SAAA2a,MAAAriB,OAAA,OAIAqlB,cACAd,aAAA,SAAAlC,YAIAjoB,IAAAioB,MAAA/U,QAAA+U,MAAAyC,gBACAzC,MAAAyC,cAAAQ,YAAAjD,MAAA/U,YAOA5P,OAAAimB,YAAA,SAAA5kB,KAAA9E,KAAA+oB,QAGAjkB,KAAA8b,qBACA9b,KAAA8b,oBAAA5gB,KAAA+oB,SAIAtlB,OAAAknB,MAAA,SAAA1qB,IAAAqrB,OAGA,KAAA/pB,gBAAAkC,OAAAknB,OACA,OAAA,IAAAlnB,OAAAknB,MAAA1qB,IAAAqrB,OAIArrB,KAAAA,IAAAD,MACAuB,KAAAspB,cAAA5qB,IACAsB,KAAAvB,KAAAC,IAAAD,KAIAuB,KAAAgqB,mBAAAtrB,IAAAurB,uBACArrB,IAAAF,IAAAurB,mBAGA,IAAAvrB,IAAAorB,YACAzD,WACAC,YAKAtmB,KAAAwE,OAAA9F,IAAA8F,QAAA,IAAA9F,IAAA8F,OAAApD,SACA1C,IAAA8F,OAAAzC,WACArD,IAAA8F,OAEAxE,KAAA0oB,cAAAhqB,IAAAgqB,cACA1oB,KAAAkqB,cAAAxrB,IAAAwrB,eAIAlqB,KAAAvB,KAAAC,IAIAqrB,OACA7nB,OAAAgC,OAAAlE,KAAA+pB,OAIA/pB,KAAAmqB,UAAAzrB,KAAAA,IAAAyrB,WAAA3iB,KAAA4iB,MAGApqB,KAAAkC,OAAA2C,UAAA,GAKA3C,OAAAknB,MAAA3mB,WACAE,YAAAT,OAAAknB,MACAY,mBAAA1D,YACAmC,qBAAAnC,YACAqC,8BAAArC,YACA+D,aAAA,EAEAxB,eAAA,WACA,IAAA1d,EAAAnL,KAAAspB,cAEAtpB,KAAAgqB,mBAAA3D,WAEAlb,IAAAnL,KAAAqqB,aACAlf,EAAA0d,kBAGAC,gBAAA,WACA,IAAA3d,EAAAnL,KAAAspB,cAEAtpB,KAAAyoB,qBAAApC,WAEAlb,IAAAnL,KAAAqqB,aACAlf,EAAA2d,mBAGAwB,yBAAA,WACA,IAAAnf,EAAAnL,KAAAspB,cAEAtpB,KAAA2oB,8BAAAtC,WAEAlb,IAAAnL,KAAAqqB,aACAlf,EAAAmf,2BAGAtqB,KAAA8oB,oBAKA5mB,OAAAkB,MACAmnB,QAAA,EACAC,SAAA,EACAC,YAAA,EACAC,gBAAA,EACAC,SAAA,EACAC,QAAA,EACAC,YAAA,EACAC,SAAA,EACAC,OAAA,EACAC,OAAA,EACAC,UAAA,EACAC,MAAA,EACAC,MAAA,EACAC,UAAA,EACAze,KAAA,EACA0e,SAAA,EACAhX,QAAA,EACAiX,SAAA,EACAC,SAAA,EACAC,SAAA,EACAC,SAAA,EACAC,SAAA,EACAC,WAAA,EACAC,aAAA,EACAC,SAAA,EACAC,SAAA,EACAC,eAAA,EACAC,WAAA,EACAC,SAAA,EAEAC,MAAA,SAAArF,OACA,IAAAxS,OAAAwS,MAAAxS,OAGA,OAAA,MAAAwS,MAAAqF,OAAAhG,UAAAja,KAAA4a,MAAApoB,MACA,MAAAooB,MAAAuE,SAAAvE,MAAAuE,SAAAvE,MAAAwE,SAIAxE,MAAAqF,YAAAttB,IAAAyV,QAAA8R,YAAAla,KAAA4a,MAAApoB,MACA,EAAA4V,OACA,EAGA,EAAAA,OACA,EAGA,EAAAA,OACA,EAGA,EAGAwS,MAAAqF,QAEAhqB,OAAA2kB,MAAAqC,SAUAhnB,OAAAkB,MACA+oB,WAAA,YACAC,WAAA,WACAC,aAAA,cACAC,aAAA,cACA,SAAAC,KAAAjE,KACApmB,OAAA2kB,MAAApJ,QAAA8O,OACA5E,aAAAW,IACAV,SAAAU,IAEAd,OAAA,SAAAX,OACA,IAAA5jB,IAEAupB,QAAA3F,MAAAqD,cACA/C,UAAAN,MAAAM,UASA,OALAqF,UAAAA,UANAxsB,MAMAkC,OAAAqF,SANAvH,KAMAwsB,YACA3F,MAAApoB,KAAA0oB,UAAAG,SACArkB,IAAAkkB,UAAAha,QAAA3J,MAAAxD,KAAAyD,WACAojB,MAAApoB,KAAA6pB,KAEArlB,QAKAf,OAAAE,GAAA8B,QAEAuiB,GAAA,SAAAC,MAAAznB,SAAA6hB,KAAA1e,IACA,OAAAqkB,GAAAzmB,KAAA0mB,MAAAznB,SAAA6hB,KAAA1e,KAEAukB,IAAA,SAAAD,MAAAznB,SAAA6hB,KAAA1e,IACA,OAAAqkB,GAAAzmB,KAAA0mB,MAAAznB,SAAA6hB,KAAA1e,GAAA,IAEA0kB,IAAA,SAAAJ,MAAAznB,SAAAmD,IACA,IAAA+kB,UAAA1oB,KACA,GAAAioB,OAAAA,MAAAmC,gBAAAnC,MAAAS,UAWA,OARAA,UAAAT,MAAAS,UACAjlB,OAAAwkB,MAAA6B,gBAAAzB,IACAK,UAAAU,UACAV,UAAAG,SAAA,IAAAH,UAAAU,UACAV,UAAAG,SACAH,UAAAloB,SACAkoB,UAAAha,SAEAnN,KAEA,GAAA,iBAAA0mB,MAAA,CAGA,IAAAjoB,QAAAioB,MACA1mB,KAAA8mB,IAAAroB,KAAAQ,SAAAynB,MAAAjoB,OAEA,OAAAuB,KAWA,OATA,IAAAf,UAAA,mBAAAA,WAGAmD,GAAAnD,SACAA,cAAAL,IAEA,IAAAwD,KACAA,GAAAkkB,aAEAtmB,KAAAoD,KAAA,WACAlB,OAAA2kB,MAAA3K,OAAAlc,KAAA0mB,MAAAtkB,GAAAnD,eAMA,IAKAwtB,UAAA,8FAOAC,aAAA,wBAGAC,SAAA,oCACAC,aAAA,2CAGA,SAAAC,mBAAAtpB,KAAA+W,SACA,OAAApO,SAAA3I,KAAA,UACA2I,SAAA,KAAAoO,QAAAlZ,SAAAkZ,QAAAA,QAAAxJ,WAAA,OAEA5O,OAAAqB,MAAA8V,SAAA,SAAA,IAGA9V,KAIA,SAAAupB,cAAAvpB,MAEA,OADAA,KAAA9E,MAAA,OAAA8E,KAAAlG,aAAA,SAAA,IAAAkG,KAAA9E,KACA8E,KAEA,SAAAwpB,cAAAxpB,MAOA,MANA,WAAAA,KAAA9E,MAAA,IAAA6B,MAAA,EAAA,GACAiD,KAAA9E,KAAA8E,KAAA9E,KAAA6B,MAAA,GAEAiD,KAAAiJ,gBAAA,QAGAjJ,KAGA,SAAAypB,eAAAtuB,IAAAuuB,MACA,IAAArrB,EAAA8X,EAAAjb,KAAAyuB,SAAAC,SAAAC,SAAAC,SAAApG,OAEA,GAAA,IAAAgG,KAAA7rB,SAAA,CAKA,GAAA6f,SAAAD,QAAAtiB,OACAwuB,SAAAjM,SAAAvB,OAAAhhB,KACAyuB,SAAAlM,SAAAJ,IAAAoM,KAAAC,UACAjG,OAAAiG,SAAAjG,QAMA,IAAAxoB,eAHA0uB,SAAA3F,OACA2F,SAAAlG,UAEAA,OACA,IAAArlB,EAAA,EAAA8X,EAAAuN,OAAAxoB,MAAA+D,OAAAZ,EAAA8X,EAAA9X,IACAM,OAAA2kB,MAAA/M,IAAAmT,KAAAxuB,KAAAwoB,OAAAxoB,MAAAmD,IAOAsf,SAAAF,QAAAtiB,OACA0uB,SAAAlM,SAAAxB,OAAAhhB,KACA2uB,SAAAnrB,OAAAgC,UAAAkpB,UAEAlM,SAAAL,IAAAoM,KAAAI,YAkBA,SAAAC,SAAAC,WAAA3a,KAAAvP,SAAAmiB,SAGA5S,KAAArS,OAAAiD,SAAAoP,MAEA,IAAA8S,SAAAhiB,MAAA4hB,QAAAkI,WAAA7rB,KAAAD,IACAE,EAAA,EACA8X,EAAA6T,WAAA/qB,OACAirB,SAAA/T,EAAA,EACAxT,MAAA0M,KAAA,GACA8a,gBAAAxsB,WAAAgF,OAGA,GAAAwnB,iBACAhU,EAAA,GAAA,iBAAAxT,QACAjF,QAAA8kB,YAAA4G,SAAA1gB,KAAA/F,OACA,OAAAqnB,WAAAnqB,KAAA,SAAAwW,OACA,IAAAb,KAAAwU,WAAA5pB,GAAAiW,OACA8T,kBACA9a,KAAA,GAAA1M,MAAAlF,KAAAhB,KAAA4Z,MAAAb,KAAA4U,SAEAL,SAAAvU,KAAAnG,KAAAvP,SAAAmiB,WAIA,GAAA9L,IAEAhW,OADAgiB,SAAAL,cAAAzS,KAAA2a,WAAA,GAAA3hB,eAAA,EAAA2hB,WAAA/H,UACA1U,WAEA,IAAA4U,SAAAxa,WAAA1I,SACAkjB,SAAAhiB,OAIAA,OAAA8hB,SAAA,CAOA,IALAgI,YADAlI,QAAApjB,OAAAoB,IAAAohB,OAAAgB,SAAA,UAAAoH,gBACAtqB,OAKAZ,EAAA8X,EAAA9X,IACAD,KAAA+jB,SAEA9jB,IAAA6rB,WACA9rB,KAAAO,OAAAqC,MAAA5C,MAAA,GAAA,GAGA6rB,YAIAtrB,OAAAgB,MAAAoiB,QAAAZ,OAAA/iB,KAAA,YAIA0B,SAAArC,KAAAusB,WAAA3rB,GAAAD,KAAAC,GAGA,GAAA4rB,WAOA,IANA9rB,IAAA4jB,QAAAA,QAAA9iB,OAAA,GAAAoJ,cAGA1J,OAAAoB,IAAAgiB,QAAAyH,eAGAnrB,EAAA,EAAAA,EAAA4rB,WAAA5rB,IACAD,KAAA2jB,QAAA1jB,GACAsiB,YAAAjY,KAAAtK,KAAAlD,MAAA,MACAwiB,SAAAvB,OAAA/d,KAAA,eACAO,OAAAqF,SAAA7F,IAAAC,QAEAA,KAAAjD,KAAA,YAAAiD,KAAAlD,MAAA,IAAA8H,cAGArE,OAAA0rB,UACA1rB,OAAA0rB,SAAAjsB,KAAAjD,KAGA8C,QAAAG,KAAAkP,YAAApR,QAAAmtB,aAAA,IAAAlrB,IAAAC,OAQA,OAAA4rB,WAGA,SAAArR,OAAA3Y,KAAAtE,SAAA4uB,UAKA,IAJA,IAAAlsB,KACAikB,MAAA3mB,SAAAiD,OAAAyM,OAAA1P,SAAAsE,MAAAA,KACA3B,EAAA,EAEA,OAAAD,KAAAikB,MAAAhkB,IAAAA,IACAisB,UAAA,IAAAlsB,KAAAP,UACAc,OAAA4rB,UAAApJ,OAAA/iB,OAGAA,KAAAI,aACA8rB,UAAA3rB,OAAAqF,SAAA5F,KAAAiK,cAAAjK,OACAgjB,cAAAD,OAAA/iB,KAAA,WAEAA,KAAAI,WAAAC,YAAAL,OAIA,OAAA4B,KAGArB,OAAAgC,QACA2hB,cAAA,SAAA8H,MACA,OAAAA,KAAAluB,QAAAgtB,UAAA,cAGAloB,MAAA,SAAAhB,KAAAwqB,cAAAC,mBACA,IAAApsB,EAAA8X,EAAAuU,YAAAC,aAlIAxvB,IAAAuuB,KACA/gB,SAkIA3H,MAAAhB,KAAAyiB,WAAA,GACAmI,OAAAjsB,OAAAqF,SAAAhE,KAAAqI,cAAArI,MAGA,KAAAtC,QAAAglB,gBAAA,IAAA1iB,KAAAnC,UAAA,KAAAmC,KAAAnC,UACAc,OAAAkW,SAAA7U,OAMA,IAHA2qB,aAAAxJ,OAAAngB,OAGA3C,EAAA,EAAA8X,GAFAuU,YAAAvJ,OAAAnhB,OAEAf,OAAAZ,EAAA8X,EAAA9X,IA9IAlD,IA+IAuvB,YAAArsB,GA/IAqrB,KA+IAiB,aAAAtsB,QA9IAsK,EAGA,WAHAA,SAAA+gB,KAAA/gB,SAAA3F,gBAGAyd,eAAA/X,KAAAvN,IAAAD,MACAwuB,KAAAjZ,QAAAtV,IAAAsV,QAGA,UAAA9H,UAAA,aAAAA,WACA+gB,KAAA/U,aAAAxZ,IAAAwZ,cA2IA,GAAA6V,cACA,GAAAC,kBAIA,IAHAC,YAAAA,aAAAvJ,OAAAnhB,MACA2qB,aAAAA,cAAAxJ,OAAAngB,OAEA3C,EAAA,EAAA8X,EAAAuU,YAAAzrB,OAAAZ,EAAA8X,EAAA9X,IACAorB,eAAAiB,YAAArsB,GAAAssB,aAAAtsB,SAGAorB,eAAAzpB,KAAAgB,OAWA,OANA2pB,aAAAxJ,OAAAngB,MAAA,WACA/B,OAAA,GACAmiB,cAAAuJ,cAAAC,QAAAzJ,OAAAnhB,KAAA,WAIAgB,OAGAupB,UAAA,SAAA9qB,OAKA,IAJA,IAAA8d,KAAAvd,KAAA9E,KACAgf,QAAAvb,OAAA2kB,MAAApJ,QACA7b,EAAA,OAEAhD,KAAA2E,KAAAP,MAAApB,IAAAA,IACA,GAAA2e,WAAAhd,MAAA,CACA,GAAAud,KAAAvd,KAAA0d,SAAApc,SAAA,CACA,GAAAic,KAAAmG,OACA,IAAAxoB,QAAAqiB,KAAAmG,OACAxJ,QAAAhf,MACAyD,OAAA2kB,MAAA3K,OAAA3Y,KAAA9E,MAIAyD,OAAAimB,YAAA5kB,KAAA9E,KAAAqiB,KAAA0G,QAOAjkB,KAAA0d,SAAApc,cAAAjG,EAEA2E,KAAA2d,SAAArc,WAIAtB,KAAA2d,SAAArc,cAAAjG,OAOAsD,OAAAE,GAAA8B,QACAkqB,OAAA,SAAAnvB,UACA,OAAAid,OAAAlc,KAAAf,UAAA,IAGAid,OAAA,SAAAjd,UACA,OAAAid,OAAAlc,KAAAf,WAGA4C,KAAA,SAAAqE,OACA,OAAAwZ,OAAA1f,KAAA,SAAAkG,OACA,YAAAtH,IAAAsH,MACAhE,OAAAL,KAAA7B,MACAA,KAAAmU,QAAA/Q,KAAA,WACA,IAAApD,KAAAoB,UAAA,KAAApB,KAAAoB,UAAA,IAAApB,KAAAoB,WACApB,KAAA6Q,YAAA3K,UAGA,KAAAA,MAAAzC,UAAAjB,SAGA6rB,OAAA,WACA,OAAAf,SAAAttB,KAAAyD,UAAA,SAAAF,MACA,IAAAvD,KAAAoB,UAAA,KAAApB,KAAAoB,UAAA,IAAApB,KAAAoB,UACAyrB,mBAAA7sB,KAAAuD,MACAxE,YAAAwE,SAKA+qB,QAAA,WACA,OAAAhB,SAAAttB,KAAAyD,UAAA,SAAAF,MACA,GAAA,IAAAvD,KAAAoB,UAAA,KAAApB,KAAAoB,UAAA,IAAApB,KAAAoB,SAAA,CACA,IAAAoD,OAAAqoB,mBAAA7sB,KAAAuD,MACAiB,OAAA+pB,aAAAhrB,KAAAiB,OAAAsM,gBAKA0d,OAAA,WACA,OAAAlB,SAAAttB,KAAAyD,UAAA,SAAAF,MACAvD,KAAA+B,YACA/B,KAAA+B,WAAAwsB,aAAAhrB,KAAAvD,SAKAyuB,MAAA,WACA,OAAAnB,SAAAttB,KAAAyD,UAAA,SAAAF,MACAvD,KAAA+B,YACA/B,KAAA+B,WAAAwsB,aAAAhrB,KAAAvD,KAAAyN,gBAKA0G,MAAA,WAIA,IAHA,IAAA5Q,KACA3B,EAAA,EAEA,OAAA2B,KAAAvD,KAAA4B,IAAAA,IACA,IAAA2B,KAAAnC,WAGAc,OAAA4rB,UAAApJ,OAAAnhB,MAAA,IAGAA,KAAAsN,YAAA,IAIA,OAAA7Q,MAGAuE,MAAA,SAAAwpB,cAAAC,mBAIA,OAHAD,cAAA,MAAAA,eAAAA,cACAC,kBAAA,MAAAA,kBAAAD,cAAAC,kBAEAhuB,KAAAsD,IAAA,WACA,OAAApB,OAAAqC,MAAAvE,KAAA+tB,cAAAC,sBAIAL,KAAA,SAAAznB,OACA,OAAAwZ,OAAA1f,KAAA,SAAAkG,OACA,IAAA3C,KAAAvD,KAAA,OACA4B,EAAA,EACA8X,EAAA1Z,KAAAwC,OAEA,QAAA5D,IAAAsH,OAAA,IAAA3C,KAAAnC,SACA,OAAAmC,KAAA0L,UAIA,GAAA,iBAAA/I,QAAAwmB,aAAAzgB,KAAA/F,SACAie,SAAAF,SAAApY,KAAA3F,SAAA,GAAA,KAAA,GAAAK,eAAA,CAEAL,MAAAhE,OAAA2jB,cAAA3f,OAEA,IACA,KAAAtE,EAAA8X,EAAA9X,IAIA,KAHA2B,KAAAvD,KAAA4B,QAGAR,WACAc,OAAA4rB,UAAApJ,OAAAnhB,MAAA,IACAA,KAAA0L,UAAA/I,OAIA3C,KAAA,EAGA,MAAA4H,KAGA5H,MACAvD,KAAAmU,QAAAka,OAAAnoB,QAEA,KAAAA,MAAAzC,UAAAjB,SAGAksB,YAAA,WACA,IAAAlJ,WAGA,OAAA8H,SAAAttB,KAAAyD,UAAA,SAAAF,MACA,IAAAgP,OAAAvS,KAAA+B,WAEAG,OAAAyD,QAAA3F,KAAAwlB,SAAA,IACAtjB,OAAA4rB,UAAApJ,OAAA1kB,OACAuS,QACAA,OAAAoc,aAAAprB,KAAAvD,QAKAwlB,YAIAtjB,OAAAkB,MACAwrB,SAAA,SACAC,UAAA,UACAN,aAAA,SACAO,YAAA,QACAC,WAAA,eACA,SAAA3qB,KAAA4qB,UACA9sB,OAAAE,GAAAgC,MAAA,SAAAnF,UAOA,IANA,IAAA+D,MACAC,OACAgsB,OAAA/sB,OAAAjD,UACA2E,KAAAqrB,OAAAzsB,OAAA,EACAZ,EAAA,EAEAA,GAAAgC,KAAAhC,IACAoB,MAAApB,IAAAgC,KAAA5D,KAAAA,KAAAuE,OAAA,GACArC,OAAA+sB,OAAArtB,IAAAotB,UAAAhsB,OAIAxC,KAAAgD,MAAAP,IAAAD,MAAAH,OAGA,OAAA7C,KAAA+C,UAAAE,QAGA,IAAAisB,UAAA,IAAA1vB,OAAA,KAAA2iB,KAAA,kBAAA,KAEAgN,UAAA,SAAA5rB,MAKA,IAAA2nB,KAAA3nB,KAAAqI,cAAAwC,YAMA,OAJA8c,MAAAA,KAAAkE,SACAlE,KAAArtB,QAGAqtB,KAAAmE,iBAAA9rB,OAGA+rB,UAAA,IAAA9vB,OAAA8iB,UAAAlW,KAAA,KAAA,KA+FA,SAAAmjB,OAAAhsB,KAAAa,KAAAorB,UACA,IAAAC,MAAAC,SAAAC,SAAA1sB,IAMAuf,MAAAjf,KAAAif,MAqCA,OAnCAgN,SAAAA,UAAAL,UAAA5rB,SAQA,MAFAN,IAAAusB,SAAAI,iBAAAxrB,OAAAorB,SAAAprB,QAEAlC,OAAAqF,SAAAhE,KAAAqI,cAAArI,QACAN,IAAAf,OAAAsgB,MAAAjf,KAAAa,QAQAnD,QAAA4uB,kBAAAX,UAAAjjB,KAAAhJ,MAAAqsB,UAAArjB,KAAA7H,QAGAqrB,MAAAjN,MAAAiN,MACAC,SAAAlN,MAAAkN,SACAC,SAAAnN,MAAAmN,SAGAnN,MAAAkN,SAAAlN,MAAAmN,SAAAnN,MAAAiN,MAAAxsB,IACAA,IAAAusB,SAAAC,MAGAjN,MAAAiN,MAAAA,MACAjN,MAAAkN,SAAAA,SACAlN,MAAAmN,SAAAA,gBAIA/wB,IAAAqE,IAIAA,IAAA,GACAA,IAIA,SAAA6sB,aAAAC,YAAAC,QAGA,OACAntB,IAAA,WACA,IAAAktB,cASA,OAAA/vB,KAAA6C,IAAAmtB,QAAAxsB,MAAAxD,KAAAyD,kBALAzD,KAAA6C,OAzJA,WAIA,SAAAotB,oBAGA,GAAA9K,IAAA,CAIA+K,UAAA1N,MAAA2N,QAAA,+EAEAhL,IAAA3C,MAAA2N,QACA,4HAGAliB,gBAAAlP,YAAAmxB,WAAAnxB,YAAAomB,KAEA,IAAAiL,SAAAvyB,OAAAwxB,iBAAAlK,KACAkL,iBAAA,OAAAD,SAAA/hB,IAGAiiB,sBAAA,KAAAC,mBAAAH,SAAAI,YAIArL,IAAA3C,MAAAiO,MAAA,MACAC,kBAAA,KAAAH,mBAAAH,SAAAK,OAIAE,qBAAA,KAAAJ,mBAAAH,SAAAX,OAIAtK,IAAA3C,MAAAoO,SAAA,WACAC,iBAAA,KAAA1L,IAAA2L,aAAA,WAEA7iB,gBAAAjM,YAAAkuB,WAIA/K,IAAA,MAGA,SAAAoL,mBAAAQ,SACA,OAAAjsB,KAAAksB,MAAAC,WAAAF,UAGA,IAAAV,iBAAAM,qBAAAE,iBAAAH,kBACAJ,sBACAJ,UAAAvzB,SAAA6B,cAAA,OACA2mB,IAAAxoB,SAAA6B,cAAA,OAGA2mB,IAAA3C,QAMA2C,IAAA3C,MAAA0O,eAAA,cACA/L,IAAAa,WAAA,GAAAxD,MAAA0O,eAAA,GACAjwB,QAAAkwB,gBAAA,gBAAAhM,IAAA3C,MAAA0O,eAEAhvB,OAAAgC,OAAAjD,SACAmwB,kBAAA,WAEA,OADAnB,oBACAU,sBAEAd,eAAA,WAEA,OADAI,oBACAS,mBAEAW,cAAA,WAEA,OADApB,oBACAI,kBAEAiB,mBAAA,WAEA,OADArB,oBACAK,uBAEAiB,cAAA,WAEA,OADAtB,oBACAY,qBArFA,GAoKA,IAKAW,aAAA,4BACAC,YAAA,MACAC,SAAAd,SAAA,WAAAe,WAAA,SAAAlP,QAAA,SACAmP,oBACAC,cAAA,IACAC,WAAA,OAGAC,aAAA,SAAA,MAAA,MACAC,WAAAr1B,SAAA6B,cAAA,OAAAgkB,MAwBA,SAAAyP,cAAA7tB,MACA,IAAAnB,IAAAf,OAAAgwB,SAAA9tB,MAIA,OAHAnB,MACAA,IAAAf,OAAAgwB,SAAA9tB,MAxBA,SAAAA,MAGA,GAAAA,QAAA4tB,WACA,OAAA5tB,KAOA,IAHA,IAAA+tB,QAAA/tB,KAAA,GAAAgc,cAAAhc,KAAA9D,MAAA,GACAsB,EAAAmwB,YAAAvvB,OAEAZ,KAEA,IADAwC,KAAA2tB,YAAAnwB,GAAAuwB,WACAH,WACA,OAAA5tB,KAUAguB,CAAAhuB,OAAAA,MAEAnB,IAGA,SAAAovB,kBAAA9uB,KAAA2C,MAAAosB,UAIA,IAAAvsB,QAAAsc,QAAAxW,KAAA3F,OACA,OAAAH,QAGAjB,KAAAytB,IAAA,EAAAxsB,QAAA,IAAAusB,UAAA,KAAAvsB,QAAA,IAAA,MACAG,MAGA,SAAAssB,mBAAAjvB,KAAAkvB,UAAAC,IAAAC,YAAAC,OAAAC,aACA,IAAAjxB,EAAA,UAAA6wB,UAAA,EAAA,EACAK,MAAA,EACAC,MAAA,EAGA,GAAAL,OAAAC,YAAA,SAAA,WACA,OAAA,EAGA,KAAA/wB,EAAA,EAAAA,GAAA,EAGA,WAAA8wB,MACAK,OAAA7wB,OAAAwgB,IAAAnf,KAAAmvB,IAAApQ,UAAA1gB,IAAA,EAAAgxB,SAIAD,aAmBA,YAAAD,MACAK,OAAA7wB,OAAAwgB,IAAAnf,KAAA,UAAA+e,UAAA1gB,IAAA,EAAAgxB,SAIA,WAAAF,MACAK,OAAA7wB,OAAAwgB,IAAAnf,KAAA,SAAA+e,UAAA1gB,GAAA,SAAA,EAAAgxB,WAtBAG,OAAA7wB,OAAAwgB,IAAAnf,KAAA,UAAA+e,UAAA1gB,IAAA,EAAAgxB,QAGA,YAAAF,IACAK,OAAA7wB,OAAAwgB,IAAAnf,KAAA,SAAA+e,UAAA1gB,GAAA,SAAA,EAAAgxB,QAIAE,OAAA5wB,OAAAwgB,IAAAnf,KAAA,SAAA+e,UAAA1gB,GAAA,SAAA,EAAAgxB,SAiCA,OAbAD,aAAAE,aAAA,IAIAE,OAAAjuB,KAAAytB,IAAA,EAAAztB,KAAAkuB,KACAzvB,KAAA,SAAAkvB,UAAA,GAAArS,cAAAqS,UAAAnyB,MAAA,IACAuyB,YACAE,MACAD,MACA,MAIAC,MAGA,SAAAE,iBAAA1vB,KAAAkvB,UAAAK,OAGA,IAAAF,OAAAzD,UAAA5rB,MACA8M,IAAAkf,OAAAhsB,KAAAkvB,UAAAG,QACAD,YAAA,eAAAzwB,OAAAwgB,IAAAnf,KAAA,aAAA,EAAAqvB,QACAM,iBAAAP,YAIA,GAAAzD,UAAAjjB,KAAAoE,KAAA,CACA,IAAAyiB,MACA,OAAAziB,IAEAA,IAAA,OAyBA,OApBA6iB,iBAAAA,mBACAjyB,QAAAmwB,qBAAA/gB,MAAA9M,KAAAif,MAAAiQ,aAMA,SAAApiB,MACA4gB,WAAA5gB,MAAA,WAAAnO,OAAAwgB,IAAAnf,KAAA,WAAA,EAAAqvB,WAEAviB,IAAA9M,KAAA,SAAAkvB,UAAA,GAAArS,cAAAqS,UAAAnyB,MAAA,IAGA4yB,kBAAA,IAIA7iB,IAAA4gB,WAAA5gB,MAAA,GAIAmiB,mBACAjvB,KACAkvB,UACAK,QAAAH,YAAA,SAAA,WACAO,iBACAN,OAGAviB,KAEA,KA2RA,SAAA8iB,MAAA5vB,KAAAY,QAAA4c,KAAAhd,IAAAqvB,QACA,OAAA,IAAAD,MAAA1wB,UAAAJ,KAAAkB,KAAAY,QAAA4c,KAAAhd,IAAAqvB,QAzRAlxB,OAAAgC,QAIAmvB,UACAC,SACAzwB,IAAA,SAAAU,KAAAisB,UACA,GAAAA,SAAA,CAGA,IAAAvsB,IAAAssB,OAAAhsB,KAAA,WACA,MAAA,KAAAN,IAAA,IAAAA,QAOAqgB,WACAiQ,yBAAA,EACAC,aAAA,EACAC,aAAA,EACAC,UAAA,EACAC,YAAA,EACA7B,YAAA,EACA8B,YAAA,EACAN,SAAA,EACAO,OAAA,EACAC,SAAA,EACAC,QAAA,EACAC,QAAA,EACAC,MAAA,GAKA/B,YAGA1P,MAAA,SAAAjf,KAAAa,KAAA8B,MAAA4sB,OAGA,GAAAvvB,MAAA,IAAAA,KAAAnC,UAAA,IAAAmC,KAAAnC,UAAAmC,KAAAif,MAAA,CAKA,IAAAvf,IAAAxE,KAAAqjB,MACAoS,SAAA7T,UAAAjc,MACA+vB,aAAA1C,YAAAxlB,KAAA7H,MACAoe,MAAAjf,KAAAif,MAaA,GARA2R,eACA/vB,KAAA6tB,cAAAiC,WAIApS,MAAA5f,OAAAmxB,SAAAjvB,OAAAlC,OAAAmxB,SAAAa,eAGAt1B,IAAAsH,MAwCA,OAAA4b,OAAA,QAAAA,YACAljB,KAAAqE,IAAA6e,MAAAjf,IAAAU,MAAA,EAAAuvB,QAEA7vB,IAIAuf,MAAApe,MA3CA,YAHA3F,YAAAyH,SAGAjD,IAAAof,QAAAxW,KAAA3F,SAAAjD,IAAA,KACAiD,MAAA2c,UAAAtf,KAAAa,KAAAnB,KAGAxE,KAAA,UAIA,MAAAyH,OAAAA,OAAAA,QAKA,WAAAzH,OACAyH,OAAAjD,KAAAA,IAAA,KAAAf,OAAAohB,UAAA4Q,UAAA,GAAA,OAIAjzB,QAAAkwB,iBAAA,KAAAjrB,OAAA,IAAA9B,KAAA3D,QAAA,gBACA+hB,MAAApe,MAAA,WAIA0d,OAAA,QAAAA,YACAljB,KAAAsH,MAAA4b,MAAAjB,IAAAtd,KAAA2C,MAAA4sB,UAEAqB,aACA3R,MAAA4R,YAAAhwB,KAAA8B,OAEAsc,MAAApe,MAAA8B,UAkBAwc,IAAA,SAAAnf,KAAAa,KAAA0uB,MAAAF,QACA,IAAAviB,IAAAvN,IAAAgf,MACAoS,SAAA7T,UAAAjc,MA6BA,OA5BAqtB,YAAAxlB,KAAA7H,QAMAA,KAAA6tB,cAAAiC,YAIApS,MAAA5f,OAAAmxB,SAAAjvB,OAAAlC,OAAAmxB,SAAAa,YAGA,QAAApS,QACAzR,IAAAyR,MAAAjf,IAAAU,MAAA,EAAAuvB,aAIAl0B,IAAAyR,MACAA,IAAAkf,OAAAhsB,KAAAa,KAAAwuB,SAIA,WAAAviB,KAAAjM,QAAAwtB,qBACAvhB,IAAAuhB,mBAAAxtB,OAIA,KAAA0uB,OAAAA,OACAhwB,IAAAmuB,WAAA5gB,MACA,IAAAyiB,OAAAuB,SAAAvxB,KAAAA,KAAA,EAAAuN,KAGAA,OAIAnO,OAAAkB,MAAA,SAAA,SAAA,SAAAxB,EAAA6wB,WACAvwB,OAAAmxB,SAAAZ,YACA5vB,IAAA,SAAAU,KAAAisB,SAAAsD,OACA,GAAAtD,SAIA,OAAAgC,aAAAvlB,KAAA/J,OAAAwgB,IAAAnf,KAAA,aAQAA,KAAA+wB,iBAAA9xB,QAAAe,KAAAgxB,wBAAA9E,MAIAwD,iBAAA1vB,KAAAkvB,UAAAK,OAHAnQ,KAAApf,KAAAmuB,QAAA,WACA,OAAAuB,iBAAA1vB,KAAAkvB,UAAAK,UAMAjS,IAAA,SAAAtd,KAAA2C,MAAA4sB,OACA,IAAA/sB,QACA6sB,OAAAzD,UAAA5rB,MACAovB,YAAA,eAAAzwB,OAAAwgB,IAAAnf,KAAA,aAAA,EAAAqvB,QACAN,SAAAQ,OAAAN,mBACAjvB,KACAkvB,UACAK,MACAH,YACAC,QAsBA,OAjBAD,aAAA1xB,QAAAswB,kBAAAqB,OAAAhC,WACA0B,UAAAxtB,KAAAkuB,KACAzvB,KAAA,SAAAkvB,UAAA,GAAArS,cAAAqS,UAAAnyB,MAAA,IACA2wB,WAAA2B,OAAAH,YACAD,mBAAAjvB,KAAAkvB,UAAA,UAAA,EAAAG,QACA,KAKAN,WAAAvsB,QAAAsc,QAAAxW,KAAA3F,SACA,QAAAH,QAAA,IAAA,QAEAxC,KAAAif,MAAAiQ,WAAAvsB,MACAA,MAAAhE,OAAAwgB,IAAAnf,KAAAkvB,YAGAJ,kBAAA9uB,EAAA2C,MAAAosB,cAKApwB,OAAAmxB,SAAA7C,WAAAV,aAAA7uB,QAAAqwB,mBACA,SAAA/tB,KAAAisB,UACA,GAAAA,SACA,OAAAyB,WAAA1B,OAAAhsB,KAAA,gBACAA,KAAAgxB,wBAAAC,KACA7R,KAAApf,MAAAitB,WAAA,GAAA,WACA,OAAAjtB,KAAAgxB,wBAAAC,QAEA,OAMAtyB,OAAAkB,MACAqxB,OAAA,GACAC,QAAA,GACAC,OAAA,SACA,SAAAC,OAAAC,QACA3yB,OAAAmxB,SAAAuB,OAAAC,SACAC,OAAA,SAAA5uB,OAOA,IANA,IAAAtE,EAAA,EACAmzB,YAGAC,MAAA,iBAAA9uB,MAAAA,MAAAI,MAAA,MAAAJ,OAEAtE,EAAA,EAAAA,IACAmzB,SAAAH,OAAAtS,UAAA1gB,GAAAizB,QACAG,MAAApzB,IAAAozB,MAAApzB,EAAA,IAAAozB,MAAA,GAGA,OAAAD,WAIA,WAAAH,SACA1yB,OAAAmxB,SAAAuB,OAAAC,QAAAhU,IAAAwR,qBAIAnwB,OAAAE,GAAA8B,QACAwe,IAAA,SAAAte,KAAA8B,OACA,OAAAwZ,OAAA1f,KAAA,SAAAuD,KAAAa,KAAA8B,OACA,IAAA0sB,OAAA/uB,IACAP,OACA1B,EAAA,EAEA,GAAA+C,MAAAC,QAAAR,MAAA,CAIA,IAHAwuB,OAAAzD,UAAA5rB,MACAM,IAAAO,KAAA5B,OAEAZ,EAAAiC,IAAAjC,IACA0B,IAAAc,KAAAxC,IAAAM,OAAAwgB,IAAAnf,KAAAa,KAAAxC,IAAA,EAAAgxB,QAGA,OAAAtvB,IAGA,YAAA1E,IAAAsH,MACAhE,OAAAsgB,MAAAjf,KAAAa,KAAA8B,OACAhE,OAAAwgB,IAAAnf,KAAAa,OACAA,KAAA8B,MAAAzC,UAAAjB,OAAA,MAQAN,OAAAixB,MAAAA,MAEAA,MAAA1wB,WACAE,YAAAwwB,MACA9wB,KAAA,SAAAkB,KAAAY,QAAA4c,KAAAhd,IAAAqvB,OAAA/P,MACArjB,KAAAuD,KAAAA,KACAvD,KAAA+gB,KAAAA,KACA/gB,KAAAozB,OAAAA,QAAAlxB,OAAAkxB,OAAA3O,SACAzkB,KAAAmE,QAAAA,QACAnE,KAAA9B,MAAA8B,KAAAoqB,IAAApqB,KAAAsN,MACAtN,KAAA+D,IAAAA,IACA/D,KAAAqjB,KAAAA,OAAAnhB,OAAAohB,UAAAvC,MAAA,GAAA,OAEAzT,IAAA,WACA,IAAAwU,MAAAqR,MAAA8B,UAAAj1B,KAAA+gB,MAEA,OAAAe,OAAAA,MAAAjf,IACAif,MAAAjf,IAAA7C,MACAmzB,MAAA8B,UAAAxQ,SAAA5hB,IAAA7C,OAEAk1B,IAAA,SAAAC,SACA,IAAAC,MACAtT,MAAAqR,MAAA8B,UAAAj1B,KAAA+gB,MAoBA,OAlBA/gB,KAAAmE,QAAAkxB,SACAr1B,KAAAs1B,IAAAF,MAAAlzB,OAAAkxB,OAAApzB,KAAAozB,QACA+B,QAAAn1B,KAAAmE,QAAAkxB,SAAAF,QAAA,EAAA,EAAAn1B,KAAAmE,QAAAkxB,UAGAr1B,KAAAs1B,IAAAF,MAAAD,QAEAn1B,KAAAoqB,KAAApqB,KAAA+D,IAAA/D,KAAA9B,OAAAk3B,MAAAp1B,KAAA9B,MAEA8B,KAAAmE,QAAAoxB,MACAv1B,KAAAmE,QAAAoxB,KAAAv0B,KAAAhB,KAAAuD,KAAAvD,KAAAoqB,IAAApqB,MAGA8hB,OAAAA,MAAAjB,IACAiB,MAAAjB,IAAA7gB,MAEAmzB,MAAA8B,UAAAxQ,SAAA5D,IAAA7gB,MAEAA,OAIAmzB,MAAA1wB,UAAAJ,KAAAI,UAAA0wB,MAAA1wB,UAEA0wB,MAAA8B,WACAxQ,UACA5hB,IAAA,SAAAkgB,OACA,IAAAjR,OAIA,OAAA,IAAAiR,MAAAxf,KAAAnC,UACA,MAAA2hB,MAAAxf,KAAAwf,MAAAhC,OAAA,MAAAgC,MAAAxf,KAAAif,MAAAO,MAAAhC,MACAgC,MAAAxf,KAAAwf,MAAAhC,OAOAjP,OAAA5P,OAAAwgB,IAAAK,MAAAxf,KAAAwf,MAAAhC,KAAA,MAGA,SAAAjP,OAAAA,OAAA,GAEA+O,IAAA,SAAAkC,OAKA7gB,OAAAszB,GAAAD,KAAAxS,MAAAhC,MACA7e,OAAAszB,GAAAD,KAAAxS,MAAAhC,MAAAgC,OACA,IAAAA,MAAAxf,KAAAnC,UACA,MAAA2hB,MAAAxf,KAAAif,MAAAtgB,OAAAgwB,SAAAnP,MAAAhC,SACA7e,OAAAmxB,SAAAtQ,MAAAhC,MAGAgC,MAAAxf,KAAAwf,MAAAhC,MAAAgC,MAAAqH,IAFAloB,OAAAsgB,MAAAO,MAAAxf,KAAAwf,MAAAhC,KAAAgC,MAAAqH,IAAArH,MAAAM,SAUA8P,MAAA8B,UAAAQ,UAAAtC,MAAA8B,UAAAS,YACA7U,IAAA,SAAAkC,OACAA,MAAAxf,KAAAnC,UAAA2hB,MAAAxf,KAAAxB,aACAghB,MAAAxf,KAAAwf,MAAAhC,MAAAgC,MAAAqH,OAKAloB,OAAAkxB,QACAuC,OAAA,SAAAC,GACA,OAAAA,GAEAC,MAAA,SAAAD,GACA,MAAA,GAAA9wB,KAAAgxB,IAAAF,EAAA9wB,KAAAixB,IAAA,GAEAtR,SAAA,SAGAviB,OAAAszB,GAAArC,MAAA1wB,UAAAJ,KAGAH,OAAAszB,GAAAD,QAKA,IACAS,MAAAC,WACAC,SAAA,yBACAC,KAAA,cAEA,SAAAC,WACAH,cACA,IAAAt5B,SAAA05B,QAAAx4B,OAAAy4B,sBACAz4B,OAAAy4B,sBAAAF,UAEAv4B,OAAAugB,WAAAgY,SAAAl0B,OAAAszB,GAAAe,UAGAr0B,OAAAszB,GAAAgB,QAKA,SAAAC,cAIA,OAHA54B,OAAAugB,WAAA,WACA4X,WAAAp3B,IAEAo3B,MAAAxuB,KAAA4iB,MAIA,SAAAsM,MAAAj4B,KAAAk4B,cACA,IAAAzK,MACAtqB,EAAA,EACAsL,OAAA0pB,OAAAn4B,MAKA,IADAk4B,aAAAA,aAAA,EAAA,EACA/0B,EAAA,EAAAA,GAAA,EAAA+0B,aAEAzpB,MAAA,UADAgf,MAAA5J,UAAA1gB,KACAsL,MAAA,UAAAgf,OAAAztB,KAOA,OAJAk4B,eACAzpB,MAAAomB,QAAApmB,MAAAuiB,MAAAhxB,MAGAyO,MAGA,SAAA2pB,YAAA3wB,MAAA6a,KAAA+V,WAKA,IAJA,IAAA/T,MACAwK,YAAAwJ,UAAAC,SAAAjW,WAAAxgB,OAAAw2B,UAAAC,SAAA,MACApd,MAAA,EACApX,OAAA+qB,WAAA/qB,OACAoX,MAAApX,OAAAoX,QACA,GAAAmJ,MAAAwK,WAAA3T,OAAA5Y,KAAA81B,UAAA/V,KAAA7a,OAGA,OAAA6c,MAsNA,SAAAgU,UAAAxzB,KAAA0zB,WAAA9yB,SACA,IAAA2N,OACAolB,QACAtd,MAAA,EACApX,OAAAu0B,UAAAI,WAAA30B,OACAma,SAAAza,OAAAoa,WAAAI,OAAA,kBAGA8Z,KAAAjzB,OAEAizB,KAAA,WACA,GAAAU,QACA,OAAA,EAYA,IAVA,IAAAE,YAAApB,OAAAS,cACAjY,UAAA1Z,KAAAytB,IAAA,EAAAuE,UAAAO,UAAAP,UAAAzB,SAAA+B,aAKAjC,QAAA,GADA3W,UAAAsY,UAAAzB,UAAA,GAEAzb,MAAA,EACApX,OAAAs0B,UAAAQ,OAAA90B,OAEAoX,MAAApX,OAAAoX,QACAkd,UAAAQ,OAAA1d,OAAAsb,IAAAC,SAMA,OAHAxY,SAAAkB,WAAAta,MAAAuzB,UAAA3B,QAAA3W,YAGA2W,QAAA,GAAA3yB,OACAgc,WAIAhc,QACAma,SAAAkB,WAAAta,MAAAuzB,UAAA,EAAA,IAIAna,SAAAmB,YAAAva,MAAAuzB,aACA,IAEAA,UAAAna,SAAAzB,SACA3X,KAAAA,KACAwmB,MAAA7nB,OAAAgC,UAAA+yB,YACAM,KAAAr1B,OAAAgC,QAAA,GACAszB,iBACApE,OAAAlxB,OAAAkxB,OAAA3O,UACAtgB,SACAszB,mBAAAR,WACAS,gBAAAvzB,QACAkzB,UAAArB,OAAAS,cACApB,SAAAlxB,QAAAkxB,SACAiC,UACAT,YAAA,SAAA9V,KAAAhd,KACA,IAAAgf,MAAA7gB,OAAAixB,MAAA5vB,KAAAuzB,UAAAS,KAAAxW,KAAAhd,IACA+yB,UAAAS,KAAAC,cAAAzW,OAAA+V,UAAAS,KAAAnE,QAEA,OADA0D,UAAAQ,OAAA92B,KAAAuiB,OACAA,OAEAxlB,KAAA,SAAAo6B,SACA,IAAA/d,MAAA,EAIApX,OAAAm1B,QAAAb,UAAAQ,OAAA90B,OAAA,EACA,GAAA00B,QACA,OAAAl3B,KAGA,IADAk3B,SAAA,EACAtd,MAAApX,OAAAoX,QACAkd,UAAAQ,OAAA1d,OAAAsb,IAAA,GAUA,OANAyC,SACAhb,SAAAkB,WAAAta,MAAAuzB,UAAA,EAAA,IACAna,SAAAmB,YAAAva,MAAAuzB,UAAAa,WAEAhb,SAAAuB,WAAA3a,MAAAuzB,UAAAa,UAEA33B,QAGA+pB,MAAA+M,UAAA/M,MAIA,KA/HA,SAAAA,MAAAyN,eACA,IAAA5d,MAAAxV,KAAAgvB,OAAAltB,MAAA4b,MAGA,IAAAlI,SAAAmQ,MAeA,GAbAqJ,OAAAoE,cADApzB,KAAAic,UAAAzG,QAEA1T,MAAA6jB,MAAAnQ,OACAjV,MAAAC,QAAAsB,SACAktB,OAAAltB,MAAA,GACAA,MAAA6jB,MAAAnQ,OAAA1T,MAAA,IAGA0T,QAAAxV,OACA2lB,MAAA3lB,MAAA8B,aACA6jB,MAAAnQ,SAGAkI,MAAA5f,OAAAmxB,SAAAjvB,QACA,WAAA0d,MAMA,IAAAlI,SALA1T,MAAA4b,MAAAgT,OAAA5uB,cACA6jB,MAAA3lB,MAIA8B,MACA0T,SAAAmQ,QACAA,MAAAnQ,OAAA1T,MAAA0T,OACA4d,cAAA5d,OAAAwZ,aAIAoE,cAAApzB,MAAAgvB,OA6FAwE,CAAA7N,MAAA+M,UAAAS,KAAAC,eAEA5d,MAAApX,OAAAoX,QAEA,GADA9H,OAAAilB,UAAAI,WAAAvd,OAAA5Y,KAAA81B,UAAAvzB,KAAAwmB,MAAA+M,UAAAS,MAMA,OAJAr2B,WAAA4Q,OAAAvU,QACA2E,OAAA6f,YAAA+U,UAAAvzB,KAAAuzB,UAAAS,KAAA1b,OAAAte,KACAuU,OAAAvU,KAAAs6B,KAAA/lB,SAEAA,OAyBA,OArBA5P,OAAAoB,IAAAymB,MAAA8M,YAAAC,WAEA51B,WAAA41B,UAAAS,KAAAr5B,QACA44B,UAAAS,KAAAr5B,MAAA8C,KAAAuC,KAAAuzB,WAIAA,UACA5Z,SAAA4Z,UAAAS,KAAAra,UACAvV,KAAAmvB,UAAAS,KAAA5vB,KAAAmvB,UAAAS,KAAAO,UACA3c,KAAA2b,UAAAS,KAAApc,MACAuB,OAAAoa,UAAAS,KAAA7a,QAEAxa,OAAAszB,GAAAuC,MACA71B,OAAAgC,OAAAsyB,MACAjzB,KAAAA,KACAy0B,KAAAlB,UACAjb,MAAAib,UAAAS,KAAA1b,SAIAib,UAGA50B,OAAA60B,UAAA70B,OAAAgC,OAAA6yB,WAEAC,UACAiB,KAAA,SAAAlX,KAAA7a,OACA,IAAA6c,MAAA/iB,KAAA62B,YAAA9V,KAAA7a,OAEA,OADA2c,UAAAE,MAAAxf,KAAAwd,KAAAsB,QAAAxW,KAAA3F,OAAA6c,OACAA,SAIAmV,QAAA,SAAAnO,MAAA1mB,UACAnC,WAAA6oB,QACA1mB,SAAA0mB,MACAA,OAAA,MAEAA,MAAAA,MAAAve,MAAAgP,eAOA,IAJA,IAAAuG,KACAnH,MAAA,EACApX,OAAAunB,MAAAvnB,OAEAoX,MAAApX,OAAAoX,QACAmH,KAAAgJ,MAAAnQ,OACAmd,UAAAC,SAAAjW,MAAAgW,UAAAC,SAAAjW,UACAgW,UAAAC,SAAAjW,MAAA9Q,QAAA5M,WAIA8zB,YA3WA,SAAA5zB,KAAAwmB,MAAAwN,MACA,IAAAxW,KAAA7a,MAAA6d,OAAAjC,MAAAqW,QAAAC,UAAAC,eAAA5V,QACA6V,MAAA,UAAAvO,OAAA,WAAAA,MACAiO,KAAAh4B,KACAusB,QACA/J,MAAAjf,KAAAif,MACA6T,OAAA9yB,KAAAnC,UAAAmhB,mBAAAhf,MACAg1B,SAAAtX,SAAApe,IAAAU,KAAA,UA6BA,IAAAwd,QA1BAwW,KAAA1b,QAEA,OADAiG,MAAA5f,OAAA6f,YAAAxe,KAAA,OACAi1B,WACA1W,MAAA0W,SAAA,EACAL,QAAArW,MAAA3N,MAAA4H,KACA+F,MAAA3N,MAAA4H,KAAA,WACA+F,MAAA0W,UACAL,YAIArW,MAAA0W,WAEAR,KAAAtb,OAAA,WAGAsb,KAAAtb,OAAA,WACAoF,MAAA0W,WACAt2B,OAAA2Z,MAAAtY,KAAA,MAAAf,QACAsf,MAAA3N,MAAA4H,YAOAgO,MAEA,GADA7jB,MAAA6jB,MAAAhJ,MACAmV,SAAAjqB,KAAA/F,OAAA,CAGA,UAFA6jB,MAAAhJ,MACAgD,OAAAA,QAAA,WAAA7d,MACAA,SAAAmwB,OAAA,OAAA,QAAA,CAIA,GAAA,SAAAnwB,QAAAqyB,eAAA35B,IAAA25B,SAAAxX,MAKA,SAJAsV,QAAA,EAOA9J,KAAAxL,MAAAwX,UAAAA,SAAAxX,OAAA7e,OAAAsgB,MAAAjf,KAAAwd,MAMA,IADAqX,WAAAl2B,OAAAoD,cAAAykB,UACA7nB,OAAAoD,cAAAinB,MA8DA,IAAAxL,QAzDAuX,OAAA,IAAA/0B,KAAAnC,WAMAm2B,KAAAkB,UAAAjW,MAAAiW,SAAAjW,MAAAkW,UAAAlW,MAAAmW,WAIA,OADAN,eAAAE,UAAAA,SAAA9V,WAEA4V,eAAApX,SAAApe,IAAAU,KAAA,YAGA,UADAkf,QAAAvgB,OAAAwgB,IAAAnf,KAAA,cAEA80B,eACA5V,QAAA4V,gBAIA1U,UAAApgB,OAAA,GACA80B,eAAA90B,KAAAif,MAAAC,SAAA4V,eACA5V,QAAAvgB,OAAAwgB,IAAAnf,KAAA,WACAogB,UAAApgB,UAKA,WAAAkf,SAAA,iBAAAA,SAAA,MAAA4V,iBACA,SAAAn2B,OAAAwgB,IAAAnf,KAAA,WAGA60B,YACAJ,KAAArwB,KAAA,WACA6a,MAAAC,QAAA4V,iBAEA,MAAAA,iBACA5V,QAAAD,MAAAC,QACA4V,eAAA,SAAA5V,QAAA,GAAAA,UAGAD,MAAAC,QAAA,iBAKA8U,KAAAkB,WACAjW,MAAAiW,SAAA,SACAT,KAAAtb,OAAA,WACA8F,MAAAiW,SAAAlB,KAAAkB,SAAA,GACAjW,MAAAkW,UAAAnB,KAAAkB,SAAA,GACAjW,MAAAmW,UAAApB,KAAAkB,SAAA,MAKAL,WAAA,EACA7L,KAGA6L,YACAG,SACA,WAAAA,WACAlC,OAAAkC,SAAAlC,QAGAkC,SAAAtX,SAAAvB,OAAAnc,KAAA,UAAAkf,QAAA4V,iBAIAtU,SACAwU,SAAAlC,QAAAA,QAIAA,QACA1S,UAAApgB,OAAA,GAKAy0B,KAAArwB,KAAA,WASA,IAAAoZ,QAJAsV,QACA1S,UAAApgB,OAEA0d,SAAA/E,OAAA3Y,KAAA,UACAgpB,KACArqB,OAAAsgB,MAAAjf,KAAAwd,KAAAwL,KAAAxL,UAMAqX,UAAAvB,YAAAR,OAAAkC,SAAAxX,MAAA,EAAAA,KAAAiX,MACAjX,QAAAwX,WACAA,SAAAxX,MAAAqX,UAAAl6B,MACAm4B,SACA+B,UAAAr0B,IAAAq0B,UAAAl6B,MACAk6B,UAAAl6B,MAAA,MAuMA06B,UAAA,SAAAv1B,SAAAirB,SACAA,QACAyI,UAAAI,WAAAlnB,QAAA5M,UAEA0zB,UAAAI,WAAA32B,KAAA6C,aAKAnB,OAAA22B,MAAA,SAAAA,MAAAzF,OAAAhxB,IACA,IAAA02B,IAAAD,OAAA,iBAAAA,MAAA32B,OAAAgC,UAAA20B,QACAf,SAAA11B,KAAAA,IAAAgxB,QACAlyB,WAAA23B,QAAAA,MACAxD,SAAAwD,MACAzF,OAAAhxB,IAAAgxB,QAAAA,SAAAlyB,WAAAkyB,SAAAA,QAoCA,OAhCAlxB,OAAAszB,GAAA1O,IACAgS,IAAAzD,SAAA,EAGA,iBAAAyD,IAAAzD,WACAyD,IAAAzD,YAAAnzB,OAAAszB,GAAAuD,OACAD,IAAAzD,SAAAnzB,OAAAszB,GAAAuD,OAAAD,IAAAzD,UAGAyD,IAAAzD,SAAAnzB,OAAAszB,GAAAuD,OAAAtU,UAMA,MAAAqU,IAAAjd,QAAA,IAAAid,IAAAjd,QACAid,IAAAjd,MAAA,MAIAid,IAAAlW,IAAAkW,IAAAhB,SAEAgB,IAAAhB,SAAA,WACA52B,WAAA43B,IAAAlW,MACAkW,IAAAlW,IAAA5hB,KAAAhB,MAGA84B,IAAAjd,OACA3Z,OAAA0f,QAAA5hB,KAAA84B,IAAAjd,QAIAid,KAGA52B,OAAAE,GAAA8B,QACA80B,OAAA,SAAAH,MAAAI,GAAA7F,OAAA/vB,UAGA,OAAArD,KAAA2O,OAAA4T,oBAAAG,IAAA,UAAA,GAAAkB,OAGA7f,MAAAm1B,SAAA5F,QAAA2F,IAAAJ,MAAAzF,OAAA/vB,WAEA61B,QAAA,SAAAnY,KAAA8X,MAAAzF,OAAA/vB,UACA,IAAA8Q,MAAAjS,OAAAoD,cAAAyb,MACAoY,OAAAj3B,OAAA22B,MAAAA,MAAAzF,OAAA/vB,UACA+1B,YAAA,WAGA,IAAApB,KAAAjB,UAAA/2B,KAAAkC,OAAAgC,UAAA6c,MAAAoY,SAGAhlB,OAAA8M,SAAApe,IAAA7C,KAAA,YACAg4B,KAAAz6B,MAAA,IAKA,OAFA67B,YAAAC,OAAAD,YAEAjlB,QAAA,IAAAglB,OAAAtd,MACA7b,KAAAoD,KAAAg2B,aACAp5B,KAAA6b,MAAAsd,OAAAtd,MAAAud,cAEA77B,KAAA,SAAAkB,KAAAwjB,WAAA0V,SACA,IAAA2B,UAAA,SAAAxX,OACA,IAAAvkB,KAAAukB,MAAAvkB,YACAukB,MAAAvkB,KACAA,KAAAo6B,UAYA,MATA,iBAAAl5B,OACAk5B,QAAA1V,WACAA,WAAAxjB,KACAA,UAAAG,GAEAqjB,aAAA,IAAAxjB,MACAuB,KAAA6b,MAAApd,MAAA,SAGAuB,KAAAoD,KAAA,WACA,IAAAwe,SAAA,EACAhI,MAAA,MAAAnb,MAAAA,KAAA,aACA86B,OAAAr3B,OAAAq3B,OACAzY,KAAAG,SAAApe,IAAA7C,MAEA,GAAA4Z,MACAkH,KAAAlH,QAAAkH,KAAAlH,OAAArc,MACA+7B,UAAAxY,KAAAlH,aAGA,IAAAA,SAAAkH,KACAA,KAAAlH,QAAAkH,KAAAlH,OAAArc,MAAA44B,KAAAlqB,KAAA2N,QACA0f,UAAAxY,KAAAlH,QAKA,IAAAA,MAAA2f,OAAA/2B,OAAAoX,SACA2f,OAAA3f,OAAArW,OAAAvD,MACA,MAAAvB,MAAA86B,OAAA3f,OAAAiC,QAAApd,OAEA86B,OAAA3f,OAAAoe,KAAAz6B,KAAAo6B,SACA/V,SAAA,EACA2X,OAAAt1B,OAAA2V,MAAA,KAOAgI,SAAA+V,SACAz1B,OAAA0f,QAAA5hB,KAAAvB,SAIA46B,OAAA,SAAA56B,MAIA,OAHA,IAAAA,OACAA,KAAAA,MAAA,MAEAuB,KAAAoD,KAAA,WACA,IAAAwW,MACAkH,KAAAG,SAAApe,IAAA7C,MACA6b,MAAAiF,KAAAriB,KAAA,SACAqjB,MAAAhB,KAAAriB,KAAA,cACA86B,OAAAr3B,OAAAq3B,OACA/2B,OAAAqZ,MAAAA,MAAArZ,OAAA,EAaA,IAVAse,KAAAuY,QAAA,EAGAn3B,OAAA2Z,MAAA7b,KAAAvB,SAEAqjB,OAAAA,MAAAvkB,MACAukB,MAAAvkB,KAAAyD,KAAAhB,MAAA,GAIA4Z,MAAA2f,OAAA/2B,OAAAoX,SACA2f,OAAA3f,OAAArW,OAAAvD,MAAAu5B,OAAA3f,OAAAiC,QAAApd,OACA86B,OAAA3f,OAAAoe,KAAAz6B,MAAA,GACAg8B,OAAAt1B,OAAA2V,MAAA,IAKA,IAAAA,MAAA,EAAAA,MAAApX,OAAAoX,QACAiC,MAAAjC,QAAAiC,MAAAjC,OAAAyf,QACAxd,MAAAjC,OAAAyf,OAAAr4B,KAAAhB,aAKA8gB,KAAAuY,YAKAn3B,OAAAkB,MAAA,SAAA,OAAA,QAAA,SAAAxB,EAAAwC,MACA,IAAAo1B,MAAAt3B,OAAAE,GAAAgC,MACAlC,OAAAE,GAAAgC,MAAA,SAAAy0B,MAAAzF,OAAA/vB,UACA,OAAA,MAAAw1B,OAAA,kBAAAA,MACAW,MAAAh2B,MAAAxD,KAAAyD,WACAzD,KAAAk5B,QAAAxC,MAAAtyB,MAAA,GAAAy0B,MAAAzF,OAAA/vB,aAKAnB,OAAAkB,MACAq2B,UAAA/C,MAAA,QACAgD,QAAAhD,MAAA,QACAiD,YAAAjD,MAAA,UACAkD,QAAAtG,QAAA,QACAuG,SAAAvG,QAAA,QACAwG,YAAAxG,QAAA,WACA,SAAAlvB,KAAA2lB,OACA7nB,OAAAE,GAAAgC,MAAA,SAAAy0B,MAAAzF,OAAA/vB,UACA,OAAArD,KAAAk5B,QAAAnP,MAAA8O,MAAAzF,OAAA/vB,aAIAnB,OAAAq3B,UACAr3B,OAAAszB,GAAAgB,KAAA,WACA,IAAAuB,MACAn2B,EAAA,EACA23B,OAAAr3B,OAAAq3B,OAIA,IAFAvD,MAAAxuB,KAAA4iB,MAEAxoB,EAAA23B,OAAA/2B,OAAAZ,KACAm2B,MAAAwB,OAAA33B,OAGA23B,OAAA33B,KAAAm2B,OACAwB,OAAAt1B,OAAArC,IAAA,GAIA23B,OAAA/2B,QACAN,OAAAszB,GAAAj4B,OAEAy4B,WAAAp3B,GAGAsD,OAAAszB,GAAAuC,MAAA,SAAAA,OACA71B,OAAAq3B,OAAA/4B,KAAAu3B,OACA71B,OAAAszB,GAAAt3B,SAGAgE,OAAAszB,GAAAe,SAAA,GACAr0B,OAAAszB,GAAAt3B,MAAA,WACA+3B,aAIAA,YAAA,EACAG,aAGAl0B,OAAAszB,GAAAj4B,KAAA,WACA04B,WAAA,MAGA/zB,OAAAszB,GAAAuD,QACAgB,KAAA,IACAC,KAAA,IAGAvV,SAAA,KAMAviB,OAAAE,GAAA63B,MAAA,SAAAC,KAAAz7B,MAIA,OAHAy7B,KAAAh4B,OAAAszB,IAAAtzB,OAAAszB,GAAAuD,OAAAmB,OAAAA,KACAz7B,KAAAA,MAAA,KAEAuB,KAAA6b,MAAApd,KAAA,SAAAwM,KAAA6W,OACA,IAAAqY,QAAAt8B,OAAAugB,WAAAnT,KAAAivB,MACApY,MAAAvkB,KAAA,WACAM,OAAAu8B,aAAAD,aAMA,WACA,IAAAjrB,MAAAvS,SAAA6B,cAAA,SAEAs6B,IADAn8B,SAAA6B,cAAA,UACAO,YAAApC,SAAA6B,cAAA,WAEA0Q,MAAAzQ,KAAA,WAIAwC,QAAAo5B,QAAA,KAAAnrB,MAAAhJ,MAIAjF,QAAAq5B,YAAAxB,IAAA7kB,UAIA/E,MAAAvS,SAAA6B,cAAA,UACA0H,MAAA,IACAgJ,MAAAzQ,KAAA,QACAwC,QAAAs5B,WAAA,MAAArrB,MAAAhJ,MApBA,GAwBA,IAAAs0B,SACAptB,WAAAlL,OAAAgO,KAAA9C,WAEAlL,OAAAE,GAAA8B,QACAkM,KAAA,SAAAhM,KAAA8B,OACA,OAAAwZ,OAAA1f,KAAAkC,OAAAkO,KAAAhM,KAAA8B,MAAAzC,UAAAjB,OAAA,IAGAi4B,WAAA,SAAAr2B,MACA,OAAApE,KAAAoD,KAAA,WACAlB,OAAAu4B,WAAAz6B,KAAAoE,WAKAlC,OAAAgC,QACAkM,KAAA,SAAA7M,KAAAa,KAAA8B,OACA,IAAAjD,IAAA6e,MACA4Y,MAAAn3B,KAAAnC,SAGA,GAAA,IAAAs5B,OAAA,IAAAA,OAAA,IAAAA,MAKA,YAAA,IAAAn3B,KAAAlG,aACA6E,OAAA6e,KAAAxd,KAAAa,KAAA8B,QAKA,IAAAw0B,OAAAx4B,OAAAkW,SAAA7U,QACAue,MAAA5f,OAAAy4B,UAAAv2B,KAAAmC,iBACArE,OAAAgO,KAAA1E,MAAAhC,KAAAyC,KAAA7H,MAAAo2B,cAAA57B,SAGAA,IAAAsH,MACA,OAAAA,WACAhE,OAAAu4B,WAAAl3B,KAAAa,MAIA0d,OAAA,QAAAA,YACAljB,KAAAqE,IAAA6e,MAAAjB,IAAAtd,KAAA2C,MAAA9B,OACAnB,KAGAM,KAAAjG,aAAA8G,KAAA8B,MAAA,IACAA,OAGA4b,OAAA,QAAAA,OAAA,QAAA7e,IAAA6e,MAAAjf,IAAAU,KAAAa,OACAnB,IAMA,OAHAA,IAAAf,OAAA2M,KAAAuB,KAAA7M,KAAAa,YAGAxF,EAAAqE,MAGA03B,WACAl8B,MACAoiB,IAAA,SAAAtd,KAAA2C,OACA,IAAAjF,QAAAs5B,YAAA,UAAAr0B,OACAgG,SAAA3I,KAAA,SAAA,CACA,IAAA8M,IAAA9M,KAAA2C,MAKA,OAJA3C,KAAAjG,aAAA,OAAA4I,OACAmK,MACA9M,KAAA2C,MAAAmK,KAEAnK,UAMAu0B,WAAA,SAAAl3B,KAAA2C,OACA,IAAA9B,KACAxC,EAAA,EAIAg5B,UAAA10B,OAAAA,MAAAsF,MAAAgP,eAEA,GAAAogB,WAAA,IAAAr3B,KAAAnC,SACA,KAAAgD,KAAAw2B,UAAAh5B,MACA2B,KAAAiJ,gBAAApI,SAOAo2B,UACA3Z,IAAA,SAAAtd,KAAA2C,MAAA9B,MAQA,OAPA,IAAA8B,MAGAhE,OAAAu4B,WAAAl3B,KAAAa,MAEAb,KAAAjG,aAAA8G,KAAAA,MAEAA,OAIAlC,OAAAkB,KAAAlB,OAAAgO,KAAA1E,MAAAhC,KAAA4Y,OAAA5W,MAAA,QAAA,SAAA5J,EAAAwC,MACA,IAAAy2B,OAAAztB,WAAAhJ,OAAAlC,OAAA2M,KAAAuB,KAEAhD,WAAAhJ,MAAA,SAAAb,KAAAa,KAAAuC,OACA,IAAA1D,IAAAukB,OACAsT,cAAA12B,KAAAmC,cAYA,OAVAI,QAGA6gB,OAAApa,WAAA0tB,eACA1tB,WAAA0tB,eAAA73B,IACAA,IAAA,MAAA43B,OAAAt3B,KAAAa,KAAAuC,OACAm0B,cACA,KACA1tB,WAAA0tB,eAAAtT,QAEAvkB,OAOA,IAAA83B,WAAA,sCACAC,WAAA,gBAyIA,SAAAC,iBAAA/0B,OAEA,OADAA,MAAAsF,MAAAgP,oBACApO,KAAA,KAIA,SAAA8uB,SAAA33B,MACA,OAAAA,KAAAlG,cAAAkG,KAAAlG,aAAA,UAAA,GAGA,SAAA89B,eAAAj1B,OACA,OAAAvB,MAAAC,QAAAsB,OACAA,MAEA,iBAAAA,OACAA,MAAAsF,MAAAgP,mBAtJAtY,OAAAE,GAAA8B,QACA6c,KAAA,SAAA3c,KAAA8B,OACA,OAAAwZ,OAAA1f,KAAAkC,OAAA6e,KAAA3c,KAAA8B,MAAAzC,UAAAjB,OAAA,IAGA44B,WAAA,SAAAh3B,MACA,OAAApE,KAAAoD,KAAA,kBACApD,KAAAkC,OAAAm5B,QAAAj3B,OAAAA,WAKAlC,OAAAgC,QACA6c,KAAA,SAAAxd,KAAAa,KAAA8B,OACA,IAAAjD,IAAA6e,MACA4Y,MAAAn3B,KAAAnC,SAGA,GAAA,IAAAs5B,OAAA,IAAAA,OAAA,IAAAA,MAWA,OAPA,IAAAA,OAAAx4B,OAAAkW,SAAA7U,QAGAa,KAAAlC,OAAAm5B,QAAAj3B,OAAAA,KACA0d,MAAA5f,OAAA+yB,UAAA7wB,YAGAxF,IAAAsH,MACA4b,OAAA,QAAAA,YACAljB,KAAAqE,IAAA6e,MAAAjB,IAAAtd,KAAA2C,MAAA9B,OACAnB,IAGAM,KAAAa,MAAA8B,MAGA4b,OAAA,QAAAA,OAAA,QAAA7e,IAAA6e,MAAAjf,IAAAU,KAAAa,OACAnB,IAGAM,KAAAa,OAGA6wB,WACAnhB,UACAjR,IAAA,SAAAU,MAOA,IAAA+3B,SAAAp5B,OAAA2M,KAAAuB,KAAA7M,KAAA,YAEA,OAAA+3B,SACAC,SAAAD,SAAA,IAIAP,WAAA9uB,KAAA1I,KAAA2I,WACA8uB,WAAA/uB,KAAA1I,KAAA2I,WACA3I,KAAAsQ,KAEA,GAGA,KAKAwnB,SACAG,IAAA,UACAC,MAAA,eAYAx6B,QAAAq5B,cACAp4B,OAAA+yB,UAAAhhB,UACApR,IAAA,SAAAU,MAIA,IAAAgP,OAAAhP,KAAAxB,WAIA,OAHAwQ,QAAAA,OAAAxQ,YACAwQ,OAAAxQ,WAAAmS,cAEA,MAEA2M,IAAA,SAAAtd,MAIA,IAAAgP,OAAAhP,KAAAxB,WACAwQ,SACAA,OAAA2B,cAEA3B,OAAAxQ,YACAwQ,OAAAxQ,WAAAmS,kBAOAhS,OAAAkB,MACA,WACA,WACA,YACA,cACA,cACA,UACA,UACA,SACA,cACA,mBACA,WACAlB,OAAAm5B,QAAAr7B,KAAAuG,eAAAvG,OA4BAkC,OAAAE,GAAA8B,QACAw3B,SAAA,SAAAx1B,OACA,IAAAy1B,QAAAp4B,KAAA+J,IAAAsuB,SAAAC,MAAA/3B,EAAAg4B,WACAl6B,EAAA,EAEA,GAAAV,WAAAgF,OACA,OAAAlG,KAAAoD,KAAA,SAAAU,GACA5B,OAAAlC,MAAA07B,SAAAx1B,MAAAlF,KAAAhB,KAAA8D,EAAAo3B,SAAAl7B,UAMA,IAFA27B,QAAAR,eAAAj1B,QAEA1D,OACA,KAAAe,KAAAvD,KAAA4B,MAIA,GAHAg6B,SAAAV,SAAA33B,MACA+J,IAAA,IAAA/J,KAAAnC,UAAA,IAAA65B,iBAAAW,UAAA,IAEA,CAEA,IADA93B,EAAA,EACA+3B,MAAAF,QAAA73B,MACAwJ,IAAA7M,QAAA,IAAAo7B,MAAA,KAAA,IACAvuB,KAAAuuB,MAAA,KAMAD,YADAE,WAAAb,iBAAA3tB,OAEA/J,KAAAjG,aAAA,QAAAw+B,YAMA,OAAA97B,MAGAX,YAAA,SAAA6G,OACA,IAAAy1B,QAAAp4B,KAAA+J,IAAAsuB,SAAAC,MAAA/3B,EAAAg4B,WACAl6B,EAAA,EAEA,GAAAV,WAAAgF,OACA,OAAAlG,KAAAoD,KAAA,SAAAU,GACA5B,OAAAlC,MAAAX,YAAA6G,MAAAlF,KAAAhB,KAAA8D,EAAAo3B,SAAAl7B,UAIA,IAAAyD,UAAAjB,OACA,OAAAxC,KAAAoQ,KAAA,QAAA,IAKA,IAFAurB,QAAAR,eAAAj1B,QAEA1D,OACA,KAAAe,KAAAvD,KAAA4B,MAMA,GALAg6B,SAAAV,SAAA33B,MAGA+J,IAAA,IAAA/J,KAAAnC,UAAA,IAAA65B,iBAAAW,UAAA,IAEA,CAEA,IADA93B,EAAA,EACA+3B,MAAAF,QAAA73B,MAGA,KAAAwJ,IAAA7M,QAAA,IAAAo7B,MAAA,MAAA,GACAvuB,IAAAA,IAAA7N,QAAA,IAAAo8B,MAAA,IAAA,KAMAD,YADAE,WAAAb,iBAAA3tB,OAEA/J,KAAAjG,aAAA,QAAAw+B,YAMA,OAAA97B,MAGA+7B,YAAA,SAAA71B,MAAA81B,UACA,IAAAv9B,YAAAyH,MACA+1B,aAAA,WAAAx9B,MAAAkG,MAAAC,QAAAsB,OAEA,MAAA,kBAAA81B,UAAAC,aACAD,SAAAh8B,KAAA07B,SAAAx1B,OAAAlG,KAAAX,YAAA6G,OAGAhF,WAAAgF,OACAlG,KAAAoD,KAAA,SAAAxB,GACAM,OAAAlC,MAAA+7B,YACA71B,MAAAlF,KAAAhB,KAAA4B,EAAAs5B,SAAAl7B,MAAAg8B,UACAA,YAKAh8B,KAAAoD,KAAA,WACA,IAAAhE,UAAAwC,EAAAmX,KAAAmjB,WAEA,GAAAD,aAOA,IAJAr6B,EAAA,EACAmX,KAAA7W,OAAAlC,MACAk8B,WAAAf,eAAAj1B,OAEA9G,UAAA88B,WAAAt6B,MAGAmX,KAAAojB,SAAA/8B,WACA2Z,KAAA1Z,YAAAD,WAEA2Z,KAAA2iB,SAAAt8B,qBAKAR,IAAAsH,OAAA,YAAAzH,QACAW,UAAA87B,SAAAl7B,QAIAihB,SAAAJ,IAAA7gB,KAAA,gBAAAZ,WAOAY,KAAA1C,cACA0C,KAAA1C,aAAA,QACA8B,YAAA,IAAA8G,MACA,GACA+a,SAAApe,IAAA7C,KAAA,kBAAA,QAOAm8B,SAAA,SAAAl9B,UACA,IAAAG,UAAAmE,KACA3B,EAAA,EAGA,IADAxC,UAAA,IAAAH,SAAA,IACAsE,KAAAvD,KAAA4B,MACA,GAAA,IAAA2B,KAAAnC,WACA,IAAA65B,iBAAAC,SAAA33B,OAAA,KAAA9C,QAAArB,YAAA,EACA,OAAA,EAIA,OAAA,KAOA,IAAAg9B,QAAA,MAEAl6B,OAAAE,GAAA8B,QACAmM,IAAA,SAAAnK,OACA,IAAA4b,MAAA7e,IAAAyqB,gBACAnqB,KAAAvD,KAAA,GAEA,OAAAyD,UAAAjB,QA0BAkrB,gBAAAxsB,WAAAgF,OAEAlG,KAAAoD,KAAA,SAAAxB,GACA,IAAAyO,IAEA,IAAArQ,KAAAoB,WAWA,OANAiP,IADAqd,gBACAxnB,MAAAlF,KAAAhB,KAAA4B,EAAAM,OAAAlC,MAAAqQ,OAEAnK,OAKAmK,IAAA,GAEA,iBAAAA,IACAA,KAAA,GAEA1L,MAAAC,QAAAyL,OACAA,IAAAnO,OAAAoB,IAAA+M,IAAA,SAAAnK,OACA,OAAA,MAAAA,MAAA,GAAAA,MAAA,OAIA4b,MAAA5f,OAAAm6B,SAAAr8B,KAAAvB,OAAAyD,OAAAm6B,SAAAr8B,KAAAkM,SAAA3F,iBAGA,QAAAub,YAAAljB,IAAAkjB,MAAAjB,IAAA7gB,KAAAqQ,IAAA,WACArQ,KAAAkG,MAAAmK,SAzDA9M,MACAue,MAAA5f,OAAAm6B,SAAA94B,KAAA9E,OACAyD,OAAAm6B,SAAA94B,KAAA2I,SAAA3F,iBAGA,QAAAub,YACAljB,KAAAqE,IAAA6e,MAAAjf,IAAAU,KAAA,UAEAN,IAMA,iBAHAA,IAAAM,KAAA2C,OAIAjD,IAAAxD,QAAA28B,QAAA,IAIA,MAAAn5B,IAAA,GAAAA,SAGA,KAyCAf,OAAAgC,QACAm4B,UACAjY,QACAvhB,IAAA,SAAAU,MAEA,IAAA8M,IAAAnO,OAAA2M,KAAAuB,KAAA7M,KAAA,SACA,OAAA,MAAA8M,IACAA,IAMA4qB,iBAAA/4B,OAAAL,KAAA0B,SAGAuD,QACAjE,IAAA,SAAAU,MACA,IAAA2C,MAAAke,OAAAxiB,EACAuC,QAAAZ,KAAAY,QACAyV,MAAArW,KAAA2Q,cACAyS,IAAA,eAAApjB,KAAA9E,KACAolB,OAAA8C,IAAA,QACA4L,IAAA5L,IAAA/M,MAAA,EAAAzV,QAAA3B,OAUA,IAPAZ,EADAgY,MAAA,EACA2Y,IAGA5L,IAAA/M,MAAA,EAIAhY,EAAA2wB,IAAA3wB,IAKA,KAJAwiB,OAAAjgB,QAAAvC,IAIAqS,UAAArS,IAAAgY,SAGAwK,OAAArZ,YACAqZ,OAAAriB,WAAAgJ,WACAmB,SAAAkY,OAAAriB,WAAA,aAAA,CAMA,GAHAmE,MAAAhE,OAAAkiB,QAAA/T,MAGAsW,IACA,OAAAzgB,MAIA2d,OAAArjB,KAAA0F,OAIA,OAAA2d,QAGAhD,IAAA,SAAAtd,KAAA2C,OAMA,IALA,IAAAo2B,UAAAlY,OACAjgB,QAAAZ,KAAAY,QACA0f,OAAA3hB,OAAAuD,UAAAS,OACAtE,EAAAuC,QAAA3B,OAEAZ,OACAwiB,OAAAjgB,QAAAvC,IAIAqS,SACA/R,OAAAyD,QAAAzD,OAAAm6B,SAAAjY,OAAAvhB,IAAAuhB,QAAAP,SAAA,KAEAyY,WAAA,GAUA,OAHAA,YACA/4B,KAAA2Q,eAAA,GAEA2P,YAOA3hB,OAAAkB,MAAA,QAAA,YAAA,WACAlB,OAAAm6B,SAAAr8B,OACA6gB,IAAA,SAAAtd,KAAA2C,OACA,GAAAvB,MAAAC,QAAAsB,OACA,OAAA3C,KAAAyQ,QAAA9R,OAAAyD,QAAAzD,OAAAqB,MAAA8M,MAAAnK,QAAA,IAIAjF,QAAAo5B,UACAn4B,OAAAm6B,SAAAr8B,MAAA6C,IAAA,SAAAU,MACA,OAAA,OAAAA,KAAAlG,aAAA,SAAA,KAAAkG,KAAA2C,UAWAjF,QAAAs7B,QAAA,cAAA1+B,OAGA,IAAA2+B,YAAA,kCACAC,wBAAA,SAAAtxB,GACAA,EAAA2d,mBAGA5mB,OAAAgC,OAAAhC,OAAA2kB,OAEA6C,QAAA,SAAA7C,MAAA/F,KAAAvd,KAAAm5B,cAEA,IAAA96B,EAAA0L,IAAA0B,IAAA2tB,WAAAC,OAAApV,OAAA/J,QAAAof,YACAC,WAAAv5B,MAAA5G,UACA8B,KAAAmC,OAAAI,KAAA6lB,MAAA,QAAAA,MAAApoB,KAAAooB,MACAQ,WAAAzmB,OAAAI,KAAA6lB,MAAA,aAAAA,MAAAgB,UAAAvhB,MAAA,QAKA,GAHAgH,IAAAuvB,YAAA7tB,IAAAzL,KAAAA,MAAA5G,SAGA,IAAA4G,KAAAnC,UAAA,IAAAmC,KAAAnC,WAKAo7B,YAAAvwB,KAAAxN,KAAAyD,OAAA2kB,MAAAY,aAIAhpB,KAAAgC,QAAA,MAAA,IAIAhC,MADA4oB,WAAA5oB,KAAA6H,MAAA,MACAuG,QACAwa,WAAArjB,QAEA44B,OAAAn+B,KAAAgC,QAAA,KAAA,GAAA,KAAAhC,MAGAooB,MAAAA,MAAA3kB,OAAA2C,SACAgiB,MACA,IAAA3kB,OAAAknB,MAAA3qB,KAAA,iBAAAooB,OAAAA,QAGAkW,UAAAL,aAAA,EAAA,EACA7V,MAAAgB,UAAAR,WAAAjb,KAAA,KACAya,MAAA+B,WAAA/B,MAAAgB,UACA,IAAAroB,OAAA,UAAA6nB,WAAAjb,KAAA,iBAAA,WACA,KAGAya,MAAA/U,YAAAlT,EACAioB,MAAAriB,SACAqiB,MAAAriB,OAAAjB,MAIAud,KAAA,MAAAA,MACA+F,OACA3kB,OAAAuD,UAAAqb,MAAA+F,QAGApJ,QAAAvb,OAAA2kB,MAAApJ,QAAAhf,UACAi+B,eAAAjf,QAAAiM,UAAA,IAAAjM,QAAAiM,QAAAlmB,MAAAD,KAAAud,OAAA,CAMA,IAAA4b,eAAAjf,QAAAgM,WAAApoB,SAAAkC,MAAA,CAMA,IAJAo5B,WAAAlf,QAAAkK,cAAAlpB,KACA+9B,YAAAvwB,KAAA0wB,WAAAl+B,QACA6O,IAAAA,IAAAvL,YAEAuL,IAAAA,IAAAA,IAAAvL,WACA+6B,UAAAt8B,KAAA8M,KACA0B,IAAA1B,IAIA0B,OAAAzL,KAAAqI,eAAAjP,WACAmgC,UAAAt8B,KAAAwO,IAAAZ,aAAAY,IAAAguB,cAAAn/B,QAMA,IADA+D,EAAA,GACA0L,IAAAwvB,UAAAl7B,QAAAilB,MAAA4B,wBACAoU,YAAAvvB,IACAuZ,MAAApoB,KAAAmD,EAAA,EACA+6B,WACAlf,QAAAmK,UAAAnpB,MAGA+oB,QAAAvG,SAAApe,IAAAyK,IAAA,eAAAuZ,MAAApoB,OACAwiB,SAAApe,IAAAyK,IAAA,YAEAka,OAAAhkB,MAAA8J,IAAAwT,OAIA0G,OAAAoV,QAAAtvB,IAAAsvB,UACApV,OAAAhkB,OAAA+c,WAAAjT,OACAuZ,MAAA/U,OAAA0V,OAAAhkB,MAAA8J,IAAAwT,OACA,IAAA+F,MAAA/U,QACA+U,MAAAgC,kBA8CA,OA1CAhC,MAAApoB,KAAAA,KAGAi+B,cAAA7V,MAAAmD,sBAEAvM,QAAAgH,WACA,IAAAhH,QAAAgH,SAAAjhB,MAAAs5B,UAAA30B,MAAA2Y,QACAP,WAAAhd,OAIAq5B,QAAA17B,WAAAqC,KAAA9E,SAAA4C,SAAAkC,SAGAyL,IAAAzL,KAAAq5B,WAGAr5B,KAAAq5B,QAAA,MAIA16B,OAAA2kB,MAAAY,UAAAhpB,KAEAooB,MAAA4B,wBACAoU,YAAAvuB,iBAAA7P,KAAAg+B,yBAGAl5B,KAAA9E,QAEAooB,MAAA4B,wBACAoU,YAAAxd,oBAAA5gB,KAAAg+B,yBAGAv6B,OAAA2kB,MAAAY,eAAA7oB,EAEAoQ,MACAzL,KAAAq5B,QAAA5tB,MAMA6X,MAAA/U,SAKAmrB,SAAA,SAAAx+B,KAAA8E,KAAAsjB,OACA,IAAA1b,EAAAjJ,OAAAgC,OACA,IAAAhC,OAAAknB,MACAvC,OAEApoB,KAAAA,KACA4rB,aAAA,IAIAnoB,OAAA2kB,MAAA6C,QAAAve,EAAA,KAAA5H,SAKArB,OAAAE,GAAA8B,QAEAwlB,QAAA,SAAAjrB,KAAAqiB,MACA,OAAA9gB,KAAAoD,KAAA,WACAlB,OAAA2kB,MAAA6C,QAAAjrB,KAAAqiB,KAAA9gB,SAGAk9B,eAAA,SAAAz+B,KAAAqiB,MACA,IAAAvd,KAAAvD,KAAA,GACA,GAAAuD,KACA,OAAArB,OAAA2kB,MAAA6C,QAAAjrB,KAAAqiB,KAAAvd,MAAA,MAcAtC,QAAAs7B,SACAr6B,OAAAkB,MAAAsQ,MAAA,UAAAiW,KAAA,YAAA,SAAA4C,KAAAjE,KAGA,IAAAnb,QAAA,SAAA0Z,OACA3kB,OAAA2kB,MAAAoW,SAAA3U,IAAAzB,MAAAriB,OAAAtC,OAAA2kB,MAAAyB,IAAAzB,SAGA3kB,OAAA2kB,MAAApJ,QAAA6K,MACAP,MAAA,WACA,IAAArmB,IAAA1B,KAAA4L,eAAA5L,KACAm9B,SAAAlc,SAAAvB,OAAAhe,IAAA4mB,KAEA6U,UACAz7B,IAAA4M,iBAAAie,KAAApf,SAAA,GAEA8T,SAAAvB,OAAAhe,IAAA4mB,KAAA6U,UAAA,GAAA,IAEAjV,SAAA,WACA,IAAAxmB,IAAA1B,KAAA4L,eAAA5L,KACAm9B,SAAAlc,SAAAvB,OAAAhe,IAAA4mB,KAAA,EAEA6U,SAKAlc,SAAAvB,OAAAhe,IAAA4mB,IAAA6U,WAJAz7B,IAAA2d,oBAAAkN,KAAApf,SAAA,GACA8T,SAAA/E,OAAAxa,IAAA4mB,UASA,IAAA9U,SAAA3V,OAAA2V,SAEA4pB,MAAA51B,KAAA4iB,MAEAiT,OAAA,KAKAn7B,OAAAo7B,SAAA,SAAAxc,MACA,IAAA3O,IACA,IAAA2O,MAAA,iBAAAA,KACA,OAAA,KAKA,IACA3O,KAAA,IAAAtU,OAAA0/B,WAAAC,gBAAA1c,KAAA,YACA,MAAA3V,GACAgH,SAAAvT,EAMA,OAHAuT,MAAAA,IAAArT,qBAAA,eAAA0D,QACAN,OAAA+C,MAAA,gBAAA6b,MAEA3O,KAIA,IACAsrB,SAAA,QACAC,MAAA,SACAC,gBAAA,wCACAC,aAAA,qCAEA,SAAAC,YAAAjJ,OAAAzzB,IAAA28B,YAAAhkB,KACA,IAAA1V,KAEA,GAAAO,MAAAC,QAAAzD,KAGAe,OAAAkB,KAAAjC,IAAA,SAAAS,EAAA8Y,GACAojB,aAAAL,SAAAxxB,KAAA2oB,QAGA9a,IAAA8a,OAAAla,GAKAmjB,YACAjJ,OAAA,KAAA,iBAAAla,GAAA,MAAAA,EAAA9Y,EAAA,IAAA,IACA8Y,EACAojB,YACAhkB,YAKA,GAAAgkB,aAAA,WAAA77B,OAAAd,KAUA2Y,IAAA8a,OAAAzzB,UAPA,IAAAiD,QAAAjD,IACA08B,YAAAjJ,OAAA,IAAAxwB,KAAA,IAAAjD,IAAAiD,MAAA05B,YAAAhkB,KAYA5X,OAAA67B,MAAA,SAAA91B,EAAA61B,aACA,IAAAlJ,OACAoJ,KACAlkB,IAAA,SAAAnN,IAAAsxB,iBAGA,IAAA/3B,MAAAhF,WAAA+8B,iBACAA,kBACAA,gBAEAD,EAAAA,EAAAx7B,QAAA07B,mBAAAvxB,KAAA,IACAuxB,mBAAA,MAAAh4B,MAAA,GAAAA,QAIA,GAAAvB,MAAAC,QAAAqD,IAAAA,EAAAvF,SAAAR,OAAAwC,cAAAuD,GAGA/F,OAAAkB,KAAA6E,EAAA,WACA6R,IAAA9Z,KAAAoE,KAAApE,KAAAkG,cAOA,IAAA0uB,UAAA3sB,EACA41B,YAAAjJ,OAAA3sB,EAAA2sB,QAAAkJ,YAAAhkB,KAKA,OAAAkkB,EAAA5xB,KAAA,MAGAlK,OAAAE,GAAA8B,QACAi6B,UAAA,WACA,OAAAj8B,OAAA67B,MAAA/9B,KAAAo+B,mBAEAA,eAAA,WACA,OAAAp+B,KAAAsD,IAAA,WAGA,IAAA6M,SAAAjO,OAAA6e,KAAA/gB,KAAA,YACA,OAAAmQ,SAAAjO,OAAAuD,UAAA0K,UAAAnQ,OAEA2O,OAAA,WACA,IAAAlQ,KAAAuB,KAAAvB,KAGA,OAAAuB,KAAAoE,OAAAlC,OAAAlC,MAAAwY,GAAA,cACAolB,aAAA3xB,KAAAjM,KAAAkM,YAAAyxB,gBAAA1xB,KAAAxN,QACAuB,KAAAgU,UAAAgQ,eAAA/X,KAAAxN,SAEA6E,IAAA,SAAA1B,EAAA2B,MACA,IAAA8M,IAAAnO,OAAAlC,MAAAqQ,MAEA,OAAA,MAAAA,IACA,KAGA1L,MAAAC,QAAAyL,KACAnO,OAAAoB,IAAA+M,IAAA,SAAAA,KACA,OAAAjM,KAAAb,KAAAa,KAAA8B,MAAAmK,IAAA5Q,QAAAi+B,MAAA,YAIAt5B,KAAAb,KAAAa,KAAA8B,MAAAmK,IAAA5Q,QAAAi+B,MAAA,WACA76B,SAKA,IACAw7B,IAAA,OACAC,MAAA,OACAC,WAAA,gBACAC,SAAA,6BAIAC,WAAA,iBACAC,UAAA,QAWAvH,cAOAwH,cAGAC,SAAA,KAAAr+B,OAAA,KAGAs+B,aAAAliC,SAAA6B,cAAA,KAIA,SAAAsgC,4BAAAC,WAGA,OAAA,SAAAC,mBAAAziB,MAEA,iBAAAyiB,qBACAziB,KAAAyiB,mBACAA,mBAAA,KAGA,IAAAC,SACAr9B,EAAA,EACAs9B,UAAAF,mBAAAz4B,cAAAiF,MAAAgP,mBAEA,GAAAtZ,WAAAqb,MAGA,KAAA0iB,SAAAC,UAAAt9B,MAGA,MAAAq9B,SAAA,IACAA,SAAAA,SAAA3+B,MAAA,IAAA,KACAy+B,UAAAE,UAAAF,UAAAE,eAAAhvB,QAAAsM,QAIAwiB,UAAAE,UAAAF,UAAAE,eAAAz+B,KAAA+b,OAQA,SAAA4iB,8BAAAJ,UAAA56B,QAAAuzB,gBAAA0H,OAEA,IAAAC,aACAC,iBAAAP,YAAAJ,WAEA,SAAAY,QAAAN,UACA,IAAAhrB,SAcA,OAbAorB,UAAAJ,WAAA,EACA/8B,OAAAkB,KAAA27B,UAAAE,cAAA,SAAAh1B,EAAAu1B,oBACA,IAAAC,oBAAAD,mBAAAr7B,QAAAuzB,gBAAA0H,OACA,MAAA,iBAAAK,qBACAH,kBAAAD,UAAAI,qBAKAH,mBACArrB,SAAAwrB,0BADA,GAHAt7B,QAAA+6B,UAAAjvB,QAAAwvB,qBACAF,QAAAE,sBACA,KAKAxrB,SAGA,OAAAsrB,QAAAp7B,QAAA+6B,UAAA,MAAAG,UAAA,MAAAE,QAAA,KAMA,SAAAG,WAAAl7B,OAAA9F,KACA,IAAAiO,IAAAlI,KACAk7B,YAAAz9B,OAAA09B,aAAAD,gBAEA,IAAAhzB,OAAAjO,SACAE,IAAAF,IAAAiO,QACAgzB,YAAAhzB,KAAAnI,OAAAC,OAAAA,UAAAkI,KAAAjO,IAAAiO,MAOA,OAJAlI,MACAvC,OAAAgC,QAAA,EAAAM,OAAAC,MAGAD,OA/EAq6B,aAAAhrB,KAAAL,SAAAK,KAgPA3R,OAAAgC,QAGA27B,OAAA,EAGAC,gBACAC,QAEAH,cACAxhC,IAAAoV,SAAAK,KACApV,KAAA,MACAuhC,QAvRA,4DAuRA/zB,KAAAuH,SAAAysB,UACAvgC,QAAA,EACAwgC,aAAA,EACAC,OAAA,EACAC,YAAA,mDAcAC,SACApI,IAAA2G,SACA/8B,KAAA,aACA8rB,KAAA,YACAxb,IAAA,4BACAmuB,KAAA,qCAGAhnB,UACAnH,IAAA,UACAwb,KAAA,SACA2S,KAAA,YAGAC,gBACApuB,IAAA,cACAtQ,KAAA,eACAy+B,KAAA,gBAKAE,YAGAC,SAAAp2B,OAGAq2B,aAAA,EAGAC,YAAArf,KAAAC,MAGAqf,WAAA1+B,OAAAo7B,UAOAqC,aACAvhC,KAAA,EACA+D,SAAA,IAOA0+B,UAAA,SAAAr8B,OAAAs8B,UACA,OAAAA,SAGApB,WAAAA,WAAAl7B,OAAAtC,OAAA09B,cAAAkB,UAGApB,WAAAx9B,OAAA09B,aAAAp7B,SAGAu8B,cAAAjC,4BAAA3H,YACA6J,cAAAlC,4BAAAH,YAGAsC,KAAA,SAAA7iC,IAAA+F,SAGA,iBAAA/F,MACA+F,QAAA/F,IACAA,SAAAQ,GAIAuF,QAAAA,YAEA,IAAA+8B,UAGAC,SAGAC,sBACAC,gBAGAC,aAGAC,UAGAniB,UAGAoiB,YAGA5/B,EAGA6/B,SAGAzD,EAAA97B,OAAA2+B,aAAA18B,SAGAu9B,gBAAA1D,EAAA77B,SAAA67B,EAGA2D,mBAAA3D,EAAA77B,UACAu/B,gBAAAtgC,UAAAsgC,gBAAAh/B,QACAR,OAAAw/B,iBACAx/B,OAAA2kB,MAGAlK,SAAAza,OAAAoa,WACAslB,iBAAA1/B,OAAAmZ,UAAA,eAGAwmB,WAAA7D,EAAA6D,eAGAC,kBACAC,uBAGAC,SAAA,WAGA5C,OACA5f,WAAA,EAGAyiB,kBAAA,SAAAt1B,KACA,IAAAnB,MACA,GAAA4T,UAAA,CACA,IAAAiiB,gBAEA,IADAA,mBACA71B,MAAAgzB,SAAA3yB,KAAAu1B,wBACAC,gBAAA71B,MAAA,GAAAjF,eAAAiF,MAAA,GAGAA,MAAA61B,gBAAA10B,IAAApG,eAEA,OAAA,MAAAiF,MAAA,KAAAA,OAIA02B,sBAAA,WACA,OAAA9iB,UAAAgiB,sBAAA,MAIAe,iBAAA,SAAA/9B,KAAA8B,OAMA,OALA,MAAAkZ,YACAhb,KAAA29B,oBAAA39B,KAAAmC,eACAw7B,oBAAA39B,KAAAmC,gBAAAnC,KACA09B,eAAA19B,MAAA8B,OAEAlG,MAIAoiC,iBAAA,SAAA3jC,MAIA,OAHA,MAAA2gB,YACA4e,EAAAqE,SAAA5jC,MAEAuB,MAIA6hC,WAAA,SAAAv+B,KACA,IAAA7B,KACA,GAAA6B,IACA,GAAA8b,UAGAggB,MAAA1iB,OAAApZ,IAAA87B,MAAAkD,cAIA,IAAA7gC,QAAA6B,IACAu+B,WAAApgC,OAAAogC,WAAApgC,MAAA6B,IAAA7B,OAIA,OAAAzB,MAIAuiC,MAAA,SAAAC,YACA,IAAAC,UAAAD,YAAAR,SAKA,OAJAd,WACAA,UAAAqB,MAAAE,WAEA96B,KAAA,EAAA86B,WACAziC,OAoBA,GAfA2c,SAAAzB,QAAAkkB,OAKApB,EAAA5/B,MAAAA,KAAA4/B,EAAA5/B,KAAAoV,SAAAK,MAAA,IACApU,QAAAi/B,UAAAlrB,SAAAysB,SAAA,MAGAjC,EAAAv/B,KAAA0F,QAAA8W,QAAA9W,QAAA1F,MAAAu/B,EAAA/iB,QAAA+iB,EAAAv/B,KAGAu/B,EAAAkB,WAAAlB,EAAAiB,UAAA,KAAA14B,cAAAiF,MAAAgP,iBAAA,IAGA,MAAAwjB,EAAA0E,YAAA,CACAnB,UAAA5kC,SAAA6B,cAAA,KAKA,IACA+iC,UAAA1tB,KAAAmqB,EAAA5/B,IAIAmjC,UAAA1tB,KAAA0tB,UAAA1tB,KACAmqB,EAAA0E,YAAA7D,aAAAoB,SAAA,KAAApB,aAAA8D,MACApB,UAAAtB,SAAA,KAAAsB,UAAAoB,KACA,MAAAx3B,GAIA6yB,EAAA0E,aAAA,GAaA,GARA1E,EAAAld,MAAAkd,EAAAkC,aAAA,iBAAAlC,EAAAld,OACAkd,EAAAld,KAAA5e,OAAA67B,MAAAC,EAAAld,KAAAkd,EAAAF,cAIAqB,8BAAAhI,WAAA6G,EAAA75B,QAAAi7B,OAGAhgB,UACA,OAAAggB,MA6EA,IAAAx9B,KAxEA4/B,YAAAt/B,OAAA2kB,OAAAmX,EAAAt+B,SAGA,GAAAwC,OAAA29B,UACA39B,OAAA2kB,MAAA6C,QAAA,aAIAsU,EAAAv/B,KAAAu/B,EAAAv/B,KAAA2hB,cAGA4d,EAAA4E,YAAAnE,WAAAxyB,KAAA+xB,EAAAv/B,MAKA0iC,SAAAnD,EAAA5/B,IAAAqB,QAAA6+B,MAAA,IAGAN,EAAA4E,WAuBA5E,EAAAld,MAAAkd,EAAAkC,aACA,KAAAlC,EAAAoC,aAAA,IAAA3/B,QAAA,uCACAu9B,EAAAld,KAAAkd,EAAAld,KAAArhB,QAAA4+B,IAAA,OAtBAoD,SAAAzD,EAAA5/B,IAAAkC,MAAA6gC,SAAA3+B,QAGAw7B,EAAAld,OAAAkd,EAAAkC,aAAA,iBAAAlC,EAAAld,QACAqgB,WAAA9D,OAAApxB,KAAAk1B,UAAA,IAAA,KAAAnD,EAAAld,YAGAkd,EAAAld,OAIA,IAAAkd,EAAAtxB,QACAy0B,SAAAA,SAAA1hC,QAAA8+B,WAAA,MACAkD,UAAApE,OAAApxB,KAAAk1B,UAAA,IAAA,KAAA,KAAA/D,QAAAqE,UAIAzD,EAAA5/B,IAAA+iC,SAAAM,UASAzD,EAAA6E,aACA3gC,OAAA49B,aAAAqB,WACA/B,MAAA+C,iBAAA,oBAAAjgC,OAAA49B,aAAAqB,WAEAj/B,OAAA69B,KAAAoB,WACA/B,MAAA+C,iBAAA,gBAAAjgC,OAAA69B,KAAAoB,aAKAnD,EAAAld,MAAAkd,EAAA4E,aAAA,IAAA5E,EAAAoC,aAAAj8B,QAAAi8B,cACAhB,MAAA+C,iBAAA,eAAAnE,EAAAoC,aAIAhB,MAAA+C,iBACA,SACAnE,EAAAkB,UAAA,IAAAlB,EAAAqC,QAAArC,EAAAkB,UAAA,IACAlB,EAAAqC,QAAArC,EAAAkB,UAAA,KACA,MAAAlB,EAAAkB,UAAA,GAAA,KAAAN,SAAA,WAAA,IACAZ,EAAAqC,QAAA,MAIArC,EAAA8E,QACA1D,MAAA+C,iBAAAvgC,EAAAo8B,EAAA8E,QAAAlhC,IAIA,GAAAo8B,EAAA+E,cACA,IAAA/E,EAAA+E,WAAA/hC,KAAA0gC,gBAAAtC,MAAApB,IAAA5e,WAGA,OAAAggB,MAAAmD,QAeA,GAXAP,SAAA,QAGAJ,iBAAA9nB,IAAAkkB,EAAAlG,UACAsH,MAAAz3B,KAAAq2B,EAAAgF,SACA5D,MAAAjkB,KAAA6iB,EAAA/4B,OAGAi8B,UAAA/B,8BAAAR,WAAAX,EAAA75B,QAAAi7B,OAKA,CASA,GARAA,MAAA5f,WAAA,EAGAgiB,aACAG,mBAAAjY,QAAA,YAAA0V,MAAApB,IAIA5e,UACA,OAAAggB,MAIApB,EAAAmC,OAAAnC,EAAA7D,QAAA,IACAmH,aAAAzjC,OAAAugB,WAAA,WACAghB,MAAAmD,MAAA,YACAvE,EAAA7D,UAGA,IACA/a,WAAA,EACA8hB,UAAA+B,KAAAnB,eAAAn6B,MACA,MAAAwD,GAGA,GAAAiU,UACA,MAAAjU,EAIAxD,MAAA,EAAAwD,SAhCAxD,MAAA,EAAA,gBAqCA,SAAAA,KAAA26B,OAAAY,iBAAAC,UAAAL,SACA,IAAAM,UAAAJ,QAAA/9B,MAAAo+B,SAAAC,SACAd,WAAAU,iBAGA9jB,YAIAA,WAAA,EAGAkiB,cACAzjC,OAAAu8B,aAAAkH,cAKAJ,eAAAtiC,EAGAwiC,sBAAA0B,SAAA,GAGA1D,MAAA5f,WAAA8iB,OAAA,EAAA,EAAA,EAGAc,UAAAd,QAAA,KAAAA,OAAA,KAAA,MAAAA,OAGAa,YACAE,SA1lBA,SAAArF,EAAAoB,MAAA+D,WAOA,IALA,IAAAI,GAAA9kC,KAAA+kC,cAAAC,cACAnqB,SAAA0kB,EAAA1kB,SACA4lB,UAAAlB,EAAAkB,UAGA,MAAAA,UAAA,IACAA,UAAAryB,aACAjO,IAAA2kC,KACAA,GAAAvF,EAAAqE,UAAAjD,MAAA6C,kBAAA,iBAKA,GAAAsB,GACA,IAAA9kC,QAAA6a,SACA,GAAAA,SAAA7a,OAAA6a,SAAA7a,MAAAwN,KAAAs3B,IAAA,CACArE,UAAAjvB,QAAAxR,MACA,MAMA,GAAAygC,UAAA,KAAAiE,UACAK,cAAAtE,UAAA,OACA,CAGA,IAAAzgC,QAAA0kC,UAAA,CACA,IAAAjE,UAAA,IAAAlB,EAAAwC,WAAA/hC,KAAA,IAAAygC,UAAA,IAAA,CACAsE,cAAA/kC,KACA,MAEAglC,gBACAA,cAAAhlC,MAKA+kC,cAAAA,eAAAC,cAMA,GAAAD,cAIA,OAHAA,gBAAAtE,UAAA,IACAA,UAAAjvB,QAAAuzB,eAEAL,UAAAK,eAuiBAE,CAAA1F,EAAAoB,MAAA+D,YAIAE,SApiBA,SAAArF,EAAAqF,SAAAjE,MAAAgE,WACA,IAAAO,MAAAC,QAAAC,KAAA70B,IAAAuK,KACAinB,cAGAtB,UAAAlB,EAAAkB,UAAA5+B,QAGA,GAAA4+B,UAAA,GACA,IAAA2E,QAAA7F,EAAAwC,WACAA,WAAAqD,KAAAt9B,eAAAy3B,EAAAwC,WAAAqD,MAOA,IAHAD,QAAA1E,UAAAryB,QAGA+2B,SAcA,GAZA5F,EAAAuC,eAAAqD,WACAxE,MAAApB,EAAAuC,eAAAqD,UAAAP,WAIA9pB,MAAA6pB,WAAApF,EAAA8F,aACAT,SAAArF,EAAA8F,WAAAT,SAAArF,EAAAiB,WAGA1lB,KAAAqqB,QACAA,QAAA1E,UAAAryB,QAKA,GAAA,MAAA+2B,QAEAA,QAAArqB,UAGA,GAAA,MAAAA,MAAAA,OAAAqqB,QAAA,CAMA,KAHAC,KAAArD,WAAAjnB,KAAA,IAAAqqB,UAAApD,WAAA,KAAAoD,UAIA,IAAAD,SAAAnD,WAIA,IADAxxB,IAAA20B,MAAAr9B,MAAA,MACA,KAAAs9B,UAGAC,KAAArD,WAAAjnB,KAAA,IAAAvK,IAAA,KACAwxB,WAAA,KAAAxxB,IAAA,KACA,EAGA,IAAA60B,KACAA,KAAArD,WAAAmD,QAGA,IAAAnD,WAAAmD,SACAC,QAAA50B,IAAA,GACAkwB,UAAAjvB,QAAAjB,IAAA,KAEA,MAOA,IAAA,IAAA60B,KAGA,GAAAA,MAAA7F,EAAA+F,OACAV,SAAAQ,KAAAR,eAEA,IACAA,SAAAQ,KAAAR,UACA,MAAAl4B,GACA,OACAsR,MAAA,cACAxX,MAAA4+B,KAAA14B,EAAA,sBAAAoO,KAAA,OAAAqqB,UASA,OAAAnnB,MAAA,UAAAqE,KAAAuiB,UAucAW,CAAAhG,EAAAqF,SAAAjE,MAAAgE,WAGAA,WAGApF,EAAA6E,cACAS,SAAAlE,MAAA6C,kBAAA,oBAEA//B,OAAA49B,aAAAqB,UAAAmC,WAEAA,SAAAlE,MAAA6C,kBAAA,WAEA//B,OAAA69B,KAAAoB,UAAAmC,WAKA,MAAAhB,QAAA,SAAAtE,EAAAv/B,KACA+jC,WAAA,YAGA,MAAAF,OACAE,WAAA,eAIAA,WAAAa,SAAA5mB,MACAumB,QAAAK,SAAAviB,KAEAsiB,YADAn+B,MAAAo+B,SAAAp+B,UAMAA,MAAAu9B,YACAF,QAAAE,aACAA,WAAA,QACAF,OAAA,IACAA,OAAA,KAMAlD,MAAAkD,OAAAA,OACAlD,MAAAoD,YAAAU,kBAAAV,YAAA,GAGAY,UACAzmB,SAAAmB,YAAA4jB,iBAAAsB,QAAAR,WAAApD,QAEAziB,SAAAuB,WAAAwjB,iBAAAtC,MAAAoD,WAAAv9B,QAIAm6B,MAAAyC,WAAAA,YACAA,gBAAAjjC,EAEA4iC,aACAG,mBAAAjY,QAAA0Z,UAAA,cAAA,aACAhE,MAAApB,EAAAoF,UAAAJ,QAAA/9B,QAIA28B,iBAAAvlB,SAAAqlB,iBAAAtC,MAAAoD,aAEAhB,cACAG,mBAAAjY,QAAA,gBAAA0V,MAAApB,MAGA97B,OAAA29B,QACA39B,OAAA2kB,MAAA6C,QAAA,cAKA,OAAA0V,OAGA6E,QAAA,SAAA7lC,IAAA0iB,KAAAzd,UACA,OAAAnB,OAAAW,IAAAzE,IAAA0iB,KAAAzd,SAAA,SAGAlF,UAAA,SAAAC,IAAAiF,UACA,OAAAnB,OAAAW,IAAAzE,SAAAQ,EAAAyE,SAAA,aAIAnB,OAAAkB,MAAA,MAAA,QAAA,SAAAxB,EAAAqZ,QACA/Y,OAAA+Y,QAAA,SAAA7c,IAAA0iB,KAAAzd,SAAA5E,MAUA,OAPAyC,WAAA4f,QACAriB,KAAAA,MAAA4E,SACAA,SAAAyd,KACAA,UAAAliB,GAIAsD,OAAA++B,KAAA/+B,OAAAgC,QACA9F,IAAAA,IACAK,KAAAwc,OACAgkB,SAAAxgC,KACAqiB,KAAAA,KACAkiB,QAAA3/B,UACAnB,OAAAwC,cAAAtG,MAAAA,SAKA8D,OAAA0rB,SAAA,SAAAxvB,KACA,OAAA8D,OAAA++B,MACA7iC,IAAAA,IAGAK,KAAA,MACAwgC,SAAA,SACAvyB,OAAA,EACAyzB,OAAA,EACAzgC,QAAA,EACAqkC,QAAA,KAKA7hC,OAAAE,GAAA8B,QACAggC,QAAA,SAAAvW,MACA,IAAAlI,KAyBA,OAvBAzlB,KAAA,KACAkB,WAAAysB,QACAA,KAAAA,KAAA3sB,KAAAhB,KAAA,KAIAylB,KAAAvjB,OAAAyrB,KAAA3tB,KAAA,GAAA4L,eAAAjI,GAAA,GAAAY,OAAA,GAEAvE,KAAA,GAAA+B,YACA0jB,KAAA8I,aAAAvuB,KAAA,IAGAylB,KAAAniB,IAAA,WAGA,IAFA,IAAAC,KAAAvD,KAEAuD,KAAA4gC,mBACA5gC,KAAAA,KAAA4gC,kBAGA,OAAA5gC,OACA8qB,OAAAruB,OAGAA,MAGAokC,UAAA,SAAAzW,MACA,OAAAzsB,WAAAysB,MACA3tB,KAAAoD,KAAA,SAAAxB,GACAM,OAAAlC,MAAAokC,UAAAzW,KAAA3sB,KAAAhB,KAAA4B,MAIA5B,KAAAoD,KAAA,WACA,IAAA2V,KAAA7W,OAAAlC,MACAsZ,SAAAP,KAAAO,WAEAA,SAAA9W,OACA8W,SAAA4qB,QAAAvW,MAGA5U,KAAAsV,OAAAV,SAKAlI,KAAA,SAAAkI,MACA,IAAA0W,eAAAnjC,WAAAysB,MAEA,OAAA3tB,KAAAoD,KAAA,SAAAxB,GACAM,OAAAlC,MAAAkkC,QAAAG,eAAA1W,KAAA3sB,KAAAhB,KAAA4B,GAAA+rB,SAIA2W,OAAA,SAAArlC,UAIA,OAHAe,KAAAuS,OAAAtT,UAAA+T,IAAA,QAAA5P,KAAA,WACAlB,OAAAlC,MAAA0uB,YAAA1uB,KAAAkL,cAEAlL,QAKAkC,OAAAgO,KAAAxH,QAAA2tB,OAAA,SAAA9yB,MACA,OAAArB,OAAAgO,KAAAxH,QAAA67B,QAAAhhC,OAEArB,OAAAgO,KAAAxH,QAAA67B,QAAA,SAAAhhC,MACA,SAAAA,KAAAutB,aAAAvtB,KAAAihC,cAAAjhC,KAAA+wB,iBAAA9xB,SAMAN,OAAA09B,aAAA6E,IAAA,WACA,IACA,OAAA,IAAA5mC,OAAA6mC,eACA,MAAAv5B,MAGA,IAAAw5B,kBAGAC,EAAA,IAIAC,KAAA,KAEAC,aAAA5iC,OAAA09B,aAAA6E,MAEAxjC,QAAA8jC,OAAAD,cAAA,oBAAAA,aACA7jC,QAAAggC,KAAA6D,eAAAA,aAEA5iC,OAAA8+B,cAAA,SAAA78B,SACA,IAAAd,SAAA2hC,cAGA,GAAA/jC,QAAA8jC,MAAAD,eAAA3gC,QAAAu+B,YACA,OACAO,KAAA,SAAAH,QAAAhL,UACA,IAAAl2B,EACA6iC,IAAAtgC,QAAAsgC,MAWA,GATAA,IAAAQ,KACA9gC,QAAA1F,KACA0F,QAAA/F,IACA+F,QAAAg8B,MACAh8B,QAAA+gC,SACA/gC,QAAA0Q,UAIA1Q,QAAAghC,UACA,IAAAvjC,KAAAuC,QAAAghC,UACAV,IAAA7iC,GAAAuC,QAAAghC,UAAAvjC,GAmBA,IAAAA,KAdAuC,QAAAk+B,UAAAoC,IAAArC,kBACAqC,IAAArC,iBAAAj+B,QAAAk+B,UAQAl+B,QAAAu+B,aAAAI,QAAA,sBACAA,QAAA,oBAAA,kBAIAA,QACA2B,IAAAtC,iBAAAvgC,EAAAkhC,QAAAlhC,IAIAyB,SAAA,SAAA5E,MACA,OAAA,WACA4E,WACAA,SAAA2hC,cAAAP,IAAAW,OACAX,IAAAY,QAAAZ,IAAAa,QAAAb,IAAAc,UACAd,IAAAe,mBAAA,KAEA,UAAA/mC,KACAgmC,IAAAlC,QACA,UAAA9jC,KAKA,iBAAAgmC,IAAAnC,OACAxK,SAAA,EAAA,SAEAA,SAGA2M,IAAAnC,OACAmC,IAAAjC,YAIA1K,SACA6M,iBAAAF,IAAAnC,SAAAmC,IAAAnC,OACAmC,IAAAjC,WAKA,UAAAiC,IAAAgB,cAAA,SACA,iBAAAhB,IAAAiB,cACAC,OAAAlB,IAAApB,WACAxhC,KAAA4iC,IAAAiB,cACAjB,IAAAvC,4BAQAuC,IAAAW,OAAA/hC,WACA2hC,cAAAP,IAAAY,QAAAZ,IAAAc,UAAAliC,SAAA,cAKAzE,IAAA6lC,IAAAa,QACAb,IAAAa,QAAAN,cAEAP,IAAAe,mBAAA,WAGA,IAAAf,IAAAjlB,YAMA3hB,OAAAugB,WAAA,WACA/a,UACA2hC,mBAQA3hC,SAAAA,SAAA,SAEA,IAGAohC,IAAAxB,KAAA9+B,QAAAy+B,YAAAz+B,QAAA2c,MAAA,MACA,MAAA3V,GAGA,GAAA9H,SACA,MAAA8H,IAKAo3B,MAAA,WACAl/B,UACAA,eAWAnB,OAAA6+B,cAAA,SAAA/C,GACAA,EAAA0E,cACA1E,EAAA1kB,SAAA/a,QAAA,KAKA2D,OAAA2+B,WACAR,SACA9hC,OAAA,6FAGA+a,UACA/a,OAAA,2BAEAiiC,YACAoF,cAAA,SAAA/jC,MAEA,OADAK,OAAAqD,WAAA1D,MACAA,SAMAK,OAAA6+B,cAAA,SAAA,SAAA/C,QACAp/B,IAAAo/B,EAAAtxB,QACAsxB,EAAAtxB,OAAA,GAEAsxB,EAAA0E,cACA1E,EAAAv/B,KAAA,SAKAyD,OAAA8+B,cAAA,SAAA,SAAAhD,GAIA,IAAAz/B,OAAA8E,SADA,GAAA26B,EAAA0E,YAEA,OACAO,KAAA,SAAAh5B,EAAA6tB,UACAv5B,OAAA2D,OAAA,YAAA6e,MACA8kB,QAAA7H,EAAA8H,cACApnC,IAAAs/B,EAAA5/B,MACAqoB,GACA,aACApjB,SAAA,SAAA0iC,KACAxnC,OAAA2d,SACA7Y,SAAA,KACA0iC,KACAjO,SAAA,UAAAiO,IAAAtnC,KAAA,IAAA,IAAAsnC,IAAAtnC,QAMA9B,SAAAmF,KAAA/C,YAAAR,OAAA,KAEAgkC,MAAA,WACAl/B,UACAA,eAUA,IAqGAqgB,KArGAsiB,gBACAC,OAAA,oBAGA/jC,OAAA2+B,WACAqF,MAAA,WACAC,cAAA,WACA,IAAA9iC,SAAA2iC,aAAA79B,OAAAjG,OAAA2C,QAAA,IAAAu4B,QAEA,OADAp9B,KAAAqD,WAAA,EACAA,YAKAnB,OAAA6+B,cAAA,aAAA,SAAA/C,EAAAoI,iBAAAhH,OAEA,IAAAiH,aAAAC,YAAAC,kBACAC,UAAA,IAAAxI,EAAAkI,QAAAD,OAAAh6B,KAAA+xB,EAAA5/B,KACA,MACA,iBAAA4/B,EAAAld,MAEA,KADAkd,EAAAoC,aAAA,IACA3/B,QAAA,sCACAwlC,OAAAh6B,KAAA+xB,EAAAld,OAAA,QAIA,GAAA0lB,UAAA,UAAAxI,EAAAkB,UAAA,GA8DA,OA3DAmH,aAAArI,EAAAmI,cAAAjlC,WAAA88B,EAAAmI,eACAnI,EAAAmI,gBACAnI,EAAAmI,cAGAK,SACAxI,EAAAwI,UAAAxI,EAAAwI,UAAA/mC,QAAAwmC,OAAA,KAAAI,eACA,IAAArI,EAAAkI,QACAlI,EAAA5/B,MAAAi/B,OAAApxB,KAAA+xB,EAAA5/B,KAAA,IAAA,KAAA4/B,EAAAkI,MAAA,IAAAG,cAIArI,EAAAwC,WAAA,eAAA,WAIA,OAHA+F,mBACArkC,OAAA+C,MAAAohC,aAAA,mBAEAE,kBAAA,IAIAvI,EAAAkB,UAAA,GAAA,OAGAoH,YAAAzoC,OAAAwoC,cACAxoC,OAAAwoC,cAAA,WACAE,kBAAA9iC,WAIA27B,MAAA1iB,OAAA,gBAGA9d,IAAA0nC,YACApkC,OAAArE,QAAAu9B,WAAAiL,cAIAxoC,OAAAwoC,cAAAC,YAIAtI,EAAAqI,gBAGArI,EAAAmI,cAAAC,iBAAAD,cAGAH,aAAAxlC,KAAA6lC,eAIAE,mBAAArlC,WAAAolC,cACAA,YAAAC,kBAAA,IAGAA,kBAAAD,iBAAA1nC,IAIA,WAYAqC,QAAAwlC,qBACA/iB,KAAA/mB,SAAA+pC,eAAAD,mBAAA,IAAA/iB,MACAzU,UAAA,6BACA,IAAAyU,KAAAxY,WAAA1I,QAQAN,OAAA+W,UAAA,SAAA6H,KAAA3e,QAAAwkC,aACA,MAAA,iBAAA7lB,SAGA,kBAAA3e,UACAwkC,YAAAxkC,QACAA,SAAA,GAKAA,UAIAlB,QAAAwlC,qBAMAtxB,MALAhT,QAAAxF,SAAA+pC,eAAAD,mBAAA,KAKAjoC,cAAA,SACAqV,KAAAlX,SAAA6W,SAAAK,KACA1R,QAAAL,KAAA/C,YAAAoW,OAEAhT,QAAAxF,UAIAiqC,OAAAhuB,WAAA/M,KAAAiV,MACAwE,SAAAqhB,gBAGAC,QACAzkC,QAAA3D,cAAAooC,OAAA,MAGAA,OAAAvhB,eAAAvE,MAAA3e,QAAAmjB,SAEAA,SAAAA,QAAA9iB,QACAN,OAAAojB,SAAApJ,SAGAha,OAAAgB,SAAA0jC,OAAA17B,cAlCA,IAAAiK,KAAAyxB,OAAAthB,SAyCApjB,OAAAE,GAAAonB,KAAA,SAAAprB,IAAAyoC,OAAAxjC,UACA,IAAApE,SAAAR,KAAA4kC,SACAtqB,KAAA/Y,KACA8mB,IAAA1oB,IAAAqC,QAAA,KAsDA,OApDAqmB,KAAA,IACA7nB,SAAAg8B,iBAAA78B,IAAAkC,MAAAwmB,MACA1oB,IAAAA,IAAAkC,MAAA,EAAAwmB,MAIA5lB,WAAA2lC,SAGAxjC,SAAAwjC,OACAA,YAAAjoC,GAGAioC,QAAA,iBAAAA,SACApoC,KAAA,QAIAsa,KAAAvW,OAAA,GACAN,OAAA++B,MACA7iC,IAAAA,IAKAK,KAAAA,MAAA,MACAwgC,SAAA,OACAne,KAAA+lB,SACAl/B,KAAA,SAAA+9B,cAGArC,SAAA5/B,UAEAsV,KAAA4U,KAAA1uB,SAIAiD,OAAA,SAAAmsB,OAAAnsB,OAAA+W,UAAAysB,eAAA72B,KAAA5P,UAGAymC,gBAKAhpB,OAAArZ,UAAA,SAAA+7B,MAAAkD,QACAvpB,KAAA3V,KAAA,WACAC,SAAAG,MAAAxD,KAAAqjC,WAAAjE,MAAAsG,aAAApD,OAAAlD,YAKAp/B,MAOAkC,OAAAkB,MACA,YACA,WACA,eACA,YACA,cACA,YACA,SAAAxB,EAAAnD,MACAyD,OAAAE,GAAA3D,MAAA,SAAA2D,IACA,OAAApC,KAAAymB,GAAAhoB,KAAA2D,OAOAF,OAAAgO,KAAAxH,QAAAo+B,SAAA,SAAAvjC,MACA,OAAArB,OAAA2D,KAAA3D,OAAAq3B,OAAA,SAAAn3B,IACA,OAAAmB,OAAAnB,GAAAmB,OACAf,QAMAN,OAAA6kC,QACAC,UAAA,SAAAzjC,KAAAY,QAAAvC,GACA,IAAAqlC,YAAAC,QAAAC,UAAAC,OAAAC,UAAAC,WACA1W,SAAA1uB,OAAAwgB,IAAAnf,KAAA,YACAgkC,QAAArlC,OAAAqB,MACAwmB,SAGA,WAAA6G,WACArtB,KAAAif,MAAAoO,SAAA,YAGAyW,UAAAE,QAAAR,SACAI,UAAAjlC,OAAAwgB,IAAAnf,KAAA,OACA+jC,WAAAplC,OAAAwgB,IAAAnf,KAAA,SACA,aAAAqtB,UAAA,UAAAA,YACAuW,UAAAG,YAAA7mC,QAAA,SAAA,GAMA2mC,QADAH,YAAAM,QAAA3W,YACAviB,IACA64B,QAAAD,YAAAzS,OAGA4S,OAAAnW,WAAAkW,YAAA,EACAD,QAAAjW,WAAAqW,aAAA,GAGApmC,WAAAiD,WAGAA,QAAAA,QAAAnD,KAAAuC,KAAA3B,EAAAM,OAAAgC,UAAAmjC,aAGA,MAAAljC,QAAAkK,MACA0b,MAAA1b,IAAAlK,QAAAkK,IAAAg5B,UAAAh5B,IAAA+4B,QAEA,MAAAjjC,QAAAqwB,OACAzK,MAAAyK,KAAArwB,QAAAqwB,KAAA6S,UAAA7S,KAAA0S,SAGA,UAAA/iC,QACAA,QAAAqjC,MAAAxmC,KAAAuC,KAAAwmB,OAGAwd,QAAA7kB,IAAAqH,SAKA7nB,OAAAE,GAAA8B,QAGA6iC,OAAA,SAAA5iC,SAGA,GAAAV,UAAAjB,OACA,YAAA5D,IAAAuF,QACAnE,KACAA,KAAAoD,KAAA,SAAAxB,GACAM,OAAA6kC,OAAAC,UAAAhnC,KAAAmE,QAAAvC,KAIA,IAAA6lC,KAAAC,IACAnkC,KAAAvD,KAAA,GAEA,OAAAuD,KAQAA,KAAA+wB,iBAAA9xB,QAKAilC,KAAAlkC,KAAAgxB,wBACAmT,IAAAnkC,KAAAqI,cAAAwC,aAEAC,IAAAo5B,KAAAp5B,IAAAq5B,IAAAC,YACAnT,KAAAiT,KAAAjT,KAAAkT,IAAAE,eARAv5B,IAAA,EAAAmmB,KAAA,QATA,GAuBA5D,SAAA,WACA,GAAA5wB,KAAA,GAAA,CAIA,IAAA6nC,aAAAd,OAAArlC,IACA6B,KAAAvD,KAAA,GACA8nC,cAAAz5B,IAAA,EAAAmmB,KAAA,GAGA,GAAA,UAAAtyB,OAAAwgB,IAAAnf,KAAA,YAGAwjC,OAAAxjC,KAAAgxB,4BAEA,CAOA,IANAwS,OAAA/mC,KAAA+mC,SAIArlC,IAAA6B,KAAAqI,cACAi8B,aAAAtkC,KAAAskC,cAAAnmC,IAAAuM,gBACA45B,eACAA,eAAAnmC,IAAAgiB,MAAAmkB,eAAAnmC,IAAAuM,kBACA,WAAA/L,OAAAwgB,IAAAmlB,aAAA,aAEAA,aAAAA,aAAA9lC,WAEA8lC,cAAAA,eAAAtkC,MAAA,IAAAskC,aAAAzmC,YAGA0mC,aAAA5lC,OAAA2lC,cAAAd,UACA14B,KAAAnM,OAAAwgB,IAAAmlB,aAAA,kBAAA,GACAC,aAAAtT,MAAAtyB,OAAAwgB,IAAAmlB,aAAA,mBAAA,IAKA,OACAx5B,IAAA04B,OAAA14B,IAAAy5B,aAAAz5B,IAAAnM,OAAAwgB,IAAAnf,KAAA,aAAA,GACAixB,KAAAuS,OAAAvS,KAAAsT,aAAAtT,KAAAtyB,OAAAwgB,IAAAnf,KAAA,cAAA,MAcAskC,aAAA,WACA,OAAA7nC,KAAAsD,IAAA,WAGA,IAFA,IAAAukC,aAAA7nC,KAAA6nC,aAEAA,cAAA,WAAA3lC,OAAAwgB,IAAAmlB,aAAA,aACAA,aAAAA,aAAAA,aAGA,OAAAA,cAAA55B,qBAMA/L,OAAAkB,MAAAsyB,WAAA,cAAAD,UAAA,eAAA,SAAAxa,OAAA8F,MACA,IAAA1S,IAAA,gBAAA0S,KAEA7e,OAAAE,GAAA6Y,QAAA,SAAA5K,KACA,OAAAqP,OAAA1f,KAAA,SAAAuD,KAAA0X,OAAA5K,KAGA,IAAAq3B,IAOA,GANArmC,SAAAkC,MACAmkC,IAAAnkC,KACA,IAAAA,KAAAnC,WACAsmC,IAAAnkC,KAAA6K,kBAGAxP,IAAAyR,IACA,OAAAq3B,IAAAA,IAAA3mB,MAAAxd,KAAA0X,QAGAysB,IACAA,IAAAK,SACA15B,IAAAq5B,IAAAE,YAAAv3B,IACAhC,IAAAgC,IAAAq3B,IAAAC,aAIApkC,KAAA0X,QAAA5K,KAEA4K,OAAA5K,IAAA5M,UAAAjB,WAUAN,OAAAkB,MAAA,MAAA,QAAA,SAAAxB,EAAAmf,MACA7e,OAAAmxB,SAAAtS,MAAA+O,aAAA7uB,QAAAowB,cACA,SAAA9tB,KAAAisB,UACA,GAAAA,SAIA,OAHAA,SAAAD,OAAAhsB,KAAAwd,MAGAmO,UAAAjjB,KAAAujB,UACAttB,OAAAqB,MAAAqtB,WAAA7P,MAAA,KACAyO,aAQAttB,OAAAkB,MAAA4kC,OAAA,SAAAC,MAAA,SAAA,SAAA7jC,KAAA3F,MACAyD,OAAAkB,MAAAsxB,QAAA,QAAAtwB,KAAAkW,QAAA7b,KAAAypC,GAAA,QAAA9jC,MACA,SAAA+jC,aAAAC,UAGAlmC,OAAAE,GAAAgmC,UAAA,SAAA3T,OAAAvuB,OACA,IAAAyZ,UAAAlc,UAAAjB,SAAA2lC,cAAA,kBAAA1T,QACA3B,MAAAqV,gBAAA,IAAA1T,SAAA,IAAAvuB,MAAA,SAAA,UAEA,OAAAwZ,OAAA1f,KAAA,SAAAuD,KAAA9E,KAAAyH,OACA,IAAAxE,IAEA,OAAAL,SAAAkC,MAGA,IAAA6kC,SAAA3nC,QAAA,SACA8C,KAAA,QAAAa,MACAb,KAAA5G,SAAAsR,gBAAA,SAAA7J,MAIA,IAAAb,KAAAnC,UACAM,IAAA6B,KAAA0K,gBAIAnJ,KAAAytB,IACAhvB,KAAAmgB,KAAA,SAAAtf,MAAA1C,IAAA,SAAA0C,MACAb,KAAAmgB,KAAA,SAAAtf,MAAA1C,IAAA,SAAA0C,MACA1C,IAAA,SAAA0C,aAIAxF,IAAAsH,MAGAhE,OAAAwgB,IAAAnf,KAAA9E,KAAAq0B,OAGA5wB,OAAAsgB,MAAAjf,KAAA9E,KAAAyH,MAAA4sB,QACAr0B,KAAAkhB,UAAA8U,YAAA71B,EAAA+gB,gBAMAzd,OAAAkB,KAAA,wLAEAkD,MAAA,KACA,SAAA1E,EAAAwC,MAGAlC,OAAAE,GAAAgC,MAAA,SAAA0c,KAAA1e,IACA,OAAAqB,UAAAjB,OAAA,EACAxC,KAAAymB,GAAAriB,KAAA,KAAA0c,KAAA1e,IACApC,KAAA0pB,QAAAtlB,SAIAlC,OAAAE,GAAA8B,QACAmkC,MAAA,SAAAC,OAAAC,OACA,OAAAvoC,KAAAmsB,WAAAmc,QAAAlc,WAAAmc,OAAAD,WAOApmC,OAAAE,GAAA8B,QAEA2zB,KAAA,SAAAnR,MAAA5F,KAAA1e,IACA,OAAApC,KAAAymB,GAAAC,MAAA,KAAA5F,KAAA1e,KAEAomC,OAAA,SAAA9hB,MAAAtkB,IACA,OAAApC,KAAA8mB,IAAAJ,MAAA,KAAAtkB,KAGAqmC,SAAA,SAAAxpC,SAAAynB,MAAA5F,KAAA1e,IACA,OAAApC,KAAAymB,GAAAC,MAAAznB,SAAA6hB,KAAA1e,KAEAsmC,WAAA,SAAAzpC,SAAAynB,MAAAtkB,IAGA,OAAA,IAAAqB,UAAAjB,OACAxC,KAAA8mB,IAAA7nB,SAAA,MACAe,KAAA8mB,IAAAJ,MAAAznB,UAAA,KAAAmD,OAQAF,OAAAymC,MAAA,SAAAvmC,GAAAD,SACA,IAAA6M,IAAA4D,KAAA+1B,MAUA,GARA,iBAAAxmC,UACA6M,IAAA5M,GAAAD,SACAA,QAAAC,GACAA,GAAA4M,KAKA9N,WAAAkB,IAaA,OARAwQ,KAAAtS,MAAAU,KAAAyC,UAAA,IACAklC,MAAA,WACA,OAAAvmC,GAAAoB,MAAArB,SAAAnC,KAAA4S,KAAArS,OAAAD,MAAAU,KAAAyC,eAIA0C,KAAA/D,GAAA+D,KAAA/D,GAAA+D,MAAAjE,OAAAiE,OAEAwiC,OAGAzmC,OAAA0mC,UAAA,SAAAC,MACAA,KACA3mC,OAAAod,YAEApd,OAAAgX,OAAA,IAGAhX,OAAA0C,QAAAD,MAAAC,QACA1C,OAAA4mC,UAAAxnB,KAAAC,MACArf,OAAAgK,SAAAA,SACAhK,OAAAhB,WAAAA,WACAgB,OAAAb,SAAAA,SACAa,OAAAme,UAAAA,UACAne,OAAAzD,KAAAwD,OAEAC,OAAAkoB,IAAA5iB,KAAA4iB,IAEAloB,OAAA6mC,UAAA,SAAA5nC,KAKA,IAAA1C,KAAAyD,OAAAzD,KAAA0C,KACA,OAAA,WAAA1C,MAAA,WAAAA,QAKAuqC,MAAA7nC,IAAA8vB,WAAA9vB,OAmBA,mBAAA8nC,QAAAA,OAAAC,KACAD,OAAA,YAAA,WACA,OAAA/mC,SAOA,IAGAinC,QAAAtrC,OAAAqE,OAGAknC,GAAAvrC,OAAAwrC,EAwBA,OAtBAnnC,OAAAonC,WAAA,SAAA7kC,MASA,OARA5G,OAAAwrC,IAAAnnC,SACArE,OAAAwrC,EAAAD,IAGA3kC,MAAA5G,OAAAqE,SAAAA,SACArE,OAAAqE,OAAAinC,SAGAjnC,QAMAjC,WACApC,OAAAqE,OAAArE,OAAAwrC,EAAAnnC,QAMAA,SCpnUA,SAAAuR,KAAA9T,SACA,aAGA,mBAAAspC,QAAAA,OAAAC,IACAD,QAAA,UAAAtpC,SACA,iBAAAC,QAAAA,OAAAC,QACAD,OAAAC,QAAAF,QAAA4pC,QAAA,WAEA5pC,QAAA8T,KAAA+1B,QATA,CAWAxpC,KAAA,SAAAwpC,QACA,aAQA,IAKAC,YAJAC,SACAC,SACAC,SACAC,WAGAC,cAAAN,OAAAO,QAAAzjC,MAAA,KACA0jC,OAAAF,cAAA,GACAG,OAAAH,cAAA,GAWA,SAAAI,cAAA9e,UACA,OAAAA,SAAA,GACAA,SAAA,GACAA,SAAA,GACAA,SAAA,GAEAA,SAAA,GAGA,SAAA+e,aAAA7pB,QACA,IAAA1e,EAAA,EACAozB,MAAA1U,OAAAha,MAAA,KACA8jC,MAAApV,MAAA,GACAqV,WAAArV,MAAA,IAAA,GACAsV,WAAA,EAEAC,IAAA,EACAC,KAAA,EASA,IANA,KAAAlqB,OAAA3V,WAAA,KACA/I,EAAA,EACA4oC,MAAA,GAIA5oC,EAAAwoC,MAAA5nC,OAAAZ,IAEA2oC,IAAA,GAAAA,IADAL,cAAAE,MAAAz/B,WAAA/I,IAKA,IAAAA,EAAA,EAAAA,EAAAyoC,WAAA7nC,OAAAZ,IACA0oC,YAAA,GAEAC,KADAL,cAAAG,WAAA1/B,WAAA/I,IACA0oC,WAGA,OAAAC,IAAAC,KAGA,SAAAC,WAAAC,OACA,IAAA,IAAA9oC,EAAA,EAAAA,EAAA8oC,MAAAloC,OAAAZ,IACA8oC,MAAA9oC,GAAAuoC,aAAAO,MAAA9oC,IAYA,SAAA+oC,WAAAvoB,OAAAwoB,SACA,IAAAhpC,EAAA2oC,OAEA,IAAA3oC,EAAA,EAAAA,EAAAgpC,QAAApoC,OAAAZ,IACA2oC,IAAA3oC,GAAAwgB,OAAAwoB,QAAAhpC,IAGA,OAAA2oC,IAGA,SAAAM,OAAAvqB,QACA,IAAAQ,KAAAR,OAAAha,MAAA,KACAwkC,QAAAhqB,KAAA,GAAAxa,MAAA,KACAskC,QAAA9pB,KAAA,GAAAxa,MAAA,IACAykC,OAAAjqB,KAAA,GAAAxa,MAAA,KAQA,OANAmkC,WAAAK,SACAL,WAAAG,SACAH,WAAAM,QA1BA,SAAAL,MAAAloC,QACA,IAAA,IAAAZ,EAAA,EAAAA,EAAAY,OAAAZ,IACA8oC,MAAA9oC,GAAAkD,KAAAksB,OAAA0Z,MAAA9oC,EAAA,IAAA,GAAA,IAAA8oC,MAAA9oC,IAGA8oC,MAAAloC,OAAA,GAAAwoC,EAAAA,EAuBAC,CAAAF,OAAAH,QAAApoC,SAGA4B,KAAA0c,KAAA,GACAoqB,MAAAP,WAAA7pB,KAAA,GAAAxa,MAAA,KAAAskC,SACAE,QAAAH,WAAAG,QAAAF,SACAG,OAAAA,OACAI,WAAA,EAAArqB,KAAA,IAQA,SAAAsqB,KAAAC,cACAA,cACArrC,KAAAsrC,KAAAT,OAAAQ,eAqEA,SAAAE,SAAAC,IACA,IAAAC,WAAAD,GAAAE,eACAC,KAAAF,WAAAjgC,MAAA,gBAaA,SARAmgC,KAJAA,MAAAA,KAAA,IAGAA,KAAAA,KAAA,GAAAngC,MAAA,WACAmgC,KAAAv/B,KAAA,SAAAxN,GAIA+sC,KAAAF,WAAAjgC,MAAA,gBACAmgC,KAAA,QAAA/sC,KAIA+sC,UAAA/sC,GAGAoB,KAAAwrC,IAAAA,GACAxrC,KAAA2rC,KAAAA,KACA3rC,KAAA+mC,OAAAyE,GAAAI,oBAGA,SAAAC,UAAAC,MACA9rC,KAAA8rC,KAAAA,KACA9rC,KAAA+rC,YAAA,EACA/rC,KAAAgsC,UAAA,EAUA,SAAAC,WAAAC,IAAA9hC,MAGA,IAFA,IAAA+hC,IAAA5+B,KAEAA,KAAA,MAAAnD,KAAAohC,GAAAU,IAAAV,IAAA,KAAA,KACAW,IAAA,IAAAZ,SAAA,IAAA/jC,KAAA0kC,IAAAV,GAAAj+B,QACAw5B,SAAAmF,IAAAnF,OACAmF,IAAAC,IAEA/hC,KAAA+hC,IAIA,OAAAD,IA2BA,SAAAE,eAAAnkC,EAAAC,GACA,OAAAD,EAAA8jC,cAAA7jC,EAAA6jC,YACA9jC,EAAA8jC,YAAA7jC,EAAA6jC,YAEA9jC,EAAA+jC,YAAA9jC,EAAA8jC,UACA/jC,EAAA+jC,UAAA9jC,EAAA8jC,UAEA9jC,EAAA4jC,KAAAX,WAAAljC,EAAA6jC,KAAAX,WAGA,SAAAkB,aAAAjoC,KAAA0mC,SACA,IAAAlpC,EAAAmlC,OAEA,IADA0D,WAAAK,SACAlpC,EAAA,EAAAA,EAAAkpC,QAAAtoC,OAAAZ,IACAmlC,OAAA+D,QAAAlpC,GACAioC,QAAA9C,QAAA8C,QAAA9C,YACA8C,QAAA9C,QAAA3iC,OAAA,EAIA,SAAAkoC,sBAAAxB,SACA,IAGAlpC,EAAAkC,EAAAyoC,cAHAC,cAAA1B,QAAAtoC,OACAiqC,mBACAlC,OAGA,IAAA3oC,EAAA,EAAAA,EAAA4qC,cAAA5qC,IAEA,IAAAkC,KADAyoC,cAAA1C,QAAAiB,QAAAlpC,GAAAmlC,YAEAwF,cAAA1rC,eAAAiD,KACA2oC,gBAAA3oC,IAAA,GAKA,IAAAlC,KAAA6qC,gBACAA,gBAAA5rC,eAAAe,IACA2oC,IAAA/pC,KAAAopC,MAAAhoC,IAIA,OAAA2oC,IAGA,SAAAmC,eAGA,IACA,IAAAC,SAAAC,KAAAC,iBAAAC,kBAAAC,SACA,GAAAJ,UAAAA,SAAAnqC,OAAA,EAAA,CACA,IAAA4B,KAAAwlC,MAAAoD,cAAAL,WACA,GAAAvoC,KACA,OAAAA,KAEA6oC,SAAA,yBAAAN,SAAA,2DAEA,MAAAxhC,IAIA,IAIA+hC,UAAAtrC,EAAAkC,EAJAgnC,QApFA,WACA,IAGAqC,OAAAliC,KAAArJ,EAHAwrC,WAAA,IAAA5lC,MAAA6lC,cAAA,EACAzpC,KAAA,IAAA2nC,SAAA,IAAA/jC,KAAA4lC,UAAA,EAAA,IACAtC,SAAAlnC,MAGA,IAAAhC,EAAA,EAAAA,EAAA,GAAAA,KACAqJ,KAAA,IAAAsgC,SAAA,IAAA/jC,KAAA4lC,UAAAxrC,EAAA,KACAmlC,SAAAnjC,KAAAmjC,SACAoG,OAAAlB,WAAAroC,KAAAqH,MACA6/B,QAAAtqC,KAAA2sC,QACArC,QAAAtqC,KAAA,IAAA+qC,SAAA,IAAA/jC,KAAA2lC,OAAA3B,GAAA,QAEA5nC,KAAAqH,KAGA,IAAArJ,EAAA,EAAAA,EAAA,EAAAA,IACAkpC,QAAAtqC,KAAA,IAAA+qC,SAAA,IAAA/jC,KAAA4lC,UAAAxrC,EAAA,EAAA,KACAkpC,QAAAtqC,KAAA,IAAA+qC,SAAA,IAAA/jC,KAAA4lC,UAAAxrC,EAAA,EAAA,KAGA,OAAAkpC,QA+DAwC,GACAd,cAAA1B,QAAAtoC,OACAqnC,QAAAyC,sBAAAxB,SACAyC,cAGA,IAAA3rC,EAAA,EAAAA,EAAAioC,QAAArnC,OAAAZ,IAAA,CAEA,IADAsrC,UAAA,IAAArB,UAAA2B,QAAA3D,QAAAjoC,IAAA4qC,eACA1oC,EAAA,EAAAA,EAAA0oC,cAAA1oC,IACAopC,UAAAO,cAAA3C,QAAAhnC,IAEAypC,WAAA/sC,KAAA0sC,WAKA,OAFAK,WAAAvpC,KAAAooC,gBAEAmB,WAAA/qC,OAAA,EAAA+qC,WAAA,GAAAzB,KAAA1nC,UAAAxF,EAcA,SAAAouC,cAAA5oC,MACA,OAAAA,MAAA,IAAAmC,cAAA9G,QAAA,MAAA,KAGA,SAAAiuC,QAAAC,QACA,IAAA/rC,EAAAwC,KAAAkC,MAAAsnC,WAMA,IAJA,iBAAAD,SACAA,QAAAA,SAGA/rC,EAAA,EAAAA,EAAA+rC,OAAAnrC,OAAAZ,IAGAgsC,WAAAZ,cADA5oC,MADAkC,MAAAqnC,OAAA/rC,GAAA0E,MAAA,MACA,IAEAojC,MAAAkE,YAAAD,OAAA/rC,GACAgoC,MAAAgE,YAAAxpC,KACAioC,aAAAuB,WAAAtnC,MAAA,GAAAA,MAAA,MAIA,SAAAknC,QAAAppC,KAAAypC,QACAzpC,KAAA4oC,cAAA5oC,MAEA,IACA0pC,KADAhC,KAAApC,MAAAtlC,MAGA,OAAA0nC,gBAAAV,KACAU,KAGA,iBAAAA,MACAA,KAAA,IAAAV,KAAAU,MACApC,MAAAtlC,MAAA0nC,KACAA,MAIAnC,MAAAvlC,OAAAypC,SAAAL,UAAAM,KAAAN,QAAA7D,MAAAvlC,MAAAopC,YACA1B,KAAApC,MAAAtlC,MAAA,IAAAgnC,MACAE,KAAAwC,MACAhC,KAAA1nC,KAAAwlC,MAAAxlC,MACA0nC,MAGA,KAeA,SAAAiC,QAAAC,SACA,IAAApsC,EAAAqsC,MAAAC,QAAAC,QAMA,IAJA,iBAAAH,UACAA,SAAAA,UAGApsC,EAAA,EAAAA,EAAAosC,QAAAxrC,OAAAZ,IAGAssC,QAAAlB,eAFAiB,MAAAD,QAAApsC,GAAA0E,MAAA,MAEA,IACA6nC,QAAAnB,cAAAiB,MAAA,IAEAtE,MAAAuE,SAAAC,QACAvE,MAAAsE,SAAAD,MAAA,GAEAtE,MAAAwE,SAAAD,QACAtE,MAAAuE,SAAAF,MAAA,GAkBA,SAAAG,YAAA9iC,GACA,IAAA+iC,gBAAA,MAAA/iC,EAAAgjC,IAAA,MAAAhjC,EAAAgjC,GACA,SAAAhjC,EAAAijC,SAAA3vC,IAAA0M,EAAAkjC,MAAAH,iBAGA,SAAApB,SAAAhuB,SACA,oBAAAF,SAAA,mBAAAA,QAAA9Z,OACA8Z,QAAA9Z,MAAAga,SAQA,SAAAwvB,GAAAv/B,OACA,IAAA0D,KAAAjO,MAAAlC,UAAAnC,MAAAU,KAAAyC,UAAA,GAAA,GACAW,KAAAX,UAAAA,UAAAjB,OAAA,GACAspC,KAAA0B,QAAAppC,MACAmmC,IAAAf,OAAAkF,IAAAlrC,MAAA,KAAAoP,MAQA,OANAk5B,OAAAtC,OAAAmF,SAAAz/B,QAAAk/B,YAAA7D,MACAA,IAAAzwB,IAAAgyB,KAAAvqB,MAAAgpB,KAAA,WAGAA,IAAAkE,GAAArqC,MAEAmmC,KAzcAP,MAAA,GAAA,IAAAA,OAAAC,MAAA,IACAgD,SAAA,wEAAAzD,OAAAO,QAAA,sBAuGAqB,KAAA3oC,WACA6oC,KAAA,SAAAsD,UACA5uC,KAAAoE,KAAAwqC,SAAAxqC,KACApE,KAAAkrC,MAAA0D,SAAA1D,MACAlrC,KAAA+qC,OAAA6D,SAAA7D,OACA/qC,KAAA8qC,QAAA8D,SAAA9D,QACA9qC,KAAAmrC,WAAAyD,SAAAzD,YAGA0D,OAAA,SAAAC,WACA,IAEAltC,EAFA4C,QAAAsqC,UACA/D,OAAA/qC,KAAA+qC,OAGA,IAAAnpC,EAAA,EAAAA,EAAAmpC,OAAAvoC,OAAAZ,IACA,GAAA4C,OAAAumC,OAAAnpC,GACA,OAAAA,GAKA2f,MAAA,SAAAutB,WACA,IAIA/H,OAAAgI,WAAAC,WAAAptC,EAJA4C,QAAAsqC,UACAhE,QAAA9qC,KAAA8qC,QACAC,OAAA/qC,KAAA+qC,OACAxY,IAAAwY,OAAAvoC,OAAA,EAGA,IAAAZ,EAAA,EAAAA,EAAA2wB,IAAA3wB,IAWA,GAVAmlC,OAAA+D,QAAAlpC,GACAmtC,WAAAjE,QAAAlpC,EAAA,GACAotC,WAAAlE,QAAAlpC,EAAAA,EAAA,EAAAA,GAEAmlC,OAAAgI,YAAAN,GAAAQ,qBACAlI,OAAAgI,WACAhI,OAAAiI,YAAAP,GAAAS,qBACAnI,OAAAiI,YAGAxqC,OAAAumC,OAAAnpC,GAAA,IAAAmlC,OACA,OAAA+D,QAAAlpC,GAIA,OAAAkpC,QAAAvY,MAGAoZ,KAAA,SAAAwD,KACA,OAAAnvC,KAAAkrC,MAAAlrC,KAAA6uC,OAAAM,OAGApI,OAAA,SAAAoI,KAEA,OADAlC,SAAA,8DACAjtC,KAAA8qC,QAAA9qC,KAAA6uC,OAAAM,OAGAC,UAAA,SAAAD,KACA,OAAAnvC,KAAA8qC,QAAA9qC,KAAA6uC,OAAAM,QAsCAtD,UAAAppC,UAAAgrC,cAAA,SAAA4B,UACArvC,KAAA+rC,aAAAjnC,KAAAwqC,IAAAtvC,KAAA8rC,KAAAsD,UAAAC,SAAA7D,IAAA6D,SAAAtI,QACA/mC,KAAA8rC,KAAAH,KAAA0D,SAAA7D,IAAA/rC,QAAA,UAAA,MAAA4vC,SAAA1D,MACA3rC,KAAAgsC,aAkQAyC,GAAA1E,QAxdA,SAydA0E,GAAAc,YAAA,GACAd,GAAAe,OAAA9F,MACA+E,GAAAgB,OAAA9F,MACA8E,GAAAiB,OAAA9F,MACA6E,GAAA30B,IAAA4zB,QACAe,GAAAX,KAAAC,QACAU,GAAAjlB,KAnDA,SAAA1I,MACA4sB,QAAA5sB,KAAA4oB,OACAqE,QAAAjtB,KAAA6oB,OACA8E,GAAAc,YAAAzuB,KAAAipB,SAiDA0E,GAAA3C,KAAA0B,QACAiB,GAAAkB,WA/CA,SAAAA,WAAAvrC,MAKA,OAJAurC,WAAAC,eACAD,WAAAC,cAAA,EACA3C,SAAA,yBAAA7oC,KAAA,uDAAAA,KAAA,SAEAopC,QAAAppC,OA2CAqqC,GAAAoB,MAlJA,SAAAC,aAIA,OAHArG,cAAAqG,cACArG,YAAAiD,gBAEAjD,aA+IAgF,GAAA7E,MAxFA,WACA,IAAAhoC,EAAA2oC,OAEA,IAAA3oC,KAAAgoC,MACAA,MAAA/oC,eAAAe,KAAA8nC,MAAA9nC,IAAA8nC,MAAAC,MAAA/nC,MAAAgoC,MAAAhoC,IACA2oC,IAAA/pC,KAAAopC,MAAAhoC,IAIA,OAAA2oC,IAAAvmC,QAgFAyqC,GAAArD,KAAAA,KACAqD,GAAA5D,OAAAA,OACA4D,GAAAtE,aAAAA,aACAsE,GAAAL,YAAAA,YACAK,GAAAS,oBAAA,EACAT,GAAAQ,sBAAA,EAMA,IAkDArsB,IAlDAxgB,GAAAonC,OAAApnC,GA2CA,SAAA2tC,SAAAntB,KACA,OAAA,WACA,OAAA5iB,KAAAgwC,GAAAhwC,KAAAgwC,GAAArE,KAAA3rC,MACA4iB,IAAA5hB,KAAAhB,OA5CAwpC,OAAAiF,GAAAA,GAEAjF,OAAAyG,YAAA,KAEAzG,OAAA0G,aAAA,SAAAf,IAAAgB,UACA,IACApJ,OADA+E,KAAAtC,OAAAyG,iBAGArxC,IAAAuwC,IAAAa,KACAlE,MAAAsC,YAAAe,OAAAA,IAAAiB,SACAjB,IAAAkB,GAAA7G,OAAAkF,IAAAS,IAAAZ,IAAA8B,GACAlB,IAAAT,MAAA50B,IAAAgyB,KAAAvqB,MAAA4tB,KAAA,YAEAA,IAAAa,GAAAlE,MAEAqD,IAAAa,KACAjJ,OAAAoI,IAAAa,GAAAZ,UAAAD,KACArqC,KAAAwqC,IAAAvI,QAAA,KACAA,QAAA,SAEAnoC,IAAAuwC,IAAAC,UACAD,IAAAC,WAAArI,OAAAoJ,UAEAhB,IAAArD,KAAA/E,OAAAoJ,YAKA/tC,GAAAqsC,GAAA,SAAArqC,KAAA+rC,UACA,OAAA/rC,MACApE,KAAAgwC,GAAAxC,QAAAppC,MACApE,KAAAgwC,GACAxG,OAAA0G,aAAAlwC,KAAAmwC,UAEAlD,SAAA,mCAAA7oC,KAAA,4DAEApE,MAEAA,KAAAgwC,GAAAhwC,KAAAgwC,GAAA5rC,UAAA,GAiBAhC,GAAAkuC,SAAAP,SAAA3tC,GAAAkuC,UACAluC,GAAAmuC,SAAAR,SAAA3tC,GAAAmuC,UACAnuC,GAAAssC,KATA9rB,IASAxgB,GAAAssC,IARA,WAEA,OADA1uC,KAAAgwC,GAAA,KACAptB,IAAApf,MAAAxD,KAAAyD,aAQA+lC,OAAAiF,GAAA+B,WAAA,SAAApsC,MAKA,OAJA4lC,MAAA,GAAA,IAAAA,OAAAC,MAAA,IACAgD,SAAA,qFAAAzD,OAAAO,QAAA,KAEAP,OAAAyG,YAAA7rC,KAAAopC,QAAAppC,MAAA,KACAolC,QAIA,IAAAiH,iBAAAjH,OAAAiH,iBAYA,MAXA,mBAAArwC,OAAAqC,UAAA9B,SAAAK,KAAAyvC,mBAEAA,iBAAAjwC,KAAA,MACAiwC,iBAAAjwC,KAAA,OACAiwC,mBAEAA,iBAAAT,GAAA,MAKAxG,SCzlBA,SAAA9pC,OAAAC,SACA,iBAAAE,SAAA,oBAAAD,OAAAA,OAAAC,QAAAF,UACA,mBAAAspC,QAAAA,OAAAC,IAAAD,OAAAtpC,SACAD,OAAA8pC,OAAA7pC,UAHA,CAIAK,KAAA,WAAA,aAEA,IAAA0wC,aA6GAC,KA3GA,SAAA7uB,QACA,OAAA4uB,aAAAltC,MAAA,KAAAC,WASA,SAAAmB,QAAAsK,OACA,OAAAA,iBAAAvK,OAAA,mBAAAvE,OAAAqC,UAAA9B,SAAAK,KAAAkO,OAGA,SAAA0hC,SAAA1hC,OAGA,OAAA,MAAAA,OAAA,oBAAA9O,OAAAqC,UAAA9B,SAAAK,KAAAkO,OAiBA,SAAA2hC,YAAA3hC,OACA,YAAA,IAAAA,MAGA,SAAA4hC,SAAA5hC,OACA,MAAA,iBAAAA,OAAA,oBAAA9O,OAAAqC,UAAA9B,SAAAK,KAAAkO,OAGA,SAAA6hC,OAAA7hC,OACA,OAAAA,iBAAA1H,MAAA,kBAAApH,OAAAqC,UAAA9B,SAAAK,KAAAkO,OAGA,SAAA5L,IAAApD,IAAAkC,IACA,IAAAR,EAAAovC,OACA,IAAApvC,EAAA,EAAAA,EAAA1B,IAAAsC,SAAAZ,EACAovC,IAAAxwC,KAAA4B,GAAAlC,IAAA0B,GAAAA,IAEA,OAAAovC,IAGA,SAAAC,WAAAhpC,EAAAC,GACA,OAAA9H,OAAAqC,UAAA5B,eAAAG,KAAAiH,EAAAC,GAGA,SAAAhE,OAAA+D,EAAAC,GACA,IAAA,IAAAtG,KAAAsG,EACA+oC,WAAA/oC,EAAAtG,KACAqG,EAAArG,GAAAsG,EAAAtG,IAYA,OARAqvC,WAAA/oC,EAAA,cACAD,EAAAtH,SAAAuH,EAAAvH,UAGAswC,WAAA/oC,EAAA,aACAD,EAAAipC,QAAAhpC,EAAAgpC,SAGAjpC,EAGA,SAAAkpC,UAAAjiC,MAAAkiC,OAAAC,OAAAC,QACA,OAAAC,iBAAAriC,MAAAkiC,OAAAC,OAAAC,QAAA,GAAA5C,MAuBA,SAAA8C,gBAAAlmC,GAIA,OAHA,MAAAA,EAAAmmC,MACAnmC,EAAAmmC,KAnBAt9B,OAAA,EACAu9B,gBACAC,eACAlZ,UAAA,EACAmZ,cAAA,EACAC,WAAA,EACAC,aAAA,KACAC,eAAA,EACAC,iBAAA,EACAC,KAAA,EACAC,mBACAC,SAAA,KACAC,SAAA,EACAC,iBAAA,IAQA/mC,EAAAmmC,IAqBA,SAAAa,QAAAhnC,GACA,GAAA,MAAAA,EAAAinC,SAAA,CACA,IAAAC,MAAAhB,gBAAAlmC,GACAmnC,YAAA9B,KAAA3vC,KAAAwxC,MAAAN,gBAAA,SAAAtwC,GACA,OAAA,MAAAA,IAEA8wC,YAAA1J,MAAA19B,EAAA+kC,GAAAsC,YACAH,MAAA/Z,SAAA,IACA+Z,MAAAr+B,QACAq+B,MAAAV,eACAU,MAAAI,iBACAJ,MAAAH,kBACAG,MAAAX,YACAW,MAAAT,gBACAS,MAAAR,mBACAQ,MAAAL,UAAAK,MAAAL,UAAAM,aASA,GAPAnnC,EAAAunC,UACAH,WAAAA,YACA,IAAAF,MAAAZ,eACA,IAAAY,MAAAd,aAAAlvC,aACA5D,IAAA4zC,MAAAM,SAGA,MAAA1yC,OAAA2yC,UAAA3yC,OAAA2yC,SAAAznC,GAIA,OAAAonC,WAHApnC,EAAAinC,SAAAG,WAMA,OAAApnC,EAAAinC,SAGA,SAAAS,cAAAR,OACA,IAAAlnC,EAAA6lC,UAAA8B,KAQA,OAPA,MAAAT,MACAtuC,OAAAstC,gBAAAlmC,GAAAknC,OAGAhB,gBAAAlmC,GAAA0mC,iBAAA,EAGA1mC,EA3DAqlC,KADAhsC,MAAAlC,UAAAkuC,KACAhsC,MAAAlC,UAAAkuC,KAEA,SAAAuC,KAIA,IAHA,IAAAhsB,EAAA9mB,OAAAJ,MACA6D,IAAAqjB,EAAA1kB,SAAA,EAEAZ,EAAA,EAAAA,EAAAiC,IAAAjC,IACA,GAAAA,KAAAslB,GAAAgsB,IAAAlyC,KAAAhB,KAAAknB,EAAAtlB,GAAAA,EAAAslB,GACA,OAAA,EAIA,OAAA,GAoDA,IAAAupB,iBAAA3uB,MAAA2uB,oBAEA,SAAA0C,WAAAla,GAAAma,MACA,IAAAxxC,EAAAmf,KAAA1Q,IAiCA,GA/BAwgC,YAAAuC,KAAAC,oBACApa,GAAAoa,iBAAAD,KAAAC,kBAEAxC,YAAAuC,KAAAE,MACAra,GAAAqa,GAAAF,KAAAE,IAEAzC,YAAAuC,KAAA9E,MACArV,GAAAqV,GAAA8E,KAAA9E,IAEAuC,YAAAuC,KAAAG,MACAta,GAAAsa,GAAAH,KAAAG,IAEA1C,YAAAuC,KAAAP,WACA5Z,GAAA4Z,QAAAO,KAAAP,SAEAhC,YAAAuC,KAAA5E,QACAvV,GAAAuV,KAAA4E,KAAA5E,MAEAqC,YAAAuC,KAAAhD,UACAnX,GAAAmX,OAAAgD,KAAAhD,QAEAS,YAAAuC,KAAAI,WACAva,GAAAua,QAAAJ,KAAAI,SAEA3C,YAAAuC,KAAA3B,OACAxY,GAAAwY,IAAAD,gBAAA4B,OAEAvC,YAAAuC,KAAAK,WACAxa,GAAAwa,QAAAL,KAAAK,SAGAhD,iBAAAjuC,OAAA,EACA,IAAAZ,EAAA,EAAAA,EAAA6uC,iBAAAjuC,OAAAZ,IAGAivC,YADAxgC,IAAA+iC,KADAryB,KAAA0vB,iBAAA7uC,OAGAq3B,GAAAlY,MAAA1Q,KAKA,OAAA4oB,GAGA,IAAAya,kBAAA,EAGA,SAAAC,OAAAC,QACAT,WAAAnzC,KAAA4zC,QACA5zC,KAAAqwC,GAAA,IAAA7oC,KAAA,MAAAosC,OAAAvD,GAAAuD,OAAAvD,GAAAsC,UAAAM,KACAjzC,KAAAsyC,YACAtyC,KAAAqwC,GAAA,IAAA7oC,KAAAyrC,OAIA,IAAAS,mBACAA,kBAAA,EACA5xB,MAAAouB,aAAAlwC,MACA0zC,kBAAA,GAIA,SAAA/E,SAAAxtC,KACA,OAAAA,eAAAwyC,QAAA,MAAAxyC,KAAA,MAAAA,IAAAkyC,iBAGA,SAAAQ,SAAAC,QACA,OAAAA,OAAA,EAEAhvC,KAAAkuB,KAAA8gB,SAAA,EAEAhvC,KAAAivC,MAAAD,QAIA,SAAAE,MAAAC,qBACA,IAAAC,eAAAD,oBACA/tC,MAAA,EAMA,OAJA,IAAAguC,eAAA7f,SAAA6f,iBACAhuC,MAAA2tC,SAAAK,gBAGAhuC,MAIA,SAAAiuC,cAAAC,OAAAC,OAAAC,aACA,IAGA1yC,EAHAiC,IAAAiB,KAAAyvC,IAAAH,OAAA5xC,OAAA6xC,OAAA7xC,QACAgyC,WAAA1vC,KAAAwqC,IAAA8E,OAAA5xC,OAAA6xC,OAAA7xC,QACAiyC,MAAA,EAEA,IAAA7yC,EAAA,EAAAA,EAAAiC,IAAAjC,KACA0yC,aAAAF,OAAAxyC,KAAAyyC,OAAAzyC,KACA0yC,aAAAN,MAAAI,OAAAxyC,MAAAoyC,MAAAK,OAAAzyC,MACA6yC,QAGA,OAAAA,MAAAD,WAGA,SAAAx1B,KAAA9Z,MACA,IAAA4c,MAAA4yB,6BACA,oBAAA31B,SAAAA,QAAAC,MACAD,QAAAC,KAAA,wBAAA9Z,KAIA,SAAAyvC,UAAAzvC,IAAA9C,IACA,IAAAwyC,WAAA,EAEA,OAAA1wC,OAAA,WAIA,GAHA,MAAA4d,MAAA+yB,oBACA/yB,MAAA+yB,mBAAA,KAAA3vC,KAEA0vC,UAAA,CAGA,IAFA,IACA3uC,IADA2M,QAEAhR,EAAA,EAAAA,EAAA6B,UAAAjB,OAAAZ,IAAA,CAEA,GADAqE,IAAA,GACA,iBAAAxC,UAAA7B,GAAA,CAEA,IAAA,IAAA+K,OADA1G,KAAA,MAAArE,EAAA,KACA6B,UAAA,GACAwC,KAAA0G,IAAA,KAAAlJ,UAAA,GAAAkJ,KAAA,KAEA1G,IAAAA,IAAA3F,MAAA,GAAA,QAEA2F,IAAAxC,UAAA7B,GAEAgR,KAAApS,KAAAyF,KAEA+Y,KAAA9Z,IAAA,gBAAAP,MAAAlC,UAAAnC,MAAAU,KAAA4R,MAAAxG,KAAA,IAAA,MAAA,IAAArM,OAAA+e,OACA81B,WAAA,EAEA,OAAAxyC,GAAAoB,MAAAxD,KAAAyD,YACArB,IAGA,IAsEAqK,KAtEAqoC,gBAEA,SAAAC,gBAAA3wC,KAAAc,KACA,MAAA4c,MAAA+yB,oBACA/yB,MAAA+yB,mBAAAzwC,KAAAc,KAEA4vC,aAAA1wC,QACA4a,KAAA9Z,KACA4vC,aAAA1wC,OAAA,GAOA,SAAAlD,WAAAgO,OACA,OAAAA,iBAAA8lC,UAAA,sBAAA50C,OAAAqC,UAAA9B,SAAAK,KAAAkO,OAsBA,SAAA+lC,aAAAC,aAAAC,aACA,IAAAp0B,KAAAiwB,IAAA9sC,UAAAgxC,cACA,IAAAn0B,QAAAo0B,YACAlE,WAAAkE,YAAAp0B,QACA6vB,SAAAsE,aAAAn0B,QAAA6vB,SAAAuE,YAAAp0B,QACAiwB,IAAAjwB,SACA7c,OAAA8sC,IAAAjwB,MAAAm0B,aAAAn0B,OACA7c,OAAA8sC,IAAAjwB,MAAAo0B,YAAAp0B,QACA,MAAAo0B,YAAAp0B,MACAiwB,IAAAjwB,MAAAo0B,YAAAp0B,aAEAiwB,IAAAjwB,OAIA,IAAAA,QAAAm0B,aACAjE,WAAAiE,aAAAn0B,QACAkwB,WAAAkE,YAAAp0B,OACA6vB,SAAAsE,aAAAn0B,SAEAiwB,IAAAjwB,MAAA7c,UAAA8sC,IAAAjwB,QAGA,OAAAiwB,IAGA,SAAAoE,OAAAxB,QACA,MAAAA,QACA5zC,KAAA6gB,IAAA+yB,QAtDA9xB,MAAA4yB,6BAAA,EACA5yB,MAAA+yB,mBAAA,KA4DApoC,KADArM,OAAAqM,KACArM,OAAAqM,KAEA,SAAAtL,KACA,IAAAS,EAAAovC,OACA,IAAApvC,KAAAT,IACA8vC,WAAA9vC,IAAAS,IACAovC,IAAAxwC,KAAAoB,GAGA,OAAAovC,KAoFA,IAAAhD,WAEA,SAAAqH,aAAAhyB,KAAAiyB,WACA,IAAAC,UAAAlyB,KAAA9c,cACAynC,QAAAuH,WAAAvH,QAAAuH,UAAA,KAAAvH,QAAAsH,WAAAjyB,KAGA,SAAAmyB,eAAAC,OACA,MAAA,iBAAAA,MAAAzH,QAAAyH,QAAAzH,QAAAyH,MAAAlvC,oBAAA3H,EAGA,SAAA82C,qBAAAC,aACA,IACAC,eACA70B,KAFA80B,mBAIA,IAAA90B,QAAA40B,YACA1E,WAAA0E,YAAA50B,QACA60B,eAAAJ,eAAAz0B,SAEA80B,gBAAAD,gBAAAD,YAAA50B,OAKA,OAAA80B,gBAGA,IAAAC,cAEA,SAAAC,gBAAA1yB,KAAA2yB,UACAF,WAAAzyB,MAAA2yB,SAcA,SAAAC,SAAAnC,OAAAoC,aAAAC,WACA,IAAAC,UAAA,GAAAtxC,KAAAwqC,IAAAwE,QACAuC,YAAAH,aAAAE,UAAA5zC,OAEA,OADAsxC,QAAA,EACAqC,UAAA,IAAA,GAAA,KACArxC,KAAAwxC,IAAA,GAAAxxC,KAAAytB,IAAA,EAAA8jB,cAAA11C,WAAA41C,OAAA,GAAAH,UAGA,IAAAI,iBAAA,uLAEAC,sBAAA,6CAEAC,mBAEAC,wBAMA,SAAAC,eAAA5+B,MAAA6+B,OAAAC,QAAAzzC,UACA,IAAAkZ,KAAAlZ,SACA,iBAAAA,WACAkZ,KAAA,WACA,OAAAvc,KAAAqD,cAGA2U,QACA2+B,qBAAA3+B,OAAAuE,MAEAs6B,SACAF,qBAAAE,OAAA,IAAA,WACA,OAAAZ,SAAA15B,KAAA/Y,MAAAxD,KAAAyD,WAAAozC,OAAA,GAAAA,OAAA,MAGAC,UACAH,qBAAAG,SAAA,WACA,OAAA92C,KAAA+2C,aAAAD,QAAAv6B,KAAA/Y,MAAAxD,KAAAyD,WAAAuU,SAiCA,SAAAg/B,aAAA1rC,EAAA8lC,QACA,OAAA9lC,EAAAgnC,WAIAlB,OAAA6F,aAAA7F,OAAA9lC,EAAAyrC,cACAL,gBAAAtF,QAAAsF,gBAAAtF,SA3BA,SAAAA,QACA,IAAAxvC,EAAAY,OARA0M,MAQAw7B,MAAA0G,OAAA5lC,MAAAgrC,kBAEA,IAAA50C,EAAA,EAAAY,OAAAkoC,MAAAloC,OAAAZ,EAAAY,OAAAZ,IACA+0C,qBAAAjM,MAAA9oC,IACA8oC,MAAA9oC,GAAA+0C,qBAAAjM,MAAA9oC,IAEA8oC,MAAA9oC,IAdAsN,MAcAw7B,MAAA9oC,IAbA4J,MAAA,YACA0D,MAAAzP,QAAA,WAAA,IAEAyP,MAAAzP,QAAA,MAAA,IAcA,OAAA,SAAA0vC,KACA,IAAAvtC,EAAAs1C,OAAA,GACA,IAAAt1C,EAAA,EAAAA,EAAAY,OAAAZ,IACAs1C,QAAAh2C,WAAAwpC,MAAA9oC,IAAA8oC,MAAA9oC,GAAAZ,KAAAmuC,IAAAiC,QAAA1G,MAAA9oC,GAEA,OAAAs1C,QAWAC,CAAA/F,QAEAsF,gBAAAtF,QAAA9lC,IANAA,EAAAyrC,aAAAK,cASA,SAAAH,aAAA7F,OAAAC,QACA,IAAAzvC,EAAA,EAEA,SAAAy1C,4BAAAnoC,OACA,OAAAmiC,OAAAiG,eAAApoC,QAAAA,MAIA,IADAunC,sBAAAc,UAAA,EACA31C,GAAA,GAAA60C,sBAAAxqC,KAAAmlC,SACAA,OAAAA,OAAA3xC,QAAAg3C,sBAAAY,6BACAZ,sBAAAc,UAAA,EACA31C,GAAA,EAGA,OAAAwvC,OAGA,IAAAoG,OAAA,KACAC,OAAA,OACAC,OAAA,QACAC,OAAA,QACAC,OAAA,aACAC,UAAA,QACAC,UAAA,YACAC,UAAA,gBACAC,UAAA,UACAC,UAAA,UACAC,UAAA,eAEAC,cAAA,MACAC,YAAA,WAEAC,YAAA,qBACAC,iBAAA,0BAMAC,UAAA,wJAEAC,WAEA,SAAAC,cAAAzgC,MAAA0gC,MAAAC,aACAH,QAAAxgC,OAAA9W,WAAAw3C,OAAAA,MAAA,SAAAE,SAAA7B,YACA,OAAA6B,UAAAD,YAAAA,YAAAD,OAIA,SAAAG,sBAAA7gC,MAAA47B,QACA,OAAA3C,WAAAuH,QAAAxgC,OAIAwgC,QAAAxgC,OAAA47B,OAAAf,QAAAe,OAAAH,SAHA,IAAAj0C,OAQAs5C,YARA9gC,MAQAvY,QAAA,KAAA,IAAAA,QAAA,sCAAA,SAAAsT,QAAAgmC,GAAAC,GAAAC,GAAAC,IACA,OAAAH,IAAAC,IAAAC,IAAAC,OAIA,SAAAJ,YAAA9a,GACA,OAAAA,EAAAv+B,QAAA,yBAAA,QAGA,IAAAwV,UAEA,SAAAkkC,cAAAnhC,MAAA3U,UACA,IAAAzB,EAAA2a,KAAAlZ,SASA,IARA,iBAAA2U,QACAA,OAAAA,QAEA84B,SAAAztC,YACAkZ,KAAA,SAAArN,MAAAw7B,OACAA,MAAArnC,UAAA2wC,MAAA9kC,SAGAtN,EAAA,EAAAA,EAAAoW,MAAAxV,OAAAZ,IACAqT,OAAA+C,MAAApW,IAAA2a,KAIA,SAAA68B,kBAAAphC,MAAA3U,UACA81C,cAAAnhC,MAAA,SAAA9I,MAAAw7B,MAAAkJ,OAAA57B,OACA47B,OAAAyF,GAAAzF,OAAAyF,OACAh2C,SAAA6L,MAAA0kC,OAAAyF,GAAAzF,OAAA57B,SAIA,SAAAshC,wBAAAthC,MAAA9I,MAAA0kC,QACA,MAAA1kC,OAAA+hC,WAAAh8B,OAAA+C,QACA/C,OAAA+C,OAAA9I,MAAA0kC,OAAArF,GAAAqF,OAAA57B,OAIA,IAAAuhC,KAAA,EACAC,MAAA,EACAC,KAAA,EACAC,KAAA,EACAC,OAAA,EACAC,OAAA,EACAC,YAAA,EACAC,KAAA,EACAC,QAAA,EA8CA,SAAAC,WAAAC,MACA,OAAAC,WAAAD,MAAA,IAAA,IAGA,SAAAC,WAAAD,MACA,OAAAA,KAAA,GAAA,GAAAA,KAAA,KAAA,GAAAA,KAAA,KAAA,EA/CArD,eAAA,IAAA,EAAA,EAAA,WACA,IAAAuD,EAAAn6C,KAAAi6C,OACA,OAAAE,GAAA,KAAA,GAAAA,EAAA,IAAAA,IAGAvD,eAAA,GAAA,KAAA,GAAA,EAAA,WACA,OAAA52C,KAAAi6C,OAAA,MAGArD,eAAA,GAAA,OAAA,GAAA,EAAA,QACAA,eAAA,GAAA,QAAA,GAAA,EAAA,QACAA,eAAA,GAAA,SAAA,GAAA,GAAA,EAAA,QAIAvB,aAAA,OAAA,KAIAU,gBAAA,OAAA,GAIA0C,cAAA,IAAAL,aACAK,cAAA,KAAAZ,UAAAJ,QACAgB,cAAA,OAAAR,UAAAN,QACAc,cAAA,QAAAP,UAAAN,QACAa,cAAA,SAAAP,UAAAN,QAEAuB,eAAA,QAAA,UAAAI,MACAJ,cAAA,OAAA,SAAAjqC,MAAAw7B,OACAA,MAAA6O,MAAA,IAAArqC,MAAA1M,OAAAsf,MAAAs4B,kBAAAlrC,OAAA8kC,MAAA9kC,SAEAiqC,cAAA,KAAA,SAAAjqC,MAAAw7B,OACAA,MAAA6O,MAAAz3B,MAAAs4B,kBAAAlrC,SAEAiqC,cAAA,IAAA,SAAAjqC,MAAAw7B,OACAA,MAAA6O,MAAAhe,SAAArsB,MAAA,MAeA4S,MAAAs4B,kBAAA,SAAAlrC,OACA,OAAA8kC,MAAA9kC,QAAA8kC,MAAA9kC,OAAA,GAAA,KAAA,MAKA,IAiEAzO,QAjEA45C,WAAAC,WAAA,YAAA,GAMA,SAAAA,WAAAj3B,KAAA8sB,UACA,OAAA,SAAAjqC,OACA,OAAA,MAAAA,OACAq0C,MAAAv6C,KAAAqjB,KAAAnd,OACA4b,MAAAouB,aAAAlwC,KAAAmwC,UACAnwC,MAEA6C,IAAA7C,KAAAqjB,OAKA,SAAAxgB,IAAAssC,IAAA9rB,MACA,OAAA8rB,IAAAmD,UACAnD,IAAAkB,GAAA,OAAAlB,IAAAiB,OAAA,MAAA,IAAA/sB,QAAA4vB,IAGA,SAAAsH,MAAApL,IAAA9rB,KAAAnd,OACAipC,IAAAmD,YAAAtJ,MAAA9iC,SACA,aAAAmd,MAAA62B,WAAA/K,IAAA8K,SAAA,IAAA9K,IAAAqL,SAAA,KAAArL,IAAAsL,OACAtL,IAAAkB,GAAA,OAAAlB,IAAAiB,OAAA,MAAA,IAAA/sB,MAAAnd,MAAAipC,IAAAqL,QAAAE,YAAAx0C,MAAAipC,IAAAqL,UAGArL,IAAAkB,GAAA,OAAAlB,IAAAiB,OAAA,MAAA,IAAA/sB,MAAAnd,QAqDA,SAAAw0C,YAAAT,KAAAO,OACA,GAAAxR,MAAAiR,OAAAjR,MAAAwR,OACA,OAAAvH,IAEA,IAzBA0H,EAyBAC,UAAAJ,OAzBAG,EAyBA,IAxBAA,GAAAA,EA0BA,OADAV,OAAAO,MAAAI,UAAA,GACA,IAAAA,SAAAV,WAAAD,MAAA,GAAA,GAAA,GAAAW,SAAA,EAAA,EApBAn6C,QADAkE,MAAAlC,UAAAhC,QACAkE,MAAAlC,UAAAhC,QAEA,SAAAo6C,GAEA,IAAAj5C,EACA,IAAAA,EAAA,EAAAA,EAAA5B,KAAAwC,SAAAZ,EACA,GAAA5B,KAAA4B,KAAAi5C,EACA,OAAAj5C,EAGA,OAAA,GAeAg1C,eAAA,KAAA,KAAA,GAAA,KAAA,WACA,OAAA52C,KAAAw6C,QAAA,IAGA5D,eAAA,MAAA,EAAA,EAAA,SAAAxF,QACA,OAAApxC,KAAA+2C,aAAA+D,YAAA96C,KAAAoxC,UAGAwF,eAAA,OAAA,EAAA,EAAA,SAAAxF,QACA,OAAApxC,KAAA+2C,aAAAgE,OAAA/6C,KAAAoxC,UAKAiE,aAAA,QAAA,KAIAU,gBAAA,QAAA,GAIA0C,cAAA,IAAAZ,WACAY,cAAA,KAAAZ,UAAAJ,QACAgB,cAAA,MAAA,SAAAG,SAAAvH,QACA,OAAAA,OAAA2J,iBAAApC,YAEAH,cAAA,OAAA,SAAAG,SAAAvH,QACA,OAAAA,OAAA4J,YAAArC,YAGAO,eAAA,IAAA,MAAA,SAAAjqC,MAAAw7B,OACAA,MAAA8O,OAAAxF,MAAA9kC,OAAA,IAGAiqC,eAAA,MAAA,QAAA,SAAAjqC,MAAAw7B,MAAAkJ,OAAA57B,OACA,IAAAwiC,MAAA5G,OAAAH,QAAAyH,YAAAhsC,MAAA8I,MAAA47B,OAAAf,SAEA,MAAA2H,MACA9P,MAAA8O,OAAAgB,MAEAhJ,gBAAAoC,QAAA9B,aAAA5iC,QAMA,IAAAisC,iBAAA,gCACAC,oBAAA,wFAAA90C,MAAA,KAUA,IAAA+0C,yBAAA,kDAAA/0C,MAAA,KA2FA,SAAAg1C,SAAAnM,IAAAjpC,OACA,IAAAq1C,WAEA,IAAApM,IAAAmD,UAEA,OAAAnD,IAGA,GAAA,iBAAAjpC,MACA,GAAA,QAAA+F,KAAA/F,OACAA,MAAA8tC,MAAA9tC,YAIA,IAAA4qC,SAFA5qC,MAAAipC,IAAA4H,aAAAmE,YAAAh1C,QAGA,OAAAipC,IAOA,OAFAoM,WAAAz2C,KAAAyvC,IAAApF,IAAAsL,OAAAC,YAAAvL,IAAA8K,OAAA/zC,QACAipC,IAAAkB,GAAA,OAAAlB,IAAAiB,OAAA,MAAA,IAAA,SAAAlqC,MAAAq1C,YACApM,IAGA,SAAAqM,YAAAt1C,OACA,OAAA,MAAAA,OACAo1C,SAAAt7C,KAAAkG,OACA4b,MAAAouB,aAAAlwC,MAAA,GACAA,MAEA6C,IAAA7C,KAAA,SAQA,IAAAy7C,wBAAAlD,UAoBA,IAAAmD,mBAAAnD,UAoBA,SAAAoD,qBACA,SAAAC,UAAA3zC,EAAAC,GACA,OAAAA,EAAA1F,OAAAyF,EAAAzF,OAGA,IACAZ,EAAAutC,IADA0M,eAAAC,cAAAC,eAEA,IAAAn6C,EAAA,EAAAA,EAAA,GAAAA,IAEAutC,IAAAgC,WAAA,IAAAvvC,IACAi6C,YAAAr7C,KAAAR,KAAA86C,YAAA3L,IAAA,KACA2M,WAAAt7C,KAAAR,KAAA+6C,OAAA5L,IAAA,KACA4M,YAAAv7C,KAAAR,KAAA+6C,OAAA5L,IAAA,KACA4M,YAAAv7C,KAAAR,KAAA86C,YAAA3L,IAAA,KAOA,IAHA0M,YAAA73C,KAAA43C,WACAE,WAAA93C,KAAA43C,WACAG,YAAA/3C,KAAA43C,WACAh6C,EAAA,EAAAA,EAAA,GAAAA,IACAi6C,YAAAj6C,GAAAk3C,YAAA+C,YAAAj6C,IACAk6C,WAAAl6C,GAAAk3C,YAAAgD,WAAAl6C,IAEA,IAAAA,EAAA,EAAAA,EAAA,GAAAA,IACAm6C,YAAAn6C,GAAAk3C,YAAAiD,YAAAn6C,IAGA5B,KAAAg8C,aAAA,IAAAx8C,OAAA,KAAAu8C,YAAA3vC,KAAA,KAAA,IAAA,KACApM,KAAAi8C,kBAAAj8C,KAAAg8C,aACAh8C,KAAAk8C,mBAAA,IAAA18C,OAAA,KAAAs8C,WAAA1vC,KAAA,KAAA,IAAA,KACApM,KAAAm8C,wBAAA,IAAA38C,OAAA,KAAAq8C,YAAAzvC,KAAA,KAAA,IAAA,KAeA,SAAAgwC,cAAAjC,GACA,IAAAM,KAAA,IAAAjzC,KAAAA,KAAA60C,IAAA74C,MAAA,KAAAC,YAMA,OAHA02C,EAAA,KAAAA,GAAA,GAAA9lB,SAAAomB,KAAA6B,mBACA7B,KAAA8B,eAAApC,GAEAM,KAIA,SAAA+B,gBAAAvC,KAAAwC,IAAAC,KACA,IACAC,IAAA,EAAAF,IAAAC,IAIA,SAFA,EAAAN,cAAAnC,KAAA,EAAA0C,KAAAC,YAAAH,KAAA,GAEAE,IAAA,EAIA,SAAAE,mBAAA5C,KAAA6C,KAAAC,QAAAN,IAAAC,KACA,IAGAM,QAAAC,aADAC,UAAA,EAAA,GAAAJ,KAAA,IAFA,EAAAC,QAAAN,KAAA,EACAD,gBAAAvC,KAAAwC,IAAAC,KAeA,OAXAQ,WAAA,EAEAD,aAAAjD,WADAgD,QAAA/C,KAAA,GACAiD,UACAA,UAAAlD,WAAAC,OACA+C,QAAA/C,KAAA,EACAgD,aAAAC,UAAAlD,WAAAC,QAEA+C,QAAA/C,KACAgD,aAAAC,YAIAjD,KAAA+C,QACAE,UAAAD,cAIA,SAAAE,WAAAhO,IAAAsN,IAAAC,KACA,IAEAU,QAAAJ,QAFAK,WAAAb,gBAAArN,IAAA8K,OAAAwC,IAAAC,KACAI,KAAAh4C,KAAAivC,OAAA5E,IAAA+N,YAAAG,WAAA,GAAA,GAAA,EAcA,OAXAP,KAAA,EAEAM,QAAAN,KAAAQ,YADAN,QAAA7N,IAAA8K,OAAA,EACAwC,IAAAC,KACAI,KAAAQ,YAAAnO,IAAA8K,OAAAwC,IAAAC,MACAU,QAAAN,KAAAQ,YAAAnO,IAAA8K,OAAAwC,IAAAC,KACAM,QAAA7N,IAAA8K,OAAA,IAEA+C,QAAA7N,IAAA8K,OACAmD,QAAAN,OAIAA,KAAAM,QACAnD,KAAA+C,SAIA,SAAAM,YAAArD,KAAAwC,IAAAC,KACA,IAAAW,WAAAb,gBAAAvC,KAAAwC,IAAAC,KACAa,eAAAf,gBAAAvC,KAAA,EAAAwC,IAAAC,KACA,OAAA1C,WAAAC,MAAAoD,WAAAE,gBAAA,EAKA3G,eAAA,KAAA,KAAA,GAAA,KAAA,QACAA,eAAA,KAAA,KAAA,GAAA,KAAA,WAIAvB,aAAA,OAAA,KACAA,aAAA,UAAA,KAIAU,gBAAA,OAAA,GACAA,gBAAA,UAAA,GAIA0C,cAAA,IAAAZ,WACAY,cAAA,KAAAZ,UAAAJ,QACAgB,cAAA,IAAAZ,WACAY,cAAA,KAAAZ,UAAAJ,QAEA2B,mBAAA,IAAA,KAAA,IAAA,MAAA,SAAAlqC,MAAA4tC,KAAAlJ,OAAA57B,OACA8kC,KAAA9kC,MAAAu+B,OAAA,EAAA,IAAAvC,MAAA9kC,SAsCA0nC,eAAA,IAAA,EAAA,KAAA,OAEAA,eAAA,KAAA,EAAA,EAAA,SAAAxF,QACA,OAAApxC,KAAA+2C,aAAAyG,YAAAx9C,KAAAoxC,UAGAwF,eAAA,MAAA,EAAA,EAAA,SAAAxF,QACA,OAAApxC,KAAA+2C,aAAA0G,cAAAz9C,KAAAoxC,UAGAwF,eAAA,OAAA,EAAA,EAAA,SAAAxF,QACA,OAAApxC,KAAA+2C,aAAA2G,SAAA19C,KAAAoxC,UAGAwF,eAAA,IAAA,EAAA,EAAA,WACAA,eAAA,IAAA,EAAA,EAAA,cAIAvB,aAAA,MAAA,KACAA,aAAA,UAAA,KACAA,aAAA,aAAA,KAGAU,gBAAA,MAAA,IACAA,gBAAA,UAAA,IACAA,gBAAA,aAAA,IAIA0C,cAAA,IAAAZ,WACAY,cAAA,IAAAZ,WACAY,cAAA,IAAAZ,WACAY,cAAA,KAAA,SAAAG,SAAAvH,QACA,OAAAA,OAAAsM,iBAAA/E,YAEAH,cAAA,MAAA,SAAAG,SAAAvH,QACA,OAAAA,OAAAuM,mBAAAhF,YAEAH,cAAA,OAAA,SAAAG,SAAAvH,QACA,OAAAA,OAAAwM,cAAAjF,YAGAQ,mBAAA,KAAA,MAAA,QAAA,SAAAlqC,MAAA4tC,KAAAlJ,OAAA57B,OACA,IAAA+kC,QAAAnJ,OAAAH,QAAAqK,cAAA5uC,MAAA8I,MAAA47B,OAAAf,SAEA,MAAAkK,QACAD,KAAAiB,EAAAhB,QAEAvL,gBAAAoC,QAAAhB,eAAA1jC,QAIAkqC,mBAAA,IAAA,IAAA,KAAA,SAAAlqC,MAAA4tC,KAAAlJ,OAAA57B,OACA8kC,KAAA9kC,OAAAg8B,MAAA9kC,SA+BA,IAAA8uC,sBAAA,2DAAA13C,MAAA,KAUA,IAAA23C,2BAAA,8BAAA33C,MAAA,KAKA,IAAA43C,yBAAA,uBAAA53C,MAAA,KAqJA,IAAA63C,qBAAA5F,UAoBA,IAAA6F,0BAAA7F,UAoBA,IAAA8F,wBAAA9F,UAqBA,SAAA+F,uBACA,SAAA1C,UAAA3zC,EAAAC,GACA,OAAAA,EAAA1F,OAAAyF,EAAAzF,OAGA,IACAZ,EAAAutC,IAAAoP,KAAAC,OAAAC,MADAC,aAAA7C,eAAAC,cAAAC,eAEA,IAAAn6C,EAAA,EAAAA,EAAA,EAAAA,IAEAutC,IAAAgC,WAAA,IAAA,IAAAwN,IAAA/8C,GACA28C,KAAAv+C,KAAAw9C,YAAArO,IAAA,IACAqP,OAAAx+C,KAAAy9C,cAAAtO,IAAA,IACAsP,MAAAz+C,KAAA09C,SAAAvO,IAAA,IACAuP,UAAAl+C,KAAA+9C,MACA1C,YAAAr7C,KAAAg+C,QACA1C,WAAAt7C,KAAAi+C,OACA1C,YAAAv7C,KAAA+9C,MACAxC,YAAAv7C,KAAAg+C,QACAzC,YAAAv7C,KAAAi+C,OAQA,IAJAC,UAAA16C,KAAA43C,WACAC,YAAA73C,KAAA43C,WACAE,WAAA93C,KAAA43C,WACAG,YAAA/3C,KAAA43C,WACAh6C,EAAA,EAAAA,EAAA,EAAAA,IACAi6C,YAAAj6C,GAAAk3C,YAAA+C,YAAAj6C,IACAk6C,WAAAl6C,GAAAk3C,YAAAgD,WAAAl6C,IACAm6C,YAAAn6C,GAAAk3C,YAAAiD,YAAAn6C,IAGA5B,KAAA4+C,eAAA,IAAAp/C,OAAA,KAAAu8C,YAAA3vC,KAAA,KAAA,IAAA,KACApM,KAAA6+C,oBAAA7+C,KAAA4+C,eACA5+C,KAAA8+C,kBAAA9+C,KAAA4+C,eAEA5+C,KAAA++C,qBAAA,IAAAv/C,OAAA,KAAAs8C,WAAA1vC,KAAA,KAAA,IAAA,KACApM,KAAAg/C,0BAAA,IAAAx/C,OAAA,KAAAq8C,YAAAzvC,KAAA,KAAA,IAAA,KACApM,KAAAi/C,wBAAA,IAAAz/C,OAAA,KAAAk/C,UAAAtyC,KAAA,KAAA,IAAA,KAKA,SAAA8yC,UACA,OAAAl/C,KAAAm/C,QAAA,IAAA,GA6BA,SAAAhN,SAAAn6B,MAAAonC,WACAxI,eAAA5+B,MAAA,EAAA,EAAA,WACA,OAAAhY,KAAA+2C,aAAA5E,SAAAnyC,KAAAm/C,QAAAn/C,KAAAq/C,UAAAD,aAgBA,SAAAE,cAAA1G,SAAAvH,QACA,OAAAA,OAAAkO,eAzCA3I,eAAA,KAAA,KAAA,GAAA,EAAA,QACAA,eAAA,KAAA,KAAA,GAAA,EAAAsI,SACAtI,eAAA,KAAA,KAAA,GAAA,EANA,WACA,OAAA52C,KAAAm/C,SAAA,KAOAvI,eAAA,MAAA,EAAA,EAAA,WACA,MAAA,GAAAsI,QAAA17C,MAAAxD,MAAAi2C,SAAAj2C,KAAAq/C,UAAA,KAGAzI,eAAA,QAAA,EAAA,EAAA,WACA,MAAA,GAAAsI,QAAA17C,MAAAxD,MAAAi2C,SAAAj2C,KAAAq/C,UAAA,GACApJ,SAAAj2C,KAAAw/C,UAAA,KAGA5I,eAAA,MAAA,EAAA,EAAA,WACA,MAAA,GAAA52C,KAAAm/C,QAAAlJ,SAAAj2C,KAAAq/C,UAAA,KAGAzI,eAAA,QAAA,EAAA,EAAA,WACA,MAAA,GAAA52C,KAAAm/C,QAAAlJ,SAAAj2C,KAAAq/C,UAAA,GACApJ,SAAAj2C,KAAAw/C,UAAA,KASArN,SAAA,KAAA,GACAA,SAAA,KAAA,GAIAkD,aAAA,OAAA,KAGAU,gBAAA,OAAA,IAQA0C,cAAA,IAAA6G,eACA7G,cAAA,IAAA6G,eACA7G,cAAA,IAAAZ,WACAY,cAAA,IAAAZ,WACAY,cAAA,IAAAZ,WACAY,cAAA,KAAAZ,UAAAJ,QACAgB,cAAA,KAAAZ,UAAAJ,QACAgB,cAAA,KAAAZ,UAAAJ,QAEAgB,cAAA,MAAAX,WACAW,cAAA,QAAAV,WACAU,cAAA,MAAAX,WACAW,cAAA,QAAAV,WAEAoB,eAAA,IAAA,MAAAO,MACAP,eAAA,IAAA,MAAA,SAAAjqC,MAAAw7B,MAAAkJ,QACA,IAAA6L,OAAAzL,MAAA9kC,OACAw7B,MAAAgP,MAAA,KAAA+F,OAAA,EAAAA,SAEAtG,eAAA,IAAA,KAAA,SAAAjqC,MAAAw7B,MAAAkJ,QACAA,OAAA8L,MAAA9L,OAAAH,QAAAkM,KAAAzwC,OACA0kC,OAAAgM,UAAA1wC,QAEAiqC,eAAA,IAAA,MAAA,SAAAjqC,MAAAw7B,MAAAkJ,QACAlJ,MAAAgP,MAAA1F,MAAA9kC,OACAsiC,gBAAAoC,QAAAd,SAAA,IAEAqG,cAAA,MAAA,SAAAjqC,MAAAw7B,MAAAkJ,QACA,IAAAte,IAAApmB,MAAA1M,OAAA,EACAkoC,MAAAgP,MAAA1F,MAAA9kC,MAAAqnC,OAAA,EAAAjhB,MACAoV,MAAAiP,QAAA3F,MAAA9kC,MAAAqnC,OAAAjhB,MACAkc,gBAAAoC,QAAAd,SAAA,IAEAqG,cAAA,QAAA,SAAAjqC,MAAAw7B,MAAAkJ,QACA,IAAAiM,KAAA3wC,MAAA1M,OAAA,EACAs9C,KAAA5wC,MAAA1M,OAAA,EACAkoC,MAAAgP,MAAA1F,MAAA9kC,MAAAqnC,OAAA,EAAAsJ,OACAnV,MAAAiP,QAAA3F,MAAA9kC,MAAAqnC,OAAAsJ,KAAA,IACAnV,MAAAkP,QAAA5F,MAAA9kC,MAAAqnC,OAAAuJ,OACAtO,gBAAAoC,QAAAd,SAAA,IAEAqG,cAAA,MAAA,SAAAjqC,MAAAw7B,MAAAkJ,QACA,IAAAte,IAAApmB,MAAA1M,OAAA,EACAkoC,MAAAgP,MAAA1F,MAAA9kC,MAAAqnC,OAAA,EAAAjhB,MACAoV,MAAAiP,QAAA3F,MAAA9kC,MAAAqnC,OAAAjhB,QAEA6jB,cAAA,QAAA,SAAAjqC,MAAAw7B,MAAAkJ,QACA,IAAAiM,KAAA3wC,MAAA1M,OAAA,EACAs9C,KAAA5wC,MAAA1M,OAAA,EACAkoC,MAAAgP,MAAA1F,MAAA9kC,MAAAqnC,OAAA,EAAAsJ,OACAnV,MAAAiP,QAAA3F,MAAA9kC,MAAAqnC,OAAAsJ,KAAA,IACAnV,MAAAkP,QAAA5F,MAAA9kC,MAAAqnC,OAAAuJ,SA2BA,IAyBAC,aAzBAC,WAAA1F,WAAA,SAAA,GAEA2F,YACAC,UA/0CAC,QAAA,gBACAC,QAAA,mBACAC,SAAA,eACAC,QAAA,oBACAC,SAAA,sBACAC,SAAA,KA20CAlJ,gBAl0CAmJ,IAAA,YACAC,GAAA,SACAC,EAAA,aACAC,GAAA,eACAC,IAAA,sBACAC,KAAA,6BA8zCA1J,YA5yCA,eA6yCAN,QAvyCA,KAwyCAiK,uBAvyCA,UAwyCAC,cAjyCAC,OAAA,QACAC,KAAA,SACAljB,EAAA,gBACAmjB,GAAA,aACA71C,EAAA,WACA81C,GAAA,aACAC,EAAA,UACAC,GAAA,WACAvD,EAAA,QACAwD,GAAA,UACAC,EAAA,UACAC,GAAA,YACAtH,EAAA,SACAuH,GAAA,YAsxCA3G,OAAAK,oBACAN,YAAAO,yBAEAyB,MA1gBAL,IAAA,EACAC,IAAA,GA2gBAgB,SAAAM,sBACAR,YAAAU,yBACAT,cAAAQ,2BAEA0D,cAnCA,iBAuCAC,WACAC,kBAGA,SAAAC,gBAAAn1C,KACA,OAAAA,IAAAA,IAAApG,cAAA9G,QAAA,IAAA,KAAAkN,IA8BA,SAAAo1C,WAAA39C,MACA,IAAA49C,UAAA,KAEA,IAAAJ,QAAAx9C,OAAA,oBAAAxE,QACAA,QAAAA,OAAAC,QACA,IACAmiD,UAAAjC,aAAAkC,MACA1Y,QACA,YAAAnlC,MACA89C,mBAAAF,WACA,MAAA72C,IAEA,OAAAy2C,QAAAx9C,MAMA,SAAA89C,mBAAAv1C,IAAAkX,QACA,IAAA/C,KAqBA,OApBAnU,OAEAmU,KADA+vB,YAAAhtB,QACAs+B,UAAAx1C,KAGAy1C,aAAAz1C,IAAAkX,SAKAk8B,aAAAj/B,KAGA,oBAAA/B,SAAAA,QAAAC,MAEAD,QAAAC,KAAA,UAAArS,IAAA,2CAKAozC,aAAAkC,MAGA,SAAAG,aAAAh+C,KAAAwvC,QACA,GAAA,OAAAA,OAAA,CACA,IAAAvC,OAAA6D,aAAA+K,WAEA,GADArM,OAAAjI,KAAAvnC,KACA,MAAAw9C,QAAAx9C,MACA2wC,gBAAA,uBACA,2OAIAG,aAAA0M,QAAAx9C,MAAAi+C,aACA,GAAA,MAAAzO,OAAA0O,aACA,GAAA,MAAAV,QAAAhO,OAAA0O,cACApN,aAAA0M,QAAAhO,OAAA0O,cAAAD,YACA,CAEA,GAAA,OADAhR,OAAA0Q,WAAAnO,OAAA0O,eAWA,OAPAT,eAAAjO,OAAA0O,gBACAT,eAAAjO,OAAA0O,kBAEAT,eAAAjO,OAAA0O,cAAA9hD,MACA4D,KAAAA,KACAwvC,OAAAA,SAEA,KATAsB,aAAA7D,OAAAgR,QA2BA,OAdAT,QAAAx9C,MAAA,IAAAgxC,OAAAH,aAAAC,aAAAtB,SAEAiO,eAAAz9C,OACAy9C,eAAAz9C,MAAAm+C,QAAA,SAAA5H,GACAyH,aAAAzH,EAAAv2C,KAAAu2C,EAAA/G,UAOAsO,mBAAA99C,MAGAw9C,QAAAx9C,MAIA,cADAw9C,QAAAx9C,MACA,KAiCA,SAAA+9C,UAAAx1C,KACA,IAAA0kC,OAMA,GAJA1kC,KAAAA,IAAA8mC,SAAA9mC,IAAA8mC,QAAAwO,QACAt1C,IAAAA,IAAA8mC,QAAAwO,QAGAt1C,IACA,OAAAozC,aAGA,IAAAn7C,QAAA+H,KAAA,CAGA,GADA0kC,OAAA0Q,WAAAp1C,KAEA,OAAA0kC,OAEA1kC,KAAAA,KAGA,OAxKA,SAAAi9B,OAGA,IAFA,IAAA9lC,EAAAmH,KAAAomC,OAAA/qC,MAAA1E,EAAA,EAEAA,EAAAgoC,MAAApnC,QAAA,CAKA,IAHAsB,GADAwC,MAAAw7C,gBAAAlY,MAAAhoC,IAAA0E,MAAA,MACA9D,OAEAyI,MADAA,KAAA62C,gBAAAlY,MAAAhoC,EAAA,KACAqJ,KAAA3E,MAAA,KAAA,KACAxC,EAAA,GAAA,CAEA,GADAutC,OAAA0Q,WAAAz7C,MAAAhG,MAAA,EAAAwD,GAAAsI,KAAA,MAEA,OAAAilC,OAEA,GAAApmC,MAAAA,KAAAzI,QAAAsB,GAAAqwC,cAAA7tC,MAAA2E,MAAA,IAAAnH,EAAA,EAEA,MAEAA,IAEAlC,IAEA,OAAAm+C,aAmJAyC,CAAA71C,KAOA,SAAA81C,cAAAn3C,GACA,IAAAmtB,SACAxwB,EAAAqD,EAAAijC,GAyBA,OAvBAtmC,IAAA,IAAAupC,gBAAAlmC,GAAAmtB,WACAA,SACAxwB,EAAAuxC,OAAA,GAAAvxC,EAAAuxC,OAAA,GAAAA,MACAvxC,EAAAwxC,MAAA,GAAAxxC,EAAAwxC,MAAAiB,YAAAzyC,EAAAsxC,MAAAtxC,EAAAuxC,QAAAC,KACAxxC,EAAAyxC,MAAA,GAAAzxC,EAAAyxC,MAAA,IAAA,KAAAzxC,EAAAyxC,QAAA,IAAAzxC,EAAA0xC,SAAA,IAAA1xC,EAAA2xC,SAAA,IAAA3xC,EAAA4xC,cAAAH,KACAzxC,EAAA0xC,QAAA,GAAA1xC,EAAA0xC,QAAA,GAAAA,OACA1xC,EAAA2xC,QAAA,GAAA3xC,EAAA2xC,QAAA,GAAAA,OACA3xC,EAAA4xC,aAAA,GAAA5xC,EAAA4xC,aAAA,IAAAA,aACA,EAEArI,gBAAAlmC,GAAAo3C,qBAAAjqB,SAAA8gB,MAAA9gB,SAAAghB,QACAhhB,SAAAghB,MAEAjI,gBAAAlmC,GAAAq3C,iBAAA,IAAAlqB,WACAA,SAAAqhB,MAEAtI,gBAAAlmC,GAAAs3C,mBAAA,IAAAnqB,WACAA,SAAAshB,SAGAvI,gBAAAlmC,GAAAmtB,SAAAA,UAGAntB,EAIA,SAAAu3C,SAAA56C,EAAAC,EAAA46C,GACA,OAAA,MAAA76C,EACAA,EAEA,MAAAC,EACAA,EAEA46C,EAgBA,SAAAC,gBAAAnP,QACA,IAAAhyC,EAAA64C,KAAAuI,YAAAC,gBAAAC,UAAAh0C,SAEA,IAAA0kC,OAAAvD,GAAA,CA6BA,IAzBA2S,YApBA,SAAApP,QAEA,IAAAuP,SAAA,IAAA37C,KAAAsa,MAAAsI,OACA,OAAAwpB,OAAAwP,SACAD,SAAA7G,iBAAA6G,SAAAE,cAAAF,SAAAG,eAEAH,SAAA9V,cAAA8V,SAAAI,WAAAJ,SAAAK,WAcAC,CAAA7P,QAGAA,OAAAyF,IAAA,MAAAzF,OAAArF,GAAAkL,OAAA,MAAA7F,OAAArF,GAAAiL,QA2DA,SAAA5F,QACA,IAAA9zC,EAAA4jD,SAAA5G,KAAAC,QAAAN,IAAAC,IAAAxmC,KAAAytC,gBAGA,GAAA,OADA7jD,EAAA8zC,OAAAyF,IACAuK,IAAA,MAAA9jD,EAAA+jD,GAAA,MAAA/jD,EAAAgkD,EACArH,IAAA,EACAC,IAAA,EAMAgH,SAAAb,SAAA/iD,EAAA8jD,GAAAhQ,OAAArF,GAAAgL,MAAA4D,WAAA4G,cAAA,EAAA,GAAA9J,MACA6C,KAAA+F,SAAA/iD,EAAA+jD,EAAA,KACA9G,QAAA8F,SAAA/iD,EAAAgkD,EAAA,IACA,GAAA/G,QAAA,KACA4G,iBAAA,OAEA,CACAlH,IAAA7I,OAAAH,QAAAuQ,MAAAvH,IACAC,IAAA9I,OAAAH,QAAAuQ,MAAAtH,IAEA,IAAAuH,QAAA9G,WAAA4G,cAAAtH,IAAAC,KAEAgH,SAAAb,SAAA/iD,EAAAokD,GAAAtQ,OAAArF,GAAAgL,MAAA0K,QAAAhK,MAGA6C,KAAA+F,SAAA/iD,EAAAA,EAAAmkD,QAAAnH,MAEA,MAAAh9C,EAAAi+C,IAEAhB,QAAAj9C,EAAAi+C,GACA,GAAAhB,QAAA,KACA4G,iBAAA,GAEA,MAAA7jD,EAAAqL,GAEA4xC,QAAAj9C,EAAAqL,EAAAsxC,KACA38C,EAAAqL,EAAA,GAAArL,EAAAqL,EAAA,KACAw4C,iBAAA,IAIA5G,QAAAN,IAGAK,KAAA,GAAAA,KAAAQ,YAAAoG,SAAAjH,IAAAC,KACAlL,gBAAAoC,QAAA+O,gBAAA,EACA,MAAAgB,gBACAnS,gBAAAoC,QAAAgP,kBAAA,GAEA1sC,KAAA2mC,mBAAA6G,SAAA5G,KAAAC,QAAAN,IAAAC,KACA9I,OAAArF,GAAAgL,MAAArjC,KAAA+jC,KACArG,OAAAuQ,WAAAjuC,KAAAgnC,WA/GAkH,CAAAxQ,QAIA,MAAAA,OAAAuQ,aACAjB,UAAAL,SAAAjP,OAAArF,GAAAgL,MAAAyJ,YAAAzJ,QAEA3F,OAAAuQ,WAAAnK,WAAAkJ,YAAA,IAAAtP,OAAAuQ,cACA3S,gBAAAoC,QAAA8O,oBAAA,GAGAjI,KAAA2B,cAAA8G,UAAA,EAAAtP,OAAAuQ,YACAvQ,OAAArF,GAAAiL,OAAAiB,KAAA4I,cACAzP,OAAArF,GAAAkL,MAAAgB,KAAA6I,cAQA1hD,EAAA,EAAAA,EAAA,GAAA,MAAAgyC,OAAArF,GAAA3sC,KAAAA,EACAgyC,OAAArF,GAAA3sC,GAAAsN,MAAAtN,GAAAohD,YAAAphD,GAIA,KAAAA,EAAA,EAAAA,IACAgyC,OAAArF,GAAA3sC,GAAAsN,MAAAtN,GAAA,MAAAgyC,OAAArF,GAAA3sC,GAAA,IAAAA,EAAA,EAAA,EAAAgyC,OAAArF,GAAA3sC,GAIA,KAAAgyC,OAAArF,GAAAmL,OACA,IAAA9F,OAAArF,GAAAoL,SACA,IAAA/F,OAAArF,GAAAqL,SACA,IAAAhG,OAAArF,GAAAsL,eACAjG,OAAAyQ,UAAA,EACAzQ,OAAArF,GAAAmL,MAAA,GAGA9F,OAAAvD,IAAAuD,OAAAwP,QAAAhH,cA76BA,SAAAjC,EAAA7uC,EAAAyyC,EAAAsD,EAAAG,EAAAxjB,EAAAsmB,IAGA,IAAA7J,KAAA,IAAAjzC,KAAA2yC,EAAA7uC,EAAAyyC,EAAAsD,EAAAG,EAAAxjB,EAAAsmB,IAMA,OAHAnK,EAAA,KAAAA,GAAA,GAAA9lB,SAAAomB,KAAApN,gBACAoN,KAAA8J,YAAApK,GAEAM,OAo6BAj3C,MAAA,KAAA0L,OACA+zC,gBAAArP,OAAAwP,QAAAxP,OAAAvD,GAAAuM,YAAAhJ,OAAAvD,GAAAmU,SAIA,MAAA5Q,OAAApF,MACAoF,OAAAvD,GAAAoU,cAAA7Q,OAAAvD,GAAAqU,gBAAA9Q,OAAApF,MAGAoF,OAAAyQ,WACAzQ,OAAArF,GAAAmL,MAAA,IAIA9F,OAAAyF,SAAA,IAAAzF,OAAAyF,GAAA0E,GAAAnK,OAAAyF,GAAA0E,IAAAkF,kBACAzR,gBAAAoC,QAAAvB,iBAAA,IA+DA,IAAAsS,iBAAA,mJACAC,cAAA,8IAEAC,QAAA,wBAEAC,WACA,eAAA,wBACA,aAAA,oBACA,eAAA,mBACA,aAAA,eAAA,IACA,WAAA,gBACA,UAAA,cAAA,IACA,aAAA,eACA,WAAA,UAEA,aAAA,gBACA,YAAA,eAAA,IACA,UAAA,UAIAC,WACA,gBAAA,wBACA,gBAAA,uBACA,WAAA,mBACA,QAAA,cACA,cAAA,sBACA,cAAA,qBACA,SAAA,iBACA,OAAA,aACA,KAAA,SAGAC,gBAAA,sBAGA,SAAAC,cAAArR,QACA,IAAAhyC,EAAA8X,EAGAwrC,UAAAC,WAAAC,WAAAC,SAFA/kC,OAAAszB,OAAAN,GACA9nC,MAAAm5C,iBAAA94C,KAAAyU,SAAAskC,cAAA/4C,KAAAyU,QAGA,GAAA9U,MAAA,CAGA,IAFAgmC,gBAAAoC,QAAA3B,KAAA,EAEArwC,EAAA,EAAA8X,EAAAorC,SAAAtiD,OAAAZ,EAAA8X,EAAA9X,IACA,GAAAkjD,SAAAljD,GAAA,GAAAiK,KAAAL,MAAA,IAAA,CACA25C,WAAAL,SAAAljD,GAAA,GACAsjD,WAAA,IAAAJ,SAAAljD,GAAA,GACA,MAGA,GAAA,MAAAujD,WAEA,YADAvR,OAAArB,UAAA,GAGA,GAAA/mC,MAAA,GAAA,CACA,IAAA5J,EAAA,EAAA8X,EAAAqrC,SAAAviD,OAAAZ,EAAA8X,EAAA9X,IACA,GAAAmjD,SAAAnjD,GAAA,GAAAiK,KAAAL,MAAA,IAAA,CAEA45C,YAAA55C,MAAA,IAAA,KAAAu5C,SAAAnjD,GAAA,GACA,MAGA,GAAA,MAAAwjD,WAEA,YADAxR,OAAArB,UAAA,GAIA,IAAA2S,WAAA,MAAAE,WAEA,YADAxR,OAAArB,UAAA,GAGA,GAAA/mC,MAAA,GAAA,CACA,IAAAq5C,QAAAh5C,KAAAL,MAAA,IAIA,YADAooC,OAAArB,UAAA,GAFA8S,SAAA,IAMAzR,OAAAtF,GAAA6W,YAAAC,YAAA,KAAAC,UAAA,IACAC,0BAAA1R,aAEAA,OAAArB,UAAA,EAKA,IAAAH,QAAA,0LAEA,SAAAmT,0BAAAC,QAAAC,SAAAC,OAAAC,QAAAC,UAAAC,WACA,IAAA/zC,QAeA,SAAA0zC,SACA,IAAAvL,KAAA1e,SAAAiqB,QAAA,IACA,GAAAvL,MAAA,GACA,OAAA,IAAAA,KACA,GAAAA,MAAA,IACA,OAAA,KAAAA,KAEA,OAAAA,KArBA6L,CAAAN,SACAnK,yBAAA56C,QAAAglD,UACAlqB,SAAAmqB,OAAA,IACAnqB,SAAAoqB,QAAA,IACApqB,SAAAqqB,UAAA,KAOA,OAJAC,WACA/zC,OAAAtR,KAAA+6B,SAAAsqB,UAAA,KAGA/zC,OAgCA,IAAAi0C,YACAC,GAAA,EACAC,IAAA,EACAC,KAAA,IACAC,KAAA,IACAC,KAAA,IACAC,KAAA,IACAC,KAAA,IACAC,KAAA,IACAC,KAAA,IACAC,KAAA,KAiBA,SAAAC,kBAAA9S,QACA,IAAApoC,MAAA4mC,QAAAvmC,KAAA+nC,OAAAN,GA7CA7zC,QAAA,oBAAA,KAAAA,QAAA,WAAA,KAAAA,QAAA,SAAA,IAAAA,QAAA,SAAA,KA8CA,GAAA+L,MAAA,CACA,IAAAm7C,YAAApB,0BAAA/5C,MAAA,GAAAA,MAAA,GAAAA,MAAA,GAAAA,MAAA,GAAAA,MAAA,GAAAA,MAAA,IACA,IA7CA,SAAAo7C,WAAAC,YAAAjT,QACA,OAAAgT,YAEA3I,2BAAAx9C,QAAAmmD,cACA,IAAAp/C,KAAAq/C,YAAA,GAAAA,YAAA,GAAAA,YAAA,IAAArC,WAEAhT,gBAAAoC,QAAAvB,iBAAA,EACAuB,OAAArB,UAAA,GACA,GAqCAuU,CAAAt7C,MAAA,GAAAm7C,YAAA/S,QACA,OAGAA,OAAArF,GAAAoY,YACA/S,OAAApF,KAvBA,SAAAuY,UAAAC,eAAAC,WACA,GAAAF,UACA,OAAAhB,WAAAgB,WACA,GAAAC,eAEA,OAAA,EAEA,IAAAE,GAAA3rB,SAAA0rB,UAAA,IACA37C,EAAA47C,GAAA,IACA,OADAA,GAAA57C,GAAA,IACA,GAAAA,EAcA67C,CAAA37C,MAAA,GAAAA,MAAA,GAAAA,MAAA,KAEAooC,OAAAvD,GAAA+L,cAAA54C,MAAA,KAAAowC,OAAArF,IACAqF,OAAAvD,GAAAoU,cAAA7Q,OAAAvD,GAAAqU,gBAAA9Q,OAAApF,MAEAgD,gBAAAoC,QAAAxB,SAAA,OAEAwB,OAAArB,UAAA,EAgDA,SAAA+S,0BAAA1R,QAEA,GAAAA,OAAAtF,KAAAxsB,MAAAslC,SAIA,GAAAxT,OAAAtF,KAAAxsB,MAAAulC,SAAA,CAIAzT,OAAArF,MACAiD,gBAAAoC,QAAAz/B,OAAA,EAGA,IACAvS,EAAAilD,YAAA5xC,OAAA+C,MAAAsvC,QADAhnC,OAAA,GAAAszB,OAAAN,GAEAiU,aAAAjnC,OAAA9d,OACAglD,uBAAA,EAIA,IAFAvyC,OAAAgiC,aAAArD,OAAAtF,GAAAsF,OAAAH,SAAAjoC,MAAAgrC,sBAEA50C,EAAA,EAAAA,EAAAqT,OAAAzS,OAAAZ,IACAoW,MAAA/C,OAAArT,IACAilD,aAAAvmC,OAAA9U,MAAAqtC,sBAAA7gC,MAAA47B,cAAA,OAIA0T,QAAAhnC,OAAAi2B,OAAA,EAAAj2B,OAAA7f,QAAAomD,eACArkD,OAAA,GACAgvC,gBAAAoC,QAAAjC,YAAAnxC,KAAA8mD,SAEAhnC,OAAAA,OAAAhgB,MAAAggB,OAAA7f,QAAAomD,aAAAA,YAAArkD,QACAglD,wBAAAX,YAAArkD,QAGAm0C,qBAAA3+B,QACA6uC,YACArV,gBAAAoC,QAAAz/B,OAAA,EAGAq9B,gBAAAoC,QAAAlC,aAAAlxC,KAAAwX,OAEAshC,wBAAAthC,MAAA6uC,YAAAjT,SAEAA,OAAAf,UAAAgU,aACArV,gBAAAoC,QAAAlC,aAAAlxC,KAAAwX,OAKAw5B,gBAAAoC,QAAAhC,cAAA2V,aAAAC,uBACAlnC,OAAA9d,OAAA,GACAgvC,gBAAAoC,QAAAjC,YAAAnxC,KAAA8f,QAIAszB,OAAArF,GAAAmL,OAAA,KACA,IAAAlI,gBAAAoC,QAAAd,SACAc,OAAArF,GAAAmL,MAAA,IACAlI,gBAAAoC,QAAAd,aAAAl0C,GAGA4yC,gBAAAoC,QAAA1B,gBAAA0B,OAAArF,GAAAjuC,MAAA,GACAkxC,gBAAAoC,QAAAzB,SAAAyB,OAAAgM,UAEAhM,OAAArF,GAAAmL,MAOA,SAAArI,OAAAoW,KAAAtV,UACA,IAAAuV,KAEA,GAAA,MAAAvV,SAEA,OAAAsV,KAEA,OAAA,MAAApW,OAAAsW,aACAtW,OAAAsW,aAAAF,KAAAtV,UACA,MAAAd,OAAAsO,OAEA+H,KAAArW,OAAAsO,KAAAxN,YACAsV,KAAA,KACAA,MAAA,IAEAC,MAAA,KAAAD,OACAA,KAAA,GAEAA,MAGAA,KA5BAG,CAAAhU,OAAAH,QAAAG,OAAArF,GAAAmL,MAAA9F,OAAAgM,WAEAmD,gBAAAnP,QACA6O,cAAA7O,aA7DA8S,kBAAA9S,aAJAqR,cAAArR,QAmKA,SAAAiU,cAAAjU,QACA,IAAA1kC,MAAA0kC,OAAAN,GACAlC,OAAAwC,OAAAtF,GAIA,OAFAsF,OAAAH,QAAAG,OAAAH,SAAA0O,UAAAvO,OAAAL,IAEA,OAAArkC,YAAAtQ,IAAAwyC,QAAA,KAAAliC,MACA8jC,eAAAnB,WAAA,KAGA,iBAAA3iC,QACA0kC,OAAAN,GAAApkC,MAAA0kC,OAAAH,QAAAqU,SAAA54C,QAGAy/B,SAAAz/B,OACA,IAAAykC,OAAA8O,cAAAvzC,SACA6hC,OAAA7hC,OACA0kC,OAAAvD,GAAAnhC,MACAtK,QAAAwsC,QAtFA,SAAAwC,QACA,IAAAmU,WACAC,WAEAC,YACArmD,EACAsmD,aAEA,GAAA,IAAAtU,OAAAtF,GAAA9rC,OAGA,OAFAgvC,gBAAAoC,QAAA7B,eAAA,OACA6B,OAAAvD,GAAA,IAAA7oC,KAAAyrC,MAIA,IAAArxC,EAAA,EAAAA,EAAAgyC,OAAAtF,GAAA9rC,OAAAZ,IACAsmD,aAAA,EACAH,WAAA5U,cAAAS,QACA,MAAAA,OAAAwP,UACA2E,WAAA3E,QAAAxP,OAAAwP,SAEA2E,WAAAzZ,GAAAsF,OAAAtF,GAAA1sC,GACA0jD,0BAAAyC,YAEAzV,QAAAyV,cAKAG,cAAA1W,gBAAAuW,YAAAnW,cAGAsW,cAAA,GAAA1W,gBAAAuW,YAAArW,aAAAlvC,OAEAgvC,gBAAAuW,YAAAI,MAAAD,cAEA,MAAAD,aAAAC,aAAAD,eACAA,YAAAC,aACAF,WAAAD,aAIA7jD,OAAA0vC,OAAAoU,YAAAD,YA8CAK,CAAAxU,QACAxC,OACAkU,0BAAA1R,QAYA,SAAAA,QACA,IAAA1kC,MAAA0kC,OAAAN,GACAzC,YAAA3hC,OACA0kC,OAAAvD,GAAA,IAAA7oC,KAAAsa,MAAAsI,OACA2mB,OAAA7hC,OACA0kC,OAAAvD,GAAA,IAAA7oC,KAAA0H,MAAAgiC,WACA,iBAAAhiC,MAxPA,SAAA0kC,QACA,IAAA7gC,QAAAiyC,gBAAAn5C,KAAA+nC,OAAAN,IAEA,OAAAvgC,SAKAkyC,cAAArR,SACA,IAAAA,OAAArB,kBACAqB,OAAArB,SAKAmU,kBAAA9S,SACA,IAAAA,OAAArB,kBACAqB,OAAArB,SAMAzwB,MAAAumC,wBAAAzU,WAnBAA,OAAAvD,GAAA,IAAA7oC,MAAAuL,QAAA,IAqPAu1C,CAAA1U,QACAhvC,QAAAsK,QACA0kC,OAAArF,GAAAjrC,IAAA4L,MAAA5O,MAAA,GAAA,SAAAa,KACA,OAAAo6B,SAAAp6B,IAAA,MAEA4hD,gBAAAnP,SACAhD,SAAA1hC,OAtEA,SAAA0kC,QACA,IAAAA,OAAAvD,GAAA,CAIA,IAAAzuC,EAAA8zC,qBAAA9B,OAAAN,IACAM,OAAArF,GAAAjrC,KAAA1B,EAAAq4C,KAAAr4C,EAAA44C,MAAA54C,EAAA+8C,KAAA/8C,EAAA64C,KAAA74C,EAAA6lD,KAAA7lD,EAAA2mD,OAAA3mD,EAAAgE,OAAAhE,EAAA4mD,aAAA,SAAArnD,KACA,OAAAA,KAAAo6B,SAAAp6B,IAAA,MAGA4hD,gBAAAnP,SA6DA6U,CAAA7U,QACA9C,SAAA5hC,OAEA0kC,OAAAvD,GAAA,IAAA7oC,KAAA0H,OAEA4S,MAAAumC,wBAAAzU,QA7BA8U,CAAA9U,QAGAtB,QAAAsB,UACAA,OAAAvD,GAAA,MAGAuD,SA0BA,SAAArC,iBAAAriC,MAAAkiC,OAAAC,OAAAC,OAAAqX,OACA,IAnEA3X,IAmEA8R,KAoBA,OAlBA,IAAAzR,SAAA,IAAAA,SACAC,OAAAD,OACAA,YAAAzyC,IAGAgyC,SAAA1hC,QA3hFA,SAAA/N,KACA,GAAAf,OAAAwoD,oBACA,OAAA,IAAAxoD,OAAAwoD,oBAAAznD,KAAAqB,OAEA,IAAAqmD,EACA,IAAAA,KAAA1nD,IACA,GAAAA,IAAAN,eAAAgoD,GACA,OAAA,EAGA,OAAA,EAihFAC,CAAA55C,QACAtK,QAAAsK,QAAA,IAAAA,MAAA1M,UACA0M,WAAAtQ,GAIAkkD,EAAAzP,kBAAA,EACAyP,EAAAM,QAAAN,EAAA1S,OAAAuY,MACA7F,EAAAvP,GAAAlC,OACAyR,EAAAxP,GAAApkC,MACA4zC,EAAAxU,GAAA8C,OACA0R,EAAAjQ,QAAAvB,QArFAN,IAAA,IAAA2C,OAAA8O,cAAAoF,cAuFA/E,MAtFAuB,WAEArT,IAAAl3B,IAAA,EAAA,KACAk3B,IAAAqT,cAAAzlD,GAGAoyC,IAmFA,SAAA+S,YAAA70C,MAAAkiC,OAAAC,OAAAC,QACA,OAAAC,iBAAAriC,MAAAkiC,OAAAC,OAAAC,QAAA,GAxQAxvB,MAAAumC,wBAAA1T,UACA,iVAIA,SAAAf,QACAA,OAAAvD,GAAA,IAAA7oC,KAAAosC,OAAAN,IAAAM,OAAAwP,QAAA,OAAA,OAKAthC,MAAAslC,SAAA,aAGAtlC,MAAAulC,SAAA,aA6PA,IAAA0B,aAAApU,UACA,qGACA,WACA,IAAAqU,MAAAjF,YAAAvgD,MAAA,KAAAC,WACA,OAAAzD,KAAAsyC,WAAA0W,MAAA1W,UACA0W,MAAAhpD,KAAAA,KAAAgpD,MAEAhW,kBAKAiW,aAAAtU,UACA,qGACA,WACA,IAAAqU,MAAAjF,YAAAvgD,MAAA,KAAAC,WACA,OAAAzD,KAAAsyC,WAAA0W,MAAA1W,UACA0W,MAAAhpD,KAAAA,KAAAgpD,MAEAhW,kBAUA,SAAAkW,OAAA9mD,GAAA+mD,SACA,IAAAnY,IAAApvC,EAIA,GAHA,IAAAunD,QAAA3mD,QAAAoC,QAAAukD,QAAA,MACAA,QAAAA,QAAA,KAEAA,QAAA3mD,OACA,OAAAuhD,cAGA,IADA/S,IAAAmY,QAAA,GACAvnD,EAAA,EAAAA,EAAAunD,QAAA3mD,SAAAZ,EACAunD,QAAAvnD,GAAA0wC,YAAA6W,QAAAvnD,GAAAQ,IAAA4uC,OACAA,IAAAmY,QAAAvnD,IAGA,OAAAovC,IAgBA,IAIAoY,UAAA,OAAA,UAAA,QAAA,OAAA,MAAA,OAAA,SAAA,SAAA,eAgCA,SAAAC,SAAAh0B,UACA,IAAAwgB,gBAAAH,qBAAArgB,UACAi0B,MAAAzT,gBAAAoE,MAAA,EACAsP,SAAA1T,gBAAA2T,SAAA,EACAzO,OAAAlF,gBAAA2E,OAAA,EACAiP,MAAA5T,gBAAAiH,MAAA,EACA4M,KAAA7T,gBAAA8I,KAAA,EACAQ,MAAAtJ,gBAAA4R,MAAA,EACApI,QAAAxJ,gBAAA0S,QAAA,EACA/I,QAAA3J,gBAAAjwC,QAAA,EACA+jD,aAAA9T,gBAAA2S,aAAA,EAEAxoD,KAAAuyC,SA1CA,SAAAjnC,GACA,IAAA,IAAAqB,OAAArB,EACA,IAAA,IAAA7K,QAAAO,KAAAooD,SAAAz8C,MAAA,MAAArB,EAAAqB,MAAAq8B,MAAA19B,EAAAqB,MACA,OAAA,EAKA,IADA,IAAAi9C,gBAAA,EACAhoD,EAAA,EAAAA,EAAAwnD,SAAA5mD,SAAAZ,EACA,GAAA0J,EAAA89C,SAAAxnD,IAAA,CACA,GAAAgoD,eACA,OAAA,EAEA34B,WAAA3lB,EAAA89C,SAAAxnD,OAAAoyC,MAAA1oC,EAAA89C,SAAAxnD,OACAgoD,gBAAA,GAKA,OAAA,EAuBAC,CAAAhU,iBAGA71C,KAAA8pD,eAAAH,aACA,IAAAnK,QACA,IAAAH,QACA,IAAAF,MAAA,GAAA,GAGAn/C,KAAA+pD,OAAAL,KACA,EAAAD,MAIAzpD,KAAAgqD,SAAAjP,OACA,EAAAwO,SACA,GAAAD,MAEAtpD,KAAA0hB,SAEA1hB,KAAAyzC,QAAA0O,YAEAniD,KAAAiqD,UAGA,SAAAC,WAAA/oD,KACA,OAAAA,eAAAkoD,SAGA,SAAAc,SAAArW,QACA,OAAAA,OAAA,GACA,EAAAhvC,KAAAksB,OAAA,EAAA8iB,QAEAhvC,KAAAksB,MAAA8iB,QAMA,SAAA/M,OAAA/uB,MAAAoyC,WACAxT,eAAA5+B,MAAA,EAAA,EAAA,WACA,IAAA+uB,OAAA/mC,KAAAovC,YACA5E,KAAA,IAKA,OAJAzD,OAAA,IACAA,QAAAA,OACAyD,KAAA,KAEAA,KAAAyL,YAAAlP,OAAA,IAAA,GAAAqjB,UAAAnU,WAAA,OAAA,GAAA,KAIAlP,OAAA,IAAA,KACAA,OAAA,KAAA,IAIA0R,cAAA,IAAAH,kBACAG,cAAA,KAAAH,kBACAa,eAAA,IAAA,MAAA,SAAAjqC,MAAAw7B,MAAAkJ,QACAA,OAAAwP,SAAA,EACAxP,OAAApF,KAAA6b,iBAAA/R,iBAAAppC,SAQA,IAAAo7C,YAAA,kBAEA,SAAAD,iBAAAp3C,QAAAqN,QACA,IAAAva,SAAAua,QAAA,IAAA9U,MAAAyH,SAEA,GAAA,OAAAlN,QACA,OAAA,KAGA,IACAivB,QADAjvB,QAAAA,QAAAvD,OAAA,QACA,IAAAgJ,MAAA8+C,eAAA,IAAA,EAAA,GACAjL,QAAA,GAAArqB,MAAA,GAAAgf,MAAAhf,MAAA,IAEA,OAAA,IAAAqqB,QACA,EACA,MAAArqB,MAAA,GAAAqqB,SAAAA,QAIA,SAAAkL,gBAAAr7C,MAAAs7C,OACA,IAAAxZ,IAAAzjC,KACA,OAAAi9C,MAAApa,QACAY,IAAAwZ,MAAAjmD,QACAgJ,MAAAohC,SAAAz/B,QAAA6hC,OAAA7hC,OAAAA,MAAAgiC,UAAA6S,YAAA70C,OAAAgiC,WAAAF,IAAAE,UAEAF,IAAAX,GAAAoa,QAAAzZ,IAAAX,GAAAa,UAAA3jC,MACAuU,MAAAouB,aAAAc,KAAA,GACAA,KAEA+S,YAAA70C,OAAAw7C,QAIA,SAAAC,cAAAr/C,GAGA,OAAA,IAAAxG,KAAAksB,MAAA1lB,EAAA+kC,GAAAzE,oBAAA,IAqJA,SAAAgf,QACA,QAAA5qD,KAAAsyC,YAAAtyC,KAAAowC,QAAA,IAAApwC,KAAAwzC,SA/IA1xB,MAAAouB,aAAA,aAmJA,IAAA2a,YAAA,2DAKAC,SAAA,sKAEA,SAAAC,eAAA77C,MAAAvC,KACA,IAGA69B,KACAvnC,IACA+nD,QALA31B,SAAAnmB,MAEA1D,MAAA,KAuDA,OAlDA0+C,WAAAh7C,OACAmmB,UACAivB,GAAAp1C,MAAA46C,cACA/L,EAAA7uC,MAAA66C,MACAvI,EAAAtyC,MAAA86C,SAEAlZ,SAAA5hC,QACAmmB,YACA1oB,IACA0oB,SAAA1oB,KAAAuC,MAEAmmB,SAAAs0B,aAAAz6C,QAEA1D,MAAAq/C,YAAAh/C,KAAAqD,SACAs7B,KAAA,MAAAh/B,MAAA,IAAA,EAAA,EACA6pB,UACA8kB,EAAA,EACA4D,EAAA/J,MAAAxoC,MAAAiuC,OAAAjP,KACA6W,EAAArN,MAAAxoC,MAAAkuC,OAAAlP,KACAl/B,EAAA0oC,MAAAxoC,MAAAmuC,SAAAnP,KACAxM,EAAAgW,MAAAxoC,MAAAouC,SAAApP,KACA8Z,GAAAtQ,MAAAmW,SAAA,IAAA3+C,MAAAquC,eAAArP,QAEAh/B,MAAAs/C,SAAAj/C,KAAAqD,SACAs7B,KAAA,MAAAh/B,MAAA,IAAA,GAAAA,MAAA,GAAA,GACA6pB,UACA8kB,EAAA8Q,SAAAz/C,MAAA,GAAAg/B,MACAgX,EAAAyJ,SAAAz/C,MAAA,GAAAg/B,MACA1qC,EAAAmrD,SAAAz/C,MAAA,GAAAg/B,MACAuT,EAAAkN,SAAAz/C,MAAA,GAAAg/B,MACA6W,EAAA4J,SAAAz/C,MAAA,GAAAg/B,MACAl/B,EAAA2/C,SAAAz/C,MAAA,GAAAg/B,MACAxM,EAAAitB,SAAAz/C,MAAA,GAAAg/B,QAEA,MAAAnV,SACAA,YACA,iBAAAA,WAAA,SAAAA,UAAA,OAAAA,YACA21B,QA0CA,SAAA71C,KAAA6zC,OACA,IAAAhY,IACA,IAAA77B,KAAAm9B,YAAA0W,MAAA1W,UACA,OAAAqX,aAAA,EAAA5O,OAAA,GAGAiO,MAAAuB,gBAAAvB,MAAA7zC,MACAA,KAAA+1C,SAAAlC,OACAhY,IAAAma,0BAAAh2C,KAAA6zC,SAEAhY,IAAAma,0BAAAnC,MAAA7zC,OACAw0C,cAAA3Y,IAAA2Y,aACA3Y,IAAA+J,QAAA/J,IAAA+J,QAGA,OAAA/J,IAzDAoa,CAAArH,YAAA1uB,SAAA+d,MAAA2Q,YAAA1uB,SAAA4D,MAEA5D,aACAivB,GAAA0G,QAAArB,aACAt0B,SAAAmsB,EAAAwJ,QAAAjQ,QAGA93C,IAAA,IAAAomD,SAAAh0B,UAEA60B,WAAAh7C,QAAA+hC,WAAA/hC,MAAA,aACAjM,IAAAwwC,QAAAvkC,MAAAukC,SAGAxwC,IAMA,SAAAgoD,SAAAI,IAAA7gB,MAIA,IAAAwG,IAAAqa,KAAAp6B,WAAAo6B,IAAA5rD,QAAA,IAAA,MAEA,OAAAupC,MAAAgI,KAAA,EAAAA,KAAAxG,KAGA,SAAA2gB,0BAAAh2C,KAAA6zC,OACA,IAAAhY,KAAA2Y,aAAA,EAAA5O,OAAA,GAUA,OARA/J,IAAA+J,OAAAiO,MAAAxO,QAAArlC,KAAAqlC,QACA,IAAAwO,MAAA/O,OAAA9kC,KAAA8kC,QACA9kC,KAAA5Q,QAAAuV,IAAAk3B,IAAA+J,OAAA,KAAAuQ,QAAAtC,UACAhY,IAAA+J,OAGA/J,IAAA2Y,cAAAX,OAAA7zC,KAAA5Q,QAAAuV,IAAAk3B,IAAA+J,OAAA,KAEA/J,IAsBA,SAAAua,YAAAC,UAAApnD,MACA,OAAA,SAAAiM,IAAAo7C,QACA,IAAAz8C,IAWA,OATA,OAAAy8C,QAAAziB,OAAAyiB,UACA1W,gBAAA3wC,KAAA,YAAAA,KAAA,uDAAAA,KAAA,kGAEA4K,IAAAqB,IAAAA,IAAAo7C,OAAAA,OAAAz8C,KAKA08C,YAAA1rD,KADA+qD,eADA16C,IAAA,iBAAAA,KAAAA,IAAAA,IACAo7C,QACAD,WACAxrD,MAIA,SAAA0rD,YAAAvc,IAAA9Z,SAAAs2B,SAAAzb,cACA,IAAAyZ,aAAAt0B,SAAAy0B,cACAJ,KAAAS,SAAA90B,SAAA00B,OACAhP,OAAAoP,SAAA90B,SAAA20B,SAEA7a,IAAAmD,YAKApC,aAAA,MAAAA,cAAAA,aAEA6K,QACAO,SAAAnM,IAAAtsC,IAAAssC,IAAA,SAAA4L,OAAA4Q,UAEAjC,MACAnP,MAAApL,IAAA,OAAAtsC,IAAAssC,IAAA,QAAAua,KAAAiC,UAEAhC,cACAxa,IAAAkB,GAAAoa,QAAAtb,IAAAkB,GAAAa,UAAAyY,aAAAgC,UAEAzb,cACApuB,MAAAouB,aAAAf,IAAAua,MAAA3O,SApFAgQ,eAAA3oD,GAAAinD,SAAA5mD,UACAsoD,eAAAa,QAvVA,WACA,OAAAb,eAAA9X,MA6aA,IAAAn5B,IAAAyxC,YAAA,EAAA,OACAj5B,SAAAi5B,aAAA,EAAA,YAqHA,SAAAM,UAAA5jD,EAAAC,GAEA,IAAA4jD,eAAA,IAAA5jD,EAAA+xC,OAAAhyC,EAAAgyC,SAAA/xC,EAAAsyC,QAAAvyC,EAAAuyC,SAEAuR,OAAA9jD,EAAA1D,QAAAuV,IAAAgyC,eAAA,UAcA,QAAAA,gBAXA5jD,EAAA6jD,OAAA,GAGA7jD,EAAA6jD,SAAAA,OAFA9jD,EAAA1D,QAAAuV,IAAAgyC,eAAA,EAAA,YAMA5jD,EAAA6jD,SAFA9jD,EAAA1D,QAAAuV,IAAAgyC,eAAA,EAAA,UAEAC,WAIA,EA6FA,SAAA1a,OAAA1kC,KACA,IAAAq/C,cAEA,YAAAptD,IAAA+N,IACA3M,KAAAyzC,QAAAwO,OAGA,OADA+J,cAAA7J,UAAAx1C,QAEA3M,KAAAyzC,QAAAuY,eAEAhsD,MApGA8hB,MAAAmqC,cAAA,uBACAnqC,MAAAoqC,iBAAA,yBAuGA,IAAA74C,KAAAshC,UACA,kJACA,SAAAhoC,KACA,YAAA/N,IAAA+N,IACA3M,KAAA+2C,aAEA/2C,KAAAqxC,OAAA1kC,OAKA,SAAAoqC,aACA,OAAA/2C,KAAAyzC,QAgIA,SAAA0Y,uBAAAn0C,MAAA6iB,QACA+b,eAAA,GAAA5+B,MAAAA,MAAAxV,QAAA,EAAAq4B,QA+DA,SAAAuxB,qBAAAl9C,MAAA4tC,KAAAC,QAAAN,IAAAC,KACA,IAAA2P,YACA,OAAA,MAAAn9C,MACAiuC,WAAAn9C,KAAAy8C,IAAAC,KAAAzC,MAGA6C,MADAuP,YAAA/O,YAAApuC,MAAAutC,IAAAC,QAEAI,KAAAuP,aAMA,SAAA3I,SAAA5G,KAAAC,QAAAN,IAAAC,KACA,IAAA4P,cAAAzP,mBAAA6G,SAAA5G,KAAAC,QAAAN,IAAAC,KACAjC,KAAA2B,cAAAkQ,cAAArS,KAAA,EAAAqS,cAAApP,WAKA,OAHAl9C,KAAAi6C,KAAAQ,KAAA6B,kBACAt8C,KAAAw6C,MAAAC,KAAA4I,eACArjD,KAAAy6C,KAAAA,KAAA6I,cACAtjD,MAXAgB,KAAAhB,KAAAkP,MAAA4tC,KAAAC,QAAAN,IAAAC,MAjFA9F,eAAA,GAAA,KAAA,GAAA,EAAA,WACA,OAAA52C,KAAA0jD,WAAA,MAGA9M,eAAA,GAAA,KAAA,GAAA,EAAA,WACA,OAAA52C,KAAAusD,cAAA,MAOAJ,uBAAA,OAAA,YACAA,uBAAA,QAAA,YACAA,uBAAA,OAAA,eACAA,uBAAA,QAAA,eAIA9W,aAAA,WAAA,MACAA,aAAA,cAAA,MAIAU,gBAAA,WAAA,GACAA,gBAAA,cAAA,GAKA0C,cAAA,IAAAL,aACAK,cAAA,IAAAL,aACAK,cAAA,KAAAZ,UAAAJ,QACAgB,cAAA,KAAAZ,UAAAJ,QACAgB,cAAA,OAAAR,UAAAN,QACAc,cAAA,OAAAR,UAAAN,QACAc,cAAA,QAAAP,UAAAN,QACAa,cAAA,QAAAP,UAAAN,QAEAwB,mBAAA,OAAA,QAAA,OAAA,SAAA,SAAAlqC,MAAA4tC,KAAAlJ,OAAA57B,OACA8kC,KAAA9kC,MAAAu+B,OAAA,EAAA,IAAAvC,MAAA9kC,SAGAkqC,mBAAA,KAAA,MAAA,SAAAlqC,MAAA4tC,KAAAlJ,OAAA57B,OACA8kC,KAAA9kC,OAAA8J,MAAAs4B,kBAAAlrC,SAqDA0nC,eAAA,IAAA,EAAA,KAAA,WAIAvB,aAAA,UAAA,KAIAU,gBAAA,UAAA,GAIA0C,cAAA,IAAAjB,QACA2B,cAAA,IAAA,SAAAjqC,MAAAw7B,OACAA,MAAA8O,OAAA,GAAAxF,MAAA9kC,OAAA,KAWA0nC,eAAA,KAAA,KAAA,GAAA,KAAA,QAIAvB,aAAA,OAAA,KAGAU,gBAAA,OAAA,GAIA0C,cAAA,IAAAZ,WACAY,cAAA,KAAAZ,UAAAJ,QACAgB,cAAA,KAAA,SAAAG,SAAAvH,QAEA,OAAAuH,SACAvH,OAAAmb,yBAAAnb,OAAAob,cACApb,OAAAqb,iCAGAvT,eAAA,IAAA,MAAAM,MACAN,cAAA,KAAA,SAAAjqC,MAAAw7B,OACAA,MAAA+O,MAAAzF,MAAA9kC,MAAA1D,MAAAqsC,WAAA,MAKA,IAAA8U,iBAAArS,WAAA,QAAA,GAIA1D,eAAA,OAAA,OAAA,GAAA,OAAA,aAIAvB,aAAA,YAAA,OAGAU,gBAAA,YAAA,GAIA0C,cAAA,MAAAT,WACAS,cAAA,OAAAf,QACAyB,eAAA,MAAA,QAAA,SAAAjqC,MAAAw7B,MAAAkJ,QACAA,OAAAuQ,WAAAnQ,MAAA9kC,SAcA0nC,eAAA,KAAA,KAAA,GAAA,EAAA,UAIAvB,aAAA,SAAA,KAIAU,gBAAA,SAAA,IAIA0C,cAAA,IAAAZ,WACAY,cAAA,KAAAZ,UAAAJ,QACA0B,eAAA,IAAA,MAAAQ,QAIA,IAAAiT,aAAAtS,WAAA,WAAA,GAIA1D,eAAA,KAAA,KAAA,GAAA,EAAA,UAIAvB,aAAA,SAAA,KAIAU,gBAAA,SAAA,IAIA0C,cAAA,IAAAZ,WACAY,cAAA,KAAAZ,UAAAJ,QACA0B,eAAA,IAAA,MAAAS,QAIA,IA+CA5hC,MA/CA60C,aAAAvS,WAAA,WAAA,GAgDA,IA5CA1D,eAAA,IAAA,EAAA,EAAA,WACA,SAAA52C,KAAAwoD,cAAA,OAGA5R,eAAA,GAAA,KAAA,GAAA,EAAA,WACA,SAAA52C,KAAAwoD,cAAA,MAGA5R,eAAA,GAAA,MAAA,GAAA,EAAA,eACAA,eAAA,GAAA,OAAA,GAAA,EAAA,WACA,OAAA,GAAA52C,KAAAwoD,gBAEA5R,eAAA,GAAA,QAAA,GAAA,EAAA,WACA,OAAA,IAAA52C,KAAAwoD,gBAEA5R,eAAA,GAAA,SAAA,GAAA,EAAA,WACA,OAAA,IAAA52C,KAAAwoD,gBAEA5R,eAAA,GAAA,UAAA,GAAA,EAAA,WACA,OAAA,IAAA52C,KAAAwoD,gBAEA5R,eAAA,GAAA,WAAA,GAAA,EAAA,WACA,OAAA,IAAA52C,KAAAwoD,gBAEA5R,eAAA,GAAA,YAAA,GAAA,EAAA,WACA,OAAA,IAAA52C,KAAAwoD,gBAMAnT,aAAA,cAAA,MAIAU,gBAAA,cAAA,IAIA0C,cAAA,IAAAT,UAAAR,QACAiB,cAAA,KAAAT,UAAAP,QACAgB,cAAA,MAAAT,UAAAN,QAGA1/B,MAAA,OAAAA,MAAAxV,QAAA,EAAAwV,OAAA,IACAygC,cAAAzgC,MAAAmgC,eAGA,SAAA2U,QAAA59C,MAAAw7B,OACAA,MAAAmP,aAAA7F,MAAA,KAAA,KAAA9kC,QAGA,IAAA8I,MAAA,IAAAA,MAAAxV,QAAA,EAAAwV,OAAA,IACAmhC,cAAAnhC,MAAA80C,SAIA,IAAAC,kBAAAzS,WAAA,gBAAA,GAIA1D,eAAA,IAAA,EAAA,EAAA,YACAA,eAAA,KAAA,EAAA,EAAA,YAYA,IAAAxxC,MAAAuuC,OAAAlxC,UAsFA,SAAAuqD,mBAAA1sC,QACA,OAAAA,OArFAlb,MAAA0U,IAAAA,IACA1U,MAAA86C,SAxpBA,SAAAhmB,KAAA+yB,SAGA,IAAA7iC,IAAA8P,MAAA6pB,cACAmJ,IAAA3C,gBAAAngC,IAAApqB,MAAAmtD,QAAA,OACA/b,OAAAtvB,MAAAsrC,eAAAptD,KAAAktD,MAAA,WAEAhW,OAAA+V,UAAA/rD,WAAA+rD,QAAA7b,SAAA6b,QAAA7b,QAAApwC,KAAAhB,KAAAoqB,KAAA6iC,QAAA7b,SAEA,OAAApxC,KAAAoxC,OAAA8F,QAAAl3C,KAAA+2C,aAAAmJ,SAAA9O,OAAApxC,KAAA+jD,YAAA35B,QAgpBAhlB,MAAAb,MA7oBA,WACA,OAAA,IAAAovC,OAAA3zC,OA6oBAoF,MAAAmI,KAnlBA,SAAA2B,MAAAumC,MAAA4X,SACA,IAAA3vC,KACA4vC,UACApW,OAEA,IAAAl3C,KAAAsyC,UACA,OAAAW,IAKA,KAFAv1B,KAAA6sC,gBAAAr7C,MAAAlP,OAEAsyC,UACA,OAAAW,IAOA,OAJAqa,UAAA,KAAA5vC,KAAA0xB,YAAApvC,KAAAovC,aAEAqG,MAAAD,eAAAC,QAGA,IAAA,OAAAyB,OAAA2U,UAAA7rD,KAAA0d,MAAA,GAAA,MACA,IAAA,QAAAw5B,OAAA2U,UAAA7rD,KAAA0d,MAAA,MACA,IAAA,UAAAw5B,OAAA2U,UAAA7rD,KAAA0d,MAAA,EAAA,MACA,IAAA,SAAAw5B,QAAAl3C,KAAA0d,MAAA,IAAA,MACA,IAAA,SAAAw5B,QAAAl3C,KAAA0d,MAAA,IAAA,MACA,IAAA,OAAAw5B,QAAAl3C,KAAA0d,MAAA,KAAA,MACA,IAAA,MAAAw5B,QAAAl3C,KAAA0d,KAAA4vC,WAAA,MAAA,MACA,IAAA,OAAApW,QAAAl3C,KAAA0d,KAAA4vC,WAAA,OAAA,MACA,QAAApW,OAAAl3C,KAAA0d,KAGA,OAAA2vC,QAAAnW,OAAArD,SAAAqD,SAqjBA9xC,MAAAmoD,MA1XA,SAAA9X,OAEA,YAAA72C,KADA62C,MAAAD,eAAAC,SACA,gBAAAA,MACAz1C,MAIA,SAAAy1C,QACAA,MAAA,OAGAz1C,KAAAmtD,QAAA1X,OAAA37B,IAAA,EAAA,YAAA27B,MAAA,OAAAA,OAAAnjB,SAAA,EAAA,QAgXAltB,MAAAgsC,OA3eA,SAAAoc,aACAA,cACAA,YAAAxtD,KAAA4qD,QAAA9oC,MAAAoqC,iBAAApqC,MAAAmqC,eAEA,IAAA/U,OAAAF,aAAAh3C,KAAAwtD,aACA,OAAAxtD,KAAA+2C,aAAA0W,WAAAvW,SAueA9xC,MAAAguC,KApeA,SAAAlZ,KAAAwzB,eACA,OAAA1tD,KAAAsyC,YACA3D,SAAAzU,OAAAA,KAAAoY,WACAyR,YAAA7pB,MAAAoY,WACAyY,gBAAA9xB,GAAAj5B,KAAAozC,KAAAlZ,OAAAmX,OAAArxC,KAAAqxC,UAAAsc,UAAAD,eAEA1tD,KAAA+2C,aAAAK,eA+dAhyC,MAAAwoD,QA3dA,SAAAF,eACA,OAAA1tD,KAAAozC,KAAA2Q,cAAA2J,gBA2dAtoD,MAAA6zB,GAxdA,SAAAiB,KAAAwzB,eACA,OAAA1tD,KAAAsyC,YACA3D,SAAAzU,OAAAA,KAAAoY,WACAyR,YAAA7pB,MAAAoY,WACAyY,gBAAA3X,KAAApzC,KAAAi5B,GAAAiB,OAAAmX,OAAArxC,KAAAqxC,UAAAsc,UAAAD,eAEA1tD,KAAA+2C,aAAAK,eAmdAhyC,MAAAyoD,MA/cA,SAAAH,eACA,OAAA1tD,KAAAi5B,GAAA8qB,cAAA2J,gBA+cAtoD,MAAAvC,IA98FA,SAAA4yC,OAEA,OAAAv0C,WAAAlB,KADAy1C,MAAAD,eAAAC,SAEAz1C,KAAAy1C,SAEAz1C,MA08FAoF,MAAA0oD,UAxUA,WACA,OAAAtc,gBAAAxxC,MAAAy4B,UAwUArzB,MAAAkmD,QAnpBA,SAAAp8C,MAAAumC,OACA,IAAAsY,WAAApf,SAAAz/B,OAAAA,MAAA60C,YAAA70C,OACA,SAAAlP,KAAAsyC,YAAAyb,WAAAzb,aAIA,iBADAmD,MAAAD,eAAA3E,YAAA4E,OAAA,cAAAA,QAEAz1C,KAAAkxC,UAAA6c,WAAA7c,UAEA6c,WAAA7c,UAAAlxC,KAAAuE,QAAA4oD,QAAA1X,OAAAvE,YA2oBA9rC,MAAA8lD,SAvoBA,SAAAh8C,MAAAumC,OACA,IAAAsY,WAAApf,SAAAz/B,OAAAA,MAAA60C,YAAA70C,OACA,SAAAlP,KAAAsyC,YAAAyb,WAAAzb,aAIA,iBADAmD,MAAAD,eAAA3E,YAAA4E,OAAA,cAAAA,QAEAz1C,KAAAkxC,UAAA6c,WAAA7c,UAEAlxC,KAAAuE,QAAAgpD,MAAA9X,OAAAvE,UAAA6c,WAAA7c,YA+nBA9rC,MAAA4oD,UA3nBA,SAAA5a,KAAAna,GAAAwc,MAAAwY,aAEA,OAAA,OADAA,YAAAA,aAAA,MACA,GAAAjuD,KAAAsrD,QAAAlY,KAAAqC,QAAAz1C,KAAAkrD,SAAA9X,KAAAqC,UACA,MAAAwY,YAAA,GAAAjuD,KAAAkrD,SAAAjyB,GAAAwc,QAAAz1C,KAAAsrD,QAAAryB,GAAAwc,SAynBArwC,MAAA8oD,OAtnBA,SAAAh/C,MAAAumC,OACA,IACA0Y,QADAJ,WAAApf,SAAAz/B,OAAAA,MAAA60C,YAAA70C,OAEA,SAAAlP,KAAAsyC,YAAAyb,WAAAzb,aAIA,iBADAmD,MAAAD,eAAAC,OAAA,gBAEAz1C,KAAAkxC,YAAA6c,WAAA7c,WAEAid,QAAAJ,WAAA7c,UACAlxC,KAAAuE,QAAA4oD,QAAA1X,OAAAvE,WAAAid,SAAAA,SAAAnuD,KAAAuE,QAAAgpD,MAAA9X,OAAAvE,aA4mBA9rC,MAAAgpD,cAxmBA,SAAAl/C,MAAAumC,OACA,OAAAz1C,KAAAkuD,OAAAh/C,MAAAumC,QAAAz1C,KAAAsrD,QAAAp8C,MAAAumC,QAwmBArwC,MAAAipD,eArmBA,SAAAn/C,MAAAumC,OACA,OAAAz1C,KAAAkuD,OAAAh/C,MAAAumC,QAAAz1C,KAAAkrD,SAAAh8C,MAAAumC,QAqmBArwC,MAAAktC,QAvVA,WACA,OAAAA,QAAAtyC,OAuVAoF,MAAAiO,KAAAA,KACAjO,MAAAisC,OAAAA,OACAjsC,MAAA2xC,WAAAA,WACA3xC,MAAAmtB,IAAA02B,aACA7jD,MAAAmvC,IAAAwU,aACA3jD,MAAAkpD,aAzVA,WACA,OAAApqD,UAAAstC,gBAAAxxC,QAyVAoF,MAAAyb,IAp9FA,SAAA40B,MAAAvvC,OACA,GAAA,iBAAAuvC,MAGA,IADA,IAAA8Y,YApTA,SAAAC,UACA,IAAA/Y,SACA,IAAA,IAAAgZ,KAAAD,SACA/Y,MAAAj1C,MAAA6iB,KAAAorC,EAAAzY,SAAAF,WAAA2Y,KAKA,OAHAhZ,MAAAzxC,KAAA,SAAAiE,EAAAC,GACA,OAAAD,EAAA+tC,SAAA9tC,EAAA8tC,WAEAP,MA4SAiZ,CADAjZ,MAAAC,qBAAAD,QAEA7zC,EAAA,EAAAA,EAAA2sD,YAAA/rD,OAAAZ,IACA5B,KAAAuuD,YAAA3sD,GAAAyhB,MAAAoyB,MAAA8Y,YAAA3sD,GAAAyhB,YAIA,GAAAniB,WAAAlB,KADAy1C,MAAAD,eAAAC,SAEA,OAAAz1C,KAAAy1C,OAAAvvC,OAGA,OAAAlG,MAw8FAoF,MAAA+nD,QA5bA,SAAA1X,OAIA,OAHAA,MAAAD,eAAAC,QAIA,IAAA,OACAz1C,KAAAw6C,MAAA,GAEA,IAAA,UACA,IAAA,QACAx6C,KAAAy6C,KAAA,GAEA,IAAA,OACA,IAAA,UACA,IAAA,MACA,IAAA,OACAz6C,KAAAm/C,MAAA,GAEA,IAAA,OACAn/C,KAAAq/C,QAAA,GAEA,IAAA,SACAr/C,KAAAw/C,QAAA,GAEA,IAAA,SACAx/C,KAAA2pD,aAAA,GAgBA,MAZA,SAAAlU,OACAz1C,KAAA+8C,QAAA,GAEA,YAAAtH,OACAz1C,KAAA2uD,WAAA,GAIA,YAAAlZ,OACAz1C,KAAAw6C,MAAA,EAAA11C,KAAAivC,MAAA/zC,KAAAw6C,QAAA,IAGAx6C,MAoZAoF,MAAAktB,SAAAA,SACAltB,MAAAxC,QAxXA,WACA,IAAA0I,EAAAtL,KACA,OAAAsL,EAAA2uC,OAAA3uC,EAAAkvC,QAAAlvC,EAAAmvC,OAAAnvC,EAAAm8C,OAAAn8C,EAAAi9C,SAAAj9C,EAAA1F,SAAA0F,EAAAk9C,gBAuXApjD,MAAAwpD,SApXA,WACA,IAAAtjD,EAAAtL,KACA,OACAspD,MAAAh+C,EAAA2uC,OACAc,OAAAzvC,EAAAkvC,QACAC,KAAAnvC,EAAAmvC,OACA0E,MAAA7zC,EAAA6zC,QACAE,QAAA/zC,EAAA+zC,UACAG,QAAAl0C,EAAAk0C,UACAmK,aAAAr+C,EAAAq+C,iBA4WAvkD,MAAAypD,OA9XA,WACA,OAAA,IAAArnD,KAAAxH,KAAAkxC,YA8XA9rC,MAAA0pD,YAjjBA,SAAAC,YACA,IAAA/uD,KAAAsyC,UACA,OAAA,KAEA,IAAA5D,KAAA,IAAAqgB,WACAzjD,EAAAojC,IAAA1uC,KAAAuE,QAAAmqC,MAAA1uC,KACA,OAAAsL,EAAA2uC,OAAA,GAAA3uC,EAAA2uC,OAAA,KACAjD,aAAA1rC,EAAAojC,IAAA,iCAAA,gCAEAxtC,WAAAsG,KAAA/E,UAAAqsD,aAEApgB,IACA1uC,KAAA6uD,SAAAC,cAEA,IAAAtnD,KAAAxH,KAAAkxC,UAAA,GAAAlxC,KAAAovC,YAAA,KAAA0f,cAAArvD,QAAA,IAAAu3C,aAAA1rC,EAAA,MAGA0rC,aAAA1rC,EAAAojC,IAAA,+BAAA,+BAiiBAtpC,MAAAm6B,QAxhBA,WACA,IAAAv/B,KAAAsyC,UACA,MAAA,qBAAAtyC,KAAAszC,GAAA,OAEA,IAAA/2B,KAAA,SACAuvB,KAAA,GACA9rC,KAAAggC,YACAzjB,KAAA,IAAAvc,KAAAovC,YAAA,aAAA,mBACAtD,KAAA,KAEA,IAAAlX,OAAA,IAAArY,KAAA,MACA09B,KAAA,GAAAj6C,KAAAi6C,QAAAj6C,KAAAi6C,QAAA,KAAA,OAAA,SAEAplB,OAAAiX,KAAA,OAEA,OAAA9rC,KAAAoxC,OAAAxc,OAAAqlB,KAHA,wBAGAplB,SA0gBAzvB,MAAA4pD,OA3WA,WAEA,OAAAhvD,KAAAsyC,UAAAtyC,KAAA8uD,cAAA,MA0WA1pD,MAAAzE,SAxjBA,WACA,OAAAX,KAAAuE,QAAA8sC,OAAA,MAAAD,OAAA,qCAwjBAhsC,MAAA6pD,KAvYA,WACA,OAAAnqD,KAAAivC,MAAA/zC,KAAAkxC,UAAA,MAuYA9rC,MAAA8rC,QA5YA,WACA,OAAAlxC,KAAAqwC,GAAAa,UAAA,KAAAlxC,KAAAwzC,SAAA,IA4YApuC,MAAA8pD,aA9VA,WACA,OACAhgD,MAAAlP,KAAAszC,GACAlC,OAAApxC,KAAAsuC,GACA+C,OAAArxC,KAAAyzC,QACAkV,MAAA3oD,KAAAowC,OACAkB,OAAAtxC,KAAA6yC,UAyVAztC,MAAA60C,KAAAI,WACAj1C,MAAA80C,WA7gGA,WACA,OAAAA,WAAAl6C,KAAAi6C,SA6gGA70C,MAAAs+C,SApSA,SAAAx0C,OACA,OAAAk9C,qBAAAprD,KAAAhB,KACAkP,MACAlP,KAAA88C,OACA98C,KAAA+8C,UACA/8C,KAAA+2C,aAAAiN,MAAAvH,IACAz8C,KAAA+2C,aAAAiN,MAAAtH,MA+RAt3C,MAAAmnD,YA5RA,SAAAr9C,OACA,OAAAk9C,qBAAAprD,KAAAhB,KACAkP,MAAAlP,KAAAmvD,UAAAnvD,KAAA2uD,aAAA,EAAA,IA2RAvpD,MAAAokD,QAAApkD,MAAAmkD,SAnOA,SAAAr6C,OACA,OAAA,MAAAA,MAAApK,KAAAkuB,MAAAhzB,KAAAw6C,QAAA,GAAA,GAAAx6C,KAAAw6C,MAAA,GAAAtrC,MAAA,GAAAlP,KAAAw6C,QAAA,IAmOAp1C,MAAAo1C,MAAAgB,YACAp2C,MAAAs1C,YA/vFA,WACA,OAAAA,YAAA16C,KAAAi6C,OAAAj6C,KAAAw6C,UA+vFAp1C,MAAA03C,KAAA13C,MAAAqkD,MA7iFA,SAAAv6C,OACA,IAAA4tC,KAAA98C,KAAA+2C,aAAA+F,KAAA98C,MACA,OAAA,MAAAkP,MAAA4tC,KAAA98C,KAAA8Z,IAAA,GAAA5K,MAAA4tC,MAAA,MA4iFA13C,MAAA+pD,QAAA/pD,MAAAgqD,SAziFA,SAAAlgD,OACA,IAAA4tC,KAAAK,WAAAn9C,KAAA,EAAA,GAAA88C,KACA,OAAA,MAAA5tC,MAAA4tC,KAAA98C,KAAA8Z,IAAA,GAAA5K,MAAA4tC,MAAA,MAwiFA13C,MAAAk4C,YAzRA,WACA,IAAA+R,SAAArvD,KAAA+2C,aAAAiN,MACA,OAAA1G,YAAAt9C,KAAAi6C,OAAAoV,SAAA5S,IAAA4S,SAAA3S,MAwRAt3C,MAAAkqD,eA9RA,WACA,OAAAhS,YAAAt9C,KAAAi6C,OAAA,EAAA,IA8RA70C,MAAAq1C,KAAAkS,iBACAvnD,MAAAu5C,IAAAv5C,MAAAskD,KAn1EA,SAAAx6C,OACA,IAAAlP,KAAAsyC,UACA,OAAA,MAAApjC,MAAAlP,KAAAizC,IAEA,IAAA0L,IAAA3+C,KAAAowC,OAAApwC,KAAAqwC,GAAAuM,YAAA58C,KAAAqwC,GAAAmU,SACA,OAAA,MAAAt1C,OACAA,MA9JA,SAAAA,MAAAmiC,QACA,MAAA,iBAAAniC,MACAA,MAGA85B,MAAA95B,OAKA,iBADAA,MAAAmiC,OAAAyM,cAAA5uC,QAEAA,MAGA,KARAqsB,SAAArsB,MAAA,IAwJAqgD,CAAArgD,MAAAlP,KAAA+2C,cACA/2C,KAAA8Z,IAAA5K,MAAAyvC,IAAA,MAEAA,KA20EAv5C,MAAA23C,QAv0EA,SAAA7tC,OACA,IAAAlP,KAAAsyC,UACA,OAAA,MAAApjC,MAAAlP,KAAAizC,IAEA,IAAA8J,SAAA/8C,KAAA2+C,MAAA,EAAA3+C,KAAA+2C,aAAAiN,MAAAvH,KAAA,EACA,OAAA,MAAAvtC,MAAA6tC,QAAA/8C,KAAA8Z,IAAA5K,MAAA6tC,QAAA,MAm0EA33C,MAAAupD,WAh0EA,SAAAz/C,OACA,IAAAlP,KAAAsyC,UACA,OAAA,MAAApjC,MAAAlP,KAAAizC,IAOA,GAAA,MAAA/jC,MAAA,CACA,IAAA6tC,QAtKA,SAAA7tC,MAAAmiC,QACA,MAAA,iBAAAniC,MACAmiC,OAAAyM,cAAA5uC,OAAA,GAAA,EAEA85B,MAAA95B,OAAA,KAAAA,MAkKAsgD,CAAAtgD,MAAAlP,KAAA+2C,cACA,OAAA/2C,KAAA2+C,IAAA3+C,KAAA2+C,MAAA,EAAA5B,QAAAA,QAAA,GAEA,OAAA/8C,KAAA2+C,OAAA,GAozEAv5C,MAAA83C,UApLA,SAAAhuC,OACA,IAAAguC,UAAAp4C,KAAAksB,OAAAhxB,KAAAuE,QAAA4oD,QAAA,OAAAntD,KAAAuE,QAAA4oD,QAAA,SAAA,OAAA,EACA,OAAA,MAAAj+C,MAAAguC,UAAAl9C,KAAA8Z,IAAA5K,MAAAguC,UAAA,MAmLA93C,MAAAqiD,KAAAriD,MAAA+5C,MAAAa,WACA56C,MAAAmjD,OAAAnjD,MAAAi6C,QAAAuN,aACAxnD,MAAAQ,OAAAR,MAAAo6C,QAAAqN,aACAznD,MAAAojD,YAAApjD,MAAAukD,aAAAoD,kBACA3nD,MAAAgqC,UA//BA,SAAAlgC,MAAAugD,cAAAC,aACA,IACAC,YADA5oB,OAAA/mC,KAAAwzC,SAAA,EAEA,IAAAxzC,KAAAsyC,UACA,OAAA,MAAApjC,MAAAlP,KAAAizC,IAEA,GAAA,MAAA/jC,MAAA,CACA,GAAA,iBAAAA,OAEA,GAAA,QADAA,MAAAm7C,iBAAA/R,iBAAAppC,QAEA,OAAAlP,UAEA8E,KAAAwqC,IAAApgC,OAAA,KAAAwgD,cACAxgD,OAAA,IAmBA,OAjBAlP,KAAAowC,QAAAqf,gBACAE,YAAAhF,cAAA3qD,OAEAA,KAAAwzC,QAAAtkC,MACAlP,KAAAowC,QAAA,EACA,MAAAuf,aACA3vD,KAAA8Z,IAAA61C,YAAA,KAEA5oB,SAAA73B,SACAugD,eAAAzvD,KAAA4vD,kBACAlE,YAAA1rD,KAAA+qD,eAAA77C,MAAA63B,OAAA,KAAA,GAAA,GACA/mC,KAAA4vD,oBACA5vD,KAAA4vD,mBAAA,EACA9tC,MAAAouB,aAAAlwC,MAAA,GACAA,KAAA4vD,kBAAA,OAGA5vD,KAEA,OAAAA,KAAAowC,OAAArJ,OAAA4jB,cAAA3qD,OA89BAoF,MAAAspC,IA58BA,SAAA+gB,eACA,OAAAzvD,KAAAovC,UAAA,EAAAqgB,gBA48BArqD,MAAAslD,MAz8BA,SAAA+E,eASA,OARAzvD,KAAAowC,SACApwC,KAAAovC,UAAA,EAAAqgB,eACAzvD,KAAAowC,QAAA,EAEAqf,eACAzvD,KAAAsyB,SAAAq4B,cAAA3qD,MAAA,MAGAA,MAi8BAoF,MAAAyqD,UA97BA,WACA,GAAA,MAAA7vD,KAAAwuC,KACAxuC,KAAAovC,UAAApvC,KAAAwuC,MAAA,GAAA,QACA,GAAA,iBAAAxuC,KAAAszC,GAAA,CACA,IAAAwc,MAAAzF,iBAAAhS,YAAAr4C,KAAAszC,IACA,MAAAwc,MACA9vD,KAAAovC,UAAA0gB,OAGA9vD,KAAAovC,UAAA,GAAA,GAGA,OAAApvC,MAm7BAoF,MAAA2qD,qBAh7BA,SAAA7gD,OACA,QAAAlP,KAAAsyC,YAGApjC,MAAAA,MAAA60C,YAAA70C,OAAAkgC,YAAA,GAEApvC,KAAAovC,YAAAlgC,OAAA,IAAA,IA26BA9J,MAAA4qD,MAx6BA,WACA,OACAhwD,KAAAovC,YAAApvC,KAAAuE,QAAAi2C,MAAA,GAAApL,aACApvC,KAAAovC,YAAApvC,KAAAuE,QAAAi2C,MAAA,GAAApL,aAs6BAhqC,MAAA46B,QA74BA,WACA,QAAAhgC,KAAAsyC,YAAAtyC,KAAAowC,QA64BAhrC,MAAA6qD,YA14BA,WACA,QAAAjwD,KAAAsyC,WAAAtyC,KAAAowC,QA04BAhrC,MAAAwlD,MAAAA,MACAxlD,MAAAujD,MAAAiC,MACAxlD,MAAAmrC,SA9EA,WACA,OAAAvwC,KAAAowC,OAAA,MAAA,IA8EAhrC,MAAAkrC,SA3EA,WACA,OAAAtwC,KAAAowC,OAAA,6BAAA,IA2EAhrC,MAAA8qD,MAAAvb,UAAA,kDAAAgY,kBACAvnD,MAAA21C,OAAApG,UAAA,mDAAA6G,aACAp2C,MAAAkkD,MAAA3U,UAAA,iDAAA0F,YACAj1C,MAAA0mC,KAAA6I,UAAA,2GAx+BA,SAAAzlC,MAAAugD,eACA,OAAA,MAAAvgD,OACA,iBAAAA,QACAA,OAAAA,OAGAlP,KAAAovC,UAAAlgC,MAAAugD,eAEAzvD,OAEAA,KAAAovC,cA+9BAhqC,MAAA+qD,aAAAxb,UAAA,0GA56BA,WACA,IAAA9D,YAAA7wC,KAAAowD,eACA,OAAApwD,KAAAowD,cAGA,IAAAtN,KAKA,GAHA3P,WAAA2P,EAAA9iD,OACA8iD,EAAA+E,cAAA/E,IAEAvU,GAAA,CACA,IAAAya,MAAAlG,EAAA1S,OAAAe,UAAA2R,EAAAvU,IAAAwV,YAAAjB,EAAAvU,IACAvuC,KAAAowD,cAAApwD,KAAAsyC,WACA6B,cAAA2O,EAAAvU,GAAAya,MAAApmD,WAAA,OAEA5C,KAAAowD,eAAA,EAGA,OAAApwD,KAAAowD,gBAw6BA,IAAAC,QAAAjb,OAAA3yC,UAiCA,SAAA6tD,MAAAlf,OAAAx3B,MAAA22C,MAAAvuC,QACA,IAAAqvB,OAAA8Q,YACAzT,IAAAyC,YAAAtwB,IAAAmB,OAAApI,OACA,OAAAy3B,OAAAkf,OAAA7hB,IAAA0C,QAGA,SAAAof,eAAApf,OAAAx3B,MAAA22C,OAQA,GAPAzf,SAAAM,UACAx3B,MAAAw3B,OACAA,YAAAxyC,GAGAwyC,OAAAA,QAAA,GAEA,MAAAx3B,MACA,OAAA02C,MAAAlf,OAAAx3B,MAAA22C,MAAA,SAGA,IAAA3uD,EACA2oC,OACA,IAAA3oC,EAAA,EAAAA,EAAA,GAAAA,IACA2oC,IAAA3oC,GAAA0uD,MAAAlf,OAAAxvC,EAAA2uD,MAAA,SAEA,OAAAhmB,IAWA,SAAAkmB,iBAAAC,aAAAtf,OAAAx3B,MAAA22C,OACA,kBAAAG,cACA5f,SAAAM,UACAx3B,MAAAw3B,OACAA,YAAAxyC,GAGAwyC,OAAAA,QAAA,KAGAx3B,MADAw3B,OAAAsf,aAEAA,cAAA,EAEA5f,SAAAM,UACAx3B,MAAAw3B,OACAA,YAAAxyC,GAGAwyC,OAAAA,QAAA,IAGA,IAOAxvC,EAPAyvC,OAAA8Q,YACAt1C,MAAA6jD,aAAArf,OAAA2S,MAAAvH,IAAA,EAEA,GAAA,MAAA7iC,MACA,OAAA02C,MAAAlf,QAAAx3B,MAAA/M,OAAA,EAAA0jD,MAAA,OAIA,IAAAhmB,OACA,IAAA3oC,EAAA,EAAAA,EAAA,EAAAA,IACA2oC,IAAA3oC,GAAA0uD,MAAAlf,QAAAxvC,EAAAiL,OAAA,EAAA0jD,MAAA,OAEA,OAAAhmB,IAlGA8lB,QAAAnQ,SA/6GA,SAAAvzC,IAAAwiC,IAAA/kB,KACA,IAAA8sB,OAAAl3C,KAAA2wD,UAAAhkD,MAAA3M,KAAA2wD,UAAA,SACA,OAAAzvD,WAAAg2C,QAAAA,OAAAl2C,KAAAmuC,IAAA/kB,KAAA8sB,QA86GAmZ,QAAA/Y,eAl6GA,SAAA3qC,KACA,IAAAykC,OAAApxC,KAAA4wD,gBAAAjkD,KACAkkD,YAAA7wD,KAAA4wD,gBAAAjkD,IAAAyT,eAEA,OAAAgxB,SAAAyf,YACAzf,QAGApxC,KAAA4wD,gBAAAjkD,KAAAkkD,YAAApxD,QAAA,mBAAA,SAAA4Q,KACA,OAAAA,IAAA/P,MAAA,KAGAN,KAAA4wD,gBAAAjkD,OAu5GA0jD,QAAAjZ,YAl5GA,WACA,OAAAp3C,KAAA8wD,cAk5GAT,QAAAvZ,QA54GA,SAAAhD,QACA,OAAA9zC,KAAA+wD,SAAAtxD,QAAA,KAAAq0C,SA44GAuc,QAAAvI,SAAAkF,mBACAqD,QAAA5C,WAAAT,mBACAqD,QAAArP,aA13GA,SAAAlN,OAAA4Z,cAAAptC,OAAA0wC,UACA,IAAA9Z,OAAAl3C,KAAAixD,cAAA3wC,QACA,OAAApf,WAAAg2C,QACAA,OAAApD,OAAA4Z,cAAAptC,OAAA0wC,UACA9Z,OAAAz3C,QAAA,MAAAq0C,SAu3GAuc,QAAAa,WAp3GA,SAAA3jD,KAAA2pC,QACA,IAAA9F,OAAApxC,KAAAixD,cAAA1jD,KAAA,EAAA,SAAA,QACA,OAAArM,WAAAkwC,QAAAA,OAAA8F,QAAA9F,OAAA3xC,QAAA,MAAAy3C,SAm3GAmZ,QAAAxvC,IAngHA,SAAA+yB,QACA,IAAA7yB,KAAAnf,EACA,IAAAA,KAAAgyC,OAEA1yC,WADA6f,KAAA6yB,OAAAhyC,IAEA5B,KAAA4B,GAAAmf,KAEA/gB,KAAA,IAAA4B,GAAAmf,KAGA/gB,KAAAqiD,QAAAzO,OAIA5zC,KAAA0sD,+BAAA,IAAAltD,QACAQ,KAAAwsD,wBAAApqC,QAAApiB,KAAAysD,cAAArqC,QACA,IAAA,UAAAA,SAq/GAiuC,QAAAtV,OA97FA,SAAAzvC,EAAA8lC,QACA,OAAA9lC,EAIA1G,QAAA5E,KAAAgqD,SAAAhqD,KAAAgqD,QAAA1+C,EAAAkvC,SACAx6C,KAAAgqD,SAAAhqD,KAAAgqD,QAAAmH,UAAAhW,kBAAAlvC,KAAAmlC,QAAA,SAAA,cAAA9lC,EAAAkvC,SAJA51C,QAAA5E,KAAAgqD,SAAAhqD,KAAAgqD,QACAhqD,KAAAgqD,QAAA,YA47FAqG,QAAAvV,YAr7FA,SAAAxvC,EAAA8lC,QACA,OAAA9lC,EAIA1G,QAAA5E,KAAAoxD,cAAApxD,KAAAoxD,aAAA9lD,EAAAkvC,SACAx6C,KAAAoxD,aAAAjW,iBAAAlvC,KAAAmlC,QAAA,SAAA,cAAA9lC,EAAAkvC,SAJA51C,QAAA5E,KAAAoxD,cAAApxD,KAAAoxD,aACApxD,KAAAoxD,aAAA,YAm7FAf,QAAAnV,YAp4FA,SAAAmW,UAAAjgB,OAAAE,QACA,IAAA1vC,EAAAutC,IAAAuJ,MAEA,GAAA14C,KAAAsxD,kBACA,OA7CA,SAAAD,UAAAjgB,OAAAE,QACA,IAAA1vC,EAAA2vD,GAAApiB,IAAAqiB,IAAAH,UAAAI,oBACA,IAAAzxD,KAAA0xD,aAKA,IAHA1xD,KAAA0xD,gBACA1xD,KAAA2xD,oBACA3xD,KAAA4xD,qBACAhwD,EAAA,EAAAA,EAAA,KAAAA,EACAutC,IAAAgC,WAAA,IAAAvvC,IACA5B,KAAA4xD,kBAAAhwD,GAAA5B,KAAA86C,YAAA3L,IAAA,IAAAsiB,oBACAzxD,KAAA2xD,iBAAA/vD,GAAA5B,KAAA+6C,OAAA5L,IAAA,IAAAsiB,oBAIA,OAAAngB,OACA,QAAAF,QAEA,KADAmgB,GAAA9wD,QAAAO,KAAAhB,KAAA4xD,kBAAAJ,MACAD,GAAA,MAGA,KADAA,GAAA9wD,QAAAO,KAAAhB,KAAA2xD,iBAAAH,MACAD,GAAA,KAGA,QAAAngB,QAEA,KADAmgB,GAAA9wD,QAAAO,KAAAhB,KAAA4xD,kBAAAJ,MAEAD,IAGA,KADAA,GAAA9wD,QAAAO,KAAAhB,KAAA2xD,iBAAAH,MACAD,GAAA,MAGA,KADAA,GAAA9wD,QAAAO,KAAAhB,KAAA2xD,iBAAAH,MAEAD,IAGA,KADAA,GAAA9wD,QAAAO,KAAAhB,KAAA4xD,kBAAAJ,MACAD,GAAA,MASAvwD,KAAAhB,KAAAqxD,UAAAjgB,OAAAE,QAYA,IATAtxC,KAAA0xD,eACA1xD,KAAA0xD,gBACA1xD,KAAA2xD,oBACA3xD,KAAA4xD,sBAMAhwD,EAAA,EAAAA,EAAA,GAAAA,IAAA,CAYA,GAVAutC,IAAAgC,WAAA,IAAAvvC,IACA0vC,SAAAtxC,KAAA2xD,iBAAA/vD,KACA5B,KAAA2xD,iBAAA/vD,GAAA,IAAApC,OAAA,IAAAQ,KAAA+6C,OAAA5L,IAAA,IAAA1vC,QAAA,IAAA,IAAA,IAAA,KACAO,KAAA4xD,kBAAAhwD,GAAA,IAAApC,OAAA,IAAAQ,KAAA86C,YAAA3L,IAAA,IAAA1vC,QAAA,IAAA,IAAA,IAAA,MAEA6xC,QAAAtxC,KAAA0xD,aAAA9vD,KACA82C,MAAA,IAAA14C,KAAA+6C,OAAA5L,IAAA,IAAA,KAAAnvC,KAAA86C,YAAA3L,IAAA,IACAnvC,KAAA0xD,aAAA9vD,GAAA,IAAApC,OAAAk5C,MAAAj5C,QAAA,IAAA,IAAA,MAGA6xC,QAAA,SAAAF,QAAApxC,KAAA2xD,iBAAA/vD,GAAAqK,KAAAolD,WACA,OAAAzvD,EACA,GAAA0vC,QAAA,QAAAF,QAAApxC,KAAA4xD,kBAAAhwD,GAAAqK,KAAAolD,WACA,OAAAzvD,EACA,IAAA0vC,QAAAtxC,KAAA0xD,aAAA9vD,GAAAqK,KAAAolD,WACA,OAAAzvD,IAo2FAyuD,QAAApV,YAjyFA,SAAArC,UACA,OAAA54C,KAAAsxD,mBACArgB,WAAAjxC,KAAA,iBACA27C,mBAAA36C,KAAAhB,MAEA44C,SACA54C,KAAAk8C,mBAEAl8C,KAAAg8C,eAGA/K,WAAAjxC,KAAA,kBACAA,KAAAg8C,aAAAN,oBAEA17C,KAAAk8C,oBAAAtD,SACA54C,KAAAk8C,mBAAAl8C,KAAAg8C,eAmxFAqU,QAAArV,iBAtzFA,SAAApC,UACA,OAAA54C,KAAAsxD,mBACArgB,WAAAjxC,KAAA,iBACA27C,mBAAA36C,KAAAhB,MAEA44C,SACA54C,KAAAm8C,wBAEAn8C,KAAAi8C,oBAGAhL,WAAAjxC,KAAA,uBACAA,KAAAi8C,kBAAAR,yBAEAz7C,KAAAm8C,yBAAAvD,SACA54C,KAAAm8C,wBAAAn8C,KAAAi8C,oBAwyFAoU,QAAAvT,KA5nFA,SAAA3N,KACA,OAAAgO,WAAAhO,IAAAnvC,KAAAgkD,MAAAvH,IAAAz8C,KAAAgkD,MAAAtH,KAAAI,MA4nFAuT,QAAAwB,eAhnFA,WACA,OAAA7xD,KAAAgkD,MAAAtH,KAgnFA2T,QAAAyB,eArnFA,WACA,OAAA9xD,KAAAgkD,MAAAvH,KAsnFA4T,QAAA3S,SA3gFA,SAAApyC,EAAA8lC,QACA,OAAA9lC,EAIA1G,QAAA5E,KAAA+xD,WAAA/xD,KAAA+xD,UAAAzmD,EAAAqzC,OACA3+C,KAAA+xD,UAAA/xD,KAAA+xD,UAAAZ,SAAAllD,KAAAmlC,QAAA,SAAA,cAAA9lC,EAAAqzC,OAJA/5C,QAAA5E,KAAA+xD,WAAA/xD,KAAA+xD,UACA/xD,KAAA+xD,UAAA,YAygFA1B,QAAA7S,YA7/EA,SAAAlyC,GACA,OAAA,EAAAtL,KAAAgyD,aAAA1mD,EAAAqzC,OAAA3+C,KAAAgyD,cA6/EA3B,QAAA5S,cAngFA,SAAAnyC,GACA,OAAA,EAAAtL,KAAAiyD,eAAA3mD,EAAAqzC,OAAA3+C,KAAAiyD,gBAmgFA5B,QAAAvS,cA37EA,SAAAoU,YAAA9gB,OAAAE,QACA,IAAA1vC,EAAAutC,IAAAuJ,MAEA,GAAA14C,KAAAmyD,oBACA,OApEA,SAAAD,YAAA9gB,OAAAE,QACA,IAAA1vC,EAAA2vD,GAAApiB,IAAAqiB,IAAAU,YAAAT,oBACA,IAAAzxD,KAAAoyD,eAKA,IAJApyD,KAAAoyD,kBACApyD,KAAAqyD,uBACAryD,KAAAsyD,qBAEA1wD,EAAA,EAAAA,EAAA,IAAAA,EACAutC,IAAAgC,WAAA,IAAA,IAAAwN,IAAA/8C,GACA5B,KAAAsyD,kBAAA1wD,GAAA5B,KAAAw9C,YAAArO,IAAA,IAAAsiB,oBACAzxD,KAAAqyD,oBAAAzwD,GAAA5B,KAAAy9C,cAAAtO,IAAA,IAAAsiB,oBACAzxD,KAAAoyD,eAAAxwD,GAAA5B,KAAA09C,SAAAvO,IAAA,IAAAsiB,oBAIA,OAAAngB,OACA,SAAAF,QAEA,KADAmgB,GAAA9wD,QAAAO,KAAAhB,KAAAoyD,eAAAZ,MACAD,GAAA,KACA,QAAAngB,QAEA,KADAmgB,GAAA9wD,QAAAO,KAAAhB,KAAAqyD,oBAAAb,MACAD,GAAA,MAGA,KADAA,GAAA9wD,QAAAO,KAAAhB,KAAAsyD,kBAAAd,MACAD,GAAA,KAGA,SAAAngB,QAEA,KADAmgB,GAAA9wD,QAAAO,KAAAhB,KAAAoyD,eAAAZ,MAEAD,IAGA,KADAA,GAAA9wD,QAAAO,KAAAhB,KAAAqyD,oBAAAb,MAEAD,IAGA,KADAA,GAAA9wD,QAAAO,KAAAhB,KAAAsyD,kBAAAd,MACAD,GAAA,KACA,QAAAngB,QAEA,KADAmgB,GAAA9wD,QAAAO,KAAAhB,KAAAqyD,oBAAAb,MAEAD,IAGA,KADAA,GAAA9wD,QAAAO,KAAAhB,KAAAoyD,eAAAZ,MAEAD,IAGA,KADAA,GAAA9wD,QAAAO,KAAAhB,KAAAsyD,kBAAAd,MACAD,GAAA,MAGA,KADAA,GAAA9wD,QAAAO,KAAAhB,KAAAsyD,kBAAAd,MAEAD,IAGA,KADAA,GAAA9wD,QAAAO,KAAAhB,KAAAoyD,eAAAZ,MAEAD,IAGA,KADAA,GAAA9wD,QAAAO,KAAAhB,KAAAqyD,oBAAAb,MACAD,GAAA,MASAvwD,KAAAhB,KAAAkyD,YAAA9gB,OAAAE,QAUA,IAPAtxC,KAAAoyD,iBACApyD,KAAAoyD,kBACApyD,KAAAsyD,qBACAtyD,KAAAqyD,uBACAryD,KAAAuyD,uBAGA3wD,EAAA,EAAAA,EAAA,EAAAA,IAAA,CAcA,GAXAutC,IAAAgC,WAAA,IAAA,IAAAwN,IAAA/8C,GACA0vC,SAAAtxC,KAAAuyD,mBAAA3wD,KACA5B,KAAAuyD,mBAAA3wD,GAAA,IAAApC,OAAA,IAAAQ,KAAA09C,SAAAvO,IAAA,IAAA1vC,QAAA,IAAA,QAAA,IAAA,KACAO,KAAAqyD,oBAAAzwD,GAAA,IAAApC,OAAA,IAAAQ,KAAAy9C,cAAAtO,IAAA,IAAA1vC,QAAA,IAAA,QAAA,IAAA,KACAO,KAAAsyD,kBAAA1wD,GAAA,IAAApC,OAAA,IAAAQ,KAAAw9C,YAAArO,IAAA,IAAA1vC,QAAA,IAAA,QAAA,IAAA,MAEAO,KAAAoyD,eAAAxwD,KACA82C,MAAA,IAAA14C,KAAA09C,SAAAvO,IAAA,IAAA,KAAAnvC,KAAAy9C,cAAAtO,IAAA,IAAA,KAAAnvC,KAAAw9C,YAAArO,IAAA,IACAnvC,KAAAoyD,eAAAxwD,GAAA,IAAApC,OAAAk5C,MAAAj5C,QAAA,IAAA,IAAA,MAGA6xC,QAAA,SAAAF,QAAApxC,KAAAuyD,mBAAA3wD,GAAAqK,KAAAimD,aACA,OAAAtwD,EACA,GAAA0vC,QAAA,QAAAF,QAAApxC,KAAAqyD,oBAAAzwD,GAAAqK,KAAAimD,aACA,OAAAtwD,EACA,GAAA0vC,QAAA,OAAAF,QAAApxC,KAAAsyD,kBAAA1wD,GAAAqK,KAAAimD,aACA,OAAAtwD,EACA,IAAA0vC,QAAAtxC,KAAAoyD,eAAAxwD,GAAAqK,KAAAimD,aACA,OAAAtwD,IA05EAyuD,QAAAxS,cA52EA,SAAAjF,UACA,OAAA54C,KAAAmyD,qBACAlhB,WAAAjxC,KAAA,mBACAs+C,qBAAAt9C,KAAAhB,MAEA44C,SACA54C,KAAA++C,qBAEA/+C,KAAA4+C,iBAGA3N,WAAAjxC,KAAA,oBACAA,KAAA4+C,eAAAT,sBAEAn+C,KAAA++C,sBAAAnG,SACA54C,KAAA++C,qBAAA/+C,KAAA4+C,iBA81EAyR,QAAAzS,mBAz1EA,SAAAhF,UACA,OAAA54C,KAAAmyD,qBACAlhB,WAAAjxC,KAAA,mBACAs+C,qBAAAt9C,KAAAhB,MAEA44C,SACA54C,KAAAg/C,0BAEAh/C,KAAA6+C,sBAGA5N,WAAAjxC,KAAA,yBACAA,KAAA6+C,oBAAAT,2BAEAp+C,KAAAg/C,2BAAApG,SACA54C,KAAAg/C,0BAAAh/C,KAAA6+C,sBA20EAwR,QAAA1S,iBAt0EA,SAAA/E,UACA,OAAA54C,KAAAmyD,qBACAlhB,WAAAjxC,KAAA,mBACAs+C,qBAAAt9C,KAAAhB,MAEA44C,SACA54C,KAAAi/C,wBAEAj/C,KAAA8+C,oBAGA7N,WAAAjxC,KAAA,uBACAA,KAAA8+C,kBAAAT,yBAEAr+C,KAAAi/C,yBAAArG,SACA54C,KAAAi/C,wBAAAj/C,KAAA8+C,oBAyzEAuR,QAAA1Q,KA7pEA,SAAAzwC,OAGA,MAAA,OAAAA,MAAA,IAAA3I,cAAAisD,OAAA,IA2pEAnC,QAAAle,SAvpEA,SAAAgN,MAAAE,QAAAoT,SACA,OAAAtT,MAAA,GACAsT,QAAA,KAAA,KAEAA,QAAA,KAAA,MA+uEAvQ,mBAAA,MACAnB,uBAAA,uBACAjK,QAAA,SAAAhD,QACA,IAAA5rC,EAAA4rC,OAAA,GAKA,OAAAA,QAJA,IAAAE,MAAAF,OAAA,IAAA,IAAA,KACA,IAAA5rC,EAAA,KACA,IAAAA,EAAA,KACA,IAAAA,EAAA,KAAA,SAOA4Z,MAAAzO,KAAAshC,UAAA,wDAAAuN,oBACApgC,MAAA4wC,SAAA/d,UAAA,gEAAAwN,WAEA,IAAAwQ,QAAA7tD,KAAAwqC,IAmBA,SAAAsjB,cAAAv9B,SAAAnmB,MAAAhJ,MAAAslD,WACA,IAAAxC,MAAA+B,eAAA77C,MAAAhJ,OAMA,OAJAmvB,SAAAy0B,eAAA0B,UAAAxC,MAAAc,cACAz0B,SAAA00B,OAAAyB,UAAAxC,MAAAe,MACA10B,SAAA20B,SAAAwB,UAAAxC,MAAAgB,QAEA30B,SAAA40B,UAaA,SAAA4I,QAAA/e,QACA,OAAAA,OAAA,EACAhvC,KAAAivC,MAAAD,QAEAhvC,KAAAkuB,KAAA8gB,QAmDA,SAAAgf,aAAApJ,MAGA,OAAA,KAAAA,KAAA,OAGA,SAAAqJ,aAAAhY,QAEA,OAAA,OAAAA,OAAA,KA8CA,SAAAiY,OAAA/kB,OACA,OAAA,WACA,OAAAjuC,KAAAizD,GAAAhlB,QAIA,IAAAilB,eAAAF,OAAA,MACAG,UAAAH,OAAA,KACAI,UAAAJ,OAAA,KACAK,QAAAL,OAAA,KACAM,OAAAN,OAAA,KACAO,QAAAP,OAAA,KACAQ,SAAAR,OAAA,KACAS,QAAAT,OAAA,KAWA,SAAAU,WAAAtvD,MACA,OAAA,WACA,OAAApE,KAAAsyC,UAAAtyC,KAAA0hB,MAAAtd,MAAA6uC,KAIA,IAAA0W,aAAA+J,WAAA,gBACAlU,QAAAkU,WAAA,WACArU,QAAAqU,WAAA,WACAvU,MAAAuU,WAAA,SACAhK,KAAAgK,WAAA,QACA3Y,OAAA2Y,WAAA,UACApK,MAAAoK,WAAA,SAMA,IAAA1iC,MAAAlsB,KAAAksB,MACA2iC,YACAxS,GAAA,GACAnjB,EAAA,GACA1yB,EAAA,GACA+1C,EAAA,GACAtD,EAAA,GACAyD,EAAA,IA6EA,IAAAoS,MAAA9uD,KAAAwqC,IAEA,SAAA9E,KAAAmQ,GACA,OAAAA,EAAA,IAAAA,EAAA,KAAAA,EAGA,SAAAkZ,gBAQA,IAAA7zD,KAAAsyC,UACA,OAAAtyC,KAAA+2C,aAAAK,cAGA,IAGAiI,QAAAF,MAHAK,QAAAoU,MAAA5zD,KAAA8pD,eAAA,IACAJ,KAAAkK,MAAA5zD,KAAA+pD,OACAhP,OAAA6Y,MAAA5zD,KAAAgqD,SAKA7K,MAAAtL,UADAwL,QAAAxL,SAAA2L,QAAA,KACA,IACAA,SAAA,GACAH,SAAA,GAQA,IAAAyU,EALAjgB,SAAAkH,OAAA,IAMAyG,EALAzG,QAAA,GAMAgZ,EAAArK,KACArI,EAAAlC,MACA7zC,EAAA+zC,QACArhB,EAAAwhB,QAAAA,QAAAwU,QAAA,GAAAv0D,QAAA,SAAA,IAAA,GACAw0D,MAAAj0D,KAAAmzD,YAEA,IAAAc,MAGA,MAAA,MAGA,IAAAC,UAAAD,MAAA,EAAA,IAAA,GACAE,OAAA3pB,KAAAxqC,KAAAgqD,WAAAxf,KAAAypB,OAAA,IAAA,GACAG,SAAA5pB,KAAAxqC,KAAA+pD,SAAAvf,KAAAypB,OAAA,IAAA,GACAI,QAAA7pB,KAAAxqC,KAAA8pD,iBAAAtf,KAAAypB,OAAA,IAAA,GAEA,OAAAC,UAAA,KACAJ,EAAAK,OAAAL,EAAA,IAAA,KACAtS,EAAA2S,OAAA3S,EAAA,IAAA,KACAuS,EAAAK,SAAAL,EAAA,IAAA,KACA1S,GAAA/1C,GAAA0yB,EAAA,IAAA,KACAqjB,EAAAgT,QAAAhT,EAAA,IAAA,KACA/1C,EAAA+oD,QAAA/oD,EAAA,IAAA,KACA0yB,EAAAq2B,QAAAr2B,EAAA,IAAA,IAGA,IAAAs2B,QAAAjL,SAAA5mD,UAuGA,OArGA6xD,QAAAhiB,QA9oDA,WACA,OAAAtyC,KAAAuyC,UA8oDA+hB,QAAAhlB,IAnVA,WACA,IAAAxuB,KAAA9gB,KAAA0hB,MAaA,OAXA1hB,KAAA8pD,cAAA6I,QAAA3yD,KAAA8pD,eACA9pD,KAAA+pD,MAAA4I,QAAA3yD,KAAA+pD,OACA/pD,KAAAgqD,QAAA2I,QAAA3yD,KAAAgqD,SAEAlpC,KAAA6oC,aAAAgJ,QAAA7xC,KAAA6oC,cACA7oC,KAAA0+B,QAAAmT,QAAA7xC,KAAA0+B,SACA1+B,KAAAu+B,QAAAsT,QAAA7xC,KAAAu+B,SACAv+B,KAAAq+B,MAAAwT,QAAA7xC,KAAAq+B,OACAr+B,KAAAi6B,OAAA4X,QAAA7xC,KAAAi6B,QACAj6B,KAAAwoC,MAAAqJ,QAAA7xC,KAAAwoC,OAEAtpD,MAsUAs0D,QAAAx6C,IAxTA,SAAA5K,MAAAhJ,OACA,OAAA0sD,cAAA5yD,KAAAkP,MAAAhJ,MAAA,IAwTAouD,QAAAhiC,SApTA,SAAApjB,MAAAhJ,OACA,OAAA0sD,cAAA5yD,KAAAkP,MAAAhJ,OAAA,IAoTAouD,QAAArB,GA/OA,SAAAxd,OACA,IAAAz1C,KAAAsyC,UACA,OAAAW,IAEA,IAAAyW,KACA3O,OACA4O,aAAA3pD,KAAA8pD,cAIA,GAAA,WAFArU,MAAAD,eAAAC,SAEA,SAAAA,MAGA,OAFAiU,KAAA1pD,KAAA+pD,MAAAJ,aAAA,MACA5O,OAAA/6C,KAAAgqD,QAAA8I,aAAApJ,MACA,UAAAjU,MAAAsF,OAAAA,OAAA,GAIA,OADA2O,KAAA1pD,KAAA+pD,MAAAjlD,KAAAksB,MAAA+hC,aAAA/yD,KAAAgqD,UACAvU,OACA,IAAA,OAAA,OAAAiU,KAAA,EAAAC,aAAA,OACA,IAAA,MAAA,OAAAD,KAAAC,aAAA,MACA,IAAA,OAAA,OAAA,GAAAD,KAAAC,aAAA,KACA,IAAA,SAAA,OAAA,KAAAD,KAAAC,aAAA,IACA,IAAA,SAAA,OAAA,MAAAD,KAAAC,aAAA,IAEA,IAAA,cAAA,OAAA7kD,KAAAivC,MAAA,MAAA2V,MAAAC,aACA,QAAA,MAAA,IAAA5pD,MAAA,gBAAA01C,SAuNA6e,QAAApB,eAAAA,eACAoB,QAAAnB,UAAAA,UACAmB,QAAAlB,UAAAA,UACAkB,QAAAjB,QAAAA,QACAiB,QAAAhB,OAAAA,OACAgB,QAAAf,QAAAA,QACAe,QAAAd,SAAAA,SACAc,QAAAb,QAAAA,QACAa,QAAApjB,QAzNA,WACA,OAAAlxC,KAAAsyC,UAIAtyC,KAAA8pD,cACA,MAAA9pD,KAAA+pD,MACA/pD,KAAAgqD,QAAA,GAAA,OACA,QAAAhW,MAAAh0C,KAAAgqD,QAAA,IANA/W,KAwNAqhB,QAAArK,QAnTA,WACA,IAIAzK,QAAAH,QAAAF,MAAAmK,MAAAiL,eAJA5K,aAAA3pD,KAAA8pD,cACAJ,KAAA1pD,KAAA+pD,MACAhP,OAAA/6C,KAAAgqD,QACAlpC,KAAA9gB,KAAA0hB,MAwCA,OAnCAioC,cAAA,GAAAD,MAAA,GAAA3O,QAAA,GACA4O,cAAA,GAAAD,MAAA,GAAA3O,QAAA,IACA4O,cAAA,MAAAkJ,QAAAE,aAAAhY,QAAA2O,MACAA,KAAA,EACA3O,OAAA,GAKAj6B,KAAA6oC,aAAAA,aAAA,IAEAnK,QAAA3L,SAAA8V,aAAA,KACA7oC,KAAA0+B,QAAAA,QAAA,GAEAH,QAAAxL,SAAA2L,QAAA,IACA1+B,KAAAu+B,QAAAA,QAAA,GAEAF,MAAAtL,SAAAwL,QAAA,IACAv+B,KAAAq+B,MAAAA,MAAA,GAMApE,QADAwZ,eAAA1gB,SAAAif,aAHApJ,MAAA7V,SAAAsL,MAAA,MAKAuK,MAAAmJ,QAAAE,aAAAwB,iBAGAjL,MAAAzV,SAAAkH,OAAA,IACAA,QAAA,GAEAj6B,KAAA4oC,KAAAA,KACA5oC,KAAAi6B,OAAAA,OACAj6B,KAAAwoC,MAAAA,MAEAtpD,MAwQAs0D,QAAA/vD,MAhMA,WACA,OAAAwmD,eAAA/qD,OAgMAs0D,QAAAzxD,IA7LA,SAAA4yC,OAEA,OADAA,MAAAD,eAAAC,OACAz1C,KAAAsyC,UAAAtyC,KAAAy1C,MAAA,OAAAxC,KA4LAqhB,QAAA3K,aAAAA,aACA2K,QAAA9U,QAAAA,QACA8U,QAAAjV,QAAAA,QACAiV,QAAAnV,MAAAA,MACAmV,QAAA5K,KAAAA,KACA4K,QAAA7K,MAhLA,WACA,OAAA5V,SAAA7zC,KAAA0pD,OAAA,IAgLA4K,QAAAvZ,OAAAA,OACAuZ,QAAAhL,MAAAA,MACAgL,QAAA3G,SA1GA,SAAA6G,YACA,IAAAx0D,KAAAsyC,UACA,OAAAtyC,KAAA+2C,aAAAK,cAGA,IAAA/F,OAAArxC,KAAA+2C,aACAG,OA5DA,SAAAud,eAAA/G,cAAArc,QACA,IAAAhc,SAAA01B,eAAA0J,gBAAAnlB,MACAkQ,QAAAxuB,MAAAqE,SAAA49B,GAAA,MACA5T,QAAAruB,MAAAqE,SAAA49B,GAAA,MACA9T,MAAAnuB,MAAAqE,SAAA49B,GAAA,MACAvJ,KAAA14B,MAAAqE,SAAA49B,GAAA,MACAlY,OAAA/pB,MAAAqE,SAAA49B,GAAA,MACA3J,MAAAt4B,MAAAqE,SAAA49B,GAAA,MAEAhrD,EAAAu3C,SAAAmU,WAAAxS,KAAA,IAAA3B,UACAA,QAAAmU,WAAA31B,IAAA,KAAAwhB,UACAH,SAAA,IAAA,MACAA,QAAAsU,WAAAroD,IAAA,KAAA+zC,UACAF,OAAA,IAAA,MACAA,MAAAwU,WAAAtS,IAAA,KAAAlC,QACAuK,MAAA,IAAA,MACAA,KAAAiK,WAAA5V,IAAA,KAAA2L,OACA3O,QAAA,IAAA,MACAA,OAAA4Y,WAAAnS,IAAA,KAAAzG,SACAuO,OAAA,IAAA,OAAA,KAAAA,OAKA,OAHArhD,EAAA,GAAAylD,cACAzlD,EAAA,IAAAwsD,eAAA,EACAxsD,EAAA,GAAAopC,OA3BA,SAAA/wB,OAAAwzB,OAAA4Z,cAAAsD,SAAA3f,QACA,OAAAA,OAAA2P,aAAAlN,QAAA,IAAA4Z,cAAAptC,OAAA0wC,WA2BAxtD,MAAA,KAAAyE,GAoCAysD,CAAA10D,MAAAw0D,WAAAnjB,QAMA,OAJAmjB,aACAtd,OAAA7F,OAAA6f,YAAAlxD,KAAAk3C,SAGA7F,OAAAoc,WAAAvW,SA+FAod,QAAAxF,YAAA+E,cACAS,QAAA3zD,SAAAkzD,cACAS,QAAAtF,OAAA6E,cACAS,QAAAjjB,OAAAA,OACAijB,QAAAvd,WAAAA,WAEAud,QAAAK,YAAAhgB,UAAA,sFAAAkf,eACAS,QAAAjhD,KAAAA,KAMAujC,eAAA,IAAA,EAAA,EAAA,QACAA,eAAA,IAAA,EAAA,EAAA,WAIA6B,cAAA,IAAAL,aACAK,cAAA,IAltHA,wBAmtHAU,cAAA,IAAA,SAAAjqC,MAAAw7B,MAAAkJ,QACAA,OAAAvD,GAAA,IAAA7oC,KAAA,IAAAypB,WAAA/hB,MAAA,OAEAiqC,cAAA,IAAA,SAAAjqC,MAAAw7B,MAAAkJ,QACAA,OAAAvD,GAAA,IAAA7oC,KAAAwsC,MAAA9kC,UAMA4S,MAAAioB,QAAA,SAz1IA2G,aA21IAqT,YAEAjiC,MAAA1f,GAAAgD,MACA0c,MAAAyyB,IAnvDA,WAGA,OAAA2U,OAAA,cAFA5oD,MAAAU,KAAAyC,UAAA,KAmvDAqe,MAAAyQ,IA9uDA,WAGA,OAAA22B,OAAA,aAFA5oD,MAAAU,KAAAyC,UAAA,KA8uDAqe,MAAAsI,IAzuDA,WACA,OAAA5iB,KAAA4iB,IAAA5iB,KAAA4iB,OAAA,IAAA5iB,MAyuDAsa,MAAA4sB,IAAAyC,UACArvB,MAAAmtC,KA7iBA,SAAA//C,OACA,OAAA60C,YAAA,IAAA70C,QA6iBA4S,MAAAi5B,OA3bA,SAAA3J,OAAAx3B,OACA,OAAA42C,eAAApf,OAAAx3B,MAAA,WA2bAkI,MAAAivB,OAAAA,OACAjvB,MAAAuvB,OAAA6Q,mBACApgC,MAAA8pC,QAAA5Y,cACAlxB,MAAAuT,SAAA01B,eACAjpC,MAAA6sB,SAAAA,SACA7sB,MAAA47B,SAzbA,SAAAgT,aAAAtf,OAAAx3B,OACA,OAAA62C,iBAAAC,aAAAtf,OAAAx3B,MAAA,aAybAkI,MAAA+tC,UAjjBA,WACA,OAAA9L,YAAAvgD,MAAA,KAAAC,WAAAosD,aAijBA/tC,MAAAi1B,WAAAoL,UACArgC,MAAAooC,WAAAA,WACApoC,MAAAg5B,YAjcA,SAAA1J,OAAAx3B,OACA,OAAA42C,eAAApf,OAAAx3B,MAAA,gBAicAkI,MAAA07B,YAtbA,SAAAkT,aAAAtf,OAAAx3B,OACA,OAAA62C,iBAAAC,aAAAtf,OAAAx3B,MAAA,gBAsbAkI,MAAAsgC,aAAAA,aACAtgC,MAAA8yC,aA//EA,SAAAxwD,KAAAwvC,QACA,GAAA,MAAAA,OAAA,CACA,IAAAvC,OAAAwjB,UAAA3f,aAAA+K,WAGA,OADA4U,UAAA9S,WAAA39C,SAEA8wC,aAAA2f,UAAAxS,UAGAhR,OAAA,IAAA+D,OADAxB,OAAAqB,aAAAC,aAAAtB,UAEA0O,aAAAV,QAAAx9C,MACAw9C,QAAAx9C,MAAAitC,OAGA6Q,mBAAA99C,WAGA,MAAAw9C,QAAAx9C,QACA,MAAAw9C,QAAAx9C,MAAAk+C,aACAV,QAAAx9C,MAAAw9C,QAAAx9C,MAAAk+C,aACA,MAAAV,QAAAx9C,cACAw9C,QAAAx9C,OAIA,OAAAw9C,QAAAx9C,OAu+EA0d,MAAA8/B,QA58EA,WACA,OAAAn1C,KAAAm1C,UA48EA9/B,MAAA27B,cA9bA,SAAAiT,aAAAtf,OAAAx3B,OACA,OAAA62C,iBAAAC,aAAAtf,OAAAx3B,MAAA,kBA8bAkI,MAAA0zB,eAAAA,eACA1zB,MAAAgzC,qBA9LA,SAAAC,kBACA,YAAAn2D,IAAAm2D,iBACA/jC,MAEA,mBAAA,mBACAA,MAAA+jC,kBACA,IAyLAjzC,MAAAkzC,sBAnLA,SAAAC,UAAAC,OACA,YAAAt2D,IAAA+0D,WAAAsB,kBAGAr2D,IAAAs2D,MACAvB,WAAAsB,YAEAtB,WAAAsB,WAAAC,MACA,MAAAD,YACAtB,WAAAxS,GAAA+T,MAAA,IAEA,KAyKApzC,MAAAsrC,eA9yCA,SAAA+H,SAAA/qC,KACA,IAAA7c,KAAA4nD,SAAA5nD,KAAA6c,IAAA,QAAA,GACA,OAAA7c,MAAA,EAAA,WACAA,MAAA,EAAA,WACAA,KAAA,EAAA,UACAA,KAAA,EAAA,UACAA,KAAA,EAAA,UACAA,KAAA,EAAA,WAAA,YAwyCAuU,MAAArf,UAAA2C,MAGA0c,MAAAszC,WACAC,eAAA,mBACAC,uBAAA,sBACAC,kBAAA,0BACA9b,KAAA,aACA+b,KAAA,QACAC,aAAA,WACAC,QAAA,eACA5b,KAAA,aACAN,MAAA,WAGA13B,QC/4IA,WAEA,cAMA,WAGA,IAFA,IAAA6zC,SAAA,EACAC,SAAA,KAAA,MAAA,SAAA,KACAjb,EAAA,EAAAA,EAAAib,QAAApzD,SAAA3E,OAAAy4B,wBAAAqkB,EACA98C,OAAAy4B,sBAAAz4B,OAAA+3D,QAAAjb,GAAA,yBACA98C,OAAAg4D,qBAAAh4D,OAAA+3D,QAAAjb,GAAA,yBACA98C,OAAA+3D,QAAAjb,GAAA,+BAGA98C,OAAAy4B,wBACAz4B,OAAAy4B,sBAAA,SAAAjzB,SAAA/D,SACA,IAAAw2D,UAAA,IAAAtuD,MAAAmrC,UACAojB,WAAAjxD,KAAAytB,IAAA,EAAA,IAAAujC,SAAAH,WACA7pD,GAAAjO,OAAAugB,WAAA,WAAA/a,SAAAyyD,SAAAC,aACAA,YAEA,OADAJ,SAAAG,SAAAC,WACAjqD,KAGAjO,OAAAg4D,uBACAh4D,OAAAg4D,qBAAA,SAAA/pD,IACAsuB,aAAAtuB,MArBA,GAyBAjO,OAAAf,WAAA,SAAAwC,QAAA6E,SAuBA,OAtBAnE,KAAAg2D,WACAC,uBAAA,EACAC,mBAAA,EACAC,eAAA,EACAC,cACAC,gBAAA,EACAC,YACAC,gBACAC,cAAA,EACAr8B,SAAA,EACAs8B,gBAAA,EACAC,IAAA,IACAC,iBAAA,EACAC,yBACAC,0BACAC,QAAA,EACAC,WACAC,oBAAA,EACAC,eACAC,eAAA,GAGA53D,QAQA,iBAAA6E,QACA4a,QAAA9Z,MAAA,sDAGAjF,KAAAg2D,UAAAiB,YAAA9yD,QAEAnE,KAAAm3D,iBACAC,SAAA,EACAC,gBAAA,oBACAC,OAAA,IACAC,eAAA,EACAC,WAAA,GACAv6D,YAAA,UACAD,YAAA,UACAy6D,kBAAA,kBACAC,iBAAA,qBACA36D,MAAA,EACA46D,WAAA,EACAz6D,SAAA,GAGA8C,KAAAmE,QAAAnE,KAAA43D,cAAAzzD,SAEAnE,KAAAgN,GAAA1N,QAEAU,KAAA63D,yBAEA73D,KAAA83D,8BAEA,IAAA93D,KAAAmE,QAAAwzD,WAAA33D,KAAAmE,QAAAizD,SACAp3D,KAAA+3D,sBArCAh5C,QAAA9Z,MAAA,yEA0CA,IAAA+yD,oBAAAn6D,OAAAf,WAAA2F,UAEAu1D,oBAAAz6D,KAAA,WAEA,OADAyC,KAAAi4D,eAAAj4D,KAAAk4D,gBACAl4D,MAGAg4D,oBAAA95D,MAAA,WAEA,OADA8B,KAAAm4D,kBACAn4D,MAGAg4D,oBAAAI,MAAA,WAEA,OADAp4D,KAAAi4D,eAAAj4D,KAAAq4D,oBACAr4D,MAGAg4D,oBAAAt6D,WAAA,SAAA4iB,QACA,IAAAA,QAAA,iBAAAA,OACA,OAAAvB,QAAA9Z,MAAA,2CAGA,IAAAqzD,aAAAt4D,KAAAu4D,eAAAj4C,QAGA,OADAtgB,KAAAi4D,gBAAAj4D,KAAAw4D,iBAAAF,gBACAt4D,MAGAg4D,oBAAAS,UAAA,WAEA,OADAz4D,KAAAi4D,gBAAAj4D,KAAA04D,cAAA,SACA14D,MAGAg4D,oBAAAr6D,YAAA,SAAAg7D,QAEA,OADA34D,KAAAi4D,gBAAAj4D,KAAA04D,cAAAC,UACA34D,MAGAg4D,oBAAAv6D,SAAA,SAAA6mD,IAEA,OADAtkD,KAAAi4D,gBAAAj4D,KAAA44D,WAAAtU,MACAtkD,MAGAg4D,oBAAAD,kBAAA,WACA,IAAAc,iBAAA74D,KAAA84D,0BAEA,GAAA,IAAAD,iBAAAr2D,OACAxC,KAAAw4D,gBAAAK,iBAAA,SAEA,IAAA,IAAAj3D,EAAA,EAAAY,OAAAq2D,iBAAAr2D,OAAAZ,EAAAY,OAAAZ,IACA5B,KAAAi4D,gBAAAj4D,KAAAw4D,iBAAAK,iBAAAj3D,MACA5B,KAAAvC,SAAAuC,KAAA+4D,eAAA,KAAA,OACA/4D,KAAAy4D,YACAz4D,KAAAvC,SAAAuC,KAAA+4D,eAAA,KAAA,OAIA,OAAA/4D,MAIAg4D,oBAAAp6D,eAAA,SAAAo7D,cACA,OAAAA,cAAA,iBAAAA,cAIAh5D,KAAAi4D,gBAAAj4D,KAAAi5D,iBAAA33C,KAAA43C,UAAAF,iBAEAh5D,MALA+e,QAAA9Z,MAAA,2DASA+yD,oBAAAmB,iBAAA,SAAAC,WACA,OAAAA,WAAA,iBAAAA,WAIAp5D,KAAApC,gBACA45D,WAAA4B,YAGAp5D,MAPA+e,QAAA9Z,MAAA,mDAUA+yD,oBAAAqB,kBAAA,SAAAD,WACA,IAAAA,WAAA,iBAAAA,UACA,OAAAr6C,QAAA9Z,MAAA,mDAWA,OAJAjF,KAAApC,gBACAX,YAAAm8D,YAGAp5D,MAGAg4D,oBAAAsB,kBAAA,SAAAF,WACA,OAAAA,WAAA,iBAAAA,WAIAp5D,KAAApC,gBACA07D,kBAAAF,YAGAp5D,MAPA+e,QAAA9Z,MAAA,oDAUA+yD,oBAAAK,mBAAA,WACAr4D,KAAAg2D,UAAAa,uBAAAr0D,OAAA,GACAxC,KAAAy4D,YACAz4D,KAAAu5D,gBAAA,uBAEAv5D,KAAAg2D,UAAAM,SAAAt2D,KAAAg2D,UAAAO,aACAv2D,KAAAg2D,UAAAO,gBACAv2D,KAAAmE,QAAAnE,KAAA43D,cAAA53D,KAAAg2D,UAAAiB,aACAj3D,KAAAg2D,UAAAe,WACA/2D,KAAAg3D,oBAAA,EACAh3D,KAAAm4D,oBAIAH,oBAAAU,aAAA,SAAAC,QAOA,OAJAA,SACA34D,KAAAg2D,UAAAgB,mBAAA2B,QAEA34D,KAAAw5D,0BAAA37D,OAAAy4B,sBAAAt2B,KAAAy5D,4BAAA5hC,KAAA73B,OACAA,MAGAg4D,oBAAAY,UAAA,SAAAtU,IACA,IAAAvrC,KAAA/Y,KACA+Y,KAAAi9C,UAAAQ,cAAA,EACAp4C,WAAA,WACArF,KAAAwgD,gBAAA,aACAjV,KAGA0T,oBAAAiB,gBAAA,SAAAD,cACAh5D,KAAAmE,QAAAnE,KAAA43D,cAAAt2C,KAAAC,MAAAy3C,aAAA,KACAh5D,KAAAu5D,gBAAA,kBAEAv5D,KAAAmE,QAAAjH,SACA6hB,QAAA26C,IAAA,eAAA15D,KAAAmE,UAKA6zD,oBAAAyB,4BAAA,WACA,IAAA1gD,KAAA/Y,KACA25D,aAAA35D,KAAAmE,QAAAnH,YACA48D,8BAAA7gD,KAAA5U,QAAAuzD,iBACAmC,uBAAA9gD,KAAAi9C,UAAAa,uBACAiD,sBAAA/gD,KAAAi9C,UAAAgB,mBAEA,IAAAj+C,KAAAi9C,UAAAgB,oBAAA,IAAAj+C,KAAAi9C,UAAAgB,oBAAA,IAAA6C,uBAEA,OADA9gD,KAAAwgD,gBAAA,+BACA,EAGA,WAAAI,eACAA,aAAA5gD,KAAAggD,eAAA,GAAA,MAGA,OAAAe,wBACAA,sBAAAD,uBAAAr3D,OACAuW,KAAAi9C,UAAAgB,mBAAA8C,uBAGA17C,WAAA,WACA,GAAArF,KAAAi9C,UAAAgB,mBAAA,CACA,IAAA+C,sBAAAF,uBAAAr3D,OAAA,EACAw3D,oBAAAH,uBAAAE,uBAEAhhD,KAAAi9C,UAAAa,uBAAA5yD,OAAA81D,sBAAA,GAEA,IAAAE,kBAAAt9D,SAAAC,eAAAo9D,qBAEA,GAAAC,kBACAlhD,KAAA/L,GAAA7N,cAAA,IAAAy6D,+BACA53D,YAAAi4D,mBACAlhD,KAAAi9C,UAAAgB,mBAAA8C,sBAAA,EAEA/gD,KAAA5U,QAAAjH,SACA6hB,QAAA26C,IAAA,uBAAAM,qBAMAjhD,KAAAygD,0BAAA37D,OAAAy4B,sBAAAvd,KAAA0gD,4BAAA5hC,KAAA9e,QAEA4gD,eAGA3B,oBAAAJ,cAAA,SAAAsC,aACA,IAAAC,kBAEA,IAAA,IAAAC,YAAAp6D,KAAAm3D,gBACAgD,eAAAC,UAAAp6D,KAAAm3D,gBAAAiD,UAGA,GAAAp6D,KAAAg2D,UAAAiB,YACA,IAAA,IAAAmD,YAAAp6D,KAAAg2D,UAAAiB,YACAkD,eAAAC,UAAAp6D,KAAAg2D,UAAAiB,YAAAmD,UAIA,IAAA,IAAAA,YAAAF,YACAC,eAAAC,UAAAF,YAAAE,UAGA,OAAAD,gBAGAnC,oBAAAC,eAAA,SAAApxC,OACA7mB,KAAAg2D,UAAAM,SAAA91D,KAAAqmB,OACA7mB,KAAAg2D,UAAAM,SAAA9zD,OAAA,IAAAxC,KAAAg2D,UAAAQ,cAAAx2D,KAAAmE,QAAAwzD,WACA33D,KAAAm4D,mBAIAH,oBAAAG,gBAAA,WAKA,GAJAn4D,KAAAmE,QAAAjH,SACA6hB,QAAA26C,IAAA,wBAGA15D,KAAAg2D,UAAAQ,aAAA,CAEA,GAAAx2D,KAAAg2D,UAAAM,SAAA9zD,OAAA,EAAA,CACAxC,KAAAk3D,eAAA,EACA,IAAAmD,YAAAr6D,KAAAg2D,UAAAM,SAAA,GACA,mBAAA+D,aACAr6D,KAAAg2D,UAAAQ,cAAA,EACAx2D,KAAAg2D,UAAAO,aAAA/1D,KAAA65D,aACAr6D,KAAAg2D,UAAAM,SAAAryD,OAAA,EAAA,GACAo2D,YAAAr5D,KAAAhB,MACAA,KAAAmE,QAAAjH,SACA6hB,QAAA26C,IAAA,mBAEAW,uBAAA11D,OACA,mBAAA01D,YAAA,IAAAA,YAAA,aAAA11D,QACA3E,KAAAg2D,UAAAQ,cAAA,EACAx2D,KAAAg2D,UAAAO,aAAA/1D,KAAA65D,aACAr6D,KAAAg2D,UAAAM,SAAAryD,OAAA,EAAA,GACAo2D,YAAA,GAAAr5D,KAAAhB,KAAAq6D,YAAA,IACAr6D,KAAAmE,QAAAjH,SACA6hB,QAAA26C,IAAA,mBAKA15D,KAAAs6D,mBAAAz8D,OAAAy4B,sBAAAt2B,KAAAm4D,gBAAAtgC,KAAA73B,OAGA,IAAAA,KAAAg2D,UAAAQ,cAAAx2D,KAAAg2D,UAAAM,SAAA9zD,QAAA,EAAA,CACA,IAAAuW,KAAA/Y,KAmBA,OAlBA+Y,KAAAm/C,sBACA95C,WAAA,WACArF,KAAA5U,QAAApH,OACAgc,KAAAm+C,iBACAn+C,KAAA5U,QAAAjH,SACA6hB,QAAA26C,IAAA,oBAAA3gD,KAAAi9C,WAEAj9C,KAAAm+C,eAAA,GACAn4C,QAAA9Z,MAAA,2CACA8T,KAAAm/C,mBAEAn/C,KAAA5U,QAAAjH,SACA6hB,QAAA26C,IAAA,mBAEA3gD,KAAAs/C,wBAGA,OAMAL,oBAAAuB,gBAAA,SAAAn1D,MACA,IAAAm2D,WAAAn2D,MAAA,QACApE,KAAAg2D,UAAAQ,cAAA,EACAx2D,KAAAm4D,kBACAn4D,KAAAmE,QAAAjH,SACA6hB,QAAA26C,IAAAa,WAAA,aAIAvC,oBAAAE,eAAA,WACAr6D,OAAAg4D,qBAAA71D,KAAAs6D,oBACAt6D,KAAAmE,QAAAjH,SACA6hB,QAAA26C,IAAA,wBAIA1B,oBAAAH,uBAAA,WACA,IAAA+B,8BAAA55D,KAAAmE,QAAAuzD,iBACA8C,mBAAA79D,SAAA6B,cAAA,QACAg8D,mBAAAp7D,UAAAw6D,8BACA55D,KAAAgN,GAAAiC,UAAA,GACAjP,KAAAgN,GAAAjO,YAAAy7D,qBAGAxC,oBAAAQ,gBAAA,SAAAK,kBAGA,OAFA74D,KAAAg2D,UAAAY,sBAAA52D,KAAAy6D,oBAAA5B,kBACA74D,KAAA06D,iBAAA78D,OAAAy4B,sBAAAt2B,KAAA26D,sBAAA9iC,KAAA73B,KAAA64D,iBAAAr2D,SACAxC,MAGAg4D,oBAAA2C,sBAAA,SAAAC,aACA,IAAA7hD,KAAA/Y,KACA66D,aAAA76D,KAAAmE,QAAAlH,YACA28D,8BAAA7gD,KAAA5U,QAAAuzD,iBAEA,GAAA,GAAA3+C,KAAAi9C,UAAAY,sBAAAp0D,OAGA,OAFA3E,OAAAg4D,qBAAA98C,KAAA2hD,kBACA16D,KAAAu5D,gBAAA,yBACA,EAGA,WAAAsB,eACAA,aAAA76D,KAAA+4D,eAAA,GAAA,MAGA36C,WAAA,WACArF,KAAA/L,GAAAiC,UAAA,IACA6rD,aAAA/hD,KAAAi9C,UAAAY,sBAAA,GACA79C,KAAA/L,GAAA7N,cAAA,IAAAy6D,+BAAA76D,YAAA+7D,aAAA9tD,IACA+L,KAAAi9C,UAAAa,uBAAAr2D,KAAAs6D,aAAAhvD,IACAiN,KAAAi9C,UAAAY,sBAAA3yD,OAAA,EAAA,GACA8U,KAAA2hD,iBAAA78D,OAAAy4B,sBAAAvd,KAAA4hD,sBAAA9iC,KAAA9e,KAAA6hD,cACA7hD,KAAA5U,QAAAjH,SACA6hB,QAAA26C,IAAA,QAAAoB,eAEAD,eAGA7C,oBAAAyC,oBAAA,SAAAM,OAKA,IAJA,IAAAC,yBACAC,gBAAAj7D,KAAAmE,QAAAszD,kBACAyD,YAAAH,MAAA,GAEAn5D,EAAA,EAAAY,OAAA04D,YAAA14D,OAAAZ,EAAAY,OAAAZ,IAAA,CACA,IAAAu5D,aAAAx+D,SAAA6B,cAAA,QACA48D,QAAAp7D,KAAAq7D,oBACAF,aAAArvD,GAAAsvD,QACAD,aAAA/7D,UAAA67D,gBAAA,oBAAAr5D,EACAu5D,aAAAlsD,UAAAisD,YAAAt5D,GACAo5D,sBAAAx6D,MACAsL,GAAAsvD,QACApuD,GAAAmuD,eAIA,OAAAH,uBAGAhD,oBAAAO,eAAA,SAAAj4C,QACA,MAAA,iBAAAA,QAGAA,OAAAha,MAAA,KAGA0xD,oBAAAc,wBAAA,WACA,IAAAwC,oBAAAt7D,KAAAmE,QAAAizD,mBAAAzyD,MACA42D,qBAAA,iBAAAv7D,KAAAmE,QAAAizD,QACA,IAAAkE,oBACA,OAAAC,sBAGAv7D,KAAAmE,QAAAizD,QAAA9wD,MAAA,KAFAyY,QAAA9Z,MAAA,wEAOA,IAFA,IAAAu2D,uBAEA55D,EAAA,EAAAY,OAAAxC,KAAAmE,QAAAizD,QAAA50D,OAAAZ,EAAAY,OAAAZ,IAAA,CACA,IAAA02D,aAAAt4D,KAAAu4D,eAAAv4D,KAAAmE,QAAAizD,QAAAx1D,IACA,IAAA02D,aAAA,CACAv5C,QAAA9Z,MAAA,8BACA,MAEAu2D,oBAAAh7D,KAAA83D,cAGA,OAAAkD,qBAGAxD,oBAAAyD,sBAAA,WACA,IAAAz7D,KAAAg2D,UAAAC,sBAAA,CACA,IACAyF,eAAA,KADA17D,KAAAmE,QAAAqzD,WAGAmE,UAAA37D,KAAAgN,GAAA7N,cAAA,sBAEA,GAAAa,KAAAg2D,UAAAE,oBACAl2D,KAAAg2D,UAAAG,gBAAA,IACAn2D,KAAAg2D,UAAAE,mBAAA,EACAl2D,KAAAg2D,UAAAG,eAAA,GAGAn2D,KAAAg2D,UAAAG,gBAAAuF,gBAGA,GAAA17D,KAAAg2D,UAAAE,oBACAl2D,KAAAg2D,UAAAG,gBAAA,IACAn2D,KAAAg2D,UAAAE,mBAAA,EACAl2D,KAAAg2D,UAAAG,eAAA,GAGAn2D,KAAAg2D,UAAAG,gBAAAuF,gBAGAC,UAAAn5C,MAAA8Q,QAAAtzB,KAAAg2D,UAAAG,eACAn2D,KAAA47D,iBAAA/9D,OAAAy4B,sBAAAt2B,KAAAy7D,sBAAA5jC,KAAA73B,SAIAg4D,oBAAAx6D,WAAA,SAAAqE,MAEA,OADA7B,KAAAi4D,gBAAAj4D,KAAA67D,aAAAh6D,QACA7B,MAGAg4D,oBAAA6D,YAAA,SAAAh6D,MACA,IAAAo5D,gBAAAj7D,KAAAmE,QAAAszD,kBACA0D,aAAAx+D,SAAA6B,cAAA,QACA48D,QAAAp7D,KAAAq7D,oBACAF,aAAArvD,GAAAsvD,QACAD,aAAA/7D,UAAA67D,gBAAA,gBACAE,aAAAlsD,UAAApN,KACA,IAAAi6D,SACAA,MAAAt7D,MACAsL,GAAAsvD,QACApuD,GAAAmuD,eAGAn7D,KAAAg2D,UAAAY,sBAAAkF,MAEAj+D,OAAAy4B,sBAAAt2B,KAAA26D,sBAAA9iC,KAAA73B,KAAA,KAIAg4D,oBAAAF,sBAAA,WACA,IAAAR,OAAAt3D,KAAAmE,QAAAmzD,OACAyE,kBAAA/7D,KAAAmE,QAAAkzD,gBAEA2E,eAAAr/D,SAAA6B,cAAA,QACAw9D,eAAA58D,UAAA28D,kBACAC,eAAA/sD,UAAAqoD,OAEAt3D,KAAAgN,GAAAjO,YAAAi9D,gBACAh8D,KAAAmE,QAAAozD,gBACAv3D,KAAA47D,iBAAA/9D,OAAAy4B,sBAAAt2B,KAAAy7D,sBAAA5jC,KAAA73B,SAIAg4D,oBAAAiE,sBAAA,WACAj8D,KAAAg2D,UAAAC,wBACAp4D,OAAAg4D,qBAAA71D,KAAA47D,kBACA57D,KAAAg2D,UAAAC,uBAAA,IAIA+B,oBAAAkE,wBAAA,WACA,IAAAl8D,KAAAg2D,UAAAC,sBACA,OAAAl3C,QAAA9Z,MAAA,wCAGAjF,KAAAg2D,UAAAC,uBAAA,EACAj2D,KAAA47D,iBAAA/9D,OAAAy4B,sBAAAt2B,KAAAy7D,sBAAA5jC,KAAA73B,QAIAg4D,oBAAAe,eAAA,SAAAxkB,IAAAhiB,KACA,OAAAztB,KAAAivC,MAAAjvC,KAAAC,UAAAwtB,IAAAgiB,IAAA,IAAAA,KAGAyjB,oBAAAmE,UAAA,WAIA,IAHA,IAAAt6D,KAAA,GACAu6D,SAAA,iEAEAx6D,EAAA,EAAAA,EAAA5B,KAAA+4D,eAAA,EAAA,IAAAn3D,IACAC,MAAAu6D,SAAA5J,OAAA1tD,KAAAivC,MAAAjvC,KAAAC,SAAAq3D,SAAA55D,SAEA,OAAAX,MAGAm2D,oBAAAqD,kBAAA,WACA,IAAAgB,QAAAr8D,KAAAm8D,YACA,OAAA,GAAAn8D,KAAAg2D,UAAAe,QAAAt2D,QAAA47D,UACAr8D,KAAAg2D,UAAAe,QAAAv2D,KAAA67D,SACAA,SAEAr8D,KAAAq7D,kBAAAr6D,KAAAhB,OAvlBA,GCNA,SAAAN,OAAAC,SACA,iBAAAE,SAAA,oBAAAD,OAAAA,OAAAC,QAAAF,UACA,mBAAAspC,QAAAA,OAAAC,IAAAD,OAAA,QAAAtpC,SACAD,OAAA48D,MAAA38D,UAHA,CAIAK,KAAA,WAAA,aAEA,SAAA63B,KAAAz1B,GAAAD,SACA,OAAA,SAAA8F,GACA,IAAAyR,EAAAjW,UAAAjB,OACA,OAAAkX,EAAAA,EAAA,EAAAtX,GAAAoB,MAAArB,QAAAsB,WAAArB,GAAApB,KAAAmB,QAAA8F,GAAA7F,GAAApB,KAAAmB,UAIA,IACAtB,eADAT,OAAAqC,UACA5B,eAEA,SAAAD,OAAAO,IAAAwL,KACA,OAAA9L,eAAAG,KAAAG,IAAAwL,KAGA,IAAA4vD,kBACAC,YAAA,oBAEA,SAAAC,UAAAC,KAQA,OANAA,OAAAH,iBACAA,eAAAG,KAAAA,IACAj9D,QAAA+8D,YAAA,SACAj2D,eAGAg2D,eAAAG,KAGA,IAAAC,WAAA,SAEA,SAAAC,SAAAF,KACA,OAAAA,IAAAj9D,QAAAk9D,WAAAE,SAGA,SAAAA,QAAA5yD,EAAA64C,GACA,OAAAA,EAAAA,EAAA1iC,cAAA,GAGA,SAAA08C,QAAAJ,KACA,OAAAA,IAAAl6D,OAAAq6D,QAAA,EAAAH,IAAAlK,OAAA,IAAAkK,IAAAp8D,MAAA,GAAA,GAGA,IAAAy8D,aAAA1yD,OAAA5H,UACAu6D,aAAAD,aAAAE,YAAA,SAAAC,QAAA,OAAA,IAAAl9D,KAAAm9D,YAAAD,OAAA,IAEA,SAAAD,WAAAP,IAAAQ,QACA,OAAAF,aAAAh8D,KAAA07D,IAAAQ,QAGA,IAAAE,WAAAL,aAAAM,UAAA,SAAAH,QAAA,OAAAl9D,KAAAu2C,QAAA2mB,OAAA16D,UAAA06D,QAEA,SAAAG,SAAAX,IAAAQ,QACA,OAAAE,WAAAp8D,KAAA07D,IAAAQ,QAGA,IAAAI,WAAA,SAAAJ,QAAA,OAAAl9D,KAAAS,QAAAy8D,SACAK,YAAAR,aAAAS,UAAAF,WACAG,cAAA94D,MAAAlC,UAAA+6D,UAAAF,WAEA,SAAAE,SAAAr8D,IAAA+7D,QACA,OAAA/7D,MAAAu8D,SAAAv8D,KAAAo8D,YAAAE,eAAAz8D,KAAAG,IAAA+7D,QAGA,IAAAt4D,QAAAD,MAAAC,QAEA,SAAA1D,WAAAC,KACA,MAAA,mBAAAA,IAGA,SAAAyvC,SAAAzvC,KACA,OAAA,OAAAA,KAAA,iBAAAA,IAGA,SAAAuD,cAAAvD,KACA,OAAAyvC,SAAAzvC,MAAAf,OAAAC,eAAAc,OAAAf,OAAAqC,UAGA,SAAApB,SAAAF,KACA,OAAAyvC,SAAAzvC,MAAAA,MAAAA,IAAAtD,OAGA,SAAA8/D,WAAAx8D,KACA,OAAAyvC,SAAAzvC,MAAA,IAAAA,IAAAC,SAGA,SAAAw8D,SAAAz8D,KACA,OAAAyvC,SAAAzvC,QAAAA,IAAAuB,OAGA,SAAAm7D,OAAAv+D,SACA,OAAAA,mBAAAw+D,MAAAltB,SAAAtxC,UAAA,IAAAA,QAAA8B,SAGA,SAAA28D,iBAAAz+D,SACA,OAAAA,mBAAA0+D,UAAA1+D,mBAAA2+D,eAGA,SAAAC,UAAAh4D,OACA,MAAA,kBAAAA,MAGA,SAAAw3D,SAAAx3D,OACA,MAAA,iBAAAA,MAGA,SAAA4qC,SAAA5qC,OACA,MAAA,iBAAAA,MAGA,SAAA6iC,UAAA7iC,OACA,OAAA4qC,SAAA5qC,QAAAw3D,SAAAx3D,SAAA8iC,MAAA9iC,MAAA+qB,WAAA/qB,QAGA,SAAA2qC,YAAA3qC,OACA,YAAA,IAAAA,MAGA,SAAAi4D,UAAAj4D,OACA,OAAAg4D,UAAAh4D,OACAA,MACA,SAAAA,OAAA,MAAAA,OAAA,KAAAA,OAEA,UAAAA,OAAA,MAAAA,OAEAA,MAGA,SAAAk4D,SAAAl4D,OACA,IAAA4tC,OAAAuqB,OAAAn4D,OACA,OAAA8iC,MAAA8K,SAAAA,OAGA,SAAAwqB,QAAAp4D,OACA,OAAA+qB,WAAA/qB,QAAA,EAGA,SAAAq4D,OAAAj/D,SACA,OAAAu+D,OAAAv+D,UAAA+B,SAAA/B,UAAAq+D,WAAAr+D,SACAA,QACAy+D,iBAAAz+D,UAAAs+D,SAAAt+D,SACAA,QAAA,GACAsF,QAAAtF,SACAi/D,OAAAj/D,QAAA,IACA,KAGA,IAAAk/D,WAAA75D,MAAAlC,UACA,SAAAg8D,QAAAn/D,SACA,OAAAu+D,OAAAv+D,UACAA,SACAy+D,iBAAAz+D,SACAk/D,WAAAl+D,MAAAU,KAAA1B,SACAsF,QAAAtF,SACAA,QAAAgE,IAAAi7D,QAAA5vD,OAAA+vD,SACAd,SAAAt+D,SACAA,QAAAsD,aAIA,SAAA+7D,OAAAz4D,OACA,OAAAtB,QAAAsB,OACAA,MACAw3D,SAAAx3D,OACAA,MAAAI,MAAA,gBAAAhD,IAAA,SAAA4C,OAAA,OAAA6iC,UAAA7iC,OACAk4D,SAAAl4D,OACAi4D,UAAAj4D,MAAAV,WACAU,OAGA,SAAA04D,KAAA1kC,MACA,OAAAA,KAEAmjC,SAAAnjC,KAAA,MACAokC,QAAApkC,MACA,IAAAokC,QAAApkC,MAHA,EAMA,SAAAvX,KAAAzc,MAAA+B,EAAAC,GACA,OAAAhC,MAAAzG,QAAA,IAAAD,OAAAyI,EAAA,IAAAC,EAAA,MAAA,SAAAsD,OACA,OAAAA,QAAAvD,EAAAC,EAAAD,IAIA,IAAA42D,OAAAz+D,OAAAy+D,QAAA,SAAAr6D,QAEA,IADA,IAAAoO,QAAA/O,IAAAJ,UAAAjB,OAAA,EACAqB,OAAA,GAAA+O,KAAA/O,KAAAJ,UAAAI,IAAA,GAEAW,OAAApE,OAAAoE,QACA,IAAA,IAAA5C,EAAA,EAAAA,EAAAgR,KAAApQ,OAAAZ,IAAA,CACA,IAAAwgB,OAAAxP,KAAAhR,GACA,GAAA,OAAAwgB,OACA,IAAA,IAAAzV,OAAAyV,OACAxhB,OAAAwhB,OAAAzV,OACAnI,OAAAmI,KAAAyV,OAAAzV,MAKA,OAAAnI,QAGA,SAAApB,KAAAjC,IAAA29D,IACA,IAAA,IAAAnyD,OAAAxL,IACA29D,GAAA99D,KAAAG,IAAAwL,KAAAxL,IAAAwL,KAAAA,KAIA,SAAAoyD,OAAAxxC,WAAAxM,MACA,OAAAwM,WAAAvpB,KAAA,SAAAiE,EAAAC,GAAA,OAAAD,EAAA8Y,MAAA7Y,EAAA6Y,MACA,EACA7Y,EAAA6Y,MAAA9Y,EAAA8Y,OACA,EACA,IAIA,SAAAi+C,MAAAlrB,OAAAS,IAAAhiB,KAIA,YAHA,IAAAgiB,MAAAA,IAAA,QACA,IAAAhiB,MAAAA,IAAA,GAEAztB,KAAAyvC,IAAAzvC,KAAAytB,IAAAuhB,OAAAS,KAAAhiB,KAGA,SAAAptB,QAEA,SAAA85D,cAAAC,GAAAC,IACA,OAAAD,GAAA1qC,MAAA2qC,GAAA1uC,OACA0uC,GAAA3qC,MAAA0qC,GAAAzuC,OACAyuC,GAAA7wD,KAAA8wD,GAAAC,QACAD,GAAA9wD,KAAA6wD,GAAAE,OAGA,SAAAC,YAAAC,MAAA73B,MACA,OAAAw3B,eAAA5wD,IAAAixD,MAAAnlB,EAAAilB,OAAAE,MAAAnlB,EAAA3lB,KAAA8qC,MAAA3kB,EAAAlqB,MAAA6uC,MAAA3kB,GAAAlT,MAGA,IAAA83B,YAEAC,MAAA,SAAAC,WAAA1+C,KAAA7a,OACA,IAAA/E,IAGAu+D,MAAA,UAAA3+C,KAAA,SAAA,QAEA,OAAA5f,QAAAu+D,OAAA56D,KAAAksB,MAAA9qB,MAAAu5D,WAAAC,OAAAD,WAAA1+C,OAAA5f,IAAA4f,MAAA7a,MAAA/E,KAGAw+D,QAAA,SAAAF,WAAAG,eACA,IAAAC,OAAA7/D,KASA,OALAoD,KAFAq8D,WAAAZ,UAAAY,YAEA,SAAAx1D,EAAA8W,MAAA,OAAA0+C,WAAAA,WAAA1+C,MAAA6+C,cAAA7+C,MACA8+C,OAAAL,MAAAC,WAAA1+C,KAAA6+C,cAAA7+C,OACA0+C,aAGAA,YAGAK,MAAA,SAAAL,WAAAG,eACA,IAAAC,OAAA7/D,KASA,OALAoD,KAFAq8D,WAAAz/D,KAAA2/D,QAAAF,WAAAG,eAEA,SAAA31D,EAAA8W,MAAA,OAAA0+C,WAAAA,WAAA1+C,MAAA6+C,cAAA7+C,MACA8+C,OAAAL,MAAAC,WAAA1+C,KAAA6+C,cAAA7+C,OACA0+C,aAGAA,aAKA,SAAArvD,KAAA9Q,QAAA8E,KAAA8B,OAEA,GAAA0qC,SAAAxsC,MACA,IAAA,IAAAuI,OAAAvI,KACAgM,KAAA9Q,QAAAqN,IAAAvI,KAAAuI,UAFA,CAOA,GAAAkkC,YAAA3qC,OAEA,OADA5G,QAAAi/D,OAAAj/D,WACAA,QAAAjC,aAAA+G,MAEAq6D,QAAAn/D,SAAAijD,QAAA,SAAAjjD,SAEA4B,WAAAgF,SACAA,MAAAA,MAAAlF,KAAA1B,QAAA8Q,KAAA9Q,QAAA8E,QAGA,OAAA8B,MACAu0B,WAAAn7B,QAAA8E,MAEA9E,QAAAhC,aAAA8G,KAAA8B,UAOA,SAAA65D,QAAAzgE,QAAA8E,MACA,OAAAq6D,QAAAn/D,SAAAqxC,KAAA,SAAArxC,SAAA,OAAAA,QAAA0gE,aAAA57D,QAGA,SAAAq2B,WAAAn7B,QAAA8E,MACA9E,QAAAm/D,QAAAn/D,SACA8E,KAAAkC,MAAA,KAAAi8C,QAAA,SAAAn+C,MAAA,OAAA9E,QAAAijD,QAAA,SAAAjjD,SAAA,OAAAA,QAAAkN,gBAAApI,UAKA,SAAA67D,WAAA3gE,QAAA4gE,UAAAvuD,QAAAwuD,aACA/vD,KAAA9Q,QAAA4gE,UAAA,SAAAh6D,OAAA,OAAAA,MAAAA,MAAAzG,QAAAkS,QAAAwuD,aAAAj6D,QAGA,SAAA4a,KAAAxhB,QAAA4gE,WACA,IAAA,IAAAt+D,EAAA,EAAAsL,OAAAgzD,UAAA,QAAAA,WAAAt+D,EAAAsL,MAAA1K,OAAAZ,IACA,GAAAm+D,QAAAzgE,QAAA4N,MAAAtL,IACA,OAAAwO,KAAA9Q,QAAA4N,MAAAtL,IAKA,SAAAw+D,MAAAnhE,SAAAkD,SACA,OAAAo8D,OAAAt/D,WAAA4P,KAAA5P,SAAAohE,kBAAAphE,UAAAkD,QAAAxF,UAGA,SAAA2jE,SAAArhE,SAAAkD,SACA,IAAAyjB,MAAA64C,QAAAx/D,UACA,OAAA2mB,MAAApjB,QAAAojB,OAAA26C,QAAAthE,SAAAohE,kBAAAphE,UAAAkD,QAAAxF,UAGA,SAAAkS,KAAA5P,SAAAkD,SACA,OAAAo8D,OAAAiC,OAAAvhE,SAAAkD,QAAA,kBAGA,SAAAo+D,QAAAthE,SAAAkD,SACA,OAAAs8D,QAAA+B,OAAAvhE,SAAAkD,QAAA,qBAGA,SAAAq+D,OAAAvhE,SAAAkD,QAAAs+D,SAIA,QAHA,IAAAt+D,UAAAA,QAAAxF,WAGAsC,WAAAy+D,SAAAz+D,UACA,OAAA,KAKA,IAAAyhE,QAEAL,kBAJAphE,SAAAA,SAAAQ,QAAAkhE,kBAAA,WAMAD,WAEAzhE,SAAAA,SAAAqH,MAAA,KAAAhD,IAAA,SAAArE,SAAA2C,GAEA,IAAAg/D,IAAAz+D,QAIA,GAAA,OAFAlD,SAAAA,SAAAuG,QAEA,GAAA,CAEA,IAAAwL,UAAA/R,SAAAs3C,OAAA,GAAA/wC,OAAAc,MAAA,KACAs6D,IAAAjnD,QAAAxX,QAAAJ,WAAAiP,UAAA,IACA/R,SAAA+R,UAAA1Q,MAAA,GAAA8L,KAAA,KAAA5G,OAIA,GAAA,MAAAvG,SAAA,GAAA,CAEA,IAAA4hE,YAAA5hE,SAAAs3C,OAAA,GAAA/wC,OAAAc,MAAA,KACAiT,MAAAqnD,KAAAz+D,SAAA2+D,uBACAF,IAAA76D,QAAAwT,KAAAta,SAAAs3C,OAAA,IAAAh9B,KAAA,KACAta,SAAA4hE,YAAAvgE,MAAA,GAAA8L,KAAA,KAIA,OAAAw0D,KAIAA,IAAA90D,KACA80D,IAAA90D,GAAA,MAAAtE,KAAA4iB,MAAAxoB,EACA8+D,QAAAlgE,KAAA,WAAA,OAAAi6B,WAAAmmC,IAAA,SAGA,IAAArwD,OAAAqwD,IAAA90D,IAAA,IAAA7M,UARA,OAUA0P,OAAA+vD,SAAAtyD,KAAA,KAEAjK,QAAAxF,UAIA,IAEA,OAAAwF,QAAAs+D,SAAAxhE,UAEA,MAAAkM,GAEA,OAAA,KAEA,QAEAu1D,SAAAA,QAAAne,QAAA,SAAArmC,QAAA,OAAAA,YAMA,IAAA6kD,kBAAA,kBACAJ,kBAAA,gCAEA,SAAAN,kBAAAphE,UACA,OAAAy+D,SAAAz+D,WAAAA,SAAAuM,MAAAu1D,mBAGA,IAAAC,QAAAC,QAAAx+D,UACAy+D,UAAAF,QAAAj7D,SAAAi7D,QAAA5xD,uBAAA4xD,QAAAzxD,kBAEA,SAAAxJ,QAAAzG,QAAAL,UACA,OAAAw/D,QAAAn/D,SAAAqxC,KAAA,SAAArxC,SAAA,OAAA4hE,UAAAlgE,KAAA1B,QAAAL,YAGA,IAAAkiE,UAAAH,QAAArnD,SAAA,SAAA1a,UACA,IAAAmiE,SAAAphE,KAEA,EAAA,CAEA,GAAA+F,QAAAq7D,SAAAniE,UACA,OAAAmiE,SAGAA,SAAAA,SAAAr/D,iBAEAq/D,UAAA,IAAAA,SAAAhgE,WAGA,SAAAuY,QAAAra,QAAAL,UAMA,OAJAg+D,WAAAh+D,SAAA,OACAA,SAAAA,SAAAqB,MAAA,IAGAu9D,OAAAv+D,SACAA,QAAAyC,YAAAo/D,UAAAngE,KAAA1B,QAAAL,UACAw/D,QAAAn/D,SAAAgE,IAAA,SAAAhE,SAAA,OAAAA,QAAAyC,YAAAo/D,UAAAngE,KAAA1B,QAAAL,YAAA0P,OAAA+vD,SAGA,SAAA1kD,QAAA1a,QAAAL,UAIA,IAHA,IAAAkR,YACAoC,OAAAgsD,OAAAj/D,SAAAyC,WAEAwQ,QAAA,IAAAA,OAAAnR,UAEA2E,QAAAwM,OAAAtT,WACAkR,SAAA3P,KAAA+R,QAGAA,OAAAA,OAAAxQ,WAGA,OAAAoO,SAGA,IAAAkxD,SAAAxjE,OAAAyjE,KAAAA,IAAA/wD,QAAA,SAAAmS,KAAA,OAAAA,IAAAjjB,QAAA,uBAAA,SAAA+L,OAAA,MAAA,KAAAA,SACA,SAAA+E,OAAAmS,KACA,OAAAg7C,SAAAh7C,KAAA2+C,SAAArgE,KAAA,KAAA0hB,KAAA,GAGA,IAAA6+C,cACAC,MAAA,EACArsD,MAAA,EACAssD,IAAA,EACAn9C,KAAA,EACAo9C,OAAA,EACAC,IAAA,EACAC,KAAA,EACA1yD,OAAA,EACA2yD,QAAA,EACA/zB,MAAA,EACAg0B,UAAA,EACAC,MAAA,EACAhkC,OAAA,EACA3b,QAAA,EACA4/C,OAAA,EACAC,KAAA,GAEA,SAAAC,cAAA5iE,SACA,OAAAm/D,QAAAn/D,SAAAqxC,KAAA,SAAArxC,SAAA,OAAAiiE,aAAAjiE,QAAA6iE,QAAA57D,iBAGA,SAAA67D,UAAA9iE,SACA,OAAAm/D,QAAAn/D,SAAAqxC,KAAA,SAAArxC,SAAA,OAAAA,QAAAwxB,aAAAxxB,QAAAklC,cAAAllC,QAAAg1B,iBAAA9xB,SAGA,IAAA6/D,SAAA,+BACA,SAAAC,QAAAhjE,SACA,OAAAm/D,QAAAn/D,SAAAqxC,KAAA,SAAArxC,SAAA,OAAAyG,QAAAzG,QAAA+iE,YAGA,SAAA1zD,OAAArP,QAAAL,UACA,OAAAw/D,QAAAn/D,SAAAqP,OAAA,SAAArP,SAAA,OAAAyG,QAAAzG,QAAAL,YAGA,SAAAsjE,OAAAjjE,QAAAL,UACA,OAAAy+D,SAAAz+D,UAIA8G,QAAAzG,QAAAL,WAAA0a,QAAAra,QAAAL,UAHAK,UAAAL,WAAA0+D,WAAA1+D,UACAA,SAAAgP,gBACAswD,OAAAt/D,WAAAsI,SAAAg3D,OAAAj/D,UAIA,SAAAmnB,KAEA,IADA,IAAA7T,QAAA/O,IAAAJ,UAAAjB,OACAqB,OAAA+O,KAAA/O,KAAAJ,UAAAI,KAGA,IAAA2+D,IAAAC,QAAA7vD,MACApO,OAAAg+D,IAAA,GACA/jE,KAAA+jE,IAAA,GACAvjE,SAAAujE,IAAA,GACAE,SAAAF,IAAA,GACAG,WAAAH,IAAA,GAaA,OAXAh+D,OAAAo+D,cAAAp+D,QAEAvF,WACAyjE,SAuEA,SAAApjE,QAAAL,SAAAyjE,UACA,IAAA7C,OAAA7/D,KAEA,OAAA,SAAAmL,GAEA,IAAA3G,OAAA2G,EAAA3G,OACAo/B,QAAA,MAAA3kC,SAAA,GACAshE,QAAAthE,SAAAK,SAAAib,UAAA5L,OAAA,SAAArP,SAAA,OAAAijE,OAAA/9D,OAAAlF,WAAA,GACAqa,QAAAnV,OAAAvF,UAEA2kC,UACAz4B,EAAAs9B,SAAAnpC,QACA6L,EAAAy4B,QAAAA,QAEA8+B,SAAA1hE,KAAA6+D,OAAA10D,KArFAs9B,CAAAjkC,OAAAvF,SAAAyjE,WAGAA,SAAAlgE,OAAA,IACAkgE,SAsFA,SAAAA,UACA,OAAA,SAAAv3D,GAAA,OAAAvG,QAAAuG,EAAAyf,QAAA83C,SAAAl/D,WAAA,GAAA2H,GAAA5K,OAAA4K,EAAAyf,SAAA83C,SAAAv3D,IAvFAyf,CAAA83C,WAGAjkE,KAAA6H,MAAA,KAAAi8C,QAAA,SAAA9jD,MAAA,OAAA+F,QAAAA,OAAA8J,iBAAA7P,KAAAikE,SAAAC,cACA,WAAA,OAAA77C,IAAAtiB,OAAA/F,KAAAikE,SAAAC,aAGA,SAAA77C,IAAAtiB,OAAA/F,KAAAikE,SAAAC,iBACA,IAAAA,aAAAA,YAAA,IAEAn+D,OAAAo+D,cAAAp+D,UACA/F,KAAA6H,MAAA,KAAAi8C,QAAA,SAAA9jD,MAAA,OAAA+F,OAAA6a,oBAAA5gB,KAAAikE,SAAAC,cAGA,SAAA3mD,OAEA,IADA,IAAApJ,QAAA/O,IAAAJ,UAAAjB,OACAqB,OAAA+O,KAAA/O,KAAAJ,UAAAI,KAGA,IAAA2+D,IAAAC,QAAA7vD,MACAtT,QAAAkjE,IAAA,GACA/jE,KAAA+jE,IAAA,GACAvjE,SAAAujE,IAAA,GACAE,SAAAF,IAAA,GACAG,WAAAH,IAAA,GACAK,UAAAL,IAAA,GACA17C,IAAAL,GAAAnnB,QAAAb,KAAAQ,SAAA,SAAAkM,GACA,IAAA2G,QAAA+wD,WAAAA,UAAA13D,GACA2G,SACAgV,MACA47C,SAAAv3D,EAAA2G,UAEA6wD,YAEA,OAAA77C,IAGA,SAAA4C,QAAAllB,OAAAqiB,MAAA+D,QACA,OAAAk4C,eAAAt+D,QAAAu+D,OAAA,SAAAC,YAAAx+D,QAAA,OAAAw+D,aAAAx+D,OAAAy+D,cAAAC,YAAAr8C,OAAA,GAAA,EAAA+D,WACA,GAGA,SAAAs4C,YAAA/3D,EAAAqf,QAAAC,WAAAG,QAIA,QAHA,IAAAJ,UAAAA,SAAA,QACA,IAAAC,aAAAA,YAAA,GAEAizC,SAAAvyD,GAAA,CACA,IAAA0b,MAAAlqB,SAAAumE,YAAA,eACAr8C,MAAAs8C,gBAAAh4D,EAAAqf,QAAAC,WAAAG,QACAzf,EAAA0b,MAGA,OAAA1b,EAGA,SAAAs3D,QAAA7vD,MASA,OAPA8qD,SAAA9qD,KAAA,MACAA,KAAA,GAAA/D,KAAA+D,KAAA,KAGA1R,WAAA0R,KAAA,KACAA,KAAA3O,OAAA,EAAA,GAAA,GAEA2O,KA0BA,SAAAwwD,cAAA5+D,QACA,MAAA,gBAAA3G,OACA2G,kBAAA6+D,YACA7+D,QAAA,qBAAAA,OAGA,SAAAo+D,cAAAp+D,QACA,OAAA4+D,cAAA5+D,QAAAA,OAAA+5D,OAAA/5D,QAGA,SAAAs+D,eAAAt+D,QACA,OAAA4+D,cAAA5+D,SACAA,QACAI,QAAAJ,QACAA,OAAAlB,IAAAs/D,eAAAj0D,OAAA+vD,SACAD,QAAAj6D,QAGA,SAAA8+D,eAEA,IAAAvrC,MAAA3Z,WAAApC,KAAArf,SAAA,QAAA,SAAAwO,GAEAA,EAAA0d,iBACA1d,EAAAmf,2BAEA8P,aAAArC,SAEA,IAEArO,QAAA/sB,SAAA,eAMA,IAAA4mE,UAAA,YAAA1lE,OAAAA,OAAA2lE,QAAAC,UAEAnnD,SAAA,WACA,IAAAujD,OAAA7/D,KAEAA,KAAAkb,QAAA,IAAAqoD,UAAA,SAAAzoD,QAAAC,QACA8kD,OAAA9kD,OAAAA,OACA8kD,OAAA/kD,QAAAA,WAUA4oD,QAAA,EAEAvjC,MAAA,iBAAAtiC,OAAA8lE,aAAAvlD,WAEA,SAAAqlD,UAAAG,UAEA5jE,KAAAyc,MAAAinD,QACA1jE,KAAAkG,WAAAtH,EACAoB,KAAA2c,YAEA,IAAAzB,QAAAlb,KAEA,IACA4jE,SACA,SAAAjpB,GACAz/B,QAAAJ,QAAA6/B,IAEA,SAAAkpB,GACA3oD,QAAAH,OAAA8oD,KAGA,MAAA14D,GACA+P,QAAAH,OAAA5P,IAIAs4D,UAAA1oD,OAAA,SAAA8oD,GACA,OAAA,IAAAJ,UAAA,SAAA3oD,QAAAC,QACAA,OAAA8oD,MAIAJ,UAAA3oD,QAAA,SAAA6/B,GACA,OAAA,IAAA8oB,UAAA,SAAA3oD,QAAAC,QACAD,QAAA6/B,MAIA8oB,UAAAvjD,IAAA,SAAA4jD,UACA,OAAA,IAAAL,UAAA,SAAA3oD,QAAAC,QACA,IAAAjJ,UACAoQ,MAAA,EAMA,SAAA6hD,SAAAniE,GACA,OAAA,SAAA+4C,GACA7oC,OAAAlQ,GAAA+4C,GACAz4B,OAAA,KAEA4hD,SAAAthE,QACAsY,QAAAhJ,SAVA,IAAAgyD,SAAAthE,QACAsY,QAAAhJ,QAcA,IAAA,IAAAlQ,EAAA,EAAAA,EAAAkiE,SAAAthE,OAAAZ,GAAA,EACA6hE,UAAA3oD,QAAAgpD,SAAAliE,IAAAwZ,KAAA2oD,SAAAniE,GAAAmZ,WAKA0oD,UAAAO,KAAA,SAAAF,UACA,OAAA,IAAAL,UAAA,SAAA3oD,QAAAC,QACA,IAAA,IAAAnZ,EAAA,EAAAA,EAAAkiE,SAAAthE,OAAAZ,GAAA,EACA6hE,UAAA3oD,QAAAgpD,SAAAliE,IAAAwZ,KAAAN,QAAAC,WAKA,IAAA6a,EAAA6tC,UAAAhhE,UA2GA,SAAAw+B,KAAA7iC,IAAA+F,SACA,OAAA,IAAAo/D,UAAA,SAAAzoD,QAAAC,QAEA,IAAAkpD,IAAApF,QACA/9C,KAAA,KACA7F,OAAA,MACA6nB,WACA2B,IAAA,IAAAC,eACA3B,WAAA59B,KACAsgC,aAAA,IACAthC,SAEA8/D,IAAAlhC,WAAAkhC,KAEA,IAAAx/B,IAAAw/B,IAAAx/B,IAEA,IAAA,IAAA1jB,QAAAkjD,IACA,GAAAljD,QAAA0jB,IACA,IAEAA,IAAA1jB,MAAAkjD,IAAAljD,MAEA,MAAA5V,IAMA,IAAA,IAAAiJ,UAFAqwB,IAAAQ,KAAAg/B,IAAAhpD,OAAAmF,cAAAhiB,KAEA6lE,IAAAnhC,QACA2B,IAAAtC,iBAAA/tB,OAAA6vD,IAAAnhC,QAAA1uB,SAGAqS,GAAAge,IAAA,OAAA,WAEA,IAAAA,IAAAnC,QAAAmC,IAAAnC,QAAA,KAAAmC,IAAAnC,OAAA,KAAA,MAAAmC,IAAAnC,OACAxnB,QAAA2pB,KAEA1pB,OAAA8jD,OAAA9+D,MAAA0kC,IAAAjC,aACAiC,IAAAA,IACAnC,OAAAmC,IAAAnC,YAMA7b,GAAAge,IAAA,QAAA,WAAA,OAAA1pB,OAAA8jD,OAAA9+D,MAAA,kBAAA0kC,IAAAA,SACAhe,GAAAge,IAAA,UAAA,WAAA,OAAA1pB,OAAA8jD,OAAA9+D,MAAA,oBAAA0kC,IAAAA,SAEAA,IAAAxB,KAAAghC,IAAAnjD,QAIA,SAAAojD,SAAAxlE,IAAAylE,OAAAC,OAEA,OAAA,IAAAb,UAAA,SAAAzoD,QAAAC,QACA,IAAA6mD,IAAA,IAAAyC,MAEAzC,IAAAv8B,QAAAtqB,OACA6mD,IAAAx8B,OAAA,WAAA,OAAAtqB,QAAA8mD,MAEAA,IAAAljE,IAAAA,IACAylE,SAAAvC,IAAAuC,OAAAA,QACAC,QAAAxC,IAAAwC,MAAAA,SAKA,SAAAp/D,UACA,MAAA,aAAArI,SAAA6iB,YAAA,YAAA7iB,SAAA6iB,aAAA7iB,SAAAsR,gBAAAwR,SAGA,SAAAvG,MAAA9W,IAEA,GAAA4C,UACA5C,UAIA,IAAAolB,OAAA,WACA88C,UACAC,UACAniE,MAEAkiE,QAAA79C,GAAA9pB,SAAA,mBAAA6qB,QACA+8C,QAAA99C,GAAA5oB,OAAA,OAAA2pB,QAGA,SAAA5N,MAAAta,QAAAkjE,KACA,OAAAA,IACA/D,QAAAn/D,SAAAmB,QAAA89D,OAAAiE,MACA/D,SAAAn/D,QAAAi/D,OAAAj/D,WAAAA,QAAAyC,WAAAsX,UAAA5Y,QAAAnB,SAGA,SAAAklE,SAAA5iE,EAAAuO,SAAAyzB,QAAA6gC,aACA,IAAA7gC,UAAAA,QAAA,QACA,IAAA6gC,SAAAA,QAAA,GAKA,IAAAjiE,QAFA2N,SAAAsuD,QAAAtuD,WAEA3N,OAUA,OARAZ,EAAAmnC,UAAAnnC,GACAw8D,SAAAx8D,GACA,SAAAA,EACAgiC,QAAA,EACA,aAAAhiC,EACAgiC,QAAA,EACAhqB,MAAAzJ,SAAAvO,GAEA6iE,OACAzF,MAAAp9D,EAAA,EAAAY,OAAA,IAGAZ,GAAAY,QAEA,EAAAZ,EAAAY,OAAAZ,EAGA,SAAAuS,MAAA7U,SAGA,OAFAA,QAAAi/D,OAAAj/D,UACA2P,UAAA,GACA3P,QAGA,SAAAquB,KAAApb,OAAAob,MAEA,OADApb,OAAAgsD,OAAAhsD,QACAs+B,YAAAljB,MACApb,OAAAtD,UACAof,OAAA9b,OAAAmyD,gBAAAvwD,MAAA5B,QAAAA,OAAAob,MAcA,SAAAU,OAAA9b,OAAAjT,SAEA,OADAiT,OAAAgsD,OAAAhsD,QACAoyD,YAAArlE,QAAA,SAAAA,SAAA,OAAAiT,OAAAxT,YAAAO,WAGA,SAAAkvB,OAAAg0C,IAAAljE,SAEA,OADAkjE,IAAAjE,OAAAiE,KACAmC,YAAArlE,QAAA,SAAAA,SAAA,OAAAkjE,IAAAzgE,WAAAwsB,aAAAjvB,QAAAkjE,OAGA,SAAA/zC,MAAA+zC,IAAAljE,SAEA,OADAkjE,IAAAjE,OAAAiE,KACAmC,YAAArlE,QAAA,SAAAA,SAAA,OAAAkjE,IAAA/0D,YACA+gB,OAAAg0C,IAAA/0D,YAAAnO,SACA+uB,OAAAm0C,IAAAzgE,WAAAzC,WAIA,SAAAqlE,YAAArlE,QAAA8C,IAEA,OADA9C,QAAAo+D,SAAAp+D,SAAAomB,SAAApmB,SAAAA,SAEA,WAAAA,QACAm/D,QAAAn/D,SAAAgE,IAAAlB,IACAA,GAAA9C,SACA,KAGA,SAAA4c,OAAA5c,SACAm/D,QAAAn/D,SAAAgE,IAAA,SAAAhE,SAAA,OAAAA,QAAAyC,YAAAzC,QAAAyC,WAAAC,YAAA1C,WAGA,SAAA4kC,QAAA5kC,QAAAy/B,WAIA,IAFAA,UAAAw/B,OAAA/vC,OAAAlvB,QAAAy/B,YAEAA,UAAAjuB,YACAiuB,UAAAA,UAAAjuB,WAKA,OAFAud,OAAA0Q,UAAAz/B,SAEAy/B,UAGA,SAAAqF,UAAA9kC,QAAAy/B,WACA,OAAA0/B,QAAAA,QAAAn/D,SAAAgE,IAAA,SAAAhE,SAAA,OAAAA,QAAAolE,cAAAxgC,QAAAu6B,QAAAn/D,QAAA4L,YAAA6zB,WAAA1Q,OAAA/uB,QAAAy/B,cAIA,SAAAuF,OAAAhlC,SACAm/D,QAAAn/D,SACAgE,IAAA,SAAAhE,SAAA,OAAAA,QAAAyC,aACA4M,OAAA,SAAAzI,MAAA0T,MAAAb,MAAA,OAAAA,KAAAtY,QAAAyF,SAAA0T,QACA2oC,QAAA,SAAAhwC,QACAic,OAAAjc,OAAAA,OAAArH,YACAgR,OAAA3J,UA/SAqjB,EAAA9a,QAAA,SAAA6/B,GACA,IAAAz/B,QAAAlb,KAEA,GAAAkb,QAAAuB,QAAAinD,QAAA,CACA,GAAA/oB,IAAAz/B,QACA,MAAA,IAAA0C,UAAA,gCAGA,IAAAgnD,QAAA,EAEA,IACA,IAAAxpD,KAAAu/B,GAAAA,EAAAv/B,KAEA,GAAA,OAAAu/B,GAAA/J,SAAA+J,IAAAz5C,WAAAka,MAgBA,YAfAA,KAAApa,KACA25C,EACA,SAAAA,GACAiqB,QACA1pD,QAAAJ,QAAA6/B,GAEAiqB,QAAA,GAEA,SAAAf,GACAe,QACA1pD,QAAAH,OAAA8oD,GAEAe,QAAA,IAKA,MAAAz5D,GAIA,YAHAy5D,QACA1pD,QAAAH,OAAA5P,IAKA+P,QAAAuB,MAlHA,EAmHAvB,QAAAhV,MAAAy0C,EACAz/B,QAAAiC,WAIAyY,EAAA7a,OAAA,SAAA8pD,QAGA,GAFA7kE,KAEAyc,QAAAinD,QAAA,CACA,GAAAmB,SAHA7kE,KAIA,MAAA,IAAA4d,UAAA,gCAJA5d,KAOAyc,MA/HA,EAwHAzc,KAQAkG,MAAA2+D,OARA7kE,KASAmd,WAIAyY,EAAAzY,OAAA,WACA,IAAA0iD,OAAA7/D,KAEAmgC,MAAA,WACA,GAAA0/B,OAAApjD,QAAAinD,QACA,KAAA7D,OAAAljD,SAAAna,QAAA,CACA,IAAAggE,IAAA3C,OAAAljD,SAAA9P,QACAi4D,WAAAtC,IAAA,GACAnlD,WAAAmlD,IAAA,GACA1nD,QAAA0nD,IAAA,GACAznD,OAAAynD,IAAA,GAEA,IAlJA,IAmJA3C,OAAApjD,MACAvb,WAAA4jE,YACAhqD,QAAAgqD,WAAA9jE,UAAApC,EAAAihE,OAAA35D,QAEA4U,QAAA+kD,OAAA35D,OAtJA,IAwJA25D,OAAApjD,QACAvb,WAAAmc,YACAvC,QAAAuC,WAAArc,UAAApC,EAAAihE,OAAA35D,QAEA6U,OAAA8kD,OAAA35D,QAGA,MAAAiF,GACA4P,OAAA5P,QAOAyqB,EAAAxa,KAAA,SAAA0pD,WAAAznD,YACA,IAAAwiD,OAAA7/D,KAEA,OAAA,IAAAyjE,UAAA,SAAA3oD,QAAAC,QACA8kD,OAAAljD,SAAAnc,MAAAskE,WAAAznD,WAAAvC,QAAAC,SACA8kD,OAAA1iD,YAIAyY,EAAAhZ,MAAA,SAAAS,YACA,OAAArd,KAAAob,UAAAxc,EAAAye,aA6MA,IAAA0nD,WAAA,qBACAC,YAAA,6BAEA,SAAAt/C,SAAAiI,MAEA,IAAA5nB,QAAAi/D,YAAAn5D,KAAA8hB,MACA,GAAA5nB,QACA,OAAApJ,SAAA6B,cAAAuH,QAAA,IAGA,IAAAmqB,UAAAvzB,SAAA6B,cAAA,OAOA,OANAumE,WAAA94D,KAAA0hB,MACAuC,UAAA+0C,mBAAA,YAAAt3C,KAAAnoB,QAEA0qB,UAAArf,YAAA8c,KAGAuC,UAAAhlB,WAAA1I,OAAA,EAAAi8D,QAAAvuC,UAAAhlB,YAAAglB,UAAApf,WAIA,SAAAtN,MAAA7B,KAAAS,IAEA,GAAAT,MAAA,IAAAA,KAAAP,SAMA,IAFAgB,GAAAT,MACAA,KAAAA,KAAAwiC,kBACAxiC,MACA6B,MAAA7B,KAAAS,IACAT,KAAAA,KAAAujE,mBAIA,SAAAxpC,SAAAp8B,SAEA,IADA,IAAAsT,QAAA/O,IAAAJ,UAAAjB,OAAA,EACAqB,OAAA,GAAA+O,KAAA/O,KAAAJ,UAAAI,IAAA,GAEAshE,QAAA7lE,QAAAsT,KAAA,OAGA,SAAAvT,YAAAC,SAEA,IADA,IAAAsT,QAAA/O,IAAAJ,UAAAjB,OAAA,EACAqB,OAAA,GAAA+O,KAAA/O,KAAAJ,UAAAI,IAAA,GAEAshE,QAAA7lE,QAAAsT,KAAA,UAGA,SAAAwyD,cAAA9lE,QAAA+lE,KACApF,WAAA3gE,QAAA,QAAA,IAAAE,OAAA,UAAA6lE,IAAA,UAAA,KAAA,IAGA,SAAAC,aAAAhmE,SAEA,IADA,IAAAsT,QAAA/O,IAAAJ,UAAAjB,OAAA,EACAqB,OAAA,GAAA+O,KAAA/O,KAAAJ,UAAAI,IAAA,GAEA+O,KAAA,IAAAvT,YAAAC,QAAAsT,KAAA,IACAA,KAAA,IAAA8oB,SAAAp8B,QAAAsT,KAAA,IAGA,SAAAupB,SAAA78B,QAAA+lE,KACA,OAAA5G,QAAAn/D,SAAAqxC,KAAA,SAAArxC,SAAA,OAAAA,QAAAimE,UAAAh+D,SAAA89D,OAGA,SAAAtpC,YAAAz8B,SAEA,IADA,IAAAsT,QAAA/O,IAAAJ,UAAAjB,OAAA,EACAqB,OAAA,GAAA+O,KAAA/O,KAAAJ,UAAAI,IAAA,GAGA,GAAA+O,KAAApQ,OAAA,CAMA,IAAAgjE,MAAA9H,UAFA9qD,KAAA6yD,UAAA7yD,OAEAA,KAAApQ,OAAA,OAAAoQ,KAAAzK,MAEAyK,KAAAA,KAAAjE,OAAA+vD,SAEAD,QAAAn/D,SAAAijD,QAAA,SAAAigB,KAGA,IAFA,IAAA+C,UAAA/C,IAAA+C,UAEA3jE,EAAA,EAAAA,EAAAgR,KAAApQ,OAAAZ,IACA8jE,SAAAC,MACAJ,UAAAxhD,OAAAvgB,MAAA+hE,WAAA3yD,KAAAhR,IAAArB,OAAAilE,QACAD,WAAA10B,YAAA20B,QAAAD,UAAAh+D,SAAAqL,KAAAhR,IAAA4jE,OAAA,MAAA,UAAA5yD,KAAAhR,OAMA,SAAAujE,QAAA7lE,QAAAsT,KAAAxQ,KACAwQ,KAAA6yD,UAAA7yD,MAAAjE,OAAA+vD,UAEAl8D,QAAAi8D,QAAAn/D,SAAAijD,QAAA,SAAAigB,KACA,IAAA+C,UAAA/C,IAAA+C,UAEAG,SAAAE,SACAL,UAAAnjE,IAAAoB,MAAA+hE,UAAA3yD,MACAA,KAAA2vC,QAAA,SAAA8iB,KAAA,OAAAE,UAAAnjE,IAAAijE,SAIA,SAAAI,UAAA7yD,MACA,OAAAA,KAAAmwD,OAAA,SAAAnwD,KAAA3M,KAAA,OAAA2M,KAAArS,OAAAS,KAAA4R,KAAA8qD,SAAAz3D,MAAAu3D,SAAAv3D,IAAA,KAAAA,IAAAT,OAAAc,MAAA,KAAAL,UAIA,IAKAoC,KALAq9D,aAKAr9D,KAAA1L,SAAA6B,cAAA,KAAA+mE,aAEAl9D,KAAAyR,IAAA,IAAA,KACAzR,KAAA0b,OAAA,KAAA,GACA2hD,SAAAE,SAAAv9D,KAAAd,SAAA,KACAm+D,SAAAC,OAAAt9D,KAAAd,SAAA,MAEAc,KAAA,KAIA,IAAAib,WACAuiD,6BAAA,EACAC,gBAAA,EACAC,gBAAA,EACAC,aAAA,EACAC,eAAA,EACAC,eAAA,EACAC,eAAA,EACA7yC,SAAA,EACAO,OAAA,EACAC,SAAA,EACAC,QAAA,EACAqyC,WAAA,EACAnyC,MAAA,GAGA,SAAAvR,IAAApjB,QAAA+mE,SAAAngE,OAEA,OAAAu4D,QAAAn/D,SAAAgE,IAAA,SAAAhE,SAEA,GAAAo+D,SAAA2I,UAAA,CAIA,GAFAA,SAAAC,SAAAD,UAEAx1B,YAAA3qC,OACA,OAAAqgE,SAAAjnE,QAAA+mE,UACAngE,OAAA,IAAAA,MAGA5G,QAAAkjB,MAAA6jD,UAAAt9B,UAAA7iC,SAAAod,UAAA+iD,UAAAngE,MAAA,KAAAA,MAFA5G,QAAAkjB,MAAAgkD,eAAAH,cAKA,CAAA,GAAAzhE,QAAAyhE,UAAA,CAEA,IAAAzzC,OAAAzD,UAAA7vB,SAEA,OAAA+mE,SAAAtD,OAAA,SAAAh5C,MAAAs8C,UAEA,OADAt8C,MAAAs8C,UAAAzzC,OAAA0zC,SAAAD,WACAt8C,WAGA6mB,SAAAy1B,WACAjjE,KAAAijE,SAAA,SAAAngE,MAAAmgE,UAAA,OAAA3jD,IAAApjB,QAAA+mE,SAAAngE,SAGA,OAAA5G,UAEA,GAIA,SAAA6vB,UAAA7vB,QAAAmnE,WAEA,OADAnnE,QAAAi/D,OAAAj/D,UACAsM,cAAAwC,YAAAihB,iBAAA/vB,QAAAmnE,WAGA,SAAAF,SAAAjnE,QAAA+mE,SAAAI,WACA,OAAAt3C,UAAA7vB,QAAAmnE,WAAAJ,UAGA,IAAAK,QAEA,SAAAC,UAAAviE,MAEA,KAAAA,QAAAsiE,MAAA,CAIA,IAAApnE,QAAA+uB,OAAA1xB,SAAAsR,gBAAAtR,SAAA6B,cAAA,QAEAk9B,SAAAp8B,QAAA,OAAA8E,MAEA,IAEAsiE,KAAAtiE,MAAAmiE,SAAAjnE,QAAA,UAAA,WAAAG,QAAA,iBAAA,MACAinE,KAAAtiE,MAAAkd,KAAAC,MAAAmlD,KAAAtiE,OAEA,MAAA+G,IAEAxO,SAAAsR,gBAAAjM,YAAA1C,SAIA,OAAAonE,KAAAtiE,MAIA,IAAA8tB,YAEA,SAAAo0C,SAAAliE,MAEA,IAAAnB,IAAAivB,SAAA9tB,MAIA,OAHAnB,MACAA,IAAAivB,SAAA9tB,MASA,SAAAA,MAIA,IAFAA,KAAAq4D,UAAAr4D,SAEAoe,MACA,OAAApe,KAGA,IAAAwiE,aAAAhlE,EAAAmwB,YAAAvvB,OAEA,KAAAZ,KAEA,IADAglE,aAAA,IAAA70C,YAAAnwB,GAAA,IAAAwC,QACAoe,MACA,OAAAokD,aAtBAx0C,CAAAhuB,OAAAA,MAEAnB,IAGA,IAAA8uB,aAAA,SAAA,MAAA,MAEAvP,MADA7lB,SAAA6B,cAAA,KACAgkB,MAoBA,SAAAqkD,WAAAvnE,QAAAyqB,MAAAsL,SAAAyxC,QAKA,YAJA,IAAAzxC,WAAAA,SAAA,UACA,IAAAyxC,SAAAA,OAAA,UAGAvD,UAAArjD,IAAAu+C,QAAAn/D,SAAAgE,IAAA,SAAAhE,SAAA,OAAA,IAAAikE,UAAA,SAAAzoD,QAAAC,QAEA,IAAA,IAAA3W,QAAA2lB,MAAA,CACA,IAAA7jB,MAAAwc,IAAApjB,QAAA8E,MACA,KAAA8B,OACAwc,IAAApjB,QAAA8E,KAAA8B,OAIA,IAAA6xB,MAAA3Z,WAAA,WAAA,OAAAsL,QAAApqB,QAAA,kBAAA+1B,UAEArZ,KAAA1c,QAAA,mCAAA,SAAAkjE,KACA,IAAA/jE,KAAA+jE,IAAA/jE,KAEA27B,aAAArC,OACA14B,YAAAC,QAAA,iBACAojB,IAAApjB,SACAynE,sBAAA,GACAC,sBAAA,GACAC,6BAAA,KAEA,uBAAAxoE,KAAAsc,SAAAD,YACA,EAAA,SAAA0nD,KACA,IAAAh+D,OAAAg+D,IAAAh+D,OAEA,OAAAlF,UAAAkF,SAGAk3B,SAAAp8B,QAAA,iBACAojB,IAAApjB,QAAAu/D,QACAkI,sBAAA3mE,OAAAqM,KAAAsd,OAAAzmB,IAAAgjE,UAAAl6D,KAAA,KACA46D,sBAAA3xC,SAAA,KACA4xC,6BAAAH,QACA/8C,aAOA,IAAAm9C,YAEAhpE,MAAA2oE,WAEAtpE,KAAA,SAAA+B,SAEA,OADAoqB,QAAApqB,QAAA,iBACAikE,UAAAzoD,WAGAqsD,OAAA,SAAA7nE,SACAoqB,QAAApqB,QAAA,uBAGA22B,WAAA,SAAA32B,SACA,OAAA68B,SAAA78B,QAAA,mBAKA8nE,gBAAA,gBACAC,mBAAA,sBAEA,SAAAnuC,QAAA55B,QAAAw3B,UAAAzB,SAAAiyC,OAAA/8B,KACA,IAAAg9B,YAAA9jE,UAIA,YAHA,IAAA4xB,WAAAA,SAAA,KAGAkuC,UAAArjD,IAAAu+C,QAAAn/D,SAAAgE,IAAA,SAAAhE,SAAA,OAAA,IAAAikE,UAAA,SAAAzoD,QAAAC,QAEA,GAAAohB,SAAA78B,QAAA+nE,oBACA/wC,sBAAA,WAAA,OAAAitC,UAAAzoD,UAAAM,KAAA,WAAA,OAAA8d,QAAA11B,WAAA,EAAA+jE,aAAAnsD,KAAAN,QAAAC,gBADA,CAOA,IAAAsqD,IAAAvuC,UAAA,IAAAswC,iBAAA78B,IAAA,QAAA,SAEA0yB,WAAAnmC,UAAAswC,mBAEAE,SACAjC,KAAA,wBAAAiC,QAGA/8B,MACA86B,KAAA,IAAA+B,gBAAA,YAKApyD,QAEAgH,KAAA1c,QAAA,+BAAA,SAAAkjE,KACA,IAGAgF,UAAA,EAEA,oBALAhF,IAAA/jE,MAMAsc,SACA/F,UAEA8F,UACAyoD,UAAAzoD,UAAAM,KAAA,WACAosD,UAAA,EACAxyD,WAIAshB,sBAAA,WACAkxC,WACA9rC,SAAAp8B,QAAA+nE,oBAEA/wC,sBAAA,WAAA,OAAAj3B,YAAAC,QAAA+nE,2BAIA,EAAA,SAAA7E,KACA,IAAAh+D,OAAAg+D,IAAAh+D,OAEA,OAAAlF,UAAAkF,SAGAke,IAAApjB,QAAA,oBAAA+1B,SAAA,MACAqG,SAAAp8B,QAAA+lE,KAEA,SAAArwD,QACA0N,IAAApjB,QAAA,oBAAA,IACA8lE,cAAA9lE,QAAA8nE,gBAAA,cAQA,IAAAnxC,WAAA,IAAAz2B,OAAA4nE,gBAAA,iBACArwC,WAEA0wC,GAAA,SAAAnoE,QAAAw3B,UAAAzB,SAAAiyC,QACA,OAAApuC,QAAA55B,QAAAw3B,UAAAzB,SAAAiyC,QAAA,IAGA/8B,IAAA,SAAAjrC,QAAAw3B,UAAAzB,SAAAiyC,QACA,OAAApuC,QAAA55B,QAAAw3B,UAAAzB,SAAAiyC,QAAA,IAGArxC,WAAA,SAAA32B,SACA,OAAA22B,WAAAhqB,KAAAmE,KAAA9Q,QAAA,WAGA6nE,OAAA,SAAA7nE,SACAoqB,QAAApqB,QAAA,qBAKA,SAAA+pC,EAAApqC,SAAAkD,SACA,OAAAu7D,SAAAz+D,UAEAyoE,OAAAzoE,UACAs/D,OAAA74C,SAAAzmB,WACA4P,KAAA5P,SAAAkD,SAHAo8D,OAAAt/D,UAMA,SAAA0oE,GAAA1oE,SAAAkD,SACA,OAAAu7D,SAAAz+D,UAEAyoE,OAAAzoE,UACAw/D,QAAA/4C,SAAAzmB,WACAshE,QAAAthE,SAAAkD,SAHAs8D,QAAAx/D,UAMA,SAAAyoE,OAAAhL,KACA,MAAA,MAAAA,IAAA,IAAAA,IAAAlxD,MAAA,SAGA,IAAAo8D,MACAn4C,OAAA,IAAA,OAAA,SACAmH,QAAA,IAAA,MAAA,WAGA,SAAAixC,WAAAvoE,QAAAkF,OAAAsjE,SAAAC,aAAAC,SAAAC,aAAAC,KAAAC,UAEAL,SAAAM,OAAAN,UACAC,aAAAK,OAAAL,cAEA,IAAAM,SAAA/oE,QAAAwoE,SAAAtjE,OAAAujE,cAEA,IAAAzoE,UAAAkF,OACA,OAAA6jE,QAGA,IAAAC,IAAAC,cAAAjpE,SACAkpE,UAAAD,cAAA/jE,QACAosB,SAAA43C,UA4EA,OA1EAC,OAAA73C,SAAAk3C,SAAAQ,KAAA,GACAG,OAAA73C,SAAAm3C,aAAAS,UAAA,GAEAR,SAAAU,WAAAV,SAAAM,IAAA74C,MAAA64C,IAAA1xC,QACAqxC,aAAAS,WAAAT,aAAAO,UAAA/4C,MAAA+4C,UAAA5xC,QAEAoxC,SAAA,GAAAC,aAAA,EACAD,SAAA,GAAAC,aAAA,EAEAr3C,SAAA4D,MAAAwzC,SAAA,EACAp3C,SAAAviB,KAAA25D,SAAA,EAEAG,SAAAI,cAAAJ,UAAAQ,SAAArpE,UAEA4oE,MACA9kE,KAAAwkE,KAAA,SAAApF,IAAAzhD,MACA,IAAA/V,IAAAw3D,IAAA,GACAoG,MAAApG,IAAA,GACAqG,UAAArG,IAAA,GAGA,IAAA,IAAA0F,MAAA1K,SAAA0K,KAAAl9D,KAAA,CAIA,IAAA89D,WAAAhB,SAAA98D,OAAA49D,OACAN,IAAAvnD,MACA+mD,SAAA98D,OAAA69D,UACAP,IAAAvnD,MACA,EAEAknD,aAAAF,aAAA/8D,OAAA49D,MACAJ,UAAAznD,MACAgnD,aAAA/8D,OAAA69D,WACAL,UAAAznD,MACA,EAEA,GAAA6P,SAAAg4C,OAAAT,SAAAS,QAAAh4C,SAAAg4C,OAAAN,IAAAvnD,MAAAonD,SAAAU,WAAA,CAEA,IAAAE,aAAAT,IAAAvnD,MAAA,EACAioD,mBAAA,WAAAjB,aAAA/8D,MAAAw9D,UAAAznD,MAAA,EAAA,EAEA,WAAA+mD,SAAA98D,OACAxH,MAAAulE,aAAAC,qBACAxlE,OAAAulE,cAAAC,sBACAxlE,MAAAslE,WAAAb,eAIA,SAAAzkE,MAAAslE,WAAAb,cAEA,IAAAgB,OAAAr4C,SAAAg4C,OAAAE,WAAAb,aAAA,EAAAD,SAAAh9D,KAEA,GAAAi+D,QAAAd,SAAAS,QAAAK,OAAAX,IAAAvnD,OAAAonD,SAAAU,WAWA,OAVAj4C,SAAAg4C,OAAAK,QAEA,UAAA,UAAA1mB,QAAA,SAAAv1C,IACAq7D,QAAAr7D,IAAAhC,KAAA89D,WAEAT,QAAAr7D,IAAAhC,OAAA48D,KAAA7mD,MAAA,GACA6mD,KAAA7mD,MAAA,GACA6mD,KAAA7mD,MAAA,GAHAsnD,QAAAr7D,IAAAhC,QAMA,KAQA+7B,OAAAznC,QAAAsxB,UAEAy3C,QAGA,SAAAthC,OAAAznC,QAAA4pE,aAIA,GAFA5pE,QAAAi/D,OAAAj/D,UAEA4pE,YAmBA,OAAAX,cAAAjpE,SAjBA,IAAA6pE,cAAApiC,OAAAznC,SACAg2B,IAAA5S,IAAApjB,QAAA,aAEA,OAAA,OAAAijD,QAAA,SAAAxhC,MACA,GAAAA,QAAAmoD,YAAA,CACA,IAAAhjE,MAAAwc,IAAApjB,QAAAyhB,MACA2B,IAAApjB,QAAAyhB,KAAAmoD,YAAAnoD,MAAAooD,cAAApoD,MACAu9C,QAAA,aAAAhpC,KAAA,SAAApvB,MACA0qB,SAAAtxB,SAAAyhB,MACA7a,WAWA,SAAAqiE,cAAAjpE,SAIA,IAmBAkjB,MAAA6T,OAnBAmsC,IAAAmG,SAFArpE,QAAAi/D,OAAAj/D,UAGA+O,IAAAm0D,IAAA76B,YACAnT,KAAAguC,IAAA56B,YAEA,GAAAvmC,SAAA/B,SAAA,CAEA,IAAAs3B,OAAAt3B,QAAA8pE,YACA35C,MAAAnwB,QAAA+pE,WAEA,OACAh7D,IAAAA,IACAmmB,KAAAA,KACAoC,OAAAA,OACAnH,MAAAA,MACA2vC,OAAA/wD,IAAAuoB,OACAnG,MAAA+D,KAAA/E,OAMA2yC,UAAA9iE,WACAkjB,MAAApS,KAAA9Q,QAAA,SACA+2B,OAAAjmB,KAAA9Q,QAAA,UAEA8Q,KAAA9Q,SACAkjB,OAAAA,OAAA,IAAA,6BACA6T,OAAA,QAIA,IAAAoR,KAAAnoC,QAAAi1B,wBAMA,OAJAsc,YAAAruB,QACApS,KAAA9Q,SAAAkjB,MAAAA,MAAA6T,OAAAA,UAIAO,OAAA6Q,KAAA7Q,OACAnH,MAAAgY,KAAAhY,MACAphB,IAAAo5B,KAAAp5B,IAAAA,IACAmmB,KAAAiT,KAAAjT,KAAAA,KACA4qC,OAAA33B,KAAA23B,OAAA/wD,IACAoiB,MAAAgX,KAAAhX,MAAA+D,MAIA,SAAA5D,SAAAtxB,SAGA,IAAAiT,OAeA,SAAAjT,SAEA,IAAAiT,OAAAgsD,OAAAj/D,SAAAuoC,aAEA,KAAAt1B,QAAA,WAAAmQ,IAAAnQ,OAAA,aACAA,OAAAA,OAAAs1B,aAGA,OAAAt1B,QAAA+2D,MAAAhqE,SAvBAuoC,CAFAvoC,QAAAi/D,OAAAj/D,UAGAwoC,aAAAv1B,SAAA+2D,MAAAhqE,UAAA+O,IAAA,EAAAmmB,KAAA,GAAAuS,OAAAx0B,QACAiwD,KAAA,MAAA,QAAAO,OAAA,SAAAh5C,MAAAhJ,MACA,IAAAwoD,YAAAzM,QAAA/7C,MAIA,OAHAgJ,MAAAhJ,OAAA+mB,aAAA/mB,OACAu9C,QAAA57C,IAAApjB,QAAA,SAAAiqE,eAAA,IACAjL,QAAA57C,IAAAnQ,OAAA,SAAAg3D,YAAA,WAAA,GACAx/C,OACAgd,OAAAznC,UAIA,OAAA+O,IAHAm0D,IAAAn0D,IAGAmmB,KAFAguC,IAAAhuC,MAgBA,IAAAoC,OAAAnE,UAAA,UACAhD,MAAAgD,UAAA,SAEA,SAAAA,UAAA1R,MACA,IAAAwoD,YAAAzM,QAAA/7C,MACA,OAAA,SAAAzhB,QAAA4G,OAIA,GAFA5G,QAAAi/D,OAAAj/D,SAEAuxC,YAAA3qC,OAAA,CAEA,GAAA7E,SAAA/B,SACA,OAAAA,QAAA,QAAAiqE,aAGA,GAAA5L,WAAAr+D,SAAA,CACA,IAAAoC,IAAApC,QAAA2O,gBACA,OAAAnJ,KAAAytB,IAAA7wB,IAAA,SAAA6nE,aAAA7nE,IAAA,SAAA6nE,cAMA,OAFArjE,MAAA,UADAA,MAAAwc,IAAApjB,QAAAyhB,OACAzhB,QAAA,SAAAiqE,aAAAjL,QAAAp4D,QAAA,GAEAsjE,eAAAzoD,KAAAzhB,SAIAojB,IAAApjB,QAAAyhB,KAAA7a,OAAA,IAAAA,OAEAA,MAAAsjE,eAAAzoD,KAAAzhB,SAAA,KADA,KASA,SAAAkqE,eAAAzoD,KAAAzhB,SACA,MAAA,eAAAojB,IAAApjB,QAAA,aACAsoE,KAAA7mD,MAAAzgB,MAAA,GAAAgD,IAAAw5D,SAAAiG,OAAA,SAAA78D,MAAA6a,MAAA,OAAA7a,MACAo4D,QAAA57C,IAAApjB,QAAA,UAAAyhB,OACAu9C,QAAA57C,IAAApjB,QAAA,SAAAyhB,KAAA,WACA,GACA,EAGA,SAAA0nD,OAAA73C,SAAA64C,OAAAnB,IAAAoB,QACAtmE,KAAAwkE,KAAA,SAAApF,IAAAzhD,MACA,IAAA/V,IAAAw3D,IAAA,GACAoG,MAAApG,IAAA,GACAqG,UAAArG,IAAA,GAEAiH,OAAAz+D,OAAA69D,UACAj4C,SAAAg4C,QAAAN,IAAAvnD,MAAA2oD,OACA,WAAAD,OAAAz+D,OACA4lB,SAAAg4C,QAAAN,IAAAvnD,MAAA2oD,OAAA,KAKA,SAAAtB,OAAA9yC,KAEA,IAAAqlB,EAAA,oBACAR,EAAA,oBAYA,OARA,KAFA7kB,KAAAA,KAAA,IAAAhvB,MAAA,MAEA9D,SACA8yB,IAAAqlB,EAAA1uC,KAAAqpB,IAAA,IACAA,IAAA/0B,QAAA,WACA45C,EAAAluC,KAAAqpB,IAAA,KACA,UAAA/0B,OAAA+0B,MACA,SAAA,YAIAqlB,EAAAA,EAAA1uC,KAAAqpB,IAAA,IAAAA,IAAA,GAAA,SACA6kB,EAAAA,EAAAluC,KAAAqpB,IAAA,IAAAA,IAAA,GAAA,UAIA,SAAAozC,WAAA59B,QAAArb,MAAAmH,QAEA,IAAA4rC,KAAA13B,SAAA,IAAAxkC,MAAA,KACAq0C,EAAA6nB,IAAA,GACAroB,EAAAqoB,IAAA,GAEA,OACA7nB,EAAAA,EAAA2jB,QAAA3jB,IAAA0iB,SAAA1iB,EAAA,KAAAlrB,MAAA,IAAA,GAAA,EACA0qB,EAAAA,EAAAmkB,QAAAnkB,IAAAkjB,SAAAljB,EAAA,KAAAvjB,OAAA,IAAA,GAAA,GAIA,SAAA+yC,aAAAr0C,KACA,OAAAA,KACA,IAAA,OACA,MAAA,QACA,IAAA,QACA,MAAA,OACA,IAAA,MACA,MAAA,SACA,IAAA,SACA,MAAA,MACA,QACA,OAAAA,KAIA,SAAAs0C,SAAAtqE,QAAAuqE,UAAAC,WAAAC,oBAKA,QAJA,IAAAF,YAAAA,UAAA,QACA,IAAAC,aAAAA,WAAA,IAGA1H,UAAA9iE,SACA,OAAA,EAIA,IAAAooC,IAAAihC,SADArpE,QAAAi/D,OAAAj/D,UAGA,GAAAyqE,mBAEA,OAAA9K,cAAA3/D,QAAAi1B,yBACAlmB,KAAAw7D,UACAr1C,MAAAs1C,WACA1K,OAAAyK,UAAAjzC,OAAA8Q,KACAjX,MAAAq5C,WAAAr6C,MAAAiY,OAKA,IAAA86B,IAAAwH,eAAA1qE,SACA2qE,MAAAzH,IAAA,GACA0H,OAAA1H,IAAA,GACAn0D,IAAAq5B,IAAAC,YACAnT,KAAAkT,IAAAE,YAEA,OAAAq3B,eAEA5wD,IAAA47D,MACAz1C,KAAA01C,OACA9K,OAAA6K,MAAA3qE,QAAAklC,aACA/T,MAAAw5C,MAAA3qE,QAAAwxB,cAGAziB,IAAAA,IAAAw7D,UACAr1C,KAAAA,KAAAs1C,WACA1K,OAAA/wD,IAAAw7D,UAAAjzC,OAAA8Q,KACAjX,MAAA+D,KAAAs1C,WAAAr6C,MAAAiY,OAOA,SAAAyiC,aAAA7qE,QAAA8qE,cAIA,QAHA,IAAAA,eAAAA,aAAA,IAGAhI,UAAA9iE,SACA,OAAA,EAKA,IAAAooC,IAAAihC,SAFArpE,QAAAi/D,OAAAj/D,UAGAoC,IAAA2oE,WAAA/qE,SACAgrE,SAAAhrE,QAAAklC,aAAA4lC,aAEA/7D,IADA27D,eAAA1qE,SACA,GACAirE,GAAA3zC,OAAA8Q,KACA8iC,GAAAD,GAAAzlE,KAAAyvC,IAAA,EAAAlmC,IAAAk8D,IACAh9D,KAAAzI,KAAAytB,IAAA,EAAAg4C,IAAA3zC,OAAAl1B,KAAA0oE,cAAA/7D,IAAAi8D,YAEA,OAAAtL,OAAAwL,GAAA9iC,IAAAC,YAAAt5B,OAAAm8D,IAAAF,UAAA/8D,KAAAg9D,GAAAh9D,KAAA,KAAA,KAAA,KAGA,SAAAy8D,eAAA1qE,SACA,IAAAynC,QAAA,EAAA,GAEA,GAKA,GAHAA,OAAA,IAAAznC,QAAAmrE,UACA1jC,OAAA,IAAAznC,QAAAorE,WAEA,UAAAhoD,IAAApjB,QAAA,YAAA,CACA,IAAAooC,IAAAihC,SAAArpE,SAGA,OAFAynC,OAAA,IAAAW,IAAAC,YACAZ,OAAA,IAAAW,IAAAE,YACAb,cAGAznC,QAAAA,QAAAuoC,cAEA,OAAAd,OAGA,SAAA4hC,SAAArpE,SACA,OAAA+B,SAAA/B,SAAAA,QAAA+qE,WAAA/qE,SAAA8O,YAGA,SAAAi8D,WAAA/qE,SACA,OAAAi/D,OAAAj/D,SAAAsM,cAGA,SAAA09D,MAAAhqE,SACA,OAAA+qE,WAAA/qE,SAAA2O,gBAKA,IAAA08D,MAAA,QAAAv6D,KAAAzT,SAAAsR,gBAAA,OAEA28D,eAAA,iBAAA/sE,OACAgtE,iBAAAhtE,OAAAitE,aACAC,SAAAH,gBACA/sE,OAAAmtE,eAAAruE,oBAAAquE,eACAC,UAAAC,eAEAC,YAAAJ,SAAA,cAAAH,eAAA,aAAA,eAAA,YACAQ,YAAAL,SAAA,cAAAH,eAAA,YAAA,eAAA,YACAS,UAAAN,SAAA,YAAAH,eAAA,WAAA,aAAA,UACAU,aAAAP,UAAAF,iBAAA,eAAA,aACAU,aAAAR,UAAAF,iBAAA,eAAA,aAQAW,SAEAC,SACAC,UAEAC,KAAA,SAAAC,MAGA,OAFA5rE,KAAAyrE,MAAAjrE,KAAAorE,MACAC,gBACAD,MAGAE,MAAA,SAAAF,MAGA,OAFA5rE,KAAA0rE,OAAAlrE,KAAAorE,MACAC,gBACAD,MAGAG,MAAA,SAAAH,MACA,OAAAI,SAAAhsE,KAAAyrE,MAAAG,OAAAI,SAAAhsE,KAAA0rE,OAAAE,OAGAK,MAAA,WAEAC,SAAAlsE,KAAAyrE,OACAS,SAAAlsE,KAAA0rE,OAAAznE,OAAA,EAAAjE,KAAA0rE,OAAAlpE,SAEAxC,KAAAmsE,WAAA,GAEAnsE,KAAAyrE,MAAAjpE,QAAAxC,KAAA0rE,OAAAlpE,SACAqpE,kBAOA,SAAAA,gBACAL,QAAAW,YACAX,QAAAW,WAAA,EACA71C,sBAAAk1C,QAAAS,MAAAp0C,KAAA2zC,WAIA,SAAAU,SAAAE,OAEA,IADA,IAAAR,KACAA,KAAAQ,MAAAv/D,SACA++D,OAIA,SAAAI,SAAAthC,MAAA2hC,MACA,IAAAzyD,MAAA8wB,MAAAjqC,QAAA4rE,MACA,SAAAzyD,SAAA8wB,MAAAzmC,OAAA2V,MAAA,GAGA,SAAA0yD,gBAuFA,SAAAC,MAAAtkE,EAAAC,GACA,OAAAA,EAAAiyC,EAAAlyC,EAAAkyC,IAAAjyC,EAAAyyC,EAAA1yC,EAAA0yC,GAtFA2xB,aAAA7pE,WAEA+pE,aACA57C,SAAA,KAEAvuB,KAAA,WACA,IAAAw9D,OAAA7/D,KAGAA,KAAAwsE,aACAxsE,KAAA4wB,SAAA,KAEA,IAAA67C,SAAA,EACAzsE,KAAAwoC,OAAA/hB,GAAA9pB,SAAA,YAAA,SAAAwO,GAEAshE,UAIAruD,WAAA,WAEA,IAAA8b,KAAA1yB,KAAA4iB,MAEA5nB,OADAq9D,OAAA2M,UACAhqE,OAEAA,QAAA03B,KAAA2lC,OAAA2M,UAAAhqE,OAAA,GAAA03B,KAAA,KACA2lC,OAAA2M,UAAAvoE,OAAA,EAAAzB,QAGAq9D,OAAA2M,UAAAhsE,MAAA05B,KAAAA,KAAAygB,EAAAxvC,EAAA4f,MAAAovB,EAAAhvC,EAAA6f,QAEA60C,OAAA2M,UAAAhqE,OAAA,GACAq9D,OAAA2M,UAAA3/D,QAGA4/D,SAAA,GACA,GAEAA,SAAA,MAKAtF,OAAA,WACAnnE,KAAAwoC,QACAxoC,KAAAwoC,UAIAkkC,QAAA,SAAAloE,QAEA,GAAAxE,KAAAwsE,UAAAhqE,OAAA,EACA,OAAA,EAGA,IAAAozB,EAAAmR,OAAAviC,QACAmoE,YAAA3sE,KAAAwsE,UAAAxsE,KAAAwsE,UAAAhqE,OAAA,GAEAoqE,QADA5sE,KAAAwsE,UACA,GAEA,GAAA52C,EAAApB,MAAAm4C,YAAAhyB,GAAAgyB,YAAAhyB,GAAA/kB,EAAAnF,OAAAmF,EAAAvnB,KAAAs+D,YAAAxyB,GAAAwyB,YAAAxyB,GAAAvkB,EAAAwpC,OACA,OAAA,EAGA,IAAAyN,UACAlyB,EAAA/kB,EAAApB,KAAA2lB,EAAAvkB,EAAAvnB,MAAAssC,EAAA/kB,EAAAnF,MAAA0pB,EAAAvkB,EAAAwpC,WACAzkB,EAAA/kB,EAAAnF,MAAA0pB,EAAAvkB,EAAAvnB,MAAAssC,EAAA/kB,EAAApB,KAAA2lB,EAAAvkB,EAAAwpC,UAYA,OATAxpC,EAAAnF,OAAAk8C,YAAAhyB,IAAA/kB,EAAApB,MAAAm4C,YAAAhyB,GACAkyB,OAAA,GAAAtyD,UACAsyD,OAAA,GAAAtyD,WACAqb,EAAAwpC,QAAAuN,YAAAxyB,EACA0yB,OAAA,GAAAtyD,UACAqb,EAAAvnB,KAAAs+D,YAAAxyB,GACA0yB,OAAA,GAAAtyD,aAGAsyD,OAAA9J,OAAA,SAAAjxD,OAAAwtD,OACA,OAAAxtD,QAAAy6D,MAAAK,QAAAtN,MAAA,IAAAiN,MAAAI,YAAArN,MAAA,KAAAiN,MAAAK,QAAAtN,MAAA,IAAAiN,MAAAI,YAAArN,MAAA,MACA,KASA,IAAAwN,UA2EA,SAAAC,YAAAC,UAAAC,SAAAC,IACA,OAAAJ,OAAAt9C,SACAtuB,WAAA8rE,WACAA,UAAAhsE,KAAAksE,GAAAA,IACAF,UACA9rE,WAAA+rE,UACAA,SAAAjsE,KAAAksE,GAAAA,IACAD,UA/EAH,OAAAl6D,KACAk6D,OAAA7lD,OACA6lD,OAAAzqE,KACAyqE,OAAAK,QACAL,OAAAM,cACAN,OAAAO,UACAP,OAAA5zD,MACA4zD,OAAAQ,iBACAR,OAAAS,aACAT,OAAAU,QAAA,SAAAR,UAAAC,UAIA,OAFAD,UAAAA,YAAApoE,QAAAooE,YAAAA,WAAAA,UAEAC,SACAD,UACAA,UAAAzsE,OAAA0sE,UACAroE,QAAAqoE,UACAA,UACAA,UACAD,WAIAF,OAAAW,OAAA,SAAAT,UAAAC,UACA,OAAAH,OAAAl6D,KAAAo6D,UAAA9rE,WAAA+rE,WAAAtB,KAAAsB,UAAAA,WAIAH,OAAA/iD,MAAA,SAAAijD,UAAAC,UASA,OAPAroE,QAAAqoE,YACAA,SAAAA,SAAAlK,OAAA,SAAA78D,MAAAyG,KAEA,OADAzG,MAAAyG,KAAAtC,OACAnE,YAIA4mE,OAAAY,QAAAV,UAAAC,WAIAH,OAAAt9C,SACAs9C,OAAAY,QAAA,SAAAV,UAAAC,UACA,OAAAA,SACAD,UACAnO,UAAAmO,UAAAC,UACAA,SACAD,WAIAF,OAAAhsD,KAAA,SAAAksD,UAAAC,SAAAC,IAEA,OAAAA,GAgBAH,YAAAC,UAAAC,SAAAC,IAdAD,SAIAD,UAIA,SAAAE,IACA,OAAAH,YAAAC,UAAAC,SAAAC,KAJAD,SAJAD,WA4BA,IAAAW,aAAA,SAAAX,UAAAC,UACA,OAAAp8B,YAAAo8B,UAAAD,UAAAC,UAGA,SAAAW,aAAAr7D,OAAAs7D,MAAAX,IAEA,IAAA/oE,WAUA,GARAjD,WAAA2sE,SACAA,MAAAA,MAAA1pE,SAGA0pE,MAAAC,UACAv7D,OAAAq7D,aAAAr7D,OAAAs7D,MAAAC,QAAAZ,KAGAW,MAAAE,OACA,IAAA,IAAAnsE,EAAA,EAAA8X,EAAAm0D,MAAAE,OAAAvrE,OAAAZ,EAAA8X,EAAA9X,IACA2Q,OAAAq7D,aAAAr7D,OAAAs7D,MAAAE,OAAAnsE,GAAAsrE,IAIA,IAAA,IAAAvgE,OAAA4F,OACAy7D,SAAArhE,KAGA,IAAA,IAAAshE,SAAAJ,MACAjtE,OAAA2R,OAAA07D,QACAD,SAAAC,OAIA,SAAAD,SAAArhE,KACAxI,QAAAwI,MAAAmgE,OAAAngE,MAAAghE,cAAAp7D,OAAA5F,KAAAkhE,MAAAlhE,KAAAugE,IAGA,OAAA/oE,QAGA,SAAA+pE,aAAA/pE,QAAAyO,MACA,IAAAzR,SAEA,IAAAyR,OAAAA,SAEA,IAEA,OAAAzO,QAEA84D,WAAA94D,QAAA,KACAmd,KAAAC,MAAApd,SACAyO,KAAApQ,SAAAg7D,SAAAr5D,QAAA,OACAhD,QAAAyR,KAAA,IAAAzO,QAAAhD,KACAgD,QAAAmC,MAAA,KAAAy8D,OAAA,SAAA5+D,QAAAigB,QACA,IAAAo+C,IAAAp+C,OAAA9d,MAAA,SACAqG,IAAA61D,IAAA,GACAt8D,MAAAs8D,IAAA,GAIA,OAHA71D,MAAAkkC,YAAA3qC,SACA/B,QAAAwI,IAAAnH,QAAAU,MAAAV,QAEArB,gBAGA,MAAAgH,GACA,UAKA,IAAAW,GAAA,EAEAqiE,OAAA,SAAAnhE,IACAhN,KAAA8L,KAAAA,GACA9L,KAAAgN,GAAAuxD,OAAAvxD,KAqHA,SAAAohE,KAAAphE,GAAAqhE,KACA,IACArhE,GAAAshE,cAAAC,YAAAjtD,KAAA43C,UAAA2F,QAAAh4C,MAAA,WAAAwnD,MAAA,KACA,MAAAljE,KArHAgjE,OAAA1rE,UAAA+rE,QAAA,WACA,OAAAxuE,KAAAyuE,aAAAzuE,KAAA0uE,WAAA1uE,KAAA2uE,WAGAR,OAAA1rE,UAAAksE,QAAA,WACA,MAAA,UAAA3uE,KAAAgN,GAAAm1D,SAGAgM,OAAA1rE,UAAAmsE,SAAA,WACA,MAAA,WAAA5uE,KAAAgN,GAAAm1D,SAGAgM,OAAA1rE,UAAAgsE,UAAA,WACA,OAAAzuE,KAAA4uE,cAAA5uE,KAAAgN,GAAAtO,IAAA8M,MAAA,+EAGA2iE,OAAA1rE,UAAAisE,QAAA,WACA,OAAA1uE,KAAA4uE,cAAA5uE,KAAAgN,GAAAtO,IAAA8M,MAAA,0BAGA2iE,OAAA1rE,UAAAosE,UAAA,WACA,IAAAhP,OAAA7/D,KAGA,GAAAA,KAAAkZ,MACA,OAAAlZ,KAAAkZ,MAGA,IAGA41D,OAHAC,QAAA/uE,KAAAyuE,YACAO,MAAAhvE,KAAA0uE,UAIA,OAAAK,SAAAC,MAEAhvE,KAAAkZ,MAAA,IAAAqqD,UAAA,SAAAzoD,SAqFA,IAAAgkD,GAnFA9iD,KAAA6jD,OAAA7yD,GAAA,OAAA,WACA,GAAA+hE,QAAA,CACA,IAAArM,SAAA,WAAA,OAAA0L,KAAAvO,OAAA7yD,IAAA6Z,MAAA,YAAA/a,GAAA+zD,OAAA/zD,MACAgjE,OAAAG,YAAAvM,SAAA,KACAA,eA+EA5D,GA3EA,SAAAoQ,SAAA,OAAAH,SAAAG,QAAApjE,KAAA+zD,OAAA/zD,IAAA,YAAAojE,QAAAroD,OAAAmoD,OAAA3Q,OAAA6Q,QAAAC,aAAAtP,OAAA/zD,IA6EA,IAAAy3D,UAAA,SAAAzoD,SAEAkB,KAAAne,OAAA,UAAA,SAAAoM,EAAAilE,SAAA,OAAAp0D,QAAAo0D,WAAA,EAAA,SAAA1M,KACA,IAAA0M,QAAA1M,IAAA1hD,KAGA,GAAAouD,SAAAxR,SAAAwR,SAAA,CAIA,IACAA,QAAA5tD,KAAAC,MAAA2tD,SACA,MAAA/jE,GACA,OAGA,OAAA+jE,SAAApQ,GAAAoQ,eA5FA9zD,KAAA,WACAN,UACAg0D,QAAAM,cAAAN,UAGA1+D,KAAAyvD,OAAA7yD,GAAA,MAAA6yD,OAAA7yD,GAAA,KAAAwwD,SAAAqC,OAAA7yD,GAAAtO,IAAA,KAAA,IAAA,MAAAqwE,QAAA,gBAAA,mBAAAlP,OAAA,OAMA0D,UAAAzoD,WAIAqzD,OAAA1rE,UAAA4sE,KAAA,WACA,IAAAxP,OAAA7/D,KAGA,GAAAA,KAAAwuE,UAIA,GAAAxuE,KAAA4uE,WACA5uE,KAAA6uE,YAAAzzD,KAAA,WAAA,OAAAgzD,KAAAvO,OAAA7yD,IAAAuP,KAAA,YAAAtB,OAAA,gBACA,GAAAjb,KAAA2uE,UACA,IACA,IAAAzzD,QAAAlb,KAAAgN,GAAAqiE,OAEAn0D,SACAA,QAAA0B,MAAAzX,MAEA,MAAAgG,MAIAgjE,OAAA1rE,UAAA6sE,MAAA,WACA,IAAAzP,OAAA7/D,KAGAA,KAAAwuE,YAIAxuE,KAAA4uE,WACA5uE,KAAA6uE,YAAAzzD,KAAA,WAAA,OAAAgzD,KAAAvO,OAAA7yD,IAAAuP,KAAA,aAAAtB,OAAA,YACAjb,KAAA2uE,WACA3uE,KAAAgN,GAAAsiE,UAIAnB,OAAA1rE,UAAA8sE,KAAA,WACA,IAAA1P,OAAA7/D,KAGAA,KAAAwuE,YAIAxuE,KAAA4uE,WACA5uE,KAAA6uE,YAAAzzD,KAAA,WAAA,OAAAgzD,KAAAvO,OAAA7yD,IAAAuP,KAAA,OAAAtB,OAAA,YAAA/U,MAAA,MACAlG,KAAA2uE,YACA3uE,KAAAgN,GAAAwiE,OAAA,EACAp/D,KAAApQ,KAAAgN,GAAA,QAAA,OA2CA,IAAAyiE,aAAAC,aAAAC,WAAAC,QAAAC,SAWA,SAAAC,YACAL,cAAAr1C,aAAAq1C,cACAC,cAAAt1C,aAAAs1C,cACAC,YAAAv1C,aAAAu1C,YACAF,aAAAC,aAAAC,WAAA,KACAE,SAGA32D,MAAA,WAEAuN,GAAA9pB,SAAA,QAAA,WAAA,OAAAizE,SAAA,IAAA,GAEAnpD,GAAA9pB,SAAAwuE,YAAA,SAAAhgE,GAEA,IAAA3G,OAAA2G,EAAA3G,OACAg+D,IAAAuN,SAAA5kE,GACAwvC,EAAA6nB,IAAA7nB,EACAR,EAAAqoB,IAAAroB,EACA/vB,IAAA5iB,KAAA4iB,MACA3rB,KAAAuxE,QAAA7kE,EAAA1M,MAEAoxE,MAAApxE,MAAAoxE,MAAApxE,OAAAA,OAIAoxE,MAAA7iE,GAAA,YAAAxI,OAAAA,OAAAA,OAAAzC,WAEA0tE,cAAAr1C,aAAAq1C,cAEAI,MAAAI,GAAAt1B,EACAk1B,MAAAK,GAAA/1B,EAEA01B,MAAAjsE,MAAAwmB,IAAAylD,MAAAjsE,MAAA,MACAisE,UAGAA,MAAApxE,KAAAA,KACAoxE,MAAAjsE,KAAAwmB,IAEAwlD,QAAAzkE,EAAAkJ,OAAA,KAIAoS,GAAA9pB,SAAAyuE,YAAA,SAAAjgE,GAEA,IAAAA,EAAA8e,iBAAA,CAIA,IAAAu4C,IAAAuN,SAAA5kE,GACAwvC,EAAA6nB,IAAA7nB,EACAR,EAAAqoB,IAAAroB,EAEA01B,MAAAM,GAAAx1B,EACAk1B,MAAAO,GAAAj2B,KAIA1zB,GAAA9pB,SAAA0uE,UAAA,SAAA7I,KACA,IAAA/jE,KAAA+jE,IAAA/jE,KACA+F,OAAAg+D,IAAAh+D,OAGAqrE,MAAApxE,OAAAuxE,QAAAvxE,QAKAoxE,MAAAM,IAAArrE,KAAAwqC,IAAAugC,MAAAI,GAAAJ,MAAAM,IAAA,IAAAN,MAAAO,IAAAtrE,KAAAwqC,IAAAugC,MAAAK,GAAAL,MAAAO,IAAA,GAEAV,aAAAtxD,WAAA,WA/EA,IAAAokD,IACAyN,GACAE,GACAD,GACAE,GA4EAP,MAAA7iE,KACA0c,QAAAmmD,MAAA7iE,GAAA,SACA0c,QAAAmmD,MAAA7iE,GAAA,SAjFAijE,IADAzN,IAkFAqN,OAjFAI,GACAE,GAAA3N,IAAA2N,GACAD,GAAA1N,IAAA0N,GACAE,GAAA5N,IAAA4N,GAEAtrE,KAAAwqC,IAAA2gC,GAAAE,KAAArrE,KAAAwqC,IAAA4gC,GAAAE,IAAAH,GAAAE,GAAA,EAAA,OAAA,QAAAD,GAAAE,GAAA,EAAA,KAAA,UA8EAP,WAIA,SAAAA,OAEAF,WAAAvxD,WAAA,WAAA,OAAAsL,QAAAmmD,MAAA7iE,GAAA,SAGA6iE,MAAA7iE,IAAA,YAAAvO,MAAA8jE,OAAA/9D,OAAAqrE,MAAA7iE,MACAyiE,aAAArxD,WAAA,WACAqxD,aAAA,KACAI,MAAA7iE,KAAA4iE,SACAlmD,QAAAmmD,MAAA7iE,GAAA,SAEA6iE,UACA,OAIAA,YAKAppD,GAAA9pB,SAAA,cAAAmzE,WACArpD,GAAA5oB,OAAA,SAAAiyE,aAIA,IAAAO,UAAA,EAKA,SAAAC,QAAAnlE,GACA,OAAAklE,UAAA,UAAAllE,EAAAygB,YAGA,SAAAmkD,SAAA5kE,GACA,IAAA8gB,QAAA9gB,EAAA8gB,QACAvB,eAAAvf,EAAAuf,eACA83C,IAAAv2C,SAAAA,QAAA,IAAAvB,gBAAAA,eAAA,IAAAvf,EAIA,OAAAwvC,EAHA6nB,IAAAz3C,MAGAovB,EAFAqoB,IAAAx3C,OAKA,SAAAglD,QAAAvxE,MACA,OAAAA,KAAA6B,MAAA,EAAA,GAuOA,SAAAiwE,iBAAArQ,WACA,SAAAjD,WAAAiD,UAAA,SAAAjD,WAAAiD,UAAA,cACAtD,SAAAsD,UAAAzgE,QAAA,WAAA,IAAAA,QAAA,MAAA,KA5PAgnB,GAAA9pB,SAAA,aAAA,WAAA,OAAA0zE,UAAA,IAAA,GACA5pD,GAAA9pB,SAAA,QAAA,WAAA0zE,UAAA,IACA5pD,GAAA9pB,SAAA,cAAA,WAAA,OAAA0zE,UAAA,IAAA,GAwgCA,IAAA/T,MAAA,SAAAn4D,SACAnE,KAAAwwE,MAAArsE,UAGAm4D,MAAAmU,KAt/BArwE,OAAAswE,QACAzvC,KAAAA,KACAijC,SAAAA,SACA2C,WAAAA,WACAK,WAAAA,WACAhuC,QAAAA,QACAnC,UAAAA,UACA3mB,KAAAA,KACA2vD,QAAAA,QACAtlC,WAAAA,WACAwlC,WAAAA,WACAn/C,KAAAA,KACA4a,SAAAA,SACAr8B,YAAAA,YACA+lE,cAAAA,cACAE,aAAAA,aACAnpC,SAAAA,SACAJ,YAAAA,YACAsN,EAAAA,EACAs+B,GAAAA,GACAE,WAAAA,WACA9gC,OAAAA,OACAnW,SAAAA,SACAgG,OAAAA,OACAnH,MAAAA,MACAk6C,aAAAA,aACAC,SAAAA,SACAO,aAAAA,aACAnlE,QAAAA,QACAkU,MAAAA,MACAU,MAAAA,MACA4qD,SAAAA,SACArwD,MAAAA,MACAwZ,KAAAA,KACAW,QA9hDA,SAAA/b,OAAAjT,SAIA,OAFAiT,OAAAgsD,OAAAhsD,SAEAmyD,gBAGAC,YAAArlE,QAAA,SAAAA,SAAA,OAAAiT,OAAAgc,aAAAjvB,QAAAiT,OAAAzB,cAFAud,OAAA9b,OAAAjT,UA0hDA+uB,OAAAA,OACAG,OAAAA,OACAC,MAAAA,MACAvS,OAAAA,OACAgoB,QAAAA,QACAE,UAAAA,UACAE,OAAAA,OACA5e,SAAAA,SACAliB,MAAAA,MACAmnE,MAAAA,MACAI,SAAAA,SACAI,YAAAA,YACAC,YAAAA,YACAC,UAAAA,UACAC,aAAAA,aACAC,aAAAA,aACA9kD,GAAAA,GACAK,IAAAA,IACA9K,KAAAA,KACA0N,QAAAA,QACAw5C,YAAAA,YACAJ,eAAAA,eACAQ,aAAAA,aACAkI,QAAAA,QACAtJ,cAAAA,cACAE,UAAAA,UACAC,SAAAA,SACAC,QAAAA,QACA3zD,OAAAA,OACA4zD,OAAAA,OACA1qC,KAAAA,KACAj3B,OAAAA,OACA67D,UAAAA,UACAG,SAAAA,SACAE,QAAAA,QACAG,WAAAA,WACAI,SAAAA,SACAG,SAAAA,SACA54D,QAAAA,QACA1D,WAAAA,WACA0vC,SAAAA,SACAlsC,cAAAA,cACArD,SAAAA,SACAs8D,WAAAA,WACAC,SAAAA,SACAC,OAAAA,OACAE,iBAAAA,iBACAG,UAAAA,UACAR,SAAAA,SACA5sB,SAAAA,SACA/H,UAAAA,UACA8H,YAAAA,YACAstB,UAAAA,UACAC,SAAAA,SACAE,QAAAA,QACAC,OAAAA,OACAE,QAAAA,QACAE,OAAAA,OACAC,KAAAA,KACAj8C,KAAAA,KACAk8C,OAAAA,OACAz7D,KAAAA,KACA27D,OAAAA,OACAC,MAAAA,MACA75D,KAAAA,KACA85D,cAAAA,cACAI,YAAAA,YACAE,WAAAA,WACA+M,aAAAA,aACAsB,aAAAA,aACAM,aAAAA,aACAC,OAAAA,OACA3K,QAAAD,UACAjnD,SAAAA,SACA8jD,MAAAA,MACAE,SAAAA,SACAzxD,KAAAA,KACA0xD,QAAAA,QACAx6D,QAAAA,QACA4T,QAAAA,QACAK,QAAAA,QACAzJ,OAAAA,OACAmS,IAAAA,IACAyM,UAAAA,UACAo3C,SAAAA,SACAI,UAAAA,UACAL,SAAAA,SACAgK,QAAAA,QACAlI,OAAA2H,WA43BAzT,MAAAx7C,KAAA,YACAw7C,MAAA1nC,OAAA,MACA0nC,MAAAn4D,WA5pBA,SAAAm4D,OAEA,IAmDApsC,UAnDAygD,KAAArU,MAAAx7C,KAgEA,SAAA2sD,OAAAyB,QAAA/jE,GAEA,GAAA+jE,QAIA,IAAA,IAAA9qE,QAAA8qE,QACAA,QAAA9qE,MAAAwsE,UACA1B,QAAA9qE,MAAAysE,YAAA1lE,GAtEAmxD,MAAAwU,IAAA,SAAAC,QAEA,IAAAA,OAAAC,UAOA,OAHAD,OAAA/vE,KAAA,KAAAhB,MACA+wE,OAAAC,WAAA,EAEAhxE,MAGAs8D,MAAA2U,MAAA,SAAAA,MAAAC,WACAA,WAAAxT,SAAAwT,WAAA5U,MAAA4U,UAAAA,WAAAA,YAAAlxE,MACAixE,MAAArD,gBAAAqD,QACAlD,OAAAmD,UAAA/sE,QAAA4pE,cACAmD,UAAA/sE,QAAA4pE,OACAmD,UAAA/sE,QAAAypE,aAAAqD,MAAAC,UAAA/sE,UAGAm4D,MAAAp4D,OAAA,SAAAC,SAEAA,QAAAA,YAEA,IACAgtE,IAAA,SAAAhtE,SACAnE,KAAAwwE,MAAArsE,UAUA,OAPAgtE,IAAA1uE,UAAArC,OAAAgxE,OALApxE,KAKAyC,YACAE,YAAAwuE,IACAA,IAAAhtE,QAAAypE,aAPA5tE,KAOAmE,QAAAA,SAEAgtE,IAAA,MATAnxE,KAUAmxE,IAAAjtE,OAVAlE,KAUAkE,OAEAitE,KAGA7U,MAAAmR,OAAA,SAAAnuE,QAAA6L,GAEAA,EAAA+3D,YAAA/3D,GAAA,UAmCA,SAAA7L,SAGA,IAFA,IAAA+xE,QAEA/xE,SAAAA,UAAA3C,SAAA+mB,MAAApkB,QAAAyC,YAEAzC,QAAAA,QAAAyC,WACAsvE,KAAAphE,QAAA3Q,SAIA,OAAA+xE,KA1CAA,CAFA/xE,QAAAA,QAAAi/D,OAAAj/D,SAAA3C,SAAA+mB,MAEApgB,IAAA,SAAAhE,SAAA,OAAAmuE,OAAAnuE,QAAAqxE,MAAAxlE,KACA3H,MAAAlE,QAAA,SAAAA,SAAA,OAAAmuE,OAAAnuE,QAAAqxE,MAAAxlE,MAKA/K,OAAAugB,eAAA27C,MAAA,aAEAz5D,IAAA,WACA,OAAAqtB,WAAAvzB,SAAA+mB,MAGA7C,IAAA,SAAAvhB,SACA4wB,UAAAmZ,EAAA/pC,YAimBAgyE,CAAAhV,OA/jBA,SAAAA,OAEAA,MAAA75D,UAAA8uE,UAAA,SAAApoD,MACA,IAAA02C,OAAA7/D,KAGAonB,SAAApnB,KAAAwxE,SAAAroD,MAEA/B,UACAA,SAAAm7B,QAAA,SAAAp1C,SAAA,OAAAA,QAAAnM,KAAA6+D,WAIAvD,MAAA75D,UAAAgvE,eAAA,WACA,IAAA5R,OAAA7/D,KAGAA,KAAA0xE,aAIA1xE,KAAA0hB,SACA1hB,KAAA2xE,aAEA3xE,KAAAuxE,UAAA,iBACAvxE,KAAA0xE,YAAA,EAEA1xE,KAAA4xE,cACA5xE,KAAA6xE,gBAEA7xE,KAAAuxE,UAAA,aAEAvxE,KAAA4wE,UACA13D,MAAA,WAAA,OAAA2mD,OAAAiS,eAGA9xE,KAAA6wE,gBAGAvU,MAAA75D,UAAAsvE,kBAAA,WAEA/xE,KAAA0xE,aAIA1xE,KAAAuxE,UAAA,oBAEAvxE,KAAAgyE,YACAhyE,KAAAgyE,UAAAC,aACAjyE,KAAAgyE,UAAA,MAGAhyE,KAAAkyE,gBACAlyE,KAAAuxE,UAAA,gBAEAvxE,KAAA0xE,YAAA,IAIApV,MAAA75D,UAAAqvE,WAAA,WAEA9xE,KAAA4wE,WAIA5wE,KAAA4wE,UAAA,EACA5wE,KAAAuxE,UAAA,SACAvxE,KAAAmyE,kBACAnyE,KAAA6wE,gBAGAvU,MAAA75D,UAAAouE,YAAA,SAAA1lE,GACA,IAAA00D,OAAA7/D,KAKAvB,MAFA0M,EAAA+3D,YAAA/3D,GAAA,WAEA1M,KAEA++D,UAAA,SAAA,OAAA,UAAA/+D,OACAuB,KAAAmyE,kBAGA,IAAAC,QAAApyE,KAAAwxE,SAAA/D,OACAjL,IAAAxiE,KAAAqyE,QACA5G,MAAAjJ,IAAAiJ,MACAC,OAAAlJ,IAAAkJ,OAEA0G,SAIAA,QAAA7vB,QAAA,SAAAigB,IAAA5gE,GACA,IAAA+pE,KAAAnJ,IAAAmJ,KACAG,MAAAtJ,IAAAsJ,MACA7kD,OAAAu7C,IAAAv7C,QAGA,WAAAxoB,MAAA++D,SAAAv2C,OAAAxoB,SAIAktE,OAAAnO,SAAAgO,QAAAC,MAAAA,MAAA7pE,MACA6pE,MAAA7pE,GAAA4pE,QAAAG,KAAA,WAEA,IAAA75D,OAAA+tD,OAAA6R,YAAA/F,KAAA3qE,KAAA6+D,OAAAA,OAAAn+C,MAAAvW,IAEA,IAAA2G,QAAAg6D,OACAN,QAAAO,MAAAL,OAAA9pE,WACA8pE,OAAA9pE,IACA8C,cAAAoN,SACA+sD,OAAAgB,OAAAn+C,MAAA5P,eAEA25D,MAAA7pE,MAIAkqE,QAAAtO,SAAAgO,QAAAE,OAAAA,OAAA9pE,MACA8pE,OAAA9pE,GAAA4pE,QAAAM,MAAA,WACAjM,OAAA6R,YAAA5F,MAAA9qE,KAAA6+D,OAAAA,OAAAn+C,MAAAvW,UACAugE,OAAA9pE,UAwcA0wE,CAAAhW,OA9bA,SAAAA,OAEA,IAAA57C,IAAA,EAqJA,SAAA6xD,SAAAh7C,KAAAnzB,MAEA,IAAA8qE,WACAt8D,KAAA2kB,KAAA3kB,UAAA,IAAAA,OAAAA,SACA,IAAAmX,MAAAwN,KAAAxN,WAAA,IAAAA,QAAAA,UACA,IAAA/c,GAAAuqB,KAAAvqB,GAEA,IAAA+c,MACA,OAAAmlD,QAGA,IAAA,IAAAviE,OAAAod,MAAA,CACA,IAAAhJ,KAAA07C,UAAA9vD,KACA,GAAAozD,QAAA/yD,GAAA+T,MAAA,CAEA,IAAA7a,MAAAssE,OAAAzoD,MAAApd,KAAAyD,KAAApD,GAAA+T,OAEA,GAAA,WAAAA,QAAA7a,OAAA+2D,WAAA/2D,MAAA,MACA,SAGAgpE,QAAAviE,KAAAzG,OAIA,IAAA/B,QAAA+pE,aAAAptD,KAAA9T,GAAA5I,MAAAwO,MAEA,IAAA,IAAAq7D,SAAA9pE,QAAA,CACA,IAAAsuE,OAAA7V,SAAAqR,YACArvE,IAAAmrB,MAAA0oD,UACAvD,QAAAuD,QAAAD,OAAAzoD,MAAA0oD,QAAAtuE,QAAA8pE,SAIA,OAAAiB,QAGA,SAAAwD,iBAAAxB,UAAAvkE,IAAAmyD,IACA1+D,OAAAugB,eAAAuwD,UAAAvkE,KAEA0c,YAAA,EAEAxmB,IAAA,WAEA,IAAA8vE,WAAAzB,UAAAyB,WACAC,OAAA1B,UAAA0B,OACAC,IAAA3B,UAAA2B,IAMA,OAJAjyE,OAAA+xE,WAAAhmE,OACAgmE,WAAAhmE,KAAAmyD,GAAA99D,KAAAkwE,UAAA0B,OAAAC,MAGAF,WAAAhmE,MAGAkU,IAAA,SAAA3a,OACAgrE,UAAAyB,WAAAhmE,KAAAzG,SAMA,SAAA4sE,cAAA5B,UAAArqD,MAAAla,KAEAjI,cAAAmiB,SACAA,OAAAziB,KAAAuI,IAAAQ,QAAA0Z,QAGA,IAsDA67C,SAtDAt+D,KAAAyiB,MAAAziB,KACA4I,GAAA6Z,MAAA7Z,GACAG,QAAA0Z,MAAA1Z,QACA4lE,QAAAlsD,MAAAksD,QACAtqC,SAAA5hB,MAAA4hB,SACAuqC,UAAAnsD,MAAAlY,OACAoK,KAAA8N,MAAA9N,KACA/L,GAAA9L,WAAA8L,IACAA,GAAAhM,KAAAkwE,WACAlkE,IAAAkkE,UAAA2B,IAEAjuE,QAAAoI,IACAA,GAAAu1C,QAAA,SAAAv1C,IAAA,OAAA8lE,cAAA5B,UAAArS,UAAAh4C,OAAA7Z,GAAAA,KAAAL,QAIAK,IAAAgmE,YAAAA,UAAAhyE,KAAAkwE,aAsCAxO,SAlCAhF,SAAAvwD,SAAA+jE,UAAA/jE,SAAA0qB,KAAA1qB,QAAA+jE,WAAA/jE,QAmCA,SAAAhC,GAAA,OAAAvG,QAAAuG,EAAAyf,QAAA83C,SAAAl/D,WAAA,GAAA2H,GAAA5K,OAAA4K,EAAAyf,SAAA83C,SAAAv3D,IAjCA4N,OACA5L,QAmBA,SAAAA,SACA,OAAA,SAAAhC,GACA,GAAAA,EAAA3G,SAAA2G,EAAAud,eAAAvd,EAAA3G,SAAA2G,EAAAy4B,QACA,OAAAz2B,QAAAnM,KAAA,KAAAmK,IAtBA8nE,CAAA9lE,UAGA+jE,UAAAgC,QAAA1yE,KACAimB,GACAzZ,GACA5I,KACAqkC,SAEAi1B,SAAAj1B,UACAA,SACAA,SAAAznC,KAAAkwE,WAHA,KAIA/jE,QACA4lE,WAcA,SAAAI,MAAAhvE,QAAAwI,KACA,OAAAxI,QAAAivE,MAAA,SAAAlzE,KAAA,OAAAA,MAAAU,OAAAV,IAAAyM,OAOA,SAAA6lE,OAAA/zE,KAAAyH,OAEA,OAAAzH,OAAAigE,QACAP,UAAAj4D,OACAzH,OAAA4/D,OACAD,SAAAl4D,OACA,SAAAzH,KACAkgE,OAAAz4D,OACA,UAAAzH,KAOA,SAAAyH,OAEA,GAAAw3D,SAAAx3D,OACA,GAAA,MAAAA,MAAA,GAAA,CACA,IAAA9B,KAAA,SAAA8B,MAAAqwC,OAAA,GACArwC,MAAAo4D,QAAAqI,UAAAviE,YACA,GAAA4kC,MAAA9iC,OACA,OAAAA,MAIA,SAAAA,OAAA8iC,MAAA9iC,SAAA,eAAAA,MAAA,MAjBAmtE,CAAAntE,OAGAzH,KAAAA,KAAAyH,OAAAA,MA7RAo2D,MAAA75D,UAAA+tE,MAAA,SAAArsE,UAEAA,QAAAA,aACA2c,KA2SA,SAAA0hD,IAAA8Q,OACA,IAAApE,QAAA1M,IAAA1hD,KAEAlO,MADA4vD,IAAAx1D,GACAsmE,MAAA1gE,MACAmX,MAAAupD,MAAAvpD,MAeA,QAfA,IAAAA,QAAAA,UAEAmlD,QAAAtqE,QAAAsqE,SACAt8D,MAAAA,KAAApQ,OACA0sE,QAAA5uE,MAAA,EAAAsS,KAAApQ,QAAAugE,OAAA,SAAAmM,QAAAhpE,MAAAqtE,UAMA,OALA7uE,cAAAwB,OACA24D,OAAAqQ,QAAAhpE,OAEAgpE,QAAAt8D,KAAA2gE,WAAArtE,MAEAgpE,kBAEAtwE,EACAswE,QAGA,IAAA,IAAAviE,OAAAuiE,QACAr+B,YAAAq+B,QAAAviE,aACAuiE,QAAAviE,KAEAuiE,QAAAviE,KAAAod,MAAApd,KAAA6lE,OAAAzoD,MAAApd,KAAAuiE,QAAAviE,MAAAuiE,QAAAviE,KAKA,OAAAuiE,QAxUAsE,CAAArvE,QAAAnE,KAAA2C,YAAAwB,SAEAnE,KAAAwxE,SAAA5D,aAAA5tE,KAAA2C,YAAAwB,QAAAA,QAAAnE,MACAA,KAAA6yE,IAAA,KACA7yE,KAAA4yE,UAEA5yE,KAAAqyE,SAAA5G,SAAAC,WACA1rE,KAAAkzE,WAEAlzE,KAAAyzE,KAAA/yD,MACA1gB,KAAA0zE,YACA1zE,KAAA2zE,eACA3zE,KAAA4zE,iBACA5zE,KAAAuxE,UAAA,WAEAptE,QAAA6I,IACAhN,KAAA6zE,OAAA1vE,QAAA6I,KAIAsvD,MAAA75D,UAAAixE,UAAA,WACA,IAIAxE,QADAlvE,KAAAwxE,SACA1wD,KAEA,IAAA,IAAAnU,YAFA,IAAAuiE,UAAAA,YAEAA,QANAlvE,KAOA4yE,OAAAjmE,KAPA3M,KAOA2M,KAAAuiE,QAAAviE,MAIA2vD,MAAA75D,UAAAkxE,aAAA,WACA,IAIAjG,QADA1tE,KAAAwxE,SACA9D,QAEA,GAAAA,QACA,IAAA,IAAA/gE,OAAA+gE,QAPA1tE,KAQA2M,KAAAkrB,KAAA61C,QAAA/gE,KARA3M,OAaAs8D,MAAA75D,UAAAmxE,eAAA,WACA,IAIApkD,SADAxvB,KAAAwxE,SACAhiD,SAIA,GAFAxvB,KAAAmyE,kBAEA3iD,SACA,IAAA,IAAA7iB,OAAA6iB,SACAkjD,iBAVA1yE,KAUA2M,IAAA6iB,SAAA7iB,OAKA2vD,MAAA75D,UAAA0vE,gBAAA,WACAnyE,KAAA2yE,eAGArW,MAAA75D,UAAAkvE,WAAA,SAAA5nD,OACA,IAGApd,IAMA,IAAAA,OAJA3M,KAAAmyE,kBAEApoD,MAAAA,OAAAwoD,SAAAvyE,KAAAwxE,SAAAxxE,KAAA8zE,OAGAjjC,YAAA9mB,MAAApd,QAVA3M,KAWA4yE,OAAAjmE,KAAAod,MAAApd,MAIA,IAAAonE,SAAA/zE,KAAAwxE,SAAAhiD,SAAAxvB,KAAAwxE,SAAA9D,SACA,IAAA/gE,OAhBA3M,KAgBA4yE,OACAjmE,OAAAod,OAAAopD,MAAAY,QAAApnE,OAjBA3M,KAkBA2M,KAlBA3M,KAkBA4yE,OAAAjmE,OAKA2vD,MAAA75D,UAAAmvE,YAAA,WACA,IAAA/R,OAAA7/D,KAIAinB,OADAjnB,KAAAwxE,SACAvqD,OAEAA,QAEAA,OAAAs7B,QAAA,SAAA17B,OAEA,GAAAjmB,OAAAimB,MAAA,WAKAisD,cAAAjT,OAAAh5C,YAJA,IAAA,IAAAla,OAAAka,MACAisD,cAAAjT,OAAAh5C,MAAAla,KAAAA,QAUA2vD,MAAA75D,UAAAyvE,cAAA,WACAlyE,KAAAkzE,QAAA3wB,QAAA,SAAA/Z,QAAA,OAAAA,WACAxoC,KAAAkzE,YAGA5W,MAAA75D,UAAAovE,cAAA,WACA,IAAAhS,OAAA7/D,KAGAwiE,IAAAxiE,KAAAwxE,SACAtkE,MAAAs1D,IAAAt1D,MACA6c,MAAAy4C,IAAAz4C,MACA/c,GAAAw1D,IAAAx1D,IACAhN,KAAAgyE,WAAAjoD,OAAA7c,QAIAA,MAAAtI,QAAAsI,OAAAA,MAAA9M,OAAAqM,KAAAsd,OAAAzmB,IAAA,SAAAqJ,KAAA,OAAA8vD,UAAA9vD,OAEA3M,KAAAgyE,UAAA,IAAAgC,iBAAA,WAEA,IAAA9E,QAAAqD,SAAA1S,OAAA2R,SAAA3R,OAAAiU,OACA5mE,MAAAyjC,KAAA,SAAAhkC,KAAA,OAAAkkC,YAAAq+B,QAAAviE,OAAAuiE,QAAAviE,OAAAkzD,OAAA+S,OAAAjmE,QACAkzD,OAAAoU,WAKAj0E,KAAAgyE,UAAAkC,QAAAlnE,IAAAvE,YAAA,EAAA0rE,gBAAAjnE,MAAA3M,QAAAP,KAAA8zE,MAAA,QAAA9zE,KAAA,YA2SAo0E,CAAA9X,OA/3BA,SAAAA,OAEA,IAAAqU,KAAArU,MAAAx7C,KAEAuzD,cAEA/X,MAAA4U,UAAA,SAAA9sE,KAAAD,SAEA,IAAAA,QAMA,OAJAO,cAAA2vE,WAAAjwE,SACAiwE,WAAAjwE,MAAAk4D,MAAAp4D,OAAAmwE,WAAAjwE,QAGAiwE,WAAAjwE,MAIAk4D,MAAAl4D,MAAA,SAAA9E,QAAA4vE,SAEA,IADA,IAAAttE,EAAA6B,UAAAjB,OAAA8xE,UAAA3vE,MAAA/C,GACAA,KAAA0yE,UAAA1yE,GAAA6B,UAAA7B,GAGA,IAAAsvE,UAAA5U,MAAA4U,UAAA9sE,MAEA,OAAAM,cAAApF,SACA,IAAA4xE,WAAApwD,KAAAxhB,UAGA4xE,UAAA/sE,QAAAowE,WACA,IAAArD,WAAApwD,QAAAvgB,OAAA+zE,aAGAh1E,SAAAA,QAAA8B,SAAAiB,KAAA/C,SAAAqoE,GAAAroE,SAAAgE,IAAAjB,MAAA,GAEA,SAAAA,KAAA/C,SAEA,IAAAk1E,SAAAlY,MAAAmY,aAAAn1E,QAAA8E,MAEA,GAAAowE,SAAA,CACA,IAAAtF,QACA,OAAAsF,SAEAA,SAAAE,WAIA,OAAA,IAAAxD,WAAAlkE,GAAA1N,QAAAwhB,KAAAouD,YAMA,IAAAp2C,IAAAp0B,cAAAP,SAAA06D,UAAA16D,SAAAA,QAAAA,QAQA,GANA20B,IAAA10B,KAAAA,KAEA00B,IAAA67C,SACA77C,IAAA67C,QAAArY,MAAAxjC,IAAA10B,MAGAk4D,MAAAsY,eAAA97C,IAAAy7C,WAAA,CACA,IAAAzoE,GAAA2wD,UAAAr4D,MACAonE,QAAAG,KAAA,WAAA,OAAArP,MAAAl4D,MAAA,OAAA0H,GAAA,cAAAA,GAAA,OAGA,OAAAuoE,WAAAjwE,MAAAM,cAAAP,SAAA20B,IAAA30B,SAGAm4D,MAAAuY,cAAA,SAAAv1E,SAAA,OAAAA,SAAAA,QAAAqxE,WACArU,MAAAmY,aAAA,SAAAn1E,QAAA8E,MAAA,OAAAk4D,MAAAuY,cAAAv1E,SAAA8E,OAEAk4D,MAAAwY,QAAA,SAAAnzE,MAEA,GAAAA,KAAAgvE,MACA,IAAA,IAAAvsE,QAAAzC,KAAAgvE,MACAhvE,KAAAgvE,MAAAvsE,MAAAqtE,iBAIA,IAAA,IAAA7vE,EAAA,EAAAA,EAAAD,KAAA8G,WAAAjG,OAAAZ,IAAA,CAEA,IAAAmzE,OAAAxE,iBAAA5uE,KAAA8G,WAAA7G,GAAAwC,MAEA2wE,QAAAA,UAAAV,YACA/X,MAAAyY,QAAApzE,QAOA26D,MAAA2V,WAAA,SAAAtwE,MACA,IAAA,IAAAyC,QAAAzC,KAAAgvE,MACAhvE,KAAAgvE,MAAAvsE,MAAA2tE,qBAkyBAiD,CAAA1Y,OA7GA,SAAAA,OAEA,IAAAqU,KAAArU,MAAAx7C,KAEAw7C,MAAA75D,UAAAoxE,OAAA,SAAA7mE,IAEA,IACA5I,KADApE,KAAAwxE,SACAptE,KAEA4I,GAAA2jE,QACA3jE,GAAA2jE,UAGA3jE,GAAA2jE,MAAAvsE,QAIA4I,GAAA2jE,MAAAvsE,MAAApE,KAEAA,KAAA6yE,IAAA7yE,KAAAwxE,SAAAxkE,GAAAhN,KAAAwxE,SAAAxkE,IAAAA,GAEAhN,KAAAuxE,UAAA,QAEAhP,OAAAv1D,GAAArQ,WACAqD,KAAAyxE,mBAIAnV,MAAA75D,UAAAwyE,MAAA,SAAA9pE,GACAnL,KAAA6wE,YAAA1lE,IAGAmxD,MAAA75D,UAAAwxE,OAAA,WACAj0E,KAAA+xE,oBACA/xE,KAAAyxE,kBAGAnV,MAAA75D,UAAAiyE,SAAA,SAAAQ,eACA,IAAAA,WAAAA,UAAA,GAGA,IAAA1S,IAAAxiE,KAAAwxE,SACAxkE,GAAAw1D,IAAAx1D,GACA5I,KAAAo+D,IAAAp+D,KAEA4I,IACAhN,KAAA+xE,oBAGA/xE,KAAAuxE,UAAA,WAEAvkE,IAAAA,GAAA2jE,eAIA3jE,GAAA2jE,MAAAvsE,MAEAhE,OAAAqM,KAAAO,GAAA2jE,OAAAnuE,eACAwK,GAAA2jE,MAGAuE,UACAh5D,OAAAlc,KAAA6yE,OAIAvW,MAAA75D,UAAA0yE,QAAA,SAAAjE,UAAA5xE,QAAA4vE,SACA,OAAA5S,MAAA4U,WAAA5xE,QAAA4vE,UAGA5S,MAAA75D,UAAA2yE,QAAA9Y,MAAAmR,OACAnR,MAAA75D,UAAA4yE,cAAA/Y,MAAAmY,aAEA,IAAA7qC,SACAxpC,OAAAk1E,iBAAAhZ,MAAA75D,WAEA8yE,WAAAn1E,OAAAo1E,yBAAAlZ,MAAA,aAEAwX,OAEAjxE,IAAA,WACA,IACAuB,KADApE,KAAAwxE,SACAptE,KAMA,OAJAwlC,MAAAxlC,QACAwlC,MAAAxlC,MAAAk4D,MAAA1nC,OAAA6nC,UAAAr4D,OAGAwlC,MAAAxlC,UAsBAqxE,CAAAnZ,OAEA,IAAAoZ,OAEArI,UAAA,WACA3xC,SAAA17B,KAAA6yE,IAAA7yE,KAAA8zE,SAKA6B,WAEA5rD,OACAs7C,IAAA3G,QACA5nC,UAAA,OACAzB,SAAAgpC,OACAiJ,OAAAj9D,OACAw8D,WAAAx8D,OACAurE,OAAAlX,SAGA59C,MACAukD,KAAA,EACAvuC,YAAA,GACAzB,SAAA,IACAiyC,QAAA,EACAT,WAAA,SACA+O,QAAA,EAEAC,WACAp9C,SAAA,GACA7B,OAAA,GACAk/C,WAAA,GACAC,cAAA,GACAC,UAAA,GACAC,aAAA,IAGAC,WACAz9C,SAAA,SACA7B,OAAA,EACAk/C,WAAA,EACAC,cAAA,EACAC,UAAA,EACAC,aAAA,IAKAzmD,UAEA2mD,aAAA,SAAA3T,KAGA,QAFAA,IAAA1rC,UAEA,IAGAs/C,cAAA,SAAA5T,KACA,IAAA1rC,UAAA0rC,IAAA1rC,UAEA,OAAA92B,KAAAm2E,eAAA,IAAAr/C,UAAA,KAKA42C,SAEA2I,cAAA,SAAA58D,QAAAmK,KAAA0yD,YACA,IAAAzW,OAAA7/D,KAEA,OAAA,IAAAujE,UAAA,SAAAzoD,SAIA,IAIA8a,EAJA1V,IAAA,SAAAzG,SAAA,OAAA8pD,UAAArjD,IAAAzG,QAAAnW,IAAA,SAAA0J,IAAA,OAAA6yD,OAAA0W,eAAAvpE,GAAA4W,KAAA0yD,gBACAE,SAHA/8D,QAAAglD,QAAAhlD,UAGA9K,OAAA,SAAA3B,IAAA,OAAA6yD,OAAA4W,UAAAzpE,MACA0pE,UAAAj9D,QAAA9K,OAAA,SAAA3B,IAAA,OAAAwwD,SAAAgZ,QAAAxpE,MAIA,GAAA6yD,OAAA+V,QAAA/kC,YAAAylC,aAAAzlC,YAAAjtB,OAAAi8C,OAAAsW,gBAAA18D,QAAAjX,OAAA,GAIA,CAEA,IAAAkhB,KAAA/mB,SAAA+mB,KACAizD,OAAAjzD,KAAA+R,UACAzoB,GAAAwpE,QAAA,GACAvgD,WAAAc,UAAAd,WAAAjpB,KAAAmvB,SAAAnvB,GAAA,uBACAk6D,WAAAjxC,WAAAjpB,KAAA,QAAAA,GAAAwV,MAAAoU,OAEAhB,EAAA1V,IAAAs2D,SAEAvgD,aACAL,EAAAA,EAAAxa,KAAA,WACA,IAAAwa,EAAA1V,IAAAw2D,WAEA,OADAhzD,KAAA+R,UAAAkhD,OACA/gD,UAhBAA,EAAA1V,IAAAw2D,UAAAn2E,OAAAi2E,UAsBA5gD,EAAAxa,KAAAN,QAAA3V,SAKAyxE,UAAA,SAAAn9D,QAAAmK,MACA,IAAAi8C,OAAA7/D,KAEA,OAAA,IAAAujE,UAAA,SAAAzoD,SAAA,OAAAyoD,UAAArjD,IAAAu+C,QAAAhlD,SAAAnW,IAAA,SAAA0J,IAAA,OAAA6yD,OAAA0W,eAAAvpE,GAAA4W,MAAA,MAAAxI,KAAAN,QAAA3V,SAGAsxE,UAAA,SAAAzpE,IACA,IAAA4Y,MAAA64C,QAAAzxD,IAAAhN,KAAA6yE,KACA,OAAA7yE,KAAAqlE,IACAlpC,SAAAvW,MAAA5lB,KAAAqlE,IAAA/+D,MAAA,KAAA,KACAy5D,QAAAn6C,MAAA,WAGAixD,WAAA,SAAA7pE,KACA,IAAAhN,KAAAqlE,KACAj1D,KAAApD,GAAA,eAAAhN,KAAAy2E,UAAAzpE,MAIAupE,eAAA,SAAAvpE,GAAA4W,KAAA0yD,YACA,IAAAzW,OAAA7/D,KAWA,GARA4jB,KAAAs6C,UAAAt6C,MACAA,KACAmT,UAAAd,WAAAjpB,IACAmvB,SAAAnvB,GAAA,sBACAk6D,WAAAjxC,WAAAjpB,IACA,QAAAA,GAAAwV,MAAAoU,QACA52B,KAAAy2E,UAAAzpE,KAEA0c,QAAA1c,GAAA,UAAA4W,KAAA,OAAA,SAAA5jB,OACA,OAAAujE,UAAAxoD,SAGA,IAAAG,UAAA,IAAAo7D,YAAAt2E,KAAAm2E,aAEAn2E,KAAAo2E,cACAp2E,KAAA82E,cACA92E,KAAA+2E,iBAHA/2E,KAAAg3E,kBAIAhqE,GAAA4W,MAIA,OAFA8F,QAAA1c,GAAA4W,KAAA,OAAA,QAAA5jB,OAEAkb,QAAAE,KAAA,WACAsO,QAAA1c,GAAA4W,KAAA,QAAA,UAAAi8C,SACAA,OAAAuV,QAAApoE,OAIAiqE,QAAA,SAAAjqE,GAAAwpE,SAMA,IAAAU,QAJAlqE,KAKAhN,KAAAqlE,KACA6R,QAAA1Z,SAAAx9D,KAAAqlE,IAAA,MAAA3G,QAAA8X,WAAAr6C,SAAAnvB,GAAAhN,KAAAqlE,OACAtpC,YAAA/uB,GAAAhN,KAAAqlE,IAAA7H,SAAAx9D,KAAAqlE,IAAA,UAAAzmE,EAAA43E,UAEAU,QAAAxY,QAAA8X,WAAAzW,QAAA/yD,GAAA,YACAoD,KAAApD,GAAA,SAAAwpE,QAAA,KAAA,IAGA7O,GAAA,cAAA36D,IAAA2jC,KAAA,SAAA3jC,IAAA,OAAAo1D,UAAAp1D,MAAAA,GAAA0G,UAAA,KAEA1T,KAAA62E,WAAA7pE,IACAkqE,SAAAl3E,KAAAo1E,QAAApoE,MAGAgqE,iBAAA,SAAAhqE,GAAA4W,MAEA,OADA5jB,KAAAi3E,QAAAjqE,GAAA4W,MACA2/C,UAAAzoD,WAGAg8D,cAAA,SAAA9pE,GAAA4W,MACA,IAAAi8C,OAAA7/D,KAGAi2B,WAAAixC,WAAAjxC,WAAAjpB,IACAmqE,MAAAnqE,GAAA03D,cAAApG,QAAA57C,IAAA1V,GAAAm3B,kBAAA,cAAAm6B,QAAA57C,IAAA1V,GAAAoqE,iBAAA,iBAAA,EACAC,cAAAjV,UAAAp1D,IAAA4pB,OAAA5pB,KAAAipB,WAAA,EAAAkhD,OAAA,EAEAjQ,WAAAC,OAAAn6D,IAEAhN,KAAAy2E,UAAAzpE,KACAhN,KAAAi3E,QAAAjqE,IAAA,GAGA4pB,OAAA5pB,GAAA,IAGAw+D,QAAAS,QAEA,IAAAqL,UAAA1gD,OAAA5pB,KAAAipB,WAAA,EAAAkhD,OAGA,OAFAvgD,OAAA5pB,GAAAqqE,gBAEAzzD,KACAsjD,WAAAhpE,MAAA8O,GAAA6xD,UAAA7+D,KAAA61E,WAAAp9C,SAAA,SAAA7B,OAAA0gD,YAAAxyE,KAAAksB,MAAAhxB,KAAAq1B,UAAA,EAAAgiD,cAAAC,YAAAt3E,KAAA6mE,YACAK,WAAAhpE,MAAA8O,GAAAhN,KAAAk2E,UAAApxE,KAAAksB,MAAAhxB,KAAAq1B,UAAAgiD,cAAAC,YAAAt3E,KAAA6mE,YAAAzrD,KAAA,WAAA,OAAAykD,OAAAoX,QAAAjqE,IAAA,MACAoO,KAAA,WAAA,OAAAsH,IAAA1V,GAAA6yD,OAAAgW,cAIAkB,iBAAA,SAAA/pE,GAAA4W,MACA,IAAAi8C,OAAA7/D,KAKA,OAFA+2B,UAAAowC,OAAAn6D,IAEA4W,MACA5jB,KAAAi3E,QAAAjqE,IAAA,GACA+pB,UAAA0wC,GAAAz6D,GAAAhN,KAAA82B,UAAA,GAAA92B,KAAAq1B,SAAAr1B,KAAAsnE,SAGAvwC,UAAAwT,IAAAv9B,GAAAhN,KAAA82B,UAAA,IAAA92B,KAAA82B,UAAA,GAAA92B,KAAAq1B,SAAAr1B,KAAAsnE,QAAAlsD,KAAA,WAAA,OAAAykD,OAAAoX,QAAAjqE,IAAA,QAOAuqE,WAEAxJ,QAAA2H,MAAAC,WAEA5rD,OACAtQ,QAAApP,OACAw1B,OAAA,KACA23C,YAAA9Y,QACA+Y,SAAA/Y,QACA36C,OAAA1Z,OACAiQ,QAAAjQ,OACAw8D,WAAAx8D,QAGAyW,MACArH,QAAA,MACAomB,QAAA,EACA/I,YAAA,GACA0gD,aAAA,EACAC,UAAA,EACAC,QAAA,UACA3zD,OAAA,wBACAzJ,QAAA,0BACAusD,WAAA,QAGAr3C,UAEAssC,MAAA,SAAA0G,IAAAqQ,KAGA,OAAAlL,GAFAnF,IAAA/oD,QAEAo5D,OAKA5rD,SAIA7iB,KAAA,QAEAqkC,SAAA,WACA,OAAAzoC,KAAA,QAAA,IAAAA,KAAA4yE,OAAA,QAGAzlE,QAAA,SAAAhC,GACAA,EAAA0d,iBACA7oB,KAAA+jB,OAAAnK,MAAA+tD,GAAA3nE,KAAA,QAAA,IAAAA,KAAA4yE,OAAA,OAAA5yE,KAAA6yE,KAAA1nE,EAAAy4B,aAOAypC,UAAA,WAEA,IAAA,IAAArtE,KAAA6/B,OAAA,CAIA,IAAAA,OAAA7/B,KAAA87D,MAAAuC,OAAAr+D,KAAA6/B,SACAA,SAAA1D,SAAA0D,OAAA7/B,KAAA03E,UACA13E,KAAA+jB,OAAA8b,QAAA,KAIA4tC,OAAA,WACA,IAAA5N,OAAA7/D,KAGAA,KAAA87D,MAAAvZ,QAAA,SAAAv1C,IAAA,OAAA6yD,OAAAmX,iBAAA3tC,EAAAw2B,OAAAvlD,QAAAtN,IAAAmvB,SAAAnvB,GAAA6yD,OAAA6X,YAEA,IAAA73C,QAAA7/B,KAAAw3E,cAAAr7C,SAAAn8B,KAAA87D,MAAA97D,KAAA03E,UAAA13E,KAAA87D,MAAA,GACAj8B,QACA7/B,KAAA+jB,OAAA8b,QAAA,IAIA6tC,SAEA3pD,OAAA,SAAAsoD,KAAAiK,YACA,IAAAzW,OAAA7/D,KAGAuzE,SAAA/O,SAAA6H,KAAArsE,KAAA87D,OACAj8B,OAAAlxB,OAAA3O,KAAA87D,MAAA,IAAA97D,KAAA,UAEAqsE,KAAArsE,KAAA87D,MAAAyX,aAEAlH,MACA9rE,QAAAP,KAAAy3E,WAAAja,SAAA39B,OAAAwsC,OAAAxsC,YACA0iB,QAAA,SAAAv1C,IAEA,IAAA2qE,OAAA3qE,KAAAq/D,KACA5vD,MAAAk7D,SAAAx7C,SAAAnvB,GAAA6yD,OAAA6X,SAEA,GAAAj7D,QAAAk7D,QAAA9X,OAAA2X,eAAA33C,OAAAr9B,OAAA,GAAA,CAIAu5B,YAAA/uB,GAAA6yD,OAAA6X,QAAAj7D,OAEA,IAAAnC,QAAAtN,GAAA4qE,SAAA5qE,GAAA4qE,SAAAzzC,kBAAAkF,EAAAw2B,OAAAvlD,QAAAtN,IAEAA,GAAA4qE,WACA5qE,GAAA4qE,SAAA1zC,QAAA5pB,QAAA,SACAlK,KAAApD,GAAA4qE,SAAA,SAAAn7D,MAAA,GAAA,OAGAojD,OAAAmX,iBAAA18D,SAAA,GACAulD,OAAAwW,cAAArpE,GAAA4qE,SAAAn7D,MAAA65D,YAAAl7D,KAAA,WACA+gB,SAAAnvB,GAAA6yD,OAAA6X,WAAAj7D,QAEAA,OACAojD,OAAAmX,iBAAA18D,SAAA,GAGAtN,GAAA4qE,SAAA,KACAtzC,OAAAhqB,kBAWAu9D,OAEA3qE,OAAA,EAEA6gE,QAAA2H,MAAAC,WAEA/iE,KAAA,YAEAmX,OACA+tD,MAAAztE,QAGAyW,MACAgW,YAAA,GACAihD,SAAA,kBACA1iD,SAAA,IACA6gD,UAAArX,QAAAvrC,QAAA,GAAAqiD,UAAA70D,KAAAo1D,YAGAjvD,SAIA7iB,KAAA,QAEAqkC,SAAA,WACA,OAAAzoC,KAAA+3E,UAGA5qE,QAAA,SAAAhC,GACAA,EAAA0d,iBACA7oB,KAAA83E,WAOApK,SAEAoK,MAAA,WACA,IAAAjY,OAAA7/D,KAEAA,KAAAq2E,cAAAr2E,KAAA6yE,KAAAz3D,KAAA,WAAA,OAAAykD,OAAA6U,UAAA,QAOA,SAAAsD,KAAA1b,OAEApjD,MAAA,WAEA,IAAAy9D,OAAA,EACAsB,QAAA,EAwBA,GAtBAxxD,GAAA5oB,OAAA,cAAA,SAAAsN,GAAA,OAAAmxD,MAAAmR,OAAA,KAAAtiE,KACAsb,GAAA5oB,OAAA,SAAA,SAAAsN,GACAA,EAAAH,IAAA2rE,QAAA94E,OAAA8pC,YAAA,OAAA,KACAx8B,EAAAw8B,YAAAgvC,OAAA94E,OAAA8pC,YACA20B,MAAAmR,OAAA,KAAAtiE,KACA4nE,SAAA,EAAAmF,SAAA,IAEAzxD,GAAA9pB,SAAA,iBAAA,SAAA6lE,KACA,IAAAh+D,OAAAg+D,IAAAh+D,QAEAke,IAAAle,OAAA,kBAAA,IAAAgH,MAAA,wBAEAysE,UACAv1D,IAAA/lB,SAAA+mB,KAAA,YAAA,UACAtF,WAAA,aACA65D,SACAv1D,IAAA/lB,SAAA+mB,KAAA,YAAA,KAEAk7C,KAAAl8C,IAAAle,OAAA,sBAAA,QAEA,GAEAumE,SAAA,CAIA,IAAA1F,IAAA,WAEA5+C,GAAA9pB,SAAA,MAAA,SAAA6lE,KACA,IAAAh+D,OAAAg+D,IAAAh+D,OAEA,OAAAmjE,GAAA,IAAAtC,KAAA9iB,QAAA,SAAAv1C,IAAA,OAAAu1D,OAAA/9D,OAAAwI,KAAA3N,YAAA2N,GAAAq4D,SAKAjlE,OAAAugB,eAAA27C,MAAA,iBAEAz7C,IAAA,SAAA5hB,UACAwnB,GAAA9pB,SAAA,MAAAsC,SAAA,SAAAujE,KAGA,OAAA9mC,SAFA8mC,IAAA5+B,QAEAyhC,UAMA/I,MAAA6b,cAAA,6DAMA,IAwNAt4C,OAiaAu4C,WAznBAC,OAEAzlE,KAAA,WAEAmX,OACAuuD,SAAA5Z,QACA6Z,SAAA7Z,SAGA59C,MACAw3D,UAAA,EACAC,UAAA,GAGA/oD,UAEAgpD,OAAA,SAAAhW,KAGA,MAAA,WAFAA,IAAA+V,WAOAlL,UAAA,WAEArtE,KAAAw4E,SAAAzY,QAAA//D,KAAA6yE,IAAA,aACA7yE,KAAA6yE,IAAA4F,QAAA,SAKAv/D,MAAA,WAEAlZ,KAAA04E,OAAA,IAAAvK,OAAAnuE,KAAA6yE,KAEA7yE,KAAAs4E,UACAt4E,KAAA04E,OAAAnJ,QAKA9B,SAIA9B,KAAA,SAAA1hE,EAAAu4D,KACA,IAAA/jE,KAAA+jE,IAAA/jE,KAGA,SAAAuB,KAAA04E,UAAA,WAAAj6E,MAAA,WAAAA,MAAAuB,KAAAw4E,WAGAj0C,QAAA69B,UAAApiE,KAAA6yE,MAAA,WAAAnwD,IAAA1iB,KAAA6yE,IAAA,cACA2F,OAAAx4E,KAAAw4E,QAAA5O,SAAA5pE,KAAA6yE,OAIA/G,MAAA,SAAAtJ,KACA,IAAAj+B,QAAAi+B,IAAAj+B,QACAi0C,OAAAhW,IAAAgW,QAGAj0C,SAAAvkC,KAAAw4E,SAAAA,OACAx4E,KAAA04E,OAAApJ,UACA,IAAAtvE,KAAAu4E,UAAAv4E,KAAAw4E,QAAAA,SACAx4E,KAAA04E,OAAArJ,QAKApoD,QAAA,OAAA,SAAA,aAQA0xD,OAEA5K,QAAA2H,MAAA2C,OAEAtuD,OACA0F,MAAA4uC,OACAznC,OAAAynC,QAGAv9C,MACAw3D,UAAA,GAGA7K,QAEA3B,MAAA,WAEA,IAAA9+D,GAAAhN,KAAA6yE,IAEA,GAAAzQ,UAAAp1D,IAAA,CAIA,IAAAw1D,IAAAx1D,GAAAjL,WACA62E,UAAApW,IAAAh+B,aACAq0C,SAAArW,IAAA1xC,YAEApO,IACAA,IAAA1V,IAAAyiB,MAAA,GAAAmH,OAAA,KACA2oC,WAAAO,OAEArwC,MAAAzvB,KAAAyvB,OAAAziB,GAAA8rE,YACAliD,OAAA52B,KAAA42B,QAAA5pB,GAAA+rE,eAGAtpD,MAAAopD,UAAAA,SAAA,EAAA,EAAA,GACAjiD,OAAAgiD,WAAAA,UAAA,EAAA,EAAA,QAOA3xD,QAAA,OAAA,WAIAA,QAEA+xD,eAAA,WACAh5E,KAAAi1E,WAOAgE,UAEAlvD,OACAuL,IAAAjrB,OACA08B,OAAA,KACAmhC,KAAAxJ,QACAwa,OAAA7uE,QAGAyW,MACAwU,IAAA,WAAAq1C,MAAA,QAAA,QACAzC,MAAA,EACAnhC,QAAA,EACAmyC,OAAA,IAGA1pD,UAEA8F,IAAA,SAAAktC,KACA,IAAAltC,IAAAktC,IAAAltC,IAEA,OAAAA,KAAAkoC,SAAAloC,IAAA,KAAA,GAAA,YAAAhvB,MAAA,MAGA0E,IAAA,WACA,OAAAhL,KAAAs1B,IAAA,IAGAszC,MAAA,WACA,OAAA5oE,KAAAs1B,IAAA,KAKAo4C,SAEA7F,WAAA,SAAAvoE,QAAAkF,OAAA2jE,UAKA,IAAAxmE,KAHAyjE,cAAA9lE,QAAAU,KAAA,OAAA,sCACA0iB,IAAApjB,SAAA+O,IAAA,GAAAmmB,KAAA,KAGA,IACA2kD,UADAn5E,KACA+mC,OAEAoyC,UAAApwC,UAAAowC,WACAA,WACAx3E,KAAA0nC,EAAA8vC,YACApyC,OAAAplC,MAAA,MAAAy3E,KAAA,OAAA,OAAAryC,OAAAviC,QAAA,MAAA40E,KAAA,QAAA,UACA,EAEA,IAAAA,KAAAp5E,KAAAq5E,UACA/F,MAAAzL,WACAvoE,QACAkF,OACA,MAAA40E,KAAAzP,aAAA3pE,KAAAgL,KAAA,IAAAhL,KAAA,MAAAA,KAAA,MAAA,IAAA2pE,aAAA3pE,KAAAgL,KACA,MAAAouE,KAAAp5E,KAAA,IAAA,IAAAA,KAAA,MAAAA,KAAA,MAAA,IAAAA,KAAA,IACA,MAAAo5E,KAAA,IAAA,SAAAp5E,KAAAgL,KAAAmuE,UAAAA,WAAA,KAAA,QAAAn5E,KAAAgL,KAAAmuE,UAAAA,WACA,KACAn5E,KAAAkoE,KACAC,UACA3jE,OACAm2C,EAAA24B,MAAA34B,EACAR,EAAAm5B,MAAAn5B,EAEAn6C,KAAAgL,IAAA,MAAAouE,KAAAz+B,EAAAR,EACAn6C,KAAA4oE,MAAA,MAAAwQ,KAAAj/B,EAAAQ,EAEA5e,YAAAz8B,QAAAU,KAAA,OAAA,IAAAA,KAAA,IAAA,IAAAA,KAAA,OAAA,IAAAA,KAAA+mC,SAIAsyC,QAAA,WACA,MAAA,QAAAr5E,KAAAgL,KAAA,WAAAhL,KAAAgL,IAAA,IAAA,OASAsuE,MAEAvL,QAAAkL,SAAAtD,WAEA/iE,KAAA,MAEAmX,OACAwvD,KAAA,OACAx1D,OAAA26C,QACAyJ,SAAAzJ,QACA8a,cAAA9a,QACA+a,UAAApb,OACAqb,UAAArb,OACAsb,QAAAtvE,QAGAyW,MACAy4D,MAAA,QAAA,SACAx1D,OAAA,MACAokD,SAAAtqE,OACA27E,eAAA,EACAC,UAAA,EACAC,UAAA,IACAC,SAAA,EACAC,UAAA,IACA9iD,WAAA,qBACAuuC,IAAA,WAGA71C,UAEA24C,SAAA,SAAA3F,IAAAqQ,KAGA,OAAAzS,MAFAoC,IAAA2F,SAEA0K,MAGA8G,QAAA,SAAAnX,KAGA,OAFAA,IAAAmX,SAEA,MAAA35E,KAAAwxE,SAAA,MAGA0H,OAAA,WACA,OAAAl5E,KAAA25E,UAKAt3E,KAAA,WACArC,KAAA65E,QAAA,IAAAvN,cAGAe,UAAA,WAEA3xC,SAAA17B,KAAA6yE,IAAA7yE,KAAA25E,SAEA,IACA51D,OADA/jB,KAAA4yE,OACA7uD,OACA/jB,KAAA+jB,OAAAA,QAAA/jB,KAAAm1E,QAAA,SAAA/U,MAAAr8C,OAAA/jB,KAAA6yE,MACAruE,OAAAxE,KAAA6yE,IACA0G,KAAAv5E,KAAAu5E,OAGAv5E,KAAA62E,WAAA72E,KAAA6yE,MAIA5rD,SAKA7iB,KAAA,QAEAqkC,SAAA,WACA,MAAA,IAAAzoC,KAAA,QAAA,UAGAmN,QAAA,SAAAhC,GACAA,EAAA0d,iBACA7oB,KAAA8jB,MAAA,MAOA1f,KAAA,QAEAqkC,SAAA,WACA,MAAA,gBAGAt7B,QAAA,SAAAhC,GAEA,IAAAA,EAAA8e,iBAAA,CAIA,IAAAne,GAAAX,EAAA3G,OAAA+O,KAEAzH,IACAX,EAAA0d,iBAGA/c,IAAAy2D,OAAAz2D,GAAA9L,KAAA6yE,MACA7yE,KAAA8jB,MAAA,OAQA1f,KAAA,eAEA+I,QAAA,WACAnN,KAAA8jB,MAAA,MAOA1f,KAAA,SAEA2U,MAAA,EAEA5L,QAAA,SAAAhC,EAAA4Y,QAEA5Y,EAAA0d,iBAEA7oB,KAAAy2E,YACAz2E,KAAA8jB,MAAA,GAEA9jB,KAAA4jB,KAAAG,QAAA,MAQA3f,KAAAknE,aAEA38D,OAAA,WACA,OAAA6uD,SAAAx9D,KAAAu5E,KAAA,UAGApsE,QAAA,SAAAhC,GAEAmlE,QAAAnlE,KAIA00B,QACAA,SAAA7/B,MACA6/B,OAAA9b,QACAy5C,SAAA39B,OAAA9b,OAAAw1D,KAAA,WACAhX,OAAAp3D,EAAA3G,OAAAq7B,OAAA9b,OAAA8uD,OACAxT,aAAA1kB,EAAAxvC,EAAA4f,MAAAovB,EAAAhvC,EAAA6f,OAAA+b,OAAAlH,OAAAgzC,OAEAhzC,OAAA/b,MAAA,GAGA3Y,EAAA0d,iBACA7oB,KAAA4jB,KAAA5jB,KAAA+jB,YAOA3f,KAAA,aAEA+I,QAAA,SAAAhC,EAAA4Y,QAEAA,SAAAy5C,SAAAz5C,OAAAvf,OAAAxE,KAAA6yE,OAIA1nE,EAAA0d,iBACA7oB,KAAA4jB,KAAAG,QAAA/jB,KAAA+jB,YAOA3f,KAAA,cAAAmnE,aAEAp+D,QAAA,SAAAhC,EAAA4Y,QAEAusD,QAAAnlE,IAAA4Y,SAAAy5C,SAAAz5C,OAAAvf,OAAAxE,KAAA6yE,OAIA1nE,EAAA0d,iBAEA7oB,KAAA+jB,QAAAy5C,SAAAx9D,KAAA+jB,OAAAw1D,KAAA,UACAv5E,KAAA8jB,WAQA1f,KAAA,aAEA2U,MAAA,EAEA5L,QAAA,WACAnN,KAAA85E,cACA/iD,UAAAowC,OAAAnnE,KAAA6yE,KACA7yE,KAAA4wB,cAOAxsB,KAAA,OAEA2U,MAAA,EAEA5L,QAAA,WACAnN,KAAA65E,QAAAx3E,OACArC,KAAA+jB,SACA2X,SAAA17B,KAAA+jB,OAAA8uD,IAAA7yE,KAAAqlE,KACAj1D,KAAApQ,KAAA+jB,OAAA8uD,IAAA,gBAAA,SA0LA,WAEA,GAAAuF,WACA,OAGAA,YAAA,EACA3xD,GAAA9pB,SAAA,QAAA,SAAA6lE,KACA,IAGAjpD,KAHA/U,OAAAg+D,IAAAh+D,OACAylB,iBAAAu4C,IAAAv4C,iBAIA,IAAAA,iBAIA,KAAA4V,QAAAA,SAAAtmB,OAAAgpD,OAAA/9D,OAAAq7B,OAAAgzC,QAAAhzC,OAAA9b,SAAAw+C,OAAA/9D,OAAAq7B,OAAA9b,OAAA8uD,OACAt5D,KAAAsmB,OACAA,OAAA/b,MAAA,KA3MAgvD,MAOA1uE,KAAA,aAEA2U,MAAA,EAEA5L,QAAA,WACAnN,KAAA85E,iBAOA11E,KAAA,OAEA+I,QAAA,SAAAq1D,KACA,IAAAh+D,OAAAg+D,IAAAh+D,OAGAxE,KAAA6yE,MAAAruE,QAKAq7B,OAAA7/B,KAAA+5E,WAAA,KAAAl6C,OAEA7/B,KAAA+jB,SACA1kB,YAAAW,KAAA+jB,OAAA8uD,IAAA7yE,KAAAqlE,KACAj1D,KAAApQ,KAAA+jB,OAAA8uD,IAAA,gBAAA,SACA7yE,KAAA+jB,OAAA8uD,IAAAlpD,OACAg+C,GAAA,YAAA3nE,KAAA+jB,OAAA8uD,KAAAtwB,QAAA,SAAAv1C,IAAA,OAAAA,GAAA2c,UAGA3pB,KAAA65E,QAAA1S,UAbAtnC,OAAA,OAAAA,QAAA0iC,OAAA/9D,OAAAxE,KAAA6yE,MAAA7yE,KAAAy2E,YAAAz2E,KAAA6/B,UAoBA4tC,QAEA3B,MAAA,WAEA9rE,KAAAy2E,cAAA1/C,UAAAd,WAAAj2B,KAAA6yE,MACA7yE,KAAA4wB,YAKA3J,QAAA,WAIAymD,SAEA9pD,KAAA,SAAAG,OAAAkW,OACA,IAAA4lC,OAAA7/D,UACA,IAAAi6B,QAAAA,OAAA,GAGA,IAAArW,KAAA,WAAA,OAAAi8C,OAAA4W,aAAA5W,OAAAwW,cAAAxW,OAAAgT,KAAA,IACAmH,QAAA,WAMA,GAJAna,OAAA97C,OAAAA,QAAA87C,OAAA97C,OAEA87C,OAAAia,eAEAja,OAAAka,WAEA,GAAA9/C,OAAA4F,QAAAA,SAAAggC,QAAAhgC,OAAAo6C,WACApa,OAAAqa,UAAA97D,WAAAyhD,OAAAj8C,KAAA,QADA,CAGA,GAAAi8C,OAAAsa,WAAAt6C,QAAA,CAEA,IAAAA,OAAAu6C,UAGA,OAFAv6C,OAAA/b,MAAA,QAKA,GAAA+b,SAAAggC,OAAAwa,UAAAx6C,UAAAggC,OAAAsa,WAAAt6C,QAGA,IADA,IAAAtmB,KACAsmB,QAAAA,SAAAtmB,OAAAsmD,OAAAwa,UAAAx6C,SACAtmB,KAAAsmB,OACAA,OAAA/b,MAAA,GAKAmW,OAAA4lC,OAAA4Z,UACA5Z,OAAAqa,UAAA97D,WAAAwF,KAAAi8C,OAAA4Z,WAEA71D,OAGAic,OAAAggC,SAGA97C,QAAA/jB,KAAA+jB,QAAAA,OAAA8uD,MAAA7yE,KAAA+jB,OAAA8uD,KAEA72D,KAAAhc,KAAA6yE,IAAA,OAAAmH,SACAh6E,KAAA8jB,MAAA,IAGAk2D,WAIAl2D,KAAA,SAAAmW,OACA,IAAA4lC,OAAA7/D,UACA,IAAAi6B,QAAAA,OAAA,GAGA,IAAAnW,KAAA,WAAA,OAAA+7C,OAAA+W,UAAA/W,OAAAgT,KAAA,IAEA7yE,KAAA85E,cAEA95E,KAAAi6E,WAAAj6E,KAAA65E,QAAAnN,QAAA1sE,KAAA6yE,KAEA54C,OAAAj6B,KAAAi6E,WACAj6E,KAAAo6E,UAAAh8D,WAAApe,KAAA8jB,KAAA9jB,KAAA45E,WACA3/C,OAAAj6B,KAAA05E,UACA15E,KAAAo6E,UAAAh8D,WAAA0F,KAAA9jB,KAAA05E,WAEA51D,QAIAg2D,YAAA,WACA1/C,aAAAp6B,KAAAk6E,WACA9/C,aAAAp6B,KAAAo6E,WACAp6E,KAAAk6E,UAAA,KACAl6E,KAAAo6E,UAAA,KACAp6E,KAAAi6E,YAAA,GAGAF,SAAA,WACA,OAAAl6C,SAAA7/B,MAGAq6E,UAAA,SAAAC,MACA,OAAAA,MAAAA,OAAAt6E,MAAAuiE,OAAAviE,KAAA6yE,IAAAyH,KAAAzH,MAGAsH,WAAA,SAAAG,MACA,OAAAA,MAAAA,OAAAt6E,MAAAuiE,OAAA+X,KAAAzH,IAAA7yE,KAAA6yE,MAGAjiD,SAAA,WAEAw0C,cAAAplE,KAAA6yE,IAAA7yE,KAAA,QAAA,qBACA0iB,IAAA1iB,KAAA6yE,KAAAxkE,IAAA,GAAAmmB,KAAA,GAAA/R,QAAA,UACAsZ,YAAA/7B,KAAA6yE,IAAA7yE,KAAA,QAAA,YAAAA,KAAAw5E,eAEA,IAAArR,SAAAphC,OAAA/mC,KAAAmoE,UACAoS,QAAAv6E,KAAAw5E,cAAArR,SAAAphC,OAAA/mC,KAAA+jB,OAAA8uD,KAEA,GAAA,YAAA7yE,KAAA4oE,MAAA,CACA,IAAA7nD,KAAA,MAAA/gB,KAAAq5E,UAAA,QAAA,SACA32D,IAAA1iB,KAAA6yE,IAAA9xD,KAAAw5D,QAAAx5D,YACA/gB,KAAA6yE,IAAA/hD,YAAAhsB,KAAAytB,IAAA41C,SAAA13C,MAAA8pD,QAAA/lD,KAAA+lD,QAAA9pD,MAAA03C,SAAA3zC,OACAkH,SAAA17B,KAAA6yE,IAAA7yE,KAAA,QAAA,UAGAA,KAAA6nE,WAAA7nE,KAAA6yE,IAAA7yE,KAAAw5E,cAAAx5E,KAAAmoE,SAAAnoE,KAAA+jB,OAAA8uD,IAAA7yE,KAAAmoE,UAEAzlD,IAAA1iB,KAAA6yE,IAAA,UAAA,OAkCA,IAAA2H,UAEA1M,QAAAwL,MAIAmB,YAEA1M,QAAA2H,OAEA9iE,KAAA,SAEAmX,OACAvlB,OAAAk6D,SAGA59C,MACAtc,QAAA,GAGAgrB,UAEAtgB,MAAA,SAAAjF,EAAA4oE,KACA,OAAAxpC,EAAAg5B,SAAAwQ,MAGAp2D,MAAA,WACA,OAAAzc,KAAAkP,MAAAg2D,oBAGA1gE,OAAA,SAAAg+D,IAAAqQ,KACA,IAAAruE,OAAAg+D,IAAAh+D,OAEA,OAAAA,UAAA,IAAAA,QACAxE,KAAAkP,MAAAnN,aAAA8wE,KACA7yE,KAAAkP,MAAAg2D,oBACA9E,MAAA57D,OAAAquE,QAKApF,OAAA,WAEA,IACAjpE,OADAxE,KACAwE,OACA0K,MAFAlP,KAEAkP,MAEA,GAAA1K,OAAA,CAIA,IAAA4f,OACArD,KAAAuhD,QAAA99D,QAAA,QAAA,cACA+U,KAAA/U,OAAAuc,MACA7a,MAAAgJ,MAAAwrE,OAAAxrE,MAAAwrE,MAAA,GACAxrE,MAAAwrE,MAAA,GAAAt2E,KACA2B,QAAAmJ,MAAA,YAAAkV,OAAAujD,GAAA,SAAAz4D,OAAAP,OAAA,SAAA3B,IAAA,OAAAA,GAAAiH,WAAA,IACAmQ,OAAAvT,YACA3B,MAAAhJ,MAEAqT,OAAArT,QACA1B,OAAAuc,MAAA7a,SAKA+gB,SAIA7iB,KAAA,yCAEAqkC,SAAA45B,SAEAl1D,QAAA,SAAAq1D,KACA,IAAA/jE,KAAA+jE,IAAA/jE,KACA+jE,IAAA5+B,UAEA5jC,KAAAkP,OACA6sB,YACA/7B,KAAAyc,MACA,OAAA+gD,SAAA/+D,KAAA,SAAA,QAAA,SACA++D,UAAA,UAAA,cAAA/+D,UASA2F,KAAA,SAEA+I,QAAA,WACAnN,KAAAi1E,YAUA0F,KAEAlN,QAEA9B,KAAA,SAAAuD,SAEA,IAAA0L,OAAAhR,SAAA5pE,KAAA6yE,KAEA,IAAA+H,QAAA1L,QAAAtF,WAAAgR,OACA,OAAA,EAGA1L,QAAAtF,SAAAgR,QAGA9O,MAAA,WACA9rE,KAAA6yE,IAAAn0E,IAAAsB,KAAA6yE,IAAAn0E,KAGAuoB,QAAA,SAAA,OAAA,YAKA4zD,QAEA9wD,OACA0K,OAAApqB,OACAywE,YAAApc,SAGA59C,MACA2T,OAAA,sBACAqmD,YAAA,mBAGArN,QAEA9B,KAAA,SAAAuD,SAEA,IAAApT,MAAA97D,KAAA6yE,IAAAx5D,SAGA,IAAAyiD,MAAAt5D,SAAA4/D,UAAApiE,KAAA6yE,KACA,OAAA3D,QAAA6L,UAGA7L,QAAA6L,KAAAC,QAAAlf,OACAoT,QAAA+L,QAAA/L,QAAA6L,KAAApqC,KAAA,SAAAuqC,KAAA,OAAAA,IAAA14E,OAAA,KAIAspE,MAAA,SAAAtJ,KACA,IAAA3C,OAAA7/D,KACAwiE,IAAAuY,KAGAx4B,QAAA,SAAA24B,IAAAt5E,GAAA,OAAAs5E,IAAA34B,QAAA,SAAAv1C,GAAAlJ,GACAi4B,YAAA/uB,GAAA6yD,OAAAprC,OAAA,IAAA7yB,GACAm6B,YAAA/uB,GAAA6yD,OAAAib,YAAA,IAAAh3E,QAMAmjB,QAAA,OAAA,YAMA,SAAA+zD,QAAAlf,OAGA,IAFA,IAAAif,UAEAn5E,EAAA,EAAAA,EAAAk6D,MAAAt5D,OAAAZ,IAAA,CAEA,IAAAoL,GAAA8uD,MAAAl6D,GACA0mE,IAAA6S,UAAAnuE,IAEA,GAAAs7D,IAAA1xC,OAIA,IAAA,IAAA9yB,EAAAi3E,KAAAv4E,OAAA,EAAAsB,GAAA,EAAAA,IAAA,CAEA,IAAAo3E,IAAAH,KAAAj3E,GAEA,IAAAo3E,IAAA,GAAA,CACAA,IAAA16E,KAAAwM,IACA,MAGA,IAAAouE,QAAAD,UAAAD,IAAA,IAEA,GAAA5S,IAAAj6D,KAAA+sE,QAAAhc,OAAA,EAAA,CACA2b,KAAAv6E,MAAAwM,KACA,MAGA,GAAAs7D,IAAAlJ,OAAAgc,QAAA/sE,IAAA,CAEA,GAAAi6D,IAAA9zC,KAAA4mD,QAAA5mD,OAAAm2C,MAAA,CACAuQ,IAAAjrE,QAAAjD,IACA,MAGAkuE,IAAA16E,KAAAwM,IACA,MAGA,GAAA,IAAAlJ,EAAA,CACAi3E,KAAA9qE,SAAAjD,KACA,QAOA,OAAA+tE,KAIA,SAAAI,UAAA77E,SAEA,IAAAmrE,UAAAnrE,QAAAmrE,UACAC,WAAAprE,QAAAorE,WACAlmC,aAAAllC,QAAAklC,aAEA,OACAn2B,IAAAo8D,UACAj2C,KAAAk2C,WACA9zC,OAAA4N,aACA46B,OAAAqL,UAAAjmC,cAIA,IAAA62C,MAEAvN,QAAA+M,OAEA9M,QAAA2H,OAEAxoE,OAAA,EAEA9I,KAAA,OAEA2lB,OACAuxD,QAAA5c,QACA6c,SAAAld,QAGAv9C,MACA2T,OAAA,iBACA+mD,SAAA,gBACAF,SAAA,EACAC,SAAA,GAGA/rD,UAEA+rD,SAAA,SAAA/Y,KACA,IAAA+Y,SAAA/Y,IAAA+Y,SAEA,OAAAz2E,KAAAwqC,IAAAisC,YAKAlO,UAAA,WACArtE,KAAAs7E,SAAA5/C,SAAA17B,KAAA6yE,IAAA,iCAGApF,SAIA9B,KAAA,SAAAnJ,KACA,IAAAuY,KAAAvY,IAAAuY,MAGA/6E,KAAAs7E,SAAAt7E,KAAAu7E,YACAR,KAAAA,KAAAz3E,IAAA,SAAA6M,UAAA,OAAA4uD,OAAA5uD,SAAA,iBAGA,IA+EAsD,KAAA4xD,IAEAz/C,MAEAjkB,KAnFA85E,YAAA,EACAnR,UAAA,EAEA,GAAAtqE,KAAAs7E,QAAA,CAEA,IAAA1C,UAAA,EAEA6C,WAAAV,KAAAhY,OAAA,SAAA0Y,WAAAP,IAAAt5E,GAKA,OAHA65E,WAAA75E,GAAAs5E,IAAA53E,IAAA,SAAA2G,EAAAnG,GAAA,OAAA,IAAAlC,EAAA,EAAA08D,QAAAmd,WAAA75E,EAAA,GAAAkC,KAAA80E,UAAAta,QAAAyc,KAAAn5E,EAAA,GAAAkC,IAAAi3E,KAAAn5E,EAAA,GAAAkC,GAAA0gC,iBACAo0C,UAAAsC,IAAAnY,OAAA,SAAA6V,UAAA5rE,IAAA,OAAAlI,KAAAytB,IAAAqmD,UAAA5rE,GAAAw3B,eAAA,GAEAi3C,gBAIAnR,SA0EA,SAAAyQ,MACA,OAAAj2E,KAAAytB,IAAA/uB,MAAAsB,KAAAi2E,KAAAhY,OAAA,SAAA2Y,IAAAR,KAEA,OADAA,IAAA34B,QAAA,SAAAv1C,GAAApL,GAAA,OAAA85E,IAAA95E,IAAA85E,IAAA95E,IAAA,GAAAoL,GAAAw3B,eACAk3C,UA7EAC,CAAAZ,OA+DAtnE,KA/DAzT,KAAA6yE,IA+DAxN,IA/DArlE,KAAAy0B,OAiEA7O,MAAA64C,QAAAhrD,KAAA4F,UAIAilD,SAFA38D,KADAikB,MAAAjX,OAAA,SAAA3B,IAAA,OAAAmvB,SAAAnvB,GAAAq4D,OACA,IAGA3iD,IAAA/gB,KAAA,aACA+gB,IAAAkD,MAAA,GAAA,iBAvEAm1D,KAAAv4E,OAAA,IAIA,OAAAu4E,KAAAA,KAAAU,WAAAA,WAAA7kD,OAAA0zC,WAIAwB,MAAA,SAAAtJ,KACA,IAAAuY,KAAAvY,IAAAuY,KACAE,OAAAzY,IAAAyY,OACArC,UAAApW,IAAA5rC,OAGAmF,YAAA/7B,KAAA6yE,IAAA7yE,KAAAw7E,SAAAP,QAEAv4D,IAAA1iB,KAAA6yE,IAAA,gBAAA7yE,KAAAu7E,UAAAR,KAAApqC,KAAA,SAAAuqC,KAAA,OAAAA,IAAA14E,OAAA,IAAAxC,KAAAu7E,SAAA,IAEA3C,WAAAl2D,IAAA1iB,KAAA6yE,IAAA,YAAA+F,YAIA3xD,QAAA,OAAA,YAMA0kD,KAAA,SAAAnJ,KACA,IAAAuY,KAAAvY,IAAAuY,KACAnC,UAAApW,IAAA5rC,OAEA,OACAglD,YAAA57E,KAAAu7E,WAAAR,KAAApqC,KAAA,SAAAuqC,KAAA,OAAAA,IAAA14E,OAAA,MACA2nE,aAAAnqE,KAAA6yE,IAAA+F,UAAAA,UAAAhiD,OAAA52B,KAAA6yE,KAAA,GAAA7yE,KAAAu7E,WAKAzP,MAAA,SAAAtJ,KACA,IAAAuY,KAAAvY,IAAAuY,KACAa,SAAApZ,IAAAoZ,SACAH,WAAAjZ,IAAAiZ,aAGA,IAAAG,UAAAH,aAIAV,KAAAx4B,QAAA,SAAA24B,IAAAt5E,GAAA,OAAAs5E,IAAA34B,QAAA,SAAAv1C,GAAAlJ,GAAA,OAAA4e,IAAA1V,GAAA,YAAA4uE,UAAAH,WAAA,gBAAAA,aAAAA,WAAA75E,GAAAkC,KAAA83E,SAAA93E,EAAA,EAAA83E,SAAAA,SAAA,EAAA,IAAA,MAAA,SAMA30D,QAAA,SAAA,OAAA,aA0BA,IAAA40D,aAEAjpE,KAAA,SAEAmX,OACAvlB,OAAA6F,OACA6wE,IAAAxc,SAGA59C,MACAtc,OAAA,MACA02E,KAAA,GAGA1rD,UAEArf,SAAA,SAAAqyD,IAAAqQ,KAGA,OAAAlL,GAFAnF,IAAAh+D,OAEAquE,OAKApF,QAEA9B,KAAA,WACA,IAAA9L,OAAA7/D,KAQA,OALA0iB,IAAA1iB,KAAAmQ,UACA2rE,UAAA,GACAC,UAAA,MAIAhB,KAAA/6E,KAAAk7E,IAEAF,QAAAh7E,KAAAmQ,UAAA7M,IAAA,SAAA6M,UAAA,OAAA0vD,OAAAr0D,MAAA2E,aADAnQ,KAAAwL,MAAAxL,KAAAmQ,aAKA27D,MAAA,SAAAtJ,KACAA,IAAAuY,KAGAx4B,QAAA,SAAAigB,KACA,IAAAoW,UAAApW,IAAA5rC,OAGA,OAAAlU,IAFA8/C,IAAAryD,UAGA2rE,UAAAlD,UACAmD,UAAA,kBAMA90D,QAAA,OAAA,WAIAymD,SAEAliE,MAAA,SAAA2E,UAEA,GAAAA,SAAA3N,OAAA,EACA,SAGA,IAAAw5E,WACAzpD,IAAA,EAYA,OAVApiB,SACAoyC,QAAA,SAAAv1C,IACA,IACA4rE,UADA7xC,OAAA/5B,IACA4pB,OACArE,IAAAztB,KAAAytB,IAAAA,IAAAqmD,WACAoD,QAAAx7E,KAAAo4E,aAGAzoE,SAAAA,SAAAxB,OAAA,SAAA3B,GAAApL,GAAA,OAAAo6E,QAAAp6E,GAAA2wB,OAEAqE,OAAArE,IAAApiB,SAAAA,aAMA8rE,gBAEAlyD,OACA+K,OAAA4pC,QACA+L,UAAA/L,QACAwd,aAAAxd,QACAod,UAAAzd,QAGAv9C,MACAgU,QAAA,EACA21C,WAAA,EACAyR,cAAA,EACAJ,UAAA,GAGArO,QAEA3B,MAAA,WAEAppD,IAAA1iB,KAAA6yE,IAAA,YAAA,cAEA,IACAiJ,UADAK,SAAAvlD,OAAA/4B,QACA4sE,UAAA,EAEA,GAAAzqE,KAAA80B,OAAA,CAEApS,IAAA1iB,KAAA6yE,KAAAj8C,OAAA,GAAAklD,UAAA,KAEA,IAAAvuE,KAAA4uE,SAAA33C,aAAA7nC,SAAAsR,iBAEAV,KAAA,IACAuuE,UAAAt3C,aAAAxkC,KAAA6yE,KAAAtlE,UAGA,CAEA,IACAc,IADA04B,OAAA/mC,KAAA6yE,KACAxkE,IAEAA,IAAA8tE,SAAA,GAAAn8E,KAAAyqE,YACAA,WAAAp8D,MAGA,IAAArO,KAAAk8E,aAEAzR,WAAAjmC,aAAAxkC,KAAA6yE,IAAA3N,oBAEAn8B,UAAA/oC,KAAAk8E,cAEAzR,WAAA0R,SAAA,IAAAn8E,KAAAk8E,aAEAl8E,KAAAk8E,cAAA7e,SAAAr9D,KAAAk8E,aAAA,MAEAzR,WAAAnM,QAAAt+D,KAAAk8E,cAEAxe,SAAA19D,KAAAk8E,gBAEAzR,WAAAjmC,aAAA47B,MAAApgE,KAAAk8E,aAAAl8E,KAAA6yE,OAKAiJ,UAAArR,UAAA,gBAAAA,UAAA,MAAA,QAIA,GAAAqR,UAAA,CAIAp5D,IAAA1iB,KAAA6yE,KAAAj8C,OAAA,GAAAklD,UAAAA,YAEA,IAAAxR,SAAAtqE,KAAA6yE,IAAAruC,aACAxkC,KAAA87E,WAAA97E,KAAA87E,UAAAxR,UACA5nD,IAAA1iB,KAAA6yE,IAAA,YAAA7yE,KAAA87E,WAIAK,SAAA1R,WAAAH,UACA5nD,IAAA1iB,KAAA6yE,IAAA,SAAAiJ,aAKA70D,QAAA,OAAA,YAMA,SAAAud,aAAAx3B,IACA,OAAAA,IAAAA,GAAAw3B,cAAA,EAGA,IAAA43C,QAEAC,KAEAnvE,OAAA,EAEA6c,OACAje,GAAAzB,OACAiyE,KAAAjyE,OACA3L,IAAA2L,OACAmY,MAAAnY,OACAolB,MAAA4uC,OACAznC,OAAAynC,OACAmB,MAAAnB,OACA5iC,MAAApxB,QAGAyW,MACA0+C,MAAA,EACA1zD,IAAA,EACAioE,SAAA,QAAA,MAAA,QACAt4C,MAAA,IAGA4xC,UAAA,WACA,IACAkP,UADA1c,OAAA7/D,KAMA,GAFAA,KAAAy7B,OAAA,WAEAz7B,KAAAs8E,MAAA9e,SAAAx9D,KAAAtB,IAAA,KAAA,CAEA,IAAAs2B,MAAAh1B,KAAAtB,IAAA4H,MAAA,KAEA0uB,MAAAxyB,OAAA,IACA+5E,UAAAvnD,MAAAh1B,KAAAtB,IAAA69E,UAAA,GAAAv8E,KAAAs8E,KAAAC,UAAA,IAIAv8E,KAAAw8E,IAAAx8E,KAAAy8E,SAAArhE,KAAA,SAAAohE,KAEA,IAAAxvE,GAcA,GAZA0wD,SAAA8e,MAEA3c,OAAAyc,MAAA9e,SAAAgf,IAAA,aACAA,IAiIA,SAAAA,IAAAF,MAEA,IAAAI,QAAAF,KAAA,CAIA,IAAAhxE,MACA,IAHAkxE,QAAAF,QAGAhxE,MAAAmxE,SAAA9wE,KAAA2wE,MACAE,QAAAF,KAAAhxE,MAAA,IAAA,0CAAAA,MAAA,GAAA,OAGAmxE,SAAAplC,UAAA,EAIA,OAAAmlC,QAAAF,KAAAF,MAhJAM,CAAAJ,IAAA3c,OAAAyc,OAAAE,KAGAxvE,GAAAq8B,EAAAmzC,IAAAjmC,OAAAimC,IAAA/7E,QAAA,WAGAuM,GAAAwvE,IAAAx2D,WAAA,IAGAhZ,GACA,OAAAu2D,UAAAxoD,OAAA,kBAGA,IAAA0kD,WAAArvD,KAAApD,GAAA,WAWA,IAAA,IAAA+T,QATA0+C,aACAA,WAAAA,WAAAn5D,MAAA,KACAu5D,OAAApwC,MAAAowC,OAAA+S,OAAAnjD,OAAAgwC,WAAA,GACAI,OAAAjpC,OAAAipC,OAAA+S,OAAAh8C,QAAA6oC,WAAA,IAGAI,OAAApwC,OAAAowC,OAAAL,MACAK,OAAAjpC,QAAAipC,OAAAL,MAEAK,OAAA2R,SAAAznD,MACA81C,OAAA9+C,QAAAy8C,SAAAqC,OAAAkU,QAAAhzD,OACA3Q,KAAApD,GAAA+T,KAAA8+C,OAAA9+C,OAIA8+C,OAAA/zD,IACA2uB,WAAAztB,GAAA,MAGA6yD,OAAApwC,QAAAowC,OAAAjpC,QACA6D,WAAAztB,GAAA,UAGA6yD,OAAAjpC,SAAAipC,OAAApwC,OACAgL,WAAAztB,GAAA,SAGA,IAAAyG,KAAAosD,OAAAgT,IACA,GAAA3Q,cAAAzuD,OAAA,WAAAA,KAAA0uD,QAAA,CAEA/xD,KAAAqD,MAAA4iB,QAAA,EAAAvqB,GAAA,OAEA,IAAAb,KAAAwI,KAAAyxD,mBACAj6D,MAAA+B,GAAA6vE,YAAA5xE,MACA+B,GAAA/B,KAEAwjB,MAAAhb,KAAAzG,QAGA,CAEA,IAAApJ,KAAA6P,KAAA2jE,iBACAxzE,MAAAoJ,GAAA6vE,YAAAj5E,MACAoJ,GAAApJ,KAEAyqB,OAAA5a,KAAAzG,IAOA,OAFA6yD,OAAAid,MAAA9vE,GAEAA,IAEA7H,OAIAooE,aAAA,WACA,IAAA1N,OAAA7/D,KAGAkiE,cAAAliE,KAAA6yE,MACAziE,KAAApQ,KAAA6yE,KAAAx8C,OAAA,KAAAvqB,GAAA9L,KAAA8L,IAAA,OAGA9L,KAAAw8E,KACAx8E,KAAAw8E,IAAAphE,KAAA,SAAAohE,KAAA,QAAA3c,OAAA6R,YAAA8K,MAAA3c,OAAAid,QAAA5gE,OAAAsgE,MAAAr3E,MAGAnF,KAAAw8E,IAAAx8E,KAAA88E,MAAA,MAIApP,SAEA+O,OAAA,WACA,IAAA5c,OAAA7/D,KAGA,OAAAA,KAAAtB,IAIA09E,KAAAp8E,KAAAtB,KACA09E,KAAAp8E,KAAAtB,MAGA09E,KAAAp8E,KAAAtB,KAAA,IAAA6kE,UAAA,SAAAzoD,QAAAC,QAEAkiD,WAAA4C,OAAAnhE,IAAA,SACAoc,QAAAiiE,mBAAAld,OAAAnhE,IAAA4H,MAAA,KAAA,KAGA26B,KAAA4+B,OAAAnhE,KAAA0c,KACA,SAAAqpB,KAAA,OAAA3pB,QAAA2pB,IAAApB,WACA,WAAA,OAAAtoB,OAAA,sBAOAqhE,KAAAp8E,KAAAtB,MAtBA6kE,UAAAxoD,YA8BA4hE,SAAA,+CACAD,WAoBA,IAgCA91C,UACAo2C,OACAC,QANA,sJAOAC,MALA,2KAMAC,OAhCA,8KAiCAC,aArCA,gQAsCAC,cApCA,gQAqCAC,qBAjCA,sMAkCAC,eAhCA,gLAiCAC,kBA/BA,wKAgCAC,sBA9BA,wKA+BAC,cA7BA,qPA8BAC,eA5BA,mQA6BAC,gBA3BA,kQA4BAC,gBA1BA,6LA2BAC,sBAzBA,iMA0BAC,oBAxBA,8LAyBAC,0BAvBA,mMA0BAC,MAEAtJ,QAiHA,SAAArY,OACAA,MAAAggB,KAAAxiE,IAAA,SAAA1V,KAAAo4E,KACA,IAAAr7E,IAGA+8E,MAAAxgB,SAAAt5D,QAAAjD,QAAAiD,MAAAo4E,IAAAr7E,KAAAiD,KACAhB,KAAA86E,MAAA,SAAA1B,IAAAp4E,MACA44E,MAAA54E,MAAAo4E,WACA51C,OAAAxiC,QAGAk4D,MAAAsY,cACApxE,MAAA7G,SAAA+mB,KAAA,SAAA1W,IAAA,OAAA5J,KAAAk5D,MAAAuY,cAAA7nE,IAAA,SAAAmxE,KAAA,OAAAA,IAAA3M,SAAA4M,QAAAD,IAAA7B,QAAA4B,OAAAC,IAAAlK,eA3HA/mE,OAAA,OAAA,SAEA6gE,QAAA2H,MAAA2G,KAEAzpE,KAAA,OAEAmX,OAAA,QAEAjJ,MAAAizD,SAAA,KAAA,QAAA,QAAA,MAAA,OAAA,UAEAqK,QAAA,EAEA/Q,UAAA,WACA3xC,SAAA17B,KAAA6yE,IAAA,YAGAnF,SAEA+O,OAAA,WAEA,IAAAH,KA8GA,SAAAA,MAEA,IAAAU,MAAAV,MACA,OAAA,KAGA11C,OAAA01C,QACA11C,OAAA01C,MAAAjzC,EAAA2zC,MAAAV,MAAA92E,SAGA,OAAAohC,OAAA01C,MAxHA+B,CA2HA,SAAA/B,MACA,OAAA3R,MAAAhoD,KAAAA,KAAA25D,KAAA,OAAA,SAAA,WAAA,QAAAA,KA5HAgC,CAAAt+E,KAAAs8E,OAEA,OAAAA,KAIA/Y,UAAAzoD,QAAAwhE,MAHA/Y,UAAAxoD,OAAA,sBAUAwjE,eAEAzQ,QAAAmQ,KAEAn9D,KAAA,SAAAosD,IAAA,OACAoP,KAAA7f,UAAAyQ,GAAAvqE,YAAAwB,QAAAC,SAKAo6E,UAEA1Q,QAAAyQ,cAEAlR,UAAA,WACA3xC,SAAA17B,KAAA6yE,IAAA,gBAGArjD,UAEA8sD,KAAA,SAAA9Z,IAAAqQ,KACA,IAAAyJ,KAAA9Z,IAAA8Z,KAEA,OAAAngD,SAAA02C,IAAA,qBACAyJ,KAAA,SACAA,QAOAmC,QAEA3Q,QAAAyQ,cAEA/uD,UAEA8sD,KAAA,SAAA9Z,IAAAqQ,KACA,IAAAyJ,KAAA9Z,IAAA8Z,KAEA,OAAAngD,SAAA02C,IAAA,mBAAA74D,QAAA64D,IAAA,oBAAArwE,OACA,eACAwX,QAAA64D,IAAA,qBAAArwE,OACA,gBACA85E,QAOAoC,OAEA5Q,QAAAyQ,cAEA/uD,UAEA8sD,KAAA,WACA,MAAA,UAAAngD,SAAAn8B,KAAA6yE,IAAA,kBAAA,QAAA,WAOA8L,SAEA7Q,QAAAyQ,cAEAlR,UAAA,WACA,IAAAxN,OAAA7/D,KAEAA,KAAAw8E,IAAAphE,KAAA,SAAAohE,KAAA,OAAA,IAAA3c,OAAAL,OAAA98C,IAAA2mB,EAAA,SAAAmzC,KAAA,cAAA,EAAA3c,OAAAL,QAAAr6D,QAyCA,IAAAy5E,KAEA1xE,OAAA,EAEA6c,OACA80D,QAAAx0E,OACAy0E,WAAApgB,QACAqgB,UAAArgB,QACA0F,MAAA/5D,OACAolB,MAAA4uC,OACAznC,OAAAynC,OACA2gB,UAAA3gB,OACA4gB,WAAA5gB,OACAoM,UAAApgE,OACAqgE,WAAArgE,OACA7F,OAAA6F,QAGAyW,MACA+9D,QAAA,GACAC,YAAA,EACAC,WAAA,EACA3a,OAAA,EACA30C,OAAA,EACAmH,QAAA,EACA6zC,UAAA,OACAC,WAAA,EACAlmE,QAAA,GAGAgrB,UAEA0vD,SAAA,SAAA1c,KACA,IAAAqc,QAAArc,IAAAqc,QAEA,OAAA7+E,KAAA,MAAA,IAAA6+E,SAGApvD,MAAA,SAAA+yC,KACA,IAAAqW,SAAArW,IAAA/yC,MACAuvD,UAAAxc,IAAAwc,UAEA,OAAAnG,UAAAmG,WAGApoD,OAAA,SAAA4rC,KACA,IAAAoW,UAAApW,IAAA5rC,OACAqoD,WAAAzc,IAAAyc,WAEA,OAAArG,WAAAqG,YAGA7a,MAAA,SAAA5B,KACA,IAAA4B,MAAA5B,IAAA4B,MACA2a,UAAAvc,IAAAuc,UAEA,OAAA3a,OAAA2a,WAGAI,MAAA,SAAAl1E,EAAA4oE,KACA,OAAAsM,MAAAtM,MAGAruE,OAAA,SAAAg+D,KACA,IAAAh+D,OAAAg+D,IAAAh+D,OAEA,OAAAxE,KAAA6yE,KAAAtyE,OAAA+/D,SAAA97D,OAAAxE,KAAA6yE,OAGApI,UAAA,SAAAjI,KAGA,OAAA4c,KAFA5c,IAAAiI,UAEA,WAGAC,WAAA,SAAAlI,KAGA,OAAA4c,KAFA5c,IAAAkI,WAEA,WAKA2C,UAAA,WAEAgS,QAAAr/E,KAAAk/E,UACAI,YAAAt/E,KAAA6yE,IAAAwM,QAAAr/E,KAAAk/E,WAAAl/E,KAAA6+E,QAAA7+E,KAAA8+E,WAAA9+E,KAAAokE,OACApkE,KAAAm/E,OAAAn/E,KAAAyvB,OAAAzvB,KAAA42B,QACA0oD,YAAAt/E,KAAA6yE,IAwEA,SAAAgG,SAAAD,UAAAxU,MAAAmb,OACA,IAAAhD,eAEA,IAAAgD,QAAAA,MAAA,eAEA,GAAAnb,MAAA,CAGA,IAFA,IAAAob,WAEAA,WAAAC,QAAA5zE,KAAAu4D,QACA,IAAAob,WAAA,IAAA3hF,OAAA6hF,WAAAF,WAAA,IAAAz5E,QAAA,CA8BA45E,KA7BAH,WAAA,GAAAA,WA8BAviB,WAAA0iB,KAAA,QACAA,KACAC,UAAA,EAAAD,KAAAn9E,OAAA,GACA/C,QAAAogF,OAAA,SAAAF,MAAA,OAAAP,KAAAO,QACAlgF,QAAA,KAAA,IACA+L,MAAAs0E,YACA/c,OAAA,SAAA96D,EAAAC,GAAA,OAAAD,IAAAC,GAAA,GACAy3E,KApCA,MAIAF,QAAAloC,UAAA,EAEAglC,UAAAhd,WAAAC,OAAA/vC,MAAAopD,SAAAjiD,OAAAgiD,WAAA,QAAAwG,KAAAI,YAAA,UAAA3G,SAAA0D,UAAA9sD,MAAAmpD,UAAA2D,UAAA3lD,OAsBA,IAAA+oD,KAlBA,IAAAhzE,IAAAksE,SAAA,IAAAD,UAAA,IAAA2G,MACA,GAAAQ,SAAApzE,KACA,OAAAozE,SAAApzE,KAGA,IAAAqzE,OAAAt6D,SAAA,YACAs6D,OAAAvwD,MAAAopD,SACAmH,OAAAppD,OAAAgiD,UAEA,IAAAz2E,QAAA69E,OAAAC,WAAA,MAIA,OAHA99E,QAAA+9E,UAAAX,MACAp9E,QAAAg+E,SAAA,EAAA,EAAAtH,SAAAD,WAEAmH,SAAApzE,KAAAqzE,OAAAI,UAAA,aA1GAC,CAAArgF,KAAAyvB,MAAAzvB,KAAA42B,OAAA52B,KAAAokE,SAKAqJ,SAIA9B,KAAA,SAAAnJ,KACA,IAAA3C,OAAA7/D,KACAi6B,MAAAuoC,IAAAvoC,MACAnlB,MAAA0tD,IAAA1tD,MAGA,GAAAmlB,MAAA,CAIA,IAAAnlB,OAAA9U,KAAAwE,OAAAmsC,KAAA,SAAA3jC,IAAA,OAAA48D,SAAA58D,GAAA6yD,OAAA4K,UAAA5K,OAAA6K,YAAA,KASA,OACA51D,MAAAovD,SAAAlkE,KAAA6+E,QAAA7+E,KAAA8+E,WAAA9+E,KAAAokE,OAAAhpD,KAAA,SAAAwmD,KAIA,OAFA0d,YAAAzf,OAAAgT,IAAAyN,WAAA1e,KAAAA,IAAAuC,OAAAvC,IAAAwC,OACAib,QAAAxf,OAAAqf,UAAAoB,WAAA1e,KACAA,KAEAz8D,QAdAnF,KAAAm/E,OAAArqE,OACAA,MAAAsG,KAAA,SAAAwmD,KAAA,OAAAA,KAAA0d,YAAAzf,OAAAgT,IAAAyN,WAAA1e,UAkBAkK,MAAA,SAAAoD,SAGA,IAAAA,QAAAj1C,MAEA,OADAj6B,KAAAi1E,QACA/F,QAAAj1C,OAAA,GAKAhT,QAAA,SAAA,OAAA,aAQA,SAAAq4D,YAAAtyE,GAAAtO,IAAAylE,OAAAC,OAEA+a,MAAAnyE,KACAtO,MAAAsO,GAAAtO,IAAAA,KACAylE,SAAAn3D,GAAAm3D,OAAAA,QACAC,QAAAp3D,GAAAo3D,MAAAA,QAEA1lE,KAAAgkB,IAAA1V,GAAA,kBAAA,OAAAtO,IAAA,KAKA,IAAAqhF,YACAN,QAAA,0CAsCA,IAAAI,OAAA,gBACAC,WAAA,cAYA,SAAAV,KAAAl5E,MAAAmgE,SAAA/mE,SAIA,YAHA,IAAA+mE,WAAAA,SAAA,cACA,IAAA/mE,UAAAA,QAAAzB,QAEAkrC,UAAA7iC,QACAA,MACAm3D,SAAAn3D,MAAA,MACAivB,QAAA71B,QAAA,QAAA4G,OACAm3D,SAAAn3D,MAAA,MACAivB,QAAA71B,QAAA,SAAA4G,OACAm3D,SAAAn3D,MAAA,KACAivB,QAAA71B,QAAA+mE,SAAAngE,OACAo4D,QAAAp4D,OAGA,IAAAu5D,YAAA7oC,OAAAA,OAAAnH,MAAAA,OACA,SAAA0F,QAAA71B,QAAA+mE,SAAAngE,OACA,OAAAu5D,WAAA4G,UAAA/mE,SAAAg/D,QAAAp4D,OAAA,IAGA,SAAAi5E,MAAAnyE,IACA,MAAA,QAAAA,GAAAm1D,QAGA,SAAAme,WAAAtzE,IACA,OAAAA,GAAAszE,YAAAtzE,GAAAtO,IAGA,IACA2gF,QAGA,KACAA,QAAAxhF,OAAA0iF,oBACA,SAAA,SACAlB,QAAA,SACA,MAAAl0E,GACAk0E,WAGA,IAiGAmB,SAsOAv5D,OAvUAw5D,QAEA1S,QAAA2H,OAEA3rD,OACA22D,KAAAr2E,OACAs2E,MAAA,SAGA7/D,MACA4/D,KAAA,GACAC,OAAA,EACAC,WAAA,iBACAC,QAAA,iBACAC,SAAA,aAGAtxD,UAEAkxD,KAAA,SAAAle,KAGA,OAFAA,IAAAke,MAEA/Z,UAAA,iBAKA0G,UAAA,WACA,IAAAkP,UAEAA,UAAAn4C,UAAApkC,KAAA6yE,IAAA,gBAAA7yE,KAAA,WAAA,MAAAA,KAAA+gF,QAAAxE,UAAA,IAGAhP,aAAA,WACAjpC,OAAAtkC,KAAA+gF,QAAA71E,aAGAuiE,SAIA9B,KAAA,SAAAnJ,KACA,IAAA0U,QAAA1U,IAAA0U,QACA2B,SAAArW,IAAA/yC,MAGAlW,KAAAs/D,SAIA,OACAppD,MAHAopD,SAAA/zE,KAAAivC,MAAA/zC,KAAA6yE,IAAA/hD,YAAA,GAIAomD,QAAAA,SAAA39D,OAAAs/D,SACA/0D,KAAA9jB,KAAA2gF,QAAA9iF,OAAA6hF,WAAA1/E,KAAA2gF,OAAA56E,UAIA+lE,MAAA,SAAAoD,SAEAnzC,YAAA/7B,KAAA+gF,QAAA/gF,KAAA6gF,QAAA3R,QAAAprD,MAEAorD,QAAAgI,UACAhI,QAAAgI,SAAA,EACA9mE,KAAApQ,KAAA+gF,QAAA/gF,KAAA8gF,SAAA,IAAAn8E,MAAAuqE,QAAAz/C,OAAArjB,KAAApM,KAAA0gF,SAKAz5D,QAAA,OAAA,aAOA+5D,WAEAj3D,OACAmG,UAAAwuC,SAGA59C,MACAoP,WAAA,GAGAV,UAEAU,UAAA,SAAAsyC,KACA,IAAAtyC,UAAAsyC,IAAAtyC,UAEA,OAAA,IAAAA,WAAAlwB,KAAAu1E,YAAArlD,WAAAmZ,EAAAnZ,cASA+wD,OAEAlT,QAAA2H,MAAAsL,UAAArL,WAEA5rD,OACAm3D,SAAA72E,OACA0tE,SAAA1tE,OACA82E,SAAAziB,QACA0iB,QAAA1iB,QACA5/C,MAAA4/C,SAGA59C,MACAukD,IAAA,UACA8b,UAAA,EACAC,SAAA,EACAC,SAAA,EACAviE,OAAA,GAGA0Q,UAEA8xD,MAAA,SAAA9e,IAAAqQ,KAGA,OAAAxpC,EAFAm5B,IAAA0e,SAEArO,MAGA0O,kBAAA,WACA,OAAAvhF,KAAAshF,OAGAE,mBAAA,WACA,OAAA5iB,KAAAl8C,IAAA1iB,KAAAuhF,kBAAA,wBAGAH,QAAA,SAAA5e,KAGA,OAFAA,IAAA4e,SAEAphF,KAAAshF,QAKAr6D,SAIA7iB,KAAA,QAEAqkC,SAAA,WACA,OAAAzoC,KAAA+3E,UAGA5qE,QAAA,SAAAhC,GACAA,EAAA0d,iBACA7oB,KAAA8jB,UAOA1f,KAAA,SAEA2U,MAAA,EAEA5L,QAAA,SAAAhC,GAEAA,EAAA8e,mBAIA9e,EAAA0d,iBACA7oB,KAAA+jB,aAMA3f,KAAA,aAEA2U,MAAA,EAEA5L,QAAA,SAAAhC,GAEA,IAAAoO,KAAAinE,UAAAA,WAAAxgF,MAAAwgF,SAIA,GAFAA,SAAAxgF,KAEAuZ,KAAA,CACA,IAAAvZ,KAAA8e,MAKA,OAFAvF,KAAAuK,OAAA1I,KAAApb,KAAA4jB,WACAzY,EAAA0d,iBAHA7oB,KAAAuZ,KAAAA,MA0IA,WAEA,GAAA0N,OACA,OAGAA,QACAR,GAAA9pB,SAAA,QAAA,SAAA6lE,KACA,IAAAh+D,OAAAg+D,IAAAh+D,OACAylB,iBAAAu4C,IAAAv4C,kBAEAu2D,WAAAA,SAAAY,SAAAn3D,kBAAAu2D,SAAAa,UAAA9e,OAAA/9D,OAAAg8E,SAAA3N,MAAAtQ,OAAA/9D,OAAAg8E,SAAAc,QACAd,SAAA18D,SAGA2C,GAAA9pB,SAAA,UAAA,SAAAwO,GACA,KAAAA,EAAAkgB,SAAAm1D,UAAAA,SAAAW,WACAh2E,EAAA0d,iBACA23D,SAAA18D,WApJA29D,MAOAr9E,KAAA,aAEA2U,MAAA,EAEA5L,QAAA,YAEAqzE,SAAAA,UAAAA,WAAAxgF,MAAAwgF,UAAAxgF,KAAAuZ,QA8IA0N,QAAAA,OAAAs7B,QAAA,SAAA/Z,QAAA,OAAAA,WACAvhB,OAAA,SAnIA7iB,KAAA,OAEA2U,MAAA,EAEA5L,QAAA,WAEAgvB,SAAAx/B,SAAAsR,gBAAAjO,KAAA0hF,WACA1hF,KAAA2hF,eAAAlyD,MAAA5xB,QAAA4xB,MAAA9yB,UACA+lB,IAAA/lB,SAAA+mB,KAAA,YAAA1jB,KAAA2hF,gBAAA3hF,KAAAqhF,QAAA,SAAA,KAGA3lD,SAAA/+B,SAAAsR,gBAAAjO,KAAA0hF,YAQAt9E,KAAA,SAEA2U,MAAA,EAEA5L,QAAA,WAQA,IAPA,IAGAy0E,MAEAroE,KADAvZ,KACAuZ,KAEAA,MAAA,CAEA,GAAAA,KAAAmoE,UATA1hF,KASA0hF,QAAA,CACAE,OAAA,EACA,MAGAroE,KAAAA,KAAAA,KAIAqoE,OACAviF,YAAA1C,SAAAsR,gBAAAjO,KAAA0hF,UAIA1hF,KAAAuZ,MAAAmJ,IAAA/lB,SAAA+mB,KAAA,YAAA,OAOAgqD,SAEA3pD,OAAA,WACA,OAAA/jB,KAAAy2E,YAAAz2E,KAAA8jB,OAAA9jB,KAAA4jB,QAGAA,KAAA,WAEA,OAAA5jB,KAAAy2E,YACAlT,UAAAzoD,WAGA9a,KAAAkwB,WAAAlwB,KAAA6yE,IAAA9wE,aAAA/B,KAAAkwB,YACA7B,OAAAruB,KAAAkwB,UAAAlwB,KAAA6yE,KACA7yE,KAAAyxE,kBAGAzxE,KAAA42E,UAAA52E,KAAA6yE,KAAA,KAGA/uD,KAAA,WACA,OAAA9jB,KAAAy2E,YACAz2E,KAAA42E,UAAA52E,KAAA6yE,KAAA,GACAtP,UAAAzoD,WAGA+mE,UAAA,WACA,OAAArB,UAGAxJ,iBAAA,SAAAhqE,GAAA4W,MACA,IAAAi8C,OAAA7/D,KAEA,OAAA,IAAAujE,UAAA,SAAAzoD,SAAA,OAAAwb,sBAAA,WACAupC,OAAAoX,QAAAjqE,GAAA4W,MAEAi8C,OAAA2hB,mBACAxlE,KAAA6jD,OAAA0hB,kBAAA,gBAAAzmE,SAAA,EAAA,SAAA3P,GAAA,OAAAA,EAAA3G,SAAAq7D,OAAA0hB,oBAEAzmE,iBAyCA,IAAAgnE,SAEAnN,QA8CA,SAAArY,OAEAA,MAAAylB,MAAAC,OAAA,SAAA1nE,QAAAnW,SAEA,IAAA69E,OAAA1lB,MAAAylB,MAAA,wDAAAznE,QAAA,iBAAAnW,SAaA,OAXA69E,OAAAp+D,OAEA6C,GAAAu7D,OAAAnP,IAAA,SAAA,SAAArQ,KACA,IAAAh+D,OAAAg+D,IAAAh+D,OACAkkB,cAAA85C,IAAA95C,cAEAlkB,SAAAkkB,eACAs5D,OAAAtN,UAAA,KAIAsN,QAGA1lB,MAAAylB,MAAAE,MAAA,SAAAhjE,QAAA9a,SAIA,OAFAA,QAAA06D,QAAAuiB,SAAA,EAAAD,UAAA,EAAAe,OAAA5lB,MAAAylB,MAAAG,QAAA/9E,SAEA,IAAAo/D,UACA,SAAAzoD,SAAA,OAAA2L,GAAA61C,MAAAylB,MAAAC,OAAA,gCAAAtkB,SAAAz+C,SAAAA,QAAA0O,KAAA1O,UAAA,2HAAA9a,QAAA+9E,OAAA,GAAA,oBAAA/9E,SAAA0uE,IAAA,OAAA/3D,YAIAwhD,MAAAylB,MAAAI,QAAA,SAAAljE,QAAA9a,SAIA,OAFAA,QAAA06D,QAAAuiB,SAAA,EAAAD,UAAA,EAAAe,OAAA5lB,MAAAylB,MAAAG,QAAA/9E,SAEA,IAAAo/D,UAAA,SAAAzoD,QAAAC,QAEA,IAAAonE,QAAA7lB,MAAAylB,MAAAC,OAAA,uCAAAtkB,SAAAz+C,SAAAA,QAAA0O,KAAA1O,UAAA,+HAAA9a,QAAA+9E,OAAA,OAAA,mEAAA/9E,QAAA+9E,OAAA,GAAA,4BAAA/9E,SAEAi+E,UAAA,EAEA37D,GAAA07D,QAAAtP,IAAA,SAAA,OAAA,SAAA1nE,GACAA,EAAA0d,iBACA/N,UACAsnE,UAAA,EACAD,QAAAr+D,SAEA2C,GAAA07D,QAAAtP,IAAA,OAAA,WACAuP,UACArnE,cAOAuhD,MAAAylB,MAAAM,OAAA,SAAApjE,QAAA/Y,MAAA/B,SAIA,OAFAA,QAAA06D,QAAAuiB,SAAA,EAAAD,UAAA,EAAAe,OAAA5lB,MAAAylB,MAAAG,QAAA/9E,SAEA,IAAAo/D,UAAA,SAAAzoD,SAEA,IAAAunE,OAAA/lB,MAAAylB,MAAAC,OAAA,uEAAAtkB,SAAAz+C,SAAAA,QAAA0O,KAAA1O,UAAA,2KAAA9a,QAAA+9E,OAAA,OAAA,yDAAA/9E,QAAA+9E,OAAA,GAAA,4BAAA/9E,SACA+K,MAAAm6B,EAAA,QAAAg5C,OAAAxP,KAEA3jE,MAAAhJ,MAAAA,MAEA,IAAAk8E,UAAA,EAEA37D,GAAA47D,OAAAxP,IAAA,SAAA,OAAA,SAAA1nE,GACAA,EAAA0d,iBACA/N,QAAA5L,MAAAhJ,OACAk8E,UAAA,EACAC,OAAAv+D,SAEA2C,GAAA47D,OAAAxP,IAAA,OAAA,WACAuP,UACAtnE,QAAA,WAOAwhD,MAAAylB,MAAAG,QACAI,GAAA,KACAnb,OAAA,WAhIA4G,QAAAkT,OAEAngE,MACA4gE,QAAA,gBACAR,SAAA,mBACAnJ,SAAA,2FAGA9wD,SAGA7iB,KAAA,OAEA2U,MAAA,EAEA5L,QAAA,WAEAgvB,SAAAn8B,KAAAshF,MAAA,2BACA5lD,SAAA17B,KAAA6yE,IAAA,WAEAnwD,IAAA1iB,KAAA6yE,IAAA,UAAA,SAGAj8C,OAAA52B,KAAA6yE,QAKAzuE,KAAA,SAEA2U,MAAA,EAEA5L,QAAA,WAEAuV,IAAA1iB,KAAA6yE,IAAA,UAAA,IACAxzE,YAAAW,KAAA6yE,IAAA,eAkGA,IA0QA8D,OA1QA4L,KAEAzU,QAAAyJ,UAEAz2D,MACArH,QAAA,eACAsK,OAAA,MACAzJ,QAAA,SAKAkoE,QAEAzU,QAAA2H,OAEA3rD,OACA04D,SAAAp4E,OACAkvE,KAAA,OACA3Q,MAAAv+D,OACA08B,OAAAs3B,OACA8J,SAAAzJ,QACA8a,cAAA9a,QACAib,QAAAtvE,OACAovE,UAAApb,OACAqb,UAAArb,OACAqkB,QAAAhkB,QACAikB,YAAAt4E,OACAu4E,cAAAlkB,QACArpC,SAAAgpC,QAGAv9C,MACA2hE,SAAA,sBACA7Z,MAAA+B,MAAA,QAAA,OACAgP,QAAA,qBACAJ,UAAA36E,EACAmoC,YAAAnoC,EACA66E,eAAA76E,EACA86E,eAAA96E,EACA46E,mBAAA56E,EACAspE,KAAA,IACAC,UAAA,EACAua,SAAA,EACAC,YAAA,QACAC,eAAA,EACAvtD,SAAA,KAGA7F,UAEA24C,SAAA,SAAA3F,IAAAqQ,KACA,IAAA1K,SAAA3F,IAAA2F,SACAqR,cAAAhX,IAAAgX,cAEA,OAAA,IAAArR,UAAAqR,cAAA3G,IAAA1K,UAGAya,cAAA,SAAApgB,IAAAqQ,KAGA,OAAAzS,MAFAoC,IAAAogB,cAEA/P,MAGAv9C,IAAA,SAAAktC,KAGA,MAAA,UAFAA,IAAAoG,OAKAia,UAAA,SAAArgB,IAAAqQ,KAIA,OAAAlL,GAHAnF,IAAAigB,SAGA,KAFAjgB,IAAAmX,QAEA9G,OAKAzF,cAAA,WAEA,IACAsV,QADA1iF,KAAA4yE,OACA8P,QAEA1iF,KAAA0iF,QAAAA,UAAAtiB,MAAAsiB,QAAA1iF,KAAA6yE,MAAAxpC,EAAA,uBAAArpC,KAAA6yE,MAAAxpC,EAAA,gBAEArpC,KAAA0iF,UAEAhnD,SAAA17B,KAAA0iF,QAAA,qBAEA,UAAA1iF,KAAA2iF,aACAjnD,SAAA17B,KAAA0iF,QAAA,6BAMAnV,aAAA,WACAvtE,KAAA0iF,SAAAxmE,OAAAlc,KAAA0iF,UAGAjV,OAAA,WACA,IAAA5N,OAAA7/D,KAGAA,KAAAm1E,QACA,OACAn1E,KAAA6iF,UAAAl0E,OAAA,SAAA3B,IAAA,OAAA6yD,OAAAijB,YAAA91E,MACA6xD,UAAA7+D,KAAA4yE,QAAAzK,SAAAnoE,KAAAmoE,SAAA7yC,IAAAt1B,KAAAs1B,IAAAyR,OAAA/mC,KAAA0iF,SAAA1iF,KAAA+mC,WAKA9f,SAGA7iB,KAAA,YAEAqkC,SAAA,WACA,OAAAzoC,KAAAyiF,UAGAt1E,QAAA,SAAAq1D,KACA,IAAA5+B,QAAA4+B,IAAA5+B,QAEA/D,OAAA7/B,KAAA6hF,YACAhiD,QAAAA,OAAA9b,SAAAw+C,OAAA1iC,OAAA9b,OAAA8uD,IAAAjvC,WAAA/D,OAAAg6C,QAAAnN,QAAA7sC,OAAAgzC,MACAhzC,OAAA/b,MAAA,MAOA1f,KAAA,aAEA4I,GAAA,WACA,OAAAhN,KAAA0iF,SAGAv1E,QAAA,WACA,IAAA0yB,OAAA7/B,KAAA6hF,YAEAhiD,SAAA95B,QAAA/F,KAAA0iF,QAAA,WACA7iD,OAAA/b,UAMA1f,KAAA,aAEA2uE,SAAA,EAEApkE,OAAA,WACA,OAAA3O,KAAA0iF,SAGAv1E,QAAA,WAEAnN,KAAA0iF,QAAA3gF,YACA0sB,MAAAzuB,KAAA4iF,eAAA5iF,KAAA6yE,IAAA7yE,KAAA0iF,YAOAt+E,KAAA,OAEA2uE,SAAA,EAEApkE,OAAA,WACA,OAAA3O,KAAA0iF,SAGAv1E,QAAA,SAAAlD,EAAAqwE,MAEA,IAAAzH,IAAAyH,KAAAzH,IACA7nE,IAAAsvE,KAAAtvE,IAEAhL,KAAA25E,SAAAj+C,SAAAm3C,IAAA7yE,KAAA,QAAA,YAEA,WAAAgL,KACAhL,KAAA+iF,aAAAlQ,IAAAruC,aAAA85B,QAAA57C,IAAAmwD,IAAA,cAAAvU,QAAA57C,IAAAmwD,IAAA,iBAAAA,QAMAzuE,KAAA,aAEAuK,OAAA,WACA,OAAA3O,KAAA0iF,SAGAv1E,QAAA,SAAAhC,EAAAq3D,KACA,IAAAqQ,IAAArQ,IAAAqQ,IAGAhzC,OAAA7/B,KAAA6hF,YAEA97E,QAAA/F,KAAA0iF,QAAA,WAAA7iD,QAAAA,OAAAgzC,MAAAA,KACA1nE,EAAA0d,oBAMAzkB,KAAA,OAEAuK,OAAA,WACA,OAAA3O,KAAA0iF,SAGAv1E,QAAA,SAAAlD,EAAAu4D,KACA,IAAAqQ,IAAArQ,IAAAqQ,IAGAhzC,OAAA7/B,KAAA6hF,cAEAhiD,QAAAA,QAAAA,OAAAgzC,MAAAA,MACA7yE,KAAA+iF,aAAA,MAOArV,SAEAmU,UAAA,WACA,IACAhiD,OADA7/B,KAAA6iF,UAAAv/E,IAAAtD,KAAA8iF,aAAAn0E,OAAA,SAAA2rE,MAAA,OAAAA,KAAAP,aACA,GACA,OAAAl6C,QAAA29B,SAAA39B,OAAA05C,KAAA,UAAAhX,OAAA1iC,OAAA9b,OAAA8uD,IAAA7yE,KAAA6yE,MAAAhzC,QAGAkjD,aAAA,SAAAC,UAAAh2E,IAEA,IACA01E,QADA1iF,KACA0iF,QACAO,UAAA7gB,UAAAsgB,SAAA9rD,OAAA8rD,SAAA,EASA,OALAhgE,IAFA1V,GAAAi2E,UAAAD,WAAAh2E,GAEA,OAAA,UAAAA,GAAA,YAAA,MAAAi2E,UAAA,SAEArsD,OAAA8rD,QAAAO,WAEA/b,WAAAC,QAAAn6D,GAAA01E,UACAlf,QAAAtjD,KACAgnD,WAAAhpE,MAAAwkF,SAAA9rD,OAAAosD,WAAAhjF,KAAAq1B,UACA6xC,WAAAhpE,MAAA8O,IAAAk2E,KAAA,UAAAl2E,GAAA,YAAA,MAAAg2E,UAAA,SAAAhjF,KAAAq1B,YAEAzY,MAAAzX,MACAiW,KAAA,WAAA,OAAAsH,IAAA1V,IAAAk2E,KAAA,QAGAJ,YAAA,SAAA91E,IACA,OAAAhN,KAAAq1E,cAAAroE,GAAA,SAAAhN,KAAAq1E,cAAAroE,GAAA,eASAm2E,WAEApV,QAAAkT,OAEAruE,KAAA,OAEAmX,OACAzP,QAAAjQ,OACAkvE,KAAAlvE,OACA69D,KAAAxJ,QACA2iB,QAAA3iB,SAGA59C,MACAxG,QAAA,wBACAi/D,KAAA,QACArR,MAAA,EACAmZ,SAAA,EACAK,QAAA,oBACA0B,aAAA,yBACAlC,SAAA,oBACAmC,QAAA,oBACAC,WAAA,uBACAC,oBAAA,iCACAC,oBAAA,6BACAC,QAAA,eACAC,WAAA,uBACA3L,SAAA,uBAGAvoD,UAEAlV,QAAA,SAAAkoD,KAGA,OAAAn5B,EAFAm5B,IAAAloD,UAEA3d,SAAA+mB,MAGA2/D,QAAA,SAAA7gB,KACA,IAAA0F,KAAA1F,IAAA0F,KACAmb,QAAA7gB,IAAA6gB,QAEA,OAAAnb,KAAAmb,QAAA,IAGAK,WAAA,SAAAlhB,KACA,IAAA6e,QAAA7e,IAAA6e,QACAqC,WAAAlhB,IAAAkhB,WAEA,OAAArC,QAAAqC,WAAA,IAGAD,QAAA,SAAAjhB,KACA,IAAA+W,KAAA/W,IAAA+W,KAGA,OAFA/W,IAAAihB,QAEA,IAAAlK,MAGAiK,oBAAA,SAAAhhB,KACA,IAAA+W,KAAA/W,IAAA+W,KACAiK,oBAAAhhB,IAAAghB,oBAEA,MAAA,SAAAjK,MAAA,WAAAA,KAAA,GAAAiK,qBAGAD,oBAAA,SAAA/gB,KACA,IAAA+W,KAAA/W,IAAA+W,KACAgK,oBAAA/gB,IAAA+gB,oBAEA,MAAA,SAAAhK,MAAA,WAAAA,KAAA,GAAAgK,qBAGAhC,kBAAA,SAAA/e,KAGA,MAAA,WAFAA,IAAA+W,KAEAv5E,KAAAshF,MAAAv/E,WAAA/B,KAAAshF,QAKA7T,QAEA3B,MAAA,WAEA9rE,KAAA6hF,cAAA7hF,QAEAA,KAAAqhF,SAAArhF,KAAAujF,sBACA9zD,MAAAzvB,KAAAsa,QAAAmV,MAAA5xB,QAAAmC,KAAA2hF,gBAGA3hF,KAAAqhF,UACAzqD,OAAA52B,KAAAsa,QAAAsc,OAAA/4B,SACA84E,SACA32E,KAAAsa,QAAAmb,UAAAkhD,OAAAx8B,MAQAlzB,QAAA,WAIAA,SAIA7iB,KAAA,QAEAqkC,SAAA,WACA,MAAA,gBAGAt7B,QAAA,SAAAq1D,KACA,IAAA5+B,QAAA4+B,IAAA5+B,QAEAA,QAAArwB,MAAA81B,EAAAzF,QAAArwB,KAAAvT,KAAAsa,WACAq8D,OAAA,KACA32E,KAAA8jB,WAQA1f,KAAA,eAEAuK,OAAA,WACA,OAAA3O,KAAAqhF,SAGAl0E,QAAA,SAAAhC,EAAAwrE,OAAAnyE,QACAmyE,QAAAnyE,QAAAxE,KAAAy2E,aAAAptC,EAAA7kC,OAAAxE,KAAAsa,WACA0B,KAAAhc,KAAA6yE,IAAA,SAAA,WAAA,OAAA8D,OAAA5uC,SAAAvjC,UACA2G,EAAA0d,qBAOAzkB,KAAA,OAEA2U,MAAA,EAEA5L,QAAA,WAEAwpE,OAAAA,SAAAh8B,EAAA98C,OAAA+pC,YAAAuS,EAAAt8C,OAAA8pC,aAEA,WAAA3nC,KAAAu5E,MAAAp9C,SAAAn8B,KAAAshF,MAAAthF,KAAAyjF,WACAv/C,QAAAlkC,KAAAshF,MAAA,SACA5lD,SAAA17B,KAAAshF,MAAAv/E,WAAA/B,KAAAyjF,UAGA/gE,IAAA/lB,SAAAsR,gBAAA,cAAAjO,KAAAujF,qBAAAvjF,KAAAkoE,OAAAloE,KAAA2hF,gBAAA3hF,KAAAqhF,QAAA,SAAA,IACA3lD,SAAA/+B,SAAA+mB,KAAA1jB,KAAAojF,aAAApjF,KAAAqjF,QAAArjF,KAAA0jF,YACA9sD,OAAAj6B,SAAA+mB,MACAgY,SAAA17B,KAAAsa,QAAAta,KAAAujF,qBACA7nD,SAAA17B,KAAAshF,MAAAthF,KAAAwjF,oBAAA,WAAAxjF,KAAAu5E,KAAAv5E,KAAAyjF,QAAA,IACA/nD,SAAA17B,KAAA6yE,IAAA7yE,KAAA0jF,YACAhhE,IAAA1iB,KAAA6yE,IAAA,UAAA,SACAj8C,OAAA52B,KAAA6yE,QAMAzuE,KAAA,OAEA2U,MAAA,EAEA5L,QAAA,WACA9N,YAAAW,KAAAsa,QAAAta,KAAAujF,qBAEA,IAAA1jD,OAAA7/B,KAAA6hF,aACA,SAAA7hF,KAAAu5E,MAAA15C,QAAAA,SAAA7/B,MAAA6/B,SAAA7/B,KAAAuZ,OACAmQ,QAAA1pB,KAAAshF,MAAA,oBAMAl9E,KAAA,SAEA2U,MAAA,EAEA5L,QAAA,WAMA,GAJA,WAAAnN,KAAAu5E,MACAj1C,OAAAtkC,KAAAshF,OAGAthF,KAAAqhF,SAEA,IAAA1K,OAAA,CACA,IAAAnU,IAAAxiE,KAAAsa,QACAqgC,EAAA6nB,IAAA9sC,WACAykB,EAAAqoB,IAAA/sC,UACAkhD,QAAAh8B,EAAAA,EAAAR,EAAAA,SALAw8B,QAAAh8B,EAAA98C,OAAA+pC,YAAAuS,EAAAt8C,OAAA8pC,aAQAtoC,YAAAW,KAAAshF,MAAAthF,KAAAwjF,oBAAAxjF,KAAAyjF,SACApkF,YAAAW,KAAA6yE,IAAA7yE,KAAA0jF,YACAhhE,IAAA1iB,KAAA6yE,IAAA,UAAA,IACAxzE,YAAA1C,SAAA+mB,KAAA1jB,KAAAojF,aAAApjF,KAAAqjF,QAAArjF,KAAA0jF,YACA/mF,SAAA+mB,KAAA+R,UAAAkhD,OAAAx8B,EAEAz3B,IAAA/lB,SAAAsR,gBAAA,YAAA,IAEAwhB,MAAAzvB,KAAAsa,QAAA,IACAsc,OAAA52B,KAAAsa,QAAA,IAEAzc,OAAA84E,OAAAA,OAAAh8B,EAAAg8B,OAAAx8B,GAEAw8B,OAAA,QAMAvyE,KAAA,uBAEA+I,QAAA,SAAAhC,GAEAnL,KAAAy2E,aAAAnG,QAAAnlE,KAAA,cAAAA,EAAA1M,OAAAuB,KAAAkoE,MAAA,eAAA/8D,EAAA1M,MAAAuB,KAAAkoE,OACAloE,KAAA8jB,WAUA6/D,cAEA5V,QAAA2H,OAEAlmD,UAEAuyD,MAAA,SAAA93E,EAAA4oE,KACA,OAAAl5D,QAAAk5D,IAAA,cAGAyO,MAAA,SAAAr3E,EAAA4oE,KACA,OAAAl5D,QAAAk5D,IAAA,sBAKAxF,UAAA,WACA3qD,IAAA1iB,KAAA6yE,IAAA,YAAA,MAGApF,QAEA3B,MAAA,WAEA,GAAA9rE,KAAAshF,OAAAthF,KAAA+hF,MAAA,CAIA,IAAAn+C,QAAAlhB,IAAA1iB,KAAA6yE,IAAA,aAEAnwD,IAAAA,IAAA1iB,KAAA6yE,IAAA,YAAA,KAAA,YAAA/tE,KAAAytB,IAAA,IAAA,IAAAqE,OAAA52B,KAAA+hF,OAAA/hF,KAAAshF,MAAA98C,eACAZ,UAAAlhB,IAAA1iB,KAAA6yE,IAAA,cACAnpD,QAAA1pB,KAAA6yE,IAAA,YAIA5rD,QAAA,OAAA,YAMA28D,YAEA75D,OAAA,QAAA,UAEAsjD,UAAA,WACA3xC,SAAA17B,KAAA6yE,IAAA,wBAGApF,QAEA9B,KAAA,WACA,SAAAvJ,UAAApiE,KAAA6yE,MAAA7yE,KAAAyvB,OAAAzvB,KAAA42B,UACAnH,MAAAA,MAAAzvB,KAAA6yE,IAAA9wE,YAAA60B,OAAA52B,KAAA42B,SAIAk1C,MAAA,SAAAxD,KACA1xC,OAAA52B,KAAA6yE,IAAAtT,WAAAI,SAAA/oC,OAAA52B,KAAA42B,OAAAnH,MAAAzvB,KAAAyvB,OAAA64C,KAAA1xC,SAGA3P,QAAA,OAAA,YAMA48D,QAEA95D,OACAsL,SAAAgpC,OACAt3B,OAAAs3B,QAGAv9C,MACAuU,SAAA,IACA0R,OAAA,GAGA2mC,SAEA3lC,SAAA,SAAA/6B,IACA,IAAA6yD,OAAA7/D,KAGAgN,GAAAA,IAAAq8B,EAAAr8B,KAAArQ,SAAA+mB,KAEA,IAAAogE,UAAAltD,OAAAj6B,UACAonF,UAAAntD,OAAA/4B,QAEA2G,OAAAuiC,OAAA/5B,IAAAqB,IAAArO,KAAA+mC,OAKA,GAJAviC,OAAAu/E,UAAAD,YACAt/E,OAAAs/E,UAAAC,WAGAr6D,QAAA1pB,KAAA6yE,IAAA,gBAAA7yE,KAAAgN,KAAA,CAIA,IAAA9O,MAAAsJ,KAAA4iB,MACA45D,OAAAnmF,OAAA8pC,YACApS,KAAA,WAEA,IAmCAszB,EAnCAo7B,SAAAD,QAAAx/E,OAAAw/E,SAmCAn7B,EAnCAmW,OAAAx3D,KAAA4iB,MAAAlsB,OAAA2hE,OAAAxqC,UAoCA,IAAA,EAAAvwB,KAAAgxB,IAAAhxB,KAAAixB,GAAA8yB,KAlCAhrD,OAAA84E,OAAA94E,OAAA+pC,YAAAq8C,UAGAA,WAAAz/E,OACA8xB,sBAAAf,MAEA7L,QAAAm2C,OAAAgT,IAAA,YAAAhT,OAAA7yD,MAKAuoB,UAMAtO,QAEA2C,MAAA,SAAAze,GAEAA,EAAA8e,mBAIA9e,EAAA0d,iBACA7oB,KAAA+nC,SAAAx3B,OAAAvQ,KAAA6yE,IAAAt/D,MAAAgjC,OAAA,QAWA,IAAA2tC,WAEAtxE,KAAA,MAEAmX,OACAs7C,IAAA,OACA7gE,OAAA6F,OACAgsB,OAAAqoC,QACA+L,UAAApM,OACAqM,WAAArM,OACA8lB,OAAAzlB,QACAzkC,MAAAokC,QAGAv9C,KAAA,WAAA,OACAukD,OACA7gE,QAAA,EACA6xB,QAAA,EACAo0C,UAAA,EACAC,WAAA,EACAyZ,QAAA,EACAlqD,MAAA,EACAmqD,YAAA,wBAGA50D,UAEArf,SAAA,SAAAqyD,IAAAqQ,KACA,IAAAruE,OAAAg+D,IAAAh+D,OAEA,OAAAA,OAAAmjE,GAAAnjE,OAAAquE,MAAAA,OAKApF,SAIA3B,MAAA,WACA9rE,KAAAq2B,QACA3T,IAAA/T,OAAA3O,KAAAmQ,SAAA,SAAAnQ,KAAA,YAAA,KAAA,aAAA,aAQA2rE,KAAA,SAAAvgE,KACA,IAAAy0D,OAAA7/D,KAGAoL,IAAA6uB,OAIAj6B,KAAAmQ,SAAAoyC,QAAA,SAAAv1C,GAAApL,GAEA,IAAAyiF,OAAAj5E,IAAAxJ,GAEA,IAAAyiF,QAAAA,OAAAr3E,KAAAA,GAAA,CACA,IAAAq4D,IAAAvkD,KAAA9T,GAAA,sBACAq3E,QAAAr3E,GAAAA,GAAAs3E,QAAAjf,KAAAA,IAAA/+D,MAAA,MAAAu5D,OAAAwF,KAGAgf,OAAAzgE,KAAAgmD,SAAA58D,GAAA6yD,OAAA4K,UAAA5K,OAAA6K,YACAt/D,IAAAxJ,GAAAyiF,UAKAvY,MAAA,SAAA1gE,KACA,IAAAy0D,OAAA7/D,KAIA,IAAAoL,IAAA6uB,MAEA,OADAj6B,KAAAi1E,QACA7pE,IAAA6uB,OAAA,EAGA,IAAAs5C,SAAA,IAAAvzE,KAAAmQ,SAAA3N,OAAA,EAAA,EAEAxC,KAAAmQ,SAAAoyC,QAAA,SAAAv1C,GAAApL,GAEA,IAAAyiF,OAAAj5E,IAAAxJ,GACAyjE,IAAAgf,OAAAC,QAAA1iF,IAAAyiF,OAAAC,QAAA,GAEA,IAAAD,OAAAzgE,MAAAygE,OAAAzJ,QAAAyJ,OAAAtsD,OAuBAssD,OAAAzgE,MAAAygE,OAAAzJ,QAAA/a,OAAAskB,SAEAE,OAAAtsD,QACAqC,aAAAiqD,OAAAtsD,cACAssD,OAAAtsD,OAGArV,IAAA1V,GAAA,aAAA6yD,OAAAxpC,OAAA,SAAA,IACAh3B,YAAA2N,GAAA6yD,OAAAukB,aACAroD,YAAA/uB,GAAAq4D,KAEA37C,QAAA1c,GAAA,WAEA6yD,OAAAuV,QAAApoE,IAEAq3E,OAAAzJ,QAAA,OAtCA,CAEA,IAAAh3D,KAAA,WACAlB,IAAA1V,GAAA,aAAA,IACA0uB,SAAA1uB,GAAA6yD,OAAAukB,aACAroD,YAAA/uB,GAAAq4D,KAEA37C,QAAA1c,GAAA,UAEA6yD,OAAAuV,QAAApoE,IAEAq3E,OAAAzJ,QAAA,SACAyJ,OAAAtsD,OAGA8nC,OAAA5lC,OAAAs5C,SACA8Q,OAAAtsD,MAAA3Z,WAAAwF,KAAAi8C,OAAA5lC,MAAAs5C,UAEA3vD,OAGA2vD,eA0BAtsD,QAAA,SAAA,OAAA,aAQAs9D,cAEAx6D,OACAs7C,IAAAh7D,OACAsP,QAAAtP,OACAssE,OAAAjY,QACAjmC,SAAAimC,QACA33B,OAAAs3B,QAGAv9C,MACAukD,IAAA,YACA1rD,SAAA,EACAg9D,QAAA,EACAl+C,UAAA,EACAsO,OAAA,GAGAvX,UAEAma,MAAA,SAAA1/B,EAAA4oE,KACA,OAAAlL,GAAA,eAAAkL,KAAAlkE,OAAA,SAAA3B,IAAA,OAAAA,GAAAuG,QAGApD,SAAA,WACA,OAAAnQ,KAAA2Z,QAAAA,QAAA3Z,KAAA2pC,MAAA3pC,KAAA2Z,SAAA3Z,KAAA2pC,OAGAlwB,QAAA,WACA,OAAAkuD,GAAA3nE,KAAA2pC,MAAArmC,IAAA,SAAA0J,IAAA,OAAAA,GAAAuG,OAAAnH,KAAA,QAKAqhE,SAIA9B,KAAA,WACA3rE,KAAA22E,QACA32E,KAAAm1E,QAAA,SAAAn1E,KAAA2pC,OAAA5C,OAAA/mC,KAAA+mC,QAAA,OAQA4kC,KAAA,SAAAuD,SACA,IAAArP,OAAA7/D,KAGA22E,OAAA94E,OAAA8pC,YAAA3nC,KAAA+mC,OAAA,EACAxU,IAAAqE,OAAAj6B,UAAAi6B,OAAA/4B,QAAAmC,KAAA+mC,OAEAmoC,QAAArvC,QAAA,EAEA7/B,KAAAyZ,QAAA25D,MAAA,SAAApmE,GAAApL,GAEA,IACAyM,IADA04B,OAAA/5B,IACAqB,IACAzK,KAAAhC,EAAA,IAAAi+D,OAAApmD,QAAAjX,OAEA,IAAAq9D,OAAApnC,WAAA,IAAA72B,GAAAyM,IAAAsoE,QAAA/yE,MAAAyK,IAAArB,GAAAy9D,UAAAkM,QACA,OAAA,EAGA,IAAA/yE,MAAAmjC,OAAA84B,OAAApmD,QAAA7X,EAAA,IAAAyM,KAAAsoE,OACA,OAAA,EAGA,GAAAA,QAAApkD,IACA,IAAA,IAAAzuB,EAAA+7D,OAAApmD,QAAAjX,OAAA,EAAAsB,EAAAlC,EAAAkC,IACA,GAAA8lE,SAAA/J,OAAApmD,QAAA3V,IAAA,CACAkJ,GAAA6yD,OAAApmD,QAAA3V,GACA,MAKA,QAAAorE,QAAArvC,OAAAwJ,EAAA16B,OAAAkxD,OAAAl2B,MAAA,WAAA38B,GAAA,GAAA,WAMA8+D,MAAA,SAAAtJ,KACA,IAAA3iC,OAAA2iC,IAAA3iC,OAGA7/B,KAAA2pC,MAAA4Y,QAAA,SAAAv1C,IAAA,OAAAA,GAAA2c,SACAtqB,YAAAW,KAAAmQ,SAAAnQ,KAAAqlE,KAEAxlC,QACAnW,QAAA1pB,KAAA6yE,IAAA,UAAAhzC,OAAAnE,SAAA17B,KAAA2Z,QAAAA,QAAAkmB,OAAA7/B,KAAA2Z,SAAAkmB,OAAA7/B,KAAAqlE,QAKAp+C,QAAA,SAAA,OAAA,aAQAu9D,QAEAzW,QAAA2H,OAEAxoE,OAAA,EAEA6c,OACA1b,IAAA,KACA+wD,OAAAV,QACA33B,OAAAs3B,OACAvnC,UAAAzsB,OACAo6E,UAAAp6E,OACAq6E,YAAAr6E,OACAs6E,SAAAt6E,OACAu6E,SAAAv6E,OACAw6E,UAAAx6E,OACAy6E,aAAApmB,QACAqmB,SAAArmB,QACAiiB,MAAA,QACA1Y,aAAA5J,QAGAv9C,MACAzS,IAAA,EACA+wD,QAAA,EACAr4B,OAAA,EACAjQ,UAAA,GACA2tD,UAAA,YACAC,YAAA,GACAC,SAAA,kBACAC,SAAA,kBACAC,UAAA,GACAC,cAAA,EACAC,UAAA,EACApE,OAAA,EACA1Y,cAAA,GAGAz4C,UAEAq1D,UAAA,SAAAriB,IAAAqQ,KACA,IAAAgS,UAAAriB,IAAAqiB,UAEA,OAAAA,WAAAx7C,EAAAw7C,UAAAhS,MAAAA,KAGAiS,aAAA,SAAAtiB,IAAAqQ,KAGA,OAAAzS,MAFAoC,IAAAsiB,aAEAjS,MAAA7yE,KAAAglF,cAKA3X,UAAA,WAEArtE,KAAAglF,YAAA37C,EAAA,2BAAArpC,KAAA6yE,MAAAxpC,EAAA,6CAEArpC,KAAA+5E,UACA/5E,KAAA8jB,QAIAypD,aAAA,WAEAvtE,KAAA+5E,WACA/5E,KAAA+5E,UAAA,EACA/5E,KAAA8jB,OACAzkB,YAAAW,KAAA6kF,UAAA7kF,KAAA0kF,cAGAxoE,OAAAlc,KAAAglF,aACAhlF,KAAAglF,YAAA,KACAhlF,KAAA8kF,aAAA,MAGA79D,SAGA7iB,KAAA,SAEA2U,MAAA,EAEA5L,QAAA,WACAm4D,aAAAtlE,KAAA6kF,UAAA7kF,KAAA0kF,YAAA1kF,KAAAykF,cAMArgF,KAAA,WAEA2U,MAAA,EAEA5L,QAAA,WACAm4D,aAAAtlE,KAAA6kF,UAAA7kF,KAAAykF,UAAAzkF,KAAA0kF,gBAOAtgF,KAAA,2BAEA4I,GAAAnP,OAEAsP,QAAA,WACA,IAAA0yD,OAAA7/D,KAGA,IAAA,IAAAA,KAAAioE,cAAAz0D,SAAAD,MAAA1V,OAAA8pC,YAAA,EAAA,CAIA,IAAAnjC,OAAA6kC,EAAA71B,SAAAD,MAEA/O,QACAgnE,QAAAG,KAAA,WAEA,IACAt9D,IADA04B,OAAAviC,QACA6J,IACA47D,MAAAljC,OAAA84B,OAAAgT,KAAAxkE,IACAi8D,SAAAzK,OAAAgT,IAAAruC,aAEAq7B,OAAAka,UAAA9P,MAAAK,UAAAj8D,KAAA47D,OAAA57D,IAAA7J,OAAAggC,cACA3mC,OAAA84E,OAAA,EAAAtoE,IAAAi8D,UAAAvhC,UAAA82B,OAAAoI,cAAApI,OAAAoI,aAAA,GAAApI,OAAA94B,cAYA0mC,SAIA3B,MAAA,WAEA,IACAkZ,YADAhlF,KACAglF,YACAxgD,aAFAxkC,KAEA6yE,IAAAruC,aAEA9hB,IAAAsiE,YAAAnmB,QACAjoC,OAAA,aAAAlU,IAAA1iB,KAAA6yE,IAAA,YAAAruC,aAAA,IACA9hB,IAAA1iB,KAAA6yE,KAAA,YAAA,eAAA,aAAA,kBAGAtQ,OAAAyiB,YAAAroF,YACA8xB,MAAAzuB,KAAA6yE,IAAAmS,aACA50E,KAAA40E,YAAA,SAAA,KAGAhlF,KAAA6pE,UAAA9iC,OAAA/mC,KAAA+5E,SAAAiL,YAAAhlF,KAAA6yE,KAAAxkE,IACArO,KAAAilF,aAAAjlF,KAAA6pE,UAAArlC,aAEA,IAAA46B,OAAA8lB,UAAA,SAAAllF,MAEAA,KAAAqO,IAAAvJ,KAAAytB,IAAA+rC,QAAA4mB,UAAA,MAAAllF,OAAAA,KAAA6pE,WAAA7pE,KAAA+mC,OACA/mC,KAAAo/D,OAAAA,QAAAA,OAAA56B,aACAxkC,KAAAmlF,SAAAnlF,KAAA2gF,QAAA9iF,OAAA6hF,WAAA1/E,KAAA2gF,OAAA56E,SAIAkhB,QAAA,OAAA,YAMA0kD,KAAA,SAAA1hE,EAAAu4D,KACA,IAAA4iB,QAAA5iB,IAAA4iB,QAKA,YALA,IAAAA,UAAAA,QAAAvnF,OAAA8pC,aAGA3nC,KAAAyvB,OAAA2yC,UAAApiE,KAAA8kF,cAAA9kF,KAAA8kF,aAAA9kF,KAAA6yE,KAAA/hD,aAGA6lD,OAAA32E,KAAA22E,OAAAyO,QACA7gD,QAAA69B,UAAApiE,KAAA6yE,OAIA/G,MAAA,SAAAtJ,IAAA8Q,OACA,IAAAzT,OAAA7/D,KACAukC,QAAAi+B,IAAAj+B,QACAoyC,OAAAnU,IAAAmU,YACA,IAAArD,QAAAA,UACA,IAAAtoE,IAAAsoE,MAAAtoE,IAGA,KAAA2rE,OAAA,IAAApyC,SAAAvkC,KAAA+K,UAAA/K,KAAA+kF,WAAA/5E,KAIA,GAAAhL,KAAAmlF,UACAxO,OAAA32E,KAAAqO,KACArO,KAAA+kF,WAAApO,QAAA32E,KAAAqO,KAAA,SAAArD,KAAA,OAAAA,MAAAhL,KAAA+5E,UAAApD,QAAA32E,KAAAilF,cACA,CAEA,IAAAjlF,KAAA+5E,SACA,OAGA/5E,KAAA+5E,UAAA,EAEA/5E,KAAA82B,WAAA6/C,OAAA32E,KAAA6pE,WACA9yC,UAAAowC,OAAAnnE,KAAA6yE,KACA97C,UAAAwT,IAAAvqC,KAAA6yE,IAAA7yE,KAAA82B,WAAA1b,KAAA,WAAA,OAAAykD,OAAA/7C,QAAA3e,OAEAnF,KAAA8jB,YAGA9jB,KAAA+5E,SAEA/5E,KAAAytE,SAEAztE,KAAA82B,WAEAC,UAAAowC,OAAAnnE,KAAA6yE,KACA7yE,KAAA4jB,OACAmT,UAAA0wC,GAAAznE,KAAA6yE,IAAA7yE,KAAA82B,WAAAla,MAAAzX,OAGAnF,KAAA4jB,QAKAqD,QAAA,OAAA,SAAA,YAIAymD,SAEA9pD,KAAA,WAEA5jB,KAAA+5E,UAAA,EACA/5E,KAAAytE,SACAr9D,KAAApQ,KAAAglF,YAAA,SAAA,OAIAlhE,KAAA,WAEA9jB,KAAA+5E,WAAA59C,SAAAn8B,KAAA6kF,UAAA7kF,KAAAykF,YACA/6D,QAAA1pB,KAAA6yE,IAAA,YAGAxzE,YAAAW,KAAA6yE,IAAA7yE,KAAA2kF,SAAA3kF,KAAA4kF,UACAliE,IAAA1iB,KAAA6yE,KAAAjiD,SAAA,GAAAviB,IAAA,GAAAohB,MAAA,KACArf,KAAApQ,KAAAglF,YAAA,SAAA,KAIAvX,OAAA,WAEA,IAAA5tC,OAAA,IAAA7/B,KAAAqO,KAAArO,KAAA22E,OAAA32E,KAAAqO,IACAA,IAAAvJ,KAAAytB,IAAA,EAAAvyB,KAAA+mC,QAEA/mC,KAAAo/D,QAAAp/D,KAAA22E,OAAA32E,KAAAo/D,OAAAp/D,KAAA+mC,SACA14B,IAAArO,KAAAo/D,OAAAp/D,KAAA22E,QAGAj0D,IAAA1iB,KAAA6yE,KACAjiD,SAAA,QACAviB,IAAAA,IAAA,KACAohB,MAAAzvB,KAAAyvB,QAGA0M,SAAAn8B,KAAA6kF,UAAA7kF,KAAAykF,WAEA5kD,QACAnW,QAAA1pB,KAAA6yE,IAAA,YAGAhzC,QACAnW,QAAA1pB,KAAA6yE,IAAA,UAGA92C,YAAA/7B,KAAA6yE,IAAA7yE,KAAA4kF,SAAA5kF,KAAA22E,OAAA32E,KAAAilF,cACAvpD,SAAA17B,KAAA6yE,IAAA7yE,KAAA2kF,aAQA,SAAAO,UAAAnkE,KAAAyhD,KACA,IAAAoQ,OAAApQ,IAAAoQ,OACAC,IAAArQ,IAAAqQ,IACAwS,WAAA7iB,IAAAzhD,KAAA,UAGA7a,MAAA0sE,OAAA7xD,MAEA,GAAA7a,MAAA,CAIA,GAAA6iC,UAAA7iC,OAEA,OAAAm/E,WAAA/mB,QAAAp4D,OAEA,GAAAw3D,SAAAx3D,QAAAA,MAAAsF,MAAA,aAEA,OAAAorB,OAAA/4B,QAAAygE,QAAAp4D,OAAA,IAIA,IAAA8G,IAAA,IAAA9G,MAAA2sE,IAAA9wE,WAAAq+D,MAAAl6D,MAAA2sE,KAEA,OAAA7lE,GACA+5B,OAAA/5B,IAAAqB,IAAArB,GAAAw3B,kBADA,GAOA,IAAA8gD,UAEAvX,QAAA4H,WAEA/iE,KAAA,UAEAmX,OACA+qD,QAAAzqE,OACA0Z,OAAA1Z,OACAw1B,OAAAw+B,OACAknB,QAAA7mB,SAGA59C,MACAg0D,QAAA,gBACA/wD,OAAA,MACA8b,OAAA,EACA0lD,SAAA,EACAlgB,IAAA,YACA+d,aAAA,cACAoC,SAAA,mBACA5P,QAAA,GAGApmD,UAEAi2D,SAAA,SAAAjjB,IAAAqQ,KAGA,OAAAvS,SAFAkC,IAAAsS,QAEAjC,MAGAyR,QAAA,SAAA9hB,IAAAqQ,KAGA,OAAAlL,GAFAnF,IAAAz+C,OAEA8uD,OAKA5rD,SAIA7iB,KAAA,QAEAqkC,SAAA,WACA,OAAAzoC,KAAA,OAAA,sBAGAmN,QAAA,SAAAhC,GACAA,EAAA0d,iBACA7oB,KAAA4jB,KAAAzY,EAAAy4B,YAMAx/B,KAAA,QAEA4I,GAAA,WACA,OAAAhN,KAAAylF,UAGAh9C,SAAA,WACA,MAAA,IAAAzoC,KAAA,SAAA,WAAAA,KAAA,SAAA,KAGAmN,QAAA,SAAAhC,GACAA,EAAA0d,iBACA7oB,KAAA4jB,KAAA9C,KAAA3V,EAAAy4B,QAAA5jC,KAAAwlF,cAKAphF,KAAA,uBAEAuK,OAAA,WACA,OAAA3O,KAAAulF,SAGAv4E,GAAA,WACA,OAAAhN,KAAAylF,UAGAt4E,QAAA,SAAAhC,GACAmlE,QAAAnlE,KAIAA,EAAA0d,iBACAhrB,OAAA6nF,eAAA/kF,YACAX,KAAA4jB,KAAA,cAAAzY,EAAA1M,KAAA,OAAA,gBAOAgvE,OAAA,WACA,IAAA5N,OAAA7/D,KAGAA,KAAAylF,SAAAljC,QAAA,SAAAl6C,MAAA,OAAAw3D,OAAAgX,WAAAxuE,KAAAgR,YACArZ,KAAA4jB,KAAAjV,OAAA3O,KAAAskF,QAAA,IAAAtkF,KAAA,KAAA,IAAAA,KAAAskF,QAAAtkF,KAAA6/B,SAAA7/B,KAAAskF,QAAA,KAIA5W,SAEA9pD,KAAA,SAAAyoD,MAYA,IAXA,IASAtoD,OATA87C,OAAA7/D,KAIAwC,OADAxC,KAAAskF,QACA9hF,OACA+W,OAAAvZ,KAAAylF,SAAAjjF,QAAAoX,MAAAjL,OAAA3O,KAAAylF,SAAA,GAAApsE,SAAA,IAAArZ,KAAA,KAAA,IACA2lF,QAAApsE,MAAA,EACAvO,IAAA,aAAAqhE,MAAA,EAAA,EAEAphE,KAAAu5D,SAAA6H,KAAArsE,KAAAskF,QAAA/qE,MAEA3X,EAAA,EAAAA,EAAAY,OAAAZ,IAAAqJ,MAAAA,KAAAD,IAAAxI,QAAAA,OACA,IAAAuD,QAAA85D,OAAAykB,QAAAr5E,MAAA,4BAAA,CACA8Y,OAAA87C,OAAAykB,QAAAr5E,MACA,OAIA8Y,QAAAxK,MAAA,GAAA4iB,SAAApY,OAAA/jB,KAAAqlE,MAAA9rD,OAAAtO,OAIA5L,YAAAW,KAAAskF,QAAAtkF,KAAAqlE,KACAj1D,KAAApQ,KAAAskF,QAAA,iBAAA,GACA5oD,SAAA3X,OAAA/jB,KAAAqlE,KACAj1D,KAAA2T,OAAA,iBAAA,GAEA/jB,KAAAylF,SAAAljC,QAAA,SAAAl6C,MACAs9E,QAGA9lB,OAAAwW,eAAAhuE,KAAAgR,SAAAE,MAAAlR,KAAAgR,SAAApO,QAFA40D,OAAA+W,UAAAvuE,KAAAgR,SAAApO,aAYA26E,KAEA7X,QAAA2H,OAEA5H,QAAAwX,SAEAv7D,OACA42D,MAAA,SAGA7/D,MACA6/D,MAAA,IACA6E,SAAA,eAGAnY,UAAA,WAEA,IAAAhI,IAAAlpC,SAAAn8B,KAAA6yE,IAAA,eACA,gBACA12C,SAAAn8B,KAAA6yE,IAAA,iBACA,eAGAxN,KACArlE,KAAAm1E,QAAA,SAAAn1E,KAAA6yE,KAAAxN,IAAAA,IAAAkU,KAAA,QAAAoH,MAAA3gF,KAAA2gF,UAMAkF,QAEA9X,QAAA4H,WAEA/iE,KAAA,SAEAmX,OACAlW,KAAAxJ,OACA7F,OAAA,KACA+0E,KAAA,OACAoH,MAAA,SAGA7/D,MACAjN,MAAA,EACArP,QAAA,EACA+0E,KAAA,QACA3D,QAAA,EACA+K,OAAA,GAGAnxD,UAEAhrB,OAAA,SAAAg+D,IAAAqQ,KACA,IAAAh/D,KAAA2uD,IAAA3uD,KACArP,OAAAg+D,IAAAh+D,OAGA,OADAA,OAAA87D,SAAA97D,QAAAqP,KAAAg/D,MACArwE,QAAAgC,SAAAquE,OAKA5rD,SAIA7iB,KAAAknE,aAAA,IAAAC,aAEA58D,OAAA,WACA,OAAA6uD,SAAAx9D,KAAAu5E,KAAA,UAGApsE,QAAA,SAAAhC,GACAmlE,QAAAnlE,IACAnL,KAAA+jB,OAAA,UAAA5Y,EAAA1M,OAAA6sE,aAAA,OAAA,YAQAlnE,KAAA,QAEAuK,OAAA,WACA,OAAA6uD,SAAAx9D,KAAAu5E,KAAA,UAAAxO,UAAAvN,SAAAx9D,KAAAu5E,KAAA,UAGApsE,QAAA,SAAAhC,GAOA,IAAA2iC,MALAwiC,QAAAnlE,IAAAqyD,SAAAx9D,KAAAu5E,KAAA,aAMA5/D,QAAAxO,EAAA3G,OAAA,yBACAspC,KAAAn0B,QAAAxO,EAAA3G,OAAA,cACAxE,KAAAqlE,MACAjD,UAAApiE,KAAAwE,SACAspC,KAAAv6B,MAAAxN,QAAA/F,KAAAwE,OAAAspC,KAAAv6B,SAGAyI,KAAArf,SAAA,QAAA,SAAAwO,GAAA,OAAAA,EAAA0d,mBAGA7oB,KAAA+jB,aAMA0pD,QAEA3B,MAAA,WAEA,GAAAtO,SAAAx9D,KAAAu5E,KAAA,UAAAv5E,KAAA2gF,MAAA,CAIA,IAAAnK,QAAAx2E,KAAAy2E,UAAAz2E,KAAAwE,SACA3G,OAAA6hF,WAAA1/E,KAAA2gF,OAAA56E,SAAAywE,QAAAA,UACAx2E,KAAA+jB,WAKAkD,QAAA,OAAA,WAIAymD,SAEA3pD,OAAA,SAAAtlB,MACAirB,QAAA1pB,KAAAwE,OAAA/F,MAAA,UAAAuB,QACAA,KAAAq2E,cAAAr2E,KAAAwE,WA2DA83D,MAAAvyB,QAAA,aAnDA,SAAAuyB,OAGAA,MAAA4U,UAAA,YAAAqG,WACAjb,MAAA4U,UAAA,QAAA2G,OACAvb,MAAA4U,UAAA,QAAAyH,OACArc,MAAA4U,UAAA,OAAAoI,MACAhd,MAAA4U,UAAA,WAAAsJ,UACAle,MAAA4U,UAAA,aAAAuJ,YACAne,MAAA4U,UAAA,MAAAyJ,KACAre,MAAA4U,UAAA,OAAAmK,MACA/e,MAAA4U,UAAA,cAAA2K,aACAvf,MAAA4U,UAAA,iBAAA+K,gBACA3f,MAAA4U,UAAA,OAAA+M,MACA3hB,MAAA4U,UAAA,MAAA0N,KACAtiB,MAAA4U,UAAA,SAAAuP,QACAnkB,MAAA4U,UAAA,SAAA2J,QACAve,MAAA4U,UAAA,QAAA4Q,SACAxlB,MAAA4U,UAAA,MAAAqR,KACAjmB,MAAA4U,UAAA,SAAAsR,QACAlmB,MAAA4U,UAAA,YAAAiS,WACA7mB,MAAA4U,UAAA,eAAAyS,cACArnB,MAAA4U,UAAA,aAAA0S,YACAtnB,MAAA4U,UAAA,SAAA2S,QACAvnB,MAAA4U,UAAA,YAAAgT,WACA5nB,MAAA4U,UAAA,eAAAqT,cACAjoB,MAAA4U,UAAA,SAAAsT,QACAloB,MAAA4U,UAAA,MAAAmL,KACA/f,MAAA4U,UAAA,WAAAoU,UACAhpB,MAAA4U,UAAA,MAAA0U,KACAtpB,MAAA4U,UAAA,SAAA2U,QACAvpB,MAAA4U,UAAA,QAAAmH,OAGA/b,MAAA4U,UAAA,QAAAwN,OACApiB,MAAA4U,UAAA,SAAAqN,eACAjiB,MAAA4U,UAAA,mBAAAqN,eACAjiB,MAAA4U,UAAA,cAAAqN,eACAjiB,MAAA4U,UAAA,iBAAAqN,eACAjiB,MAAA4U,UAAA,qBAAAqN,eACAjiB,MAAA4U,UAAA,aAAAuN,QACAniB,MAAA4U,UAAA,eAAAsN,UACAliB,MAAA4U,UAAA,mBAAAsN,UACAliB,MAAA4U,UAAA,UAAAyN,SACAriB,MAAA4U,UAAA,QAAAqN,eAGAjiB,MAAAwU,IAAAkH,MAMA8N,CAAAxpB,OAEA,IAAAypB,WAEAhY,QAAA2H,OAEAxoE,OAAA,EAEA6c,OACA0wB,KAAApwC,OACAu2E,WAAAv2E,QAGAyW,MACA25B,KAAA,GACAmmC,WAAA,wBAGApxD,UAEAirB,KAAA,SAAA+nB,KACA,IAAA/nB,KAAA+nB,IAAA/nB,KAEA,OAAAjzC,KAAA+Z,MAAAk5B,OAGAiP,KAAA,SAAA8Y,IAAAqQ,KAGA,OAAAxpC,EAFAm5B,IAAAoe,WAEAnhF,QAAA,SAAA,QAAAozE,MAGA1zB,MAAA,SAAAqjB,IAAAqQ,KAGA,OAAAxpC,EAFAm5B,IAAAoe,WAEAnhF,QAAA,SAAA,SAAAozE,MAGAxzB,QAAA,SAAAmjB,IAAAqQ,KAGA,OAAAxpC,EAFAm5B,IAAAoe,WAEAnhF,QAAA,SAAA,WAAAozE,MAGArzB,QAAA,SAAAgjB,IAAAqQ,KAGA,OAAAxpC,EAFAm5B,IAAAoe,WAEAnhF,QAAA,SAAA,WAAAozE,MAGAp9B,MAAA,WACA,IAAAoqB,OAAA7/D,KAEA,OAAA,OAAA,QAAA,UAAA,WAAA2O,OAAA,SAAA0U,MAAA,OAAAw8C,OAAAx8C,UAKAgqD,UAAA,WACArtE,KAAA9B,SAGAqvE,aAAA,WACA,IAAA1N,OAAA7/D,KAEAA,KAAAzC,OACAyC,KAAAy1C,MAAA8M,QAAA,SAAAl/B,MAAA,OAAAlP,MAAA0rD,OAAAx8C,UAGA4D,SAIA7iB,KAAA,mBAEA4I,GAAArQ,SAEAwQ,QAAA,WACAxQ,SAAA05B,OACAr2B,KAAAzC,OAEAyC,KAAA9B,WAQAuvE,QAEA3B,MAAA,WACA,IAmEArxB,KAEAwZ,MArEA4L,OAAA7/D,KAGAgmF,UAgEAvrC,KAhEAz6C,KAAAy6C,MAqEAwZ,MAHAA,MAAAxZ,KAAAjzC,KAAA4iB,MAIAo1B,QAAAyU,MAAA,IAAA,GACA5U,QAAA4U,MAAA,IAAA,GAAA,GACA9U,MAAA8U,MAAA,IAAA,GAAA,GAAA,GACAvK,KAAAuK,MAAA,IAAA,GAAA,GAAA,KAvEA+xB,SAAA/xB,OAAA,IAEAj0D,KAAAzC,OAEAyoF,SAAAt8B,KACAs8B,SAAA7mC,MACA6mC,SAAA3mC,QACA2mC,SAAAxmC,QACA,GAGAx/C,KAAAy1C,MAAA8M,QAAA,SAAAl/B,MAEA,IAAA4iE,OAAA57E,OAAAvF,KAAAivC,MAAAiyC,SAAA3iE,QAEA4iE,OAAAA,OAAAzjF,OAAA,EAAA,IAAAyjF,OAAAA,OAEA,IAAAj5E,GAAA6yD,OAAAx8C,MACArW,GAAA6D,cAAAo1E,UACAA,OAAAA,OAAA3/E,MAAA,KAEA9D,SAAAwK,GAAAqM,SAAA7W,QACAmrB,KAAA3gB,GAAAi5E,OAAA3iF,IAAA,WAAA,MAAA,kBAAA8I,KAAA,KAGA65E,OAAA1jC,QAAA,SAAA2jC,MAAAtkF,GAAA,OAAAoL,GAAAqM,SAAAzX,GAAAiP,YAAAq1E,aASAxY,SAEAxvE,MAAA,WACA,IAAA2hE,OAAA7/D,KAGAA,KAAAzC,OAEAyC,KAAAy6C,MAAAz6C,KAAAy1C,MAAAjzC,SACAxC,KAAAi1E,QACAj1E,KAAA+3B,MAAAk3C,YAAA,WAAA,OAAApP,OAAAoV,SAAA,OAKA13E,KAAA,WAEAyC,KAAA+3B,QACAq3C,cAAApvE,KAAA+3B,OACA/3B,KAAA+3B,MAAA,SAsBA,IAyIAouD,QAzIAC,YAAA,sBAEAC,SAEAt8D,OACA+M,UAAAunC,QAGAv9C,MACAgW,UAAA,KAGAtH,UAEAhrB,OAAA,WACA,OAAAxE,KAAA6yE,MAKAnF,SAEAx0C,QAAA,SAAAotD,QACA,IAAAzmB,OAAA7/D,KAqHAmmF,UACAA,QAAA93D,OAAA1xB,SAAAmF,KAAA,WAAAykF,OACAC,WACA,IAAAJ,YAAA,6HAnHA,IAAA/sE,SAAAolD,QAAAz+D,KAAAwE,OAAA6U,UACAotE,UAAAptE,SAAA/V,IAAA,SAAA0J,IAAA,OAAAulE,SAAAvlE,IAAA,KAEAi2E,UAAArsD,OAAA52B,KAAAwE,QACAkiF,WAAA7oF,OAAA8pC,YAEA2+C,SAEApf,WAAAC,OAAAnnE,KAAAwE,QACA6U,SAAAkpC,QAAA2kB,WAAAC,QAEAnyD,MAAAhV,KAAAwE,QACAxE,KAAAo1E,QAAAp1E,KAAAwE,QACAgnE,QAAAS,QAEA,IAAA+W,UAAApsD,OAAA52B,KAAAwE,QAIAmiF,SAFAttE,SAAAA,SAAA9Y,OAAAk+D,QAAAz+D,KAAAwE,OAAA6U,UAAA1K,OAAA,SAAA3B,IAAA,OAAAwwD,SAAAnkD,SAAArM,QAEA1J,IAAA,SAAA0J,GAAApL,GAAA,SAAAoL,GAAAjL,YAAAH,KAAA6kF,aACAA,UAAA7kF,GACAwgE,UAAAp1D,IACA45E,sBAAA55E,KACAsmB,QAAA,IACAA,QAAA8uC,UAAAp1D,IAAA,EAAA,MA+BA,OA3BAy5E,UAAAE,QAAArjF,IAAA,SAAAymB,MAAAnoB,GACA,IAAAwxC,KAAA/5B,SAAAzX,GAAAG,aAAA89D,OAAAr7D,SACAiiF,UAAA7kF,IAAA2wE,SAAAl5D,SAAAzX,KAGA,GAAAwxC,KACA,GAAArpB,OAEA,KAAA,YAAAA,OAAA,CACAqpB,KAAA9f,QAEA,EACAvJ,MAAAuJ,QAAA,SAEA8f,KAAA9f,qBAPA8f,KAAA9f,QAYA,OAAA8f,OAGA1X,SAAA17B,KAAAwE,OAAA4hF,aACA/sE,SAAAkpC,QAAA,SAAAv1C,GAAApL,GAAA,OAAA6kF,UAAA7kF,IAAA8gB,IAAA1V,GAAAy5E,UAAA7kF,MACA8gB,IAAA1iB,KAAAwE,OAAA,YAAAy+E,WACAplF,OAAA84E,OAAA94E,OAAA+pC,YAAA8+C,YAEAnjB,UAAArjD,IAAA7G,SAAA/V,IAAA,SAAA0J,GAAApL,GAAA,OAAA6kF,UAAA7kF,IAAA+kF,QAAA/kF,GACAslE,WAAAhpE,MAAA8O,GAAA25E,QAAA/kF,GAAAi+D,OAAA/oC,UAAA,QACAysC,UAAAzoD,YACAva,OAAA2mE,WAAAhpE,MAAA8B,KAAAwE,QAAAs3E,UAAAkH,WAAAhjF,KAAA82B,UAAA,UAAA1b,KAAA,WACA/B,SAAAkpC,QAAA,SAAAv1C,GAAApL,GAAA,OAAA8gB,IAAA1V,IAAAyV,QAAA,IAAAkkE,QAAA/kF,GAAA0xB,QAAA,OAAA,GAAAU,OAAA,OACAhf,MAAA6qD,OAAAr7D,QACAq7D,OAAAuV,QAAAvV,OAAAr7D,SACAW,SAMA,SAAAotE,SAAAvlE,GAAAsmB,SAEA,IAAAU,OAAAtR,IAAA1V,GAAA,UAEA,QAAAo1D,UAAAp1D,KACA6xD,QACAp8C,QAAA,GACA6Q,QAAAA,QAAA5Q,IAAA1V,GAAA,WAAA,IACA65E,cAAA,OACAj2D,SAAA,WACAoD,OAAA,SAAAA,OAAApa,MAAA5M,IAAAgnB,QACA4yD,sBAAA55E,KAIA,SAAAgI,MAAAhI,IACA0V,IAAA1V,GAAAqM,UACAud,OAAA,GACApC,KAAA,GACAlB,QAAA,GACAuzD,cAAA,GACAj2D,SAAA,GACAviB,IAAA,GACAohB,MAAA,KAEApwB,YAAA2N,GAAAo5E,aACA1jE,IAAA1V,GAAA,YAAA,IAGA,SAAA45E,sBAAA55E,IACA,IAAAw1D,IAAAx1D,GAAAunB,wBACAqkD,UAAApW,IAAA5rC,OACAiiD,SAAArW,IAAA/yC,MACA6jD,MAAA1iD,SAAA5jB,IACAqB,IAAAilE,MAAAjlE,IACAmmB,KAAA8+C,MAAA9+C,KAGA,OAAAnmB,IAFAA,KAAAiwD,QAAA57C,IAAA1V,GAAA,cAEAwnB,KAAAA,KAAAoC,OAAAgiD,UAAAnpD,MAAAopD,UAcA,IAAAiO,QAEA/Y,QAAAsY,SAEAzzE,KAAA,SAEAmX,OACAvlB,OAAAk6D,QACAqoB,UAAAroB,SAGA59C,MACAtc,OAAA,KACAuiF,WAAA,EACAvB,SAAA,oBACAngB,IAAA,YACAvuC,UAAA,KAGAtH,UAEA80D,QAAA,SAAA9hB,IAAAqQ,KACArQ,IAAAgjB,SAEA,OAAA7d,GAAA,IAAA3nE,KAAA,SAAA,WAAAA,KAAA,SAAA,IAAA6yE,MAGAruE,OAAA,SAAAg+D,IAAAqQ,KAGA,OAAAxpC,EAFAm5B,IAAAh+D,OAEAquE,OAKA5rD,SAIA7iB,KAAA,QAEAqkC,SAAA,WACA,MAAA,IAAAzoC,KAAA,SAAA,WAAAA,KAAA,SAAA,KAGAmN,QAAA,SAAAhC,GAEAA,EAAA0d,iBACA7oB,KAAAwD,MAAA2H,EAAAy4B,YAQAypC,UAAA,WACA,IAAAxN,OAAA7/D,KAGA,IAAA,IAAAA,KAAA+mF,UAAA,CAIA,IAAAC,QAAArf,GAAA3nE,KAAA+mF,UAAA/mF,KAAA6yE,KACA7yE,KAAAskF,QAAA/hC,QAAA,SAAAv1C,IAAA,OAAA+uB,YAAA/uB,GAAA6yD,OAAAwF,IAAA7H,SAAAwpB,QAAAh6E,SAGAygE,OAAA,SAAAyB,SAEA,IAAAoV,QAAApV,QAAAoV,QACAjrE,SAAA61D,QAAA71D,SACA4tE,YAAA3C,QAAAtkF,KAAAskF,SAAA,IAAA2C,YAAA5tE,SAAArZ,KAAAwE,OAAA6U,UAAA,KAIA61D,QAAAoV,QAAAtkF,KAAAskF,QACApV,QAAA71D,SAAArZ,KAAAwE,OAAA6U,SAEArZ,KAAAknF,SAAAlnF,KAAAmnF,YAAA,KAIAzZ,SAEAlqE,MAAA,SAAAwJ,IACAhN,KAAAknF,SAAAE,WAAAp6E,GAAAhN,KAAAwlF,SAAAxlF,KAAAmnF,cAGAA,SAAA,WACA,IAAAtnB,OAAA7/D,KAEA,OAAAA,KAAAskF,QACA31E,OAAA,SAAA09D,MAAA,OAAAlwC,SAAAkwC,KAAAxM,OAAAwF,OACAtC,OAAA,SAAAtmD,MAAAzP,IAAA,OAAAo6E,WAAAp6E,GAAA6yD,OAAA2lB,SAAA/oE,SAAA9N,QAAAu5B,GAAA,IAAAlkC,WAGAkjF,SAAA,SAAAzqE,MAAA65D,YACA,IAAAzW,OAAA7/D,UACA,IAAAs2E,aAAAA,YAAA,GAGA75D,MAAAoiD,QAAAlwD,QAAAu5B,GAAA,IAAAlkC,SAAAyY,OAEAiN,QAAA1pB,KAAA6yE,IAAA,gBAAA7yE,KAAAyc,QAEA,IAAApD,SAAAolD,QAAAz+D,KAAAwE,OAAA6U,UAEArZ,KAAAskF,QAAA/hC,QAAA,SAAAv1C,IAAA,OAAA+uB,YAAA/uB,GAAA6yD,OAAAwF,IAkEA,SAAAr4D,GAAAq6E,QAAA7kB,KACA,IAAA8kB,YAAA9kB,IAAA7zD,OACA44E,SAAA/kB,IAAAx+D,KACAwjF,UAAAD,SAAA,GACAE,WAAAF,SAAA,GAEAjU,MAAAoU,UAAA16E,GAAAq6E,SACArU,UAAAM,MAAA3kE,OACAg5E,MAAArU,MAAAqU,WAAA,IAAAA,QAAAA,MAAA,IACA,IAAA3jF,KAAAsvE,MAAAtvE,KACA6vB,MAAAy/C,MAAAz/C,WAAA,IAAAA,QAAAA,MAAA,OACA,OAAA6qC,SACAsU,WAAAniC,YAAA7sC,QAAA2jF,SAAAL,cAAAtU,YAAAsU,YAAAK,QAAA92C,YAAAmiC,aAAAsU,YAAAK,SACAH,WAAAxjF,MAAAwjF,YAAAxjF,MAAAyjF,aAAA5zD,OA/EA+zD,CAAA56E,GAAA6yD,OAAA2lB,SAAA/oE,UAEA,IAAAorE,SAAA,WAEA,IAAA5oF,SA0FA,SAAAujE,KACA,IAEAvjE,SAAA,GAEA,OADAmE,KAHAo/D,IAAA7zD,OAGA,SAAAzI,OAAA,OAAAjH,UAAAiH,OAAA,KACAjH,SA/FA6oF,CAAArrE,OAEApD,SAAAkpC,QAAA,SAAAv1C,IAAA,OAAA0V,IAAA1V,GAAA,UAAA/N,WAAA8G,QAAAiH,GAAA/N,UAAA,OAAA,MAEA,IAAAujE,IAAA/lD,MAAAzY,KACAA,KAAAw+D,IAAA,GACA3uC,MAAA2uC,IAAA,GAEA,GAAAx+D,KAAA,CACA,IAAA+jF,OAyFA,SAAAniE,MAAA5hB,KAAA6vB,OACA,OAAA4qC,QAAA74C,OAAA5hB,KAAA,SAAAiE,EAAAC,GAAA,OAAA4Y,KAAA7Y,EAAAjE,MAAAgkF,cAAAlnE,KAAA5Y,EAAAlE,QAAA,QAAA6vB,QAAA,KA1FAo0D,CAAA5uE,SAAArV,KAAA6vB,OACAozD,YAAAc,OAAA1uE,WACA0uE,OAAAxlC,QAAA,SAAAv1C,IAAA,OAAAqhB,OAAAwxC,OAAAr7D,OAAAwI,QAMAspE,WACAt2E,KAAAk5B,QAAA2uD,UAAAzsE,KAAA,WAAA,OAAAsO,QAAAm2C,OAAAgT,IAAA,eAAAhT,YAEAgoB,WACAn+D,QAAA1pB,KAAA6yE,IAAA,eAAA7yE,WASA,SAAA0nF,UAAA16E,GAAAq6E,SACA,OAAAnZ,aAAAptD,KAAA9T,GAAAq6E,UAAA,WAGA,SAAAD,WAAAp6E,GAAAq6E,QAAA5qE,OAyBA,OAvBAgiD,QAAAzxD,IAAAu1C,QAAA,SAAAv1C,IACA,IAAAk7E,SAAAR,UAAA16E,GAAAq6E,SACArU,UAAAkV,SAAAv5E,OACAg5E,MAAAO,SAAAP,MACA3jF,KAAAkkF,SAAAlkF,KACA6vB,MAAAq0D,SAAAr0D,WAAA,IAAAA,QAAAA,MAAA,QAEAm/C,WAAAniC,YAAA7sC,SAEA2jF,cACAlrE,MAAA9N,OAAA,IACA8N,MAAA9N,OAAAg5E,OAAA3U,WAEAv2D,MAAA9N,QAAAu5B,GAAA8qC,YAKAniC,YAAA7sC,QACAyY,MAAAzY,MAAAA,KAAA6vB,UAIApX,MAoBA,SAAAwqE,YAAAkB,MAAAC,MAAA92C,QAOA,YANA,IAAAA,SAAAA,QAAA,GAGA62C,MAAA1pB,QAAA0pB,OACAC,MAAA3pB,QAAA2pB,OAEAD,MAAA3lF,SAAA4lF,MAAA5lF,QACA2lF,MAAA/U,MAAA,SAAApmE,GAAApL,GAAA,OAAA0vC,OAAAtkC,KAAAo7E,MAAAxmF,IAAAwmF,MAAA3nF,QAAAuM,MAeA,IAAAq7E,YAEAC,OAEA1kE,KAAA,SAAA5Y,KACA,QACAu9E,UAAAC,WAAA,IAAAx9E,OACAu9E,UAAAC,eAIArzD,QAAA,SAAAyO,SACA,OAAA6kD,WAAA7kD,UAGA4kD,UAAA,SAAArzD,QAAAnqB,KACA,QACAu9E,UAAAC,WAAA,IAAAx9E,IAAAmqB,WACAozD,UAAAC,UAAA,IAAAx9E,KAAA,EAAAmqB,eAQA,SAAAszD,WAAAz7E,IACA,OAAAlI,KAAAwqC,IAAA5sB,IAAA1V,GAAA,aAAA1G,MAAA,KAAA,GAAA0G,GAAA8jB,cAAA,EAGA,SAAA03D,UAAAtiF,MAAAmd,MAIA,YAHA,IAAAnd,QAAAA,MAAA,QACA,IAAAmd,OAAAA,KAAA,KAEA,cAAAnd,OAAAA,MAAAmd,KAAA,IAAA,IAGA,SAAAqlE,QAAAxiF,OACA,MAAA,WAAAA,MAAA,KAAAA,MAAA,OAGA,IAAAyiF,aAAA9pB,UAAAwpB,YAEAO,MAEAhlE,KAAA,WACA,QACA0P,QAAA,IACAA,QAAA,KAIA6B,QAAA,SAAAyO,SACA,OAAA,EAAAlhB,IAAAkhB,QAAA,YAGA4kD,UAAA,SAAArzD,SACA,QACA7B,QAAA,EAAA6B,UACA7B,QAAA6B,YAMAlS,OAEAW,KAAA,WACA,QACA0P,QAAA,EAAAi1D,UAAAG,QAAA,MACAp1D,QAAA,EAAAi1D,UAAAG,QAAA,MAIAvzD,QAAA,SAAAyO,SACA,OAAA,EAAAlhB,IAAAkhB,QAAA,YAGA4kD,UAAA,SAAArzD,SACA,QACA7B,QAAA,EAAA6B,QAAAozD,UAAAG,QAAA,EAAA,GAAAvzD,WACA7B,QAAA6B,QAAAozD,UAAAG,QAAA,GAAA,GAAAvzD,eA6FA,SAAA0zD,cAAA77E,GAAAvO,KAAAywE,SACAxlD,QAAA1c,GAAAk2D,YAAAzkE,MAAA,GAAA,EAAAywE,UA6TA,IAkGA4Z,QAEA57E,OAAA,EAEA6gE,SA9ZAhkD,OACAwuD,SAAA7Z,QACAqqB,iBAAA1qB,OACA2qB,aAAAtqB,SAGA59C,MACAy3D,UAAA,EACAwQ,iBAAA,IACAC,cAAA,GAGA3b,UAAA,WACArtE,KAAAipF,iBAGA1b,aAAA,WACAvtE,KAAAkpF,gBAGAjiE,SAIA7iB,KAAA,mBAEA4I,GAAArQ,SAEAwQ,QAAA,WACAxQ,SAAA05B,OACAr2B,KAAAkpF,eAEAlpF,KAAAipF,mBAQA7kF,KAAA+mE,YACAh+D,QAAA,iBAMA/I,KAAA,aAEAuK,OAAA,WACA,OAAA3O,KAAAu4E,UAGAprE,QAAA,WACAnN,KAAAmpF,YAAA,KAOA/kF,KAAA,aAEAuK,OAAA,WACA,OAAA3O,KAAAu4E,UAGAprE,QAAA,WACAnN,KAAAmpF,YAAA,KAOAzb,SAEAub,cAAA,WACA,IAAAppB,OAAA7/D,KAGAA,KAAAkpF,eAEAlpF,KAAAu4E,WACAv4E,KAAAu2B,SAAA04C,YACA,WAAA,QAAApP,OAAAspB,YAAAtpB,OAAAmpB,gBAAAnpB,OAAA/gD,MAAAtc,QAAAq9D,OAAAj8C,KAAA,SACA5jB,KAAA+oF,oBAMAG,aAAA,WACAlpF,KAAAu2B,UACA64C,cAAApvE,KAAAu2B,cAUAzV,MACAm0C,UAAA,GACAm0B,cAAA,GAGA/mF,KAAA,WACA,IAAAw9D,OAAA7/D,MAGA,QAAA,OAAA,OAAAuiD,QAAA,SAAA51C,KAEA,IAAAvK,GAAAy9D,OAAAlzD,KACAkzD,OAAAlzD,KAAA,SAAAxB,GAEA,IAAAmqB,IAAAy6C,SAAA5kE,GAAAwvC,GAAAgwB,OAAA,EAAA,GAEA9K,OAAA+M,QAAAt3C,MAAAuqC,OAAAvqC,IAAAuqC,OAAAvqC,IAAAuqC,OAAA+M,QACA/M,OAAAvqC,IAAAA,IAEAlzB,GAAA+I,OAOA8b,SAIA7iB,KAAA+mE,YAEA1iC,SAAA,WACA,OAAAzoC,KAAAqpF,gBAGAl8E,QAAA,SAAAhC,GAwKA,IAAA6B,IAtKAsjE,QAAAnlE,KAsKA6B,GAtKA7B,EAAA3G,QAuKAwI,GAAAqM,SAAA7W,QAAAwK,GAAA9B,WAAA1I,SAtKA2I,EAAAkJ,OAAA,GACArU,KAAAwC,OAAA,GACAxC,KAAAopF,cAKAppF,KAAA9B,MAAAiN,MAMA/G,KAAA,YAEA+I,QAAA,SAAAhC,GACAA,EAAA0d,oBAMA6kD,SAEAxvE,MAAA,WAEA8B,KAAAspF,KAAAtpF,KAAAs1B,IAEAt1B,KAAAupF,eAEAvpF,KAAAm1B,QAAAn1B,KAAAupF,cAAAp0D,UACAn1B,KAAAspF,MAAAtpF,KAAAupF,cAAAC,cAAAxpF,KAAAm1B,QAAAn1B,KAAAgL,IAEAhL,KAAAupF,cAAAf,UAAAxoF,KAAAm1B,SACAn1B,KAAAupF,cAAApiB,SAEAnnE,KAAAypF,UAAA,EAEAzpF,KAAA8e,UAGA9e,KAAA0pF,UAAA1pF,KAAA4Z,MAGA5Z,KAAA2pF,WAAAljE,GAAA9pB,SAAAyuE,YAAAprE,KAAA4pF,MAAA7W,SAAA,EAAAmF,SAAA,IACAzxD,GAAA5oB,OAAA,SAAAmC,KAAA2pF,YACAljE,GAAA9pB,SAAA0uE,UAAArrE,KAAA+D,KAAA,IAIA6lF,KAAA,SAAAz+E,GACA,IAAA00D,OAAA7/D,KAGA6pF,SAAA7pF,KAAAs1B,IAAAt1B,KAAAspF,KAEA,KAAA,IAAAO,UAAA7pF,KAAA4sE,UAAA5sE,KAAAs1B,MAAAt1B,KAAAypF,UAAA3kF,KAAAwqC,IAAAu6C,UAAA7pF,KAAAi1D,WAAA,CAIA9pD,EAAAsf,YAAAtf,EAAA0d,iBAEA7oB,KAAAypF,UAAA,EACAzpF,KAAAgL,IAAA6+E,SAAA,EAAA,GAAA,EAUA,IARA,IACAC,OADA9pF,KACA8pF,OAEAJ,UADA1pF,KACA0pF,UACAK,IAAAjlF,KAAAwqC,IAAAu6C,UACAG,UAAAhqF,KAAAwkE,SAAAklB,UAAA1pF,KAAAgL,IAAA0+E,WACA7Q,SAAA74E,KAAAiqF,aAAAP,UAAAM,YAAAF,OAAAJ,WAAA54D,YAEAk5D,YAAAN,WAAAK,IAAAlR,UAEAhZ,OAAAypB,MAAAzQ,SAAAhZ,OAAA70D,IAEA0+E,UAAAM,UACAD,KAAAlR,SACAmR,UAAAnqB,OAAA2E,SAAAklB,UAAA7pB,OAAA70D,IAAA0+E,WACA7Q,SAAAhZ,OAAAoqB,aAAAP,UAAAM,YAAAF,OAAAJ,WAAA54D,YAIA9wB,KAAAm1B,QAAA40D,IAAAlR,SAEA,IAKAqR,UALA3wE,KAAAuwE,OAAAJ,WACAz+E,KAAA6+E,OAAAE,WACA9S,QAAAl3E,KAAA4Z,QAAAowE,UACAG,KAAAT,YAAAM,WAIAhqF,KAAA4Z,MAAA5Z,KAAA0pF,WAAA/6E,OAAA,SAAA/M,GAAA,OAAA47D,UAAAwsB,UAAAN,WAAA9nF,KAAA2gD,QAAA,SAAA3gD,GACA8nB,QAAAogE,OAAAloF,GAAA,cAAAi+D,SAEAsqB,OACAD,WAAA,EACArqB,OAAA6pB,UAAAA,cAKA1pF,KAAA4Z,QAAA8vE,WAAA1pF,KAAA0pF,YAAAA,WAAAQ,YACAxgE,QAAAogE,OAAA9pF,KAAA4Z,OAAA,aAAA5Z,OAGAk3E,UACAl3E,KAAA0pF,UAAAA,UACA1pF,KAAA4Z,MAAAowE,WAEAG,MAAAzgE,QAAAnQ,KAAA,kBAAAvZ,OACA0pB,QAAAze,KAAA,kBAAAjL,QAGAA,KAAAupF,cAAAvpF,KAAAoqF,WAAAtlF,KAAAwqC,IAAAtvC,KAAAm1B,SAAA5b,MAAA4wE,MAAAl/E,MAEAisE,WACAiT,MAAAzgE,QAAAnQ,KAAA,YAAAvZ,OACA0pB,QAAAze,KAAA,YAAAjL,UAKA+D,IAAA,WAMA,GAJA+iB,IAAAjpB,OAAA,SAAAmC,KAAA2pF,YACA3pF,KAAA2pF,aACA7iE,IAAAnqB,SAAA0uE,UAAArrE,KAAA+D,KAAA,GAEA/D,KAAAypF,SAAA,CAIA,GAFAzpF,KAAAypF,SAAA,KAEAzpF,KAAA4Z,QAAA5Z,KAAA0pF,UACA1pF,KAAAm1B,QAAA,EAAAn1B,KAAAm1B,QACAn1B,KAAAgL,MAAA,EACAhL,KAAAqqF,OAAA,EAAArqF,KAAA4Z,OAAA,GACA5Z,KAAAupF,cAAA,SACA,CAEA,IAAAe,WAAA3f,MAAA3qE,KAAAgL,KAAA2/D,MAAA,GAAA,GAAA3qE,KAAAgL,KAAA,GAAAhL,KAAA4sE,QAAA5sE,KAAAs1B,IACAt1B,KAAA4Z,MAAA0wE,UAAAtqF,KAAA4Z,MAAA5Z,KAAA0pF,UAEAY,YACAtqF,KAAAm1B,QAAA,EAAAn1B,KAAAm1B,SAGAn1B,KAAA4jB,KAAA5jB,KAAAgL,IAAA,IAAAs/E,WAAAtqF,KAAAgL,IAAA,GAAAs/E,UAAA,OAAA,YAAA,GAGAhnB,eAIAtjE,KAAAspF,KACAtpF,KAAAm1B,QACA,SAcArU,MACAypE,QAAA,GAGA/6D,UAEAg7D,IAAA,SAAAhoB,IAAAqQ,KAGA,OAAAxpC,EAFAm5B,IAAA+nB,OAEA1X,MAGA4X,gBAAA,SAAAjoB,KACA,IAAAgjB,SAAAhjB,IAAAgjB,SAEA,MAAA,IAAAA,SAAA,WAAAA,SAAA,KAGAkF,SAAA,SAAAzgF,EAAA4oE,KACA,OAAAlL,GAAA3nE,KAAAyqF,gBAAA5X,OAKApF,SAIA3B,MAAA,WACA,IAAAjM,OAAA7/D,KAGAA,KAAAwqF,KAAAxqF,KAAAwC,SAAAxC,KAAAwqF,IAAAnxE,SAAA7W,QACAmrB,KAAA3tB,KAAAwqF,IAAAxqF,KAAA8pF,OAAAxmF,IAAA,SAAA2G,EAAArI,GAAA,MAAA,OAAAi+D,OAAA,SAAA,KAAAj+D,EAAA,4BAAAwK,KAAA,KAGA2vB,YAAA4rC,GAAA3nE,KAAAyqF,gBAAAzqF,KAAA6yE,KAAAtyE,OAAAP,KAAAwqF,KAAA,aAAAxqF,KAAA2qF,UAEA3qF,KAAA4qF,aAIA3jE,QAAA,OAAA,YAMAA,SAIA7iB,KAAA,QAEAqkC,SAAA,WACA,OAAAzoC,KAAAyqF,iBAGAt9E,QAAA,SAAAhC,GACAA,EAAA0d,iBACA1d,EAAAy4B,QAAAja,OACA3pB,KAAA4jB,KAAA9C,KAAA3V,EAAAy4B,QAAA5jC,KAAAwlF,cAOAphF,KAAA,WACA+I,QAAA,cAMAugE,SAEAkd,UAAA,WACA,IAAA/qB,OAAA7/D,KAGA4B,EAAA5B,KAAA6qF,gBACA7qF,KAAA0qF,SAAAnoC,QAAA,SAAAv1C,IAEA,IAAAqhE,IAAAvtD,KAAA9T,GAAA6yD,OAAA2lB,UAEAzpD,YAAA/uB,GAAA6yD,OAAA4kB,UAAArmB,SAAAiQ,OAAAzsE,GACAm6B,YAAA/uB,GAAA,eAAA6yD,OAAA4E,SAAA,aAAA4J,KAAA,IAAAzsE,GAAA,SAAAysE,KAAAzsE,GAAAi+D,OAAA8qB,iBAeA5gE,OACA+gE,aAAApsB,QACAtrC,OAAA/oB,OACAuP,MAAAykD,OACAoG,OAAA/F,QACAqsB,SAAA1sB,QAGAv9C,KAAA,WAAA,OACAsS,OAAA,OACAqxC,QAAA,EACAsmB,SAAA,EACAnxE,MAAA,EACAkF,SACAqW,QAAA,EACAsvD,UAAA,YACAqG,cAAA,EACAE,cAAA,EACAC,uBAGAz7D,UAEA6F,SAAA,SAAAmtC,IAAAqQ,KACA,IAAAkY,SAAAvoB,IAAAuoB,SAEA,OAAAG,QAAArY,IAAA/hD,YAAAi6D,WAGAvoF,OAAA,WACA,OAAAxC,KAAA8pF,OAAAtnF,QAGA6F,KAAA,SAAAm6D,IAAAqQ,KAGA,OAAAxpC,EAFAm5B,IAAA2oB,QAEAtY,MAGA8X,SAAA,WACA,OAAA3qF,KAAAwC,OAAA,GAGA6mF,eAAA,SAAA7mB,KAGA,OAFAA,IAAA2oB,QAEA,QAGArB,OAAA,WACA,OAAArrB,QAAAz+D,KAAAqI,KAAAgR,YAKA4N,QAEAmkE,UAAA,WACAprF,KAAAo1E,QAAAp1E,KAAAqI,QAKAqlE,SAEA9pD,KAAA,SAAA2vD,SAAA/N,OACA,IAAA3F,OAAA7/D,KAIA,QAHA,IAAAwlE,QAAAA,OAAA,IAGAxlE,KAAAypF,UAAAzpF,KAAAwC,OAAA,CAIA,IACAsc,MADA9e,KACA8e,MACAusE,WAAA7lB,MAAA,EAAA1mD,MAAAtc,OACAwS,MAAA,WACA8J,MAAA7a,OAAAonF,WAAA,GAEAvsE,MAAAtc,QACAq9D,OAAAj8C,KAAA9E,MAAAjS,SAAA,IAMA,GAFAiS,MAAA0mD,MAAA,UAAA,QAAA+N,WAEA/N,OAAA1mD,MAAAtc,OAAA,EAEA,IAAAsc,MAAAtc,QACAxC,KAAAupF,cAAAt3E,QAAAnN,KAAAyvC,IAAAv0C,KAAAq1B,SAAA,UAHA,CASA,IAAAq0D,UAAA1pF,KAAA4Z,MACAL,KAAA4iB,SAAAn8B,KAAA8pF,OAAA9pF,KAAAykF,YAAAzkF,KAAA8pF,OAAAJ,WACAM,UAAAhqF,KAAAwkE,SAAA+O,SAAAvzE,KAAA4Z,OACA3O,KAAAjL,KAAA8pF,OAAAE,WAEA,GAAAzwE,OAAAtO,KAAA,CAUA,GALAjL,KAAAgL,IA4GA,SAAAuoE,SAAAmW,WACA,MAAA,SAAAnW,SACA,EACA,aAAAA,UACA,EACAA,SAAAmW,WACA,EACA,EAnHA4B,CAAA/X,SAAAmW,WACA1pF,KAAA0pF,UAAAA,UACA1pF,KAAA4Z,MAAAowE,UAEAzwE,MAAAmQ,QAAAnQ,KAAA,kBAAAvZ,QACA0pB,QAAAze,KAAA,kBAAAjL,KAAAuZ,OAGA,OAFAvZ,KAAA4Z,MAAA5Z,KAAA0pF,eACA10E,QAIA,IAAAkG,QAAAlb,KAAAqqF,MAAA9wE,KAAAtO,KAAAu6D,OAAApqD,KAAA,WAKA,OAHA7B,MAAAmQ,QAAAnQ,KAAA,cAAAsmD,SACAn2C,QAAAze,KAAA,aAAA40D,SAEA,IAAA0D,UAAA,SAAAzoD,SACA0wD,QAAAM,MAAA,WACAhtD,MAAAjS,QACAiS,MAAAtc,OACAq9D,OAAAj8C,KAAA9E,MAAAjS,SAAA,GAEAgzD,OAAA0pB,cAAA,KAEAzuE,gBASA,OAHAvB,MAAAmQ,QAAAnQ,KAAA,YAAAvZ,OACA0pB,QAAAze,KAAA,YAAAjL,OAEAkb,QArCAlG,WAyCAwvD,SAAA,SAAA+O,SAAAh6D,MAIA,YAHA,IAAAg6D,WAAAA,SAAAvzE,KAAA4Z,YACA,IAAAL,OAAAA,KAAAvZ,KAAA4Z,OAEAolD,MAAAwF,SAAA+O,SAAAvzE,KAAA8pF,OAAAvwE,KAAAvZ,KAAAykE,QAAA,EAAAzkE,KAAA2qF,WAGAE,cAAA,SAAAtX,SAAAmW,WAIA,YAHA,IAAAnW,WAAAA,SAAAvzE,KAAA4Z,YACA,IAAA8vE,YAAAA,UAAA1pF,KAAA0pF,WAEA1pF,KAAAwkE,SAAA+O,SAAAmW,YAGAW,MAAA,SAAA9wE,KAAAtO,KAAAu6D,OAeA,GAbAxlE,KAAAupF,cAAAvpF,KAAAurF,iBACAhyE,KACAtO,KACAjL,KAAAgL,IACA6zD,QACAzrC,OAAAoyC,MACAv6D,KAAA6lB,YAAA,IACA,uCACA,qCACA9wB,KAAAozB,QACApzB,KAAAirF,qBAGAzlB,QAAAjsD,KAEA,OADAvZ,KAAAupF,cAAAf,UAAA,GACAjlB,UAAAzoD,UAGA,IACAtY,OADAxC,KAAA8e,MACAtc,OACA,OAAAxC,KAAAupF,cAAA/mF,OAAA,EAAA,UAAA,QAAAA,OAAA,EAAAsC,KAAAyvC,IAAAv0C,KAAAq1B,SAAA,GAAA,IAAA7yB,OAAA,IAAAxC,KAAAq1B,SAAAr1B,KAAAm1B,UAIA80D,aAAA,SAAA1wE,KAAAtO,MACA,OAAA,IAAAjL,KAAAurF,iBAAAhyE,KAAAA,OAAAtO,MAAAA,MAAAu+E,eAGAY,WAAA,SAAAj1D,QAAA5b,KAAAtO,WACA,IAAAsO,OAAAA,KAAAvZ,KAAA0pF,gBACA,IAAAz+E,OAAAA,KAAAjL,KAAA4Z,OAEA,IAAA4xE,aAAAxrF,KAAAurF,iBAAAhyE,OAAAtO,MAAAsO,KAAAtO,MAEA,OADAugF,aAAAhD,UAAArzD,SACAq2D,cAGAD,iBAAA,SAAAhyE,KAAAtO,KAAAD,IAAA7G,SAMA,YALA,IAAAoV,OAAAA,KAAAvZ,KAAA0pF,gBACA,IAAAz+E,OAAAA,KAAAjL,KAAA4Z,YACA,IAAA5O,MAAAA,IAAAhL,KAAAgL,KAAA,QACA,IAAA7G,UAAAA,QAAAnE,KAAAirF,mBAEA,IAAAjrF,KAAAgrF,aACAl6C,SAAAv3B,MAAAvZ,KAAA8pF,OAAAvwE,MAAAA,KACAu3B,SAAA7lC,MAAAjL,KAAA8pF,OAAA7+E,MAAAA,KACAD,KAAA2/D,OAAA,EAAA,GACAxmE,YAkBA,SAAA+mF,QAAAvwC,GACA,MAAA,GAAAA,EAAA,IAGA,IAAA8wC,WAEA1d,QAAA+a,QAEA/+D,OACA+M,UAAAzsB,QAGAyW,MACAgW,UAAA,QACAg0D,aAAA,uBACAzC,WAAAA,WACA2C,aA3uBA,SAAAzxE,KAAAtO,KAAAD,IAAAw3D,KACA,IAAA1rC,UAAA0rC,IAAA1rC,UACA1D,OAAAovC,IAAApvC,OAGA+B,QAAA2B,UAAA3B,QACAqzD,UAAA1xD,UAAA0xD,UACA5kE,KAAAkT,UAAAlT,UAAA,IAAAA,OAAAA,KAAAze,MACA,IAAA4kB,MAAAnG,KAAA5Y,KACA2R,SAAA,IAAAL,SAEA,OAEAtR,IAAAA,IAEA4Y,KAAA,SAAAyR,SAAAF,QAAAQ,QACA,IAAAkqC,OAAA7/D,UACA,IAAAm1B,UAAAA,QAAA,GAGA,IAAA2xC,OAAAnxC,OAAA,SAAAvC,OAgBA,OAfAiC,UAAAvwB,KAAAksB,MAAAqE,SAAA2pC,MAAA7pC,SAAA,EAAA,IAEAn1B,KAAAwoF,UAAArzD,SAEA0zD,cAAA59E,KAAA,UAAAkqB,QAAAA,QAAAE,SAAAA,SAAAyxC,OAAAA,OAAA97D,IAAAA,MACA69E,cAAAtvE,KAAA,WAAA4b,QAAA,EAAAA,QAAAE,SAAAA,SAAAyxC,OAAAA,OAAA97D,IAAAA,MAEAu4D,UAAArjD,KACAgnD,WAAAhpE,MAAA+M,KAAA8e,MAAA,GAAAsL,SAAAyxC,QACAI,WAAAhpE,MAAAqb,KAAAwQ,MAAA,GAAAsL,SAAAyxC,UACA1rD,KAAA,WACAykD,OAAA7qD,QACA2H,SAAA7B,WACA3V,MAEAwX,SAAAzB,SAGA3d,KAAA,WACA,OAAA2pE,WAAA3pE,MAAA0N,KAAAsO,QAGA4tD,OAAA,WACAD,WAAAC,QAAAl8D,KAAAsO,QAGAvE,MAAA,WACA,IAAA,IAAA+L,QAAAgJ,MAAA,GACArH,KAAAzX,KAAAsO,MAAAwH,KAAA,KAIA9O,QAAA,SAAAojB,SAAAF,SAIA,YAHA,IAAAA,UAAAA,QAAAn1B,KAAAm1B,WAEA+xC,WAAAC,QAAAl8D,KAAAsO,OACAvZ,KAAA4jB,KAAAyR,SAAAF,SAAA,IAIAqzD,UAAA,SAAArzD,SAEAn1B,KAAAgV,QAEA,IAAA+U,MAAAy+D,UAAArzD,QAAAnqB,KACA0X,IAAAzX,KAAA8e,MAAA,IACArH,IAAAnJ,KAAAwQ,MAAA,IACA8+D,cAAA59E,KAAA,mBAAAkqB,QAAAA,QAAAnqB,IAAAA,MACA69E,cAAAtvE,KAAA,oBAAA4b,QAAA,EAAAA,QAAAnqB,IAAAA,OAIAmqB,QAAA,WACA,OAAAA,QAAA5b,MAAAtO,KAAAA,KAAAD,MAGAw+E,YAAA,WACA,OAAAjwE,KAAAuX,gBAgqBAtB,UAEAsH,UAAA,SAAA0rC,KACA,IAAA1rC,UAAA0rC,IAAA1rC,UACA40D,cAAAlpB,IAAA6lB,WAEA,OAAAxpB,OAAA/nC,aAAA40D,cAAAA,cAAA50D,WAAA40D,cAAApD,OAAAlkF,KAAA0yB,aAGAm0D,kBAAA,WACA,OAAAn0D,UAAA92B,KAAA82B,aAKA7P,QAEA0kE,yCAAA,SAAAnpB,KACA,IAAAh+D,OAAAg+D,IAAAh+D,OAEAxE,KAAAo1E,QAAA5wE,SAGAonF,SAAA,WACA96C,SAAA9wC,KAAA0pF,YAAAle,QAAAS,SAGA4f,eAAA,SAAArpB,KAGA9mC,SAFA8mC,IAAAh+D,OAEAxE,KAAAykF,YAGA2G,UAAA,SAAA5oB,KAGA9mC,SAFA8mC,IAAAh+D,OAEAxE,KAAA8qF,eAGAgB,WAAA,SAAAtpB,KAGAnjE,YAFAmjE,IAAAh+D,OAEAxE,KAAAykF,UAAAzkF,KAAA8qF,iBAOAiB,eAEAhe,QAAAiT,UAAAC,MAAAtL,UAAA8V,WAEAlX,YAAA,EAEAxqD,OACAiiE,cAAA3tB,OACAoa,QAAApa,OACA4tB,cAAAvtB,QACAwtB,SAAA7hF,QAGAyW,KAAA,WAAA,OACA23D,QAAA,EACAwT,eAAA,EACAD,cAAA,IACAlwB,SACAuJ,IAAA,UACAqc,QAAA,mBACAyJ,QAAA,qBACA3F,SAAA,mBACAzN,SAAA,kBACAiR,cAAA,EACA+B,SAAA,EACA1C,WAAAM,aACAuD,SAAA,suBAGA/e,QAAA,WACA,IAAAtN,OAAA7/D,KAGAA,KAAA6zE,OAAAxlD,OAAAruB,KAAAkwB,UAAAlwB,KAAAksF,WAEAlsF,KAAAilB,QAAAokB,EAAA,uBAAArpC,KAAA6yE,KAEA7yE,KAAA87D,MAAAvZ,QAAA,WAAA,OAAAl0B,OAAAwxC,OAAAx3D,KAAA,gBAIA4e,SAIA7iB,KAAAgnE,YAAA,IAAAD,YAAA,WAEAh+D,QAAA,iBAMA/I,KAAA,QAEA2U,MAAA,EAEA0vB,SAAA,WACA,OAAAzoC,KAAAqpF,gBAGAl8E,QAAA,SAAAhC,GACAA,EAAA0d,iBACA7oB,KAAA8jB,UAOA1f,KAAA,QAEA2U,MAAA,EAEA5L,QAAA,iBAKA/I,KAAA,OAEA2U,MAAA,EAEA5L,QAAA,WAEAnN,KAAAmsF,eAEA9sF,YAAAW,KAAA8pF,OAAA9pF,KAAAykF,WACAvd,WAAA3pE,KAAAyC,KAAA8pF,WAOA1lF,KAAA,QAEA4I,GAAArQ,SAEAwQ,QAAA,SAAAhC,GAEA,GAAAnL,KAAAy2E,UAAAz2E,KAAA6yE,KAIA,OAAA1nE,EAAAkgB,SACA,KAAA,GACArrB,KAAA4jB,KAAA,YACA,MACA,KAAA,GACA5jB,KAAA4jB,KAAA,YAQAxf,KAAA,iBAEA+I,QAAA,SAAAhC,GAEAnL,KAAAy2E,cAIAz2E,KAAAopF,cAAA,EAEAj+E,EAAA0d,iBAEA7oB,KAAA42E,UAAA52E,KAAA6yE,KAAA,GAEA7yE,KAAA82B,UAAA6xD,aAAA,MACAtpF,YAAA8L,EAAA3G,OAAAxE,KAAAykF,WACAzkF,KAAA8e,MAAA7a,OAAA,EAAA,EAAAjE,KAAA4Z,WAQAxV,KAAA,WAEA+I,QAAA,SAAAq1D,KACA,IAIA5gE,EAAAgY,MAHA4oD,IAAAh+D,QAKAygB,QADAjlB,KAAAosF,QAAAxqF,GACAqjB,QAEAvC,IAAA1iB,KAAAilB,QAAA,UAAAA,QAAA,GAAA,QACA0I,KAAA3tB,KAAAilB,QAAAA,SAEA,IAAA,IAAAnhB,EAAA,EAAAA,GAAA9D,KAAAy4E,QAAA30E,IAXA9D,KAYAqsF,SAZArsF,KAYAwkE,SAAA5iE,EAAAkC,IAZA9D,KAaAqsF,SAbArsF,KAaAwkE,SAAA5iE,EAAAkC,OASAM,KAAA,YAEA+I,QAAA,WACAnN,KAAAopF,cAAA,KAOAhlF,KAAA,WAEA+I,QAAA,SAAAlD,EAAAoiE,MACA,IAaAmT,WAbA3f,OAAA7/D,KAGAoiB,OAAAiqD,KAAAjqD,OACA3jB,KAAA4tE,KAAA5tE,KACA6tF,IAAAjgB,KAAAigB,IAIA,GAFAtsF,KAAAusF,QAAAlgB,KAAA,4BAEAjqD,OAOA,GAAA,UAAA3jB,MAAA2jB,OAAA5W,MAAA,kCAEA04D,SAAA9hD,QAAAhH,KACA,SAAAwmD,KAAA,OAAA/B,OAAA0sB,QAAAlgB,KAAA,eAAAzK,IAAA,MAAA,aAAAA,IAAA,OAAA,UAAAx/C,OAAA,WAAAkqE,KAAA,IAAA,OACA,WAAA,OAAAzsB,OAAA2sB,SAAAngB,aAIA,GAAA,UAAA5tE,MAAA2jB,OAAA5W,MAAA,2BAAA,CAEA,IAAAihF,MAAApjD,EAAA,+BAAAgjC,KAAAqgB,OAAA,YAAArgB,KAAA,OAAA,IAAA,IAAA,cAAArsE,KAAA,cAAA,cACAoQ,KAAAq8E,MAAA,MAAArqE,QAEAqE,GAAAgmE,MAAA,QAAA,WAAA,OAAA5sB,OAAA2sB,SAAAngB,QACA5lD,GAAAgmE,MAAA,iBAAA,WACAr8E,KAAAq8E,OAAAh9D,MAAAg9D,MAAAE,WAAA/1D,OAAA61D,MAAAG,cACA/sB,OAAA0sB,QAAAlgB,KAAAogB,cAIA,GAAA,WAAAhuF,MAAA2jB,OAAA5W,MAAA,uBAEAxL,KAAAusF,QAAAlgB,KAAA,2CAAAjqD,OAAA,oDAGA,GAAAo9D,WAAAp9D,OAAA5W,MAAA,2DAAA4W,OAAA5W,MAAA,qBAAA,CAEA,IAAAM,GAAA0zE,WAAA,GACAqN,UAAA,SAAAhU,SAAAD,WAIA,YAHA,IAAAC,WAAAA,SAAA,UACA,IAAAD,YAAAA,UAAA,KAEA/Y,OAAA0sB,QAAAlgB,KAAAygB,UAAA,uBAAAtN,WAAA,IAAA,IAAA,cAAA1zE,GAAA+sE,SAAAD,UAAA/Y,OAAAosB,iBAGA/nB,SAAA,8BAAAp4D,GAAA,sBAAAsP,KACA,SAAAonD,KACA,IAAAqW,SAAArW,IAAA/yC,MACAmpD,UAAApW,IAAA5rC,OAGA,MAAAiiD,UAAA,KAAAD,UACA1U,SAAA,8BAAAp4D,GAAA,UAAAsP,KACA,SAAAonD,KACA,IAAAqW,SAAArW,IAAA/yC,MACAmpD,UAAApW,IAAA5rC,OAEA,OAAAi2D,UAAAhU,SAAAD,YAEAiU,WAGAA,UAAAhU,SAAAD,YAGAiU,gBAIArN,WAAAp9D,OAAA5W,MAAA,yCAEAy1B,KAAA,uDAAA8rD,UAAA3qE,SAAAqjB,aAAA,OAAAunD,iBAAA,IACA5xE,KACA,SAAAonD,KACA,IAAAyqB,aAAAzqB,IAAAn/B,SACAu1C,UAAAqU,aAAAr2D,OACAiiD,SAAAoU,aAAAx9D,MAEA,OAAAowC,OAAA0sB,QAAAlgB,KAAAygB,UAAA,kCAAAtN,WAAA,GAAA3G,SAAAD,UAAA/Y,OAAAosB,iBAEA,WAAA,OAAApsB,OAAA2sB,SAAAngB,WAWAqB,SAEA2e,SAAA,SAAA9Y,eACA,IAAAA,WAAAA,SAAAvzE,KAAA4Z,OAGA,IAAAyyD,KAAArsE,KAAAosF,QAAA7Y,UAEAlH,KAAA/xD,SAIAoP,QAAA1pB,KAAA6yE,IAAA,YAAAxG,QAGA+f,QAAA,SAAA7Y,UAGA,YAFA,IAAAA,WAAAA,SAAAvzE,KAAA4Z,OAEA5Z,KAAA87D,MAAAyX,eAGAgZ,QAAA,SAAAlgB,KAAA/xD,SACAukD,OAAAwN,MAAA/xD,QAAAA,UACA,IAAAtN,GAAA2gB,KAAA3tB,KAAA8pF,OAAA9pF,KAAA87D,MAAAr7D,QAAA4rE,OAAA/xD,SACAoP,QAAA1pB,KAAA6yE,IAAA,cAAA7yE,KAAAgN,KACAhN,KAAAo1E,QAAApoE,KAGAw/E,SAAA,SAAAngB,MACArsE,KAAAusF,QAAAlgB,KAAA,iDAGA6gB,aAAA,WAEA9yD,aAAAp6B,KAAAmtF,eACAntF,KAAAmtF,cAAA/uE,WAAApe,KAAAmsF,aAAAnsF,KAAAgsF,eAEAtwD,SAAA17B,KAAA6yE,IAAA,YAAA,yBAIAsZ,aAAA,WACA9sF,YAAAW,KAAA6yE,IAAA,YAAA,2BAOA,SAAAia,UAAApuF,IAAAm6E,SAAAD,UAAAL,UACA,MAAA,gBAAA75E,IAAA,YAAAm6E,SAAA,aAAAD,UAAA,0GAAAL,SAAA,4BAGA,IA+HAp3E,IA/HA4oB,MAAA7mB,MAAA6oF,cAAA,SACAlpC,SAAA3/C,MAAA6oF,cAAA,QAEAqB,UAEAzY,QAoHA,SAAArY,OACAA,MAAA+wB,eACA/wB,MAAA4U,UAAA,gBAAA6a,gBApHA7+E,OAAA,EAEA6c,MAAA80C,QAAA96C,OAAA1Z,QAAA0f,OAEAjJ,KAAA+9C,QAAA96C,OAAA,KAAA3jB,OAAAqM,KAAAsd,OAAAg5C,OAAA,SAAAmM,QAAAviE,KAEA,OADAuiE,QAAAviE,KAAAk2C,SAAAl2C,KACAuiE,cAGA1/C,UAEA80D,QAAA,SAAA9hB,IAAAqQ,KAGA,OAAAlL,GAFAnF,IAAAz+C,OAEA8uD,OAKAtF,aAAA,WACAvtE,KAAAstF,YAGArmE,SAIA7iB,KAAA,QAEAqkC,SAAA,WACA,OAAAzoC,KAAA,OAAA,sBAGAmN,QAAA,SAAAhC,GACAA,EAAA0d,iBACA1d,EAAAy4B,QAAAja,OACA3pB,KAAA4jB,KAAAhK,MAAA5Z,KAAAskF,QAAAn5E,EAAAy4B,aAOA6pC,OAAA,SAAAyB,SA4DA,IAAAiZ,MAAAC,OA1DAlZ,QAAAoV,QAAApV,QAAAoV,SAAAtkF,KAAAskF,QAEAtkF,KAAAshF,OAAAthF,KAAA82B,YACA92B,KAAAshF,MAAA1O,OAAA97C,UAAA92B,KAAA82B,UACA92B,KAAAshF,MAAArM,SAGAj1E,KAAAshF,QAmDA6G,MAnDAjZ,QAAAoV,QAmDA8D,MAnDApoF,KAAAskF,QAoDA6D,MAAA3lF,SAAA4lF,MAAA5lF,SACA2lF,MAAA/U,MAAA,SAAApmE,GAAApL,GAAA,OAAAoL,KAAAo7E,MAAAxmF,SAjDAstE,QAAAoV,QAAAtkF,KAAAskF,QACAtkF,KAAAstF,WACAttF,KAAAwwE,UAIA9C,SAEA8C,MAAA,WACA,OAAAxwE,KAAAshF,MAAAthF,KAAAshF,OAAAthF,KAAAm1E,QAAA,gBAAAtW,UAAA7+D,KAAA4yE,QACA9W,MAAA97D,KAAAskF,QAAAvhB,OAAA,SAAAjH,MAAA9uD,IAKA,OAJA8uD,MAAAt7D,MAAA,OAAA,UAAA,OAAA,SAAA,OAAAuiE,OAAA,SAAA5hE,IAAAkmF,SAEA,OADAlmF,IAAA,SAAAkmF,QAAA,SAAAA,SAAAvmE,KAAA9T,GAAAq6E,SACAlmF,UAEA26D,eAKAwxB,SAAA,WACAttF,KAAAshF,QACAthF,KAAAshF,MAAA5M,UAAA,GACA10E,KAAAshF,MAAA,OAIA19D,KAAA,SAAA2vD,UAMA,OAJAvzE,KAAAshF,OACAthF,KAAAwwE,QAGAxwE,KAAAshF,MAAA19D,KAAA2vD,WAIAzvD,KAAA,WAEA,OAAA9jB,KAAAshF,OAAAthF,KAAAshF,MAAAx9D,UAaA,SAAA5gB,MAAAiB,QAAA4c,MACA,OAAA89C,OAAAr7D,WACA,OAAAjD,OAAA4D,QAAA4pE,OAAA5pE,QAAA4pE,OAAAzqE,IAAA,SAAA2tE,OAAA,OAAA/tE,MAAA+tE,MAAAlwD,YACA7f,WAAAiD,QAAA4c,OAAA5c,QAAA4c,QAAA5c,QAAA4c,SAWA,IAAAwsE,cAEAC,cAEAjZ,YAAA,EAEA3hE,MAAA,UAAA,UAEAkO,MACA7B,QAAA,GACAqjB,OAAA,GACAnI,QAAA,IACAwtD,MAAA,KACAryD,IAAA,aACAm4D,SAAA,wBACAC,OAAA,2BAGA/Y,QAuFA,SAAArY,OACAA,MAAAqxB,aAAAC,SAAA,SAAAjG,MAAAkG,WACArqF,MAAA7G,SAAA+mB,KAAA,SAAA1W,IACA,IAAA2gF,aAAArxB,MAAAmY,aAAAznE,GAAA,iBACA2gF,cAAAhG,OAAAA,QAAAgG,aAAAhG,OACAgG,aAAA7V,MAAA+V,eA1FA1gB,QAAA,WAEAogB,WAAAvtF,KAAAs1B,OACAi4D,WAAAvtF,KAAAs1B,KAAAjH,OAAAruB,KAAAu1E,WAAA,+CAAAv1E,KAAA,IAAA,aAGA,IAAAkwB,UAAAxN,IAAA6qE,WAAAvtF,KAAAs1B,KAAA,UAAA,SAEAt1B,KAAA6zE,OAAAxlD,OAAA6B,UACA,eAAAlwB,KAAA,QAAAA,KAAAsiC,OAAA,IAAAtiC,KAAA,OAAA,IAAAA,KAAA,OAAA,IAAA,yBAAAA,KAAA,SAAA,6BAAAA,KAAA,QAAA,mBAKAkZ,MAAA,WACA,IAAA2mD,OAAA7/D,KAGAi2E,aAAA3X,QAAA57C,IAAA1iB,KAAA6yE,IAAA,iBACA3L,WAAAhpE,MACAwkB,IAAA1iB,KAAA6yE,KAAAv/C,QAAA,EAAA0iD,WAAAh2E,KAAA6yE,IAAAruC,aAAAyxC,aAAA,KACA3iD,QAAA,EAAA0iD,UAAA,EAAAC,aAAAA,eACA76D,KAAA,WACAykD,OAAA1lC,UACA0lC,OAAA9nC,MAAA3Z,WAAAyhD,OAAAiY,MAAAjY,OAAA1lC,aAMAlT,QAAA9lB,KAEAyoB,MAAA,SAAAze,GACAwO,QAAAxO,EAAA3G,OAAA,gBACA2G,EAAA0d,iBAEA7oB,KAAA83E,UAGA32E,IAAAmqE,cAAA,WACAtrE,KAAA+3B,OACAqC,aAAAp6B,KAAA+3B,QAEA52B,IAAAoqE,cAAA,WACAvrE,KAAAm6B,UACAn6B,KAAA+3B,MAAA3Z,WAAApe,KAAA83E,MAAA93E,KAAAm6B,WAEAh5B,KAEAusE,SAEAoK,MAAA,SAAA+V,WACA,IAAAhuB,OAAA7/D,KAGA8tF,SAAA,WAEApkE,QAAAm2C,OAAAgT,IAAA,SAAAhT,SACA3jD,OAAA2jD,OAAAgT,KAEA0a,WAAA1tB,OAAAvqC,KAAAjc,SAAA7W,QACAkgB,IAAA6qE,WAAA1tB,OAAAvqC,KAAA,UAAA,SAKAt1B,KAAA+3B,OACAqC,aAAAp6B,KAAA+3B,OAGA81D,UACAC,WAEA5mB,WAAAhpE,MAAA8B,KAAA6yE,KACAv/C,QAAA,EACA0iD,WAAAh2E,KAAA6yE,IAAAruC,aACAyxC,aAAA,IACA76D,KAAA0yE,aAmBA,IAAAC,SAAA,IAAA,IAAA,MAAA,MAAA,SAAA,QAAA,QAAA,kBAAA,cAAA,UAAA,OAAA,MAAA,YAAA,SAAA,WAAA,QAAA,YAEAC,UAEAjkE,MAAAgkE,QAAAhrB,OAAA,SAAAh5C,MAAAhJ,MAEA,OADAgJ,MAAAhJ,MAAA,OACAgJ,QAEA42D,MAAA,UAGA7/D,KAAAitE,QAAAhrB,OAAA,SAAAmM,QAAAnuD,MAEA,OADAmuD,QAAAnuD,WAAAniB,EACAswE,UAEAyR,OAAA,IAGAnxD,UAEAzF,MAAA,SAAAkN,WAAA47C,KACA,IAAAhT,OAAA7/D,KAGA,OAAA+tF,QAAAhrB,OAAA,SAAAh5C,MAAAhJ,MAEA,GAAA8vB,YAAA5Z,WAAAlW,OACA,OAAAgJ,MAGA,IAGAuL,IAAA24D,MAAA1gF,KAHA2gF,QAAAntE,KAAAvV,MAAA,UACA2iF,UAAAD,SAAA,YAAAntE,KAGAqtE,MAAAn3D,WAAAlW,MAAAzgB,MAAA,GAEA6tF,WACAzrE,IAAAmwD,IAAA9xD,KAAA,IAGAqtE,MAAA5rF,OAAA,GACA4rF,MAAAn+E,SAAA,UAAA8Q,KACA,EACAotE,UACAzrE,IAAAmwD,IAAA9xD,MACA,IAAA,GAGA,IAAAsC,KAAAm6C,SAAA4wB,MAAAhiF,KAAA,IAAA,KAAA,IAAA,KAEA,GAAA8hF,QAAA,CAEA,IACA3O,MADA1M,IAAArwD,MACA+8D,MACA6O,MAAAA,MAAA9qF,IAAA,SAAAiyB,MAAA,OAmQA7S,IAAAA,IAnQAmwD,IAmQA,QAnQAt9C,MAmQA,SAAAjvB,MAAA,UAAAhG,MAAA,GAAA,GAAAC,OAAA,GAAAD,MAAA,EAAA,GAAAgD,IAAA,SAAAoV,GAAA,OAAA4lD,QAAA5lD,OAlQAm6D,IAAArwD,MAAA+8D,MAAAA,WAIA6O,MAAAA,MAAA9qF,IAAAg7D,SAIA,GAAAv9C,KAAAvV,MAAA,OAKA,GAHAkX,IAAAmwD,IAAA,uBAAA9xD,KAAA,GAAA,IACAktE,MAAAvrE,IAAAmwD,IAAA,sBAAAvsE,MAAA,KAAA,MAAAya,KAAA,GAAA,EAAA,GAEA8+C,OAAAwuB,OAAA,CAEA,IAAA95C,IAAAzvC,KAAAyvC,IAAA/wC,MAAAsB,KAAAspF,OACA77D,IAAAztB,KAAAytB,IAAA/uB,MAAAsB,KAAAspF,OACAE,KAAAF,MAAA3tF,QAAA8zC,KAAA65C,MAAA3tF,QAAA8xB,KAEAhlB,KAAAglB,IAAAgiB,IAEA65C,MAAAA,MAAA9qF,IAAA,SAAAiyB,MAAA,OAAAA,MAAA+4D,KAAA/5C,IAAAhiB,OACA+C,KAAAg5D,MAAA/gF,KAAA,GAAA,UAIA+nB,IAAA24D,MAOA,OAFAlkE,MAAAhJ,OAAAqtE,MAAAA,MAAA/qE,KAAAA,KAAAiS,IAAAA,IAAA24D,MAAAA,MAAA1gF,KAAAA,MAEAwc,YAMAwkE,QAAA,WACA,IAAA1uB,OAAA7/D,KAEA,OAAA,MAAA,OAAA2O,OAAA,SAAA6/E,IAAA,OAAAA,MAAA3uB,OAAA91C,SAGAskE,OAAA,SAAApkF,EAAA4oE,KACA,OA4OA,SAAA7lE,IACA,IACAyhF,eADAzhF,GAAAwV,MACAisE,eACAJ,OAAA,UAAA3rE,IAAAA,IAAA1V,GAAA,iBAAA,IAAA,kBAEA,OADAA,GAAAwV,MAAAisE,eAAAA,eACAJ,OAjPAA,CAAAxb,OAKAtF,aAAA,kBACAvtE,KAAA0uF,QAGAjhB,SAIA9B,KAAA,SAAAuD,SACA,IAAArP,OAAA7/D,KAYA,GATAkvE,QAAArvC,QAAA7/B,KAAA2gF,OAAA9iF,OAAA6hF,WAAA1/E,KAAA2gF,OAAA56E,QAEAmpE,QAAAp6D,QACAo6D,QAAAp6D,MAAA65E,OACAl/D,MAAAzvB,KAAA6yE,IAAA/hD,YACA8F,OAAA52B,KAAA6yE,IAAAruC,iBAIA,UAAA0qC,UAAAlvE,KAAAquF,QAAAruF,KAAAuuF,QAAA/rF,OAAA,CAIA,IAAA9D,IAAAgkB,IAAA1iB,KAAA6yE,IAAA,mBAAApzE,QAAA,gCAAA,MAEAf,MAIAwwE,QAAAp6D,OAAA,EAEAovD,SAAAxlE,KAAA0c,KAAA,SAAAwmD,KACAsN,QAAAp6D,OACA2a,MAAAmyC,IAAAgtB,aACAh4D,OAAAgrC,IAAAitB,eAGAhvB,OAAAoV,aAKAnJ,MAAA,SAAAtJ,KACA,IAAA3C,OAAA7/D,KACA8U,MAAA0tD,IAAA1tD,MACA+qB,OAAA2iC,IAAA3iC,OAGA,GAAA/qB,MAIA,GAAA+qB,OAAA,CAKA,IAAA8uD,MAAA75E,MAAA65E,MAEArmB,IAAA/I,WAAAO,MAAAhrD,MAAA65E,OAEA3uF,KAAAuuF,QAAAhsC,QAAA,SAAAxhC,MAEA,IAAAyhD,IAAA3C,OAAA91C,MAAAhJ,MACAxT,KAAAi1D,IAAAj1D,KACA0gF,MAAAzrB,IAAAyrB,MACAG,MAAA5rB,IAAA4rB,MACA/G,QAAA,QAAAtmE,KAAA,SAAA,QACA+tE,KAAAxmB,IAAA+e,SAAAsH,MAAAtH,SAEA,GAAA4G,MAAAziF,MAAA,UAAA,CAIA,GAAAsjF,KAAAvhF,KACAohF,MAAAtH,SAAA/e,IAAA+e,SAAA95E,KAAAuhF,UACA,GAAAA,KAAAvhF,KAAA,CAEA,IAAAwhF,WAAA99D,WAAAg9D,OAEAc,aACAlvB,OAAA91C,MAAAhJ,MAAAqtE,MAAAA,MAAA9qF,IAAA,SAAAiyB,MAAA,OAAAA,MAAAu5D,KAAAvhF,OAAA,IAAAwhF,eAIAzmB,IAAA/I,WAAAO,MAAAhrD,MAAA65E,UAGAjsE,IAAA1iB,KAAA6yE,KACA4b,eAAAnmB,IAAA,MAAA,MAAAA,IAAA,OAAA,KACA0mB,iBAAA,mBArCAtsE,IAAA1iB,KAAA6yE,KAAA4b,eAAA,GAAAO,iBAAA,MA0CA/nE,QAAA,OAAA,YAMAymD,SAEA14D,MAAA,WACA,IAAA6qD,OAAA7/D,KAEAoD,KAAApD,KAAAivF,OAAA,GAAA,SAAAhlF,EAAA8W,MAAA,OAAA2B,IAAAm9C,OAAAgT,IAAA9xD,KAAA,OAGAkuE,OAAA,SAAA95D,SAEA,IACApL,MADA/pB,KACA+pB,MACA0+D,YAAA,EAEA,OAAAroF,OAAAqM,KAAAsd,OAAAg5C,OAAA,SAAAmsB,OAAAnuE,MAEA,IAAAyhD,IAAAz4C,MAAAhJ,MACAqtE,MAAA5rB,IAAA4rB,MACA/qE,KAAAm/C,IAAAn/C,KACAiS,IAAAktC,IAAAltC,IACApvB,MAAAipF,SAAAf,MAAAj5D,SAEA,OAAApU,MAGA,IAAA,IACA,IAAA,IAEA,GAAA0nE,WACA,MAGA,IAAAnV,OAAA,IAAA,KAAAhwE,IAAA,SAAA0H,KAAA,OAAA+V,OAAA/V,IACA9E,MAAAmd,KACA0G,MAAA/e,KACAmkF,SAAAplE,MAAA/e,KAAAojF,MAAAj5D,SAAApL,MAAA/e,KAAAqY,KACA,IAEAs3B,EAAA24B,MAAA,GACAn5B,EAAAm5B,MAAA,GAEAmV,WAAAyG,OAAA3G,WAAA,gBAAA5tC,EAAA,KAAAR,EAAA,OACA,MACA,IAAA,SACA+0C,OAAA3G,WAAA,WAAAriF,MAAA,OACA,MACA,IAAA,QACAgpF,OAAA3G,WAAA,UAAAriF,MAAA,IACA,MAGA,IAAA,MACA,IAAA,MACAgpF,OAAA,uBAAAnuE,KAAA,IAAA,QAAAuU,IAAA,OAAApvB,MAAAmd,MAAA,IACA,MAGA,IAAA,QACA,IAAA,kBACA,IAAA,cAEA,IAAA+rE,MAAAC,QAAAjB,MAAAj5D,SACAj3B,MAAAkxF,MAAA,GACArrF,IAAAqrF,MAAA,GACAx5D,EAAAw5D,MAAA,GAEAF,OAAAnuE,MAAA,QAAA7iB,MAAAoF,IAAA,SAAA4C,MAAAtE,GAEA,OADAsE,OAAA0vB,GAAA7xB,IAAAnC,GAAAsE,OACA,IAAAtE,EAAA08D,QAAAp4D,OAAAq1B,SAAAr1B,MAAA,MACAkG,KAAA,KAAA,IACA,MAGA,IAAA,OACA8iF,OAAAvgF,QAAA,SAAAzI,MAAA,MACA,MACA,IAAA,MACAgpF,OAAAvgF,QAAA,eAAAzI,MAAA,OACA,MACA,IAAA,WACAgpF,OAAAvgF,QAAA,YAAAzI,MAAA,KACA,MACA,IAAA,YACA,IAAA,SACA,IAAA,WACA,IAAA,QACAgpF,OAAAvgF,QAAA,IAAAoS,KAAA,IAAA7a,MAAA,KACA,MAEA,QACAgpF,OAAAnuE,MAAA7a,MAGA,OAAAgpF,SAEA3G,UAAA,GAAA55E,OAAA,QAYA,SAAA0gF,QAAAjB,MAAAj5D,SACA,IAAAjT,MAAAksE,MAAA5rF,OAAA,EACA+wE,SAAAzuE,KAAAyvC,IAAAzvC,KAAAivC,MAAA7xB,MAAAiT,SAAAjT,MAAA,GACAqT,KAAA64D,MAAA9tF,MAAAizE,SAAAA,SAAA,GAIA,OAFAh+C,KAAA/0B,KAAA,IAAA20B,QAAA,EAAAA,SAAA,EAAAjT,OAAAA,OAEAqT,KAGA,SAAA45D,SAAAf,MAAAj5D,SACA,IAAAqtC,IAAA6sB,QAAAjB,MAAAj5D,SACAj3B,MAAAskE,IAAA,GACAz+D,IAAAy+D,IAAA,GACA5sC,EAAA4sC,IAAA,GACA,OAAA1xB,SAAA5yC,OACAA,MAAA4G,KAAAwqC,IAAApxC,MAAA6F,KAAA6xB,GAAA13B,MAAA6F,IAAA,GAAA,IACAA,KACAiwD,QAAA,GAWA,IAAAs7B,YAEAvhB,QAAAigB,UAEAjkE,OACAvlB,OAAA6F,OACA8xE,SAAA9d,OACAjrC,OAAAirC,QAGAv9C,MACAtc,QAAA,EACA23E,SAAA,EACA/oD,OAAA,GAGA5D,UAEAhrB,OAAA,SAAAg+D,IAAAqQ,KACA,IAAAruE,OAAAg+D,IAAAh+D,OAEA,OAAAA,QAAA47D,MAAA57D,OAAAquE,MAAAA,MAKApF,SAIA9B,KAAA,SAAAnJ,KAGA,OACAjpD,KAHAipD,IAAArtC,QAIAA,QAiCA,SAAAA,QAAA/B,QACA,OAAA4rC,MAAA7pC,SAAA,GAAA/B,OAAAA,OAAA+B,WAlCAo6D,CAAAplB,aAAAnqE,KAAAwE,SAAAxE,KAAAm8E,UAAA,GAAAn8E,KAAAozB,UAIA04C,MAAA,SAAAtJ,IAAA8Q,OACA,IAAA/5D,KAAAipD,IAAAjpD,KACA4b,QAAAqtC,IAAArtC,QACA0K,OAAA2iC,IAAA3iC,OAIA,WAHAyzC,MAAA70E,OAIA8a,MAAA,GAGAsmB,OAKAtmB,OAAA4b,SACAzS,IAAA1iB,KAAA6yE,IAAA7yE,KAAAivF,OAAA95D,UALAn1B,KAAAgV,SAUAiS,QAAA,SAAA,OAAA,aAWA,IAAAuoE,gBAEA/hB,SAIA3B,MAAA,WAEA,IAAA9rE,KAAA8e,MAAAtc,SAAAxC,KAAAypF,SAAA,CAIA,IAAAlW,SAAAvzE,KAAA6qF,uBACA7qF,KAAA4Z,MACAva,YAAAW,KAAA8pF,OAAA9pF,KAAAykF,UAAAzkF,KAAA8qF,cACA9qF,KAAA4jB,KAAA2vD,YAIAtsD,QAAA,OAAA,aAyIA,SAAAwoE,QAAAziF,GAAA3E,KAAAqnF,QAEA,IAAAl7D,KAAAm7D,UAAA3iF,GAAA3E,MAEA,OAAAqnF,OACAl7D,KAiBA,SAAAxnB,GAAA3E,MACA,OAAAA,KAAAyoB,YAAA,EAAA9jB,GAAA8jB,YAAA,EAlBA8+D,CAAA5iF,GAAA3E,MACAvD,KAAAyvC,IAAA/f,KAAAq7D,OAAAxnF,OAIA,SAAAwnF,OAAAxnF,MACA,OAAAvD,KAAAytB,IAAA,EAAAu9D,SAAAznF,MAAAA,KAAAyoB,aAGA,SAAAg/D,SAAAznF,MACA,OAAAyhF,OAAAzhF,MAAA06D,OAAA,SAAAtyC,MAAAzjB,IAAA,OAAAA,GAAA8jB,YAAAL,OAAA,GAWA,SAAAk/D,UAAA3iF,GAAA3E,MACA,OAAA2E,GAAA09D,YAAAC,MAAA39D,GAAA8jB,YAAAzoB,KAAAyoB,YAAA,KAAA65C,OAAA,EAAA,GAGA,SAAAolB,gBAAA/iF,GAAAvO,KAAAywE,SACAxlD,QAAA1c,GAAAk2D,YAAAzkE,MAAA,GAAA,EAAAywE,UAGA,SAAA4a,OAAAzhF,MACA,OAAAo2D,QAAAp2D,KAAAgR,UAGA,IAAA22E,UAEAjiB,QAAA2H,MAAAoT,OAAA0G,gBAEAzlE,OACA2lE,OAAAhxB,QACAuxB,KAAAvxB,SAGA59C,MACA4uE,QAAA,EACAO,MAAA,EACAzK,SAAA,iBACA2F,QAAA,mBACAZ,OAAA,iBACAnH,aAAA,sBACA4H,aAvLA,SAAAzxE,KAAAtO,KAAAD,IAAAw3D,KACA,IAAAktB,OAAAltB,IAAAktB,OACAt8D,OAAAovC,IAAApvC,OACA/qB,KAAAm6D,IAAAn6D,KAGAsU,SAAA,IAAAL,SAEA82B,KAAA75B,KACAk2E,QAAAl2E,KAAAlR,KAAAqnF,QACAD,QAAAxkF,KAAA5C,KAAAqnF,QAAAzkF,KAAA6lB,YAAA9lB,IACAiuB,GAAAhuB,KACAwkF,QAAAxkF,KAAA5C,KAAAqnF,QACAt8C,KAAA75B,KAAAuX,YAAA9lB,KAAA2/D,OAAA,EAAA,GAEA,OAEA3/D,IAAAA,IAEA4Y,KAAA,SAAAyR,SAAAF,QAAAQ,aACA,IAAAR,UAAAA,QAAA,GAGA,IAAA2xC,OAAAnxC,OAAA,SAAAvC,OAcA,OAbAiC,UAAAvwB,KAAAksB,MAAAqE,SAAA2pC,MAAA7pC,SAAA,EAAA,IAEAn1B,KAAAwoF,UAAArzD,SAEA5b,MAAAvZ,KAAAkwF,mBACA/6D,QAAA5b,KAAA4b,QAAA6pC,MAAA7pC,QAAA,EAAA,GACA46D,gBAAA/vF,KAAAmwF,YAAA,UAAAh7D,QAAAA,QAAAE,SAAAA,SAAAyxC,OAAAA,OAAA97D,IAAAA,MACAuO,MAAAw2E,gBAAA/vF,KAAAmwF,WAAA,GAAA,WAAAh7D,QAAA,EAAAA,QAAAE,SAAAA,SAAAyxC,OAAAA,OAAA97D,IAAAA,MAEAk8D,WACAhpE,MAAAmK,MAAAkgF,UAAAC,WAAAvvD,IAAA0xC,OAAA,EAAA,GAAA,OAAAt1C,SAAAyxC,QACA1rD,KAAAuB,SAAA7B,QAAA3V,MAEAwX,SAAAzB,SAIA3d,KAAA,WACA,OAAA2pE,WAAA3pE,KAAA8K,OAGA8+D,OAAA,WACAD,WAAAC,OAAA9+D,OAGA2M,MAAA,WACA0N,IAAAra,KAAA,YAAA,KAGA4J,QAAA,SAAAojB,SAAAF,SAIA,YAHA,IAAAA,UAAAA,QAAAn1B,KAAAm1B,WAEA+xC,WAAAC,OAAA9+D,MACArI,KAAA4jB,KAAAyR,SAAAF,SAAA,IAGAqzD,UAAA,SAAArzD,SAEA,IAAA00D,SAAA7pF,KAAAwpF,cAAAx+E,KAAA2/D,OAAA,EAAA,GAEAjoD,IAAAra,KAAA,YAAAmgF,UAAAxpB,MACA6qB,SAAAA,SAAA10D,QAAA8D,IACA62D,SAAAznF,MACAA,KAAAyoB,cACA65C,OAAA,EAAA,GAAA,OAEA3qE,KAAAkwF,mBAEA32E,OACA4b,QAAA6pC,MAAA7pC,SAAA,EAAA,GACA46D,gBAAA/vF,KAAAmwF,YAAA,mBAAAh7D,QAAAA,QAAAnqB,IAAAA,MACA+kF,gBAAA/vF,KAAAmwF,WAAA,GAAA,oBAAAh7D,QAAA,EAAAA,QAAAnqB,IAAAA,QAKAmqB,QAAA,WACA,OAAArwB,KAAAwqC,KAAA5sB,IAAAra,KAAA,aAAA/B,MAAA,KAAA,IAAAqkE,OAAA,EAAA,GAAAv3B,OAAAna,GAAAma,QAGAo2C,YAAA,WACA,OAAA1kF,KAAAwqC,IAAArW,GAAAma,OAGA+8C,UAAA,SAAA5lD,UACA,IAAAA,MAAAA,KAAA,GAGA,IAAAy8C,QAAAhnF,KAAAowF,aACAlwE,IAAA6+C,OAAA+qB,OAAAzhF,MAAA,cACAzG,EAAAgY,MAAAsG,IAAA8mE,QAAAh8E,KAAAu/B,KAAA,EAAA,GAAA,EAAAy8C,QAAAxkF,OAAA,EAAA,IAEA,OAAAZ,GAAAse,IAAAte,GAAA2X,OAAAgxB,IAAAv/B,IAAA,KAIAolF,WAAA,WAEA,IAAA57D,KAAAi7D,QAAAl2E,MAAAtO,KAAA5C,KAAAqnF,QAEA,OAAA3wB,OAAA+qB,OAAAzhF,MAAAsG,OAAA,SAAA25E,OACA,IAAA+H,UAAAV,UAAArH,MAAAjgF,MACA,OAAAgoF,WAAA77D,MAAA67D,UAAA/H,MAAAx3D,aAAAzoB,KAAAyoB,YAAA0D,OACA,eAIA07D,iBAAA,WAEA,IAAAlJ,QAAAhnF,KAAAowF,aAEAtG,OAAAzhF,MAAAk6C,QAAA,SAAA+lC,OACA,IAAAvO,SAAAvc,SAAAwpB,QAAAsB,OAEAyH,gBAAAzH,MAAA,iBAAAvO,SAAA,KAAA,QACA5kD,QAAA4kD,SAAA,EAAA,EACA/uE,IAAAs9E,MAAA5d,YAAAz/D,KAAAy/D,WAAA,GAAA,UAkEAl7C,UAEA8gE,SAAA,WACA,OAAAR,SAAA9vF,KAAAqI,MAAArI,KAAAwC,QAGAiiE,OAAA,SAAAjC,KAGA,OAFAA,IAAAiC,QAEAqrB,SAAA9vF,KAAAqI,MAAArI,KAAAqI,KAAAyoB,YA/CAg5D,OA+CA9pF,KAAAqI,MA/CA06D,OAAA,SAAAtyC,MAAAzjB,IAAA,OAAAlI,KAAAytB,IAAA9B,MAAAzjB,GAAA8jB,cAAA,GA+CA9wB,KAAA0vF,QAGA/E,SAAA,WAIA,IAAA3qF,KAAAykE,QAAAzkE,KAAA0vF,SAAA1vF,KAAAiwF,KACA,OAAAjwF,KAAAwC,OAAA,EAGA,GAAAxC,KAAA0vF,OACA,OAAA1vF,KAAAiwF,KAAAjwF,KAAAiwF,KAAAztF,OAAA,GAGAkgB,IAAA1iB,KAAA8pF,OAAA,QAAA,IAKA,IAHA,IAAAv3D,IAAAs9D,OAAA7vF,KAAAqI,MACAzG,EAAA5B,KAAAwC,OAEAZ,KACA,GAAA+tF,UAjBA3vF,KAiBAqI,KAAAgR,SAAAzX,GAjBA5B,KAiBAqI,MAAAkqB,IACA,OAAAztB,KAAAyvC,IAAA3yC,EAAA,EAlBA5B,KAkBAwC,OAAA,GAIA,OAAA,GAGAytF,KAAA,SAAAztB,KACA,IAAA3C,OAAA7/D,KACAiwF,KAAAztB,IAAAytB,KAGApX,SAAA74E,KAAAqI,KAAAyoB,aAAA9wB,KAAA0vF,OAAA,EAAA,GAEAl7D,KAAA,EACA+7D,WAAA1X,SACAwX,UAAA,EAkCA,OAhCAJ,KAAAA,MAAAjwF,KAAA8pF,OAAA/mB,OAAA,SAAAktB,KAAA3H,MAAA1mF,GAEA,IACA4uF,WADAzpD,OAAAuhD,OACA74D,MAGA,GAFA4gE,UAAAG,WAEAh8D,QAEAqrC,OAAA6vB,QAAA9tF,EAAAi+D,OAAA8qB,WACA/oF,EAAAi+D,OAAA8qB,WAGAntB,SAAAyyB,KAAAruF,IAAA,CAEA,IAAAu8E,IAAAte,OAAAiqB,OAAAloF,EAAA,GACAi+D,OAAA6vB,QAAAvR,KAAAqS,WAAAD,WAAAxpD,OAAAo3C,KAAA1uD,MAAA,EACA8gE,YAAAC,YAEAD,WAAA1X,SACAoX,KAAAzvF,KAAAoB,GACA4yB,KAAA67D,UAAAxX,UAAAhZ,OAAA6vB,OAAAc,WAAA,EAAA,IAQA,OAFAH,WAAAG,WAEAP,YAIAA,KAAAztF,QAAAytF,MAIAhF,kBAAA,WACA,OACAyE,OAAA1vF,KAAA0vF,OACArnF,KAAArI,KAAAqI,QAMAglE,UAAA,WACAtxC,YAAA/7B,KAAA6yE,IAAA7yE,KAAAojF,cAAA/5C,EAAA,IAAArpC,KAAA,aAAAA,KAAA6yE,OAGApF,QAEA3B,MAAA,WACA,IAAAjM,OAAA7/D,KAGA2nE,GAAA,IAAA3nE,KAAA,SAAA,WAAAA,KAAA,SAAA,IAAAA,KAAA6yE,KAAAtwB,QAAA,SAAAv1C,IACA,IAAAumE,SAAAzyD,KAAA9T,GAAA6yD,OAAA2lB,UACA3lB,OAAA8qB,UAAA5uD,YAAA/uB,GAAA,YAAA+7B,UAAAwqC,YAAA1T,OAAAowB,OAAAzyB,SAAAqC,OAAAowB,KAAA3xB,QAAAiV,YAAAA,SAAA1T,OAAA8qB,cAKA1jE,QAAA,OAAA,WAIAA,QAEA4kE,eAAA,SAAA1gF,IAIAnL,KAAAypF,UAAAzpF,KAAAiwF,MAAAjwF,KAAA8e,MAAAtc,OAAA,IAAAg7D,SAAAx9D,KAAAiwF,KAAAjwF,KAAA4Z,SACA5Z,KAAA4Z,MAAA5Z,KAAA6qF,iBAGA,IAAAt9E,KAAAzI,KAAAwqC,IACAtvC,KAAA4Z,MACA5Z,KAAA0pF,WACA1pF,KAAAgL,IAAA,GAAAhL,KAAA4Z,MAAA5Z,KAAA0pF,WAAA1pF,KAAAgL,IAAA,GAAAhL,KAAA4Z,MAAA5Z,KAAA0pF,WAAA1pF,KAAA2qF,SAAA,GAAA3qF,KAAAgL,IAAA,IAGA,IAAAhL,KAAAypF,UAAAl8E,KAAA,EAAA,CAEA,IAAA,IAAA3L,EAAA,EAAAA,EAAA2L,KAAA3L,IAfA5B,KAgBA8e,MAAA7a,OAAA,EAAA,EAhBAjE,KAgBAgL,IAAA,EAAA,OAAA,YAGAG,EAAA0d,sBAIA7oB,KAAAq1B,SAAA61D,QAAAlrF,KAAAswF,SAAAtwF,KAAA+qF,YAEA/qF,KAAAgL,IAAA,IAAAhL,KAAA8pF,OAAA9pF,KAAA0pF,WACA1pF,KAAA8pF,OAAA9pF,KAAA4Z,OACA5Z,KAAA8pF,OAAA9pF,KAAA0pF,YACA54D,YAAA9wB,KAAAswF,UAEAtwF,KAAAywF,WAIA7E,SAAA,YACA/6C,YAAA7wC,KAAA0pF,YAAAhuD,SAAA17B,KAAAurF,mBAAA4E,YAAAnwF,KAAAykF,YAGA2G,UAAA,WACA,IAAAvrB,OAAA7/D,KAEAgnF,QAAAhnF,KAAAurF,iBAAAvrF,KAAA4Z,OAAAw2E,aACApwF,KAAA8pF,OAAAvnC,QAAA,SAAA+lC,OAAA,OAAAvsD,YAAAusD,MAAAzoB,OAAA4kB,UAAAjnB,SAAAwpB,QAAAsB,YACAtoF,KAAAiwF,MAAAzyB,SAAAx9D,KAAAiwF,KAAA3xB,QAAAt+D,KAAA4Z,UAAA5Z,KAAA8pF,OAAAvnC,QAAA,SAAA+lC,OAAA,OAAAvsD,YAAAusD,MAAAzoB,OAAAirB,aAAAttB,SAAAwpB,QAAAsB,YAKA5a,SAEA+iB,QAAA,WACA,IAAA5wB,OAAA7/D,KAKA,GAFA0iB,IAAA1iB,KAAA8pF,OAAA,QAAA,KAEA9pF,KAAAykE,OAAA,CAIA,IAAA8O,SAAAvzE,KAAAgL,IAAA,GAAAhL,KAAA8pF,OAAA9pF,KAAA0pF,WAAA1pF,KAAA0pF,UAAA1pF,KAAA4Z,MAUA,GARA5Z,KAAA8pF,OAAAvnC,QAAA,SAAA+lC,MAAA1mF,GAAA,OAAA8gB,IAAA4lE,MAAA,QAAAzoB,OAAA70D,IAAA,GAAApJ,EAAA2xE,SACA,EACA1T,OAAA70D,IAAA,GAAApJ,GAAAi+D,OAAAjmD,OACA,EACA,MAIA5Z,KAAA0vF,OAQA,IAJA,IAAAzkF,KAAAjL,KAAA8pF,OAAAvW,UACAsF,SAAA74E,KAAAqI,KAAAyoB,YAAA,EAAA7lB,KAAA6lB,YAAA,EACAhtB,EAAA,EAEA+0E,SAAA,GAAA,CACA,IAAA6X,WAAA7wB,OAAA2E,WAAA1gE,EAAAyvE,SAAAA,UACA+U,MAAAzoB,OAAAiqB,OAAA4G,YAEAhuE,IAAA4lE,MAAA,QAAAoI,WAAAnd,UAAA,GAAA,GACAsF,UAAAyP,MAAAx3D,eAKA+5D,cAAA,SAAAtX,SAAAmW,WACA,IAWAnwE,KAJA,QANA,IAAAg6D,WAAAA,SAAAvzE,KAAA4Z,YACA,IAAA8vE,YAAAA,UAAA1pF,KAAA0pF,WAGAnW,SAAAvzE,KAAAwkE,SAAA+O,SAAAmW,YAEA1pF,KAAAiwF,KACA,OAAA1c,SAKA,EAAA,CAEA,GAAA/V,SAfAx9D,KAeAiwF,KAAA1c,UACA,OAAAA,SAGAh6D,KAAAg6D,SACAA,SApBAvzE,KAoBAwkE,SAAA+O,SApBAvzE,KAoBAgL,IAAA0+E,iBAEAnW,WAAAh6D,MAEA,OAAAg6D,YAOAod,gBAEA5iB,QAAAigB,UAEAltE,MACA8vE,QAAA,OAGAphE,UAEA68C,KAAA,SAAA7J,IAAAqQ,KAGA,OAAAzS,MAFAoC,IAAAouB,QAEA/d,OAKA5rD,SAIA7iB,KAAA,YAEA2U,MAAA,EAEA/L,GAAA,WACA,OAAAhN,KAAAqsE,MAGAl/D,QAAA,WACAuV,IAAA1iB,KAAA6yE,IAAA7yE,KAAAivF,OAAA,QAMA7qF,KAAA,iBAEA2U,MAAA,EAEA/L,GAAA,WACA,OAAAhN,KAAAqsE,MAGAl/D,QAAA,SAAAq1D,KACA,IAAA/jE,KAAA+jE,IAAA/jE,KACAoyF,WAAAruB,IAAA53C,OACAuK,QAAA07D,WAAA17D,QACAE,SAAAw7D,WAAAx7D,SACAyxC,OAAA+pB,WAAA/pB,OACA97D,IAAA6lF,WAAA7lF,IAGAk8D,WAAAC,OAAAnnE,KAAA6yE,KACAnwD,IAAA1iB,KAAA6yE,IAAA7yE,KAAAivF,OAAA6B,WAAAryF,KAAAuM,IAAAmqB,WAEA+xC,WAAAhpE,MAAA8B,KAAA6yE,IAAA7yE,KAAAivF,OAAA8B,KAAAtyF,MACA,GACAuM,IAAA,EACA,EACA,GACAqqB,SAAAyxC,QAAAlqD,MAAAzX,SAMAf,KAAA,mCAEA2U,MAAA,EAEA/L,GAAA,WACA,OAAAhN,KAAAqsE,MAGAl/D,QAAA,WACA+5D,WAAAC,OAAAnnE,KAAA6yE,QAMAzuE,KAAA,mCAEA2U,MAAA,EAEA/L,GAAA,WACA,OAAAhN,KAAAqsE,MAGAl/D,QAAA,SAAAq1D,KACA,IAAA/jE,KAAA+jE,IAAA/jE,KACAoyF,WAAAruB,IAAA53C,OACAuK,QAAA07D,WAAA17D,QACAnqB,IAAA6lF,WAAA7lF,IAEAk8D,WAAAC,OAAAnnE,KAAA6yE,KACAnwD,IAAA1iB,KAAA6yE,IAAA7yE,KAAAivF,OAAA6B,WAAAryF,KAAAuM,IAAAmqB,eAQA,SAAA47D,KAAAtyF,MACA,OAAA4+D,SAAA5+D,KAAA,MAGA,SAAAqyF,WAAAryF,KAAAuM,IAAAmqB,SAIA,OAFAA,SAAA,EAEA47D,KAAAtyF,MAIAuM,IAAA,EACA,EAAAmqB,QACAA,QALAnqB,IAAA,EACAmqB,QACA,EAAAA,QAMA,IAqKA67D,MAmSAC,MAxcAC,aAAAryB,UAAAwpB,YAEAO,MAEAhlE,KAAA,WACA,QACA0P,QAAA,EAAAU,OAAA,IACAA,QAAA,KAIAmB,QAAA,SAAAyO,SACA,OAAA,EAAAlhB,IAAAkhB,QAAA,YAGA4kD,UAAA,SAAArzD,SACA,QACA7B,QAAA,EAAA6B,QAAAnB,OAAA,IACAA,QAAA,MAMA/Q,OAEAW,KAAA,WACA,QACA0P,QAAA,EAAAi1D,UAAAG,QAAA,KAAA10D,OAAA,IACAA,QAAA,KAIAmB,QAAA,SAAAyO,SACA,OAAA,EAAAlhB,IAAAkhB,QAAA,YAGA4kD,UAAA,SAAArzD,SACA,QACA7B,QAAA,EAAA6B,QAAAozD,UAAAG,QAAA,EAAA,GAAAvzD,SAAAnB,OAAA,IACAA,QAAA,MAMAm9D,MAEAvtE,KAAA,SAAA5Y,KACA,OAAAA,IAAA,IAEAu9E,UAAAC,UAAA,IAAAx0D,QAAA,IACAu0D,UAAAC,YAAAx0D,OAAA,MAEAu0D,UAAAC,WAAA,KAAAx0D,OAAA,IACAu0D,UAAAC,YAAAx0D,QAAA,KAIAmB,QAAA,SAAAyO,QAAA34B,KAAAD,KACA,OAAAA,IAAA,EACA,EAAAy9E,WAAAx9E,MACAw9E,WAAA7kD,UAGA4kD,UAAA,SAAArzD,QAAAnqB,KACA,OAAAA,IAAA,IAEAu9E,UAAAC,UAAA,GAAArzD,SAAAnB,QAAA,IACAu0D,UAAAC,WAAA,KAAA,EAAArzD,UAAAnB,OAAA,MAEAu0D,UAAAC,UAAA,KAAArzD,SAAAnB,OAAA,IACAu0D,UAAAC,UAAA,IAAA,EAAArzD,UAAAnB,QAAA,MAMAxzB,MAEAojB,KAAA,SAAA5Y,KACA,OAAAA,IAAA,IAEAu9E,UAAAC,UAAA,KAAAx0D,OAAA,IACAu0D,UAAAC,YAAAx0D,QAAA,MAEAu0D,UAAAC,WAAA,IAAAx0D,QAAA,IACAu0D,UAAAC,YAAAx0D,OAAA,KAIAmB,QAAA,SAAAyO,QAAA34B,KAAAD,KACA,OAAAA,IAAA,EACA,EAAAy9E,WAAAx9E,MACAw9E,WAAA7kD,UAGA4kD,UAAA,SAAArzD,QAAAnqB,KACA,OAAAA,IAAA,IAEAu9E,UAAAC,UAAA,IAAArzD,SAAAnB,OAAA,IACAu0D,UAAAC,WAAA,IAAA,EAAArzD,UAAAnB,QAAA,MAEAu0D,UAAAC,WAAA,GAAArzD,SAAAnB,QAAA,IACAu0D,UAAAC,UAAA,KAAA,EAAArzD,UAAAnB,OAAA,QAQAo9D,aAEArjB,QAAA2H,MAAA+V,UAAA+D,gBAEAzlE,OACAy1C,MAAAn1D,OACAyxE,UAAApd,QACA2yB,UAAA3yB,SAGA59C,MACA0+C,MAAA,OACAsc,WAAA,EACAuV,WAAA,EACAlG,QAAA,sBACA3F,SAAA,oBACA+E,OAAA,oBACAlC,WAAA6I,cAGAzjB,QAEA9B,KAAA,WAEA,IAAAnJ,IAAAxiE,KAAAw/D,MAAAl5D,MAAA,KAAAhD,IAAA+6D,QACAwa,SAAArW,IAAA,GACAoW,UAAApW,IAAA,GAYA,OAVAoW,UAAAA,UAAA54E,KAAA6yE,IAAA/hD,YAAA+nD,SAEA74E,KAAA87E,YACAlD,UAAA9zE,KAAAytB,IAAAvyB,KAAA87E,UAAAlD,YAGA54E,KAAAqxF,YACAzY,UAAA9zE,KAAAyvC,IAAAv0C,KAAAqxF,UAAAzY,aAGAhiD,OAAAgiD,YAGA9M,MAAA,SAAAtJ,KACA,IAAA8uB,IAAA9uB,IAAA5rC,OAEAA,OAAA52B,KAAAqI,KAAAvD,KAAAivC,MAAAu9C,OAGArqE,QAAA,OAAA,YAQAsqE,UAEAxjB,QAAA2H,MAAA2Q,SAEAt8D,OACA49D,MAAAt9E,OACA4qD,UAAAoJ,OACAmzB,QAAAnnF,OACAonF,eAAApnF,OACAqnF,QAAArnF,OACAsnF,aAAAtnF,OACAunF,QAAAvnF,OACAwnF,UAAAxnF,OACAynF,SAAAznF,OACA0nF,UAAA1nF,OACAmd,OAAAnd,QAGAyW,MACA6mE,OAAA,EACA1yB,UAAA,EACAu8B,QAAA,mBACAC,eAAA,0BACAC,QAAA,mBACAC,aAAA,UACAC,QAAA,cACAC,UAAA,qBACAC,SAAA,oBACAC,UAAA,GACAvqE,QAAA,GAGAnlB,KAAA,WACA,IAAAw9D,OAAA7/D,MAEA,OAAA,QAAA,OAAA,OAAAuiD,QAAA,SAAA51C,KACA,IAAAvK,GAAAy9D,OAAAlzD,KACAkzD,OAAAlzD,KAAA,SAAAxB,GACA00D,OAAAulB,QAAAvnF,OAAA8pC,YACA,IAAA66B,IAAAuN,SAAA5kE,GACAwvC,EAAA6nB,IAAA7nB,EACAR,EAAAqoB,IAAAroB,EACA0lB,OAAAvqC,KAAAqlB,EAAAA,EAAAR,EAAAA,GAEA/3C,GAAA+I,OAKA8b,QAAA+pE,SAAAA,MAAA7lB,aAAA,OAAA6lB,OAEAvjB,QAEA3B,MAAA,WAMA,GAJA9rE,KAAA8xF,UACA/1D,YAAA/7B,KAAA6yE,IAAA7yE,KAAA8xF,UAAA9xF,KAAA6yE,IAAAx5D,SAAA7W,QAGAxC,KAAAspF,KAAA,CAIAviD,OAAA/mC,KAAAspF,MAAAj7E,IAAArO,KAAAs1B,IAAA6kB,EAAAn6C,KAAAsnE,OAAAj5D,IAAAmmB,KAAAx0B,KAAAs1B,IAAAqlB,EAAA36C,KAAAsnE,OAAA9yC,OAEA,IAGAmiD,OAFAtoE,IADA04B,OAAA/mC,KAAAspF,MACAj7E,IACA+wD,OAAA/wD,IAAArO,KAAAspF,KAAA9kD,aAGAn2B,IAAA,GAAAA,IAAArO,KAAAolF,QACAzO,OAAA32E,KAAAolF,QAAA,EACAhmB,OAAAxoC,OAAAj6B,WAAAyiE,OAAAxoC,OAAA/4B,QAAAmC,KAAAolF,UACAzO,OAAA32E,KAAAolF,QAAA,GAGAzO,QAAAv4D,WAAA,WAAA,OAAAvgB,OAAA84E,OAAA94E,OAAA+pC,YAAA+uC,SAAA,MAKAjJ,SAEArrE,KAAA,SAAA8I,GAEA,IAAA3G,OAAA2G,EAAA3G,OACA6P,OAAAlJ,EAAAkJ,OACA4V,iBAAA9e,EAAA8e,iBAEA+6D,YADAvmB,QAAAz+D,KAAA6yE,IAAAx5D,UAAA1K,OAAA,SAAA3B,IAAA,OAAAu1D,OAAA/9D,OAAAwI,MACA,IAEAg4E,aACA1iB,QAAAn3D,EAAA3G,SACAxE,KAAAwnB,SAAA+6C,OAAA/9D,OAAAxE,KAAAwnB,SACAnT,OAAA,GACAkuD,OAAA/9D,OAAA,IAAAxE,KAAA,YACAiqB,mBAKA9e,EAAA0d,iBAEA7oB,KAAAgyF,SAAAhyF,MACAA,KAAAglF,YAAAA,YACAhlF,KAAAsnE,OAAAzI,QAAAr6D,OAAAA,OAAAoV,MAAAA,MAAAorE,cAAAhlF,KAAAs1B,KAEA7O,GAAA9pB,SAAAyuE,YAAAprE,KAAA4pF,MACAnjE,GAAA9pB,SAAA0uE,UAAArrE,KAAA+D,KACA0iB,GAAA5oB,OAAA,SAAAmC,KAAA22E,QAEA32E,KAAAi1D,WACAj1D,KAAA9B,MAAAiN,KAKAjN,MAAA,SAAAiN,GAEAnL,KAAAspF,KAAAj7D,OAAAruB,KAAAu1E,WAAAv1E,KAAAglF,YAAAiN,UAAAxyF,QAAA,QAAA,QAAAA,QAAA,QAAA,SAEAijB,IAAA1iB,KAAAspF,KAAAzqB,QACAkd,UAAA,aACAtsD,MAAAzvB,KAAAglF,YAAAl0D,YACA8F,OAAA52B,KAAAglF,YAAAxgD,cACA9hB,IAAA1iB,KAAAglF,aAAA,cAAA,eAAA,aAAA,oBACA50E,KAAApQ,KAAAspF,KAAA,aAAA,IACA5tD,SAAA17B,KAAAspF,KAAAtpF,KAAA0xF,QAAA1xF,KAAA+xF,WAEAn7D,OAAA52B,KAAAspF,KAAAnlD,kBAAAvN,OAAA52B,KAAAglF,YAAA7gD,oBAEA,IAAAq+B,IAAAz7B,OAAA/mC,KAAAglF,aACAxwD,KAAAguC,IAAAhuC,KACAnmB,IAAAm0D,IAAAn0D,IACAwwD,OAAA7+D,KAAAsnE,QAAA9yC,KAAAA,KAAAx0B,KAAAs1B,IAAAqlB,EAAAtsC,IAAAA,IAAArO,KAAAs1B,IAAA6kB,IAEAze,SAAA17B,KAAAglF,YAAAhlF,KAAAyxF,gBACA/1D,SAAA17B,KAAA6yE,IAAAx5D,SAAArZ,KAAAwxF,SACA91D,SAAA/+B,SAAAsR,gBAAAjO,KAAA2xF,cAEAjoE,QAAA1pB,KAAA6yE,IAAA,SAAA7yE,KAAAA,KAAAglF,cAEAhlF,KAAA4pF,KAAAz+E,IAGAy+E,KAAA,SAAAz+E,GAEA,GAAAnL,KAAAspF,KAAA,CASAtpF,KAAAi1E,QAEA,IAAAzwE,OAAA,cAAA2G,EAAA1M,KAAA0M,EAAA3G,OAAA7H,SAAAu1F,iBAAAlyF,KAAAs1B,IAAAqlB,EAAAh+C,SAAA+mB,KAAAgS,WAAA11B,KAAAs1B,IAAA6kB,EAAAx9C,SAAA+mB,KAAA+R,WAEA08D,SAAAnyF,KAAAoyF,YAAA5tF,QACA6tF,SAAAryF,KAAAoyF,YAAApyF,KAAAglF,aACA4E,KAAAuI,WAAAE,SAEA,GAAAF,WAAA5vB,OAAA/9D,OAAAxE,KAAAglF,gBAAA4E,MAAAuI,SAAAxK,OAAAwK,SAAAxK,QAAA0K,SAAA1K,OAAA,CAMA,GAFAnjF,OAAA2tF,SAAAtf,MAAAruE,OAAAzC,YAAAyC,QAAAi6D,QAAA0zB,SAAAtf,IAAAx5D,UAAA1K,OAAA,SAAArP,SAAA,OAAAijE,OAAA/9D,OAAAlF,WAAA,GAEAsqF,KACAyI,SAAAn2E,OAAAlc,KAAAglF,kBACA,IAAAxgF,OACA,OAGA2tF,SAAAljE,OAAAjvB,KAAAglF,YAAAxgF,QAEAg5D,SAAAx9D,KAAAgyF,QAAAG,WACAnyF,KAAAgyF,QAAAxxF,KAAA2xF,gBA9BArtF,KAAAwqC,IAAAtvC,KAAAs1B,IAAAqlB,EAAA36C,KAAAsnE,OAAA3sB,GAAA36C,KAAAi1D,WAAAnwD,KAAAwqC,IAAAtvC,KAAAs1B,IAAA6kB,EAAAn6C,KAAAsnE,OAAAntB,GAAAn6C,KAAAi1D,YACAj1D,KAAA9B,MAAAiN,IAkCAwrE,OAAA,WACA,IAAAA,OAAA94E,OAAA8pC,YACAgvC,SAAA32E,KAAAolF,UACAplF,KAAAs1B,IAAA6kB,GAAAw8B,OAAA32E,KAAAolF,QACAplF,KAAAolF,QAAAzO,OACA32E,KAAAi1E,UAIAlxE,IAAA,SAAAoH,GAMA,GAJA2b,IAAAnqB,SAAAyuE,YAAAprE,KAAA4pF,MACA9iE,IAAAnqB,SAAA0uE,UAAArrE,KAAA+D,KACA+iB,IAAAjpB,OAAA,SAAAmC,KAAA22E,QAEA32E,KAAAspF,KAAA,CASAhmB,eAEA,IAAA6uB,SAAAnyF,KAAAoyF,YAAApyF,KAAAglF,aAEAhlF,OAAAmyF,SACAnyF,KAAAsnE,OAAA1tD,QAAAA,MAAA5Z,KAAAglF,cACAt7D,QAAA1pB,KAAA6yE,IAAA,SAAA7yE,KAAAA,KAAAglF,eAGAt7D,QAAAyoE,SAAAtf,IAAA,SAAAsf,SAAAnyF,KAAAglF,cACAt7D,QAAA1pB,KAAA6yE,IAAA,WAAA7yE,KAAAA,KAAAglF,eAGAt7D,QAAA1pB,KAAA6yE,IAAA,QAAA7yE,KAAAA,KAAAglF,cAEA9oE,OAAAlc,KAAAspF,MACAtpF,KAAAspF,KAAA,KAEA,IAAA3tD,QAAA37B,KAAAgyF,QAAA1uF,IAAA,SAAA6uF,UAAA,OAAAA,SAAA,eAAA,IAAAA,SAAA,UAAA/lF,KAAA,KACApM,KAAAgyF,QAAAzvC,QAAA,SAAA4vC,UAAA,OAAA9yF,YAAA8yF,SAAAtf,IAAAx5D,SAAAsiB,WAEAt8B,YAAA1C,SAAAsR,gBAAAjO,KAAA2xF,kBA5BA,YAAAxmF,EAAA1M,MAAA8jE,OAAAp3D,EAAA3G,OAAA,aACAgP,SAAAK,KAAA8F,QAAAxO,EAAA3G,OAAA,WAAAqP,OA+BAob,OAAA,SAAA3vB,QAAAkF,QACA,IAAAq7D,OAAA7/D,KAGA07B,SAAA17B,KAAA6yE,IAAAx5D,SAAArZ,KAAAwxF,SAEA,IAAAviE,OAAA,WAEAzqB,QAEA+9D,OAAAjjE,QAAAugE,OAAAgT,MA0CA,SAAAvzE,QAAAkF,QACA,OAAAlF,QAAAyC,aAAAyC,OAAAzC,YAAA6X,MAAAta,SAAAsa,MAAApV,QA3CA8tF,CAAAhzF,QAAAkF,QACAgqB,OAAAhqB,OAAAlF,SAEAmvB,MAAAjqB,OAAAlF,SAIA+uB,OAAAwxC,OAAAgT,IAAAvzE,UAKAU,KAAA82B,UACA92B,KAAAk5B,QAAAjK,QAEAA,UAKA/S,OAAA,SAAA5c,SAEAijE,OAAAjjE,QAAAU,KAAA6yE,OAIA7yE,KAAA82B,UACA92B,KAAAk5B,QAAA,WAAA,OAAAhd,OAAA5c,WAEA4c,OAAA5c,WAKA8yF,YAAA,SAAA9yF,SACA,OAAAA,UAAAU,KAAAq1E,cAAA/1E,QAAA,aAAAU,KAAAoyF,YAAA9yF,QAAAyC,gBAaA,IAAAilF,WAEAuL,SAEArlF,OAAA,EAEA0F,KAAA,QAEAm7D,QAAAiT,UAAArL,UAAAsD,UAEAlvD,OACAkQ,MAAAokC,OACAm0B,MAAAnoF,QAGAyW,MACAwU,IAAA,MACAk9D,MAAA,GACAv4D,MAAA,EACAnD,WAAA,yBACAzB,SAAA,IACAgwC,IAAA,YACA6T,OAAA,cAGA9L,cAAA,WACAptE,KAAAyyF,UAAA1yB,QAAA//D,KAAA6yE,IAAA,SACAziE,KAAApQ,KAAA6yE,KAAA2f,MAAA,GAAAE,iBAAA,KAGAnlB,aAAA,WACAvtE,KAAA8jB,OACA1T,KAAApQ,KAAA6yE,KAAA2f,MAAAxyF,KAAAyyF,UAAAzyF,KAAAwyF,MAAA,KAAAE,gBAAA,QAGAhlB,SAEA9pD,KAAA,WACA,IAAAi8C,OAAA7/D,KAGAw9D,SAAAwpB,QAAAhnF,QAIAgnF,QAAAzkC,QAAA,SAAA1iB,QAAA,OAAAA,OAAA/b,SACAkjE,QAAAxmF,KAAAR,MAEAA,KAAA2yF,QAAAlsE,GAAA9pB,SAAA,QAAA,SAAAwO,GAAA,OAAAo3D,OAAAp3D,EAAA3G,OAAAq7D,OAAAgT,MAAAhT,OAAA/7C,SAEAsW,aAAAp6B,KAAAk6E,WAEAl6E,KAAA4yF,QAAAvkE,OAAAruB,KAAAkwB,UAAA,eAAAlwB,KAAA,OAAA,6BAAAA,KAAA,OAAA,WAAAA,KAAA,MAAA,gBAEAoQ,KAAApQ,KAAA6yE,IAAA,iBAAA,GAEA7yE,KAAA6nE,WAAA7nE,KAAA4yF,QAAA5yF,KAAA6yE,KAEA7yE,KAAAsnE,OAAA,MAAAtnE,KAAAq5E,UAAA1P,aAAA3pE,KAAAgL,KAAA,IAAAhL,KAAA,MAAAA,KAAA,MAAA,IAAA2pE,aAAA3pE,KAAAgL,KAEAhL,KAAAk6E,UAAA97D,WAAA,WAEAyhD,OAAAwW,cAAAxW,OAAA+yB,SAAA,GAEA/yB,OAAAua,UAAAnL,YAAA,WAEA7M,UAAAvC,OAAAgT,MACAhT,OAAA/7C,QAGA,MAEA9jB,KAAAi6B,SAGAnW,KAAA,WAEA,IAAAyvD,SAAAyT,QAAAvmF,QAAAT,QAEAuzE,UAAAxtE,QAAA/F,KAAA6yE,IAAA,UAAA7yE,KAAA6yE,MAAAl2E,SAAAgX,gBAIAqzE,QAAA/iF,OAAAsvE,SAAA,GAEAn5C,aAAAp6B,KAAAk6E,WACA9K,cAAApvE,KAAAo6E,WACAhqE,KAAApQ,KAAA6yE,IAAA,iBAAA,GACA7yE,KAAAq2E,cAAAr2E,KAAA4yF,SAAA,GACA5yF,KAAA4yF,SAAA12E,OAAAlc,KAAA4yF,SACA5yF,KAAA4yF,SAAA,EACA5yF,KAAA2yF,aAMA1rE,QAAAgqE,SAAAA,MAAA,SAAA3lB,aAAA,IAAAH,aAAA,SAAAhgE,GACAA,EAAA1M,OAAA0sE,aAAAmF,QAAAnlE,IACAnL,KAAA4jB,QAEAqtE,MAAAtnE,KAAA,OAAAsnE,MAAA1lB,cAAA,SAAApgE,GACAmlE,QAAAnlE,IACAnL,KAAA8jB,QAEAmtE,QAIA4B,QAEA9oE,OACA+oE,MAAAzoF,OACA0oF,YAAA1oF,OACA2oF,WAAA30B,OACA40B,QAAA50B,OACApjD,OAAA5Q,OACA6oF,KAAA7oF,OACA8oF,eAAA9oF,OACA+oF,eAAA/oF,OACAgpF,eAAAhpF,OACAotE,SAAA/Y,QACAt6D,KAAAiG,OACAw8B,OAAAzmC,OACA3B,KAAA4L,OACAjM,IAAAiM,QAGAyW,MACAgyE,OAAA,EACAC,YAAA,cACAC,WAAA,EACAC,QAAA,EACAh4E,OAAA,OACAi4E,MAAA,EACAC,eAAA,wBACAC,eAAA,wBACAC,eAAA,sCACA5b,UAAA,EACArzE,KAAA,UACAyiC,UACApoC,KAAA,GACAL,IAAA,GACAmkC,MAAAp9B,KACAmuF,UAAAnuF,KACA49B,WAAA59B,KACA2yB,SAAA3yB,KACAouF,YAAApuF,KACAF,MAAAE,KACAgW,KAAAhW,KACAqkB,KAAArkB,KACAquF,QAAAruF,KACAsuF,UAAAtuF,KACA+X,SAAA/X,MAGA8hB,QAEAkmB,OAAA,SAAAhiC,GAEApF,QAAAoF,EAAA3G,OAAA,wBAIA2G,EAAA0d,iBAEA1d,EAAA3G,OAAAk2E,OACA16E,KAAA0zF,OAAAvoF,EAAA3G,OAAAk2E,OAGAvvE,EAAA3G,OAAA0B,MAAA,KAGAo0E,KAAA,SAAAnvE,GACA5N,KAAA4N,GAEA,IAAAwoF,SAAAxoF,EAAAyoF,aAEAD,UAAAA,SAAAjZ,QAIAr7E,YAAAW,KAAA6yE,IAAA7yE,KAAA+yF,aAEA/yF,KAAA0zF,OAAAC,SAAAjZ,SAGAmZ,UAAA,SAAA1oF,GACA5N,KAAA4N,IAGA2oF,SAAA,SAAA3oF,GACA5N,KAAA4N,GACAuwB,SAAA17B,KAAA6yE,IAAA7yE,KAAA+yF,cAGAgB,UAAA,SAAA5oF,GACA5N,KAAA4N,GACA9L,YAAAW,KAAA6yE,IAAA7yE,KAAA+yF,eAKArlB,SAEAgmB,OAAA,SAAAhZ,OACA,IAAA7a,OAAA7/D,KAGA,GAAA06E,MAAAl4E,OAAA,CAIAknB,QAAA1pB,KAAA6yE,IAAA,UAAA6H,QAEA,IAAA,IAAA94E,EAAA,EAAAA,EAAA84E,MAAAl4E,OAAAZ,IAAA,CAEA,GAAAi+D,OAAAozB,SAAA,IAAApzB,OAAAozB,QAAAvY,MAAA94E,GAAA+9E,KAEA,YADA9f,OAAA1kD,KAAA0kD,OAAAwzB,eAAA5zF,QAAA,KAAAogE,OAAAozB,UAIA,GAAApzB,OAAAizB,QAAAtnF,MAAAq0D,OAAAizB,MAAApY,MAAA94E,GAAAwC,MAEA,YADAy7D,OAAA1kD,KAAA0kD,OAAAuzB,eAAA3zF,QAAA,KAAAogE,OAAAizB,QAIA,GAAAjzB,OAAAqzB,OAAA1nF,MAAAq0D,OAAAqzB,KAAAxY,MAAA94E,GAAAnD,MAEA,YADAohE,OAAA1kD,KAAA0kD,OAAAszB,eAAA1zF,QAAA,KAAAogE,OAAAqzB,OAMAlzF,KAAAy3E,WACAiD,OAAAA,MAAA,KAGA16E,KAAAszF,UAAAtzF,KAAA06E,OAEA,IAAAsZ,OAsDA,SAAAtZ,MAAAiF,MAEA,IADA,IAAAqU,UACApyF,EAAA,EAAAA,EAAA84E,MAAAl4E,OAAAZ,GAAA+9E,KAAA,CAEA,IADA,IAAAsU,SACAnwF,EAAA,EAAAA,EAAA67E,KAAA77E,IACAmwF,MAAAzzF,KAAAk6E,MAAA94E,EAAAkC,IAEAkwF,OAAAxzF,KAAAyzF,OAEA,OAAAD,OA/DAC,CAAAvZ,MAAA16E,KAAAgzF,YACAU,OAAA,SAAAhZ,OAEA,IAAAxL,QAAA,IAAAglB,SAIA,IAAA,IAAAvnF,OAFA+tE,MAAAn4B,QAAA,SAAA3tC,MAAA,OAAAs6D,QAAA7gD,OAAAwxC,OAAAz7D,KAAAwQ,QAEAirD,OAAAh5B,OACAqoC,QAAA7gD,OAAA1hB,IAAAkzD,OAAAh5B,OAAAl6B,MAGAs0B,KAAA4+B,OAAAzhE,KACA0iB,KAAAouD,QACAj0D,OAAA4kD,OAAA5kD,OACAwqB,aAAAo6B,OAAAphE,KACAskC,WAAA,SAAAkhC,KAEA,IAAAx/B,IAAAw/B,IAAAx/B,IACAA,IAAAivD,QAAAjtE,GAAAge,IAAAivD,OAAA,WAAA7zB,OAAA3iD,WACA,YAAA,OAAA,UAAA,SAAAqlC,QAAA,SAAA9jD,MAAA,OAAAgoB,GAAAge,IAAAhmC,KAAA8H,cAAAs5D,OAAAphE,SAGAohE,OAAA98B,WAAAkhC,QAGA7oD,KACA,SAAAqpB,KAEAo7B,OAAA/nC,SAAA2M,KAEAuvD,OAAAxxF,OACAkxF,OAAAM,OAAAnnF,SAEAgzD,OAAA0zB,YAAA9uD,MAIA,SAAAt5B,GAAA,OAAA00D,OAAA56D,MAAAkG,EAAA8T,YAKAy0E,OAAAM,OAAAnnF,aAQA,SAAArB,MAAAmG,QAAA0/D,MACA,OAAAA,KAAA7lE,MAAA,IAAAhM,OAAA,IAAAmS,QAAAlS,QAAA,MAAA,OAAAA,QAAA,QAAA,iBAAAA,QAAA,MAAA,WAAAA,QAAA,cAAA,OAAA,IAAA,MAeA,SAAAlC,KAAA4N,GACAA,EAAA0d,iBACA1d,EAAA2d,kBAqBA,OAlBAwzC,MAAA4U,UAAA,YAAA6U,WACAzpB,MAAA4U,UAAA,SAAA4V,QACAxqB,MAAA4U,UAAA,WAAAkc,UACA9wB,MAAA4U,UAAA,gBAAA6a,eACAzvB,MAAA4U,UAAA,eAAAsc,cACAlxB,MAAA4U,UAAA,WAAAoe,YACAhzB,MAAA4U,UAAA,SAAA8e,UACA1zB,MAAA4U,UAAA,iBAAAyf,gBACAr0B,MAAA4U,UAAA,YAAAkgB,aACA90B,MAAA4U,UAAA,oBAAAyf,gBACAr0B,MAAA4U,UAAA,WAAAqgB,UACAj1B,MAAA4U,UAAA,UAAAqhB,SACAj2B,MAAA4U,UAAA,SAAA2hB,QAjxRA,SAAAv2B,OAEA,IAAAwY,QAAAxY,MAAAwY,QACA7C,WAAA3V,MAAA2V,WAuBA,SAAA5vE,OAEAwlF,SAAAlrF,SAAA+mB,KAAAoxD,SAEAtJ,QAAAS,QAEA,IAAA+H,iBAAA,SAAAmgB,WAAA,OAAAA,UAAA5xC,QAAA6xC,iBAAAlgB,QAAAv3E,UACA03F,WAAA,EACAC,SAAA,EACAC,eAAA,EACA9rF,YAAA,IAGA6zD,MAAAsY,cAAA,EAGA,SAAAwf,cAAAI,UAEA,IAAAhwF,OAAAgwF,SAAAhwF,QAGA,eAFAgwF,SAAA/1F,KAuCA,SAAA+jE,KAKA,IAJA,IAAAiyB,WAAAjyB,IAAAiyB,WACAC,aAAAlyB,IAAAkyB,aAGA9yF,EAAA,EAAAA,EAAA6yF,WAAAjyF,OAAAZ,IACAimF,SAAA4M,WAAA7yF,GAAAkzE,SAGA,IAAA,IAAA6f,IAAA,EAAAA,IAAAD,aAAAlyF,OAAAmyF,MACA9M,SAAA6M,aAAAC,KAAA1iB,YAGA,OAAA,EAjDA2iB,CAAAJ,UAOA,SAAAhyB,KACA,IAAAh+D,OAAAg+D,IAAAh+D,OACAqwF,cAAAryB,IAAAqyB,cAGA,GAAA,SAAAA,cACA,OAAA,EAGA,IAAAzwF,KAAAmsE,iBAAAskB,eAEA,GAAAzwF,MAAAA,QAAAk4D,MAAA,CAIA,GAAAyD,QAAAv7D,OAAAqwF,eAEA,OADAv4B,MAAAl4D,MAAAI,SACA,EAGA,IAAA0sE,UAAA5U,MAAAmY,aAAAjwE,OAAAJ,MAEA,OAAA8sE,WACAA,UAAAwD,YACA,QAFA,GA5BAogB,CAAAN,YAEAl4B,MAAAmR,OAAAjpE,QAiDA,SAAAqjF,SAAAlmF,KAAAS,IAEA,GAAA,IAAAT,KAAAP,WAAA2+D,QAAAp+D,KAAA,cAMA,IAFAS,GAAAT,MACAA,KAAAA,KAAAwiC,kBACAxiC,MAAA,CACA,IAAAsJ,KAAAtJ,KAAAujE,mBACA2iB,SAAAlmF,KAAAS,IACAT,KAAAsJ,MA1GA,qBAAApN,SAIAlB,SAAA+mB,KAEArhB,OAIA,IAAA2xE,iBAAA,WAEAr3E,SAAA+mB,OACA1jB,KAAAiyE,aACA5vE,UAGA6xE,QAAAv3E,UAAA03F,WAAA,EAAAC,SAAA,KA8vRAS,CAAAz4B,OAGAA,QCh+WA,WAEA,MAAA04B,SAAA,IAAAxtF,KAAAA,KAAA60C,IAAA,KAAA,EAAA,KACA44C,OAAA,IAAAztF,KAAAA,KAAA60C,IAAA,KAAA,EAAA,KAEAjyB,IAAA5iB,KAAA4iB,MACA,IAAA8qE,KAEA,GAAA9qE,IAAA,IAAA6qE,OAAAtiD,UAAA,CACA2pB,MAAAqxB,cAEA1uE,QAAA,2RAQAqW,IAAA,eACA6E,QAAA86D,OAAA7qE,MAIA,MAAA+qE,QAAAx4F,SAAAC,eAAA,mBAEAwtB,IAAA4qE,SAAAriD,WACAwiD,QAAAlmF,UAAA,uDACAimF,KAAAD,OAAAtiD,YAEAwiD,QAAAlmF,UAAA,sDACAimF,KAAAF,SAAAriD,WAGA,MAAAyiD,iBAAAnmB,YAAA,KACA,IAAAl8C,MAAAmiE,KAAA1tF,KAAA4iB,MAEA,GAAA2I,OAAA,IAEA,OADAq8C,cAAAgmB,kBACA5hF,SAAA6hF,SAGA,IAAA3rC,KAAA5kD,KAAAivC,MAAAhhB,MAAA,OACAA,OAAA,MAAA22B,KAEA,IAAAvK,MAAAr6C,KAAAivC,MAAAhhB,MAAA,MACAA,OAAA,KAAAosB,MAEA,IAAAE,QAAAv6C,KAAAivC,MAAAhhB,MAAA,KACAA,OAAA,IAAAssB,QAEA,IAAAG,QAAA16C,KAAAivC,MAAAhhB,MAAA,KAEA22B,KAAA,KACAA,SAAAA,QAGAvK,MAAA,KACAA,UAAAA,SAGAE,QAAA,KACAA,YAAAA,WAGAG,QAAA,KACAA,YAAAA,WAGA,IACA7iD,SAAAC,eAAA,uBAAAqS,aAAAy6C,QAAAvK,SAAAE,WAAAG,UACA,MAAAr0C,GACA,OAAAikE,cAAAgmB,oBAEA,MA1EA,GN8BAp2F,SAAA,OAAA,gBAGArC,SAAA6oC,mBAAA,WACA,gBAAA7oC,SAAA6iB,aACAngB,YAAA,OAAA,gBACAlB,UACA,yDACA,0EACA,aAEAA,UACA,2DAEAA,UACA,kDO3CAm3F,WACAC,YAAAn3F,IAAAo3F,YACAx1F,KAAA5B,IAAAA,IACA4B,KAAAw1F,WAAAA,WAGAD,KAAAjP,OAAArrE,OAAA6F,KAAAzd,UACAyd,KAAA,OAAAwlE,OAEAj9C,EAAApI,KAAAjhC,KAAA5B,KACA0iB,KAAAA,KACAme,SAAA,OACA6D,SAAA2yD,cAAAz1F,KAAAw1F,YACAv6E,OAAAA,SACAtT,KAAAmZ,MAEAzd,WADA,eAAAyd,MACAA,OAIA3F,KAAA,IAAA9X,UAAA,IAGAkyF,UAAAjP,OAAArrE,OAAA6F,KAAAzd,UACAyd,KAAA,OAAAwlE,OAEAj9C,EAAApI,KAAAjhC,KAAA5B,KACA0iB,KAAAQ,KAAA43C,UAAAp4C,MACAme,SAAA,OACA6D,SAAA2yD,cAAAz1F,KAAAw1F,YACAv6E,OAAAA,SACAtT,KAAAmZ,MAEAzd,WADA,eAAAyd,MACAA,OAIA3F,KAAA,IAAA9X,UAAA,IAGAkyF,UAAAG,IAAAj5E,MAAApZ,UACArD,KAAAijC,KACA,QACA,QAEAyyD,IAAAA,IACAj5E,MAAAA,OAEApZ,UAIAkyF,cAAAlyF,UACArD,KAAAijC,KACA,YACA,SAEA5/B,UAIAkyF,gBAAAz0E,KAAAzd,UACArD,KAAA21F,UACA,YACA,OACA70E,KACAzd,UAIAkyF,gBAAAzpF,GAAAzI,UACArD,KAAAijC,KACA,WACA,UACAn3B,GAAAA,IACAzI,UAIAkyF,mBAAAK,KAAAC,SAAAxyF,UACArD,KAAAijC,KACA,qBACA,QAEA2yD,KAAAA,KACAC,SAAAA,UAEAxyF,UAIAkyF,sBAAAK,KAAAC,SAAAxyF,UACArD,KAAAijC,KACA,wBACA,QAEA2yD,KAAAA,KACAC,SAAAA,UAEAxyF,UAIAkyF,kBAAAzpF,GAAA+4D,OAAA/wB,OAAAzwC,UACArD,KAAAijC,KACA,aACA,QAEA6yD,YAAAhqF,GACA+4D,OAAAA,OACA/wB,OAAAA,QAEAzwC,UAIAkyF,kBAAAzpF,GAAAzI,UACArD,KAAAijC,KACA,aACA,UACAn3B,GAAAA,IACAzI,UAIAkyF,oBAAAzpF,GAAAzI,UACArD,KAAAijC,KACA,sBACA,QACAn3B,GAAAA,IACAzI,UAIAkyF,sBAAAzpF,GAAAzI,UACArD,KAAAijC,KACA,wBACA,QACAn3B,GAAAA,IACAzI,WC3IA,SAAA0yF,cAAAC,WACA,MAAA1qE,QAAA3uB,SAAA2P,iBAAA,YACA2pF,OAAA,mCAGA,SAAAC,cAAA52F,SACA,MAAA6L,EAAA7L,QAAAwM,GAAAN,MAAAyqF,QACA,OAAA9qF,EAAA,GAAAA,EAAA,IAGA,SAAAgrF,YAAArqF,IAKA,OAJAkqF,UAAArnF,OAAAgsC,GAEAA,EAAA7uC,KAAAA,IAEA,GAyDAwf,QAAAi3B,QAAAluC,SACAA,OAAAL,SAAA,EACAK,OAAA+hF,SAAA,YAxDA,SAAA92F,SACA,MAAAwM,GAAAoqF,cAAA52F,SACA+2F,IAAAF,YAAArqF,GAAA,IAkCA,IAAAwqF,IAAAC,IAjCA,UAAAzqF,GAAA,IAMAnP,SAAAwC,iCAAA2M,GAAA,MAAAkI,SAAA,EAEAsX,QAAAi3B,QAAAp3C,IACA,UAAA+qF,cAAA/qF,GAAA,IAAAA,EAAAW,KAAAxM,QAAAwM,KACAX,EAAA6I,SAAA,OAIArX,SAAAwC,gCAAA2M,GAAA,MAAAkI,SAAA,EACAsX,QAAAi3B,QAAAp3C,IACA,WAAA+qF,cAAA/qF,GAAA,IAAAA,EAAAW,KAAAxM,QAAAwM,KACAX,EAAA6I,SAAA,GAIA,UAAAkiF,cAAA/qF,GAAA,KACAgrF,YAAAD,cAAA/qF,GAAA,IAEAsvC,MAAA47C,IAAA57C,KACA99C,SAAAwC,kBAAAgM,EAAAW,MAAAxO,aAAA,WAAA,IAEAX,SAAAwC,kBAAAgM,EAAAW,MAAAU,gBAAA,gBAQA8e,QAAAi3B,QAAAluC,SACA,MAAAvI,GAAAoqF,cAAA7hF,QACAA,OAAAL,SAAA,WAAAlI,GAAA,KACAyqF,IAAAzqF,GAAA,IAGAuI,OAAAL,SAAA,UAAAlI,GAAA,KACAwqF,IAAAxqF,GAAA,MAKAnP,SAAAC,eAAA,kBAAAiX,yBAAA0iF,OAAAD,MAOAE,CAAAniF,YC7EA,WACA,MACAoiF,QAAA95F,SAAAC,eAAA,gBACAD,SAAAC,eAAA,uBAEAO,QAAA,WACAs5F,QAAAlxB,UAAAh+D,SALA,gBAMAkvF,QAAAlxB,UAAArpD,OANA,gBAQAu6E,QAAAlxB,UAAAzrD,IARA,iBADA","file":"script.js","sourcesContent":["\"use strict\";\n\n/* exported error_typewriter */\n\nfunction error_typewriter() {\n const app = document.getElementById(\"error\");\n\n const typewriter = new Typewriter(app, {\n \"loop\": false,\n \"deleteSpeed\": 40,\n \"typingSpeed\": \"natural\",\n \"devMode\": false\n });\n\n function closeWindow() {\n const app = document.getElementById(\"win\");\n const current_class = app.getAttribute(\"class\");\n app.setAttribute(\"class\", `${current_class } uk-animation-scale-up uk-animation-reverse`);\n typewriter.stop();\n }\n\n document.getElementById(\"terminal-close\").onclick = closeWindow;\n\n typewriter.appendText(\"Python 3.6.4 (default, Jan 5 2018, 02:35:40)\\n\")\n .appendText(\"[GCC 7.2.1 20171224] on darwin\\n\")\n .appendText(\"Type \\\"help\\\", \\\"copyright\\\", \\\"credits\\\" or \\\"license\\\" for more information.\\n\")\n .appendText(\">>> \")\n .pauseFor(1000)\n .typeString(\"impor requests\")\n .deleteChars(9)\n .typeString(\"t requests\\n\")\n .appendText(\">>> \")\n .pauseFor(750)\n .changeSettings({\"typingSpeed\": \"natural\"})\n .typeString(`response = requests.${ window._RequestMethod }('https://pythim`)\n .deleteChars(2)\n .typeString(\"ondiscord.con/\")\n .deleteChars(2)\n .typeString(`m${ window._Path }')\\n`)\n .pauseFor(1000)\n .appendText(`<Response [${ window._Code }]>\\n>>> `)\n .typeString(\"# hmmmm\")\n .pauseFor(1000)\n .deleteChars(7)\n .pauseFor(1000)\n .typeString(\"response.text\\n\")\n .appendText(`${ window._ErrorMsg }\\n>>> `)\n .start();\n}\n","\"use strict\";\n\nfunction getScript(url, integrity, cross_origin) {\n const script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n script.src = url;\n script.defer = true;\n\n if (integrity !== undefined) {\n script.integrity = integrity;\n }\n\n if (cross_origin !== undefined) {\n script.crossOrigin = cross_origin;\n }\n\n document.getElementsByTagName(\"head\")[0].appendChild(script);\n}\n\nfunction setClass(selector, my_class) {\n const element = document.querySelector(selector);\n // console.log(element);\n element.className = my_class;\n}\n\nfunction removeClass(selector, my_class) {\n const element = document.querySelector(selector);\n const reg = new RegExp(`(^| )${my_class}($| )`, \"g\");\n element.className = element.className.replace(reg, \" \");\n}\n\n// hide the html when the page loads, but only if js is turned on.\nsetClass(\"html\", \"prevent-fouc\");\n\n// when the DOM has finished loading, unhide the html\ndocument.onreadystatechange = function () {\n if (document.readyState === \"interactive\") {\n removeClass(\"html\", \"prevent-fouc\");\n getScript(\n \"https://pro.fontawesome.com/releases/v5.0.13/js/all.js\", // URL\n \"sha384-d84LGg2pm9KhR4mCAs3N29GQ4OYNy+K+FBHX8WhimHpPm86c839++MDABegrZ3gn\", // Integrity\n \"anonymous\" // Cross-origin\n );\n getScript(\n \"https://cdnjs.cloudflare.com/ajax/libs/ace/1.3.3/ace.js\"\n );\n getScript(\n \"https://cdn.jsdelivr.net/npm/flatpickr\"\n );\n }\n};\n","/*!\n * jQuery JavaScript Library v3.3.1\n * https://jquery.com/\n *\n * Includes Sizzle.js\n * https://sizzlejs.com/\n *\n * Copyright JS Foundation and other contributors\n * Released under the MIT license\n * https://jquery.org/license\n *\n * Date: 2018-01-20T17:24Z\n */\n( function( global, factory ) {\n\n\t\"use strict\";\n\n\tif ( typeof module === \"object\" && typeof module.exports === \"object\" ) {\n\n\t\t// For CommonJS and CommonJS-like environments where a proper `window`\n\t\t// is present, execute the factory and get jQuery.\n\t\t// For environments that do not have a `window` with a `document`\n\t\t// (such as Node.js), expose a factory as module.exports.\n\t\t// This accentuates the need for the creation of a real `window`.\n\t\t// e.g. var jQuery = require(\"jquery\")(window);\n\t\t// See ticket #14549 for more info.\n\t\tmodule.exports = global.document ?\n\t\t\tfactory( global, true ) :\n\t\t\tfunction( w ) {\n\t\t\t\tif ( !w.document ) {\n\t\t\t\t\tthrow new Error( \"jQuery requires a window with a document\" );\n\t\t\t\t}\n\t\t\t\treturn factory( w );\n\t\t\t};\n\t} else {\n\t\tfactory( global );\n\t}\n\n// Pass this if window is not defined yet\n} )( typeof window !== \"undefined\" ? window : this, function( window, noGlobal ) {\n\n// Edge <= 12 - 13+, Firefox <=18 - 45+, IE 10 - 11, Safari 5.1 - 9+, iOS 6 - 9.1\n// throw exceptions when non-strict code (e.g., ASP.NET 4.5) accesses strict mode\n// arguments.callee.caller (trac-13335). But as of jQuery 3.0 (2016), strict mode should be common\n// enough that all such attempts are guarded in a try block.\n\"use strict\";\n\nvar arr = [];\n\nvar document = window.document;\n\nvar getProto = Object.getPrototypeOf;\n\nvar slice = arr.slice;\n\nvar concat = arr.concat;\n\nvar push = arr.push;\n\nvar indexOf = arr.indexOf;\n\nvar class2type = {};\n\nvar toString = class2type.toString;\n\nvar hasOwn = class2type.hasOwnProperty;\n\nvar fnToString = hasOwn.toString;\n\nvar ObjectFunctionString = fnToString.call( Object );\n\nvar support = {};\n\nvar isFunction = function isFunction( obj ) {\n\n // Support: Chrome <=57, Firefox <=52\n // In some browsers, typeof returns \"function\" for HTML <object> elements\n // (i.e., `typeof document.createElement( \"object\" ) === \"function\"`).\n // We don't want to classify *any* DOM node as a function.\n return typeof obj === \"function\" && typeof obj.nodeType !== \"number\";\n };\n\n\nvar isWindow = function isWindow( obj ) {\n\t\treturn obj != null && obj === obj.window;\n\t};\n\n\n\n\n\tvar preservedScriptAttributes = {\n\t\ttype: true,\n\t\tsrc: true,\n\t\tnoModule: true\n\t};\n\n\tfunction DOMEval( code, doc, node ) {\n\t\tdoc = doc || document;\n\n\t\tvar i,\n\t\t\tscript = doc.createElement( \"script\" );\n\n\t\tscript.text = code;\n\t\tif ( node ) {\n\t\t\tfor ( i in preservedScriptAttributes ) {\n\t\t\t\tif ( node[ i ] ) {\n\t\t\t\t\tscript[ i ] = node[ i ];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tdoc.head.appendChild( script ).parentNode.removeChild( script );\n\t}\n\n\nfunction toType( obj ) {\n\tif ( obj == null ) {\n\t\treturn obj + \"\";\n\t}\n\n\t// Support: Android <=2.3 only (functionish RegExp)\n\treturn typeof obj === \"object\" || typeof obj === \"function\" ?\n\t\tclass2type[ toString.call( obj ) ] || \"object\" :\n\t\ttypeof obj;\n}\n/* global Symbol */\n// Defining this global in .eslintrc.json would create a danger of using the global\n// unguarded in another place, it seems safer to define global only for this module\n\n\n\nvar\n\tversion = \"3.3.1\",\n\n\t// Define a local copy of jQuery\n\tjQuery = function( selector, context ) {\n\n\t\t// The jQuery object is actually just the init constructor 'enhanced'\n\t\t// Need init if jQuery is called (just allow error to be thrown if not included)\n\t\treturn new jQuery.fn.init( selector, context );\n\t},\n\n\t// Support: Android <=4.0 only\n\t// Make sure we trim BOM and NBSP\n\trtrim = /^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g;\n\njQuery.fn = jQuery.prototype = {\n\n\t// The current version of jQuery being used\n\tjquery: version,\n\n\tconstructor: jQuery,\n\n\t// The default length of a jQuery object is 0\n\tlength: 0,\n\n\ttoArray: function() {\n\t\treturn slice.call( this );\n\t},\n\n\t// Get the Nth element in the matched element set OR\n\t// Get the whole matched element set as a clean array\n\tget: function( num ) {\n\n\t\t// Return all the elements in a clean array\n\t\tif ( num == null ) {\n\t\t\treturn slice.call( this );\n\t\t}\n\n\t\t// Return just the one element from the set\n\t\treturn num < 0 ? this[ num + this.length ] : this[ num ];\n\t},\n\n\t// Take an array of elements and push it onto the stack\n\t// (returning the new matched element set)\n\tpushStack: function( elems ) {\n\n\t\t// Build a new jQuery matched element set\n\t\tvar ret = jQuery.merge( this.constructor(), elems );\n\n\t\t// Add the old object onto the stack (as a reference)\n\t\tret.prevObject = this;\n\n\t\t// Return the newly-formed element set\n\t\treturn ret;\n\t},\n\n\t// Execute a callback for every element in the matched set.\n\teach: function( callback ) {\n\t\treturn jQuery.each( this, callback );\n\t},\n\n\tmap: function( callback ) {\n\t\treturn this.pushStack( jQuery.map( this, function( elem, i ) {\n\t\t\treturn callback.call( elem, i, elem );\n\t\t} ) );\n\t},\n\n\tslice: function() {\n\t\treturn this.pushStack( slice.apply( this, arguments ) );\n\t},\n\n\tfirst: function() {\n\t\treturn this.eq( 0 );\n\t},\n\n\tlast: function() {\n\t\treturn this.eq( -1 );\n\t},\n\n\teq: function( i ) {\n\t\tvar len = this.length,\n\t\t\tj = +i + ( i < 0 ? len : 0 );\n\t\treturn this.pushStack( j >= 0 && j < len ? [ this[ j ] ] : [] );\n\t},\n\n\tend: function() {\n\t\treturn this.prevObject || this.constructor();\n\t},\n\n\t// For internal use only.\n\t// Behaves like an Array's method, not like a jQuery method.\n\tpush: push,\n\tsort: arr.sort,\n\tsplice: arr.splice\n};\n\njQuery.extend = jQuery.fn.extend = function() {\n\tvar options, name, src, copy, copyIsArray, clone,\n\t\ttarget = arguments[ 0 ] || {},\n\t\ti = 1,\n\t\tlength = arguments.length,\n\t\tdeep = false;\n\n\t// Handle a deep copy situation\n\tif ( typeof target === \"boolean\" ) {\n\t\tdeep = target;\n\n\t\t// Skip the boolean and the target\n\t\ttarget = arguments[ i ] || {};\n\t\ti++;\n\t}\n\n\t// Handle case when target is a string or something (possible in deep copy)\n\tif ( typeof target !== \"object\" && !isFunction( target ) ) {\n\t\ttarget = {};\n\t}\n\n\t// Extend jQuery itself if only one argument is passed\n\tif ( i === length ) {\n\t\ttarget = this;\n\t\ti--;\n\t}\n\n\tfor ( ; i < length; i++ ) {\n\n\t\t// Only deal with non-null/undefined values\n\t\tif ( ( options = arguments[ i ] ) != null ) {\n\n\t\t\t// Extend the base object\n\t\t\tfor ( name in options ) {\n\t\t\t\tsrc = target[ name ];\n\t\t\t\tcopy = options[ name ];\n\n\t\t\t\t// Prevent never-ending loop\n\t\t\t\tif ( target === copy ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Recurse if we're merging plain objects or arrays\n\t\t\t\tif ( deep && copy && ( jQuery.isPlainObject( copy ) ||\n\t\t\t\t\t( copyIsArray = Array.isArray( copy ) ) ) ) {\n\n\t\t\t\t\tif ( copyIsArray ) {\n\t\t\t\t\t\tcopyIsArray = false;\n\t\t\t\t\t\tclone = src && Array.isArray( src ) ? src : [];\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tclone = src && jQuery.isPlainObject( src ) ? src : {};\n\t\t\t\t\t}\n\n\t\t\t\t\t// Never move original objects, clone them\n\t\t\t\t\ttarget[ name ] = jQuery.extend( deep, clone, copy );\n\n\t\t\t\t// Don't bring in undefined values\n\t\t\t\t} else if ( copy !== undefined ) {\n\t\t\t\t\ttarget[ name ] = copy;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Return the modified object\n\treturn target;\n};\n\njQuery.extend( {\n\n\t// Unique for each copy of jQuery on the page\n\texpando: \"jQuery\" + ( version + Math.random() ).replace( /\\D/g, \"\" ),\n\n\t// Assume jQuery is ready without the ready module\n\tisReady: true,\n\n\terror: function( msg ) {\n\t\tthrow new Error( msg );\n\t},\n\n\tnoop: function() {},\n\n\tisPlainObject: function( obj ) {\n\t\tvar proto, Ctor;\n\n\t\t// Detect obvious negatives\n\t\t// Use toString instead of jQuery.type to catch host objects\n\t\tif ( !obj || toString.call( obj ) !== \"[object Object]\" ) {\n\t\t\treturn false;\n\t\t}\n\n\t\tproto = getProto( obj );\n\n\t\t// Objects with no prototype (e.g., `Object.create( null )`) are plain\n\t\tif ( !proto ) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Objects with prototype are plain iff they were constructed by a global Object function\n\t\tCtor = hasOwn.call( proto, \"constructor\" ) && proto.constructor;\n\t\treturn typeof Ctor === \"function\" && fnToString.call( Ctor ) === ObjectFunctionString;\n\t},\n\n\tisEmptyObject: function( obj ) {\n\n\t\t/* eslint-disable no-unused-vars */\n\t\t// See https://github.com/eslint/eslint/issues/6125\n\t\tvar name;\n\n\t\tfor ( name in obj ) {\n\t\t\treturn false;\n\t\t}\n\t\treturn true;\n\t},\n\n\t// Evaluates a script in a global context\n\tglobalEval: function( code ) {\n\t\tDOMEval( code );\n\t},\n\n\teach: function( obj, callback ) {\n\t\tvar length, i = 0;\n\n\t\tif ( isArrayLike( obj ) ) {\n\t\t\tlength = obj.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor ( i in obj ) {\n\t\t\t\tif ( callback.call( obj[ i ], i, obj[ i ] ) === false ) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn obj;\n\t},\n\n\t// Support: Android <=4.0 only\n\ttrim: function( text ) {\n\t\treturn text == null ?\n\t\t\t\"\" :\n\t\t\t( text + \"\" ).replace( rtrim, \"\" );\n\t},\n\n\t// results is for internal usage only\n\tmakeArray: function( arr, results ) {\n\t\tvar ret = results || [];\n\n\t\tif ( arr != null ) {\n\t\t\tif ( isArrayLike( Object( arr ) ) ) {\n\t\t\t\tjQuery.merge( ret,\n\t\t\t\t\ttypeof arr === \"string\" ?\n\t\t\t\t\t[ arr ] : arr\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tpush.call( ret, arr );\n\t\t\t}\n\t\t}\n\n\t\treturn ret;\n\t},\n\n\tinArray: function( elem, arr, i ) {\n\t\treturn arr == null ? -1 : indexOf.call( arr, elem, i );\n\t},\n\n\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t// push.apply(_, arraylike) throws on ancient WebKit\n\tmerge: function( first, second ) {\n\t\tvar len = +second.length,\n\t\t\tj = 0,\n\t\t\ti = first.length;\n\n\t\tfor ( ; j < len; j++ ) {\n\t\t\tfirst[ i++ ] = second[ j ];\n\t\t}\n\n\t\tfirst.length = i;\n\n\t\treturn first;\n\t},\n\n\tgrep: function( elems, callback, invert ) {\n\t\tvar callbackInverse,\n\t\t\tmatches = [],\n\t\t\ti = 0,\n\t\t\tlength = elems.length,\n\t\t\tcallbackExpect = !invert;\n\n\t\t// Go through the array, only saving the items\n\t\t// that pass the validator function\n\t\tfor ( ; i < length; i++ ) {\n\t\t\tcallbackInverse = !callback( elems[ i ], i );\n\t\t\tif ( callbackInverse !== callbackExpect ) {\n\t\t\t\tmatches.push( elems[ i ] );\n\t\t\t}\n\t\t}\n\n\t\treturn matches;\n\t},\n\n\t// arg is for internal usage only\n\tmap: function( elems, callback, arg ) {\n\t\tvar length, value,\n\t\t\ti = 0,\n\t\t\tret = [];\n\n\t\t// Go through the array, translating each of the items to their new values\n\t\tif ( isArrayLike( elems ) ) {\n\t\t\tlength = elems.length;\n\t\t\tfor ( ; i < length; i++ ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Go through every key on the object,\n\t\t} else {\n\t\t\tfor ( i in elems ) {\n\t\t\t\tvalue = callback( elems[ i ], i, arg );\n\n\t\t\t\tif ( value != null ) {\n\t\t\t\t\tret.push( value );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Flatten any nested arrays\n\t\treturn concat.apply( [], ret );\n\t},\n\n\t// A global GUID counter for objects\n\tguid: 1,\n\n\t// jQuery.support is not used in Core but other projects attach their\n\t// properties to it so it needs to exist.\n\tsupport: support\n} );\n\nif ( typeof Symbol === \"function\" ) {\n\tjQuery.fn[ Symbol.iterator ] = arr[ Symbol.iterator ];\n}\n\n// Populate the class2type map\njQuery.each( \"Boolean Number String Function Array Date RegExp Object Error Symbol\".split( \" \" ),\nfunction( i, name ) {\n\tclass2type[ \"[object \" + name + \"]\" ] = name.toLowerCase();\n} );\n\nfunction isArrayLike( obj ) {\n\n\t// Support: real iOS 8.2 only (not reproducible in simulator)\n\t// `in` check used to prevent JIT error (gh-2145)\n\t// hasOwn isn't used here due to false negatives\n\t// regarding Nodelist length in IE\n\tvar length = !!obj && \"length\" in obj && obj.length,\n\t\ttype = toType( obj );\n\n\tif ( isFunction( obj ) || isWindow( obj ) ) {\n\t\treturn false;\n\t}\n\n\treturn type === \"array\" || length === 0 ||\n\t\ttypeof length === \"number\" && length > 0 && ( length - 1 ) in obj;\n}\nvar Sizzle =\n/*!\n * Sizzle CSS Selector Engine v2.3.3\n * https://sizzlejs.com/\n *\n * Copyright jQuery Foundation and other contributors\n * Released under the MIT license\n * http://jquery.org/license\n *\n * Date: 2016-08-08\n */\n(function( window ) {\n\nvar i,\n\tsupport,\n\tExpr,\n\tgetText,\n\tisXML,\n\ttokenize,\n\tcompile,\n\tselect,\n\toutermostContext,\n\tsortInput,\n\thasDuplicate,\n\n\t// Local document vars\n\tsetDocument,\n\tdocument,\n\tdocElem,\n\tdocumentIsHTML,\n\trbuggyQSA,\n\trbuggyMatches,\n\tmatches,\n\tcontains,\n\n\t// Instance-specific data\n\texpando = \"sizzle\" + 1 * new Date(),\n\tpreferredDoc = window.document,\n\tdirruns = 0,\n\tdone = 0,\n\tclassCache = createCache(),\n\ttokenCache = createCache(),\n\tcompilerCache = createCache(),\n\tsortOrder = function( a, b ) {\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t}\n\t\treturn 0;\n\t},\n\n\t// Instance methods\n\thasOwn = ({}).hasOwnProperty,\n\tarr = [],\n\tpop = arr.pop,\n\tpush_native = arr.push,\n\tpush = arr.push,\n\tslice = arr.slice,\n\t// Use a stripped-down indexOf as it's faster than native\n\t// https://jsperf.com/thor-indexof-vs-for/5\n\tindexOf = function( list, elem ) {\n\t\tvar i = 0,\n\t\t\tlen = list.length;\n\t\tfor ( ; i < len; i++ ) {\n\t\t\tif ( list[i] === elem ) {\n\t\t\t\treturn i;\n\t\t\t}\n\t\t}\n\t\treturn -1;\n\t},\n\n\tbooleans = \"checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped\",\n\n\t// Regular expressions\n\n\t// http://www.w3.org/TR/css3-selectors/#whitespace\n\twhitespace = \"[\\\\x20\\\\t\\\\r\\\\n\\\\f]\",\n\n\t// http://www.w3.org/TR/CSS21/syndata.html#value-def-identifier\n\tidentifier = \"(?:\\\\\\\\.|[\\\\w-]|[^\\0-\\\\xa0])+\",\n\n\t// Attribute selectors: http://www.w3.org/TR/selectors/#attribute-selectors\n\tattributes = \"\\\\[\" + whitespace + \"*(\" + identifier + \")(?:\" + whitespace +\n\t\t// Operator (capture 2)\n\t\t\"*([*^$|!~]?=)\" + whitespace +\n\t\t// \"Attribute values must be CSS identifiers [capture 5] or strings [capture 3 or capture 4]\"\n\t\t\"*(?:'((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\"|(\" + identifier + \"))|)\" + whitespace +\n\t\t\"*\\\\]\",\n\n\tpseudos = \":(\" + identifier + \")(?:\\\\((\" +\n\t\t// To reduce the number of selectors needing tokenize in the preFilter, prefer arguments:\n\t\t// 1. quoted (capture 3; capture 4 or capture 5)\n\t\t\"('((?:\\\\\\\\.|[^\\\\\\\\'])*)'|\\\"((?:\\\\\\\\.|[^\\\\\\\\\\\"])*)\\\")|\" +\n\t\t// 2. simple (capture 6)\n\t\t\"((?:\\\\\\\\.|[^\\\\\\\\()[\\\\]]|\" + attributes + \")*)|\" +\n\t\t// 3. anything else (capture 2)\n\t\t\".*\" +\n\t\t\")\\\\)|)\",\n\n\t// Leading and non-escaped trailing whitespace, capturing some non-whitespace characters preceding the latter\n\trwhitespace = new RegExp( whitespace + \"+\", \"g\" ),\n\trtrim = new RegExp( \"^\" + whitespace + \"+|((?:^|[^\\\\\\\\])(?:\\\\\\\\.)*)\" + whitespace + \"+$\", \"g\" ),\n\n\trcomma = new RegExp( \"^\" + whitespace + \"*,\" + whitespace + \"*\" ),\n\trcombinators = new RegExp( \"^\" + whitespace + \"*([>+~]|\" + whitespace + \")\" + whitespace + \"*\" ),\n\n\trattributeQuotes = new RegExp( \"=\" + whitespace + \"*([^\\\\]'\\\"]*?)\" + whitespace + \"*\\\\]\", \"g\" ),\n\n\trpseudo = new RegExp( pseudos ),\n\tridentifier = new RegExp( \"^\" + identifier + \"$\" ),\n\n\tmatchExpr = {\n\t\t\"ID\": new RegExp( \"^#(\" + identifier + \")\" ),\n\t\t\"CLASS\": new RegExp( \"^\\\\.(\" + identifier + \")\" ),\n\t\t\"TAG\": new RegExp( \"^(\" + identifier + \"|[*])\" ),\n\t\t\"ATTR\": new RegExp( \"^\" + attributes ),\n\t\t\"PSEUDO\": new RegExp( \"^\" + pseudos ),\n\t\t\"CHILD\": new RegExp( \"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\\\(\" + whitespace +\n\t\t\t\"*(even|odd|(([+-]|)(\\\\d*)n|)\" + whitespace + \"*(?:([+-]|)\" + whitespace +\n\t\t\t\"*(\\\\d+)|))\" + whitespace + \"*\\\\)|)\", \"i\" ),\n\t\t\"bool\": new RegExp( \"^(?:\" + booleans + \")$\", \"i\" ),\n\t\t// For use in libraries implementing .is()\n\t\t// We use this for POS matching in `select`\n\t\t\"needsContext\": new RegExp( \"^\" + whitespace + \"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\\\(\" +\n\t\t\twhitespace + \"*((?:-\\\\d)?\\\\d*)\" + whitespace + \"*\\\\)|)(?=[^-]|$)\", \"i\" )\n\t},\n\n\trinputs = /^(?:input|select|textarea|button)$/i,\n\trheader = /^h\\d$/i,\n\n\trnative = /^[^{]+\\{\\s*\\[native \\w/,\n\n\t// Easily-parseable/retrievable ID or TAG or CLASS selectors\n\trquickExpr = /^(?:#([\\w-]+)|(\\w+)|\\.([\\w-]+))$/,\n\n\trsibling = /[+~]/,\n\n\t// CSS escapes\n\t// http://www.w3.org/TR/CSS21/syndata.html#escaped-characters\n\trunescape = new RegExp( \"\\\\\\\\([\\\\da-f]{1,6}\" + whitespace + \"?|(\" + whitespace + \")|.)\", \"ig\" ),\n\tfunescape = function( _, escaped, escapedWhitespace ) {\n\t\tvar high = \"0x\" + escaped - 0x10000;\n\t\t// NaN means non-codepoint\n\t\t// Support: Firefox<24\n\t\t// Workaround erroneous numeric interpretation of +\"0x\"\n\t\treturn high !== high || escapedWhitespace ?\n\t\t\tescaped :\n\t\t\thigh < 0 ?\n\t\t\t\t// BMP codepoint\n\t\t\t\tString.fromCharCode( high + 0x10000 ) :\n\t\t\t\t// Supplemental Plane codepoint (surrogate pair)\n\t\t\t\tString.fromCharCode( high >> 10 | 0xD800, high & 0x3FF | 0xDC00 );\n\t},\n\n\t// CSS string/identifier serialization\n\t// https://drafts.csswg.org/cssom/#common-serializing-idioms\n\trcssescape = /([\\0-\\x1f\\x7f]|^-?\\d)|^-$|[^\\0-\\x1f\\x7f-\\uFFFF\\w-]/g,\n\tfcssescape = function( ch, asCodePoint ) {\n\t\tif ( asCodePoint ) {\n\n\t\t\t// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER\n\t\t\tif ( ch === \"\\0\" ) {\n\t\t\t\treturn \"\\uFFFD\";\n\t\t\t}\n\n\t\t\t// Control characters and (dependent upon position) numbers get escaped as code points\n\t\t\treturn ch.slice( 0, -1 ) + \"\\\\\" + ch.charCodeAt( ch.length - 1 ).toString( 16 ) + \" \";\n\t\t}\n\n\t\t// Other potentially-special ASCII characters get backslash-escaped\n\t\treturn \"\\\\\" + ch;\n\t},\n\n\t// Used for iframes\n\t// See setDocument()\n\t// Removing the function wrapper causes a \"Permission Denied\"\n\t// error in IE\n\tunloadHandler = function() {\n\t\tsetDocument();\n\t},\n\n\tdisabledAncestor = addCombinator(\n\t\tfunction( elem ) {\n\t\t\treturn elem.disabled === true && (\"form\" in elem || \"label\" in elem);\n\t\t},\n\t\t{ dir: \"parentNode\", next: \"legend\" }\n\t);\n\n// Optimize for push.apply( _, NodeList )\ntry {\n\tpush.apply(\n\t\t(arr = slice.call( preferredDoc.childNodes )),\n\t\tpreferredDoc.childNodes\n\t);\n\t// Support: Android<4.0\n\t// Detect silently failing push.apply\n\tarr[ preferredDoc.childNodes.length ].nodeType;\n} catch ( e ) {\n\tpush = { apply: arr.length ?\n\n\t\t// Leverage slice if possible\n\t\tfunction( target, els ) {\n\t\t\tpush_native.apply( target, slice.call(els) );\n\t\t} :\n\n\t\t// Support: IE<9\n\t\t// Otherwise append directly\n\t\tfunction( target, els ) {\n\t\t\tvar j = target.length,\n\t\t\t\ti = 0;\n\t\t\t// Can't trust NodeList.length\n\t\t\twhile ( (target[j++] = els[i++]) ) {}\n\t\t\ttarget.length = j - 1;\n\t\t}\n\t};\n}\n\nfunction Sizzle( selector, context, results, seed ) {\n\tvar m, i, elem, nid, match, groups, newSelector,\n\t\tnewContext = context && context.ownerDocument,\n\n\t\t// nodeType defaults to 9, since context defaults to document\n\t\tnodeType = context ? context.nodeType : 9;\n\n\tresults = results || [];\n\n\t// Return early from calls with invalid selector or context\n\tif ( typeof selector !== \"string\" || !selector ||\n\t\tnodeType !== 1 && nodeType !== 9 && nodeType !== 11 ) {\n\n\t\treturn results;\n\t}\n\n\t// Try to shortcut find operations (as opposed to filters) in HTML documents\n\tif ( !seed ) {\n\n\t\tif ( ( context ? context.ownerDocument || context : preferredDoc ) !== document ) {\n\t\t\tsetDocument( context );\n\t\t}\n\t\tcontext = context || document;\n\n\t\tif ( documentIsHTML ) {\n\n\t\t\t// If the selector is sufficiently simple, try using a \"get*By*\" DOM method\n\t\t\t// (excepting DocumentFragment context, where the methods don't exist)\n\t\t\tif ( nodeType !== 11 && (match = rquickExpr.exec( selector )) ) {\n\n\t\t\t\t// ID selector\n\t\t\t\tif ( (m = match[1]) ) {\n\n\t\t\t\t\t// Document context\n\t\t\t\t\tif ( nodeType === 9 ) {\n\t\t\t\t\t\tif ( (elem = context.getElementById( m )) ) {\n\n\t\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\t\tif ( elem.id === m ) {\n\t\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t// Element context\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t// Support: IE, Opera, Webkit\n\t\t\t\t\t\t// TODO: identify versions\n\t\t\t\t\t\t// getElementById can match elements by name instead of ID\n\t\t\t\t\t\tif ( newContext && (elem = newContext.getElementById( m )) &&\n\t\t\t\t\t\t\tcontains( context, elem ) &&\n\t\t\t\t\t\t\telem.id === m ) {\n\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\treturn results;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t// Type selector\n\t\t\t\t} else if ( match[2] ) {\n\t\t\t\t\tpush.apply( results, context.getElementsByTagName( selector ) );\n\t\t\t\t\treturn results;\n\n\t\t\t\t// Class selector\n\t\t\t\t} else if ( (m = match[3]) && support.getElementsByClassName &&\n\t\t\t\t\tcontext.getElementsByClassName ) {\n\n\t\t\t\t\tpush.apply( results, context.getElementsByClassName( m ) );\n\t\t\t\t\treturn results;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Take advantage of querySelectorAll\n\t\t\tif ( support.qsa &&\n\t\t\t\t!compilerCache[ selector + \" \" ] &&\n\t\t\t\t(!rbuggyQSA || !rbuggyQSA.test( selector )) ) {\n\n\t\t\t\tif ( nodeType !== 1 ) {\n\t\t\t\t\tnewContext = context;\n\t\t\t\t\tnewSelector = selector;\n\n\t\t\t\t// qSA looks outside Element context, which is not what we want\n\t\t\t\t// Thanks to Andrew Dupont for this workaround technique\n\t\t\t\t// Support: IE <=8\n\t\t\t\t// Exclude object elements\n\t\t\t\t} else if ( context.nodeName.toLowerCase() !== \"object\" ) {\n\n\t\t\t\t\t// Capture the context ID, setting it first if necessary\n\t\t\t\t\tif ( (nid = context.getAttribute( \"id\" )) ) {\n\t\t\t\t\t\tnid = nid.replace( rcssescape, fcssescape );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcontext.setAttribute( \"id\", (nid = expando) );\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prefix every selector in the list\n\t\t\t\t\tgroups = tokenize( selector );\n\t\t\t\t\ti = groups.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tgroups[i] = \"#\" + nid + \" \" + toSelector( groups[i] );\n\t\t\t\t\t}\n\t\t\t\t\tnewSelector = groups.join( \",\" );\n\n\t\t\t\t\t// Expand context for sibling selectors\n\t\t\t\t\tnewContext = rsibling.test( selector ) && testContext( context.parentNode ) ||\n\t\t\t\t\t\tcontext;\n\t\t\t\t}\n\n\t\t\t\tif ( newSelector ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tpush.apply( results,\n\t\t\t\t\t\t\tnewContext.querySelectorAll( newSelector )\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t} catch ( qsaError ) {\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tif ( nid === expando ) {\n\t\t\t\t\t\t\tcontext.removeAttribute( \"id\" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// All others\n\treturn select( selector.replace( rtrim, \"$1\" ), context, results, seed );\n}\n\n/**\n * Create key-value caches of limited size\n * @returns {function(string, object)} Returns the Object data after storing it on itself with\n *\tproperty name the (space-suffixed) string and (if the cache is larger than Expr.cacheLength)\n *\tdeleting the oldest entry\n */\nfunction createCache() {\n\tvar keys = [];\n\n\tfunction cache( key, value ) {\n\t\t// Use (key + \" \") to avoid collision with native prototype properties (see Issue #157)\n\t\tif ( keys.push( key + \" \" ) > Expr.cacheLength ) {\n\t\t\t// Only keep the most recent entries\n\t\t\tdelete cache[ keys.shift() ];\n\t\t}\n\t\treturn (cache[ key + \" \" ] = value);\n\t}\n\treturn cache;\n}\n\n/**\n * Mark a function for special use by Sizzle\n * @param {Function} fn The function to mark\n */\nfunction markFunction( fn ) {\n\tfn[ expando ] = true;\n\treturn fn;\n}\n\n/**\n * Support testing using an element\n * @param {Function} fn Passed the created element and returns a boolean result\n */\nfunction assert( fn ) {\n\tvar el = document.createElement(\"fieldset\");\n\n\ttry {\n\t\treturn !!fn( el );\n\t} catch (e) {\n\t\treturn false;\n\t} finally {\n\t\t// Remove from its parent by default\n\t\tif ( el.parentNode ) {\n\t\t\tel.parentNode.removeChild( el );\n\t\t}\n\t\t// release memory in IE\n\t\tel = null;\n\t}\n}\n\n/**\n * Adds the same handler for all of the specified attrs\n * @param {String} attrs Pipe-separated list of attributes\n * @param {Function} handler The method that will be applied\n */\nfunction addHandle( attrs, handler ) {\n\tvar arr = attrs.split(\"|\"),\n\t\ti = arr.length;\n\n\twhile ( i-- ) {\n\t\tExpr.attrHandle[ arr[i] ] = handler;\n\t}\n}\n\n/**\n * Checks document order of two siblings\n * @param {Element} a\n * @param {Element} b\n * @returns {Number} Returns less than 0 if a precedes b, greater than 0 if a follows b\n */\nfunction siblingCheck( a, b ) {\n\tvar cur = b && a,\n\t\tdiff = cur && a.nodeType === 1 && b.nodeType === 1 &&\n\t\t\ta.sourceIndex - b.sourceIndex;\n\n\t// Use IE sourceIndex if available on both nodes\n\tif ( diff ) {\n\t\treturn diff;\n\t}\n\n\t// Check if b follows a\n\tif ( cur ) {\n\t\twhile ( (cur = cur.nextSibling) ) {\n\t\t\tif ( cur === b ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t}\n\n\treturn a ? 1 : -1;\n}\n\n/**\n * Returns a function to use in pseudos for input types\n * @param {String} type\n */\nfunction createInputPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn name === \"input\" && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for buttons\n * @param {String} type\n */\nfunction createButtonPseudo( type ) {\n\treturn function( elem ) {\n\t\tvar name = elem.nodeName.toLowerCase();\n\t\treturn (name === \"input\" || name === \"button\") && elem.type === type;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for :enabled/:disabled\n * @param {Boolean} disabled true for :disabled; false for :enabled\n */\nfunction createDisabledPseudo( disabled ) {\n\n\t// Known :disabled false positives: fieldset[disabled] > legend:nth-of-type(n+2) :can-disable\n\treturn function( elem ) {\n\n\t\t// Only certain elements can match :enabled or :disabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-enabled\n\t\t// https://html.spec.whatwg.org/multipage/scripting.html#selector-disabled\n\t\tif ( \"form\" in elem ) {\n\n\t\t\t// Check for inherited disabledness on relevant non-disabled elements:\n\t\t\t// * listed form-associated elements in a disabled fieldset\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#category-listed\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-fe-disabled\n\t\t\t// * option elements in a disabled optgroup\n\t\t\t// https://html.spec.whatwg.org/multipage/forms.html#concept-option-disabled\n\t\t\t// All such elements have a \"form\" property.\n\t\t\tif ( elem.parentNode && elem.disabled === false ) {\n\n\t\t\t\t// Option elements defer to a parent optgroup if present\n\t\t\t\tif ( \"label\" in elem ) {\n\t\t\t\t\tif ( \"label\" in elem.parentNode ) {\n\t\t\t\t\t\treturn elem.parentNode.disabled === disabled;\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn elem.disabled === disabled;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Support: IE 6 - 11\n\t\t\t\t// Use the isDisabled shortcut property to check for disabled fieldset ancestors\n\t\t\t\treturn elem.isDisabled === disabled ||\n\n\t\t\t\t\t// Where there is no isDisabled, check manually\n\t\t\t\t\t/* jshint -W018 */\n\t\t\t\t\telem.isDisabled !== !disabled &&\n\t\t\t\t\t\tdisabledAncestor( elem ) === disabled;\n\t\t\t}\n\n\t\t\treturn elem.disabled === disabled;\n\n\t\t// Try to winnow out elements that can't be disabled before trusting the disabled property.\n\t\t// Some victims get caught in our net (label, legend, menu, track), but it shouldn't\n\t\t// even exist on them, let alone have a boolean value.\n\t\t} else if ( \"label\" in elem ) {\n\t\t\treturn elem.disabled === disabled;\n\t\t}\n\n\t\t// Remaining elements are neither :enabled nor :disabled\n\t\treturn false;\n\t};\n}\n\n/**\n * Returns a function to use in pseudos for positionals\n * @param {Function} fn\n */\nfunction createPositionalPseudo( fn ) {\n\treturn markFunction(function( argument ) {\n\t\targument = +argument;\n\t\treturn markFunction(function( seed, matches ) {\n\t\t\tvar j,\n\t\t\t\tmatchIndexes = fn( [], seed.length, argument ),\n\t\t\t\ti = matchIndexes.length;\n\n\t\t\t// Match elements found at the specified indexes\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( seed[ (j = matchIndexes[i]) ] ) {\n\t\t\t\t\tseed[j] = !(matches[j] = seed[j]);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n}\n\n/**\n * Checks a node for validity as a Sizzle context\n * @param {Element|Object=} context\n * @returns {Element|Object|Boolean} The input node if acceptable, otherwise a falsy value\n */\nfunction testContext( context ) {\n\treturn context && typeof context.getElementsByTagName !== \"undefined\" && context;\n}\n\n// Expose support vars for convenience\nsupport = Sizzle.support = {};\n\n/**\n * Detects XML nodes\n * @param {Element|Object} elem An element or a document\n * @returns {Boolean} True iff elem is a non-HTML XML node\n */\nisXML = Sizzle.isXML = function( elem ) {\n\t// documentElement is verified for cases where it doesn't yet exist\n\t// (such as loading iframes in IE - #4833)\n\tvar documentElement = elem && (elem.ownerDocument || elem).documentElement;\n\treturn documentElement ? documentElement.nodeName !== \"HTML\" : false;\n};\n\n/**\n * Sets document-related variables once based on the current document\n * @param {Element|Object} [doc] An element or document object to use to set the document\n * @returns {Object} Returns the current document\n */\nsetDocument = Sizzle.setDocument = function( node ) {\n\tvar hasCompare, subWindow,\n\t\tdoc = node ? node.ownerDocument || node : preferredDoc;\n\n\t// Return early if doc is invalid or already selected\n\tif ( doc === document || doc.nodeType !== 9 || !doc.documentElement ) {\n\t\treturn document;\n\t}\n\n\t// Update global variables\n\tdocument = doc;\n\tdocElem = document.documentElement;\n\tdocumentIsHTML = !isXML( document );\n\n\t// Support: IE 9-11, Edge\n\t// Accessing iframe documents after unload throws \"permission denied\" errors (jQuery #13936)\n\tif ( preferredDoc !== document &&\n\t\t(subWindow = document.defaultView) && subWindow.top !== subWindow ) {\n\n\t\t// Support: IE 11, Edge\n\t\tif ( subWindow.addEventListener ) {\n\t\t\tsubWindow.addEventListener( \"unload\", unloadHandler, false );\n\n\t\t// Support: IE 9 - 10 only\n\t\t} else if ( subWindow.attachEvent ) {\n\t\t\tsubWindow.attachEvent( \"onunload\", unloadHandler );\n\t\t}\n\t}\n\n\t/* Attributes\n\t---------------------------------------------------------------------- */\n\n\t// Support: IE<8\n\t// Verify that getAttribute really returns attributes and not properties\n\t// (excepting IE8 booleans)\n\tsupport.attributes = assert(function( el ) {\n\t\tel.className = \"i\";\n\t\treturn !el.getAttribute(\"className\");\n\t});\n\n\t/* getElement(s)By*\n\t---------------------------------------------------------------------- */\n\n\t// Check if getElementsByTagName(\"*\") returns only elements\n\tsupport.getElementsByTagName = assert(function( el ) {\n\t\tel.appendChild( document.createComment(\"\") );\n\t\treturn !el.getElementsByTagName(\"*\").length;\n\t});\n\n\t// Support: IE<9\n\tsupport.getElementsByClassName = rnative.test( document.getElementsByClassName );\n\n\t// Support: IE<10\n\t// Check if getElementById returns elements by name\n\t// The broken getElementById methods don't pick up programmatically-set names,\n\t// so use a roundabout getElementsByName test\n\tsupport.getById = assert(function( el ) {\n\t\tdocElem.appendChild( el ).id = expando;\n\t\treturn !document.getElementsByName || !document.getElementsByName( expando ).length;\n\t});\n\n\t// ID filter and find\n\tif ( support.getById ) {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn elem.getAttribute(\"id\") === attrId;\n\t\t\t};\n\t\t};\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar elem = context.getElementById( id );\n\t\t\t\treturn elem ? [ elem ] : [];\n\t\t\t}\n\t\t};\n\t} else {\n\t\tExpr.filter[\"ID\"] = function( id ) {\n\t\t\tvar attrId = id.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\tvar node = typeof elem.getAttributeNode !== \"undefined\" &&\n\t\t\t\t\telem.getAttributeNode(\"id\");\n\t\t\t\treturn node && node.value === attrId;\n\t\t\t};\n\t\t};\n\n\t\t// Support: IE 6 - 7 only\n\t\t// getElementById is not reliable as a find shortcut\n\t\tExpr.find[\"ID\"] = function( id, context ) {\n\t\t\tif ( typeof context.getElementById !== \"undefined\" && documentIsHTML ) {\n\t\t\t\tvar node, i, elems,\n\t\t\t\t\telem = context.getElementById( id );\n\n\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t// Verify the id attribute\n\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t}\n\n\t\t\t\t\t// Fall back on getElementsByName\n\t\t\t\t\telems = context.getElementsByName( id );\n\t\t\t\t\ti = 0;\n\t\t\t\t\twhile ( (elem = elems[i++]) ) {\n\t\t\t\t\t\tnode = elem.getAttributeNode(\"id\");\n\t\t\t\t\t\tif ( node && node.value === id ) {\n\t\t\t\t\t\t\treturn [ elem ];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn [];\n\t\t\t}\n\t\t};\n\t}\n\n\t// Tag\n\tExpr.find[\"TAG\"] = support.getElementsByTagName ?\n\t\tfunction( tag, context ) {\n\t\t\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\t\t\treturn context.getElementsByTagName( tag );\n\n\t\t\t// DocumentFragment nodes don't have gEBTN\n\t\t\t} else if ( support.qsa ) {\n\t\t\t\treturn context.querySelectorAll( tag );\n\t\t\t}\n\t\t} :\n\n\t\tfunction( tag, context ) {\n\t\t\tvar elem,\n\t\t\t\ttmp = [],\n\t\t\t\ti = 0,\n\t\t\t\t// By happy coincidence, a (broken) gEBTN appears on DocumentFragment nodes too\n\t\t\t\tresults = context.getElementsByTagName( tag );\n\n\t\t\t// Filter out possible comments\n\t\t\tif ( tag === \"*\" ) {\n\t\t\t\twhile ( (elem = results[i++]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\ttmp.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn tmp;\n\t\t\t}\n\t\t\treturn results;\n\t\t};\n\n\t// Class\n\tExpr.find[\"CLASS\"] = support.getElementsByClassName && function( className, context ) {\n\t\tif ( typeof context.getElementsByClassName !== \"undefined\" && documentIsHTML ) {\n\t\t\treturn context.getElementsByClassName( className );\n\t\t}\n\t};\n\n\t/* QSA/matchesSelector\n\t---------------------------------------------------------------------- */\n\n\t// QSA and matchesSelector support\n\n\t// matchesSelector(:active) reports false when true (IE9/Opera 11.5)\n\trbuggyMatches = [];\n\n\t// qSa(:focus) reports false when true (Chrome 21)\n\t// We allow this because of a bug in IE8/9 that throws an error\n\t// whenever `document.activeElement` is accessed on an iframe\n\t// So, we allow :focus to pass through QSA all the time to avoid the IE error\n\t// See https://bugs.jquery.com/ticket/13378\n\trbuggyQSA = [];\n\n\tif ( (support.qsa = rnative.test( document.querySelectorAll )) ) {\n\t\t// Build QSA regex\n\t\t// Regex strategy adopted from Diego Perini\n\t\tassert(function( el ) {\n\t\t\t// Select is set to empty string on purpose\n\t\t\t// This is to test IE's treatment of not explicitly\n\t\t\t// setting a boolean content attribute,\n\t\t\t// since its presence should be enough\n\t\t\t// https://bugs.jquery.com/ticket/12359\n\t\t\tdocElem.appendChild( el ).innerHTML = \"<a id='\" + expando + \"'></a>\" +\n\t\t\t\t\"<select id='\" + expando + \"-\\r\\\\' msallowcapture=''>\" +\n\t\t\t\t\"<option selected=''></option></select>\";\n\n\t\t\t// Support: IE8, Opera 11-12.16\n\t\t\t// Nothing should be selected when empty strings follow ^= or $= or *=\n\t\t\t// The test attribute must be unknown in Opera but \"safe\" for WinRT\n\t\t\t// https://msdn.microsoft.com/en-us/library/ie/hh465388.aspx#attribute_section\n\t\t\tif ( el.querySelectorAll(\"[msallowcapture^='']\").length ) {\n\t\t\t\trbuggyQSA.push( \"[*^$]=\" + whitespace + \"*(?:''|\\\"\\\")\" );\n\t\t\t}\n\n\t\t\t// Support: IE8\n\t\t\t// Boolean attributes and \"value\" are not treated correctly\n\t\t\tif ( !el.querySelectorAll(\"[selected]\").length ) {\n\t\t\t\trbuggyQSA.push( \"\\\\[\" + whitespace + \"*(?:value|\" + booleans + \")\" );\n\t\t\t}\n\n\t\t\t// Support: Chrome<29, Android<4.4, Safari<7.0+, iOS<7.0+, PhantomJS<1.9.8+\n\t\t\tif ( !el.querySelectorAll( \"[id~=\" + expando + \"-]\" ).length ) {\n\t\t\t\trbuggyQSA.push(\"~=\");\n\t\t\t}\n\n\t\t\t// Webkit/Opera - :checked should return selected option elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( !el.querySelectorAll(\":checked\").length ) {\n\t\t\t\trbuggyQSA.push(\":checked\");\n\t\t\t}\n\n\t\t\t// Support: Safari 8+, iOS 8+\n\t\t\t// https://bugs.webkit.org/show_bug.cgi?id=136851\n\t\t\t// In-page `selector#id sibling-combinator selector` fails\n\t\t\tif ( !el.querySelectorAll( \"a#\" + expando + \"+*\" ).length ) {\n\t\t\t\trbuggyQSA.push(\".#.+[+~]\");\n\t\t\t}\n\t\t});\n\n\t\tassert(function( el ) {\n\t\t\tel.innerHTML = \"<a href='' disabled='disabled'></a>\" +\n\t\t\t\t\"<select disabled='disabled'><option/></select>\";\n\n\t\t\t// Support: Windows 8 Native Apps\n\t\t\t// The type and name attributes are restricted during .innerHTML assignment\n\t\t\tvar input = document.createElement(\"input\");\n\t\t\tinput.setAttribute( \"type\", \"hidden\" );\n\t\t\tel.appendChild( input ).setAttribute( \"name\", \"D\" );\n\n\t\t\t// Support: IE8\n\t\t\t// Enforce case-sensitivity of name attribute\n\t\t\tif ( el.querySelectorAll(\"[name=d]\").length ) {\n\t\t\t\trbuggyQSA.push( \"name\" + whitespace + \"*[*^$|!~]?=\" );\n\t\t\t}\n\n\t\t\t// FF 3.5 - :enabled/:disabled and hidden elements (hidden elements are still enabled)\n\t\t\t// IE8 throws error here and will not see later tests\n\t\t\tif ( el.querySelectorAll(\":enabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Support: IE9-11+\n\t\t\t// IE's :disabled selector does not pick up the children of disabled fieldsets\n\t\t\tdocElem.appendChild( el ).disabled = true;\n\t\t\tif ( el.querySelectorAll(\":disabled\").length !== 2 ) {\n\t\t\t\trbuggyQSA.push( \":enabled\", \":disabled\" );\n\t\t\t}\n\n\t\t\t// Opera 10-11 does not throw on post-comma invalid pseudos\n\t\t\tel.querySelectorAll(\"*,:x\");\n\t\t\trbuggyQSA.push(\",.*:\");\n\t\t});\n\t}\n\n\tif ( (support.matchesSelector = rnative.test( (matches = docElem.matches ||\n\t\tdocElem.webkitMatchesSelector ||\n\t\tdocElem.mozMatchesSelector ||\n\t\tdocElem.oMatchesSelector ||\n\t\tdocElem.msMatchesSelector) )) ) {\n\n\t\tassert(function( el ) {\n\t\t\t// Check to see if it's possible to do matchesSelector\n\t\t\t// on a disconnected node (IE 9)\n\t\t\tsupport.disconnectedMatch = matches.call( el, \"*\" );\n\n\t\t\t// This should fail with an exception\n\t\t\t// Gecko does not error, returns false instead\n\t\t\tmatches.call( el, \"[s!='']:x\" );\n\t\t\trbuggyMatches.push( \"!=\", pseudos );\n\t\t});\n\t}\n\n\trbuggyQSA = rbuggyQSA.length && new RegExp( rbuggyQSA.join(\"|\") );\n\trbuggyMatches = rbuggyMatches.length && new RegExp( rbuggyMatches.join(\"|\") );\n\n\t/* Contains\n\t---------------------------------------------------------------------- */\n\thasCompare = rnative.test( docElem.compareDocumentPosition );\n\n\t// Element contains another\n\t// Purposefully self-exclusive\n\t// As in, an element does not contain itself\n\tcontains = hasCompare || rnative.test( docElem.contains ) ?\n\t\tfunction( a, b ) {\n\t\t\tvar adown = a.nodeType === 9 ? a.documentElement : a,\n\t\t\t\tbup = b && b.parentNode;\n\t\t\treturn a === bup || !!( bup && bup.nodeType === 1 && (\n\t\t\t\tadown.contains ?\n\t\t\t\t\tadown.contains( bup ) :\n\t\t\t\t\ta.compareDocumentPosition && a.compareDocumentPosition( bup ) & 16\n\t\t\t));\n\t\t} :\n\t\tfunction( a, b ) {\n\t\t\tif ( b ) {\n\t\t\t\twhile ( (b = b.parentNode) ) {\n\t\t\t\t\tif ( b === a ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\n\t/* Sorting\n\t---------------------------------------------------------------------- */\n\n\t// Document order sorting\n\tsortOrder = hasCompare ?\n\tfunction( a, b ) {\n\n\t\t// Flag for duplicate removal\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\t// Sort on method existence if only one input has compareDocumentPosition\n\t\tvar compare = !a.compareDocumentPosition - !b.compareDocumentPosition;\n\t\tif ( compare ) {\n\t\t\treturn compare;\n\t\t}\n\n\t\t// Calculate position if both inputs belong to the same document\n\t\tcompare = ( a.ownerDocument || a ) === ( b.ownerDocument || b ) ?\n\t\t\ta.compareDocumentPosition( b ) :\n\n\t\t\t// Otherwise we know they are disconnected\n\t\t\t1;\n\n\t\t// Disconnected nodes\n\t\tif ( compare & 1 ||\n\t\t\t(!support.sortDetached && b.compareDocumentPosition( a ) === compare) ) {\n\n\t\t\t// Choose the first element that is related to our preferred document\n\t\t\tif ( a === document || a.ownerDocument === preferredDoc && contains(preferredDoc, a) ) {\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t\tif ( b === document || b.ownerDocument === preferredDoc && contains(preferredDoc, b) ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\t// Maintain original order\n\t\t\treturn sortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\t\t}\n\n\t\treturn compare & 4 ? -1 : 1;\n\t} :\n\tfunction( a, b ) {\n\t\t// Exit early if the nodes are identical\n\t\tif ( a === b ) {\n\t\t\thasDuplicate = true;\n\t\t\treturn 0;\n\t\t}\n\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\taup = a.parentNode,\n\t\t\tbup = b.parentNode,\n\t\t\tap = [ a ],\n\t\t\tbp = [ b ];\n\n\t\t// Parentless nodes are either documents or disconnected\n\t\tif ( !aup || !bup ) {\n\t\t\treturn a === document ? -1 :\n\t\t\t\tb === document ? 1 :\n\t\t\t\taup ? -1 :\n\t\t\t\tbup ? 1 :\n\t\t\t\tsortInput ?\n\t\t\t\t( indexOf( sortInput, a ) - indexOf( sortInput, b ) ) :\n\t\t\t\t0;\n\n\t\t// If the nodes are siblings, we can do a quick check\n\t\t} else if ( aup === bup ) {\n\t\t\treturn siblingCheck( a, b );\n\t\t}\n\n\t\t// Otherwise we need full lists of their ancestors for comparison\n\t\tcur = a;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tap.unshift( cur );\n\t\t}\n\t\tcur = b;\n\t\twhile ( (cur = cur.parentNode) ) {\n\t\t\tbp.unshift( cur );\n\t\t}\n\n\t\t// Walk down the tree looking for a discrepancy\n\t\twhile ( ap[i] === bp[i] ) {\n\t\t\ti++;\n\t\t}\n\n\t\treturn i ?\n\t\t\t// Do a sibling check if the nodes have a common ancestor\n\t\t\tsiblingCheck( ap[i], bp[i] ) :\n\n\t\t\t// Otherwise nodes in our document sort first\n\t\t\tap[i] === preferredDoc ? -1 :\n\t\t\tbp[i] === preferredDoc ? 1 :\n\t\t\t0;\n\t};\n\n\treturn document;\n};\n\nSizzle.matches = function( expr, elements ) {\n\treturn Sizzle( expr, null, null, elements );\n};\n\nSizzle.matchesSelector = function( elem, expr ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\t// Make sure that attribute selectors are quoted\n\texpr = expr.replace( rattributeQuotes, \"='$1']\" );\n\n\tif ( support.matchesSelector && documentIsHTML &&\n\t\t!compilerCache[ expr + \" \" ] &&\n\t\t( !rbuggyMatches || !rbuggyMatches.test( expr ) ) &&\n\t\t( !rbuggyQSA || !rbuggyQSA.test( expr ) ) ) {\n\n\t\ttry {\n\t\t\tvar ret = matches.call( elem, expr );\n\n\t\t\t// IE 9's matchesSelector returns false on disconnected nodes\n\t\t\tif ( ret || support.disconnectedMatch ||\n\t\t\t\t\t// As well, disconnected nodes are said to be in a document\n\t\t\t\t\t// fragment in IE 9\n\t\t\t\t\telem.document && elem.document.nodeType !== 11 ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\t\t} catch (e) {}\n\t}\n\n\treturn Sizzle( expr, document, null, [ elem ] ).length > 0;\n};\n\nSizzle.contains = function( context, elem ) {\n\t// Set document vars if needed\n\tif ( ( context.ownerDocument || context ) !== document ) {\n\t\tsetDocument( context );\n\t}\n\treturn contains( context, elem );\n};\n\nSizzle.attr = function( elem, name ) {\n\t// Set document vars if needed\n\tif ( ( elem.ownerDocument || elem ) !== document ) {\n\t\tsetDocument( elem );\n\t}\n\n\tvar fn = Expr.attrHandle[ name.toLowerCase() ],\n\t\t// Don't get fooled by Object.prototype properties (jQuery #13807)\n\t\tval = fn && hasOwn.call( Expr.attrHandle, name.toLowerCase() ) ?\n\t\t\tfn( elem, name, !documentIsHTML ) :\n\t\t\tundefined;\n\n\treturn val !== undefined ?\n\t\tval :\n\t\tsupport.attributes || !documentIsHTML ?\n\t\t\telem.getAttribute( name ) :\n\t\t\t(val = elem.getAttributeNode(name)) && val.specified ?\n\t\t\t\tval.value :\n\t\t\t\tnull;\n};\n\nSizzle.escape = function( sel ) {\n\treturn (sel + \"\").replace( rcssescape, fcssescape );\n};\n\nSizzle.error = function( msg ) {\n\tthrow new Error( \"Syntax error, unrecognized expression: \" + msg );\n};\n\n/**\n * Document sorting and removing duplicates\n * @param {ArrayLike} results\n */\nSizzle.uniqueSort = function( results ) {\n\tvar elem,\n\t\tduplicates = [],\n\t\tj = 0,\n\t\ti = 0;\n\n\t// Unless we *know* we can detect duplicates, assume their presence\n\thasDuplicate = !support.detectDuplicates;\n\tsortInput = !support.sortStable && results.slice( 0 );\n\tresults.sort( sortOrder );\n\n\tif ( hasDuplicate ) {\n\t\twhile ( (elem = results[i++]) ) {\n\t\t\tif ( elem === results[ i ] ) {\n\t\t\t\tj = duplicates.push( i );\n\t\t\t}\n\t\t}\n\t\twhile ( j-- ) {\n\t\t\tresults.splice( duplicates[ j ], 1 );\n\t\t}\n\t}\n\n\t// Clear input after sorting to release objects\n\t// See https://github.com/jquery/sizzle/pull/225\n\tsortInput = null;\n\n\treturn results;\n};\n\n/**\n * Utility function for retrieving the text value of an array of DOM nodes\n * @param {Array|Element} elem\n */\ngetText = Sizzle.getText = function( elem ) {\n\tvar node,\n\t\tret = \"\",\n\t\ti = 0,\n\t\tnodeType = elem.nodeType;\n\n\tif ( !nodeType ) {\n\t\t// If no nodeType, this is expected to be an array\n\t\twhile ( (node = elem[i++]) ) {\n\t\t\t// Do not traverse comment nodes\n\t\t\tret += getText( node );\n\t\t}\n\t} else if ( nodeType === 1 || nodeType === 9 || nodeType === 11 ) {\n\t\t// Use textContent for elements\n\t\t// innerText usage removed for consistency of new lines (jQuery #11153)\n\t\tif ( typeof elem.textContent === \"string\" ) {\n\t\t\treturn elem.textContent;\n\t\t} else {\n\t\t\t// Traverse its children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tret += getText( elem );\n\t\t\t}\n\t\t}\n\t} else if ( nodeType === 3 || nodeType === 4 ) {\n\t\treturn elem.nodeValue;\n\t}\n\t// Do not include comment or processing instruction nodes\n\n\treturn ret;\n};\n\nExpr = Sizzle.selectors = {\n\n\t// Can be adjusted by the user\n\tcacheLength: 50,\n\n\tcreatePseudo: markFunction,\n\n\tmatch: matchExpr,\n\n\tattrHandle: {},\n\n\tfind: {},\n\n\trelative: {\n\t\t\">\": { dir: \"parentNode\", first: true },\n\t\t\" \": { dir: \"parentNode\" },\n\t\t\"+\": { dir: \"previousSibling\", first: true },\n\t\t\"~\": { dir: \"previousSibling\" }\n\t},\n\n\tpreFilter: {\n\t\t\"ATTR\": function( match ) {\n\t\t\tmatch[1] = match[1].replace( runescape, funescape );\n\n\t\t\t// Move the given value to match[3] whether quoted or unquoted\n\t\t\tmatch[3] = ( match[3] || match[4] || match[5] || \"\" ).replace( runescape, funescape );\n\n\t\t\tif ( match[2] === \"~=\" ) {\n\t\t\t\tmatch[3] = \" \" + match[3] + \" \";\n\t\t\t}\n\n\t\t\treturn match.slice( 0, 4 );\n\t\t},\n\n\t\t\"CHILD\": function( match ) {\n\t\t\t/* matches from matchExpr[\"CHILD\"]\n\t\t\t\t1 type (only|nth|...)\n\t\t\t\t2 what (child|of-type)\n\t\t\t\t3 argument (even|odd|\\d*|\\d*n([+-]\\d+)?|...)\n\t\t\t\t4 xn-component of xn+y argument ([+-]?\\d*n|)\n\t\t\t\t5 sign of xn-component\n\t\t\t\t6 x of xn-component\n\t\t\t\t7 sign of y-component\n\t\t\t\t8 y of y-component\n\t\t\t*/\n\t\t\tmatch[1] = match[1].toLowerCase();\n\n\t\t\tif ( match[1].slice( 0, 3 ) === \"nth\" ) {\n\t\t\t\t// nth-* requires argument\n\t\t\t\tif ( !match[3] ) {\n\t\t\t\t\tSizzle.error( match[0] );\n\t\t\t\t}\n\n\t\t\t\t// numeric x and y parameters for Expr.filter.CHILD\n\t\t\t\t// remember that false/true cast respectively to 0/1\n\t\t\t\tmatch[4] = +( match[4] ? match[5] + (match[6] || 1) : 2 * ( match[3] === \"even\" || match[3] === \"odd\" ) );\n\t\t\t\tmatch[5] = +( ( match[7] + match[8] ) || match[3] === \"odd\" );\n\n\t\t\t// other types prohibit arguments\n\t\t\t} else if ( match[3] ) {\n\t\t\t\tSizzle.error( match[0] );\n\t\t\t}\n\n\t\t\treturn match;\n\t\t},\n\n\t\t\"PSEUDO\": function( match ) {\n\t\t\tvar excess,\n\t\t\t\tunquoted = !match[6] && match[2];\n\n\t\t\tif ( matchExpr[\"CHILD\"].test( match[0] ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\t// Accept quoted arguments as-is\n\t\t\tif ( match[3] ) {\n\t\t\t\tmatch[2] = match[4] || match[5] || \"\";\n\n\t\t\t// Strip excess characters from unquoted arguments\n\t\t\t} else if ( unquoted && rpseudo.test( unquoted ) &&\n\t\t\t\t// Get excess from tokenize (recursively)\n\t\t\t\t(excess = tokenize( unquoted, true )) &&\n\t\t\t\t// advance to the next closing parenthesis\n\t\t\t\t(excess = unquoted.indexOf( \")\", unquoted.length - excess ) - unquoted.length) ) {\n\n\t\t\t\t// excess is a negative index\n\t\t\t\tmatch[0] = match[0].slice( 0, excess );\n\t\t\t\tmatch[2] = unquoted.slice( 0, excess );\n\t\t\t}\n\n\t\t\t// Return only captures needed by the pseudo filter method (type and argument)\n\t\t\treturn match.slice( 0, 3 );\n\t\t}\n\t},\n\n\tfilter: {\n\n\t\t\"TAG\": function( nodeNameSelector ) {\n\t\t\tvar nodeName = nodeNameSelector.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn nodeNameSelector === \"*\" ?\n\t\t\t\tfunction() { return true; } :\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn elem.nodeName && elem.nodeName.toLowerCase() === nodeName;\n\t\t\t\t};\n\t\t},\n\n\t\t\"CLASS\": function( className ) {\n\t\t\tvar pattern = classCache[ className + \" \" ];\n\n\t\t\treturn pattern ||\n\t\t\t\t(pattern = new RegExp( \"(^|\" + whitespace + \")\" + className + \"(\" + whitespace + \"|$)\" )) &&\n\t\t\t\tclassCache( className, function( elem ) {\n\t\t\t\t\treturn pattern.test( typeof elem.className === \"string\" && elem.className || typeof elem.getAttribute !== \"undefined\" && elem.getAttribute(\"class\") || \"\" );\n\t\t\t\t});\n\t\t},\n\n\t\t\"ATTR\": function( name, operator, check ) {\n\t\t\treturn function( elem ) {\n\t\t\t\tvar result = Sizzle.attr( elem, name );\n\n\t\t\t\tif ( result == null ) {\n\t\t\t\t\treturn operator === \"!=\";\n\t\t\t\t}\n\t\t\t\tif ( !operator ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tresult += \"\";\n\n\t\t\t\treturn operator === \"=\" ? result === check :\n\t\t\t\t\toperator === \"!=\" ? result !== check :\n\t\t\t\t\toperator === \"^=\" ? check && result.indexOf( check ) === 0 :\n\t\t\t\t\toperator === \"*=\" ? check && result.indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"$=\" ? check && result.slice( -check.length ) === check :\n\t\t\t\t\toperator === \"~=\" ? ( \" \" + result.replace( rwhitespace, \" \" ) + \" \" ).indexOf( check ) > -1 :\n\t\t\t\t\toperator === \"|=\" ? result === check || result.slice( 0, check.length + 1 ) === check + \"-\" :\n\t\t\t\t\tfalse;\n\t\t\t};\n\t\t},\n\n\t\t\"CHILD\": function( type, what, argument, first, last ) {\n\t\t\tvar simple = type.slice( 0, 3 ) !== \"nth\",\n\t\t\t\tforward = type.slice( -4 ) !== \"last\",\n\t\t\t\tofType = what === \"of-type\";\n\n\t\t\treturn first === 1 && last === 0 ?\n\n\t\t\t\t// Shortcut for :nth-*(n)\n\t\t\t\tfunction( elem ) {\n\t\t\t\t\treturn !!elem.parentNode;\n\t\t\t\t} :\n\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tvar cache, uniqueCache, outerCache, node, nodeIndex, start,\n\t\t\t\t\t\tdir = simple !== forward ? \"nextSibling\" : \"previousSibling\",\n\t\t\t\t\t\tparent = elem.parentNode,\n\t\t\t\t\t\tname = ofType && elem.nodeName.toLowerCase(),\n\t\t\t\t\t\tuseCache = !xml && !ofType,\n\t\t\t\t\t\tdiff = false;\n\n\t\t\t\t\tif ( parent ) {\n\n\t\t\t\t\t\t// :(first|last|only)-(child|of-type)\n\t\t\t\t\t\tif ( simple ) {\n\t\t\t\t\t\t\twhile ( dir ) {\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\twhile ( (node = node[ dir ]) ) {\n\t\t\t\t\t\t\t\t\tif ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) {\n\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t// Reverse direction for :only-* (if we haven't yet done so)\n\t\t\t\t\t\t\t\tstart = dir = type === \"only\" && !start && \"nextSibling\";\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstart = [ forward ? parent.firstChild : parent.lastChild ];\n\n\t\t\t\t\t\t// non-xml :nth-child(...) stores cache data on `parent`\n\t\t\t\t\t\tif ( forward && useCache ) {\n\n\t\t\t\t\t\t\t// Seek `elem` from a previously-cached index\n\n\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\tnode = parent;\n\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\tdiff = nodeIndex && cache[ 2 ];\n\t\t\t\t\t\t\tnode = nodeIndex && parent.childNodes[ nodeIndex ];\n\n\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\n\t\t\t\t\t\t\t\t// Fallback to seeking `elem` from the start\n\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t// When found, cache indexes on `parent` and break\n\t\t\t\t\t\t\t\tif ( node.nodeType === 1 && ++diff && node === elem ) {\n\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, nodeIndex, diff ];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Use previously-cached element index if available\n\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t// ...in a gzip-friendly way\n\t\t\t\t\t\t\t\tnode = elem;\n\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\tcache = uniqueCache[ type ] || [];\n\t\t\t\t\t\t\t\tnodeIndex = cache[ 0 ] === dirruns && cache[ 1 ];\n\t\t\t\t\t\t\t\tdiff = nodeIndex;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// xml :nth-child(...)\n\t\t\t\t\t\t\t// or :nth-last-child(...) or :nth(-last)?-of-type(...)\n\t\t\t\t\t\t\tif ( diff === false ) {\n\t\t\t\t\t\t\t\t// Use the same loop as above to seek `elem` from the start\n\t\t\t\t\t\t\t\twhile ( (node = ++nodeIndex && node && node[ dir ] ||\n\t\t\t\t\t\t\t\t\t(diff = nodeIndex = 0) || start.pop()) ) {\n\n\t\t\t\t\t\t\t\t\tif ( ( ofType ?\n\t\t\t\t\t\t\t\t\t\tnode.nodeName.toLowerCase() === name :\n\t\t\t\t\t\t\t\t\t\tnode.nodeType === 1 ) &&\n\t\t\t\t\t\t\t\t\t\t++diff ) {\n\n\t\t\t\t\t\t\t\t\t\t// Cache the index of each encountered element\n\t\t\t\t\t\t\t\t\t\tif ( useCache ) {\n\t\t\t\t\t\t\t\t\t\t\touterCache = node[ expando ] || (node[ expando ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache = outerCache[ node.uniqueID ] ||\n\t\t\t\t\t\t\t\t\t\t\t\t(outerCache[ node.uniqueID ] = {});\n\n\t\t\t\t\t\t\t\t\t\t\tuniqueCache[ type ] = [ dirruns, diff ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif ( node === elem ) {\n\t\t\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Incorporate the offset, then check against cycle size\n\t\t\t\t\t\tdiff -= last;\n\t\t\t\t\t\treturn diff === first || ( diff % first === 0 && diff / first >= 0 );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t},\n\n\t\t\"PSEUDO\": function( pseudo, argument ) {\n\t\t\t// pseudo-class names are case-insensitive\n\t\t\t// http://www.w3.org/TR/selectors/#pseudo-classes\n\t\t\t// Prioritize by case sensitivity in case custom pseudos are added with uppercase letters\n\t\t\t// Remember that setFilters inherits from pseudos\n\t\t\tvar args,\n\t\t\t\tfn = Expr.pseudos[ pseudo ] || Expr.setFilters[ pseudo.toLowerCase() ] ||\n\t\t\t\t\tSizzle.error( \"unsupported pseudo: \" + pseudo );\n\n\t\t\t// The user may use createPseudo to indicate that\n\t\t\t// arguments are needed to create the filter function\n\t\t\t// just as Sizzle does\n\t\t\tif ( fn[ expando ] ) {\n\t\t\t\treturn fn( argument );\n\t\t\t}\n\n\t\t\t// But maintain support for old signatures\n\t\t\tif ( fn.length > 1 ) {\n\t\t\t\targs = [ pseudo, pseudo, \"\", argument ];\n\t\t\t\treturn Expr.setFilters.hasOwnProperty( pseudo.toLowerCase() ) ?\n\t\t\t\t\tmarkFunction(function( seed, matches ) {\n\t\t\t\t\t\tvar idx,\n\t\t\t\t\t\t\tmatched = fn( seed, argument ),\n\t\t\t\t\t\t\ti = matched.length;\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tidx = indexOf( seed, matched[i] );\n\t\t\t\t\t\t\tseed[ idx ] = !( matches[ idx ] = matched[i] );\n\t\t\t\t\t\t}\n\t\t\t\t\t}) :\n\t\t\t\t\tfunction( elem ) {\n\t\t\t\t\t\treturn fn( elem, 0, args );\n\t\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn fn;\n\t\t}\n\t},\n\n\tpseudos: {\n\t\t// Potentially complex pseudos\n\t\t\"not\": markFunction(function( selector ) {\n\t\t\t// Trim the selector passed to compile\n\t\t\t// to avoid treating leading and trailing\n\t\t\t// spaces as combinators\n\t\t\tvar input = [],\n\t\t\t\tresults = [],\n\t\t\t\tmatcher = compile( selector.replace( rtrim, \"$1\" ) );\n\n\t\t\treturn matcher[ expando ] ?\n\t\t\t\tmarkFunction(function( seed, matches, context, xml ) {\n\t\t\t\t\tvar elem,\n\t\t\t\t\t\tunmatched = matcher( seed, null, xml, [] ),\n\t\t\t\t\t\ti = seed.length;\n\n\t\t\t\t\t// Match elements unmatched by `matcher`\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = unmatched[i]) ) {\n\t\t\t\t\t\t\tseed[i] = !(matches[i] = elem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}) :\n\t\t\t\tfunction( elem, context, xml ) {\n\t\t\t\t\tinput[0] = elem;\n\t\t\t\t\tmatcher( input, null, xml, results );\n\t\t\t\t\t// Don't keep the element (issue #299)\n\t\t\t\t\tinput[0] = null;\n\t\t\t\t\treturn !results.pop();\n\t\t\t\t};\n\t\t}),\n\n\t\t\"has\": markFunction(function( selector ) {\n\t\t\treturn function( elem ) {\n\t\t\t\treturn Sizzle( selector, elem ).length > 0;\n\t\t\t};\n\t\t}),\n\n\t\t\"contains\": markFunction(function( text ) {\n\t\t\ttext = text.replace( runescape, funescape );\n\t\t\treturn function( elem ) {\n\t\t\t\treturn ( elem.textContent || elem.innerText || getText( elem ) ).indexOf( text ) > -1;\n\t\t\t};\n\t\t}),\n\n\t\t// \"Whether an element is represented by a :lang() selector\n\t\t// is based solely on the element's language value\n\t\t// being equal to the identifier C,\n\t\t// or beginning with the identifier C immediately followed by \"-\".\n\t\t// The matching of C against the element's language value is performed case-insensitively.\n\t\t// The identifier C does not have to be a valid language name.\"\n\t\t// http://www.w3.org/TR/selectors/#lang-pseudo\n\t\t\"lang\": markFunction( function( lang ) {\n\t\t\t// lang value must be a valid identifier\n\t\t\tif ( !ridentifier.test(lang || \"\") ) {\n\t\t\t\tSizzle.error( \"unsupported lang: \" + lang );\n\t\t\t}\n\t\t\tlang = lang.replace( runescape, funescape ).toLowerCase();\n\t\t\treturn function( elem ) {\n\t\t\t\tvar elemLang;\n\t\t\t\tdo {\n\t\t\t\t\tif ( (elemLang = documentIsHTML ?\n\t\t\t\t\t\telem.lang :\n\t\t\t\t\t\telem.getAttribute(\"xml:lang\") || elem.getAttribute(\"lang\")) ) {\n\n\t\t\t\t\t\telemLang = elemLang.toLowerCase();\n\t\t\t\t\t\treturn elemLang === lang || elemLang.indexOf( lang + \"-\" ) === 0;\n\t\t\t\t\t}\n\t\t\t\t} while ( (elem = elem.parentNode) && elem.nodeType === 1 );\n\t\t\t\treturn false;\n\t\t\t};\n\t\t}),\n\n\t\t// Miscellaneous\n\t\t\"target\": function( elem ) {\n\t\t\tvar hash = window.location && window.location.hash;\n\t\t\treturn hash && hash.slice( 1 ) === elem.id;\n\t\t},\n\n\t\t\"root\": function( elem ) {\n\t\t\treturn elem === docElem;\n\t\t},\n\n\t\t\"focus\": function( elem ) {\n\t\t\treturn elem === document.activeElement && (!document.hasFocus || document.hasFocus()) && !!(elem.type || elem.href || ~elem.tabIndex);\n\t\t},\n\n\t\t// Boolean properties\n\t\t\"enabled\": createDisabledPseudo( false ),\n\t\t\"disabled\": createDisabledPseudo( true ),\n\n\t\t\"checked\": function( elem ) {\n\t\t\t// In CSS3, :checked should return both checked and selected elements\n\t\t\t// http://www.w3.org/TR/2011/REC-css3-selectors-20110929/#checked\n\t\t\tvar nodeName = elem.nodeName.toLowerCase();\n\t\t\treturn (nodeName === \"input\" && !!elem.checked) || (nodeName === \"option\" && !!elem.selected);\n\t\t},\n\n\t\t\"selected\": function( elem ) {\n\t\t\t// Accessing this property makes selected-by-default\n\t\t\t// options in Safari work properly\n\t\t\tif ( elem.parentNode ) {\n\t\t\t\telem.parentNode.selectedIndex;\n\t\t\t}\n\n\t\t\treturn elem.selected === true;\n\t\t},\n\n\t\t// Contents\n\t\t\"empty\": function( elem ) {\n\t\t\t// http://www.w3.org/TR/selectors/#empty-pseudo\n\t\t\t// :empty is negated by element (1) or content nodes (text: 3; cdata: 4; entity ref: 5),\n\t\t\t// but not by others (comment: 8; processing instruction: 7; etc.)\n\t\t\t// nodeType < 6 works because attributes (2) do not appear as children\n\t\t\tfor ( elem = elem.firstChild; elem; elem = elem.nextSibling ) {\n\t\t\t\tif ( elem.nodeType < 6 ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t},\n\n\t\t\"parent\": function( elem ) {\n\t\t\treturn !Expr.pseudos[\"empty\"]( elem );\n\t\t},\n\n\t\t// Element/input types\n\t\t\"header\": function( elem ) {\n\t\t\treturn rheader.test( elem.nodeName );\n\t\t},\n\n\t\t\"input\": function( elem ) {\n\t\t\treturn rinputs.test( elem.nodeName );\n\t\t},\n\n\t\t\"button\": function( elem ) {\n\t\t\tvar name = elem.nodeName.toLowerCase();\n\t\t\treturn name === \"input\" && elem.type === \"button\" || name === \"button\";\n\t\t},\n\n\t\t\"text\": function( elem ) {\n\t\t\tvar attr;\n\t\t\treturn elem.nodeName.toLowerCase() === \"input\" &&\n\t\t\t\telem.type === \"text\" &&\n\n\t\t\t\t// Support: IE<8\n\t\t\t\t// New HTML5 attribute values (e.g., \"search\") appear with elem.type === \"text\"\n\t\t\t\t( (attr = elem.getAttribute(\"type\")) == null || attr.toLowerCase() === \"text\" );\n\t\t},\n\n\t\t// Position-in-collection\n\t\t\"first\": createPositionalPseudo(function() {\n\t\t\treturn [ 0 ];\n\t\t}),\n\n\t\t\"last\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\treturn [ length - 1 ];\n\t\t}),\n\n\t\t\"eq\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\treturn [ argument < 0 ? argument + length : argument ];\n\t\t}),\n\n\t\t\"even\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"odd\": createPositionalPseudo(function( matchIndexes, length ) {\n\t\t\tvar i = 1;\n\t\t\tfor ( ; i < length; i += 2 ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"lt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; --i >= 0; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t}),\n\n\t\t\"gt\": createPositionalPseudo(function( matchIndexes, length, argument ) {\n\t\t\tvar i = argument < 0 ? argument + length : argument;\n\t\t\tfor ( ; ++i < length; ) {\n\t\t\t\tmatchIndexes.push( i );\n\t\t\t}\n\t\t\treturn matchIndexes;\n\t\t})\n\t}\n};\n\nExpr.pseudos[\"nth\"] = Expr.pseudos[\"eq\"];\n\n// Add button/input type pseudos\nfor ( i in { radio: true, checkbox: true, file: true, password: true, image: true } ) {\n\tExpr.pseudos[ i ] = createInputPseudo( i );\n}\nfor ( i in { submit: true, reset: true } ) {\n\tExpr.pseudos[ i ] = createButtonPseudo( i );\n}\n\n// Easy API for creating new setFilters\nfunction setFilters() {}\nsetFilters.prototype = Expr.filters = Expr.pseudos;\nExpr.setFilters = new setFilters();\n\ntokenize = Sizzle.tokenize = function( selector, parseOnly ) {\n\tvar matched, match, tokens, type,\n\t\tsoFar, groups, preFilters,\n\t\tcached = tokenCache[ selector + \" \" ];\n\n\tif ( cached ) {\n\t\treturn parseOnly ? 0 : cached.slice( 0 );\n\t}\n\n\tsoFar = selector;\n\tgroups = [];\n\tpreFilters = Expr.preFilter;\n\n\twhile ( soFar ) {\n\n\t\t// Comma and first run\n\t\tif ( !matched || (match = rcomma.exec( soFar )) ) {\n\t\t\tif ( match ) {\n\t\t\t\t// Don't consume trailing commas as valid\n\t\t\t\tsoFar = soFar.slice( match[0].length ) || soFar;\n\t\t\t}\n\t\t\tgroups.push( (tokens = []) );\n\t\t}\n\n\t\tmatched = false;\n\n\t\t// Combinators\n\t\tif ( (match = rcombinators.exec( soFar )) ) {\n\t\t\tmatched = match.shift();\n\t\t\ttokens.push({\n\t\t\t\tvalue: matched,\n\t\t\t\t// Cast descendant combinators to space\n\t\t\t\ttype: match[0].replace( rtrim, \" \" )\n\t\t\t});\n\t\t\tsoFar = soFar.slice( matched.length );\n\t\t}\n\n\t\t// Filters\n\t\tfor ( type in Expr.filter ) {\n\t\t\tif ( (match = matchExpr[ type ].exec( soFar )) && (!preFilters[ type ] ||\n\t\t\t\t(match = preFilters[ type ]( match ))) ) {\n\t\t\t\tmatched = match.shift();\n\t\t\t\ttokens.push({\n\t\t\t\t\tvalue: matched,\n\t\t\t\t\ttype: type,\n\t\t\t\t\tmatches: match\n\t\t\t\t});\n\t\t\t\tsoFar = soFar.slice( matched.length );\n\t\t\t}\n\t\t}\n\n\t\tif ( !matched ) {\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Return the length of the invalid excess\n\t// if we're just parsing\n\t// Otherwise, throw an error or return tokens\n\treturn parseOnly ?\n\t\tsoFar.length :\n\t\tsoFar ?\n\t\t\tSizzle.error( selector ) :\n\t\t\t// Cache the tokens\n\t\t\ttokenCache( selector, groups ).slice( 0 );\n};\n\nfunction toSelector( tokens ) {\n\tvar i = 0,\n\t\tlen = tokens.length,\n\t\tselector = \"\";\n\tfor ( ; i < len; i++ ) {\n\t\tselector += tokens[i].value;\n\t}\n\treturn selector;\n}\n\nfunction addCombinator( matcher, combinator, base ) {\n\tvar dir = combinator.dir,\n\t\tskip = combinator.next,\n\t\tkey = skip || dir,\n\t\tcheckNonElements = base && key === \"parentNode\",\n\t\tdoneName = done++;\n\n\treturn combinator.first ?\n\t\t// Check against closest ancestor/preceding element\n\t\tfunction( elem, context, xml ) {\n\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\treturn matcher( elem, context, xml );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t} :\n\n\t\t// Check against all ancestor/preceding elements\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar oldCache, uniqueCache, outerCache,\n\t\t\t\tnewCache = [ dirruns, doneName ];\n\n\t\t\t// We can't set arbitrary data on XML nodes, so they don't benefit from combinator caching\n\t\t\tif ( xml ) {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\tif ( matcher( elem, context, xml ) ) {\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\twhile ( (elem = elem[ dir ]) ) {\n\t\t\t\t\tif ( elem.nodeType === 1 || checkNonElements ) {\n\t\t\t\t\t\touterCache = elem[ expando ] || (elem[ expando ] = {});\n\n\t\t\t\t\t\t// Support: IE <9 only\n\t\t\t\t\t\t// Defend against cloned attroperties (jQuery gh-1709)\n\t\t\t\t\t\tuniqueCache = outerCache[ elem.uniqueID ] || (outerCache[ elem.uniqueID ] = {});\n\n\t\t\t\t\t\tif ( skip && skip === elem.nodeName.toLowerCase() ) {\n\t\t\t\t\t\t\telem = elem[ dir ] || elem;\n\t\t\t\t\t\t} else if ( (oldCache = uniqueCache[ key ]) &&\n\t\t\t\t\t\t\toldCache[ 0 ] === dirruns && oldCache[ 1 ] === doneName ) {\n\n\t\t\t\t\t\t\t// Assign to newCache so results back-propagate to previous elements\n\t\t\t\t\t\t\treturn (newCache[ 2 ] = oldCache[ 2 ]);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// Reuse newcache so results back-propagate to previous elements\n\t\t\t\t\t\t\tuniqueCache[ key ] = newCache;\n\n\t\t\t\t\t\t\t// A match means we're done; a fail means we have to keep checking\n\t\t\t\t\t\t\tif ( (newCache[ 2 ] = matcher( elem, context, xml )) ) {\n\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n}\n\nfunction elementMatcher( matchers ) {\n\treturn matchers.length > 1 ?\n\t\tfunction( elem, context, xml ) {\n\t\t\tvar i = matchers.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( !matchers[i]( elem, context, xml ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn true;\n\t\t} :\n\t\tmatchers[0];\n}\n\nfunction multipleContexts( selector, contexts, results ) {\n\tvar i = 0,\n\t\tlen = contexts.length;\n\tfor ( ; i < len; i++ ) {\n\t\tSizzle( selector, contexts[i], results );\n\t}\n\treturn results;\n}\n\nfunction condense( unmatched, map, filter, context, xml ) {\n\tvar elem,\n\t\tnewUnmatched = [],\n\t\ti = 0,\n\t\tlen = unmatched.length,\n\t\tmapped = map != null;\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (elem = unmatched[i]) ) {\n\t\t\tif ( !filter || filter( elem, context, xml ) ) {\n\t\t\t\tnewUnmatched.push( elem );\n\t\t\t\tif ( mapped ) {\n\t\t\t\t\tmap.push( i );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn newUnmatched;\n}\n\nfunction setMatcher( preFilter, selector, matcher, postFilter, postFinder, postSelector ) {\n\tif ( postFilter && !postFilter[ expando ] ) {\n\t\tpostFilter = setMatcher( postFilter );\n\t}\n\tif ( postFinder && !postFinder[ expando ] ) {\n\t\tpostFinder = setMatcher( postFinder, postSelector );\n\t}\n\treturn markFunction(function( seed, results, context, xml ) {\n\t\tvar temp, i, elem,\n\t\t\tpreMap = [],\n\t\t\tpostMap = [],\n\t\t\tpreexisting = results.length,\n\n\t\t\t// Get initial elements from seed or context\n\t\t\telems = seed || multipleContexts( selector || \"*\", context.nodeType ? [ context ] : context, [] ),\n\n\t\t\t// Prefilter to get matcher input, preserving a map for seed-results synchronization\n\t\t\tmatcherIn = preFilter && ( seed || !selector ) ?\n\t\t\t\tcondense( elems, preMap, preFilter, context, xml ) :\n\t\t\t\telems,\n\n\t\t\tmatcherOut = matcher ?\n\t\t\t\t// If we have a postFinder, or filtered seed, or non-seed postFilter or preexisting results,\n\t\t\t\tpostFinder || ( seed ? preFilter : preexisting || postFilter ) ?\n\n\t\t\t\t\t// ...intermediate processing is necessary\n\t\t\t\t\t[] :\n\n\t\t\t\t\t// ...otherwise use results directly\n\t\t\t\t\tresults :\n\t\t\t\tmatcherIn;\n\n\t\t// Find primary matches\n\t\tif ( matcher ) {\n\t\t\tmatcher( matcherIn, matcherOut, context, xml );\n\t\t}\n\n\t\t// Apply postFilter\n\t\tif ( postFilter ) {\n\t\t\ttemp = condense( matcherOut, postMap );\n\t\t\tpostFilter( temp, [], context, xml );\n\n\t\t\t// Un-match failing elements by moving them back to matcherIn\n\t\t\ti = temp.length;\n\t\t\twhile ( i-- ) {\n\t\t\t\tif ( (elem = temp[i]) ) {\n\t\t\t\t\tmatcherOut[ postMap[i] ] = !(matcherIn[ postMap[i] ] = elem);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif ( seed ) {\n\t\t\tif ( postFinder || preFilter ) {\n\t\t\t\tif ( postFinder ) {\n\t\t\t\t\t// Get the final matcherOut by condensing this intermediate into postFinder contexts\n\t\t\t\t\ttemp = [];\n\t\t\t\t\ti = matcherOut.length;\n\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\tif ( (elem = matcherOut[i]) ) {\n\t\t\t\t\t\t\t// Restore matcherIn since elem is not yet a final match\n\t\t\t\t\t\t\ttemp.push( (matcherIn[i] = elem) );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tpostFinder( null, (matcherOut = []), temp, xml );\n\t\t\t\t}\n\n\t\t\t\t// Move matched elements from seed to results to keep them synchronized\n\t\t\t\ti = matcherOut.length;\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\tif ( (elem = matcherOut[i]) &&\n\t\t\t\t\t\t(temp = postFinder ? indexOf( seed, elem ) : preMap[i]) > -1 ) {\n\n\t\t\t\t\t\tseed[temp] = !(results[temp] = elem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Add elements to results, through postFinder if defined\n\t\t} else {\n\t\t\tmatcherOut = condense(\n\t\t\t\tmatcherOut === results ?\n\t\t\t\t\tmatcherOut.splice( preexisting, matcherOut.length ) :\n\t\t\t\t\tmatcherOut\n\t\t\t);\n\t\t\tif ( postFinder ) {\n\t\t\t\tpostFinder( null, results, matcherOut, xml );\n\t\t\t} else {\n\t\t\t\tpush.apply( results, matcherOut );\n\t\t\t}\n\t\t}\n\t});\n}\n\nfunction matcherFromTokens( tokens ) {\n\tvar checkContext, matcher, j,\n\t\tlen = tokens.length,\n\t\tleadingRelative = Expr.relative[ tokens[0].type ],\n\t\timplicitRelative = leadingRelative || Expr.relative[\" \"],\n\t\ti = leadingRelative ? 1 : 0,\n\n\t\t// The foundational matcher ensures that elements are reachable from top-level context(s)\n\t\tmatchContext = addCombinator( function( elem ) {\n\t\t\treturn elem === checkContext;\n\t\t}, implicitRelative, true ),\n\t\tmatchAnyContext = addCombinator( function( elem ) {\n\t\t\treturn indexOf( checkContext, elem ) > -1;\n\t\t}, implicitRelative, true ),\n\t\tmatchers = [ function( elem, context, xml ) {\n\t\t\tvar ret = ( !leadingRelative && ( xml || context !== outermostContext ) ) || (\n\t\t\t\t(checkContext = context).nodeType ?\n\t\t\t\t\tmatchContext( elem, context, xml ) :\n\t\t\t\t\tmatchAnyContext( elem, context, xml ) );\n\t\t\t// Avoid hanging onto element (issue #299)\n\t\t\tcheckContext = null;\n\t\t\treturn ret;\n\t\t} ];\n\n\tfor ( ; i < len; i++ ) {\n\t\tif ( (matcher = Expr.relative[ tokens[i].type ]) ) {\n\t\t\tmatchers = [ addCombinator(elementMatcher( matchers ), matcher) ];\n\t\t} else {\n\t\t\tmatcher = Expr.filter[ tokens[i].type ].apply( null, tokens[i].matches );\n\n\t\t\t// Return special upon seeing a positional matcher\n\t\t\tif ( matcher[ expando ] ) {\n\t\t\t\t// Find the next relative operator (if any) for proper handling\n\t\t\t\tj = ++i;\n\t\t\t\tfor ( ; j < len; j++ ) {\n\t\t\t\t\tif ( Expr.relative[ tokens[j].type ] ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn setMatcher(\n\t\t\t\t\ti > 1 && elementMatcher( matchers ),\n\t\t\t\t\ti > 1 && toSelector(\n\t\t\t\t\t\t// If the preceding token was a descendant combinator, insert an implicit any-element `*`\n\t\t\t\t\t\ttokens.slice( 0, i - 1 ).concat({ value: tokens[ i - 2 ].type === \" \" ? \"*\" : \"\" })\n\t\t\t\t\t).replace( rtrim, \"$1\" ),\n\t\t\t\t\tmatcher,\n\t\t\t\t\ti < j && matcherFromTokens( tokens.slice( i, j ) ),\n\t\t\t\t\tj < len && matcherFromTokens( (tokens = tokens.slice( j )) ),\n\t\t\t\t\tj < len && toSelector( tokens )\n\t\t\t\t);\n\t\t\t}\n\t\t\tmatchers.push( matcher );\n\t\t}\n\t}\n\n\treturn elementMatcher( matchers );\n}\n\nfunction matcherFromGroupMatchers( elementMatchers, setMatchers ) {\n\tvar bySet = setMatchers.length > 0,\n\t\tbyElement = elementMatchers.length > 0,\n\t\tsuperMatcher = function( seed, context, xml, results, outermost ) {\n\t\t\tvar elem, j, matcher,\n\t\t\t\tmatchedCount = 0,\n\t\t\t\ti = \"0\",\n\t\t\t\tunmatched = seed && [],\n\t\t\t\tsetMatched = [],\n\t\t\t\tcontextBackup = outermostContext,\n\t\t\t\t// We must always have either seed elements or outermost context\n\t\t\t\telems = seed || byElement && Expr.find[\"TAG\"]( \"*\", outermost ),\n\t\t\t\t// Use integer dirruns iff this is the outermost matcher\n\t\t\t\tdirrunsUnique = (dirruns += contextBackup == null ? 1 : Math.random() || 0.1),\n\t\t\t\tlen = elems.length;\n\n\t\t\tif ( outermost ) {\n\t\t\t\toutermostContext = context === document || context || outermost;\n\t\t\t}\n\n\t\t\t// Add elements passing elementMatchers directly to results\n\t\t\t// Support: IE<9, Safari\n\t\t\t// Tolerate NodeList properties (IE: \"length\"; Safari: <number>) matching elements by id\n\t\t\tfor ( ; i !== len && (elem = elems[i]) != null; i++ ) {\n\t\t\t\tif ( byElement && elem ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\tif ( !context && elem.ownerDocument !== document ) {\n\t\t\t\t\t\tsetDocument( elem );\n\t\t\t\t\t\txml = !documentIsHTML;\n\t\t\t\t\t}\n\t\t\t\t\twhile ( (matcher = elementMatchers[j++]) ) {\n\t\t\t\t\t\tif ( matcher( elem, context || document, xml) ) {\n\t\t\t\t\t\t\tresults.push( elem );\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( outermost ) {\n\t\t\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Track unmatched elements for set filters\n\t\t\t\tif ( bySet ) {\n\t\t\t\t\t// They will have gone through all possible matchers\n\t\t\t\t\tif ( (elem = !matcher && elem) ) {\n\t\t\t\t\t\tmatchedCount--;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Lengthen the array for every element, matched or not\n\t\t\t\t\tif ( seed ) {\n\t\t\t\t\t\tunmatched.push( elem );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// `i` is now the count of elements visited above, and adding it to `matchedCount`\n\t\t\t// makes the latter nonnegative.\n\t\t\tmatchedCount += i;\n\n\t\t\t// Apply set filters to unmatched elements\n\t\t\t// NOTE: This can be skipped if there are no unmatched elements (i.e., `matchedCount`\n\t\t\t// equals `i`), unless we didn't visit _any_ elements in the above loop because we have\n\t\t\t// no element matchers and no seed.\n\t\t\t// Incrementing an initially-string \"0\" `i` allows `i` to remain a string only in that\n\t\t\t// case, which will result in a \"00\" `matchedCount` that differs from `i` but is also\n\t\t\t// numerically zero.\n\t\t\tif ( bySet && i !== matchedCount ) {\n\t\t\t\tj = 0;\n\t\t\t\twhile ( (matcher = setMatchers[j++]) ) {\n\t\t\t\t\tmatcher( unmatched, setMatched, context, xml );\n\t\t\t\t}\n\n\t\t\t\tif ( seed ) {\n\t\t\t\t\t// Reintegrate element matches to eliminate the need for sorting\n\t\t\t\t\tif ( matchedCount > 0 ) {\n\t\t\t\t\t\twhile ( i-- ) {\n\t\t\t\t\t\t\tif ( !(unmatched[i] || setMatched[i]) ) {\n\t\t\t\t\t\t\t\tsetMatched[i] = pop.call( results );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Discard index placeholder values to get only actual matches\n\t\t\t\t\tsetMatched = condense( setMatched );\n\t\t\t\t}\n\n\t\t\t\t// Add matches to results\n\t\t\t\tpush.apply( results, setMatched );\n\n\t\t\t\t// Seedless set matches succeeding multiple successful matchers stipulate sorting\n\t\t\t\tif ( outermost && !seed && setMatched.length > 0 &&\n\t\t\t\t\t( matchedCount + setMatchers.length ) > 1 ) {\n\n\t\t\t\t\tSizzle.uniqueSort( results );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Override manipulation of globals by nested matchers\n\t\t\tif ( outermost ) {\n\t\t\t\tdirruns = dirrunsUnique;\n\t\t\t\toutermostContext = contextBackup;\n\t\t\t}\n\n\t\t\treturn unmatched;\n\t\t};\n\n\treturn bySet ?\n\t\tmarkFunction( superMatcher ) :\n\t\tsuperMatcher;\n}\n\ncompile = Sizzle.compile = function( selector, match /* Internal Use Only */ ) {\n\tvar i,\n\t\tsetMatchers = [],\n\t\telementMatchers = [],\n\t\tcached = compilerCache[ selector + \" \" ];\n\n\tif ( !cached ) {\n\t\t// Generate a function of recursive functions that can be used to check each element\n\t\tif ( !match ) {\n\t\t\tmatch = tokenize( selector );\n\t\t}\n\t\ti = match.length;\n\t\twhile ( i-- ) {\n\t\t\tcached = matcherFromTokens( match[i] );\n\t\t\tif ( cached[ expando ] ) {\n\t\t\t\tsetMatchers.push( cached );\n\t\t\t} else {\n\t\t\t\telementMatchers.push( cached );\n\t\t\t}\n\t\t}\n\n\t\t// Cache the compiled function\n\t\tcached = compilerCache( selector, matcherFromGroupMatchers( elementMatchers, setMatchers ) );\n\n\t\t// Save selector and tokenization\n\t\tcached.selector = selector;\n\t}\n\treturn cached;\n};\n\n/**\n * A low-level selection function that works with Sizzle's compiled\n * selector functions\n * @param {String|Function} selector A selector or a pre-compiled\n * selector function built with Sizzle.compile\n * @param {Element} context\n * @param {Array} [results]\n * @param {Array} [seed] A set of elements to match against\n */\nselect = Sizzle.select = function( selector, context, results, seed ) {\n\tvar i, tokens, token, type, find,\n\t\tcompiled = typeof selector === \"function\" && selector,\n\t\tmatch = !seed && tokenize( (selector = compiled.selector || selector) );\n\n\tresults = results || [];\n\n\t// Try to minimize operations if there is only one selector in the list and no seed\n\t// (the latter of which guarantees us context)\n\tif ( match.length === 1 ) {\n\n\t\t// Reduce context if the leading compound selector is an ID\n\t\ttokens = match[0] = match[0].slice( 0 );\n\t\tif ( tokens.length > 2 && (token = tokens[0]).type === \"ID\" &&\n\t\t\t\tcontext.nodeType === 9 && documentIsHTML && Expr.relative[ tokens[1].type ] ) {\n\n\t\t\tcontext = ( Expr.find[\"ID\"]( token.matches[0].replace(runescape, funescape), context ) || [] )[0];\n\t\t\tif ( !context ) {\n\t\t\t\treturn results;\n\n\t\t\t// Precompiled matchers will still verify ancestry, so step up a level\n\t\t\t} else if ( compiled ) {\n\t\t\t\tcontext = context.parentNode;\n\t\t\t}\n\n\t\t\tselector = selector.slice( tokens.shift().value.length );\n\t\t}\n\n\t\t// Fetch a seed set for right-to-left matching\n\t\ti = matchExpr[\"needsContext\"].test( selector ) ? 0 : tokens.length;\n\t\twhile ( i-- ) {\n\t\t\ttoken = tokens[i];\n\n\t\t\t// Abort if we hit a combinator\n\t\t\tif ( Expr.relative[ (type = token.type) ] ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( (find = Expr.find[ type ]) ) {\n\t\t\t\t// Search, expanding context for leading sibling combinators\n\t\t\t\tif ( (seed = find(\n\t\t\t\t\ttoken.matches[0].replace( runescape, funescape ),\n\t\t\t\t\trsibling.test( tokens[0].type ) && testContext( context.parentNode ) || context\n\t\t\t\t)) ) {\n\n\t\t\t\t\t// If seed is empty or no tokens remain, we can return early\n\t\t\t\t\ttokens.splice( i, 1 );\n\t\t\t\t\tselector = seed.length && toSelector( tokens );\n\t\t\t\t\tif ( !selector ) {\n\t\t\t\t\t\tpush.apply( results, seed );\n\t\t\t\t\t\treturn results;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Compile and execute a filtering function if one is not provided\n\t// Provide `match` to avoid retokenization if we modified the selector above\n\t( compiled || compile( selector, match ) )(\n\t\tseed,\n\t\tcontext,\n\t\t!documentIsHTML,\n\t\tresults,\n\t\t!context || rsibling.test( selector ) && testContext( context.parentNode ) || context\n\t);\n\treturn results;\n};\n\n// One-time assignments\n\n// Sort stability\nsupport.sortStable = expando.split(\"\").sort( sortOrder ).join(\"\") === expando;\n\n// Support: Chrome 14-35+\n// Always assume duplicates if they aren't passed to the comparison function\nsupport.detectDuplicates = !!hasDuplicate;\n\n// Initialize against the default document\nsetDocument();\n\n// Support: Webkit<537.32 - Safari 6.0.3/Chrome 25 (fixed in Chrome 27)\n// Detached nodes confoundingly follow *each other*\nsupport.sortDetached = assert(function( el ) {\n\t// Should return 1, but returns 4 (following)\n\treturn el.compareDocumentPosition( document.createElement(\"fieldset\") ) & 1;\n});\n\n// Support: IE<8\n// Prevent attribute/property \"interpolation\"\n// https://msdn.microsoft.com/en-us/library/ms536429%28VS.85%29.aspx\nif ( !assert(function( el ) {\n\tel.innerHTML = \"<a href='#'></a>\";\n\treturn el.firstChild.getAttribute(\"href\") === \"#\" ;\n}) ) {\n\taddHandle( \"type|href|height|width\", function( elem, name, isXML ) {\n\t\tif ( !isXML ) {\n\t\t\treturn elem.getAttribute( name, name.toLowerCase() === \"type\" ? 1 : 2 );\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use defaultValue in place of getAttribute(\"value\")\nif ( !support.attributes || !assert(function( el ) {\n\tel.innerHTML = \"<input/>\";\n\tel.firstChild.setAttribute( \"value\", \"\" );\n\treturn el.firstChild.getAttribute( \"value\" ) === \"\";\n}) ) {\n\taddHandle( \"value\", function( elem, name, isXML ) {\n\t\tif ( !isXML && elem.nodeName.toLowerCase() === \"input\" ) {\n\t\t\treturn elem.defaultValue;\n\t\t}\n\t});\n}\n\n// Support: IE<9\n// Use getAttributeNode to fetch booleans when getAttribute lies\nif ( !assert(function( el ) {\n\treturn el.getAttribute(\"disabled\") == null;\n}) ) {\n\taddHandle( booleans, function( elem, name, isXML ) {\n\t\tvar val;\n\t\tif ( !isXML ) {\n\t\t\treturn elem[ name ] === true ? name.toLowerCase() :\n\t\t\t\t\t(val = elem.getAttributeNode( name )) && val.specified ?\n\t\t\t\t\tval.value :\n\t\t\t\tnull;\n\t\t}\n\t});\n}\n\nreturn Sizzle;\n\n})( window );\n\n\n\njQuery.find = Sizzle;\njQuery.expr = Sizzle.selectors;\n\n// Deprecated\njQuery.expr[ \":\" ] = jQuery.expr.pseudos;\njQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort;\njQuery.text = Sizzle.getText;\njQuery.isXMLDoc = Sizzle.isXML;\njQuery.contains = Sizzle.contains;\njQuery.escapeSelector = Sizzle.escape;\n\n\n\n\nvar dir = function( elem, dir, until ) {\n\tvar matched = [],\n\t\ttruncate = until !== undefined;\n\n\twhile ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) {\n\t\tif ( elem.nodeType === 1 ) {\n\t\t\tif ( truncate && jQuery( elem ).is( until ) ) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tmatched.push( elem );\n\t\t}\n\t}\n\treturn matched;\n};\n\n\nvar siblings = function( n, elem ) {\n\tvar matched = [];\n\n\tfor ( ; n; n = n.nextSibling ) {\n\t\tif ( n.nodeType === 1 && n !== elem ) {\n\t\t\tmatched.push( n );\n\t\t}\n\t}\n\n\treturn matched;\n};\n\n\nvar rneedsContext = jQuery.expr.match.needsContext;\n\n\n\nfunction nodeName( elem, name ) {\n\n return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase();\n\n};\nvar rsingleTag = ( /^<([a-z][^\\/\\0>:\\x20\\t\\r\\n\\f]*)[\\x20\\t\\r\\n\\f]*\\/?>(?:<\\/\\1>|)$/i );\n\n\n\n// Implement the identical functionality for filter and not\nfunction winnow( elements, qualifier, not ) {\n\tif ( isFunction( qualifier ) ) {\n\t\treturn jQuery.grep( elements, function( elem, i ) {\n\t\t\treturn !!qualifier.call( elem, i, elem ) !== not;\n\t\t} );\n\t}\n\n\t// Single element\n\tif ( qualifier.nodeType ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( elem === qualifier ) !== not;\n\t\t} );\n\t}\n\n\t// Arraylike of elements (jQuery, arguments, Array)\n\tif ( typeof qualifier !== \"string\" ) {\n\t\treturn jQuery.grep( elements, function( elem ) {\n\t\t\treturn ( indexOf.call( qualifier, elem ) > -1 ) !== not;\n\t\t} );\n\t}\n\n\t// Filtered directly for both simple and complex selectors\n\treturn jQuery.filter( qualifier, elements, not );\n}\n\njQuery.filter = function( expr, elems, not ) {\n\tvar elem = elems[ 0 ];\n\n\tif ( not ) {\n\t\texpr = \":not(\" + expr + \")\";\n\t}\n\n\tif ( elems.length === 1 && elem.nodeType === 1 ) {\n\t\treturn jQuery.find.matchesSelector( elem, expr ) ? [ elem ] : [];\n\t}\n\n\treturn jQuery.find.matches( expr, jQuery.grep( elems, function( elem ) {\n\t\treturn elem.nodeType === 1;\n\t} ) );\n};\n\njQuery.fn.extend( {\n\tfind: function( selector ) {\n\t\tvar i, ret,\n\t\t\tlen = this.length,\n\t\t\tself = this;\n\n\t\tif ( typeof selector !== \"string\" ) {\n\t\t\treturn this.pushStack( jQuery( selector ).filter( function() {\n\t\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\t\tif ( jQuery.contains( self[ i ], this ) ) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} ) );\n\t\t}\n\n\t\tret = this.pushStack( [] );\n\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\tjQuery.find( selector, self[ i ], ret );\n\t\t}\n\n\t\treturn len > 1 ? jQuery.uniqueSort( ret ) : ret;\n\t},\n\tfilter: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], false ) );\n\t},\n\tnot: function( selector ) {\n\t\treturn this.pushStack( winnow( this, selector || [], true ) );\n\t},\n\tis: function( selector ) {\n\t\treturn !!winnow(\n\t\t\tthis,\n\n\t\t\t// If this is a positional/relative selector, check membership in the returned set\n\t\t\t// so $(\"p:first\").is(\"p:last\") won't return true for a doc with two \"p\".\n\t\t\ttypeof selector === \"string\" && rneedsContext.test( selector ) ?\n\t\t\t\tjQuery( selector ) :\n\t\t\t\tselector || [],\n\t\t\tfalse\n\t\t).length;\n\t}\n} );\n\n\n// Initialize a jQuery object\n\n\n// A central reference to the root jQuery(document)\nvar rootjQuery,\n\n\t// A simple way to check for HTML strings\n\t// Prioritize #id over <tag> to avoid XSS via location.hash (#9521)\n\t// Strict HTML recognition (#11290: must start with <)\n\t// Shortcut simple #id case for speed\n\trquickExpr = /^(?:\\s*(<[\\w\\W]+>)[^>]*|#([\\w-]+))$/,\n\n\tinit = jQuery.fn.init = function( selector, context, root ) {\n\t\tvar match, elem;\n\n\t\t// HANDLE: $(\"\"), $(null), $(undefined), $(false)\n\t\tif ( !selector ) {\n\t\t\treturn this;\n\t\t}\n\n\t\t// Method init() accepts an alternate rootjQuery\n\t\t// so migrate can support jQuery.sub (gh-2101)\n\t\troot = root || rootjQuery;\n\n\t\t// Handle HTML strings\n\t\tif ( typeof selector === \"string\" ) {\n\t\t\tif ( selector[ 0 ] === \"<\" &&\n\t\t\t\tselector[ selector.length - 1 ] === \">\" &&\n\t\t\t\tselector.length >= 3 ) {\n\n\t\t\t\t// Assume that strings that start and end with <> are HTML and skip the regex check\n\t\t\t\tmatch = [ null, selector, null ];\n\n\t\t\t} else {\n\t\t\t\tmatch = rquickExpr.exec( selector );\n\t\t\t}\n\n\t\t\t// Match html or make sure no context is specified for #id\n\t\t\tif ( match && ( match[ 1 ] || !context ) ) {\n\n\t\t\t\t// HANDLE: $(html) -> $(array)\n\t\t\t\tif ( match[ 1 ] ) {\n\t\t\t\t\tcontext = context instanceof jQuery ? context[ 0 ] : context;\n\n\t\t\t\t\t// Option to run scripts is true for back-compat\n\t\t\t\t\t// Intentionally let the error be thrown if parseHTML is not present\n\t\t\t\t\tjQuery.merge( this, jQuery.parseHTML(\n\t\t\t\t\t\tmatch[ 1 ],\n\t\t\t\t\t\tcontext && context.nodeType ? context.ownerDocument || context : document,\n\t\t\t\t\t\ttrue\n\t\t\t\t\t) );\n\n\t\t\t\t\t// HANDLE: $(html, props)\n\t\t\t\t\tif ( rsingleTag.test( match[ 1 ] ) && jQuery.isPlainObject( context ) ) {\n\t\t\t\t\t\tfor ( match in context ) {\n\n\t\t\t\t\t\t\t// Properties of context are called as methods if possible\n\t\t\t\t\t\t\tif ( isFunction( this[ match ] ) ) {\n\t\t\t\t\t\t\t\tthis[ match ]( context[ match ] );\n\n\t\t\t\t\t\t\t// ...and otherwise set as attributes\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis.attr( match, context[ match ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this;\n\n\t\t\t\t// HANDLE: $(#id)\n\t\t\t\t} else {\n\t\t\t\t\telem = document.getElementById( match[ 2 ] );\n\n\t\t\t\t\tif ( elem ) {\n\n\t\t\t\t\t\t// Inject the element directly into the jQuery object\n\t\t\t\t\t\tthis[ 0 ] = elem;\n\t\t\t\t\t\tthis.length = 1;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t// HANDLE: $(expr, $(...))\n\t\t\t} else if ( !context || context.jquery ) {\n\t\t\t\treturn ( context || root ).find( selector );\n\n\t\t\t// HANDLE: $(expr, context)\n\t\t\t// (which is just equivalent to: $(context).find(expr)\n\t\t\t} else {\n\t\t\t\treturn this.constructor( context ).find( selector );\n\t\t\t}\n\n\t\t// HANDLE: $(DOMElement)\n\t\t} else if ( selector.nodeType ) {\n\t\t\tthis[ 0 ] = selector;\n\t\t\tthis.length = 1;\n\t\t\treturn this;\n\n\t\t// HANDLE: $(function)\n\t\t// Shortcut for document ready\n\t\t} else if ( isFunction( selector ) ) {\n\t\t\treturn root.ready !== undefined ?\n\t\t\t\troot.ready( selector ) :\n\n\t\t\t\t// Execute immediately if ready is not present\n\t\t\t\tselector( jQuery );\n\t\t}\n\n\t\treturn jQuery.makeArray( selector, this );\n\t};\n\n// Give the init function the jQuery prototype for later instantiation\ninit.prototype = jQuery.fn;\n\n// Initialize central reference\nrootjQuery = jQuery( document );\n\n\nvar rparentsprev = /^(?:parents|prev(?:Until|All))/,\n\n\t// Methods guaranteed to produce a unique set when starting from a unique set\n\tguaranteedUnique = {\n\t\tchildren: true,\n\t\tcontents: true,\n\t\tnext: true,\n\t\tprev: true\n\t};\n\njQuery.fn.extend( {\n\thas: function( target ) {\n\t\tvar targets = jQuery( target, this ),\n\t\t\tl = targets.length;\n\n\t\treturn this.filter( function() {\n\t\t\tvar i = 0;\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tif ( jQuery.contains( this, targets[ i ] ) ) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\tclosest: function( selectors, context ) {\n\t\tvar cur,\n\t\t\ti = 0,\n\t\t\tl = this.length,\n\t\t\tmatched = [],\n\t\t\ttargets = typeof selectors !== \"string\" && jQuery( selectors );\n\n\t\t// Positional selectors never match, since there's no _selection_ context\n\t\tif ( !rneedsContext.test( selectors ) ) {\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tfor ( cur = this[ i ]; cur && cur !== context; cur = cur.parentNode ) {\n\n\t\t\t\t\t// Always skip document fragments\n\t\t\t\t\tif ( cur.nodeType < 11 && ( targets ?\n\t\t\t\t\t\ttargets.index( cur ) > -1 :\n\n\t\t\t\t\t\t// Don't pass non-elements to Sizzle\n\t\t\t\t\t\tcur.nodeType === 1 &&\n\t\t\t\t\t\t\tjQuery.find.matchesSelector( cur, selectors ) ) ) {\n\n\t\t\t\t\t\tmatched.push( cur );\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched.length > 1 ? jQuery.uniqueSort( matched ) : matched );\n\t},\n\n\t// Determine the position of an element within the set\n\tindex: function( elem ) {\n\n\t\t// No argument, return index in parent\n\t\tif ( !elem ) {\n\t\t\treturn ( this[ 0 ] && this[ 0 ].parentNode ) ? this.first().prevAll().length : -1;\n\t\t}\n\n\t\t// Index in selector\n\t\tif ( typeof elem === \"string\" ) {\n\t\t\treturn indexOf.call( jQuery( elem ), this[ 0 ] );\n\t\t}\n\n\t\t// Locate the position of the desired element\n\t\treturn indexOf.call( this,\n\n\t\t\t// If it receives a jQuery object, the first element is used\n\t\t\telem.jquery ? elem[ 0 ] : elem\n\t\t);\n\t},\n\n\tadd: function( selector, context ) {\n\t\treturn this.pushStack(\n\t\t\tjQuery.uniqueSort(\n\t\t\t\tjQuery.merge( this.get(), jQuery( selector, context ) )\n\t\t\t)\n\t\t);\n\t},\n\n\taddBack: function( selector ) {\n\t\treturn this.add( selector == null ?\n\t\t\tthis.prevObject : this.prevObject.filter( selector )\n\t\t);\n\t}\n} );\n\nfunction sibling( cur, dir ) {\n\twhile ( ( cur = cur[ dir ] ) && cur.nodeType !== 1 ) {}\n\treturn cur;\n}\n\njQuery.each( {\n\tparent: function( elem ) {\n\t\tvar parent = elem.parentNode;\n\t\treturn parent && parent.nodeType !== 11 ? parent : null;\n\t},\n\tparents: function( elem ) {\n\t\treturn dir( elem, \"parentNode\" );\n\t},\n\tparentsUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"parentNode\", until );\n\t},\n\tnext: function( elem ) {\n\t\treturn sibling( elem, \"nextSibling\" );\n\t},\n\tprev: function( elem ) {\n\t\treturn sibling( elem, \"previousSibling\" );\n\t},\n\tnextAll: function( elem ) {\n\t\treturn dir( elem, \"nextSibling\" );\n\t},\n\tprevAll: function( elem ) {\n\t\treturn dir( elem, \"previousSibling\" );\n\t},\n\tnextUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"nextSibling\", until );\n\t},\n\tprevUntil: function( elem, i, until ) {\n\t\treturn dir( elem, \"previousSibling\", until );\n\t},\n\tsiblings: function( elem ) {\n\t\treturn siblings( ( elem.parentNode || {} ).firstChild, elem );\n\t},\n\tchildren: function( elem ) {\n\t\treturn siblings( elem.firstChild );\n\t},\n\tcontents: function( elem ) {\n if ( nodeName( elem, \"iframe\" ) ) {\n return elem.contentDocument;\n }\n\n // Support: IE 9 - 11 only, iOS 7 only, Android Browser <=4.3 only\n // Treat the template element as a regular one in browsers that\n // don't support it.\n if ( nodeName( elem, \"template\" ) ) {\n elem = elem.content || elem;\n }\n\n return jQuery.merge( [], elem.childNodes );\n\t}\n}, function( name, fn ) {\n\tjQuery.fn[ name ] = function( until, selector ) {\n\t\tvar matched = jQuery.map( this, fn, until );\n\n\t\tif ( name.slice( -5 ) !== \"Until\" ) {\n\t\t\tselector = until;\n\t\t}\n\n\t\tif ( selector && typeof selector === \"string\" ) {\n\t\t\tmatched = jQuery.filter( selector, matched );\n\t\t}\n\n\t\tif ( this.length > 1 ) {\n\n\t\t\t// Remove duplicates\n\t\t\tif ( !guaranteedUnique[ name ] ) {\n\t\t\t\tjQuery.uniqueSort( matched );\n\t\t\t}\n\n\t\t\t// Reverse order for parents* and prev-derivatives\n\t\t\tif ( rparentsprev.test( name ) ) {\n\t\t\t\tmatched.reverse();\n\t\t\t}\n\t\t}\n\n\t\treturn this.pushStack( matched );\n\t};\n} );\nvar rnothtmlwhite = ( /[^\\x20\\t\\r\\n\\f]+/g );\n\n\n\n// Convert String-formatted options into Object-formatted ones\nfunction createOptions( options ) {\n\tvar object = {};\n\tjQuery.each( options.match( rnothtmlwhite ) || [], function( _, flag ) {\n\t\tobject[ flag ] = true;\n\t} );\n\treturn object;\n}\n\n/*\n * Create a callback list using the following parameters:\n *\n *\toptions: an optional list of space-separated options that will change how\n *\t\t\tthe callback list behaves or a more traditional option object\n *\n * By default a callback list will act like an event callback list and can be\n * \"fired\" multiple times.\n *\n * Possible options:\n *\n *\tonce:\t\t\twill ensure the callback list can only be fired once (like a Deferred)\n *\n *\tmemory:\t\t\twill keep track of previous values and will call any callback added\n *\t\t\t\t\tafter the list has been fired right away with the latest \"memorized\"\n *\t\t\t\t\tvalues (like a Deferred)\n *\n *\tunique:\t\t\twill ensure a callback can only be added once (no duplicate in the list)\n *\n *\tstopOnFalse:\tinterrupt callings when a callback returns false\n *\n */\njQuery.Callbacks = function( options ) {\n\n\t// Convert options from String-formatted to Object-formatted if needed\n\t// (we check in cache first)\n\toptions = typeof options === \"string\" ?\n\t\tcreateOptions( options ) :\n\t\tjQuery.extend( {}, options );\n\n\tvar // Flag to know if list is currently firing\n\t\tfiring,\n\n\t\t// Last fire value for non-forgettable lists\n\t\tmemory,\n\n\t\t// Flag to know if list was already fired\n\t\tfired,\n\n\t\t// Flag to prevent firing\n\t\tlocked,\n\n\t\t// Actual callback list\n\t\tlist = [],\n\n\t\t// Queue of execution data for repeatable lists\n\t\tqueue = [],\n\n\t\t// Index of currently firing callback (modified by add/remove as needed)\n\t\tfiringIndex = -1,\n\n\t\t// Fire callbacks\n\t\tfire = function() {\n\n\t\t\t// Enforce single-firing\n\t\t\tlocked = locked || options.once;\n\n\t\t\t// Execute callbacks for all pending executions,\n\t\t\t// respecting firingIndex overrides and runtime changes\n\t\t\tfired = firing = true;\n\t\t\tfor ( ; queue.length; firingIndex = -1 ) {\n\t\t\t\tmemory = queue.shift();\n\t\t\t\twhile ( ++firingIndex < list.length ) {\n\n\t\t\t\t\t// Run callback and check for early termination\n\t\t\t\t\tif ( list[ firingIndex ].apply( memory[ 0 ], memory[ 1 ] ) === false &&\n\t\t\t\t\t\toptions.stopOnFalse ) {\n\n\t\t\t\t\t\t// Jump to end and forget the data so .add doesn't re-fire\n\t\t\t\t\t\tfiringIndex = list.length;\n\t\t\t\t\t\tmemory = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Forget the data if we're done with it\n\t\t\tif ( !options.memory ) {\n\t\t\t\tmemory = false;\n\t\t\t}\n\n\t\t\tfiring = false;\n\n\t\t\t// Clean up if we're done firing for good\n\t\t\tif ( locked ) {\n\n\t\t\t\t// Keep an empty list if we have data for future add calls\n\t\t\t\tif ( memory ) {\n\t\t\t\t\tlist = [];\n\n\t\t\t\t// Otherwise, this object is spent\n\t\t\t\t} else {\n\t\t\t\t\tlist = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t// Actual Callbacks object\n\t\tself = {\n\n\t\t\t// Add a callback or a collection of callbacks to the list\n\t\t\tadd: function() {\n\t\t\t\tif ( list ) {\n\n\t\t\t\t\t// If we have memory from a past run, we should fire after adding\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfiringIndex = list.length - 1;\n\t\t\t\t\t\tqueue.push( memory );\n\t\t\t\t\t}\n\n\t\t\t\t\t( function add( args ) {\n\t\t\t\t\t\tjQuery.each( args, function( _, arg ) {\n\t\t\t\t\t\t\tif ( isFunction( arg ) ) {\n\t\t\t\t\t\t\t\tif ( !options.unique || !self.has( arg ) ) {\n\t\t\t\t\t\t\t\t\tlist.push( arg );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else if ( arg && arg.length && toType( arg ) !== \"string\" ) {\n\n\t\t\t\t\t\t\t\t// Inspect recursively\n\t\t\t\t\t\t\t\tadd( arg );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} );\n\t\t\t\t\t} )( arguments );\n\n\t\t\t\t\tif ( memory && !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Remove a callback from the list\n\t\t\tremove: function() {\n\t\t\t\tjQuery.each( arguments, function( _, arg ) {\n\t\t\t\t\tvar index;\n\t\t\t\t\twhile ( ( index = jQuery.inArray( arg, list, index ) ) > -1 ) {\n\t\t\t\t\t\tlist.splice( index, 1 );\n\n\t\t\t\t\t\t// Handle firing indexes\n\t\t\t\t\t\tif ( index <= firingIndex ) {\n\t\t\t\t\t\t\tfiringIndex--;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Check if a given callback is in the list.\n\t\t\t// If no argument is given, return whether or not list has callbacks attached.\n\t\t\thas: function( fn ) {\n\t\t\t\treturn fn ?\n\t\t\t\t\tjQuery.inArray( fn, list ) > -1 :\n\t\t\t\t\tlist.length > 0;\n\t\t\t},\n\n\t\t\t// Remove all callbacks from the list\n\t\t\tempty: function() {\n\t\t\t\tif ( list ) {\n\t\t\t\t\tlist = [];\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Disable .fire and .add\n\t\t\t// Abort any current/pending executions\n\t\t\t// Clear all callbacks and values\n\t\t\tdisable: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tlist = memory = \"\";\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tdisabled: function() {\n\t\t\t\treturn !list;\n\t\t\t},\n\n\t\t\t// Disable .fire\n\t\t\t// Also disable .add unless we have memory (since it would have no effect)\n\t\t\t// Abort any pending executions\n\t\t\tlock: function() {\n\t\t\t\tlocked = queue = [];\n\t\t\t\tif ( !memory && !firing ) {\n\t\t\t\t\tlist = memory = \"\";\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\t\t\tlocked: function() {\n\t\t\t\treturn !!locked;\n\t\t\t},\n\n\t\t\t// Call all callbacks with the given context and arguments\n\t\t\tfireWith: function( context, args ) {\n\t\t\t\tif ( !locked ) {\n\t\t\t\t\targs = args || [];\n\t\t\t\t\targs = [ context, args.slice ? args.slice() : args ];\n\t\t\t\t\tqueue.push( args );\n\t\t\t\t\tif ( !firing ) {\n\t\t\t\t\t\tfire();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// Call all the callbacks with the given arguments\n\t\t\tfire: function() {\n\t\t\t\tself.fireWith( this, arguments );\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// To know if the callbacks have already been called at least once\n\t\t\tfired: function() {\n\t\t\t\treturn !!fired;\n\t\t\t}\n\t\t};\n\n\treturn self;\n};\n\n\nfunction Identity( v ) {\n\treturn v;\n}\nfunction Thrower( ex ) {\n\tthrow ex;\n}\n\nfunction adoptValue( value, resolve, reject, noValue ) {\n\tvar method;\n\n\ttry {\n\n\t\t// Check for promise aspect first to privilege synchronous behavior\n\t\tif ( value && isFunction( ( method = value.promise ) ) ) {\n\t\t\tmethod.call( value ).done( resolve ).fail( reject );\n\n\t\t// Other thenables\n\t\t} else if ( value && isFunction( ( method = value.then ) ) ) {\n\t\t\tmethod.call( value, resolve, reject );\n\n\t\t// Other non-thenables\n\t\t} else {\n\n\t\t\t// Control `resolve` arguments by letting Array#slice cast boolean `noValue` to integer:\n\t\t\t// * false: [ value ].slice( 0 ) => resolve( value )\n\t\t\t// * true: [ value ].slice( 1 ) => resolve()\n\t\t\tresolve.apply( undefined, [ value ].slice( noValue ) );\n\t\t}\n\n\t// For Promises/A+, convert exceptions into rejections\n\t// Since jQuery.when doesn't unwrap thenables, we can skip the extra checks appearing in\n\t// Deferred#then to conditionally suppress rejection.\n\t} catch ( value ) {\n\n\t\t// Support: Android 4.0 only\n\t\t// Strict mode functions invoked without .call/.apply get global-object context\n\t\treject.apply( undefined, [ value ] );\n\t}\n}\n\njQuery.extend( {\n\n\tDeferred: function( func ) {\n\t\tvar tuples = [\n\n\t\t\t\t// action, add listener, callbacks,\n\t\t\t\t// ... .then handlers, argument index, [final state]\n\t\t\t\t[ \"notify\", \"progress\", jQuery.Callbacks( \"memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"memory\" ), 2 ],\n\t\t\t\t[ \"resolve\", \"done\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 0, \"resolved\" ],\n\t\t\t\t[ \"reject\", \"fail\", jQuery.Callbacks( \"once memory\" ),\n\t\t\t\t\tjQuery.Callbacks( \"once memory\" ), 1, \"rejected\" ]\n\t\t\t],\n\t\t\tstate = \"pending\",\n\t\t\tpromise = {\n\t\t\t\tstate: function() {\n\t\t\t\t\treturn state;\n\t\t\t\t},\n\t\t\t\talways: function() {\n\t\t\t\t\tdeferred.done( arguments ).fail( arguments );\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\t\t\t\t\"catch\": function( fn ) {\n\t\t\t\t\treturn promise.then( null, fn );\n\t\t\t\t},\n\n\t\t\t\t// Keep pipe for back-compat\n\t\t\t\tpipe: function( /* fnDone, fnFail, fnProgress */ ) {\n\t\t\t\t\tvar fns = arguments;\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\t\t\t\t\t\tjQuery.each( tuples, function( i, tuple ) {\n\n\t\t\t\t\t\t\t// Map tuples (progress, done, fail) to arguments (done, fail, progress)\n\t\t\t\t\t\t\tvar fn = isFunction( fns[ tuple[ 4 ] ] ) && fns[ tuple[ 4 ] ];\n\n\t\t\t\t\t\t\t// deferred.progress(function() { bind to newDefer or newDefer.notify })\n\t\t\t\t\t\t\t// deferred.done(function() { bind to newDefer or newDefer.resolve })\n\t\t\t\t\t\t\t// deferred.fail(function() { bind to newDefer or newDefer.reject })\n\t\t\t\t\t\t\tdeferred[ tuple[ 1 ] ]( function() {\n\t\t\t\t\t\t\t\tvar returned = fn && fn.apply( this, arguments );\n\t\t\t\t\t\t\t\tif ( returned && isFunction( returned.promise ) ) {\n\t\t\t\t\t\t\t\t\treturned.promise()\n\t\t\t\t\t\t\t\t\t\t.progress( newDefer.notify )\n\t\t\t\t\t\t\t\t\t\t.done( newDefer.resolve )\n\t\t\t\t\t\t\t\t\t\t.fail( newDefer.reject );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tnewDefer[ tuple[ 0 ] + \"With\" ](\n\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\tfn ? [ returned ] : arguments\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} );\n\t\t\t\t\t\tfns = null;\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\t\t\t\tthen: function( onFulfilled, onRejected, onProgress ) {\n\t\t\t\t\tvar maxDepth = 0;\n\t\t\t\t\tfunction resolve( depth, deferred, handler, special ) {\n\t\t\t\t\t\treturn function() {\n\t\t\t\t\t\t\tvar that = this,\n\t\t\t\t\t\t\t\targs = arguments,\n\t\t\t\t\t\t\t\tmightThrow = function() {\n\t\t\t\t\t\t\t\t\tvar returned, then;\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.3\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-59\n\t\t\t\t\t\t\t\t\t// Ignore double-resolution attempts\n\t\t\t\t\t\t\t\t\tif ( depth < maxDepth ) {\n\t\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\treturned = handler.apply( that, args );\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.1\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-48\n\t\t\t\t\t\t\t\t\tif ( returned === deferred.promise() ) {\n\t\t\t\t\t\t\t\t\t\tthrow new TypeError( \"Thenable self-resolution\" );\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Support: Promises/A+ sections 2.3.3.1, 3.5\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-54\n\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-75\n\t\t\t\t\t\t\t\t\t// Retrieve `then` only once\n\t\t\t\t\t\t\t\t\tthen = returned &&\n\n\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.4\n\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-64\n\t\t\t\t\t\t\t\t\t\t// Only check objects and functions for thenability\n\t\t\t\t\t\t\t\t\t\t( typeof returned === \"object\" ||\n\t\t\t\t\t\t\t\t\t\t\ttypeof returned === \"function\" ) &&\n\t\t\t\t\t\t\t\t\t\treturned.then;\n\n\t\t\t\t\t\t\t\t\t// Handle a returned thenable\n\t\t\t\t\t\t\t\t\tif ( isFunction( then ) ) {\n\n\t\t\t\t\t\t\t\t\t\t// Special processors (notify) just wait for resolution\n\t\t\t\t\t\t\t\t\t\tif ( special ) {\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special )\n\t\t\t\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t\t\t// Normal processors (resolve) also hook into progress\n\t\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t\t// ...and disregard older resolution values\n\t\t\t\t\t\t\t\t\t\t\tmaxDepth++;\n\n\t\t\t\t\t\t\t\t\t\t\tthen.call(\n\t\t\t\t\t\t\t\t\t\t\t\treturned,\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Thrower, special ),\n\t\t\t\t\t\t\t\t\t\t\t\tresolve( maxDepth, deferred, Identity,\n\t\t\t\t\t\t\t\t\t\t\t\t\tdeferred.notifyWith )\n\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// Handle all other returned values\n\t\t\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\tif ( handler !== Identity ) {\n\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\targs = [ returned ];\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// Process the value(s)\n\t\t\t\t\t\t\t\t\t\t// Default process is resolve\n\t\t\t\t\t\t\t\t\t\t( special || deferred.resolveWith )( that, args );\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t},\n\n\t\t\t\t\t\t\t\t// Only normal processors (resolve) catch and reject exceptions\n\t\t\t\t\t\t\t\tprocess = special ?\n\t\t\t\t\t\t\t\t\tmightThrow :\n\t\t\t\t\t\t\t\t\tfunction() {\n\t\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\t\tmightThrow();\n\t\t\t\t\t\t\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t\t\t\t\t\t\tif ( jQuery.Deferred.exceptionHook ) {\n\t\t\t\t\t\t\t\t\t\t\t\tjQuery.Deferred.exceptionHook( e,\n\t\t\t\t\t\t\t\t\t\t\t\t\tprocess.stackTrace );\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.4.1\n\t\t\t\t\t\t\t\t\t\t\t// https://promisesaplus.com/#point-61\n\t\t\t\t\t\t\t\t\t\t\t// Ignore post-resolution exceptions\n\t\t\t\t\t\t\t\t\t\t\tif ( depth + 1 >= maxDepth ) {\n\n\t\t\t\t\t\t\t\t\t\t\t\t// Only substitute handlers pass on context\n\t\t\t\t\t\t\t\t\t\t\t\t// and multiple values (non-spec behavior)\n\t\t\t\t\t\t\t\t\t\t\t\tif ( handler !== Thrower ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\tthat = undefined;\n\t\t\t\t\t\t\t\t\t\t\t\t\targs = [ e ];\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t\tdeferred.rejectWith( that, args );\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Support: Promises/A+ section 2.3.3.3.1\n\t\t\t\t\t\t\t// https://promisesaplus.com/#point-57\n\t\t\t\t\t\t\t// Re-resolve promises immediately to dodge false rejection from\n\t\t\t\t\t\t\t// subsequent errors\n\t\t\t\t\t\t\tif ( depth ) {\n\t\t\t\t\t\t\t\tprocess();\n\t\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t\t// Call an optional hook to record the stack, in case of exception\n\t\t\t\t\t\t\t\t// since it's otherwise lost when execution goes async\n\t\t\t\t\t\t\t\tif ( jQuery.Deferred.getStackHook ) {\n\t\t\t\t\t\t\t\t\tprocess.stackTrace = jQuery.Deferred.getStackHook();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\twindow.setTimeout( process );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\treturn jQuery.Deferred( function( newDefer ) {\n\n\t\t\t\t\t\t// progress_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 0 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onProgress ) ?\n\t\t\t\t\t\t\t\t\tonProgress :\n\t\t\t\t\t\t\t\t\tIdentity,\n\t\t\t\t\t\t\t\tnewDefer.notifyWith\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// fulfilled_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 1 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onFulfilled ) ?\n\t\t\t\t\t\t\t\t\tonFulfilled :\n\t\t\t\t\t\t\t\t\tIdentity\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\t// rejected_handlers.add( ... )\n\t\t\t\t\t\ttuples[ 2 ][ 3 ].add(\n\t\t\t\t\t\t\tresolve(\n\t\t\t\t\t\t\t\t0,\n\t\t\t\t\t\t\t\tnewDefer,\n\t\t\t\t\t\t\t\tisFunction( onRejected ) ?\n\t\t\t\t\t\t\t\t\tonRejected :\n\t\t\t\t\t\t\t\t\tThrower\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} ).promise();\n\t\t\t\t},\n\n\t\t\t\t// Get a promise for this deferred\n\t\t\t\t// If obj is provided, the promise aspect is added to the object\n\t\t\t\tpromise: function( obj ) {\n\t\t\t\t\treturn obj != null ? jQuery.extend( obj, promise ) : promise;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdeferred = {};\n\n\t\t// Add list-specific methods\n\t\tjQuery.each( tuples, function( i, tuple ) {\n\t\t\tvar list = tuple[ 2 ],\n\t\t\t\tstateString = tuple[ 5 ];\n\n\t\t\t// promise.progress = list.add\n\t\t\t// promise.done = list.add\n\t\t\t// promise.fail = list.add\n\t\t\tpromise[ tuple[ 1 ] ] = list.add;\n\n\t\t\t// Handle state\n\t\t\tif ( stateString ) {\n\t\t\t\tlist.add(\n\t\t\t\t\tfunction() {\n\n\t\t\t\t\t\t// state = \"resolved\" (i.e., fulfilled)\n\t\t\t\t\t\t// state = \"rejected\"\n\t\t\t\t\t\tstate = stateString;\n\t\t\t\t\t},\n\n\t\t\t\t\t// rejected_callbacks.disable\n\t\t\t\t\t// fulfilled_callbacks.disable\n\t\t\t\t\ttuples[ 3 - i ][ 2 ].disable,\n\n\t\t\t\t\t// rejected_handlers.disable\n\t\t\t\t\t// fulfilled_handlers.disable\n\t\t\t\t\ttuples[ 3 - i ][ 3 ].disable,\n\n\t\t\t\t\t// progress_callbacks.lock\n\t\t\t\t\ttuples[ 0 ][ 2 ].lock,\n\n\t\t\t\t\t// progress_handlers.lock\n\t\t\t\t\ttuples[ 0 ][ 3 ].lock\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// progress_handlers.fire\n\t\t\t// fulfilled_handlers.fire\n\t\t\t// rejected_handlers.fire\n\t\t\tlist.add( tuple[ 3 ].fire );\n\n\t\t\t// deferred.notify = function() { deferred.notifyWith(...) }\n\t\t\t// deferred.resolve = function() { deferred.resolveWith(...) }\n\t\t\t// deferred.reject = function() { deferred.rejectWith(...) }\n\t\t\tdeferred[ tuple[ 0 ] ] = function() {\n\t\t\t\tdeferred[ tuple[ 0 ] + \"With\" ]( this === deferred ? undefined : this, arguments );\n\t\t\t\treturn this;\n\t\t\t};\n\n\t\t\t// deferred.notifyWith = list.fireWith\n\t\t\t// deferred.resolveWith = list.fireWith\n\t\t\t// deferred.rejectWith = list.fireWith\n\t\t\tdeferred[ tuple[ 0 ] + \"With\" ] = list.fireWith;\n\t\t} );\n\n\t\t// Make the deferred a promise\n\t\tpromise.promise( deferred );\n\n\t\t// Call given func if any\n\t\tif ( func ) {\n\t\t\tfunc.call( deferred, deferred );\n\t\t}\n\n\t\t// All done!\n\t\treturn deferred;\n\t},\n\n\t// Deferred helper\n\twhen: function( singleValue ) {\n\t\tvar\n\n\t\t\t// count of uncompleted subordinates\n\t\t\tremaining = arguments.length,\n\n\t\t\t// count of unprocessed arguments\n\t\t\ti = remaining,\n\n\t\t\t// subordinate fulfillment data\n\t\t\tresolveContexts = Array( i ),\n\t\t\tresolveValues = slice.call( arguments ),\n\n\t\t\t// the master Deferred\n\t\t\tmaster = jQuery.Deferred(),\n\n\t\t\t// subordinate callback factory\n\t\t\tupdateFunc = function( i ) {\n\t\t\t\treturn function( value ) {\n\t\t\t\t\tresolveContexts[ i ] = this;\n\t\t\t\t\tresolveValues[ i ] = arguments.length > 1 ? slice.call( arguments ) : value;\n\t\t\t\t\tif ( !( --remaining ) ) {\n\t\t\t\t\t\tmaster.resolveWith( resolveContexts, resolveValues );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t};\n\n\t\t// Single- and empty arguments are adopted like Promise.resolve\n\t\tif ( remaining <= 1 ) {\n\t\t\tadoptValue( singleValue, master.done( updateFunc( i ) ).resolve, master.reject,\n\t\t\t\t!remaining );\n\n\t\t\t// Use .then() to unwrap secondary thenables (cf. gh-3000)\n\t\t\tif ( master.state() === \"pending\" ||\n\t\t\t\tisFunction( resolveValues[ i ] && resolveValues[ i ].then ) ) {\n\n\t\t\t\treturn master.then();\n\t\t\t}\n\t\t}\n\n\t\t// Multiple arguments are aggregated like Promise.all array elements\n\t\twhile ( i-- ) {\n\t\t\tadoptValue( resolveValues[ i ], updateFunc( i ), master.reject );\n\t\t}\n\n\t\treturn master.promise();\n\t}\n} );\n\n\n// These usually indicate a programmer mistake during development,\n// warn about them ASAP rather than swallowing them by default.\nvar rerrorNames = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;\n\njQuery.Deferred.exceptionHook = function( error, stack ) {\n\n\t// Support: IE 8 - 9 only\n\t// Console exists when dev tools are open, which can happen at any time\n\tif ( window.console && window.console.warn && error && rerrorNames.test( error.name ) ) {\n\t\twindow.console.warn( \"jQuery.Deferred exception: \" + error.message, error.stack, stack );\n\t}\n};\n\n\n\n\njQuery.readyException = function( error ) {\n\twindow.setTimeout( function() {\n\t\tthrow error;\n\t} );\n};\n\n\n\n\n// The deferred used on DOM ready\nvar readyList = jQuery.Deferred();\n\njQuery.fn.ready = function( fn ) {\n\n\treadyList\n\t\t.then( fn )\n\n\t\t// Wrap jQuery.readyException in a function so that the lookup\n\t\t// happens at the time of error handling instead of callback\n\t\t// registration.\n\t\t.catch( function( error ) {\n\t\t\tjQuery.readyException( error );\n\t\t} );\n\n\treturn this;\n};\n\njQuery.extend( {\n\n\t// Is the DOM ready to be used? Set to true once it occurs.\n\tisReady: false,\n\n\t// A counter to track how many items to wait for before\n\t// the ready event fires. See #6781\n\treadyWait: 1,\n\n\t// Handle when the DOM is ready\n\tready: function( wait ) {\n\n\t\t// Abort if there are pending holds or we're already ready\n\t\tif ( wait === true ? --jQuery.readyWait : jQuery.isReady ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Remember that the DOM is ready\n\t\tjQuery.isReady = true;\n\n\t\t// If a normal DOM Ready event fired, decrement, and wait if need be\n\t\tif ( wait !== true && --jQuery.readyWait > 0 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If there are functions bound, to execute\n\t\treadyList.resolveWith( document, [ jQuery ] );\n\t}\n} );\n\njQuery.ready.then = readyList.then;\n\n// The ready event handler and self cleanup method\nfunction completed() {\n\tdocument.removeEventListener( \"DOMContentLoaded\", completed );\n\twindow.removeEventListener( \"load\", completed );\n\tjQuery.ready();\n}\n\n// Catch cases where $(document).ready() is called\n// after the browser event has already occurred.\n// Support: IE <=9 - 10 only\n// Older IE sometimes signals \"interactive\" too soon\nif ( document.readyState === \"complete\" ||\n\t( document.readyState !== \"loading\" && !document.documentElement.doScroll ) ) {\n\n\t// Handle it asynchronously to allow scripts the opportunity to delay ready\n\twindow.setTimeout( jQuery.ready );\n\n} else {\n\n\t// Use the handy event callback\n\tdocument.addEventListener( \"DOMContentLoaded\", completed );\n\n\t// A fallback to window.onload, that will always work\n\twindow.addEventListener( \"load\", completed );\n}\n\n\n\n\n// Multifunctional method to get and set values of a collection\n// The value/s can optionally be executed if it's a function\nvar access = function( elems, fn, key, value, chainable, emptyGet, raw ) {\n\tvar i = 0,\n\t\tlen = elems.length,\n\t\tbulk = key == null;\n\n\t// Sets many values\n\tif ( toType( key ) === \"object\" ) {\n\t\tchainable = true;\n\t\tfor ( i in key ) {\n\t\t\taccess( elems, fn, i, key[ i ], true, emptyGet, raw );\n\t\t}\n\n\t// Sets one value\n\t} else if ( value !== undefined ) {\n\t\tchainable = true;\n\n\t\tif ( !isFunction( value ) ) {\n\t\t\traw = true;\n\t\t}\n\n\t\tif ( bulk ) {\n\n\t\t\t// Bulk operations run against the entire set\n\t\t\tif ( raw ) {\n\t\t\t\tfn.call( elems, value );\n\t\t\t\tfn = null;\n\n\t\t\t// ...except when executing function values\n\t\t\t} else {\n\t\t\t\tbulk = fn;\n\t\t\t\tfn = function( elem, key, value ) {\n\t\t\t\t\treturn bulk.call( jQuery( elem ), value );\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\tif ( fn ) {\n\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\tfn(\n\t\t\t\t\telems[ i ], key, raw ?\n\t\t\t\t\tvalue :\n\t\t\t\t\tvalue.call( elems[ i ], i, fn( elems[ i ], key ) )\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( chainable ) {\n\t\treturn elems;\n\t}\n\n\t// Gets\n\tif ( bulk ) {\n\t\treturn fn.call( elems );\n\t}\n\n\treturn len ? fn( elems[ 0 ], key ) : emptyGet;\n};\n\n\n// Matches dashed string for camelizing\nvar rmsPrefix = /^-ms-/,\n\trdashAlpha = /-([a-z])/g;\n\n// Used by camelCase as callback to replace()\nfunction fcamelCase( all, letter ) {\n\treturn letter.toUpperCase();\n}\n\n// Convert dashed to camelCase; used by the css and data modules\n// Support: IE <=9 - 11, Edge 12 - 15\n// Microsoft forgot to hump their vendor prefix (#9572)\nfunction camelCase( string ) {\n\treturn string.replace( rmsPrefix, \"ms-\" ).replace( rdashAlpha, fcamelCase );\n}\nvar acceptData = function( owner ) {\n\n\t// Accepts only:\n\t// - Node\n\t// - Node.ELEMENT_NODE\n\t// - Node.DOCUMENT_NODE\n\t// - Object\n\t// - Any\n\treturn owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType );\n};\n\n\n\n\nfunction Data() {\n\tthis.expando = jQuery.expando + Data.uid++;\n}\n\nData.uid = 1;\n\nData.prototype = {\n\n\tcache: function( owner ) {\n\n\t\t// Check if the owner object already has a cache\n\t\tvar value = owner[ this.expando ];\n\n\t\t// If not, create one\n\t\tif ( !value ) {\n\t\t\tvalue = {};\n\n\t\t\t// We can accept data for non-element nodes in modern browsers,\n\t\t\t// but we should not, see #8335.\n\t\t\t// Always return an empty object.\n\t\t\tif ( acceptData( owner ) ) {\n\n\t\t\t\t// If it is a node unlikely to be stringify-ed or looped over\n\t\t\t\t// use plain assignment\n\t\t\t\tif ( owner.nodeType ) {\n\t\t\t\t\towner[ this.expando ] = value;\n\n\t\t\t\t// Otherwise secure it in a non-enumerable property\n\t\t\t\t// configurable must be true to allow the property to be\n\t\t\t\t// deleted when data is removed\n\t\t\t\t} else {\n\t\t\t\t\tObject.defineProperty( owner, this.expando, {\n\t\t\t\t\t\tvalue: value,\n\t\t\t\t\t\tconfigurable: true\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn value;\n\t},\n\tset: function( owner, data, value ) {\n\t\tvar prop,\n\t\t\tcache = this.cache( owner );\n\n\t\t// Handle: [ owner, key, value ] args\n\t\t// Always use camelCase key (gh-2257)\n\t\tif ( typeof data === \"string\" ) {\n\t\t\tcache[ camelCase( data ) ] = value;\n\n\t\t// Handle: [ owner, { properties } ] args\n\t\t} else {\n\n\t\t\t// Copy the properties one-by-one to the cache object\n\t\t\tfor ( prop in data ) {\n\t\t\t\tcache[ camelCase( prop ) ] = data[ prop ];\n\t\t\t}\n\t\t}\n\t\treturn cache;\n\t},\n\tget: function( owner, key ) {\n\t\treturn key === undefined ?\n\t\t\tthis.cache( owner ) :\n\n\t\t\t// Always use camelCase key (gh-2257)\n\t\t\towner[ this.expando ] && owner[ this.expando ][ camelCase( key ) ];\n\t},\n\taccess: function( owner, key, value ) {\n\n\t\t// In cases where either:\n\t\t//\n\t\t// 1. No key was specified\n\t\t// 2. A string key was specified, but no value provided\n\t\t//\n\t\t// Take the \"read\" path and allow the get method to determine\n\t\t// which value to return, respectively either:\n\t\t//\n\t\t// 1. The entire cache object\n\t\t// 2. The data stored at the key\n\t\t//\n\t\tif ( key === undefined ||\n\t\t\t\t( ( key && typeof key === \"string\" ) && value === undefined ) ) {\n\n\t\t\treturn this.get( owner, key );\n\t\t}\n\n\t\t// When the key is not a string, or both a key and value\n\t\t// are specified, set or extend (existing objects) with either:\n\t\t//\n\t\t// 1. An object of properties\n\t\t// 2. A key and value\n\t\t//\n\t\tthis.set( owner, key, value );\n\n\t\t// Since the \"set\" path can have two possible entry points\n\t\t// return the expected data based on which path was taken[*]\n\t\treturn value !== undefined ? value : key;\n\t},\n\tremove: function( owner, key ) {\n\t\tvar i,\n\t\t\tcache = owner[ this.expando ];\n\n\t\tif ( cache === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( key !== undefined ) {\n\n\t\t\t// Support array or space separated string of keys\n\t\t\tif ( Array.isArray( key ) ) {\n\n\t\t\t\t// If key is an array of keys...\n\t\t\t\t// We always set camelCase keys, so remove that.\n\t\t\t\tkey = key.map( camelCase );\n\t\t\t} else {\n\t\t\t\tkey = camelCase( key );\n\n\t\t\t\t// If a key with the spaces exists, use it.\n\t\t\t\t// Otherwise, create an array by matching non-whitespace\n\t\t\t\tkey = key in cache ?\n\t\t\t\t\t[ key ] :\n\t\t\t\t\t( key.match( rnothtmlwhite ) || [] );\n\t\t\t}\n\n\t\t\ti = key.length;\n\n\t\t\twhile ( i-- ) {\n\t\t\t\tdelete cache[ key[ i ] ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove the expando if there's no more data\n\t\tif ( key === undefined || jQuery.isEmptyObject( cache ) ) {\n\n\t\t\t// Support: Chrome <=35 - 45\n\t\t\t// Webkit & Blink performance suffers when deleting properties\n\t\t\t// from DOM nodes, so set to undefined instead\n\t\t\t// https://bugs.chromium.org/p/chromium/issues/detail?id=378607 (bug restricted)\n\t\t\tif ( owner.nodeType ) {\n\t\t\t\towner[ this.expando ] = undefined;\n\t\t\t} else {\n\t\t\t\tdelete owner[ this.expando ];\n\t\t\t}\n\t\t}\n\t},\n\thasData: function( owner ) {\n\t\tvar cache = owner[ this.expando ];\n\t\treturn cache !== undefined && !jQuery.isEmptyObject( cache );\n\t}\n};\nvar dataPriv = new Data();\n\nvar dataUser = new Data();\n\n\n\n//\tImplementation Summary\n//\n//\t1. Enforce API surface and semantic compatibility with 1.9.x branch\n//\t2. Improve the module's maintainability by reducing the storage\n//\t\tpaths to a single mechanism.\n//\t3. Use the same single mechanism to support \"private\" and \"user\" data.\n//\t4. _Never_ expose \"private\" data to user code (TODO: Drop _data, _removeData)\n//\t5. Avoid exposing implementation details on user objects (eg. expando properties)\n//\t6. Provide a clear path for implementation upgrade to WeakMap in 2014\n\nvar rbrace = /^(?:\\{[\\w\\W]*\\}|\\[[\\w\\W]*\\])$/,\n\trmultiDash = /[A-Z]/g;\n\nfunction getData( data ) {\n\tif ( data === \"true\" ) {\n\t\treturn true;\n\t}\n\n\tif ( data === \"false\" ) {\n\t\treturn false;\n\t}\n\n\tif ( data === \"null\" ) {\n\t\treturn null;\n\t}\n\n\t// Only convert to a number if it doesn't change the string\n\tif ( data === +data + \"\" ) {\n\t\treturn +data;\n\t}\n\n\tif ( rbrace.test( data ) ) {\n\t\treturn JSON.parse( data );\n\t}\n\n\treturn data;\n}\n\nfunction dataAttr( elem, key, data ) {\n\tvar name;\n\n\t// If nothing was found internally, try to fetch any\n\t// data from the HTML5 data-* attribute\n\tif ( data === undefined && elem.nodeType === 1 ) {\n\t\tname = \"data-\" + key.replace( rmultiDash, \"-$&\" ).toLowerCase();\n\t\tdata = elem.getAttribute( name );\n\n\t\tif ( typeof data === \"string\" ) {\n\t\t\ttry {\n\t\t\t\tdata = getData( data );\n\t\t\t} catch ( e ) {}\n\n\t\t\t// Make sure we set the data so it isn't changed later\n\t\t\tdataUser.set( elem, key, data );\n\t\t} else {\n\t\t\tdata = undefined;\n\t\t}\n\t}\n\treturn data;\n}\n\njQuery.extend( {\n\thasData: function( elem ) {\n\t\treturn dataUser.hasData( elem ) || dataPriv.hasData( elem );\n\t},\n\n\tdata: function( elem, name, data ) {\n\t\treturn dataUser.access( elem, name, data );\n\t},\n\n\tremoveData: function( elem, name ) {\n\t\tdataUser.remove( elem, name );\n\t},\n\n\t// TODO: Now that all calls to _data and _removeData have been replaced\n\t// with direct calls to dataPriv methods, these can be deprecated.\n\t_data: function( elem, name, data ) {\n\t\treturn dataPriv.access( elem, name, data );\n\t},\n\n\t_removeData: function( elem, name ) {\n\t\tdataPriv.remove( elem, name );\n\t}\n} );\n\njQuery.fn.extend( {\n\tdata: function( key, value ) {\n\t\tvar i, name, data,\n\t\t\telem = this[ 0 ],\n\t\t\tattrs = elem && elem.attributes;\n\n\t\t// Gets all values\n\t\tif ( key === undefined ) {\n\t\t\tif ( this.length ) {\n\t\t\t\tdata = dataUser.get( elem );\n\n\t\t\t\tif ( elem.nodeType === 1 && !dataPriv.get( elem, \"hasDataAttrs\" ) ) {\n\t\t\t\t\ti = attrs.length;\n\t\t\t\t\twhile ( i-- ) {\n\n\t\t\t\t\t\t// Support: IE 11 only\n\t\t\t\t\t\t// The attrs elements can be null (#14894)\n\t\t\t\t\t\tif ( attrs[ i ] ) {\n\t\t\t\t\t\t\tname = attrs[ i ].name;\n\t\t\t\t\t\t\tif ( name.indexOf( \"data-\" ) === 0 ) {\n\t\t\t\t\t\t\t\tname = camelCase( name.slice( 5 ) );\n\t\t\t\t\t\t\t\tdataAttr( elem, name, data[ name ] );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdataPriv.set( elem, \"hasDataAttrs\", true );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn data;\n\t\t}\n\n\t\t// Sets multiple values\n\t\tif ( typeof key === \"object\" ) {\n\t\t\treturn this.each( function() {\n\t\t\t\tdataUser.set( this, key );\n\t\t\t} );\n\t\t}\n\n\t\treturn access( this, function( value ) {\n\t\t\tvar data;\n\n\t\t\t// The calling jQuery object (element matches) is not empty\n\t\t\t// (and therefore has an element appears at this[ 0 ]) and the\n\t\t\t// `value` parameter was not undefined. An empty jQuery object\n\t\t\t// will result in `undefined` for elem = this[ 0 ] which will\n\t\t\t// throw an exception if an attempt to read a data cache is made.\n\t\t\tif ( elem && value === undefined ) {\n\n\t\t\t\t// Attempt to get data from the cache\n\t\t\t\t// The key will always be camelCased in Data\n\t\t\t\tdata = dataUser.get( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// Attempt to \"discover\" the data in\n\t\t\t\t// HTML5 custom data-* attrs\n\t\t\t\tdata = dataAttr( elem, key );\n\t\t\t\tif ( data !== undefined ) {\n\t\t\t\t\treturn data;\n\t\t\t\t}\n\n\t\t\t\t// We tried really hard, but the data doesn't exist.\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Set the data...\n\t\t\tthis.each( function() {\n\n\t\t\t\t// We always store the camelCased key\n\t\t\t\tdataUser.set( this, key, value );\n\t\t\t} );\n\t\t}, null, value, arguments.length > 1, null, true );\n\t},\n\n\tremoveData: function( key ) {\n\t\treturn this.each( function() {\n\t\t\tdataUser.remove( this, key );\n\t\t} );\n\t}\n} );\n\n\njQuery.extend( {\n\tqueue: function( elem, type, data ) {\n\t\tvar queue;\n\n\t\tif ( elem ) {\n\t\t\ttype = ( type || \"fx\" ) + \"queue\";\n\t\t\tqueue = dataPriv.get( elem, type );\n\n\t\t\t// Speed up dequeue by getting out quickly if this is just a lookup\n\t\t\tif ( data ) {\n\t\t\t\tif ( !queue || Array.isArray( data ) ) {\n\t\t\t\t\tqueue = dataPriv.access( elem, type, jQuery.makeArray( data ) );\n\t\t\t\t} else {\n\t\t\t\t\tqueue.push( data );\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn queue || [];\n\t\t}\n\t},\n\n\tdequeue: function( elem, type ) {\n\t\ttype = type || \"fx\";\n\n\t\tvar queue = jQuery.queue( elem, type ),\n\t\t\tstartLength = queue.length,\n\t\t\tfn = queue.shift(),\n\t\t\thooks = jQuery._queueHooks( elem, type ),\n\t\t\tnext = function() {\n\t\t\t\tjQuery.dequeue( elem, type );\n\t\t\t};\n\n\t\t// If the fx queue is dequeued, always remove the progress sentinel\n\t\tif ( fn === \"inprogress\" ) {\n\t\t\tfn = queue.shift();\n\t\t\tstartLength--;\n\t\t}\n\n\t\tif ( fn ) {\n\n\t\t\t// Add a progress sentinel to prevent the fx queue from being\n\t\t\t// automatically dequeued\n\t\t\tif ( type === \"fx\" ) {\n\t\t\t\tqueue.unshift( \"inprogress\" );\n\t\t\t}\n\n\t\t\t// Clear up the last queue stop function\n\t\t\tdelete hooks.stop;\n\t\t\tfn.call( elem, next, hooks );\n\t\t}\n\n\t\tif ( !startLength && hooks ) {\n\t\t\thooks.empty.fire();\n\t\t}\n\t},\n\n\t// Not public - generate a queueHooks object, or return the current one\n\t_queueHooks: function( elem, type ) {\n\t\tvar key = type + \"queueHooks\";\n\t\treturn dataPriv.get( elem, key ) || dataPriv.access( elem, key, {\n\t\t\tempty: jQuery.Callbacks( \"once memory\" ).add( function() {\n\t\t\t\tdataPriv.remove( elem, [ type + \"queue\", key ] );\n\t\t\t} )\n\t\t} );\n\t}\n} );\n\njQuery.fn.extend( {\n\tqueue: function( type, data ) {\n\t\tvar setter = 2;\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tdata = type;\n\t\t\ttype = \"fx\";\n\t\t\tsetter--;\n\t\t}\n\n\t\tif ( arguments.length < setter ) {\n\t\t\treturn jQuery.queue( this[ 0 ], type );\n\t\t}\n\n\t\treturn data === undefined ?\n\t\t\tthis :\n\t\t\tthis.each( function() {\n\t\t\t\tvar queue = jQuery.queue( this, type, data );\n\n\t\t\t\t// Ensure a hooks for this queue\n\t\t\t\tjQuery._queueHooks( this, type );\n\n\t\t\t\tif ( type === \"fx\" && queue[ 0 ] !== \"inprogress\" ) {\n\t\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t\t}\n\t\t\t} );\n\t},\n\tdequeue: function( type ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.dequeue( this, type );\n\t\t} );\n\t},\n\tclearQueue: function( type ) {\n\t\treturn this.queue( type || \"fx\", [] );\n\t},\n\n\t// Get a promise resolved when queues of a certain type\n\t// are emptied (fx is the type by default)\n\tpromise: function( type, obj ) {\n\t\tvar tmp,\n\t\t\tcount = 1,\n\t\t\tdefer = jQuery.Deferred(),\n\t\t\telements = this,\n\t\t\ti = this.length,\n\t\t\tresolve = function() {\n\t\t\t\tif ( !( --count ) ) {\n\t\t\t\t\tdefer.resolveWith( elements, [ elements ] );\n\t\t\t\t}\n\t\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tobj = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\ttype = type || \"fx\";\n\n\t\twhile ( i-- ) {\n\t\t\ttmp = dataPriv.get( elements[ i ], type + \"queueHooks\" );\n\t\t\tif ( tmp && tmp.empty ) {\n\t\t\t\tcount++;\n\t\t\t\ttmp.empty.add( resolve );\n\t\t\t}\n\t\t}\n\t\tresolve();\n\t\treturn defer.promise( obj );\n\t}\n} );\nvar pnum = ( /[+-]?(?:\\d*\\.|)\\d+(?:[eE][+-]?\\d+|)/ ).source;\n\nvar rcssNum = new RegExp( \"^(?:([+-])=|)(\" + pnum + \")([a-z%]*)$\", \"i\" );\n\n\nvar cssExpand = [ \"Top\", \"Right\", \"Bottom\", \"Left\" ];\n\nvar isHiddenWithinTree = function( elem, el ) {\n\n\t\t// isHiddenWithinTree might be called from jQuery#filter function;\n\t\t// in that case, element will be second argument\n\t\telem = el || elem;\n\n\t\t// Inline style trumps all\n\t\treturn elem.style.display === \"none\" ||\n\t\t\telem.style.display === \"\" &&\n\n\t\t\t// Otherwise, check computed style\n\t\t\t// Support: Firefox <=43 - 45\n\t\t\t// Disconnected elements can have computed display: none, so first confirm that elem is\n\t\t\t// in the document.\n\t\t\tjQuery.contains( elem.ownerDocument, elem ) &&\n\n\t\t\tjQuery.css( elem, \"display\" ) === \"none\";\n\t};\n\nvar swap = function( elem, options, callback, args ) {\n\tvar ret, name,\n\t\told = {};\n\n\t// Remember the old values, and insert the new ones\n\tfor ( name in options ) {\n\t\told[ name ] = elem.style[ name ];\n\t\telem.style[ name ] = options[ name ];\n\t}\n\n\tret = callback.apply( elem, args || [] );\n\n\t// Revert the old values\n\tfor ( name in options ) {\n\t\telem.style[ name ] = old[ name ];\n\t}\n\n\treturn ret;\n};\n\n\n\n\nfunction adjustCSS( elem, prop, valueParts, tween ) {\n\tvar adjusted, scale,\n\t\tmaxIterations = 20,\n\t\tcurrentValue = tween ?\n\t\t\tfunction() {\n\t\t\t\treturn tween.cur();\n\t\t\t} :\n\t\t\tfunction() {\n\t\t\t\treturn jQuery.css( elem, prop, \"\" );\n\t\t\t},\n\t\tinitial = currentValue(),\n\t\tunit = valueParts && valueParts[ 3 ] || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" ),\n\n\t\t// Starting value computation is required for potential unit mismatches\n\t\tinitialInUnit = ( jQuery.cssNumber[ prop ] || unit !== \"px\" && +initial ) &&\n\t\t\trcssNum.exec( jQuery.css( elem, prop ) );\n\n\tif ( initialInUnit && initialInUnit[ 3 ] !== unit ) {\n\n\t\t// Support: Firefox <=54\n\t\t// Halve the iteration target value to prevent interference from CSS upper bounds (gh-2144)\n\t\tinitial = initial / 2;\n\n\t\t// Trust units reported by jQuery.css\n\t\tunit = unit || initialInUnit[ 3 ];\n\n\t\t// Iteratively approximate from a nonzero starting point\n\t\tinitialInUnit = +initial || 1;\n\n\t\twhile ( maxIterations-- ) {\n\n\t\t\t// Evaluate and update our best guess (doubling guesses that zero out).\n\t\t\t// Finish if the scale equals or crosses 1 (making the old*new product non-positive).\n\t\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\t\t\tif ( ( 1 - scale ) * ( 1 - ( scale = currentValue() / initial || 0.5 ) ) <= 0 ) {\n\t\t\t\tmaxIterations = 0;\n\t\t\t}\n\t\t\tinitialInUnit = initialInUnit / scale;\n\n\t\t}\n\n\t\tinitialInUnit = initialInUnit * 2;\n\t\tjQuery.style( elem, prop, initialInUnit + unit );\n\n\t\t// Make sure we update the tween properties later on\n\t\tvalueParts = valueParts || [];\n\t}\n\n\tif ( valueParts ) {\n\t\tinitialInUnit = +initialInUnit || +initial || 0;\n\n\t\t// Apply relative offset (+=/-=) if specified\n\t\tadjusted = valueParts[ 1 ] ?\n\t\t\tinitialInUnit + ( valueParts[ 1 ] + 1 ) * valueParts[ 2 ] :\n\t\t\t+valueParts[ 2 ];\n\t\tif ( tween ) {\n\t\t\ttween.unit = unit;\n\t\t\ttween.start = initialInUnit;\n\t\t\ttween.end = adjusted;\n\t\t}\n\t}\n\treturn adjusted;\n}\n\n\nvar defaultDisplayMap = {};\n\nfunction getDefaultDisplay( elem ) {\n\tvar temp,\n\t\tdoc = elem.ownerDocument,\n\t\tnodeName = elem.nodeName,\n\t\tdisplay = defaultDisplayMap[ nodeName ];\n\n\tif ( display ) {\n\t\treturn display;\n\t}\n\n\ttemp = doc.body.appendChild( doc.createElement( nodeName ) );\n\tdisplay = jQuery.css( temp, \"display\" );\n\n\ttemp.parentNode.removeChild( temp );\n\n\tif ( display === \"none\" ) {\n\t\tdisplay = \"block\";\n\t}\n\tdefaultDisplayMap[ nodeName ] = display;\n\n\treturn display;\n}\n\nfunction showHide( elements, show ) {\n\tvar display, elem,\n\t\tvalues = [],\n\t\tindex = 0,\n\t\tlength = elements.length;\n\n\t// Determine new display value for elements that need to change\n\tfor ( ; index < length; index++ ) {\n\t\telem = elements[ index ];\n\t\tif ( !elem.style ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tdisplay = elem.style.display;\n\t\tif ( show ) {\n\n\t\t\t// Since we force visibility upon cascade-hidden elements, an immediate (and slow)\n\t\t\t// check is required in this first loop unless we have a nonempty display value (either\n\t\t\t// inline or about-to-be-restored)\n\t\t\tif ( display === \"none\" ) {\n\t\t\t\tvalues[ index ] = dataPriv.get( elem, \"display\" ) || null;\n\t\t\t\tif ( !values[ index ] ) {\n\t\t\t\t\telem.style.display = \"\";\n\t\t\t\t}\n\t\t\t}\n\t\t\tif ( elem.style.display === \"\" && isHiddenWithinTree( elem ) ) {\n\t\t\t\tvalues[ index ] = getDefaultDisplay( elem );\n\t\t\t}\n\t\t} else {\n\t\t\tif ( display !== \"none\" ) {\n\t\t\t\tvalues[ index ] = \"none\";\n\n\t\t\t\t// Remember what we're overwriting\n\t\t\t\tdataPriv.set( elem, \"display\", display );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Set the display of the elements in a second loop to avoid constant reflow\n\tfor ( index = 0; index < length; index++ ) {\n\t\tif ( values[ index ] != null ) {\n\t\t\telements[ index ].style.display = values[ index ];\n\t\t}\n\t}\n\n\treturn elements;\n}\n\njQuery.fn.extend( {\n\tshow: function() {\n\t\treturn showHide( this, true );\n\t},\n\thide: function() {\n\t\treturn showHide( this );\n\t},\n\ttoggle: function( state ) {\n\t\tif ( typeof state === \"boolean\" ) {\n\t\t\treturn state ? this.show() : this.hide();\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tif ( isHiddenWithinTree( this ) ) {\n\t\t\t\tjQuery( this ).show();\n\t\t\t} else {\n\t\t\t\tjQuery( this ).hide();\n\t\t\t}\n\t\t} );\n\t}\n} );\nvar rcheckableType = ( /^(?:checkbox|radio)$/i );\n\nvar rtagName = ( /<([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]+)/i );\n\nvar rscriptType = ( /^$|^module$|\\/(?:java|ecma)script/i );\n\n\n\n// We have to close these tags to support XHTML (#13200)\nvar wrapMap = {\n\n\t// Support: IE <=9 only\n\toption: [ 1, \"<select multiple='multiple'>\", \"</select>\" ],\n\n\t// XHTML parsers do not magically insert elements in the\n\t// same way that tag soup parsers do. So we cannot shorten\n\t// this by omitting <tbody> or other required elements.\n\tthead: [ 1, \"<table>\", \"</table>\" ],\n\tcol: [ 2, \"<table><colgroup>\", \"</colgroup></table>\" ],\n\ttr: [ 2, \"<table><tbody>\", \"</tbody></table>\" ],\n\ttd: [ 3, \"<table><tbody><tr>\", \"</tr></tbody></table>\" ],\n\n\t_default: [ 0, \"\", \"\" ]\n};\n\n// Support: IE <=9 only\nwrapMap.optgroup = wrapMap.option;\n\nwrapMap.tbody = wrapMap.tfoot = wrapMap.colgroup = wrapMap.caption = wrapMap.thead;\nwrapMap.th = wrapMap.td;\n\n\nfunction getAll( context, tag ) {\n\n\t// Support: IE <=9 - 11 only\n\t// Use typeof to avoid zero-argument method invocation on host objects (#15151)\n\tvar ret;\n\n\tif ( typeof context.getElementsByTagName !== \"undefined\" ) {\n\t\tret = context.getElementsByTagName( tag || \"*\" );\n\n\t} else if ( typeof context.querySelectorAll !== \"undefined\" ) {\n\t\tret = context.querySelectorAll( tag || \"*\" );\n\n\t} else {\n\t\tret = [];\n\t}\n\n\tif ( tag === undefined || tag && nodeName( context, tag ) ) {\n\t\treturn jQuery.merge( [ context ], ret );\n\t}\n\n\treturn ret;\n}\n\n\n// Mark scripts as having already been evaluated\nfunction setGlobalEval( elems, refElements ) {\n\tvar i = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\tdataPriv.set(\n\t\t\telems[ i ],\n\t\t\t\"globalEval\",\n\t\t\t!refElements || dataPriv.get( refElements[ i ], \"globalEval\" )\n\t\t);\n\t}\n}\n\n\nvar rhtml = /<|&#?\\w+;/;\n\nfunction buildFragment( elems, context, scripts, selection, ignored ) {\n\tvar elem, tmp, tag, wrap, contains, j,\n\t\tfragment = context.createDocumentFragment(),\n\t\tnodes = [],\n\t\ti = 0,\n\t\tl = elems.length;\n\n\tfor ( ; i < l; i++ ) {\n\t\telem = elems[ i ];\n\n\t\tif ( elem || elem === 0 ) {\n\n\t\t\t// Add nodes directly\n\t\t\tif ( toType( elem ) === \"object\" ) {\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, elem.nodeType ? [ elem ] : elem );\n\n\t\t\t// Convert non-html into a text node\n\t\t\t} else if ( !rhtml.test( elem ) ) {\n\t\t\t\tnodes.push( context.createTextNode( elem ) );\n\n\t\t\t// Convert html into DOM nodes\n\t\t\t} else {\n\t\t\t\ttmp = tmp || fragment.appendChild( context.createElement( \"div\" ) );\n\n\t\t\t\t// Deserialize a standard representation\n\t\t\t\ttag = ( rtagName.exec( elem ) || [ \"\", \"\" ] )[ 1 ].toLowerCase();\n\t\t\t\twrap = wrapMap[ tag ] || wrapMap._default;\n\t\t\t\ttmp.innerHTML = wrap[ 1 ] + jQuery.htmlPrefilter( elem ) + wrap[ 2 ];\n\n\t\t\t\t// Descend through wrappers to the right content\n\t\t\t\tj = wrap[ 0 ];\n\t\t\t\twhile ( j-- ) {\n\t\t\t\t\ttmp = tmp.lastChild;\n\t\t\t\t}\n\n\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\tjQuery.merge( nodes, tmp.childNodes );\n\n\t\t\t\t// Remember the top-level container\n\t\t\t\ttmp = fragment.firstChild;\n\n\t\t\t\t// Ensure the created nodes are orphaned (#12392)\n\t\t\t\ttmp.textContent = \"\";\n\t\t\t}\n\t\t}\n\t}\n\n\t// Remove wrapper from fragment\n\tfragment.textContent = \"\";\n\n\ti = 0;\n\twhile ( ( elem = nodes[ i++ ] ) ) {\n\n\t\t// Skip elements already in the context collection (trac-4087)\n\t\tif ( selection && jQuery.inArray( elem, selection ) > -1 ) {\n\t\t\tif ( ignored ) {\n\t\t\t\tignored.push( elem );\n\t\t\t}\n\t\t\tcontinue;\n\t\t}\n\n\t\tcontains = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Append to fragment\n\t\ttmp = getAll( fragment.appendChild( elem ), \"script\" );\n\n\t\t// Preserve script evaluation history\n\t\tif ( contains ) {\n\t\t\tsetGlobalEval( tmp );\n\t\t}\n\n\t\t// Capture executables\n\t\tif ( scripts ) {\n\t\t\tj = 0;\n\t\t\twhile ( ( elem = tmp[ j++ ] ) ) {\n\t\t\t\tif ( rscriptType.test( elem.type || \"\" ) ) {\n\t\t\t\t\tscripts.push( elem );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn fragment;\n}\n\n\n( function() {\n\tvar fragment = document.createDocumentFragment(),\n\t\tdiv = fragment.appendChild( document.createElement( \"div\" ) ),\n\t\tinput = document.createElement( \"input\" );\n\n\t// Support: Android 4.0 - 4.3 only\n\t// Check state lost if the name is set (#11217)\n\t// Support: Windows Web Apps (WWA)\n\t// `name` and `type` must use .setAttribute for WWA (#14901)\n\tinput.setAttribute( \"type\", \"radio\" );\n\tinput.setAttribute( \"checked\", \"checked\" );\n\tinput.setAttribute( \"name\", \"t\" );\n\n\tdiv.appendChild( input );\n\n\t// Support: Android <=4.1 only\n\t// Older WebKit doesn't clone checked state correctly in fragments\n\tsupport.checkClone = div.cloneNode( true ).cloneNode( true ).lastChild.checked;\n\n\t// Support: IE <=11 only\n\t// Make sure textarea (and checkbox) defaultValue is properly cloned\n\tdiv.innerHTML = \"<textarea>x</textarea>\";\n\tsupport.noCloneChecked = !!div.cloneNode( true ).lastChild.defaultValue;\n} )();\nvar documentElement = document.documentElement;\n\n\n\nvar\n\trkeyEvent = /^key/,\n\trmouseEvent = /^(?:mouse|pointer|contextmenu|drag|drop)|click/,\n\trtypenamespace = /^([^.]*)(?:\\.(.+)|)/;\n\nfunction returnTrue() {\n\treturn true;\n}\n\nfunction returnFalse() {\n\treturn false;\n}\n\n// Support: IE <=9 only\n// See #13393 for more info\nfunction safeActiveElement() {\n\ttry {\n\t\treturn document.activeElement;\n\t} catch ( err ) { }\n}\n\nfunction on( elem, types, selector, data, fn, one ) {\n\tvar origFn, type;\n\n\t// Types can be a map of types/handlers\n\tif ( typeof types === \"object\" ) {\n\n\t\t// ( types-Object, selector, data )\n\t\tif ( typeof selector !== \"string\" ) {\n\n\t\t\t// ( types-Object, data )\n\t\t\tdata = data || selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tfor ( type in types ) {\n\t\t\ton( elem, type, selector, data, types[ type ], one );\n\t\t}\n\t\treturn elem;\n\t}\n\n\tif ( data == null && fn == null ) {\n\n\t\t// ( types, fn )\n\t\tfn = selector;\n\t\tdata = selector = undefined;\n\t} else if ( fn == null ) {\n\t\tif ( typeof selector === \"string\" ) {\n\n\t\t\t// ( types, selector, fn )\n\t\t\tfn = data;\n\t\t\tdata = undefined;\n\t\t} else {\n\n\t\t\t// ( types, data, fn )\n\t\t\tfn = data;\n\t\t\tdata = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t}\n\tif ( fn === false ) {\n\t\tfn = returnFalse;\n\t} else if ( !fn ) {\n\t\treturn elem;\n\t}\n\n\tif ( one === 1 ) {\n\t\torigFn = fn;\n\t\tfn = function( event ) {\n\n\t\t\t// Can use an empty set, since event contains the info\n\t\t\tjQuery().off( event );\n\t\t\treturn origFn.apply( this, arguments );\n\t\t};\n\n\t\t// Use same guid so caller can remove using origFn\n\t\tfn.guid = origFn.guid || ( origFn.guid = jQuery.guid++ );\n\t}\n\treturn elem.each( function() {\n\t\tjQuery.event.add( this, types, fn, data, selector );\n\t} );\n}\n\n/*\n * Helper functions for managing events -- not part of the public interface.\n * Props to Dean Edwards' addEvent library for many of the ideas.\n */\njQuery.event = {\n\n\tglobal: {},\n\n\tadd: function( elem, types, handler, data, selector ) {\n\n\t\tvar handleObjIn, eventHandle, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.get( elem );\n\n\t\t// Don't attach events to noData or text/comment nodes (but allow plain objects)\n\t\tif ( !elemData ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Caller can pass in an object of custom data in lieu of the handler\n\t\tif ( handler.handler ) {\n\t\t\thandleObjIn = handler;\n\t\t\thandler = handleObjIn.handler;\n\t\t\tselector = handleObjIn.selector;\n\t\t}\n\n\t\t// Ensure that invalid selectors throw exceptions at attach time\n\t\t// Evaluate against documentElement in case elem is a non-element node (e.g., document)\n\t\tif ( selector ) {\n\t\t\tjQuery.find.matchesSelector( documentElement, selector );\n\t\t}\n\n\t\t// Make sure that the handler has a unique ID, used to find/remove it later\n\t\tif ( !handler.guid ) {\n\t\t\thandler.guid = jQuery.guid++;\n\t\t}\n\n\t\t// Init the element's event structure and main handler, if this is the first\n\t\tif ( !( events = elemData.events ) ) {\n\t\t\tevents = elemData.events = {};\n\t\t}\n\t\tif ( !( eventHandle = elemData.handle ) ) {\n\t\t\teventHandle = elemData.handle = function( e ) {\n\n\t\t\t\t// Discard the second event of a jQuery.event.trigger() and\n\t\t\t\t// when an event is called after a page has unloaded\n\t\t\t\treturn typeof jQuery !== \"undefined\" && jQuery.event.triggered !== e.type ?\n\t\t\t\t\tjQuery.event.dispatch.apply( elem, arguments ) : undefined;\n\t\t\t};\n\t\t}\n\n\t\t// Handle multiple events separated by a space\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// There *must* be a type, no attaching namespace-only handlers\n\t\t\tif ( !type ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If event changes its type, use the special event handlers for the changed type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// If selector defined, determine special event api type, otherwise given type\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\n\t\t\t// Update special based on newly reset type\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\n\t\t\t// handleObj is passed to all event handlers\n\t\t\thandleObj = jQuery.extend( {\n\t\t\t\ttype: type,\n\t\t\t\torigType: origType,\n\t\t\t\tdata: data,\n\t\t\t\thandler: handler,\n\t\t\t\tguid: handler.guid,\n\t\t\t\tselector: selector,\n\t\t\t\tneedsContext: selector && jQuery.expr.match.needsContext.test( selector ),\n\t\t\t\tnamespace: namespaces.join( \".\" )\n\t\t\t}, handleObjIn );\n\n\t\t\t// Init the event handler queue if we're the first\n\t\t\tif ( !( handlers = events[ type ] ) ) {\n\t\t\t\thandlers = events[ type ] = [];\n\t\t\t\thandlers.delegateCount = 0;\n\n\t\t\t\t// Only use addEventListener if the special events handler returns false\n\t\t\t\tif ( !special.setup ||\n\t\t\t\t\tspecial.setup.call( elem, data, namespaces, eventHandle ) === false ) {\n\n\t\t\t\t\tif ( elem.addEventListener ) {\n\t\t\t\t\t\telem.addEventListener( type, eventHandle );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( special.add ) {\n\t\t\t\tspecial.add.call( elem, handleObj );\n\n\t\t\t\tif ( !handleObj.handler.guid ) {\n\t\t\t\t\thandleObj.handler.guid = handler.guid;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Add to the element's handler list, delegates in front\n\t\t\tif ( selector ) {\n\t\t\t\thandlers.splice( handlers.delegateCount++, 0, handleObj );\n\t\t\t} else {\n\t\t\t\thandlers.push( handleObj );\n\t\t\t}\n\n\t\t\t// Keep track of which events have ever been used, for event optimization\n\t\t\tjQuery.event.global[ type ] = true;\n\t\t}\n\n\t},\n\n\t// Detach an event or set of events from an element\n\tremove: function( elem, types, handler, selector, mappedTypes ) {\n\n\t\tvar j, origCount, tmp,\n\t\t\tevents, t, handleObj,\n\t\t\tspecial, handlers, type, namespaces, origType,\n\t\t\telemData = dataPriv.hasData( elem ) && dataPriv.get( elem );\n\n\t\tif ( !elemData || !( events = elemData.events ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Once for each type.namespace in types; type may be omitted\n\t\ttypes = ( types || \"\" ).match( rnothtmlwhite ) || [ \"\" ];\n\t\tt = types.length;\n\t\twhile ( t-- ) {\n\t\t\ttmp = rtypenamespace.exec( types[ t ] ) || [];\n\t\t\ttype = origType = tmp[ 1 ];\n\t\t\tnamespaces = ( tmp[ 2 ] || \"\" ).split( \".\" ).sort();\n\n\t\t\t// Unbind all events (on this namespace, if provided) for the element\n\t\t\tif ( !type ) {\n\t\t\t\tfor ( type in events ) {\n\t\t\t\t\tjQuery.event.remove( elem, type + types[ t ], handler, selector, true );\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tspecial = jQuery.event.special[ type ] || {};\n\t\t\ttype = ( selector ? special.delegateType : special.bindType ) || type;\n\t\t\thandlers = events[ type ] || [];\n\t\t\ttmp = tmp[ 2 ] &&\n\t\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" );\n\n\t\t\t// Remove matching events\n\t\t\torigCount = j = handlers.length;\n\t\t\twhile ( j-- ) {\n\t\t\t\thandleObj = handlers[ j ];\n\n\t\t\t\tif ( ( mappedTypes || origType === handleObj.origType ) &&\n\t\t\t\t\t( !handler || handler.guid === handleObj.guid ) &&\n\t\t\t\t\t( !tmp || tmp.test( handleObj.namespace ) ) &&\n\t\t\t\t\t( !selector || selector === handleObj.selector ||\n\t\t\t\t\t\tselector === \"**\" && handleObj.selector ) ) {\n\t\t\t\t\thandlers.splice( j, 1 );\n\n\t\t\t\t\tif ( handleObj.selector ) {\n\t\t\t\t\t\thandlers.delegateCount--;\n\t\t\t\t\t}\n\t\t\t\t\tif ( special.remove ) {\n\t\t\t\t\t\tspecial.remove.call( elem, handleObj );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Remove generic event handler if we removed something and no more handlers exist\n\t\t\t// (avoids potential for endless recursion during removal of special event handlers)\n\t\t\tif ( origCount && !handlers.length ) {\n\t\t\t\tif ( !special.teardown ||\n\t\t\t\t\tspecial.teardown.call( elem, namespaces, elemData.handle ) === false ) {\n\n\t\t\t\t\tjQuery.removeEvent( elem, type, elemData.handle );\n\t\t\t\t}\n\n\t\t\t\tdelete events[ type ];\n\t\t\t}\n\t\t}\n\n\t\t// Remove data and the expando if it's no longer used\n\t\tif ( jQuery.isEmptyObject( events ) ) {\n\t\t\tdataPriv.remove( elem, \"handle events\" );\n\t\t}\n\t},\n\n\tdispatch: function( nativeEvent ) {\n\n\t\t// Make a writable jQuery.Event from the native event object\n\t\tvar event = jQuery.event.fix( nativeEvent );\n\n\t\tvar i, j, ret, matched, handleObj, handlerQueue,\n\t\t\targs = new Array( arguments.length ),\n\t\t\thandlers = ( dataPriv.get( this, \"events\" ) || {} )[ event.type ] || [],\n\t\t\tspecial = jQuery.event.special[ event.type ] || {};\n\n\t\t// Use the fix-ed jQuery.Event rather than the (read-only) native event\n\t\targs[ 0 ] = event;\n\n\t\tfor ( i = 1; i < arguments.length; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tevent.delegateTarget = this;\n\n\t\t// Call the preDispatch hook for the mapped type, and let it bail if desired\n\t\tif ( special.preDispatch && special.preDispatch.call( this, event ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine handlers\n\t\thandlerQueue = jQuery.event.handlers.call( this, event, handlers );\n\n\t\t// Run delegates first; they may want to stop propagation beneath us\n\t\ti = 0;\n\t\twhile ( ( matched = handlerQueue[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tevent.currentTarget = matched.elem;\n\n\t\t\tj = 0;\n\t\t\twhile ( ( handleObj = matched.handlers[ j++ ] ) &&\n\t\t\t\t!event.isImmediatePropagationStopped() ) {\n\n\t\t\t\t// Triggered event must either 1) have no namespace, or 2) have namespace(s)\n\t\t\t\t// a subset or equal to those in the bound event (both can have no namespace).\n\t\t\t\tif ( !event.rnamespace || event.rnamespace.test( handleObj.namespace ) ) {\n\n\t\t\t\t\tevent.handleObj = handleObj;\n\t\t\t\t\tevent.data = handleObj.data;\n\n\t\t\t\t\tret = ( ( jQuery.event.special[ handleObj.origType ] || {} ).handle ||\n\t\t\t\t\t\thandleObj.handler ).apply( matched.elem, args );\n\n\t\t\t\t\tif ( ret !== undefined ) {\n\t\t\t\t\t\tif ( ( event.result = ret ) === false ) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Call the postDispatch hook for the mapped type\n\t\tif ( special.postDispatch ) {\n\t\t\tspecial.postDispatch.call( this, event );\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\thandlers: function( event, handlers ) {\n\t\tvar i, handleObj, sel, matchedHandlers, matchedSelectors,\n\t\t\thandlerQueue = [],\n\t\t\tdelegateCount = handlers.delegateCount,\n\t\t\tcur = event.target;\n\n\t\t// Find delegate handlers\n\t\tif ( delegateCount &&\n\n\t\t\t// Support: IE <=9\n\t\t\t// Black-hole SVG <use> instance trees (trac-13180)\n\t\t\tcur.nodeType &&\n\n\t\t\t// Support: Firefox <=42\n\t\t\t// Suppress spec-violating clicks indicating a non-primary pointer button (trac-3861)\n\t\t\t// https://www.w3.org/TR/DOM-Level-3-Events/#event-type-click\n\t\t\t// Support: IE 11 only\n\t\t\t// ...but not arrow key \"clicks\" of radio inputs, which can have `button` -1 (gh-2343)\n\t\t\t!( event.type === \"click\" && event.button >= 1 ) ) {\n\n\t\t\tfor ( ; cur !== this; cur = cur.parentNode || this ) {\n\n\t\t\t\t// Don't check non-elements (#13208)\n\t\t\t\t// Don't process clicks on disabled elements (#6911, #8165, #11382, #11764)\n\t\t\t\tif ( cur.nodeType === 1 && !( event.type === \"click\" && cur.disabled === true ) ) {\n\t\t\t\t\tmatchedHandlers = [];\n\t\t\t\t\tmatchedSelectors = {};\n\t\t\t\t\tfor ( i = 0; i < delegateCount; i++ ) {\n\t\t\t\t\t\thandleObj = handlers[ i ];\n\n\t\t\t\t\t\t// Don't conflict with Object.prototype properties (#13203)\n\t\t\t\t\t\tsel = handleObj.selector + \" \";\n\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] === undefined ) {\n\t\t\t\t\t\t\tmatchedSelectors[ sel ] = handleObj.needsContext ?\n\t\t\t\t\t\t\t\tjQuery( sel, this ).index( cur ) > -1 :\n\t\t\t\t\t\t\t\tjQuery.find( sel, this, null, [ cur ] ).length;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( matchedSelectors[ sel ] ) {\n\t\t\t\t\t\t\tmatchedHandlers.push( handleObj );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tif ( matchedHandlers.length ) {\n\t\t\t\t\t\thandlerQueue.push( { elem: cur, handlers: matchedHandlers } );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Add the remaining (directly-bound) handlers\n\t\tcur = this;\n\t\tif ( delegateCount < handlers.length ) {\n\t\t\thandlerQueue.push( { elem: cur, handlers: handlers.slice( delegateCount ) } );\n\t\t}\n\n\t\treturn handlerQueue;\n\t},\n\n\taddProp: function( name, hook ) {\n\t\tObject.defineProperty( jQuery.Event.prototype, name, {\n\t\t\tenumerable: true,\n\t\t\tconfigurable: true,\n\n\t\t\tget: isFunction( hook ) ?\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn hook( this.originalEvent );\n\t\t\t\t\t}\n\t\t\t\t} :\n\t\t\t\tfunction() {\n\t\t\t\t\tif ( this.originalEvent ) {\n\t\t\t\t\t\t\treturn this.originalEvent[ name ];\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\tset: function( value ) {\n\t\t\t\tObject.defineProperty( this, name, {\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tvalue: value\n\t\t\t\t} );\n\t\t\t}\n\t\t} );\n\t},\n\n\tfix: function( originalEvent ) {\n\t\treturn originalEvent[ jQuery.expando ] ?\n\t\t\toriginalEvent :\n\t\t\tnew jQuery.Event( originalEvent );\n\t},\n\n\tspecial: {\n\t\tload: {\n\n\t\t\t// Prevent triggered image.load events from bubbling to window.load\n\t\t\tnoBubble: true\n\t\t},\n\t\tfocus: {\n\n\t\t\t// Fire native event if possible so blur/focus sequence is correct\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this !== safeActiveElement() && this.focus ) {\n\t\t\t\t\tthis.focus();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusin\"\n\t\t},\n\t\tblur: {\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this === safeActiveElement() && this.blur ) {\n\t\t\t\t\tthis.blur();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelegateType: \"focusout\"\n\t\t},\n\t\tclick: {\n\n\t\t\t// For checkbox, fire native event so checked state will be right\n\t\t\ttrigger: function() {\n\t\t\t\tif ( this.type === \"checkbox\" && this.click && nodeName( this, \"input\" ) ) {\n\t\t\t\t\tthis.click();\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t// For cross-browser consistency, don't fire native .click() on links\n\t\t\t_default: function( event ) {\n\t\t\t\treturn nodeName( event.target, \"a\" );\n\t\t\t}\n\t\t},\n\n\t\tbeforeunload: {\n\t\t\tpostDispatch: function( event ) {\n\n\t\t\t\t// Support: Firefox 20+\n\t\t\t\t// Firefox doesn't alert if the returnValue field is not set.\n\t\t\t\tif ( event.result !== undefined && event.originalEvent ) {\n\t\t\t\t\tevent.originalEvent.returnValue = event.result;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\njQuery.removeEvent = function( elem, type, handle ) {\n\n\t// This \"if\" is needed for plain objects\n\tif ( elem.removeEventListener ) {\n\t\telem.removeEventListener( type, handle );\n\t}\n};\n\njQuery.Event = function( src, props ) {\n\n\t// Allow instantiation without the 'new' keyword\n\tif ( !( this instanceof jQuery.Event ) ) {\n\t\treturn new jQuery.Event( src, props );\n\t}\n\n\t// Event object\n\tif ( src && src.type ) {\n\t\tthis.originalEvent = src;\n\t\tthis.type = src.type;\n\n\t\t// Events bubbling up the document may have been marked as prevented\n\t\t// by a handler lower down the tree; reflect the correct value.\n\t\tthis.isDefaultPrevented = src.defaultPrevented ||\n\t\t\t\tsrc.defaultPrevented === undefined &&\n\n\t\t\t\t// Support: Android <=2.3 only\n\t\t\t\tsrc.returnValue === false ?\n\t\t\treturnTrue :\n\t\t\treturnFalse;\n\n\t\t// Create target properties\n\t\t// Support: Safari <=6 - 7 only\n\t\t// Target should not be a text node (#504, #13143)\n\t\tthis.target = ( src.target && src.target.nodeType === 3 ) ?\n\t\t\tsrc.target.parentNode :\n\t\t\tsrc.target;\n\n\t\tthis.currentTarget = src.currentTarget;\n\t\tthis.relatedTarget = src.relatedTarget;\n\n\t// Event type\n\t} else {\n\t\tthis.type = src;\n\t}\n\n\t// Put explicitly provided properties onto the event object\n\tif ( props ) {\n\t\tjQuery.extend( this, props );\n\t}\n\n\t// Create a timestamp if incoming event doesn't have one\n\tthis.timeStamp = src && src.timeStamp || Date.now();\n\n\t// Mark it as fixed\n\tthis[ jQuery.expando ] = true;\n};\n\n// jQuery.Event is based on DOM3 Events as specified by the ECMAScript Language Binding\n// https://www.w3.org/TR/2003/WD-DOM-Level-3-Events-20030331/ecma-script-binding.html\njQuery.Event.prototype = {\n\tconstructor: jQuery.Event,\n\tisDefaultPrevented: returnFalse,\n\tisPropagationStopped: returnFalse,\n\tisImmediatePropagationStopped: returnFalse,\n\tisSimulated: false,\n\n\tpreventDefault: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isDefaultPrevented = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.preventDefault();\n\t\t}\n\t},\n\tstopPropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isPropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopPropagation();\n\t\t}\n\t},\n\tstopImmediatePropagation: function() {\n\t\tvar e = this.originalEvent;\n\n\t\tthis.isImmediatePropagationStopped = returnTrue;\n\n\t\tif ( e && !this.isSimulated ) {\n\t\t\te.stopImmediatePropagation();\n\t\t}\n\n\t\tthis.stopPropagation();\n\t}\n};\n\n// Includes all common event props including KeyEvent and MouseEvent specific props\njQuery.each( {\n\taltKey: true,\n\tbubbles: true,\n\tcancelable: true,\n\tchangedTouches: true,\n\tctrlKey: true,\n\tdetail: true,\n\teventPhase: true,\n\tmetaKey: true,\n\tpageX: true,\n\tpageY: true,\n\tshiftKey: true,\n\tview: true,\n\t\"char\": true,\n\tcharCode: true,\n\tkey: true,\n\tkeyCode: true,\n\tbutton: true,\n\tbuttons: true,\n\tclientX: true,\n\tclientY: true,\n\toffsetX: true,\n\toffsetY: true,\n\tpointerId: true,\n\tpointerType: true,\n\tscreenX: true,\n\tscreenY: true,\n\ttargetTouches: true,\n\ttoElement: true,\n\ttouches: true,\n\n\twhich: function( event ) {\n\t\tvar button = event.button;\n\n\t\t// Add which for key events\n\t\tif ( event.which == null && rkeyEvent.test( event.type ) ) {\n\t\t\treturn event.charCode != null ? event.charCode : event.keyCode;\n\t\t}\n\n\t\t// Add which for click: 1 === left; 2 === middle; 3 === right\n\t\tif ( !event.which && button !== undefined && rmouseEvent.test( event.type ) ) {\n\t\t\tif ( button & 1 ) {\n\t\t\t\treturn 1;\n\t\t\t}\n\n\t\t\tif ( button & 2 ) {\n\t\t\t\treturn 3;\n\t\t\t}\n\n\t\t\tif ( button & 4 ) {\n\t\t\t\treturn 2;\n\t\t\t}\n\n\t\t\treturn 0;\n\t\t}\n\n\t\treturn event.which;\n\t}\n}, jQuery.event.addProp );\n\n// Create mouseenter/leave events using mouseover/out and event-time checks\n// so that event delegation works in jQuery.\n// Do the same for pointerenter/pointerleave and pointerover/pointerout\n//\n// Support: Safari 7 only\n// Safari sends mouseenter too often; see:\n// https://bugs.chromium.org/p/chromium/issues/detail?id=470258\n// for the description of the bug (it existed in older Chrome versions as well).\njQuery.each( {\n\tmouseenter: \"mouseover\",\n\tmouseleave: \"mouseout\",\n\tpointerenter: \"pointerover\",\n\tpointerleave: \"pointerout\"\n}, function( orig, fix ) {\n\tjQuery.event.special[ orig ] = {\n\t\tdelegateType: fix,\n\t\tbindType: fix,\n\n\t\thandle: function( event ) {\n\t\t\tvar ret,\n\t\t\t\ttarget = this,\n\t\t\t\trelated = event.relatedTarget,\n\t\t\t\thandleObj = event.handleObj;\n\n\t\t\t// For mouseenter/leave call the handler if related is outside the target.\n\t\t\t// NB: No relatedTarget if the mouse left/entered the browser window\n\t\t\tif ( !related || ( related !== target && !jQuery.contains( target, related ) ) ) {\n\t\t\t\tevent.type = handleObj.origType;\n\t\t\t\tret = handleObj.handler.apply( this, arguments );\n\t\t\t\tevent.type = fix;\n\t\t\t}\n\t\t\treturn ret;\n\t\t}\n\t};\n} );\n\njQuery.fn.extend( {\n\n\ton: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn );\n\t},\n\tone: function( types, selector, data, fn ) {\n\t\treturn on( this, types, selector, data, fn, 1 );\n\t},\n\toff: function( types, selector, fn ) {\n\t\tvar handleObj, type;\n\t\tif ( types && types.preventDefault && types.handleObj ) {\n\n\t\t\t// ( event ) dispatched jQuery.Event\n\t\t\thandleObj = types.handleObj;\n\t\t\tjQuery( types.delegateTarget ).off(\n\t\t\t\thandleObj.namespace ?\n\t\t\t\t\thandleObj.origType + \".\" + handleObj.namespace :\n\t\t\t\t\thandleObj.origType,\n\t\t\t\thandleObj.selector,\n\t\t\t\thandleObj.handler\n\t\t\t);\n\t\t\treturn this;\n\t\t}\n\t\tif ( typeof types === \"object\" ) {\n\n\t\t\t// ( types-object [, selector] )\n\t\t\tfor ( type in types ) {\n\t\t\t\tthis.off( type, selector, types[ type ] );\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif ( selector === false || typeof selector === \"function\" ) {\n\n\t\t\t// ( types [, fn] )\n\t\t\tfn = selector;\n\t\t\tselector = undefined;\n\t\t}\n\t\tif ( fn === false ) {\n\t\t\tfn = returnFalse;\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.remove( this, types, fn, selector );\n\t\t} );\n\t}\n} );\n\n\nvar\n\n\t/* eslint-disable max-len */\n\n\t// See https://github.com/eslint/eslint/issues/3229\n\trxhtmlTag = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\\/\\0>\\x20\\t\\r\\n\\f]*)[^>]*)\\/>/gi,\n\n\t/* eslint-enable */\n\n\t// Support: IE <=10 - 11, Edge 12 - 13 only\n\t// In IE/Edge using regex groups here causes severe slowdowns.\n\t// See https://connect.microsoft.com/IE/feedback/details/1736512/\n\trnoInnerhtml = /<script|<style|<link/i,\n\n\t// checked=\"checked\" or checked\n\trchecked = /checked\\s*(?:[^=]|=\\s*.checked.)/i,\n\trcleanScript = /^\\s*<!(?:\\[CDATA\\[|--)|(?:\\]\\]|--)>\\s*$/g;\n\n// Prefer a tbody over its parent table for containing new rows\nfunction manipulationTarget( elem, content ) {\n\tif ( nodeName( elem, \"table\" ) &&\n\t\tnodeName( content.nodeType !== 11 ? content : content.firstChild, \"tr\" ) ) {\n\n\t\treturn jQuery( elem ).children( \"tbody\" )[ 0 ] || elem;\n\t}\n\n\treturn elem;\n}\n\n// Replace/restore the type attribute of script elements for safe DOM manipulation\nfunction disableScript( elem ) {\n\telem.type = ( elem.getAttribute( \"type\" ) !== null ) + \"/\" + elem.type;\n\treturn elem;\n}\nfunction restoreScript( elem ) {\n\tif ( ( elem.type || \"\" ).slice( 0, 5 ) === \"true/\" ) {\n\t\telem.type = elem.type.slice( 5 );\n\t} else {\n\t\telem.removeAttribute( \"type\" );\n\t}\n\n\treturn elem;\n}\n\nfunction cloneCopyEvent( src, dest ) {\n\tvar i, l, type, pdataOld, pdataCur, udataOld, udataCur, events;\n\n\tif ( dest.nodeType !== 1 ) {\n\t\treturn;\n\t}\n\n\t// 1. Copy private data: events, handlers, etc.\n\tif ( dataPriv.hasData( src ) ) {\n\t\tpdataOld = dataPriv.access( src );\n\t\tpdataCur = dataPriv.set( dest, pdataOld );\n\t\tevents = pdataOld.events;\n\n\t\tif ( events ) {\n\t\t\tdelete pdataCur.handle;\n\t\t\tpdataCur.events = {};\n\n\t\t\tfor ( type in events ) {\n\t\t\t\tfor ( i = 0, l = events[ type ].length; i < l; i++ ) {\n\t\t\t\t\tjQuery.event.add( dest, type, events[ type ][ i ] );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// 2. Copy user data\n\tif ( dataUser.hasData( src ) ) {\n\t\tudataOld = dataUser.access( src );\n\t\tudataCur = jQuery.extend( {}, udataOld );\n\n\t\tdataUser.set( dest, udataCur );\n\t}\n}\n\n// Fix IE bugs, see support tests\nfunction fixInput( src, dest ) {\n\tvar nodeName = dest.nodeName.toLowerCase();\n\n\t// Fails to persist the checked state of a cloned checkbox or radio button.\n\tif ( nodeName === \"input\" && rcheckableType.test( src.type ) ) {\n\t\tdest.checked = src.checked;\n\n\t// Fails to return the selected option to the default selected state when cloning options\n\t} else if ( nodeName === \"input\" || nodeName === \"textarea\" ) {\n\t\tdest.defaultValue = src.defaultValue;\n\t}\n}\n\nfunction domManip( collection, args, callback, ignored ) {\n\n\t// Flatten any nested arrays\n\targs = concat.apply( [], args );\n\n\tvar fragment, first, scripts, hasScripts, node, doc,\n\t\ti = 0,\n\t\tl = collection.length,\n\t\tiNoClone = l - 1,\n\t\tvalue = args[ 0 ],\n\t\tvalueIsFunction = isFunction( value );\n\n\t// We can't cloneNode fragments that contain checked, in WebKit\n\tif ( valueIsFunction ||\n\t\t\t( l > 1 && typeof value === \"string\" &&\n\t\t\t\t!support.checkClone && rchecked.test( value ) ) ) {\n\t\treturn collection.each( function( index ) {\n\t\t\tvar self = collection.eq( index );\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\targs[ 0 ] = value.call( this, index, self.html() );\n\t\t\t}\n\t\t\tdomManip( self, args, callback, ignored );\n\t\t} );\n\t}\n\n\tif ( l ) {\n\t\tfragment = buildFragment( args, collection[ 0 ].ownerDocument, false, collection, ignored );\n\t\tfirst = fragment.firstChild;\n\n\t\tif ( fragment.childNodes.length === 1 ) {\n\t\t\tfragment = first;\n\t\t}\n\n\t\t// Require either new content or an interest in ignored elements to invoke the callback\n\t\tif ( first || ignored ) {\n\t\t\tscripts = jQuery.map( getAll( fragment, \"script\" ), disableScript );\n\t\t\thasScripts = scripts.length;\n\n\t\t\t// Use the original fragment for the last item\n\t\t\t// instead of the first because it can end up\n\t\t\t// being emptied incorrectly in certain situations (#8070).\n\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\tnode = fragment;\n\n\t\t\t\tif ( i !== iNoClone ) {\n\t\t\t\t\tnode = jQuery.clone( node, true, true );\n\n\t\t\t\t\t// Keep references to cloned scripts for later restoration\n\t\t\t\t\tif ( hasScripts ) {\n\n\t\t\t\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t\t\t\t// push.apply(_, arraylike) throws on ancient WebKit\n\t\t\t\t\t\tjQuery.merge( scripts, getAll( node, \"script\" ) );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tcallback.call( collection[ i ], node, i );\n\t\t\t}\n\n\t\t\tif ( hasScripts ) {\n\t\t\t\tdoc = scripts[ scripts.length - 1 ].ownerDocument;\n\n\t\t\t\t// Reenable scripts\n\t\t\t\tjQuery.map( scripts, restoreScript );\n\n\t\t\t\t// Evaluate executable scripts on first document insertion\n\t\t\t\tfor ( i = 0; i < hasScripts; i++ ) {\n\t\t\t\t\tnode = scripts[ i ];\n\t\t\t\t\tif ( rscriptType.test( node.type || \"\" ) &&\n\t\t\t\t\t\t!dataPriv.access( node, \"globalEval\" ) &&\n\t\t\t\t\t\tjQuery.contains( doc, node ) ) {\n\n\t\t\t\t\t\tif ( node.src && ( node.type || \"\" ).toLowerCase() !== \"module\" ) {\n\n\t\t\t\t\t\t\t// Optional AJAX dependency, but won't run scripts if not present\n\t\t\t\t\t\t\tif ( jQuery._evalUrl ) {\n\t\t\t\t\t\t\t\tjQuery._evalUrl( node.src );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tDOMEval( node.textContent.replace( rcleanScript, \"\" ), doc, node );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn collection;\n}\n\nfunction remove( elem, selector, keepData ) {\n\tvar node,\n\t\tnodes = selector ? jQuery.filter( selector, elem ) : elem,\n\t\ti = 0;\n\n\tfor ( ; ( node = nodes[ i ] ) != null; i++ ) {\n\t\tif ( !keepData && node.nodeType === 1 ) {\n\t\t\tjQuery.cleanData( getAll( node ) );\n\t\t}\n\n\t\tif ( node.parentNode ) {\n\t\t\tif ( keepData && jQuery.contains( node.ownerDocument, node ) ) {\n\t\t\t\tsetGlobalEval( getAll( node, \"script\" ) );\n\t\t\t}\n\t\t\tnode.parentNode.removeChild( node );\n\t\t}\n\t}\n\n\treturn elem;\n}\n\njQuery.extend( {\n\thtmlPrefilter: function( html ) {\n\t\treturn html.replace( rxhtmlTag, \"<$1></$2>\" );\n\t},\n\n\tclone: function( elem, dataAndEvents, deepDataAndEvents ) {\n\t\tvar i, l, srcElements, destElements,\n\t\t\tclone = elem.cloneNode( true ),\n\t\t\tinPage = jQuery.contains( elem.ownerDocument, elem );\n\n\t\t// Fix IE cloning issues\n\t\tif ( !support.noCloneChecked && ( elem.nodeType === 1 || elem.nodeType === 11 ) &&\n\t\t\t\t!jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// We eschew Sizzle here for performance reasons: https://jsperf.com/getall-vs-sizzle/2\n\t\t\tdestElements = getAll( clone );\n\t\t\tsrcElements = getAll( elem );\n\n\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\tfixInput( srcElements[ i ], destElements[ i ] );\n\t\t\t}\n\t\t}\n\n\t\t// Copy the events from the original to the clone\n\t\tif ( dataAndEvents ) {\n\t\t\tif ( deepDataAndEvents ) {\n\t\t\t\tsrcElements = srcElements || getAll( elem );\n\t\t\t\tdestElements = destElements || getAll( clone );\n\n\t\t\t\tfor ( i = 0, l = srcElements.length; i < l; i++ ) {\n\t\t\t\t\tcloneCopyEvent( srcElements[ i ], destElements[ i ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcloneCopyEvent( elem, clone );\n\t\t\t}\n\t\t}\n\n\t\t// Preserve script evaluation history\n\t\tdestElements = getAll( clone, \"script\" );\n\t\tif ( destElements.length > 0 ) {\n\t\t\tsetGlobalEval( destElements, !inPage && getAll( elem, \"script\" ) );\n\t\t}\n\n\t\t// Return the cloned set\n\t\treturn clone;\n\t},\n\n\tcleanData: function( elems ) {\n\t\tvar data, elem, type,\n\t\t\tspecial = jQuery.event.special,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = elems[ i ] ) !== undefined; i++ ) {\n\t\t\tif ( acceptData( elem ) ) {\n\t\t\t\tif ( ( data = elem[ dataPriv.expando ] ) ) {\n\t\t\t\t\tif ( data.events ) {\n\t\t\t\t\t\tfor ( type in data.events ) {\n\t\t\t\t\t\t\tif ( special[ type ] ) {\n\t\t\t\t\t\t\t\tjQuery.event.remove( elem, type );\n\n\t\t\t\t\t\t\t// This is a shortcut to avoid jQuery.event.remove's overhead\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tjQuery.removeEvent( elem, type, data.handle );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataPriv.expando ] = undefined;\n\t\t\t\t}\n\t\t\t\tif ( elem[ dataUser.expando ] ) {\n\n\t\t\t\t\t// Support: Chrome <=35 - 45+\n\t\t\t\t\t// Assign undefined instead of using delete, see Data#remove\n\t\t\t\t\telem[ dataUser.expando ] = undefined;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n} );\n\njQuery.fn.extend( {\n\tdetach: function( selector ) {\n\t\treturn remove( this, selector, true );\n\t},\n\n\tremove: function( selector ) {\n\t\treturn remove( this, selector );\n\t},\n\n\ttext: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\treturn value === undefined ?\n\t\t\t\tjQuery.text( this ) :\n\t\t\t\tthis.empty().each( function() {\n\t\t\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\t\t\tthis.textContent = value;\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t}, null, value, arguments.length );\n\t},\n\n\tappend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.appendChild( elem );\n\t\t\t}\n\t\t} );\n\t},\n\n\tprepend: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) {\n\t\t\t\tvar target = manipulationTarget( this, elem );\n\t\t\t\ttarget.insertBefore( elem, target.firstChild );\n\t\t\t}\n\t\t} );\n\t},\n\n\tbefore: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this );\n\t\t\t}\n\t\t} );\n\t},\n\n\tafter: function() {\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tif ( this.parentNode ) {\n\t\t\t\tthis.parentNode.insertBefore( elem, this.nextSibling );\n\t\t\t}\n\t\t} );\n\t},\n\n\tempty: function() {\n\t\tvar elem,\n\t\t\ti = 0;\n\n\t\tfor ( ; ( elem = this[ i ] ) != null; i++ ) {\n\t\t\tif ( elem.nodeType === 1 ) {\n\n\t\t\t\t// Prevent memory leaks\n\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\n\t\t\t\t// Remove any remaining nodes\n\t\t\t\telem.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tclone: function( dataAndEvents, deepDataAndEvents ) {\n\t\tdataAndEvents = dataAndEvents == null ? false : dataAndEvents;\n\t\tdeepDataAndEvents = deepDataAndEvents == null ? dataAndEvents : deepDataAndEvents;\n\n\t\treturn this.map( function() {\n\t\t\treturn jQuery.clone( this, dataAndEvents, deepDataAndEvents );\n\t\t} );\n\t},\n\n\thtml: function( value ) {\n\t\treturn access( this, function( value ) {\n\t\t\tvar elem = this[ 0 ] || {},\n\t\t\t\ti = 0,\n\t\t\t\tl = this.length;\n\n\t\t\tif ( value === undefined && elem.nodeType === 1 ) {\n\t\t\t\treturn elem.innerHTML;\n\t\t\t}\n\n\t\t\t// See if we can take a shortcut and just use innerHTML\n\t\t\tif ( typeof value === \"string\" && !rnoInnerhtml.test( value ) &&\n\t\t\t\t!wrapMap[ ( rtagName.exec( value ) || [ \"\", \"\" ] )[ 1 ].toLowerCase() ] ) {\n\n\t\t\t\tvalue = jQuery.htmlPrefilter( value );\n\n\t\t\t\ttry {\n\t\t\t\t\tfor ( ; i < l; i++ ) {\n\t\t\t\t\t\telem = this[ i ] || {};\n\n\t\t\t\t\t\t// Remove element nodes and prevent memory leaks\n\t\t\t\t\t\tif ( elem.nodeType === 1 ) {\n\t\t\t\t\t\t\tjQuery.cleanData( getAll( elem, false ) );\n\t\t\t\t\t\t\telem.innerHTML = value;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\telem = 0;\n\n\t\t\t\t// If using innerHTML throws an exception, use the fallback method\n\t\t\t\t} catch ( e ) {}\n\t\t\t}\n\n\t\t\tif ( elem ) {\n\t\t\t\tthis.empty().append( value );\n\t\t\t}\n\t\t}, null, value, arguments.length );\n\t},\n\n\treplaceWith: function() {\n\t\tvar ignored = [];\n\n\t\t// Make the changes, replacing each non-ignored context element with the new content\n\t\treturn domManip( this, arguments, function( elem ) {\n\t\t\tvar parent = this.parentNode;\n\n\t\t\tif ( jQuery.inArray( this, ignored ) < 0 ) {\n\t\t\t\tjQuery.cleanData( getAll( this ) );\n\t\t\t\tif ( parent ) {\n\t\t\t\t\tparent.replaceChild( elem, this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t// Force callback invocation\n\t\t}, ignored );\n\t}\n} );\n\njQuery.each( {\n\tappendTo: \"append\",\n\tprependTo: \"prepend\",\n\tinsertBefore: \"before\",\n\tinsertAfter: \"after\",\n\treplaceAll: \"replaceWith\"\n}, function( name, original ) {\n\tjQuery.fn[ name ] = function( selector ) {\n\t\tvar elems,\n\t\t\tret = [],\n\t\t\tinsert = jQuery( selector ),\n\t\t\tlast = insert.length - 1,\n\t\t\ti = 0;\n\n\t\tfor ( ; i <= last; i++ ) {\n\t\t\telems = i === last ? this : this.clone( true );\n\t\t\tjQuery( insert[ i ] )[ original ]( elems );\n\n\t\t\t// Support: Android <=4.0 only, PhantomJS 1 only\n\t\t\t// .get() because push.apply(_, arraylike) throws on ancient WebKit\n\t\t\tpush.apply( ret, elems.get() );\n\t\t}\n\n\t\treturn this.pushStack( ret );\n\t};\n} );\nvar rnumnonpx = new RegExp( \"^(\" + pnum + \")(?!px)[a-z%]+$\", \"i\" );\n\nvar getStyles = function( elem ) {\n\n\t\t// Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n\t\t// IE throws on elements created in popups\n\t\t// FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n\t\tvar view = elem.ownerDocument.defaultView;\n\n\t\tif ( !view || !view.opener ) {\n\t\t\tview = window;\n\t\t}\n\n\t\treturn view.getComputedStyle( elem );\n\t};\n\nvar rboxStyle = new RegExp( cssExpand.join( \"|\" ), \"i\" );\n\n\n\n( function() {\n\n\t// Executing both pixelPosition & boxSizingReliable tests require only one layout\n\t// so they're executed at the same time to save the second computation.\n\tfunction computeStyleTests() {\n\n\t\t// This is a singleton, we need to execute it only once\n\t\tif ( !div ) {\n\t\t\treturn;\n\t\t}\n\n\t\tcontainer.style.cssText = \"position:absolute;left:-11111px;width:60px;\" +\n\t\t\t\"margin-top:1px;padding:0;border:0\";\n\t\tdiv.style.cssText =\n\t\t\t\"position:relative;display:block;box-sizing:border-box;overflow:scroll;\" +\n\t\t\t\"margin:auto;border:1px;padding:1px;\" +\n\t\t\t\"width:60%;top:1%\";\n\t\tdocumentElement.appendChild( container ).appendChild( div );\n\n\t\tvar divStyle = window.getComputedStyle( div );\n\t\tpixelPositionVal = divStyle.top !== \"1%\";\n\n\t\t// Support: Android 4.0 - 4.3 only, Firefox <=3 - 44\n\t\treliableMarginLeftVal = roundPixelMeasures( divStyle.marginLeft ) === 12;\n\n\t\t// Support: Android 4.0 - 4.3 only, Safari <=9.1 - 10.1, iOS <=7.0 - 9.3\n\t\t// Some styles come back with percentage values, even though they shouldn't\n\t\tdiv.style.right = \"60%\";\n\t\tpixelBoxStylesVal = roundPixelMeasures( divStyle.right ) === 36;\n\n\t\t// Support: IE 9 - 11 only\n\t\t// Detect misreporting of content dimensions for box-sizing:border-box elements\n\t\tboxSizingReliableVal = roundPixelMeasures( divStyle.width ) === 36;\n\n\t\t// Support: IE 9 only\n\t\t// Detect overflow:scroll screwiness (gh-3699)\n\t\tdiv.style.position = \"absolute\";\n\t\tscrollboxSizeVal = div.offsetWidth === 36 || \"absolute\";\n\n\t\tdocumentElement.removeChild( container );\n\n\t\t// Nullify the div so it wouldn't be stored in the memory and\n\t\t// it will also be a sign that checks already performed\n\t\tdiv = null;\n\t}\n\n\tfunction roundPixelMeasures( measure ) {\n\t\treturn Math.round( parseFloat( measure ) );\n\t}\n\n\tvar pixelPositionVal, boxSizingReliableVal, scrollboxSizeVal, pixelBoxStylesVal,\n\t\treliableMarginLeftVal,\n\t\tcontainer = document.createElement( \"div\" ),\n\t\tdiv = document.createElement( \"div\" );\n\n\t// Finish early in limited (non-browser) environments\n\tif ( !div.style ) {\n\t\treturn;\n\t}\n\n\t// Support: IE <=9 - 11 only\n\t// Style of cloned element affects source element cloned (#8908)\n\tdiv.style.backgroundClip = \"content-box\";\n\tdiv.cloneNode( true ).style.backgroundClip = \"\";\n\tsupport.clearCloneStyle = div.style.backgroundClip === \"content-box\";\n\n\tjQuery.extend( support, {\n\t\tboxSizingReliable: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn boxSizingReliableVal;\n\t\t},\n\t\tpixelBoxStyles: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelBoxStylesVal;\n\t\t},\n\t\tpixelPosition: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn pixelPositionVal;\n\t\t},\n\t\treliableMarginLeft: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn reliableMarginLeftVal;\n\t\t},\n\t\tscrollboxSize: function() {\n\t\t\tcomputeStyleTests();\n\t\t\treturn scrollboxSizeVal;\n\t\t}\n\t} );\n} )();\n\n\nfunction curCSS( elem, name, computed ) {\n\tvar width, minWidth, maxWidth, ret,\n\n\t\t// Support: Firefox 51+\n\t\t// Retrieving style before computed somehow\n\t\t// fixes an issue with getting wrong values\n\t\t// on detached elements\n\t\tstyle = elem.style;\n\n\tcomputed = computed || getStyles( elem );\n\n\t// getPropertyValue is needed for:\n\t// .css('filter') (IE 9 only, #12537)\n\t// .css('--customProperty) (#3144)\n\tif ( computed ) {\n\t\tret = computed.getPropertyValue( name ) || computed[ name ];\n\n\t\tif ( ret === \"\" && !jQuery.contains( elem.ownerDocument, elem ) ) {\n\t\t\tret = jQuery.style( elem, name );\n\t\t}\n\n\t\t// A tribute to the \"awesome hack by Dean Edwards\"\n\t\t// Android Browser returns percentage for some values,\n\t\t// but width seems to be reliably pixels.\n\t\t// This is against the CSSOM draft spec:\n\t\t// https://drafts.csswg.org/cssom/#resolved-values\n\t\tif ( !support.pixelBoxStyles() && rnumnonpx.test( ret ) && rboxStyle.test( name ) ) {\n\n\t\t\t// Remember the original values\n\t\t\twidth = style.width;\n\t\t\tminWidth = style.minWidth;\n\t\t\tmaxWidth = style.maxWidth;\n\n\t\t\t// Put in the new values to get a computed value out\n\t\t\tstyle.minWidth = style.maxWidth = style.width = ret;\n\t\t\tret = computed.width;\n\n\t\t\t// Revert the changed values\n\t\t\tstyle.width = width;\n\t\t\tstyle.minWidth = minWidth;\n\t\t\tstyle.maxWidth = maxWidth;\n\t\t}\n\t}\n\n\treturn ret !== undefined ?\n\n\t\t// Support: IE <=9 - 11 only\n\t\t// IE returns zIndex value as an integer.\n\t\tret + \"\" :\n\t\tret;\n}\n\n\nfunction addGetHookIf( conditionFn, hookFn ) {\n\n\t// Define the hook, we'll check on the first run if it's really needed.\n\treturn {\n\t\tget: function() {\n\t\t\tif ( conditionFn() ) {\n\n\t\t\t\t// Hook not needed (or it's not possible to use it due\n\t\t\t\t// to missing dependency), remove it.\n\t\t\t\tdelete this.get;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Hook needed; redefine it so that the support test is not executed again.\n\t\t\treturn ( this.get = hookFn ).apply( this, arguments );\n\t\t}\n\t};\n}\n\n\nvar\n\n\t// Swappable if display is none or starts with table\n\t// except \"table\", \"table-cell\", or \"table-caption\"\n\t// See here for display values: https://developer.mozilla.org/en-US/docs/CSS/display\n\trdisplayswap = /^(none|table(?!-c[ea]).+)/,\n\trcustomProp = /^--/,\n\tcssShow = { position: \"absolute\", visibility: \"hidden\", display: \"block\" },\n\tcssNormalTransform = {\n\t\tletterSpacing: \"0\",\n\t\tfontWeight: \"400\"\n\t},\n\n\tcssPrefixes = [ \"Webkit\", \"Moz\", \"ms\" ],\n\temptyStyle = document.createElement( \"div\" ).style;\n\n// Return a css property mapped to a potentially vendor prefixed property\nfunction vendorPropName( name ) {\n\n\t// Shortcut for names that are not vendor prefixed\n\tif ( name in emptyStyle ) {\n\t\treturn name;\n\t}\n\n\t// Check for vendor prefixed names\n\tvar capName = name[ 0 ].toUpperCase() + name.slice( 1 ),\n\t\ti = cssPrefixes.length;\n\n\twhile ( i-- ) {\n\t\tname = cssPrefixes[ i ] + capName;\n\t\tif ( name in emptyStyle ) {\n\t\t\treturn name;\n\t\t}\n\t}\n}\n\n// Return a property mapped along what jQuery.cssProps suggests or to\n// a vendor prefixed property.\nfunction finalPropName( name ) {\n\tvar ret = jQuery.cssProps[ name ];\n\tif ( !ret ) {\n\t\tret = jQuery.cssProps[ name ] = vendorPropName( name ) || name;\n\t}\n\treturn ret;\n}\n\nfunction setPositiveNumber( elem, value, subtract ) {\n\n\t// Any relative (+/-) values have already been\n\t// normalized at this point\n\tvar matches = rcssNum.exec( value );\n\treturn matches ?\n\n\t\t// Guard against undefined \"subtract\", e.g., when used as in cssHooks\n\t\tMath.max( 0, matches[ 2 ] - ( subtract || 0 ) ) + ( matches[ 3 ] || \"px\" ) :\n\t\tvalue;\n}\n\nfunction boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computedVal ) {\n\tvar i = dimension === \"width\" ? 1 : 0,\n\t\textra = 0,\n\t\tdelta = 0;\n\n\t// Adjustment may not be necessary\n\tif ( box === ( isBorderBox ? \"border\" : \"content\" ) ) {\n\t\treturn 0;\n\t}\n\n\tfor ( ; i < 4; i += 2 ) {\n\n\t\t// Both box models exclude margin\n\t\tif ( box === \"margin\" ) {\n\t\t\tdelta += jQuery.css( elem, box + cssExpand[ i ], true, styles );\n\t\t}\n\n\t\t// If we get here with a content-box, we're seeking \"padding\" or \"border\" or \"margin\"\n\t\tif ( !isBorderBox ) {\n\n\t\t\t// Add padding\n\t\t\tdelta += jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\n\t\t\t// For \"border\" or \"margin\", add border\n\t\t\tif ( box !== \"padding\" ) {\n\t\t\t\tdelta += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\n\t\t\t// But still keep track of it otherwise\n\t\t\t} else {\n\t\t\t\textra += jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\n\t\t// If we get here with a border-box (content + padding + border), we're seeking \"content\" or\n\t\t// \"padding\" or \"margin\"\n\t\t} else {\n\n\t\t\t// For \"content\", subtract padding\n\t\t\tif ( box === \"content\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"padding\" + cssExpand[ i ], true, styles );\n\t\t\t}\n\n\t\t\t// For \"content\" or \"padding\", subtract border\n\t\t\tif ( box !== \"margin\" ) {\n\t\t\t\tdelta -= jQuery.css( elem, \"border\" + cssExpand[ i ] + \"Width\", true, styles );\n\t\t\t}\n\t\t}\n\t}\n\n\t// Account for positive content-box scroll gutter when requested by providing computedVal\n\tif ( !isBorderBox && computedVal >= 0 ) {\n\n\t\t// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border\n\t\t// Assuming integer scroll gutter, subtract the rest and round down\n\t\tdelta += Math.max( 0, Math.ceil(\n\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\tcomputedVal -\n\t\t\tdelta -\n\t\t\textra -\n\t\t\t0.5\n\t\t) );\n\t}\n\n\treturn delta;\n}\n\nfunction getWidthOrHeight( elem, dimension, extra ) {\n\n\t// Start with computed style\n\tvar styles = getStyles( elem ),\n\t\tval = curCSS( elem, dimension, styles ),\n\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\tvalueIsBorderBox = isBorderBox;\n\n\t// Support: Firefox <=54\n\t// Return a confounding non-pixel value or feign ignorance, as appropriate.\n\tif ( rnumnonpx.test( val ) ) {\n\t\tif ( !extra ) {\n\t\t\treturn val;\n\t\t}\n\t\tval = \"auto\";\n\t}\n\n\t// Check for style in case a browser which returns unreliable values\n\t// for getComputedStyle silently falls back to the reliable elem.style\n\tvalueIsBorderBox = valueIsBorderBox &&\n\t\t( support.boxSizingReliable() || val === elem.style[ dimension ] );\n\n\t// Fall back to offsetWidth/offsetHeight when value is \"auto\"\n\t// This happens for inline elements with no explicit setting (gh-3571)\n\t// Support: Android <=4.1 - 4.3 only\n\t// Also use offsetWidth/offsetHeight for misreported inline dimensions (gh-3602)\n\tif ( val === \"auto\" ||\n\t\t!parseFloat( val ) && jQuery.css( elem, \"display\", false, styles ) === \"inline\" ) {\n\n\t\tval = elem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ];\n\n\t\t// offsetWidth/offsetHeight provide border-box values\n\t\tvalueIsBorderBox = true;\n\t}\n\n\t// Normalize \"\" and auto\n\tval = parseFloat( val ) || 0;\n\n\t// Adjust for the element's box model\n\treturn ( val +\n\t\tboxModelAdjustment(\n\t\t\telem,\n\t\t\tdimension,\n\t\t\textra || ( isBorderBox ? \"border\" : \"content\" ),\n\t\t\tvalueIsBorderBox,\n\t\t\tstyles,\n\n\t\t\t// Provide the current computed size to request scroll gutter calculation (gh-3589)\n\t\t\tval\n\t\t)\n\t) + \"px\";\n}\n\njQuery.extend( {\n\n\t// Add in style property hooks for overriding the default\n\t// behavior of getting and setting a style property\n\tcssHooks: {\n\t\topacity: {\n\t\t\tget: function( elem, computed ) {\n\t\t\t\tif ( computed ) {\n\n\t\t\t\t\t// We should always get a number back from opacity\n\t\t\t\t\tvar ret = curCSS( elem, \"opacity\" );\n\t\t\t\t\treturn ret === \"\" ? \"1\" : ret;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\t// Don't automatically add \"px\" to these possibly-unitless properties\n\tcssNumber: {\n\t\t\"animationIterationCount\": true,\n\t\t\"columnCount\": true,\n\t\t\"fillOpacity\": true,\n\t\t\"flexGrow\": true,\n\t\t\"flexShrink\": true,\n\t\t\"fontWeight\": true,\n\t\t\"lineHeight\": true,\n\t\t\"opacity\": true,\n\t\t\"order\": true,\n\t\t\"orphans\": true,\n\t\t\"widows\": true,\n\t\t\"zIndex\": true,\n\t\t\"zoom\": true\n\t},\n\n\t// Add in properties whose names you wish to fix before\n\t// setting or getting the value\n\tcssProps: {},\n\n\t// Get and set the style property on a DOM Node\n\tstyle: function( elem, name, value, extra ) {\n\n\t\t// Don't set styles on text and comment nodes\n\t\tif ( !elem || elem.nodeType === 3 || elem.nodeType === 8 || !elem.style ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Make sure that we're working with the right name\n\t\tvar ret, type, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name ),\n\t\t\tstyle = elem.style;\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to query the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Gets hook for the prefixed version, then unprefixed version\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// Check if we're setting a value\n\t\tif ( value !== undefined ) {\n\t\t\ttype = typeof value;\n\n\t\t\t// Convert \"+=\" or \"-=\" to relative numbers (#7345)\n\t\t\tif ( type === \"string\" && ( ret = rcssNum.exec( value ) ) && ret[ 1 ] ) {\n\t\t\t\tvalue = adjustCSS( elem, name, ret );\n\n\t\t\t\t// Fixes bug #9237\n\t\t\t\ttype = \"number\";\n\t\t\t}\n\n\t\t\t// Make sure that null and NaN values aren't set (#7116)\n\t\t\tif ( value == null || value !== value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// If a number was passed in, add the unit (except for certain CSS properties)\n\t\t\tif ( type === \"number\" ) {\n\t\t\t\tvalue += ret && ret[ 3 ] || ( jQuery.cssNumber[ origName ] ? \"\" : \"px\" );\n\t\t\t}\n\n\t\t\t// background-* props affect original clone's values\n\t\t\tif ( !support.clearCloneStyle && value === \"\" && name.indexOf( \"background\" ) === 0 ) {\n\t\t\t\tstyle[ name ] = \"inherit\";\n\t\t\t}\n\n\t\t\t// If a hook was provided, use that value, otherwise just set the specified value\n\t\t\tif ( !hooks || !( \"set\" in hooks ) ||\n\t\t\t\t( value = hooks.set( elem, value, extra ) ) !== undefined ) {\n\n\t\t\t\tif ( isCustomProp ) {\n\t\t\t\t\tstyle.setProperty( name, value );\n\t\t\t\t} else {\n\t\t\t\t\tstyle[ name ] = value;\n\t\t\t\t}\n\t\t\t}\n\n\t\t} else {\n\n\t\t\t// If a hook was provided get the non-computed value from there\n\t\t\tif ( hooks && \"get\" in hooks &&\n\t\t\t\t( ret = hooks.get( elem, false, extra ) ) !== undefined ) {\n\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\t// Otherwise just get the value from the style object\n\t\t\treturn style[ name ];\n\t\t}\n\t},\n\n\tcss: function( elem, name, extra, styles ) {\n\t\tvar val, num, hooks,\n\t\t\torigName = camelCase( name ),\n\t\t\tisCustomProp = rcustomProp.test( name );\n\n\t\t// Make sure that we're working with the right name. We don't\n\t\t// want to modify the value if it is a CSS custom property\n\t\t// since they are user-defined.\n\t\tif ( !isCustomProp ) {\n\t\t\tname = finalPropName( origName );\n\t\t}\n\n\t\t// Try prefixed name followed by the unprefixed name\n\t\thooks = jQuery.cssHooks[ name ] || jQuery.cssHooks[ origName ];\n\n\t\t// If a hook was provided get the computed value from there\n\t\tif ( hooks && \"get\" in hooks ) {\n\t\t\tval = hooks.get( elem, true, extra );\n\t\t}\n\n\t\t// Otherwise, if a way to get the computed value exists, use that\n\t\tif ( val === undefined ) {\n\t\t\tval = curCSS( elem, name, styles );\n\t\t}\n\n\t\t// Convert \"normal\" to computed value\n\t\tif ( val === \"normal\" && name in cssNormalTransform ) {\n\t\t\tval = cssNormalTransform[ name ];\n\t\t}\n\n\t\t// Make numeric if forced or a qualifier was provided and val looks numeric\n\t\tif ( extra === \"\" || extra ) {\n\t\t\tnum = parseFloat( val );\n\t\t\treturn extra === true || isFinite( num ) ? num || 0 : val;\n\t\t}\n\n\t\treturn val;\n\t}\n} );\n\njQuery.each( [ \"height\", \"width\" ], function( i, dimension ) {\n\tjQuery.cssHooks[ dimension ] = {\n\t\tget: function( elem, computed, extra ) {\n\t\t\tif ( computed ) {\n\n\t\t\t\t// Certain elements can have dimension info if we invisibly show them\n\t\t\t\t// but it must have a current display style that would benefit\n\t\t\t\treturn rdisplayswap.test( jQuery.css( elem, \"display\" ) ) &&\n\n\t\t\t\t\t// Support: Safari 8+\n\t\t\t\t\t// Table columns in Safari have non-zero offsetWidth & zero\n\t\t\t\t\t// getBoundingClientRect().width unless display is changed.\n\t\t\t\t\t// Support: IE <=11 only\n\t\t\t\t\t// Running getBoundingClientRect on a disconnected node\n\t\t\t\t\t// in IE throws an error.\n\t\t\t\t\t( !elem.getClientRects().length || !elem.getBoundingClientRect().width ) ?\n\t\t\t\t\t\tswap( elem, cssShow, function() {\n\t\t\t\t\t\t\treturn getWidthOrHeight( elem, dimension, extra );\n\t\t\t\t\t\t} ) :\n\t\t\t\t\t\tgetWidthOrHeight( elem, dimension, extra );\n\t\t\t}\n\t\t},\n\n\t\tset: function( elem, value, extra ) {\n\t\t\tvar matches,\n\t\t\t\tstyles = getStyles( elem ),\n\t\t\t\tisBorderBox = jQuery.css( elem, \"boxSizing\", false, styles ) === \"border-box\",\n\t\t\t\tsubtract = extra && boxModelAdjustment(\n\t\t\t\t\telem,\n\t\t\t\t\tdimension,\n\t\t\t\t\textra,\n\t\t\t\t\tisBorderBox,\n\t\t\t\t\tstyles\n\t\t\t\t);\n\n\t\t\t// Account for unreliable border-box dimensions by comparing offset* to computed and\n\t\t\t// faking a content-box to get border and padding (gh-3699)\n\t\t\tif ( isBorderBox && support.scrollboxSize() === styles.position ) {\n\t\t\t\tsubtract -= Math.ceil(\n\t\t\t\t\telem[ \"offset\" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -\n\t\t\t\t\tparseFloat( styles[ dimension ] ) -\n\t\t\t\t\tboxModelAdjustment( elem, dimension, \"border\", false, styles ) -\n\t\t\t\t\t0.5\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Convert to pixels if value adjustment is needed\n\t\t\tif ( subtract && ( matches = rcssNum.exec( value ) ) &&\n\t\t\t\t( matches[ 3 ] || \"px\" ) !== \"px\" ) {\n\n\t\t\t\telem.style[ dimension ] = value;\n\t\t\t\tvalue = jQuery.css( elem, dimension );\n\t\t\t}\n\n\t\t\treturn setPositiveNumber( elem, value, subtract );\n\t\t}\n\t};\n} );\n\njQuery.cssHooks.marginLeft = addGetHookIf( support.reliableMarginLeft,\n\tfunction( elem, computed ) {\n\t\tif ( computed ) {\n\t\t\treturn ( parseFloat( curCSS( elem, \"marginLeft\" ) ) ||\n\t\t\t\telem.getBoundingClientRect().left -\n\t\t\t\t\tswap( elem, { marginLeft: 0 }, function() {\n\t\t\t\t\t\treturn elem.getBoundingClientRect().left;\n\t\t\t\t\t} )\n\t\t\t\t) + \"px\";\n\t\t}\n\t}\n);\n\n// These hooks are used by animate to expand properties\njQuery.each( {\n\tmargin: \"\",\n\tpadding: \"\",\n\tborder: \"Width\"\n}, function( prefix, suffix ) {\n\tjQuery.cssHooks[ prefix + suffix ] = {\n\t\texpand: function( value ) {\n\t\t\tvar i = 0,\n\t\t\t\texpanded = {},\n\n\t\t\t\t// Assumes a single number if not a string\n\t\t\t\tparts = typeof value === \"string\" ? value.split( \" \" ) : [ value ];\n\n\t\t\tfor ( ; i < 4; i++ ) {\n\t\t\t\texpanded[ prefix + cssExpand[ i ] + suffix ] =\n\t\t\t\t\tparts[ i ] || parts[ i - 2 ] || parts[ 0 ];\n\t\t\t}\n\n\t\t\treturn expanded;\n\t\t}\n\t};\n\n\tif ( prefix !== \"margin\" ) {\n\t\tjQuery.cssHooks[ prefix + suffix ].set = setPositiveNumber;\n\t}\n} );\n\njQuery.fn.extend( {\n\tcss: function( name, value ) {\n\t\treturn access( this, function( elem, name, value ) {\n\t\t\tvar styles, len,\n\t\t\t\tmap = {},\n\t\t\t\ti = 0;\n\n\t\t\tif ( Array.isArray( name ) ) {\n\t\t\t\tstyles = getStyles( elem );\n\t\t\t\tlen = name.length;\n\n\t\t\t\tfor ( ; i < len; i++ ) {\n\t\t\t\t\tmap[ name[ i ] ] = jQuery.css( elem, name[ i ], false, styles );\n\t\t\t\t}\n\n\t\t\t\treturn map;\n\t\t\t}\n\n\t\t\treturn value !== undefined ?\n\t\t\t\tjQuery.style( elem, name, value ) :\n\t\t\t\tjQuery.css( elem, name );\n\t\t}, name, value, arguments.length > 1 );\n\t}\n} );\n\n\nfunction Tween( elem, options, prop, end, easing ) {\n\treturn new Tween.prototype.init( elem, options, prop, end, easing );\n}\njQuery.Tween = Tween;\n\nTween.prototype = {\n\tconstructor: Tween,\n\tinit: function( elem, options, prop, end, easing, unit ) {\n\t\tthis.elem = elem;\n\t\tthis.prop = prop;\n\t\tthis.easing = easing || jQuery.easing._default;\n\t\tthis.options = options;\n\t\tthis.start = this.now = this.cur();\n\t\tthis.end = end;\n\t\tthis.unit = unit || ( jQuery.cssNumber[ prop ] ? \"\" : \"px\" );\n\t},\n\tcur: function() {\n\t\tvar hooks = Tween.propHooks[ this.prop ];\n\n\t\treturn hooks && hooks.get ?\n\t\t\thooks.get( this ) :\n\t\t\tTween.propHooks._default.get( this );\n\t},\n\trun: function( percent ) {\n\t\tvar eased,\n\t\t\thooks = Tween.propHooks[ this.prop ];\n\n\t\tif ( this.options.duration ) {\n\t\t\tthis.pos = eased = jQuery.easing[ this.easing ](\n\t\t\t\tpercent, this.options.duration * percent, 0, 1, this.options.duration\n\t\t\t);\n\t\t} else {\n\t\t\tthis.pos = eased = percent;\n\t\t}\n\t\tthis.now = ( this.end - this.start ) * eased + this.start;\n\n\t\tif ( this.options.step ) {\n\t\t\tthis.options.step.call( this.elem, this.now, this );\n\t\t}\n\n\t\tif ( hooks && hooks.set ) {\n\t\t\thooks.set( this );\n\t\t} else {\n\t\t\tTween.propHooks._default.set( this );\n\t\t}\n\t\treturn this;\n\t}\n};\n\nTween.prototype.init.prototype = Tween.prototype;\n\nTween.propHooks = {\n\t_default: {\n\t\tget: function( tween ) {\n\t\t\tvar result;\n\n\t\t\t// Use a property on the element directly when it is not a DOM element,\n\t\t\t// or when there is no matching style property that exists.\n\t\t\tif ( tween.elem.nodeType !== 1 ||\n\t\t\t\ttween.elem[ tween.prop ] != null && tween.elem.style[ tween.prop ] == null ) {\n\t\t\t\treturn tween.elem[ tween.prop ];\n\t\t\t}\n\n\t\t\t// Passing an empty string as a 3rd parameter to .css will automatically\n\t\t\t// attempt a parseFloat and fallback to a string if the parse fails.\n\t\t\t// Simple values such as \"10px\" are parsed to Float;\n\t\t\t// complex values such as \"rotate(1rad)\" are returned as-is.\n\t\t\tresult = jQuery.css( tween.elem, tween.prop, \"\" );\n\n\t\t\t// Empty strings, null, undefined and \"auto\" are converted to 0.\n\t\t\treturn !result || result === \"auto\" ? 0 : result;\n\t\t},\n\t\tset: function( tween ) {\n\n\t\t\t// Use step hook for back compat.\n\t\t\t// Use cssHook if its there.\n\t\t\t// Use .style if available and use plain properties where available.\n\t\t\tif ( jQuery.fx.step[ tween.prop ] ) {\n\t\t\t\tjQuery.fx.step[ tween.prop ]( tween );\n\t\t\t} else if ( tween.elem.nodeType === 1 &&\n\t\t\t\t( tween.elem.style[ jQuery.cssProps[ tween.prop ] ] != null ||\n\t\t\t\t\tjQuery.cssHooks[ tween.prop ] ) ) {\n\t\t\t\tjQuery.style( tween.elem, tween.prop, tween.now + tween.unit );\n\t\t\t} else {\n\t\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t\t}\n\t\t}\n\t}\n};\n\n// Support: IE <=9 only\n// Panic based approach to setting things on disconnected nodes\nTween.propHooks.scrollTop = Tween.propHooks.scrollLeft = {\n\tset: function( tween ) {\n\t\tif ( tween.elem.nodeType && tween.elem.parentNode ) {\n\t\t\ttween.elem[ tween.prop ] = tween.now;\n\t\t}\n\t}\n};\n\njQuery.easing = {\n\tlinear: function( p ) {\n\t\treturn p;\n\t},\n\tswing: function( p ) {\n\t\treturn 0.5 - Math.cos( p * Math.PI ) / 2;\n\t},\n\t_default: \"swing\"\n};\n\njQuery.fx = Tween.prototype.init;\n\n// Back compat <1.8 extension point\njQuery.fx.step = {};\n\n\n\n\nvar\n\tfxNow, inProgress,\n\trfxtypes = /^(?:toggle|show|hide)$/,\n\trrun = /queueHooks$/;\n\nfunction schedule() {\n\tif ( inProgress ) {\n\t\tif ( document.hidden === false && window.requestAnimationFrame ) {\n\t\t\twindow.requestAnimationFrame( schedule );\n\t\t} else {\n\t\t\twindow.setTimeout( schedule, jQuery.fx.interval );\n\t\t}\n\n\t\tjQuery.fx.tick();\n\t}\n}\n\n// Animations created synchronously will run synchronously\nfunction createFxNow() {\n\twindow.setTimeout( function() {\n\t\tfxNow = undefined;\n\t} );\n\treturn ( fxNow = Date.now() );\n}\n\n// Generate parameters to create a standard animation\nfunction genFx( type, includeWidth ) {\n\tvar which,\n\t\ti = 0,\n\t\tattrs = { height: type };\n\n\t// If we include width, step value is 1 to do all cssExpand values,\n\t// otherwise step value is 2 to skip over Left and Right\n\tincludeWidth = includeWidth ? 1 : 0;\n\tfor ( ; i < 4; i += 2 - includeWidth ) {\n\t\twhich = cssExpand[ i ];\n\t\tattrs[ \"margin\" + which ] = attrs[ \"padding\" + which ] = type;\n\t}\n\n\tif ( includeWidth ) {\n\t\tattrs.opacity = attrs.width = type;\n\t}\n\n\treturn attrs;\n}\n\nfunction createTween( value, prop, animation ) {\n\tvar tween,\n\t\tcollection = ( Animation.tweeners[ prop ] || [] ).concat( Animation.tweeners[ \"*\" ] ),\n\t\tindex = 0,\n\t\tlength = collection.length;\n\tfor ( ; index < length; index++ ) {\n\t\tif ( ( tween = collection[ index ].call( animation, prop, value ) ) ) {\n\n\t\t\t// We're done with this property\n\t\t\treturn tween;\n\t\t}\n\t}\n}\n\nfunction defaultPrefilter( elem, props, opts ) {\n\tvar prop, value, toggle, hooks, oldfire, propTween, restoreDisplay, display,\n\t\tisBox = \"width\" in props || \"height\" in props,\n\t\tanim = this,\n\t\torig = {},\n\t\tstyle = elem.style,\n\t\thidden = elem.nodeType && isHiddenWithinTree( elem ),\n\t\tdataShow = dataPriv.get( elem, \"fxshow\" );\n\n\t// Queue-skipping animations hijack the fx hooks\n\tif ( !opts.queue ) {\n\t\thooks = jQuery._queueHooks( elem, \"fx\" );\n\t\tif ( hooks.unqueued == null ) {\n\t\t\thooks.unqueued = 0;\n\t\t\toldfire = hooks.empty.fire;\n\t\t\thooks.empty.fire = function() {\n\t\t\t\tif ( !hooks.unqueued ) {\n\t\t\t\t\toldfire();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\thooks.unqueued++;\n\n\t\tanim.always( function() {\n\n\t\t\t// Ensure the complete handler is called before this completes\n\t\t\tanim.always( function() {\n\t\t\t\thooks.unqueued--;\n\t\t\t\tif ( !jQuery.queue( elem, \"fx\" ).length ) {\n\t\t\t\t\thooks.empty.fire();\n\t\t\t\t}\n\t\t\t} );\n\t\t} );\n\t}\n\n\t// Detect show/hide animations\n\tfor ( prop in props ) {\n\t\tvalue = props[ prop ];\n\t\tif ( rfxtypes.test( value ) ) {\n\t\t\tdelete props[ prop ];\n\t\t\ttoggle = toggle || value === \"toggle\";\n\t\t\tif ( value === ( hidden ? \"hide\" : \"show\" ) ) {\n\n\t\t\t\t// Pretend to be hidden if this is a \"show\" and\n\t\t\t\t// there is still data from a stopped show/hide\n\t\t\t\tif ( value === \"show\" && dataShow && dataShow[ prop ] !== undefined ) {\n\t\t\t\t\thidden = true;\n\n\t\t\t\t// Ignore all other no-op show/hide data\n\t\t\t\t} else {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t}\n\t\t\torig[ prop ] = dataShow && dataShow[ prop ] || jQuery.style( elem, prop );\n\t\t}\n\t}\n\n\t// Bail out if this is a no-op like .hide().hide()\n\tpropTween = !jQuery.isEmptyObject( props );\n\tif ( !propTween && jQuery.isEmptyObject( orig ) ) {\n\t\treturn;\n\t}\n\n\t// Restrict \"overflow\" and \"display\" styles during box animations\n\tif ( isBox && elem.nodeType === 1 ) {\n\n\t\t// Support: IE <=9 - 11, Edge 12 - 15\n\t\t// Record all 3 overflow attributes because IE does not infer the shorthand\n\t\t// from identically-valued overflowX and overflowY and Edge just mirrors\n\t\t// the overflowX value there.\n\t\topts.overflow = [ style.overflow, style.overflowX, style.overflowY ];\n\n\t\t// Identify a display type, preferring old show/hide data over the CSS cascade\n\t\trestoreDisplay = dataShow && dataShow.display;\n\t\tif ( restoreDisplay == null ) {\n\t\t\trestoreDisplay = dataPriv.get( elem, \"display\" );\n\t\t}\n\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\tif ( display === \"none\" ) {\n\t\t\tif ( restoreDisplay ) {\n\t\t\t\tdisplay = restoreDisplay;\n\t\t\t} else {\n\n\t\t\t\t// Get nonempty value(s) by temporarily forcing visibility\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t\trestoreDisplay = elem.style.display || restoreDisplay;\n\t\t\t\tdisplay = jQuery.css( elem, \"display\" );\n\t\t\t\tshowHide( [ elem ] );\n\t\t\t}\n\t\t}\n\n\t\t// Animate inline elements as inline-block\n\t\tif ( display === \"inline\" || display === \"inline-block\" && restoreDisplay != null ) {\n\t\t\tif ( jQuery.css( elem, \"float\" ) === \"none\" ) {\n\n\t\t\t\t// Restore the original display value at the end of pure show/hide animations\n\t\t\t\tif ( !propTween ) {\n\t\t\t\t\tanim.done( function() {\n\t\t\t\t\t\tstyle.display = restoreDisplay;\n\t\t\t\t\t} );\n\t\t\t\t\tif ( restoreDisplay == null ) {\n\t\t\t\t\t\tdisplay = style.display;\n\t\t\t\t\t\trestoreDisplay = display === \"none\" ? \"\" : display;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstyle.display = \"inline-block\";\n\t\t\t}\n\t\t}\n\t}\n\n\tif ( opts.overflow ) {\n\t\tstyle.overflow = \"hidden\";\n\t\tanim.always( function() {\n\t\t\tstyle.overflow = opts.overflow[ 0 ];\n\t\t\tstyle.overflowX = opts.overflow[ 1 ];\n\t\t\tstyle.overflowY = opts.overflow[ 2 ];\n\t\t} );\n\t}\n\n\t// Implement show/hide animations\n\tpropTween = false;\n\tfor ( prop in orig ) {\n\n\t\t// General show/hide setup for this element animation\n\t\tif ( !propTween ) {\n\t\t\tif ( dataShow ) {\n\t\t\t\tif ( \"hidden\" in dataShow ) {\n\t\t\t\t\thidden = dataShow.hidden;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tdataShow = dataPriv.access( elem, \"fxshow\", { display: restoreDisplay } );\n\t\t\t}\n\n\t\t\t// Store hidden/visible for toggle so `.stop().toggle()` \"reverses\"\n\t\t\tif ( toggle ) {\n\t\t\t\tdataShow.hidden = !hidden;\n\t\t\t}\n\n\t\t\t// Show elements before animating them\n\t\t\tif ( hidden ) {\n\t\t\t\tshowHide( [ elem ], true );\n\t\t\t}\n\n\t\t\t/* eslint-disable no-loop-func */\n\n\t\t\tanim.done( function() {\n\n\t\t\t/* eslint-enable no-loop-func */\n\n\t\t\t\t// The final step of a \"hide\" animation is actually hiding the element\n\t\t\t\tif ( !hidden ) {\n\t\t\t\t\tshowHide( [ elem ] );\n\t\t\t\t}\n\t\t\t\tdataPriv.remove( elem, \"fxshow\" );\n\t\t\t\tfor ( prop in orig ) {\n\t\t\t\t\tjQuery.style( elem, prop, orig[ prop ] );\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Per-property setup\n\t\tpropTween = createTween( hidden ? dataShow[ prop ] : 0, prop, anim );\n\t\tif ( !( prop in dataShow ) ) {\n\t\t\tdataShow[ prop ] = propTween.start;\n\t\t\tif ( hidden ) {\n\t\t\t\tpropTween.end = propTween.start;\n\t\t\t\tpropTween.start = 0;\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction propFilter( props, specialEasing ) {\n\tvar index, name, easing, value, hooks;\n\n\t// camelCase, specialEasing and expand cssHook pass\n\tfor ( index in props ) {\n\t\tname = camelCase( index );\n\t\teasing = specialEasing[ name ];\n\t\tvalue = props[ index ];\n\t\tif ( Array.isArray( value ) ) {\n\t\t\teasing = value[ 1 ];\n\t\t\tvalue = props[ index ] = value[ 0 ];\n\t\t}\n\n\t\tif ( index !== name ) {\n\t\t\tprops[ name ] = value;\n\t\t\tdelete props[ index ];\n\t\t}\n\n\t\thooks = jQuery.cssHooks[ name ];\n\t\tif ( hooks && \"expand\" in hooks ) {\n\t\t\tvalue = hooks.expand( value );\n\t\t\tdelete props[ name ];\n\n\t\t\t// Not quite $.extend, this won't overwrite existing keys.\n\t\t\t// Reusing 'index' because we have the correct \"name\"\n\t\t\tfor ( index in value ) {\n\t\t\t\tif ( !( index in props ) ) {\n\t\t\t\t\tprops[ index ] = value[ index ];\n\t\t\t\t\tspecialEasing[ index ] = easing;\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tspecialEasing[ name ] = easing;\n\t\t}\n\t}\n}\n\nfunction Animation( elem, properties, options ) {\n\tvar result,\n\t\tstopped,\n\t\tindex = 0,\n\t\tlength = Animation.prefilters.length,\n\t\tdeferred = jQuery.Deferred().always( function() {\n\n\t\t\t// Don't match elem in the :animated selector\n\t\t\tdelete tick.elem;\n\t\t} ),\n\t\ttick = function() {\n\t\t\tif ( stopped ) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tvar currentTime = fxNow || createFxNow(),\n\t\t\t\tremaining = Math.max( 0, animation.startTime + animation.duration - currentTime ),\n\n\t\t\t\t// Support: Android 2.3 only\n\t\t\t\t// Archaic crash bug won't allow us to use `1 - ( 0.5 || 0 )` (#12497)\n\t\t\t\ttemp = remaining / animation.duration || 0,\n\t\t\t\tpercent = 1 - temp,\n\t\t\t\tindex = 0,\n\t\t\t\tlength = animation.tweens.length;\n\n\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\tanimation.tweens[ index ].run( percent );\n\t\t\t}\n\n\t\t\tdeferred.notifyWith( elem, [ animation, percent, remaining ] );\n\n\t\t\t// If there's more to do, yield\n\t\t\tif ( percent < 1 && length ) {\n\t\t\t\treturn remaining;\n\t\t\t}\n\n\t\t\t// If this was an empty animation, synthesize a final progress notification\n\t\t\tif ( !length ) {\n\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t}\n\n\t\t\t// Resolve the animation and report its conclusion\n\t\t\tdeferred.resolveWith( elem, [ animation ] );\n\t\t\treturn false;\n\t\t},\n\t\tanimation = deferred.promise( {\n\t\t\telem: elem,\n\t\t\tprops: jQuery.extend( {}, properties ),\n\t\t\topts: jQuery.extend( true, {\n\t\t\t\tspecialEasing: {},\n\t\t\t\teasing: jQuery.easing._default\n\t\t\t}, options ),\n\t\t\toriginalProperties: properties,\n\t\t\toriginalOptions: options,\n\t\t\tstartTime: fxNow || createFxNow(),\n\t\t\tduration: options.duration,\n\t\t\ttweens: [],\n\t\t\tcreateTween: function( prop, end ) {\n\t\t\t\tvar tween = jQuery.Tween( elem, animation.opts, prop, end,\n\t\t\t\t\t\tanimation.opts.specialEasing[ prop ] || animation.opts.easing );\n\t\t\t\tanimation.tweens.push( tween );\n\t\t\t\treturn tween;\n\t\t\t},\n\t\t\tstop: function( gotoEnd ) {\n\t\t\t\tvar index = 0,\n\n\t\t\t\t\t// If we are going to the end, we want to run all the tweens\n\t\t\t\t\t// otherwise we skip this part\n\t\t\t\t\tlength = gotoEnd ? animation.tweens.length : 0;\n\t\t\t\tif ( stopped ) {\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t\tstopped = true;\n\t\t\t\tfor ( ; index < length; index++ ) {\n\t\t\t\t\tanimation.tweens[ index ].run( 1 );\n\t\t\t\t}\n\n\t\t\t\t// Resolve when we played the last frame; otherwise, reject\n\t\t\t\tif ( gotoEnd ) {\n\t\t\t\t\tdeferred.notifyWith( elem, [ animation, 1, 0 ] );\n\t\t\t\t\tdeferred.resolveWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t} else {\n\t\t\t\t\tdeferred.rejectWith( elem, [ animation, gotoEnd ] );\n\t\t\t\t}\n\t\t\t\treturn this;\n\t\t\t}\n\t\t} ),\n\t\tprops = animation.props;\n\n\tpropFilter( props, animation.opts.specialEasing );\n\n\tfor ( ; index < length; index++ ) {\n\t\tresult = Animation.prefilters[ index ].call( animation, elem, props, animation.opts );\n\t\tif ( result ) {\n\t\t\tif ( isFunction( result.stop ) ) {\n\t\t\t\tjQuery._queueHooks( animation.elem, animation.opts.queue ).stop =\n\t\t\t\t\tresult.stop.bind( result );\n\t\t\t}\n\t\t\treturn result;\n\t\t}\n\t}\n\n\tjQuery.map( props, createTween, animation );\n\n\tif ( isFunction( animation.opts.start ) ) {\n\t\tanimation.opts.start.call( elem, animation );\n\t}\n\n\t// Attach callbacks from options\n\tanimation\n\t\t.progress( animation.opts.progress )\n\t\t.done( animation.opts.done, animation.opts.complete )\n\t\t.fail( animation.opts.fail )\n\t\t.always( animation.opts.always );\n\n\tjQuery.fx.timer(\n\t\tjQuery.extend( tick, {\n\t\t\telem: elem,\n\t\t\tanim: animation,\n\t\t\tqueue: animation.opts.queue\n\t\t} )\n\t);\n\n\treturn animation;\n}\n\njQuery.Animation = jQuery.extend( Animation, {\n\n\ttweeners: {\n\t\t\"*\": [ function( prop, value ) {\n\t\t\tvar tween = this.createTween( prop, value );\n\t\t\tadjustCSS( tween.elem, prop, rcssNum.exec( value ), tween );\n\t\t\treturn tween;\n\t\t} ]\n\t},\n\n\ttweener: function( props, callback ) {\n\t\tif ( isFunction( props ) ) {\n\t\t\tcallback = props;\n\t\t\tprops = [ \"*\" ];\n\t\t} else {\n\t\t\tprops = props.match( rnothtmlwhite );\n\t\t}\n\n\t\tvar prop,\n\t\t\tindex = 0,\n\t\t\tlength = props.length;\n\n\t\tfor ( ; index < length; index++ ) {\n\t\t\tprop = props[ index ];\n\t\t\tAnimation.tweeners[ prop ] = Animation.tweeners[ prop ] || [];\n\t\t\tAnimation.tweeners[ prop ].unshift( callback );\n\t\t}\n\t},\n\n\tprefilters: [ defaultPrefilter ],\n\n\tprefilter: function( callback, prepend ) {\n\t\tif ( prepend ) {\n\t\t\tAnimation.prefilters.unshift( callback );\n\t\t} else {\n\t\t\tAnimation.prefilters.push( callback );\n\t\t}\n\t}\n} );\n\njQuery.speed = function( speed, easing, fn ) {\n\tvar opt = speed && typeof speed === \"object\" ? jQuery.extend( {}, speed ) : {\n\t\tcomplete: fn || !fn && easing ||\n\t\t\tisFunction( speed ) && speed,\n\t\tduration: speed,\n\t\teasing: fn && easing || easing && !isFunction( easing ) && easing\n\t};\n\n\t// Go to the end state if fx are off\n\tif ( jQuery.fx.off ) {\n\t\topt.duration = 0;\n\n\t} else {\n\t\tif ( typeof opt.duration !== \"number\" ) {\n\t\t\tif ( opt.duration in jQuery.fx.speeds ) {\n\t\t\t\topt.duration = jQuery.fx.speeds[ opt.duration ];\n\n\t\t\t} else {\n\t\t\t\topt.duration = jQuery.fx.speeds._default;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Normalize opt.queue - true/undefined/null -> \"fx\"\n\tif ( opt.queue == null || opt.queue === true ) {\n\t\topt.queue = \"fx\";\n\t}\n\n\t// Queueing\n\topt.old = opt.complete;\n\n\topt.complete = function() {\n\t\tif ( isFunction( opt.old ) ) {\n\t\t\topt.old.call( this );\n\t\t}\n\n\t\tif ( opt.queue ) {\n\t\t\tjQuery.dequeue( this, opt.queue );\n\t\t}\n\t};\n\n\treturn opt;\n};\n\njQuery.fn.extend( {\n\tfadeTo: function( speed, to, easing, callback ) {\n\n\t\t// Show any hidden elements after setting opacity to 0\n\t\treturn this.filter( isHiddenWithinTree ).css( \"opacity\", 0 ).show()\n\n\t\t\t// Animate to the value specified\n\t\t\t.end().animate( { opacity: to }, speed, easing, callback );\n\t},\n\tanimate: function( prop, speed, easing, callback ) {\n\t\tvar empty = jQuery.isEmptyObject( prop ),\n\t\t\toptall = jQuery.speed( speed, easing, callback ),\n\t\t\tdoAnimation = function() {\n\n\t\t\t\t// Operate on a copy of prop so per-property easing won't be lost\n\t\t\t\tvar anim = Animation( this, jQuery.extend( {}, prop ), optall );\n\n\t\t\t\t// Empty animations, or finishing resolves immediately\n\t\t\t\tif ( empty || dataPriv.get( this, \"finish\" ) ) {\n\t\t\t\t\tanim.stop( true );\n\t\t\t\t}\n\t\t\t};\n\t\t\tdoAnimation.finish = doAnimation;\n\n\t\treturn empty || optall.queue === false ?\n\t\t\tthis.each( doAnimation ) :\n\t\t\tthis.queue( optall.queue, doAnimation );\n\t},\n\tstop: function( type, clearQueue, gotoEnd ) {\n\t\tvar stopQueue = function( hooks ) {\n\t\t\tvar stop = hooks.stop;\n\t\t\tdelete hooks.stop;\n\t\t\tstop( gotoEnd );\n\t\t};\n\n\t\tif ( typeof type !== \"string\" ) {\n\t\t\tgotoEnd = clearQueue;\n\t\t\tclearQueue = type;\n\t\t\ttype = undefined;\n\t\t}\n\t\tif ( clearQueue && type !== false ) {\n\t\t\tthis.queue( type || \"fx\", [] );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar dequeue = true,\n\t\t\t\tindex = type != null && type + \"queueHooks\",\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tdata = dataPriv.get( this );\n\n\t\t\tif ( index ) {\n\t\t\t\tif ( data[ index ] && data[ index ].stop ) {\n\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor ( index in data ) {\n\t\t\t\t\tif ( data[ index ] && data[ index ].stop && rrun.test( index ) ) {\n\t\t\t\t\t\tstopQueue( data[ index ] );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this &&\n\t\t\t\t\t( type == null || timers[ index ].queue === type ) ) {\n\n\t\t\t\t\ttimers[ index ].anim.stop( gotoEnd );\n\t\t\t\t\tdequeue = false;\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Start the next in the queue if the last step wasn't forced.\n\t\t\t// Timers currently will call their complete callbacks, which\n\t\t\t// will dequeue but only if they were gotoEnd.\n\t\t\tif ( dequeue || !gotoEnd ) {\n\t\t\t\tjQuery.dequeue( this, type );\n\t\t\t}\n\t\t} );\n\t},\n\tfinish: function( type ) {\n\t\tif ( type !== false ) {\n\t\t\ttype = type || \"fx\";\n\t\t}\n\t\treturn this.each( function() {\n\t\t\tvar index,\n\t\t\t\tdata = dataPriv.get( this ),\n\t\t\t\tqueue = data[ type + \"queue\" ],\n\t\t\t\thooks = data[ type + \"queueHooks\" ],\n\t\t\t\ttimers = jQuery.timers,\n\t\t\t\tlength = queue ? queue.length : 0;\n\n\t\t\t// Enable finishing flag on private data\n\t\t\tdata.finish = true;\n\n\t\t\t// Empty the queue first\n\t\t\tjQuery.queue( this, type, [] );\n\n\t\t\tif ( hooks && hooks.stop ) {\n\t\t\t\thooks.stop.call( this, true );\n\t\t\t}\n\n\t\t\t// Look for any active animations, and finish them\n\t\t\tfor ( index = timers.length; index--; ) {\n\t\t\t\tif ( timers[ index ].elem === this && timers[ index ].queue === type ) {\n\t\t\t\t\ttimers[ index ].anim.stop( true );\n\t\t\t\t\ttimers.splice( index, 1 );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Look for any animations in the old queue and finish them\n\t\t\tfor ( index = 0; index < length; index++ ) {\n\t\t\t\tif ( queue[ index ] && queue[ index ].finish ) {\n\t\t\t\t\tqueue[ index ].finish.call( this );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Turn off finishing flag\n\t\t\tdelete data.finish;\n\t\t} );\n\t}\n} );\n\njQuery.each( [ \"toggle\", \"show\", \"hide\" ], function( i, name ) {\n\tvar cssFn = jQuery.fn[ name ];\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn speed == null || typeof speed === \"boolean\" ?\n\t\t\tcssFn.apply( this, arguments ) :\n\t\t\tthis.animate( genFx( name, true ), speed, easing, callback );\n\t};\n} );\n\n// Generate shortcuts for custom animations\njQuery.each( {\n\tslideDown: genFx( \"show\" ),\n\tslideUp: genFx( \"hide\" ),\n\tslideToggle: genFx( \"toggle\" ),\n\tfadeIn: { opacity: \"show\" },\n\tfadeOut: { opacity: \"hide\" },\n\tfadeToggle: { opacity: \"toggle\" }\n}, function( name, props ) {\n\tjQuery.fn[ name ] = function( speed, easing, callback ) {\n\t\treturn this.animate( props, speed, easing, callback );\n\t};\n} );\n\njQuery.timers = [];\njQuery.fx.tick = function() {\n\tvar timer,\n\t\ti = 0,\n\t\ttimers = jQuery.timers;\n\n\tfxNow = Date.now();\n\n\tfor ( ; i < timers.length; i++ ) {\n\t\ttimer = timers[ i ];\n\n\t\t// Run the timer and safely remove it when done (allowing for external removal)\n\t\tif ( !timer() && timers[ i ] === timer ) {\n\t\t\ttimers.splice( i--, 1 );\n\t\t}\n\t}\n\n\tif ( !timers.length ) {\n\t\tjQuery.fx.stop();\n\t}\n\tfxNow = undefined;\n};\n\njQuery.fx.timer = function( timer ) {\n\tjQuery.timers.push( timer );\n\tjQuery.fx.start();\n};\n\njQuery.fx.interval = 13;\njQuery.fx.start = function() {\n\tif ( inProgress ) {\n\t\treturn;\n\t}\n\n\tinProgress = true;\n\tschedule();\n};\n\njQuery.fx.stop = function() {\n\tinProgress = null;\n};\n\njQuery.fx.speeds = {\n\tslow: 600,\n\tfast: 200,\n\n\t// Default speed\n\t_default: 400\n};\n\n\n// Based off of the plugin by Clint Helfers, with permission.\n// https://web.archive.org/web/20100324014747/http://blindsignals.com/index.php/2009/07/jquery-delay/\njQuery.fn.delay = function( time, type ) {\n\ttime = jQuery.fx ? jQuery.fx.speeds[ time ] || time : time;\n\ttype = type || \"fx\";\n\n\treturn this.queue( type, function( next, hooks ) {\n\t\tvar timeout = window.setTimeout( next, time );\n\t\thooks.stop = function() {\n\t\t\twindow.clearTimeout( timeout );\n\t\t};\n\t} );\n};\n\n\n( function() {\n\tvar input = document.createElement( \"input\" ),\n\t\tselect = document.createElement( \"select\" ),\n\t\topt = select.appendChild( document.createElement( \"option\" ) );\n\n\tinput.type = \"checkbox\";\n\n\t// Support: Android <=4.3 only\n\t// Default value for a checkbox should be \"on\"\n\tsupport.checkOn = input.value !== \"\";\n\n\t// Support: IE <=11 only\n\t// Must access selectedIndex to make default options select\n\tsupport.optSelected = opt.selected;\n\n\t// Support: IE <=11 only\n\t// An input loses its value after becoming a radio\n\tinput = document.createElement( \"input\" );\n\tinput.value = \"t\";\n\tinput.type = \"radio\";\n\tsupport.radioValue = input.value === \"t\";\n} )();\n\n\nvar boolHook,\n\tattrHandle = jQuery.expr.attrHandle;\n\njQuery.fn.extend( {\n\tattr: function( name, value ) {\n\t\treturn access( this, jQuery.attr, name, value, arguments.length > 1 );\n\t},\n\n\tremoveAttr: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.removeAttr( this, name );\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tattr: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set attributes on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Fallback to prop when attributes are not supported\n\t\tif ( typeof elem.getAttribute === \"undefined\" ) {\n\t\t\treturn jQuery.prop( elem, name, value );\n\t\t}\n\n\t\t// Attribute hooks are determined by the lowercase version\n\t\t// Grab necessary hook if one is defined\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\t\t\thooks = jQuery.attrHooks[ name.toLowerCase() ] ||\n\t\t\t\t( jQuery.expr.match.bool.test( name ) ? boolHook : undefined );\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( value === null ) {\n\t\t\t\tjQuery.removeAttr( elem, name );\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\telem.setAttribute( name, value + \"\" );\n\t\t\treturn value;\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\tret = jQuery.find.attr( elem, name );\n\n\t\t// Non-existent attributes return null, we normalize to undefined\n\t\treturn ret == null ? undefined : ret;\n\t},\n\n\tattrHooks: {\n\t\ttype: {\n\t\t\tset: function( elem, value ) {\n\t\t\t\tif ( !support.radioValue && value === \"radio\" &&\n\t\t\t\t\tnodeName( elem, \"input\" ) ) {\n\t\t\t\t\tvar val = elem.value;\n\t\t\t\t\telem.setAttribute( \"type\", value );\n\t\t\t\t\tif ( val ) {\n\t\t\t\t\t\telem.value = val;\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\n\tremoveAttr: function( elem, value ) {\n\t\tvar name,\n\t\t\ti = 0,\n\n\t\t\t// Attribute names can contain non-HTML whitespace characters\n\t\t\t// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n\t\t\tattrNames = value && value.match( rnothtmlwhite );\n\n\t\tif ( attrNames && elem.nodeType === 1 ) {\n\t\t\twhile ( ( name = attrNames[ i++ ] ) ) {\n\t\t\t\telem.removeAttribute( name );\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Hooks for boolean attributes\nboolHook = {\n\tset: function( elem, value, name ) {\n\t\tif ( value === false ) {\n\n\t\t\t// Remove boolean attributes when set to false\n\t\t\tjQuery.removeAttr( elem, name );\n\t\t} else {\n\t\t\telem.setAttribute( name, name );\n\t\t}\n\t\treturn name;\n\t}\n};\n\njQuery.each( jQuery.expr.match.bool.source.match( /\\w+/g ), function( i, name ) {\n\tvar getter = attrHandle[ name ] || jQuery.find.attr;\n\n\tattrHandle[ name ] = function( elem, name, isXML ) {\n\t\tvar ret, handle,\n\t\t\tlowercaseName = name.toLowerCase();\n\n\t\tif ( !isXML ) {\n\n\t\t\t// Avoid an infinite loop by temporarily removing this function from the getter\n\t\t\thandle = attrHandle[ lowercaseName ];\n\t\t\tattrHandle[ lowercaseName ] = ret;\n\t\t\tret = getter( elem, name, isXML ) != null ?\n\t\t\t\tlowercaseName :\n\t\t\t\tnull;\n\t\t\tattrHandle[ lowercaseName ] = handle;\n\t\t}\n\t\treturn ret;\n\t};\n} );\n\n\n\n\nvar rfocusable = /^(?:input|select|textarea|button)$/i,\n\trclickable = /^(?:a|area)$/i;\n\njQuery.fn.extend( {\n\tprop: function( name, value ) {\n\t\treturn access( this, jQuery.prop, name, value, arguments.length > 1 );\n\t},\n\n\tremoveProp: function( name ) {\n\t\treturn this.each( function() {\n\t\t\tdelete this[ jQuery.propFix[ name ] || name ];\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tprop: function( elem, name, value ) {\n\t\tvar ret, hooks,\n\t\t\tnType = elem.nodeType;\n\n\t\t// Don't get/set properties on text, comment and attribute nodes\n\t\tif ( nType === 3 || nType === 8 || nType === 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( nType !== 1 || !jQuery.isXMLDoc( elem ) ) {\n\n\t\t\t// Fix name and attach hooks\n\t\t\tname = jQuery.propFix[ name ] || name;\n\t\t\thooks = jQuery.propHooks[ name ];\n\t\t}\n\n\t\tif ( value !== undefined ) {\n\t\t\tif ( hooks && \"set\" in hooks &&\n\t\t\t\t( ret = hooks.set( elem, value, name ) ) !== undefined ) {\n\t\t\t\treturn ret;\n\t\t\t}\n\n\t\t\treturn ( elem[ name ] = value );\n\t\t}\n\n\t\tif ( hooks && \"get\" in hooks && ( ret = hooks.get( elem, name ) ) !== null ) {\n\t\t\treturn ret;\n\t\t}\n\n\t\treturn elem[ name ];\n\t},\n\n\tpropHooks: {\n\t\ttabIndex: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\t// Support: IE <=9 - 11 only\n\t\t\t\t// elem.tabIndex doesn't always return the\n\t\t\t\t// correct value when it hasn't been explicitly set\n\t\t\t\t// https://web.archive.org/web/20141116233347/http://fluidproject.org/blog/2008/01/09/getting-setting-and-removing-tabindex-values-with-javascript/\n\t\t\t\t// Use proper attribute retrieval(#12072)\n\t\t\t\tvar tabindex = jQuery.find.attr( elem, \"tabindex\" );\n\n\t\t\t\tif ( tabindex ) {\n\t\t\t\t\treturn parseInt( tabindex, 10 );\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\trfocusable.test( elem.nodeName ) ||\n\t\t\t\t\trclickable.test( elem.nodeName ) &&\n\t\t\t\t\telem.href\n\t\t\t\t) {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\t},\n\n\tpropFix: {\n\t\t\"for\": \"htmlFor\",\n\t\t\"class\": \"className\"\n\t}\n} );\n\n// Support: IE <=11 only\n// Accessing the selectedIndex property\n// forces the browser to respect setting selected\n// on the option\n// The getter ensures a default option is selected\n// when in an optgroup\n// eslint rule \"no-unused-expressions\" is disabled for this code\n// since it considers such accessions noop\nif ( !support.optSelected ) {\n\tjQuery.propHooks.selected = {\n\t\tget: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent && parent.parentNode ) {\n\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t}\n\t\t\treturn null;\n\t\t},\n\t\tset: function( elem ) {\n\n\t\t\t/* eslint no-unused-expressions: \"off\" */\n\n\t\t\tvar parent = elem.parentNode;\n\t\t\tif ( parent ) {\n\t\t\t\tparent.selectedIndex;\n\n\t\t\t\tif ( parent.parentNode ) {\n\t\t\t\t\tparent.parentNode.selectedIndex;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\njQuery.each( [\n\t\"tabIndex\",\n\t\"readOnly\",\n\t\"maxLength\",\n\t\"cellSpacing\",\n\t\"cellPadding\",\n\t\"rowSpan\",\n\t\"colSpan\",\n\t\"useMap\",\n\t\"frameBorder\",\n\t\"contentEditable\"\n], function() {\n\tjQuery.propFix[ this.toLowerCase() ] = this;\n} );\n\n\n\n\n\t// Strip and collapse whitespace according to HTML spec\n\t// https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace\n\tfunction stripAndCollapse( value ) {\n\t\tvar tokens = value.match( rnothtmlwhite ) || [];\n\t\treturn tokens.join( \" \" );\n\t}\n\n\nfunction getClass( elem ) {\n\treturn elem.getAttribute && elem.getAttribute( \"class\" ) || \"\";\n}\n\nfunction classesToArray( value ) {\n\tif ( Array.isArray( value ) ) {\n\t\treturn value;\n\t}\n\tif ( typeof value === \"string\" ) {\n\t\treturn value.match( rnothtmlwhite ) || [];\n\t}\n\treturn [];\n}\n\njQuery.fn.extend( {\n\taddClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).addClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\t\t\t\t\t\tif ( cur.indexOf( \" \" + clazz + \" \" ) < 0 ) {\n\t\t\t\t\t\t\tcur += clazz + \" \";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\tremoveClass: function( value ) {\n\t\tvar classes, elem, cur, curValue, clazz, j, finalValue,\n\t\t\ti = 0;\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( j ) {\n\t\t\t\tjQuery( this ).removeClass( value.call( this, j, getClass( this ) ) );\n\t\t\t} );\n\t\t}\n\n\t\tif ( !arguments.length ) {\n\t\t\treturn this.attr( \"class\", \"\" );\n\t\t}\n\n\t\tclasses = classesToArray( value );\n\n\t\tif ( classes.length ) {\n\t\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\t\tcurValue = getClass( elem );\n\n\t\t\t\t// This expression is here for better compressibility (see addClass)\n\t\t\t\tcur = elem.nodeType === 1 && ( \" \" + stripAndCollapse( curValue ) + \" \" );\n\n\t\t\t\tif ( cur ) {\n\t\t\t\t\tj = 0;\n\t\t\t\t\twhile ( ( clazz = classes[ j++ ] ) ) {\n\n\t\t\t\t\t\t// Remove *all* instances\n\t\t\t\t\t\twhile ( cur.indexOf( \" \" + clazz + \" \" ) > -1 ) {\n\t\t\t\t\t\t\tcur = cur.replace( \" \" + clazz + \" \", \" \" );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Only assign if different to avoid unneeded rendering.\n\t\t\t\t\tfinalValue = stripAndCollapse( cur );\n\t\t\t\t\tif ( curValue !== finalValue ) {\n\t\t\t\t\t\telem.setAttribute( \"class\", finalValue );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\t},\n\n\ttoggleClass: function( value, stateVal ) {\n\t\tvar type = typeof value,\n\t\t\tisValidValue = type === \"string\" || Array.isArray( value );\n\n\t\tif ( typeof stateVal === \"boolean\" && isValidValue ) {\n\t\t\treturn stateVal ? this.addClass( value ) : this.removeClass( value );\n\t\t}\n\n\t\tif ( isFunction( value ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).toggleClass(\n\t\t\t\t\tvalue.call( this, i, getClass( this ), stateVal ),\n\t\t\t\t\tstateVal\n\t\t\t\t);\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar className, i, self, classNames;\n\n\t\t\tif ( isValidValue ) {\n\n\t\t\t\t// Toggle individual class names\n\t\t\t\ti = 0;\n\t\t\t\tself = jQuery( this );\n\t\t\t\tclassNames = classesToArray( value );\n\n\t\t\t\twhile ( ( className = classNames[ i++ ] ) ) {\n\n\t\t\t\t\t// Check each className given, space separated list\n\t\t\t\t\tif ( self.hasClass( className ) ) {\n\t\t\t\t\t\tself.removeClass( className );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tself.addClass( className );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t// Toggle whole class name\n\t\t\t} else if ( value === undefined || type === \"boolean\" ) {\n\t\t\t\tclassName = getClass( this );\n\t\t\t\tif ( className ) {\n\n\t\t\t\t\t// Store className if set\n\t\t\t\t\tdataPriv.set( this, \"__className__\", className );\n\t\t\t\t}\n\n\t\t\t\t// If the element has a class name or if we're passed `false`,\n\t\t\t\t// then remove the whole classname (if there was one, the above saved it).\n\t\t\t\t// Otherwise bring back whatever was previously saved (if anything),\n\t\t\t\t// falling back to the empty string if nothing was stored.\n\t\t\t\tif ( this.setAttribute ) {\n\t\t\t\t\tthis.setAttribute( \"class\",\n\t\t\t\t\t\tclassName || value === false ?\n\t\t\t\t\t\t\"\" :\n\t\t\t\t\t\tdataPriv.get( this, \"__className__\" ) || \"\"\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t} );\n\t},\n\n\thasClass: function( selector ) {\n\t\tvar className, elem,\n\t\t\ti = 0;\n\n\t\tclassName = \" \" + selector + \" \";\n\t\twhile ( ( elem = this[ i++ ] ) ) {\n\t\t\tif ( elem.nodeType === 1 &&\n\t\t\t\t( \" \" + stripAndCollapse( getClass( elem ) ) + \" \" ).indexOf( className ) > -1 ) {\n\t\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t}\n} );\n\n\n\n\nvar rreturn = /\\r/g;\n\njQuery.fn.extend( {\n\tval: function( value ) {\n\t\tvar hooks, ret, valueIsFunction,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !arguments.length ) {\n\t\t\tif ( elem ) {\n\t\t\t\thooks = jQuery.valHooks[ elem.type ] ||\n\t\t\t\t\tjQuery.valHooks[ elem.nodeName.toLowerCase() ];\n\n\t\t\t\tif ( hooks &&\n\t\t\t\t\t\"get\" in hooks &&\n\t\t\t\t\t( ret = hooks.get( elem, \"value\" ) ) !== undefined\n\t\t\t\t) {\n\t\t\t\t\treturn ret;\n\t\t\t\t}\n\n\t\t\t\tret = elem.value;\n\n\t\t\t\t// Handle most common string cases\n\t\t\t\tif ( typeof ret === \"string\" ) {\n\t\t\t\t\treturn ret.replace( rreturn, \"\" );\n\t\t\t\t}\n\n\t\t\t\t// Handle cases where value is null/undef or number\n\t\t\t\treturn ret == null ? \"\" : ret;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tvalueIsFunction = isFunction( value );\n\n\t\treturn this.each( function( i ) {\n\t\t\tvar val;\n\n\t\t\tif ( this.nodeType !== 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( valueIsFunction ) {\n\t\t\t\tval = value.call( this, i, jQuery( this ).val() );\n\t\t\t} else {\n\t\t\t\tval = value;\n\t\t\t}\n\n\t\t\t// Treat null/undefined as \"\"; convert numbers to string\n\t\t\tif ( val == null ) {\n\t\t\t\tval = \"\";\n\n\t\t\t} else if ( typeof val === \"number\" ) {\n\t\t\t\tval += \"\";\n\n\t\t\t} else if ( Array.isArray( val ) ) {\n\t\t\t\tval = jQuery.map( val, function( value ) {\n\t\t\t\t\treturn value == null ? \"\" : value + \"\";\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\thooks = jQuery.valHooks[ this.type ] || jQuery.valHooks[ this.nodeName.toLowerCase() ];\n\n\t\t\t// If set returns undefined, fall back to normal setting\n\t\t\tif ( !hooks || !( \"set\" in hooks ) || hooks.set( this, val, \"value\" ) === undefined ) {\n\t\t\t\tthis.value = val;\n\t\t\t}\n\t\t} );\n\t}\n} );\n\njQuery.extend( {\n\tvalHooks: {\n\t\toption: {\n\t\t\tget: function( elem ) {\n\n\t\t\t\tvar val = jQuery.find.attr( elem, \"value\" );\n\t\t\t\treturn val != null ?\n\t\t\t\t\tval :\n\n\t\t\t\t\t// Support: IE <=10 - 11 only\n\t\t\t\t\t// option.text throws exceptions (#14686, #14858)\n\t\t\t\t\t// Strip and collapse whitespace\n\t\t\t\t\t// https://html.spec.whatwg.org/#strip-and-collapse-whitespace\n\t\t\t\t\tstripAndCollapse( jQuery.text( elem ) );\n\t\t\t}\n\t\t},\n\t\tselect: {\n\t\t\tget: function( elem ) {\n\t\t\t\tvar value, option, i,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tindex = elem.selectedIndex,\n\t\t\t\t\tone = elem.type === \"select-one\",\n\t\t\t\t\tvalues = one ? null : [],\n\t\t\t\t\tmax = one ? index + 1 : options.length;\n\n\t\t\t\tif ( index < 0 ) {\n\t\t\t\t\ti = max;\n\n\t\t\t\t} else {\n\t\t\t\t\ti = one ? index : 0;\n\t\t\t\t}\n\n\t\t\t\t// Loop through all the selected options\n\t\t\t\tfor ( ; i < max; i++ ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t// IE8-9 doesn't update selected after form reset (#2551)\n\t\t\t\t\tif ( ( option.selected || i === index ) &&\n\n\t\t\t\t\t\t\t// Don't return options that are disabled or in a disabled optgroup\n\t\t\t\t\t\t\t!option.disabled &&\n\t\t\t\t\t\t\t( !option.parentNode.disabled ||\n\t\t\t\t\t\t\t\t!nodeName( option.parentNode, \"optgroup\" ) ) ) {\n\n\t\t\t\t\t\t// Get the specific value for the option\n\t\t\t\t\t\tvalue = jQuery( option ).val();\n\n\t\t\t\t\t\t// We don't need an array for one selects\n\t\t\t\t\t\tif ( one ) {\n\t\t\t\t\t\t\treturn value;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Multi-Selects return an array\n\t\t\t\t\t\tvalues.push( value );\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn values;\n\t\t\t},\n\n\t\t\tset: function( elem, value ) {\n\t\t\t\tvar optionSet, option,\n\t\t\t\t\toptions = elem.options,\n\t\t\t\t\tvalues = jQuery.makeArray( value ),\n\t\t\t\t\ti = options.length;\n\n\t\t\t\twhile ( i-- ) {\n\t\t\t\t\toption = options[ i ];\n\n\t\t\t\t\t/* eslint-disable no-cond-assign */\n\n\t\t\t\t\tif ( option.selected =\n\t\t\t\t\t\tjQuery.inArray( jQuery.valHooks.option.get( option ), values ) > -1\n\t\t\t\t\t) {\n\t\t\t\t\t\toptionSet = true;\n\t\t\t\t\t}\n\n\t\t\t\t\t/* eslint-enable no-cond-assign */\n\t\t\t\t}\n\n\t\t\t\t// Force browsers to behave consistently when non-matching value is set\n\t\t\t\tif ( !optionSet ) {\n\t\t\t\t\telem.selectedIndex = -1;\n\t\t\t\t}\n\t\t\t\treturn values;\n\t\t\t}\n\t\t}\n\t}\n} );\n\n// Radios and checkboxes getter/setter\njQuery.each( [ \"radio\", \"checkbox\" ], function() {\n\tjQuery.valHooks[ this ] = {\n\t\tset: function( elem, value ) {\n\t\t\tif ( Array.isArray( value ) ) {\n\t\t\t\treturn ( elem.checked = jQuery.inArray( jQuery( elem ).val(), value ) > -1 );\n\t\t\t}\n\t\t}\n\t};\n\tif ( !support.checkOn ) {\n\t\tjQuery.valHooks[ this ].get = function( elem ) {\n\t\t\treturn elem.getAttribute( \"value\" ) === null ? \"on\" : elem.value;\n\t\t};\n\t}\n} );\n\n\n\n\n// Return jQuery for attributes-only inclusion\n\n\nsupport.focusin = \"onfocusin\" in window;\n\n\nvar rfocusMorph = /^(?:focusinfocus|focusoutblur)$/,\n\tstopPropagationCallback = function( e ) {\n\t\te.stopPropagation();\n\t};\n\njQuery.extend( jQuery.event, {\n\n\ttrigger: function( event, data, elem, onlyHandlers ) {\n\n\t\tvar i, cur, tmp, bubbleType, ontype, handle, special, lastElement,\n\t\t\teventPath = [ elem || document ],\n\t\t\ttype = hasOwn.call( event, \"type\" ) ? event.type : event,\n\t\t\tnamespaces = hasOwn.call( event, \"namespace\" ) ? event.namespace.split( \".\" ) : [];\n\n\t\tcur = lastElement = tmp = elem = elem || document;\n\n\t\t// Don't do events on text and comment nodes\n\t\tif ( elem.nodeType === 3 || elem.nodeType === 8 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// focus/blur morphs to focusin/out; ensure we're not firing them right now\n\t\tif ( rfocusMorph.test( type + jQuery.event.triggered ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( type.indexOf( \".\" ) > -1 ) {\n\n\t\t\t// Namespaced trigger; create a regexp to match event type in handle()\n\t\t\tnamespaces = type.split( \".\" );\n\t\t\ttype = namespaces.shift();\n\t\t\tnamespaces.sort();\n\t\t}\n\t\tontype = type.indexOf( \":\" ) < 0 && \"on\" + type;\n\n\t\t// Caller can pass in a jQuery.Event object, Object, or just an event type string\n\t\tevent = event[ jQuery.expando ] ?\n\t\t\tevent :\n\t\t\tnew jQuery.Event( type, typeof event === \"object\" && event );\n\n\t\t// Trigger bitmask: & 1 for native handlers; & 2 for jQuery (always true)\n\t\tevent.isTrigger = onlyHandlers ? 2 : 3;\n\t\tevent.namespace = namespaces.join( \".\" );\n\t\tevent.rnamespace = event.namespace ?\n\t\t\tnew RegExp( \"(^|\\\\.)\" + namespaces.join( \"\\\\.(?:.*\\\\.|)\" ) + \"(\\\\.|$)\" ) :\n\t\t\tnull;\n\n\t\t// Clean up the event in case it is being reused\n\t\tevent.result = undefined;\n\t\tif ( !event.target ) {\n\t\t\tevent.target = elem;\n\t\t}\n\n\t\t// Clone any incoming data and prepend the event, creating the handler arg list\n\t\tdata = data == null ?\n\t\t\t[ event ] :\n\t\t\tjQuery.makeArray( data, [ event ] );\n\n\t\t// Allow special events to draw outside the lines\n\t\tspecial = jQuery.event.special[ type ] || {};\n\t\tif ( !onlyHandlers && special.trigger && special.trigger.apply( elem, data ) === false ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Determine event propagation path in advance, per W3C events spec (#9951)\n\t\t// Bubble up to document, then to window; watch for a global ownerDocument var (#9724)\n\t\tif ( !onlyHandlers && !special.noBubble && !isWindow( elem ) ) {\n\n\t\t\tbubbleType = special.delegateType || type;\n\t\t\tif ( !rfocusMorph.test( bubbleType + type ) ) {\n\t\t\t\tcur = cur.parentNode;\n\t\t\t}\n\t\t\tfor ( ; cur; cur = cur.parentNode ) {\n\t\t\t\teventPath.push( cur );\n\t\t\t\ttmp = cur;\n\t\t\t}\n\n\t\t\t// Only add window if we got to document (e.g., not plain obj or detached DOM)\n\t\t\tif ( tmp === ( elem.ownerDocument || document ) ) {\n\t\t\t\teventPath.push( tmp.defaultView || tmp.parentWindow || window );\n\t\t\t}\n\t\t}\n\n\t\t// Fire handlers on the event path\n\t\ti = 0;\n\t\twhile ( ( cur = eventPath[ i++ ] ) && !event.isPropagationStopped() ) {\n\t\t\tlastElement = cur;\n\t\t\tevent.type = i > 1 ?\n\t\t\t\tbubbleType :\n\t\t\t\tspecial.bindType || type;\n\n\t\t\t// jQuery handler\n\t\t\thandle = ( dataPriv.get( cur, \"events\" ) || {} )[ event.type ] &&\n\t\t\t\tdataPriv.get( cur, \"handle\" );\n\t\t\tif ( handle ) {\n\t\t\t\thandle.apply( cur, data );\n\t\t\t}\n\n\t\t\t// Native handler\n\t\t\thandle = ontype && cur[ ontype ];\n\t\t\tif ( handle && handle.apply && acceptData( cur ) ) {\n\t\t\t\tevent.result = handle.apply( cur, data );\n\t\t\t\tif ( event.result === false ) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tevent.type = type;\n\n\t\t// If nobody prevented the default action, do it now\n\t\tif ( !onlyHandlers && !event.isDefaultPrevented() ) {\n\n\t\t\tif ( ( !special._default ||\n\t\t\t\tspecial._default.apply( eventPath.pop(), data ) === false ) &&\n\t\t\t\tacceptData( elem ) ) {\n\n\t\t\t\t// Call a native DOM method on the target with the same name as the event.\n\t\t\t\t// Don't do default actions on window, that's where global variables be (#6170)\n\t\t\t\tif ( ontype && isFunction( elem[ type ] ) && !isWindow( elem ) ) {\n\n\t\t\t\t\t// Don't re-trigger an onFOO event when we call its FOO() method\n\t\t\t\t\ttmp = elem[ ontype ];\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = null;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Prevent re-triggering of the same event, since we already bubbled it above\n\t\t\t\t\tjQuery.event.triggered = type;\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.addEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\telem[ type ]();\n\n\t\t\t\t\tif ( event.isPropagationStopped() ) {\n\t\t\t\t\t\tlastElement.removeEventListener( type, stopPropagationCallback );\n\t\t\t\t\t}\n\n\t\t\t\t\tjQuery.event.triggered = undefined;\n\n\t\t\t\t\tif ( tmp ) {\n\t\t\t\t\t\telem[ ontype ] = tmp;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn event.result;\n\t},\n\n\t// Piggyback on a donor event to simulate a different one\n\t// Used only for `focus(in | out)` events\n\tsimulate: function( type, elem, event ) {\n\t\tvar e = jQuery.extend(\n\t\t\tnew jQuery.Event(),\n\t\t\tevent,\n\t\t\t{\n\t\t\t\ttype: type,\n\t\t\t\tisSimulated: true\n\t\t\t}\n\t\t);\n\n\t\tjQuery.event.trigger( e, null, elem );\n\t}\n\n} );\n\njQuery.fn.extend( {\n\n\ttrigger: function( type, data ) {\n\t\treturn this.each( function() {\n\t\t\tjQuery.event.trigger( type, data, this );\n\t\t} );\n\t},\n\ttriggerHandler: function( type, data ) {\n\t\tvar elem = this[ 0 ];\n\t\tif ( elem ) {\n\t\t\treturn jQuery.event.trigger( type, data, elem, true );\n\t\t}\n\t}\n} );\n\n\n// Support: Firefox <=44\n// Firefox doesn't have focus(in | out) events\n// Related ticket - https://bugzilla.mozilla.org/show_bug.cgi?id=687787\n//\n// Support: Chrome <=48 - 49, Safari <=9.0 - 9.1\n// focus(in | out) events fire after focus & blur events,\n// which is spec violation - http://www.w3.org/TR/DOM-Level-3-Events/#events-focusevent-event-order\n// Related ticket - https://bugs.chromium.org/p/chromium/issues/detail?id=449857\nif ( !support.focusin ) {\n\tjQuery.each( { focus: \"focusin\", blur: \"focusout\" }, function( orig, fix ) {\n\n\t\t// Attach a single capturing handler on the document while someone wants focusin/focusout\n\t\tvar handler = function( event ) {\n\t\t\tjQuery.event.simulate( fix, event.target, jQuery.event.fix( event ) );\n\t\t};\n\n\t\tjQuery.event.special[ fix ] = {\n\t\t\tsetup: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix );\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.addEventListener( orig, handler, true );\n\t\t\t\t}\n\t\t\t\tdataPriv.access( doc, fix, ( attaches || 0 ) + 1 );\n\t\t\t},\n\t\t\tteardown: function() {\n\t\t\t\tvar doc = this.ownerDocument || this,\n\t\t\t\t\tattaches = dataPriv.access( doc, fix ) - 1;\n\n\t\t\t\tif ( !attaches ) {\n\t\t\t\t\tdoc.removeEventListener( orig, handler, true );\n\t\t\t\t\tdataPriv.remove( doc, fix );\n\n\t\t\t\t} else {\n\t\t\t\t\tdataPriv.access( doc, fix, attaches );\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t} );\n}\nvar location = window.location;\n\nvar nonce = Date.now();\n\nvar rquery = ( /\\?/ );\n\n\n\n// Cross-browser xml parsing\njQuery.parseXML = function( data ) {\n\tvar xml;\n\tif ( !data || typeof data !== \"string\" ) {\n\t\treturn null;\n\t}\n\n\t// Support: IE 9 - 11 only\n\t// IE throws on parseFromString with invalid input.\n\ttry {\n\t\txml = ( new window.DOMParser() ).parseFromString( data, \"text/xml\" );\n\t} catch ( e ) {\n\t\txml = undefined;\n\t}\n\n\tif ( !xml || xml.getElementsByTagName( \"parsererror\" ).length ) {\n\t\tjQuery.error( \"Invalid XML: \" + data );\n\t}\n\treturn xml;\n};\n\n\nvar\n\trbracket = /\\[\\]$/,\n\trCRLF = /\\r?\\n/g,\n\trsubmitterTypes = /^(?:submit|button|image|reset|file)$/i,\n\trsubmittable = /^(?:input|select|textarea|keygen)/i;\n\nfunction buildParams( prefix, obj, traditional, add ) {\n\tvar name;\n\n\tif ( Array.isArray( obj ) ) {\n\n\t\t// Serialize array item.\n\t\tjQuery.each( obj, function( i, v ) {\n\t\t\tif ( traditional || rbracket.test( prefix ) ) {\n\n\t\t\t\t// Treat each array item as a scalar.\n\t\t\t\tadd( prefix, v );\n\n\t\t\t} else {\n\n\t\t\t\t// Item is non-scalar (array or object), encode its numeric index.\n\t\t\t\tbuildParams(\n\t\t\t\t\tprefix + \"[\" + ( typeof v === \"object\" && v != null ? i : \"\" ) + \"]\",\n\t\t\t\t\tv,\n\t\t\t\t\ttraditional,\n\t\t\t\t\tadd\n\t\t\t\t);\n\t\t\t}\n\t\t} );\n\n\t} else if ( !traditional && toType( obj ) === \"object\" ) {\n\n\t\t// Serialize object item.\n\t\tfor ( name in obj ) {\n\t\t\tbuildParams( prefix + \"[\" + name + \"]\", obj[ name ], traditional, add );\n\t\t}\n\n\t} else {\n\n\t\t// Serialize scalar item.\n\t\tadd( prefix, obj );\n\t}\n}\n\n// Serialize an array of form elements or a set of\n// key/values into a query string\njQuery.param = function( a, traditional ) {\n\tvar prefix,\n\t\ts = [],\n\t\tadd = function( key, valueOrFunction ) {\n\n\t\t\t// If value is a function, invoke it and use its return value\n\t\t\tvar value = isFunction( valueOrFunction ) ?\n\t\t\t\tvalueOrFunction() :\n\t\t\t\tvalueOrFunction;\n\n\t\t\ts[ s.length ] = encodeURIComponent( key ) + \"=\" +\n\t\t\t\tencodeURIComponent( value == null ? \"\" : value );\n\t\t};\n\n\t// If an array was passed in, assume that it is an array of form elements.\n\tif ( Array.isArray( a ) || ( a.jquery && !jQuery.isPlainObject( a ) ) ) {\n\n\t\t// Serialize the form elements\n\t\tjQuery.each( a, function() {\n\t\t\tadd( this.name, this.value );\n\t\t} );\n\n\t} else {\n\n\t\t// If traditional, encode the \"old\" way (the way 1.3.2 or older\n\t\t// did it), otherwise encode params recursively.\n\t\tfor ( prefix in a ) {\n\t\t\tbuildParams( prefix, a[ prefix ], traditional, add );\n\t\t}\n\t}\n\n\t// Return the resulting serialization\n\treturn s.join( \"&\" );\n};\n\njQuery.fn.extend( {\n\tserialize: function() {\n\t\treturn jQuery.param( this.serializeArray() );\n\t},\n\tserializeArray: function() {\n\t\treturn this.map( function() {\n\n\t\t\t// Can add propHook for \"elements\" to filter or add form elements\n\t\t\tvar elements = jQuery.prop( this, \"elements\" );\n\t\t\treturn elements ? jQuery.makeArray( elements ) : this;\n\t\t} )\n\t\t.filter( function() {\n\t\t\tvar type = this.type;\n\n\t\t\t// Use .is( \":disabled\" ) so that fieldset[disabled] works\n\t\t\treturn this.name && !jQuery( this ).is( \":disabled\" ) &&\n\t\t\t\trsubmittable.test( this.nodeName ) && !rsubmitterTypes.test( type ) &&\n\t\t\t\t( this.checked || !rcheckableType.test( type ) );\n\t\t} )\n\t\t.map( function( i, elem ) {\n\t\t\tvar val = jQuery( this ).val();\n\n\t\t\tif ( val == null ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tif ( Array.isArray( val ) ) {\n\t\t\t\treturn jQuery.map( val, function( val ) {\n\t\t\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t\t\t} );\n\t\t\t}\n\n\t\t\treturn { name: elem.name, value: val.replace( rCRLF, \"\\r\\n\" ) };\n\t\t} ).get();\n\t}\n} );\n\n\nvar\n\tr20 = /%20/g,\n\trhash = /#.*$/,\n\trantiCache = /([?&])_=[^&]*/,\n\trheaders = /^(.*?):[ \\t]*([^\\r\\n]*)$/mg,\n\n\t// #7653, #8125, #8152: local protocol detection\n\trlocalProtocol = /^(?:about|app|app-storage|.+-extension|file|res|widget):$/,\n\trnoContent = /^(?:GET|HEAD)$/,\n\trprotocol = /^\\/\\//,\n\n\t/* Prefilters\n\t * 1) They are useful to introduce custom dataTypes (see ajax/jsonp.js for an example)\n\t * 2) These are called:\n\t * - BEFORE asking for a transport\n\t * - AFTER param serialization (s.data is a string if s.processData is true)\n\t * 3) key is the dataType\n\t * 4) the catchall symbol \"*\" can be used\n\t * 5) execution will start with transport dataType and THEN continue down to \"*\" if needed\n\t */\n\tprefilters = {},\n\n\t/* Transports bindings\n\t * 1) key is the dataType\n\t * 2) the catchall symbol \"*\" can be used\n\t * 3) selection will start with transport dataType and THEN go to \"*\" if needed\n\t */\n\ttransports = {},\n\n\t// Avoid comment-prolog char sequence (#10098); must appease lint and evade compression\n\tallTypes = \"*/\".concat( \"*\" ),\n\n\t// Anchor tag for parsing the document origin\n\toriginAnchor = document.createElement( \"a\" );\n\toriginAnchor.href = location.href;\n\n// Base \"constructor\" for jQuery.ajaxPrefilter and jQuery.ajaxTransport\nfunction addToPrefiltersOrTransports( structure ) {\n\n\t// dataTypeExpression is optional and defaults to \"*\"\n\treturn function( dataTypeExpression, func ) {\n\n\t\tif ( typeof dataTypeExpression !== \"string\" ) {\n\t\t\tfunc = dataTypeExpression;\n\t\t\tdataTypeExpression = \"*\";\n\t\t}\n\n\t\tvar dataType,\n\t\t\ti = 0,\n\t\t\tdataTypes = dataTypeExpression.toLowerCase().match( rnothtmlwhite ) || [];\n\n\t\tif ( isFunction( func ) ) {\n\n\t\t\t// For each dataType in the dataTypeExpression\n\t\t\twhile ( ( dataType = dataTypes[ i++ ] ) ) {\n\n\t\t\t\t// Prepend if requested\n\t\t\t\tif ( dataType[ 0 ] === \"+\" ) {\n\t\t\t\t\tdataType = dataType.slice( 1 ) || \"*\";\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).unshift( func );\n\n\t\t\t\t// Otherwise append\n\t\t\t\t} else {\n\t\t\t\t\t( structure[ dataType ] = structure[ dataType ] || [] ).push( func );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n}\n\n// Base inspection function for prefilters and transports\nfunction inspectPrefiltersOrTransports( structure, options, originalOptions, jqXHR ) {\n\n\tvar inspected = {},\n\t\tseekingTransport = ( structure === transports );\n\n\tfunction inspect( dataType ) {\n\t\tvar selected;\n\t\tinspected[ dataType ] = true;\n\t\tjQuery.each( structure[ dataType ] || [], function( _, prefilterOrFactory ) {\n\t\t\tvar dataTypeOrTransport = prefilterOrFactory( options, originalOptions, jqXHR );\n\t\t\tif ( typeof dataTypeOrTransport === \"string\" &&\n\t\t\t\t!seekingTransport && !inspected[ dataTypeOrTransport ] ) {\n\n\t\t\t\toptions.dataTypes.unshift( dataTypeOrTransport );\n\t\t\t\tinspect( dataTypeOrTransport );\n\t\t\t\treturn false;\n\t\t\t} else if ( seekingTransport ) {\n\t\t\t\treturn !( selected = dataTypeOrTransport );\n\t\t\t}\n\t\t} );\n\t\treturn selected;\n\t}\n\n\treturn inspect( options.dataTypes[ 0 ] ) || !inspected[ \"*\" ] && inspect( \"*\" );\n}\n\n// A special extend for ajax options\n// that takes \"flat\" options (not to be deep extended)\n// Fixes #9887\nfunction ajaxExtend( target, src ) {\n\tvar key, deep,\n\t\tflatOptions = jQuery.ajaxSettings.flatOptions || {};\n\n\tfor ( key in src ) {\n\t\tif ( src[ key ] !== undefined ) {\n\t\t\t( flatOptions[ key ] ? target : ( deep || ( deep = {} ) ) )[ key ] = src[ key ];\n\t\t}\n\t}\n\tif ( deep ) {\n\t\tjQuery.extend( true, target, deep );\n\t}\n\n\treturn target;\n}\n\n/* Handles responses to an ajax request:\n * - finds the right dataType (mediates between content-type and expected dataType)\n * - returns the corresponding response\n */\nfunction ajaxHandleResponses( s, jqXHR, responses ) {\n\n\tvar ct, type, finalDataType, firstDataType,\n\t\tcontents = s.contents,\n\t\tdataTypes = s.dataTypes;\n\n\t// Remove auto dataType and get content-type in the process\n\twhile ( dataTypes[ 0 ] === \"*\" ) {\n\t\tdataTypes.shift();\n\t\tif ( ct === undefined ) {\n\t\t\tct = s.mimeType || jqXHR.getResponseHeader( \"Content-Type\" );\n\t\t}\n\t}\n\n\t// Check if we're dealing with a known content-type\n\tif ( ct ) {\n\t\tfor ( type in contents ) {\n\t\t\tif ( contents[ type ] && contents[ type ].test( ct ) ) {\n\t\t\t\tdataTypes.unshift( type );\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\t// Check to see if we have a response for the expected dataType\n\tif ( dataTypes[ 0 ] in responses ) {\n\t\tfinalDataType = dataTypes[ 0 ];\n\t} else {\n\n\t\t// Try convertible dataTypes\n\t\tfor ( type in responses ) {\n\t\t\tif ( !dataTypes[ 0 ] || s.converters[ type + \" \" + dataTypes[ 0 ] ] ) {\n\t\t\t\tfinalDataType = type;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif ( !firstDataType ) {\n\t\t\t\tfirstDataType = type;\n\t\t\t}\n\t\t}\n\n\t\t// Or just use first one\n\t\tfinalDataType = finalDataType || firstDataType;\n\t}\n\n\t// If we found a dataType\n\t// We add the dataType to the list if needed\n\t// and return the corresponding response\n\tif ( finalDataType ) {\n\t\tif ( finalDataType !== dataTypes[ 0 ] ) {\n\t\t\tdataTypes.unshift( finalDataType );\n\t\t}\n\t\treturn responses[ finalDataType ];\n\t}\n}\n\n/* Chain conversions given the request and the original response\n * Also sets the responseXXX fields on the jqXHR instance\n */\nfunction ajaxConvert( s, response, jqXHR, isSuccess ) {\n\tvar conv2, current, conv, tmp, prev,\n\t\tconverters = {},\n\n\t\t// Work with a copy of dataTypes in case we need to modify it for conversion\n\t\tdataTypes = s.dataTypes.slice();\n\n\t// Create converters map with lowercased keys\n\tif ( dataTypes[ 1 ] ) {\n\t\tfor ( conv in s.converters ) {\n\t\t\tconverters[ conv.toLowerCase() ] = s.converters[ conv ];\n\t\t}\n\t}\n\n\tcurrent = dataTypes.shift();\n\n\t// Convert to each sequential dataType\n\twhile ( current ) {\n\n\t\tif ( s.responseFields[ current ] ) {\n\t\t\tjqXHR[ s.responseFields[ current ] ] = response;\n\t\t}\n\n\t\t// Apply the dataFilter if provided\n\t\tif ( !prev && isSuccess && s.dataFilter ) {\n\t\t\tresponse = s.dataFilter( response, s.dataType );\n\t\t}\n\n\t\tprev = current;\n\t\tcurrent = dataTypes.shift();\n\n\t\tif ( current ) {\n\n\t\t\t// There's only work to do if current dataType is non-auto\n\t\t\tif ( current === \"*\" ) {\n\n\t\t\t\tcurrent = prev;\n\n\t\t\t// Convert response if prev dataType is non-auto and differs from current\n\t\t\t} else if ( prev !== \"*\" && prev !== current ) {\n\n\t\t\t\t// Seek a direct converter\n\t\t\t\tconv = converters[ prev + \" \" + current ] || converters[ \"* \" + current ];\n\n\t\t\t\t// If none found, seek a pair\n\t\t\t\tif ( !conv ) {\n\t\t\t\t\tfor ( conv2 in converters ) {\n\n\t\t\t\t\t\t// If conv2 outputs current\n\t\t\t\t\t\ttmp = conv2.split( \" \" );\n\t\t\t\t\t\tif ( tmp[ 1 ] === current ) {\n\n\t\t\t\t\t\t\t// If prev can be converted to accepted input\n\t\t\t\t\t\t\tconv = converters[ prev + \" \" + tmp[ 0 ] ] ||\n\t\t\t\t\t\t\t\tconverters[ \"* \" + tmp[ 0 ] ];\n\t\t\t\t\t\t\tif ( conv ) {\n\n\t\t\t\t\t\t\t\t// Condense equivalence converters\n\t\t\t\t\t\t\t\tif ( conv === true ) {\n\t\t\t\t\t\t\t\t\tconv = converters[ conv2 ];\n\n\t\t\t\t\t\t\t\t// Otherwise, insert the intermediate dataType\n\t\t\t\t\t\t\t\t} else if ( converters[ conv2 ] !== true ) {\n\t\t\t\t\t\t\t\t\tcurrent = tmp[ 0 ];\n\t\t\t\t\t\t\t\t\tdataTypes.unshift( tmp[ 1 ] );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Apply converter (if not an equivalence)\n\t\t\t\tif ( conv !== true ) {\n\n\t\t\t\t\t// Unless errors are allowed to bubble, catch and return them\n\t\t\t\t\tif ( conv && s.throws ) {\n\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t} else {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tresponse = conv( response );\n\t\t\t\t\t\t} catch ( e ) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstate: \"parsererror\",\n\t\t\t\t\t\t\t\terror: conv ? e : \"No conversion from \" + prev + \" to \" + current\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn { state: \"success\", data: response };\n}\n\njQuery.extend( {\n\n\t// Counter for holding the number of active queries\n\tactive: 0,\n\n\t// Last-Modified header cache for next request\n\tlastModified: {},\n\tetag: {},\n\n\tajaxSettings: {\n\t\turl: location.href,\n\t\ttype: \"GET\",\n\t\tisLocal: rlocalProtocol.test( location.protocol ),\n\t\tglobal: true,\n\t\tprocessData: true,\n\t\tasync: true,\n\t\tcontentType: \"application/x-www-form-urlencoded; charset=UTF-8\",\n\n\t\t/*\n\t\ttimeout: 0,\n\t\tdata: null,\n\t\tdataType: null,\n\t\tusername: null,\n\t\tpassword: null,\n\t\tcache: null,\n\t\tthrows: false,\n\t\ttraditional: false,\n\t\theaders: {},\n\t\t*/\n\n\t\taccepts: {\n\t\t\t\"*\": allTypes,\n\t\t\ttext: \"text/plain\",\n\t\t\thtml: \"text/html\",\n\t\t\txml: \"application/xml, text/xml\",\n\t\t\tjson: \"application/json, text/javascript\"\n\t\t},\n\n\t\tcontents: {\n\t\t\txml: /\\bxml\\b/,\n\t\t\thtml: /\\bhtml/,\n\t\t\tjson: /\\bjson\\b/\n\t\t},\n\n\t\tresponseFields: {\n\t\t\txml: \"responseXML\",\n\t\t\ttext: \"responseText\",\n\t\t\tjson: \"responseJSON\"\n\t\t},\n\n\t\t// Data converters\n\t\t// Keys separate source (or catchall \"*\") and destination types with a single space\n\t\tconverters: {\n\n\t\t\t// Convert anything to text\n\t\t\t\"* text\": String,\n\n\t\t\t// Text to html (true = no transformation)\n\t\t\t\"text html\": true,\n\n\t\t\t// Evaluate text as a json expression\n\t\t\t\"text json\": JSON.parse,\n\n\t\t\t// Parse text as xml\n\t\t\t\"text xml\": jQuery.parseXML\n\t\t},\n\n\t\t// For options that shouldn't be deep extended:\n\t\t// you can add your own custom options here if\n\t\t// and when you create one that shouldn't be\n\t\t// deep extended (see ajaxExtend)\n\t\tflatOptions: {\n\t\t\turl: true,\n\t\t\tcontext: true\n\t\t}\n\t},\n\n\t// Creates a full fledged settings object into target\n\t// with both ajaxSettings and settings fields.\n\t// If target is omitted, writes into ajaxSettings.\n\tajaxSetup: function( target, settings ) {\n\t\treturn settings ?\n\n\t\t\t// Building a settings object\n\t\t\tajaxExtend( ajaxExtend( target, jQuery.ajaxSettings ), settings ) :\n\n\t\t\t// Extending ajaxSettings\n\t\t\tajaxExtend( jQuery.ajaxSettings, target );\n\t},\n\n\tajaxPrefilter: addToPrefiltersOrTransports( prefilters ),\n\tajaxTransport: addToPrefiltersOrTransports( transports ),\n\n\t// Main method\n\tajax: function( url, options ) {\n\n\t\t// If url is an object, simulate pre-1.5 signature\n\t\tif ( typeof url === \"object\" ) {\n\t\t\toptions = url;\n\t\t\turl = undefined;\n\t\t}\n\n\t\t// Force options to be an object\n\t\toptions = options || {};\n\n\t\tvar transport,\n\n\t\t\t// URL without anti-cache param\n\t\t\tcacheURL,\n\n\t\t\t// Response headers\n\t\t\tresponseHeadersString,\n\t\t\tresponseHeaders,\n\n\t\t\t// timeout handle\n\t\t\ttimeoutTimer,\n\n\t\t\t// Url cleanup var\n\t\t\turlAnchor,\n\n\t\t\t// Request state (becomes false upon send and true upon completion)\n\t\t\tcompleted,\n\n\t\t\t// To know if global events are to be dispatched\n\t\t\tfireGlobals,\n\n\t\t\t// Loop variable\n\t\t\ti,\n\n\t\t\t// uncached part of the url\n\t\t\tuncached,\n\n\t\t\t// Create the final options object\n\t\t\ts = jQuery.ajaxSetup( {}, options ),\n\n\t\t\t// Callbacks context\n\t\t\tcallbackContext = s.context || s,\n\n\t\t\t// Context for global events is callbackContext if it is a DOM node or jQuery collection\n\t\t\tglobalEventContext = s.context &&\n\t\t\t\t( callbackContext.nodeType || callbackContext.jquery ) ?\n\t\t\t\t\tjQuery( callbackContext ) :\n\t\t\t\t\tjQuery.event,\n\n\t\t\t// Deferreds\n\t\t\tdeferred = jQuery.Deferred(),\n\t\t\tcompleteDeferred = jQuery.Callbacks( \"once memory\" ),\n\n\t\t\t// Status-dependent callbacks\n\t\t\tstatusCode = s.statusCode || {},\n\n\t\t\t// Headers (they are sent all at once)\n\t\t\trequestHeaders = {},\n\t\t\trequestHeadersNames = {},\n\n\t\t\t// Default abort message\n\t\t\tstrAbort = \"canceled\",\n\n\t\t\t// Fake xhr\n\t\t\tjqXHR = {\n\t\t\t\treadyState: 0,\n\n\t\t\t\t// Builds headers hashtable if needed\n\t\t\t\tgetResponseHeader: function( key ) {\n\t\t\t\t\tvar match;\n\t\t\t\t\tif ( completed ) {\n\t\t\t\t\t\tif ( !responseHeaders ) {\n\t\t\t\t\t\t\tresponseHeaders = {};\n\t\t\t\t\t\t\twhile ( ( match = rheaders.exec( responseHeadersString ) ) ) {\n\t\t\t\t\t\t\t\tresponseHeaders[ match[ 1 ].toLowerCase() ] = match[ 2 ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmatch = responseHeaders[ key.toLowerCase() ];\n\t\t\t\t\t}\n\t\t\t\t\treturn match == null ? null : match;\n\t\t\t\t},\n\n\t\t\t\t// Raw string\n\t\t\t\tgetAllResponseHeaders: function() {\n\t\t\t\t\treturn completed ? responseHeadersString : null;\n\t\t\t\t},\n\n\t\t\t\t// Caches the header\n\t\t\t\tsetRequestHeader: function( name, value ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\tname = requestHeadersNames[ name.toLowerCase() ] =\n\t\t\t\t\t\t\trequestHeadersNames[ name.toLowerCase() ] || name;\n\t\t\t\t\t\trequestHeaders[ name ] = value;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Overrides response content-type header\n\t\t\t\toverrideMimeType: function( type ) {\n\t\t\t\t\tif ( completed == null ) {\n\t\t\t\t\t\ts.mimeType = type;\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Status-dependent callbacks\n\t\t\t\tstatusCode: function( map ) {\n\t\t\t\t\tvar code;\n\t\t\t\t\tif ( map ) {\n\t\t\t\t\t\tif ( completed ) {\n\n\t\t\t\t\t\t\t// Execute the appropriate callbacks\n\t\t\t\t\t\t\tjqXHR.always( map[ jqXHR.status ] );\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\t// Lazy-add the new callbacks in a way that preserves old ones\n\t\t\t\t\t\t\tfor ( code in map ) {\n\t\t\t\t\t\t\t\tstatusCode[ code ] = [ statusCode[ code ], map[ code ] ];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn this;\n\t\t\t\t},\n\n\t\t\t\t// Cancel the request\n\t\t\t\tabort: function( statusText ) {\n\t\t\t\t\tvar finalText = statusText || strAbort;\n\t\t\t\t\tif ( transport ) {\n\t\t\t\t\t\ttransport.abort( finalText );\n\t\t\t\t\t}\n\t\t\t\t\tdone( 0, finalText );\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\t\t\t};\n\n\t\t// Attach deferreds\n\t\tdeferred.promise( jqXHR );\n\n\t\t// Add protocol if not provided (prefilters might expect it)\n\t\t// Handle falsy url in the settings object (#10093: consistency with old signature)\n\t\t// We also use the url parameter if available\n\t\ts.url = ( ( url || s.url || location.href ) + \"\" )\n\t\t\t.replace( rprotocol, location.protocol + \"//\" );\n\n\t\t// Alias method option to type as per ticket #12004\n\t\ts.type = options.method || options.type || s.method || s.type;\n\n\t\t// Extract dataTypes list\n\t\ts.dataTypes = ( s.dataType || \"*\" ).toLowerCase().match( rnothtmlwhite ) || [ \"\" ];\n\n\t\t// A cross-domain request is in order when the origin doesn't match the current origin.\n\t\tif ( s.crossDomain == null ) {\n\t\t\turlAnchor = document.createElement( \"a\" );\n\n\t\t\t// Support: IE <=8 - 11, Edge 12 - 15\n\t\t\t// IE throws exception on accessing the href property if url is malformed,\n\t\t\t// e.g. http://example.com:80x/\n\t\t\ttry {\n\t\t\t\turlAnchor.href = s.url;\n\n\t\t\t\t// Support: IE <=8 - 11 only\n\t\t\t\t// Anchor's host property isn't correctly set when s.url is relative\n\t\t\t\turlAnchor.href = urlAnchor.href;\n\t\t\t\ts.crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !==\n\t\t\t\t\turlAnchor.protocol + \"//\" + urlAnchor.host;\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// If there is an error parsing the URL, assume it is crossDomain,\n\t\t\t\t// it can be rejected by the transport if it is invalid\n\t\t\t\ts.crossDomain = true;\n\t\t\t}\n\t\t}\n\n\t\t// Convert data if not already a string\n\t\tif ( s.data && s.processData && typeof s.data !== \"string\" ) {\n\t\t\ts.data = jQuery.param( s.data, s.traditional );\n\t\t}\n\n\t\t// Apply prefilters\n\t\tinspectPrefiltersOrTransports( prefilters, s, options, jqXHR );\n\n\t\t// If request was aborted inside a prefilter, stop there\n\t\tif ( completed ) {\n\t\t\treturn jqXHR;\n\t\t}\n\n\t\t// We can fire global events as of now if asked to\n\t\t// Don't fire events if jQuery.event is undefined in an AMD-usage scenario (#15118)\n\t\tfireGlobals = jQuery.event && s.global;\n\n\t\t// Watch for a new set of requests\n\t\tif ( fireGlobals && jQuery.active++ === 0 ) {\n\t\t\tjQuery.event.trigger( \"ajaxStart\" );\n\t\t}\n\n\t\t// Uppercase the type\n\t\ts.type = s.type.toUpperCase();\n\n\t\t// Determine if request has content\n\t\ts.hasContent = !rnoContent.test( s.type );\n\n\t\t// Save the URL in case we're toying with the If-Modified-Since\n\t\t// and/or If-None-Match header later on\n\t\t// Remove hash to simplify url manipulation\n\t\tcacheURL = s.url.replace( rhash, \"\" );\n\n\t\t// More options handling for requests with no content\n\t\tif ( !s.hasContent ) {\n\n\t\t\t// Remember the hash so we can put it back\n\t\t\tuncached = s.url.slice( cacheURL.length );\n\n\t\t\t// If data is available and should be processed, append data to url\n\t\t\tif ( s.data && ( s.processData || typeof s.data === \"string\" ) ) {\n\t\t\t\tcacheURL += ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + s.data;\n\n\t\t\t\t// #9682: remove data so that it's not used in an eventual retry\n\t\t\t\tdelete s.data;\n\t\t\t}\n\n\t\t\t// Add or update anti-cache param if needed\n\t\t\tif ( s.cache === false ) {\n\t\t\t\tcacheURL = cacheURL.replace( rantiCache, \"$1\" );\n\t\t\t\tuncached = ( rquery.test( cacheURL ) ? \"&\" : \"?\" ) + \"_=\" + ( nonce++ ) + uncached;\n\t\t\t}\n\n\t\t\t// Put hash and anti-cache on the URL that will be requested (gh-1732)\n\t\t\ts.url = cacheURL + uncached;\n\n\t\t// Change '%20' to '+' if this is encoded form body content (gh-2658)\n\t\t} else if ( s.data && s.processData &&\n\t\t\t( s.contentType || \"\" ).indexOf( \"application/x-www-form-urlencoded\" ) === 0 ) {\n\t\t\ts.data = s.data.replace( r20, \"+\" );\n\t\t}\n\n\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\tif ( s.ifModified ) {\n\t\t\tif ( jQuery.lastModified[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-Modified-Since\", jQuery.lastModified[ cacheURL ] );\n\t\t\t}\n\t\t\tif ( jQuery.etag[ cacheURL ] ) {\n\t\t\t\tjqXHR.setRequestHeader( \"If-None-Match\", jQuery.etag[ cacheURL ] );\n\t\t\t}\n\t\t}\n\n\t\t// Set the correct header, if data is being sent\n\t\tif ( s.data && s.hasContent && s.contentType !== false || options.contentType ) {\n\t\t\tjqXHR.setRequestHeader( \"Content-Type\", s.contentType );\n\t\t}\n\n\t\t// Set the Accepts header for the server, depending on the dataType\n\t\tjqXHR.setRequestHeader(\n\t\t\t\"Accept\",\n\t\t\ts.dataTypes[ 0 ] && s.accepts[ s.dataTypes[ 0 ] ] ?\n\t\t\t\ts.accepts[ s.dataTypes[ 0 ] ] +\n\t\t\t\t\t( s.dataTypes[ 0 ] !== \"*\" ? \", \" + allTypes + \"; q=0.01\" : \"\" ) :\n\t\t\t\ts.accepts[ \"*\" ]\n\t\t);\n\n\t\t// Check for headers option\n\t\tfor ( i in s.headers ) {\n\t\t\tjqXHR.setRequestHeader( i, s.headers[ i ] );\n\t\t}\n\n\t\t// Allow custom headers/mimetypes and early abort\n\t\tif ( s.beforeSend &&\n\t\t\t( s.beforeSend.call( callbackContext, jqXHR, s ) === false || completed ) ) {\n\n\t\t\t// Abort if not done already and return\n\t\t\treturn jqXHR.abort();\n\t\t}\n\n\t\t// Aborting is no longer a cancellation\n\t\tstrAbort = \"abort\";\n\n\t\t// Install callbacks on deferreds\n\t\tcompleteDeferred.add( s.complete );\n\t\tjqXHR.done( s.success );\n\t\tjqXHR.fail( s.error );\n\n\t\t// Get transport\n\t\ttransport = inspectPrefiltersOrTransports( transports, s, options, jqXHR );\n\n\t\t// If no transport, we auto-abort\n\t\tif ( !transport ) {\n\t\t\tdone( -1, \"No Transport\" );\n\t\t} else {\n\t\t\tjqXHR.readyState = 1;\n\n\t\t\t// Send global event\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxSend\", [ jqXHR, s ] );\n\t\t\t}\n\n\t\t\t// If request was aborted inside ajaxSend, stop there\n\t\t\tif ( completed ) {\n\t\t\t\treturn jqXHR;\n\t\t\t}\n\n\t\t\t// Timeout\n\t\t\tif ( s.async && s.timeout > 0 ) {\n\t\t\t\ttimeoutTimer = window.setTimeout( function() {\n\t\t\t\t\tjqXHR.abort( \"timeout\" );\n\t\t\t\t}, s.timeout );\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tcompleted = false;\n\t\t\t\ttransport.send( requestHeaders, done );\n\t\t\t} catch ( e ) {\n\n\t\t\t\t// Rethrow post-completion exceptions\n\t\t\t\tif ( completed ) {\n\t\t\t\t\tthrow e;\n\t\t\t\t}\n\n\t\t\t\t// Propagate others as results\n\t\t\t\tdone( -1, e );\n\t\t\t}\n\t\t}\n\n\t\t// Callback for when everything is done\n\t\tfunction done( status, nativeStatusText, responses, headers ) {\n\t\t\tvar isSuccess, success, error, response, modified,\n\t\t\t\tstatusText = nativeStatusText;\n\n\t\t\t// Ignore repeat invocations\n\t\t\tif ( completed ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tcompleted = true;\n\n\t\t\t// Clear timeout if it exists\n\t\t\tif ( timeoutTimer ) {\n\t\t\t\twindow.clearTimeout( timeoutTimer );\n\t\t\t}\n\n\t\t\t// Dereference transport for early garbage collection\n\t\t\t// (no matter how long the jqXHR object will be used)\n\t\t\ttransport = undefined;\n\n\t\t\t// Cache response headers\n\t\t\tresponseHeadersString = headers || \"\";\n\n\t\t\t// Set readyState\n\t\t\tjqXHR.readyState = status > 0 ? 4 : 0;\n\n\t\t\t// Determine if successful\n\t\t\tisSuccess = status >= 200 && status < 300 || status === 304;\n\n\t\t\t// Get response data\n\t\t\tif ( responses ) {\n\t\t\t\tresponse = ajaxHandleResponses( s, jqXHR, responses );\n\t\t\t}\n\n\t\t\t// Convert no matter what (that way responseXXX fields are always set)\n\t\t\tresponse = ajaxConvert( s, response, jqXHR, isSuccess );\n\n\t\t\t// If successful, handle type chaining\n\t\t\tif ( isSuccess ) {\n\n\t\t\t\t// Set the If-Modified-Since and/or If-None-Match header, if in ifModified mode.\n\t\t\t\tif ( s.ifModified ) {\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"Last-Modified\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.lastModified[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t\tmodified = jqXHR.getResponseHeader( \"etag\" );\n\t\t\t\t\tif ( modified ) {\n\t\t\t\t\t\tjQuery.etag[ cacheURL ] = modified;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// if no content\n\t\t\t\tif ( status === 204 || s.type === \"HEAD\" ) {\n\t\t\t\t\tstatusText = \"nocontent\";\n\n\t\t\t\t// if not modified\n\t\t\t\t} else if ( status === 304 ) {\n\t\t\t\t\tstatusText = \"notmodified\";\n\n\t\t\t\t// If we have data, let's convert it\n\t\t\t\t} else {\n\t\t\t\t\tstatusText = response.state;\n\t\t\t\t\tsuccess = response.data;\n\t\t\t\t\terror = response.error;\n\t\t\t\t\tisSuccess = !error;\n\t\t\t\t}\n\t\t\t} else {\n\n\t\t\t\t// Extract error from statusText and normalize for non-aborts\n\t\t\t\terror = statusText;\n\t\t\t\tif ( status || !statusText ) {\n\t\t\t\t\tstatusText = \"error\";\n\t\t\t\t\tif ( status < 0 ) {\n\t\t\t\t\t\tstatus = 0;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Set data for the fake xhr object\n\t\t\tjqXHR.status = status;\n\t\t\tjqXHR.statusText = ( nativeStatusText || statusText ) + \"\";\n\n\t\t\t// Success/Error\n\t\t\tif ( isSuccess ) {\n\t\t\t\tdeferred.resolveWith( callbackContext, [ success, statusText, jqXHR ] );\n\t\t\t} else {\n\t\t\t\tdeferred.rejectWith( callbackContext, [ jqXHR, statusText, error ] );\n\t\t\t}\n\n\t\t\t// Status-dependent callbacks\n\t\t\tjqXHR.statusCode( statusCode );\n\t\t\tstatusCode = undefined;\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( isSuccess ? \"ajaxSuccess\" : \"ajaxError\",\n\t\t\t\t\t[ jqXHR, s, isSuccess ? success : error ] );\n\t\t\t}\n\n\t\t\t// Complete\n\t\t\tcompleteDeferred.fireWith( callbackContext, [ jqXHR, statusText ] );\n\n\t\t\tif ( fireGlobals ) {\n\t\t\t\tglobalEventContext.trigger( \"ajaxComplete\", [ jqXHR, s ] );\n\n\t\t\t\t// Handle the global AJAX counter\n\t\t\t\tif ( !( --jQuery.active ) ) {\n\t\t\t\t\tjQuery.event.trigger( \"ajaxStop\" );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn jqXHR;\n\t},\n\n\tgetJSON: function( url, data, callback ) {\n\t\treturn jQuery.get( url, data, callback, \"json\" );\n\t},\n\n\tgetScript: function( url, callback ) {\n\t\treturn jQuery.get( url, undefined, callback, \"script\" );\n\t}\n} );\n\njQuery.each( [ \"get\", \"post\" ], function( i, method ) {\n\tjQuery[ method ] = function( url, data, callback, type ) {\n\n\t\t// Shift arguments if data argument was omitted\n\t\tif ( isFunction( data ) ) {\n\t\t\ttype = type || callback;\n\t\t\tcallback = data;\n\t\t\tdata = undefined;\n\t\t}\n\n\t\t// The url can be an options object (which then must have .url)\n\t\treturn jQuery.ajax( jQuery.extend( {\n\t\t\turl: url,\n\t\t\ttype: method,\n\t\t\tdataType: type,\n\t\t\tdata: data,\n\t\t\tsuccess: callback\n\t\t}, jQuery.isPlainObject( url ) && url ) );\n\t};\n} );\n\n\njQuery._evalUrl = function( url ) {\n\treturn jQuery.ajax( {\n\t\turl: url,\n\n\t\t// Make this explicit, since user can override this through ajaxSetup (#11264)\n\t\ttype: \"GET\",\n\t\tdataType: \"script\",\n\t\tcache: true,\n\t\tasync: false,\n\t\tglobal: false,\n\t\t\"throws\": true\n\t} );\n};\n\n\njQuery.fn.extend( {\n\twrapAll: function( html ) {\n\t\tvar wrap;\n\n\t\tif ( this[ 0 ] ) {\n\t\t\tif ( isFunction( html ) ) {\n\t\t\t\thtml = html.call( this[ 0 ] );\n\t\t\t}\n\n\t\t\t// The elements to wrap the target around\n\t\t\twrap = jQuery( html, this[ 0 ].ownerDocument ).eq( 0 ).clone( true );\n\n\t\t\tif ( this[ 0 ].parentNode ) {\n\t\t\t\twrap.insertBefore( this[ 0 ] );\n\t\t\t}\n\n\t\t\twrap.map( function() {\n\t\t\t\tvar elem = this;\n\n\t\t\t\twhile ( elem.firstElementChild ) {\n\t\t\t\t\telem = elem.firstElementChild;\n\t\t\t\t}\n\n\t\t\t\treturn elem;\n\t\t\t} ).append( this );\n\t\t}\n\n\t\treturn this;\n\t},\n\n\twrapInner: function( html ) {\n\t\tif ( isFunction( html ) ) {\n\t\t\treturn this.each( function( i ) {\n\t\t\t\tjQuery( this ).wrapInner( html.call( this, i ) );\n\t\t\t} );\n\t\t}\n\n\t\treturn this.each( function() {\n\t\t\tvar self = jQuery( this ),\n\t\t\t\tcontents = self.contents();\n\n\t\t\tif ( contents.length ) {\n\t\t\t\tcontents.wrapAll( html );\n\n\t\t\t} else {\n\t\t\t\tself.append( html );\n\t\t\t}\n\t\t} );\n\t},\n\n\twrap: function( html ) {\n\t\tvar htmlIsFunction = isFunction( html );\n\n\t\treturn this.each( function( i ) {\n\t\t\tjQuery( this ).wrapAll( htmlIsFunction ? html.call( this, i ) : html );\n\t\t} );\n\t},\n\n\tunwrap: function( selector ) {\n\t\tthis.parent( selector ).not( \"body\" ).each( function() {\n\t\t\tjQuery( this ).replaceWith( this.childNodes );\n\t\t} );\n\t\treturn this;\n\t}\n} );\n\n\njQuery.expr.pseudos.hidden = function( elem ) {\n\treturn !jQuery.expr.pseudos.visible( elem );\n};\njQuery.expr.pseudos.visible = function( elem ) {\n\treturn !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length );\n};\n\n\n\n\njQuery.ajaxSettings.xhr = function() {\n\ttry {\n\t\treturn new window.XMLHttpRequest();\n\t} catch ( e ) {}\n};\n\nvar xhrSuccessStatus = {\n\n\t\t// File protocol always yields status code 0, assume 200\n\t\t0: 200,\n\n\t\t// Support: IE <=9 only\n\t\t// #1450: sometimes IE returns 1223 when it should be 204\n\t\t1223: 204\n\t},\n\txhrSupported = jQuery.ajaxSettings.xhr();\n\nsupport.cors = !!xhrSupported && ( \"withCredentials\" in xhrSupported );\nsupport.ajax = xhrSupported = !!xhrSupported;\n\njQuery.ajaxTransport( function( options ) {\n\tvar callback, errorCallback;\n\n\t// Cross domain only allowed if supported through XMLHttpRequest\n\tif ( support.cors || xhrSupported && !options.crossDomain ) {\n\t\treturn {\n\t\t\tsend: function( headers, complete ) {\n\t\t\t\tvar i,\n\t\t\t\t\txhr = options.xhr();\n\n\t\t\t\txhr.open(\n\t\t\t\t\toptions.type,\n\t\t\t\t\toptions.url,\n\t\t\t\t\toptions.async,\n\t\t\t\t\toptions.username,\n\t\t\t\t\toptions.password\n\t\t\t\t);\n\n\t\t\t\t// Apply custom fields if provided\n\t\t\t\tif ( options.xhrFields ) {\n\t\t\t\t\tfor ( i in options.xhrFields ) {\n\t\t\t\t\t\txhr[ i ] = options.xhrFields[ i ];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Override mime type if needed\n\t\t\t\tif ( options.mimeType && xhr.overrideMimeType ) {\n\t\t\t\t\txhr.overrideMimeType( options.mimeType );\n\t\t\t\t}\n\n\t\t\t\t// X-Requested-With header\n\t\t\t\t// For cross-domain requests, seeing as conditions for a preflight are\n\t\t\t\t// akin to a jigsaw puzzle, we simply never set it to be sure.\n\t\t\t\t// (it can always be set on a per-request basis or even using ajaxSetup)\n\t\t\t\t// For same-domain requests, won't change header if already provided.\n\t\t\t\tif ( !options.crossDomain && !headers[ \"X-Requested-With\" ] ) {\n\t\t\t\t\theaders[ \"X-Requested-With\" ] = \"XMLHttpRequest\";\n\t\t\t\t}\n\n\t\t\t\t// Set headers\n\t\t\t\tfor ( i in headers ) {\n\t\t\t\t\txhr.setRequestHeader( i, headers[ i ] );\n\t\t\t\t}\n\n\t\t\t\t// Callback\n\t\t\t\tcallback = function( type ) {\n\t\t\t\t\treturn function() {\n\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\tcallback = errorCallback = xhr.onload =\n\t\t\t\t\t\t\t\txhr.onerror = xhr.onabort = xhr.ontimeout =\n\t\t\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif ( type === \"abort\" ) {\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t} else if ( type === \"error\" ) {\n\n\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t// On a manual native abort, IE9 throws\n\t\t\t\t\t\t\t\t// errors on any property access that is not readyState\n\t\t\t\t\t\t\t\tif ( typeof xhr.status !== \"number\" ) {\n\t\t\t\t\t\t\t\t\tcomplete( 0, \"error\" );\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tcomplete(\n\n\t\t\t\t\t\t\t\t\t\t// File: protocol always yields status 0; see #8605, #14207\n\t\t\t\t\t\t\t\t\t\txhr.status,\n\t\t\t\t\t\t\t\t\t\txhr.statusText\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tcomplete(\n\t\t\t\t\t\t\t\t\txhrSuccessStatus[ xhr.status ] || xhr.status,\n\t\t\t\t\t\t\t\t\txhr.statusText,\n\n\t\t\t\t\t\t\t\t\t// Support: IE <=9 only\n\t\t\t\t\t\t\t\t\t// IE9 has no XHR2 but throws on binary (trac-11426)\n\t\t\t\t\t\t\t\t\t// For XHR2 non-text, let the caller handle it (gh-2498)\n\t\t\t\t\t\t\t\t\t( xhr.responseType || \"text\" ) !== \"text\" ||\n\t\t\t\t\t\t\t\t\ttypeof xhr.responseText !== \"string\" ?\n\t\t\t\t\t\t\t\t\t\t{ binary: xhr.response } :\n\t\t\t\t\t\t\t\t\t\t{ text: xhr.responseText },\n\t\t\t\t\t\t\t\t\txhr.getAllResponseHeaders()\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t};\n\n\t\t\t\t// Listen to events\n\t\t\t\txhr.onload = callback();\n\t\t\t\terrorCallback = xhr.onerror = xhr.ontimeout = callback( \"error\" );\n\n\t\t\t\t// Support: IE 9 only\n\t\t\t\t// Use onreadystatechange to replace onabort\n\t\t\t\t// to handle uncaught aborts\n\t\t\t\tif ( xhr.onabort !== undefined ) {\n\t\t\t\t\txhr.onabort = errorCallback;\n\t\t\t\t} else {\n\t\t\t\t\txhr.onreadystatechange = function() {\n\n\t\t\t\t\t\t// Check readyState before timeout as it changes\n\t\t\t\t\t\tif ( xhr.readyState === 4 ) {\n\n\t\t\t\t\t\t\t// Allow onerror to be called first,\n\t\t\t\t\t\t\t// but that will not handle a native abort\n\t\t\t\t\t\t\t// Also, save errorCallback to a variable\n\t\t\t\t\t\t\t// as xhr.onerror cannot be accessed\n\t\t\t\t\t\t\twindow.setTimeout( function() {\n\t\t\t\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\t\t\t\terrorCallback();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\t// Create the abort callback\n\t\t\t\tcallback = callback( \"abort\" );\n\n\t\t\t\ttry {\n\n\t\t\t\t\t// Do send the request (this may raise an exception)\n\t\t\t\t\txhr.send( options.hasContent && options.data || null );\n\t\t\t\t} catch ( e ) {\n\n\t\t\t\t\t// #14683: Only rethrow if this hasn't been notified as an error yet\n\t\t\t\t\tif ( callback ) {\n\t\t\t\t\t\tthrow e;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\n// Prevent auto-execution of scripts when no explicit dataType was provided (See gh-2432)\njQuery.ajaxPrefilter( function( s ) {\n\tif ( s.crossDomain ) {\n\t\ts.contents.script = false;\n\t}\n} );\n\n// Install script dataType\njQuery.ajaxSetup( {\n\taccepts: {\n\t\tscript: \"text/javascript, application/javascript, \" +\n\t\t\t\"application/ecmascript, application/x-ecmascript\"\n\t},\n\tcontents: {\n\t\tscript: /\\b(?:java|ecma)script\\b/\n\t},\n\tconverters: {\n\t\t\"text script\": function( text ) {\n\t\t\tjQuery.globalEval( text );\n\t\t\treturn text;\n\t\t}\n\t}\n} );\n\n// Handle cache's special case and crossDomain\njQuery.ajaxPrefilter( \"script\", function( s ) {\n\tif ( s.cache === undefined ) {\n\t\ts.cache = false;\n\t}\n\tif ( s.crossDomain ) {\n\t\ts.type = \"GET\";\n\t}\n} );\n\n// Bind script tag hack transport\njQuery.ajaxTransport( \"script\", function( s ) {\n\n\t// This transport only deals with cross domain requests\n\tif ( s.crossDomain ) {\n\t\tvar script, callback;\n\t\treturn {\n\t\t\tsend: function( _, complete ) {\n\t\t\t\tscript = jQuery( \"<script>\" ).prop( {\n\t\t\t\t\tcharset: s.scriptCharset,\n\t\t\t\t\tsrc: s.url\n\t\t\t\t} ).on(\n\t\t\t\t\t\"load error\",\n\t\t\t\t\tcallback = function( evt ) {\n\t\t\t\t\t\tscript.remove();\n\t\t\t\t\t\tcallback = null;\n\t\t\t\t\t\tif ( evt ) {\n\t\t\t\t\t\t\tcomplete( evt.type === \"error\" ? 404 : 200, evt.type );\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\n\t\t\t\t// Use native DOM manipulation to avoid our domManip AJAX trickery\n\t\t\t\tdocument.head.appendChild( script[ 0 ] );\n\t\t\t},\n\t\t\tabort: function() {\n\t\t\t\tif ( callback ) {\n\t\t\t\t\tcallback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t}\n} );\n\n\n\n\nvar oldCallbacks = [],\n\trjsonp = /(=)\\?(?=&|$)|\\?\\?/;\n\n// Default jsonp settings\njQuery.ajaxSetup( {\n\tjsonp: \"callback\",\n\tjsonpCallback: function() {\n\t\tvar callback = oldCallbacks.pop() || ( jQuery.expando + \"_\" + ( nonce++ ) );\n\t\tthis[ callback ] = true;\n\t\treturn callback;\n\t}\n} );\n\n// Detect, normalize options and install callbacks for jsonp requests\njQuery.ajaxPrefilter( \"json jsonp\", function( s, originalSettings, jqXHR ) {\n\n\tvar callbackName, overwritten, responseContainer,\n\t\tjsonProp = s.jsonp !== false && ( rjsonp.test( s.url ) ?\n\t\t\t\"url\" :\n\t\t\ttypeof s.data === \"string\" &&\n\t\t\t\t( s.contentType || \"\" )\n\t\t\t\t\t.indexOf( \"application/x-www-form-urlencoded\" ) === 0 &&\n\t\t\t\trjsonp.test( s.data ) && \"data\"\n\t\t);\n\n\t// Handle iff the expected data type is \"jsonp\" or we have a parameter to set\n\tif ( jsonProp || s.dataTypes[ 0 ] === \"jsonp\" ) {\n\n\t\t// Get callback name, remembering preexisting value associated with it\n\t\tcallbackName = s.jsonpCallback = isFunction( s.jsonpCallback ) ?\n\t\t\ts.jsonpCallback() :\n\t\t\ts.jsonpCallback;\n\n\t\t// Insert callback into url or form data\n\t\tif ( jsonProp ) {\n\t\t\ts[ jsonProp ] = s[ jsonProp ].replace( rjsonp, \"$1\" + callbackName );\n\t\t} else if ( s.jsonp !== false ) {\n\t\t\ts.url += ( rquery.test( s.url ) ? \"&\" : \"?\" ) + s.jsonp + \"=\" + callbackName;\n\t\t}\n\n\t\t// Use data converter to retrieve json after script execution\n\t\ts.converters[ \"script json\" ] = function() {\n\t\t\tif ( !responseContainer ) {\n\t\t\t\tjQuery.error( callbackName + \" was not called\" );\n\t\t\t}\n\t\t\treturn responseContainer[ 0 ];\n\t\t};\n\n\t\t// Force json dataType\n\t\ts.dataTypes[ 0 ] = \"json\";\n\n\t\t// Install callback\n\t\toverwritten = window[ callbackName ];\n\t\twindow[ callbackName ] = function() {\n\t\t\tresponseContainer = arguments;\n\t\t};\n\n\t\t// Clean-up function (fires after converters)\n\t\tjqXHR.always( function() {\n\n\t\t\t// If previous value didn't exist - remove it\n\t\t\tif ( overwritten === undefined ) {\n\t\t\t\tjQuery( window ).removeProp( callbackName );\n\n\t\t\t// Otherwise restore preexisting value\n\t\t\t} else {\n\t\t\t\twindow[ callbackName ] = overwritten;\n\t\t\t}\n\n\t\t\t// Save back as free\n\t\t\tif ( s[ callbackName ] ) {\n\n\t\t\t\t// Make sure that re-using the options doesn't screw things around\n\t\t\t\ts.jsonpCallback = originalSettings.jsonpCallback;\n\n\t\t\t\t// Save the callback name for future use\n\t\t\t\toldCallbacks.push( callbackName );\n\t\t\t}\n\n\t\t\t// Call if it was a function and we have a response\n\t\t\tif ( responseContainer && isFunction( overwritten ) ) {\n\t\t\t\toverwritten( responseContainer[ 0 ] );\n\t\t\t}\n\n\t\t\tresponseContainer = overwritten = undefined;\n\t\t} );\n\n\t\t// Delegate to script\n\t\treturn \"script\";\n\t}\n} );\n\n\n\n\n// Support: Safari 8 only\n// In Safari 8 documents created via document.implementation.createHTMLDocument\n// collapse sibling forms: the second one becomes a child of the first one.\n// Because of that, this security measure has to be disabled in Safari 8.\n// https://bugs.webkit.org/show_bug.cgi?id=137337\nsupport.createHTMLDocument = ( function() {\n\tvar body = document.implementation.createHTMLDocument( \"\" ).body;\n\tbody.innerHTML = \"<form></form><form></form>\";\n\treturn body.childNodes.length === 2;\n} )();\n\n\n// Argument \"data\" should be string of html\n// context (optional): If specified, the fragment will be created in this context,\n// defaults to document\n// keepScripts (optional): If true, will include scripts passed in the html string\njQuery.parseHTML = function( data, context, keepScripts ) {\n\tif ( typeof data !== \"string\" ) {\n\t\treturn [];\n\t}\n\tif ( typeof context === \"boolean\" ) {\n\t\tkeepScripts = context;\n\t\tcontext = false;\n\t}\n\n\tvar base, parsed, scripts;\n\n\tif ( !context ) {\n\n\t\t// Stop scripts or inline event handlers from being executed immediately\n\t\t// by using document.implementation\n\t\tif ( support.createHTMLDocument ) {\n\t\t\tcontext = document.implementation.createHTMLDocument( \"\" );\n\n\t\t\t// Set the base href for the created document\n\t\t\t// so any parsed elements with URLs\n\t\t\t// are based on the document's URL (gh-2965)\n\t\t\tbase = context.createElement( \"base\" );\n\t\t\tbase.href = document.location.href;\n\t\t\tcontext.head.appendChild( base );\n\t\t} else {\n\t\t\tcontext = document;\n\t\t}\n\t}\n\n\tparsed = rsingleTag.exec( data );\n\tscripts = !keepScripts && [];\n\n\t// Single tag\n\tif ( parsed ) {\n\t\treturn [ context.createElement( parsed[ 1 ] ) ];\n\t}\n\n\tparsed = buildFragment( [ data ], context, scripts );\n\n\tif ( scripts && scripts.length ) {\n\t\tjQuery( scripts ).remove();\n\t}\n\n\treturn jQuery.merge( [], parsed.childNodes );\n};\n\n\n/**\n * Load a url into a page\n */\njQuery.fn.load = function( url, params, callback ) {\n\tvar selector, type, response,\n\t\tself = this,\n\t\toff = url.indexOf( \" \" );\n\n\tif ( off > -1 ) {\n\t\tselector = stripAndCollapse( url.slice( off ) );\n\t\turl = url.slice( 0, off );\n\t}\n\n\t// If it's a function\n\tif ( isFunction( params ) ) {\n\n\t\t// We assume that it's the callback\n\t\tcallback = params;\n\t\tparams = undefined;\n\n\t// Otherwise, build a param string\n\t} else if ( params && typeof params === \"object\" ) {\n\t\ttype = \"POST\";\n\t}\n\n\t// If we have elements to modify, make the request\n\tif ( self.length > 0 ) {\n\t\tjQuery.ajax( {\n\t\t\turl: url,\n\n\t\t\t// If \"type\" variable is undefined, then \"GET\" method will be used.\n\t\t\t// Make value of this field explicit since\n\t\t\t// user can override it through ajaxSetup method\n\t\t\ttype: type || \"GET\",\n\t\t\tdataType: \"html\",\n\t\t\tdata: params\n\t\t} ).done( function( responseText ) {\n\n\t\t\t// Save response for use in complete callback\n\t\t\tresponse = arguments;\n\n\t\t\tself.html( selector ?\n\n\t\t\t\t// If a selector was specified, locate the right elements in a dummy div\n\t\t\t\t// Exclude scripts to avoid IE 'Permission Denied' errors\n\t\t\t\tjQuery( \"<div>\" ).append( jQuery.parseHTML( responseText ) ).find( selector ) :\n\n\t\t\t\t// Otherwise use the full result\n\t\t\t\tresponseText );\n\n\t\t// If the request succeeds, this function gets \"data\", \"status\", \"jqXHR\"\n\t\t// but they are ignored because response was set above.\n\t\t// If it fails, this function gets \"jqXHR\", \"status\", \"error\"\n\t\t} ).always( callback && function( jqXHR, status ) {\n\t\t\tself.each( function() {\n\t\t\t\tcallback.apply( this, response || [ jqXHR.responseText, status, jqXHR ] );\n\t\t\t} );\n\t\t} );\n\t}\n\n\treturn this;\n};\n\n\n\n\n// Attach a bunch of functions for handling common AJAX events\njQuery.each( [\n\t\"ajaxStart\",\n\t\"ajaxStop\",\n\t\"ajaxComplete\",\n\t\"ajaxError\",\n\t\"ajaxSuccess\",\n\t\"ajaxSend\"\n], function( i, type ) {\n\tjQuery.fn[ type ] = function( fn ) {\n\t\treturn this.on( type, fn );\n\t};\n} );\n\n\n\n\njQuery.expr.pseudos.animated = function( elem ) {\n\treturn jQuery.grep( jQuery.timers, function( fn ) {\n\t\treturn elem === fn.elem;\n\t} ).length;\n};\n\n\n\n\njQuery.offset = {\n\tsetOffset: function( elem, options, i ) {\n\t\tvar curPosition, curLeft, curCSSTop, curTop, curOffset, curCSSLeft, calculatePosition,\n\t\t\tposition = jQuery.css( elem, \"position\" ),\n\t\t\tcurElem = jQuery( elem ),\n\t\t\tprops = {};\n\n\t\t// Set position first, in-case top/left are set even on static elem\n\t\tif ( position === \"static\" ) {\n\t\t\telem.style.position = \"relative\";\n\t\t}\n\n\t\tcurOffset = curElem.offset();\n\t\tcurCSSTop = jQuery.css( elem, \"top\" );\n\t\tcurCSSLeft = jQuery.css( elem, \"left\" );\n\t\tcalculatePosition = ( position === \"absolute\" || position === \"fixed\" ) &&\n\t\t\t( curCSSTop + curCSSLeft ).indexOf( \"auto\" ) > -1;\n\n\t\t// Need to be able to calculate position if either\n\t\t// top or left is auto and position is either absolute or fixed\n\t\tif ( calculatePosition ) {\n\t\t\tcurPosition = curElem.position();\n\t\t\tcurTop = curPosition.top;\n\t\t\tcurLeft = curPosition.left;\n\n\t\t} else {\n\t\t\tcurTop = parseFloat( curCSSTop ) || 0;\n\t\t\tcurLeft = parseFloat( curCSSLeft ) || 0;\n\t\t}\n\n\t\tif ( isFunction( options ) ) {\n\n\t\t\t// Use jQuery.extend here to allow modification of coordinates argument (gh-1848)\n\t\t\toptions = options.call( elem, i, jQuery.extend( {}, curOffset ) );\n\t\t}\n\n\t\tif ( options.top != null ) {\n\t\t\tprops.top = ( options.top - curOffset.top ) + curTop;\n\t\t}\n\t\tif ( options.left != null ) {\n\t\t\tprops.left = ( options.left - curOffset.left ) + curLeft;\n\t\t}\n\n\t\tif ( \"using\" in options ) {\n\t\t\toptions.using.call( elem, props );\n\n\t\t} else {\n\t\t\tcurElem.css( props );\n\t\t}\n\t}\n};\n\njQuery.fn.extend( {\n\n\t// offset() relates an element's border box to the document origin\n\toffset: function( options ) {\n\n\t\t// Preserve chaining for setter\n\t\tif ( arguments.length ) {\n\t\t\treturn options === undefined ?\n\t\t\t\tthis :\n\t\t\t\tthis.each( function( i ) {\n\t\t\t\t\tjQuery.offset.setOffset( this, options, i );\n\t\t\t\t} );\n\t\t}\n\n\t\tvar rect, win,\n\t\t\telem = this[ 0 ];\n\n\t\tif ( !elem ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Return zeros for disconnected and hidden (display: none) elements (gh-2310)\n\t\t// Support: IE <=11 only\n\t\t// Running getBoundingClientRect on a\n\t\t// disconnected node in IE throws an error\n\t\tif ( !elem.getClientRects().length ) {\n\t\t\treturn { top: 0, left: 0 };\n\t\t}\n\n\t\t// Get document-relative position by adding viewport scroll to viewport-relative gBCR\n\t\trect = elem.getBoundingClientRect();\n\t\twin = elem.ownerDocument.defaultView;\n\t\treturn {\n\t\t\ttop: rect.top + win.pageYOffset,\n\t\t\tleft: rect.left + win.pageXOffset\n\t\t};\n\t},\n\n\t// position() relates an element's margin box to its offset parent's padding box\n\t// This corresponds to the behavior of CSS absolute positioning\n\tposition: function() {\n\t\tif ( !this[ 0 ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar offsetParent, offset, doc,\n\t\t\telem = this[ 0 ],\n\t\t\tparentOffset = { top: 0, left: 0 };\n\n\t\t// position:fixed elements are offset from the viewport, which itself always has zero offset\n\t\tif ( jQuery.css( elem, \"position\" ) === \"fixed\" ) {\n\n\t\t\t// Assume position:fixed implies availability of getBoundingClientRect\n\t\t\toffset = elem.getBoundingClientRect();\n\n\t\t} else {\n\t\t\toffset = this.offset();\n\n\t\t\t// Account for the *real* offset parent, which can be the document or its root element\n\t\t\t// when a statically positioned element is identified\n\t\t\tdoc = elem.ownerDocument;\n\t\t\toffsetParent = elem.offsetParent || doc.documentElement;\n\t\t\twhile ( offsetParent &&\n\t\t\t\t( offsetParent === doc.body || offsetParent === doc.documentElement ) &&\n\t\t\t\tjQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\n\t\t\t\toffsetParent = offsetParent.parentNode;\n\t\t\t}\n\t\t\tif ( offsetParent && offsetParent !== elem && offsetParent.nodeType === 1 ) {\n\n\t\t\t\t// Incorporate borders into its offset, since they are outside its content origin\n\t\t\t\tparentOffset = jQuery( offsetParent ).offset();\n\t\t\t\tparentOffset.top += jQuery.css( offsetParent, \"borderTopWidth\", true );\n\t\t\t\tparentOffset.left += jQuery.css( offsetParent, \"borderLeftWidth\", true );\n\t\t\t}\n\t\t}\n\n\t\t// Subtract parent offsets and element margins\n\t\treturn {\n\t\t\ttop: offset.top - parentOffset.top - jQuery.css( elem, \"marginTop\", true ),\n\t\t\tleft: offset.left - parentOffset.left - jQuery.css( elem, \"marginLeft\", true )\n\t\t};\n\t},\n\n\t// This method will return documentElement in the following cases:\n\t// 1) For the element inside the iframe without offsetParent, this method will return\n\t// documentElement of the parent window\n\t// 2) For the hidden or detached element\n\t// 3) For body or html element, i.e. in case of the html node - it will return itself\n\t//\n\t// but those exceptions were never presented as a real life use-cases\n\t// and might be considered as more preferable results.\n\t//\n\t// This logic, however, is not guaranteed and can change at any point in the future\n\toffsetParent: function() {\n\t\treturn this.map( function() {\n\t\t\tvar offsetParent = this.offsetParent;\n\n\t\t\twhile ( offsetParent && jQuery.css( offsetParent, \"position\" ) === \"static\" ) {\n\t\t\t\toffsetParent = offsetParent.offsetParent;\n\t\t\t}\n\n\t\t\treturn offsetParent || documentElement;\n\t\t} );\n\t}\n} );\n\n// Create scrollLeft and scrollTop methods\njQuery.each( { scrollLeft: \"pageXOffset\", scrollTop: \"pageYOffset\" }, function( method, prop ) {\n\tvar top = \"pageYOffset\" === prop;\n\n\tjQuery.fn[ method ] = function( val ) {\n\t\treturn access( this, function( elem, method, val ) {\n\n\t\t\t// Coalesce documents and windows\n\t\t\tvar win;\n\t\t\tif ( isWindow( elem ) ) {\n\t\t\t\twin = elem;\n\t\t\t} else if ( elem.nodeType === 9 ) {\n\t\t\t\twin = elem.defaultView;\n\t\t\t}\n\n\t\t\tif ( val === undefined ) {\n\t\t\t\treturn win ? win[ prop ] : elem[ method ];\n\t\t\t}\n\n\t\t\tif ( win ) {\n\t\t\t\twin.scrollTo(\n\t\t\t\t\t!top ? val : win.pageXOffset,\n\t\t\t\t\ttop ? val : win.pageYOffset\n\t\t\t\t);\n\n\t\t\t} else {\n\t\t\t\telem[ method ] = val;\n\t\t\t}\n\t\t}, method, val, arguments.length );\n\t};\n} );\n\n// Support: Safari <=7 - 9.1, Chrome <=37 - 49\n// Add the top/left cssHooks using jQuery.fn.position\n// Webkit bug: https://bugs.webkit.org/show_bug.cgi?id=29084\n// Blink bug: https://bugs.chromium.org/p/chromium/issues/detail?id=589347\n// getComputedStyle returns percent when specified for top/left/bottom/right;\n// rather than make the css module depend on the offset module, just check for it here\njQuery.each( [ \"top\", \"left\" ], function( i, prop ) {\n\tjQuery.cssHooks[ prop ] = addGetHookIf( support.pixelPosition,\n\t\tfunction( elem, computed ) {\n\t\t\tif ( computed ) {\n\t\t\t\tcomputed = curCSS( elem, prop );\n\n\t\t\t\t// If curCSS returns percentage, fallback to offset\n\t\t\t\treturn rnumnonpx.test( computed ) ?\n\t\t\t\t\tjQuery( elem ).position()[ prop ] + \"px\" :\n\t\t\t\t\tcomputed;\n\t\t\t}\n\t\t}\n\t);\n} );\n\n\n// Create innerHeight, innerWidth, height, width, outerHeight and outerWidth methods\njQuery.each( { Height: \"height\", Width: \"width\" }, function( name, type ) {\n\tjQuery.each( { padding: \"inner\" + name, content: type, \"\": \"outer\" + name },\n\t\tfunction( defaultExtra, funcName ) {\n\n\t\t// Margin is only for outerHeight, outerWidth\n\t\tjQuery.fn[ funcName ] = function( margin, value ) {\n\t\t\tvar chainable = arguments.length && ( defaultExtra || typeof margin !== \"boolean\" ),\n\t\t\t\textra = defaultExtra || ( margin === true || value === true ? \"margin\" : \"border\" );\n\n\t\t\treturn access( this, function( elem, type, value ) {\n\t\t\t\tvar doc;\n\n\t\t\t\tif ( isWindow( elem ) ) {\n\n\t\t\t\t\t// $( window ).outerWidth/Height return w/h including scrollbars (gh-1729)\n\t\t\t\t\treturn funcName.indexOf( \"outer\" ) === 0 ?\n\t\t\t\t\t\telem[ \"inner\" + name ] :\n\t\t\t\t\t\telem.document.documentElement[ \"client\" + name ];\n\t\t\t\t}\n\n\t\t\t\t// Get document width or height\n\t\t\t\tif ( elem.nodeType === 9 ) {\n\t\t\t\t\tdoc = elem.documentElement;\n\n\t\t\t\t\t// Either scroll[Width/Height] or offset[Width/Height] or client[Width/Height],\n\t\t\t\t\t// whichever is greatest\n\t\t\t\t\treturn Math.max(\n\t\t\t\t\t\telem.body[ \"scroll\" + name ], doc[ \"scroll\" + name ],\n\t\t\t\t\t\telem.body[ \"offset\" + name ], doc[ \"offset\" + name ],\n\t\t\t\t\t\tdoc[ \"client\" + name ]\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\treturn value === undefined ?\n\n\t\t\t\t\t// Get width or height on the element, requesting but not forcing parseFloat\n\t\t\t\t\tjQuery.css( elem, type, extra ) :\n\n\t\t\t\t\t// Set width or height on the element\n\t\t\t\t\tjQuery.style( elem, type, value, extra );\n\t\t\t}, type, chainable ? margin : undefined, chainable );\n\t\t};\n\t} );\n} );\n\n\njQuery.each( ( \"blur focus focusin focusout resize scroll click dblclick \" +\n\t\"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave \" +\n\t\"change select submit keydown keypress keyup contextmenu\" ).split( \" \" ),\n\tfunction( i, name ) {\n\n\t// Handle event binding\n\tjQuery.fn[ name ] = function( data, fn ) {\n\t\treturn arguments.length > 0 ?\n\t\t\tthis.on( name, null, data, fn ) :\n\t\t\tthis.trigger( name );\n\t};\n} );\n\njQuery.fn.extend( {\n\thover: function( fnOver, fnOut ) {\n\t\treturn this.mouseenter( fnOver ).mouseleave( fnOut || fnOver );\n\t}\n} );\n\n\n\n\njQuery.fn.extend( {\n\n\tbind: function( types, data, fn ) {\n\t\treturn this.on( types, null, data, fn );\n\t},\n\tunbind: function( types, fn ) {\n\t\treturn this.off( types, null, fn );\n\t},\n\n\tdelegate: function( selector, types, data, fn ) {\n\t\treturn this.on( types, selector, data, fn );\n\t},\n\tundelegate: function( selector, types, fn ) {\n\n\t\t// ( namespace ) or ( selector, types [, fn] )\n\t\treturn arguments.length === 1 ?\n\t\t\tthis.off( selector, \"**\" ) :\n\t\t\tthis.off( types, selector || \"**\", fn );\n\t}\n} );\n\n// Bind a function to a context, optionally partially applying any\n// arguments.\n// jQuery.proxy is deprecated to promote standards (specifically Function#bind)\n// However, it is not slated for removal any time soon\njQuery.proxy = function( fn, context ) {\n\tvar tmp, args, proxy;\n\n\tif ( typeof context === \"string\" ) {\n\t\ttmp = fn[ context ];\n\t\tcontext = fn;\n\t\tfn = tmp;\n\t}\n\n\t// Quick check to determine if target is callable, in the spec\n\t// this throws a TypeError, but we will just return undefined.\n\tif ( !isFunction( fn ) ) {\n\t\treturn undefined;\n\t}\n\n\t// Simulated bind\n\targs = slice.call( arguments, 2 );\n\tproxy = function() {\n\t\treturn fn.apply( context || this, args.concat( slice.call( arguments ) ) );\n\t};\n\n\t// Set the guid of unique handler to the same of original handler, so it can be removed\n\tproxy.guid = fn.guid = fn.guid || jQuery.guid++;\n\n\treturn proxy;\n};\n\njQuery.holdReady = function( hold ) {\n\tif ( hold ) {\n\t\tjQuery.readyWait++;\n\t} else {\n\t\tjQuery.ready( true );\n\t}\n};\njQuery.isArray = Array.isArray;\njQuery.parseJSON = JSON.parse;\njQuery.nodeName = nodeName;\njQuery.isFunction = isFunction;\njQuery.isWindow = isWindow;\njQuery.camelCase = camelCase;\njQuery.type = toType;\n\njQuery.now = Date.now;\n\njQuery.isNumeric = function( obj ) {\n\n\t// As of jQuery 3.0, isNumeric is limited to\n\t// strings and numbers (primitives or objects)\n\t// that can be coerced to finite numbers (gh-2662)\n\tvar type = jQuery.type( obj );\n\treturn ( type === \"number\" || type === \"string\" ) &&\n\n\t\t// parseFloat NaNs numeric-cast false positives (\"\")\n\t\t// ...but misinterprets leading-number strings, particularly hex literals (\"0x...\")\n\t\t// subtraction forces infinities to NaN\n\t\t!isNaN( obj - parseFloat( obj ) );\n};\n\n\n\n\n// Register as a named AMD module, since jQuery can be concatenated with other\n// files that may use define, but not via a proper concatenation script that\n// understands anonymous AMD modules. A named AMD is safest and most robust\n// way to register. Lowercase jquery is used because AMD module names are\n// derived from file names, and jQuery is normally delivered in a lowercase\n// file name. Do this after creating the global so that if an AMD module wants\n// to call noConflict to hide this version of jQuery, it will work.\n\n// Note that for maximum portability, libraries that are not jQuery should\n// declare themselves as anonymous modules, and avoid setting a global if an\n// AMD loader is present. jQuery is a special case. For more information, see\n// https://github.com/jrburke/requirejs/wiki/Updating-existing-libraries#wiki-anon\n\nif ( typeof define === \"function\" && define.amd ) {\n\tdefine( \"jquery\", [], function() {\n\t\treturn jQuery;\n\t} );\n}\n\n\n\n\nvar\n\n\t// Map over jQuery in case of overwrite\n\t_jQuery = window.jQuery,\n\n\t// Map over the $ in case of overwrite\n\t_$ = window.$;\n\njQuery.noConflict = function( deep ) {\n\tif ( window.$ === jQuery ) {\n\t\twindow.$ = _$;\n\t}\n\n\tif ( deep && window.jQuery === jQuery ) {\n\t\twindow.jQuery = _jQuery;\n\t}\n\n\treturn jQuery;\n};\n\n// Expose jQuery and $ identifiers, even in AMD\n// (#7102#comment:10, https://github.com/jquery/jquery/pull/557)\n// and CommonJS for browser emulators (#13566)\nif ( !noGlobal ) {\n\twindow.jQuery = window.$ = jQuery;\n}\n\n\n\n\nreturn jQuery;\n} );\n","//! moment-timezone.js\n//! version : 0.5.17\n//! Copyright (c) JS Foundation and other contributors\n//! license : MIT\n//! github.com/moment/moment-timezone\n\n(function (root, factory) {\n\t\"use strict\";\n\n\t/*global define*/\n\tif (typeof define === 'function' && define.amd) {\n\t\tdefine(['moment'], factory); // AMD\n\t} else if (typeof module === 'object' && module.exports) {\n\t\tmodule.exports = factory(require('moment')); // Node\n\t} else {\n\t\tfactory(root.moment); // Browser\n\t}\n}(this, function (moment) {\n\t\"use strict\";\n\n\t// Do not load moment-timezone a second time.\n\t// if (moment.tz !== undefined) {\n\t// \tlogError('Moment Timezone ' + moment.tz.version + ' was already loaded ' + (moment.tz.dataVersion ? 'with data from ' : 'without any data') + moment.tz.dataVersion);\n\t// \treturn moment;\n\t// }\n\n\tvar VERSION = \"0.5.17\",\n\t\tzones = {},\n\t\tlinks = {},\n\t\tnames = {},\n\t\tguesses = {},\n\t\tcachedGuess,\n\n\t\tmomentVersion = moment.version.split('.'),\n\t\tmajor = +momentVersion[0],\n\t\tminor = +momentVersion[1];\n\n\t// Moment.js version check\n\tif (major < 2 || (major === 2 && minor < 6)) {\n\t\tlogError('Moment Timezone requires Moment.js >= 2.6.0. You are using Moment.js ' + moment.version + '. See momentjs.com');\n\t}\n\n\t/************************************\n\t\tUnpacking\n\t************************************/\n\n\tfunction charCodeToInt(charCode) {\n\t\tif (charCode > 96) {\n\t\t\treturn charCode - 87;\n\t\t} else if (charCode > 64) {\n\t\t\treturn charCode - 29;\n\t\t}\n\t\treturn charCode - 48;\n\t}\n\n\tfunction unpackBase60(string) {\n\t\tvar i = 0,\n\t\t\tparts = string.split('.'),\n\t\t\twhole = parts[0],\n\t\t\tfractional = parts[1] || '',\n\t\t\tmultiplier = 1,\n\t\t\tnum,\n\t\t\tout = 0,\n\t\t\tsign = 1;\n\n\t\t// handle negative numbers\n\t\tif (string.charCodeAt(0) === 45) {\n\t\t\ti = 1;\n\t\t\tsign = -1;\n\t\t}\n\n\t\t// handle digits before the decimal\n\t\tfor (i; i < whole.length; i++) {\n\t\t\tnum = charCodeToInt(whole.charCodeAt(i));\n\t\t\tout = 60 * out + num;\n\t\t}\n\n\t\t// handle digits after the decimal\n\t\tfor (i = 0; i < fractional.length; i++) {\n\t\t\tmultiplier = multiplier / 60;\n\t\t\tnum = charCodeToInt(fractional.charCodeAt(i));\n\t\t\tout += num * multiplier;\n\t\t}\n\n\t\treturn out * sign;\n\t}\n\n\tfunction arrayToInt (array) {\n\t\tfor (var i = 0; i < array.length; i++) {\n\t\t\tarray[i] = unpackBase60(array[i]);\n\t\t}\n\t}\n\n\tfunction intToUntil (array, length) {\n\t\tfor (var i = 0; i < length; i++) {\n\t\t\tarray[i] = Math.round((array[i - 1] || 0) + (array[i] * 60000)); // minutes to milliseconds\n\t\t}\n\n\t\tarray[length - 1] = Infinity;\n\t}\n\n\tfunction mapIndices (source, indices) {\n\t\tvar out = [], i;\n\n\t\tfor (i = 0; i < indices.length; i++) {\n\t\t\tout[i] = source[indices[i]];\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction unpack (string) {\n\t\tvar data = string.split('|'),\n\t\t\toffsets = data[2].split(' '),\n\t\t\tindices = data[3].split(''),\n\t\t\tuntils = data[4].split(' ');\n\n\t\tarrayToInt(offsets);\n\t\tarrayToInt(indices);\n\t\tarrayToInt(untils);\n\n\t\tintToUntil(untils, indices.length);\n\n\t\treturn {\n\t\t\tname : data[0],\n\t\t\tabbrs : mapIndices(data[1].split(' '), indices),\n\t\t\toffsets : mapIndices(offsets, indices),\n\t\t\tuntils : untils,\n\t\t\tpopulation : data[5] | 0\n\t\t};\n\t}\n\n\t/************************************\n\t\tZone object\n\t************************************/\n\n\tfunction Zone (packedString) {\n\t\tif (packedString) {\n\t\t\tthis._set(unpack(packedString));\n\t\t}\n\t}\n\n\tZone.prototype = {\n\t\t_set : function (unpacked) {\n\t\t\tthis.name = unpacked.name;\n\t\t\tthis.abbrs = unpacked.abbrs;\n\t\t\tthis.untils = unpacked.untils;\n\t\t\tthis.offsets = unpacked.offsets;\n\t\t\tthis.population = unpacked.population;\n\t\t},\n\n\t\t_index : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\tuntils = this.untils,\n\t\t\t\ti;\n\n\t\t\tfor (i = 0; i < untils.length; i++) {\n\t\t\t\tif (target < untils[i]) {\n\t\t\t\t\treturn i;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tparse : function (timestamp) {\n\t\t\tvar target = +timestamp,\n\t\t\t\toffsets = this.offsets,\n\t\t\t\tuntils = this.untils,\n\t\t\t\tmax = untils.length - 1,\n\t\t\t\toffset, offsetNext, offsetPrev, i;\n\n\t\t\tfor (i = 0; i < max; i++) {\n\t\t\t\toffset = offsets[i];\n\t\t\t\toffsetNext = offsets[i + 1];\n\t\t\t\toffsetPrev = offsets[i ? i - 1 : i];\n\n\t\t\t\tif (offset < offsetNext && tz.moveAmbiguousForward) {\n\t\t\t\t\toffset = offsetNext;\n\t\t\t\t} else if (offset > offsetPrev && tz.moveInvalidForward) {\n\t\t\t\t\toffset = offsetPrev;\n\t\t\t\t}\n\n\t\t\t\tif (target < untils[i] - (offset * 60000)) {\n\t\t\t\t\treturn offsets[i];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn offsets[max];\n\t\t},\n\n\t\tabbr : function (mom) {\n\t\t\treturn this.abbrs[this._index(mom)];\n\t\t},\n\n\t\toffset : function (mom) {\n\t\t\tlogError(\"zone.offset has been deprecated in favor of zone.utcOffset\");\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t},\n\n\t\tutcOffset : function (mom) {\n\t\t\treturn this.offsets[this._index(mom)];\n\t\t}\n\t};\n\n\t/************************************\n\t\tCurrent Timezone\n\t************************************/\n\n\tfunction OffsetAt(at) {\n\t\tvar timeString = at.toTimeString();\n\t\tvar abbr = timeString.match(/\\([a-z ]+\\)/i);\n\t\tif (abbr && abbr[0]) {\n\t\t\t// 17:56:31 GMT-0600 (CST)\n\t\t\t// 17:56:31 GMT-0600 (Central Standard Time)\n\t\t\tabbr = abbr[0].match(/[A-Z]/g);\n\t\t\tabbr = abbr ? abbr.join('') : undefined;\n\t\t} else {\n\t\t\t// 17:56:31 CST\n\t\t\t// 17:56:31 GMT+0800 (台北標準時間)\n\t\t\tabbr = timeString.match(/[A-Z]{3,5}/g);\n\t\t\tabbr = abbr ? abbr[0] : undefined;\n\t\t}\n\n\t\tif (abbr === 'GMT') {\n\t\t\tabbr = undefined;\n\t\t}\n\n\t\tthis.at = +at;\n\t\tthis.abbr = abbr;\n\t\tthis.offset = at.getTimezoneOffset();\n\t}\n\n\tfunction ZoneScore(zone) {\n\t\tthis.zone = zone;\n\t\tthis.offsetScore = 0;\n\t\tthis.abbrScore = 0;\n\t}\n\n\tZoneScore.prototype.scoreOffsetAt = function (offsetAt) {\n\t\tthis.offsetScore += Math.abs(this.zone.utcOffset(offsetAt.at) - offsetAt.offset);\n\t\tif (this.zone.abbr(offsetAt.at).replace(/[^A-Z]/g, '') !== offsetAt.abbr) {\n\t\t\tthis.abbrScore++;\n\t\t}\n\t};\n\n\tfunction findChange(low, high) {\n\t\tvar mid, diff;\n\n\t\twhile ((diff = ((high.at - low.at) / 12e4 | 0) * 6e4)) {\n\t\t\tmid = new OffsetAt(new Date(low.at + diff));\n\t\t\tif (mid.offset === low.offset) {\n\t\t\t\tlow = mid;\n\t\t\t} else {\n\t\t\t\thigh = mid;\n\t\t\t}\n\t\t}\n\n\t\treturn low;\n\t}\n\n\tfunction userOffsets() {\n\t\tvar startYear = new Date().getFullYear() - 2,\n\t\t\tlast = new OffsetAt(new Date(startYear, 0, 1)),\n\t\t\toffsets = [last],\n\t\t\tchange, next, i;\n\n\t\tfor (i = 1; i < 48; i++) {\n\t\t\tnext = new OffsetAt(new Date(startYear, i, 1));\n\t\t\tif (next.offset !== last.offset) {\n\t\t\t\tchange = findChange(last, next);\n\t\t\t\toffsets.push(change);\n\t\t\t\toffsets.push(new OffsetAt(new Date(change.at + 6e4)));\n\t\t\t}\n\t\t\tlast = next;\n\t\t}\n\n\t\tfor (i = 0; i < 4; i++) {\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 0, 1)));\n\t\t\toffsets.push(new OffsetAt(new Date(startYear + i, 6, 1)));\n\t\t}\n\n\t\treturn offsets;\n\t}\n\n\tfunction sortZoneScores (a, b) {\n\t\tif (a.offsetScore !== b.offsetScore) {\n\t\t\treturn a.offsetScore - b.offsetScore;\n\t\t}\n\t\tif (a.abbrScore !== b.abbrScore) {\n\t\t\treturn a.abbrScore - b.abbrScore;\n\t\t}\n\t\treturn b.zone.population - a.zone.population;\n\t}\n\n\tfunction addToGuesses (name, offsets) {\n\t\tvar i, offset;\n\t\tarrayToInt(offsets);\n\t\tfor (i = 0; i < offsets.length; i++) {\n\t\t\toffset = offsets[i];\n\t\t\tguesses[offset] = guesses[offset] || {};\n\t\t\tguesses[offset][name] = true;\n\t\t}\n\t}\n\n\tfunction guessesForUserOffsets (offsets) {\n\t\tvar offsetsLength = offsets.length,\n\t\t\tfilteredGuesses = {},\n\t\t\tout = [],\n\t\t\ti, j, guessesOffset;\n\n\t\tfor (i = 0; i < offsetsLength; i++) {\n\t\t\tguessesOffset = guesses[offsets[i].offset] || {};\n\t\t\tfor (j in guessesOffset) {\n\t\t\t\tif (guessesOffset.hasOwnProperty(j)) {\n\t\t\t\t\tfilteredGuesses[j] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (i in filteredGuesses) {\n\t\t\tif (filteredGuesses.hasOwnProperty(i)) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out;\n\t}\n\n\tfunction rebuildGuess () {\n\n\t\t// use Intl API when available and returning valid time zone\n\t\ttry {\n\t\t\tvar intlName = Intl.DateTimeFormat().resolvedOptions().timeZone;\n\t\t\tif (intlName && intlName.length > 3) {\n\t\t\t\tvar name = names[normalizeName(intlName)];\n\t\t\t\tif (name) {\n\t\t\t\t\treturn name;\n\t\t\t\t}\n\t\t\t\tlogError(\"Moment Timezone found \" + intlName + \" from the Intl api, but did not have that data loaded.\");\n\t\t\t}\n\t\t} catch (e) {\n\t\t\t// Intl unavailable, fall back to manual guessing.\n\t\t}\n\n\t\tvar offsets = userOffsets(),\n\t\t\toffsetsLength = offsets.length,\n\t\t\tguesses = guessesForUserOffsets(offsets),\n\t\t\tzoneScores = [],\n\t\t\tzoneScore, i, j;\n\n\t\tfor (i = 0; i < guesses.length; i++) {\n\t\t\tzoneScore = new ZoneScore(getZone(guesses[i]), offsetsLength);\n\t\t\tfor (j = 0; j < offsetsLength; j++) {\n\t\t\t\tzoneScore.scoreOffsetAt(offsets[j]);\n\t\t\t}\n\t\t\tzoneScores.push(zoneScore);\n\t\t}\n\n\t\tzoneScores.sort(sortZoneScores);\n\n\t\treturn zoneScores.length > 0 ? zoneScores[0].zone.name : undefined;\n\t}\n\n\tfunction guess (ignoreCache) {\n\t\tif (!cachedGuess || ignoreCache) {\n\t\t\tcachedGuess = rebuildGuess();\n\t\t}\n\t\treturn cachedGuess;\n\t}\n\n\t/************************************\n\t\tGlobal Methods\n\t************************************/\n\n\tfunction normalizeName (name) {\n\t\treturn (name || '').toLowerCase().replace(/\\//g, '_');\n\t}\n\n\tfunction addZone (packed) {\n\t\tvar i, name, split, normalized;\n\n\t\tif (typeof packed === \"string\") {\n\t\t\tpacked = [packed];\n\t\t}\n\n\t\tfor (i = 0; i < packed.length; i++) {\n\t\t\tsplit = packed[i].split('|');\n\t\t\tname = split[0];\n\t\t\tnormalized = normalizeName(name);\n\t\t\tzones[normalized] = packed[i];\n\t\t\tnames[normalized] = name;\n\t\t\taddToGuesses(normalized, split[2].split(' '));\n\t\t}\n\t}\n\n\tfunction getZone (name, caller) {\n\t\tname = normalizeName(name);\n\n\t\tvar zone = zones[name];\n\t\tvar link;\n\n\t\tif (zone instanceof Zone) {\n\t\t\treturn zone;\n\t\t}\n\n\t\tif (typeof zone === 'string') {\n\t\t\tzone = new Zone(zone);\n\t\t\tzones[name] = zone;\n\t\t\treturn zone;\n\t\t}\n\n\t\t// Pass getZone to prevent recursion more than 1 level deep\n\t\tif (links[name] && caller !== getZone && (link = getZone(links[name], getZone))) {\n\t\t\tzone = zones[name] = new Zone();\n\t\t\tzone._set(link);\n\t\t\tzone.name = names[name];\n\t\t\treturn zone;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\tfunction getNames () {\n\t\tvar i, out = [];\n\n\t\tfor (i in names) {\n\t\t\tif (names.hasOwnProperty(i) && (zones[i] || zones[links[i]]) && names[i]) {\n\t\t\t\tout.push(names[i]);\n\t\t\t}\n\t\t}\n\n\t\treturn out.sort();\n\t}\n\n\tfunction addLink (aliases) {\n\t\tvar i, alias, normal0, normal1;\n\n\t\tif (typeof aliases === \"string\") {\n\t\t\taliases = [aliases];\n\t\t}\n\n\t\tfor (i = 0; i < aliases.length; i++) {\n\t\t\talias = aliases[i].split('|');\n\n\t\t\tnormal0 = normalizeName(alias[0]);\n\t\t\tnormal1 = normalizeName(alias[1]);\n\n\t\t\tlinks[normal0] = normal1;\n\t\t\tnames[normal0] = alias[0];\n\n\t\t\tlinks[normal1] = normal0;\n\t\t\tnames[normal1] = alias[1];\n\t\t}\n\t}\n\n\tfunction loadData (data) {\n\t\taddZone(data.zones);\n\t\taddLink(data.links);\n\t\ttz.dataVersion = data.version;\n\t}\n\n\tfunction zoneExists (name) {\n\t\tif (!zoneExists.didShowError) {\n\t\t\tzoneExists.didShowError = true;\n\t\t\t\tlogError(\"moment.tz.zoneExists('\" + name + \"') has been deprecated in favor of !moment.tz.zone('\" + name + \"')\");\n\t\t}\n\t\treturn !!getZone(name);\n\t}\n\n\tfunction needsOffset (m) {\n\t\tvar isUnixTimestamp = (m._f === 'X' || m._f === 'x');\n\t\treturn !!(m._a && (m._tzm === undefined) && !isUnixTimestamp);\n\t}\n\n\tfunction logError (message) {\n\t\tif (typeof console !== 'undefined' && typeof console.error === 'function') {\n\t\t\tconsole.error(message);\n\t\t}\n\t}\n\n\t/************************************\n\t\tmoment.tz namespace\n\t************************************/\n\n\tfunction tz (input) {\n\t\tvar args = Array.prototype.slice.call(arguments, 0, -1),\n\t\t\tname = arguments[arguments.length - 1],\n\t\t\tzone = getZone(name),\n\t\t\tout = moment.utc.apply(null, args);\n\n\t\tif (zone && !moment.isMoment(input) && needsOffset(out)) {\n\t\t\tout.add(zone.parse(out), 'minutes');\n\t\t}\n\n\t\tout.tz(name);\n\n\t\treturn out;\n\t}\n\n\ttz.version = VERSION;\n\ttz.dataVersion = '';\n\ttz._zones = zones;\n\ttz._links = links;\n\ttz._names = names;\n\ttz.add = addZone;\n\ttz.link = addLink;\n\ttz.load = loadData;\n\ttz.zone = getZone;\n\ttz.zoneExists = zoneExists; // deprecated in 0.1.0\n\ttz.guess = guess;\n\ttz.names = getNames;\n\ttz.Zone = Zone;\n\ttz.unpack = unpack;\n\ttz.unpackBase60 = unpackBase60;\n\ttz.needsOffset = needsOffset;\n\ttz.moveInvalidForward = true;\n\ttz.moveAmbiguousForward = false;\n\n\t/************************************\n\t\tInterface with Moment.js\n\t************************************/\n\n\tvar fn = moment.fn;\n\n\tmoment.tz = tz;\n\n\tmoment.defaultZone = null;\n\n\tmoment.updateOffset = function (mom, keepTime) {\n\t\tvar zone = moment.defaultZone,\n\t\t\toffset;\n\n\t\tif (mom._z === undefined) {\n\t\t\tif (zone && needsOffset(mom) && !mom._isUTC) {\n\t\t\t\tmom._d = moment.utc(mom._a)._d;\n\t\t\t\tmom.utc().add(zone.parse(mom), 'minutes');\n\t\t\t}\n\t\t\tmom._z = zone;\n\t\t}\n\t\tif (mom._z) {\n\t\t\toffset = mom._z.utcOffset(mom);\n\t\t\tif (Math.abs(offset) < 16) {\n\t\t\t\toffset = offset / 60;\n\t\t\t}\n\t\t\tif (mom.utcOffset !== undefined) {\n\t\t\t\tmom.utcOffset(-offset, keepTime);\n\t\t\t} else {\n\t\t\t\tmom.zone(offset, keepTime);\n\t\t\t}\n\t\t}\n\t};\n\n\tfn.tz = function (name, keepTime) {\n\t\tif (name) {\n\t\t\tthis._z = getZone(name);\n\t\t\tif (this._z) {\n\t\t\t\tmoment.updateOffset(this, keepTime);\n\t\t\t} else {\n\t\t\t\tlogError(\"Moment Timezone has no data for \" + name + \". See http://momentjs.com/timezone/docs/#/data-loading/.\");\n\t\t\t}\n\t\t\treturn this;\n\t\t}\n\t\tif (this._z) { return this._z.name; }\n\t};\n\n\tfunction abbrWrap (old) {\n\t\treturn function () {\n\t\t\tif (this._z) { return this._z.abbr(this); }\n\t\t\treturn old.call(this);\n\t\t};\n\t}\n\n\tfunction resetZoneWrap (old) {\n\t\treturn function () {\n\t\t\tthis._z = null;\n\t\t\treturn old.apply(this, arguments);\n\t\t};\n\t}\n\n\tfn.zoneName = abbrWrap(fn.zoneName);\n\tfn.zoneAbbr = abbrWrap(fn.zoneAbbr);\n\tfn.utc = resetZoneWrap(fn.utc);\n\n\tmoment.tz.setDefault = function(name) {\n\t\tif (major < 2 || (major === 2 && minor < 9)) {\n\t\t\tlogError('Moment Timezone setDefault() requires Moment.js >= 2.9.0. You are using Moment.js ' + moment.version + '.');\n\t\t}\n\t\tmoment.defaultZone = name ? getZone(name) : null;\n\t\treturn moment;\n\t};\n\n\t// Cloning a moment should include the _z property.\n\tvar momentProperties = moment.momentProperties;\n\tif (Object.prototype.toString.call(momentProperties) === '[object Array]') {\n\t\t// moment 2.8.1+\n\t\tmomentProperties.push('_z');\n\t\tmomentProperties.push('_a');\n\t} else if (momentProperties) {\n\t\t// moment 2.7.0\n\t\tmomentProperties._z = null;\n\t}\n\n\t// INJECT DATA\n\n\treturn moment;\n}));","//! moment.js\n\n;(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function hooks () {\n return hookCallback.apply(null, arguments);\n }\n\n // This is done to register the method called with moment()\n // without creating circular dependencies.\n function setHookCallback (callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return input instanceof Array || Object.prototype.toString.call(input) === '[object Array]';\n }\n\n function isObject(input) {\n // IE8 will treat undefined and null as object if it wasn't for\n // input != null\n return input != null && Object.prototype.toString.call(input) === '[object Object]';\n }\n\n function isObjectEmpty(obj) {\n if (Object.getOwnPropertyNames) {\n return (Object.getOwnPropertyNames(obj).length === 0);\n } else {\n var k;\n for (k in obj) {\n if (obj.hasOwnProperty(k)) {\n return false;\n }\n }\n return true;\n }\n }\n\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return typeof input === 'number' || Object.prototype.toString.call(input) === '[object Number]';\n }\n\n function isDate(input) {\n return input instanceof Date || Object.prototype.toString.call(input) === '[object Date]';\n }\n\n function map(arr, fn) {\n var res = [], i;\n for (i = 0; i < arr.length; ++i) {\n res.push(fn(arr[i], i));\n }\n return res;\n }\n\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function extend(a, b) {\n for (var i in b) {\n if (hasOwnProp(b, i)) {\n a[i] = b[i];\n }\n }\n\n if (hasOwnProp(b, 'toString')) {\n a.toString = b.toString;\n }\n\n if (hasOwnProp(b, 'valueOf')) {\n a.valueOf = b.valueOf;\n }\n\n return a;\n }\n\n function createUTC (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function defaultParsingFlags() {\n // We need to deep clone this object.\n return {\n empty : false,\n unusedTokens : [],\n unusedInput : [],\n overflow : -2,\n charsLeftOver : 0,\n nullInput : false,\n invalidMonth : null,\n invalidFormat : false,\n userInvalidated : false,\n iso : false,\n parsedDateParts : [],\n meridiem : null,\n rfc2822 : false,\n weekdayMismatch : false\n };\n }\n\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (Array.prototype.some) {\n some = Array.prototype.some;\n } else {\n some = function (fun) {\n var t = Object(this);\n var len = t.length >>> 0;\n\n for (var i = 0; i < len; i++) {\n if (i in t && fun.call(this, t[i], i, t)) {\n return true;\n }\n }\n\n return false;\n };\n }\n\n function isValid(m) {\n if (m._isValid == null) {\n var flags = getParsingFlags(m);\n var parsedParts = some.call(flags.parsedDateParts, function (i) {\n return i != null;\n });\n var isNowValid = !isNaN(m._d.getTime()) &&\n flags.overflow < 0 &&\n !flags.empty &&\n !flags.invalidMonth &&\n !flags.invalidWeekday &&\n !flags.weekdayMismatch &&\n !flags.nullInput &&\n !flags.invalidFormat &&\n !flags.userInvalidated &&\n (!flags.meridiem || (flags.meridiem && parsedParts));\n\n if (m._strict) {\n isNowValid = isNowValid &&\n flags.charsLeftOver === 0 &&\n flags.unusedTokens.length === 0 &&\n flags.bigHour === undefined;\n }\n\n if (Object.isFrozen == null || !Object.isFrozen(m)) {\n m._isValid = isNowValid;\n }\n else {\n return isNowValid;\n }\n }\n return m._isValid;\n }\n\n function createInvalid (flags) {\n var m = createUTC(NaN);\n if (flags != null) {\n extend(getParsingFlags(m), flags);\n }\n else {\n getParsingFlags(m).userInvalidated = true;\n }\n\n return m;\n }\n\n // Plugins that add properties should also add the key here (null value),\n // so we can properly clone ourselves.\n var momentProperties = hooks.momentProperties = [];\n\n function copyConfig(to, from) {\n var i, prop, val;\n\n if (!isUndefined(from._isAMomentObject)) {\n to._isAMomentObject = from._isAMomentObject;\n }\n if (!isUndefined(from._i)) {\n to._i = from._i;\n }\n if (!isUndefined(from._f)) {\n to._f = from._f;\n }\n if (!isUndefined(from._l)) {\n to._l = from._l;\n }\n if (!isUndefined(from._strict)) {\n to._strict = from._strict;\n }\n if (!isUndefined(from._tzm)) {\n to._tzm = from._tzm;\n }\n if (!isUndefined(from._isUTC)) {\n to._isUTC = from._isUTC;\n }\n if (!isUndefined(from._offset)) {\n to._offset = from._offset;\n }\n if (!isUndefined(from._pf)) {\n to._pf = getParsingFlags(from);\n }\n if (!isUndefined(from._locale)) {\n to._locale = from._locale;\n }\n\n if (momentProperties.length > 0) {\n for (i = 0; i < momentProperties.length; i++) {\n prop = momentProperties[i];\n val = from[prop];\n if (!isUndefined(val)) {\n to[prop] = val;\n }\n }\n }\n\n return to;\n }\n\n var updateInProgress = false;\n\n // Moment prototype object\n function Moment(config) {\n copyConfig(this, config);\n this._d = new Date(config._d != null ? config._d.getTime() : NaN);\n if (!this.isValid()) {\n this._d = new Date(NaN);\n }\n // Prevent infinite loop in case updateOffset creates new moment\n // objects.\n if (updateInProgress === false) {\n updateInProgress = true;\n hooks.updateOffset(this);\n updateInProgress = false;\n }\n }\n\n function isMoment (obj) {\n return obj instanceof Moment || (obj != null && obj._isAMomentObject != null);\n }\n\n function absFloor (number) {\n if (number < 0) {\n // -0 -> 0\n return Math.ceil(number) || 0;\n } else {\n return Math.floor(number);\n }\n }\n\n function toInt(argumentForCoercion) {\n var coercedNumber = +argumentForCoercion,\n value = 0;\n\n if (coercedNumber !== 0 && isFinite(coercedNumber)) {\n value = absFloor(coercedNumber);\n }\n\n return value;\n }\n\n // compare two arrays, return the number of differences\n function compareArrays(array1, array2, dontConvert) {\n var len = Math.min(array1.length, array2.length),\n lengthDiff = Math.abs(array1.length - array2.length),\n diffs = 0,\n i;\n for (i = 0; i < len; i++) {\n if ((dontConvert && array1[i] !== array2[i]) ||\n (!dontConvert && toInt(array1[i]) !== toInt(array2[i]))) {\n diffs++;\n }\n }\n return diffs + lengthDiff;\n }\n\n function warn(msg) {\n if (hooks.suppressDeprecationWarnings === false &&\n (typeof console !== 'undefined') && console.warn) {\n console.warn('Deprecation warning: ' + msg);\n }\n }\n\n function deprecate(msg, fn) {\n var firstTime = true;\n\n return extend(function () {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(null, msg);\n }\n if (firstTime) {\n var args = [];\n var arg;\n for (var i = 0; i < arguments.length; i++) {\n arg = '';\n if (typeof arguments[i] === 'object') {\n arg += '\\n[' + i + '] ';\n for (var key in arguments[0]) {\n arg += key + ': ' + arguments[0][key] + ', ';\n }\n arg = arg.slice(0, -2); // Remove trailing comma and space\n } else {\n arg = arguments[i];\n }\n args.push(arg);\n }\n warn(msg + '\\nArguments: ' + Array.prototype.slice.call(args).join('') + '\\n' + (new Error()).stack);\n firstTime = false;\n }\n return fn.apply(this, arguments);\n }, fn);\n }\n\n var deprecations = {};\n\n function deprecateSimple(name, msg) {\n if (hooks.deprecationHandler != null) {\n hooks.deprecationHandler(name, msg);\n }\n if (!deprecations[name]) {\n warn(msg);\n deprecations[name] = true;\n }\n }\n\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return input instanceof Function || Object.prototype.toString.call(input) === '[object Function]';\n }\n\n function set (config) {\n var prop, i;\n for (i in config) {\n prop = config[i];\n if (isFunction(prop)) {\n this[i] = prop;\n } else {\n this['_' + i] = prop;\n }\n }\n this._config = config;\n // Lenient ordinal parsing accepts just a number in addition to\n // number + (possibly) stuff coming from _dayOfMonthOrdinalParse.\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n this._dayOfMonthOrdinalParseLenient = new RegExp(\n (this._dayOfMonthOrdinalParse.source || this._ordinalParse.source) +\n '|' + (/\\d{1,2}/).source);\n }\n\n function mergeConfigs(parentConfig, childConfig) {\n var res = extend({}, parentConfig), prop;\n for (prop in childConfig) {\n if (hasOwnProp(childConfig, prop)) {\n if (isObject(parentConfig[prop]) && isObject(childConfig[prop])) {\n res[prop] = {};\n extend(res[prop], parentConfig[prop]);\n extend(res[prop], childConfig[prop]);\n } else if (childConfig[prop] != null) {\n res[prop] = childConfig[prop];\n } else {\n delete res[prop];\n }\n }\n }\n for (prop in parentConfig) {\n if (hasOwnProp(parentConfig, prop) &&\n !hasOwnProp(childConfig, prop) &&\n isObject(parentConfig[prop])) {\n // make sure changes to properties don't modify parent config\n res[prop] = extend({}, res[prop]);\n }\n }\n return res;\n }\n\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (Object.keys) {\n keys = Object.keys;\n } else {\n keys = function (obj) {\n var i, res = [];\n for (i in obj) {\n if (hasOwnProp(obj, i)) {\n res.push(i);\n }\n }\n return res;\n };\n }\n\n var defaultCalendar = {\n sameDay : '[Today at] LT',\n nextDay : '[Tomorrow at] LT',\n nextWeek : 'dddd [at] LT',\n lastDay : '[Yesterday at] LT',\n lastWeek : '[Last] dddd [at] LT',\n sameElse : 'L'\n };\n\n function calendar (key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n var defaultLongDateFormat = {\n LTS : 'h:mm:ss A',\n LT : 'h:mm A',\n L : 'MM/DD/YYYY',\n LL : 'MMMM D, YYYY',\n LLL : 'MMMM D, YYYY h:mm A',\n LLLL : 'dddd, MMMM D, YYYY h:mm A'\n };\n\n function longDateFormat (key) {\n var format = this._longDateFormat[key],\n formatUpper = this._longDateFormat[key.toUpperCase()];\n\n if (format || !formatUpper) {\n return format;\n }\n\n this._longDateFormat[key] = formatUpper.replace(/MMMM|MM|DD|dddd/g, function (val) {\n return val.slice(1);\n });\n\n return this._longDateFormat[key];\n }\n\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate () {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d';\n var defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal (number) {\n return this._ordinal.replace('%d', number);\n }\n\n var defaultRelativeTime = {\n future : 'in %s',\n past : '%s ago',\n s : 'a few seconds',\n ss : '%d seconds',\n m : 'a minute',\n mm : '%d minutes',\n h : 'an hour',\n hh : '%d hours',\n d : 'a day',\n dd : '%d days',\n M : 'a month',\n MM : '%d months',\n y : 'a year',\n yy : '%d years'\n };\n\n function relativeTime (number, withoutSuffix, string, isFuture) {\n var output = this._relativeTime[string];\n return (isFunction(output)) ?\n output(number, withoutSuffix, string, isFuture) :\n output.replace(/%d/i, number);\n }\n\n function pastFuture (diff, output) {\n var format = this._relativeTime[diff > 0 ? 'future' : 'past'];\n return isFunction(format) ? format(output) : format.replace(/%s/i, output);\n }\n\n var aliases = {};\n\n function addUnitAlias (unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string' ? aliases[units] || aliases[units.toLowerCase()] : undefined;\n }\n\n function normalizeObjectUnits(inputObject) {\n var normalizedInput = {},\n normalizedProp,\n prop;\n\n for (prop in inputObject) {\n if (hasOwnProp(inputObject, prop)) {\n normalizedProp = normalizeUnits(prop);\n if (normalizedProp) {\n normalizedInput[normalizedProp] = inputObject[prop];\n }\n }\n }\n\n return normalizedInput;\n }\n\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function getPrioritizedUnits(unitsObj) {\n var units = [];\n for (var u in unitsObj) {\n units.push({unit: u, priority: priorities[u]});\n }\n units.sort(function (a, b) {\n return a.priority - b.priority;\n });\n return units;\n }\n\n function zeroFill(number, targetLength, forceSign) {\n var absNumber = '' + Math.abs(number),\n zerosToFill = targetLength - absNumber.length,\n sign = number >= 0;\n return (sign ? (forceSign ? '+' : '') : '-') +\n Math.pow(10, Math.max(0, zerosToFill)).toString().substr(1) + absNumber;\n }\n\n var formattingTokens = /(\\[[^\\[]*\\])|(\\\\)?([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;\n\n var localFormattingTokens = /(\\[[^\\[]*\\])|(\\\\)?(LTS|LT|LL?L?L?|l{1,4})/g;\n\n var formatFunctions = {};\n\n var formatTokenFunctions = {};\n\n // token: 'M'\n // padded: ['MM', 2]\n // ordinal: 'Mo'\n // callback: function () { this.month() + 1 }\n function addFormatToken (token, padded, ordinal, callback) {\n var func = callback;\n if (typeof callback === 'string') {\n func = function () {\n return this[callback]();\n };\n }\n if (token) {\n formatTokenFunctions[token] = func;\n }\n if (padded) {\n formatTokenFunctions[padded[0]] = function () {\n return zeroFill(func.apply(this, arguments), padded[1], padded[2]);\n };\n }\n if (ordinal) {\n formatTokenFunctions[ordinal] = function () {\n return this.localeData().ordinal(func.apply(this, arguments), token);\n };\n }\n }\n\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function makeFormatFunction(format) {\n var array = format.match(formattingTokens), i, length;\n\n for (i = 0, length = array.length; i < length; i++) {\n if (formatTokenFunctions[array[i]]) {\n array[i] = formatTokenFunctions[array[i]];\n } else {\n array[i] = removeFormattingTokens(array[i]);\n }\n }\n\n return function (mom) {\n var output = '', i;\n for (i = 0; i < length; i++) {\n output += isFunction(array[i]) ? array[i].call(mom, format) : array[i];\n }\n return output;\n };\n }\n\n // format date using native date object\n function formatMoment(m, format) {\n if (!m.isValid()) {\n return m.localeData().invalidDate();\n }\n\n format = expandFormat(format, m.localeData());\n formatFunctions[format] = formatFunctions[format] || makeFormatFunction(format);\n\n return formatFunctions[format](m);\n }\n\n function expandFormat(format, locale) {\n var i = 5;\n\n function replaceLongDateFormatTokens(input) {\n return locale.longDateFormat(input) || input;\n }\n\n localFormattingTokens.lastIndex = 0;\n while (i >= 0 && localFormattingTokens.test(format)) {\n format = format.replace(localFormattingTokens, replaceLongDateFormatTokens);\n localFormattingTokens.lastIndex = 0;\n i -= 1;\n }\n\n return format;\n }\n\n var match1 = /\\d/; // 0 - 9\n var match2 = /\\d\\d/; // 00 - 99\n var match3 = /\\d{3}/; // 000 - 999\n var match4 = /\\d{4}/; // 0000 - 9999\n var match6 = /[+-]?\\d{6}/; // -999999 - 999999\n var match1to2 = /\\d\\d?/; // 0 - 99\n var match3to4 = /\\d\\d\\d\\d?/; // 999 - 9999\n var match5to6 = /\\d\\d\\d\\d\\d\\d?/; // 99999 - 999999\n var match1to3 = /\\d{1,3}/; // 0 - 999\n var match1to4 = /\\d{1,4}/; // 0 - 9999\n var match1to6 = /[+-]?\\d{1,6}/; // -999999 - 999999\n\n var matchUnsigned = /\\d+/; // 0 - inf\n var matchSigned = /[+-]?\\d+/; // -inf - inf\n\n var matchOffset = /Z|[+-]\\d\\d:?\\d\\d/gi; // +00:00 -00:00 +0000 -0000 or Z\n var matchShortOffset = /Z|[+-]\\d\\d(?::?\\d\\d)?/gi; // +00 -00 +00:00 -00:00 +0000 -0000 or Z\n\n var matchTimestamp = /[+-]?\\d+(\\.\\d{1,3})?/; // 123456789 123456789.123\n\n // any word (or two) characters or numbers including two/three word month in arabic.\n // includes scottish gaelic two word and hyphenated months\n var matchWord = /[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;\n\n var regexes = {};\n\n function addRegexToken (token, regex, strictRegex) {\n regexes[token] = isFunction(regex) ? regex : function (isStrict, localeData) {\n return (isStrict && strictRegex) ? strictRegex : regex;\n };\n }\n\n function getParseRegexForToken (token, config) {\n if (!hasOwnProp(regexes, token)) {\n return new RegExp(unescapeFormat(token));\n }\n\n return regexes[token](config._strict, config._locale);\n }\n\n // Code from http://stackoverflow.com/questions/3561493/is-there-a-regexp-escape-function-in-javascript\n function unescapeFormat(s) {\n return regexEscape(s.replace('\\\\', '').replace(/\\\\(\\[)|\\\\(\\])|\\[([^\\]\\[]*)\\]|\\\\(.)/g, function (matched, p1, p2, p3, p4) {\n return p1 || p2 || p3 || p4;\n }));\n }\n\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function addParseToken (token, callback) {\n var i, func = callback;\n if (typeof token === 'string') {\n token = [token];\n }\n if (isNumber(callback)) {\n func = function (input, array) {\n array[callback] = toInt(input);\n };\n }\n for (i = 0; i < token.length; i++) {\n tokens[token[i]] = func;\n }\n }\n\n function addWeekParseToken (token, callback) {\n addParseToken(token, function (input, array, config, token) {\n config._w = config._w || {};\n callback(input, config._w, config, token);\n });\n }\n\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var YEAR = 0;\n var MONTH = 1;\n var DATE = 2;\n var HOUR = 3;\n var MINUTE = 4;\n var SECOND = 5;\n var MILLISECOND = 6;\n var WEEK = 7;\n var WEEKDAY = 8;\n\n // FORMATTING\n\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? '' + y : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] = input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear () {\n return isLeapYear(this.year());\n }\n\n function makeGetSet (unit, keepTime) {\n return function (value) {\n if (value != null) {\n set$1(this, unit, value);\n hooks.updateOffset(this, keepTime);\n return this;\n } else {\n return get(this, unit);\n }\n };\n }\n\n function get (mom, unit) {\n return mom.isValid() ?\n mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]() : NaN;\n }\n\n function set$1 (mom, unit, value) {\n if (mom.isValid() && !isNaN(value)) {\n if (unit === 'FullYear' && isLeapYear(mom.year()) && mom.month() === 1 && mom.date() === 29) {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value, mom.month(), daysInMonth(value, mom.month()));\n }\n else {\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + unit](value);\n }\n }\n }\n\n // MOMENTS\n\n function stringGet (units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n\n function stringSet (units, value) {\n if (typeof units === 'object') {\n units = normalizeObjectUnits(units);\n var prioritized = getPrioritizedUnits(units);\n for (var i = 0; i < prioritized.length; i++) {\n this[prioritized[i].unit](units[prioritized[i].unit]);\n }\n } else {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units](value);\n }\n }\n return this;\n }\n\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (Array.prototype.indexOf) {\n indexOf = Array.prototype.indexOf;\n } else {\n indexOf = function (o) {\n // I know\n var i;\n for (i = 0; i < this.length; ++i) {\n if (this[i] === o) {\n return i;\n }\n }\n return -1;\n };\n }\n\n function daysInMonth(year, month) {\n if (isNaN(year) || isNaN(month)) {\n return NaN;\n }\n var modMonth = mod(month, 12);\n year += (month - modMonth) / 12;\n return modMonth === 1 ? (isLeapYear(year) ? 29 : 28) : (31 - modMonth % 7 % 2);\n }\n\n // FORMATTING\n\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['MMM', 'MMMM'], function (input, array, config, token) {\n var month = config._locale.monthsParse(input, token, config._strict);\n // if we didn't find a month name, mark the date as invalid.\n if (month != null) {\n array[MONTH] = month;\n } else {\n getParsingFlags(config).invalidMonth = input;\n }\n });\n\n // LOCALES\n\n var MONTHS_IN_FORMAT = /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?/;\n var defaultLocaleMonths = 'January_February_March_April_May_June_July_August_September_October_November_December'.split('_');\n function localeMonths (m, format) {\n if (!m) {\n return isArray(this._months) ? this._months :\n this._months['standalone'];\n }\n return isArray(this._months) ? this._months[m.month()] :\n this._months[(this._months.isFormat || MONTHS_IN_FORMAT).test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n var defaultLocaleMonthsShort = 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_');\n function localeMonthsShort (m, format) {\n if (!m) {\n return isArray(this._monthsShort) ? this._monthsShort :\n this._monthsShort['standalone'];\n }\n return isArray(this._monthsShort) ? this._monthsShort[m.month()] :\n this._monthsShort[MONTHS_IN_FORMAT.test(format) ? 'format' : 'standalone'][m.month()];\n }\n\n function handleStrictParse(monthName, format, strict) {\n var i, ii, mom, llc = monthName.toLocaleLowerCase();\n if (!this._monthsParse) {\n // this is not used\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n for (i = 0; i < 12; ++i) {\n mom = createUTC([2000, i]);\n this._shortMonthsParse[i] = this.monthsShort(mom, '').toLocaleLowerCase();\n this._longMonthsParse[i] = this.months(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'MMM') {\n ii = indexOf.call(this._shortMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._longMonthsParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._longMonthsParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortMonthsParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeMonthsParse (monthName, format, strict) {\n var i, mom, regex;\n\n if (this._monthsParseExact) {\n return handleStrictParse.call(this, monthName, format, strict);\n }\n\n if (!this._monthsParse) {\n this._monthsParse = [];\n this._longMonthsParse = [];\n this._shortMonthsParse = [];\n }\n\n // TODO: add sorting\n // Sorting makes sure if one month (or abbr) is a prefix of another\n // see sorting in computeMonthsParse\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n if (strict && !this._longMonthsParse[i]) {\n this._longMonthsParse[i] = new RegExp('^' + this.months(mom, '').replace('.', '') + '$', 'i');\n this._shortMonthsParse[i] = new RegExp('^' + this.monthsShort(mom, '').replace('.', '') + '$', 'i');\n }\n if (!strict && !this._monthsParse[i]) {\n regex = '^' + this.months(mom, '') + '|^' + this.monthsShort(mom, '');\n this._monthsParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'MMMM' && this._longMonthsParse[i].test(monthName)) {\n return i;\n } else if (strict && format === 'MMM' && this._shortMonthsParse[i].test(monthName)) {\n return i;\n } else if (!strict && this._monthsParse[i].test(monthName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function setMonth (mom, value) {\n var dayOfMonth;\n\n if (!mom.isValid()) {\n // No op\n return mom;\n }\n\n if (typeof value === 'string') {\n if (/^\\d+$/.test(value)) {\n value = toInt(value);\n } else {\n value = mom.localeData().monthsParse(value);\n // TODO: Another silent failure?\n if (!isNumber(value)) {\n return mom;\n }\n }\n }\n\n dayOfMonth = Math.min(mom.date(), daysInMonth(mom.year(), value));\n mom._d['set' + (mom._isUTC ? 'UTC' : '') + 'Month'](value, dayOfMonth);\n return mom;\n }\n\n function getSetMonth (value) {\n if (value != null) {\n setMonth(this, value);\n hooks.updateOffset(this, true);\n return this;\n } else {\n return get(this, 'Month');\n }\n }\n\n function getDaysInMonth () {\n return daysInMonth(this.year(), this.month());\n }\n\n var defaultMonthsShortRegex = matchWord;\n function monthsShortRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsShortStrictRegex;\n } else {\n return this._monthsShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsShortRegex')) {\n this._monthsShortRegex = defaultMonthsShortRegex;\n }\n return this._monthsShortStrictRegex && isStrict ?\n this._monthsShortStrictRegex : this._monthsShortRegex;\n }\n }\n\n var defaultMonthsRegex = matchWord;\n function monthsRegex (isStrict) {\n if (this._monthsParseExact) {\n if (!hasOwnProp(this, '_monthsRegex')) {\n computeMonthsParse.call(this);\n }\n if (isStrict) {\n return this._monthsStrictRegex;\n } else {\n return this._monthsRegex;\n }\n } else {\n if (!hasOwnProp(this, '_monthsRegex')) {\n this._monthsRegex = defaultMonthsRegex;\n }\n return this._monthsStrictRegex && isStrict ?\n this._monthsStrictRegex : this._monthsRegex;\n }\n }\n\n function computeMonthsParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom;\n for (i = 0; i < 12; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, i]);\n shortPieces.push(this.monthsShort(mom, ''));\n longPieces.push(this.months(mom, ''));\n mixedPieces.push(this.months(mom, ''));\n mixedPieces.push(this.monthsShort(mom, ''));\n }\n // Sorting makes sure if one month (or abbr) is a prefix of another it\n // will match the longer piece.\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 12; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n }\n for (i = 0; i < 24; i++) {\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._monthsRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._monthsShortRegex = this._monthsRegex;\n this._monthsStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._monthsShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n }\n\n function createDate (y, m, d, h, M, s, ms) {\n // can't just apply() to create a date:\n // https://stackoverflow.com/q/181348\n var date = new Date(y, m, d, h, M, s, ms);\n\n // the date constructor remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getFullYear())) {\n date.setFullYear(y);\n }\n return date;\n }\n\n function createUTCDate (y) {\n var date = new Date(Date.UTC.apply(null, arguments));\n\n // the Date.UTC function remaps years 0-99 to 1900-1999\n if (y < 100 && y >= 0 && isFinite(date.getUTCFullYear())) {\n date.setUTCFullYear(y);\n }\n return date;\n }\n\n // start-of-first-week - start-of-year\n function firstWeekOffset(year, dow, doy) {\n var // first-week day -- which january is always in the first week (4 for iso, 1 for other)\n fwd = 7 + dow - doy,\n // first-week day local weekday -- which local weekday is fwd\n fwdlw = (7 + createUTCDate(year, 0, fwd).getUTCDay() - dow) % 7;\n\n return -fwdlw + fwd - 1;\n }\n\n // https://en.wikipedia.org/wiki/ISO_week_date#Calculating_a_date_given_the_year.2C_week_number_and_weekday\n function dayOfYearFromWeeks(year, week, weekday, dow, doy) {\n var localWeekday = (7 + weekday - dow) % 7,\n weekOffset = firstWeekOffset(year, dow, doy),\n dayOfYear = 1 + 7 * (week - 1) + localWeekday + weekOffset,\n resYear, resDayOfYear;\n\n if (dayOfYear <= 0) {\n resYear = year - 1;\n resDayOfYear = daysInYear(resYear) + dayOfYear;\n } else if (dayOfYear > daysInYear(year)) {\n resYear = year + 1;\n resDayOfYear = dayOfYear - daysInYear(year);\n } else {\n resYear = year;\n resDayOfYear = dayOfYear;\n }\n\n return {\n year: resYear,\n dayOfYear: resDayOfYear\n };\n }\n\n function weekOfYear(mom, dow, doy) {\n var weekOffset = firstWeekOffset(mom.year(), dow, doy),\n week = Math.floor((mom.dayOfYear() - weekOffset - 1) / 7) + 1,\n resWeek, resYear;\n\n if (week < 1) {\n resYear = mom.year() - 1;\n resWeek = week + weeksInYear(resYear, dow, doy);\n } else if (week > weeksInYear(mom.year(), dow, doy)) {\n resWeek = week - weeksInYear(mom.year(), dow, doy);\n resYear = mom.year() + 1;\n } else {\n resYear = mom.year();\n resWeek = week;\n }\n\n return {\n week: resWeek,\n year: resYear\n };\n }\n\n function weeksInYear(year, dow, doy) {\n var weekOffset = firstWeekOffset(year, dow, doy),\n weekOffsetNext = firstWeekOffset(year + 1, dow, doy);\n return (daysInYear(year) - weekOffset + weekOffsetNext) / 7;\n }\n\n // FORMATTING\n\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['w', 'ww', 'W', 'WW'], function (input, week, config, token) {\n week[token.substr(0, 1)] = toInt(input);\n });\n\n // HELPERS\n\n // LOCALES\n\n function localeWeek (mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var defaultLocaleWeek = {\n dow : 0, // Sunday is the first day of the week.\n doy : 6 // The week that contains Jan 1st is the first week of the year.\n };\n\n function localeFirstDayOfWeek () {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear () {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek (input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function getSetISOWeek (input) {\n var week = weekOfYear(this, 1, 4).week;\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n // FORMATTING\n\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['dd', 'ddd', 'dddd'], function (input, week, config, token) {\n var weekday = config._locale.weekdaysParse(input, token, config._strict);\n // if we didn't get a weekday name, mark the date as invalid\n if (weekday != null) {\n week.d = weekday;\n } else {\n getParsingFlags(config).invalidWeekday = input;\n }\n });\n\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function parseWeekday(input, locale) {\n if (typeof input !== 'string') {\n return input;\n }\n\n if (!isNaN(input)) {\n return parseInt(input, 10);\n }\n\n input = locale.weekdaysParse(input);\n if (typeof input === 'number') {\n return input;\n }\n\n return null;\n }\n\n function parseIsoWeekday(input, locale) {\n if (typeof input === 'string') {\n return locale.weekdaysParse(input) % 7 || 7;\n }\n return isNaN(input) ? null : input;\n }\n\n // LOCALES\n\n var defaultLocaleWeekdays = 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split('_');\n function localeWeekdays (m, format) {\n if (!m) {\n return isArray(this._weekdays) ? this._weekdays :\n this._weekdays['standalone'];\n }\n return isArray(this._weekdays) ? this._weekdays[m.day()] :\n this._weekdays[this._weekdays.isFormat.test(format) ? 'format' : 'standalone'][m.day()];\n }\n\n var defaultLocaleWeekdaysShort = 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_');\n function localeWeekdaysShort (m) {\n return (m) ? this._weekdaysShort[m.day()] : this._weekdaysShort;\n }\n\n var defaultLocaleWeekdaysMin = 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_');\n function localeWeekdaysMin (m) {\n return (m) ? this._weekdaysMin[m.day()] : this._weekdaysMin;\n }\n\n function handleStrictParse$1(weekdayName, format, strict) {\n var i, ii, mom, llc = weekdayName.toLocaleLowerCase();\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._minWeekdaysParse = [];\n\n for (i = 0; i < 7; ++i) {\n mom = createUTC([2000, 1]).day(i);\n this._minWeekdaysParse[i] = this.weekdaysMin(mom, '').toLocaleLowerCase();\n this._shortWeekdaysParse[i] = this.weekdaysShort(mom, '').toLocaleLowerCase();\n this._weekdaysParse[i] = this.weekdays(mom, '').toLocaleLowerCase();\n }\n }\n\n if (strict) {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n } else {\n if (format === 'dddd') {\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else if (format === 'ddd') {\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._minWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n } else {\n ii = indexOf.call(this._minWeekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._weekdaysParse, llc);\n if (ii !== -1) {\n return ii;\n }\n ii = indexOf.call(this._shortWeekdaysParse, llc);\n return ii !== -1 ? ii : null;\n }\n }\n }\n\n function localeWeekdaysParse (weekdayName, format, strict) {\n var i, mom, regex;\n\n if (this._weekdaysParseExact) {\n return handleStrictParse$1.call(this, weekdayName, format, strict);\n }\n\n if (!this._weekdaysParse) {\n this._weekdaysParse = [];\n this._minWeekdaysParse = [];\n this._shortWeekdaysParse = [];\n this._fullWeekdaysParse = [];\n }\n\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n\n mom = createUTC([2000, 1]).day(i);\n if (strict && !this._fullWeekdaysParse[i]) {\n this._fullWeekdaysParse[i] = new RegExp('^' + this.weekdays(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._shortWeekdaysParse[i] = new RegExp('^' + this.weekdaysShort(mom, '').replace('.', '\\\\.?') + '$', 'i');\n this._minWeekdaysParse[i] = new RegExp('^' + this.weekdaysMin(mom, '').replace('.', '\\\\.?') + '$', 'i');\n }\n if (!this._weekdaysParse[i]) {\n regex = '^' + this.weekdays(mom, '') + '|^' + this.weekdaysShort(mom, '') + '|^' + this.weekdaysMin(mom, '');\n this._weekdaysParse[i] = new RegExp(regex.replace('.', ''), 'i');\n }\n // test the regex\n if (strict && format === 'dddd' && this._fullWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'ddd' && this._shortWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (strict && format === 'dd' && this._minWeekdaysParse[i].test(weekdayName)) {\n return i;\n } else if (!strict && this._weekdaysParse[i].test(weekdayName)) {\n return i;\n }\n }\n }\n\n // MOMENTS\n\n function getSetDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var day = this._isUTC ? this._d.getUTCDay() : this._d.getDay();\n if (input != null) {\n input = parseWeekday(input, this.localeData());\n return this.add(input - day, 'd');\n } else {\n return day;\n }\n }\n\n function getSetLocaleDayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n var weekday = (this.day() + 7 - this.localeData()._week.dow) % 7;\n return input == null ? weekday : this.add(input - weekday, 'd');\n }\n\n function getSetISODayOfWeek (input) {\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n\n // behaves the same as moment#day except\n // as a getter, returns 7 instead of 0 (1-7 range instead of 0-6)\n // as a setter, sunday should belong to the previous week.\n\n if (input != null) {\n var weekday = parseIsoWeekday(input, this.localeData());\n return this.day(this.day() % 7 ? weekday : weekday - 7);\n } else {\n return this.day() || 7;\n }\n }\n\n var defaultWeekdaysRegex = matchWord;\n function weekdaysRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysStrictRegex;\n } else {\n return this._weekdaysRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n this._weekdaysRegex = defaultWeekdaysRegex;\n }\n return this._weekdaysStrictRegex && isStrict ?\n this._weekdaysStrictRegex : this._weekdaysRegex;\n }\n }\n\n var defaultWeekdaysShortRegex = matchWord;\n function weekdaysShortRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysShortStrictRegex;\n } else {\n return this._weekdaysShortRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysShortRegex')) {\n this._weekdaysShortRegex = defaultWeekdaysShortRegex;\n }\n return this._weekdaysShortStrictRegex && isStrict ?\n this._weekdaysShortStrictRegex : this._weekdaysShortRegex;\n }\n }\n\n var defaultWeekdaysMinRegex = matchWord;\n function weekdaysMinRegex (isStrict) {\n if (this._weekdaysParseExact) {\n if (!hasOwnProp(this, '_weekdaysRegex')) {\n computeWeekdaysParse.call(this);\n }\n if (isStrict) {\n return this._weekdaysMinStrictRegex;\n } else {\n return this._weekdaysMinRegex;\n }\n } else {\n if (!hasOwnProp(this, '_weekdaysMinRegex')) {\n this._weekdaysMinRegex = defaultWeekdaysMinRegex;\n }\n return this._weekdaysMinStrictRegex && isStrict ?\n this._weekdaysMinStrictRegex : this._weekdaysMinRegex;\n }\n }\n\n\n function computeWeekdaysParse () {\n function cmpLenRev(a, b) {\n return b.length - a.length;\n }\n\n var minPieces = [], shortPieces = [], longPieces = [], mixedPieces = [],\n i, mom, minp, shortp, longp;\n for (i = 0; i < 7; i++) {\n // make the regex if we don't have it already\n mom = createUTC([2000, 1]).day(i);\n minp = this.weekdaysMin(mom, '');\n shortp = this.weekdaysShort(mom, '');\n longp = this.weekdays(mom, '');\n minPieces.push(minp);\n shortPieces.push(shortp);\n longPieces.push(longp);\n mixedPieces.push(minp);\n mixedPieces.push(shortp);\n mixedPieces.push(longp);\n }\n // Sorting makes sure if one weekday (or abbr) is a prefix of another it\n // will match the longer piece.\n minPieces.sort(cmpLenRev);\n shortPieces.sort(cmpLenRev);\n longPieces.sort(cmpLenRev);\n mixedPieces.sort(cmpLenRev);\n for (i = 0; i < 7; i++) {\n shortPieces[i] = regexEscape(shortPieces[i]);\n longPieces[i] = regexEscape(longPieces[i]);\n mixedPieces[i] = regexEscape(mixedPieces[i]);\n }\n\n this._weekdaysRegex = new RegExp('^(' + mixedPieces.join('|') + ')', 'i');\n this._weekdaysShortRegex = this._weekdaysRegex;\n this._weekdaysMinRegex = this._weekdaysRegex;\n\n this._weekdaysStrictRegex = new RegExp('^(' + longPieces.join('|') + ')', 'i');\n this._weekdaysShortStrictRegex = new RegExp('^(' + shortPieces.join('|') + ')', 'i');\n this._weekdaysMinStrictRegex = new RegExp('^(' + minPieces.join('|') + ')', 'i');\n }\n\n // FORMATTING\n\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2);\n });\n\n function meridiem (token, lowercase) {\n addFormatToken(token, 0, 0, function () {\n return this.localeData().meridiem(this.hours(), this.minutes(), lowercase);\n });\n }\n\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem (isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('Hmm', function (input, array, config) {\n var pos = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos));\n array[MINUTE] = toInt(input.substr(pos));\n });\n addParseToken('Hmmss', function (input, array, config) {\n var pos1 = input.length - 4;\n var pos2 = input.length - 2;\n array[HOUR] = toInt(input.substr(0, pos1));\n array[MINUTE] = toInt(input.substr(pos1, 2));\n array[SECOND] = toInt(input.substr(pos2));\n });\n\n // LOCALES\n\n function localeIsPM (input) {\n // IE8 Quirks Mode & IE7 Standards Mode do not allow accessing strings like arrays\n // Using charAt should be more compatible.\n return ((input + '').toLowerCase().charAt(0) === 'p');\n }\n\n var defaultLocaleMeridiemParse = /[ap]\\.?m?\\.?/i;\n function localeMeridiem (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n\n // MOMENTS\n\n // Setting the hour should keep the time, because the user explicitly\n // specified which hour they want. So trying to maintain the same hour (in\n // a new timezone) makes sense. Adding/subtracting hours does not follow\n // this rule.\n var getSetHour = makeGetSet('Hours', true);\n\n var baseConfig = {\n calendar: defaultCalendar,\n longDateFormat: defaultLongDateFormat,\n invalidDate: defaultInvalidDate,\n ordinal: defaultOrdinal,\n dayOfMonthOrdinalParse: defaultDayOfMonthOrdinalParse,\n relativeTime: defaultRelativeTime,\n\n months: defaultLocaleMonths,\n monthsShort: defaultLocaleMonthsShort,\n\n week: defaultLocaleWeek,\n\n weekdays: defaultLocaleWeekdays,\n weekdaysMin: defaultLocaleWeekdaysMin,\n weekdaysShort: defaultLocaleWeekdaysShort,\n\n meridiemParse: defaultLocaleMeridiemParse\n };\n\n // internal storage for locale config files\n var locales = {};\n var localeFamilies = {};\n var globalLocale;\n\n function normalizeLocale(key) {\n return key ? key.toLowerCase().replace('_', '-') : key;\n }\n\n // pick the locale from the array\n // try ['en-au', 'en-gb'] as 'en-au', 'en-gb', 'en', as in move through the list trying each\n // substring from most specific to least, but move to the next array item if it's a more specific variant than the current root\n function chooseLocale(names) {\n var i = 0, j, next, locale, split;\n\n while (i < names.length) {\n split = normalizeLocale(names[i]).split('-');\n j = split.length;\n next = normalizeLocale(names[i + 1]);\n next = next ? next.split('-') : null;\n while (j > 0) {\n locale = loadLocale(split.slice(0, j).join('-'));\n if (locale) {\n return locale;\n }\n if (next && next.length >= j && compareArrays(split, next, true) >= j - 1) {\n //the next array item is better than a shallower substring of this one\n break;\n }\n j--;\n }\n i++;\n }\n return globalLocale;\n }\n\n function loadLocale(name) {\n var oldLocale = null;\n // TODO: Find a better way to register and load all the locales in Node\n if (!locales[name] && (typeof module !== 'undefined') &&\n module && module.exports) {\n try {\n oldLocale = globalLocale._abbr;\n var aliasedRequire = require;\n aliasedRequire('./locale/' + name);\n getSetGlobalLocale(oldLocale);\n } catch (e) {}\n }\n return locales[name];\n }\n\n // This function will load locale and then set the global locale. If\n // no arguments are passed in, it will simply return the current global\n // locale key.\n function getSetGlobalLocale (key, values) {\n var data;\n if (key) {\n if (isUndefined(values)) {\n data = getLocale(key);\n }\n else {\n data = defineLocale(key, values);\n }\n\n if (data) {\n // moment.duration._locale = moment._locale = data;\n globalLocale = data;\n }\n else {\n if ((typeof console !== 'undefined') && console.warn) {\n //warn user if arguments are passed but the locale could not be set\n console.warn('Locale ' + key + ' not found. Did you forget to load it?');\n }\n }\n }\n\n return globalLocale._abbr;\n }\n\n function defineLocale (name, config) {\n if (config !== null) {\n var locale, parentConfig = baseConfig;\n config.abbr = name;\n if (locales[name] != null) {\n deprecateSimple('defineLocaleOverride',\n 'use moment.updateLocale(localeName, config) to change ' +\n 'an existing locale. moment.defineLocale(localeName, ' +\n 'config) should only be used for creating a new locale ' +\n 'See http://momentjs.com/guides/#/warnings/define-locale/ for more info.');\n parentConfig = locales[name]._config;\n } else if (config.parentLocale != null) {\n if (locales[config.parentLocale] != null) {\n parentConfig = locales[config.parentLocale]._config;\n } else {\n locale = loadLocale(config.parentLocale);\n if (locale != null) {\n parentConfig = locale._config;\n } else {\n if (!localeFamilies[config.parentLocale]) {\n localeFamilies[config.parentLocale] = [];\n }\n localeFamilies[config.parentLocale].push({\n name: name,\n config: config\n });\n return null;\n }\n }\n }\n locales[name] = new Locale(mergeConfigs(parentConfig, config));\n\n if (localeFamilies[name]) {\n localeFamilies[name].forEach(function (x) {\n defineLocale(x.name, x.config);\n });\n }\n\n // backwards compat for now: also set the locale\n // make sure we set the locale AFTER all child locales have been\n // created, so we won't end up with the child locale set.\n getSetGlobalLocale(name);\n\n\n return locales[name];\n } else {\n // useful for testing\n delete locales[name];\n return null;\n }\n }\n\n function updateLocale(name, config) {\n if (config != null) {\n var locale, tmpLocale, parentConfig = baseConfig;\n // MERGE\n tmpLocale = loadLocale(name);\n if (tmpLocale != null) {\n parentConfig = tmpLocale._config;\n }\n config = mergeConfigs(parentConfig, config);\n locale = new Locale(config);\n locale.parentLocale = locales[name];\n locales[name] = locale;\n\n // backwards compat for now: also set the locale\n getSetGlobalLocale(name);\n } else {\n // pass null for config to unupdate, useful for tests\n if (locales[name] != null) {\n if (locales[name].parentLocale != null) {\n locales[name] = locales[name].parentLocale;\n } else if (locales[name] != null) {\n delete locales[name];\n }\n }\n }\n return locales[name];\n }\n\n // returns locale data\n function getLocale (key) {\n var locale;\n\n if (key && key._locale && key._locale._abbr) {\n key = key._locale._abbr;\n }\n\n if (!key) {\n return globalLocale;\n }\n\n if (!isArray(key)) {\n //short-circuit everything else\n locale = loadLocale(key);\n if (locale) {\n return locale;\n }\n key = [key];\n }\n\n return chooseLocale(key);\n }\n\n function listLocales() {\n return keys(locales);\n }\n\n function checkOverflow (m) {\n var overflow;\n var a = m._a;\n\n if (a && getParsingFlags(m).overflow === -2) {\n overflow =\n a[MONTH] < 0 || a[MONTH] > 11 ? MONTH :\n a[DATE] < 1 || a[DATE] > daysInMonth(a[YEAR], a[MONTH]) ? DATE :\n a[HOUR] < 0 || a[HOUR] > 24 || (a[HOUR] === 24 && (a[MINUTE] !== 0 || a[SECOND] !== 0 || a[MILLISECOND] !== 0)) ? HOUR :\n a[MINUTE] < 0 || a[MINUTE] > 59 ? MINUTE :\n a[SECOND] < 0 || a[SECOND] > 59 ? SECOND :\n a[MILLISECOND] < 0 || a[MILLISECOND] > 999 ? MILLISECOND :\n -1;\n\n if (getParsingFlags(m)._overflowDayOfYear && (overflow < YEAR || overflow > DATE)) {\n overflow = DATE;\n }\n if (getParsingFlags(m)._overflowWeeks && overflow === -1) {\n overflow = WEEK;\n }\n if (getParsingFlags(m)._overflowWeekday && overflow === -1) {\n overflow = WEEKDAY;\n }\n\n getParsingFlags(m).overflow = overflow;\n }\n\n return m;\n }\n\n // Pick the first defined of two or three arguments.\n function defaults(a, b, c) {\n if (a != null) {\n return a;\n }\n if (b != null) {\n return b;\n }\n return c;\n }\n\n function currentDateArray(config) {\n // hooks is actually the exported moment object\n var nowValue = new Date(hooks.now());\n if (config._useUTC) {\n return [nowValue.getUTCFullYear(), nowValue.getUTCMonth(), nowValue.getUTCDate()];\n }\n return [nowValue.getFullYear(), nowValue.getMonth(), nowValue.getDate()];\n }\n\n // convert an array to a date.\n // the array should mirror the parameters below\n // note: all values past the year are optional and will default to the lowest possible value.\n // [year, month, day , hour, minute, second, millisecond]\n function configFromArray (config) {\n var i, date, input = [], currentDate, expectedWeekday, yearToUse;\n\n if (config._d) {\n return;\n }\n\n currentDate = currentDateArray(config);\n\n //compute day of the year from weeks and weekdays\n if (config._w && config._a[DATE] == null && config._a[MONTH] == null) {\n dayOfYearFromWeekInfo(config);\n }\n\n //if the day of the year is set, figure out what it is\n if (config._dayOfYear != null) {\n yearToUse = defaults(config._a[YEAR], currentDate[YEAR]);\n\n if (config._dayOfYear > daysInYear(yearToUse) || config._dayOfYear === 0) {\n getParsingFlags(config)._overflowDayOfYear = true;\n }\n\n date = createUTCDate(yearToUse, 0, config._dayOfYear);\n config._a[MONTH] = date.getUTCMonth();\n config._a[DATE] = date.getUTCDate();\n }\n\n // Default to current date.\n // * if no year, month, day of month are given, default to today\n // * if day of month is given, default month and year\n // * if month is given, default only year\n // * if year is given, don't default anything\n for (i = 0; i < 3 && config._a[i] == null; ++i) {\n config._a[i] = input[i] = currentDate[i];\n }\n\n // Zero out whatever was not defaulted, including time\n for (; i < 7; i++) {\n config._a[i] = input[i] = (config._a[i] == null) ? (i === 2 ? 1 : 0) : config._a[i];\n }\n\n // Check for 24:00:00.000\n if (config._a[HOUR] === 24 &&\n config._a[MINUTE] === 0 &&\n config._a[SECOND] === 0 &&\n config._a[MILLISECOND] === 0) {\n config._nextDay = true;\n config._a[HOUR] = 0;\n }\n\n config._d = (config._useUTC ? createUTCDate : createDate).apply(null, input);\n expectedWeekday = config._useUTC ? config._d.getUTCDay() : config._d.getDay();\n\n // Apply timezone offset from input. The actual utcOffset can be changed\n // with parseZone.\n if (config._tzm != null) {\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n }\n\n if (config._nextDay) {\n config._a[HOUR] = 24;\n }\n\n // check for mismatching day of week\n if (config._w && typeof config._w.d !== 'undefined' && config._w.d !== expectedWeekday) {\n getParsingFlags(config).weekdayMismatch = true;\n }\n }\n\n function dayOfYearFromWeekInfo(config) {\n var w, weekYear, week, weekday, dow, doy, temp, weekdayOverflow;\n\n w = config._w;\n if (w.GG != null || w.W != null || w.E != null) {\n dow = 1;\n doy = 4;\n\n // TODO: We need to take the current isoWeekYear, but that depends on\n // how we interpret now (local, utc, fixed offset). So create\n // a now version of current config (take local/utc/offset flags, and\n // create now).\n weekYear = defaults(w.GG, config._a[YEAR], weekOfYear(createLocal(), 1, 4).year);\n week = defaults(w.W, 1);\n weekday = defaults(w.E, 1);\n if (weekday < 1 || weekday > 7) {\n weekdayOverflow = true;\n }\n } else {\n dow = config._locale._week.dow;\n doy = config._locale._week.doy;\n\n var curWeek = weekOfYear(createLocal(), dow, doy);\n\n weekYear = defaults(w.gg, config._a[YEAR], curWeek.year);\n\n // Default to current week.\n week = defaults(w.w, curWeek.week);\n\n if (w.d != null) {\n // weekday -- low day numbers are considered next week\n weekday = w.d;\n if (weekday < 0 || weekday > 6) {\n weekdayOverflow = true;\n }\n } else if (w.e != null) {\n // local weekday -- counting starts from begining of week\n weekday = w.e + dow;\n if (w.e < 0 || w.e > 6) {\n weekdayOverflow = true;\n }\n } else {\n // default to begining of week\n weekday = dow;\n }\n }\n if (week < 1 || week > weeksInYear(weekYear, dow, doy)) {\n getParsingFlags(config)._overflowWeeks = true;\n } else if (weekdayOverflow != null) {\n getParsingFlags(config)._overflowWeekday = true;\n } else {\n temp = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy);\n config._a[YEAR] = temp.year;\n config._dayOfYear = temp.dayOfYear;\n }\n }\n\n // iso 8601 regex\n // 0000-00-00 0000-W00 or 0000-W00-0 + T + 00 or 00:00 or 00:00:00 or 00:00:00.000 + +00:00 or +0000 or +00)\n var extendedIsoRegex = /^\\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)?)?$/;\n var basicIsoRegex = /^\\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)?)?$/;\n\n var tzRegex = /Z|[+-]\\d\\d(?::?\\d\\d)?/;\n\n var isoDates = [\n ['YYYYYY-MM-DD', /[+-]\\d{6}-\\d\\d-\\d\\d/],\n ['YYYY-MM-DD', /\\d{4}-\\d\\d-\\d\\d/],\n ['GGGG-[W]WW-E', /\\d{4}-W\\d\\d-\\d/],\n ['GGGG-[W]WW', /\\d{4}-W\\d\\d/, false],\n ['YYYY-DDD', /\\d{4}-\\d{3}/],\n ['YYYY-MM', /\\d{4}-\\d\\d/, false],\n ['YYYYYYMMDD', /[+-]\\d{10}/],\n ['YYYYMMDD', /\\d{8}/],\n // YYYYMM is NOT allowed by the standard\n ['GGGG[W]WWE', /\\d{4}W\\d{3}/],\n ['GGGG[W]WW', /\\d{4}W\\d{2}/, false],\n ['YYYYDDD', /\\d{7}/]\n ];\n\n // iso time formats and regexes\n var isoTimes = [\n ['HH:mm:ss.SSSS', /\\d\\d:\\d\\d:\\d\\d\\.\\d+/],\n ['HH:mm:ss,SSSS', /\\d\\d:\\d\\d:\\d\\d,\\d+/],\n ['HH:mm:ss', /\\d\\d:\\d\\d:\\d\\d/],\n ['HH:mm', /\\d\\d:\\d\\d/],\n ['HHmmss.SSSS', /\\d\\d\\d\\d\\d\\d\\.\\d+/],\n ['HHmmss,SSSS', /\\d\\d\\d\\d\\d\\d,\\d+/],\n ['HHmmss', /\\d\\d\\d\\d\\d\\d/],\n ['HHmm', /\\d\\d\\d\\d/],\n ['HH', /\\d\\d/]\n ];\n\n var aspNetJsonRegex = /^\\/?Date\\((\\-?\\d+)/i;\n\n // date from iso format\n function configFromISO(config) {\n var i, l,\n string = config._i,\n match = extendedIsoRegex.exec(string) || basicIsoRegex.exec(string),\n allowTime, dateFormat, timeFormat, tzFormat;\n\n if (match) {\n getParsingFlags(config).iso = true;\n\n for (i = 0, l = isoDates.length; i < l; i++) {\n if (isoDates[i][1].exec(match[1])) {\n dateFormat = isoDates[i][0];\n allowTime = isoDates[i][2] !== false;\n break;\n }\n }\n if (dateFormat == null) {\n config._isValid = false;\n return;\n }\n if (match[3]) {\n for (i = 0, l = isoTimes.length; i < l; i++) {\n if (isoTimes[i][1].exec(match[3])) {\n // match[2] should be 'T' or space\n timeFormat = (match[2] || ' ') + isoTimes[i][0];\n break;\n }\n }\n if (timeFormat == null) {\n config._isValid = false;\n return;\n }\n }\n if (!allowTime && timeFormat != null) {\n config._isValid = false;\n return;\n }\n if (match[4]) {\n if (tzRegex.exec(match[4])) {\n tzFormat = 'Z';\n } else {\n config._isValid = false;\n return;\n }\n }\n config._f = dateFormat + (timeFormat || '') + (tzFormat || '');\n configFromStringAndFormat(config);\n } else {\n config._isValid = false;\n }\n }\n\n // RFC 2822 regex: For details see https://tools.ietf.org/html/rfc2822#section-3.3\n var rfc2822 = /^(?:(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}))$/;\n\n function extractFromRFC2822Strings(yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n var result = [\n untruncateYear(yearStr),\n defaultLocaleMonthsShort.indexOf(monthStr),\n parseInt(dayStr, 10),\n parseInt(hourStr, 10),\n parseInt(minuteStr, 10)\n ];\n\n if (secondStr) {\n result.push(parseInt(secondStr, 10));\n }\n\n return result;\n }\n\n function untruncateYear(yearStr) {\n var year = parseInt(yearStr, 10);\n if (year <= 49) {\n return 2000 + year;\n } else if (year <= 999) {\n return 1900 + year;\n }\n return year;\n }\n\n function preprocessRFC2822(s) {\n // Remove comments and folding whitespace and replace multiple-spaces with a single space\n return s.replace(/\\([^)]*\\)|[\\n\\t]/g, ' ').replace(/(\\s\\s+)/g, ' ').replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n }\n\n function checkWeekday(weekdayStr, parsedInput, config) {\n if (weekdayStr) {\n // TODO: Replace the vanilla JS Date object with an indepentent day-of-week check.\n var weekdayProvided = defaultLocaleWeekdaysShort.indexOf(weekdayStr),\n weekdayActual = new Date(parsedInput[0], parsedInput[1], parsedInput[2]).getDay();\n if (weekdayProvided !== weekdayActual) {\n getParsingFlags(config).weekdayMismatch = true;\n config._isValid = false;\n return false;\n }\n }\n return true;\n }\n\n var obsOffsets = {\n UT: 0,\n GMT: 0,\n EDT: -4 * 60,\n EST: -5 * 60,\n CDT: -5 * 60,\n CST: -6 * 60,\n MDT: -6 * 60,\n MST: -7 * 60,\n PDT: -7 * 60,\n PST: -8 * 60\n };\n\n function calculateOffset(obsOffset, militaryOffset, numOffset) {\n if (obsOffset) {\n return obsOffsets[obsOffset];\n } else if (militaryOffset) {\n // the only allowed military tz is Z\n return 0;\n } else {\n var hm = parseInt(numOffset, 10);\n var m = hm % 100, h = (hm - m) / 100;\n return h * 60 + m;\n }\n }\n\n // date and time from ref 2822 format\n function configFromRFC2822(config) {\n var match = rfc2822.exec(preprocessRFC2822(config._i));\n if (match) {\n var parsedArray = extractFromRFC2822Strings(match[4], match[3], match[2], match[5], match[6], match[7]);\n if (!checkWeekday(match[1], parsedArray, config)) {\n return;\n }\n\n config._a = parsedArray;\n config._tzm = calculateOffset(match[8], match[9], match[10]);\n\n config._d = createUTCDate.apply(null, config._a);\n config._d.setUTCMinutes(config._d.getUTCMinutes() - config._tzm);\n\n getParsingFlags(config).rfc2822 = true;\n } else {\n config._isValid = false;\n }\n }\n\n // date from iso format or fallback\n function configFromString(config) {\n var matched = aspNetJsonRegex.exec(config._i);\n\n if (matched !== null) {\n config._d = new Date(+matched[1]);\n return;\n }\n\n configFromISO(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n configFromRFC2822(config);\n if (config._isValid === false) {\n delete config._isValid;\n } else {\n return;\n }\n\n // Final attempt, use Input Fallback\n hooks.createFromInputFallback(config);\n }\n\n hooks.createFromInputFallback = deprecate(\n 'value provided is not in a recognized RFC2822 or ISO format. moment construction falls back to js Date(), ' +\n 'which is not reliable across all browsers and versions. Non RFC2822/ISO date formats are ' +\n 'discouraged and will be removed in an upcoming major release. Please refer to ' +\n 'http://momentjs.com/guides/#/warnings/js-date/ for more info.',\n function (config) {\n config._d = new Date(config._i + (config._useUTC ? ' UTC' : ''));\n }\n );\n\n // constant that refers to the ISO standard\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function configFromStringAndFormat(config) {\n // TODO: Move this to another part of the creation flow to prevent circular deps\n if (config._f === hooks.ISO_8601) {\n configFromISO(config);\n return;\n }\n if (config._f === hooks.RFC_2822) {\n configFromRFC2822(config);\n return;\n }\n config._a = [];\n getParsingFlags(config).empty = true;\n\n // This array is used to make a Date, either with `new Date` or `Date.UTC`\n var string = '' + config._i,\n i, parsedInput, tokens, token, skipped,\n stringLength = string.length,\n totalParsedInputLength = 0;\n\n tokens = expandFormat(config._f, config._locale).match(formattingTokens) || [];\n\n for (i = 0; i < tokens.length; i++) {\n token = tokens[i];\n parsedInput = (string.match(getParseRegexForToken(token, config)) || [])[0];\n // console.log('token', token, 'parsedInput', parsedInput,\n // 'regex', getParseRegexForToken(token, config));\n if (parsedInput) {\n skipped = string.substr(0, string.indexOf(parsedInput));\n if (skipped.length > 0) {\n getParsingFlags(config).unusedInput.push(skipped);\n }\n string = string.slice(string.indexOf(parsedInput) + parsedInput.length);\n totalParsedInputLength += parsedInput.length;\n }\n // don't parse if it's not a known token\n if (formatTokenFunctions[token]) {\n if (parsedInput) {\n getParsingFlags(config).empty = false;\n }\n else {\n getParsingFlags(config).unusedTokens.push(token);\n }\n addTimeToArrayFromToken(token, parsedInput, config);\n }\n else if (config._strict && !parsedInput) {\n getParsingFlags(config).unusedTokens.push(token);\n }\n }\n\n // add remaining unparsed input length to the string\n getParsingFlags(config).charsLeftOver = stringLength - totalParsedInputLength;\n if (string.length > 0) {\n getParsingFlags(config).unusedInput.push(string);\n }\n\n // clear _12h flag if hour is <= 12\n if (config._a[HOUR] <= 12 &&\n getParsingFlags(config).bigHour === true &&\n config._a[HOUR] > 0) {\n getParsingFlags(config).bigHour = undefined;\n }\n\n getParsingFlags(config).parsedDateParts = config._a.slice(0);\n getParsingFlags(config).meridiem = config._meridiem;\n // handle meridiem\n config._a[HOUR] = meridiemFixWrap(config._locale, config._a[HOUR], config._meridiem);\n\n configFromArray(config);\n checkOverflow(config);\n }\n\n\n function meridiemFixWrap (locale, hour, meridiem) {\n var isPm;\n\n if (meridiem == null) {\n // nothing to do\n return hour;\n }\n if (locale.meridiemHour != null) {\n return locale.meridiemHour(hour, meridiem);\n } else if (locale.isPM != null) {\n // Fallback\n isPm = locale.isPM(meridiem);\n if (isPm && hour < 12) {\n hour += 12;\n }\n if (!isPm && hour === 12) {\n hour = 0;\n }\n return hour;\n } else {\n // this is not supposed to happen\n return hour;\n }\n }\n\n // date from string and array of format strings\n function configFromStringAndArray(config) {\n var tempConfig,\n bestMoment,\n\n scoreToBeat,\n i,\n currentScore;\n\n if (config._f.length === 0) {\n getParsingFlags(config).invalidFormat = true;\n config._d = new Date(NaN);\n return;\n }\n\n for (i = 0; i < config._f.length; i++) {\n currentScore = 0;\n tempConfig = copyConfig({}, config);\n if (config._useUTC != null) {\n tempConfig._useUTC = config._useUTC;\n }\n tempConfig._f = config._f[i];\n configFromStringAndFormat(tempConfig);\n\n if (!isValid(tempConfig)) {\n continue;\n }\n\n // if there is any input that was not parsed add a penalty for that format\n currentScore += getParsingFlags(tempConfig).charsLeftOver;\n\n //or tokens\n currentScore += getParsingFlags(tempConfig).unusedTokens.length * 10;\n\n getParsingFlags(tempConfig).score = currentScore;\n\n if (scoreToBeat == null || currentScore < scoreToBeat) {\n scoreToBeat = currentScore;\n bestMoment = tempConfig;\n }\n }\n\n extend(config, bestMoment || tempConfig);\n }\n\n function configFromObject(config) {\n if (config._d) {\n return;\n }\n\n var i = normalizeObjectUnits(config._i);\n config._a = map([i.year, i.month, i.day || i.date, i.hour, i.minute, i.second, i.millisecond], function (obj) {\n return obj && parseInt(obj, 10);\n });\n\n configFromArray(config);\n }\n\n function createFromConfig (config) {\n var res = new Moment(checkOverflow(prepareConfig(config)));\n if (res._nextDay) {\n // Adding is smart enough around DST\n res.add(1, 'd');\n res._nextDay = undefined;\n }\n\n return res;\n }\n\n function prepareConfig (config) {\n var input = config._i,\n format = config._f;\n\n config._locale = config._locale || getLocale(config._l);\n\n if (input === null || (format === undefined && input === '')) {\n return createInvalid({nullInput: true});\n }\n\n if (typeof input === 'string') {\n config._i = input = config._locale.preparse(input);\n }\n\n if (isMoment(input)) {\n return new Moment(checkOverflow(input));\n } else if (isDate(input)) {\n config._d = input;\n } else if (isArray(format)) {\n configFromStringAndArray(config);\n } else if (format) {\n configFromStringAndFormat(config);\n } else {\n configFromInput(config);\n }\n\n if (!isValid(config)) {\n config._d = null;\n }\n\n return config;\n }\n\n function configFromInput(config) {\n var input = config._i;\n if (isUndefined(input)) {\n config._d = new Date(hooks.now());\n } else if (isDate(input)) {\n config._d = new Date(input.valueOf());\n } else if (typeof input === 'string') {\n configFromString(config);\n } else if (isArray(input)) {\n config._a = map(input.slice(0), function (obj) {\n return parseInt(obj, 10);\n });\n configFromArray(config);\n } else if (isObject(input)) {\n configFromObject(config);\n } else if (isNumber(input)) {\n // from milliseconds\n config._d = new Date(input);\n } else {\n hooks.createFromInputFallback(config);\n }\n }\n\n function createLocalOrUTC (input, format, locale, strict, isUTC) {\n var c = {};\n\n if (locale === true || locale === false) {\n strict = locale;\n locale = undefined;\n }\n\n if ((isObject(input) && isObjectEmpty(input)) ||\n (isArray(input) && input.length === 0)) {\n input = undefined;\n }\n // object construction must be done this way.\n // https://github.com/moment/moment/issues/1423\n c._isAMomentObject = true;\n c._useUTC = c._isUTC = isUTC;\n c._l = locale;\n c._i = input;\n c._f = format;\n c._strict = strict;\n\n return createFromConfig(c);\n }\n\n function createLocal (input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var prototypeMin = deprecate(\n 'moment().min is deprecated, use moment.max instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other < this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n var prototypeMax = deprecate(\n 'moment().max is deprecated, use moment.min instead. http://momentjs.com/guides/#/warnings/min-max/',\n function () {\n var other = createLocal.apply(null, arguments);\n if (this.isValid() && other.isValid()) {\n return other > this ? this : other;\n } else {\n return createInvalid();\n }\n }\n );\n\n // Pick a moment m from moments so that m[fn](other) is true for all\n // other. This relies on the function fn to be transitive.\n //\n // moments should either be an array of moment objects or an array, whose\n // first element is an array of moment objects.\n function pickBy(fn, moments) {\n var res, i;\n if (moments.length === 1 && isArray(moments[0])) {\n moments = moments[0];\n }\n if (!moments.length) {\n return createLocal();\n }\n res = moments[0];\n for (i = 1; i < moments.length; ++i) {\n if (!moments[i].isValid() || moments[i][fn](res)) {\n res = moments[i];\n }\n }\n return res;\n }\n\n // TODO: Use [].sort instead?\n function min () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max () {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +(new Date());\n };\n\n var ordering = ['year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', 'millisecond'];\n\n function isDurationValid(m) {\n for (var key in m) {\n if (!(indexOf.call(ordering, key) !== -1 && (m[key] == null || !isNaN(m[key])))) {\n return false;\n }\n }\n\n var unitHasDecimal = false;\n for (var i = 0; i < ordering.length; ++i) {\n if (m[ordering[i]]) {\n if (unitHasDecimal) {\n return false; // only allow non-integers for smallest unit\n }\n if (parseFloat(m[ordering[i]]) !== toInt(m[ordering[i]])) {\n unitHasDecimal = true;\n }\n }\n }\n\n return true;\n }\n\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function Duration (duration) {\n var normalizedInput = normalizeObjectUnits(duration),\n years = normalizedInput.year || 0,\n quarters = normalizedInput.quarter || 0,\n months = normalizedInput.month || 0,\n weeks = normalizedInput.week || 0,\n days = normalizedInput.day || 0,\n hours = normalizedInput.hour || 0,\n minutes = normalizedInput.minute || 0,\n seconds = normalizedInput.second || 0,\n milliseconds = normalizedInput.millisecond || 0;\n\n this._isValid = isDurationValid(normalizedInput);\n\n // representation for dateAddRemove\n this._milliseconds = +milliseconds +\n seconds * 1e3 + // 1000\n minutes * 6e4 + // 1000 * 60\n hours * 1000 * 60 * 60; //using 1000 * 60 * 60 instead of 36e5 to avoid floating point rounding errors https://github.com/moment/moment/issues/2978\n // Because of dateAddRemove treats 24 hours as different from a\n // day when working around DST, we need to store them separately\n this._days = +days +\n weeks * 7;\n // It is impossible to translate months into days without knowing\n // which months you are are talking about, so we have to store\n // it separately.\n this._months = +months +\n quarters * 3 +\n years * 12;\n\n this._data = {};\n\n this._locale = getLocale();\n\n this._bubble();\n }\n\n function isDuration (obj) {\n return obj instanceof Duration;\n }\n\n function absRound (number) {\n if (number < 0) {\n return Math.round(-1 * number) * -1;\n } else {\n return Math.round(number);\n }\n }\n\n // FORMATTING\n\n function offset (token, separator) {\n addFormatToken(token, 0, 0, function () {\n var offset = this.utcOffset();\n var sign = '+';\n if (offset < 0) {\n offset = -offset;\n sign = '-';\n }\n return sign + zeroFill(~~(offset / 60), 2) + separator + zeroFill(~~(offset) % 60, 2);\n });\n }\n\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['Z', 'ZZ'], function (input, array, config) {\n config._useUTC = true;\n config._tzm = offsetFromString(matchShortOffset, input);\n });\n\n // HELPERS\n\n // timezone chunker\n // '+10:00' > ['10', '00']\n // '-1530' > ['-15', '30']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function offsetFromString(matcher, string) {\n var matches = (string || '').match(matcher);\n\n if (matches === null) {\n return null;\n }\n\n var chunk = matches[matches.length - 1] || [];\n var parts = (chunk + '').match(chunkOffset) || ['-', 0, 0];\n var minutes = +(parts[1] * 60) + toInt(parts[2]);\n\n return minutes === 0 ?\n 0 :\n parts[0] === '+' ? minutes : -minutes;\n }\n\n // Return a moment from input, that is local/utc/zone equivalent to model.\n function cloneWithOffset(input, model) {\n var res, diff;\n if (model._isUTC) {\n res = model.clone();\n diff = (isMoment(input) || isDate(input) ? input.valueOf() : createLocal(input).valueOf()) - res.valueOf();\n // Use low-level api, because this fn is low-level api.\n res._d.setTime(res._d.valueOf() + diff);\n hooks.updateOffset(res, false);\n return res;\n } else {\n return createLocal(input).local();\n }\n }\n\n function getDateOffset (m) {\n // On Firefox.24 Date#getTimezoneOffset returns a floating point.\n // https://github.com/moment/moment/pull/1871\n return -Math.round(m._d.getTimezoneOffset() / 15) * 15;\n }\n\n // HOOKS\n\n // This function will be called whenever a moment is mutated.\n // It is intended to keep the offset in sync with the timezone.\n hooks.updateOffset = function () {};\n\n // MOMENTS\n\n // keepLocalTime = true means only change the timezone, without\n // affecting the local hour. So 5:31:26 +0300 --[utcOffset(2, true)]-->\n // 5:31:26 +0200 It is possible that 5:31:26 doesn't exist with offset\n // +0200, so we adjust the time as needed, to be valid.\n //\n // Keeping the time actually adds/subtracts (one hour)\n // from the actual represented time. That is why we call updateOffset\n // a second time. In case it wants us to change the offset again\n // _changeInProgress == true case, then we have to adjust, because\n // there is no such time in the given timezone.\n function getSetOffset (input, keepLocalTime, keepMinutes) {\n var offset = this._offset || 0,\n localAdjust;\n if (!this.isValid()) {\n return input != null ? this : NaN;\n }\n if (input != null) {\n if (typeof input === 'string') {\n input = offsetFromString(matchShortOffset, input);\n if (input === null) {\n return this;\n }\n } else if (Math.abs(input) < 16 && !keepMinutes) {\n input = input * 60;\n }\n if (!this._isUTC && keepLocalTime) {\n localAdjust = getDateOffset(this);\n }\n this._offset = input;\n this._isUTC = true;\n if (localAdjust != null) {\n this.add(localAdjust, 'm');\n }\n if (offset !== input) {\n if (!keepLocalTime || this._changeInProgress) {\n addSubtract(this, createDuration(input - offset, 'm'), 1, false);\n } else if (!this._changeInProgress) {\n this._changeInProgress = true;\n hooks.updateOffset(this, true);\n this._changeInProgress = null;\n }\n }\n return this;\n } else {\n return this._isUTC ? offset : getDateOffset(this);\n }\n }\n\n function getSetZone (input, keepLocalTime) {\n if (input != null) {\n if (typeof input !== 'string') {\n input = -input;\n }\n\n this.utcOffset(input, keepLocalTime);\n\n return this;\n } else {\n return -this.utcOffset();\n }\n }\n\n function setOffsetToUTC (keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function setOffsetToLocal (keepLocalTime) {\n if (this._isUTC) {\n this.utcOffset(0, keepLocalTime);\n this._isUTC = false;\n\n if (keepLocalTime) {\n this.subtract(getDateOffset(this), 'm');\n }\n }\n return this;\n }\n\n function setOffsetToParsedOffset () {\n if (this._tzm != null) {\n this.utcOffset(this._tzm, false, true);\n } else if (typeof this._i === 'string') {\n var tZone = offsetFromString(matchOffset, this._i);\n if (tZone != null) {\n this.utcOffset(tZone);\n }\n else {\n this.utcOffset(0, true);\n }\n }\n return this;\n }\n\n function hasAlignedHourOffset (input) {\n if (!this.isValid()) {\n return false;\n }\n input = input ? createLocal(input).utcOffset() : 0;\n\n return (this.utcOffset() - input) % 60 === 0;\n }\n\n function isDaylightSavingTime () {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function isDaylightSavingTimeShifted () {\n if (!isUndefined(this._isDSTShifted)) {\n return this._isDSTShifted;\n }\n\n var c = {};\n\n copyConfig(c, this);\n c = prepareConfig(c);\n\n if (c._a) {\n var other = c._isUTC ? createUTC(c._a) : createLocal(c._a);\n this._isDSTShifted = this.isValid() &&\n compareArrays(c._a, other.toArray()) > 0;\n } else {\n this._isDSTShifted = false;\n }\n\n return this._isDSTShifted;\n }\n\n function isLocal () {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset () {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc () {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var aspNetRegex = /^(\\-|\\+)?(?:(\\d*)[. ])?(\\d+)\\:(\\d+)(?:\\:(\\d+)(\\.\\d*)?)?$/;\n\n // from http://docs.closure-library.googlecode.com/git/closure_goog_date_date.js.source.html\n // somewhat more in line with 4.4.3.2 2004 spec, but allows decimal anywhere\n // and further modified to allow for strings containing both week and day\n var isoRegex = /^(-|\\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;\n\n function createDuration (input, key) {\n var duration = input,\n // matching against regexp is expensive, do it on demand\n match = null,\n sign,\n ret,\n diffRes;\n\n if (isDuration(input)) {\n duration = {\n ms : input._milliseconds,\n d : input._days,\n M : input._months\n };\n } else if (isNumber(input)) {\n duration = {};\n if (key) {\n duration[key] = input;\n } else {\n duration.milliseconds = input;\n }\n } else if (!!(match = aspNetRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : 1;\n duration = {\n y : 0,\n d : toInt(match[DATE]) * sign,\n h : toInt(match[HOUR]) * sign,\n m : toInt(match[MINUTE]) * sign,\n s : toInt(match[SECOND]) * sign,\n ms : toInt(absRound(match[MILLISECOND] * 1000)) * sign // the millisecond decimal point is included in the match\n };\n } else if (!!(match = isoRegex.exec(input))) {\n sign = (match[1] === '-') ? -1 : (match[1] === '+') ? 1 : 1;\n duration = {\n y : parseIso(match[2], sign),\n M : parseIso(match[3], sign),\n w : parseIso(match[4], sign),\n d : parseIso(match[5], sign),\n h : parseIso(match[6], sign),\n m : parseIso(match[7], sign),\n s : parseIso(match[8], sign)\n };\n } else if (duration == null) {// checks for null or undefined\n duration = {};\n } else if (typeof duration === 'object' && ('from' in duration || 'to' in duration)) {\n diffRes = momentsDifference(createLocal(duration.from), createLocal(duration.to));\n\n duration = {};\n duration.ms = diffRes.milliseconds;\n duration.M = diffRes.months;\n }\n\n ret = new Duration(duration);\n\n if (isDuration(input) && hasOwnProp(input, '_locale')) {\n ret._locale = input._locale;\n }\n\n return ret;\n }\n\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function parseIso (inp, sign) {\n // We'd normally use ~~inp for this, but unfortunately it also\n // converts floats to ints.\n // inp may be undefined, so careful calling replace on it.\n var res = inp && parseFloat(inp.replace(',', '.'));\n // apply sign while we're at it\n return (isNaN(res) ? 0 : res) * sign;\n }\n\n function positiveMomentsDifference(base, other) {\n var res = {milliseconds: 0, months: 0};\n\n res.months = other.month() - base.month() +\n (other.year() - base.year()) * 12;\n if (base.clone().add(res.months, 'M').isAfter(other)) {\n --res.months;\n }\n\n res.milliseconds = +other - +(base.clone().add(res.months, 'M'));\n\n return res;\n }\n\n function momentsDifference(base, other) {\n var res;\n if (!(base.isValid() && other.isValid())) {\n return {milliseconds: 0, months: 0};\n }\n\n other = cloneWithOffset(other, base);\n if (base.isBefore(other)) {\n res = positiveMomentsDifference(base, other);\n } else {\n res = positiveMomentsDifference(other, base);\n res.milliseconds = -res.milliseconds;\n res.months = -res.months;\n }\n\n return res;\n }\n\n // TODO: remove 'name' arg after deprecation is removed\n function createAdder(direction, name) {\n return function (val, period) {\n var dur, tmp;\n //invert the arguments, but complain about it\n if (period !== null && !isNaN(+period)) {\n deprecateSimple(name, 'moment().' + name + '(period, number) is deprecated. Please use moment().' + name + '(number, period). ' +\n 'See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info.');\n tmp = val; val = period; period = tmp;\n }\n\n val = typeof val === 'string' ? +val : val;\n dur = createDuration(val, period);\n addSubtract(this, dur, direction);\n return this;\n };\n }\n\n function addSubtract (mom, duration, isAdding, updateOffset) {\n var milliseconds = duration._milliseconds,\n days = absRound(duration._days),\n months = absRound(duration._months);\n\n if (!mom.isValid()) {\n // No op\n return;\n }\n\n updateOffset = updateOffset == null ? true : updateOffset;\n\n if (months) {\n setMonth(mom, get(mom, 'Month') + months * isAdding);\n }\n if (days) {\n set$1(mom, 'Date', get(mom, 'Date') + days * isAdding);\n }\n if (milliseconds) {\n mom._d.setTime(mom._d.valueOf() + milliseconds * isAdding);\n }\n if (updateOffset) {\n hooks.updateOffset(mom, days || months);\n }\n }\n\n var add = createAdder(1, 'add');\n var subtract = createAdder(-1, 'subtract');\n\n function getCalendarFormat(myMoment, now) {\n var diff = myMoment.diff(now, 'days', true);\n return diff < -6 ? 'sameElse' :\n diff < -1 ? 'lastWeek' :\n diff < 0 ? 'lastDay' :\n diff < 1 ? 'sameDay' :\n diff < 2 ? 'nextDay' :\n diff < 7 ? 'nextWeek' : 'sameElse';\n }\n\n function calendar$1 (time, formats) {\n // We want to compare the start of today, vs this.\n // Getting start-of-today depends on whether we're local/utc/offset or not.\n var now = time || createLocal(),\n sod = cloneWithOffset(now, this).startOf('day'),\n format = hooks.calendarFormat(this, sod) || 'sameElse';\n\n var output = formats && (isFunction(formats[format]) ? formats[format].call(this, now) : formats[format]);\n\n return this.format(output || this.localeData().calendar(format, this, createLocal(now)));\n }\n\n function clone () {\n return new Moment(this);\n }\n\n function isAfter (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() > localInput.valueOf();\n } else {\n return localInput.valueOf() < this.clone().startOf(units).valueOf();\n }\n }\n\n function isBefore (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input);\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(!isUndefined(units) ? units : 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() < localInput.valueOf();\n } else {\n return this.clone().endOf(units).valueOf() < localInput.valueOf();\n }\n }\n\n function isBetween (from, to, units, inclusivity) {\n inclusivity = inclusivity || '()';\n return (inclusivity[0] === '(' ? this.isAfter(from, units) : !this.isBefore(from, units)) &&\n (inclusivity[1] === ')' ? this.isBefore(to, units) : !this.isAfter(to, units));\n }\n\n function isSame (input, units) {\n var localInput = isMoment(input) ? input : createLocal(input),\n inputMs;\n if (!(this.isValid() && localInput.isValid())) {\n return false;\n }\n units = normalizeUnits(units || 'millisecond');\n if (units === 'millisecond') {\n return this.valueOf() === localInput.valueOf();\n } else {\n inputMs = localInput.valueOf();\n return this.clone().startOf(units).valueOf() <= inputMs && inputMs <= this.clone().endOf(units).valueOf();\n }\n }\n\n function isSameOrAfter (input, units) {\n return this.isSame(input, units) || this.isAfter(input,units);\n }\n\n function isSameOrBefore (input, units) {\n return this.isSame(input, units) || this.isBefore(input,units);\n }\n\n function diff (input, units, asFloat) {\n var that,\n zoneDelta,\n output;\n\n if (!this.isValid()) {\n return NaN;\n }\n\n that = cloneWithOffset(input, this);\n\n if (!that.isValid()) {\n return NaN;\n }\n\n zoneDelta = (that.utcOffset() - this.utcOffset()) * 6e4;\n\n units = normalizeUnits(units);\n\n switch (units) {\n case 'year': output = monthDiff(this, that) / 12; break;\n case 'month': output = monthDiff(this, that); break;\n case 'quarter': output = monthDiff(this, that) / 3; break;\n case 'second': output = (this - that) / 1e3; break; // 1000\n case 'minute': output = (this - that) / 6e4; break; // 1000 * 60\n case 'hour': output = (this - that) / 36e5; break; // 1000 * 60 * 60\n case 'day': output = (this - that - zoneDelta) / 864e5; break; // 1000 * 60 * 60 * 24, negate dst\n case 'week': output = (this - that - zoneDelta) / 6048e5; break; // 1000 * 60 * 60 * 24 * 7, negate dst\n default: output = this - that;\n }\n\n return asFloat ? output : absFloor(output);\n }\n\n function monthDiff (a, b) {\n // difference in months\n var wholeMonthDiff = ((b.year() - a.year()) * 12) + (b.month() - a.month()),\n // b is in (anchor - 1 month, anchor + 1 month)\n anchor = a.clone().add(wholeMonthDiff, 'months'),\n anchor2, adjust;\n\n if (b - anchor < 0) {\n anchor2 = a.clone().add(wholeMonthDiff - 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor - anchor2);\n } else {\n anchor2 = a.clone().add(wholeMonthDiff + 1, 'months');\n // linear across the month\n adjust = (b - anchor) / (anchor2 - anchor);\n }\n\n //check for negative zero, return zero if negative zero\n return -(wholeMonthDiff + adjust) || 0;\n }\n\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString () {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function toISOString(keepOffset) {\n if (!this.isValid()) {\n return null;\n }\n var utc = keepOffset !== true;\n var m = utc ? this.clone().utc() : this;\n if (m.year() < 0 || m.year() > 9999) {\n return formatMoment(m, utc ? 'YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n if (isFunction(Date.prototype.toISOString)) {\n // native implementation is ~50x faster, use it when we can\n if (utc) {\n return this.toDate().toISOString();\n } else {\n return new Date(this.valueOf() + this.utcOffset() * 60 * 1000).toISOString().replace('Z', formatMoment(m, 'Z'));\n }\n }\n return formatMoment(m, utc ? 'YYYY-MM-DD[T]HH:mm:ss.SSS[Z]' : 'YYYY-MM-DD[T]HH:mm:ss.SSSZ');\n }\n\n /**\n * Return a human readable representation of a moment that can\n * also be evaluated to get a new moment which is the same\n *\n * @link https://nodejs.org/dist/latest/docs/api/util.html#util_custom_inspect_function_on_objects\n */\n function inspect () {\n if (!this.isValid()) {\n return 'moment.invalid(/* ' + this._i + ' */)';\n }\n var func = 'moment';\n var zone = '';\n if (!this.isLocal()) {\n func = this.utcOffset() === 0 ? 'moment.utc' : 'moment.parseZone';\n zone = 'Z';\n }\n var prefix = '[' + func + '(\"]';\n var year = (0 <= this.year() && this.year() <= 9999) ? 'YYYY' : 'YYYYYY';\n var datetime = '-MM-DD[T]HH:mm:ss.SSS';\n var suffix = zone + '[\")]';\n\n return this.format(prefix + year + datetime + suffix);\n }\n\n function format (inputString) {\n if (!inputString) {\n inputString = this.isUtc() ? hooks.defaultFormatUtc : hooks.defaultFormat;\n }\n var output = formatMoment(this, inputString);\n return this.localeData().postformat(output);\n }\n\n function from (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({to: this, from: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function fromNow (withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function to (time, withoutSuffix) {\n if (this.isValid() &&\n ((isMoment(time) && time.isValid()) ||\n createLocal(time).isValid())) {\n return createDuration({from: this, to: time}).locale(this.locale()).humanize(!withoutSuffix);\n } else {\n return this.localeData().invalidDate();\n }\n }\n\n function toNow (withoutSuffix) {\n return this.to(createLocal(), withoutSuffix);\n }\n\n // If passed a locale key, it will set the locale for this\n // instance. Otherwise, it will return the locale configuration\n // variables for this instance.\n function locale (key) {\n var newLocaleData;\n\n if (key === undefined) {\n return this._locale._abbr;\n } else {\n newLocaleData = getLocale(key);\n if (newLocaleData != null) {\n this._locale = newLocaleData;\n }\n return this;\n }\n }\n\n var lang = deprecate(\n 'moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.',\n function (key) {\n if (key === undefined) {\n return this.localeData();\n } else {\n return this.locale(key);\n }\n }\n );\n\n function localeData () {\n return this._locale;\n }\n\n function startOf (units) {\n units = normalizeUnits(units);\n // the following switch intentionally omits break keywords\n // to utilize falling through the cases.\n switch (units) {\n case 'year':\n this.month(0);\n /* falls through */\n case 'quarter':\n case 'month':\n this.date(1);\n /* falls through */\n case 'week':\n case 'isoWeek':\n case 'day':\n case 'date':\n this.hours(0);\n /* falls through */\n case 'hour':\n this.minutes(0);\n /* falls through */\n case 'minute':\n this.seconds(0);\n /* falls through */\n case 'second':\n this.milliseconds(0);\n }\n\n // weeks are a special case\n if (units === 'week') {\n this.weekday(0);\n }\n if (units === 'isoWeek') {\n this.isoWeekday(1);\n }\n\n // quarters are also special\n if (units === 'quarter') {\n this.month(Math.floor(this.month() / 3) * 3);\n }\n\n return this;\n }\n\n function endOf (units) {\n units = normalizeUnits(units);\n if (units === undefined || units === 'millisecond') {\n return this;\n }\n\n // 'date' is an alias for 'day', so it should be considered as such.\n if (units === 'date') {\n units = 'day';\n }\n\n return this.startOf(units).add(1, (units === 'isoWeek' ? 'week' : units)).subtract(1, 'ms');\n }\n\n function valueOf () {\n return this._d.valueOf() - ((this._offset || 0) * 60000);\n }\n\n function unix () {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate () {\n return new Date(this.valueOf());\n }\n\n function toArray () {\n var m = this;\n return [m.year(), m.month(), m.date(), m.hour(), m.minute(), m.second(), m.millisecond()];\n }\n\n function toObject () {\n var m = this;\n return {\n years: m.year(),\n months: m.month(),\n date: m.date(),\n hours: m.hours(),\n minutes: m.minutes(),\n seconds: m.seconds(),\n milliseconds: m.milliseconds()\n };\n }\n\n function toJSON () {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2 () {\n return isValid(this);\n }\n\n function parsingFlags () {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt () {\n return getParsingFlags(this).overflow;\n }\n\n function creationData() {\n return {\n input: this._i,\n format: this._f,\n locale: this._locale,\n isUTC: this._isUTC,\n strict: this._strict\n };\n }\n\n // FORMATTING\n\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken (token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (input, week, config, token) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function getSetWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input,\n this.week(),\n this.weekday(),\n this.localeData()._week.dow,\n this.localeData()._week.doy);\n }\n\n function getSetISOWeekYear (input) {\n return getSetWeekYearHelper.call(this,\n input, this.isoWeek(), this.isoWeekday(), 1, 4);\n }\n\n function getISOWeeksInYear () {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getWeeksInYear () {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getSetWeekYearHelper(input, week, weekday, dow, doy) {\n var weeksTarget;\n if (input == null) {\n return weekOfYear(this, dow, doy).year;\n } else {\n weeksTarget = weeksInYear(input, dow, doy);\n if (week > weeksTarget) {\n week = weeksTarget;\n }\n return setWeekAll.call(this, input, week, weekday, dow, doy);\n }\n }\n\n function setWeekAll(weekYear, week, weekday, dow, doy) {\n var dayOfYearData = dayOfYearFromWeeks(weekYear, week, weekday, dow, doy),\n date = createUTCDate(dayOfYearData.year, 0, dayOfYearData.dayOfYear);\n\n this.year(date.getUTCFullYear());\n this.month(date.getUTCMonth());\n this.date(date.getUTCDate());\n return this;\n }\n\n // FORMATTING\n\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function getSetQuarter (input) {\n return input == null ? Math.ceil((this.month() + 1) / 3) : this.month((input - 1) * 3 + this.month() % 3);\n }\n\n // FORMATTING\n\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('Do', function (isStrict, locale) {\n // TODO: Remove \"ordinalParse\" fallback in next major release.\n return isStrict ?\n (locale._dayOfMonthOrdinalParse || locale._ordinalParse) :\n locale._dayOfMonthOrdinalParseLenient;\n });\n\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function getSetDayOfYear (input) {\n var dayOfYear = Math.round((this.clone().startOf('day') - this.clone().startOf('year')) / 864e5) + 1;\n return input == null ? dayOfYear : this.add((input - dayOfYear), 'd');\n }\n\n // FORMATTING\n\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n // MOMENTS\n\n var getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr () {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName () {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate('dates accessor is deprecated. Use date instead.', getSetDayOfMonth);\n proto.months = deprecate('months accessor is deprecated. Use month instead', getSetMonth);\n proto.years = deprecate('years accessor is deprecated. Use year instead', getSetYear);\n proto.zone = deprecate('moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/', getSetZone);\n proto.isDSTShifted = deprecate('isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information', isDaylightSavingTimeShifted);\n\n function createUnix (input) {\n return createLocal(input * 1000);\n }\n\n function createInZone () {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat (string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1 (format, index, field, setter) {\n var locale = getLocale();\n var utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function listMonthsImpl (format, index, field) {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n\n if (index != null) {\n return get$1(format, index, field, 'month');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 12; i++) {\n out[i] = get$1(format, i, field, 'month');\n }\n return out;\n }\n\n // ()\n // (5)\n // (fmt, 5)\n // (fmt)\n // (true)\n // (true, 5)\n // (true, fmt, 5)\n // (true, fmt)\n function listWeekdaysImpl (localeSorted, format, index, field) {\n if (typeof localeSorted === 'boolean') {\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n } else {\n format = localeSorted;\n index = format;\n localeSorted = false;\n\n if (isNumber(format)) {\n index = format;\n format = undefined;\n }\n\n format = format || '';\n }\n\n var locale = getLocale(),\n shift = localeSorted ? locale._week.dow : 0;\n\n if (index != null) {\n return get$1(format, (index + shift) % 7, field, 'day');\n }\n\n var i;\n var out = [];\n for (i = 0; i < 7; i++) {\n out[i] = get$1(format, (i + shift) % 7, field, 'day');\n }\n return out;\n }\n\n function listMonths (format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort (format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin (localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('en', {\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal : function (number) {\n var b = number % 10,\n output = (toInt(number % 100 / 10) === 1) ? 'th' :\n (b === 1) ? 'st' :\n (b === 2) ? 'nd' :\n (b === 3) ? 'rd' : 'th';\n return number + output;\n }\n });\n\n // Side effect imports\n\n hooks.lang = deprecate('moment.lang is deprecated. Use moment.locale instead.', getSetGlobalLocale);\n hooks.langData = deprecate('moment.langData is deprecated. Use moment.localeData instead.', getLocale);\n\n var mathAbs = Math.abs;\n\n function abs () {\n var data = this._data;\n\n this._milliseconds = mathAbs(this._milliseconds);\n this._days = mathAbs(this._days);\n this._months = mathAbs(this._months);\n\n data.milliseconds = mathAbs(data.milliseconds);\n data.seconds = mathAbs(data.seconds);\n data.minutes = mathAbs(data.minutes);\n data.hours = mathAbs(data.hours);\n data.months = mathAbs(data.months);\n data.years = mathAbs(data.years);\n\n return this;\n }\n\n function addSubtract$1 (duration, input, value, direction) {\n var other = createDuration(input, value);\n\n duration._milliseconds += direction * other._milliseconds;\n duration._days += direction * other._days;\n duration._months += direction * other._months;\n\n return duration._bubble();\n }\n\n // supports only 2.0-style add(1, 's') or add(duration)\n function add$1 (input, value) {\n return addSubtract$1(this, input, value, 1);\n }\n\n // supports only 2.0-style subtract(1, 's') or subtract(duration)\n function subtract$1 (input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil (number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function bubble () {\n var milliseconds = this._milliseconds;\n var days = this._days;\n var months = this._months;\n var data = this._data;\n var seconds, minutes, hours, years, monthsFromDays;\n\n // if we have a mix of positive and negative values, bubble down first\n // check: https://github.com/moment/moment/issues/2166\n if (!((milliseconds >= 0 && days >= 0 && months >= 0) ||\n (milliseconds <= 0 && days <= 0 && months <= 0))) {\n milliseconds += absCeil(monthsToDays(months) + days) * 864e5;\n days = 0;\n months = 0;\n }\n\n // The following code bubbles up values, see the tests for\n // examples of what that means.\n data.milliseconds = milliseconds % 1000;\n\n seconds = absFloor(milliseconds / 1000);\n data.seconds = seconds % 60;\n\n minutes = absFloor(seconds / 60);\n data.minutes = minutes % 60;\n\n hours = absFloor(minutes / 60);\n data.hours = hours % 24;\n\n days += absFloor(hours / 24);\n\n // convert days to months\n monthsFromDays = absFloor(daysToMonths(days));\n months += monthsFromDays;\n days -= absCeil(monthsToDays(monthsFromDays));\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n data.days = days;\n data.months = months;\n data.years = years;\n\n return this;\n }\n\n function daysToMonths (days) {\n // 400 years have 146097 days (taking into account leap year rules)\n // 400 years have 12 months === 4800\n return days * 4800 / 146097;\n }\n\n function monthsToDays (months) {\n // the reverse of daysToMonths\n return months * 146097 / 4800;\n }\n\n function as (units) {\n if (!this.isValid()) {\n return NaN;\n }\n var days;\n var months;\n var milliseconds = this._milliseconds;\n\n units = normalizeUnits(units);\n\n if (units === 'month' || units === 'year') {\n days = this._days + milliseconds / 864e5;\n months = this._months + daysToMonths(days);\n return units === 'month' ? months : months / 12;\n } else {\n // handle milliseconds separately because of floating point math errors (issue #1867)\n days = this._days + Math.round(monthsToDays(this._months));\n switch (units) {\n case 'week' : return days / 7 + milliseconds / 6048e5;\n case 'day' : return days + milliseconds / 864e5;\n case 'hour' : return days * 24 + milliseconds / 36e5;\n case 'minute' : return days * 1440 + milliseconds / 6e4;\n case 'second' : return days * 86400 + milliseconds / 1000;\n // Math.floor prevents floating point math errors here\n case 'millisecond': return Math.floor(days * 864e5) + milliseconds;\n default: throw new Error('Unknown unit ' + units);\n }\n }\n }\n\n // TODO: Use this.as('ms')?\n function valueOf$1 () {\n if (!this.isValid()) {\n return NaN;\n }\n return (\n this._milliseconds +\n this._days * 864e5 +\n (this._months % 12) * 2592e6 +\n toInt(this._months / 12) * 31536e6\n );\n }\n\n function makeAs (alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var asMilliseconds = makeAs('ms');\n var asSeconds = makeAs('s');\n var asMinutes = makeAs('m');\n var asHours = makeAs('h');\n var asDays = makeAs('d');\n var asWeeks = makeAs('w');\n var asMonths = makeAs('M');\n var asYears = makeAs('y');\n\n function clone$1 () {\n return createDuration(this);\n }\n\n function get$2 (units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var milliseconds = makeGetter('milliseconds');\n var seconds = makeGetter('seconds');\n var minutes = makeGetter('minutes');\n var hours = makeGetter('hours');\n var days = makeGetter('days');\n var months = makeGetter('months');\n var years = makeGetter('years');\n\n function weeks () {\n return absFloor(this.days() / 7);\n }\n\n var round = Math.round;\n var thresholds = {\n ss: 44, // a few seconds to seconds\n s : 45, // seconds to minute\n m : 45, // minutes to hour\n h : 22, // hours to day\n d : 26, // days to month\n M : 11 // months to year\n };\n\n // helper function for moment.fn.from, moment.fn.fromNow, and moment.duration.fn.humanize\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function relativeTime$1 (posNegDuration, withoutSuffix, locale) {\n var duration = createDuration(posNegDuration).abs();\n var seconds = round(duration.as('s'));\n var minutes = round(duration.as('m'));\n var hours = round(duration.as('h'));\n var days = round(duration.as('d'));\n var months = round(duration.as('M'));\n var years = round(duration.as('y'));\n\n var a = seconds <= thresholds.ss && ['s', seconds] ||\n seconds < thresholds.s && ['ss', seconds] ||\n minutes <= 1 && ['m'] ||\n minutes < thresholds.m && ['mm', minutes] ||\n hours <= 1 && ['h'] ||\n hours < thresholds.h && ['hh', hours] ||\n days <= 1 && ['d'] ||\n days < thresholds.d && ['dd', days] ||\n months <= 1 && ['M'] ||\n months < thresholds.M && ['MM', months] ||\n years <= 1 && ['y'] || ['yy', years];\n\n a[2] = withoutSuffix;\n a[3] = +posNegDuration > 0;\n a[4] = locale;\n return substituteTimeAgo.apply(null, a);\n }\n\n // This function allows you to set the rounding function for relative time strings\n function getSetRelativeTimeRounding (roundingFunction) {\n if (roundingFunction === undefined) {\n return round;\n }\n if (typeof(roundingFunction) === 'function') {\n round = roundingFunction;\n return true;\n }\n return false;\n }\n\n // This function allows you to set a threshold for relative time strings\n function getSetRelativeTimeThreshold (threshold, limit) {\n if (thresholds[threshold] === undefined) {\n return false;\n }\n if (limit === undefined) {\n return thresholds[threshold];\n }\n thresholds[threshold] = limit;\n if (threshold === 's') {\n thresholds.ss = limit - 1;\n }\n return true;\n }\n\n function humanize (withSuffix) {\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var locale = this.localeData();\n var output = relativeTime$1(this, !withSuffix, locale);\n\n if (withSuffix) {\n output = locale.pastFuture(+this, output);\n }\n\n return locale.postformat(output);\n }\n\n var abs$1 = Math.abs;\n\n function sign(x) {\n return ((x > 0) - (x < 0)) || +x;\n }\n\n function toISOString$1() {\n // for ISO strings we do not use the normal bubbling rules:\n // * milliseconds bubble up until they become hours\n // * days do not bubble at all\n // * months bubble up until they become years\n // This is because there is no context-free conversion between hours and days\n // (think of clock changes)\n // and also not between days and months (28-31 days per month)\n if (!this.isValid()) {\n return this.localeData().invalidDate();\n }\n\n var seconds = abs$1(this._milliseconds) / 1000;\n var days = abs$1(this._days);\n var months = abs$1(this._months);\n var minutes, hours, years;\n\n // 3600 seconds -> 60 minutes -> 1 hour\n minutes = absFloor(seconds / 60);\n hours = absFloor(minutes / 60);\n seconds %= 60;\n minutes %= 60;\n\n // 12 months -> 1 year\n years = absFloor(months / 12);\n months %= 12;\n\n\n // inspired by https://github.com/dordille/moment-isoduration/blob/master/moment.isoduration.js\n var Y = years;\n var M = months;\n var D = days;\n var h = hours;\n var m = minutes;\n var s = seconds ? seconds.toFixed(3).replace(/\\.?0+$/, '') : '';\n var total = this.asSeconds();\n\n if (!total) {\n // this is the same as C#'s (Noda) and python (isodate)...\n // but not other JS (goog.date)\n return 'P0D';\n }\n\n var totalSign = total < 0 ? '-' : '';\n var ymSign = sign(this._months) !== sign(total) ? '-' : '';\n var daysSign = sign(this._days) !== sign(total) ? '-' : '';\n var hmsSign = sign(this._milliseconds) !== sign(total) ? '-' : '';\n\n return totalSign + 'P' +\n (Y ? ymSign + Y + 'Y' : '') +\n (M ? ymSign + M + 'M' : '') +\n (D ? daysSign + D + 'D' : '') +\n ((h || m || s) ? 'T' : '') +\n (h ? hmsSign + h + 'H' : '') +\n (m ? hmsSign + m + 'M' : '') +\n (s ? hmsSign + s + 'S' : '');\n }\n\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate('toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)', toISOString$1);\n proto$2.lang = lang;\n\n // Side effect imports\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input, 10) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n // Side effect imports\n\n\n hooks.version = '2.22.2';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // <input type=\"datetime-local\" />\n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // <input type=\"datetime-local\" step=\"1\" />\n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // <input type=\"datetime-local\" step=\"0.001\" />\n DATE: 'YYYY-MM-DD', // <input type=\"date\" />\n TIME: 'HH:mm', // <input type=\"time\" />\n TIME_SECONDS: 'HH:mm:ss', // <input type=\"time\" step=\"1\" />\n TIME_MS: 'HH:mm:ss.SSS', // <input type=\"time\" step=\"0.001\" />\n WEEK: 'YYYY-[W]WW', // <input type=\"week\" />\n MONTH: 'YYYY-MM' // <input type=\"month\" />\n };\n\n return hooks;\n\n})));","/*\n * Title: Typewriter JS\n * Description: A native javascript plugin that can be used to create an elegent automatic typewriter animation effect on websites.\n * Author: Tameem Safi\n * Website: https://safi.me.uk\n * Version: 1.0.0\n */\n\n(function() {\n\n\t\"use strict\";\n\n\t// http://paulirish.com/2011/requestanimationframe-for-smart-animating/\n\t// http://my.opera.com/emoller/blog/2011/12/20/requestanimationframe-for-smart-er-animating\n\t// requestAnimationFrame polyfill by Erik Möller. fixes from Paul Irish and Tino Zijdel\n\t// MIT license\n\t(function() {\n\t var lastTime = 0;\n\t var vendors = ['ms', 'moz', 'webkit', 'o'];\n\t for(var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {\n\t window.requestAnimationFrame = window[vendors[x]+'RequestAnimationFrame'];\n\t window.cancelAnimationFrame = window[vendors[x]+'CancelAnimationFrame']\n\t || window[vendors[x]+'CancelRequestAnimationFrame'];\n\t }\n\n\t if (!window.requestAnimationFrame)\n\t window.requestAnimationFrame = function(callback, element) {\n\t var currTime = new Date().getTime();\n\t var timeToCall = Math.max(0, 16 - (currTime - lastTime));\n\t var id = window.setTimeout(function() { callback(currTime + timeToCall); },\n\t timeToCall);\n\t lastTime = currTime + timeToCall;\n\t return id;\n\t };\n\n\t if (!window.cancelAnimationFrame)\n\t window.cancelAnimationFrame = function(id) {\n\t clearTimeout(id);\n\t };\n\t}());\n\n\twindow.Typewriter = function Typewriter(element, options) {\n\t\tthis._settings = {\n\t\t\tcursorAnimationPaused: false,\n\t\t\topacityIncreasing: false,\n\t\t\tcurrentOpacity: 1,\n\t\t\tdelayedQue: [],\n\t\t\tdelayItemsCount: 0,\n\t\t\teventQue: [],\n\t\t\tcalledEvents: [],\n\t\t\teventRunning: false,\n\t\t\ttimeout: false,\n\t\t\tdelayExecution: false,\n\t\t\tfps: (60/1000),\n\t\t\ttypingFrameCount: 0,\n\t\t\tstringToTypeHTMLArray: [],\n\t\t\tcurrentTypedCharacters: [],\n\t\t\ttyping: false,\n\t\t\tusedIDs: [],\n\t\t\tcharAmountToDelete: false,\n\t\t\tuserOptions: {},\n\t\t\teventLoopRerun: 0\n\t\t};\n\n\t\tif(!element) {\n\t\t\treturn console.error('Please choose an DOM element so that type writer can display itself.');\n\t\t}\n\n\t\t// if(!options.strings && !(options.strings instanceof Array || typeof options.strings === 'string')) {\n\t\t// \treturn console.error('Please enter an array of strings for the typewriter animation to work.');\n\t\t// }\n\n\t\tif(typeof options !== 'object') {\n\t\t\treturn console.error('Typewriter only accepts the options as an object.');\n\t\t}\n\n\t\tthis._settings.userOptions = options;\n\n\t\tthis.default_options = {\n\t\t\tstrings: false,\n\t\t\tcursorClassName: 'typewriter-cursor',\n\t\t\tcursor: '|',\n\t\t\tanimateCursor: true,\n\t\t\tblinkSpeed: 50,\n\t\t\ttypingSpeed: 'natural',\n\t\t\tdeleteSpeed: 'natural',\n\t\t\tcharSpanClassName: 'typewriter-char',\n\t\t\twrapperClassName: 'typewriter-wrapper',\n\t\t\tloop: false,\n\t\t\tautoStart: false,\n\t\t\tdevMode: false\n\t\t};\n\n\t\tthis.options = this._setupOptions(options);\n\n\t\tthis.el = element;\n\n\t\tthis._setupTypwriterWrapper();\n\n\t\tthis._startCursorAnimation();\n\n\t\tif(this.options.autoStart === true && this.options.strings) {\n\t\t\tthis.typeOutAllStrings();\n\t\t}\n\n\t};\n\n\tvar TypewriterPrototype = window.Typewriter.prototype;\n\n\tTypewriterPrototype.stop = function() {\n\t\tthis._addToEventQue(this._stopEventLoop)\n\t\treturn this;\n\t};\n\n\tTypewriterPrototype.start = function() {\n\t\tthis._startEventLoop();\n\t\treturn this;\n\t};\n\n\tTypewriterPrototype.rerun = function() {\n\t\tthis._addToEventQue(this._rerunCalledEvents);\n\t\treturn this;\n\t};\n\n\tTypewriterPrototype.typeString = function(string) {\n\t\tif(!string || typeof string != 'string') {\n\t\t\treturn console.error('Please enter a string as the paramater.');\n\t\t}\n\n\t\tvar string_chars = this._getCharacters(string);\n\n\t\tthis._addToEventQue([this._typeCharacters, [string_chars]]);\n\t\treturn this;\n\t};\n\n\tTypewriterPrototype.deleteAll = function() {\n\t\tthis._addToEventQue([this._deleteChars, ['all']]);\n\t\treturn this;\n\t};\n\n\tTypewriterPrototype.deleteChars = function(amount) {\n\t\tthis._addToEventQue([this._deleteChars, [amount]]);\n\t\treturn this;\n\t};\n\n\tTypewriterPrototype.pauseFor = function(ms) {\n\t\tthis._addToEventQue([this._pauseFor, [ms]]);\n\t\treturn this;\n\t};\n\n\tTypewriterPrototype.typeOutAllStrings = function() {\n\t\tvar characters_array = this._getStringsAsCharsArray();\n\n\t\tif(characters_array.length === 1) {\n\t\t\tthis._typeCharacters(characters_array[0]);\n\t\t} else {\n\t\t\tfor(var i = 0, length = characters_array.length; i < length; i++) {\n\t\t\t\tthis._addToEventQue([this._typeCharacters, [characters_array[i]]]);\n\t\t\t\tthis.pauseFor(this._randomInteger(1500, 2500));\n\t\t\t\tthis.deleteAll();\n\t\t\t\tthis.pauseFor(this._randomInteger(1500, 2500));\n\t\t\t}\n\t\t}\n\n\t\treturn this;\n\n\t};\n\n\tTypewriterPrototype.changeSettings = function(new_settings) {\n\t\tif(!new_settings && typeof new_settings !== 'object') {\n\t\t\treturn console.error('Typewriter will only accept an object as the settings.');\n\t\t}\n\n\t\tthis._addToEventQue([this._changeSettings, [JSON.stringify(new_settings)]]);\n\n\t\treturn this;\n\n\t};\n\n\tTypewriterPrototype.changeBlinkSpeed = function(new_speed) {\n\t\tif(!new_speed && typeof new_speed !== 'number') {\n\t\t\treturn console.error('Please enter a number for the new blink speed.');\n\t\t}\n\n\t\tthis.changeSettings({\n\t\t\tblinkSpeed: new_speed\n\t\t});\n\n\t\treturn this;\n\t};\n\n\tTypewriterPrototype.changeTypingSpeed = function(new_speed) {\n\t\tif(!new_speed && typeof new_speed !== 'number') {\n\t\t\treturn console.error('Please enter a number for the new typing speed.');\n\t\t}\n\n\t\tvar new_settings = {\n\t\t\ttypingSpeed: new_speed\n\t\t};\n\n\t\tthis.changeSettings({\n\t\t\ttypingSpeed: new_speed\n\t\t});\n\n\t\treturn this;\n\t};\n\n\tTypewriterPrototype.changeDeleteSpeed = function(new_speed) {\n\t\tif(!new_speed && typeof new_speed !== 'number') {\n\t\t\treturn console.error('Please enter a number for the new delete speed.');\n\t\t}\n\n\t\tthis.changeSettings({\n\t\t\tchangeDeleteSpeed: new_speed\n\t\t});\n\n\t\treturn this;\n\t};\n\n\tTypewriterPrototype._rerunCalledEvents = function() {\n\t\tif(this._settings.currentTypedCharacters.length > 0) {\n\t\t\tthis.deleteAll();\n\t\t\tthis._resetEventLoop('rerunCalledEvents');\n\t\t} else {\n\t\t\tthis._settings.eventQue = this._settings.calledEvents;\n\t\t\tthis._settings.calledEvents = [];\n\t\t\tthis.options = this._setupOptions(this._settings.userOptions);\n\t\t\tthis._settings.usedIDs = [];\n\t\t\tthis.charAmountToDelete = false;\n\t\t\tthis._startEventLoop();\n\t\t}\n\t};\n\n\tTypewriterPrototype._deleteChars = function(amount) {\n\n\n\t\tif(amount) {\n\t\t\tthis._settings.charAmountToDelete = amount;\n\t\t}\n\t\tthis._deletingCharIdsAnimation = window.requestAnimationFrame(this._deletingCharAnimationFrame.bind(this));\n\t\treturn this;\n\t};\n\n\tTypewriterPrototype._pauseFor = function(ms) {\n\t\tvar self = this;\n\t\tself._settings.eventRunning = true;\n\t\tsetTimeout(function() {\n\t\t\tself._resetEventLoop('pauseFor');\n\t\t}, ms);\n\t};\n\n\tTypewriterPrototype._changeSettings = function(new_settings) {\n\t\tthis.options = this._setupOptions(JSON.parse(new_settings[0]));\n\t\tthis._resetEventLoop('changeSettings');\n\n\t\tif(this.options.devMode) {\n\t\t\tconsole.log('New settings', this.options);\n\t\t}\n\n\t};\n\n\tTypewriterPrototype._deletingCharAnimationFrame = function() {\n\t\tvar self = this;\n\t\tvar delete_speed = this.options.deleteSpeed;\n\t\tvar typewriter_wrapper_class_name = self.options.wrapperClassName;\n\t\tvar current_typed_char_ids = self._settings.currentTypedCharacters;\n\t\tvar char_amount_to_delete = self._settings.charAmountToDelete;\n\n\t\tif(!self._settings.charAmountToDelete || self._settings.charAmountToDelete === 0 || current_typed_char_ids === 0) {\n\t\t\tself._resetEventLoop('deletingCharAnimationFrame');\n\t\t\treturn true;\n\t\t}\n\n\t\tif(delete_speed == 'natural') {\n\t\t\tdelete_speed = self._randomInteger(50, 150);\n\t\t}\n\n\t\tif(char_amount_to_delete == 'all') {\n\t\t\tchar_amount_to_delete = current_typed_char_ids.length;\n\t\t\tself._settings.charAmountToDelete = char_amount_to_delete;\n\t\t}\n\n\t\tsetTimeout(function() {\n\t\t\tif(self._settings.charAmountToDelete) {\n\t\t\t\tvar last_typed_char_index = current_typed_char_ids.length - 1;\n\t\t\t\tvar get_last_typed_char = current_typed_char_ids[last_typed_char_index];\n\n\t\t\t\tself._settings.currentTypedCharacters.splice(last_typed_char_index, 1);\n\n\t\t\t\tvar char_to_delete_el = document.getElementById(get_last_typed_char);\n\n\t\t\t\tif(char_to_delete_el) {\n\t\t\t\t\tvar typewriter_wrapper_el = self.el.querySelector('.' + typewriter_wrapper_class_name);\n\t\t\t\t\ttypewriter_wrapper_el.removeChild(char_to_delete_el);\n\t\t\t\t\tself._settings.charAmountToDelete = char_amount_to_delete - 1;\n\n\t\t\t\t\tif(self.options.devMode) {\n\t\t\t\t\t\tconsole.log('Deleted char with ID', get_last_typed_char);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tself._deletingCharIdsAnimation = window.requestAnimationFrame(self._deletingCharAnimationFrame.bind(self));\n\n\t\t}, delete_speed);\n\t};\n\n\tTypewriterPrototype._setupOptions = function(new_options) {\n\t var merged_options = {};\n\n\t for (var attrname in this.default_options) {\n\t \tmerged_options[attrname] = this.default_options[attrname];\n\t }\n\n\t if(this._settings.userOptions) {\n\t \tfor (var attrname in this._settings.userOptions) {\n\t\t \tmerged_options[attrname] = this._settings.userOptions[attrname];\n\t\t }\n\t }\n\n\t for (var attrname in new_options) {\n\t \tmerged_options[attrname] = new_options[attrname];\n\t }\n\n\t return merged_options;\n\t}\n\n\tTypewriterPrototype._addToEventQue = function(event) {\n\t\tthis._settings.eventQue.push(event);\n\t\tif(this._settings.eventQue.length > 0 && !this._settings.eventRunning && this.options.autoStart) {\n\t\t\tthis._startEventLoop();\n\t\t}\n\t};\n\n\tTypewriterPrototype._startEventLoop = function() {\n\t\tif(this.options.devMode) {\n\t\t\tconsole.log('Event loop started.');\n\t\t}\n\n\t\tif(!this._settings.eventRunning) {\n\n\t\t\tif(this._settings.eventQue.length > 0) {\n\t\t\t\tthis.eventLoopRerun = 0;\n\t\t\t\tvar first_event = this._settings.eventQue[0];\n\t\t\t\tif(typeof first_event == 'function') {\n\t\t\t\t\tthis._settings.eventRunning = true;\n\t\t\t\t\tthis._settings.calledEvents.push(first_event);\n\t\t\t\t\tthis._settings.eventQue.splice(0, 1);\n\t\t\t\t\tfirst_event.call(this);\n\t\t\t\t\tif(this.options.devMode) {\n\t\t\t\t\t\tconsole.log('Event started.');\n\t\t\t\t\t}\n\t\t\t\t} else if(first_event instanceof Array) {\n\t\t\t\t\tif(typeof first_event[0] == 'function' && first_event[1] instanceof Array) {\n\t\t\t\t\t\tthis._settings.eventRunning = true;\n\t\t\t\t\t\tthis._settings.calledEvents.push(first_event);\n\t\t\t\t\t\tthis._settings.eventQue.splice(0, 1);\n\t\t\t\t\t\tfirst_event[0].call(this, first_event[1]);\n\t\t\t\t\t\tif(this.options.devMode) {\n\t\t\t\t\t\t\tconsole.log('Event started.');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._eventQueAnimation = window.requestAnimationFrame(this._startEventLoop.bind(this));\n\t\t}\n\n\t\tif(!this._settings.eventRunning && this._settings.eventQue.length <= 0) {\n\t\t\tvar self = this;\n\t\t\tself._stopEventLoop();\n\t\t\tsetTimeout(function() {\n\t\t\t\tif(self.options.loop) {\n\t\t\t\t\tself.eventLoopRerun++;\n\t\t\t\t\tif(self.options.devMode) {\n\t\t\t\t\t\tconsole.log('Before Loop State', self._settings);\n\t\t\t\t\t}\n\t\t\t\t\tif(self.eventLoopRerun > 4) {\n\t\t\t\t\t\tconsole.error('Maximum amount of loop retries reached.');\n\t\t\t\t\t\tself._stopEventLoop();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(self.options.devMode) {\n\t\t\t\t\t\t\tconsole.log('Looping events.');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tself._rerunCalledEvents();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, 1000);\n\t\t\treturn;\n\t\t}\n\n\t};\n\n\tTypewriterPrototype._resetEventLoop = function(name) {\n\t\tvar event_name = name || 'Event';\n\t\tthis._settings.eventRunning = false;\n\t\tthis._startEventLoop();\n\t\tif(this.options.devMode) {\n\t\t\tconsole.log(event_name, 'Finished');\n\t\t}\n\t};\n\n\tTypewriterPrototype._stopEventLoop = function() {\n\t\twindow.cancelAnimationFrame(this._eventQueAnimation);\n\t\tif(this.options.devMode) {\n\t\t\tconsole.log('Event loop stopped.');\n\t\t}\n\t};\n\n\tTypewriterPrototype._setupTypwriterWrapper = function() {\n\t\tvar typewriter_wrapper_class_name = this.options.wrapperClassName;\n\t\tvar typewriter_wrapper = document.createElement('span');\n\t\ttypewriter_wrapper.className = typewriter_wrapper_class_name;\n\t\tthis.el.innerHTML = '';\n\t\tthis.el.appendChild(typewriter_wrapper);\n\t};\n\n\tTypewriterPrototype._typeCharacters = function(characters_array) {\n\t\tthis._settings.stringToTypeHTMLArray = this._convertCharsToHTML(characters_array);\n\t\tthis._typingAnimation = window.requestAnimationFrame(this._typingAnimationFrame.bind(this, characters_array.length));\n\t\treturn this;\n\t};\n\n\tTypewriterPrototype._typingAnimationFrame = function(total_items) {\n\t\tvar self = this;\n\t\tvar typing_speed = this.options.typingSpeed;\n\t\tvar typewriter_wrapper_class_name = self.options.wrapperClassName;\n\n\t\tif(self._settings.stringToTypeHTMLArray.length == 0) {\n\t\t\twindow.cancelAnimationFrame(self._typingAnimation);\n\t\t\tthis._resetEventLoop('typingAnimationFrame');\n\t\t\treturn true;\n\t\t}\n\n\t\tif(typing_speed == 'natural') {\n\t\t\ttyping_speed = this._randomInteger(50, 150);\n\t\t}\n\n\t\tsetTimeout(function() {\n\t\t\tvar el_inner_html = self.el.innerHTML;\n\t\t\tvar item_to_type = self._settings.stringToTypeHTMLArray[0];\n\t\t\tself.el.querySelector('.' + typewriter_wrapper_class_name).appendChild(item_to_type.el);\n\t\t\tself._settings.currentTypedCharacters.push(item_to_type.id);\n\t\t\tself._settings.stringToTypeHTMLArray.splice(0, 1);\n\t\t\tself._typingAnimation = window.requestAnimationFrame(self._typingAnimationFrame.bind(self, total_items));\n\t\t\tif(self.options.devMode) {\n\t\t\t\tconsole.log('Typed', item_to_type);\n\t\t\t}\n\t\t}, typing_speed);\n\t};\n\n\tTypewriterPrototype._convertCharsToHTML = function(chars) {\n\t\tvar chars_html_wrap_array = [];\n\t\tvar char_class_name = this.options.charSpanClassName;\n\t\tvar chars_array = chars[0];\n\n\t\tfor(var i = 0, length = chars_array.length; i < length; i++) {\n\t\t\tvar char_element = document.createElement('span');\n\t\t\tvar char_id = this._generateUniqueID();\n\t\t\tchar_element.id = char_id;\n\t\t\tchar_element.className = char_class_name + ' typewriter-item-' + i;\n\t\t\tchar_element.innerHTML = chars_array[i];\n\t\t\tchars_html_wrap_array.push({\n\t\t\t\tid: char_id,\n\t\t\t\tel: char_element\n\t\t\t});\n\t\t}\n\n\t\treturn chars_html_wrap_array;\n\t};\n\n\tTypewriterPrototype._getCharacters = function(string) {\n\t\tif(typeof string !== 'string') {\n\t\t\treturn false;\n\t\t}\n\t\treturn string.split(\"\");\n\t};\n\n\tTypewriterPrototype._getStringsAsCharsArray = function() {\n\t\tvar strings_array_check = this.options.strings instanceof Array;\n\t\tvar strings_string_check = typeof this.options.strings === 'string';\n\t\tif(!strings_array_check) {\n\t\t\tif(!strings_string_check) {\n\t\t\t\treturn console.error('Typewriter only accepts strings or an array of strings as the input.');\n\t\t\t}\n\t\t\treturn [this.options.strings.split(\"\")];\n\t\t}\n\n\t\tvar strings_chars_array = [];\n\n\t\tfor (var i = 0, length = this.options.strings.length; i < length; i++) {\n\t\t\tvar string_chars = this._getCharacters(this.options.strings[i]);\n\t\t\tif(!string_chars) {\n\t\t\t\tconsole.error('Please enter only strings.');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tstrings_chars_array.push(string_chars);\n \t}\n\n \treturn strings_chars_array;\n\t};\n\n\tTypewriterPrototype._cursorAnimationFrame = function() {\n\t\tif(!this._settings.cursorAnimationPaused) {\n\t\t\tvar blink_speed = this.options.blinkSpeed;\n\t\t\tvar opacity_amount = (1/1000) * blink_speed;\n\n\t\t\tvar cursor_el = this.el.querySelector('.typewriter-cursor');\n\n\t\t\tif(this._settings.opacityIncreasing == true) {\n\t\t\t\tif(this._settings.currentOpacity >= 1) {\n\t\t\t\t\tthis._settings.opacityIncreasing = false;\n\t\t\t\t\tthis._settings.currentOpacity = 1;\n\t\t\t\t}\n\n\t\t\t\tthis._settings.currentOpacity += opacity_amount;\n\t\t\t}\n\n\t\t\tif(this._settings.opacityIncreasing == false) {\n\t\t\t\tif(this._settings.currentOpacity <= 0) {\n\t\t\t\t\tthis._settings.opacityIncreasing = true;\n\t\t\t\t\tthis._settings.currentOpacity = 0;\n\t\t\t\t}\n\n\t\t\t\tthis._settings.currentOpacity -= opacity_amount;\n\t\t\t}\n\n\t\t\tcursor_el.style.opacity = this._settings.currentOpacity;\n\t\t\tthis._cursorAnimation = window.requestAnimationFrame(this._cursorAnimationFrame.bind(this));\n\t\t}\n\t};\n\n\tTypewriterPrototype.appendText = function(text){\n\t this._addToEventQue([this._appendText, [text]])\n return this\n }\n\n\tTypewriterPrototype._appendText = function(text){\n var char_class_name = this.options.charSpanClassName;\n var char_element = document.createElement('span');\n var char_id = this._generateUniqueID();\n char_element.id = char_id;\n char_element.className = char_class_name + ' dom-appended'\n char_element.innerHTML = text\n var items = []\n items.push({\n id: char_id,\n el: char_element\n });\n\n this._settings.stringToTypeHTMLArray = items\n\n window.requestAnimationFrame(this._typingAnimationFrame.bind(this, 1));\n\n }\n\n\tTypewriterPrototype._startCursorAnimation = function() {\n\t\tvar cursor = this.options.cursor;\n\t\tvar cursor_class_name = this.options.cursorClassName;\n\n\t\tvar cursor_element = document.createElement('span');\n\t\tcursor_element.className = cursor_class_name;\n\t\tcursor_element.innerHTML = cursor;\n\n\t\tthis.el.appendChild(cursor_element);\n\t\tif(this.options.animateCursor) {\n\t\t\tthis._cursorAnimation = window.requestAnimationFrame(this._cursorAnimationFrame.bind(this));\n\t\t}\n\t};\n\n\tTypewriterPrototype._pauseCursorAnimation = function() {\n\t\tif(!this._settings.cursorAnimationPaused) {\n\t\t\twindow.cancelAnimationFrame(this._cursorAnimation);\n\t\t\tthis._settings.cursorAnimationPaused = true;\n\t\t}\n\t};\n\n\tTypewriterPrototype._restartCursorAnimation = function() {\n\t\tif(!this._settings.cursorAnimationPaused) {\n\t\t\treturn console.error('Cursor animation is already running.')\n\t\t}\n\n\t\tthis._settings.cursorAnimationPaused = false;\n\t\tthis._cursorAnimation = window.requestAnimationFrame(this._cursorAnimationFrame.bind(this));\n\t};\n\n\t/* Utils */\n\tTypewriterPrototype._randomInteger = function(min, max) {\n\t\treturn Math.floor(Math.random() * (max - min + 1)) + min;\n\t};\n\n\tTypewriterPrototype._randomID = function() {\n\t\tvar text = \"\";\n \tvar possible = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";\n\n \tfor( var i=0; i < this._randomInteger(5, 15); i++ ) {\n \t\ttext += possible.charAt(Math.floor(Math.random() * possible.length));\n\t\t}\n \treturn text;\n\t};\n\n\tTypewriterPrototype._generateUniqueID = function() {\n\t\tvar temp_id = this._randomID();\n\t\tif(this._settings.usedIDs.indexOf(temp_id) == -1) {\n\t\t\tthis._settings.usedIDs.push(temp_id);\n\t\t\treturn temp_id;\n\t\t}\n\t\treturn this._generateUniqueID.call(this);\n\t};\n\n\n})();","/*! UIkit 3.0.0-rc.5 | http://www.getuikit.com | (c) 2014 - 2017 YOOtheme | MIT License */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define('uikit', factory) :\n (global.UIkit = factory());\n}(this, (function () { 'use strict';\n\n function bind(fn, context) {\n return function (a) {\n var l = arguments.length;\n return l ? l > 1 ? fn.apply(context, arguments) : fn.call(context, a) : fn.call(context);\n };\n }\n\n var ref = Object.prototype;\n var hasOwnProperty = ref.hasOwnProperty;\n\n function hasOwn(obj, key) {\n return hasOwnProperty.call(obj, key);\n }\n\n var hyphenateCache = {};\n var hyphenateRe = /([a-z\\d])([A-Z])/g;\n\n function hyphenate(str) {\n\n if (!(str in hyphenateCache)) {\n hyphenateCache[str] = str\n .replace(hyphenateRe, '$1-$2')\n .toLowerCase();\n }\n\n return hyphenateCache[str];\n }\n\n var camelizeRe = /-(\\w)/g;\n\n function camelize(str) {\n return str.replace(camelizeRe, toUpper);\n }\n\n function toUpper(_, c) {\n return c ? c.toUpperCase() : '';\n }\n\n function ucfirst(str) {\n return str.length ? toUpper(null, str.charAt(0)) + str.slice(1) : '';\n }\n\n var strPrototype = String.prototype;\n var startsWithFn = strPrototype.startsWith || function (search) { return this.lastIndexOf(search, 0) === 0; };\n\n function startsWith(str, search) {\n return startsWithFn.call(str, search);\n }\n\n var endsWithFn = strPrototype.endsWith || function (search) { return this.substr(-search.length) === search; };\n\n function endsWith(str, search) {\n return endsWithFn.call(str, search);\n }\n\n var includesFn = function (search) { return ~this.indexOf(search); };\n var includesStr = strPrototype.includes || includesFn;\n var includesArray = Array.prototype.includes || includesFn;\n\n function includes(obj, search) {\n return obj && (isString(obj) ? includesStr : includesArray).call(obj, search);\n }\n\n var isArray = Array.isArray;\n\n function isFunction(obj) {\n return typeof obj === 'function';\n }\n\n function isObject(obj) {\n return obj !== null && typeof obj === 'object';\n }\n\n function isPlainObject(obj) {\n return isObject(obj) && Object.getPrototypeOf(obj) === Object.prototype;\n }\n\n function isWindow(obj) {\n return isObject(obj) && obj === obj.window;\n }\n\n function isDocument(obj) {\n return isObject(obj) && obj.nodeType === 9;\n }\n\n function isJQuery(obj) {\n return isObject(obj) && !!obj.jquery;\n }\n\n function isNode(element) {\n return element instanceof Node || isObject(element) && element.nodeType === 1;\n }\n\n function isNodeCollection(element) {\n return element instanceof NodeList || element instanceof HTMLCollection;\n }\n\n function isBoolean(value) {\n return typeof value === 'boolean';\n }\n\n function isString(value) {\n return typeof value === 'string';\n }\n\n function isNumber(value) {\n return typeof value === 'number';\n }\n\n function isNumeric(value) {\n return isNumber(value) || isString(value) && !isNaN(value - parseFloat(value));\n }\n\n function isUndefined(value) {\n return value === void 0;\n }\n\n function toBoolean(value) {\n return isBoolean(value)\n ? value\n : value === 'true' || value === '1' || value === ''\n ? true\n : value === 'false' || value === '0'\n ? false\n : value;\n }\n\n function toNumber(value) {\n var number = Number(value);\n return !isNaN(number) ? number : false;\n }\n\n function toFloat(value) {\n return parseFloat(value) || 0;\n }\n\n function toNode(element) {\n return isNode(element) || isWindow(element) || isDocument(element)\n ? element\n : isNodeCollection(element) || isJQuery(element)\n ? element[0]\n : isArray(element)\n ? toNode(element[0])\n : null;\n }\n\n var arrayProto = Array.prototype;\n function toNodes(element) {\n return isNode(element)\n ? [element]\n : isNodeCollection(element)\n ? arrayProto.slice.call(element)\n : isArray(element)\n ? element.map(toNode).filter(Boolean)\n : isJQuery(element)\n ? element.toArray()\n : [];\n }\n\n function toList(value) {\n return isArray(value)\n ? value\n : isString(value)\n ? value.split(/,(?![^(]*\\))/).map(function (value) { return isNumeric(value)\n ? toNumber(value)\n : toBoolean(value.trim()); })\n : [value];\n }\n\n function toMs(time) {\n return !time\n ? 0\n : endsWith(time, 'ms')\n ? toFloat(time)\n : toFloat(time) * 1000;\n }\n\n function swap(value, a, b) {\n return value.replace(new RegExp((a + \"|\" + b), 'mg'), function (match) {\n return match === a ? b : a;\n });\n }\n\n var assign = Object.assign || function (target) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n target = Object(target);\n for (var i = 0; i < args.length; i++) {\n var source = args[i];\n if (source !== null) {\n for (var key in source) {\n if (hasOwn(source, key)) {\n target[key] = source[key];\n }\n }\n }\n }\n return target;\n };\n\n function each(obj, cb) {\n for (var key in obj) {\n cb.call(obj[key], obj[key], key);\n }\n }\n\n function sortBy(collection, prop) {\n return collection.sort(function (a, b) { return a[prop] > b[prop]\n ? 1\n : b[prop] > a[prop]\n ? -1\n : 0; }\n );\n }\n\n function clamp(number, min, max) {\n if ( min === void 0 ) min = 0;\n if ( max === void 0 ) max = 1;\n\n return Math.min(Math.max(number, min), max);\n }\n\n function noop() {}\n\n function intersectRect(r1, r2) {\n return r1.left <= r2.right &&\n r2.left <= r1.right &&\n r1.top <= r2.bottom &&\n r2.top <= r1.bottom;\n }\n\n function pointInRect(point, rect) {\n return intersectRect({top: point.y, bottom: point.y, left: point.x, right: point.x}, rect);\n }\n\n var Dimensions = {\n\n ratio: function(dimensions, prop, value) {\n var obj;\n\n\n var aProp = prop === 'width' ? 'height' : 'width';\n\n return ( obj = {}, obj[aProp] = Math.round(value * dimensions[aProp] / dimensions[prop]), obj[prop] = value, obj );\n },\n\n contain: function(dimensions, maxDimensions) {\n var this$1 = this;\n\n dimensions = assign({}, dimensions);\n\n each(dimensions, function (_, prop) { return dimensions = dimensions[prop] > maxDimensions[prop]\n ? this$1.ratio(dimensions, prop, maxDimensions[prop])\n : dimensions; }\n );\n\n return dimensions;\n },\n\n cover: function(dimensions, maxDimensions) {\n var this$1 = this;\n\n dimensions = this.contain(dimensions, maxDimensions);\n\n each(dimensions, function (_, prop) { return dimensions = dimensions[prop] < maxDimensions[prop]\n ? this$1.ratio(dimensions, prop, maxDimensions[prop])\n : dimensions; }\n );\n\n return dimensions;\n }\n\n };\n\n function attr(element, name, value) {\n\n if (isObject(name)) {\n for (var key in name) {\n attr(element, key, name[key]);\n }\n return;\n }\n\n if (isUndefined(value)) {\n element = toNode(element);\n return element && element.getAttribute(name);\n } else {\n toNodes(element).forEach(function (element) {\n\n if (isFunction(value)) {\n value = value.call(element, attr(element, name));\n }\n\n if (value === null) {\n removeAttr(element, name);\n } else {\n element.setAttribute(name, value);\n }\n });\n }\n\n }\n\n function hasAttr(element, name) {\n return toNodes(element).some(function (element) { return element.hasAttribute(name); });\n }\n\n function removeAttr(element, name) {\n element = toNodes(element);\n name.split(' ').forEach(function (name) { return element.forEach(function (element) { return element.removeAttribute(name); }\n ); }\n );\n }\n\n function filterAttr(element, attribute, pattern, replacement) {\n attr(element, attribute, function (value) { return value ? value.replace(pattern, replacement) : value; });\n }\n\n function data(element, attribute) {\n for (var i = 0, attrs = [attribute, (\"data-\" + attribute)]; i < attrs.length; i++) {\n if (hasAttr(element, attrs[i])) {\n return attr(element, attrs[i]);\n }\n }\n }\n\n function query(selector, context) {\n return toNode(selector) || find(selector, isContextSelector(selector) ? context : document);\n }\n\n function queryAll(selector, context) {\n var nodes = toNodes(selector);\n return nodes.length && nodes || findAll(selector, isContextSelector(selector) ? context : document);\n }\n\n function find(selector, context) {\n return toNode(_query(selector, context, 'querySelector'));\n }\n\n function findAll(selector, context) {\n return toNodes(_query(selector, context, 'querySelectorAll'));\n }\n\n function _query(selector, context, queryFn) {\n if ( context === void 0 ) context = document;\n\n\n if (!selector || !isString(selector)) {\n return null;\n }\n\n selector = selector.replace(contextSanitizeRe, '$1 *');\n\n var removes;\n\n if (isContextSelector(selector)) {\n\n removes = [];\n\n selector = selector.split(',').map(function (selector, i) {\n\n var ctx = context;\n\n selector = selector.trim();\n\n if (selector[0] === '!') {\n\n var selectors = selector.substr(1).trim().split(' ');\n ctx = closest(context.parentNode, selectors[0]);\n selector = selectors.slice(1).join(' ').trim();\n\n }\n\n if (selector[0] === '-') {\n\n var selectors$1 = selector.substr(1).trim().split(' ');\n var prev = (ctx || context).previousElementSibling;\n ctx = matches(prev, selector.substr(1)) ? prev : null;\n selector = selectors$1.slice(1).join(' ');\n\n }\n\n if (!ctx) {\n return null;\n }\n\n if (!ctx.id) {\n ctx.id = \"uk-\" + (Date.now()) + i;\n removes.push(function () { return removeAttr(ctx, 'id'); });\n }\n\n return (\"#\" + (escape(ctx.id)) + \" \" + selector);\n\n }).filter(Boolean).join(',');\n\n context = document;\n\n }\n\n try {\n\n return context[queryFn](selector);\n\n } catch (e) {\n\n return null;\n\n } finally {\n\n removes && removes.forEach(function (remove) { return remove(); });\n\n }\n\n }\n\n var contextSelectorRe = /(^|,)\\s*[!>+~-]/;\n var contextSanitizeRe = /([!>+~-])(?=\\s+[!>+~-]|\\s*$)/g;\n\n function isContextSelector(selector) {\n return isString(selector) && selector.match(contextSelectorRe);\n }\n\n var elProto = Element.prototype;\n var matchesFn = elProto.matches || elProto.webkitMatchesSelector || elProto.msMatchesSelector;\n\n function matches(element, selector) {\n return toNodes(element).some(function (element) { return matchesFn.call(element, selector); });\n }\n\n var closestFn = elProto.closest || function (selector) {\n var ancestor = this;\n\n do {\n\n if (matches(ancestor, selector)) {\n return ancestor;\n }\n\n ancestor = ancestor.parentNode;\n\n } while (ancestor && ancestor.nodeType === 1);\n };\n\n function closest(element, selector) {\n\n if (startsWith(selector, '>')) {\n selector = selector.slice(1);\n }\n\n return isNode(element)\n ? element.parentNode && closestFn.call(element, selector)\n : toNodes(element).map(function (element) { return element.parentNode && closestFn.call(element, selector); }).filter(Boolean);\n }\n\n function parents(element, selector) {\n var elements = [];\n var parent = toNode(element).parentNode;\n\n while (parent && parent.nodeType === 1) {\n\n if (matches(parent, selector)) {\n elements.push(parent);\n }\n\n parent = parent.parentNode;\n }\n\n return elements;\n }\n\n var escapeFn = window.CSS && CSS.escape || function (css) { return css.replace(/([^\\x7f-\\uFFFF\\w-])/g, function (match) { return (\"\\\\\" + match); }); };\n function escape(css) {\n return isString(css) ? escapeFn.call(null, css) : '';\n }\n\n var voidElements = {\n area: true,\n base: true,\n br: true,\n col: true,\n embed: true,\n hr: true,\n img: true,\n input: true,\n keygen: true,\n link: true,\n menuitem: true,\n meta: true,\n param: true,\n source: true,\n track: true,\n wbr: true\n };\n function isVoidElement(element) {\n return toNodes(element).some(function (element) { return voidElements[element.tagName.toLowerCase()]; });\n }\n\n function isVisible(element) {\n return toNodes(element).some(function (element) { return element.offsetWidth || element.offsetHeight || element.getClientRects().length; });\n }\n\n var selInput = 'input,select,textarea,button';\n function isInput(element) {\n return toNodes(element).some(function (element) { return matches(element, selInput); });\n }\n\n function filter(element, selector) {\n return toNodes(element).filter(function (element) { return matches(element, selector); });\n }\n\n function within(element, selector) {\n return !isString(selector)\n ? element === selector || (isDocument(selector)\n ? selector.documentElement\n : toNode(selector)).contains(toNode(element)) // IE 11 document does not implement contains\n : matches(element, selector) || closest(element, selector);\n }\n\n function on() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n\n var ref = getArgs(args);\n var target = ref[0];\n var type = ref[1];\n var selector = ref[2];\n var listener = ref[3];\n var useCapture = ref[4];\n\n target = toEventTarget(target);\n\n if (selector) {\n listener = delegate(target, selector, listener);\n }\n\n if (listener.length > 1) {\n listener = detail(listener);\n }\n\n type.split(' ').forEach(function (type) { return target && target.addEventListener(type, listener, useCapture); });\n return function () { return off(target, type, listener, useCapture); };\n }\n\n function off(target, type, listener, useCapture) {\n if ( useCapture === void 0 ) useCapture = false;\n\n target = toEventTarget(target);\n target && type.split(' ').forEach(function (type) { return target.removeEventListener(type, listener, useCapture); });\n }\n\n function once() {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n\n var ref = getArgs(args);\n var element = ref[0];\n var type = ref[1];\n var selector = ref[2];\n var listener = ref[3];\n var useCapture = ref[4];\n var condition = ref[5];\n var off = on(element, type, selector, function (e) {\n var result = !condition || condition(e);\n if (result) {\n off();\n listener(e, result);\n }\n }, useCapture);\n\n return off;\n }\n\n function trigger(target, event, detail) {\n return toEventTargets(target).reduce(function (notCanceled, target) { return notCanceled && target.dispatchEvent(createEvent(event, true, true, detail)); }\n , true);\n }\n\n function createEvent(e, bubbles, cancelable, detail) {\n if ( bubbles === void 0 ) bubbles = true;\n if ( cancelable === void 0 ) cancelable = false;\n\n if (isString(e)) {\n var event = document.createEvent('CustomEvent'); // IE 11\n event.initCustomEvent(e, bubbles, cancelable, detail);\n e = event;\n }\n\n return e;\n }\n\n function getArgs(args) {\n\n if (isString(args[0])) {\n args[0] = find(args[0]);\n }\n\n if (isFunction(args[2])) {\n args.splice(2, 0, false);\n }\n return args;\n }\n\n function delegate(element, selector, listener) {\n var this$1 = this;\n\n return function (e) {\n\n var target = e.target;\n var current = selector[0] === '>'\n ? findAll(selector, element).reverse().filter(function (element) { return within(target, element); })[0]\n : closest(target, selector);\n\n if (current) {\n e.delegate = element;\n e.current = current;\n\n listener.call(this$1, e);\n }\n };\n }\n\n function detail(listener) {\n return function (e) { return isArray(e.detail) ? listener.apply(void 0, [e].concat(e.detail)) : listener(e); };\n }\n\n function isEventTarget(target) {\n return 'EventTarget' in window\n ? target instanceof EventTarget\n : target && 'addEventListener' in target;\n }\n\n function toEventTarget(target) {\n return isEventTarget(target) ? target : toNode(target);\n }\n\n function toEventTargets(target) {\n return isEventTarget(target)\n ? [target]\n : isArray(target)\n ? target.map(toEventTarget).filter(Boolean)\n : toNodes(target);\n }\n\n function preventClick() {\n\n var timer = setTimeout(once(document, 'click', function (e) {\n\n e.preventDefault();\n e.stopImmediatePropagation();\n\n clearTimeout(timer);\n\n }, true));\n\n trigger(document, 'touchcancel');\n\n }\n\n /* global setImmediate */\n\n var Promise$1 = 'Promise' in window ? window.Promise : PromiseFn;\n\n var Deferred = function() {\n var this$1 = this;\n\n this.promise = new Promise$1(function (resolve, reject) {\n this$1.reject = reject;\n this$1.resolve = resolve;\n });\n };\n\n /**\n * Promises/A+ polyfill v1.1.4 (https://github.com/bramstein/promis)\n */\n\n var RESOLVED = 0;\n var REJECTED = 1;\n var PENDING = 2;\n\n var async = 'setImmediate' in window ? setImmediate : setTimeout;\n\n function PromiseFn(executor) {\n\n this.state = PENDING;\n this.value = undefined;\n this.deferred = [];\n\n var promise = this;\n\n try {\n executor(\n function (x) {\n promise.resolve(x);\n },\n function (r) {\n promise.reject(r);\n }\n );\n } catch (e) {\n promise.reject(e);\n }\n }\n\n PromiseFn.reject = function (r) {\n return new PromiseFn(function (resolve, reject) {\n reject(r);\n });\n };\n\n PromiseFn.resolve = function (x) {\n return new PromiseFn(function (resolve, reject) {\n resolve(x);\n });\n };\n\n PromiseFn.all = function all(iterable) {\n return new PromiseFn(function (resolve, reject) {\n var result = [];\n var count = 0;\n\n if (iterable.length === 0) {\n resolve(result);\n }\n\n function resolver(i) {\n return function (x) {\n result[i] = x;\n count += 1;\n\n if (count === iterable.length) {\n resolve(result);\n }\n };\n }\n\n for (var i = 0; i < iterable.length; i += 1) {\n PromiseFn.resolve(iterable[i]).then(resolver(i), reject);\n }\n });\n };\n\n PromiseFn.race = function race(iterable) {\n return new PromiseFn(function (resolve, reject) {\n for (var i = 0; i < iterable.length; i += 1) {\n PromiseFn.resolve(iterable[i]).then(resolve, reject);\n }\n });\n };\n\n var p = PromiseFn.prototype;\n\n p.resolve = function resolve(x) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (x === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n var called = false;\n\n try {\n var then = x && x.then;\n\n if (x !== null && isObject(x) && isFunction(then)) {\n then.call(\n x,\n function (x) {\n if (!called) {\n promise.resolve(x);\n }\n called = true;\n },\n function (r) {\n if (!called) {\n promise.reject(r);\n }\n called = true;\n }\n );\n return;\n }\n } catch (e) {\n if (!called) {\n promise.reject(e);\n }\n return;\n }\n\n promise.state = RESOLVED;\n promise.value = x;\n promise.notify();\n }\n };\n\n p.reject = function reject(reason) {\n var promise = this;\n\n if (promise.state === PENDING) {\n if (reason === promise) {\n throw new TypeError('Promise settled with itself.');\n }\n\n promise.state = REJECTED;\n promise.value = reason;\n promise.notify();\n }\n };\n\n p.notify = function notify() {\n var this$1 = this;\n\n async(function () {\n if (this$1.state !== PENDING) {\n while (this$1.deferred.length) {\n var ref = this$1.deferred.shift();\n var onResolved = ref[0];\n var onRejected = ref[1];\n var resolve = ref[2];\n var reject = ref[3];\n\n try {\n if (this$1.state === RESOLVED) {\n if (isFunction(onResolved)) {\n resolve(onResolved.call(undefined, this$1.value));\n } else {\n resolve(this$1.value);\n }\n } else if (this$1.state === REJECTED) {\n if (isFunction(onRejected)) {\n resolve(onRejected.call(undefined, this$1.value));\n } else {\n reject(this$1.value);\n }\n }\n } catch (e) {\n reject(e);\n }\n }\n }\n });\n };\n\n p.then = function then(onResolved, onRejected) {\n var this$1 = this;\n\n return new PromiseFn(function (resolve, reject) {\n this$1.deferred.push([onResolved, onRejected, resolve, reject]);\n this$1.notify();\n });\n };\n\n p.catch = function (onRejected) {\n return this.then(undefined, onRejected);\n };\n\n function ajax(url, options) {\n return new Promise$1(function (resolve, reject) {\n\n var env = assign({\n data: null,\n method: 'GET',\n headers: {},\n xhr: new XMLHttpRequest(),\n beforeSend: noop,\n responseType: ''\n }, options);\n\n env.beforeSend(env);\n\n var xhr = env.xhr;\n\n for (var prop in env) {\n if (prop in xhr) {\n try {\n\n xhr[prop] = env[prop];\n\n } catch (e) {}\n }\n }\n\n xhr.open(env.method.toUpperCase(), url);\n\n for (var header in env.headers) {\n xhr.setRequestHeader(header, env.headers[header]);\n }\n\n on(xhr, 'load', function () {\n\n if (xhr.status === 0 || xhr.status >= 200 && xhr.status < 300 || xhr.status === 304) {\n resolve(xhr);\n } else {\n reject(assign(Error(xhr.statusText), {\n xhr: xhr,\n status: xhr.status\n }));\n }\n\n });\n\n on(xhr, 'error', function () { return reject(assign(Error('Network Error'), {xhr: xhr})); });\n on(xhr, 'timeout', function () { return reject(assign(Error('Network Timeout'), {xhr: xhr})); });\n\n xhr.send(env.data);\n });\n }\n\n function getImage(src, srcset, sizes) {\n\n return new Promise$1(function (resolve, reject) {\n var img = new Image();\n\n img.onerror = reject;\n img.onload = function () { return resolve(img); };\n\n img.src = src;\n srcset && (img.srcset = srcset);\n sizes && (img.sizes = sizes);\n });\n\n }\n\n function isReady() {\n return document.readyState === 'complete' || document.readyState !== 'loading' && !document.documentElement.doScroll;\n }\n\n function ready(fn) {\n\n if (isReady()) {\n fn();\n return;\n }\n\n var handle = function () {\n unbind1();\n unbind2();\n fn();\n };\n var unbind1 = on(document, 'DOMContentLoaded', handle);\n var unbind2 = on(window, 'load', handle);\n }\n\n function index(element, ref) {\n return ref\n ? toNodes(element).indexOf(toNode(ref))\n : toNodes((element = toNode(element)) && element.parentNode.children).indexOf(element);\n }\n\n function getIndex(i, elements, current, finite) {\n if ( current === void 0 ) current = 0;\n if ( finite === void 0 ) finite = false;\n\n\n elements = toNodes(elements);\n\n var length = elements.length;\n\n i = isNumeric(i)\n ? toNumber(i)\n : i === 'next'\n ? current + 1\n : i === 'previous'\n ? current - 1\n : index(elements, i);\n\n if (finite) {\n return clamp(i, 0, length - 1);\n }\n\n i %= length;\n\n return i < 0 ? i + length : i;\n }\n\n function empty(element) {\n element = toNode(element);\n element.innerHTML = '';\n return element;\n }\n\n function html(parent, html) {\n parent = toNode(parent);\n return isUndefined(html)\n ? parent.innerHTML\n : append(parent.hasChildNodes() ? empty(parent) : parent, html);\n }\n\n function prepend(parent, element) {\n\n parent = toNode(parent);\n\n if (!parent.hasChildNodes()) {\n return append(parent, element);\n } else {\n return insertNodes(element, function (element) { return parent.insertBefore(element, parent.firstChild); });\n }\n }\n\n function append(parent, element) {\n parent = toNode(parent);\n return insertNodes(element, function (element) { return parent.appendChild(element); });\n }\n\n function before(ref, element) {\n ref = toNode(ref);\n return insertNodes(element, function (element) { return ref.parentNode.insertBefore(element, ref); });\n }\n\n function after(ref, element) {\n ref = toNode(ref);\n return insertNodes(element, function (element) { return ref.nextSibling\n ? before(ref.nextSibling, element)\n : append(ref.parentNode, element); }\n );\n }\n\n function insertNodes(element, fn) {\n element = isString(element) ? fragment(element) : element;\n return element\n ? 'length' in element\n ? toNodes(element).map(fn)\n : fn(element)\n : null;\n }\n\n function remove(element) {\n toNodes(element).map(function (element) { return element.parentNode && element.parentNode.removeChild(element); });\n }\n\n function wrapAll(element, structure) {\n\n structure = toNode(before(element, structure));\n\n while (structure.firstChild) {\n structure = structure.firstChild;\n }\n\n append(structure, element);\n\n return structure;\n }\n\n function wrapInner(element, structure) {\n return toNodes(toNodes(element).map(function (element) { return element.hasChildNodes ? wrapAll(toNodes(element.childNodes), structure) : append(element, structure); }\n ));\n }\n\n function unwrap(element) {\n toNodes(element)\n .map(function (element) { return element.parentNode; })\n .filter(function (value, index, self) { return self.indexOf(value) === index; })\n .forEach(function (parent) {\n before(parent, parent.childNodes);\n remove(parent);\n });\n }\n\n var fragmentRe = /^\\s*<(\\w+|!)[^>]*>/;\n var singleTagRe = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>)?$/;\n\n function fragment(html) {\n\n var matches = singleTagRe.exec(html);\n if (matches) {\n return document.createElement(matches[1]);\n }\n\n var container = document.createElement('div');\n if (fragmentRe.test(html)) {\n container.insertAdjacentHTML('beforeend', html.trim());\n } else {\n container.textContent = html;\n }\n\n return container.childNodes.length > 1 ? toNodes(container.childNodes) : container.firstChild;\n\n }\n\n function apply(node, fn) {\n\n if (!node || node.nodeType !== 1) {\n return;\n }\n\n fn(node);\n node = node.firstElementChild;\n while (node) {\n apply(node, fn);\n node = node.nextElementSibling;\n }\n }\n\n function addClass(element) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n apply$1(element, args, 'add');\n }\n\n function removeClass(element) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n apply$1(element, args, 'remove');\n }\n\n function removeClasses(element, cls) {\n filterAttr(element, 'class', new RegExp((\"(^|\\\\s)\" + cls + \"(?!\\\\S)\"), 'g'), '');\n }\n\n function replaceClass(element) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n args[0] && removeClass(element, args[0]);\n args[1] && addClass(element, args[1]);\n }\n\n function hasClass(element, cls) {\n return toNodes(element).some(function (element) { return element.classList.contains(cls); });\n }\n\n function toggleClass(element) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n\n if (!args.length) {\n return;\n }\n\n args = getArgs$1(args);\n\n var force = !isString(args[args.length - 1]) ? args.pop() : []; // in iOS 9.3 force === undefined evaluates to false\n\n args = args.filter(Boolean);\n\n toNodes(element).forEach(function (ref) {\n var classList = ref.classList;\n\n for (var i = 0; i < args.length; i++) {\n supports.Force\n ? classList.toggle.apply(classList, [args[i]].concat(force))\n : (classList[(!isUndefined(force) ? force : !classList.contains(args[i])) ? 'add' : 'remove'](args[i]));\n }\n });\n\n }\n\n function apply$1(element, args, fn) {\n args = getArgs$1(args).filter(Boolean);\n\n args.length && toNodes(element).forEach(function (ref) {\n var classList = ref.classList;\n\n supports.Multiple\n ? classList[fn].apply(classList, args)\n : args.forEach(function (cls) { return classList[fn](cls); });\n });\n }\n\n function getArgs$1(args) {\n return args.reduce(function (args, arg) { return args.concat.call(args, isString(arg) && includes(arg, ' ') ? arg.trim().split(' ') : arg); }\n , []);\n }\n\n var supports = {};\n\n // IE 11\n (function () {\n\n var list = document.createElement('_').classList;\n if (list) {\n list.add('a', 'b');\n list.toggle('c', false);\n supports.Multiple = list.contains('b');\n supports.Force = !list.contains('c');\n }\n list = null;\n\n })();\n\n var cssNumber = {\n 'animation-iteration-count': true,\n 'column-count': true,\n 'fill-opacity': true,\n 'flex-grow': true,\n 'flex-shrink': true,\n 'font-weight': true,\n 'line-height': true,\n 'opacity': true,\n 'order': true,\n 'orphans': true,\n 'widows': true,\n 'z-index': true,\n 'zoom': true\n };\n\n function css(element, property, value) {\n\n return toNodes(element).map(function (element) {\n\n if (isString(property)) {\n\n property = propName(property);\n\n if (isUndefined(value)) {\n return getStyle(element, property);\n } else if (!value && value !== 0) {\n element.style.removeProperty(property);\n } else {\n element.style[property] = isNumeric(value) && !cssNumber[property] ? (value + \"px\") : value;\n }\n\n } else if (isArray(property)) {\n\n var styles = getStyles(element);\n\n return property.reduce(function (props, property) {\n props[property] = styles[propName(property)];\n return props;\n }, {});\n\n } else if (isObject(property)) {\n each(property, function (value, property) { return css(element, property, value); });\n }\n\n return element;\n\n })[0];\n\n }\n\n function getStyles(element, pseudoElt) {\n element = toNode(element);\n return element.ownerDocument.defaultView.getComputedStyle(element, pseudoElt);\n }\n\n function getStyle(element, property, pseudoElt) {\n return getStyles(element, pseudoElt)[property];\n }\n\n var vars = {};\n\n function getCssVar(name) {\n\n if (!(name in vars)) {\n\n /* usage in css: .var-name:before { content:\"xyz\" } */\n\n var element = append(document.documentElement, document.createElement('div'));\n\n addClass(element, (\"var-\" + name));\n\n try {\n\n vars[name] = getStyle(element, 'content', ':before').replace(/^[\"'](.*)[\"']$/, '$1');\n vars[name] = JSON.parse(vars[name]);\n\n } catch (e) {}\n\n document.documentElement.removeChild(element);\n\n }\n\n return vars[name];\n\n }\n\n var cssProps = {};\n\n function propName(name) {\n\n var ret = cssProps[name];\n if (!ret) {\n ret = cssProps[name] = vendorPropName(name) || name;\n }\n return ret;\n }\n\n var cssPrefixes = ['webkit', 'moz', 'ms'];\n var ref$1 = document.createElement('_');\n var style = ref$1.style;\n\n function vendorPropName(name) {\n\n name = hyphenate(name);\n\n if (name in style) {\n return name;\n }\n\n var i = cssPrefixes.length, prefixedName;\n\n while (i--) {\n prefixedName = \"-\" + (cssPrefixes[i]) + \"-\" + name;\n if (prefixedName in style) {\n return prefixedName;\n }\n }\n }\n\n function transition(element, props, duration, timing) {\n if ( duration === void 0 ) duration = 400;\n if ( timing === void 0 ) timing = 'linear';\n\n\n return Promise$1.all(toNodes(element).map(function (element) { return new Promise$1(function (resolve, reject) {\n\n for (var name in props) {\n var value = css(element, name);\n if (value === '') {\n css(element, name, value);\n }\n }\n\n var timer = setTimeout(function () { return trigger(element, 'transitionend'); }, duration);\n\n once(element, 'transitionend transitioncanceled', function (ref) {\n var type = ref.type;\n\n clearTimeout(timer);\n removeClass(element, 'uk-transition');\n css(element, {\n 'transition-property': '',\n 'transition-duration': '',\n 'transition-timing-function': ''\n });\n type === 'transitioncanceled' ? reject() : resolve();\n }, false, function (ref) {\n var target = ref.target;\n\n return element === target;\n });\n\n addClass(element, 'uk-transition');\n css(element, assign({\n 'transition-property': Object.keys(props).map(propName).join(','),\n 'transition-duration': (duration + \"ms\"),\n 'transition-timing-function': timing\n }, props));\n\n }); }\n ));\n\n }\n\n var Transition = {\n\n start: transition,\n\n stop: function(element) {\n trigger(element, 'transitionend');\n return Promise$1.resolve();\n },\n\n cancel: function(element) {\n trigger(element, 'transitioncanceled');\n },\n\n inProgress: function(element) {\n return hasClass(element, 'uk-transition');\n }\n\n };\n\n var animationPrefix = 'uk-animation-';\n var clsCancelAnimation = 'uk-cancel-animation';\n\n function animate(element, animation, duration, origin, out) {\n var arguments$1 = arguments;\n if ( duration === void 0 ) duration = 200;\n\n\n return Promise$1.all(toNodes(element).map(function (element) { return new Promise$1(function (resolve, reject) {\n\n if (hasClass(element, clsCancelAnimation)) {\n requestAnimationFrame(function () { return Promise$1.resolve().then(function () { return animate.apply(void 0, arguments$1).then(resolve, reject); }\n ); }\n );\n return;\n }\n\n var cls = animation + \" \" + animationPrefix + (out ? 'leave' : 'enter');\n\n if (startsWith(animation, animationPrefix)) {\n\n if (origin) {\n cls += \" uk-transform-origin-\" + origin;\n }\n\n if (out) {\n cls += \" \" + animationPrefix + \"reverse\";\n }\n\n }\n\n reset();\n\n once(element, 'animationend animationcancel', function (ref) {\n var type = ref.type;\n\n\n var hasReset = false;\n\n if (type === 'animationcancel') {\n reject();\n reset();\n } else {\n resolve();\n Promise$1.resolve().then(function () {\n hasReset = true;\n reset();\n });\n }\n\n requestAnimationFrame(function () {\n if (!hasReset) {\n addClass(element, clsCancelAnimation);\n\n requestAnimationFrame(function () { return removeClass(element, clsCancelAnimation); });\n }\n });\n\n }, false, function (ref) {\n var target = ref.target;\n\n return element === target;\n });\n\n css(element, 'animationDuration', (duration + \"ms\"));\n addClass(element, cls);\n\n function reset() {\n css(element, 'animationDuration', '');\n removeClasses(element, (animationPrefix + \"\\\\S*\"));\n }\n\n }); }\n ));\n\n }\n\n var inProgress = new RegExp((animationPrefix + \"(enter|leave)\"));\n var Animation = {\n\n in: function(element, animation, duration, origin) {\n return animate(element, animation, duration, origin, false);\n },\n\n out: function(element, animation, duration, origin) {\n return animate(element, animation, duration, origin, true);\n },\n\n inProgress: function(element) {\n return inProgress.test(attr(element, 'class'));\n },\n\n cancel: function(element) {\n trigger(element, 'animationcancel');\n }\n\n };\n\n function $(selector, context) {\n return !isString(selector)\n ? toNode(selector)\n : isHtml(selector)\n ? toNode(fragment(selector))\n : find(selector, context);\n }\n\n function $$(selector, context) {\n return !isString(selector)\n ? toNodes(selector)\n : isHtml(selector)\n ? toNodes(fragment(selector))\n : findAll(selector, context);\n }\n\n function isHtml(str) {\n return str[0] === '<' || str.match(/^\\s*</);\n }\n\n var dirs = {\n width: ['x', 'left', 'right'],\n height: ['y', 'top', 'bottom']\n };\n\n function positionAt(element, target, elAttach, targetAttach, elOffset, targetOffset, flip, boundary) {\n\n elAttach = getPos(elAttach);\n targetAttach = getPos(targetAttach);\n\n var flipped = {element: elAttach, target: targetAttach};\n\n if (!element || !target) {\n return flipped;\n }\n\n var dim = getDimensions(element);\n var targetDim = getDimensions(target);\n var position = targetDim;\n\n moveTo(position, elAttach, dim, -1);\n moveTo(position, targetAttach, targetDim, 1);\n\n elOffset = getOffsets(elOffset, dim.width, dim.height);\n targetOffset = getOffsets(targetOffset, targetDim.width, targetDim.height);\n\n elOffset['x'] += targetOffset['x'];\n elOffset['y'] += targetOffset['y'];\n\n position.left += elOffset['x'];\n position.top += elOffset['y'];\n\n boundary = getDimensions(boundary || window$1(element));\n\n if (flip) {\n each(dirs, function (ref, prop) {\n var dir = ref[0];\n var align = ref[1];\n var alignFlip = ref[2];\n\n\n if (!(flip === true || includes(flip, dir))) {\n return;\n }\n\n var elemOffset = elAttach[dir] === align\n ? -dim[prop]\n : elAttach[dir] === alignFlip\n ? dim[prop]\n : 0;\n\n var targetOffset = targetAttach[dir] === align\n ? targetDim[prop]\n : targetAttach[dir] === alignFlip\n ? -targetDim[prop]\n : 0;\n\n if (position[align] < boundary[align] || position[align] + dim[prop] > boundary[alignFlip]) {\n\n var centerOffset = dim[prop] / 2;\n var centerTargetOffset = targetAttach[dir] === 'center' ? -targetDim[prop] / 2 : 0;\n\n elAttach[dir] === 'center' && (\n apply(centerOffset, centerTargetOffset)\n || apply(-centerOffset, -centerTargetOffset)\n ) || apply(elemOffset, targetOffset);\n\n }\n\n function apply(elemOffset, targetOffset) {\n\n var newVal = position[align] + elemOffset + targetOffset - elOffset[dir] * 2;\n\n if (newVal >= boundary[align] && newVal + dim[prop] <= boundary[alignFlip]) {\n position[align] = newVal;\n\n ['element', 'target'].forEach(function (el) {\n flipped[el][dir] = !elemOffset\n ? flipped[el][dir]\n : flipped[el][dir] === dirs[prop][1]\n ? dirs[prop][2]\n : dirs[prop][1];\n });\n\n return true;\n }\n\n }\n\n });\n }\n\n offset(element, position);\n\n return flipped;\n }\n\n function offset(element, coordinates) {\n\n element = toNode(element);\n\n if (coordinates) {\n\n var currentOffset = offset(element);\n var pos = css(element, 'position');\n\n ['left', 'top'].forEach(function (prop) {\n if (prop in coordinates) {\n var value = css(element, prop);\n css(element, prop, coordinates[prop] - currentOffset[prop]\n + toFloat(pos === 'absolute' && value === 'auto'\n ? position(element)[prop]\n : value)\n );\n }\n });\n\n return;\n }\n\n return getDimensions(element);\n }\n\n function getDimensions(element) {\n\n element = toNode(element);\n\n var ref = window$1(element);\n var top = ref.pageYOffset;\n var left = ref.pageXOffset;\n\n if (isWindow(element)) {\n\n var height = element.innerHeight;\n var width = element.innerWidth;\n\n return {\n top: top,\n left: left,\n height: height,\n width: width,\n bottom: top + height,\n right: left + width,\n };\n }\n\n var style, hidden;\n\n if (!isVisible(element)) {\n style = attr(element, 'style');\n hidden = attr(element, 'hidden');\n\n attr(element, {\n style: ((style || '') + \";display:block !important;\"),\n hidden: null\n });\n }\n\n var rect = element.getBoundingClientRect();\n\n if (!isUndefined(style)) {\n attr(element, {style: style, hidden: hidden});\n }\n\n return {\n height: rect.height,\n width: rect.width,\n top: rect.top + top,\n left: rect.left + left,\n bottom: rect.bottom + top,\n right: rect.right + left,\n };\n }\n\n function position(element) {\n element = toNode(element);\n\n var parent = offsetParent(element);\n var parentOffset = parent === docEl(element) ? {top: 0, left: 0} : offset(parent);\n var ref = ['top', 'left'].reduce(function (props, prop) {\n var propName$$1 = ucfirst(prop);\n props[prop] -= parentOffset[prop]\n + (toFloat(css(element, (\"margin\" + propName$$1))) || 0)\n + (toFloat(css(parent, (\"border\" + propName$$1 + \"Width\"))) || 0);\n return props;\n }, offset(element));\n var top = ref.top;\n var left = ref.left;\n\n return {top: top, left: left};\n }\n\n function offsetParent(element) {\n\n var parent = toNode(element).offsetParent;\n\n while (parent && css(parent, 'position') === 'static') {\n parent = parent.offsetParent;\n }\n\n return parent || docEl(element);\n }\n\n var height = dimension('height');\n var width = dimension('width');\n\n function dimension(prop) {\n var propName$$1 = ucfirst(prop);\n return function (element, value) {\n\n element = toNode(element);\n\n if (isUndefined(value)) {\n\n if (isWindow(element)) {\n return element[(\"inner\" + propName$$1)];\n }\n\n if (isDocument(element)) {\n var doc = element.documentElement;\n return Math.max(doc[(\"offset\" + propName$$1)], doc[(\"scroll\" + propName$$1)]);\n }\n\n value = css(element, prop);\n value = value === 'auto' ? element[(\"offset\" + propName$$1)] : toFloat(value) || 0;\n\n return value - boxModelAdjust(prop, element);\n\n } else {\n\n css(element, prop, !value && value !== 0\n ? ''\n : +value + boxModelAdjust(prop, element) + 'px'\n );\n\n }\n\n };\n }\n\n function boxModelAdjust(prop, element) {\n return css(element, 'boxSizing') === 'border-box'\n ? dirs[prop].slice(1).map(ucfirst).reduce(function (value, prop) { return value\n + toFloat(css(element, (\"padding\" + prop)))\n + toFloat(css(element, (\"border\" + prop + \"Width\"))); }\n , 0)\n : 0;\n }\n\n function moveTo(position, attach, dim, factor) {\n each(dirs, function (ref, prop) {\n var dir = ref[0];\n var align = ref[1];\n var alignFlip = ref[2];\n\n if (attach[dir] === alignFlip) {\n position[align] += dim[prop] * factor;\n } else if (attach[dir] === 'center') {\n position[align] += dim[prop] * factor / 2;\n }\n });\n }\n\n function getPos(pos) {\n\n var x = /left|center|right/;\n var y = /top|center|bottom/;\n\n pos = (pos || '').split(' ');\n\n if (pos.length === 1) {\n pos = x.test(pos[0])\n ? pos.concat(['center'])\n : y.test(pos[0])\n ? ['center'].concat(pos)\n : ['center', 'center'];\n }\n\n return {\n x: x.test(pos[0]) ? pos[0] : 'center',\n y: y.test(pos[1]) ? pos[1] : 'center'\n };\n }\n\n function getOffsets(offsets, width, height) {\n\n var ref = (offsets || '').split(' ');\n var x = ref[0];\n var y = ref[1];\n\n return {\n x: x ? toFloat(x) * (endsWith(x, '%') ? width / 100 : 1) : 0,\n y: y ? toFloat(y) * (endsWith(y, '%') ? height / 100 : 1) : 0\n };\n }\n\n function flipPosition(pos) {\n switch (pos) {\n case 'left':\n return 'right';\n case 'right':\n return 'left';\n case 'top':\n return 'bottom';\n case 'bottom':\n return 'top';\n default:\n return pos;\n }\n }\n\n function isInView(element, topOffset, leftOffset, relativeToViewport) {\n if ( topOffset === void 0 ) topOffset = 0;\n if ( leftOffset === void 0 ) leftOffset = 0;\n\n\n if (!isVisible(element)) {\n return false;\n }\n\n element = toNode(element);\n var win = window$1(element);\n\n if (relativeToViewport) {\n\n return intersectRect(element.getBoundingClientRect(), {\n top: -topOffset,\n left: -leftOffset,\n bottom: topOffset + height(win),\n right: leftOffset + width(win)\n });\n\n } else {\n\n var ref = offsetPosition(element);\n var elTop = ref[0];\n var elLeft = ref[1];\n var top = win.pageYOffset;\n var left = win.pageXOffset;\n\n return intersectRect(\n {\n top: elTop,\n left: elLeft,\n bottom: elTop + element.offsetHeight,\n right: elTop + element.offsetWidth\n },\n {\n top: top - topOffset,\n left: left - leftOffset,\n bottom: top + topOffset + height(win),\n right: left + leftOffset + width(win)\n }\n );\n }\n\n }\n\n function scrolledOver(element, heightOffset) {\n if ( heightOffset === void 0 ) heightOffset = 0;\n\n\n if (!isVisible(element)) {\n return 0;\n }\n\n element = toNode(element);\n\n var win = window$1(element);\n var doc = document$1(element);\n var elHeight = element.offsetHeight + heightOffset;\n var ref = offsetPosition(element);\n var top = ref[0];\n var vp = height(win);\n var vh = vp + Math.min(0, top - vp);\n var diff = Math.max(0, vp - (height(doc) + heightOffset - (top + elHeight)));\n\n return clamp(((vh + win.pageYOffset - top) / ((vh + (elHeight - (diff < vp ? diff : 0))) / 100)) / 100);\n }\n\n function offsetPosition(element) {\n var offset = [0, 0];\n\n do {\n\n offset[0] += element.offsetTop;\n offset[1] += element.offsetLeft;\n\n if (css(element, 'position') === 'fixed') {\n var win = window$1(element);\n offset[0] += win.pageYOffset;\n offset[1] += win.pageXOffset;\n return offset;\n }\n\n } while ((element = element.offsetParent));\n\n return offset;\n }\n\n function window$1(element) {\n return isWindow(element) ? element : document$1(element).defaultView;\n }\n\n function document$1(element) {\n return toNode(element).ownerDocument;\n }\n\n function docEl(element) {\n return document$1(element).documentElement;\n }\n\n /* global DocumentTouch */\n\n var isRtl = attr(document.documentElement, 'dir') === 'rtl';\n\n var hasTouchEvents = 'ontouchstart' in window;\n var hasPointerEvents = window.PointerEvent;\n var hasTouch = hasTouchEvents\n || window.DocumentTouch && document instanceof DocumentTouch\n || navigator.maxTouchPoints; // IE >=11\n\n var pointerDown = !hasTouch ? 'mousedown' : (\"mousedown \" + (hasTouchEvents ? 'touchstart' : 'pointerdown'));\n var pointerMove = !hasTouch ? 'mousemove' : (\"mousemove \" + (hasTouchEvents ? 'touchmove' : 'pointermove'));\n var pointerUp = !hasTouch ? 'mouseup' : (\"mouseup \" + (hasTouchEvents ? 'touchend' : 'pointerup'));\n var pointerEnter = hasTouch && hasPointerEvents ? 'pointerenter' : 'mouseenter';\n var pointerLeave = hasTouch && hasPointerEvents ? 'pointerleave' : 'mouseleave';\n\n /*\n Based on:\n Copyright (c) 2016 Wilson Page [email protected]\n https://github.com/wilsonpage/fastdom\n */\n\n var fastdom = {\n\n reads: [],\n writes: [],\n\n read: function(task) {\n this.reads.push(task);\n scheduleFlush();\n return task;\n },\n\n write: function(task) {\n this.writes.push(task);\n scheduleFlush();\n return task;\n },\n\n clear: function(task) {\n return remove$1(this.reads, task) || remove$1(this.writes, task);\n },\n\n flush: function() {\n\n runTasks(this.reads);\n runTasks(this.writes.splice(0, this.writes.length));\n\n this.scheduled = false;\n\n if (this.reads.length || this.writes.length) {\n scheduleFlush();\n }\n\n }\n\n };\n\n function scheduleFlush() {\n if (!fastdom.scheduled) {\n fastdom.scheduled = true;\n requestAnimationFrame(fastdom.flush.bind(fastdom));\n }\n }\n\n function runTasks(tasks) {\n var task;\n while ((task = tasks.shift())) {\n task();\n }\n }\n\n function remove$1(array, item) {\n var index = array.indexOf(item);\n return !!~index && !!array.splice(index, 1);\n }\n\n function MouseTracker() {}\n\n MouseTracker.prototype = {\n\n positions: [],\n position: null,\n\n init: function() {\n var this$1 = this;\n\n\n this.positions = [];\n this.position = null;\n\n var ticking = false;\n this.unbind = on(document, 'mousemove', function (e) {\n\n if (ticking) {\n return;\n }\n\n setTimeout(function () {\n\n var time = Date.now();\n var ref = this$1.positions;\n var length = ref.length;\n\n if (length && (time - this$1.positions[length - 1].time > 100)) {\n this$1.positions.splice(0, length);\n }\n\n this$1.positions.push({time: time, x: e.pageX, y: e.pageY});\n\n if (this$1.positions.length > 5) {\n this$1.positions.shift();\n }\n\n ticking = false;\n }, 5);\n\n ticking = true;\n });\n\n },\n\n cancel: function() {\n if (this.unbind) {\n this.unbind();\n }\n },\n\n movesTo: function(target) {\n\n if (this.positions.length < 2) {\n return false;\n }\n\n var p = offset(target);\n var position$$1 = this.positions[this.positions.length - 1];\n var ref = this.positions;\n var prevPos = ref[0];\n\n if (p.left <= position$$1.x && position$$1.x <= p.right && p.top <= position$$1.y && position$$1.y <= p.bottom) {\n return false;\n }\n\n var points = [\n [{x: p.left, y: p.top}, {x: p.right, y: p.bottom}],\n [{x: p.right, y: p.top}, {x: p.left, y: p.bottom}]\n ];\n\n if (p.right <= position$$1.x) ; else if (p.left >= position$$1.x) {\n points[0].reverse();\n points[1].reverse();\n } else if (p.bottom <= position$$1.y) {\n points[0].reverse();\n } else if (p.top >= position$$1.y) {\n points[1].reverse();\n }\n\n return !!points.reduce(function (result, point) {\n return result + (slope(prevPos, point[0]) < slope(position$$1, point[0]) && slope(prevPos, point[1]) > slope(position$$1, point[1]));\n }, 0);\n }\n\n };\n\n function slope(a, b) {\n return (b.y - a.y) / (b.x - a.x);\n }\n\n var strats = {};\n\n // concat strategy\n strats.args =\n strats.events =\n strats.init =\n strats.created =\n strats.beforeConnect =\n strats.connected =\n strats.ready =\n strats.beforeDisconnect =\n strats.disconnected =\n strats.destroy = function (parentVal, childVal) {\n\n parentVal = parentVal && !isArray(parentVal) ? [parentVal] : parentVal;\n\n return childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n };\n\n // update strategy\n strats.update = function (parentVal, childVal) {\n return strats.args(parentVal, isFunction(childVal) ? {read: childVal} : childVal);\n };\n\n // property strategy\n strats.props = function (parentVal, childVal) {\n\n if (isArray(childVal)) {\n childVal = childVal.reduce(function (value, key) {\n value[key] = String;\n return value;\n }, {});\n }\n\n return strats.methods(parentVal, childVal);\n };\n\n // extend strategy\n strats.computed =\n strats.methods = function (parentVal, childVal) {\n return childVal\n ? parentVal\n ? assign({}, parentVal, childVal)\n : childVal\n : parentVal;\n };\n\n // data strategy\n strats.data = function (parentVal, childVal, vm) {\n\n if (!vm) {\n\n if (!childVal) {\n return parentVal;\n }\n\n if (!parentVal) {\n return childVal;\n }\n\n return function (vm) {\n return mergeFnData(parentVal, childVal, vm);\n };\n\n }\n\n return mergeFnData(parentVal, childVal, vm);\n };\n\n function mergeFnData(parentVal, childVal, vm) {\n return strats.computed(\n isFunction(parentVal)\n ? parentVal.call(vm, vm)\n : parentVal,\n isFunction(childVal)\n ? childVal.call(vm, vm)\n : childVal\n );\n }\n\n // default strategy\n var defaultStrat = function (parentVal, childVal) {\n return isUndefined(childVal) ? parentVal : childVal;\n };\n\n function mergeOptions(parent, child, vm) {\n\n var options = {};\n\n if (isFunction(child)) {\n child = child.options;\n }\n\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n\n for (var key in parent) {\n mergeKey(key);\n }\n\n for (var key$1 in child) {\n if (!hasOwn(parent, key$1)) {\n mergeKey(key$1);\n }\n }\n\n function mergeKey(key) {\n options[key] = (strats[key] || defaultStrat)(parent[key], child[key], vm);\n }\n\n return options;\n }\n\n function parseOptions(options, args) {\n var obj;\n\n if ( args === void 0 ) args = [];\n\n try {\n\n return !options\n ? {}\n : startsWith(options, '{')\n ? JSON.parse(options)\n : args.length && !includes(options, ':')\n ? (( obj = {}, obj[args[0]] = options, obj ))\n : options.split(';').reduce(function (options, option) {\n var ref = option.split(/:(.*)/);\n var key = ref[0];\n var value = ref[1];\n if (key && !isUndefined(value)) {\n options[key.trim()] = value.trim();\n }\n return options;\n }, {});\n\n } catch (e) {\n return {};\n }\n\n }\n\n var id = 0;\n\n var Player = function(el) {\n this.id = ++id;\n this.el = toNode(el);\n };\n\n Player.prototype.isVideo = function () {\n return this.isYoutube() || this.isVimeo() || this.isHTML5();\n };\n\n Player.prototype.isHTML5 = function () {\n return this.el.tagName === 'VIDEO';\n };\n\n Player.prototype.isIFrame = function () {\n return this.el.tagName === 'IFRAME';\n };\n\n Player.prototype.isYoutube = function () {\n return this.isIFrame() && !!this.el.src.match(/\\/\\/.*?youtube(-nocookie)?\\.[a-z]+\\/(watch\\?v=[^&\\s]+|embed)|youtu\\.be\\/.*/);\n };\n\n Player.prototype.isVimeo = function () {\n return this.isIFrame() && !!this.el.src.match(/vimeo\\.com\\/video\\/.*/);\n };\n\n Player.prototype.enableApi = function () {\n var this$1 = this;\n\n\n if (this.ready) {\n return this.ready;\n }\n\n var youtube = this.isYoutube();\n var vimeo = this.isVimeo();\n\n var poller;\n\n if (youtube || vimeo) {\n\n return this.ready = new Promise$1(function (resolve) {\n\n once(this$1.el, 'load', function () {\n if (youtube) {\n var listener = function () { return post(this$1.el, {event: 'listening', id: this$1.id}); };\n poller = setInterval(listener, 100);\n listener();\n }\n });\n\n listen(function (data$$1) { return youtube && data$$1.id === this$1.id && data$$1.event === 'onReady' || vimeo && Number(data$$1.player_id) === this$1.id; })\n .then(function () {\n resolve();\n poller && clearInterval(poller);\n });\n\n attr(this$1.el, 'src', (\"\" + (this$1.el.src) + (includes(this$1.el.src, '?') ? '&' : '?') + (youtube ? 'enablejsapi=1' : (\"api=1&player_id=\" + (this$1.id)))));\n\n });\n\n }\n\n return Promise$1.resolve();\n\n };\n\n Player.prototype.play = function () {\n var this$1 = this;\n\n\n if (!this.isVideo()) {\n return;\n }\n\n if (this.isIFrame()) {\n this.enableApi().then(function () { return post(this$1.el, {func: 'playVideo', method: 'play'}); });\n } else if (this.isHTML5()) {\n try {\n var promise = this.el.play();\n\n if (promise) {\n promise.catch(noop);\n }\n } catch (e) {}\n }\n };\n\n Player.prototype.pause = function () {\n var this$1 = this;\n\n\n if (!this.isVideo()) {\n return;\n }\n\n if (this.isIFrame()) {\n this.enableApi().then(function () { return post(this$1.el, {func: 'pauseVideo', method: 'pause'}); });\n } else if (this.isHTML5()) {\n this.el.pause();\n }\n };\n\n Player.prototype.mute = function () {\n var this$1 = this;\n\n\n if (!this.isVideo()) {\n return;\n }\n\n if (this.isIFrame()) {\n this.enableApi().then(function () { return post(this$1.el, {func: 'mute', method: 'setVolume', value: 0}); });\n } else if (this.isHTML5()) {\n this.el.muted = true;\n attr(this.el, 'muted', '');\n }\n\n };\n\n function post(el, cmd) {\n try {\n el.contentWindow.postMessage(JSON.stringify(assign({event: 'command'}, cmd)), '*');\n } catch (e) {}\n }\n\n function listen(cb) {\n\n return new Promise$1(function (resolve) {\n\n once(window, 'message', function (_, data$$1) { return resolve(data$$1); }, false, function (ref) {\n var data$$1 = ref.data;\n\n\n if (!data$$1 || !isString(data$$1)) {\n return;\n }\n\n try {\n data$$1 = JSON.parse(data$$1);\n } catch (e) {\n return;\n }\n\n return data$$1 && cb(data$$1);\n\n });\n\n });\n\n }\n\n /*\n Based on:\n Copyright (c) 2010-2016 Thomas Fuchs\n http://zeptojs.com/\n */\n\n var touch = {}, clickTimeout, swipeTimeout, tapTimeout, clicked;\n\n function swipeDirection(ref) {\n var x1 = ref.x1;\n var x2 = ref.x2;\n var y1 = ref.y1;\n var y2 = ref.y2;\n\n return Math.abs(x1 - x2) >= Math.abs(y1 - y2) ? (x1 - x2 > 0 ? 'Left' : 'Right') : (y1 - y2 > 0 ? 'Up' : 'Down');\n }\n\n function cancelAll() {\n clickTimeout && clearTimeout(clickTimeout);\n swipeTimeout && clearTimeout(swipeTimeout);\n tapTimeout && clearTimeout(tapTimeout);\n clickTimeout = swipeTimeout = tapTimeout = null;\n touch = {};\n }\n\n ready(function () {\n\n on(document, 'click', function () { return clicked = true; }, true);\n\n on(document, pointerDown, function (e) {\n\n var target = e.target;\n var ref = getPos$1(e);\n var x = ref.x;\n var y = ref.y;\n var now = Date.now();\n var type = getType(e.type);\n\n if (touch.type && touch.type !== type) {\n return;\n }\n\n touch.el = 'tagName' in target ? target : target.parentNode;\n\n clickTimeout && clearTimeout(clickTimeout);\n\n touch.x1 = x;\n touch.y1 = y;\n\n if (touch.last && now - touch.last <= 250) {\n touch = {};\n }\n\n touch.type = type;\n touch.last = now;\n\n clicked = e.button > 0;\n\n });\n\n on(document, pointerMove, function (e) {\n\n if (e.defaultPrevented) {\n return;\n }\n\n var ref = getPos$1(e);\n var x = ref.x;\n var y = ref.y;\n\n touch.x2 = x;\n touch.y2 = y;\n\n });\n\n on(document, pointerUp, function (ref) {\n var type = ref.type;\n var target = ref.target;\n\n\n if (touch.type !== getType(type)) {\n return;\n }\n\n // swipe\n if (touch.x2 && Math.abs(touch.x1 - touch.x2) > 30 || touch.y2 && Math.abs(touch.y1 - touch.y2) > 30) {\n\n swipeTimeout = setTimeout(function () {\n if (touch.el) {\n trigger(touch.el, 'swipe');\n trigger(touch.el, (\"swipe\" + (swipeDirection(touch))));\n }\n touch = {};\n });\n\n // normal tap\n } else if ('last' in touch) {\n\n tapTimeout = setTimeout(function () { return trigger(touch.el, 'tap'); });\n\n // trigger single click after 350ms of inactivity\n if (touch.el && type !== 'mouseup' && within(target, touch.el)) {\n clickTimeout = setTimeout(function () {\n clickTimeout = null;\n if (touch.el && !clicked) {\n trigger(touch.el, 'click');\n }\n touch = {};\n }, 350);\n }\n\n } else {\n touch = {};\n }\n\n });\n\n on(document, 'touchcancel', cancelAll);\n on(window, 'scroll', cancelAll);\n\n });\n\n var touching = false;\n on(document, 'touchstart', function () { return touching = true; }, true);\n on(document, 'click', function () {touching = false;});\n on(document, 'touchcancel', function () { return touching = false; }, true);\n\n function isTouch(e) {\n return touching || e.pointerType === 'touch';\n }\n\n function getPos$1(e) {\n var touches = e.touches;\n var changedTouches = e.changedTouches;\n var ref = touches && touches[0] || changedTouches && changedTouches[0] || e;\n var x = ref.pageX;\n var y = ref.pageY;\n\n return {x: x, y: y};\n }\n\n function getType(type) {\n return type.slice(0, 5);\n }\n\n\n\n var util = /*#__PURE__*/Object.freeze({\n ajax: ajax,\n getImage: getImage,\n transition: transition,\n Transition: Transition,\n animate: animate,\n Animation: Animation,\n attr: attr,\n hasAttr: hasAttr,\n removeAttr: removeAttr,\n filterAttr: filterAttr,\n data: data,\n addClass: addClass,\n removeClass: removeClass,\n removeClasses: removeClasses,\n replaceClass: replaceClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n $: $,\n $$: $$,\n positionAt: positionAt,\n offset: offset,\n position: position,\n height: height,\n width: width,\n flipPosition: flipPosition,\n isInView: isInView,\n scrolledOver: scrolledOver,\n isReady: isReady,\n ready: ready,\n index: index,\n getIndex: getIndex,\n empty: empty,\n html: html,\n prepend: prepend,\n append: append,\n before: before,\n after: after,\n remove: remove,\n wrapAll: wrapAll,\n wrapInner: wrapInner,\n unwrap: unwrap,\n fragment: fragment,\n apply: apply,\n isRtl: isRtl,\n hasTouch: hasTouch,\n pointerDown: pointerDown,\n pointerMove: pointerMove,\n pointerUp: pointerUp,\n pointerEnter: pointerEnter,\n pointerLeave: pointerLeave,\n on: on,\n off: off,\n once: once,\n trigger: trigger,\n createEvent: createEvent,\n toEventTargets: toEventTargets,\n preventClick: preventClick,\n fastdom: fastdom,\n isVoidElement: isVoidElement,\n isVisible: isVisible,\n selInput: selInput,\n isInput: isInput,\n filter: filter,\n within: within,\n bind: bind,\n hasOwn: hasOwn,\n hyphenate: hyphenate,\n camelize: camelize,\n ucfirst: ucfirst,\n startsWith: startsWith,\n endsWith: endsWith,\n includes: includes,\n isArray: isArray,\n isFunction: isFunction,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isWindow: isWindow,\n isDocument: isDocument,\n isJQuery: isJQuery,\n isNode: isNode,\n isNodeCollection: isNodeCollection,\n isBoolean: isBoolean,\n isString: isString,\n isNumber: isNumber,\n isNumeric: isNumeric,\n isUndefined: isUndefined,\n toBoolean: toBoolean,\n toNumber: toNumber,\n toFloat: toFloat,\n toNode: toNode,\n toNodes: toNodes,\n toList: toList,\n toMs: toMs,\n swap: swap,\n assign: assign,\n each: each,\n sortBy: sortBy,\n clamp: clamp,\n noop: noop,\n intersectRect: intersectRect,\n pointInRect: pointInRect,\n Dimensions: Dimensions,\n MouseTracker: MouseTracker,\n mergeOptions: mergeOptions,\n parseOptions: parseOptions,\n Player: Player,\n Promise: Promise$1,\n Deferred: Deferred,\n query: query,\n queryAll: queryAll,\n find: find,\n findAll: findAll,\n matches: matches,\n closest: closest,\n parents: parents,\n escape: escape,\n css: css,\n getStyles: getStyles,\n getStyle: getStyle,\n getCssVar: getCssVar,\n propName: propName,\n isTouch: isTouch,\n getPos: getPos$1\n });\n\n function componentAPI (UIkit) {\n\n var DATA = UIkit.data;\n\n var components = {};\n\n UIkit.component = function (name, options) {\n\n if (!options) {\n\n if (isPlainObject(components[name])) {\n components[name] = UIkit.extend(components[name]);\n }\n\n return components[name];\n\n }\n\n UIkit[name] = function (element, data$$1) {\n var i = arguments.length, argsArray = Array(i);\n while ( i-- ) argsArray[i] = arguments[i];\n\n\n var component = UIkit.component(name);\n\n if (isPlainObject(element)) {\n return new component({data: element});\n }\n\n if (component.options.functional) {\n return new component({data: [].concat( argsArray )});\n }\n\n return element && element.nodeType ? init(element) : $$(element).map(init)[0];\n\n function init(element) {\n\n var instance = UIkit.getComponent(element, name);\n\n if (instance) {\n if (!data$$1) {\n return instance;\n } else {\n instance.$destroy();\n }\n }\n\n return new component({el: element, data: data$$1});\n\n }\n\n };\n\n var opt = isPlainObject(options) ? assign({}, options) : options.options;\n\n opt.name = name;\n\n if (opt.install) {\n opt.install(UIkit, opt, name);\n }\n\n if (UIkit._initialized && !opt.functional) {\n var id = hyphenate(name);\n fastdom.read(function () { return UIkit[name]((\"[uk-\" + id + \"],[data-uk-\" + id + \"]\")); });\n }\n\n return components[name] = isPlainObject(options) ? opt : options;\n };\n\n UIkit.getComponents = function (element) { return element && element[DATA] || {}; };\n UIkit.getComponent = function (element, name) { return UIkit.getComponents(element)[name]; };\n\n UIkit.connect = function (node) {\n\n if (node[DATA]) {\n for (var name in node[DATA]) {\n node[DATA][name]._callConnected();\n }\n }\n\n for (var i = 0; i < node.attributes.length; i++) {\n\n var name$1 = getComponentName(node.attributes[i].name);\n\n if (name$1 && name$1 in components) {\n UIkit[name$1](node);\n }\n\n }\n\n };\n\n UIkit.disconnect = function (node) {\n for (var name in node[DATA]) {\n node[DATA][name]._callDisconnected();\n }\n };\n\n }\n\n function getComponentName(attribute) {\n return startsWith(attribute, 'uk-') || startsWith(attribute, 'data-uk-')\n ? camelize(attribute.replace('data-uk-', '').replace('uk-', ''))\n : false;\n }\n\n function boot (UIkit) {\n\n var connect = UIkit.connect;\n var disconnect = UIkit.disconnect;\n\n if (!('MutationObserver' in window)) {\n return;\n }\n\n if (document.body) {\n\n init();\n\n } else {\n\n (new MutationObserver(function () {\n\n if (document.body) {\n this.disconnect();\n init();\n }\n\n })).observe(document, {childList: true, subtree: true});\n\n }\n\n function init() {\n\n apply$$1(document.body, connect);\n\n fastdom.flush();\n\n (new MutationObserver(function (mutations) { return mutations.forEach(applyMutation); })).observe(document, {\n childList: true,\n subtree: true,\n characterData: true,\n attributes: true\n });\n\n UIkit._initialized = true;\n }\n\n function applyMutation(mutation) {\n\n var target = mutation.target;\n var type = mutation.type;\n\n var update = type !== 'attributes'\n ? applyChildList(mutation)\n : applyAttribute(mutation);\n\n update && UIkit.update(target);\n\n }\n\n function applyAttribute(ref) {\n var target = ref.target;\n var attributeName = ref.attributeName;\n\n\n if (attributeName === 'href') {\n return true;\n }\n\n var name = getComponentName(attributeName);\n\n if (!name || !(name in UIkit)) {\n return;\n }\n\n if (hasAttr(target, attributeName)) {\n UIkit[name](target);\n return true;\n }\n\n var component = UIkit.getComponent(target, name);\n\n if (component) {\n component.$destroy();\n return true;\n }\n\n }\n\n function applyChildList(ref) {\n var addedNodes = ref.addedNodes;\n var removedNodes = ref.removedNodes;\n\n\n for (var i = 0; i < addedNodes.length; i++) {\n apply$$1(addedNodes[i], connect);\n }\n\n for (var i$1 = 0; i$1 < removedNodes.length; i$1++) {\n apply$$1(removedNodes[i$1], disconnect);\n }\n\n return true;\n }\n\n function apply$$1(node, fn) {\n\n if (node.nodeType !== 1 || hasAttr(node, 'uk-no-boot')) {\n return;\n }\n\n fn(node);\n node = node.firstElementChild;\n while (node) {\n var next = node.nextElementSibling;\n apply$$1(node, fn);\n node = next;\n }\n }\n\n }\n\n function globalAPI (UIkit) {\n\n var DATA = UIkit.data;\n\n UIkit.use = function (plugin) {\n\n if (plugin.installed) {\n return;\n }\n\n plugin.call(null, this);\n plugin.installed = true;\n\n return this;\n };\n\n UIkit.mixin = function (mixin, component) {\n component = (isString(component) ? UIkit.component(component) : component) || this;\n mixin = mergeOptions({}, mixin);\n mixin.mixins = component.options.mixins;\n delete component.options.mixins;\n component.options = mergeOptions(mixin, component.options);\n };\n\n UIkit.extend = function (options) {\n\n options = options || {};\n\n var Super = this;\n var Sub = function UIkitComponent (options) {\n this._init(options);\n };\n\n Sub.prototype = Object.create(Super.prototype);\n Sub.prototype.constructor = Sub;\n Sub.options = mergeOptions(Super.options, options);\n\n Sub['super'] = Super;\n Sub.extend = Super.extend;\n\n return Sub;\n };\n\n UIkit.update = function (element, e) {\n\n e = createEvent(e || 'update');\n element = element ? toNode(element) : document.body;\n\n path(element).map(function (element) { return update(element[DATA], e); });\n apply(element, function (element) { return update(element[DATA], e); });\n\n };\n\n var container;\n Object.defineProperty(UIkit, 'container', {\n\n get: function() {\n return container || document.body;\n },\n\n set: function(element) {\n container = $(element);\n }\n\n });\n\n function update(data$$1, e) {\n\n if (!data$$1) {\n return;\n }\n\n for (var name in data$$1) {\n if (data$$1[name]._isReady) {\n data$$1[name]._callUpdate(e);\n }\n }\n\n }\n\n function path(element) {\n var path = [];\n\n while (element && element !== document.body && element.parentNode) {\n\n element = element.parentNode;\n path.unshift(element);\n\n }\n\n return path;\n }\n\n }\n\n function hooksAPI (UIkit) {\n\n UIkit.prototype._callHook = function (hook) {\n var this$1 = this;\n\n\n var handlers = this.$options[hook];\n\n if (handlers) {\n handlers.forEach(function (handler) { return handler.call(this$1); });\n }\n };\n\n UIkit.prototype._callConnected = function () {\n var this$1 = this;\n\n\n if (this._connected) {\n return;\n }\n\n this._data = {};\n this._initProps();\n\n this._callHook('beforeConnect');\n this._connected = true;\n\n this._initEvents();\n this._initObserver();\n\n this._callHook('connected');\n\n if (!this._isReady) {\n ready(function () { return this$1._callReady(); });\n }\n\n this._callUpdate();\n };\n\n UIkit.prototype._callDisconnected = function () {\n\n if (!this._connected) {\n return;\n }\n\n this._callHook('beforeDisconnect');\n\n if (this._observer) {\n this._observer.disconnect();\n this._observer = null;\n }\n\n this._unbindEvents();\n this._callHook('disconnected');\n\n this._connected = false;\n\n };\n\n UIkit.prototype._callReady = function () {\n\n if (this._isReady) {\n return;\n }\n\n this._isReady = true;\n this._callHook('ready');\n this._resetComputeds();\n this._callUpdate();\n };\n\n UIkit.prototype._callUpdate = function (e) {\n var this$1 = this;\n\n\n e = createEvent(e || 'update');\n\n var type = e.type;\n\n if (includes(['update', 'load', 'resize'], type)) {\n this._resetComputeds();\n }\n\n var updates = this.$options.update;\n var ref = this._frames;\n var reads = ref.reads;\n var writes = ref.writes;\n\n if (!updates) {\n return;\n }\n\n updates.forEach(function (ref, i) {\n var read = ref.read;\n var write = ref.write;\n var events = ref.events;\n\n\n if (type !== 'update' && !includes(events, type)) {\n return;\n }\n\n if (read && !includes(fastdom.reads, reads[i])) {\n reads[i] = fastdom.read(function () {\n\n var result = this$1._connected && read.call(this$1, this$1._data, e);\n\n if (result === false && write) {\n fastdom.clear(writes[i]);\n delete writes[i];\n } else if (isPlainObject(result)) {\n assign(this$1._data, result);\n }\n delete reads[i];\n });\n }\n\n if (write && !includes(fastdom.writes, writes[i])) {\n writes[i] = fastdom.write(function () {\n this$1._connected && write.call(this$1, this$1._data, e);\n delete writes[i];\n });\n }\n\n });\n\n };\n\n }\n\n function stateAPI (UIkit) {\n\n var uid = 0;\n\n UIkit.prototype._init = function (options) {\n\n options = options || {};\n options.data = normalizeData(options, this.constructor.options);\n\n this.$options = mergeOptions(this.constructor.options, options, this);\n this.$el = null;\n this.$props = {};\n\n this._frames = {reads: {}, writes: {}};\n this._events = [];\n\n this._uid = uid++;\n this._initData();\n this._initMethods();\n this._initComputeds();\n this._callHook('created');\n\n if (options.el) {\n this.$mount(options.el);\n }\n };\n\n UIkit.prototype._initData = function () {\n var this$1 = this;\n\n\n var ref = this.$options;\n var data$$1 = ref.data; if ( data$$1 === void 0 ) data$$1 = {};\n\n for (var key in data$$1) {\n this$1.$props[key] = this$1[key] = data$$1[key];\n }\n };\n\n UIkit.prototype._initMethods = function () {\n var this$1 = this;\n\n\n var ref = this.$options;\n var methods = ref.methods;\n\n if (methods) {\n for (var key in methods) {\n this$1[key] = bind(methods[key], this$1);\n }\n }\n };\n\n UIkit.prototype._initComputeds = function () {\n var this$1 = this;\n\n\n var ref = this.$options;\n var computed = ref.computed;\n\n this._resetComputeds();\n\n if (computed) {\n for (var key in computed) {\n registerComputed(this$1, key, computed[key]);\n }\n }\n };\n\n UIkit.prototype._resetComputeds = function () {\n this._computeds = {};\n };\n\n UIkit.prototype._initProps = function (props) {\n var this$1 = this;\n\n\n var key;\n\n this._resetComputeds();\n\n props = props || getProps(this.$options, this.$name);\n\n for (key in props) {\n if (!isUndefined(props[key])) {\n this$1.$props[key] = props[key];\n }\n }\n\n var exclude = [this.$options.computed, this.$options.methods];\n for (key in this$1.$props) {\n if (key in props && notIn(exclude, key)) {\n this$1[key] = this$1.$props[key];\n }\n }\n };\n\n UIkit.prototype._initEvents = function () {\n var this$1 = this;\n\n\n var ref = this.$options;\n var events = ref.events;\n\n if (events) {\n\n events.forEach(function (event) {\n\n if (!hasOwn(event, 'handler')) {\n for (var key in event) {\n registerEvent(this$1, event[key], key);\n }\n } else {\n registerEvent(this$1, event);\n }\n\n });\n }\n };\n\n UIkit.prototype._unbindEvents = function () {\n this._events.forEach(function (unbind) { return unbind(); });\n this._events = [];\n };\n\n UIkit.prototype._initObserver = function () {\n var this$1 = this;\n\n\n var ref = this.$options;\n var attrs = ref.attrs;\n var props = ref.props;\n var el = ref.el;\n if (this._observer || !props || !attrs) {\n return;\n }\n\n attrs = isArray(attrs) ? attrs : Object.keys(props).map(function (key) { return hyphenate(key); });\n\n this._observer = new MutationObserver(function () {\n\n var data$$1 = getProps(this$1.$options, this$1.$name);\n if (attrs.some(function (key) { return !isUndefined(data$$1[key]) && data$$1[key] !== this$1.$props[key]; })) {\n this$1.$reset();\n }\n\n });\n\n this._observer.observe(el, {attributes: true, attributeFilter: attrs.concat([this.$name, (\"data-\" + (this.$name))])});\n };\n\n function getProps(opts, name) {\n\n var data$$1 = {};\n var args = opts.args; if ( args === void 0 ) args = [];\n var props = opts.props; if ( props === void 0 ) props = {};\n var el = opts.el;\n\n if (!props) {\n return data$$1;\n }\n\n for (var key in props) {\n var prop = hyphenate(key);\n if (hasAttr(el, prop)) {\n\n var value = coerce(props[key], attr(el, prop));\n\n if (prop === 'target' && (!value || startsWith(value, '_'))) {\n continue;\n }\n\n data$$1[key] = value;\n }\n }\n\n var options = parseOptions(data(el, name), args);\n\n for (var key$1 in options) {\n var prop$1 = camelize(key$1);\n if (props[prop$1] !== undefined) {\n data$$1[prop$1] = coerce(props[prop$1], options[key$1]);\n }\n }\n\n return data$$1;\n }\n\n function registerComputed(component, key, cb) {\n Object.defineProperty(component, key, {\n\n enumerable: true,\n\n get: function() {\n\n var _computeds = component._computeds;\n var $props = component.$props;\n var $el = component.$el;\n\n if (!hasOwn(_computeds, key)) {\n _computeds[key] = cb.call(component, $props, $el);\n }\n\n return _computeds[key];\n },\n\n set: function(value) {\n component._computeds[key] = value;\n }\n\n });\n }\n\n function registerEvent(component, event, key) {\n\n if (!isPlainObject(event)) {\n event = ({name: key, handler: event});\n }\n\n var name = event.name;\n var el = event.el;\n var handler = event.handler;\n var capture = event.capture;\n var delegate = event.delegate;\n var filter$$1 = event.filter;\n var self = event.self;\n el = isFunction(el)\n ? el.call(component)\n : el || component.$el;\n\n if (isArray(el)) {\n el.forEach(function (el) { return registerEvent(component, assign({}, event, {el: el}), key); });\n return;\n }\n\n if (!el || filter$$1 && !filter$$1.call(component)) {\n return;\n }\n\n handler = detail(isString(handler) ? component[handler] : bind(handler, component));\n\n if (self) {\n handler = selfFilter(handler);\n }\n\n component._events.push(\n on(\n el,\n name,\n !delegate\n ? null\n : isString(delegate)\n ? delegate\n : delegate.call(component),\n handler,\n capture\n )\n );\n\n }\n\n function selfFilter(handler) {\n return function selfHandler(e) {\n if (e.target === e.currentTarget || e.target === e.current) {\n return handler.call(null, e);\n }\n };\n }\n\n function notIn(options, key) {\n return options.every(function (arr) { return !arr || !hasOwn(arr, key); });\n }\n\n function detail(listener) {\n return function (e) { return isArray(e.detail) ? listener.apply(void 0, [e].concat(e.detail)) : listener(e); };\n }\n\n function coerce(type, value) {\n\n if (type === Boolean) {\n return toBoolean(value);\n } else if (type === Number) {\n return toNumber(value);\n } else if (type === 'list') {\n return toList(value);\n } else if (type === 'media') {\n return toMedia(value);\n }\n\n return type ? type(value) : value;\n }\n\n function toMedia(value) {\n\n if (isString(value)) {\n if (value[0] === '@') {\n var name = \"media-\" + (value.substr(1));\n value = toFloat(getCssVar(name));\n } else if (isNaN(value)) {\n return value;\n }\n }\n\n return value && !isNaN(value) ? (\"(min-width: \" + value + \"px)\") : false;\n }\n\n function normalizeData(ref, ref$1) {\n var data$$1 = ref.data;\n var el = ref.el;\n var args = ref$1.args;\n var props = ref$1.props; if ( props === void 0 ) props = {};\n\n data$$1 = isArray(data$$1)\n ? args && args.length\n ? data$$1.slice(0, args.length).reduce(function (data$$1, value, index$$1) {\n if (isPlainObject(value)) {\n assign(data$$1, value);\n } else {\n data$$1[args[index$$1]] = value;\n }\n return data$$1;\n }, {})\n : undefined\n : data$$1;\n\n if (data$$1) {\n for (var key in data$$1) {\n if (isUndefined(data$$1[key])) {\n delete data$$1[key];\n } else {\n data$$1[key] = props[key] ? coerce(props[key], data$$1[key], el) : data$$1[key];\n }\n }\n }\n\n return data$$1;\n }\n }\n\n function instanceAPI (UIkit) {\n\n var DATA = UIkit.data;\n\n UIkit.prototype.$mount = function (el) {\n\n var ref = this.$options;\n var name = ref.name;\n\n if (!el[DATA]) {\n el[DATA] = {};\n }\n\n if (el[DATA][name]) {\n return;\n }\n\n el[DATA][name] = this;\n\n this.$el = this.$options.el = this.$options.el || el;\n\n this._callHook('init');\n\n if (within(el, document)) {\n this._callConnected();\n }\n };\n\n UIkit.prototype.$emit = function (e) {\n this._callUpdate(e);\n };\n\n UIkit.prototype.$reset = function () {\n this._callDisconnected();\n this._callConnected();\n };\n\n UIkit.prototype.$destroy = function (removeEl) {\n if ( removeEl === void 0 ) removeEl = false;\n\n\n var ref = this.$options;\n var el = ref.el;\n var name = ref.name;\n\n if (el) {\n this._callDisconnected();\n }\n\n this._callHook('destroy');\n\n if (!el || !el[DATA]) {\n return;\n }\n\n delete el[DATA][name];\n\n if (!Object.keys(el[DATA]).length) {\n delete el[DATA];\n }\n\n if (removeEl) {\n remove(this.$el);\n }\n };\n\n UIkit.prototype.$create = function (component, element, data$$1) {\n return UIkit[component](element, data$$1);\n };\n\n UIkit.prototype.$update = UIkit.update;\n UIkit.prototype.$getComponent = UIkit.getComponent;\n\n var names = {};\n Object.defineProperties(UIkit.prototype, {\n\n $container: Object.getOwnPropertyDescriptor(UIkit, 'container'),\n\n $name: {\n\n get: function() {\n var ref = this.$options;\n var name = ref.name;\n\n if (!names[name]) {\n names[name] = UIkit.prefix + hyphenate(name);\n }\n\n return names[name];\n }\n\n }\n\n });\n\n }\n\n var UIkit = function (options) {\n this._init(options);\n };\n\n UIkit.util = util;\n UIkit.data = '__uikit__';\n UIkit.prefix = 'uk-';\n UIkit.options = {};\n\n globalAPI(UIkit);\n hooksAPI(UIkit);\n stateAPI(UIkit);\n componentAPI(UIkit);\n instanceAPI(UIkit);\n\n var Class = {\n\n connected: function() {\n addClass(this.$el, this.$name);\n }\n\n };\n\n var Togglable = {\n\n props: {\n cls: Boolean,\n animation: 'list',\n duration: Number,\n origin: String,\n transition: String,\n queued: Boolean\n },\n\n data: {\n cls: false,\n animation: [false],\n duration: 200,\n origin: false,\n transition: 'linear',\n queued: false,\n\n initProps: {\n overflow: '',\n height: '',\n paddingTop: '',\n paddingBottom: '',\n marginTop: '',\n marginBottom: ''\n },\n\n hideProps: {\n overflow: 'hidden',\n height: 0,\n paddingTop: 0,\n paddingBottom: 0,\n marginTop: 0,\n marginBottom: 0\n }\n\n },\n\n computed: {\n\n hasAnimation: function(ref) {\n var animation = ref.animation;\n\n return !!animation[0];\n },\n\n hasTransition: function(ref) {\n var animation = ref.animation;\n\n return this.hasAnimation && animation[0] === true;\n }\n\n },\n\n methods: {\n\n toggleElement: function(targets, show, animate$$1) {\n var this$1 = this;\n\n return new Promise$1(function (resolve) {\n\n targets = toNodes(targets);\n\n var all = function (targets) { return Promise$1.all(targets.map(function (el) { return this$1._toggleElement(el, show, animate$$1); })); };\n var toggled = targets.filter(function (el) { return this$1.isToggled(el); });\n var untoggled = targets.filter(function (el) { return !includes(toggled, el); });\n\n var p;\n\n if (!this$1.queued || !isUndefined(animate$$1) || !isUndefined(show) || !this$1.hasAnimation || targets.length < 2) {\n\n p = all(untoggled.concat(toggled));\n\n } else {\n\n var body = document.body;\n var scroll = body.scrollTop;\n var el = toggled[0];\n var inProgress = Animation.inProgress(el) && hasClass(el, 'uk-animation-leave')\n || Transition.inProgress(el) && el.style.height === '0px';\n\n p = all(toggled);\n\n if (!inProgress) {\n p = p.then(function () {\n var p = all(untoggled);\n body.scrollTop = scroll;\n return p;\n });\n }\n\n }\n\n p.then(resolve, noop);\n\n });\n },\n\n toggleNow: function(targets, show) {\n var this$1 = this;\n\n return new Promise$1(function (resolve) { return Promise$1.all(toNodes(targets).map(function (el) { return this$1._toggleElement(el, show, false); })).then(resolve, noop); });\n },\n\n isToggled: function(el) {\n var nodes = toNodes(el || this.$el);\n return this.cls\n ? hasClass(nodes, this.cls.split(' ')[0])\n : !hasAttr(nodes, 'hidden');\n },\n\n updateAria: function(el) {\n if (this.cls === false) {\n attr(el, 'aria-hidden', !this.isToggled(el));\n }\n },\n\n _toggleElement: function(el, show, animate$$1) {\n var this$1 = this;\n\n\n show = isBoolean(show)\n ? show\n : Animation.inProgress(el)\n ? hasClass(el, 'uk-animation-leave')\n : Transition.inProgress(el)\n ? el.style.height === '0px'\n : !this.isToggled(el);\n\n if (!trigger(el, (\"before\" + (show ? 'show' : 'hide')), [this])) {\n return Promise$1.reject();\n }\n\n var promise = (animate$$1 === false || !this.hasAnimation\n ? this._toggleImmediate\n : this.hasTransition\n ? this._toggleHeight\n : this._toggleAnimation\n )(el, show);\n\n trigger(el, show ? 'show' : 'hide', [this]);\n\n return promise.then(function () {\n trigger(el, show ? 'shown' : 'hidden', [this$1]);\n this$1.$update(el);\n });\n },\n\n _toggle: function(el, toggled) {\n\n if (!el) {\n return;\n }\n\n var changed;\n if (this.cls) {\n changed = includes(this.cls, ' ') || Boolean(toggled) !== hasClass(el, this.cls);\n changed && toggleClass(el, this.cls, includes(this.cls, ' ') ? undefined : toggled);\n } else {\n changed = Boolean(toggled) === hasAttr(el, 'hidden');\n changed && attr(el, 'hidden', !toggled ? '' : null);\n }\n\n $$('[autofocus]', el).some(function (el) { return isVisible(el) && (el.focus() || true); });\n\n this.updateAria(el);\n changed && this.$update(el);\n },\n\n _toggleImmediate: function(el, show) {\n this._toggle(el, show);\n return Promise$1.resolve();\n },\n\n _toggleHeight: function(el, show) {\n var this$1 = this;\n\n\n var inProgress = Transition.inProgress(el);\n var inner = el.hasChildNodes ? toFloat(css(el.firstElementChild, 'marginTop')) + toFloat(css(el.lastElementChild, 'marginBottom')) : 0;\n var currentHeight = isVisible(el) ? height(el) + (inProgress ? 0 : inner) : 0;\n\n Transition.cancel(el);\n\n if (!this.isToggled(el)) {\n this._toggle(el, true);\n }\n\n height(el, '');\n\n // Update child components first\n fastdom.flush();\n\n var endHeight = height(el) + (inProgress ? 0 : inner);\n height(el, currentHeight);\n\n return (show\n ? Transition.start(el, assign({}, this.initProps, {overflow: 'hidden', height: endHeight}), Math.round(this.duration * (1 - currentHeight / endHeight)), this.transition)\n : Transition.start(el, this.hideProps, Math.round(this.duration * (currentHeight / endHeight)), this.transition).then(function () { return this$1._toggle(el, false); })\n ).then(function () { return css(el, this$1.initProps); });\n\n },\n\n _toggleAnimation: function(el, show) {\n var this$1 = this;\n\n\n Animation.cancel(el);\n\n if (show) {\n this._toggle(el, true);\n return Animation.in(el, this.animation[0], this.duration, this.origin);\n }\n\n return Animation.out(el, this.animation[1] || this.animation[0], this.duration, this.origin).then(function () { return this$1._toggle(el, false); });\n }\n\n }\n\n };\n\n var Accordion = {\n\n mixins: [Class, Togglable],\n\n props: {\n targets: String,\n active: null,\n collapsible: Boolean,\n multiple: Boolean,\n toggle: String,\n content: String,\n transition: String\n },\n\n data: {\n targets: '> *',\n active: false,\n animation: [true],\n collapsible: true,\n multiple: false,\n clsOpen: 'uk-open',\n toggle: '> .uk-accordion-title',\n content: '> .uk-accordion-content',\n transition: 'ease'\n },\n\n computed: {\n\n items: function(ref, $el) {\n var targets = ref.targets;\n\n return $$(targets, $el);\n }\n\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return ((this.targets) + \" \" + (this.$props.toggle));\n },\n\n handler: function(e) {\n e.preventDefault();\n this.toggle(index($$(((this.targets) + \" \" + (this.$props.toggle)), this.$el), e.current));\n }\n\n }\n\n ],\n\n connected: function() {\n\n if (this.active === false) {\n return;\n }\n\n var active = this.items[Number(this.active)];\n if (active && !hasClass(active, this.clsOpen)) {\n this.toggle(active, false);\n }\n },\n\n update: function() {\n var this$1 = this;\n\n\n this.items.forEach(function (el) { return this$1._toggleImmediate($(this$1.content, el), hasClass(el, this$1.clsOpen)); });\n\n var active = !this.collapsible && !hasClass(this.items, this.clsOpen) && this.items[0];\n if (active) {\n this.toggle(active, false);\n }\n },\n\n methods: {\n\n toggle: function(item, animate$$1) {\n var this$1 = this;\n\n\n var index$$1 = getIndex(item, this.items);\n var active = filter(this.items, (\".\" + (this.clsOpen)));\n\n item = this.items[index$$1];\n\n item && [item]\n .concat(!this.multiple && !includes(active, item) && active || [])\n .forEach(function (el) {\n\n var isItem = el === item;\n var state = isItem && !hasClass(el, this$1.clsOpen);\n\n if (!state && isItem && !this$1.collapsible && active.length < 2) {\n return;\n }\n\n toggleClass(el, this$1.clsOpen, state);\n\n var content = el._wrapper ? el._wrapper.firstElementChild : $(this$1.content, el);\n\n if (!el._wrapper) {\n el._wrapper = wrapAll(content, '<div>');\n attr(el._wrapper, 'hidden', state ? '' : null);\n }\n\n this$1._toggleImmediate(content, true);\n this$1.toggleElement(el._wrapper, state, animate$$1).then(function () {\n if (hasClass(el, this$1.clsOpen) === state) {\n\n if (!state) {\n this$1._toggleImmediate(content, false);\n }\n\n el._wrapper = null;\n unwrap(content);\n }\n });\n\n });\n }\n\n }\n\n };\n\n var Alert = {\n\n attrs: true,\n\n mixins: [Class, Togglable],\n\n args: 'animation',\n\n props: {\n close: String\n },\n\n data: {\n animation: [true],\n selClose: '.uk-alert-close',\n duration: 150,\n hideProps: assign({opacity: 0}, Togglable.data.hideProps)\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return this.selClose;\n },\n\n handler: function(e) {\n e.preventDefault();\n this.close();\n }\n\n }\n\n ],\n\n methods: {\n\n close: function() {\n var this$1 = this;\n\n this.toggleElement(this.$el).then(function () { return this$1.$destroy(true); });\n }\n\n }\n\n };\n\n function Core (UIkit) {\n\n ready(function () {\n\n var scroll = 0;\n var started = 0;\n\n on(window, 'load resize', function (e) { return UIkit.update(null, e); });\n on(window, 'scroll', function (e) {\n e.dir = scroll <= window.pageYOffset ? 'down' : 'up';\n e.pageYOffset = scroll = window.pageYOffset;\n UIkit.update(null, e);\n }, {capture: true, passive: false});\n\n on(document, 'animationstart', function (ref) {\n var target = ref.target;\n\n if ((css(target, 'animationName') || '').match(/^uk-.*(left|right)/)) {\n\n started++;\n css(document.body, 'overflowX', 'hidden');\n setTimeout(function () {\n if (!--started) {\n css(document.body, 'overflowX', '');\n }\n }, toMs(css(target, 'animationDuration')) + 100);\n }\n }, true);\n\n if (!hasTouch) {\n return;\n }\n\n var cls = 'uk-hover';\n\n on(document, 'tap', function (ref) {\n var target = ref.target;\n\n return $$((\".\" + cls)).forEach(function (el) { return !within(target, el) && removeClass(el, cls); }\n );\n }\n );\n\n Object.defineProperty(UIkit, 'hoverSelector', {\n\n set: function(selector) {\n on(document, 'tap', selector, function (ref) {\n var current = ref.current;\n\n return addClass(current, cls);\n });\n }\n\n });\n\n UIkit.hoverSelector = '.uk-animation-toggle, .uk-transition-toggle, [uk-hover]';\n\n });\n\n }\n\n var Video = {\n\n args: 'autoplay',\n\n props: {\n automute: Boolean,\n autoplay: Boolean,\n },\n\n data: {\n automute: false,\n autoplay: true\n },\n\n computed: {\n\n inView: function(ref) {\n var autoplay = ref.autoplay;\n\n return autoplay === 'inview';\n }\n\n },\n\n connected: function() {\n\n if (this.inView && !hasAttr(this.$el, 'preload')) {\n this.$el.preload = 'none';\n }\n\n },\n\n ready: function() {\n\n this.player = new Player(this.$el);\n\n if (this.automute) {\n this.player.mute();\n }\n\n },\n\n update: [\n\n {\n\n read: function(_, ref) {\n var type = ref.type;\n\n\n return !this.player || (type === 'scroll' || type === 'resize') && !this.inView\n ? false\n : {\n visible: isVisible(this.$el) && css(this.$el, 'visibility') !== 'hidden',\n inView: this.inView && isInView(this.$el)\n };\n },\n\n write: function(ref) {\n var visible = ref.visible;\n var inView = ref.inView;\n\n\n if (!visible || this.inView && !inView) {\n this.player.pause();\n } else if (this.autoplay === true || this.inView && inView) {\n this.player.play();\n }\n\n },\n\n events: ['load', 'resize', 'scroll']\n\n }\n\n ]\n\n };\n\n var Cover = {\n\n mixins: [Class, Video],\n\n props: {\n width: Number,\n height: Number\n },\n\n data: {\n automute: true\n },\n\n update: {\n\n write: function() {\n\n var el = this.$el;\n\n if (!isVisible(el)) {\n return;\n }\n\n var ref = el.parentNode;\n var height$$1 = ref.offsetHeight;\n var width$$1 = ref.offsetWidth;\n\n css(\n css(el, {width: '', height: ''}),\n Dimensions.cover(\n {\n width: this.width || el.clientWidth,\n height: this.height || el.clientHeight\n },\n {\n width: width$$1 + (width$$1 % 2 ? 1 : 0),\n height: height$$1 + (height$$1 % 2 ? 1 : 0)\n }\n )\n );\n\n },\n\n events: ['load', 'resize']\n\n },\n\n events: {\n\n loadedmetadata: function() {\n this.$emit();\n }\n\n }\n\n };\n\n var Position = {\n\n props: {\n pos: String,\n offset: null,\n flip: Boolean,\n clsPos: String\n },\n\n data: {\n pos: (\"bottom-\" + (!isRtl ? 'left' : 'right')),\n flip: true,\n offset: false,\n clsPos: ''\n },\n\n computed: {\n\n pos: function(ref) {\n var pos = ref.pos;\n\n return (pos + (!includes(pos, '-') ? '-center' : '')).split('-');\n },\n\n dir: function() {\n return this.pos[0];\n },\n\n align: function() {\n return this.pos[1];\n }\n\n },\n\n methods: {\n\n positionAt: function(element, target, boundary) {\n\n removeClasses(element, ((this.clsPos) + \"-(top|bottom|left|right)(-[a-z]+)?\"));\n css(element, {top: '', left: ''});\n\n var node;\n var ref = this;\n var offset$$1 = ref.offset;\n\n offset$$1 = isNumeric(offset$$1)\n ? offset$$1\n : (node = $(offset$$1))\n ? offset(node)[axis === 'x' ? 'left' : 'top'] - offset(target)[axis === 'x' ? 'right' : 'bottom']\n : 0;\n\n var axis = this.getAxis();\n var ref$1 = positionAt(\n element,\n target,\n axis === 'x' ? ((flipPosition(this.dir)) + \" \" + (this.align)) : ((this.align) + \" \" + (flipPosition(this.dir))),\n axis === 'x' ? ((this.dir) + \" \" + (this.align)) : ((this.align) + \" \" + (this.dir)),\n axis === 'x' ? (\"\" + (this.dir === 'left' ? -offset$$1 : offset$$1)) : (\" \" + (this.dir === 'top' ? -offset$$1 : offset$$1)),\n null,\n this.flip,\n boundary\n ).target;\n var x = ref$1.x;\n var y = ref$1.y;\n\n this.dir = axis === 'x' ? x : y;\n this.align = axis === 'x' ? y : x;\n\n toggleClass(element, ((this.clsPos) + \"-\" + (this.dir) + \"-\" + (this.align)), this.offset === false);\n\n },\n\n getAxis: function() {\n return this.dir === 'top' || this.dir === 'bottom' ? 'y' : 'x';\n }\n\n }\n\n };\n\n var active;\n\n var Drop = {\n\n mixins: [Position, Togglable],\n\n args: 'pos',\n\n props: {\n mode: 'list',\n toggle: Boolean,\n boundary: Boolean,\n boundaryAlign: Boolean,\n delayShow: Number,\n delayHide: Number,\n clsDrop: String\n },\n\n data: {\n mode: ['click', 'hover'],\n toggle: '- *',\n boundary: window,\n boundaryAlign: false,\n delayShow: 0,\n delayHide: 800,\n clsDrop: false,\n hoverIdle: 200,\n animation: ['uk-animation-fade'],\n cls: 'uk-open'\n },\n\n computed: {\n\n boundary: function(ref, $el) {\n var boundary = ref.boundary;\n\n return query(boundary, $el);\n },\n\n clsDrop: function(ref) {\n var clsDrop = ref.clsDrop;\n\n return clsDrop || (\"uk-\" + (this.$options.name));\n },\n\n clsPos: function() {\n return this.clsDrop;\n }\n\n },\n\n init: function() {\n this.tracker = new MouseTracker();\n },\n\n connected: function() {\n\n addClass(this.$el, this.clsDrop);\n\n var ref = this.$props;\n var toggle = ref.toggle;\n this.toggle = toggle && this.$create('toggle', query(toggle, this.$el), {\n target: this.$el,\n mode: this.mode\n });\n\n this.updateAria(this.$el);\n\n },\n\n events: [\n\n\n {\n\n name: 'click',\n\n delegate: function() {\n return (\".\" + (this.clsDrop) + \"-close\");\n },\n\n handler: function(e) {\n e.preventDefault();\n this.hide(false);\n }\n\n },\n\n {\n\n name: 'click',\n\n delegate: function() {\n return 'a[href^=\"#\"]';\n },\n\n handler: function(e) {\n\n if (e.defaultPrevented) {\n return;\n }\n\n var id = e.target.hash;\n\n if (!id) {\n e.preventDefault();\n }\n\n if (!id || !within(id, this.$el)) {\n this.hide(false);\n }\n }\n\n },\n\n {\n\n name: 'beforescroll',\n\n handler: function() {\n this.hide(false);\n }\n\n },\n\n {\n\n name: 'toggle',\n\n self: true,\n\n handler: function(e, toggle) {\n\n e.preventDefault();\n\n if (this.isToggled()) {\n this.hide(false);\n } else {\n this.show(toggle, false);\n }\n }\n\n },\n\n {\n\n name: pointerEnter,\n\n filter: function() {\n return includes(this.mode, 'hover');\n },\n\n handler: function(e) {\n\n if (isTouch(e)) {\n return;\n }\n\n if (active\n && active !== this\n && active.toggle\n && includes(active.toggle.mode, 'hover')\n && !within(e.target, active.toggle.$el)\n && !pointInRect({x: e.pageX, y: e.pageY}, offset(active.$el))\n ) {\n active.hide(false);\n }\n\n e.preventDefault();\n this.show(this.toggle);\n }\n\n },\n\n {\n\n name: 'toggleshow',\n\n handler: function(e, toggle) {\n\n if (toggle && !includes(toggle.target, this.$el)) {\n return;\n }\n\n e.preventDefault();\n this.show(toggle || this.toggle);\n }\n\n },\n\n {\n\n name: (\"togglehide \" + pointerLeave),\n\n handler: function(e, toggle) {\n\n if (isTouch(e) || toggle && !includes(toggle.target, this.$el)) {\n return;\n }\n\n e.preventDefault();\n\n if (this.toggle && includes(this.toggle.mode, 'hover')) {\n this.hide();\n }\n }\n\n },\n\n {\n\n name: 'beforeshow',\n\n self: true,\n\n handler: function() {\n this.clearTimers();\n Animation.cancel(this.$el);\n this.position();\n }\n\n },\n\n {\n\n name: 'show',\n\n self: true,\n\n handler: function() {\n this.tracker.init();\n if (this.toggle) {\n addClass(this.toggle.$el, this.cls);\n attr(this.toggle.$el, 'aria-expanded', 'true');\n }\n registerEvent();\n }\n\n },\n\n {\n\n name: 'beforehide',\n\n self: true,\n\n handler: function() {\n this.clearTimers();\n }\n\n },\n\n {\n\n name: 'hide',\n\n handler: function(ref) {\n var target = ref.target;\n\n\n if (this.$el !== target) {\n active = active === null && within(target, this.$el) && this.isToggled() ? this : active;\n return;\n }\n\n active = this.isActive() ? null : active;\n\n if (this.toggle) {\n removeClass(this.toggle.$el, this.cls);\n attr(this.toggle.$el, 'aria-expanded', 'false');\n this.toggle.$el.blur();\n $$('a, button', this.toggle.$el).forEach(function (el) { return el.blur(); });\n }\n\n this.tracker.cancel();\n }\n\n }\n\n ],\n\n update: {\n\n write: function() {\n\n if (this.isToggled() && !Animation.inProgress(this.$el)) {\n this.position();\n }\n\n },\n\n events: ['resize']\n\n },\n\n methods: {\n\n show: function(toggle, delay) {\n var this$1 = this;\n if ( delay === void 0 ) delay = true;\n\n\n var show = function () { return !this$1.isToggled() && this$1.toggleElement(this$1.$el, true); };\n var tryShow = function () {\n\n this$1.toggle = toggle || this$1.toggle;\n\n this$1.clearTimers();\n\n if (this$1.isActive()) {\n return;\n } else if (delay && active && active !== this$1 && active.isDelaying) {\n this$1.showTimer = setTimeout(this$1.show, 10);\n return;\n } else if (this$1.isParentOf(active)) {\n\n if (active.hideTimer) {\n active.hide(false);\n } else {\n return;\n }\n\n } else if (active && !this$1.isChildOf(active) && !this$1.isParentOf(active)) {\n\n var prev;\n while (active && active !== prev && !this$1.isChildOf(active)) {\n prev = active;\n active.hide(false);\n }\n\n }\n\n if (delay && this$1.delayShow) {\n this$1.showTimer = setTimeout(show, this$1.delayShow);\n } else {\n show();\n }\n\n active = this$1;\n };\n\n if (toggle && this.toggle && toggle.$el !== this.toggle.$el) {\n\n once(this.$el, 'hide', tryShow);\n this.hide(false);\n\n } else {\n tryShow();\n }\n },\n\n hide: function(delay) {\n var this$1 = this;\n if ( delay === void 0 ) delay = true;\n\n\n var hide = function () { return this$1.toggleNow(this$1.$el, false); };\n\n this.clearTimers();\n\n this.isDelaying = this.tracker.movesTo(this.$el);\n\n if (delay && this.isDelaying) {\n this.hideTimer = setTimeout(this.hide, this.hoverIdle);\n } else if (delay && this.delayHide) {\n this.hideTimer = setTimeout(hide, this.delayHide);\n } else {\n hide();\n }\n },\n\n clearTimers: function() {\n clearTimeout(this.showTimer);\n clearTimeout(this.hideTimer);\n this.showTimer = null;\n this.hideTimer = null;\n this.isDelaying = false;\n },\n\n isActive: function() {\n return active === this;\n },\n\n isChildOf: function(drop) {\n return drop && drop !== this && within(this.$el, drop.$el);\n },\n\n isParentOf: function(drop) {\n return drop && drop !== this && within(drop.$el, this.$el);\n },\n\n position: function() {\n\n removeClasses(this.$el, ((this.clsDrop) + \"-(stack|boundary)\"));\n css(this.$el, {top: '', left: '', display: 'block'});\n toggleClass(this.$el, ((this.clsDrop) + \"-boundary\"), this.boundaryAlign);\n\n var boundary = offset(this.boundary);\n var alignTo = this.boundaryAlign ? boundary : offset(this.toggle.$el);\n\n if (this.align === 'justify') {\n var prop = this.getAxis() === 'y' ? 'width' : 'height';\n css(this.$el, prop, alignTo[prop]);\n } else if (this.$el.offsetWidth > Math.max(boundary.right - alignTo.left, alignTo.right - boundary.left)) {\n addClass(this.$el, ((this.clsDrop) + \"-stack\"));\n }\n\n this.positionAt(this.$el, this.boundaryAlign ? this.boundary : this.toggle.$el, this.boundary);\n\n css(this.$el, 'display', '');\n\n }\n\n }\n\n };\n\n var registered;\n\n function registerEvent() {\n\n if (registered) {\n return;\n }\n\n registered = true;\n on(document, 'click', function (ref) {\n var target = ref.target;\n var defaultPrevented = ref.defaultPrevented;\n\n var prev;\n\n if (defaultPrevented) {\n return;\n }\n\n while (active && active !== prev && !within(target, active.$el) && !(active.toggle && within(target, active.toggle.$el))) {\n prev = active;\n active.hide(false);\n }\n });\n }\n\n var Dropdown = {\n\n extends: Drop\n\n };\n\n var FormCustom = {\n\n mixins: [Class],\n\n args: 'target',\n\n props: {\n target: Boolean\n },\n\n data: {\n target: false\n },\n\n computed: {\n\n input: function(_, $el) {\n return $(selInput, $el);\n },\n\n state: function() {\n return this.input.nextElementSibling;\n },\n\n target: function(ref, $el) {\n var target = ref.target;\n\n return target && (target === true\n && this.input.parentNode === $el\n && this.input.nextElementSibling\n || query(target, $el));\n }\n\n },\n\n update: function() {\n\n var ref = this;\n var target = ref.target;\n var input = ref.input;\n\n if (!target) {\n return;\n }\n\n var option;\n var prop = isInput(target) ? 'value' : 'textContent';\n var prev = target[prop];\n var value = input.files && input.files[0]\n ? input.files[0].name\n : matches(input, 'select') && (option = $$('option', input).filter(function (el) { return el.selected; })[0])\n ? option.textContent\n : input.value;\n\n if (prev !== value) {\n target[prop] = value;\n }\n\n },\n\n events: [\n\n {\n\n name: 'focusin focusout mouseenter mouseleave',\n\n delegate: selInput,\n\n handler: function(ref) {\n var type = ref.type;\n var current = ref.current;\n\n if (current === this.input) {\n toggleClass(\n this.state,\n (\"uk-\" + (includes(type, 'focus') ? 'focus' : 'hover')),\n includes(['focusin', 'mouseenter'], type)\n );\n }\n }\n\n },\n\n {\n\n name: 'change',\n\n handler: function() {\n this.$emit();\n }\n\n }\n\n ]\n\n };\n\n // Deprecated\n var Gif = {\n\n update: {\n\n read: function(data$$1) {\n\n var inview = isInView(this.$el);\n\n if (!inview || data$$1.isInView === inview) {\n return false;\n }\n\n data$$1.isInView = inview;\n },\n\n write: function() {\n this.$el.src = this.$el.src;\n },\n\n events: ['scroll', 'load', 'resize']\n }\n\n };\n\n var Margin = {\n\n props: {\n margin: String,\n firstColumn: Boolean\n },\n\n data: {\n margin: 'uk-margin-small-top',\n firstColumn: 'uk-first-column'\n },\n\n update: {\n\n read: function(data$$1) {\n\n var items = this.$el.children;\n var rows = [[]];\n\n if (!items.length || !isVisible(this.$el)) {\n return data$$1.rows = rows;\n }\n\n data$$1.rows = getRows(items);\n data$$1.stacks = !data$$1.rows.some(function (row) { return row.length > 1; });\n\n },\n\n write: function(ref) {\n var this$1 = this;\n var rows = ref.rows;\n\n\n rows.forEach(function (row, i) { return row.forEach(function (el, j) {\n toggleClass(el, this$1.margin, i !== 0);\n toggleClass(el, this$1.firstColumn, j === 0);\n }); }\n );\n\n },\n\n events: ['load', 'resize']\n\n }\n\n };\n\n function getRows(items) {\n var rows = [[]];\n\n for (var i = 0; i < items.length; i++) {\n\n var el = items[i];\n var dim = getOffset(el);\n\n if (!dim.height) {\n continue;\n }\n\n for (var j = rows.length - 1; j >= 0; j--) {\n\n var row = rows[j];\n\n if (!row[0]) {\n row.push(el);\n break;\n }\n\n var leftDim = getOffset(row[0]);\n\n if (dim.top >= leftDim.bottom - 1) {\n rows.push([el]);\n break;\n }\n\n if (dim.bottom > leftDim.top) {\n\n if (dim.left < leftDim.left && !isRtl) {\n row.unshift(el);\n break;\n }\n\n row.push(el);\n break;\n }\n\n if (j === 0) {\n rows.unshift([el]);\n break;\n }\n\n }\n\n }\n\n return rows;\n\n }\n\n function getOffset(element) {\n\n var offsetTop = element.offsetTop;\n var offsetLeft = element.offsetLeft;\n var offsetHeight = element.offsetHeight;\n\n return {\n top: offsetTop,\n left: offsetLeft,\n height: offsetHeight,\n bottom: offsetTop + offsetHeight\n };\n }\n\n var Grid = {\n\n extends: Margin,\n\n mixins: [Class],\n\n attrs: true,\n\n name: 'grid',\n\n props: {\n masonry: Boolean,\n parallax: Number\n },\n\n data: {\n margin: 'uk-grid-margin',\n clsStack: 'uk-grid-stack',\n masonry: false,\n parallax: 0\n },\n\n computed: {\n\n parallax: function(ref) {\n var parallax = ref.parallax;\n\n return Math.abs(parallax);\n }\n\n },\n\n connected: function() {\n this.masonry && addClass(this.$el, 'uk-flex-top uk-flex-wrap-top');\n },\n\n update: [\n\n {\n\n read: function(ref) {\n var rows = ref.rows;\n\n\n if (this.masonry || this.parallax) {\n rows = rows.map(function (elements) { return sortBy(elements, 'offsetLeft'); });\n }\n\n var translates = false;\n var elHeight = false;\n\n if (this.masonry) {\n\n var height$$1 = 0;\n\n translates = rows.reduce(function (translates, row, i) {\n\n translates[i] = row.map(function (_, j) { return i === 0 ? 0 : toFloat(translates[i - 1][j]) + (height$$1 - toFloat(rows[i - 1][j] && rows[i - 1][j].offsetHeight)); });\n height$$1 = row.reduce(function (height$$1, el) { return Math.max(height$$1, el.offsetHeight); }, 0);\n\n return translates;\n\n }, []);\n\n elHeight = maxColumnHeight(rows) + getMarginTop(this.$el, this.margin) * (rows.length - 1);\n\n }\n\n return {rows: rows, translates: translates, height: elHeight};\n\n },\n\n write: function(ref) {\n var rows = ref.rows;\n var stacks = ref.stacks;\n var height$$1 = ref.height;\n\n\n toggleClass(this.$el, this.clsStack, stacks);\n\n css(this.$el, 'paddingBottom', this.parallax && rows.some(function (row) { return row.length > 1; }) ? this.parallax : '');\n\n height$$1 && css(this.$el, 'minHeight', height$$1);\n\n },\n\n events: ['load', 'resize']\n\n },\n\n {\n\n read: function(ref) {\n var rows = ref.rows;\n var height$$1 = ref.height;\n\n return {\n scrolled: this.parallax && rows.some(function (row) { return row.length > 1; })\n ? scrolledOver(this.$el, height$$1 ? height$$1 - height(this.$el) : 0) * this.parallax\n : false\n };\n },\n\n write: function(ref) {\n var rows = ref.rows;\n var scrolled = ref.scrolled;\n var translates = ref.translates;\n\n\n if (scrolled === false && !translates) {\n return;\n }\n\n rows.forEach(function (row, i) { return row.forEach(function (el, j) { return css(el, 'transform', !scrolled && !translates ? '' : (\"translateY(\" + ((translates && -translates[i][j]) + (scrolled ? j % 2 ? scrolled : scrolled / 8 : 0)) + \"px)\")); }\n ); }\n );\n\n },\n\n events: ['scroll', 'load', 'resize']\n\n }\n\n ]\n\n };\n\n function getMarginTop(root, cls) {\n\n var nodes = toNodes(root.children);\n var ref = nodes.filter(function (el) { return hasClass(el, cls); });\n var node = ref[0];\n\n return toFloat(node\n ? css(node, 'marginTop')\n : css(nodes[0], 'paddingLeft'));\n }\n\n function maxColumnHeight(rows) {\n return Math.max.apply(Math, rows.reduce(function (sum, row) {\n row.forEach(function (el, i) { return sum[i] = (sum[i] || 0) + el.offsetHeight; });\n return sum;\n }, []));\n }\n\n var HeightMatch = {\n\n args: 'target',\n\n props: {\n target: String,\n row: Boolean\n },\n\n data: {\n target: '> *',\n row: true\n },\n\n computed: {\n\n elements: function(ref, $el) {\n var target = ref.target;\n\n return $$(target, $el);\n }\n\n },\n\n update: {\n\n read: function() {\n var this$1 = this;\n\n\n css(this.elements, {\n minHeight: '',\n boxSizing: ''\n });\n\n return {\n rows: !this.row\n ? [this.match(this.elements)]\n : getRows(this.elements).map(function (elements) { return this$1.match(elements); })\n };\n },\n\n write: function(ref) {\n var rows = ref.rows;\n\n\n rows.forEach(function (ref) {\n var height$$1 = ref.height;\n var elements = ref.elements;\n\n return css(elements, {\n minHeight: height$$1,\n boxSizing: 'border-box'\n });\n });\n\n },\n\n events: ['load', 'resize']\n\n },\n\n methods: {\n\n match: function(elements) {\n\n if (elements.length < 2) {\n return {};\n }\n\n var heights = [];\n var max = 0;\n\n elements\n .forEach(function (el) {\n var ref = offset(el);\n var height$$1 = ref.height;\n max = Math.max(max, height$$1);\n heights.push(height$$1);\n });\n\n elements = elements.filter(function (el, i) { return heights[i] < max; });\n\n return {height: max, elements: elements};\n }\n }\n\n };\n\n var HeightViewport = {\n\n props: {\n expand: Boolean,\n offsetTop: Boolean,\n offsetBottom: Boolean,\n minHeight: Number\n },\n\n data: {\n expand: false,\n offsetTop: false,\n offsetBottom: false,\n minHeight: 0\n },\n\n update: {\n\n write: function() {\n\n css(this.$el, 'boxSizing', 'border-box');\n\n var viewport = height(window);\n var minHeight, offsetTop = 0;\n\n if (this.expand) {\n\n css(this.$el, {height: '', minHeight: ''});\n\n var diff = viewport - offsetHeight(document.documentElement);\n\n if (diff > 0) {\n minHeight = offsetHeight(this.$el) + diff;\n }\n\n } else {\n\n var ref = offset(this.$el);\n var top = ref.top;\n\n if (top < viewport / 2 && this.offsetTop) {\n offsetTop += top;\n }\n\n if (this.offsetBottom === true) {\n\n offsetTop += offsetHeight(this.$el.nextElementSibling);\n\n } else if (isNumeric(this.offsetBottom)) {\n\n offsetTop += (viewport / 100) * this.offsetBottom;\n\n } else if (this.offsetBottom && endsWith(this.offsetBottom, 'px')) {\n\n offsetTop += toFloat(this.offsetBottom);\n\n } else if (isString(this.offsetBottom)) {\n\n offsetTop += offsetHeight(query(this.offsetBottom, this.$el));\n\n }\n\n // on mobile devices (iOS and Android) window.innerHeight !== 100vh\n minHeight = offsetTop ? (\"calc(100vh - \" + offsetTop + \"px)\") : '100vh';\n\n }\n\n if (!minHeight) {\n return;\n }\n\n css(this.$el, {height: '', minHeight: minHeight});\n\n var elHeight = this.$el.offsetHeight;\n if (this.minHeight && this.minHeight > elHeight) {\n css(this.$el, 'minHeight', this.minHeight);\n }\n\n // IE 11 fix (min-height on a flex container won't apply to its flex items)\n if (viewport - offsetTop >= elHeight) {\n css(this.$el, 'height', minHeight);\n }\n\n },\n\n events: ['load', 'resize']\n\n }\n\n };\n\n function offsetHeight(el) {\n return el && el.offsetHeight || 0;\n }\n\n var svgs = {};\n\n var SVG = {\n\n attrs: true,\n\n props: {\n id: String,\n icon: String,\n src: String,\n style: String,\n width: Number,\n height: Number,\n ratio: Number,\n 'class': String\n },\n\n data: {\n ratio: 1,\n id: false,\n exclude: ['ratio', 'src', 'icon'],\n 'class': ''\n },\n\n connected: function() {\n var this$1 = this;\n var assign$$1;\n\n\n this.class += ' uk-svg';\n\n if (!this.icon && includes(this.src, '#')) {\n\n var parts = this.src.split('#');\n\n if (parts.length > 1) {\n (assign$$1 = parts, this.src = assign$$1[0], this.icon = assign$$1[1]);\n }\n }\n\n this.svg = this.getSvg().then(function (svg) {\n\n var el;\n\n if (isString(svg)) {\n\n if (this$1.icon && includes(svg, '<symbol')) {\n svg = parseSymbols(svg, this$1.icon) || svg;\n }\n\n el = $(svg.substr(svg.indexOf('<svg')));\n\n } else {\n el = svg.cloneNode(true);\n }\n\n if (!el) {\n return Promise$1.reject('SVG not found.');\n }\n\n var dimensions = attr(el, 'viewBox');\n\n if (dimensions) {\n dimensions = dimensions.split(' ');\n this$1.width = this$1.$props.width || dimensions[2];\n this$1.height = this$1.$props.height || dimensions[3];\n }\n\n this$1.width *= this$1.ratio;\n this$1.height *= this$1.ratio;\n\n for (var prop in this$1.$options.props) {\n if (this$1[prop] && !includes(this$1.exclude, prop)) {\n attr(el, prop, this$1[prop]);\n }\n }\n\n if (!this$1.id) {\n removeAttr(el, 'id');\n }\n\n if (this$1.width && !this$1.height) {\n removeAttr(el, 'height');\n }\n\n if (this$1.height && !this$1.width) {\n removeAttr(el, 'width');\n }\n\n var root = this$1.$el;\n if (isVoidElement(root) || root.tagName === 'CANVAS') {\n\n attr(root, {hidden: true, id: null});\n\n var next = root.nextElementSibling;\n if (next && el.isEqualNode(next)) {\n el = next;\n } else {\n after(root, el);\n }\n\n } else {\n\n var last = root.lastElementChild;\n if (last && el.isEqualNode(last)) {\n el = last;\n } else {\n append(root, el);\n }\n\n }\n\n this$1.svgEl = el;\n\n return el;\n\n }, noop);\n\n },\n\n disconnected: function() {\n var this$1 = this;\n\n\n if (isVoidElement(this.$el)) {\n attr(this.$el, {hidden: null, id: this.id || null});\n }\n\n if (this.svg) {\n this.svg.then(function (svg) { return (!this$1._connected || svg !== this$1.svgEl) && remove(svg); }, noop);\n }\n\n this.svg = this.svgEl = null;\n\n },\n\n methods: {\n\n getSvg: function() {\n var this$1 = this;\n\n\n if (!this.src) {\n return Promise$1.reject();\n }\n\n if (svgs[this.src]) {\n return svgs[this.src];\n }\n\n svgs[this.src] = new Promise$1(function (resolve, reject) {\n\n if (startsWith(this$1.src, 'data:')) {\n resolve(decodeURIComponent(this$1.src.split(',')[1]));\n } else {\n\n ajax(this$1.src).then(\n function (xhr) { return resolve(xhr.response); },\n function () { return reject('SVG not found.'); }\n );\n\n }\n\n });\n\n return svgs[this.src];\n\n }\n\n }\n\n };\n\n var symbolRe = /<symbol(.*?id=(['\"])(.*?)\\2[^]*?<\\/)symbol>/g;\n var symbols = {};\n\n function parseSymbols(svg, icon) {\n\n if (!symbols[svg]) {\n\n symbols[svg] = {};\n\n var match;\n while ((match = symbolRe.exec(svg))) {\n symbols[svg][match[3]] = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\"\" + (match[1]) + \"svg>\";\n }\n\n symbolRe.lastIndex = 0;\n\n }\n\n return symbols[svg][icon];\n }\n\n var closeIcon = \"<svg width=\\\"14\\\" height=\\\"14\\\" viewBox=\\\"0 0 14 14\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><line fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.1\\\" x1=\\\"1\\\" y1=\\\"1\\\" x2=\\\"13\\\" y2=\\\"13\\\"/><line fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.1\\\" x1=\\\"13\\\" y1=\\\"1\\\" x2=\\\"1\\\" y2=\\\"13\\\"/></svg>\";\n\n var closeLarge = \"<svg width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><line fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.4\\\" x1=\\\"1\\\" y1=\\\"1\\\" x2=\\\"19\\\" y2=\\\"19\\\"/><line fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.4\\\" x1=\\\"19\\\" y1=\\\"1\\\" x2=\\\"1\\\" y2=\\\"19\\\"/></svg>\";\n\n var marker = \"<svg width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><rect x=\\\"9\\\" y=\\\"4\\\" width=\\\"1\\\" height=\\\"11\\\"/><rect x=\\\"4\\\" y=\\\"9\\\" width=\\\"11\\\" height=\\\"1\\\"/></svg>\";\n\n var navbarToggleIcon = \"<svg width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><rect y=\\\"9\\\" width=\\\"20\\\" height=\\\"2\\\"/><rect y=\\\"3\\\" width=\\\"20\\\" height=\\\"2\\\"/><rect y=\\\"15\\\" width=\\\"20\\\" height=\\\"2\\\"/></svg>\";\n\n var overlayIcon = \"<svg width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 40 40\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><rect x=\\\"19\\\" y=\\\"0\\\" width=\\\"1\\\" height=\\\"40\\\"/><rect x=\\\"0\\\" y=\\\"19\\\" width=\\\"40\\\" height=\\\"1\\\"/></svg>\";\n\n var paginationNext = \"<svg width=\\\"7\\\" height=\\\"12\\\" viewBox=\\\"0 0 7 12\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><polyline fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.2\\\" points=\\\"1 1 6 6 1 11\\\"/></svg>\";\n\n var paginationPrevious = \"<svg width=\\\"7\\\" height=\\\"12\\\" viewBox=\\\"0 0 7 12\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><polyline fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.2\\\" points=\\\"6 1 1 6 6 11\\\"/></svg>\";\n\n var searchIcon = \"<svg width=\\\"20\\\" height=\\\"20\\\" viewBox=\\\"0 0 20 20\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><circle fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.1\\\" cx=\\\"9\\\" cy=\\\"9\\\" r=\\\"7\\\"/><path fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.1\\\" d=\\\"M14,14 L18,18 L14,14 Z\\\"/></svg>\";\n\n var searchLarge = \"<svg width=\\\"40\\\" height=\\\"40\\\" viewBox=\\\"0 0 40 40\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><circle fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.8\\\" cx=\\\"17.5\\\" cy=\\\"17.5\\\" r=\\\"16.5\\\"/><line fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.8\\\" x1=\\\"38\\\" y1=\\\"39\\\" x2=\\\"29\\\" y2=\\\"30\\\"/></svg>\";\n\n var searchNavbar = \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><circle fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.1\\\" cx=\\\"10.5\\\" cy=\\\"10.5\\\" r=\\\"9.5\\\"/><line fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.1\\\" x1=\\\"23\\\" y1=\\\"23\\\" x2=\\\"17\\\" y2=\\\"17\\\"/></svg>\";\n\n var slidenavNext = \"<svg width=\\\"14px\\\" height=\\\"24px\\\" viewBox=\\\"0 0 14 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><polyline fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.4\\\" points=\\\"1.225,23 12.775,12 1.225,1 \\\"/></svg>\";\n\n var slidenavNextLarge = \"<svg width=\\\"25px\\\" height=\\\"40px\\\" viewBox=\\\"0 0 25 40\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><polyline fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"2\\\" points=\\\"4.002,38.547 22.527,20.024 4,1.5 \\\"/></svg>\";\n\n var slidenavPrevious = \"<svg width=\\\"14px\\\" height=\\\"24px\\\" viewBox=\\\"0 0 14 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><polyline fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.4\\\" points=\\\"12.775,1 1.225,12 12.775,23 \\\"/></svg>\";\n\n var slidenavPreviousLarge = \"<svg width=\\\"25px\\\" height=\\\"40px\\\" viewBox=\\\"0 0 25 40\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><polyline fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"2\\\" points=\\\"20.527,1.5 2,20.024 20.525,38.547 \\\"/></svg>\";\n\n var spinner = \"<svg width=\\\"30\\\" height=\\\"30\\\" viewBox=\\\"0 0 30 30\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><circle fill=\\\"none\\\" stroke=\\\"#000\\\" cx=\\\"15\\\" cy=\\\"15\\\" r=\\\"14\\\"/></svg>\";\n\n var totop = \"<svg width=\\\"18\\\" height=\\\"10\\\" viewBox=\\\"0 0 18 10\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><polyline fill=\\\"none\\\" stroke=\\\"#000\\\" stroke-width=\\\"1.2\\\" points=\\\"1 9 9 1 17 9 \\\"/></svg>\";\n\n var parsed = {};\n var icons = {\n spinner: spinner,\n totop: totop,\n marker: marker,\n 'close-icon': closeIcon,\n 'close-large': closeLarge,\n 'navbar-toggle-icon': navbarToggleIcon,\n 'overlay-icon': overlayIcon,\n 'pagination-next': paginationNext,\n 'pagination-previous': paginationPrevious,\n 'search-icon': searchIcon,\n 'search-large': searchLarge,\n 'search-navbar': searchNavbar,\n 'slidenav-next': slidenavNext,\n 'slidenav-next-large': slidenavNextLarge,\n 'slidenav-previous': slidenavPrevious,\n 'slidenav-previous-large': slidenavPreviousLarge\n };\n\n var Icon = {\n\n install: install,\n\n attrs: ['icon', 'ratio'],\n\n mixins: [Class, SVG],\n\n args: 'icon',\n\n props: ['icon'],\n\n data: {exclude: ['id', 'style', 'class', 'src', 'icon', 'ratio']},\n\n isIcon: true,\n\n connected: function() {\n addClass(this.$el, 'uk-icon');\n },\n\n methods: {\n\n getSvg: function() {\n\n var icon = getIcon(applyRtl(this.icon));\n\n if (!icon) {\n return Promise$1.reject('Icon not found.');\n }\n\n return Promise$1.resolve(icon);\n }\n\n }\n\n };\n\n var IconComponent = {\n\n extends: Icon,\n\n data: function (vm) { return ({\n icon: hyphenate(vm.constructor.options.name)\n }); }\n\n };\n\n var Slidenav = {\n\n extends: IconComponent,\n\n connected: function() {\n addClass(this.$el, 'uk-slidenav');\n },\n\n computed: {\n\n icon: function(ref, $el) {\n var icon = ref.icon;\n\n return hasClass($el, 'uk-slidenav-large')\n ? (icon + \"-large\")\n : icon;\n }\n\n }\n\n };\n\n var Search = {\n\n extends: IconComponent,\n\n computed: {\n\n icon: function(ref, $el) {\n var icon = ref.icon;\n\n return hasClass($el, 'uk-search-icon') && parents($el, '.uk-search-large').length\n ? 'search-large'\n : parents($el, '.uk-search-navbar').length\n ? 'search-navbar'\n : icon;\n }\n\n }\n\n };\n\n var Close = {\n\n extends: IconComponent,\n\n computed: {\n\n icon: function() {\n return (\"close-\" + (hasClass(this.$el, 'uk-close-large') ? 'large' : 'icon'));\n }\n\n }\n\n };\n\n var Spinner = {\n\n extends: IconComponent,\n\n connected: function() {\n var this$1 = this;\n\n this.svg.then(function (svg) { return this$1.ratio !== 1 && css($('circle', svg), 'strokeWidth', 1 / this$1.ratio); }, noop);\n }\n\n };\n\n function install(UIkit) {\n UIkit.icon.add = function (name, svg) {\n var obj;\n\n\n var added = isString(name) ? (( obj = {}, obj[name] = svg, obj )) : name;\n each(added, function (svg, name) {\n icons[name] = svg;\n delete parsed[name];\n });\n\n if (UIkit._initialized) {\n apply(document.body, function (el) { return each(UIkit.getComponents(el), function (cmp) { return cmp.$options.isIcon && cmp.icon in added && cmp.$reset(); }\n ); }\n );\n }\n };\n }\n\n function getIcon(icon) {\n\n if (!icons[icon]) {\n return null;\n }\n\n if (!parsed[icon]) {\n parsed[icon] = $(icons[icon].trim());\n }\n\n return parsed[icon];\n }\n\n function applyRtl(icon) {\n return isRtl ? swap(swap(icon, 'left', 'right'), 'previous', 'next') : icon;\n }\n\n var Img = {\n\n attrs: true,\n\n props: {\n dataSrc: String,\n dataSrcset: Boolean,\n dataSizes: Boolean,\n sizes: String,\n width: Number,\n height: Number,\n dataWidth: Number,\n dataHeight: Number,\n offsetTop: String,\n offsetLeft: String,\n target: String\n },\n\n data: {\n dataSrc: '',\n dataSrcset: false,\n dataSizes: false,\n sizes: false,\n width: false,\n height: false,\n offsetTop: '50vh',\n offsetLeft: 0,\n target: false\n },\n\n computed: {\n\n cacheKey: function(ref) {\n var dataSrc = ref.dataSrc;\n\n return ((this.$name) + \".\" + dataSrc);\n },\n\n width: function(ref) {\n var width$$1 = ref.width;\n var dataWidth = ref.dataWidth;\n\n return width$$1 || dataWidth;\n },\n\n height: function(ref) {\n var height$$1 = ref.height;\n var dataHeight = ref.dataHeight;\n\n return height$$1 || dataHeight;\n },\n\n sizes: function(ref) {\n var sizes = ref.sizes;\n var dataSizes = ref.dataSizes;\n\n return sizes || dataSizes;\n },\n\n isImg: function(_, $el) {\n return isImg($el);\n },\n\n target: function(ref) {\n var target = ref.target;\n\n return [this.$el].concat(queryAll(target, this.$el));\n },\n\n offsetTop: function(ref) {\n var offsetTop = ref.offsetTop;\n\n return toPx(offsetTop, 'height');\n },\n\n offsetLeft: function(ref) {\n var offsetLeft = ref.offsetLeft;\n\n return toPx(offsetLeft, 'width');\n }\n\n },\n\n connected: function() {\n\n if (storage[this.cacheKey]) {\n setSrcAttrs(this.$el, storage[this.cacheKey] || this.dataSrc, this.dataSrcset, this.sizes);\n } else if (this.isImg && this.width && this.height) {\n setSrcAttrs(this.$el, getPlaceholderImage(this.width, this.height, this.sizes));\n }\n\n },\n\n update: [\n\n {\n\n read: function(ref) {\n var this$1 = this;\n var delay = ref.delay;\n var image = ref.image;\n\n\n if (!delay) {\n return;\n }\n\n if (image || !this.target.some(function (el) { return isInView(el, this$1.offsetTop, this$1.offsetLeft, true); })) {\n\n if (!this.isImg && image) {\n image.then(function (img) { return img && setSrcAttrs(this$1.$el, currentSrc(img)); });\n }\n\n return;\n }\n\n return {\n image: getImage(this.dataSrc, this.dataSrcset, this.sizes).then(function (img) {\n\n setSrcAttrs(this$1.$el, currentSrc(img), img.srcset, img.sizes);\n storage[this$1.cacheKey] = currentSrc(img);\n return img;\n\n }, noop)\n };\n\n },\n\n write: function(data$$1) {\n\n // Give placeholder images time to apply their dimensions\n if (!data$$1.delay) {\n this.$emit();\n return data$$1.delay = true;\n }\n\n },\n\n events: ['scroll', 'load', 'resize']\n\n }\n\n ]\n\n };\n\n function setSrcAttrs(el, src, srcset, sizes) {\n\n if (isImg(el)) {\n src && (el.src = src);\n srcset && (el.srcset = srcset);\n sizes && (el.sizes = sizes);\n } else {\n src && css(el, 'backgroundImage', (\"url(\" + src + \")\"));\n }\n\n }\n\n var urlCache = {};\n var sizesRe = /\\s*(.*?)\\s*(\\w+|calc\\(.*?\\))\\s*(?:,|$)/g;\n function getPlaceholderImage(width$$1, height$$1, sizes, color) {\n var assign$$1;\n\n if ( color === void 0 ) color = 'transparent';\n\n if (sizes) {\n var matches$$1;\n\n while ((matches$$1 = sizesRe.exec(sizes))) {\n if (!matches$$1[1] || window.matchMedia(matches$$1[1]).matches) {\n matches$$1 = evaluateSize(matches$$1[2]);\n break;\n }\n }\n\n sizesRe.lastIndex = 0;\n\n ((assign$$1 = Dimensions.ratio({width: width$$1, height: height$$1}, 'width', toPx(matches$$1 || '100vw')), width$$1 = assign$$1.width, height$$1 = assign$$1.height));\n\n }\n\n var key = width$$1 + \".\" + height$$1 + \".\" + color;\n if (urlCache[key]) {\n return urlCache[key];\n }\n\n var canvas = fragment('<canvas>');\n canvas.width = width$$1;\n canvas.height = height$$1;\n\n var context = canvas.getContext('2d');\n context.fillStyle = color;\n context.fillRect(0, 0, width$$1, height$$1);\n\n return urlCache[key] = canvas.toDataURL('image/png');\n }\n\n var sizeRe = /\\d+(?:\\w+|%)/g;\n var additionRe = /[+-]?(\\d+)/g;\n function evaluateSize(size) {\n return startsWith(size, 'calc')\n ? size\n .substring(5, size.length - 1)\n .replace(sizeRe, function (size) { return toPx(size); })\n .replace(/ /g, '')\n .match(additionRe)\n .reduce(function (a, b) { return a + +b; }, 0)\n : size;\n }\n\n function toPx(value, property, element) {\n if ( property === void 0 ) property = 'width';\n if ( element === void 0 ) element = window;\n\n return isNumeric(value)\n ? +value\n : endsWith(value, 'vw')\n ? percent(element, 'width', value)\n : endsWith(value, 'vh')\n ? percent(element, 'height', value)\n : endsWith(value, '%')\n ? percent(element, property, value)\n : toFloat(value);\n }\n\n var dimensions = {height: height, width: width};\n function percent(element, property, value) {\n return dimensions[property](element) * toFloat(value) / 100;\n }\n\n function isImg(el) {\n return el.tagName === 'IMG';\n }\n\n function currentSrc(el) {\n return el.currentSrc || el.src;\n }\n\n var key = '__test__';\n var storage;\n\n // workaround for Safari's private browsing mode and accessing sessionStorage in Blink\n try {\n storage = window.sessionStorage || {};\n storage[key] = 1;\n delete storage[key];\n } catch (e) {\n storage = {};\n }\n\n var Leader = {\n\n mixins: [Class],\n\n props: {\n fill: String,\n media: 'media'\n },\n\n data: {\n fill: '',\n media: false,\n clsWrapper: 'uk-leader-fill',\n clsHide: 'uk-leader-hide',\n attrFill: 'data-fill'\n },\n\n computed: {\n\n fill: function(ref) {\n var fill = ref.fill;\n\n return fill || getCssVar('leader-fill');\n }\n\n },\n\n connected: function() {\n var assign$$1;\n\n (assign$$1 = wrapInner(this.$el, (\"<span class=\\\"\" + (this.clsWrapper) + \"\\\">\")), this.wrapper = assign$$1[0]);\n },\n\n disconnected: function() {\n unwrap(this.wrapper.childNodes);\n },\n\n update: [\n\n {\n\n read: function(ref) {\n var changed = ref.changed;\n var width$$1 = ref.width;\n\n\n var prev = width$$1;\n\n width$$1 = Math.floor(this.$el.offsetWidth / 2);\n\n return {\n width: width$$1,\n changed: changed || prev !== width$$1,\n hide: this.media && !window.matchMedia(this.media).matches\n };\n },\n\n write: function(data$$1) {\n\n toggleClass(this.wrapper, this.clsHide, data$$1.hide);\n\n if (data$$1.changed) {\n data$$1.changed = false;\n attr(this.wrapper, this.attrFill, new Array(data$$1.width).join(this.fill));\n }\n\n },\n\n events: ['load', 'resize']\n\n }\n ]\n\n };\n\n var Container = {\n\n props: {\n container: Boolean\n },\n\n data: {\n container: true\n },\n\n computed: {\n\n container: function(ref) {\n var container = ref.container;\n\n return container === true && this.$container || container && $(container);\n }\n\n }\n\n };\n\n var active$1;\n\n var Modal = {\n\n mixins: [Class, Container, Togglable],\n\n props: {\n selPanel: String,\n selClose: String,\n escClose: Boolean,\n bgClose: Boolean,\n stack: Boolean\n },\n\n data: {\n cls: 'uk-open',\n escClose: true,\n bgClose: true,\n overlay: true,\n stack: false\n },\n\n computed: {\n\n panel: function(ref, $el) {\n var selPanel = ref.selPanel;\n\n return $(selPanel, $el);\n },\n\n transitionElement: function() {\n return this.panel;\n },\n\n transitionDuration: function() {\n return toMs(css(this.transitionElement, 'transitionDuration'));\n },\n\n bgClose: function(ref) {\n var bgClose = ref.bgClose;\n\n return bgClose && this.panel;\n }\n\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return this.selClose;\n },\n\n handler: function(e) {\n e.preventDefault();\n this.hide();\n }\n\n },\n\n {\n\n name: 'toggle',\n\n self: true,\n\n handler: function(e) {\n\n if (e.defaultPrevented) {\n return;\n }\n\n e.preventDefault();\n this.toggle();\n }\n\n },\n\n {\n name: 'beforeshow',\n\n self: true,\n\n handler: function(e) {\n\n var prev = active$1 && active$1 !== this && active$1;\n\n active$1 = this;\n\n if (prev) {\n if (this.stack) {\n this.prev = prev;\n } else {\n prev.hide().then(this.show);\n e.preventDefault();\n return;\n }\n }\n\n registerEvents();\n\n }\n\n },\n\n {\n name: 'beforehide',\n\n self: true,\n\n handler: function() {\n\n active$1 = active$1 && active$1 !== this && active$1 || this.prev;\n\n if (!active$1) {\n deregisterEvents();\n }\n\n }\n\n },\n\n {\n\n name: 'show',\n\n self: true,\n\n handler: function() {\n\n if (!hasClass(document.documentElement, this.clsPage)) {\n this.scrollbarWidth = width(window) - width(document);\n css(document.body, 'overflowY', this.scrollbarWidth && this.overlay ? 'scroll' : '');\n }\n\n addClass(document.documentElement, this.clsPage);\n\n }\n\n },\n\n {\n\n name: 'hidden',\n\n self: true,\n\n handler: function() {\n var this$1 = this;\n\n\n var found;\n var ref = this;\n var prev = ref.prev;\n\n while (prev) {\n\n if (prev.clsPage === this$1.clsPage) {\n found = true;\n break;\n }\n\n prev = prev.prev;\n\n }\n\n if (!found) {\n removeClass(document.documentElement, this.clsPage);\n\n }\n\n !this.prev && css(document.body, 'overflowY', '');\n }\n\n }\n\n ],\n\n methods: {\n\n toggle: function() {\n return this.isToggled() ? this.hide() : this.show();\n },\n\n show: function() {\n\n if (this.isToggled()) {\n return Promise$1.resolve();\n }\n\n if (this.container && this.$el.parentNode !== this.container) {\n append(this.container, this.$el);\n this._callConnected();\n }\n\n return this.toggleNow(this.$el, true);\n },\n\n hide: function() {\n return this.isToggled()\n ? this.toggleNow(this.$el, false)\n : Promise$1.resolve();\n },\n\n getActive: function() {\n return active$1;\n },\n\n _toggleImmediate: function(el, show) {\n var this$1 = this;\n\n return new Promise$1(function (resolve) { return requestAnimationFrame(function () {\n this$1._toggle(el, show);\n\n if (this$1.transitionDuration) {\n once(this$1.transitionElement, 'transitionend', resolve, false, function (e) { return e.target === this$1.transitionElement; });\n } else {\n resolve();\n }\n }); }\n );\n }\n\n }\n\n };\n\n var events;\n\n function registerEvents() {\n\n if (events) {\n return;\n }\n\n events = [\n on(document, 'click', function (ref) {\n var target = ref.target;\n var defaultPrevented = ref.defaultPrevented;\n\n if (active$1 && active$1.bgClose && !defaultPrevented && (!active$1.overlay || within(target, active$1.$el)) && !within(target, active$1.panel)) {\n active$1.hide();\n }\n }),\n on(document, 'keydown', function (e) {\n if (e.keyCode === 27 && active$1 && active$1.escClose) {\n e.preventDefault();\n active$1.hide();\n }\n })\n ];\n }\n\n function deregisterEvents() {\n events && events.forEach(function (unbind) { return unbind(); });\n events = null;\n }\n\n var Modal$1 = {\n\n install: install$1,\n\n mixins: [Modal],\n\n data: {\n clsPage: 'uk-modal-page',\n selPanel: '.uk-modal-dialog',\n selClose: '.uk-modal-close, .uk-modal-close-default, .uk-modal-close-outside, .uk-modal-close-full'\n },\n\n events: [\n\n {\n name: 'show',\n\n self: true,\n\n handler: function() {\n\n if (hasClass(this.panel, 'uk-margin-auto-vertical')) {\n addClass(this.$el, 'uk-flex');\n } else {\n css(this.$el, 'display', 'block');\n }\n\n height(this.$el); // force reflow\n }\n },\n\n {\n name: 'hidden',\n\n self: true,\n\n handler: function() {\n\n css(this.$el, 'display', '');\n removeClass(this.$el, 'uk-flex');\n\n }\n }\n\n ]\n\n };\n\n function install$1 (UIkit) {\n\n UIkit.modal.dialog = function (content, options) {\n\n var dialog = UIkit.modal((\" <div class=\\\"uk-modal\\\"> <div class=\\\"uk-modal-dialog\\\">\" + content + \"</div> </div> \"), options);\n\n dialog.show();\n\n on(dialog.$el, 'hidden', function (ref) {\n var target = ref.target;\n var currentTarget = ref.currentTarget;\n\n if (target === currentTarget) {\n dialog.$destroy(true);\n }\n });\n\n return dialog;\n };\n\n UIkit.modal.alert = function (message, options) {\n\n options = assign({bgClose: false, escClose: false, labels: UIkit.modal.labels}, options);\n\n return new Promise$1(\n function (resolve) { return on(UIkit.modal.dialog((\" <div class=\\\"uk-modal-body\\\">\" + (isString(message) ? message : html(message)) + \"</div> <div class=\\\"uk-modal-footer uk-text-right\\\"> <button class=\\\"uk-button uk-button-primary uk-modal-close\\\" autofocus>\" + (options.labels.ok) + \"</button> </div> \"), options).$el, 'hide', resolve); }\n );\n };\n\n UIkit.modal.confirm = function (message, options) {\n\n options = assign({bgClose: false, escClose: true, labels: UIkit.modal.labels}, options);\n\n return new Promise$1(function (resolve, reject) {\n\n var confirm = UIkit.modal.dialog((\" <form> <div class=\\\"uk-modal-body\\\">\" + (isString(message) ? message : html(message)) + \"</div> <div class=\\\"uk-modal-footer uk-text-right\\\"> <button class=\\\"uk-button uk-button-default uk-modal-close\\\" type=\\\"button\\\">\" + (options.labels.cancel) + \"</button> <button class=\\\"uk-button uk-button-primary\\\" autofocus>\" + (options.labels.ok) + \"</button> </div> </form> \"), options);\n\n var resolved = false;\n\n on(confirm.$el, 'submit', 'form', function (e) {\n e.preventDefault();\n resolve();\n resolved = true;\n confirm.hide();\n });\n on(confirm.$el, 'hide', function () {\n if (!resolved) {\n reject();\n }\n });\n\n });\n };\n\n UIkit.modal.prompt = function (message, value, options) {\n\n options = assign({bgClose: false, escClose: true, labels: UIkit.modal.labels}, options);\n\n return new Promise$1(function (resolve) {\n\n var prompt = UIkit.modal.dialog((\" <form class=\\\"uk-form-stacked\\\"> <div class=\\\"uk-modal-body\\\"> <label>\" + (isString(message) ? message : html(message)) + \"</label> <input class=\\\"uk-input\\\" autofocus> </div> <div class=\\\"uk-modal-footer uk-text-right\\\"> <button class=\\\"uk-button uk-button-default uk-modal-close\\\" type=\\\"button\\\">\" + (options.labels.cancel) + \"</button> <button class=\\\"uk-button uk-button-primary\\\">\" + (options.labels.ok) + \"</button> </div> </form> \"), options),\n input = $('input', prompt.$el);\n\n input.value = value;\n\n var resolved = false;\n\n on(prompt.$el, 'submit', 'form', function (e) {\n e.preventDefault();\n resolve(input.value);\n resolved = true;\n prompt.hide();\n });\n on(prompt.$el, 'hide', function () {\n if (!resolved) {\n resolve(null);\n }\n });\n\n });\n };\n\n UIkit.modal.labels = {\n ok: 'Ok',\n cancel: 'Cancel'\n };\n\n }\n\n var Nav = {\n\n extends: Accordion,\n\n data: {\n targets: '> .uk-parent',\n toggle: '> a',\n content: '> ul'\n }\n\n };\n\n var Navbar = {\n\n mixins: [Class],\n\n props: {\n dropdown: String,\n mode: 'list',\n align: String,\n offset: Number,\n boundary: Boolean,\n boundaryAlign: Boolean,\n clsDrop: String,\n delayShow: Number,\n delayHide: Number,\n dropbar: Boolean,\n dropbarMode: String,\n dropbarAnchor: Boolean,\n duration: Number\n },\n\n data: {\n dropdown: '.uk-navbar-nav > li',\n align: !isRtl ? 'left' : 'right',\n clsDrop: 'uk-navbar-dropdown',\n mode: undefined,\n offset: undefined,\n delayShow: undefined,\n delayHide: undefined,\n boundaryAlign: undefined,\n flip: 'x',\n boundary: true,\n dropbar: false,\n dropbarMode: 'slide',\n dropbarAnchor: false,\n duration: 200,\n },\n\n computed: {\n\n boundary: function(ref, $el) {\n var boundary = ref.boundary;\n var boundaryAlign = ref.boundaryAlign;\n\n return (boundary === true || boundaryAlign) ? $el : boundary;\n },\n\n dropbarAnchor: function(ref, $el) {\n var dropbarAnchor = ref.dropbarAnchor;\n\n return query(dropbarAnchor, $el);\n },\n\n pos: function(ref) {\n var align = ref.align;\n\n return (\"bottom-\" + align);\n },\n\n dropdowns: function(ref, $el) {\n var dropdown = ref.dropdown;\n var clsDrop = ref.clsDrop;\n\n return $$((dropdown + \" .\" + clsDrop), $el);\n }\n\n },\n\n beforeConnect: function() {\n\n var ref = this.$props;\n var dropbar = ref.dropbar;\n\n this.dropbar = dropbar && (query(dropbar, this.$el) || $('+ .uk-navbar-dropbar', this.$el) || $('<div></div>'));\n\n if (this.dropbar) {\n\n addClass(this.dropbar, 'uk-navbar-dropbar');\n\n if (this.dropbarMode === 'slide') {\n addClass(this.dropbar, 'uk-navbar-dropbar-slide');\n }\n }\n\n },\n\n disconnected: function() {\n this.dropbar && remove(this.dropbar);\n },\n\n update: function() {\n var this$1 = this;\n\n\n this.$create(\n 'drop',\n this.dropdowns.filter(function (el) { return !this$1.getDropdown(el); }),\n assign({}, this.$props, {boundary: this.boundary, pos: this.pos, offset: this.dropbar || this.offset})\n );\n\n },\n\n events: [\n\n {\n name: 'mouseover',\n\n delegate: function() {\n return this.dropdown;\n },\n\n handler: function(ref) {\n var current = ref.current;\n\n var active = this.getActive();\n if (active && active.toggle && !within(active.toggle.$el, current) && !active.tracker.movesTo(active.$el)) {\n active.hide(false);\n }\n }\n\n },\n\n {\n name: 'mouseleave',\n\n el: function() {\n return this.dropbar;\n },\n\n handler: function() {\n var active = this.getActive();\n\n if (active && !matches(this.dropbar, ':hover')) {\n active.hide();\n }\n }\n },\n\n {\n name: 'beforeshow',\n\n capture: true,\n\n filter: function() {\n return this.dropbar;\n },\n\n handler: function() {\n\n if (!this.dropbar.parentNode) {\n after(this.dropbarAnchor || this.$el, this.dropbar);\n }\n\n }\n },\n\n {\n name: 'show',\n\n capture: true,\n\n filter: function() {\n return this.dropbar;\n },\n\n handler: function(_, drop) {\n\n var $el = drop.$el;\n var dir = drop.dir;\n\n this.clsDrop && addClass($el, ((this.clsDrop) + \"-dropbar\"));\n\n if (dir === 'bottom') {\n this.transitionTo($el.offsetHeight + toFloat(css($el, 'marginTop')) + toFloat(css($el, 'marginBottom')), $el);\n }\n }\n },\n\n {\n name: 'beforehide',\n\n filter: function() {\n return this.dropbar;\n },\n\n handler: function(e, ref) {\n var $el = ref.$el;\n\n\n var active = this.getActive();\n\n if (matches(this.dropbar, ':hover') && active && active.$el === $el) {\n e.preventDefault();\n }\n }\n },\n\n {\n name: 'hide',\n\n filter: function() {\n return this.dropbar;\n },\n\n handler: function(_, ref) {\n var $el = ref.$el;\n\n\n var active = this.getActive();\n\n if (!active || active && active.$el === $el) {\n this.transitionTo(0);\n }\n }\n }\n\n ],\n\n methods: {\n\n getActive: function() {\n var ref = this.dropdowns.map(this.getDropdown).filter(function (drop) { return drop.isActive(); });\n var active = ref[0];\n return active && includes(active.mode, 'hover') && within(active.toggle.$el, this.$el) && active;\n },\n\n transitionTo: function(newHeight, el) {\n\n var ref = this;\n var dropbar = ref.dropbar;\n var oldHeight = isVisible(dropbar) ? height(dropbar) : 0;\n\n el = oldHeight < newHeight && el;\n\n css(el, 'clip', (\"rect(0,\" + (el.offsetWidth) + \"px,\" + oldHeight + \"px,0)\"));\n\n height(dropbar, oldHeight);\n\n Transition.cancel([el, dropbar]);\n return Promise.all([\n Transition.start(dropbar, {height: newHeight}, this.duration),\n Transition.start(el, {clip: (\"rect(0,\" + (el.offsetWidth) + \"px,\" + newHeight + \"px,0)\")}, this.duration)\n ])\n .catch(noop)\n .then(function () { return css(el, {clip: ''}); });\n },\n\n getDropdown: function(el) {\n return this.$getComponent(el, 'drop') || this.$getComponent(el, 'dropdown');\n }\n\n }\n\n };\n\n var scroll;\n\n var Offcanvas = {\n\n mixins: [Modal],\n\n args: 'mode',\n\n props: {\n content: String,\n mode: String,\n flip: Boolean,\n overlay: Boolean\n },\n\n data: {\n content: '.uk-offcanvas-content',\n mode: 'slide',\n flip: false,\n overlay: false,\n clsPage: 'uk-offcanvas-page',\n clsContainer: 'uk-offcanvas-container',\n selPanel: '.uk-offcanvas-bar',\n clsFlip: 'uk-offcanvas-flip',\n clsContent: 'uk-offcanvas-content',\n clsContentAnimation: 'uk-offcanvas-content-animation',\n clsSidebarAnimation: 'uk-offcanvas-bar-animation',\n clsMode: 'uk-offcanvas',\n clsOverlay: 'uk-offcanvas-overlay',\n selClose: '.uk-offcanvas-close'\n },\n\n computed: {\n\n content: function(ref) {\n var content = ref.content;\n\n return $(content) || document.body;\n },\n\n clsFlip: function(ref) {\n var flip = ref.flip;\n var clsFlip = ref.clsFlip;\n\n return flip ? clsFlip : '';\n },\n\n clsOverlay: function(ref) {\n var overlay = ref.overlay;\n var clsOverlay = ref.clsOverlay;\n\n return overlay ? clsOverlay : '';\n },\n\n clsMode: function(ref) {\n var mode = ref.mode;\n var clsMode = ref.clsMode;\n\n return (clsMode + \"-\" + mode);\n },\n\n clsSidebarAnimation: function(ref) {\n var mode = ref.mode;\n var clsSidebarAnimation = ref.clsSidebarAnimation;\n\n return mode === 'none' || mode === 'reveal' ? '' : clsSidebarAnimation;\n },\n\n clsContentAnimation: function(ref) {\n var mode = ref.mode;\n var clsContentAnimation = ref.clsContentAnimation;\n\n return mode !== 'push' && mode !== 'reveal' ? '' : clsContentAnimation;\n },\n\n transitionElement: function(ref) {\n var mode = ref.mode;\n\n return mode === 'reveal' ? this.panel.parentNode : this.panel;\n }\n\n },\n\n update: {\n\n write: function() {\n\n if (this.getActive() === this) {\n\n if (this.overlay || this.clsContentAnimation) {\n width(this.content, width(window) - this.scrollbarWidth);\n }\n\n if (this.overlay) {\n height(this.content, height(window));\n if (scroll) {\n this.content.scrollTop = scroll.y;\n }\n }\n\n }\n\n },\n\n events: ['resize']\n\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return 'a[href^=\"#\"]';\n },\n\n handler: function(ref) {\n var current = ref.current;\n\n if (current.hash && $(current.hash, this.content)) {\n scroll = null;\n this.hide();\n }\n }\n\n },\n\n {\n\n name: 'beforescroll',\n\n filter: function() {\n return this.overlay;\n },\n\n handler: function(e, scroll, target) {\n if (scroll && target && this.isToggled() && $(target, this.content)) {\n once(this.$el, 'hidden', function () { return scroll.scrollTo(target); });\n e.preventDefault();\n }\n }\n\n },\n\n {\n name: 'show',\n\n self: true,\n\n handler: function() {\n\n scroll = scroll || {x: window.pageXOffset, y: window.pageYOffset};\n\n if (this.mode === 'reveal' && !hasClass(this.panel, this.clsMode)) {\n wrapAll(this.panel, '<div>');\n addClass(this.panel.parentNode, this.clsMode);\n }\n\n css(document.documentElement, 'overflowY', (!this.clsContentAnimation || this.flip) && this.scrollbarWidth && this.overlay ? 'scroll' : '');\n addClass(document.body, this.clsContainer, this.clsFlip, this.clsOverlay);\n height(document.body); // force reflow\n addClass(this.content, this.clsContentAnimation);\n addClass(this.panel, this.clsSidebarAnimation, this.mode !== 'reveal' ? this.clsMode : '');\n addClass(this.$el, this.clsOverlay);\n css(this.$el, 'display', 'block');\n height(this.$el); // force reflow\n\n }\n },\n\n {\n name: 'hide',\n\n self: true,\n\n handler: function() {\n removeClass(this.content, this.clsContentAnimation);\n\n var active = this.getActive();\n if (this.mode === 'none' || active && active !== this && active !== this.prev) {\n trigger(this.panel, 'transitionend');\n }\n }\n },\n\n {\n name: 'hidden',\n\n self: true,\n\n handler: function() {\n\n if (this.mode === 'reveal') {\n unwrap(this.panel);\n }\n\n if (!this.overlay) {\n scroll = {x: window.pageXOffset, y: window.pageYOffset};\n } else if (!scroll) {\n var ref = this.content;\n var x = ref.scrollLeft;\n var y = ref.scrollTop;\n scroll = {x: x, y: y};\n }\n\n removeClass(this.panel, this.clsSidebarAnimation, this.clsMode);\n removeClass(this.$el, this.clsOverlay);\n css(this.$el, 'display', '');\n removeClass(document.body, this.clsContainer, this.clsFlip, this.clsOverlay);\n document.body.scrollTop = scroll.y;\n\n css(document.documentElement, 'overflowY', '');\n\n width(this.content, '');\n height(this.content, '');\n\n window.scroll(scroll.x, scroll.y);\n\n scroll = null;\n\n }\n },\n\n {\n name: 'swipeLeft swipeRight',\n\n handler: function(e) {\n\n if (this.isToggled() && isTouch(e) && (e.type === 'swipeLeft' && !this.flip || e.type === 'swipeRight' && this.flip)) {\n this.hide();\n }\n\n }\n }\n\n ]\n\n };\n\n var OverflowAuto = {\n\n mixins: [Class],\n\n computed: {\n\n modal: function(_, $el) {\n return closest($el, '.uk-modal');\n },\n\n panel: function(_, $el) {\n return closest($el, '.uk-modal-dialog');\n }\n\n },\n\n connected: function() {\n css(this.$el, 'minHeight', 150);\n },\n\n update: {\n\n write: function() {\n\n if (!this.panel || !this.modal) {\n return;\n }\n\n var current = css(this.$el, 'maxHeight');\n\n css(css(this.$el, 'maxHeight', 150), 'maxHeight', Math.max(150, 150 + height(this.modal) - this.panel.offsetHeight));\n if (current !== css(this.$el, 'maxHeight')) {\n trigger(this.$el, 'resize');\n }\n },\n\n events: ['load', 'resize']\n\n }\n\n };\n\n var Responsive = {\n\n props: ['width', 'height'],\n\n connected: function() {\n addClass(this.$el, 'uk-responsive-width');\n },\n\n update: {\n\n read: function() {\n return isVisible(this.$el) && this.width && this.height\n ? {width: width(this.$el.parentNode), height: this.height}\n : false;\n },\n\n write: function(dim) {\n height(this.$el, Dimensions.contain({height: this.height, width: this.width}, dim).height);\n },\n\n events: ['load', 'resize']\n\n }\n\n };\n\n var Scroll = {\n\n props: {\n duration: Number,\n offset: Number\n },\n\n data: {\n duration: 1000,\n offset: 0\n },\n\n methods: {\n\n scrollTo: function(el) {\n var this$1 = this;\n\n\n el = el && $(el) || document.body;\n\n var docHeight = height(document);\n var winHeight = height(window);\n\n var target = offset(el).top - this.offset;\n if (target + winHeight > docHeight) {\n target = docHeight - winHeight;\n }\n\n if (!trigger(this.$el, 'beforescroll', [this, el])) {\n return;\n }\n\n var start = Date.now();\n var startY = window.pageYOffset;\n var step = function () {\n\n var currentY = startY + (target - startY) * ease(clamp((Date.now() - start) / this$1.duration));\n\n window.scroll(window.pageXOffset, currentY);\n\n // scroll more if we have not reached our destination\n if (currentY !== target) {\n requestAnimationFrame(step);\n } else {\n trigger(this$1.$el, 'scrolled', [this$1, el]);\n }\n\n };\n\n step();\n\n }\n\n },\n\n events: {\n\n click: function(e) {\n\n if (e.defaultPrevented) {\n return;\n }\n\n e.preventDefault();\n this.scrollTo(escape(this.$el.hash).substr(1));\n }\n\n }\n\n };\n\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n var Scrollspy = {\n\n args: 'cls',\n\n props: {\n cls: 'list',\n target: String,\n hidden: Boolean,\n offsetTop: Number,\n offsetLeft: Number,\n repeat: Boolean,\n delay: Number\n },\n\n data: function () { return ({\n cls: [],\n target: false,\n hidden: true,\n offsetTop: 0,\n offsetLeft: 0,\n repeat: false,\n delay: 0,\n inViewClass: 'uk-scrollspy-inview'\n }); },\n\n computed: {\n\n elements: function(ref, $el) {\n var target = ref.target;\n\n return target ? $$(target, $el) : [$el];\n }\n\n },\n\n update: [\n\n {\n\n write: function() {\n if (this.hidden) {\n css(filter(this.elements, (\":not(.\" + (this.inViewClass) + \")\")), 'visibility', 'hidden');\n }\n }\n\n },\n\n {\n\n read: function(els) {\n var this$1 = this;\n\n\n if (!els.delay) {\n return;\n }\n\n this.elements.forEach(function (el, i) {\n\n var elData = els[i];\n\n if (!elData || elData.el !== el) {\n var cls = data(el, 'uk-scrollspy-class');\n elData = {el: el, toggles: cls && cls.split(',') || this$1.cls};\n }\n\n elData.show = isInView(el, this$1.offsetTop, this$1.offsetLeft);\n els[i] = elData;\n\n });\n },\n\n write: function(els) {\n var this$1 = this;\n\n\n // Let child components be applied at least once first\n if (!els.delay) {\n this.$emit();\n return els.delay = true;\n }\n\n var index$$1 = this.elements.length === 1 ? 1 : 0;\n\n this.elements.forEach(function (el, i) {\n\n var elData = els[i];\n var cls = elData.toggles[i] || elData.toggles[0];\n\n if (elData.show && !elData.inview && !elData.timer) {\n\n var show = function () {\n css(el, 'visibility', '');\n addClass(el, this$1.inViewClass);\n toggleClass(el, cls);\n\n trigger(el, 'inview');\n\n this$1.$update(el);\n\n elData.inview = true;\n delete elData.timer;\n };\n\n if (this$1.delay && index$$1) {\n elData.timer = setTimeout(show, this$1.delay * index$$1);\n } else {\n show();\n }\n\n index$$1++;\n\n } else if (!elData.show && elData.inview && this$1.repeat) {\n\n if (elData.timer) {\n clearTimeout(elData.timer);\n delete elData.timer;\n }\n\n css(el, 'visibility', this$1.hidden ? 'hidden' : '');\n removeClass(el, this$1.inViewClass);\n toggleClass(el, cls);\n\n trigger(el, 'outview');\n\n this$1.$update(el);\n\n elData.inview = false;\n\n }\n\n\n });\n\n },\n\n events: ['scroll', 'load', 'resize']\n\n }\n\n ]\n\n };\n\n var ScrollspyNav = {\n\n props: {\n cls: String,\n closest: String,\n scroll: Boolean,\n overflow: Boolean,\n offset: Number\n },\n\n data: {\n cls: 'uk-active',\n closest: false,\n scroll: false,\n overflow: true,\n offset: 0\n },\n\n computed: {\n\n links: function(_, $el) {\n return $$('a[href^=\"#\"]', $el).filter(function (el) { return el.hash; });\n },\n\n elements: function() {\n return this.closest ? closest(this.links, this.closest) : this.links;\n },\n\n targets: function() {\n return $$(this.links.map(function (el) { return el.hash; }).join(','));\n }\n\n },\n\n update: [\n\n {\n\n read: function() {\n if (this.scroll) {\n this.$create('scroll', this.links, {offset: this.offset || 0});\n }\n }\n\n },\n\n {\n\n read: function(data$$1) {\n var this$1 = this;\n\n\n var scroll = window.pageYOffset + this.offset + 1;\n var max = height(document) - height(window) + this.offset;\n\n data$$1.active = false;\n\n this.targets.every(function (el, i) {\n\n var ref = offset(el);\n var top = ref.top;\n var last = i + 1 === this$1.targets.length;\n\n if (!this$1.overflow && (i === 0 && top > scroll || last && top + el.offsetTop < scroll)) {\n return false;\n }\n\n if (!last && offset(this$1.targets[i + 1]).top <= scroll) {\n return true;\n }\n\n if (scroll >= max) {\n for (var j = this$1.targets.length - 1; j > i; j--) {\n if (isInView(this$1.targets[j])) {\n el = this$1.targets[j];\n break;\n }\n }\n }\n\n return !(data$$1.active = $(filter(this$1.links, (\"[href=\\\"#\" + (el.id) + \"\\\"]\"))));\n\n });\n\n },\n\n write: function(ref) {\n var active = ref.active;\n\n\n this.links.forEach(function (el) { return el.blur(); });\n removeClass(this.elements, this.cls);\n\n if (active) {\n trigger(this.$el, 'active', [active, addClass(this.closest ? closest(active, this.closest) : active, this.cls)]);\n }\n\n },\n\n events: ['scroll', 'load', 'resize']\n\n }\n\n ]\n\n };\n\n var Sticky = {\n\n mixins: [Class],\n\n attrs: true,\n\n props: {\n top: null,\n bottom: Boolean,\n offset: Number,\n animation: String,\n clsActive: String,\n clsInactive: String,\n clsFixed: String,\n clsBelow: String,\n selTarget: String,\n widthElement: Boolean,\n showOnUp: Boolean,\n media: 'media',\n targetOffset: Number\n },\n\n data: {\n top: 0,\n bottom: false,\n offset: 0,\n animation: '',\n clsActive: 'uk-active',\n clsInactive: '',\n clsFixed: 'uk-sticky-fixed',\n clsBelow: 'uk-sticky-below',\n selTarget: '',\n widthElement: false,\n showOnUp: false,\n media: false,\n targetOffset: false\n },\n\n computed: {\n\n selTarget: function(ref, $el) {\n var selTarget = ref.selTarget;\n\n return selTarget && $(selTarget, $el) || $el;\n },\n\n widthElement: function(ref, $el) {\n var widthElement = ref.widthElement;\n\n return query(widthElement, $el) || this.placeholder;\n }\n\n },\n\n connected: function() {\n\n this.placeholder = $('+ .uk-sticky-placeholder', this.$el) || $('<div class=\"uk-sticky-placeholder\"></div>');\n\n if (!this.isActive) {\n this.hide();\n }\n },\n\n disconnected: function() {\n\n if (this.isActive) {\n this.isActive = false;\n this.hide();\n removeClass(this.selTarget, this.clsInactive);\n }\n\n remove(this.placeholder);\n this.placeholder = null;\n this.widthElement = null;\n },\n\n events: [\n\n {\n name: 'active',\n\n self: true,\n\n handler: function() {\n replaceClass(this.selTarget, this.clsInactive, this.clsActive);\n }\n\n },\n\n {\n name: 'inactive',\n\n self: true,\n\n handler: function() {\n replaceClass(this.selTarget, this.clsActive, this.clsInactive);\n }\n\n },\n\n {\n\n name: 'load hashchange popstate',\n\n el: window,\n\n handler: function() {\n var this$1 = this;\n\n\n if (!(this.targetOffset !== false && location.hash && window.pageYOffset > 0)) {\n return;\n }\n\n var target = $(location.hash);\n\n if (target) {\n fastdom.read(function () {\n\n var ref = offset(target);\n var top = ref.top;\n var elTop = offset(this$1.$el).top;\n var elHeight = this$1.$el.offsetHeight;\n\n if (this$1.isActive && elTop + elHeight >= top && elTop <= top + target.offsetHeight) {\n window.scroll(0, top - elHeight - (isNumeric(this$1.targetOffset) ? this$1.targetOffset : 0) - this$1.offset);\n }\n\n });\n }\n\n }\n\n }\n\n ],\n\n update: [\n\n {\n\n write: function() {\n\n var ref = this;\n var placeholder = ref.placeholder;\n var offsetHeight = ref.$el.offsetHeight;\n\n css(placeholder, assign(\n {height: css(this.$el, 'position') !== 'absolute' ? offsetHeight : ''},\n css(this.$el, ['marginTop', 'marginBottom', 'marginLeft', 'marginRight'])\n ));\n\n if (!within(placeholder, document)) {\n after(this.$el, placeholder);\n attr(placeholder, 'hidden', '');\n }\n\n this.topOffset = offset(this.isActive ? placeholder : this.$el).top;\n this.bottomOffset = this.topOffset + offsetHeight;\n\n var bottom = parseProp('bottom', this);\n\n this.top = Math.max(toFloat(parseProp('top', this)), this.topOffset) - this.offset;\n this.bottom = bottom && bottom - offsetHeight;\n this.inactive = this.media && !window.matchMedia(this.media).matches;\n\n },\n\n events: ['load', 'resize']\n\n },\n\n {\n\n read: function(_, ref) {\n var scrollY = ref.scrollY; if ( scrollY === void 0 ) scrollY = window.pageYOffset;\n\n\n this.width = (isVisible(this.widthElement) ? this.widthElement : this.$el).offsetWidth;\n\n return {\n scroll: this.scroll = scrollY,\n visible: isVisible(this.$el)\n };\n },\n\n write: function(ref, ref$1) {\n var this$1 = this;\n var visible = ref.visible;\n var scroll = ref.scroll;\n if ( ref$1 === void 0 ) ref$1 = {};\n var dir = ref$1.dir;\n\n\n if (scroll < 0 || !visible || this.disabled || this.showOnUp && !dir) {\n return;\n }\n\n if (this.inactive\n || scroll < this.top\n || this.showOnUp && (scroll <= this.top || dir === 'down' || dir === 'up' && !this.isActive && scroll <= this.bottomOffset)\n ) {\n\n if (!this.isActive) {\n return;\n }\n\n this.isActive = false;\n\n if (this.animation && scroll > this.topOffset) {\n Animation.cancel(this.$el);\n Animation.out(this.$el, this.animation).then(function () { return this$1.hide(); }, noop);\n } else {\n this.hide();\n }\n\n } else if (this.isActive) {\n\n this.update();\n\n } else if (this.animation) {\n\n Animation.cancel(this.$el);\n this.show();\n Animation.in(this.$el, this.animation).catch(noop);\n\n } else {\n this.show();\n }\n\n },\n\n events: ['load', 'resize', 'scroll']\n\n } ],\n\n methods: {\n\n show: function() {\n\n this.isActive = true;\n this.update();\n attr(this.placeholder, 'hidden', null);\n\n },\n\n hide: function() {\n\n if (!this.isActive || hasClass(this.selTarget, this.clsActive)) {\n trigger(this.$el, 'inactive');\n }\n\n removeClass(this.$el, this.clsFixed, this.clsBelow);\n css(this.$el, {position: '', top: '', width: ''});\n attr(this.placeholder, 'hidden', '');\n\n },\n\n update: function() {\n\n var active = this.top !== 0 || this.scroll > this.top;\n var top = Math.max(0, this.offset);\n\n if (this.bottom && this.scroll > this.bottom - this.offset) {\n top = this.bottom - this.scroll;\n }\n\n css(this.$el, {\n position: 'fixed',\n top: (top + \"px\"),\n width: this.width\n });\n\n if (hasClass(this.selTarget, this.clsActive)) {\n\n if (!active) {\n trigger(this.$el, 'inactive');\n }\n\n } else if (active) {\n trigger(this.$el, 'active');\n }\n\n toggleClass(this.$el, this.clsBelow, this.scroll > this.bottomOffset);\n addClass(this.$el, this.clsFixed);\n\n }\n\n }\n\n };\n\n function parseProp(prop, ref) {\n var $props = ref.$props;\n var $el = ref.$el;\n var propOffset = ref[(prop + \"Offset\")];\n\n\n var value = $props[prop];\n\n if (!value) {\n return;\n }\n\n if (isNumeric(value)) {\n\n return propOffset + toFloat(value);\n\n } else if (isString(value) && value.match(/^-?\\d+vh$/)) {\n\n return height(window) * toFloat(value) / 100;\n\n } else {\n\n var el = value === true ? $el.parentNode : query(value, $el);\n\n if (el) {\n return offset(el).top + el.offsetHeight;\n }\n\n }\n }\n\n var Switcher = {\n\n mixins: [Togglable],\n\n args: 'connect',\n\n props: {\n connect: String,\n toggle: String,\n active: Number,\n swiping: Boolean\n },\n\n data: {\n connect: '~.uk-switcher',\n toggle: '> *',\n active: 0,\n swiping: true,\n cls: 'uk-active',\n clsContainer: 'uk-switcher',\n attrItem: 'uk-switcher-item',\n queued: true\n },\n\n computed: {\n\n connects: function(ref, $el) {\n var connect = ref.connect;\n\n return queryAll(connect, $el);\n },\n\n toggles: function(ref, $el) {\n var toggle = ref.toggle;\n\n return $$(toggle, $el);\n }\n\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return ((this.toggle) + \":not(.uk-disabled)\");\n },\n\n handler: function(e) {\n e.preventDefault();\n this.show(e.current);\n }\n\n },\n\n {\n name: 'click',\n\n el: function() {\n return this.connects;\n },\n\n delegate: function() {\n return (\"[\" + (this.attrItem) + \"],[data-\" + (this.attrItem) + \"]\");\n },\n\n handler: function(e) {\n e.preventDefault();\n this.show(data(e.current, this.attrItem));\n }\n },\n\n {\n name: 'swipeRight swipeLeft',\n\n filter: function() {\n return this.swiping;\n },\n\n el: function() {\n return this.connects;\n },\n\n handler: function(e) {\n if (!isTouch(e)) {\n return;\n }\n\n e.preventDefault();\n if (!window.getSelection().toString()) {\n this.show(e.type === 'swipeLeft' ? 'next' : 'previous');\n }\n }\n }\n\n ],\n\n update: function() {\n var this$1 = this;\n\n\n this.connects.forEach(function (list) { return this$1.updateAria(list.children); });\n this.show(filter(this.toggles, (\".\" + (this.cls)))[0] || this.toggles[this.active] || this.toggles[0]);\n\n },\n\n methods: {\n\n show: function(item) {\n var this$1 = this;\n\n\n var ref = this.toggles;\n var length = ref.length;\n var prev = !!this.connects.length && index(filter(this.connects[0].children, (\".\" + (this.cls)))[0]);\n var hasPrev = prev >= 0;\n var dir = item === 'previous' ? -1 : 1;\n\n var toggle, next = getIndex(item, this.toggles, prev);\n\n for (var i = 0; i < length; i++, next = (next + dir + length) % length) {\n if (!matches(this$1.toggles[next], '.uk-disabled, [disabled]')) {\n toggle = this$1.toggles[next];\n break;\n }\n }\n\n if (!toggle || prev >= 0 && hasClass(toggle, this.cls) || prev === next) {\n return;\n }\n\n removeClass(this.toggles, this.cls);\n attr(this.toggles, 'aria-expanded', false);\n addClass(toggle, this.cls);\n attr(toggle, 'aria-expanded', true);\n\n this.connects.forEach(function (list) {\n if (!hasPrev) {\n this$1.toggleNow(list.children[next]);\n } else {\n this$1.toggleElement([list.children[prev], list.children[next]]);\n }\n });\n\n }\n\n }\n\n };\n\n var Tab = {\n\n mixins: [Class],\n\n extends: Switcher,\n\n props: {\n media: 'media'\n },\n\n data: {\n media: 960,\n attrItem: 'uk-tab-item'\n },\n\n connected: function() {\n\n var cls = hasClass(this.$el, 'uk-tab-left')\n ? 'uk-tab-left'\n : hasClass(this.$el, 'uk-tab-right')\n ? 'uk-tab-right'\n : false;\n\n if (cls) {\n this.$create('toggle', this.$el, {cls: cls, mode: 'media', media: this.media});\n }\n }\n\n };\n\n var Toggle = {\n\n mixins: [Togglable],\n\n args: 'target',\n\n props: {\n href: String,\n target: null,\n mode: 'list',\n media: 'media'\n },\n\n data: {\n href: false,\n target: false,\n mode: 'click',\n queued: true,\n media: false\n },\n\n computed: {\n\n target: function(ref, $el) {\n var href = ref.href;\n var target = ref.target;\n\n target = queryAll(target || href, $el);\n return target.length && target || [$el];\n }\n\n },\n\n events: [\n\n {\n\n name: (pointerEnter + \" \" + pointerLeave),\n\n filter: function() {\n return includes(this.mode, 'hover');\n },\n\n handler: function(e) {\n if (!isTouch(e)) {\n this.toggle((\"toggle\" + (e.type === pointerEnter ? 'show' : 'hide')));\n }\n }\n\n },\n\n {\n\n name: 'click',\n\n filter: function() {\n return includes(this.mode, 'click') || hasTouch && includes(this.mode, 'hover');\n },\n\n handler: function(e) {\n\n if (!isTouch(e) && !includes(this.mode, 'click')) {\n return;\n }\n\n // TODO better isToggled handling\n var link;\n if (closest(e.target, 'a[href=\"#\"], button')\n || (link = closest(e.target, 'a[href]')) && (\n this.cls\n || !isVisible(this.target)\n || link.hash && matches(this.target, link.hash)\n )\n ) {\n once(document, 'click', function (e) { return e.preventDefault(); });\n }\n\n this.toggle();\n }\n\n }\n ],\n\n update: {\n\n write: function() {\n\n if (!includes(this.mode, 'media') || !this.media) {\n return;\n }\n\n var toggled = this.isToggled(this.target);\n if (window.matchMedia(this.media).matches ? !toggled : toggled) {\n this.toggle();\n }\n\n },\n\n events: ['load', 'resize']\n\n },\n\n methods: {\n\n toggle: function(type) {\n if (trigger(this.target, type || 'toggle', [this])) {\n this.toggleElement(this.target);\n }\n }\n\n }\n\n };\n\n function core (UIkit) {\n\n // core components\n UIkit.component('accordion', Accordion);\n UIkit.component('alert', Alert);\n UIkit.component('cover', Cover);\n UIkit.component('drop', Drop);\n UIkit.component('dropdown', Dropdown);\n UIkit.component('formCustom', FormCustom);\n UIkit.component('gif', Gif);\n UIkit.component('grid', Grid);\n UIkit.component('heightMatch', HeightMatch);\n UIkit.component('heightViewport', HeightViewport);\n UIkit.component('icon', Icon);\n UIkit.component('img', Img);\n UIkit.component('leader', Leader);\n UIkit.component('margin', Margin);\n UIkit.component('modal', Modal$1);\n UIkit.component('nav', Nav);\n UIkit.component('navbar', Navbar);\n UIkit.component('offcanvas', Offcanvas);\n UIkit.component('overflowAuto', OverflowAuto);\n UIkit.component('responsive', Responsive);\n UIkit.component('scroll', Scroll);\n UIkit.component('scrollspy', Scrollspy);\n UIkit.component('scrollspyNav', ScrollspyNav);\n UIkit.component('sticky', Sticky);\n UIkit.component('svg', SVG);\n UIkit.component('switcher', Switcher);\n UIkit.component('tab', Tab);\n UIkit.component('toggle', Toggle);\n UIkit.component('video', Video);\n\n // Icon components\n UIkit.component('close', Close);\n UIkit.component('marker', IconComponent);\n UIkit.component('navbarToggleIcon', IconComponent);\n UIkit.component('overlayIcon', IconComponent);\n UIkit.component('paginationNext', IconComponent);\n UIkit.component('paginationPrevious', IconComponent);\n UIkit.component('searchIcon', Search);\n UIkit.component('slidenavNext', Slidenav);\n UIkit.component('slidenavPrevious', Slidenav);\n UIkit.component('spinner', Spinner);\n UIkit.component('totop', IconComponent);\n\n // core functionality\n UIkit.use(Core);\n\n }\n\n UIkit.version = '3.0.0-rc.5';\n\n core(UIkit);\n\n var Countdown = {\n\n mixins: [Class],\n\n attrs: true,\n\n props: {\n date: String,\n clsWrapper: String\n },\n\n data: {\n date: '',\n clsWrapper: '.uk-countdown-%unit%'\n },\n\n computed: {\n\n date: function(ref) {\n var date = ref.date;\n\n return Date.parse(date);\n },\n\n days: function(ref, $el) {\n var clsWrapper = ref.clsWrapper;\n\n return $(clsWrapper.replace('%unit%', 'days'), $el);\n },\n\n hours: function(ref, $el) {\n var clsWrapper = ref.clsWrapper;\n\n return $(clsWrapper.replace('%unit%', 'hours'), $el);\n },\n\n minutes: function(ref, $el) {\n var clsWrapper = ref.clsWrapper;\n\n return $(clsWrapper.replace('%unit%', 'minutes'), $el);\n },\n\n seconds: function(ref, $el) {\n var clsWrapper = ref.clsWrapper;\n\n return $(clsWrapper.replace('%unit%', 'seconds'), $el);\n },\n\n units: function() {\n var this$1 = this;\n\n return ['days', 'hours', 'minutes', 'seconds'].filter(function (unit) { return this$1[unit]; });\n }\n\n },\n\n connected: function() {\n this.start();\n },\n\n disconnected: function() {\n var this$1 = this;\n\n this.stop();\n this.units.forEach(function (unit) { return empty(this$1[unit]); });\n },\n\n events: [\n\n {\n\n name: 'visibilitychange',\n\n el: document,\n\n handler: function() {\n if (document.hidden) {\n this.stop();\n } else {\n this.start();\n }\n }\n\n }\n\n ],\n\n update: {\n\n write: function() {\n var this$1 = this;\n\n\n var timespan = getTimeSpan(this.date);\n\n if (timespan.total <= 0) {\n\n this.stop();\n\n timespan.days\n = timespan.hours\n = timespan.minutes\n = timespan.seconds\n = 0;\n }\n\n this.units.forEach(function (unit) {\n\n var digits = String(Math.floor(timespan[unit]));\n\n digits = digits.length < 2 ? (\"0\" + digits) : digits;\n\n var el = this$1[unit];\n if (el.textContent !== digits) {\n digits = digits.split('');\n\n if (digits.length !== el.children.length) {\n html(el, digits.map(function () { return '<span></span>'; }).join(''));\n }\n\n digits.forEach(function (digit, i) { return el.children[i].textContent = digit; });\n }\n\n });\n\n }\n\n },\n\n methods: {\n\n start: function() {\n var this$1 = this;\n\n\n this.stop();\n\n if (this.date && this.units.length) {\n this.$emit();\n this.timer = setInterval(function () { return this$1.$emit(); }, 1000);\n }\n\n },\n\n stop: function() {\n\n if (this.timer) {\n clearInterval(this.timer);\n this.timer = null;\n }\n\n }\n\n }\n\n };\n\n function getTimeSpan(date) {\n\n var total = date - Date.now();\n\n return {\n total: total,\n seconds: total / 1000 % 60,\n minutes: total / 1000 / 60 % 60,\n hours: total / 1000 / 60 / 60 % 24,\n days: total / 1000 / 60 / 60 / 24\n };\n }\n\n var targetClass = 'uk-animation-target';\n\n var Animate = {\n\n props: {\n animation: Number\n },\n\n data: {\n animation: 150\n },\n\n computed: {\n\n target: function() {\n return this.$el;\n }\n\n },\n\n methods: {\n\n animate: function(action) {\n var this$1 = this;\n\n\n addStyle();\n\n var children = toNodes(this.target.children);\n var propsFrom = children.map(function (el) { return getProps(el, true); });\n\n var oldHeight = height(this.target);\n var oldScrollY = window.pageYOffset;\n\n action();\n\n Transition.cancel(this.target);\n children.forEach(Transition.cancel);\n\n reset(this.target);\n this.$update(this.target);\n fastdom.flush();\n\n var newHeight = height(this.target);\n\n children = children.concat(toNodes(this.target.children).filter(function (el) { return !includes(children, el); }));\n\n var propsTo = children.map(function (el, i) { return el.parentNode && i in propsFrom\n ? propsFrom[i]\n ? isVisible(el)\n ? getPositionWithMargin(el)\n : {opacity: 0}\n : {opacity: isVisible(el) ? 1 : 0}\n : false; }\n );\n\n propsFrom = propsTo.map(function (props, i) {\n var from = children[i].parentNode === this$1.target\n ? propsFrom[i] || getProps(children[i])\n : false;\n\n if (from) {\n if (!props) {\n delete from.opacity;\n } else if (!('opacity' in props)) {\n var opacity = from.opacity;\n\n if (opacity % 1) {\n props.opacity = 1;\n } else {\n delete from.opacity;\n }\n }\n }\n\n return from;\n });\n\n addClass(this.target, targetClass);\n children.forEach(function (el, i) { return propsFrom[i] && css(el, propsFrom[i]); });\n css(this.target, 'minHeight', oldHeight);\n window.scroll(window.pageXOffset, oldScrollY);\n\n return Promise$1.all(children.map(function (el, i) { return propsFrom[i] && propsTo[i]\n ? Transition.start(el, propsTo[i], this$1.animation, 'ease')\n : Promise$1.resolve(); }\n ).concat(Transition.start(this.target, {minHeight: newHeight}, this.animation, 'ease'))).then(function () {\n children.forEach(function (el, i) { return css(el, {display: propsTo[i].opacity === 0 ? 'none' : '', zIndex: ''}); });\n reset(this$1.target);\n this$1.$update(this$1.target);\n }, noop);\n\n }\n }\n };\n\n function getProps(el, opacity) {\n\n var zIndex = css(el, 'zIndex');\n\n return isVisible(el)\n ? assign({\n display: '',\n opacity: opacity ? css(el, 'opacity') : '0',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: zIndex === 'auto' ? index(el) : zIndex\n }, getPositionWithMargin(el))\n : false;\n }\n\n function reset(el) {\n css(el.children, {\n height: '',\n left: '',\n opacity: '',\n pointerEvents: '',\n position: '',\n top: '',\n width: ''\n });\n removeClass(el, targetClass);\n css(el, 'minHeight', '');\n }\n\n function getPositionWithMargin(el) {\n var ref = el.getBoundingClientRect();\n var height$$1 = ref.height;\n var width$$1 = ref.width;\n var ref$1 = position(el);\n var top = ref$1.top;\n var left = ref$1.left;\n top += toFloat(css(el, 'marginTop'));\n\n return {top: top, left: left, height: height$$1, width: width$$1};\n }\n\n var style$1;\n\n function addStyle() {\n if (!style$1) {\n style$1 = append(document.head, '<style>').sheet;\n style$1.insertRule(\n (\".\" + targetClass + \" > * {\\n margin-top: 0 !important;\\n transform: none !important;\\n }\")\n );\n }\n }\n\n var Filter = {\n\n mixins: [Animate],\n\n args: 'target',\n\n props: {\n target: Boolean,\n selActive: Boolean\n },\n\n data: {\n target: null,\n selActive: false,\n attrItem: 'uk-filter-control',\n cls: 'uk-active',\n animation: 250\n },\n\n computed: {\n\n toggles: function(ref, $el) {\n var attrItem = ref.attrItem;\n\n return $$((\"[\" + (this.attrItem) + \"],[data-\" + (this.attrItem) + \"]\"), $el);\n },\n\n target: function(ref, $el) {\n var target = ref.target;\n\n return $(target, $el);\n }\n\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return (\"[\" + (this.attrItem) + \"],[data-\" + (this.attrItem) + \"]\");\n },\n\n handler: function(e) {\n\n e.preventDefault();\n this.apply(e.current);\n\n }\n\n }\n\n ],\n\n connected: function() {\n var this$1 = this;\n\n\n if (this.selActive === false) {\n return;\n }\n\n var actives = $$(this.selActive, this.$el);\n this.toggles.forEach(function (el) { return toggleClass(el, this$1.cls, includes(actives, el)); });\n },\n\n update: function(data$$1) {\n\n var toggles = data$$1.toggles;\n var children = data$$1.children;\n if (isEqualList(toggles, this.toggles, false) && isEqualList(children, this.target.children, false)) {\n return;\n }\n\n data$$1.toggles = this.toggles;\n data$$1.children = this.target.children;\n\n this.setState(this.getState(), false);\n\n },\n\n methods: {\n\n apply: function(el) {\n this.setState(mergeState(el, this.attrItem, this.getState()));\n },\n\n getState: function() {\n var this$1 = this;\n\n return this.toggles\n .filter(function (item) { return hasClass(item, this$1.cls); })\n .reduce(function (state, el) { return mergeState(el, this$1.attrItem, state); }, {filter: {'': ''}, sort: []});\n },\n\n setState: function(state, animate$$1) {\n var this$1 = this;\n if ( animate$$1 === void 0 ) animate$$1 = true;\n\n\n state = assign({filter: {'': ''}, sort: []}, state);\n\n trigger(this.$el, 'beforeFilter', [this, state]);\n\n var children = toNodes(this.target.children);\n\n this.toggles.forEach(function (el) { return toggleClass(el, this$1.cls, matchFilter(el, this$1.attrItem, state)); });\n\n var apply$$1 = function () {\n\n var selector = getSelector(state);\n\n children.forEach(function (el) { return css(el, 'display', selector && !matches(el, selector) ? 'none' : ''); });\n\n var ref = state.sort;\n var sort = ref[0];\n var order = ref[1];\n\n if (sort) {\n var sorted = sortItems(children, sort, order);\n if (!isEqualList(sorted, children)) {\n sorted.forEach(function (el) { return append(this$1.target, el); });\n }\n }\n\n };\n\n if (animate$$1) {\n this.animate(apply$$1).then(function () { return trigger(this$1.$el, 'afterFilter', [this$1]); });\n } else {\n apply$$1();\n trigger(this.$el, 'afterFilter', [this]);\n }\n\n }\n\n }\n\n };\n\n function getFilter(el, attr$$1) {\n return parseOptions(data(el, attr$$1), ['filter']);\n }\n\n function mergeState(el, attr$$1, state) {\n\n toNodes(el).forEach(function (el) {\n var filterBy = getFilter(el, attr$$1);\n var filter$$1 = filterBy.filter;\n var group = filterBy.group;\n var sort = filterBy.sort;\n var order = filterBy.order; if ( order === void 0 ) order = 'asc';\n\n if (filter$$1 || isUndefined(sort)) {\n\n if (group) {\n delete state.filter[''];\n state.filter[group] = filter$$1;\n } else {\n state.filter = {'': filter$$1};\n }\n\n }\n\n if (!isUndefined(sort)) {\n state.sort = [sort, order];\n }\n });\n\n return state;\n }\n\n function matchFilter(el, attr$$1, ref) {\n var stateFilter = ref.filter;\n var ref_sort = ref.sort;\n var stateSort = ref_sort[0];\n var stateOrder = ref_sort[1];\n\n var ref$1 = getFilter(el, attr$$1);\n var filter$$1 = ref$1.filter;\n var group = ref$1.group; if ( group === void 0 ) group = '';\n var sort = ref$1.sort;\n var order = ref$1.order; if ( order === void 0 ) order = 'asc';\n return Boolean(\n (filter$$1 || isUndefined(sort)) && group in stateFilter && (filter$$1 === stateFilter[group] || isUndefined(filter$$1) && !stateFilter[group])\n || stateSort && sort && stateSort === sort && stateOrder === order\n );\n }\n\n function isEqualList(listA, listB, strict) {\n if ( strict === void 0 ) strict = true;\n\n\n listA = toNodes(listA);\n listB = toNodes(listB);\n\n return listA.length === listB.length\n && listA.every(function (el, i) { return strict ? el === listB[i] : ~listB.indexOf(el); });\n }\n\n function getSelector(ref) {\n var filter$$1 = ref.filter;\n\n var selector = '';\n each(filter$$1, function (value) { return selector += value || ''; });\n return selector;\n }\n\n function sortItems(nodes, sort, order) {\n return toNodes(nodes).sort(function (a, b) { return data(a, sort).localeCompare(data(b, sort)) * (order === 'asc' || -1); });\n }\n\n var Animations = {\n\n slide: {\n\n show: function(dir) {\n return [\n {transform: translate(dir * -100)},\n {transform: translate()}\n ];\n },\n\n percent: function(current) {\n return translated(current);\n },\n\n translate: function(percent, dir) {\n return [\n {transform: translate(dir * -100 * percent)},\n {transform: translate(dir * 100 * (1 - percent))}\n ];\n }\n\n }\n\n };\n\n function translated(el) {\n return Math.abs(css(el, 'transform').split(',')[4] / el.offsetWidth) || 0;\n }\n\n function translate(value, unit) {\n if ( value === void 0 ) value = 0;\n if ( unit === void 0 ) unit = '%';\n\n return (\"translateX(\" + value + (value ? unit : '') + \")\"); // currently not translate3d to support IE, translate3d within translate3d does not work while transitioning\n }\n\n function scale3d(value) {\n return (\"scale3d(\" + value + \", \" + value + \", 1)\");\n }\n\n var Animations$1 = assign({}, Animations, {\n\n fade: {\n\n show: function() {\n return [\n {opacity: 0},\n {opacity: 1}\n ];\n },\n\n percent: function(current) {\n return 1 - css(current, 'opacity');\n },\n\n translate: function(percent) {\n return [\n {opacity: 1 - percent},\n {opacity: percent}\n ];\n }\n\n },\n\n scale: {\n\n show: function() {\n return [\n {opacity: 0, transform: scale3d(1 - .2)},\n {opacity: 1, transform: scale3d(1)}\n ];\n },\n\n percent: function(current) {\n return 1 - css(current, 'opacity');\n },\n\n translate: function(percent) {\n return [\n {opacity: 1 - percent, transform: scale3d(1 - .2 * percent)},\n {opacity: percent, transform: scale3d(1 - .2 + .2 * percent)}\n ];\n }\n\n }\n\n });\n\n function Transitioner(prev, next, dir, ref) {\n var animation = ref.animation;\n var easing = ref.easing;\n\n\n var percent = animation.percent;\n var translate = animation.translate;\n var show = animation.show; if ( show === void 0 ) show = noop;\n var props = show(dir);\n var deferred = new Deferred();\n\n return {\n\n dir: dir,\n\n show: function(duration, percent, linear) {\n var this$1 = this;\n if ( percent === void 0 ) percent = 0;\n\n\n var timing = linear ? 'linear' : easing;\n duration -= Math.round(duration * clamp(percent, -1, 1));\n\n this.translate(percent);\n\n triggerUpdate(next, 'itemin', {percent: percent, duration: duration, timing: timing, dir: dir});\n triggerUpdate(prev, 'itemout', {percent: 1 - percent, duration: duration, timing: timing, dir: dir});\n\n Promise$1.all([\n Transition.start(next, props[1], duration, timing),\n Transition.start(prev, props[0], duration, timing)\n ]).then(function () {\n this$1.reset();\n deferred.resolve();\n }, noop);\n\n return deferred.promise;\n },\n\n stop: function() {\n return Transition.stop([next, prev]);\n },\n\n cancel: function() {\n Transition.cancel([next, prev]);\n },\n\n reset: function() {\n for (var prop in props[0]) {\n css([next, prev], prop, '');\n }\n },\n\n forward: function(duration, percent) {\n if ( percent === void 0 ) percent = this.percent();\n\n Transition.cancel([next, prev]);\n return this.show(duration, percent, true);\n\n },\n\n translate: function(percent) {\n\n this.reset();\n\n var props = translate(percent, dir);\n css(next, props[1]);\n css(prev, props[0]);\n triggerUpdate(next, 'itemtranslatein', {percent: percent, dir: dir});\n triggerUpdate(prev, 'itemtranslateout', {percent: 1 - percent, dir: dir});\n\n },\n\n percent: function() {\n return percent(prev || next, next, dir);\n },\n\n getDistance: function() {\n return prev.offsetWidth;\n }\n\n };\n\n }\n\n function triggerUpdate(el, type, data$$1) {\n trigger(el, createEvent(type, false, false, data$$1));\n }\n\n var SliderAutoplay = {\n\n props: {\n autoplay: Boolean,\n autoplayInterval: Number,\n pauseOnHover: Boolean\n },\n\n data: {\n autoplay: false,\n autoplayInterval: 7000,\n pauseOnHover: true\n },\n\n connected: function() {\n this.startAutoplay();\n },\n\n disconnected: function() {\n this.stopAutoplay();\n },\n\n events: [\n\n {\n\n name: 'visibilitychange',\n\n el: document,\n\n handler: function() {\n if (document.hidden) {\n this.stopAutoplay();\n } else {\n this.startAutoplay();\n }\n }\n\n },\n\n {\n\n name: pointerDown,\n handler: 'stopAutoplay'\n\n },\n\n {\n\n name: 'mouseenter',\n\n filter: function() {\n return this.autoplay;\n },\n\n handler: function() {\n this.isHovering = true;\n }\n\n },\n\n {\n\n name: 'mouseleave',\n\n filter: function() {\n return this.autoplay;\n },\n\n handler: function() {\n this.isHovering = false;\n }\n\n }\n\n ],\n\n methods: {\n\n startAutoplay: function() {\n var this$1 = this;\n\n\n this.stopAutoplay();\n\n if (this.autoplay) {\n this.interval = setInterval(\n function () { return !(this$1.isHovering && this$1.pauseOnHover) && !this$1.stack.length && this$1.show('next'); },\n this.autoplayInterval\n );\n }\n\n },\n\n stopAutoplay: function() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n }\n\n }\n\n };\n\n var SliderDrag = {\n\n data: {\n threshold: 10,\n preventCatch: false\n },\n\n init: function() {\n var this$1 = this;\n\n\n ['start', 'move', 'end'].forEach(function (key) {\n\n var fn = this$1[key];\n this$1[key] = function (e) {\n\n var pos = getPos$1(e).x * (isRtl ? -1 : 1);\n\n this$1.prevPos = pos !== this$1.pos ? this$1.pos : this$1.prevPos;\n this$1.pos = pos;\n\n fn(e);\n };\n\n });\n\n },\n\n events: [\n\n {\n\n name: pointerDown,\n\n delegate: function() {\n return this.slidesSelector;\n },\n\n handler: function(e) {\n\n if (!isTouch(e) && hasTextNodesOnly(e.target)\n || e.button > 0\n || this.length < 2\n || this.preventCatch\n ) {\n return;\n }\n\n this.start(e);\n }\n\n },\n\n {\n name: 'dragstart',\n\n handler: function(e) {\n e.preventDefault();\n }\n }\n\n ],\n\n methods: {\n\n start: function() {\n\n this.drag = this.pos;\n\n if (this._transitioner) {\n\n this.percent = this._transitioner.percent();\n this.drag += this._transitioner.getDistance() * this.percent * this.dir;\n\n this._transitioner.translate(this.percent);\n this._transitioner.cancel();\n\n this.dragging = true;\n\n this.stack = [];\n\n } else {\n this.prevIndex = this.index;\n }\n\n this.unbindMove = on(document, pointerMove, this.move, {capture: true, passive: false});\n on(window, 'scroll', this.unbindMove);\n on(document, pointerUp, this.end, true);\n\n },\n\n move: function(e) {\n var this$1 = this;\n\n\n var distance = this.pos - this.drag;\n\n if (distance === 0 || this.prevPos === this.pos || !this.dragging && Math.abs(distance) < this.threshold) {\n return;\n }\n\n e.cancelable && e.preventDefault();\n\n this.dragging = true;\n this.dir = (distance < 0 ? 1 : -1);\n\n var ref = this;\n var slides = ref.slides;\n var ref$1 = this;\n var prevIndex = ref$1.prevIndex;\n var dis = Math.abs(distance);\n var nextIndex = this.getIndex(prevIndex + this.dir, prevIndex);\n var width$$1 = this._getDistance(prevIndex, nextIndex) || slides[prevIndex].offsetWidth;\n\n while (nextIndex !== prevIndex && dis > width$$1) {\n\n this$1.drag -= width$$1 * this$1.dir;\n\n prevIndex = nextIndex;\n dis -= width$$1;\n nextIndex = this$1.getIndex(prevIndex + this$1.dir, prevIndex);\n width$$1 = this$1._getDistance(prevIndex, nextIndex) || slides[prevIndex].offsetWidth;\n\n }\n\n this.percent = dis / width$$1;\n\n var prev = slides[prevIndex];\n var next = slides[nextIndex];\n var changed = this.index !== nextIndex;\n var edge = prevIndex === nextIndex;\n\n var itemShown;\n\n [this.index, this.prevIndex].filter(function (i) { return !includes([nextIndex, prevIndex], i); }).forEach(function (i) {\n trigger(slides[i], 'itemhidden', [this$1]);\n\n if (edge) {\n itemShown = true;\n this$1.prevIndex = prevIndex;\n }\n\n });\n\n if (this.index === prevIndex && this.prevIndex !== prevIndex || itemShown) {\n trigger(slides[this.index], 'itemshown', [this]);\n }\n\n if (changed) {\n this.prevIndex = prevIndex;\n this.index = nextIndex;\n\n !edge && trigger(prev, 'beforeitemhide', [this]);\n trigger(next, 'beforeitemshow', [this]);\n }\n\n this._transitioner = this._translate(Math.abs(this.percent), prev, !edge && next);\n\n if (changed) {\n !edge && trigger(prev, 'itemhide', [this]);\n trigger(next, 'itemshow', [this]);\n }\n\n },\n\n end: function() {\n\n off(window, 'scroll', this.unbindMove);\n this.unbindMove();\n off(document, pointerUp, this.end, true);\n\n if (this.dragging) {\n\n this.dragging = null;\n\n if (this.index === this.prevIndex) {\n this.percent = 1 - this.percent;\n this.dir *= -1;\n this._show(false, this.index, true);\n this._transitioner = null;\n } else {\n\n var dirChange = (isRtl ? this.dir * (isRtl ? 1 : -1) : this.dir) < 0 === this.prevPos > this.pos;\n this.index = dirChange ? this.index : this.prevIndex;\n\n if (dirChange) {\n this.percent = 1 - this.percent;\n }\n\n this.show(this.dir > 0 && !dirChange || this.dir < 0 && dirChange ? 'next' : 'previous', true);\n }\n\n preventClick();\n\n }\n\n this.drag\n = this.percent\n = null;\n\n }\n\n }\n\n };\n\n function hasTextNodesOnly(el) {\n return !el.children.length && el.childNodes.length;\n }\n\n var SliderNav = {\n\n data: {\n selNav: false\n },\n\n computed: {\n\n nav: function(ref, $el) {\n var selNav = ref.selNav;\n\n return $(selNav, $el);\n },\n\n navItemSelector: function(ref) {\n var attrItem = ref.attrItem;\n\n return (\"[\" + attrItem + \"],[data-\" + attrItem + \"]\");\n },\n\n navItems: function(_, $el) {\n return $$(this.navItemSelector, $el);\n }\n\n },\n\n update: [\n\n {\n\n write: function() {\n var this$1 = this;\n\n\n if (this.nav && this.length !== this.nav.children.length) {\n html(this.nav, this.slides.map(function (_, i) { return (\"<li \" + (this$1.attrItem) + \"=\\\"\" + i + \"\\\"><a href=\\\"#\\\"></a></li>\"); }).join(''));\n }\n\n toggleClass($$(this.navItemSelector, this.$el).concat(this.nav), 'uk-hidden', !this.maxIndex);\n\n this.updateNav();\n\n },\n\n events: ['load', 'resize']\n\n }\n\n ],\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return this.navItemSelector;\n },\n\n handler: function(e) {\n e.preventDefault();\n e.current.blur();\n this.show(data(e.current, this.attrItem));\n }\n\n },\n\n {\n\n name: 'itemshow',\n handler: 'updateNav'\n\n }\n\n ],\n\n methods: {\n\n updateNav: function() {\n var this$1 = this;\n\n\n var i = this.getValidIndex();\n this.navItems.forEach(function (el) {\n\n var cmd = data(el, this$1.attrItem);\n\n toggleClass(el, this$1.clsActive, toNumber(cmd) === i);\n toggleClass(el, 'uk-invisible', this$1.finite && (cmd === 'previous' && i === 0 || cmd === 'next' && i >= this$1.maxIndex));\n });\n\n }\n\n }\n\n };\n\n var Slider = {\n\n attrs: true,\n\n mixins: [SliderAutoplay, SliderDrag, SliderNav],\n\n props: {\n clsActivated: Boolean,\n easing: String,\n index: Number,\n finite: Boolean,\n velocity: Number\n },\n\n data: function () { return ({\n easing: 'ease',\n finite: false,\n velocity: 1,\n index: 0,\n stack: [],\n percent: 0,\n clsActive: 'uk-active',\n clsActivated: false,\n Transitioner: false,\n transitionOptions: {}\n }); },\n\n computed: {\n\n duration: function(ref, $el) {\n var velocity = ref.velocity;\n\n return speedUp($el.offsetWidth / velocity);\n },\n\n length: function() {\n return this.slides.length;\n },\n\n list: function(ref, $el) {\n var selList = ref.selList;\n\n return $(selList, $el);\n },\n\n maxIndex: function() {\n return this.length - 1;\n },\n\n slidesSelector: function(ref) {\n var selList = ref.selList;\n\n return (selList + \" > *\");\n },\n\n slides: function() {\n return toNodes(this.list.children);\n }\n\n },\n\n events: {\n\n itemshown: function() {\n this.$update(this.list);\n }\n\n },\n\n methods: {\n\n show: function(index$$1, force) {\n var this$1 = this;\n if ( force === void 0 ) force = false;\n\n\n if (this.dragging || !this.length) {\n return;\n }\n\n var ref = this;\n var stack = ref.stack;\n var queueIndex = force ? 0 : stack.length;\n var reset = function () {\n stack.splice(queueIndex, 1);\n\n if (stack.length) {\n this$1.show(stack.shift(), true);\n }\n };\n\n stack[force ? 'unshift' : 'push'](index$$1);\n\n if (!force && stack.length > 1) {\n\n if (stack.length === 2) {\n this._transitioner.forward(Math.min(this.duration, 200));\n }\n\n return;\n }\n\n var prevIndex = this.index;\n var prev = hasClass(this.slides, this.clsActive) && this.slides[prevIndex];\n var nextIndex = this.getIndex(index$$1, this.index);\n var next = this.slides[nextIndex];\n\n if (prev === next) {\n reset();\n return;\n }\n\n this.dir = getDirection(index$$1, prevIndex);\n this.prevIndex = prevIndex;\n this.index = nextIndex;\n\n prev && trigger(prev, 'beforeitemhide', [this]);\n if (!trigger(next, 'beforeitemshow', [this, prev])) {\n this.index = this.prevIndex;\n reset();\n return;\n }\n\n var promise = this._show(prev, next, force).then(function () {\n\n prev && trigger(prev, 'itemhidden', [this$1]);\n trigger(next, 'itemshown', [this$1]);\n\n return new Promise$1(function (resolve) {\n fastdom.write(function () {\n stack.shift();\n if (stack.length) {\n this$1.show(stack.shift(), true);\n } else {\n this$1._transitioner = null;\n }\n resolve();\n });\n });\n\n });\n\n prev && trigger(prev, 'itemhide', [this]);\n trigger(next, 'itemshow', [this]);\n\n return promise;\n\n },\n\n getIndex: function(index$$1, prev) {\n if ( index$$1 === void 0 ) index$$1 = this.index;\n if ( prev === void 0 ) prev = this.index;\n\n return clamp(getIndex(index$$1, this.slides, prev, this.finite), 0, this.maxIndex);\n },\n\n getValidIndex: function(index$$1, prevIndex) {\n if ( index$$1 === void 0 ) index$$1 = this.index;\n if ( prevIndex === void 0 ) prevIndex = this.prevIndex;\n\n return this.getIndex(index$$1, prevIndex);\n },\n\n _show: function(prev, next, force) {\n\n this._transitioner = this._getTransitioner(\n prev,\n next,\n this.dir,\n assign({\n easing: force\n ? next.offsetWidth < 600\n ? 'cubic-bezier(0.25, 0.46, 0.45, 0.94)' /* easeOutQuad */\n : 'cubic-bezier(0.165, 0.84, 0.44, 1)' /* easeOutQuart */\n : this.easing\n }, this.transitionOptions)\n );\n\n if (!force && !prev) {\n this._transitioner.translate(1);\n return Promise$1.resolve();\n }\n\n var ref = this.stack;\n var length = ref.length;\n return this._transitioner[length > 1 ? 'forward' : 'show'](length > 1 ? Math.min(this.duration, 75 + 75 / (length - 1)) : this.duration, this.percent);\n\n },\n\n _getDistance: function(prev, next) {\n return new this._getTransitioner(prev, prev !== next && next).getDistance();\n },\n\n _translate: function(percent, prev, next) {\n if ( prev === void 0 ) prev = this.prevIndex;\n if ( next === void 0 ) next = this.index;\n\n var transitioner = this._getTransitioner(prev !== next ? prev : false, next);\n transitioner.translate(percent);\n return transitioner;\n },\n\n _getTransitioner: function(prev, next, dir, options) {\n if ( prev === void 0 ) prev = this.prevIndex;\n if ( next === void 0 ) next = this.index;\n if ( dir === void 0 ) dir = this.dir || 1;\n if ( options === void 0 ) options = this.transitionOptions;\n\n return new this.Transitioner(\n isNumber(prev) ? this.slides[prev] : prev,\n isNumber(next) ? this.slides[next] : next,\n dir * (isRtl ? -1 : 1),\n options\n );\n }\n\n }\n\n };\n\n function getDirection(index$$1, prevIndex) {\n return index$$1 === 'next'\n ? 1\n : index$$1 === 'previous'\n ? -1\n : index$$1 < prevIndex\n ? -1\n : 1;\n }\n\n function speedUp(x) {\n return .5 * x + 300; // parabola through (400,500; 600,600; 1800,1200)\n }\n\n var Slideshow = {\n\n mixins: [Slider],\n\n props: {\n animation: String\n },\n\n data: {\n animation: 'slide',\n clsActivated: 'uk-transition-active',\n Animations: Animations,\n Transitioner: Transitioner\n },\n\n computed: {\n\n animation: function(ref) {\n var animation = ref.animation;\n var Animations$$1 = ref.Animations;\n\n return assign(animation in Animations$$1 ? Animations$$1[animation] : Animations$$1.slide, {name: animation});\n },\n\n transitionOptions: function() {\n return {animation: this.animation};\n }\n\n },\n\n events: {\n\n 'itemshow itemhide itemshown itemhidden': function(ref) {\n var target = ref.target;\n\n this.$update(target);\n },\n\n itemshow: function() {\n isNumber(this.prevIndex) && fastdom.flush(); // iOS 10+ will honor the video.play only if called from a gesture handler\n },\n\n beforeitemshow: function(ref) {\n var target = ref.target;\n\n addClass(target, this.clsActive);\n },\n\n itemshown: function(ref) {\n var target = ref.target;\n\n addClass(target, this.clsActivated);\n },\n\n itemhidden: function(ref) {\n var target = ref.target;\n\n removeClass(target, this.clsActive, this.clsActivated);\n }\n\n }\n\n };\n\n var LightboxPanel = {\n\n mixins: [Container, Modal, Togglable, Slideshow],\n\n functional: true,\n\n props: {\n delayControls: Number,\n preload: Number,\n videoAutoplay: Boolean,\n template: String\n },\n\n data: function () { return ({\n preload: 1,\n videoAutoplay: false,\n delayControls: 3000,\n items: [],\n cls: 'uk-open',\n clsPage: 'uk-lightbox-page',\n selList: '.uk-lightbox-items',\n attrItem: 'uk-lightbox-item',\n selClose: '.uk-close-large',\n pauseOnHover: false,\n velocity: 2,\n Animations: Animations$1,\n template: \"<div class=\\\"uk-lightbox uk-overflow-hidden\\\"> <ul class=\\\"uk-lightbox-items\\\"></ul> <div class=\\\"uk-lightbox-toolbar uk-position-top uk-text-right uk-transition-slide-top uk-transition-opaque\\\"> <button class=\\\"uk-lightbox-toolbar-icon uk-close-large\\\" type=\\\"button\\\" uk-close></button> </div> <a class=\\\"uk-lightbox-button uk-position-center-left uk-position-medium uk-transition-fade\\\" href=\\\"#\\\" uk-slidenav-previous uk-lightbox-item=\\\"previous\\\"></a> <a class=\\\"uk-lightbox-button uk-position-center-right uk-position-medium uk-transition-fade\\\" href=\\\"#\\\" uk-slidenav-next uk-lightbox-item=\\\"next\\\"></a> <div class=\\\"uk-lightbox-toolbar uk-lightbox-caption uk-position-bottom uk-text-center uk-transition-slide-bottom uk-transition-opaque\\\"></div> </div>\"\n }); },\n\n created: function() {\n var this$1 = this;\n\n\n this.$mount(append(this.container, this.template));\n\n this.caption = $('.uk-lightbox-caption', this.$el);\n\n this.items.forEach(function () { return append(this$1.list, '<li></li>'); });\n\n },\n\n events: [\n\n {\n\n name: (pointerMove + \" \" + pointerDown + \" keydown\"),\n\n handler: 'showControls'\n\n },\n\n {\n\n name: 'click',\n\n self: true,\n\n delegate: function() {\n return this.slidesSelector;\n },\n\n handler: function(e) {\n e.preventDefault();\n this.hide();\n }\n\n },\n\n {\n\n name: 'shown',\n\n self: true,\n\n handler: 'showControls'\n },\n\n {\n\n name: 'hide',\n\n self: true,\n\n handler: function() {\n\n this.hideControls();\n\n removeClass(this.slides, this.clsActive);\n Transition.stop(this.slides);\n\n }\n },\n\n {\n\n name: 'keyup',\n\n el: document,\n\n handler: function(e) {\n\n if (!this.isToggled(this.$el)) {\n return;\n }\n\n switch (e.keyCode) {\n case 37:\n this.show('previous');\n break;\n case 39:\n this.show('next');\n break;\n }\n }\n },\n\n {\n\n name: 'beforeitemshow',\n\n handler: function(e) {\n\n if (this.isToggled()) {\n return;\n }\n\n this.preventCatch = true;\n\n e.preventDefault();\n\n this.toggleNow(this.$el, true);\n\n this.animation = Animations$1['scale'];\n removeClass(e.target, this.clsActive);\n this.stack.splice(1, 0, this.index);\n\n }\n\n },\n\n {\n\n name: 'itemshow',\n\n handler: function(ref) {\n var this$1 = this;\n var target = ref.target;\n\n\n var i = index(target);\n var ref$1 = this.getItem(i);\n var caption = ref$1.caption;\n\n css(this.caption, 'display', caption ? '' : 'none');\n html(this.caption, caption);\n\n for (var j = 0; j <= this.preload; j++) {\n this$1.loadItem(this$1.getIndex(i + j));\n this$1.loadItem(this$1.getIndex(i - j));\n }\n\n }\n\n },\n\n {\n\n name: 'itemshown',\n\n handler: function() {\n this.preventCatch = false;\n }\n\n },\n\n {\n\n name: 'itemload',\n\n handler: function(_, item) {\n var this$1 = this;\n\n\n var source = item.source;\n var type = item.type;\n var alt = item.alt;\n\n this.setItem(item, '<span uk-spinner></span>');\n\n if (!source) {\n return;\n }\n\n var matches$$1;\n\n // Image\n if (type === 'image' || source.match(/\\.(jp(e)?g|png|gif|svg)($|\\?)/i)) {\n\n getImage(source).then(\n function (img) { return this$1.setItem(item, (\"<img width=\\\"\" + (img.width) + \"\\\" height=\\\"\" + (img.height) + \"\\\" src=\\\"\" + source + \"\\\" alt=\\\"\" + (alt ? alt : '') + \"\\\">\")); },\n function () { return this$1.setError(item); }\n );\n\n // Video\n } else if (type === 'video' || source.match(/\\.(mp4|webm|ogv)($|\\?)/i)) {\n\n var video = $((\"<video controls playsinline\" + (item.poster ? (\" poster=\\\"\" + (item.poster) + \"\\\"\") : '') + \" uk-video=\\\"\" + (this.videoAutoplay) + \"\\\"></video>\"));\n attr(video, 'src', source);\n\n on(video, 'error', function () { return this$1.setError(item); });\n on(video, 'loadedmetadata', function () {\n attr(video, {width: video.videoWidth, height: video.videoHeight});\n this$1.setItem(item, video);\n });\n\n // Iframe\n } else if (type === 'iframe' || source.match(/\\.(html|php)($|\\?)/i)) {\n\n this.setItem(item, (\"<iframe class=\\\"uk-lightbox-iframe\\\" src=\\\"\" + source + \"\\\" frameborder=\\\"0\\\" allowfullscreen></iframe>\"));\n\n // YouTube\n } else if ((matches$$1 = source.match(/\\/\\/.*?youtube(-nocookie)?\\.[a-z]+\\/watch\\?v=([^&\\s]+)/) || source.match(/()youtu\\.be\\/(.*)/))) {\n\n var id = matches$$1[2];\n var setIframe = function (width$$1, height$$1) {\n if ( width$$1 === void 0 ) width$$1 = 640;\n if ( height$$1 === void 0 ) height$$1 = 450;\n\n return this$1.setItem(item, getIframe((\"https://www.youtube\" + (matches$$1[1] || '') + \".com/embed/\" + id), width$$1, height$$1, this$1.videoAutoplay));\n };\n\n getImage((\"https://img.youtube.com/vi/\" + id + \"/maxresdefault.jpg\")).then(\n function (ref) {\n var width$$1 = ref.width;\n var height$$1 = ref.height;\n\n // YouTube default 404 thumb, fall back to low resolution\n if (width$$1 === 120 && height$$1 === 90) {\n getImage((\"https://img.youtube.com/vi/\" + id + \"/0.jpg\")).then(\n function (ref) {\n var width$$1 = ref.width;\n var height$$1 = ref.height;\n\n return setIframe(width$$1, height$$1);\n },\n setIframe\n );\n } else {\n setIframe(width$$1, height$$1);\n }\n },\n setIframe\n );\n\n // Vimeo\n } else if ((matches$$1 = source.match(/(\\/\\/.*?)vimeo\\.[a-z]+\\/([0-9]+).*?/))) {\n\n ajax((\"https://vimeo.com/api/oembed.json?maxwidth=1920&url=\" + (encodeURI(source))), {responseType: 'json', withCredentials: false})\n .then(\n function (ref) {\n var ref_response = ref.response;\n var height$$1 = ref_response.height;\n var width$$1 = ref_response.width;\n\n return this$1.setItem(item, getIframe((\"https://player.vimeo.com/video/\" + (matches$$1[2])), width$$1, height$$1, this$1.videoAutoplay));\n },\n function () { return this$1.setError(item); }\n );\n\n }\n\n }\n\n }\n\n ],\n\n methods: {\n\n loadItem: function(index$$1) {\n if ( index$$1 === void 0 ) index$$1 = this.index;\n\n\n var item = this.getItem(index$$1);\n\n if (item.content) {\n return;\n }\n\n trigger(this.$el, 'itemload', [item]);\n },\n\n getItem: function(index$$1) {\n if ( index$$1 === void 0 ) index$$1 = this.index;\n\n return this.items[index$$1] || {};\n },\n\n setItem: function(item, content) {\n assign(item, {content: content});\n var el = html(this.slides[this.items.indexOf(item)], content);\n trigger(this.$el, 'itemloaded', [this, el]);\n this.$update(el);\n },\n\n setError: function(item) {\n this.setItem(item, '<span uk-icon=\"icon: bolt; ratio: 2\"></span>');\n },\n\n showControls: function() {\n\n clearTimeout(this.controlsTimer);\n this.controlsTimer = setTimeout(this.hideControls, this.delayControls);\n\n addClass(this.$el, 'uk-active', 'uk-transition-active');\n\n },\n\n hideControls: function() {\n removeClass(this.$el, 'uk-active', 'uk-transition-active');\n }\n\n }\n\n };\n\n function getIframe(src, width$$1, height$$1, autoplay) {\n return (\"<iframe src=\\\"\" + src + \"\\\" width=\\\"\" + width$$1 + \"\\\" height=\\\"\" + height$$1 + \"\\\" style=\\\"max-width: 100%; box-sizing: border-box;\\\" frameborder=\\\"0\\\" allowfullscreen uk-video=\\\"autoplay: \" + autoplay + \"\\\" uk-responsive></iframe>\");\n }\n\n var props = merge(LightboxPanel, 'props');\n var defaults = merge(LightboxPanel, 'data');\n\n var Lightbox = {\n\n install: install$2,\n\n attrs: true,\n\n props: assign({toggle: String}, props),\n\n data: assign({toggle: 'a'}, Object.keys(props).reduce(function (data$$1, key) {\n data$$1[key] = defaults[key];\n return data$$1;\n }, {})),\n\n computed: {\n\n toggles: function(ref, $el) {\n var toggle = ref.toggle;\n\n return $$(toggle, $el);\n }\n\n },\n\n disconnected: function() {\n this._destroy();\n },\n\n events: [\n\n {\n\n name: 'click',\n\n delegate: function() {\n return ((this.toggle) + \":not(.uk-disabled)\");\n },\n\n handler: function(e) {\n e.preventDefault();\n e.current.blur();\n this.show(index(this.toggles, e.current));\n }\n\n }\n\n ],\n\n update: function(data$$1) {\n\n data$$1.toggles = data$$1.toggles || this.toggles;\n\n if (this.panel && this.animation) {\n this.panel.$props.animation = this.animation;\n this.panel.$emit();\n }\n\n if (!this.panel || isEqualList$1(data$$1.toggles, this.toggles)) {\n return;\n }\n\n data$$1.toggles = this.toggles;\n this._destroy();\n this._init();\n\n },\n\n methods: {\n\n _init: function() {\n return this.panel = this.panel || this.$create('lightboxPanel', assign({}, this.$props, {\n items: this.toggles.reduce(function (items, el) {\n items.push(['href', 'caption', 'type', 'poster', 'alt'].reduce(function (obj, attr$$1) {\n obj[attr$$1 === 'href' ? 'source' : attr$$1] = data(el, attr$$1);\n return obj;\n }, {}));\n return items;\n }, [])\n }));\n },\n\n _destroy: function() {\n if (this.panel) {\n this.panel.$destroy(true);\n this.panel = null;\n }\n },\n\n show: function(index$$1) {\n\n if (!this.panel) {\n this._init();\n }\n\n return this.panel.show(index$$1);\n\n },\n\n hide: function() {\n\n return this.panel && this.panel.hide();\n\n }\n\n }\n\n };\n\n function isEqualList$1(listA, listB) {\n return listA.length === listB.length\n && listA.every(function (el, i) { return el === listB[i]; });\n }\n\n function merge(options, prop) {\n return assign.apply(\n void 0, [ {} ].concat( (options.mixins ? options.mixins.map(function (mixin) { return merge(mixin, prop); }) : []),\n [isFunction(options[prop]) ? options[prop]() : options[prop]] ));\n }\n\n function install$2(UIkit) {\n if (!UIkit.lightboxPanel) {\n UIkit.component('lightboxPanel', LightboxPanel);\n }\n }\n\n var obj;\n\n var containers = {};\n\n var Notification = {\n\n functional: true,\n\n args: ['message', 'status'],\n\n data: {\n message: '',\n status: '',\n timeout: 5000,\n group: null,\n pos: 'top-center',\n clsClose: 'uk-notification-close',\n clsMsg: 'uk-notification-message'\n },\n\n install: install$3,\n\n created: function() {\n\n if (!containers[this.pos]) {\n containers[this.pos] = append(this.$container, (\"<div class=\\\"uk-notification uk-notification-\" + (this.pos) + \"\\\"></div>\"));\n }\n\n var container = css(containers[this.pos], 'display', 'block');\n\n this.$mount(append(container,\n (\"<div class=\\\"\" + (this.clsMsg) + (this.status ? (\" \" + (this.clsMsg) + \"-\" + (this.status)) : '') + \"\\\"> <a href=\\\"#\\\" class=\\\"\" + (this.clsClose) + \"\\\" data-uk-close></a> <div>\" + (this.message) + \"</div> </div>\")\n ));\n\n },\n\n ready: function() {\n var this$1 = this;\n\n\n var marginBottom = toFloat(css(this.$el, 'marginBottom'));\n Transition.start(\n css(this.$el, {opacity: 0, marginTop: -this.$el.offsetHeight, marginBottom: 0}),\n {opacity: 1, marginTop: 0, marginBottom: marginBottom}\n ).then(function () {\n if (this$1.timeout) {\n this$1.timer = setTimeout(this$1.close, this$1.timeout);\n }\n });\n\n },\n\n events: ( obj = {\n\n click: function(e) {\n if (closest(e.target, 'a[href=\"#\"]')) {\n e.preventDefault();\n }\n this.close();\n }\n\n }, obj[pointerEnter] = function () {\n if (this.timer) {\n clearTimeout(this.timer);\n }\n }, obj[pointerLeave] = function () {\n if (this.timeout) {\n this.timer = setTimeout(this.close, this.timeout);\n }\n }, obj ),\n\n methods: {\n\n close: function(immediate) {\n var this$1 = this;\n\n\n var removeFn = function () {\n\n trigger(this$1.$el, 'close', [this$1]);\n remove(this$1.$el);\n\n if (!containers[this$1.pos].children.length) {\n css(containers[this$1.pos], 'display', 'none');\n }\n\n };\n\n if (this.timer) {\n clearTimeout(this.timer);\n }\n\n if (immediate) {\n removeFn();\n } else {\n Transition.start(this.$el, {\n opacity: 0,\n marginTop: -this.$el.offsetHeight,\n marginBottom: 0\n }).then(removeFn);\n }\n }\n\n }\n\n };\n\n function install$3(UIkit) {\n UIkit.notification.closeAll = function (group, immediate) {\n apply(document.body, function (el) {\n var notification = UIkit.getComponent(el, 'notification');\n if (notification && (!group || group === notification.group)) {\n notification.close(immediate);\n }\n });\n };\n }\n\n var props$1 = ['x', 'y', 'bgx', 'bgy', 'rotate', 'scale', 'color', 'backgroundColor', 'borderColor', 'opacity', 'blur', 'hue', 'grayscale', 'invert', 'saturate', 'sepia', 'fopacity'];\n\n var Parallax = {\n\n props: props$1.reduce(function (props, prop) {\n props[prop] = 'list';\n return props;\n }, {\n media: 'media'\n }),\n\n data: props$1.reduce(function (data$$1, prop) {\n data$$1[prop] = undefined;\n return data$$1;\n }, {\n media: false\n }),\n\n computed: {\n\n props: function(properties, $el) {\n var this$1 = this;\n\n\n return props$1.reduce(function (props, prop) {\n\n if (isUndefined(properties[prop])) {\n return props;\n }\n\n var isColor = prop.match(/color/i);\n var isCssProp = isColor || prop === 'opacity';\n\n var pos, bgPos, diff;\n var steps = properties[prop].slice(0);\n\n if (isCssProp) {\n css($el, prop, '');\n }\n\n if (steps.length < 2) {\n steps.unshift((prop === 'scale'\n ? 1\n : isCssProp\n ? css($el, prop)\n : 0) || 0);\n }\n\n var unit = includes(steps.join(''), '%') ? '%' : 'px';\n\n if (isColor) {\n\n var ref = $el.style;\n var color = ref.color;\n steps = steps.map(function (step) { return parseColor($el, step); });\n $el.style.color = color;\n\n } else {\n\n steps = steps.map(toFloat);\n\n }\n\n if (prop.match(/^bg/)) {\n\n css($el, (\"background-position-\" + (prop[2])), '');\n bgPos = css($el, 'backgroundPosition').split(' ')[prop[2] === 'x' ? 0 : 1]; // IE 11 can't read background-position-[x|y]\n\n if (this$1.covers) {\n\n var min = Math.min.apply(Math, steps);\n var max = Math.max.apply(Math, steps);\n var down = steps.indexOf(min) < steps.indexOf(max);\n\n diff = max - min;\n\n steps = steps.map(function (step) { return step - (down ? min : max); });\n pos = (down ? -diff : 0) + \"px\";\n\n } else {\n\n pos = bgPos;\n\n }\n }\n\n props[prop] = {steps: steps, unit: unit, pos: pos, bgPos: bgPos, diff: diff};\n\n return props;\n\n }, {});\n\n },\n\n bgProps: function() {\n var this$1 = this;\n\n return ['bgx', 'bgy'].filter(function (bg) { return bg in this$1.props; });\n },\n\n covers: function(_, $el) {\n return covers($el);\n }\n\n },\n\n disconnected: function() {\n delete this._image;\n },\n\n update: [\n\n {\n\n read: function(data$$1) {\n var this$1 = this;\n\n\n data$$1.active = !this.media || window.matchMedia(this.media).matches;\n\n if (data$$1.image) {\n data$$1.image.dimEl = {\n width: this.$el.offsetWidth,\n height: this.$el.offsetHeight\n };\n }\n\n if ('image' in data$$1 || !this.covers || !this.bgProps.length) {\n return;\n }\n\n var src = css(this.$el, 'backgroundImage').replace(/^none|url\\([\"']?(.+?)[\"']?\\)$/, '$1');\n\n if (!src) {\n return;\n }\n\n data$$1.image = false;\n\n getImage(src).then(function (img) {\n data$$1.image = {\n width: img.naturalWidth,\n height: img.naturalHeight\n };\n\n this$1.$emit();\n });\n\n },\n\n write: function(ref) {\n var this$1 = this;\n var image = ref.image;\n var active = ref.active;\n\n\n if (!image) {\n return;\n }\n\n if (!active) {\n css(this.$el, {backgroundSize: '', backgroundRepeat: ''});\n return;\n }\n\n var dimEl = image.dimEl;\n\n var dim = Dimensions.cover(image, dimEl);\n\n this.bgProps.forEach(function (prop) {\n\n var ref = this$1.props[prop];\n var diff = ref.diff;\n var bgPos = ref.bgPos;\n var steps = ref.steps;\n var attr$$1 = prop === 'bgy' ? 'height' : 'width';\n var span = dim[attr$$1] - dimEl[attr$$1];\n\n if (!bgPos.match(/%$|0px/)) {\n return;\n }\n\n if (span < diff) {\n dimEl[attr$$1] = dim[attr$$1] + diff - span;\n } else if (span > diff) {\n\n var bgPosFloat = parseFloat(bgPos);\n\n if (bgPosFloat) {\n this$1.props[prop].steps = steps.map(function (step) { return step - (span - diff) / (100 / bgPosFloat); });\n }\n }\n\n dim = Dimensions.cover(image, dimEl);\n });\n\n css(this.$el, {\n backgroundSize: ((dim.width) + \"px \" + (dim.height) + \"px\"),\n backgroundRepeat: 'no-repeat'\n });\n\n },\n\n events: ['load', 'resize']\n\n }\n\n ],\n\n methods: {\n\n reset: function() {\n var this$1 = this;\n\n each(this.getCss(0), function (_, prop) { return css(this$1.$el, prop, ''); });\n },\n\n getCss: function(percent) {\n\n var ref = this;\n var props = ref.props;\n var translated = false;\n\n return Object.keys(props).reduce(function (css$$1, prop) {\n\n var ref = props[prop];\n var steps = ref.steps;\n var unit = ref.unit;\n var pos = ref.pos;\n var value = getValue(steps, percent);\n\n switch (prop) {\n\n // transforms\n case 'x':\n case 'y':\n\n if (translated) {\n break;\n }\n\n var ref$1 = ['x', 'y'].map(function (dir) { return prop === dir\n ? value + unit\n : props[dir]\n ? getValue(props[dir].steps, percent) + props[dir].unit\n : 0; }\n );\n var x = ref$1[0];\n var y = ref$1[1];\n\n translated = css$$1.transform += \" translate3d(\" + x + \", \" + y + \", 0)\";\n break;\n case 'rotate':\n css$$1.transform += \" rotate(\" + value + \"deg)\";\n break;\n case 'scale':\n css$$1.transform += \" scale(\" + value + \")\";\n break;\n\n // bg image\n case 'bgy':\n case 'bgx':\n css$$1[(\"background-position-\" + (prop[2]))] = \"calc(\" + pos + \" + \" + (value + unit) + \")\";\n break;\n\n // color\n case 'color':\n case 'backgroundColor':\n case 'borderColor':\n\n var ref$2 = getStep(steps, percent);\n var start = ref$2[0];\n var end = ref$2[1];\n var p = ref$2[2];\n\n css$$1[prop] = \"rgba(\" + (start.map(function (value, i) {\n value = value + p * (end[i] - value);\n return i === 3 ? toFloat(value) : parseInt(value, 10);\n }).join(',')) + \")\";\n break;\n\n // CSS Filter\n case 'blur':\n css$$1.filter += \" blur(\" + value + \"px)\";\n break;\n case 'hue':\n css$$1.filter += \" hue-rotate(\" + value + \"deg)\";\n break;\n case 'fopacity':\n css$$1.filter += \" opacity(\" + value + \"%)\";\n break;\n case 'grayscale':\n case 'invert':\n case 'saturate':\n case 'sepia':\n css$$1.filter += \" \" + prop + \"(\" + value + \"%)\";\n break;\n\n default:\n css$$1[prop] = value;\n }\n\n return css$$1;\n\n }, {transform: '', filter: ''});\n\n }\n\n }\n\n };\n\n function parseColor(el, color) {\n return css(css(el, 'color', color), 'color').split(/[(),]/g).slice(1, -1).concat(1).slice(0, 4).map(function (n) { return toFloat(n); });\n }\n\n function getStep(steps, percent) {\n var count = steps.length - 1;\n var index$$1 = Math.min(Math.floor(count * percent), count - 1);\n var step = steps.slice(index$$1, index$$1 + 2);\n\n step.push(percent === 1 ? 1 : percent % (1 / count) * count);\n\n return step;\n }\n\n function getValue(steps, percent) {\n var ref = getStep(steps, percent);\n var start = ref[0];\n var end = ref[1];\n var p = ref[2];\n return (isNumber(start)\n ? start + Math.abs(start - end) * p * (start < end ? 1 : -1)\n : +end\n ).toFixed(2);\n }\n\n function covers(el) {\n var ref = el.style;\n var backgroundSize = ref.backgroundSize;\n var covers = css(css(el, 'backgroundSize', ''), 'backgroundSize') === 'cover';\n el.style.backgroundSize = backgroundSize;\n return covers;\n }\n\n var Parallax$1 = {\n\n mixins: [Parallax],\n\n props: {\n target: String,\n viewport: Number,\n easing: Number,\n },\n\n data: {\n target: false,\n viewport: 1,\n easing: 1,\n },\n\n computed: {\n\n target: function(ref, $el) {\n var target = ref.target;\n\n return target && query(target, $el) || $el;\n }\n\n },\n\n update: [\n\n {\n\n read: function(ref) {\n var percent = ref.percent;\n\n return {\n prev: percent,\n percent: ease$1(scrolledOver(this.target) / (this.viewport || 1), this.easing)\n };\n },\n\n write: function(ref, ref$1) {\n var prev = ref.prev;\n var percent = ref.percent;\n var active = ref.active;\n var type = ref$1.type;\n\n\n if (type !== 'scroll') {\n prev = false;\n }\n\n if (!active) {\n this.reset();\n return;\n }\n\n if (prev !== percent) {\n css(this.$el, this.getCss(percent));\n }\n\n },\n\n events: ['scroll', 'load', 'resize']\n }\n\n ]\n\n };\n\n function ease$1(percent, easing) {\n return clamp(percent * (1 - (easing - easing * percent)));\n }\n\n var SliderReactive = {\n\n update: [\n\n {\n\n write: function() {\n\n if (this.stack.length || this.dragging) {\n return;\n }\n\n var index$$1 = this.getValidIndex();\n delete this.index;\n removeClass(this.slides, this.clsActive, this.clsActivated);\n this.show(index$$1);\n\n },\n\n events: ['load', 'resize']\n\n }\n\n ]\n\n };\n\n function Transitioner$1 (prev, next, dir, ref) {\n var center = ref.center;\n var easing = ref.easing;\n var list = ref.list;\n\n\n var deferred = new Deferred();\n\n var from = prev\n ? getLeft(prev, list, center)\n : getLeft(next, list, center) + next.offsetWidth * dir;\n var to = next\n ? getLeft(next, list, center)\n : from + prev.offsetWidth * dir * (isRtl ? -1 : 1);\n\n return {\n\n dir: dir,\n\n show: function(duration, percent, linear) {\n if ( percent === void 0 ) percent = 0;\n\n\n var timing = linear ? 'linear' : easing;\n duration -= Math.round(duration * clamp(percent, -1, 1));\n\n this.translate(percent);\n\n prev && this.updateTranslates();\n percent = prev ? percent : clamp(percent, 0, 1);\n triggerUpdate$1(this.getItemIn(), 'itemin', {percent: percent, duration: duration, timing: timing, dir: dir});\n prev && triggerUpdate$1(this.getItemIn(true), 'itemout', {percent: 1 - percent, duration: duration, timing: timing, dir: dir});\n\n Transition\n .start(list, {transform: translate(-to * (isRtl ? -1 : 1), 'px')}, duration, timing)\n .then(deferred.resolve, noop);\n\n return deferred.promise;\n\n },\n\n stop: function() {\n return Transition.stop(list);\n },\n\n cancel: function() {\n Transition.cancel(list);\n },\n\n reset: function() {\n css(list, 'transform', '');\n },\n\n forward: function(duration, percent) {\n if ( percent === void 0 ) percent = this.percent();\n\n Transition.cancel(list);\n return this.show(duration, percent, true);\n },\n\n translate: function(percent) {\n\n var distance = this.getDistance() * dir * (isRtl ? -1 : 1);\n\n css(list, 'transform', translate(clamp(\n -to + (distance - distance * percent),\n -getWidth(list),\n list.offsetWidth\n ) * (isRtl ? -1 : 1), 'px'));\n\n this.updateTranslates();\n\n if (prev) {\n percent = clamp(percent, -1, 1);\n triggerUpdate$1(this.getItemIn(), 'itemtranslatein', {percent: percent, dir: dir});\n triggerUpdate$1(this.getItemIn(true), 'itemtranslateout', {percent: 1 - percent, dir: dir});\n }\n\n },\n\n percent: function() {\n return Math.abs((css(list, 'transform').split(',')[4] * (isRtl ? -1 : 1) + from) / (to - from));\n },\n\n getDistance: function() {\n return Math.abs(to - from);\n },\n\n getItemIn: function(out) {\n if ( out === void 0 ) out = false;\n\n\n var actives = this.getActives();\n var all = sortBy(slides(list), 'offsetLeft');\n var i = index(all, actives[dir * (out ? -1 : 1) > 0 ? actives.length - 1 : 0]);\n\n return ~i && all[i + (prev && !out ? dir : 0)];\n\n },\n\n getActives: function() {\n\n var left = getLeft(prev || next, list, center);\n\n return sortBy(slides(list).filter(function (slide) {\n var slideLeft = getElLeft(slide, list);\n return slideLeft >= left && slideLeft + slide.offsetWidth <= list.offsetWidth + left;\n }), 'offsetLeft');\n\n },\n\n updateTranslates: function() {\n\n var actives = this.getActives();\n\n slides(list).forEach(function (slide) {\n var isActive = includes(actives, slide);\n\n triggerUpdate$1(slide, (\"itemtranslate\" + (isActive ? 'in' : 'out')), {\n percent: isActive ? 1 : 0,\n dir: slide.offsetLeft <= next.offsetLeft ? 1 : -1\n });\n });\n }\n\n };\n\n }\n\n function getLeft(el, list, center) {\n\n var left = getElLeft(el, list);\n\n return center\n ? left - centerEl(el, list)\n : Math.min(left, getMax(list));\n\n }\n\n function getMax(list) {\n return Math.max(0, getWidth(list) - list.offsetWidth);\n }\n\n function getWidth(list) {\n return slides(list).reduce(function (right, el) { return el.offsetWidth + right; }, 0);\n }\n\n function getMaxWidth(list) {\n return slides(list).reduce(function (right, el) { return Math.max(right, el.offsetWidth); }, 0);\n }\n\n function centerEl(el, list) {\n return list.offsetWidth / 2 - el.offsetWidth / 2;\n }\n\n function getElLeft(el, list) {\n return (el.offsetLeft + (isRtl ? el.offsetWidth - list.offsetWidth : 0)) * (isRtl ? -1 : 1);\n }\n\n function triggerUpdate$1(el, type, data$$1) {\n trigger(el, createEvent(type, false, false, data$$1));\n }\n\n function slides(list) {\n return toNodes(list.children);\n }\n\n var Slider$1 = {\n\n mixins: [Class, Slider, SliderReactive],\n\n props: {\n center: Boolean,\n sets: Boolean,\n },\n\n data: {\n center: false,\n sets: false,\n attrItem: 'uk-slider-item',\n selList: '.uk-slider-items',\n selNav: '.uk-slider-nav',\n clsContainer: 'uk-slider-container',\n Transitioner: Transitioner$1\n },\n\n computed: {\n\n avgWidth: function() {\n return getWidth(this.list) / this.length;\n },\n\n finite: function(ref) {\n var finite = ref.finite;\n\n return finite || getWidth(this.list) < this.list.offsetWidth + getMaxWidth(this.list) + this.center;\n },\n\n maxIndex: function() {\n var this$1 = this;\n\n\n if (!this.finite || this.center && !this.sets) {\n return this.length - 1;\n }\n\n if (this.center) {\n return this.sets[this.sets.length - 1];\n }\n\n css(this.slides, 'order', '');\n\n var max = getMax(this.list);\n var i = this.length;\n\n while (i--) {\n if (getElLeft(this$1.list.children[i], this$1.list) < max) {\n return Math.min(i + 1, this$1.length - 1);\n }\n }\n\n return 0;\n },\n\n sets: function(ref) {\n var this$1 = this;\n var sets = ref.sets;\n\n\n var width$$1 = this.list.offsetWidth / (this.center ? 2 : 1);\n\n var left = 0;\n var leftCenter = width$$1;\n var slideLeft = 0;\n\n sets = sets && this.slides.reduce(function (sets, slide, i) {\n\n var ref = offset(slide);\n var slideWidth = ref.width;\n var slideRight = slideLeft + slideWidth;\n\n if (slideRight > left) {\n\n if (!this$1.center && i > this$1.maxIndex) {\n i = this$1.maxIndex;\n }\n\n if (!includes(sets, i)) {\n\n var cmp = this$1.slides[i + 1];\n if (this$1.center && cmp && slideWidth < leftCenter - offset(cmp).width / 2) {\n leftCenter -= slideWidth;\n } else {\n leftCenter = width$$1;\n sets.push(i);\n left = slideLeft + width$$1 + (this$1.center ? slideWidth / 2 : 0);\n }\n\n }\n }\n\n slideLeft += slideWidth;\n\n return sets;\n\n }, []);\n\n return sets && sets.length && sets;\n\n },\n\n transitionOptions: function() {\n return {\n center: this.center,\n list: this.list\n };\n }\n\n },\n\n connected: function() {\n toggleClass(this.$el, this.clsContainer, !$((\".\" + (this.clsContainer)), this.$el));\n },\n\n update: {\n\n write: function() {\n var this$1 = this;\n\n\n $$((\"[\" + (this.attrItem) + \"],[data-\" + (this.attrItem) + \"]\"), this.$el).forEach(function (el) {\n var index$$1 = data(el, this$1.attrItem);\n this$1.maxIndex && toggleClass(el, 'uk-hidden', isNumeric(index$$1) && (this$1.sets && !includes(this$1.sets, toFloat(index$$1)) || index$$1 > this$1.maxIndex));\n });\n\n },\n\n events: ['load', 'resize']\n\n },\n\n events: {\n\n beforeitemshow: function(e) {\n var this$1 = this;\n\n\n if (!this.dragging && this.sets && this.stack.length < 2 && !includes(this.sets, this.index)) {\n this.index = this.getValidIndex();\n }\n\n var diff = Math.abs(\n this.index\n - this.prevIndex\n + (this.dir > 0 && this.index < this.prevIndex || this.dir < 0 && this.index > this.prevIndex ? (this.maxIndex + 1) * this.dir : 0)\n );\n\n if (!this.dragging && diff > 1) {\n\n for (var i = 0; i < diff; i++) {\n this$1.stack.splice(1, 0, this$1.dir > 0 ? 'next' : 'previous');\n }\n\n e.preventDefault();\n return;\n }\n\n this.duration = speedUp(this.avgWidth / this.velocity)\n * ((\n this.dir < 0 || !this.slides[this.prevIndex]\n ? this.slides[this.index]\n : this.slides[this.prevIndex]\n ).offsetWidth / this.avgWidth);\n\n this.reorder();\n\n },\n\n itemshow: function() {\n !isUndefined(this.prevIndex) && addClass(this._getTransitioner().getItemIn(), this.clsActive);\n },\n\n itemshown: function() {\n var this$1 = this;\n\n var actives = this._getTransitioner(this.index).getActives();\n this.slides.forEach(function (slide) { return toggleClass(slide, this$1.clsActive, includes(actives, slide)); });\n (!this.sets || includes(this.sets, toFloat(this.index))) && this.slides.forEach(function (slide) { return toggleClass(slide, this$1.clsActivated, includes(actives, slide)); });\n }\n\n },\n\n methods: {\n\n reorder: function() {\n var this$1 = this;\n\n\n css(this.slides, 'order', '');\n\n if (this.finite) {\n return;\n }\n\n var index$$1 = this.dir > 0 && this.slides[this.prevIndex] ? this.prevIndex : this.index;\n\n this.slides.forEach(function (slide, i) { return css(slide, 'order', this$1.dir > 0 && i < index$$1\n ? 1\n : this$1.dir < 0 && i >= this$1.index\n ? -1\n : ''\n ); }\n );\n\n if (!this.center) {\n return;\n }\n\n var next = this.slides[index$$1];\n var width$$1 = this.list.offsetWidth / 2 - next.offsetWidth / 2;\n var j = 0;\n\n while (width$$1 > 0) {\n var slideIndex = this$1.getIndex(--j + index$$1, index$$1);\n var slide = this$1.slides[slideIndex];\n\n css(slide, 'order', slideIndex > index$$1 ? -2 : -1);\n width$$1 -= slide.offsetWidth;\n }\n\n },\n\n getValidIndex: function(index$$1, prevIndex) {\n var this$1 = this;\n if ( index$$1 === void 0 ) index$$1 = this.index;\n if ( prevIndex === void 0 ) prevIndex = this.prevIndex;\n\n\n index$$1 = this.getIndex(index$$1, prevIndex);\n\n if (!this.sets) {\n return index$$1;\n }\n\n var prev;\n\n do {\n\n if (includes(this$1.sets, index$$1)) {\n return index$$1;\n }\n\n prev = index$$1;\n index$$1 = this$1.getIndex(index$$1 + this$1.dir, prevIndex);\n\n } while (index$$1 !== prev);\n\n return index$$1;\n }\n\n }\n\n };\n\n var SliderParallax = {\n\n mixins: [Parallax],\n\n data: {\n selItem: '!li'\n },\n\n computed: {\n\n item: function(ref, $el) {\n var selItem = ref.selItem;\n\n return query(selItem, $el);\n }\n\n },\n\n events: [\n\n {\n\n name: 'itemshown',\n\n self: true,\n\n el: function() {\n return this.item;\n },\n\n handler: function() {\n css(this.$el, this.getCss(.5));\n }\n\n },\n\n {\n name: 'itemin itemout',\n\n self: true,\n\n el: function() {\n return this.item;\n },\n\n handler: function(ref) {\n var type = ref.type;\n var ref_detail = ref.detail;\n var percent = ref_detail.percent;\n var duration = ref_detail.duration;\n var timing = ref_detail.timing;\n var dir = ref_detail.dir;\n\n\n Transition.cancel(this.$el);\n css(this.$el, this.getCss(getCurrent(type, dir, percent)));\n\n Transition.start(this.$el, this.getCss(isIn(type)\n ? .5\n : dir > 0\n ? 1\n : 0\n ), duration, timing).catch(noop);\n\n }\n },\n\n {\n name: 'transitioncanceled transitionend',\n\n self: true,\n\n el: function() {\n return this.item;\n },\n\n handler: function() {\n Transition.cancel(this.$el);\n }\n\n },\n\n {\n name: 'itemtranslatein itemtranslateout',\n\n self: true,\n\n el: function() {\n return this.item;\n },\n\n handler: function(ref) {\n var type = ref.type;\n var ref_detail = ref.detail;\n var percent = ref_detail.percent;\n var dir = ref_detail.dir;\n\n Transition.cancel(this.$el);\n css(this.$el, this.getCss(getCurrent(type, dir, percent)));\n }\n }\n\n ]\n\n };\n\n function isIn(type) {\n return endsWith(type, 'in');\n }\n\n function getCurrent(type, dir, percent) {\n\n percent /= 2;\n\n return !isIn(type)\n ? dir < 0\n ? percent\n : 1 - percent\n : dir < 0\n ? 1 - percent\n : percent;\n }\n\n var Animations$2 = assign({}, Animations, {\n\n fade: {\n\n show: function() {\n return [\n {opacity: 0, zIndex: 0},\n {zIndex: -1}\n ];\n },\n\n percent: function(current) {\n return 1 - css(current, 'opacity');\n },\n\n translate: function(percent) {\n return [\n {opacity: 1 - percent, zIndex: 0},\n {zIndex: -1}\n ];\n }\n\n },\n\n scale: {\n\n show: function() {\n return [\n {opacity: 0, transform: scale3d(1 + .5), zIndex: 0},\n {zIndex: -1}\n ];\n },\n\n percent: function(current) {\n return 1 - css(current, 'opacity');\n },\n\n translate: function(percent) {\n return [\n {opacity: 1 - percent, transform: scale3d(1 + .5 * percent), zIndex: 0},\n {zIndex: -1}\n ];\n }\n\n },\n\n pull: {\n\n show: function(dir) {\n return dir < 0\n ? [\n {transform: translate(30), zIndex: -1},\n {transform: translate(), zIndex: 0} ]\n : [\n {transform: translate(-100), zIndex: 0},\n {transform: translate(), zIndex: -1}\n ];\n },\n\n percent: function(current, next, dir) {\n return dir < 0\n ? 1 - translated(next)\n : translated(current);\n },\n\n translate: function(percent, dir) {\n return dir < 0\n ? [\n {transform: translate(30 * percent), zIndex: -1},\n {transform: translate(-100 * (1 - percent)), zIndex: 0} ]\n : [\n {transform: translate(-percent * 100), zIndex: 0},\n {transform: translate(30 * (1 - percent)), zIndex: -1}\n ];\n }\n\n },\n\n push: {\n\n show: function(dir) {\n return dir < 0\n ? [\n {transform: translate(100), zIndex: 0},\n {transform: translate(), zIndex: -1} ]\n : [\n {transform: translate(-30), zIndex: -1},\n {transform: translate(), zIndex: 0}\n ];\n },\n\n percent: function(current, next, dir) {\n return dir > 0\n ? 1 - translated(next)\n : translated(current);\n },\n\n translate: function(percent, dir) {\n return dir < 0\n ? [\n {transform: translate(percent * 100), zIndex: 0},\n {transform: translate(-30 * (1 - percent)), zIndex: -1} ]\n : [\n {transform: translate(-30 * percent), zIndex: -1},\n {transform: translate(100 * (1 - percent)), zIndex: 0}\n ];\n }\n\n }\n\n });\n\n var Slideshow$1 = {\n\n mixins: [Class, Slideshow, SliderReactive],\n\n props: {\n ratio: String,\n minHeight: Boolean,\n maxHeight: Boolean,\n },\n\n data: {\n ratio: '16:9',\n minHeight: false,\n maxHeight: false,\n selList: '.uk-slideshow-items',\n attrItem: 'uk-slideshow-item',\n selNav: '.uk-slideshow-nav',\n Animations: Animations$2\n },\n\n update: {\n\n read: function() {\n\n var ref = this.ratio.split(':').map(Number);\n var width$$1 = ref[0];\n var height$$1 = ref[1];\n\n height$$1 = height$$1 * this.$el.offsetWidth / width$$1;\n\n if (this.minHeight) {\n height$$1 = Math.max(this.minHeight, height$$1);\n }\n\n if (this.maxHeight) {\n height$$1 = Math.min(this.maxHeight, height$$1);\n }\n\n return {height: height$$1};\n },\n\n write: function(ref) {\n var hgt = ref.height;\n\n height(this.list, Math.floor(hgt));\n },\n\n events: ['load', 'resize']\n\n }\n\n };\n\n var obj$1;\n\n var Sortable = {\n\n mixins: [Class, Animate],\n\n props: {\n group: String,\n threshold: Number,\n clsItem: String,\n clsPlaceholder: String,\n clsDrag: String,\n clsDragState: String,\n clsBase: String,\n clsNoDrag: String,\n clsEmpty: String,\n clsCustom: String,\n handle: String\n },\n\n data: {\n group: false,\n threshold: 5,\n clsItem: 'uk-sortable-item',\n clsPlaceholder: 'uk-sortable-placeholder',\n clsDrag: 'uk-sortable-drag',\n clsDragState: 'uk-drag',\n clsBase: 'uk-sortable',\n clsNoDrag: 'uk-sortable-nodrag',\n clsEmpty: 'uk-sortable-empty',\n clsCustom: '',\n handle: false\n },\n\n init: function() {\n var this$1 = this;\n\n ['init', 'start', 'move', 'end'].forEach(function (key) {\n var fn = this$1[key];\n this$1[key] = function (e) {\n this$1.scrollY = window.pageYOffset;\n var ref = getPos$1(e);\n var x = ref.x;\n var y = ref.y;\n this$1.pos = {x: x, y: y};\n\n fn(e);\n };\n });\n },\n\n events: ( obj$1 = {}, obj$1[pointerDown] = 'init', obj$1 ),\n\n update: {\n\n write: function() {\n\n if (this.clsEmpty) {\n toggleClass(this.$el, this.clsEmpty, !this.$el.children.length);\n }\n\n if (!this.drag) {\n return;\n }\n\n offset(this.drag, {top: this.pos.y + this.origin.top, left: this.pos.x + this.origin.left});\n\n var ref = offset(this.drag);\n var top = ref.top;\n var bottom = top + this.drag.offsetHeight;\n var scroll;\n\n if (top > 0 && top < this.scrollY) {\n scroll = this.scrollY - 5;\n } else if (bottom < height(document) && bottom > height(window) + this.scrollY) {\n scroll = this.scrollY + 5;\n }\n\n scroll && setTimeout(function () { return window.scroll(window.pageXOffset, scroll); }, 5);\n }\n\n },\n\n methods: {\n\n init: function(e) {\n\n var target = e.target;\n var button = e.button;\n var defaultPrevented = e.defaultPrevented;\n var ref = toNodes(this.$el.children).filter(function (el) { return within(target, el); });\n var placeholder = ref[0];\n\n if (!placeholder\n || isInput(e.target)\n || this.handle && !within(target, this.handle)\n || button > 0\n || within(target, (\".\" + (this.clsNoDrag)))\n || defaultPrevented\n ) {\n return;\n }\n\n e.preventDefault();\n\n this.touched = [this];\n this.placeholder = placeholder;\n this.origin = assign({target: target, index: index(placeholder)}, this.pos);\n\n on(document, pointerMove, this.move);\n on(document, pointerUp, this.end);\n on(window, 'scroll', this.scroll);\n\n if (!this.threshold) {\n this.start(e);\n }\n\n },\n\n start: function(e) {\n\n this.drag = append(this.$container, this.placeholder.outerHTML.replace(/^<li/i, '<div').replace(/li>$/i, 'div>'));\n\n css(this.drag, assign({\n boxSizing: 'border-box',\n width: this.placeholder.offsetWidth,\n height: this.placeholder.offsetHeight\n }, css(this.placeholder, ['paddingLeft', 'paddingRight', 'paddingTop', 'paddingBottom'])));\n attr(this.drag, 'uk-no-boot', '');\n addClass(this.drag, this.clsDrag, this.clsCustom);\n\n height(this.drag.firstElementChild, height(this.placeholder.firstElementChild));\n\n var ref = offset(this.placeholder);\n var left = ref.left;\n var top = ref.top;\n assign(this.origin, {left: left - this.pos.x, top: top - this.pos.y});\n\n addClass(this.placeholder, this.clsPlaceholder);\n addClass(this.$el.children, this.clsItem);\n addClass(document.documentElement, this.clsDragState);\n\n trigger(this.$el, 'start', [this, this.placeholder]);\n\n this.move(e);\n },\n\n move: function(e) {\n\n if (!this.drag) {\n\n if (Math.abs(this.pos.x - this.origin.x) > this.threshold || Math.abs(this.pos.y - this.origin.y) > this.threshold) {\n this.start(e);\n }\n\n return;\n }\n\n this.$emit();\n\n var target = e.type === 'mousemove' ? e.target : document.elementFromPoint(this.pos.x - document.body.scrollLeft, this.pos.y - document.body.scrollTop);\n\n var sortable = this.getSortable(target);\n var previous = this.getSortable(this.placeholder);\n var move = sortable !== previous;\n\n if (!sortable || within(target, this.placeholder) || move && (!sortable.group || sortable.group !== previous.group)) {\n return;\n }\n\n target = sortable.$el === target.parentNode && target || toNodes(sortable.$el.children).filter(function (element) { return within(target, element); })[0];\n\n if (move) {\n previous.remove(this.placeholder);\n } else if (!target) {\n return;\n }\n\n sortable.insert(this.placeholder, target);\n\n if (!includes(this.touched, sortable)) {\n this.touched.push(sortable);\n }\n\n },\n\n scroll: function() {\n var scroll = window.pageYOffset;\n if (scroll !== this.scrollY) {\n this.pos.y += scroll - this.scrollY;\n this.scrollY = scroll;\n this.$emit();\n }\n },\n\n end: function(e) {\n\n off(document, pointerMove, this.move);\n off(document, pointerUp, this.end);\n off(window, 'scroll', this.scroll);\n\n if (!this.drag) {\n\n if (e.type !== 'mouseup' && within(e.target, 'a[href]')) {\n location.href = closest(e.target, 'a[href]').href;\n }\n\n return;\n }\n\n preventClick();\n\n var sortable = this.getSortable(this.placeholder);\n\n if (this === sortable) {\n if (this.origin.index !== index(this.placeholder)) {\n trigger(this.$el, 'moved', [this, this.placeholder]);\n }\n } else {\n trigger(sortable.$el, 'added', [sortable, this.placeholder]);\n trigger(this.$el, 'removed', [this, this.placeholder]);\n }\n\n trigger(this.$el, 'stop', [this, this.placeholder]);\n\n remove(this.drag);\n this.drag = null;\n\n var classes = this.touched.map(function (sortable) { return ((sortable.clsPlaceholder) + \" \" + (sortable.clsItem)); }).join(' ');\n this.touched.forEach(function (sortable) { return removeClass(sortable.$el.children, classes); });\n\n removeClass(document.documentElement, this.clsDragState);\n\n },\n\n insert: function(element, target) {\n var this$1 = this;\n\n\n addClass(this.$el.children, this.clsItem);\n\n var insert = function () {\n\n if (target) {\n\n if (!within(element, this$1.$el) || isPredecessor(element, target)) {\n before(target, element);\n } else {\n after(target, element);\n }\n\n } else {\n append(this$1.$el, element);\n }\n\n };\n\n if (this.animation) {\n this.animate(insert);\n } else {\n insert();\n }\n\n },\n\n remove: function(element) {\n\n if (!within(element, this.$el)) {\n return;\n }\n\n if (this.animation) {\n this.animate(function () { return remove(element); });\n } else {\n remove(element);\n }\n\n },\n\n getSortable: function(element) {\n return element && (this.$getComponent(element, 'sortable') || this.getSortable(element.parentNode));\n }\n\n }\n\n };\n\n function isPredecessor(element, target) {\n return element.parentNode === target.parentNode && index(element) > index(target);\n }\n\n var obj$2;\n\n var actives = [];\n\n var Tooltip = {\n\n attrs: true,\n\n args: 'title',\n\n mixins: [Container, Togglable, Position],\n\n props: {\n delay: Number,\n title: String\n },\n\n data: {\n pos: 'top',\n title: '',\n delay: 0,\n animation: ['uk-animation-scale-up'],\n duration: 100,\n cls: 'uk-active',\n clsPos: 'uk-tooltip'\n },\n\n beforeConnect: function() {\n this._hasTitle = hasAttr(this.$el, 'title');\n attr(this.$el, {title: '', 'aria-expanded': false});\n },\n\n disconnected: function() {\n this.hide();\n attr(this.$el, {title: this._hasTitle ? this.title : null, 'aria-expanded': null});\n },\n\n methods: {\n\n show: function() {\n var this$1 = this;\n\n\n if (includes(actives, this)) {\n return;\n }\n\n actives.forEach(function (active) { return active.hide(); });\n actives.push(this);\n\n this._unbind = on(document, 'click', function (e) { return !within(e.target, this$1.$el) && this$1.hide(); });\n\n clearTimeout(this.showTimer);\n\n this.tooltip = append(this.container, (\"<div class=\\\"\" + (this.clsPos) + \"\\\" aria-hidden><div class=\\\"\" + (this.clsPos) + \"-inner\\\">\" + (this.title) + \"</div></div>\"));\n\n attr(this.$el, 'aria-expanded', true);\n\n this.positionAt(this.tooltip, this.$el);\n\n this.origin = this.getAxis() === 'y' ? ((flipPosition(this.dir)) + \"-\" + (this.align)) : ((this.align) + \"-\" + (flipPosition(this.dir)));\n\n this.showTimer = setTimeout(function () {\n\n this$1.toggleElement(this$1.tooltip, true);\n\n this$1.hideTimer = setInterval(function () {\n\n if (!isVisible(this$1.$el)) {\n this$1.hide();\n }\n\n }, 150);\n\n }, this.delay);\n },\n\n hide: function() {\n\n var index$$1 = actives.indexOf(this);\n\n if (!~index$$1 || matches(this.$el, 'input') && this.$el === document.activeElement) {\n return;\n }\n\n actives.splice(index$$1, 1);\n\n clearTimeout(this.showTimer);\n clearInterval(this.hideTimer);\n attr(this.$el, 'aria-expanded', false);\n this.toggleElement(this.tooltip, false);\n this.tooltip && remove(this.tooltip);\n this.tooltip = false;\n this._unbind();\n\n }\n\n },\n\n events: ( obj$2 = {}, obj$2[(\"focus \" + pointerEnter + \" \" + pointerDown)] = function (e) {\n if (e.type !== pointerDown || !isTouch(e)) {\n this.show();\n }\n }, obj$2.blur = 'hide', obj$2[pointerLeave] = function (e) {\n if (!isTouch(e)) {\n this.hide();\n }\n }, obj$2 )\n\n };\n\n var Upload = {\n\n props: {\n allow: String,\n clsDragover: String,\n concurrent: Number,\n maxSize: Number,\n method: String,\n mime: String,\n msgInvalidMime: String,\n msgInvalidName: String,\n msgInvalidSize: String,\n multiple: Boolean,\n name: String,\n params: Object,\n type: String,\n url: String,\n },\n\n data: {\n allow: false,\n clsDragover: 'uk-dragover',\n concurrent: 1,\n maxSize: 0,\n method: 'POST',\n mime: false,\n msgInvalidMime: 'Invalid File Type: %s',\n msgInvalidName: 'Invalid File Name: %s',\n msgInvalidSize: 'Invalid File Size: %s Kilobytes Max',\n multiple: false,\n name: 'files[]',\n params: {},\n type: '',\n url: '',\n abort: noop,\n beforeAll: noop,\n beforeSend: noop,\n complete: noop,\n completeAll: noop,\n error: noop,\n fail: noop,\n load: noop,\n loadEnd: noop,\n loadStart: noop,\n progress: noop\n },\n\n events: {\n\n change: function(e) {\n\n if (!matches(e.target, 'input[type=\"file\"]')) {\n return;\n }\n\n e.preventDefault();\n\n if (e.target.files) {\n this.upload(e.target.files);\n }\n\n e.target.value = '';\n },\n\n drop: function(e) {\n stop(e);\n\n var transfer = e.dataTransfer;\n\n if (!transfer || !transfer.files) {\n return;\n }\n\n removeClass(this.$el, this.clsDragover);\n\n this.upload(transfer.files);\n },\n\n dragenter: function(e) {\n stop(e);\n },\n\n dragover: function(e) {\n stop(e);\n addClass(this.$el, this.clsDragover);\n },\n\n dragleave: function(e) {\n stop(e);\n removeClass(this.$el, this.clsDragover);\n }\n\n },\n\n methods: {\n\n upload: function(files) {\n var this$1 = this;\n\n\n if (!files.length) {\n return;\n }\n\n trigger(this.$el, 'upload', [files]);\n\n for (var i = 0; i < files.length; i++) {\n\n if (this$1.maxSize && this$1.maxSize * 1000 < files[i].size) {\n this$1.fail(this$1.msgInvalidSize.replace('%s', this$1.maxSize));\n return;\n }\n\n if (this$1.allow && !match(this$1.allow, files[i].name)) {\n this$1.fail(this$1.msgInvalidName.replace('%s', this$1.allow));\n return;\n }\n\n if (this$1.mime && !match(this$1.mime, files[i].type)) {\n this$1.fail(this$1.msgInvalidMime.replace('%s', this$1.mime));\n return;\n }\n\n }\n\n if (!this.multiple) {\n files = [files[0]];\n }\n\n this.beforeAll(this, files);\n\n var chunks = chunk(files, this.concurrent);\n var upload = function (files) {\n\n var data$$1 = new FormData();\n\n files.forEach(function (file) { return data$$1.append(this$1.name, file); });\n\n for (var key in this$1.params) {\n data$$1.append(key, this$1.params[key]);\n }\n\n ajax(this$1.url, {\n data: data$$1,\n method: this$1.method,\n responseType: this$1.type,\n beforeSend: function (env) {\n\n var xhr = env.xhr;\n xhr.upload && on(xhr.upload, 'progress', this$1.progress);\n ['loadStart', 'load', 'loadEnd', 'abort'].forEach(function (type) { return on(xhr, type.toLowerCase(), this$1[type]); }\n );\n\n this$1.beforeSend(env);\n\n }\n }).then(\n function (xhr) {\n\n this$1.complete(xhr);\n\n if (chunks.length) {\n upload(chunks.shift());\n } else {\n this$1.completeAll(xhr);\n }\n\n },\n function (e) { return this$1.error(e.message); }\n );\n\n };\n\n upload(chunks.shift());\n\n }\n\n }\n\n };\n\n function match(pattern, path) {\n return path.match(new RegExp((\"^\" + (pattern.replace(/\\//g, '\\\\/').replace(/\\*\\*/g, '(\\\\/[^\\\\/]+)*').replace(/\\*/g, '[^\\\\/]+').replace(/((?!\\\\))\\?/g, '$1.')) + \"$\"), 'i'));\n }\n\n function chunk(files, size) {\n var chunks = [];\n for (var i = 0; i < files.length; i += size) {\n var chunk = [];\n for (var j = 0; j < size; j++) {\n chunk.push(files[i + j]);\n }\n chunks.push(chunk);\n }\n return chunks;\n }\n\n function stop(e) {\n e.preventDefault();\n e.stopPropagation();\n }\n\n UIkit.component('countdown', Countdown);\n UIkit.component('filter', Filter);\n UIkit.component('lightbox', Lightbox);\n UIkit.component('lightboxPanel', LightboxPanel);\n UIkit.component('notification', Notification);\n UIkit.component('parallax', Parallax$1);\n UIkit.component('slider', Slider$1);\n UIkit.component('sliderParallax', SliderParallax);\n UIkit.component('slideshow', Slideshow$1);\n UIkit.component('slideshowParallax', SliderParallax);\n UIkit.component('sortable', Sortable);\n UIkit.component('tooltip', Tooltip);\n UIkit.component('upload', Upload);\n\n {\n boot(UIkit);\n }\n\n return UIkit;\n\n})));\n","\"use strict\";\n\n(function(){ // Use a closure to avoid polluting global scope\n // TODO: This needs to be built into the jams system\n const startjam = new Date(Date.UTC(2018, 2, 23));\n const endjam = new Date(Date.UTC(2018, 2, 26));\n\n const now = Date.now();\n let goal;\n\n if (now + 1000 < endjam.getTime()) { // Only do anything if the jam hasn't ended\n UIkit.notification( // Spawn the notification\n {\n \"message\": \"\"\n + \"<div class='uk-text-center'>\"\n + \" <span id=\\\"countdown-title\\\" class=\\\"uk-text-center\\\">\"\n + \" <a href=\\\"/info/jams\\\">Code Jam</a> Countdown\"\n + \" </span>\"\n + \" <p class='uk-text-large' id=\\\"countdown-remaining\\\">...</p>\"\n + \"<small style='font-size: 0.6em;'>(Tap/click to dismiss)</small>\"\n + \"</div>\",\n \"pos\": \"bottom-right\",\n \"timeout\": endjam - now\n }\n );\n\n const heading = document.getElementById(\"countdown-title\");\n\n if (now > startjam.getTime()) { // Jam's already started\n heading.innerHTML = \"Current <a href=\\\"/info/jams\\\">code jam</a> ends in...\";\n goal = endjam.getTime();\n } else {\n heading.innerHTML = \"Next <a href=\\\"/info/jams\\\">code jam</a> starts in...\";\n goal = startjam.getTime();\n }\n\n const refreshCountdown = setInterval(() => { // Create a repeating task\n let delta = goal - Date.now(); // Time until the goal is met\n\n if (delta <= 1000) { // Goal has been met, best reload\n clearInterval(refreshCountdown);\n return location.reload();\n }\n\n let days = Math.floor(delta / (24 * 60 * 60 * 1000));\n delta -= days * (24 * 60 * 60 * 1000);\n\n let hours = Math.floor(delta / (60 * 60 * 1000));\n delta -= hours * (60 * 60 * 1000);\n\n let minutes = Math.floor(delta / (60 * 1000));\n delta -= minutes * (60 * 1000);\n\n let seconds = Math.floor(delta / 1000);\n\n if (days < 10) {\n days = `0${days}`;\n }\n\n if (hours < 10) {\n hours = `0${hours}`;\n }\n\n if (minutes < 10) {\n minutes = `0${minutes}`;\n }\n\n if (seconds < 10) {\n seconds = `0${seconds}`;\n }\n\n try {\n document.getElementById(\"countdown-remaining\").innerHTML = `${days}:${hours}:${minutes}:${seconds}`;\n } catch (e) { // Notification was probably closed, so we can stop counting\n return clearInterval(refreshCountdown);\n }\n }, 500);\n }\n})();\n","\"use strict\";\n\n/* exported JamActions */\n\nclass JamActions {\n constructor(url, csrf_token) {\n this.url = url;\n this.csrf_token = csrf_token;\n }\n\n send(action, method, data, callback) {\n data[\"action\"] = action;\n\n $.ajax(this.url, {\n \"data\": data,\n \"dataType\": \"json\",\n \"headers\": {\"X-CSRFToken\": this.csrf_token},\n \"method\": method,\n }).done(data => {\n if (\"error_code\" in data) {\n return callback(false, data);\n }\n\n return callback(true, data);\n }).fail(() => callback(false));\n }\n\n send_json(action, method, data, callback) {\n data[\"action\"] = action;\n\n $.ajax(this.url, {\n \"data\": JSON.stringify(data),\n \"dataType\": \"json\",\n \"headers\": {\"X-CSRFToken\": this.csrf_token},\n \"method\": method\n }).done(data => {\n if (\"error_code\" in data) {\n return callback(false, data);\n }\n\n return callback(true, data);\n }).fail(() => callback(false));\n }\n\n set_state(jam, state, callback) {\n this.send(\n \"state\",\n \"POST\",\n {\n \"jam\": jam,\n \"state\": state\n },\n callback\n );\n }\n\n get_questions(callback) {\n this.send(\n \"questions\",\n \"GET\",\n {},\n callback\n );\n }\n\n create_question(data, callback) {\n this.send_json(\n \"questions\",\n \"POST\",\n data,\n callback\n );\n }\n\n delete_question(id, callback) {\n this.send(\n \"question\",\n \"DELETE\",\n {\"id\": id},\n callback\n );\n }\n\n associate_question(form, question, callback) {\n this.send(\n \"associate_question\",\n \"POST\",\n {\n \"form\": form,\n \"question\": question,\n },\n callback\n );\n }\n\n disassociate_question(form, question, callback) {\n this.send(\n \"disassociate_question\",\n \"POST\",\n {\n \"form\": form,\n \"question\": question,\n },\n callback\n );\n }\n\n create_infraction(id, reason, number, callback) {\n this.send(\n \"infraction\",\n \"POST\",\n {\n \"participant\": id,\n \"reason\": reason,\n \"number\": number\n },\n callback\n );\n }\n\n delete_infraction(id, callback) {\n this.send(\n \"infraction\",\n \"DELETE\",\n {\"id\": id},\n callback\n );\n }\n\n approve_application(id, callback) {\n this.send(\n \"approve_application\",\n \"POST\",\n {\"id\": id},\n callback\n );\n }\n\n unapprove_application(id, callback) {\n this.send(\n \"unapprove_application\",\n \"POST\",\n {\"id\": id},\n callback\n );\n }\n}\n","\"use strict\";\n\n/* exported revision_diff */\n\nfunction revision_diff(revisions) {\n const buttons = document.querySelectorAll(\"td input\"); // Fetch all radio buttons\n const id_reg = /compare-(before|after)-([\\w|-]+)/; // Matches compare-after/before-ID\n\n\n function getRevisionId(element){\n const e = element.id.match(id_reg); // Match ID with RegExp\n return [e[1], e[2]]; // e is in format of [full id, after/before, ID] we only want ID & mode\n }\n\n function getRevision(id) {\n const e = revisions.filter((x) => {\n // Filter through all revisions to find the selected one (revisions in declared in the template)\n return x.id === id;\n });\n return e[0];\n }\n\n function radioButtonChecked(element) {\n const id = getRevisionId(element);\n const rev = getRevision(id[1]);\n if (id[0] === \"after\"){\n /*\n * Deselect the opposite checkbox to the one which has been checked\n * because we don't want checking of the same revision\n */\n\n document.querySelector(`#compare-before-${id[1]}`).checked = false;\n\n buttons.forEach((e) => {\n if (getRevisionId(e)[0] === \"after\" && e.id !== element.id) { // Deselect all checkboxes in the same row\n e.checked = false;\n }\n });\n } else { // This else does the same as above but for the before column\n document.querySelector(`#compare-after-${id[1]}`).checked = false;\n buttons.forEach((e) => {\n if (getRevisionId(e)[0] === \"before\" && e.id !== element.id) {\n e.checked = false;\n }\n\n // This makes sure that you do not compare a new revision with an old one\n if (getRevisionId(e)[0] === \"after\") {\n const tmprev = getRevision(getRevisionId(e)[1]);\n // console.log(tmprev);\n if (tmprev.date <= rev.date) {\n document.querySelector(`#${e.id}`).setAttribute(\"disabled\", \"\");\n } else {\n document.querySelector(`#${e.id}`).removeAttribute(\"disabled\");\n }\n }\n });\n }\n\n let aft, bef;\n\n buttons.forEach((button) => { // Find the selected posts\n const id = getRevisionId(button);\n if (button.checked && id[0] === \"before\") {\n bef = id[1];\n }\n\n if (button.checked && id[0] === \"after\") {\n aft = id[1];\n }\n });\n\n // Switch the buttons HREF to point to the correct compare URL\n document.getElementById(\"compare-submit\").href = `/history/compare/${bef}/${aft}`;\n\n }\n\n buttons.forEach((button) => {\n button.checked = false; // Some browsers remember if a button is checked.\n button.onchange = function() {\n radioButtonChecked(button);\n };\n });\n}\n","\"use strict\";\n\n(function(){ // Use a closure to avoid polluting global scope\n const visible_class = \"uk-visible@s\";\n const sidebar = document.getElementById(\"wiki-sidebar\");\n const display_button = document.getElementById(\"wiki-sidebar-button\");\n\n display_button.onclick = function() {\n if (sidebar.classList.contains(visible_class)) {\n sidebar.classList.remove(visible_class);\n } else {\n sidebar.classList.add(visible_class);\n }\n };\n})();\n"]}
\ No newline at end of file diff --git a/static/logos/logo_banner.png b/static/logos/logo_banner.png Binary files differdeleted file mode 100644 index 89aa9b5a..00000000 --- a/static/logos/logo_banner.png +++ /dev/null diff --git a/static/logos/logo_banner.svg b/static/logos/logo_banner.svg deleted file mode 100644 index ac04d699..00000000 --- a/static/logos/logo_banner.svg +++ /dev/null @@ -1,55 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<svg width="539.62mm" height="188.69mm" version="1.1" viewBox="0 0 539.62 188.69" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://creativecommons.org/ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"> - <metadata> - <rdf:RDF> - <cc:Work rdf:about=""> - <dc:format>image/svg+xml</dc:format> - <dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/> - <dc:title/> - </cc:Work> - </rdf:RDF> - </metadata> - <g fill="#7289da"> - <path class="st0" d="m145.76-3.5399e-7h-126.42c-10.661 0-19.341 8.6798-19.341 19.435v127.56c0 10.755 8.6798 19.435 19.341 19.435h106.99l-5.0003-17.454 12.076 11.227 11.416 10.567 20.284 17.926v-169.26c0-10.755-8.6799-19.435-19.341-19.435zm-36.418 123.22s-3.3965-4.0569-6.2268-7.642c12.359-3.4908 17.077-11.227 17.077-11.227-3.8682 2.5473-7.5477 4.3399-10.85 5.5664-4.7173 1.9812-9.2459 3.3021-13.68 4.0569-9.0572 1.6983-17.36 1.2265-24.436-0.0942-5.3777-1.0378-10.001-2.5474-13.869-4.0569-2.17-0.8491-4.5286-1.8869-6.8872-3.2078-0.28292-0.18904-0.56583-0.28292-0.84907-0.47196-0.18904-0.0945-0.28292-0.18903-0.37744-0.28291-1.6983-0.94346-2.6417-1.6039-2.6417-1.6039s4.5286 7.5477 16.511 11.133c-2.8303 3.5853-6.3212 7.8308-6.3212 7.8308-20.851-0.65959-28.776-14.34-28.776-14.34 0-30.379 13.586-55.004 13.586-55.004 13.586-10.189 26.511-9.9063 26.511-9.9063l0.94346 1.1322c-16.982 4.906-24.813 12.359-24.813 12.359s2.0756-1.1321 5.5664-2.7361c10.095-4.4343 18.114-5.6608 21.417-5.9438 0.56583-0.09452 1.0378-0.18904 1.6039-0.18904 5.7551-0.75474 12.265-0.94346 19.058-0.18904 8.9628 1.0378 18.586 3.6795 28.398 9.0572 0 0-7.4533-7.0759-23.492-11.982l1.3207-1.5095s12.925-0.28292 26.511 9.9063c0 0 13.586 24.624 13.586 55.004 0 0-8.0194 13.68-28.87 14.341z" stroke-width=".94346"/> - <path d="m154.42 178.89c-5.574-4.9347-15.262-13.738-21.528-19.563-6.2662-5.8252-11.484-10.501-11.595-10.39-0.11152 0.11152 0.87562 3.9535 2.1919 8.5392 1.3163 4.5858 2.3934 8.4694 2.3934 8.6303 0 0.56284-105.75 0.30516-109.27-0.26631-1.8664-0.3028-4.5072-1.115-5.8685-1.8048-3.5244-1.7859-7.6491-6.3569-9.1906-10.185l-1.2833-3.1869v-134.95l1.2869-3.2004c1.774-4.4122 6.6384-9.2677 10.868-10.848l3.0871-1.1535h66.825c57.549 0 67.19 0.10983 69.456 0.79174 3.4099 1.0263 7.5126 4.1657 9.7027 7.4244 3.5515 5.2843 3.3463-0.72307 3.1974 93.602l-0.13518 85.532zm-94.054-59.59 3.0253-3.8413-2.2252-0.9655c-4.5105-1.9571-6.7523-3.2408-9.6997-5.5541-1.6597-1.3026-2.9147-2.4714-2.7888-2.5973 0.12504-0.12588 2.4866 0.83897 5.2461 2.1441 19.104 9.0354 41.671 8.8487 60.231-0.49818 2.11-1.0626 3.9427-1.8257 4.0727-1.6957 0.87612 0.87616-12.37 8.9-14.693 8.9-0.9618 0-0.72828 0.41699 2.4056 4.2957 2.9306 3.6271 3.046 3.7052 5.4674 3.6961 8.7579-0.0321 20.999-5.8861 25.604-12.243 1.4155-1.9541 1.4888-2.3249 1.2874-6.5113-0.73706-15.32-4.8366-32.152-11.136-45.726-2.596-5.5932-3.5122-6.472-10.347-9.9252-6.7432-3.4067-17.724-5.9774-19.442-4.5516-0.45521 0.37774-0.82746 0.83958-0.82746 1.0263s1.6201 0.90448 3.6005 1.595c4.2047 1.4662 14.417 6.38 14.907 7.1727 0.21544 0.34862-0.0304 0.39298-0.68434 0.12318-3.9072-1.6128-11.844-4.1021-15.423-4.8375-13.59-2.7923-31.966-1.47-43.992 3.1658-7.2671 2.8012-6.8621 2.6799-5.652 1.6933 1.9562-1.5949 10.19-5.5547 15.114-7.2684 4.0261-1.4013 4.8292-1.8553 4.3352-2.4505-1.867-2.2496-15.185 1.5071-23.353 6.5873-3.7928 2.359-4.0192 2.6179-6.0149 6.8766-6.2821 13.406-10.451 30.045-11.44 45.663l-0.36211 5.7168 3.9446 3.9311c2.8384 2.8287 5.0665 4.4794 7.9451 5.8864 4.8558 2.3733 10.978 4.0254 14.935 4.0302l2.9337 4e-3 3.0253-3.8413z" stroke-width=".5334"/> - <path d="m21.518 27.983h123.75v106.68h-123.75z" stroke-width="16.897"/> - </g> - <g fill="#5b6dae"> - <path d="m131.54 52.372 6.2582 5.3738 2.69 13.088-21.061-12.16z"/> - <path d="m87.366 25.158c-4.7785 0.02207-9.342 0.42919-13.357 1.1403-11.829 2.0897-13.976 6.4637-13.976 14.53v10.653h27.953v3.5511h-38.443c-8.1238 0-15.237 4.8829-17.462 14.172-2.5665 10.647-2.6803 17.291 0 28.409 1.9869 8.2754 6.7321 14.172 14.856 14.172h9.6107v-12.771c0-9.2262 7.9827-17.365 17.462-17.365h27.92c7.7719 0 13.976-6.3991 13.976-14.204v-26.617c0-7.5753-6.3906-13.266-13.976-14.53-4.8019-0.79938-9.7842-1.1625-14.563-1.1403zm-15.117 8.5683c2.8874 0 5.2451 2.3964 5.2451 5.3429-6e-6 2.9361-2.3579 5.3104-5.2451 5.3104-2.8977 0-5.2452-2.3742-5.2452-5.3104 0-2.9465 2.3475-5.3429 5.2452-5.3429z" stroke-width="1.0425"/> - <path d="m119.39 55.032v12.413c0 9.6233-8.1587 17.723-17.462 17.723h-27.92c-7.6478 0-13.976 6.5455-13.976 14.204v26.617c0 7.5753 6.5873 12.031 13.976 14.204 8.8482 2.6017 17.333 3.0719 27.92 0 7.0372-2.0375 13.976-6.138 13.976-14.204v-10.653h-27.92v-3.5511h41.896c8.1238 0 11.151-5.6666 13.976-14.172 2.9181-8.756 2.794-17.176 0-28.409-2.0076-8.0873-5.8421-14.172-13.976-14.172zm-15.703 67.406c2.8977 1e-5 5.2452 2.3742 5.2452 5.3103-1e-5 2.9465-2.3476 5.3429-5.2452 5.3429-2.8873 0-5.2451-2.3964-5.2451-5.3429 6e-6 -2.9361 2.3579-5.3103 5.2451-5.3103z" stroke-width="1.0425"/> - <g stroke-width="16.176"> - <path d="m64.566 32.933h16.085v14.553h-16.085z"/> - <path d="m96.736 121.02h14.042v13.532h-14.042z"/> - <path d="m57.758 27.064h14.491v6.6617h-14.491z"/> - </g> - <path d="m109.67 109.98 6.2363 5.353v0.75275h-7.6321v-5.8264z"/> - <path d="m59.356 32.37h2.7229v4.116h-2.7229z"/> - <path d="m53.796 46.128 6.2363 5.353h6.6393v-9.2446h-12.089z"/> - <path d="m104.45 24.881 6 5.1716-2.3657 5.1311-11.622-8.0211z"/> - <path d="m32.239 103.49 6.0335 5.2612 7.1305 0.24626-12.38-12.38z"/> - </g> - <path d="m81.129 19.804c-4.7785 0.0221-9.342 0.42919-13.357 1.1403-11.829 2.0898-13.976 6.4637-13.976 14.53v10.653h27.953v3.5511h-38.443c-8.1238 0-15.237 4.8829-17.462 14.172-2.5665 10.647-2.6803 17.291 0 28.409 1.9869 8.2754 6.7321 14.172 14.856 14.172h9.6107v-12.771c0-9.2262 7.9827-17.364 17.462-17.364h27.92c7.7719 0 13.976-6.3992 13.976-14.204v-26.617c0-7.5753-6.3906-13.266-13.976-14.53-4.8019-0.79938-9.7842-1.1625-14.563-1.1403zm-15.117 8.5682c2.8874 0 5.2451 2.3964 5.2451 5.3429-6e-6 2.9361-2.3579 5.3104-5.2451 5.3104-2.8977 0-5.2452-2.3742-5.2452-5.3104 0-2.9465 2.3475-5.3429 5.2452-5.3429z" fill="#cad6ff"/> - <g fill="#fff"> - <path d="m113.15 49.679v12.413c0 9.6233-8.1587 17.723-17.462 17.723h-27.92c-7.6478 0-13.976 6.5455-13.976 14.204v26.617c0 7.5753 6.5873 12.031 13.976 14.204 8.8482 2.6017 17.333 3.0719 27.92 0 7.0372-2.0375 13.976-6.138 13.976-14.204v-10.653h-27.92v-3.5511h41.896c8.1238 0 11.151-5.6666 13.976-14.172 2.9184-8.756 2.7942-17.176 0-28.409-2.0077-8.0873-5.8422-14.172-13.976-14.172zm-15.703 67.406c2.8977 0 5.2452 2.3742 5.2452 5.3103-1e-5 2.9465-2.3476 5.3429-5.2452 5.3429-2.8873 0-5.2451-2.3964-5.2451-5.3429 6e-6 -2.9361 2.3579-5.3103 5.2451-5.3103z"/> - <g stroke="#fff" stroke-width="2"> - <path d="m193.51 78.047h15.115v-17.48h8.8665c14.44 0 21.786-10.555 21.786-21.195 0-10.555-7.2621-21.111-21.871-21.111h-23.897zm15.115-30.906v-14.778h8.7821c9.1198-0.08449 9.1198 14.862 0 14.778z"/> - <path d="m278.74 78.047v-23.56l20.942-36.226h-17.733l-10.809 21.955-10.809-21.955h-17.564l20.857 36.226v23.56z"/> - <path d="m355.84 32.532v-14.355h-47.035v14.355h15.875v45.515h15.284v-45.515z"/> - <path d="m381.89 55.5h17.226v22.546h15.2v-59.786h-15.2v22.631h-17.226v-22.631h-15.2v59.786h15.2z"/> - <path d="m426.02 58.371c0 13.68 12.413 20.52 24.826 20.52 12.413 0 24.742-6.8399 24.742-20.52v-20.435c0-13.68-12.413-20.52-24.826-20.52-12.413 0-24.742 6.7554-24.742 20.52zm15.115-20.435c0-4.391 4.7288-6.7554 9.4576-6.7554 4.8977 0 9.8798 2.1111 9.8798 6.7554v20.435c0 4.3066-4.8132 6.5021-9.6265 6.5021-4.8132 0-9.7109-2.1111-9.7109-6.5021z"/> - <path d="m487.23 78.047h15.115v-23.897l-1.9422-11.569 0.42221-0.08449 5.2355 11.991 13.511 23.56h15.284v-59.786h-15.031v27.106c0.0845 0 1.6044 10.302 1.6888 10.302l-0.4222 0.08449-5.0666-11.991-14.44-25.502h-14.355z"/> - </g> - </g> - <path d="m295.7 97.875c-10.963 0-21.589 6.1561-21.589 17.878 0 11.385 8.7707 17.457 18.384 18.975 4.8912 0.67466 10.373 2.6144 10.204 5.9876-0.42162 6.4092-13.577 6.0717-19.565-1.1808l-9.5295 8.9391c5.5659 7.1682 13.156 10.794 20.324 10.794 10.963 0 23.107-6.3247 23.613-17.878 0.67464-14.674-9.951-18.384-20.577-20.324-4.6382-1.012-7.7589-2.6987-7.9276-5.566 0.25302-6.9152 10.963-7.168 17.204-0.50575l9.867-7.59c-6.1562-7.5055-13.155-9.5295-20.408-9.5295zm53.073 0c-11.975 0-23.782 6.9155-23.782 20.409v20.577c0 13.577 11.807 20.408 23.529 20.408 7.5055 0 16.529-3.7102 21.505-13.408l-13.156-6.0722c-3.2889 8.2645-16.782 6.2408-16.782-0.9274v-20.577c0-7.4212 13.324-9.1083 17.372-1.6871l12.312-4.9756c-4.8069-10.626-13.662-13.746-20.998-13.746zm52.363 0c-12.397 0-24.709 6.7466-24.709 20.493v20.408c0 13.662 12.397 20.493 24.794 20.493 12.397 0 24.709-6.8309 24.709-20.493v-20.408c0-13.662-12.397-20.493-24.794-20.493zm-207.6 0.84327v22.721l15.18 13.823v-22.461h7.6742c5.0599 0 7.5054 2.4459 7.5054 6.3252v18.637c0 3.8793-2.3612 6.4934-7.5054 6.4934h-7.6597l-5.2e-4 5.2e-4h-15.194v14.167h22.348c11.975 0.0842 23.191-5.9033 23.191-19.649v-20.071c0-13.915-11.216-19.987-23.191-19.987zm56.047 0v59.707h15.095v-59.707zm186.64 0v59.707h15.264v-18.974h2.6986l13.83 18.974h18.806l-16.276-20.493c7.2526-2.277 11.722-8.5173 11.722-19.565-0.33736-13.999-9.8668-19.649-22.179-19.649zm56.871 0v22.727l15.18 13.823v-22.466h7.6742c5.0599 0 7.5054 2.4459 7.5054 6.3252v18.637c0 3.8793-2.3612 6.4934-7.5054 6.4934h-7.6659l-5.2e-4 5.2e-4h-15.187v14.167h22.348c11.975 0.0842 23.191-5.9033 23.191-19.649v-20.071c0-13.915-11.216-19.987-23.191-19.987zm-92.117 12.903c4.8913 0 9.867 2.1085 9.867 6.7468v20.408c0 4.3009-4.8067 6.4939-9.6136 6.4939-4.8069 0-9.6982-2.1086-9.6982-6.4939v-20.408c0-4.3853 4.7223-6.7468 9.4448-6.7468zm50.511 1.1808h8.8545c9.5295 0 9.5295 13.662 0 13.662h-8.8545z" fill="#cad6ff" stroke="#cad6ff" stroke-width="1.9974"/> - <g transform="translate(-3.7229 -3.7549)"></g> - <g transform="translate(-3.7229 -3.7549)"></g> - <g transform="translate(-3.7229 -3.7549)"></g> - <g transform="translate(-3.7229 -3.7549)"></g> - <g transform="translate(-3.7229 -3.7549)"></g> - <g transform="translate(-3.7229 -3.7549)"></g> - <g transform="translate(-3.7229 -3.7549)"></g> - <g transform="translate(-3.7229 -3.7549)"></g> - <g transform="translate(-3.7229 -3.7549)"></g> - <g transform="translate(-3.7229 -3.7549)"></g> -</svg> diff --git a/static/logos/logo_discord.png b/static/logos/logo_discord.png Binary files differdeleted file mode 100644 index 2bf74ffd..00000000 --- a/static/logos/logo_discord.png +++ /dev/null diff --git a/static/partners.json b/static/partners.json deleted file mode 100644 index 5757b5a3..00000000 --- a/static/partners.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "Functional Programming": { - "banner": "/static/images/partners/functional programming.png", - "description": "Functional Programming is a server for discussing functional languages like Haskell, Idris, Elixir and Lisp as well as related academic fields such as type theory, category theory, proof assistants, and more!", - "invite": "https://discord.gg/kWJYurV" - }, - "Code Monkeys": { - "banner": "/static/images/partners/code monkeys.png", - "description": "We at Code Monkeys are dedicated to provide a friendly environment for programmers and tech enthusiasts alike. The community here is dedicated to giving and receiving great help and advice for a variety of programming languages. Help us build a large and friendly community at Code Monkeys by joining today!", - "invite": "https://discord.gg/vywQPxd" - }, - "Programming": { - "banner": "/static/images/partners/programming.png", - "description": "Programming was created in 2016, and is an active community around various programming languages, operating systems, as well as hardware, security, and low-level programming.", - "invite": "https://discord.gg/010z0Kw1A9ql5c1Qe" - }, - "STEM": { - "banner": "/static/images/partners/stem.png", - "description": "STEM is a growing server dedicated to discussion and education pertaining to subjects within the fields of Science, Technology, Engineering, and Mathematics. We aim to provide our members with an engaged, skilled, friendly community. We hope to see you soon!", - "invite": "https://discord.gg/XBGetGp" - } -} diff --git a/static/resources.json b/static/resources.json deleted file mode 100644 index de290065..00000000 --- a/static/resources.json +++ /dev/null @@ -1,427 +0,0 @@ -{ - "Communities": { - "description": "Partnered communities that share part of our mission", - "resources": { - "Subreddit: r/Python": { - "description": "News about the Python programming language, and language-related discussion", - "payment": "free", - "payment_description": null, - "urls": [ - { - "icon": "branding/reddit-alien", - "title": "r/Python on Reddit", - "url": "https://www.reddit.com/r/Python/" - } - ] - } - } - }, - "Tutorials": { - "description": "Tutorials and references for those that are just getting started with python", - "resources": { - "A Simple Guide to Git": { - "description": "A simple, no-nonsense guide to the basics of using Git.", - "payment": "free", - "payment_description": null, - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "http://rogerdudler.github.io/git-guide/" - } - ] - }, - "Get Started with Flask Web Development": { - "description": "A fully featured mega-tutorial for learning how to create web applications with the Flask framework.", - "payment": "free", - "payment_description": null, - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world" - } - ] - }, - "Getting Started with Python": { - "description": "The list of resources for programmers and non-programmers from Python's official beginners' guide", - "payment": "free", - "payment_description": null, - "urls": [ - { - "icon": "regular/link", - "title": "Beginners Guide for Non-Programmers", - "url": "https://wiki.python.org/moin/BeginnersGuide/NonProgrammers" - }, - { - "icon": "regular/link", - "title": "Beginners Guide for Programmers", - "url": "https://wiki.python.org/moin/BeginnersGuide/Programmers" - } - ] - }, - "Python Cheat Sheet": { - "description": "A Python 3 cheat sheet with useful information and tips, as well as common pitfalls for beginners. This is a PDF.", - "payment": "free", - "payment_description": null, - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "https://perso.limsi.fr/pointal/_media/python:cours:mementopython3-english.pdf" - } - ] - } - } - }, - "Books": { - "description": "The best books for learning Python or Python Frameworks", - "resources": { - "A Byte of Python": { - "description": "A free book on programming using the Python language. It serves as a tutorial or guide to the Python language for a beginner audience. If all you know about computers is how to save text files, then this is the book for you.", - "payment": "optional", - "payment_description": "A free e-book is available online, a paper version can be bought from lulu.com.", - "urls": [ - { - "icon": "regular/link", - "title": "E-book", - "url": "https://python.swaroopch.com/" - }, - { - "icon": "regular/book", - "title": "Buy the book", - "url": "http://www.lulu.com/shop/swaroop-c-h/a-byte-of-python/paperback/product-21142968.html" - }, - { - "icon": "regular/tablet-alt", - "title": "Kindle edition", - "url": "https://www.amazon.com/Byte-Python-Swaroop-C-H-ebook/dp/B00FJ7S2JU/" - } - ] - }, - "Automate the Boring Stuff with Python": { - "description": "One of the best books out there for Python beginners. This book will teach you the basics of Python, while also teaching invaluable automation tools and techniques for solving common problems. You'll learn how to go about scraping the web, manipulating files and automating keyboard and mouse input. Ideal for an office worker who wants to make himself more useful.", - "payment": "optional", - "payment_description": "A free e-book is available on the website, but you can buy it on Amazon if you want to support the author.", - "urls": [ - { - "icon": "regular/link", - "title": "E-book", - "url": "https://automatetheboringstuff.com/" - }, - { - "icon": "branding/amazon", - "title": "Amazon", - "url": "https://www.amazon.com/Automate-Boring-Stuff-Python-Programming/dp/1593275994/" - } - ] - }, - "Effective Python": { - "description": "A book that gives 59 best practices for writing excellent Python. Great for intermediates.", - "payment": "paid", - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "https://effectivepython.com/" - }, - { - "icon": "branding/amazon", - "title": "Amazon", - "url": "https://www.amazon.com/Effective-Python-Specific-Software-Development/dp/0134034287" - }, - { - "icon": "branding/github", - "title": "GitHub", - "url": "https://github.com/bslatkin/effectivepython" - } - ] - }, - "Flask Web Development": { - "description": "A comprehensive Flask walkthrough that has you building a complete social blogging application from scratch.", - "payment": "paid", - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "http://shop.oreilly.com/product/0636920031116.do" - }, - { - "icon": "branding/amazon", - "title": "Amazon", - "url": "https://www.amazon.com/Flask-Web-Development-Developing-Applications/dp/1449372627" - }, - { - "icon": "branding/github", - "title": "GitHub", - "url": "https://github.com/miguelgrinberg/flasky" - } - ] - }, - "Fluent Python": { - "description": "A veritable tome of intermediate and advanced Python information. A must-read for any Python professional.", - "payment": "paid", - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "https://www.oreilly.com/library/view/fluent-python/9781491946237/" - }, - { - "icon": "branding/amazon", - "title": "Amazon", - "url": "https://www.amazon.com/Fluent-Python-Concise-Effective-Programming/dp/1491946008" - }, - { - "icon": "branding/github", - "title": "GitHub", - "url": "https://github.com/fluentpython" - } - ] - }, - "Python Cookbook": { - "description": "Complete with 'recipes' for various Python topics, including moving from Python 2 to Python 3.3", - "payment": "paid", - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "http://shop.oreilly.com/product/0636920027072.do" - }, - { - "icon": "branding/amazon", - "title": "Amazon", - "url": "https://www.amazon.com/Python-Cookbook-Third-David-Beazley/dp/1449340377" - }, - { - "icon": "branding/github", - "title": "GitHub", - "url": "https://github.com/dabeaz/python-cookbook" - } - ] - }, - "Two Scoops of Django": { - "description": "This book is chock-full of material that will help you with your Django projects.", - "payment": "paid", - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "https://twoscoopspress.com/products/two-scoops-of-django-1-11" - }, - { - "icon": "branding/amazon", - "title": "Amazon", - "url": "https://www.amazon.com/Two-Scoops-Django-Best-Practices/dp/0981467342" - }, - { - "icon": "branding/github", - "title": "GitHub", - "url": "https://github.com/twoscoops/two-scoops-of-django-2.0-code-examples" - } - ] - } - } - }, - "Courses": { - "description": "Online courses that relate to Python.", - "resources": { - "Python Tutorials by Corey Schafer on YouTube": { - "description": "An in-depth look at the Python programming language, from one of YouTube's most popular Python tutors.", - "payment": "free", - "payment_description": null, - "urls": [ - { - "icon": "branding/youtube", - "title": "YouTube", - "url": "https://www.youtube.com/playlist?list=PL-osiE80TeTt2d9bfVyTiXJA-UTHn6WwU" - } - ] - }, - "Python Tutorials by The New Boston on YouTube": { - "description": "A Python basics tutorial based around Python 3.4 - A more casual feel when compared to Corey's tutorials, but still competent.", - "payment": "free", - "payment_description": null, - "urls": [ - { - "icon": "branding/youtube", - "title": "YouTube", - "url": "https://www.youtube.com/playlist?list=PL6gx4Cwl9DGAcbMi1sH6oAMk4JHw91mC_" - } - ] - }, - "Code Combat": { - "description": "Learn Python while gaming - an open-source project with thousands of contributors, which teaches you Python through a deep, top-down RPG.", - "payment": "optional", - "payment_description": "A wealth of free content is available, but you can also pay for more", - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "https://codecombat.com/" - }, - { - "icon": "branding/github", - "title": "GitHub", - "url": "https://github.com/codecombat/codecombat" - } - ] - }, - "MIT: Introduction to Computer Science and Programming Using Python": { - "description": "This MITx offering teaches computer science with Python. It covers computational thinking, algorithms, data structures and the Python programming language itself.", - "payment": "optional", - "payment_description": "You can pay to enroll for a graded certificate, or choose to take the full course for free.", - "urls": [ - { - "icon": "regular/graduation-cap", - "title": "edX Course", - "url": "https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-11" - } - ] - }, - "University of Michigan: Programming for Everybody": { - "description": "A 5-part specialization course that teaches Python from scratch. The course has no pre-requisites and avoids all but the simplest mathematics.", - "payment": "optional", - "payment_description": "You can pay to enroll for a graded certificate and a capstone project, or choose to audit for free.", - "urls": [ - { - "icon": "regular/graduation-cap", - "title": "Python for Everyone Specialization", - "url": "https://www.coursera.org/learn/python" - } - ] - }, - "University of Toronto: Learn to Program": { - "description": "A 2-part course that teaches Python. Primarily intended for high school students and first-year university students who want to learn programming.", - "payment": "optional", - "payment_description": "You can pay to enroll for a graded certificate, or choose to audit for free.", - "urls": [ - { - "icon": "regular/graduation-cap", - "title": "Part 1: The Fundamentals", - "url": "https://www.coursera.org/learn/learn-to-program" - }, - { - "icon": "regular/graduation-cap", - "title": "Part 2: Crafting Quality Code", - "url": "https://www.coursera.org/learn/program-code" - } - ] - }, - "Automate the Boring Stuff with Python": { - "description": "The interactive course version of Al Sweigart's excellent book for beginners, taught by the author himself. This link has a discounted version of the course which will always cost 10 dollars. Thanks, Al!", - "payment": "paid", - "payment_description": "You can pay to enroll for a graded certificate, or choose to take the full course for free.", - "urls": [ - { - "icon": "regular/graduation-cap", - "title": "Udemy Course", - "url": "https://www.udemy.com/automate/?couponCode=FOR_LIKE_10_BUCKS" - } - ] - } - } - }, - "Editors": { - "description": "Lightweight code editors supporting Python", - "resources": { - "Atom": { - "description": "A free Electron-based editor, a \"hackable text editor for the 21st century\", maintained by the GitHub team.", - "payment": "free", - "payment_description": null, - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "https://atom.io/" - }, - { - "icon": "branding/github", - "title": "GitHub", - "url": "https://github.com/atom/atom" - } - ] - }, - "Visual Studio Code": { - "description": "A fully-featured editor based on Electron, extendable with plugins.", - "payment": "free", - "payment_description": null, - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "https://code.visualstudio.com/" - }, - { - "icon": "branding/github", - "title": "GitHub", - "url": "https://github.com/Microsoft/vscode" - } - ] - }, - "Sublime Text": { - "description": "A powerful Python-backed editor with great community support and a wealth of extensions.", - "payment": "optional", - "payment_description": "Nagware; will ask you to buy the full version after every X saves", - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "https://www.sublimetext.com/" - } - ] - }, - "Mu-Editor": { - "description": "An editor aimed at beginners for the purpose of learning how to code without the distractions more advanced editors sometimes cause.", - "payment": "free", - "payment_description": null, - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "https://codewith.mu/en/" - }, - { - "icon": "branding/github", - "title": "GitHub", - "url": "https://github.com/mu-editor/mu/" - } - ] - } - } - }, - "IDEs": { - "description": "Fully-integrated development environments for serious Python work", - "resources": { - "Spyder": { - "description": "The Scientific PYthon Development EnviRonment. Simpler and lighter than PyCharm, but still packs a punch.", - "payment": "free", - "payment_description": null, - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "https://pythonhosted.org/spyder/" - }, - { - "icon": "branding/github", - "title": "GitHub", - "url": "https://github.com/spyder-ide/spyder" - } - ] - }, - "PyCharm": { - "description": "The very best Python IDE, with a wealth of advanced features and convenience functions.", - "payment": "optional", - "payment_description": "There's a free Community Edition and a paid-for Professional Edition with more features available", - "urls": [ - { - "icon": "regular/link", - "title": "Website", - "url": "https://www.jetbrains.com/pycharm/" - } - ] - } - } - } -} |