<?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>96007</bug_id>
          
          <creation_ts>2012-09-06 12:27:15 -0700</creation_ts>
          <short_desc>[chromium] Use WebCompositorSupport functions instead of WebCompositor statics</short_desc>
          <delta_ts>2012-09-06 16:17:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>96006</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>cc-bugs</cc>
    
    <cc>dglazkov</cc>
    
    <cc>enne</cc>
    
    <cc>fishd</cc>
    
    <cc>peter+ews</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>713571</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-06 12:27:15 -0700</bug_when>
    <thetext>[chromium] Use WebCompositorSupport functions instead of WebCompositor statics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713573</commentid>
    <comment_count>1</comment_count>
      <attachid>162555</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-06 12:28:57 -0700</bug_when>
    <thetext>Created attachment 162555
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713574</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-06 12:29:24 -0700</bug_when>
    <thetext>Follow-up to https://bugs.webkit.org/show_bug.cgi?id=95785.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713577</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-06 12:30:42 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713624</commentid>
    <comment_count>4</comment_count>
      <attachid>162555</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-09-06 13:25:08 -0700</bug_when>
    <thetext>Comment on attachment 162555
Patch

Attachment 162555 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13777289</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713640</commentid>
    <comment_count>5</comment_count>
      <attachid>162555</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-09-06 13:38:47 -0700</bug_when>
    <thetext>Comment on attachment 162555
Patch

R=me.  Sounds fine to me, assuming you fix the ews issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713648</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-06 13:48:40 -0700</bug_when>
    <thetext>This won&apos;t work in a WebKit checkout until the roll in https://bugs.webkit.org/show_bug.cgi?id=96006 lands.  Looks like cr-android failed due to a unit test behind an #ifdef, easy to fix (just add the namespace).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713655</commentid>
    <comment_count>7</comment_count>
      <attachid>162576</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-06 13:53:51 -0700</bug_when>
    <thetext>Created attachment 162576
for ews</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713816</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-06 16:17:18 -0700</bug_when>
    <thetext>Committed r127794: &lt;http://trac.webkit.org/changeset/127794&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162555</attachid>
            <date>2012-09-06 12:28:57 -0700</date>
            <delta_ts>2012-09-06 13:53:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96007-20120906122837.patch</filename>
            <type>text/plain</type>
            <size>45716</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3NjQ4ZmIwMzEyYzli
