<?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>166673</bug_id>
          
          <creation_ts>2017-01-03 18:41:07 -0800</creation_ts>
          <short_desc>Place all the Cocoa WebCore API tests in the same directory</short_desc>
          <delta_ts>2017-01-03 19:53:02 -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>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="Andy Estes">aestes</reporter>
          <assigned_to name="Andy Estes">aestes</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1263646</commentid>
    <comment_count>0</comment_count>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-03 18:41:07 -0800</bug_when>
    <thetext>Place all the Cocoa WebCore API tests in the same directory</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263647</commentid>
    <comment_count>1</comment_count>
      <attachid>297982</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2017-01-03 18:44:32 -0800</bug_when>
    <thetext>Created attachment 297982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263648</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-03 18:47:09 -0800</bug_when>
    <thetext>Attachment 297982 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm:32:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm:36:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebCore/cocoa/WebCoreNSURLSession.mm:42:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 3 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263675</commentid>
    <comment_count>3</comment_count>
      <attachid>297982</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-01-03 19:50:06 -0800</bug_when>
    <thetext>Comment on attachment 297982
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263676</commentid>
    <comment_count>4</comment_count>
      <attachid>297982</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-03 19:52:59 -0800</bug_when>
    <thetext>Comment on attachment 297982
Patch

Clearing flags on attachment: 297982

Committed r210268: &lt;http://trac.webkit.org/changeset/210268&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1263677</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-03 19:53:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>297982</attachid>
            <date>2017-01-03 18:44:32 -0800</date>
            <delta_ts>2017-01-03 19:52:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-166673-20170103184306.patch</filename>
            <type>text/plain</type>
            <size>41455</size>
            <attacher name="Andy Estes">aestes</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwMjU4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODYyMTIwYjAwZDBkODMyYWMxZTBhOTU2NzBhMmY4ODIz
