<?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>173993</bug_id>
          
          <creation_ts>2017-06-29 16:39:47 -0700</creation_ts>
          <short_desc>[WebIDL] Add support for conditionally read-write attributes</short_desc>
          <delta_ts>2017-06-30 12:05:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit 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="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1324139</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-29 16:39:47 -0700</bug_when>
    <thetext>[WebIDL] Add support for conditionally read-write attributes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324146</commentid>
    <comment_count>1</comment_count>
      <attachid>314184</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-29 16:46:15 -0700</bug_when>
    <thetext>Created attachment 314184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324427</commentid>
    <comment_count>2</comment_count>
      <attachid>314184</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2017-06-30 08:51:36 -0700</bug_when>
    <thetext>Comment on attachment 314184
Patch

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

&gt; Source/WebCore/bindings/scripts/test/TestObj.idl:455
&gt; +    [Conditional=CONDITION2, ConditionallyReadWrite=CONDITION] attribute Node conditionalAndConditionallyReadWriteAttribute;

This test could be more clear if CONDITION were CONDITION3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324484</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-30 11:37:56 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #2)
&gt; Comment on attachment 314184 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=314184&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/test/TestObj.idl:455
&gt; &gt; +    [Conditional=CONDITION2, ConditionallyReadWrite=CONDITION] attribute Node conditionalAndConditionallyReadWriteAttribute;
&gt; 
&gt; This test could be more clear if CONDITION were CONDITION3

I&apos;ll update it to be even more clear. Something like GENERAL_CONDITION and READ_WRITE_CONDITION.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324487</commentid>
    <comment_count>4</comment_count>
      <attachid>314184</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-30 12:05:00 -0700</bug_when>
    <thetext>Comment on attachment 314184
Patch

Clearing flags on attachment: 314184

Committed r219007: &lt;http://trac.webkit.org/changeset/219007&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1324488</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-30 12:05:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>314184</attachid>
            <date>2017-06-29 16:46:15 -0700</date>
            <delta_ts>2017-06-30 12:05:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173993-20170629164730.patch</filename>
            <type>text/plain</type>
            <size>30400</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODk2OCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ5IEBACisyMDE3LTA2LTI5ICBTYW0gV2Vp
bmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dlYklETF0gQWRkIHN1cHBvcnQgZm9y
IGNvbmRpdGlvbmFsbHkgcmVhZC13cml0ZSBhdHRyaWJ1dGVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzM5OTMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgTUVESUFfU09VUkNFIGZlYXR1cmUvY29u
ZGl0aW9uYWwgcmVxdWlyZXMgY2hhbmdpbmcgYSBmZXcgcmVhZG9ubHkKKyAgICAgICAgYXR0cmli
dXRlcyBpbnRvIHJlYWQtd3JpdGUgYXR0cmlidXRlcy4gSW4gdGhlIHBhc3Qgd2UgaGFuZGxlZCB0
aGlzIHdpdGgKKyAgICAgICAgY3VzdG9tIGJpbmRpbmdzLiBUaGlzIHBhdGNoIGFkZHMgYSBuZXcg
ZXh0ZW5kZWQgYXR0cmlidXRlLCBDb25kaXRpb25hbGx5UmVhZFdyaXRlCisgICAgICAgIHdoaWNo
IGFjaGlldmVzIHRoZSBzYW1lIHJlc3VsdC4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgTW92ZSBhIGZldyBjdXN0b20gYmluZGluZyB0byB0
aGUgIkdDIC8gV3JhcHBpbmcgT25seSIgZ3JvdXAuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9K
U0F1ZGlvVHJhY2tDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNBdWRpb1RyYWNrOjpz
ZXRLaW5kKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkpTQXVkaW9UcmFjazo6c2V0TGFu
Z3VhZ2UpOiBEZWxldGVkLgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VzdG9t
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTVGV4dFRyYWNrOjpzZXRMYW5ndWFnZSk6IERlbGV0
ZWQuCisgICAgICAgICogYmluZGluZ3MvanMvSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkpTVmlkZW9UcmFjazo6c2V0S2luZCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpKU1ZpZGVvVHJhY2s6OnNldExhbmd1YWdlKTogRGVsZXRlZC4KKyAgICAgICAgUmVt
b3ZlIG5vIGxvbmdlciBuZWVkZWQgY3VzdG9tIGJpbmRpbmdzLgorCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChHZW5lcmF0ZVByb3BlcnRp
ZXNIYXNoVGFibGUpOgorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6CisgICAgICAg
IChHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlckRlZmluaXRpb24pOgorICAgICAgICAoR2VuZXJhdGVD
YWxsYmFja0ltcGxlbWVudGF0aW9uQ29udGVudCk6CisgICAgICAgIChHZW5lcmF0ZUhhc2hUYWJs
ZVZhbHVlQXJyYXkpOgorICAgICAgICAoR2VuZXJhdGVIYXNoVGFibGUpOgorICAgICAgICBQaXBl
IENvbmRpdGlvbmFsbHlSZWFkV3JpdGUgdGhyb3VnaCB0aGUgZ2VuZXJhdG9yLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb246CisgICAgICAgIEFkZCBDb25k
aXRpb25hbGx5UmVhZFdyaXRlLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE9iai5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RPYmou
aWRsOgorICAgICAgICBBZGQgdGVzdHMgZm9yIENvbmRpdGlvbmFsbHlSZWFkV3JpdGUuCisKKyAg
ICAgICAgKiBodG1sL3RyYWNrL0F1ZGlvVHJhY2suaWRsOgorICAgICAgICAqIGh0bWwvdHJhY2sv
VGV4dFRyYWNrLmlkbDoKKyAgICAgICAgKiBodG1sL3RyYWNrL1ZpZGVvVHJhY2suaWRsOgorICAg
ICAgICBSZXBsYWNlIFtDdXN0b21dIHdpdGggW0NvbmRpdGlvbmFsbHlSZWFkV3JpdGVdLgorCiAy
MDE3LTA2LTI5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3Bs
aXQgUmVzb3VyY2VMb2FkT2JzZXJ2ZXIgaW50byAyIGNsYXNzZXM6IG9uZSBmb3IgV2ViQ29yZSBh
bmQgb25lIGZvciB0aGUgVUlQcm9jZXNzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTg5NjgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTE5NzU5LDYgKzE5NzU5LDcgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCTEyMjFFMDcy
MUMwM0U0QzIwMDZBMUEwMCAvKiBKU0FuaW1hdGlvblRpbWVsaW5lQ3VzdG9tLmNwcCAqLywKIAkJ
CQlCQzJFRDZCQjBDNkJEMkYwMDA5MjBCRkYgLyogSlNBdHRyQ3VzdG9tLmNwcCAqLywKKwkJCQlC
RTZERjcwRTE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcCAqLywKIAkJ
CQlCRTZERjcxMDE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNrTGlzdEN1c3RvbS5jcHAg
Ki8sCiAJCQkJODkzMURFNUExNEM0NEM0NDAwMERDOUQyIC8qIEpTQmxvYkN1c3RvbS5jcHAgKi8s
CiAJCQkJNDlFRUQxNEIxMDUxOTcxOTAwMDk5RkFCIC8qIEpTQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQ3VzdG9tLmNwcCAqLywKQEAgLTE5Nzk5LDEwICsxOTgwMCwxMiBAQAogCQkJCUIyQzk2RDhD
MEIzQUYyQjcwMDVFODBFQyAvKiBKU1NWR1BhdGhTZWdDdXN0b20uY3BwICovLAogCQkJCTgzODg2
OUVCMUNFODFFOUUwMEQxNkE5RSAvKiBKU1RleHRDdXN0b20uY3BwICovLAogCQkJCTA3RTExNzA2
MTQ4OUVCRUIwMEVDNUFDRSAvKiBKU1RleHRUcmFja0N1ZUN1c3RvbS5jcHAgKi8sCisJCQkJMDdF
MTE2QjAxNDg5QzlBMTAwRUM1QUNFIC8qIEpTVGV4dFRyYWNrQ3VzdG9tLmNwcCAqLywKIAkJCQkw
N0I1QTMwQzE0Njg3RDcxMDBBODFFQ0UgLyogSlNUZXh0VHJhY2tMaXN0Q3VzdG9tLmNwcCAqLywK
IAkJCQkwNzAzMzRFODE0NUExRjM1MDA4RDhENDUgLyogSlNUcmFja0N1c3RvbS5jcHAgKi8sCiAJ
CQkJMDc4NDYzODQxNDVCMUI4RTAwQTU4REYxIC8qIEpTVHJhY2tDdXN0b20uaCAqLywKIAkJCQk1
MTZCQjc5MjBDRTkxRTY4MDA1MTJGNzkgLyogSlNUcmVlV2Fsa2VyQ3VzdG9tLmNwcCAqLywKKwkJ
CQlCRTZERjcwODE3MUNBMkM1MDBERDUyQjggLyogSlNWaWRlb1RyYWNrQ3VzdG9tLmNwcCAqLywK
IAkJCQlCRTZERjcwQTE3MUNBMkM1MDBERDUyQjggLyogSlNWaWRlb1RyYWNrTGlzdEN1c3RvbS5j
cHAgKi8sCiAJCQkJMzFBMDg4QzQxRTczN0IyQzAwM0I2NjA5IC8qIEpTV2ViR1BVUmVuZGVyaW5n
Q29udGV4dEN1c3RvbS5jcHAgKi8sCiAJCQkJMzFBMDg4QzUxRTczN0IyQzAwM0I2NjA5IC8qIEpT
V2ViR1BVUmVuZGVyUGFzc0F0dGFjaG1lbnREZXNjcmlwdG9yQ3VzdG9tLmNwcCAqLywKQEAgLTIz
NzAwLDcgKzIzNzAzLDYgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJ
CQkJN0MzRDhFRTQxRTA4QkFCRTAwMjNCMDg0IC8qIEdDIC8gV3JhcHBpbmcgT25seSAqLywKLQkJ
CQlCRTZERjcwRTE3MUNBMkRBMDBERDUyQjggLyogSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcCAqLywK
IAkJCQlBNTg0RkUzNzE4NjREQUMxMDA4NDNCMTAgLyogSlNDb21tYW5kTGluZUFQSUhvc3RDdXN0
b20uY3BwICovLAogCQkJCUUxNTdBOEU2MTgxODRDNjcwMDlGODIxRCAvKiBKU0NyeXB0b0tleUN1
c3RvbS5jcHAgKi8sCiAJCQkJQkM1ODI1RjIwQzBCODkzODAwNTNGMUI1IC8qIEpTQ1NTU3R5bGVE
ZWNsYXJhdGlvbkN1c3RvbS5jcHAgKi8sCkBAIC0yMzcyOCw4ICsyMzczMCw2IEBACiAJCQkJNDE4
QzM5NUQxQzhGMEFBQjAwNTFDOEEzIC8qIEpTUmVhZGFibGVTdHJlYW1Tb3VyY2VDdXN0b20uY3Bw
ICovLAogCQkJCTUxRDBDNTE1MERBQTkwQjcwMDNCMzgzMSAvKiBKU1N0b3JhZ2VDdXN0b20uY3Bw
ICovLAogCQkJCTU3QTlDODhEMURBNzBCRjgwMEJDNzMwNSAvKiBKU1N1YnRsZUNyeXB0b0N1c3Rv
bS5jcHAgKi8sCi0JCQkJMDdFMTE2QjAxNDg5QzlBMTAwRUM1QUNFIC8qIEpTVGV4dFRyYWNrQ3Vz
dG9tLmNwcCAqLywKLQkJCQlCRTZERjcwODE3MUNBMkM1MDBERDUyQjggLyogSlNWaWRlb1RyYWNr
Q3VzdG9tLmNwcCAqLywKIAkJCQlEM0YzRDM1OTFBNjlBM0IwMDA1OUZDMkIgLyogSlNXZWJHTDJS
ZW5kZXJpbmdDb250ZXh0Q3VzdG9tLmNwcCAqLywKIAkJCQk0OUVFRDE0QzEwNTE5NzFBMDAwOTlG
QUIgLyogSlNXZWJHTFJlbmRlcmluZ0NvbnRleHRDdXN0b20uY3BwICovLAogCQkJCTM4ODUwQzUy
MUU5NjRDMTEwMEM2MDc1MyAvKiBKU1dlYkdQVUNvbW1hbmRCdWZmZXJDdXN0b20uY3BwICovLApJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNBdWRpb1RyYWNrQ3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0F1ZGlvVHJhY2tDdXN0
b20uY3BwCShyZXZpc2lvbiAyMTg5NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0F1ZGlvVHJhY2tDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwzNiArNDAsNiBAQCB2
b2lkIEpTQXVkaW9UcmFjazo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyCiAgICAgdmlzaXRvci5hZGRP
cGFxdWVSb290KHJvb3QoJndyYXBwZWQoKSkpOwogfQogCi12b2lkIEpTQXVkaW9UcmFjazo6c2V0
S2luZChFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQotewotI2lmIEVOQUJMRShNRURJ
QV9TT1VSQ0UpCi0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRvIHNjb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBhdXRvIHN0cmluZyA9IHZhbHVlLnRvV1RGU3Ry
aW5nKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9pZCgpKTsKLSAg
ICB3cmFwcGVkKCkuc2V0S2luZChzdHJpbmcpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc3Rh
dGUpOwotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci0jZW5kaWYKLX0KLQotdm9pZCBKU0F1ZGlv
VHJhY2s6OnNldExhbmd1YWdlKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFsdWUpCi17Ci0j
aWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICBWTSYgdm0gPSBzdGF0ZS52bSgpOwotICAgIGF1
dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIGF1dG8gc3RyaW5nID0g
dmFsdWUudG9XVEZTdHJpbmcoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3Bl
LCB2b2lkKCkpOwotICAgIHdyYXBwZWQoKS5zZXRMYW5ndWFnZShzdHJpbmcpOwotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci0jZW5kaWYK
LX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1RleHRUcmFja0N1c3RvbS5jcHAJKHJldmlzaW9uIDIx
ODk2OCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTVGV4dFRyYWNrQ3VzdG9tLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDEsMjEgKzQxLDYgQEAgdm9pZCBKU1RleHRUcmFjazo6dmlz
aXRBZGRpdGlvbmFsQ2hpbGRyZQogICAgIHZpc2l0b3IuYWRkT3BhcXVlUm9vdChyb290KCZ3cmFw
cGVkKCkpKTsKIH0KIAotdm9pZCBKU1RleHRUcmFjazo6c2V0TGFuZ3VhZ2UoRXhlY1N0YXRlJiBz
dGF0ZSwgSlNWYWx1ZSB2YWx1ZSkKLXsKLSNpZiBFTkFCTEUoTUVESUFfU09VUkNFKQotICAgIFZN
JiB2bSA9IHN0YXRlLnZtKCk7Ci0gICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwotCi0gICAgYXV0byBzdHJpbmcgPSB2YWx1ZS50b1dURlN0cmluZygmc3RhdGUpOwotICAg
IFJFVFVSTl9JRl9FWENFUFRJT04oc2NvcGUsIHZvaWQoKSk7Ci0gICAgd3JhcHBlZCgpLnNldExh
bmd1YWdlKHN0cmluZyk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKHZhbHVlKTsKLSNlbmRpZgotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNWaWRlb1RyYWNrQ3Vz
dG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU1ZpZGVv
VHJhY2tDdXN0b20uY3BwCShyZXZpc2lvbiAyMTg5NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU1ZpZGVvVHJhY2tDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwzNiAr
NDAsNiBAQCB2b2lkIEpTVmlkZW9UcmFjazo6dmlzaXRBZGRpdGlvbmFsQ2hpbGRyCiAgICAgdmlz
aXRvci5hZGRPcGFxdWVSb290KHJvb3QoJndyYXBwZWQoKSkpOwogfQogCi12b2lkIEpTVmlkZW9U
cmFjazo6c2V0S2luZChFeGVjU3RhdGUmIHN0YXRlLCBKU1ZhbHVlIHZhbHVlKQotewotI2lmIEVO
QUJMRShNRURJQV9TT1VSQ0UpCi0gICAgVk0mIHZtID0gc3RhdGUudm0oKTsKLSAgICBhdXRvIHNj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0KLSAgICBhdXRvIHN0cmluZyA9IHZhbHVl
LnRvV1RGU3RyaW5nKCZzdGF0ZSk7Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgdm9p
ZCgpKTsKLSAgICB3cmFwcGVkKCkuc2V0S2luZChzdHJpbmcpOwotI2Vsc2UKLSAgICBVTlVTRURf
UEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7Ci0jZW5kaWYKLX0KLQotdm9p
ZCBKU1ZpZGVvVHJhY2s6OnNldExhbmd1YWdlKEV4ZWNTdGF0ZSYgc3RhdGUsIEpTVmFsdWUgdmFs
dWUpCi17Ci0jaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKLSAgICBWTSYgdm0gPSBzdGF0ZS52bSgp
OwotICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLQotICAgIGF1dG8g
c3RyaW5nID0gdmFsdWUudG9XVEZTdHJpbmcoJnN0YXRlKTsKLSAgICBSRVRVUk5fSUZfRVhDRVBU
SU9OKHNjb3BlLCB2b2lkKCkpOwotICAgIHdyYXBwZWQoKS5zZXRMYW5ndWFnZShzdHJpbmcpOwot
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7
Ci0jZW5kaWYKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBt
CShyZXZpc2lvbiAyMTg5NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMjk3OCw3ICsyOTc4LDcgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAKIHN1YiBHZW5lcmF0ZVByb3BlcnRpZXNIYXNoVGFibGUKIHsKLSAg
ICBteSAoJG9iamVjdCwgJGludGVyZmFjZSwgJGlzSW5zdGFuY2UsICRoYXNoS2V5cywgJGhhc2hT
cGVjaWFscywgJGhhc2hWYWx1ZTEsICRoYXNoVmFsdWUyLCAkY29uZGl0aW9uYWxzLCAkcnVudGlt
ZUVuYWJsZWRPcGVyYXRpb25zLCAkcnVudGltZUVuYWJsZWRBdHRyaWJ1dGVzLCAkc2V0dGluZ3NF
bmFibGVkT3BlcmF0aW9ucywgJHNldHRpbmdzRW5hYmxlZEF0dHJpYnV0ZXMpID0gQF87CisgICAg
bXkgKCRvYmplY3QsICRpbnRlcmZhY2UsICRpc0luc3RhbmNlLCAkaGFzaEtleXMsICRoYXNoU3Bl
Y2lhbHMsICRoYXNoVmFsdWUxLCAkaGFzaFZhbHVlMiwgJGNvbmRpdGlvbmFscywgJHJlYWRXcml0
ZUNvbmRpdGlvbmFscywgJHJ1bnRpbWVFbmFibGVkT3BlcmF0aW9ucywgJHJ1bnRpbWVFbmFibGVk
QXR0cmlidXRlcywgJHNldHRpbmdzRW5hYmxlZE9wZXJhdGlvbnMsICRzZXR0aW5nc0VuYWJsZWRB
dHRyaWJ1dGVzKSA9IEBfOwogCiAgICAgIyBGSVhNRTogVGhlc2Ugc2hvdWxkIGJlIGZ1bmN0aW9u
cyBvbiAkaW50ZXJmYWNlLgogICAgIG15ICRpbnRlcmZhY2VOYW1lID0gJGludGVyZmFjZS0+dHlw
ZS0+bmFtZTsKQEAgLTMwMzYsNiArMzAzNiw4IEBAIHN1YiBHZW5lcmF0ZVByb3BlcnRpZXNIYXNo
VGFibGUKIAogICAgICAgICBteSAkY29uZGl0aW9uYWwgPSAkYXR0cmlidXRlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntDb25kaXRpb25hbH07CiAgICAgICAgICRjb25kaXRpb25hbHMtPnskbmFtZX0g
PSAkY29uZGl0aW9uYWwgaWYgJGNvbmRpdGlvbmFsOworICAgICAgICBteSAkcmVhZFdyaXRlQ29u
ZGl0aW9uYWwgPSAkYXR0cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbGx5
UmVhZFdyaXRlfTsKKyAgICAgICAgJHJlYWRXcml0ZUNvbmRpdGlvbmFscy0+eyRuYW1lfSA9ICRy
ZWFkV3JpdGVDb25kaXRpb25hbCBpZiAkcmVhZFdyaXRlQ29uZGl0aW9uYWw7CiAKICAgICAgICAg
aWYgKE5lZWRzUnVudGltZUNoZWNrKCRhdHRyaWJ1dGUpKSB7CiAgICAgICAgICAgICBwdXNoKEAk
cnVudGltZUVuYWJsZWRBdHRyaWJ1dGVzLCAkYXR0cmlidXRlKTsKQEAgLTM4MTgsOCArMzgyMCwx
NCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGdldHRlciA9
IEdldEF0dHJpYnV0ZUdldHRlck5hbWUoJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0
ZSk7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIkpTQzo6RW5jb2RlZEpTVmFsdWUg
JHtnZXR0ZXJ9KEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9w
ZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBpZiAoIUlzUmVhZG9ubHkoJGF0dHJpYnV0ZSkp
IHsKKyAgICAgICAgICAgICAgICBteSAkcmVhZFdyaXRlQ29uZGl0aW9uYWwgPSAkYXR0cmlidXRl
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbGx5UmVhZFdyaXRlfTsKKyAgICAgICAg
ICAgICAgICBpZiAoJHJlYWRXcml0ZUNvbmRpdGlvbmFsKSB7CisgICAgICAgICAgICAgICAgICAg
IG15ICRyZWFkV3JpdGVDb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0
ZUNvbmRpdGlvbmFsU3RyaW5nRnJvbUF0dHJpYnV0ZVZhbHVlKCRyZWFkV3JpdGVDb25kaXRpb25h
bCk7CisgICAgICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2lmICR7cmVhZFdy
aXRlQ29uZGl0aW9uYWxTdHJpbmd9XG4iKTsKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgbXkgJHNldHRlciA9IEdldEF0dHJpYnV0ZVNldHRlck5hbWUoJGludGVyZmFjZSwgJGNs
YXNzTmFtZSwgJGF0dHJpYnV0ZSk7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICJib29sICR7c2V0dGVyfShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpT
Qzo6RW5jb2RlZEpTVmFsdWUpO1xuIik7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIjZW5kaWZcbiIpIGlmICRyZWFkV3JpdGVDb25kaXRpb25hbDsKICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlmXG4iKSBpZiAkY29uZGl0aW9u
YWxTdHJpbmc7CiAgICAgICAgIH0KQEAgLTM4NjgsNiArMzg3Niw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAgICAgbXkgQGhhc2hWYWx1ZTIgPSAoKTsKICAgICBteSBAaGFzaFNwZWNp
YWxzID0gKCk7CiAgICAgbXkgJWNvbmRpdGlvbmFscyA9ICgpOworICAgIG15ICVyZWFkV3JpdGVD
b25kaXRpb25hbHMgPSAoKTsKICAgICBteSAkaGFzaE5hbWUgPSAkY2xhc3NOYW1lIC4gIlRhYmxl
IjsKICAgICBteSBAcnVudGltZUVuYWJsZWRPcGVyYXRpb25zID0gKCk7CiAgICAgbXkgQHJ1bnRp
bWVFbmFibGVkQXR0cmlidXRlcyA9ICgpOwpAQCAtMzg3NSwxNyArMzg4NCw4IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkgQHNldHRpbmdzRW5hYmxlZEF0dHJpYnV0ZXMgPSAo
KTsKIAogICAgICMgR2VuZXJhdGUgaGFzaCB0YWJsZSBmb3IgcHJvcGVydGllcyBvbiB0aGUgaW5z
dGFuY2UuCi0gICAgbXkgJG51bUluc3RhbmNlUHJvcGVydGllcyA9IEdlbmVyYXRlUHJvcGVydGll
c0hhc2hUYWJsZSgkb2JqZWN0LCAkaW50ZXJmYWNlLCAxLAotICAgICAgICBcQGhhc2hLZXlzLCBc
QGhhc2hTcGVjaWFscywKLSAgICAgICAgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIsCi0gICAg
ICAgIFwlY29uZGl0aW9uYWxzLAotICAgICAgICBcQHJ1bnRpbWVFbmFibGVkT3BlcmF0aW9ucywg
XEBydW50aW1lRW5hYmxlZEF0dHJpYnV0ZXMsCi0gICAgICAgIFxAc2V0dGluZ3NFbmFibGVkT3Bl
cmF0aW9ucywgXEBzZXR0aW5nc0VuYWJsZWRBdHRyaWJ1dGVzKTsKLQotICAgICRvYmplY3QtPkdl
bmVyYXRlSGFzaFRhYmxlKCRoYXNoTmFtZSwgJG51bUluc3RhbmNlUHJvcGVydGllcywKLSAgICAg
ICAgXEBoYXNoS2V5cywgXEBoYXNoU3BlY2lhbHMsCi0gICAgICAgIFxAaGFzaFZhbHVlMSwgXEBo
YXNoVmFsdWUyLAotICAgICAgICBcJWNvbmRpdGlvbmFscywgMCkgaWYgJG51bUluc3RhbmNlUHJv
cGVydGllcyA+IDA7CisgICAgbXkgJG51bUluc3RhbmNlUHJvcGVydGllcyA9IEdlbmVyYXRlUHJv
cGVydGllc0hhc2hUYWJsZSgkb2JqZWN0LCAkaW50ZXJmYWNlLCAxLCBcQGhhc2hLZXlzLCBcQGhh
c2hTcGVjaWFscywgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIsIFwlY29uZGl0aW9uYWxzLCBc
JXJlYWRXcml0ZUNvbmRpdGlvbmFscywgXEBydW50aW1lRW5hYmxlZE9wZXJhdGlvbnMsIFxAcnVu
dGltZUVuYWJsZWRBdHRyaWJ1dGVzLCBcQHNldHRpbmdzRW5hYmxlZE9wZXJhdGlvbnMsIFxAc2V0
dGluZ3NFbmFibGVkQXR0cmlidXRlcyk7CisgICAgJG9iamVjdC0+R2VuZXJhdGVIYXNoVGFibGUo
JGhhc2hOYW1lLCAkbnVtSW5zdGFuY2VQcm9wZXJ0aWVzLCBcQGhhc2hLZXlzLCBcQGhhc2hTcGVj
aWFscywgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIsIFwlY29uZGl0aW9uYWxzLCBcJXJlYWRX
cml0ZUNvbmRpdGlvbmFscywgMCkgaWYgJG51bUluc3RhbmNlUHJvcGVydGllcyA+IDA7CiAKICAg
ICAjIC0gQWRkIGFsbCBpbnRlcmZhY2Ugb2JqZWN0IChha2EgY29uc3RydWN0b3IpIHByb3BlcnRp
ZXMgKGNvbnN0YW50cywgc3RhdGljIGF0dHJpYnV0ZXMsIHN0YXRpYyBvcGVyYXRpb25zKS4KICAg
ICBpZiAoTmVlZHNDb25zdHJ1Y3RvclByb3BlcnR5KCRpbnRlcmZhY2UpKSB7CkBAIC0zODk3LDYg
KzM4OTcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICBteSBAaGFzaFZh
bHVlMiA9ICgpOwogICAgICAgICBteSBAaGFzaFNwZWNpYWxzID0gKCk7CiAgICAgICAgIG15ICVj
b25kaXRpb25hbHMgPSAoKTsKKyAgICAgICAgbXkgJXJlYWRXcml0ZUNvbmRpdGlvbmFscyA9ICgp
OwogCiAgICAgICAgIG15ICRuZWVkc0NvbnN0cnVjdG9yVGFibGUgPSAwOwogCkBAIC0zOTQ2LDYg
KzM5NDcsOSBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJGNv
bmRpdGlvbmFsID0gJGF0dHJpYnV0ZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q29uZGl0aW9uYWx9
OwogICAgICAgICAgICAgJGNvbmRpdGlvbmFsc3skbmFtZX0gPSAkY29uZGl0aW9uYWwgaWYgJGNv
bmRpdGlvbmFsOwogCisgICAgICAgICAgICBteSAkcmVhZFdyaXRlQ29uZGl0aW9uYWwgPSAkYXR0
cmlidXRlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDb25kaXRpb25hbGx5UmVhZFdyaXRlfTsKKyAg
ICAgICAgICAgICRyZWFkV3JpdGVDb25kaXRpb25hbHN7JG5hbWV9ID0gJHJlYWRXcml0ZUNvbmRp
dGlvbmFsIGlmICRyZWFkV3JpdGVDb25kaXRpb25hbDsKKwogICAgICAgICAgICAgJGhhc2hTaXpl
Kys7CiAgICAgICAgIH0KIApAQCAtMzk3MywxMCArMzk3Nyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxl
bWVudGF0aW9uCiAgICAgICAgICAgICAkaGFzaFNpemUrKzsKICAgICAgICAgfQogCi0gICAgICAg
ICRvYmplY3QtPkdlbmVyYXRlSGFzaFRhYmxlKCRoYXNoTmFtZSwgJGhhc2hTaXplLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcQGhhc2hLZXlzLCBcQGhhc2hTcGVjaWFscywK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXEBoYXNoVmFsdWUxLCBcQGhhc2hW
YWx1ZTIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwlY29uZGl0aW9uYWxz
LCAxKSBpZiAkaGFzaFNpemUgPiAwOworICAgICAgICAkb2JqZWN0LT5HZW5lcmF0ZUhhc2hUYWJs
ZSgkaGFzaE5hbWUsICRoYXNoU2l6ZSwgXEBoYXNoS2V5cywgXEBoYXNoU3BlY2lhbHMsIFxAaGFz
aFZhbHVlMSwgXEBoYXNoVmFsdWUyLCBcJWNvbmRpdGlvbmFscywgXCVyZWFkV3JpdGVDb25kaXRp
b25hbHMsIDEpIGlmICRoYXNoU2l6ZSA+IDA7CiAKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQs
ICRjb2RlR2VuZXJhdG9yLT5HZW5lcmF0ZUNvbXBpbGVUaW1lQ2hlY2tGb3JFbnVtc0lmTmVlZGVk
KCRpbnRlcmZhY2UpKTsKIApAQCAtMzk5Niw2ICszOTk3LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVt
ZW50YXRpb24KICAgICBAaGFzaFZhbHVlMiA9ICgpOwogICAgIEBoYXNoU3BlY2lhbHMgPSAoKTsK
ICAgICAlY29uZGl0aW9uYWxzID0gKCk7CisgICAgJXJlYWRXcml0ZUNvbmRpdGlvbmFscyA9ICgp
OwogICAgIEBydW50aW1lRW5hYmxlZE9wZXJhdGlvbnMgPSAoKTsKICAgICBAcnVudGltZUVuYWJs
ZWRBdHRyaWJ1dGVzID0gKCk7CiAgICAgQHNldHRpbmdzRW5hYmxlZE9wZXJhdGlvbnMgPSAoKTsK
QEAgLTQwMDUsNyArNDAwNyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgbXkg
JG51bVByb3RvdHlwZVByb3BlcnRpZXMgPSBHZW5lcmF0ZVByb3BlcnRpZXNIYXNoVGFibGUoJG9i
amVjdCwgJGludGVyZmFjZSwgMCwKICAgICAgICAgXEBoYXNoS2V5cywgXEBoYXNoU3BlY2lhbHMs
CiAgICAgICAgIFxAaGFzaFZhbHVlMSwgXEBoYXNoVmFsdWUyLAotICAgICAgICBcJWNvbmRpdGlv
bmFscywKKyAgICAgICAgXCVjb25kaXRpb25hbHMsIFwlcmVhZFdyaXRlQ29uZGl0aW9uYWxzLAog
ICAgICAgICBcQHJ1bnRpbWVFbmFibGVkT3BlcmF0aW9ucywgXEBydW50aW1lRW5hYmxlZEF0dHJp
YnV0ZXMsCiAgICAgICAgIFxAc2V0dGluZ3NFbmFibGVkT3BlcmF0aW9ucywgXEBzZXR0aW5nc0Vu
YWJsZWRBdHRyaWJ1dGVzKTsKIApAQCAtNDAyNywxMCArNDAyOSw3IEBAIHN1YiBHZW5lcmF0ZUlt
cGxlbWVudGF0aW9uCiAKICAgICBteSAkanVzdEdlbmVyYXRlVmFsdWVBcnJheSA9ICFJc0RPTUds
b2JhbE9iamVjdCgkaW50ZXJmYWNlKTsKIAotICAgICRvYmplY3QtPkdlbmVyYXRlSGFzaFRhYmxl
KCRoYXNoTmFtZSwgJGhhc2hTaXplLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxA
aGFzaEtleXMsIFxAaGFzaFNwZWNpYWxzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IFxAaGFzaFZhbHVlMSwgXEBoYXNoVmFsdWUyLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFwlY29uZGl0aW9uYWxzLCAkanVzdEdlbmVyYXRlVmFsdWVBcnJheSk7CisgICAgJG9iamVj
dC0+R2VuZXJhdGVIYXNoVGFibGUoJGhhc2hOYW1lLCAkaGFzaFNpemUsIFxAaGFzaEtleXMsIFxA
aGFzaFNwZWNpYWxzLCBcQGhhc2hWYWx1ZTEsIFxAaGFzaFZhbHVlMiwgXCVjb25kaXRpb25hbHMs
IFwlcmVhZFdyaXRlQ29uZGl0aW9uYWxzLCAkanVzdEdlbmVyYXRlVmFsdWVBcnJheSk7CiAKICAg
ICBpZiAoJGp1c3RHZW5lcmF0ZVZhbHVlQXJyYXkpIHsKICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICJjb25zdCBDbGFzc0luZm8gJHtjbGFzc05hbWV9UHJvdG90eXBlOjpzX2luZm8gPSB7IFwi
JHt2aXNpYmxlSW50ZXJmYWNlTmFtZX1Qcm90b3R5cGVcIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRSgke2NsYXNzTmFtZX1Qcm90b3R5cGUpIH07
XG5cbiIpOwpAQCAtNDk0OSwxMyArNDk0OCwyMCBAQCBzdWIgR2VuZXJhdGVBdHRyaWJ1dGVTZXR0
ZXJEZWZpbml0aW9uCiAgICAgICAgIG15ICRjb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJh
dG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nRnJvbUF0dHJpYnV0ZVZhbHVlKCRjb25kaXRp
b25hbCk7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiNpZiAke2NvbmRpdGlvbmFsU3Ry
aW5nfVxuIik7OwogICAgIH0KLSAgICAKKworICAgIG15ICRyZWFkV3JpdGVDb25kaXRpb25hbCA9
ICRhdHRyaWJ1dGUtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NvbmRpdGlvbmFsbHlSZWFkV3JpdGV9
OworICAgIGlmICgkcmVhZFdyaXRlQ29uZGl0aW9uYWwpIHsKKyAgICAgICAgbXkgJGNvbmRpdGlv
bmFsU3RyaW5nID0gJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29uZGl0aW9uYWxTdHJpbmdGcm9t
QXR0cmlidXRlVmFsdWUoJHJlYWRXcml0ZUNvbmRpdGlvbmFsKTsKKyAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiI2lmICR7Y29uZGl0aW9uYWxTdHJpbmd9XG4iKTs7CisgICAgfQorCiAgICAg
bXkgJGF0dHJpYnV0ZVNldHRlck5hbWUgPSBHZXRBdHRyaWJ1dGVTZXR0ZXJOYW1lKCRpbnRlcmZh
Y2UsICRjbGFzc05hbWUsICRhdHRyaWJ1dGUpOwogICAgIG15ICRhdHRyaWJ1dGVTZXR0ZXJCb2R5
TmFtZSA9ICRhdHRyaWJ1dGVTZXR0ZXJOYW1lIC4gIlNldHRlciI7CiAgICAgCiAgICAgR2VuZXJh
dGVBdHRyaWJ1dGVTZXR0ZXJCb2R5RGVmaW5pdGlvbigkb3V0cHV0QXJyYXksICRpbnRlcmZhY2Us
ICRjbGFzc05hbWUsICRhdHRyaWJ1dGUsICRhdHRyaWJ1dGVTZXR0ZXJCb2R5TmFtZSwgJGNvbmRp
dGlvbmFsKTsKICAgICBHZW5lcmF0ZUF0dHJpYnV0ZVNldHRlclRyYW1wb2xpbmVEZWZpbml0aW9u
KCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJGF0dHJpYnV0ZSwgJGF0dHJp
YnV0ZVNldHRlck5hbWUsICRhdHRyaWJ1dGVTZXR0ZXJCb2R5TmFtZSwgJGNvbmRpdGlvbmFsKTsK
LSAgICAKKworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiNlbmRpZlxuXG4iKSBpZiAkcmVhZFdy
aXRlQ29uZGl0aW9uYWw7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiI2VuZGlmXG5cbiIpIGlm
ICRjb25kaXRpb25hbDsKIH0KIApAQCAtNTg4Miw2ICs1ODg4LDcgQEAgc3ViIEdlbmVyYXRlQ2Fs
bGJhY2tJbXBsZW1lbnRhdGlvbkNvbnRlbgogICAgICAgICBteSBAaGFzaFZhbHVlMiA9ICgpOwog
ICAgICAgICBteSBAaGFzaFNwZWNpYWxzID0gKCk7CiAgICAgICAgIG15ICVjb25kaXRpb25hbHMg
PSAoKTsKKyAgICAgICAgbXkgJXJlYWRXcml0ZUNvbmRpdGlvbmFscyA9ICgpOwogCiAgICAgICAg
IGZvcmVhY2ggbXkgJGNvbnN0YW50IChAeyRjb25zdGFudHN9KSB7CiAgICAgICAgICAgICBteSAk
bmFtZSA9ICRjb25zdGFudC0+bmFtZTsKQEAgLTU4OTgsNyArNTkwNSw3IEBAIHN1YiBHZW5lcmF0
ZUNhbGxiYWNrSW1wbGVtZW50YXRpb25Db250ZW4KIAogICAgICAgICAgICAgJGhhc2hTaXplKys7
CiAgICAgICAgIH0KLSAgICAgICAgJG9iamVjdC0+R2VuZXJhdGVIYXNoVGFibGUoJGhhc2hOYW1l
LCAkaGFzaFNpemUsIFxAaGFzaEtleXMsIFxAaGFzaFNwZWNpYWxzLCBcQGhhc2hWYWx1ZTEsIFxA
aGFzaFZhbHVlMiwgXCVjb25kaXRpb25hbHMsIDEpIGlmICRoYXNoU2l6ZSA+IDA7CisgICAgICAg
ICRvYmplY3QtPkdlbmVyYXRlSGFzaFRhYmxlKCRoYXNoTmFtZSwgJGhhc2hTaXplLCBcQGhhc2hL
ZXlzLCBcQGhhc2hTcGVjaWFscywgXEBoYXNoVmFsdWUxLCBcQGhhc2hWYWx1ZTIsIFwlY29uZGl0
aW9uYWxzLCBcJXJlYWRXcml0ZUNvbmRpdGlvbmFscywgMSkgaWYgJGhhc2hTaXplID4gMDsKIAog
ICAgICAgICBwdXNoKEAkY29udGVudFJlZiwgJGNvZGVHZW5lcmF0b3ItPkdlbmVyYXRlQ29tcGls
ZVRpbWVDaGVja0ZvckVudW1zSWZOZWVkZWQoJGludGVyZmFjZU9yQ2FsbGJhY2spKTsKIApAQCAt
NjUxOCw2ICs2NTI1LDcgQEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheQogICAgIG15
ICR2YWx1ZTEgPSBzaGlmdDsKICAgICBteSAkdmFsdWUyID0gc2hpZnQ7CiAgICAgbXkgJGNvbmRp
dGlvbmFscyA9IHNoaWZ0OworICAgIG15ICRyZWFkV3JpdGVDb25kaXRpb25hbHMgPSBzaGlmdDsK
ICAgICBteSAkbmFtZUVudHJpZXMgPSBzaGlmdDsKIAogICAgIG15ICRwYWNrZWRTaXplID0gc2Nh
bGFyIEB7JGtleXN9OwpAQCAtNjUyNyw5ICs2NTM1LDkgQEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxl
VmFsdWVBcnJheQogCiAgICAgbXkgJGkgPSAwOwogICAgIGZvcmVhY2ggbXkgJGtleSAoQHska2V5
c30pIHsKLSAgICAgICAgbXkgJGNvbmRpdGlvbmFsOwogICAgICAgICBteSAkZmlyc3RUYXJnZXRU
eXBlOwogICAgICAgICBteSAkc2Vjb25kVGFyZ2V0VHlwZSA9ICIiOworICAgICAgICBteSAkY29u
ZGl0aW9uYWw7CiAKICAgICAgICAgaWYgKCRjb25kaXRpb25hbHMpIHsKICAgICAgICAgICAgICRj
b25kaXRpb25hbCA9ICRjb25kaXRpb25hbHMtPnska2V5fTsKQEAgLTY1NTgsMTIgKzY1NjYsMjQg
QEAgc3ViIEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheQogICAgICAgICBpZiAoIkAkc3BlY2lh
bHNbJGldIiA9fiBtL0NvbnN0YW50SW50ZWdlci8pIHsKICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgIHsgXCIka2V5XCIsIEAkc3BlY2lhbHNbJGldLCBOb0ludHJpbnNpYywgeyAo
bG9uZyBsb25nKSIgLiAkZmlyc3RUYXJnZXRUeXBlIC4gIihAJHZhbHVlMVskaV0pIH0gfSxcbiIp
OwogICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgbXkgJHJlYWRXcml0ZUNvbmRpdGlvbmFs
ID0gJHJlYWRXcml0ZUNvbmRpdGlvbmFscyA/ICRyZWFkV3JpdGVDb25kaXRpb25hbHMtPnska2V5
fSA6IHVuZGVmOworICAgICAgICAgICAgaWYgKCRyZWFkV3JpdGVDb25kaXRpb25hbCkgeworICAg
ICAgICAgICAgICAgIG15ICRyZWFkV3JpdGVDb25kaXRpb25hbFN0cmluZyA9ICRjb2RlR2VuZXJh
dG9yLT5HZW5lcmF0ZUNvbmRpdGlvbmFsU3RyaW5nRnJvbUF0dHJpYnV0ZVZhbHVlKCRyZWFkV3Jp
dGVDb25kaXRpb25hbCk7CisgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIjaWYg
JHtyZWFkV3JpdGVDb25kaXRpb25hbFN0cmluZ31cbiIpOworICAgICAgICAgICAgfQorCiAgICAg
ICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB7IFwiJGtleVwiLCBAJHNwZWNpYWxzWyRp
XSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KSIgLiAkZmlyc3RUYXJnZXRUeXBlIC4gIihAJHZh
bHVlMVskaV0pLCAoaW50cHRyX3QpICIgLiAkc2Vjb25kVGFyZ2V0VHlwZSAuICIoQCR2YWx1ZTJb
JGldKSB9IH0sXG4iKTsKKworICAgICAgICAgICAgaWYgKCRyZWFkV3JpdGVDb25kaXRpb25hbCkg
eworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2Vsc2VcbiIpIDsKKyAgICAg
ICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB7IFwiJGtleVwiLCBSZWFkT25seSB8
IEAkc3BlY2lhbHNbJGldLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3QpIiAuICRmaXJzdFRhcmdl
dFR5cGUgLiAiKEAkdmFsdWUxWyRpXSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVy
dHlTbG90OjpQdXRWYWx1ZUZ1bmM+KDApIH0gfSxcbiIpOworICAgICAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiI2VuZGlmXG4iKTsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAg
ICAgICBpZiAoJGNvbmRpdGlvbmFsKSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiNlbHNlXG4iKSA7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbHNlXG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIHsgMCwgMCwgTm9JbnRyaW5zaWMs
IHsgMCwgMCB9IH0sXG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiI2VuZGlm
XG4iKSA7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiNlbmRpZlxuIik7CiAgICAg
ICAgIH0KICAgICAgICAgKyskaTsKICAgICB9CkBAIC02NTg1LDYgKzY2MDUsNyBAQCBzdWIgR2Vu
ZXJhdGVIYXNoVGFibGUKICAgICBteSAkdmFsdWUxID0gc2hpZnQ7CiAgICAgbXkgJHZhbHVlMiA9
IHNoaWZ0OwogICAgIG15ICRjb25kaXRpb25hbHMgPSBzaGlmdDsKKyAgICBteSAkcmVhZFdyaXRl
Q29uZGl0aW9uYWxzID0gc2hpZnQ7CiAgICAgbXkgJGp1c3RHZW5lcmF0ZVZhbHVlQXJyYXkgPSBz
aGlmdDsKIAogICAgIG15ICRuYW1lRW50cmllcyA9ICIke25hbWV9VmFsdWVzIjsKQEAgLTY2MTAs
NyArNjYzMSw3IEBAIHN1YiBHZW5lcmF0ZUhhc2hUYWJsZQogICAgIH0KIAogICAgIGlmICgkanVz
dEdlbmVyYXRlVmFsdWVBcnJheSkgewotICAgICAgICBHZW5lcmF0ZUhhc2hUYWJsZVZhbHVlQXJy
YXkoJGtleXMsICRzcGVjaWFscywgJHZhbHVlMSwgJHZhbHVlMiwgJGNvbmRpdGlvbmFscywgJG5h
bWVFbnRyaWVzKSBpZiAkc2l6ZTsKKyAgICAgICAgR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5
KCRrZXlzLCAkc3BlY2lhbHMsICR2YWx1ZTEsICR2YWx1ZTIsICRjb25kaXRpb25hbHMsICRyZWFk
V3JpdGVDb25kaXRpb25hbHMsICRuYW1lRW50cmllcykgaWYgJHNpemU7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKQEAgLTY2NTksNyArNjY4MCw3IEBAIHN1YiBHZW5lcmF0ZUhhc2hUYWJsZQog
ICAgIHB1c2goQGltcGxDb250ZW50LCAifTtcblxuIik7CiAKICAgICAjIER1bXAgdGhlIGhhc2gg
dGFibGUKLSAgICBteSAkaGFzU2V0dGVyID0gR2VuZXJhdGVIYXNoVGFibGVWYWx1ZUFycmF5KCRr
ZXlzLCAkc3BlY2lhbHMsICR2YWx1ZTEsICR2YWx1ZTIsICRjb25kaXRpb25hbHMsICRuYW1lRW50
cmllcyk7CisgICAgbXkgJGhhc1NldHRlciA9IEdlbmVyYXRlSGFzaFRhYmxlVmFsdWVBcnJheSgk
a2V5cywgJHNwZWNpYWxzLCAkdmFsdWUxLCAkdmFsdWUyLCAkY29uZGl0aW9uYWxzLCAkcmVhZFdy
aXRlQ29uZGl0aW9uYWxzLCAkbmFtZUVudHJpZXMpOwogICAgIG15ICRwYWNrZWRTaXplID0gc2Nh
bGFyIEB7JGtleXN9OwogCiAgICAgbXkgJGNvbXBhY3RTaXplTWFzayA9ICRudW1FbnRyaWVzIC0g
MTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5q
c29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0
cmlidXRlcy5qc29uCShyZXZpc2lvbiAyMTg5NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgkod29ya2luZyBjb3B5KQpAQCAtNTQsNiArNTQs
MTAgQEAKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSIsICJkaWN0
aW9uYXJ5IiwgImRpY3Rpb25hcnktbWVtYmVyIiwgImVudW0iLCAiYXR0cmlidXRlIiwgIm9wZXJh
dGlvbiIsICJjb25zdGFudCIsICJjYWxsYmFjay1mdW5jdGlvbiJdLAogICAgICAgICAgICAgInZh
bHVlcyI6IFsiKiJdCiAgICAgICAgIH0sCisgICAgICAgICJDb25kaXRpb25hbGx5UmVhZFdyaXRl
IjogeworICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiYXR0cmlidXRlIl0sCisgICAg
ICAgICAgICAidmFsdWVzIjogWyIqIl0KKyAgICAgICAgfSwKICAgICAgICAgIkNvbnN0YW50c1Nj
b3BlIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0sCiAg
ICAgICAgICAgICAidmFsdWVzIjogWyIqIl0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdE9iai5pZGwJKHJldmlzaW9uIDIxODk2OCkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0T2JqLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtNDUwLDYgKzQ1MCw5IEBAIGVudW0gVGVzdENvbmZpZGVuY2UgeyAiaGlnaCIsICJr
aW5kYS1sb3cKIAogICAgIE5vZGUgdGVzdFJldHVyblZhbHVlT3B0aW1pemF0aW9uKFtSZXR1cm5W
YWx1ZV0gTm9kZSBhLCBOb2RlIGIpOwogICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gTm9kZSB0ZXN0
UmV0dXJuVmFsdWVPcHRpbWl6YXRpb25XaXRoRXhjZXB0aW9uKFtSZXR1cm5WYWx1ZV0gTm9kZSBh
LCBOb2RlIGIpOworCisgICAgW0NvbmRpdGlvbmFsbHlSZWFkV3JpdGU9Q09ORElUSU9OXSBhdHRy
aWJ1dGUgTm9kZSBjb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlOworICAgIFtDb25kaXRp
b25hbD1DT05ESVRJT04yLCBDb25kaXRpb25hbGx5UmVhZFdyaXRlPUNPTkRJVElPTl0gYXR0cmli
dXRlIE5vZGUgY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlOwog
fTsKIAogLy8gVGhlIGZvbGxvd2luZyBjb21tZW50IHNob3VsZCBub3QgZ2VuZXJhdGUgYW55IGNv
ZGUuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNpb24gMjE4OTY4KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEzOTMsNiArMTM5MywxNiBAQCBKU0M6OkVuY29kZWRKU1ZhbHVlIGpzVGVzdE9ialB1dEZvcndh
cmRzCiBib29sIHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUoSlNDOjpF
eGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CiBib29sIHNl
dEpTVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7CitKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBK
U0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7CisjaWYgRU5BQkxFKENPTkRJ
VElPTikKK2Jvb2wgc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShK
U0M6OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUp
OworI2VuZGlmCisjaWYgRU5BQkxFKENPTkRJVElPTjIpCitKU0M6OkVuY29kZWRKU1ZhbHVlIGpz
VGVzdE9iakNvbmRpdGlvbmFsQW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKKyNp
ZiBFTkFCTEUoQ09ORElUSU9OKQorYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEFuZENvbmRp
dGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRK
U1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKKyNlbmRpZgorI2VuZGlmCiAKIGNsYXNzIEpT
VGVzdE9ialByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmplY3QgewogcHVibGlj
OgpAQCAtMTY4Niw2ICsxNjk2LDIwIEBAIHN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rl
c3RPYmpQcm8KICAgICB7ICJwdXRGb3J3YXJkc0F0dHJpYnV0ZSIsIEN1c3RvbUFjY2Vzc29yLCBO
b0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1
ZUZ1bmM+KGpzVGVzdE9ialB1dEZvcndhcmRzQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNf
Y2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqUHV0Rm9yd2Fy
ZHNBdHRyaWJ1dGUpIH0gfSwKICAgICB7ICJwdXRGb3J3YXJkc051bGxhYmxlQXR0cmlidXRlIiwg
Q3VzdG9tQWNjZXNzb3IsIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9w
ZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4oanNUZXN0T2JqUHV0Rm9yd2FyZHNOdWxsYWJsZUF0dHJp
YnV0ZSksIChpbnRwdHJfdCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1
bmM+KHNldEpTVGVzdE9ialB1dEZvcndhcmRzTnVsbGFibGVBdHRyaWJ1dGUpIH0gfSwKICAgICB7
ICJzdHJpbmdpZmllckF0dHJpYnV0ZSIsIEN1c3RvbUFjY2Vzc29yLCBOb0ludHJpbnNpYywgeyAo
aW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdE9i
alN0cmluZ2lmaWVyQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGUpIH0g
fSwKKyNpZiBFTkFCTEUoQ09ORElUSU9OKQorICAgIHsgImNvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGUiLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRp
Y19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25kaXRpb25hbGx5
UmVhZFdyaXRlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNs
b3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJp
YnV0ZSkgfSB9LAorI2Vsc2UKKyAgICB7ICJjb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
IiwgUmVhZE9ubHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlKSwgKGludHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0
eVNsb3Q6OlB1dFZhbHVlRnVuYz4oMCkgfSB9LAorI2VuZGlmCisjaWYgRU5BQkxFKENPTkRJVElP
TjIpCisjaWYgRU5BQkxFKENPTkRJVElPTikKKyAgICB7ICJjb25kaXRpb25hbEFuZENvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiLCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsg
KGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RP
YmpDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RP
YmpDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpIH0gfSwKKyNl
bHNlCisgICAgeyAiY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRl
IiwgUmVhZE9ubHkgfCBDdXN0b21BY2Nlc3NvciwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0
YXRpY19jYXN0PFByb3BlcnR5U2xvdDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RPYmpDb25kaXRpb25h
bEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUpLCAoaW50cHRyX3QpIHN0YXRpY19j
YXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPigwKSB9IH0sCisjZW5kaWYKKyNlbHNl
CisgICAgeyAwLCAwLCBOb0ludHJpbnNpYywgeyAwLCAwIH0gfSwKKyNlbmRpZgogI2lmIEVOQUJM
RShURVNUX0ZFQVRVUkUpCiAgICAgeyAiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiIsIEpTQzo6
RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxOYXRpdmVGdW5j
dGlvbj4oanNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1lT3BlcmF0aW9u
KSwgKGludHB0cl90KSAoMSkgfSB9LAogI2Vsc2UKQEAgLTQ4NzcsNiArNDkwMSw3OCBAQCBib29s
IHNldEpTVGVzdE9ialN0cmluZ2lmaWVyQXR0cmlidXRlKEV4CiAgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqU3RyaW5naWZpZXJBdHRyaWJ1dGVTZXR0
ZXI+KCpzdGF0ZSwgdGhpc1ZhbHVlLCBlbmNvZGVkVmFsdWUsICJzdHJpbmdpZmllckF0dHJpYnV0
ZSIpOwogfQogCitzdGF0aWMgaW5saW5lIEpTVmFsdWUganNUZXN0T2JqQ29uZGl0aW9uYWxseVJl
YWRXcml0ZUF0dHJpYnV0ZUdldHRlcihFeGVjU3RhdGUmIHN0YXRlLCBKU1Rlc3RPYmomIHRoaXNP
YmplY3QsIFRocm93U2NvcGUmIHRocm93U2NvcGUpCit7CisgICAgVU5VU0VEX1BBUkFNKHRocm93
U2NvcGUpOworICAgIFVOVVNFRF9QQVJBTShzdGF0ZSk7CisgICAgYXV0byYgaW1wbCA9IHRoaXNP
YmplY3Qud3JhcHBlZCgpOworICAgIEpTVmFsdWUgcmVzdWx0ID0gdG9KUzxJRExJbnRlcmZhY2U8
Tm9kZT4+KHN0YXRlLCAqdGhpc09iamVjdC5nbG9iYWxPYmplY3QoKSwgaW1wbC5jb25kaXRpb25h
bGx5UmVhZFdyaXRlQXR0cmlidXRlKCkpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK0VuY29k
ZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCit7Cisg
ICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RPYmo+OjpnZXQ8anNUZXN0T2JqQ29uZGl0aW9u
YWxseVJlYWRXcml0ZUF0dHJpYnV0ZUdldHRlcj4oKnN0YXRlLCB0aGlzVmFsdWUsICJjb25kaXRp
b25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7Cit9CisKKyNpZiBFTkFCTEUoQ09ORElUSU9OKQor
c3RhdGljIGlubGluZSBib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGVTZXR0ZXIoRXhlY1N0YXRlJiBzdGF0ZSwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBKU1Zh
bHVlIHZhbHVlLCBUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQoreworICAgIFVOVVNFRF9QQVJBTShz
dGF0ZSk7CisgICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOworICAgIGF1dG8mIGltcGwgPSB0
aGlzT2JqZWN0LndyYXBwZWQoKTsKKyAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExJ
bnRlcmZhY2U8Tm9kZT4+KHN0YXRlLCB2YWx1ZSwgW10oSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBK
U0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRocm93QXR0cmlidXRlVHlwZUVycm9yKHN0YXRlLCBz
Y29wZSwgIlRlc3RPYmplY3QiLCAiY29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSIsICJO
b2RlIik7IH0pOworICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZmFsc2UpOwor
ICAgIGltcGwuc2V0Q29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZSgqbmF0aXZlVmFsdWUp
OworICAgIHJldHVybiB0cnVlOworfQorCitib29sIHNldEpTVGVzdE9iakNvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVBdHRyaWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit7CisgICAgcmV0dXJuIElETEF0dHJp
YnV0ZTxKU1Rlc3RPYmo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0
dHJpYnV0ZVNldHRlcj4oKnN0YXRlLCB0aGlzVmFsdWUsIGVuY29kZWRWYWx1ZSwgImNvbmRpdGlv
bmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGUiKTsKK30KKworI2VuZGlmCisKKyNpZiBFTkFCTEUoQ09O
RElUSU9OMikKK3N0YXRpYyBpbmxpbmUgSlNWYWx1ZSBqc1Rlc3RPYmpDb25kaXRpb25hbEFuZENv
bmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXIoRXhlY1N0YXRlJiBzdGF0ZSwgSlNU
ZXN0T2JqJiB0aGlzT2JqZWN0LCBUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQoreworICAgIFVOVVNF
RF9QQVJBTSh0aHJvd1Njb3BlKTsKKyAgICBVTlVTRURfUEFSQU0oc3RhdGUpOworICAgIGF1dG8m
IGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKKyAgICBKU1ZhbHVlIHJlc3VsdCA9IHRvSlM8
SURMSW50ZXJmYWNlPE5vZGU+PihzdGF0ZSwgKnRoaXNPYmplY3QuZ2xvYmFsT2JqZWN0KCksIGlt
cGwuY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlKCkpOworICAg
IHJldHVybiByZXN1bHQ7Cit9CisKK0VuY29kZWRKU1ZhbHVlIGpzVGVzdE9iakNvbmRpdGlvbmFs
QW5kQ29uZGl0aW9uYWxseVJlYWRXcml0ZUF0dHJpYnV0ZShFeGVjU3RhdGUqIHN0YXRlLCBFbmNv
ZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKK3sKKyAgICByZXR1cm4gSURMQXR0
cmlidXRlPEpTVGVzdE9iaj46OmdldDxqc1Rlc3RPYmpDb25kaXRpb25hbEFuZENvbmRpdGlvbmFs
bHlSZWFkV3JpdGVBdHRyaWJ1dGVHZXR0ZXI+KCpzdGF0ZSwgdGhpc1ZhbHVlLCAiY29uZGl0aW9u
YWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7Cit9CisKKyNlbmRpZgorCisj
aWYgRU5BQkxFKENPTkRJVElPTjIpCisjaWYgRU5BQkxFKENPTkRJVElPTikKK3N0YXRpYyBpbmxp
bmUgYm9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVB
dHRyaWJ1dGVTZXR0ZXIoRXhlY1N0YXRlJiBzdGF0ZSwgSlNUZXN0T2JqJiB0aGlzT2JqZWN0LCBK
U1ZhbHVlIHZhbHVlLCBUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQoreworICAgIFVOVVNFRF9QQVJB
TShzdGF0ZSk7CisgICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOworICAgIGF1dG8mIGltcGwg
PSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKKyAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJ
RExJbnRlcmZhY2U8Tm9kZT4+KHN0YXRlLCB2YWx1ZSwgW10oSlNDOjpFeGVjU3RhdGUmIHN0YXRl
LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlKSB7IHRocm93QXR0cmlidXRlVHlwZUVycm9yKHN0YXRl
LCBzY29wZSwgIlRlc3RPYmplY3QiLCAiY29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdy
aXRlQXR0cmlidXRlIiwgIk5vZGUiKTsgfSk7CisgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJv
d1Njb3BlLCBmYWxzZSk7CisgICAgaW1wbC5zZXRDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlS
ZWFkV3JpdGVBdHRyaWJ1dGUoKm5hdGl2ZVZhbHVlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
Ym9vbCBzZXRKU1Rlc3RPYmpDb25kaXRpb25hbEFuZENvbmRpdGlvbmFsbHlSZWFkV3JpdGVBdHRy
aWJ1dGUoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBFbmNvZGVk
SlNWYWx1ZSBlbmNvZGVkVmFsdWUpCit7CisgICAgcmV0dXJuIElETEF0dHJpYnV0ZTxKU1Rlc3RP
Ymo+OjpzZXQ8c2V0SlNUZXN0T2JqQ29uZGl0aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRl
QXR0cmlidXRlU2V0dGVyPigqc3RhdGUsIHRoaXNWYWx1ZSwgZW5jb2RlZFZhbHVlLCAiY29uZGl0
aW9uYWxBbmRDb25kaXRpb25hbGx5UmVhZFdyaXRlQXR0cmlidXRlIik7Cit9CisKKyNlbmRpZgor
CisjZW5kaWYKKwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiBzdGF0aWMgaW5saW5lIEpTQzo6
RW5jb2RlZEpTVmFsdWUganNUZXN0T2JqUHJvdG90eXBlRnVuY3Rpb25FbmFibGVkQXRSdW50aW1l
T3BlcmF0aW9uMUJvZHkoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCB0eXBlbmFtZSBJRExPcGVyYXRp
b248SlNUZXN0T2JqPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhpcywgSlNDOjpUaHJvd1Njb3Bl
JiB0aHJvd1Njb3BlKQogewpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC90cmFjay9BdWRpb1Ry
YWNrLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1ZGlvVHJh
Y2suaWRsCShyZXZpc2lvbiAyMTg5NjgpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL0F1
ZGlvVHJhY2suaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5ICsyOSw5IEBACiAgICAgSlNDdXN0
b21NYXJrRnVuY3Rpb24KIF0gaW50ZXJmYWNlIEF1ZGlvVHJhY2sgewogICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgaWQ7Ci0gICAgW0N1c3RvbVNldHRlcl0gYXR0cmlidXRlIERPTVN0
cmluZyBraW5kOworICAgIFtDb25kaXRpb25hbGx5UmVhZFdyaXRlPU1FRElBX1NPVVJDRV0gYXR0
cmlidXRlIERPTVN0cmluZyBraW5kOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
bGFiZWw7Ci0gICAgW0N1c3RvbVNldHRlcl0gYXR0cmlidXRlIERPTVN0cmluZyBsYW5ndWFnZTsK
KyAgICBbQ29uZGl0aW9uYWxseVJlYWRXcml0ZT1NRURJQV9TT1VSQ0VdIGF0dHJpYnV0ZSBET01T
dHJpbmcgbGFuZ3VhZ2U7CiAKICAgICBhdHRyaWJ1dGUgYm9vbGVhbiBlbmFibGVkOwogfTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9odG1sL3RyYWNrL1RleHRUcmFjay5pZGwJKHJldmlzaW9uIDIxODk2
OCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvdHJhY2svVGV4dFRyYWNrLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMzUsNyArMzUsNyBAQCBlbnVtIFRleHRUcmFja0tpbmQgeyAic3VidGl0bGVzIiwg
ImNhcHRpCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBpZDsKICAgICBbSW1wbGVt
ZW50ZWRBcz1raW5kRm9yQmluZGluZ3NdIGF0dHJpYnV0ZSBUZXh0VHJhY2tLaW5kIGtpbmQ7CiAg
ICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBsYWJlbDsKLSAgICBbQ3VzdG9tU2V0dGVy
XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGxhbmd1YWdlOworICAgIFtDb25kaXRpb25hbGx5UmVhZFdy
aXRlPU1FRElBX1NPVVJDRV0gYXR0cmlidXRlIERPTVN0cmluZyBsYW5ndWFnZTsKICAgICByZWFk
b25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGluQmFuZE1ldGFkYXRhVHJhY2tEaXNwYXRjaFR5cGU7
CiAKICAgICBhdHRyaWJ1dGUgVGV4dFRyYWNrTW9kZSBtb2RlOwpJbmRleDogU291cmNlL1dlYkNv
cmUvaHRtbC90cmFjay9WaWRlb1RyYWNrLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaWRsCShyZXZpc2lvbiAyMTg5NjgpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL3RyYWNrL1ZpZGVvVHJhY2suaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw5
ICsyOSw5IEBACiAgICAgSlNDdXN0b21NYXJrRnVuY3Rpb24KIF0gaW50ZXJmYWNlIFZpZGVvVHJh
Y2sgewogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgaWQ7Ci0gICAgW0N1c3RvbVNl
dHRlcl0gYXR0cmlidXRlIERPTVN0cmluZyBraW5kOworICAgIFtDb25kaXRpb25hbGx5UmVhZFdy
aXRlPU1FRElBX1NPVVJDRV0gYXR0cmlidXRlIERPTVN0cmluZyBraW5kOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgbGFiZWw7Ci0gICAgW0N1c3RvbVNldHRlcl0gYXR0cmlidXRl
IERPTVN0cmluZyBsYW5ndWFnZTsKKyAgICBbQ29uZGl0aW9uYWxseVJlYWRXcml0ZT1NRURJQV9T
T1VSQ0VdIGF0dHJpYnV0ZSBET01TdHJpbmcgbGFuZ3VhZ2U7CiAKICAgICBhdHRyaWJ1dGUgYm9v
bGVhbiBzZWxlY3RlZDsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>