637 lines
133 KiB
JavaScript
Executable File
637 lines
133 KiB
JavaScript
Executable File
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({"./src/main.js":[function(require,module,exports){
|
|
(function (global){
|
|
var React = global.React || require('react');
|
|
var Formsy = {};
|
|
var validationRules = require('./validationRules.js');
|
|
var utils = require('./utils.js');
|
|
var Mixin = require('./Mixin.js');
|
|
var options = {};
|
|
|
|
Formsy.Mixin = Mixin;
|
|
|
|
Formsy.defaults = function (passedOptions) {
|
|
options = passedOptions;
|
|
};
|
|
|
|
Formsy.addValidationRule = function (name, func) {
|
|
validationRules[name] = func;
|
|
};
|
|
|
|
Formsy.Form = React.createClass({displayName: "Form",
|
|
getInitialState: function () {
|
|
return {
|
|
isValid: true,
|
|
isSubmitting: false,
|
|
canChange: false
|
|
};
|
|
},
|
|
getDefaultProps: function () {
|
|
return {
|
|
headers: {},
|
|
onSuccess: function () {},
|
|
onError: function () {},
|
|
onSubmit: function () {},
|
|
onValidSubmit: function () {},
|
|
onInvalidSubmit: function () {},
|
|
onSubmitted: function () {},
|
|
onValid: function () {},
|
|
onInvalid: function () {},
|
|
onChange: function () {}
|
|
};
|
|
},
|
|
|
|
// Add a map to store the inputs of the form, a model to store
|
|
// the values of the form and register child inputs
|
|
componentWillMount: function () {
|
|
this.inputs = {};
|
|
this.model = {};
|
|
this.registerInputs(this.props.children);
|
|
},
|
|
|
|
componentDidMount: function () {
|
|
this.validateForm();
|
|
},
|
|
|
|
componentWillUpdate: function () {
|
|
var inputKeys = Object.keys(this.inputs);
|
|
|
|
// The updated children array is not available here for some reason,
|
|
// we need to wait for next event loop
|
|
setTimeout(function () {
|
|
|
|
// The component might have been unmounted on an
|
|
// update
|
|
if (this.isMounted()) {
|
|
|
|
this.registerInputs(this.props.children);
|
|
|
|
if (this.props.validationErrors) {
|
|
this.setInputValidationErrors(this.props.validationErrors);
|
|
}
|
|
|
|
var newInputKeys = Object.keys(this.inputs);
|
|
if (utils.arraysDiffer(inputKeys, newInputKeys)) {
|
|
this.validateForm();
|
|
}
|
|
|
|
}
|
|
|
|
}.bind(this), 0);
|
|
},
|
|
|
|
// Update model, submit to url prop and send the model
|
|
submit: function (event) {
|
|
event.preventDefault();
|
|
|
|
// Trigger form as not pristine.
|
|
// If any inputs have not been touched yet this will make them dirty
|
|
// so validation becomes visible (if based on isPristine)
|
|
this.setFormPristine(false);
|
|
|
|
// To support use cases where no async or request operation is needed.
|
|
// The "onSubmit" callback is called with the model e.g. {fieldName: "myValue"},
|
|
// if wanting to reset the entire form to original state, the second param is a callback for this.
|
|
if (!this.props.url) {
|
|
this.updateModel();
|
|
var model = this.mapModel();
|
|
this.props.onSubmit(model, this.resetModel, this.updateInputsWithError);
|
|
this.state.isValid ? this.props.onValidSubmit(model, this.resetModel) : this.props.onInvalidSubmit(model, this.resetModel);
|
|
return;
|
|
}
|
|
|
|
this.updateModel();
|
|
this.setState({
|
|
isSubmitting: true
|
|
});
|
|
|
|
this.props.onSubmit(this.mapModel(), this.resetModel, this.updateInputsWithError);
|
|
|
|
var headers = (Object.keys(this.props.headers).length && this.props.headers) || options.headers || {};
|
|
|
|
var method = this.props.method && utils.ajax[this.props.method.toLowerCase()] ? this.props.method.toLowerCase() : 'post';
|
|
utils.ajax[method](this.props.url, this.mapModel(), this.props.contentType || options.contentType || 'json', headers)
|
|
.then(function (response) {
|
|
this.props.onSuccess(response);
|
|
this.props.onSubmitted();
|
|
}.bind(this))
|
|
.catch(this.failSubmit);
|
|
},
|
|
|
|
mapModel: function () {
|
|
return this.props.mapping ? this.props.mapping(this.model) : this.model;
|
|
},
|
|
|
|
// Goes through all registered components and
|
|
// updates the model values
|
|
updateModel: function () {
|
|
Object.keys(this.inputs).forEach(function (name) {
|
|
var component = this.inputs[name];
|
|
this.model[name] = component.state._value;
|
|
}.bind(this));
|
|
},
|
|
|
|
// Reset each key in the model to the original / initial value
|
|
resetModel: function () {
|
|
Object.keys(this.inputs).forEach(function (name) {
|
|
this.inputs[name].resetValue();
|
|
}.bind(this));
|
|
this.validateForm();
|
|
},
|
|
|
|
setInputValidationErrors: function (errors) {
|
|
Object.keys(this.inputs).forEach(function (name, index) {
|
|
var component = this.inputs[name];
|
|
var args = [{
|
|
_isValid: !(name in errors),
|
|
_serverError: errors[name]
|
|
}];
|
|
component.setState.apply(component, args);
|
|
}.bind(this));
|
|
},
|
|
|
|
// Go through errors from server and grab the components
|
|
// stored in the inputs map. Change their state to invalid
|
|
// and set the serverError message
|
|
updateInputsWithError: function (errors) {
|
|
Object.keys(errors).forEach(function (name, index) {
|
|
var component = this.inputs[name];
|
|
|
|
if (!component) {
|
|
throw new Error('You are trying to update an input that does not exists. Verify errors object with input names. ' + JSON.stringify(errors));
|
|
}
|
|
|
|
var args = [{
|
|
_isValid: false,
|
|
_serverError: errors[name]
|
|
}];
|
|
component.setState.apply(component, args);
|
|
}.bind(this));
|
|
},
|
|
|
|
failSubmit: function (errors) {
|
|
this.updateInputsWithError(errors);
|
|
this.setState({
|
|
isSubmitting: false
|
|
});
|
|
this.props.onError(errors);
|
|
this.props.onSubmitted();
|
|
},
|
|
|
|
// Traverse the children and children of children to find
|
|
// all inputs by checking the name prop. Maybe do a better
|
|
// check here
|
|
registerInputs: function (children) {
|
|
React.Children.forEach(children, function (child) {
|
|
|
|
if (child && child.props && child.props.name) {
|
|
child.props._attachToForm = this.attachToForm;
|
|
child.props._detachFromForm = this.detachFromForm;
|
|
child.props._validate = this.validate;
|
|
child.props._isFormDisabled = this.isFormDisabled;
|
|
child.props._isValidValue = this.runValidation;
|
|
}
|
|
|
|
if (child && child.props && child.props.children) {
|
|
this.registerInputs(child.props.children);
|
|
}
|
|
|
|
}.bind(this));
|
|
},
|
|
|
|
isFormDisabled: function () {
|
|
return this.props.disabled;
|
|
},
|
|
|
|
getCurrentValues: function () {
|
|
return Object.keys(this.inputs).reduce(function (data, name) {
|
|
var component = this.inputs[name];
|
|
data[name] = component.state._value;
|
|
return data;
|
|
}.bind(this), {});
|
|
},
|
|
|
|
setFormPristine: function (isPristine) {
|
|
var inputs = this.inputs;
|
|
var inputKeys = Object.keys(inputs);
|
|
|
|
// Iterate through each component and set it as pristine
|
|
// or "dirty".
|
|
inputKeys.forEach(function (name, index) {
|
|
var component = inputs[name];
|
|
component.setState({
|
|
_isPristine: isPristine
|
|
});
|
|
}.bind(this));
|
|
},
|
|
|
|
// Use the binded values and the actual input value to
|
|
// validate the input and set its state. Then check the
|
|
// state of the form itself
|
|
validate: function (component) {
|
|
|
|
// Trigger onChange
|
|
if (this.state.canChange) {
|
|
this.props.onChange(this.getCurrentValues());
|
|
}
|
|
|
|
if (!component.props.required && !component._validations) {
|
|
return;
|
|
}
|
|
|
|
// Run through the validations, split them up and call
|
|
// the validator IF there is a value or it is required
|
|
var isValid = this.runValidation(component);
|
|
|
|
component.setState({
|
|
_isValid: isValid,
|
|
_serverError: null
|
|
}, this.validateForm);
|
|
|
|
},
|
|
|
|
// Checks validation on current value or a passed value
|
|
runValidation: function (component, value) {
|
|
|
|
var isValid = true;
|
|
|
|
value = arguments.length === 2 ? value : component.state._value;
|
|
if (component._validations.length && (component.props.required || value !== '')) {
|
|
component._validations.split(/\,(?![^{\[]*[}\]])/g).forEach(function (validation) {
|
|
var args = validation.split(':');
|
|
var validateMethod = args.shift();
|
|
args = args.map(function (arg) {
|
|
try {
|
|
return JSON.parse(arg);
|
|
} catch (e) {
|
|
return arg; // It is a string if it can not parse it
|
|
}
|
|
});
|
|
args = [value].concat(args);
|
|
if (!validationRules[validateMethod]) {
|
|
throw new Error('Formsy does not have the validation rule: ' + validateMethod);
|
|
}
|
|
if (!validationRules[validateMethod].apply(this.getCurrentValues(), args)) {
|
|
isValid = false;
|
|
}
|
|
}.bind(this));
|
|
}
|
|
return isValid;
|
|
},
|
|
|
|
// Validate the form by going through all child input components
|
|
// and check their state
|
|
validateForm: function () {
|
|
var allIsValid = true;
|
|
var inputs = this.inputs;
|
|
var inputKeys = Object.keys(inputs);
|
|
|
|
// We need a callback as we are validating all inputs again. This will
|
|
// run when the last component has set its state
|
|
var onValidationComplete = function () {
|
|
inputKeys.forEach(function (name) {
|
|
if (!inputs[name].state._isValid) {
|
|
allIsValid = false;
|
|
}
|
|
}.bind(this));
|
|
|
|
this.setState({
|
|
isValid: allIsValid
|
|
});
|
|
|
|
if (allIsValid) {
|
|
this.props.onValid();
|
|
} else {
|
|
this.props.onInvalid();
|
|
}
|
|
|
|
// Tell the form that it can start to trigger change events
|
|
this.setState({
|
|
canChange: true
|
|
});
|
|
|
|
}.bind(this);
|
|
|
|
// Run validation again in case affected by other inputs. The
|
|
// last component validated will run the onValidationComplete callback
|
|
inputKeys.forEach(function (name, index) {
|
|
var component = inputs[name];
|
|
var isValid = this.runValidation(component);
|
|
component.setState({
|
|
_isValid: isValid,
|
|
_serverError: null
|
|
}, index === inputKeys.length - 1 ? onValidationComplete : null);
|
|
}.bind(this));
|
|
|
|
// If there are no inputs, set state where form is ready to trigger
|
|
// change event. New inputs might be added later
|
|
if (!inputKeys.length && this.isMounted()) {
|
|
this.setState({
|
|
canChange: true
|
|
});
|
|
}
|
|
},
|
|
|
|
// Method put on each input component to register
|
|
// itself to the form
|
|
attachToForm: function (component) {
|
|
this.inputs[component.props.name] = component;
|
|
this.model[component.props.name] = component.state._value;
|
|
this.validate(component);
|
|
},
|
|
|
|
// Method put on each input component to unregister
|
|
// itself from the form
|
|
detachFromForm: function (component) {
|
|
delete this.inputs[component.props.name];
|
|
delete this.model[component.props.name];
|
|
},
|
|
render: function () {
|
|
|
|
return React.DOM.form({
|
|
onSubmit: this.submit,
|
|
className: this.props.className
|
|
},
|
|
this.props.children
|
|
);
|
|
|
|
}
|
|
});
|
|
|
|
if (!global.exports && !global.module && (!global.define || !global.define.amd)) {
|
|
global.Formsy = Formsy;
|
|
}
|
|
|
|
module.exports = Formsy;
|
|
|
|
|
|
|
|
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
|
|
|
|
},{"./Mixin.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/Mixin.js","./utils.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/utils.js","./validationRules.js":"/Users/christianalfoni/Documents/dev/formsy-react/src/validationRules.js","react":"react"}],"/Users/christianalfoni/Documents/dev/formsy-react/src/Mixin.js":[function(require,module,exports){
|
|
module.exports = {
|
|
getInitialState: function () {
|
|
var value = 'value' in this.props ? this.props.value : '';
|
|
return {
|
|
_value: value,
|
|
_isValid: true,
|
|
_isPristine: true,
|
|
_pristineValue: value
|
|
};
|
|
},
|
|
componentWillMount: function () {
|
|
|
|
var configure = function () {
|
|
this.setValidations(this.props.validations, this.props.required);
|
|
this.props._attachToForm(this);
|
|
}.bind(this);
|
|
|
|
if (!this.props.name) {
|
|
throw new Error('Form Input requires a name property when used');
|
|
}
|
|
|
|
if (!this.props._attachToForm) {
|
|
return setTimeout(function () {
|
|
if (!this.isMounted()) return;
|
|
if (!this.props._attachToForm) {
|
|
throw new Error('Form Mixin requires component to be nested in a Form');
|
|
}
|
|
configure();
|
|
}.bind(this), 0);
|
|
}
|
|
configure();
|
|
|
|
},
|
|
|
|
// We have to make the validate method is kept when new props are added
|
|
componentWillReceiveProps: function (nextProps) {
|
|
nextProps._attachToForm = this.props._attachToForm;
|
|
nextProps._detachFromForm = this.props._detachFromForm;
|
|
nextProps._validate = this.props._validate;
|
|
this.setValidations(nextProps.validations, nextProps.required);
|
|
},
|
|
|
|
componentDidUpdate: function (prevProps, prevState) {
|
|
|
|
var isValueChanged = function () {
|
|
|
|
return (
|
|
this.props.value !== prevProps.value && (
|
|
this.state._value === prevProps.value ||
|
|
|
|
// Since undefined is converted to empty string we have to
|
|
// check that specifically
|
|
(this.state._value === '' && prevProps.value === undefined)
|
|
)
|
|
);
|
|
|
|
}.bind(this);
|
|
|
|
|
|
// If validations has changed or something outside changes
|
|
// the value, set the value again running a validation
|
|
|
|
if (prevProps.validations !== this.props.validations || isValueChanged()) {
|
|
var value = 'value' in this.props ? this.props.value : '';
|
|
this.setValue(value);
|
|
}
|
|
},
|
|
|
|
// Detach it when component unmounts
|
|
componentWillUnmount: function () {
|
|
this.props._detachFromForm(this);
|
|
},
|
|
|
|
setValidations: function (validations, required) {
|
|
|
|
// Add validations to the store itself as the props object can not be modified
|
|
this._validations = validations || '';
|
|
|
|
if (required) {
|
|
this._validations = validations ? validations + ',' : '';
|
|
this._validations += 'isValue';
|
|
}
|
|
|
|
},
|
|
|
|
// We validate after the value has been set
|
|
setValue: function (value) {
|
|
this.setState({
|
|
_value: value,
|
|
_isPristine: false
|
|
}, function () {
|
|
this.props._validate(this);
|
|
}.bind(this));
|
|
},
|
|
resetValue: function () {
|
|
this.setState({
|
|
_value: this.state._pristineValue,
|
|
_isPristine: true
|
|
}, function () {
|
|
this.props._validate(this);
|
|
});
|
|
},
|
|
getValue: function () {
|
|
return this.state._value;
|
|
},
|
|
hasValue: function () {
|
|
return this.state._value !== '';
|
|
},
|
|
getErrorMessage: function () {
|
|
return this.isValid() || this.showRequired() ? null : this.state._serverError || this.props.validationError;
|
|
},
|
|
isFormDisabled: function () {
|
|
return this.props._isFormDisabled();
|
|
},
|
|
isValid: function () {
|
|
return this.state._isValid;
|
|
},
|
|
isPristine: function () {
|
|
return this.state._isPristine;
|
|
},
|
|
isRequired: function () {
|
|
return !!this.props.required;
|
|
},
|
|
showRequired: function () {
|
|
return this.isRequired() && this.state._value === '';
|
|
},
|
|
showError: function () {
|
|
return !this.showRequired() && !this.state._isValid;
|
|
},
|
|
isValidValue: function (value) {
|
|
return this.props._isValidValue.call(null, this, value);
|
|
}
|
|
};
|
|
|
|
|
|
|
|
},{}],"/Users/christianalfoni/Documents/dev/formsy-react/src/utils.js":[function(require,module,exports){
|
|
var csrfTokenSelector = typeof document != 'undefined' ? document.querySelector('meta[name="csrf-token"]') : null;
|
|
|
|
var toURLEncoded = function (element, key, list) {
|
|
var list = list || [];
|
|
if (typeof (element) == 'object') {
|
|
for (var idx in element)
|
|
toURLEncoded(element[idx], key ? key + '[' + idx + ']' : idx, list);
|
|
} else {
|
|
list.push(key + '=' + encodeURIComponent(element));
|
|
}
|
|
return list.join('&');
|
|
};
|
|
|
|
var request = function (method, url, data, contentType, headers) {
|
|
|
|
var contentType = contentType === 'urlencoded' ? 'application/' + contentType.replace('urlencoded', 'x-www-form-urlencoded') : 'application/json';
|
|
data = contentType === 'application/json' ? JSON.stringify(data) : toURLEncoded(data);
|
|
|
|
return new Promise(function (resolve, reject) {
|
|
try {
|
|
var xhr = new XMLHttpRequest();
|
|
xhr.open(method, url, true);
|
|
xhr.setRequestHeader('Accept', 'application/json');
|
|
xhr.setRequestHeader('Content-Type', contentType);
|
|
|
|
if (!!csrfTokenSelector && !!csrfTokenSelector.content) {
|
|
xhr.setRequestHeader('X-CSRF-Token', csrfTokenSelector.content);
|
|
}
|
|
|
|
// Add passed headers
|
|
Object.keys(headers).forEach(function (header) {
|
|
xhr.setRequestHeader(header, headers[header]);
|
|
});
|
|
|
|
xhr.onreadystatechange = function () {
|
|
if (xhr.readyState === 4) {
|
|
|
|
try {
|
|
var response = xhr.responseText ? JSON.parse(xhr.responseText) : null;
|
|
if (xhr.status >= 200 && xhr.status < 300) {
|
|
resolve(response);
|
|
} else {
|
|
reject(response);
|
|
}
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
|
|
}
|
|
};
|
|
xhr.send(data);
|
|
} catch (e) {
|
|
reject(e);
|
|
}
|
|
});
|
|
};
|
|
|
|
module.exports = {
|
|
arraysDiffer: function (arrayA, arrayB) {
|
|
var isDifferent = false;
|
|
if (arrayA.length !== arrayB.length) {
|
|
isDifferent = true;
|
|
} else {
|
|
arrayA.forEach(function (item, index) {
|
|
if (item !== arrayB[index]) {
|
|
isDifferent = true;
|
|
}
|
|
});
|
|
}
|
|
return isDifferent;
|
|
},
|
|
ajax: {
|
|
post: request.bind(null, 'POST'),
|
|
put: request.bind(null, 'PUT')
|
|
}
|
|
};
|
|
|
|
|
|
|
|
},{}],"/Users/christianalfoni/Documents/dev/formsy-react/src/validationRules.js":[function(require,module,exports){
|
|
module.exports = {
|
|
'isValue': function (value) {
|
|
return value !== '';
|
|
},
|
|
'isEmail': function (value) {
|
|
return value.match(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i);
|
|
},
|
|
'isTrue': function (value) {
|
|
return value === true;
|
|
},
|
|
'isNumeric': function (value) {
|
|
if (typeof value === 'number') {
|
|
return true;
|
|
} else {
|
|
var matchResults = value.match(/[-+]?(\d*[.])?\d+/);
|
|
if (!! matchResults) {
|
|
return matchResults[0] == value;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
},
|
|
'isAlpha': function (value) {
|
|
return value.match(/^[a-zA-Z]+$/);
|
|
},
|
|
'isWords': function (value) {
|
|
return value.match(/^[a-zA-Z\s]+$/);
|
|
},
|
|
'isSpecialWords': function (value) {
|
|
return value.match(/^[a-zA-Z\s\u00C0-\u017F]+$/);
|
|
},
|
|
isLength: function (value, min, max) {
|
|
if (max !== undefined) {
|
|
return value.length >= min && value.length <= max;
|
|
}
|
|
return value.length >= min;
|
|
},
|
|
equals: function (value, eql) {
|
|
return value == eql;
|
|
},
|
|
equalsField: function (value, field) {
|
|
return value == this[field];
|
|
}
|
|
};
|
|
|
|
|
|
|
|
},{}]},{},["./src/main.js"])
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9icm93c2VyaWZ5L25vZGVfbW9kdWxlcy9icm93c2VyLXBhY2svX3ByZWx1ZGUuanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NyYy9tYWluLmpzIiwiL1VzZXJzL2NocmlzdGlhbmFsZm9uaS9Eb2N1bWVudHMvZGV2L2Zvcm1zeS1yZWFjdC9zcmMvTWl4aW4uanMiLCIvVXNlcnMvY2hyaXN0aWFuYWxmb25pL0RvY3VtZW50cy9kZXYvZm9ybXN5LXJlYWN0L3NyYy91dGlscy5qcyIsIi9Vc2Vycy9jaHJpc3RpYW5hbGZvbmkvRG9jdW1lbnRzL2Rldi9mb3Jtc3ktcmVhY3Qvc3JjL3ZhbGlkYXRpb25SdWxlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7QUNBQSxJQUFJLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUM3QyxJQUFJLE1BQU0sR0FBRyxFQUFFLENBQUM7QUFDaEIsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDdEQsSUFBSSxLQUFLLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQ2xDLElBQUksS0FBSyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUNsQyxJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7O0FBRWpCLE1BQU0sQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDOztBQUVyQixNQUFNLENBQUMsUUFBUSxHQUFHLFVBQVUsYUFBYSxFQUFFO0VBQ3pDLE9BQU8sR0FBRyxhQUFhLENBQUM7QUFDMUIsQ0FBQyxDQUFDOztBQUVGLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLElBQUksRUFBRSxJQUFJLEVBQUU7RUFDL0MsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQztBQUMvQixDQUFDLENBQUM7O0FBRUYsTUFBTSxDQUFD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SyxDQUFDLDRCQUE0QixDQUFDLENBQUM7R0FDbEQ7RUFDRCxRQUFRLEVBQUUsVUFBVSxLQUFLLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRTtJQUNuQyxJQUFJLEdBQUcsS0FBSyxTQUFTLEVBQUU7TUFDckIsT0FBTyxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQztLQUNuRDtJQUNELE9BQU8sS0FBSyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUM7R0FDNUI7RUFDRCxNQUFNLEVBQUUsVUFBVSxLQUFLLEVBQUUsR0FBRyxFQUFFO0lBQzVCLE9BQU8sS0FBSyxJQUFJLEdBQUcsQ0FBQztHQUNyQjtFQUNELFdBQVcsRUFBRSxVQUFVLEtBQUssRUFBRSxLQUFLLEVBQUU7SUFDbkMsT0FBTyxLQUFLLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0dBQzdCO0FBQ0gsQ0FBQyxDQUFDOztBQUVGIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIoZnVuY3Rpb24gZSh0LG4scil7ZnVuY3Rpb24gcyhvLHUpe2lmKCFuW29dKXtpZighdFtvXSl7dmFyIGE9dHlwZW9mIHJlcXVpcmU9PVwiZnVuY3Rpb25cIiYmcmVxdWlyZTtpZighdSYmYSlyZXR1cm4gYShvLCEwKTtpZihpKXJldHVybiBpKG8sITApO3ZhciBmPW5ldyBFcnJvcihcIkNhbm5vdCBmaW5kIG1vZHVsZSAnXCIrbytcIidcIik7dGhyb3cgZi5jb2RlPVwiTU9EVUxFX05PVF9GT1VORFwiLGZ9dmFyIGw9bltvXT17ZXhwb3J0czp7fX07dFtvXVswXS5jYWxsKGwuZXhwb3J0cyxmdW5jdGlvbihlKXt2YXIgbj10W29dWzFdW2VdO3JldHVybiBzKG4/bjplKX0sbCxsLmV4cG9ydHMsZSx0LG4scil9cmV0dXJuIG5bb10uZXhwb3J0c312YXIgaT10eXBlb2YgcmVxdWlyZT09XCJmdW5jdGlvblwiJiZyZXF1aXJlO2Zvcih2YXIgbz0wO288ci5sZW5ndGg7bysrKXMocltvXSk7cmV0dXJuIHN9KSIsInZhciBSZWFjdCA9IGdsb2JhbC5SZWFjdCB8fCByZXF1aXJlKCdyZWFjdCcpO1xudmFyIEZvcm1zeSA9IHt9O1xudmFyIHZhbGlkYXRpb25SdWxlcyA9IHJlcXVpcmUoJy4vdmFsaWRhdGlvblJ1bGVzLmpzJyk7XG52YXIgdXRpbHMgPSByZXF1aXJlKCcuL3V0aWxzLmpzJyk7XG52YXIgTWl4aW4gPSByZXF1aXJlKCcuL01peGluLmpzJyk7XG52YXIgb3B0aW9ucyA9IHt9O1xuXG5Gb3Jtc3kuTWl4aW4gPSBNaXhpbjtcblxuRm9ybXN5LmRlZmF1bHRzID0gZnVuY3Rpb24gKHBhc3NlZE9wdGlvbnMpIHtcbiAgb3B0aW9ucyA9IHBhc3NlZE9wdGlvbnM7XG59O1xuXG5Gb3Jtc3kuYWRkVmFsaWRhdGlvblJ1bGUgPSBmdW5jdGlvbiAobmFtZSwgZnVuYykge1xuICB2YWxpZGF0aW9uUnVsZXNbbmFtZV0gPSBmdW5jO1xufTtcblxuRm9ybXN5LkZvcm0gPSBSZWFjdC5jcmVhdGVDbGFzcyh7ZGlzcGxheU5hbWU6IFwiRm9ybVwiLFxuICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNWYWxpZDogdHJ1ZSxcbiAgICAgIGlzU3VibWl0dGluZzogZmFsc2UsXG4gICAgICBjYW5DaGFuZ2U6IGZhbHNlXG4gICAgfTtcbiAgfSxcbiAgZ2V0RGVmYXVsdFByb3BzOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGhlYWRlcnM6IHt9LFxuICAgICAgb25TdWNjZXNzOiBmdW5jdGlvbiAoKSB7fSxcbiAgICAgIG9uRXJyb3I6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25TdWJtaXQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25WYWxpZFN1Ym1pdDogZnVuY3Rpb24gKCkge30sXG4gICAgICBvbkludmFsaWRTdWJtaXQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25TdWJtaXR0ZWQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25WYWxpZDogZnVuY3Rpb24gKCkge30sXG4gICAgICBvbkludmFsaWQ6IGZ1bmN0aW9uICgpIHt9LFxuICAgICAgb25DaGFuZ2U6IGZ1bmN0aW9uICgpIHt9XG4gICAgfTtcbiAgfSxcblxuICAvLyBBZGQgYSBtYXAgdG8gc3RvcmUgdGhlIGlucHV0cyBvZiB0aGUgZm9ybSwgYSBtb2RlbCB0byBzdG9yZVxuICAvLyB0aGUgdmFsdWVzIG9mIHRoZSBmb3JtIGFuZCByZWdpc3RlciBjaGlsZCBpbnB1dHNcbiAgY29tcG9uZW50V2lsbE1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5pbnB1dHMgPSB7fTtcbiAgICB0aGlzLm1vZGVsID0ge307XG4gICAgdGhpcy5yZWdpc3RlcklucHV0cyh0aGlzLnByb3BzLmNoaWxkcmVuKTtcbiAgfSxcblxuICBjb21wb25lbnREaWRNb3VudDogZnVuY3Rpb24gKCkge1xuICAgIHRoaXMudmFsaWRhdGVGb3JtKCk7XG4gIH0sXG5cbiAgY29tcG9uZW50V2lsbFVwZGF0ZTogZnVuY3Rpb24gKCkge1xuICAgIHZhciBpbnB1dEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmlucHV0cyk7XG5cbiAgICAvLyBUaGUgdXBkYXRlZCBjaGlsZHJlbiBhcnJheSBpcyBub3QgYXZhaWxhYmxlIGhlcmUgZm9yIHNvbWUgcmVhc29uLFxuICAgIC8vIHdlIG5lZWQgdG8gd2FpdCBmb3IgbmV4dCBldmVudCBsb29wXG4gICAgc2V0VGltZW91dChmdW5jdGlvbiAoKSB7XG5cbiAgICAgIC8vIFRoZSBjb21wb25lbnQgbWlnaHQgaGF2ZSBiZWVuIHVubW91bnRlZCBvbiBhblxuICAgICAgLy8gdXBkYXRlXG4gICAgICBpZiAodGhpcy5pc01vdW50ZWQoKSkge1xuXG4gICAgICAgIHRoaXMucmVnaXN0ZXJJbnB1dHModGhpcy5wcm9wcy5jaGlsZHJlbik7XG5cbiAgICAgICBpZiAodGhpcy5wcm9wcy52YWxpZGF0aW9uRXJyb3JzKSB7XG4gICAgICAgICAgdGhpcy5zZXRJbnB1dFZhbGlkYXRpb25FcnJvcnModGhpcy5wcm9wcy52YWxpZGF0aW9uRXJyb3JzKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHZhciBuZXdJbnB1dEtleXMgPSBPYmplY3Qua2V5cyh0aGlzLmlucHV0cyk7XG4gICAgICAgIGlmICh1dGlscy5hcnJheXNEaWZmZXIoaW5wdXRLZXlzLCBuZXdJbnB1dEtleXMpKSB7XG4gICAgICAgICAgdGhpcy52YWxpZGF0ZUZvcm0oKTtcbiAgICAgICAgfVxuXG4gICAgICB9XG5cbiAgICB9LmJpbmQodGhpcyksIDApO1xuICB9LFxuXG4gIC8vIFVwZGF0ZSBtb2RlbCwgc3VibWl0IHRvIHVybCBwcm9wIGFuZCBzZW5kIHRoZSBtb2RlbFxuICBzdWJtaXQ6IGZ1bmN0aW9uIChldmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyBUcmlnZ2VyIGZvcm0gYXMgbm90IHByaXN0aW5lLlxuICAgIC8vIElmIGFueSBpbnB1dHMgaGF2ZSBub3QgYmVlbiB0b3VjaGVkIHlldCB0aGlzIHdpbGwgbWFrZSB0aGVtIGRpcnR5XG4gICAgLy8gc28gdmFsaWRhdGlvbiBiZWNvbWVzIHZpc2libGUgKGlmIGJhc2VkIG9uIGlzUHJpc3RpbmUpXG4gICAgdGhpcy5zZXRGb3JtUHJpc3RpbmUoZmFsc2UpO1xuXG4gICAgLy8gVG8gc3VwcG9ydCB1c2UgY2FzZXMgd2hlcmUgbm8gYXN5bmMgb3IgcmVxdWVzdCBvcGVyYXRpb24gaXMgbmVlZGVkLlxuICAgIC8vIFRoZSBcIm9uU3VibWl0XCIgY2FsbGJhY2sgaXMgY2FsbGVkIHdpdGggdGhlIG1vZGVsIGUuZy4ge2ZpZWxkTmFtZTogXCJteVZhbHVlXCJ9LFxuICAgIC8vIGlmIHdhbnRpbmcgdG8gcmVzZXQgdGhlIGVudGlyZSBmb3JtIHRvIG9yaWdpbmFsIHN0YXRlLCB0aGUgc2Vjb25kIHBhcmFtIGlzIGEgY2FsbGJhY2sgZm9yIHRoaXMuXG4gICAgaWYgKCF0aGlzLnByb3BzLnVybCkge1xuICAgICAgdGhpcy51cGRhdGVNb2RlbCgpO1xuICAgICAgdmFyIG1vZGVsID0gdGhpcy5tYXBNb2RlbCgpO1xuICAgICAgdGhpcy5wcm9wcy5vblN1Ym1pdChtb2RlbCwgdGhpcy5yZXNldE1vZGVsLCB0aGlzLnVwZGF0ZUlucHV0c1dpdGhFcnJvcik7XG4gICAgICB0aGlzLnN0YXRlLmlzVmFsaWQgPyB0aGlzLnByb3BzLm9uVmFsaWRTdWJtaXQobW9kZWwsIHRoaXMucmVzZXRNb2RlbCkgOiB0aGlzLnByb3BzLm9uSW52YWxpZFN1Ym1pdChtb2RlbCwgdGhpcy5yZXNldE1vZGVsKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZU1vZGVsKCk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBpc1N1Ym1pdHRpbmc6IHRydWVcbiAgICB9KTtcblxuICAgIHRoaXMucHJvcHMub25TdWJtaXQodGhpcy5tYXBNb2RlbCgpLCB0aGlzLnJlc2V0TW9kZWwsIHRoaXMudXBkYXRlSW5wdXRzV2l0aEVycm9yKTtcblxuICAgIHZhciBoZWFkZXJzID0gKE9iamVjdC5rZXlzKHRoaXMucHJvcHMuaGVhZGVycykubGVuZ3RoICYmIHRoaXMucHJvcHMuaGVhZGVycykgfHwgb3B0aW9ucy5oZWFkZXJzIHx8IHt9O1xuXG4gICAgdmFyIG1ldGhvZCA9IHRoaXMucHJvcHMubWV0aG9kICYmIHV0aWxzLmFqYXhbdGhpcy5wcm9wcy5tZXRob2QudG9Mb3dlckNhc2UoKV0gPyB0aGlzLnByb3BzLm1ldGhvZC50b0xvd2VyQ2FzZSgpIDogJ3Bvc3QnO1xuICAgIHV0aWxzLmFqYXhbbWV0aG9kXSh0aGlzLnByb3BzLnVybCwgdGhpcy5tYXBNb2RlbCgpLCB0aGlzLnByb3BzLmNvbnRlbnRUeXBlIHx8IG9wdGlvbnMuY29udGVudFR5cGUgfHwgJ2pzb24nLCBoZWFkZXJzKVxuICAgICAgLnRoZW4oZnVuY3Rpb24gKHJlc3BvbnNlKSB7XG4gICAgICAgIHRoaXMucHJvcHMub25TdWNjZXNzKHJlc3BvbnNlKTtcbiAgICAgICAgdGhpcy5wcm9wcy5vblN1Ym1pdHRlZCgpO1xuICAgICAgfS5iaW5kKHRoaXMpKVxuICAgICAgLmNhdGNoKHRoaXMuZmFpbFN1Ym1pdCk7XG4gIH0sXG5cbiAgbWFwTW9kZWw6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5tYXBwaW5nID8gdGhpcy5wcm9wcy5tYXBwaW5nKHRoaXMubW9kZWwpIDogdGhpcy5tb2RlbDtcbiAgfSxcblxuICAvLyBHb2VzIHRocm91Z2ggYWxsIHJlZ2lzdGVyZWQgY29tcG9uZW50cyBhbmRcbiAgLy8gdXBkYXRlcyB0aGUgbW9kZWwgdmFsdWVzXG4gIHVwZGF0ZU1vZGVsOiBmdW5jdGlvbiAoKSB7XG4gICAgT2JqZWN0LmtleXModGhpcy5pbnB1dHMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSB0aGlzLmlucHV0c1tuYW1lXTtcbiAgICAgIHRoaXMubW9kZWxbbmFtZV0gPSBjb21wb25lbnQuc3RhdGUuX3ZhbHVlO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0sXG5cbiAgLy8gUmVzZXQgZWFjaCBrZXkgaW4gdGhlIG1vZGVsIHRvIHRoZSBvcmlnaW5hbCAvIGluaXRpYWwgdmFsdWVcbiAgcmVzZXRNb2RlbDogZnVuY3Rpb24gKCkge1xuICAgIE9iamVjdC5rZXlzKHRoaXMuaW5wdXRzKS5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG4gICAgICB0aGlzLmlucHV0c1tuYW1lXS5yZXNldFZhbHVlKCk7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgICB0aGlzLnZhbGlkYXRlRm9ybSgpO1xuICB9LFxuXG4gIHNldElucHV0VmFsaWRhdGlvbkVycm9yczogZnVuY3Rpb24gKGVycm9ycykge1xuICAgICBPYmplY3Qua2V5cyh0aGlzLmlucHV0cykuZm9yRWFjaChmdW5jdGlvbiAobmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSB0aGlzLmlucHV0c1tuYW1lXTtcbiAgICAgIHZhciBhcmdzID0gW3tcbiAgICAgICAgX2lzVmFsaWQ6ICEobmFtZSBpbiBlcnJvcnMpLFxuICAgICAgICBfc2VydmVyRXJyb3I6IGVycm9yc1tuYW1lXVxuICAgICAgfV07XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUuYXBwbHkoY29tcG9uZW50LCBhcmdzKTtcbiAgICB9LmJpbmQodGhpcykpOyAgIFxuICB9LFxuXG4gIC8vIEdvIHRocm91Z2ggZXJyb3JzIGZyb20gc2VydmVyIGFuZCBncmFiIHRoZSBjb21wb25lbnRzXG4gIC8vIHN0b3JlZCBpbiB0aGUgaW5wdXRzIG1hcC4gQ2hhbmdlIHRoZWlyIHN0YXRlIHRvIGludmFsaWRcbiAgLy8gYW5kIHNldCB0aGUgc2VydmVyRXJyb3IgbWVzc2FnZVxuICB1cGRhdGVJbnB1dHNXaXRoRXJyb3I6IGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICBPYmplY3Qua2V5cyhlcnJvcnMpLmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5pbnB1dHNbbmFtZV07XG5cbiAgICAgIGlmICghY29tcG9uZW50KSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignWW91IGFyZSB0cnlpbmcgdG8gdXBkYXRlIGFuIGlucHV0IHRoYXQgZG9lcyBub3QgZXhpc3RzLiBWZXJpZnkgZXJyb3JzIG9iamVjdCB3aXRoIGlucHV0IG5hbWVzLiAnICsgSlNPTi5zdHJpbmdpZnkoZXJyb3JzKSk7XG4gICAgICB9XG5cbiAgICAgIHZhciBhcmdzID0gW3tcbiAgICAgICAgX2lzVmFsaWQ6IGZhbHNlLFxuICAgICAgICBfc2VydmVyRXJyb3I6IGVycm9yc1tuYW1lXVxuICAgICAgfV07XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUuYXBwbHkoY29tcG9uZW50LCBhcmdzKTtcbiAgICB9LmJpbmQodGhpcykpO1xuICB9LFxuXG4gIGZhaWxTdWJtaXQ6IGZ1bmN0aW9uIChlcnJvcnMpIHtcbiAgICB0aGlzLnVwZGF0ZUlucHV0c1dpdGhFcnJvcihlcnJvcnMpO1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgaXNTdWJtaXR0aW5nOiBmYWxzZVxuICAgIH0pO1xuICAgIHRoaXMucHJvcHMub25FcnJvcihlcnJvcnMpO1xuICAgIHRoaXMucHJvcHMub25TdWJtaXR0ZWQoKTtcbiAgfSxcblxuICAvLyBUcmF2ZXJzZSB0aGUgY2hpbGRyZW4gYW5kIGNoaWxkcmVuIG9mIGNoaWxkcmVuIHRvIGZpbmRcbiAgLy8gYWxsIGlucHV0cyBieSBjaGVja2luZyB0aGUgbmFtZSBwcm9wLiBNYXliZSBkbyBhIGJldHRlclxuICAvLyBjaGVjayBoZXJlXG4gIHJlZ2lzdGVySW5wdXRzOiBmdW5jdGlvbiAoY2hpbGRyZW4pIHtcbiAgICBSZWFjdC5DaGlsZHJlbi5mb3JFYWNoKGNoaWxkcmVuLCBmdW5jdGlvbiAoY2hpbGQpIHtcblxuICAgICAgaWYgKGNoaWxkICYmIGNoaWxkLnByb3BzICYmIGNoaWxkLnByb3BzLm5hbWUpIHtcbiAgICAgICAgY2hpbGQucHJvcHMuX2F0dGFjaFRvRm9ybSA9IHRoaXMuYXR0YWNoVG9Gb3JtO1xuICAgICAgICBjaGlsZC5wcm9wcy5fZGV0YWNoRnJvbUZvcm0gPSB0aGlzLmRldGFjaEZyb21Gb3JtO1xuICAgICAgICBjaGlsZC5wcm9wcy5fdmFsaWRhdGUgPSB0aGlzLnZhbGlkYXRlO1xuICAgICAgICBjaGlsZC5wcm9wcy5faXNGb3JtRGlzYWJsZWQgPSB0aGlzLmlzRm9ybURpc2FibGVkO1xuICAgICAgICBjaGlsZC5wcm9wcy5faXNWYWxpZFZhbHVlID0gdGhpcy5ydW5WYWxpZGF0aW9uO1xuICAgICAgfVxuXG4gICAgICBpZiAoY2hpbGQgJiYgY2hpbGQucHJvcHMgJiYgY2hpbGQucHJvcHMuY2hpbGRyZW4pIHtcbiAgICAgICAgdGhpcy5yZWdpc3RlcklucHV0cyhjaGlsZC5wcm9wcy5jaGlsZHJlbik7XG4gICAgICB9XG5cbiAgICB9LmJpbmQodGhpcykpO1xuICB9LFxuXG4gIGlzRm9ybURpc2FibGVkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuZGlzYWJsZWQ7XG4gIH0sXG5cbiAgZ2V0Q3VycmVudFZhbHVlczogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmlucHV0cykucmVkdWNlKGZ1bmN0aW9uIChkYXRhLCBuYW1lKSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gdGhpcy5pbnB1dHNbbmFtZV07XG4gICAgICBkYXRhW25hbWVdID0gY29tcG9uZW50LnN0YXRlLl92YWx1ZTtcbiAgICAgIHJldHVybiBkYXRhO1xuICAgIH0uYmluZCh0aGlzKSwge30pO1xuICB9LFxuXG4gIHNldEZvcm1QcmlzdGluZTogZnVuY3Rpb24gKGlzUHJpc3RpbmUpIHtcbiAgICB2YXIgaW5wdXRzID0gdGhpcy5pbnB1dHM7XG4gICAgdmFyIGlucHV0S2V5cyA9IE9iamVjdC5rZXlzKGlucHV0cyk7XG5cbiAgICAvLyBJdGVyYXRlIHRocm91Z2ggZWFjaCBjb21wb25lbnQgYW5kIHNldCBpdCBhcyBwcmlzdGluZVxuICAgIC8vIG9yIFwiZGlydHlcIi5cbiAgICBpbnB1dEtleXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSwgaW5kZXgpIHtcbiAgICAgIHZhciBjb21wb25lbnQgPSBpbnB1dHNbbmFtZV07XG4gICAgICBjb21wb25lbnQuc2V0U3RhdGUoe1xuICAgICAgICBfaXNQcmlzdGluZTogaXNQcmlzdGluZVxuICAgICAgfSk7XG4gICAgfS5iaW5kKHRoaXMpKTtcbiAgfSxcblxuICAvLyBVc2UgdGhlIGJpbmRlZCB2YWx1ZXMgYW5kIHRoZSBhY3R1YWwgaW5wdXQgdmFsdWUgdG9cbiAgLy8gdmFsaWRhdGUgdGhlIGlucHV0IGFuZCBzZXQgaXRzIHN0YXRlLiBUaGVuIGNoZWNrIHRoZVxuICAvLyBzdGF0ZSBvZiB0aGUgZm9ybSBpdHNlbGZcbiAgdmFsaWRhdGU6IGZ1bmN0aW9uIChjb21wb25lbnQpIHtcblxuICAgIC8vIFRyaWdnZXIgb25DaGFuZ2VcbiAgICBpZiAodGhpcy5zdGF0ZS5jYW5DaGFuZ2UpIHtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UodGhpcy5nZXRDdXJyZW50VmFsdWVzKCkpO1xuICAgIH1cblxuICAgIGlmICghY29tcG9uZW50LnByb3BzLnJlcXVpcmVkICYmICFjb21wb25lbnQuX3ZhbGlkYXRpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gUnVuIHRocm91Z2ggdGhlIHZhbGlkYXRpb25zLCBzcGxpdCB0aGVtIHVwIGFuZCBjYWxsXG4gICAgLy8gdGhlIHZhbGlkYXRvciBJRiB0aGVyZSBpcyBhIHZhbHVlIG9yIGl0IGlzIHJlcXVpcmVkXG4gICAgdmFyIGlzVmFsaWQgPSB0aGlzLnJ1blZhbGlkYXRpb24oY29tcG9uZW50KTtcblxuICAgIGNvbXBvbmVudC5zZXRTdGF0ZSh7XG4gICAgICBfaXNWYWxpZDogaXNWYWxpZCxcbiAgICAgIF9zZXJ2ZXJFcnJvcjogbnVsbFxuICAgIH0sIHRoaXMudmFsaWRhdGVGb3JtKTtcblxuICB9LFxuXG4gIC8vIENoZWNrcyB2YWxpZGF0aW9uIG9uIGN1cnJlbnQgdmFsdWUgb3IgYSBwYXNzZWQgdmFsdWVcbiAgcnVuVmFsaWRhdGlvbjogZnVuY3Rpb24gKGNvbXBvbmVudCwgdmFsdWUpIHtcblxuICAgIHZhciBpc1ZhbGlkID0gdHJ1ZTtcbiAgICBcbiAgICB2YWx1ZSA9IGFyZ3VtZW50cy5sZW5ndGggPT09IDIgPyB2YWx1ZSA6IGNvbXBvbmVudC5zdGF0ZS5fdmFsdWU7XG4gICAgaWYgKGNvbXBvbmVudC5fdmFsaWRhdGlvbnMubGVuZ3RoICYmIChjb21wb25lbnQucHJvcHMucmVxdWlyZWQgfHwgdmFsdWUgIT09ICcnKSkge1xuICAgICAgY29tcG9uZW50Ll92YWxpZGF0aW9ucy5zcGxpdCgvXFwsKD8hW157XFxbXSpbfVxcXV0pL2cpLmZvckVhY2goZnVuY3Rpb24gKHZhbGlkYXRpb24pIHtcbiAgICAgICAgdmFyIGFyZ3MgPSB2YWxpZGF0aW9uLnNwbGl0KCc6Jyk7XG4gICAgICAgIHZhciB2YWxpZGF0ZU1ldGhvZCA9IGFyZ3Muc2hpZnQoKTtcbiAgICAgICAgYXJncyA9IGFyZ3MubWFwKGZ1bmN0aW9uIChhcmcpIHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UoYXJnKTtcbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZXR1cm4gYXJnOyAvLyBJdCBpcyBhIHN0cmluZyBpZiBpdCBjYW4gbm90IHBhcnNlIGl0XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXJncyA9IFt2YWx1ZV0uY29uY2F0KGFyZ3MpO1xuICAgICAgICBpZiAoIXZhbGlkYXRpb25SdWxlc1t2YWxpZGF0ZU1ldGhvZF0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zvcm1zeSBkb2VzIG5vdCBoYXZlIHRoZSB2YWxpZGF0aW9uIHJ1bGU6ICcgKyB2YWxpZGF0ZU1ldGhvZCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF2YWxpZGF0aW9uUnVsZXNbdmFsaWRhdGVNZXRob2RdLmFwcGx5KHRoaXMuZ2V0Q3VycmVudFZhbHVlcygpLCBhcmdzKSkge1xuICAgICAgICAgIGlzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfS5iaW5kKHRoaXMpKTtcbiAgICB9XG4gICAgcmV0dXJuIGlzVmFsaWQ7XG4gIH0sXG5cbiAgLy8gVmFsaWRhdGUgdGhlIGZvcm0gYnkgZ29pbmcgdGhyb3VnaCBhbGwgY2hpbGQgaW5wdXQgY29tcG9uZW50c1xuICAvLyBhbmQgY2hlY2sgdGhlaXIgc3RhdGVcbiAgdmFsaWRhdGVGb3JtOiBmdW5jdGlvbiAoKSB7XG4gICAgdmFyIGFsbElzVmFsaWQgPSB0cnVlO1xuICAgIHZhciBpbnB1dHMgPSB0aGlzLmlucHV0cztcbiAgICB2YXIgaW5wdXRLZXlzID0gT2JqZWN0LmtleXMoaW5wdXRzKTtcblxuICAgIC8vIFdlIG5lZWQgYSBjYWxsYmFjayBhcyB3ZSBhcmUgdmFsaWRhdGluZyBhbGwgaW5wdXRzIGFnYWluLiBUaGlzIHdpbGxcbiAgICAvLyBydW4gd2hlbiB0aGUgbGFzdCBjb21wb25lbnQgaGFzIHNldCBpdHMgc3RhdGVcbiAgICB2YXIgb25WYWxpZGF0aW9uQ29tcGxldGUgPSBmdW5jdGlvbiAoKSB7XG4gICAgICBpbnB1dEtleXMuZm9yRWFjaChmdW5jdGlvbiAobmFtZSkge1xuICAgICAgICBpZiAoIWlucHV0c1tuYW1lXS5zdGF0ZS5faXNWYWxpZCkge1xuICAgICAgICAgIGFsbElzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfS5iaW5kKHRoaXMpKTtcblxuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGlzVmFsaWQ6IGFsbElzVmFsaWRcbiAgICAgIH0pO1xuXG4gICAgICBpZiAoYWxsSXNWYWxpZCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uVmFsaWQoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMucHJvcHMub25JbnZhbGlkKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFRlbGwgdGhlIGZvcm0gdGhhdCBpdCBjYW4gc3RhcnQgdG8gdHJpZ2dlciBjaGFuZ2UgZXZlbnRzXG4gICAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgICAgY2FuQ2hhbmdlOiB0cnVlXG4gICAgICB9KTtcblxuICAgIH0uYmluZCh0aGlzKTtcblxuICAgIC8vIFJ1biB2YWxpZGF0aW9uIGFnYWluIGluIGNhc2UgYWZmZWN0ZWQgYnkgb3RoZXIgaW5wdXRzLiBUaGVcbiAgICAvLyBsYXN0IGNvbXBvbmVudCB2YWxpZGF0ZWQgd2lsbCBydW4gdGhlIG9uVmFsaWRhdGlvbkNvbXBsZXRlIGNhbGxiYWNrXG4gICAgaW5wdXRLZXlzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUsIGluZGV4KSB7XG4gICAgICB2YXIgY29tcG9uZW50ID0gaW5wdXRzW25hbWVdO1xuICAgICAgdmFyIGlzVmFsaWQgPSB0aGlzLnJ1blZhbGlkYXRpb24oY29tcG9uZW50KTtcbiAgICAgIGNvbXBvbmVudC5zZXRTdGF0ZSh7XG4gICAgICAgIF9pc1ZhbGlkOiBpc1ZhbGlkLFxuICAgICAgICBfc2VydmVyRXJyb3I6IG51bGxcbiAgICAgIH0sIGluZGV4ID09PSBpbnB1dEtleXMubGVuZ3RoIC0gMSA/IG9uVmFsaWRhdGlvbkNvbXBsZXRlIDogbnVsbCk7XG4gICAgfS5iaW5kKHRoaXMpKTtcblxuICAgIC8vIElmIHRoZXJlIGFyZSBubyBpbnB1dHMsIHNldCBzdGF0ZSB3aGVyZSBmb3JtIGlzIHJlYWR5IHRvIHRyaWdnZXJcbiAgICAvLyBjaGFuZ2UgZXZlbnQuIE5ldyBpbnB1dHMgbWlnaHQgYmUgYWRkZWQgbGF0ZXJcbiAgICBpZiAoIWlucHV0S2V5cy5sZW5ndGggJiYgdGhpcy5pc01vdW50ZWQoKSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICAgIGNhbkNoYW5nZTogdHJ1ZVxuICAgICAgfSk7XG4gICAgfVxuICB9LFxuXG4gIC8vIE1ldGhvZCBwdXQgb24gZWFjaCBpbnB1dCBjb21wb25lbnQgdG8gcmVnaXN0ZXJcbiAgLy8gaXRzZWxmIHRvIHRoZSBmb3JtXG4gIGF0dGFjaFRvRm9ybTogZnVuY3Rpb24gKGNvbXBvbmVudCkge1xuICAgIHRoaXMuaW5wdXRzW2NvbXBvbmVudC5wcm9wcy5uYW1lXSA9IGNvbXBvbmVudDtcbiAgICB0aGlzLm1vZGVsW2NvbXBvbmVudC5wcm9wcy5uYW1lXSA9IGNvbXBvbmVudC5zdGF0ZS5fdmFsdWU7XG4gICAgdGhpcy52YWxpZGF0ZShjb21wb25lbnQpO1xuICB9LFxuXG4gIC8vIE1ldGhvZCBwdXQgb24gZWFjaCBpbnB1dCBjb21wb25lbnQgdG8gdW5yZWdpc3RlclxuICAvLyBpdHNlbGYgZnJvbSB0aGUgZm9ybVxuICBkZXRhY2hGcm9tRm9ybTogZnVuY3Rpb24gKGNvbXBvbmVudCkge1xuICAgIGRlbGV0ZSB0aGlzLmlucHV0c1tjb21wb25lbnQucHJvcHMubmFtZV07XG4gICAgZGVsZXRlIHRoaXMubW9kZWxbY29tcG9uZW50LnByb3BzLm5hbWVdO1xuICB9LFxuICByZW5kZXI6IGZ1bmN0aW9uICgpIHtcblxuICAgIHJldHVybiBSZWFjdC5ET00uZm9ybSh7XG4gICAgICAgIG9uU3VibWl0OiB0aGlzLnN1Ym1pdCxcbiAgICAgICAgY2xhc3NOYW1lOiB0aGlzLnByb3BzLmNsYXNzTmFtZVxuICAgICAgfSxcbiAgICAgIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgICApO1xuXG4gIH1cbn0pO1xuXG5pZiAoIWdsb2JhbC5leHBvcnRzICYmICFnbG9iYWwubW9kdWxlICYmICghZ2xvYmFsLmRlZmluZSB8fCAhZ2xvYmFsLmRlZmluZS5hbWQpKSB7XG4gIGdsb2JhbC5Gb3Jtc3kgPSBGb3Jtc3k7XG59XG5cbm1vZHVsZS5leHBvcnRzID0gRm9ybXN5O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZiV0ZwYmk1cWN5SXNJbk52ZFhKalpYTWlPbHNpTDFWelpYSnpMMk5vY21semRHbGhibUZzWm05dWFTOUViMk4xYldWdWRITXZaR1YyTDJadmNtMXplUzF5WldGamRDOXpjbU12YldGcGJpNXFjeUpkTENKdVlXMWxjeUk2VzEwc0ltMWhjSEJwYm1keklqb2lRVUZCUVN4SlFVRkpMRXRCUVVzc1IwRkJSeXhOUVVGTkxFTkJRVU1zUzBGQlN5eEpRVUZKTEU5QlFVOHNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVNM1F5eEpRVUZKTEUxQlFVMHNSMEZCUnl4RlFVRkZMRU5CUVVNN1FVRkRhRUlzU1VGQlNTeGxRVUZsTEVkQlFVY3NUMEZCVHl4RFFVRkRMSE5DUVVGelFpeERRVUZETEVOQlFVTTdRVUZEZEVRc1NVRkJTU3hMUVVGTExFZEJRVWNzVDBGQlR5eERRVUZETEZsQlFWa3NRMEZCUXl4RFFVRkRPMEZCUTJ4RExFbEJRVWtzUzBGQlN5eEhRVUZITEU5QlFVOHNRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenRCUVVOc1F5eEpRVUZKTEU5QlFVOHNSMEZCUnl4RlFVRkZMRU5CUVVNN08wRkJSV3BDTEUxQlFVMHNRMEZCUXl4TFFVRkxMRWRCUVVjc1MwRkJTeXhEUVVGRE96dEJRVVZ5UWl4TlFVRk5MRU5CUVVNc1VVRkJVU3hIUVVGSExGVkJRVlVzWVVGQllTeEZRVUZGTzBWQlEzcERMRTlCUVU4c1IwRkJSeXhoUVVGaExFTkJRVU03UVVGRE1VSXNRMEZCUXl4RFFVRkRPenRCUVVWR0xFMUJRVTBzUTBGQlF5eHBRa0ZCYVVJc1IwRkJSeXhWUVVGVkxFbEJRVWtzUlVGQlJTeEpRVUZKTEVWQlFVVTdSVUZETDBNc1pVRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEVsQlFVa3NRMEZCUXp0QlFVTXZRaXhEUVVGRExFTkJRVU03TzBGQlJVWXNhVU5CUVdsRExHOUNRVUZCTzBWQlF5OUNMR1ZCUVdVc1JVRkJSU3haUVVGWk8wbEJRek5DTEU5QlFVODdUVUZEVEN4UFFVRlBMRVZCUVVVc1NVRkJTVHROUVVOaUxGbEJRVmtzUlVGQlJTeExRVUZMTzAxQlEyNUNMRk5CUVZNc1JVRkJSU3hMUVVGTE8wdEJRMnBDTEVOQlFVTTdSMEZEU0R0RlFVTkVMR1ZCUVdVc1JVRkJSU3haUVVGWk8wbEJRek5DTEU5QlFVODdUVUZEVEN4UFFVRlBMRVZCUVVVc1JVRkJSVHROUVVOWUxGTkJRVk1zUlVGQlJTeFpRVUZaTEVWQlFVVTdUVUZEZWtJc1QwRkJUeXhGUVVGRkxGbEJRVmtzUlVGQlJUdE5RVU4yUWl4UlFVRlJMRVZCUVVVc1dVRkJXU3hGUVVGRk8wMUJRM2hDTEdGQlFXRXNSVUZCUlN4WlFVRlpMRVZCUVVVN1RVRkROMElzWlVGQlpTeEZRVUZGTEZsQlFWa3NSVUZCUlR0TlFVTXZRaXhYUVVGWExFVkJRVVVzV1VGQldTeEZRVUZGTzAxQlF6TkNMRTlCUVU4c1JVRkJSU3haUVVGWkxFVkJRVVU3VFVGRGRrSXNVMEZCVXl4RlFVRkZMRmxCUVZrc1JVRkJSVHROUVVONlFpeFJRVUZSTEVWQlFVVXNXVUZCV1N4RlFVRkZPMHRCUTNwQ0xFTkJRVU03UVVGRFRpeEhRVUZITzBGQlEwZzdRVUZEUVRzN1JVRkZSU3hyUWtGQmEwSXNSVUZCUlN4WlFVRlpPMGxCUXpsQ0xFbEJRVWtzUTBGQlF5eE5RVUZOTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTJwQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVkQlFVY3NSVUZCUlN4RFFVRkRPMGxCUTJoQ0xFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU0zUXl4SFFVRkhPenRGUVVWRUxHbENRVUZwUWl4RlFVRkZMRmxCUVZrN1NVRkROMElzU1VGQlNTeERRVUZETEZsQlFWa3NSVUZCUlN4RFFVRkRPMEZCUTNoQ0xFZEJRVWM3TzBWQlJVUXNiVUpCUVcxQ0xFVkJRVVVzV1VGQldUdEJRVU51UXl4SlFVRkpMRWxCUVVrc1UwRkJVeXhIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8wRkJRemRETzBGQlEwRTdPMEZCUlVFc1NVRkJTU3hWUVVGVkxFTkJRVU1zV1VGQldUdEJRVU16UWp0QlFVTkJPenRCUVVWQkxFMUJRVTBzU1VGQlNTeEpRVUZKTEVOQlFVTXNVMEZCVXl4RlFVRkZMRVZCUVVVN08wRkJSVFZDTEZGQlFWRXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZGQlFWRXNRMEZCUXl4RFFVRkRPenRQUVVVeFF5eEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1owSkJRV2RDTEVWQlFVVTdWVUZET1VJc1NVRkJTU3hEUVVGRExIZENRVUYzUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWjBKQlFXZENMRU5CUVVNc1EwRkJRenRCUVVOeVJTeFRRVUZUT3p0UlFVVkVMRWxCUVVrc1dVRkJXU3hIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRE8xRkJRelZETEVsQlFVa3NTMEZCU3l4RFFVRkRMRmxCUVZrc1EwRkJReXhUUVVGVExFVkJRVVVzV1VGQldTeERRVUZETEVWQlFVVTdWVUZETDBNc1NVRkJTU3hEUVVGRExGbEJRVmtzUlVGQlJTeERRVUZETzBGQlF6bENMRk5CUVZNN08wRkJSVlFzVDBGQlR6czdTMEZGUml4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnlRaXhIUVVGSE8wRkJRMGc3TzBWQlJVVXNUVUZCVFN4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8wRkJRek5DTEVsQlFVa3NTMEZCU3l4RFFVRkRMR05CUVdNc1JVRkJSU3hEUVVGRE8wRkJRek5DTzBGQlEwRTdRVUZEUVRzN1FVRkZRU3hKUVVGSkxFbEJRVWtzUTBGQlF5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RFFVRkRMRU5CUVVNN1FVRkRhRU03UVVGRFFUdEJRVU5CT3p0SlFVVkpMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEVkQlFVY3NSVUZCUlR0TlFVTnVRaXhKUVVGSkxFTkJRVU1zVjBGQlZ5eEZRVUZGTEVOQlFVTTdUVUZEYmtJc1NVRkJTU3hMUVVGTExFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNSVUZCUlN4RFFVRkRPMDFCUXpWQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRXRCUVVzc1JVRkJSU3hKUVVGSkxFTkJRVU1zVlVGQlZTeEZRVUZGTEVsQlFVa3NRMEZCUXl4eFFrRkJjVUlzUTBGQlF5eERRVUZETzAxQlEzaEZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hEUVVGRExFdEJRVXNzUlVGQlJTeEpRVUZKTEVOQlFVTXNWVUZCVlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGxRVUZsTEVOQlFVTXNTMEZCU3l4RlFVRkZMRWxCUVVrc1EwRkJReXhWUVVGVkxFTkJRVU1zUTBGQlF6dE5RVU16U0N4UFFVRlBPMEZCUTJJc1MwRkJTenM3U1VGRlJDeEpRVUZKTEVOQlFVTXNWMEZCVnl4RlFVRkZMRU5CUVVNN1NVRkRia0lzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0TlFVTmFMRmxCUVZrc1JVRkJSU3hKUVVGSk8wRkJRM2hDTEV0QlFVc3NRMEZCUXl4RFFVRkRPenRCUVVWUUxFbEJRVWtzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4UlFVRlJMRU5CUVVNc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEVsQlFVa3NRMEZCUXl4VlFVRlZMRVZCUVVVc1NVRkJTU3hEUVVGRExIRkNRVUZ4UWl4RFFVRkRMRU5CUVVNN08wRkJSWFJHTEVsQlFVa3NTVUZCU1N4UFFVRlBMRWRCUVVjc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFTkJRVU1zVFVGQlRTeEpRVUZKTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhMUVVGTExFOUJRVThzUTBGQlF5eFBRVUZQTEVsQlFVa3NSVUZCUlN4RFFVRkRPenRKUVVWMFJ5eEpRVUZKTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVFVGQlRTeERRVUZETEZkQlFWY3NSVUZCUlN4RFFVRkRMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTXNWMEZCVnl4RlFVRkZMRWRCUVVjc1RVRkJUU3hEUVVGRE8wbEJRM3BJTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4SFFVRkhMRVZCUVVVc1NVRkJTU3hEUVVGRExGRkJRVkVzUlVGQlJTeEZRVUZGTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1YwRkJWeXhKUVVGSkxFOUJRVThzUTBGQlF5eFhRVUZYTEVsQlFVa3NUVUZCVFN4RlFVRkZMRTlCUVU4c1EwRkJRenRQUVVOc1NDeEpRVUZKTEVOQlFVTXNWVUZCVlN4UlFVRlJMRVZCUVVVN1VVRkRlRUlzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFTkJRVU03VVVGREwwSXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhYUVVGWExFVkJRVVVzUTBGQlF6dFBRVU14UWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dFBRVU5hTEV0QlFVc3NRMEZCUXl4SlFVRkpMRU5CUVVNc1ZVRkJWU3hEUVVGRExFTkJRVU03UVVGRE9VSXNSMEZCUnpzN1JVRkZSQ3hSUVVGUkxFVkJRVVVzV1VGQldUdEpRVU53UWl4UFFVRlBMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVDBGQlR5eEhRVUZITEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRE8wRkJRelZGTEVkQlFVYzdRVUZEU0R0QlFVTkJPenRGUVVWRkxGZEJRVmNzUlVGQlJTeFpRVUZaTzBsQlEzWkNMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRMRTlCUVU4c1EwRkJReXhWUVVGVkxFbEJRVWtzUlVGQlJUdE5RVU12UXl4SlFVRkpMRk5CUVZNc1IwRkJSeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMDFCUTJ4RExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWRCUVVjc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTTdTMEZETTBNc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNRaXhIUVVGSE8wRkJRMGc3TzBWQlJVVXNWVUZCVlN4RlFVRkZMRmxCUVZrN1NVRkRkRUlzVFVGQlRTeERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4RlFVRkZPMDFCUXk5RExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1ZVRkJWU3hGUVVGRkxFTkJRVU03UzBGRGFFTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dEpRVU5rTEVsQlFVa3NRMEZCUXl4WlFVRlpMRVZCUVVVc1EwRkJRenRCUVVONFFpeEhRVUZIT3p0RlFVVkVMSGRDUVVGM1FpeEZRVUZGTEZWQlFWVXNUVUZCVFN4RlFVRkZPMHRCUTNwRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFOUJRVThzUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlN4TFFVRkxMRVZCUVVVN1RVRkRka1FzU1VGQlNTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dE5RVU5zUXl4SlFVRkpMRWxCUVVrc1IwRkJSeXhEUVVGRE8xRkJRMVlzVVVGQlVTeEZRVUZGTEVWQlFVVXNTVUZCU1N4SlFVRkpMRTFCUVUwc1EwRkJRenRSUVVNelFpeFpRVUZaTEVWQlFVVXNUVUZCVFN4RFFVRkRMRWxCUVVrc1EwRkJRenRQUVVNelFpeERRVUZETEVOQlFVTTdUVUZEU0N4VFFVRlRMRU5CUVVNc1VVRkJVU3hEUVVGRExFdEJRVXNzUTBGQlF5eFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRU5CUVVNN1MwRkRNME1zUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNc1EwRkJRenRCUVVOc1FpeEhRVUZITzBGQlEwZzdRVUZEUVR0QlFVTkJPenRGUVVWRkxIRkNRVUZ4UWl4RlFVRkZMRlZCUVZVc1RVRkJUU3hGUVVGRk8wbEJRM1pETEUxQlFVMHNRMEZCUXl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSVHRCUVVOMlJDeE5RVUZOTEVsQlFVa3NVMEZCVXl4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdPMDFCUld4RExFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVTdVVUZEWkN4TlFVRk5MRWxCUVVrc1MwRkJTeXhEUVVGRExHbEhRVUZwUnl4SFFVRkhMRWxCUVVrc1EwRkJReXhUUVVGVExFTkJRVU1zVFVGQlRTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTndTaXhQUVVGUE96dE5RVVZFTEVsQlFVa3NTVUZCU1N4SFFVRkhMRU5CUVVNN1VVRkRWaXhSUVVGUkxFVkJRVVVzUzBGQlN6dFJRVU5tTEZsQlFWa3NSVUZCUlN4TlFVRk5MRU5CUVVNc1NVRkJTU3hEUVVGRE8wOUJRek5DTEVOQlFVTXNRMEZCUXp0TlFVTklMRk5CUVZNc1EwRkJReXhSUVVGUkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNSVUZCUlN4SlFVRkpMRU5CUVVNc1EwRkJRenRMUVVNelF5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJReXhEUVVGRE8wRkJRMnhDTEVkQlFVYzdPMFZCUlVRc1ZVRkJWU3hGUVVGRkxGVkJRVlVzVFVGQlRTeEZRVUZGTzBsQlF6VkNMRWxCUVVrc1EwRkJReXh4UWtGQmNVSXNRMEZCUXl4TlFVRk5MRU5CUVVNc1EwRkJRenRKUVVOdVF5eEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMDFCUTFvc1dVRkJXU3hGUVVGRkxFdEJRVXM3UzBGRGNFSXNRMEZCUXl4RFFVRkRPMGxCUTBnc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVOQlFVTXNUVUZCVFN4RFFVRkRMRU5CUVVNN1NVRkRNMElzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4WFFVRlhMRVZCUVVVc1EwRkJRenRCUVVNM1FpeEhRVUZITzBGQlEwZzdRVUZEUVR0QlFVTkJPenRGUVVWRkxHTkJRV01zUlVGQlJTeFZRVUZWTEZGQlFWRXNSVUZCUlR0QlFVTjBReXhKUVVGSkxFdEJRVXNzUTBGQlF5eFJRVUZSTEVOQlFVTXNUMEZCVHl4RFFVRkRMRkZCUVZFc1JVRkJSU3hWUVVGVkxFdEJRVXNzUlVGQlJUczdUVUZGYUVRc1NVRkJTU3hMUVVGTExFbEJRVWtzUzBGQlN5eERRVUZETEV0QlFVc3NTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUlVGQlJUdFJRVU0xUXl4TFFVRkxMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUjBGQlJ5eEpRVUZKTEVOQlFVTXNXVUZCV1N4RFFVRkRPMUZCUXpsRExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNaVUZCWlN4SFFVRkhMRWxCUVVrc1EwRkJReXhqUVVGakxFTkJRVU03VVVGRGJFUXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVExFZEJRVWNzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXp0UlFVTjBReXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETEdWQlFXVXNSMEZCUnl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRE8xRkJRMnhFTEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc1lVRkJZU3hIUVVGSExFbEJRVWtzUTBGQlF5eGhRVUZoTEVOQlFVTTdRVUZEZGtRc1QwRkJUenM3VFVGRlJDeEpRVUZKTEV0QlFVc3NTVUZCU1N4TFFVRkxMRU5CUVVNc1MwRkJTeXhKUVVGSkxFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RlFVRkZPMUZCUTJoRUxFbEJRVWtzUTBGQlF5eGpRVUZqTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUkxFTkJRVU1zUTBGQlF6dEJRVU5zUkN4UFFVRlBPenRMUVVWR0xFTkJRVU1zU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRMRU5CUVVNN1FVRkRiRUlzUjBGQlJ6czdSVUZGUkN4alFVRmpMRVZCUVVVc1dVRkJXVHRKUVVNeFFpeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRE8wRkJReTlDTEVkQlFVYzdPMFZCUlVRc1owSkJRV2RDTEVWQlFVVXNXVUZCV1R0SlFVTTFRaXhQUVVGUExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eFZRVUZWTEVsQlFVa3NSVUZCUlN4SlFVRkpMRVZCUVVVN1RVRkRNMFFzU1VGQlNTeFRRVUZUTEVkQlFVY3NTVUZCU1N4RFFVRkRMRTFCUVUwc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dE5RVU5zUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1RVRkRjRU1zVDBGQlR5eEpRVUZKTEVOQlFVTTdTMEZEWWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUlVGQlJTeEZRVUZGTEVOQlFVTXNRMEZCUXp0QlFVTjBRaXhIUVVGSE96dEZRVVZFTEdWQlFXVXNSVUZCUlN4VlFVRlZMRlZCUVZVc1JVRkJSVHRKUVVOeVF5eEpRVUZKTEUxQlFVMHNSMEZCUnl4SlFVRkpMRU5CUVVNc1RVRkJUU3hEUVVGRE8wRkJRemRDTEVsQlFVa3NTVUZCU1N4VFFVRlRMRWRCUVVjc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eE5RVUZOTEVOQlFVTXNRMEZCUXp0QlFVTjRRenRCUVVOQk96dEpRVVZKTEZOQlFWTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hKUVVGSkxFVkJRVVVzUzBGQlN5eEZRVUZGTzAxQlEzWkRMRWxCUVVrc1UwRkJVeXhIUVVGSExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0TlFVTTNRaXhUUVVGVExFTkJRVU1zVVVGQlVTeERRVUZETzFGQlEycENMRmRCUVZjc1JVRkJSU3hWUVVGVk8wOUJRM2hDTEVOQlFVTXNRMEZCUXp0TFFVTktMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETEVOQlFVTTdRVUZEYkVJc1IwRkJSenRCUVVOSU8wRkJRMEU3UVVGRFFUczdRVUZGUVN4RlFVRkZMRkZCUVZFc1JVRkJSU3hWUVVGVkxGTkJRVk1zUlVGQlJUdEJRVU5xUXpzN1NVRkZTU3hKUVVGSkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVMEZCVXl4RlFVRkZPMDFCUTNoQ0xFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNVVUZCVVN4RFFVRkRMRWxCUVVrc1EwRkJReXhuUWtGQlowSXNSVUZCUlN4RFFVRkRMRU5CUVVNN1FVRkRia1FzUzBGQlN6czdTVUZGUkN4SlFVRkpMRU5CUVVNc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eFJRVUZSTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1dVRkJXU3hGUVVGRk8wMUJRM2hFTEU5QlFVODdRVUZEWWl4TFFVRkxPMEZCUTB3N1FVRkRRVHM3UVVGRlFTeEpRVUZKTEVsQlFVa3NUMEZCVHl4SFFVRkhMRWxCUVVrc1EwRkJReXhoUVVGaExFTkJRVU1zVTBGQlV5eERRVUZETEVOQlFVTTdPMGxCUlRWRExGTkJRVk1zUTBGQlF5eFJRVUZSTEVOQlFVTTdUVUZEYWtJc1VVRkJVU3hGUVVGRkxFOUJRVTg3VFVGRGFrSXNXVUZCV1N4RlFVRkZMRWxCUVVrN1FVRkRlRUlzUzBGQlN5eEZRVUZGTEVsQlFVa3NRMEZCUXl4WlFVRlpMRU5CUVVNc1EwRkJRenM3UVVGRk1VSXNSMEZCUnp0QlFVTklPenRCUVVWQkxFVkJRVVVzWVVGQllTeEZRVUZGTEZWQlFWVXNVMEZCVXl4RlFVRkZMRXRCUVVzc1JVRkJSVHM3UVVGRk4wTXNTVUZCU1N4SlFVRkpMRTlCUVU4c1IwRkJSeXhKUVVGSkxFTkJRVU03TzBsQlJXNUNMRXRCUVVzc1IwRkJSeXhUUVVGVExFTkJRVU1zVFVGQlRTeExRVUZMTEVOQlFVTXNSMEZCUnl4TFFVRkxMRWRCUVVjc1UwRkJVeXhEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEVOQlFVTTdTVUZEYUVVc1NVRkJTU3hUUVVGVExFTkJRVU1zV1VGQldTeERRVUZETEUxQlFVMHNTMEZCU3l4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzU1VGQlNTeExRVUZMTEV0QlFVc3NSVUZCUlN4RFFVRkRMRVZCUVVVN1RVRkRMMFVzVTBGQlV5eERRVUZETEZsQlFWa3NRMEZCUXl4TFFVRkxMRU5CUVVNc2NVSkJRWEZDTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hWUVVGVkxFVkJRVVU3VVVGRGFFWXNTVUZCU1N4SlFVRkpMRWRCUVVjc1ZVRkJWU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0UlFVTnFReXhKUVVGSkxHTkJRV01zUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RlFVRkZMRU5CUVVNN1VVRkRiRU1zU1VGQlNTeEhRVUZITEVsQlFVa3NRMEZCUXl4SFFVRkhMRU5CUVVNc1ZVRkJWU3hIUVVGSExFVkJRVVU3VlVGRE4wSXNTVUZCU1R0WlFVTkdMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eEhRVUZITEVOQlFVTXNRMEZCUXp0WFFVTjRRaXhEUVVGRExFOUJRVThzUTBGQlF5eEZRVUZGTzFsQlExWXNUMEZCVHl4SFFVRkhMRU5CUVVNN1YwRkRXanRUUVVOR0xFTkJRVU1zUTBGQlF6dFJRVU5JTEVsQlFVa3NSMEZCUnl4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXp0UlFVTTFRaXhKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEdOQlFXTXNRMEZCUXl4RlFVRkZPMVZCUTNCRExFMUJRVTBzU1VGQlNTeExRVUZMTEVOQlFVTXNORU5CUVRSRExFZEJRVWNzWTBGQll5eERRVUZETEVOQlFVTTdVMEZEYUVZN1VVRkRSQ3hKUVVGSkxFTkJRVU1zWlVGQlpTeERRVUZETEdOQlFXTXNRMEZCUXl4RFFVRkRMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zWjBKQlFXZENMRVZCUVVVc1JVRkJSU3hKUVVGSkxFTkJRVU1zUlVGQlJUdFZRVU42UlN4UFFVRlBMRWRCUVVjc1MwRkJTeXhEUVVGRE8xTkJRMnBDTzA5QlEwWXNRMEZCUXl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU1zUTBGQlF6dExRVU5tTzBsQlEwUXNUMEZCVHl4UFFVRlBMRU5CUVVNN1FVRkRia0lzUjBGQlJ6dEJRVU5JTzBGQlEwRTdPMFZCUlVVc1dVRkJXU3hGUVVGRkxGbEJRVms3U1VGRGVFSXNTVUZCU1N4VlFVRlZMRWRCUVVjc1NVRkJTU3hEUVVGRE8wbEJRM1JDTEVsQlFVa3NUVUZCVFN4SFFVRkhMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU03UVVGRE4wSXNTVUZCU1N4SlFVRkpMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4RFFVRkRPMEZCUTNoRE8wRkJRMEU3TzBsQlJVa3NTVUZCU1N4dlFrRkJiMElzUjBGQlJ5eFpRVUZaTzAxQlEzSkRMRk5CUVZNc1EwRkJReXhQUVVGUExFTkJRVU1zVlVGQlZTeEpRVUZKTEVWQlFVVTdVVUZEYUVNc1NVRkJTU3hEUVVGRExFMUJRVTBzUTBGQlF5eEpRVUZKTEVOQlFVTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hGUVVGRk8xVkJRMmhETEZWQlFWVXNSMEZCUnl4TFFVRkxMRU5CUVVNN1UwRkRjRUk3UVVGRFZDeFBRVUZQTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhEUVVGRExFTkJRVU03TzAxQlJXUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJRenRSUVVOYUxFOUJRVThzUlVGQlJTeFZRVUZWTzBGQlF6TkNMRTlCUVU4c1EwRkJReXhEUVVGRE96dE5RVVZJTEVsQlFVa3NWVUZCVlN4RlFVRkZPMUZCUTJRc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFBRVUZQTEVWQlFVVXNRMEZCUXp0UFFVTjBRaXhOUVVGTk8xRkJRMHdzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4VFFVRlRMRVZCUVVVc1EwRkJRenRCUVVNdlFpeFBRVUZQTzBGQlExQTdPMDFCUlUwc1NVRkJTU3hEUVVGRExGRkJRVkVzUTBGQlF6dFJRVU5hTEZOQlFWTXNSVUZCUlN4SlFVRkpPMEZCUTNaQ0xFOUJRVThzUTBGQlF5eERRVUZET3p0QlFVVlVMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdRVUZEYWtJN1FVRkRRVHM3U1VGRlNTeFRRVUZUTEVOQlFVTXNUMEZCVHl4RFFVRkRMRlZCUVZVc1NVRkJTU3hGUVVGRkxFdEJRVXNzUlVGQlJUdE5RVU4yUXl4SlFVRkpMRk5CUVZNc1IwRkJSeXhOUVVGTkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdUVUZETjBJc1NVRkJTU3hQUVVGUExFZEJRVWNzU1VGQlNTeERRVUZETEdGQlFXRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenROUVVNMVF5eFRRVUZUTEVOQlFVTXNVVUZCVVN4RFFVRkRPMUZCUTJwQ0xGRkJRVkVzUlVGQlJTeFBRVUZQTzFGQlEycENMRmxCUVZrc1JVRkJSU3hKUVVGSk8wOUJRMjVDTEVWQlFVVXNTMEZCU3l4TFFVRkxMRk5CUVZNc1EwRkJReXhOUVVGTkxFZEJRVWNzUTBGQlF5eEhRVUZITEc5Q1FVRnZRaXhIUVVGSExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEzWkZMRXRCUVVzc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTnNRanRCUVVOQk96dEpRVVZKTEVsQlFVa3NRMEZCUXl4VFFVRlRMRU5CUVVNc1RVRkJUU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFRRVUZUTEVWQlFVVXNSVUZCUlR0TlFVTjZReXhKUVVGSkxFTkJRVU1zVVVGQlVTeERRVUZETzFGQlExb3NVMEZCVXl4RlFVRkZMRWxCUVVrN1QwRkRhRUlzUTBGQlF5eERRVUZETzB0QlEwbzdRVUZEVEN4SFFVRkhPMEZCUTBnN1FVRkRRVHM3UlVGRlJTeFpRVUZaTEVWQlFVVXNWVUZCVlN4VFFVRlRMRVZCUVVVN1NVRkRha01zU1VGQlNTeERRVUZETEUxQlFVMHNRMEZCUXl4VFFVRlRMRU5CUVVNc1MwRkJTeXhEUVVGRExFbEJRVWtzUTBGQlF5eEhRVUZITEZOQlFWTXNRMEZCUXp0SlFVTTVReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFZEJRVWNzVTBGQlV5eERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRU5CUVVNN1NVRkRNVVFzU1VGQlNTeERRVUZETEZGQlFWRXNRMEZCUXl4VFFVRlRMRU5CUVVNc1EwRkJRenRCUVVNM1FpeEhRVUZITzBGQlEwZzdRVUZEUVRzN1JVRkZSU3hqUVVGakxFVkJRVVVzVlVGQlZTeFRRVUZUTEVWQlFVVTdTVUZEYmtNc1QwRkJUeXhKUVVGSkxFTkJRVU1zVFVGQlRTeERRVUZETEZOQlFWTXNRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFTkJRVU03U1VGRGVrTXNUMEZCVHl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF5eExRVUZMTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN1IwRkRla003UVVGRFNDeEZRVUZGTEUxQlFVMHNSVUZCUlN4WlFVRlpPenRKUVVWc1FpeFBRVUZQTEV0QlFVc3NRMEZCUXl4SFFVRkhMRU5CUVVNc1NVRkJTU3hEUVVGRE8xRkJRMnhDTEZGQlFWRXNSVUZCUlN4SlFVRkpMRU5CUVVNc1RVRkJUVHRSUVVOeVFpeFRRVUZUTEVWQlFVVXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhUUVVGVE8wOUJRMmhETzAxQlEwUXNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhSUVVGUk8wRkJRM3BDTEV0QlFVc3NRMEZCUXpzN1IwRkZTRHRCUVVOSUxFTkJRVU1zUTBGQlF5eERRVUZET3p0QlFVVklMRWxCUVVrc1EwRkJReXhOUVVGTkxFTkJRVU1zVDBGQlR5eEpRVUZKTEVOQlFVTXNUVUZCVFN4RFFVRkRMRTFCUVUwc1MwRkJTeXhEUVVGRExFMUJRVTBzUTBGQlF5eE5RVUZOTEVsQlFVa3NRMEZCUXl4TlFVRk5MRU5CUVVNc1RVRkJUU3hEUVVGRExFZEJRVWNzUTBGQlF5eEZRVUZGTzBWQlF5OUZMRTFCUVUwc1EwRkJReXhOUVVGTkxFZEJRVWNzVFVGQlRTeERRVUZETzBGQlEzcENMRU5CUVVNN08wRkJSVVFzVFVGQlRTeERRVUZETEU5QlFVOHNSMEZCUnl4TlFVRk5MRU5CUVVNaUxDSnpiM1Z5WTJWelEyOXVkR1Z1ZENJNld5SjJZWElnVW1WaFkzUWdQU0JuYkc5aVlXd3VVbVZoWTNRZ2ZId2djbVZ4ZFdseVpTZ25jbVZoWTNRbktUdGNiblpoY2lCR2IzSnRjM2tnUFNCN2ZUdGNiblpoY2lCMllXeHBaR0YwYVc5dVVuVnNaWE1nUFNCeVpYRjFhWEpsS0NjdUwzWmhiR2xrWVhScGIyNVNkV3hsY3k1cWN5Y3BPMXh1ZG1GeUlIVjBhV3h6SUQwZ2NtVnhkV2x5WlNnbkxpOTFkR2xzY3k1cWN5Y3BPMXh1ZG1GeUlFMXBlR2x1SUQwZ2NtVnhkV2x5WlNnbkxpOU5hWGhwYmk1cWN5Y3BPMXh1ZG1GeUlHOXdkR2x2Ym5NZ1BTQjdmVHRjYmx4dVJtOXliWE41TGsxcGVHbHVJRDBnVFdsNGFXNDdYRzVjYmtadmNtMXplUzVrWldaaGRXeDBjeUE5SUdaMWJtTjBhVzl1SUNod1lYTnpaV1JQY0hScGIyNXpLU0I3WEc0Z0lHOXdkR2x2Ym5NZ1BTQndZWE56WldSUGNIUnBiMjV6TzF4dWZUdGNibHh1Um05eWJYTjVMbUZrWkZaaGJHbGtZWFJwYjI1U2RXeGxJRDBnWm5WdVkzUnBiMjRnS0c1aGJXVXNJR1oxYm1NcElIdGNiaUFnZG1Gc2FXUmhkR2x2YmxKMWJHVnpXMjVoYldWZElEMGdablZ1WXp0Y2JuMDdYRzVjYmtadmNtMXplUzVHYjNKdElEMGdVbVZoWTNRdVkzSmxZWFJsUTJ4aGMzTW9lMXh1SUNCblpYUkpibWwwYVdGc1UzUmhkR1U2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnYVhOV1lXeHBaRG9nZEhKMVpTeGNiaUFnSUNBZ0lHbHpVM1ZpYldsMGRHbHVaem9nWm1Gc2MyVXNYRzRnSUNBZ0lDQmpZVzVEYUdGdVoyVTZJR1poYkhObFhHNGdJQ0FnZlR0Y2JpQWdmU3hjYmlBZ1oyVjBSR1ZtWVhWc2RGQnliM0J6T2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUh0Y2JpQWdJQ0FnSUdobFlXUmxjbk02SUh0OUxGeHVJQ0FnSUNBZ2IyNVRkV05qWlhOek9pQm1kVzVqZEdsdmJpQW9LU0I3ZlN4Y2JpQWdJQ0FnSUc5dVJYSnliM0k2SUdaMWJtTjBhVzl1SUNncElIdDlMRnh1SUNBZ0lDQWdiMjVUZFdKdGFYUTZJR1oxYm1OMGFXOXVJQ2dwSUh0OUxGeHVJQ0FnSUNBZ2IyNVdZV3hwWkZOMVltMXBkRG9nWm5WdVkzUnBiMjRnS0NrZ2UzMHNYRzRnSUNBZ0lDQnZia2x1ZG1Gc2FXUlRkV0p0YVhRNklHWjFibU4wYVc5dUlDZ3BJSHQ5TEZ4dUlDQWdJQ0FnYjI1VGRXSnRhWFIwWldRNklHWjFibU4wYVc5dUlDZ3BJSHQ5TEZ4dUlDQWdJQ0FnYjI1V1lXeHBaRG9nWm5WdVkzUnBiMjRnS0NrZ2UzMHNYRzRnSUNBZ0lDQnZia2x1ZG1Gc2FXUTZJR1oxYm1OMGFXOXVJQ2dwSUh0OUxGeHVJQ0FnSUNBZ2IyNURhR0Z1WjJVNklHWjFibU4wYVc5dUlDZ3BJSHQ5WEc0Z0lDQWdmVHRjYmlBZ2ZTeGNibHh1SUNBdkx5QkJaR1FnWVNCdFlYQWdkRzhnYzNSdmNtVWdkR2hsSUdsdWNIVjBjeUJ2WmlCMGFHVWdabTl5YlN3Z1lTQnRiMlJsYkNCMGJ5QnpkRzl5WlZ4dUlDQXZMeUIwYUdVZ2RtRnNkV1Z6SUc5bUlIUm9aU0JtYjNKdElHRnVaQ0J5WldkcGMzUmxjaUJqYUdsc1pDQnBibkIxZEhOY2JpQWdZMjl0Y0c5dVpXNTBWMmxzYkUxdmRXNTBPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnZEdocGN5NXBibkIxZEhNZ1BTQjdmVHRjYmlBZ0lDQjBhR2x6TG0xdlpHVnNJRDBnZTMwN1hHNGdJQ0FnZEdocGN5NXlaV2RwYzNSbGNrbHVjSFYwY3loMGFHbHpMbkJ5YjNCekxtTm9hV3hrY21WdUtUdGNiaUFnZlN4Y2JseHVJQ0JqYjIxd2IyNWxiblJFYVdSTmIzVnVkRG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhSb2FYTXVkbUZzYVdSaGRHVkdiM0p0S0NrN1hHNGdJSDBzWEc1Y2JpQWdZMjl0Y0c5dVpXNTBWMmxzYkZWd1pHRjBaVG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhaaGNpQnBibkIxZEV0bGVYTWdQU0JQWW1wbFkzUXVhMlY1Y3loMGFHbHpMbWx1Y0hWMGN5azdYRzVjYmlBZ0lDQXZMeUJVYUdVZ2RYQmtZWFJsWkNCamFHbHNaSEpsYmlCaGNuSmhlU0JwY3lCdWIzUWdZWFpoYVd4aFlteGxJR2hsY21VZ1ptOXlJSE52YldVZ2NtVmhjMjl1TEZ4dUlDQWdJQzh2SUhkbElHNWxaV1FnZEc4Z2QyRnBkQ0JtYjNJZ2JtVjRkQ0JsZG1WdWRDQnNiMjl3WEc0Z0lDQWdjMlYwVkdsdFpXOTFkQ2htZFc1amRHbHZiaUFvS1NCN1hHNWNiaUFnSUNBZ0lDOHZJRlJvWlNCamIyMXdiMjVsYm5RZ2JXbG5hSFFnYUdGMlpTQmlaV1Z1SUhWdWJXOTFiblJsWkNCdmJpQmhibHh1SUNBZ0lDQWdMeThnZFhCa1lYUmxYRzRnSUNBZ0lDQnBaaUFvZEdocGN5NXBjMDF2ZFc1MFpXUW9LU2tnZTF4dVhHNGdJQ0FnSUNBZ0lIUm9hWE11Y21WbmFYTjBaWEpKYm5CMWRITW9kR2hwY3k1d2NtOXdjeTVqYUdsc1pISmxiaWs3WEc1Y2JpQWdJQ0FnSUNCcFppQW9kR2hwY3k1d2NtOXdjeTUyWVd4cFpHRjBhVzl1UlhKeWIzSnpLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTV6WlhSSmJuQjFkRlpoYkdsa1lYUnBiMjVGY25KdmNuTW9kR2hwY3k1d2NtOXdjeTUyWVd4cFpHRjBhVzl1UlhKeWIzSnpLVHRjYmlBZ0lDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNBZ0lIWmhjaUJ1WlhkSmJuQjFkRXRsZVhNZ1BTQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxtbHVjSFYwY3lrN1hHNGdJQ0FnSUNBZ0lHbG1JQ2gxZEdsc2N5NWhjbkpoZVhORWFXWm1aWElvYVc1d2RYUkxaWGx6TENCdVpYZEpibkIxZEV0bGVYTXBLU0I3WEc0Z0lDQWdJQ0FnSUNBZ2RHaHBjeTUyWVd4cFpHRjBaVVp2Y20wb0tUdGNiaUFnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrc0lEQXBPMXh1SUNCOUxGeHVYRzRnSUM4dklGVndaR0YwWlNCdGIyUmxiQ3dnYzNWaWJXbDBJSFJ2SUhWeWJDQndjbTl3SUdGdVpDQnpaVzVrSUhSb1pTQnRiMlJsYkZ4dUlDQnpkV0p0YVhRNklHWjFibU4wYVc5dUlDaGxkbVZ1ZENrZ2UxeHVJQ0FnSUdWMlpXNTBMbkJ5WlhabGJuUkVaV1poZFd4MEtDazdYRzVjYmlBZ0lDQXZMeUJVY21sbloyVnlJR1p2Y20wZ1lYTWdibTkwSUhCeWFYTjBhVzVsTGx4dUlDQWdJQzh2SUVsbUlHRnVlU0JwYm5CMWRITWdhR0YyWlNCdWIzUWdZbVZsYmlCMGIzVmphR1ZrSUhsbGRDQjBhR2x6SUhkcGJHd2diV0ZyWlNCMGFHVnRJR1JwY25SNVhHNGdJQ0FnTHk4Z2MyOGdkbUZzYVdSaGRHbHZiaUJpWldOdmJXVnpJSFpwYzJsaWJHVWdLR2xtSUdKaGMyVmtJRzl1SUdselVISnBjM1JwYm1VcFhHNGdJQ0FnZEdocGN5NXpaWFJHYjNKdFVISnBjM1JwYm1Vb1ptRnNjMlVwTzF4dVhHNGdJQ0FnTHk4Z1ZHOGdjM1Z3Y0c5eWRDQjFjMlVnWTJGelpYTWdkMmhsY21VZ2JtOGdZWE41Ym1NZ2IzSWdjbVZ4ZFdWemRDQnZjR1Z5WVhScGIyNGdhWE1nYm1WbFpHVmtMbHh1SUNBZ0lDOHZJRlJvWlNCY0ltOXVVM1ZpYldsMFhDSWdZMkZzYkdKaFkyc2dhWE1nWTJGc2JHVmtJSGRwZEdnZ2RHaGxJRzF2WkdWc0lHVXVaeTRnZTJacFpXeGtUbUZ0WlRvZ1hDSnRlVlpoYkhWbFhDSjlMRnh1SUNBZ0lDOHZJR2xtSUhkaGJuUnBibWNnZEc4Z2NtVnpaWFFnZEdobElHVnVkR2x5WlNCbWIzSnRJSFJ2SUc5eWFXZHBibUZzSUhOMFlYUmxMQ0IwYUdVZ2MyVmpiMjVrSUhCaGNtRnRJR2x6SUdFZ1kyRnNiR0poWTJzZ1ptOXlJSFJvYVhNdVhHNGdJQ0FnYVdZZ0tDRjBhR2x6TG5CeWIzQnpMblZ5YkNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTUxY0dSaGRHVk5iMlJsYkNncE8xeHVJQ0FnSUNBZ2RtRnlJRzF2WkdWc0lEMGdkR2hwY3k1dFlYQk5iMlJsYkNncE8xeHVJQ0FnSUNBZ2RHaHBjeTV3Y205d2N5NXZibE4xWW0xcGRDaHRiMlJsYkN3Z2RHaHBjeTV5WlhObGRFMXZaR1ZzTENCMGFHbHpMblZ3WkdGMFpVbHVjSFYwYzFkcGRHaEZjbkp2Y2lrN1hHNGdJQ0FnSUNCMGFHbHpMbk4wWVhSbExtbHpWbUZzYVdRZ1B5QjBhR2x6TG5CeWIzQnpMbTl1Vm1Gc2FXUlRkV0p0YVhRb2JXOWtaV3dzSUhSb2FYTXVjbVZ6WlhSTmIyUmxiQ2tnT2lCMGFHbHpMbkJ5YjNCekxtOXVTVzUyWVd4cFpGTjFZbTFwZENodGIyUmxiQ3dnZEdocGN5NXlaWE5sZEUxdlpHVnNLVHRjYmlBZ0lDQWdJSEpsZEhWeWJqdGNiaUFnSUNCOVhHNWNiaUFnSUNCMGFHbHpMblZ3WkdGMFpVMXZaR1ZzS0NrN1hHNGdJQ0FnZEdocGN5NXpaWFJUZEdGMFpTaDdYRzRnSUNBZ0lDQnBjMU4xWW0xcGRIUnBibWM2SUhSeWRXVmNiaUFnSUNCOUtUdGNibHh1SUNBZ0lIUm9hWE11Y0hKdmNITXViMjVUZFdKdGFYUW9kR2hwY3k1dFlYQk5iMlJsYkNncExDQjBhR2x6TG5KbGMyVjBUVzlrWld3c0lIUm9hWE11ZFhCa1lYUmxTVzV3ZFhSelYybDBhRVZ5Y205eUtUdGNibHh1SUNBZ0lIWmhjaUJvWldGa1pYSnpJRDBnS0U5aWFtVmpkQzVyWlhsektIUm9hWE11Y0hKdmNITXVhR1ZoWkdWeWN5a3ViR1Z1WjNSb0lDWW1JSFJvYVhNdWNISnZjSE11YUdWaFpHVnljeWtnZkh3Z2IzQjBhVzl1Y3k1b1pXRmtaWEp6SUh4OElIdDlPMXh1WEc0Z0lDQWdkbUZ5SUcxbGRHaHZaQ0E5SUhSb2FYTXVjSEp2Y0hNdWJXVjBhRzlrSUNZbUlIVjBhV3h6TG1GcVlYaGJkR2hwY3k1d2NtOXdjeTV0WlhSb2IyUXVkRzlNYjNkbGNrTmhjMlVvS1YwZ1B5QjBhR2x6TG5CeWIzQnpMbTFsZEdodlpDNTBiMHh2ZDJWeVEyRnpaU2dwSURvZ0ozQnZjM1FuTzF4dUlDQWdJSFYwYVd4ekxtRnFZWGhiYldWMGFHOWtYU2gwYUdsekxuQnliM0J6TG5WeWJDd2dkR2hwY3k1dFlYQk5iMlJsYkNncExDQjBhR2x6TG5CeWIzQnpMbU52Ym5SbGJuUlVlWEJsSUh4OElHOXdkR2x2Ym5NdVkyOXVkR1Z1ZEZSNWNHVWdmSHdnSjJwemIyNG5MQ0JvWldGa1pYSnpLVnh1SUNBZ0lDQWdMblJvWlc0b1puVnVZM1JwYjI0Z0tISmxjM0J2Ym5ObEtTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWNISnZjSE11YjI1VGRXTmpaWE56S0hKbGMzQnZibk5sS1R0Y2JpQWdJQ0FnSUNBZ2RHaHBjeTV3Y205d2N5NXZibE4xWW0xcGRIUmxaQ2dwTzF4dUlDQWdJQ0FnZlM1aWFXNWtLSFJvYVhNcEtWeHVJQ0FnSUNBZ0xtTmhkR05vS0hSb2FYTXVabUZwYkZOMVltMXBkQ2s3WEc0Z0lIMHNYRzVjYmlBZ2JXRndUVzlrWld3NklHWjFibU4wYVc5dUlDZ3BJSHRjYmlBZ0lDQnlaWFIxY200Z2RHaHBjeTV3Y205d2N5NXRZWEJ3YVc1bklEOGdkR2hwY3k1d2NtOXdjeTV0WVhCd2FXNW5LSFJvYVhNdWJXOWtaV3dwSURvZ2RHaHBjeTV0YjJSbGJEdGNiaUFnZlN4Y2JseHVJQ0F2THlCSGIyVnpJSFJvY205MVoyZ2dZV3hzSUhKbFoybHpkR1Z5WldRZ1kyOXRjRzl1Wlc1MGN5QmhibVJjYmlBZ0x5OGdkWEJrWVhSbGN5QjBhR1VnYlc5a1pXd2dkbUZzZFdWelhHNGdJSFZ3WkdGMFpVMXZaR1ZzT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ1QySnFaV04wTG10bGVYTW9kR2hwY3k1cGJuQjFkSE1wTG1admNrVmhZMmdvWm5WdVkzUnBiMjRnS0c1aGJXVXBJSHRjYmlBZ0lDQWdJSFpoY2lCamIyMXdiMjVsYm5RZ1BTQjBhR2x6TG1sdWNIVjBjMXR1WVcxbFhUdGNiaUFnSUNBZ0lIUm9hWE11Ylc5a1pXeGJibUZ0WlYwZ1BTQmpiMjF3YjI1bGJuUXVjM1JoZEdVdVgzWmhiSFZsTzF4dUlDQWdJSDB1WW1sdVpDaDBhR2x6S1NrN1hHNGdJSDBzWEc1Y2JpQWdMeThnVW1WelpYUWdaV0ZqYUNCclpYa2dhVzRnZEdobElHMXZaR1ZzSUhSdklIUm9aU0J2Y21sbmFXNWhiQ0F2SUdsdWFYUnBZV3dnZG1Gc2RXVmNiaUFnY21WelpYUk5iMlJsYkRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lFOWlhbVZqZEM1clpYbHpLSFJvYVhNdWFXNXdkWFJ6S1M1bWIzSkZZV05vS0daMWJtTjBhVzl1SUNodVlXMWxLU0I3WEc0Z0lDQWdJQ0IwYUdsekxtbHVjSFYwYzF0dVlXMWxYUzV5WlhObGRGWmhiSFZsS0NrN1hHNGdJQ0FnZlM1aWFXNWtLSFJvYVhNcEtUdGNiaUFnSUNCMGFHbHpMblpoYkdsa1lYUmxSbTl5YlNncE8xeHVJQ0I5TEZ4dVhHNGdJSE5sZEVsdWNIVjBWbUZzYVdSaGRHbHZia1Z5Y205eWN6b2dablZ1WTNScGIyNGdLR1Z5Y205eWN5a2dlMXh1SUNBZ0lDQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxtbHVjSFYwY3lrdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb2JtRnRaU3dnYVc1a1pYZ3BJSHRjYmlBZ0lDQWdJSFpoY2lCamIyMXdiMjVsYm5RZ1BTQjBhR2x6TG1sdWNIVjBjMXR1WVcxbFhUdGNiaUFnSUNBZ0lIWmhjaUJoY21keklEMGdXM3RjYmlBZ0lDQWdJQ0FnWDJselZtRnNhV1E2SUNFb2JtRnRaU0JwYmlCbGNuSnZjbk1wTEZ4dUlDQWdJQ0FnSUNCZmMyVnlkbVZ5UlhKeWIzSTZJR1Z5Y205eWMxdHVZVzFsWFZ4dUlDQWdJQ0FnZlYwN1hHNGdJQ0FnSUNCamIyMXdiMjVsYm5RdWMyVjBVM1JoZEdVdVlYQndiSGtvWTI5dGNHOXVaVzUwTENCaGNtZHpLVHRjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtwT3lBZ0lGeHVJQ0I5TEZ4dVhHNGdJQzh2SUVkdklIUm9jbTkxWjJnZ1pYSnliM0p6SUdaeWIyMGdjMlZ5ZG1WeUlHRnVaQ0JuY21GaUlIUm9aU0JqYjIxd2IyNWxiblJ6WEc0Z0lDOHZJSE4wYjNKbFpDQnBiaUIwYUdVZ2FXNXdkWFJ6SUcxaGNDNGdRMmhoYm1kbElIUm9aV2x5SUhOMFlYUmxJSFJ2SUdsdWRtRnNhV1JjYmlBZ0x5OGdZVzVrSUhObGRDQjBhR1VnYzJWeWRtVnlSWEp5YjNJZ2JXVnpjMkZuWlZ4dUlDQjFjR1JoZEdWSmJuQjFkSE5YYVhSb1JYSnliM0k2SUdaMWJtTjBhVzl1SUNobGNuSnZjbk1wSUh0Y2JpQWdJQ0JQWW1wbFkzUXVhMlY1Y3lobGNuSnZjbk1wTG1admNrVmhZMmdvWm5WdVkzUnBiMjRnS0c1aGJXVXNJR2x1WkdWNEtTQjdYRzRnSUNBZ0lDQjJZWElnWTI5dGNHOXVaVzUwSUQwZ2RHaHBjeTVwYm5CMWRITmJibUZ0WlYwN1hHNWNiaUFnSUNBZ0lHbG1JQ2doWTI5dGNHOXVaVzUwS1NCN1hHNGdJQ0FnSUNBZ0lIUm9jbTkzSUc1bGR5QkZjbkp2Y2lnbldXOTFJR0Z5WlNCMGNubHBibWNnZEc4Z2RYQmtZWFJsSUdGdUlHbHVjSFYwSUhSb1lYUWdaRzlsY3lCdWIzUWdaWGhwYzNSekxpQldaWEpwWm5rZ1pYSnliM0p6SUc5aWFtVmpkQ0IzYVhSb0lHbHVjSFYwSUc1aGJXVnpMaUFuSUNzZ1NsTlBUaTV6ZEhKcGJtZHBabmtvWlhKeWIzSnpLU2s3WEc0Z0lDQWdJQ0I5WEc1Y2JpQWdJQ0FnSUhaaGNpQmhjbWR6SUQwZ1czdGNiaUFnSUNBZ0lDQWdYMmx6Vm1Gc2FXUTZJR1poYkhObExGeHVJQ0FnSUNBZ0lDQmZjMlZ5ZG1WeVJYSnliM0k2SUdWeWNtOXljMXR1WVcxbFhWeHVJQ0FnSUNBZ2ZWMDdYRzRnSUNBZ0lDQmpiMjF3YjI1bGJuUXVjMlYwVTNSaGRHVXVZWEJ3Ykhrb1kyOXRjRzl1Wlc1MExDQmhjbWR6S1R0Y2JpQWdJQ0I5TG1KcGJtUW9kR2hwY3lrcE8xeHVJQ0I5TEZ4dVhHNGdJR1poYVd4VGRXSnRhWFE2SUdaMWJtTjBhVzl1SUNobGNuSnZjbk1wSUh0Y2JpQWdJQ0IwYUdsekxuVndaR0YwWlVsdWNIVjBjMWRwZEdoRmNuSnZjaWhsY25KdmNuTXBPMXh1SUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnYVhOVGRXSnRhWFIwYVc1bk9pQm1ZV3h6WlZ4dUlDQWdJSDBwTzF4dUlDQWdJSFJvYVhNdWNISnZjSE11YjI1RmNuSnZjaWhsY25KdmNuTXBPMXh1SUNBZ0lIUm9hWE11Y0hKdmNITXViMjVUZFdKdGFYUjBaV1FvS1R0Y2JpQWdmU3hjYmx4dUlDQXZMeUJVY21GMlpYSnpaU0IwYUdVZ1kyaHBiR1J5Wlc0Z1lXNWtJR05vYVd4a2NtVnVJRzltSUdOb2FXeGtjbVZ1SUhSdklHWnBibVJjYmlBZ0x5OGdZV3hzSUdsdWNIVjBjeUJpZVNCamFHVmphMmx1WnlCMGFHVWdibUZ0WlNCd2NtOXdMaUJOWVhsaVpTQmtieUJoSUdKbGRIUmxjbHh1SUNBdkx5QmphR1ZqYXlCb1pYSmxYRzRnSUhKbFoybHpkR1Z5U1c1d2RYUnpPaUJtZFc1amRHbHZiaUFvWTJocGJHUnlaVzRwSUh0Y2JpQWdJQ0JTWldGamRDNURhR2xzWkhKbGJpNW1iM0pGWVdOb0tHTm9hV3hrY21WdUxDQm1kVzVqZEdsdmJpQW9ZMmhwYkdRcElIdGNibHh1SUNBZ0lDQWdhV1lnS0dOb2FXeGtJQ1ltSUdOb2FXeGtMbkJ5YjNCeklDWW1JR05vYVd4a0xuQnliM0J6TG01aGJXVXBJSHRjYmlBZ0lDQWdJQ0FnWTJocGJHUXVjSEp2Y0hNdVgyRjBkR0ZqYUZSdlJtOXliU0E5SUhSb2FYTXVZWFIwWVdOb1ZHOUdiM0p0TzF4dUlDQWdJQ0FnSUNCamFHbHNaQzV3Y205d2N5NWZaR1YwWVdOb1JuSnZiVVp2Y20wZ1BTQjBhR2x6TG1SbGRHRmphRVp5YjIxR2IzSnRPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNXdjbTl3Y3k1ZmRtRnNhV1JoZEdVZ1BTQjBhR2x6TG5aaGJHbGtZWFJsTzF4dUlDQWdJQ0FnSUNCamFHbHNaQzV3Y205d2N5NWZhWE5HYjNKdFJHbHpZV0pzWldRZ1BTQjBhR2x6TG1selJtOXliVVJwYzJGaWJHVmtPMXh1SUNBZ0lDQWdJQ0JqYUdsc1pDNXdjbTl3Y3k1ZmFYTldZV3hwWkZaaGJIVmxJRDBnZEdocGN5NXlkVzVXWVd4cFpHRjBhVzl1TzF4dUlDQWdJQ0FnZlZ4dVhHNGdJQ0FnSUNCcFppQW9ZMmhwYkdRZ0ppWWdZMmhwYkdRdWNISnZjSE1nSmlZZ1kyaHBiR1F1Y0hKdmNITXVZMmhwYkdSeVpXNHBJSHRjYmlBZ0lDQWdJQ0FnZEdocGN5NXlaV2RwYzNSbGNrbHVjSFYwY3loamFHbHNaQzV3Y205d2N5NWphR2xzWkhKbGJpazdYRzRnSUNBZ0lDQjlYRzVjYmlBZ0lDQjlMbUpwYm1Rb2RHaHBjeWtwTzF4dUlDQjlMRnh1WEc0Z0lHbHpSbTl5YlVScGMyRmliR1ZrT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjSEp2Y0hNdVpHbHpZV0pzWldRN1hHNGdJSDBzWEc1Y2JpQWdaMlYwUTNWeWNtVnVkRlpoYkhWbGN6b2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQlBZbXBsWTNRdWEyVjVjeWgwYUdsekxtbHVjSFYwY3lrdWNtVmtkV05sS0daMWJtTjBhVzl1SUNoa1lYUmhMQ0J1WVcxbEtTQjdYRzRnSUNBZ0lDQjJZWElnWTI5dGNHOXVaVzUwSUQwZ2RHaHBjeTVwYm5CMWRITmJibUZ0WlYwN1hHNGdJQ0FnSUNCa1lYUmhXMjVoYldWZElEMGdZMjl0Y0c5dVpXNTBMbk4wWVhSbExsOTJZV3gxWlR0Y2JpQWdJQ0FnSUhKbGRIVnliaUJrWVhSaE8xeHVJQ0FnSUgwdVltbHVaQ2gwYUdsektTd2dlMzBwTzF4dUlDQjlMRnh1WEc0Z0lITmxkRVp2Y20xUWNtbHpkR2x1WlRvZ1puVnVZM1JwYjI0Z0tHbHpVSEpwYzNScGJtVXBJSHRjYmlBZ0lDQjJZWElnYVc1d2RYUnpJRDBnZEdocGN5NXBibkIxZEhNN1hHNGdJQ0FnZG1GeUlHbHVjSFYwUzJWNWN5QTlJRTlpYW1WamRDNXJaWGx6S0dsdWNIVjBjeWs3WEc1Y2JpQWdJQ0F2THlCSmRHVnlZWFJsSUhSb2NtOTFaMmdnWldGamFDQmpiMjF3YjI1bGJuUWdZVzVrSUhObGRDQnBkQ0JoY3lCd2NtbHpkR2x1WlZ4dUlDQWdJQzh2SUc5eUlGd2laR2x5ZEhsY0lpNWNiaUFnSUNCcGJuQjFkRXRsZVhNdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb2JtRnRaU3dnYVc1a1pYZ3BJSHRjYmlBZ0lDQWdJSFpoY2lCamIyMXdiMjVsYm5RZ1BTQnBibkIxZEhOYmJtRnRaVjA3WEc0Z0lDQWdJQ0JqYjIxd2IyNWxiblF1YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnSUNCZmFYTlFjbWx6ZEdsdVpUb2dhWE5RY21semRHbHVaVnh1SUNBZ0lDQWdmU2s3WEc0Z0lDQWdmUzVpYVc1a0tIUm9hWE1wS1R0Y2JpQWdmU3hjYmx4dUlDQXZMeUJWYzJVZ2RHaGxJR0pwYm1SbFpDQjJZV3gxWlhNZ1lXNWtJSFJvWlNCaFkzUjFZV3dnYVc1d2RYUWdkbUZzZFdVZ2RHOWNiaUFnTHk4Z2RtRnNhV1JoZEdVZ2RHaGxJR2x1Y0hWMElHRnVaQ0J6WlhRZ2FYUnpJSE4wWVhSbExpQlVhR1Z1SUdOb1pXTnJJSFJvWlZ4dUlDQXZMeUJ6ZEdGMFpTQnZaaUIwYUdVZ1ptOXliU0JwZEhObGJHWmNiaUFnZG1Gc2FXUmhkR1U2SUdaMWJtTjBhVzl1SUNoamIyMXdiMjVsYm5RcElIdGNibHh1SUNBZ0lDOHZJRlJ5YVdkblpYSWdiMjVEYUdGdVoyVmNiaUFnSUNCcFppQW9kR2hwY3k1emRHRjBaUzVqWVc1RGFHRnVaMlVwSUh0Y2JpQWdJQ0FnSUhSb2FYTXVjSEp2Y0hNdWIyNURhR0Z1WjJVb2RHaHBjeTVuWlhSRGRYSnlaVzUwVm1Gc2RXVnpLQ2twTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNnaFkyOXRjRzl1Wlc1MExuQnliM0J6TG5KbGNYVnBjbVZrSUNZbUlDRmpiMjF3YjI1bGJuUXVYM1poYkdsa1lYUnBiMjV6S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTQ3WEc0Z0lDQWdmVnh1WEc0Z0lDQWdMeThnVW5WdUlIUm9jbTkxWjJnZ2RHaGxJSFpoYkdsa1lYUnBiMjV6TENCemNHeHBkQ0IwYUdWdElIVndJR0Z1WkNCallXeHNYRzRnSUNBZ0x5OGdkR2hsSUhaaGJHbGtZWFJ2Y2lCSlJpQjBhR1Z5WlNCcGN5QmhJSFpoYkhWbElHOXlJR2wwSUdseklISmxjWFZwY21Wa1hHNGdJQ0FnZG1GeUlHbHpWbUZzYVdRZ1BTQjBhR2x6TG5KMWJsWmhiR2xrWVhScGIyNG9ZMjl0Y0c5dVpXNTBLVHRjYmx4dUlDQWdJR052YlhCdmJtVnVkQzV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0JmYVhOV1lXeHBaRG9nYVhOV1lXeHBaQ3hjYmlBZ0lDQWdJRjl6WlhKMlpYSkZjbkp2Y2pvZ2JuVnNiRnh1SUNBZ0lIMHNJSFJvYVhNdWRtRnNhV1JoZEdWR2IzSnRLVHRjYmx4dUlDQjlMRnh1WEc0Z0lDOHZJRU5vWldOcmN5QjJZV3hwWkdGMGFXOXVJRzl1SUdOMWNuSmxiblFnZG1Gc2RXVWdiM0lnWVNCd1lYTnpaV1FnZG1Gc2RXVmNiaUFnY25WdVZtRnNhV1JoZEdsdmJqb2dablZ1WTNScGIyNGdLR052YlhCdmJtVnVkQ3dnZG1Gc2RXVXBJSHRjYmx4dUlDQWdJSFpoY2lCcGMxWmhiR2xrSUQwZ2RISjFaVHRjYmlBZ0lDQmNiaUFnSUNCMllXeDFaU0E5SUdGeVozVnRaVzUwY3k1c1pXNW5kR2dnUFQwOUlESWdQeUIyWVd4MVpTQTZJR052YlhCdmJtVnVkQzV6ZEdGMFpTNWZkbUZzZFdVN1hHNGdJQ0FnYVdZZ0tHTnZiWEJ2Ym1WdWRDNWZkbUZzYVdSaGRHbHZibk11YkdWdVozUm9JQ1ltSUNoamIyMXdiMjVsYm5RdWNISnZjSE11Y21WeGRXbHlaV1FnZkh3Z2RtRnNkV1VnSVQwOUlDY25LU2tnZTF4dUlDQWdJQ0FnWTI5dGNHOXVaVzUwTGw5MllXeHBaR0YwYVc5dWN5NXpjR3hwZENndlhGd3NLRDhoVzE1N1hGeGJYU3BiZlZ4Y1hWMHBMMmNwTG1admNrVmhZMmdvWm5WdVkzUnBiMjRnS0haaGJHbGtZWFJwYjI0cElIdGNiaUFnSUNBZ0lDQWdkbUZ5SUdGeVozTWdQU0IyWVd4cFpHRjBhVzl1TG5Od2JHbDBLQ2M2SnlrN1hHNGdJQ0FnSUNBZ0lIWmhjaUIyWVd4cFpHRjBaVTFsZEdodlpDQTlJR0Z5WjNNdWMyaHBablFvS1R0Y2JpQWdJQ0FnSUNBZ1lYSm5jeUE5SUdGeVozTXViV0Z3S0daMWJtTjBhVzl1SUNoaGNtY3BJSHRjYmlBZ0lDQWdJQ0FnSUNCMGNua2dlMXh1SUNBZ0lDQWdJQ0FnSUNBZ2NtVjBkWEp1SUVwVFQwNHVjR0Z5YzJVb1lYSm5LVHRjYmlBZ0lDQWdJQ0FnSUNCOUlHTmhkR05vSUNobEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpYUjFjbTRnWVhKbk95QXZMeUJKZENCcGN5QmhJSE4wY21sdVp5QnBaaUJwZENCallXNGdibTkwSUhCaGNuTmxJR2wwWEc0Z0lDQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ0lDQjlLVHRjYmlBZ0lDQWdJQ0FnWVhKbmN5QTlJRnQyWVd4MVpWMHVZMjl1WTJGMEtHRnlaM01wTzF4dUlDQWdJQ0FnSUNCcFppQW9JWFpoYkdsa1lYUnBiMjVTZFd4bGMxdDJZV3hwWkdGMFpVMWxkR2h2WkYwcElIdGNiaUFnSUNBZ0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMFp2Y20xemVTQmtiMlZ6SUc1dmRDQm9ZWFpsSUhSb1pTQjJZV3hwWkdGMGFXOXVJSEoxYkdVNklDY2dLeUIyWVd4cFpHRjBaVTFsZEdodlpDazdYRzRnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnYVdZZ0tDRjJZV3hwWkdGMGFXOXVVblZzWlhOYmRtRnNhV1JoZEdWTlpYUm9iMlJkTG1Gd2NHeDVLSFJvYVhNdVoyVjBRM1Z5Y21WdWRGWmhiSFZsY3lncExDQmhjbWR6S1NrZ2UxeHVJQ0FnSUNBZ0lDQWdJR2x6Vm1Gc2FXUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmUzVpYVc1a0tIUm9hWE1wS1R0Y2JpQWdJQ0I5WEc0Z0lDQWdjbVYwZFhKdUlHbHpWbUZzYVdRN1hHNGdJSDBzWEc1Y2JpQWdMeThnVm1Gc2FXUmhkR1VnZEdobElHWnZjbTBnWW5rZ1oyOXBibWNnZEdoeWIzVm5hQ0JoYkd3Z1kyaHBiR1FnYVc1d2RYUWdZMjl0Y0c5dVpXNTBjMXh1SUNBdkx5QmhibVFnWTJobFkyc2dkR2hsYVhJZ2MzUmhkR1ZjYmlBZ2RtRnNhV1JoZEdWR2IzSnRPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnZG1GeUlHRnNiRWx6Vm1Gc2FXUWdQU0IwY25WbE8xeHVJQ0FnSUhaaGNpQnBibkIxZEhNZ1BTQjBhR2x6TG1sdWNIVjBjenRjYmlBZ0lDQjJZWElnYVc1d2RYUkxaWGx6SUQwZ1QySnFaV04wTG10bGVYTW9hVzV3ZFhSektUdGNibHh1SUNBZ0lDOHZJRmRsSUc1bFpXUWdZU0JqWVd4c1ltRmpheUJoY3lCM1pTQmhjbVVnZG1Gc2FXUmhkR2x1WnlCaGJHd2dhVzV3ZFhSeklHRm5ZV2x1TGlCVWFHbHpJSGRwYkd4Y2JpQWdJQ0F2THlCeWRXNGdkMmhsYmlCMGFHVWdiR0Z6ZENCamIyMXdiMjVsYm5RZ2FHRnpJSE5sZENCcGRITWdjM1JoZEdWY2JpQWdJQ0IyWVhJZ2IyNVdZV3hwWkdGMGFXOXVRMjl0Y0d4bGRHVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNCcGJuQjFkRXRsZVhNdVptOXlSV0ZqYUNobWRXNWpkR2x2YmlBb2JtRnRaU2tnZTF4dUlDQWdJQ0FnSUNCcFppQW9JV2x1Y0hWMGMxdHVZVzFsWFM1emRHRjBaUzVmYVhOV1lXeHBaQ2tnZTF4dUlDQWdJQ0FnSUNBZ0lHRnNiRWx6Vm1Gc2FXUWdQU0JtWVd4elpUdGNiaUFnSUNBZ0lDQWdmVnh1SUNBZ0lDQWdmUzVpYVc1a0tIUm9hWE1wS1R0Y2JseHVJQ0FnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0FnSUdselZtRnNhV1E2SUdGc2JFbHpWbUZzYVdSY2JpQWdJQ0FnSUgwcE8xeHVYRzRnSUNBZ0lDQnBaaUFvWVd4c1NYTldZV3hwWkNrZ2UxeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CeWIzQnpMbTl1Vm1Gc2FXUW9LVHRjYmlBZ0lDQWdJSDBnWld4elpTQjdYRzRnSUNBZ0lDQWdJSFJvYVhNdWNISnZjSE11YjI1SmJuWmhiR2xrS0NrN1hHNGdJQ0FnSUNCOVhHNWNiaUFnSUNBZ0lDOHZJRlJsYkd3Z2RHaGxJR1p2Y20wZ2RHaGhkQ0JwZENCallXNGdjM1JoY25RZ2RHOGdkSEpwWjJkbGNpQmphR0Z1WjJVZ1pYWmxiblJ6WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRk4wWVhSbEtIdGNiaUFnSUNBZ0lDQWdZMkZ1UTJoaGJtZGxPaUIwY25WbFhHNGdJQ0FnSUNCOUtUdGNibHh1SUNBZ0lIMHVZbWx1WkNoMGFHbHpLVHRjYmx4dUlDQWdJQzh2SUZKMWJpQjJZV3hwWkdGMGFXOXVJR0ZuWVdsdUlHbHVJR05oYzJVZ1lXWm1aV04wWldRZ1lua2diM1JvWlhJZ2FXNXdkWFJ6TGlCVWFHVmNiaUFnSUNBdkx5QnNZWE4wSUdOdmJYQnZibVZ1ZENCMllXeHBaR0YwWldRZ2QybHNiQ0J5ZFc0Z2RHaGxJRzl1Vm1Gc2FXUmhkR2x2YmtOdmJYQnNaWFJsSUdOaGJHeGlZV05yWEc0Z0lDQWdhVzV3ZFhSTFpYbHpMbVp2Y2tWaFkyZ29ablZ1WTNScGIyNGdLRzVoYldVc0lHbHVaR1Y0S1NCN1hHNGdJQ0FnSUNCMllYSWdZMjl0Y0c5dVpXNTBJRDBnYVc1d2RYUnpXMjVoYldWZE8xeHVJQ0FnSUNBZ2RtRnlJR2x6Vm1Gc2FXUWdQU0IwYUdsekxuSjFibFpoYkdsa1lYUnBiMjRvWTI5dGNHOXVaVzUwS1R0Y2JpQWdJQ0FnSUdOdmJYQnZibVZ1ZEM1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNBZ0lGOXBjMVpoYkdsa09pQnBjMVpoYkdsa0xGeHVJQ0FnSUNBZ0lDQmZjMlZ5ZG1WeVJYSnliM0k2SUc1MWJHeGNiaUFnSUNBZ0lIMHNJR2x1WkdWNElEMDlQU0JwYm5CMWRFdGxlWE11YkdWdVozUm9JQzBnTVNBL0lHOXVWbUZzYVdSaGRHbHZia052YlhCc1pYUmxJRG9nYm5Wc2JDazdYRzRnSUNBZ2ZTNWlhVzVrS0hSb2FYTXBLVHRjYmx4dUlDQWdJQzh2SUVsbUlIUm9aWEpsSUdGeVpTQnVieUJwYm5CMWRITXNJSE5sZENCemRHRjBaU0IzYUdWeVpTQm1iM0p0SUdseklISmxZV1I1SUhSdklIUnlhV2RuWlhKY2JpQWdJQ0F2THlCamFHRnVaMlVnWlhabGJuUXVJRTVsZHlCcGJuQjFkSE1nYldsbmFIUWdZbVVnWVdSa1pXUWdiR0YwWlhKY2JpQWdJQ0JwWmlBb0lXbHVjSFYwUzJWNWN5NXNaVzVuZEdnZ0ppWWdkR2hwY3k1cGMwMXZkVzUwWldRb0tTa2dlMXh1SUNBZ0lDQWdkR2hwY3k1elpYUlRkR0YwWlNoN1hHNGdJQ0FnSUNBZ0lHTmhia05vWVc1blpUb2dkSEoxWlZ4dUlDQWdJQ0FnZlNrN1hHNGdJQ0FnZlZ4dUlDQjlMRnh1WEc0Z0lDOHZJRTFsZEdodlpDQndkWFFnYjI0Z1pXRmphQ0JwYm5CMWRDQmpiMjF3YjI1bGJuUWdkRzhnY21WbmFYTjBaWEpjYmlBZ0x5OGdhWFJ6Wld4bUlIUnZJSFJvWlNCbWIzSnRYRzRnSUdGMGRHRmphRlJ2Um05eWJUb2dablZ1WTNScGIyNGdLR052YlhCdmJtVnVkQ2tnZTF4dUlDQWdJSFJvYVhNdWFXNXdkWFJ6VzJOdmJYQnZibVZ1ZEM1d2NtOXdjeTV1WVcxbFhTQTlJR052YlhCdmJtVnVkRHRjYmlBZ0lDQjBhR2x6TG0xdlpHVnNXMk52YlhCdmJtVnVkQzV3Y205d2N5NXVZVzFsWFNBOUlHTnZiWEJ2Ym1WdWRDNXpkR0YwWlM1ZmRtRnNkV1U3WEc0Z0lDQWdkR2hwY3k1MllXeHBaR0YwWlNoamIyMXdiMjVsYm5RcE8xeHVJQ0I5TEZ4dVhHNGdJQzh2SUUxbGRHaHZaQ0J3ZFhRZ2IyNGdaV0ZqYUNCcGJuQjFkQ0JqYjIxd2IyNWxiblFnZEc4Z2RXNXlaV2RwYzNSbGNseHVJQ0F2THlCcGRITmxiR1lnWm5KdmJTQjBhR1VnWm05eWJWeHVJQ0JrWlhSaFkyaEdjbTl0Um05eWJUb2dablZ1WTNScGIyNGdLR052YlhCdmJtVnVkQ2tnZTF4dUlDQWdJR1JsYkdWMFpTQjBhR2x6TG1sdWNIVjBjMXRqYjIxd2IyNWxiblF1Y0hKdmNITXVibUZ0WlYwN1hHNGdJQ0FnWkdWc1pYUmxJSFJvYVhNdWJXOWtaV3hiWTI5dGNHOXVaVzUwTG5CeWIzQnpMbTVoYldWZE8xeHVJQ0I5TEZ4dUlDQnlaVzVrWlhJNklHWjFibU4wYVc5dUlDZ3BJSHRjYmx4dUlDQWdJSEpsZEhWeWJpQlNaV0ZqZEM1RVQwMHVabTl5YlNoN1hHNGdJQ0FnSUNBZ0lHOXVVM1ZpYldsME9pQjBhR2x6TG5OMVltMXBkQ3hjYmlBZ0lDQWdJQ0FnWTJ4aGMzTk9ZVzFsT2lCMGFHbHpMbkJ5YjNCekxtTnNZWE56VG1GdFpWeHVJQ0FnSUNBZ2ZTeGNiaUFnSUNBZ0lIUm9hWE11Y0hKdmNITXVZMmhwYkdSeVpXNWNiaUFnSUNBcE8xeHVYRzRnSUgxY2JuMHBPMXh1WEc1cFppQW9JV2RzYjJKaGJDNWxlSEJ2Y25SeklDWW1JQ0ZuYkc5aVlXd3ViVzlrZFd4bElDWW1JQ2doWjJ4dlltRnNMbVJsWm1sdVpTQjhmQ0FoWjJ4dlltRnNMbVJsWm1sdVpTNWhiV1FwS1NCN1hHNGdJR2RzYjJKaGJDNUdiM0p0YzNrZ1BTQkdiM0p0YzNrN1hHNTlYRzVjYm0xdlpIVnNaUzVsZUhCdmNuUnpJRDBnUm05eWJYTjVPMXh1SWwxOSIsIm1vZHVsZS5leHBvcnRzID0ge1xuICBnZXRJbml0aWFsU3RhdGU6IGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdmFsdWUgPSAndmFsdWUnIGluIHRoaXMucHJvcHMgPyB0aGlzLnByb3BzLnZhbHVlIDogJyc7XG4gICAgcmV0dXJuIHtcbiAgICAgIF92YWx1ZTogdmFsdWUsXG4gICAgICBfaXNWYWxpZDogdHJ1ZSxcbiAgICAgIF9pc1ByaXN0aW5lOiB0cnVlLFxuICAgICAgX3ByaXN0aW5lVmFsdWU6IHZhbHVlXG4gICAgfTtcbiAgfSxcbiAgY29tcG9uZW50V2lsbE1vdW50OiBmdW5jdGlvbiAoKSB7XG5cbiAgICB2YXIgY29uZmlndXJlID0gZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5zZXRWYWxpZGF0aW9ucyh0aGlzLnByb3BzLnZhbGlkYXRpb25zLCB0aGlzLnByb3BzLnJlcXVpcmVkKTtcbiAgICAgIHRoaXMucHJvcHMuX2F0dGFjaFRvRm9ybSh0aGlzKTtcbiAgICB9LmJpbmQodGhpcyk7XG5cbiAgICBpZiAoIXRoaXMucHJvcHMubmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGb3JtIElucHV0IHJlcXVpcmVzIGEgbmFtZSBwcm9wZXJ0eSB3aGVuIHVzZWQnKTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucHJvcHMuX2F0dGFjaFRvRm9ybSkge1xuICAgICAgcmV0dXJuIHNldFRpbWVvdXQoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIXRoaXMuaXNNb3VudGVkKCkpIHJldHVybjtcbiAgICAgICAgaWYgKCF0aGlzLnByb3BzLl9hdHRhY2hUb0Zvcm0pIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Zvcm0gTWl4aW4gcmVxdWlyZXMgY29tcG9uZW50IHRvIGJlIG5lc3RlZCBpbiBhIEZvcm0nKTtcbiAgICAgICAgfVxuICAgICAgICBjb25maWd1cmUoKTtcbiAgICAgIH0uYmluZCh0aGlzKSwgMCk7XG4gICAgfVxuICAgIGNvbmZpZ3VyZSgpO1xuXG4gIH0sXG5cbiAgLy8gV2UgaGF2ZSB0byBtYWtlIHRoZSB2YWxpZGF0ZSBtZXRob2QgaXMga2VwdCB3aGVuIG5ldyBwcm9wcyBhcmUgYWRkZWRcbiAgY29tcG9uZW50V2lsbFJlY2VpdmVQcm9wczogZnVuY3Rpb24gKG5leHRQcm9wcykge1xuICAgIG5leHRQcm9wcy5fYXR0YWNoVG9Gb3JtID0gdGhpcy5wcm9wcy5fYXR0YWNoVG9Gb3JtO1xuICAgIG5leHRQcm9wcy5fZGV0YWNoRnJvbUZvcm0gPSB0aGlzLnByb3BzLl9kZXRhY2hGcm9tRm9ybTtcbiAgICBuZXh0UHJvcHMuX3ZhbGlkYXRlID0gdGhpcy5wcm9wcy5fdmFsaWRhdGU7XG4gICAgdGhpcy5zZXRWYWxpZGF0aW9ucyhuZXh0UHJvcHMudmFsaWRhdGlvbnMsIG5leHRQcm9wcy5yZXF1aXJlZCk7XG4gIH0sXG5cbiAgY29tcG9uZW50RGlkVXBkYXRlOiBmdW5jdGlvbiAocHJldlByb3BzLCBwcmV2U3RhdGUpIHtcblxuICAgIHZhciBpc1ZhbHVlQ2hhbmdlZCA9IGZ1bmN0aW9uICgpIHtcbiAgICAgIFxuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5wcm9wcy52YWx1ZSAhPT0gcHJldlByb3BzLnZhbHVlICYmIChcbiAgICAgICAgICB0aGlzLnN0YXRlLl92YWx1ZSA9PT0gcHJldlByb3BzLnZhbHVlIHx8XG5cbiAgICAgICAgICAvLyBTaW5jZSB1bmRlZmluZWQgaXMgY29udmVydGVkIHRvIGVtcHR5IHN0cmluZyB3ZSBoYXZlIHRvXG4gICAgICAgICAgLy8gY2hlY2sgdGhhdCBzcGVjaWZpY2FsbHlcbiAgICAgICAgICAodGhpcy5zdGF0ZS5fdmFsdWUgPT09ICcnICYmIHByZXZQcm9wcy52YWx1ZSA9PT0gdW5kZWZpbmVkKVxuICAgICAgICApXG4gICAgICApO1xuXG4gICAgfS5iaW5kKHRoaXMpO1xuXG5cbiAgICAvLyBJZiB2YWxpZGF0aW9ucyBoYXMgY2hhbmdlZCBvciBzb21ldGhpbmcgb3V0c2lkZSBjaGFuZ2VzIFxuICAgIC8vIHRoZSB2YWx1ZSwgc2V0IHRoZSB2YWx1ZSBhZ2FpbiBydW5uaW5nIGEgdmFsaWRhdGlvblxuXG4gICAgaWYgKHByZXZQcm9wcy52YWxpZGF0aW9ucyAhPT0gdGhpcy5wcm9wcy52YWxpZGF0aW9ucyB8fCBpc1ZhbHVlQ2hhbmdlZCgpKSB7XG4gICAgICB2YXIgdmFsdWUgPSAndmFsdWUnIGluIHRoaXMucHJvcHMgPyB0aGlzLnByb3BzLnZhbHVlIDogJyc7XG4gICAgICB0aGlzLnNldFZhbHVlKHZhbHVlKTtcbiAgICB9XG4gIH0sXG5cbiAgLy8gRGV0YWNoIGl0IHdoZW4gY29tcG9uZW50IHVubW91bnRzXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50OiBmdW5jdGlvbiAoKSB7XG4gICAgdGhpcy5wcm9wcy5fZGV0YWNoRnJvbUZvcm0odGhpcyk7XG4gIH0sXG5cbiAgc2V0VmFsaWRhdGlvbnM6IGZ1bmN0aW9uICh2YWxpZGF0aW9ucywgcmVxdWlyZWQpIHtcblxuICAgIC8vIEFkZCB2YWxpZGF0aW9ucyB0byB0aGUgc3RvcmUgaXRzZWxmIGFzIHRoZSBwcm9wcyBvYmplY3QgY2FuIG5vdCBiZSBtb2RpZmllZFxuICAgIHRoaXMuX3ZhbGlkYXRpb25zID0gdmFsaWRhdGlvbnMgfHwgJyc7XG5cbiAgICBpZiAocmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuX3ZhbGlkYXRpb25zID0gdmFsaWRhdGlvbnMgPyB2YWxpZGF0aW9ucyArICcsJyA6ICcnO1xuICAgICAgdGhpcy5fdmFsaWRhdGlvbnMgKz0gJ2lzVmFsdWUnO1xuICAgIH1cblxuICB9LFxuXG4gIC8vIFdlIHZhbGlkYXRlIGFmdGVyIHRoZSB2YWx1ZSBoYXMgYmVlbiBzZXRcbiAgc2V0VmFsdWU6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgX3ZhbHVlOiB2YWx1ZSxcbiAgICAgIF9pc1ByaXN0aW5lOiBmYWxzZVxuICAgIH0sIGZ1bmN0aW9uICgpIHtcbiAgICAgIHRoaXMucHJvcHMuX3ZhbGlkYXRlKHRoaXMpO1xuICAgIH0uYmluZCh0aGlzKSk7XG4gIH0sXG4gIHJlc2V0VmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIF92YWx1ZTogdGhpcy5zdGF0ZS5fcHJpc3RpbmVWYWx1ZSxcbiAgICAgIF9pc1ByaXN0aW5lOiB0cnVlXG4gICAgfSwgZnVuY3Rpb24gKCkge1xuICAgICAgdGhpcy5wcm9wcy5fdmFsaWRhdGUodGhpcyk7XG4gICAgfSk7XG4gIH0sXG4gIGdldFZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuX3ZhbHVlO1xuICB9LFxuICBoYXNWYWx1ZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnN0YXRlLl92YWx1ZSAhPT0gJyc7XG4gIH0sXG4gIGdldEVycm9yTWVzc2FnZTogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmlzVmFsaWQoKSB8fCB0aGlzLnNob3dSZXF1aXJlZCgpID8gbnVsbCA6IHRoaXMuc3RhdGUuX3NlcnZlckVycm9yIHx8IHRoaXMucHJvcHMudmFsaWRhdGlvbkVycm9yO1xuICB9LFxuICBpc0Zvcm1EaXNhYmxlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLnByb3BzLl9pc0Zvcm1EaXNhYmxlZCgpO1xuICB9LFxuICBpc1ZhbGlkOiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhdGUuX2lzVmFsaWQ7XG4gIH0sXG4gIGlzUHJpc3RpbmU6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGF0ZS5faXNQcmlzdGluZTtcbiAgfSxcbiAgaXNSZXF1aXJlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhIXRoaXMucHJvcHMucmVxdWlyZWQ7XG4gIH0sXG4gIHNob3dSZXF1aXJlZDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiB0aGlzLmlzUmVxdWlyZWQoKSAmJiB0aGlzLnN0YXRlLl92YWx1ZSA9PT0gJyc7XG4gIH0sXG4gIHNob3dFcnJvcjogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiAhdGhpcy5zaG93UmVxdWlyZWQoKSAmJiAhdGhpcy5zdGF0ZS5faXNWYWxpZDtcbiAgfSxcbiAgaXNWYWxpZFZhbHVlOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdGhpcy5wcm9wcy5faXNWYWxpZFZhbHVlLmNhbGwobnVsbCwgdGhpcywgdmFsdWUpO1xuICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZUV2w0YVc0dWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk5VmMyVnljeTlqYUhKcGMzUnBZVzVoYkdadmJta3ZSRzlqZFcxbGJuUnpMMlJsZGk5bWIzSnRjM2t0Y21WaFkzUXZjM0pqTDAxcGVHbHVMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFMUJRVTBzUTBGQlF5eFBRVUZQTEVkQlFVYzdSVUZEWml4bFFVRmxMRVZCUVVVc1dVRkJXVHRKUVVNelFpeEpRVUZKTEV0QlFVc3NSMEZCUnl4UFFVRlBMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03U1VGRE1VUXNUMEZCVHp0TlFVTk1MRTFCUVUwc1JVRkJSU3hMUVVGTE8wMUJRMklzVVVGQlVTeEZRVUZGTEVsQlFVazdUVUZEWkN4WFFVRlhMRVZCUVVVc1NVRkJTVHROUVVOcVFpeGpRVUZqTEVWQlFVVXNTMEZCU3p0TFFVTjBRaXhEUVVGRE8wZEJRMGc3UVVGRFNDeEZRVUZGTEd0Q1FVRnJRaXhGUVVGRkxGbEJRVms3TzBsQlJUbENMRWxCUVVrc1UwRkJVeXhIUVVGSExGbEJRVms3VFVGRE1VSXNTVUZCU1N4RFFVRkRMR05CUVdNc1EwRkJReXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NSVUZCUlN4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGRkJRVkVzUTBGQlF5eERRVUZETzAxQlEycEZMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETEVsQlFVa3NRMEZCUXl4RFFVRkRPMEZCUTNKRExFdEJRVXNzUTBGQlF5eEpRVUZKTEVOQlFVTXNTVUZCU1N4RFFVRkRMRU5CUVVNN08wbEJSV0lzU1VGQlNTeERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1NVRkJTU3hGUVVGRk8wMUJRM0JDTEUxQlFVMHNTVUZCU1N4TFFVRkxMRU5CUVVNc0swTkJRU3RETEVOQlFVTXNRMEZCUXp0QlFVTjJSU3hMUVVGTE96dEpRVVZFTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExHRkJRV0VzUlVGQlJUdE5RVU0zUWl4UFFVRlBMRlZCUVZVc1EwRkJReXhaUVVGWk8xRkJRelZDTEVsQlFVa3NRMEZCUXl4SlFVRkpMRU5CUVVNc1UwRkJVeXhGUVVGRkxFVkJRVVVzVDBGQlR6dFJRVU01UWl4SlFVRkpMRU5CUVVNc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGhRVUZoTEVWQlFVVTdWVUZETjBJc1RVRkJUU3hKUVVGSkxFdEJRVXNzUTBGQlF5eHpSRUZCYzBRc1EwRkJReXhEUVVGRE8xTkJRM3BGTzFGQlEwUXNVMEZCVXl4RlFVRkZMRU5CUVVNN1QwRkRZaXhEUVVGRExFbEJRVWtzUTBGQlF5eEpRVUZKTEVOQlFVTXNSVUZCUlN4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOc1FqdEJRVU5NTEVsQlFVa3NVMEZCVXl4RlFVRkZMRU5CUVVNN08wRkJSV2hDTEVkQlFVYzdRVUZEU0RzN1JVRkZSU3g1UWtGQmVVSXNSVUZCUlN4VlFVRlZMRk5CUVZNc1JVRkJSVHRKUVVNNVF5eFRRVUZUTEVOQlFVTXNZVUZCWVN4SFFVRkhMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zWVVGQllTeERRVUZETzBsQlEyNUVMRk5CUVZNc1EwRkJReXhsUVVGbExFZEJRVWNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4bFFVRmxMRU5CUVVNN1NVRkRka1FzVTBGQlV5eERRVUZETEZOQlFWTXNSMEZCUnl4SlFVRkpMRU5CUVVNc1MwRkJTeXhEUVVGRExGTkJRVk1zUTBGQlF6dEpRVU16UXl4SlFVRkpMRU5CUVVNc1kwRkJZeXhEUVVGRExGTkJRVk1zUTBGQlF5eFhRVUZYTEVWQlFVVXNVMEZCVXl4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8wRkJRMjVGTEVkQlFVYzdPMEZCUlVnc1JVRkJSU3hyUWtGQmEwSXNSVUZCUlN4VlFVRlZMRk5CUVZNc1JVRkJSU3hUUVVGVExFVkJRVVU3TzBGQlJYUkVMRWxCUVVrc1NVRkJTU3hqUVVGakxFZEJRVWNzV1VGQldUczdUVUZGTDBJN1VVRkRSU3hKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEV0QlFVc3NTMEZCU3l4VFFVRlRMRU5CUVVNc1MwRkJTenRCUVVNMVF5eFZRVUZWTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hMUVVGTExGTkJRVk1zUTBGQlF5eExRVUZMTzBGQlF5OURPMEZCUTBFN08xZEJSVmNzU1VGQlNTeERRVUZETEV0QlFVc3NRMEZCUXl4TlFVRk5MRXRCUVVzc1JVRkJSU3hKUVVGSkxGTkJRVk1zUTBGQlF5eExRVUZMTEV0QlFVc3NVMEZCVXl4RFFVRkRPMU5CUXpWRU8wRkJRMVFzVVVGQlVUczdRVUZGVWl4TFFVRkxMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEycENPMEZCUTBFN1FVRkRRVHRCUVVOQk96dEpRVVZKTEVsQlFVa3NVMEZCVXl4RFFVRkRMRmRCUVZjc1MwRkJTeXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZkQlFWY3NTVUZCU1N4alFVRmpMRVZCUVVVc1JVRkJSVHROUVVONFJTeEpRVUZKTEV0QlFVc3NSMEZCUnl4UFFVRlBMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUjBGQlJ5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRXRCUVVzc1IwRkJSeXhGUVVGRkxFTkJRVU03VFVGRE1VUXNTVUZCU1N4RFFVRkRMRkZCUVZFc1EwRkJReXhMUVVGTExFTkJRVU1zUTBGQlF6dExRVU4wUWp0QlFVTk1MRWRCUVVjN1FVRkRTRHM3UlVGRlJTeHZRa0ZCYjBJc1JVRkJSU3haUVVGWk8wbEJRMmhETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hEUVVGRExFbEJRVWtzUTBGQlF5eERRVUZETzBGQlEzSkRMRWRCUVVjN08wRkJSVWdzUlVGQlJTeGpRVUZqTEVWQlFVVXNWVUZCVlN4WFFVRlhMRVZCUVVVc1VVRkJVU3hGUVVGRk8wRkJRMjVFT3p0QlFVVkJMRWxCUVVrc1NVRkJTU3hEUVVGRExGbEJRVmtzUjBGQlJ5eFhRVUZYTEVsQlFVa3NSVUZCUlN4RFFVRkRPenRKUVVWMFF5eEpRVUZKTEZGQlFWRXNSVUZCUlR0TlFVTmFMRWxCUVVrc1EwRkJReXhaUVVGWkxFZEJRVWNzVjBGQlZ5eEhRVUZITEZkQlFWY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1JVRkJSU3hEUVVGRE8wMUJRM3BFTEVsQlFVa3NRMEZCUXl4WlFVRlpMRWxCUVVrc1UwRkJVeXhEUVVGRE8wRkJRM0pETEV0QlFVczdPMEZCUlV3c1IwRkJSenRCUVVOSU96dEZRVVZGTEZGQlFWRXNSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRKUVVONlFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMDFCUTFvc1RVRkJUU3hGUVVGRkxFdEJRVXM3VFVGRFlpeFhRVUZYTEVWQlFVVXNTMEZCU3p0TFFVTnVRaXhGUVVGRkxGbEJRVms3VFVGRFlpeEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRk5CUVZNc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6dExRVU0xUWl4RFFVRkRMRWxCUVVrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF5eERRVUZETzBkQlEyWTdSVUZEUkN4VlFVRlZMRVZCUVVVc1dVRkJXVHRKUVVOMFFpeEpRVUZKTEVOQlFVTXNVVUZCVVN4RFFVRkRPMDFCUTFvc1RVRkJUU3hGUVVGRkxFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNZMEZCWXp0TlFVTnFReXhYUVVGWExFVkJRVVVzU1VGQlNUdExRVU5zUWl4RlFVRkZMRmxCUVZrN1RVRkRZaXhKUVVGSkxFTkJRVU1zUzBGQlN5eERRVUZETEZOQlFWTXNRMEZCUXl4SlFVRkpMRU5CUVVNc1EwRkJRenRMUVVNMVFpeERRVUZETEVOQlFVTTdSMEZEU2p0RlFVTkVMRkZCUVZFc1JVRkJSU3haUVVGWk8wbEJRM0JDTEU5QlFVOHNTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhOUVVGTkxFTkJRVU03UjBGRE1VSTdSVUZEUkN4UlFVRlJMRVZCUVVVc1dVRkJXVHRKUVVOd1FpeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1RVRkJUU3hMUVVGTExFVkJRVVVzUTBGQlF6dEhRVU5xUXp0RlFVTkVMR1ZCUVdVc1JVRkJSU3haUVVGWk8wbEJRek5DTEU5QlFVOHNTVUZCU1N4RFFVRkRMRTlCUVU4c1JVRkJSU3hKUVVGSkxFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNSMEZCUnl4SlFVRkpMRWRCUVVjc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eFpRVUZaTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhsUVVGbExFTkJRVU03UjBGRE4wYzdSVUZEUkN4alFVRmpMRVZCUVVVc1dVRkJXVHRKUVVNeFFpeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1pVRkJaU3hGUVVGRkxFTkJRVU03UjBGRGNrTTdSVUZEUkN4UFFVRlBMRVZCUVVVc1dVRkJXVHRKUVVOdVFpeFBRVUZQTEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRE8wZEJRelZDTzBWQlEwUXNWVUZCVlN4RlFVRkZMRmxCUVZrN1NVRkRkRUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNTMEZCU3l4RFFVRkRMRmRCUVZjc1EwRkJRenRIUVVNdlFqdEZRVU5FTEZWQlFWVXNSVUZCUlN4WlFVRlpPMGxCUTNSQ0xFOUJRVThzUTBGQlF5eERRVUZETEVsQlFVa3NRMEZCUXl4TFFVRkxMRU5CUVVNc1VVRkJVU3hEUVVGRE8wZEJRemxDTzBWQlEwUXNXVUZCV1N4RlFVRkZMRmxCUVZrN1NVRkRlRUlzVDBGQlR5eEpRVUZKTEVOQlFVTXNWVUZCVlN4RlFVRkZMRWxCUVVrc1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eE5RVUZOTEV0QlFVc3NSVUZCUlN4RFFVRkRPMGRCUTNSRU8wVkJRMFFzVTBGQlV5eEZRVUZGTEZsQlFWazdTVUZEY2tJc1QwRkJUeXhEUVVGRExFbEJRVWtzUTBGQlF5eFpRVUZaTEVWQlFVVXNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhMUVVGTExFTkJRVU1zVVVGQlVTeERRVUZETzBkQlEzSkVPMFZCUTBRc1dVRkJXU3hGUVVGRkxGVkJRVlVzUzBGQlN5eEZRVUZGTzBsQlF6ZENMRTlCUVU4c1NVRkJTU3hEUVVGRExFdEJRVXNzUTBGQlF5eGhRVUZoTEVOQlFVTXNTVUZCU1N4RFFVRkRMRWxCUVVrc1JVRkJSU3hKUVVGSkxFVkJRVVVzUzBGQlN5eERRVUZETEVOQlFVTTdSMEZEZWtRN1EwRkRSaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2liVzlrZFd4bExtVjRjRzl5ZEhNZ1BTQjdYRzRnSUdkbGRFbHVhWFJwWVd4VGRHRjBaVG9nWm5WdVkzUnBiMjRnS0NrZ2UxeHVJQ0FnSUhaaGNpQjJZV3gxWlNBOUlDZDJZV3gxWlNjZ2FXNGdkR2hwY3k1d2NtOXdjeUEvSUhSb2FYTXVjSEp2Y0hNdWRtRnNkV1VnT2lBbkp6dGNiaUFnSUNCeVpYUjFjbTRnZTF4dUlDQWdJQ0FnWDNaaGJIVmxPaUIyWVd4MVpTeGNiaUFnSUNBZ0lGOXBjMVpoYkdsa09pQjBjblZsTEZ4dUlDQWdJQ0FnWDJselVISnBjM1JwYm1VNklIUnlkV1VzWEc0Z0lDQWdJQ0JmY0hKcGMzUnBibVZXWVd4MVpUb2dkbUZzZFdWY2JpQWdJQ0I5TzF4dUlDQjlMRnh1SUNCamIyMXdiMjVsYm5SWGFXeHNUVzkxYm5RNklHWjFibU4wYVc5dUlDZ3BJSHRjYmx4dUlDQWdJSFpoY2lCamIyNW1hV2QxY21VZ1BTQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0IwYUdsekxuTmxkRlpoYkdsa1lYUnBiMjV6S0hSb2FYTXVjSEp2Y0hNdWRtRnNhV1JoZEdsdmJuTXNJSFJvYVhNdWNISnZjSE11Y21WeGRXbHlaV1FwTzF4dUlDQWdJQ0FnZEdocGN5NXdjbTl3Y3k1ZllYUjBZV05vVkc5R2IzSnRLSFJvYVhNcE8xeHVJQ0FnSUgwdVltbHVaQ2gwYUdsektUdGNibHh1SUNBZ0lHbG1JQ2doZEdocGN5NXdjbTl3Y3k1dVlXMWxLU0I3WEc0Z0lDQWdJQ0IwYUhKdmR5QnVaWGNnUlhKeWIzSW9KMFp2Y20wZ1NXNXdkWFFnY21WeGRXbHlaWE1nWVNCdVlXMWxJSEJ5YjNCbGNuUjVJSGRvWlc0Z2RYTmxaQ2NwTzF4dUlDQWdJSDFjYmx4dUlDQWdJR2xtSUNnaGRHaHBjeTV3Y205d2N5NWZZWFIwWVdOb1ZHOUdiM0p0S1NCN1hHNGdJQ0FnSUNCeVpYUjFjbTRnYzJWMFZHbHRaVzkxZENobWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ0lDQWdJR2xtSUNnaGRHaHBjeTVwYzAxdmRXNTBaV1FvS1NrZ2NtVjBkWEp1TzF4dUlDQWdJQ0FnSUNCcFppQW9JWFJvYVhNdWNISnZjSE11WDJGMGRHRmphRlJ2Um05eWJTa2dlMXh1SUNBZ0lDQWdJQ0FnSUhSb2NtOTNJRzVsZHlCRmNuSnZjaWduUm05eWJTQk5hWGhwYmlCeVpYRjFhWEpsY3lCamIyMXdiMjVsYm5RZ2RHOGdZbVVnYm1WemRHVmtJR2x1SUdFZ1JtOXliU2NwTzF4dUlDQWdJQ0FnSUNCOVhHNGdJQ0FnSUNBZ0lHTnZibVpwWjNWeVpTZ3BPMXh1SUNBZ0lDQWdmUzVpYVc1a0tIUm9hWE1wTENBd0tUdGNiaUFnSUNCOVhHNGdJQ0FnWTI5dVptbG5kWEpsS0NrN1hHNWNiaUFnZlN4Y2JseHVJQ0F2THlCWFpTQm9ZWFpsSUhSdklHMWhhMlVnZEdobElIWmhiR2xrWVhSbElHMWxkR2h2WkNCcGN5QnJaWEIwSUhkb1pXNGdibVYzSUhCeWIzQnpJR0Z5WlNCaFpHUmxaRnh1SUNCamIyMXdiMjVsYm5SWGFXeHNVbVZqWldsMlpWQnliM0J6T2lCbWRXNWpkR2x2YmlBb2JtVjRkRkJ5YjNCektTQjdYRzRnSUNBZ2JtVjRkRkJ5YjNCekxsOWhkSFJoWTJoVWIwWnZjbTBnUFNCMGFHbHpMbkJ5YjNCekxsOWhkSFJoWTJoVWIwWnZjbTA3WEc0Z0lDQWdibVY0ZEZCeWIzQnpMbDlrWlhSaFkyaEdjbTl0Um05eWJTQTlJSFJvYVhNdWNISnZjSE11WDJSbGRHRmphRVp5YjIxR2IzSnRPMXh1SUNBZ0lHNWxlSFJRY205d2N5NWZkbUZzYVdSaGRHVWdQU0IwYUdsekxuQnliM0J6TGw5MllXeHBaR0YwWlR0Y2JpQWdJQ0IwYUdsekxuTmxkRlpoYkdsa1lYUnBiMjV6S0c1bGVIUlFjbTl3Y3k1MllXeHBaR0YwYVc5dWN5d2dibVY0ZEZCeWIzQnpMbkpsY1hWcGNtVmtLVHRjYmlBZ2ZTeGNibHh1SUNCamIyMXdiMjVsYm5SRWFXUlZjR1JoZEdVNklHWjFibU4wYVc5dUlDaHdjbVYyVUhKdmNITXNJSEJ5WlhaVGRHRjBaU2tnZTF4dVhHNGdJQ0FnZG1GeUlHbHpWbUZzZFdWRGFHRnVaMlZrSUQwZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdYRzRnSUNBZ0lDQnlaWFIxY200Z0tGeHVJQ0FnSUNBZ0lDQjBhR2x6TG5CeWIzQnpMblpoYkhWbElDRTlQU0J3Y21WMlVISnZjSE11ZG1Gc2RXVWdKaVlnS0Z4dUlDQWdJQ0FnSUNBZ0lIUm9hWE11YzNSaGRHVXVYM1poYkhWbElEMDlQU0J3Y21WMlVISnZjSE11ZG1Gc2RXVWdmSHhjYmx4dUlDQWdJQ0FnSUNBZ0lDOHZJRk5wYm1ObElIVnVaR1ZtYVc1bFpDQnBjeUJqYjI1MlpYSjBaV1FnZEc4Z1pXMXdkSGtnYzNSeWFXNW5JSGRsSUdoaGRtVWdkRzljYmlBZ0lDQWdJQ0FnSUNBdkx5QmphR1ZqYXlCMGFHRjBJSE53WldOcFptbGpZV3hzZVZ4dUlDQWdJQ0FnSUNBZ0lDaDBhR2x6TG5OMFlYUmxMbDkyWVd4MVpTQTlQVDBnSnljZ0ppWWdjSEpsZGxCeWIzQnpMblpoYkhWbElEMDlQU0IxYm1SbFptbHVaV1FwWEc0Z0lDQWdJQ0FnSUNsY2JpQWdJQ0FnSUNrN1hHNWNiaUFnSUNCOUxtSnBibVFvZEdocGN5azdYRzVjYmx4dUlDQWdJQzh2SUVsbUlIWmhiR2xrWVhScGIyNXpJR2hoY3lCamFHRnVaMlZrSUc5eUlITnZiV1YwYUdsdVp5QnZkWFJ6YVdSbElHTm9ZVzVuWlhNZ1hHNGdJQ0FnTHk4Z2RHaGxJSFpoYkhWbExDQnpaWFFnZEdobElIWmhiSFZsSUdGbllXbHVJSEoxYm01cGJtY2dZU0IyWVd4cFpHRjBhVzl1WEc1Y2JpQWdJQ0JwWmlBb2NISmxkbEJ5YjNCekxuWmhiR2xrWVhScGIyNXpJQ0U5UFNCMGFHbHpMbkJ5YjNCekxuWmhiR2xrWVhScGIyNXpJSHg4SUdselZtRnNkV1ZEYUdGdVoyVmtLQ2twSUh0Y2JpQWdJQ0FnSUhaaGNpQjJZV3gxWlNBOUlDZDJZV3gxWlNjZ2FXNGdkR2hwY3k1d2NtOXdjeUEvSUhSb2FYTXVjSEp2Y0hNdWRtRnNkV1VnT2lBbkp6dGNiaUFnSUNBZ0lIUm9hWE11YzJWMFZtRnNkV1VvZG1Gc2RXVXBPMXh1SUNBZ0lIMWNiaUFnZlN4Y2JseHVJQ0F2THlCRVpYUmhZMmdnYVhRZ2QyaGxiaUJqYjIxd2IyNWxiblFnZFc1dGIzVnVkSE5jYmlBZ1kyOXRjRzl1Wlc1MFYybHNiRlZ1Ylc5MWJuUTZJR1oxYm1OMGFXOXVJQ2dwSUh0Y2JpQWdJQ0IwYUdsekxuQnliM0J6TGw5a1pYUmhZMmhHY205dFJtOXliU2gwYUdsektUdGNiaUFnZlN4Y2JseHVJQ0J6WlhSV1lXeHBaR0YwYVc5dWN6b2dablZ1WTNScGIyNGdLSFpoYkdsa1lYUnBiMjV6TENCeVpYRjFhWEpsWkNrZ2UxeHVYRzRnSUNBZ0x5OGdRV1JrSUhaaGJHbGtZWFJwYjI1eklIUnZJSFJvWlNCemRHOXlaU0JwZEhObGJHWWdZWE1nZEdobElIQnliM0J6SUc5aWFtVmpkQ0JqWVc0Z2JtOTBJR0psSUcxdlpHbG1hV1ZrWEc0Z0lDQWdkR2hwY3k1ZmRtRnNhV1JoZEdsdmJuTWdQU0IyWVd4cFpHRjBhVzl1Y3lCOGZDQW5KenRjYmx4dUlDQWdJR2xtSUNoeVpYRjFhWEpsWkNrZ2UxeHVJQ0FnSUNBZ2RHaHBjeTVmZG1Gc2FXUmhkR2x2Ym5NZ1BTQjJZV3hwWkdGMGFXOXVjeUEvSUhaaGJHbGtZWFJwYjI1eklDc2dKeXduSURvZ0p5YzdYRzRnSUNBZ0lDQjBhR2x6TGw5MllXeHBaR0YwYVc5dWN5QXJQU0FuYVhOV1lXeDFaU2M3WEc0Z0lDQWdmVnh1WEc0Z0lIMHNYRzVjYmlBZ0x5OGdWMlVnZG1Gc2FXUmhkR1VnWVdaMFpYSWdkR2hsSUhaaGJIVmxJR2hoY3lCaVpXVnVJSE5sZEZ4dUlDQnpaWFJXWVd4MVpUb2dablZ1WTNScGIyNGdLSFpoYkhWbEtTQjdYRzRnSUNBZ2RHaHBjeTV6WlhSVGRHRjBaU2g3WEc0Z0lDQWdJQ0JmZG1Gc2RXVTZJSFpoYkhWbExGeHVJQ0FnSUNBZ1gybHpVSEpwYzNScGJtVTZJR1poYkhObFhHNGdJQ0FnZlN3Z1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lDQWdkR2hwY3k1d2NtOXdjeTVmZG1Gc2FXUmhkR1VvZEdocGN5azdYRzRnSUNBZ2ZTNWlhVzVrS0hSb2FYTXBLVHRjYmlBZ2ZTeGNiaUFnY21WelpYUldZV3gxWlRvZ1puVnVZM1JwYjI0Z0tDa2dlMXh1SUNBZ0lIUm9hWE11YzJWMFUzUmhkR1VvZTF4dUlDQWdJQ0FnWDNaaGJIVmxPaUIwYUdsekxuTjBZWFJsTGw5d2NtbHpkR2x1WlZaaGJIVmxMRnh1SUNBZ0lDQWdYMmx6VUhKcGMzUnBibVU2SUhSeWRXVmNiaUFnSUNCOUxDQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdJQ0IwYUdsekxuQnliM0J6TGw5MllXeHBaR0YwWlNoMGFHbHpLVHRjYmlBZ0lDQjlLVHRjYmlBZ2ZTeGNiaUFnWjJWMFZtRnNkV1U2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXpkR0YwWlM1ZmRtRnNkV1U3WEc0Z0lIMHNYRzRnSUdoaGMxWmhiSFZsT2lCbWRXNWpkR2x2YmlBb0tTQjdYRzRnSUNBZ2NtVjBkWEp1SUhSb2FYTXVjM1JoZEdVdVgzWmhiSFZsSUNFOVBTQW5KenRjYmlBZ2ZTeGNiaUFnWjJWMFJYSnliM0pOWlhOellXZGxPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWFYTldZV3hwWkNncElIeDhJSFJvYVhNdWMyaHZkMUpsY1hWcGNtVmtLQ2tnUHlCdWRXeHNJRG9nZEdocGN5NXpkR0YwWlM1ZmMyVnlkbVZ5UlhKeWIzSWdmSHdnZEdocGN5NXdjbTl3Y3k1MllXeHBaR0YwYVc5dVJYSnliM0k3WEc0Z0lIMHNYRzRnSUdselJtOXliVVJwYzJGaWJHVmtPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFJvYVhNdWNISnZjSE11WDJselJtOXliVVJwYzJGaWJHVmtLQ2s3WEc0Z0lIMHNYRzRnSUdselZtRnNhV1E2SUdaMWJtTjBhVzl1SUNncElIdGNiaUFnSUNCeVpYUjFjbTRnZEdocGN5NXpkR0YwWlM1ZmFYTldZV3hwWkR0Y2JpQWdmU3hjYmlBZ2FYTlFjbWx6ZEdsdVpUb2dablZ1WTNScGIyNGdLQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjBhR2x6TG5OMFlYUmxMbDlwYzFCeWFYTjBhVzVsTzF4dUlDQjlMRnh1SUNCcGMxSmxjWFZwY21Wa09pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlDRWhkR2hwY3k1d2NtOXdjeTV5WlhGMWFYSmxaRHRjYmlBZ2ZTeGNiaUFnYzJodmQxSmxjWFZwY21Wa09pQm1kVzVqZEdsdmJpQW9LU0I3WEc0Z0lDQWdjbVYwZFhKdUlIUm9hWE11YVhOU1pYRjFhWEpsWkNncElDWW1JSFJvYVhNdWMzUmhkR1V1WDNaaGJIVmxJRDA5UFNBbkp6dGNiaUFnZlN4Y2JpQWdjMmh2ZDBWeWNtOXlPaUJtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnY21WMGRYSnVJQ0YwYUdsekxuTm9iM2RTWlhGMWFYSmxaQ2dwSUNZbUlDRjBhR2x6TG5OMFlYUmxMbDlwYzFaaGJHbGtPMXh1SUNCOUxGeHVJQ0JwYzFaaGJHbGtWbUZzZFdVNklHWjFibU4wYVc5dUlDaDJZV3gxWlNrZ2UxeHVJQ0FnSUhKbGRIVnliaUIwYUdsekxuQnliM0J6TGw5cGMxWmhiR2xrVm1Gc2RXVXVZMkZzYkNodWRXeHNMQ0IwYUdsekxDQjJZV3gxWlNrN1hHNGdJSDFjYm4wN1hHNGlYWDA9IiwidmFyIGNzcmZUb2tlblNlbGVjdG9yID0gdHlwZW9mIGRvY3VtZW50ICE9ICd1bmRlZmluZWQnID8gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignbWV0YVtuYW1lPVwiY3NyZi10b2tlblwiXScpIDogbnVsbDtcblxudmFyIHRvVVJMRW5jb2RlZCA9IGZ1bmN0aW9uIChlbGVtZW50LCBrZXksIGxpc3QpIHtcbiAgdmFyIGxpc3QgPSBsaXN0IHx8IFtdO1xuICBpZiAodHlwZW9mIChlbGVtZW50KSA9PSAnb2JqZWN0Jykge1xuICAgIGZvciAodmFyIGlkeCBpbiBlbGVtZW50KVxuICAgICAgdG9VUkxFbmNvZGVkKGVsZW1lbnRbaWR4XSwga2V5ID8ga2V5ICsgJ1snICsgaWR4ICsgJ10nIDogaWR4LCBsaXN0KTtcbiAgfSBlbHNlIHtcbiAgICBsaXN0LnB1c2goa2V5ICsgJz0nICsgZW5jb2RlVVJJQ29tcG9uZW50KGVsZW1lbnQpKTtcbiAgfVxuICByZXR1cm4gbGlzdC5qb2luKCcmJyk7XG59O1xuXG52YXIgcmVxdWVzdCA9IGZ1bmN0aW9uIChtZXRob2QsIHVybCwgZGF0YSwgY29udGVudFR5cGUsIGhlYWRlcnMpIHtcblxuICB2YXIgY29udGVudFR5cGUgPSBjb250ZW50VHlwZSA9PT0gJ3VybGVuY29kZWQnID8gJ2FwcGxpY2F0aW9uLycgKyBjb250ZW50VHlwZS5yZXBsYWNlKCd1cmxlbmNvZGVkJywgJ3gtd3d3LWZvcm0tdXJsZW5jb2RlZCcpIDogJ2FwcGxpY2F0aW9uL2pzb24nO1xuICBkYXRhID0gY29udGVudFR5cGUgPT09ICdhcHBsaWNhdGlvbi9qc29uJyA/IEpTT04uc3RyaW5naWZ5KGRhdGEpIDogdG9VUkxFbmNvZGVkKGRhdGEpO1xuXG4gIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTtcbiAgICAgIHhoci5vcGVuKG1ldGhvZCwgdXJsLCB0cnVlKTtcbiAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdBY2NlcHQnLCAnYXBwbGljYXRpb24vanNvbicpO1xuICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoJ0NvbnRlbnQtVHlwZScsIGNvbnRlbnRUeXBlKTtcblxuICAgICAgaWYgKCEhY3NyZlRva2VuU2VsZWN0b3IgJiYgISFjc3JmVG9rZW5TZWxlY3Rvci5jb250ZW50KSB7XG4gICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCdYLUNTUkYtVG9rZW4nLCBjc3JmVG9rZW5TZWxlY3Rvci5jb250ZW50KTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHBhc3NlZCBoZWFkZXJzXG4gICAgICBPYmplY3Qua2V5cyhoZWFkZXJzKS5mb3JFYWNoKGZ1bmN0aW9uIChoZWFkZXIpIHtcbiAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoaGVhZGVyLCBoZWFkZXJzW2hlYWRlcl0pO1xuICAgICAgfSk7XG5cbiAgICAgIHhoci5vbnJlYWR5c3RhdGVjaGFuZ2UgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGlmICh4aHIucmVhZHlTdGF0ZSA9PT0gNCkge1xuXG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHZhciByZXNwb25zZSA9IHhoci5yZXNwb25zZVRleHQgPyBKU09OLnBhcnNlKHhoci5yZXNwb25zZVRleHQpIDogbnVsbDtcbiAgICAgICAgICAgIGlmICh4aHIuc3RhdHVzID49IDIwMCAmJiB4aHIuc3RhdHVzIDwgMzAwKSB7XG4gICAgICAgICAgICAgIHJlc29sdmUocmVzcG9uc2UpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcmVqZWN0KHJlc3BvbnNlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgICB4aHIuc2VuZChkYXRhKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZWplY3QoZSk7XG4gICAgfVxuICB9KTtcbn07XG5cbm1vZHVsZS5leHBvcnRzID0ge1xuICBhcnJheXNEaWZmZXI6IGZ1bmN0aW9uIChhcnJheUEsIGFycmF5Qikge1xuICAgIHZhciBpc0RpZmZlcmVudCA9IGZhbHNlO1xuICAgIGlmIChhcnJheUEubGVuZ3RoICE9PSBhcnJheUIubGVuZ3RoKSB7XG4gICAgICBpc0RpZmZlcmVudCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGFycmF5QS5mb3JFYWNoKGZ1bmN0aW9uIChpdGVtLCBpbmRleCkge1xuICAgICAgICBpZiAoaXRlbSAhPT0gYXJyYXlCW2luZGV4XSkge1xuICAgICAgICAgIGlzRGlmZmVyZW50ID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBpc0RpZmZlcmVudDtcbiAgfSxcbiAgYWpheDoge1xuICAgIHBvc3Q6IHJlcXVlc3QuYmluZChudWxsLCAnUE9TVCcpLFxuICAgIHB1dDogcmVxdWVzdC5iaW5kKG51bGwsICdQVVQnKVxuICB9XG59O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0ptYVd4bElqb2lMMVZ6WlhKekwyTm9jbWx6ZEdsaGJtRnNabTl1YVM5RWIyTjFiV1Z1ZEhNdlpHVjJMMlp2Y20xemVTMXlaV0ZqZEM5emNtTXZkWFJwYkhNdWFuTWlMQ0p6YjNWeVkyVnpJanBiSWk5VmMyVnljeTlqYUhKcGMzUnBZVzVoYkdadmJta3ZSRzlqZFcxbGJuUnpMMlJsZGk5bWIzSnRjM2t0Y21WaFkzUXZjM0pqTDNWMGFXeHpMbXB6SWwwc0ltNWhiV1Z6SWpwYlhTd2liV0Z3Y0dsdVozTWlPaUpCUVVGQkxFbEJRVWtzYVVKQlFXbENMRWRCUVVjc1QwRkJUeXhSUVVGUkxFbEJRVWtzVjBGQlZ5eEhRVUZITEZGQlFWRXNRMEZCUXl4aFFVRmhMRU5CUVVNc2VVSkJRWGxDTEVOQlFVTXNSMEZCUnl4SlFVRkpMRU5CUVVNN08wRkJSV3hJTEVsQlFVa3NXVUZCV1N4SFFVRkhMRlZCUVZVc1QwRkJUeXhGUVVGRkxFZEJRVWNzUlVGQlJTeEpRVUZKTEVWQlFVVTdSVUZETDBNc1NVRkJTU3hKUVVGSkxFZEJRVWNzU1VGQlNTeEpRVUZKTEVWQlFVVXNRMEZCUXp0RlFVTjBRaXhKUVVGSkxGRkJRVkVzVDBGQlR5eERRVUZETEVsQlFVa3NVVUZCVVN4RlFVRkZPMGxCUTJoRExFdEJRVXNzU1VGQlNTeEhRVUZITEVsQlFVa3NUMEZCVHp0TlFVTnlRaXhaUVVGWkxFTkJRVU1zVDBGQlR5eERRVUZETEVkQlFVY3NRMEZCUXl4RlFVRkZMRWRCUVVjc1IwRkJSeXhIUVVGSExFZEJRVWNzUjBGQlJ5eEhRVUZITEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc1IwRkJSeXhGUVVGRkxFbEJRVWtzUTBGQlF5eERRVUZETzBkQlEzWkZMRTFCUVUwN1NVRkRUQ3hKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVkQlFVY3NSMEZCUnl4SFFVRkhMRWRCUVVjc2EwSkJRV3RDTEVOQlFVTXNUMEZCVHl4RFFVRkRMRU5CUVVNc1EwRkJRenRIUVVOd1JEdEZRVU5FTEU5QlFVOHNTVUZCU1N4RFFVRkRMRWxCUVVrc1EwRkJReXhIUVVGSExFTkJRVU1zUTBGQlF6dEJRVU40UWl4RFFVRkRMRU5CUVVNN08wRkJSVVlzU1VGQlNTeFBRVUZQTEVkQlFVY3NWVUZCVlN4TlFVRk5MRVZCUVVVc1IwRkJSeXhGUVVGRkxFbEJRVWtzUlVGQlJTeFhRVUZYTEVWQlFVVXNUMEZCVHl4RlFVRkZPenRGUVVVdlJDeEpRVUZKTEZkQlFWY3NSMEZCUnl4WFFVRlhMRXRCUVVzc1dVRkJXU3hIUVVGSExHTkJRV01zUjBGQlJ5eFhRVUZYTEVOQlFVTXNUMEZCVHl4RFFVRkRMRmxCUVZrc1JVRkJSU3gxUWtGQmRVSXNRMEZCUXl4SFFVRkhMR3RDUVVGclFpeERRVUZETzBGQlEzQktMRVZCUVVVc1NVRkJTU3hIUVVGSExGZEJRVmNzUzBGQlN5eHJRa0ZCYTBJc1IwRkJSeXhKUVVGSkxFTkJRVU1zVTBGQlV5eERRVUZETEVsQlFVa3NRMEZCUXl4SFFVRkhMRmxCUVZrc1EwRkJReXhKUVVGSkxFTkJRVU1zUTBGQlF6czdSVUZGZEVZc1QwRkJUeXhKUVVGSkxFOUJRVThzUTBGQlF5eFZRVUZWTEU5QlFVOHNSVUZCUlN4TlFVRk5MRVZCUVVVN1NVRkROVU1zU1VGQlNUdE5RVU5HTEVsQlFVa3NSMEZCUnl4SFFVRkhMRWxCUVVrc1kwRkJZeXhGUVVGRkxFTkJRVU03VFVGREwwSXNSMEZCUnl4RFFVRkRMRWxCUVVrc1EwRkJReXhOUVVGTkxFVkJRVVVzUjBGQlJ5eEZRVUZGTEVsQlFVa3NRMEZCUXl4RFFVRkRPMDFCUXpWQ0xFZEJRVWNzUTBGQlF5eG5Ra0ZCWjBJc1EwRkJReXhSUVVGUkxFVkJRVVVzYTBKQlFXdENMRU5CUVVNc1EwRkJRenRCUVVONlJDeE5RVUZOTEVkQlFVY3NRMEZCUXl4blFrRkJaMElzUTBGQlF5eGpRVUZqTEVWQlFVVXNWMEZCVnl4RFFVRkRMRU5CUVVNN08wMUJSV3hFTEVsQlFVa3NRMEZCUXl4RFFVRkRMR2xDUVVGcFFpeEpRVUZKTEVOQlFVTXNRMEZCUXl4cFFrRkJhVUlzUTBGQlF5eFBRVUZQTEVWQlFVVTdVVUZEZEVRc1IwRkJSeXhEUVVGRExHZENRVUZuUWl4RFFVRkRMR05CUVdNc1JVRkJSU3hwUWtGQmFVSXNRMEZCUXl4UFFVRlBMRU5CUVVNc1EwRkJRenRCUVVONFJTeFBRVUZQTzBGQlExQTdPMDFCUlUwc1RVRkJUU3hEUVVGRExFbEJRVWtzUTBGQlF5eFBRVUZQTEVOQlFVTXNRMEZCUXl4UFFVRlBMRU5CUVVNc1ZVRkJWU3hOUVVGTkxFVkJRVVU3VVVGRE4wTXNSMEZCUnl4RFFVRkRMR2RDUVVGblFpeERRVUZETEUxQlFVMHNSVUZCUlN4UFFVRlBMRU5CUVVNc1RVRkJUU3hEUVVGRExFTkJRVU1zUTBGQlF6dEJRVU4wUkN4UFFVRlBMRU5CUVVNc1EwRkJRenM3VFVGRlNDeEhRVUZITEVOQlFVTXNhMEpCUVd0Q0xFZEJRVWNzV1VGQldUdEJRVU16UXl4UlFVRlJMRWxCUVVrc1IwRkJSeXhEUVVGRExGVkJRVlVzUzBGQlN5eERRVUZETEVWQlFVVTdPMVZCUlhoQ0xFbEJRVWs3V1VGRFJpeEpRVUZKTEZGQlFWRXNSMEZCUnl4SFFVRkhMRU5CUVVNc1dVRkJXU3hIUVVGSExFbEJRVWtzUTBGQlF5eExRVUZMTEVOQlFVTXNSMEZCUnl4RFFVRkRMRmxCUVZrc1EwRkJReXhIUVVGSExFbEJRVWtzUTBGQlF6dFpRVU4wUlN4SlFVRkpMRWRCUVVjc1EwRkJReXhOUVVGTkxFbEJRVWtzUjBGQlJ5eEpRVUZKTEVkQlFVY3NRMEZCUXl4TlFVRk5MRWRCUVVjc1IwRkJSeXhGUVVGRk8yTkJRM3BETEU5QlFVOHNRMEZCUXl4UlFVRlJMRU5CUVVNc1EwRkJRenRoUVVOdVFpeE5RVUZOTzJOQlEwd3NUVUZCVFN4RFFVRkRMRkZCUVZFc1EwRkJReXhEUVVGRE8yRkJRMnhDTzFkQlEwWXNRMEZCUXl4UFFVRlBMRU5CUVVNc1JVRkJSVHRaUVVOV0xFMUJRVTBzUTBGQlF5eERRVUZETEVOQlFVTXNRMEZCUXp0QlFVTjBRaXhYUVVGWE96dFRRVVZHTzA5QlEwWXNRMEZCUXp0TlFVTkdMRWRCUVVjc1EwRkJReXhKUVVGSkxFTkJRVU1zU1VGQlNTeERRVUZETEVOQlFVTTdTMEZEYUVJc1EwRkJReXhQUVVGUExFTkJRVU1zUlVGQlJUdE5RVU5XTEUxQlFVMHNRMEZCUXl4RFFVRkRMRU5CUVVNc1EwRkJRenRMUVVOWU8wZEJRMFlzUTBGQlF5eERRVUZETzBGQlEwd3NRMEZCUXl4RFFVRkRPenRCUVVWR0xFMUJRVTBzUTBGQlF5eFBRVUZQTEVkQlFVYzdSVUZEWml4WlFVRlpMRVZCUVVVc1ZVRkJWU3hOUVVGTkxFVkJRVVVzVFVGQlRTeEZRVUZGTzBsQlEzUkRMRWxCUVVrc1YwRkJWeXhIUVVGSExFdEJRVXNzUTBGQlF6dEpRVU40UWl4SlFVRkpMRTFCUVUwc1EwRkJReXhOUVVGTkxFdEJRVXNzVFVGQlRTeERRVUZETEUxQlFVMHNSVUZCUlR0TlFVTnVReXhYUVVGWExFZEJRVWNzU1VGQlNTeERRVUZETzB0QlEzQkNMRTFCUVUwN1RVRkRUQ3hOUVVGTkxFTkJRVU1zVDBGQlR5eERRVUZETEZWQlFWVXNTVUZCU1N4RlFVRkZMRXRCUVVzc1JVRkJSVHRSUVVOd1F5eEpRVUZKTEVsQlFVa3NTMEZCU3l4TlFVRk5MRU5CUVVNc1MwRkJTeXhEUVVGRExFVkJRVVU3VlVGRE1VSXNWMEZCVnl4SFFVRkhMRWxCUVVrc1EwRkJRenRUUVVOd1FqdFBRVU5HTEVOQlFVTXNRMEZCUXp0TFFVTktPMGxCUTBRc1QwRkJUeXhYUVVGWExFTkJRVU03UjBGRGNFSTdSVUZEUkN4SlFVRkpMRVZCUVVVN1NVRkRTaXhKUVVGSkxFVkJRVVVzVDBGQlR5eERRVUZETEVsQlFVa3NRMEZCUXl4SlFVRkpMRVZCUVVVc1RVRkJUU3hEUVVGRE8wbEJRMmhETEVkQlFVY3NSVUZCUlN4UFFVRlBMRU5CUVVNc1NVRkJTU3hEUVVGRExFbEJRVWtzUlVGQlJTeExRVUZMTEVOQlFVTTdSMEZETDBJN1EwRkRSaXhEUVVGRElpd2ljMjkxY21ObGMwTnZiblJsYm5RaU9sc2lkbUZ5SUdOemNtWlViMnRsYmxObGJHVmpkRzl5SUQwZ2RIbHdaVzltSUdSdlkzVnRaVzUwSUNFOUlDZDFibVJsWm1sdVpXUW5JRDhnWkc5amRXMWxiblF1Y1hWbGNubFRaV3hsWTNSdmNpZ25iV1YwWVZ0dVlXMWxQVndpWTNOeVppMTBiMnRsYmx3aVhTY3BJRG9nYm5Wc2JEdGNibHh1ZG1GeUlIUnZWVkpNUlc1amIyUmxaQ0E5SUdaMWJtTjBhVzl1SUNobGJHVnRaVzUwTENCclpYa3NJR3hwYzNRcElIdGNiaUFnZG1GeUlHeHBjM1FnUFNCc2FYTjBJSHg4SUZ0ZE8xeHVJQ0JwWmlBb2RIbHdaVzltSUNobGJHVnRaVzUwS1NBOVBTQW5iMkpxWldOMEp5a2dlMXh1SUNBZ0lHWnZjaUFvZG1GeUlHbGtlQ0JwYmlCbGJHVnRaVzUwS1Z4dUlDQWdJQ0FnZEc5VlVreEZibU52WkdWa0tHVnNaVzFsYm5SYmFXUjRYU3dnYTJWNUlEOGdhMlY1SUNzZ0oxc25JQ3NnYVdSNElDc2dKMTBuSURvZ2FXUjRMQ0JzYVhOMEtUdGNiaUFnZlNCbGJITmxJSHRjYmlBZ0lDQnNhWE4wTG5CMWMyZ29hMlY1SUNzZ0p6MG5JQ3NnWlc1amIyUmxWVkpKUTI5dGNHOXVaVzUwS0dWc1pXMWxiblFwS1R0Y2JpQWdmVnh1SUNCeVpYUjFjbTRnYkdsemRDNXFiMmx1S0NjbUp5azdYRzU5TzF4dVhHNTJZWElnY21WeGRXVnpkQ0E5SUdaMWJtTjBhVzl1SUNodFpYUm9iMlFzSUhWeWJDd2daR0YwWVN3Z1kyOXVkR1Z1ZEZSNWNHVXNJR2hsWVdSbGNuTXBJSHRjYmx4dUlDQjJZWElnWTI5dWRHVnVkRlI1Y0dVZ1BTQmpiMjUwWlc1MFZIbHdaU0E5UFQwZ0ozVnliR1Z1WTI5a1pXUW5JRDhnSjJGd2NHeHBZMkYwYVc5dUx5Y2dLeUJqYjI1MFpXNTBWSGx3WlM1eVpYQnNZV05sS0NkMWNteGxibU52WkdWa0p5d2dKM2d0ZDNkM0xXWnZjbTB0ZFhKc1pXNWpiMlJsWkNjcElEb2dKMkZ3Y0d4cFkyRjBhVzl1TDJwemIyNG5PMXh1SUNCa1lYUmhJRDBnWTI5dWRHVnVkRlI1Y0dVZ1BUMDlJQ2RoY0hCc2FXTmhkR2x2Ymk5cWMyOXVKeUEvSUVwVFQwNHVjM1J5YVc1bmFXWjVLR1JoZEdFcElEb2dkRzlWVWt4RmJtTnZaR1ZrS0dSaGRHRXBPMXh1WEc0Z0lISmxkSFZ5YmlCdVpYY2dVSEp2YldselpTaG1kVzVqZEdsdmJpQW9jbVZ6YjJ4MlpTd2djbVZxWldOMEtTQjdYRzRnSUNBZ2RISjVJSHRjYmlBZ0lDQWdJSFpoY2lCNGFISWdQU0J1WlhjZ1dFMU1TSFIwY0ZKbGNYVmxjM1FvS1R0Y2JpQWdJQ0FnSUhob2NpNXZjR1Z1S0cxbGRHaHZaQ3dnZFhKc0xDQjBjblZsS1R0Y2JpQWdJQ0FnSUhob2NpNXpaWFJTWlhGMVpYTjBTR1ZoWkdWeUtDZEJZMk5sY0hRbkxDQW5ZWEJ3YkdsallYUnBiMjR2YW5OdmJpY3BPMXh1SUNBZ0lDQWdlR2h5TG5ObGRGSmxjWFZsYzNSSVpXRmtaWElvSjBOdmJuUmxiblF0Vkhsd1pTY3NJR052Ym5SbGJuUlVlWEJsS1R0Y2JseHVJQ0FnSUNBZ2FXWWdLQ0VoWTNOeVpsUnZhMlZ1VTJWc1pXTjBiM0lnSmlZZ0lTRmpjM0ptVkc5clpXNVRaV3hsWTNSdmNpNWpiMjUwWlc1MEtTQjdYRzRnSUNBZ0lDQWdJSGhvY2k1elpYUlNaWEYxWlhOMFNHVmhaR1Z5S0NkWUxVTlRVa1l0Vkc5clpXNG5MQ0JqYzNKbVZHOXJaVzVUWld4bFkzUnZjaTVqYjI1MFpXNTBLVHRjYmlBZ0lDQWdJSDFjYmx4dUlDQWdJQ0FnTHk4Z1FXUmtJSEJoYzNObFpDQm9aV0ZrWlhKelhHNGdJQ0FnSUNCUFltcGxZM1F1YTJWNWN5aG9aV0ZrWlhKektTNW1iM0pGWVdOb0tHWjFibU4wYVc5dUlDaG9aV0ZrWlhJcElIdGNiaUFnSUNBZ0lDQWdlR2h5TG5ObGRGSmxjWFZsYzNSSVpXRmtaWElvYUdWaFpHVnlMQ0JvWldGa1pYSnpXMmhsWVdSbGNsMHBPMXh1SUNBZ0lDQWdmU2s3WEc1Y2JpQWdJQ0FnSUhob2NpNXZibkpsWVdSNWMzUmhkR1ZqYUdGdVoyVWdQU0JtZFc1amRHbHZiaUFvS1NCN1hHNGdJQ0FnSUNBZ0lHbG1JQ2g0YUhJdWNtVmhaSGxUZEdGMFpTQTlQVDBnTkNrZ2UxeHVYRzRnSUNBZ0lDQWdJQ0FnZEhKNUlIdGNiaUFnSUNBZ0lDQWdJQ0FnSUhaaGNpQnlaWE53YjI1elpTQTlJSGhvY2k1eVpYTndiMjV6WlZSbGVIUWdQeUJLVTA5T0xuQmhjbk5sS0hob2NpNXlaWE53YjI1elpWUmxlSFFwSURvZ2JuVnNiRHRjYmlBZ0lDQWdJQ0FnSUNBZ0lHbG1JQ2g0YUhJdWMzUmhkSFZ6SUQ0OUlESXdNQ0FtSmlCNGFISXVjM1JoZEhWeklEd2dNekF3S1NCN1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUhKbGMyOXNkbVVvY21WemNHOXVjMlVwTzF4dUlDQWdJQ0FnSUNBZ0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ2NtVnFaV04wS0hKbGMzQnZibk5sS1R0Y2JpQWdJQ0FnSUNBZ0lDQWdJSDFjYmlBZ0lDQWdJQ0FnSUNCOUlHTmhkR05vSUNobEtTQjdYRzRnSUNBZ0lDQWdJQ0FnSUNCeVpXcGxZM1FvWlNrN1hHNGdJQ0FnSUNBZ0lDQWdmVnh1WEc0Z0lDQWdJQ0FnSUgxY2JpQWdJQ0FnSUgwN1hHNGdJQ0FnSUNCNGFISXVjMlZ1WkNoa1lYUmhLVHRjYmlBZ0lDQjlJR05oZEdOb0lDaGxLU0I3WEc0Z0lDQWdJQ0J5WldwbFkzUW9aU2s3WEc0Z0lDQWdmVnh1SUNCOUtUdGNibjA3WEc1Y2JtMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2UxeHVJQ0JoY25KaGVYTkVhV1ptWlhJNklHWjFibU4wYVc5dUlDaGhjbkpoZVVFc0lHRnljbUY1UWlrZ2UxeHVJQ0FnSUhaaGNpQnBjMFJwWm1abGNtVnVkQ0E5SUdaaGJITmxPMXh1SUNBZ0lHbG1JQ2hoY25KaGVVRXViR1Z1WjNSb0lDRTlQU0JoY25KaGVVSXViR1Z1WjNSb0tTQjdYRzRnSUNBZ0lDQnBjMFJwWm1abGNtVnVkQ0E5SUhSeWRXVTdYRzRnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUdGeWNtRjVRUzVtYjNKRllXTm9LR1oxYm1OMGFXOXVJQ2hwZEdWdExDQnBibVJsZUNrZ2UxeHVJQ0FnSUNBZ0lDQnBaaUFvYVhSbGJTQWhQVDBnWVhKeVlYbENXMmx1WkdWNFhTa2dlMXh1SUNBZ0lDQWdJQ0FnSUdselJHbG1abVZ5Wlc1MElEMGdkSEoxWlR0Y2JpQWdJQ0FnSUNBZ2ZWeHVJQ0FnSUNBZ2ZTazdYRzRnSUNBZ2ZWeHVJQ0FnSUhKbGRIVnliaUJwYzBScFptWmxjbVZ1ZER0Y2JpQWdmU3hjYmlBZ1lXcGhlRG9nZTF4dUlDQWdJSEJ2YzNRNklISmxjWFZsYzNRdVltbHVaQ2h1ZFd4c0xDQW5VRTlUVkNjcExGeHVJQ0FnSUhCMWREb2djbVZ4ZFdWemRDNWlhVzVrS0c1MWJHd3NJQ2RRVlZRbktWeHVJQ0I5WEc1OU8xeHVJbDE5IiwibW9kdWxlLmV4cG9ydHMgPSB7XG4gICdpc1ZhbHVlJzogZnVuY3Rpb24gKHZhbHVlKSB7XG4gICAgcmV0dXJuIHZhbHVlICE9PSAnJztcbiAgfSxcbiAgJ2lzRW1haWwnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUubWF0Y2goL14oKChbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkrKFxcLihbYS16XXxcXGR8WyEjXFwkJSYnXFwqXFwrXFwtXFwvPVxcP1xcXl9ge1xcfH1+XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkrKSopfCgoXFx4MjIpKCgoKFxceDIwfFxceDA5KSooXFx4MGRcXHgwYSkpPyhcXHgyMHxcXHgwOSkrKT8oKFtcXHgwMS1cXHgwOFxceDBiXFx4MGNcXHgwZS1cXHgxZlxceDdmXXxcXHgyMXxbXFx4MjMtXFx4NWJdfFtcXHg1ZC1cXHg3ZV18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pfChcXFxcKFtcXHgwMS1cXHgwOVxceDBiXFx4MGNcXHgwZC1cXHg3Zl18W1xcdTAwQTAtXFx1RDdGRlxcdUY5MDAtXFx1RkRDRlxcdUZERjAtXFx1RkZFRl0pKSkpKigoKFxceDIwfFxceDA5KSooXFx4MGRcXHgwYSkpPyhcXHgyMHxcXHgwOSkrKT8oXFx4MjIpKSlAKCgoW2Etel18XFxkfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKXwoKFthLXpdfFxcZHxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkoW2Etel18XFxkfC18XFwufF98fnxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkqKFthLXpdfFxcZHxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkpKVxcLikrKChbYS16XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSl8KChbYS16XXxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkoW2Etel18XFxkfC18XFwufF98fnxbXFx1MDBBMC1cXHVEN0ZGXFx1RjkwMC1cXHVGRENGXFx1RkRGMC1cXHVGRkVGXSkqKFthLXpdfFtcXHUwMEEwLVxcdUQ3RkZcXHVGOTAwLVxcdUZEQ0ZcXHVGREYwLVxcdUZGRUZdKSkpJC9pKTtcbiAgfSxcbiAgJ2lzVHJ1ZSc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZSA9PT0gdHJ1ZTtcbiAgfSxcbiAgJ2lzTnVtZXJpYyc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFyIG1hdGNoUmVzdWx0cyA9IHZhbHVlLm1hdGNoKC9bLStdPyhcXGQqWy5dKT9cXGQrLyk7XG4gICAgICBpZiAoISEgbWF0Y2hSZXN1bHRzKSB7XG4gICAgICAgIHJldHVybiBtYXRjaFJlc3VsdHNbMF0gPT0gdmFsdWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9LFxuICAnaXNBbHBoYSc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXlthLXpBLVpdKyQvKTtcbiAgfSxcbiAgJ2lzV29yZHMnOiBmdW5jdGlvbiAodmFsdWUpIHtcbiAgICByZXR1cm4gdmFsdWUubWF0Y2goL15bYS16QS1aXFxzXSskLyk7XG4gIH0sXG4gICdpc1NwZWNpYWxXb3Jkcyc6IGZ1bmN0aW9uICh2YWx1ZSkge1xuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXlthLXpBLVpcXHNcXHUwMEMwLVxcdTAxN0ZdKyQvKTtcbiAgfSxcbiAgaXNMZW5ndGg6IGZ1bmN0aW9uICh2YWx1ZSwgbWluLCBtYXgpIHtcbiAgICBpZiAobWF4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPj0gbWluICYmIHZhbHVlLmxlbmd0aCA8PSBtYXg7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5sZW5ndGggPj0gbWluO1xuICB9LFxuICBlcXVhbHM6IGZ1bmN0aW9uICh2YWx1ZSwgZXFsKSB7XG4gICAgcmV0dXJuIHZhbHVlID09IGVxbDtcbiAgfSxcbiAgZXF1YWxzRmllbGQ6IGZ1bmN0aW9uICh2YWx1ZSwgZmllbGQpIHtcbiAgICByZXR1cm4gdmFsdWUgPT0gdGhpc1tmaWVsZF07XG4gIH1cbn07XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWRhdGE6YXBwbGljYXRpb24vanNvbjtiYXNlNjQsZXlKMlpYSnphVzl1SWpvekxDSm1hV3hsSWpvaUwxVnpaWEp6TDJOb2NtbHpkR2xoYm1Gc1ptOXVhUzlFYjJOMWJXVnVkSE12WkdWMkwyWnZjbTF6ZVMxeVpXRmpkQzl6Y21NdmRtRnNhV1JoZEdsdmJsSjFiR1Z6TG1weklpd2ljMjkxY21ObGN5STZXeUl2VlhObGNuTXZZMmh5YVhOMGFXRnVZV3htYjI1cEwwUnZZM1Z0Wlc1MGN5OWtaWFl2Wm05eWJYTjVMWEpsWVdOMEwzTnlZeTkyWVd4cFpHRjBhVzl1VW5Wc1pYTXVhbk1pWFN3aWJtRnRaWE1pT2x0ZExDSnRZWEJ3YVc1bmN5STZJa0ZCUVVFc1RVRkJUU3hEUVVGRExFOUJRVThzUjBGQlJ6dEZRVU5tTEZOQlFWTXNSVUZCUlN4VlFVRlZMRXRCUVVzc1JVRkJSVHRKUVVNeFFpeFBRVUZQTEV0QlFVc3NTMEZCU3l4RlFVRkZMRU5CUVVNN1IwRkRja0k3UlVGRFJDeFRRVUZUTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1NVRkRNVUlzVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMSGswUWtGQmVUUkNMRU5CUVVNc1EwRkJRenRIUVVNdk5VSTdSVUZEUkN4UlFVRlJMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVU3U1VGRGVrSXNUMEZCVHl4TFFVRkxMRXRCUVVzc1NVRkJTU3hEUVVGRE8wZEJRM1pDTzBWQlEwUXNWMEZCVnl4RlFVRkZMRlZCUVZVc1MwRkJTeXhGUVVGRk8wbEJRelZDTEVsQlFVa3NUMEZCVHl4TFFVRkxMRXRCUVVzc1VVRkJVU3hGUVVGRk8wMUJRemRDTEU5QlFVOHNTVUZCU1N4RFFVRkRPMHRCUTJJc1RVRkJUVHROUVVOTUxFbEJRVWtzV1VGQldTeEhRVUZITEV0QlFVc3NRMEZCUXl4TFFVRkxMRU5CUVVNc2JVSkJRVzFDTEVOQlFVTXNRMEZCUXp0TlFVTndSQ3hKUVVGSkxFTkJRVU1zUlVGQlJTeFpRVUZaTEVWQlFVVTdVVUZEYmtJc1QwRkJUeXhaUVVGWkxFTkJRVU1zUTBGQlF5eERRVUZETEVsQlFVa3NTMEZCU3l4RFFVRkRPMDlCUTJwRExFMUJRVTA3VVVGRFRDeFBRVUZQTEV0QlFVc3NRMEZCUXp0UFFVTmtPMHRCUTBZN1IwRkRSanRGUVVORUxGTkJRVk1zUlVGQlJTeFZRVUZWTEV0QlFVc3NSVUZCUlR0SlFVTXhRaXhQUVVGUExFdEJRVXNzUTBGQlF5eExRVUZMTEVOQlFVTXNZVUZCWVN4RFFVRkRMRU5CUVVNN1IwRkRia003UlVGRFJDeFRRVUZUTEVWQlFVVXNWVUZCVlN4TFFVRkxMRVZCUVVVN1NVRkRNVUlzVDBGQlR5eExRVUZMTEVOQlFVTXNTMEZCU3l4RFFVRkRMR1ZCUVdVc1EwRkJReXhEUVVGRE8wZEJRM0pETzBWQlEwUXNaMEpCUVdkQ0xFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVTdTVUZEYWtNc1QwRkJUeXhMUVVGTExFTkJRVU1zUzBGQlN5eERRVUZETERSQ1FVRTBRaXhEUVVGRExFTkJRVU03UjBGRGJFUTdSVUZEUkN4UlFVRlJMRVZCUVVVc1ZVRkJWU3hMUVVGTExFVkJRVVVzUjBGQlJ5eEZRVUZGTEVkQlFVY3NSVUZCUlR0SlFVTnVReXhKUVVGSkxFZEJRVWNzUzBGQlN5eFRRVUZUTEVWQlFVVTdUVUZEY2tJc1QwRkJUeXhMUVVGTExFTkJRVU1zVFVGQlRTeEpRVUZKTEVkQlFVY3NTVUZCU1N4TFFVRkxMRU5CUVVNc1RVRkJUU3hKUVVGSkxFZEJRVWNzUTBGQlF6dExRVU51UkR0SlFVTkVMRTlCUVU4c1MwRkJTeXhEUVVGRExFMUJRVTBzU1VGQlNTeEhRVUZITEVOQlFVTTdSMEZETlVJN1JVRkRSQ3hOUVVGTkxFVkJRVVVzVlVGQlZTeExRVUZMTEVWQlFVVXNSMEZCUnl4RlFVRkZPMGxCUXpWQ0xFOUJRVThzUzBGQlN5eEpRVUZKTEVkQlFVY3NRMEZCUXp0SFFVTnlRanRGUVVORUxGZEJRVmNzUlVGQlJTeFZRVUZWTEV0QlFVc3NSVUZCUlN4TFFVRkxMRVZCUVVVN1NVRkRia01zVDBGQlR5eExRVUZMTEVsQlFVa3NTVUZCU1N4RFFVRkRMRXRCUVVzc1EwRkJReXhEUVVGRE8wZEJRemRDTzBOQlEwWXNRMEZCUXlJc0luTnZkWEpqWlhORGIyNTBaVzUwSWpwYkltMXZaSFZzWlM1bGVIQnZjblJ6SUQwZ2UxeHVJQ0FuYVhOV1lXeDFaU2M2SUdaMWJtTjBhVzl1SUNoMllXeDFaU2tnZTF4dUlDQWdJSEpsZEhWeWJpQjJZV3gxWlNBaFBUMGdKeWM3WEc0Z0lIMHNYRzRnSUNkcGMwVnRZV2xzSnpvZ1puVnVZM1JwYjI0Z0tIWmhiSFZsS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbExtMWhkR05vS0M5ZUtDZ29XMkV0ZWwxOFhGeGtmRnNoSTF4Y0pDVW1KMXhjS2x4Y0sxeGNMVnhjTHoxY1hEOWNYRjVmWUh0Y1hIeDlmbDE4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEt5aGNYQzRvVzJFdGVsMThYRnhrZkZzaEkxeGNKQ1VtSjF4Y0tseGNLMXhjTFZ4Y0x6MWNYRDljWEY1ZllIdGNYSHg5ZmwxOFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLeWtxS1h3b0tGeGNlREl5S1Nnb0tDaGNYSGd5TUh4Y1hIZ3dPU2txS0Z4Y2VEQmtYRng0TUdFcEtUOG9YRng0TWpCOFhGeDRNRGtwS3lrL0tDaGJYRng0TURFdFhGeDRNRGhjWEhnd1lseGNlREJqWEZ4NE1HVXRYRng0TVdaY1hIZzNabDE4WEZ4NE1qRjhXMXhjZURJekxWeGNlRFZpWFh4YlhGeDROV1F0WEZ4NE4yVmRmRnRjWEhVd01FRXdMVnhjZFVRM1JrWmNYSFZHT1RBd0xWeGNkVVpFUTBaY1hIVkdSRVl3TFZ4Y2RVWkdSVVpkS1h3b1hGeGNYQ2hiWEZ4NE1ERXRYRng0TURsY1hIZ3dZbHhjZURCalhGeDRNR1F0WEZ4NE4yWmRmRnRjWEhVd01FRXdMVnhjZFVRM1JrWmNYSFZHT1RBd0xWeGNkVVpFUTBaY1hIVkdSRVl3TFZ4Y2RVWkdSVVpkS1NrcEtTb29LQ2hjWEhneU1IeGNYSGd3T1NrcUtGeGNlREJrWEZ4NE1HRXBLVDhvWEZ4NE1qQjhYRng0TURrcEt5ay9LRnhjZURJeUtTa3BRQ2dvS0Z0aExYcGRmRnhjWkh4YlhGeDFNREJCTUMxY1hIVkVOMFpHWEZ4MVJqa3dNQzFjWEhWR1JFTkdYRngxUmtSR01DMWNYSFZHUmtWR1hTbDhLQ2hiWVMxNlhYeGNYR1I4VzF4Y2RUQXdRVEF0WEZ4MVJEZEdSbHhjZFVZNU1EQXRYRngxUmtSRFJseGNkVVpFUmpBdFhGeDFSa1pGUmwwcEtGdGhMWHBkZkZ4Y1pId3RmRnhjTG54ZmZINThXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS2loYllTMTZYWHhjWEdSOFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLU2xjWEM0cEt5Z29XMkV0ZWwxOFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBmQ2dvVzJFdGVsMThXMXhjZFRBd1FUQXRYRngxUkRkR1JseGNkVVk1TURBdFhGeDFSa1JEUmx4Y2RVWkVSakF0WEZ4MVJrWkZSbDBwS0Z0aExYcGRmRnhjWkh3dGZGeGNMbnhmZkg1OFcxeGNkVEF3UVRBdFhGeDFSRGRHUmx4Y2RVWTVNREF0WEZ4MVJrUkRSbHhjZFVaRVJqQXRYRngxUmtaRlJsMHBLaWhiWVMxNlhYeGJYRngxTURCQk1DMWNYSFZFTjBaR1hGeDFSamt3TUMxY1hIVkdSRU5HWEZ4MVJrUkdNQzFjWEhWR1JrVkdYU2twS1NRdmFTazdYRzRnSUgwc1hHNGdJQ2RwYzFSeWRXVW5PaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2RtRnNkV1VnUFQwOUlIUnlkV1U3WEc0Z0lIMHNYRzRnSUNkcGMwNTFiV1Z5YVdNbk9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVcElIdGNiaUFnSUNCcFppQW9kSGx3Wlc5bUlIWmhiSFZsSUQwOVBTQW5iblZ0WW1WeUp5a2dlMXh1SUNBZ0lDQWdjbVYwZFhKdUlIUnlkV1U3WEc0Z0lDQWdmU0JsYkhObElIdGNiaUFnSUNBZ0lIWmhjaUJ0WVhSamFGSmxjM1ZzZEhNZ1BTQjJZV3gxWlM1dFlYUmphQ2d2V3kwclhUOG9YRnhrS2xzdVhTay9YRnhrS3k4cE8xeHVJQ0FnSUNBZ2FXWWdLQ0VoSUcxaGRHTm9VbVZ6ZFd4MGN5a2dlMXh1SUNBZ0lDQWdJQ0J5WlhSMWNtNGdiV0YwWTJoU1pYTjFiSFJ6V3pCZElEMDlJSFpoYkhWbE8xeHVJQ0FnSUNBZ2ZTQmxiSE5sSUh0Y2JpQWdJQ0FnSUNBZ2NtVjBkWEp1SUdaaGJITmxPMXh1SUNBZ0lDQWdmVnh1SUNBZ0lIMWNiaUFnZlN4Y2JpQWdKMmx6UVd4d2FHRW5PaUJtZFc1amRHbHZiaUFvZG1Gc2RXVXBJSHRjYmlBZ0lDQnlaWFIxY200Z2RtRnNkV1V1YldGMFkyZ29MMTViWVMxNlFTMWFYU3NrTHlrN1hHNGdJSDBzWEc0Z0lDZHBjMWR2Y21Sekp6b2dablZ1WTNScGIyNGdLSFpoYkhWbEtTQjdYRzRnSUNBZ2NtVjBkWEp1SUhaaGJIVmxMbTFoZEdOb0tDOWVXMkV0ZWtFdFdseGNjMTBySkM4cE8xeHVJQ0I5TEZ4dUlDQW5hWE5UY0dWamFXRnNWMjl5WkhNbk9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVcElIdGNiaUFnSUNCeVpYUjFjbTRnZG1Gc2RXVXViV0YwWTJnb0wxNWJZUzE2UVMxYVhGeHpYRngxTURCRE1DMWNYSFV3TVRkR1hTc2tMeWs3WEc0Z0lIMHNYRzRnSUdselRHVnVaM1JvT2lCbWRXNWpkR2x2YmlBb2RtRnNkV1VzSUcxcGJpd2diV0Y0S1NCN1hHNGdJQ0FnYVdZZ0tHMWhlQ0FoUFQwZ2RXNWtaV1pwYm1Wa0tTQjdYRzRnSUNBZ0lDQnlaWFIxY200Z2RtRnNkV1V1YkdWdVozUm9JRDQ5SUcxcGJpQW1KaUIyWVd4MVpTNXNaVzVuZEdnZ1BEMGdiV0Y0TzF4dUlDQWdJSDFjYmlBZ0lDQnlaWFIxY200Z2RtRnNkV1V1YkdWdVozUm9JRDQ5SUcxcGJqdGNiaUFnZlN4Y2JpQWdaWEYxWVd4ek9pQm1kVzVqZEdsdmJpQW9kbUZzZFdVc0lHVnhiQ2tnZTF4dUlDQWdJSEpsZEhWeWJpQjJZV3gxWlNBOVBTQmxjV3c3WEc0Z0lIMHNYRzRnSUdWeGRXRnNjMFpwWld4a09pQm1kVzVqZEdsdmJpQW9kbUZzZFdVc0lHWnBaV3hrS1NCN1hHNGdJQ0FnY21WMGRYSnVJSFpoYkhWbElEMDlJSFJvYVhOYlptbGxiR1JkTzF4dUlDQjlYRzU5TzF4dUlsMTkiXX0=
|