<?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>95941</bug_id>
          
          <creation_ts>2012-09-06 00:26:12 -0700</creation_ts>
          <short_desc>REGRESSION(r127700): Breaks inspector closure compilation, uses not defined variables. (Requested by vsevik on #webkit).</short_desc>
          <delta_ts>2012-09-06 00:28:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>93443</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>apavlov</cc>
    
    <cc>vsevik</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>712953</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 00:26:12 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/127700 broke the build:
Breaks inspector closure compilation, uses not defined variables. (Requested by vsevik on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712955</commentid>
    <comment_count>1</comment_count>
      <attachid>162433</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 00:26:54 -0700</bug_when>
    <thetext>Created attachment 162433
ROLLOUT of r127700

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712959</commentid>
    <comment_count>2</comment_count>
      <attachid>162433</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-06 00:28:38 -0700</bug_when>
    <thetext>Comment on attachment 162433
ROLLOUT of r127700

Clearing flags on attachment: 162433

Committed r127703: &lt;http://trac.webkit.org/changeset/127703&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>712960</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-09-06 00:28:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162433</attachid>
            <date>2012-09-06 00:26:54 -0700</date>
            <delta_ts>2012-09-06 00:28:38 -0700</delta_ts>
            <desc>ROLLOUT of r127700</desc>
            <filename>bug-95941-20120906073316.patch</filename>
            <type>text/plain</type>
            <size>41743</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDc0MWNhYWE1OThiNjgw
NDNhNjlkYzdlZGE2ZDYyNGJkZWFiMGVhOS4uNWViM2I4ZTJlMjc3MTZiZjEyMTgxOGEzMzc5Nzdk
OTQ5OTZhODVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDEyLTA5LTA2ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTI3NzAwLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMjc3MDAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk1OTQxCisKKyAgICAgICAgQnJlYWtzIGluc3BlY3RvciBjbG9zdXJlIGNvbXBp
bGF0aW9uLCB1c2VzIG5vdCBkZWZpbmVkCisgICAgICAgIHZhcmlhYmxlcy4gKFJlcXVlc3RlZCBi
eSB2c2V2aWsgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBkb20vTmFtZWRGbG93Q29sbGVjdGlv
bi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYW1lZEZsb3dDb2xsZWN0aW9uOjplbnN1cmVGbG93
V2l0aE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6TmFtZWRGbG93Q29sbGVjdGlvbjo6ZGlzY2Fy
ZE5hbWVkRmxvdyk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAg
ICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JDU1NBZ2VudDo6cmVzZXQpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ1NT
QWdlbnQ6OmRpZENyZWF0ZU5hbWVkRmxvdyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JD
U1NBZ2VudDo6ZGlkUmVtb3ZlTmFtZWRGbG93KToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3Rv
ckNTU0FnZW50OjpnZXROYW1lZEZsb3dDb2xsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Oklu
c3BlY3RvckNTU0FnZW50OjpnZXRGbG93QnlOYW1lKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JDU1NBZ2VudC5oOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgIChJbnNwZWN0b3JDU1NBZ2VudCk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3Rvckluc3RydW1lbnRhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlTmFtZWRGbG93SW1wbCk6
CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlbW92ZU5h
bWVkRmxvd0ltcGwpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JJbnN0cnVtZW50YXRp
b24uaDoKKyAgICAgICAgKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZU5hbWVkRmxvdyk6CisgICAg
ICAgIChXZWJDb3JlOjpJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlbW92ZU5hbWVkRmxv
dyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLmdldE5hbWVkRmxvd0NvbGxlY3Rpb25Bc3luYyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUuZ2V0Rmxvd0J5TmFt
ZUFzeW5jKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5f
bmFtZWRGbG93Q3JlYXRlZC5jYWxsYmFjayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTU3R5
bGVNb2RlbC5wcm90b3R5cGUuX25hbWVkRmxvd0NyZWF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkNTU1N0eWxlTW9kZWwucHJvdG90eXBlLl9uYW1lZEZsb3dSZW1vdmVkLmNhbGxiYWNrKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZS5fbmFtZWRGbG93
UmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTRGlzcGF0Y2hlci5wcm90b3R5cGUu
bmFtZWRGbG93Q3JlYXRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ1NTRGlzcGF0Y2hlci5w
cm90b3R5cGUubmFtZWRGbG93UmVtb3ZlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTmFtZWRG
bG93KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OYW1lZEZsb3cucGFyc2VQYXlsb2FkQXJyYXkp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJOYW1lZEZsb3dUaHJlYWQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyTmFtZWRGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbkxheW91dFVw
ZGF0ZUV2ZW50KToKKwogMjAxMi0wOS0wNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgW1Y4XSBWOEhUTUxEb2N1bWVudCBoYXMgdHdvIG91dC1vZi1zdHlsZSBm
dW5jdGlvbiBuYW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkRmxvd0Nv
bGxlY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL05hbWVkRmxvd0NvbGxlY3Rpb24uY3Bw
CmluZGV4IDU1NDc1MDYyNmQwM2Q3MWE3YjVkMjE5NDY1ZDlkODg0ZjhiMDZjMTIuLjE1ODhmYzZj
MDM3NzQ3MzllYjU4YmZlMTE2N2UwMTkyOTkwMWFlMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9OYW1lZEZsb3dDb2xsZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
TmFtZWRGbG93Q29sbGVjdGlvbi5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgUGFzc1JlZlB0cjxXZWJL
aXROYW1lZEZsb3c+IE5hbWVkRmxvd0NvbGxlY3Rpb246OmVuc3VyZUZsb3dXaXRoTmFtZShjb25z
dCBTdHJpbmcKICAgICBSZWZQdHI8V2ViS2l0TmFtZWRGbG93PiBuZXdGbG93ID0gV2ViS2l0TmFt
ZWRGbG93OjpjcmVhdGUodGhpcywgZmxvd05hbWUpOwogICAgIG1fbmFtZWRGbG93cy5hZGQobmV3
Rmxvdy5nZXQoKSk7CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZU5h
bWVkRmxvdyhtX2RvY3VtZW50LCBuZXdGbG93LmdldCgpKTsKKyAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENyZWF0ZU5hbWVkRmxvdyhtX2RvY3VtZW50LCBuZXdGbG93LT5uYW1lKCkp
OwogCiAgICAgcmV0dXJuIG5ld0Zsb3cucmVsZWFzZSgpOwogfQpAQCAtOTUsOSArOTUsOSBAQCB2
b2lkIE5hbWVkRmxvd0NvbGxlY3Rpb246OmRpc2NhcmROYW1lZEZsb3coV2ViS2l0TmFtZWRGbG93
KiBuYW1lZEZsb3cpCiAgICAgQVNTRVJUKG5hbWVkRmxvdy0+Zmxvd1N0YXRlKCkgPT0gV2ViS2l0
TmFtZWRGbG93OjpGbG93U3RhdGVOdWxsKTsKICAgICBBU1NFUlQobV9uYW1lZEZsb3dzLmNvbnRh
aW5zKG5hbWVkRmxvdykpOwogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVt
b3ZlTmFtZWRGbG93KG1fZG9jdW1lbnQsIG5hbWVkRmxvdyk7Ci0KICAgICBtX25hbWVkRmxvd3Mu
cmVtb3ZlKG5hbWVkRmxvdyk7CisKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJl
bW92ZU5hbWVkRmxvdyhtX2RvY3VtZW50LCBuYW1lZEZsb3ctPm5hbWUoKSk7CiB9CiAKIHZvaWQg
TmFtZWRGbG93Q29sbGVjdGlvbjo6ZG9jdW1lbnREZXN0cm95ZWQoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IGMxZTI2NWM0YjE0YmJhZDFmYmQ5MzYyYjAwODRh
OTA3OThjNTUyNjYuLmUyZGUzMzAxYWM4MTY1ZDk2YTUwN2UwMmU1YzI0YTJjNGQ2NzMyYzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTI0MTIsNiArMjQxMiwx
OCBAQAogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IlJldHVybnMgdGhlIE5hbWVkIEZsb3dzIGZyb20gdGhlIGRvY3VtZW50LiIsCiAgICAgICAgICAg
ICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAgICAgICB7CisgICAg
ICAgICAgICAgICAgIm5hbWUiOiAiZ2V0Rmxvd0J5TmFtZSIsCisgICAgICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZG9jdW1lbnROb2Rl
SWQiLCAiJHJlZiI6ICJET00uTm9kZUlkIiwgImRlc2NyaXB0aW9uIjogIlRoZSBkb2N1bWVudCBu
b2RlIGlkLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5cGUi
OiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk5hbWVkIEZsb3cgaWRlbnRpZmllci4iIH0KKyAg
ICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm5hbWVkRmxvdyIsICIkcmVmIjogIk5hbWVkRmxvdyIsICJk
ZXNjcmlwdGlvbiI6ICJBIE5hbWVkIEZsb3cuIiB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgTmFtZWQgRmxvdyBpZGVudGlm
aWVkIGJ5IHRoZSBnaXZlbiBuYW1lIiwKKyAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQog
ICAgICAgICAgICAgfQogICAgICAgICBdLAogICAgICAgICAiZXZlbnRzIjogWwpAQCAtMjQyOSw3
ICsyNDQxLDggQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAibmFtZSI6ICJuYW1l
ZEZsb3dDcmVhdGVkIiwKICAgICAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lZEZsb3ciLCAiJHJlZiI6ICJOYW1lZEZsb3ciLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIG5ldyBOYW1lZCBGbG93LiIgfQorICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImRvY3VtZW50Tm9kZUlkIiwgIiRyZWYiOiAiRE9NLk5vZGVJZCIsICJkZXNj
cmlwdGlvbiI6ICJUaGUgZG9jdW1lbnQgbm9kZSBpZC4iIH0sCisgICAgICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAibmFtZWRGbG93IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjog
IklkZW50aWZpZXIgb2YgdGhlIG5ldyBOYW1lZCBGbG93LiIgfQogICAgICAgICAgICAgICAgIF0s
CiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZpcmVzIHdoZW4gYSBOYW1lZCBGbG93
IGlzIGNyZWF0ZWQuIiwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1ZQpAQCAtMjQzOCwx
OCArMjQ1MSwxMCBAQAogICAgICAgICAgICAgICAgICJuYW1lIjogIm5hbWVkRmxvd1JlbW92ZWQi
LAogICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImRvY3VtZW50Tm9kZUlkIiwgIiRyZWYiOiAiRE9NLk5vZGVJZCIsICJkZXNjcmlw
dGlvbiI6ICJUaGUgZG9jdW1lbnQgbm9kZSBpZC4iIH0sCi0gICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiZmxvd05hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiSWRl
bnRpZmllciBvZiB0aGUgcmVtb3ZlZCBOYW1lZCBGbG93LiIgfQorICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogIm5hbWVkRmxvdyIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6
ICJJZGVudGlmaWVyIG9mIHRoZSByZW1vdmVkIE5hbWVkIEZsb3cuIiB9CiAgICAgICAgICAgICAg
ICAgXSwKICAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmlyZXMgd2hlbiBhIE5hbWVk
IEZsb3cgaXMgcmVtb3ZlZDogaGFzIG5vIGFzc29jaWF0ZWQgY29udGVudCBub2RlcyBhbmQgcmVn
aW9ucy4iLAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCi0gICAgICAgICAgICB9LAot
ICAgICAgICAgICAgewotICAgICAgICAgICAgICAgICJuYW1lIjogInJlZ2lvbkxheW91dFVwZGF0
ZWQiLAotICAgICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogIm5hbWVkRmxvdyIsICIkcmVmIjogIk5hbWVkRmxvdyIsICJkZXNjcmlwdGlv
biI6ICJUaGUgTmFtZWQgRmxvdyB3aG9zZSBsYXlvdXQgbWF5IGhhdmUgY2hhbmdlZC4iIH0KLSAg
ICAgICAgICAgICAgICBdLAotICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGaXJlcyB3
aGVuIGEgTmFtZWQgRmxvdydzIGxheW91dCBtYXkgaGF2ZSBjaGFuZ2VkLiIsCi0gICAgICAgICAg
ICAgICAgImhpZGRlbiI6IHRydWUKICAgICAgICAgICAgIH0KICAgICAgICAgXQogICAgIH0sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmNwcAppbmRleCBi
ZGFjZmNiZGViZTA2MTdhZGQ4NmE4NDJiMzJlMzIyOWNkOGViMjczLi4yNGM3MTk3YjZlZWI2MGIz
MTc2MzcwZDU1MzRlZjQ2ZDEzYjRlYmRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yQ1NTQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JDU1NBZ2VudC5jcHAKQEAgLTIyNiw0MiArMjI2LDYgQEAgUGFzc1JlZlB0cjxU
eXBlQnVpbGRlcjo6Q1NTOjpTZWxlY3RvclByb2ZpbGU+IFNlbGVjdG9yUHJvZmlsZTo6dG9JbnNw
ZWN0b3JPYmplY3QKICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2UoKTsKIH0KIAotY2xhc3MgVXBk
YXRlUmVnaW9uTGF5b3V0VGFzayB7Ci1wdWJsaWM6Ci0gICAgVXBkYXRlUmVnaW9uTGF5b3V0VGFz
ayhJbnNwZWN0b3JDU1NBZ2VudCopOwotICAgIHZvaWQgc2NoZWR1bGVGb3IoV2ViS2l0TmFtZWRG
bG93KiwgaW50IGRvY3VtZW50Tm9kZUlkKTsKLSAgICB2b2lkIHJlc2V0KCkgeyBtX3RpbWVyLnN0
b3AoKTsgfQotICAgIHZvaWQgb25UaW1lcihUaW1lcjxVcGRhdGVSZWdpb25MYXlvdXRUYXNrPiop
OwotCi1wcml2YXRlOgotICAgIEluc3BlY3RvckNTU0FnZW50KiBtX2Nzc0FnZW50OwotICAgIFRp
bWVyPFVwZGF0ZVJlZ2lvbkxheW91dFRhc2s+IG1fdGltZXI7Ci0gICAgSGFzaE1hcDxXZWJLaXRO
YW1lZEZsb3cqLCBpbnQ+IG1fbmFtZWRGbG93czsKLX07Ci0KLVVwZGF0ZVJlZ2lvbkxheW91dFRh
c2s6OlVwZGF0ZVJlZ2lvbkxheW91dFRhc2soSW5zcGVjdG9yQ1NTQWdlbnQqIGNzc0FnZW50KQot
ICAgIDogbV9jc3NBZ2VudChjc3NBZ2VudCkKLSAgICAsIG1fdGltZXIodGhpcywgJlVwZGF0ZVJl
Z2lvbkxheW91dFRhc2s6Om9uVGltZXIpCi17Ci19Ci0KLXZvaWQgVXBkYXRlUmVnaW9uTGF5b3V0
VGFzazo6c2NoZWR1bGVGb3IoV2ViS2l0TmFtZWRGbG93KiBuYW1lZEZsb3csIGludCBkb2N1bWVu
dE5vZGVJZCkKLXsKLSAgICBtX25hbWVkRmxvd3MuYWRkKG5hbWVkRmxvdywgZG9jdW1lbnROb2Rl
SWQpOwotCi0gICAgaWYgKCFtX3RpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgIG1fdGltZXIuc3Rh
cnRPbmVTaG90KDApOwotfQotCi12b2lkIFVwZGF0ZVJlZ2lvbkxheW91dFRhc2s6Om9uVGltZXIo
VGltZXI8VXBkYXRlUmVnaW9uTGF5b3V0VGFzaz4qKQotewotICAgIC8vIFRoZSB0aW1lciBpcyBz
dG9wcGVkIG9uIG1fY3NzQWdlbnQgZGVzdHJ1Y3Rpb24sIHNvIHRoaXMgbWV0aG9kIHdpbGwgbmV2
ZXIgYmUgY2FsbGVkIGFmdGVyIG1fY3NzQWdlbnQgaGFzIGJlZW4gZGVzdHJveWVkLgotICAgIGZv
ciAoSGFzaE1hcDxXZWJLaXROYW1lZEZsb3cqLCBpbnQ+OjppdGVyYXRvciBpdCA9IG1fbmFtZWRG
bG93cy5iZWdpbigpLCBlbmQgPSBtX25hbWVkRmxvd3MuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkK
LSAgICAgICAgbV9jc3NBZ2VudC0+cmVnaW9uTGF5b3V0VXBkYXRlZChpdC0+Zmlyc3QsIGl0LT5z
ZWNvbmQpOwotCi0gICAgbV9uYW1lZEZsb3dzLmNsZWFyKCk7Ci19Ci0KIGNsYXNzIEluc3BlY3Rv
ckNTU0FnZW50OjpTdHlsZVNoZWV0QWN0aW9uIDogcHVibGljIEluc3BlY3Rvckhpc3Rvcnk6OkFj
dGlvbiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoU3R5bGVTaGVldEFjdGlvbik7CiBwdWJs
aWM6CkBAIC01NTQsOCArNTE4LDYgQEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6cmVzZXQoKQog
ICAgIG1fbm9kZVRvSW5zcGVjdG9yU3R5bGVTaGVldC5jbGVhcigpOwogICAgIG1fZG9jdW1lbnRU
b0luc3BlY3RvclN0eWxlU2hlZXQuY2xlYXIoKTsKICAgICBtX25hbWVkRmxvd0NvbGxlY3Rpb25z
UmVxdWVzdGVkLmNsZWFyKCk7Ci0gICAgaWYgKG1fdXBkYXRlUmVnaW9uTGF5b3V0VGFzaykKLSAg
ICAgICAgbV91cGRhdGVSZWdpb25MYXlvdXRUYXNrLT5yZXNldCgpOwogICAgIHJlc2V0UHNldWRv
U3RhdGVzKCk7CiB9CiAKQEAgLTU3NSw0MyArNTM3LDIyIEBAIHZvaWQgSW5zcGVjdG9yQ1NTQWdl
bnQ6Om1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkKCkKICAgICAgICAgbV9mcm9udGVuZC0+bWVkaWFR
dWVyeVJlc3VsdENoYW5nZWQoKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6ZGlkQ3Jl
YXRlTmFtZWRGbG93KERvY3VtZW50KiBkb2N1bWVudCwgV2ViS2l0TmFtZWRGbG93KiBuYW1lZEZs
b3cpCit2b2lkIEluc3BlY3RvckNTU0FnZW50OjpkaWRDcmVhdGVOYW1lZEZsb3coRG9jdW1lbnQq
IGRvY3VtZW50LCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCiB7Ci0gICAgaW50IGRvY3VtZW50
Tm9kZUlkID0gZG9jdW1lbnROb2RlV2l0aFJlcXVlc3RlZEZsb3dzSWQoZG9jdW1lbnQpOwotICAg
IGlmICghZG9jdW1lbnROb2RlSWQpCisgICAgaW50IG5vZGVJZCA9IG1fZG9tQWdlbnQtPmJvdW5k
Tm9kZUlkKGRvY3VtZW50KTsKKyAgICBpZiAoIW5vZGVJZCB8fCAhbV9uYW1lZEZsb3dDb2xsZWN0
aW9uc1JlcXVlc3RlZC5jb250YWlucyhub2RlSWQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBF
cnJvclN0cmluZyBlcnJvclN0cmluZzsKLSAgICBtX2Zyb250ZW5kLT5uYW1lZEZsb3dDcmVhdGVk
KGJ1aWxkT2JqZWN0Rm9yTmFtZWRGbG93KCZlcnJvclN0cmluZywgbmFtZWRGbG93LCBkb2N1bWVu
dE5vZGVJZCkpOworICAgIG1fZnJvbnRlbmQtPm5hbWVkRmxvd0NyZWF0ZWQobm9kZUlkLCBuYW1l
LnN0cmluZygpKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6d2lsbFJlbW92ZU5hbWVk
RmxvdyhEb2N1bWVudCogZG9jdW1lbnQsIFdlYktpdE5hbWVkRmxvdyogbmFtZWRGbG93KQordm9p
ZCBJbnNwZWN0b3JDU1NBZ2VudDo6ZGlkUmVtb3ZlTmFtZWRGbG93KERvY3VtZW50KiBkb2N1bWVu
dCwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQogewotICAgIGludCBkb2N1bWVudE5vZGVJZCA9
IGRvY3VtZW50Tm9kZVdpdGhSZXF1ZXN0ZWRGbG93c0lkKGRvY3VtZW50KTsKLSAgICBpZiAoIWRv
Y3VtZW50Tm9kZUlkKQorICAgIGludCBub2RlSWQgPSBtX2RvbUFnZW50LT5ib3VuZE5vZGVJZChk
b2N1bWVudCk7CisgICAgaWYgKCFub2RlSWQgfHwgIW1fbmFtZWRGbG93Q29sbGVjdGlvbnNSZXF1
ZXN0ZWQuY29udGFpbnMobm9kZUlkKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9mcm9udGVu
ZC0+bmFtZWRGbG93UmVtb3ZlZChkb2N1bWVudE5vZGVJZCwgbmFtZWRGbG93LT5uYW1lKCkuc3Ry
aW5nKCkpOwotfQotCi12b2lkIEluc3BlY3RvckNTU0FnZW50OjpkaWRVcGRhdGVSZWdpb25MYXlv
dXQoRG9jdW1lbnQqIGRvY3VtZW50LCBXZWJLaXROYW1lZEZsb3cqIG5hbWVkRmxvdykKLXsKLSAg
ICBpbnQgZG9jdW1lbnROb2RlSWQgPSBkb2N1bWVudE5vZGVXaXRoUmVxdWVzdGVkRmxvd3NJZChk
b2N1bWVudCk7Ci0gICAgaWYgKCFkb2N1bWVudE5vZGVJZCkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKCFtX3VwZGF0ZVJlZ2lvbkxheW91dFRhc2spCi0gICAgICAgIG1fdXBkYXRlUmVnaW9u
TGF5b3V0VGFzayA9IGFkb3B0UHRyKG5ldyBVcGRhdGVSZWdpb25MYXlvdXRUYXNrKHRoaXMpKTsK
LSAgICBtX3VwZGF0ZVJlZ2lvbkxheW91dFRhc2stPnNjaGVkdWxlRm9yKG5hbWVkRmxvdywgZG9j
dW1lbnROb2RlSWQpOwotfQotCi12b2lkIEluc3BlY3RvckNTU0FnZW50OjpyZWdpb25MYXlvdXRV
cGRhdGVkKFdlYktpdE5hbWVkRmxvdyogbmFtZWRGbG93LCBpbnQgZG9jdW1lbnROb2RlSWQpCi17
Ci0gICAgaWYgKG5hbWVkRmxvdy0+Zmxvd1N0YXRlKCkgPT0gV2ViS2l0TmFtZWRGbG93OjpGbG93
U3RhdGVOdWxsKQotICAgICAgICByZXR1cm47Ci0KLSAgICBFcnJvclN0cmluZyBlcnJvclN0cmlu
ZzsKLSAgICBtX2Zyb250ZW5kLT5yZWdpb25MYXlvdXRVcGRhdGVkKGJ1aWxkT2JqZWN0Rm9yTmFt
ZWRGbG93KCZlcnJvclN0cmluZywgbmFtZWRGbG93LCBkb2N1bWVudE5vZGVJZCkpOworICAgIG1f
ZnJvbnRlbmQtPm5hbWVkRmxvd1JlbW92ZWQobm9kZUlkLCBuYW1lLnN0cmluZygpKTsKIH0KIAog
Ym9vbCBJbnNwZWN0b3JDU1NBZ2VudDo6Zm9yY2VQc2V1ZG9TdGF0ZShFbGVtZW50KiBlbGVtZW50
LCBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBwc2V1ZG9UeXBlKQpAQCAtODg3LDE2ICs4MjgsMzIg
QEAgdm9pZCBJbnNwZWN0b3JDU1NBZ2VudDo6Z2V0TmFtZWRGbG93Q29sbGVjdGlvbihFcnJvclN0
cmluZyogZXJyb3JTdHJpbmcsIGludCBkb2MKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9uYW1l
ZEZsb3dDb2xsZWN0aW9uc1JlcXVlc3RlZC5hZGQoZG9jdW1lbnROb2RlSWQpOwotCiAgICAgVmVj
dG9yPFJlZlB0cjxXZWJLaXROYW1lZEZsb3c+ID4gbmFtZWRGbG93c1ZlY3RvciA9IGRvY3VtZW50
LT5uYW1lZEZsb3dzKCktPm5hbWVkRmxvd3MoKTsKICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFy
cmF5PFR5cGVCdWlsZGVyOjpDU1M6Ok5hbWVkRmxvdz4gPiBuYW1lZEZsb3dzID0gVHlwZUJ1aWxk
ZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpDU1M6Ok5hbWVkRmxvdz46OmNyZWF0ZSgpOwogCisKICAg
ICBmb3IgKFZlY3RvcjxSZWZQdHI8V2ViS2l0TmFtZWRGbG93PiA+OjppdGVyYXRvciBpdCA9IG5h
bWVkRmxvd3NWZWN0b3IuYmVnaW4oKTsgaXQgIT0gbmFtZWRGbG93c1ZlY3Rvci5lbmQoKTsgKytp
dCkKICAgICAgICAgbmFtZWRGbG93cy0+YWRkSXRlbShidWlsZE9iamVjdEZvck5hbWVkRmxvdyhl
cnJvclN0cmluZywgaXQtPmdldCgpLCBkb2N1bWVudE5vZGVJZCkpOwogCiAgICAgcmVzdWx0ID0g
bmFtZWRGbG93cy5yZWxlYXNlKCk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmdldEZs
b3dCeU5hbWUoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBpbnQgZG9jdW1lbnROb2RlSWQsIGNv
bnN0IFN0cmluZyYgZmxvd05hbWUsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpOYW1lZEZsb3c+
JiByZXN1bHQpCit7CisgICAgRG9jdW1lbnQqIGRvY3VtZW50ID0gbV9kb21BZ2VudC0+YXNzZXJ0
RG9jdW1lbnQoZXJyb3JTdHJpbmcsIGRvY3VtZW50Tm9kZUlkKTsKKyAgICBpZiAoIWRvY3VtZW50
KQorICAgICAgICByZXR1cm47CisKKyAgICBXZWJLaXROYW1lZEZsb3cqIHdlYmtpdE5hbWVkRmxv
dyA9IGRvY3VtZW50LT5uYW1lZEZsb3dzKCktPmZsb3dCeU5hbWUoZmxvd05hbWUpOworICAgIGlm
ICghd2Via2l0TmFtZWRGbG93KSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJObyB0YXJnZXQg
Q1NTIE5hbWVkIEZsb3cgZm91bmQiOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgUmVm
UHRyPFdlYktpdE5hbWVkRmxvdz4gcHJvdGVjdG9yKHdlYmtpdE5hbWVkRmxvdyk7CisgICAgcmVz
dWx0ID0gYnVpbGRPYmplY3RGb3JOYW1lZEZsb3coZXJyb3JTdHJpbmcsIHdlYmtpdE5hbWVkRmxv
dywgZG9jdW1lbnROb2RlSWQpOworfQorCiB2b2lkIEluc3BlY3RvckNTU0FnZW50OjpzdGFydFNl
bGVjdG9yUHJvZmlsZXIoRXJyb3JTdHJpbmcqKQogewogICAgIG1fY3VycmVudFNlbGVjdG9yUHJv
ZmlsZSA9IGFkb3B0UHRyKG5ldyBTZWxlY3RvclByb2ZpbGUoKSk7CkBAIC05NzYsMTUgKzkzMyw2
IEBAIEVsZW1lbnQqIEluc3BlY3RvckNTU0FnZW50OjplbGVtZW50Rm9ySWQoRXJyb3JTdHJpbmcq
IGVycm9yU3RyaW5nLCBpbnQgbm9kZUlkKQogICAgIHJldHVybiB0b0VsZW1lbnQobm9kZSk7CiB9
CiAKLWludCBJbnNwZWN0b3JDU1NBZ2VudDo6ZG9jdW1lbnROb2RlV2l0aFJlcXVlc3RlZEZsb3dz
SWQoRG9jdW1lbnQqIGRvY3VtZW50KQotewotICAgIGludCBkb2N1bWVudE5vZGVJZCA9IG1fZG9t
QWdlbnQtPmJvdW5kTm9kZUlkKGRvY3VtZW50KTsKLSAgICBpZiAoIWRvY3VtZW50Tm9kZUlkIHx8
ICFtX25hbWVkRmxvd0NvbGxlY3Rpb25zUmVxdWVzdGVkLmNvbnRhaW5zKGRvY3VtZW50Tm9kZUlk
KSkKLSAgICAgICAgcmV0dXJuIDA7Ci0KLSAgICByZXR1cm4gZG9jdW1lbnROb2RlSWQ7Ci19Ci0K
IHZvaWQgSW5zcGVjdG9yQ1NTQWdlbnQ6OmNvbGxlY3RTdHlsZVNoZWV0cyhDU1NTdHlsZVNoZWV0
KiBzdHlsZVNoZWV0LCBUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5
bGVTaGVldEhlYWRlcj4qIHJlc3VsdCkKIHsKICAgICBJbnNwZWN0b3JTdHlsZVNoZWV0KiBpbnNw
ZWN0b3JTdHlsZVNoZWV0ID0gYmluZFN0eWxlU2hlZXQoc3RhdGljX2Nhc3Q8Q1NTU3R5bGVTaGVl
dCo+KHN0eWxlU2hlZXQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JDU1NBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNT
U0FnZW50LmgKaW5kZXggODhlNmYyMTlmOTRkNThjMjkwZWUxMjM3ZTFjNjA2YWZlOGU1YjlhMS4u
ZmUxYTNiMTA5NDAyNjdkNWM2NmY3MWFlYjMyMTk3NDAzNjQ2YTJiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNTU0FnZW50LmgKQEAgLTU1LDcgKzU1LDYgQEAgY2xh
c3MgTm9kZTsKIGNsYXNzIE5vZGVMaXN0OwogY2xhc3MgU2VsZWN0b3JQcm9maWxlOwogY2xhc3Mg
U3R5bGVSZXNvbHZlcjsKLWNsYXNzIFVwZGF0ZVJlZ2lvbkxheW91dFRhc2s7CiAKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogCkBAIC0xMDAsMTAgKzk5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwg
dm9pZCBkaXNhYmxlKEVycm9yU3RyaW5nKik7CiAgICAgdm9pZCByZXNldCgpOwogICAgIHZvaWQg
bWVkaWFRdWVyeVJlc3VsdENoYW5nZWQoKTsKLSAgICB2b2lkIGRpZENyZWF0ZU5hbWVkRmxvdyhE
b2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyopOwotICAgIHZvaWQgd2lsbFJlbW92ZU5hbWVkRmxv
dyhEb2N1bWVudCosIFdlYktpdE5hbWVkRmxvdyopOwotICAgIHZvaWQgZGlkVXBkYXRlUmVnaW9u
TGF5b3V0KERvY3VtZW50KiwgV2ViS2l0TmFtZWRGbG93Kik7Ci0gICAgdm9pZCByZWdpb25MYXlv
dXRVcGRhdGVkKFdlYktpdE5hbWVkRmxvdyosIGludCBkb2N1bWVudE5vZGVJZCk7CisgICAgdm9p
ZCBkaWRDcmVhdGVOYW1lZEZsb3coRG9jdW1lbnQqLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUp
OworICAgIHZvaWQgZGlkUmVtb3ZlTmFtZWRGbG93KERvY3VtZW50KiwgY29uc3QgQXRvbWljU3Ry
aW5nJiBuYW1lKTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXRDb21wdXRlZFN0eWxlRm9yTm9kZShF
cnJvclN0cmluZyosIGludCBub2RlSWQsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1
aWxkZXI6OkNTUzo6Q1NTQ29tcHV0ZWRTdHlsZVByb3BlcnR5PiA+Jik7CiAgICAgdmlydHVhbCB2
b2lkIGdldElubGluZVN0eWxlc0Zvck5vZGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGU+JiBpbmxpbmVTdHlsZSwgUmVmUHRyPFR5cGVC
dWlsZGVyOjpDU1M6OkNTU1N0eWxlPiYgYXR0cmlidXRlcyk7CkBAIC0xMTksNiArMTE2LDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBnZXRTdXBwb3J0ZWRDU1NQcm9wZXJ0aWVzKEVycm9y
U3RyaW5nKiwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpDU1NQ
cm9wZXJ0eUluZm8+ID4mIHJlc3VsdCk7CiAgICAgdmlydHVhbCB2b2lkIGZvcmNlUHNldWRvU3Rh
dGUoRXJyb3JTdHJpbmcqLCBpbnQgbm9kZUlkLCBjb25zdCBSZWZQdHI8SW5zcGVjdG9yQXJyYXk+
JiBmb3JjZWRQc2V1ZG9DbGFzc2VzKTsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0TmFtZWRGbG93Q29s
bGVjdGlvbihFcnJvclN0cmluZyosIGludCBkb2N1bWVudE5vZGVJZCwgUmVmUHRyPFR5cGVCdWls
ZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6Q1NTOjpOYW1lZEZsb3c+ID4mIHJlc3VsdCk7CisgICAg
dmlydHVhbCB2b2lkIGdldEZsb3dCeU5hbWUoRXJyb3JTdHJpbmcqLCBpbnQgZG9jdW1lbnROb2Rl
SWQsIGNvbnN0IFN0cmluZyYgZmxvd05hbWUsIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpOYW1l
ZEZsb3c+JiByZXN1bHQpOwogCiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0U2VsZWN0b3JQcm9maWxl
cihFcnJvclN0cmluZyopOwogICAgIHZpcnR1YWwgdm9pZCBzdG9wU2VsZWN0b3JQcm9maWxlcihF
cnJvclN0cmluZyosIFJlZlB0cjxUeXBlQnVpbGRlcjo6Q1NTOjpTZWxlY3RvclByb2ZpbGU+Jik7
CkBAIC0xNDcsNyArMTQ1LDYgQEAgcHJpdmF0ZToKIAogICAgIEluc3BlY3RvclN0eWxlU2hlZXRG
b3JJbmxpbmVTdHlsZSogYXNJbnNwZWN0b3JTdHlsZVNoZWV0KEVsZW1lbnQqIGVsZW1lbnQpOwog
ICAgIEVsZW1lbnQqIGVsZW1lbnRGb3JJZChFcnJvclN0cmluZyosIGludCBub2RlSWQpOwotICAg
IGludCBkb2N1bWVudE5vZGVXaXRoUmVxdWVzdGVkRmxvd3NJZChEb2N1bWVudCopOwogICAgIHZv
aWQgY29sbGVjdFN0eWxlU2hlZXRzKENTU1N0eWxlU2hlZXQqLCBUeXBlQnVpbGRlcjo6QXJyYXk8
V2ViQ29yZTo6VHlwZUJ1aWxkZXI6OkNTUzo6Q1NTU3R5bGVTaGVldEhlYWRlcj4qKTsKIAogICAg
IEluc3BlY3RvclN0eWxlU2hlZXQqIGJpbmRTdHlsZVNoZWV0KENTU1N0eWxlU2hlZXQqKTsKQEAg
LTE3OSw3ICsxNzYsNiBAQCBwcml2YXRlOgogICAgIERvY3VtZW50VG9WaWFJbnNwZWN0b3JTdHls
ZVNoZWV0IG1fZG9jdW1lbnRUb0luc3BlY3RvclN0eWxlU2hlZXQ7CiAgICAgTm9kZUlkVG9Gb3Jj
ZWRQc2V1ZG9TdGF0ZSBtX25vZGVJZFRvRm9yY2VkUHNldWRvU3RhdGU7CiAgICAgSGFzaFNldDxp
bnQ+IG1fbmFtZWRGbG93Q29sbGVjdGlvbnNSZXF1ZXN0ZWQ7Ci0gICAgT3duUHRyPFVwZGF0ZVJl
Z2lvbkxheW91dFRhc2s+IG1fdXBkYXRlUmVnaW9uTGF5b3V0VGFzazsKIAogICAgIGludCBtX2xh
c3RTdHlsZVNoZWV0SWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5jcHAKaW5kZXggMTQxYzI5YTA1ZmVhMmVkYzEwYTM3N2Mx
YThhN2FkNWI3ZmUxNGU1MC4uNDFiN2JjODFhZGVkYTBhZTg4MWViZTk2ZWVmN2QwN2U2M2QxNDlh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1l
bnRhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbi5jcHAKQEAgLTIzMSwyMiArMjMxLDE2IEBAIHZvaWQgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjp3aWxsUG9wU2hhZG93Um9vdEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyogaW5z
dHJ1CiAgICAgICAgIGRvbUFnZW50LT53aWxsUG9wU2hhZG93Um9vdChob3N0LCByb290KTsKIH0K
IAotdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZU5hbWVkRmxvd0ltcGwo
SW5zdHJ1bWVudGluZ0FnZW50cyogaW5zdHJ1bWVudGluZ0FnZW50cywgRG9jdW1lbnQqIGRvY3Vt
ZW50LCBXZWJLaXROYW1lZEZsb3cqIG5hbWVkRmxvdykKK3ZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDcmVhdGVOYW1lZEZsb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsIERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgQXRvbWljU3RyaW5nJiBu
YW1lKQogewogICAgIGlmIChJbnNwZWN0b3JDU1NBZ2VudCogY3NzQWdlbnQgPSBpbnN0cnVtZW50
aW5nQWdlbnRzLT5pbnNwZWN0b3JDU1NBZ2VudCgpKQotICAgICAgICBjc3NBZ2VudC0+ZGlkQ3Jl
YXRlTmFtZWRGbG93KGRvY3VtZW50LCBuYW1lZEZsb3cpOworICAgICAgICBjc3NBZ2VudC0+ZGlk
Q3JlYXRlTmFtZWRGbG93KGRvY3VtZW50LCBuYW1lKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OndpbGxSZW1vdmVOYW1lZEZsb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIERvY3VtZW50KiBkb2N1bWVudCwgV2ViS2l0TmFtZWRGbG93
KiBuYW1lZEZsb3cpCit2b2lkIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVtb3ZlTmFt
ZWRGbG93SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzLCBEb2N1
bWVudCogZG9jdW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKIHsKICAgICBpZiAoSW5z
cGVjdG9yQ1NTQWdlbnQqIGNzc0FnZW50ID0gaW5zdHJ1bWVudGluZ0FnZW50cy0+aW5zcGVjdG9y
Q1NTQWdlbnQoKSkKLSAgICAgICAgY3NzQWdlbnQtPndpbGxSZW1vdmVOYW1lZEZsb3coZG9jdW1l
bnQsIG5hbWVkRmxvdyk7Ci19Ci0KLXZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRV
cGRhdGVSZWdpb25MYXlvdXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3RydW1lbnRpbmdB
Z2VudHMsIERvY3VtZW50KiBkb2N1bWVudCwgV2ViS2l0TmFtZWRGbG93KiBuYW1lZEZsb3cpCi17
Ci0gICAgaWYgKEluc3BlY3RvckNTU0FnZW50KiBjc3NBZ2VudCA9IGluc3RydW1lbnRpbmdBZ2Vu
dHMtPmluc3BlY3RvckNTU0FnZW50KCkpCi0gICAgICAgIGNzc0FnZW50LT5kaWRVcGRhdGVSZWdp
b25MYXlvdXQoZG9jdW1lbnQsIG5hbWVkRmxvdyk7CisgICAgICAgIGNzc0FnZW50LT5kaWRSZW1v
dmVOYW1lZEZsb3coZG9jdW1lbnQsIG5hbWUpOwogfQogCiB2b2lkIEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMq
IGluc3RydW1lbnRpbmdBZ2VudHMsIGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWdu
ZWQgbW9kaWZpZXJGbGFncykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24uaAppbmRleCAyMzczNjczYjMxMTQzYTQ1MzFiNjIwMWJlNjAy
ZDFmZTkxODc3ZDIxLi5jMjVkMzcyMmI5YWE3MmFhMWQ2NzVhNmE1ODYwM2Q2ZTNmNmMzOGY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvckluc3RydW1lbnRh
dGlvbi5oCkBAIC0xMTMsOSArMTEzLDggQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIG1lZGlh
UXVlcnlSZXN1bHRDaGFuZ2VkKERvY3VtZW50Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkUHVzaFNo
YWRvd1Jvb3QoRWxlbWVudCogaG9zdCwgU2hhZG93Um9vdCopOwogICAgIHN0YXRpYyB2b2lkIHdp
bGxQb3BTaGFkb3dSb290KEVsZW1lbnQqIGhvc3QsIFNoYWRvd1Jvb3QqKTsKLSAgICBzdGF0aWMg
dm9pZCBkaWRDcmVhdGVOYW1lZEZsb3coRG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsKLSAg
ICBzdGF0aWMgdm9pZCB3aWxsUmVtb3ZlTmFtZWRGbG93KERvY3VtZW50KiwgV2ViS2l0TmFtZWRG
bG93Kik7Ci0gICAgc3RhdGljIHZvaWQgZGlkVXBkYXRlUmVnaW9uTGF5b3V0KERvY3VtZW50Kiwg
V2ViS2l0TmFtZWRGbG93Kik7CisgICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlTmFtZWRGbG93KERv
Y3VtZW50KiwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKTsKKyAgICBzdGF0aWMgdm9pZCBkaWRS
ZW1vdmVOYW1lZEZsb3coRG9jdW1lbnQqLCBjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpOwogCiAg
ICAgc3RhdGljIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoUGFnZSosIGNvbnN0IEhpdFRl
c3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKICAgICBzdGF0aWMgYm9vbCBoYW5k
bGVNb3VzZVByZXNzKFBhZ2UqKTsKQEAgLTI5MSw5ICsyOTAsOCBAQCBwcml2YXRlOgogICAgIHN0
YXRpYyB2b2lkIG1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkSW1wbChJbnN0cnVtZW50aW5nQWdlbnRz
Kik7CiAgICAgc3RhdGljIHZvaWQgZGlkUHVzaFNoYWRvd1Jvb3RJbXBsKEluc3RydW1lbnRpbmdB
Z2VudHMqLCBFbGVtZW50KiBob3N0LCBTaGFkb3dSb290Kik7CiAgICAgc3RhdGljIHZvaWQgd2ls
bFBvcFNoYWRvd1Jvb3RJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBFbGVtZW50KiBob3N0LCBT
aGFkb3dSb290Kik7Ci0gICAgc3RhdGljIHZvaWQgZGlkQ3JlYXRlTmFtZWRGbG93SW1wbChJbnN0
cnVtZW50aW5nQWdlbnRzKiwgRG9jdW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsKLSAgICBzdGF0
aWMgdm9pZCB3aWxsUmVtb3ZlTmFtZWRGbG93SW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKiwgRG9j
dW1lbnQqLCBXZWJLaXROYW1lZEZsb3cqKTsKLSAgICBzdGF0aWMgdm9pZCBkaWRVcGRhdGVSZWdp
b25MYXlvdXRJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBEb2N1bWVudCosIFdlYktpdE5hbWVk
RmxvdyopOworICAgIHN0YXRpYyB2b2lkIGRpZENyZWF0ZU5hbWVkRmxvd0ltcGwoSW5zdHJ1bWVu
dGluZ0FnZW50cyosIERvY3VtZW50KiwgY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKTsKKyAgICBz
dGF0aWMgdm9pZCBkaWRSZW1vdmVOYW1lZEZsb3dJbXBsKEluc3RydW1lbnRpbmdBZ2VudHMqLCBE
b2N1bWVudCosIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSk7CiAKICAgICBzdGF0aWMgdm9pZCBt
b3VzZURpZE1vdmVPdmVyRWxlbWVudEltcGwoSW5zdHJ1bWVudGluZ0FnZW50cyosIGNvbnN0IEhp
dFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKTsKICAgICBzdGF0aWMgYm9vbCBo
YW5kbGVNb3VzZVByZXNzSW1wbChJbnN0cnVtZW50aW5nQWdlbnRzKik7CkBAIC01NjMsMzAgKzU2
MSwyMSBAQCBpbmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxQb3BTaGFk
b3dSb290KEVsZW1lbnQqIGhvc3QsIFNoYWRvd1JvbwogI2VuZGlmCiB9CiAKLWlubGluZSB2b2lk
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ3JlYXRlTmFtZWRGbG93KERvY3VtZW50KiBk
b2N1bWVudCwgV2ViS2l0TmFtZWRGbG93KiBuYW1lZEZsb3cpCitpbmxpbmUgdm9pZCBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZU5hbWVkRmxvdyhEb2N1bWVudCogZG9jdW1lbnQs
IGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQogICAg
IEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwogICAgIGlmIChJbnN0cnVtZW50
aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRv
Y3VtZW50KGRvY3VtZW50KSkKLSAgICAgICAgZGlkQ3JlYXRlTmFtZWRGbG93SW1wbChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBkb2N1bWVudCwgbmFtZWRGbG93KTsKKyAgICAgICAgZGlkQ3JlYXRlTmFt
ZWRGbG93SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBkb2N1bWVudCwgbmFtZSk7CiAjZW5kaWYK
IH0KIAotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsUmVtb3ZlTmFt
ZWRGbG93KERvY3VtZW50KiBkb2N1bWVudCwgV2ViS2l0TmFtZWRGbG93KiBuYW1lZEZsb3cpCitp
bmxpbmUgdm9pZCBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlbW92ZU5hbWVkRmxvdyhE
b2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEF0b21pY1N0cmluZyYgbmFtZSkKIHsKICNpZiBFTkFC
TEUoSU5TUEVDVE9SKQogICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZST05URU5EUyh2b2lkKCkpOwog
ICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50aW5nQWdlbnRzID0gaW5zdHJ1
bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkKLSAgICAgICAgd2lsbFJlbW92ZU5h
bWVkRmxvd0ltcGwoaW5zdHJ1bWVudGluZ0FnZW50cywgZG9jdW1lbnQsIG5hbWVkRmxvdyk7Ci0j
ZW5kaWYKLX0KLQotaW5saW5lIHZvaWQgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRVcGRh
dGVSZWdpb25MYXlvdXQoRG9jdW1lbnQqIGRvY3VtZW50LCBXZWJLaXROYW1lZEZsb3cqIG5hbWVk
RmxvdykKLXsKLSNpZiBFTkFCTEUoSU5TUEVDVE9SKQotICAgIEZBU1RfUkVUVVJOX0lGX05PX0ZS
T05URU5EUyh2b2lkKCkpOwotICAgIGlmIChJbnN0cnVtZW50aW5nQWdlbnRzKiBpbnN0cnVtZW50
aW5nQWdlbnRzID0gaW5zdHJ1bWVudGluZ0FnZW50c0ZvckRvY3VtZW50KGRvY3VtZW50KSkKLSAg
ICAgICAgZGlkVXBkYXRlUmVnaW9uTGF5b3V0SW1wbChpbnN0cnVtZW50aW5nQWdlbnRzLCBkb2N1
bWVudCwgbmFtZWRGbG93KTsKKyAgICAgICAgZGlkUmVtb3ZlTmFtZWRGbG93SW1wbChpbnN0cnVt
ZW50aW5nQWdlbnRzLCBkb2N1bWVudCwgbmFtZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9DU1NTdHlsZU1vZGVsLmpzCmluZGV4IGEz
YTRiMzhmOWU1ZDMzZjNjN2I5MGMwMDcxNzQxN2UzZTE3MzMxNGUuLjgyMDY5NWJmOGQ2YzM4NTMw
ZTkxMDUwNjE1Mjg1ZmE4NDM4ZjgzZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvQ1NTU3R5bGVNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL0NTU1N0eWxlTW9kZWwuanMKQEAgLTM5LDggKzM5LDYgQEAgV2ViSW5z
cGVjdG9yLkNTU1N0eWxlTW9kZWwgPSBmdW5jdGlvbigpCiAgICAgV2ViSW5zcGVjdG9yLmRvbUFn
ZW50LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRPTUFnZW50LkV2ZW50cy5VbmRvUmVk
b1JlcXVlc3RlZCwgdGhpcy5fdW5kb1JlZG9SZXF1ZXN0ZWQsIHRoaXMpOwogICAgIFdlYkluc3Bl
Y3Rvci5kb21BZ2VudC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5ET01BZ2VudC5FdmVu
dHMuVW5kb1JlZG9Db21wbGV0ZWQsIHRoaXMuX3VuZG9SZWRvQ29tcGxldGVkLCB0aGlzKTsKICAg
ICB0aGlzLl9yZXNvdXJjZUJpbmRpbmcgPSBuZXcgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWxS
ZXNvdXJjZUJpbmRpbmcodGhpcyk7Ci0gICAgdGhpcy5fbmFtZWRGbG93Q29sbGVjdGlvbnMgPSB7
fTsKLSAgICBXZWJJbnNwZWN0b3IuZG9tQWdlbnQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRE9NQWdlbnQuRXZlbnRzLkRvY3VtZW50VXBkYXRlZCwgdGhpcy5fcmVzZXROYW1lZEZsb3dD
b2xsZWN0aW9ucywgdGhpcyk7CiAgICAgSW5zcGVjdG9yQmFja2VuZC5yZWdpc3RlckNTU0Rpc3Bh
dGNoZXIobmV3IFdlYkluc3BlY3Rvci5DU1NEaXNwYXRjaGVyKHRoaXMpKTsKICAgICBDU1NBZ2Vu
dC5lbmFibGUoKTsKIH0KQEAgLTYwLDggKzU4LDcgQEAgV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9k
ZWwuRXZlbnRzID0gewogICAgIFN0eWxlU2hlZXRDaGFuZ2VkOiAiU3R5bGVTaGVldENoYW5nZWQi
LAogICAgIE1lZGlhUXVlcnlSZXN1bHRDaGFuZ2VkOiAiTWVkaWFRdWVyeVJlc3VsdENoYW5nZWQi
LAogICAgIE5hbWVkRmxvd0NyZWF0ZWQ6ICJOYW1lZEZsb3dDcmVhdGVkIiwKLSAgICBOYW1lZEZs
b3dSZW1vdmVkOiAiTmFtZWRGbG93UmVtb3ZlZCIsCi0gICAgUmVnaW9uTGF5b3V0VXBkYXRlZDog
IlJlZ2lvbkxheW91dFVwZGF0ZWQiCisgICAgTmFtZWRGbG93UmVtb3ZlZDogIk5hbWVkRmxvd1Jl
bW92ZWQiCiB9CiAKIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKQEAg
LTE3NSwxNiArMTcyLDEwIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9
IHsKIAogICAgIC8qKgogICAgICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBub2RlSWQKLSAg
ICAgKiBAcGFyYW0ge2Z1bmN0aW9uKE9iamVjdCl9IHVzZXJDYWxsYmFjaworICAgICAqIEBwYXJh
bSB7ZnVuY3Rpb24oP0FycmF5LjxXZWJJbnNwZWN0b3IuTmFtZWRGbG93Pil9IHVzZXJDYWxsYmFj
awogICAgICAqLwotICAgIGdldE5hbWVkRmxvd0NvbGxlY3Rpb25Bc3luYzogZnVuY3Rpb24oZG9j
dW1lbnROb2RlSWQsIHVzZXJDYWxsYmFjaykKKyAgICBnZXROYW1lZEZsb3dDb2xsZWN0aW9uQXN5
bmM6IGZ1bmN0aW9uKG5vZGVJZCwgdXNlckNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgdmFyIG5h
bWVkRmxvd0NvbGxlY3Rpb24gPSB0aGlzLl9uYW1lZEZsb3dDb2xsZWN0aW9uc1tkb2N1bWVudE5v
ZGVJZF07Ci0gICAgICAgIGlmIChuYW1lZEZsb3dDb2xsZWN0aW9uKSB7Ci0gICAgICAgICAgICB1
c2VyQ2FsbGJhY2sobmFtZWRGbG93Q29sbGVjdGlvbi5uYW1lZEZsb3dNYXApOwotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9Ci0KICAgICAgICAgLyoqCiAgICAgICAgICAqIEBwYXJhbSB7
ZnVuY3Rpb24oP0FycmF5LjxXZWJJbnNwZWN0b3IuTmFtZWRGbG93Pil9IHVzZXJDYWxsYmFjawog
ICAgICAgICAgKiBAcGFyYW0gez9Qcm90b2NvbC5FcnJvcn0gZXJyb3IKQEAgLTE5NCwxNCArMTg1
LDExIEBAIFdlYkluc3BlY3Rvci5DU1NTdHlsZU1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAg
ewogICAgICAgICAgICAgaWYgKGVycm9yIHx8ICFuYW1lZEZsb3dQYXlsb2FkKQogICAgICAgICAg
ICAgICAgIHVzZXJDYWxsYmFjayhudWxsKTsKLSAgICAgICAgICAgIGVsc2UgewotICAgICAgICAg
ICAgICAgIHZhciBuYW1lZEZsb3dDb2xsZWN0aW9uID0gbmV3IFdlYkluc3BlY3Rvci5OYW1lZEZs
b3dDb2xsZWN0aW9uKG5hbWVkRmxvd1BheWxvYWQpOwotICAgICAgICAgICAgICAgIHRoaXMuX25h
bWVkRmxvd0NvbGxlY3Rpb25zW2RvY3VtZW50Tm9kZUlkXSA9IG5hbWVkRmxvd0NvbGxlY3Rpb247
Ci0gICAgICAgICAgICAgICAgdXNlckNhbGxiYWNrKG5hbWVkRmxvd0NvbGxlY3Rpb24ubmFtZWRG
bG93TWFwKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAg
ICB1c2VyQ2FsbGJhY2soV2ViSW5zcGVjdG9yLk5hbWVkRmxvdy5wYXJzZVBheWxvYWRBcnJheShu
YW1lZEZsb3dQYXlsb2FkKSk7CiAgICAgICAgIH0KIAotICAgICAgICBDU1NBZ2VudC5nZXROYW1l
ZEZsb3dDb2xsZWN0aW9uKGRvY3VtZW50Tm9kZUlkLCBjYWxsYmFjay5iaW5kKHRoaXMsIHVzZXJD
YWxsYmFjaykpOworICAgICAgICBDU1NBZ2VudC5nZXROYW1lZEZsb3dDb2xsZWN0aW9uKG5vZGVJ
ZCwgY2FsbGJhY2suYmluZCh0aGlzLCB1c2VyQ2FsbGJhY2spKTsKICAgICB9LAogCiAgICAgLyoq
CkBAIC0yMDksMjcgKzE5NywyMiBAQCBXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5
cGUgPSB7CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IGZsb3dOYW1lCiAgICAgICogQHBhcmFtIHtm
dW5jdGlvbig/V2ViSW5zcGVjdG9yLk5hbWVkRmxvdyl9IHVzZXJDYWxsYmFjawogICAgICAqLwot
ICAgIGdldEZsb3dCeU5hbWVBc3luYzogZnVuY3Rpb24oZG9jdW1lbnROb2RlSWQsIGZsb3dOYW1l
LCB1c2VyQ2FsbGJhY2spCisgICAgZ2V0Rmxvd0J5TmFtZUFzeW5jOiBmdW5jdGlvbihub2RlSWQs
IGZsb3dOYW1lLCB1c2VyQ2FsbGJhY2spCiAgICAgewotICAgICAgICB2YXIgbmFtZWRGbG93Q29s
bGVjdGlvbiA9IHRoaXMuX25hbWVkRmxvd0NvbGxlY3Rpb25zW2RvY3VtZW50Tm9kZUlkXTsKLSAg
ICAgICAgaWYgKG5hbWVkRmxvd0NvbGxlY3Rpb24pIHsKLSAgICAgICAgICAgIHVzZXJDYWxsYmFj
ayhuYW1lZEZsb3dDb2xsZWN0aW9uLmZsb3dCeU5hbWUoZmxvd05hbWUpKTsKLSAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfQotCiAgICAgICAgIC8qKgogICAgICAgICAgKiBAcGFyYW0ge2Z1
bmN0aW9uKD9XZWJJbnNwZWN0b3IuTmFtZWRGbG93KX0gdXNlckNhbGxiYWNrCi0gICAgICAgICAq
IEBwYXJhbSB7P0NTU0FnZW50Lk5hbWVkRmxvdz19IG5hbWVkRmxvd01hcAorICAgICAgICAgKiBA
cGFyYW0gez9Qcm90b2NvbC5FcnJvcn0gZXJyb3IKKyAgICAgICAgICogQHBhcmFtIHs/Q1NTQWdl
bnQuTmFtZWRGbG93PX0gbmFtZWRGbG93UGF5bG9hZAogICAgICAgICAgKi8KLSAgICAgICAgZnVu
Y3Rpb24gY2FsbGJhY2sodXNlckNhbGxiYWNrLCBuYW1lZEZsb3dNYXApCisgICAgICAgIGZ1bmN0
aW9uIGNhbGxiYWNrKHVzZXJDYWxsYmFjaywgZXJyb3IsIG5hbWVkRmxvd1BheWxvYWQpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIGlmIChlcnJvciB8fCAhbmFtZWRGbG93TWFwKQorICAgICAgICAg
ICAgaWYgKGVycm9yIHx8ICFuYW1lZEZsb3dQYXlsb2FkKQogICAgICAgICAgICAgICAgIHVzZXJD
YWxsYmFjayhudWxsKTsKICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICB1c2VyQ2Fs
bGJhY2sodGhpcy5fbmFtZWRGbG93Q29sbGVjdGlvbnNbZG9jdW1lbnROb2RlSWRdLmZsb3dCeU5h
bWUoZmxvd05hbWUpKTsKKyAgICAgICAgICAgICAgICB1c2VyQ2FsbGJhY2soV2ViSW5zcGVjdG9y
Lk5hbWVkRmxvdy5wYXJzZVBheWxvYWQobmFtZWRGbG93UGF5bG9hZCkpOwogICAgICAgICB9CiAK
LSAgICAgICAgdGhpcy5nZXROYW1lZEZsb3dDb2xsZWN0aW9uQXN5bmMoZG9jdW1lbnROb2RlSWQs
IGNhbGxiYWNrLmJpbmQodGhpcywgdXNlckNhbGxiYWNrKSk7CisgICAgICAgIENTU0FnZW50Lmdl
dEZsb3dCeU5hbWUobm9kZUlkLCBmbG93TmFtZSwgY2FsbGJhY2suYmluZCh0aGlzLCB1c2VyQ2Fs
bGJhY2spKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0zNjcsNDggKzM1MCw1MSBAQCBXZWJJbnNw
ZWN0b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgotICAg
ICAqIEBwYXJhbSB7Q1NTQWdlbnQuTmFtZWRGbG93fSBuYW1lZEZsb3dQYXlsb2FkCisgICAgICog
QHBhcmFtIHtET01BZ2VudC5Ob2RlSWR9IGRvY3VtZW50Tm9kZUlkCisgICAgICogQHBhcmFtIHtz
dHJpbmd9IG5hbWUKICAgICAgKi8KLSAgICBfbmFtZWRGbG93Q3JlYXRlZDogZnVuY3Rpb24obmFt
ZWRGbG93UGF5bG9hZCkKKyAgICBfbmFtZWRGbG93Q3JlYXRlZDogZnVuY3Rpb24oZG9jdW1lbnRO
b2RlSWQsIG5hbWUpCiAgICAgewotICAgICAgICB2YXIgbmFtZWRGbG93ID0gV2ViSW5zcGVjdG9y
Lk5hbWVkRmxvdy5wYXJzZVBheWxvYWQobmFtZWRGbG93UGF5bG9hZCk7Ci0gICAgICAgIHZhciBu
YW1lZEZsb3dDb2xsZWN0aW9uID0gdGhpcy5fbmFtZWRGbG93Q29sbGVjdGlvbnNbbmFtZWRGbG93
LmRvY3VtZW50Tm9kZUlkXTsKLQotICAgICAgICBpZiAoIW5hbWVkRmxvd0NvbGxlY3Rpb24pCisg
ICAgICAgIGlmICghdGhpcy5oYXNFdmVudExpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ1NTU3R5bGVN
b2RlbC5FdmVudHMuTmFtZWRGbG93Q3JlYXRlZCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAg
ICAgICAgbmFtZWRGbG93Q29sbGVjdGlvbi5hcHBlbmROYW1lZEZsb3cobmFtZWRGbG93KTsKLSAg
ICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNTU1N0eWxl
TW9kZWwuRXZlbnRzLk5hbWVkRmxvd0NyZWF0ZWQsIG5hbWVkRmxvdyk7CisgICAgICAgIC8qKgor
ICAgICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRPTURvY3VtZW50fSByb290CisgICAgICAg
ICovCisgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKHJvb3QpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIC8vIEZJWE1FOiBBdCB0aGUgbW9tZW50IHdlIG9ubHkgd2FudCBzdXBwb3J0IGZvciBOYW1l
ZEZsb3dzIGluIHRoZSBtYWluIGRvY3VtZW50CisgICAgICAgICAgICBpZiAoZG9jdW1lbnROb2Rl
SWQgIT09IHJvb3QuaWQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5F
dmVudHMuTmFtZWRGbG93Q3JlYXRlZCwgeyBkb2N1bWVudE5vZGVJZDogZG9jdW1lbnROb2RlSWQs
IG5hbWU6IG5hbWUgfSk7CisgICAgICAgIH0KKworICAgICAgICBXZWJJbnNwZWN0b3IuZG9tQWdl
bnQucmVxdWVzdERvY3VtZW50KGNhbGxiYWNrLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICAv
KioKICAgICAgKiBAcGFyYW0ge0RPTUFnZW50Lk5vZGVJZH0gZG9jdW1lbnROb2RlSWQKLSAgICAg
KiBAcGFyYW0ge3N0cmluZ30gZmxvd05hbWUKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gbmFtZQog
ICAgICAqLwotICAgIF9uYW1lZEZsb3dSZW1vdmVkOiBmdW5jdGlvbihkb2N1bWVudE5vZGVJZCwg
Zmxvd05hbWUpCisgICAgX25hbWVkRmxvd1JlbW92ZWQ6IGZ1bmN0aW9uKGRvY3VtZW50Tm9kZUlk
LCBuYW1lKQogICAgIHsKLSAgICAgICAgdmFyIG5hbWVkRmxvd0NvbGxlY3Rpb24gPSB0aGlzLl9u
YW1lZEZsb3dDb2xsZWN0aW9uc1tkb2N1bWVudE5vZGVJZF07Ci0KLSAgICAgICAgaWYgKCFuYW1l
ZEZsb3dDb2xsZWN0aW9uKQorICAgICAgICBpZiAoIXRoaXMuaGFzRXZlbnRMaXN0ZW5lcnMoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLk5hbWVkRmxvd1JlbW92ZWQpKQogICAgICAg
ICAgICAgcmV0dXJuOwogCi0gICAgICAgIG5hbWVkRmxvd0NvbGxlY3Rpb24ucmVtb3ZlTmFtZWRG
bG93KGZsb3dOYW1lKTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2Vi
SW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLk5hbWVkRmxvd1JlbW92ZWQsIHsgZG9jdW1l
bnROb2RlSWQ6IGRvY3VtZW50Tm9kZUlkLCBmbG93TmFtZTogZmxvd05hbWUgfSk7Ci0gICAgfSwK
LQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7Q1NTQWdlbnQuTmFtZWRGbG93fSBuYW1lZEZsb3dQ
YXlsb2FkCi0gICAgICovCi0gICAgX3JlZ2lvbkxheW91dFVwZGF0ZWQ6IGZ1bmN0aW9uKG5hbWVk
Rmxvd1BheWxvYWQpCi0gICAgewotICAgICAgICB2YXIgbmFtZWRGbG93ID0gV2ViSW5zcGVjdG9y
Lk5hbWVkRmxvdy5wYXJzZVBheWxvYWQobmFtZWRGbG93UGF5bG9hZCk7Ci0gICAgICAgIHZhciBu
YW1lZEZsb3dDb2xsZWN0aW9uID0gdGhpcy5fbmFtZWRGbG93Q29sbGVjdGlvbnNbbmFtZWRGbG93
LmRvY3VtZW50Tm9kZUlkXTsKKyAgICAgICAgLyoqCisgICAgICAgICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuRE9NRG9jdW1lbnR9IHJvb3QKKyAgICAgICAgKi8KKyAgICAgICAgZnVuY3Rpb24gY2Fs
bGJhY2socm9vdCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gRklYTUU6IEF0IHRoZSBtb21l
bnQgd2Ugb25seSB3YW50IHN1cHBvcnQgZm9yIE5hbWVkRmxvd3MgaW4gdGhlIG1haW4gZG9jdW1l
bnQKKyAgICAgICAgICAgIGlmIChkb2N1bWVudE5vZGVJZCAhPT0gcm9vdC5pZCkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CiAKLSAgICAgICAgaWYgKCFuYW1lZEZsb3dDb2xsZWN0aW9uKQotICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5l
cnMoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRzLk5hbWVkRmxvd1JlbW92ZWQsIHsg
ZG9jdW1lbnROb2RlSWQ6IGRvY3VtZW50Tm9kZUlkLCBuYW1lOiBuYW1lIH0pOworICAgICAgICB9
CiAKLSAgICAgICAgbmFtZWRGbG93Q29sbGVjdGlvbi5hcHBlbmROYW1lZEZsb3cobmFtZWRGbG93
KTsKLSAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkNT
U1N0eWxlTW9kZWwuRXZlbnRzLlJlZ2lvbkxheW91dFVwZGF0ZWQsIG5hbWVkRmxvdyk7CisgICAg
ICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1lbnQoY2FsbGJhY2suYmluZCh0
aGlzKSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtNDc3LDExICs0NjMsNiBAQCBXZWJJbnNwZWN0
b3IuQ1NTU3R5bGVNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3NvdXJjZU1hcHBp
bmdzID0ge307CiAgICAgfSwKIAotICAgIF9yZXNldE5hbWVkRmxvd0NvbGxlY3Rpb25zOiBmdW5j
dGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl9uYW1lZEZsb3dDb2xsZWN0aW9ucyA9IHt9Owot
ICAgIH0sCi0KICAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5DU1NMb2NhdGlv
bn0gcmF3TG9jYXRpb24KICAgICAgKiBAcmV0dXJuIHs/V2ViSW5zcGVjdG9yLlVJTG9jYXRpb259
CkBAIC0xMzQ1LDI4ICsxMzI2LDIxIEBAIFdlYkluc3BlY3Rvci5DU1NEaXNwYXRjaGVyLnByb3Rv
dHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtDU1NBZ2VudC5OYW1l
ZEZsb3d9IG5hbWVkRmxvd1BheWxvYWQKLSAgICAgKi8KLSAgICBuYW1lZEZsb3dDcmVhdGVkOiBm
dW5jdGlvbihuYW1lZEZsb3dQYXlsb2FkKQotICAgIHsKLSAgICAgICAgdGhpcy5fY3NzTW9kZWwu
X25hbWVkRmxvd0NyZWF0ZWQobmFtZWRGbG93UGF5bG9hZCk7Ci0gICAgfSwKLQotICAgIC8qKgog
ICAgICAqIEBwYXJhbSB7RE9NQWdlbnQuTm9kZUlkfSBkb2N1bWVudE5vZGVJZAotICAgICAqIEBw
YXJhbSB7c3RyaW5nfSBmbG93TmFtZQorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBuYW1lCiAgICAg
ICovCi0gICAgbmFtZWRGbG93UmVtb3ZlZDogZnVuY3Rpb24oZG9jdW1lbnROb2RlSWQsIGZsb3dO
YW1lKQorICAgIG5hbWVkRmxvd0NyZWF0ZWQ6IGZ1bmN0aW9uKGRvY3VtZW50Tm9kZUlkLCBuYW1l
KQogICAgIHsKLSAgICAgICAgdGhpcy5fY3NzTW9kZWwuX25hbWVkRmxvd1JlbW92ZWQoZG9jdW1l
bnROb2RlSWQsIGZsb3dOYW1lKTsKKyAgICAgICAgdGhpcy5fY3NzTW9kZWwuX25hbWVkRmxvd0Ny
ZWF0ZWQoZG9jdW1lbnROb2RlSWQsIG5hbWUpOwogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBA
cGFyYW0ge0NTU0FnZW50Lk5hbWVkRmxvd30gbmFtZWRGbG93UGF5bG9hZAorICAgICAqIEBwYXJh
bSB7RE9NQWdlbnQuTm9kZUlkfSBkb2N1bWVudE5vZGVJZAorICAgICAqIEBwYXJhbSB7c3RyaW5n
fSBuYW1lCiAgICAgICovCi0gICAgcmVnaW9uTGF5b3V0VXBkYXRlZDogZnVuY3Rpb24obmFtZWRG
bG93UGF5bG9hZCkKKyAgICBuYW1lZEZsb3dSZW1vdmVkOiBmdW5jdGlvbihkb2N1bWVudE5vZGVJ
ZCwgbmFtZSkKICAgICB7Ci0gICAgICAgIHRoaXMuX2Nzc01vZGVsLl9yZWdpb25MYXlvdXRVcGRh
dGVkKG5hbWVkRmxvd1BheWxvYWQpOworICAgICAgICB0aGlzLl9jc3NNb2RlbC5fbmFtZWRGbG93
UmVtb3ZlZChkb2N1bWVudE5vZGVJZCwgbmFtZSk7CiAgICAgfQogfQogCkBAIC0xMzc2LDcgKzEz
NTAsNyBAQCBXZWJJbnNwZWN0b3IuQ1NTRGlzcGF0Y2hlci5wcm90b3R5cGUgPSB7CiAgKi8KIFdl
Ykluc3BlY3Rvci5OYW1lZEZsb3cgPSBmdW5jdGlvbihwYXlsb2FkKQogewotICAgIHRoaXMuZG9j
dW1lbnROb2RlSWQgPSBwYXlsb2FkLmRvY3VtZW50Tm9kZUlkOworICAgIHRoaXMubm9kZUlkID0g
cGF5bG9hZC5kb2N1bWVudE5vZGVJZDsKICAgICB0aGlzLm5hbWUgPSBwYXlsb2FkLm5hbWU7CiAg
ICAgdGhpcy5vdmVyc2V0ID0gcGF5bG9hZC5vdmVyc2V0OwogICAgIHRoaXMuY29udGVudCA9IHBh
eWxvYWQuY29udGVudDsKQEAgLTEzOTMsNDkgKzEzNjcsMjAgQEAgV2ViSW5zcGVjdG9yLk5hbWVk
Rmxvdy5wYXJzZVBheWxvYWQgPSBmdW5jdGlvbihwYXlsb2FkKQogfQogCiAvKioKLSAqIEBjb25z
dHJ1Y3RvcgotICogQHBhcmFtIHtBcnJheS48Q1NTQWdlbnQuTmFtZWRGbG93Pn0gcGF5bG9hZAor
ICogQHBhcmFtIHs/QXJyYXkuPENTU0FnZW50Lk5hbWVkRmxvdz49fSBuYW1lZEZsb3dQYXlsb2Fk
CisgKiBAcmV0dXJuIHs/QXJyYXkuPFdlYkluc3BlY3Rvci5OYW1lZEZsb3c+fQogICovCi1XZWJJ
bnNwZWN0b3IuTmFtZWRGbG93Q29sbGVjdGlvbiA9IGZ1bmN0aW9uKHBheWxvYWQpCitXZWJJbnNw
ZWN0b3IuTmFtZWRGbG93LnBhcnNlUGF5bG9hZEFycmF5ID0gZnVuY3Rpb24obmFtZWRGbG93UGF5
bG9hZCkKIHsKLSAgICB0aGlzLm5hbWVkRmxvd01hcCA9IHt9OworICAgIGlmICghbmFtZWRGbG93
UGF5bG9hZCkKKyAgICAgICAgcmV0dXJuIG51bGw7CiAKLSAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHBheWxvYWQubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgdmFyIG5hbWVkRmxvdyA9IFdlYkluc3Bl
Y3Rvci5OYW1lZEZsb3cucGFyc2VQYXlsb2FkKHBheWxvYWRbaV0pOwotICAgICAgICB0aGlzLm5h
bWVkRmxvd01hcFtuYW1lZEZsb3cubmFtZV0gPSBuYW1lZEZsb3c7Ci0gICAgfQorICAgIHZhciBw
YXJzZWRBcnJheSA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbmFtZWRGbG93UGF5bG9h
ZC5sZW5ndGg7ICsraSkKKyAgICAgICAgcGFyc2VkQXJyYXlbaV0gPSBXZWJJbnNwZWN0b3IuTmFt
ZWRGbG93LnBhcnNlUGF5bG9hZChuYW1lZEZsb3dQYXlsb2FkW2ldKTsKKyAgICByZXR1cm4gcGFy
c2VkQXJyYXk7CiB9CiAKLVdlYkluc3BlY3Rvci5OYW1lZEZsb3dDb2xsZWN0aW9uLnByb3RvdHlw
ZSA9IHsKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5OYW1lZEZsb3d9IG5h
bWVkRmxvdwotICAgICAqLwotICAgIGFwcGVuZE5hbWVkRmxvdzogZnVuY3Rpb24obmFtZWRGbG93
KQotICAgIHsKLSAgICAgICAgdGhpcy5uYW1lZEZsb3dNYXBbbmFtZWRGbG93Lm5hbWVdID0gbmFt
ZWRGbG93OwotICAgIH0sCi0KLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gZmxvd05h
bWUKLSAgICAgKi8KLSAgICByZW1vdmVOYW1lZEZsb3c6IGZ1bmN0aW9uKGZsb3dOYW1lKQotICAg
IHsKLSAgICAgICAgZGVsZXRlIHRoaXMubmFtZWRGbG93TWFwW2Zsb3dOYW1lXTsKLSAgICB9LAot
Ci0gICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IGZsb3dOYW1lCi0gICAgICogQHJldHVy
biB7V2ViSW5zcGVjdG9yLk5hbWVkRmxvd30KLSAgICAgKi8KLSAgICBmbG93QnlOYW1lOiBmdW5j
dGlvbihmbG93TmFtZSkKLSAgICB7Ci0gICAgICAgIHZhciBuYW1lZEZsb3cgPSB0aGlzLm5hbWVk
Rmxvd01hcFtmbG93TmFtZV07Ci0KLSAgICAgICAgaWYgKCFuYW1lZEZsb3cpCi0gICAgICAgICAg
ICByZXR1cm4gbnVsbDsKLSAgICAgICAgcmV0dXJuIG5hbWVkRmxvdzsKLSAgICB9Ci19CiAvKioK
ICAqIEB0eXBlIHtXZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbH0KICAqLwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck5hbWVkRmxvd1RocmVhZC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcAppbmRleCA3NDYx
ZjQyYzIyYWIwYWUyMjk5MzFhNDY0YWRkNDY1NWJjZWEyNzVkLi40ZTgzY2NhOWU2MjQ5MjBlZDdj
Yjg5NDdjNjQyNGE1YjJlOWJkZDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTmFtZWRGbG93VGhyZWFkLmNwcApAQCAtMjcsNyArMjcsNiBAQAogI2luY2x1ZGUg
IlJlbmRlck5hbWVkRmxvd1RocmVhZC5oIgogCiAjaW5jbHVkZSAiRmxvd1RocmVhZENvbnRyb2xs
ZXIuaCIKLSNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJS
ZW5kZXJSZWdpb24uaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiV2ViS2l0
TmFtZWRGbG93LmgiCkBAIC0zNTgsNyArMzU3LDYgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBSZW5k
ZXJOYW1lZEZsb3dUaHJlYWQ6OmZsb3dUaHJlYWROYW1lKCkgY29uc3QKIHZvaWQgUmVuZGVyTmFt
ZWRGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCkKIHsKICAgICBS
ZW5kZXJGbG93VGhyZWFkOjpkaXNwYXRjaFJlZ2lvbkxheW91dFVwZGF0ZUV2ZW50KCk7Ci0gICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRVcGRhdGVSZWdpb25MYXlvdXQoZG9jdW1lbnQo
KSwgbV9uYW1lZEZsb3cuZ2V0KCkpOwogCiAgICAgaWYgKCFtX3JlZ2lvbkxheW91dFVwZGF0ZUV2
ZW50VGltZXIuaXNBY3RpdmUoKSAmJiBtX25hbWVkRmxvdy0+aGFzRXZlbnRMaXN0ZW5lcnMoKSkK
ICAgICAgICAgbV9yZWdpb25MYXlvdXRVcGRhdGVFdmVudFRpbWVyLnN0YXJ0T25lU2hvdCgwKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNmNiYWM4NTIyMDA4ZjgzYmVhYjNiYzkwYzA5NThjZTAyZWY5NDYyLi41MTllZWIx
N2IwMDg5MjcyMmE5M2Y2ZWY0NGNkNGU5MjllZDRlOWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMDktMDYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgor
CisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjc3MDAuCisgICAgICAgIGh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEyNzcwMAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTU5NDEKKworICAgICAgICBCcmVha3MgaW5zcGVj
dG9yIGNsb3N1cmUgY29tcGlsYXRpb24sIHVzZXMgbm90IGRlZmluZWQKKyAgICAgICAgdmFyaWFi
bGVzLiAoUmVxdWVzdGVkIGJ5IHZzZXZpayBvbiAjd2Via2l0KS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGluc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMtY29tbWFuZHMu
aHRtbDoKKwogMjAxMi0wOS0wNSAgQW5kcmVpIFBvZW5hcnUgIDxwb2VuYXJ1QGFkb2JlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBQcm90b2NvbCBFeHRlbnNpb246IEFkZCAicmVnaW9u
TGF5b3V0VXBkYXRlIiBldmVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL3N0
eWxlcy9wcm90b2NvbC1jc3MtcmVnaW9ucy1jb21tYW5kcy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLWV4cGVj
dGVkLnR4dAppbmRleCA5ZmU5Y2YzNjcyMmY2M2JlZmJjNWNjY2RmMWIwMTU5YTFhOTlkZDkyLi43
YzgyYjQ4ZTc1MzExNDZiNmIyYTBhODgzZmFmZDk5NzczYjIyMGU4IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNz
cy1yZWdpb25zLWNvbW1hbmRzLWV4cGVjdGVkLnR4dApAQCAtNCwxMSArNCw5IEBAIGdldE5hbWVk
Rmxvd0NvbGxlY3Rpb24gQnVnIDkxNjA3CiBnZXRGbG93QnlOYW1lIEJ1ZyA5MTg1NQogbmFtZWRG
bG93Q3JlYXRlZCBCdWcgOTI3MzkKIG5hbWVkRmxvd1JlbW92ZWQgQnVnIDkyNzM5Ci1yZWdpb25M
YXlvdXRVcGRhdGVkIEJ1ZyA5MzQ0MwotVGhpcyB0ZXh0IGlzIGZyb20gQ1NTIE5hbWVkIEZsb3cg
ImZsb3czIi4KIAogCi1SdW5uaW5nOiB0ZXN0R2V0TmFtZWRGbG93Q29sbGVjdGlvbgorUnVubmlu
ZzogdGVzdEdldE5hbWVkRmxvd0NvbGxlY3Rpb24xCiA9PT0gQ1NTIE5hbWVkIEZsb3dzIGluIG1h
aW4gZG9jdW1lbnQgPT09CiAqIE5hbWVkIEZsb3cgImZsb3cxIgogQ29udGVudCBFbGVtZW50czog
MQpAQCAtMjAsMjYgKzE4LDIzIEBAIFJlZ2lvbnM6IDIKIENvbnRlbnQgRWxlbWVudHM6IDEKIFJl
Z2lvbnM6IDEKIAotUnVubmluZzogdGVzdEdldE5hbWVkRmxvd0NvbGxlY3Rpb25XaXRoSW52YWxp
ZERvY3VtZW50CitSdW5uaW5nOiB0ZXN0R2V0TmFtZWRGbG93Q29sbGVjdGlvbjIKID09PSBDU1Mg
TmFtZWQgRmxvd3MgaW4gI2Zha2UtZG9jdW1lbnQgPT09CiAjZmFrZS1kb2N1bWVudCBpcyBub3Qg
YSBkb2N1bWVudAogCi1SdW5uaW5nOiB0ZXN0R2V0Rmxvd0J5TmFtZQorUnVubmluZzogdGVzdEdl
dEZsb3dCeU5hbWUxCiA9PT0gTmFtZWQgRmxvdyAiZmxvdzIiIGZyb20gbWFpbiBkb2N1bWVudCA9
PT0KICogTmFtZWQgRmxvdyAiZmxvdzIiCiBDb250ZW50IEVsZW1lbnRzOiAxCiBSZWdpb25zOiAy
CiAKLVJ1bm5pbmc6IHRlc3RHZXRGbG93QnlOYW1lV2l0aEludmFsaWROYW1lCitSdW5uaW5nOiB0
ZXN0R2V0Rmxvd0J5TmFtZTIKID09PSBOYW1lIEZsb3cgImZsb3c0IiBmcm9tIG1haW4gZG9jdW1l
bnQgPT09CiBUaGVyZSBpcyBubyBOYW1lZCBGbG93ICJmbG93NCIgaW4gdGhlIG1haW4gZG9jdW1l
bnQKIAogUnVubmluZzogdGVzdE5hbWVkRmxvd0NyZWF0ZWQKIE5hbWVkRmxvd0NyZWF0ZWQ6ICJ0
bXBOYW1lZEZsb3ciCiAKLVJ1bm5pbmc6IHRlc3RSZWdpb25MYXlvdXRVcGRhdGVkCi1SZWdpb25M
YXlvdXRVcGRhdGVkOiAiZmxvdzMiCi0KIFJ1bm5pbmc6IHRlc3ROYW1lZEZsb3dSZW1vdmVkCiBO
YW1lZEZsb3dSZW1vdmVkOiAidG1wTmFtZWRGbG93IgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRzLmh0bWwgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3Ivc3R5bGVzL3Byb3RvY29sLWNzcy1yZWdpb25zLWNvbW1hbmRz
Lmh0bWwKaW5kZXggNDBlZjY5MWZhZGE0YjlhZTEyOTA0YTg1YWQ4MDYyNzRlZDMzYjY3NS4uZDgz
NGMyYTdmY2ZlZDkyZWFkODFmNGYwNmY0ZDg1Y2Q4MGY5MWI1NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL3N0eWxlcy9wcm90b2NvbC1jc3MtcmVnaW9ucy1jb21tYW5kcy5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9zdHlsZXMvcHJvdG9jb2wtY3NzLXJlZ2lvbnMt
Y29tbWFuZHMuaHRtbApAQCAtMjEsMzIgKzIxLDI0IEBAIGZ1bmN0aW9uIGNyZWF0ZUR5bmFtaWNF
bGVtZW50cygpCiBmdW5jdGlvbiBjcmVhdGVOYW1lZEZsb3coKQogewogICAgIHZhciBhcnRpY2xl
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYXJ0aWNsZSIpOwotICAgIHZhciBkaXYgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLQogICAgIGFydGljbGUuaWQgPSAidG1wQXJ0aWNs
ZSI7Ci0gICAgYXJ0aWNsZS5zdHlsZVsiLXdlYmtpdC1mbG93LWludG8iXSA9ICJ0bXBOYW1lZEZs
b3ciOwotICAgIGFydGljbGUudGV4dENvbnRlbnQgPSAiVGhpcyB0ZXh0IGlzIGZyb20gQ1NTIE5h
bWVkIEZsb3cgXCJ0bXBOYW1lZEZsb3dcIiI7Ci0KLSAgICBkaXYuaWQgPSAidG1wRGl2IjsKLSAg
ICBkaXYuc3R5bGVbIi13ZWJraXQtZmxvdy1mcm9tIl0gPSAidG1wTmFtZWRGbG93IjsKLSAgICBk
aXYuc3R5bGVbImhlaWdodCJdID0gIjVweCI7Ci0gICAgZGl2LnN0eWxlWyJ3aWR0aCJdID0gIjIw
cHgiOworICAgIGFydGljbGUuc3R5bGUud2Via2l0Rmxvd0ludG8gPSAidG1wTmFtZWRGbG93IjsK
IAogICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoYXJ0aWNsZSk7Ci0gICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChkaXYpOwogfQogCiBmdW5jdGlvbiByZW1vdmVOYW1lZEZsb3coKQog
ewotICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InRtcEFydGljbGUiKSk7Ci0gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidG1wRGl2IikpOworICAgIHZhciBhcnRpY2xlID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRtcEFydGljbGUiKTsKKworICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoYXJ0aWNsZSk7CiB9CiAKIGZ1bmN0aW9uIHRlc3QoKQogewogICAgIFdlYkluc3BlY3Rvci5z
aG93UGFuZWwoImVsZW1lbnRzIik7CiAgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUoWwot
ICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0TmFtZWRGbG93Q29sbGVjdGlvbihuZXh0KQorICAgICAg
ICBmdW5jdGlvbiB0ZXN0R2V0TmFtZWRGbG93Q29sbGVjdGlvbjEobmV4dCkKICAgICAgICAgewog
ICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnJlcXVlc3REb2N1bWVudChkb2N1bWVu
dENhbGxiYWNrKTsKIApAQCAtNTUsMjAgKzQ3LDE2IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAg
ICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXROYW1lZEZsb3dDb2xsZWN0aW9uQXN5
bmMoZG9jdW1lbnQuaWQsIG5hbWVkRmxvd0NhbGxiYWNrKTsKICAgICAgICAgICAgIH0KIAotICAg
ICAgICAgICAgZnVuY3Rpb24gbmFtZWRGbG93Q2FsbGJhY2sobmFtZWRGbG93TWFwKQorICAgICAg
ICAgICAgZnVuY3Rpb24gbmFtZWRGbG93Q2FsbGJhY2sobmFtZWRGbG93cykKICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiPT09IENTUyBOYW1l
ZCBGbG93cyBpbiBtYWluIGRvY3VtZW50ID09PSIpOwogCi0gICAgICAgICAgICAgICAgaWYgKCFu
YW1lZEZsb3dNYXApIHsKKyAgICAgICAgICAgICAgICBpZiAoIW5hbWVkRmxvd3MpIHsKICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlshXSBGYWlsZWQgdG8gZ2V0
IE5hbWVkIEZsb3dzIik7CiAgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxl
dGVUZXN0KCk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgICAgICBuYW1lZEZsb3dzID0gW107Ci0gICAgICAgICAgICAgICAgZm9y
ICh2YXIgZmxvd05hbWUgaW4gbmFtZWRGbG93TWFwKQotICAgICAgICAgICAgICAgICAgICBuYW1l
ZEZsb3dzLnB1c2gobmFtZWRGbG93TWFwW2Zsb3dOYW1lXSk7Ci0KICAgICAgICAgICAgICAgICBu
YW1lZEZsb3dzLnNvcnQoZnVuY3Rpb24gKG5mMSwgbmYyKSB7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiAoKG5mMS5uYW1lID09IG5mMi5uYW1lKSA/IDAgOiAoKG5mMS5uYW1lID4gbmYyLm5h
bWUpID8gMSA6IC0xKSk7CiAgICAgICAgICAgICAgICAgfSk7CkBAIC04MCw3ICs2OCw3IEBAIGZ1
bmN0aW9uIHRlc3QoKQogICAgICAgICAgICAgfQogICAgICAgICB9LAogCi0gICAgICAgIGZ1bmN0
aW9uIHRlc3RHZXROYW1lZEZsb3dDb2xsZWN0aW9uV2l0aEludmFsaWREb2N1bWVudChuZXh0KQor
ICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0TmFtZWRGbG93Q29sbGVjdGlvbjIobmV4dCkKICAgICAg
ICAgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRvbUFnZW50LnJlcXVlc3REb2N1bWVudChk
b2N1bWVudENhbGxiYWNrKTsKIApAQCAtOTQsMTEgKzgyLDExIEBAIGZ1bmN0aW9uIHRlc3QoKQog
ICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5jc3NNb2RlbC5nZXROYW1lZEZsb3dDb2xsZWN0
aW9uQXN5bmMobm9kZUlkLCBuYW1lZEZsb3dDYWxsYmFjayk7CiAgICAgICAgICAgICB9CiAKLSAg
ICAgICAgICAgIGZ1bmN0aW9uIG5hbWVkRmxvd0NhbGxiYWNrKG5hbWVkRmxvd01hcCkKKyAgICAg
ICAgICAgIGZ1bmN0aW9uIG5hbWVkRmxvd0NhbGxiYWNrKG5hbWVkRmxvd3MpCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIj09PSBDU1MgTmFt
ZWQgRmxvd3MgaW4gI2Zha2UtZG9jdW1lbnQgPT09Iik7CiAKLSAgICAgICAgICAgICAgICBpZiAo
bmFtZWRGbG93TWFwKSB7CisgICAgICAgICAgICAgICAgaWYgKG5hbWVkRmxvd3MpIHsKICAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlshXSBGYWlsZWQiKTsKICAg
ICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuOwpAQCAtMTA5LDcgKzk3LDcgQEAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0sCiAKLSAgICAgICAgZnVuY3Rpb24gdGVzdEdldEZsb3dC
eU5hbWUobmV4dCkKKyAgICAgICAgZnVuY3Rpb24gdGVzdEdldEZsb3dCeU5hbWUxKG5leHQpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kb21BZ2VudC5yZXF1ZXN0RG9jdW1l
bnQoZG9jdW1lbnRDYWxsYmFjayk7CiAKQEAgLTEzNCw3ICsxMjIsNyBAQCBmdW5jdGlvbiB0ZXN0
KCkKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKIAotICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0
Rmxvd0J5TmFtZVdpdGhJbnZhbGlkTmFtZShuZXh0KQorICAgICAgICBmdW5jdGlvbiB0ZXN0R2V0
Rmxvd0J5TmFtZTIobmV4dCkKICAgICAgICAgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRv
bUFnZW50LnJlcXVlc3REb2N1bWVudChkb2N1bWVudENhbGxiYWNrKTsKIApAQCAtMTY1LDI5ICsx
NTMsMTUgQEAgZnVuY3Rpb24gdGVzdCgpCiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNr
KGV2ZW50KQogICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGlmIChldmVudC5kYXRhLm5h
bWUgIT09ICJ0bXBOYW1lZEZsb3ciKQotICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0KICAg
ICAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuY3NzTW9kZWwucmVtb3ZlRXZlbnRMaXN0ZW5lcihX
ZWJJbnNwZWN0b3IuQ1NTU3R5bGVNb2RlbC5FdmVudHMuTmFtZWRGbG93Q3JlYXRlZCwgY2FsbGJh
Y2ssIHRoaXMpOwogCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5h
bWVkRmxvd0NyZWF0ZWQ6IFwidG1wTmFtZWRGbG93XCIiKTsKLSAgICAgICAgICAgICAgICBuZXh0
KCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0sCi0KLSAgICAgICAgZnVuY3Rpb24gdGVzdFJl
Z2lvbkxheW91dFVwZGF0ZWQobmV4dCkKLSAgICAgICAgewotICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmNzc01vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwu
RXZlbnRzLlJlZ2lvbkxheW91dFVwZGF0ZWQsIGNhbGxiYWNrLCB0aGlzKTsKLSAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuZXZhbHVhdGVJblBhZ2UoImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwi
cmVnaW9uM1wiKS5zdHlsZVtcIndpZHRoXCJdID0gXCIyMDBweFwiIik7Ci0KLSAgICAgICAgICAg
IGZ1bmN0aW9uIGNhbGxiYWNrKGV2ZW50KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IGlmIChldmVudC5kYXRhLm5hbWUgIT09ICJmbG93MyIpCisgICAgICAgICAgICAgICAgaWYgKGV2
ZW50LmRhdGEubmFtZSAhPT0gInRtcE5hbWVkRmxvdyIpIHsKKyAgICAgICAgICAgICAgICAgICAg
SW5zcGVjdG9yLmFkZFJlc3VsdCgiWyFdIEZhaWxlZCIpOworICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47
CisgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmNzc01v
ZGVsLnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkNTU1N0eWxlTW9kZWwuRXZlbnRz
LlJlZ2lvbkxheW91dFVwZGF0ZWQsIGNhbGxiYWNrLCB0aGlzKTsKLQotICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJSZWdpb25MYXlvdXRVcGRhdGVkOiBcImZsb3czXCIi
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiTmFtZWRGbG93Q3Jl
YXRlZDogXCJ0bXBOYW1lZEZsb3dcIiIpOwogICAgICAgICAgICAgICAgIG5leHQoKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfSwKQEAgLTE5OSwxMCArMTczLDEyIEBAIGZ1bmN0aW9uIHRlc3Qo
KQogCiAgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhldmVudCkKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YS5mbG93TmFtZSAhPT0gInRtcE5hbWVkRmxv
dyIpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLQogICAgICAgICAgICAgICAgIFdlYklu
c3BlY3Rvci5jc3NNb2RlbC5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5DU1NTdHls
ZU1vZGVsLkV2ZW50cy5OYW1lZEZsb3dSZW1vdmVkLCBjYWxsYmFjaywgdGhpcyk7CisgICAgICAg
ICAgICAgICAgaWYgKGV2ZW50LmRhdGEubmFtZSAhPT0gInRtcE5hbWVkRmxvdyIpIHsKKyAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yLmFkZFJlc3VsdCgiWyFdIEZhaWxlZCIpOworICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIk5hbWVkRmxvd1JlbW92ZWQ6IFwidG1wTmFtZWRGbG93XCIi
KTsKICAgICAgICAgICAgICAgICBuZXh0KCk7CkBAIC0yMjgsNyArMjA0LDYgQEAgVGVzdHMgdGhl
IGZvbGxvd2luZyBjb21tYW5kcyBhbmQgZXZlbnRzOgogICAgIDxsaT5nZXRGbG93QnlOYW1lIDxh
IGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTg1NSI+QnVn
IDkxODU1PC9hPjwvbGk+CiAgICAgPGxpPm5hbWVkRmxvd0NyZWF0ZWQgPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkyNzM5Ij5CdWcgOTI3Mzk8L2E+PC9s
aT4KICAgICA8bGk+bmFtZWRGbG93UmVtb3ZlZCA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTI3MzkiPkJ1ZyA5MjczOTwvYT48L2xpPgotICAgIDxsaT5y
ZWdpb25MYXlvdXRVcGRhdGVkIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD05MzQ0MyI+QnVnIDkzNDQzPC9hPjwvbGk+CiA8L3VsPgogPC9wPgogCkBAIC0y
NDEsMTAgKzIxNiw4IEBAIFRlc3RzIHRoZSBmb2xsb3dpbmcgY29tbWFuZHMgYW5kIGV2ZW50czoK
IDxkaXYgc3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MiI+PC9kaXY+CiA8ZGl2IHN0eWxl
PSItd2Via2l0LWZsb3ctZnJvbTogZmxvdzIiPjwvZGl2PgogCi08YXJ0aWNsZSBzdHlsZT0iLXdl
YmtpdC1mbG93LWludG86IGZsb3czIj4KLSAgICBUaGlzIHRleHQgaXMgZnJvbSBDU1MgTmFtZWQg
RmxvdyAiZmxvdzMiLgotPC9hcnRpY2xlPgotPGRpdiBpZD0icmVnaW9uMyIgc3R5bGU9Ii13ZWJr
aXQtZmxvdy1mcm9tOiBmbG93MzsgaGVpZ2h0OiAyMHB4OyB3aWR0aDogNXB4Ij48L2Rpdj4KKzxh
cnRpY2xlIHN0eWxlPSItd2Via2l0LWZsb3ctaW50bzogZmxvdzMiPjwvYXJ0aWNsZT4KKzxkaXYg
c3R5bGU9Ii13ZWJraXQtZmxvdy1mcm9tOiBmbG93MyI+PC9kaXY+CiAKIDxkaXYgaWQ9ImZha2Ut
ZG9jdW1lbnQiPjwvZGl2PgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>