ZTk1OWE2ZTRhNDljODU0M2VlMGIwYWI3ZmIzLi5lN2ExN2Q2YzRmMDBiYzVmMGIxODIyOTFjMTFl
MDM0Njg4OTUxMDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wOS0wNiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gVXNlIFdlYkNvbXBvc2l0b3JTdXBwb3J0IGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIFdlYkNvbXBv
c2l0b3Igc3RhdGljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTYwMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGVzIGNvbW1lbnQgdG8gcmVmZXJlbmNlIFdlYkNvbXBvc2l0b3JTdXBwb3J0IGlu
c3RlYWQgb2YgV2ViQ29tcG9zaXRvci4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJM
YXllclRyZWVWaWV3Lmg6CisgICAgICAgIChXZWJMYXllclRyZWVWaWV3KToKKwogMjAxMi0wOS0w
NSAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNzYxMiwgcjEyNzY2MCwgYW5kIHIxMjc2NjQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggYmRlNzA0NjUzMWE3Y2JjZGQwMGVmMGY5OGI2ODc5NjBlZTQyOTI2OC4uZjY5MjM1
NDZmY2RlZDM2YTcxMDNkNDIyNDAyYWJkZWJmYmJlZWVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTA5LTA2ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgW2Nocm9taXVtXSBVc2UgV2ViQ29tcG9zaXRvclN1cHBvcnQgZnVuY3Rpb25z
IGluc3RlYWQgb2YgV2ViQ29tcG9zaXRvciBzdGF0aWNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjAwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGxzIFdlYkNvbXBvc2l0b3JTdXBwb3J0IGZ1bmN0
aW9ucyBpbnN0ZWFkIG9mIFdlYkNvbXBvc2l0b3Igc3RhdGljcy4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRHJhd2luZ0J1ZmZlckNocm9taXVtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OkRyYXdpbmdCdWZmZXIpOgorCiAy
MDEyLTA5LTA1ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Qgc2hvdWxkbid0IGRlcGVuZCBvbiBDQ1Byb3h5CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDA3Mzk3N2M4M2E1M2U3OWY5NjUxZTYxYjg0NDU4
OTFmZjA5NzNiZjQuLjg4NmM4MzIzNDA0M2NhYjc0ZGIzMzI5YzA4NTQ4Y2YxN2M0NjI4ZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTItMDktMDYgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IFVzZSBXZWJDb21wb3NpdG9yU3VwcG9ydCBmdW5jdGlvbnMgaW5zdGVhZCBvZiBXZWJDb21wb3Np
dG9yIHN0YXRpY3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk2MDA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXBkYXRlcyBtYW55IHRlc3RzIHRvIGluaXRpYWxpemUgLyBzaHV0ZG93biBjb21wb3NpdGlu
ZyB3aXRoIFdlYkNvbXBvc2l0b3JTdXBwb3J0LiBBZGRzIGEKKyAgICAgICAgV2ViQ29tcG9zaXRv
ckluaXRpYWxpemVyIFJBSUkgY2xhc3MgdG8gc2ltcGxpZnkgdGhpcyBzb21ld2hhdCB0ZWRpb3Vz
IHByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiBwdWJsaWMvV2Vi
Q29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29tcG9zaXRvcklu
cHV0SGFuZGxlckNsaWVudCk6CisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsLmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OmNvbXBvc2l0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpzY2hlZHVsZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY2hl
ZHVsZUNvbXBvc2l0ZSk6CisgICAgICAgICogdGVzdHMvQ0NQcmlvcml0aXplZFRleHR1cmVUZXN0
LmNwcDoKKyAgICAgICAgKFdURjo6Q0NQcmlvcml0aXplZFRleHR1cmVUZXN0OjpDQ1ByaW9yaXRp
emVkVGV4dHVyZVRlc3QpOgorICAgICAgICAoV1RGOjpDQ1ByaW9yaXRpemVkVGV4dHVyZVRlc3Q6
On5DQ1ByaW9yaXRpemVkVGV4dHVyZVRlc3QpOgorICAgICAgICAoQ0NQcmlvcml0aXplZFRleHR1
cmVUZXN0KToKKyAgICAgICAgKiB0ZXN0cy9DQ1JlbmRlcmVyR0xUZXN0LmNwcDoKKyAgICAgICAg
KENDUmVuZGVyZXJHTFRlc3Q6OkNDUmVuZGVyZXJHTFRlc3QpOgorICAgICAgICAoQ0NSZW5kZXJl
ckdMVGVzdDo6U2V0VXApOgorICAgICAgICAoQ0NSZW5kZXJlckdMVGVzdCk6CisgICAgICAgICog
dGVzdHMvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuY3BwOgorICAgICAgICAqIHRlc3Rz
L0NDVGhyZWFkZWRUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ1RocmVhZGVkVGVz
dDo6cnVuVGVzdCk6CisgICAgICAgICogdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3Bw
OgorICAgICAgICAoQ2FudmFzMkRMYXllckJyaWRnZVRlc3Q6OmZ1bGxMaWZlY3ljbGVUZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6R3JhcGhpY3NMYXllckNocm9taXVtVGVzdDo6R3JhcGhpY3NMYXllckNocm9taXVt
VGVzdCk6CisgICAgICAgIChXZWJLaXQ6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3Q6On5HcmFw
aGljc0xheWVyQ2hyb21pdW1UZXN0KToKKyAgICAgICAgKiB0ZXN0cy9MYXllckNocm9taXVtVGVz
dC5jcHA6CisgICAgICAgICogdGVzdHMvTGlua0hpZ2hsaWdodFRlc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VEVTVCk6CisgICAgICAgICogdGVzdHMvVGV4dHVyZUxheWVyQ2hyb21pdW1UZXN0
LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcDoKKyAgICAg
ICAgKiB0ZXN0cy9XZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIuaDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViS2l0VGVzdHMpOgorICAgICAgICAoV2ViQ29tcG9zaXRvcklu
aXRpYWxpemVyKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpXZWJDb21wb3NpdG9ySW5pdGlhbGl6
ZXI6OldlYkNvbXBvc2l0b3JJbml0aWFsaXplcik6CisgICAgICAgIChXZWJLaXRUZXN0czo6V2Vi
Q29tcG9zaXRvckluaXRpYWxpemVyOjp+V2ViQ29tcG9zaXRvckluaXRpYWxpemVyKToKKyAgICAg
ICAgKiB0ZXN0cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpURVNUKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklucHV0SGFu
ZGxlckltcGxUZXN0OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QpOgorICAgICAg
ICAoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0KToKKyAgICAgICAgKiB0ZXN0cy9X
ZWJMYXllclRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0LmNw
cDoKKwogMjAxMi0wOS0wNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFBhcnQgMiBvZiByZW1vdmluZyBQbGF0Zm9ybVN0cmluZy5oLCByZW1vdmUgUGxhdGZvcm1TdHJp
bmcuaApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXll
clRyZWVWaWV3LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJl
ZVZpZXcuaAppbmRleCA0OTE4Mzc5YmY0OGEwYjk4NjRiMmVhNThhNmM1MGQwNTIzNDM3M2U0Li40
MGEzYmJkMmU5Njc3Yjk4MmM4ODNhYTYyNWRhMjM2MTZmZDBkMDhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaAorKysgYi9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaApAQCAtMTMzLDcg
KzEzMyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY29tbWl0UmVxdWVzdGVkKCkgY29u
c3QgPSAwOwogCiAgICAgLy8gVHJpZ2dlcnMgYSBjb21wb3NpdGluZyBwYXNzLiBJZiB0aGUgY29t
cG9zaXRvciB0aHJlYWQgd2FzIG5vdAotICAgIC8vIGVuYWJsZWQgdmlhIFdlYkNvbXBvc2l0b3I6
OmluaXRpYWxpemUsIHRoZSBjb21wb3NpdGluZyBwYXNzIGhhcHBlbnMKKyAgICAvLyBlbmFibGVk
IHZpYSBXZWJDb21wb3NpdG9yU3VwcG9ydDo6aW5pdGlhbGl6ZSwgdGhlIGNvbXBvc2l0aW5nIHBh
c3MgaGFwcGVucwogICAgIC8vIGltbWVkaWF0ZWx5LiBJZiBpdCBpcyBlbmFibGVkLCB0aGUgY29t
cG9zaXRpbmcgcGFzcyB3aWxsIGhhcHBlbiBhdCBhCiAgICAgLy8gbGF0ZXIgdGltZS4gQmVmb3Jl
IHRoZSBjb21wb3NpdGluZyBwYXNzIGhhcHBlbnMgKGkuZS4gYmVmb3JlIGNvbXBvc2l0ZSgpCiAg
ICAgLy8gcmV0dXJucyB3aGVuIHRoZSBjb21wb3NpdG9yIHRocmVhZCBpcyBkaXNhYmxlZCksIFdl
YkNvbnRlbnRMYXllcnMgd2lsbCBiZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNwcApp
bmRleCAxMjMwM2UzNjBlMzczZmI0MjQ5MjBhNTE0YTkwYWNjZjBkNjZmMzA1Li4xMjZkNjJkODJl
YTQ1NGU0Zjk4ZTJhZDM5NWU4ZTkzMjVjZjhmYWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVy
QnJpZGdlLmNwcApAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5oIgogI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKICNpbmNsdWRlIDxwdWJsaWMvUGxhdGZv
cm0uaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvci5oPgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGljc0Nv
bnRleHQzRC5oPgogCkBAIC00NywxMSArNDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENh
bnZhczJETGF5ZXJCcmlkZ2U6OkNhbnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGlj
c0NvbnRleHQzRD4gY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgRGVmZXJyYWxNb2RlIGRl
ZmVycmFsTW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKQogICAgIDogbV9kZWZlcnJhbE1vZGUoZGVm
ZXJyYWxNb2RlKQotICAgIC8vIEZJWE1FOiBXZSBjdXJyZW50bHkgdHVybiBvZmYgZG91YmxlIGJ1
ZmZlcmluZyB3aGVuIGNhbnZhcyByZW5kZXJpbmcgaXMKLSAgICAvLyBkZWZlcnJlZC4gV2hhdCB3
ZSBzaG91bGQgYmUgZG9pbmcgaXMgdG8gdXNlIGEgc21hcnRlciBoZXVyaXN0aWMgYmFzZWQKLSAg
ICAvLyBvbiBHUFUgcmVzb3VyY2UgbW9uaXRvcmluZyBhbmQgb3RoZXIgZmFjdG9ycyB0byBjaG9z
ZSBiZXR3ZWVuIHNpbmdsZQotICAgIC8vIGFuZCBkb3VibGUgYnVmZmVyaW5nLgotICAgICwgbV91
c2VEb3VibGVCdWZmZXJpbmcoV2ViS2l0OjpXZWJDb21wb3NpdG9yOjppc1RocmVhZGluZ0VuYWJs
ZWQoKSAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQpCiAgICAgLCBtX2Zyb250QnVmZmVy
VGV4dHVyZSgwKQogICAgICwgbV9iYWNrQnVmZmVyVGV4dHVyZSh0ZXh0dXJlSWQpCiAgICAgLCBt
X3NpemUoc2l6ZSkKQEAgLTYxLDYgKzU1LDEzIEBAIENhbnZhczJETGF5ZXJCcmlkZ2U6OkNhbnZh
czJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwKICAg
ICAsIG1fbmV4dCgwKQogICAgICwgbV9wcmV2KDApCiB7CisgICAgYm9vbCBjb21wb3NpdG9yVGhy
ZWFkaW5nRW5hYmxlZCA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1
cHBvcnQoKS0+aXNUaHJlYWRpbmdFbmFibGVkKCk7CisgICAgLy8gRklYTUU6IFdlIGN1cnJlbnRs
eSB0dXJuIG9mZiBkb3VibGUgYnVmZmVyaW5nIHdoZW4gY2FudmFzIHJlbmRlcmluZyBpcworICAg
IC8vIGRlZmVycmVkLiBXaGF0IHdlIHNob3VsZCBiZSBkb2luZyBpcyB0byB1c2UgYSBzbWFydGVy
IGhldXJpc3RpYyBiYXNlZAorICAgIC8vIG9uIEdQVSByZXNvdXJjZSBtb25pdG9yaW5nIGFuZCBv
dGhlciBmYWN0b3JzIHRvIGNob3NlIGJldHdlZW4gc2luZ2xlCisgICAgLy8gYW5kIGRvdWJsZSBi
dWZmZXJpbmcuCisgICAgbV91c2VEb3VibGVCdWZmZXJpbmcgPSBjb21wb3NpdG9yVGhyZWFkaW5n
RW5hYmxlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQ7CisKICAgICBpZiAobV91c2VE
b3VibGVCdWZmZXJpbmcpIHsKICAgICAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQo
KTsKICAgICAgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9mcm9udEJ1ZmZlclRleHR1cmUgPSBt
X2NvbnRleHQtPmNyZWF0ZVRleHR1cmUoKSk7CkBAIC04Miw3ICs4Myw3IEBAIENhbnZhczJETGF5
ZXJCcmlkZ2U6OkNhbnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQz
RD4gY29udGV4dCwKICAgICAgICAgbV9sYXllciA9IGFkb3B0UHRyKFdlYktpdDo6V2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXI6OmNyZWF0ZSh0aGlzKSk7CiAKICAgICBtX2xheWVyLT5zZXRUZXh0dXJl
SWQodGV4dHVyZUlkKTsKLSAgICBtX2xheWVyLT5zZXRSYXRlTGltaXRDb250ZXh0KCFXZWJLaXQ6
OldlYkNvbXBvc2l0b3I6OmlzVGhyZWFkaW5nRW5hYmxlZCgpIHx8IG1fdXNlRG91YmxlQnVmZmVy
aW5nKTsKKyAgICBtX2xheWVyLT5zZXRSYXRlTGltaXRDb250ZXh0KCFjb21wb3NpdG9yVGhyZWFk
aW5nRW5hYmxlZCB8fCBtX3VzZURvdWJsZUJ1ZmZlcmluZyk7CiAgICAgR3JhcGhpY3NMYXllckNo
cm9taXVtOjpyZWdpc3RlckNvbnRlbnRzTGF5ZXIobV9sYXllci0+bGF5ZXIoKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdp
bmdCdWZmZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9EcmF3aW5nQnVmZmVyQ2hyb21pdW0uY3BwCmluZGV4IGY1ZDNjODljN2I4N2E3N2Iw
MDNiOWJmYTAzODBjNDMyZjk4ODAyNDUuLmJhNDk1ZWRkZTIxZjc3MWMzZmE0NTM2YTYyY2Q5MzRm
NzFhMzAzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0RyYXdpbmdCdWZmZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRHJhd2luZ0J1ZmZlckNocm9taXVtLmNwcApAQCAtMzks
NyArMzksNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUg
PGFsZ29yaXRobT4KICNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KLSNpbmNsdWRlIDxwdWJs
aWMvV2ViQ29tcG9zaXRvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9y
dC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckNsaWVudC5oPgpAQCAtODQsNyArODMs
NiBAQCBEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEKiBjb250
ZXh0LAogICAgICwgbV9mYm8oMCkKICAgICAsIG1fY29sb3JCdWZmZXIoMCkKICAgICAsIG1fZnJv
bnRDb2xvckJ1ZmZlcigwKQotICAgICwgbV9zZXBhcmF0ZUZyb250VGV4dHVyZShtX3ByZXNlcnZl
RHJhd2luZ0J1ZmZlciA9PSBQcmVzZXJ2ZSB8fCBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OmlzVGhy
ZWFkaW5nRW5hYmxlZCgpKQogICAgICwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIoMCkKICAgICAsIG1f
ZGVwdGhCdWZmZXIoMCkKICAgICAsIG1fc3RlbmNpbEJ1ZmZlcigwKQpAQCAtOTIsNiArOTAsOSBA
QCBEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0
LAogICAgICwgbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKDApCiAgICAgLCBtX2NvbnRlbnRzQ2hh
bmdlZCh0cnVlKQogeworICAgIC8vIFdlIG5lZWQgYSBzZXBhcmF0ZSBmcm9udCBhbmQgYmFjayB0
ZXh0dXJlcyBpZiAuLi4KKyAgICBtX3NlcGFyYXRlRnJvbnRUZXh0dXJlID0gbV9wcmVzZXJ2ZURy
YXdpbmdCdWZmZXIgPT0gUHJlc2VydmUgLy8gLi4uIHdlIGhhdmUgdG8gcHJlc2VydmUgY29udGVu
dHMgYWZ0ZXIgY29tcG9zaXRpbmcsIHdoaWNoIGlzIGRvbmUgd2l0aCBhIGNvcHkgb3IgLi4uCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQo
KS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+aXNUaHJlYWRpbmdFbmFibGVkKCk7IC8vIC4uLiBpZiB3
ZSdyZSBpbiB0aHJlYWRlZCBtb2RlIGFuZCBuZWVkIHRvIGRvdWJsZSBidWZmZXIuCiAgICAgaW5p
dGlhbGl6ZShzaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggNjZh
OTlkOTY0MmRjZmE2ZDY2ODIyNjJiMDc4YzI2NDkzYWRmZTEyNC4uZTA0MTFjMjYxNmE5MDExZjQy
Y2QwMmM0MjE2OWMwNjA1YTM1NDdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBA
IC0xMDIsNiArMTAyLDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9VUkxUZXN0SGVscGVycy5jcHAn
LAogICAgICAgICAgICAgJ3Rlc3RzL1VSTFRlc3RIZWxwZXJzLmgnLAogICAgICAgICAgICAgJ3Rl
c3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAnLAorICAgICAgICAgICAg
J3Rlc3RzL1dlYkNvbXBvc2l0b3JJbml0aWFsaXplci5oJywKICAgICAgICAgICAgICd0ZXN0cy9X
ZWJGcmFtZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGxUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViUGFnZU5ld1NlcmlhbGl6ZXJU
ZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50LmgKaW5kZXggN2M5MTFkOGY4ZWMw
MzAxZDZlMWVhYTUyNjQ3Mjg3NWMyNGQ4OWIzYS4uYTRjNGY2MmMzOTdiYWM4ZDY2MTcyMTQzOTYx
N2M3NzZlMzBhYzUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQuaApAQCAtMzUsMTIg
KzM1LDEyIEBAIHB1YmxpYzoKICAgICAvLyBDYWxsYmFja3MgaW52b2tlZCBmcm9tIHRoZSBjb21w
b3NpdG9yIHRocmVhZC4KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNodXRkb3duKCkgPSAwOwogCi0g
ICAgLy8gRXhhY3RseSBvbmUgb2YgdGhlIGZvbGxvd2luZyB0d28gY2FsbGJhY2tzIHdpbGwgYmUg
aW52b2tlZCBhZnRlciBldmVyeSBjYWxsIHRvIFdlYkNvbXBvc2l0b3I6OmhhbmRsZUlucHV0RXZl
bnQoKToKKyAgICAvLyBFeGFjdGx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHR3byBjYWxsYmFja3Mg
d2lsbCBiZSBpbnZva2VkIGFmdGVyIGV2ZXJ5IGNhbGwgdG8gV2ViQ29tcG9zaXRvcklucHV0SGFu
ZGxlcjo6aGFuZGxlSW5wdXRFdmVudCgpOgogCi0gICAgLy8gQ2FsbGVkIHdoZW4gdGhlIFdlYkNv
bXBvc2l0b3IgaGFuZGxlZCB0aGUgaW5wdXQgZXZlbnQgYW5kIG5vIGZ1cnRoZXIgcHJvY2Vzc2lu
ZyBpcyByZXF1aXJlZC4KKyAgICAvLyBDYWxsZWQgd2hlbiB0aGUgV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlciBoYW5kbGVkIHRoZSBpbnB1dCBldmVudCBhbmQgbm8gZnVydGhlciBwcm9jZXNzaW5n
IGlzIHJlcXVpcmVkLgogICAgIHZpcnR1YWwgdm9pZCBkaWRIYW5kbGVJbnB1dEV2ZW50KCkgPSAw
OwogCi0gICAgLy8gQ2FsbGVkIHdoZW4gdGhlIFdlYkNvbXBvc2l0b3IgZGlkIG5vdCBoYW5kbGUg
dGhlIGlucHV0IGV2ZW50LiBJZiBzZW5kVG9XaWRnZXQgaXMgdHJ1ZSwgdGhlIGlucHV0IGV2ZW50
CisgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXIgZGlkIG5v
dCBoYW5kbGUgdGhlIGlucHV0IGV2ZW50LiBJZiBzZW5kVG9XaWRnZXQgaXMgdHJ1ZSwgdGhlIGlu
cHV0IGV2ZW50CiAgICAgLy8gc2hvdWxkIGJlIGZvcndhcmRlZCB0byB0aGUgV2ViV2lkZ2V0IGFz
c29jaWF0ZWQgd2l0aCB0aGlzIGNvbXBvc2l0b3IgZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZy4KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlSW5wdXRFdmVudChib29sIHNlbmRUb1dpZGdldCkg
PSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGwuaAppbmRleCA5NDc0YjIxOTM3NmVmNTJjNzFkMTkwOGVk
M2YzOTNhYTA4NDJiNWUyLi5jOWZlZWVmNmUzMjkwM2YzMTUwZDVlNjZlZDYxZWVkNTFiMjRmMTJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBv
c2l0b3JJbnB1dEhhbmRsZXJJbXBsLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJXZWJB
Y3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbnB1
dEhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50LmgiCi0jaW5jbHVkZSA8cHVibGlj
L1dlYkNvbXBvc2l0b3IuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA0ZmI0NTFhZmJkYjhiZGFjMTAyYTE5
Yjk0Y2RjN2JhNTQ5NGI0MmNjLi5kY2Y0ZWNhZjM5Y2NmZGMwNzVjMjY4ZGFlNjgyOWM0NzExYzU5
MmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0x
MjUsNyArMTI1LDYgQEAKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5j
bHVkZSAiV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJBdXRv
ZmlsbENsaWVudC5oIgotI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbXBsLmgiCiAjaW5jbHVkZSAi
V2ViRGV2VG9vbHNBZ2VudEltcGwuaCIKICNpbmNsdWRlICJXZWJEZXZUb29sc0FnZW50UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgpAQCAtMTQ5LDggKzE0OCw4IEBACiAjaW5j
bHVkZSAiV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgInBhaW50aW5nL0dyYXBoaWNzQ29udGV4dEJ1
aWxkZXIuaCIKICNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KLSNpbmNsdWRlIDxwdWJsaWMv
V2ViQ29tcG9zaXRvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yT3V0cHV0U3Vy
ZmFjZS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJEcmFnRGF0YS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJGbG9hdFBvaW50
Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg+CkBAIC0xODE4LDcg
KzE4MTcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp0aGVtZUNoYW5nZWQoKQogdm9pZCBXZWJWaWV3
SW1wbDo6Y29tcG9zaXRlKGJvb2wpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotICAgIGlmIChXZWJDb21wb3NpdG9yOjppc1RocmVhZGluZ0VuYWJsZWQoKSkKKyAgICBpZiAo
UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+aXNUaHJlYWRpbmdFbmFi
bGVkKCkpCiAgICAgICAgIG1fbGF5ZXJUcmVlVmlldy0+c2V0TmVlZHNSZWRyYXcoKTsKICAgICBl
bHNlIHsKICAgICAgICAgQVNTRVJUKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpKTsK
QEAgLTM3MzQsNyArMzczMyw3IEBAIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIFdlYlZpZXdJbXBs
Ojpyb290R3JhcGhpY3NMYXllcigpCiB2b2lkIFdlYlZpZXdJbXBsOjpzY2hlZHVsZUFuaW1hdGlv
bigpCiB7CiAgICAgaWYgKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpKSB7Ci0gICAg
ICAgIGlmIChXZWJDb21wb3NpdG9yOjppc1RocmVhZGluZ0VuYWJsZWQoKSkgeworICAgICAgICBp
ZiAoUGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+aXNUaHJlYWRpbmdF
bmFibGVkKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChtX2xheWVyVHJlZVZpZXcpOwogICAgICAg
ICAgICAgbV9sYXllclRyZWVWaWV3LT5zZXROZWVkc0FuaW1hdGUoKTsKICAgICAgICAgfSBlbHNl
CkBAIC0zOTY3LDcgKzM5NjYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaWRSZWNyZWF0ZU91dHB1
dFN1cmZhY2UoYm9vbCBzdWNjZXNzKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzY2hlZHVsZUNvbXBv
c2l0ZSgpCiB7Ci0gICAgQVNTRVJUKCFXZWJDb21wb3NpdG9yOjppc1RocmVhZGluZ0VuYWJsZWQo
KSk7CisgICAgQVNTRVJUKCFQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgp
LT5pc1RocmVhZGluZ0VuYWJsZWQoKSk7CiAgICAgbV9jbGllbnQtPnNjaGVkdWxlQ29tcG9zaXRl
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NQcmlv
cml0aXplZFRleHR1cmVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NQ
cmlvcml0aXplZFRleHR1cmVUZXN0LmNwcAppbmRleCAzODNmYTU5ODc5ZGQ0ZWJmNzQzZTdjYzM0
MzVmYTg1MGQ0OTFkZmVjLi45MDc2ZDM0ZDQ5YzdkNjBkMWIyNDJkYTk0ZTQ4NmRlNzU4YWM4NjFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDUHJpb3JpdGl6ZWRU
ZXh0dXJlVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1ByaW9y
aXRpemVkVGV4dHVyZVRlc3QuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSAiQ0NUZXh0
dXJlLmgiCiAjaW5jbHVkZSAiQ0NUaWxlZExheWVyVGVzdENvbW1vbi5oIgogI2luY2x1ZGUgIkZh
a2VDQ0dyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbml0aWFsaXpl
ci5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYkNvbXBv
c2l0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0VGVzdHM7CkBAIC00NSwyMCArNDUsMTcgQEAgcHVibGljOgogICAgIENDUHJpb3JpdGl6ZWRU
ZXh0dXJlVGVzdCgpCiAgICAgICAgIDogbV90ZXh0dXJlU2l6ZSgyNTYsIDI1NikKICAgICAgICAg
LCBtX3RleHR1cmVGb3JtYXQoR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpCisgICAgICAgICwgbV9j
b21wb3NpdG9ySW5pdGlhbGl6ZXIoMCkKICAgICAgICAgLCBtX2NvbnRleHQoV2ViS2l0OjpjcmVh
dGVGYWtlQ0NHcmFwaGljc0NvbnRleHQoKSkKICAgICB7Ci0gICAgICAgIFdlYktpdDo6V2ViQ29t
cG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKICAgICAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFk
IGltcGxUaHJlYWQ7CiAgICAgICAgIG1fcmVzb3VyY2VQcm92aWRlciA9IENDUmVzb3VyY2VQcm92
aWRlcjo6Y3JlYXRlKG1fY29udGV4dC5nZXQoKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+Q0NQ
cmlvcml0aXplZFRleHR1cmVUZXN0KCkKICAgICB7Ci0gICAgICAgIHsKLSAgICAgICAgICAgIERl
YnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwotICAgICAgICAgICAgbV9yZXNvdXJj
ZVByb3ZpZGVyLmNsZWFyKCk7Ci0gICAgICAgIH0KLSAgICAgICAgV2ViS2l0OjpXZWJDb21wb3Np
dG9yOjpzaHV0ZG93bigpOworICAgICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRo
cmVhZDsKKyAgICAgICAgbV9yZXNvdXJjZVByb3ZpZGVyLmNsZWFyKCk7CiAgICAgfQogCiAgICAg
c2l6ZV90IHRleHR1cmVzTWVtb3J5U2l6ZShzaXplX3QgdGV4dHVyZUNvdW50KQpAQCAtOTMsNiAr
OTAsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgY29uc3QgSW50U2l6ZSBtX3RleHR1cmVT
aXplOwogICAgIGNvbnN0IEdDM0RlbnVtIG1fdGV4dHVyZUZvcm1hdDsKKyAgICBXZWJDb21wb3Np
dG9ySW5pdGlhbGl6ZXIgbV9jb21wb3NpdG9ySW5pdGlhbGl6ZXI7CiAgICAgT3duUHRyPENDR3Jh
cGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgT3duUHRyPENDUmVzb3VyY2VQcm92aWRlcj4g
bV9yZXNvdXJjZVByb3ZpZGVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NSZW5kZXJlckdMVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDUmVuZGVyZXJHTFRlc3QuY3BwCmluZGV4IDJmM2ZkNmEwODEzNTg3MDkxYTJmYzRiMDll
NDkwYmQ3MTBmNmU5NTMuLjlkNmYyMjNlMWU3ZjIwZTBmMzRjMDdlYjllOTYyOTM0NzJlOWMwNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NSZW5kZXJlckdMVGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1JlbmRlcmVyR0xUZXN0
LmNwcApAQCAtMzMsOSArMzMsOSBAQAogI2luY2x1ZGUgIkZha2VXZWJDb21wb3NpdG9yT3V0cHV0
U3VyZmFjZS5oIgogI2luY2x1ZGUgIkZha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvckluaXRpYWxp
emVyLmgiCiAjaW5jbHVkZSA8Z21vY2svZ21vY2suaD4KICNpbmNsdWRlIDxndGVzdC9ndGVzdC5o
PgotI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlRyYW5zZm9ybWF0aW9uTWF0cml4Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAt
MTI4LDYgKzEyOCw3IEBAIHByb3RlY3RlZDoKICAgICBDQ1JlbmRlcmVyR0xUZXN0KCkKICAgICAg
ICAgOiBtX3N1Z2dlc3RIYXZlQmFja2J1ZmZlclllcygxLCB0cnVlKQogICAgICAgICAsIG1fc3Vn
Z2VzdEhhdmVCYWNrYnVmZmVyTm8oMSwgZmFsc2UpCisgICAgICAgICwgbV9jb21wb3NpdG9ySW5p
dGlhbGl6ZXIoMCkKICAgICAgICAgLCBtX2NvbnRleHQoRmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRT
dXJmYWNlOjpjcmVhdGUoYWRvcHRQdHIobmV3IEZyYW1lQ291bnRpbmdNZW1vcnlBbGxvY2F0aW9u
U2V0dGluZ0NvbnRleHQoKSkpKQogICAgICAgICAsIG1fcmVzb3VyY2VQcm92aWRlcihDQ1Jlc291
cmNlUHJvdmlkZXI6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCkpKQogICAgICAgICAsIG1fcmVuZGVy
ZXIoJm1fbW9ja0NsaWVudCwgbV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpKQpAQCAtMTM2LDE1ICsx
MzcsOSBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKQogICAgIHsKLSAg
ICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOwogICAgICAgICBtX3Jl
bmRlcmVyLmluaXRpYWxpemUoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24o
KQotICAgIHsKLSAgICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOwotICAg
IH0KLQogICAgIHZvaWQgc3dhcEJ1ZmZlcnMoKQogICAgIHsKICAgICAgICAgbV9yZW5kZXJlci5z
d2FwQnVmZmVycygpOwpAQCAtMTU1LDYgKzE1MCw3IEBAIHByb3RlY3RlZDoKICAgICBXZWJHcmFw
aGljc01lbW9yeUFsbG9jYXRpb24gbV9zdWdnZXN0SGF2ZUJhY2tidWZmZXJZZXM7CiAgICAgV2Vi
R3JhcGhpY3NNZW1vcnlBbGxvY2F0aW9uIG1fc3VnZ2VzdEhhdmVCYWNrYnVmZmVyTm87CiAKKyAg
ICBXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIgbV9jb21wb3NpdG9ySW5pdGlhbGl6ZXI7CiAgICAg
T3duUHRyPENDR3JhcGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgRmFrZUNDUmVuZGVyZXJD
bGllbnQgbV9tb2NrQ2xpZW50OwogICAgIE93blB0cjxDQ1Jlc291cmNlUHJvdmlkZXI+IG1fcmVz
b3VyY2VQcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKaW5kZXggMTE2NTlmNmY1
MmI4YWJkMGFlMzA3NTliN2E2NjU0MTQ1MTA2MDQzYS4uYmFmNjNjMmU3OWJhZTk5ZGMwYjZlOTE3
NTZmMTIzZDJmOWQ1N2RiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKQEAgLTMxLDgg
KzMxLDggQEAKICNpbmNsdWRlICJDQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmgiCiAjaW5jbHVkZSAi
RmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmgiCiAjaW5jbHVkZSAiRmFrZVdlYkdyYXBo
aWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvckluaXRpYWxpemVyLmgiCiAj
aW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvci5o
PgogI2luY2x1ZGUgPHB1YmxpYy9XZWJUaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKQEAgLTk1LDIxICs5NSwyMyBAQCBwdWJsaWM6CiBjbGFzcyBDQ1RleHR1cmVVcGRhdGVDb250
cm9sbGVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKIHB1YmxpYzoKICAgICBDQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyVGVzdCgpCi0gICAgOiBtX3F1ZXVlKGFkb3B0UHRyKG5ldyBDQ1RleHR1cmVVcGRh
dGVRdWV1ZSkpCi0gICAgLCBtX3VwbG9hZGVyKHRoaXMpCi0gICAgLCBtX2Z1bGxVcGxvYWRDb3Vu
dEV4cGVjdGVkKDApCi0gICAgLCBtX3BhcnRpYWxDb3VudEV4cGVjdGVkKDApCi0gICAgLCBtX3Rv
dGFsVXBsb2FkQ291bnRFeHBlY3RlZCgwKQotICAgICwgbV9tYXhVcGxvYWRDb3VudFBlclVwZGF0
ZSgwKQotICAgICwgbV9udW1CZWdpblVwbG9hZHMoMCkKLSAgICAsIG1fbnVtRW5kVXBsb2Fkcygw
KQotICAgICwgbV9udW1Db25zZWN1dGl2ZUZsdXNoZXMoMCkKLSAgICAsIG1fbnVtRGFuZ2xpbmdV
cGxvYWRzKDApCi0gICAgLCBtX251bVRvdGFsVXBsb2FkcygwKQotICAgICwgbV9udW1Ub3RhbEZs
dXNoZXMoMCkKLSAgICAsIG1fbnVtUHJldmlvdXNVcGxvYWRzKDApCi0gICAgLCBtX251bVByZXZp
b3VzRmx1c2hlcygwKQotICAgIHsgfQorICAgICAgICA6IG1fcXVldWUoYWRvcHRQdHIobmV3IEND
VGV4dHVyZVVwZGF0ZVF1ZXVlKSkKKyAgICAgICAgLCBtX3VwbG9hZGVyKHRoaXMpCisgICAgICAg
ICwgbV9jb21wb3NpdG9ySW5pdGlhbGl6ZXIobV90aHJlYWQuZ2V0KCkpCisgICAgICAgICwgbV9m
dWxsVXBsb2FkQ291bnRFeHBlY3RlZCgwKQorICAgICAgICAsIG1fcGFydGlhbENvdW50RXhwZWN0
ZWQoMCkKKyAgICAgICAgLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCgwKQorICAgICAgICAs
IG1fbWF4VXBsb2FkQ291bnRQZXJVcGRhdGUoMCkKKyAgICAgICAgLCBtX251bUJlZ2luVXBsb2Fk
cygwKQorICAgICAgICAsIG1fbnVtRW5kVXBsb2FkcygwKQorICAgICAgICAsIG1fbnVtQ29uc2Vj
dXRpdmVGbHVzaGVzKDApCisgICAgICAgICwgbV9udW1EYW5nbGluZ1VwbG9hZHMoMCkKKyAgICAg
ICAgLCBtX251bVRvdGFsVXBsb2FkcygwKQorICAgICAgICAsIG1fbnVtVG90YWxGbHVzaGVzKDAp
CisgICAgICAgICwgbV9udW1QcmV2aW91c1VwbG9hZHMoMCkKKyAgICAgICAgLCBtX251bVByZXZp
b3VzRmx1c2hlcygwKQorICAgIHsKKyAgICB9CiAKIHB1YmxpYzoKICAgICB2b2lkIG9uRmx1c2go
KQpAQCAtMTcwLDE5ICsxNzIsMTEgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
dm9pZCBTZXRVcCgpCiAgICAgewotICAgICAgICBPd25QdHI8V2ViVGhyZWFkPiB0aHJlYWQ7Ci0g
ICAgICAgIFdlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUodGhyZWFkLmdldCgpKTsKLQogICAgICAg
ICBtX2NvbnRleHQgPSBGYWtlV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2U6OmNyZWF0ZShhZG9w
dFB0cihuZXcgV2ViR3JhcGhpY3NDb250ZXh0M0RGb3JVcGxvYWRUZXN0KHRoaXMpKSk7CiAgICAg
ICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgICAgICBtX3Jlc291
cmNlUHJvdmlkZXIgPSBDQ1Jlc291cmNlUHJvdmlkZXI6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCkp
OwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpCi0gICAgewotICAgICAgICBX
ZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOwotICAgIH0KLQogICAgIHZvaWQgYXBwZW5kRnVsbFVw
bG9hZHNUb1VwZGF0ZVF1ZXVlKGludCBjb3VudCkKICAgICB7CiAgICAgICAgIG1fZnVsbFVwbG9h
ZENvdW50RXhwZWN0ZWQgKz0gY291bnQ7CkBAIC0yMTgsNiArMjEyLDkgQEAgcHJvdGVjdGVkOgog
ICAgIFRleHR1cmVGb3JVcGxvYWRUZXN0IG1fdGV4dHVyZTsKICAgICBGYWtlVGV4dHVyZUNvcGll
ciBtX2NvcGllcjsKICAgICBUZXh0dXJlVXBsb2FkZXJGb3JVcGxvYWRUZXN0IG1fdXBsb2FkZXI7
CisgICAgT3duUHRyPFdlYlRocmVhZD4gbV90aHJlYWQ7CisgICAgV2ViQ29tcG9zaXRvckluaXRp
YWxpemVyIG1fY29tcG9zaXRvckluaXRpYWxpemVyOworCiAKICAgICAvLyBQcm9wZXJ0aWVzIC8g
ZXhwZWN0YXRpb25zIG9mIHRoaXMgdGVzdAogICAgIGludCBtX2Z1bGxVcGxvYWRDb3VudEV4cGVj
dGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RocmVhZGVk
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGhyZWFkZWRUZXN0LmNw
cAppbmRleCA0ZWQxMjc3NThhZTBjMWQ0ZDg1MWNiNTRmY2E4MDVmZTkyMmI3NmU4Li5hZWIzNWE1
MTRlNjI0MzlhYjE2NmU0MGRhNGI1NTQ2YmJhMDA1M2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDVGhyZWFkZWRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDVGhyZWFkZWRUZXN0LmNwcApAQCAtNDQsNyArNDQsNyBAQAogI2lu
Y2x1ZGUgIkxheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlIDxnbW9jay9nbW9jay5oPgogI2luY2x1
ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yLmg+
CisjaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0Lmg+CiAjaW5jbHVkZSA8cHVi
bGljL1dlYkZpbHRlck9wZXJhdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJGaWx0ZXJPcGVy
YXRpb25zLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlRocmVhZC5oPgpAQCAtNjAwLDEzICs2MDAs
MTMgQEAgdm9pZCBDQ1RocmVhZGVkVGVzdDo6ZGlzcGF0Y2hEaWRBZGRBbmltYXRpb24odm9pZCog
c2VsZikKIHZvaWQgQ0NUaHJlYWRlZFRlc3Q6OnJ1blRlc3QoYm9vbCB0aHJlYWRlZCkKIHsKICAg
ICAvLyBGb3IgdGhlc2UgdGVzdHMsIHdlIHdpbGwgZW5hYmxlIHRocmVhZGVkIGFuaW1hdGlvbnMu
Ci0gICAgV2ViQ29tcG9zaXRvcjo6c2V0QWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkKHRydWUp
OworICAgIFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPnNldEFjY2Vs
ZXJhdGVkQW5pbWF0aW9uRW5hYmxlZCh0cnVlKTsKIAogICAgIGlmICh0aHJlYWRlZCkgewogICAg
ICAgICBtX3dlYlRocmVhZCA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+
Y3JlYXRlVGhyZWFkKCJDQ1RocmVhZGVkVGVzdCIpKTsKLSAgICAgICAgV2ViQ29tcG9zaXRvcjo6
aW5pdGlhbGl6ZShtX3dlYlRocmVhZC5nZXQoKSk7CisgICAgICAgIFBsYXRmb3JtOjpjdXJyZW50
KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmluaXRpYWxpemUobV93ZWJUaHJlYWQuZ2V0KCkpOwog
ICAgIH0gZWxzZQotICAgICAgICBXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOworICAgICAg
ICBQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5pbml0aWFsaXplKDAp
OwogCiAgICAgQVNTRVJUKENDUHJveHk6OmlzTWFpblRocmVhZCgpKTsKICAgICBtX21haW5UaHJl
YWRQcm94eSA9IENDU2NvcGVkVGhyZWFkUHJveHk6OmNyZWF0ZShDQ1Byb3h5OjptYWluVGhyZWFk
KCkpOwpAQCAtNjMzLDExICs2MzMsMTEgQEAgdm9pZCBDQ1RocmVhZGVkVGVzdDo6cnVuVGVzdChi
b29sIHRocmVhZGVkKQogICAgIG1fY2xpZW50LmNsZWFyKCk7CiAgICAgaWYgKG1fdGltZWRPdXQp
IHsKICAgICAgICAgRkFJTCgpIDw8ICJUZXN0IHRpbWVkIG91dCI7Ci0gICAgICAgIFdlYkNvbXBv
c2l0b3I6OnNodXRkb3duKCk7CisgICAgICAgIFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0
b3JTdXBwb3J0KCktPnNodXRkb3duKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYWZ0
ZXJUZXN0KCk7Ci0gICAgV2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKKyAgICBQbGF0Zm9ybTo6
Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5zaHV0ZG93bigpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXRUZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAppbmRleCA2OTcyNDI0YjA2N2IyYWEx
OWI5NDg2YjgxMWE1MDA0MTQ2NjJkOTllLi4yNmJkZDRmMTE5YmE1NzZlN2Y0M2ZiZjM2NDkxNmM1
YWQ2OTdjYWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZh
czJETGF5ZXJCcmlkZ2VUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcApAQCAtMzAsOCArMzAsOCBAQAogI2luY2x1ZGUg
IkZha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViQ29tcG9z
aXRvckluaXRpYWxpemVyLmgiCiAjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+Ci0jaW5jbHVk
ZSA8cHVibGljL1dlYkNvbXBvc2l0b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViVGhyZWFkLmg+
CiAKICNpbmNsdWRlIDxnbW9jay9nbW9jay5oPgpAQCAtODEsNyArODEsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIE93blB0cjxXZWJUaHJlYWQ+IHRocmVhZDsKICAgICAgICAgaWYgKHRocmVhZE1v
ZGUgPT0gVGhyZWFkZWQpCiAgICAgICAgICAgICB0aHJlYWQgPSBhZG9wdFB0cihXZWJLaXQ6OlBs
YXRmb3JtOjpjdXJyZW50KCktPmNyZWF0ZVRocmVhZCgiQ2FudmFzMkRMYXllckJyaWRnZVRlc3Qi
KSk7Ci0gICAgICAgIFdlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUodGhyZWFkLmdldCgpKTsKKyAg
ICAgICAgV2ViS2l0VGVzdHM6OldlYkNvbXBvc2l0b3JJbml0aWFsaXplciBpbml0aWFsaXplcih0
aHJlYWQuZ2V0KCkpOwogCiAgICAgICAgIFdlYkdMSWQgYmFja1RleHR1cmVJZCA9IDE7CiAgICAg
ICAgIFdlYkdMSWQgZnJvbnRUZXh0dXJlSWQgPSAxOwpAQCAtMTA5LDggKzEwOSw2IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgICAgIEVYUEVDVF9DQUxMKG1haW5Nb2NrLCBmbHVzaCgpKTsKICAgICAg
ICAgfQogICAgICAgICBicmlkZ2UuY2xlYXIoKTsKLQotICAgICAgICBXZWJDb21wb3NpdG9yOjpz
aHV0ZG93bigpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGZjN2YyM2Zi
MmE3NzdiNGNlZTJkNjdlYzM1ZGU1YjNkYmQyMTI4ZGUuLmE5YmRhMTE1NWFhOTYzYTJlZjMwYWM2
M2QxNjRmMjNkNjQzMWFjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtMzcsNyArMzcsOCBA
QAogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIldl
YkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmgiCiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KLSNp
bmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvci5oPgorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9y
bS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oPgogI2luY2x1ZGUg
PHB1YmxpYy9XZWJGbG9hdEFuaW1hdGlvbkN1cnZlLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkdy
YXBoaWNzQ29udGV4dDNELmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkxheWVyVHJlZVZpZXcuaD4K
QEAgLTYzLDggKzY0LDggQEAgcHVibGljOgogICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3Qo
KQogICAgIHsKICAgICAgICAgLy8gRm9yIHRoZXNlIHRlc3RzLCB3ZSB3aWxsIGVuYWJsZSB0aHJl
YWRlZCBhbmltYXRpb25zLgotICAgICAgICBXZWJDb21wb3NpdG9yOjpzZXRBY2NlbGVyYXRlZEFu
aW1hdGlvbkVuYWJsZWQodHJ1ZSk7Ci0gICAgICAgIFdlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUo
MCk7CisgICAgICAgIFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPnNl
dEFjY2VsZXJhdGVkQW5pbWF0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgUGxhdGZvcm06OmN1
cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+aW5pdGlhbGl6ZSgwKTsKICAgICAgICAgbV9n
cmFwaGljc0xheWVyID0gc3RhdGljX3BvaW50ZXJfY2FzdDxHcmFwaGljc0xheWVyQ2hyb21pdW0+
KEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSgmbV9jbGllbnQpKTsKICAgICAgICAgbV9wbGF0Zm9ybUxh
eWVyID0gbV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCk7CiAgICAgICAgIG1fbGF5ZXJU
cmVlVmlldyA9IGFkb3B0UHRyKFdlYkxheWVyVHJlZVZpZXc6OmNyZWF0ZSgmbV9sYXllclRyZWVW
aWV3Q2xpZW50LCAqbV9wbGF0Zm9ybUxheWVyLCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5ncygp
KSk7CkBAIC03NSw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fZ3JhcGhpY3NM
YXllci5jbGVhcigpOwogICAgICAgICBtX2xheWVyVHJlZVZpZXcuY2xlYXIoKTsKLSAgICAgICAg
V2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKKyAgICAgICAgUGxhdGZvcm06OmN1cnJlbnQoKS0+
Y29tcG9zaXRvclN1cHBvcnQoKS0+c2h1dGRvd24oKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAK
aW5kZXggMTI4M2M3OTg5ZmQ3MmIzNzJiNDhmODQ4MWM5MmU4MTFiY2Y1YThlMy4uYTE3YjA3NmYz
NDkxZDBjNjcyMzcxOTdjNmIwNjRkZDYzNmI3MjBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTMyLDkgKzMyLDkgQEAK
ICNpbmNsdWRlICJDQ1NpbmdsZVRocmVhZFByb3h5LmgiCiAjaW5jbHVkZSAiRmFrZUNDTGF5ZXJU
cmVlSG9zdENsaWVudC5oIgogI2luY2x1ZGUgIkxheWVyUGFpbnRlckNocm9taXVtLmgiCisjaW5j
bHVkZSAiV2ViQ29tcG9zaXRvckluaXRpYWxpemVyLmgiCiAjaW5jbHVkZSA8Z21vY2svZ21vY2su
aD4KICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3Np
dG9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4Lmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNzQsMTEgKzc0LDE1IEBAIHB1YmxpYzoKIAogCiBj
bGFzcyBMYXllckNocm9taXVtVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKK3B1YmxpYzoK
KyAgICBMYXllckNocm9taXVtVGVzdCgpCisgICAgICAgIDogbV9jb21wb3NpdG9ySW5pdGlhbGl6
ZXIoMCkKKyAgICB7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIFNldFVw
KCkKICAgICB7Ci0gICAgICAgIC8vIEluaXRpYWxpemUgd2l0aG91dCB0aHJlYWRpbmcgc3VwcG9y
dC4KLSAgICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOwogICAgICAg
ICBtX2xheWVyVHJlZUhvc3QgPSBhZG9wdFB0cihuZXcgTW9ja0NDTGF5ZXJUcmVlSG9zdCk7CiAg
ICAgfQogCkBAIC05Niw3ICsxMDAsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5zZXRSb290TGF5ZXIoMCk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC5jbGVhcigp
OwotICAgICAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNodXRkb3duKCk7CiAgICAgfQogCiAg
ICAgdm9pZCB2ZXJpZnlUZXN0VHJlZUluaXRpYWxTdGF0ZSgpIGNvbnN0CkBAIC0xNDksNiArMTUy
LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgT3duUHRyPE1vY2tDQ0xheWVyVHJlZUhvc3Q+IG1fbGF5
ZXJUcmVlSG9zdDsKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbV9wYXJlbnQsIG1fY2hpbGQx
LCBtX2NoaWxkMiwgbV9jaGlsZDMsIG1fZ3JhbmRDaGlsZDEsIG1fZ3JhbmRDaGlsZDIsIG1fZ3Jh
bmRDaGlsZDM7CisgICAgV2ViQ29tcG9zaXRvckluaXRpYWxpemVyIG1fY29tcG9zaXRvckluaXRp
YWxpemVyOwogfTsKIAogVEVTVF9GKExheWVyQ2hyb21pdW1UZXN0LCBiYXNpY0NyZWF0ZUFuZERl
c3Ryb3kpCkBAIC02MzUsNyArNjM5LDcgQEAgdm9pZCBhc3NlcnRMYXllclRyZWVIb3N0TWF0Y2hl
c0ZvclN1YnRyZWUoTGF5ZXJDaHJvbWl1bSogbGF5ZXIsIENDTGF5ZXJUcmVlSG9zdCoKIAogVEVT
VChMYXllckNocm9taXVtTGF5ZXJUcmVlSG9zdFRlc3QsIGVudGVyaW5nVHJlZSkKIHsKLSAgICBX
ZWJLaXQ6OldlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUoMCk7CisgICAgV2ViQ29tcG9zaXRvcklu
aXRpYWxpemVyIGNvbXBvc2l0b3JJbml0aWFsaXplcigwKTsKICAgICBSZWZQdHI8TGF5ZXJDaHJv
bWl1bT4gcGFyZW50ID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgUmVmUHRyPExheWVy
Q2hyb21pdW0+IGNoaWxkID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgUmVmUHRyPExh
eWVyQ2hyb21pdW0+IG1hc2sgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKQEAgLTY2MiwxMiAr
NjY2LDExIEBAIFRFU1QoTGF5ZXJDaHJvbWl1bUxheWVyVHJlZUhvc3RUZXN0LCBlbnRlcmluZ1Ry
ZWUpCiAgICAgYXNzZXJ0TGF5ZXJUcmVlSG9zdE1hdGNoZXNGb3JTdWJ0cmVlKHBhcmVudC5nZXQo
KSwgMCk7CiAKICAgICBsYXllclRyZWVIb3N0LmNsZWFyKCk7Ci0gICAgV2ViS2l0OjpXZWJDb21w
b3NpdG9yOjpzaHV0ZG93bigpOwogfQogCiBURVNUKExheWVyQ2hyb21pdW1MYXllclRyZWVIb3N0
VGVzdCwgYWRkaW5nTGF5ZXJTdWJ0cmVlKQogewotICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6
aW5pdGlhbGl6ZSgwKTsKKyAgICBXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIgY29tcG9zaXRvcklu
aXRpYWxpemVyKDApOwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBwYXJlbnQgPSBMYXllckNo
cm9taXVtOjpjcmVhdGUoKTsKICAgICBPd25QdHI8RmFrZUNDTGF5ZXJUcmVlSG9zdD4gbGF5ZXJU
cmVlSG9zdChGYWtlQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoKSk7CiAKQEAgLTY5MywxMiArNjk2
LDExIEBAIFRFU1QoTGF5ZXJDaHJvbWl1bUxheWVyVHJlZUhvc3RUZXN0LCBhZGRpbmdMYXllclN1
YnRyZWUpCiAKICAgICBsYXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIoMCk7CiAgICAgbGF5ZXJU
cmVlSG9zdC5jbGVhcigpOwotICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsK
IH0KIAogVEVTVChMYXllckNocm9taXVtTGF5ZXJUcmVlSG9zdFRlc3QsIGNoYW5nZUhvc3QpCiB7
Ci0gICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOworICAgIFdlYkNvbXBv
c2l0b3JJbml0aWFsaXplciBjb21wb3NpdG9ySW5pdGlhbGl6ZXIoMCk7CiAgICAgUmVmUHRyPExh
eWVyQ2hyb21pdW0+IHBhcmVudCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOwogICAgIFJlZlB0
cjxMYXllckNocm9taXVtPiBjaGlsZCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOwogICAgIFJl
ZlB0cjxMYXllckNocm9taXVtPiBtYXNrID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CkBAIC03
MjYsMTIgKzcyOCwxMSBAQCBURVNUKExheWVyQ2hyb21pdW1MYXllclRyZWVIb3N0VGVzdCwgY2hh
bmdlSG9zdCkKICAgICBzZWNvbmRMYXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIoMCk7CiAgICAg
Zmlyc3RMYXllclRyZWVIb3N0LmNsZWFyKCk7CiAgICAgc2Vjb25kTGF5ZXJUcmVlSG9zdC5jbGVh
cigpOwotICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKIH0KIAogVEVTVChM
YXllckNocm9taXVtTGF5ZXJUcmVlSG9zdFRlc3QsIGNoYW5nZUhvc3RJblN1YnRyZWUpCiB7Ci0g
ICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOworICAgIFdlYkNvbXBvc2l0
b3JJbml0aWFsaXplciBjb21wb3NpdG9ySW5pdGlhbGl6ZXIoMCk7CiAgICAgUmVmUHRyPExheWVy
Q2hyb21pdW0+IGZpcnN0UGFyZW50ID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgUmVm
UHRyPExheWVyQ2hyb21pdW0+IGZpcnN0Q2hpbGQgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsK
ICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gc2Vjb25kUGFyZW50ID0gTGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKCk7CkBAIC03NjMsMTIgKzc2NCwxMSBAQCBURVNUKExheWVyQ2hyb21pdW1MYXllclRy
ZWVIb3N0VGVzdCwgY2hhbmdlSG9zdEluU3VidHJlZSkKICAgICBzZWNvbmRMYXllclRyZWVIb3N0
LT5zZXRSb290TGF5ZXIoMCk7CiAgICAgZmlyc3RMYXllclRyZWVIb3N0LmNsZWFyKCk7CiAgICAg
c2Vjb25kTGF5ZXJUcmVlSG9zdC5jbGVhcigpOwotICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6
c2h1dGRvd24oKTsKIH0KIAogVEVTVChMYXllckNocm9taXVtTGF5ZXJUcmVlSG9zdFRlc3QsIHJl
cGxhY2VNYXNrQW5kUmVwbGljYUxheWVyKQogewotICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6
aW5pdGlhbGl6ZSgwKTsKKyAgICBXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIgY29tcG9zaXRvcklu
aXRpYWxpemVyKDApOwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBwYXJlbnQgPSBMYXllckNo
cm9taXVtOjpjcmVhdGUoKTsKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbWFzayA9IExheWVy
Q2hyb21pdW06OmNyZWF0ZSgpOwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiByZXBsaWNhID0g
TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CkBAIC04MDAsMTkgKzgwMCwxNyBAQCBURVNUKExheWVy
Q2hyb21pdW1MYXllclRyZWVIb3N0VGVzdCwgcmVwbGFjZU1hc2tBbmRSZXBsaWNhTGF5ZXIpCiAg
ICAgLy8gVGVzdCBvdmVyLCBjbGVhbnVwIHRpbWUuCiAgICAgbGF5ZXJUcmVlSG9zdC0+c2V0Um9v
dExheWVyKDApOwogICAgIGxheWVyVHJlZUhvc3QuY2xlYXIoKTsKLSAgICBXZWJLaXQ6OldlYkNv
bXBvc2l0b3I6OnNodXRkb3duKCk7CiB9CiAKIFRFU1QoTGF5ZXJDaHJvbWl1bUxheWVyVHJlZUhv
c3RUZXN0LCBkZXN0cm95SG9zdFdpdGhOb25OdWxsUm9vdExheWVyKQogewotICAgIFdlYktpdDo6
V2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKKyAgICBXZWJDb21wb3NpdG9ySW5pdGlhbGl6
ZXIgY29tcG9zaXRvckluaXRpYWxpemVyKDApOwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBy
b290ID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+
IGNoaWxkID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgcm9vdC0+YWRkQ2hpbGQoY2hp
bGQpOwogICAgIE93blB0cjxGYWtlQ0NMYXllclRyZWVIb3N0PiBsYXllclRyZWVIb3N0KEZha2VD
Q0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSgpKTsKICAgICBsYXllclRyZWVIb3N0LT5zZXRSb290TGF5
ZXIocm9vdCk7CiAgICAgbGF5ZXJUcmVlSG9zdC5jbGVhcigpOwotICAgIFdlYktpdDo6V2ViQ29t
cG9zaXRvcjo6c2h1dGRvd24oKTsKIH0KIAogY2xhc3MgTW9ja0xheWVyQ2hyb21pdW0gOiBwdWJs
aWMgTGF5ZXJDaHJvbWl1bSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0xpbmtIaWdobGlnaHRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
TGlua0hpZ2hsaWdodFRlc3QuY3BwCmluZGV4IDY0ODMwZWYyMjZmOTg3MmY1OTUwODE3M2E0NGI2
M2I5NWJhYWM4OTQuLjBhZDNmZGZlY2RlMzY5NTE4OGQ5MWVmZTMyMWFiMjA3MmMxMGMzMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGlua0hpZ2hsaWdodFRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGlua0hpZ2hsaWdodFRlc3Qu
Y3BwCkBAIC0zMCwxMCArMzAsMTAgQEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAi
Tm9kZS5oIgogI2luY2x1ZGUgIlVSTFRlc3RIZWxwZXJzLmgiCisjaW5jbHVkZSAiV2ViQ29tcG9z
aXRvckluaXRpYWxpemVyLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJW
aWV3SW1wbC5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Ci0jaW5jbHVkZSA8cHVibGljL1dl
YkNvbXBvc2l0b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViQ29udGVudExheWVyLmg+CiAjaW5j
bHVkZSA8cHVibGljL1dlYkZsb2F0UG9pbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViU2l6ZS5o
PgpAQCAtNDcsNyArNDcsNyBAQCBuYW1lc3BhY2UgewogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5U
UykKIFRFU1QoTGlua0hpZ2hsaWdodFRlc3QsIHZlcmlmeVdlYlZpZXdJbXBsSW50ZWdyYXRpb24p
CiB7Ci0gICAgV2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKKyAgICBXZWJDb21wb3NpdG9y
SW5pdGlhbGl6ZXIgY29tcG9zaXRvckluaXRpYWxpemVyKDApOwogCiAgICAgY29uc3Qgc3RkOjpz
dHJpbmcgYmFzZVVSTCgiaHR0cDovL3d3dy50ZXN0LmNvbS8iKTsKICAgICBjb25zdCBzdGQ6OnN0
cmluZyBmaWxlTmFtZSgidGVzdF90b3VjaF9saW5rX2hpZ2hsaWdodC5odG1sIik7CkBAIC04Miw3
ICs4Miw2IEBAIFRFU1QoTGlua0hpZ2hsaWdodFRlc3QsIHZlcmlmeVdlYlZpZXdJbXBsSW50ZWdy
YXRpb24pCiAgICAgQVNTRVJUX1RSVUUod2ViVmlld0ltcGwtPmxpbmtIaWdobGlnaHQoKSk7CiAK
ICAgICB3ZWJWaWV3SW1wbC0+Y2xvc2UoKTsKLSAgICBXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigp
OwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
VGV4dHVyZUxheWVyQ2hyb21pdW1UZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvVGV4dHVyZUxheWVyQ2hyb21pdW1UZXN0LmNwcAppbmRleCBhNDgzMGU1M2YxYjg3ZDNhMmNh
MDI4YmZlYTE5NjQwYmEyY2U4M2ViLi43MmUwMjA2YWQ3NTUxOTAwNDAxNmM0OTg3MjdiMzQzZGNm
ZjEwZTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RleHR1cmVM
YXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9U
ZXh0dXJlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCkBAIC0yOCw5ICsyOCw5IEBACiAKICNpbmNsdWRl
ICJDQ0xheWVyVHJlZUhvc3QuaCIKICNpbmNsdWRlICJGYWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50
LmgiCisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvckluaXRpYWxpemVyLmgiCiAjaW5jbHVkZSA8Z21v
Y2svZ21vY2suaD4KICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgotI2luY2x1ZGUgPHB1YmxpYy9X
ZWJDb21wb3NpdG9yLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogdXNpbmcgOjp0ZXN0
aW5nOjpNb2NrOwpAQCAtNTYsMTEgKzU2LDE1IEBAIHByaXZhdGU6CiAKIAogY2xhc3MgVGV4dHVy
ZUxheWVyQ2hyb21pdW1UZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworcHVibGljOgorICAg
IFRleHR1cmVMYXllckNocm9taXVtVGVzdCgpCisgICAgICAgIDogbV9jb21wb3NpdG9ySW5pdGlh
bGl6ZXIoMCkKKyAgICB7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIFNl
dFVwKCkKICAgICB7Ci0gICAgICAgIC8vIEluaXRpYWxpemUgd2l0aG91dCB0aHJlYWRpbmcgc3Vw
cG9ydC4KLSAgICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOwogICAg
ICAgICBtX2xheWVyVHJlZUhvc3QgPSBhZG9wdFB0cihuZXcgTW9ja0NDTGF5ZXJUcmVlSG9zdCk7
CiAgICAgfQogCkBAIC03MSwxMCArNzUsMTEgQEAgcHJvdGVjdGVkOgogCiAgICAgICAgIG1fbGF5
ZXJUcmVlSG9zdC0+c2V0Um9vdExheWVyKDApOwogICAgICAgICBtX2xheWVyVHJlZUhvc3QuY2xl
YXIoKTsKLSAgICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOwogICAgIH0K
IAogICAgIE93blB0cjxNb2NrQ0NMYXllclRyZWVIb3N0PiBtX2xheWVyVHJlZUhvc3Q7Citwcml2
YXRlOgorICAgIFdlYktpdFRlc3RzOjpXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIgbV9jb21wb3Np
dG9ySW5pdGlhbGl6ZXI7CiB9OwogCiBURVNUX0YoVGV4dHVyZUxheWVyQ2hyb21pdW1UZXN0LCBz
eW5jSW1wbFdoZW5DaGFuZ2luZ1RleHR1cmVJZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGQ5YjllYTlh
Yzc0MjYyMjIzNjZkMjNjZTIxOGYyNjYxMmUzNjk5Y2IuLjg1ODIxYThiMzhiMjk3YTdkODM1Mjky
NTJmYzhlY2QzMjBkYmQyOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtMzcsOCArMzcsOCBAQAogI2lu
Y2x1ZGUgIkZha2VDQ0dyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkZha2VDQ0xheWVyVHJl
ZUhvc3RDbGllbnQuaCIKICNpbmNsdWRlICJMYXllclBhaW50ZXJDaHJvbWl1bS5oIgorI2luY2x1
ZGUgIldlYkNvbXBvc2l0b3JJbml0aWFsaXplci5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+
Ci0jaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2Vi
VHJhbnNmb3JtYXRpb25NYXRyaXguaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC03
MCwxMSArNzAsMTEgQEAgcHJpdmF0ZToKIGNsYXNzIFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QgOiBw
dWJsaWMgdGVzdGluZzo6VGVzdCB7CiBwdWJsaWM6CiAgICAgVGlsZWRMYXllckNocm9taXVtVGVz
dCgpCi0gICAgICAgIDogbV9jb250ZXh0KFdlYktpdDo6Y3JlYXRlRmFrZUNDR3JhcGhpY3NDb250
ZXh0KCkpCisgICAgICAgIDogbV9jb21wb3NpdG9ySW5pdGlhbGl6ZXIoMCkKKyAgICAgICAgLCBt
X2NvbnRleHQoV2ViS2l0OjpjcmVhdGVGYWtlQ0NHcmFwaGljc0NvbnRleHQoKSkKICAgICAgICAg
LCBtX3RleHR1cmVNYW5hZ2VyKENDUHJpb3JpdGl6ZWRUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDYw
KjEwMjQqMTAyNCwgMTAyNCwgQ0NSZW5kZXJlcjo6Q29udGVudFBvb2wpKQogICAgICAgICAsIG1f
b2NjbHVzaW9uKDApCiAgICAgewotICAgICAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OmluaXRp
YWxpemUoMCk7CiAgICAgICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZEFuZE1haW5UaHJlYWRC
bG9ja2VkIGltcGxUaHJlYWRBbmRNYWluVGhyZWFkQmxvY2tlZDsKICAgICAgICAgbV9yZXNvdXJj
ZVByb3ZpZGVyID0gQ0NSZXNvdXJjZVByb3ZpZGVyOjpjcmVhdGUobV9jb250ZXh0LmdldCgpKTsK
ICAgICB9CkBAIC04MiwxMSArODIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+VGlsZWRMYXll
ckNocm9taXVtVGVzdCgpCiAgICAgewogICAgICAgICB0ZXh0dXJlTWFuYWdlckNsZWFyQWxsTWVt
b3J5KG1fdGV4dHVyZU1hbmFnZXIuZ2V0KCksIG1fcmVzb3VyY2VQcm92aWRlci5nZXQoKSk7Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZEFuZE1haW5UaHJl
YWRCbG9ja2VkIGltcGxUaHJlYWRBbmRNYWluVGhyZWFkQmxvY2tlZDsKLSAgICAgICAgICAgIG1f
cmVzb3VyY2VQcm92aWRlci5jbGVhcigpOwotICAgICAgICB9Ci0gICAgICAgIFdlYktpdDo6V2Vi
Q29tcG9zaXRvcjo6c2h1dGRvd24oKTsKKyAgICAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFk
QW5kTWFpblRocmVhZEJsb2NrZWQgaW1wbFRocmVhZEFuZE1haW5UaHJlYWRCbG9ja2VkOworICAg
ICAgICBtX3Jlc291cmNlUHJvdmlkZXIuY2xlYXIoKTsKICAgICB9CiAKICAgICAvLyBIZWxwZXIg
Y2xhc3NlcyBhbmQgZnVuY3Rpb25zIHRoYXQgc2V0IHRoZSBjdXJyZW50IHRocmVhZCB0byBiZSB0
aGUgaW1wbCB0aHJlYWQKQEAgLTE3MSw2ICsxNjgsNyBAQCBwdWJsaWM6CiAgICAgfQogCiBwdWJs
aWM6CisgICAgV2ViS2l0VGVzdHM6OldlYkNvbXBvc2l0b3JJbml0aWFsaXplciBtX2NvbXBvc2l0
b3JJbml0aWFsaXplcjsKICAgICBPd25QdHI8Q0NHcmFwaGljc0NvbnRleHQ+IG1fY29udGV4dDsK
ICAgICBPd25QdHI8Q0NSZXNvdXJjZVByb3ZpZGVyPiBtX3Jlc291cmNlUHJvdmlkZXI7CiAgICAg
Q0NUZXh0dXJlVXBkYXRlUXVldWUgbV9xdWV1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvV2ViQ29tcG9zaXRvckluaXRpYWxpemVyLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbml0aWFsaXplci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQw
ODkzYWVjZGM0ODViMzQwNjU2NzczMmRkMWY2ZmQ4Mjc3MzE4YTMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbml0aWFsaXplci5o
CkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgV2ViQ29tcG9zaXRvcklu
aXRpYWxpemVyX2gKKyNkZWZpbmUgV2ViQ29tcG9zaXRvckluaXRpYWxpemVyX2gKKworI2luY2x1
ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yU3Vw
cG9ydC5oPgorI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorCituYW1lc3BhY2UgV2ViS2l0
IHsKK2NsYXNzIFdlYlRocmVhZDsKK30KKworbmFtZXNwYWNlIFdlYktpdFRlc3RzIHsKKworY2xh
c3MgV2ViQ29tcG9zaXRvckluaXRpYWxpemVyIHsKKyAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShX
ZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIpOworcHVibGljOgorICAgIGV4cGxpY2l0IFdlYkNvbXBv
c2l0b3JJbml0aWFsaXplcihXZWJLaXQ6OldlYlRocmVhZCogdGhyZWFkKQorICAgIHsKKyAgICAg
ICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5pbml0
aWFsaXplKHRocmVhZCk7CisgICAgfQorCisgICAgfldlYkNvbXBvc2l0b3JJbml0aWFsaXplcigp
CisgICAgeworICAgICAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JT
dXBwb3J0KCktPnNodXRkb3duKCk7CisgICAgfQorfTsKKworfQorCisjZW5kaWYgLy8gV2ViQ29t
cG9zaXRvckluaXRpYWxpemVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNwcApp
bmRleCA4MmUzYjU0NmE1Mzc3M2ZjNjBjMWYzMmM1ZWVhOWFiZTUwNDRlYWE4Li4xYjA3N2VjNDIx
N2ViZGIxMWVjMmE4YjEwN2E0MzQ5OGMxNjdlZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
SW1wbFRlc3QuY3BwCkBAIC0zMCwxNCArMzAsMTQgQEAKICNpbmNsdWRlICJDQ0FjdGl2ZUdlc3R1
cmVBbmltYXRpb24uaCIKICNpbmNsdWRlICJDQ0lucHV0SGFuZGxlci5oIgogI2luY2x1ZGUgIkND
U2luZ2xlVGhyZWFkUHJveHkuaCIKKyNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIu
aCIKICNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50LmgiCiAjaW5jbHVk
ZSAiV2ViSW5wdXRFdmVudC5oIgorI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CisjaW5jbHVkZSA8
Z3Rlc3QvZ3Rlc3QuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvci5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJGbG9hdFBvaW50Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlBvaW50Lmg+
Ci0KLSNpbmNsdWRlIDxnbW9jay9nbW9jay5oPgotI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAj
aW5jbHVkZSA8d3RmL093blB0ci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwpAQCAtOTMs
NyArOTMsNyBAQCBwdWJsaWM6CiAKIFRFU1QoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGws
IGZyb21JZGVudGlmaWVyKQogewotICAgIFdlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUoMCk7Cisg
ICAgV2ViS2l0VGVzdHM6OldlYkNvbXBvc2l0b3JJbml0aWFsaXplciBpbml0aWFsaXplcigwKTsK
ICAgICBXZWJDb3JlOjpEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgYWx3YXlzSW1wbFRocmVhZDsK
IAogICAgIC8vIEJlZm9yZSBjcmVhdGluZyBhbnkgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcnMs
IGxvb2t1cHMgZm9yIGFueSB2YWx1ZSBzaG91bGQgZmFpbCBhbmQgbm90IGNyYXNoLgpAQCAtMTE0
LDI2ICsxMTQsMTMgQEAgVEVTVChXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCwgZnJvbUlk
ZW50aWZpZXIpCiAKICAgICAvLyBBZnRlciB0aGUgY29tcG9zaXRvciBpcyBkZXN0cm95ZWQsIGl0
cyBlbnRyeSBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIHRoZSBtYXAuCiAgICAgRVhQRUNUX0VRKDAs
IFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXI6OmZyb21JZGVudGlmaWVyKGNvbXBvc2l0b3JJZGVu
dGlmaWVyKSk7Ci0gICAgV2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKIH0KIAotY2xhc3MgV2Vi
Q29tcG9zaXRvckluaXRpYWxpemVyIHsKLXB1YmxpYzoKLSAgICBXZWJDb21wb3NpdG9ySW5pdGlh
bGl6ZXIoKQotICAgIHsKLSAgICAgICAgV2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKLSAg
ICB9Ci0KLSAgICB+V2ViQ29tcG9zaXRvckluaXRpYWxpemVyKCkKLSAgICB7Ci0gICAgICAgIFdl
YkNvbXBvc2l0b3I6OnNodXRkb3duKCk7Ci0gICAgfQotfTsKLQogY2xhc3MgV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGxUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgog
ICAgIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdCgpCi0gICAgICAgIDogbV9leHBl
Y3RlZERpc3Bvc2l0aW9uKERpZEhhbmRsZSkKKyAgICAgICAgOiBtX2luaXRpYWxpemVyKDApCisg
ICAgICAgICwgbV9leHBlY3RlZERpc3Bvc2l0aW9uKERpZEhhbmRsZSkKICAgICB7CiAgICAgICAg
IG1faW5wdXRIYW5kbGVyID0gV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmNyZWF0ZSgm
bV9tb2NrQ0NJbnB1dEhhbmRsZXJDbGllbnQpOwogICAgICAgICBtX2lucHV0SGFuZGxlci0+c2V0
Q2xpZW50KCZtX21vY2tDbGllbnQpOwpAQCAtMTc4LDcgKzE2NSw3IEBAIHByb3RlY3RlZDoKICAg
ICBNb2NrV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudCBtX21vY2tDbGllbnQ7CiAgICAg
V2ViR2VzdHVyZUV2ZW50IGdlc3R1cmU7CiAgICAgV2ViQ29yZTo6RGVidWdTY29wZWRTZXRJbXBs
VGhyZWFkIGFsd2F5c0ltcGxUaHJlYWQ7Ci0gICAgV2ViQ29tcG9zaXRvckluaXRpYWxpemVyIGlu
aXRpYWxpemVyOworICAgIFdlYktpdFRlc3RzOjpXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIgbV9p
bml0aWFsaXplcjsKIAogICAgIGVudW0gRXhwZWN0ZWREaXNwb3NpdGlvbiB7IERpZEhhbmRsZSwg
RGlkTm90SGFuZGxlLCBEcm9wRXZlbnQgfTsKICAgICBFeHBlY3RlZERpc3Bvc2l0aW9uIG1fZXhw
ZWN0ZWREaXNwb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvV2ViTGF5ZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5
ZXJUZXN0LmNwcAppbmRleCA1ODczYmFkNGJhMzg2MGIyOTkxMDBkNjhmMTdmZjNhMTgwOGQzZDYx
Li5lYjU0NGIyOWZkNGU4YzI1YWY2YTYxOTdhMzdkY2Y1NmMxNGQ5ZWIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVGVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJMYXllclRlc3QuY3BwCkBAIC0yNiw5ICsyNiw5IEBA
CiAjaW5jbHVkZSA8cHVibGljL1dlYkxheWVyLmg+CiAKICNpbmNsdWRlICJDb21wb3NpdG9yRmFr
ZVdlYkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvckluaXRpYWxp
emVyLmgiCiAjaW5jbHVkZSAiV2ViTGF5ZXJJbXBsLmgiCiAjaW5jbHVkZSAiV2ViTGF5ZXJUcmVl
Vmlld1Rlc3RDb21tb24uaCIKLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvci5oPgogI2lu
Y2x1ZGUgPHB1YmxpYy9XZWJDb250ZW50TGF5ZXIuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViQ29u
dGVudExheWVyQ2xpZW50Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkV4dGVybmFsVGV4dHVyZUxh
eWVyLmg+CkBAIC01OSwxMCArNTksMTMgQEAgcHVibGljOgogCiBjbGFzcyBXZWJMYXllclRlc3Qg
OiBwdWJsaWMgVGVzdCB7CiBwdWJsaWM6CisgICAgV2ViTGF5ZXJUZXN0KCkKKyAgICAgICAgOiBt
X2NvbXBvc2l0b3JJbml0aWFsaXplcigwKQorICAgIHsKKyAgICB9CisKICAgICB2aXJ0dWFsIHZv
aWQgU2V0VXAoKQogICAgIHsKLSAgICAgICAgLy8gSW5pdGlhbGl6ZSB3aXRob3V0IHRocmVhZGlu
ZyBzdXBwb3J0LgotICAgICAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUoMCk7
CiAgICAgICAgIG1fcm9vdExheWVyID0gYWRvcHRQdHIoV2ViTGF5ZXI6OmNyZWF0ZSgpKTsKICAg
ICAgICAgRVhQRUNUX0NBTEwobV9jbGllbnQsIHNjaGVkdWxlQ29tcG9zaXRlKCkpLlRpbWVzKEFu
eU51bWJlcigpKTsKICAgICAgICAgRVhQRUNUX1RSVUUobV92aWV3ID0gYWRvcHRQdHIoV2ViTGF5
ZXJUcmVlVmlldzo6Y3JlYXRlKCZtX2NsaWVudCwgKm1fcm9vdExheWVyLCBXZWJMYXllclRyZWVW
aWV3OjpTZXR0aW5ncygpKSkpOwpAQCAtNzUsMTAgKzc4LDEwIEBAIHB1YmxpYzoKICAgICAgICAg
RVhQRUNUX0NBTEwobV9jbGllbnQsIHNjaGVkdWxlQ29tcG9zaXRlKCkpLlRpbWVzKEFueU51bWJl
cigpKTsKICAgICAgICAgbV9yb290TGF5ZXIuY2xlYXIoKTsKICAgICAgICAgbV92aWV3LmNsZWFy
KCk7Ci0gICAgICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKICAgICB9CiAK
IHByb3RlY3RlZDoKKyAgICBXZWJLaXRUZXN0czo6V2ViQ29tcG9zaXRvckluaXRpYWxpemVyIG1f
Y29tcG9zaXRvckluaXRpYWxpemVyOwogICAgIE1vY2tXZWJMYXllclRyZWVWaWV3Q2xpZW50IG1f
Y2xpZW50OwogICAgIE93blB0cjxXZWJMYXllcj4gbV9yb290TGF5ZXI7CiAgICAgT3duUHRyPFdl
YkxheWVyVHJlZVZpZXc+IG1fdmlldzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9XZWJMYXllclRyZWVWaWV3VGVzdC5jcHAKaW5kZXggNmFkMTdmNTYwZjdhOWJiYzBk
YmMzYTQ5MTQyOGJkODQ5NmE0ZTJhYS4uYzEzNmUwMWJlYjA4NjU2MTNiZDY0MDk4NmVmMTJkYmJi
MWZkYWIzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJMYXll
clRyZWVWaWV3VGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJM
YXllclRyZWVWaWV3VGVzdC5jcHAKQEAgLTMxLDcgKzMxLDcgQEAKICNpbmNsdWRlICJXZWJMYXll
clRyZWVWaWV3VGVzdENvbW1vbi5oIgogI2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CiAjaW5jbHVk
ZSA8cHVibGljL1BsYXRmb3JtLmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3IuaD4K
KyNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaD4KICNpbmNsdWRlIDxwdWJs
aWMvV2ViTGF5ZXIuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5o
PgogI2luY2x1ZGUgPHB1YmxpYy9XZWJUaHJlYWQuaD4KQEAgLTczLDcgKzczLDcgQEAgcHVibGlj
OgogCiAgICAgICAgIG1fcm9vdExheWVyLmNsZWFyKCk7CiAgICAgICAgIG1fdmlldy5jbGVhcigp
OwotICAgICAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNodXRkb3duKCk7CisgICAgICAgIFdl
YktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+c2h1dGRvd24o
KTsKICAgICB9CiAKIHByb3RlY3RlZDoKQEAgLTkwLDcgKzkwLDcgQEAgcHJvdGVjdGVkOgogCiAg
ICAgdmlydHVhbCB2b2lkIGluaXRpYWxpemVDb21wb3NpdG9yKCkgT1ZFUlJJREUKICAgICB7Ci0g
ICAgICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKKyAgICAgICAgV2Vi
S2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5pbml0aWFsaXpl
KDApOwogICAgIH0KIAogICAgIHZpcnR1YWwgV2ViTGF5ZXJUcmVlVmlld0NsaWVudCogY2xpZW50
KCkgT1ZFUlJJREUKQEAgLTE2OSw3ICsxNjksNyBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2
b2lkIGluaXRpYWxpemVDb21wb3NpdG9yKCkgT1ZFUlJJREUKICAgICB7CiAgICAgICAgIG1fd2Vi
VGhyZWFkID0gYWRvcHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5jcmVhdGVUaHJl
YWQoIldlYkxheWVyVHJlZVZpZXdUZXN0IikpOwotICAgICAgICBXZWJDb21wb3NpdG9yOjppbml0
aWFsaXplKG1fd2ViVGhyZWFkLmdldCgpKTsKKyAgICAgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3Vy
cmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5pbml0aWFsaXplKG1fd2ViVGhyZWFkLmdldCgp
KTsKICAgICB9CiAKICAgICB2aXJ0dWFsIFdlYkxheWVyVHJlZVZpZXdDbGllbnQqIGNsaWVudCgp
IE9WRVJSSURFCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggY2I4MjdmZGFjOTFhNDE4NTQxNDIxZjNjMWI3YmRkNGQ5M2E5MjQyZi4uZDBjOTI3Mjc3
ZjU1OTAzNWNlMzQ2NTcyNWEwNmJkODg3NjI4NzY3MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA5LTA2ICBK
YW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgW2Nocm9taXVt
XSBVc2UgV2ViQ29tcG9zaXRvclN1cHBvcnQgZnVuY3Rpb25zIGluc3RlYWQgb2YgV2ViQ29tcG9z
aXRvciBzdGF0aWNzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05NjAwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEZpeGVzIGluaXRpYWxpemF0aW9uIC8gc2V0dGluZ3MgY29kZSB0byB1c2UgV2ViQ29tcG9z
aXRvclN1cHBvcnQuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVu
ZGVyVHJlZS5jcHA6CisgICAgICAgIChtYWluKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAgICAoVGVzdFNoZWxsOjppbml0aWFsaXplKToK
KyAgICAgICAgKFRlc3RTaGVsbDo6c2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZCk6CisKIDIwMTIt
MDktMDYgIFNpbW9uIEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgogCiAgICAg
ICAgIFtRdF0gRml4IGJ1aWxkIG9uIE1hYyBPUyBYIDEwLjYKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA5YThiZDdmZDQyZTdjYjhh
ODQ0ZDlhM2NhMjIxMjBlOWQ5N2EyOThlLi5iZWUxNzc3YzZmZGU3OTNjZTc4YTdjZDZmYmEyZmJk
Y2Q2YWQ5YTMzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1w
UmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJl
bmRlclRyZWUuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiTW9ja1dlYktpdFBsYXRm
b3JtU3VwcG9ydC5oIgogI2luY2x1ZGUgIlRlc3RTaGVsbC5oIgogI2luY2x1ZGUgIndlYmtpdC9z
dXBwb3J0L3dlYmtpdF9zdXBwb3J0LmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3Iu
aD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvclN1cHBvcnQuaD4KICNpbmNsdWRlIDx2
OC9pbmNsdWRlL3Y4LXRlc3RpbmcuaD4KICNpbmNsdWRlIDx2OC9pbmNsdWRlL3Y4Lmg+CiAjaW5j
bHVkZSA8d3RmL093blB0ci5oPgpAQCAtMjU5LDcgKzI1OSw3IEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyKiBhcmd2W10pCiAgICAgfQogCiAgICAgLy8gU2h1dGRvd24gV2ViQ29tcG9zaXRvciBh
ZnRlciBUZXN0U2hlbGwgaXMgZGVzdHJ1Y3RlZCBwcm9wZXJseS4KLSAgICBXZWJLaXQ6OldlYkNv
bXBvc2l0b3I6OnNodXRkb3duKCk7CisgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgpLT5j
b21wb3NpdG9yU3VwcG9ydCgpLT5zaHV0ZG93bigpOwogCiAgICAgcmV0dXJuIEVYSVRfU1VDQ0VT
UzsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVs
bC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4
IDlhYmIxM2ZhYzQzNjg1OGUwYTk5MDI0Njc4ZGM2ZWQ2OTEwZmIxYjEuLmU1ZTlkZWQ2YWUzMGYx
OWVhY2I1ZWYwODRmOGQ4N2M5YzRlNDYzYmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFNoZWxsLmNwcApAQCAtNTMsNyArNTMsNyBAQAogI2luY2x1ZGUgIndlYmtpdC9z
dXBwb3J0L3dlYmtpdF9zdXBwb3J0LmgiCiAjaW5jbHVkZSAid2Via2l0L3N1cHBvcnQvd2Via2l0
X3N1cHBvcnRfZ2Z4LmgiCiAjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+Ci0jaW5jbHVkZSA8
cHVibGljL1dlYkNvbXBvc2l0b3IuaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvclN1
cHBvcnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViUG9pbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMv
V2ViU2l6ZS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJTdHJpbmcuaD4KQEAgLTE2MiwxMSArMTYy
LDkgQEAgdm9pZCBUZXN0U2hlbGw6OmluaXRpYWxpemUoKQogCiAgICAgV1RGOjppbml0aWFsaXpl
VGhyZWFkaW5nKCk7CiAKLSAgICBpZiAobV90aHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCkgewor
ICAgIGlmIChtX3RocmVhZGVkQ29tcG9zaXRpbmdFbmFibGVkKQogICAgICAgICBtX3dlYkNvbXBv
c2l0b3JUaHJlYWQgPSBhZG9wdFB0cihXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmNyZWF0
ZVRocmVhZCgiQ29tcG9zaXRvciIpKTsKLSAgICAgICAgV2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6
ZShtX3dlYkNvbXBvc2l0b3JUaHJlYWQuZ2V0KCkpOwotICAgIH0gZWxzZQotICAgICAgICBXZWJD
b21wb3NpdG9yOjppbml0aWFsaXplKDApOworICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQo
KS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+aW5pdGlhbGl6ZShtX3dlYkNvbXBvc2l0b3JUaHJlYWQu
Z2V0KCkpOwogCiAgICAgY3JlYXRlTWFpbldpbmRvdygpOwogfQpAQCAtMzgxLDcgKzM3OSw3IEBA
IHZvaWQgVGVzdFNoZWxsOjp0ZXN0VGltZWRPdXQoKQogCiB2b2lkIFRlc3RTaGVsbDo6c2V0UGVy
VGlsZVBhaW50aW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiB7Ci0gICAgV2ViQ29tcG9zaXRvcjo6
c2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChlbmFibGVkKTsKKyAgICBQbGF0Zm9ybTo6Y3VycmVu
dCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5zZXRQZXJUaWxlUGFpbnRpbmdFbmFibGVkKGVuYWJs
ZWQpOwogfQogCiBzdGF0aWMgc3RyaW5nIGR1bXBEb2N1bWVudFRleHQoV2ViRnJhbWUqIGZyYW1l
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162576</attachid>
            <date>2012-09-06 13:53:51 -0700</date>
            <delta_ts>2012-09-06 16:17:37 -0700</delta_ts>
            <desc>for ews</desc>
            <filename>bug-96007-20120906135331.patch</filename>
            <type>text/plain</type>
            <size>45729</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NzYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvUGxhdGZvcm0v
