<?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>170922</bug_id>
          
          <creation_ts>2017-04-17 15:51:33 -0700</creation_ts>
          <short_desc>[WK2] -[WKContentView doAfterPositionInformationUpdate:atPosition:] should be robust against synchronous reentrancy</short_desc>
          <delta_ts>2017-04-20 14:34:27 -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>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>aestes</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1298068</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-17 15:51:33 -0700</bug_when>
    <thetext>&lt;rdar://problem/31634990&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298100</commentid>
    <comment_count>1</comment_count>
      <attachid>307320</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-17 16:41:01 -0700</bug_when>
    <thetext>Created attachment 307320
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298418</commentid>
    <comment_count>2</comment_count>
      <attachid>307412</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-18 13:36:58 -0700</bug_when>
    <thetext>Created attachment 307412
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298518</commentid>
    <comment_count>3</comment_count>
      <attachid>307437</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-18 17:11:59 -0700</bug_when>
    <thetext>Created attachment 307437
Attempt to fix Mac builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298538</commentid>
    <comment_count>4</comment_count>
      <attachid>307447</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-18 18:27:34 -0700</bug_when>
    <thetext>Created attachment 307447
Rebase on ToT</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1298681</commentid>
    <comment_count>5</comment_count>
      <attachid>307480</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-19 08:51:41 -0700</bug_when>
    <thetext>Created attachment 307480
Test additional edge cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299222</commentid>
    <comment_count>6</comment_count>
      <attachid>307615</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-20 12:36:01 -0700</bug_when>
    <thetext>Created attachment 307615
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1299240</commentid>
    <comment_count>7</comment_count>
      <attachid>307615</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-20 12:59:49 -0700</bug_when>
    <thetext>Comment on attachment 307615
Patch for landing

Clearing flags on attachment: 307615

Committed r215573: &lt;http://trac.webkit.org/changeset/215573&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307320</attachid>
            <date>2017-04-17 16:41:01 -0700</date>
            <delta_ts>2017-04-18 13:36:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170922-20170417164100.patch</filename>
            <type>text/plain</type>
            <size>35319</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1Mzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjI0ZDgzYTc4NzE5MWUy
OWZiYzcwMjY0MmQwOTFlMDViN2FiNjU3Mi4uODhlNjVhYzRhYjM3ODRiYjliOTE5MDgxZGRjYzUw
NDYzNGFkMmExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE3LTA0LTE3ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIC1bV0tD
b250ZW50VmlldyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTphdFBvc2l0aW9uOl0g
c2hvdWxkIGJlIHJvYnVzdCBhZ2FpbnN0IHN5bmNocm9ub3VzIHJlZW50cmFuY3kKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDkyMgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzE2MzQ5OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JzIHBhcnQgb2YgdGhlIGFzeW5jaHJvbm91cyBwb3Np
dGlvbiBpbmZvcm1hdGlvbiBtZWNoYW5pc20gaW50cm9kdWNlZCBpbgorICAgICAgICA8aHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIxNTE3MT4sIGFuZCBpbnRyb2R1Y2VzIGluZnJh
c3RydWN0dXJlIGZvciB1bml0IHRlc3RpbmcgVUktc2lkZSBwb3NpdGlvbgorICAgICAgICBpbmZv
cm1hdGlvbiByZXF1ZXN0cy4KKworICAgICAgICBfaW52b2tlQW5kUmVtb3ZlUGVuZGluZ0hhbmRs
ZXJzVmFsaWRGb3JDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbiBpcyBhIGhlbHBlciBtZXRob2Qg
b24gV0tDb250ZW50VmlldworICAgICAgICByZXNwb25zaWJsZSBmb3IgaW52b2tpbmcgcXVldWVk
IHBvc2l0aW9uIGluZm9ybWF0aW9uIGhhbmRsZXJzIGFmdGVyIHJlY2VpdmluZyBhIHBvc2l0aW9u
IGluZm9ybWF0aW9uIHJlc3BvbnNlCisgICAgICAgIGZyb20gdGhlIHdlYiBwcm9jZXNzLiBQcmV2
aW91c2x5LCB0aGlzIG1ldGhvZCB3b3VsZCBpdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2YgcGVuZGlu
ZyBjYWxsYmFja3MgYW5kIGludm9rZSBhbGwKKyAgICAgICAgY2FsbGJhY2tzIHdob3NlIHJlcXVl
c3RzIGFyZSBzYXRpc2ZpZWQgYnkgdGhlIGluY29taW5nIHBvc2l0aW9uIGluZm9ybWF0aW9uIHVw
ZGF0ZSwgc2F2aW5nIHRoZSBpbmRpY2VzIG9mIHRoZXNlCisgICAgICAgIGhhbmRsZWQgY2FsbGJh
Y2tzIGluIHRoZSBwcm9jZXNzLiBBdCB0aGUgZW5kLCBpdCB3b3VsZCB0aGVuIHJlbW92ZSBjYWxs
YmFja3MgYXQgdGhlc2UgaW5kaWNlcyBmcm9tIHRoZSBhcnJheSBvZgorICAgICAgICBwZW5kaW5n
IGNhbGxiYWNrcy4gVGhpcyBpcyBwcm9ibGVtYXRpYyB3aGVuIGEgc3luY2hyb25vdXMgcG9zaXRp
b24gdXBkYXRlICh2aWEKKyAgICAgICAgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0Rh
dGU6KSBpcyB0cmlnZ2VyZWQgZnJvbSB3aXRoaW4gb25lIG9mIHRoZXNlIGNhbGxiYWNrcywgc2lu
Y2UKKyAgICAgICAgX2ludm9rZUFuZFJlbW92ZVBlbmRpbmdIYW5kbGVyc1ZhbGlkRm9yQ3VycmVu
dFBvc2l0aW9uSW5mb3JtYXRpb24gd2lsbCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gaXRzZWxmLCBh
bmQgdGhlbiB3ZQorICAgICAgICB3aWxsIGF0dGVtcHQgdG8gcmVtb3ZlIGEgY2FsbGJhY2sgYXQg
dGhlIHNhbWUgaW5kZXggdHdpY2UuCisKKyAgICAgICAgVG8gZml4IHRoaXMsIHdlIGNoYW5nZSB0
aGUgYXJyYXkgb2YgcGVuZGluZyBwb3NpdGlvbiBpbmZvcm1hdGlvbiBoYW5kbGVycyB0byBiZSBh
biBhcnJheSBvZiBvcHRpb25hbHMgaW5zdGVhZC4KKyAgICAgICAgV2hlbiBpbnZva2luZyBhbmQg
cmVtb3ZpbmcgcGVuZGluZyBoYW5kbGVycyBhZnRlciBhIHBvc2l0aW9uIGluZm9ybWF0aW9uIHJl
c3BvbnNlIGFycml2ZXMsIHdlIG5vdyBtYXJrIGNhbGxiYWNrcworICAgICAgICBhcyBoYW5kbGVk
IGJ5IHNldHRpbmcgdGhlbSB0byBzdGQ6Om51bGxvcHQuIFRoZW4sIHdoZW4gdGhlIHRvcC1sZXZl
bCBpbnZvY2F0aW9uIHRvCisgICAgICAgIF9pbnZva2VBbmRSZW1vdmVQZW5kaW5nSGFuZGxlcnNW
YWxpZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uIGlzIGZpbmlzaGVkLCB3ZSByZW1vdmUg
YWxsIG1hcmtlZCBoYW5kbGVycworICAgICAgICBmcm9tIHRoZSBwZW5kaW5nIHZlY3Rvci4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IDMgbmV3IHVuaXQgdGVzdHM6CisgICAgICAgIC0gUG9zaXRpb25J
bmZvcm1hdGlvblRlc3RzLkVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25BdExpbmsKKyAgICAgICAg
LSBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMuUmVxdWVzdFBvc2l0aW9uSW5mb3JtYXRpb25BdExp
bmsKKyAgICAgICAgLSBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMuRW5zdXJlSW5mb3JtYXRpb25B
dExpbmtXaXRoaW5SZXF1ZXN0Q2FsbGJhY2sKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgZW5zdXJlUG9zaXRpb25JbmZv
cm1hdGlvbklzVXBUb0RhdGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBkb0FmdGVyUG9zaXRp
b25JbmZvcm1hdGlvblVwZGF0ZTphdFBvc2l0aW9uOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XS1Bvc2l0
aW9uSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIFVJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50
VmlldyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpmb3JSZXF1ZXN0Ol0pOgorICAg
ICAgICAoLVtXS0NvbnRlbnRWaWV3IF9pbnZva2VBbmRSZW1vdmVQZW5kaW5nSGFuZGxlcnNWYWxp
ZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lv
cy9XS1Bvc2l0aW9uSW50ZXJhY3Rpb25JbmZvcm1hdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiBV
SVByb2Nlc3MvaW9zL1dLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9uLm1tOiBBZGRlZC4K
KworICAgICAgICBJbnRyb2R1Y2UgYSB3cmFwcGVyIGFyb3VuZCBwb3NpdGlvbiBpbmZvcm1hdGlv
biwgd2hpY2ggd2UgdmVuZCBhcyBTUEkgZm9yIHRlc3RpbmcuCisKKyAgICAgICAgKC1bV0tQb3Np
dGlvbkludGVyYWN0aW9uSW5mb3JtYXRpb24gaW5pdFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbjpdKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisKIDIwMTctMDQtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dLMl0gU3VwcG9ydCBkYXRhIGludGVyYWN0aW9uIG9mIGZpbGVzIGludG8g
ZmlsZSBpbnB1dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KaW5kZXggZTVkOTZlNjJjNDNmMjU2NThlMjNiNjRkNDZjNjNjNjgwNmQwMDM4Yi4u
OWM1OTNjOGUwYWEyN2NhZGRiYjkwYzNkYTRmN2Q0Njg0MmViYTZiMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM2LDYgKzM2LDgg
QEAKICNpbXBvcnQgIkZpbmRDbGllbnQuaCIKICNpbXBvcnQgIkZ1bGxzY3JlZW5DbGllbnQuaCIK
ICNpbXBvcnQgIkljb25Mb2FkaW5nRGVsZWdhdGUuaCIKKyNpbXBvcnQgIkludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uLmgiCisjaW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWVzdC5oIgogI2ltcG9ydCAiTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgiCiAjaW1wb3J0ICJM
b2dnaW5nLmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uU3RhdGUuaCIKQEAgLTYwLDYgKzYyLDcgQEAK
ICNpbXBvcnQgIldLTlNVUkxFeHRyYXMuaCIKICNpbXBvcnQgIldLTmF2aWdhdGlvbkRlbGVnYXRl
LmgiCiAjaW1wb3J0ICJXS05hdmlnYXRpb25JbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tQb3NpdGlv
bkludGVyYWN0aW9uSW5mb3JtYXRpb25JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tQcmVmZXJlbmNl
c0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NQb29sSW50ZXJuYWwuaCIKICNpbXBvcnQg
IldLU2hhcmVkQVBJQ2FzdC5oIgpAQCAtNTA2Niw2ICs1MDY5LDE4IEBAIHN0YXRpYyBXZWJDb3Jl
OjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlckludGVyZmFjZUxheW91dERpcmVj
dGlvbihVSVNlCiB9CiAKICNpZiBQTEFURk9STShJT1MpCistIChXS1Bvc2l0aW9uSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbiAqKWVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOihDR1Bv
aW50KXBvc2l0aW9uCit7CisgICAgW19jb250ZW50VmlldyBlbnN1cmVQb3NpdGlvbkluZm9ybWF0
aW9uSXNVcFRvRGF0ZTpXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KFdlYkNv
cmU6OnJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpXTsKKyAgICByZXR1cm4gW1dLUG9zaXRpb25J
bnRlcmFjdGlvbkluZm9ybWF0aW9uIGluZm9ybWF0aW9uV2l0aEludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uOltfY29udGVudFZpZXcgY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25dXTsK
K30KKworLSAodm9pZClkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZToodm9pZCAoXiko
V0tQb3NpdGlvbkludGVyYWN0aW9uSW5mb3JtYXRpb24gKikpYWN0aW9uIGF0UG9zaXRpb246KENH
UG9pbnQpcG9zaXRpb24KK3sKKyAgICBbX2NvbnRlbnRWaWV3IGRvQWZ0ZXJQb3NpdGlvbkluZm9y
bWF0aW9uVXBkYXRlOltjYXB0dXJlZEFjdGlvbiA9IG1ha2VCbG9ja1B0cihhY3Rpb24pXSAoV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiBpbmZvcm1hdGlvbikgeworICAg
ICAgICBjYXB0dXJlZEFjdGlvbihbV0tQb3NpdGlvbkludGVyYWN0aW9uSW5mb3JtYXRpb24gaW5m
b3JtYXRpb25XaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246aW5mb3JtYXRpb25d
KTsKKyAgICB9IGZvclJlcXVlc3Q6V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dChXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQocG9zaXRpb24pKV07Cit9CiAKIC0gKENHUmVjdClf
Y29udGVudFZpc2libGVSZWN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGEwMjg0M2Y0YjI0YzczMmQxYzI0
NjlhMWU0NDg5ZTcyYjQxOTY5MmEuLjgyYjg1OWJlNmUxZmQzMzM2Mjk0YjM0MzExMzA1YTQ3YmU3
YTkxZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC02MSw2ICs2MSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0lu
dGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKICNlbmRpZgogCiBAY2xhc3MgV0tCcm93
c2luZ0NvbnRleHRIYW5kbGU7CitAY2xhc3MgV0tQb3NpdGlvbkludGVyYWN0aW9uSW5mb3JtYXRp
b247CiBAY2xhc3MgX1dLRnJhbWVIYW5kbGU7CiBAY2xhc3MgX1dLSGl0VGVzdFJlc3VsdDsKIEBj
bGFzcyBfV0tJY29uTG9hZGluZ0RlbGVnYXRlOwpAQCAtMzI3LDYgKzMyOCw5IEBAIHR5cGVkZWYg
TlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIC0gKE5TQXJyYXkg
Kilfc2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9uOihpZClzZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlUHJlcGFyZUZvckRhdGFJbnRlcmFj
dGlvblNlc3Npb246KGlkKXNlc3Npb24gY29tcGxldGlvbjooZGlzcGF0Y2hfYmxvY2tfdCljb21w
bGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAorLSAoV0tQb3NpdGlv
bkludGVyYWN0aW9uSW5mb3JtYXRpb24gKillbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRv
RGF0ZTooQ0dQb2ludClwb3NpdGlvbjsKKy0gKHZvaWQpZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRp
b25VcGRhdGU6KHZvaWQgKF4pKFdLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9uICopKWFj
dGlvbiBhdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uOworCiAjZW5kaWYgLy8gVEFSR0VUX09T
X0lQSE9ORQogCiAjaWYgIVRBUkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XS1Bvc2l0aW9uSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV0tQb3NpdGlvbkludGVyYWN0aW9uSW5mb3JtYXRp
b25JbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjMzMxMDFhM2E0MjJhOTFlYzE2N2NkMGIzMDQ4Y2E5
ZGUxZGEzYWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV0tQ
b3NpdGlvbkludGVyYWN0aW9uSW5mb3JtYXRpb25JbnRlcm5hbC5oCkBAIC0wLDAgKzEsMzggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5o
IgorI2ltcG9ydCAiV0tQb3NpdGlvbkludGVyYWN0aW9uSW5mb3JtYXRpb24uaCIKKworI2lmIFRB
UkdFVF9PU19JUEhPTkUKKworQGludGVyZmFjZSBXS1Bvc2l0aW9uSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbiAoKQorCisrIChpbnN0YW5jZXR5cGUpaW5mb3JtYXRpb25XaXRoSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb24mKWluZm9ybWF0aW9uOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9uOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKaW5kZXggZWUyMDVkYjEwMzUyZDQyNThlYTc1ZmQ4YjViMGQxNzAyOTdhMjc1MC4uNTE5NWQx
YzMxN2NjNzBhZjU4ZDU2YmU3M2Y1NmQxOWVkMjA1NDc5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0z
Niw2ICszNiw3IEBACiAjaW1wb3J0ICJXS0FpclBsYXlSb3V0ZVBpY2tlci5oIgogI2ltcG9ydCAi
V0tGaWxlVXBsb2FkUGFuZWwuaCIKICNpbXBvcnQgIldLRm9ybVBlcmlwaGVyYWwuaCIKKyNpbXBv
cnQgIldLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9uLmgiCiAjaW1wb3J0ICJXS1N5bnRo
ZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIuaCIKICNpbXBvcnQgPFVJS2l0L1VJVmlldy5o
PgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgpAQCAtODcsNiArODgsNyBAQCB0eXBlZGVmIHZv
aWQgKF5VSVdLU2VsZWN0aW9uV2l0aERpcmVjdGlvbkNvbXBsZXRpb25IYW5kbGVyKShCT09MIHNl
bGVjdGlvbkVuZElzTQogdHlwZWRlZiB2b2lkICheVUlXS0tleVdlYkV2ZW50Q29tcGxldGlvbkhh
bmRsZXIpKDo6V2ViRXZlbnQgKnRoZUV2ZW50LCBCT09MIHdhc0hhbmRsZWQpOwogCiB0eXBlZGVm
IEJsb2NrUHRyPHZvaWQoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbik+
IEludGVyYWN0aW9uSW5mb3JtYXRpb25DYWxsYmFjazsKK3R5cGVkZWYgc3RkOjpwYWlyPFdlYktp
dDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QsIEludGVyYWN0aW9uSW5mb3JtYXRpb25D
YWxsYmFjaz4gSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3RBbmRDYWxsYmFjazsKIAogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKQEAgLTE3NCw3ICsxNzYsOSBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVj
dGlvbkRhdGEgewogICAgIFdlYktpdDo6V0tTZWxlY3Rpb25EcmF3aW5nSW5mbyBfbGFzdFNlbGVj
dGlvbkRyYXdpbmdJbmZvOwogCiAgICAgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25SZXF1ZXN0PiBfb3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVz
dDsKLSAgICBWZWN0b3I8c3RkOjpwYWlyPFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJl
cXVlc3QsIEludGVyYWN0aW9uSW5mb3JtYXRpb25DYWxsYmFjaz4+IF9wZW5kaW5nUG9zaXRpb25J
bmZvcm1hdGlvbkhhbmRsZXJzOworCisgICAgdWludDY0X3QgX3Bvc2l0aW9uSW5mb3JtYXRpb25D
YWxsYmFja0RlcHRoOworICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPEludGVyYWN0aW9uSW5mb3Jt
YXRpb25SZXF1ZXN0QW5kQ2FsbGJhY2s+PiBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5k
bGVyczsKICAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpJbnB1dFZpZXdVcGRhdGVE
ZWZlcnJlcj4gX2lucHV0Vmlld1VwZGF0ZURlZmVycmVyOwogCkBAIC0yODcsNiArMjkxLDEwIEBA
IHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0
cmlldmVSZWN0c0VuY2xvc2luZ1NlbGVjdGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3aXRo
R3JhbnVsYXJpdHk6KFVJVGV4dEdyYW51bGFyaXR5KWdyYW51bGFyaXR5OwogLSAodm9pZClfYWNj
ZXNzaWJpbGl0eVJldHJpZXZlUmVjdHNBdFNlbGVjdGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNl
dCB3aXRoVGV4dDooTlNTdHJpbmcgKil0ZXh0OwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVh
ZG9ubHkpIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gY3VycmVudFBv
c2l0aW9uSW5mb3JtYXRpb247CistICh2b2lkKWRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBk
YXRlOih2b2lkICheKShXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKSlh
Y3Rpb24gZm9yUmVxdWVzdDooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCly
ZXF1ZXN0OworLSAodm9pZCllbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTooV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdClyZXF1ZXN0OworCiAjaWYgRU5BQkxF
KERBVEFfSU5URVJBQ1RJT04pCiAtICh2b2lkKV9kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29u
dHJvbGxlck9wZXJhdGlvbjsKIC0gKHZvaWQpX2RpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9u
UmVxdWVzdDooQk9PTClzdGFydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA4MjNmMDgyZWQ2MjY5
MTBmMGUxYzcyMjY3NDU3MWUzMGZkZTAxODZmLi44ODUyYTliNzVhMTQzY2Q1NTUyMWUyMmU0NjVk
YjRjNTdhNDM1YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTMwNiw2ICsxMzA2LDExIEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2Vz
dHVyZVJlY29nbml6ZXIgKmIsIFVJCiAgICAgcmV0dXJuIFtzZWxmIF9hY3Rpb25Gb3JMb25nUHJl
c3NGcm9tUG9zaXRpb25JbmZvcm1hdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbl07CiB9CiAKKy0g
KEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKWN1cnJlbnRQb3NpdGlvbkluZm9ybWF0
aW9uCit7CisgICAgcmV0dXJuIF9wb3NpdGlvbkluZm9ybWF0aW9uOworfQorCiAtICh2b2lkKWRv
QWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOih2b2lkICheKShJbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbikpYWN0aW9uIGZvclJlcXVlc3Q6KEludGVyYWN0aW9uSW5mb3JtYXRp
b25SZXF1ZXN0KXJlcXVlc3QKIHsKICAgICBpZiAoW3NlbGYgX2N1cnJlbnRQb3NpdGlvbkluZm9y
bWF0aW9uSXNWYWxpZEZvclJlcXVlc3Q6cmVxdWVzdF0pIHsKQEAgLTEzMTQsNyArMTMxOSw3IEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJ
R2VzdHVyZVJlY29nbml6ZXIgKmIsIFVJCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBf
cGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVycy5hcHBlbmQoeyByZXF1ZXN0LCBhY3Rp
b24gfSk7CisgICAgX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnMuYXBwZW5kKElu
dGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0QW5kQ2FsbGJhY2socmVxdWVzdCwgYWN0aW9uKSk7
CiAKICAgICBpZiAoIVtzZWxmIF9oYXNWYWxpZE91dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlv
blJlcXVlc3Q6cmVxdWVzdF0pCiAgICAgICAgIFtzZWxmIHJlcXVlc3RBc3luY2hyb25vdXNQb3Np
dGlvbkluZm9ybWF0aW9uVXBkYXRlOnJlcXVlc3RdOwpAQCAtMTM2MSwyMCArMTM2NiwzMCBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBVSUdl
c3R1cmVSZWNvZ25pemVyICpiLCBVSQogewogICAgIEFTU0VSVChfaGFzVmFsaWRQb3NpdGlvbklu
Zm9ybWF0aW9uKTsKIAotICAgIFZlY3RvcjxzaXplX3Q+IGluZGljZXNPZkhhbmRsZWRSZXF1ZXN0
czsKKyAgICArK19wb3NpdGlvbkluZm9ybWF0aW9uQ2FsbGJhY2tEZXB0aDsKKyAgICBhdXRvIHVw
ZGF0ZWRQb3NpdGlvbkluZm9ybWF0aW9uID0gX3Bvc2l0aW9uSW5mb3JtYXRpb247CisKICAgICBm
b3IgKHNpemVfdCBpbmRleCA9IDA7IGluZGV4IDwgX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9u
SGFuZGxlcnMuc2l6ZSgpOyArK2luZGV4KSB7Ci0gICAgICAgIGF1dG8mIHJlcXVlc3RBbmRIYW5k
bGVyID0gX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnNbaW5kZXhdOwotICAgICAg
ICBpZiAoIVtzZWxmIF9jdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbklzVmFsaWRGb3JSZXF1ZXN0
OnJlcXVlc3RBbmRIYW5kbGVyLmZpcnN0XSkKKyAgICAgICAgYXV0byByZXF1ZXN0QW5kSGFuZGxl
ciA9IF9wZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzW2luZGV4XTsKKyAgICAgICAg
aWYgKCFyZXF1ZXN0QW5kSGFuZGxlcikKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAg
IGlmIChyZXF1ZXN0QW5kSGFuZGxlci5zZWNvbmQpCi0gICAgICAgICAgICByZXF1ZXN0QW5kSGFu
ZGxlci5zZWNvbmQoX3Bvc2l0aW9uSW5mb3JtYXRpb24pOworICAgICAgICBpZiAoIVtzZWxmIF9j
dXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbklzVmFsaWRGb3JSZXF1ZXN0OnJlcXVlc3RBbmRIYW5k
bGVyLT5maXJzdF0pCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAocmVxdWVz
dEFuZEhhbmRsZXItPnNlY29uZCkKKyAgICAgICAgICAgIHJlcXVlc3RBbmRIYW5kbGVyLT5zZWNv
bmQodXBkYXRlZFBvc2l0aW9uSW5mb3JtYXRpb24pOwogCi0gICAgICAgIGluZGljZXNPZkhhbmRs
ZWRSZXF1ZXN0cy5hcHBlbmQoaW5kZXgpOworICAgICAgICBfcGVuZGluZ1Bvc2l0aW9uSW5mb3Jt
YXRpb25IYW5kbGVyc1tpbmRleF0gPSBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCi0gICAgd2hpbGUg
KGluZGljZXNPZkhhbmRsZWRSZXF1ZXN0cy5zaXplKCkpCi0gICAgICAgIF9wZW5kaW5nUG9zaXRp
b25JbmZvcm1hdGlvbkhhbmRsZXJzLnJlbW92ZShpbmRpY2VzT2ZIYW5kbGVkUmVxdWVzdHMudGFr
ZUxhc3QoKSk7CisgICAgaWYgKC0tX3Bvc2l0aW9uSW5mb3JtYXRpb25DYWxsYmFja0RlcHRoKQor
ICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGludCBpbmRleCA9IF9wZW5kaW5nUG9zaXRpb25J
bmZvcm1hdGlvbkhhbmRsZXJzLnNpemUoKSAtIDE7IGluZGV4ID49IDA7IC0taW5kZXgpIHsKKyAg
ICAgICAgaWYgKCFfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVyc1tpbmRleF0pCisg
ICAgICAgICAgICBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVycy5yZW1vdmUoaW5k
ZXgpOworICAgIH0KIH0KIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQb3NpdGlvbkludGVyYWN0aW9uSW5mb3Jt
YXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQb3NpdGlvbkludGVyYWN0
aW9uSW5mb3JtYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45NGUzNDAzYTliNmM4ZjUyZDhlMTNlNWE1OTcy
ZGQ4M2QwNWNiYzgwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS1Bvc2l0aW9uSW50ZXJhY3Rpb25JbmZvcm1hdGlvbi5oCkBAIC0wLDAgKzEsNDIgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBUQVJH
RVRfT1NfSVBIT05FCisKK1dLX0NMQVNTX0FWQUlMQUJMRShpb3MoMTEuMCkpCitAaW50ZXJmYWNl
IFdLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9uIDogTlNPYmplY3QKKworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1BvaW50IHBvaW50OworCitAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0xpbmspIEJPT0wgbGluazsKK0Bwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzQXR0YWNobWVudCkgQk9PTCBhdHRhY2htZW50Owor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNJbWFnZSkgQk9PTCBpbWFn
ZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzRWxlbWVudCkgQk9P
TCBlbGVtZW50OworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS1Bvc2l0aW9uSW50ZXJhY3Rpb25JbmZvcm1hdGlvbi5tbSBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQb3NpdGlvbkludGVyYWN0aW9uSW5mb3JtYXRpb24u
bW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNTY0OGU1MTAxZmVhZWU3YTYyYjI4MTI3NjE2MTIzMjc3OGQ4NTYzNAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tQb3NpdGlv
bkludGVyYWN0aW9uSW5mb3JtYXRpb24ubW0KQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXS1Bvc2l0aW9uSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkludGVybmFsLmgiCisKKyNpZiBQTEFURk9STShJT1MpCisKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CisKK0BpbXBsZW1lbnRhdGlvbiBXS1Bvc2l0aW9uSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbgorCisrIChpbnN0YW5jZXR5cGUpaW5mb3JtYXRpb25XaXRoSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb246KGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilp
bmZvcm1hdGlvbgoreworICAgIHJldHVybiBbW1tzZWxmIGFsbG9jXSBpbml0V2l0aEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOmluZm9ybWF0aW9uXSBhdXRvcmVsZWFzZV07Cit9CisK
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
Oihjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb24KK3sK
KyAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIF9wb2ludCA9IGluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQ7CisgICAgX2xpbmsgPSBpbmZv
cm1hdGlvbi5pc0xpbms7CisgICAgX2F0dGFjaG1lbnQgPSBpbmZvcm1hdGlvbi5pc0F0dGFjaG1l
bnQ7CisgICAgX2ltYWdlID0gaW5mb3JtYXRpb24uaXNJbWFnZTsKKyAgICBfZWxlbWVudCA9IGlu
Zm9ybWF0aW9uLmlzRWxlbWVudDsKKworICAgIHJldHVybiBzZWxmOworfQorCitAZW5kCisKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IGQxMDdlMDQxMWM4OWQ0NTViZWI4MDlmNTA1MWM4NTIxZWM0MjVmNzEuLjE0MTVk
ZjFlNjZlMzhmZmI3ZjZmOWIwYzE4NTJhZGYzZDU4YTg1MWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMDksNiArMjAwOSw5
IEBACiAJCUY0MzM3MDk3MUU0RDcyRUQwMDA1MkIwRSAvKiBfV0tUZXN0aW5nRGVsZWdhdGUuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzM3MDk2MUU0
RDZBNDQwMDA1MkIwRSAvKiBfV0tUZXN0aW5nRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDRERkVCMjFFOUU3NTJGMDAzOEQxOTYg
LyogV2ViSWNvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQ0REZFQjAxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMu
aCAqLzsgfTsKIAkJRjQ0REZFQjMxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRERkVC
MTFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5tbSAqLzsgfTsKKwkJRjREN0JD
RDExRUE1NjY4NzAwQzQyMUQzIC8qIFdLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9uLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ3QkNDRjFF
QTU2Njg3MDBDNDIxRDMgLyogV0tQb3NpdGlvbkludGVyYWN0aW9uSW5mb3JtYXRpb24uaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGNEQ3QkNEMjFF
QTU2Njg3MDBDNDIxRDMgLyogV0tQb3NpdGlvbkludGVyYWN0aW9uSW5mb3JtYXRpb24ubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ3QkNEMDFFQTU2
Njg3MDBDNDIxRDMgLyogV0tQb3NpdGlvbkludGVyYWN0aW9uSW5mb3JtYXRpb24ubW0gKi87IH07
CisJCUY0RDdCQ0Q0MUVBNTY3NzMwMEM0MjFEMyAvKiBXS1Bvc2l0aW9uSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNEQ3QkNEMzFFQTU2NzczMDBDNDIxRDMgLyogV0tQb3NpdGlvbkludGVyYWN0aW9u
SW5mb3JtYXRpb25JbnRlcm5hbC5oICovOyB9OwogCQlGNjExM0UyNTEyNkNFMTgyMDA1N0QwQTcg
LyogQVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0UyNDEyNkNFMTgyMDA1N0QwQTcgLyogQVBJVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmggKi87IH07CiAJCUY2MTEzRTI4MTI2Q0UxOUIwMDU3RDBBNyAvKiBX
S1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNjExM0UyNjEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVu
dFVSTFBhdHRlcm4uY3BwICovOyB9OwogCQlGNjExM0UyOTEyNkNFMTlCMDA1N0QwQTcgLyogV0tV
c2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY2MTEzRTI3MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJM
UGF0dGVybi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CkBAIC00MzQzLDYgKzQzNDYsOSBAQAogCQlGNDMzNzA5NjFFNEQ2QTQ0MDAwNTJCMEUgLyogX1dL
VGVzdGluZ0RlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1Rl
c3RpbmdEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRERkVCMDFF
OUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IG5hbWUgPSBXZWJJY29uVXRpbGl0aWVzLmg7IHBhdGggPSBpb3MvV2ViSWNvblV0aWxp
dGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRERkVCMTFFOUU3NTJGMDAz
OEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgbmFtZSA9IFdlYkljb25VdGlsaXRpZXMubW07IHBhdGggPSBpb3MvV2ViSWNvblV0aWxp
dGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjREN0JDQ0YxRUE1NjY4NzAw
QzQyMUQzIC8qIFdLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9uLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFdLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9uLmg7IHBhdGggPSBpb3MvV0tQb3Np
dGlvbkludGVyYWN0aW9uSW5mb3JtYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRjREN0JDRDAxRUE1NjY4NzAwQzQyMUQzIC8qIFdLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9y
bWF0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tQb3NpdGlvbkludGVyYWN0aW9uSW5m
b3JtYXRpb24ubW07IHBhdGggPSBpb3MvV0tQb3NpdGlvbkludGVyYWN0aW9uSW5mb3JtYXRpb24u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0RDdCQ0QzMUVBNTY3NzMwMEM0MjFE
MyAvKiBXS1Bvc2l0aW9uSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkludGVybmFsLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9uSW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjQxMjZDRTE4MjAwNTdEMEE3IC8qIEFQSVVz
ZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBB
UElVc2VyQ29udGVudFVSTFBhdHRlcm4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjYxMTNFMjYxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjcxMjZDRTE5QjAw
NTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC00NDgxLDYgKzQ0ODcsNyBAQAogCQkJCTFBNEY5NzY5MTAwRTdCNjYwMDYz
N0ExOCAvKiBDb25maWd1cmF0aW9ucyAqLywKIAkJCQkwODY3RDY5QUZFODQwMjhGQzAyQUFDMDcg
LyogRXh0ZXJuYWwgRnJhbWV3b3JrcyBhbmQgTGlicmFyaWVzICovLAogCQkJCTAzNDc2OERGRkYz
OEE1MDQxMURCOUM4QiAvKiBQcm9kdWN0cyAqLywKKwkJCQlGNEQ3QkNDQTFFQTQ5NEZBMDBDNDIx
RDMgLyogUmVjb3ZlcmVkIFJlZmVyZW5jZXMgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFdlYktpdDI7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtNTQwNCw2ICs1NDExLDkgQEAKIAkJCQkw
RkNCNEU0NTE4QkJFMDQ0MDAwRkNGQzkgLyogV0tTY3JvbGxWaWV3Lm1tICovLAogCQkJCTI2RjEw
QkU2MTkxODdFMkUwMDFEMEU2OCAvKiBXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6
ZXIuaCAqLywKIAkJCQkyNkYxMEJFNzE5MTg3RTJFMDAxRDBFNjggLyogV0tTeW50aGV0aWNDbGlj
a1RhcEdlc3R1cmVSZWNvZ25pemVyLm0gKi8sCisJCQkJRjREN0JDQ0YxRUE1NjY4NzAwQzQyMUQz
IC8qIFdLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9uLmggKi8sCisJCQkJRjREN0JDRDAx
RUE1NjY4NzAwQzQyMUQzIC8qIFdLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9uLm1tICov
LAorCQkJCUY0RDdCQ0QzMUVBNTY3NzMwMEM0MjFEMyAvKiBXS1Bvc2l0aW9uSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkludGVybmFsLmggKi8sCiAJCQkpOwogCQkJbmFtZSA9IGlvczsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC04MDQyLDYgKzgwNTIsMTQgQEAKIAkJCXBhdGggPSBOZXR3
b3JrUHJvY2Vzcy9jYWNoZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCUY0
RDdCQ0NBMUVBNDk0RkEwMEM0MjFEMyAvKiBSZWNvdmVyZWQgUmVmZXJlbmNlcyAqLyA9IHsKKwkJ
CWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzU4Q0RGMjgxODg3NTQ4QjAw
ODcxNTM2IC8qIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmggKi8sCisJCQkpOwor
CQkJbmFtZSA9ICJSZWNvdmVyZWQgUmVmZXJlbmNlcyI7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQlGNjM4OTU1QTEzM0JGNTdEMDA4OTQxRDUgLyogbWFjICovID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTg0MTUsNiArODQzMyw3IEBACiAJ
CQkJMUEyRDgyQTcxMjdGNEVBQjAwMUVCOTYyIC8qIE5QT2JqZWN0UHJveHkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBMkQ4MkE5MTI3RjRFQUIwMDFFQjk2MiAvKiBOUFJlbW90ZU9iamVjdE1hcC5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyMTYxQjAxMUYzNzY2NDAwOEFEMEY1IC8qIE5QUnVudGlt
ZU9iamVjdE1hcC5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjREN0JDRDQxRUE1Njc3MzAwQzQyMUQz
IC8qIFdLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTFBMjE2MkIxMTFGMzg5NzEwMDhBRDBGNSAvKiBOUFJ1bnRpbWVVdGlsaXRpZXMu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBMkQ4NEEzMTI3RjZBRDEwMDFFQjk2MiAvKiBOUFZhcmlh
bnREYXRhLmggaW4gSGVhZGVycyAqLywKIAkJCQkzNzU0RDU0NTFCM0EyOUZEMDAzQTRDN0YgLyog
TlNJbnZvY2F0aW9uU1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTkwMjksNiArOTA0OCw3IEBACiAJ
CQkJMUFGQTNBQzkxOEU2MUM2MTAwM0NDQkFFIC8qIFdLVXNlckNvbnRlbnRDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQUFGMDhBNDE5MjY4MkRBMDBCNjM5MEMgLyogV0tVc2VyQ29u
dGVudENvbnRyb2xsZXJJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M4OUQyQjYxQTZC
MEREOTAwM0E1RkRFIC8qIFdLVXNlckNvbnRlbnRDb250cm9sbGVyUHJpdmF0ZS5oIGluIEhlYWRl
cnMgKi8sCisJCQkJRjREN0JDRDExRUE1NjY4NzAwQzQyMUQzIC8qIFdLUG9zaXRpb25JbnRlcmFj
dGlvbkluZm9ybWF0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Qzg5RDJBMDFBNjc4NTU0MDAz
QTVGREUgLyogV0tVc2VyQ29udGVudENvbnRyb2xsZXJSZWYuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdDMjQxMzA5MUFBQ0ZDQjQwMEE1OEMxNSAvKiBXS1VzZXJDb250ZW50RXh0ZW5zaW9uU3RvcmVS
ZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCTM3N0VBRDQ4MTdFMkM3N0IwMDJEMTkzRCAvKiBXS1Vz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMuaCBpbiBIZWFkZXJzICovLApAQCAtMTAyNjMsNiArMTAy
ODMsNyBAQAogCQkJCUJDN0I2MjE2MTJBNDIxOUEwMEQxNzRBNCAvKiBXZWJQYWdlR3JvdXBQcm94
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDlFQTMxMTFBOTZEOUVCMDAyRDI4MDcgLyogV2Vi
UGFnZUluamVjdGVkQnVuZGxlQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEQTk0NEJB
MTg4NEVBM0MwMEVEODZEQiAvKiBXZWJQYWdlSU9TLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjRE
N0JDRDIxRUE1NjY4NzAwQzQyMUQzIC8qIFdLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9u
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5NjNENkUxMTNERDFBNTAwNTc0QkUyIC8qIFdlYlBh
Z2VNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlDMENFNzJBMDEyNDdFNzFEMDBCQzBFQzQgLyog
V2ViUGFnZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyRDVDOUQwNTE5
QzgxRDhGMDBCM0M1QzEgLyogV2ViUGFnZU92ZXJsYXkuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzZkNzk4MTNh
YmRmOTQxOTkxYTAyYWE3ZDkzZmRlM2NhMWI1Y2RmZi4uNTdlZTAzY2NiNGU2ZjNmZWI1YWUzMzIw
NmYwZTdmNTFiYmVmZWU0MyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA0LTE3ICBXZW5zb24gSHNpZWggIDx3
ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIC1bV0tDb250ZW50VmlldyBk
b0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTphdFBvc2l0aW9uOl0gc2hvdWxkIGJlIHJv
YnVzdCBhZ2FpbnN0IHN5bmNocm9ub3VzIHJlZW50cmFuY3kKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDkyMgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMzE2MzQ5OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkcyB0aHJlZSBuZXcgdW5pdCB0ZXN0cyBmb3IgcmV0cmlldmluZyBpbnRlcmFjdGlv
biBpbmZvcm1hdGlvbiBhdCBhIGdpdmVuIHBvc2l0aW9uIGluIHRoZSBVSSBwcm9jZXNzLiBTZWUK
KyAgICAgICAgV2ViS2l0MiBDaGFuZ2VMb2cgZm9yIG1vcmUgZGV0YWlscy4KKworICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Bvc2l0aW9uSW5mb3JtYXRpb25UZXN0
cy5tbTogQWRkZWQuCisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RDR1BvaW50c1RvQmVF
cXVhbCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0wNC0xNCAgTWFy
ayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgVXBkYXRlIGFyY2hpdGVjdHVy
ZXMgaW4geGNjb25maWcgZmlsZXMuCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGNlZDhlYTg1
OWVhNDk1ZDNmYjUzNWIyZGQ5ZDUxYjI1NzY4NjRlODcuLjI1ZmRkMTdmZDgwODMyYmE1ZTlhNWIw
YmRkNjkzYWY0NGQ2MDgzNzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdl
YktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTQsNiArNTk0
LDcgQEAKIAkJRjRDMkFCMjIxREQ2RDk1RTAwRTA2RDVCIC8qIGVub3Jtb3VzLXZpZGVvLXdpdGgt
c291bmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNEMyQUIyMTFERDZEOTQxMDBFMDZENUIgLyogZW5vcm1vdXMtdmlkZW8td2l0aC1z
b3VuZC5odG1sICovOyB9OwogCQlGNEQ0RjNCNjFFNEUyQkNCMDBCQjI3NjcgLyogRGF0YUludGVy
YWN0aW9uU2ltdWxhdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblNpbXVs
YXRvci5tbSAqLzsgfTsKIAkJRjRENEYzQjkxRTRFMzZFNDAwQkIyNzY3IC8qIERhdGFJbnRlcmFj
dGlvblRlc3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblRlc3RzLm1tICov
OyB9OworCQlGNEQ3QkNEODFFQTU3ODk4MDBDNDIxRDMgLyogUG9zaXRpb25JbmZvcm1hdGlvblRl
c3RzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRE
N0JDRDYxRUE1NzRERDAwQzQyMUQzIC8qIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbSAqLzsg
fTsKIAkJRjRERUY2RUQxRTlCNERCNjAwNDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlucHV0
Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjRERUY2RUMxRTlCNEQ5NTAwNDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlucHV0Lmh0
bWwgKi87IH07CiAJCUY0RjEzNzkyMUQ5QjY4M0UwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0
LW5vdy1wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjRGMTM3OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRl
c3Qtbm93LXBsYXlpbmcuaHRtbCAqLzsgfTsKIAkJRjRGNDA1QkMxRDRDMEQxQzAwN0E5NzA3IC8q
IGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGNDA1QkExRDRDMENG
ODAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwg
Ki87IH07CkBAIC0xNDcxLDYgKzE0NzIsNyBAQAogCQlGNEQ0RjNCNDFFNEUyQkNCMDBCQjI3Njcg
LyogRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
b2JqY3BwOyBwYXRoID0gRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNEQ0RjNCNTFFNEUyQkNCMDBCQjI3NjcgLyogRGF0YUludGVyYWN0
aW9uU2ltdWxhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFJbnRl
cmFjdGlvblNpbXVsYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ0RjNC
NzFFNEUzNkU0MDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9uVGVzdHMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjREN0JDRDYxRUE1NzRERDAwQzQyMUQzIC8qIFBv
c2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvc2l0aW9u
SW5mb3JtYXRpb25UZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRERUY2
RUMxRTlCNEQ5NTAwNDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiaW1hZ2UtaW4tbGluay1hbmQtaW5wdXQuaHRtbCI7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RjEzNzkxMUQ5QjY4MzIwMDJCRUM1NyAvKiBs
YXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAibGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjRGNDA1QkExRDRDMENGODAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRv
cGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAiZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCI7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODAwLDYgKzE4MDIsNyBAQAogCQkJCUExQzRGQjZGMUJB
Q0NFRkEwMDM3NDJEMCAvKiBSZXNvdXJjZXMgKi8sCiAJCQkJRjRENEYzQjcxRTRFMzZFNDAwQkIy
NzY3IC8qIERhdGFJbnRlcmFjdGlvblRlc3RzLm1tICovLAogCQkJCTc1NjA5MTc3MTkyNTlDNTkw
MDlFRjA2RSAvKiBNZW1vcnlDYWNoZUFkZEltYWdlVG9DYWNoZUlPUy5tbSAqLywKKwkJCQlGNEQ3
QkNENjFFQTU3NEREMDBDNDIxRDMgLyogUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tICovLAog
CQkJKTsKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjg5
Niw2ICsyODk5LDcgQEAKIAkJCQk3QzgzRTA1MzFEMEE2NDNBMDBGRUJDRjMgLyogUGVuZGluZ0FQ
SVJlcXVlc3RVUkwuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQUYxQTQxMUEzODAwNDQ3
QzRDIC8qIFBsYXRmb3JtVXRpbGl0aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMTM5RTc4
MUE0MjNBNkIwMEY1OTBGNSAvKiBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMg
Ki8sCisJCQkJRjREN0JDRDgxRUE1Nzg5ODAwQzQyMUQzIC8qIFBvc2l0aW9uSW5mb3JtYXRpb25U
ZXN0cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUE2MUE0MTFBMEYwMDQ0N0M0QyAvKiBQ
bGF0Zm9ybVV0aWxpdGllc01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUE3MUE0MTFB
MTMwMDQ0N0M0QyAvKiBQbGF0Zm9ybVdlYlZpZXdNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3
Q0NFN0YyNjFBNDExQUY2MDA0NDdDNEMgLyogUHJlZmVyZW5jZXMubW0gaW4gU291cmNlcyAqLywK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Bvc2l0aW9uSW5mb3Jt
YXRpb25UZXN0cy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Bvc2l0aW9uSW5m
b3JtYXRpb25UZXN0cy5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mN2Y1MjhiMGJiMWY1NDYwZWVkNGQxYWE4NDc3
YzZlMjE1YmM1Zjc0Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9pb3MvUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tCkBAIC0wLDAgKzEsMTAwIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9TKSAmJiBXS19B
UElfRU5BQkxFRAorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVz
dFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUG9zaXRpb25JbnRlcmFjdGlvbkluZm9y
bWF0aW9uLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorCituYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRpYyB2b2lkIGV4cGVjdENHUG9pbnRzVG9CZUVxdWFs
KGNvbnN0IENHUG9pbnQmIGZpcnN0LCBjb25zdCBDR1BvaW50JiBzZWNvbmQpCit7CisgICAgRVhQ
RUNUX0VRKGZpcnN0LngsIHNlY29uZC54KTsKKyAgICBFWFBFQ1RfRVEoZmlyc3QueSwgc2Vjb25k
LnkpOworfQorCitURVNUKFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cywgRW5zdXJlUG9zaXRpb25J
bmZvcm1hdGlvbkF0TGluaykKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdL
V2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0p
OworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImxpbmstYW5k
LWlucHV0Il07CisKKyAgICBXS1Bvc2l0aW9uSW50ZXJhY3Rpb25JbmZvcm1hdGlvbiAqaW5mb3Jt
YXRpb24gPSBbd2ViVmlldyBlbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTpDR1Bv
aW50TWFrZSgxMDAsIDUwKV07CisKKyAgICBFWFBFQ1RfVFJVRShbaW5mb3JtYXRpb24gaXNMaW5r
XSk7CisgICAgRVhQRUNUX1RSVUUoW2luZm9ybWF0aW9uIGlzRWxlbWVudF0pOworICAgIGV4cGVj
dENHUG9pbnRzVG9CZUVxdWFsKFtpbmZvcm1hdGlvbiBwb2ludF0sIHsgMTAwLCA1MCB9KTsKK30K
KworVEVTVChQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMsIFJlcXVlc3RQb3NpdGlvbkluZm9ybWF0
aW9uQXRMaW5rKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3
IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAg
W3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAibGluay1hbmQtaW5wdXQi
XTsKKworICAgIF9fYmxvY2sgYm9vbCBpc0RvbmUgPSBmYWxzZTsKKyAgICBfX2Jsb2NrIFJldGFp
blB0cjxXS1Bvc2l0aW9uSW50ZXJhY3Rpb25JbmZvcm1hdGlvbj4gcG9zaXRpb25JbmZvcm1hdGlv
bjsKKyAgICBbd2ViVmlldyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpeKFdLUG9z
aXRpb25JbnRlcmFjdGlvbkluZm9ybWF0aW9uICppbmZvcm1hdGlvbikgeworICAgICAgICBwb3Np
dGlvbkluZm9ybWF0aW9uID0gaW5mb3JtYXRpb247CisgICAgICAgIGlzRG9uZSA9IHRydWU7Cisg
ICAgfSBhdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKKworICAgIFRlc3RXZWJLaXRB
UEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKworICAgIEVYUEVDVF9UUlVFKFtwb3NpdGlvbkluZm9y
bWF0aW9uIGlzTGlua10pOworICAgIEVYUEVDVF9UUlVFKFtwb3NpdGlvbkluZm9ybWF0aW9uIGlz
RWxlbWVudF0pOworICAgIGV4cGVjdENHUG9pbnRzVG9CZUVxdWFsKFtwb3NpdGlvbkluZm9ybWF0
aW9uIHBvaW50XSwgeyAxMDAsIDUwIH0pOworfQorCitURVNUKFBvc2l0aW9uSW5mb3JtYXRpb25U
ZXN0cywgRW5zdXJlSW5mb3JtYXRpb25BdExpbmtXaXRoaW5SZXF1ZXN0Q2FsbGJhY2spCit7Cisg
ICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRo
RnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJv
bm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJsaW5rLWFuZC1pbnB1dCJdOworCisgICAgX19ibG9j
ayBib29sIGlzRG9uZSA9IGZhbHNlOworICAgIF9fYmxvY2sgUmV0YWluUHRyPFdLUG9zaXRpb25J
bnRlcmFjdGlvbkluZm9ybWF0aW9uPiBwb3NpdGlvbkluZm9ybWF0aW9uOworICAgIFt3ZWJWaWV3
IGRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOl4oV0tQb3NpdGlvbkludGVyYWN0aW9u
SW5mb3JtYXRpb24gKmluZm9ybWF0aW9uKSB7CisgICAgICAgIFdLUG9zaXRpb25JbnRlcmFjdGlv
bkluZm9ybWF0aW9uICpzeW5jaHJvbm91c0luZm9ybWF0aW9uID0gW3dlYlZpZXcgZW5zdXJlUG9z
aXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6Q0dQb2ludE1ha2UoMTAwLCAzMDApXTsKKyAgICAg
ICAgRVhQRUNUX0ZBTFNFKHN5bmNocm9ub3VzSW5mb3JtYXRpb24ubGluayk7CisgICAgICAgIEVY
UEVDVF9UUlVFKHN5bmNocm9ub3VzSW5mb3JtYXRpb24uZWxlbWVudCk7CisgICAgICAgIGV4cGVj
dENHUG9pbnRzVG9CZUVxdWFsKHN5bmNocm9ub3VzSW5mb3JtYXRpb24ucG9pbnQsIHsgMTAwLCAz
MDAgfSk7CisKKyAgICAgICAgcG9zaXRpb25JbmZvcm1hdGlvbiA9IGluZm9ybWF0aW9uOworICAg
ICAgICBpc0RvbmUgPSB0cnVlOworICAgIH0gYXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDUw
KV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisKKyAgICBFWFBF
Q1RfVFJVRShbcG9zaXRpb25JbmZvcm1hdGlvbiBpc0xpbmtdKTsKKyAgICBFWFBFQ1RfVFJVRShb
cG9zaXRpb25JbmZvcm1hdGlvbiBpc0VsZW1lbnRdKTsKKyAgICBleHBlY3RDR1BvaW50c1RvQmVF
cXVhbChbcG9zaXRpb25JbmZvcm1hdGlvbiBwb2ludF0sIHsgMTAwLCA1MCB9KTsKK30KKworfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307412</attachid>
            <date>2017-04-18 13:36:58 -0700</date>
            <delta_ts>2017-04-18 17:11:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-170922-20170418133657.patch</filename>
            <type>text/plain</type>
            <size>35769</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1Mzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjI0ZDgzYTc4NzE5MWUy
