<?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>168331</bug_id>
          
          <creation_ts>2017-02-14 13:23:22 -0800</creation_ts>
          <short_desc>[WK2] Support data interaction on links</short_desc>
          <delta_ts>2017-02-16 09:31:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>andersca</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1276895</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-14 13:23:22 -0800</bug_when>
    <thetext>Add infrastructure to support data interaction for links in WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1276896</commentid>
    <comment_count>1</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-14 13:25:53 -0800</bug_when>
    <thetext>&lt;rdar://problem/30200837&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277016</commentid>
    <comment_count>2</comment_count>
      <attachid>301568</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-14 18:06:08 -0800</bug_when>
    <thetext>Created attachment 301568
First pass</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277031</commentid>
    <comment_count>3</comment_count>
      <attachid>301568</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-02-14 18:56:05 -0800</bug_when>
    <thetext>Comment on attachment 301568
First pass

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

&gt; Source/WebKit2/WebProcess/WebPage/ios/WebPageIOS.mm:2554
&gt; +    info.adjustedPoint = adjustedPoint;

&apos;adjustedPoint&apos; is a bit vague.

&gt; Tools/TestWebKitAPI/Tests/ios/DataInteractionTests.mm:98
&gt; +        RetainPtr&lt;DataInteractionSimulator&gt; dataInteractionSimulator = [[DataInteractionSimulator alloc] initWithWebView:webView.get() startLocation:CGPointMake(100, 100) endLocation:CGPointMake(100, 300)];

Leaks

&gt; Tools/TestWebKitAPI/Tests/ios/DataInteractionTests.mm:111
&gt; +        RetainPtr&lt;DataInteractionSimulator&gt; dataInteractionSimulator = [[DataInteractionSimulator alloc] initWithWebView:webView.get() startLocation:CGPointMake(100, 100) endLocation:CGPointMake(100, 300)];

Leaks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277044</commentid>
    <comment_count>4</comment_count>
      <attachid>301575</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-14 20:20:06 -0800</bug_when>
    <thetext>Created attachment 301575
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277045</commentid>
    <comment_count>5</comment_count>
      <attachid>301576</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-02-14 20:30:09 -0800</bug_when>
    <thetext>Created attachment 301576
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1277054</commentid>
    <comment_count>6</comment_count>
      <attachid>301576</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-14 21:07:27 -0800</bug_when>
    <thetext>Comment on attachment 301576
Patch for landing

Clearing flags on attachment: 301576

Committed r212342: &lt;http://trac.webkit.org/changeset/212342&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301568</attachid>
            <date>2017-02-14 18:06:08 -0800</date>
            <delta_ts>2017-02-14 18:56:05 -0800</delta_ts>
            <desc>First pass</desc>
            <filename>bug-168331-20170214180334.patch</filename>
            <type>text/plain</type>
            <size>36927</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk5YzIzYmI5NzQ4Yjk4
