<?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>27088</bug_id>
          
          <creation_ts>2009-07-08 12:39:40 -0700</creation_ts>
          <short_desc>WebKit constructors use wrong global object/prototype chain</short_desc>
          <delta_ts>2022-08-20 10:01:41 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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>
          <dependson>27157</dependson>
    
    <dependson>27242</dependson>
    
    <dependson>27243</dependson>
    
    <dependson>27276</dependson>
    
    <dependson>27278</dependson>
    
    <dependson>27279</dependson>
    
    <dependson>27478</dependson>
    
    <dependson>27521</dependson>
    
    <dependson>27547</dependson>
    
    <dependson>27588</dependson>
    
    <dependson>27634</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrew Wilson">atwilson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>ashvayka</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric</cc>
    
    <cc>kangax</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>130483</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-07-08 12:39:40 -0700</bug_when>
    <thetext>If a child frame accesses a constructor from the parent window (for example: parent.window.Image()) various incorrect behavior results:

1) Typically the wrong constructor is accessed (instead of grabbing the constructor and prototype chain from the specified window, the constructor/prototype is obtained from the lexicalGlobalObject).

2) In some cases, that constructor is then cached back in the parent window, leaving the parent window polluted with prototypes/constructors from the child.

#1 is a similar issue to https://bugs.webkit.org/show_bug.cgi?id=21138, although the reduction in that test doesn&apos;t work in Safari due to security constraints on data URLs.

I&apos;ll attach a reduction shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130591</commentid>
    <comment_count>1</comment_count>
      <attachid>32496</attachid>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-07-08 18:17:05 -0700</bug_when>
    <thetext>Created attachment 32496
reduction that tests all global constructors and exposes this bug