OWZiYzcwMjY0MmQwOTFlMDViN2FiNjU3Mi4uNzMwYzNhN2U3MmI3NjZlZGNlMTdlODFhMTYwYjRk
YjFjNmEwMDQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTA0LTE4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIC1bV0tD
b250ZW50VmlldyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTphdFBvc2l0aW9uOl0g
c2hvdWxkIGJlIHJvYnVzdCBhZ2FpbnN0IHN5bmNocm9ub3VzIHJlZW50cmFuY3kKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDkyMgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzE2MzQ5OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JzIHBhcnQgb2YgdGhlIGFzeW5jaHJvbm91cyBwb3Np
dGlvbiBpbmZvcm1hdGlvbiBtZWNoYW5pc20gaW50cm9kdWNlZCBpbgorICAgICAgICA8aHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIxNTE3MT4sIGFuZCBpbnRyb2R1Y2VzIGluZnJh
c3RydWN0dXJlIGZvciB1bml0IHRlc3RpbmcgVUktc2lkZSBwb3NpdGlvbgorICAgICAgICBpbmZv
cm1hdGlvbiByZXF1ZXN0cy4KKworICAgICAgICBfaW52b2tlQW5kUmVtb3ZlUGVuZGluZ0hhbmRs
ZXJzVmFsaWRGb3JDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbiBpcyBhIGhlbHBlciBtZXRob2Qg
b24gV0tDb250ZW50VmlldworICAgICAgICByZXNwb25zaWJsZSBmb3IgaW52b2tpbmcgcXVldWVk
IHBvc2l0aW9uIGluZm9ybWF0aW9uIGhhbmRsZXJzIGFmdGVyIHJlY2VpdmluZyBhIHBvc2l0aW9u
IGluZm9ybWF0aW9uIHJlc3BvbnNlCisgICAgICAgIGZyb20gdGhlIHdlYiBwcm9jZXNzLiBQcmV2
aW91c2x5LCB0aGlzIG1ldGhvZCB3b3VsZCBpdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2YgcGVuZGlu
ZyBjYWxsYmFja3MgYW5kIGludm9rZSBhbGwKKyAgICAgICAgY2FsbGJhY2tzIHdob3NlIHJlcXVl
c3RzIGFyZSBzYXRpc2ZpZWQgYnkgdGhlIGluY29taW5nIHBvc2l0aW9uIGluZm9ybWF0aW9uIHVw
ZGF0ZSwgc2F2aW5nIHRoZSBpbmRpY2VzIG9mIHRoZXNlCisgICAgICAgIGhhbmRsZWQgY2FsbGJh
Y2tzIGluIHRoZSBwcm9jZXNzLiBBdCB0aGUgZW5kLCBpdCB3b3VsZCB0aGVuIHJlbW92ZSBjYWxs
YmFja3MgYXQgdGhlc2UgaW5kaWNlcyBmcm9tIHRoZSBhcnJheSBvZgorICAgICAgICBwZW5kaW5n
IGNhbGxiYWNrcy4gVGhpcyBpcyBwcm9ibGVtYXRpYyB3aGVuIGEgc3luY2hyb25vdXMgcG9zaXRp
b24gdXBkYXRlICh2aWEKKyAgICAgICAgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0Rh
dGU6KSBpcyB0cmlnZ2VyZWQgZnJvbSB3aXRoaW4gb25lIG9mIHRoZXNlIGNhbGxiYWNrcywgc2lu
Y2UKKyAgICAgICAgX2ludm9rZUFuZFJlbW92ZVBlbmRpbmdIYW5kbGVyc1ZhbGlkRm9yQ3VycmVu
dFBvc2l0aW9uSW5mb3JtYXRpb24gd2lsbCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gaXRzZWxmLCBh
bmQgdGhlbiB3ZQorICAgICAgICB3aWxsIGF0dGVtcHQgdG8gcmVtb3ZlIGEgY2FsbGJhY2sgYXQg
dGhlIHNhbWUgaW5kZXggdHdpY2UuCisKKyAgICAgICAgVG8gZml4IHRoaXMsIHdlIGNoYW5nZSB0
aGUgYXJyYXkgb2YgcGVuZGluZyBwb3NpdGlvbiBpbmZvcm1hdGlvbiBoYW5kbGVycyB0byBiZSBh
biBhcnJheSBvZiBvcHRpb25hbHMgaW5zdGVhZC4KKyAgICAgICAgV2hlbiBpbnZva2luZyBhbmQg
cmVtb3ZpbmcgcGVuZGluZyBoYW5kbGVycyBhZnRlciBhIHBvc2l0aW9uIGluZm9ybWF0aW9uIHJl
c3BvbnNlIGFycml2ZXMsIHdlIG5vdyBtYXJrIGNhbGxiYWNrcworICAgICAgICBhcyBoYW5kbGVk
IGJ5IHNldHRpbmcgdGhlbSB0byBzdGQ6Om51bGxvcHQuIFRoZW4sIHdoZW4gdGhlIHRvcC1sZXZl
bCBpbnZvY2F0aW9uIHRvCisgICAgICAgIF9pbnZva2VBbmRSZW1vdmVQZW5kaW5nSGFuZGxlcnNW
YWxpZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uIGlzIGZpbmlzaGVkLCB3ZSByZW1vdmUg
YWxsIG1hcmtlZCBoYW5kbGVycworICAgICAgICBmcm9tIHRoZSBwZW5kaW5nIHZlY3Rvci4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IDMgbmV3IHVuaXQgdGVzdHM6CisgICAgICAgIC0gUG9zaXRpb25J
bmZvcm1hdGlvblRlc3RzLkZpbmREcmFnZ2FibGVMaW5rQXRQb3NpdGlvbgorICAgICAgICAtIFBv
c2l0aW9uSW5mb3JtYXRpb25UZXN0cy5SZXF1ZXN0RHJhZ2dhYmxlTGlua0F0UG9zaXRpb24KKyAg
ICAgICAgLSBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMuRmluZERyYWdnYWJsZUxpbmtBdFBvc2l0
aW9uV2l0aGluUmVxdWVzdEJsb2NrCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRyYWdnYWJsZUVsZW1lbnRBdFBvc2l0
aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBv
c2l0aW9uOmNvbXBsZXRpb25CbG9jazpdKToKKworICAgICAgICBVc2VzIFdLQ29udGVudFZpZXcn
cyBwb3NpdGlvbiBpbmZvcm1hdGlvbiByZXF1ZXN0IGhlbHBlcnMgdG8gc2VhcmNoIGZvciBkcmFn
Z2FibGUgZWxlbWVudHMgb24gdGhlIHBhZ2UuIFRoZXJlCisgICAgICAgIGFyZSBib3RoIHN5bmNo
cm9ub3VzIGFuZCBhc3luY2hyb25vdXMgdmVyc2lvbnMgb2YgdGhpcywgYm90aCBvZiB3aGljaCBy
ZXRyaWV2ZSBhIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tOiBBZGRlZC4KKworICAgICAg
ICBFeHBvc2VzIHdoYXQgZWxlbWVudHMgYXJlIGRyYWdnYWJsZSBhdCBhIGdpdmVuIHBvc2l0aW9u
IGFzIFNQSSAob25seSBmb3IgdXNlIGluIHRlc3RpbmcgY29kZSwgYXQgdGhlIG1vbWVudCkuCisK
KyAgICAgICAgKC1bX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gaW5pdFdpdGhJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjpdKToKKyAgICAgICAgKC1bX1dLRHJhZ2dhYmxlRWxlbWVudElu
Zm8gY29weVdpdGhab25lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGN1
cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZG9B
ZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6Zm9yUmVxdWVzdDpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfaW52b2tlQW5kUmVtb3ZlUGVuZGluZ0hhbmRsZXJzVmFsaWRGb3JDdXJy
ZW50UG9zaXRpb25JbmZvcm1hdGlvbl0pOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKwogMjAxNy0wNC0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV0syXSBTdXBwb3J0IGRhdGEgaW50ZXJhY3Rpb24gb2Yg
ZmlsZXMgaW50byBmaWxlIGlucHV0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBlNWQ5NmU2MmM0M2YyNTY1OGUyM2I2NGQ0NmM2M2M2
ODA2ZDAwMzhiLi4yNmQzMTA0NjMwNmExOWRhZjcwZTUyNjNhYjNkZTJmYmEyZjA4ZjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAt
MzYsNiArMzYsOCBAQAogI2ltcG9ydCAiRmluZENsaWVudC5oIgogI2ltcG9ydCAiRnVsbHNjcmVl
bkNsaWVudC5oIgogI2ltcG9ydCAiSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oIgorI2ltcG9ydCAiSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKKyNpbXBvcnQgIkludGVyYWN0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0LmgiCiAjaW1wb3J0ICJMZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaCIK
ICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25TdGF0ZS5oIgpAQCAtODMs
NiArODUsNyBAQAogI2ltcG9ydCAiV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLmgiCiAjaW1wb3J0
ICJXZWJWaWV3SW1wbC5oIgogI2ltcG9ydCAiX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5o
IgorI2ltcG9ydCAiX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAi
X1dLRmluZERlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAj
aW1wb3J0ICJfV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCIKQEAgLTUwNjYsNiArNTA2OSwxOCBAQCBz
dGF0aWMgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0b1VzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb24oVUlTZQogfQogCiAjaWYgUExBVEZPUk0oSU9TKQorLSAoX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm8gKilkcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClw
b3NpdGlvbgoreworICAgIFtfY29udGVudFZpZXcgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklz
VXBUb0RhdGU6V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdChXZWJDb3JlOjpy
b3VuZGVkSW50UG9pbnQocG9zaXRpb24pKV07CisgICAgcmV0dXJuIFtfV0tEcmFnZ2FibGVFbGVt
ZW50SW5mbyBpbmZvV2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOltfY29udGVu
dFZpZXcgY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25dXTsKK30KKworLSAodm9pZClyZXF1ZXN0
RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJs
b2NrOih2b2lkICheKShfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqKSlibG9jaworeworICAgIFtf
Y29udGVudFZpZXcgZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6W2NhcHR1cmVkQmxv
Y2sgPSBtYWtlQmxvY2tQdHIoYmxvY2spXSAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbiBpbmZvcm1hdGlvbikgeworICAgICAgICBjYXB0dXJlZEJsb2NrKFtfV0tEcmFn
Z2FibGVFbGVtZW50SW5mbyBpbmZvV2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
OmluZm9ybWF0aW9uXSk7CisgICAgfSBmb3JSZXF1ZXN0OldlYktpdDo6SW50ZXJhY3Rpb25JbmZv
cm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6cm91bmRlZEludFBvaW50KHBvc2l0aW9uKSldOworfQog
CiAtIChDR1JlY3QpX2NvbnRlbnRWaXNpYmxlUmVjdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBhMDI4NDNm
NGIyNGM3MzJkMWMyNDY5YTFlNDQ4OWU3MmI0MTk2OTJhLi40YzcxMTQwYjNiYWY1NTQ2MGYwYTI0
YzhjNDgwZTU1YjA0OGJkNmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNjEsNiArNjEsNyBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAjZW5kaWYKIAog
QGNsYXNzIFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlOworQGNsYXNzIF9XS0RyYWdnYWJsZUVsZW1l
bnRJbmZvOwogQGNsYXNzIF9XS0ZyYW1lSGFuZGxlOwogQGNsYXNzIF9XS0hpdFRlc3RSZXN1bHQ7
CiBAY2xhc3MgX1dLSWNvbkxvYWRpbmdEZWxlZ2F0ZTsKQEAgLTMyNyw2ICszMjgsOSBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAtIChOU0Fy
cmF5ICopX3NpbXVsYXRlZEl0ZW1zRm9yU2Vzc2lvbjooaWQpc2Vzc2lvbiBXS19BUElfQVZBSUxB
QkxFKGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9zaW11bGF0ZVByZXBhcmVGb3JEYXRhSW50
ZXJhY3Rpb25TZXNzaW9uOihpZClzZXNzaW9uIGNvbXBsZXRpb246KGRpc3BhdGNoX2Jsb2NrX3Qp
Y29tcGxldGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKKy0gKF9XS0Ry
YWdnYWJsZUVsZW1lbnRJbmZvICopZHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQp
cG9zaXRpb247CistICh2b2lkKXJlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQ
b2ludClwb3NpdGlvbiBjb21wbGV0aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0RyYWdnYWJsZUVsZW1l
bnRJbmZvICopKWJsb2NrOworCiAjZW5kaWYgLy8gVEFSR0VUX09TX0lQSE9ORQogCiAjaWYgIVRB
UkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDBkNWEz
ZGQ5MDNkNmJmMzAwNDEwZWRiOWIzMGVkMmRjNzc5NDVkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mby5o
CkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0
aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgor
CitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKQorQGludGVyZmFj
ZSBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dQb2ludCBwb2ludDsKKworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNMaW5rKSBCT09MIGxpbms7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0F0dGFjaG1lbnQpIEJPT0wgYXR0YWNobWVu
dDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzSW1hZ2UpIEJPT0wg
aW1hZ2U7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1NlbGVjdGVk
KSBCT09MIHNlbGVjdGVkOworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm8ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwNDIzNWQwNWNiOGY2ZGI2
ODY4ZDc1OTk3YjRlNjNlZWYxYmRlMjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tCkBAIC0wLDAg
KzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiX1dL
RHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKwor
dXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKworQGltcGxlbWVudGF0aW9uIF9XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvCisKKyNpZiBQTEFURk9STShJT1MpCisKKysgKGluc3RhbmNldHlwZSlpbmZvV2l0
aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBJbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb24KK3sKKyAgICByZXR1cm4gW1tbc2VsZiBhbGxv
Y10gaW5pdFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjppbmZvcm1hdGlvbl0g
YXV0b3JlbGVhc2VdOworfQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjooY29uc3QgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24mKWluZm9ybWF0aW9uCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAg
ICAgIHJldHVybiBuaWw7CisKKyAgICBfcG9pbnQgPSBpbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50
OworICAgIF9saW5rID0gaW5mb3JtYXRpb24uaXNMaW5rOworICAgIF9hdHRhY2htZW50ID0gaW5m
b3JtYXRpb24uaXNBdHRhY2htZW50OworICAgIF9pbWFnZSA9IGluZm9ybWF0aW9uLmlzSW1hZ2U7
CisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisgICAgX3NlbGVjdGVkID0gaW5mb3JtYXRp
b24uaGFzU2VsZWN0aW9uQXRQb3NpdGlvbjsKKyNlbmRpZgorCisgICAgcmV0dXJuIHNlbGY7Cit9
CisKKyNlbmRpZgorCistIChpbnN0YW5jZXR5cGUpY29weVdpdGhab25lOihOU1pvbmUgKil6b25l
Cit7CisgICAgX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKmNvcHkgPSBbW19XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvIGFsbG9jXSBpbml0XTsKKworICAgIGNvcHkucG9pbnQgPSBzZWxmLnBvaW50Owor
ICAgIGNvcHkubGluayA9IHNlbGYubGluazsKKyAgICBjb3B5LmF0dGFjaG1lbnQgPSBzZWxmLmF0
dGFjaG1lbnQ7CisgICAgY29weS5pbWFnZSA9IHNlbGYuaW1hZ2U7CisgICAgY29weS5zZWxlY3Rl
ZCA9IHNlbGYuc2VsZWN0ZWQ7CisKKyAgICByZXR1cm4gY29weTsKK30KKworQGVuZAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgw
NmNlNzY0MWU1ODBhOWU0NjMwNGNhZjFkMmQ5MWY5NzJmZDE1ZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudElu
Zm9JbnRlcm5hbC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgorI2ltcG9ydCAiX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8uaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKK0BpbnRlcmZhY2UgX1dLRHJhZ2dh
YmxlRWxlbWVudEluZm8gKCkKKworI2lmIFRBUkdFVF9PU19JUEhPTkUKKysgKGluc3RhbmNldHlw
ZSlpbmZvV2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6
OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKKy0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBX
ZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKKyNl
bmRpZgorCitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dQb2ludCBwb2ludDsKK0Bwcm9wZXJ0eSAo
bm9uYXRvbWljLCBnZXR0ZXI9aXNMaW5rKSBCT09MIGxpbms7CitAcHJvcGVydHkgKG5vbmF0b21p
YywgZ2V0dGVyPWlzQXR0YWNobWVudCkgQk9PTCBhdHRhY2htZW50OworQHByb3BlcnR5IChub25h
dG9taWMsIGdldHRlcj1pc0ltYWdlKSBCT09MIGltYWdlOworQHByb3BlcnR5IChub25hdG9taWMs
IGdldHRlcj1pc1NlbGVjdGVkKSBCT09MIHNlbGVjdGVkOworCitAZW5kCisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLmgKaW5kZXggZWUyMDVkYjEwMzUyZDQyNThlYTc1ZmQ4YjViMGQxNzAyOTdhMjc1MC4u
MzllNjFlZTJhODNmOTIzOGM1ZjgwNzI1MTRiNjc1MmFlMTY4MGQwNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5o
CkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0ICJXS0ZpbGVVcGxvYWRQYW5lbC5oIgogI2ltcG9y
dCAiV0tGb3JtUGVyaXBoZXJhbC5oIgogI2ltcG9ydCAiV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1
cmVSZWNvZ25pemVyLmgiCisjaW1wb3J0ICJfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oIgogI2lt
cG9ydCA8VUlLaXQvVUlWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0Zsb2F0UXVhZC5oPgpAQCAtODcsNiArODgsNyBAQCB0eXBlZGVmIHZvaWQgKF5V
SVdLU2VsZWN0aW9uV2l0aERpcmVjdGlvbkNvbXBsZXRpb25IYW5kbGVyKShCT09MIHNlbGVjdGlv
bkVuZElzTQogdHlwZWRlZiB2b2lkICheVUlXS0tleVdlYkV2ZW50Q29tcGxldGlvbkhhbmRsZXIp
KDo6V2ViRXZlbnQgKnRoZUV2ZW50LCBCT09MIHdhc0hhbmRsZWQpOwogCiB0eXBlZGVmIEJsb2Nr
UHRyPHZvaWQoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbik+IEludGVy
YWN0aW9uSW5mb3JtYXRpb25DYWxsYmFjazsKK3R5cGVkZWYgc3RkOjpwYWlyPFdlYktpdDo6SW50
ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QsIEludGVyYWN0aW9uSW5mb3JtYXRpb25DYWxsYmFj
az4gSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3RBbmRDYWxsYmFjazsKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKQEAgLTE3NCw3ICsxNzYsOSBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRh
dGEgewogICAgIFdlYktpdDo6V0tTZWxlY3Rpb25EcmF3aW5nSW5mbyBfbGFzdFNlbGVjdGlvbkRy
YXdpbmdJbmZvOwogCiAgICAgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3Jt
YXRpb25SZXF1ZXN0PiBfb3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdDsKLSAg
ICBWZWN0b3I8c3RkOjpwYWlyPFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Qs
IEludGVyYWN0aW9uSW5mb3JtYXRpb25DYWxsYmFjaz4+IF9wZW5kaW5nUG9zaXRpb25JbmZvcm1h
dGlvbkhhbmRsZXJzOworCisgICAgdWludDY0X3QgX3Bvc2l0aW9uSW5mb3JtYXRpb25DYWxsYmFj
a0RlcHRoOworICAgIFZlY3RvcjxzdGQ6Om9wdGlvbmFsPEludGVyYWN0aW9uSW5mb3JtYXRpb25S
ZXF1ZXN0QW5kQ2FsbGJhY2s+PiBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVyczsK
ICAgICAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpJbnB1dFZpZXdVcGRhdGVEZWZlcnJl
cj4gX2lucHV0Vmlld1VwZGF0ZURlZmVycmVyOwogCkBAIC0yODcsNiArMjkxLDEwIEBAIHN0cnVj
dCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVS
ZWN0c0VuY2xvc2luZ1NlbGVjdGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3aXRoR3JhbnVs
YXJpdHk6KFVJVGV4dEdyYW51bGFyaXR5KWdyYW51bGFyaXR5OwogLSAodm9pZClfYWNjZXNzaWJp
bGl0eVJldHJpZXZlUmVjdHNBdFNlbGVjdGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3aXRo
VGV4dDooTlNTdHJpbmcgKil0ZXh0OwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkp
IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gY3VycmVudFBvc2l0aW9u
SW5mb3JtYXRpb247CistICh2b2lkKWRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOih2
b2lkICheKShXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKSlhY3Rpb24g
Zm9yUmVxdWVzdDooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdClyZXF1ZXN0
OworLSAodm9pZCllbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTooV2ViS2l0OjpJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdClyZXF1ZXN0OworCiAjaWYgRU5BQkxFKERBVEFf
SU5URVJBQ1RJT04pCiAtICh2b2lkKV9kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxl
ck9wZXJhdGlvbjsKIC0gKHZvaWQpX2RpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVz
dDooQk9PTClzdGFydGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA4MjNmMDgyZWQ2MjY5MTBmMGUx
YzcyMjY3NDU3MWUzMGZkZTAxODZmLi44ODUyYTliNzVhMTQzY2Q1NTUyMWUyMmU0NjVkYjRjNTdh
NDM1YWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVu
dFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMTMwNiw2ICsxMzA2LDExIEBAIHN0YXRpYyBp
bmxpbmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJl
Y29nbml6ZXIgKmIsIFVJCiAgICAgcmV0dXJuIFtzZWxmIF9hY3Rpb25Gb3JMb25nUHJlc3NGcm9t
UG9zaXRpb25JbmZvcm1hdGlvbjpfcG9zaXRpb25JbmZvcm1hdGlvbl07CiB9CiAKKy0gKEludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKWN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uCit7
CisgICAgcmV0dXJuIF9wb3NpdGlvbkluZm9ybWF0aW9uOworfQorCiAtICh2b2lkKWRvQWZ0ZXJQ
b3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOih2b2lkICheKShJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbikpYWN0aW9uIGZvclJlcXVlc3Q6KEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0KXJlcXVlc3QKIHsKICAgICBpZiAoW3NlbGYgX2N1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9u
SXNWYWxpZEZvclJlcXVlc3Q6cmVxdWVzdF0pIHsKQEAgLTEzMTQsNyArMTMxOSw3IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVy
ZVJlY29nbml6ZXIgKmIsIFVJCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBfcGVuZGlu
Z1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVycy5hcHBlbmQoeyByZXF1ZXN0LCBhY3Rpb24gfSk7
CisgICAgX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnMuYXBwZW5kKEludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0QW5kQ2FsbGJhY2socmVxdWVzdCwgYWN0aW9uKSk7CiAKICAg
ICBpZiAoIVtzZWxmIF9oYXNWYWxpZE91dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVl
c3Q6cmVxdWVzdF0pCiAgICAgICAgIFtzZWxmIHJlcXVlc3RBc3luY2hyb25vdXNQb3NpdGlvbklu
Zm9ybWF0aW9uVXBkYXRlOnJlcXVlc3RdOwpAQCAtMTM2MSwyMCArMTM2NiwzMCBAQCBzdGF0aWMg
aW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVS
ZWNvZ25pemVyICpiLCBVSQogewogICAgIEFTU0VSVChfaGFzVmFsaWRQb3NpdGlvbkluZm9ybWF0
aW9uKTsKIAotICAgIFZlY3RvcjxzaXplX3Q+IGluZGljZXNPZkhhbmRsZWRSZXF1ZXN0czsKKyAg
ICArK19wb3NpdGlvbkluZm9ybWF0aW9uQ2FsbGJhY2tEZXB0aDsKKyAgICBhdXRvIHVwZGF0ZWRQ
b3NpdGlvbkluZm9ybWF0aW9uID0gX3Bvc2l0aW9uSW5mb3JtYXRpb247CisKICAgICBmb3IgKHNp
emVfdCBpbmRleCA9IDA7IGluZGV4IDwgX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxl
cnMuc2l6ZSgpOyArK2luZGV4KSB7Ci0gICAgICAgIGF1dG8mIHJlcXVlc3RBbmRIYW5kbGVyID0g
X3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnNbaW5kZXhdOwotICAgICAgICBpZiAo
IVtzZWxmIF9jdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbklzVmFsaWRGb3JSZXF1ZXN0OnJlcXVl
c3RBbmRIYW5kbGVyLmZpcnN0XSkKKyAgICAgICAgYXV0byByZXF1ZXN0QW5kSGFuZGxlciA9IF9w
ZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzW2luZGV4XTsKKyAgICAgICAgaWYgKCFy
ZXF1ZXN0QW5kSGFuZGxlcikKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChy
ZXF1ZXN0QW5kSGFuZGxlci5zZWNvbmQpCi0gICAgICAgICAgICByZXF1ZXN0QW5kSGFuZGxlci5z
ZWNvbmQoX3Bvc2l0aW9uSW5mb3JtYXRpb24pOworICAgICAgICBpZiAoIVtzZWxmIF9jdXJyZW50
UG9zaXRpb25JbmZvcm1hdGlvbklzVmFsaWRGb3JSZXF1ZXN0OnJlcXVlc3RBbmRIYW5kbGVyLT5m
aXJzdF0pCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAocmVxdWVzdEFuZEhh
bmRsZXItPnNlY29uZCkKKyAgICAgICAgICAgIHJlcXVlc3RBbmRIYW5kbGVyLT5zZWNvbmQodXBk
YXRlZFBvc2l0aW9uSW5mb3JtYXRpb24pOwogCi0gICAgICAgIGluZGljZXNPZkhhbmRsZWRSZXF1
ZXN0cy5hcHBlbmQoaW5kZXgpOworICAgICAgICBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25I
YW5kbGVyc1tpbmRleF0gPSBzdGQ6Om51bGxvcHQ7CiAgICAgfQogCi0gICAgd2hpbGUgKGluZGlj
ZXNPZkhhbmRsZWRSZXF1ZXN0cy5zaXplKCkpCi0gICAgICAgIF9wZW5kaW5nUG9zaXRpb25JbmZv
cm1hdGlvbkhhbmRsZXJzLnJlbW92ZShpbmRpY2VzT2ZIYW5kbGVkUmVxdWVzdHMudGFrZUxhc3Qo
KSk7CisgICAgaWYgKC0tX3Bvc2l0aW9uSW5mb3JtYXRpb25DYWxsYmFja0RlcHRoKQorICAgICAg
ICByZXR1cm47CisKKyAgICBmb3IgKGludCBpbmRleCA9IF9wZW5kaW5nUG9zaXRpb25JbmZvcm1h
dGlvbkhhbmRsZXJzLnNpemUoKSAtIDE7IGluZGV4ID49IDA7IC0taW5kZXgpIHsKKyAgICAgICAg
aWYgKCFfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVyc1tpbmRleF0pCisgICAgICAg
ICAgICBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVycy5yZW1vdmUoaW5kZXgpOwor
ICAgIH0KIH0KIAogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMTA3ZTA0MTFjODlk
NDU1YmViODA5ZjUwNTFjODUyMWVjNDI1ZjcxLi44ZmUzMjgzZTEyM2I2MWM5MDI0Nzk0MWYwMTkz
MWE3NzE1ZDZmNTI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCkBAIC0yMDA5LDYgKzIwMDksOSBAQAogCQlGNDMzNzA5NzFFNEQ3MkVE
MDAwNTJCMEUgLyogX1dLVGVzdGluZ0RlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDMzNzA5NjFFNEQ2QTQ0MDAwNTJCMEUgLyogX1dLVGVz
dGluZ0RlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJRjQ0REZFQjIxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NERGRUIwMUU5
RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggKi87IH07CiAJCUY0NERGRUIzMUU5
RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0REZFQjExRTlFNzUyRjAwMzhEMTk2IC8qIFdl
Ykljb25VdGlsaXRpZXMubW0gKi87IH07CisJCUY0RThDQjkxMUVBNkFCNUIwMEUzMTE5OCAvKiBf
V0tEcmFnZ2FibGVFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjRFOENCOEUxRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKKwkJRjRFOENCOTIxRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZv
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFOENC
OEYxRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tICovOyB9Owor
CQlGNEU4Q0I5MzFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRl
cm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRF
OENCOTAxRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwu
aCAqLzsgfTsKIAkJRjYxMTNFMjUxMjZDRTE4MjAwNTdEMEE3IC8qIEFQSVVzZXJDb250ZW50VVJM
UGF0dGVybi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjYxMTNFMjQxMjZDRTE4MjAwNTdEMEE3IC8qIEFQSVVzZXJDb250ZW50VVJMUGF0dGVybi5oICov
OyB9OwogCQlGNjExM0UyODEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRl
cm4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYx
MTNFMjYxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCAqLzsg
fTsKIAkJRjYxMTNFMjkxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJu
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0Uy
NzEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDM0Myw2ICs0MzQ2LDkg
QEAKIAkJRjQzMzcwOTYxRTRENkE0NDAwMDUyQjBFIC8qIF9XS1Rlc3RpbmdEZWxlZ2F0ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tUZXN0aW5nRGVsZWdhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0REZFQjAxRTlFNzUyRjAwMzhEMTk2IC8qIFdl
Ykljb25VdGlsaXRpZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSWNv
blV0aWxpdGllcy5oOyBwYXRoID0gaW9zL1dlYkljb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjQ0REZFQjExRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGls
aXRpZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJJY29u
VXRpbGl0aWVzLm1tOyBwYXRoID0gaW9zL1dlYkljb25VdGlsaXRpZXMubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUY0RThDQjhFMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2Fi
bGVFbGVtZW50SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tEcmFn
Z2FibGVFbGVtZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEU4Q0I4
RjFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFOENCOTAxRUE2QUI1QjAwRTMxMTk4
IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNjExM0UyNDEyNkNFMTgyMDA1N0QwQTcgLyogQVBJVXNl
ckNvbnRlbnRVUkxQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQ
SVVzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NjExM0UyNjEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyQ29udGVudFVSTFBhdHRl
cm4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjExM0UyNzEyNkNFMTlCMDA1
N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTQ0ODEsNiArNDQ4Nyw3IEBACiAJCQkJMUE0Rjk3NjkxMDBFN0I2NjAwNjM3
QTE4IC8qIENvbmZpZ3VyYXRpb25zICovLAogCQkJCTA4NjdENjlBRkU4NDAyOEZDMDJBQUMwNyAv
KiBFeHRlcm5hbCBGcmFtZXdvcmtzIGFuZCBMaWJyYXJpZXMgKi8sCiAJCQkJMDM0NzY4REZGRjM4
QTUwNDExREI5QzhCIC8qIFByb2R1Y3RzICovLAorCQkJCUY0RDdCQ0NBMUVBNDk0RkEwMEM0MjFE
MyAvKiBSZWNvdmVyZWQgUmVmZXJlbmNlcyAqLywKIAkJCSk7CiAJCQluYW1lID0gV2ViS2l0MjsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC01NTI0LDYgKzU1MzEsOSBAQAogCQkJCUEx
QTRGRTU4MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZC5tbSAqLywKIAkJCQlBMUE0RkU2
MDE4REQ1NEE0MDBCNUVBOEEgLyogX1dLRG93bmxvYWREZWxlZ2F0ZS5oICovLAogCQkJCUExQTRG
RTU5MThEQ0U5RkEwMEI1RUE4QSAvKiBfV0tEb3dubG9hZEludGVybmFsLmggKi8sCisJCQkJRjRF
OENCOEUxRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmggKi8sCisJ
CQkJRjRFOENCOEYxRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1t
ICovLAorCQkJCUY0RThDQjkwMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50
SW5mb0ludGVybmFsLmggKi8sCiAJCQkJMzc5QTg3MzgxOEJCRkUwRjAwNTg4QUYyIC8qIF9XS0Vs
ZW1lbnRBY3Rpb24uaCAqLywKIAkJCQkzNzlBODczNzE4QkJGRTBGMDA1ODhBRjIgLyogX1dLRWxl
bWVudEFjdGlvbi5tbSAqLywKIAkJCQkzNzlBODczQjE4QkJGRjA3MDA1ODhBRjIgLyogX1dLRWxl
bWVudEFjdGlvbkludGVybmFsLmggKi8sCkBAIC04MDQyLDYgKzgwNTIsMTQgQEAKIAkJCXBhdGgg
PSBOZXR3b3JrUHJvY2Vzcy9jYWNoZTsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07
CisJCUY0RDdCQ0NBMUVBNDk0RkEwMEM0MjFEMyAvKiBSZWNvdmVyZWQgUmVmZXJlbmNlcyAqLyA9
IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJQzU4Q0RGMjgxODg3
NTQ4QjAwODcxNTM2IC8qIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmggKi8sCisJ
CQkpOworCQkJbmFtZSA9ICJSZWNvdmVyZWQgUmVmZXJlbmNlcyI7CisJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOworCQl9OwogCQlGNjM4OTU1QTEzM0JGNTdEMDA4OTQxRDUgLyogbWFjICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTgxOTksNiArODIxNyw3
IEBACiAJCQkJN0M4OUQyOTQxQTY3MTIyRjAwM0E1RkRFIC8qIEFQSVVzZXJTY3JpcHQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJEODc4NjI0MUJEQjU4RkYwMEQwMkFCQiAvKiBBUElVc2VyU3R5bGVT
aGVldC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFGRUQxNkIyMTAxNzAwNkNDMUYyIC8qIEFQ
SVdlYkFyY2hpdmUuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0RThDQjkzMUVBNkFCNUIwMEUzMTE5
OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDNUUxQUZFRjE2QjIxMDI5MDA2Q0MxRjIgLyogQVBJV2ViQXJjaGl2ZVJlc291cmNlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUUyODY4NDFDN0Y5Mzg2MDA2OUFDNEYgLyogQVBJV2Vic2l0ZURh
dGFSZWNvcmQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMzYzNUFBMUEzMTQ0QTMwMEVENjE5NyAv
KiBBUElXZWJzaXRlRGF0YVN0b3JlLmggaW4gSGVhZGVycyAqLywKQEAgLTg4NzEsNiArODg5MCw3
IEBACiAJCQkJMDdBNUVCQkMxQzdCQTQzRTAwQjlDQTY5IC8qIFdLRnJhbWVIYW5kbGVSZWYuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNEQ2NjRDMThBMzAzMEUwMEQ4MkUyMSAvKiBXS0ZyYW1lSW5m
by5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRGOUVFRTgxQTc4MjQ1NTAwQjZDRkJFIC8qIFdLRnJh
bWVJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAorCQkJCUY0RThDQjkxMUVBNkFCNUIwMEUz
MTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE2
RkEyMUUxQkQwNDM1QjAwQUFBNjUwIC8qIFdLRnJhbWVJbmZvUHJpdmF0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMkQzQTY1RTcxQTdDM0FBNzAwQ0FDNjM3IC8qIFdLRnJhbWVJbmZvUmVmLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQ0I5RjZBNTExMjNERDBEMDBBMTM3RTAgLyogV0tGcmFtZVBvbGlj
eUxpc3RlbmVyLmggaW4gSGVhZGVycyAqLywKQEAgLTEwNTExLDYgKzEwNTMxLDcgQEAKIAkJCQk5
M0EyNTNFRjFDOTIyRThFMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbS5tbSBpbiBTb3Vy
Y2VzICovLAogCQkJCTkzQTI1M0Y1MUM5MjQxMzIwMEY5RjY4RCAvKiBXS1ByZXZpZXdBY3Rpb25J
dGVtSWRlbnRpZmllcnMubW0gaW4gU291cmNlcyAqLywKIAkJCQk5Mzk1RTY4QzFCRjJDMzUyMDBG
NDlCQ0UgLyogV0tQcmV2aWV3RWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNEU4
Q0I5MjFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW0gaW4gU291
cmNlcyAqLywKIAkJCQkwRkNCNEU2NzE4QkJFM0Q5MDAwRkNGQzkgLyogV0tQcmludGluZ1ZpZXcu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlCQ0JBQUNFQzE0NTIyNUUzMDA1M0Y4MkYgLyogV0tQcm9j
ZXNzR3JvdXAubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTE1ODQxOTE4OTA0NEY1MDAxNzYxNkMg
LyogV0tQcm9jZXNzUG9vbC5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGM2ZDc5ODEzYWJkZjk0MTk5MWEwMmFhN2Q5
M2ZkZTNjYTFiNWNkZmYuLjc1MDkzODlmYWUyZjA0NjAxMTBjZGYxNTM5MTAzYjc4ZDVjYmIzNzYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOSBAQAorMjAxNy0wNC0xOCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxl
LmNvbT4KKworICAgICAgICBbV0syXSAtW1dLQ29udGVudFZpZXcgZG9BZnRlclBvc2l0aW9uSW5m
b3JtYXRpb25VcGRhdGU6YXRQb3NpdGlvbjpdIHNob3VsZCBiZSByb2J1c3QgYWdhaW5zdCBzeW5j
aHJvbm91cyByZWVudHJhbmN5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzA5MjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxNjM0OTkwPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgdGhyZWUg
bmV3IHVuaXQgdGVzdHMgZm9yIHJldHJpZXZpbmcgaW50ZXJhY3Rpb24gaW5mb3JtYXRpb24gYXQg
YSBnaXZlbiBwb3NpdGlvbiBpbiB0aGUgVUkgcHJvY2Vzcy4gU2VlCisgICAgICAgIFdlYktpdDIg
Q2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rl
c3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9Qb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW06IEFkZGVkLgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6ZXhwZWN0Q0dQb2ludHNUb0JlRXF1YWwpOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTctMDQtMTQgIE1hcmsgTGFtICA8bWFyay5sYW1A
YXBwbGUuY29tPgogCiAgICAgICAgIFVwZGF0ZSBhcmNoaXRlY3R1cmVzIGluIHhjY29uZmlnIGZp
bGVzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBjZWQ4ZWE4NTllYTQ5NWQzZmI1MzViMmRk
OWQ1MWIyNTc2ODY0ZTg3Li4yNWZkZDE3ZmQ4MDgzMmJhNWU5YTViMGJkZDY5M2FmNDRkNjA4Mzcw
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEku
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTk0LDYgKzU5NCw3IEBACiAJCUY0QzJBQjIy
MURENkQ5NUUwMEUwNkQ1QiAvKiBlbm9ybW91cy12aWRlby13aXRoLXNvdW5kLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRDMkFCMjEx
REQ2RDk0MTAwRTA2RDVCIC8qIGVub3Jtb3VzLXZpZGVvLXdpdGgtc291bmQuaHRtbCAqLzsgfTsK
IAkJRjRENEYzQjYxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDRGM0I0
MUU0RTJCQ0IwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0gKi87IH07CiAJ
CUY0RDRGM0I5MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDRGM0I3MUU0RTM2
RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSAqLzsgfTsKKwkJRjREN0JDRDgx
RUE1Nzg5ODAwQzQyMUQzIC8qIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDdCQ0Q2MUVBNTc0REQwMEM0
MjFEMyAvKiBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0gKi87IH07CiAJCUY0REVGNkVEMUU5
QjREQjYwMDQ4RUY2MSAvKiBpbWFnZS1pbi1saW5rLWFuZC1pbnB1dC5odG1sIGluIENvcHkgUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0REVGNkVDMUU5QjRE
OTUwMDQ4RUY2MSAvKiBpbWFnZS1pbi1saW5rLWFuZC1pbnB1dC5odG1sICovOyB9OwogCQlGNEYx
Mzc5MjFEOUI2ODNFMDAyQkVDNTcgLyogbGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
RjEzNzkxMUQ5QjY4MzIwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0
bWwgKi87IH07CiAJCUY0RjQwNUJDMUQ0QzBEMUMwMDdBOTcwNyAvKiBmdWxsLXNpemUtYXV0b3Bs
YXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RjQwNUJBMUQ0QzBDRjgwMDdBOTcwNyAvKiBmdWxs
LXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovOyB9OwpAQCAtMTQ3MSw2
ICsxNDcyLDcgQEAKIAkJRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlv
blNpbXVsYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERh
dGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjRENEYzQjUxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Iu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3
IC8qIERhdGFJbnRlcmFjdGlvblRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRGF0YUludGVyYWN0aW9uVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUY0RDdCQ0Q2MUVBNTc0REQwMEM0MjFEMyAvKiBQb3NpdGlvbkluZm9ybWF0aW9u
VGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0REVGNkVDMUU5QjREOTUwMDQ4RUY2
MSAvKiBpbWFnZS1pbi1saW5rLWFuZC1pbnB1dC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBw
YXRoID0gImltYWdlLWluLWxpbmstYW5kLWlucHV0Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlGNEYxMzc5MTFEOUI2ODMyMDAyQkVDNTcgLyogbGFyZ2UtdmlkZW8tdGVzdC1u
b3ctcGxheWluZy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVv
LXRlc3Qtbm93LXBsYXlpbmcuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0
RjQwNUJBMUQ0QzBDRjgwMDdBOTcwNyAvKiBmdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0
aC1hdWRpby5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImZ1bGwtc2l6ZS1hdXRv
cGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTgwMCw2ICsxODAyLDcgQEAKIAkJCQlBMUM0RkI2RjFCQUNDRUZBMDAzNzQyRDAgLyog
UmVzb3VyY2VzICovLAogCQkJCUY0RDRGM0I3MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJh
Y3Rpb25UZXN0cy5tbSAqLywKIAkJCQk3NTYwOTE3NzE5MjU5QzU5MDA5RUYwNkUgLyogTWVtb3J5
Q2FjaGVBZGRJbWFnZVRvQ2FjaGVJT1MubW0gKi8sCisJCQkJRjREN0JDRDYxRUE1NzRERDAwQzQy
MUQzIC8qIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0g
aW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI4OTYsNiArMjg5OSw3IEBACiAJ
CQkJN0M4M0UwNTMxRDBBNjQzQTAwRkVCQ0YzIC8qIFBlbmRpbmdBUElSZXF1ZXN0VVJMLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUFGMUE0MTFBMzgwMDQ0N0M0QyAvKiBQbGF0Zm9ybVV0
aWxpdGllcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjEzOUU3ODFBNDIzQTZCMDBGNTkwRjUg
LyogUGxhdGZvcm1VdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY0RDdCQ0Q4
MUVBNTc4OTgwMEM0MjFEMyAvKiBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0gaW4gU291cmNl
cyAqLywKIAkJCQk3Q0NFN0VBNjFBNDExQTBGMDA0NDdDNEMgLyogUGxhdGZvcm1VdGlsaXRpZXNN
YWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VBNzFBNDExQTEzMDA0NDdDNEMgLyogUGxh
dGZvcm1XZWJWaWV3TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMjYxQTQxMUFGNjAw
NDQ3QzRDIC8qIFByZWZlcmVuY2VzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9Qb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9Qb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZjY5YTVlZjdmMjY5ZmE3ZjFlYTE3NDc3OWZjZTYxNGZlMTRlNTI5NAotLS0g
L2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Bvc2l0aW9uSW5m
b3JtYXRpb25UZXN0cy5tbQpAQCAtMCwwICsxLDk2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorCisjaWYgUExBVEZPUk0oSU9TKSAmJiBXS19BUElfRU5BQkxFRAorCisjaW1w
b3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2lt
cG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tEcmFn
Z2FibGVFbGVtZW50SW5mby5oPgorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK3N0YXRp
YyB2b2lkIGV4cGVjdENHUG9pbnRzVG9CZUVxdWFsKGNvbnN0IENHUG9pbnQmIGZpcnN0LCBjb25z
dCBDR1BvaW50JiBzZWNvbmQpCit7CisgICAgRVhQRUNUX0VRKGZpcnN0LngsIHNlY29uZC54KTsK
KyAgICBFWFBFQ1RfRVEoZmlyc3QueSwgc2Vjb25kLnkpOworfQorCitURVNUKFBvc2l0aW9uSW5m
b3JtYXRpb25UZXN0cywgRmluZERyYWdnYWJsZUxpbmtBdFBvc2l0aW9uKQoreworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRUZXN0UGFnZU5hbWVkOkAibGluay1hbmQtaW5wdXQiXTsKKworICAgIF9XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvICppbmZvcm1hdGlvbiA9IFt3ZWJWaWV3IGRyYWdnYWJsZUVsZW1lbnRBdFBvc2l0
aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKKworICAgIEVYUEVDVF9UUlVFKFtpbmZvcm1hdGlv
biBpc0xpbmtdKTsKKyAgICBleHBlY3RDR1BvaW50c1RvQmVFcXVhbChbaW5mb3JtYXRpb24gcG9p
bnRdLCB7IDEwMCwgNTAgfSk7Cit9CisKK1RFU1QoUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLCBS
ZXF1ZXN0RHJhZ2dhYmxlTGlua0F0UG9zaXRpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAw
LCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFt
ZWQ6QCJsaW5rLWFuZC1pbnB1dCJdOworCisgICAgX19ibG9jayBib29sIGlzRG9uZSA9IGZhbHNl
OworICAgIF9fYmxvY2sgUmV0YWluUHRyPF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvPiBwb3NpdGlv
bkluZm9ybWF0aW9uOworICAgIFt3ZWJWaWV3IHJlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3Np
dGlvbjpDR1BvaW50TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVF
bGVtZW50SW5mbyAqaW5mb3JtYXRpb24pIHsKKyAgICAgICAgcG9zaXRpb25JbmZvcm1hdGlvbiA9
IGluZm9ybWF0aW9uOworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgVGVz
dFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0RvbmUpOworCisgICAgRVhQRUNUX1RSVUUoW3Bvc2l0
aW9uSW5mb3JtYXRpb24gaXNMaW5rXSk7CisgICAgZXhwZWN0Q0dQb2ludHNUb0JlRXF1YWwoW3Bv
c2l0aW9uSW5mb3JtYXRpb24gcG9pbnRdLCB7IDEwMCwgNTAgfSk7Cit9CisKK1RFU1QoUG9zaXRp
b25JbmZvcm1hdGlvblRlc3RzLCBGaW5kRHJhZ2dhYmxlTGlua0F0UG9zaXRpb25XaXRoaW5SZXF1
ZXN0QmxvY2spCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcg
YWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBb
d2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJsaW5rLWFuZC1pbnB1dCJd
OworCisgICAgX19ibG9jayBib29sIGlzRG9uZSA9IGZhbHNlOworICAgIF9fYmxvY2sgUmV0YWlu
UHRyPF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvPiBwb3NpdGlvbkluZm9ybWF0aW9uOworICAgIFt3
ZWJWaWV3IHJlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAs
IDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqaW5mb3JtYXRp
b24pIHsKKyAgICAgICAgX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKnN5bmNocm9ub3VzSW5mb3Jt
YXRpb24gPSBbd2ViVmlldyBkcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgx
MDAsIDMwMCldOworICAgICAgICBFWFBFQ1RfRkFMU0Uoc3luY2hyb25vdXNJbmZvcm1hdGlvbi5s
aW5rKTsKKyAgICAgICAgZXhwZWN0Q0dQb2ludHNUb0JlRXF1YWwoc3luY2hyb25vdXNJbmZvcm1h
dGlvbi5wb2ludCwgeyAxMDAsIDMwMCB9KTsKKworICAgICAgICBwb3NpdGlvbkluZm9ybWF0aW9u
ID0gaW5mb3JtYXRpb247CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisKKyAgICBFWFBFQ1RfVFJVRShbcG9z
aXRpb25JbmZvcm1hdGlvbiBpc0xpbmtdKTsKKyAgICBleHBlY3RDR1BvaW50c1RvQmVFcXVhbChb
cG9zaXRpb25JbmZvcm1hdGlvbiBwb2ludF0sIHsgMTAwLCA1MCB9KTsKK30KKworfSAvLyBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307437</attachid>
            <date>2017-04-18 17:11:59 -0700</date>
            <delta_ts>2017-04-18 18:27:32 -0700</delta_ts>
            <desc>Attempt to fix Mac builds</desc>
            <filename>bug-170922-20170418171158.patch</filename>
            <type>text/plain</type>
            <size>35758</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1Mzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjI0ZDgzYTc4NzE5MWUy