MDM3YTdkZmZlNzVlYjZmNmE5NThhYmMxZC4uZTY1ZTdjZWUxYmU4MTE4NjczNWY5OTk4M2UwN2Qw
M2ZhZmU1ZjA2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTAyLTE0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFN1cHBv
cnQgZGF0YSBpbnRlcmFjdGlvbiBvbiBsaW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MzMxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDIw
MDgzNz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRzIHN1cHBvcnQgZm9yIGRhdGEgaW50ZXJhY3Rpb24gb24gbGlua3MgYXQgdGhlIFdlYkNvcmUg
bGF5ZXIsIHJlZmFjdG9yaW5nIHNvbWUgZHJhZy1hbmQtZHJvcCBjb2RlIG9uIHRoZSBNYWMKKyAg
ICAgICAgYWxvbmcgdGhlIHdheS4gQWxzbyBhZGRzIHR3byBuZXcgVGVzdFdlYktpdEFQSSB1bml0
IHRlc3RzIGluIERhdGFJbnRlcmFjdGlvblRlc3RzLm1tOiBMaW5rVG9JbnB1dCBhbmQKKyAgICAg
ICAgQmFja2dyb3VuZEltYWdlTGlua1RvSW5wdXQgKHNlZSBUb29scy9DaGFuZ2VMb2cgZm9yIG1v
cmUgaW5mb3JtYXRpb24pLgorCisgICAgICAgICogcGFnZS9EcmFnQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKToKKyAgICAgICAgKFdl
YkNvcmU6OkRyYWdDb250cm9sbGVyOjpkb0ltYWdlRHJhZyk6CisgICAgICAgIChXZWJDb3JlOjpE
cmFnQ29udHJvbGxlcjo6ZG9TeXN0ZW1EcmFnKToKKworICAgICAgICBJbnRyb2R1Y2UgcGxhdGZv
cm1BZGp1c3REcmFnSW1hZ2VGb3JEZXZpY2VTY2FsZUZhY3RvciwgYW5kIHNwZWNpYWwtY2FzZSBk
cmFnIGltYWdlcyBmb3IgbGlua3MgdG8gYW5jaG9yIGF0IHRoZQorICAgICAgICBib3R0b20gY2Vu
dGVyLgorCisgICAgICAgICogcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnBsYXRmb3JtQWRqdXN0RHJhZ0ltYWdlRm9yRGV2aWNlU2NhbGVGYWN0b3IpOgorCisgICAg
ICAgIFNjYWxlIHRoZSBkcmFnIGltYWdlIHVwIGJ5IHRoZSBkZXZpY2Ugc2NhbGUgZmFjdG9yLiBJ
biBXZWJEcmFnQ2xpZW50LCB3ZSBzY2FsZSB0aGUgaW1hZ2UgYmFjayBkb3duIHRvIHRoZQorICAg
ICAgICBvcmlnaW5hbCBzaXplLiBJdCBzZWVtcyB0aGUgcmVhc29uIHdlIGRvIHRoaXMgZXh0cmEg
ZGFuY2UgaXMgYmVjYXVzZSB0aGUgaW1hZ2Ugc2l6aW5nIGhldXJpc3RpYyBpbiBiZXR3ZWVuCisg
ICAgICAgIGFzc3VtZXMgdGhhdCB0aGUgaW1hZ2UgZGltZW5zaW9ucyBhcmUgZm9yIGEgbm9uLXJl
dGluYSBkZXZpY2UsIGJ1dCB0aGlzIHdvcmsgc2hvdWxkIHJlYWxseSBub3QgYmUgbmVjZXNzYXJ5
IGlmCisgICAgICAgIHdlIHR3ZWFrIHRoZSBoZXVyaXN0aWMgdG8gYWNjb3VudCBmb3IgZGV2aWNl
U2NhbGVGYWN0b3IuIFdlIHNob3VsZCBhZGRyZXNzIHRoaXMgaW4gYSBzZXBhcmF0ZSBwYXRjaC4K
KworICAgICAgICAqIHBsYXRmb3JtL0RyYWdJbWFnZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL1BhdGguaDoKKwogMjAxNy0wMi0xMyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgogCiAgICAgICAgIFtDb2NvYV0gU3RvcCBzb2Z0LWxpbmtpbmcgQ1RSdW5H
ZXRCYXNlQWR2YW5jZXNBbmRPcmlnaW5zKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBlN2U3Y2IwZTBlOTgzNTIx
MDljNjBjMWM0ZjdhNzFjZTdmNjBhZjYxLi44YmRmZDU4ZThmMDE5ODg3M2EyZjM2ZjI4NmQ4YjQ4
NjMxZDc2MmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjAgQEAKKzIwMTctMDItMTQgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gU3VwcG9y
dCBkYXRhIGludGVyYWN0aW9uIG9uIGxpbmtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgzMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwMjAw
ODM3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZHMgc3VwcG9ydCBmb3IgZGF0YSBpbnRlcmFjdGlvbiBvbiBsaW5rcyBhdCB0aGUgY2xpZW50IGxh
eWVyIGZvciBXZWJLaXQyLiBUaGlzIGludm9sdmVzIHNldmVyYWwgY2hhbmdlcywKKyAgICAgICAg
ZGV0YWlsZWQgaW4gdGhlIHBlci1tZXRob2QgY2hhbmdlcyBiZWxvdzoKKworICAgICAgICAqIFNo
YXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaDoKKyAgICAgICAgKiBT
aGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tOgorICAgICAgICAo
V2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbjo6ZW5jb2RlKToKKyAgICAg
ICAgKFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRlY29kZSk6CisK
KyAgICAgICAgQWRkIGFkanVzdGVkUG9pbnQgKHRoZSByZXF1ZXN0IHBvaW50LCBhZGp1c3RlZCB0
byB0YWtlIG5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cyBpbnRvIGFjY291bnQpIHRvCisgICAg
ICAgIEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLiBUaGUgd2ViIHByb2Nlc3Mgc2Vu
ZHMgdGhpcyBhZGp1c3RlZCBwb2ludCBvdmVyIHRvIHRoZSBVSSBwcm9jZXNzIHNvIHRoYXQgdGhl
CisgICAgICAgIFVJIHByb2Nlc3Mgd2lsbCBiZSBhYmxlIHRvIGJlZ2luIGEgZGF0YSBpbnRlcmFj
dGlvbiBhdCB0aGUgYWRqdXN0ZWQgcG9pbnQgcmF0aGVyIHRoYW4gdGhlIHJlcXVlc3QgcG9pbnQs
IHdoaWNoCisgICAgICAgIGlzIG5lY2Vzc2FyeSBmb3Igc21hbGwgY2xpY2thYmxlIChhbmQgZGF0
YS1pbnRlcmFjdGl2ZSkgZWxlbWVudHMgc3VjaCBhcyBsaW5rcy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9pb3MvV0tBY3Rpb25TaGVldC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rp
b25TaGVldC5tbToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldCBwcmVzZW50U2hlZXQ6XSk6Cisg
ICAgICAgICgtW1dLQWN0aW9uU2hlZXQgX3ByZXNlbnRhdGlvblJlY3RGb3JTdHlsZTpdKToKKyAg
ICAgICAgKC1bV0tBY3Rpb25TaGVldCB1cGRhdGVTaGVldFBvc2l0aW9uXSk6CisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tOgorICAgICAgICAoLVtXS0FjdGlvblNo
ZWV0QXNzaXN0YW50IHByZXNlbnRhdGlvblJlY3RGb3JFbGVtZW50VXNpbmdDbG9zZXN0SW5kaWNh
dGVkUmVjdF0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHByZXNlbnRhdGlv
blJlY3RGb3JJbmRpY2F0ZWRFbGVtZW50XSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Np
c3RhbnQgc2hvd0ltYWdlU2hlZXRdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFu
dCBfc2hvdWxkUHJlc2VudEF0VG91Y2hMb2NhdGlvbkZvckVsZW1lbnRSZWN0Ol0pOgorICAgICAg
ICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IG5lZWRzTGlua0luZGljYXRvcl0pOgorICAgICAg
ICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dMaW5rU2hlZXRdKToKKyAgICAgICAgKC1b
V0tBY3Rpb25TaGVldEFzc2lzdGFudCBjbGVhbnVwU2hlZXRdKToKKyAgICAgICAgKC1bV0tBY3Rp
b25TaGVldEFzc2lzdGFudCBfcHJlc2VudGF0aW9uU3R5bGVGb3JJbWFnZUF0RWxlbWVudFJlY3Q6
XSk6IERlbGV0ZWQuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHRoZSBXS0FjdGlvblNoZWV0
UHJlc2VudEF0Q2xvc2VzdEluZGljYXRvclJlY3Qgc3R5bGUgb2YgcHJlc2VudGluZyBhbiBhY3Rp
b24gc2hlZXQuIFdoZW4KKyAgICAgICAgc2hvd2luZyB0aGUgYWN0aW9uIHNoZWV0IGZvciBhIGxp
bmsgYW5kIHRoZXJlIGlzIHNwYWNlIGFsb25nIHRoZSBtYXJnaW5zIHRvIHNob3cgYSBwb3BvdmVy
IGluIHRoZSBmaXJzdCBwbGFjZSwKKyAgICAgICAgd2Ugd2lsbCBub3cgdGFyZ2V0IHRoZSBwb3Bv
dmVyIHJlY3QgdG8gdGhlIGJvdW5kaW5nIHJlY3Qgb2YgdGhlIHNldCBvZiBhZGphY2VudCAob3Ig
bmVhcmx5LWFkamFjZW50KSBlbGVtZW50CisgICAgICAgIHJlY3RzIGNsb3Nlc3QgdG8gdGhlIHVz
ZXIncyB0b3VjaCBsb2NhdGlvbi4gVGhpcyBjb3ZlcnMgY2FzZXMgd2hlcmUgdGhlIGxpbmsgaXMg
c3BsaXQgaW50byBtdWx0aXBsZSByZWN0cyBkdWUgdG8KKyAgICAgICAgYSBsaW5lIGJyZWFrLCB3
aGVuIHRoZSBsaW5rIGlzIG9uIG11bHRpcGxlIGxpbmVzIHdpdGggYSBqYWdnZWQgcmVjdCBwZXIg
bGluZSwgYW5kIHdoZW4gYm90aCBvZiB0aGUgYWJvdmUgYXJlCisgICAgICAgIHRydWUuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBwb2ludElzSW5EYXRhSW50ZXJhY3Rpb25Db250ZW50Ol0pOgor
ICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9wb3NpdGlvbkluZm9ybWF0aW9uRGlkQ2hhbmdlOl0p
OgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHBvc2l0aW9uSW5mb3JtYXRpb25Gb3JBY3Rpb25T
aGVldEFzc2lzdGFudDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyB1cGRhdGVQb3NpdGlv
bkluZm9ybWF0aW9uRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6XSk6CisKKyAgICAgICAgSW5jbHVk
ZSBsaW5rIGluZGljYXRvciBkYXRhIGluIHRoZSBwb3NpdGlvbiBpbmZvcm1hdGlvbiByZXF1ZXN0
IGlmIG5lZWRlZC4gQXMgdGhlIEZJWE1FIHN1Z2dlc3RzLCB0aGlzIGNhbiBiZQorICAgICAgICBp
bXByb3ZlZCBieSBhc3luY2hyb25vdXNseSBwcmVzZW50aW5nIHRoZSBhY3Rpb24gc2hlZXQgYXNz
aXN0YW50IGFmdGVyIHRoZSByZXF1ZXN0IHJldHVybnMsIGFuZCBpcyBzb21ldGhpbmcgd2UKKyAg
ICAgICAgc2hvdWxkIGFkZHJlc3MgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
Z2V0UG9zaXRpb25JbmZvcm1hdGlvbik6CisKIDIwMTctMDItMTMgIFNpbW9uIEZyYXNlciAgPHNp
bW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQ2FsbCBXS0Rlc3Ryb3lSZW5kZXJpbmdS
ZXNvdXJjZXMoKSBvbiBpT1Mgd2hlbiB0YWJzIGFyZSBiYWNrZ3JvdW5kZWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggMjEwMTIxNGUwNzNkZGNjNDY4Y2ZlOTE5OThh
NjUyNDYyYTZlYzUzYi4uODRkYTM4ZWJkMmY0M2JjNjNiYmI5MzUyM2ZlYjFjMjUzMWU1YTUwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTkxNiw4ICs5MTYsNyBA
QCBib29sIERyYWdDb250cm9sbGVyOjpzdGFydERyYWcoRnJhbWUmIHNyYywgY29uc3QgRHJhZ1N0
YXRlJiBzdGF0ZSwgRHJhZ09wZXJhdGlvbgogICAgICAgICAgICAgSW50U2l6ZSBzaXplID0gZHJh
Z0ltYWdlU2l6ZShkcmFnSW1hZ2UuZ2V0KCkpOwogICAgICAgICAgICAgbV9kcmFnT2Zmc2V0ID0g
SW50UG9pbnQoLXNpemUud2lkdGgoKSAvIDIsIC1MaW5rRHJhZ0JvcmRlckluc2V0KTsKICAgICAg
ICAgICAgIGRyYWdMb2MgPSBJbnRQb2ludChtb3VzZURyYWdnZWRQb2ludC54KCkgKyBtX2RyYWdP
ZmZzZXQueCgpLCBtb3VzZURyYWdnZWRQb2ludC55KCkgKyBtX2RyYWdPZmZzZXQueSgpKTsKLSAg
ICAgICAgICAgIC8vIExhdGVyIGNvZGUgZXhwZWN0cyB0aGUgZHJhZyBpbWFnZSB0byBiZSBzY2Fs
ZWQgYnkgZGV2aWNlJ3Mgc2NhbGUgZmFjdG9yLgotICAgICAgICAgICAgZHJhZ0ltYWdlID0gRHJh
Z0ltYWdlIHsgc2NhbGVEcmFnSW1hZ2UoZHJhZ0ltYWdlLmdldCgpLCBGbG9hdFNpemUobV9wYWdl
LmRldmljZVNjYWxlRmFjdG9yKCksIG1fcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKSkgfTsKKyAg
ICAgICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFnZSB7IHBsYXRmb3JtQWRqdXN0RHJhZ0ltYWdl
Rm9yRGV2aWNlU2NhbGVGYWN0b3IoZHJhZ0ltYWdlLmdldCgpLCBtX3BhZ2UuZGV2aWNlU2NhbGVG
YWN0b3IoKSkgfTsKICAgICAgICAgfQogICAgICAgICBkb1N5c3RlbURyYWcoV1RGTW92ZShkcmFn
SW1hZ2UpLCBkcmFnTG9jLCBtb3VzZURyYWdnZWRQb2ludCwgeyB9LCBkYXRhVHJhbnNmZXIsIHNy
YywgdHJ1ZSk7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKQEAgLTk3MSw3ICs5NzAs
NyBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkb0ltYWdlRHJhZyhFbGVtZW50JiBlbGVtZW50LCBj
b25zdCBJbnRQb2ludCYgZHJhZ09yaWdpbiwgYwogICAgICAgICBkcmFnSW1hZ2UgPSBEcmFnSW1h
Z2UgeyBmaXREcmFnSW1hZ2VUb01heFNpemUoZHJhZ0ltYWdlLmdldCgpLCBsYXlvdXRSZWN0LnNp
emUoKSwgbWF4RHJhZ0ltYWdlU2l6ZSgpKSB9OwogICAgICAgICBJbnRTaXplIGZpdHRlZFNpemUg
PSBkcmFnSW1hZ2VTaXplKGRyYWdJbWFnZS5nZXQoKSk7CiAKLSAgICAgICAgZHJhZ0ltYWdlID0g
RHJhZ0ltYWdlIHsgc2NhbGVEcmFnSW1hZ2UoZHJhZ0ltYWdlLmdldCgpLCBGbG9hdFNpemUobV9w
YWdlLmRldmljZVNjYWxlRmFjdG9yKCksIG1fcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpKSkgfTsK
KyAgICAgICAgZHJhZ0ltYWdlID0gRHJhZ0ltYWdlIHsgcGxhdGZvcm1BZGp1c3REcmFnSW1hZ2VG
b3JEZXZpY2VTY2FsZUZhY3RvcihkcmFnSW1hZ2UuZ2V0KCksIG1fcGFnZS5kZXZpY2VTY2FsZUZh
Y3RvcigpKSB9OwogICAgICAgICBkcmFnSW1hZ2UgPSBEcmFnSW1hZ2UgeyBkaXNzb2x2ZURyYWdJ
bWFnZVRvRnJhY3Rpb24oZHJhZ0ltYWdlLmdldCgpLCBEcmFnSW1hZ2VBbHBoYSkgfTsKIAogICAg
ICAgICAvLyBQcm9wZXJseSBvcmllbnQgdGhlIGRyYWcgaW1hZ2UgYW5kIG9yaWVudCBpdCBkaWZm
ZXJlbnRseSBpZiBpdCdzIHNtYWxsZXIgdGhhbiB0aGUgb3JpZ2luYWwuCkBAIC0xMDAyLDcgKzEw
MDEsOSBAQCB2b2lkIERyYWdDb250cm9sbGVyOjpkb0ltYWdlRHJhZyhFbGVtZW50JiBlbGVtZW50
LCBjb25zdCBJbnRQb2ludCYgZHJhZ09yaWdpbiwgYwogdm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9T
eXN0ZW1EcmFnKERyYWdJbWFnZSBpbWFnZSwgY29uc3QgSW50UG9pbnQmIGRyYWdMb2MsIGNvbnN0
IEludFBvaW50JiBldmVudFBvcywgY29uc3QgSW50UmVjdCYgZHJhZ0ltYWdlQm91bmRzLCBEYXRh
VHJhbnNmZXImIGRhdGFUcmFuc2ZlciwgRnJhbWUmIGZyYW1lLCBib29sIGZvckxpbmspCiB7CiAg
ICAgRmxvYXRQb2ludCBkcmFnSW1hZ2VBbmNob3IgPSB7IDAuNSwgMC41IH07Ci0gICAgaWYgKCFk
cmFnSW1hZ2VCb3VuZHMuaXNFbXB0eSgpKSB7CisgICAgaWYgKGZvckxpbmspCisgICAgICAgIGRy
YWdJbWFnZUFuY2hvci5zZXRZKDEpOworICAgIGVsc2UgaWYgKCFkcmFnSW1hZ2VCb3VuZHMuaXNF
bXB0eSgpKSB7CiAgICAgICAgIGRyYWdJbWFnZUFuY2hvci5zZXRYKChldmVudFBvcy54KCkgLSBk
cmFnSW1hZ2VCb3VuZHMueCgpKSAvIChmbG9hdClkcmFnSW1hZ2VCb3VuZHMud2lkdGgoKSk7CiAg
ICAgICAgIGRyYWdJbWFnZUFuY2hvci5zZXRZKChldmVudFBvcy55KCkgLSBkcmFnSW1hZ2VCb3Vu
ZHMueSgpKSAvIChmbG9hdClkcmFnSW1hZ2VCb3VuZHMuaGVpZ2h0KCkpOwogICAgIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCmluZGV4IGJiNzE2YWFiODM1YWFjYjM2NDJiYTVm
MzRlMmE2ZWM0M2M3YzkyYmIuLmM3MjAzYTEzZDk0MGY0NmE4YWNlNzQzMTA2ODkwMDUzZTdkMjRk
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcApAQCAtMjEwLDYgKzIxMCwx
NCBAQCBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9ySW1hZ2UoRnJhbWUmIGZyYW1lLCBO
b2RlJiBub2RlLCBJbnRSZWN0JiBpbWFnZVJlYwogICAgIHJldHVybiBjcmVhdGVEcmFnSW1hZ2VG
cm9tU25hcHNob3Qoc25hcHNob3ROb2RlKGZyYW1lLCBub2RlKSwgJm5vZGUpOwogfQogCisjaWYg
IUVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorRHJhZ0ltYWdlUmVmIHBsYXRmb3JtQWRqdXN0RHJh
Z0ltYWdlRm9yRGV2aWNlU2NhbGVGYWN0b3IoRHJhZ0ltYWdlUmVmIGltYWdlLCBmbG9hdCBkZXZp
Y2VTY2FsZUZhY3RvcikKK3sKKyAgICAvLyBMYXRlciBjb2RlIGV4cGVjdHMgdGhlIGRyYWcgaW1h
Z2UgdG8gYmUgc2NhbGVkIGJ5IGRldmljZSdzIHNjYWxlIGZhY3Rvci4KKyAgICByZXR1cm4gc2Nh
bGVEcmFnSW1hZ2UoaW1hZ2UsIHsgZGV2aWNlU2NhbGVGYWN0b3IsIGRldmljZVNjYWxlRmFjdG9y
IH0pOworfQorI2VuZGlmCisKICNpZiAhUExBVEZPUk0oQ09DT0EpICYmICFQTEFURk9STShXSU4p
CiBEcmFnSW1hZ2VSZWYgY3JlYXRlRHJhZ0ltYWdlRm9yTGluayhVUkwmLCBjb25zdCBTdHJpbmcm
LCBGb250UmVuZGVyaW5nTW9kZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL0RyYWdJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmgKaW5k
ZXggZGE1MmFiOWU4OTQyNWExZjg5ZWE0NmRiMmMwNzFkYTgwYmJlYjA4NC4uMWQ4OGYwNDI2YzNk
NTlkMjI4ZDA4NTEyMDI4ZTRmZTYxMDkwODI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vRHJhZ0ltYWdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0lt
YWdlLmgKQEAgLTc4LDYgKzc4LDcgQEAgSW50U2l6ZSBkcmFnSW1hZ2VTaXplKERyYWdJbWFnZVJl
Zik7CiAvLyB0aGUgaW5wdXQgaW1hZ2UgcmVmIHdpbGwgc3RpbGwgYmUgdmFsaWQgYWZ0ZXIgdGhl
eSBoYXZlIGJlZW4gY2FsbGVkLgogRHJhZ0ltYWdlUmVmIGZpdERyYWdJbWFnZVRvTWF4U2l6ZShE
cmFnSW1hZ2VSZWYsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIGNvbnN0IEludFNpemUmIGRzdFNp
emUpOwogRHJhZ0ltYWdlUmVmIHNjYWxlRHJhZ0ltYWdlKERyYWdJbWFnZVJlZiwgRmxvYXRTaXpl
IHNjYWxlKTsKK0RyYWdJbWFnZVJlZiBwbGF0Zm9ybUFkanVzdERyYWdJbWFnZUZvckRldmljZVNj
YWxlRmFjdG9yKERyYWdJbWFnZVJlZiwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpOwogRHJhZ0lt
YWdlUmVmIGRpc3NvbHZlRHJhZ0ltYWdlVG9GcmFjdGlvbihEcmFnSW1hZ2VSZWYsIGZsb2F0IGRl
bHRhKTsKIAogRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZyb21JbWFnZShJbWFnZSosIElt
YWdlT3JpZW50YXRpb25EZXNjcmlwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9QYXRoLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9QYXRoLmgKaW5kZXggYTkxMjQ0Nzk0NGY1YWJiNGJhOWM1MmU0OGFmMzhlOWYyNDYzNzIyOS4u
MjgzMWNmZTMzZTdjMDZhODhkM2M2YjgzYzkxMjZiODUwMmEzNGVmYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaApAQCAtMTIyLDcgKzEyMiw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgLy8gZmFzdEJvdW5kaW5nUmVjdCgpIHNob3VsZCBlcXVhbCBvciBj
b250YWluIGJvdW5kaW5nUmVjdCgpOyBib3VuZGluZ1JlY3QoKQogICAgICAgICAvLyBzaG91bGQg
cGVyZmVjdGx5IGJvdW5kIHRoZSBwb2ludHMgd2l0aGluIHRoZSBwYXRoLgogICAgICAgICBGbG9h
dFJlY3QgYm91bmRpbmdSZWN0KCkgY29uc3Q7Ci0gICAgICAgIEZsb2F0UmVjdCBmYXN0Qm91bmRp
bmdSZWN0KCkgY29uc3Q7CisgICAgICAgIFdFQkNPUkVfRVhQT1JUIEZsb2F0UmVjdCBmYXN0Qm91
bmRpbmdSZWN0KCkgY29uc3Q7CiAgICAgICAgIEZsb2F0UmVjdCBzdHJva2VCb3VuZGluZ1JlY3Qo
U3Ryb2tlU3R5bGVBcHBsaWVyKiA9IDApIGNvbnN0OwogCiAgICAgICAgIGZsb2F0IGxlbmd0aCgp
IGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9JbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCmluZGV4IGI0MWQ2NGQ5MjAwOThjN2IyYTU1
ZGMxMWQ4MWI4MjJjODZmNjk1ZDcuLjc2NjFiMWE4YzgwZDE1NzY0ZmVkNjBkNjA3OGJkYWUzY2Q0
MTc2MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0lu
dGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgKQEAgLTU1LDYgKzU1LDcgQEAgc3RydWN0
IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIHsKICNpZiBFTkFCTEUoREFUQV9ERVRF
Q1RJT04pCiAgICAgYm9vbCBpc0RhdGFEZXRlY3RvckxpbmsgeyBmYWxzZSB9OwogI2VuZGlmCisg
ICAgV2ViQ29yZTo6RmxvYXRQb2ludCBhZGp1c3RlZFBvaW50OwogICAgIFN0cmluZyB1cmw7CiAg
ICAgU3RyaW5nIGltYWdlVVJMOwogICAgIFN0cmluZyB0aXRsZTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uLm1tCmluZGV4IGJhMWE0YzU5MWUxYTE2MzEzNmY1NzJlYzBiYTIwNzVhZTY1NDQ2YmEuLjRj
ZmQxMjJkOWM2OGU5ODdmMmY3NjEwMzI4OTQ4NTNjYTMyMzZlODggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbi5tbQpAQCAtNTQsNiArNTQsNyBAQCB2b2lkIEludGVyYWN0aW9uSW5mb3JtYXRpb25B
dFBvc2l0aW9uOjplbmNvZGUoSVBDOjpFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogICAgIGVuY29k
ZXIgPDwgaXNBdHRhY2htZW50OwogICAgIGVuY29kZXIgPDwgaXNBbmltYXRlZEltYWdlOwogICAg
IGVuY29kZXIgPDwgaXNFbGVtZW50OworICAgIGVuY29kZXIgPDwgYWRqdXN0ZWRQb2ludDsKICAg
ICBlbmNvZGVyIDw8IHVybDsKICAgICBlbmNvZGVyIDw8IGltYWdlVVJMOwogICAgIGVuY29kZXIg
PDwgdGl0bGU7CkBAIC0xMTksNiArMTIwLDkgQEAgYm9vbCBJbnRlcmFjdGlvbkluZm9ybWF0aW9u
QXRQb3NpdGlvbjo6ZGVjb2RlKElQQzo6RGVjb2RlciYgZGVjb2RlciwgSW50ZXJhY3Rpb24KICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5pc0VsZW1lbnQpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5hZGp1c3RlZFBvaW50KSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQu
dXJsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tBY3Rpb25TaGVldC5oCmluZGV4IDA1ZWZhZTBkNGIxODgwNzMwNjlkNDRhZTExOTJh
Y2FjMTY2Yzk3ZTAuLmUzYmE4ODQxMjk2Yzc5YTNjYTEzMmU2ZWFjZDU4YWQ4YmI4MzQ4MTUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldC5oCkBAIC0zMCw3
ICszMCw4IEBACiAKIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLQWN0aW9uU2hlZXRQcmVz
ZW50YXRpb25TdHlsZSkgewogICAgIFdLQWN0aW9uU2hlZXRQcmVzZW50QXRUb3VjaExvY2F0aW9u
LAotICAgIFdLQWN0aW9uU2hlZXRQcmVzZW50QXRFbGVtZW50UmVjdAorICAgIFdLQWN0aW9uU2hl
ZXRQcmVzZW50QXRFbGVtZW50UmVjdCwKKyAgICBXS0FjdGlvblNoZWV0UHJlc2VudEF0Q2xvc2Vz
dEluZGljYXRvclJlY3QKIH07CiAKIEBwcm90b2NvbCBXS0FjdGlvblNoZWV0RGVsZWdhdGU7CkBA
IC01MSw2ICs1Miw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdLQWN0aW9uU2hlZXRQ
cmVzZW50YXRpb25TdHlsZSkgewogLSAoVUlWaWV3ICopaG9zdFZpZXdGb3JTaGVldDsKIC0gKENH
UmVjdClpbml0aWFsUHJlc2VudGF0aW9uUmVjdEluSG9zdFZpZXdGb3JTaGVldDsKIC0gKENHUmVj
dClwcmVzZW50YXRpb25SZWN0Rm9ySW5kaWNhdGVkRWxlbWVudDsKKy0gKENHUmVjdClwcmVzZW50
YXRpb25SZWN0Rm9yRWxlbWVudFVzaW5nQ2xvc2VzdEluZGljYXRlZFJlY3Q7CiAtIChDR1JlY3Qp
cHJlc2VudGF0aW9uUmVjdEluSG9zdFZpZXdGb3JTaGVldDsKIC0gKHZvaWQpdXBkYXRlUG9zaXRp
b25JbmZvcm1hdGlvbjsKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tBY3Rpb25TaGVldC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tB
Y3Rpb25TaGVldC5tbQppbmRleCBhYTg5OWQ2NzYxODBjZTZiNzQ2NmJjYWVmNzk1ZDUyZGM1NzM4
ODYxLi45MGQwNzU2ZmE3MDZhNTkzMzI5ZjEyZmY4ZWZlYmVkZTkzMTgyNWM3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXQubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0Lm1tCkBAIC03Niw3ICs3Niw3
IEBACiAgICAgLy8gQ2FsY3VsYXRlIHRoZSBwcmVzZW50YXRpb24gcmVjdCBqdXN0IGJlZm9yZSBz
aG93aW5nLgogICAgIENHUmVjdCBwcmVzZW50YXRpb25SZWN0ID0gQ0dSZWN0WmVybzsKICAgICBp
ZiAoVUlfVVNFUl9JTlRFUkZBQ0VfSURJT00oKSAhPSBVSVVzZXJJbnRlcmZhY2VJZGlvbVBob25l
KSB7Ci0gICAgICAgIHByZXNlbnRhdGlvblJlY3QgPSBzdHlsZSA9PSBXS0FjdGlvblNoZWV0UHJl
c2VudEF0RWxlbWVudFJlY3QgPyBbX3NoZWV0RGVsZWdhdGUgcHJlc2VudGF0aW9uUmVjdEZvcklu
ZGljYXRlZEVsZW1lbnRdIDogW19zaGVldERlbGVnYXRlIGluaXRpYWxQcmVzZW50YXRpb25SZWN0
SW5Ib3N0Vmlld0ZvclNoZWV0XTsKKyAgICAgICAgcHJlc2VudGF0aW9uUmVjdCA9IFtzZWxmIF9w
cmVzZW50YXRpb25SZWN0Rm9yU3R5bGU6c3R5bGVdOwogICAgICAgICBpZiAoQ0dSZWN0SXNFbXB0
eShwcmVzZW50YXRpb25SZWN0KSkKICAgICAgICAgICAgIHJldHVybiBOTzsKICAgICB9CkBAIC04
NSw2ICs4NSwxNyBAQAogICAgIHJldHVybiBbc2VsZiBwcmVzZW50U2hlZXRGcm9tUmVjdDpwcmVz
ZW50YXRpb25SZWN0XTsKIH0KIAorLSAoQ0dSZWN0KV9wcmVzZW50YXRpb25SZWN0Rm9yU3R5bGU6
KFdLQWN0aW9uU2hlZXRQcmVzZW50YXRpb25TdHlsZSlzdHlsZQoreworICAgIGlmIChzdHlsZSA9
PSBXS0FjdGlvblNoZWV0UHJlc2VudEF0RWxlbWVudFJlY3QpCisgICAgICAgIHJldHVybiBbX3No
ZWV0RGVsZWdhdGUgcHJlc2VudGF0aW9uUmVjdEZvckluZGljYXRlZEVsZW1lbnRdOworCisgICAg
aWYgKHN0eWxlID09IFdLQWN0aW9uU2hlZXRQcmVzZW50QXRDbG9zZXN0SW5kaWNhdG9yUmVjdCkK
KyAgICAgICAgcmV0dXJuIFtfc2hlZXREZWxlZ2F0ZSBwcmVzZW50YXRpb25SZWN0Rm9yRWxlbWVu
dFVzaW5nQ2xvc2VzdEluZGljYXRlZFJlY3RdOworCisgICAgcmV0dXJuIFtfc2hlZXREZWxlZ2F0
ZSBpbml0aWFsUHJlc2VudGF0aW9uUmVjdEluSG9zdFZpZXdGb3JTaGVldF07Cit9CisKIC0gKEJP
T0wpcHJlc2VudFNoZWV0RnJvbVJlY3Q6KENHUmVjdClwcmVzZW50YXRpb25SZWN0CiB7CiAgICAg
VUlWaWV3ICp2aWV3ID0gW19zaGVldERlbGVnYXRlIGhvc3RWaWV3Rm9yU2hlZXRdOwpAQCAtMTk2
LDcgKzIwNyw3IEBACiAgICAgaWYgKF9pc1JvdGF0aW5nIHx8ICFfcmVhZHlUb1ByZXNlbnRBZnRl
clJvdGF0aW9uIHx8IGlzQmVpbmdQcmVzZW50ZWQpCiAgICAgICAgIHJldHVybjsKIAotICAgIENH
UmVjdCBwcmVzZW50YXRpb25SZWN0ID0gX2N1cnJlbnRQcmVzZW50YXRpb25TdHlsZSA9PSBXS0Fj
dGlvblNoZWV0UHJlc2VudEF0RWxlbWVudFJlY3QgPyBbX3NoZWV0RGVsZWdhdGUgcHJlc2VudGF0
aW9uUmVjdEZvckluZGljYXRlZEVsZW1lbnRdIDogW19zaGVldERlbGVnYXRlIGluaXRpYWxQcmVz
ZW50YXRpb25SZWN0SW5Ib3N0Vmlld0ZvclNoZWV0XTsKKyAgICBDR1JlY3QgcHJlc2VudGF0aW9u
UmVjdCA9IFtzZWxmIF9wcmVzZW50YXRpb25SZWN0Rm9yU3R5bGU6X2N1cnJlbnRQcmVzZW50YXRp
b25TdHlsZV07CiAgICAgQk9PTCB3YXNQcmVzZW50ZWRWaWV3Q29udHJvbGxlck1vZGFsID0gW19w
cmVzZW50ZWRWaWV3Q29udHJvbGxlcldoaWxlUm90YXRpbmcgaXNNb2RhbEluUG9wb3Zlcl07CiAK
ICAgICBpZiAoIUNHUmVjdElzRW1wdHkocHJlc2VudGF0aW9uUmVjdCkgfHwgd2FzUHJlc2VudGVk
Vmlld0NvbnRyb2xsZXJNb2RhbCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaAppbmRleCA4MWE1MGM1ODhjMjJjODBlMjVl
ZjFmOTNlODQxOTNhM2RiYjE2ZTQ0Li4zZDVhMjA4NjVjMjg4MWMwOWJjZjMxYjlhZGM3ODVhODhi
YzRlMWNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0
aW9uU2hlZXRBc3Npc3RhbnQuaApAQCAtNjMsNiArNjMsNyBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb247CiAKIEBpbnRlcmZhY2UgV0tBY3Rpb25TaGVldEFzc2lzdGFu
dCA6IE5TT2JqZWN0IDxXS0FjdGlvblNoZWV0RGVsZWdhdGUsIERERGV0ZWN0aW9uQ29udHJvbGxl
ckludGVyYWN0aW9uRGVsZWdhdGU+CiBAcHJvcGVydHkgKG5vbmF0b21pYywgd2VhaykgaWQgPFdL
QWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0ZT4gZGVsZWdhdGU7CitAcHJvcGVydHkgKG5vbmF0
b21pYykgQk9PTCBuZWVkc0xpbmtJbmRpY2F0b3I7CiAtIChpZClpbml0V2l0aFZpZXc6KFVJVmll
dyAqKXZpZXc7CiAtICh2b2lkKXNob3dMaW5rU2hlZXQ7CiAtICh2b2lkKXNob3dJbWFnZVNoZWV0
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0
QXNzaXN0YW50Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0
QXNzaXN0YW50Lm1tCmluZGV4IGRkMTY5NTZkZGJiYjIzM2I0ZTk1M2U3NGMxMmViNTI3NTYyZWQw
ZDUuLjcxZTM5OGQ0ZTE2ZDhmMjIyZmQ4YzYzY2E4NjYxMjEzYmExMjlkOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQu
bW0KQEAgLTQxLDYgKzQxLDcgQEAKICNpbXBvcnQgIl9XS0VsZW1lbnRBY3Rpb25JbnRlcm5hbC5o
IgogI2ltcG9ydCA8VUlLaXQvVUlWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0
cmluZ3MuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGF0aFV0aWxpdGllcy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlTlNVUkxFeHRyYXMu
aD4KICNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgpAQCAtODgsNiArODksNyBAQCBzdGF0
aWMgTFNBcHBMaW5rICphcHBMaW5rRm9yVVJMKE5TVVJMICp1cmwpCiAgICAgUmV0YWluUHRyPFdL
QWN0aW9uU2hlZXQ+IF9pbnRlcmFjdGlvblNoZWV0OwogICAgIFJldGFpblB0cjxfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbz4gX2VsZW1lbnRJbmZvOwogICAgIFVJVmlldyAqX3ZpZXc7CisgICAgQk9P
TCBfbmVlZHNMaW5rSW5kaWNhdG9yOwogfQogCiAtIChpZCA8V0tBY3Rpb25TaGVldEFzc2lzdGFu
dERlbGVnYXRlPilkZWxlZ2F0ZQpAQCAtMTQ4LDYgKzE1MCwzOCBAQCBzdGF0aWMgTFNBcHBMaW5r
ICphcHBMaW5rRm9yVVJMKE5TVVJMICp1cmwpCiAgICAgcmV0dXJuIFtzZWxmIHN1cGVydmlld0Zv
clNoZWV0XTsKIH0KIAorc3RhdGljIGNvbnN0IENHRmxvYXQgcHJlc2VudGF0aW9uRWxlbWVudFJl
Y3RQYWRkaW5nID0gMTU7CisKKy0gKENHUmVjdClwcmVzZW50YXRpb25SZWN0Rm9yRWxlbWVudFVz
aW5nQ2xvc2VzdEluZGljYXRlZFJlY3QKK3sKKyAgICBVSVZpZXcgKnZpZXcgPSBbc2VsZiBzdXBl
cnZpZXdGb3JTaGVldF07CisgICAgYXV0byBkZWxlZ2F0ZSA9IF9kZWxlZ2F0ZS5nZXQoKTsKKyAg
ICBpZiAoIXZpZXcgfHwgIWRlbGVnYXRlKQorICAgICAgICByZXR1cm4gQ0dSZWN0WmVybzsKKwor
ICAgIGF1dG8gaW5mbyA9IFtkZWxlZ2F0ZSBwb3NpdGlvbkluZm9ybWF0aW9uRm9yQWN0aW9uU2hl
ZXRBc3Npc3RhbnQ6c2VsZl07CisgICAgYXV0byBpbmRpY2F0b3IgPSBpbmZvLmxpbmtJbmRpY2F0
b3I7CisgICAgaWYgKGluZGljYXRvci50ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVz
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIENHUmVjdFplcm87CisKKyAgICBXZWJDb3JlOjpG
bG9hdFBvaW50IHRvdWNoTG9jYXRpb24gPSBpbmZvLnJlcXVlc3QucG9pbnQ7CisgICAgV2ViQ29y
ZTo6RmxvYXRQb2ludCBsaW5rRWxlbWVudExvY2F0aW9uID0gaW5kaWNhdG9yLnRleHRCb3VuZGlu
Z1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMubG9jYXRpb24oKTsKKyAgICBWZWN0b3I8V2ViQ29y
ZTo6RmxvYXRSZWN0PiBpbmRpY2F0ZWRSZWN0czsKKyAgICBmb3IgKGF1dG8gcmVjdCA6IGluZGlj
YXRvci50ZXh0UmVjdHNJbkJvdW5kaW5nUmVjdENvb3JkaW5hdGVzKSB7CisgICAgICAgIHJlY3Qu
aW5mbGF0ZSgyKTsKKyAgICAgICAgcmVjdC5tb3ZlQnkobGlua0VsZW1lbnRMb2NhdGlvbik7Cisg
ICAgICAgIGluZGljYXRlZFJlY3RzLmFwcGVuZChyZWN0KTsKKyAgICB9CisKKyAgICBmb3IgKGF1
dG8gcGF0aCA6IFdlYkNvcmU6OlBhdGhVdGlsaXRpZXM6OnBhdGhzV2l0aFNocmlua1dyYXBwZWRS
ZWN0cyhpbmRpY2F0ZWRSZWN0cywgMCkpIHsKKyAgICAgICAgYXV0byBib3VuZGluZ1JlY3QgPSBw
YXRoLmZhc3RCb3VuZGluZ1JlY3QoKTsKKyAgICAgICAgaWYgKGJvdW5kaW5nUmVjdC5jb250YWlu
cyh0b3VjaExvY2F0aW9uKSkKKyAgICAgICAgICAgIHJldHVybiBDR1JlY3RJbnNldChbdmlldyBj
b252ZXJ0UmVjdDooQ0dSZWN0KWJvdW5kaW5nUmVjdCBmcm9tVmlldzpfdmlld10sIC1wcmVzZW50
YXRpb25FbGVtZW50UmVjdFBhZGRpbmcsIC1wcmVzZW50YXRpb25FbGVtZW50UmVjdFBhZGRpbmcp
OworICAgIH0KKworICAgIHJldHVybiBDR1JlY3RaZXJvOworfQorCiAtIChDR1JlY3QpcHJlc2Vu
dGF0aW9uUmVjdEZvckluZGljYXRlZEVsZW1lbnQKIHsKICAgICBVSVZpZXcgKnZpZXcgPSBbc2Vs
ZiBzdXBlcnZpZXdGb3JTaGVldF07CkBAIC0xNTUsNyArMTg5LDYgQEAgc3RhdGljIExTQXBwTGlu
ayAqYXBwTGlua0ZvclVSTChOU1VSTCAqdXJsKQogICAgIGlmICghdmlldyB8fCAhZGVsZWdhdGUp
CiAgICAgICAgIHJldHVybiBDR1JlY3RaZXJvOwogCi0gICAgc3RhdGljIGNvbnN0IENHRmxvYXQg
cHJlc2VudGF0aW9uRWxlbWVudFJlY3RQYWRkaW5nID0gMTU7CiAgICAgYXV0byBlbGVtZW50Qm91
bmRzID0gW2RlbGVnYXRlIHBvc2l0aW9uSW5mb3JtYXRpb25Gb3JBY3Rpb25TaGVldEFzc2lzdGFu
dDpzZWxmXS5ib3VuZHM7CiAgICAgcmV0dXJuIENHUmVjdEluc2V0KFt2aWV3IGNvbnZlcnRSZWN0
OmVsZW1lbnRCb3VuZHMgZnJvbVZpZXc6X3ZpZXddLCAtcHJlc2VudGF0aW9uRWxlbWVudFJlY3RQ
YWRkaW5nLCAtcHJlc2VudGF0aW9uRWxlbWVudFJlY3RQYWRkaW5nKTsKIH0KQEAgLTMxOCwxMSAr
MzUxLDExIEBAIHN0YXRpYyBMU0FwcExpbmsgKmFwcExpbmtGb3JVUkwoTlNVUkwgKnVybCkKIAog
ICAgIF9lbGVtZW50SW5mbyA9IFdURk1vdmUoZWxlbWVudEluZm8pOwogCi0gICAgaWYgKCFbX2lu
dGVyYWN0aW9uU2hlZXQgcHJlc2VudFNoZWV0OltzZWxmIF9wcmVzZW50YXRpb25TdHlsZUZvcklt
YWdlQXRFbGVtZW50UmVjdDplbGVtZW50Qm91bmRzXV0pCisgICAgaWYgKCFbX2ludGVyYWN0aW9u
U2hlZXQgcHJlc2VudFNoZWV0OltzZWxmIF9zaG91bGRQcmVzZW50QXRUb3VjaExvY2F0aW9uRm9y
RWxlbWVudFJlY3Q6ZWxlbWVudEJvdW5kc10gPyBXS0FjdGlvblNoZWV0UHJlc2VudEF0VG91Y2hM
b2NhdGlvbiA6IFdLQWN0aW9uU2hlZXRQcmVzZW50QXRFbGVtZW50UmVjdF0pCiAgICAgICAgIFtz
ZWxmIGNsZWFudXBTaGVldF07CiB9CiAKLS0gKFdLQWN0aW9uU2hlZXRQcmVzZW50YXRpb25TdHls
ZSlfcHJlc2VudGF0aW9uU3R5bGVGb3JJbWFnZUF0RWxlbWVudFJlY3Q6KENHUmVjdCllbGVtZW50
UmVjdAorLSAoQk9PTClfc2hvdWxkUHJlc2VudEF0VG91Y2hMb2NhdGlvbkZvckVsZW1lbnRSZWN0
OihDR1JlY3QpZWxlbWVudFJlY3QKIHsKICAgICBhdXRvIGFwcGFyZW50RWxlbWVudFJlY3QgPSBb
X3ZpZXcgY29udmVydFJlY3Q6ZWxlbWVudFJlY3QgdG9WaWV3Ol92aWV3LndpbmRvd107CiAgICAg
YXV0byB3aW5kb3dSZWN0ID0gX3ZpZXcud2luZG93LmJvdW5kczsKQEAgLTMzNiwxMCArMzY5LDcg
QEAgc3RhdGljIExTQXBwTGluayAqYXBwTGlua0ZvclVSTChOU1VSTCAqdXJsKQogICAgIC8vIElm
IGF0IGxlYXN0IHRoaXMgbXVjaCBvZiB0aGUgd2luZG93IGlzIGF2YWlsYWJsZSBmb3IgdGhlIHBv
cG92ZXIgdG8gZHJhdyBpbiwgdGhlbiB0YXJnZXQgdGhlIGVsZW1lbnQgcmVjdCB3aGVuIHByZXNl
bnRpbmcgdGhlIGFjdGlvbiBtZW51IHBvcG92ZXIuCiAgICAgLy8gT3RoZXJ3aXNlLCB0aGVyZSBp
cyBub3QgZW5vdWdoIHNwYWNlIHRvIHBvc2l0aW9uIHRoZSBwb3BvdmVyIGFyb3VuZCB0aGUgZWxl
bWVudCwgc28gcmV2ZXJ0IHRvIHVzaW5nIHRoZSB0b3VjaCBsb2NhdGlvbiBpbnN0ZWFkLgogICAg
IHN0YXRpYyBjb25zdCBDR0Zsb2F0IG1pbmltdW1BdmFpbGFibGVXaWR0aE9ySGVpZ2h0UmF0aW8g
PSAwLjQ7Ci0gICAgaWYgKHN0ZDo6bWF4KGxlZnRJbnNldCwgcmlnaHRJbnNldCkgPiBtaW5pbXVt
QXZhaWxhYmxlV2lkdGhPckhlaWdodFJhdGlvICogQ0dSZWN0R2V0V2lkdGgod2luZG93UmVjdCkg
fHwgc3RkOjptYXgodG9wSW5zZXQsIGJvdHRvbUluc2V0KSA+IG1pbmltdW1BdmFpbGFibGVXaWR0
aE9ySGVpZ2h0UmF0aW8gKiBDR1JlY3RHZXRIZWlnaHQod2luZG93UmVjdCkpCi0gICAgICAgIHJl
dHVybiBXS0FjdGlvblNoZWV0UHJlc2VudEF0RWxlbWVudFJlY3Q7Ci0KLSAgICByZXR1cm4gV0tB
Y3Rpb25TaGVldFByZXNlbnRBdFRvdWNoTG9jYXRpb247CisgICAgcmV0dXJuIHN0ZDo6bWF4KGxl
ZnRJbnNldCwgcmlnaHRJbnNldCkgPD0gbWluaW11bUF2YWlsYWJsZVdpZHRoT3JIZWlnaHRSYXRp
byAqIENHUmVjdEdldFdpZHRoKHdpbmRvd1JlY3QpICYmIHN0ZDo6bWF4KHRvcEluc2V0LCBib3R0
b21JbnNldCkgPD0gbWluaW11bUF2YWlsYWJsZVdpZHRoT3JIZWlnaHRSYXRpbyAqIENHUmVjdEdl
dEhlaWdodCh3aW5kb3dSZWN0KTsKIH0KIAogLSAodm9pZClfYXBwZW5kT3BlbkFjdGlvbnNGb3JV
Ukw6KE5TVVJMICopdXJsIGFjdGlvbnM6KE5TTXV0YWJsZUFycmF5ICopZGVmYXVsdEFjdGlvbnMg
ZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8KQEAgLTQy
Niw2ICs0NTYsMTEgQEAgc3RhdGljIExTQXBwTGluayAqYXBwTGlua0ZvclVSTChOU1VSTCAqdXJs
KQogICAgIHJldHVybiBkZWZhdWx0QWN0aW9uczsKIH0KIAorLSAoQk9PTCluZWVkc0xpbmtJbmRp
Y2F0b3IKK3sKKyAgICByZXR1cm4gX25lZWRzTGlua0luZGljYXRvcjsKK30KKwogLSAodm9pZClz
aG93TGlua1NoZWV0CiB7CiAgICAgQVNTRVJUKCFfZWxlbWVudEluZm8pOwpAQCAtNDM0LDMwICs0
NjksMzkgQEAgc3RhdGljIExTQXBwTGluayAqYXBwTGlua0ZvclVSTChOU1VSTCAqdXJsKQogICAg
IGlmICghZGVsZWdhdGUpCiAgICAgICAgIHJldHVybjsKIAorICAgIF9uZWVkc0xpbmtJbmRpY2F0
b3IgPSBZRVM7CiAgICAgY29uc3QgYXV0byYgcG9zaXRpb25JbmZvcm1hdGlvbiA9IFtkZWxlZ2F0
ZSBwb3NpdGlvbkluZm9ybWF0aW9uRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZl07CiAKICAg
ICBOU1VSTCAqdGFyZ2V0VVJMID0gW05TVVJMIF93ZWJfVVJMV2l0aFdURlN0cmluZzpwb3NpdGlv
bkluZm9ybWF0aW9uLnVybF07Ci0gICAgaWYgKCF0YXJnZXRVUkwpCisgICAgaWYgKCF0YXJnZXRV
UkwpIHsKKyAgICAgICAgX25lZWRzTGlua0luZGljYXRvciA9IE5POwogICAgICAgICByZXR1cm47
CisgICAgfQogCiAgICAgYXV0byBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUxp
bmsgVVJMOnRhcmdldFVSTCBsb2NhdGlvbjpwb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QucG9p
bnQgdGl0bGU6cG9zaXRpb25JbmZvcm1hdGlvbi50aXRsZSBJRDpwb3NpdGlvbkluZm9ybWF0aW9u
LmlkQXR0cmlidXRlIHJlY3Q6cG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHMgaW1hZ2U6cG9zaXRp
b25JbmZvcm1hdGlvbi5pbWFnZS5nZXQoKV0pOwotICAgIGlmIChbZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG93Q3VzdG9tU2hlZXRG
b3JFbGVtZW50OildICYmIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIHNob3dD
dXN0b21TaGVldEZvckVsZW1lbnQ6ZWxlbWVudEluZm8uZ2V0KCldKQorICAgIGlmIChbZGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY3Rpb25TaGVldEFzc2lzdGFudDpzaG93
Q3VzdG9tU2hlZXRGb3JFbGVtZW50OildICYmIFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFu
dDpzZWxmIHNob3dDdXN0b21TaGVldEZvckVsZW1lbnQ6ZWxlbWVudEluZm8uZ2V0KCldKSB7Cisg
ICAgICAgIF9uZWVkc0xpbmtJbmRpY2F0b3IgPSBOTzsKICAgICAgICAgcmV0dXJuOworICAgIH0K
IAogICAgIGF1dG8gZGVmYXVsdEFjdGlvbnMgPSBbc2VsZiBkZWZhdWx0QWN0aW9uc0ZvckxpbmtT
aGVldDplbGVtZW50SW5mby5nZXQoKV07CiAKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gYWN0aW9u
cyA9IFtkZWxlZ2F0ZSBhY3Rpb25TaGVldEFzc2lzdGFudDpzZWxmIGRlY2lkZUFjdGlvbnNGb3JF
bGVtZW50OmVsZW1lbnRJbmZvLmdldCgpIGRlZmF1bHRBY3Rpb25zOldURk1vdmUoZGVmYXVsdEFj
dGlvbnMpXTsKIAotICAgIGlmICghW2FjdGlvbnMgY291bnRdKQorICAgIGlmICghW2FjdGlvbnMg
Y291bnRdKSB7CisgICAgICAgIF9uZWVkc0xpbmtJbmRpY2F0b3IgPSBOTzsKICAgICAgICAgcmV0
dXJuOworICAgIH0KIAogICAgIFtzZWxmIF9jcmVhdGVTaGVldFdpdGhFbGVtZW50QWN0aW9uczph
Y3Rpb25zLmdldCgpIHNob3dMaW5rVGl0bGU6WUVTXTsKLSAgICBpZiAoIV9pbnRlcmFjdGlvblNo
ZWV0KQorICAgIGlmICghX2ludGVyYWN0aW9uU2hlZXQpIHsKKyAgICAgICAgX25lZWRzTGlua0lu
ZGljYXRvciA9IE5POwogICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgX2VsZW1lbnRJbmZv
ID0gV1RGTW92ZShlbGVtZW50SW5mbyk7CiAKLSAgICBpZiAoIVtfaW50ZXJhY3Rpb25TaGVldCBw
cmVzZW50U2hlZXQ6V0tBY3Rpb25TaGVldFByZXNlbnRBdFRvdWNoTG9jYXRpb25dKQorICAgIGlm
ICghW19pbnRlcmFjdGlvblNoZWV0IHByZXNlbnRTaGVldDpbc2VsZiBfc2hvdWxkUHJlc2VudEF0
VG91Y2hMb2NhdGlvbkZvckVsZW1lbnRSZWN0OnBvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzXSA/
IFdLQWN0aW9uU2hlZXRQcmVzZW50QXRUb3VjaExvY2F0aW9uIDogV0tBY3Rpb25TaGVldFByZXNl
bnRBdENsb3Nlc3RJbmRpY2F0b3JSZWN0XSkKICAgICAgICAgW3NlbGYgY2xlYW51cFNoZWV0XTsK
IH0KIApAQCAtNTMzLDYgKzU3Nyw3IEBAIHN0YXRpYyBMU0FwcExpbmsgKmFwcExpbmtGb3JVUkwo
TlNVUkwgKnVybCkKICAgICBbX2ludGVyYWN0aW9uU2hlZXQgc2V0U2hlZXREZWxlZ2F0ZTpuaWxd
OwogICAgIF9pbnRlcmFjdGlvblNoZWV0ID0gbmlsOwogICAgIF9lbGVtZW50SW5mbyA9IG5pbDsK
KyAgICBfbmVlZHNMaW5rSW5kaWNhdG9yID0gTk87CiB9CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
aW5kZXggNGI1NWVkYjE4YjQyOTc4NTc1MjkxOWI2M2Q0OTVmNGQxOTEyN2MwYy4uNDQ5MTg0MjFi
OTQyODJkNTQ0NjliYmFhOTc0MmEyMmE5NTRmMzU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTE0
NTgsMTMgKzE0NTgsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNTYW1lUGFpcihVSUdlc3R1cmVS
ZWNvZ25pemVyICphLCBVSUdlc3R1cmVSZWNvZ25pemVyICpiLCBVSQogICAgIEludGVyYWN0aW9u
SW5mb3JtYXRpb25SZXF1ZXN0IHJlcXVlc3Qocm91bmRlZEludFBvaW50KHBvaW50KSk7CiAgICAg
W3NlbGYgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6cmVxdWVzdF07CiAKLSAg
ICBpZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNJbWFnZSkKKyAgICBpZiAoX3Bvc2l0aW9uSW5m
b3JtYXRpb24uaXNJbWFnZSB8fCBfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0xpbmspCiAgICAgICAg
IHJldHVybiBZRVM7CiAKLSAgICAvLyBGSVhNRTogQWRkIHN1cHBvcnQgZm9yIGxpbmtzLgotICAg
IGlmIChfcG9zaXRpb25JbmZvcm1hdGlvbi5pc0xpbmspCi0gICAgICAgIHJldHVybiBOTzsKLQog
ICAgIHJldHVybiBfcG9zaXRpb25JbmZvcm1hdGlvbi5oYXNEYXRhSW50ZXJhY3Rpb25BdFBvc2l0
aW9uOwogfQogCkBAIC0xNzU3LDYgKzE3NTMsMTAgQEAgc3RhdGljIHZvaWQgY2FuY2VsUG90ZW50
aWFsVGFwSWZOZWNlc3NhcnkoV0tDb250ZW50VmlldyogY29udGVudFZpZXcpCiAgICAgX2hhc1Zh
bGlkUG9zaXRpb25JbmZvcm1hdGlvbiA9IFlFUzsKICAgICBpZiAoX2FjdGlvblNoZWV0QXNzaXN0
YW50KQogICAgICAgICBbX2FjdGlvblNoZWV0QXNzaXN0YW50IHVwZGF0ZVNoZWV0UG9zaXRpb25d
OworCisjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCisgICAgW3NlbGYgX3VwZGF0ZURhdGFJ
bnRlcmFjdGlvblByZXZpZXdTbmFwc2hvdElmUG9zc2libGVdOworI2VuZGlmCiB9CiAKIC0gKHZv
aWQpX3dpbGxTdGFydFNjcm9sbGluZ09yWm9vbWluZwpAQCAtMzk1Nyw2ICszOTU3LDcgQEAgc3Rh
dGljIGJvb2wgaXNBc3Npc3RhYmxlSW5wdXRUeXBlKElucHV0VHlwZSB0eXBlKQogICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBiZSBtb3JlIGFzeW5jaHJvbm91cywgc2luY2Ugd2UgY29udHJvbCB0
aGUgcHJlc2VudGF0aW9uIG9mIHRoZSBhY3Rpb24gc2hlZXQuCiAgICAgSW50ZXJhY3Rpb25JbmZv
cm1hdGlvblJlcXVlc3QgcmVxdWVzdChfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50
KTsKICAgICByZXF1ZXN0LmluY2x1ZGVTbmFwc2hvdCA9IHRydWU7CisgICAgcmVxdWVzdC5pbmNs
dWRlTGlua0luZGljYXRvciA9IGFzc2lzdGFudC5uZWVkc0xpbmtJbmRpY2F0b3I7CiAgICAgW3Nl
bGYgZW5zdXJlUG9zaXRpb25JbmZvcm1hdGlvbklzVXBUb0RhdGU6cmVxdWVzdF07CiAKICAgICBy
ZXR1cm4gX3Bvc2l0aW9uSW5mb3JtYXRpb247CkBAIC0zOTY3LDYgKzM5NjgsNyBAQCBzdGF0aWMg
Ym9vbCBpc0Fzc2lzdGFibGVJbnB1dFR5cGUoSW5wdXRUeXBlIHR5cGUpCiAgICAgX2hhc1ZhbGlk
UG9zaXRpb25JbmZvcm1hdGlvbiA9IE5POwogICAgIEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1
ZXN0IHJlcXVlc3QoX3Bvc2l0aW9uSW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludCk7CiAgICAgcmVx
dWVzdC5pbmNsdWRlU25hcHNob3QgPSB0cnVlOworICAgIHJlcXVlc3QuaW5jbHVkZUxpbmtJbmRp
Y2F0b3IgPSBhc3Npc3RhbnQubmVlZHNMaW5rSW5kaWNhdG9yOwogCiAgICAgW3NlbGYgcmVxdWVz
dEFzeW5jaHJvbm91c1Bvc2l0aW9uSW5mb3JtYXRpb25VcGRhdGU6cmVxdWVzdF07CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1Mu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0K
aW5kZXggNTc1YjkwNzMwNTNlOWNjN2FhZWJhYTZhZTM4OTY2N2ZlZjk4ZWQwMy4uNzhjMWY3ZDNk
N2VkMzYyMGU2NDAyYTg4ZGQwNWNkMjRkYTAwYjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQpAQCAtMjU1MSw2ICsyNTUx
LDcgQEAgdm9pZCBXZWJQYWdlOjpnZXRQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0
aW9uSW5mb3JtYXRpb25SZXF1ZXN0JiByZXF1ZXMKICNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElP
TikKICAgICBpbmZvLmhhc0RhdGFJbnRlcmFjdGlvbkF0UG9zaXRpb24gPSBtX3BhZ2UtPmhhc0Rh
dGFJbnRlcmFjdGlvbkF0UG9zaXRpb24oYWRqdXN0ZWRQb2ludCk7CiAjZW5kaWYKKyAgICBpbmZv
LmFkanVzdGVkUG9pbnQgPSBhZGp1c3RlZFBvaW50OwogfQogCiB2b2lkIFdlYlBhZ2U6OnJlcXVl
c3RQb3NpdGlvbkluZm9ybWF0aW9uKGNvbnN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25SZXF1ZXN0
JiByZXF1ZXN0KQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGJlYTY0N2Y3NmVkODljZGNlYjA2NmM1ZmIwNWI3ZWE4NDA4OWEyZWMuLjI5ODhkYmVl
MWFkNDYxNTVkMjgxNzRlODFiYTk1OGRhNjAzNDU0NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5n
ZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxNy0wMi0xNCAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBT
dXBwb3J0IGRhdGEgaW50ZXJhY3Rpb24gb24gbGlua3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2ODMzMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
MzAyMDA4Mzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkcyAyIHVuaXQgdGVzdHMgY2hlY2tpbmcgdGhhdCBkYXRhIGludGVyYWN0aW9uIGZyb20g
YSBsaW5rICh3aXRoIG9yIHdpdGhvdXQgYSBiYWNrZ3JvdW5kIGltYWdlKSBpbnRvIGFuCisgICAg
ICAgIGVkaXRhYmxlIGFyZWEgcmVzdWx0cyBpbiB0aGUgbGluayBVUkwgYmVpbmcgaW5zZXJ0ZWQu
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9i
YWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xpbmstYW5kLWlucHV0Lmh0bWw6IEFkZGVk
LgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3Rz
Lm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTctMDItMTMgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSBidWls
ZCBhZnRlciByMjEyMjU0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDFlMzAwYzM5Zjc2N2M3
ZTcxODhkZWJhMjYxMDY2Y2RhZDI1N2E0MmEuLmQ2ZjBmYjNmMjNmNmE5ZGNjMDQ3YTlkOTdmOGNi
M2RhMTQyN2ZiZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTMsOCArNTUzLDEwIEBA
CiAJCUUxOTRFMUJEMTc3RTUzQzcwMDlDNEQ0RSAvKiBTdG9wTG9hZGluZ0Zyb21EaWRSZWNlaXZl
UmVzcG9uc2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBFMTk0RTFCQzE3N0U1MzRBMDA5QzRENEUgLyogU3RvcExvYWRpbmdGcm9tRGlk
UmVjZWl2ZVJlc3BvbnNlLmh0bWwgKi87IH07CiAJCUY0MTUwODZEMURBMDQwQzUwMDQ0QkU5QiAv
KiBwbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxNTA4NkMxREEwNDBDMTAwNDRCRTlCIC8qIHBsYXkt
YXVkaW8tb24tY2xpY2suaHRtbCAqLzsgfTsKIAkJRjQyREE1MTYxRDhDRUZFNDAwMzM2RjQwIC8q
IGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MkRBNTE1MUQ4Q0VGREIwMDMzNkY0
MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCAqLzsgfTsKKwkJRjQzNTVD
RjAxRTUyMTk4MTAwOTAwRjY0IC8qIGJhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NDM1NUNFRjFFNTIxOTYxMDA5MDBGNjQgLyogYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1
dC5odG1sICovOyB9OwogCQlGNDVCOTYwQzFFNTA3MDg4MDBDRkFDNUQgLyogYXV0b2ZvY3VzLWNv
bnRlbnRlZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY0NUI5NjBCMUU1MDcwODIwMENGQUM1RCAvKiBhdXRvZm9jdXMtY29u
dGVudGVkaXRhYmxlLmh0bWwgKi87IH07CiAJCUY0NzcyODk5MUU0QUUzQzEwMDdBQkY2QSAvKiBm
dWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3NzI4OTgxRTRBRTNBRDAwN0FCRjZBIC8qIGZ1
bGwtcGFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCAqLzsgfTsKKwkJRjQ5QzA3QUUxRTUxODQ5NTAw
RjZCMDFGIC8qIGxpbmstYW5kLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5QzA3QUQxRTUxODQ5MTAwRjZCMDFGIC8qIGxp
bmstYW5kLWlucHV0Lmh0bWwgKi87IH07CiAJCUY0QkZBNjhFMUU0QUQwODAwMDE1NDI5OCAvKiBE
cmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY0QkZBNjhDMUU0QUQwODAwMDE1NDI5OCAvKiBEcmFnQW5kRHJv
cFBhc3RlYm9hcmRUZXN0cy5tbSAqLzsgfTsKIAkJRjRDMkFCMjIxREQ2RDk1RTAwRTA2RDVCIC8q
IGVub3Jtb3VzLXZpZGVvLXdpdGgtc291bmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEMyQUIyMTFERDZEOTQxMDBFMDZENUIgLyog
ZW5vcm1vdXMtdmlkZW8td2l0aC1zb3VuZC5odG1sICovOyB9OwogCQlGNEQ0RjNCNjFFNEUyQkNC
MDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8q
IERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbSAqLzsgfTsKQEAgLTYzNSw2ICs2MzcsOCBAQAog
CQkJZmlsZXMgPSAoCiAJCQkJQzI1Q0NBMEQxRTUxNDE4NDAwMjZDQjhBIC8qIEFsbEFoZW0uc3Zn
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUMyNUNDQTBCMUU1MTQwQzEwMDI2Q0I4QSAvKiBM
aW5lQnJlYWtpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlGNDM1NUNGMDFFNTIx
OTgxMDA5MDBGNjQgLyogYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAorCQkJCUY0OUMwN0FFMUU1MTg0OTUwMEY2QjAxRiAvKiBsaW5rLWFu
ZC1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NUI5NjBDMUU1MDcwODgw
MENGQUM1RCAvKiBhdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCiAJCQkJRjRGOTNGMzQxRTRFOTE4RDAwRTMzRTJFIC8qIGltYWdlLWFuZC10ZXh0YXJl
YS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0RDRGM0JDMUU0RTUxMUYwMEJCMjc2
NyAvKiBpbWFnZS1hbmQtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8s
CkBAIC0xMzgxLDggKzEzODUsMTAgQEAKIAkJRjNGQzNFRTIxMzY3OEI3MzAwMTI2QTY1IC8qIGxp
Ymd0ZXN0LmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBhcmNoaXZlLmFyOyBwYXRoID0gbGliZ3Rlc3QuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RV
Q1RTX0RJUjsgfTsKIAkJRjQxNTA4NkMxREEwNDBDMTAwNDRCRTlCIC8qIHBsYXktYXVkaW8tb24t
Y2xpY2suaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJwbGF5LWF1ZGlvLW9uLWNs
aWNrLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDJEQTUxNTFEOENFRkRC
MDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IG5hbWUgPSAibGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwi
OyBwYXRoID0gIlRlc3RzL1dlYktpdDJDb2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxv
YWQuaHRtbCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJRjQzNTVDRUYxRTUyMTk2
MTAwOTAwRjY0IC8qIGJhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQuaHRtbDsgbmFtZSA9ICJiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0
bWwiOyBwYXRoID0gIlRlc3RzL1dlYktpdDJDb2NvYS9iYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5k
LWlucHV0Lmh0bWwiOyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUY0NUI5NjBCMUU1
MDcwODIwMENGQUM1RCAvKiBhdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmh0bWw7IHBhdGggPSAiYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sIjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3NzI4OTgxRTRBRTNBRDAwN0FCRjZBIC8qIGZ1
bGwtcGFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9
ICJmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGNDlDMDdBRDFFNTE4NDkxMDBGNkIwMUYgLyogbGluay1hbmQtaW5wdXQuaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgbmFtZSA9ICJsaW5rLWFuZC1pbnB1dC5odG1sIjsgcGF0aCA9
ICJUZXN0cy9XZWJLaXQyQ29jb2EvbGluay1hbmQtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUgPSBT
T1VSQ0VfUk9PVDsgfTsKIAkJRjRCRkE2OEMxRTRBRDA4MDAwMTU0Mjk4IC8qIERyYWdBbmREcm9w
UGFzdGVib2FyZFRlc3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gRHJhZ0FuZERyb3BQYXN0ZWJvYXJkVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0QzJBQjIxMURENkQ5NDEwMEUwNkQ1QiAvKiBlbm9ybW91cy12aWRlby13aXRoLXNv
dW5kLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZW5vcm1vdXMtdmlkZW8td2l0
aC1zb3VuZC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENEYzQjQxRTRF
MkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbTsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIwNDUsNiArMjA1MSw4IEBACiAJCUJDOTA5
NzdCMTI1NTcxQUUwMDA4Mzc1NiAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUY0MzU1Q0VGMUU1MjE5NjEwMDkwMEY2NCAvKiBiYWNr
Z3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwgKi8sCisJCQkJRjQ5QzA3QUQxRTUxODQ5
MTAwRjZCMDFGIC8qIGxpbmstYW5kLWlucHV0Lmh0bWwgKi8sCiAJCQkJQzA0NUY5NDYxMzg1QzJG
ODAwQzBGM0NEIC8qIDE4LWNoYXJhY3RlcnMuaHRtbCAqLywKIAkJCQkxQzJCODE4NTFDODkyNTIz
MDBBNTUyOUYgLyogQWhlbS50dGYgKi8sCiAJCQkJOTNEM0QxOUIxN0IxQTdCMDAwQzdDNDE1IC8q
IGFsbC1jb250ZW50LWluLW9uZS1pZnJhbWUuaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2JhY2tncm91bmQtaW1hZ2UtbGluay1hbmQt
aW5wdXQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2JhY2tn
cm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjc4ZTlkZDI4OWRh
NjFmMzk4YzE5M2MzZWNjZmRiMTUyOGY4YmIwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1p
bnB1dC5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdw
b3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorICAgICAgICA8c3R5bGU+CisgICAg
ICAgIGJvZHkgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6
IDEwMCU7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKworICAgICAgICBhLCAj
ZWRpdG9yIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAy
MDBweDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjAwcHg7CisgICAgICAgICAgICB3aGl0ZS1z
cGFjZTogbm93cmFwOworICAgICAgICB9CisKKyAgICAgICAgYSB7CisgICAgICAgICAgICBiYWNr
Z3JvdW5kLWltYWdlOiB1cmwoaWNvbi5wbmcpOworICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBl
YXQ6IG5vLXJlcGVhdDsKKyAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICB9CisK
KyAgICAgICAgI2VkaXRvciB7CisgICAgICAgICAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDsK
KyAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2
PjxhIGhyZWY9Imh0dHBzOi8vd3d3LmRhcmluZ2ZpcmViYWxsLm5ldCI+PC9hPjwvZGl2PgorICAg
IDxkaXY+PGlucHV0IGlkPSJlZGl0b3IiPjwvaW5wdXQ+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAg
ICBmdW5jdGlvbiBwb3N0RXZlbnRUeXBlKGV2ZW50KSB7CisgICAgICAgd2Via2l0Lm1lc3NhZ2VI
YW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShldmVudC50eXBlKTsKKyAgICB9CisKKyAg
ICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIsIHBvc3RFdmVudFR5cGUpOworICAgIGVk
aXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBl
ZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICA8
L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL2xpbmstYW5kLWlucHV0Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9saW5rLWFuZC1pbnB1dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NDZjZjE3
MDVkMDMwN2MyMzBiOTlhNDA1ODQzZTVkNWIyNmY3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9saW5rLWFuZC1pbnB1dC5odG1sCkBA
IC0wLDAgKzEsMzUgQEAKKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorICAgICAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgewor
ICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAg
ICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKworICAgICAgICBhLCAjZWRpdG9yIHsKKyAg
ICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAg
ICAgICAgIGZvbnQtc2l6ZTogMjAwcHg7CisgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFw
OworICAgICAgICB9CisKKyAgICAgICAgI2VkaXRvciB7CisgICAgICAgICAgICBib3JkZXI6IGJs
YWNrIDFweCBzb2xpZDsKKyAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorPC9oZWFkPgorCis8
Ym9keT4KKyAgICA8ZGl2PjxhIGhyZWY9Imh0dHBzOi8vd3d3LmRhcmluZ2ZpcmViYWxsLm5ldCI+
SGVsbG8gd29ybGQ8L2E+PC9kaXY+CisgICAgPGRpdj48aW5wdXQgaWQ9ImVkaXRvciI+PC9pbnB1
dD48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIHBvc3RFdmVudFR5cGUoZXZlbnQp
IHsKKyAgICAgICB3ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdl
KGV2ZW50LnR5cGUpOworICAgIH0KKworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcm9w
IiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbnRl
ciIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3Zl
ciIsIHBvc3RFdmVudFR5cGUpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQppbmRl
eCBiZWI4ZDIxZDJkN2JlMTQ3NzFmODMwNzMxZjg4MWQ1ZTZjOTZjYjBhLi5lM2NhMmVmZWFjMTI2
NzUzYWQ5NWJkNjY4NzhjNjg2ODkyMDY0NjZiIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQpAQCAtODksNiArODksMzIg
QEAgVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgQ29udGVudEVkaXRhYmxlVG9Db250ZW50RWRp
dGFibGUpCiAgICAgfSk7CiB9CiAKK1RFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIExpbmtUb0lu
cHV0KQoreworICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAs
IDUwMCldKTsKKyAgICBydW5UZXN0c0V4cGVjdGluZ1RvT2JzZXJ2ZUV2ZW50cyh3ZWJWaWV3Lmdl
dCgpLCBAWyBEYXRhSW50ZXJhY3Rpb25FbnRlckV2ZW50TmFtZSwgRGF0YUludGVyYWN0aW9uT3Zl
ckV2ZW50TmFtZSwgRGF0YUludGVyYWN0aW9uUGVyZm9ybU9wZXJhdGlvbkV2ZW50TmFtZSBdLCBe
KCkgeworICAgICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJs
aW5rLWFuZC1pbnB1dCJdOworCisgICAgICAgIFJldGFpblB0cjxEYXRhSW50ZXJhY3Rpb25TaW11
bGF0b3I+IGRhdGFJbnRlcmFjdGlvblNpbXVsYXRvciA9IFtbRGF0YUludGVyYWN0aW9uU2ltdWxh
dG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKSBzdGFydExvY2F0aW9uOkNH
UG9pbnRNYWtlKDEwMCwgMTAwKSBlbmRMb2NhdGlvbjpDR1BvaW50TWFrZSgxMDAsIDMwMCldOwor
ICAgICAgICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHJ1bl07CisKKyAgICAgICAgRVhQRUNU
X1dLX1NUUkVRKCJodHRwczovL3d3dy5kYXJpbmdmaXJlYmFsbC5uZXQvIiwgW3dlYlZpZXcgc3Ry
aW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImVkaXRvci52YWx1ZSJdLlVURjhTdHJpbmcpOwor
ICAgIH0pOworfQorCitURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBCYWNrZ3JvdW5kSW1hZ2VM
aW5rVG9JbnB1dCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFk
b3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwg
MCwgMzIwLCA1MDApXSk7CisgICAgcnVuVGVzdHNFeHBlY3RpbmdUb09ic2VydmVFdmVudHMod2Vi
Vmlldy5nZXQoKSwgQFsgRGF0YUludGVyYWN0aW9uRW50ZXJFdmVudE5hbWUsIERhdGFJbnRlcmFj
dGlvbk92ZXJFdmVudE5hbWUsIERhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb25FdmVudE5h
bWUgXSwgXigpIHsKKyAgICAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5h
bWVkOkAiYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dCJdOworCisgICAgICAgIFJldGFp
blB0cjxEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3I+IGRhdGFJbnRlcmFjdGlvblNpbXVsYXRvciA9
IFtbRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZpZXc6d2ViVmll
dy5nZXQoKSBzdGFydExvY2F0aW9uOkNHUG9pbnRNYWtlKDEwMCwgMTAwKSBlbmRMb2NhdGlvbjpD
R1BvaW50TWFrZSgxMDAsIDMwMCldOworICAgICAgICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9y
IHJ1bl07CisKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJodHRwczovL3d3dy5kYXJpbmdmaXJl
YmFsbC5uZXQvIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImVkaXRv
ci52YWx1ZSJdLlVURjhTdHJpbmcpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0
V2ViS2l0QVBJCiAKICNlbmRpZiAvLyBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikK
</data>
<flag name="review"
          id="323368"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301575</attachid>
            <date>2017-02-14 20:20:06 -0800</date>
            <delta_ts>2017-02-14 20:24:34 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-168331-20170214201731.patch</filename>
            <type>text/plain</type>
            <size>36933</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk5YzIzYmI5NzQ4Yjk4
