<?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>102117</bug_id>
          
          <creation_ts>2012-11-13 12:02:59 -0800</creation_ts>
          <short_desc>[V8] instantiateV8Object should encapulate the tricky creationContext logic</short_desc>
          <delta_ts>2012-11-13 14:39:04 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>dcarney</cc>
    
    <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>765900</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 12:02:59 -0800</bug_when>
    <thetext>[V8] instantiateV8Object should encapulate the tricky creationContext logic</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765906</commentid>
    <comment_count>1</comment_count>
      <attachid>173946</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 12:07:08 -0800</bug_when>
    <thetext>Created attachment 173946
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765908</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 12:07:31 -0800</bug_when>
    <thetext>I&apos;ll land the run-bindings-tests results separately.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765918</commentid>
    <comment_count>3</comment_count>
      <attachid>173952</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 12:15:48 -0800</bug_when>
    <thetext>Created attachment 173952
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765919</commentid>
    <comment_count>4</comment_count>
      <attachid>173953</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-11-13 12:17:18 -0800</bug_when>
    <thetext>Created attachment 173953
Now with run-bindings-test results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>765945</commentid>
    <comment_count>5</comment_count>
      <attachid>173953</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-13 12:42:07 -0800</bug_when>
    <thetext>Comment on attachment 173953
Now with run-bindings-test results

Much better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766065</commentid>
    <comment_count>6</comment_count>
      <attachid>173953</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 14:39:00 -0800</bug_when>
    <thetext>Comment on attachment 173953
Now with run-bindings-test results

Clearing flags on attachment: 173953

Committed r134489: &lt;http://trac.webkit.org/changeset/134489&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766066</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-13 14:39:04 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173946</attachid>
            <date>2012-11-13 12:07:08 -0800</date>
            <delta_ts>2012-11-13 12:15:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102117-20121113120509.patch</filename>
            <type>text/plain</type>
            <size>5618</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdiNDlhMjA0YmM0MDUz
MGE3MjM4ODk2ODFkNmU5MmE3OTU3MjhiOC4uMmNmZDgwYWVmMzkzMGQ2N2RlMTMzZmQ0ODk5ODA4
MjA1Y2RjYWYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDEyLTExLTEzICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1Y4XSBpbnN0YW50aWF0ZVY4
T2JqZWN0IHNob3VsZCBlbmNhcHVsYXRlIHRoZSB0cmlja3kgY3JlYXRpb25Db250ZXh0IGxvZ2lj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxMTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbG9n
aWMgYXJvdW5kIGNyZWF0aW9uQ29udGV4dCBpcyB0cmlja3kuIFJhdGhlciB0aGFuIHB1dHRpbmcg
dGhlCisgICAgICAgIGxvZ2ljIGluIHRoZSBjb2RlIGdlbmVyYXRvciwgd2UgY2FuIGNlbnRyYWxp
emUgdGhlIGxvZ2ljIGluCisgICAgICAgIGluc3RhbnRpYXRlVjhPYmplY3QuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBzaG91bGRuJ3QgaGF2ZSBhbnkgYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0
ZVRvVjhDb252ZXJ0ZXJzKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3Bw
OgorICAgICAgICAoVjhXcmFwcGVySW5zdGFudGlhdGlvblNjb3BlKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4V3JhcHBlckluc3RhbnRpYXRpb25TY29wZTo6VjhXcmFwcGVySW5zdGFudGlhdGlvblNj
b3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V3JhcHBlckluc3RhbnRpYXRpb25TY29wZTo6flY4
V3JhcHBlckluc3RhbnRpYXRpb25TY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFdyYXBwZXJJ
bnN0YW50aWF0aW9uU2NvcGU6OmNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAgICAoVjhET01XcmFwcGVyKToKKwor
MjAxMi0xMS0xMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFVu
cmV2aWV3ZWQuCiAKICAgICAgICAgU3BlY3VsYXRpdmUgYnVpbGQgZml4IGZvciBRdC4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBt
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KaW5k
ZXggYjgxNGMxZDgwMzIyZjliNGJmYzIwZTdkMTAyZDBlYjNkOWI1MjU1Ny4uYWQ2YjU2MjA1ZWU1
YzUwNmE1NWQ1ZGY0ZmRmMThkNGJhMmI3YmU1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTM1MTYsMjAgKzM1MTYsNyBA
QCBFTkQKIAogICAgIHB1c2goQGltcGxDb250ZW50LCA8PEVORCk7CiAKLSAgICB2ODo6SGFuZGxl
PHY4OjpDb250ZXh0PiBjb250ZXh0OwotICAgIGlmICghY3JlYXRpb25Db250ZXh0LklzRW1wdHko
KSAmJiBjcmVhdGlvbkNvbnRleHQtPkNyZWF0aW9uQ29udGV4dCgpICE9IHY4OjpDb250ZXh0OjpH
ZXRDdXJyZW50KCkpIHsKLSAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBlbnRlciB0aGUg
Y29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0Ci0gICAgICAgIC8v
IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVy
LgotICAgICAgICBjb250ZXh0ID0gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KGNyZWF0aW9u
Q29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkpOwotICAgICAgICBBU1NFUlQoIWNvbnRleHQuSXNF
bXB0eSgpKTsKLSAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKLSAgICB9Ci0KLSAgICB3cmFwcGVy
ID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KCZpbmZvLCBpbXBsLmdldCgpKTsK
LQotICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIGNvbnRleHQtPkV4aXQoKTsK
LQorICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoY3JlYXRp
b25Db250ZXh0LCAmaW5mbywgaW1wbC5nZXQoKSk7CiAgICAgaWYgKFVOTElLRUxZKHdyYXBwZXIu
SXNFbXB0eSgpKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCmluZGV4IDNlZTAyMDg5NTgzOTJkMjUwMzFjNTBj
MDE5MDA4YzI3NTJjNGIzMzcuLjU4ZDVjNTFkOWVmNDM2Y2Y1ZjQyZGFiMzhlYTRmZWYxMTBjZDQ5
YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAt
NjgsNiArNjgsMzggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBWOFdyYXBwZXJJ
bnN0YW50aWF0aW9uU2NvcGUgeworcHVibGljOgorICAgIGV4cGxpY2l0IFY4V3JhcHBlckluc3Rh
bnRpYXRpb25TY29wZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCkKKyAg
ICAgICAgOiBtX2RpZEVudGVyQ29udGV4dChmYWxzZSkKKyAgICAgICAgLCBtX2NvbnRleHQodjg6
OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkKKyAgICB7CisgICAgICAgIGlmIChjcmVhdGlvbkNvbnRl
eHQuSXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB2ODo6SGFuZGxlPHY4
OjpDb250ZXh0PiBjb250ZXh0Rm9yV3JhcHBlciA9IGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25D
b250ZXh0KCk7CisgICAgICAgIC8vIEZvciBwZXJmb3JtYW5jZSwgd2UgZW50ZXIgdGhlIGNvbnRl
eHQgb25seSBpZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4dAorICAgICAgICAvLyBpcyBk
aWZmZXJlbnQgZnJvbSB0aGUgY29udGV4dCB0aGF0IHdlIGFyZSBhYm91dCB0byBlbnRlci4KKyAg
ICAgICAgaWYgKGNvbnRleHRGb3JXcmFwcGVyID09IG1fY29udGV4dCkKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgbV9jb250ZXh0ID0gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KGNv
bnRleHRGb3JXcmFwcGVyKTsKKyAgICAgICAgbV9kaWRFbnRlckNvbnRleHQgPSB0cnVlOworICAg
ICAgICBtX2NvbnRleHQtPkVudGVyKCk7CisgICAgfQorCisgICAgflY4V3JhcHBlckluc3RhbnRp
YXRpb25TY29wZSgpCisgICAgeworICAgICAgICBpZiAoIW1fZGlkRW50ZXJDb250ZXh0KQorICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbnRleHQtPkV4aXQoKTsKKyAgICB9CisKKyAg
ICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250
ZXh0OyB9CisKK3ByaXZhdGU6CisgICAgYm9vbCBtX2RpZEVudGVyQ29udGV4dDsKKyAgICB2ODo6
SGFuZGxlPHY4OjpDb250ZXh0PiBtX2NvbnRleHQ7Cit9OworCiB2b2lkIFY4RE9NV3JhcHBlcjo6
c2V0TmFtZWRIaWRkZW5SZWZlcmVuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwYXJlbnQsIGNv
bnN0IGNoYXIqIG5hbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjaGlsZCkKIHsKICAgICBBU1NF
UlQobmFtZSk7CkBAIC05Myw5ICsxMjUsMTEgQEAgUGFzc1JlZlB0cjxOb2RlRmlsdGVyPiBWOERP
TVdyYXBwZXI6OndyYXBOYXRpdmVOb2RlRmlsdGVyKHY4OjpIYW5kbGU8djg6OlZhbHVlPgogICAg
IHJldHVybiBOb2RlRmlsdGVyOjpjcmVhdGUoVjhOb2RlRmlsdGVyQ29uZGl0aW9uOjpjcmVhdGUo
ZmlsdGVyKSk7CiB9CiAKLXY4OjpMb2NhbDx2ODo6T2JqZWN0PiBWOERPTVdyYXBwZXI6Omluc3Rh
bnRpYXRlVjhPYmplY3QoV3JhcHBlclR5cGVJbmZvKiB0eXBlLCB2b2lkKiBpbXBsKQordjg6Okxv
Y2FsPHY4OjpPYmplY3Q+IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdCh2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCwgV3JhcHBlclR5cGVJbmZvKiB0eXBlLCB2
b2lkKiBpbXBsKQogewotICAgIFY4UGVyQ29udGV4dERhdGEqIHBlckNvbnRleHREYXRhID0gVjhQ
ZXJDb250ZXh0RGF0YTo6ZnJvbSh2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpKTsKKyAgICBWOFdy
YXBwZXJJbnN0YW50aWF0aW9uU2NvcGUgc2NvcGUoY3JlYXRpb25Db250ZXh0KTsKKworICAgIFY4
UGVyQ29udGV4dERhdGEqIHBlckNvbnRleHREYXRhID0gVjhQZXJDb250ZXh0RGF0YTo6ZnJvbShz
Y29wZS5jb250ZXh0KCkpOwogICAgIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW5jZSA9IHBl
ckNvbnRleHREYXRhID8gcGVyQ29udGV4dERhdGEtPmNyZWF0ZVdyYXBwZXJGcm9tQ2FjaGUodHlw
ZSkgOiBWOE9iamVjdENvbnN0cnVjdG9yOjpuZXdJbnN0YW5jZSh0eXBlLT5nZXRUZW1wbGF0ZSgp
LT5HZXRGdW5jdGlvbigpKTsKIAogICAgIC8vIEF2b2lkIHNldHRpbmcgdGhlIERPTSB3cmFwcGVy
IGZvciBmYWlsZWQgYWxsb2NhdGlvbnMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOERPTVdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9N
V3JhcHBlci5oCmluZGV4IDNjNTY4NGYyNWUxNWRhZjA0YzNlYzYzM2JlNzk5ZjdmYjIyOGJiNTku
LjQ5ZGEwZGFiYmRkMzliZmE5NzBiYzg4ODM3MjUzNjUzMjBjOThhYTggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oCkBAIC0xMTAsNyArMTEwLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAgICAgICAgIHN0YXRpYyB2b2lkIHNldE5hbWVkSGlkZGVuUmVmZXJl
bmNlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcGFyZW50LCBjb25zdCBjaGFyKiBuYW1lLCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gY2hpbGQpOwogCi0gICAgICAgIHN0YXRpYyB2ODo6TG9jYWw8djg6
Ok9iamVjdD4gaW5zdGFudGlhdGVWOE9iamVjdChXcmFwcGVyVHlwZUluZm8qLCB2b2lkKik7Cisg
ICAgICAgIHN0YXRpYyB2ODo6TG9jYWw8djg6Ok9iamVjdD4gaW5zdGFudGlhdGVWOE9iamVjdCh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGNyZWF0aW9uQ29udGV4dCwgV3JhcHBlclR5cGVJbmZvKiwg
dm9pZCopOwogCiAgICAgICAgIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGdldENhY2hl
ZFdyYXBwZXIoTm9kZSogbm9kZSkKICAgICAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173952</attachid>
            <date>2012-11-13 12:15:48 -0800</date>
            <delta_ts>2012-11-13 12:17:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102117-20121113121349.patch</filename>
            <type>text/plain</type>
            <size>23032</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU3M2I5YTFiYTE5YmVi