OWZiYzcwMjY0MmQwOTFlMDViN2FiNjU3Mi4uNzMwYzNhN2U3MmI3NjZlZGNlMTdlODFhMTYwYjRk
YjFjNmEwMDQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTA0LTE4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIC1bV0tD
b250ZW50VmlldyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTphdFBvc2l0aW9uOl0g
c2hvdWxkIGJlIHJvYnVzdCBhZ2FpbnN0IHN5bmNocm9ub3VzIHJlZW50cmFuY3kKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDkyMgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzE2MzQ5OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JzIHBhcnQgb2YgdGhlIGFzeW5jaHJvbm91cyBwb3Np
dGlvbiBpbmZvcm1hdGlvbiBtZWNoYW5pc20gaW50cm9kdWNlZCBpbgorICAgICAgICA8aHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIxNTE3MT4sIGFuZCBpbnRyb2R1Y2VzIGluZnJh
c3RydWN0dXJlIGZvciB1bml0IHRlc3RpbmcgVUktc2lkZSBwb3NpdGlvbgorICAgICAgICBpbmZv
cm1hdGlvbiByZXF1ZXN0cy4KKworICAgICAgICBfaW52b2tlQW5kUmVtb3ZlUGVuZGluZ0hhbmRs
ZXJzVmFsaWRGb3JDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbiBpcyBhIGhlbHBlciBtZXRob2Qg
b24gV0tDb250ZW50VmlldworICAgICAgICByZXNwb25zaWJsZSBmb3IgaW52b2tpbmcgcXVldWVk
IHBvc2l0aW9uIGluZm9ybWF0aW9uIGhhbmRsZXJzIGFmdGVyIHJlY2VpdmluZyBhIHBvc2l0aW9u
IGluZm9ybWF0aW9uIHJlc3BvbnNlCisgICAgICAgIGZyb20gdGhlIHdlYiBwcm9jZXNzLiBQcmV2
aW91c2x5LCB0aGlzIG1ldGhvZCB3b3VsZCBpdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2YgcGVuZGlu
ZyBjYWxsYmFja3MgYW5kIGludm9rZSBhbGwKKyAgICAgICAgY2FsbGJhY2tzIHdob3NlIHJlcXVl
c3RzIGFyZSBzYXRpc2ZpZWQgYnkgdGhlIGluY29taW5nIHBvc2l0aW9uIGluZm9ybWF0aW9uIHVw
ZGF0ZSwgc2F2aW5nIHRoZSBpbmRpY2VzIG9mIHRoZXNlCisgICAgICAgIGhhbmRsZWQgY2FsbGJh
Y2tzIGluIHRoZSBwcm9jZXNzLiBBdCB0aGUgZW5kLCBpdCB3b3VsZCB0aGVuIHJlbW92ZSBjYWxs
YmFja3MgYXQgdGhlc2UgaW5kaWNlcyBmcm9tIHRoZSBhcnJheSBvZgorICAgICAgICBwZW5kaW5n
IGNhbGxiYWNrcy4gVGhpcyBpcyBwcm9ibGVtYXRpYyB3aGVuIGEgc3luY2hyb25vdXMgcG9zaXRp
b24gdXBkYXRlICh2aWEKKyAgICAgICAgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0Rh
dGU6KSBpcyB0cmlnZ2VyZWQgZnJvbSB3aXRoaW4gb25lIG9mIHRoZXNlIGNhbGxiYWNrcywgc2lu
Y2UKKyAgICAgICAgX2ludm9rZUFuZFJlbW92ZVBlbmRpbmdIYW5kbGVyc1ZhbGlkRm9yQ3VycmVu
dFBvc2l0aW9uSW5mb3JtYXRpb24gd2lsbCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gaXRzZWxmLCBh
bmQgdGhlbiB3ZQorICAgICAgICB3aWxsIGF0dGVtcHQgdG8gcmVtb3ZlIGEgY2FsbGJhY2sgYXQg
dGhlIHNhbWUgaW5kZXggdHdpY2UuCisKKyAgICAgICAgVG8gZml4IHRoaXMsIHdlIGNoYW5nZSB0
aGUgYXJyYXkgb2YgcGVuZGluZyBwb3NpdGlvbiBpbmZvcm1hdGlvbiBoYW5kbGVycyB0byBiZSBh
biBhcnJheSBvZiBvcHRpb25hbHMgaW5zdGVhZC4KKyAgICAgICAgV2hlbiBpbnZva2luZyBhbmQg
cmVtb3ZpbmcgcGVuZGluZyBoYW5kbGVycyBhZnRlciBhIHBvc2l0aW9uIGluZm9ybWF0aW9uIHJl
c3BvbnNlIGFycml2ZXMsIHdlIG5vdyBtYXJrIGNhbGxiYWNrcworICAgICAgICBhcyBoYW5kbGVk
IGJ5IHNldHRpbmcgdGhlbSB0byBzdGQ6Om51bGxvcHQuIFRoZW4sIHdoZW4gdGhlIHRvcC1sZXZl
bCBpbnZvY2F0aW9uIHRvCisgICAgICAgIF9pbnZva2VBbmRSZW1vdmVQZW5kaW5nSGFuZGxlcnNW
YWxpZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uIGlzIGZpbmlzaGVkLCB3ZSByZW1vdmUg
YWxsIG1hcmtlZCBoYW5kbGVycworICAgICAgICBmcm9tIHRoZSBwZW5kaW5nIHZlY3Rvci4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IDMgbmV3IHVuaXQgdGVzdHM6CisgICAgICAgIC0gUG9zaXRpb25J
bmZvcm1hdGlvblRlc3RzLkZpbmREcmFnZ2FibGVMaW5rQXRQb3NpdGlvbgorICAgICAgICAtIFBv
c2l0aW9uSW5mb3JtYXRpb25UZXN0cy5SZXF1ZXN0RHJhZ2dhYmxlTGlua0F0UG9zaXRpb24KKyAg
ICAgICAgLSBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMuRmluZERyYWdnYWJsZUxpbmtBdFBvc2l0
aW9uV2l0aGluUmVxdWVzdEJsb2NrCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRyYWdnYWJsZUVsZW1lbnRBdFBvc2l0
aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBv
c2l0aW9uOmNvbXBsZXRpb25CbG9jazpdKToKKworICAgICAgICBVc2VzIFdLQ29udGVudFZpZXcn
cyBwb3NpdGlvbiBpbmZvcm1hdGlvbiByZXF1ZXN0IGhlbHBlcnMgdG8gc2VhcmNoIGZvciBkcmFn
Z2FibGUgZWxlbWVudHMgb24gdGhlIHBhZ2UuIFRoZXJlCisgICAgICAgIGFyZSBib3RoIHN5bmNo
cm9ub3VzIGFuZCBhc3luY2hyb25vdXMgdmVyc2lvbnMgb2YgdGhpcywgYm90aCBvZiB3aGljaCBy
ZXRyaWV2ZSBhIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tOiBBZGRlZC4KKworICAgICAg
ICBFeHBvc2VzIHdoYXQgZWxlbWVudHMgYXJlIGRyYWdnYWJsZSBhdCBhIGdpdmVuIHBvc2l0aW9u
IGFzIFNQSSAob25seSBmb3IgdXNlIGluIHRlc3RpbmcgY29kZSwgYXQgdGhlIG1vbWVudCkuCisK
KyAgICAgICAgKC1bX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gaW5pdFdpdGhJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjpdKToKKyAgICAgICAgKC1bX1dLRHJhZ2dhYmxlRWxlbWVudElu
Zm8gY29weVdpdGhab25lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGN1
cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZG9B
ZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6Zm9yUmVxdWVzdDpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfaW52b2tlQW5kUmVtb3ZlUGVuZGluZ0hhbmRsZXJzVmFsaWRGb3JDdXJy
ZW50UG9zaXRpb25JbmZvcm1hdGlvbl0pOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKwogMjAxNy0wNC0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVo
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV0syXSBTdXBwb3J0IGRhdGEgaW50ZXJhY3Rpb24gb2Yg
ZmlsZXMgaW50byBmaWxlIGlucHV0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBlNWQ5NmU2MmM0M2YyNTY1OGUyM2I2NGQ0NmM2M2M2
ODA2ZDAwMzhiLi4yNmQzMTA0NjMwNmExOWRhZjcwZTUyNjNhYjNkZTJmYmEyZjA4ZjI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAt
MzYsNiArMzYsOCBAQAogI2ltcG9ydCAiRmluZENsaWVudC5oIgogI2ltcG9ydCAiRnVsbHNjcmVl
bkNsaWVudC5oIgogI2ltcG9ydCAiSWNvbkxvYWRpbmdEZWxlZ2F0ZS5oIgorI2ltcG9ydCAiSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCIKKyNpbXBvcnQgIkludGVyYWN0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0LmgiCiAjaW1wb3J0ICJMZWdhY3lTZXNzaW9uU3RhdGVDb2RpbmcuaCIK
ICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk5hdmlnYXRpb25TdGF0ZS5oIgpAQCAtODMs
NiArODUsNyBAQAogI2ltcG9ydCAiV2ViVVJMU2NoZW1lSGFuZGxlckNvY29hLmgiCiAjaW1wb3J0
ICJXZWJWaWV3SW1wbC5oIgogI2ltcG9ydCAiX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5o
IgorI2ltcG9ydCAiX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAi
X1dLRmluZERlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tGcmFtZUhhbmRsZUludGVybmFsLmgiCiAj
aW1wb3J0ICJfV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCIKQEAgLTUwNjYsNiArNTA2OSwxOCBAQCBz
dGF0aWMgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0b1VzZXJJbnRlcmZh
Y2VMYXlvdXREaXJlY3Rpb24oVUlTZQogfQogCiAjaWYgUExBVEZPUk0oSU9TKQorLSAoX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm8gKilkcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClw
b3NpdGlvbgoreworICAgIFtfY29udGVudFZpZXcgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklz
VXBUb0RhdGU6V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdChXZWJDb3JlOjpy
b3VuZGVkSW50UG9pbnQocG9zaXRpb24pKV07CisgICAgcmV0dXJuIFtfV0tEcmFnZ2FibGVFbGVt
ZW50SW5mbyBpbmZvV2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOltfY29udGVu
dFZpZXcgY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25dXTsKK30KKworLSAodm9pZClyZXF1ZXN0
RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24gY29tcGxldGlvbkJs
b2NrOih2b2lkICheKShfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqKSlibG9jaworeworICAgIFtf
Y29udGVudFZpZXcgZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6W2NhcHR1cmVkQmxv
Y2sgPSBtYWtlQmxvY2tQdHIoYmxvY2spXSAoV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbiBpbmZvcm1hdGlvbikgeworICAgICAgICBjYXB0dXJlZEJsb2NrKFtfV0tEcmFn
Z2FibGVFbGVtZW50SW5mbyBpbmZvV2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
OmluZm9ybWF0aW9uXSk7CisgICAgfSBmb3JSZXF1ZXN0OldlYktpdDo6SW50ZXJhY3Rpb25JbmZv
cm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6cm91bmRlZEludFBvaW50KHBvc2l0aW9uKSldOworfQog
CiAtIChDR1JlY3QpX2NvbnRlbnRWaXNpYmxlUmVjdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAppbmRleCBhMDI4NDNm
NGIyNGM3MzJkMWMyNDY5YTFlNDQ4OWU3MmI0MTk2OTJhLi40YzcxMTQwYjNiYWY1NTQ2MGYwYTI0
YzhjNDgwZTU1YjA0OGJkNmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApAQCAtNjEsNiArNjEsNyBAQCB0eXBlZGVm
IE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAjZW5kaWYKIAog
QGNsYXNzIFdLQnJvd3NpbmdDb250ZXh0SGFuZGxlOworQGNsYXNzIF9XS0RyYWdnYWJsZUVsZW1l
bnRJbmZvOwogQGNsYXNzIF9XS0ZyYW1lSGFuZGxlOwogQGNsYXNzIF9XS0hpdFRlc3RSZXN1bHQ7
CiBAY2xhc3MgX1dLSWNvbkxvYWRpbmdEZWxlZ2F0ZTsKQEAgLTMyNyw2ICszMjgsOSBAQCB0eXBl
ZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKSB7CiAtIChOU0Fy
cmF5ICopX3NpbXVsYXRlZEl0ZW1zRm9yU2Vzc2lvbjooaWQpc2Vzc2lvbiBXS19BUElfQVZBSUxB
QkxFKGlvcyhXS19JT1NfVEJBKSk7CiAtICh2b2lkKV9zaW11bGF0ZVByZXBhcmVGb3JEYXRhSW50
ZXJhY3Rpb25TZXNzaW9uOihpZClzZXNzaW9uIGNvbXBsZXRpb246KGRpc3BhdGNoX2Jsb2NrX3Qp
Y29tcGxldGlvbiBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CiAKKy0gKF9XS0Ry
YWdnYWJsZUVsZW1lbnRJbmZvICopZHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQp
cG9zaXRpb247CistICh2b2lkKXJlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQ
b2ludClwb3NpdGlvbiBjb21wbGV0aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0RyYWdnYWJsZUVsZW1l
bnRJbmZvICopKWJsb2NrOworCiAjZW5kaWYgLy8gVEFSR0VUX09TX0lQSE9ORQogCiAjaWYgIVRB
UkdFVF9PU19JUEhPTkUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMDBkNWEz
ZGQ5MDNkNmJmMzAwNDEwZWRiOWIzMGVkMmRjNzc5NDVkCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mby5o
CkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0
aW9uLmg+CisKKyNpZiBXS19BUElfRU5BQkxFRAorCitOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgor
CitXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4KDEwLjEzKSwgaW9zKDExLjApKQorQGludGVyZmFj
ZSBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlpbmc+CisKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQ0dQb2ludCBwb2ludDsKKworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNMaW5rKSBCT09MIGxpbms7CitAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0F0dGFjaG1lbnQpIEJPT0wgYXR0YWNobWVu
dDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzSW1hZ2UpIEJPT0wg
aW1hZ2U7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc1NlbGVjdGVk
KSBCT09MIHNlbGVjdGVkOworCitAZW5kCisKK05TX0FTU1VNRV9OT05OVUxMX0VORAorCisjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm8ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUwZmY5MjEwN2JlNjFjMWJh
OWNiYmJhMDk1MDQ5YjJkNzYyYmY0ODEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tCkBAIC0wLDAg
KzEsNzMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiX1dL
RHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oIgorCisjaWYgV0tfQVBJX0VOQUJMRUQKKwor
QGltcGxlbWVudGF0aW9uIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvCisKKyNpZiBQTEFURk9STShJ
T1MpCisKKysgKGluc3RhbmNldHlwZSlpbmZvV2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBv
c2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilp
bmZvcm1hdGlvbgoreworICAgIHJldHVybiBbW1tzZWxmIGFsbG9jXSBpbml0V2l0aEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOmluZm9ybWF0aW9uXSBhdXRvcmVsZWFzZV07Cit9CisK
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
Oihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1h
dGlvbgoreworICAgIGlmICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4g
bmlsOworCisgICAgX3BvaW50ID0gaW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludDsKKyAgICBfbGlu
ayA9IGluZm9ybWF0aW9uLmlzTGluazsKKyAgICBfYXR0YWNobWVudCA9IGluZm9ybWF0aW9uLmlz
QXR0YWNobWVudDsKKyAgICBfaW1hZ2UgPSBpbmZvcm1hdGlvbi5pc0ltYWdlOworI2lmIEVOQUJM
RShEQVRBX0lOVEVSQUNUSU9OKQorICAgIF9zZWxlY3RlZCA9IGluZm9ybWF0aW9uLmhhc1NlbGVj
dGlvbkF0UG9zaXRpb247CisjZW5kaWYKKworICAgIHJldHVybiBzZWxmOworfQorCisjZW5kaWYK
KworLSAoaW5zdGFuY2V0eXBlKWNvcHlXaXRoWm9uZTooTlNab25lICopem9uZQoreworICAgIF9X
S0RyYWdnYWJsZUVsZW1lbnRJbmZvICpjb3B5ID0gW1tfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyBh
bGxvY10gaW5pdF07CisKKyAgICBjb3B5LnBvaW50ID0gc2VsZi5wb2ludDsKKyAgICBjb3B5Lmxp
bmsgPSBzZWxmLmxpbms7CisgICAgY29weS5hdHRhY2htZW50ID0gc2VsZi5hdHRhY2htZW50Owor
ICAgIGNvcHkuaW1hZ2UgPSBzZWxmLmltYWdlOworICAgIGNvcHkuc2VsZWN0ZWQgPSBzZWxmLnNl
bGVjdGVkOworCisgICAgcmV0dXJuIGNvcHk7Cit9CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1l
bnRJbmZvSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dL
RHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY4MDZjZTc2NDFlNTgw
YTllNDYzMDRjYWYxZDJkOTFmOTcyZmQxNWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwu
aApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb24uaCIKKyNpbXBvcnQgIl9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmgi
CisKKyNpZiBXS19BUElfRU5BQkxFRAorCitAaW50ZXJmYWNlIF9XS0RyYWdnYWJsZUVsZW1lbnRJ
bmZvICgpCisKKyNpZiBUQVJHRVRfT1NfSVBIT05FCisrIChpbnN0YW5jZXR5cGUpaW5mb1dpdGhJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb247CistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjooY29uc3QgV2ViS2l0OjpJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb247CisjZW5kaWYKKworQHBy
b3BlcnR5IChub25hdG9taWMpIENHUG9pbnQgcG9pbnQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywg
Z2V0dGVyPWlzTGluaykgQk9PTCBsaW5rOworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1p
c0F0dGFjaG1lbnQpIEJPT0wgYXR0YWNobWVudDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0
ZXI9aXNJbWFnZSkgQk9PTCBpbWFnZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNT
ZWxlY3RlZCkgQk9PTCBzZWxlY3RlZDsKKworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmlu
ZGV4IGVlMjA1ZGIxMDM1MmQ0MjU4ZWE3NWZkOGI1YjBkMTcwMjk3YTI3NTAuLjM5ZTYxZWUyYTgz
ZjkyMzhjNWY4MDcyNTE0YjY3NTJhZTE2ODBkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaApAQCAtMzcsNiAr
MzcsNyBAQAogI2ltcG9ydCAiV0tGaWxlVXBsb2FkUGFuZWwuaCIKICNpbXBvcnQgIldLRm9ybVBl
cmlwaGVyYWwuaCIKICNpbXBvcnQgIldLU3ludGhldGljQ2xpY2tUYXBHZXN0dXJlUmVjb2duaXpl
ci5oIgorI2ltcG9ydCAiX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaCIKICNpbXBvcnQgPFVJS2l0
L1VJVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9G
bG9hdFF1YWQuaD4KQEAgLTg3LDYgKzg4LDcgQEAgdHlwZWRlZiB2b2lkICheVUlXS1NlbGVjdGlv
bldpdGhEaXJlY3Rpb25Db21wbGV0aW9uSGFuZGxlcikoQk9PTCBzZWxlY3Rpb25FbmRJc00KIHR5
cGVkZWYgdm9pZCAoXlVJV0tLZXlXZWJFdmVudENvbXBsZXRpb25IYW5kbGVyKSg6OldlYkV2ZW50
ICp0aGVFdmVudCwgQk9PTCB3YXNIYW5kbGVkKTsKIAogdHlwZWRlZiBCbG9ja1B0cjx2b2lkKFdl
YktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pPiBJbnRlcmFjdGlvbkluZm9y
bWF0aW9uQ2FsbGJhY2s7Cit0eXBlZGVmIHN0ZDo6cGFpcjxXZWJLaXQ6OkludGVyYWN0aW9uSW5m
b3JtYXRpb25SZXF1ZXN0LCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQ2FsbGJhY2s+IEludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0QW5kQ2FsbGJhY2s7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
CkBAIC0xNzQsNyArMTc2LDkgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKICAgICBX
ZWJLaXQ6OldLU2VsZWN0aW9uRHJhd2luZ0luZm8gX2xhc3RTZWxlY3Rpb25EcmF3aW5nSW5mbzsK
IAogICAgIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dD4gX291dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3Q7Ci0gICAgVmVjdG9yPHN0
ZDo6cGFpcjxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0LCBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQ2FsbGJhY2s+PiBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVy
czsKKworICAgIHVpbnQ2NF90IF9wb3NpdGlvbkluZm9ybWF0aW9uQ2FsbGJhY2tEZXB0aDsKKyAg
ICBWZWN0b3I8c3RkOjpvcHRpb25hbDxJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdEFuZENh
bGxiYWNrPj4gX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnM7CiAgICAgCiAgICAg
c3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6SW5wdXRWaWV3VXBkYXRlRGVmZXJyZXI+IF9pbnB1dFZp
ZXdVcGRhdGVEZWZlcnJlcjsKIApAQCAtMjg3LDYgKzI5MSwxMCBAQCBzdHJ1Y3QgV0tBdXRvQ29y
cmVjdGlvbkRhdGEgewogLSAodm9pZClfYWNjZXNzaWJpbGl0eVJldHJpZXZlUmVjdHNFbmNsb3Np
bmdTZWxlY3Rpb25PZmZzZXQ6KE5TSW50ZWdlcilvZmZzZXQgd2l0aEdyYW51bGFyaXR5OihVSVRl
eHRHcmFudWxhcml0eSlncmFudWxhcml0eTsKIC0gKHZvaWQpX2FjY2Vzc2liaWxpdHlSZXRyaWV2
ZVJlY3RzQXRTZWxlY3Rpb25PZmZzZXQ6KE5TSW50ZWdlcilvZmZzZXQgd2l0aFRleHQ6KE5TU3Ry
aW5nICopdGV4dDsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBXZWJLaXQ6Oklu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIGN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9u
OworLSAodm9pZClkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZToodm9pZCAoXikoV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbikpYWN0aW9uIGZvclJlcXVlc3Q6
KFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QpcmVxdWVzdDsKKy0gKHZvaWQp
ZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6KFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvblJlcXVlc3QpcmVxdWVzdDsKKwogI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9O
KQogLSAodm9pZClfZGlkUGVyZm9ybURhdGFJbnRlcmFjdGlvbkNvbnRyb2xsZXJPcGVyYXRpb247
CiAtICh2b2lkKV9kaWRIYW5kbGVTdGFydERhdGFJbnRlcmFjdGlvblJlcXVlc3Q6KEJPT0wpc3Rh
cnRlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50
Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggODIzZjA4MmVkNjI2OTEwZjBlMWM3MjI2NzQ1NzFl
MzBmZGUwMTg2Zi4uODg1MmE5Yjc1YTE0M2NkNTU1MjFlMjJlNDY1ZGI0YzU3YTQzNWFjNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJh
Y3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KQEAgLTEzMDYsNiArMTMwNiwxMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wg
aXNTYW1lUGFpcihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpi
LCBVSQogICAgIHJldHVybiBbc2VsZiBfYWN0aW9uRm9yTG9uZ1ByZXNzRnJvbVBvc2l0aW9uSW5m
b3JtYXRpb246X3Bvc2l0aW9uSW5mb3JtYXRpb25dOwogfQogCistIChJbnRlcmFjdGlvbkluZm9y
bWF0aW9uQXRQb3NpdGlvbiljdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbgoreworICAgIHJldHVy
biBfcG9zaXRpb25JbmZvcm1hdGlvbjsKK30KKwogLSAodm9pZClkb0FmdGVyUG9zaXRpb25JbmZv
cm1hdGlvblVwZGF0ZToodm9pZCAoXikoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24p
KWFjdGlvbiBmb3JSZXF1ZXN0OihJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdClyZXF1ZXN0
CiB7CiAgICAgaWYgKFtzZWxmIF9jdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbklzVmFsaWRGb3JS
ZXF1ZXN0OnJlcXVlc3RdKSB7CkBAIC0xMzE0LDcgKzEzMTksNyBAQCBzdGF0aWMgaW5saW5lIGJv
b2wgaXNTYW1lUGFpcihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVy
ICpiLCBVSQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgX3BlbmRpbmdQb3NpdGlvbklu
Zm9ybWF0aW9uSGFuZGxlcnMuYXBwZW5kKHsgcmVxdWVzdCwgYWN0aW9uIH0pOworICAgIF9wZW5k
aW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzLmFwcGVuZChJbnRlcmFjdGlvbkluZm9ybWF0
aW9uUmVxdWVzdEFuZENhbGxiYWNrKHJlcXVlc3QsIGFjdGlvbikpOwogCiAgICAgaWYgKCFbc2Vs
ZiBfaGFzVmFsaWRPdXRzdGFuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OnJlcXVlc3Rd
KQogICAgICAgICBbc2VsZiByZXF1ZXN0QXN5bmNocm9ub3VzUG9zaXRpb25JbmZvcm1hdGlvblVw
ZGF0ZTpyZXF1ZXN0XTsKQEAgLTEzNjEsMjAgKzEzNjYsMzAgQEAgc3RhdGljIGlubGluZSBib29s
IGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAq
YiwgVUkKIHsKICAgICBBU1NFUlQoX2hhc1ZhbGlkUG9zaXRpb25JbmZvcm1hdGlvbik7CiAKLSAg
ICBWZWN0b3I8c2l6ZV90PiBpbmRpY2VzT2ZIYW5kbGVkUmVxdWVzdHM7CisgICAgKytfcG9zaXRp
b25JbmZvcm1hdGlvbkNhbGxiYWNrRGVwdGg7CisgICAgYXV0byB1cGRhdGVkUG9zaXRpb25JbmZv
cm1hdGlvbiA9IF9wb3NpdGlvbkluZm9ybWF0aW9uOworCiAgICAgZm9yIChzaXplX3QgaW5kZXgg
PSAwOyBpbmRleCA8IF9wZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzLnNpemUoKTsg
KytpbmRleCkgewotICAgICAgICBhdXRvJiByZXF1ZXN0QW5kSGFuZGxlciA9IF9wZW5kaW5nUG9z
aXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzW2luZGV4XTsKLSAgICAgICAgaWYgKCFbc2VsZiBfY3Vy
cmVudFBvc2l0aW9uSW5mb3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0QW5kSGFuZGxl
ci5maXJzdF0pCisgICAgICAgIGF1dG8gcmVxdWVzdEFuZEhhbmRsZXIgPSBfcGVuZGluZ1Bvc2l0
aW9uSW5mb3JtYXRpb25IYW5kbGVyc1tpbmRleF07CisgICAgICAgIGlmICghcmVxdWVzdEFuZEhh
bmRsZXIpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBpZiAocmVxdWVzdEFuZEhh
bmRsZXIuc2Vjb25kKQotICAgICAgICAgICAgcmVxdWVzdEFuZEhhbmRsZXIuc2Vjb25kKF9wb3Np
dGlvbkluZm9ybWF0aW9uKTsKKyAgICAgICAgaWYgKCFbc2VsZiBfY3VycmVudFBvc2l0aW9uSW5m
b3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0QW5kSGFuZGxlci0+Zmlyc3RdKQorICAg
ICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKHJlcXVlc3RBbmRIYW5kbGVyLT5zZWNv
bmQpCisgICAgICAgICAgICByZXF1ZXN0QW5kSGFuZGxlci0+c2Vjb25kKHVwZGF0ZWRQb3NpdGlv
bkluZm9ybWF0aW9uKTsKIAotICAgICAgICBpbmRpY2VzT2ZIYW5kbGVkUmVxdWVzdHMuYXBwZW5k
KGluZGV4KTsKKyAgICAgICAgX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnNbaW5k
ZXhdID0gc3RkOjpudWxsb3B0OwogICAgIH0KIAotICAgIHdoaWxlIChpbmRpY2VzT2ZIYW5kbGVk
UmVxdWVzdHMuc2l6ZSgpKQotICAgICAgICBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5k
bGVycy5yZW1vdmUoaW5kaWNlc09mSGFuZGxlZFJlcXVlc3RzLnRha2VMYXN0KCkpOworICAgIGlm
ICgtLV9wb3NpdGlvbkluZm9ybWF0aW9uQ2FsbGJhY2tEZXB0aCkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgZm9yIChpbnQgaW5kZXggPSBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVy
cy5zaXplKCkgLSAxOyBpbmRleCA+PSAwOyAtLWluZGV4KSB7CisgICAgICAgIGlmICghX3BlbmRp
bmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnNbaW5kZXhdKQorICAgICAgICAgICAgX3BlbmRp
bmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnMucmVtb3ZlKGluZGV4KTsKKyAgICB9CiB9CiAK
ICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZDEwN2UwNDExYzg5ZDQ1NWJlYjgwOWY1
MDUxYzg1MjFlYzQyNWY3MS4uOGZlMzI4M2UxMjNiNjFjOTAyNDc5NDFmMDE5MzFhNzcxNWQ2ZjUy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMjAwOSw2ICsyMDA5LDkgQEAKIAkJRjQzMzcwOTcxRTRENzJFRDAwMDUyQjBFIC8q
IF9XS1Rlc3RpbmdEZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQzMzcwOTYxRTRENkE0NDAwMDUyQjBFIC8qIF9XS1Rlc3RpbmdEZWxlZ2F0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUY0
NERGRUIyMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRERkVCMDFFOUU3NTJGMDAzOEQx
OTYgLyogV2ViSWNvblV0aWxpdGllcy5oICovOyB9OwogCQlGNDRERkVCMzFFOUU3NTJGMDAzOEQx
OTYgLyogV2ViSWNvblV0aWxpdGllcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0NERGRUIxMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0
aWVzLm1tICovOyB9OworCQlGNEU4Q0I5MTFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxl
RWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0RThDQjhFMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUY0RThD
QjkyMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RThDQjhGMUVBNkFCNUIw
MEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbSAqLzsgfTsKKwkJRjRFOENCOTMx
RUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RThDQjkwMUVBNkFC
NUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmggKi87IH07CiAJ
CUY2MTEzRTI1MTI2Q0UxODIwMDU3RDBBNyAvKiBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI0MTI2
Q0UxODIwMDU3RDBBNyAvKiBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLzsgfTsKIAkJRjYx
MTNFMjgxMjZDRTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI2MTI2Q0Ux
OUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgKi87IH07CiAJCUY2MTEz
RTI5MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYxMTNFMjcxMjZDRTE5QjAw
NTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTQzNDMsNiArNDM0Niw5IEBACiAJCUY0MzM3
MDk2MUU0RDZBNDQwMDA1MkIwRSAvKiBfV0tUZXN0aW5nRGVsZWdhdGUuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLVGVzdGluZ0RlbGVnYXRlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0NERGRUIwMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0
aWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdlYkljb25VdGlsaXRpZXMu
aDsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0NERGRUIxMUU5RTc1MkYwMDM4RDE5NiAvKiBXZWJJY29uVXRpbGl0aWVzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViSWNvblV0aWxpdGllcy5t
bTsgcGF0aCA9IGlvcy9XZWJJY29uVXRpbGl0aWVzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNEU4Q0I4RTFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudElu
Zm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRHJhZ2dhYmxlRWxlbWVu
dEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFOENCOEYxRUE2QUI1QjAw
RTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0RThDQjkwMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFn
Z2FibGVFbGVtZW50SW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjYxMTNFMjQxMjZDRTE4MjAwNTdEMEE3IC8qIEFQSVVzZXJDb250ZW50VVJM
UGF0dGVybi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElVc2VyQ29udGVu
dFVSTFBhdHRlcm4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjYxMjZD
RTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjYxMTNFMjcxMjZDRTE5QjAwNTdEMEE3IC8qIFdL
VXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00NDgxLDYgKzQ0ODcsNyBAQAogCQkJCTFBNEY5NzY5MTAwRTdCNjYwMDYzN0ExOCAvKiBDb25m
aWd1cmF0aW9ucyAqLywKIAkJCQkwODY3RDY5QUZFODQwMjhGQzAyQUFDMDcgLyogRXh0ZXJuYWwg
RnJhbWV3b3JrcyBhbmQgTGlicmFyaWVzICovLAogCQkJCTAzNDc2OERGRkYzOEE1MDQxMURCOUM4
QiAvKiBQcm9kdWN0cyAqLywKKwkJCQlGNEQ3QkNDQTFFQTQ5NEZBMDBDNDIxRDMgLyogUmVjb3Zl
cmVkIFJlZmVyZW5jZXMgKi8sCiAJCQkpOwogCQkJbmFtZSA9IFdlYktpdDI7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwpAQCAtNTUyNCw2ICs1NTMxLDkgQEAKIAkJCQlBMUE0RkU1ODE4RENF
OUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQubW0gKi8sCiAJCQkJQTFBNEZFNjAxOERENTRBNDAw
QjVFQThBIC8qIF9XS0Rvd25sb2FkRGVsZWdhdGUuaCAqLywKIAkJCQlBMUE0RkU1OTE4RENFOUZB
MDBCNUVBOEEgLyogX1dLRG93bmxvYWRJbnRlcm5hbC5oICovLAorCQkJCUY0RThDQjhFMUVBNkFC
NUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oICovLAorCQkJCUY0RThDQjhG
MUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbSAqLywKKwkJCQlG
NEU4Q0I5MDFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5h
bC5oICovLAogCQkJCTM3OUE4NzM4MThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9u
LmggKi8sCiAJCQkJMzc5QTg3MzcxOEJCRkUwRjAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24u
bW0gKi8sCiAJCQkJMzc5QTg3M0IxOEJCRkYwNzAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb25J
bnRlcm5hbC5oICovLApAQCAtODA0Miw2ICs4MDUyLDE0IEBACiAJCQlwYXRoID0gTmV0d29ya1By
b2Nlc3MvY2FjaGU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlGNEQ3QkND
QTFFQTQ5NEZBMDBDNDIxRDMgLyogUmVjb3ZlcmVkIFJlZmVyZW5jZXMgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUM1OENERjI4MTg4NzU0OEIwMDg3MTUz
NiAvKiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oICovLAorCQkJKTsKKwkJCW5h
bWUgPSAiUmVjb3ZlcmVkIFJlZmVyZW5jZXMiOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKIAkJRjYzODk1NUExMzNCRjU3RDAwODk0MUQ1IC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC04MTk5LDYgKzgyMTcsNyBAQAogCQkJCTdD
ODlEMjk0MUE2NzEyMkYwMDNBNUZERSAvKiBBUElVc2VyU2NyaXB0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRDg3ODYyNDFCREI1OEZGMDBEMDJBQkIgLyogQVBJVXNlclN0eWxlU2hlZXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM1RTFBRkVEMTZCMjEwMTcwMDZDQzFGMiAvKiBBUElXZWJBcmNoaXZl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNEU4Q0I5MzFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFGRUYx
NkIyMTAyOTAwNkNDMUYyIC8qIEFQSVdlYkFyY2hpdmVSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFFMjg2ODQxQzdGOTM4NjAwNjlBQzRGIC8qIEFQSVdlYnNpdGVEYXRhUmVjb3JkLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTM2MzVBQTFBMzE0NEEzMDBFRDYxOTcgLyogQVBJV2Vic2l0
ZURhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04ODcxLDYgKzg4OTAsNyBAQAogCQkJCTA3
QTVFQkJDMUM3QkE0M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTRENjY0QzE4QTMwMzBFMDBEODJFMjEgLyogV0tGcmFtZUluZm8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJERjlFRUU4MUE3ODI0NTUwMEI2Q0ZCRSAvKiBXS0ZyYW1lSW5mb0ludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNEU4Q0I5MTFFQTZBQjVCMDBFMzExOTggLyogX1dL
RHJhZ2dhYmxlRWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNkZBMjFFMUJEMDQz
NUIwMEFBQTY1MCAvKiBXS0ZyYW1lSW5mb1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
M0E2NUU3MUE3QzNBQTcwMENBQzYzNyAvKiBXS0ZyYW1lSW5mb1JlZi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNCOUY2QTUxMTIzREQwRDAwQTEzN0UwIC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xMDUxMSw2ICsxMDUzMSw3IEBACiAJCQkJOTNBMjUzRUYxQzky
MkU4RTAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk5M0EyNTNGNTFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZp
ZXJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5NUU2OEMxQkYyQzM1MjAwRjQ5QkNFIC8qIFdL
UHJldmlld0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjRFOENCOTIxRUE2QUI1
QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZDQjRFNjcxOEJCRTNEOTAwMEZDRkM5IC8qIFdLUHJpbnRpbmdWaWV3Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNCQUFDRUMxNDUyMjVFMzAwNTNGODJGIC8qIFdLUHJvY2Vzc0dyb3VwLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUExNTg0MTkxODkwNDRGNTAwMTc2MTZDIC8qIFdLUHJvY2Vz
c1Bvb2wubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBjNmQ3OTgxM2FiZGY5NDE5OTFhMDJhYTdkOTNmZGUzY2ExYjVj
ZGZmLi43NTA5Mzg5ZmFlMmYwNDYwMTEwY2RmMTUzOTEwM2I3OGQ1Y2JiMzc2IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTctMDQtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dLMl0gLVtXS0NvbnRlbnRWaWV3IGRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBk
YXRlOmF0UG9zaXRpb246XSBzaG91bGQgYmUgcm9idXN0IGFnYWluc3Qgc3luY2hyb25vdXMgcmVl
bnRyYW5jeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwOTIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTYzNDk5MD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIHRocmVlIG5ldyB1bml0IHRl
c3RzIGZvciByZXRyaWV2aW5nIGludGVyYWN0aW9uIGluZm9ybWF0aW9uIGF0IGEgZ2l2ZW4gcG9z
aXRpb24gaW4gdGhlIFVJIHByb2Nlc3MuIFNlZQorICAgICAgICBXZWJLaXQyIENoYW5nZUxvZyBm
b3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9pb3MvUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tOiBBZGRlZC4KKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmV4cGVjdENHUG9pbnRzVG9CZUVxdWFsKToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorCiAyMDE3LTA0LTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4K
IAogICAgICAgICBVcGRhdGUgYXJjaGl0ZWN0dXJlcyBpbiB4Y2NvbmZpZyBmaWxlcy4KZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggY2VkOGVhODU5ZWE0OTVkM2ZiNTM1YjJkZDlkNTFiMjU3Njg2
NGU4Ny4uMjVmZGQxN2ZkODA4MzJiYTVlOWE1YjBiZGQ2OTNhZjQ0ZDYwODM3MCAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTU5NCw2ICs1OTQsNyBAQAogCQlGNEMyQUIyMjFERDZEOTVFMDBF
MDZENUIgLyogZW5vcm1vdXMtdmlkZW8td2l0aC1zb3VuZC5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QzJBQjIxMURENkQ5NDEwMEUw
NkQ1QiAvKiBlbm9ybW91cy12aWRlby13aXRoLXNvdW5kLmh0bWwgKi87IH07CiAJCUY0RDRGM0I2
MUU0RTJCQ0IwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ0RjNCNDFFNEUyQkNCMDBC
QjI3NjcgLyogRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tICovOyB9OwogCQlGNEQ0RjNCOTFF
NEUzNkU0MDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9uVGVzdHMubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3Njcg
LyogRGF0YUludGVyYWN0aW9uVGVzdHMubW0gKi87IH07CisJCUY0RDdCQ0Q4MUVBNTc4OTgwMEM0
MjFEMyAvKiBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEQ3QkNENjFFQTU3NEREMDBDNDIxRDMgLyogUG9z
aXRpb25JbmZvcm1hdGlvblRlc3RzLm1tICovOyB9OwogCQlGNERFRjZFRDFFOUI0REI2MDA0OEVG
NjEgLyogaW1hZ2UtaW4tbGluay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNERFRjZFQzFFOUI0RDk1MDA0OEVGNjEg
LyogaW1hZ2UtaW4tbGluay1hbmQtaW5wdXQuaHRtbCAqLzsgfTsKIAkJRjRGMTM3OTIxRDlCNjgz
RTAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEYxMzc5MTFEOUI2
ODMyMDAyQkVDNTcgLyogbGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5odG1sICovOyB9Owog
CQlGNEY0MDVCQzFENEMwRDFDMDA3QTk3MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVv
LXdpdGgtYXVkaW8uaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNEY0MDVCQTFENEMwQ0Y4MDA3QTk3MDcgLyogZnVsbC1zaXplLWF1dG9w
bGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLzsgfTsKQEAgLTE0NzEsNiArMTQ3Miw3IEBA
CiAJCUY0RDRGM0I0MUU0RTJCQ0IwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Iu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhSW50ZXJhY3Rp
b25TaW11bGF0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDRGM0I1MUU0
RTJCQ0IwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDRGM0I3MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50
ZXJhY3Rpb25UZXN0cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IERhdGFJbnRlcmFjdGlvblRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
NEQ3QkNENjFFQTU3NEREMDBDNDIxRDMgLyogUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNERFRjZFQzFFOUI0RDk1MDA0OEVGNjEgLyogaW1hZ2Ut
aW4tbGluay1hbmQtaW5wdXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbWFn
ZS1pbi1saW5rLWFuZC1pbnB1dC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjRGMTM3OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby10ZXN0LW5vdy1w
bGF5aW5nLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEY0MDVCQTFENEMw
Q0Y4MDA3QTk3MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJmdWxsLXNpemUtYXV0b3BsYXlpbmctdmlk
ZW8td2l0aC1hdWRpby5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MDAs
NiArMTgwMiw3IEBACiAJCQkJQTFDNEZCNkYxQkFDQ0VGQTAwMzc0MkQwIC8qIFJlc291cmNlcyAq
LywKIAkJCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9uVGVzdHMu
bW0gKi8sCiAJCQkJNzU2MDkxNzcxOTI1OUM1OTAwOUVGMDZFIC8qIE1lbW9yeUNhY2hlQWRkSW1h
Z2VUb0NhY2hlSU9TLm1tICovLAorCQkJCUY0RDdCQ0Q2MUVBNTc0REQwMEM0MjFEMyAvKiBQb3Np
dGlvbkluZm9ybWF0aW9uVGVzdHMubW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKIAkJCXNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yODk2LDYgKzI4OTksNyBAQAogCQkJCTdDODNFMDUz
MUQwQTY0M0EwMEZFQkNGMyAvKiBQZW5kaW5nQVBJUmVxdWVzdFVSTC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk3Q0NFN0VBRjFBNDExQTM4MDA0NDdDNEMgLyogUGxhdGZvcm1VdGlsaXRpZXMuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMEYxMzlFNzgxQTQyM0E2QjAwRjU5MEY1IC8qIFBsYXRmb3Jt
VXRpbGl0aWVzQ29jb2EubW0gaW4gU291cmNlcyAqLywKKwkJCQlGNEQ3QkNEODFFQTU3ODk4MDBD
NDIxRDMgLyogUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0NDRTdFQTYxQTQxMUEwRjAwNDQ3QzRDIC8qIFBsYXRmb3JtVXRpbGl0aWVzTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFQTcxQTQxMUExMzAwNDQ3QzRDIC8qIFBsYXRmb3JtV2ViVmll
d01hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RjI2MUE0MTFBRjYwMDQ0N0M0QyAvKiBQ
cmVmZXJlbmNlcy5tbSBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9pb3MvUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmY2OWE1ZWY3ZjI2OWZhN2YxZWExNzQ3NzlmY2U2MTRmZTE0ZTUyOTQKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9Qb3NpdGlvbkluZm9ybWF0aW9uVGVz
dHMubW0KQEAgLTAsMCArMSw5NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIK
KworI2lmIFBMQVRGT1JNKElPUykgJiYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAiUGxhdGZv
cm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLRHJhZ2dhYmxlRWxlbWVu
dEluZm8uaD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgdm9pZCBleHBl
Y3RDR1BvaW50c1RvQmVFcXVhbChjb25zdCBDR1BvaW50JiBmaXJzdCwgY29uc3QgQ0dQb2ludCYg
c2Vjb25kKQoreworICAgIEVYUEVDVF9FUShmaXJzdC54LCBzZWNvbmQueCk7CisgICAgRVhQRUNU
X0VRKGZpcnN0LnksIHNlY29uZC55KTsKK30KKworVEVTVChQb3NpdGlvbkluZm9ybWF0aW9uVGVz
dHMsIEZpbmREcmFnZ2FibGVMaW5rQXRQb3NpdGlvbikKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBh
ZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAs
IDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VO
YW1lZDpAImxpbmstYW5kLWlucHV0Il07CisKKyAgICBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAq
aW5mb3JtYXRpb24gPSBbd2ViVmlldyBkcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50
TWFrZSgxMDAsIDUwKV07CisKKyAgICBFWFBFQ1RfVFJVRShbaW5mb3JtYXRpb24gaXNMaW5rXSk7
CisgICAgZXhwZWN0Q0dQb2ludHNUb0JlRXF1YWwoW2luZm9ybWF0aW9uIHBvaW50XSwgeyAxMDAs
IDUwIH0pOworfQorCitURVNUKFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cywgUmVxdWVzdERyYWdn
YWJsZUxpbmtBdFBvc2l0aW9uKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDAp
XSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAibGluay1h
bmQtaW5wdXQiXTsKKworICAgIF9fYmxvY2sgYm9vbCBpc0RvbmUgPSBmYWxzZTsKKyAgICBfX2Js
b2NrIFJldGFpblB0cjxfV0tEcmFnZ2FibGVFbGVtZW50SW5mbz4gcG9zaXRpb25JbmZvcm1hdGlv
bjsKKyAgICBbd2ViVmlldyByZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2lu
dE1ha2UoMTAwLCA1MCkgY29tcGxldGlvbkJsb2NrOl4oX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8g
KmluZm9ybWF0aW9uKSB7CisgICAgICAgIHBvc2l0aW9uSW5mb3JtYXRpb24gPSBpbmZvcm1hdGlv
bjsKKyAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6
OlV0aWw6OnJ1bigmaXNEb25lKTsKKworICAgIEVYUEVDVF9UUlVFKFtwb3NpdGlvbkluZm9ybWF0
aW9uIGlzTGlua10pOworICAgIGV4cGVjdENHUG9pbnRzVG9CZUVxdWFsKFtwb3NpdGlvbkluZm9y
bWF0aW9uIHBvaW50XSwgeyAxMDAsIDUwIH0pOworfQorCitURVNUKFBvc2l0aW9uSW5mb3JtYXRp
b25UZXN0cywgRmluZERyYWdnYWJsZUxpbmtBdFBvc2l0aW9uV2l0aGluUmVxdWVzdEJsb2NrKQor
eworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0
V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAibGluay1hbmQtaW5wdXQiXTsKKworICAgIF9f
YmxvY2sgYm9vbCBpc0RvbmUgPSBmYWxzZTsKKyAgICBfX2Jsb2NrIFJldGFpblB0cjxfV0tEcmFn
Z2FibGVFbGVtZW50SW5mbz4gcG9zaXRpb25JbmZvcm1hdGlvbjsKKyAgICBbd2ViVmlldyByZXF1
ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCA1MCkgY29tcGxl
dGlvbkJsb2NrOl4oX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKmluZm9ybWF0aW9uKSB7CisgICAg
ICAgIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICpzeW5jaHJvbm91c0luZm9ybWF0aW9uID0gW3dl
YlZpZXcgZHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCAzMDApXTsK
KyAgICAgICAgRVhQRUNUX0ZBTFNFKHN5bmNocm9ub3VzSW5mb3JtYXRpb24ubGluayk7CisgICAg
ICAgIGV4cGVjdENHUG9pbnRzVG9CZUVxdWFsKHN5bmNocm9ub3VzSW5mb3JtYXRpb24ucG9pbnQs
IHsgMTAwLCAzMDAgfSk7CisKKyAgICAgICAgcG9zaXRpb25JbmZvcm1hdGlvbiA9IGluZm9ybWF0
aW9uOworICAgICAgICBpc0RvbmUgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6cnVuKCZpc0RvbmUpOworCisgICAgRVhQRUNUX1RSVUUoW3Bvc2l0aW9uSW5mb3Jt
YXRpb24gaXNMaW5rXSk7CisgICAgZXhwZWN0Q0dQb2ludHNUb0JlRXF1YWwoW3Bvc2l0aW9uSW5m
b3JtYXRpb24gcG9pbnRdLCB7IDEwMCwgNTAgfSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFRlc3RX
ZWJLaXRBUEkKKworI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307447</attachid>
            <date>2017-04-18 18:27:34 -0700</date>
            <delta_ts>2017-04-19 08:51:40 -0700</delta_ts>
            <desc>Rebase on ToT</desc>
            <filename>bug-170922-20170418182733.patch</filename>
            <type>text/plain</type>
            <size>35537</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NDkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYmMyYmNkOGIyODQ0M2Yz
