iPhoneHandle
1.3.1
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
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."
);
}
}
2013-11-08 08:46:45
opms.otrs.com
IyEvdXNyL2Jpbi9wZXJsCiMgLS0KIyBiaW4vY2dpLWJpbi9qc29uLnBsIC0ganNvbiBoYW5kbGUKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFGRkVSTyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiMgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgVVNBCiMgb3Igc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyB1c2UgLi4vLi4vIGFzIGxpYiBsb2NhdGlvbgp1c2UgRmluZEJpbiBxdygkQmluKTsKdXNlIGxpYiAiJEJpbi8uLi8uLiI7CnVzZSBsaWIgIiRCaW4vLi4vLi4vS2VybmVsL2NwYW4tbGliIjsKCiMgbG9hZCBpUGhvbmUgSGFuZGxlIHdlYiBpbnRlcmZhY2UKdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZSgpOwoKIyBjcmVhdGUgbmV3IG9iamVjdApteSAkSW50ZXJmYWNlID0gS2VybmVsOjpTeXN0ZW06OldlYjo6SW50ZXJmYWNlaVBob25lSGFuZGxlLT5uZXcoKTsKCiMgZXhlY3V0ZSBvYmplY3QKbXkgJFJlc3BvbnNlID0gJEludGVyZmFjZS0+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+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=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVDaGVja2JveC5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIENoZWNrYm94IGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lQ2hlY2tib3g7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVDaGFja2JveAoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIENoZWNrYm94IGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgICRWYWx1ZSA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6ICcnICk7CiAgICB9CiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIHNldCBQb3NzaWJsZVZhbHVlcwogICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gewogICAgICAgIDAgPT4gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdVbmNoZWNrZWQnKSB8fCAnVW5jaGVja2VkJywKICAgICAgICAxID0+ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCgnQ2hlY2tlZCcpICAgfHwgJ0NoZWNrZWQnLAogICAgfTsKCiAgICAjIGNyZWF0ZSB0aGUgZmllbGQgZGVmaW5pdGlvbgogICAgbXkgJERhdGEgPSB7CiAgICAgICAgTmFtZSAgICAgID0+ICRGaWVsZE5hbWUsCiAgICAgICAgVGl0bGUgICAgID0+ICRGaWVsZExhYmVsLAogICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgIE9wdGlvbnMgICA9PiAkUG9zc2libGVWYWx1ZXMsCiAgICAgICAgTWFuZGF0b3J5ID0+ICRQYXJhbXtNYW5kYXRvcnl9LAogICAgICAgIERlZmF1bHQgICA9PiAkVmFsdWUsCiAgICB9OwoKICAgIHJldHVybiAkRGF0YTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRmllbGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKCiAgICBteSAkVmFsdWUgPSAkUGFyYW17JEZpZWxkTmFtZX07CgogICAgcmV0dXJuICRWYWx1ZTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHBhcmFtCiAgICBteSAkVmFsdWUgPSAkUGFyYW17VmFsdWV9OwoKICAgIG15ICRTZXJ2ZXJFcnJvcjsKICAgIG15ICRFcnJvck1lc3NhZ2U7CgogICAgIyBwZXJmb3JtIG5lY2Vzc2FyeSB2YWxpZGF0aW9ucwogICAgaWYgKCAkUGFyYW17TWFuZGF0b3J5fSAmJiAhJFZhbHVlICkgewogICAgICAgICRTZXJ2ZXJFcnJvciA9IDE7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyBpbiBwb3NzaWJsZSB2YWx1ZXMgbGlzdCAoYnV0IGxldCBwYXNzIGVtcHR5IHZhbHVlcykKICAgICAgICBpZiAoICRWYWx1ZSBuZSAnMCcgJiYgJFZhbHVlIG5lICcxJyApIHsKICAgICAgICAgICAgJFNlcnZlckVycm9yICA9IDE7CiAgICAgICAgICAgICRFcnJvck1lc3NhZ2UgPSAnVGhlIGZpZWxkIGNvbnRlbnQgaXMgaW52YWxpZCc7CiAgICAgICAgfQogICAgfQoKICAgICMgY3JlYXRlIHJlc3VsdGluZyBzdHJ1Y3R1cmUKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgID0+ICRTZXJ2ZXJFcnJvciwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgIH07CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVEYXRlLnBtIC0gRHJpdmVyIGZvciBEeW5hbWljRmllbGQgRGF0ZSBiYWNrZW5kCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZURhdGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEYXRlCgo9aGVhZDEgU1lOT1BTSVMKCkR5bmFtaWNGaWVsZHMgRGF0ZSBiYWNrZW5kIGRyaXZlciBmb3IgaVBob25lSGFuZGxlCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgcHVibGljIGludGVyZmFjZSBvZiBMPEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ+LgpQbGVhc2UgbG9vayB0aGVyZSBmb3IgYSBkZXRhaWxlZCByZWZlcmVuY2Ugb2YgdGhlIGZ1bmN0aW9ucy4KCj1vdmVyIDQKCj1jdXQKCnN1YiBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIGNvbmZpZyBmcm9tIGZpZWxkIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9OwogICAgbXkgJEZpZWxkTmFtZSAgID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKICAgIG15ICRGaWVsZExhYmVsICA9ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntMYWJlbH0gKTsKCiAgICBteSAkVmFsdWUgPSAnJzsKCiAgICAjIHNldCB0aGUgZmllbGQgdmFsdWUgb3IgZGVmYXVsdAogICAgaWYgKCAkUGFyYW17VXNlRGVmYXVsdFZhbHVlfSApIHsKICAgICAgICBteSAkVGltZURpZmYgPSAoIGRlZmluZWQgJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA/ICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gOiAnJyApOwoKICAgICAgICAjIGdldCBjdXJyZW50IHN5c3RlbSB0aW1lCiAgICAgICAgbXkgJFN5c3RlbVRpbWUgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCk7CgogICAgICAgICMgZ2V0IHRpbWUgc3RyaW5nICsgJFRpbWUgZGlmZgogICAgICAgICRWYWx1ZSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lICsgJFRpbWVEaWZmLAogICAgICAgICk7CgogICAgICAgICMgcmVtb3ZlIHRoZSB0aW1lIHBhcnQKICAgICAgICAkVmFsdWUgPX4gc3tcQSAoXGR7NH0tXGR7Mn0tXGR7Mn0pICAuKiBcen17JDF9eG1zOwogICAgfQogICAgJFZhbHVlID0gJFBhcmFte1ZhbHVlfSBpZiBkZWZpbmVkICRQYXJhbXtWYWx1ZX07CgogICAgIyBjcmVhdGUgdGhlIGZpZWxkIGRlZmluaXRpb24KICAgIG15ICREYXRhID0gewogICAgICAgIE5hbWUgICAgICA9PiAkRmllbGROYW1lLAogICAgICAgIFRpdGxlICAgICA9PiAkRmllbGRMYWJlbCwKICAgICAgICBEYXRhdHlwZSAgPT4gJ0RhdGUnLAogICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICBNYW5kYXRvcnkgPT4gJFBhcmFte01hbmRhdG9yeX0sCiAgICAgICAgRGVmYXVsdCAgID0+ICRWYWx1ZSB8fCAnJywKICAgIH07CgogICAgcmV0dXJuICREYXRhOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwoKICAgIG15ICRWYWx1ZSA9ICRQYXJhbXskRmllbGROYW1lfTsKCiAgICAjIHJlbW92ZSB0aGUgdGltZSBwYXJ0CiAgICBpZiAoJFZhbHVlKSB7CiAgICAgICAgJFZhbHVlID1+IHN7XEEgKFxkezR9LVxkezJ9LVxkezJ9KSAgLiogXHp9eyQxfXhtczsKCiAgICAgICAgIyBhZGQgMHMgdG8gdGhlIHRpbWUgcGFydAogICAgICAgICRWYWx1ZSAuPSAnIDAwOjAwOjAwJzsKICAgIH0KCiAgICByZXR1cm4gJFZhbHVlOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGhlIGZpZWxkIHZhbHVlIGZyb20gcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgIH07CiAgICB9CgogICAgIyB0cnkgdG8gY29udmVydCB2YWx1ZSB0byBhIFN5c3RlbVRpbWUKICAgIGlmICgkVmFsdWUpIHsKICAgICAgICBteSAkU3lzdGVtVGltZSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICBTdHJpbmcgPT4gJFZhbHVlLAogICAgICAgICk7CgogICAgICAgIGlmICggISRTeXN0ZW1UaW1lICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgcmVzdWx0aW5nIHN0cnVjdHVyZQogICAgbXkgJFJlc3VsdCA9IHsKICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gJFNlcnZlckVycm9yLAogICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgfTsKCiAgICByZXR1cm4gJFJlc3VsdDsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVEYXRlVGltZS5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIERhdGVUaW1lIGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRGF0ZVRpbWU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEYXRlVGltZQoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIERhdGVUaW1lIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgIG15ICRUaW1lRGlmZiA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6IDAgKTsKCiAgICAgICAgIyBnZXQgY3VycmVudCBzeXN0ZW0gdGltZQogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpOwoKICAgICAgICAjIGdldCB0aW1lIHN0cmluZyArICRUaW1lIGRpZmYKICAgICAgICAkVmFsdWUgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lMlRpbWVTdGFtcCgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkU3lzdGVtVGltZSArICRUaW1lRGlmZiwKICAgICAgICApOwoKICAgIH0KICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX0gaWYgZGVmaW5lZCAkUGFyYW17VmFsdWV9OwoKICAgICMgY3JlYXRlIHRoZSBmaWVsZCBkZWZpbml0aW9uCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBOYW1lICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBUaXRsZSAgICAgPT4gJEZpZWxkTGFiZWwsCiAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgICMgdGltZSB6b25lIHRyYW5zbGF0aW9uIGlmIG5lZWRlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGltZVpvbmVVc2VyJykgJiYgJFBhcmFte1VzZXJUaW1lWm9uZX0gJiYgJFZhbHVlICkgewoKICAgICAgICAjIGNvdmVydCAkVmFsdWUgdG8gYSBudW1lcmljIHRpbWUgZm9yIGNvbnZldHJzaW9ucwogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkVmFsdWUsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgYSB0aW1lIG9iamVjdCBmb3IgdGhlcyB1c2VyIChiZWNhdXNlIG9mIHRoZSB0aW1lIHpvbmUpCiAgICAgICAgJFNlbGYtPntVc2VyVGltZU9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6VGltZS0+bmV3KAogICAgICAgICAgICAleyRTZWxmfSwKICAgICAgICAgICAgVXNlclRpbWVab25lID0+ICRQYXJhbXtVc2VyVGltZVpvbmV9LAogICAgICAgICk7CgogICAgICAgICMgc3VidHJhY3QgdGhlIHVzZXIgdGltZSB6b25lIGZyb20gdGhlIGN1cnJlbnQgdmFsdWUKICAgICAgICAkU3lzdGVtVGltZSA9ICRTeXN0ZW1UaW1lIC0gKCAkUGFyYW17VXNlclRpbWVab25lfSAqIDM2MDAgKTsKCiAgICAgICAgIyBjb252ZXJ0IG51bWVyaWMgdmFsdWUgYWdhaW4gdG8gc3RyaW5nCiAgICAgICAgJFZhbHVlID0gJFNlbGYtPntVc2VyVGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKCBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lLCApOwogICAgfQoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSBwYXJhbQogICAgbXkgJFZhbHVlID0gJFBhcmFte1ZhbHVlfTsKCiAgICBteSAkU2VydmVyRXJyb3I7CiAgICBteSAkRXJyb3JNZXNzYWdlOwoKICAgICMgcGVyZm9ybSBuZWNlc3NhcnkgdmFsaWRhdGlvbnMKICAgIGlmICggJFBhcmFte01hbmRhdG9yeX0gJiYgJFZhbHVlIGVxICcnICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgfTsKICAgIH0KCiAgICAjIHRyeSB0byBjb252ZXJ0IHZhbHVlIHRvIGEgU3lzdGVtVGltZQogICAgaWYgKCRWYWx1ZSkgewogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkVmFsdWUsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJFN5c3RlbVRpbWUgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgpzdWIgX1RyYW5zZm9ybURhdGVTZWxlY3Rpb24gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRpbWUgem9uZSB0cmFuc2xhdGlvbiBpZiBuZWVkZWQKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpbWVab25lVXNlcicpICYmICRQYXJhbXtVc2VyVGltZVpvbmV9ICkgewogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17VGltZVN0YW1wfSwKICAgICAgICApOwogICAgICAgICRTeXN0ZW1UaW1lID0gJFN5c3RlbVRpbWUgLSAoICRTZWxmLT57VXNlclRpbWVab25lfSAqIDM2MDAgKTsKCiAgICAgICAgJFNlbGYtPntVc2VyVGltZU9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6VGltZS0+bmV3KAogICAgICAgICAgICAleyRTZWxmfSwKICAgICAgICAgICAgVXNlclRpbWVab25lID0+ICRQYXJhbXtVc2VyVGltZVpvbmV9LAogICAgICAgICk7CgogICAgICAgICRQYXJhbXtUaW1lU3RhbXB9CiAgICAgICAgICAgID0gJFNlbGYtPntVc2VyVGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKCBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lLCApOwogICAgfQogICAgcmV0dXJuICRQYXJhbXtUaW1lU3RhbXB9Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVEcm9wZG93bi5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIERyb3Bkb3duIGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRHJvcGRvd247Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEcm9wZG93bgoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIERyb3Bkb3duIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgICRWYWx1ZSA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6ICcnICk7CiAgICB9CiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIHNldCBQb3NzaWJsZVZhbHVlcwogICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gJEZpZWxkQ29uZmlnLT57UG9zc2libGVWYWx1ZXN9OwoKICAgIGlmICggJEZpZWxkQ29uZmlnLT57VHJhbnNsYXRhYmxlVmFsdWVzfSApIHsKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRQb3NzaWJsZVZhbHVlcykgKSB7CiAgICAgICAgICAgIGZvciBteSAkUG9zc2libGVLZXkgKCBzb3J0IGtleXMgJXskUG9zc2libGVWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgbXkgJE9yaWdpbmFsVmFsdWUgPSAkUG9zc2libGVWYWx1ZXMtPnskUG9zc2libGVLZXl9OwogICAgICAgICAgICAgICAgJFBvc3NpYmxlVmFsdWVzLT57JFBvc3NpYmxlS2V5fQogICAgICAgICAgICAgICAgICAgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCRPcmlnaW5hbFZhbHVlKSB8fCAkT3JpZ2luYWxWYWx1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBQb3NzaWJsZU5vbmUgYXR0cmlidXRlCiAgICBteSAkRmllbGRQb3NzaWJsZU5vbmU7CiAgICBpZiAoIGRlZmluZWQgJFBhcmFte092ZXJyaWRlUG9zc2libGVOb25lfSApIHsKICAgICAgICAkRmllbGRQb3NzaWJsZU5vbmUgPSAkUGFyYW17T3ZlcnJpZGVQb3NzaWJsZU5vbmV9OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEZpZWxkUG9zc2libGVOb25lID0gJEZpZWxkQ29uZmlnLT57UG9zc2libGVOb25lfSB8fCAwOwogICAgfQoKICAgIGlmICgkRmllbGRQb3NzaWJsZU5vbmUpIHsKICAgICAgICAkUG9zc2libGVWYWx1ZXMtPnsnJ30gPSAnLSc7CiAgICB9CgogICAgIyBjcmVhdGUgdGhlIGZpZWxkIGRlZmluaXRpb24KICAgIG15ICREYXRhID0gewogICAgICAgIE5hbWUgICAgICA9PiAkRmllbGROYW1lLAogICAgICAgIFRpdGxlICAgICA9PiAkRmllbGRMYWJlbCwKICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICBPcHRpb25zICAgPT4gJFBvc3NpYmxlVmFsdWVzLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSBwYXJhbQogICAgbXkgJFZhbHVlID0gJFBhcmFte1ZhbHVlfTsKCiAgICBteSAkU2VydmVyRXJyb3I7CiAgICBteSAkRXJyb3JNZXNzYWdlOwoKICAgICMgcGVyZm9ybSBuZWNlc3NhcnkgdmFsaWRhdGlvbnMKICAgIGlmICggJFBhcmFte01hbmRhdG9yeX0gJiYgJFZhbHVlIGVxICcnICkgewogICAgICAgICRTZXJ2ZXJFcnJvciA9IDE7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBnZXQgcG9zc2libGUgdmFsdWVzIGxpc3QKICAgICAgICBteSAkUG9zc2libGVWYWx1ZXMgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ30tPntQb3NzaWJsZVZhbHVlc307CgogICAgICAgICMgdmFsaWRhdGUgaWYgdmFsdWUgaXMgaW4gcG9zc2libGUgdmFsdWVzIGxpc3QgKGJ1dCBsZXQgcGFzcyBlbXB0eSB2YWx1ZXMpCiAgICAgICAgaWYgKCAkVmFsdWUgJiYgISRQb3NzaWJsZVZhbHVlcy0+eyRWYWx1ZX0gKSB7CiAgICAgICAgICAgICRTZXJ2ZXJFcnJvciAgPSAxOwogICAgICAgICAgICAkRXJyb3JNZXNzYWdlID0gJ1RoZSBmaWVsZCBjb250ZW50IGlzIGludmFsaWQnOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVUZXh0LnBtIC0gRHJpdmVyIGZvciBEeW5hbWljRmllbGQgVGV4dCBiYWNrZW5kCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZVRleHQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVUZXh0Cgo9aGVhZDEgU1lOT1BTSVMKCkR5bmFtaWNGaWVsZHMgVGV4dCBiYWNrZW5kIGRyaXZlciBmb3IgaVBob25lSGFuZGxlCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgcHVibGljIGludGVyZmFjZSBvZiBMPEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ+LgpQbGVhc2UgbG9vayB0aGVyZSBmb3IgYSBkZXRhaWxlZCByZWZlcmVuY2Ugb2YgdGhlIGZ1bmN0aW9ucy4KCj1vdmVyIDQKCj1jdXQKCnN1YiBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIGNvbmZpZyBmcm9tIGZpZWxkIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9OwogICAgbXkgJEZpZWxkTmFtZSAgID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKICAgIG15ICRGaWVsZExhYmVsICA9ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntMYWJlbH0gKTsKCiAgICBteSAkVmFsdWUgPSAnJzsKCiAgICAjIHNldCB0aGUgZmllbGQgdmFsdWUgb3IgZGVmYXVsdAogICAgaWYgKCAkUGFyYW17VXNlRGVmYXVsdFZhbHVlfSApIHsKICAgICAgICAkVmFsdWUgPSAoIGRlZmluZWQgJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA/ICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gOiAnJyApOwogICAgfQogICAgJFZhbHVlID0gJFBhcmFte1ZhbHVlfSBpZiBkZWZpbmVkICRQYXJhbXtWYWx1ZX07CgogICAgIyBjcmVhdGUgdGhlIGZpZWxkIGRlZmluaXRpb24KICAgIG15ICREYXRhID0gewogICAgICAgIE5hbWUgICAgICA9PiAkRmllbGROYW1lLAogICAgICAgIFRpdGxlICAgICA9PiAkRmllbGRMYWJlbCwKICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgIE1heCAgICAgICA9PiAyMDAsCiAgICAgICAgTWFuZGF0b3J5ID0+ICRQYXJhbXtNYW5kYXRvcnl9LAogICAgICAgIERlZmF1bHQgICA9PiAkVmFsdWUgfHwgJycsCiAgICB9OwoKICAgIHJldHVybiAkRGF0YTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRmllbGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKCiAgICBteSAkVmFsdWUgPSAkUGFyYW17JEZpZWxkTmFtZX07CgogICAgcmV0dXJuICRWYWx1ZTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHBhcmFtCiAgICBteSAkVmFsdWUgPSAkUGFyYW17VmFsdWV9OwoKICAgIG15ICRTZXJ2ZXJFcnJvcjsKICAgIG15ICRFcnJvck1lc3NhZ2U7CgogICAgIyBwZXJmb3JtIG5lY2Vzc2FyeSB2YWxpZGF0aW9ucwogICAgaWYgKCAkUGFyYW17TWFuZGF0b3J5fSAmJiAkVmFsdWUgZXEgJycgKSB7CiAgICAgICAgJFNlcnZlckVycm9yID0gMTsKICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVUZXh0QXJlYS5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIFRleHRBcmVhIGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lVGV4dEFyZWE7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVUZXh0QXJlYQoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIFRleHRBcmVhIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5sZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKClRoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgTDxLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kPi4KUGxlYXNlIGxvb2sgdGhlcmUgZm9yIGEgZGV0YWlsZWQgcmVmZXJlbmNlIG9mIHRoZSBmdW5jdGlvbnMuCgo9b3ZlciA0Cgo9Y3V0CgpzdWIgSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGFrZSBjb25maWcgZnJvbSBmaWVsZCBjb25maWcKICAgIG15ICRGaWVsZENvbmZpZyA9ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57Q29uZmlnfTsKICAgIG15ICRGaWVsZE5hbWUgICA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CiAgICBteSAkRmllbGRMYWJlbCAgPSAkUGFyYW17TGFuZ3VhZ2VPYmplY3R9LT5HZXQoICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TGFiZWx9ICk7CgogICAgbXkgJFZhbHVlID0gJyc7CgogICAgIyBzZXQgdGhlIGZpZWxkIHZhbHVlIG9yIGRlZmF1bHQKICAgIGlmICggJFBhcmFte1VzZURlZmF1bHRWYWx1ZX0gKSB7CiAgICAgICAgJFZhbHVlID0gKCBkZWZpbmVkICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gPyAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9IDogJycgKTsKICAgIH0KICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX0gaWYgZGVmaW5lZCAkUGFyYW17VmFsdWV9OwoKICAgICMgY3JlYXRlIHRoZSBmaWVsZCBkZWZpbml0aW9uCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBOYW1lICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBUaXRsZSAgICAgPT4gJEZpZWxkTGFiZWwsCiAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICBWaWV3dHlwZSAgPT4gJ1RleHRBcmVhJywKICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICBNYXggICAgICAgPT4gMjBfMDAwLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSB0aGUgcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKICAgICAgICAkU2VydmVyRXJyb3IgPSAxOwogICAgfQoKICAgICMgY3JlYXRlIHJlc3VsdGluZyBzdHJ1Y3R1cmUKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgID0+ICRTZXJ2ZXJFcnJvciwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgIH07CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL2lQaG9uZUJhY2tlbmQucG0gLSBJbnRlcmZhY2UgZm9yIER5bmFtaWNGaWVsZCBiYWNrZW5kcwojIENvcHlyaWdodCAoQykgMjAwMS0yMDEzIE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6aVBob25lQmFja2VuZDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjppUGhvbmVCYWNrZW5kCgo9aGVhZDEgU1lOT1BTSVMKCkR5bmFtaWNGaWVsZHMgYmFja2VuZCBpbnRlcmZhY2UgZm9yIGlQaG9uZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQoKQoKY3JlYXRlcyB0aGUgZmllbGQgZGVmaW5pdGlvbiB0byBiZSB1c2VkIGluIGlwaG9uZSBlZGl0IG1hc2tzLgoKICAgIG15ICRGaWVsZERlZmluaXRpb24gPSAkQmFja2VuZE9iamVjdC0+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=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vV2ViL0ludGVyZmFjZWlQaG9uZUhhbmRsZS5wbSAtIHRoZSBhZ2VudCBpbnRlcmZhY2UgZmlsZSAoaW5jbC4gYXV0aCkKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OkNvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpBdXRoOwp1c2UgS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpEQjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6TG9nOwp1c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwOwp1c2UgS2VybmVsOjpTeXN0ZW06OmlQaG9uZTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpKU09OOwp1c2UgS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3Q7CnVzZSBLZXJuZWw6OlN5c3RlbTo6TG9jazsKdXNlIEtlcm5lbDo6U3lzdGVtOjpNYWluOwp1c2UgS2VybmVsOjpTeXN0ZW06OlF1ZXVlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlNlcnZpY2U7CnVzZSBLZXJuZWw6OlN5c3RlbTo6U0xBOwp1c2UgS2VybmVsOjpTeXN0ZW06OlN0YXRlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlRpY2tldDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpUaW1lOwp1c2UgS2VybmVsOjpTeXN0ZW06OlR5cGU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VXNlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3Q7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OldlYjo6SW50ZXJmYWNlaVBob25lSGFuZGxlIC0gdGhlIGlQaG9uZSBIYW5kbGUgd2ViIGludGVyZmFjZQoKPWhlYWQxIFNZTk9QU0lTCgp0aGUgZ2xvYmFsIGlQaG9uZSBIYW5kbGUgd2ViIGludGVyZmFjZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgaVBob25lSGFuZGxlIHdlYiBpbnRlcmZhY2Ugb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZTsKCiAgICBteSAkSW50ZXJmYWNlQWdlbnQgPSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpJbnRlcmZhY2VpUGhvbmVIYW5kbGUtPm5ldygKICAgICAgICBXZWJSZXF1ZXN0ID0+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
IyAtLQojIHNjcmlwdHMvdGVzdC9KU09OR2F0ZXdheS50IC0gSlNPTiBnYXRld2F5IHRlc3RzY3JpcHQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4Owp1c2UgdmFycyAocXcoJFNlbGYpKTsKCnVzZSBLZXJuZWw6OkNvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpKU09OOwp1c2UgS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXI7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEgSXNTdHJpbmdXaXRoRGF0YSk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6V2ViVXNlckFnZW50OwoKIyBoZWxwZXIgb2JqZWN0Cm15ICRIZWxwZXJPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlci0+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==
IyAtLQojIEhhc0JlaGF2aW9yLnQgLSBIYXNCZWhhdmlvciBiYWNrZW5kIHRlc3RzCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKdXNlIHZhcnMgKHF3KCRTZWxmKSk7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpteSAkSGVscGVyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXItPm5ldygKICAgICUkU2VsZiwKICAgIFVuaXRUZXN0T2JqZWN0ID0+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==
IyAtLQojIGlQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQudCAtIGlQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgYmFja2VuZCB0ZXN0cwojIENvcHlyaWdodCAoQykgMjAwMS0yMDEzIE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKbXkgJEhlbHBlck9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyLT5uZXcoCiAgICAlJFNlbGYsCiAgICBVbml0VGVzdE9iamVjdCA9PiAkU2VsZiwKKTsKCm15ICRERkJhY2tlbmRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kLT5uZXcoICV7JFNlbGZ9ICk7CgpteSAkRW5MYW5ndWFnZU9iamVjdCA9IEtlcm5lbDo6TGFuZ3VhZ2UtPm5ldygKICAgICV7JFNlbGZ9LAogICAgVXNlckxhbmd1YWdlID0+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=
IyAtLQojIGlQaG9uZUZpZWxkVmFsdWVHZXQudCAtIGlQaG9uZUZpZWxkVmFsdWVHZXQgYmFja2VuZCB0ZXN0cwojIENvcHlyaWdodCAoQykgMjAwMS0yMDEzIE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKdXNlIEtlcm5lbDo6Q29uZmlnOwp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpteSAkSGVscGVyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXItPm5ldygKICAgICUkU2VsZiwKICAgIFVuaXRUZXN0T2JqZWN0ID0+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=
IyAtLQojIGlQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZS50IC0gaVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIGJhY2tlbmQgdGVzdHMKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4Owp1c2UgdmFycyAocXcoJFNlbGYpKTsKCnVzZSBLZXJuZWw6OkNvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKbXkgJEhlbHBlck9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyLT5uZXcoCiAgICAlJFNlbGYsCiAgICBVbml0VGVzdE9iamVjdCA9PiAkU2VsZiwKKTsKCm15ICRERkJhY2tlbmRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kLT5uZXcoICV7JFNlbGZ9ICk7CgojIHRoZXJlcyBpcyBub3QgcmVhbGx5IG5lZWRlZCB0byBhZGQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHRlc3QsIHdlIGNhbiBkZWZpbmUgYSBzdGF0aWMKIyBzZXQgb2YgY29uZmlndXJhdGlvbnMKbXkgJUR5bmFtaWNGaWVsZENvbmZpZ3MgPSAoCiAgICBUZXh0ID0+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=
IyAtLQojIGlQaG9uZUhhbmRsZS5wbSAtIGNvZGUgdG8gZXhjZWN1dGUgZHVyaW5nIHBhY2thZ2UgaW5zdGFsbGF0aW9uCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSB2YXI6OnBhY2thZ2VzZXR1cDo6aVBob25lSGFuZGxlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6Q29uZmlnOwp1c2UgS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpQYWNrYWdlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKaVBob25lSGFuZGxlLnBtIC0gY29kZSB0byBleGNlY3V0ZSBkdXJpbmcgcGFja2FnZSBpbnN0YWxsYXRpb24KCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlRpbWU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkRCOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpYTUw7CiAgICB1c2UgdmFyOjpwYWNrYWdlc2V0dXA6OmlQaG9uZTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJExvZ09iamVjdCAgICA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTWFpbk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpNYWluLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+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==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vaVBob25lLnBtIC0gYWxsIGlQaG9uZSBoYW5kbGUgZnVuY3Rpb25zCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6aVBob25lOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2U7CnVzZSBLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtOwp1c2UgS2VybmVsOjpTeXN0ZW06OlByaW9yaXR5Owp1c2UgS2VybmVsOjpTeXN0ZW06OlN5c3RlbUFkZHJlc3M7CnVzZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOwp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjppUGhvbmUgLSBpUGhvbmUgbGliCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBpUGhvbmUgZnVuY3Rpb25zLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6VGltZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6TWFpbjsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6REI7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlVzZXI7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpRdWV1ZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6U2VydmljZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6VHlwZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6U3RhdGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvY2s7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlNMQTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQ7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3Q7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OmlQaG9uZTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJEVuY29kZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTG9nT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+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+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRCb2R5RWxlbWVudHM7CiAgICB9CgogICAgIyBjdXN0b21lciBpZAogICAgaWYgKCAkU2VsZi0+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
JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovUHJvZHVjZXIgKEFwYWNoZSBGT1AgVmVyc2lvbiAwLjk1KQovQ3JlYXRpb25EYXRlIChEOjIwMTMxMTA4MDg0NjQyKzAxJzAwJykKPj4KZW5kb2JqCjUgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAxMiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+PgpzdHJlYW0KeJydlndUU9kWh8+9N71QkhCKlNBraFICSA29SJEuKjEJEErAkAAiNkRUcERRkaYIMijggKNDkbEiioUBUbHrBBlE1HFwFBuWSWStGd+8ee/Nm98f935rn73P3Wfvfda6AJD8gwXCTFgJgAyhWBTh58WIjYtnYAcBDPAAA2wA4HCzs0IW+EYCmQJ82IxsmRP4F726DiD5+yrTP4zBAP+flLlZIjEAUJiM5/L42VwZF8k4PVecJbdPyZi2NE3OMErOIlmCMlaTc/IsW3z2mWUPOfMyhDwZy3PO4mXw5Nwn4405Er6MkWAZF+cI+LkyviZjg3RJhkDGb+SxGXxONgAoktwu5nNTZGwtY5IoMoIt43kA4EjJX/DSL1jMzxPLD8XOzFouEiSniBkmXFOGjZMTi+HPz03ni8XMMA43jSPiMdiZGVkc4XIAZs/8WRR5bRmyIjvYODk4MG0tbb4o1H9d/JuS93aWXoR/7hlEH/jD9ld+mQ0AsKZltdn6h21pFQBd6wFQu/2HzWAvAIqyvnUOfXEeunxeUsTiLGcrq9zcXEsBn2spL+jv+p8Of0NffM9Svt3v5WF485M4knQxQ143bmZ6pkTEyM7icPkM5p+H+B8H/nUeFhH8JL6IL5RFRMumTCBMlrVbyBOIBZlChkD4n5r4D8P+pNm5lona+BHQllgCpSEaQH4eACgqESAJe2Qr0O99C8ZHA/nNi9GZmJ37z4L+fVe4TP7IFiR/jmNHRDK4ElHO7Jr8WgI0IABFQAPqQBvoAxPABLbAEbgAD+ADAkEoiARxYDHgghSQAUQgFxSAtaAYlIKtYCeoBnWgETSDNnAYdIFj4DQ4By6By2AE3AFSMA6egCnwCsxAEISFyBAVUod0IEPIHLKFWJAb5AMFQxFQHJQIJUNCSAIVQOugUqgcqobqoWboW+godBq6AA1Dt6BRaBL6FXoHIzAJpsFa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zOTZd794/DIwFTs1/lz0/NOvm1+ov9j/0u5l73TY9P1XGa9mXpe8UX9z4C3rbf+7mHcTM7nvse8rP5h+6PkY9PHup4xPn34D94Tz+wplbmRzdHJlYW0KZW5kb2JqCjYgMCBvYmoKWy9JQ0NCYXNlZCA1IDAgUl0KZW5kb2JqCjcgMCBvYmoKPDwKICAvVHlwZSAvTWV0YWRhdGEKICAvU3VidHlwZSAvWE1MCiAgL0xlbmd0aCAxMyAwIFIKPj4Kc3RyZWFtCjw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+PHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyI+CjxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiByZGY6YWJvdXQ9IiI+CjxkYzpsYW5ndWFnZT4KPHJkZjpCYWc+CjxyZGY6bGk+ZW48L3JkZjpsaT4KPC9yZGY6QmFnPgo8L2RjOmxhbmd1YWdlPgo8ZGM6ZGF0ZT4KPHJkZjpTZXE+CjxyZGY6bGk+MjAxMy0xMS0wOFQwODo0Njo0MiswMTowMDwvcmRmOmxpPgo8L3JkZjpTZXE+CjwvZGM6ZGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiByZGY6YWJvdXQ9IiI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8cGRmOlByb2R1Y2VyPkFwYWNoZSBGT1AgVmVyc2lvbiAwLjk1PC9wZGY6UHJvZHVjZXI+CjwvcmRmOkRlc2NyaXB0aW9uPgo8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgcmRmOmFib3V0PSIiPgo8eG1wOkNyZWF0ZURhdGU+MjAxMy0xMS0wOFQwODo0Njo0MiswMTowMDwv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ago2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzEuMzE2MDQgNjc5LjYyOSA1MzkuOTk2MDMgNjg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MCAwIFIKL0ggL0kKCj4+CmVuZG9iago2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDY2Ny42MjkgMTUzLjY0OSA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40OTIgNjY3LjYyOSA1MzkuODUyIDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjU1LjYyOSAxNTUuMDQ5IDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDY1NS42MjkgNTM5LjkyIDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQzLjYyOSAxODQuOTU0MDEgNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MCAwIFIKL0ggL0kKCj4+CmVuZG9iago3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDg1OTYgNjQzLjYyOSA1MzkuODQ2IDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjMxLjYyOSAyMTIuMzE5IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjQ3MyA2MzEuNjI5IDUzOS44MzMgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MyAwIFIKL0ggL0kKCj4+CmVuZG9iago3NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2MTkuNjI5IDIxMS4zMjggNjI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NiAwIFIKL0ggL0kKCj4+CmVuZG9iago3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDc1IDYxOS42MjkgNTM5LjgzNSA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjgwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDYwNy42MjkgMjMwLjQ3OCA2MTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40NzUgNjA3LjYyOSA1MzkuODM1IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKODMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTk1LjYyOSAyMjMuMCA2MDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40NzQgNTk1LjYyOSA1MzkuODM0IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODIgMCBSCi9IIC9JCgo+PgplbmRvYmoKODYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTgzLjYyOSAyMTQuNDAyMDEgNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NSAwIFIKL0ggL0kKCj4+CmVuZG9iago4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDc0IDU4My42MjkgNTM5LjgzNCA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDU3MS42MjkgMjM5LjEyNSA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40NzMgNTcxLjYyOSA1MzkuODMzIDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODggMCBSCi9IIC9JCgo+PgplbmRvYmoKOTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTU5LjYyOSAxODguMzQ3IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjQ4NSA1NTkuNjI5IDUzOS44NDUgNTY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MSAwIFIKL0ggL0kKCj4+CmVuZG9iago5NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1NDcuNjI5IDIxNi4yNTcgNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NCAwIFIKL0ggL0kKCj4+CmVuZG9iago5NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDc0IDU0Ny42MjkgNTM5LjgzNCA1NTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjk4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDUzNS42MjkgMjA5LjAyNzAxIDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjQ3MyA1MzUuNjI5IDUzOS44MzMgNTQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTIzLjYyOSAyMTIuNTQ4IDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTAwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDc1IDUyMy42MjkgNTM5LjgzNSA1MzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTExLjYyOSAyMzEuODA3IDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTAzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDc0IDUxMS42MjkgNTM5LjgzNCA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNDk5LjYyOSAyMTIuMTMxIDUwOS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40NzMgNDk5LjYyOSA1MzkuODMzIDUwOS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTEwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDg3LjYyOSAyMDQuNzY5IDQ5Ny42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTExIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40OTA5NyA0ODcuNjI5IDUzOS44NTEgNDk3LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDc1LjYyOSAxNzMuMjk3IDQ4NS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA0NzUuNjI5IDUzOS45MTkgNDg1LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDYzLjYyOSAxNjQuNjMxIDQ3My42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA0NjMuNjI5IDUzOS45MTkgNDczLjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDUxLjYyOSAyMDkuMzMyIDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDg1OTYgNDUxLjYyOSA1MzkuODQ2IDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MzkuNjI5IDIyMS40NjUgNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40MDkgNDM5LjYyOSA1MzkuNzY5IDQ0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQyNy42MjkgMTQ5LjI4NSA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2Mzk2IDQyNy42MjkgNTM5LjkyNCA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDE1LjYyOSAxOTguNzg1IDQyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDg1IDQxNS42MjkgNTM5Ljg0NSA0MjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDAzLjYyOSAxOTQuNDE5IDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTMwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDg0IDQwMy42MjkgNTM5Ljg0NCA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCAzOTEuNjI5IDE0Ny40MzUgNDAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40OTIgMzkxLjYyOSA1MzkuODUyIDQwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTMzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNzkuNjI5IDI0Mi40NTMgMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy4zMzQgMzc5LjYyOSA1MzkuNjk0MDMgMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM2Ny42MjkgMjQ0LjYyOSAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjMzNDk2IDM2Ny42MjkgNTM5LjY5NSAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCAzNTUuNjI5IDE2MS42NzkgMzY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NjM5NiAzNTUuNjI5IDUzOS45MjQgMzY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM0My42MjkgMjEyLjEzNTAxIDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYxMDQgMzQzLjYyOSA1MzkuOTIxIDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMzEuNjI5IDE5Ni4wNTggMzQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NiAzMzEuNjI5IDUzOS45MiAzNDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzE5LjYyOSAzNzkuMzI3IDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgMzE5LjYyOSA1MzkuOTE5IDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMDcuNjI5IDM2My43ODggMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiAzMDcuNjI5IDUzOS45MTkgMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI5NS42MjkgMzU4LjYwOSAzMDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDI5NS42MjkgNTM5LjkyIDMwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyODMuNjI5IDM4Ni42MzkgMjkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NjEwNCAyODMuNjI5IDUzOS45MjEgMjkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI3MS42MjkgMzg1Ljk2MSAyODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDI3MS42MjkgNTM5LjkxOSAyODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjU5LjYyOSAzNTMuMzU5IDI2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgMjU5LjYyOSA1MzkuOTE5IDI2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNDcuNjI4OTggMzg5LjcyNyAyNTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDI0Ny42Mjg5OCA1MzkuOTIxIDI1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMzUuNjI4OTggNDA1LjEzNiAyNDUuNjE4OTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYgMjM1LjYyODk4IDUzOS45MiAyNDUuNjE4OTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMjMuNjI4OTggNDI0LjUgMjMzLjYxODk5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDIyMy42Mjg5OCA1MzkuOTIxIDIzMy42MTg5OSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIxMS42Mjg5OCAzOTEuNDkgMjIxLjYxODk5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDIxMS42Mjg5OCA1MzkuOTIxIDIyMS42MTg5OSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE5OS42Mjg5OCAzODMuMTQyIDIwOS42MTg5OSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiAxOTkuNjI4OTggNTM5LjkxOSAyMDkuNjE4OTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxODcuNjI5MDEgMzkxLjU5OSAxOTcuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYgMTg3LjYyOTAxIDUzOS45MiAxOTcuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNzUuNjI5MDEgNDE3LjUxNyAxODUuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgMTc1LjYyOTAxIDUzOS45MTkgMTg1LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTYzLjYyOTAxIDM3OS43NjYgMTczLjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDE2My42MjkwMSA1MzkuOTIxIDE3My42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE1MS42MjkwMSA0MDAuMjA1IDE2MS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTk1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiAxNTEuNjI5MDEgNTM5LjkxOSAxNjEuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTkzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMzkuNjI5MDEgMzkzLjA5MyAxNDkuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgMTM5LjYyOTAxIDUzOS45MTkgMTQ5LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTI3LjYyOTAyIDM3OC40MDEgMTM3LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDEyNy42MjkwMiA1MzkuOTIgMTM3LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTE1LjYyOTAyIDM2Mi44NjIgMTI1LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDExNS42MjkwMiA1MzkuOTIgMTI1LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTAzLjYyOTAyIDM1Ny42ODIgMTEzLjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDEwMy42MjkwMiA1MzkuOTE5IDExMy42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjA5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDkxLjYyOTAyIDM4NS43MTIgMTAxLjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDkxLjYyOTAyIDUzOS45MTkgMTAxLjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNzkuNjI5MDIgMzUyLjQzMjk4IDg5LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIxMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDc5LjYyOTAyIDUzOS45MiA4OS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjE0IDAgb2JqCjw8IC9MZW5ndGggMjE1IDAgUiAvRmlsdGVyIC9GbGF0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SCAvSQoKPj4KZW5kb2JqCjIzNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNzA5LjAwNSA1MzkuOTE5IDcxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIzOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2OTcuMDA1IDM4OC44IDcwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjM4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYgNjk3LjAwNSA1MzkuOTIgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY4NS4wMDUgMzQ5LjY1NCA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDY4NS4wMDUgNTM5LjkyIDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NzMuMDA1IDM2My4yOCA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDY3My4wMDUgNTM5LjkxOSA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjYxLjAwNSAzNDkuNzkzIDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNjYxLjAwNSA1MzkuOTE5IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NDkuMDA1IDQxNy4yMzggNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjUyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA2NDkuMDA1IDUzOS45MTkgNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYzNy4wMDUgMzg2LjA1MSA2NDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDYzNy4wMDUgNTM5LjkyIDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MjUuMDA1IDM2MC4wOTMgNjM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NiA2MjUuMDA1IDUzOS45MiA2MzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjEzLjAwNSAzOTcuODc0IDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNjEzLjAwNSA1MzkuOTE5IDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MDEuMDA1IDM0Ny40MTMgNjEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NiA2MDEuMDA1IDUzOS45MiA2MTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTg5LjAwNSAzNzUuODgxIDU5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYgNTg5LjAwNSA1MzkuOTIgNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU3Ny4wMDUgMzg0LjMzOCA1ODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDU3Ny4wMDUgNTM5LjkyMSA1ODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTY1LjAwNSA0MTAuMjU2IDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYxMDQgNTY1LjAwNSA1MzkuOTIxIDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NTMuMDA1IDM5Mi45NDQgNTYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NiA1NTMuMDA1IDUzOS45MiA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTQxLjAwNSAzODMuMzAyIDU1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYxMDQgNTQxLjAwNSA1MzkuOTIxIDU1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MjkuMDA1IDM5Ni42MjkgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA1MjkuMDA1IDUzOS45MTkgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUxNy4wMDUgMzgxLjkzNyA1MjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDUxNy4wMDUgNTM5LjkyIDUyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MDUuMDA1IDM2Ni4zOTggNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA1MDUuMDA1IDUzOS45MTkgNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ5My4wMDUgMzYxLjIxOSA1MDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDQ5My4wMDUgNTM5LjkyMSA1MDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDgxLjAwNSAzODkuMjQ4IDQ5MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNDgxLjAwNSA1MzkuOTE5IDQ5MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NjkuMDA1IDM1NS45NjkgNDc4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA0NjkuMDA1IDUzOS45MTkgNDc4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ1Ny4wMDUgMzc4LjgyOSA0NjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDQ1Ny4wMDUgNTM5LjkxOSA0NjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDQ1LjAwNSAzOTIuMzM2IDQ1NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzAxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNDQ1LjAwNSA1MzkuOTE5IDQ1NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzAxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MzMuMDA1IDM1My4xOSA0NDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwNCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSA0MzMuMDA1IDUzOS45NDUgNDQyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQyMS4wMDUgMzY2LjgxNyA0MzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwNyAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNiA0MjEuMDA1IDUzOS45NDYgNDMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzExIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQwOS4wMDUgMzUzLjMzMDAyIDQxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzEwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI2IDQwOS4wMDUgNTM5Ljk0NiA0MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxMCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzk3LjAwNSA0MjAuNzc0IDQwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzEzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI0IDM5Ny4wMDUgNTM5Ljk0NCA0MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxMyAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzg1LjAwNSAzODkuNTg3IDM5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzE2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI1IDM4NS4wMDUgNTM5Ljk0NSAzOTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxNiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzczLjAwNSAzNjMuNjI5IDM4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzE5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI1IDM3My4wMDUgNTM5Ljk0NSAzODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxOSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzYxLjAwNSA0MDEuNDExIDM3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzIyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI2IDM2MS4wMDUgNTM5Ljk0NiAzNzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMyMiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzQ5LjAwNSAzNTAuOTQ5IDM1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzI1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI1IDM0OS4wMDUgNTM5Ljk0NSAzNTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMyNSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzM3LjAwNSAzNzkuNDE3IDM0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzI4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI1IDMzNy4wMDUgNTM5Ljk0NSAzNDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMyOCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzI1LjAwNSAzODcuODc0IDMzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzMxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI2IDMyNS4wMDUgNTM5Ljk0NiAzMzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMzMSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzEzLjAwNSA0MTMuNzkyIDMyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzM0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI1IDMxMy4wMDUgNTM5Ljk0NSAzMjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMzNCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzAxLjAwNSAzOTYuNDggMzEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzM5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgMzAxLjAwNSA1MzkuOTQ1IDMxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzM3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyODkuMDA1IDQwMi42NDYgMjk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjYgMjg5LjAwNSA1MzkuOTQ2IDI5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzQwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNzcuMDA1IDQxNS45NzMgMjg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQ1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgMjc3LjAwNSA1MzkuOTQ0IDI4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzQzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNjUuMDA1IDM3NS4zMTMgMjc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQ4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgMjY1LjAwNSA1MzkuOTQ0IDI3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzQ2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNTMuMDA0OTkgNDExLjY4IDI2Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzQ5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI0IDI1My4wMDQ5OSA1MzkuOTQ0IDI2Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzQ5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNDEuMDA0OTkgMzk4LjE3MyAyNTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1MiAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNCAyNDEuMDA0OTkgNTM5Ljk0NCAyNTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1MiAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjI5LjAwNDk5IDM3Mi4zMDUgMjM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgMjI5LjAwNDk5IDUzOS45NDUgMjM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzU5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIxNy4wMDQ5OSAzNzkuMzI3IDIyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzU4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI0IDIxNy4wMDQ5OSA1MzkuOTQ0IDIyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzU4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMDUuMDA0OTkgMzY3Ljg1MyAyMTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM2MSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNiAyMDUuMDA0OTkgNTM5Ljk0NiAyMTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM2MSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTkzLjAwNDk5IDM5OC43NjEgMjAyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgMTkzLjAwNDk5IDUzOS45NDUgMjAyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzY4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE4MS4wMDQ5OSA0MTUuODI0IDE5MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzY3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI1IDE4MS4wMDQ5OSA1MzkuOTQ1IDE5MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzY3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM3MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNjkuMDA0OTkgMzgyLjg4MyAxNzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3MCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNCAxNjkuMDA0OTkgNTM5Ljk0NCAxNzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3MCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTU3LjAwNDk5IDM5Ni4yMTEgMTY2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgMTU3LjAwNDk5IDUzOS45NDUgMTY2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzc3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE0NS4wMDQ5OSAzNjAuOCAxNTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3NiAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNCAxNDUuMDA0OTkgNTM5Ljk0NCAxNTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3NiAwIFIKL0ggL0kKCj4+CmVuZG9iagozODAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTMzLjAwNDk5IDM1NS41NTEgMTQyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgMTMzLjAwNDk5IDUzOS45NDUgMTQyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzgzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEyMS4wMDUgMzc4LjQxMSAxMzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM4MiAwIFIKL0ggL0kKCj4+CmVuZG9iagozODQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSAxMjEuMDA1IDUzOS45NDUgMTMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzODIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzg2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEwOS4wMDUgMzkxLjkxOCAxMTguOTk0OTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM4NSAwIFIKL0ggL0kKCj4+CmVuZG9iagozODcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSAxMDkuMDA1IDUzOS45NDUgMTE4Ljk5NDk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzODUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzg5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDk3LjAwNSAzNjMuMjExIDEwNi45OTQ5OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzg4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM5MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI2IDk3LjAwNSA1MzkuOTQ2IDEwNi45OTQ5OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzg4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM5MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA4NS4wMDUgNDAwLjk5MiA5NC45OTQ5OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzkxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM5MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI0IDg1LjAwNSA1MzkuOTQ0IDk0Ljk5NDk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzOTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzk1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDczLjAwNSAzNzguOTk5IDgyLjk5NDk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzOTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzk2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjYgNzMuMDA1IDUzOS45NDYgODIuOTk0OTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM5NCAwIFIKL0ggL0kKCj4+CmVuZG9iagozOTcgMCBvYmoKPDwgL0xlbmd0aCAzOTggMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nN2dTY8kOZKe7/Ur8g+sr/ObBBYN9ExPC9JtoQF0WOxJH9BhR8Loor8vMyONkRnukfXU7AzUOVjUTmfV4xGeDI+XRuNr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IDAgUgozMDggMCBSCjMwOSAwIFIKMzExIDAgUgozMTIgMCBSCjMxNCAwIFIKMzE1IDAgUgozMTcgMCBSCjMxOCAwIFIKMzIwIDAgUgozMjEgMCBSCjMyMyAwIFIKMzI0IDAgUgozMjYgMCBSCjMyNyAwIFIKMzI5IDAgUgozMzAgMCBSCjMzMiAwIFIKMzMzIDAgUgozMzUgMCBSCjMzNiAwIFIKMzM4IDAgUgozMzkgMCBSCjM0MSAwIFIKMzQyIDAgUgozNDQgMCBSCjM0NSAwIFIKMzQ3IDAgUgozNDggMCBSCjM1MCAwIFIKMzUxIDAgUgozNTMgMCBSCjM1NCAwIFIKMzU2IDAgUgozNTcgMCBSCjM1OSAwIFIKMzYwIDAgUgozNjIgMCBSCjM2MyAwIFIKMzY1IDAgUgozNjYgMCBSCjM2OCAwIFIKMzY5IDAgUgozNzEgMCBSCjM3MiAwIFIKMzc0IDAgUgozNzUgMCBSCjM3NyAwIFIKMzc4IDAgUgozODAgMCBSCjM4MSAwIFIKMzgzIDAgUgozODQgMCBSCjM4NiAwIFIKMzg3IDAgUgozODkgMCBSCjM5MCAwIFIKMzkyIDAgUgozOTMgMCBSCjM5NSAwIFIKMzk2IDAgUgpdCmVuZG9iagoxOSAwIG9iago8PAogIC9SZXNvdXJjZXMgMyAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0JsZWVkQm94IFswIDAgNjEyIDc5Ml0KICAvVHJpbUJveCBbMCAwIDYxMiA3OTJdCiAgL1BhcmVudCAxIDAgUgogIC9Bbm5vdHMgMjM2IDAgUgogIC9Db250ZW50cyAzOTcgMCBSCj4+CgplbmRvYmoKMzk4IDAgb2JqCjE2NzYxCmVuZG9iago0MDAgMCBvYmoKPDwgL0xlbmd0aCA0MDEgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nO1Zy24TMRTdz1f4B3B9/baEIqV5INhVRGKBuuIhFg2obPh97r32JPYkaQtNYCqNKmdi+859HJ/j2i0IhT+vAD9C0uLTtrvvgMdABC2ML0POC6NkdF4pEFvBfZCguH+H5oPezrb0fD9XPO3638SH7nunxJvu4y2afhZKOvGrU4fhKpfvu5sq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PgplbmRvYmoKNDIxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY5Ny4wMDUgMzEyLjE2MSA3MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyMCAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNCA2OTcuMDA1IDUzOS45NDQgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDI0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY4NS4wMDUgMzA0LjYwMSA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyMyAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSA2ODUuMDA1IDUzOS45NDUgNjk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMjk4LjAxNyA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyNiAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSA2NzMuMDA1IDUzOS45NDUgNjgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDMwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY2MS4wMDUgMjk0LjU3MDk4IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDI5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI2IDY2MS4wMDUgNTM5Ljk0NiA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyOSAwIFIKL0ggL0kKCj4+CmVuZG9iago0MzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQ5LjAwNSAzMDkuNjkwOTggNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDM0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgNjQ5LjAwNSA1MzkuOTQ1IDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDMyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzcuMDA1IDMxOC4zNjcgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDM3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgNjM3LjAwNSA1MzkuOTQ1IDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MjUuMDA1IDMxMy44MjUgNjM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzggMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgNjI1LjAwNSA1MzkuOTQ1IDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDM4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MTMuMDA1IDM4NS42OTIgNjIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgNjEzLjAwNSA1MzkuOTQ0IDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MDEuMDA1IDQwMC40MjQgNjEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgNjAxLjAwNSA1MzkuOTQ0IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1ODkuMDA1IDQyMy4zNDQgNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQ5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgNTg5LjAwNSA1MzkuOTQ0IDU5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NzcuMDA1IDQyOC44OTMgNTg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDUyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjYgNTc3LjAwNSA1MzkuOTQ2IDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NjUuMDA1IDQzMS4wODQgNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgNTY1LjAwNSA1MzkuOTQ1IDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ1NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NTMuMDA1IDQyOC40NDQgNTYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDU4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgNTUzLjAwNSA1MzkuOTQ0IDU2Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NDEuMDA1IDQwNC4wOCA1NTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ1OSAwIFIKL0ggL0kKCj4+CmVuZG9iago0NjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSA1NDEuMDA1IDUzOS45NDUgNTUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTI5LjAwNSAxMjkuOTY0IDUzOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMTggNTI5LjAwNSA1MzkuODk5OTYgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTE3LjAwNSAxMTguOTc4IDUyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI5IDUxNy4wMDUgNTM5Ljk0OSA1MjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ2NSAwIFIKL0ggL0kKCj4+CmVuZG9iago0NjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTA1LjAwNSAxNjcuNjYgNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NjggMCBSCi9IIC9JCgo+PgplbmRvYmoKNDcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4xNzUgNTA1LjAwNSA1MzkuODk0OTYgNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NjggMCBSCi9IIC9JCgo+PgplbmRvYmoKNDcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDkzLjAwNSAxNTAuMDgyIDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI3IDQ5My4wMDUgNTM5Ljk0Njk2IDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ4MS4wMDUgMTM4LjA5NyA0OTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ3NCAwIFIKL0ggL0kKCj4+CmVuZG9iago0NzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyOSA0ODEuMDA1IDUzOS45NDkgNDkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDc4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3Vi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CjM3NwplbmRvYmoKNTAzIDAgb2JqCjExOTM5CmVuZG9iago1MDQgMCBvYmoKMjcKZW5kb2JqCjUwNSAwIG9iago1NzEKZW5kb2JqCjUwNiAwIG9iagoxMDMxNAplbmRvYmoKNTA3IDAgb2JqCjIyCmVuZG9iago1MDggMCBvYmoKNTE0CmVuZG9iagoxIDAgb2JqCjw8IC9UeXBlIC9QYWdlcwovQ291bnQgMjQKL0tpZHMgWzggMCBSIDE4IDAgUiAxOSAwIFIgMjAgMCBSIDIxIDAgUiAyMiAwIFIgMzEgMCBSIDM0IDAgUiAzNyAwIFIgNDIgMCBSIDUxIDAgUiA1NCAwIFIgNTcgMCBSIDIxNiAwIFIgMjE5IDAgUiAyMjIgMCBSIDIyNSAwIFIgMjI4IDAgUiAyMzEgMCBSIDM5OSAwIFIgNDAyIDAgUiA0MDUgMCBSIDQwOCAwIFIgNDExIDAgUiBdID4+CmVuZG9iagoyIDAgb2JqCjw8CiAgL1R5cGUgL0NhdGFsb2cKICAvUGFnZXMgMSAwIFIKICAvTGFuZyAoZW4pCiAgL01ldGFkYXRhIDcgMCBSCiAgL1BhZ2VMYWJlbHMgOSAwIFIKPj4KCmVuZG9iagozIDAgb2JqCjw8Ci9Gb250IDw8CiAgL0YxNyA0ODUgMCBSCiAgL0YxNSA0OTEgMCBSCiAgL0YxNiA0OTcgMCBSCj4+Ci9Qcm9jU2V0IFsgL1BERiAvSW1hZ2VCIC9JbWFnZUMgL1RleHQgXQovWE9iamVjdCA8PAogIC9JbTMgMjMgMCBSCiAgL0ltNCAyNCAwIFIKICAvSW0xIDEwIDAgUgogIC9JbTIgMTEgMCBSCj4+Ci9Db2xvclNwYWNlIDw8CiAgL0RlZmF1bHRSR0IgNiAwIFIKPj4KPj4KZW5kb2JqCjkgMCBvYmoKPDwgL051bXMgWzAgPDwgL1AgKDEpID4+CiAxIDw8IC9QIChpaSkgPj4KIDIgPDwgL1AgKGlpaSkgPj4KIDMgPDwgL1AgKGl2KSA+PgogNCA8PCAvUCAodikgPj4KIDUgPDwgL1AgKHZpKSA+PgogNiA8PCAvUCAoMSkgPj4KIDcgPDwgL1AgKDIpID4+CiA4IDw8IC9QICgzKSA+PgogOSA8PCAvUCAoNCkgPj4KIDEwIDw8IC9QICg1KSA+PgogMTEgPDwgL1AgKDYpID4+CiAxMiA8PCAvUCAoNykgPj4KIDEzIDw8IC9QICg4KSA+PgogMTQgPDwgL1AgKDkpID4+CiAxNSA8PCAvUCAoMTApID4+CiAxNiA8PCAvUCAoMTEpID4+CiAxNyA8PCAvUCAoMTIpID4+CiAxOCA8PCAvUCAoMTMpID4+CiAxOSA8PCAvUCAoMTQpID4+CiAyMCA8PCAvUCAoMTUpID4+CiAyMSA8PCAvUCAoMTYpID4+CiAyMiA8PCAvUCAoMTcpID4+CiAyMyA8PCAvUCAoMTgpID4+Cl0gPj4KCmVuZG9iago0NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MiAwIFIgL1hZWiA3Mi4wIDQ2My4yIG51bGxdCj4+CmVuZG9iago2MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago2NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago2NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iago3MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDY1OC40IG51bGxdCj4+CmVuZG9iago3MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDYzOC4wIG51bGxdCj4+CmVuZG9iago3NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDU4Ni4wIG51bGxdCj4+CmVuZG9iago3OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDUzNC4wIG51bGxdCj4+CmVuZG9iago4MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDQ4Mi4wIG51bGxdCj4+CmVuZG9iago4NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDQzMC4wIG51bGxdCj4+CmVuZG9iago4OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDM3OC4wIG51bGxdCj4+CmVuZG9iago5MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDMyNi4wIG51bGxdCj4+CmVuZG9iago5NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDMwNS42IG51bGxdCj4+CmVuZG9iago5NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDI2NS42IG51bGxdCj4+CmVuZG9iagoxMDAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCAyMjUuNiBudWxsXQo+PgplbmRvYmoKMTAzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgMTg1LjU5OTk4IG51bGxdCj4+CmVuZG9iagoxMDYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCAxNDUuNTk5OTggbnVsbF0KPj4KZW5kb2JqCjEwOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMTIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKMTE1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNjI2LjQgbnVsbF0KPj4KZW5kb2JqCjExOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDU1OC4wIG51bGxdCj4+CmVuZG9iagoxMjEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA0ODkuNiBudWxsXQo+PgplbmRvYmoKMTI0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEyNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iagoxMzAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA2MDIuNCBudWxsXQo+PgplbmRvYmoKMTMzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQyIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEzNiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MiAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iagoxMzkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDIgMCBSIC9YWVogNzIuMCA2MDAuNCBudWxsXQo+PgplbmRvYmoKMTQyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUxIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjE0NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDY2Ni43NDkgbnVsbF0KPj4KZW5kb2JqCjE0OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDYwMi4yMTcgbnVsbF0KPj4KZW5kb2JqCjE1MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDUyNS42ODUgbnVsbF0KPj4KZW5kb2JqCjE1NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDQ0OS4xNTMgbnVsbF0KPj4KZW5kb2JqCjE1NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDM3Mi42MjEgbnVsbF0KPj4KZW5kb2JqCjE2MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDMwOC4wODkgbnVsbF0KPj4KZW5kb2JqCjE2MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDI0My41NTcgbnVsbF0KPj4KZW5kb2JqCjE2NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDE3OS4wMjUwMiBudWxsXQo+PgplbmRvYmoKMTY5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUxIDAgUiAvWFlaIDcyLjAgMTE0LjQ5Mjk4IG51bGxdCj4+CmVuZG9iagoxNzIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTQgMCBSIC9YWVogNzIuMCA3MDguMCBudWxsXQo+PgplbmRvYmoKMTc1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU0IDAgUiAvWFlaIDcyLjAgNjQzLjk5OCBudWxsXQo+PgplbmRvYmoKMTc4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU0IDAgUiAvWFlaIDcyLjAgNTc5Ljk5NiBudWxsXQo+PgplbmRvYmoKMTgxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU0IDAgUiAvWFlaIDcyLjAgNTE1Ljk5NCBudWxsXQo+PgplbmRvYmoKMTg0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU0IDAgUiAvWFlaIDcyLjAgNDUxLjk5MiBudWxsXQo+PgplbmRvYmoKMTg3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU0IDAgUiAvWFlaIDcyLjAgMzc1Ljk5IG51bGxdCj4+CmVuZG9iagoxOTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTQgMCBSIC9YWVogNzIuMCAyOTkuOTg4IG51bGxdCj4+CmVuZG9iagoxOTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTQgMCBSIC9YWVogNzIuMCAyMzUuOTg2IG51bGxdCj4+CmVuZG9iagoxOTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTQgMCBSIC9YWVogNzIuMCAxNTkuOTg0MDEgbnVsbF0KPj4KZW5kb2JqCjE5OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyMDIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCA2NDguMzM4IG51bGxdCj4+CmVuZG9iagoyMDUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCA1NzAuMjk4IG51bGxdCj4+CmVuZG9iagoyMDggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCA1MDQuMjU4IG51bGxdCj4+CmVuZG9iagoyMTEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCA0MzguMjE4IG51bGxdCj4+CmVuZG9iagoyMzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCAzNjAuMTc4IG51bGxdCj4+CmVuZG9iagoyMzggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCAyODIuMTM4IG51bGxdCj4+CmVuZG9iagoyNDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCAyMDQuMDk4MDIgbnVsbF0KPj4KZW5kb2JqCjI0NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NyAwIFIgL1hZWiA3Mi4wIDEzOC4wNTc5OCBudWxsXQo+PgplbmRvYmoKMjQ3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyNTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgNjYwLjk0NiBudWxsXQo+PgplbmRvYmoKMjUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDU5NS42OTYgbnVsbF0KPj4KZW5kb2JqCjI1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCA1MzAuNDQ2IG51bGxdCj4+CmVuZG9iagoyNTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgNDY1LjE5NTk4IG51bGxdCj4+CmVuZG9iagoyNjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgMzk5Ljk0NiBudWxsXQo+PgplbmRvYmoKMjY1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDMzNC42OTYgbnVsbF0KPj4KZW5kb2JqCjI2OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCAyNjkuNDQ2IG51bGxdCj4+CmVuZG9iagoyNzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgMTkyLjE5NTk4IG51bGxdCj4+CmVuZG9iagoyNzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgMTE0Ljk0NTk4NCBudWxsXQo+PgplbmRvYmoKMjc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDY5Ni4wIG51bGxdCj4+CmVuZG9iagoyODAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgNjMyLjI1IG51bGxdCj4+CmVuZG9iagoyODMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgNTQ0LjUgbnVsbF0KPj4KZW5kb2JqCjI4NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCA0NjguNzUgbnVsbF0KPj4KZW5kb2JqCjI4OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCAzOTMuMCBudWxsXQo+PgplbmRvYmoKMjkyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDMyOS4yNSBudWxsXQo+PgplbmRvYmoKMjk1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDI2NS41IG51bGxdCj4+CmVuZG9iagoyOTggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgMTg5Ljc1IG51bGxdCj4+CmVuZG9iagozMDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgMTE0LjAgbnVsbF0KPj4KZW5kb2JqCjMwNCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCA2OTYuMCBudWxsXQo+PgplbmRvYmoKMzA3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDYzMS4zOTE5NyBudWxsXQo+PgplbmRvYmoKMzEwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDU2Ni43ODQgbnVsbF0KPj4KZW5kb2JqCjMxMyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCA1MDIuMTc2IG51bGxdCj4+CmVuZG9iagozMTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIyIDAgUiAvWFlaIDcyLjAgNDM3LjU2OCBudWxsXQo+PgplbmRvYmoKMzE5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDM3Mi45NiBudWxsXQo+PgplbmRvYmoKMzIyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDMwOC4zNTIgbnVsbF0KPj4KZW5kb2JqCjMyNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCAyNDMuNzQzOTkgbnVsbF0KPj4KZW5kb2JqCjMyOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCAxNzkuMTM1OTkgbnVsbF0KPj4KZW5kb2JqCjMzMSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCAxMTQuNTI4MDE1IG51bGxdCj4+CmVuZG9iagozMzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgNjk2LjAgbnVsbF0KPj4KZW5kb2JqCjMzNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCA2MTguMDAxIG51bGxdCj4+CmVuZG9iagozNDAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgNTQwLjAwMiBudWxsXQo+PgplbmRvYmoKMzQzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDQ3NC4wMDMgbnVsbF0KPj4KZW5kb2JqCjM0NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCAzODQuMDA0IG51bGxdCj4+CmVuZG9iagozNDkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgMzA2LjAwNSBudWxsXQo+PgplbmRvYmoKMzUyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDIyOC4wMDYwMSBudWxsXQo+PgplbmRvYmoKMzU1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDE1MC4wMDcwMiBudWxsXQo+PgplbmRvYmoKMzU4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagozNjEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgNjQ5LjM5IG51bGxdCj4+CmVuZG9iagozNjQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgNTcyLjcxNyBudWxsXQo+PgplbmRvYmoKMzY3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDUwOC4wNDQgbnVsbF0KPj4KZW5kb2JqCjM3MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCA0MzEuMzcxIG51bGxdCj4+CmVuZG9iagozNzMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgMzY2LjY5OCBudWxsXQo+PgplbmRvYmoKMzc2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDI3OC4wMjUgbnVsbF0KPj4KZW5kb2JqCjM3OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCAyMTMuMzUxOTkgbnVsbF0KPj4KZW5kb2JqCjM4MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCAxNDguNjc5MDIgbnVsbF0KPj4KZW5kb2JqCjM4NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMzg4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDY0OC45NDYgbnVsbF0KPj4KZW5kb2JqCjM5MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCA1ODMuNjk2IG51bGxdCj4+CmVuZG9iagozOTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNTE4LjQ0NiBudWxsXQo+PgplbmRvYmoKNDE2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDQ1My4xOTYgbnVsbF0KPj4KZW5kb2JqCjQyMCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCAzNzUuOTQ2IG51bGxdCj4+CmVuZG9iago0MjMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgMzEwLjY5NiBudWxsXQo+PgplbmRvYmoKNDI2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDI0NS40NDYwMSBudWxsXQo+PgplbmRvYmoKNDI5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDE4MC4xOTU5OCBudWxsXQo+PgplbmRvYmoKNDMyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDExNC45NDU5ODQgbnVsbF0KPj4KZW5kb2JqCjQzNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszOTkgMCBSIC9YWVogNzIuMCA3MDguMCBudWxsXQo+PgplbmRvYmoKNDM4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM5OSAwIFIgL1hZWiA3Mi4wIDY0My42IG51bGxdCj4+CmVuZG9iago0NDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzk5IDAgUiAvWFlaIDcyLjAgNTc5LjIgbnVsbF0KPj4KZW5kb2JqCjQ0NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszOTkgMCBSIC9YWVogNzIuMCA1MTQuOCBudWxsXQo+PgplbmRvYmoKNDQ3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM5OSAwIFIgL1hZWiA3Mi4wIDQ1MC40IG51bGxdCj4+CmVuZG9iago0NTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzk5IDAgUiAvWFlaIDcyLjAgMzg2LjAgbnVsbF0KPj4KZW5kb2JqCjQ1MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszOTkgMCBSIC9YWVogNzIuMCAzMjEuNiBudWxsXQo+PgplbmRvYmoKNDU2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM5OSAwIFIgL1hZWiA3Mi4wIDI1Ny4yIG51bGxdCj4+CmVuZG9iago0NTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzk5IDAgUiAvWFlaIDcyLjAgMTkyLjc5OTk5IG51bGxdCj4+CmVuZG9iago0NjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAyIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjQ2NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDUgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNDY4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwNSAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iago0NzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDA4IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjQ3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MTEgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNDc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQxMSAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iagp4cmVmCjAgNTA5CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDI3NjQ0MCAwMDAwMCBuIAowMDAwMjc2NjcxIDAwMDAwIG4gCjAwMDAyNzY3NzYgMDAwMDAgbiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTEyIDAwMDAwIG4gCjAwMDAwMDI3OTQgMDAwMDAgbiAKMDAwMDAwMjgyNyAwMDAwMCBuIAowMDAwMTA2MzE1IDAwMDAwIG4gCjAwMDAyNzcwMDMgMDAwMDAgbiAKMDAwMDAwMzY5NiAwMDAwMCBuIAowMDAwMDUyMjIzIDAwMDAwIG4gCjAwMDAxMDU0ODUgMDAwMDAgbiAKMDAwMDEwNTUwNiAwMDAwMCBuIAowMDAwMTA1NTI2IDAwMDAwIG4gCjAwMDAxMDU1NDggMDAwMDAgbiAKMDAwMDEwNTU3MCAwMDAwMCBuIAowMDAwMTA2NDgyIDAwMDAwIG4gCjAwMDAxNzY3MTEgMDAwMDAgbiAKMDAwMDIyMDk5NCAwMDAwMCBuIAowMDAwMjQzNTA3IDAwMDAwIG4gCjAwMDAxMjg5MjggMDAwMDAgbiAKMDAwMDEyMDk2MiAwMDAwMCBuIAowMDAwMTA2NTAyIDAwMDAwIG4gCjAwMDAxMTI2NzMgMDAwMDAgbiAKMDAwMDExOTg1MyAwMDAwMCBuIAowMDAwMTE5ODc0IDAwMDAwIG4gCjAwMDAxMTk4OTUgMDAwMDAgbiAKMDAwMDEyMDkzNSAwMDAwMCBuIAowMDAwMTIwMDkwIDAwMDAwIG4gCjAwMDAxMjExNDcgMDAwMDAgbiAKMDAwMDEyMjcxMiAwMDAwMCBuIAowMDAwMTIxMTY3IDAwMDAwIG4gCjAwMDAxMjI4ODAgMDAwMDAgbiAKMDAwMDEyMzc1MiAwMDAwMCBuIAowMDAwMTIyOTAxIDAwMDAwIG4gCjAwMDAxMjM5MjAgMDAwMDAgbiAKMDAwMDEyNTQzNSAwMDAwMCBuIAowMDAwMTIzOTQwIDAwMDAwIG4gCjAwMDAxMjU0MDggMDAwMDAgbiAKMDAwMDEyNDE1MCAwMDAwMCBuIAowMDAwMTI1NjIwIDAwMDAwIG4gCjAwMDAxMjc1MDcgMDAwMDAgbiAKMDAwMDEyNTY0MSAwMDAwMCBuIAowMDAwMTI3Njc1IDAwMDAwIG4gCjAwMDAyNzc0NDUgMDAwMDAgbiAKMDAwMDEyNzY5NiAwMDAwMCBuIAowMDAwMTI4ODk0IDAwMDAwIG4gCjAwMDAxMjc4MzMgMDAwMDAgbiAKMDAwMDEyNzk3MyAwMDAwMCBuIAowMDAwMTI5MTEzIDAwMDAwIG4gCjAwMDAxMzA5MzYgMDAwMDAgbiAKMDAwMDEyOTEzMyAwMDAwMCBuIAowMDAwMTMxMTA0IDAwMDAwIG4gCjAwMDAxMzI5MzUgMDAwMDAgbiAKMDAwMDEzMTEyNSAwMDAwMCBuIAowMDAwMTMzMTAzIDAwMDAwIG4gCjAwMDAxMzQ2NzcgMDAwMDAgbiAKMDAwMDEzMzEyNCAwMDAwMCBuIAowMDAwMTM0ODQ1IDAwMDAwIG4gCjAwMDAyNzc1MjMgMDAwMDAgbiAKMDAwMDEzNDg2NiAwMDAwMCBuIAowMDAwMTc1OTAxIDAwMDAwIG4gCjAwMDAxMzUwMDIgMDAwMDAgbiAKMDAwMDI3NzYwMSAwMDAwMCBuIAowMDAwMTM1MTQ2IDAwMDAwIG4gCjAwMDAxMzUyODMgMDAwMDAgbiAKMDAwMDI3NzY3OSAwMDAwMCBuIAowMDAwMTM1NDIzIDAwMDAwIG4gCjAwMDAxMzU1NjEgMDAwMDAgbiAKMDAwMDI3Nzc1NyAwMDAwMCBuIAowMDAwMTM1Njk5IDAwMDAwIG4gCjAwMDAxMzU4MzkgMDAwMDAgbiAKMDAwMDI3NzgzNSAwMDAwMCBuIAowMDAwMTM1OTgxIDAwMDAwIG4gCjAwMDAxMzYxMTkgMDAwMDAgbiAKMDAwMDI3NzkxMyAwMDAwMCBuIAowMDAwMTM2MjU5IDAwMDAwIG4gCjAwMDAxMzYzOTcgMDAwMDAgbiAKMDAwMDI3Nzk5MSAwMDAwMCBuIAowMDAwMTM2NTM3IDAwMDAwIG4gCjAwMDAxMzY2NzUgMDAwMDAgbiAKMDAwMDI3ODA2OSAwMDAwMCBuIAowMDAwMTM2ODE1IDAwMDAwIG4gCjAwMDAxMzY5NTEgMDAwMDAgbiAKMDAwMDI3ODE0NyAwMDAwMCBuIAowMDAwMTM3MDkxIDAwMDAwIG4gCjAwMDAxMzcyMzEgMDAwMDAgbiAKMDAwMDI3ODIyNSAwMDAwMCBuIAowMDAwMTM3MzcxIDAwMDAwIG4gCjAwMDAxMzc1MDkgMDAwMDAgbiAKMDAwMDI3ODMwMyAwMDAwMCBuIAowMDAwMTM3NjQ5IDAwMDAwIG4gCjAwMDAxMzc3ODcgMDAwMDAgbiAKMDAwMDI3ODM4MSAwMDAwMCBuIAowMDAwMTM3OTI3IDAwMDAwIG4gCjAwMDAxMzgwNjUgMDAwMDAgbiAKMDAwMDI3ODQ1OSAwMDAwMCBuIAowMDAwMTM4MjA1IDAwMDAwIG4gCjAwMDAxMzgzNDUgMDAwMDAgbiAKMDAwMDI3ODUzNyAwMDAwMCBuIAowMDAwMTM4NDg1IDAwMDAwIG4gCjAwMDAxMzg2MjUgMDAwMDAgbiAKMDAwMDI3ODYxNiAwMDAwMCBuIAowMDAwMTM4NzY3IDAwMDAwIG4gCjAwMDAxMzg5MDcgMDAwMDAgbiAKMDAwMDI3ODY5OSAwMDAwMCBuIAowMDAwMTM5MDQ5IDAwMDAwIG4gCjAwMDAxMzkxOTEgMDAwMDAgbiAKMDAwMDI3ODc4MiAwMDAwMCBuIAowMDAwMTM5MzM1IDAwMDAwIG4gCjAwMDAxMzk0NzYgMDAwMDAgbiAKMDAwMDI3ODg2MSAwMDAwMCBuIAowMDAwMTM5NjIyIDAwMDAwIG4gCjAwMDAxMzk3NjQgMDAwMDAgbiAKMDAwMDI3ODk0MCAwMDAwMCBuIAowMDAwMTM5OTEwIDAwMDAwIG4gCjAwMDAxNDAwNTIgMDAwMDAgbiAKMDAwMDI3OTAxOSAwMDAwMCBuIAowMDAwMTQwMTk4IDAwMDAwIG4gCjAwMDAxNDAzMzggMDAwMDAgbiAKMDAwMDI3OTA5OCAwMDAwMCBuIAowMDAwMTQwNDgyIDAwMDAwIG4gCjAwMDAxNDA2MjIgMDAwMDAgbiAKMDAwMDI3OTE3NyAwMDAwMCBuIAowMDAwMTQwNzY0IDAwMDAwIG4gCjAwMDAxNDA5MDMgMDAwMDAgbiAKMDAwMDI3OTI1NiAwMDAwMCBuIAowMDAwMTQxMDQ3IDAwMDAwIG4gCjAwMDAxNDExODcgMDAwMDAgbiAKMDAwMDI3OTMzNSAwMDAwMCBuIAowMDAwMTQxMzI5IDAwMDAwIG4gCjAwMDAxNDE0NjkgMDAwMDAgbiAKMDAwMDI3OTQxNCAwMDAwMCBuIAowMDAwMTQxNjExIDAwMDAwIG4gCjAwMDAxNDE3NTAgMDAwMDAgbiAKMDAwMDI3OTQ5MyAwMDAwMCBuIAowMDAwMTQxODkyIDAwMDAwIG4gCjAwMDAxNDIwMzIgMDAwMDAgbiAKMDAwMDI3OTU3MiAwMDAwMCBuIAowMDAwMTQyMTc2IDAwMDAwIG4gCjAwMDAxNDIzMTYgMDAwMDAgbiAKMDAwMDI3OTY1MSAwMDAwMCBuIAowMDAwMTQyNDYwIDAwMDAwIG4gCjAwMDAxNDI1OTkgMDAwMDAgbiAKMDAwMDI3OTczMCAwMDAwMCBuIAowMDAwMTQyNzQzIDAwMDAwIG4gCjAwMDAxNDI4ODUgMDAwMDAgbiAKMDAwMDI3OTgxMSAwMDAwMCBuIAowMDAwMTQzMDI5IDAwMDAwIG4gCjAwMDAxNDMxNjkgMDAwMDAgbiAKMDAwMDI3OTg5MiAwMDAwMCBuIAowMDAwMTQzMzA5IDAwMDAwIG4gCjAwMDAxNDM0NDkgMDAwMDAgbiAKMDAwMDI3OTk3MyAwMDAwMCBuIAowMDAwMTQzNTkzIDAwMDAwIG4gCjAwMDAxNDM3MzMgMDAwMDAgbiAKMDAwMDI4MDA1NCAwMDAwMCBuIAowMDAwMTQzODc3IDAwMDAwIG4gCjAwMDAxNDQwMTcgMDAwMDAgbiAKMDAwMDI4MDEzNSAwMDAwMCBuIAowMDAwMTQ0MTU3IDAwMDAwIG4gCjAwMDAxNDQyOTcgMDAwMDAgbiAKMDAwMDI4MDIxNiAwMDAwMCBuIAowMDAwMTQ0NDQxIDAwMDAwIG4gCjAwMDAxNDQ1ODEgMDAwMDAgbiAKMDAwMDI4MDI5NyAwMDAwMCBuIAowMDAwMTQ0NzI1IDAwMDAwIG4gCjAwMDAxNDQ4NjUgMDAwMDAgbiAKMDAwMDI4MDM4MCAwMDAwMCBuIAowMDAwMTQ1MDA5IDAwMDAwIG4gCjAwMDAxNDUxNTEgMDAwMDAgbiAKMDAwMDI4MDQ2MyAwMDAwMCBuIAowMDAwMTQ1Mjk3IDAwMDAwIG4gCjAwMDAxNDU0NDEgMDAwMDAgbiAKMDAwMDI4MDU0MiAwMDAwMCBuIAowMDAwMTQ1NTg1IDAwMDAwIG4gCjAwMDAxNDU3MjcgMDAwMDAgbiAKMDAwMDI4MDYyMyAwMDAwMCBuIAowMDAwMTQ1ODc1IDAwMDAwIG4gCjAwMDAxNDYwMTggMDAwMDAgbiAKMDAwMDI4MDcwNCAwMDAwMCBuIAowMDAwMTQ2MTY2IDAwMDAwIG4gCjAwMDAxNDYzMTAgMDAwMDAgbiAKMDAwMDI4MDc4NSAwMDAwMCBuIAowMDAwMTQ2NDU4IDAwMDAwIG4gCjAwMDAxNDY2MDIgMDAwMDAgbiAKMDAwMDI4MDg2NiAwMDAwMCBuIAowMDAwMTQ2NzQ2IDAwMDAwIG4gCjAwMDAxNDY4OTAgMDAwMDAgbiAKMDAwMDI4MDk0NiAwMDAwMCBuIAowMDAwMTQ3MDM4IDAwMDAwIG4gCjAwMDAxNDcxODIgMDAwMDAgbiAKMDAwMDI4MTAyNyAwMDAwMCBuIAowMDAwMTQ3MzMwIDAwMDAwIG4gCjAwMDAxNDc0NzQgMDAwMDAgbiAKMDAwMDI4MTEwOCAwMDAwMCBuIAowMDAwMTQ3NjIyIDAwMDAwIG4gCjAwMDAxNDc3NjYgMDAwMDAgbiAKMDAwMDI4MTE5MSAwMDAwMCBuIAowMDAwMTQ3OTE0IDAwMDAwIG4gCjAwMDAxNDgwNTggMDAwMDAgbiAKMDAwMDI4MTI3MCAwMDAwMCBuIAowMDAwMTQ4MjAyIDAwMDAwIG4gCjAwMDAxNDgzNDYgMDAwMDAgbiAKMDAwMDI4MTM1MSAwMDAwMCBuIAowMDAwMTQ4NDkwIDAwMDAwIG4gCjAwMDAxNDg2MzQgMDAwMDAgbiAKMDAwMDI4MTQzMiAwMDAwMCBuIAowMDAwMTQ4NzgyIDAwMDAwIG4gCjAwMDAxNDg5MjUgMDAwMDAgbiAKMDAwMDI4MTUxMyAwMDAwMCBuIAowMDAwMTQ5MDcyIDAwMDAwIG4gCjAwMDAxNDkyMTYgMDAwMDAgbiAKMDAwMDE0OTM1OCAwMDAwMCBuIAowMDAwMTc2ODk3IDAwMDAwIG4gCjAwMDAxNzgzNDcgMDAwMDAgbiAKMDAwMDE3NjkyMCAwMDAwMCBuIAowMDAwMTc4NTE3IDAwMDAwIG4gCjAwMDAxODAzMjUgMDAwMDAgbiAKMDAwMDE3ODUzOSAwMDAwMCBuIAowMDAwMTgwNDk1IDAwMDAwIG4gCjAwMDAxODE5NjEgMDAwMDAgbiAKMDAwMDE4MDUxNyAwMDAwMCBuIAowMDAwMTgyMTMxIDAwMDAwIG4gCjAwMDAxODQxMjMgMDAwMDAgbiAKMDAwMDE4MjE1MyAwMDAwMCBuIAowMDAwMTg0MjkzIDAwMDAwIG4gCjAwMDAxODYxNzEgMDAwMDAgbiAKMDAwMDE4NDMxNSAwMDAwMCBuIAowMDAwMTg2MzQxIDAwMDAwIG4gCjAwMDAxODc3ODQgMDAwMDAgbiAKMDAwMDE4NjM2MyAwMDAwMCBuIAowMDAwMTg3OTU0IDAwMDAwIG4gCjAwMDAyODE1OTQgMDAwMDAgbiAKMDAwMDE4Nzk3NiAwMDAwMCBuIAowMDAwMjIwMTA5IDAwMDAwIG4gCjAwMDAxODgxMTYgMDAwMDAgbiAKMDAwMDI4MTY3NSAwMDAwMCBuIAowMDAwMTg4MjYwIDAwMDAwIG4gCjAwMDAxODgzOTggMDAwMDAgbiAKMDAwMDI4MTc1NiAwMDAwMCBuIAowMDAwMTg4NTM4IDAwMDAwIG4gCjAwMDAxODg2NzggMDAwMDAgbiAKMDAwMDI4MTgzOSAwMDAwMCBuIAowMDAwMTg4ODE4IDAwMDAwIG4gCjAwMDAxODg5NTcgMDAwMDAgbiAKMDAwMDI4MTkyMiAwMDAwMCBuIAowMDAwMTg5MTAxIDAwMDAwIG4gCjAwMDAxODkyNDEgMDAwMDAgbiAKMDAwMDI4MjAwMiAwMDAwMCBuIAowMDAwMTg5Mzg1IDAwMDAwIG4gCjAwMDAxODk1MjUgMDAwMDAgbiAKMDAwMDI4MjA4NCAwMDAwMCBuIAowMDAwMTg5NjY5IDAwMDAwIG4gCjAwMDAxODk4MDkgMDAwMDAgbiAKMDAwMDI4MjE2NiAwMDAwMCBuIAowMDAwMTg5OTQ5IDAwMDAwIG4gCjAwMDAxOTAwODkgMDAwMDAgbiAKMDAwMDI4MjI0OCAwMDAwMCBuIAowMDAwMTkwMjI5IDAwMDAwIG4gCjAwMDAxOTAzNjkgMDAwMDAgbiAKMDAwMDI4MjMzMiAwMDAwMCBuIAowMDAwMTkwNTEzIDAwMDAwIG4gCjAwMDAxOTA2NTMgMDAwMDAgbiAKMDAwMDI4MjQxNCAwMDAwMCBuIAowMDAwMTkwNzkzIDAwMDAwIG4gCjAwMDAxOTA5MzMgMDAwMDAgbiAKMDAwMDI4MjQ5NiAwMDAwMCBuIAowMDAwMTkxMDczIDAwMDAwIG4gCjAwMDAxOTEyMTMgMDAwMDAgbiAKMDAwMDI4MjU3OCAwMDAwMCBuIAowMDAwMTkxMzU3IDAwMDAwIG4gCjAwMDAxOTE0OTcgMDAwMDAgbiAKMDAwMDI4MjY2MiAwMDAwMCBuIAowMDAwMTkxNjQxIDAwMDAwIG4gCjAwMDAxOTE3ODEgMDAwMDAgbiAKMDAwMDI4Mjc0NyAwMDAwMCBuIAowMDAwMTkxOTIxIDAwMDAwIG4gCjAwMDAxOTIwNjEgMDAwMDAgbiAKMDAwMDI4MjgyNyAwMDAwMCBuIAowMDAwMTkyMjA1IDAwMDAwIG4gCjAwMDAxOTIzNDUgMDAwMDAgbiAKMDAwMDI4MjkwOCAwMDAwMCBuIAowMDAwMTkyNDg5IDAwMDAwIG4gCjAwMDAxOTI2MjkgMDAwMDAgbiAKMDAwMDI4Mjk4OCAwMDAwMCBuIAowMDAwMTkyNzY5IDAwMDAwIG4gCjAwMDAxOTI5MDkgMDAwMDAgbiAKMDAwMDI4MzA2OSAwMDAwMCBuIAowMDAwMTkzMDUzIDAwMDAwIG4gCjAwMDAxOTMxOTMgMDAwMDAgbiAKMDAwMDI4MzE0OSAwMDAwMCBuIAowMDAwMTkzMzM3IDAwMDAwIG4gCjAwMDAxOTM0NzcgMDAwMDAgbiAKMDAwMDI4MzIzMCAwMDAwMCBuIAowMDAwMTkzNjIxIDAwMDAwIG4gCjAwMDAxOTM3NjEgMDAwMDAgbiAKMDAwMDI4MzMxMCAwMDAwMCBuIAowMDAwMTkzOTA1IDAwMDAwIG4gCjAwMDAxOTQwNDUgMDAwMDAgbiAKMDAwMDI4MzM5MSAwMDAwMCBuIAowMDAwMTk0MTg5IDAwMDAwIG4gCjAwMDAxOTQzMjkgMDAwMDAgbiAKMDAwMDI4MzQ3MSAwMDAwMCBuIAowMDAwMTk0NDczIDAwMDAwIG4gCjAwMDAxOTQ2MTIgMDAwMDAgbiAKMDAwMDI4MzU1MSAwMDAwMCBuIAowMDAwMTk0NzU0IDAwMDAwIG4gCjAwMDAxOTQ4OTQgMDAwMDAgbiAKMDAwMDI4MzYzNSAwMDAwMCBuIAowMDAwMTk1MDM2IDAwMDAwIG4gCjAwMDAxOTUxNzggMDAwMDAgbiAKMDAwMDI4MzcxNyAwMDAwMCBuIAowMDAwMTk1MzIwIDAwMDAwIG4gCjAwMDAxOTU0NjAgMDAwMDAgbiAKMDAwMDI4Mzc5OSAwMDAwMCBuIAowMDAwMTk1NjAyIDAwMDAwIG4gCjAwMDAxOTU3NDIgMDAwMDAgbiAKMDAwMDI4Mzg4MSAwMDAwMCBuIAowMDAwMTk1ODg0IDAwMDAwIG4gCjAwMDAxOTYwMjQgMDAwMDAgbiAKMDAwMDI4Mzk2MiAwMDAwMCBuIAowMDAwMTk2MTY2IDAwMDAwIG4gCjAwMDAxOTYzMDYgMDAwMDAgbiAKMDAwMDI4NDA0NCAwMDAwMCBuIAowMDAwMTk2NDQ4IDAwMDAwIG4gCjAwMDAxOTY1ODggMDAwMDAgbiAKMDAwMDI4NDEyOCAwMDAwMCBuIAowMDAwMTk2NzMwIDAwMDAwIG4gCjAwMDAxOTY4NzAgMDAwMDAgbiAKMDAwMDI4NDIxMiAwMDAwMCBuIAowMDAwMTk3MDEyIDAwMDAwIG4gCjAwMDAxOTcxNTIgMDAwMDAgbiAKMDAwMDI4NDI5NyAwMDAwMCBuIAowMDAwMTk3Mjk0IDAwMDAwIG4gCjAwMDAxOTc0MzQgMDAwMDAgbiAKMDAwMDI4NDM3NyAwMDAwMCBuIAowMDAwMTk3NTc2IDAwMDAwIG4gCjAwMDAxOTc3MTUgMDAwMDAgbiAKMDAwMDI4NDQ1OSAwMDAwMCBuIAowMDAwMTk3ODU3IDAwMDAwIG4gCjAwMDAxOTc5OTcgMDAwMDAgbiAKMDAwMDI4NDU0MSAwMDAwMCBuIAowMDAwMTk4MTM5IDAwMDAwIG4gCjAwMDAxOTgyNzkgMDAwMDAgbiAKMDAwMDI4NDYyMyAwMDAwMCBuIAowMDAwMTk4NDIxIDAwMDAwIG4gCjAwMDAxOTg1NjEgMDAwMDAgbiAKMDAwMDI4NDcwNSAwMDAwMCBuIAowMDAwMTk4NzAzIDAwMDAwIG4gCjAwMDAxOTg4NDQgMDAwMDAgbiAKMDAwMDI4NDc4NyAwMDAwMCBuIAowMDAwMTk4OTg4IDAwMDAwIG4gCjAwMDAxOTkxMzAgMDAwMDAgbiAKMDAwMDI4NDg3MSAwMDAwMCBuIAowMDAwMTk5Mjc0IDAwMDAwIG4gCjAwMDAxOTk0MTYgMDAwMDAgbiAKMDAwMDI4NDk1NSAwMDAwMCBuIAowMDAwMTk5NTYwIDAwMDAwIG4gCjAwMDAxOTk3MDIgMDAwMDAgbiAKMDAwMDI4NTAzNSAwMDAwMCBuIAowMDAwMTk5ODQ2IDAwMDAwIG4gCjAwMDAxOTk5ODggMDAwMDAgbiAKMDAwMDI4NTExNiAwMDAwMCBuIAowMDAwMjAwMTMyIDAwMDAwIG4gCjAwMDAyMDAyNzQgMDAwMDAgbiAKMDAwMDI4NTE5OCAwMDAwMCBuIAowMDAwMjAwNDE4IDAwMDAwIG4gCjAwMDAyMDA1NjAgMDAwMDAgbiAKMDAwMDI4NTI4MCAwMDAwMCBuIAowMDAwMjAwNzA0IDAwMDAwIG4gCjAwMDAyMDA4NDYgMDAwMDAgbiAKMDAwMDI4NTM2MiAwMDAwMCBuIAowMDAwMjAwOTkwIDAwMDAwIG4gCjAwMDAyMDExMzIgMDAwMDAgbiAKMDAwMDI4NTQ0NCAwMDAwMCBuIAowMDAwMjAxMjc2IDAwMDAwIG4gCjAwMDAyMDE0MTYgMDAwMDAgbiAKMDAwMDI4NTUyNiAwMDAwMCBuIAowMDAwMjAxNTYwIDAwMDAwIG4gCjAwMDAyMDE3MDIgMDAwMDAgbiAKMDAwMDI4NTYxMCAwMDAwMCBuIAowMDAwMjAxODQ2IDAwMDAwIG4gCjAwMDAyMDE5ODYgMDAwMDAgbiAKMDAwMDI4NTY5NCAwMDAwMCBuIAowMDAwMjAyMTI4IDAwMDAwIG4gCjAwMDAyMDIyNzEgMDAwMDAgbiAKMDAwMDI4NTc3NCAwMDAwMCBuIAowMDAwMjAyNDE2IDAwMDAwIG4gCjAwMDAyMDI1NTggMDAwMDAgbiAKMDAwMDI4NTg1NiAwMDAwMCBuIAowMDAwMjAyNzAyIDAwMDAwIG4gCjAwMDAyMDI4NDMgMDAwMDAgbiAKMDAwMDI4NTkzOCAwMDAwMCBuIAowMDAwMjAyOTg2IDAwMDAwIG4gCjAwMDAyMDMxMjcgMDAwMDAgbiAKMDAwMDIwMzI3MCAwMDAwMCBuIAowMDAwMjIxMTgxIDAwMDAwIG4gCjAwMDAyMjIyNzAgMDAwMDAgbiAKMDAwMDIyMTIwNCAwMDAwMCBuIAowMDAwMjIyNDQwIDAwMDAwIG4gCjAwMDAyMjM1NjcgMDAwMDAgbiAKMDAwMDIyMjQ2MSAwMDAwMCBuIAowMDAwMjIzNzM3IDAwMDAwIG4gCjAwMDAyMjUyNTkgMDAwMDAgbiAKMDAwMDIyMzc1OSAwMDAwMCBuIAowMDAwMjI1NDI5IDAwMDAwIG4gCjAwMDAyMjYwOTMgMDAwMDAgbiAKMDAwMDIyNTQ1MSAwMDAwMCBuIAowMDAwMjI2MjYzIDAwMDAwIG4gCjAwMDAyMjcyMTggMDAwMDAgbiAKMDAwMDIyNjI4NCAwMDAwMCBuIAowMDAwMjI3MTg5IDAwMDAwIG4gCjAwMDAyMjY0ODggMDAwMDAgbiAKMDAwMDIyNzQwNiAwMDAwMCBuIAowMDAwMjg2MDIwIDAwMDAwIG4gCjAwMDAyMjc0MjcgMDAwMDAgbiAKMDAwMDI0MzE1MCAwMDAwMCBuIAowMDAwMjI3NTY3IDAwMDAwIG4gCjAwMDAyODYxMDIgMDAwMDAgbiAKMDAwMDIyNzcwOSAwMDAwMCBuIAowMDAwMjI3ODQ5IDAwMDAwIG4gCjAwMDAyODYxODQgMDAwMDAgbiAKMDAwMDIyNzk5MSAwMDAwMCBuIAowMDAwMjI4MTMxIDAwMDAwIG4gCjAwMDAyODYyNjYgMDAwMDAgbiAKMDAwMDIyODI3MyAwMDAwMCBuIAowMDAwMjI4NDEzIDAwMDAwIG4gCjAwMDAyODYzNTAgMDAwMDAgbiAKMDAwMDIyODU1NSAwMDAwMCBuIAowMDAwMjI4Njk3IDAwMDAwIG4gCjAwMDAyODY0MzQgMDAwMDAgbiAKMDAwMDIyODgzOSAwMDAwMCBuIAowMDAwMjI4OTgxIDAwMDAwIG4gCjAwMDAyODY1MTkgMDAwMDAgbiAKMDAwMDIyOTEyMyAwMDAwMCBuIAowMDAwMjI5MjYzIDAwMDAwIG4gCjAwMDAyODY1OTkgMDAwMDAgbiAKMDAwMDIyOTQwNSAwMDAwMCBuIAowMDAwMjI5NTQ1IDAwMDAwIG4gCjAwMDAyODY2NzkgMDAwMDAgbiAKMDAwMDIyOTY4NyAwMDAwMCBuIAowMDAwMjI5ODI3IDAwMDAwIG4gCjAwMDAyODY3NTkgMDAwMDAgbiAKMDAwMDIyOTk2OSAwMDAwMCBuIAowMDAwMjMwMTA5IDAwMDAwIG4gCjAwMDAyODY4MzkgMDAwMDAgbiAKMDAwMDIzMDI1MSAwMDAwMCBuIAowMDAwMjMwMzkxIDAwMDAwIG4gCjAwMDAyODY5MTkgMDAwMDAgbiAKMDAwMDIzMDUzMyAwMDAwMCBuIAowMDAwMjMwNjczIDAwMDAwIG4gCjAwMDAyODY5OTkgMDAwMDAgbiAKMDAwMDIzMDgxNSAwMDAwMCBuIAowMDAwMjMwOTU1IDAwMDAwIG4gCjAwMDAyODcwNzkgMDAwMDAgbiAKMDAwMDIzMTA5NyAwMDAwMCBuIAowMDAwMjMxMjM3IDAwMDAwIG4gCjAwMDAyODcxNTkgMDAwMDAgbiAKMDAwMDIzMTM3OSAwMDAwMCBuIAowMDAwMjMxNTE4IDAwMDAwIG4gCjAwMDAyODcyNDMgMDAwMDAgbiAKMDAwMDIzMTY2MCAwMDAwMCBuIAowMDAwMjMxNzk5IDAwMDAwIG4gCjAwMDAyODczMjMgMDAwMDAgbiAKMDAwMDIzMTk0MiAwMDAwMCBuIAowMDAwMjMyMDgxIDAwMDAwIG4gCjAwMDAyODc0MDMgMDAwMDAgbiAKMDAwMDIzMjIyMyAwMDAwMCBuIAowMDAwMjMyMzYyIDAwMDAwIG4gCjAwMDAyODc0ODMgMDAwMDAgbiAKMDAwMDIzMjUwNiAwMDAwMCBuIAowMDAwMjMyNjQ1IDAwMDAwIG4gCjAwMDAyODc1NjMgMDAwMDAgbiAKMDAwMDIzMjc4OSAwMDAwMCBuIAowMDAwMjMyOTI4IDAwMDAwIG4gCjAwMDAyODc2NDMgMDAwMDAgbiAKMDAwMDIzMzA3MCAwMDAwMCBuIAowMDAwMjMzMjEwIDAwMDAwIG4gCjAwMDAyMzMzNTIgMDAwMDAgbiAKMDAwMDI0MzY5NCAwMDAwMCBuIAowMDAwMjQzNzE2IDAwMDAwIG4gCjAwMDAyNDM5NzkgMDAwMDAgbiAKMDAwMDI0OTM2NiAwMDAwMCBuIAowMDAwMjQ5NDY0IDAwMDAwIG4gCjAwMDAyNDk2MjkgMDAwMDAgbiAKMDAwMDI0OTk5NSAwMDAwMCBuIAowMDAwMjUwNDUwIDAwMDAwIG4gCjAwMDAyNTA3MTEgMDAwMDAgbiAKMDAwMDI2Mjc0OSAwMDAwMCBuIAowMDAwMjYyODU0IDAwMDAwIG4gCjAwMDAyNjMwMTUgMDAwMDAgbiAKMDAwMDI2MzU2MiAwMDAwMCBuIAowMDAwMjY0MjExIDAwMDAwIG4gCjAwMDAyNjQ0NzcgMDAwMDAgbiAKMDAwMDI3NDg5MCAwMDAwMCBuIAowMDAwMjc0OTkwIDAwMDAwIG4gCjAwMDAyNzUxNTYgMDAwMDAgbiAKMDAwMDI3NTY1NyAwMDAwMCBuIAowMDAwMjc2MjQ5IDAwMDAwIG4gCjAwMDAyNzYyNzEgMDAwMDAgbiAKMDAwMDI3NjI5MSAwMDAwMCBuIAowMDAwMjc2MzEyIDAwMDAwIG4gCjAwMDAyNzYzMzUgMDAwMDAgbiAKMDAwMDI3NjM1NSAwMDAwMCBuIAowMDAwMjc2Mzc2IDAwMDAwIG4gCjAwMDAyNzYzOTkgMDAwMDAgbiAKMDAwMDI3NjQxOSAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDUwOQovUm9vdCAyIDAgUgovSW5mbyA0IDAgUgovSUQgWzw4M0ZEMTc3NTg5MDkwNzcyNzdDQjkxNEEyMkQ1NTE5Nj4gPDgzRkQxNzc1ODkwOTA3NzI3N0NCOTE0QTIyRDU1MTk2Pl0KPj4Kc3RhcnR4cmVmCjI4NzcyMwolJUVPRgo=