Since the constructor code is looking at the lexical scope, it can be tricky to reproduce this bug (for example, accessing parent.window.Image will show the bug, but calling a function in the parent frame that accesses parent.window.Image won&apos;t.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130939</commentid>
    <comment_count>2</comment_count>
      <attachid>32574</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-10 13:38:14 -0700</bug_when>
    <thetext>Created attachment 32574
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130941</commentid>
    <comment_count>3</comment_count>
      <attachid>32574</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-10 13:39:47 -0700</bug_when>
    <thetext>Comment on attachment 32574
patch

Sorry, wrong bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130986</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-10 15:37:48 -0700</bug_when>
    <thetext>Here a test case:

http://webblaze.org/abarth/tests/protoconfused/test1.html

It covers the first level of objects off the global object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131002</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-10 16:08:35 -0700</bug_when>
    <thetext>Here&apos;s another test.  This one crawls around the object graph for a bit looking for stuff:

http://webblaze.org/abarth/tests/protoconfused/test2.html

I don&apos;t certify that the results (PASS / FAIL) are 100% reliable, but its a start.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131451</commentid>
    <comment_count>6</comment_count>
      <attachid>32689</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-13 17:45:30 -0700</bug_when>
    <thetext>Created attachment 32689
Add a missing layout test result to improve the quality of life of the Mac buildbots.


* platform/mac/fast/text/international/khmer-selection-expected.txt: Added.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@45838 268f45cc-cd09-0410-ab3c-d52691b4dbfc
---
 2 files changed, 52 insertions(+), 0 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131455</commentid>
    <comment_count>7</comment_count>
      <attachid>32690</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-13 17:48:23 -0700</bug_when>
    <thetext>Created attachment 32690
First attempt, does not compile, not for review, will be broken into smaller pieces


---
 26 files changed, 105 insertions(+), 97 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133671</commentid>
    <comment_count>8</comment_count>
      <attachid>33233</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-21 17:44:57 -0700</bug_when>
    <thetext>Created attachment 33233
Now compiles, just needs testing


---
 14 files changed, 74 insertions(+), 50 deletions(-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>133720</commentid>
    <comment_count>9</comment_count>
      <attachid>33233</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-22 00:37:52 -0700</bug_when>
    <thetext>Comment on attachment 33233
Now compiles, just needs testing

This has a few possible functional changes which could be tested (and/or separated out from this patch):
window.history.constructor
window.location.constructor
document.location.__proto__
document.forms.name.__proto__
(new RGBColor).__proto__
instanceof JSSharedWorkerConstructor

all .constructor accesses could be fixed (although most won&apos;t be due to toJS not yet passing enough information)

all autogenerated constructors could have changed instanceof&apos;s</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>134335</commentid>
    <comment_count>10</comment_count>
      <attachid>33233</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-07-23 17:58:40 -0700</bug_when>
    <thetext>Comment on attachment 33233
Now compiles, just needs testing

Using this as a meta bug for now.  Patches will be on sub-bugs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1892658</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-08-20 10:01:41 -0700</bug_when>
    <thetext>This is very old and probably not applicable any more, but the attached test doesn&apos;t work now (even with fixed subresource paths), and I don&apos;t have sufficient bindings expertise to verify.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>32496</attachid>
            <date>2009-07-08 18:17:05 -0700</date>
            <delta_ts>2009-07-08 18:17:05 -0700</delta_ts>
            <desc>reduction that tests all global constructors and exposes this bug</desc>
            <filename>patch2.txt</filename>
            <type>text/plain</type>
            <size>6431</size>
            <attacher name="Andrew Wilson">atwilson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1jb250
ZXh0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtY29udGV4
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmE5YjEzMzIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2pzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtY29u
dGV4dC5odG1sCkBAIC0wLDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVU
Ri8vRFREIEhUTUwvL0VOIj4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQi
IGhyZWY9InJlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9ImRl
c2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1jb250ZXh0LmpzIj48L3NjcmlwdD4KKworPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMv
Z2xvYmFsLWNvbnN0cnVjdG9ycy1jb250ZXh0LWZyYW1lLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2pzL3Jlc291cmNlcy9nbG9iYWwtY29uc3RydWN0b3JzLWNvbnRleHQtZnJhbWUuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5mNGU2YjgzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1jb250
ZXh0LWZyYW1lLmh0bWwKQEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0v
L0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0iZ2xvYmFsLWNvbnN0cnVjdG9ycy1jb250ZXh0LWZyYW1lLmpzIj48L3Njcmlw
dD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvcmVz
b3VyY2VzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtY29udGV4dC1mcmFtZS5qcyBiL0xheW91dFRlc3Rz
L2Zhc3QvanMvcmVzb3VyY2VzL2dsb2JhbC1jb25zdHJ1Y3RvcnMtY29udGV4dC1mcmFtZS5qcwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wOTNmMWI3Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1j
b250ZXh0LWZyYW1lLmpzCkBAIC0wLDAgKzEsNDggQEAKKy8vIFJ1bm5pbmcgaW4gZnJhbWUgY29u
dGV4dCAtIG5vdyBsZXQncyB2ZXJpZnkgdGhhdCB0aGUgcHJvcGVydGllcyB3ZSBzZXQgb24gdGhl
IHBhZ2UgYXJlIHZpc2libGUgZnJvbSB0aGUgY2hpbGQgZnJhbWUuCit2YXIgbmFtZXMgPSBwYXJl
bnQud2luZG93LmNvbnN0cnVjdG9yTmFtZXM7Citmb3IgKHZhciB4IGluIG5hbWVzKSB7CisgICAg
dmFyIG5hbWUgPSBuYW1lc1t4XTsKKyAgICAvLyBDYW4ndCBjYWxsIHBhcmVudC53aW5kb3cuc2hv
dWxkQmUoKSwgYmVjYXVzZSB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0byBpbnZva2UgZnVuY3Rpb25z
IGZyb20gdGhpcyBsZXhpY2FsIHNjb3BlLgorICAgIGlmIChwYXJlbnQud2luZG93W25hbWVdID09
PSBwYXJlbnQud2luZG93LnNoYWRvd0NvbnN0cnVjdG9yc1tuYW1lXSkKKyAgICAgICAgcGFyZW50
LndpbmRvdy50ZXN0UGFzc2VkKCJwYXJlbnQud2luZG93LiIgKyBuYW1lICsgIiA9PT0gcGFyZW50
LndpbmRvdy5zaGFkb3dDb25zdHJ1Y3RvcnMuIiArIG5hbWUpOworICAgIGVsc2UKKyAgICAgICAg
cGFyZW50LndpbmRvdy50ZXN0RmFpbGVkKCJwYXJlbnQud2luZG93LiIgKyBuYW1lICsgIiAhPT0g
cGFyZW50LndpbmRvdy5zaGFkb3dDb25zdHJ1Y3RvcnMuIiArIG5hbWUpOworCisgICAgaWYgKHBh
cmVudC53aW5kb3dbbmFtZV0uY3VzdG9tUHJvcGVydHkgPT0gJ3BhcmVudCcpCisgICAgICAgIHBh
cmVudC53aW5kb3cudGVzdFBhc3NlZCgicGFyZW50LndpbmRvdy4iICsgbmFtZSArICIuY3VzdG9t
UHJvcGVydHkgY29ycmVjdGx5IHNldCIpOworICAgIGVsc2UKKyAgICAgICAgcGFyZW50LndpbmRv
dy50ZXN0RmFpbGVkKCJwYXJlbnQud2luZG93LiIgKyBuYW1lICsgIi5jdXN0b21Qcm9wZXJ0eSBz
aG91bGQgYmUgJ3BhcmVudCcsIHdhczogIiArIHBhcmVudC53aW5kb3dbbmFtZV0uY3VzdG9tUHJv
cGVydHkpOworCisgICAgaWYgKHBhcmVudC53aW5kb3dbbmFtZV0ucHJvdG90eXBlLmN1c3RvbVBy
b3RvdHlwZVByb3BlcnR5ID09ICdwcm90bycpCisgICAgICAgIHBhcmVudC53aW5kb3cudGVzdFBh
c3NlZCgicGFyZW50LndpbmRvdy4iICsgbmFtZSArICIucHJvdG90eXBlLmN1c3RvbVByb3RvdHlw
ZVByb3BlcnR5IGNvcnJlY3RseSBzZXQiKTsKKyAgICBlbHNlCisgICAgICAgIHBhcmVudC53aW5k
b3cudGVzdEZhaWxlZCgicGFyZW50LndpbmRvdy4iICsgbmFtZSArICIucHJvdG90eXBlLmN1c3Rv
bVByb3RvdHlwZVByb3BlcnR5IHNob3VsZCBiZSAncHJvdG8nLCB3YXM6ICIgKyBwYXJlbnQud2lu
ZG93W25hbWVdLnByb3RvdHlwZS5jdXN0b21Qcm90b3R5cGVQcm9wZXJ0eSk7CisKKyAgICB0cnkg
eworICAgICAgICAvLyBTb21lIGNvbnN0cnVjdG9ycyB0YWtlIHBhcmFtZXRlcnMuCisgICAgICAg
IGlmIChuYW1lID09ICJXZWJLaXRDU1NNYXRyaXgiKQorICAgICAgICAgICAgYXJncyA9ICdtYXRy
aXgoMS4wMDAwMDAsIDAuMDAwMDAwLCAwLjAwMDAwMCwgMS4wMDAwMDAsIDAuMDAwMDAwLCAwLjAw
MDAwMCknOworICAgICAgICBlbHNlIGlmIChuYW1lID09ICJXb3JrZXIiKQorICAgICAgICAgICAg
YXJncyA9ICdkb2VzX25vdF9leGlzdC5qcyc7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFy
Z3MgPSAnZm9vYmFyJzsKKyAgICAgICAgdmFyIG9iaiA9IG5ldyBwYXJlbnQud2luZG93W25hbWVd
KGFyZ3MpOworICAgICAgICBpZiAob2JqLl9fcHJvdG9fXyA9PT0gcGFyZW50LndpbmRvd1tuYW1l
XS5wcm90b3R5cGUpCisgICAgICAgICAgICBwYXJlbnQud2luZG93LnRlc3RQYXNzZWQoIihuZXcg
IiArIG5hbWUgKyAiKCkpLl9fcHJvdG9fXyA9PT0gcGFyZW50LndpbmRvdy4iICsgbmFtZSArICIu
cHJvdG90eXBlIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHBhcmVudC53aW5kb3cudGVz
dEZhaWxlZCgiKG5ldyAiICsgbmFtZSArICIoKSkuX19wcm90b19fICE9PSBwYXJlbnQud2luZG93
LiIgKyBuYW1lICsgIi5wcm90b3R5cGUiKTsKKworICAgICAgICBpZiAob2JqLmN1c3RvbVByb3Rv
dHlwZVByb3BlcnR5ID09ICdwcm90bycpCisgICAgICAgICAgICBwYXJlbnQud2luZG93LnRlc3RQ
YXNzZWQoIihuZXcgIiArIG5hbWUgKyAiKCkpLmN1c3RvbVByb3RvdHlwZVByb3BlcnR5ID09ICdw
cm90byciKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcGFyZW50LndpbmRvdy50ZXN0RmFp
bGVkKCIobmV3ICIgKyBuYW1lICsgIigpKS5jdXN0b21Qcm90b3R5cGVQcm9wZXJ0eSBzaG91bGQg
YmUgJ3Byb3RvJywgd2FzOiAiICsgb2JqLmN1c3RvbVByb3RvdHlwZVByb3BlcnR5KTsKKworICAg
IH0gY2F0Y2ggKGV4KSB7CisgICAgICAgIC8vIFNvbWUgY29uc3RydWN0b3JzIGNhbid0IGFjdHVh
bGx5IGJlIGludm9rZWQuCisgICAgICAgIHZhciByZSA9IG5ldyBSZWdFeHAoImlzIG5vdCBhIGNv
bnN0cnVjdG9yLiQiKTsKKyAgICAgICAgaWYgKCFyZS5leGVjKGV4LnRvU3RyaW5nKCkpKQorICAg
ICAgICAgICAgcGFyZW50LndpbmRvdy50ZXN0RmFpbGVkKCJFcnJvciBjcmVhdGluZyBvYmplY3Qg
b2YgdHlwZSAiICsgbmFtZSArICI6ICIgKyBleCk7CisgICAgfQorfQorCitwYXJlbnQud2luZG93
LmRvbmUoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2VzL2dsb2Jh
bC1jb25zdHJ1Y3RvcnMtY29udGV4dC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvanMvcmVzb3VyY2Vz
L2dsb2JhbC1jb25zdHJ1Y3RvcnMtY29udGV4dC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi4xZGFmM2Q4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9q
cy9yZXNvdXJjZXMvZ2xvYmFsLWNvbnN0cnVjdG9ycy1jb250ZXh0LmpzCkBAIC0wLDAgKzEsNTIg
QEAKK2Rlc2NyaXB0aW9uKCJUaGlzIHdhbGsgdGhyb3VnaCB0aGUgc2V0IG9mIGdsb2JhbCBjb25z
dHJ1Y3RvcnMgd2UgZXhwb3NlIG9uIHRoZSB3aW5kb3cgb2JqZWN0IGFuZCBzZXRzIGEgY3VzdG9t
IHByb3BlcnR5IG9uIHRoZSBjb25zdHJ1Y3RvciBhbmQgaXRzIHByb3RvdHlwZS4gVGhlbiwgd2Ug
aW5zdGFudGlhdGUgaW5zdGFuY2VzIG9mIGVhY2ggb2JqZWN0IGZyb20gYSBjaGlsZCBmcmFtZSBh
bmQgaW5zdXJlIHRoYXQgdGhlIGN1c3RvbSBwcm9wZXJ0aWVzIGV4aXN0LiIpCisKK3ZhciBjb25z
dHJ1Y3Rvck5hbWVzID0gW107CisKK2ZvciAodmFyIG5hbWUgaW4gd2luZG93KSB7CisgICAgdmFy
IHZhbHVlID0gd2luZG93W25hbWVdOworICAgIHZhciByZSA9IG5ldyBSZWdFeHAoIkNvbnN0cnVj
dG9yXSQiKTsKKyAgICB2YXIgaXNDb25zdHJ1Y3RvciA9IHJlLmV4ZWModmFsdWUpOworICAgIGlm
IChpc0NvbnN0cnVjdG9yKQorICAgICAgICBjb25zdHJ1Y3Rvck5hbWVzLnB1c2gobmFtZSk7Cit9
CisKK2NvbnN0cnVjdG9yTmFtZXMuc29ydCgpOworCit3aW5kb3cuc2hhZG93Q29uc3RydWN0b3Jz
ID0ge307Citmb3IgKHZhciB4IGluIGNvbnN0cnVjdG9yTmFtZXMpIHsKKyAgICB2YXIgbmFtZSA9
IGNvbnN0cnVjdG9yTmFtZXNbeF07CisgICAgd2luZG93LnNoYWRvd0NvbnN0cnVjdG9yc1tuYW1l
XSA9IHdpbmRvd1tuYW1lXTsKKyAgICB3aW5kb3dbbmFtZV0uY3VzdG9tUHJvcGVydHkgPSAicGFy
ZW50IjsKKyAgICB3aW5kb3dbbmFtZV0ucHJvdG90eXBlLmN1c3RvbVByb3RvdHlwZVByb3BlcnR5
ID0gInByb3RvIjsKKyAgICBzaG91bGRCZSgiIiArIG5hbWUgKyAiLmN1c3RvbVByb3BlcnR5Iiwg
IidwYXJlbnQnIik7CisgICAgc2hvdWxkQmUoIiIgKyBuYW1lICsgIi5wcm90b3R5cGUuY3VzdG9t
UHJvdG90eXBlUHJvcGVydHkiLCAiJ3Byb3RvJyIpOworICAgIHRyeSB7CisgICAgICAgIC8vIFNv
bWUgY29uc3RydWN0b3JzIHRha2UgcGFyYW1ldGVycy4KKyAgICAgICAgaWYgKG5hbWUgPT0gIldl
YktpdENTU01hdHJpeCIpCisgICAgICAgICAgICBhcmdzID0gIidtYXRyaXgoMS4wMDAwMDAsIDAu
MDAwMDAwLCAwLjAwMDAwMCwgMS4wMDAwMDAsIDAuMDAwMDAwLCAwLjAwMDAwMCknIjsKKyAgICAg
ICAgZWxzZSBpZiAobmFtZSA9PSAiV29ya2VyIikKKyAgICAgICAgICAgIGFyZ3MgPSAiJ2RvZXNf
bm90X2V4aXN0LmpzJyI7CisgICAgICAgIGVsc2UgeworICAgICAgICAgICAgLy8gTm8gYXJncyAt
IG1ha2Ugc3VyZSB3ZSBjYW4gYWN0dWFsbHkgaW5zdGFudGlhdGUgb25lIGFzIGl0IG1pZ2h0IG5v
dCBiZSBkaXJlY3RseSBpbnN0YW50aWFibGUuCisgICAgICAgICAgICBhcmdzID0gdW5kZWZpbmVk
OworICAgICAgICAgICAgdmFyIG9iaiA9IG5ldyB3aW5kb3dbbmFtZV0oKTsKKyAgICAgICAgfQor
ICAgICAgICBzaG91bGRCZSgiKG5ldyB3aW5kb3dbJyIgKyBuYW1lICsgIiddKCIgKyBhcmdzICsg
IikpLl9fcHJvdG9fXyIsICJ3aW5kb3dbJyIgKyBuYW1lICsgIiddLnByb3RvdHlwZSIpOworICAg
ICAgICBzaG91bGRCZSgiKG5ldyB3aW5kb3dbJyIgKyBuYW1lICsgIiddKCIgKyBhcmdzICsgIikp
LmN1c3RvbVByb3RvdHlwZVByb3BlcnR5IiwgIidwcm90byciKTsKKyAgICB9IGNhdGNoIChleCkg
eworICAgICAgICAvLyBTb21lIGNvbnN0cnVjdG9ycyBjYW4ndCBhY3R1YWxseSBiZSBpbnZva2Vk
LgorICAgICAgICB2YXIgcmUgPSBuZXcgUmVnRXhwKCJpcyBub3QgYSBjb25zdHJ1Y3Rvci4kIik7
CisgICAgICAgIGlmICghcmUuZXhlYyhleC50b1N0cmluZygpKSkKKyAgICAgICAgICAgIHRlc3RG
YWlsZWQoIkVycm9yIGNyZWF0aW5nIG9iamVjdCBvZiB0eXBlICIgKyBuYW1lICsgIjogIiArIGV4
KTsKKyAgICB9Cit9CisKKy8vIENyZWF0ZSBhIGNoaWxkIGZyYW1lIGFuZCBoYXZlIGl0IHRyeSBh
Y2Nlc3NpbmcgdGhlIHBhcmVudCBmcmFtZXMKK3ZhciBmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoJ2lmcmFtZScpOworZnJhbWUuc2V0QXR0cmlidXRlKCdzcmMnLCAncmVzb3VyY2VzL2ds
b2JhbC1jb25zdHJ1Y3RvcnMtY29udGV4dC1mcmFtZS5odG1sJyk7Citkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGZyYW1lKTsKKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgZGVidWcoJzxiciAv
PjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32574</attachid>
            <date>2009-07-10 13:38:14 -0700</date>
            <delta_ts>2009-07-10 13:39:47 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bugzilla_requires_a_filename.patch</filename>
            <type>text/plain</type>
            <size>8890</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
Y2NlZTIxZC4uYjk5ZmYwZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAwOS0wNy0xMCAgRXJpYyBTZWlkZWwg
IDxlcmljQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgcmVuYW1lIGdldERPTVN0cnVjdHVyZSBjYWxscyB3L28gSlNHbG9iYWxPYmpl
Y3QqIHRvIGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MTU3CisKKyAgICAgICAgVGhpcyBpcyB0aGUgZmly
c3Qgc3RlcCB0byBmaXhpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTI3MDg4CisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2o6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01CaW5kaW5nLmg6CisgICAgICAgIChX
ZWJDb3JlOjpkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlKToKKyAgICAgICAgKFdlYkNvcmU6OmNy
ZWF0ZURPTU9iamVjdFdyYXBwZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlRE9NTm9kZVdy
YXBwZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SlNOYW1lZE5vZGVzQ29sbGVjdGlvbjo6SlNOYW1lZE5vZGVz
Q29sbGVjdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNSR0JDb2xvci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpKU1JHQkNvbG9yOjpKU1JHQkNvbG9yKToKKyAgICAgICAgKiBicmlkZ2Uv
b2JqYy9vYmpjX3J1bnRpbWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjRmFsbGJh
Y2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09iamVjdEltcCk6CisgICAgICAgICogYnJpZGdlL3J1
bnRpbWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OlJ1bnRpbWVBcnJh
eSk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcDoKKyAgICAgICAgKEpTQzo6
UnVudGltZU1ldGhvZDo6UnVudGltZU1ldGhvZCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6UnVudGltZU9iamVjdEltcDo6UnVudGltZU9iamVj
dEltcCk6CisKIDIwMDktMDctMDggIE1hcmMtQW50b2luZSBSdWVsICA8bWFydWVsQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUJpbmRpbmcuaAppbmRleCAxMzc4YzkxLi5lM2ZkNDE3IDEwMDY0NAotLS0gYS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01CaW5kaW5nLmgKQEAgLTg2LDggKzg2LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICAgICAgcmV0dXJuIHN0cnVjdHVyZTsKICAgICAgICAgcmV0dXJuIGNhY2hlRE9NU3RydWN0
dXJlKGdsb2JhbE9iamVjdCwgV3JhcHBlckNsYXNzOjpjcmVhdGVTdHJ1Y3R1cmUoV3JhcHBlckNs
YXNzOjpjcmVhdGVQcm90b3R5cGUoZXhlYywgZ2xvYmFsT2JqZWN0KSksICZXcmFwcGVyQ2xhc3M6
OnNfaW5mbyk7CiAgICAgfQotICAgIHRlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFzcz4gaW5saW5l
IEpTQzo6U3RydWN0dXJlKiBnZXRET01TdHJ1Y3R1cmUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCisg
ICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBlckNsYXNzPiBpbmxpbmUgSlNDOjpTdHJ1Y3R1cmUqIGRl
cHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmUoSlNDOjpFeGVjU3RhdGUqIGV4ZWMpCiAgICAgeworICAg
ICAgICAvLyBGSVhNRTogVGhpcyBmdW5jdGlvbiBpcyB3cm9uZy4gIEl0IHVzZXMgdGhlIHdyb25n
IGdsb2JhbCBvYmplY3QgZm9yIGNyZWF0aW5nIHRoZSBwcm90b3R5cGUgc3RydWN0dXJlLgogICAg
ICAgICByZXR1cm4gZ2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYywgc3RhdGljX2Nh
c3Q8SlNET01HbG9iYWxPYmplY3QqPihleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpKTsKICAg
ICB9CiAgICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBlckNsYXNzPiBpbmxpbmUgSlNDOjpKU09iamVj
dCogZ2V0RE9NUHJvdG90eXBlKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QpCkBAIC05OSw3ICsxMDAsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgewogICAgICAgICBBU1NFUlQob2JqZWN0KTsKICAgICAgICAgQVNTRVJUKCFnZXRDYWNo
ZWRET01PYmplY3RXcmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgb2JqZWN0KSk7Ci0gICAgICAg
IFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3JhcHBlckNsYXNzKGdldERPTVN0
cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KGV4ZWMpLCBvYmplY3QpOworICAgICAgICAvLyBGSVhNRTog
bmV3IChleGVjKSBjb3VsZCB1c2UgYSBkaWZmZXJlbnQgZ2xvYmFsRGF0YSB0aGFuIHRoZSBnbG9i
YWxEYXRhIHRoaXMgd3JhcHBlciBpcyBjYWNoZWQgb24uCisgICAgICAgIFdyYXBwZXJDbGFzcyog
d3JhcHBlciA9IG5ldyAoZXhlYykgV3JhcHBlckNsYXNzKGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1
cmU8V3JhcHBlckNsYXNzPihleGVjKSwgb2JqZWN0KTsKICAgICAgICAgY2FjaGVET01PYmplY3RX
cmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgb2JqZWN0LCB3cmFwcGVyKTsKICAgICAgICAgcmV0
dXJuIHdyYXBwZXI7CiAgICAgfQpAQCAtMTE4LDcgKzEyMCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICB7CiAgICAgICAgIEFTU0VSVChvYmplY3QpOwogICAgICAgICBBU1NFUlQoIWdldENh
Y2hlZERPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBvYmplY3QpKTsKLSAgICAg
ICAgV3JhcHBlckNsYXNzKiB3cmFwcGVyID0gbmV3IChleGVjKSBXcmFwcGVyQ2xhc3MoZ2V0RE9N
U3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYyksIG9iamVjdCwgY29udGV4dCk7CisgICAgICAg
IFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3JhcHBlckNsYXNzKGRlcHJlY2F0
ZWRHZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjKSwgb2JqZWN0LCBjb250ZXh0KTsK
ICAgICAgICAgY2FjaGVET01PYmplY3RXcmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgb2JqZWN0
LCB3cmFwcGVyKTsKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgfQpAQCAtMTM3LDcgKzEz
OSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB7CiAgICAgICAgIEFTU0VSVChub2RlKTsK
ICAgICAgICAgQVNTRVJUKCFnZXRDYWNoZWRET01Ob2RlV3JhcHBlcihub2RlLT5kb2N1bWVudCgp
LCBub2RlKSk7Ci0gICAgICAgIFdyYXBwZXJDbGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3Jh
cHBlckNsYXNzKGdldERPTVN0cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KGV4ZWMpLCBub2RlKTsKKyAg
ICAgICAgV3JhcHBlckNsYXNzKiB3cmFwcGVyID0gbmV3IChleGVjKSBXcmFwcGVyQ2xhc3MoZGVw
cmVjYXRlZEdldERPTVN0cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KGV4ZWMpLCBub2RlKTsKKyAgICAg
ICAgLy8gRklYTUU6IFRoZSBlbnRpcmUgZnVuY3Rpb24gY2FuIGJlIHJlbW92ZWQsIG9uY2Ugd2Ug
Zml4IGNhY2hpbmcuCisgICAgICAgIC8vIFRoaXMgZnVuY3Rpb24gaXMgYSBvbmUtb2ZmIGhhY2sg
dG8gbWFrZSBOb2RlcyBjYWNoZSBpbiB0aGUgcmlnaHQgZ2xvYmFsIG9iamVjdC4KICAgICAgICAg
Y2FjaGVET01Ob2RlV3JhcHBlcihub2RlLT5kb2N1bWVudCgpLCBub2RlLCB3cmFwcGVyKTsKICAg
ICAgICAgcmV0dXJuIHdyYXBwZXI7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNO
YW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAKaW5kZXggOTNhODkzNy4uYWYxOTk1YiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcAorKysgYi9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwCkBAIC00Myw3ICs0
Myw5IEBAIGNvbnN0IENsYXNzSW5mbyBKU05hbWVkTm9kZXNDb2xsZWN0aW9uOjpzX2luZm8gPSB7
ICJDb2xsZWN0aW9uIiwgMCwgMCwgMCB9OwogLy8gZm9yIGNvbnN0cnVjdHMgbGlrZSBkb2N1bWVu
dC5mb3Jtcy48bmFtZT5bMV0sCiAvLyBzbyBpdCBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtIHRoYXQg
aXQncyBzdG9yaW5nIGFsbCB0aGUgbm9kZXMgKHdpdGggdGhlIHNhbWUgbmFtZSkuIChEYXZpZCkK
IEpTTmFtZWROb2Rlc0NvbGxlY3Rpb246OkpTTmFtZWROb2Rlc0NvbGxlY3Rpb24oRXhlY1N0YXRl
KiBleGVjLCBjb25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIG5vZGVzKQotICAgIDogRE9NT2Jq
ZWN0KGdldERPTVN0cnVjdHVyZTxKU05hbWVkTm9kZXNDb2xsZWN0aW9uPihleGVjKSkKKyAgICAv
LyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2Zm
IG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CisgICAgLy8gd2Ugc2hvdWxkIHVzZSB0aGUgZ2xv
YmFsIG9iamVjdCBmcm9tIHRoZSBub2Rlcy4KKyAgICA6IERPTU9iamVjdChkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlPEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24+KGV4ZWMpKQogICAgICwgbV9ub2Rl
cyhuZXcgVmVjdG9yPFJlZlB0cjxOb2RlPiA+KG5vZGVzKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNSR0JDb2xvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
UkdCQ29sb3IuY3BwCmluZGV4IGY3Yzg3ZTIuLmM0MzBkNWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNSR0JDb2xvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JH
QkNvbG9yLmNwcApAQCAtNDksNyArNDksOSBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpT
UkdCQ29sb3IpOwogY29uc3QgQ2xhc3NJbmZvIEpTUkdCQ29sb3I6OnNfaW5mbyA9IHsgIlJHQkNv
bG9yIiwgMCwgJkpTUkdCQ29sb3JUYWJsZSwgMCB9OwogCiBKU1JHQkNvbG9yOjpKU1JHQkNvbG9y
KEV4ZWNTdGF0ZSogZXhlYywgdW5zaWduZWQgY29sb3IpCi0gICAgOiBET01PYmplY3QoZ2V0RE9N
U3RydWN0dXJlPEpTUkdCQ29sb3I+KGV4ZWMpKQorICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBv
YmplY3QKKyAgICAvLyBUaGlzIHdpbGwgYmUgZml4ZWQgd2hlbiBKU1JHQkNvbG9yIHdyYXBzIGNz
cy9SR0JDb2xvciBpbnN0ZWFkIG9mIGJlaW5nIGN1c3RvbS4KKyAgICA6IERPTU9iamVjdChkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlPEpTUkdCQ29sb3I+KGV4ZWMpKQogICAgICwgbV9jb2xvcihj
b2xvcikKIHsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1l
Lm1tIGIvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggNDE2OTUxNy4u
YTVlOGMxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0K
KysrIGIvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTE4OSw3ICsxODks
OCBAQCB1bnNpZ25lZCBpbnQgT2JqY0FycmF5OjpnZXRMZW5ndGgoKSBjb25zdAogY29uc3QgQ2xh
c3NJbmZvIE9iamNGYWxsYmFja09iamVjdEltcDo6c19pbmZvID0geyAiT2JqY0ZhbGxiYWNrT2Jq
ZWN0IiwgMCwgMCwgMCB9OwogCiBPYmpjRmFsbGJhY2tPYmplY3RJbXA6Ok9iamNGYWxsYmFja09i
amVjdEltcChFeGVjU3RhdGUqIGV4ZWMsIE9iamNJbnN0YW5jZSogaSwgY29uc3QgSWRlbnRpZmll
ciYgcHJvcGVydHlOYW1lKQotICAgIDogSlNPYmplY3QoZ2V0RE9NU3RydWN0dXJlPE9iamNGYWxs
YmFja09iamVjdEltcD4oZXhlYykpCisgICAgLy8gRklYTUU6IGRlcHJlY2F0ZWRHZXRET01TdHJ1
Y3R1cmUgdXNlcyB0aGUgcHJvdG90eXBlIG9mZiBvZiB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdAor
ICAgIDogSlNPYmplY3QoZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxPYmpjRmFsbGJhY2tPYmpl
Y3RJbXA+KGV4ZWMpKQogICAgICwgX2luc3RhbmNlKGkpCiAgICAgLCBfaXRlbShwcm9wZXJ0eU5h
bWUpCiB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGZlYWQ4M2EuLjI4NDk4MjIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCisrKyBiL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0zNiw5ICszNiwxMSBAQCBuYW1lc3BhY2UgSlND
IHsKIAogY29uc3QgQ2xhc3NJbmZvIFJ1bnRpbWVBcnJheTo6c19pbmZvID0geyAiUnVudGltZUFy
cmF5IiwgJkpTQXJyYXk6OmluZm8sIDAsIDAgfTsKIAotUnVudGltZUFycmF5OjpSdW50aW1lQXJy
YXkoRXhlY1N0YXRlKiBleGVjLCBCaW5kaW5nczo6QXJyYXkqIGEpCi0gICAgOiBKU09iamVjdChn
ZXRET01TdHJ1Y3R1cmU8UnVudGltZUFycmF5PihleGVjKSkKLSAgICAsIF9hcnJheShhKQorUnVu
dGltZUFycmF5OjpSdW50aW1lQXJyYXkoRXhlY1N0YXRlKiBleGVjLCBCaW5kaW5nczo6QXJyYXkq
IGFycmF5KQorICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhl
IHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKKyAgICAvLyBXZSBuZWVk
IHRvIHBhc3MgaW4gdGhlIHJpZ2h0IGdsb2JhbCBvYmplY3QgZm9yICJhcnJheSIuCisgICAgOiBK
U09iamVjdChkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPFJ1bnRpbWVBcnJheT4oZXhlYykpCisg
ICAgLCBfYXJyYXkoYXJyYXkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfbWV0aG9kLmNwcCBiL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfbWV0aG9kLmNwcAppbmRl
eCAzMGEzNTgxLi4wYWYwYWY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX21l
dGhvZC5jcHAKKysrIGIvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9tZXRob2QuY3BwCkBAIC00MSw4
ICs0MSwxMSBAQCBBU1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKFJ1bnRpbWVNZXRob2QpOwogCiBj
b25zdCBDbGFzc0luZm8gUnVudGltZU1ldGhvZDo6c19pbmZvID0geyAiUnVudGltZU1ldGhvZCIs
IDAsIDAsIDAgfTsKIAotUnVudGltZU1ldGhvZDo6UnVudGltZU1ldGhvZChFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIGlkZW50LCBCaW5kaW5nczo6TWV0aG9kTGlzdCYgbSkgCi0g
ICAgOiBJbnRlcm5hbEZ1bmN0aW9uKCZleGVjLT5nbG9iYWxEYXRhKCksIGdldERPTVN0cnVjdHVy
ZTxSdW50aW1lTWV0aG9kPihleGVjKSwgaWRlbnQpCitSdW50aW1lTWV0aG9kOjpSdW50aW1lTWV0
aG9kKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYgaWRlbnQsIEJpbmRpbmdzOjpN
ZXRob2RMaXN0JiBtKQorICAgIC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVz
ZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKKyAgICAvLyBl
eGVjLWdsb2JhbERhdGEoKSBpcyBhbHNvIGxpa2VseSB3cm9uZy4KKyAgICAvLyBDYWxsZXJzIHdp
bGwgbmVlZCB0byBwYXNzIGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0IGNvcnJlc3BvbmRpbmcg
dG8gdGhpcyBuYXRpdmUgb2JqZWN0ICJtIi4KKyAgICA6IEludGVybmFsRnVuY3Rpb24oJmV4ZWMt
Pmdsb2JhbERhdGEoKSwgZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxSdW50aW1lTWV0aG9kPihl
eGVjKSwgaWRlbnQpCiAgICAgLCBfbWV0aG9kTGlzdChuZXcgTWV0aG9kTGlzdChtKSkKIHsKIH0K
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcCBiL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCA3OWFmZDNmLi4zODVmOTE0IDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC00MSw3ICs0MSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBC
aW5kaW5nczsKIGNvbnN0IENsYXNzSW5mbyBSdW50aW1lT2JqZWN0SW1wOjpzX2luZm8gPSB7ICJS
dW50aW1lT2JqZWN0IiwgMCwgMCwgMCB9OwogCiBSdW50aW1lT2JqZWN0SW1wOjpSdW50aW1lT2Jq
ZWN0SW1wKEV4ZWNTdGF0ZSogZXhlYywgUGFzc1JlZlB0cjxJbnN0YW5jZT4gaSkKLSAgICA6IEpT
T2JqZWN0KGdldERPTVN0cnVjdHVyZTxSdW50aW1lT2JqZWN0SW1wPihleGVjKSkKKyAgICAvLyBG
SVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9m
IHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0CisgICAgLy8gV2UgbmVlZCB0byBwYXNzIGluIHRoZSBy
aWdodCBnbG9iYWwgb2JqZWN0IGZvciAiaSIuCisgICAgOiBKU09iamVjdChkZXByZWNhdGVkR2V0
RE9NU3RydWN0dXJlPFJ1bnRpbWVPYmplY3RJbXA+KGV4ZWMpKQogICAgICwgaW5zdGFuY2UoaSkK
IHsKICAgICBpbnN0YW5jZS0+cm9vdE9iamVjdCgpLT5hZGRSdW50aW1lT2JqZWN0KHRoaXMpOw==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32689</attachid>
            <date>2009-07-13 17:45:30 -0700</date>
            <delta_ts>2009-07-13 17:48:20 -0700</delta_ts>
            <desc>Add a missing layout test result to improve the quality of life of the Mac buildbots.</desc>
            <filename>bug-27088-20090713174529.patch</filename>
            <type>text/plain</type>
            <size>3550</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlMzc2YTI5Li45YjNmZTBkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOSBAQAorMjAwOS0wNy0x
MyAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBhIG1pc3Npbmcg
bGF5b3V0IHRlc3QgcmVzdWx0IHRvIGltcHJvdmUgdGhlIHF1YWxpdHkgb2YgbGlmZSBvZiB0aGUg
TWFjIGJ1aWxkYm90cy4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L3RleHQvaW50ZXJu
YXRpb25hbC9raG1lci1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAwOS0wNy0x
MyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4
dC9pbnRlcm5hdGlvbmFsL2tobWVyLXNlbGVjdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC90ZXh0L2ludGVybmF0aW9uYWwva2htZXItc2VsZWN0aW9uLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTE2YWJiCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvdGV4dC9pbnRl
cm5hdGlvbmFsL2tobWVyLXNlbGVjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0NiBAQAor
bGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHgxMjAKKyAgUmVuZGVyQmxvY2sge0hUTUx9
IGF0ICgwLDApIHNpemUgODAweDEyMAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDE2KSBz
aXplIDc4NHg4OAorICAgICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDApIHNpemUgNzg0eDE4Cisg
ICAgICAgIFJlbmRlcklubGluZSB7Tk9CUn0gYXQgKDAsMCkgc2l6ZSAyNzZ4MTgKKyAgICAgICAg
ICBSZW5kZXJJbmxpbmUge0J9IGF0ICgwLDApIHNpemUgNDh4MTgKKyAgICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDQ4eDE4CisgICAgICAgICAgICAgIHRleHQgcnVu
IGF0ICgwLDApIHdpZHRoIDQ4OiAiXHh7MTc5Q31ceHsxN0M5fVx4ezE3QzJ9XHh7MTc5NH0iCisg
ICAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICg0OCwwKSBzaXplIDR4MTgKKyAgICAgICAg
ICAgIHRleHQgcnVuIGF0ICg0OCwwKSB3aWR0aCA0OiAiICIKKyAgICAgICAgICBSZW5kZXJJbmxp
bmUge0F9IGF0ICgwLDApIHNpemUgNzJ4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDUyLDApIHNpemUgNzJ4MTgKKyAgICAgICAgICAgICAgdGV4
dCBydW4gYXQgKDUyLDApIHdpZHRoIDcyOiAiXHh7MTc5QX1ceHsxN0JDfVx4ezE3OTR9XHh7MTc5
N31ceHsxN0I2fVx4ezE3OTZ9IgorICAgICAgICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTI0
LDApIHNpemUgNHgxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDEyNCwwKSB3aWR0aCA0OiAi
ICIKKyAgICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDApIHNpemUgNjB4MTggW2NvbG9y
PSMwMDAwRUVdCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDEyOCwwKSBzaXpl
IDYweDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxMjgsMCkgd2lkdGggNjA6ICJceHsx
NzgwfVx4ezE3RDJ9XHh7MTc5QX1ceHsxN0JCfVx4ezE3OTh9IgorICAgICAgICAgIFJlbmRlclRl
eHQgeyN0ZXh0fSBhdCAoMTg4LDApIHNpemUgNHgxOAorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDE4OCwwKSB3aWR0aCA0OiAiICIKKyAgICAgICAgICBSZW5kZXJJbmxpbmUge0F9IGF0ICgwLDAp
IHNpemUgODR4MTggW2NvbG9yPSMwMDAwRUVdCisgICAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDE5MiwwKSBzaXplIDg0eDE4CisgICAgICAgICAgICAgIHRleHQgcnVuIGF0ICgxOTIs
MCkgd2lkdGggODQ6ICJceHsxNzkwfVx4ezE3OEZ9XHh7MTdBRn1ceHsxNzgwfVx4ezE3OUZ9XHh7
MTdCNn1ceHsxNzlBfSIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUg
MHgwCisgICAgICBSZW5kZXJCbG9jayB7UH0gYXQgKDAsMzQpIHNpemUgNzg0eDU0CisgICAgICAg
IFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDUzMngxOAorICAgICAgICAgIHRleHQg
cnVuIGF0ICgwLDApIHdpZHRoIDUzMjogIlNvbWUgSGFyZmJ1enogc2hhcGVycyB3aWxsIG91dHB1
dCBjbHVzdGVyIGxvZ3Mgd2hpY2ggc3VnZ2VzdCB0aGF0IHNvbWUgZ2x5cGhzIGhhZCAiCisgICAg
ICAgIFJlbmRlcklubGluZSB7SX0gYXQgKDAsMCkgc2l6ZSAxNngxOAorICAgICAgICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoNTMyLDApIHNpemUgMTZ4MTgKKyAgICAgICAgICAgIHRleHQgcnVu
IGF0ICg1MzIsMCkgd2lkdGggMTY6ICJubyIKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0
ICg1NDgsMCkgc2l6ZSA3NjV4MzYKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoNTQ4LDApIHdpZHRo
IDIxNzogIiBjb250cmlidXRpbmcgY29kZSBwb2ludHMuIFRoaXMgdGVzdCIKKyAgICAgICAgICB0
ZXh0IHJ1biBhdCAoMCwxOCkgd2lkdGggMTc0OiAiY29udGFpbnMgc3VjaCB0ZXh0IGFuZCB1c2Vz
ICIKKyAgICAgICAgUmVuZGVySW5saW5lIHtUVH0gYXQgKDAsMCkgc2l6ZSA4OHgxNQorICAgICAg
ICAgIFJlbmRlclRleHQgeyN0ZXh0fSBhdCAoMTc0LDIwKSBzaXplIDg4eDE1CisgICAgICAgICAg
ICB0ZXh0IHJ1biBhdCAoMTc0LDIwKSB3aWR0aCA4ODogImV2ZW50U2VuZGVyIgorICAgICAgICBS
ZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDI2MiwxOCkgc2l6ZSA0NDJ4MTgKKyAgICAgICAgICB0ZXh0
IHJ1biBhdCAoMjYyLDE4KSB3aWR0aCA0NDI6ICIgdG8gc2VsZWN0IHRoZSB0ZXh0LiBZb3Ugc2hv
dWxkIHNlZSBzb21lIG9mIHRoZSBhYm92ZSB0ZXh0IHNlbGVjdGVkIGFuZCAiCisgICAgICAgIFJl
bmRlcklubGluZSB7VFR9IGF0ICgwLDApIHNpemUgODB4MTUKKyAgICAgICAgICBSZW5kZXJUZXh0
IHsjdGV4dH0gYXQgKDcwNCwyMCkgc2l6ZSA4MHgxNQorICAgICAgICAgICAgdGV4dCBydW4gYXQg
KDcwNCwyMCkgd2lkdGggODA6ICJ0ZXN0X3NoZWxsIgorICAgICAgICBSZW5kZXJUZXh0IHsjdGV4
dH0gYXQgKDAsMzYpIHNpemUgMjUyeDE4CisgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMzYpIHdp
ZHRoIDI1MjogInNob3VsZG4ndCB0cmlnZ2VyIGFueSBhc3NlcnRpb25zIG9yIGNyYXNoLiIKK2Nh
cmV0OiBwb3NpdGlvbiAwIG9mIGNoaWxkIDAgeyN0ZXh0fSBvZiBjaGlsZCAwIHtCfSBvZiBjaGls
ZCAxIHtOT0JSfSBvZiBjaGlsZCAxIHtQfSBvZiBjaGlsZCAxIHtCT0RZfSBvZiBjaGlsZCAxIHtI
VE1MfSBvZiBkb2N1bWVudA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32690</attachid>
            <date>2009-07-13 17:48:23 -0700</date>
            <delta_ts>2009-07-21 17:44:54 -0700</delta_ts>
            <desc>First attempt, does not compile, not for review, will be broken into smaller pieces</desc>
            <filename>bug-27088-20090713174822.patch</filename>
            <type>text/plain</type>
            <size>38289</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb0NvbnN0cnVjdG9yLmNwcAppbmRleCA3NGJjYWQ1
Li5lY2VjNDQ4IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQXVkaW9Db25zdHJ1
Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvQ29uc3RydWN0b3IuY3Bw
CkBAIC00MiwxMyArNDIsMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgQ2xhc3NJbmZv
IEpTQXVkaW9Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiQXVkaW9Db25zdHJ1Y3RvciIsIDAsIDAs
IDAgfTsKIAogSlNBdWRpb0NvbnN0cnVjdG9yOjpKU0F1ZGlvQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NT2JqZWN0
KEpTQXVkaW9Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQotICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFs
T2JqZWN0KQorICAgIDogRE9NT2JqZWN0KEpTQXVkaW9Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCiB7CiAg
ICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICBB
U1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzRG9jdW1lbnQo
KSk7CiAKLSAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNI
VE1MQXVkaW9FbGVtZW50UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSksIE5vbmUpOworICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJv
dG90eXBlLCBKU0hUTUxBdWRpb0VsZW1lbnRQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2Jq
ZWN0KSwgTm9uZSk7CiAgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgs
IGpzTnVtYmVyKGV4ZWMsIDEpLCBSZWFkT25seXxEb250RGVsZXRlfERvbnRFbnVtKTsKIH0KIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaCBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01CaW5kaW5nLmgKaW5kZXggZTNmZDQxNy4uNjVjZjU3NiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUJpbmRpbmcuaAorKysgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCkBAIC00OCwxNSArNDgsMjEgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiAgICAgLy8gQmFzZSBjbGFzcyBmb3IgYWxsIG9iamVjdHMgaW4gdGhpcyBiaW5k
aW5nIGV4Y2VwdCBXaW5kb3cuCiAgICAgY2xhc3MgRE9NT2JqZWN0IDogcHVibGljIEpTQzo6SlNP
YmplY3QgeworICAgIHB1YmxpYzoKKyAgICAgICAgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fZ2xvYmFsT2JqZWN0OyB9CisKICAgICBwcm90ZWN0ZWQ6
Ci0gICAgICAgIGV4cGxpY2l0IERPTU9iamVjdChQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBz
dHJ1Y3R1cmUpIAorICAgICAgICBleHBsaWNpdCBET01PYmplY3QoUGFzc1JlZlB0cjxKU0M6OlN0
cnVjdHVyZT4gc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KSAKICAg
ICAgICAgICAgIDogSlNPYmplY3Qoc3RydWN0dXJlKQorICAgICAgICAgICAgLCBtX2dsb2JhbE9i
amVjdChnbG9iYWxPYmplY3QpCiAgICAgICAgIHsKICAgICAgICAgfQogCiAjaWZuZGVmIE5ERUJV
RwogICAgICAgICB2aXJ0dWFsIH5ET01PYmplY3QoKTsKICNlbmRpZgorICAgIHByaXZhdGU6Cisg
ICAgICAgIEpTRE9NR2xvYmFsT2JqZWN0KiBtX2dsb2JhbE9iamVjdDsKICAgICB9OwogCiAgICAg
RE9NT2JqZWN0KiBnZXRDYWNoZWRET01PYmplY3RXcmFwcGVyKEpTQzo6SlNHbG9iYWxEYXRhJiwg
dm9pZCogb2JqZWN0SGFuZGxlKTsKQEAgLTgwLDYgKzg2LDExIEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBKU0M6OkpTT2JqZWN0KiBnZXRDYWNoZWRET01Db25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSosIGNvbnN0IEpTQzo6Q2xhc3NJbmZvKik7CiAgICAgdm9pZCBjYWNoZURPTUNvbnN0cnVj
dG9yKEpTQzo6RXhlY1N0YXRlKiwgY29uc3QgSlNDOjpDbGFzc0luZm8qLCBKU0M6OkpTT2JqZWN0
KiBjb25zdHJ1Y3Rvcik7CiAKKyAgICBKU0RPTUdsb2JhbE9iamVjdCogZGVwcmVjYXRlZEdsb2Jh
bE9iamVjdEZvclByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSogZXhlYykKKyAgICB7CisgICAgICAg
IHJldHVybiBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9i
YWxPYmplY3QoKSk7CisgICAgfQorCiAgICAgdGVtcGxhdGU8Y2xhc3MgV3JhcHBlckNsYXNzPiBp
bmxpbmUgSlNDOjpTdHJ1Y3R1cmUqIGdldERPTVN0cnVjdHVyZShKU0M6OkV4ZWNTdGF0ZSogZXhl
YywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKICAgICB7CiAgICAgICAgIGlmIChK
U0M6OlN0cnVjdHVyZSogc3RydWN0dXJlID0gZ2V0Q2FjaGVkRE9NU3RydWN0dXJlKGdsb2JhbE9i
amVjdCwgJldyYXBwZXJDbGFzczo6c19pbmZvKSkKQEAgLTg5LDcgKzEwMCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICB0ZW1wbGF0ZTxjbGFzcyBXcmFwcGVyQ2xhc3M+IGlubGluZSBKU0M6
OlN0cnVjdHVyZSogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZShKU0M6OkV4ZWNTdGF0ZSogZXhl
YykKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiBUaGlzIGZ1bmN0aW9uIGlzIHdyb25nLiAgSXQg
dXNlcyB0aGUgd3JvbmcgZ2xvYmFsIG9iamVjdCBmb3IgY3JlYXRpbmcgdGhlIHByb3RvdHlwZSBz
dHJ1Y3R1cmUuCi0gICAgICAgIHJldHVybiBnZXRET01TdHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihl
eGVjLCBzdGF0aWNfY2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSkpOworICAgICAgICByZXR1cm4gZ2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4o
ZXhlYywgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclByb3RvdHlwZShleGVjKSk7CiAgICAgfQog
ICAgIHRlbXBsYXRlPGNsYXNzIFdyYXBwZXJDbGFzcz4gaW5saW5lIEpTQzo6SlNPYmplY3QqIGdl
dERPTVByb3RvdHlwZShKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU0dsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogICAgIHsKQEAgLTEwMSw3ICsxMTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIEFTU0VSVChvYmplY3QpOwogICAgICAgICBBU1NFUlQoIWdldENhY2hlZERP
TU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBvYmplY3QpKTsKICAgICAgICAgLy8g
RklYTUU6IG5ldyAoZXhlYykgY291bGQgdXNlIGEgZGlmZmVyZW50IGdsb2JhbERhdGEgdGhhbiB0
aGUgZ2xvYmFsRGF0YSB0aGlzIHdyYXBwZXIgaXMgY2FjaGVkIG9uLgotICAgICAgICBXcmFwcGVy
Q2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhkZXByZWNhdGVkR2V0RE9N
U3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYyksIG9iamVjdCk7CisgICAgICAgIFdyYXBwZXJD
bGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3JhcHBlckNsYXNzKGRlcHJlY2F0ZWRHZXRET01T
dHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjKSwgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclBy
b3RvdHlwZShleGVjKSwgb2JqZWN0KTsKICAgICAgICAgY2FjaGVET01PYmplY3RXcmFwcGVyKGV4
ZWMtPmdsb2JhbERhdGEoKSwgb2JqZWN0LCB3cmFwcGVyKTsKICAgICAgICAgcmV0dXJuIHdyYXBw
ZXI7CiAgICAgfQpAQCAtMTIwLDcgKzEzMSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB7
CiAgICAgICAgIEFTU0VSVChvYmplY3QpOwogICAgICAgICBBU1NFUlQoIWdldENhY2hlZERPTU9i
amVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBvYmplY3QpKTsKLSAgICAgICAgV3JhcHBl
ckNsYXNzKiB3cmFwcGVyID0gbmV3IChleGVjKSBXcmFwcGVyQ2xhc3MoZGVwcmVjYXRlZEdldERP
TVN0cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KGV4ZWMpLCBvYmplY3QsIGNvbnRleHQpOworICAgICAg
ICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhkZXByZWNh
dGVkR2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYyksIGRlcHJlY2F0ZWRHbG9iYWxP
YmplY3RGb3JQcm90b3R5cGUoZXhlYyksIG9iamVjdCwgY29udGV4dCk7CiAgICAgICAgIGNhY2hl
RE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxEYXRhKCksIG9iamVjdCwgd3JhcHBlcik7CiAg
ICAgICAgIHJldHVybiB3cmFwcGVyOwogICAgIH0KQEAgLTEzOSw3ICsxNTAsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICBBU1NFUlQobm9kZSk7CiAgICAgICAgIEFTU0VS
VCghZ2V0Q2FjaGVkRE9NTm9kZVdyYXBwZXIobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZSkpOwotICAg
ICAgICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYyksIG5vZGUpOworICAgICAg
ICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhkZXByZWNh
dGVkR2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYyksIGRlcHJlY2F0ZWRHbG9iYWxP
YmplY3RGb3JQcm90b3R5cGUoZXhlYyksIG5vZGUpOwogICAgICAgICAvLyBGSVhNRTogVGhlIGVu
dGlyZSBmdW5jdGlvbiBjYW4gYmUgcmVtb3ZlZCwgb25jZSB3ZSBmaXggY2FjaGluZy4KICAgICAg
ICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBhIG9uZS1vZmYgaGFjayB0byBtYWtlIE5vZGVzIGNhY2hl
IGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0LgogICAgICAgICBjYWNoZURPTU5vZGVXcmFwcGVy
KG5vZGUtPmRvY3VtZW50KCksIG5vZGUsIHdyYXBwZXIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5oCmluZGV4IDhlNGU4MjAuLmJjNmMxZjIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTY3LDYgKzY3LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIEpTTGlzdGVuZXJzTWFwJiBqc0V2ZW50TGlzdGVuZXJzKCk7CiAKKyAg
ICAgICAgLy8gTWFrZSBiaW5kaW5nIGNvZGUgZ2VuZXJhdGlvbiBlYXNpZXIuCisgICAgICAgIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiB0aGlzOyB9CisKICAgICAg
ICAgdm9pZCBzZXRDdXJyZW50RXZlbnQoRXZlbnQqKTsKICAgICAgICAgRXZlbnQqIGN1cnJlbnRF
dmVudCgpIGNvbnN0OwogCkBAIC04OSwxNiArOTIsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgfTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIENvbnN0cnVjdG9yQ2xhc3M+Ci0gICAgaW5saW5l
IEpTQzo6SlNPYmplY3QqIGdldERPTUNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiBleGVjKQot
ICAgIHsKLSAgICAgICAgaWYgKEpTQzo6SlNPYmplY3QqIGNvbnN0cnVjdG9yID0gZ2V0Q2FjaGVk
RE9NQ29uc3RydWN0b3IoZXhlYywgJkNvbnN0cnVjdG9yQ2xhc3M6OnNfaW5mbykpCi0gICAgICAg
ICAgICByZXR1cm4gY29uc3RydWN0b3I7Ci0gICAgICAgIEpTQzo6SlNPYmplY3QqIGNvbnN0cnVj
dG9yID0gbmV3IChleGVjKSBDb25zdHJ1Y3RvckNsYXNzKGV4ZWMpOwotICAgICAgICBjYWNoZURP
TUNvbnN0cnVjdG9yKGV4ZWMsICZDb25zdHJ1Y3RvckNsYXNzOjpzX2luZm8sIGNvbnN0cnVjdG9y
KTsKLSAgICAgICAgcmV0dXJuIGNvbnN0cnVjdG9yOwotICAgIH0KLQotICAgIHRlbXBsYXRlPGNs
YXNzIENvbnN0cnVjdG9yQ2xhc3M+CiAgICAgaW5saW5lIEpTQzo6SlNPYmplY3QqIGdldERPTUNv
bnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBjb25zdCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgaWYgKEpTQzo6SlNPYmplY3QqIGNvbnN0cnVj
dG9yID0gZ2xvYmFsT2JqZWN0LT5jb25zdHJ1Y3RvcnMoKS5nZXQoJkNvbnN0cnVjdG9yQ2xhc3M6
OnNfaW5mbykpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3Vz
dG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCmluZGV4
IGMwOTViZjIuLjMzYWM3YmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0
b20uY3BwCkBAIC0zNTksNyArMzU5LDggQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6aGlzdG9yeShF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgaWYgKERPTU9iamVjdCogd3JhcHBlciA9IGdldENh
Y2hlZERPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBoaXN0b3J5KSkKICAgICAg
ICAgcmV0dXJuIHdyYXBwZXI7CiAKLSAgICBKU0hpc3RvcnkqIGpzSGlzdG9yeSA9IG5ldyAoZXhl
YykgSlNIaXN0b3J5KGdldERPTVN0cnVjdHVyZTxKU0hpc3Rvcnk+KGV4ZWMsIGNvbnN0X2Nhc3Q8
SlNET01XaW5kb3cqPih0aGlzKSksIGhpc3RvcnkpOworICAgIEpTRE9NV2luZG93KiB3aW5kb3cg
PSBjb25zdF9jYXN0PEpTRE9NV2luZG93Kj4odGhpcyk7CisgICAgSlNIaXN0b3J5KiBqc0hpc3Rv
cnkgPSBuZXcgKGV4ZWMpIEpTSGlzdG9yeShnZXRET01TdHJ1Y3R1cmU8SlNIaXN0b3J5PihleGVj
LCB3aW5kb3cpLCB3aW5kb3csIGhpc3RvcnkpOwogICAgIGNhY2hlRE9NT2JqZWN0V3JhcHBlcihl
eGVjLT5nbG9iYWxEYXRhKCksIGhpc3RvcnksIGpzSGlzdG9yeSk7CiAgICAgcmV0dXJuIGpzSGlz
dG9yeTsKIH0KQEAgLTM3MCw3ICszNzEsOCBAQCBKU1ZhbHVlIEpTRE9NV2luZG93Ojpsb2NhdGlv
bihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgaWYgKERPTU9iamVjdCogd3JhcHBlciA9IGdl
dENhY2hlZERPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBsb2NhdGlvbikpCiAg
ICAgICAgIHJldHVybiB3cmFwcGVyOwogCi0gICAgSlNMb2NhdGlvbioganNMb2NhdGlvbiA9IG5l
dyAoZXhlYykgSlNMb2NhdGlvbihnZXRET01TdHJ1Y3R1cmU8SlNMb2NhdGlvbj4oZXhlYywgY29u
c3RfY2FzdDxKU0RPTVdpbmRvdyo+KHRoaXMpKSwgbG9jYXRpb24pOworICAgIEpTRE9NV2luZG93
KiB3aW5kb3cgPSBjb25zdF9jYXN0PEpTRE9NV2luZG93Kj4odGhpcyk7CisgICAgSlNMb2NhdGlv
bioganNMb2NhdGlvbiA9IG5ldyAoZXhlYykgSlNMb2NhdGlvbihnZXRET01TdHJ1Y3R1cmU8SlNM
b2NhdGlvbj4oZXhlYywgd2luZG93KSwgd2luZG93LCBsb2NhdGlvbik7CiAgICAgY2FjaGVET01P
YmplY3RXcmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgbG9jYXRpb24sIGpzTG9jYXRpb24pOwog
ICAgIHJldHVybiBqc0xvY2F0aW9uOwogfQpAQCAtNDQzLDEyICs0NDUsMTIgQEAgSlNWYWx1ZSBK
U0RPTVdpbmRvdzo6YXVkaW8oRXhlY1N0YXRlKiBleGVjKSBjb25zdAogCiBKU1ZhbHVlIEpTRE9N
V2luZG93Ojp3ZWJLaXRQb2ludChFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgcmV0dXJu
IGdldERPTUNvbnN0cnVjdG9yPEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvcj4oZXhlYyk7CisgICAg
cmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvcj4oZXhlYywg
dGhpcyk7CiB9CiAKIEpTVmFsdWUgSlNET01XaW5kb3c6OndlYktpdENTU01hdHJpeChFeGVjU3Rh
dGUqIGV4ZWMpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTV2ViS2l0
Q1NTTWF0cml4Q29uc3RydWN0b3I+KGV4ZWMpOworICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3Rv
cjxKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yPihleGVjLCB0aGlzKTsKIH0KICAKIEpTVmFs
dWUgSlNET01XaW5kb3c6OnhtbEh0dHBSZXF1ZXN0KEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKQEAg
LTQ1OSw3ICs0NjEsNyBAQCBKU1ZhbHVlIEpTRE9NV2luZG93Ojp4bWxIdHRwUmVxdWVzdChFeGVj
U3RhdGUqIGV4ZWMpIGNvbnN0CiAjaWYgRU5BQkxFKFhTTFQpCiBKU1ZhbHVlIEpTRE9NV2luZG93
Ojp4c2x0UHJvY2Vzc29yKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKIHsKLSAgICByZXR1cm4gZ2V0
RE9NQ29uc3RydWN0b3I8SlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3I+KGV4ZWMpOworICAgIHJl
dHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvcj4oZXhlYywg
dGhpcyk7CiB9CiAjZW5kaWYKIApAQCAtNDczLDcgKzQ3NSw3IEBAIEpTVmFsdWUgSlNET01XaW5k
b3c6Om1lc3NhZ2VDaGFubmVsKEV4ZWNTdGF0ZSogZXhlYykgY29uc3QKICNpZiBFTkFCTEUoV09S
S0VSUykKIEpTVmFsdWUgSlNET01XaW5kb3c6OndvcmtlcihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTV29ya2VyQ29uc3RydWN0b3I+KGV4
ZWMpOworICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1dvcmtlckNvbnN0cnVjdG9yPihl
eGVjLCB0aGlzKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NV2luZG93U2hlbGwuY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1No
ZWxsLmNwcAppbmRleCAxYmY0NzhiLi4xZmYwYWYxIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dTaGVsbC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5f
Q0VMTChKU0RPTVdpbmRvd1NoZWxsKTsKIGNvbnN0IENsYXNzSW5mbyBKU0RPTVdpbmRvd1NoZWxs
OjpzX2luZm8gPSB7ICJKU0RPTVdpbmRvd1NoZWxsIiwgMCwgMCwgMCB9OwogCiBKU0RPTVdpbmRv
d1NoZWxsOjpKU0RPTVdpbmRvd1NoZWxsKFBhc3NSZWZQdHI8RE9NV2luZG93PiB3aW5kb3cpCi0g
ICAgOiBCYXNlKEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSkpCisg
ICAgOiBCYXNlKEpTRE9NV2luZG93U2hlbGw6OmNyZWF0ZVN0cnVjdHVyZShqc051bGwoKSksIDAp
IC8vIEludGVudGlvbmFsbHkgcGFzc2luZyAwIGFzIHRoZSBKU0RPTUdsb2JhbE9iamVjdCouICBK
U1dpbmRvd1NoZWxsIHNob3VsZCBuZXZlciBuZWVkIG9uZS4KICAgICAsIG1fd2luZG93KDApCiB7
CiAgICAgc2V0V2luZG93KHdpbmRvdyk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRG9jdW1lbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3Vz
dG9tLmNwcAppbmRleCA5NTYzMjdhLi40NGVmOTdiIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
b2N1bWVudEN1c3RvbS5jcHAKQEAgLTU2LDggKzU2LDcgQEAgSlNWYWx1ZSBKU0RvY3VtZW50Ojps
b2NhdGlvbihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgaWYgKERPTU9iamVjdCogd3JhcHBl
ciA9IGdldENhY2hlZERPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBsb2NhdGlv
bikpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCi0gICAgSlNET01XaW5kb3cqIHdpbmRvdyA9
IHN0YXRpY19jYXN0PEpTRE9NV2luZG93Kj4oZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKTsK
LSAgICBKU0xvY2F0aW9uKiBqc0xvY2F0aW9uID0gbmV3IChleGVjKSBKU0xvY2F0aW9uKGdldERP
TVN0cnVjdHVyZTxKU0xvY2F0aW9uPihleGVjLCB3aW5kb3cpLCBsb2NhdGlvbik7CisgICAgSlNM
b2NhdGlvbioganNMb2NhdGlvbiA9IG5ldyAoZXhlYykgSlNMb2NhdGlvbihnZXRET01TdHJ1Y3R1
cmU8SlNMb2NhdGlvbj4oZXhlYywgZ2xvYmFsT2JqZWN0KCkpLCBnbG9iYWxPYmplY3QoKSwgbG9j
YXRpb24pOwogICAgIGNhY2hlRE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxEYXRhKCksIGxv
Y2F0aW9uLCBqc0xvY2F0aW9uKTsKICAgICByZXR1cm4ganNMb2NhdGlvbjsKIH0KZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVjdGlvbi5oIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uLmgKaW5kZXggZDU1OWQzYi4uNzM2M2U1YyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uLmgKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxBbGxDb2xsZWN0aW9uLmgKQEAgLTM1LDggKzM1
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgSlNIVE1MQWxsQ29sbGVjdGlv
biA6IHB1YmxpYyBKU0hUTUxDb2xsZWN0aW9uIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEpTSFRN
TEFsbENvbGxlY3Rpb24oUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gc3RydWN0dXJlLCBQYXNz
UmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBjb2xsZWN0aW9uKQotICAgICAgICAgICAgOiBKU0hUTUxD
b2xsZWN0aW9uKHN0cnVjdHVyZSwgY29sbGVjdGlvbikKKyAgICAgICAgSlNIVE1MQWxsQ29sbGVj
dGlvbihQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2Jq
ZWN0KiBnbG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8SFRNTENvbGxlY3Rpb24+IGNvbGxlY3Rpb24p
CisgICAgICAgICAgICA6IEpTSFRNTENvbGxlY3Rpb24oc3RydWN0dXJlLCBnbG9iYWxPYmplY3Qs
IGNvbGxlY3Rpb24pCiAgICAgICAgIHsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcAppbmRleCA0MTAwNDY4Li4wMjc0YWNmIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20uY3Bw
CisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAKQEAg
LTM1LDEwICszNSwxMCBAQCB1c2luZyBuYW1lc3BhY2UgSlNDOwogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLXN0YXRpYyBKU1ZhbHVlIGdldE5hbWVkSXRlbXMoRXhlY1N0YXRlKiBleGVjLCBIVE1M
Q29sbGVjdGlvbiogaW1wbCwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorc3RhdGlj
IEpTVmFsdWUgZ2V0TmFtZWRJdGVtcyhFeGVjU3RhdGUqIGV4ZWMsIEpTSFRNTENvbGxlY3Rpb24q
IGNvbGxlY3Rpb24sIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKICAgICBWZWN0
b3I8UmVmUHRyPE5vZGU+ID4gbmFtZWRJdGVtczsKLSAgICBpbXBsLT5uYW1lZEl0ZW1zKHByb3Bl
cnR5TmFtZSwgbmFtZWRJdGVtcyk7CisgICAgY29sbGVjdGlvbi0+aW1wbCgpLT5uYW1lZEl0ZW1z
KHByb3BlcnR5TmFtZSwgbmFtZWRJdGVtcyk7CiAKICAgICBpZiAobmFtZWRJdGVtcy5pc0VtcHR5
KCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwpAQCAtNDYsNyArNDYsNyBAQCBzdGF0
aWMgSlNWYWx1ZSBnZXROYW1lZEl0ZW1zKEV4ZWNTdGF0ZSogZXhlYywgSFRNTENvbGxlY3Rpb24q
IGltcGwsIGNvbnN0IElkZW50aQogICAgIGlmIChuYW1lZEl0ZW1zLnNpemUoKSA9PSAxKQogICAg
ICAgICByZXR1cm4gdG9KUyhleGVjLCBuYW1lZEl0ZW1zWzBdLmdldCgpKTsKIAotICAgIHJldHVy
biBuZXcgKGV4ZWMpIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24oZXhlYywgbmFtZWRJdGVtcyk7Cisg
ICAgcmV0dXJuIG5ldyAoZXhlYykgSlNOYW1lZE5vZGVzQ29sbGVjdGlvbihleGVjLCBjb2xsZWN0
aW9uLT5nbG9iYWxPYmplY3QoKSwgbmFtZWRJdGVtcyk7CiB9CiAKIC8vIEhUTUxDb2xsZWN0aW9u
cyBhcmUgc3RyYW5nZSBvYmplY3RzLCB0aGV5IHN1cHBvcnQgYm90aCBnZXQgYW5kIGNhbGwsCkBA
IC01Nyw3ICs1Nyw4IEBAIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEhUTUxDb2xs
ZWN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIGZ1bmN0CiAgICAgICAgIHJldHVybiBq
c1VuZGVmaW5lZCgpOwogCiAgICAgLy8gRG8gbm90IHVzZSB0aGlzT2JqIGhlcmUuIEl0IGNhbiBi
ZSB0aGUgSlNIVE1MRG9jdW1lbnQsIGluIHRoZSBkb2N1bWVudC5mb3JtcyhpKSBjYXNlLgotICAg
IEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uID0gc3RhdGljX2Nhc3Q8SlNIVE1MQ29sbGVjdGlv
bio+KGZ1bmN0aW9uKS0+aW1wbCgpOworICAgIEpTSFRNTENvbGxlY3Rpb24qIGpzQ29sbGVjdGlv
biA9IHN0YXRpY19jYXN0PEpTSFRNTENvbGxlY3Rpb24qPihmdW5jdGlvbik7CisgICAgSFRNTENv
bGxlY3Rpb24qIGNvbGxlY3Rpb24gPSBqc0NvbGxlY3Rpb24tPmltcGwoKTsKIAogICAgIC8vIEFs
c28sIGRvIHdlIG5lZWQgdGhlIFR5cGVFcnJvciB0ZXN0IGhlcmUgPwogCkBAIC03MCw3ICs3MSw3
IEBAIHN0YXRpYyBKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgY2FsbEhUTUxDb2xsZWN0aW9uKEV4ZWNT
dGF0ZSogZXhlYywgSlNPYmplY3QqIGZ1bmN0CiAgICAgICAgICAgICByZXR1cm4gdG9KUyhleGVj
LCBjb2xsZWN0aW9uLT5pdGVtKGluZGV4KSk7CiAKICAgICAgICAgLy8gU3VwcG9ydCBmb3IgZG9j
dW1lbnQuaW1hZ2VzKCc8bmFtZT4nKSBldGMuCi0gICAgICAgIHJldHVybiBnZXROYW1lZEl0ZW1z
KGV4ZWMsIGNvbGxlY3Rpb24sIElkZW50aWZpZXIoZXhlYywgc3RyaW5nKSk7CisgICAgICAgIHJl
dHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIGpzQ29sbGVjdGlvbiwgSWRlbnRpZmllcihleGVjLCBz
dHJpbmcpKTsKICAgICB9CiAKICAgICAvLyBUaGUgc2Vjb25kIGFyZywgaWYgc2V0LCBpcyB0aGUg
aW5kZXggb2YgdGhlIGl0ZW0gd2Ugd2FudApAQCAtOTcsMTUgKzk4LDE3IEBAIENhbGxUeXBlIEpT
SFRNTENvbGxlY3Rpb246OmdldENhbGxEYXRhKENhbGxEYXRhJiBjYWxsRGF0YSkKICAgICByZXR1
cm4gQ2FsbFR5cGVIb3N0OwogfQogCi1ib29sIEpTSFRNTENvbGxlY3Rpb246OmNhbkdldEl0ZW1z
Rm9yTmFtZShFeGVjU3RhdGUqIGV4ZWMsIEhUTUxDb2xsZWN0aW9uKiB0aGlzT2JqLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCitib29sIEpTSFRNTENvbGxlY3Rpb246OmNhbkdldEl0
ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbiwgY29uc3Qg
SWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQogewotICAgIHJldHVybiAhZ2V0TmFtZWRJdGVtcyhl
eGVjLCB0aGlzT2JqLCBwcm9wZXJ0eU5hbWUpLmlzVW5kZWZpbmVkKCk7CisgICAgVmVjdG9yPFJl
ZlB0cjxOb2RlPiA+IG5hbWVkSXRlbXM7CisgICAgY29sbGVjdGlvbi0+bmFtZWRJdGVtcyhwcm9w
ZXJ0eU5hbWUsIG5hbWVkSXRlbXMpOworICAgIHJldHVybiAhbmFtZWRJdGVtcy5pc0VtcHR5KCk7
CiB9CiAKIEpTVmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4
ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIEpTSFRNTENvbGxlY3Rpb24qIHRoaXNPYmogPSBzdGF0aWNfY2FzdDxKU0hU
TUxDb2xsZWN0aW9uKj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSk7Ci0gICAgcmV0dXJuIGdl
dE5hbWVkSXRlbXMoZXhlYywgdGhpc09iai0+aW1wbCgpLCBwcm9wZXJ0eU5hbWUpOworICAgIHJl
dHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIHRoaXNPYmosIHByb3BlcnR5TmFtZSk7CiB9CiAKIEpT
VmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6aXRlbShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xp
c3QmIGFyZ3MpCkBAIC0xMTQsMTIgKzExNywxMiBAQCBKU1ZhbHVlIEpTSFRNTENvbGxlY3Rpb246
Oml0ZW0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBBcmdMaXN0JiBhcmdzKQogICAgIHVpbnQzMl90
IGluZGV4ID0gYXJncy5hdCgwKS50b1N0cmluZyhleGVjKS50b1VJbnQzMigmb2ssIGZhbHNlKTsK
ICAgICBpZiAob2spCiAgICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIGltcGwoKS0+aXRlbShpbmRl
eCkpOwotICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIGltcGwoKSwgSWRlbnRpZmllcihl
eGVjLCBhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpKSk7CisgICAgcmV0dXJuIGdldE5hbWVkSXRl
bXMoZXhlYywgdGhpcywgSWRlbnRpZmllcihleGVjLCBhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMp
KSk7CiB9CiAKIEpTVmFsdWUgSlNIVE1MQ29sbGVjdGlvbjo6bmFtZWRJdGVtKEV4ZWNTdGF0ZSog
ZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKIHsKLSAgICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhl
eGVjLCBpbXBsKCksIElkZW50aWZpZXIoZXhlYywgYXJncy5hdCgwKS50b1N0cmluZyhleGVjKSkp
OworICAgIHJldHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIHRoaXMsIElkZW50aWZpZXIoZXhlYywg
YXJncy5hdCgwKS50b1N0cmluZyhleGVjKSkpOwogfQogCiBKU1ZhbHVlIHRvSlMoRXhlY1N0YXRl
KiBleGVjLCBIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbikKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHAKaW5kZXggZTViNDI4YS4uZmZhMmQ1NyAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5j
cHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGb3JtRWxlbWVudEN1c3RvbS5jcHAK
QEAgLTQ1LDcgKzQ1LDggQEAgYm9vbCBKU0hUTUxGb3JtRWxlbWVudDo6Y2FuR2V0SXRlbXNGb3JO
YW1lKEV4ZWNTdGF0ZSosIEhUTUxGb3JtRWxlbWVudCogZm9ybSwgY28KIAogSlNWYWx1ZSBKU0hU
TUxGb3JtRWxlbWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZp
ZXImIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KQogewotICAgIEhUTUxG
b3JtRWxlbWVudCogZm9ybSA9IHN0YXRpY19jYXN0PEhUTUxGb3JtRWxlbWVudCo+KHN0YXRpY19j
YXN0PEpTSFRNTEVsZW1lbnQqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKS0+aW1wbCgpKTsK
KyAgICBKU0hUTUxFbGVtZW50KiBqc0Zvcm0gPSBzdGF0aWNfY2FzdDxKU0hUTUxGb3JtRWxlbWVu
dCo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpOworICAgIEhUTUxGb3JtRWxlbWVudCogZm9y
bSA9IHN0YXRpY19jYXN0PEhUTUxGb3JtRWxlbWVudCo+KGpzRm9ybS0+aW1wbCgpKTsKICAgICAK
ICAgICBWZWN0b3I8UmVmUHRyPE5vZGU+ID4gbmFtZWRJdGVtczsKICAgICBmb3JtLT5nZXROYW1l
ZEVsZW1lbnRzKHByb3BlcnR5TmFtZSwgbmFtZWRJdGVtcyk7CkBAIC01Myw3ICs1NCw3IEBAIEpT
VmFsdWUgSlNIVE1MRm9ybUVsZW1lbnQ6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBJZGVudGlmaWVyJiBwcm9wZXJ0CiAgICAgaWYgKG5hbWVkSXRlbXMuc2l6ZSgpID09IDEpCiAg
ICAgICAgIHJldHVybiB0b0pTKGV4ZWMsIG5hbWVkSXRlbXNbMF0uZ2V0KCkpOwogICAgIGlmIChu
YW1lZEl0ZW1zLnNpemUoKSA+IDEpIAotICAgICAgICByZXR1cm4gbmV3IChleGVjKSBKU05hbWVk
Tm9kZXNDb2xsZWN0aW9uKGV4ZWMsIG5hbWVkSXRlbXMpOworICAgICAgICByZXR1cm4gbmV3IChl
eGVjKSBKU05hbWVkTm9kZXNDb2xsZWN0aW9uKGV4ZWMsIGpzRm9ybS0+Z2xvYmFsT2JqZWN0KCks
IG5hbWVkSXRlbXMpOwogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTSW1hZ2VDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNGEyN2JiNC4uNmE4Y2UxNSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0ltYWdlQ29uc3RydWN0b3IuY3BwCisr
KyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbWFnZUNvbnN0cnVjdG9yLmNwcApAQCAtMzUsMTMg
KzM1LDEyIEBAIEFTU0VSVF9DTEFTU19GSVRTX0lOX0NFTEwoSlNJbWFnZUNvbnN0cnVjdG9yKTsK
IGNvbnN0IENsYXNzSW5mbyBKU0ltYWdlQ29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIkltYWdlQ29u
c3RydWN0b3IiLCAwLCAwLCAwIH07CiAKIEpTSW1hZ2VDb25zdHJ1Y3Rvcjo6SlNJbWFnZUNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
LSAgICA6IERPTU9iamVjdChKU0ltYWdlQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKLSAgICAsIG1fZ2xv
YmFsT2JqZWN0KGdsb2JhbE9iamVjdCkKKyAgICA6IERPTU9iamVjdChKU0ltYWdlQ29uc3RydWN0
b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xv
YmFsT2JqZWN0KQogewogICAgIEFTU0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKSk7CiAgICAgQVNTRVJUKGdsb2JhbE9iamVjdC0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5pc0RvY3VtZW50KCkpOwogCi0gICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMo
KS5wcm90b3R5cGUsIEpTSFRNTEltYWdlRWxlbWVudFByb3RvdHlwZTo6c2VsZihleGVjLCBleGVj
LT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBOb25lKTsKKyAgICBwdXREaXJlY3QoZXhlYy0+cHJv
cGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNIVE1MSW1hZ2VFbGVtZW50UHJvdG90eXBlOjpzZWxm
KGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwogfQogCiBEb2N1bWVudCogSlNJbWFnZUNvbnN0
cnVjdG9yOjpkb2N1bWVudCgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
TWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNDk1YmQ1My4uOWE5MjkwYyAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3Iu
Y3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9y
LmNwcApAQCAtMzgsMTAgKzM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY29uc3QgQ2xhc3NJ
bmZvIEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiTWVzc2FnZUNoYW5u
ZWxDb25zdHJ1Y3RvciIsIDAsIDAsIDAgfTsKIAogSlNNZXNzYWdlQ2hhbm5lbENvbnN0cnVjdG9y
OjpKU01lc3NhZ2VDaGFubmVsQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NT2JqZWN0KEpTTWVzc2FnZUNoYW5uZWxD
b25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+
b2JqZWN0UHJvdG90eXBlKCkpKQotICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQor
ICAgIDogRE9NT2JqZWN0KEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0
dXJlKGdsb2JhbE9iamVjdC0+b2JqZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCiB7Ci0g
ICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTTWVzc2FnZUNo
YW5uZWxQcm90b3R5cGU6OnNlbGYoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwg
Tm9uZSk7CisgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpT
TWVzc2FnZUNoYW5uZWxQcm90b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7
CiB9CiAKIEpTTWVzc2FnZUNoYW5uZWxDb25zdHJ1Y3Rvcjo6fkpTTWVzc2FnZUNoYW5uZWxDb25z
dHJ1Y3RvcigpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rlc0Nv
bGxlY3Rpb24uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9u
LmNwcAppbmRleCBhZjE5OTViLi45NzJlNDQ0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTTmFtZWROb2Rlc0NvbGxlY3Rpb24uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAKQEAgLTQyLDEwICs0Miw4IEBAIGNvbnN0IENsYXNz
SW5mbyBKU05hbWVkTm9kZXNDb2xsZWN0aW9uOjpzX2luZm8gPSB7ICJDb2xsZWN0aW9uIiwgMCwg
MCwgMCB9OwogLy8gU3VjaCBhIGNvbGxlY3Rpb24gaXMgdXN1YWxseSB2ZXJ5IHNob3J0LWxpdmVk
LCBpdCBvbmx5IGV4aXN0cwogLy8gZm9yIGNvbnN0cnVjdHMgbGlrZSBkb2N1bWVudC5mb3Jtcy48
bmFtZT5bMV0sCiAvLyBzbyBpdCBzaG91bGRuJ3QgYmUgYSBwcm9ibGVtIHRoYXQgaXQncyBzdG9y
aW5nIGFsbCB0aGUgbm9kZXMgKHdpdGggdGhlIHNhbWUgbmFtZSkuIChEYXZpZCkKLUpTTmFtZWRO
b2Rlc0NvbGxlY3Rpb246OkpTTmFtZWROb2Rlc0NvbGxlY3Rpb24oRXhlY1N0YXRlKiBleGVjLCBj
b25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mIG5vZGVzKQotICAgIC8vIEZJWE1FOiBkZXByZWNh
dGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBvZmYgb2YgdGhlIHdyb25nIGds
b2JhbCBvYmplY3QKLSAgICAvLyB3ZSBzaG91bGQgdXNlIHRoZSBnbG9iYWwgb2JqZWN0IGZyb20g
dGhlIG5vZGVzLgotICAgIDogRE9NT2JqZWN0KGRlcHJlY2F0ZWRHZXRET01TdHJ1Y3R1cmU8SlNO
YW1lZE5vZGVzQ29sbGVjdGlvbj4oZXhlYykpCitKU05hbWVkTm9kZXNDb2xsZWN0aW9uOjpKU05h
bWVkTm9kZXNDb2xsZWN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgY29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+JiBub2RlcykKKyAgICA6IERP
TU9iamVjdChnZXRET01TdHJ1Y3R1cmU8SlNOYW1lZE5vZGVzQ29sbGVjdGlvbj4oZXhlYywgZ2xv
YmFsT2JqZWN0KSwgZ2xvYmFsT2JqZWN0KQogICAgICwgbV9ub2RlcyhuZXcgVmVjdG9yPFJlZlB0
cjxOb2RlPiA+KG5vZGVzKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNOYW1lZE5vZGVzQ29sbGVjdGlvbi5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9k
ZXNDb2xsZWN0aW9uLmgKaW5kZXggM2JiYzEwMi4uNWYxOTVjMSAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9uLmgKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9uLmgKQEAgLTM3LDcgKzM3LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIC8vIHdoZW4gbXVsdGlwbGUgbm9kZXMgaGF2ZSB0aGUgc2FtZSBu
YW1lLgogICAgIGNsYXNzIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24gOiBwdWJsaWMgRE9NT2JqZWN0
IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24oSlNDOjpFeGVj
U3RhdGUqLCBjb25zdCBWZWN0b3I8UmVmUHRyPE5vZGU+ID4mKTsKKyAgICAgICAgSlNOYW1lZE5v
ZGVzQ29sbGVjdGlvbihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgY29uc3Qg
VmVjdG9yPFJlZlB0cjxOb2RlPiA+Jik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blBy
b3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6
UHJvcGVydHlTbG90Jik7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNPcHRp
b25Db25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTT3B0aW9uQ29uc3RydWN0
b3IuY3BwCmluZGV4IDllODE4ZmYuLmJiMWEwMjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNPcHRpb25Db25zdHJ1Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U09wdGlvbkNvbnN0cnVjdG9yLmNwcApAQCAtMzUsMTMgKzM1LDEyIEBAIEFTU0VSVF9DTEFTU19G
SVRTX0lOX0NFTEwoSlNPcHRpb25Db25zdHJ1Y3Rvcik7CiBjb25zdCBDbGFzc0luZm8gSlNPcHRp
b25Db25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiT3B0aW9uQ29uc3RydWN0b3IiLCAwLCAwLCAwIH07
CiAKIEpTT3B0aW9uQ29uc3RydWN0b3I6OkpTT3B0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotICAgIDogRE9NT2JqZWN0KEpT
T3B0aW9uQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2Jq
ZWN0KCktPm9iamVjdFByb3RvdHlwZSgpKSkKLSAgICAsIG1fZ2xvYmFsT2JqZWN0KGdsb2JhbE9i
amVjdCkKKyAgICA6IERPTU9iamVjdChKU09wdGlvbkNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1
cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKIHsKICAg
ICBBU1NFUlQoZ2xvYmFsT2JqZWN0LT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgIEFT
U0VSVChnbG9iYWxPYmplY3QtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNEb2N1bWVudCgp
KTsKIAotICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU0hU
TUxPcHRpb25FbGVtZW50UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxP
YmplY3QoKSksIE5vbmUpOworICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJv
dG90eXBlLCBKU0hUTUxPcHRpb25FbGVtZW50UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9i
amVjdCksIE5vbmUpOwogICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3Ro
LCBqc051bWJlcihleGVjLCA0KSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSR0JDb2xvci5jcHAgYi9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTUkdCQ29sb3IuY3BwCmluZGV4IGM0MzBkNWYuLmU4NmNlMjAgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSR0JDb2xvci5jcHAKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1JHQkNvbG9yLmNwcApAQCAtNDgsMTIgKzQ4LDExIEBAIEFTU0VSVF9DTEFT
U19GSVRTX0lOX0NFTEwoSlNSR0JDb2xvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBKU1JHQkNvbG9y
OjpzX2luZm8gPSB7ICJSR0JDb2xvciIsIDAsICZKU1JHQkNvbG9yVGFibGUsIDAgfTsKIAotSlNS
R0JDb2xvcjo6SlNSR0JDb2xvcihFeGVjU3RhdGUqIGV4ZWMsIHVuc2lnbmVkIGNvbG9yKQotICAg
IC8vIEZJWE1FOiBkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlIHVzZXMgdGhlIHByb3RvdHlwZSBv
ZmYgb2YgdGhlIHdyb25nIGdsb2JhbCBvYmplY3QKLSAgICAvLyBUaGlzIHdpbGwgYmUgZml4ZWQg
d2hlbiBKU1JHQkNvbG9yIHdyYXBzIGNzcy9SR0JDb2xvciBpbnN0ZWFkIG9mIGJlaW5nIGN1c3Rv
bS4KLSAgICA6IERPTU9iamVjdChkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPEpTUkdCQ29sb3I+
KGV4ZWMpKQorSlNSR0JDb2xvcjo6SlNSR0JDb2xvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGNvbG9yKQorICAgIDogRE9NT2JqZWN0
KGdldERPTVN0cnVjdHVyZTxKU1JHQkNvbG9yPihleGVjLCBnbG9iYWxPYmplY3QpLCBnbG9iYWxP
YmplY3QpCiAgICAgLCBtX2NvbG9yKGNvbG9yKQogeworICAgIC8vIEZJWE1FOiBUaGlzIHNob3Vs
ZCBoYXZlIGEgcHJvdG90eXBlIChvciBiZXR0ZXIgeWV0LCBiZSBhdXRvZ2VuZXJhdGVkKQogfQog
CiBib29sIEpTUkdCQ29sb3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQpAQCAtNjEs
OSArNjAsOSBAQCBib29sIEpTUkdCQ29sb3I6OmdldE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUq
IGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TgogICAgIHJldHVybiBnZXRTdGF0aWNW
YWx1ZVNsb3Q8SlNSR0JDb2xvciwgRE9NT2JqZWN0PihleGVjLCAmSlNSR0JDb2xvclRhYmxlLCB0
aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCi1KU1ZhbHVlIGdldEpTUkdCQ29sb3IoRXhl
Y1N0YXRlKiBleGVjLCB1bnNpZ25lZCBjb2xvcikKK0pTVmFsdWUgZ2V0SlNSR0JDb2xvcihFeGVj
U3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGNv
bG9yKQogewotICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTUkdCQ29sb3IoZXhlYywgY29sb3IpOwor
ICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTUkdCQ29sb3IoZXhlYywgZ2xvYmFsT2JqZWN0LCBjb2xv
cik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNSR0JDb2xvci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmgK
aW5kZXggY2MyODcwZi4uOTRjMTgwMyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1JHQkNvbG9yLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmgKQEAgLTI5
LDcgKzI5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIC8vIEZJWE1FOiBKU1JHQkNvbG9y
IHNob3VsZCBoYXZlIGEgcHJvcGVyIHByb3RvdHlwZSBhbmQgYSBjb25zdHJ1Y3Rvci4KICAgICBj
bGFzcyBKU1JHQkNvbG9yIDogcHVibGljIERPTU9iamVjdCB7CiAgICAgcHVibGljOgotICAgICAg
ICBKU1JHQkNvbG9yKEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgY29sb3IpOworICAgICAgICBK
U1JHQkNvbG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBj
b2xvcik7CiAKICAgICAgICAgdmlydHVhbCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4
ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRlbnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAK
QEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB1bnNpZ25lZCBt
X2NvbG9yOwogICAgIH07CiAKLSAgICBKU0M6OkpTVmFsdWUgZ2V0SlNSR0JDb2xvcihKU0M6OkV4
ZWNTdGF0ZSosIHVuc2lnbmVkIGNvbG9yKTsKKyAgICBKU0M6OkpTVmFsdWUgZ2V0SlNSR0JDb2xv
cihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgY29sb3IpOwog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IuY3BwCmluZGV4IGM3ZmU0YTUuLjE4ZmZmYjEg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1
Y3Rvci5jcHAKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0
cnVjdG9yLmNwcApAQCAtMzUsMTAgKzM1LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29u
c3QgQ2xhc3NJbmZvIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIldl
YktpdENTU01hdHJpeENvbnN0cnVjdG9yIiwgMCwgMCwgMCB9OwogCi1KU1dlYktpdENTU01hdHJp
eENvbnN0cnVjdG9yOjpKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YykKLSAgICA6IERPTU9iamVjdChKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yOjpjcmVhdGVT
dHJ1Y3R1cmUoZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkp
CitKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yOjpKU1dlYktpdENTU01hdHJpeENvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAg
ICA6IERPTU9iamVjdChKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1
cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSksIGdsb2JhbE9iamVjdCkKIHsKLSAg
ICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNXZWJLaXRDU1NN
YXRyaXhQcm90b3R5cGU6OnNlbGYoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwg
Tm9uZSk7CisgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpT
V2ViS2l0Q1NTTWF0cml4UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUp
OwogICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihl
eGVjLCAxKSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3Rvci5oIGIvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yLmgKaW5kZXggZDBl
MGJkMS4uYWI5YzI4OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENT
U01hdHJpeENvbnN0cnVjdG9yLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdENT
U01hdHJpeENvbnN0cnVjdG9yLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBKU1dlYktpdENTU01hdHJpeENvbnN0cnVjdG9yIDogcHVibGljIERPTU9iamVj
dCB7CiBwdWJsaWM6Ci0gICAgSlNXZWJLaXRDU1NNYXRyaXhDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSopOworICAgIEpTV2ViS2l0Q1NTTWF0cml4Q29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUq
LCBKU0RPTUdsb2JhbE9iamVjdCopOwogICAgIHN0YXRpYyBjb25zdCBKU0M6OkNsYXNzSW5mbyBz
X2luZm87CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2Vi
S2l0UG9pbnRDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTV2ViS2l0UG9p
bnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggYzdkNGUzNi4uZDY0OThhMCAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmNwcApAQCAtMzYsMTAgKzM2
LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKIGNvbnN0IENsYXNzSW5mbyBKU1dlYktpdFBv
aW50Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIldlYktpdFBvaW50Q29uc3RydWN0b3IiLCAwLCAw
LCAwIH07CiAKLUpTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvcjo6SlNXZWJLaXRQb2ludENvbnN0cnVj
dG9yKEV4ZWNTdGF0ZSogZXhlYykKLSAgICA6IERPTU9iamVjdChKU1dlYktpdFBvaW50Q29uc3Ry
dWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVj
dFByb3RvdHlwZSgpKSkKK0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvcjo6SlNXZWJLaXRQb2ludENv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCkKKyAgICA6IERPTU9iamVjdChKU1dlYktpdFBvaW50Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogewot
ICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU1dlYktpdFBv
aW50UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSksIE5v
bmUpOworICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkucHJvdG90eXBlLCBKU1dl
YktpdFBvaW50UHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwogICAg
IHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJlcihleGVjLCAy
KSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0cnVjdG9yLmggYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV2ViS2l0UG9pbnRDb25zdHJ1Y3Rvci5oCmluZGV4IGE1YmI1YzEuLjFkYTFmMjIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXZWJLaXRQb2ludENvbnN0cnVjdG9y
LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dlYktpdFBvaW50Q29uc3RydWN0b3IuaApA
QCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEpTV2ViS2l0UG9p
bnRDb25zdHJ1Y3RvciA6IHB1YmxpYyBET01PYmplY3QgewogcHVibGljOgotICAgIEpTV2ViS2l0
UG9pbnRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSopOworICAgIEpTV2ViS2l0UG9pbnRDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CiAgICAgc3RhdGlj
IGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTV29ya2VyQ29uc3RydWN0b3IuY3BwCmluZGV4IDhlYTY3MTguLmMyOTM0OGIgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5jcHAKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmNwcApAQCAtNDEsMTAg
KzQxLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY29uc3QgQ2xhc3NJbmZvIEpTV29ya2Vy
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIldvcmtlckNvbnN0cnVjdG9yIiwgMCwgMCwgMCB9Owog
Ci1KU1dvcmtlckNvbnN0cnVjdG9yOjpKU1dvcmtlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhl
YykKLSAgICA6IERPTU9iamVjdChKU1dvcmtlckNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUo
ZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpLT5vYmplY3RQcm90b3R5cGUoKSkpCitKU1dvcmtl
ckNvbnN0cnVjdG9yOjpKU1dvcmtlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01H
bG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKKyAgICA6IERPTU9iamVjdChKU1dvcmtlckNvbnN0
cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFsT2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSks
IGdsb2JhbE9iamVjdCkKIHsKLSAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnBy
b3RvdHlwZSwgSlNXb3JrZXJQcm90b3R5cGU6OnNlbGYoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2Jh
bE9iamVjdCgpKSwgTm9uZSk7CisgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5w
cm90b3R5cGUsIEpTV29ya2VyUHJvdG90eXBlOjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5v
bmUpOwogICAgIHB1dERpcmVjdChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoLCBqc051bWJl
cihleGVjLCAxKSwgUmVhZE9ubHl8RG9udERlbGV0ZXxEb250RW51bSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNXb3JrZXJDb25zdHJ1Y3Rvci5oIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmgKaW5kZXggZDFkZjdlYi4uMWEwNmE1OSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmgKKysr
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1dvcmtlckNvbnN0cnVjdG9yLmgKQEAgLTM0LDcgKzM0
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgSlNXb3JrZXJDb25zdHJ1Y3Rv
ciA6IHB1YmxpYyBET01PYmplY3QgewogICAgIHB1YmxpYzoKLSAgICAgICAgSlNXb3JrZXJDb25z
dHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSopOworICAgICAgICBKU1dvcmtlckNvbnN0cnVjdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKIAogICAgICAgICBzdGF0aWMgY29u
c3QgSlNDOjpDbGFzc0luZm8gc19pbmZvOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvci5jcHAKaW5kZXggNjVjZGZjMi4uZDY5N2U4NSAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hNTEh0dHBSZXF1ZXN0Q29uc3RydWN0
b3IuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVj
dG9yLmNwcApAQCAtMzMsMTAgKzMzLDkgQEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU1hN
TEh0dHBSZXF1ZXN0Q29uc3RydWN0b3IpOwogY29uc3QgQ2xhc3NJbmZvIEpTWE1MSHR0cFJlcXVl
c3RDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3RvciIsIDAs
IDAsIDAgfTsKIAogSlNYTUxIdHRwUmVxdWVzdENvbnN0cnVjdG9yOjpKU1hNTEh0dHBSZXF1ZXN0
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0KQotICAgIDogRE9NT2JqZWN0KEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6Y3JlYXRl
U3RydWN0dXJlKGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkp
KQotICAgICwgbV9nbG9iYWxPYmplY3QoZ2xvYmFsT2JqZWN0KQorICAgIDogRE9NT2JqZWN0KEpT
WE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGdsb2JhbE9iamVjdC0+
b2JqZWN0UHJvdG90eXBlKCkpLCBnbG9iYWxPYmplY3QpCiB7Ci0gICAgcHV0RGlyZWN0KGV4ZWMt
PnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTWE1MSHR0cFJlcXVlc3RQcm90b3R5cGU6OnNl
bGYoZXhlYywgZXhlYy0+bGV4aWNhbEdsb2JhbE9iamVjdCgpKSwgTm9uZSk7CisgICAgcHV0RGly
ZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTWE1MSHR0cFJlcXVlc3RQcm90
b3R5cGU6OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7CiB9CiAKIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIEpTWE1MSHR0cFJlcXVlc3RDb25zdHJ1Y3Rvcjo6c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTWFNMVFBy
b2Nlc3NvckNvbnN0cnVjdG9yLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vz
c29yQ29uc3RydWN0b3IuY3BwCmluZGV4IDgwN2IwMTcuLjdiZjliZjcgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuY3BwCkBAIC00MSwx
MCArNDEsMTAgQEAgQVNTRVJUX0NMQVNTX0ZJVFNfSU5fQ0VMTChKU1hTTFRQcm9jZXNzb3JDb25z
dHJ1Y3Rvcik7CiAKIGNvbnN0IENsYXNzSW5mbyBKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3Rvcjo6
c19pbmZvID0geyAiWFNMVFByb2Nlc3NvckNvbnNydWN0b3IiLCAwLCAwLCAwIH07CiAKLUpTWFNM
VFByb2Nlc3NvckNvbnN0cnVjdG9yOjpKU1hTTFRQcm9jZXNzb3JDb25zdHJ1Y3RvcihFeGVjU3Rh
dGUqIGV4ZWMpCi0gICAgOiBET01PYmplY3QoSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3I6OmNy
ZWF0ZVN0cnVjdHVyZShleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCktPm9iamVjdFByb3RvdHlw
ZSgpKSkKK0pTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yOjpKU1hTTFRQcm9jZXNzb3JDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCisg
ICAgOiBET01PYmplY3QoSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVy
ZShnbG9iYWxPYmplY3QpLCBnbG9iYWxPYmplY3QpCiB7Ci0gICAgcHV0RGlyZWN0KGV4ZWMtPnBy
b3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsIEpTWFNMVFByb2Nlc3NvclByb3RvdHlwZTo6c2VsZihl
eGVjLCBleGVjLT5sZXhpY2FsR2xvYmFsT2JqZWN0KCkpLCBOb25lKTsKKyAgICBwdXREaXJlY3Qo
ZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlwZSwgSlNYU0xUUHJvY2Vzc29yUHJvdG90eXBl
OjpzZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwogfQogCiBzdGF0aWMgSlNPYmplY3Qq
IGNvbnN0cnVjdFhTTFRQcm9jZXNzb3IoRXhlY1N0YXRlKiBleGVjLCBKU09iamVjdCosIGNvbnN0
IEFyZ0xpc3QmKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNz
b3JDb25zdHJ1Y3Rvci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1hTTFRQcm9jZXNzb3JDb25z
dHJ1Y3Rvci5oCmluZGV4IDY0ZWY5NDQuLjc0ZmMzN2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3IuaAorKysgYi9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTWFNMVFByb2Nlc3NvckNvbnN0cnVjdG9yLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgY2xhc3MgSlNYU0xUUHJvY2Vzc29yQ29uc3RydWN0b3Ig
OiBwdWJsaWMgRE9NT2JqZWN0IHsKICAgICBwdWJsaWM6Ci0gICAgICAgIEpTWFNMVFByb2Nlc3Nv
ckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKik7CisgICAgICAgIEpTWFNMVFByb2Nlc3NvckNv
bnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqKTsKICAgICAgICAg
c3RhdGljIGNvbnN0IEpTQzo6Q2xhc3NJbmZvIHNfaW5mbzsKIAogICAgIHByaXZhdGU6CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtIGIvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQppbmRleCBkYmNmZmZmLi5l
ODdiNzQ3IDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0K
QEAgLTQyMCwxMCArNDIwLDEyIEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgICMgQ29uc3RydWN0
b3IKICAgICBpZiAoJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKICAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NOYW1lKFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1
cmU+LCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4sIEpTRE9NV2luZG93U2hlbGwqKTtcbiIpOworICAg
IH0gZWxzaWYgKCRpbnRlcmZhY2VOYW1lIGVxICJXb3JrZXJDb250ZXh0IikgeworICAgICAgICBw
dXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoUGFzc1JlZlB0cjxKU0M6OlN0cnVj
dHVyZT4sIFBhc3NSZWZQdHI8JGltcGxUeXBlPik7XG4iKTsKICAgICB9IGVsc2lmIChJc1NWR1R5
cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW1wbENsYXNzTmFtZSkpIHsKLSAgICAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NOYW1lKFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1
cmU+LCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4sIFNWR0VsZW1lbnQqIGNvbnRleHQpO1xuIik7Cisg
ICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShQYXNzUmVmUHRyPEpT
Qzo6U3RydWN0dXJlPiwgSlNET01HbG9iYWxPYmplY3QqLCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4s
IFNWR0VsZW1lbnQqIGNvbnRleHQpO1xuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NOYW1lKFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+
LCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4pO1xuIik7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRl
bnQsICIgICAgJGNsYXNzTmFtZShQYXNzUmVmUHRyPEpTQzo6U3RydWN0dXJlPiwgSlNET01HbG9i
YWxPYmplY3QqLCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4pO1xuIik7CiAgICAgfQogCiAgICAgIyBE
ZXN0cnVjdG9yCkBAIC01MjAsNyArNTIyLDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgcHVz
aChAaGVhZGVyQ29udGVudCwgIiAgICB2aXJ0dWFsIEpTQzo6SlNWYWx1ZSBsb29rdXBTZXR0ZXIo
SlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImIHByb3BlcnR5TmFtZSk7XG4i
KSBpZiAkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJDdXN0b21Mb29rdXBTZXR0ZXIi
fTsKIAogICAgICMgQ29uc3RydWN0b3Igb2JqZWN0IGdldHRlcgotICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgc3RhdGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNT
dGF0ZSopO1xuIikgaWYgJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiR2VuZXJhdGVD
b25zdHJ1Y3RvciJ9OworICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3RhdGljIEpTQzo6
SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6SlNHbG9iYWxPYmpl
Y3QqKTtcbiIpIGlmICRkYXRhTm9kZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IkdlbmVyYXRlQ29u
c3RydWN0b3IifTsKIAogICAgIG15ICRudW1DdXN0b21GdW5jdGlvbnMgPSAwOwogICAgIG15ICRu
dW1DdXN0b21BdHRyaWJ1dGVzID0gMDsKQEAgLTk4MCw2ICs5ODIsMTAgQEAgc3ViIEdlbmVyYXRl
SW1wbGVtZW50YXRpb24KICAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCJKU0RPTVdpbmRvd1No
ZWxsIik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9OjokY2xhc3NO
YW1lKFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBl
PiBpbXBsLCBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbClcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0dXJlLCBpbXBsLCBzaGVsbClc
biIpOworICAgIH0gZWlmICgkaW50ZXJmYWNlTmFtZSBlcSAiV29ya2VyQ29udGV4dCIpIHsKKyAg
ICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCJXb3JrZXJDb250ZXh0Iik7CisgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFBhc3NSZWZQdHI8U3RydWN0
dXJlPiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsKVxuIik7CisgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZShzdHJ1Y3R1cmUsIGlt
cGwpXG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBteSAkY29udGV4dEFyZyA9ICIiOwogICAg
ICAgICBpZiAoJG5lZWRzU1ZHQ29udGV4dCkgewpAQCAtOTg5LDExICs5OTUsMTEgQEAgc3ViIEdl
bmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICAkY29udGV4dEFyZyA9ICIsIFNW
R0VsZW1lbnQqIGNvbnRleHQiOwogICAgICAgICAgICAgfQogICAgICAgICB9Ci0gICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFBhc3NSZWZQdHI8U3Ry
dWN0dXJlPiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsJGNvbnRleHRBcmcp
XG4iKTsKKyAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIke2NsYXNzTmFtZX06OiRjbGFzc05h
bWUoUGFzc1JlZlB0cjxTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+IGltcGwkY29udGV4dEFyZylcbiIpOwog
ICAgICAgICBpZiAoJGhhc1BhcmVudCkgewotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwgaW1wbCIgLiAoJHBhcmVudE5lZWRz
U1ZHQ29udGV4dCA/ICIsIGNvbnRleHQiIDogIiIpIC4gIilcbiIpOworICAgICAgICAgICAgcHVz
aChAaW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwgZ2xvYmFs
T2JqZWN0LCBpbXBsIiAuICgkcGFyZW50TmVlZHNTVkdDb250ZXh0ID8gIiwgY29udGV4dCIgOiAi
IikgLiAiKVxuIik7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0dXJlKVxuIik7CisgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICA6ICRwYXJlbnRDbGFzc05hbWUoc3RydWN0dXJlLCBn
bG9iYWxPYmplY3QpXG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICwg
bV9jb250ZXh0KGNvbnRleHQpXG4iKSBpZiAkbmVlZHNTVkdDb250ZXh0OwogICAgICAgICAgICAg
cHVzaChAaW1wbENvbnRlbnQsICIgICAgLCBtX2ltcGwoaW1wbClcbiIpOyAgCiAgICAgICAgIH0K
QEAgLTExMzIsOCArMTEzOCw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAg
ICAgICAgICAgfSBlbHNpZiAoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlID1+IC9Db25zdHJ1
Y3RvciQvKSB7CiAgICAgICAgICAgICAgICAgICAgIG15ICRjb25zdHJ1Y3RvclR5cGUgPSAkY29k
ZUdlbmVyYXRvci0+U3RyaXBNb2R1bGUoJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT50eXBlKTsKICAg
ICAgICAgICAgICAgICAgICAgJGNvbnN0cnVjdG9yVHlwZSA9fiBzL0NvbnN0cnVjdG9yJC8vOwot
ICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBVTlVTRURfUEFSQU0o
c2xvdCk7XG4iKTsKLSAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
cmV0dXJuIEpTIiAuICRjb25zdHJ1Y3RvclR5cGUgLiAiOjpnZXRDb25zdHJ1Y3RvcihleGVjKTtc
biIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAkY2xhc3NO
YW1lKiBkb21PYmplY3QgPSBzdGF0aWNfY2FzdDwkY2xhc3NOYW1lKj4oYXNPYmplY3Qoc2xvdC5z
bG90QmFzZSgpKSk7XG4iKTsKKyAgICAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICIgICAgcmV0dXJuIEpTIiAuICRjb25zdHJ1Y3RvclR5cGUgLiAiOjpnZXRDb25zdHJ1Y3Rvcihl
eGVjLCBkb21PYmplY3QtPmdsb2JhbE9iamVjdCgpKTtcbiIpOwogICAgICAgICAgICAgICAgIH0g
ZWxzaWYgKCFAeyRhdHRyaWJ1dGUtPmdldHRlckV4Y2VwdGlvbnN9KSB7CiAgICAgICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIFVOVVNFRF9QQVJBTShleGVjKTtcbiIpOwog
ICAgICAgICAgICAgICAgICAgICBpZiAoJHBvZFR5cGUpIHsKQEAgLTExOTMsNyArMTE5OSw4IEBA
IHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIkpTVmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBl
eGVjLCBjb25zdCBJZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAgICAg
ICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICByZXR1cm4gc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+
KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpLT5nZXRDb25zdHJ1Y3RvcihleGVjKTtcbiIpOwor
ICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICR7Y2xhc3NOYW1lfSogZG9t
T2JqZWN0ID0gc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2Uo
KSkpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgcmV0dXJu
ICR7Y2xhc3NOYW1lfTo6Z2V0Q29uc3RydWN0b3IoZXhlYywgZG9tT2JqZWN0LT5nbG9iYWxPYmpl
Y3QoKSk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIn1cbiIpOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0xMzM4LDggKzEzNDUsOCBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgIH0KIAogICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0
cmlidXRlcy0+eyJHZW5lcmF0ZUNvbnN0cnVjdG9yIn0pIHsKLSAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICJKU1ZhbHVlICR7Y2xhc3NOYW1lfTo6Z2V0Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBl
eGVjKVxue1xuIik7Ci0gICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRE
T01Db25zdHJ1Y3Rvcjwke2NsYXNzTmFtZX1Db25zdHJ1Y3Rvcj4oZXhlYyk7XG4iKTsKKyAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJKU1ZhbHVlICR7Y2xhc3NOYW1lfTo6Z2V0Q29uc3RydWN0
b3IoRXhlY1N0YXRlKiBleGVjLCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KVxue1xuIik7
CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiBnZXRET01Db25zdHJ1Y3Rv
cjwke2NsYXNzTmFtZX1Db25zdHJ1Y3Rvcj4oZXhlYywgc3RhdGljX2Nhc3Q8SlNET01HbG9iYWxP
YmplY3QqPihnbG9iYWxPYmplY3QpKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
In1cblxuIik7CiAgICAgfQogCkBAIC0xNjkxLDcgKzE2OTgsNyBAQCBzdWIgTmF0aXZlVG9KU1Zh
bHVlCiAKICAgICBpZiAoJHR5cGUgZXEgIlJHQkNvbG9yIikgewogICAgICAgICAkaW1wbEluY2x1
ZGVzeyJKUyR0eXBlLmgifSA9IDE7Ci0gICAgICAgIHJldHVybiAiZ2V0SlNSR0JDb2xvcihleGVj
LCAkdmFsdWUpIjsKKyAgICAgICAgcmV0dXJuICJnZXRKU1JHQkNvbG9yKGV4ZWMsIGNhc3RlZFRo
aXNPYmotPmdsb2JhbE9iamVjdCgpLCAkdmFsdWUpIjsKICAgICB9CiAKICAgICBpZiAoJGNvZGVH
ZW5lcmF0b3ItPklzUG9kVHlwZSgkdHlwZSkpIHsKQEAgLTIwMjcsMTAgKzIwMzQsMTAgQEAgc3Vi
IGNvbnN0cnVjdG9yRm9yCiBteSAkaW1wbENvbnRlbnQgPSA8PCAiRU9GIjsKIGNsYXNzICR7Y2xh
c3NOYW1lfUNvbnN0cnVjdG9yIDogcHVibGljIERPTU9iamVjdCB7CiBwdWJsaWM6Ci0gICAgJHtj
bGFzc05hbWV9Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBleGVjKQotICAgICAgICA6IERPTU9iamVj
dCgke2NsYXNzTmFtZX1Db25zdHJ1Y3Rvcjo6Y3JlYXRlU3RydWN0dXJlKGV4ZWMtPmxleGljYWxH
bG9iYWxPYmplY3QoKS0+b2JqZWN0UHJvdG90eXBlKCkpKQorICAgICR7Y2xhc3NOYW1lfUNvbnN0
cnVjdG9yKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkK
KyAgICAgICAgOiBET01PYmplY3QoJHtjbGFzc05hbWV9Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVj
dHVyZShnbG9iYWxPYmplY3QtPm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogICAg
IHsKLSAgICAgICAgcHV0RGlyZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsICR7
cHJvdG9DbGFzc05hbWV9OjpzZWxmKGV4ZWMsIGV4ZWMtPmxleGljYWxHbG9iYWxPYmplY3QoKSks
IE5vbmUpOworICAgICAgICBwdXREaXJlY3QoZXhlYy0+cHJvcGVydHlOYW1lcygpLnByb3RvdHlw
ZSwgJHtwcm90b0NsYXNzTmFtZX06OnNlbGYoZXhlYywgZ2xvYmFsT2JqZWN0KSwgTm9uZSk7CiAg
ICAgfQogICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoRXhlY1N0YXRlKiwgY29u
c3QgSWRlbnRpZmllciYsIFByb3BlcnR5U2xvdCYpOwogICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJ
bmZvKiBjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAmc19pbmZvOyB9
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33233</attachid>
            <date>2009-07-21 17:44:57 -0700</date>
            <delta_ts>2009-07-23 17:58:40 -0700</delta_ts>
            <desc>Now compiles, just needs testing</desc>
            <filename>bug-27088-20090721174456.patch</filename>
            <type>text/plain</type>
            <size>22496</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQu
aCBiL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQuaAppbmRleCAz
MjgzMDkwLi41NzA1NDhkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTU9iamVj
dFdpdGhTVkdDb250ZXh0LmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01PYmplY3RXaXRo
U1ZHQ29udGV4dC5oCkBAIC00MCwxMSArNDAsMTEgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
ICAgICBTVkdFbGVtZW50KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgp
OyB9CiAKICAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIERPTU9iamVjdFdpdGhTVkdDb250ZXh0KFBh
c3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IHN0cnVjdHVyZSwgU1ZHRWxlbWVudCogY29udGV4dCkK
KyAgICAgICAgRE9NT2JqZWN0V2l0aFNWR0NvbnRleHQoUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVy
ZT4gc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCosIFNWR0VsZW1lbnQqIGNvbnRleHQpCiAg
ICAgICAgICAgICA6IERPTU9iamVjdChzdHJ1Y3R1cmUpCiAgICAgICAgICAgICAsIG1fY29udGV4
dChjb250ZXh0KQogICAgICAgICB7Ci0gICAgICAgICAgICAvLyBObyBzcGFjZSB0byBzdG9yZSB0
aGUgZ2xvYmFsT2JqZWN0IHcvbyBoaXR0aW5nIHRoZSBDRUxMX1NJWkUgbGltaXQuCisgICAgICAg
ICAgICAvLyBObyBzcGFjZSB0byBzdG9yZSB0aGUgSlNET01HbG9iYWxPYmplY3Qgdy9vIGhpdHRp
bmcgdGhlIENFTExfU0laRSBsaW1pdC4KICAgICAgICAgfQogCiAgICAgcHJvdGVjdGVkOiAvLyBG
SVhNRTogTWFueSBjdXN0b20gYmluZGluZ3MgdXNlIG1fY29udGV4dCBkaXJlY3RseS4gIE1ha2lu
ZyB0aGlzIHByb3RlY3RlZCB0byB0ZW1wb3JhcmlsaXkgcmVkdWNlIGNvZGUgY2h1cm4uCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUJpbmRpbmcuaAppbmRleCBlMzE3MjlkLi5jODYzODM5IDEwMDY0NAotLS0g
YS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQmluZGluZy5oCisrKyBiL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01CaW5kaW5nLmgKQEAgLTE3Myw3ICsxNzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgIEFTU0VSVChvYmplY3QpOwogICAgICAgICBBU1NFUlQoIWdldENhY2hlZERP
TU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBvYmplY3QpKTsKICAgICAgICAgLy8g
RklYTUU6IG5ldyAoZXhlYykgY291bGQgdXNlIGEgZGlmZmVyZW50IGdsb2JhbERhdGEgdGhhbiB0
aGUgZ2xvYmFsRGF0YSB0aGlzIHdyYXBwZXIgaXMgY2FjaGVkIG9uLgotICAgICAgICBXcmFwcGVy
Q2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhkZXByZWNhdGVkR2V0RE9N
U3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYyksIG9iamVjdCk7CisgICAgICAgIFdyYXBwZXJD
bGFzcyogd3JhcHBlciA9IG5ldyAoZXhlYykgV3JhcHBlckNsYXNzKGRlcHJlY2F0ZWRHZXRET01T
dHJ1Y3R1cmU8V3JhcHBlckNsYXNzPihleGVjKSwgZGVwcmVjYXRlZEdsb2JhbE9iamVjdEZvclBy
b3RvdHlwZShleGVjKSwgb2JqZWN0KTsKICAgICAgICAgY2FjaGVET01PYmplY3RXcmFwcGVyKGV4
ZWMtPmdsb2JhbERhdGEoKSwgb2JqZWN0LCB3cmFwcGVyKTsKICAgICAgICAgcmV0dXJuIHdyYXBw
ZXI7CiAgICAgfQpAQCAtMTkyLDcgKzE5Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICB7
CiAgICAgICAgIEFTU0VSVChvYmplY3QpOwogICAgICAgICBBU1NFUlQoIWdldENhY2hlZERPTU9i
amVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBvYmplY3QpKTsKLSAgICAgICAgV3JhcHBl
ckNsYXNzKiB3cmFwcGVyID0gbmV3IChleGVjKSBXcmFwcGVyQ2xhc3MoZGVwcmVjYXRlZEdldERP
TVN0cnVjdHVyZTxXcmFwcGVyQ2xhc3M+KGV4ZWMpLCBvYmplY3QsIGNvbnRleHQpOworICAgICAg
ICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhkZXByZWNh
dGVkR2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYyksIGRlcHJlY2F0ZWRHbG9iYWxP
YmplY3RGb3JQcm90b3R5cGUoZXhlYyksIG9iamVjdCwgY29udGV4dCk7CiAgICAgICAgIGNhY2hl
RE9NT2JqZWN0V3JhcHBlcihleGVjLT5nbG9iYWxEYXRhKCksIG9iamVjdCwgd3JhcHBlcik7CiAg
ICAgICAgIHJldHVybiB3cmFwcGVyOwogICAgIH0KQEAgLTIxMSw3ICsyMTEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgewogICAgICAgICBBU1NFUlQobm9kZSk7CiAgICAgICAgIEFTU0VS
VCghZ2V0Q2FjaGVkRE9NTm9kZVdyYXBwZXIobm9kZS0+ZG9jdW1lbnQoKSwgbm9kZSkpOwotICAg
ICAgICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhkZXBy
ZWNhdGVkR2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYyksIG5vZGUpOworICAgICAg
ICBXcmFwcGVyQ2xhc3MqIHdyYXBwZXIgPSBuZXcgKGV4ZWMpIFdyYXBwZXJDbGFzcyhkZXByZWNh
dGVkR2V0RE9NU3RydWN0dXJlPFdyYXBwZXJDbGFzcz4oZXhlYyksIGRlcHJlY2F0ZWRHbG9iYWxP
YmplY3RGb3JQcm90b3R5cGUoZXhlYyksIG5vZGUpOwogICAgICAgICAvLyBGSVhNRTogVGhlIGVu
dGlyZSBmdW5jdGlvbiBjYW4gYmUgcmVtb3ZlZCwgb25jZSB3ZSBmaXggY2FjaGluZy4KICAgICAg
ICAgLy8gVGhpcyBmdW5jdGlvbiBpcyBhIG9uZS1vZmYgaGFjayB0byBtYWtlIE5vZGVzIGNhY2hl
IGluIHRoZSByaWdodCBnbG9iYWwgb2JqZWN0LgogICAgICAgICBjYWNoZURPTU5vZGVXcmFwcGVy
KG5vZGUtPmRvY3VtZW50KCksIG5vZGUsIHdyYXBwZXIpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTUdsb2JhbE9iamVjdC5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TUdsb2JhbE9iamVjdC5oCmluZGV4IGExYTE2MTYuLmJjNmMxZjIgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01HbG9iYWxPYmplY3QuaAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NR2xvYmFsT2JqZWN0LmgKQEAgLTY3LDYgKzY3LDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIEpTTGlzdGVuZXJzTWFwJiBqc0V2ZW50TGlzdGVuZXJzKCk7CiAKKyAg
ICAgICAgLy8gTWFrZSBiaW5kaW5nIGNvZGUgZ2VuZXJhdGlvbiBlYXNpZXIuCisgICAgICAgIEpT
RE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QoKSB7IHJldHVybiB0aGlzOyB9CisKICAgICAg
ICAgdm9pZCBzZXRDdXJyZW50RXZlbnQoRXZlbnQqKTsKICAgICAgICAgRXZlbnQqIGN1cnJlbnRF
dmVudCgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
CmluZGV4IDA5MzZmMTEuLjMzYWM3YmIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwCkBAIC0zNTksNyArMzU5LDggQEAgSlNWYWx1ZSBKU0RPTVdpbmRvdzo6aGlz
dG9yeShFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgaWYgKERPTU9iamVjdCogd3JhcHBlciA9
IGdldENhY2hlZERPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBoaXN0b3J5KSkK
ICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKLSAgICBKU0hpc3RvcnkqIGpzSGlzdG9yeSA9IG5l
dyAoZXhlYykgSlNIaXN0b3J5KGdldERPTVN0cnVjdHVyZTxKU0hpc3Rvcnk+KGV4ZWMsIGNvbnN0
X2Nhc3Q8SlNET01XaW5kb3cqPih0aGlzKSksIGhpc3RvcnkpOworICAgIEpTRE9NV2luZG93KiB3
aW5kb3cgPSBjb25zdF9jYXN0PEpTRE9NV2luZG93Kj4odGhpcyk7CisgICAgSlNIaXN0b3J5KiBq
c0hpc3RvcnkgPSBuZXcgKGV4ZWMpIEpTSGlzdG9yeShnZXRET01TdHJ1Y3R1cmU8SlNIaXN0b3J5
PihleGVjLCB3aW5kb3cpLCB3aW5kb3csIGhpc3RvcnkpOwogICAgIGNhY2hlRE9NT2JqZWN0V3Jh
cHBlcihleGVjLT5nbG9iYWxEYXRhKCksIGhpc3RvcnksIGpzSGlzdG9yeSk7CiAgICAgcmV0dXJu
IGpzSGlzdG9yeTsKIH0KQEAgLTM3MCw3ICszNzEsOCBAQCBKU1ZhbHVlIEpTRE9NV2luZG93Ojps
b2NhdGlvbihFeGVjU3RhdGUqIGV4ZWMpIGNvbnN0CiAgICAgaWYgKERPTU9iamVjdCogd3JhcHBl
ciA9IGdldENhY2hlZERPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBsb2NhdGlv
bikpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCi0gICAgSlNMb2NhdGlvbioganNMb2NhdGlv
biA9IG5ldyAoZXhlYykgSlNMb2NhdGlvbihnZXRET01TdHJ1Y3R1cmU8SlNMb2NhdGlvbj4oZXhl
YywgY29uc3RfY2FzdDxKU0RPTVdpbmRvdyo+KHRoaXMpKSwgbG9jYXRpb24pOworICAgIEpTRE9N
V2luZG93KiB3aW5kb3cgPSBjb25zdF9jYXN0PEpTRE9NV2luZG93Kj4odGhpcyk7CisgICAgSlNM
b2NhdGlvbioganNMb2NhdGlvbiA9IG5ldyAoZXhlYykgSlNMb2NhdGlvbihnZXRET01TdHJ1Y3R1
cmU8SlNMb2NhdGlvbj4oZXhlYywgd2luZG93KSwgd2luZG93LCBsb2NhdGlvbik7CiAgICAgY2Fj
aGVET01PYmplY3RXcmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgbG9jYXRpb24sIGpzTG9jYXRp
b24pOwogICAgIHJldHVybiBqc0xvY2F0aW9uOwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcCBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNEb2N1
bWVudEN1c3RvbS5jcHAKaW5kZXggOTU2MzI3YS4uNDRlZjk3YiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0RvY3VtZW50Q3VzdG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRG9jdW1lbnRDdXN0b20uY3BwCkBAIC01Niw4ICs1Niw3IEBAIEpTVmFsdWUgSlNEb2N1
bWVudDo6bG9jYXRpb24oRXhlY1N0YXRlKiBleGVjKSBjb25zdAogICAgIGlmIChET01PYmplY3Qq
IHdyYXBwZXIgPSBnZXRDYWNoZWRET01PYmplY3RXcmFwcGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwg
bG9jYXRpb24pKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIAotICAgIEpTRE9NV2luZG93KiB3
aW5kb3cgPSBzdGF0aWNfY2FzdDxKU0RPTVdpbmRvdyo+KGV4ZWMtPmxleGljYWxHbG9iYWxPYmpl
Y3QoKSk7Ci0gICAgSlNMb2NhdGlvbioganNMb2NhdGlvbiA9IG5ldyAoZXhlYykgSlNMb2NhdGlv
bihnZXRET01TdHJ1Y3R1cmU8SlNMb2NhdGlvbj4oZXhlYywgd2luZG93KSwgbG9jYXRpb24pOwor
ICAgIEpTTG9jYXRpb24qIGpzTG9jYXRpb24gPSBuZXcgKGV4ZWMpIEpTTG9jYXRpb24oZ2V0RE9N
U3RydWN0dXJlPEpTTG9jYXRpb24+KGV4ZWMsIGdsb2JhbE9iamVjdCgpKSwgZ2xvYmFsT2JqZWN0
KCksIGxvY2F0aW9uKTsKICAgICBjYWNoZURPTU9iamVjdFdyYXBwZXIoZXhlYy0+Z2xvYmFsRGF0
YSgpLCBsb2NhdGlvbiwganNMb2NhdGlvbik7CiAgICAgcmV0dXJuIGpzTG9jYXRpb247CiB9CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEFsbENvbGxlY3Rpb24uaCBiL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVjdGlvbi5oCmluZGV4IGQ1NTlkM2IuLjcz
NjNlNWMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVjdGlv
bi5oCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MQWxsQ29sbGVjdGlvbi5oCkBAIC0z
NSw4ICszNSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIEpTSFRNTEFsbENv
bGxlY3Rpb24gOiBwdWJsaWMgSlNIVE1MQ29sbGVjdGlvbiB7CiAgICAgcHVibGljOgotICAgICAg
ICBKU0hUTUxBbGxDb2xsZWN0aW9uKFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+IHN0cnVjdHVy
ZSwgUGFzc1JlZlB0cjxIVE1MQ29sbGVjdGlvbj4gY29sbGVjdGlvbikKLSAgICAgICAgICAgIDog
SlNIVE1MQ29sbGVjdGlvbihzdHJ1Y3R1cmUsIGNvbGxlY3Rpb24pCisgICAgICAgIEpTSFRNTEFs
bENvbGxlY3Rpb24oUGFzc1JlZlB0cjxKU0M6OlN0cnVjdHVyZT4gc3RydWN0dXJlLCBKU0RPTUds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBQYXNzUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiBjb2xs
ZWN0aW9uKQorICAgICAgICAgICAgOiBKU0hUTUxDb2xsZWN0aW9uKHN0cnVjdHVyZSwgZ2xvYmFs
T2JqZWN0LCBjb2xsZWN0aW9uKQogICAgICAgICB7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3VzdG9tLmNwcCBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNIVE1MQ29sbGVjdGlvbkN1c3RvbS5jcHAKaW5kZXggNDEwMDQ2OC4uMDI3
NGFjZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxDb2xsZWN0aW9uQ3Vz
dG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTENvbGxlY3Rpb25DdXN0b20u
Y3BwCkBAIC0zNSwxMCArMzUsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIEpTQzsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1zdGF0aWMgSlNWYWx1ZSBnZXROYW1lZEl0ZW1zKEV4ZWNTdGF0ZSogZXhl
YywgSFRNTENvbGxlY3Rpb24qIGltcGwsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkK
K3N0YXRpYyBKU1ZhbHVlIGdldE5hbWVkSXRlbXMoRXhlY1N0YXRlKiBleGVjLCBKU0hUTUxDb2xs
ZWN0aW9uKiBjb2xsZWN0aW9uLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IG5hbWVkSXRlbXM7Ci0gICAgaW1wbC0+bmFtZWRJdGVt
cyhwcm9wZXJ0eU5hbWUsIG5hbWVkSXRlbXMpOworICAgIGNvbGxlY3Rpb24tPmltcGwoKS0+bmFt
ZWRJdGVtcyhwcm9wZXJ0eU5hbWUsIG5hbWVkSXRlbXMpOwogCiAgICAgaWYgKG5hbWVkSXRlbXMu
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKQEAgLTQ2LDcgKzQ2LDcg
QEAgc3RhdGljIEpTVmFsdWUgZ2V0TmFtZWRJdGVtcyhFeGVjU3RhdGUqIGV4ZWMsIEhUTUxDb2xs
ZWN0aW9uKiBpbXBsLCBjb25zdCBJZGVudGkKICAgICBpZiAobmFtZWRJdGVtcy5zaXplKCkgPT0g
MSkKICAgICAgICAgcmV0dXJuIHRvSlMoZXhlYywgbmFtZWRJdGVtc1swXS5nZXQoKSk7CiAKLSAg
ICByZXR1cm4gbmV3IChleGVjKSBKU05hbWVkTm9kZXNDb2xsZWN0aW9uKGV4ZWMsIG5hbWVkSXRl
bXMpOworICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTTmFtZWROb2Rlc0NvbGxlY3Rpb24oZXhlYywg
Y29sbGVjdGlvbi0+Z2xvYmFsT2JqZWN0KCksIG5hbWVkSXRlbXMpOwogfQogCiAvLyBIVE1MQ29s
bGVjdGlvbnMgYXJlIHN0cmFuZ2Ugb2JqZWN0cywgdGhleSBzdXBwb3J0IGJvdGggZ2V0IGFuZCBj
YWxsLApAQCAtNTcsNyArNTcsOCBAQCBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxI
VE1MQ29sbGVjdGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBmdW5jdAogICAgICAgICBy
ZXR1cm4ganNVbmRlZmluZWQoKTsKIAogICAgIC8vIERvIG5vdCB1c2UgdGhpc09iaiBoZXJlLiBJ
dCBjYW4gYmUgdGhlIEpTSFRNTERvY3VtZW50LCBpbiB0aGUgZG9jdW1lbnQuZm9ybXMoaSkgY2Fz
ZS4KLSAgICBIVE1MQ29sbGVjdGlvbiogY29sbGVjdGlvbiA9IHN0YXRpY19jYXN0PEpTSFRNTENv
bGxlY3Rpb24qPihmdW5jdGlvbiktPmltcGwoKTsKKyAgICBKU0hUTUxDb2xsZWN0aW9uKiBqc0Nv
bGxlY3Rpb24gPSBzdGF0aWNfY2FzdDxKU0hUTUxDb2xsZWN0aW9uKj4oZnVuY3Rpb24pOworICAg
IEhUTUxDb2xsZWN0aW9uKiBjb2xsZWN0aW9uID0ganNDb2xsZWN0aW9uLT5pbXBsKCk7CiAKICAg
ICAvLyBBbHNvLCBkbyB3ZSBuZWVkIHRoZSBUeXBlRXJyb3IgdGVzdCBoZXJlID8KIApAQCAtNzAs
NyArNzEsNyBAQCBzdGF0aWMgSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGNhbGxIVE1MQ29sbGVjdGlv
bihFeGVjU3RhdGUqIGV4ZWMsIEpTT2JqZWN0KiBmdW5jdAogICAgICAgICAgICAgcmV0dXJuIHRv
SlMoZXhlYywgY29sbGVjdGlvbi0+aXRlbShpbmRleCkpOwogCiAgICAgICAgIC8vIFN1cHBvcnQg
Zm9yIGRvY3VtZW50LmltYWdlcygnPG5hbWU+JykgZXRjLgotICAgICAgICByZXR1cm4gZ2V0TmFt
ZWRJdGVtcyhleGVjLCBjb2xsZWN0aW9uLCBJZGVudGlmaWVyKGV4ZWMsIHN0cmluZykpOworICAg
ICAgICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhleGVjLCBqc0NvbGxlY3Rpb24sIElkZW50aWZpZXIo
ZXhlYywgc3RyaW5nKSk7CiAgICAgfQogCiAgICAgLy8gVGhlIHNlY29uZCBhcmcsIGlmIHNldCwg
aXMgdGhlIGluZGV4IG9mIHRoZSBpdGVtIHdlIHdhbnQKQEAgLTk3LDE1ICs5OCwxNyBAQCBDYWxs
VHlwZSBKU0hUTUxDb2xsZWN0aW9uOjpnZXRDYWxsRGF0YShDYWxsRGF0YSYgY2FsbERhdGEpCiAg
ICAgcmV0dXJuIENhbGxUeXBlSG9zdDsKIH0KIAotYm9vbCBKU0hUTUxDb2xsZWN0aW9uOjpjYW5H
ZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiBleGVjLCBIVE1MQ29sbGVjdGlvbiogdGhpc09iaiwg
Y29uc3QgSWRlbnRpZmllciYgcHJvcGVydHlOYW1lKQorYm9vbCBKU0hUTUxDb2xsZWN0aW9uOjpj
YW5HZXRJdGVtc0Zvck5hbWUoRXhlY1N0YXRlKiwgSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24s
IGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSkKIHsKLSAgICByZXR1cm4gIWdldE5hbWVk
SXRlbXMoZXhlYywgdGhpc09iaiwgcHJvcGVydHlOYW1lKS5pc1VuZGVmaW5lZCgpOworICAgIFZl
Y3RvcjxSZWZQdHI8Tm9kZT4gPiBuYW1lZEl0ZW1zOworICAgIGNvbGxlY3Rpb24tPm5hbWVkSXRl
bXMocHJvcGVydHlOYW1lLCBuYW1lZEl0ZW1zKTsKKyAgICByZXR1cm4gIW5hbWVkSXRlbXMuaXNF
bXB0eSgpOwogfQogCiBKU1ZhbHVlIEpTSFRNTENvbGxlY3Rpb246Om5hbWVHZXR0ZXIoRXhlY1N0
YXRlKiBleGVjLCBjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5
U2xvdCYgc2xvdCkKIHsKICAgICBKU0hUTUxDb2xsZWN0aW9uKiB0aGlzT2JqID0gc3RhdGljX2Nh
c3Q8SlNIVE1MQ29sbGVjdGlvbio+KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpOwotICAgIHJl
dHVybiBnZXROYW1lZEl0ZW1zKGV4ZWMsIHRoaXNPYmotPmltcGwoKSwgcHJvcGVydHlOYW1lKTsK
KyAgICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhleGVjLCB0aGlzT2JqLCBwcm9wZXJ0eU5hbWUpOwog
fQogCiBKU1ZhbHVlIEpTSFRNTENvbGxlY3Rpb246Oml0ZW0oRXhlY1N0YXRlKiBleGVjLCBjb25z
dCBBcmdMaXN0JiBhcmdzKQpAQCAtMTE0LDEyICsxMTcsMTIgQEAgSlNWYWx1ZSBKU0hUTUxDb2xs
ZWN0aW9uOjppdGVtKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgQXJnTGlzdCYgYXJncykKICAgICB1
aW50MzJfdCBpbmRleCA9IGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYykudG9VSW50MzIoJm9rLCBm
YWxzZSk7CiAgICAgaWYgKG9rKQogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBpbXBsKCktPml0
ZW0oaW5kZXgpKTsKLSAgICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhleGVjLCBpbXBsKCksIElkZW50
aWZpZXIoZXhlYywgYXJncy5hdCgwKS50b1N0cmluZyhleGVjKSkpOworICAgIHJldHVybiBnZXRO
YW1lZEl0ZW1zKGV4ZWMsIHRoaXMsIElkZW50aWZpZXIoZXhlYywgYXJncy5hdCgwKS50b1N0cmlu
ZyhleGVjKSkpOwogfQogCiBKU1ZhbHVlIEpTSFRNTENvbGxlY3Rpb246Om5hbWVkSXRlbShFeGVj
U3RhdGUqIGV4ZWMsIGNvbnN0IEFyZ0xpc3QmIGFyZ3MpCiB7Ci0gICAgcmV0dXJuIGdldE5hbWVk
SXRlbXMoZXhlYywgaW1wbCgpLCBJZGVudGlmaWVyKGV4ZWMsIGFyZ3MuYXQoMCkudG9TdHJpbmco
ZXhlYykpKTsKKyAgICByZXR1cm4gZ2V0TmFtZWRJdGVtcyhleGVjLCB0aGlzLCBJZGVudGlmaWVy
KGV4ZWMsIGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYykpKTsKIH0KIAogSlNWYWx1ZSB0b0pTKEV4
ZWNTdGF0ZSogZXhlYywgSFRNTENvbGxlY3Rpb24qIGNvbGxlY3Rpb24pCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZvcm1FbGVtZW50Q3VzdG9tLmNwcCBiL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRDdXN0b20uY3BwCmluZGV4IGU1YjQyOGEuLmZm
YTJkNTcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRD
dXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRm9ybUVsZW1lbnRDdXN0
b20uY3BwCkBAIC00NSw3ICs0NSw4IEBAIGJvb2wgSlNIVE1MRm9ybUVsZW1lbnQ6OmNhbkdldEl0
ZW1zRm9yTmFtZShFeGVjU3RhdGUqLCBIVE1MRm9ybUVsZW1lbnQqIGZvcm0sIGNvCiAKIEpTVmFs
dWUgSlNIVE1MRm9ybUVsZW1lbnQ6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKLSAg
ICBIVE1MRm9ybUVsZW1lbnQqIGZvcm0gPSBzdGF0aWNfY2FzdDxIVE1MRm9ybUVsZW1lbnQqPihz
dGF0aWNfY2FzdDxKU0hUTUxFbGVtZW50Kj4oYXNPYmplY3Qoc2xvdC5zbG90QmFzZSgpKSktPmlt
cGwoKSk7CisgICAgSlNIVE1MRWxlbWVudCoganNGb3JtID0gc3RhdGljX2Nhc3Q8SlNIVE1MRm9y
bUVsZW1lbnQqPihhc09iamVjdChzbG90LnNsb3RCYXNlKCkpKTsKKyAgICBIVE1MRm9ybUVsZW1l
bnQqIGZvcm0gPSBzdGF0aWNfY2FzdDxIVE1MRm9ybUVsZW1lbnQqPihqc0Zvcm0tPmltcGwoKSk7
CiAgICAgCiAgICAgVmVjdG9yPFJlZlB0cjxOb2RlPiA+IG5hbWVkSXRlbXM7CiAgICAgZm9ybS0+
Z2V0TmFtZWRFbGVtZW50cyhwcm9wZXJ0eU5hbWUsIG5hbWVkSXRlbXMpOwpAQCAtNTMsNyArNTQs
NyBAQCBKU1ZhbHVlIEpTSFRNTEZvcm1FbGVtZW50OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhl
YywgY29uc3QgSWRlbnRpZmllciYgcHJvcGVydAogICAgIGlmIChuYW1lZEl0ZW1zLnNpemUoKSA9
PSAxKQogICAgICAgICByZXR1cm4gdG9KUyhleGVjLCBuYW1lZEl0ZW1zWzBdLmdldCgpKTsKICAg
ICBpZiAobmFtZWRJdGVtcy5zaXplKCkgPiAxKSAKLSAgICAgICAgcmV0dXJuIG5ldyAoZXhlYykg
SlNOYW1lZE5vZGVzQ29sbGVjdGlvbihleGVjLCBuYW1lZEl0ZW1zKTsKKyAgICAgICAgcmV0dXJu
IG5ldyAoZXhlYykgSlNOYW1lZE5vZGVzQ29sbGVjdGlvbihleGVjLCBqc0Zvcm0tPmdsb2JhbE9i
amVjdCgpLCBuYW1lZEl0ZW1zKTsKICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9uLmNwcCBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNOYW1lZE5vZGVzQ29sbGVjdGlvbi5jcHAKaW5kZXggYWYx
OTk1Yi4uMzMyM2VlMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9k
ZXNDb2xsZWN0aW9uLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTTmFtZWROb2Rlc0Nv
bGxlY3Rpb24uY3BwCkBAIC00MiwxMCArNDIsOCBAQCBjb25zdCBDbGFzc0luZm8gSlNOYW1lZE5v
ZGVzQ29sbGVjdGlvbjo6c19pbmZvID0geyAiQ29sbGVjdGlvbiIsIDAsIDAsIDAgfTsKIC8vIFN1
Y2ggYSBjb2xsZWN0aW9uIGlzIHVzdWFsbHkgdmVyeSBzaG9ydC1saXZlZCwgaXQgb25seSBleGlz
dHMKIC8vIGZvciBjb25zdHJ1Y3RzIGxpa2UgZG9jdW1lbnQuZm9ybXMuPG5hbWU+WzFdLAogLy8g
c28gaXQgc2hvdWxkbid0IGJlIGEgcHJvYmxlbSB0aGF0IGl0J3Mgc3RvcmluZyBhbGwgdGhlIG5v
ZGVzICh3aXRoIHRoZSBzYW1lIG5hbWUpLiAoRGF2aWQpCi1KU05hbWVkTm9kZXNDb2xsZWN0aW9u
OjpKU05hbWVkTm9kZXNDb2xsZWN0aW9uKEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgVmVjdG9yPFJl
ZlB0cjxOb2RlPiA+JiBub2RlcykKLSAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVj
dHVyZSB1c2VzIHRoZSBwcm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0Ci0g
ICAgLy8gd2Ugc2hvdWxkIHVzZSB0aGUgZ2xvYmFsIG9iamVjdCBmcm9tIHRoZSBub2Rlcy4KLSAg
ICA6IERPTU9iamVjdChkZXByZWNhdGVkR2V0RE9NU3RydWN0dXJlPEpTTmFtZWROb2Rlc0NvbGxl
Y3Rpb24+KGV4ZWMpKQorSlNOYW1lZE5vZGVzQ29sbGVjdGlvbjo6SlNOYW1lZE5vZGVzQ29sbGVj
dGlvbihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIGNv
bnN0IFZlY3RvcjxSZWZQdHI8Tm9kZT4gPiYgbm9kZXMpCisgICAgOiBET01PYmplY3RXaXRoR2xv
YmFsUG9pbnRlcihnZXRET01TdHJ1Y3R1cmU8SlNOYW1lZE5vZGVzQ29sbGVjdGlvbj4oZXhlYywg
Z2xvYmFsT2JqZWN0KSwgZ2xvYmFsT2JqZWN0KQogICAgICwgbV9ub2RlcyhuZXcgVmVjdG9yPFJl
ZlB0cjxOb2RlPiA+KG5vZGVzKSkKIHsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNOYW1lZE5vZGVzQ29sbGVjdGlvbi5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU05hbWVk
Tm9kZXNDb2xsZWN0aW9uLmgKaW5kZXggM2JiYzEwMi4uY2Q2YzJjYiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9uLmgKKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU05hbWVkTm9kZXNDb2xsZWN0aW9uLmgKQEAgLTM1LDkgKzM1LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiAgICAgLy8gSW50ZXJuYWwgY2xhc3MsIHVzZWQgZm9yIHRoZSBj
b2xsZWN0aW9uIHJldHVybiBieSBlLmcuIGRvY3VtZW50LmZvcm1zLm15aW5wdXQKICAgICAvLyB3
aGVuIG11bHRpcGxlIG5vZGVzIGhhdmUgdGhlIHNhbWUgbmFtZS4KLSAgICBjbGFzcyBKU05hbWVk
Tm9kZXNDb2xsZWN0aW9uIDogcHVibGljIERPTU9iamVjdCB7CisgICAgY2xhc3MgSlNOYW1lZE5v
ZGVzQ29sbGVjdGlvbiA6IHB1YmxpYyBET01PYmplY3RXaXRoR2xvYmFsUG9pbnRlciB7CiAgICAg
cHVibGljOgotICAgICAgICBKU05hbWVkTm9kZXNDb2xsZWN0aW9uKEpTQzo6RXhlY1N0YXRlKiwg
Y29uc3QgVmVjdG9yPFJlZlB0cjxOb2RlPiA+Jik7CisgICAgICAgIEpTTmFtZWROb2Rlc0NvbGxl
Y3Rpb24oSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIGNvbnN0IFZlY3RvcjxS
ZWZQdHI8Tm9kZT4gPiYpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNDOjpFeGVjU3RhdGUqLCBjb25zdCBKU0M6OklkZW50aWZpZXImLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUkdCQ29sb3IuY3Bw
IGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmNwcAppbmRleCBjNDMwZDVmLi40NDgy
NzMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTUkdCQ29sb3IuY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNSR0JDb2xvci5jcHAKQEAgLTQ4LDEyICs0OCwxMSBAQCBB
U1NFUlRfQ0xBU1NfRklUU19JTl9DRUxMKEpTUkdCQ29sb3IpOwogCiBjb25zdCBDbGFzc0luZm8g
SlNSR0JDb2xvcjo6c19pbmZvID0geyAiUkdCQ29sb3IiLCAwLCAmSlNSR0JDb2xvclRhYmxlLCAw
IH07CiAKLUpTUkdCQ29sb3I6OkpTUkdCQ29sb3IoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBj
b2xvcikKLSAgICAvLyBGSVhNRTogZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZSB1c2VzIHRoZSBw
cm90b3R5cGUgb2ZmIG9mIHRoZSB3cm9uZyBnbG9iYWwgb2JqZWN0Ci0gICAgLy8gVGhpcyB3aWxs
IGJlIGZpeGVkIHdoZW4gSlNSR0JDb2xvciB3cmFwcyBjc3MvUkdCQ29sb3IgaW5zdGVhZCBvZiBi
ZWluZyBjdXN0b20uCi0gICAgOiBET01PYmplY3QoZGVwcmVjYXRlZEdldERPTVN0cnVjdHVyZTxK
U1JHQkNvbG9yPihleGVjKSkKK0pTUkdCQ29sb3I6OkpTUkdCQ29sb3IoRXhlY1N0YXRlKiBleGVj
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBjb2xvcikKKyAgICA6
IERPTU9iamVjdFdpdGhHbG9iYWxQb2ludGVyKGdldERPTVN0cnVjdHVyZTxKU1JHQkNvbG9yPihl
eGVjLCBnbG9iYWxPYmplY3QpLCBnbG9iYWxPYmplY3QpCiAgICAgLCBtX2NvbG9yKGNvbG9yKQog
eworICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBoYXZlIGEgcHJvdG90eXBlIChvciBiZXR0ZXIg
eWV0LCBiZSBhdXRvZ2VuZXJhdGVkKQogfQogCiBib29sIEpTUkdCQ29sb3I6OmdldE93blByb3Bl
cnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQpAQCAtNjEsOSArNjAsOSBAQCBib29sIEpTUkdCQ29sb3I6Omdl
dE93blByb3BlcnR5U2xvdChFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IElkZW50aWZpZXImIHByb3Bl
cnR5TgogICAgIHJldHVybiBnZXRTdGF0aWNWYWx1ZVNsb3Q8SlNSR0JDb2xvciwgRE9NT2JqZWN0
PihleGVjLCAmSlNSR0JDb2xvclRhYmxlLCB0aGlzLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQog
Ci1KU1ZhbHVlIGdldEpTUkdCQ29sb3IoRXhlY1N0YXRlKiBleGVjLCB1bnNpZ25lZCBjb2xvcikK
K0pTVmFsdWUgZ2V0SlNSR0JDb2xvcihFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0
KiBnbG9iYWxPYmplY3QsIHVuc2lnbmVkIGNvbG9yKQogewotICAgIHJldHVybiBuZXcgKGV4ZWMp
IEpTUkdCQ29sb3IoZXhlYywgY29sb3IpOworICAgIHJldHVybiBuZXcgKGV4ZWMpIEpTUkdCQ29s
b3IoZXhlYywgZ2xvYmFsT2JqZWN0LCBjb2xvcik7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNSR0JDb2xvci5oIGIvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmgKaW5kZXggY2MyODcwZi4uMTAzODZkMSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1JHQkNvbG9yLmgKKysrIGIvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1JHQkNvbG9yLmgKQEAgLTI3LDkgKzI3LDkgQEAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIC8vIEZJWE1FOiBKU1JHQkNvbG9yIHNob3VsZCBoYXZlIGEgcHJvcGVyIHByb3Rv
dHlwZSBhbmQgYSBjb25zdHJ1Y3Rvci4KLSAgICBjbGFzcyBKU1JHQkNvbG9yIDogcHVibGljIERP
TU9iamVjdCB7CisgICAgY2xhc3MgSlNSR0JDb2xvciA6IHB1YmxpYyBET01PYmplY3RXaXRoR2xv
YmFsUG9pbnRlciB7CiAgICAgcHVibGljOgotICAgICAgICBKU1JHQkNvbG9yKEpTQzo6RXhlY1N0
YXRlKiwgdW5zaWduZWQgY29sb3IpOworICAgICAgICBKU1JHQkNvbG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqLCB1bnNpZ25lZCBjb2xvcik7CiAKICAgICAgICAgdmlydHVh
bCBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkV4ZWNTdGF0ZSosIGNvbnN0IEpTQzo6SWRl
bnRpZmllciYsIEpTQzo6UHJvcGVydHlTbG90Jik7CiAKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB1bnNpZ25lZCBtX2NvbG9yOwogICAgIH07CiAKLSAgICBK
U0M6OkpTVmFsdWUgZ2V0SlNSR0JDb2xvcihKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIGNvbG9y
KTsKKyAgICBKU0M6OkpTVmFsdWUgZ2V0SlNSR0JDb2xvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiwgdW5zaWduZWQgY29sb3IpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3MvanMvSlNTaGFyZWRXb3JrZXJDb25zdHJ1
Y3Rvci5oIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yLmgK
aW5kZXggYmU4YjJiNC4uODdiYWEzOCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U1NoYXJlZFdvcmtlckNvbnN0cnVjdG9yLmgKKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1No
YXJlZFdvcmtlckNvbnN0cnVjdG9yLmgKQEAgLTM3LDcgKzM3LDcgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi0gICAgY2xhc3MgSlNTaGFyZWRXb3JrZXJDb25zdHJ1Y3RvciA6IHB1YmxpYyBE
T01PYmplY3QgeworICAgIGNsYXNzIEpTU2hhcmVkV29ya2VyQ29uc3RydWN0b3IgOiBwdWJsaWMg
RE9NQ29uc3RydWN0b3JPYmplY3QgewogICAgIHB1YmxpYzoKICAgICAgICAgSlNTaGFyZWRXb3Jr
ZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0Kik7CiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0gYi9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCmluZGV4IGQ0ZjRkNjEu
LmNhN2IzODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9ySlMucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5w
bQpAQCAtMTIwLDggKzEyMCwxMyBAQCBzdWIgR2V0UGFyZW50Q2xhc3NOYW1lCiAKICAgICByZXR1
cm4gJGRhdGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In0gaWYgJGRh
dGFOb2RlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiTGVnYWN5UGFyZW50In07CiAgICAgaWYgKEB7
JGRhdGFOb2RlLT5wYXJlbnRzfSBlcSAwKSB7CisgICAgICAgICMgRklYTUU6IFNWRyB0eXBlcyBy
ZXF1aXJpbmcgYSBjb250ZXh0KCkgcG9pbnRlciBkbyBub3QgaGF2ZSBlbm91Z2gKKyAgICAgICAg
IyBzcGFjZSB0byBob2xkIGEgZ2xvYmFsT2JqZWN0IHBvaW50ZXIgYXMgd2VsbCB3L28gaGl0dGlu
ZyB0aGUgQ0VMTF9TSVpFIGxpbWl0LgorICAgICAgICAjIFRoaXMgY291bGQgYmUgZml4ZWQgYnkg
bW92aW5nIGNvbnRleHQoKSBpbnRvIHRoZSB2YXJpb3VzIGltcGwoKSBjbGFzc2VzLgorICAgICAg
ICAjIFVudGlsIHRoZW4sIHdlIHNwZWNpYWwgY2FzZSB0aGVzZSBTVkcgYmluZGluZ3MgYW5kIGFs
bG93IHRoZW0gdG8gcmV0dXJuCisgICAgICAgICMgdGhlIHdyb25nIHByb3RvdHlwZXMgYW5kIGNv
bnN0cnVjdG9ycyBkdXJpbmcgeC1mcmFtZSBhY2Nlc3MuICBTZWUgYnVnIDI3MDg4LgogICAgICAg
ICByZXR1cm4gIkRPTU9iamVjdFdpdGhTVkdDb250ZXh0IiBpZiBJc1NWR1R5cGVOZWVkaW5nQ29u
dGV4dFBhcmFtZXRlcigkZGF0YU5vZGUtPm5hbWUpOwotICAgICAgICByZXR1cm4gIkRPTU9iamVj
dCI7CisgICAgICAgIHJldHVybiAiRE9NT2JqZWN0V2l0aEdsb2JhbFBvaW50ZXIiOwogICAgIH0K
ICAgICByZXR1cm4gIkpTIiAuICRjb2RlR2VuZXJhdG9yLT5TdHJpcE1vZHVsZSgkZGF0YU5vZGUt
PnBhcmVudHMoMCkpOwogfQpAQCAtNDI3LDEwICs0MzIsMTIgQEAgc3ViIEdlbmVyYXRlSGVhZGVy
CiAgICAgIyBDb25zdHJ1Y3RvcgogICAgIGlmICgkaW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93
IikgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoUGFzc1Jl
ZlB0cjxKU0M6OlN0cnVjdHVyZT4sIFBhc3NSZWZQdHI8JGltcGxUeXBlPiwgSlNET01XaW5kb3dT
aGVsbCopO1xuIik7CisgICAgfSBlbHNpZiAoJGludGVyZmFjZU5hbWUgZXEgIldvcmtlckNvbnRl
eHQiKSB7CisgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgJGNsYXNzTmFtZShQYXNz
UmVmUHRyPEpTQzo6U3RydWN0dXJlPiwgUGFzc1JlZlB0cjwkaW1wbFR5cGU+KTtcbiIpOwogICAg
IH0gZWxzaWYgKElzU1ZHVHlwZU5lZWRpbmdDb250ZXh0UGFyYW1ldGVyKCRpbXBsQ2xhc3NOYW1l
KSkgewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoUGFzc1Jl
ZlB0cjxKU0M6OlN0cnVjdHVyZT4sIFBhc3NSZWZQdHI8JGltcGxUeXBlPiwgU1ZHRWxlbWVudCog
Y29udGV4dCk7XG4iKTsKKyAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NO
YW1lKFBhc3NSZWZQdHI8SlNDOjpTdHJ1Y3R1cmU+LCBKU0RPTUdsb2JhbE9iamVjdCosIFBhc3NS
ZWZQdHI8JGltcGxUeXBlPiwgU1ZHRWxlbWVudCogY29udGV4dCk7XG4iKTsKICAgICB9IGVsc2Ug
ewotICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgICRjbGFzc05hbWUoUGFzc1JlZlB0
cjxKU0M6OlN0cnVjdHVyZT4sIFBhc3NSZWZQdHI8JGltcGxUeXBlPik7XG4iKTsKKyAgICAgICAg
cHVzaChAaGVhZGVyQ29udGVudCwgIiAgICAkY2xhc3NOYW1lKFBhc3NSZWZQdHI8SlNDOjpTdHJ1
Y3R1cmU+LCBKU0RPTUdsb2JhbE9iamVjdCosIFBhc3NSZWZQdHI8JGltcGxUeXBlPik7XG4iKTsK
ICAgICB9CiAKICAgICAjIERlc3RydWN0b3IKQEAgLTk3NSwxMyArOTgyLDE3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgIEFkZEluY2x1ZGVzRm9yVHlwZSgiSlNET01XaW5k
b3dTaGVsbCIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiR7Y2xhc3NOYW1lfTo6JGNs
YXNzTmFtZShQYXNzUmVmUHRyPFN0cnVjdHVyZT4gc3RydWN0dXJlLCBQYXNzUmVmUHRyPCRpbXBs
VHlwZT4gaW1wbCwgSlNET01XaW5kb3dTaGVsbCogc2hlbGwpXG4iKTsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwgaW1wbCwgc2hl
bGwpXG4iKTsKKyAgICB9IGVsc2lmICgkaW50ZXJmYWNlTmFtZSBlcSAiV29ya2VyQ29udGV4dCIp
IHsKKyAgICAgICAgQWRkSW5jbHVkZXNGb3JUeXBlKCJXb3JrZXJDb250ZXh0Iik7CisgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9OjokY2xhc3NOYW1lKFBhc3NSZWZQdHI8
U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsKVxuIik7Cisg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZShzdHJ1Y3R1
cmUsIGltcGwpXG4iKTsKICAgICB9IGVsc2UgewogICAgICAgICBteSAkY29udGV4dEFyZyA9ICRu
ZWVkc1NWR0NvbnRleHQgPyAiLCBTVkdFbGVtZW50KiBjb250ZXh0IiA6ICIiOwotICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiR7Y2xhc3NOYW1lfTo6JGNsYXNzTmFtZShQYXNzUmVmUHRyPFN0
cnVjdHVyZT4gc3RydWN0dXJlLCBQYXNzUmVmUHRyPCRpbXBsVHlwZT4gaW1wbCRjb250ZXh0QXJn
KVxuIik7CisgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiJHtjbGFzc05hbWV9OjokY2xhc3NO
YW1lKFBhc3NSZWZQdHI8U3RydWN0dXJlPiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFBhc3NSZWZQdHI8JGltcGxUeXBlPiBpbXBsJGNvbnRleHRBcmcpXG4iKTsK
ICAgICAgICAgaWYgKCRoYXNQYXJlbnQpIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIDogJHBhcmVudENsYXNzTmFtZShzdHJ1Y3R1cmUsIGltcGwiIC4gKCRwYXJlbnROZWVk
c1NWR0NvbnRleHQgPyAiLCBjb250ZXh0IiA6ICIiKSAuICIpXG4iKTsKKyAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIDogJHBhcmVudENsYXNzTmFtZShzdHJ1Y3R1cmUsIGdsb2Jh
bE9iamVjdCwgaW1wbCIgLiAoJHBhcmVudE5lZWRzU1ZHQ29udGV4dCA/ICIsIGNvbnRleHQiIDog
IiIpIC4gIilcbiIpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSIgLiAoJG5lZWRzU1ZHQ29u
dGV4dCA/ICIsIGNvbnRleHQiIDogIiIpIC4gIilcbiIpOworICAgICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnQsICIgICAgOiAkcGFyZW50Q2xhc3NOYW1lKHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0
IiAuICgkbmVlZHNTVkdDb250ZXh0ID8gIiwgY29udGV4dCIgOiAiIikgLiAiKVxuIik7CiAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAsIG1faW1wbChpbXBsKVxuIik7CiAgICAg
ICAgIH0KICAgICB9CkBAIC0xMTgwLDkgKzExOTEsMTcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50
YXRpb24KICAgICAgICAgICAgIGlmICgkZGF0YU5vZGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+eyJH
ZW5lcmF0ZUNvbnN0cnVjdG9yIn0pIHsKICAgICAgICAgICAgICAgICBteSAkY29uc3RydWN0b3JG
dW5jdGlvbk5hbWUgPSAianMiIC4gJGludGVyZmFjZU5hbWUgLiAiQ29uc3RydWN0b3IiOwogCi0g
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICJKU1ZhbHVlICR7Y29uc3RydWN0b3JG
dW5jdGlvbk5hbWV9KEV4ZWNTdGF0ZSogZXhlYywgY29uc3QgSWRlbnRpZmllciYsIGNvbnN0IFBy
b3BlcnR5U2xvdCYpXG4iKTsKKyAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpT
VmFsdWUgJHtjb25zdHJ1Y3RvckZ1bmN0aW9uTmFtZX0oRXhlY1N0YXRlKiBleGVjLCBjb25zdCBJ
ZGVudGlmaWVyJiwgY29uc3QgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAgICAgICAgICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnQsICJ7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICByZXR1cm4gJHtjbGFzc05hbWV9OjpnZXRDb25zdHJ1Y3RvcihleGVjLCBk
ZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpKTtcbiIpOworICAgICAgICAg
ICAgICAgIGlmIChJc1NWR1R5cGVOZWVkaW5nQ29udGV4dFBhcmFtZXRlcigkaW50ZXJmYWNlTmFt
ZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgIyBGSVhNRTogU1ZHIGJpbmRpbmdzIHdpdGggYSBj
b250ZXh0IHBvaW50ZXIgaGF2ZSBubyBzcGFjZSB0byBzdG9yZSBhIGdsb2JhbE9iamVjdAorICAg
ICAgICAgICAgICAgICAgICAjIHNvIHdlIHVzZSBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJv
dG90eXBlIGluc3RlYWQuCisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAi
ICAgIFVOVVNFRF9QQVJBTShzbG90KTtcbiIpOworICAgICAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICByZXR1cm4gJHtjbGFzc05hbWV9OjpnZXRDb25zdHJ1Y3RvcihleGVj
LCBkZXByZWNhdGVkR2xvYmFsT2JqZWN0Rm9yUHJvdG90eXBlKGV4ZWMpKTtcbiIpOworICAgICAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgICR7Y2xhc3NOYW1lfSogZG9tT2JqZWN0ID0gc3RhdGljX2Nhc3Q8JGNsYXNzTmFtZSo+
KGFzT2JqZWN0KHNsb3Quc2xvdEJhc2UoKSkpO1xuIik7CisgICAgICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIHJldHVybiAke2NsYXNzTmFtZX06OmdldENvbnN0cnVjdG9y
KGV4ZWMsIGRvbU9iamVjdC0+Z2xvYmFsT2JqZWN0KCkpO1xuIik7CisgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAifVxuIik7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KQEAgLTE2ODAsNyArMTY5OSw3IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWUK
IAogICAgIGlmICgkdHlwZSBlcSAiUkdCQ29sb3IiKSB7CiAgICAgICAgICRpbXBsSW5jbHVkZXN7
IkpTJHR5cGUuaCJ9ID0gMTsKLSAgICAgICAgcmV0dXJuICJnZXRKU1JHQkNvbG9yKGV4ZWMsICR2
YWx1ZSkiOworICAgICAgICByZXR1cm4gImdldEpTUkdCQ29sb3IoZXhlYywgJHRoaXNWYWx1ZS0+
Z2xvYmFsT2JqZWN0KCksICR2YWx1ZSkiOwogICAgIH0KIAogICAgIGlmICgkY29kZUdlbmVyYXRv
ci0+SXNQb2RUeXBlKCR0eXBlKSkgewpAQCAtMjAxNSwxMCArMjAzNCwxMCBAQCBzdWIgY29uc3Ry
dWN0b3JGb3IKICAgICBteSAkY2FuQ29uc3RydWN0ID0gc2hpZnQ7CiAKIG15ICRpbXBsQ29udGVu
dCA9IDw8ICJFT0YiOwotY2xhc3MgJHtjbGFzc05hbWV9Q29uc3RydWN0b3IgOiBwdWJsaWMgRE9N
T2JqZWN0IHsKK2NsYXNzICR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yIDogcHVibGljIERPTUNvbnN0
cnVjdG9yT2JqZWN0IHsKIHB1YmxpYzoKICAgICAke2NsYXNzTmFtZX1Db25zdHJ1Y3RvcihFeGVj
U3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi0gICAgICAgIDog
RE9NT2JqZWN0KCR7Y2xhc3NOYW1lfUNvbnN0cnVjdG9yOjpjcmVhdGVTdHJ1Y3R1cmUoZ2xvYmFs
T2JqZWN0LT5vYmplY3RQcm90b3R5cGUoKSkpCisgICAgICAgIDogRE9NQ29uc3RydWN0b3JPYmpl
Y3QoJHtjbGFzc05hbWV9Q29uc3RydWN0b3I6OmNyZWF0ZVN0cnVjdHVyZShnbG9iYWxPYmplY3Qt
Pm9iamVjdFByb3RvdHlwZSgpKSwgZ2xvYmFsT2JqZWN0KQogICAgIHsKICAgICAgICAgcHV0RGly
ZWN0KGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5wcm90b3R5cGUsICR7cHJvdG9DbGFzc05hbWV9Ojpz
ZWxmKGV4ZWMsIGdsb2JhbE9iamVjdCksIE5vbmUpOwogICAgIH0=
</data>

          </attachment>
      

    </bug>

</bugzilla>