NmQ3NWE4OWVkOGY2MWI3MGIwY2FlNmVlNC4uNDU1NmIyMTgyYWMxMjRlYTg1NTYxYzMxNTk2Zjll
ZmY4MDYwZjg5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTA0LTE4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIC1bV0tD
b250ZW50VmlldyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTphdFBvc2l0aW9uOl0g
c2hvdWxkIGJlIHJvYnVzdCBhZ2FpbnN0IHN5bmNocm9ub3VzIHJlZW50cmFuY3kKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDkyMgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzE2MzQ5OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JzIHBhcnQgb2YgdGhlIGFzeW5jaHJvbm91cyBwb3Np
dGlvbiBpbmZvcm1hdGlvbiBtZWNoYW5pc20gaW50cm9kdWNlZCBpbgorICAgICAgICA8aHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIxNTE3MT4sIGFuZCBpbnRyb2R1Y2VzIGluZnJh
c3RydWN0dXJlIGZvciB1bml0IHRlc3RpbmcgVUktc2lkZSBwb3NpdGlvbgorICAgICAgICBpbmZv
cm1hdGlvbiByZXF1ZXN0cy4KKworICAgICAgICBfaW52b2tlQW5kUmVtb3ZlUGVuZGluZ0hhbmRs
ZXJzVmFsaWRGb3JDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbiBpcyBhIGhlbHBlciBtZXRob2Qg
b24gV0tDb250ZW50VmlldworICAgICAgICByZXNwb25zaWJsZSBmb3IgaW52b2tpbmcgcXVldWVk
IHBvc2l0aW9uIGluZm9ybWF0aW9uIGhhbmRsZXJzIGFmdGVyIHJlY2VpdmluZyBhIHBvc2l0aW9u
IGluZm9ybWF0aW9uIHJlc3BvbnNlCisgICAgICAgIGZyb20gdGhlIHdlYiBwcm9jZXNzLiBQcmV2
aW91c2x5LCB0aGlzIG1ldGhvZCB3b3VsZCBpdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2YgcGVuZGlu
ZyBjYWxsYmFja3MgYW5kIGludm9rZSBhbGwKKyAgICAgICAgY2FsbGJhY2tzIHdob3NlIHJlcXVl
c3RzIGFyZSBzYXRpc2ZpZWQgYnkgdGhlIGluY29taW5nIHBvc2l0aW9uIGluZm9ybWF0aW9uIHVw
ZGF0ZSwgc2F2aW5nIHRoZSBpbmRpY2VzIG9mIHRoZXNlCisgICAgICAgIGhhbmRsZWQgY2FsbGJh
Y2tzIGluIHRoZSBwcm9jZXNzLiBBdCB0aGUgZW5kLCBpdCB3b3VsZCB0aGVuIHJlbW92ZSBjYWxs
YmFja3MgYXQgdGhlc2UgaW5kaWNlcyBmcm9tIHRoZSBhcnJheSBvZgorICAgICAgICBwZW5kaW5n
IGNhbGxiYWNrcy4gVGhpcyBpcyBwcm9ibGVtYXRpYyB3aGVuIGEgc3luY2hyb25vdXMgcG9zaXRp
b24gdXBkYXRlICh2aWEKKyAgICAgICAgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0Rh
dGU6KSBpcyB0cmlnZ2VyZWQgZnJvbSB3aXRoaW4gb25lIG9mIHRoZXNlIGNhbGxiYWNrcywgc2lu
Y2UKKyAgICAgICAgX2ludm9rZUFuZFJlbW92ZVBlbmRpbmdIYW5kbGVyc1ZhbGlkRm9yQ3VycmVu
dFBvc2l0aW9uSW5mb3JtYXRpb24gd2lsbCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gaXRzZWxmLCBh
bmQgdGhlbiB3ZQorICAgICAgICB3aWxsIGF0dGVtcHQgdG8gcmVtb3ZlIGEgY2FsbGJhY2sgYXQg
dGhlIHNhbWUgaW5kZXggdHdpY2UuCisKKyAgICAgICAgVG8gZml4IHRoaXMsIHdlIGNoYW5nZSB0
aGUgYXJyYXkgb2YgcGVuZGluZyBwb3NpdGlvbiBpbmZvcm1hdGlvbiBoYW5kbGVycyB0byBiZSBh
biBhcnJheSBvZiBvcHRpb25hbHMgaW5zdGVhZC4KKyAgICAgICAgV2hlbiBpbnZva2luZyBhbmQg
cmVtb3ZpbmcgcGVuZGluZyBoYW5kbGVycyBhZnRlciBhIHBvc2l0aW9uIGluZm9ybWF0aW9uIHJl
c3BvbnNlIGFycml2ZXMsIHdlIG5vdyBtYXJrIGNhbGxiYWNrcworICAgICAgICBhcyBoYW5kbGVk
IGJ5IHNldHRpbmcgdGhlbSB0byBzdGQ6Om51bGxvcHQuIFRoZW4sIHdoZW4gdGhlIHRvcC1sZXZl
bCBpbnZvY2F0aW9uIHRvCisgICAgICAgIF9pbnZva2VBbmRSZW1vdmVQZW5kaW5nSGFuZGxlcnNW
YWxpZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uIGlzIGZpbmlzaGVkLCB3ZSByZW1vdmUg
YWxsIG1hcmtlZCBoYW5kbGVycworICAgICAgICBmcm9tIHRoZSBwZW5kaW5nIHZlY3Rvci4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IDMgbmV3IHVuaXQgdGVzdHM6CisgICAgICAgIC0gUG9zaXRpb25J
bmZvcm1hdGlvblRlc3RzLkZpbmREcmFnZ2FibGVMaW5rQXRQb3NpdGlvbgorICAgICAgICAtIFBv
c2l0aW9uSW5mb3JtYXRpb25UZXN0cy5SZXF1ZXN0RHJhZ2dhYmxlTGlua0F0UG9zaXRpb24KKyAg
ICAgICAgLSBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMuRmluZERyYWdnYWJsZUxpbmtBdFBvc2l0
aW9uV2l0aGluUmVxdWVzdEJsb2NrCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRyYWdnYWJsZUVsZW1lbnRBdFBvc2l0
aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBv
c2l0aW9uOmNvbXBsZXRpb25CbG9jazpdKToKKworICAgICAgICBVc2VzIFdLQ29udGVudFZpZXcn
cyBwb3NpdGlvbiBpbmZvcm1hdGlvbiByZXF1ZXN0IGhlbHBlcnMgdG8gc2VhcmNoIGZvciBkcmFn
Z2FibGUgZWxlbWVudHMgb24gdGhlIHBhZ2UuIFRoZXJlCisgICAgICAgIGFyZSBib3RoIHN5bmNo
cm9ub3VzIGFuZCBhc3luY2hyb25vdXMgdmVyc2lvbnMgb2YgdGhpcywgYm90aCBvZiB3aGljaCBy
ZXRyaWV2ZSBhIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLgorCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tOiBBZGRlZC4KKworICAgICAg
ICBFeHBvc2VzIHdoYXQgZWxlbWVudHMgYXJlIGRyYWdnYWJsZSBhdCBhIGdpdmVuIHBvc2l0aW9u
IGFzIFNQSSAob25seSBmb3IgdXNlIGluIHRlc3RpbmcgY29kZSwgYXQgdGhlIG1vbWVudCkuCisK
KyAgICAgICAgKC1bX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gaW5pdFdpdGhJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uQXRQb3NpdGlvbjpdKToKKyAgICAgICAgKC1bX1dLRHJhZ2dhYmxlRWxlbWVudElu
Zm8gY29weVdpdGhab25lOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGN1
cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZG9B
ZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6Zm9yUmVxdWVzdDpdKToKKyAgICAgICAgKC1b
V0tDb250ZW50VmlldyBfaW52b2tlQW5kUmVtb3ZlUGVuZGluZ0hhbmRsZXJzVmFsaWRGb3JDdXJy
ZW50UG9zaXRpb25JbmZvcm1hdGlvbl0pOgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajoKKwogMjAxNy0wNC0xOCAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXNvdXJjZSBMb2FkIFN0YXRpc3RpY3M6IENoZWNrIGJvdGgg
b3JpZ2lucyBhbmQgY29va2llSG9zdE5hbWVzIGZvciBkb21haW4gbWF0Y2hlcyBpbiBkYXRhIHJl
bW92YWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcu
bW0KaW5kZXggYWVlYzI2MDFjZWZjNWU5MDJiOTEzNDc5ZmM1MmY3YjVlYTEwZjQ4My4uYzAyYmQ5
Y2U0MDYzYjhjYzEyMTRkYjQ5M2E3Mzg4Y2Q4OTZjYWQ2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTM2LDYgKzM2LDggQEAKICNp
bXBvcnQgIkZpbmRDbGllbnQuaCIKICNpbXBvcnQgIkZ1bGxzY3JlZW5DbGllbnQuaCIKICNpbXBv
cnQgIkljb25Mb2FkaW5nRGVsZWdhdGUuaCIKKyNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uLmgiCisjaW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdC5o
IgogI2ltcG9ydCAiTGVnYWN5U2Vzc2lvblN0YXRlQ29kaW5nLmgiCiAjaW1wb3J0ICJMb2dnaW5n
LmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uU3RhdGUuaCIKQEAgLTgzLDYgKzg1LDcgQEAKICNpbXBv
cnQgIldlYlVSTFNjaGVtZUhhbmRsZXJDb2NvYS5oIgogI2ltcG9ydCAiV2ViVmlld0ltcGwuaCIK
ICNpbXBvcnQgIl9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaCIKKyNpbXBvcnQgIl9XS0Ry
YWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0ZpbmREZWxlZ2F0ZS5o
IgogI2ltcG9ydCAiX1dLRnJhbWVIYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLRnVsbHNj
cmVlbkRlbGVnYXRlLmgiCkBAIC01MDg4LDYgKzUwOTEsMTggQEAgc3RhdGljIFdlYkNvcmU6OlVz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdG9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9u
KFVJU2UKIH0KIAogI2lmIFBMQVRGT1JNKElPUykKKy0gKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZv
ICopZHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24KK3sKKyAgICBb
X2NvbnRlbnRWaWV3IGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOldlYktpdDo6
SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QoV2ViQ29yZTo6cm91bmRlZEludFBvaW50KHBv
c2l0aW9uKSldOworICAgIHJldHVybiBbX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gaW5mb1dpdGhJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjpbX2NvbnRlbnRWaWV3IGN1cnJlbnRQb3Np
dGlvbkluZm9ybWF0aW9uXV07Cit9CisKKy0gKHZvaWQpcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRB
dFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uIGNvbXBsZXRpb25CbG9jazoodm9pZCAoXikoX1dL
RHJhZ2dhYmxlRWxlbWVudEluZm8gKikpYmxvY2sKK3sKKyAgICBbX2NvbnRlbnRWaWV3IGRvQWZ0
ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOltjYXB0dXJlZEJsb2NrID0gbWFrZUJsb2NrUHRy
KGJsb2NrKV0gKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gaW5mb3Jt
YXRpb24pIHsKKyAgICAgICAgY2FwdHVyZWRCbG9jayhbX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8g
aW5mb1dpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjppbmZvcm1hdGlvbl0pOwor
ICAgIH0gZm9yUmVxdWVzdDpXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KFdl
YkNvcmU6OnJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpXTsKK30KIAogLSAoQ0dSZWN0KV9jb250
ZW50VmlzaWJsZVJlY3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKaW5kZXggZDBlNWZjMDMwMGQ5YmZhZjIzZjc3NGQx
ZjU3NWYyZjU2NmM5MDZiNi4uOTQ3ODhiZmY0MWQwZDQ1ZWQ2MzU4ZGZiMDdmZWFmZTk0NmFhYmE5
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKQEAgLTY3LDYgKzY3LDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdl
ciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogI2VuZGlmCiAKIEBjbGFzcyBXS0Jyb3dzaW5n
Q29udGV4dEhhbmRsZTsKK0BjbGFzcyBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbzsKIEBjbGFzcyBf
V0tGcmFtZUhhbmRsZTsKIEBjbGFzcyBfV0tIaXRUZXN0UmVzdWx0OwogQGNsYXNzIF9XS0ljb25M
b2FkaW5nRGVsZWdhdGU7CkBAIC0zMzYsNiArMzM3LDkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogLSAoTlNBcnJheSAqKV9zaW11bGF0ZWRJ
dGVtc0ZvclNlc3Npb246KGlkKXNlc3Npb24gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RC
QSkpOwogLSAodm9pZClfc2ltdWxhdGVQcmVwYXJlRm9yRGF0YUludGVyYWN0aW9uU2Vzc2lvbjoo
aWQpc2Vzc2lvbiBjb21wbGV0aW9uOihkaXNwYXRjaF9ibG9ja190KWNvbXBsZXRpb24gV0tfQVBJ
X0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOwogCistIChfV0tEcmFnZ2FibGVFbGVtZW50SW5m
byAqKWRyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9uOworLSAodm9p
ZClyZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246KENHUG9pbnQpcG9zaXRpb24gY29t
cGxldGlvbkJsb2NrOih2b2lkICheKShfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqKSlibG9jazsK
KwogI2VuZGlmIC8vIFRBUkdFVF9PU19JUEhPTkUKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJs
ZUVsZW1lbnRJbmZvLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Ry
YWdnYWJsZUVsZW1lbnRJbmZvLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjAwZDVhM2RkOTAzZDZiZjMwMDQxMGVk
YjliMzBlZDJkYzc3OTQ1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaApAQCAtMCwwICsxLDQ2IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tf
QVBJX0VOQUJMRUQKKworTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KKworV0tfQ0xBU1NfQVZBSUxB
QkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSkKK0BpbnRlcmZhY2UgX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgorCitAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIENHUG9pbnQgcG9pbnQ7CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSwgZ2V0dGVyPWlzTGluaykgQk9PTCBsaW5rOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5LCBnZXR0ZXI9aXNBdHRhY2htZW50KSBCT09MIGF0dGFjaG1lbnQ7CitAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0ltYWdlKSBCT09MIGltYWdlOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNTZWxlY3RlZCkgQk9PTCBzZWxlY3RlZDsK
KworQGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1lbnRJbmZv
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEcmFnZ2FibGVFbGVt
ZW50SW5mby5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMGZmOTIxMDdiZTYxYzFiYTljYmJiYTA5NTA0OWIyZDc2
MmJmNDgxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbQpAQCAtMCwwICsxLDczIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIl9XS0RyYWdnYWJsZUVsZW1lbnRJ
bmZvSW50ZXJuYWwuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKK0BpbXBsZW1lbnRhdGlvbiBf
V0tEcmFnZ2FibGVFbGVtZW50SW5mbworCisjaWYgUExBVEZPUk0oSU9TKQorCisrIChpbnN0YW5j
ZXR5cGUpaW5mb1dpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjooY29uc3QgV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb24KK3sKKyAg
ICByZXR1cm4gW1tbc2VsZiBhbGxvY10gaW5pdFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbjppbmZvcm1hdGlvbl0gYXV0b3JlbGVhc2VdOworfQorCistIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjooY29uc3QgV2ViS2l0OjpJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb24KK3sKKyAgICBpZiAo
IShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIF9wb2lu
dCA9IGluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQ7CisgICAgX2xpbmsgPSBpbmZvcm1hdGlvbi5p
c0xpbms7CisgICAgX2F0dGFjaG1lbnQgPSBpbmZvcm1hdGlvbi5pc0F0dGFjaG1lbnQ7CisgICAg
X2ltYWdlID0gaW5mb3JtYXRpb24uaXNJbWFnZTsKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKKyAgICBfc2VsZWN0ZWQgPSBpbmZvcm1hdGlvbi5oYXNTZWxlY3Rpb25BdFBvc2l0aW9uOwor
I2VuZGlmCisKKyAgICByZXR1cm4gc2VsZjsKK30KKworI2VuZGlmCisKKy0gKGluc3RhbmNldHlw
ZSljb3B5V2l0aFpvbmU6KE5TWm9uZSAqKXpvbmUKK3sKKyAgICBfV0tEcmFnZ2FibGVFbGVtZW50
SW5mbyAqY29weSA9IFtbX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gYWxsb2NdIGluaXRdOworCisg
ICAgY29weS5wb2ludCA9IHNlbGYucG9pbnQ7CisgICAgY29weS5saW5rID0gc2VsZi5saW5rOwor
ICAgIGNvcHkuYXR0YWNobWVudCA9IHNlbGYuYXR0YWNobWVudDsKKyAgICBjb3B5LmltYWdlID0g
c2VsZi5pbWFnZTsKKyAgICBjb3B5LnNlbGVjdGVkID0gc2VsZi5zZWxlY3RlZDsKKworICAgIHJl
dHVybiBjb3B5OworfQorCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1lbnRJ
bmZvSW50ZXJuYWwuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODA2Y2U3NjQxZTU4MGE5ZTQ2MzA0Y2FmMWQyZDkx
Zjk3MmZkMTVkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmgKQEAgLTAsMCArMSw0NiBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbXBvcnQgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9u
LmgiCisjaW1wb3J0ICJfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oIgorCisjaWYgV0tfQVBJX0VO
QUJMRUQKKworQGludGVyZmFjZSBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAoKQorCisjaWYgVEFS
R0VUX09TX0lQSE9ORQorKyAoaW5zdGFuY2V0eXBlKWluZm9XaXRoSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb24mKWluZm9ybWF0aW9uOworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24mKWluZm9ybWF0aW9uOworI2VuZGlmCisKK0Bwcm9wZXJ0eSAobm9uYXRvbWlj
KSBDR1BvaW50IHBvaW50OworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc0xpbmspIEJP
T0wgbGluazsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9aXNBdHRhY2htZW50KSBCT09M
IGF0dGFjaG1lbnQ7CitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzSW1hZ2UpIEJPT0wg
aW1hZ2U7CitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzU2VsZWN0ZWQpIEJPT0wgc2Vs
ZWN0ZWQ7CisKK0BlbmQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRleCBlZTIwNWRiMTAzNTJk
NDI1OGVhNzVmZDhiNWIwZDE3MDI5N2EyNzUwLi4zOWU2MWVlMmE4M2Y5MjM4YzVmODA3MjUxNGI2
NzUyYWUxNjgwZDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTM3LDYgKzM3LDcgQEAKICNpbXBvcnQg
IldLRmlsZVVwbG9hZFBhbmVsLmgiCiAjaW1wb3J0ICJXS0Zvcm1QZXJpcGhlcmFsLmgiCiAjaW1w
b3J0ICJXS1N5bnRoZXRpY0NsaWNrVGFwR2VzdHVyZVJlY29nbml6ZXIuaCIKKyNpbXBvcnQgIl9X
S0RyYWdnYWJsZUVsZW1lbnRJbmZvLmgiCiAjaW1wb3J0IDxVSUtpdC9VSVZpZXcuaD4KICNpbXBv
cnQgPFdlYkNvcmUvQ29sb3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvRmxvYXRRdWFkLmg+CkBAIC04
Nyw2ICs4OCw3IEBAIHR5cGVkZWYgdm9pZCAoXlVJV0tTZWxlY3Rpb25XaXRoRGlyZWN0aW9uQ29t
cGxldGlvbkhhbmRsZXIpKEJPT0wgc2VsZWN0aW9uRW5kSXNNCiB0eXBlZGVmIHZvaWQgKF5VSVdL
S2V5V2ViRXZlbnRDb21wbGV0aW9uSGFuZGxlcikoOjpXZWJFdmVudCAqdGhlRXZlbnQsIEJPT0wg
d2FzSGFuZGxlZCk7CiAKIHR5cGVkZWYgQmxvY2tQdHI8dm9pZChXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uKT4gSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkNhbGxiYWNrOwor
dHlwZWRlZiBzdGQ6OnBhaXI8V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCwg
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkNhbGxiYWNrPiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWVzdEFuZENhbGxiYWNrOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMTc0LDcgKzE3Niw5
IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAgV2ViS2l0OjpXS1NlbGVjdGlv
bkRyYXdpbmdJbmZvIF9sYXN0U2VsZWN0aW9uRHJhd2luZ0luZm87CiAKICAgICBzdGQ6Om9wdGlv
bmFsPFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Q+IF9vdXRzdGFuZGluZ1Bv
c2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OwotICAgIFZlY3RvcjxzdGQ6OnBhaXI8V2ViS2l0OjpJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCwgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkNhbGxi
YWNrPj4gX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnM7CisKKyAgICB1aW50NjRf
dCBfcG9zaXRpb25JbmZvcm1hdGlvbkNhbGxiYWNrRGVwdGg7CisgICAgVmVjdG9yPHN0ZDo6b3B0
aW9uYWw8SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3RBbmRDYWxsYmFjaz4+IF9wZW5kaW5n
UG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJLaXQ6OklucHV0Vmlld1VwZGF0ZURlZmVycmVyPiBfaW5wdXRWaWV3VXBkYXRlRGVmZXJyZXI7
CiAKQEAgLTI4Nyw2ICsyOTEsMTAgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIC0g
KHZvaWQpX2FjY2Vzc2liaWxpdHlSZXRyaWV2ZVJlY3RzRW5jbG9zaW5nU2VsZWN0aW9uT2Zmc2V0
OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhHcmFudWxhcml0eTooVUlUZXh0R3JhbnVsYXJpdHkpZ3Jh
bnVsYXJpdHk7CiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0F0U2VsZWN0aW9u
T2Zmc2V0OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQ7CiAKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbiBjdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbjsKKy0gKHZvaWQpZG9BZnRl
clBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6KHZvaWQgKF4pKFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24pKWFjdGlvbiBmb3JSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3Q7CistICh2b2lkKWVuc3VyZVBvc2l0aW9uSW5m
b3JtYXRpb25Jc1VwVG9EYXRlOihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0
KXJlcXVlc3Q7CisKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKIC0gKHZvaWQpX2RpZFBl
cmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uOwogLSAodm9pZClfZGlkSGFu
ZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0OihCT09MKXN0YXJ0ZWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCmluZGV4IDMyNTdiMTU5MDUxNDQ5YjYxYzNlYjEzZGZjYzM1NjRmNWYwYWNjMDEuLjlkZTk3
NDNhNDA5ZTMwNGIwYWUyNGMyODE5N2RjODQ5NTI0OGY3NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC0xMzA2LDYgKzEzMDYsMTEgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0
dXJlUmVjb2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAgICByZXR1cm4g
W3NlbGYgX2FjdGlvbkZvckxvbmdQcmVzc0Zyb21Qb3NpdGlvbkluZm9ybWF0aW9uOl9wb3NpdGlv
bkluZm9ybWF0aW9uXTsKIH0KIAorLSAoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24p
Y3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb24KK3sKKyAgICByZXR1cm4gX3Bvc2l0aW9uSW5mb3Jt
YXRpb247Cit9CisKIC0gKHZvaWQpZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6KHZv
aWQgKF4pKEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKSlhY3Rpb24gZm9yUmVxdWVz
dDooSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QpcmVxdWVzdAogewogICAgIGlmIChbc2Vs
ZiBfY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0XSkg
ewpAQCAtMTMxNCw3ICsxMzE5LDcgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlH
ZXN0dXJlUmVjb2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIF9wZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJz
LmFwcGVuZCh7IHJlcXVlc3QsIGFjdGlvbiB9KTsKKyAgICBfcGVuZGluZ1Bvc2l0aW9uSW5mb3Jt
YXRpb25IYW5kbGVycy5hcHBlbmQoSW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3RBbmRDYWxs
YmFjayhyZXF1ZXN0LCBhY3Rpb24pKTsKIAogICAgIGlmICghW3NlbGYgX2hhc1ZhbGlkT3V0c3Rh
bmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdDpyZXF1ZXN0XSkKICAgICAgICAgW3NlbGYg
cmVxdWVzdEFzeW5jaHJvbm91c1Bvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6cmVxdWVzdF07CkBA
IC0xMzYxLDIwICsxMzY2LDMwIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVQYWlyKFVJR2Vz
dHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29nbml6ZXIgKmIsIFVJCiB7CiAgICAgQVNT
RVJUKF9oYXNWYWxpZFBvc2l0aW9uSW5mb3JtYXRpb24pOwogCi0gICAgVmVjdG9yPHNpemVfdD4g
aW5kaWNlc09mSGFuZGxlZFJlcXVlc3RzOworICAgICsrX3Bvc2l0aW9uSW5mb3JtYXRpb25DYWxs
YmFja0RlcHRoOworICAgIGF1dG8gdXBkYXRlZFBvc2l0aW9uSW5mb3JtYXRpb24gPSBfcG9zaXRp
b25JbmZvcm1hdGlvbjsKKwogICAgIGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBfcGVu
ZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVycy5zaXplKCk7ICsraW5kZXgpIHsKLSAgICAg
ICAgYXV0byYgcmVxdWVzdEFuZEhhbmRsZXIgPSBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25I
YW5kbGVyc1tpbmRleF07Ci0gICAgICAgIGlmICghW3NlbGYgX2N1cnJlbnRQb3NpdGlvbkluZm9y
bWF0aW9uSXNWYWxpZEZvclJlcXVlc3Q6cmVxdWVzdEFuZEhhbmRsZXIuZmlyc3RdKQorICAgICAg
ICBhdXRvIHJlcXVlc3RBbmRIYW5kbGVyID0gX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFu
ZGxlcnNbaW5kZXhdOworICAgICAgICBpZiAoIXJlcXVlc3RBbmRIYW5kbGVyKQogICAgICAgICAg
ICAgY29udGludWU7CiAKLSAgICAgICAgaWYgKHJlcXVlc3RBbmRIYW5kbGVyLnNlY29uZCkKLSAg
ICAgICAgICAgIHJlcXVlc3RBbmRIYW5kbGVyLnNlY29uZChfcG9zaXRpb25JbmZvcm1hdGlvbik7
CisgICAgICAgIGlmICghW3NlbGYgX2N1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uSXNWYWxpZEZv
clJlcXVlc3Q6cmVxdWVzdEFuZEhhbmRsZXItPmZpcnN0XSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgIGlmIChyZXF1ZXN0QW5kSGFuZGxlci0+c2Vjb25kKQorICAgICAgICAgICAg
cmVxdWVzdEFuZEhhbmRsZXItPnNlY29uZCh1cGRhdGVkUG9zaXRpb25JbmZvcm1hdGlvbik7CiAK
LSAgICAgICAgaW5kaWNlc09mSGFuZGxlZFJlcXVlc3RzLmFwcGVuZChpbmRleCk7CisgICAgICAg
IF9wZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzW2luZGV4XSA9IHN0ZDo6bnVsbG9w
dDsKICAgICB9CiAKLSAgICB3aGlsZSAoaW5kaWNlc09mSGFuZGxlZFJlcXVlc3RzLnNpemUoKSkK
LSAgICAgICAgX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnMucmVtb3ZlKGluZGlj
ZXNPZkhhbmRsZWRSZXF1ZXN0cy50YWtlTGFzdCgpKTsKKyAgICBpZiAoLS1fcG9zaXRpb25JbmZv
cm1hdGlvbkNhbGxiYWNrRGVwdGgpCisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoaW50IGlu
ZGV4ID0gX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnMuc2l6ZSgpIC0gMTsgaW5k
ZXggPj0gMDsgLS1pbmRleCkgeworICAgICAgICBpZiAoIV9wZW5kaW5nUG9zaXRpb25JbmZvcm1h
dGlvbkhhbmRsZXJzW2luZGV4XSkKKyAgICAgICAgICAgIF9wZW5kaW5nUG9zaXRpb25JbmZvcm1h
dGlvbkhhbmRsZXJzLnJlbW92ZShpbmRleCk7CisgICAgfQogfQogCiAjaWYgRU5BQkxFKERBVEFf
REVURUNUSU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCmluZGV4IGE1YTVmNDkxNDMwNWFmMjJhODgzNzM0NTVjNTAwMmM4MTVlZDgwZWYu
LjUxMjVlNTNlYzNkN2JmNjYyZDMyY2QyN2ViMTBiZDFkMWY0MzE1ZDQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMTAsNiAr
MjAxMCw5IEBACiAJCUY0MzM3MDk3MUU0RDcyRUQwMDA1MkIwRSAvKiBfV0tUZXN0aW5nRGVsZWdh
dGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzM3
MDk2MUU0RDZBNDQwMDA1MkIwRSAvKiBfV0tUZXN0aW5nRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlGNDRERkVCMjFFOUU3NTJGMDAz
OEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjQ0REZFQjAxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGls
aXRpZXMuaCAqLzsgfTsKIAkJRjQ0REZFQjMxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGls
aXRpZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDRERkVCMTFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5tbSAqLzsgfTsKKwkJ
RjRFOENCOTExRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEU4Q0I4RTFFQTZB
QjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQlGNEU4Q0I5MjFFQTZBQjVCMDBFMzEx
OTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEU4Q0I4RjFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm8ubW0gKi87IH07CisJCUY0RThDQjkzMUVBNkFCNUIwMEUzMTE5OCAv
KiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEU4Q0I5MDFFQTZBQjVCMDBFMzExOTggLyogX1dL
RHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oICovOyB9OwogCQlGNjExM0UyNTEyNkNFMTgy
MDA1N0QwQTcgLyogQVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0UyNDEyNkNFMTgyMDA1N0QwQTcgLyog
QVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggKi87IH07CiAJCUY2MTEzRTI4MTI2Q0UxOUIwMDU3
RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0UyNjEyNkNFMTlCMDA1N0QwQTcgLyogV0tV
c2VyQ29udGVudFVSTFBhdHRlcm4uY3BwICovOyB9OwogCQlGNjExM0UyOTEyNkNFMTlCMDA1N0Qw
QTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY2MTEzRTI3MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJD
b250ZW50VVJMUGF0dGVybi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC00MzQ1LDYgKzQzNDgsOSBAQAogCQlGNDMzNzA5NjFFNEQ2QTQ0MDAwNTJC
MEUgLyogX1dLVGVzdGluZ0RlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IF9XS1Rlc3RpbmdEZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NDRERkVCMDFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXZWJJY29uVXRpbGl0aWVzLmg7IHBhdGggPSBpb3MvV2Vi
SWNvblV0aWxpdGllcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRERkVCMTFF
OUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdlYkljb25VdGlsaXRpZXMubW07IHBhdGggPSBpb3MvV2Vi
SWNvblV0aWxpdGllcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFOENCOEUx
RUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUY0RThDQjhGMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFn
Z2FibGVFbGVtZW50SW5mby5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGNEU4Q0I5MDFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9J
bnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tEcmFnZ2FibGVF
bGVtZW50SW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEz
RTI0MTI2Q0UxODIwMDU3RDBBNyAvKiBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEzRTI2MTI2Q0UxOUIwMDU3RDBBNyAvKiBX
S1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY2MTEzRTI3MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0
dGVybi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJDb250ZW50VVJM
UGF0dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTUyOCw2ICs1NTM0LDkg
QEAKIAkJCQlBMUE0RkU1ODE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQubW0gKi8sCiAJ
CQkJQTFBNEZFNjAxOERENTRBNDAwQjVFQThBIC8qIF9XS0Rvd25sb2FkRGVsZWdhdGUuaCAqLywK
IAkJCQlBMUE0RkU1OTE4RENFOUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWRJbnRlcm5hbC5oICov
LAorCQkJCUY0RThDQjhFMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5m
by5oICovLAorCQkJCUY0RThDQjhGMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVt
ZW50SW5mby5tbSAqLywKKwkJCQlGNEU4Q0I5MDFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dh
YmxlRWxlbWVudEluZm9JbnRlcm5hbC5oICovLAogCQkJCTM3OUE4NzM4MThCQkZFMEYwMDU4OEFG
MiAvKiBfV0tFbGVtZW50QWN0aW9uLmggKi8sCiAJCQkJMzc5QTg3MzcxOEJCRkUwRjAwNTg4QUYy
IC8qIF9XS0VsZW1lbnRBY3Rpb24ubW0gKi8sCiAJCQkJMzc5QTg3M0IxOEJCRkYwNzAwNTg4QUYy
IC8qIF9XS0VsZW1lbnRBY3Rpb25JbnRlcm5hbC5oICovLApAQCAtODA1NCw2ICs4MDYzLDE0IEBA
CiAJCQlwYXRoID0gTmV0d29ya1Byb2Nlc3MvY2FjaGU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OworCQlGNEQ3QkNDQTFFQTQ5NEZBMDBDNDIxRDMgLyogUmVjb3ZlcmVkIFJlZmVy
ZW5jZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUM1
OENERjI4MTg4NzU0OEIwMDg3MTUzNiAvKiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
bi5oICovLAorCQkJKTsKKwkJCW5hbWUgPSAiUmVjb3ZlcmVkIFJlZmVyZW5jZXMiOworCQkJc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJRjYzODk1NUExMzNCRjU3RDAwODk0MUQ1IC8q
IG1hYyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC04MjEx
LDYgKzgyMjgsNyBAQAogCQkJCTdDODlEMjk0MUE2NzEyMkYwMDNBNUZERSAvKiBBUElVc2VyU2Ny
aXB0LmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDg3ODYyNDFCREI1OEZGMDBEMDJBQkIgLyogQVBJ
VXNlclN0eWxlU2hlZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUM1RTFBRkVEMTZCMjEwMTcwMDZD
QzFGMiAvKiBBUElXZWJBcmNoaXZlLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNEU4Q0I5MzFFQTZB
QjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQzVFMUFGRUYxNkIyMTAyOTAwNkNDMUYyIC8qIEFQSVdlYkFyY2hpdmVSZXNv
dXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFFMjg2ODQxQzdGOTM4NjAwNjlBQzRGIC8qIEFQ
SVdlYnNpdGVEYXRhUmVjb3JkLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTM2MzVBQTFBMzE0NEEz
MDBFRDYxOTcgLyogQVBJV2Vic2l0ZURhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04ODgz
LDYgKzg5MDEsNyBAQAogCQkJCTA3QTVFQkJDMUM3QkE0M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFu
ZGxlUmVmLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTRENjY0QzE4QTMwMzBFMDBEODJFMjEgLyog
V0tGcmFtZUluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTJERjlFRUU4MUE3ODI0NTUwMEI2Q0ZC
RSAvKiBXS0ZyYW1lSW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNEU4Q0I5MTFF
QTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBNkZBMjFFMUJEMDQzNUIwMEFBQTY1MCAvKiBXS0ZyYW1lSW5mb1ByaXZhdGUuaCBp
biBIZWFkZXJzICovLAogCQkJCTJEM0E2NUU3MUE3QzNBQTcwMENBQzYzNyAvKiBXS0ZyYW1lSW5m
b1JlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCOUY2QTUxMTIzREQwRDAwQTEzN0UwIC8qIFdL
RnJhbWVQb2xpY3lMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMDUyNCw2ICsxMDU0Myw3
IEBACiAJCQkJOTNBMjUzRUYxQzkyMkU4RTAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0u
bW0gaW4gU291cmNlcyAqLywKIAkJCQk5M0EyNTNGNTFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2
aWV3QWN0aW9uSXRlbUlkZW50aWZpZXJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5NUU2OEMx
QkYyQzM1MjAwRjQ5QkNFIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8s
CisJCQkJRjRFOENCOTIxRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZv
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMEZDQjRFNjcxOEJCRTNEOTAwMEZDRkM5IC8qIFdLUHJp
bnRpbmdWaWV3Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkNCQUFDRUMxNDUyMjVFMzAwNTNGODJG
IC8qIFdLUHJvY2Vzc0dyb3VwLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUExNTg0MTkxODkwNDRG
NTAwMTc2MTZDIC8qIFdLUHJvY2Vzc1Bvb2wubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBh
L1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5MWFiMjgwMjRiOTlmN2Mz
YmViMWZmMTRmZmU1ZDdmYjQxNTk0MmE3Li4zZWU3M2Y5MDUwODQ1YWQ1YmIzOGVlMzhlYmZkNGJh
YWE0YmY2ZTI2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTctMDQtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gLVtXS0NvbnRlbnRWaWV3IGRvQWZ0ZXJQ
b3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOmF0UG9zaXRpb246XSBzaG91bGQgYmUgcm9idXN0IGFn
YWluc3Qgc3luY2hyb25vdXMgcmVlbnRyYW5jeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcwOTIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTYz
NDk5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRzIHRocmVlIG5ldyB1bml0IHRlc3RzIGZvciByZXRyaWV2aW5nIGludGVyYWN0aW9uIGluZm9y
bWF0aW9uIGF0IGEgZ2l2ZW4gcG9zaXRpb24gaW4gdGhlIFVJIHByb2Nlc3MuIFNlZQorICAgICAg
ICBXZWJLaXQyIENoYW5nZUxvZyBmb3IgbW9yZSBkZXRhaWxzLgorCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tOiBB
ZGRlZC4KKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmV4cGVjdENHUG9pbnRzVG9CZUVxdWFsKToK
KyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDE3LTA0LTE4ICBKb2huIFdpbGFu
ZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2UgV2ViQ29yZTo6dG9wUHJp
dmF0ZWx5Q29udHJvbGxlZERvbWFpbigpIHJldHVybiAibG9jYWxob3N0IiBmb3IgbG9jYWxob3N0
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDUzZDA0NWQ5NGVjNDFkN2UyYmE1NDMzOGYzNDVi
NzdhZDQxMDIxMmMuLjFlNTFmNmY2Y2ZiZWRlZTIxNGE0NTlkODYyM2I3ZGM2ODMxYmM3OTQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01OTYsNiArNTk2LDcgQEAKIAkJRjRDMkFCMjIxREQ2
RDk1RTAwRTA2RDVCIC8qIGVub3Jtb3VzLXZpZGVvLXdpdGgtc291bmQuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEMyQUIyMTFERDZE
OTQxMDBFMDZENUIgLyogZW5vcm1vdXMtdmlkZW8td2l0aC1zb3VuZC5odG1sICovOyB9OwogCQlG
NEQ0RjNCNjFFNEUyQkNCMDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENEYzQjQxRTRF
MkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbSAqLzsgfTsKIAkJRjRE
NEYzQjkxRTRFMzZFNDAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblRlc3RzLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENEYzQjcxRTRFMzZFNDAw
QkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblRlc3RzLm1tICovOyB9OworCQlGNEQ3QkNEODFFQTU3
ODk4MDBDNDIxRDMgLyogUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjREN0JDRDYxRUE1NzRERDAwQzQyMUQz
IC8qIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbSAqLzsgfTsKIAkJRjRERUY2RUQxRTlCNERC
NjAwNDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRERUY2RUMxRTlCNEQ5NTAw
NDhFRjYxIC8qIGltYWdlLWluLWxpbmstYW5kLWlucHV0Lmh0bWwgKi87IH07CiAJCUY0RjEzNzky
MUQ5QjY4M0UwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGMTM3
OTExRDlCNjgzMjAwMkJFQzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRtbCAq
LzsgfTsKIAkJRjRGNDA1QkMxRDRDMEQxQzAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWlu
Zy12aWRlby13aXRoLWF1ZGlvLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjRGNDA1QkExRDRDMENGODAwN0E5NzA3IC8qIGZ1bGwtc2l6
ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi87IH07CkBAIC0xNDc5LDYgKzE0
ODAsNyBAQAogCQlGNEQ0RjNCNDFFNEUyQkNCMDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9uU2lt
dWxhdG9yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRGF0YUlu
dGVyYWN0aW9uU2ltdWxhdG9yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ0
RjNCNTFFNEUyQkNCMDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyog
RGF0YUludGVyYWN0aW9uVGVzdHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7
IHBhdGggPSBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjREN0JDRDYxRUE1NzRERDAwQzQyMUQzIC8qIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0
cy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRERUY2RUMxRTlCNEQ5NTAwNDhFRjYxIC8q
IGltYWdlLWluLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGgg
PSAiaW1hZ2UtaW4tbGluay1hbmQtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0RjEzNzkxMUQ5QjY4MzIwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1w
bGF5aW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAibGFyZ2UtdmlkZW8tdGVz
dC1ub3ctcGxheWluZy5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGNDA1
QkExRDRDMENGODAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1
ZGlvLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZnVsbC1zaXplLWF1dG9wbGF5
aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xODA4LDYgKzE4MTAsNyBAQAogCQkJCUExQzRGQjZGMUJBQ0NFRkEwMDM3NDJEMCAvKiBSZXNv
dXJjZXMgKi8sCiAJCQkJRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlv
blRlc3RzLm1tICovLAogCQkJCTc1NjA5MTc3MTkyNTlDNTkwMDlFRjA2RSAvKiBNZW1vcnlDYWNo
ZUFkZEltYWdlVG9DYWNoZUlPUy5tbSAqLywKKwkJCQlGNEQ3QkNENjFFQTU3NEREMDBDNDIxRDMg
LyogUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tICovLAogCQkJKTsKIAkJCXBhdGggPSBpb3M7
CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjkxMCw2ICsyOTEzLDcgQEAKIAkJCQk3
QzgzRTA1MzFEMEE2NDNBMDBGRUJDRjMgLyogUGVuZGluZ0FQSVJlcXVlc3RVUkwuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJN0NDRTdFQUYxQTQxMUEzODAwNDQ3QzRDIC8qIFBsYXRmb3JtVXRpbGl0
aWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTBGMTM5RTc4MUE0MjNBNkIwMEY1OTBGNSAvKiBQ
bGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjREN0JDRDgxRUE1
Nzg5ODAwQzQyMUQzIC8qIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RUE2MUE0MTFBMEYwMDQ0N0M0QyAvKiBQbGF0Zm9ybVV0aWxpdGllc01hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUE3MUE0MTFBMTMwMDQ0N0M0QyAvKiBQbGF0Zm9y
bVdlYlZpZXdNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0YyNjFBNDExQUY2MDA0NDdD
NEMgLyogUHJlZmVyZW5jZXMubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Bvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbSBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Bvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5mNjlhNWVmN2YyNjlmYTdmMWVhMTc0Nzc5ZmNlNjE0ZmUxNGU1Mjk0Ci0tLSAvZGV2
L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvUG9zaXRpb25JbmZvcm1h
dGlvblRlc3RzLm1tCkBAIC0wLDAgKzEsOTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisKKyNpZiBQTEFURk9STShJT1MpICYmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQg
IlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L19XS0RyYWdnYWJs
ZUVsZW1lbnRJbmZvLmg+CisKK25hbWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworc3RhdGljIHZv
aWQgZXhwZWN0Q0dQb2ludHNUb0JlRXF1YWwoY29uc3QgQ0dQb2ludCYgZmlyc3QsIGNvbnN0IENH
UG9pbnQmIHNlY29uZCkKK3sKKyAgICBFWFBFQ1RfRVEoZmlyc3QueCwgc2Vjb25kLngpOworICAg
IEVYUEVDVF9FUShmaXJzdC55LCBzZWNvbmQueSk7Cit9CisKK1RFU1QoUG9zaXRpb25JbmZvcm1h
dGlvblRlc3RzLCBGaW5kRHJhZ2dhYmxlTGlua0F0UG9zaXRpb24pCit7CisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0
TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRl
c3RQYWdlTmFtZWQ6QCJsaW5rLWFuZC1pbnB1dCJdOworCisgICAgX1dLRHJhZ2dhYmxlRWxlbWVu
dEluZm8gKmluZm9ybWF0aW9uID0gW3dlYlZpZXcgZHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246
Q0dQb2ludE1ha2UoMTAwLCA1MCldOworCisgICAgRVhQRUNUX1RSVUUoW2luZm9ybWF0aW9uIGlz
TGlua10pOworICAgIGV4cGVjdENHUG9pbnRzVG9CZUVxdWFsKFtpbmZvcm1hdGlvbiBwb2ludF0s
IHsgMTAwLCA1MCB9KTsKK30KKworVEVTVChQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMsIFJlcXVl
c3REcmFnZ2FibGVMaW5rQXRQb3NpdGlvbikKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMy
MCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpA
ImxpbmstYW5kLWlucHV0Il07CisKKyAgICBfX2Jsb2NrIGJvb2wgaXNEb25lID0gZmFsc2U7Cisg
ICAgX19ibG9jayBSZXRhaW5QdHI8X1dLRHJhZ2dhYmxlRWxlbWVudEluZm8+IHBvc2l0aW9uSW5m
b3JtYXRpb247CisgICAgW3dlYlZpZXcgcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9u
OkNHUG9pbnRNYWtlKDEwMCwgNTApIGNvbXBsZXRpb25CbG9jazpeKF9XS0RyYWdnYWJsZUVsZW1l
bnRJbmZvICppbmZvcm1hdGlvbikgeworICAgICAgICBwb3NpdGlvbkluZm9ybWF0aW9uID0gaW5m
b3JtYXRpb247CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7CisKKyAgICBFWFBFQ1RfVFJVRShbcG9zaXRpb25J
bmZvcm1hdGlvbiBpc0xpbmtdKTsKKyAgICBleHBlY3RDR1BvaW50c1RvQmVFcXVhbChbcG9zaXRp
b25JbmZvcm1hdGlvbiBwb2ludF0sIHsgMTAwLCA1MCB9KTsKK30KKworVEVTVChQb3NpdGlvbklu
Zm9ybWF0aW9uVGVzdHMsIEZpbmREcmFnZ2FibGVMaW5rQXRQb3NpdGlvbldpdGhpblJlcXVlc3RC
bG9jaykKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxv
Y10gaW5pdFdpdGhGcmFtZTpDR1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlMb2FkVGVzdFBhZ2VOYW1lZDpAImxpbmstYW5kLWlucHV0Il07CisK
KyAgICBfX2Jsb2NrIGJvb2wgaXNEb25lID0gZmFsc2U7CisgICAgX19ibG9jayBSZXRhaW5QdHI8
X1dLRHJhZ2dhYmxlRWxlbWVudEluZm8+IHBvc2l0aW9uSW5mb3JtYXRpb247CisgICAgW3dlYlZp
ZXcgcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTAp
IGNvbXBsZXRpb25CbG9jazpeKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICppbmZvcm1hdGlvbikg
eworICAgICAgICBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqc3luY2hyb25vdXNJbmZvcm1hdGlv
biA9IFt3ZWJWaWV3IGRyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwg
MzAwKV07CisgICAgICAgIEVYUEVDVF9GQUxTRShzeW5jaHJvbm91c0luZm9ybWF0aW9uLmxpbmsp
OworICAgICAgICBleHBlY3RDR1BvaW50c1RvQmVFcXVhbChzeW5jaHJvbm91c0luZm9ybWF0aW9u
LnBvaW50LCB7IDEwMCwgMzAwIH0pOworCisgICAgICAgIHBvc2l0aW9uSW5mb3JtYXRpb24gPSBp
bmZvcm1hdGlvbjsKKyAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RX
ZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKKworICAgIEVYUEVDVF9UUlVFKFtwb3NpdGlv
bkluZm9ybWF0aW9uIGlzTGlua10pOworICAgIGV4cGVjdENHUG9pbnRzVG9CZUVxdWFsKFtwb3Np
dGlvbkluZm9ybWF0aW9uIHBvaW50XSwgeyAxMDAsIDUwIH0pOworfQorCit9IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307480</attachid>
            <date>2017-04-19 08:51:41 -0700</date>
            <delta_ts>2017-04-20 11:14:44 -0700</delta_ts>
            <desc>Test additional edge cases</desc>
            <filename>bug-170922-20170419085139.patch</filename>
            <type>text/plain</type>
            <size>38549</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NTAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTUyZTY5YjU3MjRmODUz
