<?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>50803</bug_id>
          
          <creation_ts>2010-12-09 23:20:58 -0800</creation_ts>
          <short_desc>The commit-queue should file bugs about flaky tests it encounters</short_desc>
          <delta_ts>2010-12-10 17:36:31 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>50853</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>abarth</cc>
    
    <cc>dbates</cc>
    
    <cc>eric</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>319950</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-09 23:20:58 -0800</bug_when>
    <thetext>The commit-queue should file bugs about flaky tests it encounters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319951</commentid>
    <comment_count>1</comment_count>
      <attachid>76164</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-09 23:25:28 -0800</bug_when>
    <thetext>Created attachment 76164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319952</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-09 23:26:17 -0800</bug_when>
    <thetext>webkit-patch suggest-reviewers was a bit overzealous for this bug.  I think we should probably limit it to 5 CCs or something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319953</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-09 23:27:54 -0800</bug_when>
    <thetext>Dropping most of the CC&apos;s feel free to add yourself back of course.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319955</commentid>
    <comment_count>4</comment_count>
      <attachid>76166</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-09 23:32:37 -0800</bug_when>
    <thetext>Created attachment 76166
upload the right patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319976</commentid>
    <comment_count>5</comment_count>
      <attachid>76166</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-12-09 23:59:04 -0800</bug_when>
    <thetext>Comment on attachment 76166
upload the right patch

View in context: https://bugs.webkit.org/attachment.cgi?id=76166&amp;action=review

I fear this will annoy people too much, but it seems better than our previous design.

&gt; WebKitTools/Scripts/webkitpy/tool/bot/flakytestreporter.py:102
&gt; +            latest_flake_message = &quot;The %s just saw %s flake while processing patch %s on bug %s.&quot; % (self._bot_name, flaky_test, patch.id(), patch.bug_id())

You should say attachment instead of patch to get autolinking to work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319985</commentid>
    <comment_count>6</comment_count>
      <attachid>76166</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-12-10 00:04:49 -0800</bug_when>
    <thetext>Comment on attachment 76166
upload the right patch

View in context: https://bugs.webkit.org/attachment.cgi?id=76166&amp;action=review

&gt; WebKitTools/Scripts/webkitpy/common/config/urls.py:1
&gt; +# Copyright (c) 2010, Google Inc. All rights reserved.

Casually looked at this patch and noticed that you have an extraneous comma after 2010.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320001</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-10 00:31:51 -0800</bug_when>
    <thetext>Committed r73692: &lt;http://trac.webkit.org/changeset/73692&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320019</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-10 01:30:31 -0800</bug_when>
    <thetext>Committed r73694: &lt;http://trac.webkit.org/changeset/73694&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320300</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-10 12:04:47 -0800</bug_when>
    <thetext>You can see the first two it&apos;s filed here:
https://bugs.webkit.org/show_bug.cgi?id=50822
https://bugs.webkit.org/show_bug.cgi?id=50823</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320515</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-10 17:36:31 -0800</bug_when>
    <thetext>*** Bug 45740 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76164</attachid>
            <date>2010-12-09 23:25:28 -0800</date>
            <delta_ts>2010-12-09 23:32:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-50803-20101209232526.patch</filename>
            <type>text/plain</type>
            <size>34475</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBiYTZkZjBmMTI2YzI0NWQzY2VhZDk4NGM0MjA3MDdkODhjZGMyMDBlLi41NjMwMjU2