NzEyMjYzY2UwOGQwNmQ5ODAwMmU4MmMyZC4uY2IwOGFhNjk5Y2Q4ODIyOWRiZjU5ZjVjZWQ2Nzhk
NTA3MzdhNzljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDEyLTExLTEzICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1Y4XSBpbnN0YW50aWF0ZVY4
T2JqZWN0IHNob3VsZCBlbmNhcHVsYXRlIHRoZSB0cmlja3kgY3JlYXRpb25Db250ZXh0IGxvZ2lj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxMTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbG9n
aWMgYXJvdW5kIGNyZWF0aW9uQ29udGV4dCBpcyB0cmlja3kuIFJhdGhlciB0aGFuIHB1dHRpbmcg
dGhlCisgICAgICAgIGxvZ2ljIGluIHRoZSBjb2RlIGdlbmVyYXRvciwgd2UgY2FuIGNlbnRyYWxp
emUgdGhlIGxvZ2ljIGluCisgICAgICAgIGluc3RhbnRpYXRlVjhPYmplY3QuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBzaG91bGRuJ3QgaGF2ZSBhbnkgYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0
ZVRvVjhDb252ZXJ0ZXJzKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3Bw
OgorICAgICAgICAoVjhXcmFwcGVySW5zdGFudGlhdGlvblNjb3BlKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4V3JhcHBlckluc3RhbnRpYXRpb25TY29wZTo6VjhXcmFwcGVySW5zdGFudGlhdGlvblNj
b3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V3JhcHBlckluc3RhbnRpYXRpb25TY29wZTo6flY4
V3JhcHBlckluc3RhbnRpYXRpb25TY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFdyYXBwZXJJ
bnN0YW50aWF0aW9uU2NvcGU6OmNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAgICAoVjhET01XcmFwcGVyKToKKwor
MjAxMi0xMS0xMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFVu
cmV2aWV3ZWQuCiAKICAgICAgICAgVXBkYXRlIHJ1bi1iaW5kaW5ncy10ZXN0cyByZXN1bHRzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQppbmRleCBiODE0YzFkODAzMjJmOWI0YmZjMjBlN2QxMDJkMGViM2Q5YjUyNTU3Li5hZDZiNTYy
MDVlZTVjNTA2YTU1ZDVkZjRmZGYxOGQ0YmEyYjdiZTVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzUxNiwyMCArMzUx
Niw3IEBAIEVORAogCiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIAotICAgIHY4OjpI
YW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7Ci0gICAgaWYgKCFjcmVhdGlvbkNvbnRleHQuSXNF
bXB0eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkgIT0gdjg6OkNvbnRl
eHQ6OkdldEN1cnJlbnQoKSkgewotICAgICAgICAvLyBGb3IgcGVyZm9ybWFuY2UsIHdlIGVudGVy
IHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRseSBydW5uaW5nIGNvbnRleHQKLSAgICAg
ICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRleHQgdGhhdCB3ZSBhcmUgYWJvdXQgdG8g
ZW50ZXIuCi0gICAgICAgIGNvbnRleHQgPSB2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcoY3Jl
YXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIEFTU0VSVCghY29udGV4
dC5Jc0VtcHR5KCkpOwotICAgICAgICBjb250ZXh0LT5FbnRlcigpOwotICAgIH0KLQotICAgIHdy
YXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoJmluZm8sIGltcGwuZ2V0
KCkpOwotCi0gICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKLSAgICAgICAgY29udGV4dC0+RXhp
dCgpOwotCisgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChj
cmVhdGlvbkNvbnRleHQsICZpbmZvLCBpbXBsLmdldCgpKTsKICAgICBpZiAoVU5MSUtFTFkod3Jh
cHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJh
eS5jcHAKaW5kZXggYjBjN2I1ZDlhNTZmZmY0YWI5N2U4NTJlNzg0NTk2MzkzMjRiMjhjOS4uNGVi
NDZkYmFiMDIwZWI0ODhhOTA1MTI5ZWZmZTQyM2YzNDVmMGMyYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXku
Y3BwCkBAIC0xNTIsMjAgKzE1Miw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhGbG9hdDY0
QXJyYXk6OndyYXBTbG93KFBhc3NSZWZQdHI8RmxvYXQ2NEFycmF5PiBpbXBsLCB2CiAgICAgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwogICAgIEFTU0VSVChzdGF0aWNfY2FzdDx2b2lk
Kj4oc3RhdGljX2Nhc3Q8QXJyYXlCdWZmZXJWaWV3Kj4oaW1wbC5nZXQoKSkpID09IHN0YXRpY19j
YXN0PHZvaWQqPihpbXBsLmdldCgpKSk7CiAKLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBj
b250ZXh0OwotICAgIGlmICghY3JlYXRpb25Db250ZXh0LklzRW1wdHkoKSAmJiBjcmVhdGlvbkNv
bnRleHQtPkNyZWF0aW9uQ29udGV4dCgpICE9IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCkpIHsK
LSAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBlbnRlciB0aGUgY29udGV4dCBvbmx5IGlm
IHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0Ci0gICAgICAgIC8vIGlzIGRpZmZlcmVudCBm
cm9tIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVyLgotICAgICAgICBjb250
ZXh0ID0gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRp
b25Db250ZXh0KCkpOwotICAgICAgICBBU1NFUlQoIWNvbnRleHQuSXNFbXB0eSgpKTsKLSAgICAg
ICAgY29udGV4dC0+RW50ZXIoKTsKLSAgICB9Ci0KLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVy
OjppbnN0YW50aWF0ZVY4T2JqZWN0KCZpbmZvLCBpbXBsLmdldCgpKTsKLQotICAgIGlmICghY29u
dGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIGNvbnRleHQtPkV4aXQoKTsKLQorICAgIHdyYXBwZXIg
PSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoY3JlYXRpb25Db250ZXh0LCAmaW5m
bywgaW1wbC5nZXQoKSk7CiAgICAgaWYgKFVOTElLRUxZKHdyYXBwZXIuSXNFbXB0eSgpKSkKICAg
ICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RBY3RpdmVET01PYmplY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAK
aW5kZXggOGQ4ZmY1ZThkNGJhZDY1OTUwMWIzM2IyZGUyZDQ4MGE5MDFkNGQ4Zi4uZGJhNjA3NGQ1
NDRiOTliNjUwNDQ1NTJiNTkxMGFlM2I2ZTYyMjQxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEFjdGl2ZURP
TU9iamVjdC5jcHAKQEAgLTE4MSwyMCArMTgxLDcgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBW
OFRlc3RBY3RpdmVET01PYmplY3Q6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdEFjdGl2ZURPTU8K
ICAgICBBU1NFUlQoRE9NRGF0YVN0b3JlOjpjdXJyZW50KGlzb2xhdGUpLT5nZXQoaW1wbC5nZXQo
KSkuSXNFbXB0eSgpKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXI7CiAKLSAg
ICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0OwotICAgIGlmICghY3JlYXRpb25Db250
ZXh0LklzRW1wdHkoKSAmJiBjcmVhdGlvbkNvbnRleHQtPkNyZWF0aW9uQ29udGV4dCgpICE9IHY4
OjpDb250ZXh0OjpHZXRDdXJyZW50KCkpIHsKLSAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3
ZSBlbnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0
Ci0gICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFi
b3V0IHRvIGVudGVyLgotICAgICAgICBjb250ZXh0ID0gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6
TmV3KGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkpOwotICAgICAgICBBU1NFUlQo
IWNvbnRleHQuSXNFbXB0eSgpKTsKLSAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKLSAgICB9Ci0K
LSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KCZpbmZvLCBp
bXBsLmdldCgpKTsKLQotICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIGNvbnRl
eHQtPkV4aXQoKTsKLQorICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhP
YmplY3QoY3JlYXRpb25Db250ZXh0LCAmaW5mbywgaW1wbC5nZXQoKSk7CiAgICAgaWYgKFVOTElL
RUxZKHdyYXBwZXIuSXNFbXB0eSgpKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0
b21OYW1lZEdldHRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCmluZGV4IDExMTc0MDg0NDM2NTY1NWQxZTU3
YzQ4NDliNGRmNzczYTNlZDRiNDguLmU0ZDA1YzE4MTA5MzdmNjQ4ODQxOTA5N2M1NDVjODMwZTI5
ODY0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9W
OC9WOFRlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcApAQCAtMTE1LDIw
ICsxMTUsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEN1c3RvbU5hbWVkR2V0dGVy
Ojp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RDdXN0b21OYQogICAgIEFTU0VSVChET01EYXRhU3Rv
cmU6OmN1cnJlbnQoaXNvbGF0ZSktPmdldChpbXBsLmdldCgpKS5Jc0VtcHR5KCkpOwogICAgIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlcjsKIAotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRl
eHQ+IGNvbnRleHQ7Ci0gICAgaWYgKCFjcmVhdGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0
aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQo
KSkgewotICAgICAgICAvLyBGb3IgcGVyZm9ybWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9u
bHkgaWYgdGhlIGN1cnJlbnRseSBydW5uaW5nIGNvbnRleHQKLSAgICAgICAgLy8gaXMgZGlmZmVy
ZW50IGZyb20gdGhlIGNvbnRleHQgdGhhdCB3ZSBhcmUgYWJvdXQgdG8gZW50ZXIuCi0gICAgICAg
IGNvbnRleHQgPSB2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcoY3JlYXRpb25Db250ZXh0LT5D
cmVhdGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIEFTU0VSVCghY29udGV4dC5Jc0VtcHR5KCkpOwot
ICAgICAgICBjb250ZXh0LT5FbnRlcigpOwotICAgIH0KLQotICAgIHdyYXBwZXIgPSBWOERPTVdy
YXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoJmluZm8sIGltcGwuZ2V0KCkpOwotCi0gICAgaWYg
KCFjb250ZXh0LklzRW1wdHkoKSkKLSAgICAgICAgY29udGV4dC0+RXhpdCgpOwotCisgICAgd3Jh
cHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChjcmVhdGlvbkNvbnRleHQs
ICZpbmZvLCBpbXBsLmdldCgpKTsKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkp
KQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0
b3IuY3BwCmluZGV4IDhiYmYwYjNmZDljMjkyNWM0NWQwNTk3YWYyOTcwYzQzYWJhODlkYTAuLjJl
ODJlODczZTk2ZDMxN2Q2NDY1YTMxNjhmY2E1ZTI3ODljMjViMzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9y
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
RXZlbnRDb25zdHJ1Y3Rvci5jcHAKQEAgLTE1MiwyMCArMTUyLDcgQEAgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiBWOFRlc3RFdmVudENvbnN0cnVjdG9yOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RF
dmVudENvbnMKICAgICBBU1NFUlQoRE9NRGF0YVN0b3JlOjpjdXJyZW50KGlzb2xhdGUpLT5nZXQo
aW1wbC5nZXQoKSkuSXNFbXB0eSgpKTsKICAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBw
ZXI7CiAKLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0OwotICAgIGlmICghY3Jl
YXRpb25Db250ZXh0LklzRW1wdHkoKSAmJiBjcmVhdGlvbkNvbnRleHQtPkNyZWF0aW9uQ29udGV4
dCgpICE9IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCkpIHsKLSAgICAgICAgLy8gRm9yIHBlcmZv
cm1hbmNlLCB3ZSBlbnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmlu
ZyBjb250ZXh0Ci0gICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQg
d2UgYXJlIGFib3V0IHRvIGVudGVyLgotICAgICAgICBjb250ZXh0ID0gdjg6OkxvY2FsPHY4OjpD
b250ZXh0Pjo6TmV3KGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkpOwotICAgICAg
ICBBU1NFUlQoIWNvbnRleHQuSXNFbXB0eSgpKTsKLSAgICAgICAgY29udGV4dC0+RW50ZXIoKTsK
LSAgICB9Ci0KLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0
KCZpbmZvLCBpbXBsLmdldCgpKTsKLQotICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCi0gICAg
ICAgIGNvbnRleHQtPkV4aXQoKTsKLQorICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3Rh
bnRpYXRlVjhPYmplY3QoY3JlYXRpb25Db250ZXh0LCAmaW5mbywgaW1wbC5nZXQoKSk7CiAgICAg
aWYgKFVOTElLRUxZKHdyYXBwZXIuSXNFbXB0eSgpKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RFdmVudFRhcmdldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwCmluZGV4IGU3MjViZWQ1MmFkZjBmMWNlYzNiY2Ew
MjNlNzk1OGM0NTEzOTk1OGYuLjg2ZWE1YjM4OTdjZjE4NmFkNjJjZmQ4YjNmODI4MThmNDA3YjFj
ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9W
OFRlc3RFdmVudFRhcmdldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcApAQCAtMTc2LDIwICsxNzYsNyBAQCB2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEV2ZW50VGFyZ2V0Ojp3cmFwU2xvdyhQYXNzUmVmUHRy
PFRlc3RFdmVudFRhcmdldD4gaQogICAgIEFTU0VSVChET01EYXRhU3RvcmU6OmN1cnJlbnQoaXNv
bGF0ZSktPmdldChpbXBsLmdldCgpKS5Jc0VtcHR5KCkpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4gd3JhcHBlcjsKIAotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7Ci0g
ICAgaWYgKCFjcmVhdGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+Q3Jl
YXRpb25Db250ZXh0KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewotICAgICAgICAv
LyBGb3IgcGVyZm9ybWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJl
bnRseSBydW5uaW5nIGNvbnRleHQKLSAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhlIGNv
bnRleHQgdGhhdCB3ZSBhcmUgYWJvdXQgdG8gZW50ZXIuCi0gICAgICAgIGNvbnRleHQgPSB2ODo6
TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcoY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQo
KSk7Ci0gICAgICAgIEFTU0VSVCghY29udGV4dC5Jc0VtcHR5KCkpOwotICAgICAgICBjb250ZXh0
LT5FbnRlcigpOwotICAgIH0KLQotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRp
YXRlVjhPYmplY3QoJmluZm8sIGltcGwuZ2V0KCkpOwotCi0gICAgaWYgKCFjb250ZXh0LklzRW1w
dHkoKSkKLSAgICAgICAgY29udGV4dC0+RXhpdCgpOwotCisgICAgd3JhcHBlciA9IFY4RE9NV3Jh
cHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChjcmVhdGlvbkNvbnRleHQsICZpbmZvLCBpbXBsLmdl
dCgpKTsKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1
cm4gd3JhcHBlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdEV4Y2VwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNwcAppbmRleCA5Y2EyNGEzMjk2Y2VkZDUz
NDQyMDViZGRmOWQyYjU1Mjg3ZmI2ZmE2Li4yN2Q2ZGI4Y2E2YTE3NTZlMzI2YWQ1OTJlYWIzOTkx
NjM5MmRjYzUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNwcApAQCAtMTA2LDIwICsxMDYsNyBAQCB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEV4Y2VwdGlvbjo6d3JhcFNsb3coUGFzc1JlZlB0
cjxUZXN0RXhjZXB0aW9uPiBpbXBsLAogICAgIEFTU0VSVChET01EYXRhU3RvcmU6OmN1cnJlbnQo
aXNvbGF0ZSktPmdldChpbXBsLmdldCgpKS5Jc0VtcHR5KCkpOwogICAgIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gd3JhcHBlcjsKIAotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7
Ci0gICAgaWYgKCFjcmVhdGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+
Q3JlYXRpb25Db250ZXh0KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewotICAgICAg
ICAvLyBGb3IgcGVyZm9ybWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1
cnJlbnRseSBydW5uaW5nIGNvbnRleHQKLSAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhl
IGNvbnRleHQgdGhhdCB3ZSBhcmUgYWJvdXQgdG8gZW50ZXIuCi0gICAgICAgIGNvbnRleHQgPSB2
ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcoY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRl
eHQoKSk7Ci0gICAgICAgIEFTU0VSVCghY29udGV4dC5Jc0VtcHR5KCkpOwotICAgICAgICBjb250
ZXh0LT5FbnRlcigpOwotICAgIH0KLQotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3Rh
bnRpYXRlVjhPYmplY3QoJmluZm8sIGltcGwuZ2V0KCkpOwotCi0gICAgaWYgKCFjb250ZXh0Lklz
RW1wdHkoKSkKLSAgICAgICAgY29udGV4dC0+RXhpdCgpOwotCisgICAgd3JhcHBlciA9IFY4RE9N
V3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChjcmVhdGlvbkNvbnRleHQsICZpbmZvLCBpbXBs
LmdldCgpKTsKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICBy
ZXR1cm4gd3JhcHBlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L1Y4L1Y4VGVzdEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAppbmRleCBjMGJhNWJkOTk2YzZm
YjhjMDFjMDYxNmI5MzBiNGNmYzM1MTRlODYxLi5mNDNhMjJlOTYzZGYxNWFiOGQ0NmVhODAxMTBm
MmU2MDE4NjJlNTRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcApAQCAtMzQ1LDIwICszNDUsNyBA
QCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEludGVyZmFjZTo6d3JhcFNsb3coUGFzc1Jl
ZlB0cjxUZXN0SW50ZXJmYWNlPiBpbXBsLAogICAgIEFTU0VSVChET01EYXRhU3RvcmU6OmN1cnJl
bnQoaXNvbGF0ZSktPmdldChpbXBsLmdldCgpKS5Jc0VtcHR5KCkpOwogICAgIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gd3JhcHBlcjsKIAotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRl
eHQ7Ci0gICAgaWYgKCFjcmVhdGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29udGV4
dC0+Q3JlYXRpb25Db250ZXh0KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewotICAg
ICAgICAvLyBGb3IgcGVyZm9ybWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhl
IGN1cnJlbnRseSBydW5uaW5nIGNvbnRleHQKLSAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20g
dGhlIGNvbnRleHQgdGhhdCB3ZSBhcmUgYWJvdXQgdG8gZW50ZXIuCi0gICAgICAgIGNvbnRleHQg
PSB2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcoY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNv
bnRleHQoKSk7Ci0gICAgICAgIEFTU0VSVCghY29udGV4dC5Jc0VtcHR5KCkpOwotICAgICAgICBj
b250ZXh0LT5FbnRlcigpOwotICAgIH0KLQotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omlu
c3RhbnRpYXRlVjhPYmplY3QoJmluZm8sIGltcGwuZ2V0KCkpOwotCi0gICAgaWYgKCFjb250ZXh0
LklzRW1wdHkoKSkKLSAgICAgICAgY29udGV4dC0+RXhpdCgpOwotCisgICAgd3JhcHBlciA9IFY4
RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChjcmVhdGlvbkNvbnRleHQsICZpbmZvLCBp
bXBsLmdldCgpKTsKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAg
ICByZXR1cm4gd3JhcHBlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlMaXN0TGlz
dGVuZXIuY3BwCmluZGV4IGRhNTkxNTYyYzhlYzU2NjM2Y2FlZTNiOTI4MjM1ZjMyZTY0NjExZDAu
LjE0ZDNmNDJjMGVlMzE5OGFmZTk2YjA5NGQyZjU3OWNkZGRhZGY5YmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlz
dExpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAKQEAgLTExNSwyMCArMTE1LDcgQEAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyOjp3cmFw
U2xvdyhQYXNzUmVmUHRyPFRlc3RNZWQKICAgICBBU1NFUlQoRE9NRGF0YVN0b3JlOjpjdXJyZW50
KGlzb2xhdGUpLT5nZXQoaW1wbC5nZXQoKSkuSXNFbXB0eSgpKTsKICAgICB2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+IHdyYXBwZXI7CiAKLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0
OwotICAgIGlmICghY3JlYXRpb25Db250ZXh0LklzRW1wdHkoKSAmJiBjcmVhdGlvbkNvbnRleHQt
PkNyZWF0aW9uQ29udGV4dCgpICE9IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCkpIHsKLSAgICAg
ICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBlbnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBj
dXJyZW50bHkgcnVubmluZyBjb250ZXh0Ci0gICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRo
ZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVyLgotICAgICAgICBjb250ZXh0ID0g
djg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250
ZXh0KCkpOwotICAgICAgICBBU1NFUlQoIWNvbnRleHQuSXNFbXB0eSgpKTsKLSAgICAgICAgY29u
dGV4dC0+RW50ZXIoKTsKLSAgICB9Ci0KLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0
YW50aWF0ZVY4T2JqZWN0KCZpbmZvLCBpbXBsLmdldCgpKTsKLQotICAgIGlmICghY29udGV4dC5J
c0VtcHR5KCkpCi0gICAgICAgIGNvbnRleHQtPkV4aXQoKTsKLQorICAgIHdyYXBwZXIgPSBWOERP
TVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoY3JlYXRpb25Db250ZXh0LCAmaW5mbywgaW1w
bC5nZXQoKSk7CiAgICAgaWYgKFVOTElLRUxZKHdyYXBwZXIuSXNFbXB0eSgpKSkKICAgICAgICAg
cmV0dXJuIHdyYXBwZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAppbmRl
eCBlYmYzMDdiNTM5N2I5ZDc5YzU3OWVlYWEwYTE5ZmQ2NDM0NmQ0ZmU3Li5kMzc0MDBmN2I1NWE1
NTM5YzkyZjhmNmFiZWRmYmY4NzhiYmU2ZTI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3Ry
dWN0b3IuY3BwCkBAIC0xNTUsMjAgKzE1NSw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhU
ZXN0TmFtZWRDb25zdHJ1Y3Rvcjo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0TmFtZWRDb25zCiAg
ICAgQVNTRVJUKERPTURhdGFTdG9yZTo6Y3VycmVudChpc29sYXRlKS0+Z2V0KGltcGwuZ2V0KCkp
LklzRW1wdHkoKSk7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwogCi0gICAg
djg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dDsKLSAgICBpZiAoIWNyZWF0aW9uQ29udGV4
dC5Jc0VtcHR5KCkgJiYgY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSAhPSB2ODo6
Q29udGV4dDo6R2V0Q3VycmVudCgpKSB7Ci0gICAgICAgIC8vIEZvciBwZXJmb3JtYW5jZSwgd2Ug
ZW50ZXIgdGhlIGNvbnRleHQgb25seSBpZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4dAot
ICAgICAgICAvLyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgY29udGV4dCB0aGF0IHdlIGFyZSBhYm91
dCB0byBlbnRlci4KLSAgICAgICAgY29udGV4dCA9IHY4OjpMb2NhbDx2ODo6Q29udGV4dD46Ok5l
dyhjcmVhdGlvbkNvbnRleHQtPkNyZWF0aW9uQ29udGV4dCgpKTsKLSAgICAgICAgQVNTRVJUKCFj
b250ZXh0LklzRW1wdHkoKSk7Ci0gICAgICAgIGNvbnRleHQtPkVudGVyKCk7Ci0gICAgfQotCi0g
ICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdCgmaW5mbywgaW1w
bC5nZXQoKSk7Ci0KLSAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQotICAgICAgICBjb250ZXh0
LT5FeGl0KCk7Ci0KKyAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2Jq
ZWN0KGNyZWF0aW9uQ29udGV4dCwgJmluZm8sIGltcGwuZ2V0KCkpOwogICAgIGlmIChVTkxJS0VM
WSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5j
cHAKaW5kZXggMTI4Mjc5NjNkZTNjYTg5YzljMzkyNGNhOGFmYTA5OGI4Y2E3Yjc4Yi4uNjY2Mjhl
OGYxMjk3OWU5MzJkMGJhNDQ4YTBiYzg5M2Q1NGVmY2JkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcApAQCAtMTE1
LDIwICsxMTUsNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE5vZGU6OndyYXBTbG93
KFBhc3NSZWZQdHI8VGVzdE5vZGU+IGltcGwsIHY4OjpIYW5kbAogICAgIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gd3JhcHBlcjsKICAgICBBU1NFUlQoc3RhdGljX2Nhc3Q8dm9pZCo+KHN0YXRpY19j
YXN0PE5vZGUqPihpbXBsLmdldCgpKSkgPT0gc3RhdGljX2Nhc3Q8dm9pZCo+KGltcGwuZ2V0KCkp
KTsKIAotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7Ci0gICAgaWYgKCFjcmVh
dGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0
KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewotICAgICAgICAvLyBGb3IgcGVyZm9y
bWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRseSBydW5uaW5n
IGNvbnRleHQKLSAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRleHQgdGhhdCB3
ZSBhcmUgYWJvdXQgdG8gZW50ZXIuCi0gICAgICAgIGNvbnRleHQgPSB2ODo6TG9jYWw8djg6OkNv
bnRleHQ+OjpOZXcoY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSk7Ci0gICAgICAg
IEFTU0VSVCghY29udGV4dC5Jc0VtcHR5KCkpOwotICAgICAgICBjb250ZXh0LT5FbnRlcigpOwot
ICAgIH0KLQotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3Qo
JmluZm8sIGltcGwuZ2V0KCkpOwotCi0gICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKLSAgICAg
ICAgY29udGV4dC0+RXhpdCgpOwotCisgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFu
dGlhdGVWOE9iamVjdChjcmVhdGlvbkNvbnRleHQsICZpbmZvLCBpbXBsLmdldCgpKTsKICAgICBp
ZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4
VGVzdE9iai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T2JqLmNwcAppbmRleCA3YTEyM2EwZjBmODYwMDI4OGQxMzM1YzYyYTRlMWZlOWNhYTc0MDkz
Li43NzFiNTVjYjhkMWQ4NGYzZjI1MzUwNmRkMTBlZDU3YzM2MzkwOWE5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApA
QCAtMjM1OCwyMCArMjM1OCw3IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0T2JqOjp3
cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3RPYmo+IGltcGwsIHY4OjpIYW5kbGU8CiAgICAgQVNTRVJU
KERPTURhdGFTdG9yZTo6Y3VycmVudChpc29sYXRlKS0+Z2V0KGltcGwuZ2V0KCkpLklzRW1wdHko
KSk7CiAgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwogCi0gICAgdjg6OkhhbmRs
ZTx2ODo6Q29udGV4dD4gY29udGV4dDsKLSAgICBpZiAoIWNyZWF0aW9uQ29udGV4dC5Jc0VtcHR5
KCkgJiYgY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSAhPSB2ODo6Q29udGV4dDo6
R2V0Q3VycmVudCgpKSB7Ci0gICAgICAgIC8vIEZvciBwZXJmb3JtYW5jZSwgd2UgZW50ZXIgdGhl
IGNvbnRleHQgb25seSBpZiB0aGUgY3VycmVudGx5IHJ1bm5pbmcgY29udGV4dAotICAgICAgICAv
LyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgY29udGV4dCB0aGF0IHdlIGFyZSBhYm91dCB0byBlbnRl
ci4KLSAgICAgICAgY29udGV4dCA9IHY4OjpMb2NhbDx2ODo6Q29udGV4dD46Ok5ldyhjcmVhdGlv
bkNvbnRleHQtPkNyZWF0aW9uQ29udGV4dCgpKTsKLSAgICAgICAgQVNTRVJUKCFjb250ZXh0Lklz
RW1wdHkoKSk7Ci0gICAgICAgIGNvbnRleHQtPkVudGVyKCk7Ci0gICAgfQotCi0gICAgd3JhcHBl
ciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdCgmaW5mbywgaW1wbC5nZXQoKSk7
Ci0KLSAgICBpZiAoIWNvbnRleHQuSXNFbXB0eSgpKQotICAgICAgICBjb250ZXh0LT5FeGl0KCk7
Ci0KKyAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KGNyZWF0
aW9uQ29udGV4dCwgJmluZm8sIGltcGwuZ2V0KCkpOwogICAgIGlmIChVTkxJS0VMWSh3cmFwcGVy
LklzRW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T3ZlcmxvYWRlZENvbnN0
cnVjdG9ycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggZTIwYTVjYjgzZDA5NzYzZDBhMDkz
MDgwNTgyNzE5NjIyYzcxZTkxMS4uMTU4OTNmMWQwOWQxZmZmNTgwZDBiOTNhNDNmMDVlYmE1OGIx
ZTZhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApA
QCAtMTc5LDIwICsxNzksNyBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE92ZXJsb2Fk
ZWRDb25zdHJ1Y3RvcnM6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdE92ZQogICAgIEFTU0VSVChE
T01EYXRhU3RvcmU6OmN1cnJlbnQoaXNvbGF0ZSktPmdldChpbXBsLmdldCgpKS5Jc0VtcHR5KCkp
OwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlcjsKIAotICAgIHY4OjpIYW5kbGU8
djg6OkNvbnRleHQ+IGNvbnRleHQ7Ci0gICAgaWYgKCFjcmVhdGlvbkNvbnRleHQuSXNFbXB0eSgp
ICYmIGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkgIT0gdjg6OkNvbnRleHQ6Okdl
dEN1cnJlbnQoKSkgewotICAgICAgICAvLyBGb3IgcGVyZm9ybWFuY2UsIHdlIGVudGVyIHRoZSBj
b250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRseSBydW5uaW5nIGNvbnRleHQKLSAgICAgICAgLy8g
aXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRleHQgdGhhdCB3ZSBhcmUgYWJvdXQgdG8gZW50ZXIu
Ci0gICAgICAgIGNvbnRleHQgPSB2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcoY3JlYXRpb25D
b250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIEFTU0VSVCghY29udGV4dC5Jc0Vt
cHR5KCkpOwotICAgICAgICBjb250ZXh0LT5FbnRlcigpOwotICAgIH0KLQotICAgIHdyYXBwZXIg
PSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoJmluZm8sIGltcGwuZ2V0KCkpOwot
Ci0gICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKLSAgICAgICAgY29udGV4dC0+RXhpdCgpOwot
CisgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChjcmVhdGlv
bkNvbnRleHQsICZpbmZvLCBpbXBsLmdldCgpKTsKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5J
c0VtcHR5KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZUludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
VjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAppbmRleCAxZWIzMTlj
ODA4ZmQ0ZTQ4MGI3MmQ4YjI0NGZhOTAzODc5Y2VjMWE0Li41OWU0NzcyZDllODE1NjM2YmFhOGY2
ZGViYjMwMWIxZjdjOGNhYzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFs
aXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcApAQCAtMjk4LDIwICsyOTgsNyBAQCB2ODo6SGFu
ZGxlPHY4OjpPYmplY3Q+IFY4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6d3Jh
cFNsb3coUGFzc1JlZlB0cgogICAgIEFTU0VSVChET01EYXRhU3RvcmU6OmN1cnJlbnQoaXNvbGF0
ZSktPmdldChpbXBsLmdldCgpKS5Jc0VtcHR5KCkpOwogICAgIHY4OjpIYW5kbGU8djg6Ok9iamVj
dD4gd3JhcHBlcjsKIAotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7Ci0gICAg
aWYgKCFjcmVhdGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRp
b25Db250ZXh0KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewotICAgICAgICAvLyBG
b3IgcGVyZm9ybWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRs
eSBydW5uaW5nIGNvbnRleHQKLSAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRl
eHQgdGhhdCB3ZSBhcmUgYWJvdXQgdG8gZW50ZXIuCi0gICAgICAgIGNvbnRleHQgPSB2ODo6TG9j
YWw8djg6OkNvbnRleHQ+OjpOZXcoY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSk7
Ci0gICAgICAgIEFTU0VSVCghY29udGV4dC5Jc0VtcHR5KCkpOwotICAgICAgICBjb250ZXh0LT5F
bnRlcigpOwotICAgIH0KLQotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRl
VjhPYmplY3QoJmluZm8sIGltcGwuZ2V0KCkpOwotCi0gICAgaWYgKCFjb250ZXh0LklzRW1wdHko
KSkKLSAgICAgICAgY29udGV4dC0+RXhpdCgpOwotCisgICAgd3JhcHBlciA9IFY4RE9NV3JhcHBl
cjo6aW5zdGFudGlhdGVWOE9iamVjdChjcmVhdGlvbkNvbnRleHQsICZpbmZvLCBpbXBsLmdldCgp
KTsKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1cm4g
d3JhcHBlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAK
aW5kZXggM2VlMDIwODk1ODM5MmQyNTAzMWM1MGMwMTkwMDhjMjc1MmM0YjMzNy4uNThkNWM1MWQ5
ZWY0MzZjZjVmNDJkYWIzOGVhNGZlZjExMGNkNDlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCkBAIC02OCw2ICs2OCwzOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIFY4V3JhcHBlckluc3RhbnRpYXRpb25TY29wZSB7CitwdWJsaWM6
CisgICAgZXhwbGljaXQgVjhXcmFwcGVySW5zdGFudGlhdGlvblNjb3BlKHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0KQorICAgICAgICA6IG1fZGlkRW50ZXJDb250ZXh0KGZh
bHNlKQorICAgICAgICAsIG1fY29udGV4dCh2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpKQorICAg
IHsKKyAgICAgICAgaWYgKGNyZWF0aW9uQ29udGV4dC5Jc0VtcHR5KCkpCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHRGb3JXcmFwcGVy
ID0gY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKTsKKyAgICAgICAgLy8gRm9yIHBl
cmZvcm1hbmNlLCB3ZSBlbnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVu
bmluZyBjb250ZXh0CisgICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRo
YXQgd2UgYXJlIGFib3V0IHRvIGVudGVyLgorICAgICAgICBpZiAoY29udGV4dEZvcldyYXBwZXIg
PT0gbV9jb250ZXh0KQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBtX2NvbnRleHQgPSB2
ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcoY29udGV4dEZvcldyYXBwZXIpOworICAgICAgICBt
X2RpZEVudGVyQ29udGV4dCA9IHRydWU7CisgICAgICAgIG1fY29udGV4dC0+RW50ZXIoKTsKKyAg
ICB9CisKKyAgICB+VjhXcmFwcGVySW5zdGFudGlhdGlvblNjb3BlKCkKKyAgICB7CisgICAgICAg
IGlmICghbV9kaWRFbnRlckNvbnRleHQpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1f
Y29udGV4dC0+RXhpdCgpOworICAgIH0KKworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNv
bnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQ7IH0KKworcHJpdmF0ZToKKyAgICBib29s
IG1fZGlkRW50ZXJDb250ZXh0OworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IG1fY29udGV4
dDsKK307CisKIHZvaWQgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZSh2ODo6
SGFuZGxlPHY4OjpPYmplY3Q+IHBhcmVudCwgY29uc3QgY2hhciogbmFtZSwgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGNoaWxkKQogewogICAgIEFTU0VSVChuYW1lKTsKQEAgLTkzLDkgKzEyNSwxMSBA
QCBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+IFY4RE9NV3JhcHBlcjo6d3JhcE5hdGl2ZU5vZGVGaWx0
ZXIodjg6OkhhbmRsZTx2ODo6VmFsdWU+CiAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OmNyZWF0ZShW
OE5vZGVGaWx0ZXJDb25kaXRpb246OmNyZWF0ZShmaWx0ZXIpKTsKIH0KIAotdjg6OkxvY2FsPHY4
OjpPYmplY3Q+IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChXcmFwcGVyVHlwZUlu
Zm8qIHR5cGUsIHZvaWQqIGltcGwpCit2ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhET01XcmFwcGVy
OjppbnN0YW50aWF0ZVY4T2JqZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250
ZXh0LCBXcmFwcGVyVHlwZUluZm8qIHR5cGUsIHZvaWQqIGltcGwpCiB7Ci0gICAgVjhQZXJDb250
ZXh0RGF0YSogcGVyQ29udGV4dERhdGEgPSBWOFBlckNvbnRleHREYXRhOjpmcm9tKHY4OjpDb250
ZXh0OjpHZXRDdXJyZW50KCkpOworICAgIFY4V3JhcHBlckluc3RhbnRpYXRpb25TY29wZSBzY29w
ZShjcmVhdGlvbkNvbnRleHQpOworCisgICAgVjhQZXJDb250ZXh0RGF0YSogcGVyQ29udGV4dERh
dGEgPSBWOFBlckNvbnRleHREYXRhOjpmcm9tKHNjb3BlLmNvbnRleHQoKSk7CiAgICAgdjg6Okxv
Y2FsPHY4OjpPYmplY3Q+IGluc3RhbmNlID0gcGVyQ29udGV4dERhdGEgPyBwZXJDb250ZXh0RGF0
YS0+Y3JlYXRlV3JhcHBlckZyb21DYWNoZSh0eXBlKSA6IFY4T2JqZWN0Q29uc3RydWN0b3I6Om5l
d0luc3RhbmNlKHR5cGUtPmdldFRlbXBsYXRlKCktPkdldEZ1bmN0aW9uKCkpOwogCiAgICAgLy8g
QXZvaWQgc2V0dGluZyB0aGUgRE9NIHdyYXBwZXIgZm9yIGZhaWxlZCBhbGxvY2F0aW9ucy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKaW5kZXggM2M1Njg0ZjI1ZTE1
ZGFmMDRjM2VjNjMzYmU3OTlmN2ZiMjI4YmI1OS4uNDlkYTBkYWJiZGQzOWJmYTk3MGJjODg4Mzcy
NTM2NTMyMGM5OGFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhE
T01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVy
LmgKQEAgLTExMCw3ICsxMTAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3Rh
dGljIHZvaWQgc2V0TmFtZWRIaWRkZW5SZWZlcmVuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBw
YXJlbnQsIGNvbnN0IGNoYXIqIG5hbWUsIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjaGlsZCk7CiAK
LSAgICAgICAgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW50aWF0ZVY4T2JqZWN0
KFdyYXBwZXJUeXBlSW5mbyosIHZvaWQqKTsKKyAgICAgICAgc3RhdGljIHY4OjpMb2NhbDx2ODo6
T2JqZWN0PiBpbnN0YW50aWF0ZVY4T2JqZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRp
b25Db250ZXh0LCBXcmFwcGVyVHlwZUluZm8qLCB2b2lkKik7CiAKICAgICAgICAgc3RhdGljIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gZ2V0Q2FjaGVkV3JhcHBlcihOb2RlKiBub2RlKQogICAgICAg
ICB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173953</attachid>
            <date>2012-11-13 12:17:18 -0800</date>
            <delta_ts>2012-11-13 14:39:00 -0800</delta_ts>
            <desc>Now with run-bindings-test results</desc>
            <filename>bug-102117-20121113121519.patch</filename>
            <type>text/plain</type>
            <size>24148</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0NDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU3M2I5YTFiYTE5YmVi
