PageSourceSearch

https://app.nempos.dk/js/1606.ee410385.js

js nempos.dk collected 2026-10-08 03:42:20 UTC 94,413 bytes, 2 lines download raw bytes

1"use strict";(self["webpackChunkwsypos_frontend"]=self["webpackChunkwsypos_frontend"]||[]).push([[1606],{49628:function(t,e,s){s.d(e,{A:function(){return d}});var i=function(){var t=this,e=t._self._c;return t.discounts.length>0?e("div",[e("h3",[t._v(t._s(t.$t("pos.amount_discount")))]),e("table",{staticClass:"table"},[e("thead",[e("tr",[e("th",[t._v(t._s(t.$t("types.discount_type")))]),e("th",[t._v(t._s(t.$t("types.vat_type")))]),e("th",{staticClass:"text-end"},[t._v(t._s(t.$t("general.amount")))])])]),e("tbody",t._l(t.discounts,(function(s){return e("tr",{key:s.uuid},[s.discount_type?e("td",[t._v(t._s(s.discount_type.name))]):e("td",{staticClass:"fst-italic"},[t._v(t._s(t.$t("admin.orders.custom_amount_discount")))]),e("td",[t._v(t._s(s.vat_type.name))]),e("td",{staticClass:"text-end"},[t._v(t._s(t.formatPrice(s.amount)))])])})),0)])]):t._e()},a=[],n=s(98956),o={name:"OrderOrInvoiceDiscountsTable",mixins:[n.A],props:{discounts:{type:Array,default(){return[]}}}},c=o,r=s(81656),l=(0,r.A)(c,i,a,!1,null,null,null),d=l.exports},3513:function(t,e,s){s.d(e,{A:function(){return l}});var i=function(){var t=this,e=t._self._c;return t.address&&t.address instanceof String?e("a",{staticClass:"btn btn-warning",attrs:{href:t.address}},[e("i",{staticClass:"bi bi-arrow-left me-1"}),t._v(t._s(t.$t("general.back"))+" ")]):t.address&&t.address instanceof Object?e("router-link",{staticClass:"btn btn-warning",attrs:{to:t.address}},[e("i",{staticClass:"bi bi-arrow-left me-1"}),t._v(t._s(t.$t("general.back"))+" ")]):e("a",{staticClass:"btn btn-warning",on:{click:function(e){return t.$router.go(-1)}}},[e("i",{staticClass:"bi bi-arrow-left me-1"}),t._v(t._s(t.$t("general.back"))+" ")])},a=[],n={name:"BackButton",props:{address:{type:String|Boolean,default:!1}}},o=n,c=s(81656),r=(0,c.A)(o,i,a,!1,null,"d7789cae",null),l=r.exports},13074:function(t,e,s){s.d(e,{A:function(){return d}});var i=function(){var t=this,e=t._self._c;return e("div",[e("div",{staticClass:"mb-3"},[e("span",{staticClass:"h1"},[t._v(t._s(t.text))]),e("span",{staticClass:"btn-group align-text-bottom ms-3"},[t.showBackButton?e("back-button"):t._e(),t._t("default")],2)]),t.explanations&&t.explanations.length>0?e("p",{staticClass:"lead"},[t._v(t._s(t.explanations))]):t._e()])},a=[],n=s(3513),o={name:"PageHeader",props:{text:{type:String,default:""},showBackButton:{default:!0},explanations:{type:String|Boolean,default:!1}},components:{BackButton:n.A}},c=o,r=s(81656),l=(0,r.A)(c,i,a,!1,null,"7be2a450",null),d=l.exports},21580:function(t,e,s){s.r(e),s.d(e,{default:function(){return u}});var i=function(){var t=this,e=t._self._c;return t.invoice?e("div",{staticClass:"p-4"},[e("page-header",{attrs:{text:t.$t("types.invoice")+" #"+t.invoice.invoice_no}}),e("div",{staticClass:"row g-3"},[e("div",{staticClass:"col-lg-6"},[t.invoice.integration&&!t.invoice.external_identifier?e("div",{staticClass:"card bg-info text-white mb-3"},[e("div",{staticClass:"card-header"},[e("i",{staticClass:"bi bi-key-fill ms-1"}),t._v(" "+t._s(t.$t("admin.invoices.transfer"))+" ")]),e("div",{staticClass:"card-body"},[e("button",{staticClass:"btn btn-primary",attrs:{disabled:t.isProcessingTransfer},on:{click:t.transferInvoice}},[e("i",{staticClass:"bi bi-key-fill ms-1"}),t._v(" "+t._s(t.$t("admin.invoices.transfer_to"))+" "+t._s(t.invoice.integration)+" ")])])]):t._e(),t.invoice.external_identifier?e("div",{staticClass:"card bg-info text-white mb-3"},[e("div",{staticClass:"card-header"},[t._v(" "+t._s(t.$t("admin.invoices.transferred"))+" ")]),e("div",{staticClass:"card-body",attrs:{title:t.invoice.external_identifier}},[t._v(" "+t._s(t.$t("admin.invoices.transferred_to"))+" "+t._s(t.invoice.integration)),e("br"),e("button",{staticClass:"btn btn-primary",attrs:{disabled:t.isProcessingTransfer},on:{click:t.transferInvoice}},[e("i",{staticClass:"bi bi-key-fill ms-1"}),t._v(" "+t._s(t.$t("admin.invoices.transfer_to"))+" "+t._s(t.invoice.integration)+" ")])])]):t._e(),t.invoice.note?e("div",{staticClass:"card bg-warning text-white mb-3"},[e("div",{staticClass:"card-header"},[t._v(" "+t._s(t.$t("general.note"))+" ")]),e("div",{staticClass:"card-body"},[t._v(" "+t._s(t.invoice.note)+" ")])]):t._e(),t.invoice.customer_note?e("div",{staticClass:"card bg-primary text-white mb-3"},[e("div",{staticClass:"card-header"},[t._v(" "+t._s(t.$t("general.customer_note"))+" ")]),e("div",{staticClass:"card-body"},[t._v(" "+t._s(t.invoice.customer_note)+" ")])]):t._e(),e("div",{staticClass:"flat-card"},[e("dl",{staticClass:"row mb-0 p-0 card-body"},[e("dt",{staticClass:"col-xl-4"},[t._v(t._s(t.$t("types.order")))]),e("dd",{staticClass:"col-xl-8"},[e("router-link",{attrs:{to:{name:"Order",params:{uuid:t.invoice.order?.uuid}}}},[t._v(" "+t._s(t.invoice.order?.full_invoice_number)+" ")]),null!==t.invoice.order?.external_order?[t._v("("+t._s(t.invoice.order?.external_order.source)+" #"+t._s(t.invoice.order?.external_order.id)+")")]:t._e()],2),e("dt",{staticClass:"col-xl-4"},[t._v(t._s(t.$t("general.status")))]),e("dd",{staticClass:"col-xl-8 py-0"},[e("span",{staticClass:"badge",class:["bg-"+t.getBootstrapColourNameFromStatus(t.invoice.status)]},[t._v(" "+t._s(t.$t("admin.invoices.statuses."+t.invoice.status))+" ")])]),t.lastProcessedEvent?[e("dt",{staticClass:"col-xl-4"},[t._v(t._s(t.$t("admin.invoices.marked_processed")))]),e("dd",{staticClass:"col-xl-8"},[t._v(t._s(t.formatEventDataForCoreData(t.lastProcessedEvent)))])]:t._e(),t.lastPaidEvent?[e("dt",{staticClass:"col-xl-4"},[t._v(t._s(t.$t("admin.invoices.marked_paid")))]),e("dd",{staticClass:"col-xl-8"},[t._v(t._s(t.formatEventDataForCoreData(t.lastPaidEvent)))])]:t._e(),e("dt",{staticClass:"col-xl-4"},[t._v(t._s(t.$t("general.created")))]),e("dd",{staticClass:"col-xl-8"},[t._v(t._s(t.formatDateTime(t.invoice.created_at)))]),e("dt",{staticClass:"col-xl-4"},[t._v(t._s(t.$t("general.created_by")))]),e("dd",{staticClass:"col-xl-8"},[t._v(t._s(t.invoice.user.name)+" / "+t._s(t.invoice.cashier.initials))]),e("dt",{staticClass:"col-xl-4"},[t._v(t._s(t.$t("types.register")))]),e("dd",{staticClass:"col-xl-8"},[t._v(t._s(t.invoice.register.name)+" (#"+t._s(t.invoice.register.identifier)+")")]),e("dt",{staticClass:"col-xl-4"},[t._v(t._s(t.$t("general.total")))]),e("dd",{staticClass:"col-xl-8"},[t._v(t._s(t.formatPrice(t.invoice.total)))])],2)]),e("div",{staticClass:"card mt-2"},[e("div",{staticClass:"card-header"},[t._v(" "+t._s(t.$t("admin.invoices.send_invoice"))+" ")]),e("dl",{staticClass:"row mb-0 card-body"},[e("dt",{staticClass:"col-xl-5 col-lg-12 col-md-5"},[t._v(" "+t._s(t.$t("general.receiver"))+" ")]),e("dd",{staticClass:"col-xl-7 col-lg-12 col-md-7"},[e("input",{directives:[{name:"model",rawName:"v-model",value:t.email,expression:"email"}],staticClass:"form-control",attrs:{type:"email",placeholder:t.$t("admin.invoices.email_placeholder")},domProps:{value:t.email},on:{input:function(e){e.target.composing||(t.email=e.target.value)}}})]),e("dt",{staticClass:"col-xl-5 col-lg-12 col-md-5"}),e("dd",{staticClass:"col-xl-7 col-lg-12 col-md-7"},[e("button",{staticClass:"btn btn-primary mt-2",attrs:{type:"button",disabled:t.isProcessingSendEmailRequest},on:{click:t.sendEmail}},[t.isProcessingSendEmailRequest?e("span",[e("span",{staticClass:"spinner-border spinner-border-sm",attrs:{role:"status","aria-hidden":"true"}}),t._v(" "+t._s(t.$t("general.processing"))+" ")]):e("span",[t._v(t._s(t.$t("admin.invoices.send_email")))])])])])]),t.invoice.events.length>0?e("div",{staticClass:"mt-2"},[e("h4",[t._v(t._s(t.$t("admin.invoices.status_history")))]),e("dl",{staticClass:"row"},[t._l(t.invoice.events,(function(s){return[e("dt",{key:s.uuid+"A",staticClass:"col-xl-5 col-lg-12 col-md-5"},[t._v(" "+t._s(t.formatDateTime(s.created_at))+" ")]),e("dd",{key:s.uuid+"B",staticClass:"col-xl-7 col-lg-12 col-md-7"},[e("span",{staticClass:"badge",class:["bg-"+t.getBootstrapColourNameFromStatus(s.new_status)]},[t._v(" "+t._s(t.$t("admin.invoices.statuses."+s.new_status))+" ")]),t._v(" "+t._s(t.$t("general.by").toLowerCase()+" "+s.user.n
1ame)+" ")])]})),e("dt")],2)]):t._e()]),e("div",{staticClass:"col-lg-6"},[e("div",{staticClass:"card"},[e("div",{staticClass:"card-header"},[t._v(" "+t._s(t.$t("general.receiver"))+" ")]),e("dl",{staticClass:"row mb-0 card-body"},[e("dt",{staticClass:"col-md-5",domProps:{innerHTML:t._s(t.$t("private"===t.invoice.customer.type?"general.name":"admin.customers.contact_person")+t.getInvoiceDataDetailTitleHtml(t.invoice.name,t.invoice.customer.name))}}),e("dd",{staticClass:"col-md-7"},[e("router-link",{attrs:{to:{name:"Customers.edit",params:{uuid:t.invoice.customer.uuid}}}},[e("button",{staticClass:"btn btn-sm btn-primary",attrs:{type:"button"}},[e("i",{staticClass:"bi",class:t.getCustomerTypeIconClass(t.invoice.customer.type)})])]),t._v(" "+t._s(t.getInvoiceDataDetailValueHtml(t.invoice.name,t.invoice.customer.name))+" ")],1),t.invoice.customer.company_name?[e("dt",{staticClass:"col-md-5",domProps:{innerHTML:t._s(t.getCompanyNameTranslationFromType(t.invoice.customer.type)+t.getInvoiceDataDetailTitleHtml(t.invoice.company_name,t.invoice.customer.company_name))}}),e("dd",{staticClass:"col-md-7",domProps:{innerHTML:t._s(t.getInvoiceDataDetailValueHtml(t.invoice.company_name,t.invoice.customer.company_name))}})]:t._e(),t._l([["pos.invoice","business_registration_id"],["pos.invoice","ean"],["addresses","street_name"],["addresses","house_number"],["addresses","floor"],["addresses","door"],["addresses","address_line_1"],["addresses","address_line_2"],["addresses","postcode"],["addresses","city"],["addresses","country"]],(function([s,i]){return[t.invoice[i]||t.invoice.customer[i]?e("dt",{key:i+"_A",staticClass:"col-md-5",domProps:{innerHTML:t._s(t.$t(s+"."+i)+t.getInvoiceDataDetailTitleHtml(t.invoice[i],t.invoice.customer[i]))}}):t._e(),t.invoice[i]||t.invoice.customer[i]?e("dd",{key:i+"_B",staticClass:"col-md-7",domProps:{innerHTML:t._s(t.getInvoiceDataDetailValueHtml(t.invoice[i],t.invoice.customer[i]))}}):t._e()]})),t._l(["contact_phone_number","invoicing_phone_number","contact_email","invoicing_email"],(function(s){return[t.invoice[s]||t.invoice.customer[s]?e("dt",{key:s+"_A",staticClass:"col-md-5"},[["contact_phone_number","invoicing_phone_number"].includes(s)?[e("span",[t._v(t._s(t.$t("general.telephone")))]),t._v(" | "),e("span",{staticClass:"small fst-italic fw-normal"},[t._v(" "+t._s(t.getMetaTranslationFromField(s))+" ")])]:["contact_email","invoicing_email"].includes(s)?[e("span",[t._v(t._s(t.$t("addresses.email")))]),t._v(" | "),e("span",{staticClass:"small fst-italic fw-normal"},[t._v(" "+t._s(t.getMetaTranslationFromField(s))+" ")])]:t._e(),e("span",{domProps:{innerHTML:t._s(t.getInvoiceDataDetailTitleHtml(t.invoice[s],t.invoice.customer[s],!0))}})],2):t._e(),t.invoice[s]||t.invoice.customer[s]?e("dd",{key:s+"_B",staticClass:"col-md-7",domProps:{innerHTML:t._s(t.getInvoiceDataDetailValueHtml(t.invoice[s],t.invoice.customer[s]))}}):t._e()]}))],2),null===t.invoice.customer.deleted_at&&"unprocessed"===t.invoice.status?e("div",{staticClass:"card-body d-flex justify-content-center"},[e("router-link",{attrs:{to:{name:"Customers.edit",params:{uuid:t.invoice.customer.uuid}}}},[e("button",{staticClass:"btn btn-sm btn-success",attrs:{type:"button"}},[t._v(" "+t._s(t.$t("admin.edit_resource",{resource:t.$t("types.customer").toLowerCase()}))+" ")])])],1):t._e()])]),e("div",{staticClass:"col-12"},[e("h3",[t._v(t._s(t.$t("types.invoice_lines")))]),e("order-or-invoice-lines-table",{attrs:{lines:t.invoice.invoice_lines}}),e("order-or-invoice-discounts-table",{attrs:{discounts:t.invoice.invoice_discounts}})],1)])],1):t._e()},a=[],n=(s(44114),s(98956)),o=s(13074),c=s(41858),r=s(49628),l=s(65924),d={name:"Invoice",mixins:[n.A,l.A],components:{PageHeader:o.A,OrderOrInvoiceLinesTable:c.A,OrderOrInvoiceDiscountsTable:r.A},data(){return{invoice:!1,email:"",isProcessingSendEmailRequest:!1,isProcessingTransfer:!1}},computed:{lastProcessedEvent:function(){return this.invoice?this.invoice.events.findLast((t=>"processed"===t.new_status)):null},lastPaidEvent:function(){return this.invoice?this.invoice.events.findLast((t=>"paid"===t.new_status)):null},moreStatusChangesThanExpected:function(){const t=this.invoice.events.filter((t=>"unprocessed"===t.new_status)),e=this.invoice.events.filter((t=>"processed"===t.new_status));return this.invoice&&(t.length>0||e.length>1)}},methods:{async transferInvoice(){const t=this.invoice.uuid;this.isProcessingTransfer||(this.isProcessingTransfer=t,axios.post(`invoices/${t}/transfer`).then((t=>{t.data.data;this.$store.commit("infoNotify",this.$t("admin.invoices.transferred_successfully")),this.$router.push({name:"Invoices"})})).catch((t=>{t.response?.data?.message&&this.$store.commit("dangerNotify",t.response.data.errors?.integration?.[0]||t.response.data.message)})).finally((()=>{this.isProcessingTransfer=!1})))},async fetchInvoice(){return axios.get("invoices/"+this.$route.params.uuid).then((t=>{this.invoice=t.data.data}))},async sendEmail(){const t=this.invoice.uuid;this.isProcessingSendEmailRequest=t;
1const e={email:this.email};axios.post(`invoices/${t}/send-email`,e).then((t=>{t.data.data;this.$store.commit("infoNotify",this.$t("admin.invoices.email_sent"))})).catch((t=>{t.response?.data?.message&&this.$store.commit("dangerNotify",t.response.data.errors.email[0]||t.response.data.message)})).finally((()=>{this.isProcessingSendEmailRequest=!1}))},getInvoiceDataDetailTitleHtml(t,e,s=!1){return t!==e&&"unprocessed"===this.invoice.status?s?' <i class="bi bi-exclamation-diamond-fill text-danger float-end"></i>':' <i class="bi bi-exclamation-diamond-fill text-danger"></i>':""},getInvoiceDataDetailValueHtml(t,e){if(t===e||["processed","paid"].includes(this.invoice.status))return t;{const s=null===t?'<i class="text-muted">N/A</i>':t;return`<del>${e}</del> ${s}`}},getMetaTranslationFromField(t){switch(t){case"contact_phone_number":case"contact_email":return this.$t("addresses.meta.contact").toLowerCase();case"invoicing_phone_number":case"invoicing_email":return this.$t("addresses.meta.invoicing").toLowerCase()}},formatEventDataForCoreData(t){const e=this.formatDateTime(t.created_at),s=this.$t("general.by").toLowerCase(),i=t.user.name;return`${e} ${s} ${i}`}},created(){this.fetchInvoice()},mounted(){}},v=d,m=s(81656),_=(0,m.A)(v,i,a,!1,null,null,null),u=_.exports},65924:function(t,e){e.A={methods:{getBootstrapColourNameFromStatus(t){switch(t){case"unprocessed":return"warning";case"processed":return"info";case"paid":return"success"}}}}}}]);
2//# sourceMappingURL=data:application/json;charset=utf-8;base64,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BLENBQ0F1QixNQUFBLEtBQUFBLE9BR0FxQyxNQUNBQyxLQUFBLFlBQUFuRyxlQUFBc0MsR0FDQThELE1BQUFDLElBQ0FBLEVBQUFYLEtBQUFBLEtBQ0EsS0FBQVksT0FBQUMsT0FBQSxrQkFBQTVHLEdBQUEsaUNBRUE4RyxPQUFBQyxJQUNBQSxFQUFBTCxVQUFBWCxNQUFBaUIsU0FDQSxLQUFBTCxPQUFBQyxPQUNBLGVBQ0FHLEVBQUFMLFNBQUFYLEtBQUFrQixPQUFBL0MsTUFBQSxJQUFBNkMsRUFBQUwsU0FBQVgsS0FBQWlCLFFBRUEsSUFFQUUsU0FBQSxLQUNBLEtBQUEzQyw4QkFBQSxJQUVBLEVBQ0FPL
2DZCQUFBQSxDQUFBd0MsRUFBQUMsRUFBQUMsR0FBQSxHQUNBLE9BQUFGLElBQUFDLEdBQUEscUJBQUFwRixRQUFBZ0IsT0FHQXFFLEVBQ0Esd0VBRUEsOERBR0EsRUFFQSxFQUVBeEMsNkJBQUFBLENBQUFzQyxFQUFBQyxHQUNBLEdBQUFELElBQUFDLEdBQUEscUJBQUFsQyxTQUFBLEtBQUFsRCxRQUFBZ0IsUUFHQSxPQUFBbUUsRUFDQSxDQUNBLE1BQUFHLEVBQUEsT0FBQUgsRUFBQSxnQ0FBQUEsRUFFQSxjQUFBQyxXQUFBRSxHQUNBLENBQ0EsRUFFQW5DLDJCQUFBQSxDQUFBRixHQUNBLE9BQUFBLEdBQ0EsMkJBQ0Esb0JBQ0EsWUFBQXBGLEdBQUEsMEJBQUE0RSxjQUNBLDZCQUNBLHNCQUNBLFlBQUE1RSxHQUFBLDRCQUFBNEUsY0FFQSxFQUVBdkIsMEJBQUFBLENBQUFxRSxHQUNBLE1BQUFDLEVBQUEsS0FBQXBFLGVBQUFtRSxFQUFBbEUsWUFDQW9FLEVBQUEsS0FBQTVILEdBQUEsY0FBQTRFLGNBQ0FpRCxFQUFBSCxFQUFBakUsS0FBQWxELEtBRUEsU0FBQW9ILEtBQUFDLEtBQUFDLEdBQ0EsR0FHQUMsT0FBQUEsR0FDQSxLQUFBWCxjQUNBLEVBRUFZLE9BQUFBLEdBQUEsR0N6Y3dRLEksV0NPcFE1RyxHQUFZLE9BQ2QsRUFDQTVCLEVBQ0FxQixHQUNBLEVBQ0EsS0FDQSxLQUNBLE1BSUYsRUFBZU8sRUFBaUIsTyxzQkNsQmhDLEtBQ0ltRixRQUFTLENBQ0xwRCxnQ0FBQUEsQ0FBaUNDLEdBQzdCLE9BQVFBLEdBQ0osSUFBSyxjQUNELE1BQU8sVUFDWCxJQUFLLFlBQ0QsTUFBTyxPQUNYLElBQUssT0FDRCxNQUFPLFVBRW5CLEciLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly93c3lwb3MtZnJvbnRlbmQvLi9zcmMvY29tcG9uZW50cy9hZG1pbi9PcmRlck9ySW52b2ljZURpc2NvdW50c1RhYmxlLnZ1ZSIsIndlYnBhY2s6Ly93c3lwb3MtZnJvbnRlbmQvc3JjL2NvbXBvbmVudHMvYWRtaW4vT3JkZXJPckludm9pY2VEaXNjb3VudHNUYWJsZS52dWUiLCJ3ZWJwYWNrOi8vd3N5cG9zLWZyb250ZW5kLy4vc3JjL2NvbXBvbmVudHMvYWRtaW4vT3JkZXJPckludm9pY2VEaXNjb3VudHNUYWJsZS52dWU/YTRhMiIsIndlYnBhY2s6Ly93c3lwb3MtZnJvbnRlbmQvLi9zcmMvY29tcG9uZW50cy9hZG1pbi9PcmRlck9ySW52b2ljZURpc2NvdW50c1RhYmxlLnZ1ZT8zNDcyIiwid2VicGFjazovL3dzeXBvcy1mcm9udGVuZC8uL3NyYy9jb21wb25lbnRzL2FkbWluL21pbm9yL0JhY2tCdXR0b24udnVlIiwid2VicGFjazovL3dzeXBvcy1mcm9udGVuZC9zcmMvY29tcG9uZW50cy9hZG1pbi9taW5vci9CYWNrQnV0dG9uLnZ1
2ZSIsIndlYnBhY2s6Ly93c3lwb3MtZnJvbnRlbmQvLi9zcmMvY29tcG9uZW50cy9hZG1pbi9taW5vci9CYWNrQnV0dG9uLnZ1ZT8wOTMzIiwid2VicGFjazovL3dzeXBvcy1mcm9udGVuZC8uL3NyYy9jb21wb25lbnRzL2FkbWluL21pbm9yL0JhY2tCdXR0b24udnVlPzU0MzUiLCJ3ZWJwYWNrOi8vd3N5cG9zLWZyb250ZW5kLy4vc3JjL2NvbXBvbmVudHMvYWRtaW4vbWlub3IvUGFnZUhlYWRlci52dWUiLCJ3ZWJwYWNrOi8vd3N5cG9zLWZyb250ZW5kL3NyYy9jb21wb25lbnRzL2FkbWluL21pbm9yL1BhZ2VIZWFkZXIudnVlIiwid2VicGFjazovL3dzeXBvcy1mcm9udGVuZC8uL3NyYy9jb21wb25lbnRzL2FkbWluL21pbm9yL1BhZ2VIZWFkZXIudnVlP2IzMzgiLCJ3ZWJwYWNrOi8vd3N5cG9zLWZyb250ZW5kLy4vc3JjL2NvbXBvbmVudHMvYWRtaW4vbWlub3IvUGFnZUhlYWRlci52dWU/ZDE1MSIsIndlYnBhY2s6Ly93c3lwb3MtZnJvbnRlbmQvLi9zcmMvdmlld3Mvc2lnbmVkX2luL2FkbWluL0ludm9pY2UudnVlIiwid2VicGFjazovL3dzeXBvcy1mcm9udGVuZC9zcmMvdmlld3Mvc2lnbmVkX2luL2FkbWluL0ludm9pY2UudnVlIiwid2VicGFjazovL3dzeXBvcy1mcm9udGVuZC8uL3NyYy92aWV3cy9zaWduZWRfaW4vYWRtaW4vSW52b2ljZS52dWU/MWUzNiIsIndlYnBhY2s6Ly93c3lwb3MtZnJvbnRlbmQvLi9zcmMvdmlld3Mvc2lnbmVkX2luL2FkbWluL0ludm9pY2UudnVlP2U5MDkiLCJ3ZWJwYWNrOi8vd3N5cG9zLWZyb250ZW5kLy4vc3JjL21peGlucy9JbnZvaWNlSGVscGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCl7dmFyIF92bT10aGlzLF9jPV92bS5fc2VsZi5fYztyZXR1cm4gKF92bS5kaXNjb3VudHMubGVuZ3RoID4gMCk/X2MoJ2RpdicsW19jKCdoMycsW192bS5fdihfdm0uX3MoX3ZtLiR0KFwicG9zLmFtb3VudF9kaXNjb3VudFwiKSkpXSksX2MoJ3RhYmxlJyx7c3RhdGljQ2xhc3M6XCJ0YWJsZVwifSxbX2MoJ3RoZWFkJyxbX2MoJ3RyJyxbX2MoJ3RoJyxbX3ZtLl92KF92bS5fcyhfdm0uJHQoXCJ0eXBlcy5kaXNjb3VudF90eXBlXCIpKSldKSxfYygndGgnLFtfdm0uX3YoX3ZtLl9zKF92bS4kdChcInR5cGVzLnZhdF90eXBlXCIpKSldKSxfYygndGgnLHtzdGF0aWNDbGFzczpcInRleHQtZW5kXCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS4kdChcImdlbmVyYWwuYW1vdW50XCIpKSldKV0pXSksX2MoJ3Rib2R5Jyxfdm0uX2woKF92bS5kaXNjb3VudHMpLGZ1bmN0aW9uKGRpc2NvdW50KXtyZXR1cm4gX2MoJ3RyJyx7a2V5OmRpc2NvdW50LnV1aWR9LFsoZGlzY291bnQuZGlzY291bnRfdHlwZSk/X2MoJ3RkJyxbX3ZtLl92KF92bS5fcyhkaXNjb3VudC5kaXNjb3VudF90eXBlLm5hbWUpKV0pOl9jKCd0ZCcse3N0YXRpY0NsYXNzOlwiZnN0LWl0YWxpY1wifSxbX3ZtLl92KF92bS5fcyhfdm0uJHQoXCJhZG1pbi5vcmRlcnMuY3VzdG9tX2Ftb3VudF9kaXNjb3VudFwiKSkpXSksX2MoJ3RkJyxbX3ZtLl92KF92bS5fcyhkaXNjb3VudC52YXRfdHlwZS5uYW1lKSldKSxfYygndGQnLHtzdGF0aWNDbGFzczpcInRleHQtZW5kXCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS5mb3JtYXRQcmljZShkaXNjb3VudC5hbW91bnQpKSldKV0pfSksMCldKV0pOl92bS5fZSgpXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIjx0ZW1wbGF0ZT5cbiAgICA8ZGl2IHYtaWY9XCJkaXNjb3VudHMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8aDM+e3sgJHQoXCJwb3MuYW1vdW50X2Rpc2NvdW50XCIpIH19PC9oMz5cblxuICAgICAgICA8dGFibGUgY2xhc3M9XCJ0YWJsZVwiPlxuICAgICAgICAgICAgPHRoZWFkPlxuICAgICAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICAgICAgPHRoPnt7ICR0KFwidHlwZXMuZGlzY291bnRfdHlwZVwiKSB9fTwvdGg+XG4gICAgICAgICAgICAgICAgICAgIDx0aD57eyAkdChcInR5cGVzLnZhdF90eXBlXCIpIH19PC90aD5cbiAgICAgICAgICAgICAgICAgICAgPHRoIGNsYXNzPVwidGV4dC1lbmRcIj57eyAkdChcImdlbmVyYWwuYW1vdW50XCIpIH19PC90aD5cbiAgICAgICAgICAgICAgICA8L3RyPlxuICAgICAgICAgICAgPC90aGVhZD5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgICAgICA8dHIgdi1mb3I9XCJkaXNjb3VudCBpbiBkaXNjb3VudHNcIiA6a2V5PVwiZGlzY291bnQudXVpZFwiPlxuICAgICAgICAgICAgICAgICAgICA8dGQgdi1pZj1cImRpc2NvdW50LmRpc2NvdW50X3R5cGVcIj57eyBkaXNjb3VudC5kaXNjb3VudF90eXBlLm5hbWUgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQgdi1lbHNlIGNsYXNzPVwiZnN0LWl0YWxpY1wiPnt7ICR0KFwiYWRtaW4ub3JkZXJzLmN1c3RvbV9hbW91bnRfZGlzY291bnRcIikgfX08L3RkPlxuICAgICAgICAgICAgICAgICAgICA8dGQ+e3sgZGlzY291bnQudmF0X3R5cGUubmFtZSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInRleHQtZW5kXCI+e3sgZm9ybWF0UHJpY2UoZGlzY291bnQuYW1vdW50KSB9fTwvdGQ+XG4gICAgICAgICAgICAgICAgPC90cj5cbiAgICAgICAgICAgIDwvdGJvZHk+XG4gICAgICAgIDwvdGFibGU+XG4gICAgPC9kaXY+XG48L3RlbXBsYXRlPlxuXG48c2NyaXB0PlxuaW1wb3J0IGZvcm1hdHRlciBmcm9tIFwiQC9taXhpbnMvRm9ybWF0dGVyLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQge1xuICAgIG5hbWU6IFwiT3JkZXJPckludm9pY2VEaXNjb3VudHNUYWJsZVwiLFxuXG4gICAgbWl4aW5zOiBbZm9ybWF0dGVyXSxcblxuICAgI
2HByb3BzOiB7XG4gICAgICAgIGRpc2NvdW50czoge1xuICAgICAgICAgICAgdHlwZTogQXJyYXksXG4gICAgICAgICAgICBkZWZhdWx0KCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBbXVxuICAgICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICB9LFxufVxuPC9zY3JpcHQ+XG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTQwLnVzZVsxXSEuLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL09yZGVyT3JJbnZvaWNlRGlzY291bnRzVGFibGUudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNDAudXNlWzFdIS4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL3Z1ZS1sb2FkZXItdjE1L2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vT3JkZXJPckludm9pY2VEaXNjb3VudHNUYWJsZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vT3JkZXJPckludm9pY2VEaXNjb3VudHNUYWJsZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2EzMTYxYmNcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9PcmRlck9ySW52b2ljZURpc2NvdW50c1RhYmxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiXG5leHBvcnQgKiBmcm9tIFwiLi9PcmRlck9ySW52b2ljZURpc2NvdW50c1RhYmxlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJ2YXIgcmVuZGVyID0gZnVuY3Rpb24gcmVuZGVyKCl7dmFyIF92bT10aGlzLF9jPV92bS5fc2VsZi5fYztyZXR1cm4gKF92bS5hZGRyZXNzICYmIF92bS5hZGRyZXNzIGluc3RhbmNlb2YgU3RyaW5nKT9fYygnYScse3N0YXRpY0NsYXNzOlwiYnRuIGJ0bi13YXJuaW5nXCIsYXR0cnM6e1wiaHJlZlwiOl92bS5hZGRyZXNzfX0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJiaSBiaS1hcnJvdy1sZWZ0IG1lLTFcIn0pLF92bS5fdihfdm0uX3MoX3ZtLiR0KFwiZ2VuZXJhbC5iYWNrXCIpKStcIiBcIildKTooX3ZtLmFkZHJlc3MgJiYgX3ZtLmFkZHJlc3MgaW5zdGFuY2VvZiBPYmplY3QpP19jKCdyb3V0ZXItbGluaycse3N0YXRpY0NsYXNzOlwiYnRuIGJ0bi13YXJuaW5nXCIsYXR0cnM6e1widG9cIjpfdm0uYWRkcmVzc319LFtfYygnaScse3N0YXRpY0NsYXNzOlwiYmkgYmktYXJyb3ctbGVmdCBtZS0xXCJ9KSxfdm0uX3YoX3ZtLl9zKF92bS4kdChcImdlbmVyYWwuYmFja1wiKSkrXCIgXCIpXSk6X2MoJ2EnLHtzdGF0aWNDbGFzczpcImJ0biBidG4td2FybmluZ1wiLG9uOntcImNsaWNrXCI6ZnVuY3Rpb24oJGV2ZW50KXtyZXR1cm4gX3ZtLiRyb3V0ZXIuZ28oLTEpfX19LFtfYygnaScse3N0YXRpY0NsYXNzOlwiYmkgYmktYXJyb3ctbGVmdCBtZS0xXCJ9KSxfdm0uX3YoX3ZtLl9zKF92bS4kdChcImdlbmVyYWwuYmFja1wiKSkrXCIgXCIpXSlcbn1cbnZhciBzdGF0aWNSZW5kZXJGbnMgPSBbXVxuXG5leHBvcnQgeyByZW5kZXIsIHN0YXRpY1JlbmRlckZucyB9IiwiPHRlbXBsYXRlPlxuICAgIDxhIHYtaWY9XCJhZGRyZXNzICYmIGFkZHJlc3MgaW5zdGFuY2VvZiBTdHJpbmdcIiA6aHJlZj1cImFkZHJlc3NcIiBjbGFzcz1cImJ0biBidG4td2FybmluZ1wiPlxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWFycm93LWxlZnQgbWUtMVwiPjwvaT57eyAkdChcImdlbmVyYWwuYmFja1wiKSB9fVxuICAgIDwvYT5cbiAgICA8cm91dGVyLWxpbmsgdi1lbHNlLWlmPVwiYWRkcmVzcyAmJiBhZGRyZXNzIGluc3RhbmNlb2YgT2JqZWN0XCIgOnRvPVwiYWRkcmVzc1wiIGNsYXNzPVwiYnRuIGJ0bi13YXJuaW5nXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiYmkgYmktYXJyb3ctbGVmdCBtZS0xXCI+PC9pPnt7ICR0KFwiZ2VuZXJhbC5iYWNrXCIpIH19XG4gICAgPC9yb3V0ZXItbGluaz5cbiAgICA8YSB2LWVsc2UgQGNsaWNrPVwiJHJvdXRlci5nbygtMSlcIiBjbGFzcz1cImJ0biBidG4td2FybmluZ1wiPlxuICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWFycm93LWxlZnQgbWUtMVwiPjwvaT57eyAkdChcImdlbmVyYWwuYmFja1wiKSB9fVxuICAgIDwvYT5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5leHBvcnQgZGVmYXVsdCB7XG4gICAgbmFtZTogXCJCYWNrQnV0dG9uXCIsXG4gICAgcHJvcHM6IHtcbiAgICAgICAgYWRkcmVzczoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nIHwgQm9vbGVhbixcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIH0sXG59XG48L3NjcmlwdD5cblxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPlxuLyogQWRkIGFueSBuZWNlc3Nhcnkgc3R5bGVzIGhlcmUgKi9cblxuPC9zdHlsZT5cbiIsImltcG9ydCBtb2QgZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNDAudXNlWzFdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL3Z1ZS1sb2FkZXItdjE1L2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vQmFja0J1dHRvbi52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIjsgZXhwb3J0IGRlZmF1bHQgbW9kOyBleHBvcnQgKiBmcm9tIFwiLSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvdGhyZWFkLWxvYWRlci9kaXN0L2Nqcy5qcyEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvYmFiZWwtbG9hZGVyL2xpYi9pbmRleC5qcz8/Y2xvbmVkUnVsZVNldC00MC51c2VbMV0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL0B2dWUvdnVlLWxvYWRlci12MTUvbGliL2luZGV4LmpzPz92dWUtbG9hZGVyLW9wdGlvbnMhLi9CYWNrQnV0dG9uLnZ1
2ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiIiwiaW1wb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSBmcm9tIFwiLi9CYWNrQnV0dG9uLnZ1ZT92dWUmdHlwZT10ZW1wbGF0ZSZpZD1kNzc4OWNhZSZzY29wZWQ9dHJ1ZVwiXG5pbXBvcnQgc2NyaXB0IGZyb20gXCIuL0JhY2tCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCJcbmV4cG9ydCAqIGZyb20gXCIuL0JhY2tCdXR0b24udnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCJcbmltcG9ydCBzdHlsZTAgZnJvbSBcIi4vQmFja0J1dHRvbi52dWU/dnVlJnR5cGU9c3R5bGUmaW5kZXg9MCZpZD1kNzc4OWNhZSZwcm9kJmxhbmc9c2NzcyZzY29wZWQ9dHJ1ZVwiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCJkNzc4OWNhZVwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsInZhciByZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKXt2YXIgX3ZtPXRoaXMsX2M9X3ZtLl9zZWxmLl9jO3JldHVybiBfYygnZGl2JyxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibWItM1wifSxbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcImgxXCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS50ZXh0KSldKSxfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwiYnRuLWdyb3VwIGFsaWduLXRleHQtYm90dG9tIG1zLTNcIn0sWyhfdm0uc2hvd0JhY2tCdXR0b24pP19jKCdiYWNrLWJ1dHRvbicpOl92bS5fZSgpLF92bS5fdChcImRlZmF1bHRcIildLDIpXSksKF92bS5leHBsYW5hdGlvbnMgJiYgX3ZtLmV4cGxhbmF0aW9ucy5sZW5ndGggPiAwKT9fYygncCcse3N0YXRpY0NsYXNzOlwibGVhZFwifSxbX3ZtLl92KF92bS5fcyhfdm0uZXhwbGFuYXRpb25zKSldKTpfdm0uX2UoKV0pXG59XG52YXIgc3RhdGljUmVuZGVyRm5zID0gW11cblxuZXhwb3J0IHsgcmVuZGVyLCBzdGF0aWNSZW5kZXJGbnMgfSIsIjx0ZW1wbGF0ZT5cbiAgICA8ZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoMVwiPnt7IHRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJ0bi1ncm91cCBhbGlnbi10ZXh0LWJvdHRvbSBtcy0zXCI+XG4gICAgICAgICAgICAgICAgPGJhY2stYnV0dG9uIHYtaWY9XCJzaG93QmFja0J1dHRvblwiIC8+XG4gICAgICAgICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8cCBjbGFzcz1cImxlYWRcIiB2LWlmPVwiZXhwbGFuYXRpb25zICYmIGV4cGxhbmF0aW9ucy5sZW5ndGggPiAwXCI+e3sgZXhwbGFuYXRpb25zIH19PC9wPlxuICAgIDwvZGl2PlxuPC90ZW1wbGF0ZT5cblxuPHNjcmlwdD5cbmltcG9ydCBCYWNrQnV0dG9uIGZyb20gXCJAL2NvbXBvbmVudHMvYWRtaW4vbWlub3IvQmFja0J1dHRvbi52dWVcIlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgbmFtZTogXCJQYWdlSGVhZGVyXCIsXG5cbiAgICBwcm9wczoge1xuICAgICAgICB0ZXh0OiB7XG4gICAgICAgICAgICB0eXBlOiBTdHJpbmcsXG4gICAgICAgICAgICBkZWZhdWx0OiBcIlwiLFxuICAgICAgICB9LFxuXG4gICAgICAgIHNob3dCYWNrQnV0dG9uOiB7XG4gICAgICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICB9LFxuXG4gICAgICAgIGV4cGxhbmF0aW9uczoge1xuICAgICAgICAgICAgdHlwZTogU3RyaW5nIHwgQm9vbGVhbixcbiAgICAgICAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgICB9LFxuICAgIH0sXG5cbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIEJhY2tCdXR0b24sXG4gICAgfSxcbn1cbjwvc2NyaXB0PlxuPHN0eWxlIGxhbmc9XCJzY3NzXCIgc2NvcGVkPjwvc3R5bGU+XG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTQwLnVzZVsxXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL1BhZ2VIZWFkZXIudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNDAudXNlWzFdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL3Z1ZS1sb2FkZXItdjE1L2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vUGFnZUhlYWRlci52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vUGFnZUhlYWRlci52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9N2JlMmE0NTAmc2NvcGVkPXRydWVcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9QYWdlSGVhZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiXG5leHBvcnQgKiBmcm9tIFwiLi9QYWdlSGVhZGVyLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgXCI3YmUyYTQ1MFwiLFxuICBudWxsXG4gIFxuKVxuXG5leHBvcnQgZGVmYXVsdCBjb21wb25lbnQuZXhwb3J0cyIsInZhciByZW5kZXIgPSBmdW5jdGlvbiByZW5kZXIoKXt2YXIgX3ZtPXRoaXMsX2M9X3ZtLl9zZWxmLl9jO3JldHVybiAoX3ZtLmludm9pY2UpP19jKCdkaXYnLHtzdGF0aWNDbGFzczpcInAtNFwifSxbX2MoJ3BhZ2UtaGVhZGVyJyx7YXR0cnM6e1widGV4dFwiOl92bS4kdCgndHlwZXMuaW52b2ljZScpICsgJyAjJyArIF92bS5pbnZvaWNlLmludm9pY2Vfbm99fSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwicm93IGctM1wifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY29sLWxnLTZcIn0sWyhfdm0uaW52b2ljZS5pbnRlZ3JhdGlvbiAmJiAhX3ZtLmludm9pY2UuZXh0ZXJuYWxfaWRlbnRpZmllcik/X2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY2FyZCBiZy1pbmZvIHRleHQtd2hpdGUgbWItM1wifSxbX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY2FyZC1oZWFkZXJcIn0sW19jKCdpJyx7c3RhdGljQ2xhc3M6XCJiaSBiaS1rZXktZmlsbCBtcy0xXCJ9KSxfdm0uX3YoXCIgXCIrX3ZtLl9zKF92bS4kdChcImFkbWluLmludm9pY2VzLnRyYW5zZmVyXCIpKStcIiBcIildKSxfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjYXJkLWJvZHlcIn0sW19jKCdidXR0b24nLHtzdGF0aWNDbGFzczpcImJ0biBidG4tcHJpbWFyeVwiLGF0dHJzOntcImRpc2FibGVkXCI6X3ZtLmlzUHJvY2Vzc2luZ1RyYW5zZmVyfSxvbjp7XCJjbGlja1wiOl92bS50cmFuc2Zlckludm9pY2V9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImJpIGJpLWtleS1maWxsIG1zLTFcIn0pLF92bS5fdihcIiBcIitfdm0uX3MoX3ZtLiR0KFwiYWRtaW4uaW52b2ljZXMudHJhbnNmZXJfdG9cIikpK1wiIFwiK192bS5fcyhfdm0uaW52b2ljZS5pbnRlZ3JhdGlvbikrXCIgXCIpXSldKV0pOl92bS5fZSgpLChfdm0uaW52b2ljZS5leHRlcm5hbF9pZGVudGlmaWVyKT9fYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjYXJkIGJnLWluZm8gdGV4dC13aGl0ZSBtYi0zXCJ9LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjYXJkLWhlYWRlclwifSxbX3ZtLl92KFwiIFwiK192bS5fcyhfdm0uJHQoXCJhZG1pbi5pbnZvaWNlcy50cmFuc2ZlcnJlZFwiKSkrXCIgXCIpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY2FyZC1ib2R5XCIsYXR0cnM6e1widGl0bGVcIjpfdm0uaW52b2ljZS5leHRlcm5hbF9pZGVudGlmaWVyfX0sW192bS5fdihcIiBcIitfdm0uX3MoX3ZtLiR0KFwiYWRtaW4uaW52b2ljZXMudHJhbnNmZXJyZWRfdG9cIikpK1wiIFwiK192bS5fcyhfdm0uaW52b2ljZS5pbnRlZ3JhdGlvbikpLF9jKCdicicpLF9jKCdidXR0b24nLHtzdGF0aWNDbGFzczpcImJ0biBidG4tcHJpbWFyeVwiLGF0dHJzOntcImRpc2FibGVkXCI6X3ZtLmlzUHJvY2Vzc2luZ1RyYW5zZmVyfSxvbjp7XCJjbGlja1wiOl92bS50cmFuc2Zlckludm9pY2V9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImJpIGJpLWtleS1maWxsIG1zLTFcIn0pLF92bS5fdihcIiBcIitfdm0uX3MoX3ZtLiR0KFwiYWRtaW4uaW52b2ljZXMudHJhbnNmZXJfdG9cIikpK1wiIFwiK192bS5fcyhfdm0uaW52b2ljZS5pbnRlZ3JhdGlvbikrXCIgXCIpXSldKV0pOl92bS5fZSgpLChfdm0uaW52b2ljZS5ub3RlKT9fYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjYXJkIGJnLXdhcm5pbmcgdGV4dC13aGl0ZSBtYi0zXCJ9LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjYXJkLWhlYWRlclwifSxbX3ZtLl92KFwiIFwiK192bS5fcyhfdm0uJHQoXCJnZW5lcmFsLm5vdGVcIikpK1wiIFwiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNhcmQtYm9keVwifSxbX3ZtLl92KFwiIFwiK192bS5fcyhfdm0uaW52b2ljZS5ub3RlKStcIiBcIildKV0pOl92bS5fZSgpLChfdm0uaW52b2ljZS5jdXN0b21lcl9ub3RlKT9fYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjYXJkIGJnLXByaW
21hcnkgdGV4dC13aGl0ZSBtYi0zXCJ9LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjYXJkLWhlYWRlclwifSxbX3ZtLl92KFwiIFwiK192bS5fcyhfdm0uJHQoXCJnZW5lcmFsLmN1c3RvbWVyX25vdGVcIikpK1wiIFwiKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNhcmQtYm9keVwifSxbX3ZtLl92KFwiIFwiK192bS5fcyhfdm0uaW52b2ljZS5jdXN0b21lcl9ub3RlKStcIiBcIildKV0pOl92bS5fZSgpLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImZsYXQtY2FyZFwifSxbX2MoJ2RsJyx7c3RhdGljQ2xhc3M6XCJyb3cgbWItMCBwLTAgY2FyZC1ib2R5XCJ9LFtfYygnZHQnLHtzdGF0aWNDbGFzczpcImNvbC14bC00XCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS4kdChcInR5cGVzLm9yZGVyXCIpKSldKSxfYygnZGQnLHtzdGF0aWNDbGFzczpcImNvbC14bC04XCJ9LFtfYygncm91dGVyLWxpbmsnLHthdHRyczp7XCJ0b1wiOnsgbmFtZTogJ09yZGVyJywgcGFyYW1zOiB7IHV1aWQ6IF92bS5pbnZvaWNlLm9yZGVyPy51dWlkIH0gfX19LFtfdm0uX3YoXCIgXCIrX3ZtLl9zKF92bS5pbnZvaWNlLm9yZGVyPy5mdWxsX2ludm9pY2VfbnVtYmVyKStcIiBcIildKSwoX3ZtLmludm9pY2Uub3JkZXI/LmV4dGVybmFsX29yZGVyICE9PSBudWxsKT9bX3ZtLl92KFwiKFwiK192bS5fcyhfdm0uaW52b2ljZS5vcmRlcj8uZXh0ZXJuYWxfb3JkZXIuc291cmNlKStcIiAjXCIrX3ZtLl9zKF92bS5pbnZvaWNlLm9yZGVyPy5leHRlcm5hbF9vcmRlci5pZCkrXCIpXCIpXTpfdm0uX2UoKV0sMiksX2MoJ2R0Jyx7c3RhdGljQ2xhc3M6XCJjb2wteGwtNFwifSxbX3ZtLl92KF92bS5fcyhfdm0uJHQoXCJnZW5lcmFsLnN0YXR1c1wiKSkpXSksX2MoJ2RkJyx7c3RhdGljQ2xhc3M6XCJjb2wteGwtOCBweS0wXCJ9LFtfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwiYmFkZ2VcIixjbGFzczpbJ2JnLScgKyBfdm0uZ2V0Qm9vdHN0cmFwQ29sb3VyTmFtZUZyb21TdGF0dXMoX3ZtLmludm9pY2Uuc3RhdHVzKV19LFtfdm0uX3YoXCIgXCIrX3ZtLl9zKF92bS4kdChcImFkbWluLmludm9pY2VzLnN0YXR1c2VzLlwiICsgX3ZtLmludm9pY2Uuc3RhdHVzKSkrXCIgXCIpXSldKSwoX3ZtLmxhc3RQcm9jZXNzZWRFdmVudCk/W19jKCdkdCcse3N0YXRpY0NsYXNzOlwiY29sLXhsLTRcIn0sW192bS5fdihfdm0uX3MoX3ZtLiR0KFwiYWRtaW4uaW52b2ljZXMubWFya2VkX3Byb2Nlc3NlZFwiKSkpXSksX2MoJ2RkJyx7c3RhdGljQ2xhc3M6XCJjb2wteGwtOFwifSxbX3ZtLl92KF92bS5fcyhfdm0uZm9ybWF0RXZlbnREYXRhRm9yQ29yZURhdGEoX3ZtLmxhc3RQcm9jZXNzZWRFdmVudCkpKV0pXTpfdm0uX2UoKSwoX3ZtLmxhc3RQYWlkRXZlbnQpP1tfYygnZHQnLHtzdGF0aWNDbGFzczpcImNvbC14bC00XCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS4kdChcImFkbWluLmludm9pY2VzLm1hcmtlZF9wYWlkXCIpKSldKSxfYygnZGQnLHtzdGF0aWNDbGFzczpcImNvbC14bC04XCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS5mb3JtYXRFdmVudERhdGFGb3JDb3JlRGF0YShfdm0ubGFzdFBhaWRFdmVudCkpKV0pXTpfdm0uX2UoKSxfYygnZHQnLHtzdGF0aWNDbGFzczpcImNvbC14bC00XCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS4kdChcImdlbmVyYWwuY3JlYXRlZFwiKSkpXSksX2MoJ2RkJyx7c3RhdGljQ2xhc3M6XCJjb2wteGwtOFwifSxbX3ZtLl92KF92bS5fcyhfdm0uZm9ybWF0RGF0ZVRpbWUoX3ZtLmludm9pY2UuY3JlYXRlZF9hdCkpKV0pLF9jKCdkdCcse3N0YXRpY0NsYXNzOlwiY29sLXhsLTRcIn0sW192bS5fdihfdm0uX3MoX3ZtLiR0KFwiZ2VuZXJhbC5jcmVhdGVkX2J5XCIpKSldKSxfYygnZGQnLHtzdGF0aWNDbGFzczpcImNvbC14bC04XCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS5pbnZvaWNlLnVzZXIubmFtZSkrXCIgLyBcIitfdm0uX3MoX3ZtLmludm9pY2UuY2FzaGllci5pbml0aWFscykpXSksX2MoJ2R0Jyx7c3RhdGljQ2xhc3M6XCJjb2wteGwtNFwifSxbX3ZtLl92KF92bS5fcyhfdm0uJHQoXCJ0eXBlcy5yZWdpc3RlclwiKSkpXSksX2MoJ2RkJyx7c3RhdGljQ2xhc3M6XCJjb2wteGwtOFwifSxbX3ZtLl92KF92bS5fcyhfdm0uaW52b2ljZS5yZWdpc3Rlci5uYW1lKStcIiAoI1wiK192bS5fcyhfdm0uaW52b2ljZS5yZWdpc3Rlci5pZGVudGlmaWVyKStcIilcIildKSxfYygnZHQnLHtzdGF0aWNDbGFzczpcImNvbC14bC00XCJ9LFtfdm0uX3YoX3ZtLl9zKF92bS4kdChcImdlbmVyYWwudG90YWxcIikpKV0pLF9jKCdkZCcse3N0YXRpY0NsYXNzOlwiY29sLXhsLThcIn0sW192bS5fdihfdm0uX3MoX3ZtLmZvcm1hdFByaWNlKF92bS5pbnZvaWNlLnRvdGFsKSkpXSldLDIpXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY2FyZCBtdC0yXCJ9LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjYXJkLWhlYWRlclwifSxbX3ZtLl92KFwiIFwiK192bS5fcyhfdm0uJHQoXCJhZG1pbi5pbnZvaWNlcy5zZW5kX2ludm9pY2VcIikpK1wiIFwiKV0pLF9jKCdkbCcse3N0YXRpY0NsYXNzOlwicm93IG1iLTAgY2FyZC1ib2R5XCJ9LFtfYygnZHQnLHtzdGF0aWNDbGFzczpcImNvbC14bC01IGNvbC1sZy0xMiBjb2wtbWQtNVwifSxbX3ZtLl92KFwiIFwiK192bS5fcyhfdm0uJHQoXCJnZW5lcmFsLnJlY2VpdmVyXCIpKStcIiBcIildKSxfYygnZGQnLHtzdGF0aWNDbGFzczpcImNvbC14bC03IGNvbC1sZy0xMiBjb2wtbWQtN1wifSxbX2MoJ2lucHV0Jyx7ZGlyZWN0aXZlczpbe25hbWU6XCJtb2RlbFwiLHJhd05hbWU6XCJ2LW1vZGVsXCIsdmFsdWU6KF92bS5lbWFpbCksZXhwcmVzc2lvbjpcImVtYWlsXCJ9XSxzdGF0aWNDbGFzczpcImZvcm0tY29udHJvbFwiLGF0dHJzOntcInR5cGVcIjpcImVtYWlsXCIsXCJwbGFjZWhvbGRlclwiOl92bS4kdCgnYWRtaW4uaW52b2ljZXMuZW1haWxfcGxhY2Vob2xkZXInKX0sZG9tUHJvcHM6e1widmFsdWVcIjooX3ZtLmVtYWlsKX0sb246e1wiaW5wdXRcIjpmdW5jdGlvbigkZXZlbnQpe2lmKCRldmVudC50YXJnZXQuY29tcG9zaW5nKXJldHVybjtfdm0uZW1haWw9JGV2ZW50LnRhcmdldC52YWx1ZX19fSldKSxfYygnZHQnLHtzdGF0aWNDbGFzczpcImNvbC14bC01IGNvbC1sZy0xMiBjb2wtbWQtNVwifSksX2MoJ2RkJyx7c3RhdGljQ2xhc3M6XCJjb2wteGwtNyBjb2wtbGctMTIgY29sLW1kLTdcIn0sW19jKCdidXR0b24nLHtzdGF0aWNDbGFzczpcImJ0biBidG4tcHJpbWFyeSBtdC0yXCIsYXR0cnM6e1widHlwZVwiOlwiYnV0dG9uXCIsXCJkaXNhYmxlZFwiOl92bS5pc1Byb2Nlc3NpbmdTZW5kRW1haWxSZXF1ZXN0fSxvbjp7XCJjbGlja1wiOl92bS5zZW5kRW1haWx9fSxbKCFfdm0uaXNQcm9jZXNzaW5nU2VuZEVtYWlsUmVxdWVzdCk/X2MoJ3NwYW4nLFtfdm0uX3YoX3ZtLl9zKF92bS4kdChcImFkbWluLmludm9pY2VzLnNlbmRfZW1haWxcIikpKV0pOl9jKCdzcGFuJyxbX2MoJ3NwYW4nLHtzdGF0aWNDbGFzczpcInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtXCIsYXR0cnM6e1wicm9sZVwiOlwic3RhdHVzXCIsXCJhcmlhLWhpZGRlblwiOlwidHJ1ZVwifX0pLF92bS5fdihcIiBcIitfdm0uX3MoX3ZtLiR0KFwiZ2VuZXJhbC5wcm9jZXNzaW5nXCIpKStcIiBcIildKV0pXSldKV0pLChfdm0uaW52b2ljZS5ldmVudHMubGVuZ3RoID4gMCk/X2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwibXQtMlwifSxbX2MoJ2g0JyxbX3ZtLl92KF92bS5fcyhfdm0uJHQoXCJhZG1pbi5pbnZvaWNlcy5zdGF0dXNfaGlzdG9yeVwiKSkpXSksX2MoJ2RsJyx7c3RhdGljQ2xhc3M6XCJyb3dcIn0sW192bS5fbCgoX3ZtLmludm9pY2UuZXZlbnRzKSxmdW5jdGlvbihldmVudCl7cmV0dXJuIFtfYygnZHQnLHtrZXk6ZXZlbnQudXVpZCArICdBJyxzdGF0aWNDbGFzczpcImNvbC14bC01IGNvbC1sZy0xMiBjb2wtbWQtNVwifSxbX3ZtLl92KFwiIFwiK192bS5fcyhfdm0uZm9ybWF0RGF0ZVRpbWUoZXZlbnQuY3JlYXRlZF9hdCkpK1wiIFwiKV0pLF9jKCdkZCcse2tleTpldmVudC51dWlkICsgJ0InLHN0YXRpY0NsYXNzOlwiY29sLXhsLTcgY29sLWxnLTEyIGNvbC1tZC03XCJ9LFtfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwiYmFkZ2VcIixjbGFzczpbJ2JnLScgKyBfdm0uZ2V0Qm9vdHN0cmFwQ29sb3VyTmFtZUZyb21TdGF0dXMoZXZlbnQubmV3X3N0YXR1cyldfSxbX3ZtLl92KFwiIFwiK192bS5fcyhfdm0uJHQoXCJhZG1pbi5pbnZvaWNlcy5zdGF0dXNlcy5cIiArIGV2ZW50Lm5ld19zdGF0dXMpKStcIiBcIildKSxfdm0uX3YoXCIgXCIrX3ZtLl9zKF92bS4kdChcImdlbmVyYWwuYnlcIikudG9Mb3dlckNhc2UoKSArIFwiIFwiICsgZXZlbnQudXNlci5uYW1lKStcIiBcIildKV19KSxfYygnZHQnKV0sMildKTpfdm0uX2UoKV0pLF9jKCdkaXYnLHtzdGF0aWNDbGFzczpcImNvbC1sZy02XCJ9LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjYXJkXCJ9LFtfYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjYXJkLWhlYWRlclwifSxbX3ZtLl92KFwiIFwiK192bS5fcyhfdm0uJHQoXCJnZW5lcmFsLnJlY2VpdmVyXCIpKStcIiBcIildKSxfYygnZGwnLHtzdGF0aWNDbGFzczpcInJvdyBtYi0wIGNhcmQtYm9keVwifSxbX2MoJ2R0Jyx7c3RhdGljQ2xhc3M6XCJjb2wtbWQtNVwiLGRvbVByb3BzOntcImlubmVySFRNTFwiOl92bS5fcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uJHQoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5pbnZvaWNlLmN1c3RvbWVyLnR5cGUgPT09ICdwcml2YXRlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyAnZ2VuZXJhbC5uYW1lJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnYWRtaW4uY3VzdG9tZXJzLmNvbnRhY3RfcGVyc29uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICkgKyBfdm0uZ2V0SW52b2ljZURhdGFEZXRhaWxUaXRsZUh0bWwoX3ZtLmludm9pY2UubmFtZSwgX3ZtLmludm9pY2UuY3VzdG9tZXIubmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICl9fSksX2MoJ2RkJyx7c3RhdGljQ2xhc3M6XCJjb2wtbWQtN1wifSxbX2MoJ3JvdXRlci1saW5rJyx7YXR0cnM6e1widG9cIjp7IG5hbWU6ICdDdXN0b21lcnMuZWRpdCcsIHBhcmFtczogeyB1dWlkOiBfdm0uaW52b2ljZS5jdXN0b21lci51dWlkIH0gfX19LFtfYygnYnV0dG9uJyx7c3RhdGljQ2xhc3M6XCJidG4gYnRuLXNtIGJ0bi1wcmltYXJ5XCIsYXR0cnM6e1widHlwZVwiOlwiYnV0dG9uXCJ9fSxbX2MoJ2knLHtzdGF0aWNDbGFzczpcImJpXCIsY2xhc3M6X3ZtLmdldEN1c3RvbWVyVHlwZUljb25DbGFzcyhfdm0uaW52b2ljZS5jdXN0b21lci50eXBlKX0pXSldKSxfdm0uX3YoXCIgXCIrX3ZtLl9zKF92bS5nZXRJbnZvaWNlRGF0YU
2RldGFpbFZhbHVlSHRtbChfdm0uaW52b2ljZS5uYW1lLCBfdm0uaW52b2ljZS5jdXN0b21lci5uYW1lKSkrXCIgXCIpXSwxKSwoX3ZtLmludm9pY2UuY3VzdG9tZXIuY29tcGFueV9uYW1lKT9bX2MoJ2R0Jyx7c3RhdGljQ2xhc3M6XCJjb2wtbWQtNVwiLGRvbVByb3BzOntcImlubmVySFRNTFwiOl92bS5fcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgX3ZtLmdldENvbXBhbnlOYW1lVHJhbnNsYXRpb25Gcm9tVHlwZShfdm0uaW52b2ljZS5jdXN0b21lci50eXBlKSArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5nZXRJbnZvaWNlRGF0YURldGFpbFRpdGxlSHRtbChfdm0uaW52b2ljZS5jb21wYW55X25hbWUsIF92bS5pbnZvaWNlLmN1c3RvbWVyLmNvbXBhbnlfbmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfX0pLF9jKCdkZCcse3N0YXRpY0NsYXNzOlwiY29sLW1kLTdcIixkb21Qcm9wczp7XCJpbm5lckhUTUxcIjpfdm0uX3MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5nZXRJbnZvaWNlRGF0YURldGFpbFZhbHVlSHRtbChfdm0uaW52b2ljZS5jb21wYW55X25hbWUsIF92bS5pbnZvaWNlLmN1c3RvbWVyLmNvbXBhbnlfbmFtZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfX0pXTpfdm0uX2UoKSxfdm0uX2woKFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ3Bvcy5pbnZvaWNlJywgJ2J1c2luZXNzX3JlZ2lzdHJhdGlvbl9pZCddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsncG9zLmludm9pY2UnLCAnZWFuJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWydhZGRyZXNzZXMnLCAnc3RyZWV0X25hbWUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2FkZHJlc3NlcycsICdob3VzZV9udW1iZXInXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2FkZHJlc3NlcycsICdmbG9vciddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnYWRkcmVzc2VzJywgJ2Rvb3InXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2FkZHJlc3NlcycsICdhZGRyZXNzX2xpbmVfMSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnYWRkcmVzc2VzJywgJ2FkZHJlc3NfbGluZV8yJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWydhZGRyZXNzZXMnLCAncG9zdGNvZGUnXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2FkZHJlc3NlcycsICdjaXR5J10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgWydhZGRyZXNzZXMnLCAnY291bnRyeSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgXSksZnVuY3Rpb24oW3RyYW5zbGF0aW9uUGF0aCwgZmllbGRdKXtyZXR1cm4gWyhfdm0uaW52b2ljZVtmaWVsZF0gfHwgX3ZtLmludm9pY2UuY3VzdG9tZXJbZmllbGRdKT9fYygnZHQnLHtrZXk6ZmllbGQgKyAnX0EnLHN0YXRpY0NsYXNzOlwiY29sLW1kLTVcIixkb21Qcm9wczp7XCJpbm5lckhUTUxcIjpfdm0uX3MoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS4kdCh0cmFuc2xhdGlvblBhdGggKyAnLicgKyBmaWVsZCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBfdm0uZ2V0SW52b2ljZURhdGFEZXRhaWxUaXRsZUh0bWwoX3ZtLmludm9pY2VbZmllbGRdLCBfdm0uaW52b2ljZS5jdXN0b21lcltmaWVsZF0pXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX19KTpfdm0uX2UoKSwoX3ZtLmludm9pY2VbZmllbGRdIHx8IF92bS5pbnZvaWNlLmN1c3RvbWVyW2ZpZWxkXSk/X2MoJ2RkJyx7a2V5OmZpZWxkICsgJ19CJyxzdGF0aWNDbGFzczpcImNvbC1tZC03XCIsZG9tUHJvcHM6e1wiaW5uZXJIVE1MXCI6X3ZtLl9zKF92bS5nZXRJbnZvaWNlRGF0YURldGFpbFZhbHVlSHRtbChfdm0uaW52b2ljZVtmaWVsZF0sIF92bS5pbnZvaWNlLmN1c3RvbWVyW2ZpZWxkXSkpfX0pOl92bS5fZSgpXX0pLF92bS5fbCgoW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250YWN0X3Bob25lX251bWJlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludm9pY2luZ19waG9uZV9udW1iZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250YWN0X2VtYWlsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52b2ljaW5nX2VtYWlsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0pLGZ1bmN0aW9uKGZpZWxkKXtyZXR1cm4gWyhfdm0uaW52b2ljZVtmaWVsZF0gfHwgX3ZtLmludm9pY2UuY3VzdG9tZXJbZmllbGRdKT9fYygnZHQnLHtrZXk6ZmllbGQgKyAnX0EnLHN0YXRpY0NsYXNzOlwiY29sLW1kLTVcIn0sWyhbJ2NvbnRhY3RfcGhvbmVfbnVtYmVyJywgJ2ludm9pY2luZ19waG9uZV9udW1iZXInXS5pbmNsdWRlcyhmaWVsZCkpP1tfYygnc3BhbicsW192bS5fdihfdm0uX3MoX3ZtLiR0KFwiZ2VuZXJhbC50ZWxlcGhvbmVcIikpKV0pLF92bS5fdihcIiB8IFwiKSxfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwic21hbGwgZnN0LWl0YWxpYyBmdy1ub3JtYWxcIn0sW192bS5fdihcIiBcIitfdm0uX3MoX3ZtLmdldE1ldGFUcmFuc2xhdGlvbkZyb21GaWVsZChmaWVsZCkpK1wiIFwiKV0pXTooWydjb250YWN0X2VtYWlsJywgJ2ludm9pY2luZ19lbWFpbCddLmluY2x1ZGVzKGZpZWxkKSk/W19jKCdzcGFuJyxbX3ZtLl92KF92bS5fcyhfdm0uJHQoXCJhZGRyZXNzZXMuZW1haWxcIikpKV0pLF92bS5fdihcIiB8IFwiKSxfYygnc3Bhbicse3N0YXRpY0NsYXNzOlwic21hbGwgZnN0LWl0YWxpYyBmdy1ub3JtYWxcIn0sW192bS5fdihcIiBcIitfdm0uX3MoX3ZtLmdldE1ldGFUcmFuc2xhdGlvbkZyb21GaWVsZChmaWVsZCkpK1wiIFwiKV0pXTpfdm0uX2UoKSxfYygnc3Bhbicse2RvbVByb3BzOntcImlubmVySFRNTFwiOl92bS5fcyhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF92bS5nZXRJbnZvaWNlRGF0YURldGFpbFRpdGxlSHRtbChfdm0uaW52b2ljZVtmaWVsZF0sIF92bS5pbnZvaWNlLmN1c3RvbWVyW2ZpZWxkXSwgdHJ1ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKX19KV0sMik6X3ZtLl9lKCksKF92bS5pbnZvaWNlW2ZpZWxkXSB8fCBfdm0uaW52b2ljZS5jdXN0b21lcltmaWVsZF0pP19jKCdkZCcse2tleTpmaWVsZCArICdfQicsc3RhdGljQ2xhc3M6XCJjb2wtbWQtN1wiLGRvbVByb3BzOntcImlubmVySFRNTFwiOl92bS5fcyhfdm0uZ2V0SW52b2ljZURhdGFEZXRhaWxWYWx1ZUh0bWwoX3ZtLmludm9pY2VbZmllbGRdLCBfdm0uaW52b2ljZS5jdXN0b21lcltmaWVsZF0pKX19KTpfdm0uX2UoKV19KV0sMiksKF92bS5pbnZvaWNlLmN1c3RvbWVyLmRlbGV0ZWRfYXQgPT09IG51bGwgJiYgX3ZtLmludm9pY2Uuc3RhdHVzID09PSAndW5wcm9jZXNzZWQnKT9fYygnZGl2Jyx7c3RhdGljQ2xhc3M6XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIn0sW19jKCdyb3V0ZXItbGluaycse2F0dHJzOntcInRvXCI6eyBuYW1lOiAnQ3VzdG9tZXJzLmVkaXQnLCBwYXJhbXM6IHsgdXVpZDogX3ZtLmludm9pY2UuY3VzdG9tZXIudXVpZCB9IH19fSxbX2MoJ2J1dHRvbicse3N0YXRpY0NsYXNzOlwiYnRuIGJ0bi1zbSBidG4tc3VjY2Vzc1wiLGF0dHJzOntcInR5cGVcIjpcImJ1dHRvblwifX0sW192bS5fdihcIiBcIitfdm0uX3MoX3ZtLiR0KFwiYWRtaW4uZWRpdF9yZXNvdXJjZVwiLCB7IHJlc291cmNlOiBfdm0uJHQoXCJ0eXBlcy5jdXN0b21lclwiKS50b0xvd2VyQ2FzZSgpIH0pKStcIiBcIildKV0pXSwxKTpfdm0uX2UoKV0pXSksX2MoJ2Rpdicse3N0YXRpY0NsYXNzOlwiY29sLTEyXCJ9LFtfYygnaDMnLFtfdm0uX3YoX3ZtLl9zKF92bS4kdChcInR5cGVzLmludm9pY2VfbGluZXNcIikpKV0pLF9jKCdvcmRlci1vci1pbnZvaWNlLWxpbmVzLXRhYmxlJyx7YXR0cnM6e1wibGluZXNcIjpfdm0uaW52b2ljZS5pbnZvaWNlX2xpbmVzfX0pLF9jKCdvcmRlci1vci1pbnZvaWNlLWRpc2NvdW50cy10YWJsZScse2F0dHJzOntcImRpc2NvdW50c1wiOl92bS5pbnZvaWNlLmludm9pY2VfZGlzY291bnRzfX0pXSwxKV0pXSwxKTpfdm0uX2UoKVxufVxudmFyIHN0YXRpY1JlbmRlckZucyA9IFtdXG5cbmV4cG9ydCB7
2IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0iLCI8dGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cInAtNFwiIHYtaWY9XCJpbnZvaWNlXCI+XG4gICAgICAgIDxwYWdlLWhlYWRlciA6dGV4dD1cIiR0KCd0eXBlcy5pbnZvaWNlJykgKyAnICMnICsgaW52b2ljZS5pbnZvaWNlX25vXCIgLz5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctM1wiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XG4gICAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiaW52b2ljZS5pbnRlZ3JhdGlvbiAmJiAhaW52b2ljZS5leHRlcm5hbF9pZGVudGlmaWVyXCIgY2xhc3M9XCJjYXJkIGJnLWluZm8gdGV4dC13aGl0ZSBtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJiaSBiaS1rZXktZmlsbCBtcy0xXCI+PC9pPiB7eyAkdChcImFkbWluLmludm9pY2VzLnRyYW5zZmVyXCIpIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIEBjbGljaz1cInRyYW5zZmVySW52b2ljZVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgOmRpc2FibGVkPVwiaXNQcm9jZXNzaW5nVHJhbnNmZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImJpIGJpLWtleS1maWxsIG1zLTFcIj48L2k+IHt7ICR0KFwiYWRtaW4uaW52b2ljZXMudHJhbnNmZXJfdG9cIikgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBpbnZvaWNlLmludGVncmF0aW9uIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiaW52b2ljZS5leHRlcm5hbF9pZGVudGlmaWVyXCIgY2xhc3M9XCJjYXJkIGJnLWluZm8gdGV4dC13aGl0ZSBtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJHQoXCJhZG1pbi5pbnZvaWNlcy50cmFuc2ZlcnJlZFwiKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCIgOnRpdGxlPVwiaW52b2ljZS5leHRlcm5hbF9pZGVudGlmaWVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAkdChcImFkbWluLmludm9pY2VzLnRyYW5zZmVycmVkX3RvXCIpIH19IHt7IGludm9pY2UuaW50ZWdyYXRpb24gfX08YnIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gQGNsaWNrPVwidHJhbnNmZXJJbnZvaWNlXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIiA6ZGlzYWJsZWQ9XCJpc1Byb2Nlc3NpbmdUcmFuc2ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmkgYmkta2V5LWZpbGwgbXMtMVwiPjwvaT4ge3sgJHQoXCJhZG1pbi5pbnZvaWNlcy50cmFuc2Zlcl90b1wiKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGludm9pY2UuaW50ZWdyYXRpb24gfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJpbnZvaWNlLm5vdGVcIiBjbGFzcz1cImNhcmQgYmctd2FybmluZyB0ZXh0LXdoaXRlIG1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAkdChcImdlbmVyYWwubm90ZVwiKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBpbnZvaWNlLm5vdGUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiB2LWlmPVwiaW52b2ljZS5jdXN0b21lcl9ub3RlXCIgY2xhc3M9XCJjYXJkIGJnLXByaW
21hcnkgdGV4dC13aGl0ZSBtYi0zXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgJHQoXCJnZW5lcmFsLmN1c3RvbWVyX25vdGVcIikgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaW52b2ljZS5jdXN0b21lcl9ub3RlIH19XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsYXQtY2FyZFwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGwgY2xhc3M9XCJyb3cgbWItMCBwLTAgY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHQgY2xhc3M9XCJjb2wteGwtNFwiPnt7ICR0KFwidHlwZXMub3JkZXJcIikgfX08L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRkIGNsYXNzPVwiY29sLXhsLThcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cm91dGVyLWxpbmsgOnRvPVwieyBuYW1lOiAnT3JkZXInLCBwYXJhbXM6IHsgdXVpZDogaW52b2ljZS5vcmRlcj8udXVpZCB9IH1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgaW52b2ljZS5vcmRlcj8uZnVsbF9pbnZvaWNlX251bWJlciB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcm91dGVyLWxpbms+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRlbXBsYXRlIHYtaWY9XCJpbnZvaWNlLm9yZGVyPy5leHRlcm5hbF9vcmRlciAhPT0gbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID4oe3sgaW52b2ljZS5vcmRlcj8uZXh0ZXJuYWxfb3JkZXIuc291cmNlIH19ICN7e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52b2ljZS5vcmRlcj8uZXh0ZXJuYWxfb3JkZXIuaWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0pPC90ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkdCBjbGFzcz1cImNvbC14bC00XCI+e3sgJHQoXCJnZW5lcmFsLnN0YXR1c1wiKSB9fTwvZHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGQgY2xhc3M9XCJjb2wteGwtOCBweS0wXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZVwiIDpjbGFzcz1cIlsnYmctJyArIGdldEJvb3RzdHJhcENvbG91ck5hbWVGcm9tU3RhdHVzKGludm9pY2Uuc3RhdHVzKV1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJHQoXCJhZG1pbi5pbnZvaWNlcy5zdGF0dXNlcy5cIiArIGludm9pY2Uuc3RhdHVzKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwibGFzdFByb2Nlc3NlZEV2ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0IGNsYXNzPVwiY29sLXhsLTRcIj57eyAkdChcImFkbWluLmludm9pY2VzLm1hcmtlZF9wcm9jZXNzZWRcIikgfX08L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZCBjbGFzcz1cImNvbC14bC04XCI+e3sgZm9ybWF0RXZlbnREYXRhRm9yQ29yZURhdGEobGFzdFByb2Nlc3NlZEV2ZW50KSB9fTwvZGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1pZj1cImxhc3RQYWlkRXZlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHQgY2xhc3M9XCJjb2wteGwtNFwiPnt7ICR0KFwiYWRtaW4uaW52b2ljZXMubWFya2VkX3BhaWRcIikgfX08L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZCBjbGFzcz1cImNvbC14bC04XCI+e3sgZm9ybWF0RXZlbnREYXRhRm9yQ29yZURhdGEobGFzdFBhaWRFdmVudCkgfX08L2RkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC90ZW1wbGF0ZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGR0IGNsYXNzPVwiY29sLXhsLTRcIj57eyAkdChcImdlbmVyYWwuY3JlYXRlZFwiKSB9fTwvZHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGQgY2xhc3M9XCJjb2wteGwtOFwiPnt7IGZvcm1hdERhdGVUaW1lKGludm9pY2UuY3JlYXRlZF9hdCkgfX08L2RkPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHQgY2xhc3M9XCJjb2wteGwtNFwiPnt7ICR0KFwiZ2VuZXJhbC5jcmVhdGVkX2J5XCIpIH19PC9kdD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkZCBjbGFzcz1cImNvbC14bC04XCI+e3sgaW52b2ljZS51c2VyLm5hbWUgfX0gLyB7eyBpbnZvaWNlLmNhc2hpZXIuaW5pdGlhbHMgfX08L2RkPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHQgY2xhc3M9XCJjb2wteGwtNFwiPnt7ICR0KFwidHlwZXMucmVnaXN0ZXJcIikgfX08L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRkIGNsYXNzPVwiY29sLXhsLThcIj57eyBpbnZvaWNlLnJlZ2lzdGVyLm5hbWUgfX0gKCN7eyBpbnZvaWNlLnJlZ2lzdGVyLmlkZW50aWZpZXIgfX0pPC9kZD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPGR0IGNsYXNzPVwiY29sLXhsLTRcIj57eyAkdChcImdlbmVyYWwudG90YWxcIikgfX08L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRkIGNsYXNzPVwiY29sLXhsLThcIj57eyBmb3JtYXRQcmljZShpbnZvaWNlLnRvdGFsKSB9fTwvZGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPGR0IGNsYXNzPVwiY29sLXhsLTRcIj57eyAkdCgnZ2VuZXJhbC52YXQnKSB9fTwvZHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGQgY2xhc3M9XCJjb2wteGwtOFwiPnt7IGZvcm1hdFByaWNlKGludm9pY2UudmF0KSB9fTwvZGQ+IC0tPlxuICAgICAgICAgICAgICAgICAgICA8L2RsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkIG10LTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAkdChcImFkbWluLmludm9pY2VzLnNlbmRfaW52b2ljZVwiKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRsIGNsYXNzPVwicm93IG1iLTAgY2FyZC1ib2R5XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHQgY2xhc3M9XCJjb2wteGwtNSBjb2wtbGctMTIgY29sLW1kLTVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAkdChcImdlbmVyYWwucmVjZWl2ZXJcIikgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGQgY2xhc3M9XCJjb2wteGwtNyBjb2wtbGctMTIgY29sLW1kLTdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LW1vZGVsPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6cGxhY2Vob2xkZXI9XCIkdCgnYWRtaW4uaW52b2ljZXMuZW1haWxfcGxhY2Vob2xkZXInKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZHQgY2xhc3M9XCJjb2wteGwtNSBjb2wtbGctMTIgY29sLW1kLTVcIj48L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRkIGNsYXNzPVwiY29sLXhsLTcgY29sLWxnLTEyIGNvbC1tZC03XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eX
2BlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgbXQtMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpkaXNhYmxlZD1cImlzUHJvY2Vzc2luZ1NlbmRFbWFpbFJlcXVlc3RcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2xpY2s9XCJzZW5kRW1haWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gdi1pZj1cIiFpc1Byb2Nlc3NpbmdTZW5kRW1haWxSZXF1ZXN0XCI+e3sgJHQoXCJhZG1pbi5pbnZvaWNlcy5zZW5kX2VtYWlsXCIpIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiB2LWVsc2U+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc21cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJHQoXCJnZW5lcmFsLnByb2Nlc3NpbmdcIikgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kZD5cbiAgICAgICAgICAgICAgICAgICAgPC9kbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IHYtaWY9XCJpbnZvaWNlLmV2ZW50cy5sZW5ndGggPiAwXCIgY2xhc3M9XCJtdC0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDxoND57eyAkdChcImFkbWluLmludm9pY2VzLnN0YXR1c19oaXN0b3J5XCIpIH19PC9oND5cblxuICAgICAgICAgICAgICAgICAgICA8ZGwgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWZvcj1cImV2ZW50IGluIGludm9pY2UuZXZlbnRzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0IGNsYXNzPVwiY29sLXhsLTUgY29sLWxnLTEyIGNvbC1tZC01XCIgOmtleT1cImV2ZW50LnV1aWQgKyAnQSdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZm9ybWF0RGF0ZVRpbWUoZXZlbnQuY3JlYXRlZF9hdCkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2R0PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkIGNsYXNzPVwiY29sLXhsLTcgY29sLWxnLTEyIGNvbC1tZC03XCIgOmtleT1cImV2ZW50LnV1aWQgKyAnQidcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmNsYXNzPVwiWydiZy0nICsgZ2V0Qm9vdHN0cmFwQ29sb3VyTmFtZUZyb21TdGF0dXMoZXZlbnQubmV3X3N0YXR1cyldXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJHQoXCJhZG1pbi5pbnZvaWNlcy5zdGF0dXNlcy5cIiArIGV2ZW50Lm5ld19zdGF0dXMpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgJHQoXCJnZW5lcmFsLmJ5XCIpLnRvTG93ZXJDYXNlKCkgKyBcIiBcIiArIGV2ZW50LnVzZXIubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR0PjwvZHQ+XG4gICAgICAgICAgICAgICAgICAgIDwvZGw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7eyAkdChcImdlbmVyYWwucmVjZWl2ZXJcIikgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkbCBjbGFzcz1cInJvdyBtYi0wIGNhcmQtYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGR0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1odG1sPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICR0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW52b2ljZS5jdXN0b21lci50eXBlID09PSAncHJpdmF0ZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdnZW5lcmFsLm5hbWUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAnYWRtaW4uY3VzdG9tZXJzLmNvbnRhY3RfcGVyc29uJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApICsgZ2V0SW52b2ljZURhdGFEZXRhaWxUaXRsZUh0bWwoaW52b2ljZS5uYW1lLCBpbnZvaWNlLmN1c3RvbWVyLm5hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgICAgICAgID48L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRkIGNsYXNzPVwiY29sLW1kLTdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cm91dGVyLWxpbmsgOnRvPVwieyBuYW1lOiAnQ3VzdG9tZXJzLmVkaXQnLCBwYXJhbXM6IHsgdXVpZDogaW52b2ljZS5jdXN0b21lci51dWlkIH0gfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImJ0biBidG4tc20gYnRuLXByaW1hcnlcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiYmlcIiA6Y2xhc3M9XCJnZXRDdXN0b21lclR5cGVJY29uQ2xhc3MoaW52b2ljZS5jdXN0b21lci50eXBlKVwiPjwvaT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9yb3V0ZXItbGluaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRJbnZvaWNlRGF0YU
2RldGFpbFZhbHVlSHRtbChpbnZvaWNlLm5hbWUsIGludm9pY2UuY3VzdG9tZXIubmFtZSkgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGQ+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiaW52b2ljZS5jdXN0b21lci5jb21wYW55X25hbWVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZHRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtNVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtaHRtbD1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0Q29tcGFueU5hbWVUcmFuc2xhdGlvbkZyb21UeXBlKGludm9pY2UuY3VzdG9tZXIudHlwZSkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SW52b2ljZURhdGFEZXRhaWxUaXRsZUh0bWwoaW52b2ljZS5jb21wYW55X25hbWUsIGludm9pY2UuY3VzdG9tZXIuY29tcGFueV9uYW1lKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L2R0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1tZC03XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1odG1sPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJbnZvaWNlRGF0YURldGFpbFZhbHVlSHRtbChpbnZvaWNlLmNvbXBhbnlfbmFtZSwgaW52b2ljZS5jdXN0b21lci5jb21wYW55X25hbWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWZvcj1cIlt0cmFuc2xhdGlvblBhdGgsIGZpZWxkXSBpbiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsncG9zLmludm9pY2UnLCAnYnVzaW5lc3NfcmVnaXN0cmF0aW9uX2lkJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsncG9zLmludm9pY2UnLCAnZWFuJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnYWRkcmVzc2VzJywgJ3N0cmVldF9uYW1lJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnYWRkcmVzc2VzJywgJ2hvdXNlX251bWJlciddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2FkZHJlc3NlcycsICdmbG9vciddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbJ2FkZHJlc3NlcycsICdkb29yJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnYWRkcmVzc2VzJywgJ2FkZHJlc3NfbGluZV8xJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnYWRkcmVzc2VzJywgJ2FkZHJlc3NfbGluZV8yJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnYWRkcmVzc2VzJywgJ3Bvc3Rjb2RlJ10sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnYWRkcmVzc2VzJywgJ2NpdHknXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWydhZGRyZXNzZXMnLCAnY291bnRyeSddLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWlmPVwiaW52b2ljZVtmaWVsZF0gfHwgaW52b2ljZS5jdXN0b21lcltmaWVsZF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNvbC1tZC01XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1odG1sPVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAkdCh0cmFuc2xhdGlvblBhdGggKyAnLicgKyBmaWVsZCkgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2V0SW52b2ljZURhdGFEZXRhaWxUaXRsZUh0bWwoaW52b2ljZVtmaWVsZF0sIGludm9pY2UuY3VzdG9tZXJbZmllbGRdKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6a2V5PVwiZmllbGQgKyAnX0EnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdi1pZj1cImludm9pY2VbZmllbGRdIHx8IGludm9pY2UuY3VzdG9tZXJbZmllbGRdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbWQtN1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtaHRtbD1cImdldEludm9pY2VEYXRhRGV0YWlsVmFsdWVIdG1sKGludm9pY2VbZmllbGRdLCBpbnZvaWNlLmN1c3RvbWVyW2ZpZWxkXSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6a2V5PVwiZmllbGQgKyAnX0InXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC9kZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtZm9yPVwiZmllbGQgaW4gW1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udGFjdF9waG9uZV9udW1iZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnaW52b2ljaW5nX3Bob25lX251bWJlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb250YWN0X2VtYWlsJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2ludm9pY2luZ19lbWFpbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGR0IHYtaWY9XCJpbnZvaWNlW2ZpZWxkXSB8fCBpbnZvaWNlLmN1c3RvbWVyW2ZpZWxkXVwiIGNsYXNzPVwiY29sLW1kLTVcIiA6a2V5PVwiZmllbGQgKyAnX0EnXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0ZW1wbGF0ZSB2LWlmPVwiWydjb250YWN0X3Bob25lX251bWJlcicsICdpbnZvaWNpbmdfcGhvbmVfbnVtYmVyJ10uaW5jbHVkZXMoZmllbGQpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57eyAkdChcImdlbmVyYWwudGVsZXBob25lXCIpIH19PC9zcGFuPiB8XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNtYWxsIGZzdC1pdGFsaWMgZnctbm9ybWFsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgZ2V0TWV0YVRyYW5zbGF0aW9uRnJvbUZpZWxkKGZpZWxkKSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGVtcGxhdGUgdi1lbHNlLWlmPVwiWydjb250YWN0X2VtYWlsJywgJ2ludm9pY2luZ19lbWFpbCddLmluY2x1ZGVzKGZpZWxkKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3sgJHQoXCJhZGRyZXNzZXMuZW1haWxcIikgfX08L3NwYW4+IHxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic21hbGwgZnN0LWl0YWxpYyBmdy1ub3JtYWxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBnZXRNZXRhVHJhbnNsYXRpb25Gcm9tRmllbGQoZmllbGQpIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWh0bWw9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZXRJbnZvaWNlRGF0YU
2RldGFpbFRpdGxlSHRtbChpbnZvaWNlW2ZpZWxkXSwgaW52b2ljZS5jdXN0b21lcltmaWVsZF0sIHRydWUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCJpbnZvaWNlW2ZpZWxkXSB8fCBpbnZvaWNlLmN1c3RvbWVyW2ZpZWxkXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY29sLW1kLTdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2LWh0bWw9XCJnZXRJbnZvaWNlRGF0YURldGFpbFZhbHVlSHRtbChpbnZvaWNlW2ZpZWxkXSwgaW52b2ljZS5jdXN0b21lcltmaWVsZF0pXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOmtleT1cImZpZWxkICsgJ19CJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPjwvZGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3RlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgICA8L2RsPlxuXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIHYtaWY9XCJpbnZvaWNlLmN1c3RvbWVyLmRlbGV0ZWRfYXQgPT09IG51bGwgJiYgaW52b2ljZS5zdGF0dXMgPT09ICd1bnByb2Nlc3NlZCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cm91dGVyLWxpbmsgOnRvPVwieyBuYW1lOiAnQ3VzdG9tZXJzLmVkaXQnLCBwYXJhbXM6IHsgdXVpZDogaW52b2ljZS5jdXN0b21lci51dWlkIH0gfVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1zbSBidG4tc3VjY2Vzc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyAkdChcImFkbWluLmVkaXRfcmVzb3VyY2VcIiwgeyByZXNvdXJjZTogJHQoXCJ0eXBlcy5jdXN0b21lclwiKS50b0xvd2VyQ2FzZSgpIH0pIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3JvdXRlci1saW5rPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgICAgICAgICAgPGgzPnt7ICR0KFwidHlwZXMuaW52b2ljZV9saW5lc1wiKSB9fTwvaDM+XG5cbiAgICAgICAgICAgICAgICA8b3JkZXItb3ItaW52b2ljZS1saW5lcy10YWJsZSA6bGluZXM9XCJpbnZvaWNlLmludm9pY2VfbGluZXNcIiAvPlxuXG4gICAgICAgICAgICAgICAgPG9yZGVyLW9yLWludm9pY2UtZGlzY291bnRzLXRhYmxlIDpkaXNjb3VudHM9XCJpbnZvaWNlLmludm9pY2VfZGlzY291bnRzXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvdGVtcGxhdGU+XG5cbjxzY3JpcHQ+XG5pbXBvcnQgZm9ybWF0dGVyIGZyb20gXCJAL21peGlucy9Gb3JtYXR0ZXIuanNcIlxuaW1wb3J0IFBhZ2VIZWFkZXIgZnJvbSBcIkAvY29tcG9uZW50cy9hZG1pbi9taW5vci9QYWdlSGVhZGVyLnZ1ZVwiXG5pbXBvcnQgT3JkZXJPckludm9pY2VMaW5lc1RhYmxlIGZyb20gXCJAL2NvbXBvbmVudHMvYWRtaW4vT3JkZXJPckludm9pY2VMaW5lc1RhYmxlLnZ1ZVwiXG5pbXBvcnQgT3JkZXJPckludm9pY2VEaXNjb3VudHNUYWJsZSBmcm9tIFwiQC9jb21wb25lbnRzL2FkbWluL09yZGVyT3JJbnZvaWNlRGlzY291bnRzVGFibGUudnVlXCJcbmltcG9ydCBpbnZvaWNlSGVscGVycyBmcm9tIFwiQC9taXhpbnMvSW52b2ljZUhlbHBlcnMuanNcIlxuXG5leHBvcnQgZGVmYXVsdCB7XG4gICAgbmFtZTogXCJJbnZvaWNlXCIsXG5cbiAgICBtaXhpbnM6IFtmb3JtYXR0ZXIsIGludm9pY2VIZWxwZXJzXSxcbiAgICBjb21wb25lbnRzOiB7XG4gICAgICAgIFBhZ2VIZWFkZXIsXG4gICAgICAgIE9yZGVyT3JJbnZvaWNlTGluZXNUYWJsZSxcbiAgICAgICAgT3JkZXJPckludm9pY2VEaXNjb3VudHNUYWJsZSxcbiAgICB9LFxuXG4gICAgZGF0YSgpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGludm9pY2U6IGZhbHNlLFxuICAgICAgICAgICAgZW1haWw6IFwiXCIsXG4gICAgICAgICAgICBpc1Byb2Nlc3NpbmdTZW5kRW1haWxSZXF1ZXN0OiBmYWxzZSxcbiAgICAgICAgICAgIGlzUHJvY2Vzc2luZ1RyYW5zZmVyOiBmYWxzZSxcbiAgICAgICAgfVxuICAgIH0sXG5cbiAgICBjb21wdXRlZDoge1xuICAgICAgICBsYXN0UHJvY2Vzc2VkRXZlbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pbnZvaWNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW52b2ljZS5ldmVudHMuZmluZExhc3QoKGV2ZW50KSA9PiBldmVudC5uZXdfc3RhdHVzID09PSBcInByb2Nlc3NlZFwiKVxuICAgICAgICB9LFxuXG4gICAgICAgIGxhc3RQYWlkRXZlbnQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5pbnZvaWNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW52b2ljZS5ldmVudHMuZmluZExhc3QoKGV2ZW50KSA9PiBldmVudC5uZXdfc3RhdHVzID09PSBcInBhaWRcIilcbiAgICAgICAgfSxcblxuICAgICAgICBtb3JlU3RhdHVzQ2hhbmdlc1RoYW5FeHBlY3RlZDogZnVuY3Rpb24gKCkge1xuICAgICAgICAgICAgY29uc3QgdW5wcm9jZXNzZWRFdmVudHMgPSB0aGlzLmludm9pY2UuZXZlbnRzLmZpbHRlcigoZXZlbnQpID0+IGV2ZW50Lm5ld19zdGF0dXMgPT09IFwidW5wcm9jZXNzZWRcIilcbiAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZEV2ZW50cyA9IHRoaXMuaW52b2ljZS5ldmVudHMuZmlsdGVyKChldmVudCkgPT4gZXZlbnQubmV3X3N0YXR1cyA9PT0gXCJwcm9jZXNzZWRcIilcbiAgICAgICAgICAgIC8vIFdlIGRvbid0IG5lZWQgdG8gY2hhY2sgZm9yIGV4dHJhICdwYWlkJyBldmVudHMsIHNpbmNlIHRoZXJlIGNhbiBvbmx5IGJlIHR3byBvZiB0aGVzZSBpZiB0aGVyZSBhcmUgdHdvXG4gICAgICAgICAgICAvLyAncHJvY2Vzc2VkJyBldmVudHNcblxuICAgICAgICAgICAgLy8gU2luY2UgYW4gaW52b2ljZSBzdGFydHMgb3V0IGFzICd1bnByb2Nlc3NlZCcgKGZvciB3aGljaCB0aGVyZSBpcyBubyBldmVudCwgc2luY2Ugbm8gb25lIGFjdHVhdGVkIHRoaXNcbiAgICAgICAgICAgIC8vIHN0YXR1cyksIGluIHRoZSBub3JtYWwgc2NlbmFyaW8sIGEgJ3BhaWQnIGludm9pY2UgaGFzIHplcm8gJ3VucHJvY2Vzc2VkJyBldmVudHMgYW5kIG9uZSAncHJvY2Vzc2VkJyBldmVudC5cblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaW52b2ljZSAmJiAodW5wcm9jZXNzZWRFdmVudHMubGVuZ3RoID4gMCB8fCBwcm9jZXNzZWRFdmVudHMubGVuZ3RoID4gMSlcbiAgICAgICAgfSxcbiAgICB9LFxuXG4gICAgbWV0aG9kczoge1xuICAgICAgICBhc3luYyB0cmFuc2Zlckludm9pY2UoKSB7XG4gICAgICAgICAgICBjb25zdCB1dWlkID0gdGh
2pcy5pbnZvaWNlLnV1aWRcbiAgICAgICAgICAgIGlmICh0aGlzLmlzUHJvY2Vzc2luZ1RyYW5zZmVyKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmlzUHJvY2Vzc2luZ1RyYW5zZmVyID0gdXVpZFxuXG4gICAgICAgICAgICBheGlvc1xuICAgICAgICAgICAgICAgIC5wb3N0KGBpbnZvaWNlcy8ke3V1aWR9L3RyYW5zZmVyYClcbiAgICAgICAgICAgICAgICAudGhlbigocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGludm9pY2UgPSByZXNwb25zZS5kYXRhLmRhdGFcbiAgICAgICAgICAgICAgICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KFwiaW5mb05vdGlmeVwiLCB0aGlzLiR0KFwiYWRtaW4uaW52b2ljZXMudHJhbnNmZXJyZWRfc3VjY2Vzc2Z1bGx5XCIpKVxuICAgICAgICAgICAgICAgICAgICB0aGlzLiRyb3V0ZXIucHVzaCh7IG5hbWU6IFwiSW52b2ljZXNcIiB9KVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXJyb3IucmVzcG9uc2U/LmRhdGE/Lm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBcImRhbmdlck5vdGlmeVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVycm9yLnJlc3BvbnNlLmRhdGEuZXJyb3JzPy5pbnRlZ3JhdGlvbj8uWzBdIHx8IGVycm9yLnJlc3BvbnNlLmRhdGEubWVzc2FnZVxuICAgICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuZmluYWxseSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nVHJhbnNmZXIgPSBmYWxzZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgIH0sXG4gICAgICAgIGFzeW5jIGZldGNoSW52b2ljZSgpIHtcbiAgICAgICAgICAgIHJldHVybiBheGlvcy5nZXQoXCJpbnZvaWNlcy9cIiArIHRoaXMuJHJvdXRlLnBhcmFtcy51dWlkKS50aGVuKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaW52b2ljZSA9IHJlc3BvbnNlLmRhdGEuZGF0YVxuICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgLy8gVE9ETzogRXJyb3IgaGFuZGxpbmdcbiAgICAgICAgfSxcbiAgICAgICAgYXN5bmMgc2VuZEVtYWlsKCkge1xuICAgICAgICAgICAgY29uc3QgdXVpZCA9IHRoaXMuaW52b2ljZS51dWlkXG5cbiAgICAgICAgICAgIHRoaXMuaXNQcm9jZXNzaW5nU2VuZEVtYWlsUmVxdWVzdCA9IHV1aWRcblxuICAgICAgICAgICAgY29uc3QgcGFyYW1zID0ge1xuICAgICAgICAgICAgICAgIGVtYWlsOiB0aGlzLmVtYWlsLFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBheGlvc1xuICAgICAgICAgICAgICAgIC5wb3N0KGBpbnZvaWNlcy8ke3V1aWR9L3NlbmQtZW1haWxgLCBwYXJhbXMpXG4gICAgICAgICAgICAgICAgLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBpbnZvaWNlID0gcmVzcG9uc2UuZGF0YS5kYXRhXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuJHN0b3JlLmNvbW1pdChcImluZm9Ob3RpZnlcIiwgdGhpcy4kdChcImFkbWluLmludm9pY2VzLmVtYWlsX3NlbnRcIikpXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChlcnJvci5yZXNwb25zZT8uZGF0YT8ubWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy4kc3RvcmUuY29tbWl0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiZGFuZ2VyTm90aWZ5XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3IucmVzcG9uc2UuZGF0YS5lcnJvcnMuZW1haWxbMF0gfHwgZXJyb3IucmVzcG9uc2UuZGF0YS5tZXNzYWdlXG4gICAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc1Byb2Nlc3NpbmdTZW5kRW1haWxSZXF1ZXN0ID0gZmFsc2VcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICB9LFxuICAgICAgICBnZXRJbnZvaWNlRGF0YURldGFpbFRpdGxlSHRtbChpbnZvaWNlVmFsdWUsIGN1c3RvbWVyVmFsdWUsIGZsb2F0UmlnaHQgPSBmYWxzZSkge1xuICAgICAgICAgICAgaWYgKGludm9pY2VWYWx1ZSAhPT0gY3VzdG9tZXJWYWx1ZSAmJiB0aGlzLmludm9pY2Uuc3RhdHVzID09PSBcInVucHJvY2Vzc2VkXCIpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB3ZSB2YWx1ZXMgZG8gbm90IG1hdGNoLCBhbmQgaWYgdGhlIGludm9pY2UgaGFzIG5vdCB5ZXQgYmVlbiBwcm9jZXNzZWQsIHdlIGRpc3BsYXkgYSBoZWxwZnVsIGljb25cblxuICAgICAgICAgICAgICAgIGlmIChmbG9hdFJpZ2h0KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAnIDxpIGNsYXNzPVwiYmkgYmktZXhjbGFtYXRpb24tZGlhbW9uZC1maWxsIHRleHQtZGFuZ2VyIGZsb2F0LWVuZFwiPjwvaT4nXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcgPGkgY2xhc3M9XCJiaSBiaS1leGNsYW1hdGlvbi1kaWFtb25kLWZpbGwgdGV4dC1kYW5nZXJcIj48L2k+J1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIFwiXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBnZXRJbnZvaWNlRGF0YURldGFpbFZhbHVlSHRtbChpbnZvaWNlVmFsdWUsIGN1c3RvbWVyVmFsdWUpIHtcbiAgICAgICAgICAgIGlmIChpbnZvaWNlVmFsdWUgPT09IGN1c3RvbWVyVmFsdWUgfHwgW1wicHJvY2Vzc2VkXCIsIFwicGFpZFwiXS5pbmNsdWRlcyh0aGlzLmludm9pY2Uuc3RhdHVzKSkge1xuICAgICAgICAgICAgICAgIC8vIElmIHdlIHZhbHVlcyBhcmUgZXF1YWwsIG9yIGlmIHRoZSBpbnZvaWNlIGhhcyBhbHJlYWR5IGJlZW4gbWFya2VkIGFzIHByb2Nlc3NlZCwgd2UganVzdCBkaXNwbGF5IHRoZSB2YWx1ZVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGludm9pY2VWYWx1ZVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBjb25zdCBwcmludGVkSW52b2ljZVZhbHVlID0gaW52b2ljZVZhbHVlID09PSBudWxsID8gJzxpIGNsYXNzPVwidGV4dC1tdXRlZFwiPk4vQTwvaT4nIDogaW52b2ljZVZhbHVlXG5cbiAgICAgICAgICAgICAgICByZXR1cm4gYDxkZWw+JHtjdXN0b21lclZhbHVlfTwvZGVsPiAke3ByaW50ZWRJbnZvaWNlVmFsdWV9YFxuICAgICAgICAgICAgfVxuICAgICAgICB9LFxuXG4gICAgICAgIGdldE1ldGFUcmFuc2xhdGlvbkZyb21GaWVsZChmaWVsZCkge1xuICAgICAgICAgICAgc3dpdGNoIChmaWVsZCkge1xuICAgICAgICAgICAgICAgIGNhc2UgXCJjb250YWN0X3Bob25lX251bWJlclwiOlxuICAgICAgICAgICAgICAgIGNhc2UgXCJjb250YWN0X2VtYWlsXCI6XG4gICAgICAgICAgICAgICAgICAgI
2HJldHVybiB0aGlzLiR0KFwiYWRkcmVzc2VzLm1ldGEuY29udGFjdFwiKS50b0xvd2VyQ2FzZSgpXG4gICAgICAgICAgICAgICAgY2FzZSBcImludm9pY2luZ19waG9uZV9udW1iZXJcIjpcbiAgICAgICAgICAgICAgICBjYXNlIFwiaW52b2ljaW5nX2VtYWlsXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLiR0KFwiYWRkcmVzc2VzLm1ldGEuaW52b2ljaW5nXCIpLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcblxuICAgICAgICBmb3JtYXRFdmVudERhdGFGb3JDb3JlRGF0YShldmVudERhdGEpIHtcbiAgICAgICAgICAgIGNvbnN0IHRpbWVUZXh0ID0gdGhpcy5mb3JtYXREYXRlVGltZShldmVudERhdGEuY3JlYXRlZF9hdClcbiAgICAgICAgICAgIGNvbnN0IGJ5ID0gdGhpcy4kdChcImdlbmVyYWwuYnlcIikudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgY29uc3QgdXNlck5hbWUgPSBldmVudERhdGEudXNlci5uYW1lXG5cbiAgICAgICAgICAgIHJldHVybiBgJHt0aW1lVGV4dH0gJHtieX0gJHt1c2VyTmFtZX1gXG4gICAgICAgIH0sXG4gICAgfSxcblxuICAgIGNyZWF0ZWQoKSB7XG4gICAgICAgIHRoaXMuZmV0Y2hJbnZvaWNlKClcbiAgICB9LFxuXG4gICAgbW91bnRlZCgpIHt9LFxufVxuPC9zY3JpcHQ+XG4iLCJpbXBvcnQgbW9kIGZyb20gXCItIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy90aHJlYWQtbG9hZGVyL2Rpc3QvY2pzLmpzIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9iYWJlbC1sb2FkZXIvbGliL2luZGV4LmpzPz9jbG9uZWRSdWxlU2V0LTQwLnVzZVsxXSEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvaW5kZXguanM/P3Z1ZS1sb2FkZXItb3B0aW9ucyEuL0ludm9pY2UudnVlP3Z1ZSZ0eXBlPXNjcmlwdCZsYW5nPWpzXCI7IGV4cG9ydCBkZWZhdWx0IG1vZDsgZXhwb3J0ICogZnJvbSBcIi0hLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL3RocmVhZC1sb2FkZXIvZGlzdC9janMuanMhLi4vLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2JhYmVsLWxvYWRlci9saWIvaW5kZXguanM/P2Nsb25lZFJ1bGVTZXQtNDAudXNlWzFdIS4uLy4uLy4uLy4uL25vZGVfbW9kdWxlcy9AdnVlL3Z1ZS1sb2FkZXItdjE1L2xpYi9pbmRleC5qcz8/dnVlLWxvYWRlci1vcHRpb25zIS4vSW52b2ljZS52dWU/dnVlJnR5cGU9c2NyaXB0Jmxhbmc9anNcIiIsImltcG9ydCB7IHJlbmRlciwgc3RhdGljUmVuZGVyRm5zIH0gZnJvbSBcIi4vSW52b2ljZS52dWU/dnVlJnR5cGU9dGVtcGxhdGUmaWQ9MWE5MTgyMWNcIlxuaW1wb3J0IHNjcmlwdCBmcm9tIFwiLi9JbnZvaWNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiXG5leHBvcnQgKiBmcm9tIFwiLi9JbnZvaWNlLnZ1ZT92dWUmdHlwZT1zY3JpcHQmbGFuZz1qc1wiXG5cblxuLyogbm9ybWFsaXplIGNvbXBvbmVudCAqL1xuaW1wb3J0IG5vcm1hbGl6ZXIgZnJvbSBcIiEuLi8uLi8uLi8uLi9ub2RlX21vZHVsZXMvQHZ1ZS92dWUtbG9hZGVyLXYxNS9saWIvcnVudGltZS9jb21wb25lbnROb3JtYWxpemVyLmpzXCJcbnZhciBjb21wb25lbnQgPSBub3JtYWxpemVyKFxuICBzY3JpcHQsXG4gIHJlbmRlcixcbiAgc3RhdGljUmVuZGVyRm5zLFxuICBmYWxzZSxcbiAgbnVsbCxcbiAgbnVsbCxcbiAgbnVsbFxuICBcbilcblxuZXhwb3J0IGRlZmF1bHQgY29tcG9uZW50LmV4cG9ydHMiLCJleHBvcnQgZGVmYXVsdCB7XG4gICAgbWV0aG9kczoge1xuICAgICAgICBnZXRCb290c3RyYXBDb2xvdXJOYW1lRnJvbVN0YXR1cyhzdGF0dXMpIHtcbiAgICAgICAgICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSBcInVucHJvY2Vzc2VkXCI6XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBcIndhcm5pbmdcIlxuICAgICAgICAgICAgICAgIGNhc2UgXCJwcm9jZXNzZWRcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwiaW5mb1wiXG4gICAgICAgICAgICAgICAgY2FzZSBcInBhaWRcIjpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFwic3VjY2Vzc1wiXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgfSxcbn1cbiJdLCJuYW1lcyI6WyJyZW5kZXIiLCJfdm0iLCJ0aGlzIiwiX2MiLCJfc2VsZiIsImRpc2NvdW50cyIsImxlbmd0aCIsIl92IiwiX3MiLCIkdCIsInN0YXRpY0NsYXNzIiwiX2wiLCJkaXNjb3VudCIsImtleSIsInV1aWQiLCJkaXNjb3VudF90eXBlIiwibmFtZSIsInZhdF90eXBlIiwiZm9ybWF0UHJpY2UiLCJhbW91bnQiLCJfZSIsInN0YXRpY1JlbmRlckZucyIsIm1peGlucyIsImZvcm1hdHRlciIsInByb3BzIiwidHlwZSIsIkFycmF5IiwiZGVmYXVsdCIsImNvbXBvbmVudCIsImFkZHJlc3MiLCJTdHJpbmciLCJhdHRycyIsIk9iamVjdCIsIm9uIiwiJGV2ZW50IiwiJHJvdXRlciIsImdvIiwiQm9vbGVhbiIsInRleHQiLCJzaG93QmFja0J1dHRvbiIsIl90IiwiZXhwbGFuYXRpb25zIiwiY29tcG9uZW50cyIsIkJhY2tCdXR0b24iLCJpbnZvaWNlIiwiaW52b2ljZV9ubyIsImludGVncmF0aW9uIiwiZXh0ZXJuYWxfaWRlbnRpZmllciIsImlzUHJvY2Vzc2luZ1RyYW5zZmVyIiwidHJhbnNmZXJJbnZvaWNlIiwibm90ZSIsImN1c3RvbWVyX25vdGUiLCJwYXJhbXMiLCJvcmRlciIsImZ1bGxfaW52b2ljZV9udW1iZXIiLCJleHRlcm5hbF9vcmRlciIsInNvdXJjZSIsImlkIiwiY2xhc3MiLCJnZXRCb290c3RyYXBDb2xvdXJOYW1lRnJvbVN0YXR1cyIsInN0YXR1cyIsImxhc3RQcm9jZXNzZWRFdmVudCIsImZvcm1hdEV2ZW50RGF0YUZvckNvcmVEYXRhIiwibGFzdFBhaWRFdmVudCIsImZvcm1hdERhdGVUaW1lIiwiY3JlYXRlZF9hdCIsInVzZXIiLCJjYXNoaWVyIiwiaW5pdGlhbHMiLCJyZWdpc3RlciIsImlkZW50aWZpZXIiLCJ0b3RhbCIsImRpcmVjdGl2ZXMiLCJyYXdOYW1lIiwidmFsdWUiLCJlbWFpbCIsImV4cHJlc3Npb24iLCJkb21Qcm9wcyIsInRhcmdldCIsImNvbXBvc2luZyIsImlzUHJvY2Vzc2luZ1NlbmRFbWFpbFJlcXVlc3QiLCJzZW5kRW1haWwiLCJldmVudHMiLCJldmVudCIsIm5ld19zdGF0dXMiLCJ0b0xvd2VyQ2FzZSIsImN1c3RvbWVyIiwiZ2V0SW52b2ljZURhdGFEZXRhaWxUaXRsZUh0bWwiLCJ
2nZXRDdXN0b21lclR5cGVJY29uQ2xhc3MiLCJnZXRJbnZvaWNlRGF0YURldGFpbFZhbHVlSHRtbCIsImNvbXBhbnlfbmFtZSIsImdldENvbXBhbnlOYW1lVHJhbnNsYXRpb25Gcm9tVHlwZSIsInRyYW5zbGF0aW9uUGF0aCIsImZpZWxkIiwiaW5jbHVkZXMiLCJnZXRNZXRhVHJhbnNsYXRpb25Gcm9tRmllbGQiLCJkZWxldGVkX2F0IiwicmVzb3VyY2UiLCJpbnZvaWNlX2xpbmVzIiwiaW52b2ljZV9kaXNjb3VudHMiLCJpbnZvaWNlSGVscGVycyIsIlBhZ2VIZWFkZXIiLCJPcmRlck9ySW52b2ljZUxpbmVzVGFibGUiLCJPcmRlck9ySW52b2ljZURpc2NvdW50c1RhYmxlIiwiZGF0YSIsImNvbXB1dGVkIiwiZmluZExhc3QiLCJtb3JlU3RhdHVzQ2hhbmdlc1RoYW5FeHBlY3RlZCIsInVucHJvY2Vzc2VkRXZlbnRzIiwiZmlsdGVyIiwicHJvY2Vzc2VkRXZlbnRzIiwibWV0aG9kcyIsImF4aW9zIiwicG9zdCIsInRoZW4iLCJyZXNwb25zZSIsIiRzdG9yZSIsImNvbW1pdCIsInB1c2giLCJjYXRjaCIsImVycm9yIiwibWVzc2FnZSIsImVycm9ycyIsImZpbmFsbHkiLCJmZXRjaEludm9pY2UiLCJnZXQiLCIkcm91dGUiLCJpbnZvaWNlVmFsdWUiLCJjdXN0b21lclZhbHVlIiwiZmxvYXRSaWdodCIsInByaW50ZWRJbnZvaWNlVmFsdWUiLCJldmVudERhdGEiLCJ0aW1lVGV4dCIsImJ5IiwidXNlck5hbWUiLCJjcmVhdGVkIiwibW91bnRlZCJdLCJzb3VyY2VSb290IjoiIn0=

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.