iPhoneHandle
1.3.2
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
Build for iPhoneHandle 1.3.2.
Build for iPhoneHandle 1.3.1.
First version for OTRS 3.3.x.
The iPhoneHandle Package.
Das iPhoneHandle Paket.
3.3.x
<br/>
<strong>WELCOME</strong>
<br/>
<br/>
You are about to install the OTRS package iPhoneHandle.<br/>
<br/>
<br/>
<b>ATTENTION</b>
<br/>
<br/>
Make sure your database accepts packages over 5 MB in size. A MySQL database for example accepts packages up to 1 MB by default. In this case, the value for max_allowed_packet must be increased. The recommended maximum size accepted is 20 MB.<br/>
<br/>
<br/>
((enjoy))<br/>
<br/>
<br/>
<strong>ATTENTION</strong>
<br/>
<br/>
If you uninstall this package, the iPhone app, will not be able to communicate with your server!
<br/>
<br/>
((enjoy))<br/>
<br/>
<br/>
<strong>WELCOME</strong>
<br/>
<br/>
You are about to upgrade the OTRS package iPhoneHandle.<br/>
<br/>
<br/>
((enjoy))<br/>
<br/>
# define function name
my $FunctionName = 'CodeInstall';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start method
if ( !$CodeObject->$FunctionName(%{$Self}) ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method $FunctionName() on $CodeModule.pm."
);
}
}
# error handling
else {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method new() on $CodeModule.pm."
);
}
}
# define function name
my $FunctionName = 'CodeUpgrade';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start method
if ( !$CodeObject->$FunctionName(%{$Self}) ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method $FunctionName() on $CodeModule.pm."
);
}
}
# error handling
else {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method new() on $CodeModule.pm."
);
}
}
# define function name
my $FunctionName = 'CodeUninstall';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start method
if ( !$CodeObject->$FunctionName(%{$Self}) ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method $FunctionName() on $CodeModule.pm."
);
}
}
# error handling
else {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method new() on $CodeModule.pm."
);
}
}
# define function name
my $FunctionName = 'CodeReinstall';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start method
if ( !$CodeObject->$FunctionName(%{$Self}) ) {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method $FunctionName() on $CodeModule.pm."
);
}
}
# error handling
else {
$Self->{LogObject}->Log(
Priority => 'error',
Message => "Could not call method new() on $CodeModule.pm."
);
}
}
2014-09-19 00:34:29
opms.otrs.com
IyEvdXNyL2Jpbi9wZXJsCiMgLS0KIyBiaW4vY2dpLWJpbi9qc29uLnBsIC0ganNvbiBoYW5kbGUKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFGRkVSTyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiMgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgVVNBCiMgb3Igc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyB1c2UgLi4vLi4vIGFzIGxpYiBsb2NhdGlvbgp1c2UgRmluZEJpbiBxdygkQmluKTsKdXNlIGxpYiAiJEJpbi8uLi8uLiI7CnVzZSBsaWIgIiRCaW4vLi4vLi4vS2VybmVsL2NwYW4tbGliIjsKCiMgbG9hZCBpUGhvbmUgSGFuZGxlIHdlYiBpbnRlcmZhY2UKdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZSgpOwoKIyBjcmVhdGUgbmV3IG9iamVjdApteSAkSW50ZXJmYWNlID0gS2VybmVsOjpTeXN0ZW06OldlYjo6SW50ZXJmYWNlaVBob25lSGFuZGxlLT5uZXcoKTsKCiMgZXhlY3V0ZSBvYmplY3QKbXkgJFJlc3BvbnNlID0gJEludGVyZmFjZS0+UnVuKCk7CgpwcmludCAiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBcbiI7CnByaW50ICJcbiI7CnByaW50ICRSZXNwb25zZTsKCjE7Cg==
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8b3Ryc19jb25maWcgdmVyc2lvbj0iMS4wIiBpbml0PSJBcHBsaWNhdGlvbiI+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkRlYnVnTG9nIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFsbG93cyB0byBlbmFibGUgYSBzcGVjaWFsIGxvZyBmb3IgYWxsIGNvbW11bmljYXRpb24gYmV0d2VlbiBpUGhvbmUgYW5kIG90cnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6TG9nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpMb2dGaWxlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHBhdGggYW5kIGZpbGUgbmFtZSBmb3IgdGhlIGRlYnVnIGxvZyBmaWxlLiBUaGlzIGZpbGUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYnkgdGhlIHN5c3RlbSwgaWYgaXQgZG9lc24ndCBleGlzdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpMb2c8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPi90bXAvaVBob25lLmxvZzwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjVGlja2V0VHlwZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb24gdGhlIGlQaG9uZSBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjU2VydmljZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBzZXJ2aWNlIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNPd25lciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjUmVzcG9uc2libGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNDdXN0b21lcklEIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGN1c3RvbWVyIGlkIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI1N0YXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFsbG93cyB0byBzZXQgYSBuZXcgdGlja2V0IHN0YXRlIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNTdGF0ZURlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIGZvciBuZXcgcGhvbmUgdGlja2V0cyBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5vcGVuPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI1ByaW9yaXR5RGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjQm9keSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBkZWZhdWx0IGJvZHkgdGV4dCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8VGV4dEFyZWE+PC9UZXh0QXJlYT4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjQXJ0aWNsZVR5cGVEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgdHlwZSBvZiB0aGUgdGlja2V0IGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5waG9uZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNTZW5kZXJUeXBlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgc2VuZGVyIHR5cGUgZm9yIG5ldyBwaG9uZSB0aWNrZXQgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y3VzdG9tZXI8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjVGltZVVuaXRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpbWUgdW5pdHMgaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI0hpc3RvcnlUeXBlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhpc3RvcnkgdHlwZSBmb3IgdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5QaG9uZUNhbGxDdXN0b21lcjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNIaXN0b3J5Q29tbWVudCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBub3RlIHNjcmVlbiBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPm5vdGU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjUmVxdWlyZWRMb2NrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlIChpZiB0aGUgdGlja2V0IGlzbid0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNUaWNrZXRUeXBlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpY2tldCB0eXBlIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNTZXJ2aWNlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHNlcnZpY2UgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjT3duZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjUmVzcG9uc2libGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1N0YXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNTdGF0ZVR5cGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPm9wZW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wZW5kaW5nIHJlbWluZGVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyBhdXRvPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1N0YXRlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPm9wZW48L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNOb3RlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFsbG93cyBhZGRpbmcgbm90ZXMgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNTdWJqZWN0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPk5vdGU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNCb2R5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxUZXh0QXJlYT48L1RleHRBcmVhPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI0FydGljbGVUeXBlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHR5cGUgb2YgdGhlIG5vdGUgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPm5vdGUtaW50ZXJuYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNBcnRpY2xlVHlwZXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U3BlY2lmeSB0aGUgZGlmZmVyZW50IG5vdGUgdHlwZXMsIHRoYXQgeW91IHdhbnQgdG8gdXNlIGluIHlvdXIgc3lzdGVtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWludGVybmFsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWV4dGVybmFsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLXJlcG9ydCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1ByaW9yaXR5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1ByaW9yaXR5RGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNUaXRsZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyB0aGUgdGl0bGUgZmllbGRzIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlwaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjVGltZVVuaXRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpbWUgdW5pdHMgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNIaXN0b3J5VHlwZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IHR5cGUgZm9yIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+QWRkTm90ZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI0hpc3RvcnlDb21tZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhpc3RvcnkgY29tbWVudCBmb3IgdGhlIHRpY2tldCBub3RlIHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4lJU5vdGU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y2xvc2U8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjUmVxdWlyZWRMb2NrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc24ndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNUaWNrZXRUeXBlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpY2tldCB0eXBlIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1NlcnZpY2UiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgc2VydmljZSBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNPd25lciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNSZXNwb25zaWJsZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjU3RhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgYSBub3RlIGlzIGFkZGVkIGJ5IGFuIGFnZW50LCBzZXRzIHRoZSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1N0YXRlVHlwZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1N0YXRlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y2xvc2VkIHN1Y2Nlc3NmdWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjTm90ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BbGxvd3MgYWRkaW5nIG5vdGVzIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjU3ViamVjdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBkZWZhdWx0IHN1YmplY3QgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPkNsb3NlPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI0JvZHkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgZGVmYXVsdCBib2R5IHRleHQgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8VGV4dEFyZWE+PC9UZXh0QXJlYT4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjQXJ0aWNsZVR5cGVEZWZhdWx0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgdHlwZSBvZiB0aGUgbm90ZSBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5ub3RlLWludGVybmFsPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI0FydGljbGVUeXBlcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBub3RlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGluIHRoZSBzeXN0ZW0uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWludGVybmFsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWV4dGVybmFsIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLXJlcG9ydCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNQcmlvcml0eSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNQcmlvcml0eURlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjVGl0bGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgdGhlIHRpdGxlIGZpZWxkcyBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1RpbWVVbml0cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aW1lIHVuaXRzIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjSGlzdG9yeVR5cGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+QWRkTm90ZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNIaXN0b3J5Q29tbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4lJUNsb3NlPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgdGlja2V0IGNsb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPmNvbXBvc2U8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENvbXBvc2UjIyNSZXF1aXJlZExvY2siIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgY29tcG9zZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuJ3QgbG9ja2VkIHlldCwgdGhlIHRpY2tldCBnZXRzIGxvY2tlZCBhbmQgdGhlIGN1cnJlbnQgYWdlbnQgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSBhcyBpdHMgb3duZXIpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZSMjI1N0YXRlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgYSB0aWNrZXQgaWYgaXQgaXMgY29tcG9zZWQgLyBhbnN3ZXJlZCBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZSMjI1N0YXRlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgaWYgaXQgaXMgY29tcG9zZWQgLyBhbnN3ZXJlZCBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+b3BlbjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZSMjI1N0YXRlVHlwZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBuZXh0IHBvc3NpYmxlIHN0YXRlcyBhZnRlciBjb21wb3NpbmcgLyBhbnN3ZXJpbmcgYSB0aWNrZXQgaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5vcGVuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Y2xvc2VkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyBhdXRvPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyByZW1pbmRlcjwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpDb21wb3NlQWRkQ3VzdG9tZXJBZGRyZXNzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFkZHMgY3VzdG9tZXJzIGVtYWlsIGFkZHJlc3NlcyB0byByZWNpcGllbnRzIGluIHRoZSB0aWNrZXQgY29tcG9zZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDb21wb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6Q29tcG9zZVJlcGxhY2VTZW5kZXJBZGRyZXNzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcGxhY2VzIHRoZSBvcmlnaW5hbCBzZW5kZXIgd2l0aCBjdXJyZW50IGN1c3RvbWVyJ3MgZW1haWwgYWRkcmVzcyBvbiBjb21wb3NlIGFuc3dlciBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkNvbXBvc2VFeGNsdWRlQ2NSZWNpcGllbnRzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlVzZXMgQ2MgcmVjaXBpZW50cyBpbiByZXBseSBDYyBsaXN0IG9uIGNvbXBvc2UgYW4gZW1haWwgYW5zd2VyIGluIHRoZSB0aWNrZXQgY29tcG9zZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDb21wb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlIyMjVGltZVVuaXRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpbWUgdW5pdHMgaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENvbXBvc2UjIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIHVzZSB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIGluIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y29tcG9zZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1JlcXVpcmVkTG9jayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIGEgdGlja2V0IGxvY2sgaXMgcmVxdWlyZWQgaW4gdGhlIG1vdmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc24ndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjT3duZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSBtb3ZlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjU3RhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWxsb3dzIHRvIHNldCBhIG5ldyB0aWNrZXQgc3RhdGUgaW4gdGhlIG1vdmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01vdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNTdGF0ZVR5cGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBiZWluZyBtb3ZlZCB0byBhbm90aGVyIHF1ZXVlLCBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPm9wZW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjU3RhdGVEZWZhdWx0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+b3BlbjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1ByaW9yaXR5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1ByaW9yaXR5RGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNUaW1lVW5pdHMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGltZSB1bml0cyBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgdGlja2V0IG1vdmUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gRW5hYmxlZCwgMiA9IEVuYWJsZWQgYW5kIHJlcXVpcmVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgoKICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6QVBJOjpPYmplY3QjIyNDb25maWdPYmplY3QiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q29uZmlndXJlIGFjY2VzcyByZXN0cmljdGlvbnMgdG8gb2JqZWN0cyBvZiBpUGhvbmUgaGFuZGxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkFQSTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpBUEk6Ok9iamVjdCMjI1RpbWVPYmplY3QiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q29uZmlndXJlIGFjY2VzcyByZXN0cmljdGlvbnMgdG8gb2JqZWN0cyBvZiBpUGhvbmUgaGFuZGxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkFQSTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpBUEk6Ok9iamVjdCMjI0xvZ09iamVjdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Db25maWd1cmUgYWNjZXNzIHJlc3RyaWN0aW9ucyB0byBvYmplY3RzIG9mIGlQaG9uZSBoYW5kbGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+QVBJPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj48L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkFQSTo6T2JqZWN0IyMjREJPYmplY3QiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q29uZmlndXJlIGFjY2VzcyByZXN0cmljdGlvbnMgdG8gb2JqZWN0cyBvZiBpUGhvbmUgaGFuZGxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkFQSTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpBUEk6Ok9iamVjdCMjI1RpY2tldE9iamVjdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Db25maWd1cmUgYWNjZXNzIHJlc3RyaWN0aW9ucyB0byBvYmplY3RzIG9mIGlQaG9uZSBoYW5kbGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+QVBJPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4oTW92ZUxpc3R8TW92ZVRpY2tldCk8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkFQSTo6T2JqZWN0IyMjQ3VzdG9tT2JqZWN0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkNvbmZpZ3VyZSBhY2Nlc3MgcmVzdHJpY3Rpb25zIHRvIG9iamVjdHMgb2YgaVBob25lIGhhbmRsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5BUEk8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6QVBJOjpPYmplY3QjIyNpUGhvbmVPYmplY3QiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q29uZmlndXJlIGFjY2VzcyByZXN0cmljdGlvbnMgdG8gb2JqZWN0cyBvZiBpUGhvbmUgaGFuZGxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkFQSTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgoKICAgIDxDb25maWdJdGVtIE5hbWU9IkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6QmFja2VuZCMjIzEwMC1pUGhvbmUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgRXh0ZW5zaW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6UmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6aVBob25lQmFja2VuZDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6RHJpdmVyOjpUZXh0IyMjMTAwLWlQaG9uZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIEZpZWxkcyBFeHRlbnNpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZVRleHQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJlaGF2aW9ycyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSXNJUGhvbmVDYXBhYmxlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6RHJpdmVyOjpUZXh0QXJlYSMjIzEwMC1pUGhvbmUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgRXh0ZW5zaW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6UmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVUZXh0QXJlYTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmVoYXZpb3JzIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJc0lQaG9uZUNhcGFibGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpEcml2ZXI6OkNoZWNrYm94IyMjMTAwLWlQaG9uZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIEZpZWxkcyBFeHRlbnNpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZUNoZWNrYm94PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCZWhhdmlvcnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IklzSVBob25lQ2FwYWJsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJEeW5hbWljRmllbGRzOjpFeHRlbnNpb246OkRyaXZlcjo6RHJvcGRvd24jIyMxMDAtaVBob25lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgRmllbGRzIEV4dGVuc2lvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5EeW5hbWljRmllbGRzOjpFeHRlbnNpb246OlJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRHJvcGRvd248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJlaGF2aW9ycyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSXNJUGhvbmVDYXBhYmxlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDwhLS0gIE11bHRpc2VsZWN0IER5bmFtaWMgRmllbGQgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgYnkgaVBob25lIEFwcCAtLT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6RHJpdmVyOjpEYXRlVGltZSMjIzEwMC1pUGhvbmUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgRXh0ZW5zaW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6UmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEYXRlVGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmVoYXZpb3JzIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJc0lQaG9uZUNhcGFibGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpEcml2ZXI6OkRhdGUjIyMxMDAtaVBob25lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgRmllbGRzIEV4dGVuc2lvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5EeW5hbWljRmllbGRzOjpFeHRlbnNpb246OlJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmVoYXZpb3JzIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJc0lQaG9uZUNhcGFibGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgo8L290cnNfY29uZmlnPgo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVDaGVja2JveC5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIENoZWNrYm94IGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lQ2hlY2tib3g7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVDaGFja2JveAoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIENoZWNrYm94IGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgICRWYWx1ZSA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6ICcnICk7CiAgICB9CiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIHNldCBQb3NzaWJsZVZhbHVlcwogICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gewogICAgICAgIDAgPT4gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdVbmNoZWNrZWQnKSB8fCAnVW5jaGVja2VkJywKICAgICAgICAxID0+ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCgnQ2hlY2tlZCcpICAgfHwgJ0NoZWNrZWQnLAogICAgfTsKCiAgICAjIGNyZWF0ZSB0aGUgZmllbGQgZGVmaW5pdGlvbgogICAgbXkgJERhdGEgPSB7CiAgICAgICAgTmFtZSAgICAgID0+ICRGaWVsZE5hbWUsCiAgICAgICAgVGl0bGUgICAgID0+ICRGaWVsZExhYmVsLAogICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgIE9wdGlvbnMgICA9PiAkUG9zc2libGVWYWx1ZXMsCiAgICAgICAgTWFuZGF0b3J5ID0+ICRQYXJhbXtNYW5kYXRvcnl9LAogICAgICAgIERlZmF1bHQgICA9PiAkVmFsdWUsCiAgICB9OwoKICAgIHJldHVybiAkRGF0YTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRmllbGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKCiAgICBteSAkVmFsdWUgPSAkUGFyYW17JEZpZWxkTmFtZX07CgogICAgcmV0dXJuICRWYWx1ZTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHBhcmFtCiAgICBteSAkVmFsdWUgPSAkUGFyYW17VmFsdWV9OwoKICAgIG15ICRTZXJ2ZXJFcnJvcjsKICAgIG15ICRFcnJvck1lc3NhZ2U7CgogICAgIyBwZXJmb3JtIG5lY2Vzc2FyeSB2YWxpZGF0aW9ucwogICAgaWYgKCAkUGFyYW17TWFuZGF0b3J5fSAmJiAhJFZhbHVlICkgewogICAgICAgICRTZXJ2ZXJFcnJvciA9IDE7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyBpbiBwb3NzaWJsZSB2YWx1ZXMgbGlzdCAoYnV0IGxldCBwYXNzIGVtcHR5IHZhbHVlcykKICAgICAgICBpZiAoICRWYWx1ZSBuZSAnMCcgJiYgJFZhbHVlIG5lICcxJyApIHsKICAgICAgICAgICAgJFNlcnZlckVycm9yICA9IDE7CiAgICAgICAgICAgICRFcnJvck1lc3NhZ2UgPSAnVGhlIGZpZWxkIGNvbnRlbnQgaXMgaW52YWxpZCc7CiAgICAgICAgfQogICAgfQoKICAgICMgY3JlYXRlIHJlc3VsdGluZyBzdHJ1Y3R1cmUKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgID0+ICRTZXJ2ZXJFcnJvciwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgIH07CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVEYXRlLnBtIC0gRHJpdmVyIGZvciBEeW5hbWljRmllbGQgRGF0ZSBiYWNrZW5kCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZURhdGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEYXRlCgo9aGVhZDEgU1lOT1BTSVMKCkR5bmFtaWNGaWVsZHMgRGF0ZSBiYWNrZW5kIGRyaXZlciBmb3IgaVBob25lSGFuZGxlCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgcHVibGljIGludGVyZmFjZSBvZiBMPEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ+LgpQbGVhc2UgbG9vayB0aGVyZSBmb3IgYSBkZXRhaWxlZCByZWZlcmVuY2Ugb2YgdGhlIGZ1bmN0aW9ucy4KCj1vdmVyIDQKCj1jdXQKCnN1YiBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIGNvbmZpZyBmcm9tIGZpZWxkIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9OwogICAgbXkgJEZpZWxkTmFtZSAgID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKICAgIG15ICRGaWVsZExhYmVsICA9ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntMYWJlbH0gKTsKCiAgICBteSAkVmFsdWUgPSAnJzsKCiAgICAjIHNldCB0aGUgZmllbGQgdmFsdWUgb3IgZGVmYXVsdAogICAgaWYgKCAkUGFyYW17VXNlRGVmYXVsdFZhbHVlfSApIHsKICAgICAgICBteSAkVGltZURpZmYgPSAoIGRlZmluZWQgJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA/ICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gOiAnJyApOwoKICAgICAgICAjIGdldCBjdXJyZW50IHN5c3RlbSB0aW1lCiAgICAgICAgbXkgJFN5c3RlbVRpbWUgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCk7CgogICAgICAgICMgZ2V0IHRpbWUgc3RyaW5nICsgJFRpbWUgZGlmZgogICAgICAgICRWYWx1ZSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lICsgJFRpbWVEaWZmLAogICAgICAgICk7CgogICAgICAgICMgcmVtb3ZlIHRoZSB0aW1lIHBhcnQKICAgICAgICAkVmFsdWUgPX4gc3tcQSAoXGR7NH0tXGR7Mn0tXGR7Mn0pICAuKiBcen17JDF9eG1zOwogICAgfQogICAgJFZhbHVlID0gJFBhcmFte1ZhbHVlfSBpZiBkZWZpbmVkICRQYXJhbXtWYWx1ZX07CgogICAgIyBjcmVhdGUgdGhlIGZpZWxkIGRlZmluaXRpb24KICAgIG15ICREYXRhID0gewogICAgICAgIE5hbWUgICAgICA9PiAkRmllbGROYW1lLAogICAgICAgIFRpdGxlICAgICA9PiAkRmllbGRMYWJlbCwKICAgICAgICBEYXRhdHlwZSAgPT4gJ0RhdGUnLAogICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICBNYW5kYXRvcnkgPT4gJFBhcmFte01hbmRhdG9yeX0sCiAgICAgICAgRGVmYXVsdCAgID0+ICRWYWx1ZSB8fCAnJywKICAgIH07CgogICAgcmV0dXJuICREYXRhOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwoKICAgIG15ICRWYWx1ZSA9ICRQYXJhbXskRmllbGROYW1lfTsKCiAgICAjIHJlbW92ZSB0aGUgdGltZSBwYXJ0CiAgICBpZiAoJFZhbHVlKSB7CiAgICAgICAgJFZhbHVlID1+IHN7XEEgKFxkezR9LVxkezJ9LVxkezJ9KSAgLiogXHp9eyQxfXhtczsKCiAgICAgICAgIyBhZGQgMHMgdG8gdGhlIHRpbWUgcGFydAogICAgICAgICRWYWx1ZSAuPSAnIDAwOjAwOjAwJzsKICAgIH0KCiAgICByZXR1cm4gJFZhbHVlOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGhlIGZpZWxkIHZhbHVlIGZyb20gcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgIH07CiAgICB9CgogICAgIyB0cnkgdG8gY29udmVydCB2YWx1ZSB0byBhIFN5c3RlbVRpbWUKICAgIGlmICgkVmFsdWUpIHsKICAgICAgICBteSAkU3lzdGVtVGltZSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICBTdHJpbmcgPT4gJFZhbHVlLAogICAgICAgICk7CgogICAgICAgIGlmICggISRTeXN0ZW1UaW1lICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgcmVzdWx0aW5nIHN0cnVjdHVyZQogICAgbXkgJFJlc3VsdCA9IHsKICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gJFNlcnZlckVycm9yLAogICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgfTsKCiAgICByZXR1cm4gJFJlc3VsdDsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVEYXRlVGltZS5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIERhdGVUaW1lIGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRGF0ZVRpbWU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEYXRlVGltZQoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIERhdGVUaW1lIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgIG15ICRUaW1lRGlmZiA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6IDAgKTsKCiAgICAgICAgIyBnZXQgY3VycmVudCBzeXN0ZW0gdGltZQogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpOwoKICAgICAgICAjIGdldCB0aW1lIHN0cmluZyArICRUaW1lIGRpZmYKICAgICAgICAkVmFsdWUgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lMlRpbWVTdGFtcCgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkU3lzdGVtVGltZSArICRUaW1lRGlmZiwKICAgICAgICApOwoKICAgIH0KICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX0gaWYgZGVmaW5lZCAkUGFyYW17VmFsdWV9OwoKICAgICMgY3JlYXRlIHRoZSBmaWVsZCBkZWZpbml0aW9uCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBOYW1lICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBUaXRsZSAgICAgPT4gJEZpZWxkTGFiZWwsCiAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgICMgdGltZSB6b25lIHRyYW5zbGF0aW9uIGlmIG5lZWRlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGltZVpvbmVVc2VyJykgJiYgJFBhcmFte1VzZXJUaW1lWm9uZX0gJiYgJFZhbHVlICkgewoKICAgICAgICAjIGNvdmVydCAkVmFsdWUgdG8gYSBudW1lcmljIHRpbWUgZm9yIGNvbnZldHJzaW9ucwogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkVmFsdWUsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgYSB0aW1lIG9iamVjdCBmb3IgdGhlcyB1c2VyIChiZWNhdXNlIG9mIHRoZSB0aW1lIHpvbmUpCiAgICAgICAgJFNlbGYtPntVc2VyVGltZU9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6VGltZS0+bmV3KAogICAgICAgICAgICAleyRTZWxmfSwKICAgICAgICAgICAgVXNlclRpbWVab25lID0+ICRQYXJhbXtVc2VyVGltZVpvbmV9LAogICAgICAgICk7CgogICAgICAgICMgc3VidHJhY3QgdGhlIHVzZXIgdGltZSB6b25lIGZyb20gdGhlIGN1cnJlbnQgdmFsdWUKICAgICAgICAkU3lzdGVtVGltZSA9ICRTeXN0ZW1UaW1lIC0gKCAkUGFyYW17VXNlclRpbWVab25lfSAqIDM2MDAgKTsKCiAgICAgICAgIyBjb252ZXJ0IG51bWVyaWMgdmFsdWUgYWdhaW4gdG8gc3RyaW5nCiAgICAgICAgJFZhbHVlID0gJFNlbGYtPntVc2VyVGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKCBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lLCApOwogICAgfQoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSBwYXJhbQogICAgbXkgJFZhbHVlID0gJFBhcmFte1ZhbHVlfTsKCiAgICBteSAkU2VydmVyRXJyb3I7CiAgICBteSAkRXJyb3JNZXNzYWdlOwoKICAgICMgcGVyZm9ybSBuZWNlc3NhcnkgdmFsaWRhdGlvbnMKICAgIGlmICggJFBhcmFte01hbmRhdG9yeX0gJiYgJFZhbHVlIGVxICcnICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgfTsKICAgIH0KCiAgICAjIHRyeSB0byBjb252ZXJ0IHZhbHVlIHRvIGEgU3lzdGVtVGltZQogICAgaWYgKCRWYWx1ZSkgewogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkVmFsdWUsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJFN5c3RlbVRpbWUgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgpzdWIgX1RyYW5zZm9ybURhdGVTZWxlY3Rpb24gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRpbWUgem9uZSB0cmFuc2xhdGlvbiBpZiBuZWVkZWQKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpbWVab25lVXNlcicpICYmICRQYXJhbXtVc2VyVGltZVpvbmV9ICkgewogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17VGltZVN0YW1wfSwKICAgICAgICApOwogICAgICAgICRTeXN0ZW1UaW1lID0gJFN5c3RlbVRpbWUgLSAoICRTZWxmLT57VXNlclRpbWVab25lfSAqIDM2MDAgKTsKCiAgICAgICAgJFNlbGYtPntVc2VyVGltZU9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6VGltZS0+bmV3KAogICAgICAgICAgICAleyRTZWxmfSwKICAgICAgICAgICAgVXNlclRpbWVab25lID0+ICRQYXJhbXtVc2VyVGltZVpvbmV9LAogICAgICAgICk7CgogICAgICAgICRQYXJhbXtUaW1lU3RhbXB9CiAgICAgICAgICAgID0gJFNlbGYtPntVc2VyVGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKCBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lLCApOwogICAgfQogICAgcmV0dXJuICRQYXJhbXtUaW1lU3RhbXB9Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVEcm9wZG93bi5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIERyb3Bkb3duIGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRHJvcGRvd247Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEcm9wZG93bgoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIERyb3Bkb3duIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgICRWYWx1ZSA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6ICcnICk7CiAgICB9CiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIHNldCBQb3NzaWJsZVZhbHVlcwogICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gJEZpZWxkQ29uZmlnLT57UG9zc2libGVWYWx1ZXN9OwoKICAgIGlmICggJEZpZWxkQ29uZmlnLT57VHJhbnNsYXRhYmxlVmFsdWVzfSApIHsKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRQb3NzaWJsZVZhbHVlcykgKSB7CiAgICAgICAgICAgIGZvciBteSAkUG9zc2libGVLZXkgKCBzb3J0IGtleXMgJXskUG9zc2libGVWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgbXkgJE9yaWdpbmFsVmFsdWUgPSAkUG9zc2libGVWYWx1ZXMtPnskUG9zc2libGVLZXl9OwogICAgICAgICAgICAgICAgJFBvc3NpYmxlVmFsdWVzLT57JFBvc3NpYmxlS2V5fQogICAgICAgICAgICAgICAgICAgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCRPcmlnaW5hbFZhbHVlKSB8fCAkT3JpZ2luYWxWYWx1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBQb3NzaWJsZU5vbmUgYXR0cmlidXRlCiAgICBteSAkRmllbGRQb3NzaWJsZU5vbmU7CiAgICBpZiAoIGRlZmluZWQgJFBhcmFte092ZXJyaWRlUG9zc2libGVOb25lfSApIHsKICAgICAgICAkRmllbGRQb3NzaWJsZU5vbmUgPSAkUGFyYW17T3ZlcnJpZGVQb3NzaWJsZU5vbmV9OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEZpZWxkUG9zc2libGVOb25lID0gJEZpZWxkQ29uZmlnLT57UG9zc2libGVOb25lfSB8fCAwOwogICAgfQoKICAgIGlmICgkRmllbGRQb3NzaWJsZU5vbmUpIHsKICAgICAgICAkUG9zc2libGVWYWx1ZXMtPnsnJ30gPSAnLSc7CiAgICB9CgogICAgIyBjcmVhdGUgdGhlIGZpZWxkIGRlZmluaXRpb24KICAgIG15ICREYXRhID0gewogICAgICAgIE5hbWUgICAgICA9PiAkRmllbGROYW1lLAogICAgICAgIFRpdGxlICAgICA9PiAkRmllbGRMYWJlbCwKICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICBPcHRpb25zICAgPT4gJFBvc3NpYmxlVmFsdWVzLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSBwYXJhbQogICAgbXkgJFZhbHVlID0gJFBhcmFte1ZhbHVlfTsKCiAgICBteSAkU2VydmVyRXJyb3I7CiAgICBteSAkRXJyb3JNZXNzYWdlOwoKICAgICMgcGVyZm9ybSBuZWNlc3NhcnkgdmFsaWRhdGlvbnMKICAgIGlmICggJFBhcmFte01hbmRhdG9yeX0gJiYgJFZhbHVlIGVxICcnICkgewogICAgICAgICRTZXJ2ZXJFcnJvciA9IDE7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBnZXQgcG9zc2libGUgdmFsdWVzIGxpc3QKICAgICAgICBteSAkUG9zc2libGVWYWx1ZXMgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ30tPntQb3NzaWJsZVZhbHVlc307CgogICAgICAgICMgdmFsaWRhdGUgaWYgdmFsdWUgaXMgaW4gcG9zc2libGUgdmFsdWVzIGxpc3QgKGJ1dCBsZXQgcGFzcyBlbXB0eSB2YWx1ZXMpCiAgICAgICAgaWYgKCAkVmFsdWUgJiYgISRQb3NzaWJsZVZhbHVlcy0+eyRWYWx1ZX0gKSB7CiAgICAgICAgICAgICRTZXJ2ZXJFcnJvciAgPSAxOwogICAgICAgICAgICAkRXJyb3JNZXNzYWdlID0gJ1RoZSBmaWVsZCBjb250ZW50IGlzIGludmFsaWQnOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVUZXh0LnBtIC0gRHJpdmVyIGZvciBEeW5hbWljRmllbGQgVGV4dCBiYWNrZW5kCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZVRleHQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVUZXh0Cgo9aGVhZDEgU1lOT1BTSVMKCkR5bmFtaWNGaWVsZHMgVGV4dCBiYWNrZW5kIGRyaXZlciBmb3IgaVBob25lSGFuZGxlCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgcHVibGljIGludGVyZmFjZSBvZiBMPEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ+LgpQbGVhc2UgbG9vayB0aGVyZSBmb3IgYSBkZXRhaWxlZCByZWZlcmVuY2Ugb2YgdGhlIGZ1bmN0aW9ucy4KCj1vdmVyIDQKCj1jdXQKCnN1YiBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIGNvbmZpZyBmcm9tIGZpZWxkIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9OwogICAgbXkgJEZpZWxkTmFtZSAgID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKICAgIG15ICRGaWVsZExhYmVsICA9ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntMYWJlbH0gKTsKCiAgICBteSAkVmFsdWUgPSAnJzsKCiAgICAjIHNldCB0aGUgZmllbGQgdmFsdWUgb3IgZGVmYXVsdAogICAgaWYgKCAkUGFyYW17VXNlRGVmYXVsdFZhbHVlfSApIHsKICAgICAgICAkVmFsdWUgPSAoIGRlZmluZWQgJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA/ICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gOiAnJyApOwogICAgfQogICAgJFZhbHVlID0gJFBhcmFte1ZhbHVlfSBpZiBkZWZpbmVkICRQYXJhbXtWYWx1ZX07CgogICAgIyBjcmVhdGUgdGhlIGZpZWxkIGRlZmluaXRpb24KICAgIG15ICREYXRhID0gewogICAgICAgIE5hbWUgICAgICA9PiAkRmllbGROYW1lLAogICAgICAgIFRpdGxlICAgICA9PiAkRmllbGRMYWJlbCwKICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgIE1heCAgICAgICA9PiAyMDAsCiAgICAgICAgTWFuZGF0b3J5ID0+ICRQYXJhbXtNYW5kYXRvcnl9LAogICAgICAgIERlZmF1bHQgICA9PiAkVmFsdWUgfHwgJycsCiAgICB9OwoKICAgIHJldHVybiAkRGF0YTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRmllbGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKCiAgICBteSAkVmFsdWUgPSAkUGFyYW17JEZpZWxkTmFtZX07CgogICAgcmV0dXJuICRWYWx1ZTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHBhcmFtCiAgICBteSAkVmFsdWUgPSAkUGFyYW17VmFsdWV9OwoKICAgIG15ICRTZXJ2ZXJFcnJvcjsKICAgIG15ICRFcnJvck1lc3NhZ2U7CgogICAgIyBwZXJmb3JtIG5lY2Vzc2FyeSB2YWxpZGF0aW9ucwogICAgaWYgKCAkUGFyYW17TWFuZGF0b3J5fSAmJiAkVmFsdWUgZXEgJycgKSB7CiAgICAgICAgJFNlcnZlckVycm9yID0gMTsKICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVUZXh0QXJlYS5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIFRleHRBcmVhIGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lVGV4dEFyZWE7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVUZXh0QXJlYQoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIFRleHRBcmVhIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5sZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKClRoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgTDxLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kPi4KUGxlYXNlIGxvb2sgdGhlcmUgZm9yIGEgZGV0YWlsZWQgcmVmZXJlbmNlIG9mIHRoZSBmdW5jdGlvbnMuCgo9b3ZlciA0Cgo9Y3V0CgpzdWIgSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGFrZSBjb25maWcgZnJvbSBmaWVsZCBjb25maWcKICAgIG15ICRGaWVsZENvbmZpZyA9ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57Q29uZmlnfTsKICAgIG15ICRGaWVsZE5hbWUgICA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CiAgICBteSAkRmllbGRMYWJlbCAgPSAkUGFyYW17TGFuZ3VhZ2VPYmplY3R9LT5HZXQoICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TGFiZWx9ICk7CgogICAgbXkgJFZhbHVlID0gJyc7CgogICAgIyBzZXQgdGhlIGZpZWxkIHZhbHVlIG9yIGRlZmF1bHQKICAgIGlmICggJFBhcmFte1VzZURlZmF1bHRWYWx1ZX0gKSB7CiAgICAgICAgJFZhbHVlID0gKCBkZWZpbmVkICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gPyAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9IDogJycgKTsKICAgIH0KICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX0gaWYgZGVmaW5lZCAkUGFyYW17VmFsdWV9OwoKICAgICMgY3JlYXRlIHRoZSBmaWVsZCBkZWZpbml0aW9uCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBOYW1lICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBUaXRsZSAgICAgPT4gJEZpZWxkTGFiZWwsCiAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICBWaWV3dHlwZSAgPT4gJ1RleHRBcmVhJywKICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICBNYXggICAgICAgPT4gMjBfMDAwLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSB0aGUgcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKICAgICAgICAkU2VydmVyRXJyb3IgPSAxOwogICAgfQoKICAgICMgY3JlYXRlIHJlc3VsdGluZyBzdHJ1Y3R1cmUKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgID0+ICRTZXJ2ZXJFcnJvciwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgIH07CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL2lQaG9uZUJhY2tlbmQucG0gLSBJbnRlcmZhY2UgZm9yIER5bmFtaWNGaWVsZCBiYWNrZW5kcwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6aVBob25lQmFja2VuZDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjppUGhvbmVCYWNrZW5kCgo9aGVhZDEgU1lOT1BTSVMKCkR5bmFtaWNGaWVsZHMgYmFja2VuZCBpbnRlcmZhY2UgZm9yIGlQaG9uZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQoKQoKY3JlYXRlcyB0aGUgZmllbGQgZGVmaW5pdGlvbiB0byBiZSB1c2VkIGluIGlwaG9uZSBlZGl0IG1hc2tzLgoKICAgIG15ICRGaWVsZERlZmluaXRpb24gPSAkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCgKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLCAgICAgICMgQ29tcGxldGUgY29uZmlnIG9mIHRoZSBEeW5hbWljRmllbGQKICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAnQW55IHZhbHVlJywgICAgICAgICAgICAgICMgT3B0aW9uYWwKICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICMgMCBvciAxLAogICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgIyAwIG9yIDEsIDEgZGVmYXVsdAogICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgIyBPcHRpb25hbCwgMCBvciAxLiBJZiBkZWZpbmVkIG9ydmVycmlkZXMgdGhlIFBvc3NpYmxlIE5vbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIHNldHRpbmcgb2YgYWxsIGR5bmFtaWMgZmllbGRzICh3aGVyZSBhcHBsaWVzKSB3aXRoIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgZGVmaW5lZCB2YWx1ZQogICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRMYW5ndWFnZU9iamVjdCwKICAgICk7CgogICAgUmV0dXJuczoKCiAgICAgICAgbXkgJEZpZWxkRGVmaW5pdGlvbiA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ3NvbWUgbmFtZScsICAgICAgIyBGaWVsZCBuYW1lICdEeWFubWljRmllbGRfTmFtZVgnCgogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAnc29tZSB0aXRsZScsICAgICAjIEZpZWxkIGxhYmVsICh0cmFuc2xhdGVkIGlmIGNhcGFibGUpCgogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAkRGF0YXR5cGUsICAgICAgICAjIFRoZSB0eXBlIG9mIHRoYXQgdG8gaG9sZCwgT3B0aW9uczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBEYXRlIHx8IFRpbWUgfHwgRGF0ZVRpbWUgfHwgVGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIHx8IE51bWVyaWMKCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICRWaWV3VHlwZSwgICAgICAgICMgVGhlIGZvcm1hdCBvZiB0aGUgZmllbGQgaW4gdGhlIGlQaG9uZSBBcHAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBBdXRvQ29tcGxldGlvbiAoaW5wdXQgZmllbGQgd2l0aCBhbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgIGF1dG8tY29tcGxldGlvbiBmZWF0dXJlOyBwb3NzaWJsZSB2YWx1ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICBhcmUgbG9hZGVkIGR5bmFtaWNhbGx5IGZyb20gdGhlIHNlcnZlciB3aXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgdGhlIER5bmFtaWNPcHRpb25zKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIFBpY2tlciAob3B0aW9uIGxpc3Qgd2l0aCB2YWx1ZXMgd2hpY2ggYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgcHJvdmlkZWQgd2l0aCB0aGUgT3B0aW9ucyBvciBEeW5hbWljT3B0aW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgIGF0dHJpYnV0ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBFTWFpbCAoaW5wdXQgZmllbGQgZm9yIEUtTWFpbCBhZGRyZXNzZXMgd2l0aCBhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgc3VpdGFibGUga2V5Ym9hcmQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgVVJMIChpbnB1dCBmaWVsZCBmb3IgVVJMcyB3aXRoIGEgc3VpdGFibGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICBrZXlib2FyZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBQYXNzd29yZCAoaW5wdXQgZmllbGQgZm9yIHBhc3N3b3Jkcywgd2hpY2ggZG9lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgIG5vdCByZXZlYWwgdGhlIGVudGVyZWQgdGV4dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBJbnB1dCAoc2ltcGxlIGlucHV0IGZpZWxkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIFRleHRBcmVhIChtdWx0aS1saW5lIGlucHV0IGZpZWxkKQoKICAgICAgICAgICAgTWluICAgICAgICAgICAgID0+IDEsICAgICAgICAgICAgICAgIyBPcHRpb25hbCwgTWluaW11bSB2YWx1ZSBmb3IgbnVtZXJpYyBmb3JtIGZpZWxkcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIG9yIG1pbmltdW0gbGVuZ3RoIGZvciB0ZXh0IGZpZWxkcy4KCiAgICAgICAgICAgIE1heCAgICAgICAgICAgICA9PiAyLCAgICAgICAgICAgICAgICMgT3B0aW9uYWwsIE1heGltdW0gdmFsdWUgZm9yIG51bWVyaWMgZm9ybSBmaWVsZHMgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBtYXhpbXVtIGxlbmd0aCBmb3IgdGV4dCBmaWVsZHMuCgogICAgICAgICAgICBPcHRpb25zICAgICAgICAgPT4geyAgICAgICAgICAgICAgICAjIE9wdGlvbmFsLCBMaXN0IG9mIG9wdGlvbnMgd2hpY2ggZGVmaW5lcyB0aGUgcmFuZ2UKICAgICAgICAgICAgICAgIDEgPT4gJ1ZhbHVlMScsICAgICAgICAgICAgICAgICAgIyAgICBvZiB2YWx1ZXMgZm9yIGFuIGVsZW1lbnQgb2YgVmlld3R5cGUgUGlja2VyLgogICAgICAgICAgICAgICAgMiA9PiAnVmFsdWUyJywgICAgICAgICAgICAgICAgICAjICAgIE9wdGlvbnMgaXMgbm90IHJlcXVpcmVkIGZvciBwaWNrZXIgZWxlbWVudHMKICAgICAgICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICB3aXRoIERhdGF0eXBlIERhdGUsIFRpbWUgb3IgRGF0ZVRpbWUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgTWFuZGF0b3J5IGlmIHRoZSBEYXRhdHlwZSBpcyBub3QgRGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBUaW1lIHVuZCBEYXRlVGltZSwgdGhlIFZpZXd0eXBlIGlzIFBpY2tlciBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBEeXluYW1pY09wdGlvbnMgaXMgbm90IHByb3ZpZGVkCgogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7ICAgICAgICAgICAgICAgICAjIE9wdGlvbmFsLCBTaW1pbGFyIHRvIE9wdGlvbnMgYnV0IHRoZSBsaXN0IG9mCiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdzb21lIG9iamVjdCcsICAgICMgICAgdmFsdWVzIGlzIG5vdCBmaXhlZCwgaW5zdGVhZCBhIGZ1bmN0aW9uIGlzCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdzb21lIG1ldGhvZCcsICAgICMgICAgY2FsbGVkIHRvIHJldHJlaXZlIHRoZSBwb3NzaWJsZSBvcHRpb25zLgogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiBbICAgICAgICAgICAgICAgICAjICAgIER5bmFtaWNPcHRpb25zIGlzIG5vdCByZXF1aXJlZCBmb3IgcGlja2VyCiAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgZWxlbWVudHMgd2l0aCBEYXRhdHlwZSBEYXRlLCBUaW1lIG9yIERhdGVUaW1lLgogICAgICAgICAgICAgICAgICAgICAgICBQYXJhbTEgPT4gJ3NvbWUgZGF0YScsICAjICAgIE1hbmRhdG9yeSBpZiB0aGUgRGF0YXR5cGUgaXMgbm90IERhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtMiA9PiAnc29tZSBkYXRhJywgICMgICAgVGltZSB1bmQgRGF0ZVRpbWUsIHRoZSBWaWV3dHlwZSBpcyBQaWNrZXIgYW5kCiAgICAgICAgICAgICAgICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgRHl5bmFtaWNPcHRpb25zIGlzIG5vdCBwcm92aWRlZAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIEF1dG9GaWxsRWxlbWVudHMgPT4gWyAgICAgICAgICAgICAgICMgT3B0aW9uYWwsIFVzZWQgdG8gc2V0IGFub3RoZXIgZmllbGQgdmFsdWUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBFbGVtZW50TmFtZSA9PiAnZmllbGQgbmFtZScsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICAgPT4gJ3NvbWUgb2JqZWN0JywKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgICA9PiAnc29tZSBtZXRob2QnLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW0xID0+ICdzb21lIGRhdGEnLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAoKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsICAgICAgICAgICAgICAgICAgICAgIyAwIHx8IDEKCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnc29tZSB2YWx1ZScsCiAgICAgICAgfTsKICAgIH07Cgo9Y3V0CgpzdWIgSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoRHluYW1pY0ZpZWxkQ29uZmlnIExhbmd1YWdlT2JqZWN0KSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coIFByaW9yaXR5ID0+ICdlcnJvcicsIE1lc3NhZ2UgPT4gIk5lZWQgJE5lZWRlZCEiICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGRDb25maWcgKGdlbmVyYWwpCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30gKSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBmaWVsZCBjb25maWd1cmF0aW9uIGlzIGludmFsaWQiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChpbnRlcm5hbGx5KQogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIEZpZWxkVHlwZSBPYmplY3RUeXBlIENvbmZpZyBOYW1lKSkgewogICAgICAgIGlmICggISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQgaW4gRHluYW1pY0ZpZWxkQ29uZmlnISIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCB0aGUgZHluYW1pYyBmaWVsZCBzcGVjaWZpYyBiYWNrZW5kCiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZCA9ICdEeW5hbWljRmllbGQnIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntGaWVsZFR5cGV9IC4gJ09iamVjdCc7CgogICAgaWYgKCAhJFNlbGYtPnskRHluYW1pY0ZpZWxkQmFja2VuZH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJCYWNrZW5kICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57RmllbGRUeXBlfSBpcyBpbnZhbGlkISIKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCB1c2UgZGVmYXVsdCB2YWx1ZSBhcyBkZWZhdWx0IGlmIG5vdCBzcGVjaWZpZWQKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1VzZURlZmF1bHRWYWx1ZX0gKSB7CiAgICAgICAgJFBhcmFte1VzZURlZmF1bHRWYWx1ZX0gPSAxOwogICAgfQoKICAgICMgdmVyaWZ5IGlmIGZ1bmN0aW9uIGlzIGF2YWlsYWJsZQogICAgcmV0dXJuIGlmICEkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfS0+Y2FuKCdJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkJyk7CgogICAgIyBjYWxsIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgb24gdGhlIHNwZWNpZmljIGJhY2tlbmQKICAgIG15ICRGaWVsZERlZmluaXRpb24gPSAkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfS0+SVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCglUGFyYW0pOwoKICAgIHJldHVybiAkRmllbGREZWZpbml0aW9uOwoKfQoKPWl0ZW0gSVBob25lRmllbGRWYWx1ZUdldCgpCgpleHRyYWN0cyB0aGUgdmFsdWUgb2YgYSBkeW5hbWljIGZpZWxkIGZyb20gdGhlIHBhcmFtIG9iamVjdC4KCiAgICBteSAkVmFsdWUgPSAkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZUdldCgKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLCAgICAjIGNvbXBsZXRlIGNvbmZpZyBvZiB0aGUgRHluYW1pY0ZpZWxkCiAgICAgICAgRHluYW1pY0ZpZWxkX05hbWVYICAgPT4gJ0R5bmFtaWNGaWVsZFZhbHVlJywgICAgIyBSYXcgZmllbGQgdmFsdWUgd2hlcmUsIE5hbWVYIGlzIHRoZSBuYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgb2YgdGhlIGZpbGVkCiAgICAgICAgVXNlclRpbWVab25lICAgICAgICAgPT4gLTYsCiAgICApOwoKICAgIFJldHVybnMgJFZhbHVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGRlcGVuZGluZyBvbiBlYWNoIGZpZWxkIHR5cGUgZS5nLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAkVmFsdWUgPSAnYSB0ZXh0JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgJFZhbHVlID0gJzE5NzctMTItMTIgMTI6MDA6MDAnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAkVmFsdWUgPSAxOwoKPWN1dAoKc3ViIElQaG9uZUZpZWxkVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KER5bmFtaWNGaWVsZENvbmZpZykpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKCBQcmlvcml0eSA9PiAnZXJyb3InLCBNZXNzYWdlID0+ICJOZWVkICROZWVkZWQhIiApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZGVmaW5lIHRyYW5zZm9ybSBkYXRlcyBwYXJhbWV0ZXIKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1RyYW5zZm9ybURhdGVzfSApIHsKICAgICAgICAkUGFyYW17VHJhbnNmb3JtRGF0ZXN9ID0gMTsKICAgIH0KCiAgICAjIGNoZWNrIER5bmFtaWNGaWVsZENvbmZpZyAoZ2VuZXJhbCkKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfSApICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIGZpZWxkIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZCIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGRDb25maWcgKGludGVybmFsbHkpCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoSUQgRmllbGRUeXBlIE9iamVjdFR5cGUgTmFtZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+eyROZWVkZWR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIGluIER5bmFtaWNGaWVsZENvbmZpZyEiCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgdGhlIGR5bmFtaWMgZmllbGQgc3BlY2lmaWMgYmFja2VuZAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmQgPSAnRHluYW1pY0ZpZWxkJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57RmllbGRUeXBlfSAuICdPYmplY3QnOwoKICAgIGlmICggISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQmFja2VuZCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0ZpZWxkVHlwZX0gaXMgaW52YWxpZCEiCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB2ZXJpZnkgaWYgZnVuY3Rpb24gaXMgYXZhaWxhYmxlCiAgICByZXR1cm4gaWYgISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9LT5jYW4oJ0lQaG9uZUZpZWxkVmFsdWVHZXQnKTsKCiAgICAjIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBzcGVjaWZpYyBiYWNrZW5kCiAgICByZXR1cm4gJFNlbGYtPnskRHluYW1pY0ZpZWxkQmFja2VuZH0tPklQaG9uZUZpZWxkVmFsdWVHZXQoJVBhcmFtKTsKfQoKPWl0ZW0gSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKCkKCnZhbGlkYXRlIHRoZSBjdXJyZW50IHZhbHVlIGZvciB0aGUgZHluYW1pYyBmaWVsZAoKICAgIG15ICRSZXN1bHQgPSAkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWcsICAgICAgIyBjb21wbGV0ZSBjb25maWcgb2YgdGhlIER5bmFtaWNGaWVsZAogICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICRWYWx1ZSwgICAgICAgICAgICAgICAgICAgIyBUaGUgY3VycmVudCBkeW5hbWljIGZpZWxkIHZhbHVlCiAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAjIDAgb3IgMSwKICAgICk7CgogICAgUmV0dXJucwoKICAgICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAjIDAgb3IgMSwKICAgICAgICBFcnJvck1lc3NhZ2UgICAgICAgPT4gJEVycm9yTWVzc2FnZSwgICAgICAgICAgICAgICMgT3B0aW9uYWwgb3IgYSBkZWZhdWx0IHdpbGwgYmUgdXNlZCBpbiBlcnJvciBjYXNlCiAgICB9Cgo9Y3V0CgpzdWIgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKCBQcmlvcml0eSA9PiAnZXJyb3InLCBNZXNzYWdlID0+ICJOZWVkIER5bmFtaWNGaWVsZENvbmZpZyEiICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChnZW5lcmFsKQogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9ICkgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgZmllbGQgY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIER5bmFtaWNGaWVsZENvbmZpZyAoaW50ZXJuYWxseSkKICAgIGZvciBteSAkTmVlZGVkIChxdyhJRCBGaWVsZFR5cGUgT2JqZWN0VHlwZSBDb25maWcgTmFtZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+eyROZWVkZWR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIGluIER5bmFtaWNGaWVsZENvbmZpZyEiCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgdGhlIGR5bmFtaWMgZmllbGQgc3BlY2lmaWMgYmFja2VuZAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmQgPSAnRHluYW1pY0ZpZWxkJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57RmllbGRUeXBlfSAuICdPYmplY3QnOwoKICAgIGlmICggISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQmFja2VuZCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0ZpZWxkVHlwZX0gaXMgaW52YWxpZCEiCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB2ZXJpZnkgaWYgZnVuY3Rpb24gaXMgYXZhaWxhYmxlCiAgICByZXR1cm4gaWYgISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9LT5jYW4oJ0lQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZScpOwoKICAgICMgcmV0dXJuIHZhbGlkYXRpb24gc3RydWN0dXJlIGZyb20gdGhlIHNwZWNpZmljIGJhY2tlbmQKICAgIHJldHVybiAkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfS0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKCVQYXJhbSk7Cgp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vV2ViL0ludGVyZmFjZWlQaG9uZUhhbmRsZS5wbSAtIHRoZSBhZ2VudCBpbnRlcmZhY2UgZmlsZSAoaW5jbC4gYXV0aCkKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OkNvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpBdXRoOwp1c2UgS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpEQjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6TG9nOwp1c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwOwp1c2UgS2VybmVsOjpTeXN0ZW06OmlQaG9uZTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpKU09OOwp1c2UgS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3Q7CnVzZSBLZXJuZWw6OlN5c3RlbTo6TG9jazsKdXNlIEtlcm5lbDo6U3lzdGVtOjpNYWluOwp1c2UgS2VybmVsOjpTeXN0ZW06OlF1ZXVlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlNlcnZpY2U7CnVzZSBLZXJuZWw6OlN5c3RlbTo6U0xBOwp1c2UgS2VybmVsOjpTeXN0ZW06OlN0YXRlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlRpY2tldDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpUaW1lOwp1c2UgS2VybmVsOjpTeXN0ZW06OlR5cGU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VXNlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3Q7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OldlYjo6SW50ZXJmYWNlaVBob25lSGFuZGxlIC0gdGhlIGlQaG9uZSBIYW5kbGUgd2ViIGludGVyZmFjZQoKPWhlYWQxIFNZTk9QU0lTCgp0aGUgZ2xvYmFsIGlQaG9uZSBIYW5kbGUgd2ViIGludGVyZmFjZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgaVBob25lSGFuZGxlIHdlYiBpbnRlcmZhY2Ugb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZTsKCiAgICBteSAkSW50ZXJmYWNlQWdlbnQgPSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpJbnRlcmZhY2VpUGhvbmVIYW5kbGUtPm5ldygKICAgICAgICBXZWJSZXF1ZXN0ID0+IENHSTo6RmFzdC0+bmV3KCksICMgb3B0aW9uYWwsIGUuIGcuIGlmIGZhc3QgY2dpIGlzIHVzZWQsIHRoZSBDR0kgb2JqZWN0IGlzIGFscmVhZHkgcHJvdmlkZWQKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY3JlYXRlIGNvbW1vbiBvYmplY3RzCiAgICAkU2VsZi0+e0NvbmZpZ09iamVjdH0gPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICAkU2VsZi0+e0xvZ09iamVjdH0gICAgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgTG9nUHJlZml4ID0+ICdPVFJTLWlQaG9uZUhhbmRsZScsCiAgICAgICAgJXskU2VsZn0sCiAgICApOwogICAgJFNlbGYtPntFbmNvZGVPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OkVuY29kZS0+bmV3KCAleyRTZWxmfSApOwogICAgJFNlbGYtPntNYWluT2JqZWN0fSAgID0gS2VybmVsOjpTeXN0ZW06Ok1haW4tPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57VGltZU9iamVjdH0gICA9IEtlcm5lbDo6U3lzdGVtOjpUaW1lLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1BhcmFtT2JqZWN0fSAgPSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0LT5uZXcoCiAgICAgICAgJXskU2VsZn0sCiAgICAgICAgV2ViUmVxdWVzdCA9PiAkUGFyYW17V2ViUmVxdWVzdH0gfHwgMCwKICAgICk7CiAgICAkU2VsZi0+e0RCT2JqZWN0fSAgICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6REItPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57VXNlck9iamVjdH0gICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpVc2VyLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0dyb3VwT2JqZWN0fSAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6R3JvdXAtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57UXVldWVPYmplY3R9ICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpRdWV1ZS0+bmV3KCAleyRTZWxmfSApOwogICAgJFNlbGYtPntTZXJ2aWNlT2JqZWN0fSAgICAgID0gS2VybmVsOjpTeXN0ZW06OlNlcnZpY2UtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57VHlwZU9iamVjdH0gICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpUeXBlLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1N0YXRlT2JqZWN0fSAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6U3RhdGUtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57TG9ja09iamVjdH0gICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpMb2NrLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1NMQU9iamVjdH0gICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6U0xBLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0N1c3RvbWVyVXNlck9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0gICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0LT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0xpbmtPYmplY3R9ICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdC0+bmV3KCAleyRTZWxmfSApOwogICAgJFNlbGYtPntKU09OT2JqZWN0fSAgICAgICAgID0gS2VybmVsOjpTeXN0ZW06OkpTT04tPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57aVBob25lT2JqZWN0fSAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjppUGhvbmUtPm5ldyggJXskU2VsZn0gKTsKCiAgICAjIGdldCBsb2cgZmlsZW5hbWUKICAgICRTZWxmLT57RGVidWdMb2dGaWxlfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkxvZ0ZpbGUnKSB8fCAnJzsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIFJ1bigpCgpleGVjdXRlIHRoZSBvYmplY3QKCiAgICBteSAkUmVzdWx0ID0gJEludGVyZmFjZUFnZW50LT5SdW4oKTsKClJldHVybnM6CiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICBEYXRhICAgID0+ICRBcnJheU9mSGFzaGVzUmVmLAogICAgfQoKT3I6CiAgICAkUmVzdWx0ID0gJEFycmF5UmVmLAoKT3I6CiAgICAkUmVzdWx0ID0gewogICAgICAgIFJlc3VsdCAgICAgICA9PiAwLAogICAgICAgIEVycm9yTWVzc2FnZSA9PiAnc29tZSBtZXNzYWdlJywKICAgIH0KCj1jdXQKCnN1YiBSdW4gewogICAgbXkgKCRTZWxmKSA9IEBfOwoKICAgICMgc2V0IGNvbW1vbiB2YXJpYWJsZXMKICAgIG15ICRVc2VyICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VyJyApICAgICB8fCAnJzsKICAgIG15ICRQdyAgICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdQYXNzd29yZCcgKSB8fCAnJzsKICAgIG15ICRPYmplY3QgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdPYmplY3QnICkgICB8fCAnJzsKICAgIG15ICRNZXRob2QgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdNZXRob2QnICkgICB8fCAnJzsKICAgIG15ICREYXRhICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdEYXRhJyApOwogICAgbXkgJFBhcmFtU2NhbGFyID0gJFNlbGYtPntKU09OT2JqZWN0fS0+RGVjb2RlKCBEYXRhID0+ICREYXRhICk7CgogICAgbXkgJVBhcmFtOwogICAgaWYgKCRQYXJhbVNjYWxhcikgewogICAgICAgICVQYXJhbSA9ICV7JFBhcmFtU2NhbGFyfTsKICAgIH0KCiAgICAjIGluYm91bmQgbG9nCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkRlYnVnTG9nJykgKSB7CiAgICAgICAgbXkgJE1lc3NhZ2UgPSAnVXNlcj0nIC4gJFVzZXIgLiAnJlBhc3N3b3JkPSoqKionIC4gJyZPYmplY3Q9JyAuICRPYmplY3QKICAgICAgICAgICAgLiAnJk1ldGhvZD0nIC4gJE1ldGhvZCAuICcmRGF0YT0nIC4gJERhdGE7CgogICAgICAgICRTZWxmLT5fTG9nKAogICAgICAgICAgICBEaXJlY3Rpb24gPT4gJ0luYm91bmQnLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gJE1lc3NhZ2UsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZAogICAgaWYgKCAhJFVzZXIgfHwgISRPYmplY3QgfHwgISRNZXRob2QgKSB7CiAgICAgICAgbXkgJE1lc3NhZ2UgPSAiTmVlZCBVc2VyLCBPYmplY3QgYW5kIE1ldGhvZCEiOwogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAkTWVzc2FnZSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBhZ2VudCBhdXRoCiAgICBteSAlUGFyYW1GaXhlZDsKICAgIGlmICgxKSB7CiAgICAgICAgbXkgJEF1dGhPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6QXV0aC0+bmV3KCAleyRTZWxmfSApOwogICAgICAgIG15ICRVc2VyTG9naW4gPSAkQXV0aE9iamVjdC0+QXV0aCggVXNlciA9PiAkVXNlciwgUHcgPT4gJFB3ICk7CgogICAgICAgIGlmICggISRVc2VyTG9naW4gKSB7CiAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIkF1dGggZm9yIHVzZXIgJFVzZXIgZmFpbGVkISI7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ25vdGljZScsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNldCB1c2VyIGlkCiAgICAgICAgbXkgJFVzZXJJRCA9ICRTZWxmLT57VXNlck9iamVjdH0tPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVXNlckxvZ2luLAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFVzZXJJRCApIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVXNlciAkVXNlckxvZ2luIG5vdCBmb3VuZCwgVXNlcklEIGNhbiBub3QgYmUgc2V0ISIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJFBhcmFtRml4ZWR7VXNlcklEfSA9ICRVc2VySUQ7CiAgICB9CgogICAgIyBzeXN0ZW0gYXV0aAogICAgIyBUaGlzIGNvZGUgaXMgbm90IG5lZWRlZCBhbmQgaGFzIHRvIGJlIHJlbW92ZWQhCiAgICBlbHNlIHsKICAgICAgICBteSAkUmVxdWlyZWRVc2VyICAgICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTT0FQOjpVc2VyJyk7CiAgICAgICAgbXkgJFJlcXVpcmVkUGFzc3dvcmQgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU09BUDo6UGFzc3dvcmQnKTsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAhZGVmaW5lZCAkUmVxdWlyZWRVc2VyCiAgICAgICAgICAgIHx8ICFsZW5ndGggJFJlcXVpcmVkVXNlcgogICAgICAgICAgICB8fCAhZGVmaW5lZCAkUmVxdWlyZWRQYXNzd29yZCB8fCAhbGVuZ3RoICRSZXF1aXJlZFBhc3N3b3JkCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ25vdGljZScsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnU09BUDo6VXNlciBvciBTT0FQOjpQYXNzd29yZCBpcyBlbXB0eSwgU09BUCBhY2Nlc3MgZGVuaWVkIScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkVXNlciBuZSAkUmVxdWlyZWRVc2VyIHx8ICRQdyBuZSAkUmVxdWlyZWRQYXNzd29yZCApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJBdXRoIGZvciB1c2VyICRVc2VyIGZhaWxlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoKTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCAhJFNlbGYtPnskT2JqZWN0fSAmJiAkT2JqZWN0IG5lICdDdXN0b21PYmplY3QnICkgewogICAgICAgIG15ICRNZXNzYWdlID0gIk5vIHN1Y2ggT2JqZWN0ICRPYmplY3QhIjsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJE1lc3NhZ2UsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBpZiBtZXRob2QgZXhpc3RzIGluIG9iamVjdHMgb3RoZXIgdGhhbiAnQ3VzdG9tT2JqZWN0JwogICAgaWYgKAogICAgICAgICggJFNlbGYtPnskT2JqZWN0fSAmJiAhJFNlbGYtPnskT2JqZWN0fS0+Y2FuKCRNZXRob2QpICkKICAgICAgICAmJiAhJFNlbGYtPmNhbigkTWV0aG9kKQogICAgICAgICkKICAgIHsKICAgICAgICBteSAkTWVzc2FnZSA9ICJObyBzdWNoIG1ldGhvZCAnJE1ldGhvZCcgaW4gJyRPYmplY3QnISI7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRNZXNzYWdlLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkT2JqZWN0IGVxICdDdXN0b21PYmplY3QnICkgewoKICAgICAgICAjIGNoZWNrIGlmIG1ldGhvZCBleGlzdHMgaW4gaVBob25lT2JqZWN0CiAgICAgICAgaWYgKCAhJFNlbGYtPntpUGhvbmVPYmplY3R9LT5jYW4oJE1ldGhvZCkgKSB7CiAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIk5vIHN1Y2ggbWV0aG9kICckTWV0aG9kJyBpbiAnJE9iamVjdCchIjsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIG9iamVjdCB3aGl0ZSBsaXN0CiAgICBteSAkT2JqZWN0V2hpdGVMaXN0ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6QVBJOjpPYmplY3QnKTsKICAgIGlmICgkT2JqZWN0V2hpdGVMaXN0KSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkT2JqZWN0V2hpdGVMaXN0LT57JE9iamVjdH0gKSB7CiAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIk5vIGFjY2VzcyB0byAnJE9iamVjdCchIjsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBpZiAoICRPYmplY3RXaGl0ZUxpc3QtPnskT2JqZWN0fSAmJiAkTWV0aG9kICF+IC8kT2JqZWN0V2hpdGVMaXN0LT57JE9iamVjdH0vICkgewogICAgICAgICAgICBteSAkTWVzc2FnZSA9ICJObyBhY2Nlc3MgbWV0aG9kICckTWV0aG9kKCknIGZyb20gJyRPYmplY3QnISI7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRNZXNzYWdlLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBjbGVhbnVwIHBhcmFtcyBpUGhvbmUgYXBwbGljYXRpb24gZG9lcyBub3Qgc2VuZCBlbXB0eSB2YWx1ZXMsIGJ1dCBzYW1lIG5hbWUgYXMgcGFyYW1ldGVyIGFzOgogICAgIyBUaWNrZXRJRCA9PiAnVGlja2V0SUQnLCB0aGlzIHZhbHVlcyB3aWxsIG5lZWQgdG8gYmUgc2V0IGFzIGVtcHR5LCBzZWUgYnVnIzk3NTIKICAgIFBBUkFNTkFNRToKICAgIGZvciBteSAkUGFyYW1OYW1lICggc29ydCBrZXlzICVQYXJhbSApIHsKICAgICAgICBuZXh0IFBBUkFNTkFNRSBpZiAhJFBhcmFteyRQYXJhbU5hbWV9OwogICAgICAgIG5leHQgUEFSQU1OQU1FIGlmICRQYXJhbXskUGFyYW1OYW1lfSBuZSAiJFBhcmFtTmFtZSI7CiAgICAgICAgJFBhcmFteyRQYXJhbU5hbWV9ID0gJyc7CiAgICB9CgogICAgIyBleGVjdXRlIGlQaG9uZU9iamVjdCBtZXRob2RzCiAgICBpZiAoICRPYmplY3QgZXEgJ0N1c3RvbU9iamVjdCcgfHwgJE9iamVjdCBlcSAnaVBob25lT2JqZWN0JyApIHsKCiAgICAgICAgbXkgQFJlc3VsdCA9ICRTZWxmLT57aVBob25lT2JqZWN0fS0+JE1ldGhvZCgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlUGFyYW1GaXhlZCwKICAgICAgICApOwogICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCggXEBSZXN1bHQgKTsKICAgIH0KCiAgICAjIGV4ZWN1dGUgb3RoZXIgb2JqZWN0IG1ldGhvZHMKICAgIGVsc2UgewogICAgICAgIG15IEBSZXN1bHQgPSAkU2VsZi0+eyRPYmplY3R9LT4kTWV0aG9kKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVQYXJhbUZpeGVkLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KCBcQFJlc3VsdCApOwogICAgfQp9Cgo9aXRlbSBfUmVzdWx0KCkKCmVuY29kZXMgdGhlIHJlc3VsdCBhcyBhIEpTT04gb2JqZWN0CgogICAgbXkgJFJlc3VsdCA9ICRJbnRlcmZhY2VBZ2VudC0+X1Jlc3VsdCgKICAgICAgICAkQXJyYXlSZWYsICAgICAgICAgICNPcHRpb25hbCwKICAgIH07CgpPUjoKICAgIG15ICRSZXN1bHQgPSAkSW50ZXJmYWNlQWdlbnQtPl9SZXN1bHQoCiAgICAgICAgU3VjY2VzcyA9PiAxLCAgICAgICAgICAgICAgICAgICAgIyBPcHRpb25hbAogICAgICAgIERhdGEgICAgPT4gJEFycmF5SGFzaFJlZiAgICAgICAgICMgT3B0aW9uYWwsIE1hbmRhdG9yeSBpZiBTdWNjY2VzcyBpcyAxCiAgICAgICAgTWVzc2FnZSA9PiAnc29tZSBlcnJyb3IgbWVzc2FnZScgIyBPcHRpb25hbAogICAgKTsKClJldHVybnMgSlNPTiByZXByZXNlbnRhdGlvbiBvZjoKICAgICRSZXN1bHQgPSB7CiAgICAgICAgU3VjY2VzcyA9PiAnc3VjY2Vzc2Z1bCcsCiAgICAgICAgRGF0YSAgICA9PiAkQXJyYXlPZkhhc2hlc1JlZiwKICAgIH0KCk9yIEpTT04gcmVwcmVzZXRhdGlvbiBvZjoKICAgICRSZXN1bHQgPSB7CiAgICAgICAgUmVzdWx0ICAgICAgID0+ICdmYWlsZXMnLAogICAgICAgIE1lc3NhZ2UgPT4gJ3NvbWUgbWVzc2FnZScsCiAgICB9Cgo9Y3V0CgpzdWIgX1Jlc3VsdCB7CiAgICBteSAoICRTZWxmLCAkUmVzdWx0ICkgPSBAXzsKCiAgICBteSAlUmVzdWx0UHJvdG9jb2w7CgogICAgaWYgKCRSZXN1bHQpIHsKCiAgICAgICAgIyB0aGlzIG1ldGhvZCBpcyBzdGlsbCBuZWVkZWQgZm9yIG90aGVyIG9iamVjdHMgdGhhbiBDdXN0b21PYmplY3QKICAgICAgICAjIHRoaXMgbWV0aG9kIGlzIGFsc28gdXNlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvZiBub3QgbWlncmF0ZWQgQ3VzdG9tT2JqZWN0IGZ1bmN0aW9ucwogICAgICAgIGlmICggcmVmICRSZXN1bHQgZXEgJ0FSUkFZJyApIHsKCiAgICAgICAgICAgICMgLTEgcmVzcG9uc2UgbWVhbnMgYW4gZXJyb3IKICAgICAgICAgICAgaWYgKCBkZWZpbmVkIEB7JFJlc3VsdH1bMF0gJiYgQHskUmVzdWx0fVswXSBlcSAtMSApIHsKICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtSZXN1bHR9ID0gJ2ZhaWxlZCc7CgogICAgICAgICAgICAgICAgIyBnZXQgbGFzdCBsb2dlZCBlcnJvciBhbmQgc2V0IGlzIGFzIHRoZSBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICBmb3IgbXkgJEtleSAocXcoZXJyb3Igbm90aWNlKSkgewogICAgICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtNZXNzYWdlfSA9ICRTZWxmLT57TG9nT2JqZWN0fS0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJEtleSwKICAgICAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBsYXN0IGlmICRSZXN1bHRQcm90b2NvbHtNZXNzYWdlfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBvdGhlcndpc2UgaXMgYWx3YXlzIHN1Y2Nlc3NmdWwKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7UmVzdWx0fSA9ICdzdWNjZXNzZnVsJzsKICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtEYXRhfSAgID0gJFJlc3VsdDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyB0aGlzIG1ldGhvZCB3aWxsIGhhdmUgbW9yZSBjb250cm9sIG92ZXIgdGhlIGVycm9yIG1lc3NhZ2VzCiAgICAgICAgZWxzaWYgKCByZWYgJFJlc3VsdCBlcSAnSEFTSCcgKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciBhIHRydWUgdmFsdWUgaW4gU3VjY2VzcyBrZXkKICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRSZXN1bHQtPntTdWNjZXNzfSAmJiAkUmVzdWx0LT57U3VjY2Vzc30gPT0gMSApIHsKICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtSZXN1bHR9ID0gJ3N1Y2Nlc3NmdWwnOwogICAgICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se0RhdGF9ICAgPSAkUmVzdWx0LT57RGF0YX07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3RoZXJ3aXNlIGlzIGFuIGVycm9yCiAgICAgICAgICAgIGVsc2lmICggZGVmaW5lZCAkUmVzdWx0LT57U3VjY2Vzc30gJiYgISRSZXN1bHQtPntTdWNjZXNzfSApIHsKICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtSZXN1bHR9ID0gJ2ZhaWxlZCcsCiAgICAgICAgICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se01lc3NhZ2V9CiAgICAgICAgICAgICAgICAgICAgPSAkUmVzdWx0LT57RXJyb3JNZXNzYWdlfQogICAgICAgICAgICAgICAgICAgIHx8ICdVbmtub3duIEVycm9yLCBwbGFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yIHRvIGNoZWNrIE9UUlMgTG9ncyEnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHN1Y2Nlc3MgZmFsbGJhY2sgaWYgcmVzdWx0IGlzIG5vdCBhbiBBUlJBWSBvciBIQVNICiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtSZXN1bHR9ID0gJ3N1Y2Nlc3NmdWwnOwogICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7RGF0YX0gICA9ICRSZXN1bHQ7CiAgICAgICAgfQogICAgfQoKICAgICMgZmFpbGVkIGZhbGxiYWNrIGlmIHRoZXJlIHdhcyBubyByZXNwb25zZQogICAgZWxzZSB7CiAgICAgICAgJFJlc3VsdFByb3RvY29se1Jlc3VsdH0gPSAnZmFpbGVkJzsKCiAgICAgICAgIyBnZXQgbGFzdCBsb2dlZCBlcnJvciBhbmQgc2V0IGlzIGFzIHRoZSBlcnJvciBtZXNzYWdlCiAgICAgICAgZm9yIG15ICRLZXkgKHF3KGVycm9yIG5vdGljZSkpIHsKICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se01lc3NhZ2V9ID0gJFNlbGYtPntMb2dPYmplY3R9LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgIFR5cGUgPT4gJEtleSwKICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICApOwogICAgICAgICAgICBsYXN0IGlmICRSZXN1bHRQcm90b2NvbHtNZXNzYWdlfTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgcmVzdWx0IHRvIGEgdmFyaWFibGUgZm9yIGVhc3kgbG9nIG91dHB1dAogICAgbXkgJEpTT05SZXN1bHQgPSAkU2VsZi0+e0pTT05PYmplY3R9LT5FbmNvZGUoIERhdGEgPT4gXCVSZXN1bHRQcm90b2NvbCApOwoKICAgICMgb3V0Ym91bmQgbG9nCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkRlYnVnTG9nJykgKSB7CgogICAgICAgICRTZWxmLT5fTG9nKAogICAgICAgICAgICBEaXJlY3Rpb24gPT4gJ091dGJvdW5kJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+ICRKU09OUmVzdWx0LAogICAgICAgICAgICApCiAgICB9CgogICAgcmV0dXJuICRKU09OUmVzdWx0Owp9Cgo9aXRlbSBfTG9nKCkKCndyaXRlcyB0byBhIGRlZmluZWQgbG9nIGZpbGUKCiAgICAkSW50ZXJmYWNlQWdlbnQtPl9Mb2coCiAgICAgICAgRGlyZWN0aW9uID0+ICdJbmJvdW5kJywgICAgICAgIyBvciBPdXRib3VuZAogICAgICAgIE1lc3NhZ2UgICA9PiAnU29tZSBNZXNzYWdlJywKICAgIH07Cgo9Y3V0CgpzdWIgX0xvZyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGSDsKCiAgICAjIG9wZW4gbG9nZmlsZQogICAgaWYgKCAhb3BlbiAkRkgsICc+PicsICRTZWxmLT57RGVidWdMb2dGaWxlfSApIHsKCiAgICAgICAgIyBwcmludCBlcnJvciBzY3JlZW4KICAgICAgICBwcmludCBTVERFUlIgIlxuIjsKICAgICAgICBwcmludCBTVERFUlIgIiA+PiBDYW4ndCB3cml0ZSAkU2VsZi0+e0xvZ0ZpbGV9OiAkISA8PFxuIjsKICAgICAgICBwcmludCBTVERFUlIgIlxuIjsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB3cml0ZSBsb2cgZmlsZQogICAgcHJpbnQgJEZIICdbJyAuICRTZWxmLT57VGltZU9iamVjdH0tPkN1cnJlbnRUaW1lc3RhbXAoKSAuICddJzsKICAgIHByaW50ICRGSCAiW0RlYnVnXSBbJFBhcmFte0RpcmVjdGlvbn1dICRQYXJhbXtNZXNzYWdlfVxuIjsKCiAgICAjIGNsb3NlIGZpbGUgaGFuZGxlCiAgICBjbG9zZSAkRkg7CiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIHNjcmlwdHMvdGVzdC9KU09OR2F0ZXdheS50IC0gSlNPTiBnYXRld2F5IHRlc3RzY3JpcHQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4Owp1c2UgdmFycyAocXcoJFNlbGYpKTsKCnVzZSBLZXJuZWw6OkNvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpKU09OOwp1c2UgS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXI7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEgSXNTdHJpbmdXaXRoRGF0YSk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6V2ViVXNlckFnZW50OwoKIyBoZWxwZXIgb2JqZWN0Cm15ICRIZWxwZXJPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlci0+bmV3KAogICAgJXskU2VsZn0sCiAgICBVbml0VGVzdE9iamVjdCAgICAgICAgICAgICA9PiAkU2VsZiwKICAgIFJlc3RvcmVTeXN0ZW1Db25maWd1cmF0aW9uID0+IDEsCik7CgojIGNyZWF0ZSBvdGhlciBvYmplY3RzCm15ICRDb25maWdPYmplY3QgICAgICAgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7Cm15ICRKU09OT2JqZWN0ICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6SlNPTi0+bmV3KCAleyRTZWxmfSApOwpteSAkV2ViVXNlckFnZW50T2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OldlYlVzZXJBZ2VudC0+bmV3KCAleyRTZWxmfSApOwoKIyBnZXQgcmVtb3RlIGhvc3Qgd2l0aCBzb21lIHByZWNhdXRpb25zIGZvciBjZXJ0YWluIHVuaXQgdGVzdCBzeXN0ZW1zCm15ICRIb3N0OwpteSAkRlFETiA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGUUROJyk7CgojIHRyeSB0byByZXNvbHZlIGZxZG4gaG9zdAppZiAoICRGUUROIG5lICd5b3VyaG9zdC5leGFtcGxlLmNvbScgJiYgZ2V0aG9zdGJ5bmFtZSgkRlFETikgKSB7CiAgICAkSG9zdCA9ICRGUUROOwp9CgojIHRyeSB0byByZXNvbHZlIGxvY2FsaG9zdCBpbnN0ZWFkCmlmICggISRIb3N0ICYmIGdldGhvc3RieW5hbWUoJ2xvY2FsaG9zdCcpICkgewogICAgJEhvc3QgPSAnbG9jYWxob3N0JzsKfQoKIyB1c2UgaGFyZGNvZGVkIGxvY2FsaG9zdCBpcCBhZGRyZXNzCmlmICggISRIb3N0ICkgewogICAgJEhvc3QgPSAnMTI3LjAuMC4xJzsKfQoKIyBwcmVwYXJlIHdlYnNlcnZpY2UgY29uZmlnCm15ICRVUkwgPQogICAgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0h0dHBUeXBlJykKICAgIC4gJzovLycKICAgIC4gJEhvc3QKICAgIC4gJy8nCiAgICAuICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTY3JpcHRBbGlhcycpCiAgICAuICdqc29uLnBsJzsKCm15ICRDYWxsSlNPTkNHSSA9IHN1YiB7CiAgICBteSAlUGFyYW0gPSBAXzsKCiAgICBteSAlSlNPTlBhcmFtczsKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtKU09OUGFyYW1zfSApICkgewogICAgICAgICVKU09OUGFyYW1zID0gJXsgJFBhcmFte0pTT05QYXJhbXN9IH07CiAgICB9CgogICAgIyBjb3B5IEpTT04gQ0dJIGhhbmRsZXIKICAgIG15ICRKU09OVXJsID0gJFVSTCAuICc/JzsKCiAgICBmb3IgbXkgJEl0ZW0gKCBzb3J0IGtleXMgJUpTT05QYXJhbXMgKSB7CiAgICAgICAgJEpTT05VcmwgLj0gIiRJdGVtPSRKU09OUGFyYW1zeyRJdGVtfTsiOwogICAgfQogICAgbXkgJVJlc3BvbnNlID0gJFdlYlVzZXJBZ2VudE9iamVjdC0+UmVxdWVzdCgKICAgICAgICBVUkwgPT4gJEpTT05VcmwsCiAgICApOwoKICAgICRTZWxmLT5JcygKICAgICAgICAkUmVzcG9uc2V7U3RhdHVzfSwKICAgICAgICAnMjAwIE9LJywKICAgICAgICAiSlNPTiBDR0kgLSBUZXN0ICRQYXJhbXtUZXN0TmFtZX0gLSByZXNwb25zZSBpcyAyMDAgT0siLAogICAgKTsKCiAgICByZXR1cm4gJFJlc3BvbnNle0NvbnRlbnR9Owp9OwoKIyBjcmVhdGUgdGVzdCB1c2VyCm15ICRVc2VyID0gJEhlbHBlck9iamVjdC0+VGVzdFVzZXJDcmVhdGUoCiAgICBHcm91cHMgPT4gWyd1c2VycyddLAopOwpteSAkUGFzc3dvcmQgPSAkVXNlcjsKCm15ICRSYW5kb21JRCA9ICRIZWxwZXJPYmplY3QtPkdldFJhbmRvbUlEKCk7CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnRW1wdHkgcGFyYW1zJywKICAgICAgICBKU09OUGFyYW1zID0+IHt9LAogICAgICAgIFN1Y2Nlc3MgICAgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnRW1wdHkgdXNlcicsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICcnLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnVmVyc2lvbkdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ0VtcHR5IHBhc3N3b3JkJywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICcnLAogICAgICAgICAgICBPYmplY3QgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ1ZlcnNpb25HZXQnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdNaXNzaW5nIHBhc3N3b3JkJywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgID0+ICRVc2VyLAogICAgICAgICAgICBPYmplY3QgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCA9PiAnVmVyc2lvbkdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ01pc3NpbmcgdXNlcicsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnV3JvbmcgdXNlcicsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICdOb3RFeGlzdGluZycgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnV3JvbmcgcGFzc3dvcmQnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJ05vdEV4aXN0aW5nJyAuICRSYW5kb21JRCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnTWlzc2luZyBvYmplY3QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBNZXRob2QgICA9PiAnVmVyc2lvbkdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ01pc3NpbmcgbWV0aG9kJywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ1dyb25nIE9iamVjdCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdNeU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdUaWNrZXRHZXQnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdCbGFja2xpc3QgT2JqZWN0JywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ1NlcnZpY2VPYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnU2VydmljZUdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ1doaXRlbGlzdCBPYmplY3QsIEJsYWNrbGlzdCBNZXRob2QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnVGlja2V0T2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ1RpY2tldEdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ1dyb25nIE1ldGhvZCBEQk9iamVjdCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdEQk9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdOb3RFeGlzdGVudEdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ1dyb25nIE1ldGhvZCBDdXN0b21PYmplY3QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ05vdEV4aXN0ZW50R2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnTWlzc2luZyBQYXJhbWV0ZXJzIEN1c3RvbU9iamVjdCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnQ3VzdG9tZXJJREdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ0NvcnJlY3QgKFdpdGhvdXQgUGFyYW1ldGVycykgQ3VzdG9tT2JqZWN0JywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgIH0sCgopOwoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKICAgIG15ICRKU09OUmVzcG9uc2UgPSAkQ2FsbEpTT05DR0ktPigKICAgICAgICBUZXN0TmFtZSAgID0+ICRUZXN0LT57TmFtZX0sCiAgICAgICAgSlNPTlBhcmFtcyA9PiAkVGVzdC0+e0pTT05QYXJhbXN9LAogICAgKTsKCiAgICBteSAkUmVzcG9uc2UgPSAkSlNPTk9iamVjdC0+RGVjb2RlKCBEYXRhID0+ICR7JEpTT05SZXNwb25zZX0gKTsKCiAgICAkU2VsZi0+SXMoCiAgICAgICAgcmVmICRSZXNwb25zZSwKICAgICAgICAnSEFTSCcsCiAgICAgICAgIkpTT04gQ0dJIC0gVGVzdCAkVGVzdC0+e05hbWV9IC0gZGVjb2RlZCByZXNwb25zZSBpcyBhIEhhc2ggUmVmZXJlbmNlIiwKICAgICk7CgogICAgaWYgKCAkVGVzdC0+e1N1Y2Nlc3N9ICkgewoKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFJlc3BvbnNlLT57UmVzdWx0fSwKICAgICAgICAgICAgJ2ZhaWxlZCcsCiAgICAgICAgICAgICJKU09OIENHSSAtIFRlc3QgJFRlc3QtPntOYW1lfSAtIGRlY29kZWQgcmVzcG9uc2UgcmVzdWx0IGlzIGZhbHNlIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5Jc05vdCgKICAgICAgICAgICAgJFJlc3BvbnNlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICcnLAogICAgICAgICAgICAiSlNPTiBDR0kgLSBUZXN0ICRUZXN0LT57TmFtZX0gLSBkZWNvZGVkIHJlc3BvbnNlIG1lc3NhZ2UgaXMgbm90IGVtcHR5IiwKICAgICAgICApOwogICAgfQp9CjE7Cg==
IyAtLQojIEhhc0JlaGF2aW9yLnQgLSBIYXNCZWhhdmlvciBiYWNrZW5kIHRlc3RzCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKdXNlIHZhcnMgKHF3KCRTZWxmKSk7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpteSAkSGVscGVyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXItPm5ldygKICAgICUkU2VsZiwKICAgIFVuaXRUZXN0T2JqZWN0ID0+ICRTZWxmLAopOwoKbXkgJERGQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQtPm5ldyggJXskU2VsZn0gKTsKCiMgdGhlcmVzIGlzIG5vdCByZWFsbHkgbmVlZGVkIHRvIGFkZCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgdGVzdCwgd2UgY2FuIGRlZmluZSBhIHN0YXRpYwojIHNldCBvZiBjb25maWd1cmF0aW9ucwpteSAlRHluYW1pY0ZpZWxkQ29uZmlncyA9ICgKICAgIFRleHQgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ1RleHRGaWVsZCcsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnVGV4dCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgVGV4dEFyZWEgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0QXJlYUZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdUZXh0QXJlYUZpZWxkJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0QXJlYScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBSb3dzICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIENvbHMgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBDaGVja2JveCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0NoZWNrYm94RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ0NoZWNrYm94RmllbGQnLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0NoZWNrYm94JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgRHJvcGRvd24gPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEcm9wZG93bkZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdEcm9wZG93bkZpZWxkJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEcm9wZG93bicsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAnJywKICAgICAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgQSA9PiAnQScsCiAgICAgICAgICAgICAgICBCID0+ICdCJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBNdWx0aXNlbGVjdCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ011bHRpc2VsZWN0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ011bHRpc2VsZWN0RmllbGQnLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ011bHRpc2VsZWN0JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAnJywKICAgICAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgQSA9PiAnQScsCiAgICAgICAgICAgICAgICBCID0+ICdCJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEYXRlVGltZSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0RhdGVUaW1lRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ0RhdGVUaW1lRmllbGQnLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0RhdGVUaW1lJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGUgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEYXRlRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ0RhdGVGaWVsZCcsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnRGF0ZScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICA9PiAnJywKICAgICAgICAgICAgTGluayAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNQZXJpb2QgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNJbkZ1dHVyZSA9PiAnJywKICAgICAgICAgICAgWWVhcnNJblBhc3QgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCik7CgojIGRlZmluZSB0ZXN0cwpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHR9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgJ0lzSVBob25lQ2FwYWJsZScgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEFyZWEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0QXJlYX0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICAnSXNJUGhvbmVDYXBhYmxlJyA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIENoZWNrYm94JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgJ0lzSVBob25lQ2FwYWJsZScgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93bicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0Ryb3Bkb3dufSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgICdJc0lQaG9uZUNhcGFibGUnID0+IDEsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgTXVsdGlzZWxlY3QnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tNdWx0aXNlbGVjdH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICAnSXNJUGhvbmVDYXBhYmxlJyA9PiAwLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGVUaW1lJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZVRpbWV9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgJ0lzSVBob25lQ2FwYWJsZScgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICAnSXNJUGhvbmVDYXBhYmxlJyA9PiAxLAogICAgICAgIH0sCiAgICB9LAopOwoKIyBleGVjdXRlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBzZXQga25vd24gYmVoYXZpb3JzCiAgICBCRUhBVklPUjoKICAgIGZvciBteSAkQmVoYXZpb3IgKHF3KElzSVBob25lQ2FwYWJsZSkpIHsKCiAgICAgICAgIyB0byBzdG9yZSB0aGUgY29uZmlnIChhbHNvIGZvciBlYWNoIGJlaGF2aW9yKQogICAgICAgIG15ICVDb25maWc7CgogICAgICAgICMgYWRkIHRoZSBiZWhhdmlvciBpZiB0aGVyZSBpcyBhIGNvbmZpZyB3aGVyZSB0byBhZGQgaXQuCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFRlc3QtPntDb25maWd9ICkgKSB7CiAgICAgICAgICAgICVDb25maWcgPSAoCiAgICAgICAgICAgICAgICAleyAkVGVzdC0+e0NvbmZpZ30gfSwKICAgICAgICAgICAgICAgIEJlaGF2aW9yID0+ICRCZWhhdmlvciwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2FsbCBIYXNCZWhhdmlvciBmb3IgZWFjaCB0ZXN0IGZvciBlYWNoIGtub3duIGJlaGF2aW9yCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREZCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvciglQ29uZmlnKTsKCiAgICAgICAgIyBpZiB0aGUgdGVzdCBpcyBhIHN1Y2Nlc3MgdGhlbiBjaGVjayB0aGUgZXhwZWN0ZWQgcmVzdWx0cyB3aXRoIHRydWUKICAgICAgICBpZiAoJFN1Y2Nlc3MpIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0c30tPnskQmVoYXZpb3J9LAogICAgICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gSGFzQmVoYXZpb3IoKSBmb3IgJEJlaGF2aW9yIGV4ZWN1dGVkIHdpdGggVHJ1ZSIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSBpZiB0aGVyZSBpcyBhIER5bmFtaWNGaWVsZCBjb25maWcgY2hlY2sgdGhlIGV4cGVjdGVkIHJlc3VsdHMgd2l0aCBmYWxzZQogICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkVGVzdC0+e0NvbmZpZ30tPntEeW5hbWljRmllbGRDb25maWd9ICkgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9LT57JEJlaGF2aW9yfSwKICAgICAgICAgICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBIYXNCZWhhdmlvcigpIGZvciAkQmVoYXZpb3IgZXhlY3V0ZWQgd2l0aCBGYWxzZSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGlmIHRoZXJlIGlzIG5vIER5bmFtaWNGaWVsZCBjb25maWcsIHRoZW4gaXQgc2hvdWxkIGZhaWwsIGRvbid0IG5lZWQgZnVydGhlciBjaGVja3MKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IEhhc0JlaGF2aW9yKCkgU2hvdWxkIG5vdCBydW4gb24gbWlzc2luZyBjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBpZiB0aGUgdGVzdHMgc3VwcG9zZWQgdG8gZmFpbCBkdWUgdG8gbWlzc2luZyBlc3NlbnRpYWwgY29uZmlndXJhdGlvbiB0aGVyZSBpcyBubwogICAgICAgICAgICAgICAgIyBuZWVkIHRvIGtlZXAgdGVzdGluZyB3aXRoIG90aGVyIGJlaGF2aW9ycwogICAgICAgICAgICAgICAgbGFzdCBCRUhBVklPUjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKIyB3ZSBkb24ndCBuZWVkIGFueSBjbGVhbnVwCjE7Cg==
IyAtLQojIGlQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQudCAtIGlQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgYmFja2VuZCB0ZXN0cwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKbXkgJEhlbHBlck9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyLT5uZXcoCiAgICAlJFNlbGYsCiAgICBVbml0VGVzdE9iamVjdCA9PiAkU2VsZiwKKTsKCm15ICRERkJhY2tlbmRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kLT5uZXcoICV7JFNlbGZ9ICk7CgpteSAkRW5MYW5ndWFnZU9iamVjdCA9IEtlcm5lbDo6TGFuZ3VhZ2UtPm5ldygKICAgICV7JFNlbGZ9LAogICAgVXNlckxhbmd1YWdlID0+ICdlbicsCik7Cm15ICRFc0xhbmd1YWdlT2JqZWN0ID0gS2VybmVsOjpMYW5ndWFnZS0+bmV3KAogICAgJXskU2VsZn0sCiAgICBVc2VyTGFuZ3VhZ2UgPT4gJ2VzJywKKTsKCiMgdGhlcmVzIGlzIG5vdCByZWFsbHkgbmVlZGVkIHRvIGFkZCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgdGVzdCwgd2UgY2FuIGRlZmluZSBhIHN0YXRpYwojIHNldCBvZiBjb25maWd1cmF0aW9ucwpteSAlRHluYW1pY0ZpZWxkQ29uZmlncyA9ICgKICAgIFRleHQgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBUZXh0QXJlYSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1RleHRBcmVhRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0QXJlYScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBSb3dzICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIENvbHMgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBDaGVja2JveCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0NoZWNrYm94RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdDaGVja2JveCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERyb3Bkb3duID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRHJvcGRvd25GaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0Ryb3Bkb3duJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+ICcnLAogICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgUG9zc2libGVWYWx1ZXMgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgICAgIDIgPT4gJ1N0YXRlJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBNdWx0aXNlbGVjdCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ011bHRpc2VsZWN0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdNdWx0aXNlbGVjdCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgICAgICAgPT4gJycsCiAgICAgICAgICAgIFRyYW5zbGF0YWJsZVZhbHVlcyA9PiAxLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICAgICAgMiA9PiAnU3RhdGUnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGVUaW1lID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRGF0ZVRpbWVGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0RhdGVUaW1lJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+IHVuZGVmLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGUgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEYXRlRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEYXRlJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKKTsKCiMgZGVmaW5lIHRlc3RzCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEVOJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFbkxhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9UZXh0RmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdJbnB1dCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMjAwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICdQcmlvcml0eScsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCBFUycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICdQcmlvcml0eScsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IHVuZGVmLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgICA9PiAkRXNMYW5ndWFnZU9iamVjdAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdEeW5hbWljRmllbGRfVGV4dEZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdQcm9waWV0YXJpbycsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwMCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnUHJpb3JpdHknLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHQgQXJlYSBFTicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dEFyZWF9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVuTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX1RleHRBcmVhRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdUZXh0QXJlYScsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMjAwMDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEFyZWEgRVMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHRBcmVhfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFc0xhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9UZXh0QXJlYUZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdQcm9waWV0YXJpbycsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnVGV4dEFyZWEnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwMDAwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICdQcmlvcml0eScsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgQ2hlY2tib3ggRU4nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0NoZWNrYm94fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFbkxhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9DaGVja2JveEZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdPd25lcicsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIE9wdGlvbnMgICA9PiB7CiAgICAgICAgICAgICAgICAwID0+ICdVbmNoZWNrZWQnLAogICAgICAgICAgICAgICAgMSA9PiAnQ2hlY2tlZCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIERlZmF1bHQgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBDaGVja2JveCBFUycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0NoZWNrYm94RmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ1Byb3BpZXRhcmlvJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgT3B0aW9ucyAgID0+IHsKICAgICAgICAgICAgICAgIDAgPT4gJ1VuY2hlY2tlZCcsCiAgICAgICAgICAgICAgICAxID0+ICdDaGVja2VkJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgRGVmYXVsdCA9PiAwLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERyb3Bkb3duIEVOJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEcm9wZG93bn0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IHVuZGVmLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgICA9PiAkRW5MYW5ndWFnZU9iamVjdAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdEeW5hbWljRmllbGRfRHJvcGRvd25GaWVsZCcsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAnT3duZXInLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBPcHRpb25zICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICAgICAgMiA9PiAnU3RhdGUnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBEZWZhdWx0ID0+IDIsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRHJvcGRvd24gRVMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0Ryb3Bkb3dufSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0Ryb3Bkb3duRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ1Byb3BpZXRhcmlvJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgT3B0aW9ucyAgID0+IHsKICAgICAgICAgICAgICAgICcnID0+ICctJywKICAgICAgICAgICAgICAgIDEgID0+ICdQcmlvcmlkYWQnLAogICAgICAgICAgICAgICAgMiAgPT4gJ0VzdGFkbycsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIERlZmF1bHQgPT4gMiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBNdWx0aXNlbGVjdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7TXVsdGlzZWxlY3R9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVuTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiAnJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgRU4nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVuTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0RhdGVUaW1lRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnMjAxMy8wOC8yMSAxMzo0NicsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgRVMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0RhdGVUaW1lRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ1Byb3BpZXRhcmlvJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnMjAxMy8wOC8yMSAxMzo0NicsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZSBFTicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICcyMDEzLzA4LzIxIDEzOjQ2JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFbkxhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9EYXRlRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlJywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcyMDEzLzA4LzIxIDEzOjQ2JywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIEVTJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0RhdGVGaWVsZCcsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAnUHJvcGlldGFyaW8nLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ0RhdGUnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgIH0sCiAgICB9LAopOwoKIyBleGVjdXRlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBjYWxsIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQKICAgIG15ICRGaWVsZERlZmluaXRpb24gPSAkREZCYWNrZW5kT2JqZWN0LT5JUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkKCAleyAkVGVzdC0+e0NvbmZpZ30gfSApOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRUZXN0LT57RXhwZWN0ZWRSZXN1bHRzfSApICkgewogICAgICAgICRTZWxmLT5Jc0RlZXBseSgKICAgICAgICAgICAgJEZpZWxkRGVmaW5pdGlvbiwKICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9LAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkKCkgOiIKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkRmllbGREZWZpbml0aW9uLAogICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCgpIDoiCiAgICAgICAgKTsKCiAgICB9Cn0KCiMgd2UgZG9uJ3QgbmVlZCBhbnkgY2xlYW51cAoxOwo=
IyAtLQojIGlQaG9uZUZpZWxkVmFsdWVHZXQudCAtIGlQaG9uZUZpZWxkVmFsdWVHZXQgYmFja2VuZCB0ZXN0cwojIENvcHlyaWdodCAoQykgMjAwMS0yMDE0IE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKdXNlIEtlcm5lbDo6Q29uZmlnOwp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpteSAkSGVscGVyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXItPm5ldygKICAgICUkU2VsZiwKICAgIFVuaXRUZXN0T2JqZWN0ID0+ICRTZWxmLAopOwoKbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKCiRDb25maWdPYmplY3QtPlNldCgKICAgIEtleSAgID0+ICdUaW1lWm9uZVVzZXInLAogICAgVmFsdWUgPT4gMQopOwoKbXkgJERGQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQtPm5ldygKICAgICV7JFNlbGZ9LAogICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QKKTsKCiMgdGhlcmVzIGlzIG5vdCByZWFsbHkgbmVlZGVkIHRvIGFkZCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgdGVzdCwgd2UgY2FuIGRlZmluZSBhIHN0YXRpYwojIHNldCBvZiBjb25maWd1cmF0aW9ucwpteSAlRHluYW1pY0ZpZWxkQ29uZmlncyA9ICgKICAgIFRleHQgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBUZXh0QXJlYSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1RleHRBcmVhRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0QXJlYScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBSb3dzICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIENvbHMgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBDaGVja2JveCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0NoZWNrYm94RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdDaGVja2JveCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERyb3Bkb3duID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRHJvcGRvd25GaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0Ryb3Bkb3duJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+ICcnLAogICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgUG9zc2libGVWYWx1ZXMgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgICAgIDIgPT4gJ1N0YXRlJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBNdWx0aXNlbGVjdCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ011bHRpc2VsZWN0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdNdWx0aXNlbGVjdCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgICAgICAgPT4gJycsCiAgICAgICAgICAgIFRyYW5zbGF0YWJsZVZhbHVlcyA9PiAxLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICAgICAgMiA9PiAnU3RhdGUnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGVUaW1lID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRGF0ZVRpbWVGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0RhdGVUaW1lJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+IHVuZGVmLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGUgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEYXRlRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEYXRlJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKKTsKCiMgZGVmaW5lIHRlc3RzCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHR9LAogICAgICAgICAgICBEeW5hbWljRmllbGRfVGV4dEZpZWxkID0+ICdQcmlvcml0eScsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnUHJpb3JpdHknLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEFyZWEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHRBcmVhfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX1RleHRBcmVhRmllbGQgPT4gJ1ByaW9yaXR5JywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+ICdQcmlvcml0eScsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIENoZWNrYm94JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tDaGVja2JveH0sCiAgICAgICAgICAgIER5bmFtaWNGaWVsZF9DaGVja2JveEZpZWxkID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAxLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93bicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RHJvcGRvd259LAogICAgICAgICAgICBEeW5hbWljRmllbGRfRHJvcGRvd25GaWVsZCA9PiAyLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gMiwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgTXVsdGlzZWxlY3QnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze011bHRpc2VsZWN0fSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX011bHRpc2VsZWN0RmllbGQgPT4gMiwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+ICcnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBOb3JtYWwnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVUaW1lRmllbGQgPT4gJzIwMTMtMDgtMjEgMTM6NDY6MDAnLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJzIwMTMtMDgtMjEgMTM6NDY6MDAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBUaW1lWm9uZSAtNicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZVRpbWV9LAogICAgICAgICAgICBEeW5hbWljRmllbGRfRGF0ZVRpbWVGaWVsZCA9PiAnMjAxMy0wOC0yMSAxMzo0NjowMCcsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICAgICAgICAgID0+IC02LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJzIwMTMtMDgtMjEgMTk6NDY6MDAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBUaW1lWm9uZSArMTEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVUaW1lRmllbGQgPT4gJzIwMTMtMDgtMjEgOTo0NjowMCcsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICAgICAgICAgID0+IDExLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJzIwMTMtMDgtMjAgMjI6NDY6MDAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIE5vcm1hbCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVGaWVsZCA9PiAnMjAxMy0wOC0yMSAxMzo0NicsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnMjAxMy0wOC0yMSAwMDowMDowMCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGUgVGltZVpvbmUgLTYnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIER5bmFtaWNGaWVsZF9EYXRlRmllbGQgPT4gJzIwMTMtMDgtMjEgMTM6NDYnLAogICAgICAgICAgICBVc2VyVGltZVpvbmUgICAgICAgICAgID0+IC02LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJzIwMTMtMDgtMjEgMDA6MDA6MDAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIFRpbWVab25lICsxMScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVGaWVsZCA9PiAnMjAxMy0wOC0yMSAxMzo0NicsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICAgICAgPT4gMTEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnMjAxMy0wOC0yMSAwMDowMDowMCcsCiAgICB9LAopOwoKIyBleGVjdXRlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBjYWxsIElQaG9uZUZpZWxkVmFsdWVHZXQKICAgIG15ICRWYWx1ZSA9ICRERkJhY2tlbmRPYmplY3QtPklQaG9uZUZpZWxkVmFsdWVHZXQoICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgaWYgKCAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0fSApIHsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRWYWx1ZSwKICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdH0sCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IElQaG9uZUZpZWxkVmFsdWVHZXQoKSA6IgogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRWYWx1ZSwKICAgICAgICAgICAgdW5kZWYsCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IElQaG9uZUZpZWxkVmFsdWVHZXQoKSA6IgogICAgICAgICk7CiAgICB9Cn0KCiMgd2UgZG9uJ3QgbmVlZCBhbnkgY2xlYW51cAoxOwo=
IyAtLQojIGlQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZS50IC0gaVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIGJhY2tlbmQgdGVzdHMKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxNCBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4Owp1c2UgdmFycyAocXcoJFNlbGYpKTsKCnVzZSBLZXJuZWw6OkNvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKbXkgJEhlbHBlck9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyLT5uZXcoCiAgICAlJFNlbGYsCiAgICBVbml0VGVzdE9iamVjdCA9PiAkU2VsZiwKKTsKCm15ICRERkJhY2tlbmRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kLT5uZXcoICV7JFNlbGZ9ICk7CgojIHRoZXJlcyBpcyBub3QgcmVhbGx5IG5lZWRlZCB0byBhZGQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHRlc3QsIHdlIGNhbiBkZWZpbmUgYSBzdGF0aWMKIyBzZXQgb2YgY29uZmlndXJhdGlvbnMKbXkgJUR5bmFtaWNGaWVsZENvbmZpZ3MgPSAoCiAgICBUZXh0ID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnVGV4dEZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnVGV4dCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgVGV4dEFyZWEgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0QXJlYUZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnVGV4dEFyZWEnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSA9PiAnJywKICAgICAgICAgICAgUm93cyAgICAgICAgID0+ICcnLAogICAgICAgICAgICBDb2xzICAgICAgICAgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgQ2hlY2tib3ggPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdDaGVja2JveEZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnQ2hlY2tib3gnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEcm9wZG93biA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0Ryb3Bkb3duRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEcm9wZG93bicsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAnJywKICAgICAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+IDEsCiAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+ICdQcmlvcml0eScsCiAgICAgICAgICAgICAgICAyID0+ICdTdGF0ZScsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgTXVsdGlzZWxlY3QgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdNdWx0aXNlbGVjdEZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnTXVsdGlzZWxlY3QnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgICAgICA9PiAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+ICcnLAogICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgUG9zc2libGVWYWx1ZXMgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgICAgIDIgPT4gJ1N0YXRlJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEYXRlVGltZSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0RhdGVUaW1lRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEYXRlVGltZScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICA9PiB1bmRlZiwKICAgICAgICAgICAgTGluayAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNQZXJpb2QgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNJbkZ1dHVyZSA9PiAnJywKICAgICAgICAgICAgWWVhcnNJblBhc3QgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEYXRlID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRGF0ZUZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnRGF0ZScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICA9PiAnJywKICAgICAgICAgICAgTGluayAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNQZXJpb2QgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNJbkZ1dHVyZSA9PiAnJywKICAgICAgICAgICAgWWVhcnNJblBhc3QgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCik7CgojIGRlZmluZSB0ZXN0cwpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHR9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCgogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCBFbXB0eSBNYW5kYXRvcnknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dEFyZWEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0QXJlYX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHRBcmVhIEVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dEFyZWF9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAoKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHRBcmVhIEVtcHR5IE1hbmRhdG9yeScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHRBcmVhfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgQ2hlY2tib3gnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tDaGVja2JveH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIENoZWNrYm94IEVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCgogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgQ2hlY2tib3ggRW1wdHkgTWFuZGF0b3J5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93bicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0Ryb3Bkb3dufSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRHJvcGRvd24gRW1wdHknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEcm9wZG93bn0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93biBFbXB0eSBNYW5kYXRvcnknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEcm9wZG93bn0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERyb3Bkb3duIFdyb25nIFZhbHVlJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RHJvcGRvd259LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gMywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdUaGUgZmllbGQgY29udGVudCBpcyBpbnZhbGlkJywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBNdWx0aXNlbGVjdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze011bHRpc2VsZWN0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+ICcnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBNdWx0aXNlbGVjdCBFbXB0eScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze011bHRpc2VsZWN0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAoKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiAnJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgTXVsdGlzZWxlY3QgRW1wdHkgTWFuZGF0b3J5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7TXVsdGlzZWxlY3R9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+ICcnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcyMDEzLTA4LTIxIDEzOjQ2OjAwJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBlbXB0eScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGVUaW1lIEVtcHR5IE1hbmRhdG9yeScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgV3JvbmcgRm9ybWF0JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZVRpbWV9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDY6MDAnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgV3JvbmcgRGF0ZScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcyMDEzLTMxLTIxIDEzOjQ2OjAwJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGUnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcyMDEzLTA4LTIxIDEzOjQ2OjAwJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIGVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIEVtcHR5IE1hbmRhdG9yeScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGV9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIFdyb25nIEZvcm1hdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGV9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDY6MDAnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZSBXcm9uZyBEYXRlJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnMjAxMy0zMS0yMSAxMzo0NjowMCcsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCik7CgojIGV4ZWN1dGUgdGVzdHMKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICAjIGNhbGwgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlCiAgICBteSAkUmVzdWx0ID0gJERGQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKCAleyAkVGVzdC0+e0NvbmZpZ30gfSApOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRUZXN0LT57RXhwZWN0ZWRSZXN1bHRzfSApICkgewogICAgICAgICRTZWxmLT5Jc0RlZXBseSgKICAgICAgICAgICAgJFJlc3VsdCwKICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9LAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUoKSA6IgogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRSZXN1bHQsCiAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUoKSA6IgogICAgICAgICk7CiAgICB9Cn0KCiMgd2UgZG9uJ3QgbmVlZCBhbnkgY2xlYW51cAoxOwo=
IyAtLQojIGlQaG9uZUhhbmRsZS5wbSAtIGNvZGUgdG8gZXhjZWN1dGUgZHVyaW5nIHBhY2thZ2UgaW5zdGFsbGF0aW9uCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSB2YXI6OnBhY2thZ2VzZXR1cDo6aVBob25lSGFuZGxlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6Q29uZmlnOwp1c2UgS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpQYWNrYWdlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKaVBob25lSGFuZGxlLnBtIC0gY29kZSB0byBleGNlY3V0ZSBkdXJpbmcgcGFja2FnZSBpbnN0YWxsYXRpb24KCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlRpbWU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkRCOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpYTUw7CiAgICB1c2UgdmFyOjpwYWNrYWdlc2V0dXA6OmlQaG9uZTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJExvZ09iamVjdCAgICA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTWFpbk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpNYWluLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJFRpbWVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VGltZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgKTsKICAgIG15ICREQk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpEQi0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICk7CiAgICBteSAkWE1MT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlhNTC0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRDb2RlT2JqZWN0ID0gdmFyOjpwYWNrYWdlc2V0dXA6OmlQaG9uZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBUaW1lT2JqZWN0ICAgPT4gJFRpbWVPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBYTUxPYmplY3QgICAgPT4gJFhNTE9iamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0ICgKICAgICAgICBxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0IE1haW5PYmplY3QgVGltZU9iamVjdCBEQk9iamVjdCBYTUxPYmplY3QgRW5jb2RlT2JqZWN0KQogICAgICAgICkKICAgIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICAjIGNyZWF0ZSBuZWVkZWQgc3lzY29uZmlnIG9iamVjdAogICAgJFNlbGYtPntTeXNDb25maWdPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZy0+bmV3KCAleyRTZWxmfSApOwoKICAgICMgcmVidWlsZCBaWloqIGZpbGVzCiAgICAkU2VsZi0+e1N5c0NvbmZpZ09iamVjdH0tPldyaXRlRGVmYXVsdCgpOwoKICAgICMgZGVmaW5lIHRoZSBaWlogZmlsZXMKICAgIG15IEBaWlpGaWxlcyA9ICgKICAgICAgICAnWlpaQUF1dG8ucG0nLAogICAgICAgICdaWlpBdXRvLnBtJywKICAgICk7CgogICAgIyByZWxvYWQgdGhlIFpaWiBmaWxlcyAobW9kX3Blcmwgd29ya2Fyb3VuZCkKICAgIGZvciBteSAkWlpaRmlsZSAoQFpaWkZpbGVzKSB7CgogICAgICAgIFBSRUZJWDoKICAgICAgICBmb3IgbXkgJFByZWZpeCAoQElOQykgewogICAgICAgICAgICBteSAkRmlsZSA9ICRQcmVmaXggLiAnL0tlcm5lbC9Db25maWcvRmlsZXMvJyAuICRaWlpGaWxlOwogICAgICAgICAgICBuZXh0IFBSRUZJWCBpZiAhLWYgJEZpbGU7CiAgICAgICAgICAgIGRvICRGaWxlOwogICAgICAgICAgICBsYXN0IFBSRUZJWDsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgbmVlZGVkIG9iamVjdHMKICAgICRTZWxmLT57Q29uZmlnT2JqZWN0fSAgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICAkU2VsZi0+e1BhY2thZ2VPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OlBhY2thZ2UtPm5ldyglUGFyYW0pOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ29kZUluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIGluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZUluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlSW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fVXBkYXRlUmVsZWFzZUZpbGUoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVJlaW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgcmVpbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVSZWluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlUmVpbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPl9VcGRhdGVSZWxlYXNlRmlsZSgpOwogICAgJFNlbGYtPl9NaWdyYXRlQ29uZmlndXJhdGlvbnMoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGUoKQoKcnVuIHRoZSBjb2RlIHVwZ3JhZGUgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGUoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fVXBkYXRlUmVsZWFzZUZpbGUoKTsKICAgICRTZWxmLT5fTWlncmF0ZUNvbmZpZ3VyYXRpb25zKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIENvZGVVbmluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIHVuaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVW5pbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZVVuaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fUmVtb3ZlUmVsZWFzZUZpbGUoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX1VwZGF0ZVJlbGVhc2VGaWxlKCkKCmNyZWF0ZXMgb3IgdXBkYXRlcyBSRUxFQVNFLmlQaG9uZUhhbmRsZSBmaWxlCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fVXBkYXRlUmVsZWFzZUZpbGUoKTsKCj1jdXQKCnN1YiBfVXBkYXRlUmVsZWFzZUZpbGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkUGFja2FnZVZlcnNpb247CgogICAgIyBnZXQgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIGlQaG9uZUhhbmRsZSBwYWNrYWdlCiAgICBQQUNLQUdFOgogICAgZm9yIG15ICRQYWNrYWdlICggJFNlbGYtPntQYWNrYWdlT2JqZWN0fS0+UmVwb3NpdG9yeUxpc3QoKSApIHsKICAgICAgICBpZiAoICRQYWNrYWdlLT57TmFtZX0tPntDb250ZW50fSBlcSAnaVBob25lSGFuZGxlJyApIHsKICAgICAgICAgICAgJFBhY2thZ2VWZXJzaW9uID0gJFBhY2thZ2UtPntWZXJzaW9ufS0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgbGFzdCBQQUNLQUdFOwogICAgICAgIH0KICAgIH0KCiAgICAjIGlmIG5vIGlQaG9uZUhhbmRsZSBwYWNrYWdlIGZvdW5kIGFuZCB0aGUgY29kZSBpbnN0YWxsIGlzIGV4ZWN1dGVkIHRoaXMgbXVzdCBiZSBhCiAgICAjIGRldmVsb3BtZW50IHNjZW5hcmlvCiAgICBpZiAoICEkUGFja2FnZVZlcnNpb24gKSB7CiAgICAgICAgJFBhY2thZ2VWZXJzaW9uID0gJ2dpdCc7CiAgICB9CgogICAgIyBnZXQgaG9tZSBwYXRoCiAgICBteSAkSG9tZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdIb21lJyk7CgogICAgIyBjcmVhdGUgb3Igb3ZlcndyaXRlIFJFTEVBU0UuaVBob25lSGFuZGxlIGZpbGUKICAgIG15ICRDb250ZW50ICAgICAgPSAiUFJPRFVDVCA9IGlQaG9uZUhhbmRsZVxuVkVSU0lPTiA9ICRQYWNrYWdlVmVyc2lvbiI7CiAgICBteSAkRmlsZUxvY2F0aW9uID0gJFNlbGYtPntNYWluT2JqZWN0fS0+RmlsZVdyaXRlKAogICAgICAgIExvY2F0aW9uID0+ICIkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUiLAogICAgICAgIENvbnRlbnQgID0+IFwkQ29udGVudCwKICAgICk7CgogICAgaWYgKCAhJEZpbGVMb2NhdGlvbiApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVSUk9SOiBDYW4ndCB3cml0ZSAkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUhLlxuIiwKICAgICAgICApOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICAjIGNoZWNrIFJFTEVBU0UgZmlsZQogICAgaWYgKCAhLWUgIiRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSIgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGaWxlICRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSB3YXMgbm90IGNyZWF0ZWQhLlxuIiwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBfUmVtb3ZlUmVsZWFzZUZpbGUoKQoKcmVtb3ZlcyBSRUxFQVNFLmlQaG9uZUhhbmRsZSBmaWxlIGZyb20gdGhlIGZpbGUgc3lzdGVtCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fUmVtb3ZlUmVsZWFzZUZpbGUoKTsKCj1jdXQKCnN1YiBfUmVtb3ZlUmVsZWFzZUZpbGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBob21lIHBhdGgKICAgIG15ICRIb21lID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKTsKCiAgICAjIGRlbGV0ZSBSRUxFQVNFIGZpbGUKICAgIGlmICggLWUgIiRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSIgKSB7CiAgICAgICAgaWYgKCAhdW5saW5rICIkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUiICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRmlsZSAkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUgY291bGQgbm90IGJlIGRlbGV0ZWQhLlxuIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdub3RpY2UnLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRmlsZSAkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUgd2FzIGFscmVhZHkgZGVsZXRlZCEuXG4iLAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX01pZ3JhdGVDb25maWd1cmF0aW9ucygpCgptaWdyYXRlcyBvbGQgVGlja2V0RnJlZVRleHQsIFRpY2tldEZyZWVUaW1lIGFuZCBBcnRpY2xlRnJlZVRleHQgY29uZmlndXJhdGlvbnMgdG8gbmV3IER5bmFtaWMKRmllbGRzIENvbmZpZ3VyYXRpb25zCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fTWlncmF0ZUNvbmZpZ3VyYXRpb25zKCk7Cgo9Y3V0CgpzdWIgX01pZ3JhdGVDb25maWd1cmF0aW9ucyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBTY3JlZW5zID0gKAogICAgICAgICdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lJywKICAgICAgICAnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlJywKICAgICAgICAnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZScsCiAgICAgICAgJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZScsCiAgICAgICAgJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZScsCiAgICApOwoKICAgIG15IEBGcmVlRmllbGRUeXBlcyA9ICgKICAgICAgICAnVGlja2V0RnJlZVRleHQnLAogICAgICAgICdUaWNrZXRGcmVlVGltZScsCiAgICAgICAgJ0FydGljbGVGcmVlVGV4dCcsCiAgICApOwoKICAgIFNDUkVFTjoKICAgIGZvciBteSAkU2NyZWVuIChAU2NyZWVucykgewoKICAgICAgICBteSAkU2NyZWVuQ29uZmlnID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJFNjcmVlbik7CgogICAgICAgICMgc2tpcCBzY3JlZW4gaWYgRHluYW1pYyBGaWVsZHMgYXJlIGFscmVhZHkgZGVmaW5lZAogICAgICAgIG5leHQgU0NSRUVOIGlmIElzSGFzaFJlZldpdGhEYXRhKCAkU2NyZWVuQ29uZmlnLT57RHluYW1pY0ZpZWxkfSApOwoKICAgICAgICBteSAlRmllbGRzVG9BZGQ7CgogICAgICAgICMgZ2F0aGVyIGFsbCBmcmVlIGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBmb3IgbXkgJEZyZWVGaWVsZFR5cGUgKEBGcmVlRmllbGRUeXBlcykgewoKICAgICAgICAgICAgIyBjaGVjayBpZiBGcmVlRmllbGRUeXBlIGNvbmZpZ3VyYXRpb24gaXMgc2V0IGFuZCBnZXQgdGhlIGNvbmZpZ3VyZWQgZmllbGRzCiAgICAgICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRTY3JlZW5Db25maWctPnskRnJlZUZpZWxkVHlwZX0gKSApIHsKCiAgICAgICAgICAgICAgICBGUkVFRklFTEQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJEZyZWVGaWVsZCAoIHNvcnQga2V5cyAleyAkU2NyZWVuQ29uZmlnLT57JEZyZWVGaWVsZFR5cGV9IH0gKSB7CgogICAgICAgICAgICAgICAgICAgICMgc2tpcCB0aGUgRnJlZUZpZWxkcyB0aGF0IGFyZSBzZXQgdG8gMAogICAgICAgICAgICAgICAgICAgIG5leHQgRlJFRUZJRUxEIGlmICEkU2NyZWVuQ29uZmlnLT57JEZyZWVGaWVsZFR5cGV9LT57JEZyZWVGaWVsZH07CgogICAgICAgICAgICAgICAgICAgICMgYWRkIGZpZWxkIHNldHRpbmcgKDEgb3IgMikgdG8gdGhlIEZpZWxkc1RvQWRkIGhhc2gKICAgICAgICAgICAgICAgICAgICAkRmllbGRzVG9BZGR7ICRGcmVlRmllbGRUeXBlIC4gJEZyZWVGaWVsZCB9CiAgICAgICAgICAgICAgICAgICAgICAgID0gJFNjcmVlbkNvbmZpZy0+eyRGcmVlRmllbGRUeXBlfS0+eyRGcmVlRmllbGR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHVwZGF0ZSBEeW5hbWljRmllbGQgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNjcmVlbiBhbmQgYWRkIHRoZSBjb25maWd1cmVkIEZyZWVGaWVsZHMKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJUZpZWxkc1RvQWRkICkgKSB7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntTeXNDb25maWdPYmplY3R9LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgICAgIEtleSAgID0+ICRTY3JlZW4gLiAnIyMjRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgIFZhbHVlID0+IFwlRmllbGRzVG9BZGQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNhbid0IHVwZGF0ZSBEeW5hbWljRmllbGQgY29uZmlndXJhdGlvbiBmb3IgJFNjcmVlbiEuXG4iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAxCn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vaVBob25lLnBtIC0gYWxsIGlQaG9uZSBoYW5kbGUgZnVuY3Rpb25zCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTQgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6aVBob25lOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2U7CnVzZSBLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtOwp1c2UgS2VybmVsOjpTeXN0ZW06OlByaW9yaXR5Owp1c2UgS2VybmVsOjpTeXN0ZW06OlN5c3RlbUFkZHJlc3M7CnVzZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOwp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjppUGhvbmUgLSBpUGhvbmUgbGliCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBpUGhvbmUgZnVuY3Rpb25zLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6VGltZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6TWFpbjsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6REI7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlVzZXI7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpRdWV1ZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6U2VydmljZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6VHlwZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6U3RhdGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvY2s7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlNMQTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQ7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3Q7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OmlQaG9uZTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJEVuY29kZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTG9nT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRUaW1lT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlRpbWUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7CiAgICBteSAkTWFpbk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpNYWluLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJERCT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkRCLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRVc2VyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVzZXItPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgVGltZU9iamVjdCAgID0+ICRUaW1lT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJEdyb3VwT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06Okdyb3VwLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJFF1ZXVlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlF1ZXVlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ICAgICAgICA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICAgICAgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgICAgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgICAgICAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCAgICAgICAgPT4gJEVuY29kZU9iamVjdCwKICAgICAgICBHcm91cE9iamVjdCAgICAgICAgID0+ICRHcm91cE9iamVjdCwgIyBpZiBnaXZlbgogICAgICAgIEN1c3RvbWVyR3JvdXBPYmplY3QgPT4gJEN1c3RvbWVyR3JvdXBPYmplY3QsICMgaWYgZ2l2ZW4KICAgICk7CiAgICBteSAkU2VydmljZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpTZXJ2aWNlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICApOwogICAgbXkgJFR5cGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VHlwZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRTdGF0ZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpTdGF0ZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRMb2NrT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvY2stPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkU0xBT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlNMQS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRDdXN0b21lclVzZXJPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJFRpY2tldE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgICAgICAgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgICAgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgICAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICAgICAgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBUaW1lT2JqZWN0ICAgICAgICAgPT4gJFRpbWVPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ICAgICAgID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgR3JvdXBPYmplY3QgICAgICAgID0+ICRHcm91cE9iamVjdCwgICAgICAgICMgaWYgZ2l2ZW4KICAgICAgICBDdXN0b21lclVzZXJPYmplY3QgPT4gJEN1c3RvbWVyVXNlck9iamVjdCwgIyBpZiBnaXZlbgogICAgICAgIFF1ZXVlT2JqZWN0ICAgICAgICA9PiAkUXVldWVPYmplY3QsICAgICAgICAjIGlmIGdpdmVuCiAgICApOwogICAgbXkgJExpbmtPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdC0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgVGltZU9iamVjdCAgID0+ICRUaW1lT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkaVBob25lT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OmlQaG9uZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCAgICAgICA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICAgICAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICAgICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgICAgICAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIFRpbWVPYmplY3QgICAgICAgICA9PiAkVGltZU9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgICAgICAgPT4gJEVuY29kZU9iamVjdCwKICAgICAgICBHcm91cE9iamVjdCAgICAgICAgPT4gJEdyb3VwT2JqZWN0LAogICAgICAgIEN1c3RvbWVyVXNlck9iamVjdCA9PiAkQ3VzdG9tZXJVc2VyT2JqZWN0LAogICAgICAgIFF1ZXVlT2JqZWN0ICAgICAgICA9PiAkUXVldWVPYmplY3QsCiAgICAgICAgVXNlck9iamVjdCAgICAgICAgID0+ICRVc2VyT2JqZWN0LAogICAgICAgIFF1ZXVlT2JqZWN0ICAgICAgICA9PiAkUXVldWVPYmplY3QsCiAgICAgICAgU2VydmljZU9iamVjdCAgICAgID0+ICRTZXJ2aWNlT2JqZWN0LAogICAgICAgIFR5cGVPYmplY3QgICAgICAgICA9PiAkVHlwZU9iamVjdCwKICAgICAgICBTdGF0ZU9iamVjdCAgICAgICAgPT4gJFN0YXRlT2JqZWN0LAogICAgICAgIExvY2tPYmplY3QgICAgICAgICA9PiAkTG9ja09iamVjdCwKICAgICAgICBTTEFPYmplY3QgICAgICAgICAgPT4gJFNMQU9iamVjdCwKICAgICAgICBUaWNrZXRPYmplY3QgICAgICAgPT4gJFRpY2tldE9iamVjdCwKICAgICAgICBMaW5rT2JqZWN0ICAgICAgICAgPT4gJExpbmtPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBvYmplY3RzCiAgICBmb3IgKAogICAgICAgIHF3KENvbmZpZ09iamVjdCBVc2VyT2JqZWN0IEdyb3VwT2JqZWN0IFF1ZXVlT2JqZWN0IFNlcnZpY2VPYmplY3QgVHlwZU9iamVjdAogICAgICAgIFN0YXRlT2JqZWN0IExvY2tPYmplY3QgU0xBT2JqZWN0IEN1c3RvbWVyVXNlck9iamVjdCBUaWNrZXRPYmplY3QgTGlua09iamVjdCApCiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57JF99ID0gJFBhcmFteyRffSB8fCBkaWUgIkdvdCBubyAkXyEgb2JqZWN0IjsKICAgIH0KCiAgICAkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0gICAgPSBLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtLT5uZXcoJVBhcmFtKTsKICAgICRTZWxmLT57UHJpb3JpdHlPYmplY3R9ICAgICA9IEtlcm5lbDo6U3lzdGVtOjpQcmlvcml0eS0+bmV3KCVQYXJhbSk7CiAgICAkU2VsZi0+e1N5c3RlbUFkZHJlc3N9ICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6U3lzdGVtQWRkcmVzcy0+bmV3KCVQYXJhbSk7CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZE9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkLT5uZXcoJVBhcmFtKTsKICAgICRTZWxmLT57QmFja2VuZE9iamVjdH0gICAgICA9IEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQtPm5ldyglUGFyYW0pOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gU2NyZWVuQ29uZmlnKCkKR2V0IGZpZWxkcyBkZWZpbnRpb24gZm9yIGVhY2ggc2NyZWVuIChQaG9uZSwgTm90ZSwgQ2xvc2UsIENvbXBvc2Ugb3IgTW92ZSkKClBob25lICAgKE5ldyBwaG9uZSB0aWNrZXQpCk5vdGUgICAgKEFkZCBhIG5vdGUgdG8gYSBUaWNrZXQpCkNsb3NlICAgKENsb3NlIGEgdGNrZXQpCkNvbXBvc2UgKFJlcGx5IG9yIHJlc3BvbnNlIGEgdGlja2V0KQpNb3ZlICAgIChDaGFuZ2UgdGlja2V0IHF1ZXVlKQoKTm90ZSwgQ2xvc2UsIENvbXBvc2UgYW5kIE1vdmUsIHJlcXVpcmVzIFRpY2tldElEIGFyZ3VtZW50CgpUaGUgZmllbGRzIHRoYXQgYXJlIHJldHVybmVkIGRlcGVuZCBvbiB0aGUgU2NyZWVuIEFyZ3VtZW50IGFuZCBvbiB0aGUgU2V0dGluZ3MgaW4gc3lzY29uZmlnIGZvciB0aGUgaVBob25lCmFzIHdlbGwgYXMgb24gZ2VuZXJhbCBzZXR0aW5ncy4KCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U2NyZWVuQ29uZmlnKAogICAgICAgIFNjcmVlbiA9PiAiUGhvbmUiLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U2NyZWVuQ29uZmlnKAogICAgICAgIFNjcmVlbiAgID0+ICJOb3RlIiwKICAgICAgICBUaWNrZXRJRCA9PiAyMjQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgQWN0aW9ucyA9PiB7CiAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgQWN0aW9uID0+ICJQaG9uZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1ldGhvZCA9PiAiU2NyZWVuQWN0aW9ucyIsCiAgICAgICAgICAgIE9iamVjdCA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgVGl0bGUgPT4gIk5ldyBQaG9uZSBUaWNrZXQiCiAgICAgICB9LAogICAgICAgIEVsZW1lbnRzID0+ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAiVHlwZUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgPT4gIlR5cGUiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgID0+ICJQaWNrZXIiLAogICAgICAgICAgICAgICAgT3B0aW9ucyAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgMT0+ICJkZWZhdWx0IiwKICAgICAgICAgICAgICAgICAgICAyPT4gIlJmQyIsCiAgICAgICAgICAgICAgICAgICAgMz0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgICAgICAgICAgND0+ICJJbmNpZGVudDo6U2VydmljZVJlcXVlc3QiLAogICAgICAgICAgICAgICAgICAgIDU9PiAiSW5jaWRlbnQ6OkRpc2FzdGVyIgogICAgICAgICAgICAgICAgICAgIDY9PiAiUHJvYmxlbSIsCiAgICAgICAgICAgICAgICAgICAgNz0+ICJQcm9ibGVtOjpLbm93bkVycm9yIiwKICAgICAgICAgICAgICAgICAgICA4PT4gIlByb2JsZW06OlBlbmRpbmdSZkMiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICJDdXN0b21lclVzZXJMb2dpbiIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiRnJvbSBjdXN0b21lciIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiJBdXRvQ29tcGxldGlvbiIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+IkN1c3RvbWVyU2VhcmNoIiwKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCA9PiAiQ3VzdG9tZXJVc2VyTG9naW4iLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICA9PiAiVG8gcXVldWUiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICA9PiAiUGlja2VyIiwKICAgICAgICAgICAgICAgIE9wdGlvbnMgICA9PnsKICAgICAgICAgICAgICAgICAgICAgID0+ICItIiwKICAgICAgICAgICAgICAgICAgICAxID0+ICJQb3N0bWFzdGVyIiwKICAgICAgICAgICAgICAgICAgICAyID0+ICJSYXciLAogICAgICAgICAgICAgICAgICAgIDMgPT4gIkp1bmsiLAogICAgICAgICAgICAgICAgICAgIDQgPT4gIk1pc2MiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiAiIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiU2VydmljZUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICJTZXJ2aWNlIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+IlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gIlNlcnZpY2VzR2V0IiwKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gIkN1c3RvbWVyVXNlckxvZ2luIiwKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICAgPT4gIlF1ZXVlSUQiLAogICAgICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAiVGlja2V0SUQiLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiU0xBSUQiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gIlNMQSIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAiUGlja2VyIiwKICAgICAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICJDdXN0b21PYmplY3QiLAogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gIlNMQXNHZXQiLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21lclVzZXJJRCA9PiAiQ3VzdG9tZXJVc2VyTG9naW4iLAogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEICAgICAgICA9PiAiUXVldWVJRCIsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZpY2VJRCAgICAgID0+ICJTZXJ2aWNlSUQiLAogICAgICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAiVGlja2V0SUQiLgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiT3duZXJJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiT3duZXIiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4iUGlja2VyIiwKICAgICAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgPT4gIlF1ZXVlSUQiLAogICAgICAgICAgICAgICAgICAgICAgICBBbGxVc2VycyA9PiAxLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAiVXNlcnNHZXQiLAogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gIkN1c3RvbU9iamVjdCIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiUmVzcG9uc2libGVJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiUmVzcG9uc2libGUiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICJVc2Vyc0dldCIsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgICAgICAgICAgQWxsVXNlcnMgPT4gMQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gIlN1YmplY3QiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgID0+ICJTdWJqZWN0IiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIklucHV0IiwKICAgICAgICAgICAgICAgIE1heCAgICAgICA9PiAyNTAsCiAgICAgICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiAiIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gIkJvZHkiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIlRleHRBcmVhIiwKICAgICAgICAgICAgICAgIE1heCAgICAgICA9PiAyMDAwMCwKICAgICAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgRGVmYXVsdCAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAiQ3VzdG9tZXJJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgPT4gIkN1c3RvbWVySUQiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICA9PiAiSW5wdXQiLAogICAgICAgICAgICAgICAgTWF4ICAgICAgID0+IDE1MCwKICAgICAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgRGVmYXVsdCAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICJTdGF0ZUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICJOZXh0IFRpY2tldCBTdGF0ZSIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAiUGlja2VyIiwKICAgICAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICJOZXh0U3RhdGVzR2V0IiwKICAgICAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICJDdXN0b21PYmplY3QiLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICI0IiwKICAgICAgICAgICAgICAgIERlZmF1bHRPcHRpb24gID0+ICJvcGVuIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAiUGVuZGluZ0RhdGUiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgID0+ICJQZW5kaW5nIERhdGUgKGZvciBwZW5kaW5nKiBzdGF0ZXMpIgogICAgICAgICAgICAgICAgRGF0YXR5cGUgID0+ICJEYXRlVGltZSIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIlByaW9yaXR5SUQiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gIlByaW9yaXR5IgogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gIlByaW9yaXRpZXNHZXQiLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gIiIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgRGVmYXVsdE9wdGlvbiAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIzIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICJEeW5hbWljRmllbGRfTmFtZVgiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gIlByb2R1Y3QiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBPcHRpb25zICAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIi0iLAogICAgICAgICAgICAgICAgICAgIFBob25lICAgID0+ICJQaG9uZSIsCiAgICAgICAgICAgICAgICAgICAgTm90ZWJvb2sgPT4gIk5vdGVib29rIiwKICAgICAgICAgICAgICAgICAgICBQQyAgICAgICA9PiAiUEMiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgID0+ICJOb3RlYm9vayIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+ICJUaW1lVW5pdHMiLAogICAgICAgICAgICAgICAgVGl0bGUgPT4gIlRpbWUgdW5pdHMgKHdvcmsgdW5pdHMpIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlID0+ICJOdW1lcmljIiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlID0+ICJJbnB1dCIsCiAgICAgICAgICAgICAgICBNYXggPT4gMTAsCiAgICAgICAgICAgICAgICBNaW4gPT4gMSwKICAgICAgICAgICAgICAgIERlZmF1bHQgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICApLAogICAgKTsKCj1jdXQKCnN1YiBTY3JlZW5Db25maWcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fSA9IEtlcm5lbDo6TGFuZ3VhZ2UtPm5ldyggJXskU2VsZn0sIFVzZXJMYW5ndWFnZSA9PiAkUGFyYW17TGFuZ3VhZ2V9ICk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBOZXcgUGhvbmUgVGlja2V0IFNjcmVlbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ1Bob25lJyApIHsKCiAgICAgICAgIyBnZXQgc2NyZWVuIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgaXBob25lIGZyb20gc3lzY29uZmlnCiAgICAgICAgJFNlbGYtPntDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUnKTsKICAgICAgICBteSAlQ29uZmlnID0gKAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdOZXcgUGhvbmUgVGlja2V0JyksCiAgICAgICAgICAgIEVsZW1lbnRzID0+ICRTZWxmLT5fR2V0U2NyZWVuRWxlbWVudHMoJVBhcmFtKSwKICAgICAgICAgICAgQWN0aW9ucyAgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gJ1NjcmVlbkFjdGlvbnMnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICdQaG9uZScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIFwlQ29uZmlnOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgQWRkIE5vdGUgU2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdOb3RlJyApIHsKCiAgICAgICAgIyBnZXQgc2NyZWVuIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgaXBob25lIGZyb20gc3lzY29uZmlnCiAgICAgICAgJFNlbGYtPntDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZScpOwoKICAgICAgICBteSAlQ29uZmlnID0gKAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdBZGQgTm90ZScpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgID0+ICdOb3RlJywKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgID0+ICdhIHRpdGxlJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gXCVDb25maWc7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBDbG9zZSBUaWNrZXQgU2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnQ2xvc2UnICkgewoKICAgICAgICAjIGdldCBzY3JlZW4gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBpcGhvbmUgZnJvbSBzeXNjb25maWcKICAgICAgICAkU2VsZi0+e0NvbmZpZ30gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZScpOwoKICAgICAgICBteSAlQ29uZmlnID0gKAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdDbG9zZScpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgID0+ICdDbG9zZScsCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gXCVDb25maWc7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBDb21wb3NlIFNjcmVlbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ0NvbXBvc2UnICkgewoKICAgICAgICAjIGdldCBzY3JlZW4gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBpcGhvbmUgZnJvbSBzeXNjb25maWcKICAgICAgICAkU2VsZi0+e0NvbmZpZ30gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlJyk7CgogICAgICAgIG15ICVDb25maWcgPSAoCiAgICAgICAgICAgIFRpdGxlICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ0NvbXBvc2UnKSwKICAgICAgICAgICAgRWxlbWVudHMgPT4gJFNlbGYtPl9HZXRTY3JlZW5FbGVtZW50cyglUGFyYW0pIHx8ICcnLAogICAgICAgICAgICBBY3Rpb25zICA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnU2NyZWVuQWN0aW9ucycsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgICA9PiAnQ29tcG9zZScsCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBSZXBseUFydGljbGVJRCA9PiAkUGFyYW17QXJ0aWNsZUlEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkQ29uZmlne0VsZW1lbnRzfSApIHsKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgICByZXR1cm4gXCVDb25maWc7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBNb3ZlIFNjcmVlbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnTW92ZScgKSB7CgogICAgICAgICMgZ2V0IHNjcmVlbiBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGlwaG9uZSBmcm9tIHN5c2NvbmZpZwogICAgICAgICRTZWxmLT57Q29uZmlnfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUnKTsKCiAgICAgICAgbXkgJUNvbmZpZyA9ICgKICAgICAgICAgICAgVGl0bGUgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnTW92ZScpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgID0+ICdNb3ZlJywKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIHJldHVybiBcJUNvbmZpZzsKICAgIH0KCiAgICByZXR1cm4gLTE7Cn0KCj1pdGVtIEJhZGdlcygpCgpHZXQgQmFkZ2VzIHRpY2tldCBjb3VudHMgZm9yIFdhdGNoZWQsIExvY2tlZCBhbmQgUmVwb3NpYmxlIGZvciB0aWNrZXRzCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkJhZGdlcygKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgTG9ja2VkID0+IHsKICAgICAgICAgICAgQWxsID0+IDEsCiAgICAgICAgICAgIE5ldyA9PiAxLAogICAgICAgIH0sCgogICAgICAgIFdhdGNoZWQgPT4geyAgICAgICAjIE9wdGlvbmFsIGlmIGZlYXR1cmUgaXMgZW5hYmxlZAogICAgICAgICAgICBBbGwgPT4gMiwKICAgICAgICAgICAgTmV3ID0+IDAsCiAgICAgICAgfSwKCiAgICAgICAgUmVzcG9uc2libGUgPT4geyAgICMgT3B0aW9uYWwgaWYgZmVhdHVyZSBpcyBlbmFibGVkCiAgICAgICAgICAgIEFsbCA9PiAxLAogICAgICAgICAgICBOZXcgPT4gMSwKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBCYWRnZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBARGF0YTsKCiAgICAjIGxvY2tlZAogICAgaWYgKDEpIHsKICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBMb2NrcyAgICAgID0+IFsnbG9jayddLAogICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgKTsKICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBMb2NrcyAgICAgID0+IFsnbG9jayddLAogICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICA9PiAncm8nLAogICAgICAgICk7CiAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwogICAgICAgIHB1c2ggQERhdGEsIHsKICAgICAgICAgICAgTG9ja2VkID0+IHsKICAgICAgICAgICAgICAgIEFsbCA9PiAkQ291bnQsCiAgICAgICAgICAgICAgICBOZXcgPT4gJENvdW50TmV3LAogICAgICAgICAgICAgICAgfQogICAgICAgIH07CiAgICB9CgogICAgIyByZXNwb25zaWJsZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpSZXNwb25zaWJsZScpICkgewogICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBSZXN1bHQgICAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiAnT3BlbicsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgPT4gJ3JvJywKICAgICAgICApOwogICAgICAgIG15ICRDb3VudE5ldyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBSZXN1bHQgICAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiAnT3BlbicsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVGlja2V0RmxhZyAgICAgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgPT4gJ3JvJywKICAgICAgICApOwogICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgcHVzaCBARGF0YSwgewogICAgICAgICAgICBSZXNwb25zaWJsZSA9PiB7CiAgICAgICAgICAgICAgICBBbGwgPT4gJENvdW50LAogICAgICAgICAgICAgICAgTmV3ID0+ICRDb3VudE5ldywKICAgICAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgfQoKICAgICMgd2F0Y2hlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpXYXRjaGVyJykgKSB7CgogICAgICAgICMgY2hlY2sgYWNjZXNzCiAgICAgICAgbXkgJEFjY2Vzc09rID0gMTsKICAgICAgICBteSBAR3JvdXBzOwogICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6V2F0Y2hlckdyb3VwJykgKSB7CiAgICAgICAgICAgIEBHcm91cHMgPSBAeyAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpXYXRjaGVyR3JvdXAnKSB9OwogICAgICAgIH0KICAgICAgICBpZiAoQEdyb3VwcykgewogICAgICAgICAgICBteSAkQWNjZXNzID0gMDsKICAgICAgICAgICAgZm9yIG15ICRHcm91cCAoQEdyb3VwcykgewogICAgICAgICAgICAgICAgbmV4dCBpZiAhJFBhcmFteyJVc2VySXNHcm91cFskR3JvdXBdIn07CiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXsiVXNlcklzR3JvdXBbJEdyb3VwXSJ9IGVxICdZZXMnICkgewogICAgICAgICAgICAgICAgICAgICRBY2Nlc3MgPSAxOwogICAgICAgICAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmV0dXJuIG9uIG5vIGFjY2VzcwogICAgICAgICAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICAgICAgICAgJEFjY2Vzc09rID0gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCRBY2Nlc3NPaykgewoKICAgICAgICAgICAgIyBmaW5kIHdhdGNoZWQgdGlja2V0cwogICAgICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgIFJlc3VsdCAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgID0+ICdybycsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDb3VudE5ldyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgUmVzdWx0ICAgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgICAgICBXYXRjaFVzZXJJRHMgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgVGlja2V0RmxhZyAgID0+IHsKICAgICAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICAgICAgcHVzaCBARGF0YSwgewogICAgICAgICAgICAgICAgV2F0Y2hlZCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQWxsID0+ICRDb3VudCwKICAgICAgICAgICAgICAgICAgICBOZXcgPT4gJENvdW50TmV3LAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIEBEYXRhOwp9Cgo9aXRlbSBFc2NhbGF0aW9uVmlldygpCgpHZXQgdGhlIG51bWJlciBvZiB0aWNrZXRzIG9uIGVzdGFsYXRpb24gc3RhdHVzIGJ5IHN0YXRlIHR5cGUgb3IgbGFzdCBjdXN0b21lciBhcnRpY2xlIGluZm9ybWF0aW9uIGZyb20KZWFjaCB0aWNrZXQgaW4gZXNjYWxhdGlvbiBzdGF0dXMgd2l0aGluIGEgZmlsdGVyLCBpZiB0aGUgIkZpbHRlciIgYXJndW1lbnQgaXMgc3BlY2lmaWVkLgoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Fc2NhbGF0aW9uVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiVG9kYXkiLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiVG9tb3Jyb3ciLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiTmV4dFdlZWsiLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAKICAgICAgICB9LAogICAgKTsKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+RXNjYWxhdGlvblZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIEZpbHRlciAgPT4gIlRvZGF5IiwKCiAgICAgICAgI0xpbWl0IChvcHRpb25hbCkgc2V0IHRvIDEwMCBieSBkZWZhdWx0LCBpZiBub3Qgc3BlY2lmaWVkCiAgICAgICAgTGltaXQgICA9PiA1MCwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNTk2LAogICAgICAgICAgICBBcnRpY2xlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiA5MjMsCiAgICAgICAgICAgIEFydGljbGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJwaG9uZSIsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJUZXN0aW5nIGZvciBlc2NhbGF0aW9uIiwKICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudENoYXJzZXQgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW47IiwKICAgICAgICAgICAgY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ3JlYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NDY6MTUiLAogICAgICAgICAgICBDcmVhdGVkQnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZSAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvbkRhdGUgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uVGltZSA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZUVzY2FsYXRpb24gICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZVdvcmtpbmdUaW1lICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyQG90cnMub3JnIiwKICAgICAgICAgICAgSW5jb21pbmdUaW1lICAgICAgICAgICAgICAgICAgICAgPT4gMTI3NzMxMTU3NSwKICAgICAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInVubG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkVzY2FsYXRpb24gVGVzdCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkVzY2FsYXRpb24gVGVzdCIsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkluY2lkZW50IiwKICAgICAgICAgICAgVW50aWxUaW1lICAgICAgICAgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXBkYXRlVGltZSAgICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE1IiwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uVGltZSAgICAgICAgPT4gMTI3NzMxMTg3NSwKICAgICAgICAgICAgVXBkYXRlVGltZUVzY2FsYXRpb24gICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXBkYXRlVGltZVdvcmtpbmdUaW1lICAgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFNlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgRXNjYWxhdGlvblZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCkgKyA2MCAqIDYwICogMjQgKiA3LAogICAgKTsKICAgIG15ICRUaW1lU3RhbXBOZXh0V2VlayA9ICIkWWVhci0kTW9udGgtJERheSAyMzo1OTo1OSI7CgogICAgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpICsgNjAgKiA2MCAqIDI0LAogICAgKTsKICAgIG15ICRUaW1lU3RhbXBUb21vcnJvdyA9ICIkWWVhci0kTW9udGgtJERheSAyMzo1OTo1OSI7CgogICAgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpLAogICAgKTsKICAgIG15ICRUaW1lU3RhbXBUb2RheSA9ICIkWWVhci0kTW9udGgtJERheSAyMzo1OTo1OSI7CgogICAgIyBkZWZpbmUgZmlsdGVyCiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBUb2RheSA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnVG9kYXknLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldEVzY2FsYXRpb25UaW1lT2xkZXJEYXRlID0+ICRUaW1lU3RhbXBUb2RheSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVG9tb3Jyb3cgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ1RvbW9ycm93JywKICAgICAgICAgICAgUHJpbyAgID0+IDIwMDAsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBUaWNrZXRFc2NhbGF0aW9uVGltZU9sZGVyRGF0ZSA9PiAkVGltZVN0YW1wVG9tb3Jyb3csCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICAgICAgICAgICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIE5leHRXZWVrID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdOZXh0IFdlZWsnLAogICAgICAgICAgICBQcmlvICAgPT4gMzAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldEVzY2FsYXRpb25UaW1lT2xkZXJEYXRlID0+ICRUaW1lU3RhbXBOZXh0V2VlaywKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgIG15ICRMaW1pdCA9ICRQYXJhbXtMaW1pdH0gfHwgMTAwOwogICAgaWYgKCAkUGFyYW17RmlsdGVyfSApIHsKICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyAkUGFyYW17RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgICAgICAgICBMaW1pdCAgPT4gJExpbWl0LAogICAgICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJywKICAgICAgICApOwogICAgICAgIG15IEBMaXN0OwogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBWaWV3YWJsZVRpY2tldHMpIHsKICAgICAgICAgICAgbmV4dCBpZiAhJFRpY2tldElEOwogICAgICAgICAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT5UaWNrZXRMaXN0KCBUaWNrZXRJRCA9PiAkVGlja2V0SUQsIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSApOwogICAgICAgICAgICBuZXh0IGlmICElQXJ0aWNsZTsKICAgICAgICAgICAgcHVzaCBATGlzdCwgXCVBcnRpY2xlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gQExpc3Q7CiAgICB9CgogICAgIyBkbyBuYXYgYmFyIGxvb2t1cAogICAgbXkgQFN0YXRlczsKICAgIGZvciBteSAkRmlsdGVyICggc29ydCBrZXlzICVGaWx0ZXJzICkgewogICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgKTsKICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICAkQ291bnROZXcgPSAkQ291bnQgLSAkQ291bnROZXc7CgogICAgICAgIHB1c2ggQFN0YXRlcywgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlciwKICAgICAgICAgICAgRmlsdGVyTmFtZSAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57TmFtZX0sCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAkQ291bnQsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgfTsKICAgIH0KICAgIHJldHVybiBAU3RhdGVzOwp9Cgo9aXRlbSBTdGF0dXNWaWV3KCkKCkdldCB0aGUgbnVtYmVyIG9mIHRpY2tldHMgYnkgc3RhdHVzIChvcGVuIG9yIGNsb3NlZCkgb3IgbGFzdCBjdXN0b21lciBhcnRpY2xlIGluZm9ybWF0aW9uIGZyb20gZWFjaAp0aWNrZXQgaW4gZWFjaCBzdGF0dXMgd2l0aGluIGFuIHNwZWNpZmllZCBmaWx0ZXIsIGlmIHRoZSAiRmlsdGVyIiBhcmd1bWVudCBpcyBzcGVjaWZpZWQuCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlN0YXR1c1ZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJDbG9zZWQiLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlN0YXR1c1ZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIEZpbHRlciAgPT4gIk9wZW4iLAoKICAgICAgICAjTGltaXQgKG9wdGlvbmFsKSBzZXQgdG8gMTAwIGJ5IGRlZmF1bHQsIGlmIG5vdCBzcGNpZmllZAogICAgICAgIExpbWl0ICAgPT4gNTAsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidW5sb2NrIiwKICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW4iLAogICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgUHJpb3JpdHlDb2xvciAgICAgICAgICAgICAgICAgICAgPT4gIiNjZGNkY2QiLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFN0YXR1c1ZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGRlZmluZSBmaWx0ZXIKICAgIG15ICVGaWx0ZXJzID0gKAogICAgICAgIE9wZW4gPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ09wZW4nLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgPT4gJ09wZW4nLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIENsb3NlZCA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnQ2xvc2VkJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDEsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgID0+ICdDbG9zZWQnLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGRvIHNob3duIHRpY2tldHMgbG9va3VwCiAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgIGlmICggJFBhcmFte0ZpbHRlcn0gKSB7CiAgICAgICAgbXkgQFZpZXdhYmxlVGlja2V0cyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3sgJFBhcmFte0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgTGltaXQgID0+ICRMaW1pdCwKICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgKTsKICAgICAgICBteSBATGlzdDsKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgIG5leHQgaWYgISRUaWNrZXRJRDsKICAgICAgICAgICAgbXkgJUFydGljbGUgPSAkU2VsZi0+VGlja2V0TGlzdCggVGlja2V0SUQgPT4gJFRpY2tldElELCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKTsKICAgICAgICAgICAgbmV4dCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgfQoKICAgICMgZG8gbmF2IGJhciBsb29rdXAKICAgIG15IEBTdGF0ZXM7CiAgICBmb3IgbXkgJEZpbHRlciAoIHNvcnQga2V5cyAlRmlsdGVycyApIHsKICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICk7CiAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICBwdXNoIEBTdGF0ZXMsIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXIsCiAgICAgICAgICAgIEZpbHRlck5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyc3skRmlsdGVyfS0+e05hbWV9LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gJENvdW50TmV3LAogICAgICAgIH07CiAgICB9CiAgICByZXR1cm4gQFN0YXRlczsKfQoKPWl0ZW0gTG9ja2VkVmlldygpCgpHZXQgdGhlIG51bWJlciBvZiBsb2NrZWQgdGlja2V0cyBieSBzdGF0dXMgdHlwZSAoYWxsLCBuZXcsIHJlbWluZGVyLCByZW1pbmRlciByZWFjaGVkICkgb3IgbGFzdApjdXN0b21lciBhcnRpY2xlIGluZm9ybWF0aW9uIGZyb20gZWFjaCBsb2NrZWQgdGlja2V0IGluIGVhY2ggc3RhdHVzIHdpdGhpbiBhbiBzcGVjaWZpZWQgZmlsdGVyLCBpZgp0aGUgIkZpbHRlciIgYXJndW1lbnQgaXMgc3BlY2lmaWVkLgoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Mb2NrZWRWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFsbCIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJOZXcsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJSZW1pbmRlciwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyUmVhY2hlZCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICApOwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Mb2NrZWRWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICBGaWx0ZXIgID0+ICJOZXciLAoKICAgICAgICAjTGltaXQgKG9wdGlvbmFsKSBzZXQgdG8gMTAwIGJ5IGRlZmF1bHQsIGlmIG5vdCBzcGNpZmllZAogICAgICAgIExpbWl0ICAgPT4gNTAsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTU5NiwKICAgICAgICAgICAgQXJ0aWNsZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gOTIzLAogICAgICAgICAgICBBcnRpY2xlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAicGhvbmUiLAogICAgICAgICAgICBCb2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiVGhpcyBpcyBhbiBvcGVuIHRpY2tldCIsCiAgICAgICAgICAgIENoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRDaGFyc2V0ICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluOyIsCiAgICAgICAgICAgIGNoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENyZWF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjQ2OjE1IiwKICAgICAgICAgICAgQ3JlYXRlZEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWUgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25EYXRlID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVFc2NhbGF0aW9uICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVXb3JraW5nVGltZSAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lckBvdHJzLm9yZyIsCiAgICAgICAgICAgIEluY29taW5nVGltZSAgICAgICAgICAgICAgICAgICAgID0+IDEyNzczMTE1NzUsCiAgICAgICAgICAgIExvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJsb2NrIiwKICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW4iLAogICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgUHJpb3JpdHlDb2xvciAgICAgICAgICAgICAgICAgICAgPT4gIiNjZGNkY2QiLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLCAjIG9ubHkgb24gb3RycyAzLnggZnJhbWV3b3JrCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgTG9ja2VkVmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVmaW5lIGZpbHRlcgogICAgbXkgJUZpbHRlcnMgPSAoCiAgICAgICAgQWxsID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdBbGwnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIExvY2tzICAgICAgPT4gWydsb2NrJ10sCiAgICAgICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIE5ldyA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnTmV3IEFydGljbGUnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMSwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIExvY2tzICAgICAgPT4gWydsb2NrJ10sCiAgICAgICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVtaW5kZXIgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ1BlbmRpbmcnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMiwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIExvY2tzICAgICAgPT4gWydsb2NrJ10sCiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgID0+IFsgJ3BlbmRpbmcgcmVtaW5kZXInLCAncGVuZGluZyBhdXRvJyBdLAogICAgICAgICAgICAgICAgT3duZXJJRHMgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZW1pbmRlclJlYWNoZWQgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ1JlbWluZGVyIFJlYWNoZWQnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMywKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIExvY2tzICAgICAgICAgICAgICAgICAgICAgICAgID0+IFsnbG9jayddLAogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgPT4gWydwZW5kaW5nIHJlbWluZGVyJ10sCiAgICAgICAgICAgICAgICBUaWNrZXRQZW5kaW5nVGltZU9sZGVyTWludXRlcyA9PiAxLAogICAgICAgICAgICAgICAgT3duZXJJRHMgICAgICAgICAgICAgICAgICAgICAgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICAgICAgICAgICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGRvIHNob3duIHRpY2tldHMgbG9va3VwCiAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgIGlmICggJFBhcmFte0ZpbHRlcn0gKSB7CiAgICAgICAgbXkgQFZpZXdhYmxlVGlja2V0cyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3sgJFBhcmFte0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgTGltaXQgID0+ICRMaW1pdCwKICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgKTsKICAgICAgICBteSBATGlzdDsKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgIG5leHQgaWYgISRUaWNrZXRJRDsKICAgICAgICAgICAgbXkgJUFydGljbGUgPSAkU2VsZi0+VGlja2V0TGlzdCggVGlja2V0SUQgPT4gJFRpY2tldElELCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKTsKICAgICAgICAgICAgbmV4dCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICB9CgogICAgICAgIGlmICggIUBMaXN0ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlcmUgYXJlIG5vIGxvY2tlZCB0aWNrZXRzIHVuZGVyICRQYXJhbXtGaWx0ZXJ9IGZpbHRlciAiCiAgICAgICAgICAgICAgICAgICAgLiAiY2F0ZWdvcnkiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgfQoKICAgICMgZG8gbmF2IGJhciBsb29rdXAKICAgIG15IEBTdGF0ZXM7CiAgICBmb3IgbXkgJEZpbHRlciAoIHNvcnQga2V5cyAlRmlsdGVycyApIHsKICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICk7CiAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICBwdXNoIEBTdGF0ZXMsIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXIsCiAgICAgICAgICAgIEZpbHRlck5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyc3skRmlsdGVyfS0+e05hbWV9LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gJENvdW50TmV3LAogICAgICAgIH07CiAgICB9CiAgICByZXR1cm4gQFN0YXRlczsKfQoKPWl0ZW0gV2F0Y2hlZFZpZXcoKQoKR2V0IHRoZSBudW1iZXIgb2Ygd2F0Y2hlZCB0aWNrZXRzIGJ5IHN0YXR1cyB0eXBlIChhbGwsIG5ldywgcmVtaW5kZXIsIHJlbWluZGVyIHJlYWNoZWQgKSBvciBsYXN0CmN1c3RtZXIgYXJ0aWNsZSBpbmZvcm1hdGlvbiBmcm9tIGVhY2ggd2F0Y2hlZCB0aWNrZXQgaW4gZWFjaCBzdGF0dXMgd2l0aGluIGFuIHNwZWNpZmllZCBmaWx0ZXIsIGlmCnRoZSAiRmlsdGVyIiBhcmd1bWVudCBpcyBzcGVjaWZpZWQuCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPldhdGNoZWRWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFsbCIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJOZXcsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJSZW1pbmRlciwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyUmVhY2hlZCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICApOwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5XYXRjaGVkVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgRmlsdGVyICA9PiAiTmV3IiwKCiAgICAgICAgI0xpbWl0IChvcHRpb25hbCkgc2V0IHRvIDEwMCBieSBkZWZhdWx0LCBpZiBub3Qgc3BjaWZpZWQKICAgICAgICBMaW1pdCAgID0+IDUwLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFdhdGNoZWRWaWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUgZmlsdGVyCiAgICAjIGdldCBhbGwgd2F0Y2hlZCB0aWNrZXRzIG5vIG1hdHRlciBpZiB0aGV5IGFyZSBsb2NrZWQgb3Igbm90CiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBBbGwgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ0FsbCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAwLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgTmV3ID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdOZXcgQXJ0aWNsZScsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAxLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWcgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZW1pbmRlciA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUGVuZGluZycsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAyLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlID0+IFsgJ3BlbmRpbmcgcmVtaW5kZXInLCAncGVuZGluZyBhdXRvJyBdLAogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVtaW5kZXJSZWFjaGVkID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdSZW1pbmRlciBSZWFjaGVkJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDMsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICA9PiBbJ3BlbmRpbmcgcmVtaW5kZXInXSwKICAgICAgICAgICAgICAgIFRpY2tldFBlbmRpbmdUaW1lT2xkZXJNaW51dGVzID0+IDEsCiAgICAgICAgICAgICAgICBXYXRjaFVzZXJJRHMgICAgICAgICAgICAgICAgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6V2F0Y2hlcicpICkgewoKICAgICAgICAjIGRvIHNob3duIHRpY2tldHMgbG9va3VwCiAgICAgICAgbXkgJExpbWl0ID0gJFBhcmFte0xpbWl0fSB8fCAxMDA7CiAgICAgICAgaWYgKCAkUGFyYW17RmlsdGVyfSApIHsKICAgICAgICAgICAgbXkgQFZpZXdhYmxlVGlja2V0cyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7ICRQYXJhbXtGaWx0ZXJ9IH0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBMaW1pdCAgPT4gJExpbWl0LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15IEBMaXN0OwogICAgICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgICAgICBuZXh0IGlmICEkVGlja2V0SUQ7CiAgICAgICAgICAgICAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT5UaWNrZXRMaXN0KCBUaWNrZXRJRCA9PiAkVGlja2V0SUQsIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSApOwogICAgICAgICAgICAgICAgbmV4dCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgICAgICBwdXNoIEBMaXN0LCBcJUFydGljbGU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAhQExpc3QgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGVyZSBhcmUgbm8gd2F0Y2hlZCB0aWNrZXRzIHVuZGVyICRQYXJhbXtGaWx0ZXJ9IGZpbHRlciAiCiAgICAgICAgICAgICAgICAgICAgICAgIC4gImNhdGVnb3J5IiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgICAgIH0KCiAgICAgICAgIyBkbyBuYXYgYmFyIGxvb2t1cAogICAgICAgIG15IEBTdGF0ZXM7CiAgICAgICAgZm9yIG15ICRGaWx0ZXIgKCBzb3J0IGtleXMgJUZpbHRlcnMgKSB7CiAgICAgICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0NPVU5UJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkQ291bnROZXcgPSAkQ291bnQgLSAkQ291bnROZXc7CgogICAgICAgICAgICBwdXNoIEBTdGF0ZXMsIHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyLAogICAgICAgICAgICAgICAgRmlsdGVyTmFtZSAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57TmFtZX0sCiAgICAgICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+ICRDb3VudE5ldywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEBTdGF0ZXM7CiAgICB9CiAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgIE1lc3NhZ2UgID0+ICdUaWNrZXQgd2F0Y2hlciBmZWF0dXJlIGlzIG5vdCBlbmFibGUgaW4gc3lzdGVtIGNvbmZpZ3VyYXRpb24gJwogICAgICAgICAgICAuICdQbGVhc2UgY29udGFjdCBhZG1pbicsCiAgICApOwogICAgcmV0dXJuIC0xOwp9Cgo9aXRlbSBSZXNwb25zaWJsZVZpZXcoKQoKR2V0IHRoZSBudW1iZXIgb2YgbG9ja2VkIG9yIHVubG9ja2VkIHRpY2tldHMgd2hlcmUgdGhlIHVzZXIgaXMgcmVzcG9uc2libGUgZm9yIGJ5IHN0YXR1cyB0eXBlCihhbGwsIG5ldywgcmVtaW5kZXIsIHJlbWluZGVyIHJlYWNoZWQgKSBvciBsYXN0IGN1c3RvbWVyIGFydGljbGUgaW5mb3JtYXRpb24gZnJvbSBlYWNoIHRpY2tldCB3aGVyZQp0aGUgdXNlciBpcyByZXNwb25zaWJsZSBmb3IgIGluIGVhY2ggc3RhdHVzIHdpdGhpbiBhbiBzcGVjaWZpZWQgZmlsdGVyLCBpZiB0aGUgIkZpbHRlciIgYXJndW1lbnQgaXMKc3BlY2lmaWVkLgoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5SZXNwb25zaWJsZVZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWxsIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIk5ldywKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiUmVtaW5kZXJSZWFjaGVkLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlJlc3BvbnNpYmxlVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgRmlsdGVyICA9PiAiTmV3IiwKCiAgICAgICAgI0xpbWl0IChvcHRpb25hbCkgc2V0IHRvIDEwMCBieSBkZWZhdWx0LCBpZiBub3Qgc3BjaWZpZWQKICAgICAgICBMaW1pdCAgID0+IDUwLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFJlc3BvbnNpYmxlVmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVmaW5lIGZpbHRlcgogICAgbXkgJUZpbHRlcnMgPSAoCiAgICAgICAgQWxsID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdBbGwnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgID0+ICdPcGVuJywKICAgICAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBOZXcgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ05ldyBBcnRpY2xlJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDEsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiAnT3BlbicsCiAgICAgICAgICAgICAgICBSZXNwb25zaWJsZUlEcyA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnICAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZW1pbmRlciA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUGVuZGluZycsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAyLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlID0+IFsgJ3BlbmRpbmcgcmVtaW5kZXInLCAncGVuZGluZyBhdXRvJyBdLAogICAgICAgICAgICAgICAgUmVzcG9uc2libGVJRHMgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlbWluZGVyUmVhY2hlZCA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUmVtaW5kZXIgUmVhY2hlZCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAzLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgPT4gWydwZW5kaW5nIHJlbWluZGVyJ10sCiAgICAgICAgICAgICAgICBUaWNrZXRQZW5kaW5nVGltZU9sZGVyTWludXRlcyA9PiAxLAogICAgICAgICAgICAgICAgUmVzcG9uc2libGVJRHMgICAgICAgICAgICAgICAgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICAgICAgICAgICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OlJlc3BvbnNpYmxlJykgKSB7CgogICAgICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgICAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgICAgICBpZiAoICRQYXJhbXtGaWx0ZXJ9ICkgewogICAgICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICAgICAleyAkRmlsdGVyc3sgJFBhcmFte0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgICAgIExpbWl0ICA9PiAkTGltaXQsCiAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgQExpc3Q7CiAgICAgICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBWaWV3YWJsZVRpY2tldHMpIHsKICAgICAgICAgICAgICAgIG5leHQgaWYgISRUaWNrZXRJRDsKICAgICAgICAgICAgICAgIG15ICVBcnRpY2xlID0gJFNlbGYtPlRpY2tldExpc3QoIFRpY2tldElEID0+ICRUaWNrZXRJRCwgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CiAgICAgICAgICAgICAgICBuZXh0IGlmICElQXJ0aWNsZTsKICAgICAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICFATGlzdCApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZXJlIGFyZSBubyByZXNwb25zaWJsZSBmb3IgdGlja2V0cyB1bmRlciAkUGFyYW17RmlsdGVyfSBmaWx0ZXIgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJjYXRlZ29yeSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBATGlzdDsKICAgICAgICB9CgogICAgICAgICMgZG8gbmF2IGJhciBsb29rdXAKICAgICAgICBteSBAU3RhdGVzOwogICAgICAgIGZvciBteSAkRmlsdGVyICggc29ydCBrZXlzICVGaWx0ZXJzICkgewogICAgICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDb3VudE5ldyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnID0+IHsKICAgICAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICAgICAgcHVzaCBAU3RhdGVzLCB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlciwKICAgICAgICAgICAgICAgIEZpbHRlck5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyc3skRmlsdGVyfS0+e05hbWV9LAogICAgICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIHJldHVybiBAU3RhdGVzOwogICAgfQogICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICBNZXNzYWdlICA9PiAnVGlja2V0IHJlc3BvbnNpYmxlIGZlYXR1cmUgaXMgbm90IGVuYWJsZSBpbiBzeXN0ZW0gY29uZmlndXJhdGlvbiAnCiAgICAgICAgICAgIC4gJ1BsZWFzZSBjb250YWN0IGFkbWluJywKICAgICk7CiAgICByZXR1cm4gLTE7Cn0KCj1pdGVtIFF1ZXVlVmlldygpCgpHZXQgdGhlIG51bWJlciBvZiB2aWV3YWJsZSB0aWNrZXRzIHBlciBxdWV1ZSBhcyB3ZWxsIGFzIGJhc2ljIHF1ZXVlIGluZm9ybWF0aW9uLCBvciBsYXN0IGN1c3RvbWVyCmFydGljbGUgaW5mb3JtYXRpb24gZnJvbSBlYWNoIHRpY2tldCB3aXRoaW4gYW4gc3BlY2lmaWVkIHF1ZXVlLCBpZiB0aGUgIlF1ZXVlIiBhcmd1bWVudCBpcwpzcGVjaWZpZWQuCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlF1ZXVlVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgUXVldWVOYW1lICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgICAgICBRdWV1ZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gMywKICAgICAgICAgICAgQ29tbWVudCAgICAgICAgICAgICAgICAgICAgICAgID0+ICJBbGwganVuayB0aWNrZXRzLiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgUXVldWVOYW1lICAgICAgICAgICAgICAgICAgICAgID0+ICJNaXNjIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgICAgICBRdWV1ZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gNCwKICAgICAgICAgICAgQ29tbWVudCAgICAgICAgICAgICAgICAgICAgICAgID0+ICJBbGwgbWlzYyB0aWNrZXRzLiIKICAgICAgICB9LAogICAgKTsKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+UXVldWVWaWV3KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgUXVldWVJRCAgPT4gNCwKCiAgICAgICAgI0xpbWl0IChvcHRpb25hbCkgc2V0IHRvIDEwMCBieSBkZWZhdWx0LCBpZiBub3Qgc3BjaWZpZWQKICAgICAgICBMaW1pdCAgICA9PiA1MCwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk1pc2MiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFF1ZXVlVmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBWaWV3YWJsZUxvY2tJRHMgPSAkU2VsZi0+e0xvY2tPYmplY3R9LT5Mb2NrVmlld2FibGVMb2NrKCBUeXBlID0+ICdJRCcgKTsKCiAgICBteSBAVmlld2FibGVTdGF0ZUlEcyA9ICRTZWxmLT57U3RhdGVPYmplY3R9LT5TdGF0ZUdldFN0YXRlc0J5VHlwZSgKICAgICAgICBUeXBlICAgPT4gJ1ZpZXdhYmxlJywKICAgICAgICBSZXN1bHQgPT4gJ0lEJywKICAgICk7CgogICAgIyBkbyBzaG93biB0aWNrZXRzIGxvb2t1cAogICAgbXkgJExpbWl0ID0gJFBhcmFte0xpbWl0fSB8fCAxMDA7CiAgICBpZiAoICRQYXJhbXtRdWV1ZUlEfSApIHsKICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCgogICAgICAgICAgICBPcmRlckJ5ICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgU29ydEJ5ICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgU3RhdGVJRHMgICA9PiBcQFZpZXdhYmxlU3RhdGVJRHMsCiAgICAgICAgICAgIExvY2tJRHMgICAgPT4gXEBWaWV3YWJsZUxvY2tJRHMsCiAgICAgICAgICAgIFF1ZXVlSURzICAgPT4gWyAkUGFyYW17UXVldWVJRH0gXSwKICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAncncnLAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBMaW1pdCAgICAgID0+ICRMaW1pdCwKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQVJSQVknLAogICAgICAgICk7CiAgICAgICAgbXkgQExpc3Q7CiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFZpZXdhYmxlVGlja2V0cykgewogICAgICAgICAgICBuZXh0IGlmICEkVGlja2V0SUQ7CiAgICAgICAgICAgIG15ICVBcnRpY2xlID0gJFNlbGYtPlRpY2tldExpc3QoIFRpY2tldElEID0+ICRUaWNrZXRJRCwgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CiAgICAgICAgICAgIG5leHQgaWYgISVBcnRpY2xlOwogICAgICAgICAgICBwdXNoIEBMaXN0LCBcJUFydGljbGU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBATGlzdDsKICAgIH0KCiAgICBteSAlQWxsUXVldWVzID0gJFNlbGYtPntRdWV1ZU9iamVjdH0tPlF1ZXVlTGlzdCggVmFsaWQgPT4gMCApOwoKICAgIG15IEBRdWV1ZXM7CiAgICBteSAlUXVldWVTdW07CiAgICBmb3IgbXkgJFF1ZXVlSUQgKCBzb3J0IGtleXMgJUFsbFF1ZXVlcyApIHsKICAgICAgICBteSAlUXVldWUgPSAkU2VsZi0+e1F1ZXVlT2JqZWN0fS0+UXVldWVHZXQoCiAgICAgICAgICAgIElEID0+ICRRdWV1ZUlELAogICAgICAgICk7CgogICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBTdGF0ZUlEcyA9PiBcQFZpZXdhYmxlU3RhdGVJRHMsCiAgICAgICAgICAgIExvY2tJRHMgID0+IFxAVmlld2FibGVMb2NrSURzLAogICAgICAgICAgICBRdWV1ZUlEcyA9PiBbJFF1ZXVlSURdLAoKICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAncncnLAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIExpbWl0ICAgICAgPT4gMTAwMCwKICAgICAgICApOwogICAgICAgIG5leHQgaWYgISRDb3VudDsKCiAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgIFN0YXRlSURzID0+IFxAVmlld2FibGVTdGF0ZUlEcywKICAgICAgICAgICAgTG9ja0lEcyAgPT4gXEBWaWV3YWJsZUxvY2tJRHMsCiAgICAgICAgICAgIFF1ZXVlSURzID0+IFskUXVldWVJRF0sCgogICAgICAgICAgICBUaWNrZXRGbGFnID0+IHsKICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICA9PiAncncnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBSZXN1bHQgICAgICAgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gMTAwMCwKICAgICAgICApOwogICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgcHVzaCBAUXVldWVzLCB7CiAgICAgICAgICAgIFF1ZXVlSUQgICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgUXVldWVOYW1lID0+ICRRdWV1ZXtOYW1lfSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICRRdWV1ZXtDb21tZW50fSwKCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAkQ291bnQsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gQFF1ZXVlczsKfQoKPWl0ZW0gVGlja2V0TGlzdCgpCgpHZXQgdGhlIGxhc3QgY3VzdG9tZXIgYXJ0aWNsZSBpbmZvcm1hdGlvbiBvZiBhIHRpY2tldAoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5UaWNrZXRMaXN0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgVGlja2V0SUQgID0+IDE3NiwKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk1pc2MiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFRpY2tldExpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlQ29sb3IgPSAoCiAgICAgICAgMSA9PiAnI2NkY2RjZCcsCiAgICAgICAgMiA9PiAnI2NkY2RjZCcsCiAgICAgICAgMyA9PiAnI2NkY2RjZCcsCiAgICAgICAgNCA9PiAnI2ZmYWFhYScsCiAgICAgICAgNSA9PiAnI2ZmNTA1ZScsCiAgICApOwoKICAgIG15ICVBcnRpY2xlID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlTGFzdEN1c3RvbWVyQXJ0aWNsZSgKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgKTsKICAgIGlmICglQXJ0aWNsZSkgewogICAgICAgICRBcnRpY2xle1ByaW9yaXR5Q29sb3J9ID0gJENvbG9yeyAkQXJ0aWNsZXtQcmlvcml0eUlEfSB9OwoKICAgICAgICBteSAlVGlja2V0RmxhZyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RmxhZ0dldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRUaWNrZXRGbGFne3NlZW59IHx8ICRUaWNrZXRGbGFne1NlZW59ICkgewogICAgICAgICAgICAkQXJ0aWNsZXtTZWVufSA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIHN0cmlwIG91dCBhbGwgZGF0YQogICAgICAgIG15IEBEZWxldGUgPSBxdygKICAgICAgICAgICAgUmVwbHlUbyBNZXNzYWdlSUQgSW5SZXBseVRvIFJlZmVyZW5jZXMgQWdlVGltZVVuaXggQ3JlYXRlVGltZVVuaXggU2VuZGVyVHlwZUlECiAgICAgICAgICAgIEluY29taW5nVGltZSBSZWFsVGlsbFRpbWVOb3RVc2VkIFNlcnZpY2VJRCBTTEFJRCBTdGF0ZVR5cGUgQXJjaGl2ZUZsYWcgVW5sb2NrVGltZW91dAogICAgICAgICAgICBDaGFuZ2VkCiAgICAgICAgICAgICkKICAgICAgICAgICAgOwoKICAgICAgICBmb3IgbXkgJEtleSAoQERlbGV0ZSkgewogICAgICAgICAgICBkZWxldGUgJEFydGljbGV7JEtleX07CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlQXJ0aWNsZSApIHsKICAgICAgICAgICAgaWYgKCAhZGVmaW5lZCAkQXJ0aWNsZXskS2V5fSB8fCAkQXJ0aWNsZXskS2V5fSBlcSAnJyApIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkQXJ0aWNsZXskS2V5fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRLZXkgPX4gL15Fc2NhbGEvICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRBcnRpY2xleyRLZXl9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJUFydGljbGU7CiAgICB9CgogICAgIyByZXR1cm4gb25seSB0aWNrZXQgaW5mb3JtYXRpb24gaWYgdGlja2V0IGhhcyBubyBhcnRpY2xlcwogICAgbXkgJVRpY2tldERhdGEgPSAkU2VsZi0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICk7CiAgICByZXR1cm4gJVRpY2tldERhdGE7Cn0KCj1pdGVtIFRpY2tldEdldCgpCkdldCBpbmZvcm1hdGlvbiBvZiBhIHRpY2tldAoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQgID0+IDIyNCwKICAgICAgICBVc2VySUQgICAgPT4gMSwKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICBBY2NvdW50ZWRUaW1lICAgPT4gIjU0MDQiLAogICAgICAgIEFnZSAgICAgICAgICAgICA9PiAiNjgxOTQ2IiwKICAgICAgICBDdXN0b21lcklEICAgICAgPT4gInN3IiwKICAgICAgICBDdXN0b21lclVzZXJJRCAgPT4gIkRhdmlkIiwKICAgICAgICBDcmVhdGVkICAgICAgICAgPT4gIjIwMTAtMDctMDYgMTQ6MDU6NTQiLAogICAgICAgIEdyb3VwSUQgICAgICAgICA9PiAxLAogICAgICAgIFRpY2tldElEICAgICAgICA9PiAyMjQsCiAgICAgICAgTG9ja0lEICAgICAgICAgID0+IDIsCiAgICAgICAgTG9jayAgICAgICAgICAgID0+ICJsb2NrIgogICAgICAgIE93bmVySUQgICAgICAgICA9PiAxMTM0LAogICAgICAgIE93bmVyICAgICAgICAgICA9PiAiQWF5bGEiLAogICAgICAgIFByaW9yaXR5Q29sb3IgICA9PiAiI2NkY2RjZCIsCiAgICAgICAgUHJpb3JpdHlJRCAgICAgID0+IDEsCiAgICAgICAgUHJpb3JpdHkgICAgICAgID0+ICIxIHZlcnkgbG93IiwKICAgICAgICBRdWV1ZSAgICAgICAgICAgPT4gIlJhdyIsCiAgICAgICAgUXVldWVJRCAgICAgICAgID0+IDIsCiAgICAgICAgUmVzcG9uc2libGVJRCAgID0+IDExMzQsCiAgICAgICAgUmVzcG9uc2libGUgICAgID0+ICJBYXlsYSIsCiAgICAgICAgU2VlbiAgICAgICAgICAgID0+IDEsICMgb25seSBvbiBvdHJzIDMueCBmcmFtZXdvcmsKICAgICAgICBTdGF0ZUlEICAgICAgICAgPT4gIDQsCiAgICAgICAgU3RhdGUgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICBUaWNrZXROdW1iZXIgICAgPT4gIjIwMTAwNzA2MTAwMDAyMTUiLAogICAgICAgIFRpdGxlICAgICAgICAgICA9PiAiaVBob25lIFRlc3QiLAogICAgICAgIFR5cGVJRCAgICAgICAgICA9PiAxLAogICAgICAgIFR5cGUgICAgICAgICAgICA9PiAiZGVmYXVsdCIsCiAgICAgICAgVW50aWxUaW1lICAgICAgID0+ICIwIiwKICAgICk7Cgo9Y3V0CgpzdWIgVGlja2V0R2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBteSAkQWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICdybycsCiAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfQogICAgKTsKICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJZb3UgbmVlZCBybyBwZXJtaXNzaW9ucyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVDb2xvciA9ICgKICAgICAgICAxID0+ICcjY2RjZGNkJywKICAgICAgICAyID0+ICcjY2RjZGNkJywKICAgICAgICAzID0+ICcjY2RjZGNkJywKICAgICAgICA0ID0+ICcjZmZhYWFhJywKICAgICAgICA1ID0+ICcjZmY1MDVlJywKICAgICk7CgogICAgbXkgJVRpY2tldCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0R2V0KCVQYXJhbSk7CgogICAgJFRpY2tldHtQcmlvcml0eUNvbG9yfSA9ICRDb2xvcnsgJFRpY2tldHtQcmlvcml0eUlEfSB9OwoKICAgIG15ICVUaWNrZXRGbGFnID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRGbGFnR2V0KAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwogICAgaWYgKCAkVGlja2V0RmxhZ3tzZWVufSB8fCAkVGlja2V0RmxhZ3tTZWVufSApIHsKICAgICAgICAkVGlja2V0e1NlZW59ID0gMTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGNoZWNrIGlmIHRpY2tldCBuZWVkIHRvIGJlIG1hcmtlZCBhcyBzZWVuCiAgICAgICAgbXkgJEFydGljbGVBbGxTZWVuID0gMTsKICAgICAgICBteSBASW5kZXggPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVJbmRleCggVGlja2V0SUQgPT4gJFRpY2tldHtUaWNrZXRJRH0gKTsKICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggXEBJbmRleCApICkgewogICAgICAgICAgICBmb3IgbXkgJEFydGljbGVJRCAoQEluZGV4KSB7CiAgICAgICAgICAgICAgICBteSAlQXJ0aWNsZUZsYWcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVGbGFnR2V0KAogICAgICAgICAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBsYXN0IGlmIGFydGljbGUgd2FzIG5vdCBzaG93bgogICAgICAgICAgICAgICAgaWYgKCAhJEFydGljbGVGbGFne1NlZW59ICYmICEkQXJ0aWNsZUZsYWd7c2Vlbn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEFydGljbGVBbGxTZWVuID0gMDsKICAgICAgICAgICAgICAgICAgICBsYXN0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG1hcmsgdGlja2V0IGFzIHNlZW4gaWYgYWxsIGFydGljbGUgYXJlIHNob3duCiAgICAgICAgICAgIGlmICgkQXJ0aWNsZUFsbFNlZW4pIHsKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RmxhZ1NldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0e1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnU2VlbicsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgYWNjb3VudGVkIHRpbWUKICAgIG15ICRBY2NvdW50ZWRUaW1lID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRBY2NvdW50ZWRUaW1lR2V0KCVQYXJhbSk7CiAgICBpZiAoIGRlZmluZWQgJEFjY291bnRlZFRpbWUgKSB7CiAgICAgICAgJFRpY2tldHtBY2NvdW50ZWRUaW1lfSA9ICRBY2NvdW50ZWRUaW1lOwogICAgfQoKICAgICMgc3RyaXAgb3V0IGFsbCBkYXRhCiAgICBteSBARGVsZXRlID0gcXcoCiAgICAgICAgUmVwbHlUbyBNZXNzYWdlSUQgSW5SZXBseVRvIFJlZmVyZW5jZXMgQWdlVGltZVVuaXggQ3JlYXRlVGltZVVuaXggU2VuZGVyVHlwZUlECiAgICAgICAgSW5jb21pbmdUaW1lIFJlYWxUaWxsVGltZU5vdFVzZWQgU2VydmljZUlEIFNMQUlEIFN0YXRlVHlwZSBBcmNoaXZlRmxhZyBVbmxvY2tUaW1lb3V0CiAgICAgICAgQ2hhbmdlZAogICAgICAgICkKICAgICAgICA7CgogICAgZm9yIG15ICRLZXkgKEBEZWxldGUpIHsKICAgICAgICBkZWxldGUgJFRpY2tldHskS2V5fTsKICAgIH0KICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVUaWNrZXQgKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkVGlja2V0eyRLZXl9IHx8ICRUaWNrZXR7JEtleX0gZXEgJycgKSB7CiAgICAgICAgICAgIGRlbGV0ZSAkVGlja2V0eyRLZXl9OwogICAgICAgIH0KICAgICAgICBpZiAoICRLZXkgPX4gL15Fc2NhbGEvICkgewogICAgICAgICAgICBkZWxldGUgJFRpY2tldHskS2V5fTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gJVRpY2tldDsKfQoKPWl0ZW0gQXJ0aWNsZUdldCgpCgpHZXQgaW5mb3JtYXRpb24gZnJvbSBhbiBhcnRpY2xlCgogICAgbXkgJVJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkFydGljbGVHZXQoKQogICAgICAgIEFydGljbGVJRCAgPT4gMTA1NCwKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgICVSZXN1dGwgPSAoCiAgICAgICAgQWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTY2MjAyLAogICAgICAgIEFjY291bnRlZFRpbWUgICAgICAgICAgICAgICAgICAgID0+IDEyMywKICAgICAgICBBcnRpY2xlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiAxMDU0LAogICAgICAgIEFydGljbGVUeXBlSUQgICAgICAgICAgICAgICAgICAgID0+IDUsCiAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICBCb2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaVBob25lIHRpY2tldCBUZXN0IiwKICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgIENvbnRlbnRDaGFyc2V0ICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgiLAogICAgICAgIENyZWF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIyMDEwLTA3LTEyIDE0OjEzOjA2IiwKICAgICAgICBDcmVhdGVkQnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAxMTM0LAogICAgICAgIEN1c3RvbWVySUQgICAgICAgICAgICAgICAgICAgICAgID0+ICJzdyIsCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgICAgICAgICAgICAgICAgICAgPT4gIkRhdmlkIiwKICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNy0xMiAxNDoxODowNiIsCiAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgPT4gIjEyNzg5NjIyODYiLAogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVXb3JraW5nVGltZSAgICAgPT4gLTg2NzAwLAogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xNjU5MDIsCiAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlwiRGF2aWQgUHJvd3NlXCIgPHBkQHN3LmNvbT4iLAogICAgICAgIExvY2tJRCAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImxvY2siLAogICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICBPd25lcklEICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxMTM0LAogICAgICAgIE93bmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJBYXlsYSIsCiAgICAgICAgUHJpb3JpdHlJRCAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICBQcmlvcml0eSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMSB2ZXJ5IGxvdyIsCiAgICAgICAgUXVldWVJRCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMywKICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgUmVzcG9uc2libGVJRCAgICAgICAgICAgICAgICAgICAgPT4gMTEzNCwKICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWF5bGEiLAogICAgICAgIFNlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsICMgb25seSBvbiBvdHJzIDMueCBmcmFtZXdvcmsKICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA3LTEyIDE0OjE4OjA2IiwKICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc4OTYyMjg2LAogICAgICAgIFNvbHV0aW9uVGltZVdvcmtpbmdUaW1lICAgICAgICAgID0+IC04NjcwMCwKICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgIFNvbHV0aW9uVGltZSAgICAgICAgICAgICAgICAgICAgID0+IC0xNjU5MDIsCiAgICAgICAgU3RhdGVJRCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gNCwKICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaVBob25lIFRlc3QiLAogICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAyNDcsCiAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAwNzEyMTAwMDAwNDMiLAogICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJpUGhvbmUgVGVzdCIsCiAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgIFR5cGVJRCAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImRlZmF1bHQiLAogICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgID0+ICIyMDEwLTA3LTEyIDE0OjE4OjA2IiwKICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc4OTYyMjg2LAogICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgVXBkYXRlVGltZVdvcmtpbmdUaW1lICAgICAgICAgICAgPT4gLTg2NzAwLAogICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xNjU5MDIsCiAgICAgICAgVW50aWxUaW1lICAgICAgICAgICAgICAgICAgICAgICAgPT4gMCwKICAgICk7Cgo9Y3V0CgpzdWIgQXJ0aWNsZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgbXkgJUFydGljbGUgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVHZXQoJVBhcmFtKTsKICAgIG15ICRBY2Nlc3MgID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICdybycsCiAgICAgICAgVGlja2V0SUQgPT4gJEFydGljbGV7VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICApOwogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIllvdSBuZWVkIHJvIHBlcm1pc3Npb25zISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCVBcnRpY2xlKSB7CgogICAgICAgICMgY2hlY2sgaWYgYXJ0aWNsZSBpcyBzZWVuCiAgICAgICAgbXkgJUFydGljbGVGbGFnID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlRmxhZ0dldCgKICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRBcnRpY2xlRmxhZ3tzZWVufSB8fCAkQXJ0aWNsZUZsYWd7U2Vlbn0gKSB7CiAgICAgICAgICAgICRBcnRpY2xle1NlZW59ID0gMTsKICAgICAgICB9CgogICAgICAgICMgbWFyayBzaG93biBhcnRpY2xlIGFzIHNlZW4KICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVGbGFnU2V0KAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgICAgIEtleSAgICAgICA9PiAnU2VlbicsCiAgICAgICAgICAgIFZhbHVlICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBpZiB0aWNrZXQgbmVlZCB0byBiZSBtYXJrZWQgYXMgc2VlbgogICAgICAgIG15ICRBcnRpY2xlQWxsU2VlbiA9IDE7CiAgICAgICAgbXkgQEluZGV4ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlSW5kZXgoIFRpY2tldElEID0+ICRBcnRpY2xle1RpY2tldElEfSApOwogICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCBcQEluZGV4ICkgKSB7CiAgICAgICAgICAgIGZvciBteSAkQXJ0aWNsZUlEIChASW5kZXgpIHsKICAgICAgICAgICAgICAgIG15ICVBcnRpY2xlRmxhZyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUZsYWdHZXQoCiAgICAgICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGxhc3QgaWYgYXJ0aWNsZSB3YXMgbm90IHNob3duCiAgICAgICAgICAgICAgICBpZiAoICEkQXJ0aWNsZUZsYWd7U2Vlbn0gJiYgISRBcnRpY2xlRmxhZ3tzZWVufSApIHsKICAgICAgICAgICAgICAgICAgICAkQXJ0aWNsZUFsbFNlZW4gPSAwOwogICAgICAgICAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgbWFyayB0aWNrZXQgYXMgc2VlbiBpZiBhbGwgYXJ0aWNsZSBhcmUgc2hvd24KICAgICAgICAgICAgaWYgKCRBcnRpY2xlQWxsU2VlbikgewogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRGbGFnU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRBcnRpY2xle1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnU2VlbicsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgYWRkIGFjY291bnRlZCB0aW1lCiAgICAgICAgbXkgJEFjY291bnRlZFRpbWUgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVBY2NvdW50ZWRUaW1lR2V0KCVQYXJhbSk7CiAgICAgICAgaWYgKCBkZWZpbmVkICRBY2NvdW50ZWRUaW1lICkgewogICAgICAgICAgICAkQXJ0aWNsZXtBY2NvdW50ZWRUaW1lfSA9ICRBY2NvdW50ZWRUaW1lOwogICAgICAgIH0KCiAgICAgICAgIyBzdHJpcCBvdXQgYWxsIGRhdGEKICAgICAgICBteSBARGVsZXRlID0gcXcoCiAgICAgICAgICAgIFJlcGx5VG8gTWVzc2FnZUlEIEluUmVwbHlUbyBSZWZlcmVuY2VzIEFnZVRpbWVVbml4IENyZWF0ZVRpbWVVbml4IFNlbmRlclR5cGVJRAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgUmVhbFRpbGxUaW1lTm90VXNlZCBTZXJ2aWNlSUQgU0xBSURTdGF0ZVR5cGUgQXJjaGl2ZUZsYWcgVW5sb2NrVGltZW91dAogICAgICAgICAgICBDaGFuZ2VkCiAgICAgICAgICAgICkKICAgICAgICAgICAgOwoKICAgICAgICBmb3IgbXkgJEtleSAoQERlbGV0ZSkgewogICAgICAgICAgICBkZWxldGUgJEFydGljbGV7JEtleX07CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlQXJ0aWNsZSApIHsKICAgICAgICAgICAgaWYgKCAhZGVmaW5lZCAkQXJ0aWNsZXskS2V5fSB8fCAkQXJ0aWNsZXskS2V5fSBlcSAnJyApIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkQXJ0aWNsZXskS2V5fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRLZXkgPX4gL15Fc2NhbGEvICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRBcnRpY2xleyRLZXl9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJUFydGljbGU7CiAgICB9CiAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgIE1lc3NhZ2UgID0+ICdObyBBcnRpY2xlcyBmb3VuZCBpbiB0aGlzIHRpY2tldCcsCiAgICApOwogICAgcmV0dXJuIC0xOwp9Cgo9aXRlbSBTZXJ2aWNlc0dldCgpCkdldCBhIEhhc2ggcmVmZXJlbmNlIHRvIGFsbCBwb3NzaWJsZSBzZXJ2aWNlcyBiYXNlZCBvbiBhIFRpY2tldCBvciBRdWV1ZSBhbmQgQ3VzdG9tZXJVc2VyCgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlNlcnZpY2VzR2V0KAogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgICAgIFF1ZXVlSUQgICAgICAgICA9PiAzLCAgIyB8fCBUaWNrZXRJRCBPcHRpb25hbAogICAgICAgIFRpY2tldElEICAgICAgICA9PiAyMywgIyB8fCBRdWV1ZUlEIE9wdGlvbmFsCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgID0+ICJDdXN0b21lciIsCiAgICApOwoKICAgICMgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gWwogICAgICAgIDEgPT4gIlNlcnZpY2UgQSIsCiAgICAgICAgMyA9PiAiU2VydmljZSBBOjpTdWJTZXJ2aWNlIDEiLAogICAgICAgIDIgPT4gIlNlcnZpY2UgQiIKICAgIF0sCgo9Y3V0CgpzdWIgU2VydmljZXNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlU2VydmljZSA9ICgpOwoKICAgICMgZ2V0IHNlcnZpY2UKICAgIGlmICggKCAkUGFyYW17UXVldWVJRH0gfHwgJFBhcmFte1RpY2tldElEfSApICYmICRQYXJhbXtDdXN0b21lclVzZXJJRH0gKSB7CiAgICAgICAgJVNlcnZpY2UgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlcnZpY2VMaXN0KAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIEFjdGlvbiA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gXCVTZXJ2aWNlOwp9Cgo9aXRlbSBTTEFzR2V0KCkKR2V0IGEgSGFzaCByZWZlcmVuY2UgdG8gYWxsIHBvc3NpYmxlIFNMQXMgYmFzZWQgb24gYSBTZXJ2aWNlCgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlNMQXNHZXQoCiAgICAgICAgU2VydmljZUlEICAgICAgID0+IDEsCiAgICAgICAgUXVldWVJRCAgICAgICAgID0+IDMsICAjfHwgVGlja2VUSUQgb3B0aW9uYWwKICAgICAgICBUaWNrZXRJRCAgICAgICAgPT4gMjIzICN8fCBRdWV1ZUlEIG9wdGlvbmFsCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICApOwoKICAgICMgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gWwogICAgICAgIDEgPT4gIlNMQSBHb2xkIGZvciBTZXJ2aWNlIEEiLAogICAgICAgIDMgPT4gIlNMQSBTaWx2ZXIgZm9yIFNlcnZpY2UgQSIsCiAgICBdLAoKPWN1dAoKc3ViIFNMQXNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlU0xBID0gKCk7CgogICAgIyBnZXQgc2xhCiAgICBpZiAoICRQYXJhbXtTZXJ2aWNlSUR9ICkgewogICAgICAgICVTTEEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNMQUxpc3QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQWN0aW9uID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiBcJVNMQTsKfQoKPWl0ZW0gVXNlcnNHZXQoKQpHZXQgYSBIYXNoIHJlZmVyZW5jZSB0byBhbGwgdXNlcnMgdGhhdCBoYXZlIHJpZ2h0cyBvbiBhIFF1ZXVlIG9yIHRoZSBzc2VycyB0aGF0IGhhdmUgdGhhdCBxdWV1ZSBpbgp0aGUgIk15IFF1ZXVlcyIgbGlzdAoKICAgIG15ICRSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Vc2Vyc0dldCgKICAgICAgICBRdWV1ZUlEICAgICAgICAgPT4gMywKICAgICAgICBBbGxVc2VycyAgICAgICAgPT4gMSAjIE9wdGlvbmFsLCBUbyBnZXQgdGhlIGNvbXBsZXRlIGxpc3Qgb2YgdXNlcnMgd2l0aCByaWdodHMgaW4gdGhlIHF1ZXVlCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICApOwoKICAgICMgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gWwogICAgICAgIDEgICAgPT4gIk9UUlMgQWRtaW4gKHJvb3RAbG9jYWxob3N0KSIsCiAgICAgICAgMTEzOCA9PiAiQW15IEFsbGVuIChBYXlsYSkgIgogICAgXSwKCj1jdXQKCnN1YiBVc2Vyc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHVzZXJzCiAgICBteSAlU2hvd25Vc2VycyAgICAgICA9ICgpOwogICAgbXkgJUFsbEdyb3Vwc01lbWJlcnMgPSAkU2VsZi0+e1VzZXJPYmplY3R9LT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMSwKICAgICk7CgogICAgIyBqdXN0IHNob3cgb25seSB1c2VycyB3aXRoIHNlbGVjdGVkIGN1c3RvbSBxdWV1ZQogICAgaWYgKCAkUGFyYW17UXVldWVJRH0gJiYgISRQYXJhbXtBbGxVc2Vyc30gKSB7CiAgICAgICAgbXkgQFVzZXJJRHMgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkdldFN1YnNjcmliZWRVc2VySURzQnlRdWV1ZUlEKCVQYXJhbSk7CiAgICAgICAgZm9yICggc29ydCBrZXlzICVBbGxHcm91cHNNZW1iZXJzICkgewogICAgICAgICAgICBteSAkSGl0ID0gMDsKICAgICAgICAgICAgZm9yIG15ICRVSUQgKEBVc2VySURzKSB7CiAgICAgICAgICAgICAgICBpZiAoICRVSUQgZXEgJF8gKSB7CiAgICAgICAgICAgICAgICAgICAgJEhpdCA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAhJEhpdCApIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkQWxsR3JvdXBzTWVtYmVyc3skX307CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBzaG93IGFsbCBzeXN0ZW0gdXNlcnMKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6Q2hhbmdlT3duZXJUb0V2ZXJ5b25lJykgKSB7CiAgICAgICAgJVNob3duVXNlcnMgPSAlQWxsR3JvdXBzTWVtYmVyczsKICAgIH0KCiAgICAjIHNob3cgYWxsIHVzZXJzIHdobyBhcmUgcncgaW4gdGhlIHF1ZXVlIGdyb3VwCiAgICBlbHNpZiAoICRQYXJhbXtRdWV1ZUlEfSApIHsKICAgICAgICBteSAkR0lEID0gJFNlbGYtPntRdWV1ZU9iamVjdH0tPkdldFF1ZXVlR3JvdXBJRCggUXVldWVJRCA9PiAkUGFyYW17UXVldWVJRH0gKTsKICAgICAgICBteSAlTWVtYmVyTGlzdCA9ICRTZWxmLT57R3JvdXBPYmplY3R9LT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdJRCwKICAgICAgICAgICAgVHlwZSAgICA9PiAncncnLAogICAgICAgICAgICBSZXN1bHQgID0+ICdIQVNIJywKICAgICAgICAgICAgQ2FjaGVkICA9PiAxLAogICAgICAgICk7CiAgICAgICAgZm9yICggc29ydCBrZXlzICVNZW1iZXJMaXN0ICkgewogICAgICAgICAgICBpZiAoICRBbGxHcm91cHNNZW1iZXJzeyRffSApIHsKICAgICAgICAgICAgICAgICRTaG93blVzZXJzeyRffSA9ICRBbGxHcm91cHNNZW1iZXJzeyRffTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVNob3duVXNlcnM7Cn0KCj1pdGVtIE5leHRTdGF0ZXNHZXQoKQpHZXQgYSBIYXNoIHJlZmVyZW5jZSB0byBhbGwgcG9zc2libGUgc3RhdGVzIGJhc2VkIG9uIGEgVGlja2V0IG9yIFF1ZXVlCgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPk5leHRTdGF0ZXNHZXQoCiAgICAgICAgUXVldWVJRCAgICAgICAgID0+IDMsICAjfHwgVGlja2VUSUQgb3B0aW9uYWwKICAgICAgICBUaWNrZXRJRCAgICAgICAgPT4gMjIzICN8fCBRdWV1ZUlEIG9wdGlvbmFsCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICApOwoKICAgICMgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gWwogICAgICAgIDEgID0+ICJuZXciLAogICAgICAgIDIgID0+ICJjbG9zZWQgc3VjY2Vzc2Z1bCIsCiAgICAgICAgMyAgPT4gImNsb3NlZCB1bnN1Y2Nlc3NmdWwiLAogICAgICAgIDQgID0+ICJvcGVuIiwKICAgICAgICA1ICA9PiAicmVtb3ZlZCIKICAgICAgICA2ICA9PiAicGVuZGluZyByZW1pbmRlciIsCiAgICAgICAgNyAgPT4gInBlbmRpbmcgYXV0byBjbG9zZSsiLAogICAgICAgIDggID0+ICJwZW5kaW5nIGF1dG8gY2xvc2UtIiwKICAgICAgICA5ICA9PiAibWVyZ2VkIiwKICAgICAgICAxMCA9PiAiY2xvc2VkIHdpdGggd29ya2Fyb3VuZCIsCiAgICBdLAoKPWN1dAoKc3ViIE5leHRTdGF0ZXNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlTmV4dFN0YXRlcyA9ICgpOwogICAgaWYgKCAkUGFyYW17UXVldWVJRH0gfHwgJFBhcmFte1RpY2tldElEfSApIHsKICAgICAgICAlTmV4dFN0YXRlcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+U3RhdGVMaXN0KAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIEFjdGlvbiA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gXCVOZXh0U3RhdGVzOwp9Cgo9aXRlbSBQcmlvcml0aWVzR2V0KCkKR2V0IGEgSGFzaCByZWZlcmVuY2UgdG8gYWxsIHBvc3NpYmxlIHByaW9yaXRpZXMKCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+UHJpb3JpdGllc0dldCgKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgMSA9PiAiMSB2ZXJ5IGxvdyIsCiAgICAgICAgMiA9PiAiMiBsb3ciLAogICAgICAgIDMgPT4gIjMgbm9ybWFsIiwKICAgICAgICA0ID0+ICI0IGhpZ2giLAogICAgICAgIDUgPT4gIjUgdmVyeSBoaWdoIiwKICAgIF0sCgo9Y3V0CgpzdWIgUHJpb3JpdGllc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVQcmlvcml0aWVzID0gKCk7CgogICAgIyBnZXQgcHJpb3JpdHkKICAgICVQcmlvcml0aWVzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Qcmlvcml0eUxpc3QoCiAgICAgICAgJVBhcmFtLAogICAgICAgIEFjdGlvbiA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiBcJVByaW9yaXRpZXM7Cn0KCj1pdGVtIEN1c3RvbWVyU2VhcmNoKCkKR2V0IGEgSGFzaCByZWZlcmVuY2UgdG8gYWxsIHBvc3NpYmxlIGN1c3RvbWVycyBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoCnBhcmFtZXRlciwgdXNlICIqIiBmb3IgYWxsLgoKICAgIG15ICRSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5DdXN0b21lclNlYXJjaCgKICAgICAgICBTZWFyY2ggICAgICAgICAgPT4gJ3N3JywKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgUmF5ICAgPT4gJyJSYXkgUGFyayIgPHJwQHN3LmNvbT4nLAogICAgICAgIERhdmlkID0+ICciRGF2aWQgUHJvd3NlIiA8ZHBAc3cuY29tPicsCiAgICBdLAoKPWN1dAoKc3ViIEN1c3RvbWVyU2VhcmNoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgQXV0b0NvbXBsZXRlIHNldHRpbmdzIGZvcm0gY29uZmlnCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnQXV0b0NvbXBsZXRlOjpBZ2VudCcpLT57RGVmYXVsdH07CgogICAgbXkgJUN1c3RvbWVyczsKCiAgICAjIHNlYXJjaCBvbmx5IGlmIHRoZSBzZWFyY2ggc3RyaW5nIGlzIGF0IGxlYXN0IGFzIGxvbmcgYXMgdGhlIE1pbmltdW0gUXVlcnkgTGVuZ2h0CiAgICBpZiAoIGxlbmd0aCggJFBhcmFte1NlYXJjaH0gKSA+PSAkU2VsZi0+e0NvbmZpZ30tPntNaW5RdWVyeUxlbmd0aH0gKSB7CiAgICAgICAgJUN1c3RvbWVycyA9ICRTZWxmLT57Q3VzdG9tZXJVc2VyT2JqZWN0fS0+Q3VzdG9tZXJTZWFyY2goCiAgICAgICAgICAgIFNlYXJjaCA9PiAkUGFyYW17U2VhcmNofSwKICAgICAgICApOwogICAgfQogICAgcmV0dXJuIFwlQ3VzdG9tZXJzOwp9Cgo9aXRlbSBTY3JlZW5BY3Rpb25zKCkKUGVyZm9ybXMgYSB0aWNrZXQgYWN0aW9uIChBY3Rpb25zIGluY2x1ZGUgUGhvbmUsIE5vdGUsIENsb3NlLCBDb21wb3NlIG9yIE1vdmUpCgpQaG9uZSAgIChOZXcgcGhvbmUgdGlja2V0KQpOb3RlICAgIChBZGQgYSBub3RlIHRvIGEgVGlja2V0KQpDbG9zZSAgIChDbG9zZSBhIHRja2V0KQpDb21wb3NlIChSZXBseSBvciByZXNwb25zZSBhIHRpY2tldCkKTW92ZSAgICAoQ2hhbmdlIHRpY2tldCBxdWV1ZSkKClRoZSBhcmd1bWVudHMgdGFrZW4gZGVwZW5kIG9uIHRoZSByZXN1bHRzIG9mIFNjcmVlbkNvbmZpZygpCgpUaGUgcmVzdWx0IGlzIHRoZSBUaWNrZXRJRCBmb3IgQWN0aW9uIFBob25lIG9yIEFydGljbGVJRCBmb3IgdGhlIG90aGVyIGFjdGlvbnMKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U2NyZWVuQWN0aW9ucygKICAgICAgICBBY3Rpb24gICAgICAgICAgICAgID0+ICJQaG9uZSIsCiAgICAgICAgU3ViamVjdCAgICAgICAgICAgICA9PiAiaVBob25lIFRpY2tldCIsCiAgICAgICAgQ3VzdG9tZXJJRCAgICAgICAgICA9PiAib3RycyIsCiAgICAgICAgQm9keSAgICAgICAgICAgICAgICA9PiAiTXkgZmlzcnQgaVBob25lIHRpY2tldCIsCiAgICAgICAgQ3VzdG9tZXJVc2VyTG9naW4gICA9PiAiQWF5bGEiLAogICAgICAgIFRpbWVVbml0cyAgICAgICAgICAgPT4gMTIzLAogICAgICAgIFF1ZXVlSUQgICAgICAgICAgICAgPT4gMywKICAgICAgICBPd25lcklEICAgICAgICAgICAgID0+IDIzLAogICAgICAgIFJlc3BvbnNpbGJlSUQgICAgICAgPT4gNDUsCiAgICAgICAgU3RhdGVJRCAgICAgICAgICAgICA9PiA0LAogICAgICAgIFBlbmRpbmdEYXRlICAgICAgICAgPT4iMjAxMC0wNy0wOSAyMzo1NDoxOCIsCiAgICAgICAgUHJpb3JpdHlJRCAgICAgICAgICA9PiAxLAogICAgICAgIER5YW5taWNGaWVsZF9OYW1lWCAgPT4gJ3NvbWUgdmFsdWUnLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoIDIyNCApOwoKPWN1dAoKc3ViIFNjcmVlbkFjdGlvbnMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlVXNlclByZWZlcmVuY2VzID0gJFNlbGYtPntVc2VyT2JqZWN0fS0+R2V0UHJlZmVyZW5jZXMoIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSApOwogICAgJFNlbGYtPntVc2VyVGltZVpvbmV9ID0gJFVzZXJQcmVmZXJlbmNlc3tVc2VyVGltZVpvbmV9OwoKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpbWVab25lVXNlcicpICYmICRTZWxmLT57VXNlclRpbWVab25lfSApIHsKICAgICAgICAkU2VsZi0+e1VzZXJUaW1lT2JqZWN0fSA9IEtlcm5lbDo6U3lzdGVtOjpUaW1lLT5uZXcoICV7JFNlbGZ9ICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+e1VzZXJUaW1lT2JqZWN0fSA9ICRTZWxmLT57VGltZU9iamVjdH07CiAgICAgICAgJFNlbGYtPntVc2VyVGltZVpvbmV9ICAgPSAnJzsKICAgIH0KCiAgICAkUGFyYW17VXNlclRpbWVab25lfSA9ICRTZWxmLT57VXNlclRpbWVab25lfTsKCiAgICBpZiAoICRQYXJhbXtBY3Rpb259ICkgewogICAgICAgIG15ICRSZXN1bHQ7CiAgICAgICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnUGhvbmUnICkgewogICAgICAgICAgICAkUmVzdWx0ID0gJFNlbGYtPl9UaWNrZXRQaG9uZU5ldyglUGFyYW0pOwogICAgICAgICAgICBpZiAoJFJlc3VsdCkgewogICAgICAgICAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdOb3RlJyB8fCAkUGFyYW17QWN0aW9ufSBlcSAnQ2xvc2UnICkgewogICAgICAgICAgICAkUmVzdWx0ID0gJFNlbGYtPl9UaWNrZXRDb21tb25BY3Rpb25zKCVQYXJhbSk7CiAgICAgICAgICAgIGlmICgkUmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ0NvbXBvc2UnICkgewogICAgICAgICAgICAkUmVzdWx0ID0gJFNlbGYtPl9UaWNrZXRDb21wb3NlKCVQYXJhbSk7CiAgICAgICAgICAgIGlmICgkUmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ01vdmUnICkgewogICAgICAgICAgICAkUmVzdWx0ID0gJFNlbGYtPl9UaWNrZXRNb3ZlKCVQYXJhbSk7CiAgICAgICAgICAgIGlmICgkUmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnQWN0aW9uIHVuZGVmaW5lZCEgZXhwZWN0ZWQgUGhvbmUsIE5vdGUsIENsb3NlLCBDb21wb3NlIG9yIE1vdmUsICcKICAgICAgICAgICAgICAgIC4gJ2J1dCAnIC4gJFBhcmFte0FjdGlvbn0gLiAnIGZvdW5kJywKICAgICAgICApOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTm8gQWN0aW9uIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uJywKICAgICAgICApOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KfQoKPWl0ZW0gVmVyc2lvbkdldCgpCkdldCBhIEhhc2ggcmVmZXJlbmNlIHdpdGggaW5mb3JtYXRpb24gYWJvdXQgdGhlIG90cnMgaVBob25lIFBhY2thZ2UgZXh0ZW5zaW9uCgogICAgbXkgJFJlc3V0ID0gJGlQaG9uZU9iamVjdC0+VmVyc2lvbkdldCgKICAgICAgICBVc2VySUQgPT4gMTsKICAgICk7CgogICAgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gWwogICAgICAgIE5hbWUgICAgPT4gImlQaG9uZUhhbmRsZSIKICAgICAgICBWZXJzaW9uID0+ICIwLjkuMiIsCiAgICAgICAgVmVuZG9yICA9PiAiT1RSUyBBRyIsCiAgICAgICAgVVJMICAgICA9PiAiTDxodHRwOi8vb3Rycy5vcmcvPiIsCiAgICBdOwoKPWN1dAoKc3ViIFZlcnNpb25HZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05vIFVzZXJJRCBnaXZlbiEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gLTE7CiAgICB9CgogICAgIyBnZXQgaG9tZSBwYXRoCiAgICBteSAkSG9tZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdIb21lJyk7CgogICAgIyBsb2FkIFJFTEVBU0UgZmlsZQogICAgaWYgKCAtZSAhIiRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSIgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFUlJPUjogJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIGRvZXMgbm90IGV4aXN0ISBUaGlzIGZpbGUgaXMiCiAgICAgICAgICAgICAgICAuICIgbmVlZGVkIGJ5IGlQaG9uZUhhbmRsZSwgdGhlIHN5c3RlbSB3aWxsIG5vdCB3b3JrIHdpdGhvdXQgdGhpcyBmaWxlLlxuIiwKICAgICAgICApOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KICAgIG15ICRQYWNrYWdlTmFtZTsKICAgIG15ICRQYWNrYWdlVmVyc2lvbjsKCiAgICAjIHJlYWQgUkVMRUFTRSBmaWxlIGFuZCBzdG9yZSBpdCBhcyBhbiBhcnJheSByZWZlcmVuY2UKICAgIG15ICRQcm9kdWN0ID0gJFNlbGYtPntNYWluT2JqZWN0fS0+RmlsZVJlYWQoCiAgICAgICAgTG9jYXRpb24gPT4gIiRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSIsCiAgICAgICAgUmVzdWx0ICAgPT4gIkFSUkFZIiwKICAgICk7CgogICAgIyBzZW5kIGFuZCBlcnJvciBpZiBSRUxFQVNFIGZpbGUgd2FzIG5vdCByZWFkCiAgICBpZiAoICEkUHJvZHVjdCApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVSUk9SOiBDYW4ndCByZWFkICRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSEgVGhpcyBmaWxlIGlzIgogICAgICAgICAgICAgICAgLiAiIG5lZWRlZCBieSBpUGhvbmVIYW5kbGUsIHRoZSBzeXN0ZW0gd2lsbCBub3Qgd29yayB3aXRob3V0IHRoaXMgZmlsZS5cbiIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gLTE7CiAgICB9CgogICAgIyBnZXQgUGFja2FnZU5hbWUgYW5kIFBhY2thZ2VWZXJzaW9uIGZyb20gUkVMRUFTRSBmaWxlCiAgICBmb3IgbXkgJExpbmUgKCBAeyRQcm9kdWN0fSApIHsKCiAgICAgICAgIyBmaWx0ZXJpbmcgb2YgY29tbWVudCBsaW5lcwogICAgICAgIGlmICggJExpbmUgIX4gbXtcQSBcI31tc3ggKSB7CiAgICAgICAgICAgIGlmICggJExpbmUgPX4gbXtcQSBQUk9EVUNUIFxzezAsMn0gPSBcc3swLDJ9ICguKikgXHN7MCwyfSBcen1tc3hpICkgewogICAgICAgICAgICAgICAgJFBhY2thZ2VOYW1lID0gJDE7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzaWYgKCAkTGluZSA9fiBte1xBIFZFUlNJT04gXHN7MCwyfSA9IFxzezAsMn0gKC4qKSBcc3swLDJ9IFx6fW1zeGkgKSB7CiAgICAgICAgICAgICAgICAkUGFja2FnZVZlcnNpb24gPSAkMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gewogICAgICAgIE5hbWUgICAgICA9PiAkUGFja2FnZU5hbWUsCiAgICAgICAgVmVyc2lvbiAgID0+ICRQYWNrYWdlVmVyc2lvbiwKICAgICAgICBWZW5kb3IgICAgPT4gJ09UUlMgQUcnLAogICAgICAgIFVSTCAgICAgICA9PiAnaHR0cDovL290cnMub3JnLycsCiAgICAgICAgRnJhbWV3b3JrID0+ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdWZXJzaW9uJyksCiAgICB9Owp9Cgo9aXRlbSBDdXN0b21lcklER2V0KCkKR2V0IHRoZSBDdXN0b21lciBJRCBmcm9tIGEgZ2l2ZW4gY3VzdG9tZXIgbG9naW4KCiAgICBteSAkUmVzdXQgPSAkaVBob25lT2JqZWN0LT5DdXN0b21lcklER2V0KAogICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICJEYXZpZCI7CiAgICApOwoKICAgIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgJFJlc3VsdCA9ICJzdyIKCj1jdXQKCnN1YiBDdXN0b21lcklER2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBmb3IgcGFyYW1ldGVycwogICAgaWYgKCAhJFBhcmFte0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05lZWQgQ3VzdG9tZXJVc2VySUQhJywKICAgICAgICApOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KICAgIG15ICRDdXN0b21lcklEOwoKICAgICMgZ2V0IGN1c3RvbWVyIGRhdGEKICAgIG15ICVDdXN0b21lclVzZXJEYXRhID0gJFNlbGYtPntDdXN0b21lclVzZXJPYmplY3R9LT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgIFVzZXIgPT4gJFBhcmFte0N1c3RvbWVyVXNlcklEfSwKICAgICk7CiAgICBpZiAoICVDdXN0b21lclVzZXJEYXRhICYmICRDdXN0b21lclVzZXJEYXRhe1VzZXJDdXN0b21lcklEfSApIHsKICAgICAgICAkQ3VzdG9tZXJJRCA9ICRDdXN0b21lclVzZXJEYXRhe1VzZXJDdXN0b21lcklEfTsKICAgICAgICByZXR1cm4gJEN1c3RvbWVySUQ7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICByZXR1cm4gJyc7CiAgICB9Cn0KCj1pdGVtIEFydGljbGVJbmRleCgpCgpyZXR1cm5zIGFuIGFycmF5IHdpdGggYXJ0aWNsZSBpZCdzIG9yICcnIGlmIHRpY2tldCBoYXMgbm8gYXJ0aWNsZXMKCiAgICBteSBAQXJ0aWNsZUlEcyA9ICRpUGhvbmVPYmplY3QtPkFydGljbGVJbmRleCgKICAgICAgICBUaWNrZXRJRCA9PiAxMjMsCiAgICApOwoKICAgIG15IEBBcnRpY2xlSURzID0gJGlQaG9uZU9iamVjdC0+QXJ0aWNsZUluZGV4KAogICAgICAgIFNlbmRlclR5cGUgPT4gJ2N1c3RvbWVyJywKICAgICAgICBUaWNrZXRJRCAgID0+IDEyMywKICAgICk7Cgo9Y3V0CgpzdWIgQXJ0aWNsZUluZGV4IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQEluZGV4ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlSW5kZXgoJVBhcmFtKTsKCiAgICByZXR1cm4gQEluZGV4Owp9Cgo9aXRlbSBJbml0Q29uZmlnR2V0KCkKCnJldHVybnMgYSBoYXNoIHJlZmVyZW5jZSB3aXRoIGluaXRpYWwgY29uZmlndXJhdGlvbiByZXF1aXJlZCBieSB0aGUgaVBob25lIGFwcAoKICAgIG15ICRSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Jbml0Q29uZmlnR2V0KAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgVGlja2V0UmVzcG9uc2libGUgICAgICAgICAgPT4gMSwKICAgICAgICBUaWNrZXRXYXRjaGVyICAgICAgICAgICAgICA9PiAxLAogICAgICAgIEN1cnJlbnRUaW1lc3RhbXAgICAgICAgICAgID0+ICIyMDEwLTEwLTI2IDExOjUzOjM1IiwKICAgICAgICBWZXJzaW9uR2V0ICAgICAgICAgICAgICAgICA9PiB7CiAgICAgICAgICAgIFVSTCAgICAgICA9PiAiaHR0cDovL290cnMub3JnLyIsCiAgICAgICAgICAgIEZyYW1ld29yayA9PiAiMy4zLnggZ2l0IiwKICAgICAgICAgICAgVmVyc2lvbiAgID0+ICIwLjkuNiIsCiAgICAgICAgICAgIFZlbmRvciAgICA9PiAiT1RSUyBBRyIsCiAgICAgICAgICAgIE5hbWUgICAgICA9PiAiaVBob25lSGFuZGxlIgogICAgICAgIH0sCiAgICAgICAgQ3VzdG9tZXJTZWFyY2hBdXRvQ29tcGxldGUgPT4gewogICAgICAgICAgICBRdWVyeURlbGF5ICAgICAgICAgID0+IDAuMSwKICAgICAgICAgICAgQWN0aXZlICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBNYXhSZXN1bHRzRGlzcGxheWVkID0+IDIwLAogICAgICAgICAgICBUeXBlQWhlYWQgICAgICAgICAgID0+IGZhbHNlLAogICAgICAgICAgICBNaW5RdWVyeUxlbmd0aCAgICAgID0+IDMsCiAgICAgICAgfSwKICAgICAgICBEZWZhdWx0Q2hhcnNldCAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgXTsKCj1jdXQKCnN1YiBJbml0Q29uZmlnR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte1VzZXJJRH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdObyBVc2VySUQgZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQoKICAgIG15ICVJbml0Q29uZmlnOwoKICAgICRJbml0Q29uZmlne1RpY2tldFdhdGNoZXJ9ICAgICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OldhdGNoZXInKTsKICAgICRJbml0Q29uZmlne1RpY2tldFJlc3BvbnNpYmxlfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OlJlc3BvbnNpYmxlJyk7CiAgICAkSW5pdENvbmZpZ3tEZWZhdWx0Q2hhcnNldH0gICAgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRGVmYXVsdENoYXJzZXQnKTsKICAgICRJbml0Q29uZmlne0N1c3RvbWVyU2VhcmNoQXV0b0NvbXBsZXRlfQogICAgICAgID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0F1dG9Db21wbGV0ZTo6QWdlbnQnKS0+e0RlZmF1bHR9OwogICAgJEluaXRDb25maWd7Q3VycmVudFRpbWVzdGFtcH0gPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5DdXJyZW50VGltZXN0YW1wKCk7CiAgICAkSW5pdENvbmZpZ3tWZXJzaW9uR2V0fSAgICAgICA9ICRTZWxmLT5WZXJzaW9uR2V0KCVQYXJhbSk7CgogICAgcmV0dXJuIFwlSW5pdENvbmZpZzsKfQoKIyBpbnRlcm5hbCBzdWJyb3V0aW5lcwoKc3ViIF9HZXRUeXBlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVUeXBlID0gKCk7CgogICAgIyBnZXQgdHlwZQogICAgJVR5cGUgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFR5cGVMaXN0KAogICAgICAgICVQYXJhbSwKICAgICAgICBBY3Rpb24gPT4gJFBhcmFte0FjdGlvbn0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKICAgIHJldHVybiBcJVR5cGU7Cn0KCnN1YiBfR2V0VG9zIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBvd24gc2VsZWN0aW9uCiAgICBteSAlTmV3VG9zID0gKCk7CiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+eydUaWNrZXQ6OkZyb250ZW5kOjpOZXdRdWV1ZU93blNlbGVjdGlvbid9ICkgewogICAgICAgICVOZXdUb3MgPSAleyAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPnsnVGlja2V0OjpGcm9udGVuZDo6TmV3UXVldWVPd25TZWxlY3Rpb24nfSB9OwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgU2VsZWN0aW9uVHlwZSBRdWV1ZSBvciBTeXN0ZW1BZGRyZXNzPwogICAgICAgIG15ICVUb3MgPSAoKTsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpOZXdRdWV1ZVNlbGVjdGlvblR5cGUnKSBlcSAnUXVldWUnICkgewogICAgICAgICAgICAlVG9zID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Nb3ZlTGlzdCgKICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ2NyZWF0ZScsCiAgICAgICAgICAgICAgICBBY3Rpb24gID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgICAgICAgICAgUXVldWVJRCA9PiAkUGFyYW17UXVldWVJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJVRvcyA9ICRTZWxmLT57REJPYmplY3R9LT5HZXRUYWJsZURhdGEoCiAgICAgICAgICAgICAgICBUYWJsZSA9PiAnc3lzdGVtX2FkZHJlc3MnLAogICAgICAgICAgICAgICAgV2hhdCAgPT4gJ3F1ZXVlX2lkLCBpZCcsCiAgICAgICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICAgICAgQ2xhbXAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGNyZWF0ZSBwZXJtaXNzaW9uIHF1ZXVlcwogICAgICAgIG15ICVVc2VyR3JvdXBzID0gJFNlbGYtPntHcm91cE9iamVjdH0tPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBUeXBlICAgPT4gJ2NyZWF0ZScsCiAgICAgICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICAgICAgICAgIENhY2hlZCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgYnVpbGQgc2VsZWN0aW9uIHN0cmluZwogICAgICAgIGZvciBteSAkUXVldWVJRCAoIHNvcnQga2V5cyAlVG9zICkgewogICAgICAgICAgICBteSAlUXVldWVEYXRhID0gJFNlbGYtPntRdWV1ZU9iamVjdH0tPlF1ZXVlR2V0KCBJRCA9PiAkUXVldWVJRCApOwoKICAgICAgICAgICAgIyBwZXJtaXNzaW9uIGNoZWNrLCBjYW4gd2UgY3JlYXRlIG5ldyB0aWNrZXRzIGluIHF1ZXVlCiAgICAgICAgICAgIG5leHQgaWYgISRVc2VyR3JvdXBzeyAkUXVldWVEYXRhe0dyb3VwSUR9IH07CgogICAgICAgICAgICBteSAkU3RyaW5nID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Ok5ld1F1ZXVlU2VsZWN0aW9uU3RyaW5nJykKICAgICAgICAgICAgICAgIHx8ICc8UmVhbG5hbWU+IDw8RW1haWw+PiAtIFF1ZXVlOiA8UXVldWU+JzsKICAgICAgICAgICAgJFN0cmluZyA9fiBzLzxRdWV1ZT4vJFF1ZXVlRGF0YXtOYW1lfS9nOwogICAgICAgICAgICAkU3RyaW5nID1+IHMvPFF1ZXVlQ29tbWVudD4vJFF1ZXVlRGF0YXtDb21tZW50fS9nOwogICAgICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpOZXdRdWV1ZVNlbGVjdGlvblR5cGUnKSBuZSAnUXVldWUnICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbXkgJVN5c3RlbUFkZHJlc3NEYXRhID0gJFNlbGYtPntTeXN0ZW1BZGRyZXNzfS0+U3lzdGVtQWRkcmVzc0dldCgKICAgICAgICAgICAgICAgICAgICBJRCA9PiAkVG9zeyRRdWV1ZUlEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkU3RyaW5nID1+IHMvPFJlYWxuYW1lPi8kU3lzdGVtQWRkcmVzc0RhdGF7UmVhbG5hbWV9L2c7CiAgICAgICAgICAgICAgICAkU3RyaW5nID1+IHMvPEVtYWlsPi8kU3lzdGVtQWRkcmVzc0RhdGF7TmFtZX0vZzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkTmV3VG9zeyRRdWV1ZUlEfSA9ICRTdHJpbmc7CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIGVtcHR5IHNlbGVjdGlvbgogICAgJE5ld1Rvc3snJ30gPSAnLSc7CiAgICByZXR1cm4gXCVOZXdUb3M7Cn0KCnN1YiBfR2V0Tm90ZVR5cGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJURlZmF1bHROb3RlVHlwZXMgPSAleyAkU2VsZi0+e0NvbmZpZ30tPntBcnRpY2xlVHlwZXN9IH07CgogICAgbXkgJU5vdGVUeXBlcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZVR5cGVMaXN0KCBSZXN1bHQgPT4gJ0hBU0gnICk7CiAgICBmb3IgKCBzb3J0IGtleXMgJU5vdGVUeXBlcyApIHsKICAgICAgICBpZiAoICEkRGVmYXVsdE5vdGVUeXBlc3sgJE5vdGVUeXBlc3skX30gfSApIHsKICAgICAgICAgICAgZGVsZXRlICROb3RlVHlwZXN7JF99OwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJU5vdGVUeXBlczsKfQoKc3ViIF9HZXRTY3JlZW5FbGVtZW50cyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBTY3JlZW5FbGVtZW50czsKCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1RpdGxlfSApIHsKICAgICAgICBteSAlVGlja2V0RGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0R2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgIG15ICRUaXRsZURlZmF1bHQ7CiAgICAgICAgaWYgKCAkVGlja2V0RGF0YXtUaXRsZX0gKSB7CiAgICAgICAgICAgICRUaXRsZURlZmF1bHQgPSAkVGlja2V0RGF0YXtUaXRsZX0gfHwgJyc7CiAgICAgICAgfQoKICAgICAgICBteSAkVGl0bGVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdUaXRsZScsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdUaXRsZScpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3VHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyMDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJFRpdGxlRGVmYXVsdCB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkVGl0bGVFbGVtZW50czsKICAgIH0KCiAgICAjIHR5cGUKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6VHlwZScpICYmICRTZWxmLT57Q29uZmlnfS0+e1RpY2tldFR5cGV9ICkgewogICAgICAgIG15ICRUeXBlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdUeXBlSUQnLAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdUeXBlJyksCiAgICAgICAgICAgIERhdGF0eXBlID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE9wdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgICV7CiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPl9HZXRUeXBlcygKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFR5cGVFbGVtZW50czsKICAgIH0KCiAgICAjIGZyb20sIHRvCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgKSB7CiAgICAgICAgbXkgJEN1c3RvbWVyRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdDdXN0b21lclVzZXJMb2dpbicsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ0Zyb20gY3VzdG9tZXInKSwKICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAnQXV0b0NvbXBsZXRpb24nLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnQ3VzdG9tZXJTZWFyY2gnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggPT4gJ0N1c3RvbWVyVXNlckxvZ2luJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgQXV0b0ZpbGxFbGVtZW50cyA9PiBbCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRWxlbWVudE5hbWUgPT4gJ0N1c3RvbWVySUQnLAogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgID0+ICdDdXN0b21lcklER2V0JywKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICdDdXN0b21lclVzZXJMb2dpbicsCiAgICAgICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIF0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJEN1c3RvbWVyRWxlbWVudHM7CiAgICB9CgogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnUGhvbmUnIHx8ICRQYXJhbXtTY3JlZW59IGVxICdNb3ZlJyApIHsKICAgICAgICBteSAkVGl0bGU7CiAgICAgICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnUGhvbmUnICkgewogICAgICAgICAgICAkVGl0bGUgPSAnVG8gcXVldWUnOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJFRpdGxlID0gJ05ldyBRdWV1ZScKICAgICAgICB9CiAgICAgICAgbXkgJFF1ZXVlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgVGl0bGUgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgkVGl0bGUpLAogICAgICAgICAgICBEYXRhdHlwZSA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlID0+ICdQaWNrZXInLAogICAgICAgICAgICBPcHRpb25zICA9PiB7CiAgICAgICAgICAgICAgICAlewogICAgICAgICAgICAgICAgICAgICRTZWxmLT5fR2V0VG9zKAogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkUXVldWVFbGVtZW50czsKICAgIH0KCiAgICAjIHNlcnZpY2UKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6U2VydmljZScpICYmICRTZWxmLT57Q29uZmlnfS0+e1NlcnZpY2V9ICkgewogICAgICAgIG15ICRTZXJ2aWNlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdTZXJ2aWNlSUQnLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdTZXJ2aWNlJyksCiAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTZXJ2aWNlc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICdDdXN0b21lclVzZXJMb2dpbicsCiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgICAgICAgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJ1RpY2tldElEJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkU2VydmljZUVsZW1lbnRzOwogICAgfQoKICAgICMgc2xhCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OlNlcnZpY2UnKSAmJiAkU2VsZi0+e0NvbmZpZ30tPntTZXJ2aWNlfSApIHsKICAgICAgICBteSAkU0xBRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdTTEFJRCcsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1NMQScpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdQaWNrZXInLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnU0xBc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICdDdXN0b21lclVzZXJMb2dpbicsCiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgICAgICAgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgU2VydmljZUlEICAgICAgPT4gJ1NlcnZpY2VJRCcsCiAgICAgICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgID0+ICdUaWNrZXRJRCcsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFNMQUVsZW1lbnRzOwogICAgfQoKICAgICMgb3duZXIKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57T3duZXJ9ICkgewogICAgICAgIG15ICRUaXRsZTsKICAgICAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdNb3ZlJyApIHsKICAgICAgICAgICAgJFRpdGxlID0gJ05ldyBPd25lcic7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkVGl0bGUgPSAnT3duZXInOwogICAgICAgIH0KCiAgICAgICAgbXkgJE93bmVyRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdPd25lcklEJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgkVGl0bGUpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdQaWNrZXInLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnVXNlcnNHZXQnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEICA9PiAnUXVldWVJRCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEFsbFVzZXJzID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJE93bmVyRWxlbWVudHM7CiAgICB9CgogICAgIyByZXNwb25zaWJsZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpSZXNwb25zaWJsZScpICYmICRTZWxmLT57Q29uZmlnfS0+e1Jlc3BvbnNpYmxlfSApIHsKICAgICAgICBteSAkUmVzcG9uc2libGVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1Jlc3BvbnNpYmxlSUQnLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdSZXNwb25zaWJsZScpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdQaWNrZXInLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnVXNlcnNHZXQnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEICA9PiAnUXVldWVJRCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEFsbFVzZXJzID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFJlc3BvbnNpYmxlRWxlbWVudHM7CiAgICB9CgogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnQ29tcG9zZScgKSB7CiAgICAgICAgbXkgJUNvbXBvc2VEZWZhdWx0cyA9ICRTZWxmLT5fR2V0Q29tcG9zZURlZmF1bHRzKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICk7CgogICAgICAgIGlmICggISVDb21wb3NlRGVmYXVsdHMgKSB7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIG15ICRDb21wb3NlRnJvbUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0Zyb20nLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnRnJvbScpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiA1MCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIFJlYWRvbmx5ICA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tGcm9tfSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQ29tcG9zZUZyb21FbGVtZW50czsKCiAgICAgICAgbXkgJENvbXBvc2VUb0VsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1RvJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1RvJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnRU1haWwnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICRDb21wb3NlRGVmYXVsdHN7VG99IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRDb21wb3NlVG9FbGVtZW50czsKCiAgICAgICAgbXkgJENvbXBvc2VDY0VsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0NjJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ0NjJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnRU1haWwnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICRDb21wb3NlRGVmYXVsdHN7Q2N9IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRDb21wb3NlQ2NFbGVtZW50czsKCiAgICAgICAgbXkgJENvbXBvc2VCY2NFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdCY2MnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnQmNjJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnRU1haWwnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICRDb21wb3NlRGVmYXVsdHN7QmNjfSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQ29tcG9zZUJjY0VsZW1lbnRzOwoKICAgICAgICBteSAkU3ViamVjdEVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1N1YmplY3QnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnU3ViamVjdCcpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tTdWJqZWN0fSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkU3ViamVjdEVsZW1lbnRzOwoKICAgICAgICBteSAkQm9keUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0JvZHknLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnVGV4dCcpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1RleHRBcmVhJywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyMF8wMDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tCb2R5fSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQm9keUVsZW1lbnRzOwogICAgfQoKICAgICMgc3ViamVjdAogICAgaWYgKCAkUGFyYW17U2NyZWVufSBuZSAnQ29tcG9zZScgKSB7CiAgICAgICAgbXkgJERlZmF1bHRTdWJqZWN0ID0gJyc7CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTdWJqZWN0fSApIHsKICAgICAgICAgICAgJERlZmF1bHRTdWJqZWN0ID0gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCggJFNlbGYtPntDb25maWd9LT57U3ViamVjdH0gKQogICAgICAgIH0KCiAgICAgICAgbXkgJFN1YmplY3RFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdTdWJqZWN0JywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1N1YmplY3QnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdJbnB1dCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMjUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICREZWZhdWx0U3ViamVjdCB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkU3ViamVjdEVsZW1lbnRzOwogICAgfQoKICAgICMgYm9keQogICAgaWYgKCAkUGFyYW17U2NyZWVufSBuZSAnQ29tcG9zZScgKSB7CiAgICAgICAgbXkgJEJvZHlFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdCb2R5JywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1RleHQnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdUZXh0QXJlYScsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMjBfMDAwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0JvZHl9IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRCb2R5RWxlbWVudHM7CiAgICB9CgogICAgIyBjdXN0b21lciBpZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntDdXN0b21lcklEfSApIHsKICAgICAgICBteSAkQ3VzdG9tZXJFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdDdXN0b21lcklEJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ0N1c3RvbWVySUQnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdJbnB1dCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMTUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRDdXN0b21lckVsZW1lbnRzOwogICAgfQoKICAgICNub3RlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e05vdGV9ICkgewoKICAgICAgICBteSAkRGVmYXVsdEFydGljbGVUeXBlOwogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57QXJ0aWNsZVR5cGVEZWZhdWx0fSApIHsKICAgICAgICAgICAgJERlZmF1bHRBcnRpY2xlVHlwZSA9ICRTZWxmLT57Q29uZmlnfS0+e0FydGljbGVUeXBlRGVmYXVsdH07CiAgICAgICAgfQoKICAgICAgICBteSAkRGVmYXVsdEFydGljbGVUeXBlSUQ7CiAgICAgICAgaWYgKCREZWZhdWx0QXJ0aWNsZVR5cGUpIHsKICAgICAgICAgICAgJERlZmF1bHRBcnRpY2xlVHlwZUlEID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlVHlwZUxvb2t1cCgKICAgICAgICAgICAgICAgIEFydGljbGVUeXBlID0+ICREZWZhdWx0QXJ0aWNsZVR5cGUsCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIG15ICROb3RlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdBcnRpY2xlVHlwZUlEJywKICAgICAgICAgICAgVGl0bGUgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnTm90ZSB0eXBlJyksCiAgICAgICAgICAgIERhdGF0eXBlID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE9wdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgICV7ICRTZWxmLT5fR2V0Tm90ZVR5cGVzKCAlUGFyYW0sICkgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICAgICAgPT4gJERlZmF1bHRBcnRpY2xlVHlwZUlEIHx8ICcnLAogICAgICAgICAgICBEZWZhdWx0T3B0aW9uID0+ICREZWZhdWx0QXJ0aWNsZVR5cGUgfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJE5vdGVFbGVtZW50czsKICAgIH0KCiAgICAjIHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlfSApIHsKCiAgICAgICAgbXkgJERlZmF1bHRTdGF0ZTsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlRGVmYXVsdH0gKSB7CiAgICAgICAgICAgICREZWZhdWx0U3RhdGUgPSAkU2VsZi0+e0NvbmZpZ30tPntTdGF0ZURlZmF1bHR9CiAgICAgICAgfQoKICAgICAgICBteSAkRGVmYXVsdFN0YXRlSUQ7CiAgICAgICAgaWYgKCREZWZhdWx0U3RhdGUpIHsKCiAgICAgICAgICAgICMgY2FuJ3QgdXNlIFN0YXRlTG9va3VwIGZvciAyLjQgZnJhbWV3b3JrIGNvbXBhdGliaWxpdHkKICAgICAgICAgICAgbXkgJVN0YXRlID0gJFNlbGYtPntTdGF0ZU9iamVjdH0tPlN0YXRlR2V0KAogICAgICAgICAgICAgICAgTmFtZSA9PiAkRGVmYXVsdFN0YXRlLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCVTdGF0ZSkgewogICAgICAgICAgICAgICAgJERlZmF1bHRTdGF0ZUlEID0gJFN0YXRle0lEfTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgbXkgJFN0YXRlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdTdGF0ZUlEJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnTmV4dCBUaWNrZXQgU3RhdGUnKSwKICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAnUGlja2VyJywKICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gJ05leHRTdGF0ZXNHZXQnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgICAgID0+ICREZWZhdWx0U3RhdGVJRCB8fCAnJywKICAgICAgICAgICAgRGVmYXVsdE9wdGlvbiA9PiAkRGVmYXVsdFN0YXRlIHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRTdGF0ZUVsZW1lbnRzOwogICAgfQoKICAgICMgcGVuZGluZyBkYXRlCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgfHwgJFBhcmFte1NjcmVlbn0gZXEgJ0NvbXBvc2UnICkgewogICAgICAgIG15ICRQZW5kaW5nRGF0ZUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1BlbmRpbmdEYXRlJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1BlbmRpbmcgRGF0ZSAoZm9yIHBlbmRpbmcqIHN0YXRlcyknKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkUGVuZGluZ0RhdGVFbGVtZW50czsKICAgIH0KCiAgICAjIHByaW9yaXR5CiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgKSB7CgogICAgICAgIG15ICREZWZhdWx0UHJpb3JpdHk7CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntQcmlvcml0eURlZmF1bHR9ICkgewogICAgICAgICAgICAkRGVmYXVsdFByaW9yaXR5ID0gJFNlbGYtPntDb25maWd9LT57UHJpb3JpdHlEZWZhdWx0fTsKICAgICAgICB9CgogICAgICAgIG15ICREZWZhdWx0UHJpb3JpdHlJRDsKICAgICAgICBpZiAoJERlZmF1bHRQcmlvcml0eSkgewogICAgICAgICAgICAkRGVmYXVsdFByaW9yaXR5SUQgPSAkU2VsZi0+e1ByaW9yaXR5T2JqZWN0fS0+UHJpb3JpdHlMb29rdXAoCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAkRGVmYXVsdFByaW9yaXR5LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJFByaW9yaXR5RWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdQcmlvcml0eUlEJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnUHJpb3JpdHknKSwKICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAnUGlja2VyJywKICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gJ1ByaW9yaXRpZXNHZXQnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiAnJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgICAgID0+ICREZWZhdWx0UHJpb3JpdHlJRCB8fCAnJywKICAgICAgICAgICAgRGVmYXVsdE9wdGlvbiA9PiAkRGVmYXVsdFByaW9yaXR5IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRQcmlvcml0eUVsZW1lbnRzOwogICAgfQoKICAgICMgZHluYW1pYyBmaWVsZHMKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgY29uZmlnIGZvciB0aGUgc2NyZWVuCiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gPSAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9OwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGlja2V0IG9iamVjdAogICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0gJFNlbGYtPntEeW5hbWljRmllbGRPYmplY3R9LT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gWyAnVGlja2V0JywgJ0FydGljbGUnIF0sCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9IHx8IHt9LAogICAgKTsKCiAgICAjIGdldCB1c2VyIHByZWZlcmVuY2VzCiAgICBteSAlVXNlclByZWZlcmVuY2VzID0gJFNlbGYtPntVc2VyT2JqZWN0fS0+R2V0UHJlZmVyZW5jZXMoIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSApOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICREeW5hbWljRmllbGRDb25maWctPntDb25maWd9ICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRDb25maWctPntOYW1lfTsKCiAgICAgICAgIyBza2lwIGFsbCBkeW5hbWljIGZpZWxkcyB0aGF0IGFyZSBub3QgZGVzaWduZWQgcmVuZGVyIGluIGlQaG9uZSBBcHAKICAgICAgICBteSAkSXNJUGhvbmVDYXBhYmxlID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzSVBob25lQ2FwYWJsZScsCiAgICAgICAgKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzSVBob25lQ2FwYWJsZTsKCiAgICAgICAgIyBjcmVhdGUgJFZhbHVlIGFzIHVuZGVmaW5lZCBiZWNhdXNlIGEgdXNlciBkZWZhdWx0IHZhbHVlIGNvdWxkIGJlICcnCiAgICAgICAgbXkgJFZhbHVlID0gdW5kZWY7CgogICAgICAgICMgb3ZlcnJpZGUgdGhlIHZhbHVlIGZyb20gdXNlciBwcmVmZXJlbmNlcyBpZiBpcyBzZXQKICAgICAgICBpZiAoICRVc2VyUHJlZmVyZW5jZXN7ICdVc2VyRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSApIHsKICAgICAgICAgICAgJFZhbHVlID0gJFVzZXJQcmVmZXJlbmNlc3sgJ1VzZXJEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9OwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkUGFyYW17VGlja2V0SUR9ICYmICREeW5hbWljRmllbGRDb25maWctPntPYmplY3RUeXBlfSBlcSAnVGlja2V0JyApIHsKICAgICAgICAgICAgJFZhbHVlID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+VmFsdWVHZXQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJEZpZWxkRGVmaW5pdGlvbiA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPklQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJFZhbHVlLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgPT4gMSwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgaWYgdGhlIEZpZWxkRGVmaW5pdGlvbiBpcyBkZWZpbmVkIGFuZCBjb3RhaW4gZGF0YSwgb3RoZXJ3aXNlIGFuIHVuZGVmIHZhcmlhYmxlIGluCiAgICAgICAgIyB0aGlzIHBvaW50IHdpbGwgY2F1c2UgYSBOVUxMIGVsZW1lbnQgaW4gdGhlIEFSUkFZIGFuZCB3aWxsIGNhdXNlIGlQaG9uZSBBcHAgdG8gY3Jhc2gKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRGaWVsZERlZmluaXRpb24pICkgewogICAgICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJEZpZWxkRGVmaW5pdGlvbjsKICAgICAgICB9CiAgICB9CgogICAgIyB0aW1lIHVuaXRzCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1RpbWVVbml0c30gKSB7CiAgICAgICAgbXkgJE1hbmRhdG9yeTsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpOZWVkQWNjb3VudGVkVGltZScpICkgewogICAgICAgICAgICAkTWFuZGF0b3J5ID0gMTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRNYW5kYXRvcnkgPSAwOwogICAgICAgIH0KICAgICAgICBteSAkVGltZVVuaXRzTWVhc3VyZSAgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6VGltZVVuaXRzJyk7CiAgICAgICAgbXkgJFRpbWVVbml0c0VsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1RpbWVVbml0cycsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCJUaW1lIHVuaXRzICRUaW1lVW5pdHNNZWFzdXJlIiksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnTnVtZXJpYycsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDEwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gJE1hbmRhdG9yeSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRUaW1lVW5pdHNFbGVtZW50czsKICAgIH0KICAgIHJldHVybiBcQFNjcmVlbkVsZW1lbnRzOwp9CgpzdWIgX1RpY2tldFBob25lTmV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPntDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUnKTsKCiAgICBteSAlU3RhdGVEYXRhID0gKCk7CiAgICBpZiAoICRQYXJhbXtTdGF0ZUlEfSApIHsKICAgICAgICAlU3RhdGVEYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT57U3RhdGVPYmplY3R9LT5TdGF0ZUdldCgKICAgICAgICAgICAgSUQgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyB0cmFuc2Zvcm0gcGVuZGluZyB0aW1lLCB0aW1lIHN0YW1wIGJhc2VkIG9uIHVzZXIgdGltZSB6b25lCiAgICBpZiAoIElzU3RyaW5nV2l0aERhdGEoICRQYXJhbXtQZW5kaW5nRGF0ZX0gKSApIHsKICAgICAgICAkUGFyYW17UGVuZGluZ0RhdGV9ID0gJFNlbGYtPl9UcmFuc2Zvcm1EYXRlU2VsZWN0aW9uKAogICAgICAgICAgICBUaW1lU3RhbXAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRVc2VyVGltZVpvbmUgPSAkU2VsZi0+e1VzZXJUaW1lWm9uZX07CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBjb25maWcgZm9yIHRoZSBzY3JlZW4KICAgICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSA9ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH07CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aWNrZXQgb2JqZWN0CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSAkU2VsZi0+e0R5bmFtaWNGaWVsZE9iamVjdH0tPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXSwKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gfHwge30sCiAgICApOwoKICAgIG15ICVEeW5hbWljRmllbGRWYWx1ZXM7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30gKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAgICAjIHNraXAgYWxsIGR5bmFtaWMgZmllbGRzIHRoYXQgYXJlIG5vdCBkZXNpZ25lZCByZW5kZXIgaW4gaVBob25lIEFwcAogICAgICAgIG15ICRJc0lQaG9uZUNhcGFibGUgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNJUGhvbmVDYXBhYmxlJywKICAgICAgICApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkSXNJUGhvbmVDYXBhYmxlOwoKICAgICAgICAjIGV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0KICAgICAgICAgICAgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5JUGhvbmVGaWVsZFZhbHVlR2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVHJhbnNmb3JtRGF0ZXMgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICA9PiAkVXNlclRpbWVab25lIHx8IDAsCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgKTsKCiAgICAgICAgIyBwZXJmb3JtIHZhbGlkYXRpb24gb2YgdGhlIGRhdGEKICAgICAgICBteSAkVmFsaWRhdGlvblJlc3VsdCA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPklQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0tPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPT0gMiwKICAgICAgICApOwoKICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkVmFsaWRhdGlvblJlc3VsdCkgKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3QgcGVyZm9ybSB2YWxpZGF0aW9uIG9uIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0hIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBwcm9wYWdhdGUgdmFsaWRhdGlvbiBlcnJvcgogICAgICAgIGlmICggJFZhbGlkYXRpb25SZXN1bHQtPntTZXJ2ZXJFcnJvcn0gKSB7CgogICAgICAgICAgICBteSAkRXJyb3JNZXNzYWdlID0gJFZhbGlkYXRpb25SZXN1bHQtPntFcnJvck1lc3NhZ2V9CiAgICAgICAgICAgICAgICB8fCAiRHluYW1pYyBmaWVsZCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9IGludmFsaWQiOwoKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBteSAkQ3VzdG9tZXJVc2VyID0gJFBhcmFte0N1c3RvbWVyVXNlckxvZ2lufTsKICAgIG15ICRDdXN0b21lcklEID0gJFBhcmFte0N1c3RvbWVySUR9IHx8ICcnOwoKICAgICMgcmV3cmFwIGJvZHkgaWYgZXhpc3RzCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGcm9udGVuZDo6UmljaFRleHQnKSAmJiAkUGFyYW17Qm9keX0gKSB7CiAgICAgICAgJFBhcmFte0JvZHl9CiAgICAgICAgICAgID1+IHMvKF4+Lit8Lns0LCRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUnKX0pKD86XHN8XHopLyQxXG4vZ207CiAgICB9CgogICAgIyBjaGVjayBwZW5kaW5nIGRhdGUKICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gJiYgJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoIFN0cmluZyA9PiAkUGFyYW17UGVuZGluZ0RhdGV9ICkgKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdEYXRlIGludmFsaWQnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoIFN0cmluZyA9PiAkUGFyYW17UGVuZGluZ0RhdGV9ICkKICAgICAgICAgICAgPCAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0RhdGUgaW52YWxpZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgI2dldCBjdXN0b21lciBpbmZvCiAgICBteSAlQ3VzdG9tZXJVc2VyRGF0YSA9ICRTZWxmLT57Q3VzdG9tZXJVc2VyT2JqZWN0fS0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICBVc2VyID0+ICRDdXN0b21lclVzZXIsCiAgICApOwogICAgbXkgJUN1c3RvbWVyVXNlckxpc3QgPSAkU2VsZi0+e0N1c3RvbWVyVXNlck9iamVjdH0tPkN1c3RvbWVyU2VhcmNoKAogICAgICAgIFVzZXJMb2dpbiA9PiAkQ3VzdG9tZXJVc2VyLAogICAgKTsKICAgIG15ICRGcm9tOwogICAgaWYgKCVDdXN0b21lclVzZXJMaXN0KSB7CiAgICAgICAgZm9yICggc29ydCBrZXlzICVDdXN0b21lclVzZXJMaXN0ICkgewoKICAgICAgICAgICAgaWYgKCAkUGFyYW17Q3VzdG9tZXJVc2VyTG9naW59IGVxICRfICkgewogICAgICAgICAgICAgICAgJEZyb20gPSAkQ3VzdG9tZXJVc2VyTGlzdHskX30KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICRGcm9tID0gJEN1c3RvbWVyVXNlcjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGVsc2UgewogICAgICAgICRGcm9tID0gJEN1c3RvbWVyVXNlcjsKICAgIH0KCiAgICAjIGNoZWNrIGVtYWlsIGFkZHJlc3MKICAgIGZvciBteSAkRW1haWwgKCBNYWlsOjpBZGRyZXNzLT5wYXJzZSggJEN1c3RvbWVyVXNlckRhdGF7VXNlckVtYWlsfSApICkgewogICAgICAgIGlmICggISRTZWxmLT57Q2hlY2tJdGVtT2JqZWN0fS0+Q2hlY2tFbWFpbCggQWRkcmVzcyA9PiAkRW1haWwtPmFkZHJlc3MoKSApICkgewogICAgICAgICAgICBteSAkU2VydmVyRXJyb3IgPSAkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0tPkNoZWNrRXJyb3IoKTsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIG9uIGZpZWxkIFwiRnJvbVwiICBcbiAkU2VydmVyRXJyb3IiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQogICAgaWYgKCAhJFBhcmFte0N1c3RvbWVyVXNlckxvZ2lufSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Zyb20gaW52YWxpZDogRnJvbSBpcyBlbXB0eScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoICEkUGFyYW17U3ViamVjdH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdTdWJqZWN0IGludmFsaWQ6IFN1YmplY3QgaXMgZW1wdHknLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKCAhJFBhcmFte1F1ZXVlSUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnRGVzdGluYXRpb24gaW52YWxpZDogRGVzdGluYXRpb24gcXVldWUgaXMgZW1wdHknLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKAogICAgICAgICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OlNlcnZpY2UnKQogICAgICAgICYmICRQYXJhbXtTTEFJRH0KICAgICAgICAmJiAhJFBhcmFte1NlcnZpY2VJRH0KICAgICAgICApCiAgICB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdTZXJ2aWNlIGludmFsaWQ6IG5vIHNlcnZpY2Ugc2VsZWN0ZWQnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY3JlYXRlIG5ldyB0aWNrZXQsIGRvIGRiIGluc2VydAogICAgbXkgJFRpY2tldElEID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRDcmVhdGUoCiAgICAgICAgVGl0bGUgICAgICAgID0+ICRQYXJhbXtTdWJqZWN0fSwKICAgICAgICBRdWV1ZUlEICAgICAgPT4gJFBhcmFte1F1ZXVlSUR9LAogICAgICAgIFN1YmplY3QgICAgICA9PiAkUGFyYW17U3ViamVjdH0sCiAgICAgICAgTG9jayAgICAgICAgID0+ICd1bmxvY2snLAogICAgICAgIFR5cGVJRCAgICAgICA9PiAkUGFyYW17VHlwZUlEfSwKICAgICAgICBTZXJ2aWNlSUQgICAgPT4gJFBhcmFte1NlcnZpY2VJRH0sCiAgICAgICAgU0xBSUQgICAgICAgID0+ICRQYXJhbXtTTEFJRH0sCiAgICAgICAgU3RhdGVJRCAgICAgID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICBQcmlvcml0eUlEICAgPT4gJFBhcmFte1ByaW9yaXR5SUR9LAogICAgICAgIE93bmVySUQgICAgICA9PiAxLAogICAgICAgIEN1c3RvbWVyTm8gICA9PiAkQ3VzdG9tZXJJRCwKICAgICAgICBDdXN0b21lclVzZXIgPT4gJEN1c3RvbWVyVXNlciwKICAgICAgICBVc2VySUQgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwogICAgaWYgKCAhJFRpY2tldElEICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3I6IE5vIHRpY2tldCBjcmVhdGVkISBQbGVhc2UgY29udGFjdCBhZG1pbicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgdGlja2V0IGR5bmFtaWMgZmllbGRzCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJER5bmFtaWNGaWVsZENvbmZpZy0+e09iamVjdFR5cGV9IG5lICdUaWNrZXQnOwoKICAgICAgICAjIHNraXAgYWxsIGR5bmFtaWMgZmllbGRzIHRoYXQgYXJlIG5vdCBkZXNpZ25lZCByZW5kZXIgaW4gaVBob25lIEFwcAogICAgICAgIG15ICRJc0lQaG9uZUNhcGFibGUgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNJUGhvbmVDYXBhYmxlJywKICAgICAgICApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkSXNJUGhvbmVDYXBhYmxlOwoKICAgICAgICAjIHNldCB0aGUgdmFsdWUKICAgICAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPlZhbHVlU2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkTWltZVR5cGUgPSAndGV4dC9wbGFpbic7CgogICAgIyBjaGVjayBpZiBuZXcgb3duZXIgaXMgZ2l2ZW4gKHRoZW4gc2VuZCBubyBhZ2VudCBub3RpZnkpCiAgICBteSAkTm9BZ2VudE5vdGlmeSA9IDA7CiAgICBpZiAoICRQYXJhbXtPd25lcklEfSApIHsKICAgICAgICAkTm9BZ2VudE5vdGlmeSA9IDE7CiAgICB9CiAgICBteSAkUXVldWVOYW1lID0gJFNlbGYtPntRdWV1ZU9iamVjdH0tPlF1ZXVlTG9va3VwKCBRdWV1ZUlEID0+ICRQYXJhbXtRdWV1ZUlEfSApOwoKICAgIG15ICRBcnRpY2xlSUQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVDcmVhdGUoCiAgICAgICAgTm9BZ2VudE5vdGlmeSA9PiAkTm9BZ2VudE5vdGlmeSwKICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICBBcnRpY2xlVHlwZSAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0FydGljbGVUeXBlRGVmYXVsdH0sCiAgICAgICAgU2VuZGVyVHlwZSAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntTZW5kZXJUeXBlfSwKICAgICAgICBGcm9tICAgICAgICAgID0+ICRGcm9tLAogICAgICAgIFRvICAgICAgICAgICAgPT4gJFF1ZXVlTmFtZSwKICAgICAgICBTdWJqZWN0ICAgICAgID0+ICRQYXJhbXtTdWJqZWN0fSwKICAgICAgICBCb2R5ICAgICAgICAgID0+ICRQYXJhbXtCb2R5fSwKICAgICAgICBNaW1lVHlwZSAgICAgID0+ICRNaW1lVHlwZSwKCiAgICAgICAgIyBpcGhvbmUgbXVzdCBzZW5kIGluZm8gaW4gY3VycmVudCBjaGFyc2V0CiAgICAgICAgQ2hhcnNldCAgICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRGVmYXVsdENoYXJzZXQnKSwKICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIEhpc3RvcnlUeXBlICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57SGlzdG9yeVR5cGV9LAogICAgICAgIEhpc3RvcnlDb21tZW50ICAgPT4gJFNlbGYtPntDb25maWd9LT57SGlzdG9yeUNvbW1lbnR9IHx8ICclJScsCiAgICAgICAgQXV0b1Jlc3BvbnNlVHlwZSA9PiAnYXV0byByZXBseScsCiAgICAgICAgT3JpZ0hlYWRlciAgICAgICA9PiB7CiAgICAgICAgICAgIEZyb20gICAgPT4gJEZyb20sCiAgICAgICAgICAgIFRvICAgICAgPT4gJFF1ZXVlTmFtZSwKICAgICAgICAgICAgU3ViamVjdCA9PiAkUGFyYW17U3ViamVjdH0sCiAgICAgICAgICAgIEJvZHkgICAgPT4gJFBhcmFte0JvZHl9LAogICAgICAgIH0sCiAgICAgICAgUXVldWUgPT4gJFF1ZXVlTmFtZSwKICAgICk7CgogICAgaWYgKCRBcnRpY2xlSUQpIHsKCiAgICAgICAgIyBzZXQgdGlja2V0IGR5bmFtaWMgZmllbGRzCiAgICAgICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gbmUgJ0FydGljbGUnOwoKICAgICAgICAgICAgIyBza2lwIGFsbCBkeW5hbWljIGZpZWxkcyB0aGF0IGFyZSBub3QgZGVzaWduZWQgcmVuZGVyIGluIGlQaG9uZSBBcHAKICAgICAgICAgICAgbXkgJElzSVBob25lQ2FwYWJsZSA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPkhhc0JlaGF2aW9yKAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzSVBob25lQ2FwYWJsZScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkSXNJUGhvbmVDYXBhYmxlOwoKICAgICAgICAgICAgIyBzZXQgdGhlIHZhbHVlCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+VmFsdWVTZXQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgb3duZXIgKGlmIG5ldyB1c2VyIGlkIGlzIGdpdmVuKQogICAgICAgIGlmICggJFBhcmFte093bmVySUR9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldE93bmVyU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17T3duZXJJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNldCBsb2NrCiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBlbHNlIHNldCBvd25lciB0byBjdXJyZW50IGFnZW50IGJ1dCBkbyBub3QgbG9jayBpdAogICAgICAgIGVsc2UgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldE93bmVyU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFNlbmROb05vdGlmaWNhdGlvbiA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgcmVzcG9uc2libGUgKGlmIG5ldyB1c2VyIGlkIGlzIGdpdmVuKQogICAgICAgIGlmICggJFBhcmFte1Jlc3BvbnNpYmxlSUR9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFJlc3BvbnNpYmxlU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17UmVzcG9uc2libGVJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHRpbWUgYWNjb3VudGluZwogICAgICAgIGlmICggJFBhcmFte1RpbWVVbml0c30gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0QWNjb3VudFRpbWUoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgICAgICBUaW1lVW5pdCAgPT4gJFBhcmFte1RpbWVVbml0c30sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNob3VsZCBpIHNldCBhbiB1bmxvY2s/CiAgICAgICAgbXkgJVN0YXRlRGF0YSA9ICRTZWxmLT57U3RhdGVPYmplY3R9LT5TdGF0ZUdldCggSUQgPT4gJFBhcmFte1N0YXRlSUR9ICk7CiAgICAgICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXmNsb3NlL2kgKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBwZW5kaW5nIHRpbWUKICAgICAgICBlbHNpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewoKICAgICAgICAgICAgIyBzZXQgcGVuZGluZyB0aW1lCiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UGVuZGluZ1RpbWVTZXQoCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFN0cmluZyAgID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpbnQgJFRpY2tldElEOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdFcnJvcjogbm8gYXJ0aWNsZSB3YXMgY3JlYXRlZCEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KfQoKc3ViIF9UaWNrZXRDb21tb25BY3Rpb25zIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPntDb25maWd9CiAgICAgICAgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCggJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0JyAuICRQYXJhbXtBY3Rpb259ICk7CgogICAgbXkgJVN0YXRlRGF0YSA9ICgpOwoKICAgIGlmICggJFBhcmFte1N0YXRlSUR9ICkgewogICAgICAgICVTdGF0ZURhdGEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPntTdGF0ZU9iamVjdH0tPlN0YXRlR2V0KAogICAgICAgICAgICBJRCA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1RpY2tldElEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05vIFRpY2tldElEIGlzIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZXJyb3Igc2NyZWVuLCBkb24ndCBzaG93IHRpY2tldAogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIllvdSBuZWVkICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259IHBlcm1pc3Npb25zISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJVRpY2tldCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0R2V0KCBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9ICk7CgogICAgIyBnZXQgbG9jayBzdGF0ZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntSZXF1aXJlZExvY2t9ICkgewogICAgICAgIG15ICRMb2NrZWQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKCiAgICAgICAgaWYgKCAhJExvY2tlZCApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG15ICRBY2Nlc3NPayA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+T3duZXJDaGVjaygKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBPd25lcklEICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJEFjY2Vzc09rICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnU29ycnksIHlvdSBuZWVkIHRvIGJlIHRoZSBvd25lciB0byBkbyB0aGlzIGFjdGlvbiEgJwogICAgICAgICAgICAgICAgICAgICAgICAuICdQbGVhc2UgY2hhbmdlIHRoZSBvd25lciBmaXJzdC4nLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHRyYW5zZm9ybSBwZW5kaW5nIHRpbWUsIHRpbWUgc3RhbXAgYmFzZWQgb24gdXNlciB0aW1lIHpvbmUKICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICRQYXJhbXtQZW5kaW5nRGF0ZX0gPSAkU2VsZi0+X1RyYW5zZm9ybURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgIFRpbWVTdGFtcCA9PiAkUGFyYW17UGVuZGluZ0RhdGV9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFVzZXJUaW1lWm9uZSA9ICRTZWxmLT57VXNlclRpbWVab25lfTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGNvbmZpZyBmb3IgdGhlIHNjcmVlbgogICAgJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9ID0gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfTsKCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRpY2tldCBvYmplY3QKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkfSA9ICRTZWxmLT57RHluYW1pY0ZpZWxkT2JqZWN0fS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+IFsgJ1RpY2tldCcsICdBcnRpY2xlJyBdLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSB8fCB7fSwKICAgICk7CgogICAgbXkgJUR5bmFtaWNGaWVsZFZhbHVlczsKCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57Q29uZmlnfSApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CgogICAgICAgICMgc2tpcCBhbGwgZHluYW1pYyBmaWVsZHMgdGhhdCBhcmUgbm90IGRlc2lnbmVkIHJlbmRlciBpbiBpUGhvbmUgQXBwCiAgICAgICAgbXkgJElzSVBob25lQ2FwYWJsZSA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPkhhc0JlaGF2aW9yKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0lQaG9uZUNhcGFibGUnLAogICAgICAgICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISRJc0lQaG9uZUNhcGFibGU7CgogICAgICAgICMgZXh0cmFjdCB0aGUgZHluYW1pYyBmaWVsZCB2YWx1ZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfQogICAgICAgICAgICA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPklQaG9uZUZpZWxkVmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBUcmFuc2Zvcm1EYXRlcyAgICAgPT4gMSwKICAgICAgICAgICAgVXNlclRpbWVab25lICAgICAgID0+ICRVc2VyVGltZVpvbmUgfHwgMCwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICApOwoKICAgICAgICAjIHBlcmZvcm0gdmFsaWRhdGlvbiBvZiB0aGUgZGF0YQogICAgICAgIG15ICRWYWxpZGF0aW9uUmVzdWx0ID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRWYWxpZGF0aW9uUmVzdWx0KSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBwZXJmb3JtIHZhbGlkYXRpb24gb24gZmllbGQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yCiAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApIHsKCiAgICAgICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAkVmFsaWRhdGlvblJlc3VsdC0+e0Vycm9yTWVzc2FnZX0KICAgICAgICAgICAgICAgIHx8ICJEeW5hbWljIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0gaW52YWxpZCI7CgogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgcmV3cmFwIGJvZHkgaWYgbm8gcmljaCB0ZXh0IGlzIHVzZWQKICAgIGlmICggJFBhcmFte0JvZHl9ICkgewogICAgICAgIG15ICRTaXplID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZScpIHx8IDcwOwogICAgICAgICRQYXJhbXtCb2R5fSA9fiBzLyhePi4rfC57NCwkU2l6ZX0pKD86XHN8XHopLyQxXG4vZ207CiAgICB9CgogICAgIyBjaGVjayBwZW5kaW5nIGRhdGUKICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gJiYgJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoIFN0cmluZyA9PiAkUGFyYW17UGVuZGluZ0RhdGV9ICkgKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdEYXRlIGludmFsaWQnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIGlmICgKICAgICAgICAgICAgJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoIFN0cmluZyA9PiAkUGFyYW17UGVuZGluZ0RhdGV9ICkKICAgICAgICAgICAgPCAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0RhdGUgaW52YWxpZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntOb3RlfSApIHsKCiAgICAgICAgIyBjaGVjayBzdWJqZWN0CiAgICAgICAgaWYgKCAhJFBhcmFte1N1YmplY3R9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnU3ViamVjdCBJbnZhbGlkOiB0aGUgU3ViamVjdCBpcyBlbXB0eSEnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGJvZHkKICAgICAgICBpZiAoICEkUGFyYW17Qm9keX0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdCb2R5IEludmFsaWQ6IHRoZSBCb2R5IGlzIGVtcHR5IScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgI2NoZWNrIGlmIFRpdGxlCiAgICBpZiAoICEkUGFyYW17VGl0bGV9ICkgewogICAgICAgIG15ICVUaWNrZXREYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRHZXQoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICRQYXJhbXtUaXRsZX0gPSAkVGlja2V0RGF0YXtUaXRsZX07CiAgICB9CgogICAgIyBzZXQgbmV3IHRpdGxlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1RpdGxlfSApIHsKICAgICAgICBpZiAoIGRlZmluZWQgJFBhcmFte1RpdGxlfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRUaXRsZVVwZGF0ZSgKICAgICAgICAgICAgICAgIFRpdGxlICAgID0+ICRQYXJhbXtUaXRsZX0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IG5ldyB0eXBlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OlR5cGUnKSAmJiAkU2VsZi0+e0NvbmZpZ30tPntUaWNrZXRUeXBlfSApIHsKICAgICAgICBpZiAoICRQYXJhbXtUeXBlSUR9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFR5cGVTZXQoCiAgICAgICAgICAgICAgICBUeXBlSUQgICA9PiAkUGFyYW17VHlwZUlEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgbmV3IHNlcnZpY2UKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6U2VydmljZScpICYmICRTZWxmLT57Q29uZmlnfS0+e1NlcnZpY2V9ICkgewogICAgICAgIGlmICggZGVmaW5lZCAkUGFyYW17U2VydmljZUlEfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZXJ2aWNlU2V0KAogICAgICAgICAgICAgICAgU2VydmljZUlEICAgICAgPT4gJFBhcmFte1NlcnZpY2VJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJFRpY2tldHtDdXN0b21lclVzZXJJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgaWYgKCBkZWZpbmVkICRQYXJhbXtTTEFJRH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U0xBU2V0KAogICAgICAgICAgICAgICAgU0xBSUQgICAgPT4gJFBhcmFte1NMQUlEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgbmV3IG93bmVyCiAgICBteSBATm90aWZ5RG9uZTsKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57T3duZXJ9ICkgewogICAgICAgIG15ICRCb2R5VGV4dCA9ICRQYXJhbXtCb2R5fSB8fCAnJzsKICAgICAgICBpZiAoICRQYXJhbXtPd25lcklEfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17T3duZXJJRH0sCiAgICAgICAgICAgICAgICBDb21tZW50ICAgPT4gJEJvZHlUZXh0LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyByZW1lbWJlciB0byBub3Qgbm90aWZ5IG93bmVyIHR3aWNlCiAgICAgICAgICAgIGlmICggJFN1Y2Nlc3MgJiYgJFN1Y2Nlc3MgZXEgMSApIHsKICAgICAgICAgICAgICAgIHB1c2ggQE5vdGlmeURvbmUsICRQYXJhbXtPd25lcklEfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBuZXcgcmVzcG9uc2libGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57UmVzcG9uc2libGV9ICkgewogICAgICAgIGlmICggJFBhcmFte1Jlc3BvbnNpYmxlSUR9ICkgewogICAgICAgICAgICBteSAkQm9keVRleHQgPSAkUGFyYW17Qm9keX0gfHwgJyc7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRSZXNwb25zaWJsZVNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtSZXNwb25zaWJsZUlEfSwKICAgICAgICAgICAgICAgIENvbW1lbnQgICA9PiAkQm9keVRleHQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHJlbWVtYmVyIHRvIG5vdCBub3RpZnkgcmVzcG9uc2libGUgdHdpY2UKICAgICAgICAgICAgaWYgKCAkU3VjY2VzcyAmJiAkU3VjY2VzcyBlcSAxICkgewogICAgICAgICAgICAgICAgcHVzaCBATm90aWZ5RG9uZSwgJFBhcmFte1Jlc3BvbnNpYmxlSUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIG5vdGUKICAgIG15ICRBcnRpY2xlSUQgPSAnJzsKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57Tm90ZX0gfHwgJFBhcmFte0RlZmF1bHRzfSApIHsKICAgICAgICBteSAkTWltZVR5cGUgPSAndGV4dC9wbGFpbic7CgogICAgICAgIG15ICVVc2VyID0gJFNlbGYtPntVc2VyT2JqZWN0fS0+R2V0VXNlckRhdGEoCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICBteSAkRnJvbSA9ICIkVXNlcntVc2VyRmlyc3RuYW1lfSAkVXNlcntVc2VyTGFzdG5hbWV9IDwkVXNlcntVc2VyRW1haWx9PiI7CgogICAgICAgICRBcnRpY2xlSUQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVDcmVhdGUoCiAgICAgICAgICAgIFRpY2tldElEICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgU2VuZGVyVHlwZSA9PiAnYWdlbnQnLAogICAgICAgICAgICBGcm9tICAgICAgID0+ICRGcm9tLAogICAgICAgICAgICBNaW1lVHlwZSAgID0+ICRNaW1lVHlwZSwKCiAgICAgICAgICAgICMgaXBob25lIG11c3Qgc2VuZCBpbmZvIGluIGN1cnJlbnQgY2hhcnNldAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRGVmYXVsdENoYXJzZXQnKSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlUeXBlfSwKICAgICAgICAgICAgSGlzdG9yeUNvbW1lbnQgPT4gJFNlbGYtPntDb25maWd9LT57SGlzdG9yeUNvbW1lbnR9LAoKICAgICAgICAgICAgIyAgICAgICAgICAgICAgICBGb3JjZU5vdGlmaWNhdGlvblRvVXNlcklEICAgICAgID0+IFxATm90aWZ5VXNlcklEcywKICAgICAgICAgICAgRXhjbHVkZU11dGVOb3RpZmljYXRpb25Ub1VzZXJJRCA9PiBcQE5vdGlmeURvbmUsCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkQXJ0aWNsZUlEICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3I6IG5vIGFydGljbGUgd2FzIGNyZWF0ZWQhIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHRpbWUgYWNjb3VudGluZwogICAgICAgIGlmICggJFBhcmFte1RpbWVVbml0c30gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0QWNjb3VudFRpbWUoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgVGltZVVuaXQgID0+ICRQYXJhbXtUaW1lVW5pdHN9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgZHluYW1pYyBmaWVsZHMKICAgICAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICAgICAjIHNldCB0aGUgb2JqZWN0IElEIChUaWNrZXRJRCBvciBBcnRpY2xlSUQpIGRlcGVuZGluZyBvbiB0aGUgZmllbGQgY29uZmlncmF0aW9uCiAgICAgICAgICAgIG15ICRPYmplY3RJRAogICAgICAgICAgICAgICAgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gZXEgJ0FydGljbGUnID8gJEFydGljbGVJRCA6ICRQYXJhbXtUaWNrZXRJRH07CgogICAgICAgICAgICAjIHNldCB0aGUgdmFsdWUKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5WYWx1ZVNldCgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRPYmplY3RJRCwKICAgICAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IHByaW9yaXR5CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntQcmlvcml0eX0gJiYgJFBhcmFte1ByaW9yaXR5SUR9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFByaW9yaXR5U2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgUHJpb3JpdHlJRCA9PiAkUGFyYW17UHJpb3JpdHlJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgc3RhdGUKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlfSAmJiAkUGFyYW17U3RhdGVJRH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U3RhdGVTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgU3RhdGVJRCAgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHVubG9jayB0aGUgdGlja2V0IGFmdGVyIGNsb3NlCiAgICAgICAgICAgIG15ICVTdGF0ZURhdGEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPntTdGF0ZU9iamVjdH0tPlN0YXRlR2V0KAogICAgICAgICAgICAgICAgSUQgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgdW5sb2NrIG9uIGNsb3NlIHN0YXRlCiAgICAgICAgICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15jbG9zZS9pICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIHNldCBwZW5kaW5nIHRpbWUgb24gcGVuZGlnIHN0YXRlCiAgICAgICAgICAgIGVsc2lmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CgogICAgICAgICAgICAgICAgIyBzZXQgcGVuZGluZyB0aW1lCiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlbmRpbmdUaW1lU2V0KAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nICAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZWxzZSB7CgogICAgICAgICMgZmlsbHVwIGNvbmZpZ3VyZWQgZGVmYXVsdCB2YXJzCiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17Qm9keX0gJiYgJFNlbGYtPntDb25maWd9LT57Qm9keX0gKSB7CiAgICAgICAgICAgICRQYXJhbXtCb2R5fSA9ICRTZWxmLT57Q29uZmlnfS0+e0JvZHl9OwogICAgICAgIH0KICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtTdWJqZWN0fSAmJiAkU2VsZi0+e0NvbmZpZ30tPntTdWJqZWN0fSApIHsKICAgICAgICAgICAgJFBhcmFte1N1YmplY3R9ID0gJFNlbGYtPntDb25maWd9LT57U3ViamVjdH0sOwogICAgICAgIH0KCiAgICAgICAgbXkgJFJlc3VsdCA9ICRTZWxmLT5fVGlja2V0Q29tbW9uQWN0aW9ucygKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBEZWZhdWx0cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICB9CiAgICByZXR1cm4gJEFydGljbGVJRDsKfQoKc3ViIF9UaWNrZXRDb21wb3NlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPntDb25maWd9CiAgICAgICAgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlJyk7CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtUaWNrZXRJRH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdObyBUaWNrZXRJRCBpcyBnaXZlbiEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGVycm9yIHNjcmVlbiwgZG9uJ3Qgc2hvdyB0aWNrZXQKICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJZb3UgbmVlZCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSBwZXJtaXNzaW9ucyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbXkgJVRpY2tldCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0R2V0KCBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9ICk7CgogICAgIyBnZXQgbG9jayBzdGF0ZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntSZXF1aXJlZExvY2t9ICkgewogICAgICAgIG15ICRMb2NrZWQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKICAgICAgICBpZiAoICEkTG9ja2VkICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG15ICRBY2Nlc3NPayA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+T3duZXJDaGVjaygKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBPd25lcklEICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJEFjY2Vzc09rICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiU29ycnksIHlvdSBuZWVkIHRvIGJlIHRoZSBvd25lciB0byBkbyB0aGlzIGFjdGlvbiEgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJQbGVhc2UgY2hhbmdlIHRoZSBvd25lciBmaXJzdC4iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHRyYW5zZm9ybSBwZW5kaW5nIHRpbWUsIHRpbWUgc3RhbXAgYmFzZWQgb24gdXNlciB0aW1lIHpvbmUKICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICRQYXJhbXtQZW5kaW5nRGF0ZX0gPSAkU2VsZi0+X1RyYW5zZm9ybURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgIFRpbWVTdGFtcCA9PiAkUGFyYW17UGVuZGluZ0RhdGV9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFVzZXJUaW1lWm9uZSA9ICRTZWxmLT57VXNlclRpbWVab25lfTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGNvbmZpZyBmb3IgdGhlIHNjcmVlbgogICAgJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9ID0gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfTsKCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRpY2tldCBvYmplY3QKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkfSA9ICRTZWxmLT57RHluYW1pY0ZpZWxkT2JqZWN0fS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+IFsgJ1RpY2tldCcsICdBcnRpY2xlJyBdLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSB8fCB7fSwKICAgICk7CgogICAgbXkgJUR5bmFtaWNGaWVsZFZhbHVlczsKCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57Q29uZmlnfSApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CgogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5Jc0lQaG9uZUNhcGFibGUoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICk7CgogICAgICAgICMgZXh0cmFjdCB0aGUgZHluYW1pYyBmaWVsZCB2YWx1ZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfQogICAgICAgICAgICA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPklQaG9uZUZpZWxkVmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBUcmFuc2Zvcm1EYXRlcyAgICAgPT4gMSwKICAgICAgICAgICAgVXNlclRpbWVab25lICAgICAgID0+ICRVc2VyVGltZVpvbmUgfHwgMCwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICApOwoKICAgICAgICAjIHBlcmZvcm0gdmFsaWRhdGlvbiBvZiB0aGUgZGF0YQogICAgICAgIG15ICRWYWxpZGF0aW9uUmVzdWx0ID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRWYWxpZGF0aW9uUmVzdWx0KSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBwZXJmb3JtIHZhbGlkYXRpb24gb24gZmllbGQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yCiAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApIHsKCiAgICAgICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAkVmFsaWRhdGlvblJlc3VsdC0+e0Vycm9yTWVzc2FnZX0KICAgICAgICAgICAgICAgIHx8ICJEeW5hbWljIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0gaW52YWxpZCI7CgogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc2VuZCBlbWFpbAogICAgbXkgJVN0YXRlRGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+e1N0YXRlT2JqZWN0fS0+U3RhdGVHZXQoIElEID0+ICRQYXJhbXtTdGF0ZUlEfSwgKTsKCiAgICAjIGNoZWNrIHBlbmRpbmcgZGF0ZQogICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSAmJiAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXnBlbmRpbmcvaSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+e1RpbWVPYmplY3R9LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0gKSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0RhdGUgaW52YWxpZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1RpbWVPYmplY3R9LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0gKQogICAgICAgICAgICA8ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUoKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRGF0ZSBpbnZhbGlkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIHNvbWUgdmFsdWVzCiAgICBmb3IgbXkgJExpbmUgKHF3KEZyb20gVG8gQ2MgQmNjKSkgewogICAgICAgIG5leHQgaWYgISRQYXJhbXskTGluZX07CiAgICAgICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkUGFyYW17JExpbmV9ICkgKSB7CiAgICAgICAgICAgIGlmICggISRTZWxmLT57Q2hlY2tJdGVtT2JqZWN0fS0+Q2hlY2tFbWFpbCggQWRkcmVzcyA9PiAkRW1haWwtPmFkZHJlc3MoKSApICkgewogICAgICAgICAgICAgICAgbXkgJFNlcnZlckVycm9yID0gJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0Vycm9yKCk7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBvbiBmaWVsZCBcIiRMaW5lXCIgXG4gJFNlcnZlckVycm9yIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyByZXBsYWNlIDxPVFJTX1RJQ0tFVF9TVEFURT4gd2l0aCBuZXh0IHRpY2tldCBzdGF0ZSBuYW1lCiAgICBpZiAoICRTdGF0ZURhdGF7TmFtZX0gKSB7CiAgICAgICAgJFBhcmFte0JvZHl9ID1+IHMvPE9UUlNfVElDS0VUX1NUQVRFPi8kU3RhdGVEYXRhe05hbWV9L2c7CiAgICAgICAgJFBhcmFte0JvZHl9ID1+IHMvJmx0O09UUlNfVElDS0VUX1NUQVRFJmd0Oy8kU3RhdGVEYXRhe05hbWV9L2c7CiAgICB9CgogICAgIyBnZXQgcmVjaXBpZW50cwogICAgbXkgJFJlY2lwaWVudHMgPSAnJzsKICAgIGZvciBteSAkTGluZSAocXcoVG8gQ2MgQmNjKSkgewogICAgICAgIGlmICggJFBhcmFteyRMaW5lfSApIHsKICAgICAgICAgICAgaWYgKCRSZWNpcGllbnRzKSB7CiAgICAgICAgICAgICAgICAkUmVjaXBpZW50cyAuPSAnLCc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJFJlY2lwaWVudHMgLj0gJFBhcmFteyRMaW5lfTsKICAgICAgICB9CiAgICB9CgogICAgbXkgJE1pbWVUeXBlID0gJ3RleHQvcGxhaW4nOwoKICAgICMgc2VuZCBlbWFpbAogICAgbXkgJEFydGljbGVJRCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZVNlbmQoCiAgICAgICAgQXJ0aWNsZVR5cGUgICAgPT4gJ2VtYWlsLWV4dGVybmFsJywKICAgICAgICBTZW5kZXJUeXBlICAgICA9PiAnYWdlbnQnLAogICAgICAgIFRpY2tldElEICAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgSGlzdG9yeVR5cGUgICAgPT4gJ1NlbmRBbnN3ZXInLAogICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICJcJVwlJFJlY2lwaWVudHMiLAogICAgICAgIEZyb20gICAgICAgICAgID0+ICRQYXJhbXtGcm9tfSwKICAgICAgICBUbyAgICAgICAgICAgICA9PiAkUGFyYW17VG99LAogICAgICAgIENjICAgICAgICAgICAgID0+ICRQYXJhbXtDY30sCiAgICAgICAgQmNjICAgICAgICAgICAgPT4gJFBhcmFte0JjY30sCiAgICAgICAgU3ViamVjdCAgICAgICAgPT4gJFBhcmFte1N1YmplY3R9LAogICAgICAgIFVzZXJJRCAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIEJvZHkgICAgICAgICAgID0+ICRQYXJhbXtCb2R5fSwKICAgICAgICBJblJlcGx5VG8gICAgICA9PiAkUGFyYW17SW5SZXBseVRvfSwKICAgICAgICBSZWZlcmVuY2VzICAgICA9PiAkUGFyYW17UmVmZXJlbmNlc30sCiAgICAgICAgQ2hhcnNldCAgICAgICAgPT4gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0RlZmF1bHRDaGFyc2V0JyksCiAgICAgICAgTWltZVR5cGUgICAgICAgPT4gJE1pbWVUeXBlLAogICAgKTsKCiAgICAjIGVycm9yIHBhZ2UKICAgIGlmICggISRBcnRpY2xlSUQgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdFcnJvciBubyBBcnRpY2xlIGNyZWF0ZWQhIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB0aW1lIGFjY291bnRpbmcKICAgIGlmICggJFBhcmFte1RpbWVVbml0c30gKSB7CiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRBY2NvdW50VGltZSgKICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICBUaW1lVW5pdCAgPT4gJFBhcmFte1RpbWVVbml0c30sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2V0IGR5bmFtaWMgZmllbGRzCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgc2V0IHRoZSBvYmplY3QgSUQgKFRpY2tldElEIG9yIEFydGljbGVJRCkgZGVwZW5kaW5nIG9uIHRoZSBmaWVsZCBjb25maWdyYXRpb24KICAgICAgICBteSAkT2JqZWN0SUQKICAgICAgICAgICAgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gZXEgJ0FydGljbGUnID8gJEFydGljbGVJRCA6ICRQYXJhbXtUaWNrZXRJRH07CgogICAgICAgICMgc2V0IHRoZSB2YWx1ZQogICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+VmFsdWVTZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJE9iamVjdElELAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2V0IHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlfSAmJiAkUGFyYW17U3RhdGVJRH0gKSB7CiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTdGF0ZVNldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgU3RhdGVJRCAgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2hvdWxkIEkgc2V0IGFuIHVubG9jaz8KICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15jbG9zZS9pICkgewogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgTG9jayAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgcGVuZGluZyB0aW1lCiAgICBlbHNpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UGVuZGluZ1RpbWVTZXQoCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBTdHJpbmcgICA9PiAkUGFyYW17UGVuZGluZ0RhdGV9LAogICAgICAgICk7CiAgICB9CgogICAgIyBsb2cgdXNlIHJlc3BvbnNlIGlkIGFuZCByZXBseSBhcnRpY2xlIGlkICh1c2VmdWwgZm9yIHJlc3BvbnNlIGRpYWdub3N0aWNzKQogICAgbXkgJEhpc3RvcnlOYW1lOwogICAgaWYgKCAkUGFyYW17UmVwbHlBcnRpY2xlSUR9ICkgewogICAgICAgICRIaXN0b3J5TmFtZSA9ICJSZXNwb25zZSBmcm9tIGlQaG9uZSAvJFBhcmFte1JlcGx5QXJ0aWNsZUlEfS8kQXJ0aWNsZUlEKSI7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkSGlzdG9yeU5hbWUgPSAiUmVzcG9uc2UgZnJvbSBpUGhvbmUgLyRBcnRpY2xlSUQpIgogICAgfQogICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5IaXN0b3J5QWRkKAogICAgICAgIE5hbWUgICAgICAgICA9PiAkSGlzdG9yeU5hbWUsCiAgICAgICAgSGlzdG9yeVR5cGUgID0+ICdNaXNjJywKICAgICAgICBUaWNrZXRJRCAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBDcmVhdGVVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwogICAgcmV0dXJuICRBcnRpY2xlSUQ7Cn0KCnN1YiBfVGlja2V0TW92ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgKHF3KFRpY2tldElEKSkgewogICAgICAgIGlmICggISRQYXJhbXskX30gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJObyAkXyBpcyBnaXZlbiEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLiIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgJFNlbGYtPntDb25maWd9CiAgICAgICAgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlJyk7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgICA9PiAnbW92ZScsCiAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfQogICAgKTsKCiAgICAjIGVycm9yIHNjcmVlbiwgZG9uJ3Qgc2hvdyB0aWNrZXQKICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJZb3UgbmVlZCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSBwZXJtaXNzaW9ucyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgZ2V0IGxvY2sgc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57UmVxdWlyZWRMb2NrfSApIHsKICAgICAgICBteSAkTG9ja2VkID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrR2V0KCBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9ICk7CiAgICAgICAgaWYgKCAhJExvY2tlZCApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldE93bmVyU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICBteSAkQWNjZXNzT2sgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPk93bmVyQ2hlY2soCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgT3duZXJJRCAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggISRBY2Nlc3NPayApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlNvcnJ5LCB5b3UgbmVlZCB0byBiZSB0aGUgb3duZXIgdG8gZG8gdGhpcyBhY3Rpb24hICIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiUGxlYXNlIGNoYW5nZSB0aGUgb3duZXIgZmlyc3QuIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyB0aWNrZXQgYXR0cmlidXRlcwogICAgbXkgJVRpY2tldCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0R2V0KCBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9ICk7CgogICAgIyB0cmFuc2Zvcm0gcGVuZGluZyB0aW1lLCB0aW1lIHN0YW1wIGJhc2VkIG9uIHVzZXIgdGltZSB6b25lCiAgICBpZiAoIElzU3RyaW5nV2l0aERhdGEoICRQYXJhbXtQZW5kaW5nRGF0ZX0gKSApIHsKICAgICAgICAkUGFyYW17UGVuZGluZ0RhdGV9ID0gJFNlbGYtPl9UcmFuc2Zvcm1EYXRlU2VsZWN0aW9uKAogICAgICAgICAgICBUaW1lU3RhbXAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRVc2VyVGltZVpvbmUgPSAkU2VsZi0+e1VzZXJUaW1lWm9uZX07CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBjb25maWcgZm9yIHRoZSBzY3JlZW4KICAgICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSA9ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH07CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aWNrZXQgb2JqZWN0CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSAkU2VsZi0+e0R5bmFtaWNGaWVsZE9iamVjdH0tPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXSwKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gfHwge30sCiAgICApOwoKICAgIG15ICVEeW5hbWljRmllbGRWYWx1ZXM7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30gKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAgICAjIHNraXAgYWxsIGR5bmFtaWMgZmllbGRzIHRoYXQgYXJlIG5vdCBkZXNpZ25lZCByZW5kZXIgaW4gaVBob25lIEFwcAogICAgICAgIG15ICRJc0lQaG9uZUNhcGFibGUgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNJUGhvbmVDYXBhYmxlJywKICAgICAgICApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkSXNJUGhvbmVDYXBhYmxlOwoKICAgICAgICAjIGV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0KICAgICAgICAgICAgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5JUGhvbmVGaWVsZFZhbHVlR2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVHJhbnNmb3JtRGF0ZXMgICAgID0+IDEsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICA9PiAkVXNlclRpbWVab25lIHx8IDAsCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgKTsKCiAgICAgICAgIyBwZXJmb3JtIHZhbGlkYXRpb24gb2YgdGhlIGRhdGEKICAgICAgICBteSAkVmFsaWRhdGlvblJlc3VsdCA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPklQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH0tPnsgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPT0gMiwKICAgICAgICApOwoKICAgICAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSgkVmFsaWRhdGlvblJlc3VsdCkgKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJDb3VsZCBub3QgcGVyZm9ybSB2YWxpZGF0aW9uIG9uIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0hIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgIyBwcm9wYWdhdGUgdmFsaWRhdGlvbiBlcnJvcgogICAgICAgIGlmICggJFZhbGlkYXRpb25SZXN1bHQtPntTZXJ2ZXJFcnJvcn0gKSB7CgogICAgICAgICAgICBteSAkRXJyb3JNZXNzYWdlID0gJFZhbGlkYXRpb25SZXN1bHQtPntFcnJvck1lc3NhZ2V9CiAgICAgICAgICAgICAgICB8fCAiRHluYW1pYyBmaWVsZCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9IGludmFsaWQiOwoKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIERlc3RRdWV1ZUlEIGxvb2t1cAogICAgaWYgKCAhJFBhcmFte1F1ZXVlSUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiTm8gUXVldWVJRCBpcyBnaXZlbiEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLiIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCAkUGFyYW17T3duZXJJRH0gKSB7CiAgICAgICAgJFBhcmFte05ld1VzZXJJRH0gPSAkUGFyYW17T3duZXJJRH07CiAgICB9CgogICAgIyBtb3ZlIHRpY2tldCAoc2VuZCBub3RpZmljYXRpb24gb2Ygbm8gbmV3IG93bmVyIGlzIHNlbGVjdGVkKQogICAgbXkgJEJvZHlBc1RleHQgPSAkUGFyYW17Qm9keX0gfHwgJyc7CiAgICBteSAkTW92ZSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UXVldWVTZXQoCiAgICAgICAgUXVldWVJRCAgICAgICAgICAgID0+ICRQYXJhbXtRdWV1ZUlEfSwKICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgVGlja2V0SUQgICAgICAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgU2VuZE5vTm90aWZpY2F0aW9uID0+ICRQYXJhbXtOZXdVc2VySUR9LAogICAgICAgIENvbW1lbnQgICAgICAgICAgICA9PiAkQm9keUFzVGV4dCwKICAgICk7CiAgICBpZiAoICEkTW92ZSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yOiB0aWNrZXQgbm90IG1vdmVkISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCBwcmlvcml0eQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntQcmlvcml0eX0gJiYgJFBhcmFte1ByaW9yaXR5SUR9ICkgewogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UHJpb3JpdHlTZXQoCiAgICAgICAgICAgIFRpY2tldElEICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgUHJpb3JpdHlJRCA9PiAkUGFyYW17UHJpb3JpdHlJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNldCBzdGF0ZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntTdGF0ZX0gJiYgJFBhcmFte1N0YXRlSUR9ICkgewoKICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFN0YXRlU2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBTdGF0ZUlEICA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgdW5sb2NrIHRoZSB0aWNrZXQgYWZ0ZXIgY2xvc2UKICAgICAgICBteSAlU3RhdGVEYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT57U3RhdGVPYmplY3R9LT5TdGF0ZUdldCgKICAgICAgICAgICAgSUQgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICk7CgogICAgICAgICMgc2V0IHVubG9jayBvbiBjbG9zZSBzdGF0ZQogICAgICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15jbG9zZS9pICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBuZXcgdXNlciBpcyBnaXZlbiBhbmQgc2VuZCBub3RpZmljYXRpb24KICAgIGlmICggJFBhcmFte05ld1VzZXJJRH0gKSB7CgogICAgICAgICMgbG9jawogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIHNldCBvd25lcgogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17TmV3VXNlcklEfSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICRCb2R5QXNUZXh0LAogICAgICAgICk7CiAgICB9CgogICAgIyBmb3JjZSB1bmxvY2sgaWYgbm8gbmV3IG93bmVyIGlzIHNldCBhbmQgdGlja2V0IHdhcyB1bmxvY2tlZAogICAgZWxzZSB7CiAgICAgICAgaWYgKCAkU2VsZi0+e1RpY2tldFVubG9ja30gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGFkZCBub3RlIChzZW5kIG5vIG5vdGlmaWNhdGlvbikKICAgIG15ICRNaW1lVHlwZSA9ICd0ZXh0L3BsYWluJzsKCiAgICBteSAlVXNlckRhdGEgPSAkU2VsZi0+e1VzZXJPYmplY3R9LT5HZXRVc2VyRGF0YSggVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CgogICAgbXkgJEFydGljbGVJRCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUNyZWF0ZSgKICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIEFydGljbGVUeXBlICAgID0+ICdub3RlLWludGVybmFsJywKICAgICAgICBTZW5kZXJUeXBlICAgICA9PiAnYWdlbnQnLAogICAgICAgIEZyb20gICAgICAgICAgID0+ICIkVXNlckRhdGF7VXNlckZpcnN0bmFtZX0gJFVzZXJEYXRhe1VzZXJMYXN0bmFtZX0gPCRVc2VyRGF0YXtVc2VyRW1haWx9PiIsCiAgICAgICAgU3ViamVjdCAgICAgICAgPT4gJFBhcmFte1N1YmplY3R9LAogICAgICAgIEJvZHkgICAgICAgICAgID0+ICRQYXJhbXtCb2R5fSwKICAgICAgICBNaW1lVHlwZSAgICAgICA9PiAkTWltZVR5cGUsCiAgICAgICAgQ2hhcnNldCAgICAgICAgPT4gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0RlZmF1bHRDaGFyc2V0JyksCiAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgSGlzdG9yeVR5cGUgICAgPT4gJ0FkZE5vdGUnLAogICAgICAgIEhpc3RvcnlDb21tZW50ID0+ICclJU1vdmUnLAogICAgICAgIE5vQWdlbnROb3RpZnkgID0+IDEsCiAgICApOwoKICAgIGlmICggISRBcnRpY2xlSUQgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvcjogQ2FuJ3QgY3JlYXRlIGFuIGFydGljbGUgZm9yIHRoZSBtb3ZlZCB0aWNrZXQiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IGR5bmFtaWMgZmllbGRzCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CgogICAgICAgICMgc2V0IHRoZSBvYmplY3QgSUQgKFRpY2tldElEIG9yIEFydGljbGVJRCkgZGVwZW5kaW5nIG9uIHRoZSBmaWVsZCBjb25maWdyYXRpb24KICAgICAgICBteSAkT2JqZWN0SUQKICAgICAgICAgICAgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gZXEgJ0FydGljbGUnID8gJEFydGljbGVJRCA6ICRQYXJhbXtUaWNrZXRJRH07CgogICAgICAgICMgc2V0IHRoZSB2YWx1ZQogICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+VmFsdWVTZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJE9iamVjdElELAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgdGltZSBhY2NvdW50aW5nCiAgICBpZiAoICRQYXJhbXtUaW1lVW5pdHN9ICkgewogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0QWNjb3VudFRpbWUoCiAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgVGltZVVuaXQgID0+ICRQYXJhbXtUaW1lVW5pdHN9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICBpZiAoJEFydGljbGVJRCkgewogICAgICAgIHJldHVybiAkQXJ0aWNsZUlEOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgaWYgKCRNb3ZlKSB7CiAgICAgICAgICAgIHJldHVybiAkUGFyYW17UXVldWVJRH07CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIC0xOwoKfQoKc3ViIF9HZXRDb21wb3NlRGVmYXVsdHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VGlja2V0SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTm8gVGlja2V0SUQgZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVDb21wb3NlRGF0YTsKCiAgICAjIGdldCBsYXN0IGN1c3RvbWVyIGFydGljbGUgb3Igc2VsZWN0ZWQgYXJ0aWNsZSAuLi4KICAgIG15ICVEYXRhOwogICAgaWYgKCAkUGFyYW17QXJ0aWNsZUlEfSApIHsKICAgICAgICAlRGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUdldCggQXJ0aWNsZUlEID0+ICRQYXJhbXtBcnRpY2xlSUR9ICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAlRGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUxhc3RDdXN0b21lckFydGljbGUoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGFydGljbGUgdHlwZSBhbmQgcmVwbGFjZSBUbyB3aXRoIEZyb20gKGluIGNhc2UpCiAgICBpZiAoICREYXRhe1NlbmRlclR5cGV9ICF+IC9jdXN0b21lci8gKSB7CiAgICAgICAgbXkgJFRvICAgPSAkRGF0YXtUb307CiAgICAgICAgbXkgJEZyb20gPSAkRGF0YXtGcm9tfTsKCiAgICAgICAgIyBzZXQgT3JpZ0Zyb20gZm9yIGNvcnJlY3QgZW1haWwgcXVvdGVpbmcgKHh4eHggd3JvdGUpCiAgICAgICAgJERhdGF7T3JpZ0Zyb219ID0gJERhdGF7RnJvbX07CgogICAgICAgICMgcmVwbGFjZSBGcm9tL1RvLCBUby9Gcm9tIGJlY2F1c2Ugc2VuZGVyIGlzIGFnZW50CiAgICAgICAgJERhdGF7RnJvbX0gICAgPSAkVG87CiAgICAgICAgJERhdGF7VG99ICAgICAgPSAkRGF0YXtGcm9tfTsKICAgICAgICAkRGF0YXtSZXBseVRvfSA9ICcnOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgc2V0IE9yaWdGcm9tIGZvciBjb3JyZWN0IGVtYWlsIHF1b3RlaW5nICh4eHh4IHdyb3RlKQogICAgICAgICREYXRhe09yaWdGcm9tfSA9ICREYXRhe0Zyb219OwogICAgfQoKICAgICMgYnVpbGQgT3JpZ0Zyb21OYW1lICh0byBvbmx5IHVzZSB0aGUgcmVhbG5hbWUpCiAgICAkRGF0YXtPcmlnRnJvbU5hbWV9ID0gJERhdGF7T3JpZ0Zyb219OwogICAgJERhdGF7T3JpZ0Zyb21OYW1lfSA9fiBzLzwuKj58XCguKlwpfFwifDt8LC8vZzsKICAgICREYXRhe09yaWdGcm9tTmFtZX0gPX4gcy8oICQpfCggICQpLy9nOwoKICAgIG15ICVUaWNrZXQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCgKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGdldCBjdXN0b21lciBkYXRhCiAgICBteSAlQ3VzdG9tZXI7CiAgICBpZiAoICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9ICkgewogICAgICAgICVDdXN0b21lciA9ICRTZWxmLT57Q3VzdG9tZXJVc2VyT2JqZWN0fS0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICAgICAgVXNlciA9PiAkVGlja2V0e0N1c3RvbWVyVXNlcklEfQogICAgICAgICk7CiAgICB9CgogICAgIyBwcmVwYXJlIGJvZHksIHN1YmplY3QsIFJlcGx5VG8gLi4uCiAgICAjIHJld3JhcCBib2R5IGlmIGV4aXN0cwogICAgaWYgKCAkRGF0YXtCb2R5fSApIHsKICAgICAgICAkRGF0YXtCb2R5fSA9fiBzL1x0LyAvZzsKICAgICAgICBteSAkUXVvdGUgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6UXVvdGUnKTsKICAgICAgICBpZiAoJFF1b3RlKSB7CiAgICAgICAgICAgICREYXRhe0JvZHl9ID1+IHMvXG4vXG4kUXVvdGUgL2c7CiAgICAgICAgICAgICREYXRhe0JvZHl9ID0gIlxuJFF1b3RlICIgLiAkRGF0YXtCb2R5fTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICREYXRhe0JvZHl9ID0gIlxuIiAuICREYXRhe0JvZHl9OwogICAgICAgICAgICBpZiAoICREYXRhe0NyZWF0ZWR9ICkgewogICAgICAgICAgICAgICAgJERhdGF7Qm9keX0gPSAiRGF0ZTogJERhdGF7Q3JlYXRlZH1cbiIgLiAkRGF0YXtCb2R5fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKHF3KFN1YmplY3QgUmVwbHlUbyBSZXBseS1UbyBDYyBUbyBGcm9tKSkgewogICAgICAgICAgICAgICAgaWYgKCAkRGF0YXskX30gKSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7Qm9keX0gPSAiJF86ICREYXRheyRffVxuIiAuICREYXRhe0JvZHl9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICREYXRhe0JvZHl9ID0gIlxuLS0tLSBNZXNzYWdlIGZyb20gJERhdGF7RnJvbX0gLS0tXG5cbiIgLiAkRGF0YXtCb2R5fTsKICAgICAgICAgICAgJERhdGF7Qm9keX0gLj0gIlxuLS0tLSBFbmQgTWVzc2FnZSAtLS1cbiI7CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgQ2MgcmVjaXBpZW50cyBzaG91bGQgYmUgdXNlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6Q29tcG9zZUV4Y2x1ZGVDY1JlY2lwaWVudHMnKSApIHsKICAgICAgICAkRGF0YXtDY30gPSAnJzsKICAgIH0KCiAgICAjIGFkZCBub3QgbG9jYWwgVG8gYWRkcmVzc2VzIHRvIENjCiAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICREYXRhe1RvfSApICkgewogICAgICAgIG15ICRJc0xvY2FsID0gJFNlbGYtPntTeXN0ZW1BZGRyZXNzfS0+U3lzdGVtQWRkcmVzc0lzTG9jYWxBZGRyZXNzKAogICAgICAgICAgICBBZGRyZXNzID0+ICRFbWFpbC0+YWRkcmVzcygpLAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJElzTG9jYWwgKSB7CiAgICAgICAgICAgIGlmICggJERhdGF7Q2N9ICkgewogICAgICAgICAgICAgICAgJERhdGF7Q2N9IC49ICcsICc7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJERhdGF7Q2N9IC49ICRFbWFpbC0+Zm9ybWF0KCk7CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgUmVwbHlUbwogICAgaWYgKCAkRGF0YXtSZXBseVRvfSApIHsKICAgICAgICAkRGF0YXtUb30gPSAkRGF0YXtSZXBseVRvfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICREYXRhe1RvfSA9ICREYXRhe0Zyb219OwoKICAgICAgICAjIHRyeSB0byByZW1vdmUgc29tZSB3cm9uZyB0ZXh0IHRvIGZyb20gbGluZSAoYnkgd2F5IG9mIC4uLikKICAgICAgICAjIGFkZGVkIGJ5IHNvbWUgc3RyYW5nZSBtYWlsIHByb2dyYW1zIG9uIGJvdW5jZQogICAgICAgICREYXRhe1RvfSA9fiBzLyguKz9cPC4rP1xALis/XD4pXHMrXChieVxzK3dheVxzK29mXHMrLis/XCkvJDEvaWc7CiAgICB9CgogICAgIyBnZXQgdG8gZW1haWwgKGp1c3QgInNvbWVAZXhhbXBsZS5jb20iKQogICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkRGF0YXtUb30gKSApIHsKICAgICAgICAkRGF0YXtUb0VtYWlsfSA9ICRFbWFpbC0+YWRkcmVzcygpOwogICAgfQoKICAgICMgdXNlIGN1c3RvbWVyIGRhdGFiYXNlIGVtYWlsCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpDb21wb3NlQWRkQ3VzdG9tZXJBZGRyZXNzJykgKSB7CgogICAgICAgICMgY2hlY2sgaWYgY3VzdG9tZXIgaXMgaW4gcmVjaXBpZW50IGxpc3QKICAgICAgICBpZiAoICRDdXN0b21lcntVc2VyRW1haWx9ICYmICREYXRhe1RvRW1haWx9ICF+IC9eXFEkQ3VzdG9tZXJ7VXNlckVtYWlsfVxFJC9pICkgewoKICAgICAgICAgICAgIyByZXBsYWNlIFRvIHdpdGggY3VzdG9tZXJzIGRhdGFiYXNlIGFkZHJlc3MKICAgICAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6Q29tcG9zZVJlcGxhY2VTZW5kZXJBZGRyZXNzJykgKSB7CiAgICAgICAgICAgICAgICAkRGF0YXtUb30gPSAkQ3VzdG9tZXJ7VXNlckVtYWlsfTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBhZGQgY3VzdG9tZXJzIGRhdGFiYXNlIGFkZHJlc3MgdG8gQ2MKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICBpZiAoICREYXRhe0NjfSApIHsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtDY30gLj0gJywgJyAuICRDdXN0b21lcntVc2VyRW1haWx9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7Q2N9ID0gJEN1c3RvbWVye1VzZXJFbWFpbH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBmaW5kIGR1cGxpY2F0ZSBhZGRyZXNzZXMKICAgIG15ICVSZWNpcGllbnQ7CiAgICBmb3IgbXkgJFR5cGUgKHF3KFRvIENjIEJjYykpIHsKICAgICAgICBpZiAoICREYXRheyRUeXBlfSApIHsKICAgICAgICAgICAgbXkgJE5ld0xpbmUgPSAnJzsKICAgICAgICAgICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkRGF0YXskVHlwZX0gKSApIHsKICAgICAgICAgICAgICAgIG15ICRBZGRyZXNzID0gbGMgJEVtYWlsLT5hZGRyZXNzKCk7CgogICAgICAgICAgICAgICAgIyBvbmx5IHVzZSBlbWFpbCBhZGRyZXNzZXMgd2l0aCBAIGluc2lkZQogICAgICAgICAgICAgICAgaWYgKCAkQWRkcmVzcyAmJiAkQWRkcmVzcyA9fiAvQC8gJiYgISRSZWNpcGllbnR7JEFkZHJlc3N9ICkgewogICAgICAgICAgICAgICAgICAgICRSZWNpcGllbnR7JEFkZHJlc3N9ID0gMTsKICAgICAgICAgICAgICAgICAgICBteSAkSXNMb2NhbCA9ICRTZWxmLT57U3lzdGVtQWRkcmVzc30tPlN5c3RlbUFkZHJlc3NJc0xvY2FsQWRkcmVzcygKICAgICAgICAgICAgICAgICAgICAgICAgQWRkcmVzcyA9PiAkQWRkcmVzcywKICAgICAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgICAgIGlmICggISRJc0xvY2FsICkgewogICAgICAgICAgICAgICAgICAgICAgICBpZiAoJE5ld0xpbmUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICROZXdMaW5lIC49ICcsICc7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgJE5ld0xpbmUgLj0gJEVtYWlsLT5mb3JtYXQoKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJERhdGF7JFR5cGV9ID0gJE5ld0xpbmU7CiAgICAgICAgfQogICAgfQoKICAgICRQYXJhbXtSZXNwb25zZUlEfSA9IDE7CgogICAgIyBzZXQgbm8gUmljaFRleHQgaW4gb3JkZXIgdG8gZ2V0IHRleHQvcGxhaW4gdGVtcGxhdGUgZm9yIHRoZSBpcGhvbmUKICAgICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+U2V0KCBLZXkgPT4gJ0Zyb250ZW5kOjpSaWNoVGV4dCcsIFZhbHVlID0+IDAgKTsKCiAgICAjIGdldCB0ZW1wbGF0ZQogICAgbXkgJFRlbXBsYXRlR2VuZXJhdG9yID0gS2VybmVsOjpTeXN0ZW06OlRlbXBsYXRlR2VuZXJhdG9yLT5uZXcoICV7JFNlbGZ9ICk7CiAgICBteSAlUmVzcG9uc2UgICAgICAgICAgPSAkVGVtcGxhdGVHZW5lcmF0b3ItPlJlc3BvbnNlKAogICAgICAgIFRpY2tldElEICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBBcnRpY2xlSUQgID0+ICRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgIFJlc3BvbnNlSUQgPT4gJFBhcmFte1Jlc3BvbnNlSUR9LAogICAgICAgIERhdGEgICAgICAgPT4gXCVEYXRhLAogICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICk7CiAgICAkRGF0YXtTYWx1dGF0aW9ufSAgICAgICA9ICRSZXNwb25zZXtTYWx1dGF0aW9ufTsKICAgICREYXRhe1NpZ25hdHVyZX0gICAgICAgID0gJFJlc3BvbnNle1NpZ25hdHVyZX07CiAgICAkRGF0YXtTdGFuZGFyZFJlc3BvbnNlfSA9ICRSZXNwb25zZXtTdGFuZGFyZFJlc3BvbnNlfTsKCiAgICAlRGF0YSA9ICRUZW1wbGF0ZUdlbmVyYXRvci0+QXR0cmlidXRlcygKICAgICAgICBUaWNrZXRJRCAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgQXJ0aWNsZUlEICA9PiAkUGFyYW17QXJ0aWNsZUlEfSwKICAgICAgICBSZXNwb25zZUlEID0+ICRQYXJhbXtSZXNwb25zZUlEfSwKICAgICAgICBEYXRhICAgICAgID0+IFwlRGF0YSwKICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICBteSAkU2FsdXRhdGlvbiA9ICREYXRhe1NhbHV0YXRpb259OwogICAgbXkgJE9yaWdGcm9tICAgPSAkRGF0YXtPcmlnRnJvbX07CiAgICBteSAkV3JvdGUgICAgICA9ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ3dyb3RlJyk7CiAgICBteSAkQm9keSAgICAgICA9ICREYXRhe0JvZHl9OwogICAgbXkgJFNpZ25hdHVyZSAgPSAkRGF0YXtTaWduYXR1cmV9OwoKICAgIG15ICRSZXNwb25zZUZvcm1hdAogICAgICAgID0gIiRTYWx1dGF0aW9uIFxuICRPcmlnRnJvbSAkV3JvdGU6IFxuICRCb2R5IFxuICRTaWduYXR1cmUgXG4iOwoKICAgICMgcmVzdG9yZSBxZGF0YSBmb3JtYXR0aW5nIGZvciBPdXRwdXQgcmVwbGFjZW1lbnQKICAgICRSZXNwb25zZUZvcm1hdCA9fiBzLyZxdW90Oy8iL2dpOwoKICAgICMgcHJlcGFyZSBzdWJqZWN0CiAgICBteSAkVG4gPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldE51bWJlckxvb2t1cCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwogICAgJFBhcmFte1N1YmplY3R9ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTdWJqZWN0QnVpbGQoCiAgICAgICAgVGlja2V0TnVtYmVyID0+ICRUbiwKICAgICAgICBTdWJqZWN0ID0+ICRQYXJhbXtTdWJqZWN0fSB8fCAnJywKICAgICk7CgogICAgIyBjaGVjayBzb21lIHZhbHVlcwogICAgZm9yIG15ICRMaW5lIChxdyhUbyBDYyBCY2MpKSB7CiAgICAgICAgbmV4dCBpZiAhJERhdGF7JExpbmV9OwogICAgICAgIGZvciBteSAkRW1haWwgKCBNYWlsOjpBZGRyZXNzLT5wYXJzZSggJERhdGF7JExpbmV9ICkgKSB7CiAgICAgICAgICAgIGlmICggISRTZWxmLT57Q2hlY2tJdGVtT2JqZWN0fS0+Q2hlY2tFbWFpbCggQWRkcmVzcyA9PiAkRW1haWwtPmFkZHJlc3MoKSApICkgewogICAgICAgICAgICAgICAgbXkgJFNlcnZlckVycm9yID0gJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0Vycm9yKCk7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBvbiBmaWVsZCBcIiRMaW5lXCIgXG4gJFNlcnZlckVycm9yIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICBpZiAoICREYXRhe0Zyb219ICkgewogICAgICAgIGZvciBteSAkRW1haWwgKCBNYWlsOjpBZGRyZXNzLT5wYXJzZSggJERhdGF7RnJvbX0gKSApIHsKICAgICAgICAgICAgaWYgKCAhJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0VtYWlsKCBBZGRyZXNzID0+ICRFbWFpbC0+YWRkcmVzcygpICkgKSB7CiAgICAgICAgICAgICAgICBteSAkU2VydmVyRXJyb3IgPSAkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0tPkNoZWNrRXJyb3IoKTsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIG9uIGZpZWxkIFwiRnJvbVwiICBcbiAkU2VydmVyRXJyb3IiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAlQ29tcG9zZURhdGEgPSAoCiAgICAgICAgRnJvbSAgICA9PiAkRGF0YXtGcm9tfSwKICAgICAgICBUbyAgICAgID0+ICREYXRhe1RvfSwKICAgICAgICBDYyAgICAgID0+ICREYXRhe0NjfSwKICAgICAgICBCY2MgICAgID0+ICREYXRhe0JjY30sCiAgICAgICAgUmVwbHlUbyA9PiAkRGF0YXtSZXBseVRvfSwKICAgICAgICBTdWJqZWN0ID0+ICREYXRhe1N1YmplY3R9LAogICAgICAgIEJvZHkgICAgPT4gJFJlc3BvbnNlRm9ybWF0LAogICAgKTsKICAgIHJldHVybiAlQ29tcG9zZURhdGE7Cn0KCnN1YiBfVHJhbnNmb3JtRGF0ZVNlbGVjdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGltZSB6b25lIHRyYW5zbGF0aW9uIGlmIG5lZWRlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGltZVpvbmVVc2VyJykgJiYgJFNlbGYtPntVc2VyVGltZVpvbmV9ICkgewogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17VGltZVN0YW1wfSwKICAgICAgICApOwogICAgICAgICRTeXN0ZW1UaW1lID0gJFN5c3RlbVRpbWUgLSAoICRTZWxmLT57VXNlclRpbWVab25lfSAqIDM2MDAgKTsKICAgICAgICAkUGFyYW17VGltZVN0YW1wfQogICAgICAgICAgICA9ICRTZWxmLT57VXNlclRpbWVPYmplY3R9LT5TeXN0ZW1UaW1lMlRpbWVTdGFtcCggU3lzdGVtVGltZSA9PiAkU3lzdGVtVGltZSwgKTsKICAgIH0KICAgIHJldHVybiAkUGFyYW17VGltZVN0YW1wfTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDEuMSkKL1Byb2R1Y2VyIChBcGFjaGUgRk9QIFZlcnNpb24gMS4xKQovQ3JlYXRpb25EYXRlIChEOjIwMTQwOTE5MDAzNDI1KzAyJzAwJykKPj4KZW5kb2JqCjUgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAxMiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJydlndYU+cex99zTvZgJCFsCHuGpUAAkRGmgAzZohCSAAESICQM90BUsKKoyFIEKYpYsFqG1IkoDori3g1SBJRarOLC0USep/X29t7b2+8f53ye3/v7vef9jfd5DgCkgEyuMBdWAUAokogj/L0ZsXHxDOwAgAEeYIA9ABxubrZXWFgwkCvQl83IlTuBf9GrmwBSvK8xFXuB/0+q3GyxBAAoTM6zePxcrpyL5JyZL8lW2CflTEvOUDCMUrBYfkA5ayg4dYatP/vMsKeCeUIRT86Rcs7mCXkK7pXzhjwpX86IIpfiPAE/X87X5WycKRUK5PxGESvkc+Q5oEgKu4TPTZOznZxJ4sgItpznAIAjpX7ByV+whF8gUSTFzsouFAtS0yQMc64Fw97FhcUI4Odn8iUSZhiHm8ER8xjsLGE2R1QIwEzOn0VR1JYhL7KTvYuTE9PBxv6LQv3Xxb8pRW9n6EX4555B9P4/bH/ll9UAAGtKXpstf9iSqwDoXAeAxt0/bMZ7AFCW963j8hf50BXzkiaRZLva2ubn59sI+FwbRUF/1/90+Bv64ns2iu1+Lw/Dh5/CkWZKGIq6cbMys6RiRm42h8tnMP88xP848K/PYR3BT+GL+SJ5RLR8ygSiVHm7RTyBRJAlYghE/6mJ/zDsT5qZa7mojR8BLdEGqFymAeTnfoCiEgGSsFu+Av3et2B8NFDcvBj90Zm5/yzo33eFyxSPXEHq5zh2RCSDKxXnzawpriVAAwJQBjSgCfSAETAHTOAAnIEb8AS+YB4IBZEgDiwGXJAGhEAM8sEysBoUg1KwBewA1aAONIJm0AoOg05wDJwG58AlcAXcAPeADIyAp2ASvALTEARhITJEhTQhfcgEsoIcIBY0F/KFgqEIKA5KglIhESSFlkFroVKoHKqG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K0b1R5vHHMaOjfuNX3my8MnI0+yn0xPFP6v+XPvM/Nl3v3j+0j8ZOznyXPz806+bXmi+2Pdy9sueqbCph6+Er6Zfl7zRfLP/Lett37uYd6PT+e+x7ys/WHzo/hj08f4n4adPvwHJ4vTiCmVuZHN0cmVhbQplbmRvYmoKNiAwIG9iagpbL0lDQ0Jhc2VkIDUgMCBSXQplbmRvYmoKNyAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDEzIDAgUgo+PgpzdHJlYW0KPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz48eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIj4KPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHJkZjphYm91dD0iIj4KPGRjOmxhbmd1YWdlPmVuPC9kYzpsYW5ndWFnZT4KPGRjOmZvcm1hdD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KPGRjOmRhdGU+MjAxNC0wOS0xOVQwMDozNDoyNSswMjowMDwvZGM6ZGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiByZGY6YWJvdXQ9IiI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8cGRmOlByb2R1Y2VyPkFwYWNoZSBGT1AgVmVyc2lvbiAxLjE8L3BkZjpQcm9kdWNlcj4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiByZGY6YWJvdXQ9IiI+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE0LTA5LTE5VDAwOjM0OjI1KzAyOjAwPC94bXA6Q3JlYXRlRGF0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MCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMSAwIFIKICAvQ29udGVudHMgNTcgMCBSCj4+CgplbmRvYmoKNTggMCBvYmoKMTY0MQplbmRvYmoKNjAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMTggMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA2NzkuNjI5IDExNy4xOSA2ODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDYwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC4yNzggNjc5LjYyOSA1NDIuOTU4IDY4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA2NjcuNjI5IDE1My44MTEgNjc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2NCAwIFIKL0ggL0kKCj4+CmVuZG9iago2NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMzM4IDY2Ny42MjkgNTQyLjY5OCA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNzAwLjggbnVsbF0KPj4KZW5kb2JqCjY4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY1NS42MjkgMTU1LjEzNiA2NjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi40ODkgNjU1LjYyOSA1NDIuODQ5IDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA2NTguNCBudWxsXQo+PgplbmRvYmoKNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQzLjYyOSAxODUuMTI2IDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjI1MiA2NDMuNjI5IDU0Mi42MTIgNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MCAwIFIKL0ggL0kKCj4+CmVuZG9iago3MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDYzOC4wIG51bGxdCj4+CmVuZG9iago3NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2MzEuNjI5IDIxMi41MDEgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MyAwIFIKL0ggL0kKCj4+CmVuZG9iago3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMTg3IDYzMS42MjkgNTQyLjU0NyA2NDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDczIDAgUgovSCAvSQoKPj4KZW5kb2JqCjc2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNTg2LjAgbnVsbF0KPj4KZW5kb2JqCjc3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDYxOS42MjkgMjExLjUxMSA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4xOTggNjE5LjYyOSA1NDIuNTU4IDYyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA1MzQuMCBudWxsXQo+PgplbmRvYmoKODAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjA3LjYyOSAyMzAuNjU4IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKODEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjAzNSA2MDcuNjI5IDU0Mi4zOTUgNjE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3OSAwIFIKL0ggL0kKCj4+CmVuZG9iago4MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDQ4Mi4wIG51bGxdCj4+CmVuZG9iago4MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1OTUuNjI5IDIyMy4xODEgNjA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MiAwIFIKL0ggL0kKCj4+CmVuZG9iago4NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMDk3IDU5NS42MjkgNTQyLjQ1NyA2MDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNDMwLjAgbnVsbF0KPj4KZW5kb2JqCjg2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDU4My42MjkgMjE0LjU4NSA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4xNzIgNTgzLjYyOSA1NDIuNTMyIDU5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODUgMCBSCi9IIC9JCgo+PgplbmRvYmoKODggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAzNzguMCBudWxsXQo+PgplbmRvYmoKODkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTcxLjYyOSAyMzkuMzA1IDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODggMCBSCi9IIC9JCgo+PgplbmRvYmoKOTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM1Ljk2MSA1NzEuNjI5IDU0Mi4zMjEgNTgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4OCAwIFIKL0ggL0kKCj4+CmVuZG9iago5MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDMyNi4wIG51bGxdCj4+CmVuZG9iago5MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NTkuNjI5IDE4OC44NjkgNTY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MSAwIFIKL0ggL0kKCj4+CmVuZG9iago5MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuNTc2IDU1OS42MjkgNTQyLjkzNiA1NjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMzA1LjYgbnVsbF0KPj4KZW5kb2JqCjk1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDU0Ny42MjkgMjE2Ljc4OCA1NTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjk2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi41MDUgNTQ3LjYyOSA1NDIuODY1IDU1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAyNjUuNiBudWxsXQo+PgplbmRvYmoKOTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTM1LjYyOSAyMDkuNTU5IDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjU2NSA1MzUuNjI5IDU0Mi45MjUgNTQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAyMjUuNiBudWxsXQo+PgplbmRvYmoKMTAxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDUyMy42MjkgMjEzLjA3OSA1MzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjUzNSA1MjMuNjI5IDU0Mi44OTUgNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTAzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMTg1LjYgbnVsbF0KPj4KZW5kb2JqCjEwNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1MTEuNjI5IDIzMi4zMzcgNTIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4zNzMgNTExLjYyOSA1NDIuNzMzIDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTAzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDE0NS42IG51bGxdCj4+CmVuZG9iagoxMDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNDk5LjYyOSAyMTIuNjY0IDUwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuNTQgNDk5LjYyOSA1NDIuOSA1MDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwNiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTEwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDg3LjYyOSAyMDQuOTI5IDQ5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuOTU2IDQ4Ny42MjkgNTQyLjMxNiA0OTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKMTEzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ3NS42MjkgMTczLjM4MyA0ODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjM0NCA0NzUuNjI5IDU0Mi43MDQgNDg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNjI2LjQgbnVsbF0KPj4KZW5kb2JqCjExNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NjMuNjI5IDE2NC44ODggNDczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi41ODMgNDYzLjYyOSA1NDIuOTQzIDQ3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDU1OC4wIG51bGxdCj4+CmVuZG9iagoxMTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDUxLjYyOSAyMDkuNTAzIDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMDYgNDUxLjYyOSA1NDIuNDIgNDYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNDg5LjYgbnVsbF0KPj4KZW5kb2JqCjEyMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MzkuNjI5IDIyMS43MTkgNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS45NjIgNDM5LjYyOSA1NDIuMzIyIDQ0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0MjcuNjI5IDE0OS4zNjcgNDM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNi4zNzIgNDI3LjYyOSA1NDIuNzMyIDQzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iagoxMjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDE1LjYyOSAxOTguOTU2IDQyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMTQyIDQxNS42MjkgNTQyLjUwMiA0MjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA2MDIuNCBudWxsXQo+PgplbmRvYmoKMTMxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQwMy42MjkgMTk0LjU5MSA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjE3OCA0MDMuNjI5IDU0Mi41MzggNDEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTMzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEzNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDM5MS42MjkgMTQ3LjU5OCA0MDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM2LjM4NiAzOTEuNjI5IDU0Mi43NDYgNDAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNzAwLjggbnVsbF0KPj4KZW5kb2JqCjEzNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNzkuNjI5IDI0Mi43ODkgMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNS43OTYgMzc5LjYyOSA1NDIuMTU2IDM4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MCAwIFIgL1hZWiA3Mi4wIDYwMC40IG51bGxdCj4+CmVuZG9iagoxNDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzY3LjYyOSAyNDQuOTY0IDM3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzUuNzggMzY3LjYyOSA1NDIuMTQgMzc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUwIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjE0MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDM1NS42MjkgMTYxLjc2IDM2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMjc4IDM1NS42MjkgNTQyLjYzOCAzNjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTAgMCBSIC9YWVogNzIuMCA2NjYuNzQ5IG51bGxdCj4+CmVuZG9iagoxNDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzQzLjYyOSAyMTIuMjE5IDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMDM2IDM0My42MjkgNTQyLjM5NiAzNTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTAgMCBSIC9YWVogNzIuMCA2MDIuMjE3IG51bGxdCj4+CmVuZG9iagoxNDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzMxLjYyOSAxOTYuMTQzIDM0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzYuMTY0IDMzMS42MjkgNTQyLjUyNCAzNDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTAgMCBSIC9YWVogNzIuMCA1MjUuNjg1IG51bGxdCj4+CmVuZG9iagoxNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzE5LjYyOSAzNzkuNDA3IDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNzExIDMxOS42MjkgNTQxLjA3MSAzMjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTAgMCBSIC9YWVogNzIuMCA0NDkuMTUzIG51bGxdCj4+CmVuZG9iagoxNTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzA3LjYyOSAzNjMuODY5IDMxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODM1IDMwNy42MjkgNTQxLjE5NSAzMTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTAgMCBSIC9YWVogNzIuMCAzNzIuNjIxIG51bGxdCj4+CmVuZG9iagoxNTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjk1LjYyOSAzNTguNjg5IDMwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODc1IDI5NS42MjkgNTQxLjIzNSAzMDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTAgMCBSIC9YWVogNzIuMCAzMDguMDg5IG51bGxdCj4+CmVuZG9iagoxNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjgzLjYyOSAzODYuNzE4IDI5My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTYwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjUzIDI4My42MjkgNTQxLjAxMyAyOTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTAgMCBSIC9YWVogNzIuMCAyNDMuNTU3IG51bGxdCj4+CmVuZG9iagoxNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjcxLjYyOSAzODYuMDQxIDI4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjU5IDI3MS42MjkgNTQxLjAxOSAyODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTAgMCBSIC9YWVogNzIuMCAxNzkuMDI1IG51bGxdCj4+CmVuZG9iagoxNjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjU5LjYyOSAzNTMuNDQgMjY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC45MTcgMjU5LjYyOSA1NDEuMjc3IDI2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MCAwIFIgL1hZWiA3Mi4wIDExNC40OTMgbnVsbF0KPj4KZW5kb2JqCjE3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNDcuNjI5IDM4OS44MDYgMjU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTcxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC42MjkgMjQ3LjYyOSA1NDAuOTg5IDI1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MyAwIFIgL1hZWiA3Mi4wIDcwOC4wIG51bGxdCj4+CmVuZG9iagoxNzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjM1LjYyOSA0MDUuMjE1IDI0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNTA3IDIzNS42MjkgNTQwLjg2NyAyNDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTMgMCBSIC9YWVogNzIuMCA2NDIuNjY5IG51bGxdCj4+CmVuZG9iagoxNzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjIzLjYyOSAzNTcuMTM1IDIzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODg4IDIyMy42MjkgNTQxLjI0OCAyMzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTMgMCBSIC9YWVogNzIuMCA1NjUuMzM4IG51bGxdCj4+CmVuZG9iagoxNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjExLjYyOSA0MjQuNTc4IDIyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTc4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuMzUzIDIxMS42MjkgNTQwLjcxMyAyMjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTMgMCBSIC9YWVogNzIuMCA1MDAuMDA3IG51bGxdCj4+CmVuZG9iagoxODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTk5LjYyOSAzOTEuNTY5IDIwOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjE1IDE5OS42MjkgNTQwLjk3NSAyMDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTMgMCBSIC9YWVogNzIuMCA0MzQuNjc2IG51bGxdCj4+CmVuZG9iagoxODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTg3LjYyOSAzODMuMjIyIDE5Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjgxIDE4Ny42MjkgNTQxLjA0MSAxOTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTMgMCBSIC9YWVogNzIuMCAzNjkuMzQ1IG51bGxdCj4+CmVuZG9iagoxODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTc1LjYyOSAzOTEuNjc4IDE4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjE0IDE3NS42MjkgNTQwLjk3NCAxODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTMgMCBSIC9YWVogNzIuMCAyOTIuMDE0IG51bGxdCj4+CmVuZG9iagoxOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTYzLjYyOSA0MTcuNTk2IDE3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNDA5IDE2My42MjkgNTQwLjc2OSAxNzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTMgMCBSIC9YWVogNzIuMCAyMTQuNjgzIG51bGxdCj4+CmVuZG9iagoxOTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTUxLjYyOSAzNzkuODQ1IDE2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTkzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNzA3IDE1MS42MjkgNTQxLjA2NyAxNjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTMgMCBSIC9YWVogNzIuMCAxNDkuMzUyIG51bGxdCj4+CmVuZG9iagoxOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTM5LjYyOSA0MDAuMjg0IDE0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNTQ1IDEzOS42MjkgNTQwLjkwNSAxNDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTYgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMjAwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEyNy42MjkgMzkzLjE3MiAxMzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjYwMiAxMjcuNjI5IDU0MC45NjIgMTM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjAyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU2IDAgUiAvWFlaIDcyLjAgNjM4LjQ0MiBudWxsXQo+PgplbmRvYmoKMjAzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDExNS42MjkgMzc4LjQ4MSAxMjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjcxOSAxMTUuNjI5IDU0MS4wNzkgMTI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjA1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU2IDAgUiAvWFlaIDcyLjAgNTYzLjEzNiBudWxsXQo+PgplbmRvYmoKMjA2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEwMy42MjkgMzYyLjk0MiAxMTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0Ljg0MiAxMDMuNjI5IDU0MS4yMDIgMTEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjA4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU2IDAgUiAvWFlaIDcyLjAgNDg3LjgzIG51bGxdCj4+CmVuZG9iagoyMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgOTEuNjI5IDM1Ny43NjMgMTAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDgg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ODcgMCBSCjg5IDAgUgo5MCAwIFIKOTIgMCBSCjkzIDAgUgo5NSAwIFIKOTYgMCBSCjk4IDAgUgo5OSAwIFIKMTAxIDAgUgoxMDIgMCBSCjEwNCAwIFIKMTA1IDAgUgoxMDcgMCBSCjEwOCAwIFIKMTEwIDAgUgoxMTEgMCBSCjExMyAwIFIKMTE0IDAgUgoxMTYgMCBSCjExNyAwIFIKMTE5IDAgUgoxMjAgMCBSCjEyMiAwIFIKMTIzIDAgUgoxMjUgMCBSCjEyNiAwIFIKMTI4IDAgUgoxMjkgMCBSCjEzMSAwIFIKMTMyIDAgUgoxMzQgMCBSCjEzNSAwIFIKMTM3IDAgUgoxMzggMCBSCjE0MCAwIFIKMTQxIDAgUgoxNDMgMCBSCjE0NCAwIFIKMTQ2IDAgUgoxNDcgMCBSCjE0OSAwIFIKMTUwIDAgUgoxNTIgMCBSCjE1MyAwIFIKMTU1IDAgUgoxNTYgMCBSCjE1OCAwIFIKMTU5IDAgUgoxNjEgMCBSCjE2MiAwIFIKMTY0IDAgUgoxNjUgMCBSCjE2NyAwIFIKMTY4IDAgUgoxNzAgMCBSCjE3MSAwIFIKMTczIDAgUgoxNzQgMCBSCjE3NiAwIFIKMTc3IDAgUgoxNzkgMCBSCjE4MCAwIFIKMTgyIDAgUgoxODMgMCBSCjE4NSAwIFIKMTg2IDAgUgoxODggMCBSCjE4OSAwIFIKMTkxIDAgUgoxOTIgMCBSCjE5NCAwIFIKMTk1IDAgUgoxOTcgMCBSCjE5OCAwIFIKMjAwIDAgUgoyMDEgMCBSCjIwMyAwIFIKMjA0IDAgUgoyMDYgMCBSCjIwNyAwIFIKMjA5IDAgUgoyMTAgMCBSCjIxMiAwIFIKMjEzIDAgUgpdCmVuZG9iago1OSAwIG9iago8PAogIC9SZXNvdXJjZXMgMyAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMSAwIFIKICAvQW5ub3RzIDYyIDAgUgogIC9Db250ZW50cyAyMTQgMCBSCj4+CgplbmRvYmoKMjE1IDAgb2Jq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Cj4+CmVuZG9iagoyMzkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTYgMCBSIC9YWVogNzIuMCAyODUuOTEyIG51bGxdCj4+CmVuZG9iagoyNDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjk3LjAwNSAzNzUuMzczIDcwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNzQzIDY5Ny4wMDUgNTQxLjEwMyA3MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTYgMCBSIC9YWVogNzIuMCAyMTAuNjA2IG51bGxdCj4+CmVuZG9iagoyNDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjg1LjAwNSAzODguODc5IDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjM2IDY4NS4wMDUgNTQwLjk5NiA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTYgMCBSIC9YWVogNzIuMCAxMzUuMyBudWxsXQo+PgplbmRvYmoKMjQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMzQ5LjczNSA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0Ljk0NyA2NzMuMDA1IDU0MS4zMDcgNjgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyNDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjYxLjAwNSAzNjMuMzYxIDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODM5IDY2MS4wMDUgNTQxLjE5OSA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgNjYyLjcwMiBudWxsXQo+PgplbmRvYmoKMjUyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY0OS4wMDUgMzQ5Ljg3NCA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0Ljk0NSA2NDkuMDA1IDU0MS4zMDUgNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDU5OS43MzQgbnVsbF0KPj4KZW5kb2JqCjI1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzcuMDA1IDQxNy4zMTcgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC40MTEgNjM3LjAwNSA1NDAuNzcxIDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCA1MzYuNzY2IG51bGxdCj4+CmVuZG9iagoyNTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjI1LjAwNSAzODYuMTMgNjM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC42NTggNjI1LjAwNSA1NDEuMDE4IDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCA0NzMuNzk4IG51bGxdCj4+CmVuZG9iagoyNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjEzLjAwNSAzNjAuMTczIDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODY0IDYxMy4wMDUgNTQxLjIyNCA2MjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgNDEwLjgzIG51bGxdCj4+CmVuZG9iagoyNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjAxLjAwNSAzOTcuOTU0IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNTY1IDYwMS4wMDUgNTQwLjkyNSA2MTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgMzQ3Ljg2MiBudWxsXQo+PgplbmRvYmoKMjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU4OS4wMDUgMzQ3LjQ5MyA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0Ljk2NCA1ODkuMDA1IDU0MS4zMjQgNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDI4NC44OTQgbnVsbF0KPj4KZW5kb2JqCjI3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NzcuMDA1IDM3NS45NjEgNTg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjcxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC43MzkgNTc3LjAwNSA1NDEuMDk5IDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCAyMjEuOTI2IG51bGxdCj4+CmVuZG9iagoyNzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTY1LjAwNSAzODQuNDE3IDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjcxIDU2NS4wMDUgNTQxLjAzMSA1NzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgMTQ2Ljk1OCBudWxsXQo+PgplbmRvYmoKMjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU1My4wMDUgNDEwLjMzNCA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjQ2NiA1NTMuMDA1IDU0MC44MjYgNTYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTQxLjAwNSAzOTMuMDIzIDU1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuNjAzIDU0MS4wMDUgNTQwLjk2MyA1NTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgNjUwLjQ0MiBudWxsXQo+PgplbmRvYmoKMjgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUyOS4wMDUgMzgzLjM4MSA1MzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjY3OSA1MjkuMDA1IDU0MS4wMzkgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDU4Ny4xMzYgbnVsbF0KPj4KZW5kb2JqCjI4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MTcuMDA1IDM5Ni43MDggNTI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC41NzQgNTE3LjAwNSA1NDAuOTM0IDUyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjg0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCA0OTkuODMgbnVsbF0KPj4KZW5kb2JqCjI4OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MDUuMDA1IDM4Mi4wMTcgNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC42OTEgNTA1LjAwNSA1NDEuMDUxIDUxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjg3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCA0MjQuNTI0IG51bGxdCj4+CmVuZG9iagoyOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDkzLjAwNSAzNjYuNDc4IDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzQuODEzIDQ5My4wMDUgNTQxLjE3MyA1MDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgMzQ5LjIxOCBudWxsXQo+PgplbmRvYmoKMjk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ4MS4wMDUgMzYxLjI5OSA0OTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0Ljg1NSA0ODEuMDA1IDU0MS4yMTUgNDkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDI4NS45MTIgbnVsbF0KPj4KZW5kb2JqCjI5NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NjkuMDA1IDM4OS4zMjggNDc4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC42MzMgNDY5LjAwNSA1NDAuOTkzIDQ3OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCAyMjIuNjA2IG51bGxdCj4+CmVuZG9iagozMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDU3LjAwNSAzNTYuMDUgNDY2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzAxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC44OTcgNDU3LjAwNSA1NDEuMjU3IDQ2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwMiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCAxNDcuMyBudWxsXQo+PgplbmRvYmoKMzAzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ0NS4wMDUgMzc4LjkwOSA0NTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjcxNSA0NDUuMDA1IDU0MS4wNzUgNDU0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagozMDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDMzLjAwNSAzOTIuMzkgNDQyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4xOTggNDMzLjAwNSA1NDAuOTE4IDQ0Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzA1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCA2NDkuNzU2IG51bGxdCj4+CmVuZG9iagozMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDIxLjAwNSAzNTMuMjQ2IDQzMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzA4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguNTEgNDIxLjAwNSA1NDEuMjMgNDMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzExIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDU4NS41NTkgbnVsbF0KPj4KZW5kb2JqCjMxMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MDkuMDA1IDM2Ni44NzIgNDE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzEzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC40MDIgNDA5LjAwNSA1NDEuMTIyIDQxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzExIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxNCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCA1MjEuMzYyIG51bGxdCj4+CmVuZG9iagozMTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzk3LjAwNSAzNTMuMzg1IDQwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzE0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguNTA4IDM5Ny4wMDUgNTQxLjIyOCA0MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxNCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIyIDAgUiAvWFlaIDcyLjAgNDU3LjE2NSBudWxsXQo+PgplbmRvYmoKMzE4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM4NS4wMDUgNDIwLjgyOCAzOTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxNyAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3Ljk3NCAzODUuMDA1IDU0MC42OTQgMzk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzIwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDM5Mi45NjggbnVsbF0KPj4KZW5kb2JqCjMyMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNzMuMDA1IDM4OS42NDEgMzgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzIyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4yMiAzNzMuMDA1IDU0MC45NCAzODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMyMCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMjMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIyIDAgUiAvWFlaIDcyLjAgMzI4Ljc3MSBudWxsXQo+PgplbmRvYmoKMzI0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM2MS4wMDUgMzYzLjY4NCAzNzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMyMyAwIFIKL0ggL0kKCj4+CmVuZG9iagozMjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjQyNiAzNjEuMDA1IDU0MS4xNDYgMzcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzI2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDI2NC41NzQgbnVsbF0KPj4KZW5kb2JqCjMyNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNDkuMDA1IDQwMS40NjUgMzU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzI4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4xMjggMzQ5LjAwNSA1NDAuODQ4IDM1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzI2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCAyMDAuMzc3IG51bGxdCj4+CmVuZG9iagozMzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzM3LjAwNSAzNTEuMDA0IDM0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzI5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguNTI2IDMzNy4wMDUgNTQxLjI0NiAzNDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMyOSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMzIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIyIDAgUiAvWFlaIDcyLjAgMTM2LjE4IG51bGxdCj4+CmVuZG9iagozMzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzI1LjAwNSAzNzkuNDcyIDMzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzMyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMzAyIDMyNS4wMDUgNTQxLjAyMiAzMzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMzMiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMzUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjMzNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMTMuMDA1IDM4Ny45MjggMzIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzM3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4yMzQgMzEzLjAwNSA1NDAuOTU0IDMyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCA2NDkuNTY0IG51bGxdCj4+CmVuZG9iagozMzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzAxLjAwNSA0MTMuODQ1IDMxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzM4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMDI4IDMwMS4wMDUgNTQwLjc0OCAzMTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMzOCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgNTczLjExNyBudWxsXQo+PgplbmRvYmoKMzQyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI4OS4wMDUgMzk2LjUzNCAyOTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM0MSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjE2NiAyODkuMDA1IDU0MC44ODYgMjk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQ0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDQ5Ni42NyBudWxsXQo+PgplbmRvYmoKMzQ1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI3Ny4wMDUgNDAyLjcgMjg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4xMTggMjc3LjAwNSA1NDAuODM4IDI4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCA0MzIuMjIzIG51bGxdCj4+CmVuZG9iagozNDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjY1LjAwNSA0MTYuMDI3IDI3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMDEyIDI2NS4wMDUgNTQwLjczMiAyNzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM0NyAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgMzQzLjc3NiBudWxsXQo+PgplbmRvYmoKMzUxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI1My4wMDUgMzc1LjM2OCAyNjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1MCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjMzNCAyNTMuMDA1IDU0MS4wNTQgMjYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDI2Ny4zMjkgbnVsbF0KPj4KZW5kb2JqCjM1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNDEuMDA1IDQxMS43MzQgMjUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4wNDYgMjQxLjAwNSA1NDAuNzY2IDI1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCAxOTAuODgyIG51bGxdCj4+CmVuZG9iagozNTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjI5LjAwNSAzOTguMjI3IDIzOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMTUyIDIyOS4wMDUgNTQwLjg3MiAyMzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1NiAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgMTE0LjQzNSBudWxsXQo+PgplbmRvYmoKMzYwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIxNy4wMDUgMzcyLjM2IDIyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMzU4IDIxNy4wMDUgNTQxLjA3OCAyMjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1OSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgNjk2LjAgbnVsbF0KPj4KZW5kb2JqCjM2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMDUuMDA1IDM3OS4zODIgMjE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4zMDIgMjA1LjAwNSA1NDEuMDIyIDIxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCA2MTguODU5IG51bGxdCj4+CmVuZG9iagozNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTkzLjAwNSAzNjcuOTA3IDIwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMzkyIDE5My4wMDUgNTQxLjExMiAyMDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM2NSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgNTQxLjcxOCBudWxsXQo+PgplbmRvYmoKMzY5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE4MS4wMDUgMzk4LjgxNSAxOTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM2OCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjE0OCAxODEuMDA1IDU0MC44NjggMTkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzcxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDQ3Ni41NzcgbnVsbF0KPj4KZW5kb2JqCjM3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNjkuMDA1IDQxNS44NzcgMTc4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4wMTIgMTY5LjAwNSA1NDAuNzMyIDE3OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCAzOTkuNDM2IG51bGxdCj4+CmVuZG9iagozNzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTU3LjAwNSAzODIuOTM4IDE2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMjc0IDE1Ny4wMDUgNTQwLjk5NCAxNjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3NCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgMzM0LjI5NSBudWxsXQo+PgplbmRvYmoKMzc4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE0NS4wMDUgMzk2LjI2NSAxNTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3NyAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjE2OCAxNDUuMDA1IDU0MC44ODggMTU0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzgwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDI0NS4xNTQgbnVsbF0KPj4KZW5kb2JqCjM4MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMzMuMDA1IDM2MC44NTUgMTQyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC40NDggMTMzLjAwNSA1NDEuMTY4IDE0Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM4MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCAxODAuMDEzIG51bGxdCj4+CmVuZG9iagozODQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTIxLjAwNSAzNTUuNjA2IDEzMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguNDkgMTIxLjAwNSA1NDEuMjEgMTMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzg2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDExNC44NzIgbnVsbF0KPj4KZW5kb2JqCjM4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMDkuMDA1IDM3OC40NjYgMTE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzg4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4zMSAxMDkuMDA1IDU0MS4wMyAxMTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM4NiAwIFIKL0ggL0kKCj4+CmVuZG9iagozODkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNjk2LjAgbnVsbF0KPj4KZW5kb2JqCjM5MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA5Ny4wMDUgMzkxLjk3MiAxMDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM4OSAwIFIKL0ggL0kKCj4+CmVuZG9iagozOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjIwMiA5Ny4wMDUgNTQwLjkyMiAxMDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM4OSAwIFIKL0ggL0kKCj4+CmVuZG9iagozOTIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNjE3LjMzNSBudWxsXQo+PgplbmRvYmoKMzkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDg1LjAwNSAzNjMuMjY2IDk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC40MyA4NS4wMDUgNTQxLjE1IDk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzk1IDAg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MyAwIFIKMzA0IDAgUgozMDYgMCBSCjMwNyAwIFIKMzA5IDAgUgozMTAgMCBSCjMxMiAwIFIKMzEzIDAgUgozMTUgMCBSCjMxNiAwIFIKMzE4IDAgUgozMTkgMCBSCjMyMSAwIFIKMzIyIDAgUgozMjQgMCBSCjMyNSAwIFIKMzI3IDAgUgozMjggMCBSCjMzMCAwIFIKMzMxIDAgUgozMzMgMCBSCjMzNCAwIFIKMzM2IDAgUgozMzcgMCBSCjMzOSAwIFIKMzQwIDAgUgozNDIgMCBSCjM0MyAwIFIKMzQ1IDAgUgozNDYgMCBSCjM0OCAwIFIKMzQ5IDAgUgozNTEgMCBSCjM1MiAwIFIKMzU0IDAgUgozNTUgMCBSCjM1NyAwIFIKMzU4IDAgUgozNjAgMCBSCjM2MSAwIFIKMzYzIDAgUgozNjQgMCBSCjM2NiAwIFIKMzY3IDAgUgozNjkgMCBSCjM3MCAwIFIKMzcyIDAgUgozNzMgMCBSCjM3NSAwIFIKMzc2IDAgUgozNzggMCBSCjM3OSAwIFIKMzgxIDAgUgozODIgMCBSCjM4NCAwIFIKMzg1IDAgUgozODcgMCBSCjM4OCAwIFIKMzkwIDAgUgozOTEgMCBSCjM5MyAwIFIKMzk0IDAgUgozOTYgMCBSCjM5NyAwIFIKXQplbmRvYmoKMjM0IDAgb2JqCjw8CiAgL1Jlc291cmNlcyAzIDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQ3JvcEJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxIDAgUgogIC9Bbm5vdHMgMjM3IDAgUgogIC9Db250ZW50cyAzOTggMCBSCj4+CgplbmRvYmoKMzk5IDAgb2JqCjE3MjA1CmVuZG9iago0MDEgMCBvYmoKPDwgL0xlbmd0aCA0MDIgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nO1Z224bOQx9n6/QD6wqUncgMBDfiu5bsAb6UPSpe3uou8i+9PdLUZStyTjJtmsXY8BIBI8kzhFJnaOIzuMAytDPL+UjZlSf9sOjjIGKqGyQIR+U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Cjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDQ4NC4wMDUgbnVsbF0KPj4KZW5kb2JqCjQyMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA3MDkuMDA1IDM3OS4wNTMgNzE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDIyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4zMDQgNzA5LjAwNSA1NDEuMDI0IDcxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDE5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQyMyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCA0MTcuMzQgbnVsbF0KPj4KZW5kb2JqCjQyNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2OTcuMDA1IDM5Ni4xMTYgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDI1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC4xNyA2OTcuMDA1IDU0MC44OSA3MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyMyAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgMzM4LjY3NSBudWxsXQo+PgplbmRvYmoKNDI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY4NS4wMDUgMzEyLjIxOCA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyNiAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjgzNCA2ODUuMDA1IDU0MS41NTQgNjk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDI5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDI3Mi4wMSBudWxsXQo+PgplbmRvYmoKNDMwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMzA0LjY1OCA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyOSAwIFIKL0ggL0kKCj4+CmVuZG9iago0MzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4Ljg5NCA2NzMuMDA1IDU0MS42MTQgNjgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDMyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDIwNS4zNDUgbnVsbF0KPj4KZW5kb2JqCjQzMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NjEuMDA1IDI5OC4wNzQgNjcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDM0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC45NDYgNjYxLjAwNSA1NDEuNjY2IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDMyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCAxMzguNjggbnVsbF0KPj4KZW5kb2JqCjQzNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NDkuMDA1IDI5NC42MjggNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDM3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC45NzQgNjQ5LjAwNSA1NDEuNjk0IDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDAgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNDM5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYzNy4wMDUgMzA5Ljc0OCA2NDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQzOCAwIFIKL0ggL0kKCj4+CmVuZG9iago0NDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4Ljg1NCA2MzcuMDA1IDU0MS41NzQgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzggMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwMCAwIFIgL1hZWiA3Mi4wIDY2MS42IG51bGxdCj4+CmVuZG9iago0NDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjI1LjAwNSAzMTguNDI0IDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguNzg2IDYyNS4wMDUgNTQxLjUwNiA2MzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ0MSAwIFIKL0ggL0kKCj4+CmVuZG9iago0NDQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAwIDAgUiAvWFlaIDcyLjAgNTk3LjIgbnVsbF0KPj4KZW5kb2JqCjQ0NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MTMuMDA1IDMxMy44ODIgNjIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyOC44MjIgNjEzLjAwNSA1NDEuNTQyIDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDAgMCBSIC9YWVogNzIuMCA1MzIuOCBudWxsXQo+PgplbmRvYmoKNDQ4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYwMS4wMDUgMzg1Ljc0NyA2MTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ0NyAwIFIKL0ggL0kKCj4+CmVuZG9iago0NDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjI1MiA2MDEuMDA1IDU0MC45NzIgNjEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDUwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwMCAwIFIgL1hZWiA3Mi4wIDQ2OC40IG51bGxdCj4+CmVuZG9iago0NTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTg5LjAwNSA0MDAuNDc4IDU5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ1MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjguMTM0IDU4OS4wMDUgNTQwLjg1NCA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ1MCAwIFIKL0ggL0kKCj4+CmVuZG9iago0NTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAwIDAgUiAvWFlaIDcyLjAgNDA0LjAgbnVsbF0KPj4KZW5kb2JqCjQ1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NzcuMDA1IDQyMy4zOTggNTg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy45NTMgNTc3LjAwNSA1NDAuNjczIDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDAgMCBSIC9YWVogNzIuMCAzMzkuNiBudWxsXQo+PgplbmRvYmoKNDU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU2NS4wMDUgNDI4Ljk0NiA1NzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ1NiAwIFIKL0ggL0kKCj4+CmVuZG9iago0NTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjkwOSA1NjUuMDA1IDU0MC42MjkgNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDU5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwMCAwIFIgL1hZWiA3Mi4wIDI3NS4yIG51bGxdCj4+CmVuZG9iago0NjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTUzLjAwNSA0MzEuMTM3IDU2Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuODkyIDU1My4wMDUgNTQwLjYxMiA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ1OSAwIFIKL0ggL0kKCj4+CmVuZG9iago0NjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAwIDAgUiAvWFlaIDcyLjAgMjEwLjggbnVsbF0KPj4KZW5kb2JqCjQ2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NDEuMDA1IDQyOC40OTcgNTUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy45MTIgNTQxLjAwNSA1NDAuNjMyIDU1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ2NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDAgMCBSIC9YWVogNzIuMCAxNDYuNCBudWxsXQo+PgplbmRvYmoKNDY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUyOS4wMDUgNDA0LjEzNCA1MzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ2NSAwIFIKL0ggL0kKCj4+CmVuZG9iago0NjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI4LjEwNiA1MjkuMDA1IDU0MC44MjYgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDY4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwMyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago0NjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1MTcuMDA1IDEzMC4wODEgNTI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NjggMCBSCi9IIC9JCgo+PgplbmRvYmoKNDcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMC4xMDggNTE3LjAwNSA1NDIuODI4IDUyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ3MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDYgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNDcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTA1LjAwNSAxMTkuMDM2IDUxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzAuMTkgNTA1LjAwNSA1NDIuOTEgNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDc0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwNiAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iago0NzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDkzLjAwNSAxNjcuNzgzIDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjkuOTggNDkzLjAwNSA1NDIuNyA1MDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ3NCAwIFIKL0ggL0kKCj4+CmVuZG9iago0NzcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDA5IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjQ3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ4MS4wMDUgMTUwLjMxIDQ5MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ3OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzAuMTI4IDQ4MS4wMDUgNTQyLjg0OCA0OTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBd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CjQzMCAwIFIKNDMxIDAgUgo0MzMgMCBSCjQzNCAwIFIKNDM2IDAgUgo0MzcgMCBSCjQzOSAwIFIKNDQwIDAgUgo0NDIgMCBSCjQ0MyAwIFIKNDQ1IDAgUgo0NDYgMCBSCjQ0OCAwIFIKNDQ5IDAgUgo0NTEgMCBSCjQ1MiAwIFIKNDU0IDAgUgo0NTUgMCBSCjQ1NyAwIFIKNDU4IDAgUgo0NjAgMCBSCjQ2MSAwIFIKNDYzIDAgUgo0NjQgMCBSCjQ2NiAwIFIKNDY3IDAgUgo0NjkgMCBSCjQ3MCAwIFIKNDcyIDAgUgo0NzMgMCBSCjQ3NSAwIFIKNDc2IDAgUgo0NzggMCBSCjQ3OSAwIFIKNDgxIDAgUgo0ODIgMCBSCjQ4NCAwIFIKNDg1IDAgUgpdCmVuZG9iago0MTggMCBvYmoKPDwKICAvUmVzb3VyY2VzIDMgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0Fubm90cyA0MjEgMCBSCiAgL0NvbnRlbnRzIDQ4NiAwIFIKPj4KCmVuZG9iago0ODcgMCBvYmoKMTA4MTEKZW5kb2JqCjQ4OCAwIG9iago8PAogIC9UeXBlIC9Gb250RGVzY3JpcHRvcgogIC9Gb250TmFtZSAvRUFBQUFBK0RlamFWdVNhbnNNb25vCiAgL0ZvbnRCQm94IFstNTU3IC0zNzQgNzE3IDEwNDFdCiAgL0ZsYWdzIDM1CiAgL0NhcEhlaWdodCA3MjkKICAvQXNjZW50IDEwNDEKICAvRGVzY2VudCAtMzc0CiAgL0l0YWxpY0FuZ2xlIDAKICAvU3RlbVYgMAogIC9NaXNzaW5nV2lkdGggNTAwCiAgL0ZvbnRGaWxlMiA0ODkgMCBSCiAgL0NJRFNldCA0OTAgMCBSCj4+CgplbmRvYmoKNDg5IDAgb2JqCjw8CiAgL0xlbmd0aDEgMTYwODAKICAvTGVuZ3RoIDUwNiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJzdewt4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4L3MErYTZCb4KVx18wo85P8ff+g/jcC/8C8G/V+wtLQPCmVuZHN0cmVhbQplbmRvYmoKNTAyIDAgb2JqCjw8IC9MZW5ndGggNTEzIDAgUiAvRmlsdGVyIC9GbGF0ZURlY29kZSA+PgpzdHJlYW0KeJybxPj/T//P/w/4////oQAAPqwJGwplbmRzdHJlYW0KZW5kb2JqCjUwMyAwIG9iago8PAogIC9UeXBlIC9Gb250CiAgL1N1YnR5cGUgL1R5cGUwCiAgL0Jhc2VGb250IC9FQUFBQUMrRGVqYVZ1U2Fucy1Cb2xkCiAgL0VuY29kaW5nIC9JZGVudGl0eS1ICiAgL1RvVW5pY29kZSA1MDUgMCBSCiAgL0Rlc2NlbmRhbnRGb250cyBbNTA0IDAgUl0KPj4KCmVuZG9iago1MDQgMCBvYmoKPDwgL1R5cGUgL0ZvbnQKL0Jhc2VGb250IC9FQUFBQUMrRGVqYVZ1U2Fucy1Cb2xkIAovQ0lEVG9HSURNYXAgL0lkZW50aXR5IAovU3VidHlwZSAvQ0lERm9udFR5cGUyCi9DSURTeXN0ZW1JbmZvIDw8IC9SZWdpc3RyeSAoQWRvYmUpIC9PcmRlcmluZyAoVUNTKSAvU3VwcGxlbWVudCAwID4+Ci9Gb250RGVzY3JpcHRvciA1MDAgMCBSCi9EVyAwCi9XIFsgMCBbNjAwIDM0OCA0MTUgODMwIDY4NyA1OTIgNzExIDEwNDEgNjc4IDcxMSA0NzggNjc0IDM0MiA3MzIgNzExIDgzNiA3MTUgMzQyIDY4MiA2NjUgNzE1IDM3OSA3NzMgNDkzIDU5NSA2OTUgNjk1IDY5NSA2ODMgNzYyIDM5OSA2OTUgNjk1IDY5NSA3MTUgNDM1IDczMyA2MzcgNjQ1IDcxNSA2ODMgOTIzIDg1MCA3MjAgMTEwMyA2OTUgNjk1IDc3MCA3NzMgODM2IDk5NSA2NTEgMzQ4IDY1MSA3MTUgODUwIDM3MiA4MTIgODM3IDM3OSA4MzcgNjk1IDY5NSAzNDIgMzY1IDgyMCBdIF0KPj4KZW5kb2JqCjUwNSAwIG9iago8PCAvTGVuZ3RoIDUxNCAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnicXZTLjpswFED3+QovZxYjsK+BGWkUqUpVKYs+1LQfQLBJkSaACFnk7ws+N6lUpDyOr319j42d7faf9303m+zHNDSHOJu268MUL8N1aqI5xlPXb6wzoWtmpfTdnOtxky2DD7fLHM/7vh2M0CtcR+1pTPZz+XOZp5t5+hSGY3w2IbZr+/cpxKnrT+bp9+7waD1cx/EjnmM/mzy1xT6k32z3tR6/1edospTnZR+WTt18e1mG/+vx6zZG4xJbamiGEC9j3cSp7k9x854vz9a8f1me7Zr9v3iZM+zYNn/q6dG9XZ5tIrtQnrscclCAJJH3kE9U6rgCEqhMVBVQRUyzvEIae4MiVDNOZzgSs1ADvUEhUaF1RmKvUEudkM2JkdPiVzYQfoXG8CuPkPpVEH6OOi1+RQnhINRpcRBWwuIgDsLB425x8BrDQWoIB8HP4SDU6XAQVsLhUJLFqQOVORw8tTgcPO5O94hVcuxRpfOxR16z4FexEg6/AluHX6Ez4FdoTxwKKhMcPOMEB896Cg6eN0RwqJhdcKipTHCocBd10Jw4eN5IUQftiUPByovukc6Hg2NdBAeHkeBQsiseB8cMXh2qdND0RMn9fD3Oo6UsSz2V7lO4v08Gqw31JNLGe14yrWd5vZMeF0VznabljkhXUroc1muh6+PjbhuHcR2VPn8BbLY1jwplbmRzdHJlYW0KZW5kb2JqCjUwNiAwIG9iago4OTQ0CmVuZG9iago1MDcgMCBvYmoKMjAKZW5kb2JqCjUwOCAwIG9iagozNzcKZW5kb2JqCjUwOSAwIG9iagoxNjMzOAplbmRvYmoKNTEwIDAgb2JqCjI3CmVuZG9iago1MTEgMCBvYmoKNTY2CmVuZG9iago1MTIgMCBvYmoKMTQ3MDEKZW5kb2JqCjUxMyAwIG9iagoyMgplbmRvYmoKNTE0IDAgb2JqCjUxNgplbmRvYmoKMSAwIG9iago8PCAvVHlwZSAvUGFnZXMKL0NvdW50IDI0Ci9LaWRzIFs4IDAgUiA1OSAwIFIgMjM0IDAgUiA0MTggMCBSIDQzIDAgUiAxOCAwIFIgMjggMCBSIDMxIDAgUiAzNCAwIFIgNDAgMCBSIDUwIDAgUiA1MyAwIFIgNTYgMCBSIDIxNiAwIFIgMjE5IDAgUiAyMjIgMCBSIDIyNSAwIFIgMjI4IDAgUiAyMzEgMCBSIDQwMCAwIFIgNDAzIDAgUiA0MDYgMCBSIDQwOSAwIFIgNDEyIDAgUiBdID4+CmVuZG9iagoyIDAgb2JqCjw8CiAgL1R5cGUgL0NhdGFsb2cKICAvUGFnZXMgMSAwIFIKICAvTGFuZyAoZW4pCiAgL01ldGFkYXRhIDcgMCBSCiAgL1BhZ2VMYWJlbHMgOSAwIFIKPj4KCmVuZG9iagozIDAgb2JqCjw8CiAgL0ZvbnQgPDwKICAvRjE5IDQ5MSAwIFIKICAvRjE1IDQ5NyAwIFIKICAvRjE2IDUwMyAwIFIKPj4KCiAgL1Byb2NTZXQgWy9QREYgL0ltYWdlQiAvSW1hZ2VDIC9UZXh0XQogIC9YT2JqZWN0IDw8CiAgL0ltMSAxMCAwIFIKICAvSW0yIDExIDAgUgogIC9JbTMgMTkgMCBSCiAgL0ltNCAyMCAwIFIKPj4KCiAgL0NvbG9yU3BhY2UgPDwgL0RlZmF1bHRSR0IgNiAwIFIgPj4KCj4+CgplbmRvYmoKOSAwIG9iago8PCAvTnVtcyBbMCA8PCAvUCAoMSkgPj4KIDEgPDwgL1AgKGlpKSA+PgogMiA8PCAvUCAoaWlpKSA+PgogMyA8PCAvUCAoaXYpID4+CiA0IDw8IC9QICh2KSA+PgogNSA8PCAvUCAodmkpID4+CiA2IDw8IC9QICgxKSA+PgogNyA8PCAvUCAoMikgPj4KIDggPDwgL1AgKDMpID4+CiA5IDw8IC9QICg0KSA+PgogMTAgPDwgL1AgKDUpID4+CiAxMSA8PCAvUCAoNikgPj4KIDEyIDw8IC9QICg3KSA+PgogMTMgPDwgL1AgKDgpID4+CiAxNCA8PCAvUCAoOSkgPj4KIDE1IDw8IC9QICgxMCkgPj4KIDE2IDw8IC9QICgxMSkgPj4KIDE3IDw8IC9QICgxMikgPj4KIDE4IDw8IC9QICgxMykgPj4KIDE5IDw8IC9QICgxNCkgPj4KIDIwIDw8IC9QICgxNSkgPj4KIDIxIDw8IC9QICgxNikgPj4KIDIyIDw8IC9QICgxNykgPj4KIDIzIDw8IC9QICgxOCkgPj4KXSA+PgoKZW5kb2JqCnhyZWYKMCA1MTUKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMzAzMDk2IDAwMDAwIG4gCjAwMDAzMDMzMjkgMDAwMDAgbiAKMDAwMDMwMzQzNCAwMDAwMCBuIAowMDAwMDAwMDE1IDAwMDAwIG4gCjAwMDAwMDAxNDUgMDAwMDAgbiAKMDAwMDAwMjgyMyAwMDAwMCBuIAowMDAwMDAyODU2IDAwMDAwIG4gCjAwMDAxMDYxODAgMDAwMDAgbiAKMDAwMDMwMzY2OSAwMDAwMCBuIAowMDAwMDAzODA0IDAwMDAwIG4gCjAwMDAwNTIzMzEgMDAwMDAgbiAKMDAwMDEwNTU5MyAwMDAwMCBuIAowMDAwMTA1NjE0IDAwMDAwIG4gCjAwMDAxMDU2MzQgMDAwMDAgbiAKMDAwMDEwNTY1NiAwMDAwMCBuIAowMDAwMTA1Njc4IDAwMDAwIG4gCjAwMDAxMDYzNzIgMDAwMDAgbiAKMDAwMDEyMDg2NCAwMDAwMCBuIAowMDAwMTA2MzkyIDAwMDAwIG4gCjAwMDAxMTI1NjMgMDAwMDAgbiAKMDAwMDExOTc0MyAwMDAwMCBuIAowMDAwMTE5NzY0IDAwMDAwIG4gCjAwMDAxMTk3ODUgMDAwMDAgbiAKMDAwMDExOTg2NyAwMDAwMCBuIAowMDAwMTIwODM3IDAwMDAwIG4gCjAwMDAxMjAwMDMgMDAwMDAgbiAKMDAwMDEyMTA3NCAwMDAwMCBuIAowMDAwMTIyNjI3IDAwMDAwIG4gCjAwMDAxMjEwOTQgMDAwMDAgbiAKMDAwMDEyMjgyMCAwMDAwMCBuIAowMDAwMTIzNzA2IDAwMDAwIG4gCjAwMDAxMjI4NDEgMDAwMDAgbiAKMDAwMDEyMzg5OSAwMDAwMCBuIAowMDAwMTI1NDI2IDAwMDAwIG4gCjAwMDAxMjM5MTkgMDAwMDAgbiAKMDAwMDEyNDAxNCAwMDAwMCBuIAowMDAwMTI1Mzk5IDAwMDAwIG4gCjAwMDAxMjQxNTAgMDAwMDAgbiAKMDAwMDEyNTYzNiAwMDAwMCBuIAowMDAwMTI3NDkyIDAwMDAwIG4gCjAwMDAxMjU2NTcgMDAwMDAgbiAKMDAwMDEyNzY4NSAwMDAwMCBuIAowMDAwMTI5MDU3IDAwMDAwIG4gCjAwMDAxMjc3MDYgMDAwMDAgbiAKMDAwMDEyNzc4NCAwMDAwMCBuIAowMDAwMTI5MDIzIDAwMDAwIG4gCjAwMDAxMjc5MjEgMDAwMDAgbiAKMDAwMDEyODA1OSAwMDAwMCBuIAowMDAwMTI5MjY3IDAwMDAwIG4gCjAwMDAxMzEwODYgMDAwMDAgbiAKMDAwMDEyOTI4NyAwMDAwMCBuIAowMDAwMTMxMjc5IDAwMDAwIG4gCjAwMDAxMzMwMTEgMDAwMDAgbiAKMDAwMDEzMTMwMCAwMDAwMCBuIAowMDAwMTMzMjA0IDAwMDAwIG4gCjAwMDAxMzQ5NDIgMDAwMDAgbiAKMDAwMDEzMzIyNSAwMDAwMCBuIAowMDAwMTM1MTM1IDAwMDAwIG4gCjAwMDAxODI0ODAgMDAwMDAgbiAKMDAwMDEzNTE1NiAwMDAwMCBuIAowMDAwMTM1MjM0IDAwMDAwIG4gCjAwMDAxODE2NzAgMDAwMDAgbiAKMDAwMDEzNTM3MCAwMDAwMCBuIAowMDAwMTM1NTEwIDAwMDAwIG4gCjAwMDAxMzU1ODggMDAwMDAgbiAKMDAwMDEzNTcyNSAwMDAwMCBuIAowMDAwMTM1ODY1IDAwMDAwIG4gCjAwMDAxMzU5NDMgMDAwMDAgbiAKMDAwMDEzNjA4MSAwMDAwMCBuIAowMDAwMTM2MjIxIDAwMDAwIG4gCjAwMDAxMzYyOTkgMDAwMDAgbiAKMDAwMDEzNjQzNyAwMDAwMCBuIAowMDAwMTM2NTc3IDAwMDAwIG4gCjAwMDAxMzY2NTUgMDAwMDAgbiAKMDAwMDEzNjc5MyAwMDAwMCBuIAowMDAwMTM2OTMzIDAwMDAwIG4gCjAwMDAxMzcwMTEgMDAwMDAgbiAKMDAwMDEzNzE0OSAwMDAwMCBuIAowMDAwMTM3Mjg5IDAwMDAwIG4gCjAwMDAxMzczNjcgMDAwMDAgbiAKMDAwMDEzNzUwNSAwMDAwMCBuIAowMDAwMTM3NjQ1IDAwMDAwIG4gCjAwMDAxMzc3MjMgMDAwMDAgbiAKMDAwMDEzNzg2MSAwMDAwMCBuIAowMDAwMTM4MDAxIDAwMDAwIG4gCjAwMDAxMzgwNzkgMDAwMDAgbiAKMDAwMDEzODIxNyAwMDAwMCBuIAowMDAwMTM4MzU3IDAwMDAwIG4gCjAwMDAxMzg0MzUgMDAwMDAgbiAKMDAwMDEzODU3MyAwMDAwMCBuIAowMDAwMTM4NzEzIDAwMDAwIG4gCjAwMDAxMzg3OTEgMDAwMDAgbiAKMDAwMDEzODkyOSAwMDAwMCBuIAowMDAwMTM5MDY5IDAwMDAwIG4gCjAwMDAxMzkxNDcgMDAwMDAgbiAKMDAwMDEzOTI4NSAwMDAwMCBuIAowMDAwMTM5NDI1IDAwMDAwIG4gCjAwMDAxMzk1MDMgMDAwMDAgbiAKMDAwMDEzOTY0MSAwMDAwMCBuIAowMDAwMTM5NzgxIDAwMDAwIG4gCjAwMDAxMzk4NjAgMDAwMDAgbiAKMDAwMDE0MDAwMCAwMDAwMCBuIAowMDAwMTQwMTQyIDAwMDAwIG4gCjAwMDAxNDAyMjEgMDAwMDAgbiAKMDAwMDE0MDM2MSAwMDAwMCBuIAowMDAwMTQwNTAzIDAwMDAwIG4gCjAwMDAxNDA1ODIgMDAwMDAgbiAKMDAwMDE0MDcyMiAwMDAwMCBuIAowMDAwMTQwODYxIDAwMDAwIG4gCjAwMDAxNDA5NDAgMDAwMDAgbiAKMDAwMDE0MTA3OSAwMDAwMCBuIAowMDAwMTQxMjIxIDAwMDAwIG4gCjAwMDAxNDEzMDAgMDAwMDAgbiAKMDAwMDE0MTQ0MCAwMDAwMCBuIAowMDAwMTQxNTgyIDAwMDAwIG4gCjAwMDAxNDE2NjEgMDAwMDAgbiAKMDAwMDE0MTgwMSAwMDAwMCBuIAowMDAwMTQxOTQzIDAwMDAwIG4gCjAwMDAxNDIwMjIgMDAwMDAgbiAKMDAwMDE0MjE2MiAwMDAwMCBuIAowMDAwMTQyMzAyIDAwMDAwIG4gCjAwMDAxNDIzODEgMDAwMDAgbiAKMDAwMDE0MjUyMSAwMDAwMCBuIAowMDAwMTQyNjYzIDAwMDAwIG4gCjAwMDAxNDI3NDIgMDAwMDAgbiAKMDAwMDE0Mjg4MSAwMDAwMCBuIAowMDAwMTQzMDIzIDAwMDAwIG4gCjAwMDAxNDMxMDIgMDAwMDAgbiAKMDAwMDE0MzI0MiAwMDAwMCBuIAowMDAwMTQzMzg0IDAwMDAwIG4gCjAwMDAxNDM0NjMgMDAwMDAgbiAKMDAwMDE0MzYwMyAwMDAwMCBuIAowMDAwMTQzNzQ1IDAwMDAwIG4gCjAwMDAxNDM4MjQgMDAwMDAgbiAKMDAwMDE0Mzk2MyAwMDAwMCBuIAowMDAwMTQ0MTA1IDAwMDAwIG4gCjAwMDAxNDQxODQgMDAwMDAgbiAKMDAwMDE0NDMyNCAwMDAwMCBuIAowMDAwMTQ0NDY2IDAwMDAwIG4gCjAwMDAxNDQ1NDUgMDAwMDAgbiAKMDAwMDE0NDY4NSAwMDAwMCBuIAowMDAwMTQ0ODI1IDAwMDAwIG4gCjAwMDAxNDQ5MDQgMDAwMDAgbiAKMDAwMDE0NTA0MiAwMDAwMCBuIAowMDAwMTQ1MTg0IDAwMDAwIG4gCjAwMDAxNDUyNjUgMDAwMDAgbiAKMDAwMDE0NTQwNSAwMDAwMCBuIAowMDAwMTQ1NTQ3IDAwMDAwIG4gCjAwMDAxNDU2MjggMDAwMDAgbiAKMDAwMDE0NTc2OCAwMDAwMCBuIAowMDAwMTQ1OTEwIDAwMDAwIG4gCjAwMDAxNDU5OTEgMDAwMDAgbiAKMDAwMDE0NjEzMSAwMDAwMCBuIAowMDAwMTQ2MjczIDAwMDAwIG4gCjAwMDAxNDYzNTQgMDAwMDAgbiAKMDAwMDE0NjQ5NCAwMDAwMCBuIAowMDAwMTQ2NjM2IDAwMDAwIG4gCjAwMDAxNDY3MTcgMDAwMDAgbiAKMDAwMDE0Njg1NyAwMDAwMCBuIAowMDAwMTQ2OTk5IDAwMDAwIG4gCjAwMDAxNDcwODAgMDAwMDAgbiAKMDAwMDE0NzIyMCAwMDAwMCBuIAowMDAwMTQ3MzYyIDAwMDAwIG4gCjAwMDAxNDc0NDMgMDAwMDAgbiAKMDAwMDE0NzU4MyAwMDAwMCBuIAowMDAwMTQ3NzI1IDAwMDAwIG4gCjAwMDAxNDc4MDYgMDAwMDAgbiAKMDAwMDE0Nzk0NSAwMDAwMCBuIAowMDAwMTQ4MDg3IDAwMDAwIG4gCjAwMDAxNDgxNjggMDAwMDAgbiAKMDAwMDE0ODMwOCAwMDAwMCBuIAowMDAwMTQ4NDUwIDAwMDAwIG4gCjAwMDAxNDg1MjkgMDAwMDAgbiAKMDAwMDE0ODY2OSAwMDAwMCBuIAowMDAwMTQ4ODExIDAwMDAwIG4gCjAwMDAxNDg4OTIgMDAwMDAgbiAKMDAwMDE0OTAzMiAwMDAwMCBuIAowMDAwMTQ5MTc0IDAwMDAwIG4gCjAwMDAxNDkyNTUgMDAwMDAgbiAKMDAwMDE0OTM5NSAwMDAwMCBuIAowMDAwMTQ5NTM3IDAwMDAwIG4gCjAwMDAxNDk2MTggMDAwMDAgbiAKMDAwMDE0OTc1OCAwMDAwMCBuIAowMDAwMTQ5OTAwIDAwMDAwIG4gCjAwMDAxNDk5ODEgMDAwMDAgbiAKMDAwMDE1MDEyMSAwMDAwMCBuIAowMDAwMTUwMjYzIDAwMDAwIG4gCjAwMDAxNTAzNDQgMDAwMDAgbiAKMDAwMDE1MDQ4NCAwMDAwMCBuIAowMDAwMTUwNjI2IDAwMDAwIG4gCjAwMDAxNTA3MDcgMDAwMDAgbiAKMDAwMDE1MDg0NyAwMDAwMCBuIAowMDAwMTUwOTg5IDAwMDAwIG4gCjAwMDAxNTEwNzAgMDAwMDAgbiAKMDAwMDE1MTIxMCAwMDAwMCBuIAowMDAwMTUxMzUyIDAwMDAwIG4gCjAwMDAxNTE0MzMgMDAwMDAgbiAKMDAwMDE1MTU3MyAwMDAwMCBuIAowMDAwMTUxNzE1IDAwMDAwIG4gCjAwMDAxNTE3OTQgMDAwMDAgbiAKMDAwMDE1MTkzNCAwMDAwMCBuIAowMDAwMTUyMDc2IDAwMDAwIG4gCjAwMDAxNTIxNTcgMDAwMDAgbiAKMDAwMDE1MjI5NyAwMDAwMCBuIAowMDAwMTUyNDM5IDAwMDAwIG4gCjAwMDAxNTI1MjAgMDAwMDAgbiAKMDAwMDE1MjY2MCAwMDAwMCBuIAowMDAwMTUyODAyIDAwMDAwIG4gCjAwMDAxNTI4ODIgMDAwMDAgbiAKMDAwMDE1MzAyMSAwMDAwMCBuIAowMDAwMTUzMTYyIDAwMDAwIG4gCjAwMDAxNTMyNDMgMDAwMDAgbiAKMDAwMDE1MzM4MSAwMDAwMCBuIAowMDAwMTUzNTIxIDAwMDAwIG4gCjAwMDAxODI2OTEgMDAwMDAgbiAKMDAwMDE4NDIwMiAwMDAwMCBuIAowMDAwMTgyNzE0IDAwMDAwIG4gCjAwMDAxODQzOTcgMDAwMDAgbiAKMDAwMDE4NjI1OSAwMDAwMCBuIAowMDAwMTg0NDE5IDAwMDAwIG4gCjAwMDAxODY0NTQgMDAwMDAgbiAKMDAwMDE4Nzk1MSAwMDAwMCBuIAowMDAwMTg2NDc2IDAwMDAwIG4gCjAwMDAxODgxNDYgMDAwMDAgbiAKMDAwMDE5MDA1NiAwMDAwMCBuIAowMDAwMTg4MTY4IDAwMDAwIG4gCjAwMDAxOTAyNTEgMDAwMDAgbiAKMDAwMDE5MjExMyAwMDAwMCBuIAowMDAwMTkwMjczIDAwMDAwIG4gCjAwMDAxOTIzMDggMDAwMDAgbiAKMDAwMDE5MzgzMSAwMDAwMCBuIAowMDAwMTkyMzMwIDAwMDAwIG4gCjAwMDAxOTQwMjYgMDAwMDAgbiAKMDAwMDIzMTgxOSAwMDAwMCBuIAowMDAwMTk0MDQ4IDAwMDAwIG4gCjAwMDAxOTQxMjkgMDAwMDAgbiAKMDAwMDIzMDkzNCAwMDAwMCBuIAowMDAwMTk0MjY5IDAwMDAwIG4gCjAwMDAxOTQ0MTEgMDAwMDAgbiAKMDAwMDE5NDQ5MiAwMDAwMCBuIAowMDAwMTk0NjMyIDAwMDAwIG4gCjAwMDAxOTQ3NzQgMDAwMDAgbiAKMDAwMDE5NDg1NSAwMDAwMCBuIAowMDAwMTk0OTk1IDAwMDAwIG4gCjAwMDAxOTUxMzcgMDAwMDAgbiAKMDAwMDE5NTIxNiAwMDAwMCBuIAowMDAwMTk1MzU2IDAwMDAwIG4gCjAwMDAxOTU0OTggMDAwMDAgbiAKMDAwMDE5NTU3OCAwMDAwMCBuIAowMDAwMTk1NzE4IDAwMDAwIG4gCjAwMDAxOTU4NjAgMDAwMDAgbiAKMDAwMDE5NTk0MiAwMDAwMCBuIAowMDAwMTk2MDgyIDAwMDAwIG4gCjAwMDAxOTYyMjQgMDAwMDAgbiAKMDAwMDE5NjMwNiAwMDAwMCBuIAowMDAwMTk2NDQ2IDAwMDAwIG4gCjAwMDAxOTY1ODggMDAwMDAgbiAKMDAwMDE5NjY3MCAwMDAwMCBuIAowMDAwMTk2ODA5IDAwMDAwIG4gCjAwMDAxOTY5NTEgMDAwMDAgbiAKMDAwMDE5NzAzMyAwMDAwMCBuIAowMDAwMTk3MTczIDAwMDAwIG4gCjAwMDAxOTczMTUgMDAwMDAgbiAKMDAwMDE5NzM5NiAwMDAwMCBuIAowMDAwMTk3NTM2IDAwMDAwIG4gCjAwMDAxOTc2NzggMDAwMDAgbiAKMDAwMDE5Nzc2MCAwMDAwMCBuIAowMDAwMTk3OTAwIDAwMDAwIG4gCjAwMDAxOTgwNDIgMDAwMDAgbiAKMDAwMDE5ODEyNCAwMDAwMCBuIAowMDAwMTk4MjY0IDAwMDAwIG4gCjAwMDAxOTg0MDYgMDAwMDAgbiAKMDAwMDE5ODQ4OCAwMDAwMCBuIAowMDAwMTk4NjI4IDAwMDAwIG4gCjAwMDAxOTg3NzAgMDAwMDAgbiAKMDAwMDE5ODg1MiAwMDAwMCBuIAowMDAwMTk4OTkyIDAwMDAwIG4gCjAwMDAxOTkxMzQgMDAwMDAgbiAKMDAwMDE5OTIxNCAwMDAwMCBuIAowMDAwMTk5MzU0IDAwMDAwIG4gCjAwMDAxOTk0OTYgMDAwMDAgbiAKMDAwMDE5OTU3OCAwMDAwMCBuIAowMDAwMTk5NzE4IDAwMDAwIG4gCjAwMDAxOTk4NjAgMDAwMDAgbiAKMDAwMDE5OTk0MiAwMDAwMCBuIAowMDAwMjAwMDgyIDAwMDAwIG4gCjAwMDAyMDAyMjQgMDAwMDAgbiAKMDAwMDIwMDMwNSAwMDAwMCBuIAowMDAwMjAwNDQ1IDAwMDAwIG4gCjAwMDAyMDA1ODcgMDAwMDAgbiAKMDAwMDIwMDY2OSAwMDAwMCBuIAowMDAwMjAwODA5IDAwMDAwIG4gCjAwMDAyMDA5NTEgMDAwMDAgbiAKMDAwMDIwMTAzMyAwMDAwMCBuIAowMDAwMjAxMTczIDAwMDAwIG4gCjAwMDAyMDEzMTUgMDAwMDAgbiAKMDAwMDIwMTM5NyAwMDAwMCBuIAowMDAwMjAxNTM3IDAwMDAwIG4gCjAwMDAyMDE2NzkgMDAwMDAgbiAKMDAwMDIwMTc2MSAwMDAwMCBuIAowMDAwMjAxOTAwIDAwMDAwIG4gCjAwMDAyMDIwNDIgMDAwMDAgbiAKMDAwMDIwMjEyMiAwMDAwMCBuIAowMDAwMjAyMjYyIDAwMDAwIG4gCjAwMDAyMDI0MDQgMDAwMDAgbiAKMDAwMDIwMjQ4NCAwMDAwMCBuIAowMDAwMjAyNjIzIDAwMDAwIG4gCjAwMDAyMDI3NjUgMDAwMDAgbiAKMDAwMDIwMjg0NyAwMDAwMCBuIAowMDAwMjAyOTg3IDAwMDAwIG4gCjAwMDAyMDMxMjcgMDAwMDAgbiAKMDAwMDIwMzIwOSAwMDAwMCBuIAowMDAwMjAzMzQ5IDAwMDAwIG4gCjAwMDAyMDM0OTEgMDAwMDAgbiAKMDAwMDIwMzU3MyAwMDAwMCBuIAowMDAwMjAzNzEzIDAwMDAwIG4gCjAwMDAyMDM4NTUgMDAwMDAgbiAKMDAwMDIwMzkzNyAwMDAwMCBuIAowMDAwMjA0MDc3IDAwMDAwIG4gCjAwMDAyMDQyMTkgMDAwMDAgbiAKMDAwMDIwNDMwMSAwMDAwMCBuIAowMDAwMjA0NDQxIDAwMDAwIG4gCjAwMDAyMDQ1ODEgMDAwMDAgbiAKMDAwMDIwNDY2MyAwMDAwMCBuIAowMDAwMjA0ODAzIDAwMDAwIG4gCjAwMDAyMDQ5NDUgMDAwMDAgbiAKMDAwMDIwNTAyNyAwMDAwMCBuIAowMDAwMjA1MTY3IDAwMDAwIG4gCjAwMDAyMDUzMDkgMDAwMDAgbiAKMDAwMDIwNTM5MSAwMDAwMCBuIAowMDAwMjA1NTMxIDAwMDAwIG4gCjAwMDAyMDU2NzMgMDAwMDAgbiAKMDAwMDIwNTc1NCAwMDAwMCBuIAowMDAwMjA1ODk0IDAwMDAwIG4gCjAwMDAyMDYwMzYgMDAwMDAgbiAKMDAwMDIwNjExNiAwMDAwMCBuIAowMDAwMjA2MjU2IDAwMDAwIG4gCjAwMDAyMDYzOTggMDAwMDAgbiAKMDAwMDIwNjQ4MCAwMDAwMCBuIAowMDAwMjA2NjIwIDAwMDAwIG4gCjAwMDAyMDY3NjIgMDAwMDAgbiAKMDAwMDIwNjg0NCAwMDAwMCBuIAowMDAwMjA2OTg0IDAwMDAwIG4gCjAwMDAyMDcxMjYgMDAwMDAgbiAKMDAwMDIwNzIwNyAwMDAwMCBuIAowMDAwMjA3MzQ1IDAwMDAwIG4gCjAwMDAyMDc0ODcgMDAwMDAgbiAKMDAwMDIwNzU2OSAwMDAwMCBuIAowMDAwMjA3NzA5IDAwMDAwIG4gCjAwMDAyMDc4NTEgMDAwMDAgbiAKMDAwMDIwNzkzMyAwMDAwMCBuIAowMDAwMjA4MDczIDAwMDAwIG4gCjAwMDAyMDgyMTUgMDAwMDAgbiAKMDAwMDIwODI5NyAwMDAwMCBuIAowMDAwMjA4NDM3IDAwMDAwIG4gCjAwMDAyMDg1NzkgMDAwMDAgbiAKMDAwMDIwODY2MSAwMDAwMCBuIAowMDAwMjA4ODAxIDAwMDAwIG4gCjAwMDAyMDg5NDMgMDAwMDAgbiAKMDAwMDIwOTAyNSAwMDAwMCBuIAowMDAwMjA5MTY0IDAwMDAwIG4gCjAwMDAyMDkzMDYgMDAwMDAgbiAKMDAwMDIwOTM4NiAwMDAwMCBuIAowMDAwMjA5NTI2IDAwMDAwIG4gCjAwMDAyMDk2NjggMDAwMDAgbiAKMDAwMDIwOTc1MCAwMDAwMCBuIAowMDAwMjA5ODkwIDAwMDAwIG4gCjAwMDAyMTAwMzIgMDAwMDAgbiAKMDAwMDIxMDExNCAwMDAwMCBuIAowMDAwMjEwMjU0IDAwMDAwIG4gCjAwMDAyMTAzOTYgMDAwMDAgbiAKMDAwMDIxMDQ3OCAwMDAwMCBuIAowMDAwMjEwNjE4IDAwMDAwIG4gCjAwMDAyMTA3NjAgMDAwMDAgbiAKMDAwMDIxMDg0MiAwMDAwMCBuIAowMDAwMjEwOTgyIDAwMDAwIG4gCjAwMDAyMTExMjQgMDAwMDAgbiAKMDAwMDIxMTIwNiAwMDAwMCBuIAowMDAwMjExMzQ2IDAwMDAwIG4gCjAwMDAyMTE0ODggMDAwMDAgbiAKMDAwMDIxMTU3MCAwMDAwMCBuIAowMDAwMjExNzEwIDAwMDAwIG4gCjAwMDAyMTE4NTIgMDAwMDAgbiAKMDAwMDIxMTkzNCAwMDAwMCBuIAowMDAwMjEyMDc0IDAwMDAwIG4gCjAwMDAyMTIyMTQgMDAwMDAgbiAKMDAwMDIxMjI5NiAwMDAwMCBuIAowMDAwMjEyNDM2IDAwMDAwIG4gCjAwMDAyMTI1NzYgMDAwMDAgbiAKMDAwMDIxMjY1NiAwMDAwMCBuIAowMDAwMjEyNzk1IDAwMDAwIG4gCjAwMDAyMTI5MzYgMDAwMDAgbiAKMDAwMDIxMzAxOCAwMDAwMCBuIAowMDAwMjEzMTU2IDAwMDAwIG4gCjAwMDAyMTMyOTQgMDAwMDAgbiAKMDAwMDIxMzM3NSAwMDAwMCBuIAowMDAwMjEzNTEzIDAwMDAwIG4gCjAwMDAyMTM2NTEgMDAwMDAgbiAKMDAwMDIzMjAzMiAwMDAwMCBuIAowMDAwMjMzMTUwIDAwMDAwIG4gCjAwMDAyMzIwNTUgMDAwMDAgbiAKMDAwMDIzMzM0NSAwMDAwMCBuIAowMDAwMjM0NDY5IDAwMDAwIG4gCjAwMDAyMzMzNjcgMDAwMDAgbiAKMDAwMDIzNDY2NCAwMDAwMCBuIAowMDAwMjM2MTY3IDAwMDAwIG4gCjAwMDAyMzQ2ODYgMDAwMDAgbiAKMDAwMDIzNjM2MiAwMDAwMCBuIAowMDAwMjM3MDgxIDAwMDAwIG4gCjAwMDAyMzYzODQgMDAwMDAgbiAKMDAwMDIzNzI3NiAwMDAwMCBuIAowMDAwMjM4MjU3IDAwMDAwIG4gCjAwMDAyMzcyOTcgMDAwMDAgbiAKMDAwMDIzNzM4NCAwMDAwMCBuIAowMDAwMjM4MjI4IDAwMDAwIG4gCjAwMDAyMzc1MjQgMDAwMDAgbiAKMDAwMDIzODQ3MCAwMDAwMCBuIAowMDAwMjU3NzE0IDAwMDAwIG4gCjAwMDAyMzg0OTEgMDAwMDAgbiAKMDAwMDIzODU3MyAwMDAwMCBuIAowMDAwMjU3MzQxIDAwMDAwIG4gCjAwMDAyMzg3MTMgMDAwMDAgbiAKMDAwMDIzODg1NSAwMDAwMCBuIAowMDAwMjM4OTM2IDAwMDAwIG4gCjAwMDAyMzkwNzYgMDAwMDAgbiAKMDAwMDIzOTIxNiAwMDAwMCBuIAowMDAwMjM5Mjk4IDAwMDAwIG4gCjAwMDAyMzk0MzggMDAwMDAgbiAKMDAwMDIzOTU4MCAwMDAwMCBuIAowMDAwMjM5NjYxIDAwMDAwIG4gCjAwMDAyMzk4MDEgMDAwMDAgbiAKMDAwMDIzOTk0MyAwMDAwMCBuIAowMDAwMjQwMDI1IDAwMDAwIG4gCjAwMDAyNDAxNjUgMDAwMDAgbiAKMDAwMDI0MDMwNyAwMDAwMCBuIAowMDAwMjQwMzg4IDAwMDAwIG4gCjAwMDAyNDA1MjggMDAwMDAgbiAKMDAwMDI0MDY3MCAwMDAwMCBuIAowMDAwMjQwNzUwIDAwMDAwIG4gCjAwMDAyNDA4OTAgMDAwMDAgbiAKMDAwMDI0MTAzMiAwMDAwMCBuIAowMDAwMjQxMTEyIDAwMDAwIG4gCjAwMDAyNDEyNTIgMDAwMDAgbiAKMDAwMDI0MTM5NCAwMDAwMCBuIAowMDAwMjQxNDc0IDAwMDAwIG4gCjAwMDAyNDE2MTQgMDAwMDAgbiAKMDAwMDI0MTc1NiAwMDAwMCBuIAowMDAwMjQxODM2IDAwMDAwIG4gCjAwMDAyNDE5NzYgMDAwMDAgbiAKMDAwMDI0MjExOCAwMDAwMCBuIAowMDAwMjQyMTk4IDAwMDAwIG4gCjAwMDAyNDIzMzggMDAwMDAgbiAKMDAwMDI0MjQ4MCAwMDAwMCBuIAowMDAwMjQyNTYwIDAwMDAwIG4gCjAwMDAyNDI3MDAgMDAwMDAgbiAKMDAwMDI0Mjg0MiAwMDAwMCBuIAowMDAwMjQyOTIyIDAwMDAwIG4gCjAwMDAyNDMwNjIgMDAwMDAgbiAKMDAwMDI0MzIwNCAwMDAwMCBuIAowMDAwMjQzMjg0IDAwMDAwIG4gCjAwMDAyNDM0MjQgMDAwMDAgbiAKMDAwMDI0MzU2NiAwMDAwMCBuIAowMDAwMjQzNjQ2IDAwMDAwIG4gCjAwMDAyNDM3ODYgMDAwMDAgbiAKMDAwMDI0MzkyOCAwMDAwMCBuIAowMDAwMjQ0MDA4IDAwMDAwIG4gCjAwMDAyNDQxNDggMDAwMDAgbiAKMDAwMDI0NDI5MCAwMDAwMCBuIAowMDAwMjQ0MzcwIDAwMDAwIG4gCjAwMDAyNDQ1MDkgMDAwMDAgbiAKMDAwMDI0NDY1MSAwMDAwMCBuIAowMDAwMjQ0NzMxIDAwMDAwIG4gCjAwMDAyNDQ4NzAgMDAwMDAgbiAKMDAwMDI0NTAxMCAwMDAwMCBuIAowMDAwMjQ1MDkwIDAwMDAwIG4gCjAwMDAyNDUyMzAgMDAwMDAgbiAKMDAwMDI0NTM2OSAwMDAwMCBuIAowMDAwMjQ1NDQ5IDAwMDAwIG4gCjAwMDAyNDU1ODcgMDAwMDAgbiAKMDAwMDI0NTcyOSAwMDAwMCBuIAowMDAwMjQ1ODA5IDAwMDAwIG4gCjAwMDAyNDU5NDggMDAwMDAgbiAKMDAwMDI0NjA5MCAwMDAwMCBuIAowMDAwMjQ2MTcwIDAwMDAwIG4gCjAwMDAyNDYzMTAgMDAwMDAgbiAKMDAwMDI0NjQ1MiAwMDAwMCBuIAowMDAwMjU3OTI3IDAwMDAwIG4gCjAwMDAyNTc5NTAgMDAwMDAgbiAKMDAwMDI1ODIxMyAwMDAwMCBuIAowMDAwMjY3MjU2IDAwMDAwIG4gCjAwMDAyNjczNTQgMDAwMDAgbiAKMDAwMDI2NzUxOSAwMDAwMCBuIAowMDAwMjY3ODgyIDAwMDAwIG4gCjAwMDAyNjgzMzcgMDAwMDAgbiAKMDAwMDI2ODU5OCAwMDAwMCBuIAowMDAwMjg1MDM1IDAwMDAwIG4gCjAwMDAyODUxNDAgMDAwMDAgbiAKMDAwMDI4NTMwMSAwMDAwMCBuIAowMDAwMjg1ODQxIDAwMDAwIG4gCjAwMDAyODY0ODUgMDAwMDAgbiAKMDAwMDI4Njc1MSAwMDAwMCBuIAowMDAwMzAxNTUxIDAwMDAwIG4gCjAwMDAzMDE2NTEgMDAwMDAgbiAKMDAwMDMwMTgxNyAwMDAwMCBuIAowMDAwMzAyMzExIDAwMDAwIG4gCjAwMDAzMDI5MDUgMDAwMDAgbiAKMDAwMDMwMjkyNyAwMDAwMCBuIAowMDAwMzAyOTQ3IDAwMDAwIG4gCjAwMDAzMDI5NjggMDAwMDAgbiAKMDAwMDMwMjk5MSAwMDAwMCBuIAowMDAwMzAzMDExIDAwMDAwIG4gCjAwMDAzMDMwMzIgMDAwMDAgbiAKMDAwMDMwMzA1NSAwMDAwMCBuIAowMDAwMzAzMDc1IDAwMDAwIG4gCnRyYWlsZXIKPDwKICAvUm9vdCAyIDAgUgogIC9JbmZvIDQgMCBSCiAgL0lEIFs8QUJBREZDQ0QyODYwMkNBQTM0RTFBMjNCQTk3OEExQUE+IDxBQkFERkNDRDI4NjAyQ0FBMzRFMUEyM0JBOTc4QTFBQT5dCiAgL1NpemUgNTE1Cj4+CnN0YXJ0eHJlZgozMDQxMTEKJSVFT0YK