OThkNTgzYWIxNjY5ZjlhNDVlYjJiNzI0NS4uNTBkMjY3ZDk2YWM0ZTRkMzJkZGUyNGM4MWI0MDMx
NjkxODAzYjExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY0IEBACiAyMDE3LTA0LTE4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFtXSzJdIC1bV0tD
b250ZW50VmlldyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTphdFBvc2l0aW9uOl0g
c2hvdWxkIGJlIHJvYnVzdCBhZ2FpbnN0IHN5bmNocm9ub3VzIHJlZW50cmFuY3kKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDkyMgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzE2MzQ5OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JzIHBhcnQgb2YgdGhlIGFzeW5jaHJvbm91cyBwb3Np
dGlvbiBpbmZvcm1hdGlvbiBtZWNoYW5pc20gaW50cm9kdWNlZCBpbgorICAgICAgICA8aHR0cHM6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzIxNTE3MT4sIGFuZCBpbnRyb2R1Y2VzIGluZnJh
c3RydWN0dXJlIGZvciB1bml0IHRlc3RpbmcgVUktc2lkZSBwb3NpdGlvbgorICAgICAgICBpbmZv
cm1hdGlvbiByZXF1ZXN0cy4KKworICAgICAgICBfaW52b2tlQW5kUmVtb3ZlUGVuZGluZ0hhbmRs
ZXJzVmFsaWRGb3JDdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbiBpcyBhIGhlbHBlciBtZXRob2Qg
b24gV0tDb250ZW50VmlldworICAgICAgICByZXNwb25zaWJsZSBmb3IgaW52b2tpbmcgcXVldWVk
IHBvc2l0aW9uIGluZm9ybWF0aW9uIGhhbmRsZXJzIGFmdGVyIHJlY2VpdmluZyBhIHBvc2l0aW9u
IGluZm9ybWF0aW9uIHJlc3BvbnNlCisgICAgICAgIGZyb20gdGhlIHdlYiBwcm9jZXNzLiBQcmV2
aW91c2x5LCB0aGlzIG1ldGhvZCB3b3VsZCBpdGVyYXRlIG92ZXIgdGhlIGxpc3Qgb2YgcGVuZGlu
ZyBjYWxsYmFja3MgYW5kIGludm9rZSBhbGwKKyAgICAgICAgY2FsbGJhY2tzIHdob3NlIHJlcXVl
c3RzIGFyZSBzYXRpc2ZpZWQgYnkgdGhlIGluY29taW5nIHBvc2l0aW9uIGluZm9ybWF0aW9uIHVw
ZGF0ZSwgc2F2aW5nIHRoZSBpbmRpY2VzIG9mIHRoZXNlCisgICAgICAgIGhhbmRsZWQgY2FsbGJh
Y2tzIGluIHRoZSBwcm9jZXNzLiBBdCB0aGUgZW5kLCBpdCB3b3VsZCB0aGVuIHJlbW92ZSBjYWxs
YmFja3MgYXQgdGhlc2UgaW5kaWNlcyBmcm9tIHRoZSBhcnJheSBvZgorICAgICAgICBwZW5kaW5n
IGNhbGxiYWNrcy4gVGhpcyBpcyBwcm9ibGVtYXRpYyB3aGVuIGEgc3luY2hyb25vdXMgcG9zaXRp
b24gdXBkYXRlICh2aWEKKyAgICAgICAgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0Rh
dGU6KSBpcyB0cmlnZ2VyZWQgZnJvbSB3aXRoaW4gb25lIG9mIHRoZXNlIGNhbGxiYWNrcywgc2lu
Y2UKKyAgICAgICAgX2ludm9rZUFuZFJlbW92ZVBlbmRpbmdIYW5kbGVyc1ZhbGlkRm9yQ3VycmVu
dFBvc2l0aW9uSW5mb3JtYXRpb24gd2lsbCBiZSBjYWxsZWQgZnJvbSB3aXRoaW4gaXRzZWxmLCBh
bmQgdGhlbiB3ZQorICAgICAgICB3aWxsIGF0dGVtcHQgdG8gcmVtb3ZlIGEgY2FsbGJhY2sgYXQg
dGhlIHNhbWUgaW5kZXggdHdpY2UuCisKKyAgICAgICAgVG8gZml4IHRoaXMsIHdlIGNoYW5nZSB0
aGUgYXJyYXkgb2YgcGVuZGluZyBwb3NpdGlvbiBpbmZvcm1hdGlvbiBoYW5kbGVycyB0byBiZSBh
biBhcnJheSBvZiBvcHRpb25hbHMgaW5zdGVhZC4KKyAgICAgICAgV2hlbiBpbnZva2luZyBhbmQg
cmVtb3ZpbmcgcGVuZGluZyBoYW5kbGVycyBhZnRlciBhIHBvc2l0aW9uIGluZm9ybWF0aW9uIHJl
c3BvbnNlIGFycml2ZXMsIHdlIG5vdyBtYXJrIGNhbGxiYWNrcworICAgICAgICBhcyBoYW5kbGVk
IGJ5IHNldHRpbmcgdGhlbSB0byBzdGQ6Om51bGxvcHQuIFRoZW4sIHdoZW4gdGhlIHRvcC1sZXZl
bCBpbnZvY2F0aW9uIHRvCisgICAgICAgIF9pbnZva2VBbmRSZW1vdmVQZW5kaW5nSGFuZGxlcnNW
YWxpZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uIGlzIGZpbmlzaGVkLCB3ZSByZW1vdmUg
YWxsIG1hcmtlZCBoYW5kbGVycworICAgICAgICBmcm9tIHRoZSBwZW5kaW5nIHZlY3Rvci4KKwor
ICAgICAgICBDb3ZlcmVkIGJ5IDYgbmV3IHVuaXQgdGVzdHM6CisgICAgICAgIC0gUG9zaXRpb25J
bmZvcm1hdGlvblRlc3RzLkZpbmREcmFnZ2FibGVMaW5rQXRQb3NpdGlvbgorICAgICAgICAtIFBv
c2l0aW9uSW5mb3JtYXRpb25UZXN0cy5SZXF1ZXN0RHJhZ2dhYmxlTGlua0F0UG9zaXRpb24KKyAg
ICAgICAgLSBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMuRmluZERyYWdnYWJsZUxpbmtBdERpZmZl
cmVudFBvc2l0aW9uV2l0aGluUmVxdWVzdEJsb2NrCisgICAgICAgIC0gUG9zaXRpb25JbmZvcm1h
dGlvblRlc3RzLkZpbmREcmFnZ2FibGVMaW5rQXRTYW1lUG9zaXRpb25XaXRoaW5SZXF1ZXN0Qmxv
Y2sKKyAgICAgICAgLSBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMuUmVxdWVzdERyYWdnYWJsZUxp
bmtBdFNhbWVQb3NpdGlvbldpdGhpblJlcXVlc3RCbG9jaworICAgICAgICAtIFBvc2l0aW9uSW5m
b3JtYXRpb25UZXN0cy5SZXF1ZXN0RHJhZ2dhYmxlTGlua0F0RGlmZmVyZW50UG9zaXRpb25XaXRo
aW5SZXF1ZXN0QmxvY2sKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgZHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyByZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246
Y29tcGxldGlvbkJsb2NrOl0pOgorCisgICAgICAgIFVzZXMgV0tDb250ZW50VmlldydzIHBvc2l0
aW9uIGluZm9ybWF0aW9uIHJlcXVlc3QgaGVscGVycyB0byBzZWFyY2ggZm9yIGRyYWdnYWJsZSBl
bGVtZW50cyBvbiB0aGUgcGFnZS4gVGhlcmUKKyAgICAgICAgYXJlIGJvdGggc3luY2hyb25vdXMg
YW5kIGFzeW5jaHJvbm91cyB2ZXJzaW9ucyBvZiB0aGlzLCBib3RoIG9mIHdoaWNoIHJldHJpZXZl
IGEgX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19X
S0RyYWdnYWJsZUVsZW1lbnRJbmZvLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW06IEFkZGVkLgorCisgICAgICAgIEV4cG9z
ZXMgd2hhdCBlbGVtZW50cyBhcmUgZHJhZ2dhYmxlIGF0IGEgZ2l2ZW4gcG9zaXRpb24gYXMgU1BJ
IChvbmx5IGZvciB1c2UgaW4gdGVzdGluZyBjb2RlLCBhdCB0aGUgbW9tZW50KS4KKworICAgICAg
ICAoLVtfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyBpbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uOl0pOgorICAgICAgICAoLVtfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyBjb3B5
V2l0aFpvbmU6XSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEcmFnZ2FibGVF
bGVtZW50SW5mb0ludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgY3VycmVudFBv
c2l0aW9uSW5mb3JtYXRpb25dKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBkb0FmdGVyUG9z
aXRpb25JbmZvcm1hdGlvblVwZGF0ZTpmb3JSZXF1ZXN0Ol0pOgorICAgICAgICAoLVtXS0NvbnRl
bnRWaWV3IF9pbnZva2VBbmRSZW1vdmVQZW5kaW5nSGFuZGxlcnNWYWxpZEZvckN1cnJlbnRQb3Np
dGlvbkluZm9ybWF0aW9uXSk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorCisyMDE3LTA0LTE4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCiAgICAgICAgIFtXSzJdIEFkZCBpbmZyYXN0cnVjdHVyZSBhbmQgdW5pdCB0ZXN0cyBm
b3IgZmlsZSB1cGxvYWRzIHVzaW5nIGRhdGEgaW50ZXJhY3Rpb24KICAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDkwMwogICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzEzMTQ2ODk+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCmluZGV4IDI3MGFmZGY3MjRhZWNiNGJkMzI4MThkMzAzOTMwZjE3ZDIwYTE5
MWUuLmU5ZTUyNTk2MGZiZjRhNzgyYmVjZTJhZWM5NTM0YzE5ZTAxNjk1MDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0zNiw2ICsz
Niw4IEBACiAjaW1wb3J0ICJGaW5kQ2xpZW50LmgiCiAjaW1wb3J0ICJGdWxsc2NyZWVuQ2xpZW50
LmgiCiAjaW1wb3J0ICJJY29uTG9hZGluZ0RlbGVnYXRlLmgiCisjaW1wb3J0ICJJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgorI2ltcG9ydCAiSW50ZXJhY3Rpb25JbmZvcm1hdGlv
blJlcXVlc3QuaCIKICNpbXBvcnQgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIgogI2ltcG9y
dCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTmF2aWdhdGlvblN0YXRlLmgiCkBAIC04Myw2ICs4NSw3
IEBACiAjaW1wb3J0ICJXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EuaCIKICNpbXBvcnQgIldlYlZp
ZXdJbXBsLmgiCiAjaW1wb3J0ICJfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgiCisjaW1w
b3J0ICJfV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tGaW5k
RGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQg
Il9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oIgpAQCAtNTA4OCw2ICs1MDkxLDE4IEBAIHN0YXRpYyBX
ZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlckludGVyZmFjZUxheW91
dERpcmVjdGlvbihVSVNlCiB9CiAKICNpZiBQTEFURk9STShJT1MpCistIChfV0tEcmFnZ2FibGVF
bGVtZW50SW5mbyAqKWRyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBvc2l0aW9u
Cit7CisgICAgW19jb250ZW50VmlldyBlbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0
ZTpXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KFdlYkNvcmU6OnJvdW5kZWRJ
bnRQb2ludChwb3NpdGlvbikpXTsKKyAgICByZXR1cm4gW19XS0RyYWdnYWJsZUVsZW1lbnRJbmZv
IGluZm9XaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246W19jb250ZW50VmlldyBj
dXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl1dOworfQorCistICh2b2lkKXJlcXVlc3REcmFnZ2Fi
bGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbiBjb21wbGV0aW9uQmxvY2s6KHZv
aWQgKF4pKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICopKWJsb2NrCit7CisgICAgW19jb250ZW50
VmlldyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpbY2FwdHVyZWRCbG9jayA9IG1h
a2VCbG9ja1B0cihibG9jayldIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uIGluZm9ybWF0aW9uKSB7CisgICAgICAgIGNhcHR1cmVkQmxvY2soW19XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvIGluZm9XaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246aW5mb3Jt
YXRpb25dKTsKKyAgICB9IGZvclJlcXVlc3Q6V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9u
UmVxdWVzdChXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQocG9zaXRpb24pKV07Cit9CiAKIC0gKENH
UmVjdClfY29udGVudFZpc2libGVSZWN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDMwODRkODY4N2NhNDU3
OTMxOWJkNTczMzI4NmY4ZTA0YTUxODcwOWMuLmNiODJjNDY3YTUwMWQyODg5NjJkZmQxNDRhZWJl
OGQyYjc5YmJmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC02Nyw2ICs2Nyw3IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKICNlbmRpZgogCiBAY2xhc3Mg
V0tCcm93c2luZ0NvbnRleHRIYW5kbGU7CitAY2xhc3MgX1dLRHJhZ2dhYmxlRWxlbWVudEluZm87
CiBAY2xhc3MgX1dLRnJhbWVIYW5kbGU7CiBAY2xhc3MgX1dLSGl0VGVzdFJlc3VsdDsKIEBjbGFz
cyBfV0tJY29uTG9hZGluZ0RlbGVnYXRlOwpAQCAtMzM2LDYgKzMzNyw5IEBAIHR5cGVkZWYgTlNf
RU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIC0gKE5TQXJyYXkgKilf
c2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9uOihpZClzZXNzaW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9z
KFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlUHJlcGFyZUZvckRhdGFJbnRlcmFjdGlv
blNlc3Npb246KGlkKXNlc3Npb24gY29tcGxldGlvbjooZGlzcGF0Y2hfYmxvY2tfdCljb21wbGV0
aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAorLSAoX1dLRHJhZ2dhYmxl
RWxlbWVudEluZm8gKilkcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlv
bjsKKy0gKHZvaWQpcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihDR1BvaW50KXBv
c2l0aW9uIGNvbXBsZXRpb25CbG9jazoodm9pZCAoXikoX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8g
KikpYmxvY2s7CisKICNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCiAKICNpZiAhVEFSR0VUX09T
X0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tEcmFnZ2FibGVFbGVtZW50SW5mby5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwMGQ1YTNkZDkwM2Q2
YmYzMDA0MTBlZGI5YjMwZWQyZGM3Nzk0NWQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmgKQEAgLTAs
MCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4K
KworI2lmIFdLX0FQSV9FTkFCTEVECisKK05TX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK1dLX0NM
QVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpCitAaW50ZXJmYWNlIF9XS0Ry
YWdnYWJsZUVsZW1lbnRJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KKworQHByb3BlcnR5IChu
b25hdG9taWMsIHJlYWRvbmx5KSBDR1BvaW50IHBvaW50OworCitAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIGdldHRlcj1pc0xpbmspIEJPT0wgbGluazsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCByZWFkb25seSwgZ2V0dGVyPWlzQXR0YWNobWVudCkgQk9PTCBhdHRhY2htZW50OworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNJbWFnZSkgQk9PTCBpbWFnZTsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2VsZWN0ZWQpIEJPT0wg
c2VsZWN0ZWQ7CisKK0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExfRU5ECisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEcmFnZ2FibGVF
bGVtZW50SW5mby5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm8ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTBmZjkyMTA3YmU2MWMxYmE5Y2JiYmEw
OTUwNDliMmQ3NjJiZjQ4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW0KQEAgLTAsMCArMSw3MyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJfV0tEcmFnZ2Fi
bGVFbGVtZW50SW5mb0ludGVybmFsLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCitAaW1wbGVt
ZW50YXRpb24gX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8KKworI2lmIFBMQVRGT1JNKElPUykKKwor
KyAoaW5zdGFuY2V0eXBlKWluZm9XaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246
KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0
aW9uCit7CisgICAgcmV0dXJuIFtbW3NlbGYgYWxsb2NdIGluaXRXaXRoSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb246aW5mb3JtYXRpb25dIGF1dG9yZWxlYXNlXTsKK30KKworLSAoaW5z
dGFuY2V0eXBlKWluaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246KGNvbnN0
IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9uCit7
CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJldHVybiBuaWw7CisK
KyAgICBfcG9pbnQgPSBpbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50OworICAgIF9saW5rID0gaW5m
b3JtYXRpb24uaXNMaW5rOworICAgIF9hdHRhY2htZW50ID0gaW5mb3JtYXRpb24uaXNBdHRhY2ht
ZW50OworICAgIF9pbWFnZSA9IGluZm9ybWF0aW9uLmlzSW1hZ2U7CisjaWYgRU5BQkxFKERBVEFf
SU5URVJBQ1RJT04pCisgICAgX3NlbGVjdGVkID0gaW5mb3JtYXRpb24uaGFzU2VsZWN0aW9uQXRQ
b3NpdGlvbjsKKyNlbmRpZgorCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKyNlbmRpZgorCistIChp
bnN0YW5jZXR5cGUpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCit7CisgICAgX1dLRHJhZ2dh
YmxlRWxlbWVudEluZm8gKmNvcHkgPSBbW19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvIGFsbG9jXSBp
bml0XTsKKworICAgIGNvcHkucG9pbnQgPSBzZWxmLnBvaW50OworICAgIGNvcHkubGluayA9IHNl
bGYubGluazsKKyAgICBjb3B5LmF0dGFjaG1lbnQgPSBzZWxmLmF0dGFjaG1lbnQ7CisgICAgY29w
eS5pbWFnZSA9IHNlbGYuaW1hZ2U7CisgICAgY29weS5zZWxlY3RlZCA9IHNlbGYuc2VsZWN0ZWQ7
CisKKyAgICByZXR1cm4gY29weTsKK30KKworQGVuZAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9J
bnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tEcmFnZ2Fi
bGVFbGVtZW50SW5mb0ludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgwNmNlNzY0MWU1ODBhOWU0NjMw
NGNhZjFkMmQ5MWY5NzJmZDE1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oCkBAIC0w
LDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbi5oIgorI2ltcG9ydCAiX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8uaCIKKworI2lm
IFdLX0FQSV9FTkFCTEVECisKK0BpbnRlcmZhY2UgX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKCkK
KworI2lmIFRBUkdFVF9PU19JUEhPTkUKKysgKGluc3RhbmNldHlwZSlpbmZvV2l0aEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aElu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKKyNlbmRpZgorCitAcHJvcGVydHkg
KG5vbmF0b21pYykgQ0dQb2ludCBwb2ludDsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBnZXR0ZXI9
aXNMaW5rKSBCT09MIGxpbms7CitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0dGVyPWlzQXR0YWNo
bWVudCkgQk9PTCBhdHRhY2htZW50OworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc0lt
YWdlKSBCT09MIGltYWdlOworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRlcj1pc1NlbGVjdGVk
KSBCT09MIHNlbGVjdGVkOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKaW5kZXggOWYz
YWRkOTdiYjNjNWZlOWZiOGMzMTcxNDdmNWQyNmJhYWFlZDM1Zi4uODYzMzJmYzYyNDVjMjI0NmQ3
N2I2ZDFmYTgwYzhmOThiMmJkNDYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW1wb3J0ICJXS0ZpbGVVcGxvYWRQYW5lbC5oIgogI2ltcG9ydCAiV0tGb3JtUGVyaXBoZXJh
bC5oIgogI2ltcG9ydCAiV0tTeW50aGV0aWNDbGlja1RhcEdlc3R1cmVSZWNvZ25pemVyLmgiCisj
aW1wb3J0ICJfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oIgogI2ltcG9ydCA8VUlLaXQvVUlWaWV3
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UXVh
ZC5oPgpAQCAtODcsNiArODgsNyBAQCB0eXBlZGVmIHZvaWQgKF5VSVdLU2VsZWN0aW9uV2l0aERp
cmVjdGlvbkNvbXBsZXRpb25IYW5kbGVyKShCT09MIHNlbGVjdGlvbkVuZElzTQogdHlwZWRlZiB2
b2lkICheVUlXS0tleVdlYkV2ZW50Q29tcGxldGlvbkhhbmRsZXIpKDo6V2ViRXZlbnQgKnRoZUV2
ZW50LCBCT09MIHdhc0hhbmRsZWQpOwogCiB0eXBlZGVmIEJsb2NrUHRyPHZvaWQoV2ViS2l0OjpJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbik+IEludGVyYWN0aW9uSW5mb3JtYXRpb25D
YWxsYmFjazsKK3R5cGVkZWYgc3RkOjpwYWlyPFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlv
blJlcXVlc3QsIEludGVyYWN0aW9uSW5mb3JtYXRpb25DYWxsYmFjaz4gSW50ZXJhY3Rpb25JbmZv
cm1hdGlvblJlcXVlc3RBbmRDYWxsYmFjazsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAgLTE3
NCw3ICsxNzYsOSBAQCBzdHJ1Y3QgV0tBdXRvQ29ycmVjdGlvbkRhdGEgewogICAgIFdlYktpdDo6
V0tTZWxlY3Rpb25EcmF3aW5nSW5mbyBfbGFzdFNlbGVjdGlvbkRyYXdpbmdJbmZvOwogCiAgICAg
c3RkOjpvcHRpb25hbDxXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0PiBfb3V0
c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uUmVxdWVzdDsKLSAgICBWZWN0b3I8c3RkOjpwYWly
PFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3QsIEludGVyYWN0aW9uSW5mb3Jt
YXRpb25DYWxsYmFjaz4+IF9wZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzOworCisg
ICAgdWludDY0X3QgX3Bvc2l0aW9uSW5mb3JtYXRpb25DYWxsYmFja0RlcHRoOworICAgIFZlY3Rv
cjxzdGQ6Om9wdGlvbmFsPEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0QW5kQ2FsbGJhY2s+
PiBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVyczsKICAgICAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViS2l0OjpJbnB1dFZpZXdVcGRhdGVEZWZlcnJlcj4gX2lucHV0Vmlld1VwZGF0
ZURlZmVycmVyOwogCkBAIC0yODcsNiArMjkxLDEwIEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9u
RGF0YSB7CiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0VuY2xvc2luZ1NlbGVj
dGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3aXRoR3JhbnVsYXJpdHk6KFVJVGV4dEdyYW51
bGFyaXR5KWdyYW51bGFyaXR5OwogLSAodm9pZClfYWNjZXNzaWJpbGl0eVJldHJpZXZlUmVjdHNB
dFNlbGVjdGlvbk9mZnNldDooTlNJbnRlZ2VyKW9mZnNldCB3aXRoVGV4dDooTlNTdHJpbmcgKil0
ZXh0OwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFdlYktpdDo6SW50ZXJhY3Rp
b25JbmZvcm1hdGlvbkF0UG9zaXRpb24gY3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb247CistICh2
b2lkKWRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOih2b2lkICheKShXZWJLaXQ6Oklu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uKSlhY3Rpb24gZm9yUmVxdWVzdDooV2ViS2l0
OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdClyZXF1ZXN0OworLSAodm9pZCllbnN1cmVQ
b3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTooV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uUmVxdWVzdClyZXF1ZXN0OworCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAtICh2
b2lkKV9kaWRQZXJmb3JtRGF0YUludGVyYWN0aW9uQ29udHJvbGxlck9wZXJhdGlvbjsKIC0gKHZv
aWQpX2RpZEhhbmRsZVN0YXJ0RGF0YUludGVyYWN0aW9uUmVxdWVzdDooQk9PTClzdGFydGVkOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbQppbmRleCAzMjU3YjE1OTA1MTQ0OWI2MWMzZWIxM2RmY2MzNTY0ZjVmMGFj
YzAxLi43NzA0NzA5NTQxZDA1OGYzZjZmNDQ0OGQyMTAwZThhMTNiMWQ2NzkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQpAQCAtMTMwNiw2ICsxMzA2LDExIEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVQ
YWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29nbml6ZXIgKmIsIFVJCiAg
ICAgcmV0dXJuIFtzZWxmIF9hY3Rpb25Gb3JMb25nUHJlc3NGcm9tUG9zaXRpb25JbmZvcm1hdGlv
bjpfcG9zaXRpb25JbmZvcm1hdGlvbl07CiB9CiAKKy0gKEludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uKWN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uCit7CisgICAgcmV0dXJuIF9wb3Np
dGlvbkluZm9ybWF0aW9uOworfQorCiAtICh2b2lkKWRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9u
VXBkYXRlOih2b2lkICheKShJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbikpYWN0aW9u
IGZvclJlcXVlc3Q6KEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3QKIHsKICAg
ICBpZiAoW3NlbGYgX2N1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uSXNWYWxpZEZvclJlcXVlc3Q6
cmVxdWVzdF0pIHsKQEAgLTEzMTQsNyArMTMxOSw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBpc1Nh
bWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJR2VzdHVyZVJlY29nbml6ZXIgKmIsIFVJ
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRp
b25IYW5kbGVycy5hcHBlbmQoeyByZXF1ZXN0LCBhY3Rpb24gfSk7CisgICAgX3BlbmRpbmdQb3Np
dGlvbkluZm9ybWF0aW9uSGFuZGxlcnMuYXBwZW5kKEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0QW5kQ2FsbGJhY2socmVxdWVzdCwgYWN0aW9uKSk7CiAKICAgICBpZiAoIVtzZWxmIF9oYXNW
YWxpZE91dHN0YW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvblJlcXVlc3Q6cmVxdWVzdF0pCiAgICAg
ICAgIFtzZWxmIHJlcXVlc3RBc3luY2hyb25vdXNQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOnJl
cXVlc3RdOwpAQCAtMTM2MSwyMCArMTM2NiwzMCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1l
UGFpcihVSUdlc3R1cmVSZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQog
ewogICAgIEFTU0VSVChfaGFzVmFsaWRQb3NpdGlvbkluZm9ybWF0aW9uKTsKIAotICAgIFZlY3Rv
cjxzaXplX3Q+IGluZGljZXNPZkhhbmRsZWRSZXF1ZXN0czsKKyAgICArK19wb3NpdGlvbkluZm9y
bWF0aW9uQ2FsbGJhY2tEZXB0aDsKKyAgICBhdXRvIHVwZGF0ZWRQb3NpdGlvbkluZm9ybWF0aW9u
ID0gX3Bvc2l0aW9uSW5mb3JtYXRpb247CisKICAgICBmb3IgKHNpemVfdCBpbmRleCA9IDA7IGlu
ZGV4IDwgX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnMuc2l6ZSgpOyArK2luZGV4
KSB7Ci0gICAgICAgIGF1dG8mIHJlcXVlc3RBbmRIYW5kbGVyID0gX3BlbmRpbmdQb3NpdGlvbklu
Zm9ybWF0aW9uSGFuZGxlcnNbaW5kZXhdOwotICAgICAgICBpZiAoIVtzZWxmIF9jdXJyZW50UG9z
aXRpb25JbmZvcm1hdGlvbklzVmFsaWRGb3JSZXF1ZXN0OnJlcXVlc3RBbmRIYW5kbGVyLmZpcnN0
XSkKKyAgICAgICAgYXV0byByZXF1ZXN0QW5kSGFuZGxlciA9IF9wZW5kaW5nUG9zaXRpb25JbmZv
cm1hdGlvbkhhbmRsZXJzW2luZGV4XTsKKyAgICAgICAgaWYgKCFyZXF1ZXN0QW5kSGFuZGxlcikK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIGlmIChyZXF1ZXN0QW5kSGFuZGxlci5z
ZWNvbmQpCi0gICAgICAgICAgICByZXF1ZXN0QW5kSGFuZGxlci5zZWNvbmQoX3Bvc2l0aW9uSW5m
b3JtYXRpb24pOworICAgICAgICBpZiAoIVtzZWxmIF9jdXJyZW50UG9zaXRpb25JbmZvcm1hdGlv
bklzVmFsaWRGb3JSZXF1ZXN0OnJlcXVlc3RBbmRIYW5kbGVyLT5maXJzdF0pCisgICAgICAgICAg
ICBjb250aW51ZTsKKworICAgICAgICBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVy
c1tpbmRleF0gPSBzdGQ6Om51bGxvcHQ7CiAKLSAgICAgICAgaW5kaWNlc09mSGFuZGxlZFJlcXVl
c3RzLmFwcGVuZChpbmRleCk7CisgICAgICAgIGlmIChyZXF1ZXN0QW5kSGFuZGxlci0+c2Vjb25k
KQorICAgICAgICAgICAgcmVxdWVzdEFuZEhhbmRsZXItPnNlY29uZCh1cGRhdGVkUG9zaXRpb25J
bmZvcm1hdGlvbik7CiAgICAgfQogCi0gICAgd2hpbGUgKGluZGljZXNPZkhhbmRsZWRSZXF1ZXN0
cy5zaXplKCkpCi0gICAgICAgIF9wZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzLnJl
bW92ZShpbmRpY2VzT2ZIYW5kbGVkUmVxdWVzdHMudGFrZUxhc3QoKSk7CisgICAgaWYgKC0tX3Bv
c2l0aW9uSW5mb3JtYXRpb25DYWxsYmFja0RlcHRoKQorICAgICAgICByZXR1cm47CisKKyAgICBm
b3IgKGludCBpbmRleCA9IF9wZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzLnNpemUo
KSAtIDE7IGluZGV4ID49IDA7IC0taW5kZXgpIHsKKyAgICAgICAgaWYgKCFfcGVuZGluZ1Bvc2l0
aW9uSW5mb3JtYXRpb25IYW5kbGVyc1tpbmRleF0pCisgICAgICAgICAgICBfcGVuZGluZ1Bvc2l0
aW9uSW5mb3JtYXRpb25IYW5kbGVycy5yZW1vdmUoaW5kZXgpOworICAgIH0KIH0KIAogI2lmIEVO
QUJMRShEQVRBX0RFVEVDVElPTikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNWE1ZjQ5MTQzMDVhZjIyYTg4MzczNDU1YzUwMDJj
ODE1ZWQ4MGVmLi41MTI1ZTUzZWMzZDdiZjY2MmQzMmNkMjdlYjEwYmQxZDFmNDMxNWQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0yMDEwLDYgKzIwMTAsOSBAQAogCQlGNDMzNzA5NzFFNEQ3MkVEMDAwNTJCMEUgLyogX1dLVGVz
dGluZ0RlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNDMzNzA5NjFFNEQ2QTQ0MDAwNTJCMEUgLyogX1dLVGVzdGluZ0RlbGVnYXRlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjQ0REZFQjIx
RTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NERGRUIwMUU5RTc1MkYwMDM4RDE5NiAvKiBX
ZWJJY29uVXRpbGl0aWVzLmggKi87IH07CiAJCUY0NERGRUIzMUU5RTc1MkYwMDM4RDE5NiAvKiBX
ZWJJY29uVXRpbGl0aWVzLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjQ0REZFQjExRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMubW0g
Ki87IH07CisJCUY0RThDQjkxMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50
SW5mby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRF
OENCOEUxRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmggKi87IHNl
dHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJRjRFOENCOTIxRUE2
QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFOENCOEYxRUE2QUI1QjAwRTMxMTk4
IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tICovOyB9OworCQlGNEU4Q0I5MzFFQTZBQjVC
MDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFOENCOTAxRUE2QUI1QjAwRTMx
MTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLzsgfTsKIAkJRjYxMTNF
MjUxMjZDRTE4MjAwNTdEMEE3IC8qIEFQSVVzZXJDb250ZW50VVJMUGF0dGVybi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYxMTNFMjQxMjZDRTE4MjAw
NTdEMEE3IC8qIEFQSVVzZXJDb250ZW50VVJMUGF0dGVybi5oICovOyB9OwogCQlGNjExM0UyODEy
NkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjYxMTNFMjYxMjZDRTE5QjAwNTdE
MEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmNwcCAqLzsgfTsKIAkJRjYxMTNFMjkxMjZD
RTE5QjAwNTdEMEE3IC8qIFdLVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNjExM0UyNzEyNkNFMTlCMDA1N0QwQTcg
LyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNDM0NSw2ICs0MzQ4LDkgQEAKIAkJRjQzMzcwOTYxRTRE
NkE0NDAwMDUyQjBFIC8qIF9XS1Rlc3RpbmdEZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBfV0tUZXN0aW5nRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjQ0REZFQjAxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV2ViSWNvblV0aWxpdGllcy5oOyBwYXRo
ID0gaW9zL1dlYkljb25VdGlsaXRpZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjQ0REZFQjExRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJJY29uVXRpbGl0aWVzLm1tOyBwYXRo
ID0gaW9zL1dlYkljb25VdGlsaXRpZXMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY0RThDQjhFMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEU4Q0I4RjFFQTZBQjVCMDBFMzExOTgg
LyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRjRFOENCOTAxRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVs
ZW1lbnRJbmZvSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dL
RHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGNjExM0UyNDEyNkNFMTgyMDA1N0QwQTcgLyogQVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJu
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSVVzZXJDb250ZW50VVJMUGF0
dGVybi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNjExM0UyNjEyNkNFMTlCMDA1
N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gV0tVc2VyQ29udGVudFVSTFBhdHRlcm4uY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlGNjExM0UyNzEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29u
dGVudFVSTFBhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tVc2Vy
Q29udGVudFVSTFBhdHRlcm4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTU1Mjgs
NiArNTUzNCw5IEBACiAJCQkJQTFBNEZFNTgxOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2Fk
Lm1tICovLAogCQkJCUExQTRGRTYwMThERDU0QTQwMEI1RUE4QSAvKiBfV0tEb3dubG9hZERlbGVn
YXRlLmggKi8sCiAJCQkJQTFBNEZFNTkxOERDRTlGQTAwQjVFQThBIC8qIF9XS0Rvd25sb2FkSW50
ZXJuYWwuaCAqLywKKwkJCQlGNEU4Q0I4RTFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxl
RWxlbWVudEluZm8uaCAqLywKKwkJCQlGNEU4Q0I4RjFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm8ubW0gKi8sCisJCQkJRjRFOENCOTAxRUE2QUI1QjAwRTMxMTk4IC8q
IF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLywKIAkJCQkzNzlBODczODE4QkJG
RTBGMDA1ODhBRjIgLyogX1dLRWxlbWVudEFjdGlvbi5oICovLAogCQkJCTM3OUE4NzM3MThCQkZF
MEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uLm1tICovLAogCQkJCTM3OUE4NzNCMThCQkZG
MDcwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9uSW50ZXJuYWwuaCAqLywKQEAgLTgwNTQsNiAr
ODA2MywxNCBAQAogCQkJcGF0aCA9IE5ldHdvcmtQcm9jZXNzL2NhY2hlOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJRjREN0JDQ0ExRUE0OTRGQTAwQzQyMUQzIC8qIFJlY292
ZXJlZCBSZWZlcmVuY2VzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQlDNThDREYyODE4ODc1NDhCMDA4NzE1MzYgLyogSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb24uaCAqLywKKwkJCSk7CisJCQluYW1lID0gIlJlY292ZXJlZCBSZWZlcmVuY2Vz
IjsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCUY2Mzg5NTVBMTMzQkY1N0Qw
MDg5NDFENSAvKiBtYWMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KApAQCAtODIxMSw2ICs4MjI4LDcgQEAKIAkJCQk3Qzg5RDI5NDFBNjcxMjJGMDAzQTVGREUgLyog
QVBJVXNlclNjcmlwdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ4Nzg2MjQxQkRCNThGRjAwRDAy
QUJCIC8qIEFQSVVzZXJTdHlsZVNoZWV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlDNUUxQUZFRDE2
QjIxMDE3MDA2Q0MxRjIgLyogQVBJV2ViQXJjaGl2ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJRjRF
OENCOTMxRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvSW50ZXJuYWwu
aCBpbiBIZWFkZXJzICovLAogCQkJCUM1RTFBRkVGMTZCMjEwMjkwMDZDQzFGMiAvKiBBUElXZWJB
cmNoaXZlUmVzb3VyY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBRTI4Njg0MUM3RjkzODYwMDY5
QUM0RiAvKiBBUElXZWJzaXRlRGF0YVJlY29yZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEzNjM1
QUExQTMxNDRBMzAwRUQ2MTk3IC8qIEFQSVdlYnNpdGVEYXRhU3RvcmUuaCBpbiBIZWFkZXJzICov
LApAQCAtODg4Myw2ICs4OTAxLDcgQEAKIAkJCQkwN0E1RUJCQzFDN0JBNDNFMDBCOUNBNjkgLyog
V0tGcmFtZUhhbmRsZVJlZi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0RDY2NEMxOEEzMDMwRTAw
RDgyRTIxIC8qIFdLRnJhbWVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREY5RUVFODFBNzgy
NDU1MDBCNkNGQkUgLyogV0tGcmFtZUluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RjRFOENCOTExRUE2QUI1QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTZGQTIxRTFCRDA0MzVCMDBBQUE2NTAgLyogV0tGcmFtZUluZm9Q
cml2YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDNBNjVFNzFBN0MzQUE3MDBDQUM2MzcgLyog
V0tGcmFtZUluZm9SZWYuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjlGNkE1MTEyM0REMEQwMEEx
MzdFMCAvKiBXS0ZyYW1lUG9saWN5TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTA1MjQs
NiArMTA1NDMsNyBAQAogCQkJCTkzQTI1M0VGMUM5MjJFOEUwMEY5RjY4RCAvKiBXS1ByZXZpZXdB
Y3Rpb25JdGVtLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTNBMjUzRjUxQzkyNDEzMjAwRjlGNjhE
IC8qIFdLUHJldmlld0FjdGlvbkl0ZW1JZGVudGlmaWVycy5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTkzOTVFNjhDMUJGMkMzNTIwMEY0OUJDRSAvKiBXS1ByZXZpZXdFbGVtZW50SW5mby5tbSBpbiBT
b3VyY2VzICovLAorCQkJCUY0RThDQjkyMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVF
bGVtZW50SW5mby5tbSBpbiBTb3VyY2VzICovLAogCQkJCTBGQ0I0RTY3MThCQkUzRDkwMDBGQ0ZD
OSAvKiBXS1ByaW50aW5nVmlldy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDQkFBQ0VDMTQ1MjI1
RTMwMDUzRjgyRiAvKiBXS1Byb2Nlc3NHcm91cC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBMTU4
NDE5MTg5MDQ0RjUwMDE3NjE2QyAvKiBXS1Byb2Nlc3NQb29sLm1tIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMWZlZDNk
MjE0YjljNDNlZmVlY2Q3YmNmNWMwMzkyYjAyMDU0NDlhOC4uYzE0ZGFjODVkODU2N2UzMjU5NGMw
N2Y1NTE1YjM5NzkyZDhjZjIwNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIxIEBACiAyMDE3LTA0LTE4ICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFtXSzJdIC1bV0tDb250ZW50Vmll
dyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTphdFBvc2l0aW9uOl0gc2hvdWxkIGJl
IHJvYnVzdCBhZ2FpbnN0IHN5bmNocm9ub3VzIHJlZW50cmFuY3kKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDkyMgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzE2MzQ5OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkcyBzaXggbmV3IHVuaXQgdGVzdHMgZm9yIHJldHJpZXZpbmcgaW50ZXJhY3Rp
b24gaW5mb3JtYXRpb24gYXQgYSBnaXZlbiBwb3NpdGlvbiBpbiB0aGUgVUkgcHJvY2Vzcy4gU2Vl
CisgICAgICAgIFdlYktpdDIgQ2hhbmdlTG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9Qb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW06Cisg
ICAgICAgICgtW19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvIGV4cGVjdFRvQmVMaW5rOmltYWdlOmF0
UG9pbnQ6XSk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKFRlc3RX
ZWJLaXRBUEk6OmV4cGVjdENHUG9pbnRzVG9CZUVxdWFsKTogRGVsZXRlZC4KKworMjAxNy0wNC0x
OCAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKwogICAgICAgICBbV0sy
XSBBZGQgaW5mcmFzdHJ1Y3R1cmUgYW5kIHVuaXQgdGVzdHMgZm9yIGZpbGUgdXBsb2FkcyB1c2lu
ZyBkYXRhIGludGVyYWN0aW9uCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzA5MDMKICAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxMzE0Njg5PgpkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagppbmRleCA1M2QwNDVkOTRlYzQxZDdlMmJhNTQzMzhmMzQ1Yjc3YWQ0
MTAyMTJjLi4xZTUxZjZmNmNmYmVkZWUyMTRhNDU5ZDg2MjNiN2RjNjgzMWJjNzk0IDEwMDY0NAot
LS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNTk2LDYgKzU5Niw3IEBACiAJCUY0QzJBQjIyMURENkQ5NUUw
MEUwNkQ1QiAvKiBlbm9ybW91cy12aWRlby13aXRoLXNvdW5kLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRDMkFCMjExREQ2RDk0MTAw
RTA2RDVCIC8qIGVub3Jtb3VzLXZpZGVvLXdpdGgtc291bmQuaHRtbCAqLzsgfTsKIAkJRjRENEYz
QjYxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDRGM0I0MUU0RTJCQ0Iw
MEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0gKi87IH07CiAJCUY0RDRGM0I5
MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDRGM0I3MUU0RTM2RTQwMEJCMjc2
NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSAqLzsgfTsKKwkJRjREN0JDRDgxRUE1Nzg5ODAw
QzQyMUQzIC8qIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RDdCQ0Q2MUVBNTc0REQwMEM0MjFEMyAvKiBQ
b3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0gKi87IH07CiAJCUY0REVGNkVEMUU5QjREQjYwMDQ4
RUY2MSAvKiBpbWFnZS1pbi1saW5rLWFuZC1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0REVGNkVDMUU5QjREOTUwMDQ4RUY2
MSAvKiBpbWFnZS1pbi1saW5rLWFuZC1pbnB1dC5odG1sICovOyB9OwogCQlGNEYxMzc5MjFEOUI2
ODNFMDAyQkVDNTcgLyogbGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWluZy5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RjEzNzkxMUQ5
QjY4MzIwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgKi87IH07
CiAJCUY0RjQwNUJDMUQ0QzBEMUMwMDdBOTcwNyAvKiBmdWxsLXNpemUtYXV0b3BsYXlpbmctdmlk
ZW8td2l0aC1hdWRpby5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0RjQwNUJBMUQ0QzBDRjgwMDdBOTcwNyAvKiBmdWxsLXNpemUtYXV0
b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sICovOyB9OwpAQCAtMTQ3OSw2ICsxNDgwLDcg
QEAKIAkJRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblNpbXVsYXRv
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERhdGFJbnRlcmFj
dGlvblNpbXVsYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENEYzQjUx
RTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENEYzQjcxRTRFMzZFNDAwQkIyNzY3IC8qIERhdGFJ
bnRlcmFjdGlvblRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRGF0YUludGVyYWN0aW9uVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY0RDdCQ0Q2MUVBNTc0REQwMEM0MjFEMyAvKiBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0REVGNkVDMUU5QjREOTUwMDQ4RUY2MSAvKiBpbWFn
ZS1pbi1saW5rLWFuZC1pbnB1dC5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImlt
YWdlLWluLWxpbmstYW5kLWlucHV0Lmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNEYxMzc5MTFEOUI2ODMyMDAyQkVDNTcgLyogbGFyZ2UtdmlkZW8tdGVzdC1ub3ctcGxheWlu
Zy5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImxhcmdlLXZpZGVvLXRlc3Qtbm93
LXBsYXlpbmcuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RjQwNUJBMUQ0
QzBDRjgwMDdBOTcwNyAvKiBmdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImZ1bGwtc2l6ZS1hdXRvcGxheWluZy12
aWRlby13aXRoLWF1ZGlvLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgw
OCw2ICsxODEwLDcgQEAKIAkJCQlBMUM0RkI2RjFCQUNDRUZBMDAzNzQyRDAgLyogUmVzb3VyY2Vz
ICovLAogCQkJCUY0RDRGM0I3MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0
cy5tbSAqLywKIAkJCQk3NTYwOTE3NzE5MjU5QzU5MDA5RUYwNkUgLyogTWVtb3J5Q2FjaGVBZGRJ
bWFnZVRvQ2FjaGVJT1MubW0gKi8sCisJCQkJRjREN0JDRDYxRUE1NzRERDAwQzQyMUQzIC8qIFBv
c2l0aW9uSW5mb3JtYXRpb25UZXN0cy5tbSAqLywKIAkJCSk7CiAJCQlwYXRoID0gaW9zOwogCQkJ
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI5MTAsNiArMjkxMyw3IEBACiAJCQkJN0M4M0Uw
NTMxRDBBNjQzQTAwRkVCQ0YzIC8qIFBlbmRpbmdBUElSZXF1ZXN0VVJMLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTdDQ0U3RUFGMUE0MTFBMzgwMDQ0N0M0QyAvKiBQbGF0Zm9ybVV0aWxpdGllcy5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQkwRjEzOUU3ODFBNDIzQTZCMDBGNTkwRjUgLyogUGxhdGZv
cm1VdGlsaXRpZXNDb2NvYS5tbSBpbiBTb3VyY2VzICovLAorCQkJCUY0RDdCQ0Q4MUVBNTc4OTgw
MEM0MjFEMyAvKiBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk3Q0NFN0VBNjFBNDExQTBGMDA0NDdDNEMgLyogUGxhdGZvcm1VdGlsaXRpZXNNYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3Q0NFN0VBNzFBNDExQTEzMDA0NDdDNEMgLyogUGxhdGZvcm1XZWJW
aWV3TWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdGMjYxQTQxMUFGNjAwNDQ3QzRDIC8q
IFByZWZlcmVuY2VzLm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9Qb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL2lvcy9Qb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMTUzNDhkZTcwNjhiYjRjZDUyNTNhYWUzMjAxYWFjNTNlNzMxZTdlNQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL1Bvc2l0aW9uSW5mb3JtYXRpb25U
ZXN0cy5tbQpAQCAtMCwwICsxLDE0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcu
aCIKKworI2lmIFBMQVRGT1JNKElPUykgJiYgV0tfQVBJX0VOQUJMRUQKKworI2ltcG9ydCAiUGxh
dGZvcm1VdGlsaXRpZXMuaCIKKyNpbXBvcnQgIlRlc3RXS1dlYlZpZXcuaCIKKyNpbXBvcnQgPFdl
YktpdC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8uaD4KKworQGltcGxlbWVudGF0aW9uIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvIChQ
b3NpdGlvbkluZm9ybWF0aW9uVGVzdHMpCisKKy0gKHZvaWQpZXhwZWN0VG9CZUxpbms6KEJPT0wp
aXNMaW5rIGltYWdlOihCT09MKWlzSW1hZ2UgYXRQb2ludDooQ0dQb2ludClwb2ludAoreworICAg
IEVYUEVDVF9FUShpc0xpbmssIHNlbGYuaXNMaW5rKTsKKyAgICBFWFBFQ1RfRVEoaXNJbWFnZSwg
c2VsZi5pc0ltYWdlKTsKKyAgICBFWFBFQ1RfRVEocG9pbnQueCwgc2VsZi5wb2ludC54KTsKKyAg
ICBFWFBFQ1RfRVEocG9pbnQueSwgc2VsZi5wb2ludC55KTsKK30KKworQGVuZAorCituYW1lc3Bh
Y2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLCBGaW5k
RHJhZ2dhYmxlTGlua0F0UG9zaXRpb24pCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAs
IDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJs
aW5rLWFuZC1pbnB1dCJdOworCisgICAgX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKmluZm9ybWF0
aW9uID0gW3dlYlZpZXcgZHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAw
LCA1MCldOworICAgIFtpbmZvcm1hdGlvbiBleHBlY3RUb0JlTGluazpZRVMgaW1hZ2U6Tk8gYXRQ
b2ludDpDR1BvaW50TWFrZSgxMDAsIDUwKV07Cit9CisKK1RFU1QoUG9zaXRpb25JbmZvcm1hdGlv
blRlc3RzLCBSZXF1ZXN0RHJhZ2dhYmxlTGlua0F0UG9zaXRpb24pCit7CisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0
TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRl
c3RQYWdlTmFtZWQ6QCJsaW5rLWFuZC1pbnB1dCJdOworCisgICAgX19ibG9jayBib29sIGlzRG9u
ZSA9IGZhbHNlOworICAgIFt3ZWJWaWV3IHJlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlv
bjpDR1BvaW50TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVFbGVt
ZW50SW5mbyAqaW5mb3JtYXRpb24pIHsKKyAgICAgICAgW2luZm9ybWF0aW9uIGV4cGVjdFRvQmVM
aW5rOllFUyBpbWFnZTpOTyBhdFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKKyAgICAgICAg
aXNEb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
aXNEb25lKTsKK30KKworVEVTVChQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMsIEZpbmREcmFnZ2Fi
bGVMaW5rQXREaWZmZXJlbnRQb3NpdGlvbldpdGhpblJlcXVlc3RCbG9jaykKK3sKKyAgICBhdXRv
IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpD
R1JlY3RNYWtlKDAsIDAsIDMyMCwgNTAwKV0pOworICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkVGVzdFBhZ2VOYW1lZDpAImxpbmstYW5kLWlucHV0Il07CisKKyAgICBfX2Jsb2NrIGJvb2wg
aXNEb25lID0gZmFsc2U7CisgICAgW3dlYlZpZXcgcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBv
c2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApIGNvbXBsZXRpb25CbG9jazpeKF9XS0RyYWdnYWJs
ZUVsZW1lbnRJbmZvICppbmZvcm1hdGlvbikgeworICAgICAgICBfV0tEcmFnZ2FibGVFbGVtZW50
SW5mbyAqc3luY2hyb25vdXNJbmZvcm1hdGlvbiA9IFt3ZWJWaWV3IGRyYWdnYWJsZUVsZW1lbnRB
dFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgMzAwKV07CisgICAgICAgIFtzeW5jaHJvbm91c0lu
Zm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5rOk5PIGltYWdlOk5PIGF0UG9pbnQ6Q0dQb2ludE1ha2Uo
MTAwLCAzMDApXTsKKyAgICAgICAgW2luZm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5rOllFUyBpbWFn
ZTpOTyBhdFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKKyAgICAgICAgaXNEb25lID0gdHJ1
ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKK30K
KworVEVTVChQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMsIEZpbmREcmFnZ2FibGVMaW5rQXRTYW1l
UG9zaXRpb25XaXRoaW5SZXF1ZXN0QmxvY2spCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHRO
UyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAz
MjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6
QCJsaW5rLWFuZC1pbnB1dCJdOworCisgICAgX19ibG9jayBib29sIGlzRG9uZSA9IGZhbHNlOwor
ICAgIFt3ZWJWaWV3IHJlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFr
ZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqaW5m
b3JtYXRpb24pIHsKKyAgICAgICAgX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKnN5bmNocm9ub3Vz
SW5mb3JtYXRpb24gPSBbd2ViVmlldyBkcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50
TWFrZSgxMDAsIDUwKV07CisgICAgICAgIFtzeW5jaHJvbm91c0luZm9ybWF0aW9uIGV4cGVjdFRv
QmVMaW5rOllFUyBpbWFnZTpOTyBhdFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKKyAgICAg
ICAgW2luZm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5rOllFUyBpbWFnZTpOTyBhdFBvaW50OkNHUG9p
bnRNYWtlKDEwMCwgNTApXTsKKyAgICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICB9XTsKKworICAg
IFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lKTsKK30KKworVEVTVChQb3NpdGlvbklu
Zm9ybWF0aW9uVGVzdHMsIFJlcXVlc3REcmFnZ2FibGVMaW5rQXRTYW1lUG9zaXRpb25XaXRoaW5S
ZXF1ZXN0QmxvY2spCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAg
ICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJpbWFnZS1hbmQtY29u
dGVudGVkaXRhYmxlIl07CisKKyAgICBfX2Jsb2NrIGJvb2wgaXNEb25lV2l0aElubmVyID0gZmFs
c2U7CisgICAgX19ibG9jayBib29sIGlzRG9uZVdpdGhPdXRlciA9IGZhbHNlOworCisgICAgW3dl
YlZpZXcgcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwg
NTApIGNvbXBsZXRpb25CbG9jazpeKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICpvdXRlckluZm9y
bWF0aW9uKSB7CisgICAgICAgIFt3ZWJWaWV3IHJlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3Np
dGlvbjpDR1BvaW50TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVF
bGVtZW50SW5mbyAqaW5uZXJJbmZvcm1hdGlvbikgeworICAgICAgICAgICAgW2lubmVySW5mb3Jt
YXRpb24gZXhwZWN0VG9CZUxpbms6Tk8gaW1hZ2U6WUVTIGF0UG9pbnQ6Q0dQb2ludE1ha2UoMTAw
LCA1MCldOworICAgICAgICAgICAgaXNEb25lV2l0aElubmVyID0gdHJ1ZTsKKyAgICAgICAgfV07
CisgICAgICAgIFtvdXRlckluZm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5rOk5PIGltYWdlOllFUyBh
dFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKKyAgICAgICAgaXNEb25lV2l0aE91dGVyID0g
dHJ1ZTsKKyAgICB9XTsKKworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lV2l0
aE91dGVyKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZVdpdGhJbm5lcik7
Cit9CisKK1RFU1QoUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLCBSZXF1ZXN0RHJhZ2dhYmxlTGlu
a0F0RGlmZmVyZW50UG9zaXRpb25XaXRoaW5SZXF1ZXN0QmxvY2spCit7CisgICAgYXV0byB3ZWJW
aWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0
TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRl
c3RQYWdlTmFtZWQ6QCJpbWFnZS1hbmQtY29udGVudGVkaXRhYmxlIl07CisKKyAgICBfX2Jsb2Nr
IGJvb2wgaXNEb25lV2l0aElubmVyID0gZmFsc2U7CisgICAgX19ibG9jayBib29sIGlzRG9uZVdp
dGhPdXRlciA9IGZhbHNlOworCisgICAgW3dlYlZpZXcgcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRB
dFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApIGNvbXBsZXRpb25CbG9jazpeKF9XS0RyYWdn
YWJsZUVsZW1lbnRJbmZvICpvdXRlckluZm9ybWF0aW9uKSB7CisgICAgICAgIFt3ZWJWaWV3IHJl
cXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDMwMCkgY29t
cGxldGlvbkJsb2NrOl4oX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKmlubmVySW5mb3JtYXRpb24p
IHsKKyAgICAgICAgICAgIFtpbm5lckluZm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5rOk5PIGltYWdl
Ok5PIGF0UG9pbnQ6Q0dQb2ludE1ha2UoMTAwLCAzMDApXTsKKyAgICAgICAgICAgIGlzRG9uZVdp
dGhJbm5lciA9IHRydWU7CisgICAgICAgIH1dOworICAgICAgICBbb3V0ZXJJbmZvcm1hdGlvbiBl
eHBlY3RUb0JlTGluazpOTyBpbWFnZTpZRVMgYXRQb2ludDpDR1BvaW50TWFrZSgxMDAsIDUwKV07
CisgICAgICAgIGlzRG9uZVdpdGhPdXRlciA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2Vi
S2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZVdpdGhPdXRlcik7CisgICAgVGVzdFdlYktpdEFQSTo6
VXRpbDo6cnVuKCZpc0RvbmVXaXRoSW5uZXIpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2Vi
S2l0QVBJCisKKyNlbmRpZgo=
</data>
<flag name="review"
          id="328759"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307615</attachid>
            <date>2017-04-20 12:36:01 -0700</date>
            <delta_ts>2017-04-20 12:59:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-170922-20170420123600.patch</filename>
            <type>text/plain</type>
            <size>38355</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjg3NjA3ZDg1YThmMTZk
