<?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>46371</bug_id>
          
          <creation_ts>2010-09-23 10:35:44 -0700</creation_ts>
          <short_desc>[WINCE] Add PlatformStrategiesWinCE</short_desc>
          <delta_ts>2010-09-23 15:33:07 -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>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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="Patrick R. Gansterer">paroga</reporter>
          <assigned_to name="Patrick R. Gansterer">paroga</assigned_to>
          <cc>abarth</cc>
    
    <cc>aroben</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>283757</commentid>
    <comment_count>0</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-23 10:35:44 -0700</bug_when>
    <thetext>see patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283762</commentid>
    <comment_count>1</comment_count>
      <attachid>68546</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-23 10:39:11 -0700</bug_when>
    <thetext>Created attachment 68546
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283802</commentid>
    <comment_count>2</comment_count>
      <attachid>68546</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-23 11:46:29 -0700</bug_when>
    <thetext>Comment on attachment 68546
Patch

Rejecting patch 68546 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;apply-attachment&apos;, &apos;--force-clean&apos;, &apos;--non-interactive&apos;, &apos;--quiet&apos;, 68546]&quot; exit_code: 2
Cleaning working directory
Updating working directory
Logging in as commit-queue@webkit.org...
Fetching: https://bugs.webkit.org/attachment.cgi?id=68546&amp;action=edit
Fetching: https://bugs.webkit.org/show_bug.cgi?id=46371&amp;ctype=xml
Processing 1 patch from 1 bug.
Processing patch 68546 from bug 46371.
Failed to run &quot;[u&apos;/Users/abarth/git/webkit-queue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Adam Roben&apos;, u&apos;--force&apos;]&quot; exit_code: 1

Full output: http://queues.webkit.org/results/4029115</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283809</commentid>
    <comment_count>3</comment_count>
      <attachid>68546</attachid>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-23 11:52:36 -0700</bug_when>
    <thetext>Comment on attachment 68546
Patch

Clearing flags on attachment: 68546

Manually committed r68172: &lt;http://trac.webkit.org/changeset/68172&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>283811</commentid>
    <comment_count>4</comment_count>
    <who name="Patrick R. Gansterer">paroga</who>
    <bug_when>2010-09-23 11:53:14 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>284039</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-23 15:33:07 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/68172 might have broken GTK Linux 64-bit Debug
The following changes are on the blame list:
http://trac.webkit.org/changeset/68171
http://trac.webkit.org/changeset/68172</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>68546</attachid>
            <date>2010-09-23 10:39:11 -0700</date>
            <delta_ts>2010-09-23 11:52:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-46371.patch</filename>
            <type>text/plain</type>
            <size>66425</size>
            <attacher name="Patrick R. Gansterer">paroga</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC93aW5jZS9DaGFuZ2VMb2cNCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0tLSBXZWJLaXQvd2lu