Q2hhbmdlTG9nIGIvU291cmNlL1BsYXRmb3JtL0NoYW5nZUxvZwppbmRleCA3NjQ4ZmIwMzEyYzli
ZTk1OWE2ZTRhNDljODU0M2VlMGIwYWI3ZmIzLi5lN2ExN2Q2YzRmMDBiYzVmMGIxODIyOTFjMTFl
MDM0Njg4OTUxMDdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvUGxhdGZvcm0vQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9QbGF0Zm9ybS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wOS0wNiAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1
bV0gVXNlIFdlYkNvbXBvc2l0b3JTdXBwb3J0IGZ1bmN0aW9ucyBpbnN0ZWFkIG9mIFdlYkNvbXBv
c2l0b3Igc3RhdGljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTYwMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBVcGRhdGVzIGNvbW1lbnQgdG8gcmVmZXJlbmNlIFdlYkNvbXBvc2l0b3JTdXBwb3J0IGlu
c3RlYWQgb2YgV2ViQ29tcG9zaXRvci4KKworICAgICAgICAqIGNocm9taXVtL3B1YmxpYy9XZWJM
YXllclRyZWVWaWV3Lmg6CisgICAgICAgIChXZWJMYXllclRyZWVWaWV3KToKKwogMjAxMi0wOS0w
NSAgS2VuaWNoaSBJc2hpYmFzaGkgIDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEyNzYxMiwgcjEyNzY2MCwgYW5kIHIxMjc2NjQuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggYmRlNzA0NjUzMWE3Y2JjZGQwMGVmMGY5OGI2ODc5NjBlZTQyOTI2OC4uZjY5MjM1
NDZmY2RlZDM2YTcxMDNkNDIyNDAyYWJkZWJmYmJlZWVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDEyLTA5LTA2ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgW2Nocm9taXVtXSBVc2UgV2ViQ29tcG9zaXRvclN1cHBvcnQgZnVuY3Rpb25z
IGluc3RlYWQgb2YgV2ViQ29tcG9zaXRvciBzdGF0aWNzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjAwNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENhbGxzIFdlYkNvbXBvc2l0b3JTdXBwb3J0IGZ1bmN0
aW9ucyBpbnN0ZWFkIG9mIFdlYkNvbXBvc2l0b3Igc3RhdGljcy4KKworICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0NhbnZhczJETGF5ZXJCcmlkZ2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q2FudmFzMkRMYXllckJyaWRnZTo6Q2FudmFzMkRMYXllckJyaWRnZSk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRHJhd2luZ0J1ZmZlckNocm9taXVtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYXdpbmdCdWZmZXI6OkRyYXdpbmdCdWZmZXIpOgorCiAy
MDEyLTA5LTA1ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgU2hhcmVkR3JhcGhpY3NDb250ZXh0M0Qgc2hvdWxkbid0IGRlcGVuZCBvbiBDQ1Byb3h5CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDA3Mzk3N2M4M2E1M2U3OWY5NjUxZTYxYjg0NDU4
OTFmZjA5NzNiZjQuLjg4NmM4MzIzNDA0M2NhYjc0ZGIzMzI5YzA4NTQ4Y2YxN2M0NjI4ZDAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMTItMDktMDYgIEph
bWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21pdW1d
IFVzZSBXZWJDb21wb3NpdG9yU3VwcG9ydCBmdW5jdGlvbnMgaW5zdGVhZCBvZiBXZWJDb21wb3Np
dG9yIHN0YXRpY3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk2MDA3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXBkYXRlcyBtYW55IHRlc3RzIHRvIGluaXRpYWxpemUgLyBzaHV0ZG93biBjb21wb3NpdGlu
ZyB3aXRoIFdlYkNvbXBvc2l0b3JTdXBwb3J0LiBBZGRzIGEKKyAgICAgICAgV2ViQ29tcG9zaXRv
ckluaXRpYWxpemVyIFJBSUkgY2xhc3MgdG8gc2ltcGxpZnkgdGhpcyBzb21ld2hhdCB0ZWRpb3Vz
IHByb2Nlc3MuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lwaToKKyAgICAgICAgKiBwdWJsaWMvV2Vi
Q29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudC5oOgorICAgICAgICAoV2ViQ29tcG9zaXRvcklu
cHV0SGFuZGxlckNsaWVudCk6CisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRs
ZXJJbXBsLmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OmNvbXBvc2l0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpzY2hlZHVsZUFuaW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY2hl
ZHVsZUNvbXBvc2l0ZSk6CisgICAgICAgICogdGVzdHMvQ0NQcmlvcml0aXplZFRleHR1cmVUZXN0
LmNwcDoKKyAgICAgICAgKFdURjo6Q0NQcmlvcml0aXplZFRleHR1cmVUZXN0OjpDQ1ByaW9yaXRp
emVkVGV4dHVyZVRlc3QpOgorICAgICAgICAoV1RGOjpDQ1ByaW9yaXRpemVkVGV4dHVyZVRlc3Q6
On5DQ1ByaW9yaXRpemVkVGV4dHVyZVRlc3QpOgorICAgICAgICAoQ0NQcmlvcml0aXplZFRleHR1
cmVUZXN0KToKKyAgICAgICAgKiB0ZXN0cy9DQ1JlbmRlcmVyR0xUZXN0LmNwcDoKKyAgICAgICAg
KENDUmVuZGVyZXJHTFRlc3Q6OkNDUmVuZGVyZXJHTFRlc3QpOgorICAgICAgICAoQ0NSZW5kZXJl
ckdMVGVzdDo6U2V0VXApOgorICAgICAgICAoQ0NSZW5kZXJlckdMVGVzdCk6CisgICAgICAgICog
dGVzdHMvQ0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuY3BwOgorICAgICAgICAqIHRlc3Rz
L0NDVGhyZWFkZWRUZXN0LmNwcDoKKyAgICAgICAgKFdlYktpdFRlc3RzOjpDQ1RocmVhZGVkVGVz
dDo6cnVuVGVzdCk6CisgICAgICAgICogdGVzdHMvQ2FudmFzMkRMYXllckJyaWRnZVRlc3QuY3Bw
OgorICAgICAgICAoQ2FudmFzMkRMYXllckJyaWRnZVRlc3Q6OmZ1bGxMaWZlY3ljbGVUZXN0KToK
KyAgICAgICAgKiB0ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6R3JhcGhpY3NMYXllckNocm9taXVtVGVzdDo6R3JhcGhpY3NMYXllckNocm9taXVt
VGVzdCk6CisgICAgICAgIChXZWJLaXQ6OkdyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3Q6On5HcmFw
aGljc0xheWVyQ2hyb21pdW1UZXN0KToKKyAgICAgICAgKiB0ZXN0cy9MYXllckNocm9taXVtVGVz
dC5jcHA6CisgICAgICAgICogdGVzdHMvTGlua0hpZ2hsaWdodFRlc3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6VEVTVCk6CisgICAgICAgICogdGVzdHMvVGV4dHVyZUxheWVyQ2hyb21pdW1UZXN0
LmNwcDoKKyAgICAgICAgKiB0ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcDoKKyAgICAg
ICAgKiB0ZXN0cy9XZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIuaDogQWRkZWQuCisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViS2l0VGVzdHMpOgorICAgICAgICAoV2ViQ29tcG9zaXRvcklu
aXRpYWxpemVyKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpXZWJDb21wb3NpdG9ySW5pdGlhbGl6
ZXI6OldlYkNvbXBvc2l0b3JJbml0aWFsaXplcik6CisgICAgICAgIChXZWJLaXRUZXN0czo6V2Vi
Q29tcG9zaXRvckluaXRpYWxpemVyOjp+V2ViQ29tcG9zaXRvckluaXRpYWxpemVyKToKKyAgICAg
ICAgKiB0ZXN0cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpURVNUKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklucHV0SGFu
ZGxlckltcGxUZXN0OjpXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QpOgorICAgICAg
ICAoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0KToKKyAgICAgICAgKiB0ZXN0cy9X
ZWJMYXllclRlc3QuY3BwOgorICAgICAgICAqIHRlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0LmNw
cDoKKwogMjAxMi0wOS0wNSAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFBhcnQgMiBvZiByZW1vdmluZyBQbGF0Zm9ybVN0cmluZy5oLCByZW1vdmUgUGxhdGZvcm1TdHJp
bmcuaApkaWZmIC0tZ2l0IGEvU291cmNlL1BsYXRmb3JtL2Nocm9taXVtL3B1YmxpYy9XZWJMYXll
clRyZWVWaWV3LmggYi9Tb3VyY2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJl
ZVZpZXcuaAppbmRleCA0OTE4Mzc5YmY0OGEwYjk4NjRiMmVhNThhNmM1MGQwNTIzNDM3M2U0Li40
MGEzYmJkMmU5Njc3Yjk4MmM4ODNhYTYyNWRhMjM2MTZmZDBkMDhiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaAorKysgYi9Tb3Vy
Y2UvUGxhdGZvcm0vY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaApAQCAtMTMzLDcg
KzEzMyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgY29tbWl0UmVxdWVzdGVkKCkgY29u
c3QgPSAwOwogCiAgICAgLy8gVHJpZ2dlcnMgYSBjb21wb3NpdGluZyBwYXNzLiBJZiB0aGUgY29t
cG9zaXRvciB0aHJlYWQgd2FzIG5vdAotICAgIC8vIGVuYWJsZWQgdmlhIFdlYkNvbXBvc2l0b3I6
OmluaXRpYWxpemUsIHRoZSBjb21wb3NpdGluZyBwYXNzIGhhcHBlbnMKKyAgICAvLyBlbmFibGVk
IHZpYSBXZWJDb21wb3NpdG9yU3VwcG9ydDo6aW5pdGlhbGl6ZSwgdGhlIGNvbXBvc2l0aW5nIHBh
c3MgaGFwcGVucwogICAgIC8vIGltbWVkaWF0ZWx5LiBJZiBpdCBpcyBlbmFibGVkLCB0aGUgY29t
cG9zaXRpbmcgcGFzcyB3aWxsIGhhcHBlbiBhdCBhCiAgICAgLy8gbGF0ZXIgdGltZS4gQmVmb3Jl
IHRoZSBjb21wb3NpdGluZyBwYXNzIGhhcHBlbnMgKGkuZS4gYmVmb3JlIGNvbXBvc2l0ZSgpCiAg
ICAgLy8gcmV0dXJucyB3aGVuIHRoZSBjb21wb3NpdG9yIHRocmVhZCBpcyBkaXNhYmxlZCksIFdl
YkNvbnRlbnRMYXllcnMgd2lsbCBiZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vQ2FudmFzMkRMYXllckJyaWRnZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNwcApp
bmRleCAxMjMwM2UzNjBlMzczZmI0MjQ5MjBhNTE0YTkwYWNjZjBkNjZmMzA1Li4xMjZkNjJkODJl
YTQ1NGU0Zjk4ZTJhZDM5NWU4ZTkzMjVjZjhmYWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVyQnJpZGdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9DYW52YXMyRExheWVy
QnJpZGdlLmNwcApAQCAtMzUsNyArMzUsNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDaHJv
bWl1bS5oIgogI2luY2x1ZGUgIlRyYWNlRXZlbnQuaCIKICNpbmNsdWRlIDxwdWJsaWMvUGxhdGZv
cm0uaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvci5oPgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJHcmFwaGljc0Nv
bnRleHQzRC5oPgogCkBAIC00NywxMSArNDYsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIENh
bnZhczJETGF5ZXJCcmlkZ2U6OkNhbnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGlj
c0NvbnRleHQzRD4gY29udGV4dCwgY29uc3QgSW50U2l6ZSYgc2l6ZSwgRGVmZXJyYWxNb2RlIGRl
ZmVycmFsTW9kZSwgdW5zaWduZWQgdGV4dHVyZUlkKQogICAgIDogbV9kZWZlcnJhbE1vZGUoZGVm
ZXJyYWxNb2RlKQotICAgIC8vIEZJWE1FOiBXZSBjdXJyZW50bHkgdHVybiBvZmYgZG91YmxlIGJ1
ZmZlcmluZyB3aGVuIGNhbnZhcyByZW5kZXJpbmcgaXMKLSAgICAvLyBkZWZlcnJlZC4gV2hhdCB3
ZSBzaG91bGQgYmUgZG9pbmcgaXMgdG8gdXNlIGEgc21hcnRlciBoZXVyaXN0aWMgYmFzZWQKLSAg
ICAvLyBvbiBHUFUgcmVzb3VyY2UgbW9uaXRvcmluZyBhbmQgb3RoZXIgZmFjdG9ycyB0byBjaG9z
ZSBiZXR3ZWVuIHNpbmdsZQotICAgIC8vIGFuZCBkb3VibGUgYnVmZmVyaW5nLgotICAgICwgbV91
c2VEb3VibGVCdWZmZXJpbmcoV2ViS2l0OjpXZWJDb21wb3NpdG9yOjppc1RocmVhZGluZ0VuYWJs
ZWQoKSAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQpCiAgICAgLCBtX2Zyb250QnVmZmVy
VGV4dHVyZSgwKQogICAgICwgbV9iYWNrQnVmZmVyVGV4dHVyZSh0ZXh0dXJlSWQpCiAgICAgLCBt
X3NpemUoc2l6ZSkKQEAgLTYxLDYgKzU1LDEzIEBAIENhbnZhczJETGF5ZXJCcmlkZ2U6OkNhbnZh
czJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQzRD4gY29udGV4dCwKICAg
ICAsIG1fbmV4dCgwKQogICAgICwgbV9wcmV2KDApCiB7CisgICAgYm9vbCBjb21wb3NpdG9yVGhy
ZWFkaW5nRW5hYmxlZCA9IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1
cHBvcnQoKS0+aXNUaHJlYWRpbmdFbmFibGVkKCk7CisgICAgLy8gRklYTUU6IFdlIGN1cnJlbnRs
eSB0dXJuIG9mZiBkb3VibGUgYnVmZmVyaW5nIHdoZW4gY2FudmFzIHJlbmRlcmluZyBpcworICAg
IC8vIGRlZmVycmVkLiBXaGF0IHdlIHNob3VsZCBiZSBkb2luZyBpcyB0byB1c2UgYSBzbWFydGVy
IGhldXJpc3RpYyBiYXNlZAorICAgIC8vIG9uIEdQVSByZXNvdXJjZSBtb25pdG9yaW5nIGFuZCBv
dGhlciBmYWN0b3JzIHRvIGNob3NlIGJldHdlZW4gc2luZ2xlCisgICAgLy8gYW5kIGRvdWJsZSBi
dWZmZXJpbmcuCisgICAgbV91c2VEb3VibGVCdWZmZXJpbmcgPSBjb21wb3NpdG9yVGhyZWFkaW5n
RW5hYmxlZCAmJiBkZWZlcnJhbE1vZGUgPT0gTm9uRGVmZXJyZWQ7CisKICAgICBpZiAobV91c2VE
b3VibGVCdWZmZXJpbmcpIHsKICAgICAgICAgbV9jb250ZXh0LT5tYWtlQ29udGV4dEN1cnJlbnQo
KTsKICAgICAgICAgR0xDKG1fY29udGV4dC5nZXQoKSwgbV9mcm9udEJ1ZmZlclRleHR1cmUgPSBt
X2NvbnRleHQtPmNyZWF0ZVRleHR1cmUoKSk7CkBAIC04Miw3ICs4Myw3IEBAIENhbnZhczJETGF5
ZXJCcmlkZ2U6OkNhbnZhczJETGF5ZXJCcmlkZ2UoUGFzc1JlZlB0cjxHcmFwaGljc0NvbnRleHQz
RD4gY29udGV4dCwKICAgICAgICAgbV9sYXllciA9IGFkb3B0UHRyKFdlYktpdDo6V2ViRXh0ZXJu
YWxUZXh0dXJlTGF5ZXI6OmNyZWF0ZSh0aGlzKSk7CiAKICAgICBtX2xheWVyLT5zZXRUZXh0dXJl
SWQodGV4dHVyZUlkKTsKLSAgICBtX2xheWVyLT5zZXRSYXRlTGltaXRDb250ZXh0KCFXZWJLaXQ6
OldlYkNvbXBvc2l0b3I6OmlzVGhyZWFkaW5nRW5hYmxlZCgpIHx8IG1fdXNlRG91YmxlQnVmZmVy
aW5nKTsKKyAgICBtX2xheWVyLT5zZXRSYXRlTGltaXRDb250ZXh0KCFjb21wb3NpdG9yVGhyZWFk
aW5nRW5hYmxlZCB8fCBtX3VzZURvdWJsZUJ1ZmZlcmluZyk7CiAgICAgR3JhcGhpY3NMYXllckNo
cm9taXVtOjpyZWdpc3RlckNvbnRlbnRzTGF5ZXIobV9sYXllci0+bGF5ZXIoKSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RyYXdp
bmdCdWZmZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9EcmF3aW5nQnVmZmVyQ2hyb21pdW0uY3BwCmluZGV4IGY1ZDNjODljN2I4N2E3N2Iw
MDNiOWJmYTAzODBjNDMyZjk4ODAyNDUuLmJhNDk1ZWRkZTIxZjc3MWMzZmE0NTM2YTYyY2Q5MzRm
NzFhMzAzODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0RyYXdpbmdCdWZmZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRHJhd2luZ0J1ZmZlckNocm9taXVtLmNwcApAQCAtMzks
NyArMzksNiBAQAogI2luY2x1ZGUgIkdyYXBoaWNzTGF5ZXJDaHJvbWl1bS5oIgogI2luY2x1ZGUg
PGFsZ29yaXRobT4KICNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KLSNpbmNsdWRlIDxwdWJs
aWMvV2ViQ29tcG9zaXRvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9y
dC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllci5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJFeHRlcm5hbFRleHR1cmVMYXllckNsaWVudC5oPgpAQCAtODQsNyArODMs
NiBAQCBEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEKiBjb250
ZXh0LAogICAgICwgbV9mYm8oMCkKICAgICAsIG1fY29sb3JCdWZmZXIoMCkKICAgICAsIG1fZnJv
bnRDb2xvckJ1ZmZlcigwKQotICAgICwgbV9zZXBhcmF0ZUZyb250VGV4dHVyZShtX3ByZXNlcnZl
RHJhd2luZ0J1ZmZlciA9PSBQcmVzZXJ2ZSB8fCBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OmlzVGhy
ZWFkaW5nRW5hYmxlZCgpKQogICAgICwgbV9kZXB0aFN0ZW5jaWxCdWZmZXIoMCkKICAgICAsIG1f
ZGVwdGhCdWZmZXIoMCkKICAgICAsIG1fc3RlbmNpbEJ1ZmZlcigwKQpAQCAtOTIsNiArOTAsOSBA
QCBEcmF3aW5nQnVmZmVyOjpEcmF3aW5nQnVmZmVyKEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0
LAogICAgICwgbV9tdWx0aXNhbXBsZUNvbG9yQnVmZmVyKDApCiAgICAgLCBtX2NvbnRlbnRzQ2hh
bmdlZCh0cnVlKQogeworICAgIC8vIFdlIG5lZWQgYSBzZXBhcmF0ZSBmcm9udCBhbmQgYmFjayB0
ZXh0dXJlcyBpZiAuLi4KKyAgICBtX3NlcGFyYXRlRnJvbnRUZXh0dXJlID0gbV9wcmVzZXJ2ZURy
YXdpbmdCdWZmZXIgPT0gUHJlc2VydmUgLy8gLi4uIHdlIGhhdmUgdG8gcHJlc2VydmUgY29udGVu
dHMgYWZ0ZXIgY29tcG9zaXRpbmcsIHdoaWNoIGlzIGRvbmUgd2l0aCBhIGNvcHkgb3IgLi4uCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQo
KS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+aXNUaHJlYWRpbmdFbmFibGVkKCk7IC8vIC4uLiBpZiB3
ZSdyZSBpbiB0aHJlYWRlZCBtb2RlIGFuZCBuZWVkIHRvIGRvdWJsZSBidWZmZXIuCiAgICAgaW5p
dGlhbGl6ZShzaXplKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggNjZh
OTlkOTY0MmRjZmE2ZDY2ODIyNjJiMDc4YzI2NDkzYWRmZTEyNC4uZTA0MTFjMjYxNmE5MDExZjQy
Y2QwMmM0MjE2OWMwNjA1YTM1NDdkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBA
IC0xMDIsNiArMTAyLDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9VUkxUZXN0SGVscGVycy5jcHAn
LAogICAgICAgICAgICAgJ3Rlc3RzL1VSTFRlc3RIZWxwZXJzLmgnLAogICAgICAgICAgICAgJ3Rl
c3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAnLAorICAgICAgICAgICAg
J3Rlc3RzL1dlYkNvbXBvc2l0b3JJbml0aWFsaXplci5oJywKICAgICAgICAgICAgICd0ZXN0cy9X
ZWJGcmFtZVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9XZWJNZWRpYVBsYXllckNsaWVu
dEltcGxUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViUGFnZU5ld1NlcmlhbGl6ZXJU
ZXN0LmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50LmgKaW5kZXggN2M5MTFkOGY4ZWMw
MzAxZDZlMWVhYTUyNjQ3Mjg3NWMyNGQ4OWIzYS4uYTRjNGY2MmMzOTdiYWM4ZDY2MTcyMTQzOTYx
N2M3NzZlMzBhYzUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQuaApAQCAtMzUsMTIg
KzM1LDEyIEBAIHB1YmxpYzoKICAgICAvLyBDYWxsYmFja3MgaW52b2tlZCBmcm9tIHRoZSBjb21w
b3NpdG9yIHRocmVhZC4KICAgICB2aXJ0dWFsIHZvaWQgd2lsbFNodXRkb3duKCkgPSAwOwogCi0g
ICAgLy8gRXhhY3RseSBvbmUgb2YgdGhlIGZvbGxvd2luZyB0d28gY2FsbGJhY2tzIHdpbGwgYmUg
aW52b2tlZCBhZnRlciBldmVyeSBjYWxsIHRvIFdlYkNvbXBvc2l0b3I6OmhhbmRsZUlucHV0RXZl
bnQoKToKKyAgICAvLyBFeGFjdGx5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHR3byBjYWxsYmFja3Mg
d2lsbCBiZSBpbnZva2VkIGFmdGVyIGV2ZXJ5IGNhbGwgdG8gV2ViQ29tcG9zaXRvcklucHV0SGFu
ZGxlcjo6aGFuZGxlSW5wdXRFdmVudCgpOgogCi0gICAgLy8gQ2FsbGVkIHdoZW4gdGhlIFdlYkNv
bXBvc2l0b3IgaGFuZGxlZCB0aGUgaW5wdXQgZXZlbnQgYW5kIG5vIGZ1cnRoZXIgcHJvY2Vzc2lu
ZyBpcyByZXF1aXJlZC4KKyAgICAvLyBDYWxsZWQgd2hlbiB0aGUgV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlciBoYW5kbGVkIHRoZSBpbnB1dCBldmVudCBhbmQgbm8gZnVydGhlciBwcm9jZXNzaW5n
IGlzIHJlcXVpcmVkLgogICAgIHZpcnR1YWwgdm9pZCBkaWRIYW5kbGVJbnB1dEV2ZW50KCkgPSAw
OwogCi0gICAgLy8gQ2FsbGVkIHdoZW4gdGhlIFdlYkNvbXBvc2l0b3IgZGlkIG5vdCBoYW5kbGUg
dGhlIGlucHV0IGV2ZW50LiBJZiBzZW5kVG9XaWRnZXQgaXMgdHJ1ZSwgdGhlIGlucHV0IGV2ZW50
CisgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXIgZGlkIG5v
dCBoYW5kbGUgdGhlIGlucHV0IGV2ZW50LiBJZiBzZW5kVG9XaWRnZXQgaXMgdHJ1ZSwgdGhlIGlu
cHV0IGV2ZW50CiAgICAgLy8gc2hvdWxkIGJlIGZvcndhcmRlZCB0byB0aGUgV2ViV2lkZ2V0IGFz
c29jaWF0ZWQgd2l0aCB0aGlzIGNvbXBvc2l0b3IgZm9yIGZ1cnRoZXIgcHJvY2Vzc2luZy4KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlSW5wdXRFdmVudChib29sIHNlbmRUb1dpZGdldCkg
PSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGwuaAppbmRleCA5NDc0YjIxOTM3NmVmNTJjNzFkMTkwOGVk
M2YzOTNhYTA4NDJiNWUyLi5jOWZlZWVmNmUzMjkwM2YzMTUwZDVlNjZlZDYxZWVkNTFiMjRmMTJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVySW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBv
c2l0b3JJbnB1dEhhbmRsZXJJbXBsLmgKQEAgLTMxLDcgKzMxLDYgQEAKICNpbmNsdWRlICJXZWJB
Y3RpdmVXaGVlbEZsaW5nUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbnB1
dEhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50LmgiCi0jaW5jbHVkZSA8cHVibGlj
L1dlYkNvbXBvc2l0b3IuaD4KICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0
Zi9Ob25jb3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA0ZmI0NTFhZmJkYjhiZGFjMTAyYTE5
Yjk0Y2RjN2JhNTQ5NGI0MmNjLi5kY2Y0ZWNhZjM5Y2NmZGMwNzVjMjY4ZGFlNjgyOWM0NzExYzU5
MmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0x
MjUsNyArMTI1LDYgQEAKICNpbmNsdWRlICJXZWJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW5j
bHVkZSAiV2ViQWN0aXZlV2hlZWxGbGluZ1BhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJBdXRv
ZmlsbENsaWVudC5oIgotI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbXBsLmgiCiAjaW5jbHVkZSAi
V2ViRGV2VG9vbHNBZ2VudEltcGwuaCIKICNpbmNsdWRlICJXZWJEZXZUb29sc0FnZW50UHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgpAQCAtMTQ5LDggKzE0OCw4IEBACiAjaW5j
bHVkZSAiV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgInBhaW50aW5nL0dyYXBoaWNzQ29udGV4dEJ1
aWxkZXIuaCIKICNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KLSNpbmNsdWRlIDxwdWJsaWMv
V2ViQ29tcG9zaXRvci5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yT3V0cHV0U3Vy
ZmFjZS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oPgogI2luY2x1
ZGUgPHB1YmxpYy9XZWJEcmFnRGF0YS5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJGbG9hdFBvaW50
Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkdyYXBoaWNzQ29udGV4dDNELmg+CkBAIC0xODE4LDcg
KzE4MTcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp0aGVtZUNoYW5nZWQoKQogdm9pZCBXZWJWaWV3
SW1wbDo6Y29tcG9zaXRlKGJvb2wpCiB7CiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KQotICAgIGlmIChXZWJDb21wb3NpdG9yOjppc1RocmVhZGluZ0VuYWJsZWQoKSkKKyAgICBpZiAo
UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+aXNUaHJlYWRpbmdFbmFi
bGVkKCkpCiAgICAgICAgIG1fbGF5ZXJUcmVlVmlldy0+c2V0TmVlZHNSZWRyYXcoKTsKICAgICBl
bHNlIHsKICAgICAgICAgQVNTRVJUKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpKTsK
QEAgLTM3MzQsNyArMzczMyw3IEBAIFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXIqIFdlYlZpZXdJbXBs
Ojpyb290R3JhcGhpY3NMYXllcigpCiB2b2lkIFdlYlZpZXdJbXBsOjpzY2hlZHVsZUFuaW1hdGlv
bigpCiB7CiAgICAgaWYgKGlzQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0FjdGl2ZSgpKSB7Ci0gICAg
ICAgIGlmIChXZWJDb21wb3NpdG9yOjppc1RocmVhZGluZ0VuYWJsZWQoKSkgeworICAgICAgICBp
ZiAoUGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+aXNUaHJlYWRpbmdF
bmFibGVkKCkpIHsKICAgICAgICAgICAgIEFTU0VSVChtX2xheWVyVHJlZVZpZXcpOwogICAgICAg
ICAgICAgbV9sYXllclRyZWVWaWV3LT5zZXROZWVkc0FuaW1hdGUoKTsKICAgICAgICAgfSBlbHNl
CkBAIC0zOTY3LDcgKzM5NjYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaWRSZWNyZWF0ZU91dHB1
dFN1cmZhY2UoYm9vbCBzdWNjZXNzKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzY2hlZHVsZUNvbXBv
c2l0ZSgpCiB7Ci0gICAgQVNTRVJUKCFXZWJDb21wb3NpdG9yOjppc1RocmVhZGluZ0VuYWJsZWQo
KSk7CisgICAgQVNTRVJUKCFQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgp
LT5pc1RocmVhZGluZ0VuYWJsZWQoKSk7CiAgICAgbV9jbGllbnQtPnNjaGVkdWxlQ29tcG9zaXRl
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NQcmlv
cml0aXplZFRleHR1cmVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NQ
cmlvcml0aXplZFRleHR1cmVUZXN0LmNwcAppbmRleCAzODNmYTU5ODc5ZGQ0ZWJmNzQzZTdjYzM0
MzVmYTg1MGQ0OTFkZmVjLi45MDc2ZDM0ZDQ5YzdkNjBkMWIyNDJkYTk0ZTQ4NmRlNzU4YWM4NjFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDUHJpb3JpdGl6ZWRU
ZXh0dXJlVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1ByaW9y
aXRpemVkVGV4dHVyZVRlc3QuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAjaW5jbHVkZSAiQ0NUZXh0
dXJlLmgiCiAjaW5jbHVkZSAiQ0NUaWxlZExheWVyVGVzdENvbW1vbi5oIgogI2luY2x1ZGUgIkZh
a2VDQ0dyYXBoaWNzQ29udGV4dC5oIgorI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbml0aWFsaXpl
ci5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Ci0jaW5jbHVkZSA8cHVibGljL1dlYkNvbXBv
c2l0b3IuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0VGVzdHM7CkBAIC00NSwyMCArNDUsMTcgQEAgcHVibGljOgogICAgIENDUHJpb3JpdGl6ZWRU
ZXh0dXJlVGVzdCgpCiAgICAgICAgIDogbV90ZXh0dXJlU2l6ZSgyNTYsIDI1NikKICAgICAgICAg
LCBtX3RleHR1cmVGb3JtYXQoR3JhcGhpY3NDb250ZXh0M0Q6OlJHQkEpCisgICAgICAgICwgbV9j
b21wb3NpdG9ySW5pdGlhbGl6ZXIoMCkKICAgICAgICAgLCBtX2NvbnRleHQoV2ViS2l0OjpjcmVh
dGVGYWtlQ0NHcmFwaGljc0NvbnRleHQoKSkKICAgICB7Ci0gICAgICAgIFdlYktpdDo6V2ViQ29t
cG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKICAgICAgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFk
IGltcGxUaHJlYWQ7CiAgICAgICAgIG1fcmVzb3VyY2VQcm92aWRlciA9IENDUmVzb3VyY2VQcm92
aWRlcjo6Y3JlYXRlKG1fY29udGV4dC5nZXQoKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCB+Q0NQ
cmlvcml0aXplZFRleHR1cmVUZXN0KCkKICAgICB7Ci0gICAgICAgIHsKLSAgICAgICAgICAgIERl
YnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwotICAgICAgICAgICAgbV9yZXNvdXJj
ZVByb3ZpZGVyLmNsZWFyKCk7Ci0gICAgICAgIH0KLSAgICAgICAgV2ViS2l0OjpXZWJDb21wb3Np
dG9yOjpzaHV0ZG93bigpOworICAgICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgaW1wbFRo
cmVhZDsKKyAgICAgICAgbV9yZXNvdXJjZVByb3ZpZGVyLmNsZWFyKCk7CiAgICAgfQogCiAgICAg
c2l6ZV90IHRleHR1cmVzTWVtb3J5U2l6ZShzaXplX3QgdGV4dHVyZUNvdW50KQpAQCAtOTMsNiAr
OTAsNyBAQCBwdWJsaWM6CiBwcm90ZWN0ZWQ6CiAgICAgY29uc3QgSW50U2l6ZSBtX3RleHR1cmVT
aXplOwogICAgIGNvbnN0IEdDM0RlbnVtIG1fdGV4dHVyZUZvcm1hdDsKKyAgICBXZWJDb21wb3Np
dG9ySW5pdGlhbGl6ZXIgbV9jb21wb3NpdG9ySW5pdGlhbGl6ZXI7CiAgICAgT3duUHRyPENDR3Jh
cGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgT3duUHRyPENDUmVzb3VyY2VQcm92aWRlcj4g
bV9yZXNvdXJjZVByb3ZpZGVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvQ0NSZW5kZXJlckdMVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0NDUmVuZGVyZXJHTFRlc3QuY3BwCmluZGV4IDJmM2ZkNmEwODEzNTg3MDkxYTJmYzRiMDll
NDkwYmQ3MTBmNmU5NTMuLjlkNmYyMjNlMWU3ZjIwZTBmMzRjMDdlYjllOTYyOTM0NzJlOWMwNzgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NSZW5kZXJlckdMVGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1JlbmRlcmVyR0xUZXN0
LmNwcApAQCAtMzMsOSArMzMsOSBAQAogI2luY2x1ZGUgIkZha2VXZWJDb21wb3NpdG9yT3V0cHV0
U3VyZmFjZS5oIgogI2luY2x1ZGUgIkZha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1
ZGUgIkdyYXBoaWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvckluaXRpYWxp
emVyLmgiCiAjaW5jbHVkZSA8Z21vY2svZ21vY2suaD4KICNpbmNsdWRlIDxndGVzdC9ndGVzdC5o
PgotI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dl
YlRyYW5zZm9ybWF0aW9uTWF0cml4Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAt
MTI4LDYgKzEyOCw3IEBAIHByb3RlY3RlZDoKICAgICBDQ1JlbmRlcmVyR0xUZXN0KCkKICAgICAg
ICAgOiBtX3N1Z2dlc3RIYXZlQmFja2J1ZmZlclllcygxLCB0cnVlKQogICAgICAgICAsIG1fc3Vn
Z2VzdEhhdmVCYWNrYnVmZmVyTm8oMSwgZmFsc2UpCisgICAgICAgICwgbV9jb21wb3NpdG9ySW5p
dGlhbGl6ZXIoMCkKICAgICAgICAgLCBtX2NvbnRleHQoRmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRT
dXJmYWNlOjpjcmVhdGUoYWRvcHRQdHIobmV3IEZyYW1lQ291bnRpbmdNZW1vcnlBbGxvY2F0aW9u
U2V0dGluZ0NvbnRleHQoKSkpKQogICAgICAgICAsIG1fcmVzb3VyY2VQcm92aWRlcihDQ1Jlc291
cmNlUHJvdmlkZXI6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCkpKQogICAgICAgICAsIG1fcmVuZGVy
ZXIoJm1fbW9ja0NsaWVudCwgbV9yZXNvdXJjZVByb3ZpZGVyLmdldCgpKQpAQCAtMTM2LDE1ICsx
MzcsOSBAQCBwcm90ZWN0ZWQ6CiAKICAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKQogICAgIHsKLSAg
ICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOwogICAgICAgICBtX3Jl
bmRlcmVyLmluaXRpYWxpemUoKTsKICAgICB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24o
KQotICAgIHsKLSAgICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOwotICAg
IH0KLQogICAgIHZvaWQgc3dhcEJ1ZmZlcnMoKQogICAgIHsKICAgICAgICAgbV9yZW5kZXJlci5z
d2FwQnVmZmVycygpOwpAQCAtMTU1LDYgKzE1MCw3IEBAIHByb3RlY3RlZDoKICAgICBXZWJHcmFw
aGljc01lbW9yeUFsbG9jYXRpb24gbV9zdWdnZXN0SGF2ZUJhY2tidWZmZXJZZXM7CiAgICAgV2Vi
R3JhcGhpY3NNZW1vcnlBbGxvY2F0aW9uIG1fc3VnZ2VzdEhhdmVCYWNrYnVmZmVyTm87CiAKKyAg
ICBXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIgbV9jb21wb3NpdG9ySW5pdGlhbGl6ZXI7CiAgICAg
T3duUHRyPENDR3JhcGhpY3NDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgRmFrZUNDUmVuZGVyZXJD
bGllbnQgbV9tb2NrQ2xpZW50OwogICAgIE93blB0cjxDQ1Jlc291cmNlUHJvdmlkZXI+IG1fcmVz
b3VyY2VQcm92aWRlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
Q0NUZXh0dXJlVXBkYXRlQ29udHJvbGxlclRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKaW5kZXggMTE2NTlmNmY1
MmI4YWJkMGFlMzA3NTliN2E2NjU0MTQ1MTA2MDQzYS4uYmFmNjNjMmU3OWJhZTk5ZGMwYjZlOTE3
NTZmMTIzZDJmOWQ1N2RiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9DQ1RleHR1cmVVcGRhdGVDb250cm9sbGVyVGVzdC5jcHAKQEAgLTMxLDgg
KzMxLDggQEAKICNpbmNsdWRlICJDQ1RpbGVkTGF5ZXJUZXN0Q29tbW9uLmgiCiAjaW5jbHVkZSAi
RmFrZVdlYkNvbXBvc2l0b3JPdXRwdXRTdXJmYWNlLmgiCiAjaW5jbHVkZSAiRmFrZVdlYkdyYXBo
aWNzQ29udGV4dDNELmgiCisjaW5jbHVkZSAiV2ViQ29tcG9zaXRvckluaXRpYWxpemVyLmgiCiAj
aW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KLSNpbmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvci5o
PgogI2luY2x1ZGUgPHB1YmxpYy9XZWJUaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+
CiAKQEAgLTk1LDIxICs5NSwyMyBAQCBwdWJsaWM6CiBjbGFzcyBDQ1RleHR1cmVVcGRhdGVDb250
cm9sbGVyVGVzdCA6IHB1YmxpYyBUZXN0IHsKIHB1YmxpYzoKICAgICBDQ1RleHR1cmVVcGRhdGVD
b250cm9sbGVyVGVzdCgpCi0gICAgOiBtX3F1ZXVlKGFkb3B0UHRyKG5ldyBDQ1RleHR1cmVVcGRh
dGVRdWV1ZSkpCi0gICAgLCBtX3VwbG9hZGVyKHRoaXMpCi0gICAgLCBtX2Z1bGxVcGxvYWRDb3Vu
dEV4cGVjdGVkKDApCi0gICAgLCBtX3BhcnRpYWxDb3VudEV4cGVjdGVkKDApCi0gICAgLCBtX3Rv
dGFsVXBsb2FkQ291bnRFeHBlY3RlZCgwKQotICAgICwgbV9tYXhVcGxvYWRDb3VudFBlclVwZGF0
ZSgwKQotICAgICwgbV9udW1CZWdpblVwbG9hZHMoMCkKLSAgICAsIG1fbnVtRW5kVXBsb2Fkcygw
KQotICAgICwgbV9udW1Db25zZWN1dGl2ZUZsdXNoZXMoMCkKLSAgICAsIG1fbnVtRGFuZ2xpbmdV
cGxvYWRzKDApCi0gICAgLCBtX251bVRvdGFsVXBsb2FkcygwKQotICAgICwgbV9udW1Ub3RhbEZs
dXNoZXMoMCkKLSAgICAsIG1fbnVtUHJldmlvdXNVcGxvYWRzKDApCi0gICAgLCBtX251bVByZXZp
b3VzRmx1c2hlcygwKQotICAgIHsgfQorICAgICAgICA6IG1fcXVldWUoYWRvcHRQdHIobmV3IEND
VGV4dHVyZVVwZGF0ZVF1ZXVlKSkKKyAgICAgICAgLCBtX3VwbG9hZGVyKHRoaXMpCisgICAgICAg
ICwgbV9jb21wb3NpdG9ySW5pdGlhbGl6ZXIobV90aHJlYWQuZ2V0KCkpCisgICAgICAgICwgbV9m
dWxsVXBsb2FkQ291bnRFeHBlY3RlZCgwKQorICAgICAgICAsIG1fcGFydGlhbENvdW50RXhwZWN0
ZWQoMCkKKyAgICAgICAgLCBtX3RvdGFsVXBsb2FkQ291bnRFeHBlY3RlZCgwKQorICAgICAgICAs
IG1fbWF4VXBsb2FkQ291bnRQZXJVcGRhdGUoMCkKKyAgICAgICAgLCBtX251bUJlZ2luVXBsb2Fk
cygwKQorICAgICAgICAsIG1fbnVtRW5kVXBsb2FkcygwKQorICAgICAgICAsIG1fbnVtQ29uc2Vj
dXRpdmVGbHVzaGVzKDApCisgICAgICAgICwgbV9udW1EYW5nbGluZ1VwbG9hZHMoMCkKKyAgICAg
ICAgLCBtX251bVRvdGFsVXBsb2FkcygwKQorICAgICAgICAsIG1fbnVtVG90YWxGbHVzaGVzKDAp
CisgICAgICAgICwgbV9udW1QcmV2aW91c1VwbG9hZHMoMCkKKyAgICAgICAgLCBtX251bVByZXZp
b3VzRmx1c2hlcygwKQorICAgIHsKKyAgICB9CiAKIHB1YmxpYzoKICAgICB2b2lkIG9uRmx1c2go
KQpAQCAtMTcwLDE5ICsxNzIsMTEgQEAgcHVibGljOgogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwg
dm9pZCBTZXRVcCgpCiAgICAgewotICAgICAgICBPd25QdHI8V2ViVGhyZWFkPiB0aHJlYWQ7Ci0g
ICAgICAgIFdlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUodGhyZWFkLmdldCgpKTsKLQogICAgICAg
ICBtX2NvbnRleHQgPSBGYWtlV2ViQ29tcG9zaXRvck91dHB1dFN1cmZhY2U6OmNyZWF0ZShhZG9w
dFB0cihuZXcgV2ViR3JhcGhpY3NDb250ZXh0M0RGb3JVcGxvYWRUZXN0KHRoaXMpKSk7CiAgICAg
ICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBpbXBsVGhyZWFkOwogICAgICAgICBtX3Jlc291
cmNlUHJvdmlkZXIgPSBDQ1Jlc291cmNlUHJvdmlkZXI6OmNyZWF0ZShtX2NvbnRleHQuZ2V0KCkp
OwogICAgIH0KIAotICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpCi0gICAgewotICAgICAgICBX
ZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOwotICAgIH0KLQogICAgIHZvaWQgYXBwZW5kRnVsbFVw
bG9hZHNUb1VwZGF0ZVF1ZXVlKGludCBjb3VudCkKICAgICB7CiAgICAgICAgIG1fZnVsbFVwbG9h
ZENvdW50RXhwZWN0ZWQgKz0gY291bnQ7CkBAIC0yMTgsNiArMjEyLDkgQEAgcHJvdGVjdGVkOgog
ICAgIFRleHR1cmVGb3JVcGxvYWRUZXN0IG1fdGV4dHVyZTsKICAgICBGYWtlVGV4dHVyZUNvcGll
ciBtX2NvcGllcjsKICAgICBUZXh0dXJlVXBsb2FkZXJGb3JVcGxvYWRUZXN0IG1fdXBsb2FkZXI7
CisgICAgT3duUHRyPFdlYlRocmVhZD4gbV90aHJlYWQ7CisgICAgV2ViQ29tcG9zaXRvckluaXRp
YWxpemVyIG1fY29tcG9zaXRvckluaXRpYWxpemVyOworCiAKICAgICAvLyBQcm9wZXJ0aWVzIC8g
ZXhwZWN0YXRpb25zIG9mIHRoaXMgdGVzdAogICAgIGludCBtX2Z1bGxVcGxvYWRDb3VudEV4cGVj
dGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ1RocmVhZGVk
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDVGhyZWFkZWRUZXN0LmNw
cAppbmRleCA0ZWQxMjc3NThhZTBjMWQ0ZDg1MWNiNTRmY2E4MDVmZTkyMmI3NmU4Li5hZWIzNWE1
MTRlNjI0MzlhYjE2NmU0MGRhNGI1NTQ2YmJhMDA1M2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL0NDVGhyZWFkZWRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0NDVGhyZWFkZWRUZXN0LmNwcApAQCAtNDQsNyArNDQsNyBAQAogI2lu
Y2x1ZGUgIkxheWVyQ2hyb21pdW0uaCIKICNpbmNsdWRlIDxnbW9jay9nbW9jay5oPgogI2luY2x1
ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yLmg+
CisjaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0Lmg+CiAjaW5jbHVkZSA8cHVi
bGljL1dlYkZpbHRlck9wZXJhdGlvbi5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJGaWx0ZXJPcGVy
YXRpb25zLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlRocmVhZC5oPgpAQCAtNjAwLDEzICs2MDAs
MTMgQEAgdm9pZCBDQ1RocmVhZGVkVGVzdDo6ZGlzcGF0Y2hEaWRBZGRBbmltYXRpb24odm9pZCog
c2VsZikKIHZvaWQgQ0NUaHJlYWRlZFRlc3Q6OnJ1blRlc3QoYm9vbCB0aHJlYWRlZCkKIHsKICAg
ICAvLyBGb3IgdGhlc2UgdGVzdHMsIHdlIHdpbGwgZW5hYmxlIHRocmVhZGVkIGFuaW1hdGlvbnMu
Ci0gICAgV2ViQ29tcG9zaXRvcjo6c2V0QWNjZWxlcmF0ZWRBbmltYXRpb25FbmFibGVkKHRydWUp
OworICAgIFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPnNldEFjY2Vs
ZXJhdGVkQW5pbWF0aW9uRW5hYmxlZCh0cnVlKTsKIAogICAgIGlmICh0aHJlYWRlZCkgewogICAg
ICAgICBtX3dlYlRocmVhZCA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+
Y3JlYXRlVGhyZWFkKCJDQ1RocmVhZGVkVGVzdCIpKTsKLSAgICAgICAgV2ViQ29tcG9zaXRvcjo6
aW5pdGlhbGl6ZShtX3dlYlRocmVhZC5nZXQoKSk7CisgICAgICAgIFBsYXRmb3JtOjpjdXJyZW50
KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmluaXRpYWxpemUobV93ZWJUaHJlYWQuZ2V0KCkpOwog
ICAgIH0gZWxzZQotICAgICAgICBXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOworICAgICAg
ICBQbGF0Zm9ybTo6Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5pbml0aWFsaXplKDAp
OwogCiAgICAgQVNTRVJUKENDUHJveHk6OmlzTWFpblRocmVhZCgpKTsKICAgICBtX21haW5UaHJl
YWRQcm94eSA9IENDU2NvcGVkVGhyZWFkUHJveHk6OmNyZWF0ZShDQ1Byb3h5OjptYWluVGhyZWFk
KCkpOwpAQCAtNjMzLDExICs2MzMsMTEgQEAgdm9pZCBDQ1RocmVhZGVkVGVzdDo6cnVuVGVzdChi
b29sIHRocmVhZGVkKQogICAgIG1fY2xpZW50LmNsZWFyKCk7CiAgICAgaWYgKG1fdGltZWRPdXQp
IHsKICAgICAgICAgRkFJTCgpIDw8ICJUZXN0IHRpbWVkIG91dCI7Ci0gICAgICAgIFdlYkNvbXBv
c2l0b3I6OnNodXRkb3duKCk7CisgICAgICAgIFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0
b3JTdXBwb3J0KCktPnNodXRkb3duKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgYWZ0
ZXJUZXN0KCk7Ci0gICAgV2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKKyAgICBQbGF0Zm9ybTo6
Y3VycmVudCgpLT5jb21wb3NpdG9yU3VwcG9ydCgpLT5zaHV0ZG93bigpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXRUZXN0cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9DYW52YXMyRExheWVyQnJpZGdlVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcAppbmRleCA2OTcyNDI0YjA2N2IyYWEx
OWI5NDg2YjgxMWE1MDA0MTQ2NjJkOTllLi4yNmJkZDRmMTE5YmE1NzZlN2Y0M2ZiZjM2NDkxNmM1
YWQ2OTdjYWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NhbnZh
czJETGF5ZXJCcmlkZ2VUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L0NhbnZhczJETGF5ZXJCcmlkZ2VUZXN0LmNwcApAQCAtMzAsOCArMzAsOCBAQAogI2luY2x1ZGUg
IkZha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dDNE
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIkltYWdlQnVmZmVyLmgiCisjaW5jbHVkZSAiV2ViQ29tcG9z
aXRvckluaXRpYWxpemVyLmgiCiAjaW5jbHVkZSA8cHVibGljL1BsYXRmb3JtLmg+Ci0jaW5jbHVk
ZSA8cHVibGljL1dlYkNvbXBvc2l0b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViVGhyZWFkLmg+
CiAKICNpbmNsdWRlIDxnbW9jay9nbW9jay5oPgpAQCAtODEsNyArODEsNyBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIE93blB0cjxXZWJUaHJlYWQ+IHRocmVhZDsKICAgICAgICAgaWYgKHRocmVhZE1v
ZGUgPT0gVGhyZWFkZWQpCiAgICAgICAgICAgICB0aHJlYWQgPSBhZG9wdFB0cihXZWJLaXQ6OlBs
YXRmb3JtOjpjdXJyZW50KCktPmNyZWF0ZVRocmVhZCgiQ2FudmFzMkRMYXllckJyaWRnZVRlc3Qi
KSk7Ci0gICAgICAgIFdlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUodGhyZWFkLmdldCgpKTsKKyAg
ICAgICAgV2ViS2l0VGVzdHM6OldlYkNvbXBvc2l0b3JJbml0aWFsaXplciBpbml0aWFsaXplcih0
aHJlYWQuZ2V0KCkpOwogCiAgICAgICAgIFdlYkdMSWQgYmFja1RleHR1cmVJZCA9IDE7CiAgICAg
ICAgIFdlYkdMSWQgZnJvbnRUZXh0dXJlSWQgPSAxOwpAQCAtMTA5LDggKzEwOSw2IEBAIHByb3Rl
Y3RlZDoKICAgICAgICAgICAgIEVYUEVDVF9DQUxMKG1haW5Nb2NrLCBmbHVzaCgpKTsKICAgICAg
ICAgfQogICAgICAgICBicmlkZ2UuY2xlYXIoKTsKLQotICAgICAgICBXZWJDb21wb3NpdG9yOjpz
aHV0ZG93bigpOwogICAgIH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0dyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCmluZGV4IGZjN2YyM2Zi
MmE3NzdiNGNlZTJkNjdlYzM1ZGU1YjNkYmQyMTI4ZGUuLmE5YmRhMTE1NWFhOTYzYTJlZjMwYWM2
M2QxNjRmMjNkNjQzMWFjNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvR3JhcGhpY3NMYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9HcmFwaGljc0xheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtMzcsNyArMzcsOCBA
QAogI2luY2x1ZGUgIlRyYW5zbGF0ZVRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIldl
YkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmgiCiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KLSNp
bmNsdWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvci5oPgorI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9y
bS5oPgorI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yU3VwcG9ydC5oPgogI2luY2x1ZGUg
PHB1YmxpYy9XZWJGbG9hdEFuaW1hdGlvbkN1cnZlLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkdy
YXBoaWNzQ29udGV4dDNELmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkxheWVyVHJlZVZpZXcuaD4K
QEAgLTYzLDggKzY0LDggQEAgcHVibGljOgogICAgIEdyYXBoaWNzTGF5ZXJDaHJvbWl1bVRlc3Qo
KQogICAgIHsKICAgICAgICAgLy8gRm9yIHRoZXNlIHRlc3RzLCB3ZSB3aWxsIGVuYWJsZSB0aHJl
YWRlZCBhbmltYXRpb25zLgotICAgICAgICBXZWJDb21wb3NpdG9yOjpzZXRBY2NlbGVyYXRlZEFu
aW1hdGlvbkVuYWJsZWQodHJ1ZSk7Ci0gICAgICAgIFdlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUo
MCk7CisgICAgICAgIFBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPnNl
dEFjY2VsZXJhdGVkQW5pbWF0aW9uRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgUGxhdGZvcm06OmN1
cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+aW5pdGlhbGl6ZSgwKTsKICAgICAgICAgbV9n
cmFwaGljc0xheWVyID0gc3RhdGljX3BvaW50ZXJfY2FzdDxHcmFwaGljc0xheWVyQ2hyb21pdW0+
KEdyYXBoaWNzTGF5ZXI6OmNyZWF0ZSgmbV9jbGllbnQpKTsKICAgICAgICAgbV9wbGF0Zm9ybUxh
eWVyID0gbV9ncmFwaGljc0xheWVyLT5wbGF0Zm9ybUxheWVyKCk7CiAgICAgICAgIG1fbGF5ZXJU
cmVlVmlldyA9IGFkb3B0UHRyKFdlYkxheWVyVHJlZVZpZXc6OmNyZWF0ZSgmbV9sYXllclRyZWVW
aWV3Q2xpZW50LCAqbV9wbGF0Zm9ybUxheWVyLCBXZWJMYXllclRyZWVWaWV3OjpTZXR0aW5ncygp
KSk7CkBAIC03NSw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIG1fZ3JhcGhpY3NM
YXllci5jbGVhcigpOwogICAgICAgICBtX2xheWVyVHJlZVZpZXcuY2xlYXIoKTsKLSAgICAgICAg
V2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKKyAgICAgICAgUGxhdGZvcm06OmN1cnJlbnQoKS0+
Y29tcG9zaXRvclN1cHBvcnQoKS0+c2h1dGRvd24oKTsKICAgICB9CiAKIHByb3RlY3RlZDoKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGF5ZXJDaHJvbWl1bVRlc3Qu
Y3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAK
aW5kZXggMTI4M2M3OTg5ZmQ3MmIzNzJiNDhmODQ4MWM5MmU4MTFiY2Y1YThlMy4uYTE3YjA3NmYz
NDkxZDBjNjcyMzcxOTdjNmIwNjRkZDYzNmI3MjBmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS90ZXN0cy9MYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTMyLDkgKzMyLDkgQEAK
ICNpbmNsdWRlICJDQ1NpbmdsZVRocmVhZFByb3h5LmgiCiAjaW5jbHVkZSAiRmFrZUNDTGF5ZXJU
cmVlSG9zdENsaWVudC5oIgogI2luY2x1ZGUgIkxheWVyUGFpbnRlckNocm9taXVtLmgiCisjaW5j
bHVkZSAiV2ViQ29tcG9zaXRvckluaXRpYWxpemVyLmgiCiAjaW5jbHVkZSA8Z21vY2svZ21vY2su
aD4KICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3Np
dG9yLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4Lmg+CiAKIHVz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNzQsMTEgKzc0LDE1IEBAIHB1YmxpYzoKIAogCiBj
bGFzcyBMYXllckNocm9taXVtVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKK3B1YmxpYzoK
KyAgICBMYXllckNocm9taXVtVGVzdCgpCisgICAgICAgIDogbV9jb21wb3NpdG9ySW5pdGlhbGl6
ZXIoMCkKKyAgICB7CisgICAgfQorCiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIFNldFVw
KCkKICAgICB7Ci0gICAgICAgIC8vIEluaXRpYWxpemUgd2l0aG91dCB0aHJlYWRpbmcgc3VwcG9y
dC4KLSAgICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOwogICAgICAg
ICBtX2xheWVyVHJlZUhvc3QgPSBhZG9wdFB0cihuZXcgTW9ja0NDTGF5ZXJUcmVlSG9zdCk7CiAg
ICAgfQogCkBAIC05Niw3ICsxMDAsNiBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgbV9sYXllclRy
ZWVIb3N0LT5zZXRSb290TGF5ZXIoMCk7CiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC5jbGVhcigp
OwotICAgICAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNodXRkb3duKCk7CiAgICAgfQogCiAg
ICAgdm9pZCB2ZXJpZnlUZXN0VHJlZUluaXRpYWxTdGF0ZSgpIGNvbnN0CkBAIC0xNDksNiArMTUy
LDcgQEAgcHJvdGVjdGVkOgogCiAgICAgT3duUHRyPE1vY2tDQ0xheWVyVHJlZUhvc3Q+IG1fbGF5
ZXJUcmVlSG9zdDsKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbV9wYXJlbnQsIG1fY2hpbGQx
LCBtX2NoaWxkMiwgbV9jaGlsZDMsIG1fZ3JhbmRDaGlsZDEsIG1fZ3JhbmRDaGlsZDIsIG1fZ3Jh
bmRDaGlsZDM7CisgICAgV2ViQ29tcG9zaXRvckluaXRpYWxpemVyIG1fY29tcG9zaXRvckluaXRp
YWxpemVyOwogfTsKIAogVEVTVF9GKExheWVyQ2hyb21pdW1UZXN0LCBiYXNpY0NyZWF0ZUFuZERl
c3Ryb3kpCkBAIC02MzUsNyArNjM5LDcgQEAgdm9pZCBhc3NlcnRMYXllclRyZWVIb3N0TWF0Y2hl
c0ZvclN1YnRyZWUoTGF5ZXJDaHJvbWl1bSogbGF5ZXIsIENDTGF5ZXJUcmVlSG9zdCoKIAogVEVT
VChMYXllckNocm9taXVtTGF5ZXJUcmVlSG9zdFRlc3QsIGVudGVyaW5nVHJlZSkKIHsKLSAgICBX
ZWJLaXQ6OldlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUoMCk7CisgICAgV2ViQ29tcG9zaXRvcklu
aXRpYWxpemVyIGNvbXBvc2l0b3JJbml0aWFsaXplcigwKTsKICAgICBSZWZQdHI8TGF5ZXJDaHJv
bWl1bT4gcGFyZW50ID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgUmVmUHRyPExheWVy
Q2hyb21pdW0+IGNoaWxkID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgUmVmUHRyPExh
eWVyQ2hyb21pdW0+IG1hc2sgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsKQEAgLTY2MiwxMiAr
NjY2LDExIEBAIFRFU1QoTGF5ZXJDaHJvbWl1bUxheWVyVHJlZUhvc3RUZXN0LCBlbnRlcmluZ1Ry
ZWUpCiAgICAgYXNzZXJ0TGF5ZXJUcmVlSG9zdE1hdGNoZXNGb3JTdWJ0cmVlKHBhcmVudC5nZXQo
KSwgMCk7CiAKICAgICBsYXllclRyZWVIb3N0LmNsZWFyKCk7Ci0gICAgV2ViS2l0OjpXZWJDb21w
b3NpdG9yOjpzaHV0ZG93bigpOwogfQogCiBURVNUKExheWVyQ2hyb21pdW1MYXllclRyZWVIb3N0
VGVzdCwgYWRkaW5nTGF5ZXJTdWJ0cmVlKQogewotICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6
aW5pdGlhbGl6ZSgwKTsKKyAgICBXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIgY29tcG9zaXRvcklu
aXRpYWxpemVyKDApOwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBwYXJlbnQgPSBMYXllckNo
cm9taXVtOjpjcmVhdGUoKTsKICAgICBPd25QdHI8RmFrZUNDTGF5ZXJUcmVlSG9zdD4gbGF5ZXJU
cmVlSG9zdChGYWtlQ0NMYXllclRyZWVIb3N0OjpjcmVhdGUoKSk7CiAKQEAgLTY5MywxMiArNjk2
LDExIEBAIFRFU1QoTGF5ZXJDaHJvbWl1bUxheWVyVHJlZUhvc3RUZXN0LCBhZGRpbmdMYXllclN1
YnRyZWUpCiAKICAgICBsYXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIoMCk7CiAgICAgbGF5ZXJU
cmVlSG9zdC5jbGVhcigpOwotICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsK
IH0KIAogVEVTVChMYXllckNocm9taXVtTGF5ZXJUcmVlSG9zdFRlc3QsIGNoYW5nZUhvc3QpCiB7
Ci0gICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOworICAgIFdlYkNvbXBv
c2l0b3JJbml0aWFsaXplciBjb21wb3NpdG9ySW5pdGlhbGl6ZXIoMCk7CiAgICAgUmVmUHRyPExh
eWVyQ2hyb21pdW0+IHBhcmVudCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOwogICAgIFJlZlB0
cjxMYXllckNocm9taXVtPiBjaGlsZCA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgpOwogICAgIFJl
ZlB0cjxMYXllckNocm9taXVtPiBtYXNrID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CkBAIC03
MjYsMTIgKzcyOCwxMSBAQCBURVNUKExheWVyQ2hyb21pdW1MYXllclRyZWVIb3N0VGVzdCwgY2hh
bmdlSG9zdCkKICAgICBzZWNvbmRMYXllclRyZWVIb3N0LT5zZXRSb290TGF5ZXIoMCk7CiAgICAg
Zmlyc3RMYXllclRyZWVIb3N0LmNsZWFyKCk7CiAgICAgc2Vjb25kTGF5ZXJUcmVlSG9zdC5jbGVh
cigpOwotICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKIH0KIAogVEVTVChM
YXllckNocm9taXVtTGF5ZXJUcmVlSG9zdFRlc3QsIGNoYW5nZUhvc3RJblN1YnRyZWUpCiB7Ci0g
ICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjppbml0aWFsaXplKDApOworICAgIFdlYkNvbXBvc2l0
b3JJbml0aWFsaXplciBjb21wb3NpdG9ySW5pdGlhbGl6ZXIoMCk7CiAgICAgUmVmUHRyPExheWVy
Q2hyb21pdW0+IGZpcnN0UGFyZW50ID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgUmVm
UHRyPExheWVyQ2hyb21pdW0+IGZpcnN0Q2hpbGQgPSBMYXllckNocm9taXVtOjpjcmVhdGUoKTsK
ICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gc2Vjb25kUGFyZW50ID0gTGF5ZXJDaHJvbWl1bTo6
Y3JlYXRlKCk7CkBAIC03NjMsMTIgKzc2NCwxMSBAQCBURVNUKExheWVyQ2hyb21pdW1MYXllclRy
ZWVIb3N0VGVzdCwgY2hhbmdlSG9zdEluU3VidHJlZSkKICAgICBzZWNvbmRMYXllclRyZWVIb3N0
LT5zZXRSb290TGF5ZXIoMCk7CiAgICAgZmlyc3RMYXllclRyZWVIb3N0LmNsZWFyKCk7CiAgICAg
c2Vjb25kTGF5ZXJUcmVlSG9zdC5jbGVhcigpOwotICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6
c2h1dGRvd24oKTsKIH0KIAogVEVTVChMYXllckNocm9taXVtTGF5ZXJUcmVlSG9zdFRlc3QsIHJl
cGxhY2VNYXNrQW5kUmVwbGljYUxheWVyKQogewotICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6
aW5pdGlhbGl6ZSgwKTsKKyAgICBXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIgY29tcG9zaXRvcklu
aXRpYWxpemVyKDApOwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBwYXJlbnQgPSBMYXllckNo
cm9taXVtOjpjcmVhdGUoKTsKICAgICBSZWZQdHI8TGF5ZXJDaHJvbWl1bT4gbWFzayA9IExheWVy
Q2hyb21pdW06OmNyZWF0ZSgpOwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiByZXBsaWNhID0g
TGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CkBAIC04MDAsMTkgKzgwMCwxNyBAQCBURVNUKExheWVy
Q2hyb21pdW1MYXllclRyZWVIb3N0VGVzdCwgcmVwbGFjZU1hc2tBbmRSZXBsaWNhTGF5ZXIpCiAg
ICAgLy8gVGVzdCBvdmVyLCBjbGVhbnVwIHRpbWUuCiAgICAgbGF5ZXJUcmVlSG9zdC0+c2V0Um9v
dExheWVyKDApOwogICAgIGxheWVyVHJlZUhvc3QuY2xlYXIoKTsKLSAgICBXZWJLaXQ6OldlYkNv
bXBvc2l0b3I6OnNodXRkb3duKCk7CiB9CiAKIFRFU1QoTGF5ZXJDaHJvbWl1bUxheWVyVHJlZUhv
c3RUZXN0LCBkZXN0cm95SG9zdFdpdGhOb25OdWxsUm9vdExheWVyKQogewotICAgIFdlYktpdDo6
V2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKKyAgICBXZWJDb21wb3NpdG9ySW5pdGlhbGl6
ZXIgY29tcG9zaXRvckluaXRpYWxpemVyKDApOwogICAgIFJlZlB0cjxMYXllckNocm9taXVtPiBy
b290ID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+
IGNoaWxkID0gTGF5ZXJDaHJvbWl1bTo6Y3JlYXRlKCk7CiAgICAgcm9vdC0+YWRkQ2hpbGQoY2hp
bGQpOwogICAgIE93blB0cjxGYWtlQ0NMYXllclRyZWVIb3N0PiBsYXllclRyZWVIb3N0KEZha2VD
Q0xheWVyVHJlZUhvc3Q6OmNyZWF0ZSgpKTsKICAgICBsYXllclRyZWVIb3N0LT5zZXRSb290TGF5
ZXIocm9vdCk7CiAgICAgbGF5ZXJUcmVlSG9zdC5jbGVhcigpOwotICAgIFdlYktpdDo6V2ViQ29t
cG9zaXRvcjo6c2h1dGRvd24oKTsKIH0KIAogY2xhc3MgTW9ja0xheWVyQ2hyb21pdW0gOiBwdWJs
aWMgTGF5ZXJDaHJvbWl1bSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0xpbmtIaWdobGlnaHRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
TGlua0hpZ2hsaWdodFRlc3QuY3BwCmluZGV4IDY0ODMwZWYyMjZmOTg3MmY1OTUwODE3M2E0NGI2
M2I5NWJhYWM4OTQuLmVhZmUyMzA3ZjFmZGViZjcyYmU4NTVlYTYwN2RkMjg0MWU3MzRmZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGlua0hpZ2hsaWdodFRlc3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTGlua0hpZ2hsaWdodFRlc3Qu
Y3BwCkBAIC0zMCwxMCArMzAsMTAgQEAKICNpbmNsdWRlICJJbnRSZWN0LmgiCiAjaW5jbHVkZSAi
Tm9kZS5oIgogI2luY2x1ZGUgIlVSTFRlc3RIZWxwZXJzLmgiCisjaW5jbHVkZSAiV2ViQ29tcG9z
aXRvckluaXRpYWxpemVyLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJW
aWV3SW1wbC5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Ci0jaW5jbHVkZSA8cHVibGljL1dl
YkNvbXBvc2l0b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViQ29udGVudExheWVyLmg+CiAjaW5j
bHVkZSA8cHVibGljL1dlYkZsb2F0UG9pbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViU2l6ZS5o
PgpAQCAtNDcsNyArNDcsNyBAQCBuYW1lc3BhY2UgewogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5U
UykKIFRFU1QoTGlua0hpZ2hsaWdodFRlc3QsIHZlcmlmeVdlYlZpZXdJbXBsSW50ZWdyYXRpb24p
CiB7Ci0gICAgV2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKKyAgICBXZWJLaXRUZXN0czo6
V2ViQ29tcG9zaXRvckluaXRpYWxpemVyIGNvbXBvc2l0b3JJbml0aWFsaXplcigwKTsKIAogICAg
IGNvbnN0IHN0ZDo6c3RyaW5nIGJhc2VVUkwoImh0dHA6Ly93d3cudGVzdC5jb20vIik7CiAgICAg
Y29uc3Qgc3RkOjpzdHJpbmcgZmlsZU5hbWUoInRlc3RfdG91Y2hfbGlua19oaWdobGlnaHQuaHRt
bCIpOwpAQCAtODIsNyArODIsNiBAQCBURVNUKExpbmtIaWdobGlnaHRUZXN0LCB2ZXJpZnlXZWJW
aWV3SW1wbEludGVncmF0aW9uKQogICAgIEFTU0VSVF9UUlVFKHdlYlZpZXdJbXBsLT5saW5rSGln
aGxpZ2h0KCkpOwogCiAgICAgd2ViVmlld0ltcGwtPmNsb3NlKCk7Ci0gICAgV2ViQ29tcG9zaXRv
cjo6c2h1dGRvd24oKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1RleHR1cmVMYXllckNocm9taXVtVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1RleHR1cmVMYXllckNocm9taXVtVGVzdC5jcHAKaW5kZXggYTQ4MzBl
NTNmMWI4N2QzYTJjYTAyOGJmZWExOTY0MGJhMmNlODNlYi4uNzJlMDIwNmFkNzU1MTkwMDQwMTZj
NDk4NzI3YjM0M2RjZmYxMGU2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9UZXh0dXJlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvVGV4dHVyZUxheWVyQ2hyb21pdW1UZXN0LmNwcApAQCAtMjgsOSArMjgsOSBA
QAogCiAjaW5jbHVkZSAiQ0NMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiRmFrZUNDTGF5ZXJU
cmVlSG9zdENsaWVudC5oIgorI2luY2x1ZGUgIldlYkNvbXBvc2l0b3JJbml0aWFsaXplci5oIgog
I2luY2x1ZGUgPGdtb2NrL2dtb2NrLmg+CiAjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KLSNpbmNs
dWRlIDxwdWJsaWMvV2ViQ29tcG9zaXRvci5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IHVzaW5nIDo6dGVzdGluZzo6TW9jazsKQEAgLTU2LDExICs1NiwxNSBAQCBwcml2YXRlOgogCiAK
IGNsYXNzIFRleHR1cmVMYXllckNocm9taXVtVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsK
K3B1YmxpYzoKKyAgICBUZXh0dXJlTGF5ZXJDaHJvbWl1bVRlc3QoKQorICAgICAgICA6IG1fY29t
cG9zaXRvckluaXRpYWxpemVyKDApCisgICAgeworICAgIH0KKwogcHJvdGVjdGVkOgogICAgIHZp
cnR1YWwgdm9pZCBTZXRVcCgpCiAgICAgewotICAgICAgICAvLyBJbml0aWFsaXplIHdpdGhvdXQg
dGhyZWFkaW5nIHN1cHBvcnQuCi0gICAgICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6aW5pdGlh
bGl6ZSgwKTsKICAgICAgICAgbV9sYXllclRyZWVIb3N0ID0gYWRvcHRQdHIobmV3IE1vY2tDQ0xh
eWVyVHJlZUhvc3QpOwogICAgIH0KIApAQCAtNzEsMTAgKzc1LDExIEBAIHByb3RlY3RlZDoKIAog
ICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnNldFJvb3RMYXllcigwKTsKICAgICAgICAgbV9sYXll
clRyZWVIb3N0LmNsZWFyKCk7Ci0gICAgICAgIFdlYktpdDo6V2ViQ29tcG9zaXRvcjo6c2h1dGRv
d24oKTsKICAgICB9CiAKICAgICBPd25QdHI8TW9ja0NDTGF5ZXJUcmVlSG9zdD4gbV9sYXllclRy
ZWVIb3N0OworcHJpdmF0ZToKKyAgICBXZWJLaXRUZXN0czo6V2ViQ29tcG9zaXRvckluaXRpYWxp
emVyIG1fY29tcG9zaXRvckluaXRpYWxpemVyOwogfTsKIAogVEVTVF9GKFRleHR1cmVMYXllckNo
cm9taXVtVGVzdCwgc3luY0ltcGxXaGVuQ2hhbmdpbmdUZXh0dXJlSWQpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcApp
bmRleCBkOWI5ZWE5YWM3NDI2MjIyMzY2ZDIzY2UyMThmMjY2MTJlMzY5OWNiLi44NTgyMWE4YjM4
YjI5N2E3ZDgzNTI5MjUyZmM4ZWNkMzIwZGJkMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvVGlsZWRMYXllckNocm9taXVtVGVzdC5jcHAKQEAgLTM3LDgg
KzM3LDggQEAKICNpbmNsdWRlICJGYWtlQ0NHcmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJG
YWtlQ0NMYXllclRyZWVIb3N0Q2xpZW50LmgiCiAjaW5jbHVkZSAiTGF5ZXJQYWludGVyQ2hyb21p
dW0uaCIKKyNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIuaCIKICNpbmNsdWRlIDxn
dGVzdC9ndGVzdC5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yLmg+CiAjaW5jbHVk
ZSA8cHVibGljL1dlYlRyYW5zZm9ybWF0aW9uTWF0cml4Lmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwpAQCAtNzAsMTEgKzcwLDExIEBAIHByaXZhdGU6CiBjbGFzcyBUaWxlZExheWVyQ2hy
b21pdW1UZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgewogcHVibGljOgogICAgIFRpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QoKQotICAgICAgICA6IG1fY29udGV4dChXZWJLaXQ6OmNyZWF0ZUZha2VD
Q0dyYXBoaWNzQ29udGV4dCgpKQorICAgICAgICA6IG1fY29tcG9zaXRvckluaXRpYWxpemVyKDAp
CisgICAgICAgICwgbV9jb250ZXh0KFdlYktpdDo6Y3JlYXRlRmFrZUNDR3JhcGhpY3NDb250ZXh0
KCkpCiAgICAgICAgICwgbV90ZXh0dXJlTWFuYWdlcihDQ1ByaW9yaXRpemVkVGV4dHVyZU1hbmFn
ZXI6OmNyZWF0ZSg2MCoxMDI0KjEwMjQsIDEwMjQsIENDUmVuZGVyZXI6OkNvbnRlbnRQb29sKSkK
ICAgICAgICAgLCBtX29jY2x1c2lvbigwKQogICAgIHsKLSAgICAgICAgV2ViS2l0OjpXZWJDb21w
b3NpdG9yOjppbml0aWFsaXplKDApOwogICAgICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWRB
bmRNYWluVGhyZWFkQmxvY2tlZCBpbXBsVGhyZWFkQW5kTWFpblRocmVhZEJsb2NrZWQ7CiAgICAg
ICAgIG1fcmVzb3VyY2VQcm92aWRlciA9IENDUmVzb3VyY2VQcm92aWRlcjo6Y3JlYXRlKG1fY29u
dGV4dC5nZXQoKSk7CiAgICAgfQpAQCAtODIsMTEgKzgyLDggQEAgcHVibGljOgogICAgIHZpcnR1
YWwgflRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QoKQogICAgIHsKICAgICAgICAgdGV4dHVyZU1hbmFn
ZXJDbGVhckFsbE1lbW9yeShtX3RleHR1cmVNYW5hZ2VyLmdldCgpLCBtX3Jlc291cmNlUHJvdmlk
ZXIuZ2V0KCkpOwotICAgICAgICB7Ci0gICAgICAgICAgICBEZWJ1Z1Njb3BlZFNldEltcGxUaHJl
YWRBbmRNYWluVGhyZWFkQmxvY2tlZCBpbXBsVGhyZWFkQW5kTWFpblRocmVhZEJsb2NrZWQ7Ci0g
ICAgICAgICAgICBtX3Jlc291cmNlUHJvdmlkZXIuY2xlYXIoKTsKLSAgICAgICAgfQotICAgICAg
ICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNodXRkb3duKCk7CisgICAgICAgIERlYnVnU2NvcGVk
U2V0SW1wbFRocmVhZEFuZE1haW5UaHJlYWRCbG9ja2VkIGltcGxUaHJlYWRBbmRNYWluVGhyZWFk
QmxvY2tlZDsKKyAgICAgICAgbV9yZXNvdXJjZVByb3ZpZGVyLmNsZWFyKCk7CiAgICAgfQogCiAg
ICAgLy8gSGVscGVyIGNsYXNzZXMgYW5kIGZ1bmN0aW9ucyB0aGF0IHNldCB0aGUgY3VycmVudCB0
aHJlYWQgdG8gYmUgdGhlIGltcGwgdGhyZWFkCkBAIC0xNzEsNiArMTY4LDcgQEAgcHVibGljOgog
ICAgIH0KIAogcHVibGljOgorICAgIFdlYktpdFRlc3RzOjpXZWJDb21wb3NpdG9ySW5pdGlhbGl6
ZXIgbV9jb21wb3NpdG9ySW5pdGlhbGl6ZXI7CiAgICAgT3duUHRyPENDR3JhcGhpY3NDb250ZXh0
PiBtX2NvbnRleHQ7CiAgICAgT3duUHRyPENDUmVzb3VyY2VQcm92aWRlcj4gbV9yZXNvdXJjZVBy
b3ZpZGVyOwogICAgIENDVGV4dHVyZVVwZGF0ZVF1ZXVlIG1fcXVldWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbml0aWFsaXplci5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kMDg5M2FlY2RjNDg1YjM0MDY1Njc3MzJkZDFmNmZkODI3NzMxOGEzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJDb21wb3NpdG9y
SW5pdGlhbGl6ZXIuaApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEy
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFdl
YkNvbXBvc2l0b3JJbml0aWFsaXplcl9oCisjZGVmaW5lIFdlYkNvbXBvc2l0b3JJbml0aWFsaXpl
cl9oCisKKyNpbmNsdWRlIDxwdWJsaWMvUGxhdGZvcm0uaD4KKyNpbmNsdWRlIDxwdWJsaWMvV2Vi
Q29tcG9zaXRvclN1cHBvcnQuaD4KKyNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJUaHJlYWQ7Cit9CisKK25hbWVzcGFjZSBXZWJLaXRU
ZXN0cyB7CisKK2NsYXNzIFdlYkNvbXBvc2l0b3JJbml0aWFsaXplciB7CisgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoV2ViQ29tcG9zaXRvckluaXRpYWxpemVyKTsKK3B1YmxpYzoKKyAgICBleHBs
aWNpdCBXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIoV2ViS2l0OjpXZWJUaHJlYWQqIHRocmVhZCkK
KyAgICB7CisgICAgICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1
cHBvcnQoKS0+aW5pdGlhbGl6ZSh0aHJlYWQpOworICAgIH0KKworICAgIH5XZWJDb21wb3NpdG9y
SW5pdGlhbGl6ZXIoKQorICAgIHsKKyAgICAgICAgV2ViS2l0OjpQbGF0Zm9ybTo6Y3VycmVudCgp
LT5jb21wb3NpdG9yU3VwcG9ydCgpLT5zaHV0ZG93bigpOworICAgIH0KK307CisKK30KKworI2Vu
ZGlmIC8vIFdlYkNvbXBvc2l0b3JJbml0aWFsaXplcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJ
bXBsVGVzdC5jcHAKaW5kZXggODJlM2I1NDZhNTM3NzNmYzYwYzFmMzJjNWVlYTlhYmU1MDQ0ZWFh
OC4uMWIwNzdlYzQyMTdlYmRiMTFlYzJhOGIxMDdhNDM0OThjMTY3ZWU5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1w
bFRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGxUZXN0LmNwcApAQCAtMzAsMTQgKzMwLDE0IEBACiAjaW5jbHVkZSAi
Q0NBY3RpdmVHZXN0dXJlQW5pbWF0aW9uLmgiCiAjaW5jbHVkZSAiQ0NJbnB1dEhhbmRsZXIuaCIK
ICNpbmNsdWRlICJDQ1NpbmdsZVRocmVhZFByb3h5LmgiCisjaW5jbHVkZSAiV2ViQ29tcG9zaXRv
ckluaXRpYWxpemVyLmgiCiAjaW5jbHVkZSAiV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVu
dC5oIgogI2luY2x1ZGUgIldlYklucHV0RXZlbnQuaCIKKyNpbmNsdWRlIDxnbW9jay9nbW9jay5o
PgorI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0
b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViRmxvYXRQb2ludC5oPgogI2luY2x1ZGUgPHB1Ymxp
Yy9XZWJQb2ludC5oPgotCi0jaW5jbHVkZSA8Z21vY2svZ21vY2suaD4KLSNpbmNsdWRlIDxndGVz
dC9ndGVzdC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKQEAgLTkzLDcgKzkzLDcgQEAgcHVibGljOgogCiBURVNUKFdlYkNvbXBvc2l0b3JJbnB1
dEhhbmRsZXJJbXBsLCBmcm9tSWRlbnRpZmllcikKIHsKLSAgICBXZWJDb21wb3NpdG9yOjppbml0
aWFsaXplKDApOworICAgIFdlYktpdFRlc3RzOjpXZWJDb21wb3NpdG9ySW5pdGlhbGl6ZXIgaW5p
dGlhbGl6ZXIoMCk7CiAgICAgV2ViQ29yZTo6RGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGFsd2F5
c0ltcGxUaHJlYWQ7CiAKICAgICAvLyBCZWZvcmUgY3JlYXRpbmcgYW55IFdlYkNvbXBvc2l0b3JJ
bnB1dEhhbmRsZXJzLCBsb29rdXBzIGZvciBhbnkgdmFsdWUgc2hvdWxkIGZhaWwgYW5kIG5vdCBj
cmFzaC4KQEAgLTExNCwyNiArMTE0LDEzIEBAIFRFU1QoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxl
ckltcGwsIGZyb21JZGVudGlmaWVyKQogCiAgICAgLy8gQWZ0ZXIgdGhlIGNvbXBvc2l0b3IgaXMg
ZGVzdHJveWVkLCBpdHMgZW50cnkgc2hvdWxkIGJlIHJlbW92ZWQgZnJvbSB0aGUgbWFwLgogICAg
IEVYUEVDVF9FUSgwLCBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyOjpmcm9tSWRlbnRpZmllcihj
b21wb3NpdG9ySWRlbnRpZmllcikpOwotICAgIFdlYkNvbXBvc2l0b3I6OnNodXRkb3duKCk7CiB9
CiAKLWNsYXNzIFdlYkNvbXBvc2l0b3JJbml0aWFsaXplciB7Ci1wdWJsaWM6Ci0gICAgV2ViQ29t
cG9zaXRvckluaXRpYWxpemVyKCkKLSAgICB7Ci0gICAgICAgIFdlYkNvbXBvc2l0b3I6OmluaXRp
YWxpemUoMCk7Ci0gICAgfQotCi0gICAgfldlYkNvbXBvc2l0b3JJbml0aWFsaXplcigpCi0gICAg
ewotICAgICAgICBXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOwotICAgIH0KLX07Ci0KIGNsYXNz
IFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0
IHsKIHB1YmxpYzoKICAgICBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QoKQotICAg
ICAgICA6IG1fZXhwZWN0ZWREaXNwb3NpdGlvbihEaWRIYW5kbGUpCisgICAgICAgIDogbV9pbml0
aWFsaXplcigwKQorICAgICAgICAsIG1fZXhwZWN0ZWREaXNwb3NpdGlvbihEaWRIYW5kbGUpCiAg
ICAgewogICAgICAgICBtX2lucHV0SGFuZGxlciA9IFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJ
bXBsOjpjcmVhdGUoJm1fbW9ja0NDSW5wdXRIYW5kbGVyQ2xpZW50KTsKICAgICAgICAgbV9pbnB1
dEhhbmRsZXItPnNldENsaWVudCgmbV9tb2NrQ2xpZW50KTsKQEAgLTE3OCw3ICsxNjUsNyBAQCBw
cm90ZWN0ZWQ6CiAgICAgTW9ja1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQgbV9tb2Nr
Q2xpZW50OwogICAgIFdlYkdlc3R1cmVFdmVudCBnZXN0dXJlOwogICAgIFdlYkNvcmU6OkRlYnVn
U2NvcGVkU2V0SW1wbFRocmVhZCBhbHdheXNJbXBsVGhyZWFkOwotICAgIFdlYkNvbXBvc2l0b3JJ
bml0aWFsaXplciBpbml0aWFsaXplcjsKKyAgICBXZWJLaXRUZXN0czo6V2ViQ29tcG9zaXRvcklu
aXRpYWxpemVyIG1faW5pdGlhbGl6ZXI7CiAKICAgICBlbnVtIEV4cGVjdGVkRGlzcG9zaXRpb24g
eyBEaWRIYW5kbGUsIERpZE5vdEhhbmRsZSwgRHJvcEV2ZW50IH07CiAgICAgRXhwZWN0ZWREaXNw
b3NpdGlvbiBtX2V4cGVjdGVkRGlzcG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL1dlYkxheWVyVGVzdC5jcHAKaW5kZXggNTg3M2JhZDRiYTM4NjBiMjk5MTAwZDY4ZjE3
ZmYzYTE4MDhkM2Q2MS4uZWI1NDRiMjlmZDRlOGMyNWFmNmE2MTk3YTM3ZGNmNTZjMTRkOWViMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJMYXllclRlc3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJUZXN0LmNwcApAQCAt
MjYsOSArMjYsOSBAQAogI2luY2x1ZGUgPHB1YmxpYy9XZWJMYXllci5oPgogCiAjaW5jbHVkZSAi
Q29tcG9zaXRvckZha2VXZWJHcmFwaGljc0NvbnRleHQzRC5oIgorI2luY2x1ZGUgIldlYkNvbXBv
c2l0b3JJbml0aWFsaXplci5oIgogI2luY2x1ZGUgIldlYkxheWVySW1wbC5oIgogI2luY2x1ZGUg
IldlYkxheWVyVHJlZVZpZXdUZXN0Q29tbW9uLmgiCi0jaW5jbHVkZSA8cHVibGljL1dlYkNvbXBv
c2l0b3IuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViQ29udGVudExheWVyLmg+CiAjaW5jbHVkZSA8
cHVibGljL1dlYkNvbnRlbnRMYXllckNsaWVudC5oPgogI2luY2x1ZGUgPHB1YmxpYy9XZWJFeHRl
cm5hbFRleHR1cmVMYXllci5oPgpAQCAtNTksMTAgKzU5LDEzIEBAIHB1YmxpYzoKIAogY2xhc3Mg
V2ViTGF5ZXJUZXN0IDogcHVibGljIFRlc3QgewogcHVibGljOgorICAgIFdlYkxheWVyVGVzdCgp
CisgICAgICAgIDogbV9jb21wb3NpdG9ySW5pdGlhbGl6ZXIoMCkKKyAgICB7CisgICAgfQorCiAg
ICAgdmlydHVhbCB2b2lkIFNldFVwKCkKICAgICB7Ci0gICAgICAgIC8vIEluaXRpYWxpemUgd2l0
aG91dCB0aHJlYWRpbmcgc3VwcG9ydC4KLSAgICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjpp
bml0aWFsaXplKDApOwogICAgICAgICBtX3Jvb3RMYXllciA9IGFkb3B0UHRyKFdlYkxheWVyOjpj
cmVhdGUoKSk7CiAgICAgICAgIEVYUEVDVF9DQUxMKG1fY2xpZW50LCBzY2hlZHVsZUNvbXBvc2l0
ZSgpKS5UaW1lcyhBbnlOdW1iZXIoKSk7CiAgICAgICAgIEVYUEVDVF9UUlVFKG1fdmlldyA9IGFk
b3B0UHRyKFdlYkxheWVyVHJlZVZpZXc6OmNyZWF0ZSgmbV9jbGllbnQsICptX3Jvb3RMYXllciwg
V2ViTGF5ZXJUcmVlVmlldzo6U2V0dGluZ3MoKSkpKTsKQEAgLTc1LDEwICs3OCwxMCBAQCBwdWJs
aWM6CiAgICAgICAgIEVYUEVDVF9DQUxMKG1fY2xpZW50LCBzY2hlZHVsZUNvbXBvc2l0ZSgpKS5U
aW1lcyhBbnlOdW1iZXIoKSk7CiAgICAgICAgIG1fcm9vdExheWVyLmNsZWFyKCk7CiAgICAgICAg
IG1fdmlldy5jbGVhcigpOwotICAgICAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNodXRkb3du
KCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CisgICAgV2ViS2l0VGVzdHM6OldlYkNvbXBvc2l0b3JJ
bml0aWFsaXplciBtX2NvbXBvc2l0b3JJbml0aWFsaXplcjsKICAgICBNb2NrV2ViTGF5ZXJUcmVl
Vmlld0NsaWVudCBtX2NsaWVudDsKICAgICBPd25QdHI8V2ViTGF5ZXI+IG1fcm9vdExheWVyOwog
ICAgIE93blB0cjxXZWJMYXllclRyZWVWaWV3PiBtX3ZpZXc7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkxheWVyVHJlZVZpZXdUZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3QuY3BwCmluZGV4IDZhZDE3
ZjU2MGY3YTliYmMwZGJjM2E0OTE0MjhiZDg0OTZhNGUyYWEuLmMxMzZlMDFiZWIwODY1NjEzYmQ2
NDA5ODZlZjEyZGJiYjFmZGFiMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvV2ViTGF5ZXJUcmVlVmlld1Rlc3QuY3BwCkBAIC0zMSw3ICszMSw3IEBACiAjaW5j
bHVkZSAiV2ViTGF5ZXJUcmVlVmlld1Rlc3RDb21tb24uaCIKICNpbmNsdWRlIDxnbW9jay9nbW9j
ay5oPgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5oPgotI2luY2x1ZGUgPHB1YmxpYy9XZWJD
b21wb3NpdG9yLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0Lmg+CiAj
aW5jbHVkZSA8cHVibGljL1dlYkxheWVyLmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYkxheWVyVHJl
ZVZpZXdDbGllbnQuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViVGhyZWFkLmg+CkBAIC03Myw3ICs3
Myw3IEBAIHB1YmxpYzoKIAogICAgICAgICBtX3Jvb3RMYXllci5jbGVhcigpOwogICAgICAgICBt
X3ZpZXcuY2xlYXIoKTsKLSAgICAgICAgV2ViS2l0OjpXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigp
OworICAgICAgICBXZWJLaXQ6OlBsYXRmb3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0
KCktPnNodXRkb3duKCk7CiAgICAgfQogCiBwcm90ZWN0ZWQ6CkBAIC05MCw3ICs5MCw3IEBAIHBy
b3RlY3RlZDoKIAogICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29tcG9zaXRvcigpIE9WRVJS
SURFCiAgICAgewotICAgICAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUoMCk7
CisgICAgICAgIFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQo
KS0+aW5pdGlhbGl6ZSgwKTsKICAgICB9CiAKICAgICB2aXJ0dWFsIFdlYkxheWVyVHJlZVZpZXdD
bGllbnQqIGNsaWVudCgpIE9WRVJSSURFCkBAIC0xNjksNyArMTY5LDcgQEAgcHJvdGVjdGVkOgog
ICAgIHZpcnR1YWwgdm9pZCBpbml0aWFsaXplQ29tcG9zaXRvcigpIE9WRVJSSURFCiAgICAgewog
ICAgICAgICBtX3dlYlRocmVhZCA9IGFkb3B0UHRyKFdlYktpdDo6UGxhdGZvcm06OmN1cnJlbnQo
KS0+Y3JlYXRlVGhyZWFkKCJXZWJMYXllclRyZWVWaWV3VGVzdCIpKTsKLSAgICAgICAgV2ViQ29t
cG9zaXRvcjo6aW5pdGlhbGl6ZShtX3dlYlRocmVhZC5nZXQoKSk7CisgICAgICAgIFdlYktpdDo6
UGxhdGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+aW5pdGlhbGl6ZShtX3dl
YlRocmVhZC5nZXQoKSk7CiAgICAgfQogCiAgICAgdmlydHVhbCBXZWJMYXllclRyZWVWaWV3Q2xp
ZW50KiBjbGllbnQoKSBPVkVSUklERQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9v
bHMvQ2hhbmdlTG9nCmluZGV4IGNiODI3ZmRhYzkxYTQxODU0MTQyMWYzYzFiN2JkZDRkOTNhOTI0
MmYuLmQwYzkyNzI3N2Y1NTkwMzVjZTM0NjU3MjVhMDZiZDg4NzYyODc2NzIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAor
MjAxMi0wOS0wNiAgSmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFtjaHJvbWl1bV0gVXNlIFdlYkNvbXBvc2l0b3JTdXBwb3J0IGZ1bmN0aW9ucyBpbnN0ZWFk
IG9mIFdlYkNvbXBvc2l0b3Igc3RhdGljcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9OTYwMDcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGaXhlcyBpbml0aWFsaXphdGlvbiAvIHNldHRpbmdzIGNvZGUgdG8g
dXNlIFdlYkNvbXBvc2l0b3JTdXBwb3J0LgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAobWFpbik6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RTaGVsbDo6
aW5pdGlhbGl6ZSk6CisgICAgICAgIChUZXN0U2hlbGw6OnNldFBlclRpbGVQYWludGluZ0VuYWJs
ZWQpOgorCiAyMDEyLTA5LTA2ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lh
LmNvbT4KIAogICAgICAgICBbUXRdIEZpeCBidWlsZCBvbiBNYWMgT1MgWCAxMC42CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggOWE4
YmQ3ZmQ0MmU3Y2I4YTg0NGQ5YTNjYTIyMTIwZTlkOTdhMjk4ZS4uYmVlMTc3N2M2ZmRlNzkzY2U3
OGE3Y2Q2ZmJhMmZiZGNkNmFkOWEzMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIk1v
Y2tXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJUZXN0U2hlbGwuaCIKICNpbmNs
dWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgotI2luY2x1ZGUgPHB1YmxpYy9X
ZWJDb21wb3NpdG9yLmg+CisjaW5jbHVkZSA8cHVibGljL1dlYkNvbXBvc2l0b3JTdXBwb3J0Lmg+
CiAjaW5jbHVkZSA8djgvaW5jbHVkZS92OC10ZXN0aW5nLmg+CiAjaW5jbHVkZSA8djgvaW5jbHVk
ZS92OC5oPgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTI1OSw3ICsyNTksNyBAQCBpbnQg
bWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQogICAgIH0KIAogICAgIC8vIFNodXRkb3duIFdl
YkNvbXBvc2l0b3IgYWZ0ZXIgVGVzdFNoZWxsIGlzIGRlc3RydWN0ZWQgcHJvcGVybHkuCi0gICAg
V2ViS2l0OjpXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOworICAgIFdlYktpdDo6UGxhdGZvcm06
OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+c2h1dGRvd24oKTsKIAogICAgIHJldHVy
biBFWElUX1NVQ0NFU1M7CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0U2hlbGwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNo
ZWxsLmNwcAppbmRleCA5YWJiMTNmYWM0MzY4NThlMGE5OTAyNDY3OGRjNmVkNjkxMGZiMWIxLi5l
NWU5ZGVkNmFlMzBmMTllYWNiNWVmMDg0ZjhkODdjOWM0ZTQ2M2JmIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKQEAgLTUzLDcgKzUzLDcgQEAKICNpbmNs
dWRlICJ3ZWJraXQvc3VwcG9ydC93ZWJraXRfc3VwcG9ydC5oIgogI2luY2x1ZGUgIndlYmtpdC9z
dXBwb3J0L3dlYmtpdF9zdXBwb3J0X2dmeC5oIgogI2luY2x1ZGUgPHB1YmxpYy9QbGF0Zm9ybS5o
PgotI2luY2x1ZGUgPHB1YmxpYy9XZWJDb21wb3NpdG9yLmg+CisjaW5jbHVkZSA8cHVibGljL1dl
YkNvbXBvc2l0b3JTdXBwb3J0Lmg+CiAjaW5jbHVkZSA8cHVibGljL1dlYlBvaW50Lmg+CiAjaW5j
bHVkZSA8cHVibGljL1dlYlNpemUuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViU3RyaW5nLmg+CkBA
IC0xNjIsMTEgKzE2Miw5IEBAIHZvaWQgVGVzdFNoZWxsOjppbml0aWFsaXplKCkKIAogICAgIFdU
Rjo6aW5pdGlhbGl6ZVRocmVhZGluZygpOwogCi0gICAgaWYgKG1fdGhyZWFkZWRDb21wb3NpdGlu
Z0VuYWJsZWQpIHsKKyAgICBpZiAobV90aHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCkKICAgICAg
ICAgbV93ZWJDb21wb3NpdG9yVGhyZWFkID0gYWRvcHRQdHIoV2ViS2l0OjpQbGF0Zm9ybTo6Y3Vy
cmVudCgpLT5jcmVhdGVUaHJlYWQoIkNvbXBvc2l0b3IiKSk7Ci0gICAgICAgIFdlYkNvbXBvc2l0
b3I6OmluaXRpYWxpemUobV93ZWJDb21wb3NpdG9yVGhyZWFkLmdldCgpKTsKLSAgICB9IGVsc2UK
LSAgICAgICAgV2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZSgwKTsKKyAgICBXZWJLaXQ6OlBsYXRm
b3JtOjpjdXJyZW50KCktPmNvbXBvc2l0b3JTdXBwb3J0KCktPmluaXRpYWxpemUobV93ZWJDb21w
b3NpdG9yVGhyZWFkLmdldCgpKTsKIAogICAgIGNyZWF0ZU1haW5XaW5kb3coKTsKIH0KQEAgLTM4
MSw3ICszNzksNyBAQCB2b2lkIFRlc3RTaGVsbDo6dGVzdFRpbWVkT3V0KCkKIAogdm9pZCBUZXN0
U2hlbGw6OnNldFBlclRpbGVQYWludGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewotICAgIFdl
YkNvbXBvc2l0b3I6OnNldFBlclRpbGVQYWludGluZ0VuYWJsZWQoZW5hYmxlZCk7CisgICAgUGxh
dGZvcm06OmN1cnJlbnQoKS0+Y29tcG9zaXRvclN1cHBvcnQoKS0+c2V0UGVyVGlsZVBhaW50aW5n
RW5hYmxlZChlbmFibGVkKTsKIH0KIAogc3RhdGljIHN0cmluZyBkdW1wRG9jdW1lbnRUZXh0KFdl
YkZyYW1lKiBmcmFtZSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>