NzQyZWZmNWJjMzA4ZTIyYmMwMDQ0NGRkOS4uM2YzODU1N2MyZjQ4YWYyN2NlYWQ2NjYyNGYzNmZi
ZWU2YzE3NGRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYyIEBACisyMDE3LTA0LTE4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIC1bV0tD
b250ZW50VmlldyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTphdFBvc2l0aW9uOl0g
c2hvdWxkIGJlIHJvYnVzdCBhZ2FpbnN0IHN5bmNocm9ub3VzIHJlZW50cmFuY3kKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDkyMgorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vMzE2MzQ5OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRv
bi4KKworICAgICAgICBSZWZhY3RvcnMgcGFydCBvZiB0aGUgYXN5bmNocm9ub3VzIHBvc2l0aW9u
IGluZm9ybWF0aW9uIG1lY2hhbmlzbSBpbnRyb2R1Y2VkIGluCisgICAgICAgIDxodHRwczovL3Ry
YWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMjE1MTcxPiwgYW5kIGludHJvZHVjZXMgaW5mcmFzdHJ1
Y3R1cmUgZm9yIHVuaXQgdGVzdGluZyBVSS1zaWRlIHBvc2l0aW9uCisgICAgICAgIGluZm9ybWF0
aW9uIHJlcXVlc3RzLgorCisgICAgICAgIF9pbnZva2VBbmRSZW1vdmVQZW5kaW5nSGFuZGxlcnNW
YWxpZEZvckN1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uIGlzIGEgaGVscGVyIG1ldGhvZCBvbiBX
S0NvbnRlbnRWaWV3CisgICAgICAgIHJlc3BvbnNpYmxlIGZvciBpbnZva2luZyBxdWV1ZWQgcG9z
aXRpb24gaW5mb3JtYXRpb24gaGFuZGxlcnMgYWZ0ZXIgcmVjZWl2aW5nIGEgcG9zaXRpb24gaW5m
b3JtYXRpb24gcmVzcG9uc2UKKyAgICAgICAgZnJvbSB0aGUgd2ViIHByb2Nlc3MuIFByZXZpb3Vz
bHksIHRoaXMgbWV0aG9kIHdvdWxkIGl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBwZW5kaW5nIGNh
bGxiYWNrcyBhbmQgaW52b2tlIGFsbAorICAgICAgICBjYWxsYmFja3Mgd2hvc2UgcmVxdWVzdHMg
YXJlIHNhdGlzZmllZCBieSB0aGUgaW5jb21pbmcgcG9zaXRpb24gaW5mb3JtYXRpb24gdXBkYXRl
LCBzYXZpbmcgdGhlIGluZGljZXMgb2YgdGhlc2UKKyAgICAgICAgaGFuZGxlZCBjYWxsYmFja3Mg
aW4gdGhlIHByb2Nlc3MuIEF0IHRoZSBlbmQsIGl0IHdvdWxkIHRoZW4gcmVtb3ZlIGNhbGxiYWNr
cyBhdCB0aGVzZSBpbmRpY2VzIGZyb20gdGhlIGFycmF5IG9mCisgICAgICAgIHBlbmRpbmcgY2Fs
bGJhY2tzLiBUaGlzIGlzIHByb2JsZW1hdGljIHdoZW4gYSBzeW5jaHJvbm91cyBwb3NpdGlvbiB1
cGRhdGUgKHZpYQorICAgICAgICBlbnN1cmVQb3NpdGlvbkluZm9ybWF0aW9uSXNVcFRvRGF0ZTop
IGlzIHRyaWdnZXJlZCBmcm9tIHdpdGhpbiBvbmUgb2YgdGhlc2UgY2FsbGJhY2tzLCBzaW5jZQor
ICAgICAgICBfaW52b2tlQW5kUmVtb3ZlUGVuZGluZ0hhbmRsZXJzVmFsaWRGb3JDdXJyZW50UG9z
aXRpb25JbmZvcm1hdGlvbiB3aWxsIGJlIGNhbGxlZCBmcm9tIHdpdGhpbiBpdHNlbGYsIGFuZCB0
aGVuIHdlCisgICAgICAgIHdpbGwgYXR0ZW1wdCB0byByZW1vdmUgYSBjYWxsYmFjayBhdCB0aGUg
c2FtZSBpbmRleCB0d2ljZS4KKworICAgICAgICBUbyBmaXggdGhpcywgd2UgY2hhbmdlIHRoZSBh
cnJheSBvZiBwZW5kaW5nIHBvc2l0aW9uIGluZm9ybWF0aW9uIGhhbmRsZXJzIHRvIGJlIGFuIGFy
cmF5IG9mIG9wdGlvbmFscyBpbnN0ZWFkLgorICAgICAgICBXaGVuIGludm9raW5nIGFuZCByZW1v
dmluZyBwZW5kaW5nIGhhbmRsZXJzIGFmdGVyIGEgcG9zaXRpb24gaW5mb3JtYXRpb24gcmVzcG9u
c2UgYXJyaXZlcywgd2Ugbm93IG1hcmsgY2FsbGJhY2tzCisgICAgICAgIGFzIGhhbmRsZWQgYnkg
c2V0dGluZyB0aGVtIHRvIHN0ZDo6bnVsbG9wdC4gVGhlbiwgd2hlbiB0aGUgdG9wLWxldmVsIGlu
dm9jYXRpb24gdG8KKyAgICAgICAgX2ludm9rZUFuZFJlbW92ZVBlbmRpbmdIYW5kbGVyc1ZhbGlk
Rm9yQ3VycmVudFBvc2l0aW9uSW5mb3JtYXRpb24gaXMgZmluaXNoZWQsIHdlIHJlbW92ZSBhbGwg
bWFya2VkIGhhbmRsZXJzCisgICAgICAgIGZyb20gdGhlIHBlbmRpbmcgdmVjdG9yLgorCisgICAg
ICAgIENvdmVyZWQgYnkgNiBuZXcgdW5pdCB0ZXN0czoKKyAgICAgICAgLSBQb3NpdGlvbkluZm9y
bWF0aW9uVGVzdHMuRmluZERyYWdnYWJsZUxpbmtBdFBvc2l0aW9uCisgICAgICAgIC0gUG9zaXRp
b25JbmZvcm1hdGlvblRlc3RzLlJlcXVlc3REcmFnZ2FibGVMaW5rQXRQb3NpdGlvbgorICAgICAg
ICAtIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5GaW5kRHJhZ2dhYmxlTGlua0F0RGlmZmVyZW50
UG9zaXRpb25XaXRoaW5SZXF1ZXN0QmxvY2sKKyAgICAgICAgLSBQb3NpdGlvbkluZm9ybWF0aW9u
VGVzdHMuRmluZERyYWdnYWJsZUxpbmtBdFNhbWVQb3NpdGlvbldpdGhpblJlcXVlc3RCbG9jawor
ICAgICAgICAtIFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cy5SZXF1ZXN0RHJhZ2dhYmxlTGlua0F0
U2FtZVBvc2l0aW9uV2l0aGluUmVxdWVzdEJsb2NrCisgICAgICAgIC0gUG9zaXRpb25JbmZvcm1h
dGlvblRlc3RzLlJlcXVlc3REcmFnZ2FibGVMaW5rQXREaWZmZXJlbnRQb3NpdGlvbldpdGhpblJl
cXVlc3RCbG9jaworCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW06
CisgICAgICAgICgtW1dLV2ViVmlldyBkcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IHJlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpjb21w
bGV0aW9uQmxvY2s6XSk6CisKKyAgICAgICAgVXNlcyBXS0NvbnRlbnRWaWV3J3MgcG9zaXRpb24g
aW5mb3JtYXRpb24gcmVxdWVzdCBoZWxwZXJzIHRvIHNlYXJjaCBmb3IgZHJhZ2dhYmxlIGVsZW1l
bnRzIG9uIHRoZSBwYWdlLiBUaGVyZQorICAgICAgICBhcmUgYm90aCBzeW5jaHJvbm91cyBhbmQg
YXN5bmNocm9ub3VzIHZlcnNpb25zIG9mIHRoaXMsIGJvdGggb2Ygd2hpY2ggcmV0cmlldmUgYSBf
V0tEcmFnZ2FibGVFbGVtZW50SW5mby4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm8uaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbTogQWRkZWQuCisKKyAgICAgICAgRXhwb3NlcyB3
aGF0IGVsZW1lbnRzIGFyZSBkcmFnZ2FibGUgYXQgYSBnaXZlbiBwb3NpdGlvbiBhcyBTUEkgKG9u
bHkgZm9yIHVzZSBpbiB0ZXN0aW5nIGNvZGUsIGF0IHRoZSBtb21lbnQpLgorCisgICAgICAgICgt
W19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvIGluaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0
UG9zaXRpb246XSk6CisgICAgICAgICgtW19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvIGNvcHlXaXRo
Wm9uZTpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1l
bnRJbmZvSW50ZXJuYWwuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBjdXJyZW50UG9zaXRp
b25JbmZvcm1hdGlvbl0pOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGRvQWZ0ZXJQb3NpdGlv
bkluZm9ybWF0aW9uVXBkYXRlOmZvclJlcXVlc3Q6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZp
ZXcgX2ludm9rZUFuZFJlbW92ZVBlbmRpbmdIYW5kbGVyc1ZhbGlkRm9yQ3VycmVudFBvc2l0aW9u
SW5mb3JtYXRpb25dKToKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2o6CisKIDIwMTctMDQtMjAgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAKICAg
ICAgICAgW01lZGlhQ2FwdHVyZV0gZ1VNKCkgd2l0aCBDb3JlQXVkaW8gZmFpbHMgaWYgY2FwdHVy
aW5nIGF1ZGlvIGluIHRoZSBVSVByb2Nlc3MuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IGQzZjUxNGJmYWQ1NzEzNmU1MDdhNzQ2MDU0
OGNmNmRkNTc2N2RmMTQuLjE3ZDM5YmM4YjA5NjA1ZjUxMmQwNjA4MzNlOTVlYWFmZjA5NDdkY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
CkBAIC0zNiw2ICszNiw4IEBACiAjaW1wb3J0ICJGaW5kQ2xpZW50LmgiCiAjaW1wb3J0ICJGdWxs
c2NyZWVuQ2xpZW50LmgiCiAjaW1wb3J0ICJJY29uTG9hZGluZ0RlbGVnYXRlLmgiCisjaW1wb3J0
ICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgorI2ltcG9ydCAiSW50ZXJhY3Rp
b25JbmZvcm1hdGlvblJlcXVlc3QuaCIKICNpbXBvcnQgIkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGlu
Zy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTmF2aWdhdGlvblN0YXRlLmgiCkBA
IC04Myw2ICs4NSw3IEBACiAjaW1wb3J0ICJXZWJVUkxTY2hlbWVIYW5kbGVyQ29jb2EuaCIKICNp
bXBvcnQgIldlYlZpZXdJbXBsLmgiCiAjaW1wb3J0ICJfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVn
YXRlLmgiCisjaW1wb3J0ICJfV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmgiCiAjaW1w
b3J0ICJfV0tGaW5kRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwu
aCIKICNpbXBvcnQgIl9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oIgpAQCAtNTA4OCw2ICs1MDkxLDE4
IEBAIHN0YXRpYyBXZWJDb3JlOjpVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlcklu
dGVyZmFjZUxheW91dERpcmVjdGlvbihVSVNlCiB9CiAKICNpZiBQTEFURk9STShJT1MpCistIChf
V0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqKWRyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9uOihDR1Bv
aW50KXBvc2l0aW9uCit7CisgICAgW19jb250ZW50VmlldyBlbnN1cmVQb3NpdGlvbkluZm9ybWF0
aW9uSXNVcFRvRGF0ZTpXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0KFdlYkNv
cmU6OnJvdW5kZWRJbnRQb2ludChwb3NpdGlvbikpXTsKKyAgICByZXR1cm4gW19XS0RyYWdnYWJs
ZUVsZW1lbnRJbmZvIGluZm9XaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246W19j
b250ZW50VmlldyBjdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbl1dOworfQorCistICh2b2lkKXJl
cXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQb2ludClwb3NpdGlvbiBjb21wbGV0
aW9uQmxvY2s6KHZvaWQgKF4pKF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICopKWJsb2NrCit7Cisg
ICAgW19jb250ZW50VmlldyBkb0FmdGVyUG9zaXRpb25JbmZvcm1hdGlvblVwZGF0ZTpbY2FwdHVy
ZWRCbG9jayA9IG1ha2VCbG9ja1B0cihibG9jayldIChXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3Jt
YXRpb25BdFBvc2l0aW9uIGluZm9ybWF0aW9uKSB7CisgICAgICAgIGNhcHR1cmVkQmxvY2soW19X
S0RyYWdnYWJsZUVsZW1lbnRJbmZvIGluZm9XaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb246aW5mb3JtYXRpb25dKTsKKyAgICB9IGZvclJlcXVlc3Q6V2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uUmVxdWVzdChXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQocG9zaXRpb24pKV07
Cit9CiAKIC0gKENHUmVjdClfY29udGVudFZpc2libGVSZWN0CiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IDMw
ODRkODY4N2NhNDU3OTMxOWJkNTczMzI4NmY4ZTA0YTUxODcwOWMuLmNiODJjNDY3YTUwMWQyODg5
NjJkZmQxNDRhZWJlOGQyYjc5YmJmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC02Nyw2ICs2Nyw3IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKICNlbmRp
ZgogCiBAY2xhc3MgV0tCcm93c2luZ0NvbnRleHRIYW5kbGU7CitAY2xhc3MgX1dLRHJhZ2dhYmxl
RWxlbWVudEluZm87CiBAY2xhc3MgX1dLRnJhbWVIYW5kbGU7CiBAY2xhc3MgX1dLSGl0VGVzdFJl
c3VsdDsKIEBjbGFzcyBfV0tJY29uTG9hZGluZ0RlbGVnYXRlOwpAQCAtMzM2LDYgKzMzNyw5IEBA
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIC0g
KE5TQXJyYXkgKilfc2ltdWxhdGVkSXRlbXNGb3JTZXNzaW9uOihpZClzZXNzaW9uIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3NpbXVsYXRlUHJlcGFyZUZvckRh
dGFJbnRlcmFjdGlvblNlc3Npb246KGlkKXNlc3Npb24gY29tcGxldGlvbjooZGlzcGF0Y2hfYmxv
Y2tfdCljb21wbGV0aW9uIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKIAorLSAo
X1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKilkcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjooQ0dQ
b2ludClwb3NpdGlvbjsKKy0gKHZvaWQpcmVxdWVzdERyYWdnYWJsZUVsZW1lbnRBdFBvc2l0aW9u
OihDR1BvaW50KXBvc2l0aW9uIGNvbXBsZXRpb25CbG9jazoodm9pZCAoXikoX1dLRHJhZ2dhYmxl
RWxlbWVudEluZm8gKikpYmxvY2s7CisKICNlbmRpZiAvLyBUQVJHRVRfT1NfSVBIT05FCiAKICNp
ZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYw
MGQ1YTNkZDkwM2Q2YmYzMDA0MTBlZGI5YjMwZWQyZGM3Nzk0NWQKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0RyYWdnYWJsZUVsZW1lbnRJ
bmZvLmgKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0Zv
dW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK05TX0FTU1VNRV9OT05OVUxMX0JF
R0lOCisKK1dLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTMpLCBpb3MoMTEuMCkpCitAaW50
ZXJmYWNlIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KKwor
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBDR1BvaW50IHBvaW50OworCitAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHksIGdldHRlcj1pc0xpbmspIEJPT0wgbGluazsKK0Bwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzQXR0YWNobWVudCkgQk9PTCBhdHRh
Y2htZW50OworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBnZXR0ZXI9aXNJbWFnZSkg
Qk9PTCBpbWFnZTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgZ2V0dGVyPWlzU2Vs
ZWN0ZWQpIEJPT0wgc2VsZWN0ZWQ7CisKK0BlbmQKKworTlNfQVNTVU1FX05PTk5VTExfRU5ECisK
KyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTBmZjkyMTA3YmU2
MWMxYmE5Y2JiYmEwOTUwNDliMmQ3NjJiZjQ4MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW0KQEAg
LTAsMCArMSw3MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJfV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmgiCisKKyNpZiBXS19BUElfRU5BQkxF
RAorCitAaW1wbGVtZW50YXRpb24gX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8KKworI2lmIFBMQVRG
T1JNKElPUykKKworKyAoaW5zdGFuY2V0eXBlKWluZm9XaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlv
bkF0UG9zaXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24mKWluZm9ybWF0aW9uCit7CisgICAgcmV0dXJuIFtbW3NlbGYgYWxsb2NdIGluaXRXaXRoSW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246aW5mb3JtYXRpb25dIGF1dG9yZWxlYXNlXTsK
K30KKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9z
aXRpb246KGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWlu
Zm9ybWF0aW9uCit7CisgICAgaWYgKCEoc2VsZiA9IFtzdXBlciBpbml0XSkpCisgICAgICAgIHJl
dHVybiBuaWw7CisKKyAgICBfcG9pbnQgPSBpbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50OworICAg
IF9saW5rID0gaW5mb3JtYXRpb24uaXNMaW5rOworICAgIF9hdHRhY2htZW50ID0gaW5mb3JtYXRp
b24uaXNBdHRhY2htZW50OworICAgIF9pbWFnZSA9IGluZm9ybWF0aW9uLmlzSW1hZ2U7CisjaWYg
RU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisgICAgX3NlbGVjdGVkID0gaW5mb3JtYXRpb24uaGFz
U2VsZWN0aW9uQXRQb3NpdGlvbjsKKyNlbmRpZgorCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKyNl
bmRpZgorCistIChpbnN0YW5jZXR5cGUpY29weVdpdGhab25lOihOU1pvbmUgKil6b25lCit7Cisg
ICAgX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKmNvcHkgPSBbW19XS0RyYWdnYWJsZUVsZW1lbnRJ
bmZvIGFsbG9jXSBpbml0XTsKKworICAgIGNvcHkucG9pbnQgPSBzZWxmLnBvaW50OworICAgIGNv
cHkubGluayA9IHNlbGYubGluazsKKyAgICBjb3B5LmF0dGFjaG1lbnQgPSBzZWxmLmF0dGFjaG1l
bnQ7CisgICAgY29weS5pbWFnZSA9IHNlbGYuaW1hZ2U7CisgICAgY29weS5zZWxlY3RlZCA9IHNl
bGYuc2VsZWN0ZWQ7CisKKyAgICByZXR1cm4gY29weTsKK30KKworQGVuZAorCisjZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxl
RWxlbWVudEluZm9JbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9fV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjgwNmNlNzY0
MWU1ODBhOWU0NjMwNGNhZjFkMmQ5MWY5NzJmZDE1ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRl
cm5hbC5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgorI2ltcG9ydCAiX1dLRHJhZ2dhYmxlRWxlbWVudElu
Zm8uaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKK0BpbnRlcmZhY2UgX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8gKCkKKworI2lmIFRBUkdFVF9PU19JUEhPTkUKKysgKGluc3RhbmNldHlwZSlpbmZv
V2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6OkludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKKy0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOihjb25zdCBXZWJLaXQ6
OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJilpbmZvcm1hdGlvbjsKKyNlbmRpZgor
CitAcHJvcGVydHkgKG5vbmF0b21pYykgQ0dQb2ludCBwb2ludDsKK0Bwcm9wZXJ0eSAobm9uYXRv
bWljLCBnZXR0ZXI9aXNMaW5rKSBCT09MIGxpbms7CitAcHJvcGVydHkgKG5vbmF0b21pYywgZ2V0
dGVyPWlzQXR0YWNobWVudCkgQk9PTCBhdHRhY2htZW50OworQHByb3BlcnR5IChub25hdG9taWMs
IGdldHRlcj1pc0ltYWdlKSBCT09MIGltYWdlOworQHByb3BlcnR5IChub25hdG9taWMsIGdldHRl
cj1pc1NlbGVjdGVkKSBCT09MIHNlbGVjdGVkOworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
aCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
LmgKaW5kZXggOWYzYWRkOTdiYjNjNWZlOWZiOGMzMTcxNDdmNWQyNmJhYWFlZDM1Zi4uZmMxNjU0
YTE3YzM5MmU3MTg4ODA3NjIzMWMzNWE1OWI3NGRhZDU0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC04
Nyw2ICs4Nyw3IEBAIHR5cGVkZWYgdm9pZCAoXlVJV0tTZWxlY3Rpb25XaXRoRGlyZWN0aW9uQ29t
cGxldGlvbkhhbmRsZXIpKEJPT0wgc2VsZWN0aW9uRW5kSXNNCiB0eXBlZGVmIHZvaWQgKF5VSVdL
S2V5V2ViRXZlbnRDb21wbGV0aW9uSGFuZGxlcikoOjpXZWJFdmVudCAqdGhlRXZlbnQsIEJPT0wg
d2FzSGFuZGxlZCk7CiAKIHR5cGVkZWYgQmxvY2tQdHI8dm9pZChXZWJLaXQ6OkludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uKT4gSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkNhbGxiYWNrOwor
dHlwZWRlZiBzdGQ6OnBhaXI8V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCwg
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkNhbGxiYWNrPiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVx
dWVzdEFuZENhbGxiYWNrOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMTc0LDcgKzE3NSw5
IEBAIHN0cnVjdCBXS0F1dG9Db3JyZWN0aW9uRGF0YSB7CiAgICAgV2ViS2l0OjpXS1NlbGVjdGlv
bkRyYXdpbmdJbmZvIF9sYXN0U2VsZWN0aW9uRHJhd2luZ0luZm87CiAKICAgICBzdGQ6Om9wdGlv
bmFsPFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3Q+IF9vdXRzdGFuZGluZ1Bv
c2l0aW9uSW5mb3JtYXRpb25SZXF1ZXN0OwotICAgIFZlY3RvcjxzdGQ6OnBhaXI8V2ViS2l0OjpJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCwgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkNhbGxi
YWNrPj4gX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnM7CisKKyAgICB1aW50NjRf
dCBfcG9zaXRpb25JbmZvcm1hdGlvbkNhbGxiYWNrRGVwdGg7CisgICAgVmVjdG9yPHN0ZDo6b3B0
aW9uYWw8SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3RBbmRDYWxsYmFjaz4+IF9wZW5kaW5n
UG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzOwogICAgIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxX
ZWJLaXQ6OklucHV0Vmlld1VwZGF0ZURlZmVycmVyPiBfaW5wdXRWaWV3VXBkYXRlRGVmZXJyZXI7
CiAKQEAgLTI4Nyw2ICsyOTAsMTAgQEAgc3RydWN0IFdLQXV0b0NvcnJlY3Rpb25EYXRhIHsKIC0g
KHZvaWQpX2FjY2Vzc2liaWxpdHlSZXRyaWV2ZVJlY3RzRW5jbG9zaW5nU2VsZWN0aW9uT2Zmc2V0
OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhHcmFudWxhcml0eTooVUlUZXh0R3JhbnVsYXJpdHkpZ3Jh
bnVsYXJpdHk7CiAtICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmV0cmlldmVSZWN0c0F0U2VsZWN0aW9u
T2Zmc2V0OihOU0ludGVnZXIpb2Zmc2V0IHdpdGhUZXh0OihOU1N0cmluZyAqKXRleHQ7CiAKK0Bw
cm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbiBjdXJyZW50UG9zaXRpb25JbmZvcm1hdGlvbjsKKy0gKHZvaWQpZG9BZnRl
clBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6KHZvaWQgKF4pKFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24pKWFjdGlvbiBmb3JSZXF1ZXN0OihXZWJLaXQ6OkludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0KXJlcXVlc3Q7CistICh2b2lkKWVuc3VyZVBvc2l0aW9uSW5m
b3JtYXRpb25Jc1VwVG9EYXRlOihXZWJLaXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0
KXJlcXVlc3Q7CisKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKIC0gKHZvaWQpX2RpZFBl
cmZvcm1EYXRhSW50ZXJhY3Rpb25Db250cm9sbGVyT3BlcmF0aW9uOwogLSAodm9pZClfZGlkSGFu
ZGxlU3RhcnREYXRhSW50ZXJhY3Rpb25SZXF1ZXN0OihCT09MKXN0YXJ0ZWQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCmluZGV4IDMyNTdiMTU5MDUxNDQ5YjYxYzNlYjEzZGZjYzM1NjRmNWYwYWNjMDEuLjU1MDQ2
NGRhOTg5NGRjNTBlNTFkZjY2MjUyNTY2MmM1NWJkYjAzOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBA
IC01Nyw2ICs1Nyw3IEBACiAjaW1wb3J0ICJXZWJQYWdlTWVzc2FnZXMuaCIKICNpbXBvcnQgIldl
YlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5h
bC5oIgorI2ltcG9ydCAiX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9y
dCAiX1dLRWxlbWVudEFjdGlvbi5oIgogI2ltcG9ydCAiX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmgi
CiAjaW1wb3J0ICJfV0tGb3JtSW5wdXRTZXNzaW9uLmgiCkBAIC0xMzA2LDYgKzEzMDcsMTEgQEAg
c3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwgVUlH
ZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAgICByZXR1cm4gW3NlbGYgX2FjdGlvbkZvckxvbmdQ
cmVzc0Zyb21Qb3NpdGlvbkluZm9ybWF0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uXTsKIH0KIAor
LSAoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24pY3VycmVudFBvc2l0aW9uSW5mb3Jt
YXRpb24KK3sKKyAgICByZXR1cm4gX3Bvc2l0aW9uSW5mb3JtYXRpb247Cit9CisKIC0gKHZvaWQp
ZG9BZnRlclBvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6KHZvaWQgKF4pKEludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uKSlhY3Rpb24gZm9yUmVxdWVzdDooSW50ZXJhY3Rpb25JbmZvcm1h
dGlvblJlcXVlc3QpcmVxdWVzdAogewogICAgIGlmIChbc2VsZiBfY3VycmVudFBvc2l0aW9uSW5m
b3JtYXRpb25Jc1ZhbGlkRm9yUmVxdWVzdDpyZXF1ZXN0XSkgewpAQCAtMTMxNCw3ICsxMzIwLDcg
QEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVjb2duaXplciAqYSwg
VUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IF9wZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzLmFwcGVuZCh7IHJlcXVlc3QsIGFj
dGlvbiB9KTsKKyAgICBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVycy5hcHBlbmQo
SW50ZXJhY3Rpb25JbmZvcm1hdGlvblJlcXVlc3RBbmRDYWxsYmFjayhyZXF1ZXN0LCBhY3Rpb24p
KTsKIAogICAgIGlmICghW3NlbGYgX2hhc1ZhbGlkT3V0c3RhbmRpbmdQb3NpdGlvbkluZm9ybWF0
aW9uUmVxdWVzdDpyZXF1ZXN0XSkKICAgICAgICAgW3NlbGYgcmVxdWVzdEFzeW5jaHJvbm91c1Bv
c2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6cmVxdWVzdF07CkBAIC0xMzYxLDIwICsxMzY3LDMwIEBA
IHN0YXRpYyBpbmxpbmUgYm9vbCBpc1NhbWVQYWlyKFVJR2VzdHVyZVJlY29nbml6ZXIgKmEsIFVJ
R2VzdHVyZVJlY29nbml6ZXIgKmIsIFVJCiB7CiAgICAgQVNTRVJUKF9oYXNWYWxpZFBvc2l0aW9u
SW5mb3JtYXRpb24pOwogCi0gICAgVmVjdG9yPHNpemVfdD4gaW5kaWNlc09mSGFuZGxlZFJlcXVl
c3RzOworICAgICsrX3Bvc2l0aW9uSW5mb3JtYXRpb25DYWxsYmFja0RlcHRoOworICAgIGF1dG8g
dXBkYXRlZFBvc2l0aW9uSW5mb3JtYXRpb24gPSBfcG9zaXRpb25JbmZvcm1hdGlvbjsKKwogICAg
IGZvciAoc2l6ZV90IGluZGV4ID0gMDsgaW5kZXggPCBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRp
b25IYW5kbGVycy5zaXplKCk7ICsraW5kZXgpIHsKLSAgICAgICAgYXV0byYgcmVxdWVzdEFuZEhh
bmRsZXIgPSBfcGVuZGluZ1Bvc2l0aW9uSW5mb3JtYXRpb25IYW5kbGVyc1tpbmRleF07Ci0gICAg
ICAgIGlmICghW3NlbGYgX2N1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uSXNWYWxpZEZvclJlcXVl
c3Q6cmVxdWVzdEFuZEhhbmRsZXIuZmlyc3RdKQorICAgICAgICBhdXRvIHJlcXVlc3RBbmRIYW5k
bGVyID0gX3BlbmRpbmdQb3NpdGlvbkluZm9ybWF0aW9uSGFuZGxlcnNbaW5kZXhdOworICAgICAg
ICBpZiAoIXJlcXVlc3RBbmRIYW5kbGVyKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgaWYgKHJlcXVlc3RBbmRIYW5kbGVyLnNlY29uZCkKLSAgICAgICAgICAgIHJlcXVlc3RBbmRI
YW5kbGVyLnNlY29uZChfcG9zaXRpb25JbmZvcm1hdGlvbik7CisgICAgICAgIGlmICghW3NlbGYg
X2N1cnJlbnRQb3NpdGlvbkluZm9ybWF0aW9uSXNWYWxpZEZvclJlcXVlc3Q6cmVxdWVzdEFuZEhh
bmRsZXItPmZpcnN0XSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIF9wZW5kaW5n
UG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzW2luZGV4XSA9IHN0ZDo6bnVsbG9wdDsKIAotICAg
ICAgICBpbmRpY2VzT2ZIYW5kbGVkUmVxdWVzdHMuYXBwZW5kKGluZGV4KTsKKyAgICAgICAgaWYg
KHJlcXVlc3RBbmRIYW5kbGVyLT5zZWNvbmQpCisgICAgICAgICAgICByZXF1ZXN0QW5kSGFuZGxl
ci0+c2Vjb25kKHVwZGF0ZWRQb3NpdGlvbkluZm9ybWF0aW9uKTsKICAgICB9CiAKLSAgICB3aGls
ZSAoaW5kaWNlc09mSGFuZGxlZFJlcXVlc3RzLnNpemUoKSkKLSAgICAgICAgX3BlbmRpbmdQb3Np
dGlvbkluZm9ybWF0aW9uSGFuZGxlcnMucmVtb3ZlKGluZGljZXNPZkhhbmRsZWRSZXF1ZXN0cy50
YWtlTGFzdCgpKTsKKyAgICBpZiAoLS1fcG9zaXRpb25JbmZvcm1hdGlvbkNhbGxiYWNrRGVwdGgp
CisgICAgICAgIHJldHVybjsKKworICAgIGZvciAoaW50IGluZGV4ID0gX3BlbmRpbmdQb3NpdGlv
bkluZm9ybWF0aW9uSGFuZGxlcnMuc2l6ZSgpIC0gMTsgaW5kZXggPj0gMDsgLS1pbmRleCkgewor
ICAgICAgICBpZiAoIV9wZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzW2luZGV4XSkK
KyAgICAgICAgICAgIF9wZW5kaW5nUG9zaXRpb25JbmZvcm1hdGlvbkhhbmRsZXJzLnJlbW92ZShp
bmRleCk7CisgICAgfQogfQogCiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE4ODdj
NTNiNjNmMWRlMjViYzVlZDhkMDc2MDRlYjQxZGQzZGU4NWMuLjQ4OTZjMzEzNjk4Zjk2YzBkZDY3
ODc0NTM5NDBmZWI0NWVmNDk5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTIwMTAsNiArMjAxMCw5IEBACiAJCUY0MzM3MDk3
MUU0RDcyRUQwMDA1MkIwRSAvKiBfV0tUZXN0aW5nRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MzM3MDk2MUU0RDZBNDQwMDA1MkIwRSAv
KiBfV0tUZXN0aW5nRGVsZWdhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlGNDRERkVCMjFFOUU3NTJGMDAzOEQxOTYgLyogV2ViSWNvblV0aWxp
dGllcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ0
REZFQjAxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMuaCAqLzsgfTsKIAkJRjQ0
REZFQjMxRTlFNzUyRjAwMzhEMTk2IC8qIFdlYkljb25VdGlsaXRpZXMubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDRERkVCMTFFOUU3NTJGMDAzOEQx
OTYgLyogV2ViSWNvblV0aWxpdGllcy5tbSAqLzsgfTsKKwkJRjRFOENCOTExRUE2QUI1QjAwRTMx
MTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEU4Q0I4RTFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OworCQlGNEU4Q0I5MjFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxl
bWVudEluZm8ubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGNEU4Q0I4RjFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8ubW0g
Ki87IH07CisJCUY0RThDQjkzMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50
SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEU4Q0I5MDFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9J
bnRlcm5hbC5oICovOyB9OwogCQlGNjExM0UyNTEyNkNFMTgyMDA1N0QwQTcgLyogQVBJVXNlckNv
bnRlbnRVUkxQYXR0ZXJuLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBGNjExM0UyNDEyNkNFMTgyMDA1N0QwQTcgLyogQVBJVXNlckNvbnRlbnRVUkxQYXR0
ZXJuLmggKi87IH07CiAJCUY2MTEzRTI4MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50
VVJMUGF0dGVybi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNjExM0UyNjEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVSTFBhdHRlcm4u
Y3BwICovOyB9OwogCQlGNjExM0UyOTEyNkNFMTlCMDA1N0QwQTcgLyogV0tVc2VyQ29udGVudFVS
TFBhdHRlcm4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY2MTEzRTI3MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC00MzQ1LDYg
KzQzNDgsOSBAQAogCQlGNDMzNzA5NjFFNEQ2QTQ0MDAwNTJCMEUgLyogX1dLVGVzdGluZ0RlbGVn
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS1Rlc3RpbmdEZWxlZ2F0
ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRERkVCMDFFOUU3NTJGMDAzOEQx
OTYgLyogV2ViSWNvblV0aWxpdGllcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBXZWJJY29uVXRpbGl0aWVzLmg7IHBhdGggPSBpb3MvV2ViSWNvblV0aWxpdGllcy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDRERkVCMTFFOUU3NTJGMDAzOEQxOTYgLyogV2Vi
SWNvblV0aWxpdGllcy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9
IFdlYkljb25VdGlsaXRpZXMubW07IHBhdGggPSBpb3MvV2ViSWNvblV0aWxpdGllcy5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjRFOENCOEUxRUE2QUI1QjAwRTMxMTk4IC8qIF9X
S0RyYWdnYWJsZUVsZW1lbnRJbmZvLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY0RThDQjhGMUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IF9XS0RyYWdnYWJsZUVsZW1l
bnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEU4Q0I5MDFFQTZBQjVC
MDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tEcmFnZ2FibGVFbGVtZW50SW5mb0ludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEzRTI0MTI2Q0UxODIwMDU3RDBBNyAv
KiBBUElVc2VyQ29udGVudFVSTFBhdHRlcm4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQVBJVXNlckNvbnRlbnRVUkxQYXR0ZXJuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY2MTEzRTI2MTI2Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVy
bi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1VzZXJDb250ZW50
VVJMUGF0dGVybi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY2MTEzRTI3MTI2
Q0UxOUIwMDU3RDBBNyAvKiBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXS1VzZXJDb250ZW50VVJMUGF0dGVybi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNTUyOCw2ICs1NTM0LDkgQEAKIAkJCQlBMUE0RkU1ODE4RENF
OUZBMDBCNUVBOEEgLyogX1dLRG93bmxvYWQubW0gKi8sCiAJCQkJQTFBNEZFNjAxOERENTRBNDAw
QjVFQThBIC8qIF9XS0Rvd25sb2FkRGVsZWdhdGUuaCAqLywKIAkJCQlBMUE0RkU1OTE4RENFOUZB
MDBCNUVBOEEgLyogX1dLRG93bmxvYWRJbnRlcm5hbC5oICovLAorCQkJCUY0RThDQjhFMUVBNkFC
NUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5oICovLAorCQkJCUY0RThDQjhG
MUVBNkFCNUIwMEUzMTE5OCAvKiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mby5tbSAqLywKKwkJCQlG
NEU4Q0I5MDFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJhZ2dhYmxlRWxlbWVudEluZm9JbnRlcm5h
bC5oICovLAogCQkJCTM3OUE4NzM4MThCQkZFMEYwMDU4OEFGMiAvKiBfV0tFbGVtZW50QWN0aW9u
LmggKi8sCiAJCQkJMzc5QTg3MzcxOEJCRkUwRjAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb24u
bW0gKi8sCiAJCQkJMzc5QTg3M0IxOEJCRkYwNzAwNTg4QUYyIC8qIF9XS0VsZW1lbnRBY3Rpb25J
bnRlcm5hbC5oICovLApAQCAtODA1NCw2ICs4MDYzLDE0IEBACiAJCQlwYXRoID0gTmV0d29ya1By
b2Nlc3MvY2FjaGU7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQlGNEQ3QkND
QTFFQTQ5NEZBMDBDNDIxRDMgLyogUmVjb3ZlcmVkIFJlZmVyZW5jZXMgKi8gPSB7CisJCQlpc2Eg
PSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCUM1OENERjI4MTg4NzU0OEIwMDg3MTUz
NiAvKiBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oICovLAorCQkJKTsKKwkJCW5h
bWUgPSAiUmVjb3ZlcmVkIFJlZmVyZW5jZXMiOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKIAkJRjYzODk1NUExMzNCRjU3RDAwODk0MUQ1IC8qIG1hYyAqLyA9IHsKIAkJCWlzYSA9
IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC04MjExLDYgKzgyMjgsNyBAQAogCQkJCTdD
ODlEMjk0MUE2NzEyMkYwMDNBNUZERSAvKiBBUElVc2VyU2NyaXB0LmggaW4gSGVhZGVycyAqLywK
IAkJCQkyRDg3ODYyNDFCREI1OEZGMDBEMDJBQkIgLyogQVBJVXNlclN0eWxlU2hlZXQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUM1RTFBRkVEMTZCMjEwMTcwMDZDQzFGMiAvKiBBUElXZWJBcmNoaXZl
LmggaW4gSGVhZGVycyAqLywKKwkJCQlGNEU4Q0I5MzFFQTZBQjVCMDBFMzExOTggLyogX1dLRHJh
Z2dhYmxlRWxlbWVudEluZm9JbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzVFMUFGRUYx
NkIyMTAyOTAwNkNDMUYyIC8qIEFQSVdlYkFyY2hpdmVSZXNvdXJjZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUFFMjg2ODQxQzdGOTM4NjAwNjlBQzRGIC8qIEFQSVdlYnNpdGVEYXRhUmVjb3JkLmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTM2MzVBQTFBMzE0NEEzMDBFRDYxOTcgLyogQVBJV2Vic2l0
ZURhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8sCkBAIC04ODgzLDYgKzg5MDEsNyBAQAogCQkJCTA3
QTVFQkJDMUM3QkE0M0UwMEI5Q0E2OSAvKiBXS0ZyYW1lSGFuZGxlUmVmLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTRENjY0QzE4QTMwMzBFMDBEODJFMjEgLyogV0tGcmFtZUluZm8uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTJERjlFRUU4MUE3ODI0NTUwMEI2Q0ZCRSAvKiBXS0ZyYW1lSW5mb0ludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKKwkJCQlGNEU4Q0I5MTFFQTZBQjVCMDBFMzExOTggLyogX1dL
RHJhZ2dhYmxlRWxlbWVudEluZm8uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNkZBMjFFMUJEMDQz
NUIwMEFBQTY1MCAvKiBXS0ZyYW1lSW5mb1ByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJE
M0E2NUU3MUE3QzNBQTcwMENBQzYzNyAvKiBXS0ZyYW1lSW5mb1JlZi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQkNCOUY2QTUxMTIzREQwRDAwQTEzN0UwIC8qIFdLRnJhbWVQb2xpY3lMaXN0ZW5lci5o
IGluIEhlYWRlcnMgKi8sCkBAIC0xMDUyNCw2ICsxMDU0Myw3IEBACiAJCQkJOTNBMjUzRUYxQzky
MkU4RTAwRjlGNjhEIC8qIFdLUHJldmlld0FjdGlvbkl0ZW0ubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk5M0EyNTNGNTFDOTI0MTMyMDBGOUY2OEQgLyogV0tQcmV2aWV3QWN0aW9uSXRlbUlkZW50aWZp
ZXJzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM5NUU2OEMxQkYyQzM1MjAwRjQ5QkNFIC8qIFdL
UHJldmlld0VsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJRjRFOENCOTIxRUE2QUI1
QjAwRTMxMTk4IC8qIF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMEZDQjRFNjcxOEJCRTNEOTAwMEZDRkM5IC8qIFdLUHJpbnRpbmdWaWV3Lm1tIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkNCQUFDRUMxNDUyMjVFMzAwNTNGODJGIC8qIFdLUHJvY2Vzc0dyb3VwLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUExNTg0MTkxODkwNDRGNTAwMTc2MTZDIC8qIFdLUHJvY2Vz
c1Bvb2wubW0gaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBjMGZmMjM0MTEwNGZlYzRlODE5MzA5NTE1ZWRmNmI1M2UwYWJk
MWI4Li4yMjk2NzRkYjZjMzE0NDM0MTY2MzdmOWIwMjY5ZGZjNDRlZDRhZGIwIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAK
KzIwMTctMDQtMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgW1dLMl0gLVtXS0NvbnRlbnRWaWV3IGRvQWZ0ZXJQb3NpdGlvbkluZm9ybWF0aW9uVXBk
YXRlOmF0UG9zaXRpb246XSBzaG91bGQgYmUgcm9idXN0IGFnYWluc3Qgc3luY2hyb25vdXMgcmVl
bnRyYW5jeQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTcwOTIyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTYzNDk5MD4KKworICAgICAgICBSZXZp
ZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZHMgc2l4IG5ldyB1bml0IHRlc3RzIGZv
ciByZXRyaWV2aW5nIGludGVyYWN0aW9uIGluZm9ybWF0aW9uIGF0IGEgZ2l2ZW4gcG9zaXRpb24g
aW4gdGhlIFVJIHByb2Nlc3MuIFNlZQorICAgICAgICBXZWJLaXQyIENoYW5nZUxvZyBmb3IgbW9y
ZSBkZXRhaWxzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvUG9zaXRpb25J
bmZvcm1hdGlvblRlc3RzLm1tOgorICAgICAgICAoLVtfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyBl
eHBlY3RUb0JlTGluazppbWFnZTphdFBvaW50Ol0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpleHBlY3RDR1BvaW50c1RvQmVFcXVhbCk6
IERlbGV0ZWQuCisKIDIwMTctMDQtMjAgIFhhbiBMb3BleiAgPHhsb3BlekBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdW2poYnVpbGRdIFVwZGF0ZSBnbGliIGFuZCBnbGliLW5ldHdvcmtpbmcg
dG8gdGhlIGxhdGVzdCBzdGFibGUgdmVyc2lvbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXgg
NGRiMmE5Nzk0NzQwMjhhYWNhNjUzNWIzMzAyZWM4ZmQ3ZmFmZjI4My4uZTIzYmRhMGY4N2IyZjVm
NDBmMTU1ZDM3ZWYyMTRjNWM0MzdhMzQwOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU5
OCw2ICs1OTgsNyBAQAogCQlGNEMyQUIyMjFERDZEOTVFMDBFMDZENUIgLyogZW5vcm1vdXMtdmlk
ZW8td2l0aC1zb3VuZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0QzJBQjIxMURENkQ5NDEwMEUwNkQ1QiAvKiBlbm9ybW91cy12aWRl
by13aXRoLXNvdW5kLmh0bWwgKi87IH07CiAJCUY0RDRGM0I2MUU0RTJCQ0IwMEJCMjc2NyAvKiBE
YXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNEQ0RjNCNDFFNEUyQkNCMDBCQjI3NjcgLyogRGF0YUludGVyYWN0
aW9uU2ltdWxhdG9yLm1tICovOyB9OwogCQlGNEQ0RjNCOTFFNEUzNkU0MDBCQjI3NjcgLyogRGF0
YUludGVyYWN0aW9uVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNEQ0RjNCNzFFNEUzNkU0MDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9uVGVz
dHMubW0gKi87IH07CisJCUY0RDdCQ0Q4MUVBNTc4OTgwMEM0MjFEMyAvKiBQb3NpdGlvbkluZm9y
bWF0aW9uVGVzdHMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNEQ3QkNENjFFQTU3NEREMDBDNDIxRDMgLyogUG9zaXRpb25JbmZvcm1hdGlvblRlc3Rz
Lm1tICovOyB9OwogCQlGNERFRjZFRDFFOUI0REI2MDA0OEVGNjEgLyogaW1hZ2UtaW4tbGluay1h
bmQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGNERFRjZFQzFFOUI0RDk1MDA0OEVGNjEgLyogaW1hZ2UtaW4tbGluay1hbmQt
aW5wdXQuaHRtbCAqLzsgfTsKIAkJRjRGMTM3OTIxRDlCNjgzRTAwMkJFQzU3IC8qIGxhcmdlLXZp
ZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEYxMzc5MTFEOUI2ODMyMDAyQkVDNTcgLyogbGFyZ2Ut
dmlkZW8tdGVzdC1ub3ctcGxheWluZy5odG1sICovOyB9OwogCQlGNEY0MDVCQzFENEMwRDFDMDA3
QTk3MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEY0MDVC
QTFENEMwQ0Y4MDA3QTk3MDcgLyogZnVsbC1zaXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVk
aW8uaHRtbCAqLzsgfTsKQEAgLTE0ODMsNiArMTQ4NCw3IEBACiAJCUY0RDRGM0I0MUU0RTJCQ0Iw
MEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0RDRGM0I1MUU0RTJCQ0IwMEJCMjc2NyAvKiBEYXRh
SW50ZXJhY3Rpb25TaW11bGF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY0RDRGM0I3MUU0RTM2RTQwMEJCMjc2NyAvKiBEYXRhSW50ZXJhY3Rpb25UZXN0cy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERhdGFJbnRlcmFjdGlvblRlc3Rz
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNEQ3QkNENjFFQTU3NEREMDBDNDIx
RDMgLyogUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
UG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGNERFRjZFQzFFOUI0RDk1MDA0OEVGNjEgLyogaW1hZ2UtaW4tbGluay1hbmQtaW5wdXQuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJpbWFnZS1pbi1saW5rLWFuZC1pbnB1dC5o
dG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRGMTM3OTExRDlCNjgzMjAwMkJF
QzU3IC8qIGxhcmdlLXZpZGVvLXRlc3Qtbm93LXBsYXlpbmcuaHRtbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQu
aHRtbDsgcGF0aCA9ICJsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwiOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGNEY0MDVCQTFENEMwQ0Y4MDA3QTk3MDcgLyogZnVsbC1z
aXplLWF1dG9wbGF5aW5nLXZpZGVvLXdpdGgtYXVkaW8uaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgcGF0aCA9ICJmdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8td2l0aC1hdWRpby5odG1sIjsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MTMsNiArMTgxNSw3IEBACiAJCQkJQTFD
NEZCNkYxQkFDQ0VGQTAwMzc0MkQwIC8qIFJlc291cmNlcyAqLywKIAkJCQlGNEQ0RjNCNzFFNEUz
NkU0MDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9uVGVzdHMubW0gKi8sCiAJCQkJNzU2MDkxNzcx
OTI1OUM1OTAwOUVGMDZFIC8qIE1lbW9yeUNhY2hlQWRkSW1hZ2VUb0NhY2hlSU9TLm1tICovLAor
CQkJCUY0RDdCQ0Q2MUVBNTc0REQwMEM0MjFEMyAvKiBQb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMu
bW0gKi8sCiAJCQkpOwogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
CkBAIC0yOTE4LDYgKzI5MjEsNyBAQAogCQkJCTdDODNFMDUzMUQwQTY0M0EwMEZFQkNGMyAvKiBQ
ZW5kaW5nQVBJUmVxdWVzdFVSTC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VBRjFBNDEx
QTM4MDA0NDdDNEMgLyogUGxhdGZvcm1VdGlsaXRpZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MEYxMzlFNzgxQTQyM0E2QjAwRjU5MEY1IC8qIFBsYXRmb3JtVXRpbGl0aWVzQ29jb2EubW0gaW4g
U291cmNlcyAqLywKKwkJCQlGNEQ3QkNEODFFQTU3ODk4MDBDNDIxRDMgLyogUG9zaXRpb25JbmZv
cm1hdGlvblRlc3RzLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFQTYxQTQxMUEwRjAwNDQ3
QzRDIC8qIFBsYXRmb3JtVXRpbGl0aWVzTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
QTcxQTQxMUExMzAwNDQ3QzRDIC8qIFBsYXRmb3JtV2ViVmlld01hYy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RjI2MUE0MTFBRjYwMDQ0N0M0QyAvKiBQcmVmZXJlbmNlcy5tbSBpbiBTb3Vy
Y2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvUG9zaXRp
b25JbmZvcm1hdGlvblRlc3RzLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvUG9z
aXRpb25JbmZvcm1hdGlvblRlc3RzLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE1MzQ4ZGU3MDY4YmI0Y2Q1MjUz
YWFlMzIwMWFhYzUzZTczMWU3ZTUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL2lvcy9Qb3NpdGlvbkluZm9ybWF0aW9uVGVzdHMubW0KQEAgLTAsMCArMSwxNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBQTEFURk9STShJT1Mp
ICYmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1w
b3J0ICJUZXN0V0tXZWJWaWV3LmgiCisjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5o
PgorI2ltcG9ydCA8V2ViS2l0L19XS0RyYWdnYWJsZUVsZW1lbnRJbmZvLmg+CisKK0BpbXBsZW1l
bnRhdGlvbiBfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAoUG9zaXRpb25JbmZvcm1hdGlvblRlc3Rz
KQorCistICh2b2lkKWV4cGVjdFRvQmVMaW5rOihCT09MKWlzTGluayBpbWFnZTooQk9PTClpc0lt
YWdlIGF0UG9pbnQ6KENHUG9pbnQpcG9pbnQKK3sKKyAgICBFWFBFQ1RfRVEoaXNMaW5rLCBzZWxm
LmlzTGluayk7CisgICAgRVhQRUNUX0VRKGlzSW1hZ2UsIHNlbGYuaXNJbWFnZSk7CisgICAgRVhQ
RUNUX0VRKHBvaW50LngsIHNlbGYucG9pbnQueCk7CisgICAgRVhQRUNUX0VRKHBvaW50LnksIHNl
bGYucG9pbnQueSk7Cit9CisKK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitU
RVNUKFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cywgRmluZERyYWdnYWJsZUxpbmtBdFBvc2l0aW9u
KQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcg
c3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAibGluay1hbmQtaW5wdXQiXTsKKworICAg
IF9XS0RyYWdnYWJsZUVsZW1lbnRJbmZvICppbmZvcm1hdGlvbiA9IFt3ZWJWaWV3IGRyYWdnYWJs
ZUVsZW1lbnRBdFBvc2l0aW9uOkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKKyAgICBbaW5mb3JtYXRp
b24gZXhwZWN0VG9CZUxpbms6WUVTIGltYWdlOk5PIGF0UG9pbnQ6Q0dQb2ludE1ha2UoMTAwLCA1
MCldOworfQorCitURVNUKFBvc2l0aW9uSW5mb3JtYXRpb25UZXN0cywgUmVxdWVzdERyYWdnYWJs
ZUxpbmtBdFBvc2l0aW9uKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAibGluay1hbmQt
aW5wdXQiXTsKKworICAgIF9fYmxvY2sgYm9vbCBpc0RvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmll
dyByZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCA1MCkg
Y29tcGxldGlvbkJsb2NrOl4oX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKmluZm9ybWF0aW9uKSB7
CisgICAgICAgIFtpbmZvcm1hdGlvbiBleHBlY3RUb0JlTGluazpZRVMgaW1hZ2U6Tk8gYXRQb2lu
dDpDR1BvaW50TWFrZSgxMDAsIDUwKV07CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07
CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cit9CisKK1RFU1QoUG9z
aXRpb25JbmZvcm1hdGlvblRlc3RzLCBGaW5kRHJhZ2dhYmxlTGlua0F0RGlmZmVyZW50UG9zaXRp
b25XaXRoaW5SZXF1ZXN0QmxvY2spCit7CisgICAgYXV0byB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rl
c3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUw
MCldKTsKKyAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJsaW5r
LWFuZC1pbnB1dCJdOworCisgICAgX19ibG9jayBib29sIGlzRG9uZSA9IGZhbHNlOworICAgIFt3
ZWJWaWV3IHJlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAs
IDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqaW5mb3JtYXRp
b24pIHsKKyAgICAgICAgX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKnN5bmNocm9ub3VzSW5mb3Jt
YXRpb24gPSBbd2ViVmlldyBkcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgx
MDAsIDMwMCldOworICAgICAgICBbc3luY2hyb25vdXNJbmZvcm1hdGlvbiBleHBlY3RUb0JlTGlu
azpOTyBpbWFnZTpOTyBhdFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgMzAwKV07CisgICAgICAgIFtp
bmZvcm1hdGlvbiBleHBlY3RUb0JlTGluazpZRVMgaW1hZ2U6Tk8gYXRQb2ludDpDR1BvaW50TWFr
ZSgxMDAsIDUwKV07CisgICAgICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cit9CisKK1RFU1QoUG9zaXRpb25JbmZvcm1h
dGlvblRlc3RzLCBGaW5kRHJhZ2dhYmxlTGlua0F0U2FtZVBvc2l0aW9uV2l0aGluUmVxdWVzdEJs
b2NrKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9j
XSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZp
ZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAibGluay1hbmQtaW5wdXQiXTsKKwor
ICAgIF9fYmxvY2sgYm9vbCBpc0RvbmUgPSBmYWxzZTsKKyAgICBbd2ViVmlldyByZXF1ZXN0RHJh
Z2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCA1MCkgY29tcGxldGlvbkJs
b2NrOl4oX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKmluZm9ybWF0aW9uKSB7CisgICAgICAgIF9X
S0RyYWdnYWJsZUVsZW1lbnRJbmZvICpzeW5jaHJvbm91c0luZm9ybWF0aW9uID0gW3dlYlZpZXcg
ZHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCA1MCldOworICAgICAg
ICBbc3luY2hyb25vdXNJbmZvcm1hdGlvbiBleHBlY3RUb0JlTGluazpZRVMgaW1hZ2U6Tk8gYXRQ
b2ludDpDR1BvaW50TWFrZSgxMDAsIDUwKV07CisgICAgICAgIFtpbmZvcm1hdGlvbiBleHBlY3RU
b0JlTGluazpZRVMgaW1hZ2U6Tk8gYXRQb2ludDpDR1BvaW50TWFrZSgxMDAsIDUwKV07CisgICAg
ICAgIGlzRG9uZSA9IHRydWU7CisgICAgfV07CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpy
dW4oJmlzRG9uZSk7Cit9CisKK1RFU1QoUG9zaXRpb25JbmZvcm1hdGlvblRlc3RzLCBSZXF1ZXN0
RHJhZ2dhYmxlTGlua0F0U2FtZVBvc2l0aW9uV2l0aGluUmVxdWVzdEJsb2NrKQoreworICAgIGF1
dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1l
OkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRUZXN0UGFnZU5hbWVkOkAiaW1hZ2UtYW5kLWNvbnRlbnRlZGl0YWJsZSJdOworCisgICAg
X19ibG9jayBib29sIGlzRG9uZVdpdGhJbm5lciA9IGZhbHNlOworICAgIF9fYmxvY2sgYm9vbCBp
c0RvbmVXaXRoT3V0ZXIgPSBmYWxzZTsKKworICAgIFt3ZWJWaWV3IHJlcXVlc3REcmFnZ2FibGVF
bGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgxMDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6Xihf
V0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqb3V0ZXJJbmZvcm1hdGlvbikgeworICAgICAgICBbd2Vi
VmlldyByZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCA1
MCkgY29tcGxldGlvbkJsb2NrOl4oX1dLRHJhZ2dhYmxlRWxlbWVudEluZm8gKmlubmVySW5mb3Jt
YXRpb24pIHsKKyAgICAgICAgICAgIFtpbm5lckluZm9ybWF0aW9uIGV4cGVjdFRvQmVMaW5rOk5P
IGltYWdlOllFUyBhdFBvaW50OkNHUG9pbnRNYWtlKDEwMCwgNTApXTsKKyAgICAgICAgICAgIGlz
RG9uZVdpdGhJbm5lciA9IHRydWU7CisgICAgICAgIH1dOworICAgICAgICBbb3V0ZXJJbmZvcm1h
dGlvbiBleHBlY3RUb0JlTGluazpOTyBpbWFnZTpZRVMgYXRQb2ludDpDR1BvaW50TWFrZSgxMDAs
IDUwKV07CisgICAgICAgIGlzRG9uZVdpdGhPdXRlciA9IHRydWU7CisgICAgfV07CisKKyAgICBU
ZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZVdpdGhPdXRlcik7CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZpc0RvbmVXaXRoSW5uZXIpOworfQorCitURVNUKFBvc2l0aW9uSW5m
b3JtYXRpb25UZXN0cywgUmVxdWVzdERyYWdnYWJsZUxpbmtBdERpZmZlcmVudFBvc2l0aW9uV2l0
aGluUmVxdWVzdEJsb2NrKQoreworICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tX
ZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7
CisgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiaW1hZ2UtYW5k
LWNvbnRlbnRlZGl0YWJsZSJdOworCisgICAgX19ibG9jayBib29sIGlzRG9uZVdpdGhJbm5lciA9
IGZhbHNlOworICAgIF9fYmxvY2sgYm9vbCBpc0RvbmVXaXRoT3V0ZXIgPSBmYWxzZTsKKworICAg
IFt3ZWJWaWV3IHJlcXVlc3REcmFnZ2FibGVFbGVtZW50QXRQb3NpdGlvbjpDR1BvaW50TWFrZSgx
MDAsIDUwKSBjb21wbGV0aW9uQmxvY2s6XihfV0tEcmFnZ2FibGVFbGVtZW50SW5mbyAqb3V0ZXJJ
bmZvcm1hdGlvbikgeworICAgICAgICBbd2ViVmlldyByZXF1ZXN0RHJhZ2dhYmxlRWxlbWVudEF0
UG9zaXRpb246Q0dQb2ludE1ha2UoMTAwLCAzMDApIGNvbXBsZXRpb25CbG9jazpeKF9XS0RyYWdn
YWJsZUVsZW1lbnRJbmZvICppbm5lckluZm9ybWF0aW9uKSB7CisgICAgICAgICAgICBbaW5uZXJJ
bmZvcm1hdGlvbiBleHBlY3RUb0JlTGluazpOTyBpbWFnZTpOTyBhdFBvaW50OkNHUG9pbnRNYWtl
KDEwMCwgMzAwKV07CisgICAgICAgICAgICBpc0RvbmVXaXRoSW5uZXIgPSB0cnVlOworICAgICAg
ICB9XTsKKyAgICAgICAgW291dGVySW5mb3JtYXRpb24gZXhwZWN0VG9CZUxpbms6Tk8gaW1hZ2U6
WUVTIGF0UG9pbnQ6Q0dQb2ludE1ha2UoMTAwLCA1MCldOworICAgICAgICBpc0RvbmVXaXRoT3V0
ZXIgPSB0cnVlOworICAgIH1dOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZpc0Rv
bmVXaXRoT3V0ZXIpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25lV2l0aElu
bmVyKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQorCisjZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>