UNPKG

coins-logon-widget

Version:

COINS Logon Widget. Injectable utility to manage browser authorization with COINS

380 lines (350 loc) 84.4 kB
@charset "UTF-8"; /** * Root. */ .coins-logon-widget { font-family: Trebuchet, "Lucida Sans Unicode", "Lucida Grande", "Lucida Sans", Arial, sans-serif; font-size: 14px; font-weight: normal; line-height: 1.5; text-align: left; /** Make children adhere to 'border-box' spacing */ } .coins-logon-widget *, .coins-logon-widget *:before, .coins-logon-widget *:after { box-sizing: border-box; } /* ========================================================================== Form Elements ========================================================================== */ /** * Form. * * The main `form` element. */ .coins-logon-widget-form { font-size: 100%; line-height: inherit; margin: 0; position: relative; } .coins-logon-widget-form:before, .coins-logon-widget-form:after { content: ' '; display: table; } .coins-logon-widget-form:after { clear: both; } /** * Form Group. * * These serve as a wrapper for `label`s and `input`s. Each should be wrapped * with this class. These are also the targets for stateful classes. */ .coins-logon-widget-form-group { margin-bottom: 1em; position: relative; } /** * Label. */ .coins-logon-widget-label { color: #264150; cursor: pointer; display: block; font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; margin: 0; padding: 0 0 .25em; text-align: inherit; } /** * Input. * * @todo Add hooks for more input types. */ input[type="email"].coins-logon-widget-input, input[type="password"].coins-logon-widget-input, input[type="text"].coins-logon-widget-input { background: #fff; border-color: #364c59; border-radius: 5px; border-style: solid; border-width: thin; box-shadow: none; color: #264150; display: block; font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; margin: 0; padding: 0.5em 1em; transition: box-shadow 100ms; width: 100%; /** Placeholder color */ } input[type="email"].coins-logon-widget-input:focus, input[type="email"].coins-logon-widget-input:hover, input[type="password"].coins-logon-widget-input:focus, input[type="password"].coins-logon-widget-input:hover, input[type="text"].coins-logon-widget-input:focus, input[type="text"].coins-logon-widget-input:hover { background: #fff; border-color: #364c59; color: #264150; } input[type="email"].coins-logon-widget-input:focus, input[type="password"].coins-logon-widget-input:focus, input[type="text"].coins-logon-widget-input:focus { box-shadow: 0 0 0 0.25em #a7b9c0; outline: none; } input[type="email"].coins-logon-widget-input::-webkit-input-placeholder, input[type="password"].coins-logon-widget-input::-webkit-input-placeholder, input[type="text"].coins-logon-widget-input::-webkit-input-placeholder { color: #718d99; } input[type="email"].coins-logon-widget-input::-moz-placeholder, input[type="password"].coins-logon-widget-input::-moz-placeholder, input[type="text"].coins-logon-widget-input::-moz-placeholder { color: #718d99; } input[type="email"].coins-logon-widget-input:-ms-input-placeholder, input[type="password"].coins-logon-widget-input:-ms-input-placeholder, input[type="text"].coins-logon-widget-input:-ms-input-placeholder { color: #718d99; } /** * Icons. * * These are used in conjunction with form states to provide an applicable icon * to a form group. */ .coins-logon-widget-icon { font-size: 150%; line-height: 1; padding: .333em 0; position: absolute; right: 0; text-align: center; top: 0; width: 1.5em; } .coins-logon-widget-icon:after { display: inline-block; } .coins-logon-widget-label:not(.coins-logon-widget-visuallyhidden) ~ .coins-logon-widget-icon { top: 1.125em; } /** * Input Message. * * Placed after the `input` inside the form group. Can be information relating * to the `input`, or can be a stateful message. */ .coins-logon-widget-input-message { display: block; font-size: 80%; line-height: 1.25; margin: .333em 0 0; padding-left: 1.25em; } /* ========================================================================== Buttons ========================================================================== */ /** * Button groups * * Wrapper for two or more buttons. */ .coins-logon-widget-button-group { margin-bottom: -0.5em; } .coins-logon-widget-button-group:before, .coins-logon-widget-button-group:after { content: ' '; display: table; } .coins-logon-widget-button-group:after { clear: both; } .coins-logon-widget-button-group .coins-logon-widget-button { float: left; margin-right: 0.5em; margin-bottom: 0.5em; } /** * Base button. * * Basic button styling, required by every button. A modifier class ('primary' * or 'secondary') is required for proper coloring. */ .coins-logon-widget-button { border: thin solid transparent; border-radius: 5px; cursor: pointer; display: inline-block; font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; padding: 0.5em 1em; text-decoration: none; transition-duration: 100ms; transition-property: background, box-shadow, color; } .coins-logon-widget-button:focus { box-shadow: 0 0 0 0.2em #a7b9c0; outline: none; } /** * Button color modifiers. */ .coins-logon-widget-button-primary { background: #364c59; color: #fff; } .coins-logon-widget-button-primary:focus, .coins-logon-widget-button-primary:hover, .coins-logon-widget-button-primary:active { background: #233139; color: #fff; } .coins-logon-widget-button-secondary { background: #718d99; color: #fff; } .coins-logon-widget-button-secondary:focus, .coins-logon-widget-button-secondary:hover, .coins-logon-widget-button-secondary:active { background: #5a737d; color: #fff; } /* ========================================================================== Notifications ========================================================================== */ .coins-logon-widget-notification { border-radius: 5px; color: #fff; margin-bottom: 1em; padding: 0.5em 1em; } .coins-logon-widget-notification a { font-weight: normal; letter-spacing: 0; text-decoration: underline; } .coins-logon-widget-notification a, .coins-logon-widget-notification a:link, .coins-logon-widget-notification a:visited, .coins-logon-widget-notification a:focus, .coins-logon-widget-notification a:hover, .coins-logon-widget-notification a:active { color: #fff; } .coins-logon-widget-notification a:focus, .coins-logon-widget-notification a:hover, .coins-logon-widget-notification a:active { opacity: .92; } .coins-logon-widget-notification-error { background: #ef5a21; } .coins-logon-widget-notification-success { background: #94b12a; } /* ========================================================================== Status ========================================================================== */ .coins-logon-widget-status { color: #264150; float: left; line-height: inherit; margin: 0; padding: 0.5em 1em 0 0; } /* ========================================================================== Indicator ========================================================================== */ /** * Animating loader indicator using SVG. * * @{@link http://codepen.io/jczimm/pen/vEBpoL} */ .coins-logon-widget-indicator { bottom: 0; display: inline-block; height: 40px; left: 0; opacity: 0; position: absolute; width: 40px; } .coins-logon-widget-indicator svg { animation: rotate 2500ms linear infinite; height: 40px; width: 40px; } .coins-logon-widget-indicator circle { animation: dash 2000ms ease-in-out infinite; stroke: #264150; stroke-dasharray: 1, 200; stroke-dashoffset: 0; stroke-linecap: round; } @keyframes rotate { 100% { transform: rotate(360deg); } } @keyframes dash { 0% { stroke-dasharray: 1, 200; stroke-dashoffset: 0; } 50% { stroke-dasharray: 89, 200; stroke-dashoffset: -35; } 100% { stroke-dasharray: 89, 200; stroke-dashoffset: -124; } } /* ========================================================================== Form States ========================================================================== */ .coins-logon-widget-form-group-error .coins-logon-widget-input, .coins-logon-widget-form-group-success .coins-logon-widget-input { padding-right: 2em; } .coins-logon-widget-form-group-error .coins-logon-widget-input { border-color: #ef5a21; } .coins-logon-widget-form-group-error .coins-logon-widget-icon { color: #ef5a21; } .coins-logon-widget-form-group-error .coins-logon-widget-icon:after { content: "✘"; } .coins-logon-widget-form-group-error .coins-logon-widget-input-message { color: #ef5a21; } .coins-logon-widget-form-group-success .coins-logon-widget-input { border-color: #94b12a; } .coins-logon-widget-form-group-success .coins-logon-widget-icon { color: #94b12a; } .coins-logon-widget-form-group-success .coins-logon-widget-icon:after { content: "✔"; } .coins-logon-widget-form-group-success .coins-logon-widget-input-message { color: #94b12a; } /** * Loading. * * Show the loading indicator. */ .coins-logon-widget-form-loading .coins-logon-widget-indicator { opacity: 1; } /* ========================================================================== Helper Classes ========================================================================== */ /** * Horizontal form. * * Apply to the root `form.coins-logon-widget-form` to make the form groups and * button display horizontally. */ .coins-logon-widget-form-horizontal { -ms-flex-align: start; align-items: flex-start; display: -ms-flexbox; display: flex; margin-right: -0.5em; margin-left: -0.5em; } .coins-logon-widget-form-horizontal .coins-logon-widget-form-group { -ms-flex-positive: 2; flex-grow: 2; margin-bottom: 0; padding-right: 0.5em; padding-left: 0.5em; } .coins-logon-widget-form-horizontal .coins-logon-widget-button { -ms-flex-positive: 1; flex-grow: 1; margin-left: 0.5em; } /** * Status form. * * Apply to the root `form.coins-logon-widget form` to add proper button styling * for a form that displays logon status. */ .coins-logon-widget-form-status .coins-logon-widget-button { float: left; } /** * Visually hidden. * * Hide content but make it accessible for screen readers. * http://a11yproject.com/posts/how-to-hide-content/ */ .coins-logon-widget-visuallyhidden { position: absolute !important; clip: rect(1px 1px 1px 1px); /* IE6, IE7 */ clip: rect(1px, 1px, 1px, 1px); padding: 0 !important; border: 0 !important; height: 1px !important; width: 1px !important; overflow: hidden; } /** * Align left. */ .coins-logon-widget-left { float: left; } /** * Align right. */ .coins-logon-widget-right { float: right; } /*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy50bXAvY29pbnMtbG9nb24td2lkZ2V0LmNzcyIsIi4uL3N0eWxlcy9jb2lucy1sb2dvbi13aWRnZXQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQkFBaUI7QUN1RGpCOztHQUVHO0FBQ0g7RUFDSSxpR0FoRGlHO0VBaURqRyxnQkFoRGU7RUFpRGYsb0JBaERtQjtFQWlEbkIsaUJBaERnQjtFQWlEaEIsaUJBQWlCO0VBRWpCLG1EQUFtRCxFQU10RDtFQWJEOzs7SUFXUSx1QkFBdUIsRUFDMUI7O0FBR0w7O2dGQUVnRjtBQUVoRjs7OztHQUlHO0FBQ0g7RUFHSSxnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLFVBQVU7RUFDVixtQkFBbUIsRUFDdEI7RUFQRDtJQW5DUSxhQUFhO0lBQ2IsZUFBZSxFQUNsQjtFQWlDTDtJQS9CUSxZQUFZLEVBQ2Y7O0FBdUNMOzs7OztHQUtHO0FBQ0g7RUFDSSxtQkFBbUI7RUFDbkIsbUJBQW1CLEVBQ3RCOztBQUVEOztHQUVHO0FBQ0g7RUFDSSxlQXZFYztFQXdFZCxnQkFBZ0I7RUFDaEIsZUFBZTtFQUNmLHFCQUFxQjtFQUNyQixnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixVQUFVO0VBQ1YsbUJBQW1CO0VBQ25CLG9CQUFvQixFQUN2Qjs7QUFFRDs7OztHQUlHO0FBQ0g7OztFQVFRLGlCQXBHa0I7RUFxR2xCLHNCQXBHaUI7RUFxR2pCLG1CQTNIYztFQTRIZCxvQkFBb0I7RUFDcEIsbUJBQW1CO0VBQ25CLGlCQUFpQjtFQUNqQixlQXhHZ0I7RUF5R2hCLGVBQWU7RUFDZixxQkFBcUI7RUFDckIsZ0JBQWdCO0VBQ2hCLHFCQUFxQjtFQUNyQixxQkFBcUI7RUFDckIsVUFBVTtFQUNWLG1CQWpJYztFQWtJZCw2QkFqSXNCO0VBa0l0QixZQUFZO0VBYVosd0JBQXdCLEVBWTNCO0VBaERMOzs7OztJQTJCWSxpQkF2SGM7SUF3SGQsc0JBdkhhO0lBd0hiLGVBdkhZLEVBd0hmO0VBOUJUOzs7SUFnQ1ksaUNBbElHO0lBbUlILGNBQWMsRUFDakI7RUFsQ1Q7OztJQXdDWSxlQWpJa0IsRUFrSXJCO0VBekNUOzs7SUEyQ1ksZUFwSWtCLEVBcUlyQjtFQTVDVDs7O0lBOENZLGVBdklrQixFQXdJckI7O0FBSVQ7Ozs7O0dBS0c7QUFDSDtFQUNJLGdCQUFlO0VBQ2YsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIsU0FBUztFQUNULG1CQUFtQjtFQUNuQixPQUFPO0VBQ1AsYUFBYSxFQVNoQjtFQWpCRDtJQVdRLHNCQUFzQixFQUN6QjtFQVpMO0lBZVEsYUFBVSxFQUNiOztBQUdMOzs7OztHQUtHO0FBQ0g7RUFDSSxlQUFlO0VBQ2YsZUFBZTtFQUNmLGtCQUFrQjtFQUNsQixtQkFBbUI7RUFDbkIscUJBQWlCLEVBQ3BCOztBQUVEOztnRkFFZ0Y7QUFFaEY7Ozs7R0FJRztBQUNIO0VBS0ksc0JBQWdCLEVBT25CO0VBWkQ7SUEvS1EsYUFBYTtJQUNiLGVBQWUsRUFDbEI7RUE2S0w7SUEzS1EsWUFBWSxFQUNmO0VBMEtMO0lBUVEsWUFBWTtJQUNaLG9CQUFpQjtJQUNqQixxQkFBa0IsRUFDckI7O0FBR0w7Ozs7O0dBS0c7QUFDSDtFQUNJLCtCQUErQjtFQUMvQixtQkExT2tCO0VBMk9sQixnQkFBZ0I7RUFDaEIsc0JBQXNCO0VBQ3RCLHFCQUFxQjtFQUNyQixnQkFBZ0I7RUFDaEIscUJBQXFCO0VBQ3JCLHFCQUFxQjtFQUNyQixtQkE1T2tCO0VBNk9sQixzQkFBc0I7RUFDdEIsMkJBN08wQjtFQThPMUIsbURBQW1ELEVBTXREO0VBbEJEO0lBZVEsZ0NBeE9PO0lBeU9QLGNBQWMsRUFDakI7O0FBR0w7O0dBRUc7QUFFQztFQUdJLG9CQW5QOEI7RUFvUDlCLFlBblBzQixFQTJQekI7RUFaRDtJQVNRLG9CQUFrQjtJQUNsQixZQXpQa0IsRUEwUHJCOztBQVhMO0VBR0ksb0JBalBnQztFQWtQaEMsWUFqUHdCLEVBeVAzQjtFQVpEO0lBU1Esb0JBQWtCO0lBQ2xCLFlBdlBvQixFQXdQdkI7O0FBSVQ7O2dGQUVnRjtBQUVoRjtFQUdJLG1CQXRSa0I7RUF1UmxCLFlBN1B3QjtFQThQeEIsbUJBQW1CO0VBQ25CLG1CQXBSa0IsRUF5U3JCO0VBM0JEO0lBU1Esb0JBelJlO0lBMFJmLGtCQUFrQjtJQUNsQiwyQkFBMkIsRUFlOUI7SUExQkw7TUFtQlksWUE1UWdCLEVBNlFuQjtJQXBCVDtNQXdCWSxhQUFhLEVBQ2hCOztBQUtMO0VBQ0ksb0JBOVJVLEVBK1JiOztBQUZEO0VBQ0ksb0JBdlJXLEVBd1JkOztBQUdMOztnRkFFZ0Y7QUFFaEY7RUFDSSxlQWxTYztFQW1TZCxZQUFZO0VBQ1oscUJBQXFCO0VBQ3JCLFVBQVU7RUFDVix1QkFBaUUsRUFDcEU7O0FBRUQ7O2dGQUVnRjtBQUVoRjs7OztHQUlHO0FBQ0g7RUFHSSxVQUFVO0VBQ1Ysc0JBQXNCO0VBQ3RCLGFBSlk7RUFLWixRQUFRO0VBQ1IsV0FBVztFQUNYLG1CQUFtQjtFQUNuQixZQVJZLEVBc0JmO0VBdkJEO0lBWVEseUNBQXlDO0lBQ3pDLGFBWlE7SUFhUixZQWJRLEVBY1g7RUFmTDtJQWlCUSw0Q0FBNEM7SUFDNUMsZ0JBcFVVO0lBcVVWLHlCQUF5QjtJQUN6QixxQkFBcUI7SUFDckIsc0JBQXNCLEVBQ3pCOztBQUdMO0VBQ0k7SUFDSSwwQkFBaUIsRUFBQSxFQUFBOztBQUd6QjtFQUNJO0lBQ0kseUJBQXlCO0lBQ3pCLHFCQUFxQixFQUFBO0VBRXpCO0lBQ0ksMEJBQTBCO0lBQzFCLHVCQUF1QixFQUFBO0VBRTNCO0lBQ0ksMEJBQTBCO0lBQzFCLHdCQUF3QixFQUFBLEVBQUE7O0FBSWhDOztnRkFFZ0Y7QUFHNUU7RUFDSSxtQkFBbUIsRUFDdEI7O0FBSUQ7RUFNUSxzQkFyWE0sRUFzWFQ7O0FBUEw7RUFTUSxlQXhYTSxFQTZYVDtFQWRMO0lBWVksYUFiaUIsRUFBSzs7QUFDbEM7RUFnQlEsZUEvWE0sRUFnWVQ7O0FBakJMO0VBTVEsc0JBOVdPLEVBK1dWOztBQVBMO0VBU1EsZUFqWE8sRUFzWFY7RUFkTDtJQVlZLGFBYmlDLEVBQUs7O0FBQ2xEO0VBZ0JRLGVBeFhPLEVBeVhWOztBQUlUOzs7O0dBSUc7QUFDSDtFQUVRLFdBQVcsRUFDZDs7QUFHTDs7Z0ZBRWdGO0FBRWhGOzs7OztHQUtHO0FBQ0g7RUFHSSxzQkFBd0I7TUFBeEIsd0JBQXdCO0VBQ3hCLHFCQUFjO0VBQWQsY0FBYztFQUNkLHFCQUFlO0VBQ2Ysb0JBQWMsRUFZakI7RUFsQkQ7SUFTUSxxQkFBYTtRQUFiLGFBQWE7SUFDYixpQkFBaUI7SUFDakIscUJBQWlCO0lBQ2pCLG9CQUFnQixFQUNuQjtFQWJMO0lBZVEscUJBQWE7UUFBYixhQUFhO0lBQ2IsbUJBQWUsRUFDbEI7O0FBR0w7Ozs7O0dBS0c7QUFDSDtFQUVRLFlBQVksRUFDZjs7QUFHTDs7Ozs7R0FLRztBQUNIO0VBQ0ksOEJBQThCO0VBQzlCLDRCQUFVO0VBQW1CLGNBQWM7RUFDM0MsK0JBQVU7RUFDVixzQkFBcUI7RUFDckIscUJBQW9CO0VBQ3BCLHVCQUF1QjtFQUN2QixzQkFBc0I7RUFDdEIsaUJBQWlCLEVBQ3BCOztBQUVEOztHQUVHO0FBQ0g7RUFDSSxZQUFZLEVBQ2Y7O0FBRUQ7O0dBRUc7QUFDSDtFQUNJLGFBQWEsRUFDaEIiLCJmaWxlIjoiY29pbnMtbG9nb24td2lkZ2V0LmNzcyIsInNvdXJjZXNDb250ZW50IjpbIkBjaGFyc2V0IFwiVVRGLThcIjtcbi8qKlxuICogUm9vdC5cbiAqL1xuLmNvaW5zLWxvZ29uLXdpZGdldCB7XG4gIGZvbnQtZmFtaWx5OiBUcmVidWNoZXQsIFwiTHVjaWRhIFNhbnMgVW5pY29kZVwiLCBcIkx1Y2lkYSBHcmFuZGVcIiwgXCJMdWNpZGEgU2Fuc1wiLCBBcmlhbCwgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogbm9ybWFsO1xuICBsaW5lLWhlaWdodDogMS41O1xuICB0ZXh0LWFsaWduOiBsZWZ0O1xuICAvKiogTWFrZSBjaGlsZHJlbiBhZGhlcmUgdG8gJ2JvcmRlci1ib3gnIHNwYWNpbmcgKi8gfVxuICAuY29pbnMtbG9nb24td2lkZ2V0ICosXG4gIC5jb2lucy1sb2dvbi13aWRnZXQgKjpiZWZvcmUsXG4gIC5jb2lucy1sb2dvbi13aWRnZXQgKjphZnRlciB7XG4gICAgYm94LXNpemluZzogYm9yZGVyLWJveDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRm9ybSBFbGVtZW50c1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogRm9ybS5cbiAqXG4gKiBUaGUgbWFpbiBgZm9ybWAgZWxlbWVudC5cbiAqL1xuLmNvaW5zLWxvZ29uLXdpZGdldC1mb3JtIHtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBsaW5lLWhlaWdodDogaW5oZXJpdDtcbiAgbWFyZ2luOiAwO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7IH1cbiAgLmNvaW5zLWxvZ29uLXdpZGdldC1mb3JtOmJlZm9yZSwgLmNvaW5zLWxvZ29uLXdpZGdldC1mb3JtOmFmdGVyIHtcbiAgICBjb250ZW50OiAnICc7XG4gICAgZGlzcGxheTogdGFibGU7IH1cbiAgLmNvaW5zLWxvZ29uLXdpZGdldC1mb3JtOmFmdGVyIHtcbiAgICBjbGVhcjogYm90aDsgfVxuXG4vKipcbiAqIEZvcm0gR3JvdXAuXG4gKlxuICogVGhlc2Ugc2VydmUgYXMgYSB3cmFwcGVyIGZvciBgbGFiZWxgcyBhbmQgYGlucHV0YHMuIEVhY2ggc2hvdWxkIGJlIHdyYXBwZWRcbiAqIHdpdGggdGhpcyBjbGFzcy4gVGhlc2UgYXJlIGFsc28gdGhlIHRhcmdldHMgZm9yIHN0YXRlZnVsIGNsYXNzZXMuXG4gKi9cbi5jb2lucy1sb2dvbi13aWRnZXQtZm9ybS1ncm91cCB7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgcG9zaXRpb246IHJlbGF0aXZlOyB9XG5cbi8qKlxuICogTGFiZWwuXG4gKi9cbi5jb2lucy1sb2dvbi13aWRnZXQtbGFiZWwge1xuICBjb2xvcjogIzI2NDE1MDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBkaXNwbGF5OiBibG9jaztcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgMCAuMjVlbTtcbiAgdGV4dC1hbGlnbjogaW5oZXJpdDsgfVxuXG4vKipcbiAqIElucHV0LlxuICpcbiAqIEB0b2RvICBBZGQgaG9va3MgZm9yIG1vcmUgaW5wdXQgdHlwZXMuXG4gKi9cbmlucHV0W3R5cGU9XCJlbWFpbFwiXS5jb2lucy1sb2dvbi13aWRnZXQtaW5wdXQsXG5pbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uY29pbnMtbG9nb24td2lkZ2V0LWlucHV0LFxuaW5wdXRbdHlwZT1cInRleHRcIl0uY29pbnMtbG9nb24td2lkZ2V0LWlucHV0IHtcbiAgYmFja2dyb3VuZDogI2ZmZjtcbiAgYm9yZGVyLWNvbG9yOiAjMzY0YzU5O1xuICBib3JkZXItcmFkaXVzOiA1cHg7XG4gIGJvcmRlci1zdHlsZTogc29saWQ7XG4gIGJvcmRlci13aWR0aDogdGhpbjtcbiAgYm94LXNoYWRvdzogbm9uZTtcbiAgY29sb3I6ICMyNjQxNTA7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgZm9udC1zaXplOiAxMDAlO1xuICBmb250LXdlaWdodDogaW5oZXJpdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC41ZW0gMWVtO1xuICB0cmFuc2l0aW9uOiBib3gtc2hhZG93IDEwMG1zO1xuICB3aWR0aDogMTAwJTtcbiAgLyoqIFBsYWNlaG9sZGVyIGNvbG9yICovIH1cbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dDpmb2N1cywgaW5wdXRbdHlwZT1cImVtYWlsXCJdLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dDpob3ZlcixcbiAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dDpmb2N1cyxcbiAgaW5wdXRbdHlwZT1cInBhc3N3b3JkXCJdLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dDpob3ZlcixcbiAgaW5wdXRbdHlwZT1cInRleHRcIl0uY29pbnMtbG9nb24td2lkZ2V0LWlucHV0OmZvY3VzLFxuICBpbnB1dFt0eXBlPVwidGV4dFwiXS5jb2lucy1sb2dvbi13aWRnZXQtaW5wdXQ6aG92ZXIge1xuICAgIGJhY2tncm91bmQ6ICNmZmY7XG4gICAgYm9yZGVyLWNvbG9yOiAjMzY0YzU5O1xuICAgIGNvbG9yOiAjMjY0MTUwOyB9XG4gIGlucHV0W3R5cGU9XCJlbWFpbFwiXS5jb2lucy1sb2dvbi13aWRnZXQtaW5wdXQ6Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS5jb2lucy1sb2dvbi13aWRnZXQtaW5wdXQ6Zm9jdXMsXG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dDpmb2N1cyB7XG4gICAgYm94LXNoYWRvdzogMCAwIDAgMC4yNWVtICNhN2I5YzA7XG4gICAgb3V0bGluZTogbm9uZTsgfVxuICBpbnB1dFt0eXBlPVwiZW1haWxcIl0uY29pbnMtbG9nb24td2lkZ2V0LWlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxuICBpbnB1dFt0eXBlPVwicGFzc3dvcmRcIl0uY29pbnMtbG9nb24td2lkZ2V0LWlucHV0Ojotd2Via2l0LWlucHV0LXBsYWNlaG9sZGVyLFxuICBpbnB1dFt0eXBlPVwidGV4dFwiXS5jb2lucy1sb2dvbi13aWRnZXQtaW5wdXQ6Oi13ZWJraXQtaW5wdXQtcGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAjNzE4ZDk5OyB9XG4gIGlucHV0W3R5cGU9XCJlbWFpbFwiXS5jb2lucy1sb2dvbi13aWRnZXQtaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsXG4gIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS5jb2lucy1sb2dvbi13aWRnZXQtaW5wdXQ6Oi1tb3otcGxhY2Vob2xkZXIsXG4gIGlucHV0W3R5cGU9XCJ0ZXh0XCJdLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dDo6LW1vei1wbGFjZWhvbGRlciB7XG4gICAgY29sb3I6ICM3MThkOTk7IH1cbiAgaW5wdXRbdHlwZT1cImVtYWlsXCJdLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dDotbXMtaW5wdXQtcGxhY2Vob2xkZXIsXG4gIGlucHV0W3R5cGU9XCJwYXNzd29yZFwiXS5jb2lucy1sb2dvbi13aWRnZXQtaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyLFxuICBpbnB1dFt0eXBlPVwidGV4dFwiXS5jb2lucy1sb2dvbi13aWRnZXQtaW5wdXQ6LW1zLWlucHV0LXBsYWNlaG9sZGVyIHtcbiAgICBjb2xvcjogIzcxOGQ5OTsgfVxuXG4vKipcbiAqIEljb25zLlxuICpcbiAqIFRoZXNlIGFyZSB1c2VkIGluIGNvbmp1bmN0aW9uIHdpdGggZm9ybSBzdGF0ZXMgdG8gcHJvdmlkZSBhbiBhcHBsaWNhYmxlIGljb25cbiAqIHRvIGEgZm9ybSBncm91cC5cbiAqL1xuLmNvaW5zLWxvZ29uLXdpZGdldC1pY29uIHtcbiAgZm9udC1zaXplOiAxNTAlO1xuICBsaW5lLWhlaWdodDogMTtcbiAgcGFkZGluZzogLjMzM2VtIDA7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdG9wOiAwO1xuICB3aWR0aDogMS41ZW07IH1cbiAgLmNvaW5zLWxvZ29uLXdpZGdldC1pY29uOmFmdGVyIHtcbiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7IH1cbiAgLmNvaW5zLWxvZ29uLXdpZGdldC1sYWJlbDpub3QoLmNvaW5zLWxvZ29uLXdpZGdldC12aXN1YWxseWhpZGRlbikgfiAuY29pbnMtbG9nb24td2lkZ2V0LWljb24ge1xuICAgIHRvcDogMS4xMjVlbTsgfVxuXG4vKipcbiAqIElucHV0IE1lc3NhZ2UuXG4gKlxuICogUGxhY2VkIGFmdGVyIHRoZSBgaW5wdXRgIGluc2lkZSB0aGUgZm9ybSBncm91cC4gQ2FuIGJlIGluZm9ybWF0aW9uIHJlbGF0aW5nXG4gKiB0byB0aGUgYGlucHV0YCwgb3IgY2FuIGJlIGEgc3RhdGVmdWwgbWVzc2FnZS5cbiAqL1xuLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dC1tZXNzYWdlIHtcbiAgZGlzcGxheTogYmxvY2s7XG4gIGZvbnQtc2l6ZTogODAlO1xuICBsaW5lLWhlaWdodDogMS4yNTtcbiAgbWFyZ2luOiAuMzMzZW0gMCAwO1xuICBwYWRkaW5nLWxlZnQ6IDEuMjVlbTsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgQnV0dG9uc1xuICAgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gKi9cbi8qKlxuICogQnV0dG9uIGdyb3Vwc1xuICpcbiAqIFdyYXBwZXIgZm9yIHR3byBvciBtb3JlIGJ1dHRvbnMuXG4gKi9cbi5jb2lucy1sb2dvbi13aWRnZXQtYnV0dG9uLWdyb3VwIHtcbiAgbWFyZ2luLWJvdHRvbTogLTAuNWVtOyB9XG4gIC5jb2lucy1sb2dvbi13aWRnZXQtYnV0dG9uLWdyb3VwOmJlZm9yZSwgLmNvaW5zLWxvZ29uLXdpZGdldC1idXR0b24tZ3JvdXA6YWZ0ZXIge1xuICAgIGNvbnRlbnQ6ICcgJztcbiAgICBkaXNwbGF5OiB0YWJsZTsgfVxuICAuY29pbnMtbG9nb24td2lkZ2V0LWJ1dHRvbi1ncm91cDphZnRlciB7XG4gICAgY2xlYXI6IGJvdGg7IH1cbiAgLmNvaW5zLWxvZ29uLXdpZGdldC1idXR0b24tZ3JvdXAgLmNvaW5zLWxvZ29uLXdpZGdldC1idXR0b24ge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIG1hcmdpbi1yaWdodDogMC41ZW07XG4gICAgbWFyZ2luLWJvdHRvbTogMC41ZW07IH1cblxuLyoqXG4gKiBCYXNlIGJ1dHRvbi5cbiAqXG4gKiBCYXNpYyBidXR0b24gc3R5bGluZywgcmVxdWlyZWQgYnkgZXZlcnkgYnV0dG9uLiBBIG1vZGlmaWVyIGNsYXNzICgncHJpbWFyeSdcbiAqIG9yICdzZWNvbmRhcnknKSBpcyByZXF1aXJlZCBmb3IgcHJvcGVyIGNvbG9yaW5nLlxuICovXG4uY29pbnMtbG9nb24td2lkZ2V0LWJ1dHRvbiB7XG4gIGJvcmRlcjogdGhpbiBzb2xpZCB0cmFuc3BhcmVudDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBjdXJzb3I6IHBvaW50ZXI7XG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XG4gIGZvbnQtc2l6ZTogMTAwJTtcbiAgZm9udC13ZWlnaHQ6IGluaGVyaXQ7XG4gIGxpbmUtaGVpZ2h0OiBpbmhlcml0O1xuICBwYWRkaW5nOiAwLjVlbSAxZW07XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgdHJhbnNpdGlvbi1kdXJhdGlvbjogMTAwbXM7XG4gIHRyYW5zaXRpb24tcHJvcGVydHk6IGJhY2tncm91bmQsIGJveC1zaGFkb3csIGNvbG9yOyB9XG4gIC5jb2lucy1sb2dvbi13aWRnZXQtYnV0dG9uOmZvY3VzIHtcbiAgICBib3gtc2hhZG93OiAwIDAgMCAwLjJlbSAjYTdiOWMwO1xuICAgIG91dGxpbmU6IG5vbmU7IH1cblxuLyoqXG4gKiBCdXR0b24gY29sb3IgbW9kaWZpZXJzLlxuICovXG4uY29pbnMtbG9nb24td2lkZ2V0LWJ1dHRvbi1wcmltYXJ5IHtcbiAgYmFja2dyb3VuZDogIzM2NGM1OTtcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmNvaW5zLWxvZ29uLXdpZGdldC1idXR0b24tcHJpbWFyeTpmb2N1cywgLmNvaW5zLWxvZ29uLXdpZGdldC1idXR0b24tcHJpbWFyeTpob3ZlciwgLmNvaW5zLWxvZ29uLXdpZGdldC1idXR0b24tcHJpbWFyeTphY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICMyMzMxMzk7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLmNvaW5zLWxvZ29uLXdpZGdldC1idXR0b24tc2Vjb25kYXJ5IHtcbiAgYmFja2dyb3VuZDogIzcxOGQ5OTtcbiAgY29sb3I6ICNmZmY7IH1cbiAgLmNvaW5zLWxvZ29uLXdpZGdldC1idXR0b24tc2Vjb25kYXJ5OmZvY3VzLCAuY29pbnMtbG9nb24td2lkZ2V0LWJ1dHRvbi1zZWNvbmRhcnk6aG92ZXIsIC5jb2lucy1sb2dvbi13aWRnZXQtYnV0dG9uLXNlY29uZGFyeTphY3RpdmUge1xuICAgIGJhY2tncm91bmQ6ICM1YTczN2Q7XG4gICAgY29sb3I6ICNmZmY7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIE5vdGlmaWNhdGlvbnNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY29pbnMtbG9nb24td2lkZ2V0LW5vdGlmaWNhdGlvbiB7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgY29sb3I6ICNmZmY7XG4gIG1hcmdpbi1ib3R0b206IDFlbTtcbiAgcGFkZGluZzogMC41ZW0gMWVtOyB9XG4gIC5jb2lucy1sb2dvbi13aWRnZXQtbm90aWZpY2F0aW9uIGEge1xuICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gICAgbGV0dGVyLXNwYWNpbmc6IDA7XG4gICAgdGV4dC1kZWNvcmF0aW9uOiB1bmRlcmxpbmU7IH1cbiAgICAuY29pbnMtbG9nb24td2lkZ2V0LW5vdGlmaWNhdGlvbiBhLCAuY29pbnMtbG9nb24td2lkZ2V0LW5vdGlmaWNhdGlvbiBhOmxpbmssIC5jb2lucy1sb2dvbi13aWRnZXQtbm90aWZpY2F0aW9uIGE6dmlzaXRlZCwgLmNvaW5zLWxvZ29uLXdpZGdldC1ub3RpZmljYXRpb24gYTpmb2N1cywgLmNvaW5zLWxvZ29uLXdpZGdldC1ub3RpZmljYXRpb24gYTpob3ZlciwgLmNvaW5zLWxvZ29uLXdpZGdldC1ub3RpZmljYXRpb24gYTphY3RpdmUge1xuICAgICAgY29sb3I6ICNmZmY7IH1cbiAgICAuY29pbnMtbG9nb24td2lkZ2V0LW5vdGlmaWNhdGlvbiBhOmZvY3VzLCAuY29pbnMtbG9nb24td2lkZ2V0LW5vdGlmaWNhdGlvbiBhOmhvdmVyLCAuY29pbnMtbG9nb24td2lkZ2V0LW5vdGlmaWNhdGlvbiBhOmFjdGl2ZSB7XG4gICAgICBvcGFjaXR5OiAuOTI7IH1cblxuLmNvaW5zLWxvZ29uLXdpZGdldC1ub3RpZmljYXRpb24tZXJyb3Ige1xuICBiYWNrZ3JvdW5kOiAjZWY1YTIxOyB9XG5cbi5jb2lucy1sb2dvbi13aWRnZXQtbm90aWZpY2F0aW9uLXN1Y2Nlc3Mge1xuICBiYWNrZ3JvdW5kOiAjOTRiMTJhOyB9XG5cbi8qID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4gICBTdGF0dXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY29pbnMtbG9nb24td2lkZ2V0LXN0YXR1cyB7XG4gIGNvbG9yOiAjMjY0MTUwO1xuICBmbG9hdDogbGVmdDtcbiAgbGluZS1oZWlnaHQ6IGluaGVyaXQ7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMC41ZW0gMWVtIDAgMDsgfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgSW5kaWNhdG9yXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBBbmltYXRpbmcgbG9hZGVyIGluZGljYXRvciB1c2luZyBTVkcuXG4gKlxuICogQHtAbGluayAgaHR0cDovL2NvZGVwZW4uaW8vamN6aW1tL3Blbi92RUJwb0x9XG4gKi9cbi5jb2lucy1sb2dvbi13aWRnZXQtaW5kaWNhdG9yIHtcbiAgYm90dG9tOiAwO1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGhlaWdodDogNDBweDtcbiAgbGVmdDogMDtcbiAgb3BhY2l0eTogMDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB3aWR0aDogNDBweDsgfVxuICAuY29pbnMtbG9nb24td2lkZ2V0LWluZGljYXRvciBzdmcge1xuICAgIGFuaW1hdGlvbjogcm90YXRlIDI1MDBtcyBsaW5lYXIgaW5maW5pdGU7XG4gICAgaGVpZ2h0OiA0MHB4O1xuICAgIHdpZHRoOiA0MHB4OyB9XG4gIC5jb2lucy1sb2dvbi13aWRnZXQtaW5kaWNhdG9yIGNpcmNsZSB7XG4gICAgYW5pbWF0aW9uOiBkYXNoIDIwMDBtcyBlYXNlLWluLW91dCBpbmZpbml0ZTtcbiAgICBzdHJva2U6ICMyNjQxNTA7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMjAwO1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwO1xuICAgIHN0cm9rZS1saW5lY2FwOiByb3VuZDsgfVxuXG5Aa2V5ZnJhbWVzIHJvdGF0ZSB7XG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogcm90YXRlKDM2MGRlZyk7IH0gfVxuXG5Aa2V5ZnJhbWVzIGRhc2gge1xuICAwJSB7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogMSwgMjAwO1xuICAgIHN0cm9rZS1kYXNob2Zmc2V0OiAwOyB9XG4gIDUwJSB7XG4gICAgc3Ryb2tlLWRhc2hhcnJheTogODksIDIwMDtcbiAgICBzdHJva2UtZGFzaG9mZnNldDogLTM1OyB9XG4gIDEwMCUge1xuICAgIHN0cm9rZS1kYXNoYXJyYXk6IDg5LCAyMDA7XG4gICAgc3Ryb2tlLWRhc2hvZmZzZXQ6IC0xMjQ7IH0gfVxuXG4vKiA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuICAgRm9ybSBTdGF0ZXNcbiAgID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICovXG4uY29pbnMtbG9nb24td2lkZ2V0LWZvcm0tZ3JvdXAtZXJyb3IgLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dCwgLmNvaW5zLWxvZ29uLXdpZGdldC1mb3JtLWdyb3VwLXN1Y2Nlc3MgLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dCB7XG4gIHBhZGRpbmctcmlnaHQ6IDJlbTsgfVxuXG4uY29pbnMtbG9nb24td2lkZ2V0LWZvcm0tZ3JvdXAtZXJyb3IgLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogI2VmNWEyMTsgfVxuXG4uY29pbnMtbG9nb24td2lkZ2V0LWZvcm0tZ3JvdXAtZXJyb3IgLmNvaW5zLWxvZ29uLXdpZGdldC1pY29uIHtcbiAgY29sb3I6ICNlZjVhMjE7IH1cbiAgLmNvaW5zLWxvZ29uLXdpZGdldC1mb3JtLWdyb3VwLWVycm9yIC5jb2lucy1sb2dvbi13aWRnZXQtaWNvbjphZnRlciB7XG4gICAgY29udGVudDogXCLinJhcIjsgfVxuXG4uY29pbnMtbG9nb24td2lkZ2V0LWZvcm0tZ3JvdXAtZXJyb3IgLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dC1tZXNzYWdlIHtcbiAgY29sb3I6ICNlZjVhMjE7IH1cblxuLmNvaW5zLWxvZ29uLXdpZGdldC1mb3JtLWdyb3VwLXN1Y2Nlc3MgLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dCB7XG4gIGJvcmRlci1jb2xvcjogIzk0YjEyYTsgfVxuXG4uY29pbnMtbG9nb24td2lkZ2V0LWZvcm0tZ3JvdXAtc3VjY2VzcyAuY29pbnMtbG9nb24td2lkZ2V0LWljb24ge1xuICBjb2xvcjogIzk0YjEyYTsgfVxuICAuY29pbnMtbG9nb24td2lkZ2V0LWZvcm0tZ3JvdXAtc3VjY2VzcyAuY29pbnMtbG9nb24td2lkZ2V0LWljb246YWZ0ZXIge1xuICAgIGNvbnRlbnQ6IFwi4pyUXCI7IH1cblxuLmNvaW5zLWxvZ29uLXdpZGdldC1mb3JtLWdyb3VwLXN1Y2Nlc3MgLmNvaW5zLWxvZ29uLXdpZGdldC1pbnB1dC1tZXNzYWdlIHtcbiAgY29sb3I6ICM5NGIxMmE7IH1cblxuLyoqXG4gKiBMb2FkaW5nLlxuICpcbiAqIFNob3cgdGhlIGxvYWRpbmcgaW5kaWNhdG9yLlxuICovXG4uY29pbnMtbG9nb24td2lkZ2V0LWZvcm0tbG9hZGluZyAuY29pbnMtbG9nb24td2lkZ2V0LWluZGljYXRvciB7XG4gIG9wYWNpdHk6IDE7IH1cblxuLyogPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiAgIEhlbHBlciBDbGFzc2VzXG4gICA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAqL1xuLyoqXG4gKiBIb3Jpem9udGFsIGZvcm0uXG4gKlxuICogQXBwbHkgdG8gdGhlIHJvb3QgYGZvcm0uY29pbnMtbG9nb24td2lkZ2V0LWZvcm1gIHRvIG1ha2UgdGhlIGZvcm0gZ3JvdXBzIGFuZFxuICogYnV0dG9uIGRpc3BsYXkgaG9yaXpvbnRhbGx5LlxuICovXG4uY29pbnMtbG9nb24td2lkZ2V0LWZvcm0taG9yaXpvbnRhbCB7XG4gIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0O1xuICBkaXNwbGF5OiBmbGV4O1xuICBtYXJnaW4tcmlnaHQ6IC0wLjVlbTtcbiAgbWFyZ2luLWxlZnQ6IC0wLjVlbTsgfVxuICAuY29pbnMtbG9nb24td2lkZ2V0LWZvcm0taG9yaXpvbnRhbCAuY29pbnMtbG9nb24td2lkZ2V0LWZvcm0tZ3JvdXAge1xuICAgIGZsZXgtZ3JvdzogMjtcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xuICAgIHBhZGRpbmctcmlnaHQ6IDAuNWVtO1xuICAgIHBhZGRpbmctbGVmdDogMC41ZW07IH1cbiAgLmNvaW5zLWxvZ29uLXdpZGdldC1mb3JtLWhvcml6b250YWwgLmNvaW5zLWxvZ29uLXdpZGdldC1idXR0b24ge1xuICAgIGZsZXgtZ3JvdzogMTtcbiAgICBtYXJnaW4tbGVmdDogMC41ZW07IH1cblxuLyoqXG4gKiBTdGF0dXMgZm9ybS5cbiAqXG4gKiBBcHBseSB0byB0aGUgcm9vdCBgZm9ybS5jb2lucy1sb2dvbi13aWRnZXQgZm9ybWAgdG8gYWRkIHByb3BlciBidXR0b24gc3R5bGluZ1xuICogZm9yIGEgZm9ybSB0aGF0IGRpc3BsYXlzIGxvZ29uIHN0YXR1cy5cbiAqL1xuLmNvaW5zLWxvZ29uLXdpZGdldC1mb3JtLXN0YXR1cyAuY29pbnMtbG9nb24td2lkZ2V0LWJ1dHRvbiB7XG4gIGZsb2F0OiBsZWZ0OyB9XG5cbi8qKlxuICogVmlzdWFsbHkgaGlkZGVuLlxuICpcbiAqIEhpZGUgY29udGVudCBidXQgbWFrZSBpdCBhY2Nlc3NpYmxlIGZvciBzY3JlZW4gcmVhZGVycy5cbiAqIGh0dHA6Ly9hMTF5cHJvamVjdC5jb20vcG9zdHMvaG93LXRvLWhpZGUtY29udGVudC9cbiAqL1xuLmNvaW5zLWxvZ29uLXdpZGdldC12aXN1YWxseWhpZGRlbiB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZSAhaW1wb3J0YW50O1xuICBjbGlwOiByZWN0KDFweCAxcHggMXB4IDFweCk7XG4gIC8qIElFNiwgSUU3ICovXG4gIGNsaXA6IHJlY3QoMXB4LCAxcHgsIDFweCwgMXB4KTtcbiAgcGFkZGluZzogMCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDAgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAxcHggIWltcG9ydGFudDtcbiAgd2lkdGg6IDFweCAhaW1wb3J0YW50O1xuICBvdmVyZmxvdzogaGlkZGVuOyB9XG5cbi8qKlxuICogQWxpZ24gbGVmdC5cbiAqL1xuLmNvaW5zLWxvZ29uLXdpZGdldC1sZWZ0IHtcbiAgZmxvYXQ6IGxlZnQ7IH1cblxuLyoqXG4gKiBBbGlnbiByaWdodC5cbiAqL1xuLmNvaW5zLWxvZ29uLXdpZGdldC1yaWdodCB7XG4gIGZsb2F0OiByaWdodDsgfVxuXG4vKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV3b0pJblpsY25OcGIyNGlPaUF6TEFvSkltWnBiR1VpT2lBaVkyOXBibk10Ykc5bmIyNHRkMmxrWjJWMExtTnpjeUlzQ2draWMyOTFjbU5sY3lJNklGc0tDUWtpTGk0dmMzUjViR1Z6TDJOdmFXNXpMV3h2WjI5dUxYZHBaR2RsZEM1elkzTnpJZ29KWFN3S0NTSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNklGc0tDUWtpTHk5Y2JpOHZJRU5QU1U1VElFeHZaMjl1SUZkcFpHZGxkQ0J6ZEhsc1pYTXVYRzR2TDF4dVhHNHZMMXh1THk4Z1EwOUpUbE1nVEc5bmIyNGdWMmxrWjJWMElITmxkSFJwYm1kekxseHVMeTljYmk4dklFQjBlWEJsSUcxaGNGeHVMeTljYmlSamIybHVjeTFzYjJkdmJpMTNhV1JuWlhRNklDaGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUExY0hnc1hHNGdJQ0FnWm05dWRDMW1ZVzFwYkhrNklDaFVjbVZpZFdOb1pYUXNJQ2RNZFdOcFpHRWdVMkZ1Y3lCVmJtbGpiMlJsSnl3Z0oweDFZMmxrWVNCSGNtRnVaR1VuTENBblRIVmphV1JoSUZOaGJuTW5MQ0JCY21saGJDd2djMkZ1Y3kxelpYSnBaaWtzWEc0Z0lDQWdabTl1ZEMxemFYcGxPaUF4TkhCNExGeHVJQ0FnSUdadmJuUXRkMlZwWjJoME9pQnViM0p0WVd3c1hHNGdJQ0FnYkdsdVpTMW9aV2xuYUhRNklERXVOU3hjYmlBZ0lDQndZV1JrYVc1bk9pQW9MalZsYlNBeFpXMHBMRnh1SUNBZ0lIUnlZVzV6YVhScGIyNHRaSFZ5WVhScGIyNDZJREV3TUcxelhHNHBJQ0ZrWldaaGRXeDBPMXh1WEc0dkwxeHVMeThnUTA5SlRsTWdURzluYjI0Z1YybGtaMlYwSUdOdmJHOXljeTVjYmk4dlhHNHZMeUJBZEhsd1pTQnRZWEJjYmk4dlhHNGtZMjlwYm5NdGJHOW5iMjR0ZDJsa1oyVjBMV052Ykc5eWN6b2dLRnh1SUNBZ0lHRmpkR2wyWlRvZ2JXbDRLQ05rWTJVMFpUY3NJQ00zTVRoa09Ua3BMRnh1SUNBZ0lHSjFkSFJ2Ymkxd2NtbHRZWEo1TFdKaFkydG5jbTkxYm1RNklDTXpOalJqTlRrc1hHNGdJQ0FnWW5WMGRHOXVMWEJ5YVcxaGNua3RZMjlzYjNJNklDTm1abVlzWEc0Z0lDQWdZblYwZEc5dUxYTmxZMjl1WkdGeWVTMWlZV05yWjNKdmRXNWtPaUFqTnpFNFpEazVMRnh1SUNBZ0lHSjFkSFJ2YmkxelpXTnZibVJoY25rdFkyOXNiM0k2SUNObVptWXNYRzRnSUNBZ1pYSnliM0k2SUNObFpqVmhNakVzWEc0Z0lDQWdhVzV3ZFhRdFltRmphMmR5YjNWdVpEb2dJMlptWml4Y2JpQWdJQ0JwYm5CMWRDMWliM0prWlhJNklDTXpOalJqTlRrc1hHNGdJQ0FnYVc1d2RYUXRZMjlzYjNJNklDTXlOalF4TlRBc1hHNGdJQ0FnYVc1d2RYUXRjR3hoWTJWb2IyeGtaWEk2SUNNM01UaGtPVGtzWEc0Z0lDQWdiR0ZpWld3NklDTXlOalF4TlRBc1hHNGdJQ0FnYm05MGFXWnBZMkYwYVc5dUxXTnZiRzl5T2lBalptWm1MRnh1SUNBZ0lITjFZMk5sYzNNNklHUmhjbXRsYmlnallqVmtNelExTENBeE1pVXBYRzRwSUNGa1pXWmhkV3gwTzF4dVhHNHZMeThnVFdsamNtOGdZMnhsWVhKbWFYaGNiaTh2TDF4dUx5OHZJRUJoWTJObGMzTWdjSEpwZG1GMFpWeHVMeTh2SUVCdmRYUndkWFFnUTJ4bFlYSm1hWGdnYzNSNWJHVnpJR1p2Y2lCMGFHVWdaV3hsYldWdWRGeHVRRzFwZUdsdUlDMWpiMmx1Y3kxc2IyZHZiaTEzYVdSblpYUXRZMnhsWVhKbWFYZ2dlMXh1SUNBZ0lDWTZZbVZtYjNKbExGeHVJQ0FnSUNZNllXWjBaWElnZTF4dUlDQWdJQ0FnSUNCamIyNTBaVzUwT2lBbklDYzdYRzRnSUNBZ0lDQWdJR1JwYzNCc1lYazZJSFJoWW14bE8xeHVJQ0FnSUgxY2JpQWdJQ0FtT21GbWRHVnlJSHRjYmlBZ0lDQWdJQ0FnWTJ4bFlYSTZJR0p2ZEdnN1hHNGdJQ0FnZlZ4dWZWeHVYRzR2S2lwY2JpQXFJRkp2YjNRdVhHNGdLaTljYmk1amIybHVjeTFzYjJkdmJpMTNhV1JuWlhRZ2UxeHVJQ0FnSUdadmJuUXRabUZ0YVd4NU9pQnRZWEF0WjJWMEtDUmpiMmx1Y3kxc2IyZHZiaTEzYVdSblpYUXNJQ2RtYjI1MExXWmhiV2xzZVNjcE8xeHVJQ0FnSUdadmJuUXRjMmw2WlRvZ2JXRndMV2RsZENna1kyOXBibk10Ykc5bmIyNHRkMmxrWjJWMExDQW5abTl1ZEMxemFYcGxKeWs3WEc0Z0lDQWdabTl1ZEMxM1pXbG5hSFE2SUcxaGNDMW5aWFFvSkdOdmFXNXpMV3h2WjI5dUxYZHBaR2RsZEN3Z0oyWnZiblF0ZDJWcFoyaDBKeWs3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUcxaGNDMW5aWFFvSkdOdmFXNXpMV3h2WjI5dUxYZHBaR2RsZEN3Z0oyeHBibVV0YUdWcFoyaDBKeWs3WEc0Z0lDQWdkR1Y0ZEMxaGJHbG5iam9nYkdWbWREdGNibHh1SUNBZ0lDOHFLaUJOWVd0bElHTm9hV3hrY21WdUlHRmthR1Z5WlNCMGJ5QW5ZbTl5WkdWeUxXSnZlQ2NnYzNCaFkybHVaeUFxTDF4dUlDQWdJQ29zWEc0Z0lDQWdLanBpWldadmNtVXNYRzRnSUNBZ0tqcGhablJsY2lCN1hHNGdJQ0FnSUNBZ0lHSnZlQzF6YVhwcGJtYzZJR0p2Y21SbGNpMWliM2c3WEc0Z0lDQWdmVnh1ZlZ4dVhHNHZLaUE5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFZ4dUlDQWdSbTl5YlNCRmJHVnRaVzUwYzF4dUlDQWdQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDBnS2k5Y2JseHVMeW9xWEc0Z0tpQkdiM0p0TGx4dUlDcGNiaUFxSUZSb1pTQnRZV2x1SUdCbWIzSnRZQ0JsYkdWdFpXNTBMbHh1SUNvdlhHNHVZMjlwYm5NdGJHOW5iMjR0ZDJsa1oyVjBMV1p2Y20wZ2UxeHVJQ0FnSUVCcGJtTnNkV1JsSUMxamIybHVjeTFzYjJkdmJpMTNhV1JuWlhRdFkyeGxZWEptYVhnN1hHNWNiaUFnSUNCbWIyNTBMWE5wZW1VNklERXdNQ1U3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUdsdWFHVnlhWFE3WEc0Z0lDQWdiV0Z5WjJsdU9pQXdPMXh1SUNBZ0lIQnZjMmwwYVc5dU9pQnlaV3hoZEdsMlpUdGNibjFjYmx4dUx5b3FYRzRnS2lCR2IzSnRJRWR5YjNWd0xseHVJQ3BjYmlBcUlGUm9aWE5sSUhObGNuWmxJR0Z6SUdFZ2QzSmhjSEJsY2lCbWIzSWdZR3hoWW1Wc1lITWdZVzVrSUdCcGJuQjFkR0J6TGlCRllXTm9JSE5vYjNWc1pDQmlaU0IzY21Gd2NHVmtYRzRnS2lCM2FYUm9JSFJvYVhNZ1kyeGhjM011SUZSb1pYTmxJR0Z5WlNCaGJITnZJSFJvWlNCMFlYSm5aWFJ6SUdadmNpQnpkR0YwWldaMWJDQmpiR0Z6YzJWekxseHVJQ292WEc0dVkyOXBibk10Ykc5bmIyNHRkMmxrWjJWMExXWnZjbTB0WjNKdmRYQWdlMXh1SUNBZ0lHMWhjbWRwYmkxaWIzUjBiMjA2SURGbGJUdGNiaUFnSUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hHNTlYRzVjYmk4cUtseHVJQ29nVEdGaVpXd3VYRzRnS2k5Y2JpNWpiMmx1Y3kxc2IyZHZiaTEzYVdSblpYUXRiR0ZpWld3Z2UxeHVJQ0FnSUdOdmJHOXlPaUJ0WVhBdFoyVjBLQ1JqYjJsdWN5MXNiMmR2YmkxM2FXUm5aWFF0WTI5c2IzSnpMQ0FuYkdGaVpXd25LVHRjYmlBZ0lDQmpkWEp6YjNJNklIQnZhVzUwWlhJN1hHNGdJQ0FnWkdsemNHeGhlVG9nWW14dlkyczdYRzRnSUNBZ1ptOXVkQzFtWVcxcGJIazZJR2x1YUdWeWFYUTdYRzRnSUNBZ1ptOXVkQzF6YVhwbE9pQXhNREFsTzF4dUlDQWdJR1p2Ym5RdGQyVnBaMmgwT2lCcGJtaGxjbWwwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCcGJtaGxjbWwwTzF4dUlDQWdJRzFoY21kcGJqb2dNRHRjYmlBZ0lDQndZV1JrYVc1bk9pQXdJREFnTGpJMVpXMDdYRzRnSUNBZ2RHVjRkQzFoYkdsbmJqb2dhVzVvWlhKcGREdGNibjFjYmx4dUx5b3FYRzRnS2lCSmJuQjFkQzVjYmlBcVhHNGdLaUJBZEc5a2J5QWdRV1JrSUdodmIydHpJR1p2Y2lCdGIzSmxJR2x1Y0hWMElIUjVjR1Z6TGx4dUlDb3ZYRzVwYm5CMWRGdDBlWEJsUFZ3aVpXMWhhV3hjSWwwc1hHNXBibkIxZEZ0MGVYQmxQVndpY0dGemMzZHZjbVJjSWwwc1hHNXBibkIxZEZ0MGVYQmxQVndpZEdWNGRGd2lYU0I3WEc0Z0lDQWdKR0poWTJ0bmNtOTFibVE2SUcxaGNDMW5aWFFvSkdOdmFXNXpMV3h2WjI5dUxYZHBaR2RsZEMxamIyeHZjbk1zSUNkcGJuQjFkQzFpWVdOclozSnZkVzVrSnlrN1hHNGdJQ0FnSkdKdmNtUmxjaTFqYjJ4dmNqb2diV0Z3TFdkbGRDZ2tZMjlwYm5NdGJHOW5iMjR0ZDJsa1oyVjBMV052Ykc5eWN5d2dKMmx1Y0hWMExXSnZjbVJsY2ljcE8xeHVJQ0FnSUNSamIyeHZjam9nYldGd0xXZGxkQ2drWTI5cGJuTXRiRzluYjI0dGQybGtaMlYwTFdOdmJHOXljeXdnSjJsdWNIVjBMV052Ykc5eUp5azdYRzVjYmlBZ0lDQW1MbU52YVc1ekxXeHZaMjl1TFhkcFpHZGxkQzFwYm5CMWRDQjdYRzRnSUNBZ0lDQWdJR0poWTJ0bmNtOTFibVE2SUNSaVlXTnJaM0p2ZFc1a08xeHVJQ0FnSUNBZ0lDQmliM0prWlhJdFkyOXNiM0k2SUNSaWIzSmtaWEl0WTI5c2IzSTdYRzRnSUNBZ0lDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklHMWhjQzFuWlhRb0pHTnZhVzV6TFd4dloyOXVMWGRwWkdkbGRDd2dKMkp2Y21SbGNpMXlZV1JwZFhNbktUdGNiaUFnSUNBZ0lDQWdZbTl5WkdWeUxYTjBlV3hsT2lCemIyeHBaRHRjYmlBZ0lDQWdJQ0FnWW05eVpHVnlMWGRwWkhSb09pQjBhR2x1TzF4dUlDQWdJQ0FnSUNCaWIzZ3RjMmhoWkc5M09pQnViMjVsTzF4dUlDQWdJQ0FnSUNCamIyeHZjam9nSkdOdmJHOXlPMXh1SUNBZ0lDQWdJQ0JrYVhOd2JHRjVPaUJpYkc5amF6dGNiaUFnSUNBZ0lDQWdabTl1ZEMxbVlXMXBiSGs2SUdsdWFHVnlhWFE3WEc0Z0lDQWdJQ0FnSUdadmJuUXRjMmw2WlRvZ01UQXdKVHRjYmlBZ0lDQWdJQ0FnWm05dWRDMTNaV2xuYUhRNklHbHVhR1Z5YVhRN1hHNGdJQ0FnSUNBZ0lHeHBibVV0YUdWcFoyaDBPaUJwYm1obGNtbDBPMXh1SUNBZ0lDQWdJQ0J0WVhKbmFXNDZJREE3WEc0Z0lDQWdJQ0FnSUhCaFpHUnBibWM2SUcxaGNDMW5aWFFvSkdOdmFXNXpMV3h2WjI5dUxYZHBaR2RsZEN3Z0ozQmhaR1JwYm1jbktUdGNiaUFnSUNBZ0lDQWdkSEpoYm5OcGRHbHZiam9nWW05NExYTm9ZV1J2ZHlCdFlYQXRaMlYwS0NSamIybHVjeTFzYjJkdmJpMTNhV1JuWlhRc0lDZDBjbUZ1YzJsMGFXOXVMV1IxY21GMGFXOXVKeWs3WEc0Z0lDQWdJQ0FnSUhkcFpIUm9PaUF4TURBbE8xeHVYRzRnSUNBZ0lDQWdJQ1k2Wm05amRYTXNYRzRnSUNBZ0lDQWdJQ1k2YUc5MlpYSWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1ltRmphMmR5YjNWdVpEb2dKR0poWTJ0bmNtOTFibVE3WEc0Z0lDQWdJQ0FnSUNBZ0lDQmliM0prWlhJdFkyOXNiM0k2SUNSaWIzSmtaWEl0WTI5c2IzSTdYRzRnSUNBZ0lDQWdJQ0FnSUNCamIyeHZjam9nSkdOdmJHOXlPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUNZNlptOWpkWE1nZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBd0lEQWdMakkxWlcwZ2JXRndMV2RsZENna1kyOXBibk10Ykc5bmIyNHRkMmxrWjJWMExXTnZiRzl5Y3l3Z0oyRmpkR2wyWlNjcE8xeHVJQ0FnSUNBZ0lDQWdJQ0FnYjNWMGJHbHVaVG9nYm05dVpUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUM4cUtpQlFiR0ZqWldodmJHUmxjaUJqYjJ4dmNpQXFMMXh1SUNBZ0lDQWdJQ0FrYVc1d2RYUXRjR3hoWTJWb2IyeGtaWEk2SUcxaGNDMW5aWFFvSkdOdmFXNXpMV3h2WjI5dUxYZHBaR2RsZEMxamIyeHZjbk1zSUNkcGJuQjFkQzF3YkdGalpXaHZiR1JsY2ljcE8xeHVYRzRnSUNBZ0lDQWdJQ1k2T2kxM1pXSnJhWFF0YVc1d2RYUXRjR3hoWTJWb2IyeGtaWElnZTF4dUlDQWdJQ0FnSUNBZ0lDQWdZMjlzYjNJNklDUnBibkIxZEMxd2JHRmpaV2h2YkdSbGNqdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdJQ0FtT2pvdGJXOTZMWEJzWVdObGFHOXNaR1Z5SUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ykc5eU9pQWthVzV3ZFhRdGNHeGhZMlZvYjJ4a1pYSTdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSmpvdGJYTXRhVzV3ZFhRdGNHeGhZMlZvYjJ4a1pYSWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ1kyOXNiM0k2SUNScGJuQjFkQzF3YkdGalpXaHZiR1JsY2p0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUgxY2JuMWNibHh1THlvcVhHNGdLaUJKWTI5dWN5NWNiaUFxWEc0Z0tpQlVhR1Z6WlNCaGNtVWdkWE5sWkNCcGJpQmpiMjVxZFc1amRHbHZiaUIzYVhSb0lHWnZjbTBnYzNSaGRHVnpJSFJ2SUhCeWIzWnBaR1VnWVc0Z1lYQndiR2xqWVdKc1pTQnBZMjl1WEc0Z0tpQjBieUJoSUdadmNtMGdaM0p2ZFhBdVhHNGdLaTljYmk1amIybHVjeTFzYjJkdmJpMTNhV1JuWlhRdGFXTnZiaUI3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUF4TURBbElDb2diV0Z3TFdkbGRDZ2tZMjlwYm5NdGJHOW5iMjR0ZDJsa1oyVjBMQ0FuYkdsdVpTMW9aV2xuYUhRbktUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dNVHRjYmlBZ0lDQndZV1JrYVc1bk9pQXVNek16WlcwZ01EdGNiaUFnSUNCd2IzTnBkR2x2YmpvZ1lXSnpiMngxZEdVN1hHNGdJQ0FnY21sbmFIUTZJREE3WEc0Z0lDQWdkR1Y0ZEMxaGJHbG5iam9nWTJWdWRHVnlPMXh1SUNBZ0lIUnZjRG9nTUR0Y2JpQWdJQ0IzYVdSMGFEb2dNUzQxWlcwN1hHNWNiaUFnSUNBbU9tRm1kR1Z5SUh0Y2JpQWdJQ0FnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdKc2IyTnJPMXh1SUNBZ0lIMWNibHh1SUNBZ0lDNWpiMmx1Y3kxc2IyZHZiaTEzYVdSblpYUXRiR0ZpWld3NmJtOTBLQzVqYjJsdWN5MXNiMmR2YmkxM2FXUm5aWFF0ZG1semRXRnNiSGxvYVdSa1pXNHBJSDRnSmlCN1hHNGdJQ0FnSUNBZ0lIUnZjRG9nTGpjMVpXMGdLaUJ0WVhBdFoyVjBLQ1JqYjJsdWN5MXNiMmR2YmkxM2FXUm5aWFFzSUNkc2FXNWxMV2hsYVdkb2RDY3BPMXh1SUNBZ0lIMWNibjFjYmx4dUx5b3FYRzRnS2lCSmJuQjFkQ0JOWlhOellXZGxMbHh1SUNwY2JpQXFJRkJzWVdObFpDQmhablJsY2lCMGFHVWdZR2x1Y0hWMFlDQnBibk5wWkdVZ2RHaGxJR1p2Y20wZ1ozSnZkWEF1SUVOaGJpQmlaU0JwYm1admNtMWhkR2x2YmlCeVpXeGhkR2x1WjF4dUlDb2dkRzhnZEdobElHQnBibkIxZEdBc0lHOXlJR05oYmlCaVpTQmhJSE4wWVhSbFpuVnNJRzFsYzNOaFoyVXVYRzRnS2k5Y2JpNWpiMmx1Y3kxc2IyZHZiaTEzYVdSblpYUXRhVzV3ZFhRdGJXVnpjMkZuWlNCN1hHNGdJQ0FnWkdsemNHeGhlVG9nWW14dlkyczdYRzRnSUNBZ1ptOXVkQzF6YVhwbE9pQTRNQ1U3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SURFdU1qVTdYRzRnSUNBZ2JXRnlaMmx1T2lBdU16TXpaVzBnTUNBd08xeHVJQ0FnSUhCaFpHUnBibWN0YkdWbWREb2diblJvS0cxaGNDMW5aWFFvSkdOdmFXNXpMV3h2WjI5dUxYZHBaR2RsZEN3Z0ozQmhaR1JwYm1jbktTd2dNaWtnTHlBdU9EdGNibjFjYmx4dUx5b2dQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDFjYmlBZ0lFSjFkSFJ2Ym5OY2JpQWdJRDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5SUNvdlhHNWNiaThxS2x4dUlDb2dRblYwZEc5dUlHZHliM1Z3YzF4dUlDcGNiaUFxSUZkeVlYQndaWElnWm05eUlIUjNieUJ2Y2lCdGIzSmxJR0oxZEhSdmJuTXVYRzRnS2k5Y2JpNWpiMmx1Y3kxc2IyZHZiaTEzYVdSblpYUXRZblYwZEc5dUxXZHliM1Z3SUh0Y2JpQWdJQ0JBYVc1amJIVmtaU0F0WTI5cGJuTXRiRzluYjI0dGQybGtaMlYwTFdOc1pXRnlabWw0TzF4dVhHNGdJQ0FnSkdodmNtbDZiMjUwWVd3dGMzQmhZMmx1WnpvZ2JuUm9LRzFoY0MxblpYUW9KR052YVc1ekxXeHZaMjl1TFhkcFpHZGxkQ3dnSjNCaFpHUnBibWNuS1N3Z01pazdYRzVjYmlBZ0lDQnRZWEpuYVc0dFltOTBkRzl0T2lBdE1DNDFJQ29nSkdodmNtbDZiMjUwWVd3dGMzQmhZMmx1Wnp0Y2JseHVJQ0FnSUM1amIybHVjeTFzYjJkdmJpMTNhV1JuWlhRdFluVjBkRzl1SUh0Y2JpQWdJQ0FnSUNBZ1pteHZZWFE2SUd4bFpuUTdYRzRnSUNBZ0lDQWdJRzFoY21kcGJpMXlhV2RvZERvZ01DNDFJQ29nSkdodmNtbDZiMjUwWVd3dGMzQmhZMmx1Wnp0Y2JpQWdJQ0FnSUNBZ2JXRnlaMmx1TFdKdmRIUnZiVG9nTUM0MUlDb2dKR2h2Y21sNmIyNTBZV3d0YzNCaFkybHVaenRjYmlBZ0lDQjlYRzU5WEc1Y2JpOHFLbHh1SUNvZ1FtRnpaU0JpZFhSMGIyNHVYRzRnS2x4dUlDb2dRbUZ6YVdNZ1luVjBkRzl1SUhOMGVXeHBibWNzSUhKbGNYVnBjbVZrSUdKNUlHVjJaWEo1SUdKMWRIUnZiaTRnUVNCdGIyUnBabWxsY2lCamJHRnpjeUFvSjNCeWFXMWhjbmtuWEc0Z0tpQnZjaUFuYzJWamIyNWtZWEo1SnlrZ2FYTWdjbVZ4ZFdseVpXUWdabTl5SUhCeWIzQmxjaUJqYjJ4dmNtbHVaeTVjYmlBcUwxeHVMbU52YVc1ekxXeHZaMjl1TFhkcFpHZGxkQzFpZFhSMGIyNGdlMXh1SUNBZ0lHSnZjbVJsY2pvZ2RHaHBiaUJ6YjJ4cFpDQjBjbUZ1YzNCaGNtVnVkRHRjYmlBZ0lDQmliM0prWlhJdGNtRmthWFZ6T2lCdFlYQXRaMlYwS0NSamIybHVjeTFzYjJkdmJpMTNhV1JuWlhRc0lDZGliM0prWlhJdGNtRmthWFZ6SnlrN1hHNGdJQ0FnWTNWeWMyOXlPaUJ3YjJsdWRHVnlPMXh1SUNBZ0lHUnBjM0JzWVhrNklHbHViR2x1WlMxaWJHOWphenRjYmlBZ0lDQm1iMjUwTFdaaGJXbHNlVG9nYVc1b1pYSnBkRHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJREV3TUNVN1hHNGdJQ0FnWm05dWRDMTNaV2xuYUhRNklHbHVhR1Z5YVhRN1hHNGdJQ0FnYkdsdVpTMW9aV2xuYUhRNklHbHVhR1Z5YVhRN1hHNGdJQ0FnY0dGa1pHbHVaem9nYldGd0xXZGxkQ2drWTI5cGJuTXRiRzluYjI0dGQybGtaMlYwTENBbmNHRmtaR2x1WnljcE8xeHVJQ0FnSUhSbGVIUXRaR1ZqYjNKaGRHbHZiam9nYm05dVpUdGNiaUFnSUNCMGNtRnVjMmwwYVc5dUxXUjFjbUYwYVc5dU9pQnRZWEF0WjJWMEtDUmpiMmx1Y3kxc2IyZHZiaTEzYVdSblpYUXNJQ2QwY21GdWMybDBhVzl1TFdSMWNtRjBhVzl1SnlrN1hHNGdJQ0FnZEhKaGJuTnBkR2x2Ymkxd2NtOXdaWEowZVRvZ1ltRmphMmR5YjNWdVpDd2dZbTk0TFhOb1lXUnZkeXdnWTI5c2IzSTdYRzVjYmlBZ0lDQW1PbVp2WTNWeklIdGNiaUFnSUNBZ0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBd0lEQWdMakpsYlNCdFlYQXRaMlYwS0NSamIybHVjeTFzYjJkdmJpMTNhV1JuWlhRdFkyOXNiM0p6TENBbllXTjBhWFpsSnlrN1hHNGdJQ0FnSUNBZ0lHOTFkR3hwYm1VNklHNXZibVU3WEc0Z0lDQWdmVnh1ZlZ4dVhHNHZLaXBjYmlBcUlFSjFkSFJ2YmlCamIyeHZjaUJ0YjJScFptbGxjbk11WEc0Z0tpOWNia0JsWVdOb0lDUjJZWEpwWVhScGIyNGdhVzRnY0hKcGJXRnllU3dnYzJWamIyNWtZWEo1SUh0Y2JpQWdJQ0F1WTI5cGJuTXRiRzluYjI0dGQybGtaMlYwTFdKMWRIUnZiaTBqZXlSMllYSnBZWFJwYjI1OUlIdGNiaUFnSUNBZ0lDQWdKR0poWTJ0bmNtOTFibVE2SUcxaGNDMW5aWFFvSkdOdmFXNXpMV3h2WjI5dUxYZHBaR2RsZEMxamIyeHZjbk1zSUNkaWRYUjBiMjR0STNza2RtRnlhV0YwYVc5dWZTMWlZV05yWjNKdmRXNWtKeWs3WEc0Z0lDQWdJQ0FnSUNSamIyeHZjam9nYldGd0xXZGxkQ2drWTI5cGJuTXRiRzluYjI0dGQybGtaMlYwTFdOdmJHOXljeXdnSjJKMWRIUnZiaTBqZXlSMllYSnBZWFJwYjI1OUxXTnZiRzl5SnlrN1hHNGdJQ0FnSUNBZ0lHSmhZMnRuY205MWJtUTZJQ1JpWVdOclozSnZkVzVrTzF4dUlDQWdJQ0FnSUNCamIyeHZjam9nSkdOdmJHOXlPMXh1WEc0Z0lDQWdJQ0FnSUNZNlptOWpkWE1zWEc0Z0lDQWdJQ0FnSUNZNmFHOTJaWElzWEc0Z0lDQWdJQ0FnSUNZNllXTjBhWFpsSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR0poWTJ0bmNtOTFibVE2SUdSaGNtdGxiaWdrWW1GamEyZHliM1Z1WkN3Z01UQWxLVHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHTnZiRzl5T2lBa1kyOXNiM0k3WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0I5WEc1OVhHNWNiaThxSUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVhHNGdJQ0JPYjNScFptbGpZWFJwYjI1elhHNGdJQ0E5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFNBcUwxeHVYRzR1WTI5cGJuTXRiRzluYjI0dGQybGtaMlYwTFc1dmRHbG1hV05oZEdsdmJpQjdYRzRnSUNBZ0pHTnZiRzl5T2lCdFlYQXRaMlYwS0NSamIybHVjeTFzYjJkdmJpMTNhV1JuWlhRdFkyOXNiM0p6TENBbmJtOTBhV1pwWTJGMGFXOXVMV052Ykc5eUp5azdYRzVjYmlBZ0lDQmliM0prWlhJdGNtRmthWFZ6T2lCdFlYQXRaMlYwS0NSamIybHVjeTFzYjJkdmJpMTNhV1JuWlhRc0lDZGliM0prWlhJdGNtRmthWFZ6SnlrN1hHNGdJQ0FnWTI5c2IzSTZJQ1JqYjJ4dmNqdGNiaUFnSUNCdFlYSm5hVzR0WW05MGRHOXRPaUF4WlcwN1hHNGdJQ0FnY0dGa1pHbHVaem9nYldGd0xXZGxkQ2drWTI5cGJuTXRiRzluYjI0dGQybGtaMlYwTENBbmNHRmtaR2x1WnljcE8xeHVYRzRnSUNBZ1lTQjdYRzRnSUNBZ0lDQWdJR1p2Ym5RdGQyVnBaMmgwT2lCdFlYQXRaMlYwS0NSamIybHVjeTFzYjJkdmJpMTNhV1JuWlhRc0lDZG1iMjUwTFhkbGFXZG9kQ2NwTzF4dUlDQWdJQ0FnSUNCc1pYUjBaWEl0YzNCaFkybHVaem9nTUR0Y2JpQWdJQ0FnSUNBZ2RHVjRkQzFrWldOdmNtRjBhVzl1T2lCMWJtUmxjbXhwYm1VN1hHNWNiaUFnSUNBZ0lDQWdKaXhjYmlBZ0lDQWdJQ0FnSmpwc2FXNXJMRnh1SUNBZ0lDQWdJQ0FtT25acGMybDBaV1FzWEc0Z0lDQWdJQ0FnSUNZNlptOWpkWE1zWEc0Z0lDQWdJQ0FnSUNZNmFHOTJaWElzWEc0Z0lDQWdJQ0FnSUNZNllXTjBhWFpsSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ykc5eU9pQWtZMjlzYjNJN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdKanBtYjJOMWN5eGNiaUFnSUNBZ0lDQWdKanBvYjNabGNpeGNiaUFnSUNBZ0lDQWdKanBoWTNScGRtVWdlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2IzQmhZMmwwZVRvZ0xqa3lPMXh1SUNBZ0lDQWdJQ0I5WEc0Z0lDQWdmVnh1ZlZ4dVhHNUFaV0ZqYUNBa2MzUmhkR1VnYVc0Z0oyVnljbTl5Snl3Z0ozTjFZMk5sYzNNbklIdGNiaUFnSUNBdVkyOXBibk10Ykc5bmIyNHRkMmxrWjJWMExXNXZkR2xtYVdOaGRHbHZiaTBqZXlSemRHRjBaWDBnZTF4dUlDQWdJQ0FnSUNCaVlXTnJaM0p2ZFc1a09pQnRZWEF0WjJWMEtDUmpiMmx1Y3kxc2IyZHZiaTEzYVdSblpYUXRZMjlzYjNKekxDQWtjM1JoZEdVcE8xeHVJQ0FnSUgxY2JuMWNibHh1THlvZ1BUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMWNiaUFnSUZOMFlYUjFjMXh1SUNBZ1BUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMGdLaTljYmx4dUxtTnZhVzV6TFd4dloyOXVMWGRwWkdkbGRDMXpkR0YwZFhNZ2UxeHVJQ0FnSUdOdmJHOXlPaUJ0WVhBdFoyVjBLQ1JqYjJsdWN5MXNiMmR2YmkxM2FXUm5aWFF0WTI5c2IzSnpMQ0FuYkdGaVpXd25LVHRjYmlBZ0lDQm1iRzloZERvZ2JHVm1kRHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nYVc1b1pYSnBkRHRjYmlBZ0lDQnRZWEpuYVc0NklEQTdYRzRnSUNBZ2NHRmtaR2x1WnpvZ0xqVmxiU0J1ZEdnb2JXRndMV2RsZENna1kyOXBibk10Ykc5bmIyNHRkMmxrWjJWMExDQW5jR0ZrWkdsdVp5Y3BMQ0F5S1NBd0lEQTdYRzU5WEc1Y2JpOHFJRDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5WEc0Z0lDQkpibVJwWTJGMGIzSmNiaUFnSUQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOUlDb3ZYRzVjYmk4cUtseHVJQ29nUVc1cGJXRjBhVzVuSUd4dllXUmxjaUJwYm1ScFkyRjBiM0lnZFhOcGJtY2dVMVpITGx4dUlDcGNiaUFxSUVCN1FHeHBibXNnSUdoMGRIQTZMeTlqYjJSbGNHVnVMbWx2TDJwamVtbHRiUzl3Wlc0dmRrVkNjRzlNZlZ4dUlDb3ZYRzR1WTI5cGJuTXRiRzluYjI0dGQybGtaMlYwTFdsdVpHbGpZWFJ2Y2lCN1hHNGdJQ0FnSkhkcFpIUm9PaUEwTUhCNE8xeHVYRzRnSUNBZ1ltOTBkRzl0T2lBd08xeHVJQ0FnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNiaUFnSUNCb1pXbG5hSFE2SUNSM2FXUjBhRHRjYmlBZ0lDQnNaV1owT2lBd08xeHVJQ0FnSUc5d1lXTnBkSGs2SURBN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUdGaWMyOXNkWFJsTzF4dUlDQWdJSGRwWkhSb09pQWtkMmxrZEdnN1hHNWNiaUFnSUNCemRtY2dlMXh1SUNBZ0lDQWdJQ0JoYm1sdFlYUnBiMjQ2SUhKdmRHRjBaU0F5TlRBd2JYTWdiR2x1WldGeUlHbHVabWx1YVhSbE8xeHVJQ0FnSUNBZ0lDQm9aV2xuYUhRNklDUjNhV1IwYUR0Y2JpQWdJQ0FnSUNBZ2QybGtkR2c2SUNSM2FXUjBhRHRjYmlBZ0lDQjlYRzRnSUNBZ1kybHlZMnhsSUh0Y2JpQWdJQ0FnSUNBZ1lXNXBiV0YwYVc5dU9pQmtZWE5vSURJd01EQnRjeUJsWVhObExXbHVMVzkxZENCcGJtWnBibWwwWlR0Y2JpQWdJQ0FnSUNBZ2MzUnliMnRsT2lCdFlYQXRaMlYwS0NSamIybHVjeTFzYjJkdmJpMTNhV1JuWlhRdFkyOXNiM0p6TENBbmJHRmlaV3duS1R0Y2JpQWdJQ0FnSUNBZ2MzUnliMnRsTFdSaGMyaGhjbkpoZVRvZ01Td2dNakF3TzF4dUlDQWdJQ0FnSUNCemRISnZhMlV0WkdGemFHOW1abk5sZERvZ01EdGNiaUFnSUNBZ0lDQWdjM1J5YjJ0bExXeHBibVZqWVhBNklISnZkVzVrTzF4dUlDQWdJSDFjYm4xY2JseHVRR3RsZVdaeVlXMWxjeUJ5YjNSaGRHVWdlMXh1SUNBZ0lERXdNQ1VnZTF4dUlDQWdJQ0FnSUNCMGNtRnVjMlp2Y20wNklISnZkR0YwWlNnek5qQmtaV2NwTzF4dUlDQWdJSDFjYm4xY2JrQnJaWGxtY21GdFpYTWdaR0Z6YUNCN1hHNGdJQ0FnTUNVZ2UxeHVJQ0FnSUNBZ0lDQnpkSEp2YTJVdFpHRnphR0Z5Y21GNU9pQXhMQ0F5TURBN1hHNGdJQ0FnSUNBZ0lITjBjbTlyWlMxa1lYTm9iMlptYzJWME9pQXdPMXh1SUNBZ0lIMWNiaUFnSUNBMU1DVWdlMXh1SUNBZ0lDQWdJQ0J6ZEhKdmEyVXRaR0Z6YUdGeWNtRjVPaUE0T1N3Z01qQXdPMXh1SUNBZ0lDQWdJQ0J6ZEhKdmEyVXRaR0Z6YUc5bVpuTmxkRG9nTFRNMU8xeHVJQ0FnSUgxY2JpQWdJQ0F4TURBbElIdGNiaUFnSUNBZ0lDQWdjM1J5YjJ0bExXUmhjMmhoY25KaGVUb2dPRGtzSURJd01EdGNiaUFnSUNBZ0lDQWdjM1J5YjJ0bExXUmhjMmh2Wm1aelpYUTZJQzB4TWpRN1hHNGdJQ0FnZlZ4dWZWeHVYRzR2S2lBOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBWeHVJQ0FnUm05eWJTQlRkR0YwWlhOY2JpQWdJRDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5UFQwOVBUMDlQVDA5SUNvdlhHNWNiaVZqYjJsdWN5MXNiMmR2YmkxM2FXUm5aWFF0Wm05eWJTMW5jbTkxY0MxemRHRjBaU0I3WEc0Z0lDQWdMbU52YVc1ekxXeHZaMjl1TFhkcFpHZGxkQzFwYm5CMWRDQjdYRzRnSUNBZ0lDQWdJSEJoWkdScGJtY3RjbWxuYUhRNklESmxiVHRjYmlBZ0lDQjlYRzU5WEc0dkx5OGdTWFJsY21GMFpTQnZkbVZ5WEc1QVpXRmphQ0FrYzNSaGRHVXNJQ1J6ZVcxaWIyd2dhVzRnS0dWeWNtOXlPaUFuNHB5WUp5d2djM1ZqWTJWemN6b2dKK0tjbENjcElIdGNiaUFnSUNBdVkyOXBibk10Ykc5bmIyNHRkMmxrWjJWMExXWnZjbTB0WjNKdmRYQXRJM3NrYzNSaGRHVjlJSHRjYmlBZ0lDQWdJQ0FnUUdWNGRHVnVaQ0FsWTI5cGJuTXRiRzluYjI0dGQybGtaMlYwTFdadmNtMHRaM0p2ZFhBdGMzUmhkR1U3WEc1Y2JpQWdJQ0FnSUNBZ0pHTnZiRzl5T2lCdFlYQXRaMlYwS0NSamIybHVjeTFzYjJkdmJpMTNhV1JuWlhRdFkyOXNiM0p6TENBa2MzUmhkR1VwTzF4dVhHNGdJQ0FnSUNBZ0lDNWpiMmx1Y3kxc2IyZHZiaTEzYVdSblpYUXRhVzV3ZFhRZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQWtZMjlzYjNJN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNBZ0lDQWdMbU52YVc1ekxXeHZaMjl1TFhkcFpHZGxkQzFwWTI5dUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUdOdmJHOXlPaUFrWTI5c2IzSTdYRzVjYmlBZ0lDQWdJQ0FnSUNBZ0lDWTZZV1owWlhJZ2UxeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lHTnZiblJsYm5RNklDUnplVzFpYjJ3N1hHNGdJQ0FnSUNBZ0lDQWdJQ0I5WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUNBZ0xtTnZhVzV6TFd4dloyOXVMWGRwWkdkbGRDMXBibkIxZEMxdFpYTnpZV2RsSUh0Y2JpQWdJQ0FnSUNBZ0lDQWdJR052Ykc5eU9pQWtZMjlzYjNJN1hHNGdJQ0FnSUNBZ0lIMWNiaUFnSUNCOVhHNTlYRzVjYmk4cUtseHVJQ29nVEc5aFpHbHVaeTVjYmlBcVhHNGdLaUJUYUc5M0lIUm9aU0JzYjJGa2FXNW5JR2x1WkdsallYUnZjaTVjYmlBcUwxeHVMbU52YVc1ekxXeHZaMjl1TFhkcFpHZGxkQzFtYjNKdExXeHZZV1JwYm1jZ2UxeHVJQ0FnSUM1amIybHVjeTFzYjJkdmJp