MDM3YTdkZmZlNzVlYjZmNmE5NThhYmMxZC4uMzExMzNhOTNmY2Q0ZGNmYTA4OWYyNDcyMTFkZWQx
ODkyOTMzZTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTAyLTE0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFN1cHBv
cnQgZGF0YSBpbnRlcmFjdGlvbiBvbiBsaW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MzMxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDIw
MDgzNz4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZHMg
c3VwcG9ydCBmb3IgZGF0YSBpbnRlcmFjdGlvbiBvbiBsaW5rcyBhdCB0aGUgV2ViQ29yZSBsYXll
ciwgcmVmYWN0b3Jpbmcgc29tZSBkcmFnLWFuZC1kcm9wIGNvZGUgb24gdGhlIE1hYworICAgICAg
ICBhbG9uZyB0aGUgd2F5LiBBbHNvIGFkZHMgdHdvIG5ldyBUZXN0V2ViS2l0QVBJIHVuaXQgdGVz
dHMgaW4gRGF0YUludGVyYWN0aW9uVGVzdHMubW06IExpbmtUb0lucHV0IGFuZAorICAgICAgICBC
YWNrZ3JvdW5kSW1hZ2VMaW5rVG9JbnB1dCAoc2VlIFRvb2xzL0NoYW5nZUxvZyBmb3IgbW9yZSBp
bmZvcm1hdGlvbikuCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpzdGFydERyYWcpOgorICAgICAgICAoV2ViQ29y
ZTo6RHJhZ0NvbnRyb2xsZXI6OmRvSW1hZ2VEcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdD
b250cm9sbGVyOjpkb1N5c3RlbURyYWcpOgorCisgICAgICAgIEludHJvZHVjZSBwbGF0Zm9ybUFk
anVzdERyYWdJbWFnZUZvckRldmljZVNjYWxlRmFjdG9yLCBhbmQgc3BlY2lhbC1jYXNlIGRyYWcg
aW1hZ2VzIGZvciBsaW5rcyB0byBhbmNob3IgYXQgdGhlCisgICAgICAgIGJvdHRvbSBjZW50ZXIu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cGxhdGZvcm1BZGp1c3REcmFnSW1hZ2VGb3JEZXZpY2VTY2FsZUZhY3Rvcik6CisKKyAgICAgICAg
U2NhbGUgdGhlIGRyYWcgaW1hZ2UgdXAgYnkgdGhlIGRldmljZSBzY2FsZSBmYWN0b3IuIEluIFdl
YkRyYWdDbGllbnQsIHdlIHNjYWxlIHRoZSBpbWFnZSBiYWNrIGRvd24gdG8gdGhlCisgICAgICAg
IG9yaWdpbmFsIHNpemUuIEl0IHNlZW1zIHRoZSByZWFzb24gd2UgZG8gdGhpcyBleHRyYSBkYW5j
ZSBpcyBiZWNhdXNlIHRoZSBpbWFnZSBzaXppbmcgaGV1cmlzdGljIGluIGJldHdlZW4KKyAgICAg
ICAgYXNzdW1lcyB0aGF0IHRoZSBpbWFnZSBkaW1lbnNpb25zIGFyZSBmb3IgYSBub24tcmV0aW5h
IGRldmljZSwgYnV0IHRoaXMgd29yayBzaG91bGQgcmVhbGx5IG5vdCBiZSBuZWNlc3NhcnkgaWYK
KyAgICAgICAgd2UgdHdlYWsgdGhlIGhldXJpc3RpYyB0byBhY2NvdW50IGZvciBkZXZpY2VTY2Fs
ZUZhY3Rvci4gV2Ugc2hvdWxkIGFkZHJlc3MgdGhpcyBpbiBhIHNlcGFyYXRlIHBhdGNoLgorCisg
ICAgICAgICogcGxhdGZvcm0vRHJhZ0ltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvUGF0aC5oOgorCiAyMDE3LTAyLTEzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBTdG9wIHNvZnQtbGlua2luZyBDVFJ1bkdldEJh
c2VBZHZhbmNlc0FuZE9yaWdpbnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU3ZTdjYjBlMGU5ODM1MjEwOWM2
MGMxYzRmN2E3MWNlN2Y2MGFmNjEuLjYyYjQ4ZWQ0MDdhNGNhZjNlNDNmMzJjOGVjMGRmOWU1N2Vh
YTIzYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxNy0wMi0xNCAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBTdXBwb3J0IGRh
dGEgaW50ZXJhY3Rpb24gb24gbGlua3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2ODMzMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzAyMDA4Mzc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGRzIHN1cHBv
cnQgZm9yIGRhdGEgaW50ZXJhY3Rpb24gb24gbGlua3MgYXQgdGhlIGNsaWVudCBsYXllciBmb3Ig
V2ViS2l0Mi4gVGhpcyBpbnZvbHZlcyBzZXZlcmFsIGNoYW5nZXMsCisgICAgICAgIGRldGFpbGVk
IGluIHRoZSBwZXItbWV0aG9kIGNoYW5nZXMgYmVsb3c6CisKKyAgICAgICAgKiBTaGFyZWQvaW9z
L0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmg6CisgICAgICAgICogU2hhcmVkL2lv
cy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmVuY29kZSk6CisgICAgICAgIChXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpkZWNvZGUpOgorCisgICAgICAg
IEFkZCBhZGp1c3RlZFBvaW50ICh0aGUgcmVxdWVzdCBwb2ludCwgYWRqdXN0ZWQgdG8gdGFrZSBu
b2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMgaW50byBhY2NvdW50KSB0bworICAgICAgICBJbnRl
cmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi4gVGhlIHdlYiBwcm9jZXNzIHNlbmRzIHRoaXMg
YWRqdXN0ZWQgcG9pbnQgb3ZlciB0byB0aGUgVUkgcHJvY2VzcyBzbyB0aGF0IHRoZQorICAgICAg
ICBVSSBwcm9jZXNzIHdpbGwgYmUgYWJsZSB0byBiZWdpbiBhIGRhdGEgaW50ZXJhY3Rpb24gYXQg
dGhlIGFkanVzdGVkIHBvaW50IHJhdGhlciB0aGFuIHRoZSByZXF1ZXN0IHBvaW50LCB3aGljaAor
ICAgICAgICBpcyBuZWNlc3NhcnkgZm9yIHNtYWxsIGNsaWNrYWJsZSAoYW5kIGRhdGEtaW50ZXJh
Y3RpdmUpIGVsZW1lbnRzIHN1Y2ggYXMgbGlua3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9z
L1dLQWN0aW9uU2hlZXQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXQu
bW06CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXQgcHJlc2VudFNoZWV0Ol0pOgorICAgICAgICAo
LVtXS0FjdGlvblNoZWV0IF9wcmVzZW50YXRpb25SZWN0Rm9yU3R5bGU6XSk6CisgICAgICAgICgt
W1dLQWN0aW9uU2hlZXQgdXBkYXRlU2hlZXRQb3NpdGlvbl0pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3Mv
V0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lz
dGFudCBwcmVzZW50YXRpb25SZWN0Rm9yRWxlbWVudFVzaW5nQ2xvc2VzdEluZGljYXRlZFJlY3Rd
KToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBwcmVzZW50YXRpb25SZWN0Rm9y
SW5kaWNhdGVkRWxlbWVudF0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHNo
b3dJbWFnZVNoZWV0XSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgX3Nob3Vs
ZFByZXNlbnRBdFRvdWNoTG9jYXRpb25Gb3JFbGVtZW50UmVjdDpdKToKKyAgICAgICAgKC1bV0tB
Y3Rpb25TaGVldEFzc2lzdGFudCBuZWVkc0xpbmtJbmRpY2F0b3JdKToKKyAgICAgICAgKC1bV0tB
Y3Rpb25TaGVldEFzc2lzdGFudCBzaG93TGlua1NoZWV0XSk6CisgICAgICAgICgtW1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQgY2xlYW51cFNoZWV0XSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQgX3ByZXNlbnRhdGlvblN0eWxlRm9ySW1hZ2VBdEVsZW1lbnRSZWN0Ol0pOiBEZWxl
dGVkLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciB0aGUgV0tBY3Rpb25TaGVldFByZXNlbnRB
dENsb3Nlc3RJbmRpY2F0b3JSZWN0IHN0eWxlIG9mIHByZXNlbnRpbmcgYW4gYWN0aW9uIHNoZWV0
LiBXaGVuCisgICAgICAgIHNob3dpbmcgdGhlIGFjdGlvbiBzaGVldCBmb3IgYSBsaW5rIGFuZCB0
aGVyZSBpcyBzcGFjZSBhbG9uZyB0aGUgbWFyZ2lucyB0byBzaG93IGEgcG9wb3ZlciBpbiB0aGUg
Zmlyc3QgcGxhY2UsCisgICAgICAgIHdlIHdpbGwgbm93IHRhcmdldCB0aGUgcG9wb3ZlciByZWN0
IHRvIHRoZSBib3VuZGluZyByZWN0IG9mIHRoZSBzZXQgb2YgYWRqYWNlbnQgKG9yIG5lYXJseS1h
ZGphY2VudCkgZWxlbWVudAorICAgICAgICByZWN0cyBjbG9zZXN0IHRvIHRoZSB1c2VyJ3MgdG91
Y2ggbG9jYXRpb24uIFRoaXMgY292ZXJzIGNhc2VzIHdoZXJlIHRoZSBsaW5rIGlzIHNwbGl0IGlu
dG8gbXVsdGlwbGUgcmVjdHMgZHVlIHRvCisgICAgICAgIGEgbGluZSBicmVhaywgd2hlbiB0aGUg
bGluayBpcyBvbiBtdWx0aXBsZSBsaW5lcyB3aXRoIGEgamFnZ2VkIHJlY3QgcGVyIGxpbmUsIGFu
ZCB3aGVuIGJvdGggb2YgdGhlIGFib3ZlIGFyZQorICAgICAgICB0cnVlLgorCisgICAgICAgICog
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dL
Q29udGVudFZpZXcgcG9pbnRJc0luRGF0YUludGVyYWN0aW9uQ29udGVudDpdKToKKyAgICAgICAg
KC1bV0tDb250ZW50VmlldyBfcG9zaXRpb25JbmZvcm1hdGlvbkRpZENoYW5nZTpdKToKKyAgICAg
ICAgKC1bV0tDb250ZW50VmlldyBwb3NpdGlvbkluZm9ybWF0aW9uRm9yQWN0aW9uU2hlZXRBc3Np
c3RhbnQ6XSk6CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgdXBkYXRlUG9zaXRpb25JbmZvcm1h
dGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50Ol0pOgorCisgICAgICAgIEluY2x1ZGUgbGluayBp
bmRpY2F0b3IgZGF0YSBpbiB0aGUgcG9zaXRpb24gaW5mb3JtYXRpb24gcmVxdWVzdCBpZiBuZWVk
ZWQuIEFzIHRoZSBGSVhNRSBzdWdnZXN0cywgdGhpcyBjYW4gYmUKKyAgICAgICAgaW1wcm92ZWQg
YnkgYXN5bmNocm9ub3VzbHkgcHJlc2VudGluZyB0aGUgYWN0aW9uIHNoZWV0IGFzc2lzdGFudCBh
ZnRlciB0aGUgcmVxdWVzdCByZXR1cm5zLCBhbmQgaXMgc29tZXRoaW5nIHdlCisgICAgICAgIHNo
b3VsZCBhZGRyZXNzIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFBvc2l0
aW9uSW5mb3JtYXRpb24pOgorCiAyMDE3LTAyLTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENhbGwgV0tEZXN0cm95UmVuZGVyaW5nUmVzb3VyY2Vz
KCkgb24gaU9TIHdoZW4gdGFicyBhcmUgYmFja2dyb3VuZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwCmluZGV4IDIxMDEyMTRlMDczZGRjYzQ2OGNmZTkxOTk4YTY1MjQ2MmE2
ZWM1M2IuLjg0ZGEzOGViZDJmNDNiYzYzYmJiOTM1MjNmZWIxYzI1MzFlNWE1MDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC05MTYsOCArOTE2LDcgQEAgYm9vbCBE
cmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKEZyYW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3Rh
dGUsIERyYWdPcGVyYXRpb24KICAgICAgICAgICAgIEludFNpemUgc2l6ZSA9IGRyYWdJbWFnZVNp
emUoZHJhZ0ltYWdlLmdldCgpKTsKICAgICAgICAgICAgIG1fZHJhZ09mZnNldCA9IEludFBvaW50
KC1zaXplLndpZHRoKCkgLyAyLCAtTGlua0RyYWdCb3JkZXJJbnNldCk7CiAgICAgICAgICAgICBk
cmFnTG9jID0gSW50UG9pbnQobW91c2VEcmFnZ2VkUG9pbnQueCgpICsgbV9kcmFnT2Zmc2V0Lngo
KSwgbW91c2VEcmFnZ2VkUG9pbnQueSgpICsgbV9kcmFnT2Zmc2V0LnkoKSk7Ci0gICAgICAgICAg
ICAvLyBMYXRlciBjb2RlIGV4cGVjdHMgdGhlIGRyYWcgaW1hZ2UgdG8gYmUgc2NhbGVkIGJ5IGRl
dmljZSdzIHNjYWxlIGZhY3Rvci4KLSAgICAgICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFnZSB7
IHNjYWxlRHJhZ0ltYWdlKGRyYWdJbWFnZS5nZXQoKSwgRmxvYXRTaXplKG1fcGFnZS5kZXZpY2VT
Y2FsZUZhY3RvcigpLCBtX3BhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkpIH07CisgICAgICAgICAg
ICBkcmFnSW1hZ2UgPSBEcmFnSW1hZ2UgeyBwbGF0Zm9ybUFkanVzdERyYWdJbWFnZUZvckRldmlj
ZVNjYWxlRmFjdG9yKGRyYWdJbWFnZS5nZXQoKSwgbV9wYWdlLmRldmljZVNjYWxlRmFjdG9yKCkp
IH07CiAgICAgICAgIH0KICAgICAgICAgZG9TeXN0ZW1EcmFnKFdURk1vdmUoZHJhZ0ltYWdlKSwg
ZHJhZ0xvYywgbW91c2VEcmFnZ2VkUG9pbnQsIHsgfSwgZGF0YVRyYW5zZmVyLCBzcmMsIHRydWUp
OwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCkBAIC05NzEsNyArOTcwLDcgQEAgdm9p
ZCBEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50
UG9pbnQmIGRyYWdPcmlnaW4sIGMKICAgICAgICAgZHJhZ0ltYWdlID0gRHJhZ0ltYWdlIHsgZml0
RHJhZ0ltYWdlVG9NYXhTaXplKGRyYWdJbWFnZS5nZXQoKSwgbGF5b3V0UmVjdC5zaXplKCksIG1h
eERyYWdJbWFnZVNpemUoKSkgfTsKICAgICAgICAgSW50U2l6ZSBmaXR0ZWRTaXplID0gZHJhZ0lt
YWdlU2l6ZShkcmFnSW1hZ2UuZ2V0KCkpOwogCi0gICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFn
ZSB7IHNjYWxlRHJhZ0ltYWdlKGRyYWdJbWFnZS5nZXQoKSwgRmxvYXRTaXplKG1fcGFnZS5kZXZp
Y2VTY2FsZUZhY3RvcigpLCBtX3BhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkpIH07CisgICAgICAg
IGRyYWdJbWFnZSA9IERyYWdJbWFnZSB7IHBsYXRmb3JtQWRqdXN0RHJhZ0ltYWdlRm9yRGV2aWNl
U2NhbGVGYWN0b3IoZHJhZ0ltYWdlLmdldCgpLCBtX3BhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkg
fTsKICAgICAgICAgZHJhZ0ltYWdlID0gRHJhZ0ltYWdlIHsgZGlzc29sdmVEcmFnSW1hZ2VUb0Zy
YWN0aW9uKGRyYWdJbWFnZS5nZXQoKSwgRHJhZ0ltYWdlQWxwaGEpIH07CiAKICAgICAgICAgLy8g
UHJvcGVybHkgb3JpZW50IHRoZSBkcmFnIGltYWdlIGFuZCBvcmllbnQgaXQgZGlmZmVyZW50bHkg
aWYgaXQncyBzbWFsbGVyIHRoYW4gdGhlIG9yaWdpbmFsLgpAQCAtMTAwMiw3ICsxMDAxLDkgQEAg
dm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURyYWcoRWxlbWVudCYgZWxlbWVudCwgY29uc3Qg
SW50UG9pbnQmIGRyYWdPcmlnaW4sIGMKIHZvaWQgRHJhZ0NvbnRyb2xsZXI6OmRvU3lzdGVtRHJh
ZyhEcmFnSW1hZ2UgaW1hZ2UsIGNvbnN0IEludFBvaW50JiBkcmFnTG9jLCBjb25zdCBJbnRQb2lu
dCYgZXZlbnRQb3MsIGNvbnN0IEludFJlY3QmIGRyYWdJbWFnZUJvdW5kcywgRGF0YVRyYW5zZmVy
JiBkYXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFtZSwgYm9vbCBmb3JMaW5rKQogewogICAgIEZsb2F0
UG9pbnQgZHJhZ0ltYWdlQW5jaG9yID0geyAwLjUsIDAuNSB9OwotICAgIGlmICghZHJhZ0ltYWdl
Qm91bmRzLmlzRW1wdHkoKSkgeworICAgIGlmIChmb3JMaW5rKQorICAgICAgICBkcmFnSW1hZ2VB
bmNob3Iuc2V0WSgxKTsKKyAgICBlbHNlIGlmICghZHJhZ0ltYWdlQm91bmRzLmlzRW1wdHkoKSkg
ewogICAgICAgICBkcmFnSW1hZ2VBbmNob3Iuc2V0WCgoZXZlbnRQb3MueCgpIC0gZHJhZ0ltYWdl
Qm91bmRzLngoKSkgLyAoZmxvYXQpZHJhZ0ltYWdlQm91bmRzLndpZHRoKCkpOwogICAgICAgICBk
cmFnSW1hZ2VBbmNob3Iuc2V0WSgoZXZlbnRQb3MueSgpIC0gZHJhZ0ltYWdlQm91bmRzLnkoKSkg
LyAoZmxvYXQpZHJhZ0ltYWdlQm91bmRzLmhlaWdodCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vRHJhZ0ltYWdlLmNwcAppbmRleCBiYjcxNmFhYjgzNWFhY2IzNjQyYmE1ZjM0ZTJhNmVj
NDNjN2M5MmJiLi5jNzIwM2ExM2Q5NDBmNDZhOGFjZTc0MzEwNjg5MDA1M2U3ZDI0ZDJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5jcHAKQEAgLTIxMCw2ICsyMTAsMTQgQEAgRHJh
Z0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckltYWdlKEZyYW1lJiBmcmFtZSwgTm9kZSYgbm9k
ZSwgSW50UmVjdCYgaW1hZ2VSZWMKICAgICByZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbVNuYXBz
aG90KHNuYXBzaG90Tm9kZShmcmFtZSwgbm9kZSksICZub2RlKTsKIH0KIAorI2lmICFFTkFCTEUo
REFUQV9JTlRFUkFDVElPTikKK0RyYWdJbWFnZVJlZiBwbGF0Zm9ybUFkanVzdERyYWdJbWFnZUZv
ckRldmljZVNjYWxlRmFjdG9yKERyYWdJbWFnZVJlZiBpbWFnZSwgZmxvYXQgZGV2aWNlU2NhbGVG
YWN0b3IpCit7CisgICAgLy8gTGF0ZXIgY29kZSBleHBlY3RzIHRoZSBkcmFnIGltYWdlIHRvIGJl
IHNjYWxlZCBieSBkZXZpY2UncyBzY2FsZSBmYWN0b3IuCisgICAgcmV0dXJuIHNjYWxlRHJhZ0lt
YWdlKGltYWdlLCB7IGRldmljZVNjYWxlRmFjdG9yLCBkZXZpY2VTY2FsZUZhY3RvciB9KTsKK30K
KyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKENPQ09BKSAmJiAhUExBVEZPUk0oV0lOKQogRHJhZ0lt
YWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxpbmsoVVJMJiwgY29uc3QgU3RyaW5nJiwgRm9udFJl
bmRlcmluZ01vZGUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFn
SW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCmluZGV4IGRhNTJh
YjllODk0MjVhMWY4OWVhNDZkYjJjMDcxZGE4MGJiZWIwODQuLjFkODhmMDQyNmMzZDU5ZDIyOGQw
ODUxMjAyOGU0ZmU2MTA5MDgyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCkBA
IC03OCw2ICs3OCw3IEBAIEludFNpemUgZHJhZ0ltYWdlU2l6ZShEcmFnSW1hZ2VSZWYpOwogLy8g
dGhlIGlucHV0IGltYWdlIHJlZiB3aWxsIHN0aWxsIGJlIHZhbGlkIGFmdGVyIHRoZXkgaGF2ZSBi
ZWVuIGNhbGxlZC4KIERyYWdJbWFnZVJlZiBmaXREcmFnSW1hZ2VUb01heFNpemUoRHJhZ0ltYWdl
UmVmLCBjb25zdCBJbnRTaXplJiBzcmNTaXplLCBjb25zdCBJbnRTaXplJiBkc3RTaXplKTsKIERy
YWdJbWFnZVJlZiBzY2FsZURyYWdJbWFnZShEcmFnSW1hZ2VSZWYsIEZsb2F0U2l6ZSBzY2FsZSk7
CitEcmFnSW1hZ2VSZWYgcGxhdGZvcm1BZGp1c3REcmFnSW1hZ2VGb3JEZXZpY2VTY2FsZUZhY3Rv
cihEcmFnSW1hZ2VSZWYsIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yKTsKIERyYWdJbWFnZVJlZiBk
aXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24oRHJhZ0ltYWdlUmVmLCBmbG9hdCBkZWx0YSk7CiAK
IERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1hZ2VGcm9tSW1hZ2UoSW1hZ2UqLCBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvUGF0aC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5o
CmluZGV4IGE5MTI0NDc5NDRmNWFiYjRiYTljNTJlNDhhZjM4ZTlmMjQ2MzcyMjkuLjI4MzFjZmUz
M2U3YzA2YTg4ZDNjNmI4M2M5MTI2Yjg1MDJhMzRlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9QYXRoLmgKQEAgLTEyMiw3ICsxMjIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIC8vIGZhc3RCb3VuZGluZ1JlY3QoKSBzaG91bGQgZXF1YWwgb3IgY29udGFpbiBi
b3VuZGluZ1JlY3QoKTsgYm91bmRpbmdSZWN0KCkKICAgICAgICAgLy8gc2hvdWxkIHBlcmZlY3Rs
eSBib3VuZCB0aGUgcG9pbnRzIHdpdGhpbiB0aGUgcGF0aC4KICAgICAgICAgRmxvYXRSZWN0IGJv
dW5kaW5nUmVjdCgpIGNvbnN0OwotICAgICAgICBGbG9hdFJlY3QgZmFzdEJvdW5kaW5nUmVjdCgp
IGNvbnN0OworICAgICAgICBXRUJDT1JFX0VYUE9SVCBGbG9hdFJlY3QgZmFzdEJvdW5kaW5nUmVj
dCgpIGNvbnN0OwogICAgICAgICBGbG9hdFJlY3Qgc3Ryb2tlQm91bmRpbmdSZWN0KFN0cm9rZVN0
eWxlQXBwbGllciogPSAwKSBjb25zdDsKIAogICAgICAgICBmbG9hdCBsZW5ndGgoKSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1h
dGlvbkF0UG9zaXRpb24uaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24uaAppbmRleCBiNDFkNjRkOTIwMDk4YzdiMmE1NWRjMTFkODFi
ODIyYzg2ZjY5NWQ3Li43NjYxYjFhOGM4MGQxNTc2NGZlZDYwZDYwNzhiZGFlM2NkNDE3NjAwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCkBAIC01NSw2ICs1NSw3IEBAIHN0cnVjdCBJbnRlcmFj
dGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiB7CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQog
ICAgIGJvb2wgaXNEYXRhRGV0ZWN0b3JMaW5rIHsgZmFsc2UgfTsKICNlbmRpZgorICAgIFdlYkNv
cmU6OkZsb2F0UG9pbnQgYWRqdXN0ZWRQb2ludDsKICAgICBTdHJpbmcgdXJsOwogICAgIFN0cmlu
ZyBpbWFnZVVSTDsKICAgICBTdHJpbmcgdGl0bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbQpp
bmRleCBiYTFhNGM1OTFlMWExNjMxMzZmNTcyZWMwYmEyMDc1YWU2NTQ0NmJhLi40Y2ZkMTIyZDlj
NjhlOTg3ZjJmNzYxMDMyODk0ODUzY2EzMjM2ZTg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24u
bW0KQEAgLTU0LDYgKzU0LDcgQEAgdm9pZCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
bjo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8IGlz
QXR0YWNobWVudDsKICAgICBlbmNvZGVyIDw8IGlzQW5pbWF0ZWRJbWFnZTsKICAgICBlbmNvZGVy
IDw8IGlzRWxlbWVudDsKKyAgICBlbmNvZGVyIDw8IGFkanVzdGVkUG9pbnQ7CiAgICAgZW5jb2Rl
ciA8PCB1cmw7CiAgICAgZW5jb2RlciA8PCBpbWFnZVVSTDsKICAgICBlbmNvZGVyIDw8IHRpdGxl
OwpAQCAtMTE5LDYgKzEyMCw5IEBAIGJvb2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b246OmRlY29kZShJUEM6OkRlY29kZXImIGRlY29kZXIsIEludGVyYWN0aW9uCiAgICAgaWYgKCFk
ZWNvZGVyLmRlY29kZShyZXN1bHQuaXNFbGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuYWRqdXN0ZWRQb2ludCkpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVybCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL2lvcy9XS0FjdGlvblNoZWV0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
QWN0aW9uU2hlZXQuaAppbmRleCAwNWVmYWUwZDRiMTg4MDczMDY5ZDQ0YWUxMTkyYWNhYzE2NmM5
N2UwLi5lM2JhODg0MTI5NmM3OWEzY2ExMzJlNmVhY2Q1OGFkOGJiODM0ODE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXQuaApAQCAtMzAsNyArMzAsOCBA
QAogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS0FjdGlvblNoZWV0UHJlc2VudGF0aW9u
U3R5bGUpIHsKICAgICBXS0FjdGlvblNoZWV0UHJlc2VudEF0VG91Y2hMb2NhdGlvbiwKLSAgICBX
S0FjdGlvblNoZWV0UHJlc2VudEF0RWxlbWVudFJlY3QKKyAgICBXS0FjdGlvblNoZWV0UHJlc2Vu
dEF0RWxlbWVudFJlY3QsCisgICAgV0tBY3Rpb25TaGVldFByZXNlbnRBdENsb3Nlc3RJbmRpY2F0
b3JSZWN0CiB9OwogCiBAcHJvdG9jb2wgV0tBY3Rpb25TaGVldERlbGVnYXRlOwpAQCAtNTEsNiAr
NTIsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS0FjdGlvblNoZWV0UHJlc2VudGF0
aW9uU3R5bGUpIHsKIC0gKFVJVmlldyAqKWhvc3RWaWV3Rm9yU2hlZXQ7CiAtIChDR1JlY3QpaW5p
dGlhbFByZXNlbnRhdGlvblJlY3RJbkhvc3RWaWV3Rm9yU2hlZXQ7CiAtIChDR1JlY3QpcHJlc2Vu
dGF0aW9uUmVjdEZvckluZGljYXRlZEVsZW1lbnQ7CistIChDR1JlY3QpcHJlc2VudGF0aW9uUmVj
dEZvckVsZW1lbnRVc2luZ0Nsb3Nlc3RJbmRpY2F0ZWRSZWN0OwogLSAoQ0dSZWN0KXByZXNlbnRh
dGlvblJlY3RJbkhvc3RWaWV3Rm9yU2hlZXQ7CiAtICh2b2lkKXVwZGF0ZVBvc2l0aW9uSW5mb3Jt
YXRpb247CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dL
QWN0aW9uU2hlZXQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hl
ZXQubW0KaW5kZXggYWE4OTlkNjc2MTgwY2U2Yjc0NjZiY2FlZjc5NWQ1MmRjNTczODg2MS4uOTBk
MDc1NmZhNzA2YTU5MzMyOWYxMmZmOGVmZWJlZGU5MzE4MjVjNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldC5tbQpAQCAtNzYsNyArNzYsNyBAQAogICAg
IC8vIENhbGN1bGF0ZSB0aGUgcHJlc2VudGF0aW9uIHJlY3QganVzdCBiZWZvcmUgc2hvd2luZy4K
ICAgICBDR1JlY3QgcHJlc2VudGF0aW9uUmVjdCA9IENHUmVjdFplcm87CiAgICAgaWYgKFVJX1VT
RVJfSU5URVJGQUNFX0lESU9NKCkgIT0gVUlVc2VySW50ZXJmYWNlSWRpb21QaG9uZSkgewotICAg
ICAgICBwcmVzZW50YXRpb25SZWN0ID0gc3R5bGUgPT0gV0tBY3Rpb25TaGVldFByZXNlbnRBdEVs
ZW1lbnRSZWN0ID8gW19zaGVldERlbGVnYXRlIHByZXNlbnRhdGlvblJlY3RGb3JJbmRpY2F0ZWRF
bGVtZW50XSA6IFtfc2hlZXREZWxlZ2F0ZSBpbml0aWFsUHJlc2VudGF0aW9uUmVjdEluSG9zdFZp
ZXdGb3JTaGVldF07CisgICAgICAgIHByZXNlbnRhdGlvblJlY3QgPSBbc2VsZiBfcHJlc2VudGF0
aW9uUmVjdEZvclN0eWxlOnN0eWxlXTsKICAgICAgICAgaWYgKENHUmVjdElzRW1wdHkocHJlc2Vu
dGF0aW9uUmVjdCkpCiAgICAgICAgICAgICByZXR1cm4gTk87CiAgICAgfQpAQCAtODUsNiArODUs
MTcgQEAKICAgICByZXR1cm4gW3NlbGYgcHJlc2VudFNoZWV0RnJvbVJlY3Q6cHJlc2VudGF0aW9u
UmVjdF07CiB9CiAKKy0gKENHUmVjdClfcHJlc2VudGF0aW9uUmVjdEZvclN0eWxlOihXS0FjdGlv
blNoZWV0UHJlc2VudGF0aW9uU3R5bGUpc3R5bGUKK3sKKyAgICBpZiAoc3R5bGUgPT0gV0tBY3Rp
b25TaGVldFByZXNlbnRBdEVsZW1lbnRSZWN0KQorICAgICAgICByZXR1cm4gW19zaGVldERlbGVn
YXRlIHByZXNlbnRhdGlvblJlY3RGb3JJbmRpY2F0ZWRFbGVtZW50XTsKKworICAgIGlmIChzdHls
ZSA9PSBXS0FjdGlvblNoZWV0UHJlc2VudEF0Q2xvc2VzdEluZGljYXRvclJlY3QpCisgICAgICAg
IHJldHVybiBbX3NoZWV0RGVsZWdhdGUgcHJlc2VudGF0aW9uUmVjdEZvckVsZW1lbnRVc2luZ0Ns
b3Nlc3RJbmRpY2F0ZWRSZWN0XTsKKworICAgIHJldHVybiBbX3NoZWV0RGVsZWdhdGUgaW5pdGlh
bFByZXNlbnRhdGlvblJlY3RJbkhvc3RWaWV3Rm9yU2hlZXRdOworfQorCiAtIChCT09MKXByZXNl
bnRTaGVldEZyb21SZWN0OihDR1JlY3QpcHJlc2VudGF0aW9uUmVjdAogewogICAgIFVJVmlldyAq
dmlldyA9IFtfc2hlZXREZWxlZ2F0ZSBob3N0Vmlld0ZvclNoZWV0XTsKQEAgLTE5Niw3ICsyMDcs
NyBAQAogICAgIGlmIChfaXNSb3RhdGluZyB8fCAhX3JlYWR5VG9QcmVzZW50QWZ0ZXJSb3RhdGlv
biB8fCBpc0JlaW5nUHJlc2VudGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBDR1JlY3QgcHJl
c2VudGF0aW9uUmVjdCA9IF9jdXJyZW50UHJlc2VudGF0aW9uU3R5bGUgPT0gV0tBY3Rpb25TaGVl
dFByZXNlbnRBdEVsZW1lbnRSZWN0ID8gW19zaGVldERlbGVnYXRlIHByZXNlbnRhdGlvblJlY3RG
b3JJbmRpY2F0ZWRFbGVtZW50XSA6IFtfc2hlZXREZWxlZ2F0ZSBpbml0aWFsUHJlc2VudGF0aW9u
UmVjdEluSG9zdFZpZXdGb3JTaGVldF07CisgICAgQ0dSZWN0IHByZXNlbnRhdGlvblJlY3QgPSBb
c2VsZiBfcHJlc2VudGF0aW9uUmVjdEZvclN0eWxlOl9jdXJyZW50UHJlc2VudGF0aW9uU3R5bGVd
OwogICAgIEJPT0wgd2FzUHJlc2VudGVkVmlld0NvbnRyb2xsZXJNb2RhbCA9IFtfcHJlc2VudGVk
Vmlld0NvbnRyb2xsZXJXaGlsZVJvdGF0aW5nIGlzTW9kYWxJblBvcG92ZXJdOwogCiAgICAgaWYg
KCFDR1JlY3RJc0VtcHR5KHByZXNlbnRhdGlvblJlY3QpIHx8IHdhc1ByZXNlbnRlZFZpZXdDb250
cm9sbGVyTW9kYWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3Mv
V0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9X
S0FjdGlvblNoZWV0QXNzaXN0YW50LmgKaW5kZXggODFhNTBjNTg4YzIyYzgwZTI1ZWYxZjkzZTg0
MTkzYTNkYmIxNmU0NC4uM2Q1YTIwODY1YzI4ODFjMDliY2YzMWI5YWRjNzg1YTg4YmM0ZTFjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNz
aXN0YW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0
QXNzaXN0YW50LmgKQEAgLTYzLDYgKzYzLDcgQEAgc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRp
b25BdFBvc2l0aW9uOwogCiBAaW50ZXJmYWNlIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQgOiBOU09i
amVjdCA8V0tBY3Rpb25TaGVldERlbGVnYXRlLCBERERldGVjdGlvbkNvbnRyb2xsZXJJbnRlcmFj
dGlvbkRlbGVnYXRlPgogQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkIDxXS0FjdGlvblNo
ZWV0QXNzaXN0YW50RGVsZWdhdGU+IGRlbGVnYXRlOworQHByb3BlcnR5IChub25hdG9taWMpIEJP
T0wgbmVlZHNMaW5rSW5kaWNhdG9yOwogLSAoaWQpaW5pdFdpdGhWaWV3OihVSVZpZXcgKil2aWV3
OwogLSAodm9pZClzaG93TGlua1NoZWV0OwogLSAodm9pZClzaG93SW1hZ2VTaGVldDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFu
dC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFu
dC5tbQppbmRleCBkZDE2OTU2ZGRiYmIyMzNiNGU5NTNlNzRjMTJlYjUyNzU2MmVkMGQ1Li43MWUz
OThkNGUxNmQ4ZjIyMmZkOGM2M2NhODY2MTIxM2JhMTI5ZDk2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCkBAIC00
MSw2ICs0MSw3IEBACiAjaW1wb3J0ICJfV0tFbGVtZW50QWN0aW9uSW50ZXJuYWwuaCIKICNpbXBv
cnQgPFVJS2l0L1VJVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+
CisjaW1wb3J0IDxXZWJDb3JlL1BhdGhVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvU29m
dExpbmtpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU5TVVJMRXh0cmFzLmg+CiAjaW1w
b3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTg4LDYgKzg5LDcgQEAgc3RhdGljIExTQXBw
TGluayAqYXBwTGlua0ZvclVSTChOU1VSTCAqdXJsKQogICAgIFJldGFpblB0cjxXS0FjdGlvblNo
ZWV0PiBfaW50ZXJhY3Rpb25TaGVldDsKICAgICBSZXRhaW5QdHI8X1dLQWN0aXZhdGVkRWxlbWVu
dEluZm8+IF9lbGVtZW50SW5mbzsKICAgICBVSVZpZXcgKl92aWV3OworICAgIEJPT0wgX25lZWRz
TGlua0luZGljYXRvcjsKIH0KIAogLSAoaWQgPFdLQWN0aW9uU2hlZXRBc3Npc3RhbnREZWxlZ2F0
ZT4pZGVsZWdhdGUKQEAgLTE0OCw2ICsxNTAsMzggQEAgc3RhdGljIExTQXBwTGluayAqYXBwTGlu
a0ZvclVSTChOU1VSTCAqdXJsKQogICAgIHJldHVybiBbc2VsZiBzdXBlcnZpZXdGb3JTaGVldF07
CiB9CiAKK3N0YXRpYyBjb25zdCBDR0Zsb2F0IHByZXNlbnRhdGlvbkVsZW1lbnRSZWN0UGFkZGlu
ZyA9IDE1OworCistIChDR1JlY3QpcHJlc2VudGF0aW9uUmVjdEZvckVsZW1lbnRVc2luZ0Nsb3Nl
c3RJbmRpY2F0ZWRSZWN0Cit7CisgICAgVUlWaWV3ICp2aWV3ID0gW3NlbGYgc3VwZXJ2aWV3Rm9y
U2hlZXRdOworICAgIGF1dG8gZGVsZWdhdGUgPSBfZGVsZWdhdGUuZ2V0KCk7CisgICAgaWYgKCF2
aWV3IHx8ICFkZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIENHUmVjdFplcm87CisKKyAgICBhdXRv
IGluZm8gPSBbZGVsZWdhdGUgcG9zaXRpb25JbmZvcm1hdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0
YW50OnNlbGZdOworICAgIGF1dG8gaW5kaWNhdG9yID0gaW5mby5saW5rSW5kaWNhdG9yOworICAg
IGlmIChpbmRpY2F0b3IudGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcy5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiBDR1JlY3RaZXJvOworCisgICAgV2ViQ29yZTo6RmxvYXRQb2lu
dCB0b3VjaExvY2F0aW9uID0gaW5mby5yZXF1ZXN0LnBvaW50OworICAgIFdlYkNvcmU6OkZsb2F0
UG9pbnQgbGlua0VsZW1lbnRMb2NhdGlvbiA9IGluZGljYXRvci50ZXh0Qm91bmRpbmdSZWN0SW5S
b290Vmlld0Nvb3JkaW5hdGVzLmxvY2F0aW9uKCk7CisgICAgVmVjdG9yPFdlYkNvcmU6OkZsb2F0
UmVjdD4gaW5kaWNhdGVkUmVjdHM7CisgICAgZm9yIChhdXRvIHJlY3QgOiBpbmRpY2F0b3IudGV4
dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcykgeworICAgICAgICByZWN0LmluZmxhdGUo
Mik7CisgICAgICAgIHJlY3QubW92ZUJ5KGxpbmtFbGVtZW50TG9jYXRpb24pOworICAgICAgICBp
bmRpY2F0ZWRSZWN0cy5hcHBlbmQocmVjdCk7CisgICAgfQorCisgICAgZm9yIChhdXRvIHBhdGgg
OiBXZWJDb3JlOjpQYXRoVXRpbGl0aWVzOjpwYXRoc1dpdGhTaHJpbmtXcmFwcGVkUmVjdHMoaW5k
aWNhdGVkUmVjdHMsIDApKSB7CisgICAgICAgIGF1dG8gYm91bmRpbmdSZWN0ID0gcGF0aC5mYXN0
Qm91bmRpbmdSZWN0KCk7CisgICAgICAgIGlmIChib3VuZGluZ1JlY3QuY29udGFpbnModG91Y2hM
b2NhdGlvbikpCisgICAgICAgICAgICByZXR1cm4gQ0dSZWN0SW5zZXQoW3ZpZXcgY29udmVydFJl
Y3Q6KENHUmVjdClib3VuZGluZ1JlY3QgZnJvbVZpZXc6X3ZpZXddLCAtcHJlc2VudGF0aW9uRWxl
bWVudFJlY3RQYWRkaW5nLCAtcHJlc2VudGF0aW9uRWxlbWVudFJlY3RQYWRkaW5nKTsKKyAgICB9
CisKKyAgICByZXR1cm4gQ0dSZWN0WmVybzsKK30KKwogLSAoQ0dSZWN0KXByZXNlbnRhdGlvblJl
Y3RGb3JJbmRpY2F0ZWRFbGVtZW50CiB7CiAgICAgVUlWaWV3ICp2aWV3ID0gW3NlbGYgc3VwZXJ2
aWV3Rm9yU2hlZXRdOwpAQCAtMTU1LDcgKzE4OSw2IEBAIHN0YXRpYyBMU0FwcExpbmsgKmFwcExp
bmtGb3JVUkwoTlNVUkwgKnVybCkKICAgICBpZiAoIXZpZXcgfHwgIWRlbGVnYXRlKQogICAgICAg
ICByZXR1cm4gQ0dSZWN0WmVybzsKIAotICAgIHN0YXRpYyBjb25zdCBDR0Zsb2F0IHByZXNlbnRh
dGlvbkVsZW1lbnRSZWN0UGFkZGluZyA9IDE1OwogICAgIGF1dG8gZWxlbWVudEJvdW5kcyA9IFtk
ZWxlZ2F0ZSBwb3NpdGlvbkluZm9ybWF0aW9uRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZl0u
Ym91bmRzOwogICAgIHJldHVybiBDR1JlY3RJbnNldChbdmlldyBjb252ZXJ0UmVjdDplbGVtZW50
Qm91bmRzIGZyb21WaWV3Ol92aWV3XSwgLXByZXNlbnRhdGlvbkVsZW1lbnRSZWN0UGFkZGluZywg
LXByZXNlbnRhdGlvbkVsZW1lbnRSZWN0UGFkZGluZyk7CiB9CkBAIC0zMTgsMTEgKzM1MSwxMSBA
QCBzdGF0aWMgTFNBcHBMaW5rICphcHBMaW5rRm9yVVJMKE5TVVJMICp1cmwpCiAKICAgICBfZWxl
bWVudEluZm8gPSBXVEZNb3ZlKGVsZW1lbnRJbmZvKTsKIAotICAgIGlmICghW19pbnRlcmFjdGlv
blNoZWV0IHByZXNlbnRTaGVldDpbc2VsZiBfcHJlc2VudGF0aW9uU3R5bGVGb3JJbWFnZUF0RWxl
bWVudFJlY3Q6ZWxlbWVudEJvdW5kc11dKQorICAgIGlmICghW19pbnRlcmFjdGlvblNoZWV0IHBy
ZXNlbnRTaGVldDpbc2VsZiBfc2hvdWxkUHJlc2VudEF0VG91Y2hMb2NhdGlvbkZvckVsZW1lbnRS
ZWN0OmVsZW1lbnRCb3VuZHNdID8gV0tBY3Rpb25TaGVldFByZXNlbnRBdFRvdWNoTG9jYXRpb24g
OiBXS0FjdGlvblNoZWV0UHJlc2VudEF0RWxlbWVudFJlY3RdKQogICAgICAgICBbc2VsZiBjbGVh
bnVwU2hlZXRdOwogfQogCi0tIChXS0FjdGlvblNoZWV0UHJlc2VudGF0aW9uU3R5bGUpX3ByZXNl
bnRhdGlvblN0eWxlRm9ySW1hZ2VBdEVsZW1lbnRSZWN0OihDR1JlY3QpZWxlbWVudFJlY3QKKy0g
KEJPT0wpX3Nob3VsZFByZXNlbnRBdFRvdWNoTG9jYXRpb25Gb3JFbGVtZW50UmVjdDooQ0dSZWN0
KWVsZW1lbnRSZWN0CiB7CiAgICAgYXV0byBhcHBhcmVudEVsZW1lbnRSZWN0ID0gW192aWV3IGNv
bnZlcnRSZWN0OmVsZW1lbnRSZWN0IHRvVmlldzpfdmlldy53aW5kb3ddOwogICAgIGF1dG8gd2lu
ZG93UmVjdCA9IF92aWV3LndpbmRvdy5ib3VuZHM7CkBAIC0zMzYsMTAgKzM2OSw3IEBAIHN0YXRp
YyBMU0FwcExpbmsgKmFwcExpbmtGb3JVUkwoTlNVUkwgKnVybCkKICAgICAvLyBJZiBhdCBsZWFz
dCB0aGlzIG11Y2ggb2YgdGhlIHdpbmRvdyBpcyBhdmFpbGFibGUgZm9yIHRoZSBwb3BvdmVyIHRv
IGRyYXcgaW4sIHRoZW4gdGFyZ2V0IHRoZSBlbGVtZW50IHJlY3Qgd2hlbiBwcmVzZW50aW5nIHRo
ZSBhY3Rpb24gbWVudSBwb3BvdmVyLgogICAgIC8vIE90aGVyd2lzZSwgdGhlcmUgaXMgbm90IGVu
b3VnaCBzcGFjZSB0byBwb3NpdGlvbiB0aGUgcG9wb3ZlciBhcm91bmQgdGhlIGVsZW1lbnQsIHNv
IHJldmVydCB0byB1c2luZyB0aGUgdG91Y2ggbG9jYXRpb24gaW5zdGVhZC4KICAgICBzdGF0aWMg
Y29uc3QgQ0dGbG9hdCBtaW5pbXVtQXZhaWxhYmxlV2lkdGhPckhlaWdodFJhdGlvID0gMC40Owot
ICAgIGlmIChzdGQ6Om1heChsZWZ0SW5zZXQsIHJpZ2h0SW5zZXQpID4gbWluaW11bUF2YWlsYWJs
ZVdpZHRoT3JIZWlnaHRSYXRpbyAqIENHUmVjdEdldFdpZHRoKHdpbmRvd1JlY3QpIHx8IHN0ZDo6
bWF4KHRvcEluc2V0LCBib3R0b21JbnNldCkgPiBtaW5pbXVtQXZhaWxhYmxlV2lkdGhPckhlaWdo
dFJhdGlvICogQ0dSZWN0R2V0SGVpZ2h0KHdpbmRvd1JlY3QpKQotICAgICAgICByZXR1cm4gV0tB
Y3Rpb25TaGVldFByZXNlbnRBdEVsZW1lbnRSZWN0OwotCi0gICAgcmV0dXJuIFdLQWN0aW9uU2hl
ZXRQcmVzZW50QXRUb3VjaExvY2F0aW9uOworICAgIHJldHVybiBzdGQ6Om1heChsZWZ0SW5zZXQs
IHJpZ2h0SW5zZXQpIDw9IG1pbmltdW1BdmFpbGFibGVXaWR0aE9ySGVpZ2h0UmF0aW8gKiBDR1Jl
Y3RHZXRXaWR0aCh3aW5kb3dSZWN0KSAmJiBzdGQ6Om1heCh0b3BJbnNldCwgYm90dG9tSW5zZXQp
IDw9IG1pbmltdW1BdmFpbGFibGVXaWR0aE9ySGVpZ2h0UmF0aW8gKiBDR1JlY3RHZXRIZWlnaHQo
d2luZG93UmVjdCk7CiB9CiAKIC0gKHZvaWQpX2FwcGVuZE9wZW5BY3Rpb25zRm9yVVJMOihOU1VS
TCAqKXVybCBhY3Rpb25zOihOU011dGFibGVBcnJheSAqKWRlZmF1bHRBY3Rpb25zIGVsZW1lbnRJ
bmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvCkBAIC00MjYsNiArNDU2
LDExIEBAIHN0YXRpYyBMU0FwcExpbmsgKmFwcExpbmtGb3JVUkwoTlNVUkwgKnVybCkKICAgICBy
ZXR1cm4gZGVmYXVsdEFjdGlvbnM7CiB9CiAKKy0gKEJPT0wpbmVlZHNMaW5rSW5kaWNhdG9yCit7
CisgICAgcmV0dXJuIF9uZWVkc0xpbmtJbmRpY2F0b3I7Cit9CisKIC0gKHZvaWQpc2hvd0xpbmtT
aGVldAogewogICAgIEFTU0VSVCghX2VsZW1lbnRJbmZvKTsKQEAgLTQzNCwzMCArNDY5LDM5IEBA
IHN0YXRpYyBMU0FwcExpbmsgKmFwcExpbmtGb3JVUkwoTlNVUkwgKnVybCkKICAgICBpZiAoIWRl
bGVnYXRlKQogICAgICAgICByZXR1cm47CiAKKyAgICBfbmVlZHNMaW5rSW5kaWNhdG9yID0gWUVT
OwogICAgIGNvbnN0IGF1dG8mIHBvc2l0aW9uSW5mb3JtYXRpb24gPSBbZGVsZWdhdGUgcG9zaXRp
b25JbmZvcm1hdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZdOwogCiAgICAgTlNVUkwg
KnRhcmdldFVSTCA9IFtOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6cG9zaXRpb25JbmZvcm1h
dGlvbi51cmxdOwotICAgIGlmICghdGFyZ2V0VVJMKQorICAgIGlmICghdGFyZ2V0VVJMKSB7Cisg
ICAgICAgIF9uZWVkc0xpbmtJbmRpY2F0b3IgPSBOTzsKICAgICAgICAgcmV0dXJuOworICAgIH0K
IAogICAgIGF1dG8gZWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVMaW5rIFVSTDp0
YXJnZXRVUkwgbG9jYXRpb246cG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50IHRpdGxl
OnBvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgSUQ6cG9zaXRpb25JbmZvcm1hdGlvbi5pZEF0dHJp
YnV0ZSByZWN0OnBvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOnBvc2l0aW9uSW5mb3Jt
YXRpb24uaW1hZ2UuZ2V0KCldKTsKLSAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvd0N1c3RvbVNoZWV0Rm9yRWxlbWVu
dDopXSAmJiBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG93Q3VzdG9tU2hl
ZXRGb3JFbGVtZW50OmVsZW1lbnRJbmZvLmdldCgpXSkKKyAgICBpZiAoW2RlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvd0N1c3RvbVNo
ZWV0Rm9yRWxlbWVudDopXSAmJiBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBz
aG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OmVsZW1lbnRJbmZvLmdldCgpXSkgeworICAgICAgICBf
bmVlZHNMaW5rSW5kaWNhdG9yID0gTk87CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAKICAgICBh
dXRvIGRlZmF1bHRBY3Rpb25zID0gW3NlbGYgZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6ZWxl
bWVudEluZm8uZ2V0KCldOwogCiAgICAgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnMgPSBbZGVs
ZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBkZWNpZGVBY3Rpb25zRm9yRWxlbWVudDpl
bGVtZW50SW5mby5nZXQoKSBkZWZhdWx0QWN0aW9uczpXVEZNb3ZlKGRlZmF1bHRBY3Rpb25zKV07
CiAKLSAgICBpZiAoIVthY3Rpb25zIGNvdW50XSkKKyAgICBpZiAoIVthY3Rpb25zIGNvdW50XSkg
eworICAgICAgICBfbmVlZHNMaW5rSW5kaWNhdG9yID0gTk87CiAgICAgICAgIHJldHVybjsKKyAg
ICB9CiAKICAgICBbc2VsZiBfY3JlYXRlU2hlZXRXaXRoRWxlbWVudEFjdGlvbnM6YWN0aW9ucy5n
ZXQoKSBzaG93TGlua1RpdGxlOllFU107Ci0gICAgaWYgKCFfaW50ZXJhY3Rpb25TaGVldCkKKyAg
ICBpZiAoIV9pbnRlcmFjdGlvblNoZWV0KSB7CisgICAgICAgIF9uZWVkc0xpbmtJbmRpY2F0b3Ig
PSBOTzsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIF9lbGVtZW50SW5mbyA9IFdURk1v
dmUoZWxlbWVudEluZm8pOwogCi0gICAgaWYgKCFbX2ludGVyYWN0aW9uU2hlZXQgcHJlc2VudFNo
ZWV0OldLQWN0aW9uU2hlZXRQcmVzZW50QXRUb3VjaExvY2F0aW9uXSkKKyAgICBpZiAoIVtfaW50
ZXJhY3Rpb25TaGVldCBwcmVzZW50U2hlZXQ6W3NlbGYgX3Nob3VsZFByZXNlbnRBdFRvdWNoTG9j
YXRpb25Gb3JFbGVtZW50UmVjdDpwb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kc10gPyBXS0FjdGlv
blNoZWV0UHJlc2VudEF0VG91Y2hMb2NhdGlvbiA6IFdLQWN0aW9uU2hlZXRQcmVzZW50QXRDbG9z
ZXN0SW5kaWNhdG9yUmVjdF0pCiAgICAgICAgIFtzZWxmIGNsZWFudXBTaGVldF07CiB9CiAKQEAg
LTUzMyw2ICs1NzcsNyBAQCBzdGF0aWMgTFNBcHBMaW5rICphcHBMaW5rRm9yVVJMKE5TVVJMICp1
cmwpCiAgICAgW19pbnRlcmFjdGlvblNoZWV0IHNldFNoZWV0RGVsZWdhdGU6bmlsXTsKICAgICBf
aW50ZXJhY3Rpb25TaGVldCA9IG5pbDsKICAgICBfZWxlbWVudEluZm8gPSBuaWw7CisgICAgX25l
ZWRzTGlua0luZGljYXRvciA9IE5POwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDRi
NTVlZGIxOGI0Mjk3ODU3NTI5MTliNjNkNDk1ZjRkMTkxMjdjMGMuLjQ0OTE4NDIxYjk0MjgyZDU0
NDY5YmJhYTk3NDJhMjJhOTU0ZjM1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xNDU4LDEzICsx
NDU4LDkgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVjb2duaXpl
ciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAgICBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uUmVxdWVzdCByZXF1ZXN0KHJvdW5kZWRJbnRQb2ludChwb2ludCkpOwogICAgIFtzZWxmIGVu
c3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOnJlcXVlc3RdOwogCi0gICAgaWYgKF9w
b3NpdGlvbkluZm9ybWF0aW9uLmlzSW1hZ2UpCisgICAgaWYgKF9wb3NpdGlvbkluZm9ybWF0aW9u
LmlzSW1hZ2UgfHwgX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNMaW5rKQogICAgICAgICByZXR1cm4g
WUVTOwogCi0gICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBsaW5rcy4KLSAgICBpZiAoX3Bv
c2l0aW9uSW5mb3JtYXRpb24uaXNMaW5rKQotICAgICAgICByZXR1cm4gTk87Ci0KICAgICByZXR1
cm4gX3Bvc2l0aW9uSW5mb3JtYXRpb24uaGFzRGF0YUludGVyYWN0aW9uQXRQb3NpdGlvbjsKIH0K
IApAQCAtMTc1Nyw2ICsxNzUzLDEwIEBAIHN0YXRpYyB2b2lkIGNhbmNlbFBvdGVudGlhbFRhcElm
TmVjZXNzYXJ5KFdLQ29udGVudFZpZXcqIGNvbnRlbnRWaWV3KQogICAgIF9oYXNWYWxpZFBvc2l0
aW9uSW5mb3JtYXRpb24gPSBZRVM7CiAgICAgaWYgKF9hY3Rpb25TaGVldEFzc2lzdGFudCkKICAg
ICAgICAgW19hY3Rpb25TaGVldEFzc2lzdGFudCB1cGRhdGVTaGVldFBvc2l0aW9uXTsKKworI2lm
IEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorICAgIFtzZWxmIF91cGRhdGVEYXRhSW50ZXJhY3Rp
b25QcmV2aWV3U25hcHNob3RJZlBvc3NpYmxlXTsKKyNlbmRpZgogfQogCiAtICh2b2lkKV93aWxs
U3RhcnRTY3JvbGxpbmdPclpvb21pbmcKQEAgLTM5NTcsNiArMzk1Nyw3IEBAIHN0YXRpYyBib29s
IGlzQXNzaXN0YWJsZUlucHV0VHlwZShJbnB1dFR5cGUgdHlwZSkKICAgICAvLyBGSVhNRTogVGhp
cyBzaG91bGQgYmUgbW9yZSBhc3luY2hyb25vdXMsIHNpbmNlIHdlIGNvbnRyb2wgdGhlIHByZXNl
bnRhdGlvbiBvZiB0aGUgYWN0aW9uIHNoZWV0LgogICAgIEludGVyYWN0aW9uSW5mb3JtYXRpb25S
ZXF1ZXN0IHJlcXVlc3QoX3Bvc2l0aW9uSW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludCk7CiAgICAg
cmVxdWVzdC5pbmNsdWRlU25hcHNob3QgPSB0cnVlOworICAgIHJlcXVlc3QuaW5jbHVkZUxpbmtJ
bmRpY2F0b3IgPSBhc3Npc3RhbnQubmVlZHNMaW5rSW5kaWNhdG9yOwogICAgIFtzZWxmIGVuc3Vy
ZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOnJlcXVlc3RdOwogCiAgICAgcmV0dXJuIF9w
b3NpdGlvbkluZm9ybWF0aW9uOwpAQCAtMzk2Nyw2ICszOTY4LDcgQEAgc3RhdGljIGJvb2wgaXNB
c3Npc3RhYmxlSW5wdXRUeXBlKElucHV0VHlwZSB0eXBlKQogICAgIF9oYXNWYWxpZFBvc2l0aW9u
SW5mb3JtYXRpb24gPSBOTzsKICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCByZXF1
ZXN0KF9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQpOwogICAgIHJlcXVlc3QuaW5j
bHVkZVNuYXBzaG90ID0gdHJ1ZTsKKyAgICByZXF1ZXN0LmluY2x1ZGVMaW5rSW5kaWNhdG9yID0g
YXNzaXN0YW50Lm5lZWRzTGlua0luZGljYXRvcjsKIAogICAgIFtzZWxmIHJlcXVlc3RBc3luY2hy
b25vdXNQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOnJlcXVlc3RdOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmluZGV4IDU3
NWI5MDczMDUzZTljYzdhYWViYWE2YWUzODk2NjdmZWY5OGVkMDMuLjc4YzFmN2QzZDdlZDM2MjBl
NjQwMmE4OGRkMDVjZDI0ZGEwMGIwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTI1NTEsNiArMjU1MSw3IEBAIHZv
aWQgV2ViUGFnZTo6Z2V0UG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlvbkluZm9y
bWF0aW9uUmVxdWVzdCYgcmVxdWVzCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04pCiAgICAg
aW5mby5oYXNEYXRhSW50ZXJhY3Rpb25BdFBvc2l0aW9uID0gbV9wYWdlLT5oYXNEYXRhSW50ZXJh
Y3Rpb25BdFBvc2l0aW9uKGFkanVzdGVkUG9pbnQpOwogI2VuZGlmCisgICAgaW5mby5hZGp1c3Rl
ZFBvaW50ID0gYWRqdXN0ZWRQb2ludDsKIH0KIAogdm9pZCBXZWJQYWdlOjpyZXF1ZXN0UG9zaXRp
b25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYgcmVxdWVz
dCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBi
ZWE2NDdmNzZlZDg5Y2RjZWIwNjZjNWZiMDViN2VhODQwODlhMmVjLi4wMGJhMGUyM2Q3MDJhNGRm
ODA4ZDY4NDU1MDk2MzM0MmE0YjJlZTcxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTctMDItMTQgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gU3VwcG9ydCBk
YXRhIGludGVyYWN0aW9uIG9uIGxpbmtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNjgzMzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwMjAwODM3
PgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkcyAyIHVu
aXQgdGVzdHMgY2hlY2tpbmcgdGhhdCBkYXRhIGludGVyYWN0aW9uIGZyb20gYSBsaW5rICh3aXRo
IG9yIHdpdGhvdXQgYSBiYWNrZ3JvdW5kIGltYWdlKSBpbnRvIGFuCisgICAgICAgIGVkaXRhYmxl
IGFyZWEgcmVzdWx0cyBpbiB0aGUgbGluayBVUkwgYmVpbmcgaW5zZXJ0ZWQuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9iYWNrZ3JvdW5kLWlt
YWdlLWxpbmstYW5kLWlucHV0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2xpbmstYW5kLWlucHV0Lmh0bWw6IEFkZGVkLgorICAgICAgICAq
IFRlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tOgorICAgICAg
ICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMTctMDItMTMgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHRoZSBidWlsZCBhZnRlciByMjEy
MjU0CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvaiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDFlMzAwYzM5Zjc2N2M3ZTcxODhkZWJhMjYx
MDY2Y2RhZDI1N2E0MmEuLmQ2ZjBmYjNmMjNmNmE5ZGNjMDQ3YTlkOTdmOGNiM2RhMTQyN2ZiZmEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NTMsOCArNTUzLDEwIEBACiAJCUUxOTRFMUJE
MTc3RTUzQzcwMDlDNEQ0RSAvKiBTdG9wTG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UuaHRt
bCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBF
MTk0RTFCQzE3N0U1MzRBMDA5QzRENEUgLyogU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3Bv
bnNlLmh0bWwgKi87IH07CiAJCUY0MTUwODZEMURBMDQwQzUwMDQ0QkU5QiAvKiBwbGF5LWF1ZGlv
LW9uLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjQxNTA4NkMxREEwNDBDMTAwNDRCRTlCIC8qIHBsYXktYXVkaW8tb24tY2xp
Y2suaHRtbCAqLzsgfTsKIAkJRjQyREE1MTYxRDhDRUZFNDAwMzM2RjQwIC8qIGxhcmdlLWlucHV0
LWZpZWxkLWZvY3VzLW9ubG9hZC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0MkRBNTE1MUQ4Q0VGREIwMDMzNkY0MCAvKiBsYXJnZS1p
bnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCAqLzsgfTsKKwkJRjQzNTVDRjAxRTUyMTk4MTAw
OTAwRjY0IC8qIGJhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5IFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM1NUNFRjFFNTIx
OTYxMDA5MDBGNjQgLyogYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sICovOyB9
OwogCQlGNDVCOTYwQzFFNTA3MDg4MDBDRkFDNUQgLyogYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJs
ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY0NUI5NjBCMUU1MDcwODIwMENGQUM1RCAvKiBhdXRvZm9jdXMtY29udGVudGVkaXRhYmxl
Lmh0bWwgKi87IH07CiAJCUY0NzcyODk5MUU0QUUzQzEwMDdBQkY2QSAvKiBmdWxsLXBhZ2UtY29u
dGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ3NzI4OTgxRTRBRTNBRDAwN0FCRjZBIC8qIGZ1bGwtcGFnZS1jb250
ZW50ZWRpdGFibGUuaHRtbCAqLzsgfTsKKwkJRjQ5QzA3QUUxRTUxODQ5NTAwRjZCMDFGIC8qIGxp
bmstYW5kLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjQ5QzA3QUQxRTUxODQ5MTAwRjZCMDFGIC8qIGxpbmstYW5kLWlucHV0
Lmh0bWwgKi87IH07CiAJCUY0QkZBNjhFMUU0QUQwODAwMDE1NDI5OCAvKiBEcmFnQW5kRHJvcFBh
c3RlYm9hcmRUZXN0cy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0QkZBNjhDMUU0QUQwODAwMDE1NDI5OCAvKiBEcmFnQW5kRHJvcFBhc3RlYm9hcmRU
ZXN0cy5tbSAqLzsgfTsKIAkJRjRDMkFCMjIxREQ2RDk1RTAwRTA2RDVCIC8qIGVub3Jtb3VzLXZp
ZGVvLXdpdGgtc291bmQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNEMyQUIyMTFERDZEOTQxMDBFMDZENUIgLyogZW5vcm1vdXMtdmlk
ZW8td2l0aC1zb3VuZC5odG1sICovOyB9OwogCQlGNEQ0RjNCNjFFNEUyQkNCMDBCQjI3NjcgLyog
RGF0YUludGVyYWN0aW9uU2ltdWxhdG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFj
dGlvblNpbXVsYXRvci5tbSAqLzsgfTsKQEAgLTYzNSw2ICs2MzcsOCBAQAogCQkJZmlsZXMgPSAo
CiAJCQkJQzI1Q0NBMEQxRTUxNDE4NDAwMjZDQjhBIC8qIEFsbEFoZW0uc3ZnIGluIENvcHkgUmVz
b3VyY2VzICovLAogCQkJCUMyNUNDQTBCMUU1MTQwQzEwMDI2Q0I4QSAvKiBMaW5lQnJlYWtpbmcu
aHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKKwkJCQlGNDM1NUNGMDFFNTIxOTgxMDA5MDBGNjQg
LyogYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovLAorCQkJCUY0OUMwN0FFMUU1MTg0OTUwMEY2QjAxRiAvKiBsaW5rLWFuZC1pbnB1dC5odG1s
IGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0NUI5NjBDMUU1MDcwODgwMENGQUM1RCAvKiBh
dXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
RjRGOTNGMzQxRTRFOTE4RDAwRTMzRTJFIC8qIGltYWdlLWFuZC10ZXh0YXJlYS5odG1sIGluIENv
cHkgUmVzb3VyY2VzICovLAogCQkJCUY0RDRGM0JDMUU0RTUxMUYwMEJCMjc2NyAvKiBpbWFnZS1h
bmQtY29udGVudGVkaXRhYmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xMzgxLDgg
KzEzODUsMTAgQEAKIAkJRjNGQzNFRTIxMzY3OEI3MzAwMTI2QTY1IC8qIGxpYmd0ZXN0LmEgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhcmNoaXZlLmFy
OyBwYXRoID0gbGliZ3Rlc3QuYTsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsK
IAkJRjQxNTA4NkMxREEwNDBDMTAwNDRCRTlCIC8qIHBsYXktYXVkaW8tb24tY2xpY2suaHRtbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJwbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyog
bGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IG5hbWUgPSAibGFyZ2UtaW5wdXQtZmllbGQtZm9jdXMtb25sb2FkLmh0bWwiOyBwYXRoID0gIlRl
c3RzL1dlYktpdDJDb2NvYS9sYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCI7IHNv
dXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKKwkJRjQzNTVDRUYxRTUyMTk2MTAwOTAwRjY0IC8q
IGJhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRt
bDsgbmFtZSA9ICJiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwiOyBwYXRoID0g
IlRlc3RzL1dlYktpdDJDb2NvYS9iYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwi
OyBzb3VyY2VUcmVlID0gU09VUkNFX1JPT1Q7IH07CiAJCUY0NUI5NjBCMUU1MDcwODIwMENGQUM1
RCAvKiBhdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7
IHBhdGggPSAiYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjQ3NzI4OTgxRTRBRTNBRDAwN0FCRjZBIC8qIGZ1bGwtcGFnZS1jb250
ZW50ZWRpdGFibGUuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJmdWxsLXBhZ2Ut
Y29udGVudGVkaXRhYmxlLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDlD
MDdBRDFFNTE4NDkxMDBGNkIwMUYgLyogbGluay1hbmQtaW5wdXQuaHRtbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuaHRtbDsgbmFtZSA9ICJsaW5rLWFuZC1pbnB1dC5odG1sIjsgcGF0aCA9ICJUZXN0cy9XZWJL
aXQyQ29jb2EvbGluay1hbmQtaW5wdXQuaHRtbCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsg
fTsKIAkJRjRCRkE2OEMxRTRBRDA4MDAwMTU0Mjk4IC8qIERyYWdBbmREcm9wUGFzdGVib2FyZFRl
c3RzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0FuZERy
b3BQYXN0ZWJvYXJkVGVzdHMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QzJB
QjIxMURENkQ5NDEwMEUwNkQ1QiAvKiBlbm9ybW91cy12aWRlby13aXRoLXNvdW5kLmh0bWwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiZW5vcm1vdXMtdmlkZW8td2l0aC1zb3VuZC5odG1s
Ijsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3
IC8qIERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTIwNDUsNiArMjA1MSw4IEBACiAJCUJDOTA5NzdCMTI1NTcxQUUw
MDA4Mzc1NiAvKiBSZXNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAorCQkJCUY0MzU1Q0VGMUU1MjE5NjEwMDkwMEY2NCAvKiBiYWNrZ3JvdW5kLWltYWdl
LWxpbmstYW5kLWlucHV0Lmh0bWwgKi8sCisJCQkJRjQ5QzA3QUQxRTUxODQ5MTAwRjZCMDFGIC8q
IGxpbmstYW5kLWlucHV0Lmh0bWwgKi8sCiAJCQkJQzA0NUY5NDYxMzg1QzJGODAwQzBGM0NEIC8q
IDE4LWNoYXJhY3RlcnMuaHRtbCAqLywKIAkJCQkxQzJCODE4NTFDODkyNTIzMDBBNTUyOUYgLyog
QWhlbS50dGYgKi8sCiAJCQkJOTNEM0QxOUIxN0IxQTdCMDAwQzdDNDE1IC8qIGFsbC1jb250ZW50
LWluLW9uZS1pZnJhbWUuaHRtbCAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2JhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2JhY2tncm91bmQtaW1hZ2Ut
bGluay1hbmQtaW5wdXQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kZjc4ZTlkZDI4OWRhNjFmMzk4YzE5M2Mz
ZWNjZmRiMTUyOGY4YmIwCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQyQ29jb2EvYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sCkBA
IC0wLDAgKzEsNDEgQEAKKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorICAgICAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgewor
ICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAg
ICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKworICAgICAgICBhLCAjZWRpdG9yIHsKKyAg
ICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAg
ICAgICAgIGZvbnQtc2l6ZTogMjAwcHg7CisgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFw
OworICAgICAgICB9CisKKyAgICAgICAgYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdl
OiB1cmwoaWNvbi5wbmcpOworICAgICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVh
dDsKKyAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOworICAgICAgICB9CisKKyAgICAgICAgI2Vk
aXRvciB7CisgICAgICAgICAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDsKKyAgICAgICAgfQor
ICAgICAgICA8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2PjxhIGhyZWY9Imh0
dHBzOi8vd3d3LmRhcmluZ2ZpcmViYWxsLm5ldCI+PC9hPjwvZGl2PgorICAgIDxkaXY+PGlucHV0
IGlkPSJlZGl0b3IiPjwvaW5wdXQ+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBw
b3N0RXZlbnRUeXBlKGV2ZW50KSB7CisgICAgICAgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0
SGFuZGxlci5wb3N0TWVzc2FnZShldmVudC50eXBlKTsKKyAgICB9CisKKyAgICBlZGl0b3IuYWRk
RXZlbnRMaXN0ZW5lcigiZHJvcCIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVu
dExpc3RlbmVyKCJkcmFnZW50ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZl
bnRMaXN0ZW5lcigiZHJhZ292ZXIiLCBwb3N0RXZlbnRUeXBlKTsKKyAgICA8L3NjcmlwdD4KKzwv
Ym9keT4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29h
L2xpbmstYW5kLWlucHV0Lmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9saW5rLWFuZC1pbnB1dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk2NDZjZjE3MDVkMDMwN2MyMzBi
OTlhNDA1ODQzZTVkNWIyNmY3NDcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9saW5rLWFuZC1pbnB1dC5odG1sCkBAIC0wLDAgKzEsMzUg
QEAKKzxoZWFkPgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgiPgorICAgICAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAg
d2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICBtYXJn
aW46IDA7CisgICAgICAgIH0KKworICAgICAgICBhLCAjZWRpdG9yIHsKKyAgICAgICAgICAgIHdp
ZHRoOiAxMDAlOworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGZvbnQt
c2l6ZTogMjAwcHg7CisgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgICAgICB9
CisKKyAgICAgICAgI2VkaXRvciB7CisgICAgICAgICAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xp
ZDsKKyAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8
ZGl2PjxhIGhyZWY9Imh0dHBzOi8vd3d3LmRhcmluZ2ZpcmViYWxsLm5ldCI+SGVsbG8gd29ybGQ8
L2E+PC9kaXY+CisgICAgPGRpdj48aW5wdXQgaWQ9ImVkaXRvciI+PC9pbnB1dD48L2Rpdj4KKyAg
ICA8c2NyaXB0PgorICAgIGZ1bmN0aW9uIHBvc3RFdmVudFR5cGUoZXZlbnQpIHsKKyAgICAgICB3
ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGV2ZW50LnR5cGUp
OworICAgIH0KKworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgcG9zdEV2ZW50
VHlwZSk7CisgICAgZWRpdG9yLmFkZEV2ZW50TGlzdGVuZXIoImRyYWdlbnRlciIsIHBvc3RFdmVu
dFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsIHBvc3RFdmVu
dFR5cGUpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQppbmRleCBiZWI4ZDIxZDJk
N2JlMTQ3NzFmODMwNzMxZjg4MWQ1ZTZjOTZjYjBhLi43ZjZjMzhjNjVkOWY4ZTAwODI4NDZjYmQ0
ZTM3MTAyMTY1NzBkNmQ4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lv
cy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0cy5tbQpAQCAtODksNiArODksMzIgQEAgVEVTVChEYXRh
SW50ZXJhY3Rpb25UZXN0cywgQ29udGVudEVkaXRhYmxlVG9Db250ZW50RWRpdGFibGUpCiAgICAg
fSk7CiB9CiAKK1RFU1QoRGF0YUludGVyYWN0aW9uVGVzdHMsIExpbmtUb0lucHV0KQoreworICAg
IFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZp
ZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAg
ICBydW5UZXN0c0V4cGVjdGluZ1RvT2JzZXJ2ZUV2ZW50cyh3ZWJWaWV3LmdldCgpLCBAWyBEYXRh
SW50ZXJhY3Rpb25FbnRlckV2ZW50TmFtZSwgRGF0YUludGVyYWN0aW9uT3ZlckV2ZW50TmFtZSwg
RGF0YUludGVyYWN0aW9uUGVyZm9ybU9wZXJhdGlvbkV2ZW50TmFtZSBdLCBeKCkgeworICAgICAg
ICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJsaW5rLWFuZC1pbnB1
dCJdOworCisgICAgICAgIFJldGFpblB0cjxEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3I+IGRhdGFJ
bnRlcmFjdGlvblNpbXVsYXRvciA9IGFkb3B0TlMoW1tEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Ig
YWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJWaWV3LmdldCgpIHN0YXJ0TG9jYXRpb246Q0dQb2lu
dE1ha2UoMTAwLCAxMDApIGVuZExvY2F0aW9uOkNHUG9pbnRNYWtlKDEwMCwgMzAwKV0pOworICAg
ICAgICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHJ1bl07CisKKyAgICAgICAgRVhQRUNUX1dL
X1NUUkVRKCJodHRwczovL3d3dy5kYXJpbmdmaXJlYmFsbC5uZXQvIiwgW3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImVkaXRvci52YWx1ZSJdLlVURjhTdHJpbmcpOworICAg
IH0pOworfQorCitURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBCYWNrZ3JvdW5kSW1hZ2VMaW5r
VG9JbnB1dCkKK3sKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0
TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwg
MzIwLCA1MDApXSk7CisgICAgcnVuVGVzdHNFeHBlY3RpbmdUb09ic2VydmVFdmVudHMod2ViVmll
dy5nZXQoKSwgQFsgRGF0YUludGVyYWN0aW9uRW50ZXJFdmVudE5hbWUsIERhdGFJbnRlcmFjdGlv
bk92ZXJFdmVudE5hbWUsIERhdGFJbnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb25FdmVudE5hbWUg
XSwgXigpIHsKKyAgICAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVk
OkAiYmFja2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dCJdOworCisgICAgICAgIFJldGFpblB0
cjxEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3I+IGRhdGFJbnRlcmFjdGlvblNpbXVsYXRvciA9IGFk
b3B0TlMoW1tEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3
ZWJWaWV3LmdldCgpIHN0YXJ0TG9jYXRpb246Q0dQb2ludE1ha2UoMTAwLCAxMDApIGVuZExvY2F0
aW9uOkNHUG9pbnRNYWtlKDEwMCwgMzAwKV0pOworICAgICAgICBbZGF0YUludGVyYWN0aW9uU2lt
dWxhdG9yIHJ1bl07CisKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJodHRwczovL3d3dy5kYXJp
bmdmaXJlYmFsbC5uZXQvIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
ImVkaXRvci52YWx1ZSJdLlVURjhTdHJpbmcpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCiAKICNlbmRpZiAvLyBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikK
</data>
<flag name="commit-queue"
          id="323379"
          type_id="3"
          status="-"
          setter="wenson_hsieh"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>301576</attachid>
            <date>2017-02-14 20:30:09 -0800</date>
            <delta_ts>2017-02-14 21:07:27 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-168331-20170214202735.patch</filename>
            <type>text/plain</type>
            <size>37083</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEyMjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTk5YzIzYmI5NzQ4Yjk4