NTNkNTUyOC4uM2Q1OWQ4N2FhNmJhZTVmZDJjMzY3OTRmMmY0NzY5ZmU1NjM3ZDU4MCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1
IEBACisyMDE3LTAxLTAzICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KKworICAgICAg
ICBQbGFjZSBhbGwgdGhlIENvY29hIFdlYkNvcmUgQVBJIHRlc3RzIGluIHRoZSBzYW1lIGRpcmVj
dG9yeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY2
NjczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvU2VyaWFsaXplZENyeXB0
b0tleVdyYXAubW06IFJlbmFtZWQgZnJvbSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0uCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL1VSTEV4dHJhcy5tbTogUmVuYW1lZCBmcm9tIFRvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvQ29jb2EvVVJMRXh0cmFzLm1tLgorICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tOiBSZW5hbWVkIGZy
b20gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL1dlYkNvcmVOU1VSTFNlc3Npb24u
bW0uCisKIDIwMTctMDEtMDMgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBNYWtlIFdURjo6RXhwZWN0ZWQgc3VwcG9ydCBSZWYgdGVtcGxhdGUgcGFyYW1ldGVycwpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCBjMTNiZGZiMzc1NjJiNzc3NTQ4NDZjYWI0YzkzNmIzNTFi
MWQwMTE2Li4zOGVhYzBjMTE5MmMzOGVlNjUyZDFkZjllOGVjZGU1MTRjYjcyOGE3IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtMTA5OSw3ICsxMDk5LDcgQEAKIAkJOTNBNDI3QUMxODBEQTYw
RjAwQ0QyNEQ3IC8qIE1vdmVPbmx5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vdmVPbmx5Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQTQyN0FEMTgwREE2MEYwMENEMjRENyAvKiBSZWZM
b2dnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVmTG9nZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkzQTcyMEU1MThGMUEwRTgwMEE4NDhFMSAvKiBDYWxjdWxhdGlvblZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhbGN1bGF0aW9uVmFsdWUu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5M0E3RUIzQzE4RkE2M0E0MDA5RTc2
NzAgLyogVVJMRXh0cmFzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1l
ID0gVVJMRXh0cmFzLm1tOyBwYXRoID0gLi4vQ29jb2EvVVJMRXh0cmFzLm1tOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQk5M0E3RUIzQzE4RkE2M0E0MDA5RTc2NzAgLyogVVJMRXh0cmFz
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVVJMRXh0cmFzLm1t
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0FCQTgwODE2RERBQjkxMDAyREIyRkEg
LyogU3RyaW5nSGFzaGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFN0cmluZ0hhc2hlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzQUY0RUNB
MTUwNkYwMzUwMDdGRDU3RSAvKiBOZXdGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JJbWFn
ZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmV3Rmlyc3RWaXN1
YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNBRjRFQ0QxNTA2RjA2NDAwN0ZENTdFIC8qIE5ld0ZpcnN0VmlzdWFsbHlOb25FbXB0
eUxheW91dEZvckltYWdlc19CdW5kbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTmV3Rmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9ySW1hZ2VzX0J1bmRsZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTM3LDYgKzE1MzcsNyBAQAogCQk0
NDBBMUQzNjE0QTAxMDAwMDA4QTY2RjIgLyogV2ViQ29yZSAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJQ0Q4OUQwMzcxQzRFREIxMzAwMDQwQTA0IC8qIGNv
Y29hICovLAogCQkJCTdBOTA5QTZGMUQ4Nzc0NzUwMDdFMTBGOCAvKiBBZmZpbmVUcmFuc2Zvcm0u
Y3BwICovLAogCQkJCTdBOTA5QTcwMUQ4Nzc0NzUwMDdFMTBGOCAvKiBGbG9hdFBvaW50LmNwcCAq
LywKIAkJCQk3QTkwOUE3MTFEODc3NDc1MDA3RTEwRjggLyogRmxvYXRSZWN0LmNwcCAqLywKQEAg
LTE1NDQsNyArMTU0NSw2IEBACiAJCQkJN0E5MDlBNzMxRDg3NzQ3NTAwN0UxMEY4IC8qIEludFBv
aW50LmNwcCAqLywKIAkJCQk3QTkwOUE3NDFEODc3NDc1MDA3RTEwRjggLyogSW50UmVjdC5jcHAg
Ki8sCiAJCQkJN0E5MDlBNzUxRDg3NzQ3NTAwN0UxMEY4IC8qIEludFNpemUuY3BwICovLAotCQkJ
CUNEODlEMDM3MUM0RURCMTMwMDA0MEEwNCAvKiBjb2NvYSAqLywKIAkJCQk5M0E3MjBFNTE4RjFB
MEU4MDBBODQ4RTEgLyogQ2FsY3VsYXRpb25WYWx1ZS5jcHAgKi8sCiAJCQkJN0MzOTY1MDUxQ0RE
NzRGOTAwOTREQkI4IC8qIENvbG9yLmNwcCAqLywKIAkJCQk3Q0IxODRDNDFBQTNGMjEwMDA2NkVE
RkQgLyogQ29udGVudEV4dGVuc2lvbnMuY3BwICovLApAQCAtMjE1NywxMSArMjE1NywxMSBAQAog
CQlDRDg5RDAzNzFDNEVEQjEzMDAwNDBBMDQgLyogY29jb2EgKi8gPSB7CiAJCQlpc2EgPSBQQlhH
cm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTU3NjlDNTBBMUQ5QjAwMDEwMDA4NDdGQiAvKiBT
ZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLywKIAkJCQk5M0E3RUIzQzE4RkE2M0E0MDA5RTc2
NzAgLyogVVJMRXh0cmFzLm1tICovLAogCQkJCUNEODlEMDM4MUM0RURCMkEwMDA0MEEwNCAvKiBX
ZWJDb3JlTlNVUkxTZXNzaW9uLm1tICovLAotCQkJCTU3NjlDNTBBMUQ5QjAwMDEwMDA4NDdGQiAv
KiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSAqLywKIAkJCSk7Ci0JCQluYW1lID0gY29jb2E7
CisJCQlwYXRoID0gY29jb2E7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OwogCQlD
REM4RTQ5ODFCQzcyOEFFMDA1OTRGRUMgLyogV2ViS2l0ICovID0gewpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9Db2NvYS9VUkxFeHRyYXMubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL0NvY29hL1VSTEV4dHJhcy5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYmFiZGY0OTZkMDQ3NDZjNmY1OTRkM2E4MjRiZjExODFkZWJkNTQ5YS4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL0NvY29hL1VSTEV4dHJhcy5tbQorKysgL2Rldi9udWxsCkBAIC0xLDE0OSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0KLSNpbXBvcnQgPFdlYkNvcmUvV2Vi
Q29yZU5TVVJMRXh0cmFzLmg+Ci0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQotc3RhdGlj
IE5TRGF0YSAqbGl0ZXJhbEFzRGF0YShjb25zdCBjaGFyKiBsaXRlcmFsKQotewotICAgIHJldHVy
biBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6bGl0ZXJhbCBsZW5ndGg6c3RybGVuKGxpdGVyYWwpXTsK
LX0KLQotc3RhdGljIGNvbnN0IGNoYXIqIGRhdGFBc1N0cmluZyhOU0RhdGEgKmRhdGEpCi17Ci0g
ICAgc3RhdGljIGNoYXIgYnVmZmVyWzEwMDBdOwotICAgIGlmIChbZGF0YSBsZW5ndGhdID4gc2l6
ZW9mKGJ1ZmZlcikgLSAxKQotICAgICAgICByZXR1cm4gIkVSUk9SIjsKLSAgICBpZiAobWVtY2hy
KFtkYXRhIGJ5dGVzXSwgMCwgW2RhdGEgbGVuZ3RoXSkpCi0gICAgICAgIHJldHVybiAiRVJST1Ii
OwotICAgIG1lbWNweShidWZmZXIsIFtkYXRhIGJ5dGVzXSwgW2RhdGEgbGVuZ3RoXSk7Ci0gICAg
YnVmZmVyW1tkYXRhIGxlbmd0aF1dID0gJ1wwJzsKLSAgICByZXR1cm4gYnVmZmVyOwotfQotCi1z
dGF0aWMgY29uc3QgY2hhciogb3JpZ2luYWxEYXRhQXNTdHJpbmcoTlNVUkwgKlVSTCkKLXsKLSAg
ICByZXR1cm4gZGF0YUFzU3RyaW5nKFdlYkNvcmU6Om9yaWdpbmFsVVJMRGF0YShVUkwpKTsKLX0K
LQotc3RhdGljIGNvbnN0IGNoYXIqIHVzZXJWaXNpYmxlU3RyaW5nKE5TVVJMICpVUkwpCi17Ci0g
ICAgcmV0dXJuIFtXZWJDb3JlOjp1c2VyVmlzaWJsZVN0cmluZyhVUkwpIFVURjhTdHJpbmddOwot
fQotCi1zdGF0aWMgTlNVUkwgKmxpdGVyYWxVUkwoY29uc3QgY2hhciogbGl0ZXJhbCkKLXsKLSAg
ICByZXR1cm4gV2ViQ29yZTo6VVJMV2l0aERhdGEobGl0ZXJhbEFzRGF0YShsaXRlcmFsKSwgbmls
KTsKLX0KLQotVEVTVChXZWJDb3JlLCBVUkxFeHRyYXMpCi17Ci0gICAgRVhQRUNUX1NUUkVRKCJo
dHRwOi8vc2l0ZS5jb20iLCBvcmlnaW5hbERhdGFBc1N0cmluZyhsaXRlcmFsVVJMKCJodHRwOi8v
c2l0ZS5jb20iKSkpOwotICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovLyU3N2Vic2l0ZS5jb20iLCBv
cmlnaW5hbERhdGFBc1N0cmluZyhsaXRlcmFsVVJMKCJodHRwOi8vJTc3ZWJzaXRlLmNvbSIpKSk7
Ci0KLSAgICBFWFBFQ1RfU1RSRVEoImh0dHA6Ly9zaXRlLmNvbSIsIHVzZXJWaXNpYmxlU3RyaW5n
KGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbSIpKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJodHRw
Oi8vJTc3ZWJzaXRlLmNvbSIsIHVzZXJWaXNpYmxlU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly8l
NzdlYnNpdGUuY29tIikpKTsKLX0KLQotVEVTVChXZWJDb3JlLCBVUkxFeHRyYXNfRGl2aXNpb25T
aWduKQotewotICAgIC8vIFNlbGVjdGVkIHRoZSBkaXZpc2lvbiBzaWduIGFzIGFuIGV4YW1wbGUg
b2YgYSBub24tQVNDSUkgY2hhcmFjdGVyIHRoYXQgaXMgYWxsb3dlZCBpbiBob3N0IG5hbWVzLCBz
aW5jZSBpdCdzIGEgbG9va2FsaWtlIGNoYXJhY3Rlci4KLQotICAgIC8vIENvZGUgcGF0aCBzaW1p
bGFyIHRvIHRoZSBvbmUgdXNlZCB3aGVuIHR5cGluZyBpbiBhIFVSTC4KLSAgICBFWFBFQ1RfU1RS
RVEoImh0dHA6Ly9zaXRlLnhuLS1jb21vdGhlcnNpdGUta2piLm9yZyIsIG9yaWdpbmFsRGF0YUFz
U3RyaW5nKFdlYkNvcmU6OlVSTFdpdGhVc2VyVHlwZWRTdHJpbmcoQCJodHRwOi8vc2l0ZS5jb21c
eEMzXHhCN290aGVyc2l0ZS5vcmciLCBuaWwpKSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJodHRwOi8v
c2l0ZS5jb21ceEMzXHhCN290aGVyc2l0ZS5vcmciLCB1c2VyVmlzaWJsZVN0cmluZyhXZWJDb3Jl
OjpVUkxXaXRoVXNlclR5cGVkU3RyaW5nKEAiaHR0cDovL3NpdGUuY29tXHhDM1x4QjdvdGhlcnNp
dGUub3JnIiwgbmlsKSkpOwotCi0gICAgLy8gQ29kZSBwYXRocyBzaW1pbGFyIHRvIHRoZSBvbmVz
IHVzZWQgZm9yIFVSTHMgZm91bmQgaW4gd2VicGFnZXMgb3IgSFRUUCByZXNwb25zZXMuCi0gICAg
RVhQRUNUX1NUUkVRKCJodHRwOi8vc2l0ZS5jb21ceEMzXHhCN290aGVyc2l0ZS5vcmciLCBvcmln
aW5hbERhdGFBc1N0cmluZyhsaXRlcmFsVVJMKCJodHRwOi8vc2l0ZS5jb21ceEMzXHhCN290aGVy
c2l0ZS5vcmciKSkpOwotICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3NpdGUuY29tXHhDM1x4Qjdv
dGhlcnNpdGUub3JnIiwgdXNlclZpc2libGVTdHJpbmcobGl0ZXJhbFVSTCgiaHR0cDovL3NpdGUu
Y29tXHhDM1x4QjdvdGhlcnNpdGUub3JnIikpKTsKLSAgICBFWFBFQ1RfU1RSRVEoImh0dHA6Ly9z
aXRlLmNvbSVDMyVCN290aGVyc2l0ZS5vcmciLCBvcmlnaW5hbERhdGFBc1N0cmluZyhsaXRlcmFs
VVJMKCJodHRwOi8vc2l0ZS5jb20lQzMlQjdvdGhlcnNpdGUub3JnIikpKTsKLSAgICBFWFBFQ1Rf
U1RSRVEoImh0dHA6Ly9zaXRlLmNvbVx4QzNceEI3b3RoZXJzaXRlLm9yZyIsIHVzZXJWaXNpYmxl
U3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbSVDMyVCN290aGVyc2l0ZS5vcmciKSkp
OwotCi0gICAgLy8gU2VwYXJhdGUgZnVuY3Rpb25zIHRoYXQgZGVhbCB3aXRoIGp1c3QgYSBob3N0
IG5hbWUgb24gaXRzIG93bi4KLSAgICBFWFBFQ1RfU1RSRVEoInNpdGUueG4tLWNvbW90aGVyc2l0
ZS1ramIub3JnIiwgW1dlYkNvcmU6OmVuY29kZUhvc3ROYW1lKEAic2l0ZS5jb21ceEMzXHhCN290
aGVyc2l0ZS5vcmciKSBVVEY4U3RyaW5nXSk7Ci0gICAgRVhQRUNUX1NUUkVRKCJzaXRlLmNvbVx4
QzNceEI3b3RoZXJzaXRlLm9yZyIsIFtXZWJDb3JlOjpkZWNvZGVIb3N0TmFtZShAInNpdGUuY29t
XHhDM1x4QjdvdGhlcnNpdGUub3JnIikgVVRGOFN0cmluZ10pOwotfQotCi1URVNUKFdlYkNvcmUs
IFVSTEV4dHJhc19Tb2xpZHVzKQotewotICAgIC8vIFNlbGVjdGVkIGZ1bGwgd2lkdGggc29saWR1
cywgd2hpY2ggbG9va3MgbGlrZSB0aGUgc29saWR1cywgd2hpY2ggaXMgdGhlIGNoYXJhY3RlciB0
aGF0IGluZGljYXRlcyB0aGUgZW5kIG9mIHRoZSBob3N0IG5hbWUuCi0KLSAgICAvLyBDb2RlIHBh
dGggc2ltaWxhciB0byB0aGUgb25lIHVzZWQgd2hlbiB0eXBpbmcgaW4gYSBVUkwuCi0gICAgRVhQ
RUNUX1NUUkVRKCJodHRwOi8vc2l0ZS5jb20vb3RoZXJzaXRlLm9yZyIsIG9yaWdpbmFsRGF0YUFz
U3RyaW5nKFdlYkNvcmU6OlVSTFdpdGhVc2VyVHlwZWRTdHJpbmcoQCJodHRwOi8vc2l0ZS5jb21c
eEVGXHhCQ1x4OEZvdGhlcnNpdGUub3JnIiwgbmlsKSkpOwotICAgIEVYUEVDVF9TVFJFUSgiaHR0
cDovL3NpdGUuY29tL290aGVyc2l0ZS5vcmciLCB1c2VyVmlzaWJsZVN0cmluZyhXZWJDb3JlOjpV
UkxXaXRoVXNlclR5cGVkU3RyaW5nKEAiaHR0cDovL3NpdGUuY29tXHhFRlx4QkNceDhGb3RoZXJz
aXRlLm9yZyIsIG5pbCkpKTsKLQotICAgIC8vIENvZGUgcGF0aHMgc2ltaWxhciB0byB0aGUgb25l
cyB1c2VkIGZvciBVUkxzIGZvdW5kIGluIHdlYnBhZ2VzIG9yIEhUVFAgcmVzcG9uc2VzLgotICAg
IEVYUEVDVF9TVFJFUSgiaHR0cDovL3NpdGUuY29tXHhFRlx4QkNceDhGb3RoZXJzaXRlLm9yZyIs
IG9yaWdpbmFsRGF0YUFzU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbVx4RUZceEJD
XHg4Rm90aGVyc2l0ZS5vcmciKSkpOwotICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3NpdGUuY29t
JUVGJUJDJThGb3RoZXJzaXRlLm9yZyIsIHVzZXJWaXNpYmxlU3RyaW5nKGxpdGVyYWxVUkwoImh0
dHA6Ly9zaXRlLmNvbVx4RUZceEJDXHg4Rm90aGVyc2l0ZS5vcmciKSkpOwotICAgIEVYUEVDVF9T
VFJFUSgiaHR0cDovL3NpdGUuY29tJUVGJUJDJThGb3RoZXJzaXRlLm9yZyIsIG9yaWdpbmFsRGF0
YUFzU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbSVFRiVCQyU4Rm90aGVyc2l0ZS5v
cmciKSkpOwotICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3NpdGUuY29tJUVGJUJDJThGb3RoZXJz
aXRlLm9yZyIsIHVzZXJWaXNpYmxlU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbSVF
RiVCQyU4Rm90aGVyc2l0ZS5vcmciKSkpOwotCi0gICAgLy8gU2VwYXJhdGUgZnVuY3Rpb25zIHRo
YXQgZGVhbCB3aXRoIGp1c3QgYSBob3N0IG5hbWUgb24gaXRzIG93bi4KLSAgICBFWFBFQ1RfU1RS
RVEoInNpdGUuY29tL290aGVyc2l0ZS5vcmciLCBbV2ViQ29yZTo6ZW5jb2RlSG9zdE5hbWUoQCJz
aXRlLmNvbVx4RUZceEJDXHg4Rm90aGVyc2l0ZS5vcmciKSBVVEY4U3RyaW5nXSk7Ci0gICAgRVhQ
RUNUX1NUUkVRKCJzaXRlLmNvbS9vdGhlcnNpdGUub3JnIiwgW1dlYkNvcmU6OmRlY29kZUhvc3RO
YW1lKEAic2l0ZS5jb21ceEVGXHhCQ1x4OEZvdGhlcnNpdGUub3JnIikgVVRGOFN0cmluZ10pOwot
fQotCi1URVNUKFdlYkNvcmUsIFVSTEV4dHJhc19TcGFjZSkKLXsKLSAgICAvLyBTZWxlY3RlZCBp
ZGVvZ3JhcGhpYyBzcGFjZSwgd2hpY2ggbG9va3MgbGlrZSB0aGUgQVNDSUkgc3BhY2UsIHdoaWNo
IGlzIG5vdCBhbGxvd2VkIHVuZXNjYXBlZC4KLQotICAgIC8vIENvZGUgcGF0aCBzaW1pbGFyIHRv
IHRoZSBvbmUgdXNlZCB3aGVuIHR5cGluZyBpbiBhIFVSTC4KLSAgICBFWFBFQ1RfU1RSRVEoImh0
dHA6Ly9zaXRlLmNvbSUyMG90aGVyc2l0ZS5vcmciLCBvcmlnaW5hbERhdGFBc1N0cmluZyhXZWJD
b3JlOjpVUkxXaXRoVXNlclR5cGVkU3RyaW5nKEAiaHR0cDovL3NpdGUuY29tXHhFM1x4ODBceDgw
b3RoZXJzaXRlLm9yZyIsIG5pbCkpKTsKLSAgICBFWFBFQ1RfU1RSRVEoImh0dHA6Ly9zaXRlLmNv
bSUyMG90aGVyc2l0ZS5vcmciLCB1c2VyVmlzaWJsZVN0cmluZyhXZWJDb3JlOjpVUkxXaXRoVXNl
clR5cGVkU3RyaW5nKEAiaHR0cDovL3NpdGUuY29tXHhFM1x4ODBceDgwb3RoZXJzaXRlLm9yZyIs
IG5pbCkpKTsKLQotICAgIC8vIENvZGUgcGF0aHMgc2ltaWxhciB0byB0aGUgb25lcyB1c2VkIGZv
ciBVUkxzIGZvdW5kIGluIHdlYnBhZ2VzIG9yIEhUVFAgcmVzcG9uc2VzLgotICAgIEVYUEVDVF9T
VFJFUSgiaHR0cDovL3NpdGUuY29tXHhFM1x4ODBceDgwb3RoZXJzaXRlLm9yZyIsIG9yaWdpbmFs
RGF0YUFzU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbVx4RTNceDgwXHg4MG90aGVy
c2l0ZS5vcmciKSkpOwotICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3NpdGUuY29tJUUzJTgwJTgw
b3RoZXJzaXRlLm9yZyIsIHVzZXJWaXNpYmxlU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRl
LmNvbVx4RTNceDgwXHg4MG90aGVyc2l0ZS5vcmciKSkpOwotICAgIEVYUEVDVF9TVFJFUSgiaHR0
cDovL3NpdGUuY29tJUUzJTgwJTgwb3RoZXJzaXRlLm9yZyIsIG9yaWdpbmFsRGF0YUFzU3RyaW5n
KGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbSVFMyU4MCU4MG90aGVyc2l0ZS5vcmciKSkpOwot
ICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3NpdGUuY29tJUUzJTgwJTgwb3RoZXJzaXRlLm9yZyIs
IHVzZXJWaXNpYmxlU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbSVFMyU4MCU4MG90
aGVyc2l0ZS5vcmciKSkpOwotCi0gICAgLy8gU2VwYXJhdGUgZnVuY3Rpb25zIHRoYXQgZGVhbCB3
aXRoIGp1c3QgYSBob3N0IG5hbWUgb24gaXRzIG93bi4KLSAgICBFWFBFQ1RfU1RSRVEoInNpdGUu
Y29tIG90aGVyc2l0ZS5vcmciLCBbV2ViQ29yZTo6ZW5jb2RlSG9zdE5hbWUoQCJzaXRlLmNvbVx4
RTNceDgwXHg4MG90aGVyc2l0ZS5vcmciKSBVVEY4U3RyaW5nXSk7Ci0gICAgRVhQRUNUX1NUUkVR
KCJzaXRlLmNvbVx4RTNceDgwXHg4MG90aGVyc2l0ZS5vcmciLCBbV2ViQ29yZTo6ZGVjb2RlSG9z
dE5hbWUoQCJzaXRlLmNvbVx4RTNceDgwXHg4MG90aGVyc2l0ZS5vcmciKSBVVEY4U3RyaW5nXSk7
Ci19Ci0KLVRFU1QoV2ViQ29yZSwgVVJMRXh0cmFzX1BhcnNpbmdFcnJvcikKLXsKLSAgICAvLyBF
eHBlY3QgSUROIGZhaWx1cmUuCi0gICAgTlNVUkwgKnVybCA9IFdlYkNvcmU6OlVSTFdpdGhVc2Vy
VHlwZWRTdHJpbmcoQCJodHRwOi8v76O/LmNvbSIsIG5pbCk7Ci0gICAgRVhQRUNUX1RSVUUodXJs
ID09IG5pbCk7Ci0KLSAgICBOU1N0cmluZyAqZW5jb2RlZEhvc3ROYW1lID0gV2ViQ29yZTo6ZW5j
b2RlSG9zdE5hbWUoQCJodHRwOi8v76O/LmNvbSIpOwotICAgIEVYUEVDVF9UUlVFKGVuY29kZWRI
b3N0TmFtZSA9PSBuaWwpOwotfQotCi1URVNUKFdlYkNvcmUsIFVSTEV4dHJhc19OaWwpCi17Ci0g
ICAgTlNVUkwgKnVybDEgPSBXZWJDb3JlOjpVUkxXaXRoVXNlclR5cGVkU3RyaW5nKG5pbCwgbmls
KTsKLSAgICBFWFBFQ1RfVFJVRSh1cmwxID09IG5pbCk7Ci0KLSAgICBOU1VSTCAqdXJsMiA9IFdl
YkNvcmU6OlVSTFdpdGhVc2VyVHlwZWRTdHJpbmdEZXByZWNhdGVkKG5pbCwgbmlsKTsKLSAgICBF
WFBFQ1RfVFJVRSh1cmwyID09IG5pbCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRB
UEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9TZXJpYWxp
emVkQ3J5cHRvS2V5V3JhcC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9T
ZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
ODJmODI0MDBlYzkzYTkxMzM4NzljZjhiZTMxYTllZTkzYjc0YmQ0Yi4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvU2VyaWFsaXplZENyeXB0b0tleVdyYXAubW0KKysrIC9kZXYvbnVsbApAQCAtMSwx
MDEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
Ci0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgotCi0jaW1wb3J0IDxX
ZWJDb3JlL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmg+Ci0jaW1wb3J0IDx3dGYvTWFpblRocmVh
ZC5oPgotCi1uYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7Ci0KLS8vIFRPRE86IFdlIHNob3VsZCBl
bmFibGUgdGhlIGZvbGxvd2luZyB0ZXN0cyBvbiBpT1Mgc2ltdWxhdG9yIG9uY2UgPHJkYXI6Ly9w
cm9ibGVtLzI4NTM0NjY2PiBpcyBmaXhlZC4KLS8vIEEgc2VwZXJhdGUgYnVnIGlzIGZpbGVkIGFi
b3V0IHRoaXM6IDxyZGFyOi8vcHJvYmxlbS8yODUwNzI0MD4uCi0jaWYgIVBMQVRGT1JNKElPUykK
LWNsYXNzIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0
IHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKQotICAgIHsKLSAgICAgICAgV1RG
Ojppbml0aWFsaXplTWFpblRocmVhZCgpOwotICAgICAgICBXZWJDb3JlOjpkZWxldGVEZWZhdWx0
V2ViQ3J5cHRvTWFzdGVyS2V5KCk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lkIFRlYXJEb3du
KCkKLSAgICB7Ci0gICAgICAgIFdlYkNvcmU6OmRlbGV0ZURlZmF1bHRXZWJDcnlwdG9NYXN0ZXJL
ZXkoKTsKLSAgICB9Ci19OwotCi1URVNUX0YoU2VyaWFsaXplZENyeXB0b0tleVdyYXBUZXN0LCBH
ZXREZWZhdWx0V2ViQ3J5cHRvTWFzdGVyS2V5KQotewotICAgIFZlY3Rvcjx1aW50OF90PiBtYXN0
ZXJLZXkxOwotICAgIEVYUEVDVF9UUlVFKFdlYkNvcmU6OmdldERlZmF1bHRXZWJDcnlwdG9NYXN0
ZXJLZXkobWFzdGVyS2V5MSkpOwotCi0gICAgVmVjdG9yPHVpbnQ4X3Q+IG1hc3RlcktleTI7Ci0g
ICAgRVhQRUNUX1RSVUUoV2ViQ29yZTo6Z2V0RGVmYXVsdFdlYkNyeXB0b01hc3RlcktleShtYXN0
ZXJLZXkyKSk7Ci0KLSAgICBFWFBFQ1RfVFJVRShtYXN0ZXJLZXkxID09IG1hc3RlcktleTIpOwot
fQotCi1URVNUX0YoU2VyaWFsaXplZENyeXB0b0tleVdyYXBUZXN0LCBEZWxldGVEZWZhdWx0V2Vi
Q3J5cHRvTWFzdGVyS2V5KQotewotICAgIFZlY3Rvcjx1aW50OF90PiBtYXN0ZXJLZXkxOwotICAg
IEVYUEVDVF9UUlVFKFdlYkNvcmU6OmdldERlZmF1bHRXZWJDcnlwdG9NYXN0ZXJLZXkobWFzdGVy
S2V5MSkpOwotICAgIEVYUEVDVF9UUlVFKFdlYkNvcmU6OmRlbGV0ZURlZmF1bHRXZWJDcnlwdG9N
YXN0ZXJLZXkoKSk7Ci0KLSAgICBWZWN0b3I8dWludDhfdD4gbWFzdGVyS2V5MjsKLSAgICBFWFBF
Q1RfVFJVRShXZWJDb3JlOjpnZXREZWZhdWx0V2ViQ3J5cHRvTWFzdGVyS2V5KG1hc3RlcktleTIp
KTsKLQotICAgIEVYUEVDVF9UUlVFKG1hc3RlcktleTEgIT0gbWFzdGVyS2V5Mik7Ci19Ci0KLVRF
U1RfRihTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcFRlc3QsIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFw
VW53cmFwKQotewotICAgIFZlY3Rvcjx1aW50OF90PiBtYXN0ZXJLZXk7Ci0gICAgRVhQRUNUX1RS
VUUoV2ViQ29yZTo6Z2V0RGVmYXVsdFdlYkNyeXB0b01hc3RlcktleShtYXN0ZXJLZXkpKTsKLQot
ICAgIFZlY3Rvcjx1aW50OF90PiBjcnlwdG9LZXkoMTYsIDEpOwotICAgIFZlY3Rvcjx1aW50OF90
PiB3cmFwcGVkS2V5OwotICAgIEVYUEVDVF9UUlVFKFdlYkNvcmU6OndyYXBTZXJpYWxpemVkQ3J5
cHRvS2V5KG1hc3RlcktleSwgY3J5cHRvS2V5LCB3cmFwcGVkS2V5KSk7Ci0gICAgRVhQRUNUX1RS
VUUoY3J5cHRvS2V5ICE9IHdyYXBwZWRLZXkpOwotICAgIC8vIGVuc3VyZSB3cmFwcGVkS2V5IGRv
ZXNuJ3QgY29udGFpbiBjcnlwdG9LZXkKLSAgICBib29sIG5vdENvbnRhaW5lZCA9IHRydWU7Ci0g
ICAgc2l6ZV90IGxpbWl0ID0gd3JhcHBlZEtleS5zaXplKCkgLSBjcnlwdG9LZXkuc2l6ZSgpICsg
MTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGxpbWl0OyBpKyspIHsKLSAgICAgICAgc2l6
ZV90IGogPSAwOwotICAgICAgICBmb3IgKDsgaiA8IGNyeXB0b0tleS5zaXplKCkgJiYgd3JhcHBl
ZEtleVtpICsgal0gPT0gY3J5cHRvS2V5W2pdOyBqKyspIHsgfQotICAgICAgICBpZiAoaiA+PSBj
cnlwdG9LZXkuc2l6ZSgpKSB7Ci0gICAgICAgICAgICBub3RDb250YWluZWQgPSBmYWxzZTsKLSAg
ICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIEVYUEVDVF9UUlVFKG5vdENv
bnRhaW5lZCk7Ci0KLSAgICBWZWN0b3I8dWludDhfdD4gdW53cmFwcGVkS2V5OwotICAgIEVYUEVD
VF9UUlVFKFdlYkNvcmU6OnVud3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkobWFzdGVyS2V5LCB3cmFw
cGVkS2V5LCB1bndyYXBwZWRLZXkpKTsKLSAgICBFWFBFQ1RfVFJVRSh1bndyYXBwZWRLZXkgPT0g
Y3J5cHRvS2V5KTsKLX0KLSNlbmRpZgotCi19IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvV2ViQ29yZU5TVVJM
U2Vzc2lvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9XZWJDb3JlTlNV
UkxTZXNzaW9uLm1tCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxNjQxM2NmMmQyYTc3
NGE4MTdiNTRmMzNiNjUwNTBhNmJkMWY5M2Y4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9XZWJD
b3JlTlNVUkxTZXNzaW9uLm1tCisrKyAvZGV2L251bGwKQEAgLTEsMTczICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAq
LwotCi0jaW1wb3J0ICJjb25maWcuaCIKLQotI2lmICFQTEFURk9STShJT1MpICYmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCi0KLSNpbXBvcnQgIlBsYXRmb3JtVXRp
bGl0aWVzLmgiCi0jaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9Jbml0aWFsaXplVGhyZWFkaW5nLmg+
Ci0jaW1wb3J0IDxXZWJLaXQvV2ViVmlldy5oPgotI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRS
ZXF1ZXN0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL01haW5GcmFtZS5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9QYWdlLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1BhZ2VDb25maWd1cmF0aW9uLmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL0RvY3VtZW50Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL01lZGlhUmVzb3VyY2VMb2FkZXIuaD4KLSNpbXBvcnQgPFdlYkNv
cmUvU2V0dGluZ3MuaD4KLSNpbXBvcnQgPFdlYkNvcmUvU3VicmVzb3VyY2VMb2FkZXIuaD4KLSNp
bXBvcnQgPFdlYkNvcmUvV2ViQ29yZU5TVVJMU2Vzc2lvbi5oPgotI2ltcG9ydCA8V2ViQ29yZS9S
ZXNvdXJjZUxvYWRlci5oPgotI2ltcG9ydCA8d3RmL1NjaGVkdWxlUGFpci5oPgotCi1zdGF0aWMg
Ym9vbCBkaWRMb2FkTWFpblJlc291cmNlOwotc3RhdGljIGJvb2wgZGlkUmVjaWV2ZVJlc3BvbnNl
Owotc3RhdGljIGJvb2wgZGlkUmVjaWV2ZURhdGE7Ci1zdGF0aWMgYm9vbCBkaWRDb21wbGV0ZTsK
LXN0YXRpYyBib29sIGRpZEludmFsaWRhdGU7Ci0KLXN0YXRpYyBOU1VSTCAqZG9jdW1lbnRVUkwg
PSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAic2ltcGxlIiB3aXRoRXh0
ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXTsK
LXN0YXRpYyBOU1VSTCAqcmVzb3VyY2VVUkwgPSBbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZv
clJlc291cmNlOkAidGVzdCIgd2l0aEV4dGVuc2lvbjpAIm1wNCIgc3ViZGlyZWN0b3J5OkAiVGVz
dFdlYktpdEFQSS5yZXNvdXJjZXMiXTsKLQotQGludGVyZmFjZSBUZXN0TlNVUkxTZXNzaW9uTG9h
ZGVyRGVsZWdhdGUgOiBOU09iamVjdDxXZWJGcmFtZUxvYWREZWxlZ2F0ZT4KLUBlbmQKLQotQGlt
cGxlbWVudGF0aW9uIFRlc3ROU1VSTFNlc3Npb25Mb2FkZXJEZWxlZ2F0ZQotLSAodm9pZCl3ZWJW
aWV3OihXZWJWaWV3ICopc2VuZGVyIGRpZENvbW1pdExvYWRGb3JGcmFtZTooV2ViRnJhbWUgKilm
cmFtZQotewotICAgIFVOVVNFRF9QQVJBTShzZW5kZXIpOwotICAgIFVOVVNFRF9QQVJBTShmcmFt
ZSk7Ci0gICAgZGlkTG9hZE1haW5SZXNvdXJjZSA9IHRydWU7Ci19Ci1AZW5kCi0KLUBpbnRlcmZh
Y2UgVGVzdE5TVVJMU2Vzc2lvbkRhdGFEZWxlZ2F0ZSA6IE5TT2JqZWN0PE5TVVJMU2Vzc2lvbkRh
dGFEZWxlZ2F0ZT4KLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFRlc3ROU1VSTFNlc3Npb25EYXRh
RGVsZWdhdGUKLS0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiB0YXNr
OihOU1VSTFNlc3Npb25UYXNrICopdGFzayBkaWRDb21wbGV0ZVdpdGhFcnJvcjoobnVsbGFibGUg
TlNFcnJvciAqKWVycm9yCi17Ci0gICAgZGlkQ29tcGxldGUgPSB0cnVlOwotfQotCi0tICh2b2lk
KVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gZGF0YVRhc2s6KE5TVVJMU2Vzc2lv
bkRhdGFUYXNrICopZGF0YVRhc2sgZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICop
cmVzcG9uc2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMU2Vzc2lvblJlc3BvbnNl
RGlzcG9zaXRpb24gZGlzcG9zaXRpb24pKWNvbXBsZXRpb25IYW5kbGVyCi17Ci0gICAgZGlkUmVj
aWV2ZVJlc3BvbnNlID0gdHJ1ZTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihOU1VSTFNlc3Npb25S
ZXNwb25zZUFsbG93KTsKLX0KLQotLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNlc3Npb24gKilz
ZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKWRhdGFUYXNrIGRpZFJlY2Vp
dmVEYXRhOihOU0RhdGEgKilkYXRhCi17Ci0gICAgZGlkUmVjaWV2ZURhdGEgPSB0cnVlOwotCi0g
ICAgTlNEYXRhKiBkaXJlY3REYXRhID0gW05TRGF0YSBkYXRhV2l0aENvbnRlbnRzT2ZVUkw6ZGF0
YVRhc2sub3JpZ2luYWxSZXF1ZXN0LlVSTF07Ci0gICAgTlNEYXRhKiBkaXJlY3RTdWJkYXRhID0g
W2RpcmVjdERhdGEgc3ViZGF0YVdpdGhSYW5nZTpOU01ha2VSYW5nZShkYXRhVGFzay5jb3VudE9m
Qnl0ZXNSZWNlaXZlZCAtIGRhdGEubGVuZ3RoLCBkYXRhLmxlbmd0aCldOwotICAgIEFTU0VSVF9U
UlVFKFtkYXRhIGlzRXF1YWxUb0RhdGE6ZGlyZWN0U3ViZGF0YV0pOwotfQotCi0tICh2b2lkKVVS
TFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gZGlkQmVjb21lSW52YWxpZFdpdGhFcnJv
cjoobnVsbGFibGUgTlNFcnJvciAqKWVycm9yCi17Ci0gICAgZGlkSW52YWxpZGF0ZSA9IHRydWU7
Ci19Ci1AZW5kCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1AaW50ZXJmYWNlIFdlYlZp
ZXcgKFdlYlZpZXdJbnRlcm5hbEZvclRlc3RpbmcpCi0tIChXZWJDb3JlOjpGcmFtZSopX21haW5D
b3JlRnJhbWU7Ci1AZW5kCi0KLW5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKLQotY2xhc3MgV2Vi
Q29yZU5TVVJMU2Vzc2lvblRlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7Ci1wdWJsaWM6Ci0g
ICAgV2ViVmlldyAqdmlldyB7IG5pbCB9OwotICAgIEZyYW1lKiBmcmFtZSB7IG51bGxwdHIgfTsK
LSAgICBUZXN0TlNVUkxTZXNzaW9uRGF0YURlbGVnYXRlICpkZWxlZ2F0ZSB7IG5pbCB9OwotICAg
IFJlZlB0cjxNZWRpYVJlc291cmNlTG9hZGVyPiBsb2FkZXI7Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
U2V0VXAoKQotICAgIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgICAgIEpTQzo6aW5pdGlhbGl6
ZVRocmVhZGluZygpOwotI2VuZGlmCi0gICAgICAgIHZpZXcgPSBbW1dlYlZpZXcgYWxsb2NdIGlu
aXRXaXRoRnJhbWU6TlNaZXJvUmVjdF07Ci0gICAgICAgIHZpZXcuZnJhbWVMb2FkRGVsZWdhdGUg
PSBbW1tUZXN0TlNVUkxTZXNzaW9uTG9hZGVyRGVsZWdhdGUgYWxsb2NdIGluaXRdIGF1dG9yZWxl
YXNlXTsKLQotICAgICAgICBkaWRMb2FkTWFpblJlc291cmNlID0gZmFsc2U7Ci0gICAgICAgIHZp
ZXcubWFpbkZyYW1lVVJMID0gZG9jdW1lbnRVUkwuYWJzb2x1dGVTdHJpbmc7Ci0gICAgICAgIFRl
c3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmZGlkTG9hZE1haW5SZXNvdXJjZSk7Ci0KLSAgICAgICAg
ZGVsZWdhdGUgPSBbW1Rlc3ROU1VSTFNlc3Npb25EYXRhRGVsZWdhdGUgYWxsb2NdIGluaXRdOwot
ICAgICAgICBmcmFtZSA9IFt2aWV3IF9tYWluQ29yZUZyYW1lXTsKLSAgICAgICAgbG9hZGVyID0g
YWRvcHRSZWYobmV3IE1lZGlhUmVzb3VyY2VMb2FkZXIoKmZyYW1lLT5kb2N1bWVudCgpLCBlbXB0
eVN0cmluZygpKSk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkKLSAgICB7
Ci0gICAgICAgIFt2aWV3IHJlbGVhc2VdOwotICAgICAgICBbZGVsZWdhdGUgcmVsZWFzZV07Ci0g
ICAgICAgIGxvYWRlciA9IG51bGxwdHI7Ci0gICAgfQotfTsKLQotVEVTVF9GKFdlYkNvcmVOU1VS
TFNlc3Npb25UZXN0LCBCYXNpY09wZXJhdGlvbikKLXsKLSAgICBXZWJDb3JlTlNVUkxTZXNzaW9u
KiBzZXNzaW9uID0gW1tXZWJDb3JlTlNVUkxTZXNzaW9uIGFsbG9jXSBpbml0V2l0aFJlc291cmNl
TG9hZGVyOipsb2FkZXIgZGVsZWdhdGU6ZGVsZWdhdGUgZGVsZWdhdGVRdWV1ZTpbTlNPcGVyYXRp
b25RdWV1ZSBtYWluUXVldWVdXTsKLSAgICBkaWRSZWNpZXZlUmVzcG9uc2UgPSBmYWxzZTsKLSAg
ICBkaWRSZWNpZXZlRGF0YSA9IGZhbHNlOwotICAgIGRpZENvbXBsZXRlID0gZmFsc2U7Ci0KLSAg
ICBOU1VSTFNlc3Npb25EYXRhVGFzayAqdGFzayA9IFtzZXNzaW9uIGRhdGFUYXNrV2l0aFVSTDpy
ZXNvdXJjZVVSTF07Ci0gICAgW3Rhc2sgcmVzdW1lXTsKLQotICAgIFRlc3RXZWJLaXRBUEk6OlV0
aWw6OnJ1bigmZGlkUmVjaWV2ZVJlc3BvbnNlKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmRpZFJlY2lldmVEYXRhKTsKLSAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZENv
bXBsZXRlKTsKLQotICAgIGRpZEludmFsaWRhdGUgPSBmYWxzZTsKLQotICAgIHRhc2sgPSBbc2Vz
c2lvbiBkYXRhVGFza1dpdGhVUkw6cmVzb3VyY2VVUkxdOwotICAgIFt0YXNrIHJlc3VtZV07Ci0g
ICAgW3Nlc3Npb24gZmluaXNoVGFza3NBbmRJbnZhbGlkYXRlXTsKLQotICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZGlkSW52YWxpZGF0ZSk7Ci0KLSAgICBbc2Vzc2lvbiByZWxlYXNlXTsK
LX0KLQotVEVTVF9GKFdlYkNvcmVOU1VSTFNlc3Npb25UZXN0LCBJbnZhbGlkYXRlRW1wdHkpCi17
Ci0gICAgV2ViQ29yZU5TVVJMU2Vzc2lvbiogc2Vzc2lvbiA9IFtbV2ViQ29yZU5TVVJMU2Vzc2lv
biBhbGxvY10gaW5pdFdpdGhSZXNvdXJjZUxvYWRlcjoqbG9hZGVyIGRlbGVnYXRlOmRlbGVnYXRl
IGRlbGVnYXRlUXVldWU6W05TT3BlcmF0aW9uUXVldWUgbWFpblF1ZXVlXV07Ci0gICAgZGlkSW52
YWxpZGF0ZSA9IGZhbHNlOwotICAgIFtzZXNzaW9uIGZpbmlzaFRhc2tzQW5kSW52YWxpZGF0ZV07
Ci0gICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRJbnZhbGlkYXRlKTsKLSAgICBbc2Vz
c2lvbiByZWxlYXNlXTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9TZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9TZXJpYWxpemVkQ3J5cHRv
S2V5V3JhcC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MmY4MjQwMGVjOTNhOTEzMzg3OWNmOGJlMzFhOWVlOTNi
NzRiZDRiCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJD
b3JlL2NvY29hL1NlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLm1tCkBAIC0wLDAgKzEsMTAxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisKKyNpbXBvcnQgPFdlYkNvcmUvU2VyaWFs
aXplZENyeXB0b0tleVdyYXAuaD4KKyNpbXBvcnQgPHd0Zi9NYWluVGhyZWFkLmg+CisKK25hbWVz
cGFjZSBUZXN0V2ViS2l0QVBJIHsKKworLy8gVE9ETzogV2Ugc2hvdWxkIGVuYWJsZSB0aGUgZm9s
bG93aW5nIHRlc3RzIG9uIGlPUyBzaW11bGF0b3Igb25jZSA8cmRhcjovL3Byb2JsZW0vMjg1MzQ2
NjY+IGlzIGZpeGVkLgorLy8gQSBzZXBlcmF0ZSBidWcgaXMgZmlsZWQgYWJvdXQgdGhpczogPHJk
YXI6Ly9wcm9ibGVtLzI4NTA3MjQwPi4KKyNpZiAhUExBVEZPUk0oSU9TKQorY2xhc3MgU2VyaWFs
aXplZENyeXB0b0tleVdyYXBUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworcHVibGljOgor
ICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpCisgICAgeworICAgICAgICBXVEY6OmluaXRpYWxpemVN
YWluVGhyZWFkKCk7CisgICAgICAgIFdlYkNvcmU6OmRlbGV0ZURlZmF1bHRXZWJDcnlwdG9NYXN0
ZXJLZXkoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKQorICAgIHsKKyAg
ICAgICAgV2ViQ29yZTo6ZGVsZXRlRGVmYXVsdFdlYkNyeXB0b01hc3RlcktleSgpOworICAgIH0K
K307CisKK1RFU1RfRihTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcFRlc3QsIEdldERlZmF1bHRXZWJD
cnlwdG9NYXN0ZXJLZXkpCit7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IG1hc3RlcktleTE7CisgICAg
RVhQRUNUX1RSVUUoV2ViQ29yZTo6Z2V0RGVmYXVsdFdlYkNyeXB0b01hc3RlcktleShtYXN0ZXJL
ZXkxKSk7CisKKyAgICBWZWN0b3I8dWludDhfdD4gbWFzdGVyS2V5MjsKKyAgICBFWFBFQ1RfVFJV
RShXZWJDb3JlOjpnZXREZWZhdWx0V2ViQ3J5cHRvTWFzdGVyS2V5KG1hc3RlcktleTIpKTsKKwor
ICAgIEVYUEVDVF9UUlVFKG1hc3RlcktleTEgPT0gbWFzdGVyS2V5Mik7Cit9CisKK1RFU1RfRihT
ZXJpYWxpemVkQ3J5cHRvS2V5V3JhcFRlc3QsIERlbGV0ZURlZmF1bHRXZWJDcnlwdG9NYXN0ZXJL
ZXkpCit7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IG1hc3RlcktleTE7CisgICAgRVhQRUNUX1RSVUUo
V2ViQ29yZTo6Z2V0RGVmYXVsdFdlYkNyeXB0b01hc3RlcktleShtYXN0ZXJLZXkxKSk7CisgICAg
RVhQRUNUX1RSVUUoV2ViQ29yZTo6ZGVsZXRlRGVmYXVsdFdlYkNyeXB0b01hc3RlcktleSgpKTsK
KworICAgIFZlY3Rvcjx1aW50OF90PiBtYXN0ZXJLZXkyOworICAgIEVYUEVDVF9UUlVFKFdlYkNv
cmU6OmdldERlZmF1bHRXZWJDcnlwdG9NYXN0ZXJLZXkobWFzdGVyS2V5MikpOworCisgICAgRVhQ
RUNUX1RSVUUobWFzdGVyS2V5MSAhPSBtYXN0ZXJLZXkyKTsKK30KKworVEVTVF9GKFNlcmlhbGl6
ZWRDcnlwdG9LZXlXcmFwVGVzdCwgU2VyaWFsaXplZENyeXB0b0tleVdyYXBVbndyYXApCit7Cisg
ICAgVmVjdG9yPHVpbnQ4X3Q+IG1hc3RlcktleTsKKyAgICBFWFBFQ1RfVFJVRShXZWJDb3JlOjpn
ZXREZWZhdWx0V2ViQ3J5cHRvTWFzdGVyS2V5KG1hc3RlcktleSkpOworCisgICAgVmVjdG9yPHVp
bnQ4X3Q+IGNyeXB0b0tleSgxNiwgMSk7CisgICAgVmVjdG9yPHVpbnQ4X3Q+IHdyYXBwZWRLZXk7
CisgICAgRVhQRUNUX1RSVUUoV2ViQ29yZTo6d3JhcFNlcmlhbGl6ZWRDcnlwdG9LZXkobWFzdGVy
S2V5LCBjcnlwdG9LZXksIHdyYXBwZWRLZXkpKTsKKyAgICBFWFBFQ1RfVFJVRShjcnlwdG9LZXkg
IT0gd3JhcHBlZEtleSk7CisgICAgLy8gZW5zdXJlIHdyYXBwZWRLZXkgZG9lc24ndCBjb250YWlu
IGNyeXB0b0tleQorICAgIGJvb2wgbm90Q29udGFpbmVkID0gdHJ1ZTsKKyAgICBzaXplX3QgbGlt
aXQgPSB3cmFwcGVkS2V5LnNpemUoKSAtIGNyeXB0b0tleS5zaXplKCkgKyAxOworICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgbGltaXQ7IGkrKykgeworICAgICAgICBzaXplX3QgaiA9IDA7Cisg
ICAgICAgIGZvciAoOyBqIDwgY3J5cHRvS2V5LnNpemUoKSAmJiB3cmFwcGVkS2V5W2kgKyBqXSA9
PSBjcnlwdG9LZXlbal07IGorKykgeyB9CisgICAgICAgIGlmIChqID49IGNyeXB0b0tleS5zaXpl
KCkpIHsKKyAgICAgICAgICAgIG5vdENvbnRhaW5lZCA9IGZhbHNlOworICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgIH0KKyAgICB9CisgICAgRVhQRUNUX1RSVUUobm90Q29udGFpbmVkKTsKKwor
ICAgIFZlY3Rvcjx1aW50OF90PiB1bndyYXBwZWRLZXk7CisgICAgRVhQRUNUX1RSVUUoV2ViQ29y
ZTo6dW53cmFwU2VyaWFsaXplZENyeXB0b0tleShtYXN0ZXJLZXksIHdyYXBwZWRLZXksIHVud3Jh
cHBlZEtleSkpOworICAgIEVYUEVDVF9UUlVFKHVud3JhcHBlZEtleSA9PSBjcnlwdG9LZXkpOwor
fQorI2VuZGlmCisKK30gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9VUkxFeHRyYXMubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVVJMRXh0cmFzLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJhYmRmNDk2ZDA0NzQ2YzZmNTk0ZDNhODI0YmYxMTgxZGViZDU0OWEKLS0tIC9kZXYvbnVs
bAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvVVJMRXh0cmFz
Lm1tCkBAIC0wLDAgKzEsMTQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisK
KyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU5TVVJMRXh0cmFzLmg+CisKK25hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJIHsKKworc3RhdGljIE5TRGF0YSAqbGl0ZXJhbEFzRGF0YShjb25zdCBjaGFyKiBs
aXRlcmFsKQoreworICAgIHJldHVybiBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6bGl0ZXJhbCBsZW5n
dGg6c3RybGVuKGxpdGVyYWwpXTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIqIGRhdGFBc1N0cmlu
ZyhOU0RhdGEgKmRhdGEpCit7CisgICAgc3RhdGljIGNoYXIgYnVmZmVyWzEwMDBdOworICAgIGlm
IChbZGF0YSBsZW5ndGhdID4gc2l6ZW9mKGJ1ZmZlcikgLSAxKQorICAgICAgICByZXR1cm4gIkVS
Uk9SIjsKKyAgICBpZiAobWVtY2hyKFtkYXRhIGJ5dGVzXSwgMCwgW2RhdGEgbGVuZ3RoXSkpCisg
ICAgICAgIHJldHVybiAiRVJST1IiOworICAgIG1lbWNweShidWZmZXIsIFtkYXRhIGJ5dGVzXSwg
W2RhdGEgbGVuZ3RoXSk7CisgICAgYnVmZmVyW1tkYXRhIGxlbmd0aF1dID0gJ1wwJzsKKyAgICBy
ZXR1cm4gYnVmZmVyOworfQorCitzdGF0aWMgY29uc3QgY2hhciogb3JpZ2luYWxEYXRhQXNTdHJp
bmcoTlNVUkwgKlVSTCkKK3sKKyAgICByZXR1cm4gZGF0YUFzU3RyaW5nKFdlYkNvcmU6Om9yaWdp
bmFsVVJMRGF0YShVUkwpKTsKK30KKworc3RhdGljIGNvbnN0IGNoYXIqIHVzZXJWaXNpYmxlU3Ry
aW5nKE5TVVJMICpVUkwpCit7CisgICAgcmV0dXJuIFtXZWJDb3JlOjp1c2VyVmlzaWJsZVN0cmlu
ZyhVUkwpIFVURjhTdHJpbmddOworfQorCitzdGF0aWMgTlNVUkwgKmxpdGVyYWxVUkwoY29uc3Qg
Y2hhciogbGl0ZXJhbCkKK3sKKyAgICByZXR1cm4gV2ViQ29yZTo6VVJMV2l0aERhdGEobGl0ZXJh
bEFzRGF0YShsaXRlcmFsKSwgbmlsKTsKK30KKworVEVTVChXZWJDb3JlLCBVUkxFeHRyYXMpCit7
CisgICAgRVhQRUNUX1NUUkVRKCJodHRwOi8vc2l0ZS5jb20iLCBvcmlnaW5hbERhdGFBc1N0cmlu
ZyhsaXRlcmFsVVJMKCJodHRwOi8vc2l0ZS5jb20iKSkpOworICAgIEVYUEVDVF9TVFJFUSgiaHR0
cDovLyU3N2Vic2l0ZS5jb20iLCBvcmlnaW5hbERhdGFBc1N0cmluZyhsaXRlcmFsVVJMKCJodHRw
Oi8vJTc3ZWJzaXRlLmNvbSIpKSk7CisKKyAgICBFWFBFQ1RfU1RSRVEoImh0dHA6Ly9zaXRlLmNv
bSIsIHVzZXJWaXNpYmxlU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbSIpKSk7Cisg
ICAgRVhQRUNUX1NUUkVRKCJodHRwOi8vJTc3ZWJzaXRlLmNvbSIsIHVzZXJWaXNpYmxlU3RyaW5n
KGxpdGVyYWxVUkwoImh0dHA6Ly8lNzdlYnNpdGUuY29tIikpKTsKK30KKworVEVTVChXZWJDb3Jl
LCBVUkxFeHRyYXNfRGl2aXNpb25TaWduKQoreworICAgIC8vIFNlbGVjdGVkIHRoZSBkaXZpc2lv
biBzaWduIGFzIGFuIGV4YW1wbGUgb2YgYSBub24tQVNDSUkgY2hhcmFjdGVyIHRoYXQgaXMgYWxs
b3dlZCBpbiBob3N0IG5hbWVzLCBzaW5jZSBpdCdzIGEgbG9va2FsaWtlIGNoYXJhY3Rlci4KKwor
ICAgIC8vIENvZGUgcGF0aCBzaW1pbGFyIHRvIHRoZSBvbmUgdXNlZCB3aGVuIHR5cGluZyBpbiBh
IFVSTC4KKyAgICBFWFBFQ1RfU1RSRVEoImh0dHA6Ly9zaXRlLnhuLS1jb21vdGhlcnNpdGUta2pi
Lm9yZyIsIG9yaWdpbmFsRGF0YUFzU3RyaW5nKFdlYkNvcmU6OlVSTFdpdGhVc2VyVHlwZWRTdHJp
bmcoQCJodHRwOi8vc2l0ZS5jb21ceEMzXHhCN290aGVyc2l0ZS5vcmciLCBuaWwpKSk7CisgICAg
RVhQRUNUX1NUUkVRKCJodHRwOi8vc2l0ZS5jb21ceEMzXHhCN290aGVyc2l0ZS5vcmciLCB1c2Vy
VmlzaWJsZVN0cmluZyhXZWJDb3JlOjpVUkxXaXRoVXNlclR5cGVkU3RyaW5nKEAiaHR0cDovL3Np
dGUuY29tXHhDM1x4QjdvdGhlcnNpdGUub3JnIiwgbmlsKSkpOworCisgICAgLy8gQ29kZSBwYXRo
cyBzaW1pbGFyIHRvIHRoZSBvbmVzIHVzZWQgZm9yIFVSTHMgZm91bmQgaW4gd2VicGFnZXMgb3Ig
SFRUUCByZXNwb25zZXMuCisgICAgRVhQRUNUX1NUUkVRKCJodHRwOi8vc2l0ZS5jb21ceEMzXHhC
N290aGVyc2l0ZS5vcmciLCBvcmlnaW5hbERhdGFBc1N0cmluZyhsaXRlcmFsVVJMKCJodHRwOi8v
c2l0ZS5jb21ceEMzXHhCN290aGVyc2l0ZS5vcmciKSkpOworICAgIEVYUEVDVF9TVFJFUSgiaHR0
cDovL3NpdGUuY29tXHhDM1x4QjdvdGhlcnNpdGUub3JnIiwgdXNlclZpc2libGVTdHJpbmcobGl0
ZXJhbFVSTCgiaHR0cDovL3NpdGUuY29tXHhDM1x4QjdvdGhlcnNpdGUub3JnIikpKTsKKyAgICBF
WFBFQ1RfU1RSRVEoImh0dHA6Ly9zaXRlLmNvbSVDMyVCN290aGVyc2l0ZS5vcmciLCBvcmlnaW5h
bERhdGFBc1N0cmluZyhsaXRlcmFsVVJMKCJodHRwOi8vc2l0ZS5jb20lQzMlQjdvdGhlcnNpdGUu
b3JnIikpKTsKKyAgICBFWFBFQ1RfU1RSRVEoImh0dHA6Ly9zaXRlLmNvbVx4QzNceEI3b3RoZXJz
aXRlLm9yZyIsIHVzZXJWaXNpYmxlU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbSVD
MyVCN290aGVyc2l0ZS5vcmciKSkpOworCisgICAgLy8gU2VwYXJhdGUgZnVuY3Rpb25zIHRoYXQg
ZGVhbCB3aXRoIGp1c3QgYSBob3N0IG5hbWUgb24gaXRzIG93bi4KKyAgICBFWFBFQ1RfU1RSRVEo
InNpdGUueG4tLWNvbW90aGVyc2l0ZS1ramIub3JnIiwgW1dlYkNvcmU6OmVuY29kZUhvc3ROYW1l
KEAic2l0ZS5jb21ceEMzXHhCN290aGVyc2l0ZS5vcmciKSBVVEY4U3RyaW5nXSk7CisgICAgRVhQ
RUNUX1NUUkVRKCJzaXRlLmNvbVx4QzNceEI3b3RoZXJzaXRlLm9yZyIsIFtXZWJDb3JlOjpkZWNv
ZGVIb3N0TmFtZShAInNpdGUuY29tXHhDM1x4QjdvdGhlcnNpdGUub3JnIikgVVRGOFN0cmluZ10p
OworfQorCitURVNUKFdlYkNvcmUsIFVSTEV4dHJhc19Tb2xpZHVzKQoreworICAgIC8vIFNlbGVj
dGVkIGZ1bGwgd2lkdGggc29saWR1cywgd2hpY2ggbG9va3MgbGlrZSB0aGUgc29saWR1cywgd2hp
Y2ggaXMgdGhlIGNoYXJhY3RlciB0aGF0IGluZGljYXRlcyB0aGUgZW5kIG9mIHRoZSBob3N0IG5h
bWUuCisKKyAgICAvLyBDb2RlIHBhdGggc2ltaWxhciB0byB0aGUgb25lIHVzZWQgd2hlbiB0eXBp
bmcgaW4gYSBVUkwuCisgICAgRVhQRUNUX1NUUkVRKCJodHRwOi8vc2l0ZS5jb20vb3RoZXJzaXRl
Lm9yZyIsIG9yaWdpbmFsRGF0YUFzU3RyaW5nKFdlYkNvcmU6OlVSTFdpdGhVc2VyVHlwZWRTdHJp
bmcoQCJodHRwOi8vc2l0ZS5jb21ceEVGXHhCQ1x4OEZvdGhlcnNpdGUub3JnIiwgbmlsKSkpOwor
ICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3NpdGUuY29tL290aGVyc2l0ZS5vcmciLCB1c2VyVmlz
aWJsZVN0cmluZyhXZWJDb3JlOjpVUkxXaXRoVXNlclR5cGVkU3RyaW5nKEAiaHR0cDovL3NpdGUu
Y29tXHhFRlx4QkNceDhGb3RoZXJzaXRlLm9yZyIsIG5pbCkpKTsKKworICAgIC8vIENvZGUgcGF0
aHMgc2ltaWxhciB0byB0aGUgb25lcyB1c2VkIGZvciBVUkxzIGZvdW5kIGluIHdlYnBhZ2VzIG9y
IEhUVFAgcmVzcG9uc2VzLgorICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3NpdGUuY29tXHhFRlx4
QkNceDhGb3RoZXJzaXRlLm9yZyIsIG9yaWdpbmFsRGF0YUFzU3RyaW5nKGxpdGVyYWxVUkwoImh0
dHA6Ly9zaXRlLmNvbVx4RUZceEJDXHg4Rm90aGVyc2l0ZS5vcmciKSkpOworICAgIEVYUEVDVF9T
VFJFUSgiaHR0cDovL3NpdGUuY29tJUVGJUJDJThGb3RoZXJzaXRlLm9yZyIsIHVzZXJWaXNpYmxl
U3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbVx4RUZceEJDXHg4Rm90aGVyc2l0ZS5v
cmciKSkpOworICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3NpdGUuY29tJUVGJUJDJThGb3RoZXJz
aXRlLm9yZyIsIG9yaWdpbmFsRGF0YUFzU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNv
bSVFRiVCQyU4Rm90aGVyc2l0ZS5vcmciKSkpOworICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3Np
dGUuY29tJUVGJUJDJThGb3RoZXJzaXRlLm9yZyIsIHVzZXJWaXNpYmxlU3RyaW5nKGxpdGVyYWxV
UkwoImh0dHA6Ly9zaXRlLmNvbSVFRiVCQyU4Rm90aGVyc2l0ZS5vcmciKSkpOworCisgICAgLy8g
U2VwYXJhdGUgZnVuY3Rpb25zIHRoYXQgZGVhbCB3aXRoIGp1c3QgYSBob3N0IG5hbWUgb24gaXRz
IG93bi4KKyAgICBFWFBFQ1RfU1RSRVEoInNpdGUuY29tL290aGVyc2l0ZS5vcmciLCBbV2ViQ29y
ZTo6ZW5jb2RlSG9zdE5hbWUoQCJzaXRlLmNvbVx4RUZceEJDXHg4Rm90aGVyc2l0ZS5vcmciKSBV
VEY4U3RyaW5nXSk7CisgICAgRVhQRUNUX1NUUkVRKCJzaXRlLmNvbS9vdGhlcnNpdGUub3JnIiwg
W1dlYkNvcmU6OmRlY29kZUhvc3ROYW1lKEAic2l0ZS5jb21ceEVGXHhCQ1x4OEZvdGhlcnNpdGUu
b3JnIikgVVRGOFN0cmluZ10pOworfQorCitURVNUKFdlYkNvcmUsIFVSTEV4dHJhc19TcGFjZSkK
K3sKKyAgICAvLyBTZWxlY3RlZCBpZGVvZ3JhcGhpYyBzcGFjZSwgd2hpY2ggbG9va3MgbGlrZSB0
aGUgQVNDSUkgc3BhY2UsIHdoaWNoIGlzIG5vdCBhbGxvd2VkIHVuZXNjYXBlZC4KKworICAgIC8v
IENvZGUgcGF0aCBzaW1pbGFyIHRvIHRoZSBvbmUgdXNlZCB3aGVuIHR5cGluZyBpbiBhIFVSTC4K
KyAgICBFWFBFQ1RfU1RSRVEoImh0dHA6Ly9zaXRlLmNvbSUyMG90aGVyc2l0ZS5vcmciLCBvcmln
aW5hbERhdGFBc1N0cmluZyhXZWJDb3JlOjpVUkxXaXRoVXNlclR5cGVkU3RyaW5nKEAiaHR0cDov
L3NpdGUuY29tXHhFM1x4ODBceDgwb3RoZXJzaXRlLm9yZyIsIG5pbCkpKTsKKyAgICBFWFBFQ1Rf
U1RSRVEoImh0dHA6Ly9zaXRlLmNvbSUyMG90aGVyc2l0ZS5vcmciLCB1c2VyVmlzaWJsZVN0cmlu
ZyhXZWJDb3JlOjpVUkxXaXRoVXNlclR5cGVkU3RyaW5nKEAiaHR0cDovL3NpdGUuY29tXHhFM1x4
ODBceDgwb3RoZXJzaXRlLm9yZyIsIG5pbCkpKTsKKworICAgIC8vIENvZGUgcGF0aHMgc2ltaWxh
ciB0byB0aGUgb25lcyB1c2VkIGZvciBVUkxzIGZvdW5kIGluIHdlYnBhZ2VzIG9yIEhUVFAgcmVz
cG9uc2VzLgorICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3NpdGUuY29tXHhFM1x4ODBceDgwb3Ro
ZXJzaXRlLm9yZyIsIG9yaWdpbmFsRGF0YUFzU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRl
LmNvbVx4RTNceDgwXHg4MG90aGVyc2l0ZS5vcmciKSkpOworICAgIEVYUEVDVF9TVFJFUSgiaHR0
cDovL3NpdGUuY29tJUUzJTgwJTgwb3RoZXJzaXRlLm9yZyIsIHVzZXJWaXNpYmxlU3RyaW5nKGxp
dGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbVx4RTNceDgwXHg4MG90aGVyc2l0ZS5vcmciKSkpOwor
ICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3NpdGUuY29tJUUzJTgwJTgwb3RoZXJzaXRlLm9yZyIs
IG9yaWdpbmFsRGF0YUFzU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6Ly9zaXRlLmNvbSVFMyU4MCU4
MG90aGVyc2l0ZS5vcmciKSkpOworICAgIEVYUEVDVF9TVFJFUSgiaHR0cDovL3NpdGUuY29tJUUz
JTgwJTgwb3RoZXJzaXRlLm9yZyIsIHVzZXJWaXNpYmxlU3RyaW5nKGxpdGVyYWxVUkwoImh0dHA6
Ly9zaXRlLmNvbSVFMyU4MCU4MG90aGVyc2l0ZS5vcmciKSkpOworCisgICAgLy8gU2VwYXJhdGUg
ZnVuY3Rpb25zIHRoYXQgZGVhbCB3aXRoIGp1c3QgYSBob3N0IG5hbWUgb24gaXRzIG93bi4KKyAg
ICBFWFBFQ1RfU1RSRVEoInNpdGUuY29tIG90aGVyc2l0ZS5vcmciLCBbV2ViQ29yZTo6ZW5jb2Rl
SG9zdE5hbWUoQCJzaXRlLmNvbVx4RTNceDgwXHg4MG90aGVyc2l0ZS5vcmciKSBVVEY4U3RyaW5n
XSk7CisgICAgRVhQRUNUX1NUUkVRKCJzaXRlLmNvbVx4RTNceDgwXHg4MG90aGVyc2l0ZS5vcmci
LCBbV2ViQ29yZTo6ZGVjb2RlSG9zdE5hbWUoQCJzaXRlLmNvbVx4RTNceDgwXHg4MG90aGVyc2l0
ZS5vcmciKSBVVEY4U3RyaW5nXSk7Cit9CisKK1RFU1QoV2ViQ29yZSwgVVJMRXh0cmFzX1BhcnNp
bmdFcnJvcikKK3sKKyAgICAvLyBFeHBlY3QgSUROIGZhaWx1cmUuCisgICAgTlNVUkwgKnVybCA9
IFdlYkNvcmU6OlVSTFdpdGhVc2VyVHlwZWRTdHJpbmcoQCJodHRwOi8v76O/LmNvbSIsIG5pbCk7
CisgICAgRVhQRUNUX1RSVUUodXJsID09IG5pbCk7CisKKyAgICBOU1N0cmluZyAqZW5jb2RlZEhv
c3ROYW1lID0gV2ViQ29yZTo6ZW5jb2RlSG9zdE5hbWUoQCJodHRwOi8v76O/LmNvbSIpOworICAg
IEVYUEVDVF9UUlVFKGVuY29kZWRIb3N0TmFtZSA9PSBuaWwpOworfQorCitURVNUKFdlYkNvcmUs
IFVSTEV4dHJhc19OaWwpCit7CisgICAgTlNVUkwgKnVybDEgPSBXZWJDb3JlOjpVUkxXaXRoVXNl
clR5cGVkU3RyaW5nKG5pbCwgbmlsKTsKKyAgICBFWFBFQ1RfVFJVRSh1cmwxID09IG5pbCk7CisK
KyAgICBOU1VSTCAqdXJsMiA9IFdlYkNvcmU6OlVSTFdpdGhVc2VyVHlwZWRTdHJpbmdEZXByZWNh
dGVkKG5pbCwgbmlsKTsKKyAgICBFWFBFQ1RfVFJVRSh1cmwyID09IG5pbCk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJDb3JlTlNVUkxTZXNzaW9uLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1dlYkNvcmVOU1VSTFNlc3Npb24ubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTY0MTNjZjJkMmE3NzRhODE3YjU0ZjMzYjY1MDUwYTZiZDFmOTNmOAotLS0gL2Rldi9u
dWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9XZWJDb3Jl
TlNVUkxTZXNzaW9uLm1tCkBAIC0wLDAgKzEsMTczIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisKKyNpZiAhUExBVEZPUk0oSU9TKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMAorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9y
dCA8SmF2YVNjcmlwdENvcmUvSW5pdGlhbGl6ZVRocmVhZGluZy5oPgorI2ltcG9ydCA8V2ViS2l0
L1dlYlZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRnJhbWVMb2FkUmVxdWVzdC5oPgorI2ltcG9y
dCA8V2ViQ29yZS9NYWluRnJhbWUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgorI2ltcG9y
dCA8V2ViQ29yZS9QYWdlQ29uZmlndXJhdGlvbi5oPgorI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVu
dC5oPgorI2ltcG9ydCA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9NZWRpYVJlc291cmNlTG9hZGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+Cisj
aW1wb3J0IDxXZWJDb3JlL1N1YnJlc291cmNlTG9hZGVyLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dl
YkNvcmVOU1VSTFNlc3Npb24uaD4KKyNpbXBvcnQgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4K
KyNpbXBvcnQgPHd0Zi9TY2hlZHVsZVBhaXIuaD4KKworc3RhdGljIGJvb2wgZGlkTG9hZE1haW5S
ZXNvdXJjZTsKK3N0YXRpYyBib29sIGRpZFJlY2lldmVSZXNwb25zZTsKK3N0YXRpYyBib29sIGRp
ZFJlY2lldmVEYXRhOworc3RhdGljIGJvb2wgZGlkQ29tcGxldGU7CitzdGF0aWMgYm9vbCBkaWRJ
bnZhbGlkYXRlOworCitzdGF0aWMgTlNVUkwgKmRvY3VtZW50VVJMID0gW1tOU0J1bmRsZSBtYWlu
QnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4dGVuc2lvbjpAImh0bWwiIHN1
YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl07CitzdGF0aWMgTlNVUkwgKnJl
c291cmNlVVJMID0gW1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInRlc3Qi
IHdpdGhFeHRlbnNpb246QCJtcDQiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3Vy
Y2VzIl07CisKK0BpbnRlcmZhY2UgVGVzdE5TVVJMU2Vzc2lvbkxvYWRlckRlbGVnYXRlIDogTlNP
YmplY3Q8V2ViRnJhbWVMb2FkRGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0
TlNVUkxTZXNzaW9uTG9hZGVyRGVsZWdhdGUKKy0gKHZvaWQpd2ViVmlldzooV2ViVmlldyAqKXNl
bmRlciBkaWRDb21taXRMb2FkRm9yRnJhbWU6KFdlYkZyYW1lICopZnJhbWUKK3sKKyAgICBVTlVT
RURfUEFSQU0oc2VuZGVyKTsKKyAgICBVTlVTRURfUEFSQU0oZnJhbWUpOworICAgIGRpZExvYWRN
YWluUmVzb3VyY2UgPSB0cnVlOworfQorQGVuZAorCitAaW50ZXJmYWNlIFRlc3ROU1VSTFNlc3Np
b25EYXRhRGVsZWdhdGUgOiBOU09iamVjdDxOU1VSTFNlc3Npb25EYXRhRGVsZWdhdGU+CitAZW5k
CisKK0BpbXBsZW1lbnRhdGlvbiBUZXN0TlNVUkxTZXNzaW9uRGF0YURlbGVnYXRlCistICh2b2lk
KVVSTFNlc3Npb246KE5TVVJMU2Vzc2lvbiAqKXNlc3Npb24gdGFzazooTlNVUkxTZXNzaW9uVGFz
ayAqKXRhc2sgZGlkQ29tcGxldGVXaXRoRXJyb3I6KG51bGxhYmxlIE5TRXJyb3IgKillcnJvcgor
eworICAgIGRpZENvbXBsZXRlID0gdHJ1ZTsKK30KKworLSAodm9pZClVUkxTZXNzaW9uOihOU1VS
TFNlc3Npb24gKilzZXNzaW9uIGRhdGFUYXNrOihOU1VSTFNlc3Npb25EYXRhVGFzayAqKWRhdGFU
YXNrIGRpZFJlY2VpdmVSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlc3BvbnNlIGNvbXBsZXRp
b25IYW5kbGVyOih2b2lkICheKShOU1VSTFNlc3Npb25SZXNwb25zZURpc3Bvc2l0aW9uIGRpc3Bv
c2l0aW9uKSljb21wbGV0aW9uSGFuZGxlcgoreworICAgIGRpZFJlY2lldmVSZXNwb25zZSA9IHRy
dWU7CisgICAgY29tcGxldGlvbkhhbmRsZXIoTlNVUkxTZXNzaW9uUmVzcG9uc2VBbGxvdyk7Cit9
CisKKy0gKHZvaWQpVVJMU2Vzc2lvbjooTlNVUkxTZXNzaW9uICopc2Vzc2lvbiBkYXRhVGFzazoo
TlNVUkxTZXNzaW9uRGF0YVRhc2sgKilkYXRhVGFzayBkaWRSZWNlaXZlRGF0YTooTlNEYXRhICop
ZGF0YQoreworICAgIGRpZFJlY2lldmVEYXRhID0gdHJ1ZTsKKworICAgIE5TRGF0YSogZGlyZWN0
RGF0YSA9IFtOU0RhdGEgZGF0YVdpdGhDb250ZW50c09mVVJMOmRhdGFUYXNrLm9yaWdpbmFsUmVx
dWVzdC5VUkxdOworICAgIE5TRGF0YSogZGlyZWN0U3ViZGF0YSA9IFtkaXJlY3REYXRhIHN1YmRh
dGFXaXRoUmFuZ2U6TlNNYWtlUmFuZ2UoZGF0YVRhc2suY291bnRPZkJ5dGVzUmVjZWl2ZWQgLSBk
YXRhLmxlbmd0aCwgZGF0YS5sZW5ndGgpXTsKKyAgICBBU1NFUlRfVFJVRShbZGF0YSBpc0VxdWFs
VG9EYXRhOmRpcmVjdFN1YmRhdGFdKTsKK30KKworLSAodm9pZClVUkxTZXNzaW9uOihOU1VSTFNl
c3Npb24gKilzZXNzaW9uIGRpZEJlY29tZUludmFsaWRXaXRoRXJyb3I6KG51bGxhYmxlIE5TRXJy
b3IgKillcnJvcgoreworICAgIGRpZEludmFsaWRhdGUgPSB0cnVlOworfQorQGVuZAorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworQGludGVyZmFjZSBXZWJWaWV3IChXZWJWaWV3SW50ZXJu
YWxGb3JUZXN0aW5nKQorLSAoV2ViQ29yZTo6RnJhbWUqKV9tYWluQ29yZUZyYW1lOworQGVuZAor
CituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK2NsYXNzIFdlYkNvcmVOU1VSTFNlc3Npb25U
ZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworcHVibGljOgorICAgIFdlYlZpZXcgKnZpZXcg
eyBuaWwgfTsKKyAgICBGcmFtZSogZnJhbWUgeyBudWxscHRyIH07CisgICAgVGVzdE5TVVJMU2Vz
c2lvbkRhdGFEZWxlZ2F0ZSAqZGVsZWdhdGUgeyBuaWwgfTsKKyAgICBSZWZQdHI8TWVkaWFSZXNv
dXJjZUxvYWRlcj4gbG9hZGVyOworCisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkKKyAgICB7Cisj
aWYgUExBVEZPUk0oSU9TKQorICAgICAgICBKU0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKKyNl
bmRpZgorICAgICAgICB2aWV3ID0gW1tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TWmVy
b1JlY3RdOworICAgICAgICB2aWV3LmZyYW1lTG9hZERlbGVnYXRlID0gW1tbVGVzdE5TVVJMU2Vz
c2lvbkxvYWRlckRlbGVnYXRlIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisKKyAgICAgICAg
ZGlkTG9hZE1haW5SZXNvdXJjZSA9IGZhbHNlOworICAgICAgICB2aWV3Lm1haW5GcmFtZVVSTCA9
IGRvY3VtZW50VVJMLmFic29sdXRlU3RyaW5nOworICAgICAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRpZExvYWRNYWluUmVzb3VyY2UpOworCisgICAgICAgIGRlbGVnYXRlID0gW1tUZXN0
TlNVUkxTZXNzaW9uRGF0YURlbGVnYXRlIGFsbG9jXSBpbml0XTsKKyAgICAgICAgZnJhbWUgPSBb
dmlldyBfbWFpbkNvcmVGcmFtZV07CisgICAgICAgIGxvYWRlciA9IGFkb3B0UmVmKG5ldyBNZWRp
YVJlc291cmNlTG9hZGVyKCpmcmFtZS0+ZG9jdW1lbnQoKSwgZW1wdHlTdHJpbmcoKSkpOworICAg
IH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpCisgICAgeworICAgICAgICBbdmlldyBy
ZWxlYXNlXTsKKyAgICAgICAgW2RlbGVnYXRlIHJlbGVhc2VdOworICAgICAgICBsb2FkZXIgPSBu
dWxscHRyOworICAgIH0KK307CisKK1RFU1RfRihXZWJDb3JlTlNVUkxTZXNzaW9uVGVzdCwgQmFz
aWNPcGVyYXRpb24pCit7CisgICAgV2ViQ29yZU5TVVJMU2Vzc2lvbiogc2Vzc2lvbiA9IFtbV2Vi
Q29yZU5TVVJMU2Vzc2lvbiBhbGxvY10gaW5pdFdpdGhSZXNvdXJjZUxvYWRlcjoqbG9hZGVyIGRl
bGVnYXRlOmRlbGVnYXRlIGRlbGVnYXRlUXVldWU6W05TT3BlcmF0aW9uUXVldWUgbWFpblF1ZXVl
XV07CisgICAgZGlkUmVjaWV2ZVJlc3BvbnNlID0gZmFsc2U7CisgICAgZGlkUmVjaWV2ZURhdGEg
PSBmYWxzZTsKKyAgICBkaWRDb21wbGV0ZSA9IGZhbHNlOworCisgICAgTlNVUkxTZXNzaW9uRGF0
YVRhc2sgKnRhc2sgPSBbc2Vzc2lvbiBkYXRhVGFza1dpdGhVUkw6cmVzb3VyY2VVUkxdOworICAg
IFt0YXNrIHJlc3VtZV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRpZFJlY2ll
dmVSZXNwb25zZSk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRSZWNpZXZlRGF0
YSk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkaWRDb21wbGV0ZSk7CisKKyAgICBk
aWRJbnZhbGlkYXRlID0gZmFsc2U7CisKKyAgICB0YXNrID0gW3Nlc3Npb24gZGF0YVRhc2tXaXRo
VVJMOnJlc291cmNlVVJMXTsKKyAgICBbdGFzayByZXN1bWVdOworICAgIFtzZXNzaW9uIGZpbmlz
aFRhc2tzQW5kSW52YWxpZGF0ZV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmRp
ZEludmFsaWRhdGUpOworCisgICAgW3Nlc3Npb24gcmVsZWFzZV07Cit9CisKK1RFU1RfRihXZWJD
b3JlTlNVUkxTZXNzaW9uVGVzdCwgSW52YWxpZGF0ZUVtcHR5KQoreworICAgIFdlYkNvcmVOU1VS
TFNlc3Npb24qIHNlc3Npb24gPSBbW1dlYkNvcmVOU1VSTFNlc3Npb24gYWxsb2NdIGluaXRXaXRo
UmVzb3VyY2VMb2FkZXI6KmxvYWRlciBkZWxlZ2F0ZTpkZWxlZ2F0ZSBkZWxlZ2F0ZVF1ZXVlOltO
U09wZXJhdGlvblF1ZXVlIG1haW5RdWV1ZV1dOworICAgIGRpZEludmFsaWRhdGUgPSBmYWxzZTsK
KyAgICBbc2Vzc2lvbiBmaW5pc2hUYXNrc0FuZEludmFsaWRhdGVdOworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmZGlkSW52YWxpZGF0ZSk7CisgICAgW3Nlc3Npb24gcmVsZWFzZV07Cit9
CisKK30KKworI2VuZGlmCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>