NzljYjYwYzZlODY4MjQ3MDIzMmFlNTRlMzY3NzVjN2NlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDIgQEAK
IDIwMTAtMTItMDkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjb21taXQtcXVldWUgc2hv
dWxkIGZpbGUgYnVncyBhYm91dCBmbGFreSB0ZXN0cyBpdCBlbmNvdW50ZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDgwMworCisgICAgICAgIFRo
aXMgY2hhbmdlIGdvdCBhIGJpdCBiaWcuICBJIGFsc28gYWRkZWQgYSBuZXcgY29uZmlnLnVybHMg
ZmlsZQorICAgICAgICBiZWNhdXNlIEkgbmVlZGVkIHRvIHNoYXJlIHRoZSB2aWV3X3NvdXJjZV91
cmwgY29kZSB3aXRoIGNvbW1pdHRlcnZhbGlkYXRvci5weS4KKworICAgICAgICBUaGlzIGFkZHMg
YSBuZXcgY2xhc3MgRmxha3lUZXN0UmVwb3J0ZXIgd2hpY2ggaG9sZHMgYWxsIHRoZSBsb2dpYyBh
Ym91dAorICAgICAgICByZXBvcnRpbmcgZmxha3kgdGVzdHMgdG8gYnVnemlsbGEuCisKKyAgICAg
ICAgUmlnaHQgbm93IHRoaXMgY29kZSBrbm93cyBob3cgdG8gbG9vayB1cCBidWdzIGZvciBmbGFr
eSB0ZXN0cy4KKyAgICAgICAgSWYgaXQgY2FuJ3QgZmluZCBhIGJ1ZyBmaWxlZCBmcm9tIHRoZSBj
b21taXQtcXVldWUsIGl0IHdpbGwgb3BlbiBhIG5ldworICAgICAgICBvbmUsIGNjaW5nIHRoZSBy
ZWxldmFudCBwZW9wbGUgYW5kIGFkZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmFpbHVyZS4K
KworICAgICAgICBJdCBpcyBub3QgeWV0IHNtYXJ0IGVub3VnaCB0byBjaGFzZSBkb3duIGR1cGxp
Y2F0ZSBjaGFpbnMsIG9yIHRvIGluY2x1ZGUKKyAgICAgICAgdGhlIGFjdHVhbCBmYWlsdXJlIGRp
ZmYuICBCdXQgdGhvc2UgY2FuIGJlIGFkZGVkIGluIGxhdGVyIGl0ZXJhdGlvbnMuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9hcGkucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NvbW1pdGluZm8ucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnZhbGlkYXRvci5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvdXJscy5weTogQ29waWVk
IGZyb20gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1lbnRzLnB5LgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWd6aWxsYS5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZsYWt5dGVzdHJlcG9ydGVyLnB5
OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZsYWt5dGVzdHJl
cG9ydGVyX3VuaXR0ZXN0LnB5OiBDb3BpZWQgZnJvbSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWVudHMucHkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9pcmNfY29tbWFuZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3No
ZXJpZmYucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25s
b2FkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0
dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWVudHMucHk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jb21taXQucHk6CisKKzIwMTAtMTItMDkgIEVyaWMg
U2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFy
dGguCiAKICAgICAgICAgVGVhY2ggd2Via2l0LXBhdGNoIGhvdyB0byBzZWFyY2ggYnVnemlsbGEK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0
L2FwaS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2Fw
aS5weQppbmRleCBkYmUxZTg0MGE0YjAzZDQwYzVhZmU2OTM5NmM2ZDdjYjEyZmYzY2QwLi5hYTRm
ZTZkZmFkZTQwZmI2MjYxMzYzY2M2MmE2YmZjNmUxYzJmOTFhIDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9hcGkucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvYXBpLnB5CkBAIC0yOSw2ICsy
OSw3IEBACiBpbXBvcnQgb3MKIGltcG9ydCBTdHJpbmdJTwogCitmcm9tIHdlYmtpdHB5LmNvbW1v
bi5jb25maWcgaW1wb3J0IHVybHMKIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LmNoYW5n
ZWxvZyBpbXBvcnQgQ2hhbmdlTG9nCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5jb21t
aXRpbmZvIGltcG9ydCBDb21taXRJbmZvCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5z
Y20gaW1wb3J0IENvbW1pdE1lc3NhZ2UKQEAgLTEwNCw4ICsxMDUsNyBAQCBjbGFzcyBDaGVja291
dChvYmplY3QpOgogICAgICAgICBjaGFuZ2Vsb2dfcGF0aHMgPSBzZWxmLm1vZGlmaWVkX2NoYW5n
ZWxvZ3MoZ2l0X2NvbW1pdCwgY2hhbmdlZF9maWxlcykKICAgICAgICAgaWYgbm90IGxlbihjaGFu
Z2Vsb2dfcGF0aHMpOgogICAgICAgICAgICAgcmFpc2UgU2NyaXB0RXJyb3IobWVzc2FnZT0iRm91
bmQgbm8gbW9kaWZpZWQgQ2hhbmdlTG9ncywgY2Fubm90IGNyZWF0ZSBhIGNvbW1pdCBtZXNzYWdl
LlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFsbCBjaGFuZ2VzIHJlcXVpcmUg
YSBDaGFuZ2VMb2cuICBTZWU6XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0
cDovL3dlYmtpdC5vcmcvY29kaW5nL2NvbnRyaWJ1dGluZy5odG1sIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJBbGwgY2hhbmdlcyByZXF1aXJlIGEgQ2hhbmdlTG9nLiAgU2VlOlxu
ICVzIiAlIHVybHMuY29udHJpYnV0aW9uX2d1aWRsaW5lcykKIAogICAgICAgICBjaGFuZ2Vsb2df
bWVzc2FnZXMgPSBbXQogICAgICAgICBmb3IgY2hhbmdlbG9nX3BhdGggaW4gY2hhbmdlbG9nX3Bh
dGhzOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvY2hhbmdlbG9nLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y2hlY2tvdXQvY2hhbmdlbG9nLnB5CmluZGV4IDQwNjU3ZWIxYTNlYWM1MGU4MmVkNmM4NDk3ZGI4
YmY4ZWU5NmIzYTMuLmQzZjk5MGNjOWEwMWU3NTZiNTQ3NzBiZjE3OWRmMTY5MjViN2U1M2EgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2No
YW5nZWxvZy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9jaGFuZ2Vsb2cucHkKQEAgLTM2LDE2ICszNiwxMCBAQCBpbXBvcnQgdGV4dHdyYXAKIAog
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQgbG9n
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcuY29tbWl0dGVycyBpbXBvcnQgQ29tbWl0dGVy
TGlzdAorZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnIGltcG9ydCB1cmxzCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5uZXQuYnVnemlsbGEgaW1wb3J0IHBhcnNlX2J1Z19pZAogCiAKLWRlZiB2aWV3
X3NvdXJjZV91cmwocmV2aXNpb25fbnVtYmVyKToKLSAgICAjIEZJTVhFOiBUaGlzIGRvZXNuJ3Qg
cmVhbGx5IGJlbG9uZyBpbiB0aGlzIGZpbGUsIGJ1dCB3ZSBkb24ndCBoYXZlIGEKLSAgICAjIGJl
dHRlciBob21lIGZvciBpdCB5ZXQuCi0gICAgIyBNYXliZSBldmVudHVhbGx5IGEgd2Via2l0X2Nv
bmZpZy5weT8KLSAgICByZXR1cm4gImh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LyVz
IiAlIHJldmlzaW9uX251bWJlcgotCi0KIGNsYXNzIENoYW5nZUxvZ0VudHJ5KG9iamVjdCk6CiAg
ICAgIyBlLmcuIDIwMDktMDYtMDMgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogICAg
IGRhdGVfbGluZV9yZWdleHAgPSByJ14oP1A8ZGF0ZT5cZHs0fS1cZHsyfS1cZHsyfSlccysoP1A8
bmFtZT4uKz8pXHMrPCg/UDxlbWFpbD5bXjw+XSspPiQnCkBAIC0xNTMsNyArMTQ3LDcgQEAgY2xh
c3MgQ2hhbmdlTG9nKG9iamVjdCk6CiAgICAgIyBUaGlzIHByb2JhYmx5IGRvZXMgbm90IGJlbG9u
ZyBpbiBjaGFuZ2Vsb2dzLnB5CiAgICAgZGVmIF9tZXNzYWdlX2Zvcl9yZXZlcnQoc2VsZiwgcmV2
aXNpb24sIHJlYXNvbiwgYnVnX3VybCk6CiAgICAgICAgIG1lc3NhZ2UgPSAiVW5yZXZpZXdlZCwg
cm9sbGluZyBvdXQgciVzLlxuIiAlIHJldmlzaW9uCi0gICAgICAgIG1lc3NhZ2UgKz0gIiVzXG4i
ICUgdmlld19zb3VyY2VfdXJsKHJldmlzaW9uKQorICAgICAgICBtZXNzYWdlICs9ICIlc1xuIiAl
IHVybHMudmlld19yZXZpc2lvbl91cmwocmV2aXNpb24pCiAgICAgICAgIGlmIGJ1Z191cmw6CiAg
ICAgICAgICAgICBtZXNzYWdlICs9ICIlc1xuIiAlIGJ1Z191cmwKICAgICAgICAgIyBBZGQgYW4g
ZXh0cmEgbmV3IGxpbmUgYWZ0ZXIgdGhlIHJvbGxvdXQgbGlua3MsIGJlZm9yZSBhbnkgcmVhc29u
LgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tv
dXQvY29tbWl0aW5mby5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2No
ZWNrb3V0L2NvbW1pdGluZm8ucHkKaW5kZXggNDQ4ZDUzMDk3M2Y2ODcwNzExMTMxYmE0YjIwOGIw
Y2JkZWFiNTE0Zi4uZjEyMWYzNjgyYTdlZmFlYTE5MjM4ZGZhMjI5ZTAyNTM1NzcwY2JmNiAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY29t
bWl0aW5mby5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVj
a291dC9jb21taXRpbmZvLnB5CkBAIC0yOCw3ICsyOCw3IEBACiAjCiAjIFdlYktpdCdzIHB5dGhv
biBtb2R1bGUgZm9yIGhvbGRpbmcgaW5mb3JtYXRpb24gb24gYSBjb21taXQKIAotZnJvbSB3ZWJr
aXRweS5jb21tb24uY2hlY2tvdXQuY2hhbmdlbG9nIGltcG9ydCB2aWV3X3NvdXJjZV91cmwKK2Zy
b20gd2Via2l0cHkuY29tbW9uLmNvbmZpZyBpbXBvcnQgdXJscwogZnJvbSB3ZWJraXRweS5jb21t
b24uY29uZmlnLmNvbW1pdHRlcnMgaW1wb3J0IENvbW1pdHRlckxpc3QKIAogCkBAIC04NCw3ICs4
NCw3IEBAIGNsYXNzIENvbW1pdEluZm8ob2JqZWN0KToKICAgICAjIEZJWE1FOiBJdCBpcyBzbGln
aHRseSBsYW1lIHRoYXQgdGhpcyAidmlldyIgbWV0aG9kIGlzIG9uIHRoaXMgIm1vZGVsIiBjbGFz
cyAoaW4gTVZDIHRlcm1zKQogICAgIGRlZiBibGFtZV9zdHJpbmcoc2VsZiwgYnVncyk6CiAgICAg
ICAgIHN0cmluZyA9ICJyJXM6XG4iICUgc2VsZi5yZXZpc2lvbigpCi0gICAgICAgIHN0cmluZyAr
PSAiICAlc1xuIiAlIHZpZXdfc291cmNlX3VybChzZWxmLnJldmlzaW9uKCkpCisgICAgICAgIHN0
cmluZyArPSAiICAlc1xuIiAlIHVybHMudmlld19yZXZpc2lvbl91cmwoc2VsZi5yZXZpc2lvbigp
KQogICAgICAgICBzdHJpbmcgKz0gIiAgQnVnOiAlcyAoJXMpXG4iICUgKHNlbGYuYnVnX2lkKCks
IGJ1Z3MuYnVnX3VybF9mb3JfYnVnX2lkKHNlbGYuYnVnX2lkKCkpKQogICAgICAgICBhdXRob3Jf
bGluZSA9ICJcIiVzXCIgPCVzPiIgJSAoc2VsZi5hdXRob3JfbmFtZSgpLCBzZWxmLmF1dGhvcl9l
bWFpbCgpKQogICAgICAgICBzdHJpbmcgKz0gIiAgQXV0aG9yOiAlc1xuIiAlIChzZWxmLmF1dGhv
cigpIG9yIGF1dGhvcl9saW5lKQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnZhbGlkYXRvci5weSBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJ2YWxpZGF0b3IucHkKaW5kZXgg
YjdiMjk5MDY4NDk0OGRiNmFkNGY0NjQ1ZTFkMjJhNDFiODUxYWEwZS4uNDQ5YTQxNmQxNDk4YjU3
MTI0NzFkNjhlMTM0NDQ5YjIwMDg2M2JlOSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnZhbGlkYXRvci5weQorKysgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVydmFsaWRhdG9y
LnB5CkBAIC0zMSw3ICszMSw3IEBACiBpbXBvcnQgb3MKIAogZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLm9zcGF0aCBpbXBvcnQgcmVscGF0aAotZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmln
IGltcG9ydCBjb21taXR0ZXJzCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcgaW1wb3J0IGNv
bW1pdHRlcnMsIHVybHMKIAogCiBjbGFzcyBDb21taXR0ZXJWYWxpZGF0b3Iob2JqZWN0KToKQEAg
LTM5LDEwICszOSw2IEBAIGNsYXNzIENvbW1pdHRlclZhbGlkYXRvcihvYmplY3QpOgogICAgIGRl
ZiBfX2luaXRfXyhzZWxmLCBidWd6aWxsYSk6CiAgICAgICAgIHNlbGYuX2J1Z3ppbGxhID0gYnVn
emlsbGEKIAotICAgICMgX3ZpZXdfc291cmNlX3VybCBiZWxvbmdzIGluIHNvbWUgc29ydCBvZiB3
ZWJraXRfY29uZmlnLnB5IG1vZHVsZS4KLSAgICBkZWYgX3ZpZXdfc291cmNlX3VybChzZWxmLCBs
b2NhbF9wYXRoKToKLSAgICAgICAgcmV0dXJuICJodHRwOi8vdHJhYy53ZWJraXQub3JnL2Jyb3dz
ZXIvdHJ1bmsvJXMiICUgbG9jYWxfcGF0aAotCiAgICAgZGVmIF9jaGVja291dF9yb290KHNlbGYp
OgogICAgICAgICAjIEZJWE1FOiBUaGlzIGlzIGEgaGFjaywgd2Ugd291bGQgaGF2ZSB0aGlzIGZy
b20gc2NtLmNoZWNrb3V0X3Jvb3QKICAgICAgICAgIyBpZiB3ZSBoYWQgYW55IHdheSB0byBnZXQg
dG8gYW4gc2NtIG9iamVjdCBoZXJlLgpAQCAtNTksOCArNTUsNiBAQCBjbGFzcyBDb21taXR0ZXJW
YWxpZGF0b3Iob2JqZWN0KToKICAgICAgICAgcmV0dXJuICIuIi5qb2luKFtwYXRoLCAicHkiXSkK
IAogICAgIGRlZiBfZmxhZ19wZXJtaXNzaW9uX3JlamVjdGlvbl9tZXNzYWdlKHNlbGYsIHNldHRl
cl9lbWFpbCwgZmxhZ19uYW1lKToKLSAgICAgICAgIyBTaG91bGQgY29tZSBmcm9tIHNvbWUgd2Vi
a2l0X2NvbmZpZy5weQotICAgICAgICBjb250cmlidXRpb25fZ3VpZGxpbmVzID0gImh0dHA6Ly93
ZWJraXQub3JnL2NvZGluZy9jb250cmlidXRpbmcuaHRtbCIKICAgICAgICAgIyBUaGlzIGNvdWxk
IGJlIHF1ZXJpZWQgZnJvbSB0aGUgc3RhdHVzX3NlcnZlci4KICAgICAgICAgcXVldWVfYWRtaW5p
c3RyYXRvciA9ICJlc2VpZGVsQGNocm9taXVtLm9yZyIKICAgICAgICAgIyBUaGlzIGNvdWxkIGJl
IHF1ZXJpZWQgZnJvbSB0aGUgdG9vbC4KQEAgLTY5LDkgKzYzLDkgQEAgY2xhc3MgQ29tbWl0dGVy
VmFsaWRhdG9yKG9iamVjdCk6CiAgICAgICAgIG1lc3NhZ2UgPSAiJXMgZG9lcyBub3QgaGF2ZSAl
cyBwZXJtaXNzaW9ucyBhY2NvcmRpbmcgdG8gJXMuIiAlICgKICAgICAgICAgICAgICAgICAgICAg
ICAgIHNldHRlcl9lbWFpbCwKICAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdfbmFtZSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgIHNlbGYuX3ZpZXdfc291cmNlX3VybChjb21taXR0ZXJzX2xp
c3QpKQorICAgICAgICAgICAgICAgICAgICAgICAgdXJscy52aWV3X3NvdXJjZV91cmwoY29tbWl0
dGVyc19saXN0KSkKICAgICAgICAgbWVzc2FnZSArPSAiXG5cbi0gSWYgeW91IGRvIG5vdCBoYXZl
ICVzIHJpZ2h0cyBwbGVhc2UgcmVhZCAlcyBmb3IgaW5zdHJ1Y3Rpb25zIG9uIGhvdyB0byB1c2Ug
YnVnemlsbGEgZmxhZ3MuIiAlICgKLSAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdfbmFtZSwg
Y29udHJpYnV0aW9uX2d1aWRsaW5lcykKKyAgICAgICAgICAgICAgICAgICAgICAgIGZsYWdfbmFt
ZSwgdXJscy5jb250cmlidXRpb25fZ3VpZGxpbmVzKQogICAgICAgICBtZXNzYWdlICs9ICJcblxu
LSBJZiB5b3UgaGF2ZSAlcyByaWdodHMgcGxlYXNlIGNvcnJlY3QgdGhlIGVycm9yIGluICVzIGJ5
IGFkZGluZyB5b3Vyc2VsZiB0byB0aGUgZmlsZSAobm8gcmV2aWV3IG5lZWRlZCkuICAiICUgKAog
ICAgICAgICAgICAgICAgICAgICAgICAgZmxhZ19uYW1lLCBjb21taXR0ZXJzX2xpc3QpCiAgICAg
ICAgIG1lc3NhZ2UgKz0gIlRoZSAlcyByZXN0YXJ0cyBpdHNlbGYgZXZlcnkgMiBob3Vycy4gIEFm
dGVyIHJlc3RhcnQgdGhlICVzIHdpbGwgY29ycmVjdGx5IHJlc3BlY3QgeW91ciAlcyByaWdodHMu
IiAlICgKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2Nv
bmZpZy91cmxzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmln
L3VybHMucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODJkNzQwZDcyYjBiOTllZWI0MjM3Njc2ZTI4MTc2N2ExNjQx
ZmE1OQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29t
bW9uL2NvbmZpZy91cmxzLnB5CkBAIC0wLDAgKzEsMzggQEAKKyMgQ29weXJpZ2h0IChjKSAyMDEw
LCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9y
cyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9t
CisjIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xE
RVJTIEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFS
VElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09Q
WVJJR0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKwor
CitkZWYgdmlld19zb3VyY2VfdXJsKGxvY2FsX3BhdGgpOgorICAgIHJldHVybiAiaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9icm93c2VyL3RydW5rLyVzIiAlIGxvY2FsX3BhdGgKKworCitkZWYgdmll
d19yZXZpc2lvbl91cmwocmV2aXNpb25fbnVtYmVyKToKKyAgICByZXR1cm4gImh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LyVzIiAlIHJldmlzaW9uX251bWJlcgorCisKK2NvbnRyaWJ1
dGlvbl9ndWlkbGluZXMgPSAiaHR0cDovL3dlYmtpdC5vcmcvY29kaW5nL2NvbnRyaWJ1dGluZy5o
dG1sIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vbmV0
L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21t
b24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5CmluZGV4IGEwNjA5YzVlMTEzYWI1ZmEyNWMwYTkx
YzI2NzJlNmNmZmRlYjZjM2IuLmM1ZmQ4ZmM1ZjdmNDA0Yzg3N2FjYWYwMTdmODlmZWMwOTQ2Zjdk
YjIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9i
dWd6aWxsYS9idWd6aWxsYS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGEucHkKQEAgLTE0Niw2ICsxNDYsMTQgQEAgY2xhc3Mg
QnVnemlsbGFRdWVyaWVzKG9iamVjdCk6CiAgICAgICAgIHF1aWNrc2VhcmNoX3VybCA9ICJidWds
aXN0LmNnaT9xdWlja3NlYXJjaD0lcyIgJSB1cmxsaWIucXVvdGUoc2VhcmNoX3N0cmluZykKICAg
ICAgICAgcmV0dXJuIHNlbGYuX2ZldGNoX2J1Z3NfZnJvbV9hZHZhbmNlZF9xdWVyeShxdWlja3Nl
YXJjaF91cmwpCiAKKyAgICBkZWYgZmV0Y2hfYnVnc19tYXRjaGluZ19zZWFyY2goc2VsZiwgc2Vh
cmNoX3N0cmluZywgYXV0aG9yX2VtYWlsPU5vbmUpOgorICAgICAgICBxdWVyeSA9ICJidWdsaXN0
LmNnaT9xdWVyeV9mb3JtYXQ9YWR2YW5jZWQiCisgICAgICAgIGlmIHNlYXJjaF9zdHJpbmc6Cisg
ICAgICAgICAgICBxdWVyeSArPSAiJnNob3J0X2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZzaG9y
dF9kZXNjPSVzIiAlIHVybGxpYi5xdW90ZShzZWFyY2hfc3RyaW5nKQorICAgICAgICBpZiBhdXRo
b3JfZW1haWw6CisgICAgICAgICAgICBxdWVyeSArPSAiJmVtYWlscmVwb3J0ZXIxPTEmZW1haWx0
eXBlMT1zdWJzdHJpbmcmZW1haWwxPSVzIiAlIHVybGxpYi5xdW90ZShzZWFyY2hfc3RyaW5nKQor
ICAgICAgICByZXR1cm4gc2VsZi5fZmV0Y2hfYnVnc19mcm9tX2FkdmFuY2VkX3F1ZXJ5KHF1aWNr
c2VhcmNoX3VybCkKKwogICAgIGRlZiBmZXRjaF9wYXRjaGVzX2Zyb21fcGVuZGluZ19jb21taXRf
bGlzdChzZWxmKToKICAgICAgICAgcmV0dXJuIHN1bShbc2VsZi5fZmV0Y2hfYnVnKGJ1Z19pZCku
cmV2aWV3ZWRfcGF0Y2hlcygpCiAgICAgICAgICAgICBmb3IgYnVnX2lkIGluIHNlbGYuZmV0Y2hf
YnVnX2lkc19mcm9tX3BlbmRpbmdfY29tbWl0X2xpc3QoKV0sIFtdKQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mbGFreXRlc3RyZXBvcnRlci5weSBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZmxha3l0ZXN0cmVwb3J0ZXIu
cHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMTFjZDZiNmYwMDg4NjMxYzc2NzI1NDAyN2FlOTIyMmQ3YTVhNzRlZgot
LS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qv
Zmxha3l0ZXN0cmVwb3J0ZXIucHkKQEAgLTAsMCArMSwxMTQgQEAKKyMgQ29weXJpZ2h0IChjKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisj
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CitpbXBvcnQgbG9nZ2luZworCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJl
c3VsdHMgaW1wb3J0IHBhdGhfZm9yX2xheW91dF90ZXN0LCBMYXlvdXRUZXN0UmVzdWx0cworZnJv
bSB3ZWJraXRweS5jb21tb24uY29uZmlnIGltcG9ydCB1cmxzCitmcm9tIHdlYmtpdHB5LnRvb2wu
Z3JhbW1hciBpbXBvcnQgcGx1cmFsaXplLCBqb2luX3dpdGhfc2VwYXJhdG9ycworCitfbG9nID0g
bG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCisKKworY2xhc3MgRmxha3lUZXN0UmVwb3J0ZXIo
b2JqZWN0KToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgdG9vbCwgYm90X25hbWUpOgorICAgICAg
ICBzZWxmLl90b29sID0gdG9vbAorICAgICAgICBzZWxmLl9ib3RfbmFtZSA9IGJvdF9uYW1lCisK
KyAgICBkZWYgX2F1dGhvcl9lbWFpbHNfZm9yX3Rlc3Qoc2VsZiwgZmxha3lfdGVzdCk6CisgICAg
ICAgIHRlc3RfcGF0aCA9IHBhdGhfZm9yX2xheW91dF90ZXN0KGZsYWt5X3Rlc3QpCisgICAgICAg
IGNvbW1pdF9pbmZvcyA9IHNlbGYuX3Rvb2wuY2hlY2tvdXQoKS5yZWNlbnRfY29tbWl0X2luZm9z
X2Zvcl9maWxlcyhbdGVzdF9wYXRoXSkKKyAgICAgICAgIyBUaGlzIGlnbm9yZXMgYXV0aG9ycyB3
aGljaCBhcmUgbm90IGNvbW1pdHRlcnMgYmVjYXVzZSB3ZSBkb24ndCBoYXZlIHRoZWlyIGJ1Z3pp
bGxhX2VtYWlsLgorICAgICAgICByZXR1cm4gc2V0KFtjb21taXRfaW5mby5hdXRob3IoKS5idWd6
aWxsYV9lbWFpbCgpIGZvciBjb21taXRfaW5mbyBpbiBjb21taXRfaW5mb3MgaWYgY29tbWl0X2lu
Zm8uYXV0aG9yKCldKQorCisgICAgZGVmIF9idWd6aWxsYV9lbWFpbChzZWxmKToKKyAgICAgICAg
IyBUaGlzIGlzIGtpbmRhIGEgZnVubnkgd2F5IHRvIGdldCB0aGUgYnVnemlsbGEgZW1haWwsCisg
ICAgICAgICMgd2UgY291bGQgYWxzbyBqdXN0IGNyZWF0ZSBhIENyZWRlbnRpYWxzIG9iamVjdCBk
aXJlY3RseQorICAgICAgICAjIGJ1dCBzb21lIG9mIHRoZSBDcmVkZW50aWFscyBsb2dpYyBpcyBp
biBidWd6aWxsYS5weSB0b28uLi4KKyAgICAgICAgc2VsZi5fdG9vbC5idWdzLmF1dGhlbnRpY2F0
ZSgpCisgICAgICAgIHJldHVybiBzZWxmLl90b29sLmJ1Z3MudXNlcm5hbWUKKworICAgIGRlZiBf
bG9va3VwX2J1Z19mb3JfZmxha3lfdGVzdChzZWxmLCBmbGFreV90ZXN0KToKKyAgICAgICAgYm90
X2VtYWlsID0gc2VsZi5fYnVnemlsbGFfZW1haWwoKQorICAgICAgICBidWdzID0gc2VsZi5fdG9v
bC5idWdzLnF1ZXJpZXMuZmV0Y2hfYnVnc19tYXRjaGluZ19zZWFyY2goc2VhcmNoX3N0cmluZz1m
bGFreV90ZXN0LCBhdXRob3JfZW1haWw9Ym90X2VtYWlsKQorICAgICAgICBpZiBub3QgYnVnczoK
KyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAgIGlmIGxlbihidWdzKSA+IDE6CisgICAg
ICAgICAgICBfbG9nLndhcm4oIkZvdW5kICVzICVzIG1hdGNoaW5nICclcycgZnJvbSB0aGUgJXMg
KCVzKSwgdXNpbmcgdGhlIGZpcnN0LiIgJSAocGx1cmFsaXplKCdidWcnLCBsZW4oYnVncykpLCBi
dWdzLCBmbGFreV90ZXN0LCBzZWxmLl9ib3RfbmFtZSwgYm90X2VtYWlsKSkKKyAgICAgICAgcmV0
dXJuIGJ1Z3NbMF0KKworICAgIGRlZiBfY3JlYXRlX2J1Z19mb3JfZmxha3lfdGVzdChzZWxmLCBm
bGFreV90ZXN0LCBhdXRob3JfZW1haWxzLCBsYXRlc3RfZmxha2VfbWVzc2FnZSk6CisgICAgICAg
IGZvcm1hdF92YWx1ZXMgPSB7CisgICAgICAgICAgICAndGVzdCc6IGZsYWt5X3Rlc3QsCisgICAg
ICAgICAgICAnYXV0aG9ycyc6IGpvaW5fd2l0aF9zZXBhcmF0b3JzKGF1dGhvcl9lbWFpbHMpLAor
ICAgICAgICAgICAgJ2ZsYWtlX21lc3NhZ2UnOiBsYXRlc3RfZmxha2VfbWVzc2FnZSwKKyAgICAg
ICAgICAgICd0ZXN0X3VybCc6IHVybHMudmlld19zb3VyY2VfdXJsKGZsYWt5X3Rlc3QpLAorICAg
ICAgICAgICAgJ2JvdF9uYW1lJzogc2VsZi5fYm90X25hbWUsCisgICAgICAgIH0KKyAgICAgICAg
dGl0bGUgPSAiRmxha3kgVGVzdDogJSh0ZXN0KXMiICUgZm9ybWF0X3ZhbHVlcworICAgICAgICBk
ZXNjcmlwdGlvbiA9ICIiIlRoaXMgaXMgYW4gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYnVnIGZy
b20gdGhlICUoYm90X25hbWUpcy4KKyUodGVzdClzIGhhcyBiZWVuIGZsYWt5IG9uIHRoZSAlKGJv
dF9uYW1lKXMuCislKHRlc3QpcyB3YXMgYXV0aG9yZWQgYnkgJShhdXRob3JzKXMuCislKHRlc3Rf
dXJsKXMKKworJShmbGFrZV9tZXNzYWdlKXMKKworVGhlIGJvdHMgd2lsbCB1cGRhdGUgdGhpcyB3
aXRoIGluZm9ybWF0aW9uIGZyb20gZWFjaCBuZXcgZmFpbHVyZS4KKworSWYgeW91IHdvdWxkIGxp
a2UgdG8gdHJhY2sgdGhpcyB0ZXN0IGZpeCB3aXRoIGFub3RoZXIgYnVnLCBwbGVhc2UgY2xvc2Ug
dGhpcyBidWcgYXMgYSBkdXBsaWNhdGUuCisiIiIgJSBmb3JtYXRfdmFsdWVzCisKKyAgICAgICAg
c2VsZi5fdG9vbF9idWdzLmNyZWF0ZV9idWcodGl0bGUsIGRlc2NyaXB0aW9uLAorICAgICAgICAg
ICAgY29tcG9uZW50PSJUb29scyAvIFRlc3RzIiwKKyAgICAgICAgICAgIGNjPSIsIi5qb2luKGF1
dGhvcl9idWd6aWxsYV9lbWFpbHMpKQorCisgICAgIyBUaGlzIGlzIG92ZXItZW5naW5lZXJlZCwg
YnV0IGl0IG1ha2VzIGZvciBwcmV0dHkgYnVnIG1lc3NhZ2VzLgorICAgIGRlZiBfb3B0aW9uYWxf
YXV0aG9yX3N0cmluZyhzZWxmLCBhdXRob3JfZW1haWxzKToKKyAgICAgICAgaWYgbm90IGF1dGhv
cl9lbWFpbHM6CisgICAgICAgICAgICByZXR1cm4gIiIKKyAgICAgICAgaGVhZGluZ19zdHJpbmcg
PSBwbHVyYWwoJ2F1dGhvcicpIGlmIGxlbihhdXRob3JfZW1haWxzKSA+IDEgZWxzZSAnYXV0aG9y
JworICAgICAgICBhdXRob3JzX3N0cmluZyA9IGpvaW5fd2l0aF9zZXBhcmF0b3JzKHNvcnRlZChh
dXRob3JfZW1haWxzKSkKKyAgICAgICAgcmV0dXJuICIgKCVzOiAlcykiICUgKGhlYWRpbmdfc3Ry
aW5nLCBhdXRob3JzX3N0cmluZykKKworICAgIGRlZiByZXBvcnRfZmxha3lfdGVzdHMoc2VsZiwg
Zmxha3lfdGVzdHMsIHBhdGNoKToKKyAgICAgICAgbWVzc2FnZSA9ICJUaGUgJXMgZW5jb3VudGVy
ZWQgdGhlIGZvbGxvd2luZyBmbGFreSB0ZXN0cyB3aGlsZSBwcm9jZXNzaW5nIGF0dGFjaG1lbnQg
JXM6XG5cbiIgJSAoc2VsZi5fYm90X25hbWUsIHBhdGNoLmlkKCkpCisgICAgICAgIGZvciBmbGFr
eV90ZXN0IGluIGZsYWt5X3Rlc3RzOgorICAgICAgICAgICAgYnVnID0gc2VsZi5fbG9va3VwX2J1
Z19mb3JfZmxha3lfdGVzdChmbGFreV90ZXN0KQorICAgICAgICAgICAgbGF0ZXN0X2ZsYWtlX21l
c3NhZ2UgPSAiVGhlICVzIGp1c3Qgc2F3ICVzIGZsYWtlIHdoaWxlIHByb2Nlc3NpbmcgcGF0Y2gg
JXMgb24gYnVnICVzLiIgJSAoc2VsZi5fYm90X25hbWUsIGZsYWt5X3Rlc3QsIHBhdGNoLmlkKCks
IHBhdGNoLmJ1Z19pZCgpKQorICAgICAgICAgICAgYXV0aG9yX2VtYWlscyA9IHNlbGYuX2F1dGhv
cl9lbWFpbHNfZm9yX3Rlc3QoZmxha3lfdGVzdCkKKyAgICAgICAgICAgIGlmIG5vdCBidWc6Cisg
ICAgICAgICAgICAgICAgc2VsZi5fY3JlYXRlX2J1Z19mb3JfZmxha3lfdGVzdChmbGFreV90ZXN0
LCBsYXRlc3RfZmxha2VfbWVzc2FnZSkKKyAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAg
ICAgIyBGSVhNRTogSWYgdGhlIGJ1ZyBpcyBjbG9zZWQgd2Ugc2hvdWxkIGZvbGxvdyB0aGUgZHVw
bGljYXRlIGNoYWluIHRvIHRoZSBsYXN0IGJ1ZywKKyAgICAgICAgICAgICAgICAjIGFuZCB0aGVu
IHJlLW9wZW4gdGhlIGxhc3QgYnVnIGlmIHRoYXQgdG9vIGlzIGNsb3NlZC4KKyAgICAgICAgICAg
ICAgICBzZWxmLl90b29sLmJ1Z3MucG9zdF9jb21tZW50X3RvX2J1ZyhwYXRjaC5idWdfaWQoKSwg
bGF0ZXN0X2ZsYWtlX21lc3NhZ2UpCisKKyAgICAgICAgICAgIG1lc3NhZ2UgKz0gIiVzIGJ1ZyAl
cyVzXG4iICUgKGZsYWt5X3Rlc3QsIHBhdGNoLmJ1Z19pZCgpLCBzZWxmLl9vcHRpb25hbF9hdXRo
b3Jfc3RyaW5nKGF1dGhvcl9lbWFpbHMpKQorCisgICAgICAgIG1lc3NhZ2UgKz0gIlRoZSAlcyBp
cyBjb250aW51aW5nIHRvIHByb2Nlc3MgeW91ciBwYXRjaC4iICUgc2VsZi5fYm90X25hbWUKKyAg
ICAgICAgc2VsZi5fdG9vbC5idWdzLnBvc3RfY29tbWVudF90b19idWcocGF0Y2guYnVnX2lkKCks
IG1lc3NhZ2UpCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Ym90L2ZsYWt5dGVzdHJlcG9ydGVyX3VuaXR0ZXN0LnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9mbGFreXRlc3RyZXBvcnRlcl91bml0dGVzdC5weQpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xNjQzZjFlYjRmMGE5OGMwMzI4ZDM0YzZhOTYyZjEzYjE1NWM0ZTRkCi0tLSAvZGV2L251bGwK
KysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mbGFreXRlc3RyZXBv
cnRlcl91bml0dGVzdC5weQpAQCAtMCwwICsxLDYyIEBACisjIENvcHlyaWdodCAoYykgMjAxMCBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorIyBtZXQ6CisjCisjICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICogUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorIyBjb3B5
cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyCisjIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUKKyMgZGlzdHJpYnV0aW9uLgorIyAgICAgKiBOZWl0aGVyIHRoZSBu
YW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisjIGNvbnRyaWJ1dG9ycyBt
YXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisj
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJT
IEFORCBDT05UUklCVVRPUlMKKyMgIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisjIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUCisjIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLAorIyBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorIyBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyMgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1w
b3J0IHVuaXR0ZXN0CisKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJzIGlt
cG9ydCBDb21taXR0ZXIKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QuZmxha3l0ZXN0cmVwb3J0ZXIg
aW1wb3J0IEZsYWt5VGVzdFJlcG9ydGVyCitmcm9tIHdlYmtpdHB5LnRvb2wubW9ja3Rvb2wgaW1w
b3J0IE1vY2tUb29sCisKKworIyBDcmVhdGluZyBmYWtlIENvbW1pdEluZm9zIGlzIGEgcGFpbiwg
c28gd2UgdXNlIGEgbW9jayBvbmUgaGVyZS4KK2NsYXNzIE1vY2tDb21taXRJbmZvKG9iamVjdCk6
CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIGF1dGhvcl9lbWFpbCk6CisgICAgICAgIHNlbGYuX2F1
dGhvcl9lbWFpbCA9IGF1dGhvcl9lbWFpbAorCisgICAgZGVmIGF1dGhvcihzZWxmKToKKyAgICAg
ICAgIyBJdCdzIGRlZmluaXRlbHkgcG9zc2libGUgdG8gaGF2ZSBjb21taXRzIHdpdGggYXV0aG9y
cyB3aG8KKyAgICAgICAgIyBhcmUgbm90IGluIG91ciBjb21taXR0ZXJzLnB5IGxpc3QuCisgICAg
ICAgIGlmIG5vdCBzZWxmLl9hdXRob3JfZW1haWw6CisgICAgICAgICAgICByZXR1cm4gTm9uZQor
ICAgICAgICByZXR1cm4gQ29tbWl0dGVyKCJNb2NrIENvbW1pdHRlciIsIHNlbGYuX2F1dGhvcl9l
bWFpbCkKKworCitjbGFzcyBGbGFreVRlc3RSZXBvcnRlclRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgorICAgIGRlZiBfYXNzZXJ0X2VtYWlsc19mb3JfdGVzdChzZWxmLCBlbWFpbHMpOgorICAgICAg
ICB0b29sID0gTW9ja1Rvb2woKQorICAgICAgICByZXBvcnRlciA9IEZsYWt5VGVzdFJlcG9ydGVy
KHRvb2wsICdkdW1teS1xdWV1ZScpCisgICAgICAgIGNvbW1pdF9pbmZvcyA9IFtNb2NrQ29tbWl0
SW5mbyhlbWFpbCkgZm9yIGVtYWlsIGluIGVtYWlsc10KKyAgICAgICAgdG9vbC5jaGVja291dCgp
LnJlY2VudF9jb21taXRfaW5mb3NfZm9yX2ZpbGVzID0gbGFtYmRhIHBhdGhzOiBzZXQoY29tbWl0
X2luZm9zKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHJlcG9ydGVyLl9hdXRob3JfZW1haWxz
X2Zvcl90ZXN0KFtdKSwgc2V0KGVtYWlscykpCisKKyAgICBkZWYgdGVzdF9hdXRob3JfZW1haWxz
X2Zvcl90ZXN0KHNlbGYpOgorICAgICAgICBzZWxmLl9hc3NlcnRfZW1haWxzX2Zvcl90ZXN0KFtd
KQorICAgICAgICBzZWxmLl9hc3NlcnRfZW1haWxzX2Zvcl90ZXN0KFsidGVzdDFAdGVzdC5jb20i
LCAidGVzdDFAdGVzdC5jb20iXSkKKyAgICAgICAgc2VsZi5fYXNzZXJ0X2VtYWlsc19mb3JfdGVz
dChbInRlc3QxQHRlc3QuY29tIiwgInRlc3QyQHRlc3QuY29tIl0pCisKKyAgICAjIHJlcG9ydF9m
bGFreV90ZXN0cyBpcyB0ZXN0ZWQgYnkgcXVldWVzX3VuaXR0ZXN0CmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5kLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9pcmNfY29tbWFuZC5weQppbmRleCBhODQ4
NDcyNDQ0YWE1YWQwZmI2M2NkY2E1YzI5ZDJhNmQwY2U1OWUyLi4wYzE3YzlmMTQzOGYwNjZmYTk0
ZTE3MTA0NTE5OTdhOGE4OGQ5YTFhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5kLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmQucHkKQEAgLTI5LDcgKzI5LDcgQEAKIGltcG9y
dCByYW5kb20KIGltcG9ydCB3ZWJraXRweS5jb21tb24uY29uZmlnLmlyYyBhcyBjb25maWdfaXJj
CiAKLWZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LmNoYW5nZWxvZyBpbXBvcnQgdmlld19z
b3VyY2VfdXJsCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcgaW1wb3J0IHVybHMKIGZyb20g
d2Via2l0cHkudG9vbC5ib3QucXVldWVlbmdpbmUgaW1wb3J0IFRlcm1pbmF0ZVF1ZXVlCiBmcm9t
IHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVnemlsbGEgaW1wb3J0IHBhcnNlX2J1Z19pZAogZnJvbSB3
ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKQEAgLTQz
LDcgKzQzLDcgQEAgY2xhc3MgSVJDQ29tbWFuZChvYmplY3QpOgogY2xhc3MgTGFzdEdyZWVuUmV2
aXNpb24oSVJDQ29tbWFuZCk6CiAgICAgZGVmIGV4ZWN1dGUoc2VsZiwgbmljaywgYXJncywgdG9v
bCwgc2hlcmlmZik6CiAgICAgICAgIHJldHVybiAiJXM6ICVzIiAlIChuaWNrLAotICAgICAgICAg
ICAgdmlld19zb3VyY2VfdXJsKHRvb2wuYnVpbGRib3QubGFzdF9ncmVlbl9yZXZpc2lvbigpKSkK
KyAgICAgICAgICAgIHVybHMudmlld19yZXZpc2lvbl91cmwodG9vbC5idWlsZGJvdC5sYXN0X2dy
ZWVuX3JldmlzaW9uKCkpKQogCiAKIGNsYXNzIFJlc3RhcnQoSVJDQ29tbWFuZCk6CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3NoZXJpZmYucHkgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3NoZXJpZmYucHkKaW5kZXggZGE1
MDZiY2JhZGU4ODg0MWQ5MjUzMWVkNmY5ZTU4YzE1YThhM2ExYi4uNDNmMzIyMTU0NTJlZGE0ODI4
ODc2N2RkMTFmNzIwYWE0YjYyNjVhMyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2JvdC9zaGVyaWZmLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9ib3Qvc2hlcmlmZi5weQpAQCAtMjYsNyArMjYsNyBAQAogIyAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKICMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KIAotZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuY2hhbmdl
bG9nIGltcG9ydCB2aWV3X3NvdXJjZV91cmwKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZyBp
bXBvcnQgdXJscwogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1Z3ppbGxhIGltcG9ydCBwYXJz
ZV9idWdfaWQKIGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5kZXByZWNhdGVkX2xvZ2dpbmcg
aW1wb3J0IGxvZwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQg
U2NyaXB0RXJyb3IKQEAgLTQ2LDcgKzQ2LDcgQEAgY2xhc3MgU2hlcmlmZihvYmplY3QpOgogICAg
ICAgICBpcmNfbWVzc2FnZSA9ICIlcyVzJXMgbWlnaHQgaGF2ZSBicm9rZW4gJXMiICUgKAogICAg
ICAgICAgICAgIiwgIi5qb2luKGlyY19uaWNrbmFtZXMpLAogICAgICAgICAgICAgaXJjX3ByZWZp
eCwKLSAgICAgICAgICAgIHZpZXdfc291cmNlX3VybChjb21taXRfaW5mby5yZXZpc2lvbigpKSwK
KyAgICAgICAgICAgIHVybHMudmlld19yZXZpc2lvbl91cmwoY29tbWl0X2luZm8ucmV2aXNpb24o
KSksCiAgICAgICAgICAgICBqb2luX3dpdGhfc2VwYXJhdG9ycyhbYnVpbGRlci5uYW1lKCkgZm9y
IGJ1aWxkZXIgaW4gYnVpbGRlcnNdKSkKIAogICAgICAgICBzZWxmLl90b29sLmlyYygpLnBvc3Qo
aXJjX21lc3NhZ2UpCkBAIC04MSw3ICs4MSw3IEBAIGNsYXNzIFNoZXJpZmYob2JqZWN0KToKICAg
ICAgICAgaWYgbm90IGNvbW1pdF9pbmZvLmJ1Z19pZCgpOgogICAgICAgICAgICAgcmV0dXJuCiAg
ICAgICAgIGNvbW1lbnQgPSAiJXMgbWlnaHQgaGF2ZSBicm9rZW4gJXMiICUgKAotICAgICAgICAg
ICAgdmlld19zb3VyY2VfdXJsKGNvbW1pdF9pbmZvLnJldmlzaW9uKCkpLAorICAgICAgICAgICAg
dXJscy52aWV3X3JldmlzaW9uX3VybChjb21taXRfaW5mby5yZXZpc2lvbigpKSwKICAgICAgICAg
ICAgIGpvaW5fd2l0aF9zZXBhcmF0b3JzKFtidWlsZGVyLm5hbWUoKSBmb3IgYnVpbGRlciBpbiBi
dWlsZGVyc10pKQogICAgICAgICBpZiB0ZXN0czoKICAgICAgICAgICAgIGNvbW1lbnQgKz0gIlxu
VGhlIGZvbGxvd2luZyB0ZXN0cyBhcmUgbm90IHBhc3Npbmc6XG4iCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkgYi9XZWJL
aXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKaW5kZXgg
NDU3YzA1MGNiZDc4MTE5MWMyMTE5Y2E1MTdiMGU4ZWQ3YjU5ZTlhZi4uOGFiZDI4ZjYyMmQ5MzA1
OTU5ZGY5MTJjMTAwYmRkYTcxMzAxM2M5NCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CisrKyBiL1dlYktpdFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQpAQCAtMzEsNyArMzEsOCBA
QCBpbXBvcnQgb3MKIAogaW1wb3J0IHdlYmtpdHB5LnRvb2wuc3RlcHMgYXMgc3RlcHMKIAotZnJv
bSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuY2hhbmdlbG9nIGltcG9ydCBDaGFuZ2VMb2csIHZp
ZXdfc291cmNlX3VybAorZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuY2hhbmdlbG9nIGlt
cG9ydCBDaGFuZ2VMb2cKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZyBpbXBvcnQgdXJscwog
ZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IK
IGZyb20gd2Via2l0cHkudG9vbC5jb21tYW5kcy5hYnN0cmFjdHNlcXVlbmNlZGNvbW1hbmQgaW1w
b3J0IEFic3RyYWN0U2VxdWVuY2VkQ29tbWFuZAogZnJvbSB3ZWJraXRweS50b29sLmNvbW1hbmRz
LnN0ZXBzZXF1ZW5jZSBpbXBvcnQgU3RlcFNlcXVlbmNlCkBAIC0zNTUsNyArMzU2LDcgQEAgY2xh
c3MgQ3JlYXRlUm9sbG91dChBYnN0cmFjdFJvbGxvdXRQcmVwQ29tbWFuZCk6CiAgICAgICAgIHN0
YXRlWyJidWdfYmxvY2tlZCJdID0gc3RhdGVbImJ1Z19pZCJdCiAgICAgICAgIGRlbCBzdGF0ZVsi
YnVnX2lkIl0KICAgICAgICAgc3RhdGVbImJ1Z190aXRsZSJdID0gIlJFR1JFU1NJT04ociVzKTog
JXMiICUgKHN0YXRlWyJyZXZpc2lvbiJdLCBzdGF0ZVsicmVhc29uIl0pCi0gICAgICAgIHN0YXRl
WyJidWdfZGVzY3JpcHRpb24iXSA9ICIlcyBicm9rZSB0aGUgYnVpbGQ6XG4lcyIgJSAodmlld19z
b3VyY2VfdXJsKHN0YXRlWyJyZXZpc2lvbiJdKSwgc3RhdGVbInJlYXNvbiJdKQorICAgICAgICBz
dGF0ZVsiYnVnX2Rlc2NyaXB0aW9uIl0gPSAiJXMgYnJva2UgdGhlIGJ1aWxkOlxuJXMiICUgKHVy
bHMudmlld19yZXZpc2lvbl91cmwoc3RhdGVbInJldmlzaW9uIl0pLCBzdGF0ZVsicmVhc29uIl0p
CiAgICAgICAgICMgRklYTUU6IElmIHdlIGhhZCBtb3JlIGNvbnRleHQgaGVyZSwgd2UgY291bGQg
bGluayB0byBvdGhlciBvcGVuIGJ1Z3MKICAgICAgICAgIyAgICAgICAgdGhhdCBtZW50aW9uIHRo
ZSB0ZXN0IHRoYXQgcmVncmVzc2VkLgogICAgICAgICBpZiBvcHRpb25zLnBhcmVudF9jb21tYW5k
ID09ICJzaGVyaWZmLWJvdCI6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2NvbW1hbmRzL3F1ZXVlcy5weQppbmRleCBiZmFlYjA4MDhlZmMxZTNiMTg5ZWM3OWUy
ZDJmOGM5NWU5ZTE4MDM1Li44NTg3MTNlZDJmOTM1MmJkNWNlNzYyMDk5ZDhlNmViYThjZTNiNTU3
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMv
cXVldWVzLnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9xdWV1ZXMucHkKQEAgLTQwLDE1ICs0MCwxNSBAQCBmcm9tIFN0cmluZ0lPIGltcG9ydCBTdHJp
bmdJTwogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcuY29tbWl0dGVydmFsaWRhdG9yIGlt
cG9ydCBDb21taXR0ZXJWYWxpZGF0b3IKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5idWd6aWxs
YSBpbXBvcnQgQXR0YWNobWVudAotZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmxheW91dHRlc3Ry
ZXN1bHRzIGltcG9ydCBwYXRoX2Zvcl9sYXlvdXRfdGVzdCwgTGF5b3V0VGVzdFJlc3VsdHMKK2Zy
b20gd2Via2l0cHkuY29tbW9uLm5ldC5sYXlvdXR0ZXN0cmVzdWx0cyBpbXBvcnQgTGF5b3V0VGVz
dFJlc3VsdHMKIGZyb20gd2Via2l0cHkuY29tbW9uLm5ldC5zdGF0dXNzZXJ2ZXIgaW1wb3J0IFN0
YXR1c1NlcnZlcgogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmRlcHJlY2F0ZWRfbG9nZ2lu
ZyBpbXBvcnQgZXJyb3IsIGxvZwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2
ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHkudG9vbC5ib3QuY29tbWl0cXVldWV0
YXNrIGltcG9ydCBDb21taXRRdWV1ZVRhc2ssIENvbW1pdFF1ZXVlVGFza0RlbGVnYXRlCiBmcm9t
IHdlYmtpdHB5LnRvb2wuYm90LmZlZWRlcnMgaW1wb3J0IENvbW1pdFF1ZXVlRmVlZGVyLCBFV1NG
ZWVkZXIKIGZyb20gd2Via2l0cHkudG9vbC5ib3QucXVldWVlbmdpbmUgaW1wb3J0IFF1ZXVlRW5n
aW5lLCBRdWV1ZUVuZ2luZURlbGVnYXRlCitmcm9tIHdlYmtpdHB5LnRvb2wuYm90LmZsYWt5dGVz
dHJlcG9ydGVyIGltcG9ydCBGbGFreVRlc3RSZXBvcnRlcgogZnJvbSB3ZWJraXRweS50b29sLmNv
bW1hbmRzLnN0ZXBzZXF1ZW5jZSBpbXBvcnQgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyCi1mcm9t
IHdlYmtpdHB5LnRvb2wuZ3JhbW1hciBpbXBvcnQgcGx1cmFsaXplLCBqb2luX3dpdGhfc2VwYXJh
dG9ycwogZnJvbSB3ZWJraXRweS50b29sLm11bHRpY29tbWFuZHRvb2wgaW1wb3J0IENvbW1hbmQs
IFRyeUFnYWluCiAKIApAQCAtMzEyLDIwICszMTIsOSBAQCBjbGFzcyBDb21taXRRdWV1ZShBYnN0
cmFjdFBhdGNoUXVldWUsIFN0ZXBTZXF1ZW5jZUVycm9ySGFuZGxlciwgQ29tbWl0UXVldWVUYXNr
RAogICAgIGRlZiByZWZldGNoX3BhdGNoKHNlbGYsIHBhdGNoKToKICAgICAgICAgcmV0dXJuIHNl
bGYuX3Rvb2wuYnVncy5mZXRjaF9hdHRhY2htZW50KHBhdGNoLmlkKCkpCiAKLSAgICBkZWYgX2F1
dGhvcl9lbWFpbHNfZm9yX3Rlc3RzKHNlbGYsIGZsYWt5X3Rlc3RzKToKLSAgICAgICAgdGVzdF9w
YXRocyA9IG1hcChwYXRoX2Zvcl9sYXlvdXRfdGVzdCwgZmxha3lfdGVzdHMpCi0gICAgICAgIGNv
bW1pdF9pbmZvcyA9IHNlbGYuX3Rvb2wuY2hlY2tvdXQoKS5yZWNlbnRfY29tbWl0X2luZm9zX2Zv
cl9maWxlcyh0ZXN0X3BhdGhzKQotICAgICAgICByZXR1cm4gc2V0KFtjb21taXRfaW5mby5hdXRo
b3IoKS5idWd6aWxsYV9lbWFpbCgpIGZvciBjb21taXRfaW5mbyBpbiBjb21taXRfaW5mb3MgaWYg
Y29tbWl0X2luZm8uYXV0aG9yKCldKQotCiAgICAgZGVmIHJlcG9ydF9mbGFreV90ZXN0cyhzZWxm
LCBwYXRjaCwgZmxha3lfdGVzdHMpOgotICAgICAgICBtZXNzYWdlID0gIlRoZSAlcyBlbmNvdW50
ZXJlZCB0aGUgZm9sbG93aW5nIGZsYWt5IHRlc3RzIHdoaWxlIHByb2Nlc3NpbmcgYXR0YWNobWVu
dCAlczoiICUgKHNlbGYubmFtZSwgcGF0Y2guaWQoKSkKLSAgICAgICAgbWVzc2FnZSArPSAiXG5c
biVzXG5cbiIgJSAoIlxuIi5qb2luKGZsYWt5X3Rlc3RzKSkKLSAgICAgICAgbWVzc2FnZSArPSAi
UGxlYXNlIGZpbGUgYnVncyBhZ2FpbnN0IHRoZSB0ZXN0cy4gICIKLSAgICAgICAgYXV0aG9yX2Vt
YWlscyA9IHNlbGYuX2F1dGhvcl9lbWFpbHNfZm9yX3Rlc3RzKGZsYWt5X3Rlc3RzKQotICAgICAg
ICBpZiBhdXRob3JfZW1haWxzOgotICAgICAgICAgICAgbWVzc2FnZSArPSAiVGhlc2UgdGVzdHMg
d2VyZSBhdXRob3JlZCBieSAlcy4gICIgJSAoam9pbl93aXRoX3NlcGFyYXRvcnMoc29ydGVkKGF1
dGhvcl9lbWFpbHMpKSkKLSAgICAgICAgbWVzc2FnZSArPSAiVGhlIGNvbW1pdC1xdWV1ZSBpcyBj
b250aW51aW5nIHRvIHByb2Nlc3MgeW91ciBwYXRjaC4iCi0gICAgICAgIHNlbGYuX3Rvb2wuYnVn
cy5wb3N0X2NvbW1lbnRfdG9fYnVnKHBhdGNoLmJ1Z19pZCgpLCBtZXNzYWdlKQorICAgICAgICBy
ZXBvcnRlciA9IEZsYWt5VGVzdFJlcG9ydGVyKHNlbGYuX3Rvb2wsIHNlbGYubmFtZSkKKyAgICAg
ICAgcmVwb3J0ZXIucmVwb3J0X2ZsYWt5X3Rlc3RzKGZsYWt5X3Rlc3RzLCBwYXRjaCkKIAogICAg
ICMgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyIG1ldGhvZHMKIApkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weSBi
L1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRl
c3QucHkKaW5kZXggMDg3Mjk3YWE4ZTQ5NjkzMmMzYmM1MmJlODZhMGI4MDliMjQ4N2Q3NS4uMDky
MjYwZmIzMWNiODYzMTBkNjZlMjYxOTA4OTU5ODA1NWMzZmQ2ZCAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQor
KysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3Vu
aXR0ZXN0LnB5CkBAIC0yOSw3ICsyOSw2IEBACiBpbXBvcnQgb3MKIAogZnJvbSB3ZWJraXRweS5j
b21tb24uY2hlY2tvdXQuc2NtIGltcG9ydCBDaGVja291dE5lZWRzVXBkYXRlCi1mcm9tIHdlYmtp
dHB5LmNvbW1vbi5jb25maWcuY29tbWl0dGVycyBpbXBvcnQgQ29tbWl0dGVyCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi5uZXQuYnVnemlsbGEgaW1wb3J0IEF0dGFjaG1lbnQKIGZyb20gd2Via2l0cHku
Y29tbW9uLnN5c3RlbS5vdXRwdXRjYXB0dXJlIGltcG9ydCBPdXRwdXRDYXB0dXJlCiBmcm9tIHdl
YmtpdHB5LnRoaXJkcGFydHkubW9jayBpbXBvcnQgTW9jawpAQCAtMTk4LDE5ICsxOTcsNiBAQCBj
bGFzcyBTZWNvbmRUaG91Z2h0c0NvbW1pdFF1ZXVlKENvbW1pdFF1ZXVlKToKICAgICAgICAgcmV0
dXJuIEF0dGFjaG1lbnQoYXR0YWNobWVudF9kaWN0aW9uYXJ5LCBOb25lKQogCiAKLSMgQ3JlYXRp
bmcgZmFrZSBDb21taXRJbmZvcyBpcyBhIHBhaW4sIHNvIHdlIHVzZSBhIG1vY2sgb25lIGhlcmUu
Ci1jbGFzcyBNb2NrQ29tbWl0SW5mbyhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBh
dXRob3JfZW1haWwpOgotICAgICAgICBzZWxmLl9hdXRob3JfZW1haWwgPSBhdXRob3JfZW1haWwK
LQotICAgIGRlZiBhdXRob3Ioc2VsZik6Ci0gICAgICAgICMgSXQncyBkZWZpbml0ZWx5IHBvc3Np
YmxlIHRvIGhhdmUgY29tbWl0cyB3aXRoIGF1dGhvcnMgd2hvCi0gICAgICAgICMgYXJlIG5vdCBp
biBvdXIgY29tbWl0dGVycy5weSBsaXN0LgotICAgICAgICBpZiBub3Qgc2VsZi5fYXV0aG9yX2Vt
YWlsOgotICAgICAgICAgICAgcmV0dXJuIE5vbmUKLSAgICAgICAgcmV0dXJuIENvbW1pdHRlcigi
TW9jayBDb21taXR0ZXIiLCBzZWxmLl9hdXRob3JfZW1haWwpCi0KLQogY2xhc3MgQ29tbWl0UXVl
dWVUZXN0KFF1ZXVlc1Rlc3QpOgogICAgIGRlZiB0ZXN0X2NvbW1pdF9xdWV1ZShzZWxmKToKICAg
ICAgICAgZXhwZWN0ZWRfc3RkZXJyID0gewpAQCAtMzM1LDMwICszMjEsMjYgQEAgTU9DSzogcmVs
ZWFzZV93b3JrX2l0ZW06IGNvbW1pdC1xdWV1ZSAxOTcKICIiIgogICAgICAgICBPdXRwdXRDYXB0
dXJlKCkuYXNzZXJ0X291dHB1dHMoc2VsZiwgcXVldWUucHJvY2Vzc193b3JrX2l0ZW0sIFtRdWV1
ZXNUZXN0Lm1vY2tfd29ya19pdGVtXSwgZXhwZWN0ZWRfc3RkZXJyPWV4cGVjdGVkX3N0ZGVycikK
IAotICAgIGRlZiBfYXNzZXJ0X2VtYWlsc19mb3JfdGVzdHMoc2VsZiwgZW1haWxzKToKLSAgICAg
ICAgcXVldWUgPSBDb21taXRRdWV1ZSgpCi0gICAgICAgIHRvb2wgPSBNb2NrVG9vbCgpCi0gICAg
ICAgIHF1ZXVlLmJpbmRfdG9fdG9vbCh0b29sKQotICAgICAgICBjb21taXRfaW5mb3MgPSBbTW9j
a0NvbW1pdEluZm8oZW1haWwpIGZvciBlbWFpbCBpbiBlbWFpbHNdCi0gICAgICAgIHRvb2wuY2hl
Y2tvdXQoKS5yZWNlbnRfY29tbWl0X2luZm9zX2Zvcl9maWxlcyA9IGxhbWJkYSBwYXRoczogc2V0
KGNvbW1pdF9pbmZvcykKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChxdWV1ZS5fYXV0aG9yX2Vt
YWlsc19mb3JfdGVzdHMoW10pLCBzZXQoZW1haWxzKSkKLQotICAgIGRlZiB0ZXN0X2F1dGhvcl9l
bWFpbHNfZm9yX3Rlc3RzKHNlbGYpOgotICAgICAgICBzZWxmLl9hc3NlcnRfZW1haWxzX2Zvcl90
ZXN0cyhbXSkKLSAgICAgICAgc2VsZi5fYXNzZXJ0X2VtYWlsc19mb3JfdGVzdHMoWyJ0ZXN0MUB0
ZXN0LmNvbSIsICJ0ZXN0MUB0ZXN0LmNvbSJdKQotICAgICAgICBzZWxmLl9hc3NlcnRfZW1haWxz
X2Zvcl90ZXN0cyhbInRlc3QxQHRlc3QuY29tIiwgInRlc3QyQHRlc3QuY29tIl0pCi0KICAgICBk
ZWYgdGVzdF9yZXBvcnRfZmxha3lfdGVzdHMoc2VsZik6CiAgICAgICAgIHF1ZXVlID0gQ29tbWl0
UXVldWUoKQogICAgICAgICBxdWV1ZS5iaW5kX3RvX3Rvb2woTW9ja1Rvb2woKSkKICAgICAgICAg
ZXhwZWN0ZWRfc3RkZXJyID0gIiIiTU9DSyBidWcgY29tbWVudDogYnVnX2lkPTQyLCBjYz1Ob25l
CiAtLS0gQmVnaW4gY29tbWVudCAtLS0KLVRoZSBjb21taXQtcXVldWUgZW5jb3VudGVyZWQgdGhl
IGZvbGxvd2luZyBmbGFreSB0ZXN0cyB3aGlsZSBwcm9jZXNzaW5nIGF0dGFjaG1lbnQgMTk3Ogor
VGhlIGNvbW1pdC1xdWV1ZSBqdXN0IHNhdyBmb28vYmFyLmh0bWwgZmxha2Ugd2hpbGUgcHJvY2Vz
c2luZyBwYXRjaCAxOTcgb24gYnVnIDQyLgorLS0tIEVuZCBjb21tZW50IC0tLQogCi1mb28vYmFy
Lmh0bWwKLWJhci9iYXouaHRtbAorTU9DSyBidWcgY29tbWVudDogYnVnX2lkPTQyLCBjYz1Ob25l
CistLS0gQmVnaW4gY29tbWVudCAtLS0KK1RoZSBjb21taXQtcXVldWUganVzdCBzYXcgYmFyL2Jh
ei5odG1sIGZsYWtlIHdoaWxlIHByb2Nlc3NpbmcgcGF0Y2ggMTk3IG9uIGJ1ZyA0Mi4KKy0tLSBF
bmQgY29tbWVudCAtLS0KKworTU9DSyBidWcgY29tbWVudDogYnVnX2lkPTQyLCBjYz1Ob25lCist
LS0gQmVnaW4gY29tbWVudCAtLS0KK1RoZSBjb21taXQtcXVldWUgZW5jb3VudGVyZWQgdGhlIGZv
bGxvd2luZyBmbGFreSB0ZXN0cyB3aGlsZSBwcm9jZXNzaW5nIGF0dGFjaG1lbnQgMTk3OgogCi1Q
bGVhc2UgZmlsZSBidWdzIGFnYWluc3QgdGhlIHRlc3RzLiAgVGhlc2UgdGVzdHMgd2VyZSBhdXRo
b3JlZCBieSBhYmFydGhAd2Via2l0Lm9yZy4gIFRoZSBjb21taXQtcXVldWUgaXMgY29udGludWlu
ZyB0byBwcm9jZXNzIHlvdXIgcGF0Y2guCitmb28vYmFyLmh0bWwgYnVnIDQyIChhdXRob3I6IGFi
YXJ0aEB3ZWJraXQub3JnKQorYmFyL2Jhei5odG1sIGJ1ZyA0MiAoYXV0aG9yOiBhYmFydGhAd2Vi
a2l0Lm9yZykKK1RoZSBjb21taXQtcXVldWUgaXMgY29udGludWluZyB0byBwcm9jZXNzIHlvdXIg
cGF0Y2guCiAtLS0gRW5kIGNvbW1lbnQgLS0tCiAKICIiIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1lbnRzLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL2NvbW1lbnRzLnB5CmluZGV4IDgzZjJiZTgyYjExYTVlZGIxNjU4MTU0
NmEzMjBhOTBlZGZlMThmMzcuLjc3MTk1M2U2OThjMDAwZWM1ODAzYjcyY2I0ZjU2ZTg4ODYzZTBm
NDkgMTAwNzU1Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tZW50
cy5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWVudHMucHkK
QEAgLTMwLDEyICszMCwxMSBAQAogIyBBIHRvb2wgZm9yIGF1dG9tYXRpbmcgZGVhbGluZyB3aXRo
IGJ1Z3ppbGxhLCBwb3N0aW5nIHBhdGNoZXMsIGNvbW1pdHRpbmcKICMgcGF0Y2hlcywgZXRjLgog
Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5jaGFuZ2Vsb2cgaW1wb3J0IHZpZXdfc291
cmNlX3VybAorZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnIGltcG9ydCB1cmxzCiAKIAogZGVm
IGJ1Z19jb21tZW50X2Zyb21fc3ZuX3JldmlzaW9uKHN2bl9yZXZpc2lvbik6Ci0gICAgcmV0dXJu
ICJDb21taXR0ZWQgciVzOiA8JXM+IiAlIChzdm5fcmV2aXNpb24sCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICB2aWV3X3NvdXJjZV91cmwoc3ZuX3JldmlzaW9uKSkKKyAgICBy
ZXR1cm4gIkNvbW1pdHRlZCByJXM6IDwlcz4iICUgKHN2bl9yZXZpc2lvbiwgdXJscy52aWV3X3Jl
dmlzaW9uX3VybChzdm5fcmV2aXNpb24pKQogCiAKIGRlZiBidWdfY29tbWVudF9mcm9tX2NvbW1p
dF90ZXh0KHNjbSwgY29tbWl0X3RleHQpOgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0
cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL21vY2t0b29sLnB5CmluZGV4IDAwNDBiMWY2OTE0NDJhZDIwZGY3MjIzYjY4NjdkYzY4
NDQ1NGUxNGQuLmUyYzgxNmRlNDUxZmIxMGIwOWEyNTI0ZWY3MzQzMGM4YzUzOGVjMjUgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQorKysg
Yi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvbW9ja3Rvb2wucHkKQEAgLTIyNSw2
ICsyMjUsOCBAQCBjbGFzcyBNb2NrQnVnemlsbGFRdWVyaWVzKE1vY2spOgogICAgIGRlZiBmZXRj
aF9wYXRjaGVzX2Zyb21fcGVuZGluZ19jb21taXRfbGlzdChzZWxmKToKICAgICAgICAgcmV0dXJu
IHN1bShbYnVnLnJldmlld2VkX3BhdGNoZXMoKSBmb3IgYnVnIGluIHNlbGYuX2FsbF9idWdzKCld
LCBbXSkKIAorICAgIGRlZiBmZXRjaF9idWdzX21hdGNoaW5nX3NlYXJjaChzZWxmLCBzZWFyY2hf
c3RyaW5nLCBhdXRob3JfZW1haWw9Tm9uZSk6CisgICAgICAgIHJldHVybiBbc2VsZi5idWd6aWxs
YS5mZXRjaF9idWcoNzYpLCBzZWxmLmJ1Z3ppbGxhLmZldGNoX2J1Zyg3NyldCiAKIF9tb2NrX3Jl
dmlld2VyID0gUmV2aWV3ZXIoIkZvbyBCYXIiLCAiZm9vQGJhci5jb20iKQogCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY29tbWl0LnB5IGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL3N0ZXBzL2NvbW1pdC5weQppbmRleCA1YzZi
ZGI3ZDQ2M2EyZDIwZTQwNzZhMzM1M2RjYWJmNDY5MWQzMThhLi41YWE2YjUxZGU5NTAzMjE1ODk1
ZTQyYjhkNDA1OWViY2NiYTlhYzBjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvc3RlcHMvY29tbWl0LnB5CisrKyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvdG9vbC9zdGVwcy9jb21taXQucHkKQEAgLTI2LDggKzI2LDggQEAKICMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAKLWZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LmNoYW5n
ZWxvZyBpbXBvcnQgdmlld19zb3VyY2VfdXJsCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291
dC5zY20gaW1wb3J0IEF1dGhlbnRpY2F0aW9uRXJyb3IsIEFtYmlndW91c0NvbW1pdEVycm9yCitm
cm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcgaW1wb3J0IHVybHMKIGZyb20gd2Via2l0cHkuY29t
bW9uLnN5c3RlbS5kZXByZWNhdGVkX2xvZ2dpbmcgaW1wb3J0IGxvZwogZnJvbSB3ZWJraXRweS5j
b21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBvcnQgU2NyaXB0RXJyb3IKIGZyb20gd2Via2l0cHku
Y29tbW9uLnN5c3RlbS51c2VyIGltcG9ydCBVc2VyCkBAIC02Niw3ICs2Niw3IEBAIGNsYXNzIENv
bW1pdChBYnN0cmFjdFN0ZXApOgogICAgICAgICAgICAgICAgIHNjbSA9IHNlbGYuX3Rvb2wuc2Nt
KCkKICAgICAgICAgICAgICAgICBjb21taXRfdGV4dCA9IHNjbS5jb21taXRfd2l0aF9tZXNzYWdl
KHNlbGYuX2NvbW1pdF9tZXNzYWdlLCBnaXRfY29tbWl0PXNlbGYuX29wdGlvbnMuZ2l0X2NvbW1p
dCwgdXNlcm5hbWU9dXNlcm5hbWUsIGZvcmNlX3NxdWFzaD1mb3JjZV9zcXVhc2gpCiAgICAgICAg
ICAgICAgICAgc3ZuX3JldmlzaW9uID0gc2NtLnN2bl9yZXZpc2lvbl9mcm9tX2NvbW1pdF90ZXh0
KGNvbW1pdF90ZXh0KQotICAgICAgICAgICAgICAgIGxvZygiQ29tbWl0dGVkIHIlczogPCVzPiIg
JSAoc3ZuX3JldmlzaW9uLCB2aWV3X3NvdXJjZV91cmwoc3ZuX3JldmlzaW9uKSkpCisgICAgICAg
ICAgICAgICAgbG9nKCJDb21taXR0ZWQgciVzOiA8JXM+IiAlIChzdm5fcmV2aXNpb24sIHVybHMu
dmlld19yZXZpc2lvbl91cmwoc3ZuX3JldmlzaW9uKSkpCiAgICAgICAgICAgICAgICAgc2VsZi5f
c3RhdGVbImNvbW1pdF90ZXh0Il0gPSBjb21taXRfdGV4dAogICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgZXhjZXB0IEFtYmlndW91c0NvbW1pdEVycm9yLCBlOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76166</attachid>
            <date>2010-12-09 23:32:37 -0800</date>
            <delta_ts>2010-12-10 00:04:49 -0800</delta_ts>
            <desc>upload the right patch</desc>
            <filename>bug-50803-20101209233236.patch</filename>
            <type>text/plain</type>
            <size>34468</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBiYTZkZjBmMTI2YzI0NWQzY2VhZDk4NGM0MjA3MDdkODhjZGMyMDBlLi41NjMwMjU2