MDM3YTdkZmZlNzVlYjZmNmE5NThhYmMxZC4uMzExMzNhOTNmY2Q0ZGNmYTA4OWYyNDcyMTFkZWQx
ODkyOTMzZTRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDE3LTAyLTE0ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtXSzJdIFN1cHBv
cnQgZGF0YSBpbnRlcmFjdGlvbiBvbiBsaW5rcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY4MzMxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDIw
MDgzNz4KKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAgIEFkZHMg
c3VwcG9ydCBmb3IgZGF0YSBpbnRlcmFjdGlvbiBvbiBsaW5rcyBhdCB0aGUgV2ViQ29yZSBsYXll
ciwgcmVmYWN0b3Jpbmcgc29tZSBkcmFnLWFuZC1kcm9wIGNvZGUgb24gdGhlIE1hYworICAgICAg
ICBhbG9uZyB0aGUgd2F5LiBBbHNvIGFkZHMgdHdvIG5ldyBUZXN0V2ViS2l0QVBJIHVuaXQgdGVz
dHMgaW4gRGF0YUludGVyYWN0aW9uVGVzdHMubW06IExpbmtUb0lucHV0IGFuZAorICAgICAgICBC
YWNrZ3JvdW5kSW1hZ2VMaW5rVG9JbnB1dCAoc2VlIFRvb2xzL0NoYW5nZUxvZyBmb3IgbW9yZSBp
bmZvcm1hdGlvbikuCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9sbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpzdGFydERyYWcpOgorICAgICAgICAoV2ViQ29y
ZTo6RHJhZ0NvbnRyb2xsZXI6OmRvSW1hZ2VEcmFnKToKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdD
b250cm9sbGVyOjpkb1N5c3RlbURyYWcpOgorCisgICAgICAgIEludHJvZHVjZSBwbGF0Zm9ybUFk
anVzdERyYWdJbWFnZUZvckRldmljZVNjYWxlRmFjdG9yLCBhbmQgc3BlY2lhbC1jYXNlIGRyYWcg
aW1hZ2VzIGZvciBsaW5rcyB0byBhbmNob3IgYXQgdGhlCisgICAgICAgIGJvdHRvbSBjZW50ZXIu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFnSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
cGxhdGZvcm1BZGp1c3REcmFnSW1hZ2VGb3JEZXZpY2VTY2FsZUZhY3Rvcik6CisKKyAgICAgICAg
U2NhbGUgdGhlIGRyYWcgaW1hZ2UgdXAgYnkgdGhlIGRldmljZSBzY2FsZSBmYWN0b3IuIEluIFdl
YkRyYWdDbGllbnQsIHdlIHNjYWxlIHRoZSBpbWFnZSBiYWNrIGRvd24gdG8gdGhlCisgICAgICAg
IG9yaWdpbmFsIHNpemUuIEl0IHNlZW1zIHRoZSByZWFzb24gd2UgZG8gdGhpcyBleHRyYSBkYW5j
ZSBpcyBiZWNhdXNlIHRoZSBpbWFnZSBzaXppbmcgaGV1cmlzdGljIGluIGJldHdlZW4KKyAgICAg
ICAgYXNzdW1lcyB0aGF0IHRoZSBpbWFnZSBkaW1lbnNpb25zIGFyZSBmb3IgYSBub24tcmV0aW5h
IGRldmljZSwgYnV0IHRoaXMgd29yayBzaG91bGQgcmVhbGx5IG5vdCBiZSBuZWNlc3NhcnkgaWYK
KyAgICAgICAgd2UgdHdlYWsgdGhlIGhldXJpc3RpYyB0byBhY2NvdW50IGZvciBkZXZpY2VTY2Fs
ZUZhY3Rvci4gV2Ugc2hvdWxkIGFkZHJlc3MgdGhpcyBpbiBhIHNlcGFyYXRlIHBhdGNoLgorCisg
ICAgICAgICogcGxhdGZvcm0vRHJhZ0ltYWdlLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvUGF0aC5oOgorCiAyMDE3LTAyLTEzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CiAKICAgICAgICAgW0NvY29hXSBTdG9wIHNvZnQtbGlua2luZyBDVFJ1bkdldEJh
c2VBZHZhbmNlc0FuZE9yaWdpbnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGU3ZTdjYjBlMGU5ODM1MjEwOWM2
MGMxYzRmN2E3MWNlN2Y2MGFmNjEuLjExNGQzMGU4NDMyYzcyODA4NjY1NTQ0MDU0YmJjYjM0YTNj
Zjk2MTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2MCBAQAorMjAxNy0wMi0xNCAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbV0syXSBTdXBwb3J0IGRh
dGEgaW50ZXJhY3Rpb24gb24gbGlua3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE2ODMzMQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzAyMDA4Mzc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhvcnRvbi4KKworICAgICAgICBBZGRzIHN1cHBv
cnQgZm9yIGRhdGEgaW50ZXJhY3Rpb24gb24gbGlua3MgYXQgdGhlIGNsaWVudCBsYXllciBmb3Ig
V2ViS2l0Mi4gVGhpcyBpbnZvbHZlcyBzZXZlcmFsIGNoYW5nZXMsCisgICAgICAgIGRldGFpbGVk
IGluIHRoZSBwZXItbWV0aG9kIGNoYW5nZXMgYmVsb3c6CisKKyAgICAgICAgKiBTaGFyZWQvaW9z
L0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmg6CisgICAgICAgICogU2hhcmVkL2lv
cy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5tbToKKyAgICAgICAgKFdlYktpdDo6
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmVuY29kZSk6CisgICAgICAgIChXZWJL
aXQ6OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOjpkZWNvZGUpOgorCisgICAgICAg
IEFkZCBhZGp1c3RlZFBvaW50Rm9yTm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzICh0aGUgcmVx
dWVzdCBwb2ludCwgYWRqdXN0ZWQgdG8gdGFrZSBub2RlUmVzcG9uZGluZ1RvQ2xpY2tFdmVudHMK
KyAgICAgICAgaW50byBhY2NvdW50KSB0byBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlv
bi4gVGhlIHdlYiBwcm9jZXNzIHNlbmRzIHRoaXMgYWRqdXN0ZWQgcG9pbnQgb3ZlciB0byB0aGUg
VUkKKyAgICAgICAgcHJvY2VzcyBzbyB0aGF0IHRoZSBVSSBwcm9jZXNzIHdpbGwgYmUgYWJsZSB0
byBiZWdpbiBhIGRhdGEgaW50ZXJhY3Rpb24gYXQgdGhlIGFkanVzdGVkIHBvaW50IHJhdGhlciB0
aGFuIHRoZQorICAgICAgICByZXF1ZXN0IHBvaW50LCB3aGljaCBpcyBuZWNlc3NhcnkgZm9yIHNt
YWxsIGNsaWNrYWJsZSAoYW5kIGRhdGEtaW50ZXJhY3RpdmUpIGVsZW1lbnRzIHN1Y2ggYXMgbGlu
a3MuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXQuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXQubW06CisgICAgICAgICgtW1dLQWN0aW9uU2hl
ZXQgcHJlc2VudFNoZWV0Ol0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0IF9wcmVzZW50YXRp
b25SZWN0Rm9yU3R5bGU6XSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXQgdXBkYXRlU2hlZXRQ
b3NpdGlvbl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFu
dC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbToK
KyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBwcmVzZW50YXRpb25SZWN0Rm9yRWxl
bWVudFVzaW5nQ2xvc2VzdEluZGljYXRlZFJlY3RdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVl
dEFzc2lzdGFudCBwcmVzZW50YXRpb25SZWN0Rm9ySW5kaWNhdGVkRWxlbWVudF0pOgorICAgICAg
ICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IHNob3dJbWFnZVNoZWV0XSk6CisgICAgICAgICgt
W1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgX3Nob3VsZFByZXNlbnRBdFRvdWNoTG9jYXRpb25Gb3JF
bGVtZW50UmVjdDpdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBuZWVkc0xp
bmtJbmRpY2F0b3JdKToKKyAgICAgICAgKC1bV0tBY3Rpb25TaGVldEFzc2lzdGFudCBzaG93TGlu
a1NoZWV0XSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgY2xlYW51cFNoZWV0
XSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgX3ByZXNlbnRhdGlvblN0eWxl
Rm9ySW1hZ2VBdEVsZW1lbnRSZWN0Ol0pOiBEZWxldGVkLgorCisgICAgICAgIEFkZCBzdXBwb3J0
IGZvciB0aGUgV0tBY3Rpb25TaGVldFByZXNlbnRBdENsb3Nlc3RJbmRpY2F0b3JSZWN0IHN0eWxl
IG9mIHByZXNlbnRpbmcgYW4gYWN0aW9uIHNoZWV0LiBXaGVuCisgICAgICAgIHNob3dpbmcgdGhl
IGFjdGlvbiBzaGVldCBmb3IgYSBsaW5rIGFuZCB0aGVyZSBpcyBzcGFjZSBhbG9uZyB0aGUgbWFy
Z2lucyB0byBzaG93IGEgcG9wb3ZlciBpbiB0aGUgZmlyc3QgcGxhY2UsCisgICAgICAgIHdlIHdp
bGwgbm93IHRhcmdldCB0aGUgcG9wb3ZlciByZWN0IHRvIHRoZSBib3VuZGluZyByZWN0IG9mIHRo
ZSBzZXQgb2YgYWRqYWNlbnQgKG9yIG5lYXJseS1hZGphY2VudCkgZWxlbWVudAorICAgICAgICBy
ZWN0cyBjbG9zZXN0IHRvIHRoZSB1c2VyJ3MgdG91Y2ggbG9jYXRpb24uIFRoaXMgY292ZXJzIGNh
c2VzIHdoZXJlIHRoZSBsaW5rIGlzIHNwbGl0IGludG8gbXVsdGlwbGUgcmVjdHMgZHVlIHRvCisg
ICAgICAgIGEgbGluZSBicmVhaywgd2hlbiB0aGUgbGluayBpcyBvbiBtdWx0aXBsZSBsaW5lcyB3
aXRoIGEgamFnZ2VkIHJlY3QgcGVyIGxpbmUsIGFuZCB3aGVuIGJvdGggb2YgdGhlIGFib3ZlIGFy
ZQorICAgICAgICB0cnVlLgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcG9pbnRJc0luRGF0YUlu
dGVyYWN0aW9uQ29udGVudDpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcG9zaXRpb25J
bmZvcm1hdGlvbkRpZENoYW5nZTpdKToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBwb3NpdGlv
bkluZm9ybWF0aW9uRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6XSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgdXBkYXRlUG9zaXRpb25JbmZvcm1hdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50
Ol0pOgorCisgICAgICAgIEluY2x1ZGUgbGluayBpbmRpY2F0b3IgZGF0YSBpbiB0aGUgcG9zaXRp
b24gaW5mb3JtYXRpb24gcmVxdWVzdCBpZiBuZWVkZWQuIEFzIHRoZSBGSVhNRSBzdWdnZXN0cywg
dGhpcyBjYW4gYmUKKyAgICAgICAgaW1wcm92ZWQgYnkgYXN5bmNocm9ub3VzbHkgcHJlc2VudGlu
ZyB0aGUgYWN0aW9uIHNoZWV0IGFzc2lzdGFudCBhZnRlciB0aGUgcmVxdWVzdCByZXR1cm5zLCBh
bmQgaXMgc29tZXRoaW5nIHdlCisgICAgICAgIHNob3VsZCBhZGRyZXNzIGluIHRoZSBmdXR1cmUu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW06CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OmdldFBvc2l0aW9uSW5mb3JtYXRpb24pOgorCiAyMDE3LTAy
LTEzICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIENh
bGwgV0tEZXN0cm95UmVuZGVyaW5nUmVzb3VyY2VzKCkgb24gaU9TIHdoZW4gdGFicyBhcmUgYmFj
a2dyb3VuZGVkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDIxMDEy
MTRlMDczZGRjYzQ2OGNmZTkxOTk4YTY1MjQ2MmE2ZWM1M2IuLjg0ZGEzOGViZDJmNDNiYzYzYmJi
OTM1MjNmZWIxYzI1MzFlNWE1MDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJh
Z0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwCkBAIC05MTYsOCArOTE2LDcgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6c3RhcnREcmFnKEZy
YW1lJiBzcmMsIGNvbnN0IERyYWdTdGF0ZSYgc3RhdGUsIERyYWdPcGVyYXRpb24KICAgICAgICAg
ICAgIEludFNpemUgc2l6ZSA9IGRyYWdJbWFnZVNpemUoZHJhZ0ltYWdlLmdldCgpKTsKICAgICAg
ICAgICAgIG1fZHJhZ09mZnNldCA9IEludFBvaW50KC1zaXplLndpZHRoKCkgLyAyLCAtTGlua0Ry
YWdCb3JkZXJJbnNldCk7CiAgICAgICAgICAgICBkcmFnTG9jID0gSW50UG9pbnQobW91c2VEcmFn
Z2VkUG9pbnQueCgpICsgbV9kcmFnT2Zmc2V0LngoKSwgbW91c2VEcmFnZ2VkUG9pbnQueSgpICsg
bV9kcmFnT2Zmc2V0LnkoKSk7Ci0gICAgICAgICAgICAvLyBMYXRlciBjb2RlIGV4cGVjdHMgdGhl
IGRyYWcgaW1hZ2UgdG8gYmUgc2NhbGVkIGJ5IGRldmljZSdzIHNjYWxlIGZhY3Rvci4KLSAgICAg
ICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFnZSB7IHNjYWxlRHJhZ0ltYWdlKGRyYWdJbWFnZS5n
ZXQoKSwgRmxvYXRTaXplKG1fcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpLCBtX3BhZ2UuZGV2aWNl
U2NhbGVGYWN0b3IoKSkpIH07CisgICAgICAgICAgICBkcmFnSW1hZ2UgPSBEcmFnSW1hZ2UgeyBw
bGF0Zm9ybUFkanVzdERyYWdJbWFnZUZvckRldmljZVNjYWxlRmFjdG9yKGRyYWdJbWFnZS5nZXQo
KSwgbV9wYWdlLmRldmljZVNjYWxlRmFjdG9yKCkpIH07CiAgICAgICAgIH0KICAgICAgICAgZG9T
eXN0ZW1EcmFnKFdURk1vdmUoZHJhZ0ltYWdlKSwgZHJhZ0xvYywgbW91c2VEcmFnZ2VkUG9pbnQs
IHsgfSwgZGF0YVRyYW5zZmVyLCBzcmMsIHRydWUpOwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VM
RU1FTlQpCkBAIC05NzEsNyArOTcwLDcgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9JbWFnZURy
YWcoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UG9pbnQmIGRyYWdPcmlnaW4sIGMKICAgICAg
ICAgZHJhZ0ltYWdlID0gRHJhZ0ltYWdlIHsgZml0RHJhZ0ltYWdlVG9NYXhTaXplKGRyYWdJbWFn
ZS5nZXQoKSwgbGF5b3V0UmVjdC5zaXplKCksIG1heERyYWdJbWFnZVNpemUoKSkgfTsKICAgICAg
ICAgSW50U2l6ZSBmaXR0ZWRTaXplID0gZHJhZ0ltYWdlU2l6ZShkcmFnSW1hZ2UuZ2V0KCkpOwog
Ci0gICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFnZSB7IHNjYWxlRHJhZ0ltYWdlKGRyYWdJbWFn
ZS5nZXQoKSwgRmxvYXRTaXplKG1fcGFnZS5kZXZpY2VTY2FsZUZhY3RvcigpLCBtX3BhZ2UuZGV2
aWNlU2NhbGVGYWN0b3IoKSkpIH07CisgICAgICAgIGRyYWdJbWFnZSA9IERyYWdJbWFnZSB7IHBs
YXRmb3JtQWRqdXN0RHJhZ0ltYWdlRm9yRGV2aWNlU2NhbGVGYWN0b3IoZHJhZ0ltYWdlLmdldCgp
LCBtX3BhZ2UuZGV2aWNlU2NhbGVGYWN0b3IoKSkgfTsKICAgICAgICAgZHJhZ0ltYWdlID0gRHJh
Z0ltYWdlIHsgZGlzc29sdmVEcmFnSW1hZ2VUb0ZyYWN0aW9uKGRyYWdJbWFnZS5nZXQoKSwgRHJh
Z0ltYWdlQWxwaGEpIH07CiAKICAgICAgICAgLy8gUHJvcGVybHkgb3JpZW50IHRoZSBkcmFnIGlt
YWdlIGFuZCBvcmllbnQgaXQgZGlmZmVyZW50bHkgaWYgaXQncyBzbWFsbGVyIHRoYW4gdGhlIG9y
aWdpbmFsLgpAQCAtMTAwMiw3ICsxMDAxLDkgQEAgdm9pZCBEcmFnQ29udHJvbGxlcjo6ZG9JbWFn
ZURyYWcoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgSW50UG9pbnQmIGRyYWdPcmlnaW4sIGMKIHZv
aWQgRHJhZ0NvbnRyb2xsZXI6OmRvU3lzdGVtRHJhZyhEcmFnSW1hZ2UgaW1hZ2UsIGNvbnN0IElu
dFBvaW50JiBkcmFnTG9jLCBjb25zdCBJbnRQb2ludCYgZXZlbnRQb3MsIGNvbnN0IEludFJlY3Qm
IGRyYWdJbWFnZUJvdW5kcywgRGF0YVRyYW5zZmVyJiBkYXRhVHJhbnNmZXIsIEZyYW1lJiBmcmFt
ZSwgYm9vbCBmb3JMaW5rKQogewogICAgIEZsb2F0UG9pbnQgZHJhZ0ltYWdlQW5jaG9yID0geyAw
LjUsIDAuNSB9OwotICAgIGlmICghZHJhZ0ltYWdlQm91bmRzLmlzRW1wdHkoKSkgeworICAgIGlm
IChmb3JMaW5rKQorICAgICAgICBkcmFnSW1hZ2VBbmNob3Iuc2V0WSgxKTsKKyAgICBlbHNlIGlm
ICghZHJhZ0ltYWdlQm91bmRzLmlzRW1wdHkoKSkgewogICAgICAgICBkcmFnSW1hZ2VBbmNob3Iu
c2V0WCgoZXZlbnRQb3MueCgpIC0gZHJhZ0ltYWdlQm91bmRzLngoKSkgLyAoZmxvYXQpZHJhZ0lt
YWdlQm91bmRzLndpZHRoKCkpOwogICAgICAgICBkcmFnSW1hZ2VBbmNob3Iuc2V0WSgoZXZlbnRQ
b3MueSgpIC0gZHJhZ0ltYWdlQm91bmRzLnkoKSkgLyAoZmxvYXQpZHJhZ0ltYWdlQm91bmRzLmhl
aWdodCgpKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFn
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0ltYWdlLmNwcAppbmRleCBi
YjcxNmFhYjgzNWFhY2IzNjQyYmE1ZjM0ZTJhNmVjNDNjN2M5MmJiLi5jNzIwM2ExM2Q5NDBmNDZh
OGFjZTc0MzEwNjg5MDA1M2U3ZDI0ZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9EcmFnSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFn
ZS5jcHAKQEAgLTIxMCw2ICsyMTAsMTQgQEAgRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZv
ckltYWdlKEZyYW1lJiBmcmFtZSwgTm9kZSYgbm9kZSwgSW50UmVjdCYgaW1hZ2VSZWMKICAgICBy
ZXR1cm4gY3JlYXRlRHJhZ0ltYWdlRnJvbVNuYXBzaG90KHNuYXBzaG90Tm9kZShmcmFtZSwgbm9k
ZSksICZub2RlKTsKIH0KIAorI2lmICFFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKK0RyYWdJbWFn
ZVJlZiBwbGF0Zm9ybUFkanVzdERyYWdJbWFnZUZvckRldmljZVNjYWxlRmFjdG9yKERyYWdJbWFn
ZVJlZiBpbWFnZSwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAgLy8gTGF0ZXIgY29k
ZSBleHBlY3RzIHRoZSBkcmFnIGltYWdlIHRvIGJlIHNjYWxlZCBieSBkZXZpY2UncyBzY2FsZSBm
YWN0b3IuCisgICAgcmV0dXJuIHNjYWxlRHJhZ0ltYWdlKGltYWdlLCB7IGRldmljZVNjYWxlRmFj
dG9yLCBkZXZpY2VTY2FsZUZhY3RvciB9KTsKK30KKyNlbmRpZgorCiAjaWYgIVBMQVRGT1JNKENP
Q09BKSAmJiAhUExBVEZPUk0oV0lOKQogRHJhZ0ltYWdlUmVmIGNyZWF0ZURyYWdJbWFnZUZvckxp
bmsoVVJMJiwgY29uc3QgU3RyaW5nJiwgRm9udFJlbmRlcmluZ01vZGUpCiB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0RyYWdJbWFnZS5oCmluZGV4IGRhNTJhYjllODk0MjVhMWY4OWVhNDZkYjJjMDcxZGE4
MGJiZWIwODQuLjFkODhmMDQyNmMzZDU5ZDIyOGQwODUxMjAyOGU0ZmU2MTA5MDgyNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0RyYWdJbWFnZS5oCkBAIC03OCw2ICs3OCw3IEBAIEludFNpemUgZHJh
Z0ltYWdlU2l6ZShEcmFnSW1hZ2VSZWYpOwogLy8gdGhlIGlucHV0IGltYWdlIHJlZiB3aWxsIHN0
aWxsIGJlIHZhbGlkIGFmdGVyIHRoZXkgaGF2ZSBiZWVuIGNhbGxlZC4KIERyYWdJbWFnZVJlZiBm
aXREcmFnSW1hZ2VUb01heFNpemUoRHJhZ0ltYWdlUmVmLCBjb25zdCBJbnRTaXplJiBzcmNTaXpl
LCBjb25zdCBJbnRTaXplJiBkc3RTaXplKTsKIERyYWdJbWFnZVJlZiBzY2FsZURyYWdJbWFnZShE
cmFnSW1hZ2VSZWYsIEZsb2F0U2l6ZSBzY2FsZSk7CitEcmFnSW1hZ2VSZWYgcGxhdGZvcm1BZGp1
c3REcmFnSW1hZ2VGb3JEZXZpY2VTY2FsZUZhY3RvcihEcmFnSW1hZ2VSZWYsIGZsb2F0IGRldmlj
ZVNjYWxlRmFjdG9yKTsKIERyYWdJbWFnZVJlZiBkaXNzb2x2ZURyYWdJbWFnZVRvRnJhY3Rpb24o
RHJhZ0ltYWdlUmVmLCBmbG9hdCBkZWx0YSk7CiAKIERyYWdJbWFnZVJlZiBjcmVhdGVEcmFnSW1h
Z2VGcm9tSW1hZ2UoSW1hZ2UqLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvUGF0aC5oCmluZGV4IGE5MTI0NDc5NDRmNWFiYjRiYTlj
NTJlNDhhZjM4ZTlmMjQ2MzcyMjkuLjI4MzFjZmUzM2U3YzA2YTg4ZDNjNmI4M2M5MTI2Yjg1MDJh
MzRlZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1BhdGgu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9QYXRoLmgKQEAgLTEyMiw3
ICsxMjIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIC8vIGZhc3RCb3VuZGluZ1Jl
Y3QoKSBzaG91bGQgZXF1YWwgb3IgY29udGFpbiBib3VuZGluZ1JlY3QoKTsgYm91bmRpbmdSZWN0
KCkKICAgICAgICAgLy8gc2hvdWxkIHBlcmZlY3RseSBib3VuZCB0aGUgcG9pbnRzIHdpdGhpbiB0
aGUgcGF0aC4KICAgICAgICAgRmxvYXRSZWN0IGJvdW5kaW5nUmVjdCgpIGNvbnN0OwotICAgICAg
ICBGbG9hdFJlY3QgZmFzdEJvdW5kaW5nUmVjdCgpIGNvbnN0OworICAgICAgICBXRUJDT1JFX0VY
UE9SVCBGbG9hdFJlY3QgZmFzdEJvdW5kaW5nUmVjdCgpIGNvbnN0OwogICAgICAgICBGbG9hdFJl
Y3Qgc3Ryb2tlQm91bmRpbmdSZWN0KFN0cm9rZVN0eWxlQXBwbGllciogPSAwKSBjb25zdDsKIAog
ICAgICAgICBmbG9hdCBsZW5ndGgoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaCBiL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24uaAppbmRl
eCBiNDFkNjRkOTIwMDk4YzdiMmE1NWRjMTFkODFiODIyYzg2ZjY5NWQ3Li44YmVjZTFiNzA1ZWFl
YmYyZDJkNzM3ZTRlNjYzOGRkZjYxNzc2MWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgKKysrIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oCkBA
IC01NSw2ICs1NSw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiB7
CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogICAgIGJvb2wgaXNEYXRhRGV0ZWN0b3JMaW5r
IHsgZmFsc2UgfTsKICNlbmRpZgorICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgYWRqdXN0ZWRQb2lu
dEZvck5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50czsKICAgICBTdHJpbmcgdXJsOwogICAgIFN0
cmluZyBpbWFnZVVSTDsKICAgICBTdHJpbmcgdGl0bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL2lvcy9JbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5t
bQppbmRleCBiYTFhNGM1OTFlMWExNjMxMzZmNTcyZWMwYmEyMDc1YWU2NTQ0NmJhLi4xNjNlZGE1
NjM2ZmU4YWQ5NDcxMjU5ZjQ1YWJjNDIyYzVmODU1ZWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvaW9zL0ludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9pb3MvSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24ubW0KQEAgLTU0LDYgKzU0LDcgQEAgdm9pZCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbjo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAgICBlbmNvZGVyIDw8
IGlzQXR0YWNobWVudDsKICAgICBlbmNvZGVyIDw8IGlzQW5pbWF0ZWRJbWFnZTsKICAgICBlbmNv
ZGVyIDw8IGlzRWxlbWVudDsKKyAgICBlbmNvZGVyIDw8IGFkanVzdGVkUG9pbnRGb3JOb2RlUmVz
cG9uZGluZ1RvQ2xpY2tFdmVudHM7CiAgICAgZW5jb2RlciA8PCB1cmw7CiAgICAgZW5jb2RlciA8
PCBpbWFnZVVSTDsKICAgICBlbmNvZGVyIDw8IHRpdGxlOwpAQCAtMTE5LDYgKzEyMCw5IEBAIGJv
b2wgSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246OmRlY29kZShJUEM6OkRlY29kZXIm
IGRlY29kZXIsIEludGVyYWN0aW9uCiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQuaXNF
bGVtZW50KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCisgICAgaWYgKCFkZWNvZGVyLmRlY29k
ZShyZXN1bHQuYWRqdXN0ZWRQb2ludEZvck5vZGVSZXNwb25kaW5nVG9DbGlja0V2ZW50cykpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LnVy
bCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQWN0aW9uU2hlZXQuaAppbmRleCAwNWVmYWUwZDRiMTg4MDczMDY5ZDQ0YWUxMTkyYWNh
YzE2NmM5N2UwLi5lM2JhODg0MTI5NmM3OWEzY2ExMzJlNmVhY2Q1OGFkOGJiODM0ODE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXQuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXQuaApAQCAtMzAsNyAr
MzAsOCBAQAogCiB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS0FjdGlvblNoZWV0UHJlc2Vu
dGF0aW9uU3R5bGUpIHsKICAgICBXS0FjdGlvblNoZWV0UHJlc2VudEF0VG91Y2hMb2NhdGlvbiwK
LSAgICBXS0FjdGlvblNoZWV0UHJlc2VudEF0RWxlbWVudFJlY3QKKyAgICBXS0FjdGlvblNoZWV0
UHJlc2VudEF0RWxlbWVudFJlY3QsCisgICAgV0tBY3Rpb25TaGVldFByZXNlbnRBdENsb3Nlc3RJ
bmRpY2F0b3JSZWN0CiB9OwogCiBAcHJvdG9jb2wgV0tBY3Rpb25TaGVldERlbGVnYXRlOwpAQCAt
NTEsNiArNTIsNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXS0FjdGlvblNoZWV0UHJl
c2VudGF0aW9uU3R5bGUpIHsKIC0gKFVJVmlldyAqKWhvc3RWaWV3Rm9yU2hlZXQ7CiAtIChDR1Jl
Y3QpaW5pdGlhbFByZXNlbnRhdGlvblJlY3RJbkhvc3RWaWV3Rm9yU2hlZXQ7CiAtIChDR1JlY3Qp
cHJlc2VudGF0aW9uUmVjdEZvckluZGljYXRlZEVsZW1lbnQ7CistIChDR1JlY3QpcHJlc2VudGF0
aW9uUmVjdEZvckVsZW1lbnRVc2luZ0Nsb3Nlc3RJbmRpY2F0ZWRSZWN0OwogLSAoQ0dSZWN0KXBy
ZXNlbnRhdGlvblJlY3RJbkhvc3RWaWV3Rm9yU2hlZXQ7CiAtICh2b2lkKXVwZGF0ZVBvc2l0aW9u
SW5mb3JtYXRpb247CiBAZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
aW9zL1dLQWN0aW9uU2hlZXQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0
aW9uU2hlZXQubW0KaW5kZXggYWE4OTlkNjc2MTgwY2U2Yjc0NjZiY2FlZjc5NWQ1MmRjNTczODg2
MS4uOTBkMDc1NmZhNzA2YTU5MzMyOWYxMmZmOGVmZWJlZGU5MzE4MjVjNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldC5tbQpAQCAtNzYsNyArNzYsNyBA
QAogICAgIC8vIENhbGN1bGF0ZSB0aGUgcHJlc2VudGF0aW9uIHJlY3QganVzdCBiZWZvcmUgc2hv
d2luZy4KICAgICBDR1JlY3QgcHJlc2VudGF0aW9uUmVjdCA9IENHUmVjdFplcm87CiAgICAgaWYg
KFVJX1VTRVJfSU5URVJGQUNFX0lESU9NKCkgIT0gVUlVc2VySW50ZXJmYWNlSWRpb21QaG9uZSkg
ewotICAgICAgICBwcmVzZW50YXRpb25SZWN0ID0gc3R5bGUgPT0gV0tBY3Rpb25TaGVldFByZXNl
bnRBdEVsZW1lbnRSZWN0ID8gW19zaGVldERlbGVnYXRlIHByZXNlbnRhdGlvblJlY3RGb3JJbmRp
Y2F0ZWRFbGVtZW50XSA6IFtfc2hlZXREZWxlZ2F0ZSBpbml0aWFsUHJlc2VudGF0aW9uUmVjdElu
SG9zdFZpZXdGb3JTaGVldF07CisgICAgICAgIHByZXNlbnRhdGlvblJlY3QgPSBbc2VsZiBfcHJl
c2VudGF0aW9uUmVjdEZvclN0eWxlOnN0eWxlXTsKICAgICAgICAgaWYgKENHUmVjdElzRW1wdHko
cHJlc2VudGF0aW9uUmVjdCkpCiAgICAgICAgICAgICByZXR1cm4gTk87CiAgICAgfQpAQCAtODUs
NiArODUsMTcgQEAKICAgICByZXR1cm4gW3NlbGYgcHJlc2VudFNoZWV0RnJvbVJlY3Q6cHJlc2Vu
dGF0aW9uUmVjdF07CiB9CiAKKy0gKENHUmVjdClfcHJlc2VudGF0aW9uUmVjdEZvclN0eWxlOihX
S0FjdGlvblNoZWV0UHJlc2VudGF0aW9uU3R5bGUpc3R5bGUKK3sKKyAgICBpZiAoc3R5bGUgPT0g
V0tBY3Rpb25TaGVldFByZXNlbnRBdEVsZW1lbnRSZWN0KQorICAgICAgICByZXR1cm4gW19zaGVl
dERlbGVnYXRlIHByZXNlbnRhdGlvblJlY3RGb3JJbmRpY2F0ZWRFbGVtZW50XTsKKworICAgIGlm
IChzdHlsZSA9PSBXS0FjdGlvblNoZWV0UHJlc2VudEF0Q2xvc2VzdEluZGljYXRvclJlY3QpCisg
ICAgICAgIHJldHVybiBbX3NoZWV0RGVsZWdhdGUgcHJlc2VudGF0aW9uUmVjdEZvckVsZW1lbnRV
c2luZ0Nsb3Nlc3RJbmRpY2F0ZWRSZWN0XTsKKworICAgIHJldHVybiBbX3NoZWV0RGVsZWdhdGUg
aW5pdGlhbFByZXNlbnRhdGlvblJlY3RJbkhvc3RWaWV3Rm9yU2hlZXRdOworfQorCiAtIChCT09M
KXByZXNlbnRTaGVldEZyb21SZWN0OihDR1JlY3QpcHJlc2VudGF0aW9uUmVjdAogewogICAgIFVJ
VmlldyAqdmlldyA9IFtfc2hlZXREZWxlZ2F0ZSBob3N0Vmlld0ZvclNoZWV0XTsKQEAgLTE5Niw3
ICsyMDcsNyBAQAogICAgIGlmIChfaXNSb3RhdGluZyB8fCAhX3JlYWR5VG9QcmVzZW50QWZ0ZXJS
b3RhdGlvbiB8fCBpc0JlaW5nUHJlc2VudGVkKQogICAgICAgICByZXR1cm47CiAKLSAgICBDR1Jl
Y3QgcHJlc2VudGF0aW9uUmVjdCA9IF9jdXJyZW50UHJlc2VudGF0aW9uU3R5bGUgPT0gV0tBY3Rp
b25TaGVldFByZXNlbnRBdEVsZW1lbnRSZWN0ID8gW19zaGVldERlbGVnYXRlIHByZXNlbnRhdGlv
blJlY3RGb3JJbmRpY2F0ZWRFbGVtZW50XSA6IFtfc2hlZXREZWxlZ2F0ZSBpbml0aWFsUHJlc2Vu
dGF0aW9uUmVjdEluSG9zdFZpZXdGb3JTaGVldF07CisgICAgQ0dSZWN0IHByZXNlbnRhdGlvblJl
Y3QgPSBbc2VsZiBfcHJlc2VudGF0aW9uUmVjdEZvclN0eWxlOl9jdXJyZW50UHJlc2VudGF0aW9u
U3R5bGVdOwogICAgIEJPT0wgd2FzUHJlc2VudGVkVmlld0NvbnRyb2xsZXJNb2RhbCA9IFtfcHJl
c2VudGVkVmlld0NvbnRyb2xsZXJXaGlsZVJvdGF0aW5nIGlzTW9kYWxJblBvcG92ZXJdOwogCiAg
ICAgaWYgKCFDR1JlY3RJc0VtcHR5KHByZXNlbnRhdGlvblJlY3QpIHx8IHdhc1ByZXNlbnRlZFZp
ZXdDb250cm9sbGVyTW9kYWwpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKaW5kZXggODFhNTBjNTg4YzIyYzgwZTI1ZWYx
ZjkzZTg0MTkzYTNkYmIxNmU0NC4uM2Q1YTIwODY1YzI4ODFjMDliY2YzMWI5YWRjNzg1YTg4YmM0
ZTFjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNo
ZWV0QXNzaXN0YW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlv
blNoZWV0QXNzaXN0YW50LmgKQEAgLTYzLDYgKzYzLDcgQEAgc3RydWN0IEludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uOwogCiBAaW50ZXJmYWNlIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQg
OiBOU09iamVjdCA8V0tBY3Rpb25TaGVldERlbGVnYXRlLCBERERldGVjdGlvbkNvbnRyb2xsZXJJ
bnRlcmFjdGlvbkRlbGVnYXRlPgogQHByb3BlcnR5IChub25hdG9taWMsIHdlYWspIGlkIDxXS0Fj
dGlvblNoZWV0QXNzaXN0YW50RGVsZWdhdGU+IGRlbGVnYXRlOworQHByb3BlcnR5IChub25hdG9t
aWMpIEJPT0wgbmVlZHNMaW5rSW5kaWNhdG9yOwogLSAoaWQpaW5pdFdpdGhWaWV3OihVSVZpZXcg
Kil2aWV3OwogLSAodm9pZClzaG93TGlua1NoZWV0OwogLSAodm9pZClzaG93SW1hZ2VTaGVldDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFz
c2lzdGFudC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFz
c2lzdGFudC5tbQppbmRleCBkZDE2OTU2ZGRiYmIyMzNiNGU5NTNlNzRjMTJlYjUyNzU2MmVkMGQ1
Li43MWUzOThkNGUxNmQ4ZjIyMmZkOGM2M2NhODY2MTIxM2JhMTI5ZDk2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1t
CkBAIC00MSw2ICs0MSw3IEBACiAjaW1wb3J0ICJfV0tFbGVtZW50QWN0aW9uSW50ZXJuYWwuaCIK
ICNpbXBvcnQgPFVJS2l0L1VJVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJp
bmdzLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BhdGhVdGlsaXRpZXMuaD4KICNpbXBvcnQgPFdlYkNv
cmUvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZU5TVVJMRXh0cmFzLmg+
CiAjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KQEAgLTg4LDYgKzg5LDcgQEAgc3RhdGlj
IExTQXBwTGluayAqYXBwTGlua0ZvclVSTChOU1VSTCAqdXJsKQogICAgIFJldGFpblB0cjxXS0Fj
dGlvblNoZWV0PiBfaW50ZXJhY3Rpb25TaGVldDsKICAgICBSZXRhaW5QdHI8X1dLQWN0aXZhdGVk
RWxlbWVudEluZm8+IF9lbGVtZW50SW5mbzsKICAgICBVSVZpZXcgKl92aWV3OworICAgIEJPT0wg
X25lZWRzTGlua0luZGljYXRvcjsKIH0KIAogLSAoaWQgPFdLQWN0aW9uU2hlZXRBc3Npc3RhbnRE
ZWxlZ2F0ZT4pZGVsZWdhdGUKQEAgLTE0OCw2ICsxNTAsMzggQEAgc3RhdGljIExTQXBwTGluayAq
YXBwTGlua0ZvclVSTChOU1VSTCAqdXJsKQogICAgIHJldHVybiBbc2VsZiBzdXBlcnZpZXdGb3JT
aGVldF07CiB9CiAKK3N0YXRpYyBjb25zdCBDR0Zsb2F0IHByZXNlbnRhdGlvbkVsZW1lbnRSZWN0
UGFkZGluZyA9IDE1OworCistIChDR1JlY3QpcHJlc2VudGF0aW9uUmVjdEZvckVsZW1lbnRVc2lu
Z0Nsb3Nlc3RJbmRpY2F0ZWRSZWN0Cit7CisgICAgVUlWaWV3ICp2aWV3ID0gW3NlbGYgc3VwZXJ2
aWV3Rm9yU2hlZXRdOworICAgIGF1dG8gZGVsZWdhdGUgPSBfZGVsZWdhdGUuZ2V0KCk7CisgICAg
aWYgKCF2aWV3IHx8ICFkZWxlZ2F0ZSkKKyAgICAgICAgcmV0dXJuIENHUmVjdFplcm87CisKKyAg
ICBhdXRvIGluZm8gPSBbZGVsZWdhdGUgcG9zaXRpb25JbmZvcm1hdGlvbkZvckFjdGlvblNoZWV0
QXNzaXN0YW50OnNlbGZdOworICAgIGF1dG8gaW5kaWNhdG9yID0gaW5mby5saW5rSW5kaWNhdG9y
OworICAgIGlmIChpbmRpY2F0b3IudGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBDR1JlY3RaZXJvOworCisgICAgV2ViQ29yZTo6Rmxv
YXRQb2ludCB0b3VjaExvY2F0aW9uID0gaW5mby5yZXF1ZXN0LnBvaW50OworICAgIFdlYkNvcmU6
OkZsb2F0UG9pbnQgbGlua0VsZW1lbnRMb2NhdGlvbiA9IGluZGljYXRvci50ZXh0Qm91bmRpbmdS
ZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLmxvY2F0aW9uKCk7CisgICAgVmVjdG9yPFdlYkNvcmU6
OkZsb2F0UmVjdD4gaW5kaWNhdGVkUmVjdHM7CisgICAgZm9yIChhdXRvIHJlY3QgOiBpbmRpY2F0
b3IudGV4dFJlY3RzSW5Cb3VuZGluZ1JlY3RDb29yZGluYXRlcykgeworICAgICAgICByZWN0Lmlu
ZmxhdGUoMik7CisgICAgICAgIHJlY3QubW92ZUJ5KGxpbmtFbGVtZW50TG9jYXRpb24pOworICAg
ICAgICBpbmRpY2F0ZWRSZWN0cy5hcHBlbmQocmVjdCk7CisgICAgfQorCisgICAgZm9yIChhdXRv
IHBhdGggOiBXZWJDb3JlOjpQYXRoVXRpbGl0aWVzOjpwYXRoc1dpdGhTaHJpbmtXcmFwcGVkUmVj
dHMoaW5kaWNhdGVkUmVjdHMsIDApKSB7CisgICAgICAgIGF1dG8gYm91bmRpbmdSZWN0ID0gcGF0
aC5mYXN0Qm91bmRpbmdSZWN0KCk7CisgICAgICAgIGlmIChib3VuZGluZ1JlY3QuY29udGFpbnMo
dG91Y2hMb2NhdGlvbikpCisgICAgICAgICAgICByZXR1cm4gQ0dSZWN0SW5zZXQoW3ZpZXcgY29u
dmVydFJlY3Q6KENHUmVjdClib3VuZGluZ1JlY3QgZnJvbVZpZXc6X3ZpZXddLCAtcHJlc2VudGF0
aW9uRWxlbWVudFJlY3RQYWRkaW5nLCAtcHJlc2VudGF0aW9uRWxlbWVudFJlY3RQYWRkaW5nKTsK
KyAgICB9CisKKyAgICByZXR1cm4gQ0dSZWN0WmVybzsKK30KKwogLSAoQ0dSZWN0KXByZXNlbnRh
dGlvblJlY3RGb3JJbmRpY2F0ZWRFbGVtZW50CiB7CiAgICAgVUlWaWV3ICp2aWV3ID0gW3NlbGYg
c3VwZXJ2aWV3Rm9yU2hlZXRdOwpAQCAtMTU1LDcgKzE4OSw2IEBAIHN0YXRpYyBMU0FwcExpbmsg
KmFwcExpbmtGb3JVUkwoTlNVUkwgKnVybCkKICAgICBpZiAoIXZpZXcgfHwgIWRlbGVnYXRlKQog
ICAgICAgICByZXR1cm4gQ0dSZWN0WmVybzsKIAotICAgIHN0YXRpYyBjb25zdCBDR0Zsb2F0IHBy
ZXNlbnRhdGlvbkVsZW1lbnRSZWN0UGFkZGluZyA9IDE1OwogICAgIGF1dG8gZWxlbWVudEJvdW5k
cyA9IFtkZWxlZ2F0ZSBwb3NpdGlvbkluZm9ybWF0aW9uRm9yQWN0aW9uU2hlZXRBc3Npc3RhbnQ6
c2VsZl0uYm91bmRzOwogICAgIHJldHVybiBDR1JlY3RJbnNldChbdmlldyBjb252ZXJ0UmVjdDpl
bGVtZW50Qm91bmRzIGZyb21WaWV3Ol92aWV3XSwgLXByZXNlbnRhdGlvbkVsZW1lbnRSZWN0UGFk
ZGluZywgLXByZXNlbnRhdGlvbkVsZW1lbnRSZWN0UGFkZGluZyk7CiB9CkBAIC0zMTgsMTEgKzM1
MSwxMSBAQCBzdGF0aWMgTFNBcHBMaW5rICphcHBMaW5rRm9yVVJMKE5TVVJMICp1cmwpCiAKICAg
ICBfZWxlbWVudEluZm8gPSBXVEZNb3ZlKGVsZW1lbnRJbmZvKTsKIAotICAgIGlmICghW19pbnRl
cmFjdGlvblNoZWV0IHByZXNlbnRTaGVldDpbc2VsZiBfcHJlc2VudGF0aW9uU3R5bGVGb3JJbWFn
ZUF0RWxlbWVudFJlY3Q6ZWxlbWVudEJvdW5kc11dKQorICAgIGlmICghW19pbnRlcmFjdGlvblNo
ZWV0IHByZXNlbnRTaGVldDpbc2VsZiBfc2hvdWxkUHJlc2VudEF0VG91Y2hMb2NhdGlvbkZvckVs
ZW1lbnRSZWN0OmVsZW1lbnRCb3VuZHNdID8gV0tBY3Rpb25TaGVldFByZXNlbnRBdFRvdWNoTG9j
YXRpb24gOiBXS0FjdGlvblNoZWV0UHJlc2VudEF0RWxlbWVudFJlY3RdKQogICAgICAgICBbc2Vs
ZiBjbGVhbnVwU2hlZXRdOwogfQogCi0tIChXS0FjdGlvblNoZWV0UHJlc2VudGF0aW9uU3R5bGUp
X3ByZXNlbnRhdGlvblN0eWxlRm9ySW1hZ2VBdEVsZW1lbnRSZWN0OihDR1JlY3QpZWxlbWVudFJl
Y3QKKy0gKEJPT0wpX3Nob3VsZFByZXNlbnRBdFRvdWNoTG9jYXRpb25Gb3JFbGVtZW50UmVjdDoo
Q0dSZWN0KWVsZW1lbnRSZWN0CiB7CiAgICAgYXV0byBhcHBhcmVudEVsZW1lbnRSZWN0ID0gW192
aWV3IGNvbnZlcnRSZWN0OmVsZW1lbnRSZWN0IHRvVmlldzpfdmlldy53aW5kb3ddOwogICAgIGF1
dG8gd2luZG93UmVjdCA9IF92aWV3LndpbmRvdy5ib3VuZHM7CkBAIC0zMzYsMTAgKzM2OSw3IEBA
IHN0YXRpYyBMU0FwcExpbmsgKmFwcExpbmtGb3JVUkwoTlNVUkwgKnVybCkKICAgICAvLyBJZiBh
dCBsZWFzdCB0aGlzIG11Y2ggb2YgdGhlIHdpbmRvdyBpcyBhdmFpbGFibGUgZm9yIHRoZSBwb3Bv
dmVyIHRvIGRyYXcgaW4sIHRoZW4gdGFyZ2V0IHRoZSBlbGVtZW50IHJlY3Qgd2hlbiBwcmVzZW50
aW5nIHRoZSBhY3Rpb24gbWVudSBwb3BvdmVyLgogICAgIC8vIE90aGVyd2lzZSwgdGhlcmUgaXMg
bm90IGVub3VnaCBzcGFjZSB0byBwb3NpdGlvbiB0aGUgcG9wb3ZlciBhcm91bmQgdGhlIGVsZW1l
bnQsIHNvIHJldmVydCB0byB1c2luZyB0aGUgdG91Y2ggbG9jYXRpb24gaW5zdGVhZC4KICAgICBz
dGF0aWMgY29uc3QgQ0dGbG9hdCBtaW5pbXVtQXZhaWxhYmxlV2lkdGhPckhlaWdodFJhdGlvID0g
MC40OwotICAgIGlmIChzdGQ6Om1heChsZWZ0SW5zZXQsIHJpZ2h0SW5zZXQpID4gbWluaW11bUF2
YWlsYWJsZVdpZHRoT3JIZWlnaHRSYXRpbyAqIENHUmVjdEdldFdpZHRoKHdpbmRvd1JlY3QpIHx8
IHN0ZDo6bWF4KHRvcEluc2V0LCBib3R0b21JbnNldCkgPiBtaW5pbXVtQXZhaWxhYmxlV2lkdGhP
ckhlaWdodFJhdGlvICogQ0dSZWN0R2V0SGVpZ2h0KHdpbmRvd1JlY3QpKQotICAgICAgICByZXR1
cm4gV0tBY3Rpb25TaGVldFByZXNlbnRBdEVsZW1lbnRSZWN0OwotCi0gICAgcmV0dXJuIFdLQWN0
aW9uU2hlZXRQcmVzZW50QXRUb3VjaExvY2F0aW9uOworICAgIHJldHVybiBzdGQ6Om1heChsZWZ0
SW5zZXQsIHJpZ2h0SW5zZXQpIDw9IG1pbmltdW1BdmFpbGFibGVXaWR0aE9ySGVpZ2h0UmF0aW8g
KiBDR1JlY3RHZXRXaWR0aCh3aW5kb3dSZWN0KSAmJiBzdGQ6Om1heCh0b3BJbnNldCwgYm90dG9t
SW5zZXQpIDw9IG1pbmltdW1BdmFpbGFibGVXaWR0aE9ySGVpZ2h0UmF0aW8gKiBDR1JlY3RHZXRI
ZWlnaHQod2luZG93UmVjdCk7CiB9CiAKIC0gKHZvaWQpX2FwcGVuZE9wZW5BY3Rpb25zRm9yVVJM
OihOU1VSTCAqKXVybCBhY3Rpb25zOihOU011dGFibGVBcnJheSAqKWRlZmF1bHRBY3Rpb25zIGVs
ZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvCkBAIC00MjYs
NiArNDU2LDExIEBAIHN0YXRpYyBMU0FwcExpbmsgKmFwcExpbmtGb3JVUkwoTlNVUkwgKnVybCkK
ICAgICByZXR1cm4gZGVmYXVsdEFjdGlvbnM7CiB9CiAKKy0gKEJPT0wpbmVlZHNMaW5rSW5kaWNh
dG9yCit7CisgICAgcmV0dXJuIF9uZWVkc0xpbmtJbmRpY2F0b3I7Cit9CisKIC0gKHZvaWQpc2hv
d0xpbmtTaGVldAogewogICAgIEFTU0VSVCghX2VsZW1lbnRJbmZvKTsKQEAgLTQzNCwzMCArNDY5
LDM5IEBAIHN0YXRpYyBMU0FwcExpbmsgKmFwcExpbmtGb3JVUkwoTlNVUkwgKnVybCkKICAgICBp
ZiAoIWRlbGVnYXRlKQogICAgICAgICByZXR1cm47CiAKKyAgICBfbmVlZHNMaW5rSW5kaWNhdG9y
ID0gWUVTOwogICAgIGNvbnN0IGF1dG8mIHBvc2l0aW9uSW5mb3JtYXRpb24gPSBbZGVsZWdhdGUg
cG9zaXRpb25JbmZvcm1hdGlvbkZvckFjdGlvblNoZWV0QXNzaXN0YW50OnNlbGZdOwogCiAgICAg
TlNVUkwgKnRhcmdldFVSTCA9IFtOU1VSTCBfd2ViX1VSTFdpdGhXVEZTdHJpbmc6cG9zaXRpb25J
bmZvcm1hdGlvbi51cmxdOwotICAgIGlmICghdGFyZ2V0VVJMKQorICAgIGlmICghdGFyZ2V0VVJM
KSB7CisgICAgICAgIF9uZWVkc0xpbmtJbmRpY2F0b3IgPSBOTzsKICAgICAgICAgcmV0dXJuOwor
ICAgIH0KIAogICAgIGF1dG8gZWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dLQWN0aXZhdGVkRWxl
bWVudEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxlbWVudFR5cGVMaW5r
IFVSTDp0YXJnZXRVUkwgbG9jYXRpb246cG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50
IHRpdGxlOnBvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgSUQ6cG9zaXRpb25JbmZvcm1hdGlvbi5p
ZEF0dHJpYnV0ZSByZWN0OnBvc2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOnBvc2l0aW9u
SW5mb3JtYXRpb24uaW1hZ2UuZ2V0KCldKTsKLSAgICBpZiAoW2RlbGVnYXRlIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvd0N1c3RvbVNoZWV0Rm9y
RWxlbWVudDopXSAmJiBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBzaG93Q3Vz
dG9tU2hlZXRGb3JFbGVtZW50OmVsZW1lbnRJbmZvLmdldCgpXSkKKyAgICBpZiAoW2RlbGVnYXRl
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2hvd0N1
c3RvbVNoZWV0Rm9yRWxlbWVudDopXSAmJiBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6
c2VsZiBzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OmVsZW1lbnRJbmZvLmdldCgpXSkgeworICAg
ICAgICBfbmVlZHNMaW5rSW5kaWNhdG9yID0gTk87CiAgICAgICAgIHJldHVybjsKKyAgICB9CiAK
ICAgICBhdXRvIGRlZmF1bHRBY3Rpb25zID0gW3NlbGYgZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hl
ZXQ6ZWxlbWVudEluZm8uZ2V0KCldOwogCiAgICAgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnMg
PSBbZGVsZWdhdGUgYWN0aW9uU2hlZXRBc3Npc3RhbnQ6c2VsZiBkZWNpZGVBY3Rpb25zRm9yRWxl
bWVudDplbGVtZW50SW5mby5nZXQoKSBkZWZhdWx0QWN0aW9uczpXVEZNb3ZlKGRlZmF1bHRBY3Rp
b25zKV07CiAKLSAgICBpZiAoIVthY3Rpb25zIGNvdW50XSkKKyAgICBpZiAoIVthY3Rpb25zIGNv
dW50XSkgeworICAgICAgICBfbmVlZHNMaW5rSW5kaWNhdG9yID0gTk87CiAgICAgICAgIHJldHVy
bjsKKyAgICB9CiAKICAgICBbc2VsZiBfY3JlYXRlU2hlZXRXaXRoRWxlbWVudEFjdGlvbnM6YWN0
aW9ucy5nZXQoKSBzaG93TGlua1RpdGxlOllFU107Ci0gICAgaWYgKCFfaW50ZXJhY3Rpb25TaGVl
dCkKKyAgICBpZiAoIV9pbnRlcmFjdGlvblNoZWV0KSB7CisgICAgICAgIF9uZWVkc0xpbmtJbmRp
Y2F0b3IgPSBOTzsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAogICAgIF9lbGVtZW50SW5mbyA9
IFdURk1vdmUoZWxlbWVudEluZm8pOwogCi0gICAgaWYgKCFbX2ludGVyYWN0aW9uU2hlZXQgcHJl
c2VudFNoZWV0OldLQWN0aW9uU2hlZXRQcmVzZW50QXRUb3VjaExvY2F0aW9uXSkKKyAgICBpZiAo
IVtfaW50ZXJhY3Rpb25TaGVldCBwcmVzZW50U2hlZXQ6W3NlbGYgX3Nob3VsZFByZXNlbnRBdFRv
dWNoTG9jYXRpb25Gb3JFbGVtZW50UmVjdDpwb3NpdGlvbkluZm9ybWF0aW9uLmJvdW5kc10gPyBX
S0FjdGlvblNoZWV0UHJlc2VudEF0VG91Y2hMb2NhdGlvbiA6IFdLQWN0aW9uU2hlZXRQcmVzZW50
QXRDbG9zZXN0SW5kaWNhdG9yUmVjdF0pCiAgICAgICAgIFtzZWxmIGNsZWFudXBTaGVldF07CiB9
CiAKQEAgLTUzMyw2ICs1NzcsNyBAQCBzdGF0aWMgTFNBcHBMaW5rICphcHBMaW5rRm9yVVJMKE5T
VVJMICp1cmwpCiAgICAgW19pbnRlcmFjdGlvblNoZWV0IHNldFNoZWV0RGVsZWdhdGU6bmlsXTsK
ICAgICBfaW50ZXJhY3Rpb25TaGVldCA9IG5pbDsKICAgICBfZWxlbWVudEluZm8gPSBuaWw7Cisg
ICAgX25lZWRzTGlua0luZGljYXRvciA9IE5POwogfQogCiBAZW5kCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmlu
ZGV4IDRiNTVlZGIxOGI0Mjk3ODU3NTI5MTliNjNkNDk1ZjRkMTkxMjdjMGMuLjQ0OTE4NDIxYjk0
MjgyZDU0NDY5YmJhYTk3NDJhMjJhOTU0ZjM1OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0xNDU4
LDEzICsxNDU4LDkgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2FtZVBhaXIoVUlHZXN0dXJlUmVj
b2duaXplciAqYSwgVUlHZXN0dXJlUmVjb2duaXplciAqYiwgVUkKICAgICBJbnRlcmFjdGlvbklu
Zm9ybWF0aW9uUmVxdWVzdCByZXF1ZXN0KHJvdW5kZWRJbnRQb2ludChwb2ludCkpOwogICAgIFtz
ZWxmIGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOnJlcXVlc3RdOwogCi0gICAg
aWYgKF9wb3NpdGlvbkluZm9ybWF0aW9uLmlzSW1hZ2UpCisgICAgaWYgKF9wb3NpdGlvbkluZm9y
bWF0aW9uLmlzSW1hZ2UgfHwgX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNMaW5rKQogICAgICAgICBy
ZXR1cm4gWUVTOwogCi0gICAgLy8gRklYTUU6IEFkZCBzdXBwb3J0IGZvciBsaW5rcy4KLSAgICBp
ZiAoX3Bvc2l0aW9uSW5mb3JtYXRpb24uaXNMaW5rKQotICAgICAgICByZXR1cm4gTk87Ci0KICAg
ICByZXR1cm4gX3Bvc2l0aW9uSW5mb3JtYXRpb24uaGFzRGF0YUludGVyYWN0aW9uQXRQb3NpdGlv
bjsKIH0KIApAQCAtMTc1Nyw2ICsxNzUzLDEwIEBAIHN0YXRpYyB2b2lkIGNhbmNlbFBvdGVudGlh
bFRhcElmTmVjZXNzYXJ5KFdLQ29udGVudFZpZXcqIGNvbnRlbnRWaWV3KQogICAgIF9oYXNWYWxp
ZFBvc2l0aW9uSW5mb3JtYXRpb24gPSBZRVM7CiAgICAgaWYgKF9hY3Rpb25TaGVldEFzc2lzdGFu
dCkKICAgICAgICAgW19hY3Rpb25TaGVldEFzc2lzdGFudCB1cGRhdGVTaGVldFBvc2l0aW9uXTsK
KworI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorICAgIFtzZWxmIF91cGRhdGVEYXRhSW50
ZXJhY3Rpb25QcmV2aWV3U25hcHNob3RJZlBvc3NpYmxlXTsKKyNlbmRpZgogfQogCiAtICh2b2lk
KV93aWxsU3RhcnRTY3JvbGxpbmdPclpvb21pbmcKQEAgLTM5NTcsNiArMzk1Nyw3IEBAIHN0YXRp
YyBib29sIGlzQXNzaXN0YWJsZUlucHV0VHlwZShJbnB1dFR5cGUgdHlwZSkKICAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgYmUgbW9yZSBhc3luY2hyb25vdXMsIHNpbmNlIHdlIGNvbnRyb2wgdGhl
IHByZXNlbnRhdGlvbiBvZiB0aGUgYWN0aW9uIHNoZWV0LgogICAgIEludGVyYWN0aW9uSW5mb3Jt
YXRpb25SZXF1ZXN0IHJlcXVlc3QoX3Bvc2l0aW9uSW5mb3JtYXRpb24ucmVxdWVzdC5wb2ludCk7
CiAgICAgcmVxdWVzdC5pbmNsdWRlU25hcHNob3QgPSB0cnVlOworICAgIHJlcXVlc3QuaW5jbHVk
ZUxpbmtJbmRpY2F0b3IgPSBhc3Npc3RhbnQubmVlZHNMaW5rSW5kaWNhdG9yOwogICAgIFtzZWxm
IGVuc3VyZVBvc2l0aW9uSW5mb3JtYXRpb25Jc1VwVG9EYXRlOnJlcXVlc3RdOwogCiAgICAgcmV0
dXJuIF9wb3NpdGlvbkluZm9ybWF0aW9uOwpAQCAtMzk2Nyw2ICszOTY4LDcgQEAgc3RhdGljIGJv
b2wgaXNBc3Npc3RhYmxlSW5wdXRUeXBlKElucHV0VHlwZSB0eXBlKQogICAgIF9oYXNWYWxpZFBv
c2l0aW9uSW5mb3JtYXRpb24gPSBOTzsKICAgICBJbnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVz
dCByZXF1ZXN0KF9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQpOwogICAgIHJlcXVl
c3QuaW5jbHVkZVNuYXBzaG90ID0gdHJ1ZTsKKyAgICByZXF1ZXN0LmluY2x1ZGVMaW5rSW5kaWNh
dG9yID0gYXNzaXN0YW50Lm5lZWRzTGlua0luZGljYXRvcjsKIAogICAgIFtzZWxmIHJlcXVlc3RB
c3luY2hyb25vdXNQb3NpdGlvbkluZm9ybWF0aW9uVXBkYXRlOnJlcXVlc3RdOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1t
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL2lvcy9XZWJQYWdlSU9TLm1tCmlu
ZGV4IDU3NWI5MDczMDUzZTljYzdhYWViYWE2YWUzODk2NjdmZWY5OGVkMDMuLmU3Njk1MDIyYzYz
YWJlMmRhZmRiNjA4YmE0ZjE1MTgxMzg3MTcwZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9pb3MvV2ViUGFnZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvaW9zL1dlYlBhZ2VJT1MubW0KQEAgLTI1NTEsNiArMjU1MSw3
IEBAIHZvaWQgV2ViUGFnZTo6Z2V0UG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJbnRlcmFjdGlv
bkluZm9ybWF0aW9uUmVxdWVzdCYgcmVxdWVzCiAjaWYgRU5BQkxFKERBVEFfSU5URVJBQ1RJT04p
CiAgICAgaW5mby5oYXNEYXRhSW50ZXJhY3Rpb25BdFBvc2l0aW9uID0gbV9wYWdlLT5oYXNEYXRh
SW50ZXJhY3Rpb25BdFBvc2l0aW9uKGFkanVzdGVkUG9pbnQpOwogI2VuZGlmCisgICAgaW5mby5h
ZGp1c3RlZFBvaW50Rm9yTm9kZVJlc3BvbmRpbmdUb0NsaWNrRXZlbnRzID0gYWRqdXN0ZWRQb2lu
dDsKIH0KIAogdm9pZCBXZWJQYWdlOjpyZXF1ZXN0UG9zaXRpb25JbmZvcm1hdGlvbihjb25zdCBJ
bnRlcmFjdGlvbkluZm9ybWF0aW9uUmVxdWVzdCYgcmVxdWVzdCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBiZWE2NDdmNzZlZDg5Y2RjZWIwNjZj
NWZiMDViN2VhODQwODlhMmVjLi4wMGJhMGUyM2Q3MDJhNGRmODA4ZDY4NDU1MDk2MzM0MmE0YjJl
ZTcxIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjAgQEAKKzIwMTctMDItMTQgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBh
cHBsZS5jb20+CisKKyAgICAgICAgW1dLMl0gU3VwcG9ydCBkYXRhIGludGVyYWN0aW9uIG9uIGxp
bmtzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjgz
MzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMwMjAwODM3PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQWRkcyAyIHVuaXQgdGVzdHMgY2hlY2tpbmcgdGhh
dCBkYXRhIGludGVyYWN0aW9uIGZyb20gYSBsaW5rICh3aXRoIG9yIHdpdGhvdXQgYSBiYWNrZ3Jv
dW5kIGltYWdlKSBpbnRvIGFuCisgICAgICAgIGVkaXRhYmxlIGFyZWEgcmVzdWx0cyBpbiB0aGUg
bGluayBVUkwgYmVpbmcgaW5zZXJ0ZWQuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RX
ZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9iYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0
bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xp
bmstYW5kLWlucHV0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
aW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVT
VCk6CisKIDIwMTctMDItMTMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CiAKICAgICAgICAgRml4IHRoZSBidWlsZCBhZnRlciByMjEyMjU0CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDFlMzAwYzM5Zjc2N2M3ZTcxODhkZWJhMjYxMDY2Y2RhZDI1N2E0MmEuLmQ2ZjBm
YjNmMjNmNmE5ZGNjMDQ3YTlkOTdmOGNiM2RhMTQyN2ZiZmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC01NTMsOCArNTUzLDEwIEBACiAJCUUxOTRFMUJEMTc3RTUzQzcwMDlDNEQ0RSAvKiBT
dG9wTG9hZGluZ0Zyb21EaWRSZWNlaXZlUmVzcG9uc2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFMTk0RTFCQzE3N0U1MzRBMDA5QzRE
NEUgLyogU3RvcExvYWRpbmdGcm9tRGlkUmVjZWl2ZVJlc3BvbnNlLmh0bWwgKi87IH07CiAJCUY0
MTUwODZEMURBMDQwQzUwMDQ0QkU5QiAvKiBwbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwgaW4gQ29w
eSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQxNTA4NkMx
REEwNDBDMTAwNDRCRTlCIC8qIHBsYXktYXVkaW8tb24tY2xpY2suaHRtbCAqLzsgfTsKIAkJRjQy
REE1MTYxRDhDRUZFNDAwMzM2RjQwIC8qIGxhcmdlLWlucHV0LWZpZWxkLWZvY3VzLW9ubG9hZC5o
dG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEY0MkRBNTE1MUQ4Q0VGREIwMDMzNkY0MCAvKiBsYXJnZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxv
YWQuaHRtbCAqLzsgfTsKKwkJRjQzNTVDRjAxRTUyMTk4MTAwOTAwRjY0IC8qIGJhY2tncm91bmQt
aW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNDM1NUNFRjFFNTIxOTYxMDA5MDBGNjQgLyogYmFja2dy
b3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sICovOyB9OwogCQlGNDVCOTYwQzFFNTA3MDg4
MDBDRkFDNUQgLyogYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJsZS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0NUI5NjBCMUU1MDcwODIw
MENGQUM1RCAvKiBhdXRvZm9jdXMtY29udGVudGVkaXRhYmxlLmh0bWwgKi87IH07CiAJCUY0Nzcy
ODk5MUU0QUUzQzEwMDdBQkY2QSAvKiBmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ3NzI4
OTgxRTRBRTNBRDAwN0FCRjZBIC8qIGZ1bGwtcGFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCAqLzsg
fTsKKwkJRjQ5QzA3QUUxRTUxODQ5NTAwRjZCMDFGIC8qIGxpbmstYW5kLWlucHV0Lmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjQ5QzA3
QUQxRTUxODQ5MTAwRjZCMDFGIC8qIGxpbmstYW5kLWlucHV0Lmh0bWwgKi87IH07CiAJCUY0QkZB
NjhFMUU0QUQwODAwMDE1NDI5OCAvKiBEcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbSBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0QkZBNjhDMUU0QUQw
ODAwMDE1NDI5OCAvKiBEcmFnQW5kRHJvcFBhc3RlYm9hcmRUZXN0cy5tbSAqLzsgfTsKIAkJRjRD
MkFCMjIxREQ2RDk1RTAwRTA2RDVCIC8qIGVub3Jtb3VzLXZpZGVvLXdpdGgtc291bmQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEMy
QUIyMTFERDZEOTQxMDBFMDZENUIgLyogZW5vcm1vdXMtdmlkZW8td2l0aC1zb3VuZC5odG1sICov
OyB9OwogCQlGNEQ0RjNCNjFFNEUyQkNCMDBCQjI3NjcgLyogRGF0YUludGVyYWN0aW9uU2ltdWxh
dG9yLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRE
NEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblNpbXVsYXRvci5tbSAqLzsg
fTsKQEAgLTYzNSw2ICs2MzcsOCBAQAogCQkJZmlsZXMgPSAoCiAJCQkJQzI1Q0NBMEQxRTUxNDE4
NDAwMjZDQjhBIC8qIEFsbEFoZW0uc3ZnIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUMyNUND
QTBCMUU1MTQwQzEwMDI2Q0I4QSAvKiBMaW5lQnJlYWtpbmcuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLywKKwkJCQlGNDM1NUNGMDFFNTIxOTgxMDA5MDBGNjQgLyogYmFja2dyb3VuZC1pbWFnZS1s
aW5rLWFuZC1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJCUY0OUMwN0FFMUU1
MTg0OTUwMEY2QjAxRiAvKiBsaW5rLWFuZC1pbnB1dC5odG1sIGluIENvcHkgUmVzb3VyY2VzICov
LAogCQkJCUY0NUI5NjBDMUU1MDcwODgwMENGQUM1RCAvKiBhdXRvZm9jdXMtY29udGVudGVkaXRh
YmxlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJRjRGOTNGMzQxRTRFOTE4RDAwRTMz
RTJFIC8qIGltYWdlLWFuZC10ZXh0YXJlYS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJ
CUY0RDRGM0JDMUU0RTUxMUYwMEJCMjc2NyAvKiBpbWFnZS1hbmQtY29udGVudGVkaXRhYmxlLmh0
bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xMzgxLDggKzEzODUsMTAgQEAKIAkJRjNGQzNF
RTIxMzY3OEI3MzAwMTI2QTY1IC8qIGxpYmd0ZXN0LmEgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBhcmNoaXZlLmFyOyBwYXRoID0gbGliZ3Rlc3QuYTsg
c291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJRjQxNTA4NkMxREEwNDBDMTAw
NDRCRTlCIC8qIHBsYXktYXVkaW8tb24tY2xpY2suaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsg
cGF0aCA9ICJwbGF5LWF1ZGlvLW9uLWNsaWNrLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNDJEQTUxNTFEOENFRkRCMDAzMzZGNDAgLyogbGFyZ2UtaW5wdXQtZmllbGQtZm9j
dXMtb25sb2FkLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IG5hbWUgPSAibGFyZ2UtaW5wdXQt
ZmllbGQtZm9jdXMtb25sb2FkLmh0bWwiOyBwYXRoID0gIlRlc3RzL1dlYktpdDJDb2NvYS9sYXJn
ZS1pbnB1dC1maWVsZC1mb2N1cy1vbmxvYWQuaHRtbCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9P
VDsgfTsKKwkJRjQzNTVDRUYxRTUyMTk2MTAwOTAwRjY0IC8qIGJhY2tncm91bmQtaW1hZ2UtbGlu
ay1hbmQtaW5wdXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgbmFtZSA9ICJiYWNrZ3JvdW5k
LWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwiOyBwYXRoID0gIlRlc3RzL1dlYktpdDJDb2NvYS9i
YWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwiOyBzb3VyY2VUcmVlID0gU09VUkNF
X1JPT1Q7IH07CiAJCUY0NUI5NjBCMUU1MDcwODIwMENGQUM1RCAvKiBhdXRvZm9jdXMtY29udGVu
dGVkaXRhYmxlLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYXV0b2ZvY3VzLWNv
bnRlbnRlZGl0YWJsZS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjQ3NzI4
OTgxRTRBRTNBRDAwN0FCRjZBIC8qIGZ1bGwtcGFnZS1jb250ZW50ZWRpdGFibGUuaHRtbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJmdWxsLXBhZ2UtY29udGVudGVkaXRhYmxlLmh0bWwi
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGNDlDMDdBRDFFNTE4NDkxMDBGNkIwMUYg
LyogbGluay1hbmQtaW5wdXQuaHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgbmFtZSA9ICJsaW5r
LWFuZC1pbnB1dC5odG1sIjsgcGF0aCA9ICJUZXN0cy9XZWJLaXQyQ29jb2EvbGluay1hbmQtaW5w
dXQuaHRtbCI7IHNvdXJjZVRyZWUgPSBTT1VSQ0VfUk9PVDsgfTsKIAkJRjRCRkE2OEMxRTRBRDA4
MDAwMTU0Mjk4IC8qIERyYWdBbmREcm9wUGFzdGVib2FyZFRlc3RzLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0FuZERyb3BQYXN0ZWJvYXJkVGVzdHMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY0QzJBQjIxMURENkQ5NDEwMEUwNkQ1QiAv
KiBlbm9ybW91cy12aWRlby13aXRoLXNvdW5kLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAiZW5vcm1vdXMtdmlkZW8td2l0aC1zb3VuZC5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRjRENEYzQjQxRTRFMkJDQjAwQkIyNzY3IC8qIERhdGFJbnRlcmFjdGlvblNp
bXVsYXRvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERhdGFJ
bnRlcmFjdGlvblNpbXVsYXRvci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIw
NDUsNiArMjA1MSw4IEBACiAJCUJDOTA5NzdCMTI1NTcxQUUwMDA4Mzc1NiAvKiBSZXNvdXJjZXMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUY0MzU1Q0VG
MUU1MjE5NjEwMDkwMEY2NCAvKiBiYWNrZ3JvdW5kLWltYWdlLWxpbmstYW5kLWlucHV0Lmh0bWwg
Ki8sCisJCQkJRjQ5QzA3QUQxRTUxODQ5MTAwRjZCMDFGIC8qIGxpbmstYW5kLWlucHV0Lmh0bWwg
Ki8sCiAJCQkJQzA0NUY5NDYxMzg1QzJGODAwQzBGM0NEIC8qIDE4LWNoYXJhY3RlcnMuaHRtbCAq
LywKIAkJCQkxQzJCODE4NTFDODkyNTIzMDBBNTUyOUYgLyogQWhlbS50dGYgKi8sCiAJCQkJOTNE
M0QxOUIxN0IxQTdCMDAwQzdDNDE1IC8qIGFsbC1jb250ZW50LWluLW9uZS1pZnJhbWUuaHRtbCAq
LywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2Jh
Y2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0MkNvY29hL2JhY2tncm91bmQtaW1hZ2UtbGluay1hbmQtaW5wdXQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kZjc4ZTlkZDI4OWRhNjFmMzk4YzE5M2MzZWNjZmRiMTUyOGY4YmIwCi0tLSAv
ZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvYmFj
a2dyb3VuZC1pbWFnZS1saW5rLWFuZC1pbnB1dC5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzxoZWFk
PgorICAgIDxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgi
PgorICAgICAgICA8c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgd2lkdGg6IDEw
MCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICBtYXJnaW46IDA7Cisg
ICAgICAgIH0KKworICAgICAgICBhLCAjZWRpdG9yIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAl
OworICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjAw
cHg7CisgICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgICAgICB9CisKKyAgICAg
ICAgYSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoaWNvbi5wbmcpOworICAg
ICAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKKyAgICAgICAgICAgIGRpc3Bs
YXk6IGJsb2NrOworICAgICAgICB9CisKKyAgICAgICAgI2VkaXRvciB7CisgICAgICAgICAgICBi
b3JkZXI6IGJsYWNrIDFweCBzb2xpZDsKKyAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorPC9o
ZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2PjxhIGhyZWY9Imh0dHBzOi8vd3d3LmRhcmluZ2ZpcmVi
YWxsLm5ldCI+PC9hPjwvZGl2PgorICAgIDxkaXY+PGlucHV0IGlkPSJlZGl0b3IiPjwvaW5wdXQ+
PC9kaXY+CisgICAgPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBwb3N0RXZlbnRUeXBlKGV2ZW50KSB7
CisgICAgICAgd2Via2l0Lm1lc3NhZ2VIYW5kbGVycy50ZXN0SGFuZGxlci5wb3N0TWVzc2FnZShl
dmVudC50eXBlKTsKKyAgICB9CisKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJvcCIs
IHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5hZGRFdmVudExpc3RlbmVyKCJkcmFnZW50ZXIi
LCBwb3N0RXZlbnRUeXBlKTsKKyAgICBlZGl0b3IuYWRkRXZlbnRMaXN0ZW5lcigiZHJhZ292ZXIi
LCBwb3N0RXZlbnRUeXBlKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL2xpbmstYW5kLWlucHV0Lmh0bWwg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9saW5rLWFuZC1pbnB1dC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjk2NDZjZjE3MDVkMDMwN2MyMzBiOTlhNDA1ODQzZTVkNWIyNmY3NDcK
LS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2Nv
YS9saW5rLWFuZC1pbnB1dC5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzxoZWFkPgorICAgIDxtZXRh
IG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorICAgICAgICA8
c3R5bGU+CisgICAgICAgIGJvZHkgeworICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAg
ICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgIH0KKwor
ICAgICAgICBhLCAjZWRpdG9yIHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAg
ICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgIGZvbnQtc2l6ZTogMjAwcHg7CisgICAgICAg
ICAgICB3aGl0ZS1zcGFjZTogbm93cmFwOworICAgICAgICB9CisKKyAgICAgICAgI2VkaXRvciB7
CisgICAgICAgICAgICBib3JkZXI6IGJsYWNrIDFweCBzb2xpZDsKKyAgICAgICAgfQorICAgICAg
ICA8L3N0eWxlPgorPC9oZWFkPgorCis8Ym9keT4KKyAgICA8ZGl2PjxhIGhyZWY9Imh0dHBzOi8v
d3d3LmRhcmluZ2ZpcmViYWxsLm5ldCI+SGVsbG8gd29ybGQ8L2E+PC9kaXY+CisgICAgPGRpdj48
aW5wdXQgaWQ9ImVkaXRvciI+PC9pbnB1dD48L2Rpdj4KKyAgICA8c2NyaXB0PgorICAgIGZ1bmN0
aW9uIHBvc3RFdmVudFR5cGUoZXZlbnQpIHsKKyAgICAgICB3ZWJraXQubWVzc2FnZUhhbmRsZXJz
LnRlc3RIYW5kbGVyLnBvc3RNZXNzYWdlKGV2ZW50LnR5cGUpOworICAgIH0KKworICAgIGVkaXRv
ci5hZGRFdmVudExpc3RlbmVyKCJkcm9wIiwgcG9zdEV2ZW50VHlwZSk7CisgICAgZWRpdG9yLmFk
ZEV2ZW50TGlzdGVuZXIoImRyYWdlbnRlciIsIHBvc3RFdmVudFR5cGUpOworICAgIGVkaXRvci5h
ZGRFdmVudExpc3RlbmVyKCJkcmFnb3ZlciIsIHBvc3RFdmVudFR5cGUpOworICAgIDwvc2NyaXB0
PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0
YUludGVyYWN0aW9uVGVzdHMubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRh
SW50ZXJhY3Rpb25UZXN0cy5tbQppbmRleCBiZWI4ZDIxZDJkN2JlMTQ3NzFmODMwNzMxZjg4MWQ1
ZTZjOTZjYjBhLi43ZjZjMzhjNjVkOWY4ZTAwODI4NDZjYmQ0ZTM3MTAyMTY1NzBkNmQ4IDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25UZXN0
cy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL2lvcy9EYXRhSW50ZXJhY3Rpb25U
ZXN0cy5tbQpAQCAtODksNiArODksMzIgQEAgVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgQ29u
dGVudEVkaXRhYmxlVG9Db250ZW50RWRpdGFibGUpCiAgICAgfSk7CiB9CiAKK1RFU1QoRGF0YUlu
dGVyYWN0aW9uVGVzdHMsIExpbmtUb0lucHV0KQoreworICAgIFJldGFpblB0cjxUZXN0V0tXZWJW
aWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJh
bWU6Q0dSZWN0TWFrZSgwLCAwLCAzMjAsIDUwMCldKTsKKyAgICBydW5UZXN0c0V4cGVjdGluZ1Rv
T2JzZXJ2ZUV2ZW50cyh3ZWJWaWV3LmdldCgpLCBAWyBEYXRhSW50ZXJhY3Rpb25FbnRlckV2ZW50
TmFtZSwgRGF0YUludGVyYWN0aW9uT3ZlckV2ZW50TmFtZSwgRGF0YUludGVyYWN0aW9uUGVyZm9y
bU9wZXJhdGlvbkV2ZW50TmFtZSBdLCBeKCkgeworICAgICAgICBbd2ViVmlldyBzeW5jaHJvbm91
c2x5TG9hZFRlc3RQYWdlTmFtZWQ6QCJsaW5rLWFuZC1pbnB1dCJdOworCisgICAgICAgIFJldGFp
blB0cjxEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3I+IGRhdGFJbnRlcmFjdGlvblNpbXVsYXRvciA9
IGFkb3B0TlMoW1tEYXRhSW50ZXJhY3Rpb25TaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmll
dzp3ZWJWaWV3LmdldCgpIHN0YXJ0TG9jYXRpb246Q0dQb2ludE1ha2UoMTAwLCAxMDApIGVuZExv
Y2F0aW9uOkNHUG9pbnRNYWtlKDEwMCwgMzAwKV0pOworICAgICAgICBbZGF0YUludGVyYWN0aW9u
U2ltdWxhdG9yIHJ1bl07CisKKyAgICAgICAgRVhQRUNUX1dLX1NUUkVRKCJodHRwczovL3d3dy5k
YXJpbmdmaXJlYmFsbC5uZXQvIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlw
dDpAImVkaXRvci52YWx1ZSJdLlVURjhTdHJpbmcpOworICAgIH0pOworfQorCitURVNUKERhdGFJ
bnRlcmFjdGlvblRlc3RzLCBCYWNrZ3JvdW5kSW1hZ2VMaW5rVG9JbnB1dCkKK3sKKyAgICBSZXRh
aW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFs
bG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApXSk7CisgICAgcnVu
VGVzdHNFeHBlY3RpbmdUb09ic2VydmVFdmVudHMod2ViVmlldy5nZXQoKSwgQFsgRGF0YUludGVy
YWN0aW9uRW50ZXJFdmVudE5hbWUsIERhdGFJbnRlcmFjdGlvbk92ZXJFdmVudE5hbWUsIERhdGFJ
bnRlcmFjdGlvblBlcmZvcm1PcGVyYXRpb25FdmVudE5hbWUgXSwgXigpIHsKKyAgICAgICAgW3dl
YlZpZXcgc3luY2hyb25vdXNseUxvYWRUZXN0UGFnZU5hbWVkOkAiYmFja2dyb3VuZC1pbWFnZS1s
aW5rLWFuZC1pbnB1dCJdOworCisgICAgICAgIFJldGFpblB0cjxEYXRhSW50ZXJhY3Rpb25TaW11
bGF0b3I+IGRhdGFJbnRlcmFjdGlvblNpbXVsYXRvciA9IGFkb3B0TlMoW1tEYXRhSW50ZXJhY3Rp
b25TaW11bGF0b3IgYWxsb2NdIGluaXRXaXRoV2ViVmlldzp3ZWJWaWV3LmdldCgpIHN0YXJ0TG9j
YXRpb246Q0dQb2ludE1ha2UoMTAwLCAxMDApIGVuZExvY2F0aW9uOkNHUG9pbnRNYWtlKDEwMCwg
MzAwKV0pOworICAgICAgICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHJ1bl07CisKKyAgICAg
ICAgRVhQRUNUX1dLX1NUUkVRKCJodHRwczovL3d3dy5kYXJpbmdmaXJlYmFsbC5uZXQvIiwgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImVkaXRvci52YWx1ZSJdLlVURjhT
dHJpbmcpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAKICNl
bmRpZiAvLyBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikK
</data>

          </attachment>
      

    </bug>

</bugzilla>