<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>150127</bug_id>
          
          <creation_ts>2015-10-14 10:52:10 -0700</creation_ts>
          <short_desc>Rename some JSC option names to be more uniform.</short_desc>
          <delta_ts>2015-10-14 11:58:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1133177</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-14 10:52:10 -0700</bug_when>
    <thetext>Will rename JSC_enableXXX options to JSC_useXXX, and JSC_showXXX options to JSC_dumpXXX.  Also will rename a few other miscellaneous to options, to abide by this scheme.

Also will rename some functions to match the option names where relevant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133185</commentid>
    <comment_count>1</comment_count>
      <attachid>263088</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-14 11:08:48 -0700</bug_when>
    <thetext>Created attachment 263088
the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133187</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-14 11:12:03 -0700</bug_when>
    <thetext>Attachment 263088 did not pass style-queue:


ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:328:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:331:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:350:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/assembler/LinkBuffer.h:353:  Wrong number of spaces before statement. (expected: 9)  [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/runtime/Options.h:136:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 5 in 56 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133206</commentid>
    <comment_count>3</comment_count>
      <attachid>263088</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-10-14 11:53:55 -0700</bug_when>
    <thetext>Comment on attachment 263088
the patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133208</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-10-14 11:58:23 -0700</bug_when>
    <thetext>Thanks.  Landed in r191058: &lt;http://trac.webkit.org/r191058&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263088</attachid>
            <date>2015-10-14 11:08:48 -0700</date>
            <delta_ts>2015-10-14 11:53:55 -0700</delta_ts>
            <desc>the patch.</desc>
            <filename>bug-150127.patch</filename>
            <type>text/plain</type>
            <size>77500</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0MyBA
QAorMjAxNS0xMC0xNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
UmVuYW1lIHNvbWUgSlNDIG9wdGlvbiBuYW1lcyB0byBiZSBtb3JlIHVuaWZvcm0uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAxMjcKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW5hbWluZyBKU0NfZW5h
YmxlWFhYIG9wdGlvbnMgdG8gSlNDX3VzZVhYWCwgYW5kIEpTQ19zaG93WFhYIG9wdGlvbnMgdG8g
SlNDX2R1bXBYWFguCisgICAgICAgIEFsc28gd2lsbCByZW5hbWluZyBhIGZldyBvdGhlciBtaXNj
ZWxsYW5lb3VzIHRvIG9wdGlvbnMsIHRvIGFiaWRlIGJ5IHRoaXMgc2NoZW1lLgorCisgICAgICAg
IEFsc28gcmVuYW1pbmcgc29tZSBmdW5jdGlvbnMgdG8gbWF0Y2ggdGhlIG9wdGlvbiBuYW1lcyB3
aGVyZSByZWxldmFudC4KKworICAgICAgICAqIEFQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGltaXRU
ZXN0LmNwcDoKKyAgICAgICAgKHRlc3RFeGVjdXRpb25UaW1lTGltaXQpOgorICAgICAgICAqIGFz
c2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmg6CisgICAgICAgIChKU0M6Om9wdGltaXpl
Rm9yQVJNdjdJRElWU3VwcG9ydGVkKToKKyAgICAgICAgKEpTQzo6b3B0aW1pemVGb3JBUk02NCk6
CisgICAgICAgIChKU0M6Om9wdGltaXplRm9yWDg2KToKKyAgICAgICAgKiBhc3NlbWJsZXIvTGlu
a0J1ZmZlci5jcHA6CisgICAgICAgIChKU0M6OnNob3VsZER1bXBEaXNhc3NlbWJseUZvcik6Cisg
ICAgICAgIChKU0M6OkxpbmtCdWZmZXI6OmZpbmFsaXplQ29kZVdpdGhvdXREaXNhc3NlbWJseSk6
CisgICAgICAgIChKU0M6OnNob3VsZFNob3dEaXNhc3NlbWJseUZvcik6IERlbGV0ZWQuCisgICAg
ICAgICogYXNzZW1ibGVyL0xpbmtCdWZmZXIuaDoKKyAgICAgICAgKiBieXRlY29kZS9Db2RlQmxv
Y2suY3BwOgorICAgICAgICAoSlNDOjpDb2RlQmxvY2s6OmpldHRpc29uKToKKyAgICAgICAgKiBi
eXRlY29kZS9Db2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwOgorICAgICAgICAoSlND
OjpDb2RlQmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQ6OmZpcmVJbnRlcm5hbCk6CisgICAgICAg
ICogYnl0ZWNvbXBpbGVyL0J5dGVjb2RlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6Qnl0
ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKToKKyAgICAgICAgKiBkZmcvREZHQWRh
cHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnQ6OmZpcmUpOgorICAg
ICAgICAqIGRmZy9ERkdBZGFwdGl2ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwOgorICAgICAgICAo
SlNDOjpERkc6OkFkYXB0aXZlU3RydWN0dXJlV2F0Y2hwb2ludDo6ZmlyZUludGVybmFsKToKKyAg
ICAgICAgKiBkZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwOgorICAgICAgICAoSlNDOjpERkc6OkJ5
dGVDb2RlUGFyc2VyOjpoYW5kbGVJbmxpbmluZyk6CisgICAgICAgIChKU0M6OkRGRzo6Qnl0ZUNv
ZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQpOgorICAgICAgICAoSlNDOjpERkc6OkJ5dGVDb2RlUGFy
c2VyOjpoYW5kbGVQdXRCeUlkKToKKyAgICAgICAgKEpTQzo6REZHOjpCeXRlQ29kZVBhcnNlcjo6
cGFyc2UpOgorICAgICAgICAqIGRmZy9ERkdDb21tb24uaDoKKyAgICAgICAgKEpTQzo6REZHOjps
ZWFzdFVwcGVyQm91bmQpOgorICAgICAgICAoSlNDOjpERkc6OnNob3VsZER1bXBEaXNhc3NlbWJs
eSk6CisgICAgICAgIChKU0M6OkRGRzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KTogRGVsZXRlZC4K
KyAgICAgICAgKiBkZmcvREZHRHJpdmVyLmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpjb21waWxl
SW1wbCk6CisgICAgICAgICogZGZnL0RGR0pJVENvbXBpbGVyLmNwcDoKKyAgICAgICAgKEpTQzo6
REZHOjpKSVRDb21waWxlcjo6SklUQ29tcGlsZXIpOgorICAgICAgICAoSlNDOjpERkc6OkpJVENv
bXBpbGVyOjpkaXNhc3NlbWJsZSk6CisgICAgICAgICogZGZnL0RGR0p1bXBSZXBsYWNlbWVudC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6SnVtcFJlcGxhY2VtZW50OjpmaXJlKToKKyAgICAgICAg
KiBkZmcvREZHT1NSRW50cnkuY3BwOgorICAgICAgICAoSlNDOjpERkc6OnByZXBhcmVPU1JFbnRy
eSk6CisgICAgICAgICogZGZnL0RGR09TUkV4aXRDb21waWxlci5jcHA6CisgICAgICAgICogZGZn
L0RGR09TUkV4aXRGdXp6Lmg6CisgICAgICAgIChKU0M6OkRGRzo6ZG9PU1JFeGl0RnV6emluZyk6
CisgICAgICAgICogZGZnL0RGR1BsYW4uY3BwOgorICAgICAgICAoSlNDOjpERkc6OlBsYW46OmNv
bXBpbGVJblRocmVhZEltcGwpOgorICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHA6
CisgICAgICAgIChKU0M6OkRGRzo6U3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFNxcnQpOgor
ICAgICAgICAqIGRmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcDoKKyAgICAgICAg
KEpTQzo6REZHOjpUaWVyVXBDaGVja0luamVjdGlvblBoYXNlOjpydW4pOgorICAgICAgICAqIGZ0
bC9GVExDb21waWxlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjptbUFsbG9jYXRlRGF0YVNlY3Rp
b24pOgorICAgICAgICAqIGZ0bC9GVExKSVRDb2RlLmNwcDoKKyAgICAgICAgKEpTQzo6RlRMOjpK
SVRDb2RlOjp+SklUQ29kZSk6CisgICAgICAgICogZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcDoK
KyAgICAgICAgKEpTQzo6RlRMOjpERkc6Okxvd2VyREZHVG9MTFZNOjpjYWxsQ2hlY2spOgorICAg
ICAgICAqIGZ0bC9GVExPU1JFeGl0Q29tcGlsZXIuY3BwOgorICAgICAgICAoSlNDOjpGVEw6OmNv
bXBpbGVTdHViKToKKyAgICAgICAgKEpTQzo6RlRMOjpjb21waWxlRlRMT1NSRXhpdCk6CisgICAg
ICAgICogZnRsL0ZUTFN0YXRlLmg6CisgICAgICAgIChKU0M6OkZUTDo6dmVyYm9zZUNvbXBpbGF0
aW9uRW5hYmxlZCk6CisgICAgICAgIChKU0M6OkZUTDo6c2hvdWxkRHVtcERpc2Fzc2VtYmx5KToK
KyAgICAgICAgKEpTQzo6RlRMOjpzaG91bGRTaG93RGlzYXNzZW1ibHkpOiBEZWxldGVkLgorICAg
ICAgICAqIGhlYXAvSGVhcC5jcHA6CisgICAgICAgIChKU0M6OkhlYXA6OmFkZFRvUmVtZW1iZXJl
ZFNldCk6CisgICAgICAgIChKU0M6OkhlYXA6OmRpZEZpbmlzaENvbGxlY3Rpb24pOgorICAgICAg
ICAoSlNDOjpIZWFwOjpzaG91bGREb0Z1bGxDb2xsZWN0aW9uKToKKyAgICAgICAgKiBoZWFwL0hl
YXAuaDoKKyAgICAgICAgKEpTQzo6SGVhcDo6aXNEZWZlcnJlZCk6CisgICAgICAgIChKU0M6Okhl
YXA6OnN0cnVjdHVyZUlEVGFibGUpOgorICAgICAgICAqIGhlYXAvSGVhcFN0YXRpc3RpY3MuY3Bw
OgorICAgICAgICAoSlNDOjpTdG9yYWdlU3RhdGlzdGljczo6c3RvcmFnZUNhcGFjaXR5KToKKyAg
ICAgICAgKEpTQzo6SGVhcFN0YXRpc3RpY3M6OmR1bXBPYmplY3RTdGF0aXN0aWNzKToKKyAgICAg
ICAgKEpTQzo6SGVhcFN0YXRpc3RpY3M6OnNob3dPYmplY3RTdGF0aXN0aWNzKTogRGVsZXRlZC4K
KyAgICAgICAgKiBoZWFwL0hlYXBTdGF0aXN0aWNzLmg6CisgICAgICAgICogaW50ZXJwcmV0ZXIv
U3RhY2tWaXNpdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6U3RhY2tWaXNpdG9yOjpGcmFtZTo6Y3Jl
YXRlQXJndW1lbnRzKToKKyAgICAgICAgKiBqaXQvQXNzZW1ibHlIZWxwZXJzLmNwcDoKKyAgICAg
ICAgKEpTQzo6QXNzZW1ibHlIZWxwZXJzOjpjYWxsRXhjZXB0aW9uRnV6eik6CisgICAgICAgICog
aml0L0V4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ei5jcHA6CisgICAgICAgIChKU0M6OmRvRXhlY3V0
YWJsZUFsbG9jYXRpb25GdXp6aW5nKToKKyAgICAgICAgKiBqaXQvRXhlY3V0YWJsZUFsbG9jYXRp
b25GdXp6Lmg6CisgICAgICAgIChKU0M6OmRvRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6aW5nSWZF
bmFibGVkKToKKyAgICAgICAgKiBqaXQvSklULmNwcDoKKyAgICAgICAgKEpTQzo6SklUOjpwcml2
YXRlQ29tcGlsZSk6CisgICAgICAgICogaml0L0pJVENvZGUuY3BwOgorICAgICAgICAoSlNDOjpK
SVRDb2RlV2l0aENvZGVSZWY6On5KSVRDb2RlV2l0aENvZGVSZWYpOgorICAgICAgICAqIGppdC9Q
b2x5bW9ycGhpY0NhbGxTdHViUm91dGluZS5jcHA6CisgICAgICAgIChKU0M6OlBvbHltb3JwaGlj
Q2FsbE5vZGU6OnVubGluayk6CisgICAgICAgIChKU0M6OlBvbHltb3JwaGljQ2FsbE5vZGU6OmNs
ZWFyQ2FsbExpbmtJbmZvKToKKyAgICAgICAgKEpTQzo6UG9seW1vcnBoaWNDYWxsU3R1YlJvdXRp
bmU6OlBvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lKToKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5j
cHA6CisgICAgICAgIChKU0M6OmxpbmtGb3IpOgorICAgICAgICAoSlNDOjp1bmxpbmtGb3IpOgor
ICAgICAgICAoSlNDOjpsaW5rVmlydHVhbEZvcik6CisgICAgICAgICoganNjLmNwcDoKKyAgICAg
ICAgKGZ1bmN0aW9uRW5hYmxlRXhjZXB0aW9uRnV6eik6CisgICAgICAgIChqc2NtYWluKToKKyAg
ICAgICAgKiBsbHZtL0luaXRpYWxpemVMTFZNLmNwcDoKKyAgICAgICAgKEpTQzo6aW5pdGlhbGl6
ZUxMVk1JbXBsKToKKyAgICAgICAgKiBydW50aW1lL0V4Y2VwdGlvbkZ1enouY3BwOgorICAgICAg
ICAoSlNDOjpkb0V4Y2VwdGlvbkZ1enppbmcpOgorICAgICAgICAqIHJ1bnRpbWUvRXhjZXB0aW9u
RnV6ei5oOgorICAgICAgICAoSlNDOjpkb0V4Y2VwdGlvbkZ1enppbmdJZkVuYWJsZWQpOgorICAg
ICAgICAqIHJ1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpKU0dsb2Jh
bE9iamVjdDo6aW5pdCk6CisgICAgICAgICogcnVudGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAg
KEpTQzo6cmVjb21wdXRlRGVwZW5kZW50T3B0aW9ucyk6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6
OmluaXRpYWxpemUpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjpkdW1wT3B0aW9uc0lmTmVlZGVk
KToKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6c2V0T3B0aW9uKToKKyAgICAgICAgKEpTQzo6T3B0
aW9uczo6ZHVtcEFsbE9wdGlvbnMpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjpkdW1wQWxsT3B0
aW9uc0luQUxpbmUpOgorICAgICAgICAoSlNDOjpPcHRpb25zOjpkdW1wT3B0aW9uKToKKyAgICAg
ICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAgICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAg
ICAgKEpTQzo6Vk06OlZNKToKKyAgICAgICAgKiBydW50aW1lL1ZNLmg6CisgICAgICAgIChKU0M6
OlZNOjpleGNlcHRpb25GdXp6aW5nQnVmZmVyKToKKyAgICAgICAgKiBydW50aW1lL1dyaXRlQmFy
cmllcklubGluZXMuaDoKKyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTxUPjo6c2V0KToK
KyAgICAgICAgKEpTQzo6V3JpdGVCYXJyaWVyQmFzZTxVbmtub3duPjo6c2V0KToKKyAgICAgICAg
KiB0ZXN0cy9leGVjdXRhYmxlQWxsb2NhdGlvbkZ1enoueWFtbDoKKyAgICAgICAgKiB0ZXN0cy9z
dHJlc3MvYXJyb3dmdW5jdGlvbi10eXBlb2YuanM6CisgICAgICAgICogdGVzdHMvc3RyZXNzL2Rp
c2FibGUtZnVuY3Rpb24tZG90LWFyZ3VtZW50cy5qczoKKyAgICAgICAgKGZvbyk6CisgICAgICAg
ICogdGVzdHMvc3RyZXNzL21hdGgtc3FydC1iYXNpY3MtZGlzYWJsZS1hcmNoaXRlY3R1cmUtc3Bl
Y2lmaWMtb3B0aW1pemF0aW9ucy5qczoKKyAgICAgICAgKHNxcnRPbkludGVnZXIpOgorICAgICAg
ICAqIHRlc3RzL3N0cmVzcy9yZWdyZXNzLTE0ODU2NC5qczoKKwogMjAxNS0xMC0xMyAgU2FhbSBi
YXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBXZSB3ZXJlIGNyZWF0aW5nIGEg
R0NBd2FyZUpJVFN0dWJSb3V0aW5lV2l0aEV4Y2VwdGlvbkhhbmRsZXIgd2hlbiB3ZSBkaWRuJ3Qg
YWN0dWFsbHkgaGF2ZSBhbiBleGNlcHRpb24gaGFuZGxlciBpbiB0aGUgQ29kZUJsb2NrJ3MgZXhj
ZXB0aW9uIGhhbmRsZXIgdGFibGUKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qc2MuY3BwCShyZXZpc2lvbiAx
OTEwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTQ4OSw3ICsxNDg5LDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBmdW5jdGlv
bkhhcwogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGZ1bmN0aW9uRW5hYmxlRXhjZXB0
aW9uRnV6eihFeGVjU3RhdGUqKQogewotICAgIE9wdGlvbnM6OmVuYWJsZUV4Y2VwdGlvbkZ1enoo
KSA9IHRydWU7CisgICAgT3B0aW9uczo6dXNlRXhjZXB0aW9uRnV6eigpID0gdHJ1ZTsKICAgICBy
ZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwogfQogCkBAIC0xOTYyLDEzICsx
OTYyLDEzIEBAIGludCBqc2NtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikKICAgICAgICAgfQog
ICAgICAgICAKICNpZiBFTkFCTEUoSklUKQotICAgICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlRXhj
ZXB0aW9uRnV6eigpKQorICAgICAgICBpZiAoT3B0aW9uczo6dXNlRXhjZXB0aW9uRnV6eigpKQog
ICAgICAgICAgICAgcHJpbnRmKCJKU0MgRVhDRVBUSU9OIEZVWlo6IGVuY291bnRlcmVkICV1IGNo
ZWNrcy5cbiIsIG51bWJlck9mRXhjZXB0aW9uRnV6ekNoZWNrcygpKTsKICAgICAgICAgYm9vbCBm
aXJlQXRFbmFibGVkID0KICAgICAgICAgICAgIE9wdGlvbnM6OmZpcmVFeGVjdXRhYmxlQWxsb2Nh
dGlvbkZ1enpBdCgpIHx8IE9wdGlvbnM6OmZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpBdE9y
QWZ0ZXIoKTsKLSAgICAgICAgaWYgKE9wdGlvbnM6OmVuYWJsZUV4ZWN1dGFibGVBbGxvY2F0aW9u
RnV6eigpICYmICghZmlyZUF0RW5hYmxlZCB8fCBPcHRpb25zOjp2ZXJib3NlRXhlY3V0YWJsZUFs
bG9jYXRpb25GdXp6KCkpKQorICAgICAgICBpZiAoT3B0aW9uczo6dXNlRXhlY3V0YWJsZUFsbG9j
YXRpb25GdXp6KCkgJiYgKCFmaXJlQXRFbmFibGVkIHx8IE9wdGlvbnM6OnZlcmJvc2VFeGVjdXRh
YmxlQWxsb2NhdGlvbkZ1enooKSkpCiAgICAgICAgICAgICBwcmludGYoIkpTQyBFWEVDVVRBQkxF
IEFMTE9DQVRJT04gRlVaWjogZW5jb3VudGVyZWQgJXUgY2hlY2tzLlxuIiwgbnVtYmVyT2ZFeGVj
dXRhYmxlQWxsb2NhdGlvbkZ1enpDaGVja3MoKSk7Ci0gICAgICAgIGlmIChPcHRpb25zOjplbmFi
bGVPU1JFeGl0RnV6eigpKSB7CisgICAgICAgIGlmIChPcHRpb25zOjp1c2VPU1JFeGl0RnV6eigp
KSB7CiAgICAgICAgICAgICBwcmludGYoIkpTQyBPU1IgRVhJVCBGVVpaOiBlbmNvdW50ZXJlZCAl
dSBzdGF0aWMgY2hlY2tzLlxuIiwgbnVtYmVyT2ZTdGF0aWNPU1JFeGl0RnV6ekNoZWNrcygpKTsK
ICAgICAgICAgICAgIHByaW50ZigiSlNDIE9TUiBFWElUIEZVWlo6IGVuY291bnRlcmVkICV1IGR5
bmFtaWMgY2hlY2tzLlxuIiwgbnVtYmVyT2ZPU1JFeGl0RnV6ekNoZWNrcygpKTsKICAgICAgICAg
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS90ZXN0cy9FeGVjdXRpb25UaW1lTGlt
aXRUZXN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL3Rlc3Rz
L0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCShyZXZpc2lvbiAxOTEwMjUpCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL3Rlc3RzL0V4ZWN1dGlvblRpbWVMaW1pdFRlc3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDIsMTAgKzEwMiwxMCBAQCBzdGF0aWMgdm9pZCB0ZXN0UmVzZXRBZnRl
clRpbWVvdXQoYm9vbCYgCiBpbnQgdGVzdEV4ZWN1dGlvblRpbWVMaW1pdCgpCiB7CiAgICAgc3Rh
dGljIGNvbnN0IFRpZXJPcHRpb25zIHRpZXJPcHRpb25zTGlzdFtdID0gewotICAgICAgICB7ICJM
TElOVCIsICAgIDAsICAgIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSAtLXVzZUxMSW50PXRy
dWUgLS11c2VKSVQ9ZmFsc2UiIH0sCi0gICAgICAgIHsgIkJhc2VsaW5lIiwgMCwgICAiLS1lbmFi
bGVDb25jdXJyZW50SklUPWZhbHNlIC0tdXNlTExJbnQ9dHJ1ZSAtLXVzZUpJVD10cnVlIC0tdXNl
REZHSklUPWZhbHNlIiB9LAotICAgICAgICB7ICJERkciLCAgICAgIDAsICAgIi0tZW5hYmxlQ29u
Y3VycmVudEpJVD1mYWxzZSAtLXVzZUxMSW50PXRydWUgLS11c2VKSVQ9dHJ1ZSAtLXVzZURGR0pJ
VD10cnVlIC0tdXNlRlRMSklUPWZhbHNlIiB9LAotICAgICAgICB7ICJGVEwiLCAgICAgIDIwMCwg
Ii0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSAtLXVzZUxMSW50PXRydWUgLS11c2VKSVQ9dHJ1
ZSAtLXVzZURGR0pJVD10cnVlIC0tdXNlRlRMSklUPXRydWUiIH0sCisgICAgICAgIHsgIkxMSU5U
IiwgICAgMCwgICAiLS11c2VDb25jdXJyZW50SklUPWZhbHNlIC0tdXNlTExJbnQ9dHJ1ZSAtLXVz
ZUpJVD1mYWxzZSIgfSwKKyAgICAgICAgeyAiQmFzZWxpbmUiLCAwLCAgICItLXVzZUNvbmN1cnJl
bnRKSVQ9ZmFsc2UgLS11c2VMTEludD10cnVlIC0tdXNlSklUPXRydWUgLS11c2VERkdKSVQ9ZmFs
c2UiIH0sCisgICAgICAgIHsgIkRGRyIsICAgICAgMCwgICAiLS11c2VDb25jdXJyZW50SklUPWZh
bHNlIC0tdXNlTExJbnQ9dHJ1ZSAtLXVzZUpJVD10cnVlIC0tdXNlREZHSklUPXRydWUgLS11c2VG
VExKSVQ9ZmFsc2UiIH0sCisgICAgICAgIHsgIkZUTCIsICAgICAgMjAwLCAiLS11c2VDb25jdXJy
ZW50SklUPWZhbHNlIC0tdXNlTExJbnQ9dHJ1ZSAtLXVzZUpJVD10cnVlIC0tdXNlREZHSklUPXRy
dWUgLS11c2VGVExKSVQ9dHJ1ZSIgfSwKICAgICB9OwogICAgIAogICAgIGJvb2wgZmFpbGVkID0g
ZmFsc2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0Fic3RyYWN0TWFj
cm9Bc3NlbWJsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1i
bGVyL0Fic3RyYWN0TWFjcm9Bc3NlbWJsZXIuaAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9BYnN0cmFjdE1hY3JvQXNzZW1ibGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTY5LDE3ICs2OSwxNyBAQCBpbmxpbmUgYm9vbCBpc1g4NigpCiAKIGlubGlu
ZSBib29sIG9wdGltaXplRm9yQVJNdjdJRElWU3VwcG9ydGVkKCkKIHsKLSAgICByZXR1cm4gaXNB
Uk12N0lESVZTdXBwb3J0ZWQoKSAmJiBPcHRpb25zOjplbmFibGVBcmNoaXRlY3R1cmVTcGVjaWZp
Y09wdGltaXphdGlvbnMoKTsKKyAgICByZXR1cm4gaXNBUk12N0lESVZTdXBwb3J0ZWQoKSAmJiBP
cHRpb25zOjp1c2VBcmNoaXRlY3R1cmVTcGVjaWZpY09wdGltaXphdGlvbnMoKTsKIH0KIAogaW5s
aW5lIGJvb2wgb3B0aW1pemVGb3JBUk02NCgpCiB7Ci0gICAgcmV0dXJuIGlzQVJNNjQoKSAmJiBP
cHRpb25zOjplbmFibGVBcmNoaXRlY3R1cmVTcGVjaWZpY09wdGltaXphdGlvbnMoKTsKKyAgICBy
ZXR1cm4gaXNBUk02NCgpICYmIE9wdGlvbnM6OnVzZUFyY2hpdGVjdHVyZVNwZWNpZmljT3B0aW1p
emF0aW9ucygpOwogfQogCiBpbmxpbmUgYm9vbCBvcHRpbWl6ZUZvclg4NigpCiB7Ci0gICAgcmV0
dXJuIGlzWDg2KCkgJiYgT3B0aW9uczo6ZW5hYmxlQXJjaGl0ZWN0dXJlU3BlY2lmaWNPcHRpbWl6
YXRpb25zKCk7CisgICAgcmV0dXJuIGlzWDg2KCkgJiYgT3B0aW9uczo6dXNlQXJjaGl0ZWN0dXJl
U3BlY2lmaWNPcHRpbWl6YXRpb25zKCk7CiB9CiAKIGNsYXNzIExpbmtCdWZmZXI7CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYXNzZW1ibGVyL0xpbmtCdWZmZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZlci5jcHAJKHJldmlz
aW9uIDE5MTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3NlbWJsZXIvTGlua0J1ZmZl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM3LDExICszNywxMSBAQAogCiBuYW1lc3BhY2UgSlND
IHsKIAotYm9vbCBzaG91bGRTaG93RGlzYXNzZW1ibHlGb3IoQ29kZUJsb2NrKiBjb2RlQmxvY2sp
Citib29sIHNob3VsZER1bXBEaXNhc3NlbWJseUZvcihDb2RlQmxvY2sqIGNvZGVCbG9jaykKIHsK
LSAgICBpZiAoSklUQ29kZTo6aXNPcHRpbWl6aW5nSklUKGNvZGVCbG9jay0+aml0VHlwZSgpKSAm
JiBPcHRpb25zOjpzaG93REZHRGlzYXNzZW1ibHkoKSkKKyAgICBpZiAoSklUQ29kZTo6aXNPcHRp
bWl6aW5nSklUKGNvZGVCbG9jay0+aml0VHlwZSgpKSAmJiBPcHRpb25zOjpkdW1wREZHRGlzYXNz
ZW1ibHkoKSkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIE9wdGlvbnM6OnNob3dE
aXNhc3NlbWJseSgpOworICAgIHJldHVybiBPcHRpb25zOjpkdW1wRGlzYXNzZW1ibHkoKTsKIH0K
IAogTGlua0J1ZmZlcjo6Q29kZVJlZiBMaW5rQnVmZmVyOjpmaW5hbGl6ZUNvZGVXaXRob3V0RGlz
YXNzZW1ibHkoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5rQnVm
ZmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Fzc2VtYmxlci9MaW5r
QnVmZmVyLmgJKHJldmlzaW9uIDE5MTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9hc3Nl
bWJsZXIvTGlua0J1ZmZlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMjUsMTAgKzMyNSwxMCBAQCBw
cml2YXRlOgogICAgICA/ICgobGlua0J1ZmZlclJlZmVyZW5jZSkuZmluYWxpemVDb2RlV2l0aERp
c2Fzc2VtYmx5IGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykgXAogICAgICA6IChsaW5rQnVm
ZmVyUmVmZXJlbmNlKS5maW5hbGl6ZUNvZGVXaXRob3V0RGlzYXNzZW1ibHkoKSkKIAotYm9vbCBz
aG91bGRTaG93RGlzYXNzZW1ibHlGb3IoQ29kZUJsb2NrKik7Citib29sIHNob3VsZER1bXBEaXNh
c3NlbWJseUZvcihDb2RlQmxvY2sqKTsKIAogI2RlZmluZSBGSU5BTElaRV9DT0RFX0ZPUihjb2Rl
QmxvY2ssIGxpbmtCdWZmZXJSZWZlcmVuY2UsIGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykg
IFwKLSAgICBGSU5BTElaRV9DT0RFX0lGKHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihjb2RlQmxv
Y2spIHx8IE9wdGlvbnM6OmFzeW5jRGlzYXNzZW1ibHkoKSwgbGlua0J1ZmZlclJlZmVyZW5jZSwg
ZGF0YUxvZ0ZBcmd1bWVudHNGb3JIZWFkaW5nKQorICAgIEZJTkFMSVpFX0NPREVfSUYoc2hvdWxk
RHVtcERpc2Fzc2VtYmx5Rm9yKGNvZGVCbG9jaykgfHwgT3B0aW9uczo6YXN5bmNEaXNhc3NlbWJs
eSgpLCBsaW5rQnVmZmVyUmVmZXJlbmNlLCBkYXRhTG9nRkFyZ3VtZW50c0ZvckhlYWRpbmcpCiAK
IC8vIFVzZSB0aGlzIHRvIGZpbmFsaXplIGNvZGUsIGxpa2Ugc286CiAvLwpAQCAtMzQzLDE0ICsz
NDMsMTQgQEAgYm9vbCBzaG91bGRTaG93RGlzYXNzZW1ibHlGb3IoQ29kZUJsb2NrKgogLy8KIC8v
IC4uLiBhbmQgc28gb24uCiAvLwotLy8gTm90ZSB0aGF0IHRoZSBkYXRhTG9nRkFyZ3VtZW50c0Zv
ckhlYWRpbmcgYXJlIG9ubHkgZXZhbHVhdGVkIHdoZW4gc2hvd0Rpc2Fzc2VtYmx5CisvLyBOb3Rl
IHRoYXQgdGhlIGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZyBhcmUgb25seSBldmFsdWF0ZWQg
d2hlbiBkdW1wRGlzYXNzZW1ibHkKIC8vIGlzIHRydWUsIHNvIHlvdSBjYW4gaGlkZSBleHBlbnNp
dmUgZGlzYXNzZW1ibHktb25seSBjb21wdXRhdGlvbnMgaW5zaWRlIHRoZXJlLgogCiAjZGVmaW5l
IEZJTkFMSVpFX0NPREUobGlua0J1ZmZlclJlZmVyZW5jZSwgZGF0YUxvZ0ZBcmd1bWVudHNGb3JI
ZWFkaW5nKSAgXAotICAgIEZJTkFMSVpFX0NPREVfSUYoSlNDOjpPcHRpb25zOjphc3luY0Rpc2Fz
c2VtYmx5KCkgfHwgSlNDOjpPcHRpb25zOjpzaG93RGlzYXNzZW1ibHkoKSwgbGlua0J1ZmZlclJl
ZmVyZW5jZSwgZGF0YUxvZ0ZBcmd1bWVudHNGb3JIZWFkaW5nKQorICAgIEZJTkFMSVpFX0NPREVf
SUYoSlNDOjpPcHRpb25zOjphc3luY0Rpc2Fzc2VtYmx5KCkgfHwgSlNDOjpPcHRpb25zOjpkdW1w
RGlzYXNzZW1ibHkoKSwgbGlua0J1ZmZlclJlZmVyZW5jZSwgZGF0YUxvZ0ZBcmd1bWVudHNGb3JI
ZWFkaW5nKQogCiAjZGVmaW5lIEZJTkFMSVpFX0RGR19DT0RFKGxpbmtCdWZmZXJSZWZlcmVuY2Us
IGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykgIFwKLSAgICBGSU5BTElaRV9DT0RFX0lGKEpT
Qzo6T3B0aW9uczo6YXN5bmNEaXNhc3NlbWJseSgpIHx8IEpTQzo6T3B0aW9uczo6c2hvd0Rpc2Fz
c2VtYmx5KCkgfHwgT3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCksIGxpbmtCdWZmZXJSZWZl
cmVuY2UsIGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykKKyAgICBGSU5BTElaRV9DT0RFX0lG
KEpTQzo6T3B0aW9uczo6YXN5bmNEaXNhc3NlbWJseSgpIHx8IEpTQzo6T3B0aW9uczo6ZHVtcERp
c2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6ZHVtcERGR0Rpc2Fzc2VtYmx5KCksIGxpbmtCdWZmZXJS
ZWZlcmVuY2UsIGRhdGFMb2dGQXJndW1lbnRzRm9ySGVhZGluZykKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2suY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2RlQmxvY2su
Y3BwCShyZXZpc2lvbiAxOTEwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
Q29kZUJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzE0Miw3ICszMTQyLDcgQEAgdm9pZCBD
b2RlQmxvY2s6OmpldHRpc29uKFByb2ZpbGVyOjpKZXR0aQogICAgIFJFTEVBU0VfQVNTRVJUKHJl
YXNvbiAhPSBQcm9maWxlcjo6Tm90SmV0dGlzb25lZCk7CiAgICAgCiAjaWYgRU5BQkxFKERGR19K
SVQpCi0gICAgaWYgKERGRzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkpIHsKKyAgICBpZiAoREZH
OjpzaG91bGREdW1wRGlzYXNzZW1ibHkoKSkgewogICAgICAgICBkYXRhTG9nKCJKZXR0aXNvbmlu
ZyAiLCAqdGhpcyk7CiAgICAgICAgIGlmIChtb2RlID09IENvdW50UmVvcHRpbWl6YXRpb24pCiAg
ICAgICAgICAgICBkYXRhTG9nKCIgYW5kIGNvdW50aW5nIHJlb3B0aW1pemF0aW9uIik7CkBAIC0z
MTUzLDcgKzMxNTMsNyBAQCB2b2lkIENvZGVCbG9jazo6amV0dGlzb24oUHJvZmlsZXI6OkpldHRp
CiAgICAgfQogICAgIAogICAgIGlmIChyZWFzb24gPT0gUHJvZmlsZXI6OkpldHRpc29uRHVlVG9X
ZWFrUmVmZXJlbmNlKSB7Ci0gICAgICAgIGlmIChERkc6OnNob3VsZFNob3dEaXNhc3NlbWJseSgp
KSB7CisgICAgICAgIGlmIChERkc6OnNob3VsZER1bXBEaXNhc3NlbWJseSgpKSB7CiAgICAgICAg
ICAgICBkYXRhTG9nKCp0aGlzLCAiIHdpbGwgYmUgamV0dGlzb25lZCBiZWNhdXNlIG9mIHRoZSBm
b2xsb3dpbmcgZGVhZCByZWZlcmVuY2VzOlxuIik7CiAgICAgICAgICAgICBERkc6OkNvbW1vbkRh
dGEqIGRmZ0NvbW1vbiA9IG1faml0Q29kZS0+ZGZnQ29tbW9uKCk7CiAgICAgICAgICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgZGZnQ29tbW9uLT50cmFuc2l0aW9ucy5zaXplKCk7ICsraSkg
ewpAQCAtMzE5NSw3ICszMTk1LDcgQEAgdm9pZCBDb2RlQmxvY2s6OmpldHRpc29uKFByb2ZpbGVy
OjpKZXR0aQogICAgICAgICB9CiAgICAgfQogICAgIAotICAgIGlmIChERkc6OnNob3VsZFNob3dE
aXNhc3NlbWJseSgpKQorICAgIGlmIChERkc6OnNob3VsZER1bXBEaXNhc3NlbWJseSgpKQogICAg
ICAgICBkYXRhTG9nKCIgICAgRGlkIGludmFsaWRhdGUgIiwgKnRoaXMsICJcbiIpOwogICAgIAog
ICAgIC8vIENvdW50IHRoZSByZW9wdGltaXphdGlvbiBpZiB0aGF0J3Mgd2hhdCB0aGUgdXNlciB3
YW50ZWQuCkBAIC0zMjAzLDcgKzMyMDMsNyBAQCB2b2lkIENvZGVCbG9jazo6amV0dGlzb24oUHJv
ZmlsZXI6OkpldHRpCiAgICAgICAgIC8vIEZJWE1FOiBNYXliZSB0aGlzIHNob3VsZCBjYWxsIGFs
dGVybmF0aXZlKCkuCiAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMjM2NzcKICAgICAgICAgYmFzZWxpbmVBbHRlcm5hdGl2ZSgpLT5jb3VudFJlb3B0
aW1pemF0aW9uKCk7Ci0gICAgICAgIGlmIChERkc6OnNob3VsZFNob3dEaXNhc3NlbWJseSgpKQor
ICAgICAgICBpZiAoREZHOjpzaG91bGREdW1wRGlzYXNzZW1ibHkoKSkKICAgICAgICAgICAgIGRh
dGFMb2coIiAgICBEaWQgY291bnQgcmVvcHRpbWl6YXRpb24gZm9yICIsICp0aGlzLCAiXG4iKTsK
ICAgICB9CiAgICAgCkBAIC0zMjI1LDcgKzMyMjUsNyBAQCB2b2lkIENvZGVCbG9jazo6amV0dGlz
b24oUHJvZmlsZXI6OkpldHRpCiAgICAgICAgIG1fZ2xvYmFsT2JqZWN0LT52bSgpLCBhbHRlcm5h
dGl2ZSgpLCBjb2RlVHlwZSgpLCBzcGVjaWFsaXphdGlvbktpbmQoKSk7CiAKICNpZiBFTkFCTEUo
REZHX0pJVCkKLSAgICBpZiAoREZHOjpzaG91bGRTaG93RGlzYXNzZW1ibHkoKSkKKyAgICBpZiAo
REZHOjpzaG91bGREdW1wRGlzYXNzZW1ibHkoKSkKICAgICAgICAgZGF0YUxvZygiICAgIERpZCBp
bnN0YWxsIGJhc2VsaW5lIHZlcnNpb24gb2YgIiwgKnRoaXMsICJcbiIpOwogI2VuZGlmIC8vIEVO
QUJMRShERkdfSklUKQogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0Nv
ZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL0NvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hwb2ludC5jcHAJ
KHJldmlzaW9uIDE5MTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Db2Rl
QmxvY2tKZXR0aXNvbmluZ1dhdGNocG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICsz
NCw3IEBAIG5hbWVzcGFjZSBKU0MgewogCiB2b2lkIENvZGVCbG9ja0pldHRpc29uaW5nV2F0Y2hw
b2ludDo6ZmlyZUludGVybmFsKGNvbnN0IEZpcmVEZXRhaWwmIGRldGFpbCkKIHsKLSAgICBpZiAo
REZHOjpzaG91bGRTaG93RGlzYXNzZW1ibHkoKSkKKyAgICBpZiAoREZHOjpzaG91bGREdW1wRGlz
YXNzZW1ibHkoKSkKICAgICAgICAgZGF0YUxvZygiRmlyaW5nIHdhdGNocG9pbnQgIiwgUmF3UG9p
bnRlcih0aGlzKSwgIiBvbiAiLCAqbV9jb2RlQmxvY2ssICJcbiIpOwogCiAgICAgbV9jb2RlQmxv
Y2stPmpldHRpc29uKFByb2ZpbGVyOjpKZXR0aXNvbkR1ZVRvVW5wcm9maWxlZFdhdGNocG9pbnQs
IENvdW50UmVvcHRpbWl6YXRpb24sICZkZXRhaWwpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb21waWxlci9CeXRlY29kZUdlbmVyYXRvci5jcHAJKHJl
dmlzaW9uIDE5MTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29tcGlsZXIvQnl0
ZWNvZGVHZW5lcmF0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgsNyArMTk4LDcgQEAgQnl0
ZWNvZGVHZW5lcmF0b3I6OkJ5dGVjb2RlR2VuZXJhdG9yKFZNJgogICAgIC8vIG9wX3dpbGxfY2Fs
bCAvIG9wX2RpZF9jYWxsIHBhaXJzIGJlZm9yZSBhbmQgYWZ0ZXIgYSBjYWxsLCB3aGljaCBhcmUg
bm90CiAgICAgLy8gY29tcGF0aWJsZSB3aXRoIHRhaWwgY2FsbHMgKHdlIGhhdmUgbm8gd2F5IG9m
IGVtaXR0aW5nIG9wX2RpZF9jYWxsKS4KICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTQ4ODE5Ci0gICAgLCBtX2luVGFpbFBvc2l0aW9uKE9wdGlvbnM6OmVu
YWJsZVRhaWxDYWxscygpICYmIGNvbnN0cnVjdG9yS2luZCgpID09IENvbnN0cnVjdG9yS2luZDo6
Tm9uZSAmJiBpc1N0cmljdE1vZGUoKSAmJiAhbV9zaG91bGRFbWl0UHJvZmlsZUhvb2tzKQorICAg
ICwgbV9pblRhaWxQb3NpdGlvbihPcHRpb25zOjp1c2VUYWlsQ2FsbHMoKSAmJiBjb25zdHJ1Y3Rv
cktpbmQoKSA9PSBDb25zdHJ1Y3RvcktpbmQ6Ok5vbmUgJiYgaXNTdHJpY3RNb2RlKCkgJiYgIW1f
c2hvdWxkRW1pdFByb2ZpbGVIb29rcykKIHsKICAgICBmb3IgKGF1dG8mIGNvbnN0YW50UmVnaXN0
ZXIgOiBtX2xpbmtUaW1lQ29uc3RhbnRSZWdpc3RlcnMpCiAgICAgICAgIGNvbnN0YW50UmVnaXN0
ZXIgPSBudWxscHRyOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBZGFwdGl2
ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRj
aHBvaW50LmNwcAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Rm
Zy9ERkdBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFs
dWVXYXRjaHAKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBpZiAoREZHOjpzaG91
bGRTaG93RGlzYXNzZW1ibHkoKSkgeworICAgIGlmIChERkc6OnNob3VsZER1bXBEaXNhc3NlbWJs
eSgpKSB7CiAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAiRmlyaW5nIHdhdGNocG9pbnQg
IiwgUmF3UG9pbnRlcih0aGlzKSwgIiAoIiwgbV9rZXksICIpIG9uICIsICptX2NvZGVCbG9jaywg
IlxuIik7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBZGFwdGl2
ZVN0cnVjdHVyZVdhdGNocG9pbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHQWRhcHRpdmVTdHJ1Y3R1cmVXYXRjaHBvaW50LmNwcAkocmV2aXNpb24gMTkx
MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdBZGFwdGl2ZVN0cnVjdHVyZVdh
dGNocG9pbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw3ICs1Nyw3IEBAIHZvaWQgQWRhcHRp
dmVTdHJ1Y3R1cmVXYXRjaHBvaW50OjpmaXJlSW4KICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICAKLSAgICBpZiAoREZHOjpzaG91bGRTaG93RGlzYXNzZW1ibHkoKSkgeworICAgIGlmIChERkc6
OnNob3VsZER1bXBEaXNhc3NlbWJseSgpKSB7CiAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAg
ICAiRmlyaW5nIHdhdGNocG9pbnQgIiwgUmF3UG9pbnRlcih0aGlzKSwgIiAoIiwgbV9rZXksICIp
IG9uICIsICptX2NvZGVCbG9jaywgIlxuIik7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2RmZy9ERkdCeXRlQ29kZVBhcnNlci5jcHAJKHJldmlzaW9uIDE5MTAyNSkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQnl0ZUNvZGVQYXJzZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNzYzLDcgKzE3NjMsNyBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpoYW5k
bGVJbmxpbmluZygKICAgICAvLyB0aGUgREZHLiBBbmQgYnkgcG9seXZhcmlhbnQgcHJvZmlsaW5n
IHdlIG1lYW4gcG9seXZhcmlhbnQgcHJvZmlsaW5nIG9mICp0aGlzKiBjYWxsLiBOb3RlIHRoYXQK
ICAgICAvLyB3ZSBjb3VsZCBpbXByb3ZlIHRoYXQgYXNwZWN0IG9mIHRoaXMgYnkgZG9pbmcgcG9s
eW1vcnBoaWMgaW5saW5pbmcgYnV0IGhhdmluZyB0aGUgcHJvZmlsaW5nCiAgICAgLy8gYWxzby4K
LSAgICBpZiAoIWlzRlRMKG1fZ3JhcGgubV9wbGFuLm1vZGUpIHx8ICFPcHRpb25zOjplbmFibGVQ
b2x5bW9ycGhpY0NhbGxJbmxpbmluZygpCisgICAgaWYgKCFpc0ZUTChtX2dyYXBoLm1fcGxhbi5t
b2RlKSB8fCAhT3B0aW9uczo6dXNlUG9seW1vcnBoaWNDYWxsSW5saW5pbmcoKQogICAgICAgICB8
fCBJbmxpbmVDYWxsRnJhbWU6OmlzVmFyYXJncyhraW5kKSkgewogICAgICAgICBpZiAodmVyYm9z
ZSkgewogICAgICAgICAgICAgZGF0YUxvZygiQmFpbGluZyBpbmxpbmluZyAoaGFyZCkuXG4iKTsK
QEAgLTI3NDMsNyArMjc0Myw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQo
CiB7CiAgICAgTm9kZVR5cGUgZ2V0QnlJZCA9IGdldEJ5SWRTdGF0dXMubWFrZXNDYWxscygpID8g
R2V0QnlJZEZsdXNoIDogR2V0QnlJZDsKICAgICAKLSAgICBpZiAoIWdldEJ5SWRTdGF0dXMuaXNT
aW1wbGUoKSB8fCAhZ2V0QnlJZFN0YXR1cy5udW1WYXJpYW50cygpIHx8ICFPcHRpb25zOjplbmFi
bGVBY2Nlc3NJbmxpbmluZygpKSB7CisgICAgaWYgKCFnZXRCeUlkU3RhdHVzLmlzU2ltcGxlKCkg
fHwgIWdldEJ5SWRTdGF0dXMubnVtVmFyaWFudHMoKSB8fCAhT3B0aW9uczo6dXNlQWNjZXNzSW5s
aW5pbmcoKSkgewogICAgICAgICBzZXQoVmlydHVhbFJlZ2lzdGVyKGRlc3RpbmF0aW9uT3BlcmFu
ZCksCiAgICAgICAgICAgICBhZGRUb0dyYXBoKGdldEJ5SWQsIE9wSW5mbyhpZGVudGlmaWVyTnVt
YmVyKSwgT3BJbmZvKHByZWRpY3Rpb24pLCBiYXNlKSk7CiAgICAgICAgIHJldHVybjsKQEAgLTI3
NTEsNyArMjc1MSw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZUdldEJ5SWQoCiAgICAg
CiAgICAgaWYgKGdldEJ5SWRTdGF0dXMubnVtVmFyaWFudHMoKSA+IDEpIHsKICAgICAgICAgaWYg
KGdldEJ5SWRTdGF0dXMubWFrZXNDYWxscygpIHx8ICFpc0ZUTChtX2dyYXBoLm1fcGxhbi5tb2Rl
KQotICAgICAgICAgICAgfHwgIU9wdGlvbnM6OmVuYWJsZVBvbHltb3JwaGljQWNjZXNzSW5saW5p
bmcoKSkgeworICAgICAgICAgICAgfHwgIU9wdGlvbnM6OnVzZVBvbHltb3JwaGljQWNjZXNzSW5s
aW5pbmcoKSkgewogICAgICAgICAgICAgc2V0KFZpcnR1YWxSZWdpc3RlcihkZXN0aW5hdGlvbk9w
ZXJhbmQpLAogICAgICAgICAgICAgICAgIGFkZFRvR3JhcGgoZ2V0QnlJZCwgT3BJbmZvKGlkZW50
aWZpZXJOdW1iZXIpLCBPcEluZm8ocHJlZGljdGlvbiksIGJhc2UpKTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTI4NjYsNyArMjg2Niw3IEBAIHZvaWQgQnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVB1
dEJ5SWQoCiAgICAgTm9kZSogYmFzZSwgdW5zaWduZWQgaWRlbnRpZmllck51bWJlciwgTm9kZSog
dmFsdWUsCiAgICAgY29uc3QgUHV0QnlJZFN0YXR1cyYgcHV0QnlJZFN0YXR1cywgYm9vbCBpc0Rp
cmVjdCkKIHsKLSAgICBpZiAoIXB1dEJ5SWRTdGF0dXMuaXNTaW1wbGUoKSB8fCAhcHV0QnlJZFN0
YXR1cy5udW1WYXJpYW50cygpIHx8ICFPcHRpb25zOjplbmFibGVBY2Nlc3NJbmxpbmluZygpKSB7
CisgICAgaWYgKCFwdXRCeUlkU3RhdHVzLmlzU2ltcGxlKCkgfHwgIXB1dEJ5SWRTdGF0dXMubnVt
VmFyaWFudHMoKSB8fCAhT3B0aW9uczo6dXNlQWNjZXNzSW5saW5pbmcoKSkgewogICAgICAgICBp
ZiAoIXB1dEJ5SWRTdGF0dXMuaXNTZXQoKSkKICAgICAgICAgICAgIGFkZFRvR3JhcGgoRm9yY2VP
U1JFeGl0KTsKICAgICAgICAgZW1pdFB1dEJ5SWQoYmFzZSwgaWRlbnRpZmllck51bWJlciwgdmFs
dWUsIHB1dEJ5SWRTdGF0dXMsIGlzRGlyZWN0KTsKQEAgLTI4NzUsNyArMjg3NSw3IEBAIHZvaWQg
Qnl0ZUNvZGVQYXJzZXI6OmhhbmRsZVB1dEJ5SWQoCiAgICAgCiAgICAgaWYgKHB1dEJ5SWRTdGF0
dXMubnVtVmFyaWFudHMoKSA+IDEpIHsKICAgICAgICAgaWYgKCFpc0ZUTChtX2dyYXBoLm1fcGxh
bi5tb2RlKSB8fCBwdXRCeUlkU3RhdHVzLm1ha2VzQ2FsbHMoKQotICAgICAgICAgICAgfHwgIU9w
dGlvbnM6OmVuYWJsZVBvbHltb3JwaGljQWNjZXNzSW5saW5pbmcoKSkgeworICAgICAgICAgICAg
fHwgIU9wdGlvbnM6OnVzZVBvbHltb3JwaGljQWNjZXNzSW5saW5pbmcoKSkgewogICAgICAgICAg
ICAgZW1pdFB1dEJ5SWQoYmFzZSwgaWRlbnRpZmllck51bWJlciwgdmFsdWUsIHB1dEJ5SWRTdGF0
dXMsIGlzRGlyZWN0KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpAQCAtNDgzMCwx
MCArNDgzMCwxMCBAQCBib29sIEJ5dGVDb2RlUGFyc2VyOjpwYXJzZSgpCiAgICAgCiAgICAgbV9k
ZmdDb2RlQmxvY2sgPSBtX2dyYXBoLm1fcGxhbi5wcm9maWxlZERGR0NvZGVCbG9jazsKICAgICBp
ZiAoaXNGVEwobV9ncmFwaC5tX3BsYW4ubW9kZSkgJiYgbV9kZmdDb2RlQmxvY2sKLSAgICAgICAg
JiYgT3B0aW9uczo6ZW5hYmxlUG9seXZhcmlhbnREZXZpcnR1YWxpemF0aW9uKCkpIHsKLSAgICAg
ICAgaWYgKE9wdGlvbnM6OmVuYWJsZVBvbHl2YXJpYW50Q2FsbElubGluaW5nKCkpCisgICAgICAg
ICYmIE9wdGlvbnM6OnVzZVBvbHl2YXJpYW50RGV2aXJ0dWFsaXphdGlvbigpKSB7CisgICAgICAg
IGlmIChPcHRpb25zOjp1c2VQb2x5dmFyaWFudENhbGxJbmxpbmluZygpKQogICAgICAgICAgICAg
Q2FsbExpbmtTdGF0dXM6OmNvbXB1dGVERkdTdGF0dXNlcyhtX2RmZ0NvZGVCbG9jaywgbV9jYWxs
Q29udGV4dE1hcCk7Ci0gICAgICAgIGlmIChPcHRpb25zOjplbmFibGVQb2x5dmFyaWFudEJ5SWRJ
bmxpbmluZygpKQorICAgICAgICBpZiAoT3B0aW9uczo6dXNlUG9seXZhcmlhbnRCeUlkSW5saW5p
bmcoKSkKICAgICAgICAgICAgIG1fZGZnQ29kZUJsb2NrLT5nZXRTdHViSW5mb01hcChtX2RmZ1N0
dWJJbmZvcyk7CiAgICAgfQogICAgIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdDb21tb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0Nv
bW1vbi5oCShyZXZpc2lvbiAxOTEwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RG
R0NvbW1vbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNjYsMTAgKzM2NiwxMCBAQCBpbmxpbmUgQ2Fw
YWJpbGl0eUxldmVsIGxlYXN0VXBwZXJCb3VuZChDCiB9CiAKIC8vIFVuY29uZGl0aW9uYWxseSBk
aXNhYmxlIERGRyBkaXNhc3NlbWJseSBzdXBwb3J0IGlmIHRoZSBERkcgaXMgbm90IGNvbXBpbGVk
IGluLgotaW5saW5lIGJvb2wgc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KENvbXBpbGF0aW9uTW9kZSBt
b2RlID0gREZHTW9kZSkKK2lubGluZSBib29sIHNob3VsZER1bXBEaXNhc3NlbWJseShDb21waWxh
dGlvbk1vZGUgbW9kZSA9IERGR01vZGUpCiB7CiAjaWYgRU5BQkxFKERGR19KSVQpCi0gICAgcmV0
dXJuIE9wdGlvbnM6OnNob3dEaXNhc3NlbWJseSgpIHx8IE9wdGlvbnM6OnNob3dERkdEaXNhc3Nl
bWJseSgpIHx8IChpc0ZUTChtb2RlKSAmJiBPcHRpb25zOjpzaG93RlRMRGlzYXNzZW1ibHkoKSk7
CisgICAgcmV0dXJuIE9wdGlvbnM6OmR1bXBEaXNhc3NlbWJseSgpIHx8IE9wdGlvbnM6OmR1bXBE
RkdEaXNhc3NlbWJseSgpIHx8IChpc0ZUTChtb2RlKSAmJiBPcHRpb25zOjpkdW1wRlRMRGlzYXNz
ZW1ibHkoKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShtb2RlKTsKICAgICByZXR1cm4gZmFs
c2U7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdEcml2ZXIuY3BwCShyZXZpc2lv
biAxOTEwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0RyaXZlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTkxLDcgKzkxLDcgQEAgc3RhdGljIENvbXBpbGF0aW9uUmVzdWx0IGNv
bXBpbGVJbXBsKAogICAgICAgICBuZXcgUGxhbihjb2RlQmxvY2ssIHByb2ZpbGVkREZHQ29kZUJs
b2NrLCBtb2RlLCBvc3JFbnRyeUJ5dGVjb2RlSW5kZXgsIG11c3RIYW5kbGVWYWx1ZXMpKTsKICAg
ICAKICAgICBwbGFuLT5jYWxsYmFjayA9IGNhbGxiYWNrOwotICAgIGlmIChPcHRpb25zOjplbmFi
bGVDb25jdXJyZW50SklUKCkpIHsKKyAgICBpZiAoT3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgp
KSB7CiAgICAgICAgIFdvcmtsaXN0KiB3b3JrbGlzdCA9IGVuc3VyZUdsb2JhbFdvcmtsaXN0Rm9y
KG1vZGUpOwogICAgICAgICBpZiAobG9nQ29tcGlsYXRpb25DaGFuZ2VzKG1vZGUpKQogICAgICAg
ICAgICAgZGF0YUxvZygiRGVmZXJyaW5nIERGRyBjb21waWxhdGlvbiBvZiAiLCAqY29kZUJsb2Nr
LCAiIHdpdGggcXVldWUgbGVuZ3RoICIsIHdvcmtsaXN0LT5xdWV1ZUxlbmd0aCgpLCAiLlxuIik7
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0pJVENvbXBpbGVyLmNwcAko
cmV2aXNpb24gMTkxMDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKSVRDb21w
aWxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDcgKzUzLDcgQEAgSklUQ29tcGlsZXI6OkpJ
VENvbXBpbGVyKEdyYXBoJiBkZmcpCiAgICAgLCBtX2ppdENvZGUoYWRvcHRSZWYobmV3IEpJVENv
ZGUoKSkpCiAgICAgLCBtX2Jsb2NrSGVhZHMoZGZnLm51bUJsb2NrcygpKQogewotICAgIGlmIChz
aG91bGRTaG93RGlzYXNzZW1ibHkoKSB8fCBtX2dyYXBoLm1fdm0ubV9wZXJCeXRlY29kZVByb2Zp
bGVyKQorICAgIGlmIChzaG91bGREdW1wRGlzYXNzZW1ibHkoKSB8fCBtX2dyYXBoLm1fdm0ubV9w
ZXJCeXRlY29kZVByb2ZpbGVyKQogICAgICAgICBtX2Rpc2Fzc2VtYmxlciA9IHN0ZDo6bWFrZV91
bmlxdWU8RGlzYXNzZW1ibGVyPihkZmcpOwogfQogCkBAIC00NzMsNyArNDczLDcgQEAgdm9pZCBK
SVRDb21waWxlcjo6Y29tcGlsZUZ1bmN0aW9uKCkKIAogdm9pZCBKSVRDb21waWxlcjo6ZGlzYXNz
ZW1ibGUoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikKIHsKLSAgICBpZiAoc2hvdWxkU2hvd0Rpc2Fz
c2VtYmx5KCkpIHsKKyAgICBpZiAoc2hvdWxkRHVtcERpc2Fzc2VtYmx5KCkpIHsKICAgICAgICAg
bV9kaXNhc3NlbWJsZXItPmR1bXAobGlua0J1ZmZlcik7CiAgICAgICAgIGxpbmtCdWZmZXIuZGlk
QWxyZWFkeURpc2Fzc2VtYmxlKCk7CiAgICAgfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdKdW1wUmVwbGFjZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9kZmcvREZHSnVtcFJlcGxhY2VtZW50LmNwcAkocmV2aXNpb24gMTkxMDI1KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdKdW1wUmVwbGFjZW1lbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgREZHIHsK
IAogdm9pZCBKdW1wUmVwbGFjZW1lbnQ6OmZpcmUoKQogewotICAgIGlmIChPcHRpb25zOjpzaG93
RGlzYXNzZW1ibHkoKSkKKyAgICBpZiAoT3B0aW9uczo6ZHVtcERpc2Fzc2VtYmx5KCkpCiAgICAg
ICAgIGRhdGFMb2dGKCJGaXJpbmcganVtcCByZXBsYWNlbWVudCB3YXRjaHBvaW50IGZyb20gJXAs
IHRvICVwLlxuIiwgbV9zb3VyY2UuZGF0YUxvY2F0aW9uKCksIG1fZGVzdGluYXRpb24uZGF0YUxv
Y2F0aW9uKCkpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBsYWNlV2l0aEp1bXAobV9zb3VyY2Us
IG1fZGVzdGluYXRpb24pOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFbnRyeS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdP
U1JFbnRyeS5jcHAJKHJldmlzaW9uIDE5MTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9k
ZmcvREZHT1NSRW50cnkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQq
IHByZXBhcmVPU1JFbnRyeShFeGVjU3RhdGUqIGV4ZWMsIEMKICAgICBBU1NFUlQoY29kZUJsb2Nr
LT5hbHRlcm5hdGl2ZSgpLT5qaXRUeXBlKCkgPT0gSklUQ29kZTo6QmFzZWxpbmVKSVQpOwogICAg
IEFTU0VSVCghY29kZUJsb2NrLT5qaXRDb2RlTWFwKCkpOwogCi0gICAgaWYgKCFPcHRpb25zOjpl
bmFibGVPU1JFbnRyeVRvREZHKCkpCisgICAgaWYgKCFPcHRpb25zOjp1c2VPU1JFbnRyeVRvREZH
KCkpCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKE9wdGlvbnM6OnZlcmJvc2VPU1IoKSkg
ewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdPU1JFeGl0Q29tcGlsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBp
bGVyLmNwcAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdPU1JFeGl0Q29tcGlsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjMsNyArMTYzLDcgQEAg
dm9pZCBjb21waWxlT1NSRXhpdChFeGVjU3RhdGUqIGV4ZWMpCiAgICAgICAgIAogICAgICAgICBM
aW5rQnVmZmVyIHBhdGNoQnVmZmVyKCp2bSwgaml0LCBjb2RlQmxvY2spOwogICAgICAgICBleGl0
Lm1fY29kZSA9IEZJTkFMSVpFX0NPREVfSUYoCi0gICAgICAgICAgICBzaG91bGRTaG93RGlzYXNz
ZW1ibHkoKSB8fCBPcHRpb25zOjp2ZXJib3NlT1NSKCksCisgICAgICAgICAgICBzaG91bGREdW1w
RGlzYXNzZW1ibHkoKSB8fCBPcHRpb25zOjp2ZXJib3NlT1NSKCksCiAgICAgICAgICAgICBwYXRj
aEJ1ZmZlciwKICAgICAgICAgICAgICgiREZHIE9TUiBleGl0ICMldSAoJXMsICVzKSBmcm9tICVz
LCB3aXRoIG9wZXJhbmRzID0gJXMiLAogICAgICAgICAgICAgICAgIGV4aXRJbmRleCwgdG9DU3Ry
aW5nKGV4aXQubV9jb2RlT3JpZ2luKS5kYXRhKCksCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR09TUkV4aXRGdXp6LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL2RmZy9ERkdPU1JFeGl0RnV6ei5oCShyZXZpc2lvbiAxOTEwMjUpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvZGZnL0RGR09TUkV4aXRGdXp6LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcg
KzM0LDcgQEAgZXh0ZXJuIHVuc2lnbmVkIGdfbnVtYmVyT2ZTdGF0aWNPU1JFeGl0RgogCiBpbmxp
bmUgYm9vbCBkb09TUkV4aXRGdXp6aW5nKCkKIHsKLSAgICBpZiAoIU9wdGlvbnM6OmVuYWJsZU9T
UkV4aXRGdXp6KCkpCisgICAgaWYgKCFPcHRpb25zOjp1c2VPU1JFeGl0RnV6eigpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgZ19udW1iZXJPZlN0YXRpY09TUkV4aXRGdXp6Q2hl
Y2tzKys7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1BsYW4uY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHJldmlzaW9u
IDE5MTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHUGxhbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI2Myw3ICsyNjMsNyBAQCBQbGFuOjpDb21waWxhdGlvblBhdGggUGxhbjo6
Y29tcGlsZUluVGhyCiAKICAgICBwZXJmb3JtTGl2ZUNhdGNoVmFyaWFibGVQcmVzZXJ2YXRpb25Q
aGFzZShkZmcpOwogCi0gICAgaWYgKE9wdGlvbnM6OmVuYWJsZU1heGltYWxGbHVzaEluc2VydGlv
blBoYXNlKCkpCisgICAgaWYgKE9wdGlvbnM6OnVzZU1heGltYWxGbHVzaEluc2VydGlvblBoYXNl
KCkpCiAgICAgICAgIHBlcmZvcm1NYXhpbWFsRmx1c2hJbnNlcnRpb24oZGZnKTsKICAgICAKICAg
ICBwZXJmb3JtQ1BTUmV0aHJlYWRpbmcoZGZnKTsKQEAgLTM1OSw3ICszNTksNyBAQCBQbGFuOjpD
b21waWxhdGlvblBhdGggUGxhbjo6Y29tcGlsZUluVGhyCiAgICAgICAgIHBlcmZvcm1DbGVhblVw
KGRmZyk7CiAgICAgICAgIHBlcmZvcm1DUFNSZXRocmVhZGluZyhkZmcpOwogICAgICAgICBwZXJm
b3JtRENFKGRmZyk7Ci0gICAgICAgIGlmIChPcHRpb25zOjplbmFibGVDb3B5QmFycmllck9wdGlt
aXphdGlvbigpKQorICAgICAgICBpZiAoT3B0aW9uczo6dXNlQ29weUJhcnJpZXJPcHRpbWl6YXRp
b24oKSkKICAgICAgICAgICAgIHBlcmZvcm1Db3B5QmFycmllck9wdGltaXphdGlvbihkZmcpOwog
ICAgICAgICBwZXJmb3JtUGhhbnRvbUluc2VydGlvbihkZmcpOwogICAgICAgICBwZXJmb3JtU3Rh
Y2tMYXlvdXQoZGZnKTsKQEAgLTQwNiw3ICs0MDYsNyBAQCBQbGFuOjpDb21waWxhdGlvblBhdGgg
UGxhbjo6Y29tcGlsZUluVGhyCiAgICAgICAgIHBlcmZvcm1DbGVhblVwKGRmZyk7IC8vIFJlZHVj
ZSB0aGUgZ3JhcGggc2l6ZSBhIGxvdC4KICAgICAgICAgY2hhbmdlZCA9IGZhbHNlOwogICAgICAg
ICBjaGFuZ2VkIHw9IHBlcmZvcm1TdHJlbmd0aFJlZHVjdGlvbihkZmcpOwotICAgICAgICBpZiAo
T3B0aW9uczo6ZW5hYmxlT2JqZWN0QWxsb2NhdGlvblNpbmtpbmcoKSkgeworICAgICAgICBpZiAo
T3B0aW9uczo6dXNlT2JqZWN0QWxsb2NhdGlvblNpbmtpbmcoKSkgewogICAgICAgICAgICAgY2hh
bmdlZCB8PSBwZXJmb3JtQ3JpdGljYWxFZGdlQnJlYWtpbmcoZGZnKTsKICAgICAgICAgICAgIGNo
YW5nZWQgfD0gcGVyZm9ybU9iamVjdEFsbG9jYXRpb25TaW5raW5nKGRmZyk7CiAgICAgICAgIH0K
QEAgLTQzNiwxMSArNDM2LDExIEBAIFBsYW46OkNvbXBpbGF0aW9uUGF0aCBQbGFuOjpjb21waWxl
SW5UaHIKICAgICAgICAgcGVyZm9ybUxpdmVuZXNzQW5hbHlzaXMoZGZnKTsKICAgICAgICAgcGVy
Zm9ybUNGQShkZmcpOwogICAgICAgICBwZXJmb3JtR2xvYmFsU3RvcmVCYXJyaWVySW5zZXJ0aW9u
KGRmZyk7Ci0gICAgICAgIGlmIChPcHRpb25zOjplbmFibGVNb3ZIaW50UmVtb3ZhbCgpKQorICAg
ICAgICBpZiAoT3B0aW9uczo6dXNlTW92SGludFJlbW92YWwoKSkKICAgICAgICAgICAgIHBlcmZv
cm1Nb3ZIaW50UmVtb3ZhbChkZmcpOwogICAgICAgICBwZXJmb3JtQ2xlYW5VcChkZmcpOwogICAg
ICAgICBwZXJmb3JtRENFKGRmZyk7IC8vIFdlIHJlbHkgb24gdGhpcyB0byBraWxsIGRlYWQgY29k
ZSB0aGF0IHdvbid0IGJlIHJlY29nbml6ZWQgYXMgZGVhZCBieSBMTFZNLgotICAgICAgICBpZiAo
T3B0aW9uczo6ZW5hYmxlQ29weUJhcnJpZXJPcHRpbWl6YXRpb24oKSkKKyAgICAgICAgaWYgKE9w
dGlvbnM6OnVzZUNvcHlCYXJyaWVyT3B0aW1pemF0aW9uKCkpCiAgICAgICAgICAgICBwZXJmb3Jt
Q29weUJhcnJpZXJPcHRpbWl6YXRpb24oZGZnKTsKICAgICAgICAgcGVyZm9ybVN0YWNrTGF5b3V0
KGRmZyk7CiAgICAgICAgIHBlcmZvcm1MaXZlbmVzc0FuYWx5c2lzKGRmZyk7CkBAIC00NTIsNyAr
NDUyLDcgQEAgUGxhbjo6Q29tcGlsYXRpb25QYXRoIFBsYW46OmNvbXBpbGVJblRocgogICAgICAg
ICAgICAgcmV0dXJuIEZhaWxQYXRoOwogICAgICAgICB9CiAKLSAgICAgICAgZHVtcEFuZFZlcmlm
eUdyYXBoKGRmZywgIkdyYXBoIGp1c3QgYmVmb3JlIEZUTCBsb3dlcmluZzoiLCBzaG91bGRTaG93
RGlzYXNzZW1ibHkobW9kZSkpOworICAgICAgICBkdW1wQW5kVmVyaWZ5R3JhcGgoZGZnLCAiR3Jh
cGgganVzdCBiZWZvcmUgRlRMIGxvd2VyaW5nOiIsIHNob3VsZER1bXBEaXNhc3NlbWJseShtb2Rl
KSk7CiAgICAgICAgIAogICAgICAgICBib29sIGhhdmVMTFZNOwogICAgICAgICBTYWZlcG9pbnQ6
OlJlc3VsdCBzYWZlcG9pbnRSZXN1bHQ7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZn
L0RGR1NwZWN1bGF0aXZlSklULmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM3MzQsNyArMzczNCw3IEBAIHZvaWQgU3BlY3VsYXRpdmVKSVQ6OmNvbXBpbGVBcml0aFNx
cnQoTm8KICAgICBTcGVjdWxhdGVEb3VibGVPcGVyYW5kIG9wMSh0aGlzLCBub2RlLT5jaGlsZDEo
KSk7CiAgICAgRlBSUmVnIG9wMUZQUiA9IG9wMS5mcHIoKTsKIAotICAgIGlmICghTWFjcm9Bc3Nl
bWJsZXI6OnN1cHBvcnRzRmxvYXRpbmdQb2ludFNxcnQoKSB8fCAhT3B0aW9uczo6ZW5hYmxlQXJj
aGl0ZWN0dXJlU3BlY2lmaWNPcHRpbWl6YXRpb25zKCkpIHsKKyAgICBpZiAoIU1hY3JvQXNzZW1i
bGVyOjpzdXBwb3J0c0Zsb2F0aW5nUG9pbnRTcXJ0KCkgfHwgIU9wdGlvbnM6OnVzZUFyY2hpdGVj
dHVyZVNwZWNpZmljT3B0aW1pemF0aW9ucygpKSB7CiAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7
CiAgICAgICAgIEZQUlJlc3VsdCByZXN1bHQodGhpcyk7CiAgICAgICAgIGNhbGxPcGVyYXRpb24o
c3FydCwgcmVzdWx0LmZwcigpLCBvcDFGUFIpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdUaWVyVXBDaGVja0luamVjdGlvblBoYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENoZWNrSW5qZWN0aW9uUGhhc2UuY3BwCShy
ZXZpc2lvbiAxOTEwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1RpZXJVcENo
ZWNrSW5qZWN0aW9uUGhhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw3IEBAIHB1
YmxpYzoKICAgICAgICAgaWYgKGxldmVsID09IEZUTDo6Q2Fubm90Q29tcGlsZSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgCi0gICAgICAgIGlmICghT3B0aW9uczo6ZW5hYmxl
T1NSRW50cnlUb0ZUTCgpKQorICAgICAgICBpZiAoIU9wdGlvbnM6OnVzZU9TUkVudHJ5VG9GVEwo
KSkKICAgICAgICAgICAgIGxldmVsID0gRlRMOjpDYW5Db21waWxlOwogCiAgICAgICAgIC8vIEZp
cnN0IHdlIGZpbmQgYWxsIHRoZSBsb29wcyB0aGF0IGNvbnRhaW4gYSBMb29wSGludCBmb3Igd2hp
Y2ggd2UgY2Fubm90IE9TUiBlbnRlci4KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMQ29tcGlsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExDb21waWxlLmNwcAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2Z0bC9GVExDb21waWxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODQ0LDcgKzg0NCw3IEBAIHZv
aWQgY29tcGlsZShTdGF0ZSYgc3RhdGUsIFNhZmVwb2ludDo6UmUKICAgICAgICAgICAgIGxsdm0t
PlJ1blBhc3NNYW5hZ2VyKG1vZHVsZVBhc3NlcywgbW9kdWxlKTsKICAgICAgICAgfQogCi0gICAg
ICAgIGlmIChzaG91bGRTaG93RGlzYXNzZW1ibHkoKSB8fCB2ZXJib3NlQ29tcGlsYXRpb25FbmFi
bGVkKCkpCisgICAgICAgIGlmIChzaG91bGREdW1wRGlzYXNzZW1ibHkoKSB8fCB2ZXJib3NlQ29t
cGlsYXRpb25FbmFibGVkKCkpCiAgICAgICAgICAgICBzdGF0ZS5kdW1wU3RhdGUobW9kdWxlLCAi
YWZ0ZXIgb3B0aW1pemF0aW9uIik7CiAgICAgICAgIAogICAgICAgICAvLyBGSVhNRTogTmVlZCB0
byBhZGQgc3VwcG9ydCBmb3IgdGhlIGNhc2Ugd2hlcmUgSklUIG1lbW9yeSBhbGxvY2F0aW9uIGZh
aWxlZC4KQEAgLTg2Myw3ICs4NjMsNyBAQCB2b2lkIGNvbXBpbGUoU3RhdGUmIHN0YXRlLCBTYWZl
cG9pbnQ6OlJlCiAgICAgaWYgKHN0YXRlLmFsbG9jYXRpb25GYWlsZWQpCiAgICAgICAgIHJldHVy
bjsKICAgICAKLSAgICBpZiAoc2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkpIHsKKyAgICBpZiAoc2hv
dWxkRHVtcERpc2Fzc2VtYmx5KCkpIHsKICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8
IHN0YXRlLmppdENvZGUtPmhhbmRsZXMoKS5zaXplKCk7ICsraSkgewogICAgICAgICAgICAgRXhl
Y3V0YWJsZU1lbW9yeUhhbmRsZSogaGFuZGxlID0gc3RhdGUuaml0Q29kZS0+aGFuZGxlcygpW2ld
LmdldCgpOwogICAgICAgICAgICAgZGF0YUxvZygKQEAgLTg4OCwxNCArODg4LDE0IEBAIHZvaWQg
Y29tcGlsZShTdGF0ZSYgc3RhdGUsIFNhZmVwb2ludDo6UmUKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
UmVnaXN0ZXJBdE9mZnNldExpc3Q+IHJlZ2lzdGVyT2Zmc2V0cyA9IHBhcnNlVW53aW5kSW5mbygK
ICAgICAgICAgc3RhdGUudW53aW5kRGF0YVNlY3Rpb24sIHN0YXRlLnVud2luZERhdGFTZWN0aW9u
U2l6ZSwKICAgICAgICAgc3RhdGUuZ2VuZXJhdGVkRnVuY3Rpb24pOwotICAgIGlmIChzaG91bGRT
aG93RGlzYXNzZW1ibHkoKSkgeworICAgIGlmIChzaG91bGREdW1wRGlzYXNzZW1ibHkoKSkgewog
ICAgICAgICBkYXRhTG9nKCJVbndpbmQgaW5mbyBmb3IgIiwgQ29kZUJsb2NrV2l0aEpJVFR5cGUo
c3RhdGUuZ3JhcGgubV9jb2RlQmxvY2ssIEpJVENvZGU6OkZUTEpJVCksICI6XG4iKTsKICAgICAg
ICAgZGF0YUxvZygiICAgICIsICpyZWdpc3Rlck9mZnNldHMsICJcbiIpOwogICAgIH0KICAgICBz
dGF0ZS5ncmFwaC5tX2NvZGVCbG9jay0+c2V0Q2FsbGVlU2F2ZVJlZ2lzdGVycyhXVEY6Om1vdmUo
cmVnaXN0ZXJPZmZzZXRzKSk7CiAgICAgCiAgICAgaWYgKHN0YXRlLnN0YWNrbWFwc1NlY3Rpb24g
JiYgc3RhdGUuc3RhY2ttYXBzU2VjdGlvbi0+c2l6ZSgpKSB7Ci0gICAgICAgIGlmIChzaG91bGRT
aG93RGlzYXNzZW1ibHkoKSkgeworICAgICAgICBpZiAoc2hvdWxkRHVtcERpc2Fzc2VtYmx5KCkp
IHsKICAgICAgICAgICAgIGRhdGFMb2coCiAgICAgICAgICAgICAgICAgIkdlbmVyYXRlZCBMTFZN
IHN0YWNrbWFwcyBzZWN0aW9uIGZvciAiLAogICAgICAgICAgICAgICAgIENvZGVCbG9ja1dpdGhK
SVRUeXBlKHN0YXRlLmdyYXBoLm1fY29kZUJsb2NrLCBKSVRDb2RlOjpGVExKSVQpLCAiOlxuIik7
CkBAIC05MDcsNyArOTA3LDcgQEAgdm9pZCBjb21waWxlKFN0YXRlJiBzdGF0ZSwgU2FmZXBvaW50
OjpSZQogICAgICAgICAgICAgQXJyYXlCdWZmZXI6OmNyZWF0ZShzdGF0ZS5zdGFja21hcHNTZWN0
aW9uLT5iYXNlKCksIHN0YXRlLnN0YWNrbWFwc1NlY3Rpb24tPnNpemUoKSkpOwogICAgICAgICBz
dGF0ZS5qaXRDb2RlLT5zdGFja21hcHMucGFyc2Uoc3RhY2ttYXBzRGF0YS5nZXQoKSk7CiAgICAg
Ci0gICAgICAgIGlmIChzaG91bGRTaG93RGlzYXNzZW1ibHkoKSkgeworICAgICAgICBpZiAoc2hv
dWxkRHVtcERpc2Fzc2VtYmx5KCkpIHsKICAgICAgICAgICAgIGRhdGFMb2coIiAgICBTdHJ1Y3R1
cmVkIGRhdGE6XG4iKTsKICAgICAgICAgICAgIHN0YXRlLmppdENvZGUtPnN0YWNrbWFwcy5kdW1w
TXVsdGlsaW5lKFdURjo6ZGF0YUZpbGUoKSwgIiAgICAgICAgIik7CiAgICAgICAgIH0KQEAgLTkx
OSw3ICs5MTksNyBAQCB2b2lkIGNvbXBpbGUoU3RhdGUmIHN0YXRlLCBTYWZlcG9pbnQ6OlJlCiAg
ICAgICAgIGlmIChzdGF0ZS5hbGxvY2F0aW9uRmFpbGVkKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAKLSAgICAgICAgaWYgKHNob3VsZFNob3dEaXNhc3NlbWJseSgpIHx8IE9wdGlvbnM6
OmFzeW5jRGlzYXNzZW1ibHkoKSkgeworICAgICAgICBpZiAoc2hvdWxkRHVtcERpc2Fzc2VtYmx5
KCkgfHwgT3B0aW9uczo6YXN5bmNEaXNhc3NlbWJseSgpKSB7CiAgICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgc3RhdGUuaml0Q29kZS0+aGFuZGxlcygpLnNpemUoKTsgKytpKSB7
CiAgICAgICAgICAgICAgICAgaWYgKHN0YXRlLmNvZGVTZWN0aW9uTmFtZXNbaV0gIT0gU0VDVElP
Tl9OQU1FKCJ0ZXh0IikpCiAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwpJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExKSVRDb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuY3BwCShyZXZpc2lvbiAxOTEwMjUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTEpJVENvZGUuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zOSw3ICszOSw3IEBAIEpJVENvZGU6OkpJVENvZGUoKQogCiBKSVRDb2RlOjp+SklUQ29k
ZSgpCiB7Ci0gICAgaWYgKEZUTDo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkpIHsKKyAgICBpZiAo
RlRMOjpzaG91bGREdW1wRGlzYXNzZW1ibHkoKSkgewogICAgICAgICBkYXRhTG9nKCJEZXN0cm95
aW5nIEZUTCBKSVQgY29kZSBhdCAiKTsKICAgICAgICAgQ29tbWFQcmludGVyIGNvbW1hOwogICAg
ICAgICBmb3IgKGF1dG8mIGhhbmRsZSA6IG1faGFuZGxlcykKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9mdGwvRlRMTG93ZXJERkdUb0xMVk0uY3BwCShyZXZpc2lvbiAxOTEwMjUp
CisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTExvd2VyREZHVG9MTFZNLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtODYyMyw3ICs4NjIzLDcgQEAgcHJpdmF0ZToKICAgICAKICAgICB2b2lk
IGNhbGxDaGVjaygpCiAgICAgewotICAgICAgICBpZiAoT3B0aW9uczo6ZW5hYmxlRXhjZXB0aW9u
RnV6eigpKQorICAgICAgICBpZiAoT3B0aW9uczo6dXNlRXhjZXB0aW9uRnV6eigpKQogICAgICAg
ICAgICAgbV9vdXQuY2FsbChtX291dC5vcGVyYXRpb24ob3BlcmF0aW9uRXhjZXB0aW9uRnV6eiks
IG1fY2FsbEZyYW1lKTsKICAgICAgICAgCiAgICAgICAgIExCYXNpY0Jsb2NrIGNvbnRpbnVhdGlv
biA9IEZUTF9ORVdfQkxPQ0sobV9vdXQsICgiRXhjZXB0aW9uIGNoZWNrIGNvbnRpbnVhdGlvbiIp
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMT1NSRXhpdENvbXBpbGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZnRsL0ZUTE9TUkV4aXRDb21w
aWxlci5jcHAJKHJldmlzaW9uIDE5MTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwv
RlRMT1NSRXhpdENvbXBpbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDkyLDcgKzQ5Miw3IEBA
IHN0YXRpYyB2b2lkIGNvbXBpbGVTdHViKAogICAgIAogICAgIExpbmtCdWZmZXIgcGF0Y2hCdWZm
ZXIoKnZtLCBqaXQsIGNvZGVCbG9jayk7CiAgICAgZXhpdC5tX2NvZGUgPSBGSU5BTElaRV9DT0RF
X0lGKAotICAgICAgICBzaG91bGRTaG93RGlzYXNzZW1ibHkoKSB8fCBPcHRpb25zOjp2ZXJib3Nl
T1NSKCkgfHwgT3B0aW9uczo6dmVyYm9zZUZUTE9TUkV4aXQoKSwKKyAgICAgICAgc2hvdWxkRHVt
cERpc2Fzc2VtYmx5KCkgfHwgT3B0aW9uczo6dmVyYm9zZU9TUigpIHx8IE9wdGlvbnM6OnZlcmJv
c2VGVExPU1JFeGl0KCksCiAgICAgICAgIHBhdGNoQnVmZmVyLAogICAgICAgICAoIkZUTCBPU1Ig
ZXhpdCAjJXUgKCVzLCAlcykgZnJvbSAlcywgd2l0aCBvcGVyYW5kcyA9ICVzLCBhbmQgcmVjb3Jk
ID0gJXMiLAogICAgICAgICAgICAgZXhpdElELCB0b0NTdHJpbmcoZXhpdC5tX2NvZGVPcmlnaW4p
LmRhdGEoKSwKQEAgLTUwNSw3ICs1MDUsNyBAQCBleHRlcm4gIkMiIHZvaWQqIGNvbXBpbGVGVExP
U1JFeGl0KEV4ZWNTCiB7CiAgICAgU2FtcGxpbmdSZWdpb24gc2FtcGxpbmdSZWdpb24oIkZUTCBP
U1IgRXhpdCBDb21waWxhdGlvbiIpOwogCi0gICAgaWYgKHNob3VsZFNob3dEaXNhc3NlbWJseSgp
IHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKSB8fCBPcHRpb25zOjp2ZXJib3NlRlRMT1NSRXhpdCgp
KQorICAgIGlmIChzaG91bGREdW1wRGlzYXNzZW1ibHkoKSB8fCBPcHRpb25zOjp2ZXJib3NlT1NS
KCkgfHwgT3B0aW9uczo6dmVyYm9zZUZUTE9TUkV4aXQoKSkKICAgICAgICAgZGF0YUxvZygiQ29t
cGlsaW5nIE9TUiBleGl0IHdpdGggZXhpdElEID0gIiwgZXhpdElELCAiXG4iKTsKICAgICAKICAg
ICBDb2RlQmxvY2sqIGNvZGVCbG9jayA9IGV4ZWMtPmNvZGVCbG9jaygpOwpAQCAtNTIyLDcgKzUy
Miw3IEBAIGV4dGVybiAiQyIgdm9pZCogY29tcGlsZUZUTE9TUkV4aXQoRXhlY1MKICAgICBKSVRD
b2RlKiBqaXRDb2RlID0gY29kZUJsb2NrLT5qaXRDb2RlKCktPmZ0bCgpOwogICAgIE9TUkV4aXQm
IGV4aXQgPSBqaXRDb2RlLT5vc3JFeGl0W2V4aXRJRF07CiAgICAgCi0gICAgaWYgKHNob3VsZFNo
b3dEaXNhc3NlbWJseSgpIHx8IE9wdGlvbnM6OnZlcmJvc2VPU1IoKSB8fCBPcHRpb25zOjp2ZXJi
b3NlRlRMT1NSRXhpdCgpKSB7CisgICAgaWYgKHNob3VsZER1bXBEaXNhc3NlbWJseSgpIHx8IE9w
dGlvbnM6OnZlcmJvc2VPU1IoKSB8fCBPcHRpb25zOjp2ZXJib3NlRlRMT1NSRXhpdCgpKSB7CiAg
ICAgICAgIGRhdGFMb2coIiAgICBPd25pbmcgYmxvY2s6ICIsIHBvaW50ZXJEdW1wKGNvZGVCbG9j
ayksICJcbiIpOwogICAgICAgICBkYXRhTG9nKCIgICAgT3JpZ2luOiAiLCBleGl0Lm1fY29kZU9y
aWdpbiwgIlxuIik7CiAgICAgICAgIGlmIChleGl0Lm1fY29kZU9yaWdpbkZvckV4aXRQcm9maWxl
ICE9IGV4aXQubV9jb2RlT3JpZ2luKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9G
VExTdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9mdGwvRlRMU3Rh
dGUuaAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2Z0bC9GVExT
dGF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw5ICs0OSw5IEBAIGlubGluZSBib29sIHZlcmJv
c2VDb21waWxhdGlvbkVuYWJsZWQoKQogICAgIHJldHVybiBERkc6OnZlcmJvc2VDb21waWxhdGlv
bkVuYWJsZWQoREZHOjpGVExNb2RlKTsKIH0KIAotaW5saW5lIGJvb2wgc2hvdWxkU2hvd0Rpc2Fz
c2VtYmx5KCkKK2lubGluZSBib29sIHNob3VsZER1bXBEaXNhc3NlbWJseSgpCiB7Ci0gICAgcmV0
dXJuIERGRzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KERGRzo6RlRMTW9kZSk7CisgICAgcmV0dXJu
IERGRzo6c2hvdWxkRHVtcERpc2Fzc2VtYmx5KERGRzo6RlRMTW9kZSk7CiB9CiAKIGNsYXNzIFN0
YXRlIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCShyZXZpc2lvbiAxOTEw
MjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtOTg5LDcgKzk4OSw3IEBAIHZvaWQgSGVhcDo6ZGVsZXRlVW5tYXJrZWRDb21waWxlZENv
ZGUoKQogdm9pZCBIZWFwOjphZGRUb1JlbWVtYmVyZWRTZXQoY29uc3QgSlNDZWxsKiBjZWxsKQog
ewogICAgIEFTU0VSVChjZWxsKTsKLSAgICBBU1NFUlQoIU9wdGlvbnM6OmVuYWJsZUNvbmN1cnJl
bnRKSVQoKSB8fCAhaXNDb21waWxhdGlvblRocmVhZCgpKTsKKyAgICBBU1NFUlQoIU9wdGlvbnM6
OnVzZUNvbmN1cnJlbnRKSVQoKSB8fCAhaXNDb21waWxhdGlvblRocmVhZCgpKTsKICAgICBBU1NF
UlQoY2VsbC0+Y2VsbFN0YXRlKCkgPT0gQ2VsbFN0YXRlOjpPbGRCbGFjayk7CiAgICAgLy8gSW5k
aWNhdGUgdGhhdCB0aGlzIG9iamVjdCBpcyBncmV5IGFuZCB0aGF0IGl0J3Mgb25lIG9mIHRoZSBm
b2xsb3dpbmc6CiAgICAgLy8gLSBBIHJlLWdyZXllZCBvYmplY3QgZHVyaW5nIGEgY29uY3VycmVu
dCBjb2xsZWN0aW9uLgpAQCAtMTMxNywxMSArMTMxNywxMSBAQCB2b2lkIEhlYXA6OmRpZEZpbmlz
aENvbGxlY3Rpb24oZG91YmxlIGdjCiAgICAgaWYgKE9wdGlvbnM6OnVzZVpvbWJpZU1vZGUoKSkK
ICAgICAgICAgem9tYmlmeURlYWRPYmplY3RzKCk7CiAKLSAgICBpZiAoT3B0aW9uczo6b2JqZWN0
c0FyZUltbW9ydGFsKCkpCisgICAgaWYgKE9wdGlvbnM6OnVzZUltbW9ydGFsT2JqZWN0cygpKQog
ICAgICAgICBtYXJrRGVhZE9iamVjdHMoKTsKIAotICAgIGlmIChPcHRpb25zOjpzaG93T2JqZWN0
U3RhdGlzdGljcygpKQotICAgICAgICBIZWFwU3RhdGlzdGljczo6c2hvd09iamVjdFN0YXRpc3Rp
Y3ModGhpcyk7CisgICAgaWYgKE9wdGlvbnM6OmR1bXBPYmplY3RTdGF0aXN0aWNzKCkpCisgICAg
ICAgIEhlYXBTdGF0aXN0aWNzOjpkdW1wT2JqZWN0U3RhdGlzdGljcyh0aGlzKTsKIAogICAgIGlm
IChPcHRpb25zOjpsb2dHQygpID09IEdDTG9nZ2luZzo6VmVyYm9zZSkKICAgICAgICAgR0NMb2dn
aW5nOjpkdW1wT2JqZWN0R3JhcGgodGhpcyk7CkBAIC0xNDc5LDcgKzE0NzksNyBAQCB2b2lkIEhl
YXA6OmZsdXNoV3JpdGVCYXJyaWVyQnVmZmVyKEpTQ2VsCiAKIGJvb2wgSGVhcDo6c2hvdWxkRG9G
dWxsQ29sbGVjdGlvbihIZWFwT3BlcmF0aW9uIHJlcXVlc3RlZENvbGxlY3Rpb25UeXBlKSBjb25z
dAogewotICAgIGlmIChPcHRpb25zOjphbHdheXNEb0Z1bGxDb2xsZWN0aW9uKCkpCisgICAgaWYg
KCFPcHRpb25zOjp1c2VHZW5lcmF0aW9uYWxHQygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAog
ICAgIHN3aXRjaCAocmVxdWVzdGVkQ29sbGVjdGlvblR5cGUpIHsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmgJKHJldmlzaW9uIDE5MTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjIxLDcgKzIyMSw3IEBAIHB1YmxpYzoK
ICAgICAKICAgICB2b2lkIGFkZFJlZmVyZW5jZShKU0NlbGwqLCBBcnJheUJ1ZmZlciopOwogICAg
IAotICAgIGJvb2wgaXNEZWZlcnJlZCgpIGNvbnN0IHsgcmV0dXJuICEhbV9kZWZlcnJhbERlcHRo
IHx8IE9wdGlvbnM6OmRpc2FibGVHQygpOyB9CisgICAgYm9vbCBpc0RlZmVycmVkKCkgY29uc3Qg
eyByZXR1cm4gISFtX2RlZmVycmFsRGVwdGggfHwgIU9wdGlvbnM6OnVzZUdDKCk7IH0KIAogICAg
IFN0cnVjdHVyZUlEVGFibGUmIHN0cnVjdHVyZUlEVGFibGUoKSB7IHJldHVybiBtX3N0cnVjdHVy
ZUlEVGFibGU7IH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRp
c3RpY3MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXBT
dGF0aXN0aWNzLmNwcAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSGVhcFN0YXRpc3RpY3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTYsNyArMjE2LDcg
QEAgaW5saW5lIHNpemVfdCBTdG9yYWdlU3RhdGlzdGljczo6c3RvcmFnZQogICAgIHJldHVybiBt
X3N0b3JhZ2VDYXBhY2l0eTsKIH0KIAotdm9pZCBIZWFwU3RhdGlzdGljczo6c2hvd09iamVjdFN0
YXRpc3RpY3MoSGVhcCogaGVhcCkKK3ZvaWQgSGVhcFN0YXRpc3RpY3M6OmR1bXBPYmplY3RTdGF0
aXN0aWNzKEhlYXAqIGhlYXApCiB7CiAgICAgZGF0YUxvZ0YoIlxuPT09IEhlYXAgU3RhdGlzdGlj
czogPT09XG4iKTsKICAgICBkYXRhTG9nRigic2l6ZTogJWxka0JcbiIsIHN0YXRpY19jYXN0PGxv
bmc+KGhlYXAtPm1fc2l6ZUFmdGVyTGFzdENvbGxlY3QgLyBLQikpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcFN0YXRpc3RpY3MuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5oCShyZXZpc2lvbiAxOTEwMjUpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwU3RhdGlzdGljcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXpl
KCk7CiAgICAgc3RhdGljIHZvaWQgcmVjb3JkR0NQYXVzZVRpbWUoZG91YmxlIHN0YXJ0LCBkb3Vi
bGUgZW5kKTsKIAotICAgIHN0YXRpYyB2b2lkIHNob3dPYmplY3RTdGF0aXN0aWNzKEhlYXAqKTsK
KyAgICBzdGF0aWMgdm9pZCBkdW1wT2JqZWN0U3RhdGlzdGljcyhIZWFwKik7CiAKIHByaXZhdGU6
CiAgICAgc3RhdGljIHZvaWQgbG9nU3RhdGlzdGljcygpOwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2ludGVycHJldGVyL1N0YWNrVmlzaXRvci5jcHAJKHJldmlzaW9uIDE5
MTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9pbnRlcnByZXRlci9TdGFja1Zpc2l0b3Iu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODMsNyArMjgzLDcgQEAgQ2xvbmVkQXJndW1lbnRzKiBT
dGFja1Zpc2l0b3I6OkZyYW1lOjpjcgogICAgIENhbGxGcmFtZSogcGh5c2ljYWxGcmFtZSA9IG1f
Y2FsbEZyYW1lOwogICAgIENsb25lZEFyZ3VtZW50cyogYXJndW1lbnRzOwogICAgIEFyZ3VtZW50
c01vZGUgbW9kZTsKLSAgICBpZiAoT3B0aW9uczo6ZW5hYmxlRnVuY3Rpb25Eb3RBcmd1bWVudHMo
KSkKKyAgICBpZiAoT3B0aW9uczo6dXNlRnVuY3Rpb25Eb3RBcmd1bWVudHMoKSkKICAgICAgICAg
bW9kZSA9IEFyZ3VtZW50c01vZGU6OkNsb25lZDsKICAgICBlbHNlCiAgICAgICAgIG1vZGUgPSBB
cmd1bWVudHNNb2RlOjpGYWtlVmFsdWVzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9Bc3NlbWJseUhlbHBlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9qaXQvQXNzZW1ibHlIZWxwZXJzLmNwcAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9Bc3NlbWJseUhlbHBlcnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
ODgsNyArMjg4LDcgQEAgdm9pZCBBc3NlbWJseUhlbHBlcnM6OmppdEFzc2VydE5vRXhjZXB0aQog
CiB2b2lkIEFzc2VtYmx5SGVscGVyczo6Y2FsbEV4Y2VwdGlvbkZ1enooKQogewotICAgIGlmICgh
T3B0aW9uczo6ZW5hYmxlRXhjZXB0aW9uRnV6eigpKQorICAgIGlmICghT3B0aW9uczo6dXNlRXhj
ZXB0aW9uRnV6eigpKQogICAgICAgICByZXR1cm47CiAKICAgICBFbmNvZGVkSlNWYWx1ZSogYnVm
ZmVyID0gdm0oKS0+ZXhjZXB0aW9uRnV6emluZ0J1ZmZlcihzaXplb2YoRW5jb2RlZEpTVmFsdWUp
ICogKEdQUkluZm86Om51bWJlck9mUmVnaXN0ZXJzICsgRlBSSW5mbzo6bnVtYmVyT2ZSZWdpc3Rl
cnMpKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRp
b25GdXp6LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1
dGFibGVBbGxvY2F0aW9uRnV6ei5jcHAJKHJldmlzaW9uIDE5MTAyNSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9qaXQvRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDAsNyArNDAsNyBAQCB1bnNpZ25lZCBudW1iZXJPZkV4ZWN1dGFibGVBbGxvY2F0aW9u
RnV6CiAKIEV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6elJlc3VsdCBkb0V4ZWN1dGFibGVBbGxvY2F0
aW9uRnV6emluZygpCiB7Ci0gICAgQVNTRVJUKE9wdGlvbnM6OmVuYWJsZUV4ZWN1dGFibGVBbGxv
Y2F0aW9uRnV6eigpKTsKKyAgICBBU1NFUlQoT3B0aW9uczo6dXNlRXhlY3V0YWJsZUFsbG9jYXRp
b25GdXp6KCkpOwogICAgIAogICAgIHVuc2lnbmVkIG9sZFZhbHVlOwogICAgIHVuc2lnbmVkIG5l
d1ZhbHVlOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9FeGVjdXRhYmxlQWxsb2Nh
dGlvbkZ1enouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0V4ZWN1
dGFibGVBbGxvY2F0aW9uRnV6ei5oCShyZXZpc2lvbiAxOTEwMjUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0V4ZWN1dGFibGVBbGxvY2F0aW9uRnV6ei5oCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSw3ICszOSw3IEBAIEV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6elJlc3VsdCBkb0V4ZWN1dGEK
IAogaW5saW5lIEV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6elJlc3VsdCBkb0V4ZWN1dGFibGVBbGxv
Y2F0aW9uRnV6emluZ0lmRW5hYmxlZCgpCiB7Ci0gICAgaWYgKExJS0VMWSghT3B0aW9uczo6ZW5h
YmxlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6KCkpKQorICAgIGlmIChMSUtFTFkoIU9wdGlvbnM6
OnVzZUV4ZWN1dGFibGVBbGxvY2F0aW9uRnV6eigpKSkKICAgICAgICAgcmV0dXJuIEFsbG93Tm9y
bWFsRXhlY3V0YWJsZUFsbG9jYXRpb247CiAgICAgCiAgICAgcmV0dXJuIGRvRXhlY3V0YWJsZUFs
bG9jYXRpb25GdXp6aW5nKCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVQuY3BwCShyZXZp
c2lvbiAxOTEwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTUwMCw3ICs1MDAsNyBAQCBDb21waWxhdGlvblJlc3VsdCBKSVQ6OnByaXZh
dGVDb21waWxlKEpJCiAgICAgaWYgKG1fdm0tPnR5cGVQcm9maWxlcigpKQogICAgICAgICBtX3Zt
LT50eXBlUHJvZmlsZXJMb2coKS0+cHJvY2Vzc0xvZ0VudHJpZXMoQVNDSUlMaXRlcmFsKCJQcmVw
YXJpbmcgZm9yIEpJVCBjb21waWxhdGlvbi4iKSk7CiAgICAgCi0gICAgaWYgKE9wdGlvbnM6OnNo
b3dEaXNhc3NlbWJseSgpIHx8IG1fdm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlcikKKyAgICBpZiAo
T3B0aW9uczo6ZHVtcERpc2Fzc2VtYmx5KCkgfHwgbV92bS0+bV9wZXJCeXRlY29kZVByb2ZpbGVy
KQogICAgICAgICBtX2Rpc2Fzc2VtYmxlciA9IHN0ZDo6bWFrZV91bmlxdWU8SklURGlzYXNzZW1i
bGVyPihtX2NvZGVCbG9jayk7CiAgICAgaWYgKG1fdm0tPm1fcGVyQnl0ZWNvZGVQcm9maWxlcikg
ewogICAgICAgICBtX2NvbXBpbGF0aW9uID0gYWRvcHRSZWYoCkBAIC02OTEsNyArNjkxLDcgQEAg
Q29tcGlsYXRpb25SZXN1bHQgSklUOjpwcml2YXRlQ29tcGlsZShKSQogICAgIGlmIChtX2NvZGVC
bG9jay0+Y29kZVR5cGUoKSA9PSBGdW5jdGlvbkNvZGUpCiAgICAgICAgIHdpdGhBcml0eUNoZWNr
ID0gcGF0Y2hCdWZmZXIubG9jYXRpb25PZihhcml0eUNoZWNrKTsKIAotICAgIGlmIChPcHRpb25z
OjpzaG93RGlzYXNzZW1ibHkoKSkgeworICAgIGlmIChPcHRpb25zOjpkdW1wRGlzYXNzZW1ibHko
KSkgewogICAgICAgICBtX2Rpc2Fzc2VtYmxlci0+ZHVtcChwYXRjaEJ1ZmZlcik7CiAgICAgICAg
IHBhdGNoQnVmZmVyLmRpZEFscmVhZHlEaXNhc3NlbWJsZSgpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUQ29kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL2ppdC9KSVRDb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE4LDcg
KzExOCw3IEBAIEpJVENvZGVXaXRoQ29kZVJlZjo6SklUQ29kZVdpdGhDb2RlUmVmKEMKIAogSklU
Q29kZVdpdGhDb2RlUmVmOjp+SklUQ29kZVdpdGhDb2RlUmVmKCkKIHsKLSAgICBpZiAoKE9wdGlv
bnM6OnNob3dEaXNhc3NlbWJseSgpIHx8IChpc09wdGltaXppbmdKSVQoaml0VHlwZSgpKSAmJiBP
cHRpb25zOjpzaG93REZHRGlzYXNzZW1ibHkoKSkpCisgICAgaWYgKChPcHRpb25zOjpkdW1wRGlz
YXNzZW1ibHkoKSB8fCAoaXNPcHRpbWl6aW5nSklUKGppdFR5cGUoKSkgJiYgT3B0aW9uczo6ZHVt
cERGR0Rpc2Fzc2VtYmx5KCkpKQogICAgICAgICAmJiBtX3JlZi5leGVjdXRhYmxlTWVtb3J5KCkp
CiAgICAgICAgIGRhdGFMb2coIkRlc3Ryb3lpbmcgSklUIGNvZGUgYXQgIiwgcG9pbnRlckR1bXAo
bV9yZWYuZXhlY3V0YWJsZU1lbW9yeSgpKSwgIlxuIik7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L1BvbHltb3JwaGljQ2FsbFN0dWJSb3V0aW5lLmNw
cAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9Qb2x5bW9y
cGhpY0NhbGxTdHViUm91dGluZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0LDcgKzQ0LDcgQEAg
UG9seW1vcnBoaWNDYWxsTm9kZTo6flBvbHltb3JwaGljQ2FsbE5vZAogdm9pZCBQb2x5bW9ycGhp
Y0NhbGxOb2RlOjp1bmxpbmsoVk0mIHZtKQogewogICAgIGlmIChtX2NhbGxMaW5rSW5mbykgewot
ICAgICAgICBpZiAoT3B0aW9uczo6c2hvd0Rpc2Fzc2VtYmx5KCkpCisgICAgICAgIGlmIChPcHRp
b25zOjpkdW1wRGlzYXNzZW1ibHkoKSkKICAgICAgICAgICAgIGRhdGFMb2coIlVubGlua2luZyBw
b2x5bW9ycGhpYyBjYWxsIGF0ICIsIG1fY2FsbExpbmtJbmZvLT5jYWxsUmV0dXJuTG9jYXRpb24o
KSwgIiwgIiwgbV9jYWxsTGlua0luZm8tPmNvZGVPcmlnaW4oKSwgIlxuIik7CiAKICAgICAgICAg
bV9jYWxsTGlua0luZm8tPnVubGluayh2bSk7CkBAIC01Niw3ICs1Niw3IEBAIHZvaWQgUG9seW1v
cnBoaWNDYWxsTm9kZTo6dW5saW5rKFZNJiB2bSkKIAogdm9pZCBQb2x5bW9ycGhpY0NhbGxOb2Rl
OjpjbGVhckNhbGxMaW5rSW5mbygpCiB7Ci0gICAgaWYgKE9wdGlvbnM6OnNob3dEaXNhc3NlbWJs
eSgpKQorICAgIGlmIChPcHRpb25zOjpkdW1wRGlzYXNzZW1ibHkoKSkKICAgICAgICAgZGF0YUxv
ZygiQ2xlYXJpbmcgY2FsbCBsaW5rIGluZm8gZm9yIHBvbHltb3JwaGljIGNhbGwgYXQgIiwgbV9j
YWxsTGlua0luZm8tPmNhbGxSZXR1cm5Mb2NhdGlvbigpLCAiLCAiLCBtX2NhbGxMaW5rSW5mby0+
Y29kZU9yaWdpbigpLCAiXG4iKTsKIAogICAgIG1fY2FsbExpbmtJbmZvID0gbnVsbHB0cjsKQEAg
LTc2LDcgKzc2LDcgQEAgUG9seW1vcnBoaWNDYWxsU3R1YlJvdXRpbmU6OlBvbHltb3JwaGljQwog
ewogICAgIGZvciAoUG9seW1vcnBoaWNDYWxsQ2FzZSBjYWxsQ2FzZSA6IGNhc2VzKSB7CiAgICAg
ICAgIG1fdmFyaWFudHMuYXBwZW5kKFdyaXRlQmFycmllcjxKU0NlbGw+KHZtLCBvd25lciwgY2Fs
bENhc2UudmFyaWFudCgpLnJhd0NhbGxlZUNlbGwoKSkpOwotICAgICAgICBpZiAoc2hvdWxkU2hv
d0Rpc2Fzc2VtYmx5Rm9yKGNhbGxlckZyYW1lLT5jb2RlQmxvY2soKSkpCisgICAgICAgIGlmIChz
aG91bGREdW1wRGlzYXNzZW1ibHlGb3IoY2FsbGVyRnJhbWUtPmNvZGVCbG9jaygpKSkKICAgICAg
ICAgICAgIGRhdGFMb2coIkxpbmtpbmcgcG9seW1vcnBoaWMgY2FsbCBpbiAiLCAqY2FsbGVyRnJh
bWUtPmNvZGVCbG9jaygpLCAiIGF0ICIsIGNhbGxlckZyYW1lLT5jb2RlT3JpZ2luKCksICIgdG8g
IiwgY2FsbENhc2UudmFyaWFudCgpLCAiLCBjb2RlQmxvY2sgPSAiLCBwb2ludGVyRHVtcChjYWxs
Q2FzZS5jb2RlQmxvY2soKSksICJcbiIpOwogICAgICAgICBpZiAoQ29kZUJsb2NrKiBjb2RlQmxv
Y2sgPSBjYWxsQ2FzZS5jb2RlQmxvY2soKSkKICAgICAgICAgICAgIGNvZGVCbG9jay0+bGlua0lu
Y29taW5nUG9seW1vcnBoaWNDYWxsKGNhbGxlckZyYW1lLCBtX2NhbGxOb2Rlcy5hZGQoJmluZm8p
KTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvUmVwYXRjaC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkocmV2aXNpb24gMTkx
MDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTUwLDcgKzU1MCw3IEBAIHZvaWQgbGlua0ZvcigKICAgICBBU1NFUlQoIWNhbGxM
aW5rSW5mby5pc0xpbmtlZCgpKTsKICAgICBjYWxsTGlua0luZm8uc2V0Q2FsbGVlKGV4ZWMtPmNh
bGxlckZyYW1lKCktPnZtKCksIGNhbGxMaW5rSW5mby5ob3RQYXRoQmVnaW4oKSwgY2FsbGVyQ29k
ZUJsb2NrLCBjYWxsZWUpOwogICAgIGNhbGxMaW5rSW5mby5zZXRMYXN0U2VlbkNhbGxlZShleGVj
LT5jYWxsZXJGcmFtZSgpLT52bSgpLCBjYWxsZXJDb2RlQmxvY2ssIGNhbGxlZSk7Ci0gICAgaWYg
KHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihjYWxsZXJDb2RlQmxvY2spKQorICAgIGlmIChzaG91
bGREdW1wRGlzYXNzZW1ibHlGb3IoY2FsbGVyQ29kZUJsb2NrKSkKICAgICAgICAgZGF0YUxvZygi
TGlua2luZyBjYWxsIGluICIsICpjYWxsZXJDb2RlQmxvY2ssICIgYXQgIiwgY2FsbExpbmtJbmZv
LmNvZGVPcmlnaW4oKSwgIiB0byAiLCBwb2ludGVyRHVtcChjYWxsZWVDb2RlQmxvY2spLCAiLCBl
bnRyeXBvaW50IGF0ICIsIGNvZGVQdHIsICJcbiIpOwogICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBh
dGNoTmVhckNhbGwoY2FsbExpbmtJbmZvLmhvdFBhdGhPdGhlcigpLCBDb2RlTG9jYXRpb25MYWJl
bChjb2RlUHRyKSk7CiAgICAgCkBAIC01OTAsNyArNTkwLDcgQEAgc3RhdGljIHZvaWQgcmV2ZXJ0
Q2FsbChWTSogdm0sIENhbGxMaW5rSQogCiB2b2lkIHVubGlua0ZvcihWTSYgdm0sIENhbGxMaW5r
SW5mbyYgY2FsbExpbmtJbmZvKQogewotICAgIGlmIChPcHRpb25zOjpzaG93RGlzYXNzZW1ibHko
KSkKKyAgICBpZiAoT3B0aW9uczo6ZHVtcERpc2Fzc2VtYmx5KCkpCiAgICAgICAgIGRhdGFMb2co
IlVubGlua2luZyBjYWxsIGZyb20gIiwgY2FsbExpbmtJbmZvLmNhbGxSZXR1cm5Mb2NhdGlvbigp
LCAiXG4iKTsKICAgICAKICAgICByZXZlcnRDYWxsKCZ2bSwgY2FsbExpbmtJbmZvLCB2bS5nZXRD
VElTdHViKGxpbmtDYWxsVGh1bmtHZW5lcmF0b3IpKTsKQEAgLTYwMiw3ICs2MDIsNyBAQCB2b2lk
IGxpbmtWaXJ0dWFsRm9yKAogICAgIENvZGVCbG9jayogY2FsbGVyQ29kZUJsb2NrID0gZXhlYy0+
Y2FsbGVyRnJhbWUoKS0+Y29kZUJsb2NrKCk7CiAgICAgVk0qIHZtID0gY2FsbGVyQ29kZUJsb2Nr
LT52bSgpOwogCi0gICAgaWYgKHNob3VsZFNob3dEaXNhc3NlbWJseUZvcihjYWxsZXJDb2RlQmxv
Y2spKQorICAgIGlmIChzaG91bGREdW1wRGlzYXNzZW1ibHlGb3IoY2FsbGVyQ29kZUJsb2NrKSkK
ICAgICAgICAgZGF0YUxvZygiTGlua2luZyB2aXJ0dWFsIGNhbGwgYXQgIiwgKmNhbGxlckNvZGVC
bG9jaywgIiAiLCBleGVjLT5jYWxsZXJGcmFtZSgpLT5jb2RlT3JpZ2luKCksICJcbiIpOwogICAg
IAogICAgIE1hY3JvQXNzZW1ibGVyQ29kZVJlZiB2aXJ0dWFsVGh1bmsgPSB2aXJ0dWFsVGh1bmtG
b3Iodm0sIGNhbGxMaW5rSW5mbyk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvbGx2bS9J
bml0aWFsaXplTExWTS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2xs
dm0vSW5pdGlhbGl6ZUxMVk0uY3BwCShyZXZpc2lvbiAxOTEwMjUpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvbGx2bS9Jbml0aWFsaXplTExWTS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxLDIz
ICs0MSwyMyBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplTExWTUltcGwoKQogewogICAgIGNvbnN0
IGJvb2wgdmVyYm9zZSA9CiAgICAgICAgIE9wdGlvbnM6OnZlcmJvc2VGVExDb21waWxhdGlvbigp
Ci0gICAgICAgIHx8IE9wdGlvbnM6OnNob3dGVExEaXNhc3NlbWJseSgpCisgICAgICAgIHx8IE9w
dGlvbnM6OmR1bXBGVExEaXNhc3NlbWJseSgpCiAgICAgICAgIHx8IE9wdGlvbnM6OnZlcmJvc2VG
VExGYWlsdXJlKCkKICAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9zZUNvbXBpbGF0aW9uKCkKLSAg
ICAgICAgfHwgT3B0aW9uczo6c2hvd0RGR0Rpc2Fzc2VtYmx5KCkKLSAgICAgICAgfHwgT3B0aW9u
czo6c2hvd0Rpc2Fzc2VtYmx5KCk7CisgICAgICAgIHx8IE9wdGlvbnM6OmR1bXBERkdEaXNhc3Nl
bWJseSgpCisgICAgICAgIHx8IE9wdGlvbnM6OmR1bXBEaXNhc3NlbWJseSgpOwogICAgIAogICAg
IExMVk1Jbml0aWFsaXplckZ1bmN0aW9uIGluaXRpYWxpemVyID0gZ2V0TExWTUluaXRpYWxpemVy
RnVuY3Rpb24odmVyYm9zZSk7CiAgICAgaWYgKCFpbml0aWFsaXplcikKICAgICAgICAgcmV0dXJu
OwogICAgIAotICAgIGJvb2wgZW5hYmxlRmFzdElTZWwgPSBPcHRpb25zOjplbmFibGVMTFZNRmFz
dElTZWwoKTsKKyAgICBib29sIGVuYWJsZUZhc3RJU2VsID0gT3B0aW9uczo6dXNlTExWTUZhc3RJ
U2VsKCk7CiAgICAgbGx2bSA9IGluaXRpYWxpemVyKFdURkxvZ0Fsd2F5c0FuZENyYXNoLCAmZW5h
YmxlRmFzdElTZWwpOwogICAgIGlmICghbGx2bSkgewogICAgICAgICBpZiAodmVyYm9zZSkKICAg
ICAgICAgICAgIGRhdGFMb2coIkxMVk0gaW5pdGlsaXphdGlvbiBmYWlsZWQuXG4iKTsKICAgICB9
Ci0gICAgaWYgKE9wdGlvbnM6OmVuYWJsZUxMVk1GYXN0SVNlbCgpICYmICFlbmFibGVGYXN0SVNl
bCkgeworICAgIGlmIChPcHRpb25zOjp1c2VMTFZNRmFzdElTZWwoKSAmJiAhZW5hYmxlRmFzdElT
ZWwpIHsKICAgICAgICAgaWYgKHZlcmJvc2UpCiAgICAgICAgICAgICBkYXRhTG9nKCJGYXN0IElT
ZWwgcmVxdWVzdGVkIGJ1dCBMTFZNIG5vdCBuZXcgZW5vdWdoLlxuIik7CiAgICAgfQpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uRnV6ei5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uRnV6ei5jcHAJKHJl
dmlzaW9uIDE5MTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0V4Y2VwdGlv
bkZ1enouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOCw3ICszOCw3IEBAIHVuc2lnbmVkIG51bWJl
ck9mRXhjZXB0aW9uRnV6ekNoZWNrcygpIHsKIC8vIENhbGwgdGhpcyBvbmx5IGlmIHlvdSBrbm93
IHRoYXQgZXhjZXB0aW9uIGZ1enppbmcgaXMgZW5hYmxlZC4KIHZvaWQgZG9FeGNlcHRpb25GdXp6
aW5nKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgY2hhciogd2hlcmUsIHZvaWQqIHJldHVyblBDKQog
ewotICAgIEFTU0VSVChPcHRpb25zOjplbmFibGVFeGNlcHRpb25GdXp6KCkpOworICAgIEFTU0VS
VChPcHRpb25zOjp1c2VFeGNlcHRpb25GdXp6KCkpOwogCiAgICAgRGVmZXJHQ0ZvckFXaGlsZSBk
ZWZlckdDKGV4ZWMtPnZtKCkuaGVhcCk7CiAgICAgCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9FeGNlcHRpb25GdXp6LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvRXhjZXB0aW9uRnV6ei5oCShyZXZpc2lvbiAxOTEwMjUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9FeGNlcHRpb25GdXp6LmgJKHdvcmtpbmcgY29weSkK
QEAgLTM4LDcgKzM4LDcgQEAgdm9pZCBkb0V4Y2VwdGlvbkZ1enppbmcoRXhlY1N0YXRlKiBleGVj
LAogLy8gVGhpcyBpcyB3aGF0IHlvdSBzaG91bGQgY2FsbCBpZiB5b3UgZG9uJ3Qga25vdyBpZiBm
dXp6aW5nIGlzIGVuYWJsZWQuCiBBTFdBWVNfSU5MSU5FIHZvaWQgZG9FeGNlcHRpb25GdXp6aW5n
SWZFbmFibGVkKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgY2hhciogd2hlcmUsIHZvaWQqIHJldHVy
blBDKQogewotICAgIGlmIChMSUtFTFkoIU9wdGlvbnM6OmVuYWJsZUV4Y2VwdGlvbkZ1enooKSkp
CisgICAgaWYgKExJS0VMWSghT3B0aW9uczo6dXNlRXhjZXB0aW9uRnV6eigpKSkKICAgICAgICAg
cmV0dXJuOwogICAgIGRvRXhjZXB0aW9uRnV6emluZyhleGVjLCB3aGVyZSwgcmV0dXJuUEMpOwog
fQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2Jq
ZWN0LmNwcAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNHbG9iYWxPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NTIsNyArNTUyLDcgQEAg
cHV0RGlyZWN0V2l0aG91dFRyYW5zaXRpb24odm0sIHZtLnByb3BlcgogICAgIEpTQ29uc29sZSog
Y29uc29sZU9iamVjdCA9IEpTQ29uc29sZTo6Y3JlYXRlKHZtLCBtX2NvbnNvbGVTdHJ1Y3R1cmUu
Z2V0KCkpOwogICAgIHB1dERpcmVjdFdpdGhvdXRUcmFuc2l0aW9uKHZtLCBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKGV4ZWMsICJjb25zb2xlIiksIGNvbnNvbGVPYmplY3QsIERvbnRFbnVtKTsKIAot
ICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjplbmFibGVEb2xsYXJWTSgpKSkgeworICAgIGlmIChV
TkxJS0VMWShPcHRpb25zOjp1c2VEb2xsYXJWTSgpKSkgewogICAgICAgICBKU0RvbGxhclZNUHJv
dG90eXBlKiBkb2xsYXJWTVByb3RvdHlwZSA9IEpTRG9sbGFyVk1Qcm90b3R5cGU6OmNyZWF0ZSh2
bSwgdGhpcywgSlNEb2xsYXJWTVByb3RvdHlwZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBt
X29iamVjdFByb3RvdHlwZS5nZXQoKSkpOwogICAgICAgICBtX2RvbGxhclZNU3RydWN0dXJlLnNl
dCh2bSwgdGhpcywgSlNEb2xsYXJWTTo6Y3JlYXRlU3RydWN0dXJlKHZtLCB0aGlzLCBkb2xsYXJW
TVByb3RvdHlwZSkpOwogICAgICAgICBKU0RvbGxhclZNKiBkb2xsYXJWTSA9IEpTRG9sbGFyVk06
OmNyZWF0ZSh2bSwgbV9kb2xsYXJWTVN0cnVjdHVyZS5nZXQoKSk7CkluZGV4OiBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmNwcAkocmV2aXNpb24gMTkxMDI1KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI2Miw3ICsyNjIsNyBAQCBzdGF0aWMgdm9pZCByZWNvbXB1dGVEZXBlbmRlbnRPcHRpb25zKCkK
ICAgICBPcHRpb25zOjp1c2VSZWdFeHBKSVQoKSA9IGZhbHNlOwogI2VuZGlmCiAjaWYgIUVOQUJM
RShDT05DVVJSRU5UX0pJVCkKLSAgICBPcHRpb25zOjplbmFibGVDb25jdXJyZW50SklUKCkgPSBm
YWxzZTsKKyAgICBPcHRpb25zOjp1c2VDb25jdXJyZW50SklUKCkgPSBmYWxzZTsKICNlbmRpZgog
I2lmICFFTkFCTEUoREZHX0pJVCkKICAgICBPcHRpb25zOjp1c2VERkdKSVQoKSA9IGZhbHNlOwpA
QCAtMjc2LDkgKzI3Niw5IEBAIHN0YXRpYyB2b2lkIHJlY29tcHV0ZURlcGVuZGVudE9wdGlvbnMo
KQogICAgIGlmICghTWFjcm9Bc3NlbWJsZXJYODY6OnN1cHBvcnRzRmxvYXRpbmdQb2ludCgpKQog
ICAgICAgICBPcHRpb25zOjp1c2VKSVQoKSA9IGZhbHNlOwogI2VuZGlmCi0gICAgaWYgKE9wdGlv
bnM6OnNob3dEaXNhc3NlbWJseSgpCi0gICAgICAgIHx8IE9wdGlvbnM6OnNob3dERkdEaXNhc3Nl
bWJseSgpCi0gICAgICAgIHx8IE9wdGlvbnM6OnNob3dGVExEaXNhc3NlbWJseSgpCisgICAgaWYg
KE9wdGlvbnM6OmR1bXBEaXNhc3NlbWJseSgpCisgICAgICAgIHx8IE9wdGlvbnM6OmR1bXBERkdE
aXNhc3NlbWJseSgpCisgICAgICAgIHx8IE9wdGlvbnM6OmR1bXBGVExEaXNhc3NlbWJseSgpCiAg
ICAgICAgIHx8IE9wdGlvbnM6OmR1bXBCeXRlY29kZUF0REZHVGltZSgpCiAgICAgICAgIHx8IE9w
dGlvbnM6OmR1bXBHcmFwaEF0RWFjaFBoYXNlKCkKICAgICAgICAgfHwgT3B0aW9uczo6dmVyYm9z
ZUNvbXBpbGF0aW9uKCkKQEAgLTMwNiwxMSArMzA2LDExIEBAIHN0YXRpYyB2b2lkIHJlY29tcHV0
ZURlcGVuZGVudE9wdGlvbnMoKQogICAgICAgICBPcHRpb25zOjp0aHJlc2hvbGRGb3JGVExPcHRp
bWl6ZUFmdGVyV2FybVVwKCkgPSAyMDsKICAgICAgICAgT3B0aW9uczo6dGhyZXNob2xkRm9yRlRM
T3B0aW1pemVTb29uKCkgPSAyMDsKICAgICAgICAgT3B0aW9uczo6bWF4aW11bUV2YWxDYWNoZWFi
bGVTb3VyY2VMZW5ndGgoKSA9IDE1MDAwMDsKLSAgICAgICAgT3B0aW9uczo6ZW5hYmxlQ29uY3Vy
cmVudEpJVCgpID0gZmFsc2U7CisgICAgICAgIE9wdGlvbnM6OnVzZUNvbmN1cnJlbnRKSVQoKSA9
IGZhbHNlOwogICAgIH0KLSAgICBpZiAoT3B0aW9uczo6ZW5hYmxlTWF4aW1hbEZsdXNoSW5zZXJ0
aW9uUGhhc2UoKSkgewotICAgICAgICBPcHRpb25zOjplbmFibGVPU1JFbnRyeVRvREZHKCkgPSBm
YWxzZTsKLSAgICAgICAgT3B0aW9uczo6ZW5hYmxlT1NSRW50cnlUb0ZUTCgpID0gZmFsc2U7Cisg
ICAgaWYgKE9wdGlvbnM6OnVzZU1heGltYWxGbHVzaEluc2VydGlvblBoYXNlKCkpIHsKKyAgICAg
ICAgT3B0aW9uczo6dXNlT1NSRW50cnlUb0RGRygpID0gZmFsc2U7CisgICAgICAgIE9wdGlvbnM6
OnVzZU9TUkVudHJ5VG9GVEwoKSA9IGZhbHNlOwogICAgIH0KIAogICAgIC8vIENvbXB1dGUgdGhl
IG1heGltdW0gdmFsdWUgb2YgdGhlIHJlb3B0aW1pemF0aW9uIHJldHJ5IGNvdW50ZXIuIFRoaXMg
aXMgc2ltcGx5CkBAIC0zNDIsNyArMzQyLDcgQEAgdm9pZCBPcHRpb25zOjppbml0aWFsaXplKCkK
ICAgICAKICAgICAgICAgICAgICAgICAvLyBJdCAqcHJvYmFibHkqIG1ha2VzIHNlbnNlIGZvciBv
dGhlciBwbGF0Zm9ybXMgdG8gZW5hYmxlIHRoaXMuCiAjaWYgUExBVEZPUk0oSU9TKSAmJiBDUFUo
QVJNNjQpCi0gICAgICAgICAgICAgICAgZW5hYmxlTExWTUZhc3RJU2VsKCkgPSB0cnVlOworICAg
ICAgICAgICAgICAgIHVzZUxMVk1GYXN0SVNlbCgpID0gdHJ1ZTsKICNlbmRpZgogICAgICAgICAK
ICAgICAgICAgICAgIC8vIEFsbG93IGVudmlyb25tZW50IHZhcnMgdG8gb3ZlcnJpZGUgb3B0aW9u
cyBpZiBhcHBsaWNhYmxlLgpAQCAtMzk2LDggKzM5Niw4IEBAIHZvaWQgT3B0aW9uczo6aW5pdGlh
bGl6ZSgpCiAKIHZvaWQgT3B0aW9uczo6ZHVtcE9wdGlvbnNJZk5lZWRlZCgpCiB7Ci0gICAgaWYg
KE9wdGlvbnM6OnNob3dPcHRpb25zKCkpIHsKLSAgICAgICAgRHVtcExldmVsIGxldmVsID0gc3Rh
dGljX2Nhc3Q8RHVtcExldmVsPihPcHRpb25zOjpzaG93T3B0aW9ucygpKTsKKyAgICBpZiAoT3B0
aW9uczo6ZHVtcE9wdGlvbnMoKSkgeworICAgICAgICBEdW1wTGV2ZWwgbGV2ZWwgPSBzdGF0aWNf
Y2FzdDxEdW1wTGV2ZWw+KE9wdGlvbnM6OmR1bXBPcHRpb25zKCkpOwogICAgICAgICBpZiAobGV2
ZWwgPiBEdW1wTGV2ZWw6OlZlcmJvc2UpCiAgICAgICAgICAgICBsZXZlbCA9IER1bXBMZXZlbDo6
VmVyYm9zZTsKICAgICAgICAgICAgIApAQCAtNDE3LDcgKzQxNyw3IEBAIHZvaWQgT3B0aW9uczo6
ZHVtcE9wdGlvbnNJZk5lZWRlZCgpCiAgICAgICAgIH0KIAogICAgICAgICBTdHJpbmdCdWlsZGVy
IGJ1aWxkZXI7Ci0gICAgICAgIGR1bXBBbGxPcHRpb25zKGJ1aWxkZXIsIGxldmVsLCB0aXRsZSwg
bnVsbHB0ciwgIiAgICIsICJcbiIsIFNob3dEZWZhdWx0cyk7CisgICAgICAgIGR1bXBBbGxPcHRp
b25zKGJ1aWxkZXIsIGxldmVsLCB0aXRsZSwgbnVsbHB0ciwgIiAgICIsICJcbiIsIER1bXBEZWZh
dWx0cyk7CiAgICAgICAgIGRhdGFMb2coYnVpbGRlci50b1N0cmluZygpKTsKICAgICB9CiB9CkBA
IC01MjgsNyArNTI4LDcgQEAgYm9vbCBPcHRpb25zOjpzZXRPcHRpb24oY29uc3QgY2hhciogYXJn
KQogfQogCiB2b2lkIE9wdGlvbnM6OmR1bXBBbGxPcHRpb25zKFN0cmluZ0J1aWxkZXImIGJ1aWxk
ZXIsIER1bXBMZXZlbCBsZXZlbCwgY29uc3QgY2hhciogdGl0bGUsCi0gICAgY29uc3QgY2hhciog
c2VwYXJhdG9yLCBjb25zdCBjaGFyKiBvcHRpb25IZWFkZXIsIGNvbnN0IGNoYXIqIG9wdGlvbkZv
b3RlciwgU2hvd0RlZmF1bHRzT3B0aW9uIHNob3dEZWZhdWx0c09wdGlvbikKKyAgICBjb25zdCBj
aGFyKiBzZXBhcmF0b3IsIGNvbnN0IGNoYXIqIG9wdGlvbkhlYWRlciwgY29uc3QgY2hhciogb3B0
aW9uRm9vdGVyLCBEdW1wRGVmYXVsdHNPcHRpb24gZHVtcERlZmF1bHRzT3B0aW9uKQogewogICAg
IGlmICh0aXRsZSkgewogICAgICAgICBidWlsZGVyLmFwcGVuZCh0aXRsZSk7CkBAIC01MzgsMjQg
KzUzOCwyNCBAQCB2b2lkIE9wdGlvbnM6OmR1bXBBbGxPcHRpb25zKFN0cmluZ0J1aWxkCiAgICAg
Zm9yIChpbnQgaWQgPSAwOyBpZCA8IG51bWJlck9mT3B0aW9uczsgaWQrKykgewogICAgICAgICBp
ZiAoc2VwYXJhdG9yICYmIGlkKQogICAgICAgICAgICAgYnVpbGRlci5hcHBlbmQoc2VwYXJhdG9y
KTsKLSAgICAgICAgZHVtcE9wdGlvbihidWlsZGVyLCBsZXZlbCwgc3RhdGljX2Nhc3Q8T3B0aW9u
SUQ+KGlkKSwgb3B0aW9uSGVhZGVyLCBvcHRpb25Gb290ZXIsIHNob3dEZWZhdWx0c09wdGlvbik7
CisgICAgICAgIGR1bXBPcHRpb24oYnVpbGRlciwgbGV2ZWwsIHN0YXRpY19jYXN0PE9wdGlvbklE
PihpZCksIG9wdGlvbkhlYWRlciwgb3B0aW9uRm9vdGVyLCBkdW1wRGVmYXVsdHNPcHRpb24pOwog
ICAgIH0KIH0KIAogdm9pZCBPcHRpb25zOjpkdW1wQWxsT3B0aW9uc0luQUxpbmUoU3RyaW5nQnVp
bGRlciYgYnVpbGRlcikKIHsKLSAgICBkdW1wQWxsT3B0aW9ucyhidWlsZGVyLCBEdW1wTGV2ZWw6
OkFsbCwgbnVsbHB0ciwgIiAiLCBudWxscHRyLCBudWxscHRyLCBEb250U2hvd0RlZmF1bHRzKTsK
KyAgICBkdW1wQWxsT3B0aW9ucyhidWlsZGVyLCBEdW1wTGV2ZWw6OkFsbCwgbnVsbHB0ciwgIiAi
LCBudWxscHRyLCBudWxscHRyLCBEb250RHVtcERlZmF1bHRzKTsKIH0KIAogdm9pZCBPcHRpb25z
OjpkdW1wQWxsT3B0aW9ucyhGSUxFKiBzdHJlYW0sIER1bXBMZXZlbCBsZXZlbCwgY29uc3QgY2hh
ciogdGl0bGUpCiB7CiAgICAgU3RyaW5nQnVpbGRlciBidWlsZGVyOwotICAgIGR1bXBBbGxPcHRp
b25zKGJ1aWxkZXIsIGxldmVsLCB0aXRsZSwgbnVsbHB0ciwgIiAgICIsICJcbiIsIFNob3dEZWZh
dWx0cyk7CisgICAgZHVtcEFsbE9wdGlvbnMoYnVpbGRlciwgbGV2ZWwsIHRpdGxlLCBudWxscHRy
LCAiICAgIiwgIlxuIiwgRHVtcERlZmF1bHRzKTsKICAgICBmcHJpbnRmKHN0cmVhbSwgIiVzIiwg
YnVpbGRlci50b1N0cmluZygpLmFzY2lpKCkuZGF0YSgpKTsKIH0KIAogdm9pZCBPcHRpb25zOjpk
dW1wT3B0aW9uKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIER1bXBMZXZlbCBsZXZlbCwgT3B0aW9u
SUQgaWQsCi0gICAgY29uc3QgY2hhciogaGVhZGVyLCBjb25zdCBjaGFyKiBmb290ZXIsIFNob3dE
ZWZhdWx0c09wdGlvbiBzaG93RGVmYXVsdHNPcHRpb24pCisgICAgY29uc3QgY2hhciogaGVhZGVy
LCBjb25zdCBjaGFyKiBmb290ZXIsIER1bXBEZWZhdWx0c09wdGlvbiBkdW1wRGVmYXVsdHNPcHRp
b24pCiB7CiAgICAgaWYgKGlkID49IG51bWJlck9mT3B0aW9ucykKICAgICAgICAgcmV0dXJuOyAv
LyBJbGxlZ2FsIG9wdGlvbi4KQEAgLTU3Myw3ICs1NzMsNyBAQCB2b2lkIE9wdGlvbnM6OmR1bXBP
cHRpb24oU3RyaW5nQnVpbGRlciYgCiAgICAgYnVpbGRlci5hcHBlbmQoJz0nKTsKICAgICBvcHRp
b24uZHVtcChidWlsZGVyKTsKIAotICAgIGlmICh3YXNPdmVycmlkZGVuICYmIChzaG93RGVmYXVs
dHNPcHRpb24gPT0gU2hvd0RlZmF1bHRzKSkgeworICAgIGlmICh3YXNPdmVycmlkZGVuICYmIChk
dW1wRGVmYXVsdHNPcHRpb24gPT0gRHVtcERlZmF1bHRzKSkgewogICAgICAgICBidWlsZGVyLmFw
cGVuZCgiIChkZWZhdWx0OiAiKTsKICAgICAgICAgb3B0aW9uLmRlZmF1bHRPcHRpb24oKS5kdW1w
KGJ1aWxkZXIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgiKSIpOwpJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIs
NyArMTAyLDcgQEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKIHR5cGVkZWYgY29u
c3QgY2hhciogb3B0aW9uU3RyaW5nOwogCiAjZGVmaW5lIEpTQ19PUFRJT05TKHYpIFwKLSAgICB2
KHVuc2lnbmVkLCBzaG93T3B0aW9ucywgMCwgInNob3dzIEpTQyBvcHRpb25zICgwID0gTm9uZSwg
MSA9IE92ZXJyaWRkZW4gb25seSwgMiA9IEFsbCwgMyA9IFZlcmJvc2UpIikgXAorICAgIHYodW5z
aWduZWQsIGR1bXBPcHRpb25zLCAwLCAiZHVtcHMgSlNDIG9wdGlvbnMgKDAgPSBOb25lLCAxID0g
T3ZlcnJpZGRlbiBvbmx5LCAyID0gQWxsLCAzID0gVmVyYm9zZSkiKSBcCiAgICAgXAogICAgIHYo
Ym9vbCwgdXNlTExJbnQsICB0cnVlLCAiYWxsb3dzIHRoZSBMTElOVCB0byBiZSB1c2VkIGlmIHRy
dWUiKSBcCiAgICAgdihib29sLCB1c2VKSVQsICAgIHRydWUsICJhbGxvd3MgdGhlIGJhc2VsaW5l
IEpJVCB0byBiZSB1c2VkIGlmIHRydWUiKSBcCkBAIC0xMzAsMTUgKzEzMCwxNSBAQCB0eXBlZGVm
IGNvbnN0IGNoYXIqIG9wdGlvblN0cmluZzsKICAgICB2KGJvb2wsIGZvcmNlRGVidWdnZXJCeXRl
Y29kZUdlbmVyYXRpb24sIGZhbHNlLCBudWxscHRyKSBcCiAgICAgdihib29sLCBmb3JjZVByb2Zp
bGVyQnl0ZWNvZGVHZW5lcmF0aW9uLCBmYWxzZSwgbnVsbHB0cikgXAogICAgIFwKLSAgICB2KGJv
b2wsIGVuYWJsZUZ1bmN0aW9uRG90QXJndW1lbnRzLCB0cnVlLCBudWxscHRyKSBcCi0gICAgdihi
b29sLCBlbmFibGVUYWlsQ2FsbHMsIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihib29sLCB1c2VG
dW5jdGlvbkRvdEFyZ3VtZW50cywgdHJ1ZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgdXNlVGFp
bENhbGxzLCBmYWxzZSwgbnVsbHB0cikgXAogICAgIFwKLSAgICAvKiBzaG93RGlzYXNzZW1ibHkg
aW1wbGllcyBzaG93REZHRGlzYXNzZW1ibHkuICovIFwKLSAgICB2KGJvb2wsIHNob3dEaXNhc3Nl
bWJseSwgZmFsc2UsICJkdW1wcyBkaXNhc3NlbWJseSBvZiBhbGwgSklUIGNvbXBpbGVkIGNvZGUg
dXBvbiBjb21waWxhdGlvbiIpIFwKKyAgICAvKiBkdW1wRGlzYXNzZW1ibHkgaW1wbGllcyBkdW1w
REZHRGlzYXNzZW1ibHkuICovIFwKKyAgICB2KGJvb2wsIGR1bXBEaXNhc3NlbWJseSwgZmFsc2Us
ICJkdW1wcyBkaXNhc3NlbWJseSBvZiBhbGwgSklUIGNvbXBpbGVkIGNvZGUgdXBvbiBjb21waWxh
dGlvbiIpIFwKICAgICB2KGJvb2wsIGFzeW5jRGlzYXNzZW1ibHksIGZhbHNlLCBudWxscHRyKSBc
Ci0gICAgdihib29sLCBzaG93REZHRGlzYXNzZW1ibHksIGZhbHNlLCAiZHVtcHMgZGlzYXNzZW1i
bHkgb2YgREZHIGZ1bmN0aW9uIHVwb24gY29tcGlsYXRpb24iKSBcCi0gICAgdihib29sLCBzaG93
RlRMRGlzYXNzZW1ibHksIGZhbHNlLCAiZHVtcHMgZGlzYXNzZW1ibHkgb2YgRlRMIGZ1bmN0aW9u
IHVwb24gY29tcGlsYXRpb24iKSBcCi0gICAgdihib29sLCBzaG93QWxsREZHTm9kZXMsIGZhbHNl
LCBudWxscHRyKSBcCisgICAgdihib29sLCBkdW1wREZHRGlzYXNzZW1ibHksIGZhbHNlLCAiZHVt
cHMgZGlzYXNzZW1ibHkgb2YgREZHIGZ1bmN0aW9uIHVwb24gY29tcGlsYXRpb24iKSBcCisgICAg
dihib29sLCBkdW1wRlRMRGlzYXNzZW1ibHksIGZhbHNlLCAiZHVtcHMgZGlzYXNzZW1ibHkgb2Yg
RlRMIGZ1bmN0aW9uIHVwb24gY29tcGlsYXRpb24iKSBcCisgICAgdihib29sLCBkdW1wQWxsREZH
Tm9kZXMsIGZhbHNlLCBudWxscHRyKSBcCiAgICAgdihvcHRpb25SYW5nZSwgYnl0ZWNvZGVSYW5n
ZVRvREZHQ29tcGlsZSwgMCwgImJ5dGVjb2RlIHNpemUgcmFuZ2UgdG8gYWxsb3cgREZHIGNvbXBp
bGF0aW9uIG9uLCBlLmcuIDE6MTAwIikgXAogICAgIHYob3B0aW9uU3RyaW5nLCBkZmdXaGl0ZWxp
c3QsIG51bGxwdHIsICJmaWxlIHdpdGggbGlzdCBvZiBmdW5jdGlvbiBzaWduYXR1cmVzIHRvIGFs
bG93IERGRyBjb21waWxhdGlvbiBvbiIpIFwKICAgICB2KGJvb2wsIGR1bXBTb3VyY2VBdERGR1Rp
bWUsIGZhbHNlLCAiZHVtcHMgc291cmNlIGNvZGUgb2YgSlMgZnVuY3Rpb24gYmVpbmcgREZHIGNv
bXBpbGVkIikgXApAQCAtMTY2LDE1ICsxNjYsMTUgQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBvcHRp
b25TdHJpbmc7CiAgICAgdihib29sLCBhbHdheXNDb21wdXRlSGFzaCwgZmFsc2UsIG51bGxwdHIp
IFwKICAgICB2KGJvb2wsIHRlc3RUaGVGVEwsIGZhbHNlLCBudWxscHRyKSBcCiAgICAgdihib29s
LCB2ZXJib3NlU2FuaXRpemVTdGFjaywgZmFsc2UsIG51bGxwdHIpIFwKLSAgICB2KGJvb2wsIGFs
d2F5c0RvRnVsbENvbGxlY3Rpb24sIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihib29sLCB1c2VH
ZW5lcmF0aW9uYWxHQywgdHJ1ZSwgbnVsbHB0cikgXAogICAgIHYoYm9vbCwgZWFnZXJseVVwZGF0
ZVRvcENhbGxGcmFtZSwgZmFsc2UsIG51bGxwdHIpIFwKICAgICBcCi0gICAgdihib29sLCBlbmFi
bGVPU1JFbnRyeVRvREZHLCB0cnVlLCBudWxscHRyKSBcCi0gICAgdihib29sLCBlbmFibGVPU1JF
bnRyeVRvRlRMLCB0cnVlLCBudWxscHRyKSBcCisgICAgdihib29sLCB1c2VPU1JFbnRyeVRvREZH
LCB0cnVlLCBudWxscHRyKSBcCisgICAgdihib29sLCB1c2VPU1JFbnRyeVRvRlRMLCB0cnVlLCBu
dWxscHRyKSBcCiAgICAgXAogICAgIHYoYm9vbCwgdXNlRlRMSklULCB0cnVlLCAiYWxsb3dzIHRo
ZSBGVEwgSklUIHRvIGJlIHVzZWQgaWYgdHJ1ZSIpIFwKICAgICB2KGJvb2wsIHVzZUZUTFRCQUEs
IHRydWUsIG51bGxwdHIpIFwKLSAgICB2KGJvb2wsIGVuYWJsZUxMVk1GYXN0SVNlbCwgZmFsc2Us
IG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIHVzZUxMVk1GYXN0SVNlbCwgZmFsc2UsIG51bGxwdHIp
IFwKICAgICB2KGJvb2wsIHVzZUxMVk1TbWFsbENvZGVNb2RlbCwgZmFsc2UsIG51bGxwdHIpIFwK
ICAgICB2KGJvb2wsIGR1bXBMTFZNSVIsIGZhbHNlLCBudWxscHRyKSBcCiAgICAgdihib29sLCB2
YWxpZGF0ZUZUTE9TUkV4aXRMaXZlbmVzcywgZmFsc2UsIG51bGxwdHIpIFwKQEAgLTE5MCwzMyAr
MTkwLDMzIEBAIHR5cGVkZWYgY29uc3QgY2hhciogb3B0aW9uU3RyaW5nOwogICAgIHYoYm9vbCwg
ZnRsQ3Jhc2hlc0lmQ2FudEluaXRpYWxpemVMTFZNLCBmYWxzZSwgbnVsbHB0cikgXAogICAgIHYo
Ym9vbCwgY2xvYmJlckFsbFJlZ3NJbkZUTElDU2xvd1BhdGgsICFBU1NFUlRfRElTQUJMRUQsIG51
bGxwdHIpIFwKICAgICB2KGJvb2wsIGFzc3VtZUFsbFJlZ3NJbkZUTElDQXJlTGl2ZSwgZmFsc2Us
IG51bGxwdHIpIFwKLSAgICB2KGJvb2wsIGVuYWJsZUFjY2Vzc0lubGluaW5nLCB0cnVlLCBudWxs
cHRyKSBcCisgICAgdihib29sLCB1c2VBY2Nlc3NJbmxpbmluZywgdHJ1ZSwgbnVsbHB0cikgXAog
ICAgIHYodW5zaWduZWQsIG1heEFjY2Vzc1ZhcmlhbnRMaXN0U2l6ZSwgOCwgbnVsbHB0cikgXAot
ICAgIHYoYm9vbCwgZW5hYmxlUG9seXZhcmlhbnREZXZpcnR1YWxpemF0aW9uLCB0cnVlLCBudWxs
cHRyKSBcCi0gICAgdihib29sLCBlbmFibGVQb2x5bW9ycGhpY0FjY2Vzc0lubGluaW5nLCB0cnVl
LCBudWxscHRyKSBcCi0gICAgdihib29sLCBlbmFibGVQb2x5bW9ycGhpY0NhbGxJbmxpbmluZywg
dHJ1ZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgdXNlUG9seXZhcmlhbnREZXZpcnR1YWxpemF0
aW9uLCB0cnVlLCBudWxscHRyKSBcCisgICAgdihib29sLCB1c2VQb2x5bW9ycGhpY0FjY2Vzc0lu
bGluaW5nLCB0cnVlLCBudWxscHRyKSBcCisgICAgdihib29sLCB1c2VQb2x5bW9ycGhpY0NhbGxJ
bmxpbmluZywgdHJ1ZSwgbnVsbHB0cikgXAogICAgIHYodW5zaWduZWQsIG1heFBvbHltb3JwaGlj
Q2FsbFZhcmlhbnRMaXN0U2l6ZSwgMTUsIG51bGxwdHIpIFwKICAgICB2KHVuc2lnbmVkLCBtYXhQ
b2x5bW9ycGhpY0NhbGxWYXJpYW50TGlzdFNpemVGb3JUb3BUaWVyLCA1LCBudWxscHRyKSBcCiAg
ICAgdih1bnNpZ25lZCwgbWF4UG9seW1vcnBoaWNDYWxsVmFyaWFudHNGb3JJbmxpbmluZywgNSwg
bnVsbHB0cikgXAogICAgIHYodW5zaWduZWQsIGZyZXF1ZW50Q2FsbFRocmVzaG9sZCwgMiwgbnVs
bHB0cikgXAogICAgIHYoZG91YmxlLCBtaW5pbXVtQ2FsbFRvS25vd25SYXRlLCAwLjUxLCBudWxs
cHRyKSBcCiAgICAgdihib29sLCBjcmVhdGVQcmVIZWFkZXJzLCB0cnVlLCBudWxscHRyKSBcCi0g
ICAgdihib29sLCBlbmFibGVNb3ZIaW50UmVtb3ZhbCwgdHJ1ZSwgbnVsbHB0cikgXAotICAgIHYo
Ym9vbCwgZW5hYmxlT2JqZWN0QWxsb2NhdGlvblNpbmtpbmcsIHRydWUsIG51bGxwdHIpIFwKLSAg
ICB2KGJvb2wsIGVuYWJsZUNvcHlCYXJyaWVyT3B0aW1pemF0aW9uLCB0cnVlLCBudWxscHRyKSBc
CisgICAgdihib29sLCB1c2VNb3ZIaW50UmVtb3ZhbCwgdHJ1ZSwgbnVsbHB0cikgXAorICAgIHYo
Ym9vbCwgdXNlT2JqZWN0QWxsb2NhdGlvblNpbmtpbmcsIHRydWUsIG51bGxwdHIpIFwKKyAgICB2
KGJvb2wsIHVzZUNvcHlCYXJyaWVyT3B0aW1pemF0aW9uLCB0cnVlLCBudWxscHRyKSBcCiAgICAg
XAotICAgIHYoYm9vbCwgZW5hYmxlQ29uY3VycmVudEpJVCwgdHJ1ZSwgImFsbG93cyB0aGUgREZH
IC8gRlRMIGNvbXBpbGF0aW9uIGluIHRocmVhZHMgb3RoZXIgdGhhbiB0aGUgZXhlY3V0aW5nIEpT
IHRocmVhZCIpIFwKKyAgICB2KGJvb2wsIHVzZUNvbmN1cnJlbnRKSVQsIHRydWUsICJhbGxvd3Mg
dGhlIERGRyAvIEZUTCBjb21waWxhdGlvbiBpbiB0aHJlYWRzIG90aGVyIHRoYW4gdGhlIGV4ZWN1
dGluZyBKUyB0aHJlYWQiKSBcCiAgICAgdih1bnNpZ25lZCwgbnVtYmVyT2ZERkdDb21waWxlclRo
cmVhZHMsIGNvbXB1dGVOdW1iZXJPZldvcmtlclRocmVhZHMoMiwgMikgLSAxLCBudWxscHRyKSBc
CiAgICAgdih1bnNpZ25lZCwgbnVtYmVyT2ZGVExDb21waWxlclRocmVhZHMsIGNvbXB1dGVOdW1i
ZXJPZldvcmtlclRocmVhZHMoOCwgMikgLSAxLCBudWxscHRyKSBcCiAgICAgdihpbnQzMiwgcHJp
b3JpdHlEZWx0YU9mREZHQ29tcGlsZXJUaHJlYWRzLCBjb21wdXRlUHJpb3JpdHlEZWx0YU9mV29y
a2VyVGhyZWFkcygtMSwgMCksIG51bGxwdHIpIFwKICAgICB2KGludDMyLCBwcmlvcml0eURlbHRh
T2ZGVExDb21waWxlclRocmVhZHMsIGNvbXB1dGVQcmlvcml0eURlbHRhT2ZXb3JrZXJUaHJlYWRz
KC0yLCAwKSwgbnVsbHB0cikgXAogICAgIFwKLSAgICB2KGJvb2wsIGVuYWJsZVByb2ZpbGVyLCBm
YWxzZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgdXNlUHJvZmlsZXIsIGZhbHNlLCBudWxscHRy
KSBcCiAgICAgXAogICAgIHYoYm9vbCwgZm9yY2VVRGlzODZEaXNhc3NlbWJsZXIsIGZhbHNlLCBu
dWxscHRyKSBcCiAgICAgdihib29sLCBmb3JjZUxMVk1EaXNhc3NlbWJsZXIsIGZhbHNlLCBudWxs
cHRyKSBcCiAgICAgXAotICAgIHYoYm9vbCwgZW5hYmxlQXJjaGl0ZWN0dXJlU3BlY2lmaWNPcHRp
bWl6YXRpb25zLCB0cnVlLCBudWxscHRyKSBcCisgICAgdihib29sLCB1c2VBcmNoaXRlY3R1cmVT
cGVjaWZpY09wdGltaXphdGlvbnMsIHRydWUsIG51bGxwdHIpIFwKICAgICBcCiAgICAgdihib29s
LCBicmVha09uVGhyb3csIGZhbHNlLCBudWxscHRyKSBcCiAgICAgXApAQCAtMjQwLDEwICsyNDAs
MTAgQEAgdHlwZWRlZiBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmc7CiAgICAgXAogICAgIHYodW5z
aWduZWQsIG1heGltdW1WYXJhcmdzRm9ySW5saW5pbmcsIDEwMCwgbnVsbHB0cikgXAogICAgIFwK
LSAgICB2KGJvb2wsIGVuYWJsZVBvbHl2YXJpYW50Q2FsbElubGluaW5nLCB0cnVlLCBudWxscHRy
KSBcCi0gICAgdihib29sLCBlbmFibGVQb2x5dmFyaWFudEJ5SWRJbmxpbmluZywgdHJ1ZSwgbnVs
bHB0cikgXAorICAgIHYoYm9vbCwgdXNlUG9seXZhcmlhbnRDYWxsSW5saW5pbmcsIHRydWUsIG51
bGxwdHIpIFwKKyAgICB2KGJvb2wsIHVzZVBvbHl2YXJpYW50QnlJZElubGluaW5nLCB0cnVlLCBu
dWxscHRyKSBcCiAgICAgXAotICAgIHYoYm9vbCwgZW5hYmxlTWF4aW1hbEZsdXNoSW5zZXJ0aW9u
UGhhc2UsIGZhbHNlLCAiU2V0dGluZyB0byB0cnVlIGVuYWJsZXMgdGhlIERGRydzIE1heGltYWxG
bHVzaEluc2VydGlvblBoYXNlIHRvIHJ1bi4iKSBcCisgICAgdihib29sLCB1c2VNYXhpbWFsRmx1
c2hJbnNlcnRpb25QaGFzZSwgZmFsc2UsICJTZXR0aW5nIHRvIHRydWUgYWxsb3dzIHRoZSBERkcn
cyBNYXhpbWFsRmx1c2hJbnNlcnRpb25QaGFzZSB0byBydW4uIikgXAogICAgIFwKICAgICB2KHVu
c2lnbmVkLCBtYXhpbXVtQmluYXJ5U3RyaW5nU3dpdGNoQ2FzZUxlbmd0aCwgNTAsIG51bGxwdHIp
IFwKICAgICB2KHVuc2lnbmVkLCBtYXhpbXVtQmluYXJ5U3RyaW5nU3dpdGNoVG90YWxMZW5ndGgs
IDIwMDAsIG51bGxwdHIpIFwKQEAgLTMwNiwzNSArMzA2LDM1IEBAIHR5cGVkZWYgY29uc3QgY2hh
ciogb3B0aW9uU3RyaW5nOwogICAgIHYodW5zaWduZWQsIGZvcmNlZFdlYWtSYW5kb21TZWVkLCAw
LCBudWxscHRyKSBcCiAgICAgXAogICAgIHYoYm9vbCwgdXNlWm9tYmllTW9kZSwgZmFsc2UsICJk
ZWJ1Z2dpbmcgb3B0aW9uIHRvIHNjcmliYmxlIG92ZXIgZGVhZCBvYmplY3RzIHdpdGggMHhkZWFk
YmVlZiIpIFwKLSAgICB2KGJvb2wsIG9iamVjdHNBcmVJbW1vcnRhbCwgZmFsc2UsICJkZWJ1Z2dp
bmcgb3B0aW9uIHRvIGtlZXAgYWxsIG9iamVjdHMgYWxpdmUgZm9yZXZlciIpIFwKLSAgICB2KGJv
b2wsIHNob3dPYmplY3RTdGF0aXN0aWNzLCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwg
dXNlSW1tb3J0YWxPYmplY3RzLCBmYWxzZSwgImRlYnVnZ2luZyBvcHRpb24gdG8ga2VlcCBhbGwg
b2JqZWN0cyBhbGl2ZSBmb3JldmVyIikgXAorICAgIHYoYm9vbCwgZHVtcE9iamVjdFN0YXRpc3Rp
Y3MsIGZhbHNlLCBudWxscHRyKSBcCiAgICAgXAogICAgIHYoZ2NMb2dMZXZlbCwgbG9nR0MsIEdD
TG9nZ2luZzo6Tm9uZSwgImRlYnVnZ2luZyBvcHRpb24gdG8gbG9nIEdDIGFjdGl2aXR5ICgwID0g
Tm9uZSwgMSA9IEJhc2ljLCAyID0gVmVyYm9zZSkiKSBcCi0gICAgdihib29sLCBkaXNhYmxlR0Ms
IGZhbHNlLCBudWxscHRyKSBcCisgICAgdihib29sLCB1c2VHQywgdHJ1ZSwgbnVsbHB0cikgXAog
ICAgIHYodW5zaWduZWQsIGdjTWF4SGVhcFNpemUsIDAsIG51bGxwdHIpIFwKICAgICB2KHVuc2ln
bmVkLCBmb3JjZVJBTVNpemUsIDAsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIHJlY29yZEdDUGF1
c2VUaW1lcywgZmFsc2UsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIGxvZ0hlYXBTdGF0aXN0aWNz
QXRFeGl0LCBmYWxzZSwgbnVsbHB0cikgXAotICAgIHYoYm9vbCwgZW5hYmxlVHlwZVByb2ZpbGVy
LCBmYWxzZSwgbnVsbHB0cikgXAotICAgIHYoYm9vbCwgZW5hYmxlQ29udHJvbEZsb3dQcm9maWxl
ciwgZmFsc2UsIG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIHVzZVR5cGVQcm9maWxlciwgZmFsc2Us
IG51bGxwdHIpIFwKKyAgICB2KGJvb2wsIHVzZUNvbnRyb2xGbG93UHJvZmlsZXIsIGZhbHNlLCBu
dWxscHRyKSBcCiAgICAgXAogICAgIHYoYm9vbCwgdmVyaWZ5SGVhcCwgZmFsc2UsIG51bGxwdHIp
IFwKICAgICB2KHVuc2lnbmVkLCBudW1iZXJPZkdDQ3ljbGVzVG9SZWNvcmRGb3JWZXJpZmljYXRp
b24sIDMsIG51bGxwdHIpIFwKICAgICBcCi0gICAgdihib29sLCBlbmFibGVFeGNlcHRpb25GdXp6
LCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgdXNlRXhjZXB0aW9uRnV6eiwgZmFsc2Us
IG51bGxwdHIpIFwKICAgICB2KHVuc2lnbmVkLCBmaXJlRXhjZXB0aW9uRnV6ekF0LCAwLCBudWxs
cHRyKSBcCiAgICAgXAotICAgIHYoYm9vbCwgZW5hYmxlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6
LCBmYWxzZSwgbnVsbHB0cikgXAorICAgIHYoYm9vbCwgdXNlRXhlY3V0YWJsZUFsbG9jYXRpb25G
dXp6LCBmYWxzZSwgbnVsbHB0cikgXAogICAgIHYodW5zaWduZWQsIGZpcmVFeGVjdXRhYmxlQWxs
b2NhdGlvbkZ1enpBdCwgMCwgbnVsbHB0cikgXAogICAgIHYodW5zaWduZWQsIGZpcmVFeGVjdXRh
YmxlQWxsb2NhdGlvbkZ1enpBdE9yQWZ0ZXIsIDAsIG51bGxwdHIpIFwKICAgICB2KGJvb2wsIHZl
cmJvc2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enosIGZhbHNlLCBudWxscHRyKSBcCiAgICAgXAot
ICAgIHYoYm9vbCwgZW5hYmxlT1NSRXhpdEZ1enosIGZhbHNlLCBudWxscHRyKSBcCisgICAgdihi
b29sLCB1c2VPU1JFeGl0RnV6eiwgZmFsc2UsIG51bGxwdHIpIFwKICAgICB2KHVuc2lnbmVkLCBm
aXJlT1NSRXhpdEZ1enpBdFN0YXRpYywgMCwgbnVsbHB0cikgXAogICAgIHYodW5zaWduZWQsIGZp
cmVPU1JFeGl0RnV6ekF0LCAwLCBudWxscHRyKSBcCiAgICAgdih1bnNpZ25lZCwgZmlyZU9TUkV4
aXRGdXp6QXRPckFmdGVyLCAwLCBudWxscHRyKSBcCiAgICAgXAotICAgIHYoYm9vbCwgZW5hYmxl
RG9sbGFyVk0sIGZhbHNlLCAiaW5zdGFsbHMgdGhlICR2bSBkZWJ1Z2dpbmcgdG9vbCBpbiBnbG9i
YWwgb2JqZWN0cyIpIFwKKyAgICB2KGJvb2wsIHVzZURvbGxhclZNLCBmYWxzZSwgImluc3RhbGxz
IHRoZSAkdm0gZGVidWdnaW5nIHRvb2wgaW4gZ2xvYmFsIG9iamVjdHMiKSBcCiAgICAgdihvcHRp
b25TdHJpbmcsIGZ1bmN0aW9uT3ZlcnJpZGVzLCBudWxscHRyLCAiZmlsZSB3aXRoIGRlYnVnZ2lu
ZyBvdmVycmlkZXMgZm9yIGZ1bmN0aW9uIGJvZGllcyIpIFwKICAgICBcCiAgICAgdih1bnNpZ25l
ZCwgd2F0Y2hkb2csIDAsICJ3YXRjaGRvZyB0aW1lb3V0ICgwID0gRGlzYWJsZWQsIE4gPSBhIHRp
bWVvdXQgcGVyaW9kIG9mIE4gbWlsbGlzZWNvbmRzKSIpIFwKQEAgLTQxOSwxNSArNDE5LDE1IEBA
IHByaXZhdGU6CiAKICAgICBPcHRpb25zKCk7CiAKLSAgICBlbnVtIFNob3dEZWZhdWx0c09wdGlv
biB7Ci0gICAgICAgIERvbnRTaG93RGVmYXVsdHMsCi0gICAgICAgIFNob3dEZWZhdWx0cworICAg
IGVudW0gRHVtcERlZmF1bHRzT3B0aW9uIHsKKyAgICAgICAgRG9udER1bXBEZWZhdWx0cywKKyAg
ICAgICAgRHVtcERlZmF1bHRzCiAgICAgfTsKICAgICBzdGF0aWMgdm9pZCBkdW1wT3B0aW9uc0lm
TmVlZGVkKCk7CiAgICAgc3RhdGljIHZvaWQgZHVtcEFsbE9wdGlvbnMoU3RyaW5nQnVpbGRlciYs
IER1bXBMZXZlbCwgY29uc3QgY2hhciogdGl0bGUsCi0gICAgICAgIGNvbnN0IGNoYXIqIHNlcGFy
YXRvciwgY29uc3QgY2hhciogb3B0aW9uSGVhZGVyLCBjb25zdCBjaGFyKiBvcHRpb25Gb290ZXIs
IFNob3dEZWZhdWx0c09wdGlvbik7CisgICAgICAgIGNvbnN0IGNoYXIqIHNlcGFyYXRvciwgY29u
c3QgY2hhciogb3B0aW9uSGVhZGVyLCBjb25zdCBjaGFyKiBvcHRpb25Gb290ZXIsIER1bXBEZWZh
dWx0c09wdGlvbik7CiAgICAgc3RhdGljIHZvaWQgZHVtcE9wdGlvbihTdHJpbmdCdWlsZGVyJiwg
RHVtcExldmVsLCBPcHRpb25JRCwKLSAgICAgICAgY29uc3QgY2hhciogb3B0aW9uSGVhZGVyLCBj
b25zdCBjaGFyKiBvcHRpb25Gb290ZXIsIFNob3dEZWZhdWx0c09wdGlvbik7CisgICAgICAgIGNv
bnN0IGNoYXIqIG9wdGlvbkhlYWRlciwgY29uc3QgY2hhciogb3B0aW9uRm9vdGVyLCBEdW1wRGVm
YXVsdHNPcHRpb24pOwogCiAgICAgLy8gRGVjbGFyZSB0aGUgc2luZ2xldG9uIGluc3RhbmNlIG9m
IHRoZSBvcHRpb25zIHN0b3JlOgogICAgIEpTX0VYUE9SVERBVEEgc3RhdGljIEVudHJ5IHNfb3B0
aW9uc1tudW1iZXJPZk9wdGlvbnNdOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvVk0uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmNwcAkocmV2aXNpb24gMTkxMDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
Vk0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODEsNyArMjgxLDcgQEAgVk06OlZNKFZNVHlwZSB2
bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIAogICAgIExMSW50OjpEYXRhOjpwZXJmb3Jt
QXNzZXJ0aW9ucygqdGhpcyk7CiAgICAgCi0gICAgaWYgKE9wdGlvbnM6OmVuYWJsZVByb2ZpbGVy
KCkpIHsKKyAgICBpZiAoT3B0aW9uczo6dXNlUHJvZmlsZXIoKSkgewogICAgICAgICBtX3BlckJ5
dGVjb2RlUHJvZmlsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFByb2ZpbGVyOjpEYXRhYmFzZT4oKnRo
aXMpOwogCiAgICAgICAgIFN0cmluZ1ByaW50U3RyZWFtIHBhdGhPdXQ7CkBAIC0zMDMsOSArMzAz
LDkgQEAgVk06OlZNKFZNVHlwZSB2bVR5cGUsIEhlYXBUeXBlIGhlYXBUeXBlKQogICAgIC8vIHdv
bid0IHVzZSB0aGlzLgogICAgIG1fdHlwZWRBcnJheUNvbnRyb2xsZXIgPSBhZG9wdFJlZihuZXcg
U2ltcGxlVHlwZWRBcnJheUNvbnRyb2xsZXIoKSk7CiAKLSAgICBpZiAoT3B0aW9uczo6ZW5hYmxl
VHlwZVByb2ZpbGVyKCkpCisgICAgaWYgKE9wdGlvbnM6OnVzZVR5cGVQcm9maWxlcigpKQogICAg
ICAgICBlbmFibGVUeXBlUHJvZmlsZXIoKTsKLSAgICBpZiAoT3B0aW9uczo6ZW5hYmxlQ29udHJv
bEZsb3dQcm9maWxlcigpKQorICAgIGlmIChPcHRpb25zOjp1c2VDb250cm9sRmxvd1Byb2ZpbGVy
KCkpCiAgICAgICAgIGVuYWJsZUNvbnRyb2xGbG93UHJvZmlsZXIoKTsKIAogICAgIGlmIChPcHRp
b25zOjp3YXRjaGRvZygpKSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9W
TS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHJl
dmlzaW9uIDE5MTAyNSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQ5Myw3ICs0OTMsNyBAQCBwdWJsaWM6CiAKICAgICBFbmNvZGVkSlNW
YWx1ZSogZXhjZXB0aW9uRnV6emluZ0J1ZmZlcihzaXplX3Qgc2l6ZSkKICAgICB7Ci0gICAgICAg
IEFTU0VSVChPcHRpb25zOjplbmFibGVFeGNlcHRpb25GdXp6KCkpOworICAgICAgICBBU1NFUlQo
T3B0aW9uczo6dXNlRXhjZXB0aW9uRnV6eigpKTsKICAgICAgICAgaWYgKCFtX2V4Y2VwdGlvbkZ1
enpCdWZmZXIpCiAgICAgICAgICAgICBtX2V4Y2VwdGlvbkZ1enpCdWZmZXIgPSBNYWxsb2NQdHI8
RW5jb2RlZEpTVmFsdWU+OjptYWxsb2Moc2l6ZSk7CiAgICAgICAgIHJldHVybiBtX2V4Y2VwdGlv
bkZ1enpCdWZmZXIuZ2V0KCk7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9X
cml0ZUJhcnJpZXJJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvV3JpdGVCYXJyaWVySW5saW5lcy5oCShyZXZpc2lvbiAxOTEwMjUpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Xcml0ZUJhcnJpZXJJbmxpbmVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTM1LDcgKzM1LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBpbmxpbmUgdm9p
ZCBXcml0ZUJhcnJpZXJCYXNlPFQ+OjpzZXQoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBU
KiB2YWx1ZSkKIHsKICAgICBBU1NFUlQodmFsdWUpOwotICAgIEFTU0VSVCghT3B0aW9uczo6ZW5h
YmxlQ29uY3VycmVudEpJVCgpIHx8ICFpc0NvbXBpbGF0aW9uVGhyZWFkKCkpOworICAgIEFTU0VS
VCghT3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgpIHx8ICFpc0NvbXBpbGF0aW9uVGhyZWFkKCkp
OwogICAgIHZhbGlkYXRlQ2VsbCh2YWx1ZSk7CiAgICAgc2V0RWFybHlWYWx1ZSh2bSwgb3duZXIs
IHZhbHVlKTsKIH0KQEAgLTU3LDcgKzU3LDcgQEAgaW5saW5lIHZvaWQgV3JpdGVCYXJyaWVyQmFz
ZTxUPjo6c2V0RWFybAogCiBpbmxpbmUgdm9pZCBXcml0ZUJhcnJpZXJCYXNlPFVua25vd24+Ojpz
ZXQoVk0mIHZtLCBjb25zdCBKU0NlbGwqIG93bmVyLCBKU1ZhbHVlIHZhbHVlKQogewotICAgIEFT
U0VSVCghT3B0aW9uczo6ZW5hYmxlQ29uY3VycmVudEpJVCgpIHx8ICFpc0NvbXBpbGF0aW9uVGhy
ZWFkKCkpOworICAgIEFTU0VSVCghT3B0aW9uczo6dXNlQ29uY3VycmVudEpJVCgpIHx8ICFpc0Nv
bXBpbGF0aW9uVGhyZWFkKCkpOwogICAgIG1fdmFsdWUgPSBKU1ZhbHVlOjplbmNvZGUodmFsdWUp
OwogICAgIHZtLmhlYXAud3JpdGVCYXJyaWVyKG93bmVyLCB2YWx1ZSk7CiB9CkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvZXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6LnlhbWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL2V4ZWN1dGFibGVBbGxvY2F0
aW9uRnV6ei55YW1sCShyZXZpc2lvbiAxOTEwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
dGVzdHMvZXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6LnlhbWwJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDUgKzI3LDUgQEAKICAgICAgICAgICBza2lwCiAgICAgICBlbHNlCiAgICAgICAgICAgcnVuRXhl
Y3V0YWJsZUFsbG9jYXRpb25GdXp6KCJkZWZhdWx0IikKLSAgICAgICAgICBydW5FeGVjdXRhYmxl
QWxsb2NhdGlvbkZ1enooIm5vLWNqaXQiLCAiLS1lbmFibGVDb25jdXJyZW50SklUPWZhbHNlIikK
KyAgICAgICAgICBydW5FeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enooIm5vLWNqaXQiLCAiLS11c2VD
b25jdXJyZW50SklUPWZhbHNlIikKICAgICAgIGVuZApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9hcnJvd2Z1bmN0aW9uLXR5cGVvZi5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNzL2Fycm93ZnVuY3Rpb24tdHlwZW9mLmpz
CShyZXZpc2lvbiAxOTEwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3RyZXNz
L2Fycm93ZnVuY3Rpb24tdHlwZW9mLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNSw3ICsxNSw3IEBA
IGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDA7ICsraSkgewogICB0ZXN0Q2FzZSh0eXBlb2YgYWYy
LCAiZnVuY3Rpb24iLCAiRXJyb3I6IE5vdCBjb3JyZWN0IHR5cGUgb2YgdGhlIGFycm93IGZ1bmN0
aW9uICMyIik7CiAKIC8vRml4bWU6IFNvbWUgYnVnIGluIGlubGluaW5nIHR5cGVvZiB3aXRoIGZv
bGxvd2luZyBydW4gcGFyYW1ldGVycyBmdGwtbm8tY2ppdC1uby1pbmxpbmUtdmFsaWRhdGUKLS8v
IC0tdXNlRlRMSklUXD10cnVlIC0tZW5hYmxlRnVuY3Rpb25Eb3RBcmd1bWVudHNcPXRydWUgLS1l
bmFibGVDb25jdXJyZW50SklUPWZhbHNlIC0tdGhyZXNob2xkRm9ySklUQWZ0ZXJXYXJtVXA9MTAw
ICAtLXZhbGlkYXRlR3JhcGg9dHJ1ZSAtLW1heGltdW1JbmxpbmluZ0RlcHRoPTEKKy8vIC0tdXNl
RlRMSklUXD10cnVlIC0tdXNlRnVuY3Rpb25Eb3RBcmd1bWVudHNcPXRydWUgLS11c2VDb25jdXJy
ZW50SklUPWZhbHNlIC0tdGhyZXNob2xkRm9ySklUQWZ0ZXJXYXJtVXA9MTAwICAtLXZhbGlkYXRl
R3JhcGg9dHJ1ZSAtLW1heGltdW1JbmxpbmluZ0RlcHRoPTEKIC8vCiAvLyBmb3IgKHZhciBpID0g
MDsgaSA8IDEwMDAwOyArK2kpICB7CiAvLyAgIGlmICh0eXBlb2YgKGZ1bmN0aW9uICgpIHt9KSAh
PT0gJ2Z1bmN0aW9uJykKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3Mv
ZGlzYWJsZS1mdW5jdGlvbi1kb3QtYXJndW1lbnRzLmpzCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvZGlzYWJsZS1mdW5jdGlvbi1kb3QtYXJndW1lbnRz
LmpzCShyZXZpc2lvbiAxOTEwMjUpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvdGVzdHMvc3Ry
ZXNzL2Rpc2FibGUtZnVuY3Rpb24tZG90LWFyZ3VtZW50cy5qcwkod29ya2luZyBjb3B5KQpAQCAt
MSw0ICsxLDQgQEAKLS8vQCBydW4oImZ1bmN0aW9uLWRvdC1hcmd1bWVudHMiLCAiLS1lbmFibGVG
dW5jdGlvbkRvdEFyZ3VtZW50cz1mYWxzZSIpCisvL0AgcnVuKCJmdW5jdGlvbi1kb3QtYXJndW1l
bnRzIiwgIi0tdXNlRnVuY3Rpb25Eb3RBcmd1bWVudHM9ZmFsc2UiKQogCiBmdW5jdGlvbiBmb28o
KSB7CiAgICAgdmFyIGEgPSBiYXIuYXJndW1lbnRzOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXNxcnQtYmFzaWNzLWRpc2FibGUtYXJjaGl0ZWN0dXJlLXNw
ZWNpZmljLW9wdGltaXphdGlvbnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRD
b3JlL3Rlc3RzL3N0cmVzcy9tYXRoLXNxcnQtYmFzaWNzLWRpc2FibGUtYXJjaGl0ZWN0dXJlLXNw
ZWNpZmljLW9wdGltaXphdGlvbnMuanMJKHJldmlzaW9uIDE5MTAyNSkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS90ZXN0cy9zdHJlc3MvbWF0aC1zcXJ0LWJhc2ljcy1kaXNhYmxlLWFyY2hpdGVj
dHVyZS1zcGVjaWZpYy1vcHRpbWl6YXRpb25zLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAotLy9AIHJ1bigibm8tYXJjaGl0ZWN0dXJlLXNwZWNpZmljLW9wdGltaXphdGlvbnMiLCAi
LS1lbmFibGVBcmNoaXRlY3R1cmVTcGVjaWZpY09wdGltaXphdGlvbnM9ZmFsc2UiLCAqTk9fQ0pJ
VF9PUFRJT05TKQotLy9AIHJ1bigibm8tYXJjaGl0ZWN0dXJlLXNwZWNpZmljLW9wdGltaXphdGlv
bnMtZnRsIiwgIi0tZW5hYmxlQXJjaGl0ZWN0dXJlU3BlY2lmaWNPcHRpbWl6YXRpb25zPWZhbHNl
IiwgKkZUTF9PUFRJT05TKQorLy9AIHJ1bigibm8tYXJjaGl0ZWN0dXJlLXNwZWNpZmljLW9wdGlt
aXphdGlvbnMiLCAiLS11c2VBcmNoaXRlY3R1cmVTcGVjaWZpY09wdGltaXphdGlvbnM9ZmFsc2Ui
LCAqTk9fQ0pJVF9PUFRJT05TKQorLy9AIHJ1bigibm8tYXJjaGl0ZWN0dXJlLXNwZWNpZmljLW9w
dGltaXphdGlvbnMtZnRsIiwgIi0tdXNlQXJjaGl0ZWN0dXJlU3BlY2lmaWNPcHRpbWl6YXRpb25z
PWZhbHNlIiwgKkZUTF9PUFRJT05TKQogCiAvLyBCYXNpYyBjYXNlcyBvZiBNYXRoLnNxcnQoKS4K
IGZ1bmN0aW9uIHNxcnRPbkludGVnZXIocmFkaWNhbmQpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS90ZXN0cy9zdHJlc3MvcmVncmVzcy0xNDg1NjQuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWdyZXNzLTE0ODU2NC5qcwkocmV2aXNp
b24gMTkxMDI1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3Rlc3RzL3N0cmVzcy9yZWdyZXNz
LTE0ODU2NC5qcwkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAKIC8vIEluIG9yZGVyIHRv
IG1hbmlmZXN0LCB0aGUgYnVnIGJlaW5nIHRlc3RlZCByZXF1aXJlcyBhbGwgdGhlc2UgY29uZGl0
aW9ucyB0byBiZSB0cnVlOgogLy8gMS4gQSBwdXQgb3BlcmF0aW9uIG11c3Qgbm90IGJlaW5nIG9w
dGltaXplZCBieSB0aGUgREZHIGludG8gYSBQdXRCeU9mZnNldC4KIC8vICAgIEl0IG5lZWRzIHRv
IGJlIGEgUHV0QnlJZCBub2RlIGluc3RlYWQgc28gdGhhdCBpdCB3aWxsIHVzZSB0aGUgaW5saW5l
IGNhY2hlLgotLy8gICAgVGhpcyBpcyBzYXRpc2ZpZWQgYnkgdXNpbmcgdGhlIC0tZW5hYmxlQWNj
ZXNzSW5saW5pbmc9ZmFsc2Ugb3B0aW9uIGFib3ZlLgorLy8gICAgVGhpcyBpcyBzYXRpc2ZpZWQg
YnkgdXNpbmcgdGhlIC0tdXNlQWNjZXNzSW5saW5pbmc9ZmFsc2Ugb3B0aW9uIGFib3ZlLgogLy8K
IC8vIDIuIFRoZSBQdXRCeUlkJ3MgZXhlY3V0aW9uIG11c3QgZ28gdGhyb3VnaCBpdHMgdHJhbnNp
dGlvbiBzdHViLgogLy8KSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5MTA0OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDE1LTEwLTE0ICBNYXJrIExhbSAgPG1hcmsubGFt
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW5hbWUgc29tZSBKU0Mgb3B0aW9uIG5hbWVzIHRvIGJl
IG1vcmUgdW5pZm9ybS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MDEyNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogU2NyaXB0cy9qc2Mtc3RyZXNzLXRlc3QtaGVscGVycy9qcy1leGVjdXRhYmxlLWFs
bG9jYXRpb24tZnV6ejoKKyAgICAgICAgKiBTY3JpcHRzL3J1bi1qc2Mtc3RyZXNzLXRlc3RzOgor
CiAyMDE1LTEwLTE0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAg
ICAgICAgQ2hhbmdlIHRoZSBidW5kbGUgYXBwIGNhY2hlIEFQSXMgdG8gdGFrZSBhIHBhZ2UKSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvcnVuLWpzYy1zdHJlc3MtdGVzdHMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwkocmV2aXNpb24gMTkxMDI1KQorKysgVG9v
bHMvU2NyaXB0cy9ydW4tanNjLXN0cmVzcy10ZXN0cwkod29ya2luZyBjb3B5KQpAQCAtMzYxLDkg
KzM2MSw5IEBAIGVuZAogCiAkbnVtRmFpbHVyZXMgPSAwCiAKLUJBU0VfT1BUSU9OUyA9IFsiLS11
c2VGVExKSVQ9ZmFsc2UiLCAiLS1lbmFibGVGdW5jdGlvbkRvdEFyZ3VtZW50cz10cnVlIl0KK0JB
U0VfT1BUSU9OUyA9IFsiLS11c2VGVExKSVQ9ZmFsc2UiLCAiLS11c2VGdW5jdGlvbkRvdEFyZ3Vt
ZW50cz10cnVlIl0KIEVBR0VSX09QVElPTlMgPSBbIi0tdGhyZXNob2xkRm9ySklUQWZ0ZXJXYXJt
VXA9MTAiLCAiLS10aHJlc2hvbGRGb3JKSVRTb29uPTEwIiwgIi0tdGhyZXNob2xkRm9yT3B0aW1p
emVBZnRlcldhcm1VcD0yMCIsICItLXRocmVzaG9sZEZvck9wdGltaXplQWZ0ZXJMb25nV2FybVVw
PTIwIiwgIi0tdGhyZXNob2xkRm9yT3B0aW1pemVTb29uPTIwIiwgIi0tdGhyZXNob2xkRm9yRlRM
T3B0aW1pemVBZnRlcldhcm1VcD0yMCIsICItLXRocmVzaG9sZEZvckZUTE9wdGltaXplU29vbj0y
MCIsICItLW1heGltdW1FdmFsQ2FjaGVhYmxlU291cmNlTGVuZ3RoPTE1MDAwMCJdCi1OT19DSklU
X09QVElPTlMgPSBbIi0tZW5hYmxlQ29uY3VycmVudEpJVD1mYWxzZSIsICItLXRocmVzaG9sZEZv
ckpJVEFmdGVyV2FybVVwPTEwMCJdCitOT19DSklUX09QVElPTlMgPSBbIi0tdXNlQ29uY3VycmVu
dEpJVD1mYWxzZSIsICItLXRocmVzaG9sZEZvckpJVEFmdGVyV2FybVVwPTEwMCJdCiBGVExfT1BU
SU9OUyA9IFsiLS11c2VGVExKSVQ9dHJ1ZSIsICItLWZ0bENyYXNoZXNJZkNhbnRJbml0aWFsaXpl
TExWTT10cnVlIl0KIAogJHJ1bmxpc3QgPSBbXQpAQCAtNzc5LDcgKzc3OSw3IEBAIGRlZiBydW5B
bHdheXNUcmlnZ2VyQ29weVBoYXNlCiBlbmQKIAogZGVmIHJ1bk5vQ0pJVE5vQVNPCi0gICAgcnVu
KCJuby1jaml0LW5vLWFzbyIsICItLWVuYWJsZUFyY2hpdGVjdHVyZVNwZWNpZmljT3B0aW1pemF0
aW9ucz1mYWxzZSIsICpOT19DSklUX09QVElPTlMpCisgICAgcnVuKCJuby1jaml0LW5vLWFzbyIs
ICItLXVzZUFyY2hpdGVjdHVyZVNwZWNpZmljT3B0aW1pemF0aW9ucz1mYWxzZSIsICpOT19DSklU
X09QVElPTlMpCiBlbmQKIAogZGVmIHJ1bkZUTE5vQ0pJVE5vU2ltcGxlT3B0CkBAIC03ODcsMTEg
Kzc4NywxMSBAQCBkZWYgcnVuRlRMTm9DSklUTm9TaW1wbGVPcHQKIGVuZAogCiBkZWYgcnVuTm9D
SklUTm9BY2Nlc3NJbmxpbmluZwotICAgIHJ1bigibm8tY2ppdC1uby1hY2Nlc3MtaW5saW5pbmci
LCAiLS1lbmFibGVBY2Nlc3NJbmxpbmluZz1mYWxzZSIsICpOT19DSklUX09QVElPTlMpCisgICAg
cnVuKCJuby1jaml0LW5vLWFjY2Vzcy1pbmxpbmluZyIsICItLXVzZUFjY2Vzc0lubGluaW5nPWZh
bHNlIiwgKk5PX0NKSVRfT1BUSU9OUykKIGVuZAogCiBkZWYgcnVuRlRMTm9DSklUTm9BY2Nlc3NJ
bmxpbmluZwotICAgIHJ1bigiZnRsLW5vLWNqaXQtbm8tYWNjZXNzLWlubGluaW5nIiwgIi0tZW5h
YmxlQWNjZXNzSW5saW5pbmc9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05T
KSkgaWYgJGVuYWJsZUZUTAorICAgIHJ1bigiZnRsLW5vLWNqaXQtbm8tYWNjZXNzLWlubGluaW5n
IiwgIi0tdXNlQWNjZXNzSW5saW5pbmc9ZmFsc2UiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9P
UFRJT05TKSkgaWYgJGVuYWJsZUZUTAogZW5kCiAKIGRlZiBydW5GVExOb0NKSVRTbWFsbFBvb2wK
QEAgLTgwNyw3ICs4MDcsNyBAQCBkZWYgcnVuTWlzY0ZUTE5vQ0pJVFRlc3QoKm9wdGlvbnMpCiBl
bmQKIAogZGVmIHJ1bkRGR01heGltYWxGbHVzaFBoYXNlCi0gICAgcnVuKCJkZmctbWF4aW1hbC1m
bHVzaC12YWxpZGF0ZS1uby1jaml0IiwgIi0tdmFsaWRhdGVHcmFwaD10cnVlIiwgIi0tZW5hYmxl
TWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2U9dHJ1ZSIsICpOT19DSklUX09QVElPTlMpCisgICAg
cnVuKCJkZmctbWF4aW1hbC1mbHVzaC12YWxpZGF0ZS1uby1jaml0IiwgIi0tdmFsaWRhdGVHcmFw
aD10cnVlIiwgIi0tdXNlTWF4aW1hbEZsdXNoSW5zZXJ0aW9uUGhhc2U9dHJ1ZSIsICpOT19DSklU
X09QVElPTlMpCiBlbmQKIAogZGVmIGRlZmF1bHRSdW4KQEAgLTkwMyw5ICs5MDMsOSBAQCBkZWYg
cnVuVHlwZVByb2ZpbGVyCiAgICAgZW5kCiAKICAgICBpZiAkZW5hYmxlRlRMCi0gICAgICAgIHJ1
bigiZnRsLW5vLWNqaXQtdHlwZS1wcm9maWxlciIsICItLWVuYWJsZVR5cGVQcm9maWxlcj10cnVl
IiwgKihGVExfT1BUSU9OUyArIE5PX0NKSVRfT1BUSU9OUykpCisgICAgICAgIHJ1bigiZnRsLW5v
LWNqaXQtdHlwZS1wcm9maWxlciIsICItLXVzZVR5cGVQcm9maWxlcj10cnVlIiwgKihGVExfT1BU
SU9OUyArIE5PX0NKSVRfT1BUSU9OUykpCiAgICAgZWxzZQotICAgICAgICBydW4oIm5vLWNqaXQt
dHlwZS1wcm9maWxlciIsICItLWVuYWJsZVR5cGVQcm9maWxlcj10cnVlIiwgKk5PX0NKSVRfT1BU
SU9OUykKKyAgICAgICAgcnVuKCJuby1jaml0LXR5cGUtcHJvZmlsZXIiLCAiLS11c2VUeXBlUHJv
ZmlsZXI9dHJ1ZSIsICpOT19DSklUX09QVElPTlMpCiAgICAgZW5kCiBlbmQKIApAQCAtOTE1LDkg
KzkxNSw5IEBAIGRlZiBydW5Db250cm9sRmxvd1Byb2ZpbGVyCiAgICAgZW5kCiAKICAgICBpZiAk
ZW5hYmxlRlRMCi0gICAgICAgIHJ1bigiZnRsLW5vLWNqaXQtdHlwZS1wcm9maWxlciIsICItLWVu
YWJsZUNvbnRyb2xGbG93UHJvZmlsZXI9dHJ1ZSIsICooRlRMX09QVElPTlMgKyBOT19DSklUX09Q
VElPTlMpKQorICAgICAgICBydW4oImZ0bC1uby1jaml0LXR5cGUtcHJvZmlsZXIiLCAiLS11c2VD
b250cm9sRmxvd1Byb2ZpbGVyPXRydWUiLCAqKEZUTF9PUFRJT05TICsgTk9fQ0pJVF9PUFRJT05T
KSkKICAgICBlbHNlCi0gICAgICAgIHJ1bigibm8tY2ppdC10eXBlLXByb2ZpbGVyIiwgIi0tZW5h
YmxlQ29udHJvbEZsb3dQcm9maWxlcj10cnVlIiwgKk5PX0NKSVRfT1BUSU9OUykKKyAgICAgICAg
cnVuKCJuby1jaml0LXR5cGUtcHJvZmlsZXIiLCAiLS11c2VDb250cm9sRmxvd1Byb2ZpbGVyPXRy
dWUiLCAqTk9fQ0pJVF9PUFRJT05TKQogICAgIGVuZAogZW5kCiAKSW5kZXg6IFRvb2xzL1Njcmlw
dHMvanNjLXN0cmVzcy10ZXN0LWhlbHBlcnMvanMtZXhlY3V0YWJsZS1hbGxvY2F0aW9uLWZ1enoK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9qc2Mtc3RyZXNzLXRlc3QtaGVscGVycy9qcy1l
eGVjdXRhYmxlLWFsbG9jYXRpb24tZnV6egkocmV2aXNpb24gMTkxMDI1KQorKysgVG9vbHMvU2Ny
aXB0cy9qc2Mtc3RyZXNzLXRlc3QtaGVscGVycy9qcy1leGVjdXRhYmxlLWFsbG9jYXRpb24tZnV6
egkod29ya2luZyBjb3B5KQpAQCAtNjksNyArNjksNyBAQCBpZiAoc2hpZnQgQEFSR1YpIHsKICAg
ICBkaWUgIklnbm9yaW5nIGdhcmJhZ2UgYXJndW1lbnRzOyBvbmx5IHRoZSBmaXJzdCBub24tb3B0
aW9uIGFyZ3VtZW50IGlzIHVzZWQgYXMgdGhlIGNvbW1hbmQgc3RyaW5nLiI7CiB9CiAKLW9wZW4g
KG15ICR0ZXN0SW5wdXQsICIkY29tbWFuZFN0cmluZyAtLWVuYWJsZUV4ZWN1dGFibGVBbGxvY2F0
aW9uRnV6ej10cnVlIHwiKSBvciBmYWlsKCJDYW5ub3QgZXhlY3V0ZSBpbml0aWFsIGNvbW1hbmQg
d2hlbiBnZXR0aW5nIGNoZWNrIGNvdW50Iik7CitvcGVuIChteSAkdGVzdElucHV0LCAiJGNvbW1h
bmRTdHJpbmcgLS11c2VFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1eno9dHJ1ZSB8Iikgb3IgZmFpbCgi
Q2Fubm90IGV4ZWN1dGUgaW5pdGlhbCBjb21tYW5kIHdoZW4gZ2V0dGluZyBjaGVjayBjb3VudCIp
Owogd2hpbGUgKG15ICRpbnB1dExpbmUgPSA8JHRlc3RJbnB1dD4pIHsKICAgICBjaG9tcCgkaW5w
dXRMaW5lKTsKICAgICBteSAkaGFuZGxlZCA9IDA7CkBAIC0xMDEsNyArMTAxLDcgQEAgZm9yICht
eSAkaXRlcmF0aW9uID0gMDsgJGl0ZXJhdGlvbiA8ICRyZQogICAgIGlmICgkdmVyYm9zZSkgewog
ICAgICAgICBwcmludCAiaXRlcmF0aW9uKCRpdGVyYXRpb24pIHRhcmdldCgkdGFyZ2V0KSBvbmUt
c2hvdDogUnVubmluZy5cbiI7CiAgICAgfQotICAgIG15ICRyZXN1bHQgPSBzeXN0ZW0oIiRjb21t
YW5kU3RyaW5nIC0tZW5hYmxlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6PXRydWUgLS1maXJlRXhl
Y3V0YWJsZUFsbG9jYXRpb25GdXp6QXQ9JHRhcmdldCIpOworICAgIG15ICRyZXN1bHQgPSBzeXN0
ZW0oIiRjb21tYW5kU3RyaW5nIC0tdXNlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6PXRydWUgLS1m
aXJlRXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6QXQ9JHRhcmdldCIpOwogICAgIGlmICgkcmVzdWx0
ICE9IDApIHsKICAgICAgICAgZmFpbCgiQ2Fubm90IGV4ZWN1dGUgY29tbWFuZCBvbiBpdGVyYXRp
b24gJGl0ZXJhdGlvbiwgc3RhdHVzICQ/IGZvciB0YXJnZXQgJHRhcmdldCIpOwogICAgIH0KQEAg
LTExNSw3ICsxMTUsNyBAQCBmb3IgKG15ICRpdGVyYXRpb24gPSAwOyAkaXRlcmF0aW9uIDwgJHJl
CiAgICAgaWYgKCR2ZXJib3NlKSB7CiAgICAgICAgIHByaW50ICJpdGVyYXRpb24oJGl0ZXJhdGlv
bikgdGFyZ2V0KCR0YXJnZXQpIGF0LW9yLWFmdGVyOiBSdW5uaW5nLlxuIjsKICAgICB9Ci0gICAg
bXkgJHJlc3VsdCA9IHN5c3RlbSgiJGNvbW1hbmRTdHJpbmcgLS1lbmFibGVFeGVjdXRhYmxlQWxs
b2NhdGlvbkZ1eno9dHJ1ZSAtLWZpcmVFeGVjdXRhYmxlQWxsb2NhdGlvbkZ1enpBdE9yQWZ0ZXI9
JHRhcmdldCIpOworICAgIG15ICRyZXN1bHQgPSBzeXN0ZW0oIiRjb21tYW5kU3RyaW5nIC0tdXNl
RXhlY3V0YWJsZUFsbG9jYXRpb25GdXp6PXRydWUgLS1maXJlRXhlY3V0YWJsZUFsbG9jYXRpb25G
dXp6QXRPckFmdGVyPSR0YXJnZXQiKTsKICAgICBpZiAoJHJlc3VsdCAhPSAwKSB7CiAgICAgICAg
IGZhaWwoIkNhbm5vdCBleGVjdXRlIGNvbW1hbmQgb24gaXRlcmF0aW9uICRpdGVyYXRpb24sIHN0
YXR1cyAkPyBmb3IgdGFyZ2V0ICR0YXJnZXQiKTsKICAgICB9Cg==
</data>
<flag name="review"
          id="288279"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>