NzljYjYwYzZlODY4MjQ3MDIzMmFlNTRlMzY3NzVjN2NlIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNDIgQEAK
IDIwMTAtMTItMDkgIEVyaWMgU2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgogCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjb21taXQtcXVldWUgc2hv
dWxkIGZpbGUgYnVncyBhYm91dCBmbGFreSB0ZXN0cyBpdCBlbmNvdW50ZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MDgwMworCisgICAgICAgIFRo
aXMgY2hhbmdlIGdvdCBhIGJpdCBiaWcuICBJIGFsc28gYWRkZWQgYSBuZXcgY29uZmlnLnVybHMg
ZmlsZQorICAgICAgICBiZWNhdXNlIEkgbmVlZGVkIHRvIHNoYXJlIHRoZSB2aWV3X3NvdXJjZV91
cmwgY29kZSB3aXRoIGNvbW1pdHRlcnZhbGlkYXRvci5weS4KKworICAgICAgICBUaGlzIGFkZHMg
YSBuZXcgY2xhc3MgRmxha3lUZXN0UmVwb3J0ZXIgd2hpY2ggaG9sZHMgYWxsIHRoZSBsb2dpYyBh
Ym91dAorICAgICAgICByZXBvcnRpbmcgZmxha3kgdGVzdHMgdG8gYnVnemlsbGEuCisKKyAgICAg
ICAgUmlnaHQgbm93IHRoaXMgY29kZSBrbm93cyBob3cgdG8gbG9vayB1cCBidWdzIGZvciBmbGFr
eSB0ZXN0cy4KKyAgICAgICAgSWYgaXQgY2FuJ3QgZmluZCBhIGJ1ZyBmaWxlZCBmcm9tIHRoZSBj
b21taXQtcXVldWUsIGl0IHdpbGwgb3BlbiBhIG5ldworICAgICAgICBvbmUsIGNjaW5nIHRoZSBy
ZWxldmFudCBwZW9wbGUgYW5kIGFkZGluZyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZmFpbHVyZS4K
KworICAgICAgICBJdCBpcyBub3QgeWV0IHNtYXJ0IGVub3VnaCB0byBjaGFzZSBkb3duIGR1cGxp
Y2F0ZSBjaGFpbnMsIG9yIHRvIGluY2x1ZGUKKyAgICAgICAgdGhlIGFjdHVhbCBmYWlsdXJlIGRp
ZmYuICBCdXQgdGhvc2UgY2FuIGJlIGFkZGVkIGluIGxhdGVyIGl0ZXJhdGlvbnMuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9hcGkucHk6CisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvY2hhbmdlbG9nLnB5OgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2NvbW1pdGluZm8ucHk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnZhbGlkYXRvci5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvdXJscy5weTogQ29waWVk
IGZyb20gV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1lbnRzLnB5LgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL25ldC9idWd6aWxsYS9idWd6aWxsYS5weToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZsYWt5dGVzdHJlcG9ydGVyLnB5
OiBBZGRlZC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZsYWt5dGVzdHJl
cG9ydGVyX3VuaXR0ZXN0LnB5OiBDb3BpZWQgZnJvbSBXZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWVudHMucHkuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2Jv
dC9pcmNfY29tbWFuZC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L3No
ZXJpZmYucHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25s
b2FkLnB5OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMu
cHk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0
dGVzdC5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWVudHMucHk6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jb21taXQucHk6CisKKzIwMTAtMTItMDkgIEVyaWMg
U2VpZGVsICA8ZXJpY0B3ZWJraXQub3JnPgorCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFy
dGguCiAKICAgICAgICAgVGVhY2ggd2Via2l0LXBhdGNoIGhvdyB0byBzZWFyY2ggYnVnemlsbGEK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0
L2FwaS5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2Fw
aS5weQppbmRleCBkYmUxZTg0MGE0YjAzZDQwYzVhZmU2OTM5NmM2ZDdjYjEyZmYzY2QwLi5iODRj
ZjliZDdhMTIyZjQwNjc1YzFiY2EyNGU4MWI1MTlmN2ZiY2Y2IDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9hcGkucHkKKysrIGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hlY2tvdXQvYXBpLnB5CkBAIC0yOSw2ICsy
OSw3IEBACiBpbXBvcnQgb3MKIGltcG9ydCBTdHJpbmdJTwogCitmcm9tIHdlYmtpdHB5LmNvbW1v
bi5jb25maWcgaW1wb3J0IHVybHMKIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LmNoYW5n
ZWxvZyBpbXBvcnQgQ2hhbmdlTG9nCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5jb21t
aXRpbmZvIGltcG9ydCBDb21taXRJbmZvCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5z
Y20gaW1wb3J0IENvbW1pdE1lc3NhZ2UKQEAgLTEwNCw4ICsxMDUsNyBAQCBjbGFzcyBDaGVja291
dChvYmplY3QpOgogICAgICAgICBjaGFuZ2Vsb2dfcGF0aHMgPSBzZWxmLm1vZGlmaWVkX2NoYW5n
ZWxvZ3MoZ2l0X2NvbW1pdCwgY2hhbmdlZF9maWxlcykKICAgICAgICAgaWYgbm90IGxlbihjaGFu
Z2Vsb2dfcGF0aHMpOgogICAgICAgICAgICAgcmFpc2UgU2NyaXB0RXJyb3IobWVzc2FnZT0iRm91
bmQgbm8gbW9kaWZpZWQgQ2hhbmdlTG9ncywgY2Fubm90IGNyZWF0ZSBhIGNvbW1pdCBtZXNzYWdl
LlxuIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIkFsbCBjaGFuZ2VzIHJlcXVpcmUg
YSBDaGFuZ2VMb2cuICBTZWU6XG4iCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiaHR0
cDovL3dlYmtpdC5vcmcvY29kaW5nL2NvbnRyaWJ1dGluZy5odG1sIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICJBbGwgY2hhbmdlcyByZXF1aXJlIGEgQ2hhbmdlTG9nLiAgU2VlOlxu
ICVzIiAlIHVybHMuY29udHJpYnV0aW9uX2d1aWRlbGluZXMpCiAKICAgICAgICAgY2hhbmdlbG9n
X21lc3NhZ2VzID0gW10KICAgICAgICAgZm9yIGNoYW5nZWxvZ19wYXRoIGluIGNoYW5nZWxvZ19w
YXRoczoKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2No
ZWNrb3V0L2NoYW5nZWxvZy5weSBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L2NoZWNrb3V0L2NoYW5nZWxvZy5weQppbmRleCA0MDY1N2ViMWEzZWFjNTBlODJlZDZjODQ5N2Ri
OGJmOGVlOTZiM2EzLi5kM2Y5OTBjYzlhMDFlNzU2YjU0NzcwYmYxNzlkZjE2OTI1YjdlNTNhIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jaGVja291dC9j
aGFuZ2Vsb2cucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvY2hhbmdlbG9nLnB5CkBAIC0zNiwxNiArMzYsMTAgQEAgaW1wb3J0IHRleHR3cmFwCiAK
IGZyb20gd2Via2l0cHkuY29tbW9uLnN5c3RlbS5kZXByZWNhdGVkX2xvZ2dpbmcgaW1wb3J0IGxv
ZwogZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1pdHRlcnMgaW1wb3J0IENvbW1pdHRl
ckxpc3QKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZyBpbXBvcnQgdXJscwogZnJvbSB3ZWJr
aXRweS5jb21tb24ubmV0LmJ1Z3ppbGxhIGltcG9ydCBwYXJzZV9idWdfaWQKIAogCi1kZWYgdmll
d19zb3VyY2VfdXJsKHJldmlzaW9uX251bWJlcik6Ci0gICAgIyBGSU1YRTogVGhpcyBkb2Vzbid0
IHJlYWxseSBiZWxvbmcgaW4gdGhpcyBmaWxlLCBidXQgd2UgZG9uJ3QgaGF2ZSBhCi0gICAgIyBi
ZXR0ZXIgaG9tZSBmb3IgaXQgeWV0LgotICAgICMgTWF5YmUgZXZlbnR1YWxseSBhIHdlYmtpdF9j
b25maWcucHk/Ci0gICAgcmV0dXJuICJodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8l
cyIgJSByZXZpc2lvbl9udW1iZXIKLQotCiBjbGFzcyBDaGFuZ2VMb2dFbnRyeShvYmplY3QpOgog
ICAgICMgZS5nLiAyMDA5LTA2LTAzICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KICAg
ICBkYXRlX2xpbmVfcmVnZXhwID0gcideKD9QPGRhdGU+XGR7NH0tXGR7Mn0tXGR7Mn0pXHMrKD9Q
PG5hbWU+Lis/KVxzKzwoP1A8ZW1haWw+W148Pl0rKT4kJwpAQCAtMTUzLDcgKzE0Nyw3IEBAIGNs
YXNzIENoYW5nZUxvZyhvYmplY3QpOgogICAgICMgVGhpcyBwcm9iYWJseSBkb2VzIG5vdCBiZWxv
bmcgaW4gY2hhbmdlbG9ncy5weQogICAgIGRlZiBfbWVzc2FnZV9mb3JfcmV2ZXJ0KHNlbGYsIHJl
dmlzaW9uLCByZWFzb24sIGJ1Z191cmwpOgogICAgICAgICBtZXNzYWdlID0gIlVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHIlcy5cbiIgJSByZXZpc2lvbgotICAgICAgICBtZXNzYWdlICs9ICIlc1xu
IiAlIHZpZXdfc291cmNlX3VybChyZXZpc2lvbikKKyAgICAgICAgbWVzc2FnZSArPSAiJXNcbiIg
JSB1cmxzLnZpZXdfcmV2aXNpb25fdXJsKHJldmlzaW9uKQogICAgICAgICBpZiBidWdfdXJsOgog
ICAgICAgICAgICAgbWVzc2FnZSArPSAiJXNcbiIgJSBidWdfdXJsCiAgICAgICAgICMgQWRkIGFu
IGV4dHJhIG5ldyBsaW5lIGFmdGVyIHRoZSByb2xsb3V0IGxpbmtzLCBiZWZvcmUgYW55IHJlYXNv
bi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNr
b3V0L2NvbW1pdGluZm8ucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9j
aGVja291dC9jb21taXRpbmZvLnB5CmluZGV4IDQ0OGQ1MzA5NzNmNjg3MDcxMTEzMWJhNGIyMDhi
MGNiZGVhYjUxNGYuLmYxMjFmMzY4MmE3ZWZhZWExOTIzOGRmYTIyOWUwMjUzNTc3MGNiZjYgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NoZWNrb3V0L2Nv
bW1pdGluZm8ucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY2hl
Y2tvdXQvY29tbWl0aW5mby5weQpAQCAtMjgsNyArMjgsNyBAQAogIwogIyBXZWJLaXQncyBweXRo
b24gbW9kdWxlIGZvciBob2xkaW5nIGluZm9ybWF0aW9uIG9uIGEgY29tbWl0CiAKLWZyb20gd2Vi
a2l0cHkuY29tbW9uLmNoZWNrb3V0LmNoYW5nZWxvZyBpbXBvcnQgdmlld19zb3VyY2VfdXJsCitm
cm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcgaW1wb3J0IHVybHMKIGZyb20gd2Via2l0cHkuY29t
bW9uLmNvbmZpZy5jb21taXR0ZXJzIGltcG9ydCBDb21taXR0ZXJMaXN0CiAKIApAQCAtODQsNyAr
ODQsNyBAQCBjbGFzcyBDb21taXRJbmZvKG9iamVjdCk6CiAgICAgIyBGSVhNRTogSXQgaXMgc2xp
Z2h0bHkgbGFtZSB0aGF0IHRoaXMgInZpZXciIG1ldGhvZCBpcyBvbiB0aGlzICJtb2RlbCIgY2xh
c3MgKGluIE1WQyB0ZXJtcykKICAgICBkZWYgYmxhbWVfc3RyaW5nKHNlbGYsIGJ1Z3MpOgogICAg
ICAgICBzdHJpbmcgPSAiciVzOlxuIiAlIHNlbGYucmV2aXNpb24oKQotICAgICAgICBzdHJpbmcg
Kz0gIiAgJXNcbiIgJSB2aWV3X3NvdXJjZV91cmwoc2VsZi5yZXZpc2lvbigpKQorICAgICAgICBz
dHJpbmcgKz0gIiAgJXNcbiIgJSB1cmxzLnZpZXdfcmV2aXNpb25fdXJsKHNlbGYucmV2aXNpb24o
KSkKICAgICAgICAgc3RyaW5nICs9ICIgIEJ1ZzogJXMgKCVzKVxuIiAlIChzZWxmLmJ1Z19pZCgp
LCBidWdzLmJ1Z191cmxfZm9yX2J1Z19pZChzZWxmLmJ1Z19pZCgpKSkKICAgICAgICAgYXV0aG9y
X2xpbmUgPSAiXCIlc1wiIDwlcz4iICUgKHNlbGYuYXV0aG9yX25hbWUoKSwgc2VsZi5hdXRob3Jf
ZW1haWwoKSkKICAgICAgICAgc3RyaW5nICs9ICIgIEF1dGhvcjogJXNcbiIgJSAoc2VsZi5hdXRo
b3IoKSBvciBhdXRob3JfbGluZSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJ2YWxpZGF0b3IucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25maWcvY29tbWl0dGVydmFsaWRhdG9yLnB5CmluZGV4
IGI3YjI5OTA2ODQ5NDhkYjZhZDRmNDY0NWUxZDIyYTQxYjg1MWFhMGUuLjA4MWE5OWM1ZDU4NDMw
ZjEzZGZjMjIxMzY5MTBiOTRhYWFhNTdhOTggMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9jb21taXR0ZXJ2YWxpZGF0b3IucHkKKysrIGIvV2Vi
S2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2NvbW1pdHRlcnZhbGlkYXRv
ci5weQpAQCAtMzEsNyArMzEsNyBAQAogaW1wb3J0IG9zCiAKIGZyb20gd2Via2l0cHkuY29tbW9u
LnN5c3RlbS5vc3BhdGggaW1wb3J0IHJlbHBhdGgKLWZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZp
ZyBpbXBvcnQgY29tbWl0dGVycworZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnIGltcG9ydCBj
b21taXR0ZXJzLCB1cmxzCiAKIAogY2xhc3MgQ29tbWl0dGVyVmFsaWRhdG9yKG9iamVjdCk6CkBA
IC0zOSwxMCArMzksNiBAQCBjbGFzcyBDb21taXR0ZXJWYWxpZGF0b3Iob2JqZWN0KToKICAgICBk
ZWYgX19pbml0X18oc2VsZiwgYnVnemlsbGEpOgogICAgICAgICBzZWxmLl9idWd6aWxsYSA9IGJ1
Z3ppbGxhCiAKLSAgICAjIF92aWV3X3NvdXJjZV91cmwgYmVsb25ncyBpbiBzb21lIHNvcnQgb2Yg
d2Via2l0X2NvbmZpZy5weSBtb2R1bGUuCi0gICAgZGVmIF92aWV3X3NvdXJjZV91cmwoc2VsZiwg
bG9jYWxfcGF0aCk6Ci0gICAgICAgIHJldHVybiAiaHR0cDovL3RyYWMud2Via2l0Lm9yZy9icm93
c2VyL3RydW5rLyVzIiAlIGxvY2FsX3BhdGgKLQogICAgIGRlZiBfY2hlY2tvdXRfcm9vdChzZWxm
KToKICAgICAgICAgIyBGSVhNRTogVGhpcyBpcyBhIGhhY2ssIHdlIHdvdWxkIGhhdmUgdGhpcyBm
cm9tIHNjbS5jaGVja291dF9yb290CiAgICAgICAgICMgaWYgd2UgaGFkIGFueSB3YXkgdG8gZ2V0
IHRvIGFuIHNjbSBvYmplY3QgaGVyZS4KQEAgLTU5LDggKzU1LDYgQEAgY2xhc3MgQ29tbWl0dGVy
VmFsaWRhdG9yKG9iamVjdCk6CiAgICAgICAgIHJldHVybiAiLiIuam9pbihbcGF0aCwgInB5Il0p
CiAKICAgICBkZWYgX2ZsYWdfcGVybWlzc2lvbl9yZWplY3Rpb25fbWVzc2FnZShzZWxmLCBzZXR0
ZXJfZW1haWwsIGZsYWdfbmFtZSk6Ci0gICAgICAgICMgU2hvdWxkIGNvbWUgZnJvbSBzb21lIHdl
YmtpdF9jb25maWcucHkKLSAgICAgICAgY29udHJpYnV0aW9uX2d1aWRsaW5lcyA9ICJodHRwOi8v
d2Via2l0Lm9yZy9jb2RpbmcvY29udHJpYnV0aW5nLmh0bWwiCiAgICAgICAgICMgVGhpcyBjb3Vs
ZCBiZSBxdWVyaWVkIGZyb20gdGhlIHN0YXR1c19zZXJ2ZXIuCiAgICAgICAgIHF1ZXVlX2FkbWlu
aXN0cmF0b3IgPSAiZXNlaWRlbEBjaHJvbWl1bS5vcmciCiAgICAgICAgICMgVGhpcyBjb3VsZCBi
ZSBxdWVyaWVkIGZyb20gdGhlIHRvb2wuCkBAIC02OSw5ICs2Myw5IEBAIGNsYXNzIENvbW1pdHRl
clZhbGlkYXRvcihvYmplY3QpOgogICAgICAgICBtZXNzYWdlID0gIiVzIGRvZXMgbm90IGhhdmUg
JXMgcGVybWlzc2lvbnMgYWNjb3JkaW5nIHRvICVzLiIgJSAoCiAgICAgICAgICAgICAgICAgICAg
ICAgICBzZXR0ZXJfZW1haWwsCiAgICAgICAgICAgICAgICAgICAgICAgICBmbGFnX25hbWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICBzZWxmLl92aWV3X3NvdXJjZV91cmwoY29tbWl0dGVyc19s
aXN0KSkKKyAgICAgICAgICAgICAgICAgICAgICAgIHVybHMudmlld19zb3VyY2VfdXJsKGNvbW1p
dHRlcnNfbGlzdCkpCiAgICAgICAgIG1lc3NhZ2UgKz0gIlxuXG4tIElmIHlvdSBkbyBub3QgaGF2
ZSAlcyByaWdodHMgcGxlYXNlIHJlYWQgJXMgZm9yIGluc3RydWN0aW9ucyBvbiBob3cgdG8gdXNl
IGJ1Z3ppbGxhIGZsYWdzLiIgJSAoCi0gICAgICAgICAgICAgICAgICAgICAgICBmbGFnX25hbWUs
IGNvbnRyaWJ1dGlvbl9ndWlkbGluZXMpCisgICAgICAgICAgICAgICAgICAgICAgICBmbGFnX25h
bWUsIHVybHMuY29udHJpYnV0aW9uX2d1aWRlbGluZXMpCiAgICAgICAgIG1lc3NhZ2UgKz0gIlxu
XG4tIElmIHlvdSBoYXZlICVzIHJpZ2h0cyBwbGVhc2UgY29ycmVjdCB0aGUgZXJyb3IgaW4gJXMg
YnkgYWRkaW5nIHlvdXJzZWxmIHRvIHRoZSBmaWxlIChubyByZXZpZXcgbmVlZGVkKS4gICIgJSAo
CiAgICAgICAgICAgICAgICAgICAgICAgICBmbGFnX25hbWUsIGNvbW1pdHRlcnNfbGlzdCkKICAg
ICAgICAgbWVzc2FnZSArPSAiVGhlICVzIHJlc3RhcnRzIGl0c2VsZiBldmVyeSAyIGhvdXJzLiAg
QWZ0ZXIgcmVzdGFydCB0aGUgJXMgd2lsbCBjb3JyZWN0bHkgcmVzcGVjdCB5b3VyICVzIHJpZ2h0
cy4iICUgKApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
Y29uZmlnL3VybHMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9jb25m
aWcvdXJscy5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZmE2ZDY5ODNjMjJmZjMwYjVmZmI2YTBjZmM3N2YwNTYz
MTY0NWI5Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vY29uZmlnL3VybHMucHkKQEAgLTAsMCArMSwzOCBAQAorIyBDb3B5cmlnaHQgKGMpIDIw
MTAsIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisj
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0
b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZy
b20KKyMgdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlz
c2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
CisKK2RlZiB2aWV3X3NvdXJjZV91cmwobG9jYWxfcGF0aCk6CisgICAgcmV0dXJuICJodHRwOi8v
dHJhYy53ZWJraXQub3JnL2Jyb3dzZXIvdHJ1bmsvJXMiICUgbG9jYWxfcGF0aAorCisKK2RlZiB2
aWV3X3JldmlzaW9uX3VybChyZXZpc2lvbl9udW1iZXIpOgorICAgIHJldHVybiAiaHR0cDovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvJXMiICUgcmV2aXNpb25fbnVtYmVyCisKKworY29udHJp
YnV0aW9uX2d1aWRlbGluZXMgPSAiaHR0cDovL3dlYmtpdC5vcmcvY29kaW5nL2NvbnRyaWJ1dGlu
Zy5odG1sIgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
bmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5IGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS9j
b21tb24vbmV0L2J1Z3ppbGxhL2J1Z3ppbGxhLnB5CmluZGV4IGEwNjA5YzVlMTEzYWI1ZmEyNWMw
YTkxYzI2NzJlNmNmZmRlYjZjM2IuLjJlNmI3ZTg2NDNhMjEwM2Q3OWNlNTkzOGM0N2QwZGExOGJh
MTEyMGQgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL25l
dC9idWd6aWxsYS9idWd6aWxsYS5weQorKysgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9uZXQvYnVnemlsbGEvYnVnemlsbGEucHkKQEAgLTE0Niw2ICsxNDYsMTQgQEAgY2xh
c3MgQnVnemlsbGFRdWVyaWVzKG9iamVjdCk6CiAgICAgICAgIHF1aWNrc2VhcmNoX3VybCA9ICJi
dWdsaXN0LmNnaT9xdWlja3NlYXJjaD0lcyIgJSB1cmxsaWIucXVvdGUoc2VhcmNoX3N0cmluZykK
ICAgICAgICAgcmV0dXJuIHNlbGYuX2ZldGNoX2J1Z3NfZnJvbV9hZHZhbmNlZF9xdWVyeShxdWlj
a3NlYXJjaF91cmwpCiAKKyAgICBkZWYgZmV0Y2hfYnVnc19tYXRjaGluZ19zZWFyY2goc2VsZiwg
c2VhcmNoX3N0cmluZywgYXV0aG9yX2VtYWlsPU5vbmUpOgorICAgICAgICBxdWVyeSA9ICJidWds
aXN0LmNnaT9xdWVyeV9mb3JtYXQ9YWR2YW5jZWQiCisgICAgICAgIGlmIHNlYXJjaF9zdHJpbmc6
CisgICAgICAgICAgICBxdWVyeSArPSAiJnNob3J0X2Rlc2NfdHlwZT1hbGx3b3Jkc3N1YnN0ciZz
aG9ydF9kZXNjPSVzIiAlIHVybGxpYi5xdW90ZShzZWFyY2hfc3RyaW5nKQorICAgICAgICBpZiBh
dXRob3JfZW1haWw6CisgICAgICAgICAgICBxdWVyeSArPSAiJmVtYWlscmVwb3J0ZXIxPTEmZW1h
aWx0eXBlMT1zdWJzdHJpbmcmZW1haWwxPSVzIiAlIHVybGxpYi5xdW90ZShzZWFyY2hfc3RyaW5n
KQorICAgICAgICByZXR1cm4gc2VsZi5fZmV0Y2hfYnVnc19mcm9tX2FkdmFuY2VkX3F1ZXJ5KHF1
ZXJ5KQorCiAgICAgZGVmIGZldGNoX3BhdGNoZXNfZnJvbV9wZW5kaW5nX2NvbW1pdF9saXN0KHNl
bGYpOgogICAgICAgICByZXR1cm4gc3VtKFtzZWxmLl9mZXRjaF9idWcoYnVnX2lkKS5yZXZpZXdl
ZF9wYXRjaGVzKCkKICAgICAgICAgICAgIGZvciBidWdfaWQgaW4gc2VsZi5mZXRjaF9idWdfaWRz
X2Zyb21fcGVuZGluZ19jb21taXRfbGlzdCgpXSwgW10pCmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZsYWt5dGVzdHJlcG9ydGVyLnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mbGFreXRlc3RyZXBvcnRlci5weQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4xMWNkNmI2ZjAwODg2MzFjNzY3MjU0MDI3YWU5MjIyZDdhNWE3NGVmCi0tLSAvZGV2
L251bGwKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2JvdC9mbGFreXRl
c3RyZXBvcnRlci5weQpAQCAtMCwwICsxLDExNCBAQAorIyBDb3B5cmlnaHQgKGMpIDIwMTAgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyMgbWV0OgorIworIyAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjICAgICAqIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworIyBjb250cmlidXRvcnMgbWF5
IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorIyB0
aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgor
IworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBB
TkQgQ09OVFJJQlVUT1JTCisjICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisjIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorIyBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorIyBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyMgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyMgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZCisjIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9y
dCBsb2dnaW5nCisKK2Zyb20gd2Via2l0cHkuY29tbW9uLm5ldC5sYXlvdXR0ZXN0cmVzdWx0cyBp
bXBvcnQgcGF0aF9mb3JfbGF5b3V0X3Rlc3QsIExheW91dFRlc3RSZXN1bHRzCitmcm9tIHdlYmtp
dHB5LmNvbW1vbi5jb25maWcgaW1wb3J0IHVybHMKK2Zyb20gd2Via2l0cHkudG9vbC5ncmFtbWFy
IGltcG9ydCBwbHVyYWxpemUsIGpvaW5fd2l0aF9zZXBhcmF0b3JzCisKK19sb2cgPSBsb2dnaW5n
LmdldExvZ2dlcihfX25hbWVfXykKKworCitjbGFzcyBGbGFreVRlc3RSZXBvcnRlcihvYmplY3Qp
OgorICAgIGRlZiBfX2luaXRfXyhzZWxmLCB0b29sLCBib3RfbmFtZSk6CisgICAgICAgIHNlbGYu
X3Rvb2wgPSB0b29sCisgICAgICAgIHNlbGYuX2JvdF9uYW1lID0gYm90X25hbWUKKworICAgIGRl
ZiBfYXV0aG9yX2VtYWlsc19mb3JfdGVzdChzZWxmLCBmbGFreV90ZXN0KToKKyAgICAgICAgdGVz
dF9wYXRoID0gcGF0aF9mb3JfbGF5b3V0X3Rlc3QoZmxha3lfdGVzdCkKKyAgICAgICAgY29tbWl0
X2luZm9zID0gc2VsZi5fdG9vbC5jaGVja291dCgpLnJlY2VudF9jb21taXRfaW5mb3NfZm9yX2Zp
bGVzKFt0ZXN0X3BhdGhdKQorICAgICAgICAjIFRoaXMgaWdub3JlcyBhdXRob3JzIHdoaWNoIGFy
ZSBub3QgY29tbWl0dGVycyBiZWNhdXNlIHdlIGRvbid0IGhhdmUgdGhlaXIgYnVnemlsbGFfZW1h
aWwuCisgICAgICAgIHJldHVybiBzZXQoW2NvbW1pdF9pbmZvLmF1dGhvcigpLmJ1Z3ppbGxhX2Vt
YWlsKCkgZm9yIGNvbW1pdF9pbmZvIGluIGNvbW1pdF9pbmZvcyBpZiBjb21taXRfaW5mby5hdXRo
b3IoKV0pCisKKyAgICBkZWYgX2J1Z3ppbGxhX2VtYWlsKHNlbGYpOgorICAgICAgICAjIFRoaXMg
aXMga2luZGEgYSBmdW5ueSB3YXkgdG8gZ2V0IHRoZSBidWd6aWxsYSBlbWFpbCwKKyAgICAgICAg
IyB3ZSBjb3VsZCBhbHNvIGp1c3QgY3JlYXRlIGEgQ3JlZGVudGlhbHMgb2JqZWN0IGRpcmVjdGx5
CisgICAgICAgICMgYnV0IHNvbWUgb2YgdGhlIENyZWRlbnRpYWxzIGxvZ2ljIGlzIGluIGJ1Z3pp
bGxhLnB5IHRvby4uLgorICAgICAgICBzZWxmLl90b29sLmJ1Z3MuYXV0aGVudGljYXRlKCkKKyAg
ICAgICAgcmV0dXJuIHNlbGYuX3Rvb2wuYnVncy51c2VybmFtZQorCisgICAgZGVmIF9sb29rdXBf
YnVnX2Zvcl9mbGFreV90ZXN0KHNlbGYsIGZsYWt5X3Rlc3QpOgorICAgICAgICBib3RfZW1haWwg
PSBzZWxmLl9idWd6aWxsYV9lbWFpbCgpCisgICAgICAgIGJ1Z3MgPSBzZWxmLl90b29sLmJ1Z3Mu
cXVlcmllcy5mZXRjaF9idWdzX21hdGNoaW5nX3NlYXJjaChzZWFyY2hfc3RyaW5nPWZsYWt5X3Rl
c3QsIGF1dGhvcl9lbWFpbD1ib3RfZW1haWwpCisgICAgICAgIGlmIG5vdCBidWdzOgorICAgICAg
ICAgICAgcmV0dXJuIE5vbmUKKyAgICAgICAgaWYgbGVuKGJ1Z3MpID4gMToKKyAgICAgICAgICAg
IF9sb2cud2FybigiRm91bmQgJXMgJXMgbWF0Y2hpbmcgJyVzJyBmcm9tIHRoZSAlcyAoJXMpLCB1
c2luZyB0aGUgZmlyc3QuIiAlIChwbHVyYWxpemUoJ2J1ZycsIGxlbihidWdzKSksIGJ1Z3MsIGZs
YWt5X3Rlc3QsIHNlbGYuX2JvdF9uYW1lLCBib3RfZW1haWwpKQorICAgICAgICByZXR1cm4gYnVn
c1swXQorCisgICAgZGVmIF9jcmVhdGVfYnVnX2Zvcl9mbGFreV90ZXN0KHNlbGYsIGZsYWt5X3Rl
c3QsIGF1dGhvcl9lbWFpbHMsIGxhdGVzdF9mbGFrZV9tZXNzYWdlKToKKyAgICAgICAgZm9ybWF0
X3ZhbHVlcyA9IHsKKyAgICAgICAgICAgICd0ZXN0JzogZmxha3lfdGVzdCwKKyAgICAgICAgICAg
ICdhdXRob3JzJzogam9pbl93aXRoX3NlcGFyYXRvcnMoYXV0aG9yX2VtYWlscyksCisgICAgICAg
ICAgICAnZmxha2VfbWVzc2FnZSc6IGxhdGVzdF9mbGFrZV9tZXNzYWdlLAorICAgICAgICAgICAg
J3Rlc3RfdXJsJzogdXJscy52aWV3X3NvdXJjZV91cmwoZmxha3lfdGVzdCksCisgICAgICAgICAg
ICAnYm90X25hbWUnOiBzZWxmLl9ib3RfbmFtZSwKKyAgICAgICAgfQorICAgICAgICB0aXRsZSA9
ICJGbGFreSBUZXN0OiAlKHRlc3QpcyIgJSBmb3JtYXRfdmFsdWVzCisgICAgICAgIGRlc2NyaXB0
aW9uID0gIiIiVGhpcyBpcyBhbiBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBidWcgZnJvbSB0aGUg
JShib3RfbmFtZSlzLgorJSh0ZXN0KXMgaGFzIGJlZW4gZmxha3kgb24gdGhlICUoYm90X25hbWUp
cy4KKyUodGVzdClzIHdhcyBhdXRob3JlZCBieSAlKGF1dGhvcnMpcy4KKyUodGVzdF91cmwpcwor
CislKGZsYWtlX21lc3NhZ2UpcworCitUaGUgYm90cyB3aWxsIHVwZGF0ZSB0aGlzIHdpdGggaW5m
b3JtYXRpb24gZnJvbSBlYWNoIG5ldyBmYWlsdXJlLgorCitJZiB5b3Ugd291bGQgbGlrZSB0byB0
cmFjayB0aGlzIHRlc3QgZml4IHdpdGggYW5vdGhlciBidWcsIHBsZWFzZSBjbG9zZSB0aGlzIGJ1
ZyBhcyBhIGR1cGxpY2F0ZS4KKyIiIiAlIGZvcm1hdF92YWx1ZXMKKworICAgICAgICBzZWxmLl90
b29sX2J1Z3MuY3JlYXRlX2J1Zyh0aXRsZSwgZGVzY3JpcHRpb24sCisgICAgICAgICAgICBjb21w
b25lbnQ9IlRvb2xzIC8gVGVzdHMiLAorICAgICAgICAgICAgY2M9IiwiLmpvaW4oYXV0aG9yX2J1
Z3ppbGxhX2VtYWlscykpCisKKyAgICAjIFRoaXMgaXMgb3Zlci1lbmdpbmVlcmVkLCBidXQgaXQg
bWFrZXMgZm9yIHByZXR0eSBidWcgbWVzc2FnZXMuCisgICAgZGVmIF9vcHRpb25hbF9hdXRob3Jf
c3RyaW5nKHNlbGYsIGF1dGhvcl9lbWFpbHMpOgorICAgICAgICBpZiBub3QgYXV0aG9yX2VtYWls
czoKKyAgICAgICAgICAgIHJldHVybiAiIgorICAgICAgICBoZWFkaW5nX3N0cmluZyA9IHBsdXJh
bCgnYXV0aG9yJykgaWYgbGVuKGF1dGhvcl9lbWFpbHMpID4gMSBlbHNlICdhdXRob3InCisgICAg
ICAgIGF1dGhvcnNfc3RyaW5nID0gam9pbl93aXRoX3NlcGFyYXRvcnMoc29ydGVkKGF1dGhvcl9l
bWFpbHMpKQorICAgICAgICByZXR1cm4gIiAoJXM6ICVzKSIgJSAoaGVhZGluZ19zdHJpbmcsIGF1
dGhvcnNfc3RyaW5nKQorCisgICAgZGVmIHJlcG9ydF9mbGFreV90ZXN0cyhzZWxmLCBmbGFreV90
ZXN0cywgcGF0Y2gpOgorICAgICAgICBtZXNzYWdlID0gIlRoZSAlcyBlbmNvdW50ZXJlZCB0aGUg
Zm9sbG93aW5nIGZsYWt5IHRlc3RzIHdoaWxlIHByb2Nlc3NpbmcgYXR0YWNobWVudCAlczpcblxu
IiAlIChzZWxmLl9ib3RfbmFtZSwgcGF0Y2guaWQoKSkKKyAgICAgICAgZm9yIGZsYWt5X3Rlc3Qg
aW4gZmxha3lfdGVzdHM6CisgICAgICAgICAgICBidWcgPSBzZWxmLl9sb29rdXBfYnVnX2Zvcl9m
bGFreV90ZXN0KGZsYWt5X3Rlc3QpCisgICAgICAgICAgICBsYXRlc3RfZmxha2VfbWVzc2FnZSA9
ICJUaGUgJXMganVzdCBzYXcgJXMgZmxha2Ugd2hpbGUgcHJvY2Vzc2luZyBwYXRjaCAlcyBvbiBi
dWcgJXMuIiAlIChzZWxmLl9ib3RfbmFtZSwgZmxha3lfdGVzdCwgcGF0Y2guaWQoKSwgcGF0Y2gu
YnVnX2lkKCkpCisgICAgICAgICAgICBhdXRob3JfZW1haWxzID0gc2VsZi5fYXV0aG9yX2VtYWls
c19mb3JfdGVzdChmbGFreV90ZXN0KQorICAgICAgICAgICAgaWYgbm90IGJ1ZzoKKyAgICAgICAg
ICAgICAgICBzZWxmLl9jcmVhdGVfYnVnX2Zvcl9mbGFreV90ZXN0KGZsYWt5X3Rlc3QsIGxhdGVz
dF9mbGFrZV9tZXNzYWdlKQorICAgICAgICAgICAgZWxzZToKKyAgICAgICAgICAgICAgICAjIEZJ
WE1FOiBJZiB0aGUgYnVnIGlzIGNsb3NlZCB3ZSBzaG91bGQgZm9sbG93IHRoZSBkdXBsaWNhdGUg
Y2hhaW4gdG8gdGhlIGxhc3QgYnVnLAorICAgICAgICAgICAgICAgICMgYW5kIHRoZW4gcmUtb3Bl
biB0aGUgbGFzdCBidWcgaWYgdGhhdCB0b28gaXMgY2xvc2VkLgorICAgICAgICAgICAgICAgIHNl
bGYuX3Rvb2wuYnVncy5wb3N0X2NvbW1lbnRfdG9fYnVnKHBhdGNoLmJ1Z19pZCgpLCBsYXRlc3Rf
Zmxha2VfbWVzc2FnZSkKKworICAgICAgICAgICAgbWVzc2FnZSArPSAiJXMgYnVnICVzJXNcbiIg
JSAoZmxha3lfdGVzdCwgcGF0Y2guYnVnX2lkKCksIHNlbGYuX29wdGlvbmFsX2F1dGhvcl9zdHJp
bmcoYXV0aG9yX2VtYWlscykpCisKKyAgICAgICAgbWVzc2FnZSArPSAiVGhlICVzIGlzIGNvbnRp
bnVpbmcgdG8gcHJvY2VzcyB5b3VyIHBhdGNoLiIgJSBzZWxmLl9ib3RfbmFtZQorICAgICAgICBz
ZWxmLl90b29sLmJ1Z3MucG9zdF9jb21tZW50X3RvX2J1ZyhwYXRjaC5idWdfaWQoKSwgbWVzc2Fn
ZSkKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvZmxh
a3l0ZXN0cmVwb3J0ZXJfdW5pdHRlc3QucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L2ZsYWt5dGVzdHJlcG9ydGVyX3VuaXR0ZXN0LnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2NDNm
MWViNGYwYTk4YzAzMjhkMzRjNmE5NjJmMTNiMTU1YzRlNGQKLS0tIC9kZXYvbnVsbAorKysgYi9X
ZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2ZsYWt5dGVzdHJlcG9ydGVyX3Vu
aXR0ZXN0LnB5CkBAIC0wLDAgKzEsNjIgQEAKKyMgQ29weXJpZ2h0IChjKSAyMDEwIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJl
CisjIG1ldDoKKyMKKyMgICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAgICAgKiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisjIGNvcHlyaWdodCBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIKKyMgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZQorIyBkaXN0cmlidXRpb24uCisjICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2Yg
R29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBiZSB1
c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMg
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENP
TlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyMg
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQor
IyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgdW5p
dHRlc3QKKworZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnLmNvbW1pdHRlcnMgaW1wb3J0IENv
bW1pdHRlcgorZnJvbSB3ZWJraXRweS50b29sLmJvdC5mbGFreXRlc3RyZXBvcnRlciBpbXBvcnQg
Rmxha3lUZXN0UmVwb3J0ZXIKK2Zyb20gd2Via2l0cHkudG9vbC5tb2NrdG9vbCBpbXBvcnQgTW9j
a1Rvb2wKKworCisjIENyZWF0aW5nIGZha2UgQ29tbWl0SW5mb3MgaXMgYSBwYWluLCBzbyB3ZSB1
c2UgYSBtb2NrIG9uZSBoZXJlLgorY2xhc3MgTW9ja0NvbW1pdEluZm8ob2JqZWN0KToKKyAgICBk
ZWYgX19pbml0X18oc2VsZiwgYXV0aG9yX2VtYWlsKToKKyAgICAgICAgc2VsZi5fYXV0aG9yX2Vt
YWlsID0gYXV0aG9yX2VtYWlsCisKKyAgICBkZWYgYXV0aG9yKHNlbGYpOgorICAgICAgICAjIEl0
J3MgZGVmaW5pdGVseSBwb3NzaWJsZSB0byBoYXZlIGNvbW1pdHMgd2l0aCBhdXRob3JzIHdobwor
ICAgICAgICAjIGFyZSBub3QgaW4gb3VyIGNvbW1pdHRlcnMucHkgbGlzdC4KKyAgICAgICAgaWYg
bm90IHNlbGYuX2F1dGhvcl9lbWFpbDoKKyAgICAgICAgICAgIHJldHVybiBOb25lCisgICAgICAg
IHJldHVybiBDb21taXR0ZXIoIk1vY2sgQ29tbWl0dGVyIiwgc2VsZi5fYXV0aG9yX2VtYWlsKQor
CisKK2NsYXNzIEZsYWt5VGVzdFJlcG9ydGVyVGVzdCh1bml0dGVzdC5UZXN0Q2FzZSk6CisgICAg
ZGVmIF9hc3NlcnRfZW1haWxzX2Zvcl90ZXN0KHNlbGYsIGVtYWlscyk6CisgICAgICAgIHRvb2wg
PSBNb2NrVG9vbCgpCisgICAgICAgIHJlcG9ydGVyID0gRmxha3lUZXN0UmVwb3J0ZXIodG9vbCwg
J2R1bW15LXF1ZXVlJykKKyAgICAgICAgY29tbWl0X2luZm9zID0gW01vY2tDb21taXRJbmZvKGVt
YWlsKSBmb3IgZW1haWwgaW4gZW1haWxzXQorICAgICAgICB0b29sLmNoZWNrb3V0KCkucmVjZW50
X2NvbW1pdF9pbmZvc19mb3JfZmlsZXMgPSBsYW1iZGEgcGF0aHM6IHNldChjb21taXRfaW5mb3Mp
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocmVwb3J0ZXIuX2F1dGhvcl9lbWFpbHNfZm9yX3Rl
c3QoW10pLCBzZXQoZW1haWxzKSkKKworICAgIGRlZiB0ZXN0X2F1dGhvcl9lbWFpbHNfZm9yX3Rl
c3Qoc2VsZik6CisgICAgICAgIHNlbGYuX2Fzc2VydF9lbWFpbHNfZm9yX3Rlc3QoW10pCisgICAg
ICAgIHNlbGYuX2Fzc2VydF9lbWFpbHNfZm9yX3Rlc3QoWyJ0ZXN0MUB0ZXN0LmNvbSIsICJ0ZXN0
MUB0ZXN0LmNvbSJdKQorICAgICAgICBzZWxmLl9hc3NlcnRfZW1haWxzX2Zvcl90ZXN0KFsidGVz
dDFAdGVzdC5jb20iLCAidGVzdDJAdGVzdC5jb20iXSkKKworICAgICMgcmVwb3J0X2ZsYWt5X3Rl
c3RzIGlzIHRlc3RlZCBieSBxdWV1ZXNfdW5pdHRlc3QKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3QvaXJjX2NvbW1hbmQucHkgYi9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvYm90L2lyY19jb21tYW5kLnB5CmluZGV4IGE4NDg0NzI0NDRh
YTVhZDBmYjYzY2RjYTVjMjlkMmE2ZDBjZTU5ZTIuLjBjMTdjOWYxNDM4ZjA2NmZhOTRlMTcxMDQ1
MTk5N2E4YTg4ZDlhMWEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9ib3QvaXJjX2NvbW1hbmQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRw
eS90b29sL2JvdC9pcmNfY29tbWFuZC5weQpAQCAtMjksNyArMjksNyBAQAogaW1wb3J0IHJhbmRv
bQogaW1wb3J0IHdlYmtpdHB5LmNvbW1vbi5jb25maWcuaXJjIGFzIGNvbmZpZ19pcmMKIAotZnJv
bSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuY2hhbmdlbG9nIGltcG9ydCB2aWV3X3NvdXJjZV91
cmwKK2Zyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZyBpbXBvcnQgdXJscwogZnJvbSB3ZWJraXRw
eS50b29sLmJvdC5xdWV1ZWVuZ2luZSBpbXBvcnQgVGVybWluYXRlUXVldWUKIGZyb20gd2Via2l0
cHkuY29tbW9uLm5ldC5idWd6aWxsYSBpbXBvcnQgcGFyc2VfYnVnX2lkCiBmcm9tIHdlYmtpdHB5
LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgpAQCAtNDMsNyArNDMs
NyBAQCBjbGFzcyBJUkNDb21tYW5kKG9iamVjdCk6CiBjbGFzcyBMYXN0R3JlZW5SZXZpc2lvbihJ
UkNDb21tYW5kKToKICAgICBkZWYgZXhlY3V0ZShzZWxmLCBuaWNrLCBhcmdzLCB0b29sLCBzaGVy
aWZmKToKICAgICAgICAgcmV0dXJuICIlczogJXMiICUgKG5pY2ssCi0gICAgICAgICAgICB2aWV3
X3NvdXJjZV91cmwodG9vbC5idWlsZGJvdC5sYXN0X2dyZWVuX3JldmlzaW9uKCkpKQorICAgICAg
ICAgICAgdXJscy52aWV3X3JldmlzaW9uX3VybCh0b29sLmJ1aWxkYm90Lmxhc3RfZ3JlZW5fcmV2
aXNpb24oKSkpCiAKIAogY2xhc3MgUmVzdGFydChJUkNDb21tYW5kKToKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qvc2hlcmlmZi5weSBiL1dlYktpdFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9ib3Qvc2hlcmlmZi5weQppbmRleCBkYTUwNmJjYmFk
ZTg4ODQxZDkyNTMxZWQ2ZjllNThjMTVhOGEzYTFiLi40M2YzMjIxNTQ1MmVkYTQ4Mjg4NzY3ZGQx
MWY3MjBhYTRiNjI2NWEzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3Rvb2wvYm90L3NoZXJpZmYucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL2JvdC9zaGVyaWZmLnB5CkBAIC0yNiw3ICsyNiw3IEBACiAjIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogCi1mcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5jaGFuZ2Vsb2cgaW1w
b3J0IHZpZXdfc291cmNlX3VybAorZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnIGltcG9ydCB1
cmxzCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQuYnVnemlsbGEgaW1wb3J0IHBhcnNlX2J1Z19p
ZAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQg
bG9nCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRF
cnJvcgpAQCAtNDYsNyArNDYsNyBAQCBjbGFzcyBTaGVyaWZmKG9iamVjdCk6CiAgICAgICAgIGly
Y19tZXNzYWdlID0gIiVzJXMlcyBtaWdodCBoYXZlIGJyb2tlbiAlcyIgJSAoCiAgICAgICAgICAg
ICAiLCAiLmpvaW4oaXJjX25pY2tuYW1lcyksCiAgICAgICAgICAgICBpcmNfcHJlZml4LAotICAg
ICAgICAgICAgdmlld19zb3VyY2VfdXJsKGNvbW1pdF9pbmZvLnJldmlzaW9uKCkpLAorICAgICAg
ICAgICAgdXJscy52aWV3X3JldmlzaW9uX3VybChjb21taXRfaW5mby5yZXZpc2lvbigpKSwKICAg
ICAgICAgICAgIGpvaW5fd2l0aF9zZXBhcmF0b3JzKFtidWlsZGVyLm5hbWUoKSBmb3IgYnVpbGRl
ciBpbiBidWlsZGVyc10pKQogCiAgICAgICAgIHNlbGYuX3Rvb2wuaXJjKCkucG9zdChpcmNfbWVz
c2FnZSkKQEAgLTgxLDcgKzgxLDcgQEAgY2xhc3MgU2hlcmlmZihvYmplY3QpOgogICAgICAgICBp
ZiBub3QgY29tbWl0X2luZm8uYnVnX2lkKCk6CiAgICAgICAgICAgICByZXR1cm4KICAgICAgICAg
Y29tbWVudCA9ICIlcyBtaWdodCBoYXZlIGJyb2tlbiAlcyIgJSAoCi0gICAgICAgICAgICB2aWV3
X3NvdXJjZV91cmwoY29tbWl0X2luZm8ucmV2aXNpb24oKSksCisgICAgICAgICAgICB1cmxzLnZp
ZXdfcmV2aXNpb25fdXJsKGNvbW1pdF9pbmZvLnJldmlzaW9uKCkpLAogICAgICAgICAgICAgam9p
bl93aXRoX3NlcGFyYXRvcnMoW2J1aWxkZXIubmFtZSgpIGZvciBidWlsZGVyIGluIGJ1aWxkZXJz
XSkpCiAgICAgICAgIGlmIHRlc3RzOgogICAgICAgICAgICAgY29tbWVudCArPSAiXG5UaGUgZm9s
bG93aW5nIHRlc3RzIGFyZSBub3QgcGFzc2luZzpcbiIKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weSBiL1dlYktpdFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9kb3dubG9hZC5weQppbmRleCA0NTdjMDUw
Y2JkNzgxMTkxYzIxMTljYTUxN2IwZThlZDdiNTllOWFmLi44YWJkMjhmNjIyZDkzMDU5NTlkZjkx
MmMxMDBiZGRhNzEzMDEzYzk0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvZG93bmxvYWQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93
ZWJraXRweS90b29sL2NvbW1hbmRzL2Rvd25sb2FkLnB5CkBAIC0zMSw3ICszMSw4IEBAIGltcG9y
dCBvcwogCiBpbXBvcnQgd2Via2l0cHkudG9vbC5zdGVwcyBhcyBzdGVwcwogCi1mcm9tIHdlYmtp
dHB5LmNvbW1vbi5jaGVja291dC5jaGFuZ2Vsb2cgaW1wb3J0IENoYW5nZUxvZywgdmlld19zb3Vy
Y2VfdXJsCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5jaGFuZ2Vsb2cgaW1wb3J0IENo
YW5nZUxvZworZnJvbSB3ZWJraXRweS5jb21tb24uY29uZmlnIGltcG9ydCB1cmxzCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3
ZWJraXRweS50b29sLmNvbW1hbmRzLmFic3RyYWN0c2VxdWVuY2VkY29tbWFuZCBpbXBvcnQgQWJz
dHJhY3RTZXF1ZW5jZWRDb21tYW5kCiBmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMuc3RlcHNl
cXVlbmNlIGltcG9ydCBTdGVwU2VxdWVuY2UKQEAgLTM1NSw3ICszNTYsNyBAQCBjbGFzcyBDcmVh
dGVSb2xsb3V0KEFic3RyYWN0Um9sbG91dFByZXBDb21tYW5kKToKICAgICAgICAgc3RhdGVbImJ1
Z19ibG9ja2VkIl0gPSBzdGF0ZVsiYnVnX2lkIl0KICAgICAgICAgZGVsIHN0YXRlWyJidWdfaWQi
XQogICAgICAgICBzdGF0ZVsiYnVnX3RpdGxlIl0gPSAiUkVHUkVTU0lPTihyJXMpOiAlcyIgJSAo
c3RhdGVbInJldmlzaW9uIl0sIHN0YXRlWyJyZWFzb24iXSkKLSAgICAgICAgc3RhdGVbImJ1Z19k
ZXNjcmlwdGlvbiJdID0gIiVzIGJyb2tlIHRoZSBidWlsZDpcbiVzIiAlICh2aWV3X3NvdXJjZV91
cmwoc3RhdGVbInJldmlzaW9uIl0pLCBzdGF0ZVsicmVhc29uIl0pCisgICAgICAgIHN0YXRlWyJi
dWdfZGVzY3JpcHRpb24iXSA9ICIlcyBicm9rZSB0aGUgYnVpbGQ6XG4lcyIgJSAodXJscy52aWV3
X3JldmlzaW9uX3VybChzdGF0ZVsicmV2aXNpb24iXSksIHN0YXRlWyJyZWFzb24iXSkKICAgICAg
ICAgIyBGSVhNRTogSWYgd2UgaGFkIG1vcmUgY29udGV4dCBoZXJlLCB3ZSBjb3VsZCBsaW5rIHRv
IG90aGVyIG9wZW4gYnVncwogICAgICAgICAjICAgICAgICB0aGF0IG1lbnRpb24gdGhlIHRlc3Qg
dGhhdCByZWdyZXNzZWQuCiAgICAgICAgIGlmIG9wdGlvbnMucGFyZW50X2NvbW1hbmQgPT0gInNo
ZXJpZmYtYm90IjoKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9v
bC9jb21tYW5kcy9xdWV1ZXMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
Y29tbWFuZHMvcXVldWVzLnB5CmluZGV4IGJmYWViMDgwOGVmYzFlM2IxODllYzc5ZTJkMmY4Yzk1
ZTllMTgwMzUuLjg1ODcxM2VkMmY5MzUyYmQ1Y2U3NjIwOTlkOGU2ZWJhOGNlM2I1NTcgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXMu
cHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVl
cy5weQpAQCAtNDAsMTUgKzQwLDE1IEBAIGZyb20gU3RyaW5nSU8gaW1wb3J0IFN0cmluZ0lPCiAK
IGZyb20gd2Via2l0cHkuY29tbW9uLmNvbmZpZy5jb21taXR0ZXJ2YWxpZGF0b3IgaW1wb3J0IENv
bW1pdHRlclZhbGlkYXRvcgogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LmJ1Z3ppbGxhIGltcG9y
dCBBdHRhY2htZW50Ci1mcm9tIHdlYmtpdHB5LmNvbW1vbi5uZXQubGF5b3V0dGVzdHJlc3VsdHMg
aW1wb3J0IHBhdGhfZm9yX2xheW91dF90ZXN0LCBMYXlvdXRUZXN0UmVzdWx0cworZnJvbSB3ZWJr
aXRweS5jb21tb24ubmV0LmxheW91dHRlc3RyZXN1bHRzIGltcG9ydCBMYXlvdXRUZXN0UmVzdWx0
cwogZnJvbSB3ZWJraXRweS5jb21tb24ubmV0LnN0YXR1c3NlcnZlciBpbXBvcnQgU3RhdHVzU2Vy
dmVyCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZGVwcmVjYXRlZF9sb2dnaW5nIGltcG9y
dCBlcnJvciwgbG9nCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9y
dCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS50b29sLmJvdC5jb21taXRxdWV1ZXRhc2sgaW1w
b3J0IENvbW1pdFF1ZXVlVGFzaywgQ29tbWl0UXVldWVUYXNrRGVsZWdhdGUKIGZyb20gd2Via2l0
cHkudG9vbC5ib3QuZmVlZGVycyBpbXBvcnQgQ29tbWl0UXVldWVGZWVkZXIsIEVXU0ZlZWRlcgog
ZnJvbSB3ZWJraXRweS50b29sLmJvdC5xdWV1ZWVuZ2luZSBpbXBvcnQgUXVldWVFbmdpbmUsIFF1
ZXVlRW5naW5lRGVsZWdhdGUKK2Zyb20gd2Via2l0cHkudG9vbC5ib3QuZmxha3l0ZXN0cmVwb3J0
ZXIgaW1wb3J0IEZsYWt5VGVzdFJlcG9ydGVyCiBmcm9tIHdlYmtpdHB5LnRvb2wuY29tbWFuZHMu
c3RlcHNlcXVlbmNlIGltcG9ydCBTdGVwU2VxdWVuY2VFcnJvckhhbmRsZXIKLWZyb20gd2Via2l0
cHkudG9vbC5ncmFtbWFyIGltcG9ydCBwbHVyYWxpemUsIGpvaW5fd2l0aF9zZXBhcmF0b3JzCiBm
cm9tIHdlYmtpdHB5LnRvb2wubXVsdGljb21tYW5kdG9vbCBpbXBvcnQgQ29tbWFuZCwgVHJ5QWdh
aW4KIAogCkBAIC0zMTIsMjAgKzMxMiw5IEBAIGNsYXNzIENvbW1pdFF1ZXVlKEFic3RyYWN0UGF0
Y2hRdWV1ZSwgU3RlcFNlcXVlbmNlRXJyb3JIYW5kbGVyLCBDb21taXRRdWV1ZVRhc2tECiAgICAg
ZGVmIHJlZmV0Y2hfcGF0Y2goc2VsZiwgcGF0Y2gpOgogICAgICAgICByZXR1cm4gc2VsZi5fdG9v
bC5idWdzLmZldGNoX2F0dGFjaG1lbnQocGF0Y2guaWQoKSkKIAotICAgIGRlZiBfYXV0aG9yX2Vt
YWlsc19mb3JfdGVzdHMoc2VsZiwgZmxha3lfdGVzdHMpOgotICAgICAgICB0ZXN0X3BhdGhzID0g
bWFwKHBhdGhfZm9yX2xheW91dF90ZXN0LCBmbGFreV90ZXN0cykKLSAgICAgICAgY29tbWl0X2lu
Zm9zID0gc2VsZi5fdG9vbC5jaGVja291dCgpLnJlY2VudF9jb21taXRfaW5mb3NfZm9yX2ZpbGVz
KHRlc3RfcGF0aHMpCi0gICAgICAgIHJldHVybiBzZXQoW2NvbW1pdF9pbmZvLmF1dGhvcigpLmJ1
Z3ppbGxhX2VtYWlsKCkgZm9yIGNvbW1pdF9pbmZvIGluIGNvbW1pdF9pbmZvcyBpZiBjb21taXRf
aW5mby5hdXRob3IoKV0pCi0KICAgICBkZWYgcmVwb3J0X2ZsYWt5X3Rlc3RzKHNlbGYsIHBhdGNo
LCBmbGFreV90ZXN0cyk6Ci0gICAgICAgIG1lc3NhZ2UgPSAiVGhlICVzIGVuY291bnRlcmVkIHRo
ZSBmb2xsb3dpbmcgZmxha3kgdGVzdHMgd2hpbGUgcHJvY2Vzc2luZyBhdHRhY2htZW50ICVzOiIg
JSAoc2VsZi5uYW1lLCBwYXRjaC5pZCgpKQotICAgICAgICBtZXNzYWdlICs9ICJcblxuJXNcblxu
IiAlICgiXG4iLmpvaW4oZmxha3lfdGVzdHMpKQotICAgICAgICBtZXNzYWdlICs9ICJQbGVhc2Ug
ZmlsZSBidWdzIGFnYWluc3QgdGhlIHRlc3RzLiAgIgotICAgICAgICBhdXRob3JfZW1haWxzID0g
c2VsZi5fYXV0aG9yX2VtYWlsc19mb3JfdGVzdHMoZmxha3lfdGVzdHMpCi0gICAgICAgIGlmIGF1
dGhvcl9lbWFpbHM6Ci0gICAgICAgICAgICBtZXNzYWdlICs9ICJUaGVzZSB0ZXN0cyB3ZXJlIGF1
dGhvcmVkIGJ5ICVzLiAgIiAlIChqb2luX3dpdGhfc2VwYXJhdG9ycyhzb3J0ZWQoYXV0aG9yX2Vt
YWlscykpKQotICAgICAgICBtZXNzYWdlICs9ICJUaGUgY29tbWl0LXF1ZXVlIGlzIGNvbnRpbnVp
bmcgdG8gcHJvY2VzcyB5b3VyIHBhdGNoLiIKLSAgICAgICAgc2VsZi5fdG9vbC5idWdzLnBvc3Rf
Y29tbWVudF90b19idWcocGF0Y2guYnVnX2lkKCksIG1lc3NhZ2UpCisgICAgICAgIHJlcG9ydGVy
ID0gRmxha3lUZXN0UmVwb3J0ZXIoc2VsZi5fdG9vbCwgc2VsZi5uYW1lKQorICAgICAgICByZXBv
cnRlci5yZXBvcnRfZmxha3lfdGVzdHMoZmxha3lfdGVzdHMsIHBhdGNoKQogCiAgICAgIyBTdGVw
U2VxdWVuY2VFcnJvckhhbmRsZXIgbWV0aG9kcwogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5IGIvV2ViS2l0
VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL3F1ZXVlc191bml0dGVzdC5weQpp
bmRleCAwODcyOTdhYThlNDk2OTMyYzNiYzUyYmU4NmEwYjgwOWIyNDg3ZDc1Li4wOTIyNjBmYjMx
Y2I4NjMxMGQ2NmUyNjE5MDg5NTk4MDU1YzNmZDZkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvcXVldWVzX3VuaXR0ZXN0LnB5CisrKyBiL1dl
YktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9xdWV1ZXNfdW5pdHRlc3Qu
cHkKQEAgLTI5LDcgKzI5LDYgQEAKIGltcG9ydCBvcwogCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5j
aGVja291dC5zY20gaW1wb3J0IENoZWNrb3V0TmVlZHNVcGRhdGUKLWZyb20gd2Via2l0cHkuY29t
bW9uLmNvbmZpZy5jb21taXR0ZXJzIGltcG9ydCBDb21taXR0ZXIKIGZyb20gd2Via2l0cHkuY29t
bW9uLm5ldC5idWd6aWxsYSBpbXBvcnQgQXR0YWNobWVudAogZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLm91dHB1dGNhcHR1cmUgaW1wb3J0IE91dHB1dENhcHR1cmUKIGZyb20gd2Via2l0cHku
dGhpcmRwYXJ0eS5tb2NrIGltcG9ydCBNb2NrCkBAIC0xOTgsMTkgKzE5Nyw2IEBAIGNsYXNzIFNl
Y29uZFRob3VnaHRzQ29tbWl0UXVldWUoQ29tbWl0UXVldWUpOgogICAgICAgICByZXR1cm4gQXR0
YWNobWVudChhdHRhY2htZW50X2RpY3Rpb25hcnksIE5vbmUpCiAKIAotIyBDcmVhdGluZyBmYWtl
IENvbW1pdEluZm9zIGlzIGEgcGFpbiwgc28gd2UgdXNlIGEgbW9jayBvbmUgaGVyZS4KLWNsYXNz
IE1vY2tDb21taXRJbmZvKG9iamVjdCk6Ci0gICAgZGVmIF9faW5pdF9fKHNlbGYsIGF1dGhvcl9l
bWFpbCk6Ci0gICAgICAgIHNlbGYuX2F1dGhvcl9lbWFpbCA9IGF1dGhvcl9lbWFpbAotCi0gICAg
ZGVmIGF1dGhvcihzZWxmKToKLSAgICAgICAgIyBJdCdzIGRlZmluaXRlbHkgcG9zc2libGUgdG8g
aGF2ZSBjb21taXRzIHdpdGggYXV0aG9ycyB3aG8KLSAgICAgICAgIyBhcmUgbm90IGluIG91ciBj
b21taXR0ZXJzLnB5IGxpc3QuCi0gICAgICAgIGlmIG5vdCBzZWxmLl9hdXRob3JfZW1haWw6Ci0g
ICAgICAgICAgICByZXR1cm4gTm9uZQotICAgICAgICByZXR1cm4gQ29tbWl0dGVyKCJNb2NrIENv
bW1pdHRlciIsIHNlbGYuX2F1dGhvcl9lbWFpbCkKLQotCiBjbGFzcyBDb21taXRRdWV1ZVRlc3Qo
UXVldWVzVGVzdCk6CiAgICAgZGVmIHRlc3RfY29tbWl0X3F1ZXVlKHNlbGYpOgogICAgICAgICBl
eHBlY3RlZF9zdGRlcnIgPSB7CkBAIC0zMzUsMzAgKzMyMSwyNiBAQCBNT0NLOiByZWxlYXNlX3dv
cmtfaXRlbTogY29tbWl0LXF1ZXVlIDE5NwogIiIiCiAgICAgICAgIE91dHB1dENhcHR1cmUoKS5h
c3NlcnRfb3V0cHV0cyhzZWxmLCBxdWV1ZS5wcm9jZXNzX3dvcmtfaXRlbSwgW1F1ZXVlc1Rlc3Qu
bW9ja193b3JrX2l0ZW1dLCBleHBlY3RlZF9zdGRlcnI9ZXhwZWN0ZWRfc3RkZXJyKQogCi0gICAg
ZGVmIF9hc3NlcnRfZW1haWxzX2Zvcl90ZXN0cyhzZWxmLCBlbWFpbHMpOgotICAgICAgICBxdWV1
ZSA9IENvbW1pdFF1ZXVlKCkKLSAgICAgICAgdG9vbCA9IE1vY2tUb29sKCkKLSAgICAgICAgcXVl
dWUuYmluZF90b190b29sKHRvb2wpCi0gICAgICAgIGNvbW1pdF9pbmZvcyA9IFtNb2NrQ29tbWl0
SW5mbyhlbWFpbCkgZm9yIGVtYWlsIGluIGVtYWlsc10KLSAgICAgICAgdG9vbC5jaGVja291dCgp
LnJlY2VudF9jb21taXRfaW5mb3NfZm9yX2ZpbGVzID0gbGFtYmRhIHBhdGhzOiBzZXQoY29tbWl0
X2luZm9zKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHF1ZXVlLl9hdXRob3JfZW1haWxzX2Zv
cl90ZXN0cyhbXSksIHNldChlbWFpbHMpKQotCi0gICAgZGVmIHRlc3RfYXV0aG9yX2VtYWlsc19m
b3JfdGVzdHMoc2VsZik6Ci0gICAgICAgIHNlbGYuX2Fzc2VydF9lbWFpbHNfZm9yX3Rlc3RzKFtd
KQotICAgICAgICBzZWxmLl9hc3NlcnRfZW1haWxzX2Zvcl90ZXN0cyhbInRlc3QxQHRlc3QuY29t
IiwgInRlc3QxQHRlc3QuY29tIl0pCi0gICAgICAgIHNlbGYuX2Fzc2VydF9lbWFpbHNfZm9yX3Rl
c3RzKFsidGVzdDFAdGVzdC5jb20iLCAidGVzdDJAdGVzdC5jb20iXSkKLQogICAgIGRlZiB0ZXN0
X3JlcG9ydF9mbGFreV90ZXN0cyhzZWxmKToKICAgICAgICAgcXVldWUgPSBDb21taXRRdWV1ZSgp
CiAgICAgICAgIHF1ZXVlLmJpbmRfdG9fdG9vbChNb2NrVG9vbCgpKQogICAgICAgICBleHBlY3Rl
ZF9zdGRlcnIgPSAiIiJNT0NLIGJ1ZyBjb21tZW50OiBidWdfaWQ9NDIsIGNjPU5vbmUKIC0tLSBC
ZWdpbiBjb21tZW50IC0tLQotVGhlIGNvbW1pdC1xdWV1ZSBlbmNvdW50ZXJlZCB0aGUgZm9sbG93
aW5nIGZsYWt5IHRlc3RzIHdoaWxlIHByb2Nlc3NpbmcgYXR0YWNobWVudCAxOTc6CitUaGUgY29t
bWl0LXF1ZXVlIGp1c3Qgc2F3IGZvby9iYXIuaHRtbCBmbGFrZSB3aGlsZSBwcm9jZXNzaW5nIHBh
dGNoIDE5NyBvbiBidWcgNDIuCistLS0gRW5kIGNvbW1lbnQgLS0tCiAKLWZvby9iYXIuaHRtbAot
YmFyL2Jhei5odG1sCitNT0NLIGJ1ZyBjb21tZW50OiBidWdfaWQ9NDIsIGNjPU5vbmUKKy0tLSBC
ZWdpbiBjb21tZW50IC0tLQorVGhlIGNvbW1pdC1xdWV1ZSBqdXN0IHNhdyBiYXIvYmF6Lmh0bWwg
Zmxha2Ugd2hpbGUgcHJvY2Vzc2luZyBwYXRjaCAxOTcgb24gYnVnIDQyLgorLS0tIEVuZCBjb21t
ZW50IC0tLQorCitNT0NLIGJ1ZyBjb21tZW50OiBidWdfaWQ9NDIsIGNjPU5vbmUKKy0tLSBCZWdp
biBjb21tZW50IC0tLQorVGhlIGNvbW1pdC1xdWV1ZSBlbmNvdW50ZXJlZCB0aGUgZm9sbG93aW5n
IGZsYWt5IHRlc3RzIHdoaWxlIHByb2Nlc3NpbmcgYXR0YWNobWVudCAxOTc6CiAKLVBsZWFzZSBm
aWxlIGJ1Z3MgYWdhaW5zdCB0aGUgdGVzdHMuICBUaGVzZSB0ZXN0cyB3ZXJlIGF1dGhvcmVkIGJ5
IGFiYXJ0aEB3ZWJraXQub3JnLiAgVGhlIGNvbW1pdC1xdWV1ZSBpcyBjb250aW51aW5nIHRvIHBy
b2Nlc3MgeW91ciBwYXRjaC4KK2Zvby9iYXIuaHRtbCBidWcgNDIgKGF1dGhvcjogYWJhcnRoQHdl
YmtpdC5vcmcpCitiYXIvYmF6Lmh0bWwgYnVnIDQyIChhdXRob3I6IGFiYXJ0aEB3ZWJraXQub3Jn
KQorVGhlIGNvbW1pdC1xdWV1ZSBpcyBjb250aW51aW5nIHRvIHByb2Nlc3MgeW91ciBwYXRjaC4K
IC0tLSBFbmQgY29tbWVudCAtLS0KIAogIiIiCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3Rvb2wvY29tbWVudHMucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWVudHMucHkKaW5kZXggODNmMmJlODJiMTFhNWVkYjE2NTgxNTQ2YTMyMGE5
MGVkZmUxOGYzNy4uNzcxOTUzZTY5OGMwMDBlYzU4MDNiNzJjYjRmNTZlODg4NjNlMGY0OSAxMDA3
NTUKLS0tIGEvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1lbnRzLnB5Cisr
KyBiL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tZW50cy5weQpAQCAtMzAs
MTIgKzMwLDExIEBACiAjIEEgdG9vbCBmb3IgYXV0b21hdGluZyBkZWFsaW5nIHdpdGggYnVnemls
bGEsIHBvc3RpbmcgcGF0Y2hlcywgY29tbWl0dGluZwogIyBwYXRjaGVzLCBldGMuCiAKLWZyb20g
d2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LmNoYW5nZWxvZyBpbXBvcnQgdmlld19zb3VyY2VfdXJs
Citmcm9tIHdlYmtpdHB5LmNvbW1vbi5jb25maWcgaW1wb3J0IHVybHMKIAogCiBkZWYgYnVnX2Nv
bW1lbnRfZnJvbV9zdm5fcmV2aXNpb24oc3ZuX3JldmlzaW9uKToKLSAgICByZXR1cm4gIkNvbW1p
dHRlZCByJXM6IDwlcz4iICUgKHN2bl9yZXZpc2lvbiwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHZpZXdfc291cmNlX3VybChzdm5fcmV2aXNpb24pKQorICAgIHJldHVybiAi
Q29tbWl0dGVkIHIlczogPCVzPiIgJSAoc3ZuX3JldmlzaW9uLCB1cmxzLnZpZXdfcmV2aXNpb25f
dXJsKHN2bl9yZXZpc2lvbikpCiAKIAogZGVmIGJ1Z19jb21tZW50X2Zyb21fY29tbWl0X3RleHQo
c2NtLCBjb21taXRfdGV4dCk6CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvbW9ja3Rvb2wucHkgYi9XZWJLaXRUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wv
bW9ja3Rvb2wucHkKaW5kZXggMDA0MGIxZjY5MTQ0MmFkMjBkZjcyMjNiNjg2N2RjNjg0NDU0ZTE0
ZC4uZTJjODE2ZGU0NTFmYjEwYjA5YTI1MjRlZjczNDMwYzhjNTM4ZWMyNSAxMDA2NDQKLS0tIGEv
V2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL21vY2t0b29sLnB5CisrKyBiL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9tb2NrdG9vbC5weQpAQCAtMjI1LDYgKzIyNSw4
IEBAIGNsYXNzIE1vY2tCdWd6aWxsYVF1ZXJpZXMoTW9jayk6CiAgICAgZGVmIGZldGNoX3BhdGNo
ZXNfZnJvbV9wZW5kaW5nX2NvbW1pdF9saXN0KHNlbGYpOgogICAgICAgICByZXR1cm4gc3VtKFti
dWcucmV2aWV3ZWRfcGF0Y2hlcygpIGZvciBidWcgaW4gc2VsZi5fYWxsX2J1Z3MoKV0sIFtdKQog
CisgICAgZGVmIGZldGNoX2J1Z3NfbWF0Y2hpbmdfc2VhcmNoKHNlbGYsIHNlYXJjaF9zdHJpbmcs
IGF1dGhvcl9lbWFpbD1Ob25lKToKKyAgICAgICAgcmV0dXJuIFtzZWxmLmJ1Z3ppbGxhLmZldGNo
X2J1Zyg3NiksIHNlbGYuYnVnemlsbGEuZmV0Y2hfYnVnKDc3KV0KIAogX21vY2tfcmV2aWV3ZXIg
PSBSZXZpZXdlcigiRm9vIEJhciIsICJmb29AYmFyLmNvbSIpCiAKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9zdGVwcy9jb21taXQucHkgYi9XZWJLaXRUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvc3RlcHMvY29tbWl0LnB5CmluZGV4IDVjNmJkYjdkNDYz
YTJkMjBlNDA3NmEzMzUzZGNhYmY0NjkxZDMxOGEuLjVhYTZiNTFkZTk1MDMyMTU4OTVlNDJiOGQ0
MDU5ZWJjY2JhOWFjMGMgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
dG9vbC9zdGVwcy9jb21taXQucHkKKysrIGIvV2ViS2l0VG9vbHMvU2NyaXB0cy93ZWJraXRweS90
b29sL3N0ZXBzL2NvbW1pdC5weQpAQCAtMjYsOCArMjYsOCBAQAogIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAotZnJvbSB3ZWJraXRweS5jb21tb24uY2hlY2tvdXQuY2hhbmdlbG9nIGlt
cG9ydCB2aWV3X3NvdXJjZV91cmwKIGZyb20gd2Via2l0cHkuY29tbW9uLmNoZWNrb3V0LnNjbSBp
bXBvcnQgQXV0aGVudGljYXRpb25FcnJvciwgQW1iaWd1b3VzQ29tbWl0RXJyb3IKK2Zyb20gd2Vi
a2l0cHkuY29tbW9uLmNvbmZpZyBpbXBvcnQgdXJscwogZnJvbSB3ZWJraXRweS5jb21tb24uc3lz
dGVtLmRlcHJlY2F0ZWRfbG9nZ2luZyBpbXBvcnQgbG9nCiBmcm9tIHdlYmtpdHB5LmNvbW1vbi5z
eXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBTY3JpcHRFcnJvcgogZnJvbSB3ZWJraXRweS5jb21tb24u
c3lzdGVtLnVzZXIgaW1wb3J0IFVzZXIKQEAgLTY2LDcgKzY2LDcgQEAgY2xhc3MgQ29tbWl0KEFi
c3RyYWN0U3RlcCk6CiAgICAgICAgICAgICAgICAgc2NtID0gc2VsZi5fdG9vbC5zY20oKQogICAg
ICAgICAgICAgICAgIGNvbW1pdF90ZXh0ID0gc2NtLmNvbW1pdF93aXRoX21lc3NhZ2Uoc2VsZi5f
Y29tbWl0X21lc3NhZ2UsIGdpdF9jb21taXQ9c2VsZi5fb3B0aW9ucy5naXRfY29tbWl0LCB1c2Vy
bmFtZT11c2VybmFtZSwgZm9yY2Vfc3F1YXNoPWZvcmNlX3NxdWFzaCkKICAgICAgICAgICAgICAg
ICBzdm5fcmV2aXNpb24gPSBzY20uc3ZuX3JldmlzaW9uX2Zyb21fY29tbWl0X3RleHQoY29tbWl0
X3RleHQpCi0gICAgICAgICAgICAgICAgbG9nKCJDb21taXR0ZWQgciVzOiA8JXM+IiAlIChzdm5f
cmV2aXNpb24sIHZpZXdfc291cmNlX3VybChzdm5fcmV2aXNpb24pKSkKKyAgICAgICAgICAgICAg
ICBsb2coIkNvbW1pdHRlZCByJXM6IDwlcz4iICUgKHN2bl9yZXZpc2lvbiwgdXJscy52aWV3X3Jl
dmlzaW9uX3VybChzdm5fcmV2aXNpb24pKSkKICAgICAgICAgICAgICAgICBzZWxmLl9zdGF0ZVsi
Y29tbWl0X3RleHQiXSA9IGNvbW1pdF90ZXh0CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICBleGNlcHQgQW1iaWd1b3VzQ29tbWl0RXJyb3IsIGU6Cg==
</data>
<flag name="review"
          id="67062"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>