NzEyMjYzY2UwOGQwNmQ5ODAwMmU4MmMyZC4uY2IwOGFhNjk5Y2Q4ODIyOWRiZjU5ZjVjZWQ2Nzhk
NTA3MzdhNzljYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDEyLTExLTEzICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1Y4XSBpbnN0YW50aWF0ZVY4
T2JqZWN0IHNob3VsZCBlbmNhcHVsYXRlIHRoZSB0cmlja3kgY3JlYXRpb25Db250ZXh0IGxvZ2lj
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDIxMTcK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgbG9n
aWMgYXJvdW5kIGNyZWF0aW9uQ29udGV4dCBpcyB0cmlja3kuIFJhdGhlciB0aGFuIHB1dHRpbmcg
dGhlCisgICAgICAgIGxvZ2ljIGluIHRoZSBjb2RlIGdlbmVyYXRvciwgd2UgY2FuIGNlbnRyYWxp
emUgdGhlIGxvZ2ljIGluCisgICAgICAgIGluc3RhbnRpYXRlVjhPYmplY3QuCisKKyAgICAgICAg
VGhpcyBwYXRjaCBzaG91bGRuJ3QgaGF2ZSBhbnkgYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgIChHZW5lcmF0
ZVRvVjhDb252ZXJ0ZXJzKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3Bw
OgorICAgICAgICAoVjhXcmFwcGVySW5zdGFudGlhdGlvblNjb3BlKToKKyAgICAgICAgKFdlYkNv
cmU6OlY4V3JhcHBlckluc3RhbnRpYXRpb25TY29wZTo6VjhXcmFwcGVySW5zdGFudGlhdGlvblNj
b3BlKToKKyAgICAgICAgKFdlYkNvcmU6OlY4V3JhcHBlckluc3RhbnRpYXRpb25TY29wZTo6flY4
V3JhcHBlckluc3RhbnRpYXRpb25TY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpWOFdyYXBwZXJJ
bnN0YW50aWF0aW9uU2NvcGU6OmNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAg
IChXZWJDb3JlOjpWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oOgorICAgICAgICAoVjhET01XcmFwcGVyKToKKwor
MjAxMi0xMS0xMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFVu
cmV2aWV3ZWQuCiAKICAgICAgICAgVXBkYXRlIHJ1bi1iaW5kaW5ncy10ZXN0cyByZXN1bHRzLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9y
VjgucG0gYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5w
bQppbmRleCBiODE0YzFkODAzMjJmOWI0YmZjMjBlN2QxMDJkMGViM2Q5YjUyNTU3Li42ZGEwNzIw
YzY1YzYxYmY0NzQ2NzUwMmJkNzU2YTdlNjlkYTlkNGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMzQ5MSw3ICszNDkx
LDYgQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiAke2NsYXNzTmFtZX06OndyYXBTbG93KCR7d3Jh
cFNsb3dBcmd1bWVudFR5cGV9IGltcGwsIHY4OjoKIHsKICAgICBBU1NFUlQoaW1wbC5nZXQoKSk7
CiAgICAgQVNTRVJUKCRnZXRDYWNoZWRXcmFwcGVyLklzRW1wdHkoKSk7Ci0gICAgdjg6OkhhbmRs
ZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwogRU5ECiAgICAgaWYgKCRiYXNlVHlwZSBuZSAkaW50ZXJm
YWNlTmFtZSkgewogICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgPDxFTkQpOwpAQCAtMzUxNiwy
MCArMzUxNSw3IEBAIEVORAogCiAgICAgcHVzaChAaW1wbENvbnRlbnQsIDw8RU5EKTsKIAotICAg
IHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7Ci0gICAgaWYgKCFjcmVhdGlvbkNvbnRl
eHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkgIT0gdjg6
OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewotICAgICAgICAvLyBGb3IgcGVyZm9ybWFuY2UsIHdl
IGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRseSBydW5uaW5nIGNvbnRleHQK
LSAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRleHQgdGhhdCB3ZSBhcmUgYWJv
dXQgdG8gZW50ZXIuCi0gICAgICAgIGNvbnRleHQgPSB2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpO
ZXcoY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIEFTU0VSVCgh
Y29udGV4dC5Jc0VtcHR5KCkpOwotICAgICAgICBjb250ZXh0LT5FbnRlcigpOwotICAgIH0KLQot
ICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoJmluZm8sIGlt
cGwuZ2V0KCkpOwotCi0gICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKLSAgICAgICAgY29udGV4
dC0+RXhpdCgpOwotCisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhET01X
cmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KGNyZWF0aW9uQ29udGV4dCwgJmluZm8sIGltcGwu
Z2V0KCkpOwogICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAgICAgIHJl
dHVybiB3cmFwcGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4RmxvYXQ2NEFycmF5LmNwcAppbmRleCBiMGM3YjVkOWE1NmZmZjRh
Yjk3ZTg1MmU3ODQ1OTYzOTMyNGIyOGM5Li5lMTQyNTI1Njg5MTViMDA1Mzg4ZjViOTEwMTQ2YjVj
NGQ5ZGYxY2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhGbG9hdDY0QXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9WOC9WOEZsb2F0NjRBcnJheS5jcHAKQEAgLTE0OSwyMyArMTQ5LDkgQEAgdjg6
OkhhbmRsZTx2ODo6T2JqZWN0PiBWOEZsb2F0NjRBcnJheTo6d3JhcFNsb3coUGFzc1JlZlB0cjxG
bG9hdDY0QXJyYXk+IGltcGwsIHYKIHsKICAgICBBU1NFUlQoaW1wbC5nZXQoKSk7CiAgICAgQVNT
RVJUKERPTURhdGFTdG9yZTo6Y3VycmVudChpc29sYXRlKS0+Z2V0KGltcGwuZ2V0KCkpLklzRW1w
dHkoKSk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyOwogICAgIEFTU0VSVChz
dGF0aWNfY2FzdDx2b2lkKj4oc3RhdGljX2Nhc3Q8QXJyYXlCdWZmZXJWaWV3Kj4oaW1wbC5nZXQo
KSkpID09IHN0YXRpY19jYXN0PHZvaWQqPihpbXBsLmdldCgpKSk7CiAKLSAgICB2ODo6SGFuZGxl
PHY4OjpDb250ZXh0PiBjb250ZXh0OwotICAgIGlmICghY3JlYXRpb25Db250ZXh0LklzRW1wdHko
KSAmJiBjcmVhdGlvbkNvbnRleHQtPkNyZWF0aW9uQ29udGV4dCgpICE9IHY4OjpDb250ZXh0OjpH
ZXRDdXJyZW50KCkpIHsKLSAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBlbnRlciB0aGUg
Y29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0Ci0gICAgICAgIC8v
IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVy
LgotICAgICAgICBjb250ZXh0ID0gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KGNyZWF0aW9u
Q29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkpOwotICAgICAgICBBU1NFUlQoIWNvbnRleHQuSXNF
bXB0eSgpKTsKLSAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKLSAgICB9Ci0KLSAgICB3cmFwcGVy
ID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KCZpbmZvLCBpbXBsLmdldCgpKTsK
LQotICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIGNvbnRleHQtPkV4aXQoKTsK
LQorICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5z
dGFudGlhdGVWOE9iamVjdChjcmVhdGlvbkNvbnRleHQsICZpbmZvLCBpbXBsLmdldCgpKTsKICAg
ICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBl
cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4
L1Y4VGVzdEFjdGl2ZURPTU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAppbmRleCA4ZDhmZjVlOGQ0YmFk
NjU5NTAxYjMzYjJkZTJkNDgwYTkwMWQ0ZDhmLi44ZDBjZjViOTJiMmZkZDBkNDljNGViOWNjMjQy
MDhiNTYxMTU1ZGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0QWN0aXZlRE9NT2JqZWN0LmNwcApAQCAtMTc5
LDIyICsxNzksOCBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEFjdGl2ZURPTU9iamVj
dDo6d3JhcFNsb3coUGFzc1JlZlB0cjxUZXN0QWN0aXZlRE9NTwogewogICAgIEFTU0VSVChpbXBs
LmdldCgpKTsKICAgICBBU1NFUlQoRE9NRGF0YVN0b3JlOjpjdXJyZW50KGlzb2xhdGUpLT5nZXQo
aW1wbC5nZXQoKSkuSXNFbXB0eSgpKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBw
ZXI7Ci0KLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0OwotICAgIGlmICghY3Jl
YXRpb25Db250ZXh0LklzRW1wdHkoKSAmJiBjcmVhdGlvbkNvbnRleHQtPkNyZWF0aW9uQ29udGV4
dCgpICE9IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCkpIHsKLSAgICAgICAgLy8gRm9yIHBlcmZv
cm1hbmNlLCB3ZSBlbnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmlu
ZyBjb250ZXh0Ci0gICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQg
d2UgYXJlIGFib3V0IHRvIGVudGVyLgotICAgICAgICBjb250ZXh0ID0gdjg6OkxvY2FsPHY4OjpD
b250ZXh0Pjo6TmV3KGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkpOwotICAgICAg
ICBBU1NFUlQoIWNvbnRleHQuSXNFbXB0eSgpKTsKLSAgICAgICAgY29udGV4dC0+RW50ZXIoKTsK
LSAgICB9Ci0KLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0
KCZpbmZvLCBpbXBsLmdldCgpKTsKLQotICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCi0gICAg
ICAgIGNvbnRleHQtPkV4aXQoKTsKIAorICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBl
ciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChjcmVhdGlvbkNvbnRleHQsICZp
bmZvLCBpbXBsLmdldCgpKTsKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQog
ICAgICAgICByZXR1cm4gd3JhcHBlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RDdXN0b21OYW1lZEdldHRl
ci5jcHAKaW5kZXggMTExNzQwODQ0MzY1NjU1ZDFlNTdjNDg0OWI0ZGY3NzNhM2VkNGI0OC4uZjU2
YjJhNjA4YjdlNWIwYTE5Y2Y2NWIwOWFkYmRjM2UxMWUzNjMzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEN1c3RvbU5hbWVkR2V0dGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCkBAIC0xMTMsMjIgKzExMyw4IEBAIHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gVjhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVz
dEN1c3RvbU5hCiB7CiAgICAgQVNTRVJUKGltcGwuZ2V0KCkpOwogICAgIEFTU0VSVChET01EYXRh
U3RvcmU6OmN1cnJlbnQoaXNvbGF0ZSktPmdldChpbXBsLmdldCgpKS5Jc0VtcHR5KCkpOwotICAg
IHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlcjsKLQotICAgIHY4OjpIYW5kbGU8djg6OkNv
bnRleHQ+IGNvbnRleHQ7Ci0gICAgaWYgKCFjcmVhdGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNy
ZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJl
bnQoKSkgewotICAgICAgICAvLyBGb3IgcGVyZm9ybWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0
IG9ubHkgaWYgdGhlIGN1cnJlbnRseSBydW5uaW5nIGNvbnRleHQKLSAgICAgICAgLy8gaXMgZGlm
ZmVyZW50IGZyb20gdGhlIGNvbnRleHQgdGhhdCB3ZSBhcmUgYWJvdXQgdG8gZW50ZXIuCi0gICAg
ICAgIGNvbnRleHQgPSB2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpOZXcoY3JlYXRpb25Db250ZXh0
LT5DcmVhdGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIEFTU0VSVCghY29udGV4dC5Jc0VtcHR5KCkp
OwotICAgICAgICBjb250ZXh0LT5FbnRlcigpOwotICAgIH0KLQotICAgIHdyYXBwZXIgPSBWOERP
TVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoJmluZm8sIGltcGwuZ2V0KCkpOwotCi0gICAg
aWYgKCFjb250ZXh0LklzRW1wdHkoKSkKLSAgICAgICAgY29udGV4dC0+RXhpdCgpOwogCisgICAg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0
ZVY4T2JqZWN0KGNyZWF0aW9uQ29udGV4dCwgJmluZm8sIGltcGwuZ2V0KCkpOwogICAgIGlmIChV
TkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0
RXZlbnRDb25zdHJ1Y3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvVjgvVjhUZXN0RXZlbnRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggOGJiZjBiM2ZkOWMyOTI1YzQ1
ZDA1OTdhZjI5NzBjNDNhYmE4OWRhMC4uYmNmMWJkZjgwYzk4NzU0MGFmMjY1YTY1MGQwN2RjMTk4
ZGUzOTU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L1Y4L1Y4VGVzdEV2ZW50Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudENvbnN0cnVjdG9yLmNwcApAQCAtMTUwLDIy
ICsxNTAsOCBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdEV2ZW50Q29uc3RydWN0b3I6
OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdEV2ZW50Q29ucwogewogICAgIEFTU0VSVChpbXBsLmdl
dCgpKTsKICAgICBBU1NFUlQoRE9NRGF0YVN0b3JlOjpjdXJyZW50KGlzb2xhdGUpLT5nZXQoaW1w
bC5nZXQoKSkuSXNFbXB0eSgpKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXI7
Ci0KLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0OwotICAgIGlmICghY3JlYXRp
b25Db250ZXh0LklzRW1wdHkoKSAmJiBjcmVhdGlvbkNvbnRleHQtPkNyZWF0aW9uQ29udGV4dCgp
ICE9IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCkpIHsKLSAgICAgICAgLy8gRm9yIHBlcmZvcm1h
bmNlLCB3ZSBlbnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmluZyBj
b250ZXh0Ci0gICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQgd2Ug
YXJlIGFib3V0IHRvIGVudGVyLgotICAgICAgICBjb250ZXh0ID0gdjg6OkxvY2FsPHY4OjpDb250
ZXh0Pjo6TmV3KGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkpOwotICAgICAgICBB
U1NFUlQoIWNvbnRleHQuSXNFbXB0eSgpKTsKLSAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKLSAg
ICB9Ci0KLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KCZp
bmZvLCBpbXBsLmdldCgpKTsKLQotICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAg
IGNvbnRleHQtPkV4aXQoKTsKIAorICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9
IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChjcmVhdGlvbkNvbnRleHQsICZpbmZv
LCBpbXBsLmdldCgpKTsKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAg
ICAgICByZXR1cm4gd3JhcHBlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFdmVudFRhcmdldC5jcHAKaW5kZXggZTcy
NWJlZDUyYWRmMGYxY2VjM2JjYTAyM2U3OTU4YzQ1MTM5OTU4Zi4uMmI0NDc3NmE2ZTIxMmU1NThi
NGM1MWI2YzFmZWU2NmEwOTk1ZjViNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdEV2ZW50VGFyZ2V0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXZlbnRUYXJnZXQuY3BwCkBAIC0x
NzQsMjIgKzE3NCw4IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0RXZlbnRUYXJnZXQ6
OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdEV2ZW50VGFyZ2V0PiBpCiB7CiAgICAgQVNTRVJUKGlt
cGwuZ2V0KCkpOwogICAgIEFTU0VSVChET01EYXRhU3RvcmU6OmN1cnJlbnQoaXNvbGF0ZSktPmdl
dChpbXBsLmdldCgpKS5Jc0VtcHR5KCkpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3Jh
cHBlcjsKLQotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7Ci0gICAgaWYgKCFj
cmVhdGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250
ZXh0KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewotICAgICAgICAvLyBGb3IgcGVy
Zm9ybWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRseSBydW5u
aW5nIGNvbnRleHQKLSAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRleHQgdGhh
dCB3ZSBhcmUgYWJvdXQgdG8gZW50ZXIuCi0gICAgICAgIGNvbnRleHQgPSB2ODo6TG9jYWw8djg6
OkNvbnRleHQ+OjpOZXcoY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSk7Ci0gICAg
ICAgIEFTU0VSVCghY29udGV4dC5Jc0VtcHR5KCkpOwotICAgICAgICBjb250ZXh0LT5FbnRlcigp
OwotICAgIH0KLQotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmpl
Y3QoJmluZm8sIGltcGwuZ2V0KCkpOwotCi0gICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKLSAg
ICAgICAgY29udGV4dC0+RXhpdCgpOwogCisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFw
cGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KGNyZWF0aW9uQ29udGV4dCwg
JmluZm8sIGltcGwuZ2V0KCkpOwogICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkp
CiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0RXhjZXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFeGNlcHRpb24uY3BwCmluZGV4IDlj
YTI0YTMyOTZjZWRkNTM0NDIwNWJkZGY5ZDJiNTUyODdmYjZmYTYuLjI3M2RmNjg2ZDQzZmEwNmVh
YzQ5NTI4OGVmZWU2ZDY4NzdkODI3YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFeGNlcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RFeGNlcHRpb24uY3BwCkBAIC0xMDQs
MjIgKzEwNCw4IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0RXhjZXB0aW9uOjp3cmFw
U2xvdyhQYXNzUmVmUHRyPFRlc3RFeGNlcHRpb24+IGltcGwsCiB7CiAgICAgQVNTRVJUKGltcGwu
Z2V0KCkpOwogICAgIEFTU0VSVChET01EYXRhU3RvcmU6OmN1cnJlbnQoaXNvbGF0ZSktPmdldChp
bXBsLmdldCgpKS5Jc0VtcHR5KCkpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBl
cjsKLQotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7Ci0gICAgaWYgKCFjcmVh
dGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0
KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewotICAgICAgICAvLyBGb3IgcGVyZm9y
bWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRseSBydW5uaW5n
IGNvbnRleHQKLSAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRleHQgdGhhdCB3
ZSBhcmUgYWJvdXQgdG8gZW50ZXIuCi0gICAgICAgIGNvbnRleHQgPSB2ODo6TG9jYWw8djg6OkNv
bnRleHQ+OjpOZXcoY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSk7Ci0gICAgICAg
IEFTU0VSVCghY29udGV4dC5Jc0VtcHR5KCkpOwotICAgICAgICBjb250ZXh0LT5FbnRlcigpOwot
ICAgIH0KLQotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3Qo
JmluZm8sIGltcGwuZ2V0KCkpOwotCi0gICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKLSAgICAg
ICAgY29udGV4dC0+RXhpdCgpOwogCisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVy
ID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KGNyZWF0aW9uQ29udGV4dCwgJmlu
Zm8sIGltcGwuZ2V0KCkpOwogICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAg
ICAgICAgIHJldHVybiB3cmFwcGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCmluZGV4IGMwYmE1
YmQ5OTZjNmZiOGMwMWMwNjE2YjkzMGI0Y2ZjMzUxNGU4NjEuLjcxZTczYjdjNDQ3N2FhNGVjZTY5
MzRjMjRlMzE1Y2FlYzFhYjQ3MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3RJbnRlcmZhY2UuY3BwCkBAIC0zNDMsMjIg
KzM0Myw4IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0SW50ZXJmYWNlOjp3cmFwU2xv
dyhQYXNzUmVmUHRyPFRlc3RJbnRlcmZhY2U+IGltcGwsCiB7CiAgICAgQVNTRVJUKGltcGwuZ2V0
KCkpOwogICAgIEFTU0VSVChET01EYXRhU3RvcmU6OmN1cnJlbnQoaXNvbGF0ZSktPmdldChpbXBs
LmdldCgpKS5Jc0VtcHR5KCkpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlcjsK
LQotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7Ci0gICAgaWYgKCFjcmVhdGlv
bkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkg
IT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewotICAgICAgICAvLyBGb3IgcGVyZm9ybWFu
Y2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRseSBydW5uaW5nIGNv
bnRleHQKLSAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRleHQgdGhhdCB3ZSBh
cmUgYWJvdXQgdG8gZW50ZXIuCi0gICAgICAgIGNvbnRleHQgPSB2ODo6TG9jYWw8djg6OkNvbnRl
eHQ+OjpOZXcoY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSk7Ci0gICAgICAgIEFT
U0VSVCghY29udGV4dC5Jc0VtcHR5KCkpOwotICAgICAgICBjb250ZXh0LT5FbnRlcigpOwotICAg
IH0KLQotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoJmlu
Zm8sIGltcGwuZ2V0KCkpOwotCi0gICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKLSAgICAgICAg
Y29udGV4dC0+RXhpdCgpOwogCisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0g
VjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KGNyZWF0aW9uQ29udGV4dCwgJmluZm8s
IGltcGwuZ2V0KCkpOwogICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkpCiAgICAg
ICAgIHJldHVybiB3cmFwcGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RMaXN0ZW5lci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TWVkaWFRdWVyeUxpc3RM
aXN0ZW5lci5jcHAKaW5kZXggZGE1OTE1NjJjOGVjNTY2MzZjYWVlM2I5MjgyMzVmMzJlNjQ2MTFk
MC4uNTgyODdiNzdhNzFiMjc2NGE5MTllNjgzNmY5OGNhNGQ2YjNjMDRlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE1lZGlhUXVlcnlM
aXN0TGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9WOC9WOFRlc3RNZWRpYVF1ZXJ5TGlzdExpc3RlbmVyLmNwcApAQCAtMTEzLDIyICsxMTMsOCBA
QCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE1lZGlhUXVlcnlMaXN0TGlzdGVuZXI6Ondy
YXBTbG93KFBhc3NSZWZQdHI8VGVzdE1lZAogewogICAgIEFTU0VSVChpbXBsLmdldCgpKTsKICAg
ICBBU1NFUlQoRE9NRGF0YVN0b3JlOjpjdXJyZW50KGlzb2xhdGUpLT5nZXQoaW1wbC5nZXQoKSku
SXNFbXB0eSgpKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXI7Ci0KLSAgICB2
ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0OwotICAgIGlmICghY3JlYXRpb25Db250ZXh0
LklzRW1wdHkoKSAmJiBjcmVhdGlvbkNvbnRleHQtPkNyZWF0aW9uQ29udGV4dCgpICE9IHY4OjpD
b250ZXh0OjpHZXRDdXJyZW50KCkpIHsKLSAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBl
bnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0Ci0g
ICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0
IHRvIGVudGVyLgotICAgICAgICBjb250ZXh0ID0gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3
KGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkpOwotICAgICAgICBBU1NFUlQoIWNv
bnRleHQuSXNFbXB0eSgpKTsKLSAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKLSAgICB9Ci0KLSAg
ICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KCZpbmZvLCBpbXBs
LmdldCgpKTsKLQotICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIGNvbnRleHQt
PkV4aXQoKTsKIAorICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RE9NV3Jh
cHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChjcmVhdGlvbkNvbnRleHQsICZpbmZvLCBpbXBsLmdl
dCgpKTsKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1
cm4gd3JhcHBlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5hbWVkQ29uc3RydWN0b3IuY3BwCmluZGV4IGVi
ZjMwN2I1Mzk3YjlkNzljNTc5ZWVhYTBhMTlmZDY0MzQ2ZDRmZTcuLmEwZDc1NGU4ZjU4MTE1MGMx
NWI3M2E5ODZhODU1NDc5YTZmNzM2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROYW1lZENvbnN0cnVjdG9yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0TmFtZWRDb25zdHJ1Y3Rv
ci5jcHAKQEAgLTE1MywyMiArMTUzLDggQEAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBWOFRlc3RO
YW1lZENvbnN0cnVjdG9yOjp3cmFwU2xvdyhQYXNzUmVmUHRyPFRlc3ROYW1lZENvbnMKIHsKICAg
ICBBU1NFUlQoaW1wbC5nZXQoKSk7CiAgICAgQVNTRVJUKERPTURhdGFTdG9yZTo6Y3VycmVudChp
c29sYXRlKS0+Z2V0KGltcGwuZ2V0KCkpLklzRW1wdHkoKSk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6
T2JqZWN0PiB3cmFwcGVyOwotCi0gICAgdjg6OkhhbmRsZTx2ODo6Q29udGV4dD4gY29udGV4dDsK
LSAgICBpZiAoIWNyZWF0aW9uQ29udGV4dC5Jc0VtcHR5KCkgJiYgY3JlYXRpb25Db250ZXh0LT5D
cmVhdGlvbkNvbnRleHQoKSAhPSB2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpKSB7Ci0gICAgICAg
IC8vIEZvciBwZXJmb3JtYW5jZSwgd2UgZW50ZXIgdGhlIGNvbnRleHQgb25seSBpZiB0aGUgY3Vy
cmVudGx5IHJ1bm5pbmcgY29udGV4dAotICAgICAgICAvLyBpcyBkaWZmZXJlbnQgZnJvbSB0aGUg
Y29udGV4dCB0aGF0IHdlIGFyZSBhYm91dCB0byBlbnRlci4KLSAgICAgICAgY29udGV4dCA9IHY4
OjpMb2NhbDx2ODo6Q29udGV4dD46Ok5ldyhjcmVhdGlvbkNvbnRleHQtPkNyZWF0aW9uQ29udGV4
dCgpKTsKLSAgICAgICAgQVNTRVJUKCFjb250ZXh0LklzRW1wdHkoKSk7Ci0gICAgICAgIGNvbnRl
eHQtPkVudGVyKCk7Ci0gICAgfQotCi0gICAgd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFu
dGlhdGVWOE9iamVjdCgmaW5mbywgaW1wbC5nZXQoKSk7Ci0KLSAgICBpZiAoIWNvbnRleHQuSXNF
bXB0eSgpKQotICAgICAgICBjb250ZXh0LT5FeGl0KCk7CiAKKyAgICB2ODo6SGFuZGxlPHY4OjpP
YmplY3Q+IHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmplY3QoY3JlYXRp
b25Db250ZXh0LCAmaW5mbywgaW1wbC5nZXQoKSk7CiAgICAgaWYgKFVOTElLRUxZKHdyYXBwZXIu
SXNFbXB0eSgpKSkKICAgICAgICAgcmV0dXJuIHdyYXBwZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9WOC9WOFRlc3ROb2RlLmNwcAppbmRleCAx
MjgyNzk2M2RlM2NhODljOWMzOTI0Y2E4YWZhMDk4YjhjYTdiNzhiLi5iYjM5MGRmYTk1YTAzNWEz
ZmE1YmMyMjhlMmQwYzllZGUwNTM3MGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0Tm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE5vZGUuY3BwCkBAIC0xMTIsMjMgKzExMiw5
IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0Tm9kZTo6d3JhcFNsb3coUGFzc1JlZlB0
cjxUZXN0Tm9kZT4gaW1wbCwgdjg6OkhhbmRsCiB7CiAgICAgQVNTRVJUKGltcGwuZ2V0KCkpOwog
ICAgIEFTU0VSVChWOERPTVdyYXBwZXI6OmdldENhY2hlZFdyYXBwZXIoaW1wbC5nZXQoKSkuSXNF
bXB0eSgpKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXI7CiAgICAgQVNTRVJU
KHN0YXRpY19jYXN0PHZvaWQqPihzdGF0aWNfY2FzdDxOb2RlKj4oaW1wbC5nZXQoKSkpID09IHN0
YXRpY19jYXN0PHZvaWQqPihpbXBsLmdldCgpKSk7CiAKLSAgICB2ODo6SGFuZGxlPHY4OjpDb250
ZXh0PiBjb250ZXh0OwotICAgIGlmICghY3JlYXRpb25Db250ZXh0LklzRW1wdHkoKSAmJiBjcmVh
dGlvbkNvbnRleHQtPkNyZWF0aW9uQ29udGV4dCgpICE9IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50
KCkpIHsKLSAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBlbnRlciB0aGUgY29udGV4dCBv
bmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0Ci0gICAgICAgIC8vIGlzIGRpZmZl
cmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVyLgotICAgICAg
ICBjb250ZXh0ID0gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KGNyZWF0aW9uQ29udGV4dC0+
Q3JlYXRpb25Db250ZXh0KCkpOwotICAgICAgICBBU1NFUlQoIWNvbnRleHQuSXNFbXB0eSgpKTsK
LSAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKLSAgICB9Ci0KLSAgICB3cmFwcGVyID0gVjhET01X
cmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KCZpbmZvLCBpbXBsLmdldCgpKTsKLQotICAgIGlm
ICghY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIGNvbnRleHQtPkV4aXQoKTsKLQorICAgIHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVW
OE9iamVjdChjcmVhdGlvbkNvbnRleHQsICZpbmZvLCBpbXBsLmdldCgpKTsKICAgICBpZiAoVU5M
SUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE9i
ai5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2Jq
LmNwcAppbmRleCA3YTEyM2EwZjBmODYwMDI4OGQxMzM1YzYyYTRlMWZlOWNhYTc0MDkzLi40OWRh
MDM3MWE5Mzc2YWFlZDY4NGVhYTUzOGQzODI4ODI4YTI1ZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T2JqLmNwcApAQCAtMjM1
NiwyMiArMjM1Niw4IEBAIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gVjhUZXN0T2JqOjp3cmFwU2xv
dyhQYXNzUmVmUHRyPFRlc3RPYmo+IGltcGwsIHY4OjpIYW5kbGU8CiB7CiAgICAgQVNTRVJUKGlt
cGwuZ2V0KCkpOwogICAgIEFTU0VSVChET01EYXRhU3RvcmU6OmN1cnJlbnQoaXNvbGF0ZSktPmdl
dChpbXBsLmdldCgpKS5Jc0VtcHR5KCkpOwotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3Jh
cHBlcjsKLQotICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQ7Ci0gICAgaWYgKCFj
cmVhdGlvbkNvbnRleHQuSXNFbXB0eSgpICYmIGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250
ZXh0KCkgIT0gdjg6OkNvbnRleHQ6OkdldEN1cnJlbnQoKSkgewotICAgICAgICAvLyBGb3IgcGVy
Zm9ybWFuY2UsIHdlIGVudGVyIHRoZSBjb250ZXh0IG9ubHkgaWYgdGhlIGN1cnJlbnRseSBydW5u
aW5nIGNvbnRleHQKLSAgICAgICAgLy8gaXMgZGlmZmVyZW50IGZyb20gdGhlIGNvbnRleHQgdGhh
dCB3ZSBhcmUgYWJvdXQgdG8gZW50ZXIuCi0gICAgICAgIGNvbnRleHQgPSB2ODo6TG9jYWw8djg6
OkNvbnRleHQ+OjpOZXcoY3JlYXRpb25Db250ZXh0LT5DcmVhdGlvbkNvbnRleHQoKSk7Ci0gICAg
ICAgIEFTU0VSVCghY29udGV4dC5Jc0VtcHR5KCkpOwotICAgICAgICBjb250ZXh0LT5FbnRlcigp
OwotICAgIH0KLQotICAgIHdyYXBwZXIgPSBWOERPTVdyYXBwZXI6Omluc3RhbnRpYXRlVjhPYmpl
Y3QoJmluZm8sIGltcGwuZ2V0KCkpOwotCi0gICAgaWYgKCFjb250ZXh0LklzRW1wdHkoKSkKLSAg
ICAgICAgY29udGV4dC0+RXhpdCgpOwogCisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFw
cGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KGNyZWF0aW9uQ29udGV4dCwg
JmluZm8sIGltcGwuZ2V0KCkpOwogICAgIGlmIChVTkxJS0VMWSh3cmFwcGVyLklzRW1wdHkoKSkp
CiAgICAgICAgIHJldHVybiB3cmFwcGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T3ZlcmxvYWRlZENvbnN0cnVjdG9ycy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0T3ZlcmxvYWRl
ZENvbnN0cnVjdG9ycy5jcHAKaW5kZXggZTIwYTVjYjgzZDA5NzYzZDBhMDkzMDgwNTgyNzE5NjIy
YzcxZTkxMS4uMDY3ZTU5ODAxM2I2M2ZkNTZhMzI5ZDdmZWMwZGQyMjFkNTBhY2UxYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdE92ZXJs
b2FkZWRDb25zdHJ1Y3RvcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9WOC9WOFRlc3RPdmVybG9hZGVkQ29uc3RydWN0b3JzLmNwcApAQCAtMTc3LDIyICsx
NzcsOCBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4VGVzdE92ZXJsb2FkZWRDb25zdHJ1Y3Rv
cnM6OndyYXBTbG93KFBhc3NSZWZQdHI8VGVzdE92ZQogewogICAgIEFTU0VSVChpbXBsLmdldCgp
KTsKICAgICBBU1NFUlQoRE9NRGF0YVN0b3JlOjpjdXJyZW50KGlzb2xhdGUpLT5nZXQoaW1wbC5n
ZXQoKSkuSXNFbXB0eSgpKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXI7Ci0K
LSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0OwotICAgIGlmICghY3JlYXRpb25D
b250ZXh0LklzRW1wdHkoKSAmJiBjcmVhdGlvbkNvbnRleHQtPkNyZWF0aW9uQ29udGV4dCgpICE9
IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCkpIHsKLSAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNl
LCB3ZSBlbnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250
ZXh0Ci0gICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJl
IGFib3V0IHRvIGVudGVyLgotICAgICAgICBjb250ZXh0ID0gdjg6OkxvY2FsPHY4OjpDb250ZXh0
Pjo6TmV3KGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25Db250ZXh0KCkpOwotICAgICAgICBBU1NF
UlQoIWNvbnRleHQuSXNFbXB0eSgpKTsKLSAgICAgICAgY29udGV4dC0+RW50ZXIoKTsKLSAgICB9
Ci0KLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KCZpbmZv
LCBpbXBsLmdldCgpKTsKLQotICAgIGlmICghY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAgIGNv
bnRleHQtPkV4aXQoKTsKIAorICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4
RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChjcmVhdGlvbkNvbnRleHQsICZpbmZvLCBp
bXBsLmdldCgpKTsKICAgICBpZiAoVU5MSUtFTFkod3JhcHBlci5Jc0VtcHR5KCkpKQogICAgICAg
ICByZXR1cm4gd3JhcHBlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Y4L1Y4VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXpl
ZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAppbmRleCAxZWIzMTljODA4ZmQ0ZTQ4MGI3MmQ4YjI0
NGZhOTAzODc5Y2VjMWE0Li42OWMxNzQ1MjIwNDE5MTVlYjkzYWJmZjVkZDczOGFjNGVmMThlMDQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhU
ZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVjgvVjhUZXN0U2VyaWFsaXplZFNjcmlwdFZhbHVlSW50
ZXJmYWNlLmNwcApAQCAtMjk2LDIyICsyOTYsOCBAQCB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IFY4
VGVzdFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZUludGVyZmFjZTo6d3JhcFNsb3coUGFzc1JlZlB0cgog
ewogICAgIEFTU0VSVChpbXBsLmdldCgpKTsKICAgICBBU1NFUlQoRE9NRGF0YVN0b3JlOjpjdXJy
ZW50KGlzb2xhdGUpLT5nZXQoaW1wbC5nZXQoKSkuSXNFbXB0eSgpKTsKLSAgICB2ODo6SGFuZGxl
PHY4OjpPYmplY3Q+IHdyYXBwZXI7Ci0KLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250
ZXh0OwotICAgIGlmICghY3JlYXRpb25Db250ZXh0LklzRW1wdHkoKSAmJiBjcmVhdGlvbkNvbnRl
eHQtPkNyZWF0aW9uQ29udGV4dCgpICE9IHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCkpIHsKLSAg
ICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBlbnRlciB0aGUgY29udGV4dCBvbmx5IGlmIHRo
ZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0Ci0gICAgICAgIC8vIGlzIGRpZmZlcmVudCBmcm9t
IHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVyLgotICAgICAgICBjb250ZXh0
ID0gdjg6OkxvY2FsPHY4OjpDb250ZXh0Pjo6TmV3KGNyZWF0aW9uQ29udGV4dC0+Q3JlYXRpb25D
b250ZXh0KCkpOwotICAgICAgICBBU1NFUlQoIWNvbnRleHQuSXNFbXB0eSgpKTsKLSAgICAgICAg
Y29udGV4dC0+RW50ZXIoKTsKLSAgICB9Ci0KLSAgICB3cmFwcGVyID0gVjhET01XcmFwcGVyOjpp
bnN0YW50aWF0ZVY4T2JqZWN0KCZpbmZvLCBpbXBsLmdldCgpKTsKLQotICAgIGlmICghY29udGV4
dC5Jc0VtcHR5KCkpCi0gICAgICAgIGNvbnRleHQtPkV4aXQoKTsKIAorICAgIHY4OjpIYW5kbGU8
djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RE9NV3JhcHBlcjo6aW5zdGFudGlhdGVWOE9iamVjdChj
cmVhdGlvbkNvbnRleHQsICZpbmZvLCBpbXBsLmdldCgpKTsKICAgICBpZiAoVU5MSUtFTFkod3Jh
cHBlci5Jc0VtcHR5KCkpKQogICAgICAgICByZXR1cm4gd3JhcHBlcjsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKaW5kZXggM2VlMDIwODk1ODM5MmQyNTAz
MWM1MGMwMTkwMDhjMjc1MmM0YjMzNy4uNThkNWM1MWQ5ZWY0MzZjZjVmNDJkYWIzOGVhNGZlZjEx
MGNkNDlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFw
cGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3Bw
CkBAIC02OCw2ICs2OCwzOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIFY4V3Jh
cHBlckluc3RhbnRpYXRpb25TY29wZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVjhXcmFwcGVy
SW5zdGFudGlhdGlvblNjb3BlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0
KQorICAgICAgICA6IG1fZGlkRW50ZXJDb250ZXh0KGZhbHNlKQorICAgICAgICAsIG1fY29udGV4
dCh2ODo6Q29udGV4dDo6R2V0Q3VycmVudCgpKQorICAgIHsKKyAgICAgICAgaWYgKGNyZWF0aW9u
Q29udGV4dC5Jc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHY4OjpIYW5k
bGU8djg6OkNvbnRleHQ+IGNvbnRleHRGb3JXcmFwcGVyID0gY3JlYXRpb25Db250ZXh0LT5DcmVh
dGlvbkNvbnRleHQoKTsKKyAgICAgICAgLy8gRm9yIHBlcmZvcm1hbmNlLCB3ZSBlbnRlciB0aGUg
Y29udGV4dCBvbmx5IGlmIHRoZSBjdXJyZW50bHkgcnVubmluZyBjb250ZXh0CisgICAgICAgIC8v
IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBjb250ZXh0IHRoYXQgd2UgYXJlIGFib3V0IHRvIGVudGVy
LgorICAgICAgICBpZiAoY29udGV4dEZvcldyYXBwZXIgPT0gbV9jb250ZXh0KQorICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICBtX2NvbnRleHQgPSB2ODo6TG9jYWw8djg6OkNvbnRleHQ+OjpO
ZXcoY29udGV4dEZvcldyYXBwZXIpOworICAgICAgICBtX2RpZEVudGVyQ29udGV4dCA9IHRydWU7
CisgICAgICAgIG1fY29udGV4dC0+RW50ZXIoKTsKKyAgICB9CisKKyAgICB+VjhXcmFwcGVySW5z
dGFudGlhdGlvblNjb3BlKCkKKyAgICB7CisgICAgICAgIGlmICghbV9kaWRFbnRlckNvbnRleHQp
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIG1fY29udGV4dC0+RXhpdCgpOworICAgIH0K
KworICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBt
X2NvbnRleHQ7IH0KKworcHJpdmF0ZToKKyAgICBib29sIG1fZGlkRW50ZXJDb250ZXh0OworICAg
IHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IG1fY29udGV4dDsKK307CisKIHZvaWQgVjhET01XcmFw
cGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHBhcmVu
dCwgY29uc3QgY2hhciogbmFtZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNoaWxkKQogewogICAg
IEFTU0VSVChuYW1lKTsKQEAgLTkzLDkgKzEyNSwxMSBAQCBQYXNzUmVmUHRyPE5vZGVGaWx0ZXI+
IFY4RE9NV3JhcHBlcjo6d3JhcE5hdGl2ZU5vZGVGaWx0ZXIodjg6OkhhbmRsZTx2ODo6VmFsdWU+
CiAgICAgcmV0dXJuIE5vZGVGaWx0ZXI6OmNyZWF0ZShWOE5vZGVGaWx0ZXJDb25kaXRpb246OmNy
ZWF0ZShmaWx0ZXIpKTsKIH0KIAotdjg6OkxvY2FsPHY4OjpPYmplY3Q+IFY4RE9NV3JhcHBlcjo6
aW5zdGFudGlhdGVWOE9iamVjdChXcmFwcGVyVHlwZUluZm8qIHR5cGUsIHZvaWQqIGltcGwpCit2
ODo6TG9jYWw8djg6Ok9iamVjdD4gVjhET01XcmFwcGVyOjppbnN0YW50aWF0ZVY4T2JqZWN0KHY4
OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCBXcmFwcGVyVHlwZUluZm8qIHR5
cGUsIHZvaWQqIGltcGwpCiB7Ci0gICAgVjhQZXJDb250ZXh0RGF0YSogcGVyQ29udGV4dERhdGEg
PSBWOFBlckNvbnRleHREYXRhOjpmcm9tKHY4OjpDb250ZXh0OjpHZXRDdXJyZW50KCkpOworICAg
IFY4V3JhcHBlckluc3RhbnRpYXRpb25TY29wZSBzY29wZShjcmVhdGlvbkNvbnRleHQpOworCisg
ICAgVjhQZXJDb250ZXh0RGF0YSogcGVyQ29udGV4dERhdGEgPSBWOFBlckNvbnRleHREYXRhOjpm
cm9tKHNjb3BlLmNvbnRleHQoKSk7CiAgICAgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGluc3RhbmNl
ID0gcGVyQ29udGV4dERhdGEgPyBwZXJDb250ZXh0RGF0YS0+Y3JlYXRlV3JhcHBlckZyb21DYWNo
ZSh0eXBlKSA6IFY4T2JqZWN0Q29uc3RydWN0b3I6Om5ld0luc3RhbmNlKHR5cGUtPmdldFRlbXBs
YXRlKCktPkdldEZ1bmN0aW9uKCkpOwogCiAgICAgLy8gQXZvaWQgc2V0dGluZyB0aGUgRE9NIHdy
YXBwZXIgZm9yIGZhaWxlZCBhbGxvY2F0aW9ucy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvdjgv
VjhET01XcmFwcGVyLmgKaW5kZXggM2M1Njg0ZjI1ZTE1ZGFmMDRjM2VjNjMzYmU3OTlmN2ZiMjI4
YmI1OS4uNDlkYTBkYWJiZGQzOWJmYTk3MGJjODg4MzcyNTM2NTMyMGM5OGFhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKQEAgLTExMCw3ICsxMTAsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgc3RhdGljIHZvaWQgc2V0TmFtZWRIaWRkZW5S
ZWZlcmVuY2Uodjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBwYXJlbnQsIGNvbnN0IGNoYXIqIG5hbWUs
IHY4OjpIYW5kbGU8djg6OlZhbHVlPiBjaGlsZCk7CiAKLSAgICAgICAgc3RhdGljIHY4OjpMb2Nh
bDx2ODo6T2JqZWN0PiBpbnN0YW50aWF0ZVY4T2JqZWN0KFdyYXBwZXJUeXBlSW5mbyosIHZvaWQq
KTsKKyAgICAgICAgc3RhdGljIHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBpbnN0YW50aWF0ZVY4T2Jq
ZWN0KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCBXcmFwcGVyVHlwZUlu
Zm8qLCB2b2lkKik7CiAKICAgICAgICAgc3RhdGljIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZ2V0
Q2FjaGVkV3JhcHBlcihOb2RlKiBub2RlKQogICAgICAgICB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>