Y2UvQ2hhbmdlTG9nCShyZXZpc2lvbiA2ODE2MSkKKysrIFdlYktpdC93aW5jZS9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0wOS0yMSAgUGF0cmljayBHYW5z
dGVyZXIgIDxwYXJvZ2FAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBBZGQgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ2MzcxCisKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5jcHA6IENvcGllZCBmcm9t
IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcC4KKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5oOiBDb3BpZWQg
ZnJvbSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oLgor
CiAyMDEwLTA5LTIzICBQYXRyaWNrIEdhbnN0ZXJlciAgPHBhcm9nYUB3ZWJraXQub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCkluZGV4OiBXZWJLaXRcd2luY2VcV2ViQ29y
ZVN1cHBvcnRcUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dFx3aW5jZVxXZWJDb3JlU3VwcG9ydFxQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5jcHAJKHJldmlz
aW9uIDY4MDQyKQkoZnJvbSBXZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHA6NjgwNDIpCisrKyBXZWJLaXRcd2luY2VcV2ViQ29yZVN1cHBvcnRcUGxhdGZv
cm1TdHJhdGVnaWVzV2luQ0UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjYxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5oIgorCisjaW5jbHVkZSAiV2ViTG9jYWxpemFibGVTdHJpbmdzLmgiCisjaW5jbHVk
ZSA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9QYWdlR3JvdXAuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpbkRhdGFiYXNl
Lmg+CisjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRy
Lmg+CisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6aW5pdGlhbGl6ZSgpCit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMsIHBsYXRmb3JtU3RyYXRlZ2llcywgKCkpOworfQorCitXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OldlYlBsYXRmb3JtU3RyYXRlZ2llcygpCit7CisgICAgc2V0UGxhdGZvcm1TdHJh
dGVnaWVzKHRoaXMpOworfQorCisvLyBQbHVnaW5TdHJhdGVneQorCitQbHVnaW5TdHJhdGVneSog
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQbHVnaW5TdHJhdGVneSgpCit7CisgICAgcmV0
dXJuIHRoaXM7Cit9CisKK0xvY2FsaXphdGlvblN0cmF0ZWd5KiBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNyZWF0ZUxvY2FsaXphdGlvblN0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gdGhpczsKK30K
KworVmlzaXRlZExpbmtTdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVWaXNp
dGVkTGlua1N0cmF0ZWd5KCkKK3sKKyAgICByZXR1cm4gdGhpczsKK30KKwordm9pZCBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OnJlZnJlc2hQbHVnaW5zKCkKK3sKKyAgICBQbHVnaW5EYXRhYmFzZTo6
aW5zdGFsbGVkUGx1Z2lucygpLT5yZWZyZXNoKCk7Cit9CisKK3ZvaWQgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpnZXRQbHVnaW5JbmZvKGNvbnN0IFdlYkNvcmU6OlBhZ2UqLCBWZWN0b3I8V2ViQ29y
ZTo6UGx1Z2luSW5mbz4mIG91dFBsdWdpbnMpCit7CisgICAgY29uc3QgVmVjdG9yPFBsdWdpblBh
Y2thZ2UqPiYgcGx1Z2lucyA9IFBsdWdpbkRhdGFiYXNlOjppbnN0YWxsZWRQbHVnaW5zKCktPnBs
dWdpbnMoKTsKKworICAgIG91dFBsdWdpbnMucmVzaXplKHBsdWdpbnMuc2l6ZSgpKTsKKworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcGx1Z2lucy5zaXplKCk7ICsraSkgeworICAgICAgICBQ
bHVnaW5QYWNrYWdlKiBwYWNrYWdlID0gcGx1Z2luc1tpXTsKKworICAgICAgICBQbHVnaW5JbmZv
IGluZm87CisgICAgICAgIGluZm8ubmFtZSA9IHBhY2thZ2UtPm5hbWUoKTsKKyAgICAgICAgaW5m
by5maWxlID0gcGFja2FnZS0+ZmlsZU5hbWUoKTsKKyAgICAgICAgaW5mby5kZXNjID0gcGFja2Fn
ZS0+ZGVzY3JpcHRpb24oKTsKKworICAgICAgICBjb25zdCBNSU1FVG9EZXNjcmlwdGlvbnNNYXAm
IG1pbWVUb0Rlc2NyaXB0aW9ucyA9IHBhY2thZ2UtPm1pbWVUb0Rlc2NyaXB0aW9ucygpOworCisg
ICAgICAgIGluZm8ubWltZXMucmVzZXJ2ZUNhcGFjaXR5KG1pbWVUb0Rlc2NyaXB0aW9ucy5zaXpl
KCkpOworCisgICAgICAgIE1JTUVUb0Rlc2NyaXB0aW9uc01hcDo6Y29uc3RfaXRlcmF0b3IgZW5k
ID0gbWltZVRvRGVzY3JpcHRpb25zLmVuZCgpOworICAgICAgICBmb3IgKE1JTUVUb0Rlc2NyaXB0
aW9uc01hcDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtaW1lVG9EZXNjcmlwdGlvbnMuYmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgICAgICBNaW1lQ2xhc3NJbmZvIG1pbWU7CisKKyAg
ICAgICAgICAgIG1pbWUudHlwZSA9IGl0LT5maXJzdDsKKyAgICAgICAgICAgIG1pbWUuZGVzYyA9
IGl0LT5zZWNvbmQ7CisgICAgICAgICAgICBtaW1lLmV4dGVuc2lvbnMgPSBwYWNrYWdlLT5taW1l
VG9FeHRlbnNpb25zKCkuZ2V0KG1pbWUudHlwZSk7CisKKyAgICAgICAgICAgIGluZm8ubWltZXMu
YXBwZW5kKG1pbWUpOworICAgICAgICB9CisKKyAgICAgICAgb3V0UGx1Z2luc1tpXSA9IGluZm87
CisgICAgfQorfQorCisvLyBMb2NhbGl6YXRpb25TdHJhdGVneSAgICAKKworU3RyaW5nIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkKK3sKKyAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJUaGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNo
IGtleXdvcmRzOiAiLCAidGV4dCB0aGF0IGFwcGVhcnMgYXQgdGhlIHN0YXJ0IG9mIG5lYXJseS1v
YnNvbGV0ZSB3ZWIgcGFnZXMgaW4gdGhlIGZvcm0gb2YgYSAnc2VhcmNoYWJsZSBpbmRleCciKTsK
K30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c3VibWl0QnV0dG9uRGVmYXVsdExh
YmVsKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBm
b3IgU3VibWl0IGJ1dHRvbnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmlucHV0RWxlbWVudEFsdFRleHQoKQoreworICAgIHJldHVy
biBVSV9TVFJJTkdfS0VZKCJTdWJtaXQiLCAiU3VibWl0IChpbnB1dCBlbGVtZW50KSIsICJhbHQg
dGV4dCBmb3IgPGlucHV0PiBlbGVtZW50cyB3aXRoIG5vIGFsdCwgdGl0bGUsIG9yIHZhbHVlIik7
Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnJlc2V0QnV0dG9uRGVmYXVsdExh
YmVsKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJSZXNldCIsICJkZWZhdWx0IGxhYmVsIGZv
ciBSZXNldCBidXR0b25zIGluIGZvcm1zIG9uIHdlYiBwYWdlcyIpOworfQorCitTdHJpbmcgV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKK3sKKyAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJDaG9vc2UgRmlsZSIsICJ0aXRsZSBmb3IgZmlsZSBidXR0b24gdXNl
ZCBpbiBIVE1MIGZvcm1zIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmZp
bGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJu
byBmaWxlIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGlu
IEhUTUwgZm9ybXMgd2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7Cit9CisKK1N0cmluZyBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3co
KQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIk9wZW4gTGluayBpbiBOZXcgV2luZG93IiwgIk9w
ZW4gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKQor
eworICAgIHJldHVybiBVSV9TVFJJTkcoIkRvd25sb2FkIExpbmtlZCBGaWxlIiwgIkRvd25sb2Fk
IExpbmtlZCBGaWxlIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKQorewor
ICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkgTGluayIsICJDb3B5IExpbmsgY29udGV4dCBtZW51
IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJ
dGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIk9w
ZW4gSW1hZ2UgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEltYWdlIGluIE5ldyBXaW5kb3cgY29udGV4
dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpCit7CisgICAgcmV0dXJuIFVJX1NUUklO
RygiRG93bmxvYWQgSW1hZ2UiLCAiRG93bmxvYWQgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0iKTsK
K30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkgSW1hZ2Ui
LCAiQ29weSBJbWFnZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCit7
CisgICAgcmV0dXJuIFVJX1NUUklORygiT3BlbiBWaWRlbyBpbiBOZXcgV2luZG93IiwgIk9wZW4g
VmlkZW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRv
dygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93Iiwg
Ik9wZW4gQXVkaW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5VmlkZW9MaW5r
VG9DbGlwYm9hcmQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkgVmlkZW8gQWRkcmVz
cyIsICJDb3B5IFZpZGVvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0iKTsKK30K
KworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUF1
ZGlvTGlua1RvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJDb3B5IEF1ZGlv
IEFkZHJlc3MiLCAiQ29weSBBdWRpbyBBZGRyZXNzIExvY2F0aW9uIGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z1RvZ2dsZU1lZGlhQ29udHJvbHMoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNvbnRyb2xz
IiwgIk1lZGlhIENvbnRyb2xzIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCit7
CisgICAgcmV0dXJuIFVJX1NUUklORygiTG9vcCIsICJNZWRpYSBMb29wIGNvbnRleHQgbWVudSBp
dGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRl
bVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJFbnRl
ciBGdWxsc2NyZWVuIiwgIlZpZGVvIEVudGVyIEZ1bGxzY3JlZW4gY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
TWVkaWFQbGF5KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQbGF5IiwgIk1lZGlhIFBsYXkg
Y29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygi
UGF1c2UiLCAiTWVkaWEgUGF1c2UgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5nIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK3sKKyAg
ICByZXR1cm4gVUlfU1RSSU5HKCJNdXRlIiwgIk1lZGlhIE11dGUgY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
T3BlbkZyYW1lSW5OZXdXaW5kb3coKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIk9wZW4gRnJh
bWUgaW4gTmV3IFdpbmRvdyIsICJPcGVuIEZyYW1lIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51
IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJ
dGVtVGFnQ29weSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQ29weSIsICJDb3B5IGNvbnRl
eHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRl
eHRNZW51SXRlbVRhZ0dvQmFjaygpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiQmFjayIsICJC
YWNrIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2FyZCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklO
RygiRm9yd2FyZCIsICJGb3J3YXJkIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1N0b3AoKQoreworICAgIHJl
dHVybiBVSV9TVFJJTkcoIlN0b3AiLCAiU3RvcCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitT
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdSZWxvYWQoKQor
eworICAgIHJldHVybiBVSV9TVFJJTkcoIlJlbG9hZCIsICJSZWxvYWQgY29udGV4dCBtZW51IGl0
ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVt
VGFnQ3V0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJDdXQiLCAiQ3V0IGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51
SXRlbVRhZ1Bhc3RlKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJQYXN0ZSIsICJQYXN0ZSBj
b250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdOb0d1ZXNzZXNGb3VuZCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklO
RygiTm8gR3Vlc3NlcyBGb3VuZCIsICJObyBHdWVzc2VzIEZvdW5kIGNvbnRleHQgbWVudSBpdGVt
Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z0lnbm9yZVNwZWxsaW5nKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJJZ25vcmUgU3BlbGxp
bmciLCAiSWdub3JlIFNwZWxsaW5nIGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0xlYXJuU3BlbGxpbmcoKQor
eworICAgIHJldHVybiBVSV9TVFJJTkcoIkxlYXJuIFNwZWxsaW5nIiwgIkxlYXJuIFNwZWxsaW5n
IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNvbnRleHRNZW51SXRlbVRhZ1NlYXJjaFdlYigpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygi
U2VhcmNoIHdpdGggR29vZ2xlIiwgIlNlYXJjaCBpbiBHb29nbGUgY29udGV4dCBtZW51IGl0ZW0i
KTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
TG9va1VwSW5EaWN0aW9uYXJ5KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJMb29rIFVwIGlu
IERpY3Rpb25hcnkiLCAiTG9vayBVcCBpbiBEaWN0aW9uYXJ5IGNvbnRleHQgbWVudSBpdGVtIik7
Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09w
ZW5MaW5rKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVuIExpbmsiLCAiT3BlbiBMaW5r
IGNvbnRleHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNvbnRleHRNZW51SXRlbVRhZ0lnbm9yZUdyYW1tYXIoKQoreworICAgIHJldHVybiBVSV9TVFJJ
TkcoIklnbm9yZSBHcmFtbWFyIiwgIklnbm9yZSBHcmFtbWFyIGNvbnRleHQgbWVudSBpdGVtIik7
Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1Nw
ZWxsaW5nTWVudSgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiU3BlbGxpbmcgYW5kIEdyYW1t
YXIiLCAiU3BlbGxpbmcgYW5kIEdyYW1tYXIgY29udGV4dCBzdWItbWVudSBpdGVtIik7Cit9CisK
K1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NoZWNrU3Bl
bGxpbmcoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNoZWNrIERvY3VtZW50IE5vdyIsICJD
aGVjayBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmco
KQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkNoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZyIs
ICJDaGVjayBzcGVsbGluZyB3aGlsZSB0eXBpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKwor
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFt
bWFyV2l0aFNwZWxsaW5nKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJDaGVjayBHcmFtbWFy
IFdpdGggU3BlbGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51
SXRlbVRhZ0ZvbnRNZW51KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJGb250IiwgIkZvbnQg
Y29udGV4dCBzdWItbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkJv
bGQiLCAiQm9sZCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKQoreworICAgIHJldHVybiBVSV9T
VFJJTkcoIkl0YWxpYyIsICJJdGFsaWMgY29udGV4dCBtZW51IGl0ZW0iKTsKK30KKworU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5lKCkKK3sK
KyAgICByZXR1cm4gVUlfU1RSSU5HKCJVbmRlcmxpbmUiLCAiVW5kZXJsaW5lIGNvbnRleHQgbWVu
dSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51
SXRlbVRhZ091dGxpbmUoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIk91dGxpbmUiLCAiT3V0
bGluZSBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0aW9uTWVudSgpCit7CisgICAgcmV0
dXJuIFVJX1NUUklORygiUGFyYWdyYXBoIERpcmVjdGlvbiIsICJQYXJhZ3JhcGggZGlyZWN0aW9u
IGNvbnRleHQgc3ViLW1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpjb250ZXh0TWVudUl0ZW1UYWdUZXh0RGlyZWN0aW9uTWVudSgpCit7CisgICAgcmV0dXJu
IFVJX1NUUklORygiU2VsZWN0aW9uIERpcmVjdGlvbiIsICJTZWxlY3Rpb24gZGlyZWN0aW9uIGNv
bnRleHQgc3ViLW1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojpjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkKK3sKKyAgICByZXR1cm4gVUlf
U1RSSU5HKCJEZWZhdWx0IiwgIkRlZmF1bHQgd3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBtZW51
IGl0ZW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJ
dGVtVGFnTGVmdFRvUmlnaHQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIkxlZnQgdG8gUmln
aHQiLCAiTGVmdCB0byBSaWdodCBjb250ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpCit7Cisg
ICAgcmV0dXJuIFVJX1NUUklORygiUmlnaHQgdG8gTGVmdCIsICJSaWdodCB0byBMZWZ0IGNvbnRl
eHQgbWVudSBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRl
eHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykKK3sKKyAgICBpZiAoc2hv
dykKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygiU2hvdyBTcGVsbGluZyBhbmQgR3JhbW1hciIs
ICJtZW51IGl0ZW0gdGl0bGUiKTsKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJIaWRlIFNwZWxsaW5n
IGFuZCBHcmFtbWFyIiwgIm1lbnUgaXRlbSB0aXRsZSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpCit7CisgICAg
cmV0dXJuIFVJX1NUUklORygiSW5zcGVjdCBFbGVtZW50IiwgIkluc3BlY3QgRWxlbWVudCBjb250
ZXh0IG1lbnUgaXRlbSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpzZWFy
Y2hNZW51Tm9SZWNlbnRTZWFyY2hlc1RleHQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIk5v
IHJlY2VudCBzZWFyY2hlcyIsICJMYWJlbCBmb3Igb25seSBpdGVtIGluIG1lbnUgdGhhdCBhcHBl
YXJzIHdoZW4gY2xpY2tpbmcgb24gdGhlIHNlYXJjaCBmaWVsZCBpbWFnZSwgd2hlbiBubyBzZWFy
Y2hlcyBoYXZlIGJlZW4gcGVyZm9ybWVkIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OnNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQoreworICAgIHJldHVybiBVSV9T
VFJJTkcoIlJlY2VudCBTZWFyY2hlcyIsICJsYWJlbCBmb3IgZmlyc3QgaXRlbSBpbiB0aGUgbWVu
dSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB1
c2VkIGFzIGVtYmVkZGVkIG1lbnUgdGl0bGUiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6c2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkKK3sKKyAgICByZXR1
cm4gVUlfU1RSSU5HKCJDbGVhciBSZWNlbnQgU2VhcmNoZXMiLCAibWVudSBpdGVtIGluIFJlY2Vu
dCBTZWFyY2hlcyBtZW51IHRoYXQgZW1wdGllcyBtZW51J3MgY29udGVudHMiKTsKK30KKworU3Ry
aW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6QVhXZWJBcmVhVGV4dCgpCit7CisgICAgcmV0dXJu
IFVJX1NUUklORygid2ViIGFyZWEiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZv
ciB3ZWIgYXJlYSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWExpbmtU
ZXh0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJsaW5rIiwgImFjY2Vzc2liaWxpdHkgcm9s
ZSBkZXNjcmlwdGlvbiBmb3IgbGluayIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpBWExpc3RNYXJrZXJUZXh0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJsaXN0IG1h
cmtlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGxpc3QgbWFya2VyIik7
Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OkFYSW1hZ2VNYXBUZXh0KCkKK3sK
KyAgICByZXR1cm4gVUlfU1RSSU5HKCJpbWFnZSBtYXAiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRl
c2NyaXB0aW9uIGZvciBpbWFnZSBtYXAiKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6QVhIZWFkaW5nVGV4dCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiaGVhZGluZyIs
ICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGhlYWRpbmdzIik7Cit9CisKK1N0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpCit7
CisgICAgcmV0dXJuIFVJX1NUUklORygidGVybSIsICJ0ZXJtIHdvcmQgb2YgYSBkZWZpbml0aW9u
Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OkFYRGVmaW5pdGlvbkxpc3RE
ZWZpbml0aW9uVGV4dCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiZGVmaW5pdGlvbiIsICJk
ZWZpbml0aW9uIHBocmFzZSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpB
WEJ1dHRvbkFjdGlvblZlcmIoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoInByZXNzIiwgIlZl
cmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgYnV0dG9uIGlzIHBy
ZXNzZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFVJ
X1NUUklORygic2VsZWN0IiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1
ciB3aGVuIGEgcmFkaW8gYnV0dG9uIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0
eSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWFRleHRGaWVsZEFjdGlv
blZlcmIoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoImFjdGl2YXRlIiwgIlZlcmIgc3RhdGlu
ZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgdGV4dCBmaWVsZCBpcyBzZWxlY3Rl
ZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OkFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCit7CisgICAgcmV0dXJuIFVJ
X1NUUklORygidW5jaGVjayIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2Nj
dXIgd2hlbiBhIGNoZWNrZWQgY2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3Np
YmlsaXR5Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OkFYVW5jaGVja2Vk
Q2hlY2tCb3hBY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJjaGVjayIsICJW
ZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhbiB1bmNoZWNrZWQg
Y2hlY2tib3ggaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7Cit9CisKK1N0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OkFYTGlua0FjdGlvblZlcmIoKQoreworICAgIHJl
dHVybiBVSV9TVFJJTkcoImp1bXAiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxs
IG9jY3VyIHdoZW4gYSBsaW5rIGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIp
OworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWE1lbnVMaXN0QWN0aW9uVmVy
YigpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygib3BlbiIsICJWZXJiIHN0YXRpbmcgdGhlIGFj
dGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHNlbGVjdCBlbGVtZW50IGlzIGNsaWNrZWQsIGFz
IHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5H
X0tFWSgicHJlc3MiLCAicHJlc3MgKHNlbGVjdCBlbGVtZW50KSIsICJWZXJiIHN0YXRpbmcgdGhl
IGFjdGlvbiB0aGF0IHdpbGwgb2NjdXIgd2hlbiBhIHNlbGVjdCBlbGVtZW50J3MgcG9wdXAgbGlz
dCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKK30KKworU3RyaW5nIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6dW5rbm93bkZpbGVTaXplVGV4dCgpCit7CisgICAgcmV0dXJu
IFVJX1NUUklORygiVW5rbm93biIsICJVbmtub3duIGZpbGVzaXplIEZUUCBkaXJlY3RvcnkgbGlz
dGluZyBpdGVtIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnVwbG9hZEZp
bGVUZXh0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJVcGxvYWQgZmlsZSIsICIoV2luZG93
cykgRm9ybSBzdWJtaXQgZmlsZSB1cGxvYWQgZGlhbG9nIHRpdGxlIik7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmFsbEZpbGVzVGV4dCgpCit7CisgICAgcmV0dXJuIFVJX1NU
UklORygiQWxsIEZpbGVzIiwgIihXaW5kb3dzKSBGb3JtIHN1Ym1pdCBmaWxlIHVwbG9hZCBhbGwg
ZmlsZXMgcG9wLXVwIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Om1pc3Np
bmdQbHVnaW5UZXh0KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJNaXNzaW5nIFBsdWctaW4i
LCAiTGFiZWwgdGV4dCB0byBiZSB1c2VkIHdoZW4gYSBwbHVnaW4gaXMgbWlzc2luZyIpOworfQor
CitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmFzaGVkUGx1Z2luVGV4dCgpCit7Cisg
ICAgcmV0dXJuIFVJX1NUUklORygiUGx1Zy1pbiBGYWlsdXJlIiwgIkxhYmVsIHRleHQgdG8gYmUg
dXNlZCBpZiBwbHVnaW4gaG9zdCBwcm9jZXNzIGhhcyBjcmFzaGVkIik7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSkgCit7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVmPiBmaWxl
bmFtZUNGKEFkb3B0Q0YsIGZpbGVuYW1lLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIHJldHVybiBS
ZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdCgw
LCAwLCBVSV9TVFJJTkcoIiVAICVkXHhDM1x4OTclZCBwaXhlbHMiLCAid2luZG93IHRpdGxlIGZv
ciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24gc3ltYm9sLCBub3QgeCki
KSwgZmlsZW5hbWVDRi5nZXQoKSwgc2l6ZS53aWR0aCgpLCBzaXplLmhlaWdodCgpKSkuZ2V0KCk7
Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Om11bHRpcGxlRmlsZVVwbG9hZFRl
eHQodW5zaWduZWQgbnVtYmVyT2ZGaWxlcykKK3sKKyAgICByZXR1cm4gUmV0YWluUHRyPENGU3Ry
aW5nUmVmPihBZG9wdENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhGb3JtYXQoMCwgMCwgVUlfU1RSSU5H
KCIlZCBmaWxlcyIsICJMYWJlbCB0byBkZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVj
dGVkIGluIGEgZmlsZSB1cGxvYWQgY29udHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIp
LCBudW1iZXJPZkZpbGVzKSkuZ2V0KCk7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6Om1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKQoreworICAgIHJldHVybiBVSV9TVFJJ
TkcoIkxvYWRpbmcuLi4iLCAiTWVkaWEgY29udHJvbGxlciBzdGF0dXMgbWVzc2FnZSB3aGVuIHRo
ZSBtZWRpYSBpcyBsb2FkaW5nIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
Om1lZGlhRWxlbWVudExpdmVCcm9hZGNhc3RTdGF0ZVRleHQoKQoreworICAgIHJldHVybiBVSV9T
VFJJTkcoIkxpdmUgQnJvYWRjYXN0IiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ug
d2hlbiB3YXRjaGluZyBhIGxpdmUgYnJvYWRjYXN0Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3Ry
aW5nJiBuYW1lKQoreworICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQiKQorICAgICAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKKyAgICBp
ZiAobmFtZSA9PSAiVmlkZW9FbGVtZW50IikKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygidmlk
ZW8gZWxlbWVudCBjb250cm9sbGVyIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBm
b3IgdmlkZW8gZWxlbWVudCBjb250cm9sbGVyIik7CisgICAgaWYgKG5hbWUgPT0gIk11dGVCdXR0
b24iKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJtdXRlIiwgImFjY2Vzc2liaWxpdHkgcm9s
ZSBkZXNjcmlwdGlvbiBmb3IgbXV0ZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiVW5NdXRl
QnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygidW5tdXRlIiwgImFjY2Vzc2liaWxp
dHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgdHVybiBtdXRlIG9mZiBidXR0b24iKTsKKyAgICBpZiAo
bmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoInBsYXkiLCAi
YWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBwbGF5IGJ1dHRvbiIpOworICAgIGlm
IChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoInBhdXNl
IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgcGF1c2UgYnV0dG9uIik7Cisg
ICAgaWYgKG5hbWUgPT0gIlNsaWRlciIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoIm1vdmll
IHRpbWUiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciB0aW1lbGluZSBzbGlk
ZXIiKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyVGh1bWIiKQorICAgICAgICByZXR1cm4gVUlf
U1RSSU5HKCJ0aW1lbGluZSBzbGlkZXIgdGh1bWIiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2Ny
aXB0aW9uIGZvciB0aW1lbGluZSB0aHVtYiIpOworICAgIGlmIChuYW1lID09ICJSZXdpbmRCdXR0
b24iKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJiYWNrIDMwIHNlY29uZHMiLCAiYWNjZXNz
aWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBzZWVrIGJhY2sgMzAgc2Vjb25kcyBidXR0b24i
KTsKKyAgICBpZiAobmFtZSA9PSAiUmV0dXJuVG9SZWFsdGltZUJ1dHRvbiIpCisgICAgICAgIHJl
dHVybiBVSV9TVFJJTkcoInJldHVybiB0byByZWFsdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUg
ZGVzY3JpcHRpb24gZm9yIHJldHVybiB0byByZWFsIHRpbWUgYnV0dG9uIik7CisgICAgaWYgKG5h
bWUgPT0gIkN1cnJlbnRUaW1lRGlzcGxheSIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoImVs
YXBzZWQgdGltZSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGVsYXBzZWQg
dGltZSBkaXNwbGF5Iik7CisgICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5pbmdEaXNwbGF5IikK
KyAgICAgICAgcmV0dXJuIFVJX1NUUklORygicmVtYWluaW5nIHRpbWUiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciB0aW1lIHJlbWFpbmluZyBkaXNwbGF5Iik7CisgICAgaWYg
KG5hbWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJzdGF0
dXMiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBtb3ZpZSBzdGF0dXMiKTsK
KyAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVlbkJ1dHRvbiIpCisgICAgICAgIHJldHVybiBVSV9T
VFJJTkcoImZ1bGxzY3JlZW4iLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBl
bnRlciBmdWxsc2NyZWVuIGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTZWVrRm9yd2FyZEJ1
dHRvbiIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoImZhc3QgZm9yd2FyZCIsICJhY2Nlc3Np
YmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGZhc3QgZm9yd2FyZCBidXR0b24iKTsKKyAgICBp
ZiAobmFtZSA9PSAiU2Vla0JhY2tCdXR0b24iKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJm
YXN0IHJldmVyc2UiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBmYXN0IHJl
dmVyc2UgYnV0dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIlNob3dDbG9zZWRDYXB0aW9uc0J1dHRv
biIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoInNob3cgY2xvc2VkIGNhcHRpb25zIiwgImFj
Y2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Igc2hvdyBjbG9zZWQgY2FwdGlvbnMgYnV0
dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkhpZGVDbG9zZWRDYXB0aW9uc0J1dHRvbiIpCisgICAg
ICAgIHJldHVybiBVSV9TVFJJTkcoImhpZGUgY2xvc2VkIGNhcHRpb25zIiwgImFjY2Vzc2liaWxp
dHkgcm9sZSBkZXNjcmlwdGlvbiBmb3IgaGlkZSBjbG9zZWQgY2FwdGlvbnMgYnV0dG9uIik7CisK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRI
ZWxwVGV4dChjb25zdCBTdHJpbmcmIG5hbWUpCit7CisgICAgaWYgKG5hbWUgPT0gIkF1ZGlvRWxl
bWVudCIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoImF1ZGlvIGVsZW1lbnQgcGxheWJhY2sg
Y29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlw
dGlvbiBmb3IgYXVkaW8gZWxlbWVudCBjb250cm9sbGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlZp
ZGVvRWxlbWVudCIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoInZpZGVvIGVsZW1lbnQgcGxh
eWJhY2sgY29udHJvbHMgYW5kIHN0YXR1cyBkaXNwbGF5IiwgImFjY2Vzc2liaWxpdHkgcm9sZSBk
ZXNjcmlwdGlvbiBmb3IgdmlkZW8gZWxlbWVudCBjb250cm9sbGVyIik7CisgICAgaWYgKG5hbWUg
PT0gIk11dGVCdXR0b24iKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJtdXRlIGF1ZGlvIHRy
YWNrcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbXV0ZSBidXR0b24iKTsKKyAgICBp
ZiAobmFtZSA9PSAiVW5NdXRlQnV0dG9uIikKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygidW5t
dXRlIGF1ZGlvIHRyYWNrcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdW4gbXV0ZSBi
dXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiUGxheUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBV
SV9TVFJJTkcoImJlZ2luIHBsYXliYWNrIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBw
bGF5IGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJQYXVzZUJ1dHRvbiIpCisgICAgICAgIHJl
dHVybiBVSV9TVFJJTkcoInBhdXNlIHBsYXliYWNrIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0
IGZvciBwYXVzZSBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiU2xpZGVyIikKKyAgICAgICAg
cmV0dXJuIFVJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciIsICJhY2Nlc3NpYmlsaXR5IGhl
bHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIik7CisgICAgaWYgKG5hbWUgPT0gIlNsaWRlclRo
dW1iIikKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygibW92aWUgdGltZSBzY3J1YmJlciB0aHVt
YiIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgdGltZWxpbmUgc2xpZGVyIHRodW1iIik7
CisgICAgaWYgKG5hbWUgPT0gIlJld2luZEJ1dHRvbiIpCisgICAgICAgIHJldHVybiBVSV9TVFJJ
TkcoInNlZWsgbW92aWUgYmFjayAzMCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0
IGZvciBqdW1wIGJhY2sgMzAgc2Vjb25kcyBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiUmV0
dXJuVG9SZWFsdGltZUJ1dHRvbiIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoInJldHVybiBz
dHJlYW1pbmcgbW92aWUgdG8gcmVhbCB0aW1lIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciByZXR1cm4gc3RyZWFtaW5nIG1vdmllIHRvIHJlYWwgdGltZSBidXR0b24iKTsKKyAgICBpZiAo
bmFtZSA9PSAiQ3VycmVudFRpbWVEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygi
Y3VycmVudCBtb3ZpZSB0aW1lIGluIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQg
Zm9yIGVsYXBzZWQgdGltZSBkaXNwbGF5Iik7CisgICAgaWYgKG5hbWUgPT0gIlRpbWVSZW1haW5p
bmdEaXNwbGF5IikKKyAgICAgICAgcmV0dXJuIFVJX1NUUklORygibnVtYmVyIG9mIHNlY29uZHMg
b2YgbW92aWUgcmVtYWluaW5nIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciByZW1haW5p
bmcgdGltZSBkaXNwbGF5Iik7CisgICAgaWYgKG5hbWUgPT0gIlN0YXR1c0Rpc3BsYXkiKQorICAg
ICAgICByZXR1cm4gVUlfU1RSSU5HKCJjdXJyZW50IG1vdmllIHN0YXR1cyIsICJhY2Nlc3NpYmls
aXR5IGhlbHAgdGV4dCBmb3IgbW92aWUgc3RhdHVzIGRpc3BsYXkiKTsKKyAgICBpZiAobmFtZSA9
PSAiU2Vla0JhY2tCdXR0b24iKQorICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJzZWVrIHF1aWNr
bHkgYmFjayIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgZmFzdCByZXdpbmQgYnV0dG9u
Iik7CisgICAgaWYgKG5hbWUgPT0gIlNlZWtGb3J3YXJkQnV0dG9uIikKKyAgICAgICAgcmV0dXJu
IFVJX1NUUklORygic2VlayBxdWlja2x5IGZvcndhcmQiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRl
eHQgZm9yIGZhc3QgZm9yd2FyZCBidXR0b24iKTsKKyAgICBpZiAobmFtZSA9PSAiRnVsbHNjcmVl
bkJ1dHRvbiIpCisgICAgICAgIHJldHVybiBVSV9TVFJJTkcoIlBsYXkgbW92aWUgaW4gZnVsbHNj
cmVlbiBtb2RlIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBlbnRlciBmdWxsc2NyZWVu
IGJ1dHRvbiIpOworICAgIGlmIChuYW1lID09ICJTaG93Q2xvc2VkQ2FwdGlvbnNCdXR0b24iKQor
ICAgICAgICByZXR1cm4gVUlfU1RSSU5HKCJzdGFydCBkaXNwbGF5aW5nIGNsb3NlZCBjYXB0aW9u
cyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3Igc2hvdyBjbG9zZWQgY2FwdGlvbnMgYnV0
dG9uIik7CisgICAgaWYgKG5hbWUgPT0gIkhpZGVDbG9zZWRDYXB0aW9uc0J1dHRvbiIpCisgICAg
ICAgIHJldHVybiBVSV9TVFJJTkcoInN0b3AgZGlzcGxheWluZyBjbG9zZWQgY2FwdGlvbnMiLCAi
YWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIGhpZGUgY2xvc2VkIGNhcHRpb25zIGJ1dHRvbiIp
OworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFN0cmluZygpOworfQor
CitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlw
dGlvbihmbG9hdCB0aW1lKQoreworICAgIGlmICghaXNmaW5pdGUodGltZSkpCisgICAgICAgIHJl
dHVybiBVSV9TVFJJTkcoImluZGVmaW5pdGUgdGltZSIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4
dCBmb3IgYW4gaW5kZWZpbml0ZSBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUiKTsKKworICAg
IGludCBzZWNvbmRzID0gKGludClmYWJzZih0aW1lKTsKKyAgICBpbnQgZGF5cyA9IHNlY29uZHMg
LyAoNjAgKiA2MCAqIDI0KTsKKyAgICBpbnQgaG91cnMgPSBzZWNvbmRzIC8gKDYwICogNjApOwor
ICAgIGludCBtaW51dGVzID0gKHNlY29uZHMgLyA2MCkgJSA2MDsKKyAgICBzZWNvbmRzICU9IDYw
OworCisgICAgaWYgKGRheXMpCisgICAgICAgIHJldHVybiBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+
KEFkb3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdCgwLCAwLCBVSV9TVFJJTkcoIiUxJGQg
ZGF5cyAlMiRkIGhvdXJzICUzJGQgbWludXRlcyAlNCRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0
eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA+PSAxIGRheSIpLCBk
YXlzLCBob3VycywgbWludXRlcywgc2Vjb25kcykpLmdldCgpOworCisgICAgaWYgKGhvdXJzKQor
ICAgICAgICByZXR1cm4gUmV0YWluUHRyPENGU3RyaW5nUmVmPihBZG9wdENGLCBDRlN0cmluZ0Ny
ZWF0ZVdpdGhGb3JtYXQoMCwgMCwgVUlfU1RSSU5HKCIlMSRkIGhvdXJzICUyJGQgbWludXRlcyAl
MyRkIHNlY29uZHMiLCAiYWNjZXNzaWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xs
ZXIgdGltZSB2YWx1ZSA+PSA2MCBtaW51dGVzIiksIGhvdXJzLCBtaW51dGVzLCBzZWNvbmRzKSku
Z2V0KCk7CisKKyAgICBpZiAobWludXRlcykKKyAgICAgICAgcmV0dXJuIFJldGFpblB0cjxDRlN0
cmluZ1JlZj4oQWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0KDAsIDAsIFVJX1NUUklO
RygiJTEkZCBtaW51dGVzICUyJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBm
b3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYwIHNlY29uZHMiKSwgbWludXRlcywg
c2Vjb25kcykpLmdldCgpOworCisgICAgcmV0dXJuIFJldGFpblB0cjxDRlN0cmluZ1JlZj4oQWRv
cHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0KDAsIDAsIFVJX1NUUklORygiJTEkZCBzZWNv
bmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUg
dmFsdWUgPCA2MCBzZWNvbmRzIiksIHNlY29uZHMpKS5nZXQoKTsKK30KKworU3RyaW5nIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6dmFsaWRhdGlvbk1lc3NhZ2VWYWx1ZU1pc3NpbmdUZXh0KCkKK3sK
KyAgICByZXR1cm4gVUlfU1RSSU5HKCJ2YWx1ZSBtaXNzaW5nIiwgIlZhbGlkYXRpb24gbWVzc2Fn
ZSBmb3IgcmVxdWlyZWQgZm9ybSBjb250cm9sIGVsZW1lbnRzIHRoYXQgaGF2ZSBubyB2YWx1ZSIp
OworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp2YWxpZGF0aW9uTWVzc2FnZVR5
cGVNaXNtYXRjaFRleHQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoInR5cGUgbWlzbWF0Y2gi
LCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggYSB2YWx1
ZSBub3QgbWF0Y2hpbmcgdHlwZSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojp2YWxpZGF0aW9uTWVzc2FnZVBhdHRlcm5NaXNtYXRjaFRleHQoKQoreworICAgIHJldHVybiBV
SV9TVFJJTkcoInBhdHRlcm4gbWlzbWF0Y2giLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1
dCBmb3JtIGNvbnRyb2xzIHJlcXVpcmluZyBhIGNvbnN0cmFpbmVkIHZhbHVlIGFjY29yZGluZyB0
byBwYXR0ZXJuIik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnZhbGlkYXRp
b25NZXNzYWdlVG9vTG9uZ1RleHQoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoInRvbyBsb25n
IiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBjb250cm9sIGVsZW1lbnRzIHdpdGggYSB2
YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIik7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VVbmRlcmZsb3dUZXh0
KCkKK3sKKyAgICByZXR1cm4gVUlfU1RSSU5HKCJyYW5nZSB1bmRlcmZsb3ciLCAiVmFsaWRhdGlv
biBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUgbG93ZXIgdGhhbiBh
bGxvd2VkIG1pbmltdW0iKTsKK30KKworU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6dmFs
aWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklO
RygicmFuZ2Ugb3ZlcmZsb3ciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNv
bnRyb2xzIHdpdGggdmFsdWUgaGlnaGVyIHRoYW4gYWxsb3dlZCBtYXhpbXVtIik7Cit9CisKK1N0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNo
VGV4dCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygic3RlcCBtaXNtYXRjaCIsICJWYWxpZGF0
aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBub3QgcmVzcGVj
dGluZyB0aGUgc3RlcCBhdHRyaWJ1dGUiKTsKK30KKworYm9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmlzTGlua1Zpc2l0ZWQoUGFnZSogcGFnZSwgTGlua0hhc2ggaGFzaCkKK3sKKyAgICByZXR1
cm4gcGFnZS0+Z3JvdXAoKS5pc0xpbmtWaXNpdGVkKGhhc2gpOworfQorCit2b2lkIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6YWRkVmlzaXRlZExpbmsoUGFnZSogcGFnZSwgTGlua0hhc2ggaGFzaCkK
K3sKKyAgICBwYWdlLT5ncm91cCgpLmFkZFZpc2l0ZWRMaW5rSGFzaChoYXNoKTsKK30KSW5kZXg6
IFdlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5jcHAN
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0NCi0tLSBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJh
dGVnaWVzV2luQ0UuY3BwCShyZXZpc2lvbiA2ODA0MikKKysrIFdlYktpdC93aW5jZS9XZWJDb3Jl
U3VwcG9ydC9QbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw2IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMCBQYXRyaWNrIEdhbnN0ZXJlciA8cGFy
b2dhQHBhcm9nYS5jb20+CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTEwLDY1
ICsxMSw2NiBAQAogICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQogICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiAjaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAi
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1TdHJhdGVnaWVzV2lu
Q0UuaCIKIAotI2luY2x1ZGUgIldlYkxvY2FsaXphYmxlU3RyaW5ncy5oIgotI2luY2x1ZGUgPFdl
YkNvcmUvSW50U2l6ZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgotI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZUdyb3VwLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QbHVnaW5EYXRhYmFzZS5oPgot
I2luY2x1ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+Ci0jaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgor
I2luY2x1ZGUgIkludFNpemUuaCIKKyNpbmNsdWRlICJNYXRoRXh0cmFzLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgorI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgorI2luY2x1ZGUgIlBsdWdpbkRhdGFiYXNl
LmgiCisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCisjZGVmaW5lIFVJX1NUUklORyh0
ZXh0LCBkZXNjaXByaW9uKSB0ZXh0CisjZGVmaW5lIFVJX1NUUklOR19LRVkodGV4dCwga2V5LCBk
ZXNjaXByaW9uKSB0ZXh0CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi12b2lkIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6aW5pdGlhbGl6ZSgpCit2b2lkIFBsYXRmb3JtU3RyYXRlZ2llc1dp
bkNFOjppbml0aWFsaXplKCkKIHsKLSAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFdlYlBsYXRmb3Jt
U3RyYXRlZ2llcywgcGxhdGZvcm1TdHJhdGVnaWVzLCAoKSk7CisgICAgREVGSU5FX1NUQVRJQ19M
T0NBTChQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRSwgcGxhdGZvcm1TdHJhdGVnaWVzLCAoKSk7CiB9
CiAKLVdlYlBsYXRmb3JtU3RyYXRlZ2llczo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzKCkKK1BsYXRm
b3JtU3RyYXRlZ2llc1dpbkNFOjpQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRSgpCiB7CiAgICAgc2V0
UGxhdGZvcm1TdHJhdGVnaWVzKHRoaXMpOwogfQogCiAvLyBQbHVnaW5TdHJhdGVneQogCi1QbHVn
aW5TdHJhdGVneSogV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjcmVhdGVQbHVnaW5TdHJhdGVneSgp
CitQbHVnaW5TdHJhdGVneSogUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNyZWF0ZVBsdWdpblN0
cmF0ZWd5KCkKIHsKICAgICByZXR1cm4gdGhpczsKIH0KIAotTG9jYWxpemF0aW9uU3RyYXRlZ3kq
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKQorTG9j
YWxpemF0aW9uU3RyYXRlZ3kqIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpjcmVhdGVMb2NhbGl6
YXRpb25TdHJhdGVneSgpCiB7CiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLVZpc2l0ZWRMaW5rU3Ry
YXRlZ3kqIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y3JlYXRlVmlzaXRlZExpbmtTdHJhdGVneSgp
CitWaXNpdGVkTGlua1N0cmF0ZWd5KiBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y3JlYXRlVmlz
aXRlZExpbmtTdHJhdGVneSgpCiB7CiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLXZvaWQgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpyZWZyZXNoUGx1Z2lucygpCit2b2lkIFBsYXRmb3JtU3RyYXRlZ2ll
c1dpbkNFOjpyZWZyZXNoUGx1Z2lucygpCiB7CiAgICAgUGx1Z2luRGF0YWJhc2U6Omluc3RhbGxl
ZFBsdWdpbnMoKS0+cmVmcmVzaCgpOwogfQogCi12b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Z2V0UGx1Z2luSW5mbyhjb25zdCBXZWJDb3JlOjpQYWdlKiwgVmVjdG9yPFdlYkNvcmU6OlBsdWdp
bkluZm8+JiBvdXRQbHVnaW5zKQordm9pZCBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Z2V0UGx1
Z2luSW5mbyhjb25zdCBQYWdlKiwgVmVjdG9yPFBsdWdpbkluZm8+JiBvdXRQbHVnaW5zKQogewog
ICAgIGNvbnN0IFZlY3RvcjxQbHVnaW5QYWNrYWdlKj4mIHBsdWdpbnMgPSBQbHVnaW5EYXRhYmFz
ZTo6aW5zdGFsbGVkUGx1Z2lucygpLT5wbHVnaW5zKCk7CiAKQEAgLTEwMyw0MTAgKzEwNSw0MTAg
QEAgdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldFBsdWdpbkluZgogCiAvLyBMb2NhbGl6
YXRpb25TdHJhdGVneSAgICAKIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6c2VhcmNo
YWJsZUluZGV4SW50cm9kdWN0aW9uKCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6
c2VhcmNoYWJsZUluZGV4SW50cm9kdWN0aW9uKCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJU
aGlzIGlzIGEgc2VhcmNoYWJsZSBpbmRleC4gRW50ZXIgc2VhcmNoIGtleXdvcmRzOiAiLCAidGV4
dCB0aGF0IGFwcGVhcnMgYXQgdGhlIHN0YXJ0IG9mIG5lYXJseS1vYnNvbGV0ZSB3ZWIgcGFnZXMg
aW4gdGhlIGZvcm0gb2YgYSAnc2VhcmNoYWJsZSBpbmRleCciKTsKIH0KIAotU3RyaW5nIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCkKK1N0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6c3VibWl0QnV0dG9uRGVmYXVsdExhYmVsKCkKIHsKICAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJTdWJtaXQiLCAiZGVmYXVsdCBsYWJlbCBmb3IgU3VibWl0IGJ1dHRv
bnMgaW4gZm9ybXMgb24gd2ViIHBhZ2VzIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXM6OmlucHV0RWxlbWVudEFsdFRleHQoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dp
bkNFOjppbnB1dEVsZW1lbnRBbHRUZXh0KCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HX0tFWSgi
U3VibWl0IiwgIlN1Ym1pdCAoaW5wdXQgZWxlbWVudCkiLCAiYWx0IHRleHQgZm9yIDxpbnB1dD4g
ZWxlbWVudHMgd2l0aCBubyBhbHQsIHRpdGxlLCBvciB2YWx1ZSIpOwogfQogCi1TdHJpbmcgV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzOjpyZXNldEJ1dHRvbkRlZmF1bHRMYWJlbCgpCitTdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzV2luQ0U6OnJlc2V0QnV0dG9uRGVmYXVsdExhYmVsKCkKIHsKICAgICBy
ZXR1cm4gVUlfU1RSSU5HKCJSZXNldCIsICJkZWZhdWx0IGxhYmVsIGZvciBSZXNldCBidXR0b25z
IGluIGZvcm1zIG9uIHdlYiBwYWdlcyIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVn
aWVzOjpmaWxlQnV0dG9uQ2hvb3NlRmlsZUxhYmVsKCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNXaW5DRTo6ZmlsZUJ1dHRvbkNob29zZUZpbGVMYWJlbCgpCiB7CiAgICAgcmV0dXJuIFVJX1NU
UklORygiQ2hvb3NlIEZpbGUiLCAidGl0bGUgZm9yIGZpbGUgYnV0dG9uIHVzZWQgaW4gSFRNTCBm
b3JtcyIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpmaWxlQnV0dG9uTm9G
aWxlU2VsZWN0ZWRMYWJlbCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmZpbGVC
dXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVsKCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJubyBm
aWxlIHNlbGVjdGVkIiwgInRleHQgdG8gZGlzcGxheSBpbiBmaWxlIGJ1dHRvbiB1c2VkIGluIEhU
TUwgZm9ybXMgd2hlbiBubyBmaWxlIGlzIHNlbGVjdGVkIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5MaW5rSW5OZXdXaW5kb3coKQor
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGlu
a0luTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVuIExpbmsgaW4gTmV3
IFdpbmRvdyIsICJPcGVuIGluIE5ldyBXaW5kb3cgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAot
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRM
aW5rVG9EaXNrKCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y29udGV4dE1lbnVJ
dGVtVGFnRG93bmxvYWRMaW5rVG9EaXNrKCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJEb3du
bG9hZCBMaW5rZWQgRmlsZSIsICJEb3dubG9hZCBMaW5rZWQgRmlsZSBjb250ZXh0IG1lbnUgaXRl
bSIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1U
YWdDb3B5TGlua1RvQ2xpcGJvYXJkKCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6
Y29udGV4dE1lbnVJdGVtVGFnQ29weUxpbmtUb0NsaXBib2FyZCgpCiB7CiAgICAgcmV0dXJuIFVJ
X1NUUklORygiQ29weSBMaW5rIiwgIkNvcHkgTGluayBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQog
Ci1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1h
Z2VJbk5ld1dpbmRvdygpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNvbnRleHRN
ZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5H
KCJPcGVuIEltYWdlIGluIE5ldyBXaW5kb3ciLCAiT3BlbiBJbWFnZSBpbiBOZXcgV2luZG93IGNv
bnRleHQgbWVudSBpdGVtIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNv
bnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2soKQorU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1dpbkNFOjpjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCkKIHsK
ICAgICByZXR1cm4gVUlfU1RSSU5HKCJEb3dubG9hZCBJbWFnZSIsICJEb3dubG9hZCBJbWFnZSBj
b250ZXh0IG1lbnUgaXRlbSIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpCitTdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzV2luQ0U6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkKCkK
IHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJDb3B5IEltYWdlIiwgIkNvcHkgSW1hZ2UgY29udGV4
dCBtZW51IGl0ZW0iKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4
dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRl
Z2llc1dpbkNFOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuVmlkZW9Jbk5ld1dpbmRvdygpCiB7CiAg
ICAgcmV0dXJuIFVJX1NUUklORygiT3BlbiBWaWRlbyBpbiBOZXcgV2luZG93IiwgIk9wZW4gVmlk
ZW8gaW4gTmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCi1TdHJpbmcgV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygp
CitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNvbnRleHRNZW51SXRlbVRhZ09wZW5B
dWRpb0luTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJPcGVuIEF1ZGlvIGlu
IE5ldyBXaW5kb3ciLCAiT3BlbiBBdWRpbyBpbiBOZXcgV2luZG93IGNvbnRleHQgbWVudSBpdGVt
Iik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2lu
Q0U6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlWaWRlb0xpbmtUb0NsaXBib2FyZCgpCiB7CiAgICAg
cmV0dXJuIFVJX1NUUklORygiQ29weSBWaWRlbyBBZGRyZXNzIiwgIkNvcHkgVmlkZW8gQWRkcmVz
cyBMb2NhdGlvbiBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVkaW9MaW5rVG9DbGlwYm9hcmQoKQor
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVk
aW9MaW5rVG9DbGlwYm9hcmQoKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIkNvcHkgQXVkaW8g
QWRkcmVzcyIsICJDb3B5IEF1ZGlvIEFkZHJlc3MgTG9jYXRpb24gY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFn
VG9nZ2xlTWVkaWFDb250cm9scygpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKQogewogICAgIHJldHVybiBVSV9T
VFJJTkcoIkNvbnRyb2xzIiwgIk1lZGlhIENvbnRyb2xzIGNvbnRleHQgbWVudSBpdGVtIik7CiB9
CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1RvZ2ds
ZU1lZGlhTG9vcCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiTG9vcCIs
ICJNZWRpYSBMb29wIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0VudGVyVmlkZW9GdWxsc2NyZWVuKCkKK1N0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRl
b0Z1bGxzY3JlZW4oKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIkVudGVyIEZ1bGxzY3JlZW4i
LCAiVmlkZW8gRW50ZXIgRnVsbHNjcmVlbiBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCi1TdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBsYXkoKQor
U3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpjb250ZXh0TWVudUl0ZW1UYWdNZWRpYVBs
YXkoKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIlBsYXkiLCAiTWVkaWEgUGxheSBjb250ZXh0
IG1lbnUgaXRlbSIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0
TWVudUl0ZW1UYWdNZWRpYVBhdXNlKCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6
Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygi
UGF1c2UiLCAiTWVkaWEgUGF1c2UgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAotU3RyaW5nIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkKK1N0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCkK
IHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJNdXRlIiwgIk1lZGlhIE11dGUgY29udGV4dCBtZW51
IGl0ZW0iKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJ
dGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dp
bkNFOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0
dXJuIFVJX1NUUklORygiT3BlbiBGcmFtZSBpbiBOZXcgV2luZG93IiwgIk9wZW4gRnJhbWUgaW4g
TmV3IFdpbmRvdyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1T
dHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5KCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNXaW5DRTo6Y29udGV4dE1lbnVJdGVtVGFnQ29weSgpCiB7CiAgICAgcmV0dXJuIFVJX1NU
UklORygiQ29weSIsICJDb3B5IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKLVN0cmluZyBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpCitTdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpCiB7CiAgICAg
cmV0dXJuIFVJX1NUUklORygiQmFjayIsICJCYWNrIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAK
LVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0dvRm9yd2Fy
ZCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNvbnRleHRNZW51SXRlbVRhZ0dv
Rm9yd2FyZCgpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiRm9yd2FyZCIsICJGb3J3YXJkIGNv
bnRleHQgbWVudSBpdGVtIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNv
bnRleHRNZW51SXRlbVRhZ1N0b3AoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpj
b250ZXh0TWVudUl0ZW1UYWdTdG9wKCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJTdG9wIiwg
IlN0b3AgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdp
ZXNXaW5DRTo6Y29udGV4dE1lbnVJdGVtVGFnUmVsb2FkKCkKIHsKICAgICByZXR1cm4gVUlfU1RS
SU5HKCJSZWxvYWQiLCAiUmVsb2FkIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKLVN0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0N1dCgpCitTdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNvbnRleHRNZW51SXRlbVRhZ0N1dCgpCiB7CiAgICAgcmV0
dXJuIFVJX1NUUklORygiQ3V0IiwgIkN1dCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCi1TdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdQYXN0ZSgpCitTdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNvbnRleHRNZW51SXRlbVRhZ1Bhc3RlKCkKIHsK
ICAgICByZXR1cm4gVUlfU1RSSU5HKCJQYXN0ZSIsICJQYXN0ZSBjb250ZXh0IG1lbnUgaXRlbSIp
OwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdO
b0d1ZXNzZXNGb3VuZCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNvbnRleHRN
ZW51SXRlbVRhZ05vR3Vlc3Nlc0ZvdW5kKCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJObyBH
dWVzc2VzIEZvdW5kIiwgIk5vIEd1ZXNzZXMgRm91bmQgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0K
IAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnSWdub3Jl
U3BlbGxpbmcoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpjb250ZXh0TWVudUl0
ZW1UYWdJZ25vcmVTcGVsbGluZygpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiSWdub3JlIFNw
ZWxsaW5nIiwgIklnbm9yZSBTcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCi1TdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdMZWFyblNwZWxsaW5n
KCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y29udGV4dE1lbnVJdGVtVGFnTGVh
cm5TcGVsbGluZygpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiTGVhcm4gU3BlbGxpbmciLCAi
TGVhcm4gU3BlbGxpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKK1N0cmluZyBQbGF0
Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y29udGV4dE1lbnVJdGVtVGFnU2VhcmNoV2ViKCkKIHsKICAg
ICByZXR1cm4gVUlfU1RSSU5HKCJTZWFyY2ggd2l0aCBHb29nbGUiLCAiU2VhcmNoIGluIEdvb2ds
ZSBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoKQorU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1dpbkNFOjpjb250ZXh0TWVudUl0ZW1UYWdMb29rVXBJbkRpY3Rpb25hcnkoKQog
ewogICAgIHJldHVybiBVSV9TVFJJTkcoIkxvb2sgVXAgaW4gRGljdGlvbmFyeSIsICJMb29rIFVw
IGluIERpY3Rpb25hcnkgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRm
b3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnT3BlbkxpbmsoKQorU3RyaW5nIFBsYXRm
b3JtU3RyYXRlZ2llc1dpbkNFOjpjb250ZXh0TWVudUl0ZW1UYWdPcGVuTGluaygpCiB7CiAgICAg
cmV0dXJuIFVJX1NUUklORygiT3BlbiBMaW5rIiwgIk9wZW4gTGluayBjb250ZXh0IG1lbnUgaXRl
bSIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1U
YWdJZ25vcmVHcmFtbWFyKCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y29udGV4
dE1lbnVJdGVtVGFnSWdub3JlR3JhbW1hcigpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiSWdu
b3JlIEdyYW1tYXIiLCAiSWdub3JlIEdyYW1tYXIgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAot
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnU3BlbGxpbmdN
ZW51KCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y29udGV4dE1lbnVJdGVtVGFn
U3BlbGxpbmdNZW51KCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJTcGVsbGluZyBhbmQgR3Jh
bW1hciIsICJTcGVsbGluZyBhbmQgR3JhbW1hciBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0K
IAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tT
cGVsbGluZygpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNvbnRleHRNZW51SXRl
bVRhZ0NoZWNrU3BlbGxpbmcoKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIkNoZWNrIERvY3Vt
ZW50IE5vdyIsICJDaGVjayBzcGVsbGluZyBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCi1TdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5n
V2hpbGVUeXBpbmcoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpjb250ZXh0TWVu
dUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmcoKQogewogICAgIHJldHVybiBVSV9TVFJJ
TkcoIkNoZWNrIFNwZWxsaW5nIFdoaWxlIFR5cGluZyIsICJDaGVjayBzcGVsbGluZyB3aGlsZSB0
eXBpbmcgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFyV2l0aFNwZWxsaW5nKCkKK1N0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y29udGV4dE1lbnVJdGVtVGFnQ2hlY2tHcmFtbWFy
V2l0aFNwZWxsaW5nKCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJDaGVjayBHcmFtbWFyIFdp
dGggU3BlbGxpbmciLCAiQ2hlY2sgZ3JhbW1hciB3aXRoIHNwZWxsaW5nIGNvbnRleHQgbWVudSBp
dGVtIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRl
bVRhZ0ZvbnRNZW51KCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y29udGV4dE1l
bnVJdGVtVGFnRm9udE1lbnUoKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIkZvbnQiLCAiRm9u
dCBjb250ZXh0IHN1Yi1tZW51IGl0ZW0iKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6Y29udGV4dE1lbnVJdGVtVGFnQm9sZCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
V2luQ0U6OmNvbnRleHRNZW51SXRlbVRhZ0JvbGQoKQogewogICAgIHJldHVybiBVSV9TVFJJTkco
IkJvbGQiLCAiQm9sZCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKQorU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1dpbkNFOjpjb250ZXh0TWVudUl0ZW1UYWdJdGFsaWMoKQogewogICAgIHJldHVy
biBVSV9TVFJJTkcoIkl0YWxpYyIsICJJdGFsaWMgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAot
U3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5l
KCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y29udGV4dE1lbnVJdGVtVGFnVW5k
ZXJsaW5lKCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJVbmRlcmxpbmUiLCAiVW5kZXJsaW5l
IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6
OmNvbnRleHRNZW51SXRlbVRhZ091dGxpbmUoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dp
bkNFOjpjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5H
KCJPdXRsaW5lIiwgIk91dGxpbmUgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAotU3RyaW5nIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnV3JpdGluZ0RpcmVjdGlvbk1l
bnUoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpjb250ZXh0TWVudUl0ZW1UYWdX
cml0aW5nRGlyZWN0aW9uTWVudSgpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiUGFyYWdyYXBo
IERpcmVjdGlvbiIsICJQYXJhZ3JhcGggZGlyZWN0aW9uIGNvbnRleHQgc3ViLW1lbnUgaXRlbSIp
OwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdU
ZXh0RGlyZWN0aW9uTWVudSgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNvbnRl
eHRNZW51SXRlbVRhZ1RleHREaXJlY3Rpb25NZW51KCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5H
KCJTZWxlY3Rpb24gRGlyZWN0aW9uIiwgIlNlbGVjdGlvbiBkaXJlY3Rpb24gY29udGV4dCBzdWIt
bWVudSBpdGVtIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRN
ZW51SXRlbVRhZ0RlZmF1bHREaXJlY3Rpb24oKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dp
bkNFOjpjb250ZXh0TWVudUl0ZW1UYWdEZWZhdWx0RGlyZWN0aW9uKCkKIHsKICAgICByZXR1cm4g
VUlfU1RSSU5HKCJEZWZhdWx0IiwgIkRlZmF1bHQgd3JpdGluZyBkaXJlY3Rpb24gY29udGV4dCBt
ZW51IGl0ZW0iKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1l
bnVJdGVtVGFnTGVmdFRvUmlnaHQoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpj
b250ZXh0TWVudUl0ZW1UYWdMZWZ0VG9SaWdodCgpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygi
TGVmdCB0byBSaWdodCIsICJMZWZ0IHRvIFJpZ2h0IGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAK
LVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ1JpZ2h0VG9M
ZWZ0KCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6Y29udGV4dE1lbnVJdGVtVGFn
UmlnaHRUb0xlZnQoKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIlJpZ2h0IHRvIExlZnQiLCAi
UmlnaHQgdG8gTGVmdCBjb250ZXh0IG1lbnUgaXRlbSIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93U3BlbGxpbmdQYW5lbChib29sIHNo
b3cpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmNvbnRleHRNZW51SXRlbVRhZ1No
b3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdykKIHsKICAgICBpZiAoc2hvdykKICAgICAgICAgcmV0
dXJuIFVJX1NUUklORygiU2hvdyBTcGVsbGluZyBhbmQgR3JhbW1hciIsICJtZW51IGl0ZW0gdGl0
bGUiKTsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJIaWRlIFNwZWxsaW5nIGFuZCBHcmFtbWFyIiwg
Im1lbnUgaXRlbSB0aXRsZSIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpj
b250ZXh0TWVudUl0ZW1UYWdJbnNwZWN0RWxlbWVudCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzV2luQ0U6OmNvbnRleHRNZW51SXRlbVRhZ0luc3BlY3RFbGVtZW50KCkKIHsKICAgICByZXR1
cm4gVUlfU1RSSU5HKCJJbnNwZWN0IEVsZW1lbnQiLCAiSW5zcGVjdCBFbGVtZW50IGNvbnRleHQg
bWVudSBpdGVtIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnNlYXJjaE1l
bnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6
OnNlYXJjaE1lbnVOb1JlY2VudFNlYXJjaGVzVGV4dCgpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklO
RygiTm8gcmVjZW50IHNlYXJjaGVzIiwgIkxhYmVsIGZvciBvbmx5IGl0ZW0gaW4gbWVudSB0aGF0
IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZpZWxkIGltYWdlLCB3aGVuIG5v
IHNlYXJjaGVzIGhhdmUgYmVlbiBwZXJmb3JtZWQiKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6c2VhcmNoTWVudVJlY2VudFNlYXJjaGVzVGV4dCgpCitTdHJpbmcgUGxhdGZv
cm1TdHJhdGVnaWVzV2luQ0U6OnNlYXJjaE1lbnVSZWNlbnRTZWFyY2hlc1RleHQoKQogewogICAg
IHJldHVybiBVSV9TVFJJTkcoIlJlY2VudCBTZWFyY2hlcyIsICJsYWJlbCBmb3IgZmlyc3QgaXRl
bSBpbiB0aGUgbWVudSB0aGF0IGFwcGVhcnMgd2hlbiBjbGlja2luZyBvbiB0aGUgc2VhcmNoIGZp
ZWxkIGltYWdlLCB1c2VkIGFzIGVtYmVkZGVkIG1lbnUgdGl0bGUiKTsKIH0KIAotU3RyaW5nIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6c2VhcmNoTWVudUNsZWFyUmVjZW50U2VhcmNoZXNUZXh0KCkK
K1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6c2VhcmNoTWVudUNsZWFyUmVjZW50U2Vh
cmNoZXNUZXh0KCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJDbGVhciBSZWNlbnQgU2VhcmNo
ZXMiLCAibWVudSBpdGVtIGluIFJlY2VudCBTZWFyY2hlcyBtZW51IHRoYXQgZW1wdGllcyBtZW51
J3MgY29udGVudHMiKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6QVhXZWJB
cmVhVGV4dCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OkFYV2ViQXJlYVRleHQo
KQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIndlYiBhcmVhIiwgImFjY2Vzc2liaWxpdHkgcm9s
ZSBkZXNjcmlwdGlvbiBmb3Igd2ViIGFyZWEiKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6QVhMaW5rVGV4dCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OkFY
TGlua1RleHQoKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoImxpbmsiLCAiYWNjZXNzaWJpbGl0
eSByb2xlIGRlc2NyaXB0aW9uIGZvciBsaW5rIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OkFYTGlzdE1hcmtlclRleHQoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dp
bkNFOjpBWExpc3RNYXJrZXJUZXh0KCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJsaXN0IG1h
cmtlciIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGxpc3QgbWFya2VyIik7
CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OkFYSW1hZ2VNYXBUZXh0KCkKK1N0
cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6QVhJbWFnZU1hcFRleHQoKQogewogICAgIHJl
dHVybiBVSV9TVFJJTkcoImltYWdlIG1hcCIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRp
b24gZm9yIGltYWdlIG1hcCIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpB
WEhlYWRpbmdUZXh0KCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6QVhIZWFkaW5n
VGV4dCgpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiaGVhZGluZyIsICJhY2Nlc3NpYmlsaXR5
IHJvbGUgZGVzY3JpcHRpb24gZm9yIGhlYWRpbmdzIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9y
bVN0cmF0ZWdpZXM6OkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpCitTdHJpbmcgUGxhdGZvcm1T
dHJhdGVnaWVzV2luQ0U6OkFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4dCgpCiB7CiAgICAgcmV0dXJu
IFVJX1NUUklORygidGVybSIsICJ0ZXJtIHdvcmQgb2YgYSBkZWZpbml0aW9uIik7CiB9CiAKLVN0
cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OkFYRGVmaW5pdGlvbkxpc3REZWZpbml0aW9uVGV4
dCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OkFYRGVmaW5pdGlvbkxpc3REZWZp
bml0aW9uVGV4dCgpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiZGVmaW5pdGlvbiIsICJkZWZp
bml0aW9uIHBocmFzZSIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWEJ1
dHRvbkFjdGlvblZlcmIoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpBWEJ1dHRv
bkFjdGlvblZlcmIoKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoInByZXNzIiwgIlZlcmIgc3Rh
dGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgYnV0dG9uIGlzIHByZXNzZWQs
IGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpBWFJhZGlvQnV0dG9uQWN0aW9uVmVyYigpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVn
aWVzV2luQ0U6OkFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCkKIHsKICAgICByZXR1cm4gVUlfU1RS
SU5HKCJzZWxlY3QiLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdo
ZW4gYSByYWRpbyBidXR0b24gaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmlsaXR5Iik7
CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OkFYVGV4dEZpZWxkQWN0aW9uVmVy
YigpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OkFYVGV4dEZpZWxkQWN0aW9uVmVy
YigpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiYWN0aXZhdGUiLCAiVmVyYiBzdGF0aW5nIHRo
ZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSB0ZXh0IGZpZWxkIGlzIHNlbGVjdGVkLCBh
cyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6QVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNXaW5DRTo6QVhDaGVja2VkQ2hlY2tCb3hBY3Rpb25WZXJiKCkKIHsKICAgICByZXR1cm4g
VUlfU1RSSU5HKCJ1bmNoZWNrIiwgIlZlcmIgc3RhdGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBv
Y2N1ciB3aGVuIGEgY2hlY2tlZCBjaGVja2JveCBpcyBjbGlja2VkLCBhcyB1c2VkIGJ5IGFjY2Vz
c2liaWxpdHkiKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6QVhVbmNoZWNr
ZWRDaGVja0JveEFjdGlvblZlcmIoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjpB
WFVuY2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygi
Y2hlY2siLCAiVmVyYiBzdGF0aW5nIHRoZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYW4g
dW5jaGVja2VkIGNoZWNrYm94IGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIp
OwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpBWExpbmtBY3Rpb25WZXJiKCkK
K1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6QVhMaW5rQWN0aW9uVmVyYigpCiB7CiAg
ICAgcmV0dXJuIFVJX1NUUklORygianVtcCIsICJWZXJiIHN0YXRpbmcgdGhlIGFjdGlvbiB0aGF0
IHdpbGwgb2NjdXIgd2hlbiBhIGxpbmsgaXMgY2xpY2tlZCwgYXMgdXNlZCBieSBhY2Nlc3NpYmls
aXR5Iik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OkFYTWVudUxpc3RBY3Rp
b25WZXJiKCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6QVhNZW51TGlzdEFjdGlv
blZlcmIoKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIm9wZW4iLCAiVmVyYiBzdGF0aW5nIHRo
ZSBhY3Rpb24gdGhhdCB3aWxsIG9jY3VyIHdoZW4gYSBzZWxlY3QgZWxlbWVudCBpcyBjbGlja2Vk
LCBhcyB1c2VkIGJ5IGFjY2Vzc2liaWxpdHkiKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3Ry
YXRlZ2llczo6QVhNZW51TGlzdFBvcHVwQWN0aW9uVmVyYigpCitTdHJpbmcgUGxhdGZvcm1TdHJh
dGVnaWVzV2luQ0U6OkFYTWVudUxpc3RQb3B1cEFjdGlvblZlcmIoKQogewogICAgIHJldHVybiBV
SV9TVFJJTkdfS0VZKCJwcmVzcyIsICJwcmVzcyAoc2VsZWN0IGVsZW1lbnQpIiwgIlZlcmIgc3Rh
dGluZyB0aGUgYWN0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIGEgc2VsZWN0IGVsZW1lbnQncyBw
b3B1cCBsaXN0IGlzIGNsaWNrZWQsIGFzIHVzZWQgYnkgYWNjZXNzaWJpbGl0eSIpOwogfQogCi1T
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp1bmtub3duRmlsZVNpemVUZXh0KCkKK1N0cmlu
ZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6dW5rbm93bkZpbGVTaXplVGV4dCgpCiB7CiAgICAg
cmV0dXJuIFVJX1NUUklORygiVW5rbm93biIsICJVbmtub3duIGZpbGVzaXplIEZUUCBkaXJlY3Rv
cnkgbGlzdGluZyBpdGVtIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnVw
bG9hZEZpbGVUZXh0KCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6dXBsb2FkRmls
ZVRleHQoKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoIlVwbG9hZCBmaWxlIiwgIihXaW5kb3dz
KSBGb3JtIHN1Ym1pdCBmaWxlIHVwbG9hZCBkaWFsb2cgdGl0bGUiKTsKIH0KIAotU3RyaW5nIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6YWxsRmlsZXNUZXh0KCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNXaW5DRTo6YWxsRmlsZXNUZXh0KCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5HKCJBbGwg
RmlsZXMiLCAiKFdpbmRvd3MpIEZvcm0gc3VibWl0IGZpbGUgdXBsb2FkIGFsbCBmaWxlcyBwb3At
dXAiKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bWlzc2luZ1BsdWdpblRl
eHQoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjptaXNzaW5nUGx1Z2luVGV4dCgp
CiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygiTWlzc2luZyBQbHVnLWluIiwgIkxhYmVsIHRleHQg
dG8gYmUgdXNlZCB3aGVuIGEgcGx1Z2luIGlzIG1pc3NpbmciKTsKIH0KIAotU3RyaW5nIFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6Y3Jhc2hlZFBsdWdpblRleHQoKQorU3RyaW5nIFBsYXRmb3JtU3Ry
YXRlZ2llc1dpbkNFOjpjcmFzaGVkUGx1Z2luVGV4dCgpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklO
RygiUGx1Zy1pbiBGYWlsdXJlIiwgIkxhYmVsIHRleHQgdG8gYmUgdXNlZCBpZiBwbHVnaW4gaG9z
dCBwcm9jZXNzIGhhcyBjcmFzaGVkIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXM6OmltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6
ZSkgCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmltYWdlVGl0bGUoY29uc3QgU3Ry
aW5nJiBmaWxlbmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6ZSkgCiB7Ci0gICAgUmV0YWluUHRyPENG
U3RyaW5nUmVmPiBmaWxlbmFtZUNGKEFkb3B0Q0YsIGZpbGVuYW1lLmNyZWF0ZUNGU3RyaW5nKCkp
OwotICAgIHJldHVybiBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+KEFkb3B0Q0YsIENGU3RyaW5nQ3Jl
YXRlV2l0aEZvcm1hdCgwLCAwLCBVSV9TVFJJTkcoIiVAICVkXHhDM1x4OTclZCBwaXhlbHMiLCAi
d2luZG93IHRpdGxlIGZvciBhIHN0YW5kYWxvbmUgaW1hZ2UgKHVzZXMgbXVsdGlwbGljYXRpb24g
c3ltYm9sLCBub3QgeCkiKSwgZmlsZW5hbWVDRi5nZXQoKSwgc2l6ZS53aWR0aCgpLCBzaXplLmhl
aWdodCgpKSkuZ2V0KCk7CisgICAgQ1N0cmluZyBmaWxlbmFtZUNTdHJpbmcgPSBmaWxlbmFtZS51
dGY4KCk7CisgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KFVJX1NUUklORygiJXMgJWRceEMzXHg5
NyVkIHBpeGVscyIsICJ3aW5kb3cgdGl0bGUgZm9yIGEgc3RhbmRhbG9uZSBpbWFnZSAodXNlcyBt
dWx0aXBsaWNhdGlvbiBzeW1ib2wsIG5vdCB4KSIpLCBmaWxlbmFtZUNTdHJpbmcuZGF0YSgpLCBz
aXplLndpZHRoKCksIHNpemUuaGVpZ2h0KCkpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjptdWx0aXBsZUZpbGVVcGxvYWRUZXh0KHVuc2lnbmVkIG51bWJlck9mRmlsZXMpCitT
dHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6Om11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5z
aWduZWQgbnVtYmVyT2ZGaWxlcykKIHsKLSAgICByZXR1cm4gUmV0YWluUHRyPENGU3RyaW5nUmVm
PihBZG9wdENGLCBDRlN0cmluZ0NyZWF0ZVdpdGhGb3JtYXQoMCwgMCwgVUlfU1RSSU5HKCIlZCBm
aWxlcyIsICJMYWJlbCB0byBkZXNjcmliZSB0aGUgbnVtYmVyIG9mIGZpbGVzIHNlbGVjdGVkIGlu
IGEgZmlsZSB1cGxvYWQgY29udHJvbCB0aGF0IGFsbG93cyBtdWx0aXBsZSBmaWxlcyIpLCBudW1i
ZXJPZkZpbGVzKSkuZ2V0KCk7CisgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KFVJX1NUUklORygi
JWQgZmlsZXMiLCAiTGFiZWwgdG8gZGVzY3JpYmUgdGhlIG51bWJlciBvZiBmaWxlcyBzZWxlY3Rl
ZCBpbiBhIGZpbGUgdXBsb2FkIGNvbnRyb2wgdGhhdCBhbGxvd3MgbXVsdGlwbGUgZmlsZXMiKSwg
bnVtYmVyT2ZGaWxlcyk7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Om1lZGlh
RWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNF
OjptZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkKIHsKICAgICByZXR1cm4gVUlfU1RSSU5H
KCJMb2FkaW5nLi4uIiwgIk1lZGlhIGNvbnRyb2xsZXIgc3RhdHVzIG1lc3NhZ2Ugd2hlbiB0aGUg
bWVkaWEgaXMgbG9hZGluZyIpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpt
ZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0
ZWdpZXNXaW5DRTo6bWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpCiB7CiAgICAg
cmV0dXJuIFVJX1NUUklORygiTGl2ZSBCcm9hZGNhc3QiLCAiTWVkaWEgY29udHJvbGxlciBzdGF0
dXMgbWVzc2FnZSB3aGVuIHdhdGNoaW5nIGEgbGl2ZSBicm9hZGNhc3QiKTsKIH0KIAotU3RyaW5n
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmlu
Zyhjb25zdCBTdHJpbmcmIG5hbWUpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6Omxv
Y2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nJiBuYW1lKQogewog
ICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQiKQogICAgICAgICByZXR1cm4gVUlfU1RSSU5H
KCJhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0
aW9uIGZvciBhdWRpbyBlbGVtZW50IGNvbnRyb2xsZXIiKTsKQEAgLTU0OSw3ICs1NTEsNyBAQCBT
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2NhbGl6ZWRNCiAgICAgcmV0dXJuIFN0cmlu
ZygpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50SGVscFRleHQoY29uc3QgU3RyaW5nJiBuYW1lKQorU3RyaW5nIFBsYXRmb3Jt
U3RyYXRlZ2llc1dpbkNFOjpsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50SGVscFRleHQoY29u
c3QgU3RyaW5nJiBuYW1lKQogewogICAgIGlmIChuYW1lID09ICJBdWRpb0VsZW1lbnQiKQogICAg
ICAgICByZXR1cm4gVUlfU1RSSU5HKCJhdWRpbyBlbGVtZW50IHBsYXliYWNrIGNvbnRyb2xzIGFu
ZCBzdGF0dXMgZGlzcGxheSIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGF1
ZGlvIGVsZW1lbnQgY29udHJvbGxlciIpOwpAQCAtNTkyLDcgKzU5NCw3IEBAIFN0cmluZyBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmxvY2FsaXplZE0KICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAK
LVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmxvY2FsaXplZE1lZGlhVGltZURlc2NyaXB0
aW9uKGZsb2F0IHRpbWUpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmxvY2FsaXpl
ZE1lZGlhVGltZURlc2NyaXB0aW9uKGZsb2F0IHRpbWUpCiB7CiAgICAgaWYgKCFpc2Zpbml0ZSh0
aW1lKSkKICAgICAgICAgcmV0dXJuIFVJX1NUUklORygiaW5kZWZpbml0ZSB0aW1lIiwgImFjY2Vz
c2liaWxpdHkgaGVscCB0ZXh0IGZvciBhbiBpbmRlZmluaXRlIG1lZGlhIGNvbnRyb2xsZXIgdGlt
ZSB2YWx1ZSIpOwpAQCAtNjA0LDU4ICs2MDYsNTggQEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRl
Z2llczo6bG9jYWxpemVkTQogICAgIHNlY29uZHMgJT0gNjA7CiAKICAgICBpZiAoZGF5cykKLSAg
ICAgICAgcmV0dXJuIFJldGFpblB0cjxDRlN0cmluZ1JlZj4oQWRvcHRDRiwgQ0ZTdHJpbmdDcmVh
dGVXaXRoRm9ybWF0KDAsIDAsIFVJX1NUUklORygiJTEkZCBkYXlzICUyJGQgaG91cnMgJTMkZCBt
aW51dGVzICU0JGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEg
Y29udHJvbGxlciB0aW1lIHZhbHVlID49IDEgZGF5IiksIGRheXMsIGhvdXJzLCBtaW51dGVzLCBz
ZWNvbmRzKSkuZ2V0KCk7CisgICAgICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdChVSV9TVFJJTkco
IiUxJGQgZGF5cyAlMiRkIGhvdXJzICUzJGQgbWludXRlcyAlNCRkIHNlY29uZHMiLCAiYWNjZXNz
aWJpbGl0eSBoZWxwIHRleHQgZm9yIG1lZGlhIGNvbnRyb2xsZXIgdGltZSB2YWx1ZSA+PSAxIGRh
eSIpLCBkYXlzLCBob3VycywgbWludXRlcywgc2Vjb25kcyk7CiAKICAgICBpZiAoaG91cnMpCi0g
ICAgICAgIHJldHVybiBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+KEFkb3B0Q0YsIENGU3RyaW5nQ3Jl
YXRlV2l0aEZvcm1hdCgwLCAwLCBVSV9TVFJJTkcoIiUxJGQgaG91cnMgJTIkZCBtaW51dGVzICUz
JGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxl
ciB0aW1lIHZhbHVlID49IDYwIG1pbnV0ZXMiKSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMpKS5n
ZXQoKTsKKyAgICAgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KFVJX1NUUklORygiJTEkZCBob3Vy
cyAlMiRkIG1pbnV0ZXMgJTMkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0ZXh0IGZv
ciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gNjAgbWludXRlcyIpLCBob3VycywgbWlu
dXRlcywgc2Vjb25kcyk7CiAKICAgICBpZiAobWludXRlcykKLSAgICAgICAgcmV0dXJuIFJldGFp
blB0cjxDRlN0cmluZ1JlZj4oQWRvcHRDRiwgQ0ZTdHJpbmdDcmVhdGVXaXRoRm9ybWF0KDAsIDAs
IFVJX1NUUklORygiJTEkZCBtaW51dGVzICUyJGQgc2Vjb25kcyIsICJhY2Nlc3NpYmlsaXR5IGhl
bHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1lIHZhbHVlID49IDYwIHNlY29uZHMiKSwg
bWludXRlcywgc2Vjb25kcykpLmdldCgpOworICAgICAgICByZXR1cm4gU3RyaW5nOjpmb3JtYXQo
VUlfU1RSSU5HKCIlMSRkIG1pbnV0ZXMgJTIkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVs
cCB0ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPj0gNjAgc2Vjb25kcyIpLCBt
aW51dGVzLCBzZWNvbmRzKTsKIAotICAgIHJldHVybiBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+KEFk
b3B0Q0YsIENGU3RyaW5nQ3JlYXRlV2l0aEZvcm1hdCgwLCAwLCBVSV9TVFJJTkcoIiUxJGQgc2Vj
b25kcyIsICJhY2Nlc3NpYmlsaXR5IGhlbHAgdGV4dCBmb3IgbWVkaWEgY29udHJvbGxlciB0aW1l
IHZhbHVlIDwgNjAgc2Vjb25kcyIpLCBzZWNvbmRzKSkuZ2V0KCk7CisgICAgcmV0dXJuIFN0cmlu
Zzo6Zm9ybWF0KFVJX1NUUklORygiJTEkZCBzZWNvbmRzIiwgImFjY2Vzc2liaWxpdHkgaGVscCB0
ZXh0IGZvciBtZWRpYSBjb250cm9sbGVyIHRpbWUgdmFsdWUgPCA2MCBzZWNvbmRzIiksIHNlY29u
ZHMpOwogfQogCi1TdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp2YWxpZGF0aW9uTWVzc2Fn
ZVZhbHVlTWlzc2luZ1RleHQoKQorU3RyaW5nIFBsYXRmb3JtU3RyYXRlZ2llc1dpbkNFOjp2YWxp
ZGF0aW9uTWVzc2FnZVZhbHVlTWlzc2luZ1RleHQoKQogewogICAgIHJldHVybiBVSV9TVFJJTkco
InZhbHVlIG1pc3NpbmciLCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciByZXF1aXJlZCBmb3JtIGNv
bnRyb2wgZWxlbWVudHMgdGhhdCBoYXZlIG5vIHZhbHVlIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNoVGV4dCgpCitTdHJp
bmcgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OnZhbGlkYXRpb25NZXNzYWdlVHlwZU1pc21hdGNo
VGV4dCgpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygidHlwZSBtaXNtYXRjaCIsICJWYWxpZGF0
aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCBhIHZhbHVlIG5vdCBtYXRj
aGluZyB0eXBlIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnZhbGlkYXRp
b25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVz
V2luQ0U6OnZhbGlkYXRpb25NZXNzYWdlUGF0dGVybk1pc21hdGNoVGV4dCgpCiB7CiAgICAgcmV0
dXJuIFVJX1NUUklORygicGF0dGVybiBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9y
IGlucHV0IGZvcm0gY29udHJvbHMgcmVxdWlyaW5nIGEgY29uc3RyYWluZWQgdmFsdWUgYWNjb3Jk
aW5nIHRvIHBhdHRlcm4iKTsKIH0KIAotU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6dmFs
aWRhdGlvbk1lc3NhZ2VUb29Mb25nVGV4dCgpCitTdHJpbmcgUGxhdGZvcm1TdHJhdGVnaWVzV2lu
Q0U6OnZhbGlkYXRpb25NZXNzYWdlVG9vTG9uZ1RleHQoKQogewogICAgIHJldHVybiBVSV9TVFJJ
TkcoInRvbyBsb25nIiwgIlZhbGlkYXRpb24gbWVzc2FnZSBmb3IgZm9ybSBjb250cm9sIGVsZW1l
bnRzIHdpdGggYSB2YWx1ZSBsb25nZXIgdGhhbiBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoIik7CiB9
CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnZhbGlkYXRpb25NZXNzYWdlUmFuZ2VV
bmRlcmZsb3dUZXh0KCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6dmFsaWRhdGlv
bk1lc3NhZ2VSYW5nZVVuZGVyZmxvd1RleHQoKQogewogICAgIHJldHVybiBVSV9TVFJJTkcoInJh
bmdlIHVuZGVyZmxvdyIsICJWYWxpZGF0aW9uIG1lc3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJv
bHMgd2l0aCB2YWx1ZSBsb3dlciB0aGFuIGFsbG93ZWQgbWluaW11bSIpOwogfQogCi1TdHJpbmcg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjp2YWxpZGF0aW9uTWVzc2FnZVJhbmdlT3ZlcmZsb3dUZXh0
KCkKK1N0cmluZyBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRTo6dmFsaWRhdGlvbk1lc3NhZ2VSYW5n
ZU92ZXJmbG93VGV4dCgpCiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygicmFuZ2Ugb3ZlcmZsb3ci
LCAiVmFsaWRhdGlvbiBtZXNzYWdlIGZvciBpbnB1dCBmb3JtIGNvbnRyb2xzIHdpdGggdmFsdWUg
aGlnaGVyIHRoYW4gYWxsb3dlZCBtYXhpbXVtIik7CiB9CiAKLVN0cmluZyBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgpCitTdHJpbmcgUGxh
dGZvcm1TdHJhdGVnaWVzV2luQ0U6OnZhbGlkYXRpb25NZXNzYWdlU3RlcE1pc21hdGNoVGV4dCgp
CiB7CiAgICAgcmV0dXJuIFVJX1NUUklORygic3RlcCBtaXNtYXRjaCIsICJWYWxpZGF0aW9uIG1l
c3NhZ2UgZm9yIGlucHV0IGZvcm0gY29udHJvbHMgd2l0aCB2YWx1ZSBub3QgcmVzcGVjdGluZyB0
aGUgc3RlcCBhdHRyaWJ1dGUiKTsKIH0KIAotYm9vbCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6Omlz
TGlua1Zpc2l0ZWQoUGFnZSogcGFnZSwgTGlua0hhc2ggaGFzaCkKK2Jvb2wgUGxhdGZvcm1TdHJh
dGVnaWVzV2luQ0U6OmlzTGlua1Zpc2l0ZWQoUGFnZSogcGFnZSwgTGlua0hhc2ggaGFzaCkKIHsK
ICAgICByZXR1cm4gcGFnZS0+Z3JvdXAoKS5pc0xpbmtWaXNpdGVkKGhhc2gpOwogfQogCi12b2lk
IFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6YWRkVmlzaXRlZExpbmsoUGFnZSogcGFnZSwgTGlua0hh
c2ggaGFzaCkKK3ZvaWQgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0U6OmFkZFZpc2l0ZWRMaW5rKFBh
Z2UqIHBhZ2UsIExpbmtIYXNoIGhhc2gpCiB7CiAgICAgcGFnZS0+Z3JvdXAoKS5hZGRWaXNpdGVk
TGlua0hhc2goaGFzaCk7CiB9CkluZGV4OiBXZWJLaXRcd2luY2VcV2ViQ29yZVN1cHBvcnRcUGxh
dGZvcm1TdHJhdGVnaWVzV2luQ0UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXRcd2luY2VcV2ViQ29y
ZVN1cHBvcnRcUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaAkocmV2aXNpb24gNjgwNDIpCShmcm9t
IFdlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6NjgwNDIp
CisrKyBXZWJLaXRcd2luY2VcV2ViQ29yZVN1cHBvcnRcUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0Uu
aAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYg
V2ViUGxhdGZvcm1TdHJhdGVnaWVzX2gKKyNkZWZpbmUgV2ViUGxhdGZvcm1TdHJhdGVnaWVzX2gK
KworI2luY2x1ZGUgPFdlYkNvcmUvTG9jYWxpemF0aW9uU3RyYXRlZ3kuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1BsYXRmb3JtU3RyYXRlZ2llcy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGx1Z2luU3Ry
YXRlZ3kuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1Zpc2l0ZWRMaW5rU3RyYXRlZ3kuaD4KKworY2xh
c3MgV2ViUGxhdGZvcm1TdHJhdGVnaWVzIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRl
Z2llcywgcHJpdmF0ZSBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpM
b2NhbGl6YXRpb25TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5
IHsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7CisgICAgCitwcml2YXRl
OgorICAgIFdlYlBsYXRmb3JtU3RyYXRlZ2llcygpOworICAgIAorICAgIC8vIFdlYkNvcmU6OlBs
YXRmb3JtU3RyYXRlZ2llcworICAgIHZpcnR1YWwgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3kqIGNy
ZWF0ZVBsdWdpblN0cmF0ZWd5KCk7CisgICAgdmlydHVhbCBXZWJDb3JlOjpMb2NhbGl6YXRpb25T
dHJhdGVneSogY3JlYXRlTG9jYWxpemF0aW9uU3RyYXRlZ3koKTsKKyAgICB2aXJ0dWFsIFdlYkNv
cmU6OlZpc2l0ZWRMaW5rU3RyYXRlZ3kqIGNyZWF0ZVZpc2l0ZWRMaW5rU3RyYXRlZ3koKTsKKwor
ICAgIC8vIFdlYkNvcmU6OlBsdWdpblN0cmF0ZWd5CisgICAgdmlydHVhbCB2b2lkIHJlZnJlc2hQ
bHVnaW5zKCk7CisgICAgdmlydHVhbCB2b2lkIGdldFBsdWdpbkluZm8oY29uc3QgV2ViQ29yZTo6
UGFnZSosIFZlY3RvcjxXZWJDb3JlOjpQbHVnaW5JbmZvPiYpOworCisgICAgLy8gV2ViQ29yZTo6
TG9jYWxpemF0aW9uU3RyYXRlZ3kgICAgCisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBpbnB1dEVs
ZW1lbnRBbHRUZXh0KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyByZXNldEJ1dHRvbkRlZmF1
bHRMYWJlbCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgc2VhcmNoYWJsZUluZGV4SW50cm9k
dWN0aW9uKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBzdWJtaXRCdXR0b25EZWZhdWx0TGFi
ZWwoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGZpbGVCdXR0b25DaG9vc2VGaWxlTGFiZWwo
KTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGZpbGVCdXR0b25Ob0ZpbGVTZWxlY3RlZExhYmVs
KCk7CisjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdPcGVuTGlua0luTmV3V2luZG93KCk7CisgICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZExpbmtUb0Rpc2soKTsKKyAgICB2aXJ0
dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlMaW5rVG9DbGlwYm9hcmQoKTsK
KyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3
V2luZG93KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3du
bG9hZEltYWdlVG9EaXNrKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKTsKKyAgICB2aXJ0dWFsIFdURjo6
U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHkoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29u
dGV4dE1lbnVJdGVtVGFnR29Gb3J3YXJkKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdTdG9wKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdSZWxvYWQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0N1dCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnUGFz
dGUoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ05vR3Vlc3Nl
c0ZvdW5kKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdJZ25v
cmVTcGVsbGluZygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
TGVhcm5TcGVsbGluZygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnU2VhcmNoV2ViKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdMb29rVXBJbkRpY3Rpb25hcnkoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ09wZW5MaW5rKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdJZ25vcmVHcmFtbWFyKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdTcGVsbGluZ01lbnUoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKGJvb2wgc2hvdyk7CisgICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nKCk7CisgICAgdmlydHVh
bCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDaGVja1NwZWxsaW5nV2hpbGVUeXBpbmco
KTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NoZWNrR3JhbW1h
cldpdGhTcGVsbGluZygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnRm9udE1lbnUoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRh
Z0JvbGQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0l0YWxp
YygpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVW5kZXJsaW5l
KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPdXRsaW5lKCk7
CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdXcml0aW5nRGlyZWN0
aW9uTWVudSgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnVGV4
dERpcmVjdGlvbk1lbnUoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ0RlZmF1bHREaXJlY3Rpb24oKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRN
ZW51SXRlbVRhZ0xlZnRUb1JpZ2h0KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0
TWVudUl0ZW1UYWdSaWdodFRvTGVmdCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnSW5zcGVjdEVsZW1lbnQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ09wZW5WaWRlb0luTmV3V2luZG93KCk7CisgICAgdmlydHVhbCBXVEY6
OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuQXVkaW9Jbk5ld1dpbmRvdygpOworICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weVZpZGVvTGlua1RvQ2xpcGJv
YXJkKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5QXVk
aW9MaW5rVG9DbGlwYm9hcmQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ1RvZ2dsZU1lZGlhQ29udHJvbHMoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNv
bnRleHRNZW51SXRlbVRhZ1RvZ2dsZU1lZGlhTG9vcCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJp
bmcgY29udGV4dE1lbnVJdGVtVGFnRW50ZXJWaWRlb0Z1bGxzY3JlZW4oKTsKKyAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ01lZGlhUGxheSgpOworICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFQYXVzZSgpOworICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnTWVkaWFNdXRlKCk7CisjZW5kaWYgLy8gRU5B
QkxFKENPTlRFWFRfTUVOVVMpCisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBzZWFyY2hNZW51Tm9S
ZWNlbnRTZWFyY2hlc1RleHQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVS
ZWNlbnRTZWFyY2hlc1RleHQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHNlYXJjaE1lbnVD
bGVhclJlY2VudFNlYXJjaGVzVGV4dCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhXZWJB
cmVhVGV4dCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhMaW5rVGV4dCgpOworICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgQVhMaXN0TWFya2VyVGV4dCgpOworICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgQVhJbWFnZU1hcFRleHQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYSGVhZGlu
Z1RleHQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYRGVmaW5pdGlvbkxpc3RUZXJtVGV4
dCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgQVhEZWZpbml0aW9uTGlzdERlZmluaXRpb25U
ZXh0KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBBWEJ1dHRvbkFjdGlvblZlcmIoKTsKKyAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIEFYUmFkaW9CdXR0b25BY3Rpb25WZXJiKCk7CisgICAgdmly
dHVhbCBXVEY6OlN0cmluZyBBWFRleHRGaWVsZEFjdGlvblZlcmIoKTsKKyAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIEFYQ2hlY2tlZENoZWNrQm94QWN0aW9uVmVyYigpOworICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgQVhVbmNoZWNrZWRDaGVja0JveEFjdGlvblZlcmIoKTsKKyAgICB2aXJ0dWFsIFdU
Rjo6U3RyaW5nIEFYTWVudUxpc3RBY3Rpb25WZXJiKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmlu
ZyBBWE1lbnVMaXN0UG9wdXBBY3Rpb25WZXJiKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBB
WExpbmtBY3Rpb25WZXJiKCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBtaXNzaW5nUGx1Z2lu
VGV4dCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY3Jhc2hlZFBsdWdpblRleHQoKTsKKyAg
ICB2aXJ0dWFsIFdURjo6U3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRleHQodW5zaWduZWQgbnVt
YmVyT2ZGaWxlcyk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyB1bmtub3duRmlsZVNpemVUZXh0
KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyB1cGxvYWRGaWxlVGV4dCgpOworICAgIHZpcnR1
YWwgV1RGOjpTdHJpbmcgYWxsRmlsZXNUZXh0KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBp
bWFnZVRpdGxlKGNvbnN0IFdURjo6U3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgV2ViQ29yZTo6SW50
U2l6ZSYpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRl
VGV4dCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2Fz
dFN0YXRlVGV4dCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgbG9jYWxpemVkTWVkaWFDb250
cm9sRWxlbWVudFN0cmluZyhjb25zdCBXVEY6OlN0cmluZyYpOworICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudEhlbHBUZXh0KGNvbnN0IFdURjo6U3Ry
aW5nJik7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBsb2NhbGl6ZWRNZWRpYVRpbWVEZXNjcmlw
dGlvbihmbG9hdCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyB2YWxpZGF0aW9uTWVzc2FnZVZh
bHVlTWlzc2luZ1RleHQoKTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIHZhbGlkYXRpb25NZXNz
YWdlVHlwZU1pc21hdGNoVGV4dCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgdmFsaWRhdGlv
bk1lc3NhZ2VQYXR0ZXJuTWlzbWF0Y2hUZXh0KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVRvb0xvbmdUZXh0KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyB2
YWxpZGF0aW9uTWVzc2FnZVJhbmdlVW5kZXJmbG93VGV4dCgpOworICAgIHZpcnR1YWwgV1RGOjpT
dHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VSYW5nZU92ZXJmbG93VGV4dCgpOworICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgdmFsaWRhdGlvbk1lc3NhZ2VTdGVwTWlzbWF0Y2hUZXh0KCk7CisKKyAgICAv
LyBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5CisgICAgdmlydHVhbCBib29sIGlzTGlua1Zp
c2l0ZWQoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkxpbmtIYXNoKTsKKyAgICB2aXJ0dWFsIHZv
aWQgYWRkVmlzaXRlZExpbmsoV2ViQ29yZTo6UGFnZSosIFdlYkNvcmU6OkxpbmtIYXNoKTsKK307
CisKKyNlbmRpZiAvLyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXNfaApJbmRleDogV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L1BsYXRmb3JtU3RyYXRlZ2llc1dpbkNFLmgNCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCi0t
LSBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0UuaAko
cmV2aXNpb24gNjgwNDIpCisrKyBXZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvUGxhdGZvcm1T
dHJhdGVnaWVzV2luQ0UuaAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwIFBhdHJpY2sgR2Fuc3RlcmVyIDxwYXJvZ2FAcGFyb2dhLmNvbT4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMTAsMzQgKzEwLDMzIEBACiAgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCiAgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgogICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKLSNpZm5kZWYgV2ViUGxhdGZvcm1TdHJhdGVnaWVzX2gKLSNkZWZpbmUgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzX2gKKyNpZm5kZWYgUGxhdGZvcm1TdHJhdGVnaWVzV2luQ0VfaAorI2RlZmlu
ZSBQbGF0Zm9ybVN0cmF0ZWdpZXNXaW5DRV9oCiAKLSNpbmNsdWRlIDxXZWJDb3JlL0xvY2FsaXph
dGlvblN0cmF0ZWd5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybVN0cmF0ZWdpZXMuaD4K
LSNpbmNsdWRlIDxXZWJDb3JlL1BsdWdpblN0cmF0ZWd5Lmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9W
aXNpdGVkTGlua1N0cmF0ZWd5Lmg+CisjaW5jbHVkZSAiTG9jYWxpemF0aW9uU3RyYXRlZ3kuaCIK
KyNpbmNsdWRlICJQbGF0Zm9ybVN0cmF0ZWdpZXMuaCIKKyNpbmNsdWRlICJQbHVnaW5TdHJhdGVn
eS5oIgorI2luY2x1ZGUgIlZpc2l0ZWRMaW5rU3RyYXRlZ3kuaCIKIAotY2xhc3MgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcywgcHJpdmF0
ZSBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpMb2NhbGl6YXRpb25T
dHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5IHsKK2NsYXNzIFBs
YXRmb3JtU3RyYXRlZ2llc1dpbkNFIDogcHVibGljIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2ll
cywgcHJpdmF0ZSBXZWJDb3JlOjpQbHVnaW5TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpMb2Nh
bGl6YXRpb25TdHJhdGVneSwgcHJpdmF0ZSBXZWJDb3JlOjpWaXNpdGVkTGlua1N0cmF0ZWd5IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBpbml0aWFsaXplKCk7Ci0gICAgCisKIHByaXZhdGU6
Ci0gICAgV2ViUGxhdGZvcm1TdHJhdGVnaWVzKCk7Ci0gICAgCisgICAgUGxhdGZvcm1TdHJhdGVn
aWVzV2luQ0UoKTsKKwogICAgIC8vIFdlYkNvcmU6OlBsYXRmb3JtU3RyYXRlZ2llcwogICAgIHZp
cnR1YWwgV2ViQ29yZTo6UGx1Z2luU3RyYXRlZ3kqIGNyZWF0ZVBsdWdpblN0cmF0ZWd5KCk7CiAg
ICAgdmlydHVhbCBXZWJDb3JlOjpMb2NhbGl6YXRpb25TdHJhdGVneSogY3JlYXRlTG9jYWxpemF0
aW9uU3RyYXRlZ3koKTsKQEAgLTE0Niw0ICsxNDUsNCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwg
dm9pZCBhZGRWaXNpdGVkTGluayhXZWJDb3JlOjpQYWdlKiwgV2ViQ29yZTo6TGlua0hhc2gpOwog
fTsKIAotI2VuZGlmIC8vIFdlYlBsYXRmb3JtU3RyYXRlZ2llc19oCisjZW5kaWYgLy8gUGxhdGZv
cm1TdHJhdGVnaWVzV2luQ0VfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>