<?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>94726</bug_id>
          
          <creation_ts>2012-08-22 10:47:41 -0700</creation_ts>
          <short_desc>[CSS Shaders] Add CustomFilterTransformParameter</short_desc>
          <delta_ts>2012-09-04 17:32:40 -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>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>71401</dup_id>
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>94728</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Joshua Netterfield">jnetterfield</reporter>
          <assigned_to name="Arvid Nilsson">anilsson</assigned_to>
          <cc>achicu</cc>
    
    <cc>anilsson</cc>
    
    <cc>mvujovic</cc>
    
    <cc>rwlbuis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>702052</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Netterfield">jnetterfield</who>
    <bug_when>2012-08-22 10:47:41 -0700</bug_when>
    <thetext>Add support for the transform parameters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703464</commentid>
    <comment_count>1</comment_count>
    <who name="Joshua Netterfield">jnetterfield</who>
    <bug_when>2012-08-23 15:32:59 -0700</bug_when>
    <thetext>Duplicate.

*** This bug has been marked as a duplicate of bug 71401 ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711597</commentid>
    <comment_count>2</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-09-04 17:31:38 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711598</commentid>
    <comment_count>3</comment_count>
      <attachid>162139</attachid>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-09-04 17:31:43 -0700</bug_when>
    <thetext>Created attachment 162139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>711600</commentid>
    <comment_count>4</comment_count>
    <who name="Arvid Nilsson">anilsson</who>
    <bug_when>2012-09-04 17:32:22 -0700</bug_when>
    <thetext>Oops

*** This bug has been marked as a duplicate of bug 71401 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162139</attachid>
            <date>2012-09-04 17:31:43 -0700</date>
            <delta_ts>2012-09-04 17:32:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94726-20120905023124.patch</filename>
            <type>text/plain</type>
            <size>49455</size>
            <attacher name="Arvid Nilsson">anilsson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM0ZGExM2ZmN2M4MDU4
YTNjMjQwN2UzOTQ0MzY0MzA4ZGVmZGI5Zi4uMjczNThlYjFhMDEyMTIxZmJiYzk1NjcwYTBhNDU2
NmEzYjIzZThlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk1IEBACisyMDEyLTA4LTI5ICBKb3No
dWEgTmV0dGVyZmllbGQgIDxqbmV0dGVyZmllbGRAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tC
ZXJyeV0gRW5hYmxlIENTUyBTaGFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05NDcyOAorCisgICAgICAgIEVuYWJsZSBDU1MgU2hhZGVycyBmb3Ig
dGhlIEJsYWNrQmVycnkgcG9ydC4KKworICAgICAgICBDU1MgU2hhZGVycyAoYWxzbyBjYWxsZWQg
Q3VzdG9tIEZpbHRlcnMpIGFyZSBDU1MgRmlsdGVyIEVmZmVjdHMKKyAgICAgICAgdGhhdCBhcmUg
ZGVmaW5lZCBieSBhIEdMU0wgRVMgdmVydGV4IGFuZCBmcmFnbWVudCBzaGFkZXIuIEZvciBhIHF1
aWNrCisgICAgICAgIGludHJvZHVjdGlvbiwgc2VlIGh0dHA6Ly93d3cuYWRvYmUuY29tL2Rldm5l
dC9odG1sNS9hcnRpY2xlcy9jc3Mtc2hhZGVycy5odG1sLgorCisgICAgICAgIFNlZSBhbHNvIFdl
YktpdCBidWdzICM5MjY4NSwgIzk0NzI0IGFuZCAjOTQ3MjUuCisKKyAgICAgICAgUGF0Y2ggd2Fz
IHVwZGF0ZWQgYnkgQXJ2aWQgTmlsc3NvbiB0byB1c2UgQmxhY2tCZXJyeS1zcGVjaWZpYworICAg
ICAgICBMYXllckNvbXBpbGVkUHJvZ3JhbSBhbmQgTGF5ZXJGaWx0ZXJNZXNoIGNsYXNzZXMgYWZ0
ZXIgcmVzb2x1dGlvbiBvZgorICAgICAgICBidWcgIzk0NzI1LgorCisgICAgICAgIE5vIG5ldyB0
ZXN0cywgYmVjYXVzZSB0aGlzIGZ1bmN0aW9uYWxpdHkgaXMgYWxyZWFkeSBjb3ZlcmVkIGJ5Cisg
ICAgICAgIGNzczMvZmlsdGVycy9jdXN0b20vKi4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0
OgorICAgICAgICAqIFBsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZToKKyAgICAgICAgKiBjc3MvV2Vi
S2l0Q1NTTWl4RnVuY3Rpb25WYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBpbGVkUHJvZ3JhbS5jcHA6IEFk
ZGVkLgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNvbXBpbGVk
UHJvZ3JhbTo6TGF5ZXJDb21waWxlZFByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJD
b21waWxlZFByb2dyYW06OmNvbXBpbGVTaGFkZXIpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJD
b21waWxlZFByb2dyYW06OmxpbmtQcm9ncmFtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29t
cGlsZWRQcm9ncmFtOjppbml0aWFsaXplUGFyYW1ldGVyTG9jYXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheWVyQ29tcGlsZWRQcm9ncmFtOjp1bmlmb3JtTG9jYXRpb25CeU5hbWUpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5ZXJDb21waWxlZFByb2dyYW06On5MYXllckNvbXBpbGVkUHJvZ3Jh
bSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBpbGVk
UHJvZ3JhbS5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoTGF5ZXJDb21w
aWxlZFByb2dyYW0pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDb21waWxlZFByb2dyYW06OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNvbXBpbGVkUHJvZ3JhbTo6cG9zaXRpb25B
dHRyaWJMb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNvbXBpbGVkUHJvZ3JhbTo6
dGV4QXR0cmliTG9jYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJDb21waWxlZFByb2dy
YW06Om1lc2hBdHRyaWJMb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNvbXBpbGVk
UHJvZ3JhbTo6dHJpYW5nbGVBdHRyaWJMb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXll
ckNvbXBpbGVkUHJvZ3JhbTo6bWVzaEJveExvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eWVyQ29tcGlsZWRQcm9ncmFtOjpwcm9qZWN0aW9uTWF0cml4TG9jYXRpb24pOgorICAgICAgICAo
V2ViQ29yZTo6TGF5ZXJDb21waWxlZFByb2dyYW06OnRpbGVTaXplTG9jYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5ZXJDb21waWxlZFByb2dyYW06Om1lc2hTaXplTG9jYXRpb24pOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5ZXJDb21waWxlZFByb2dyYW06OnNhbXBsZXJMb2NhdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXllckNvbXBpbGVkUHJvZ3JhbTo6Y29udGVudFNhbXBsZXJMb2Nh
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNvbXBpbGVkUHJvZ3JhbTo6c2FtcGxlclNp
emVMb2NhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckNvbXBpbGVkUHJvZ3JhbTo6aW50
ZXJuYWxUZXhDb29yZEF0dHJpYkxvY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29t
cGlsZWRQcm9ncmFtOjppc0luaXRpYWxpemVkKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyQ29t
cGlsZWRQcm9ncmFtOjpwcm9ncmFtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFj
a2JlcnJ5L0xheWVyRmlsdGVyTWVzaC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXllckZpbHRlck1lc2g6OkxheWVyRmlsdGVyTWVzaCk6CisgICAg
ICAgIChXZWJDb3JlOjpMYXllckZpbHRlck1lc2g6On5MYXllckZpbHRlck1lc2gpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJGaWx0ZXJNZXNoLmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChMYXllckZpbHRlck1lc2gpOgorICAgICAg
ICAoV2ViQ29yZTo6TGF5ZXJGaWx0ZXJNZXNoOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5ZXJGaWx0ZXJNZXNoOjp2ZXJ0aWNlc0J1ZmZlck9iamVjdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXllckZpbHRlck1lc2g6OmJ5dGVzUGVyVmVydGV4KToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eWVyRmlsdGVyTWVzaDo6ZWxlbWVudHNCdWZmZXJPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5ZXJGaWx0ZXJNZXNoOjppbmRpY2VzQ291bnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJG
aWx0ZXJNZXNoOjptZXNoQm94KToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyRmlsdGVyTWVzaDo6
bWVzaFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJGaWx0ZXJNZXNoOjpjb2x1bW5Db3Vu
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckZpbHRlck1lc2g6OnJvd0NvdW50KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyRmlsdGVyUmVuZGVyZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5ZXJGaWx0ZXJSZW5kZXJlckFjdGlvbjo6TGF5ZXJGaWx0
ZXJSZW5kZXJlckFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckZpbHRlclJlbmRlcmVy
QWN0aW9uOjp1c2VBY3Rpb25Pbik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckZpbHRlclJlbmRl
cmVyOjppbml0aWFsaXplU2hhcmVkR0xPYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6TGF5ZXJGaWx0ZXJSZW5kZXJlcjo6Z2V0Q29tcGlsZWRQcm9ncmFtKToK
KyAgICAgICAgKFdlYkNvcmU6OkxheWVyRmlsdGVyUmVuZGVyZXI6OmdldEZpbHRlck1lc2gpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5ZXJGaWx0ZXJSZW5kZXJlcjo6ZmlsdGVyTWVzaERlc3Ryb3ll
ZCk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckZpbHRlclJlbmRlcmVyOjphY3Rpb25zRm9yT3Bl
cmF0aW9ucyk6CisgICAgICAgIChXZWJDb3JlOjpMYXllckZpbHRlclJlbmRlcmVyOjphcHBseUFj
dGlvbnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJGaWx0
ZXJSZW5kZXJlci5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChMYXllckZpbHRlclJl
bmRlcmVyQWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyRmlsdGVyUmVuZGVyZXJBY3Rp
b246OnVzZUN1c3RvbVNoYWRlcik6CisgICAgICAgIChXZWJDb3JlOjpMYXllckZpbHRlclJlbmRl
cmVyQWN0aW9uOjphZG9wdE1lc2gpOgorICAgICAgICAoTGF5ZXJGaWx0ZXJSZW5kZXJlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllcldlYktpdFRocmVhZC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXllcldlYktpdFRocmVhZDo6ZmlsdGVyc0NhbkJlQ29t
cG9zaXRlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0
ZXJPcGVyYXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUZpbHRlck9wZXJhdGlvbjo6
cGFyYW1ldGVycyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21G
aWx0ZXJQYXJhbWV0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoQ3VzdG9tRmls
dGVyUGFyYW1ldGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsdGVyRWZmZWN0UmVuZGVyZXI6OmJ1aWxkKToKKwog
MjAxMi0wOS0wNCAgQXJ2aWQgTmlsc3NvbiAgPGFuaWxzc29uQHJpbS5jb20+CiAKICAgICAgICAg
W0NTUyBTaGFkZXJzXSBbQmxhY2tCZXJyeV0gUmVmYWN0b3IgQ3VzdG9tRmlsdGVyTWVzaCBhbmQg
Q3VzdG9tRmlsdGVyKlByb2dyYW0KQEAgLTYyMywxMSArNzE1LDExIEBACiAKICAgICAgICAgVGhp
cyBwYXRjaCBpbXBsZW1lbnRzIGNlcnRhaW4gbmV3IFBhcmFtZXRlciB0eXBlcywgaW5jbHVkaW5n
IHZlcnRleC9lbGVtZW50CiAgICAgICAgIGJ1ZmZlcnMgYW5kIHZlcnRleCBhdHRyaWJ1dGVzIHdo
aWNoIGFyZSBuZWVkZWQgdG8gaW1wbGVtZW50IGNvbXBvc2l0ZWQKLSAgICAgICAgQ1NTIFNoYWRl
cnMgb24gQkIxMC4gSW4gYWRkaXRpb24sIGEgbmV3IGRyYXdpbmcgbW9kZSBpcyByZXF1aXJlZCBp
biBvcmRlcgorICAgICAgICBDU1MgU2hhZGVycyBvbiBCbGFja0JlcnJ5LiBJbiBhZGRpdGlvbiwg
YSBuZXcgZHJhd2luZyBtb2RlIGlzIHJlcXVpcmVkIGluIG9yZGVyCiAgICAgICAgIHRvIGRyYXcg
Q1NTIFNoYWRlcnMgbWVzaGVzIGZyb20gdmVydGV4L2VsZW1lbnQgYnVmZmVycy4KIAogICAgICAg
ICBObyBuZXcgdGVzdHMsIGJlY2F1c2UgdGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5vIG5ldyBmdW5j
dGlvbmFsaXR5LiBXaGVuCi0gICAgICAgIHRoZSBwYXRjaCB3aGljaCBlbmFibGVzIENTUyBTaGFk
ZXJzIG9uIEJCMTAgaW4gdXBzdHJlYW1lZCwgdGVzdHMgZm9yCisgICAgICAgIHRoZSBwYXRjaCB3
aGljaCBlbmFibGVzIENTUyBTaGFkZXJzIG9uIEJsYWNrQmVycnkgaW4gdXBzdHJlYW1lZCwgdGVz
dHMgZm9yCiAgICAgICAgIENTUyBTaGFkZXJzIHdpbGwgcHJvdmUgdGhpcyBjb2RlIHRvIGJlIGNv
cnJlY3QuCiAKICAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyRmls
dGVyUmVuZGVyZXIuY3BwOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKaW5kZXggMThhNzMz
ZTA1NjEwOWQ4NGU0MzRjNTdhMmYzZjIzYWI2NGM0ZWE2Mi4uY2IwODFiMTg1NzNjY2UzZmEwNWEy
OTRjNWMxMmI1Zjk3NzkzMjgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjEgQEAKKzIwMTItMDgtMjkgIEpvc2h1YSBOZXR0ZXJmaWVsZCAgPGpuZXR0ZXJmaWVs
ZEByaW0uY29tPgorCisgICAgICAgIFtCbGFja0JlcnJ5XSBFbmFibGUgQ1NTIFNoYWRlcnMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NzI4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIENTUyBT
aGFkZXJzIGZvciB0aGUgQmxhY2tCZXJyeSBwb3J0LgorCisgICAgICAgIENTUyBTaGFkZXJzIChh
bHNvIGNhbGxlZCBDdXN0b20gRmlsdGVycykgYXJlIENTUyBGaWx0ZXIgRWZmZWN0cworICAgICAg
ICB0aGF0IGFyZSBkZWZpbmVkIGJ5IGEgR0xTTCBFUyB2ZXJ0ZXggYW5kIGZyYWdtZW50IHNoYWRl
ci4gRm9yIGEgcXVpY2sKKyAgICAgICAgaW50cm9kdWN0aW9uLCBzZWUgaHR0cDovL3d3dy5hZG9i
ZS5jb20vZGV2bmV0L2h0bWw1L2FydGljbGVzL2Nzcy1zaGFkZXJzLmh0bWwuCisKKyAgICAgICAg
U2VlIGFsc28gV2ViS2l0IGJ1Z3MgIzkyNjg1LCAjOTQ3MjQgYW5kICM5NDcyNS4KKworICAgICAg
ICAqIEFwaS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6V2ViUGFn
ZVByaXZhdGU6OmluaXQpOgorCiAyMDEyLTA4LTMxICBKYWNreSBKaWFuZyAgPHpoYWppYW5nQHJp
bS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEFTU0VSVCBmYWlsdXJlIGluIFJlbmRlckJs
b2NrOjpjaGVja1Bvc2l0aW9uZWRPYmplY3RzTmVlZExheW91dApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApp
bmRleCA4OTk5ZDJhY2MzYmVjMDM2MGM4YjBiOTJkMWU2OTk5MWE1YjlmNWEwLi5kY2MwZjFlYTgw
NjhmNDFkNTNjOWZjZTQzMzkwNjQ0MjIyYTQxOWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAt
MTA2Myw2ICsxMDYzLDcgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIGNzcy9XZWJLaXRDU1NL
ZXlmcmFtZVJ1bGUuY3BwCiAgICAgY3NzL1dlYktpdENTU0tleWZyYW1lc1J1bGUuY3BwCiAgICAg
Y3NzL1dlYktpdENTU01hdHJpeC5jcHAKKyAgICBjc3MvV2ViS2l0Q1NTTWl4RnVuY3Rpb25WYWx1
ZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NTUmVnaW9uUnVsZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NT
U1ZHRG9jdW1lbnRWYWx1ZS5jcHAKICAgICBjc3MvV2ViS2l0Q1NTU2hhZGVyVmFsdWUuY3BwCkBA
IC0xODU3LDkgKzE4NTgsMTEgQEAgU0VUKFdlYkNvcmVfU09VUkNFUwogICAgIHBsYXRmb3JtL2dy
YXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyQ29tcGlsZWRQcm9ncmFtLmNwcAogICAgIHBsYXRm
b3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyR2xvYmFsQ29udGV4dC5jcHAKICAgICBw
bGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlck1lc2guY3BwCisgICAgcGxhdGZv
cm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmNwcAogICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUHJvZ3JhbS5jcHAKICAgICBwbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclByb2dyYW1JbmZvLmNwcAorICAgIHBs
YXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5jcHAK
ICAgICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0Rpc3RhbnRMaWdodFNvdXJjZS5jcHAKICAg
ICBwbGF0Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0ZFQmxlbmQuY3BwCiAgICAgcGxhdGZvcm0vZ3Jh
cGhpY3MvZmlsdGVycy9GRUNvbG9yTWF0cml4LmNwcApAQCAtMjExMiw2ICsyMTE1LDcgQEAgU0VU
KFdlYkNvcmVfU09VUkNFUwogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZUJveERhdGEuY3BwCiAg
ICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2FjaGVkSW1hZ2UuY3BwCiAgICAgcmVuZGVyaW5nL3N0
eWxlL1N0eWxlQ2FjaGVkSW1hZ2VTZXQuY3BwCisgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlQ2Fj
aGVkU2hhZGVyLmNwcAogICAgIHJlbmRlcmluZy9zdHlsZS9TdHlsZURlcHJlY2F0ZWRGbGV4aWJs
ZUJveERhdGEuY3BwCiAgICAgcmVuZGVyaW5nL3N0eWxlL1N0eWxlRmlsdGVyRGF0YS5jcHAKICAg
ICByZW5kZXJpbmcvc3R5bGUvU3R5bGVGbGV4aWJsZUJveERhdGEuY3BwCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QbGF0Zm9ybUJsYWNrQmVycnkuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9Q
bGF0Zm9ybUJsYWNrQmVycnkuY21ha2UKaW5kZXggYTlkNjRkYWEzZThkNTllMjY2YTIxOWE4Mjg5
MjUzZGFmOWFiOTc1YS4uYzFhOWMxZjQyODkyMWI5YjU2YjA0Y2NhMjg2ZGYyMDM1YWFjOTk2MCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUGxhdGZvcm1CbGFja0JlcnJ5LmNtYWtlCisrKyBi
L1NvdXJjZS9XZWJDb3JlL1BsYXRmb3JtQmxhY2tCZXJyeS5jbWFrZQpAQCAtMjk1LDggKzI5NSwx
MCBAQCBJRiAoV1RGX1VTRV9BQ0NFTEVSQVRFRF9DT01QT1NJVElORykKICAgICAgICAgJHtXRUJD
T1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9FR0xJbWFnZUxheWVyQ29tcG9z
aXRpbmdUaHJlYWRDbGllbnQuY3BwCiAgICAgICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dy
YXBoaWNzL2JsYWNrYmVycnkvR3JhcGhpY3NMYXllckJsYWNrQmVycnkuY3BwCiAgICAgICAgICR7
V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJBbmltYXRpb24u
Y3BwCisgICAgICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkv
TGF5ZXJDb21waWxlZFByb2dyYW0uY3BwCiAgICAgICAgICR7V0VCQ09SRV9ESVJ9L3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJDb21wb3NpdGluZ1RocmVhZC5jcHAKICAgICAgICAg
JHtXRUJDT1JFX0RJUn0vcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckZpbHRlclJl
bmRlcmVyLmNwcAorICAgICAgICAke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFj
a2JlcnJ5L0xheWVyRmlsdGVyTWVzaC5jcHAKICAgICAgICAgJHtXRUJDT1JFX0RJUn0vcGxhdGZv
cm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllclJlbmRlcmVyLmNwcAogICAgICAgICAke1dFQkNP
UkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyUmVuZGVyZXJTdXJmYWNl
LmNwcAogICAgICAgICAke1dFQkNPUkVfRElSfS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5
L0xheWVyVGlsZS5jcHAKQEAgLTMxMCw2ICszMTIsMTIgQEAgSUYgKFdURl9VU0VfQUNDRUxFUkFU
RURfQ09NUE9TSVRJTkcpCiAgICAgKQogRU5ESUYgKCkKIAorSUYgKEVOQUJMRV9DU1NfU0hBREVS
UykKKyAgICBMSVNUKEFQUEVORCBXZWJDb3JlX1NPVVJDRVMKKyAgICAgICAgJHtXRUJDT1JFX0RJ
Un0vcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9ibGFja2JlcnJ5L0N1c3RvbUZpbHRlclZhbGlk
YXRlZFByb2dyYW1CbGFja0JlcnJ5LmNwcAorICAgICkKK0VORElGICgpCisKIFNFVChXZWJDb3Jl
X0xJTktfRkxBR1MgIiR7V2ViQ29yZV9MSU5LX0ZMQUdTfSAtV2wsLS1uby1rZWVwLW1lbW9yeSIp
CiAKIFNFVChFTlZ7V0VCS0lURElSfSAke0NNQUtFX1NPVVJDRV9ESVJ9KQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01peEZ1bmN0aW9uVmFsdWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9XZWJLaXRDU1NNaXhGdW5jdGlvblZhbHVlLmgKaW5kZXggYWY5Nzk0YTE5NDNk
ZTQyNmI0ZTNhZmQyMTIwYTg2NDU0ZDExZjA5Yi4uNDM5OTY3ZDY3OWFiYjJmMTdlNWNhODJmYWYy
OTE3MTcyYTdiNGJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1dlYktpdENTU01p
eEZ1bmN0aW9uVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvV2ViS2l0Q1NTTWl4RnVu
Y3Rpb25WYWx1ZS5oCkBAIC0zNiw3ICszNiw5IEBACiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewotICAgIAorCitjbGFzcyBNZW1vcnlPYmplY3RJbmZv
OworCiBjbGFzcyBXZWJLaXRDU1NNaXhGdW5jdGlvblZhbHVlIDogcHVibGljIENTU1ZhbHVlTGlz
dCB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViS2l0Q1NTTWl4RnVuY3Rpb25W
YWx1ZT4gY3JlYXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2JsYWNrYmVycnkvTGF5ZXJDb21waWxlZFByb2dyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2tiZXJyeS9MYXllckNvbXBpbGVkUHJvZ3JhbS5jcHAKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWQ1NGIxNDY2NWRjNzA4ZTY3N2NmNTk0MGJlZThjYzI5N2I1NDdiNQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkv
TGF5ZXJDb21waWxlZFByb2dyYW0uY3BwCkBAIC0wLDAgKzEsMTU2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPi
gJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgor
ICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpbmNsdWRlICJMYXllckNvbXBpbGVkUHJvZ3JhbS5oIgorCisjaW5jbHVkZSAiQ1N0cmluZy5o
IgorCisjaW5jbHVkZSA8QmxhY2tCZXJyeVBsYXRmb3JtTG9nLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworTGF5ZXJDb21waWxlZFByb2dyYW06OkxheWVyQ29tcGlsZWRQcm9ncmFtKGNvbnN0
IFN0cmluZyYgdmFsaWRhdGVkVmVydGV4U2hhZGVyLCBjb25zdCBTdHJpbmcmIHZhbGlkYXRlZEZy
YWdtZW50U2hhZGVyKQorICAgIDogbV9wcm9ncmFtKDApCisgICAgLCBtX3Bvc2l0aW9uQXR0cmli
TG9jYXRpb24oLTEpCisgICAgLCBtX3RleEF0dHJpYkxvY2F0aW9uKC0xKQorICAgICwgbV9tZXNo
QXR0cmliTG9jYXRpb24oLTEpCisgICAgLCBtX3RyaWFuZ2xlQXR0cmliTG9jYXRpb24oLTEpCisg
ICAgLCBtX21lc2hCb3hMb2NhdGlvbigtMSkKKyAgICAsIG1fcHJvamVjdGlvbk1hdHJpeExvY2F0
aW9uKC0xKQorICAgICwgbV90aWxlU2l6ZUxvY2F0aW9uKC0xKQorICAgICwgbV9tZXNoU2l6ZUxv
Y2F0aW9uKC0xKQorICAgICwgbV9zYW1wbGVyTG9jYXRpb24oLTEpCisgICAgLCBtX3NhbXBsZXJT
aXplTG9jYXRpb24oLTEpCisgICAgLCBtX2NvbnRlbnRTYW1wbGVyTG9jYXRpb24oLTEpCisgICAg
LCBtX2ludGVybmFsVGV4Q29vcmRBdHRyaWJMb2NhdGlvbigtMSkKKyAgICAsIG1faXNJbml0aWFs
aXplZChmYWxzZSkKK3sKKyAgICBHTHVpbnQgdmVydGV4U2hhZGVyID0gY29tcGlsZVNoYWRlcihH
TF9WRVJURVhfU0hBREVSLCB2YWxpZGF0ZWRWZXJ0ZXhTaGFkZXIpOworICAgIGlmICghdmVydGV4
U2hhZGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBHTHVpbnQgZnJhZ21lbnRTaGFkZXIgPSBj
b21waWxlU2hhZGVyKEdMX0ZSQUdNRU5UX1NIQURFUiwgdmFsaWRhdGVkRnJhZ21lbnRTaGFkZXIp
OworICAgIGlmICghZnJhZ21lbnRTaGFkZXIpIHsKKyAgICAgICAgZ2xEZWxldGVTaGFkZXIodmVy
dGV4U2hhZGVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcHJvZ3JhbSA9IGxp
bmtQcm9ncmFtKHZlcnRleFNoYWRlciwgZnJhZ21lbnRTaGFkZXIpOworCisgICAgZ2xEZWxldGVT
aGFkZXIodmVydGV4U2hhZGVyKTsKKyAgICBnbERlbGV0ZVNoYWRlcihmcmFnbWVudFNoYWRlcik7
CisKKyAgICBpZiAoIW1fcHJvZ3JhbSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaW5pdGlhbGl6
ZVBhcmFtZXRlckxvY2F0aW9ucygpOworCisgICAgbV9pc0luaXRpYWxpemVkID0gdHJ1ZTsKK30K
KworR0x1aW50IExheWVyQ29tcGlsZWRQcm9ncmFtOjpjb21waWxlU2hhZGVyKEdMZW51bSBzaGFk
ZXJUeXBlLCBjb25zdCBTdHJpbmcmIHNoYWRlclN0cmluZykKK3sKKyAgICBBU1NFUlQoIXNoYWRl
clN0cmluZy5pc051bGwoKSk7CisKKyAgICBHTHVpbnQgc2hhZGVyID0gZ2xDcmVhdGVTaGFkZXIo
c2hhZGVyVHlwZSk7CisgICAgQ1N0cmluZyBzaGFkZXJDU3RyaW5nID0gc2hhZGVyU3RyaW5nLmxh
dGluMSgpOyAvLyBBTkdMRVdlYktpdEJyaWRnZSBjdXJyZW50bHkgdXNlcyBTdHJpbmc6OlN0cmlu
Zyhjb25zdCBjaGFyKikgd2hpY2ggaXMgdGhlIGxhdGluMSBjb25zdHJ1Y3RvcgorICAgIGNvbnN0
IGNoYXIqIHNoYWRlckRhdGEgPSBzaGFkZXJDU3RyaW5nLmRhdGEoKTsKKworICAgIGdsU2hhZGVy
U291cmNlKHNoYWRlciwgMSwgJnNoYWRlckRhdGEsIDApOworICAgIGdsQ29tcGlsZVNoYWRlcihz
aGFkZXIpOworCisgICAgaW50IGNvbXBpbGVkID0gMDsKKyAgICBnbEdldFNoYWRlcml2KHNoYWRl
ciwgR0xfQ09NUElMRV9TVEFUVVMsICZjb21waWxlZCk7CisgICAgaWYgKCFjb21waWxlZCkgewor
ICAgICAgICBjaGFyIGluZm9Mb2dbMjA0OF07CisgICAgICAgIEdMc2l6ZWkgbGVuZ3RoOworICAg
ICAgICBnbEdldFNoYWRlckluZm9Mb2coc2hhZGVyLCAyMDQ4LCAmbGVuZ3RoLCBpbmZvTG9nKTsK
KyAgICAgICAgQmxhY2tCZXJyeTo6UGxhdGZvcm06OmxvZ0Fsd2F5cyhCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6TG9nTGV2ZWxXYXJuLCAiRmFpbGVkIHRvIGNvbXBpbGUgcHJvZ3JhbTogJXMiLCAmaW5m
b0xvZ1swXSk7CisgICAgICAgIGdsRGVsZXRlU2hhZGVyKHNoYWRlcik7CisgICAgICAgIHJldHVy
biAwOworICAgIH0KKworICAgIHJldHVybiBzaGFkZXI7Cit9CisKK0dMdWludCBMYXllckNvbXBp
bGVkUHJvZ3JhbTo6bGlua1Byb2dyYW0oR0x1aW50IHZlcnRleFNoYWRlciwgR0x1aW50IGZyYWdt
ZW50U2hhZGVyKQoreworICAgIEdMdWludCBwcm9ncmFtID0gZ2xDcmVhdGVQcm9ncmFtKCk7Cisg
ICAgZ2xBdHRhY2hTaGFkZXIocHJvZ3JhbSwgdmVydGV4U2hhZGVyKTsKKyAgICBnbEF0dGFjaFNo
YWRlcihwcm9ncmFtLCBmcmFnbWVudFNoYWRlcik7CisgICAgZ2xMaW5rUHJvZ3JhbShwcm9ncmFt
KTsKKworICAgIGludCBsaW5rZWQgPSAwOworICAgIGdsR2V0UHJvZ3JhbWl2KHByb2dyYW0sIEdM
X0xJTktfU1RBVFVTLCAmbGlua2VkKTsKKyAgICBpZiAoIWxpbmtlZCkgeworICAgICAgICAvLyBG
SVhNRTogSW52YWxpZCB2ZXJ0ZXgvZnJhZ21lbnQgc2hhZGVyIGNvbWJpbmF0aW9uLiBUaHJvdyBz
b21lIGVycm9ycyBoZXJlLgorICAgICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzQ0MTYKKyAgICAgICAgZ2xEZWxldGVQcm9ncmFtKHByb2dyYW0pOworICAg
ICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gcHJvZ3JhbTsKK30KKwordm9pZCBM
YXllckNvbXBpbGVkUHJvZ3JhbTo6aW5pdGlhbGl6ZVBhcmFtZXRlckxvY2F0aW9ucygpCit7Cisg
ICAgbV9wb3NpdGlvbkF0dHJpYkxvY2F0aW9uID0gZ2xHZXRBdHRyaWJMb2NhdGlvbihtX3Byb2dy
YW0sICJhX3Bvc2l0aW9uIik7CisgICAgbV90ZXhBdHRyaWJMb2NhdGlvbiA9IGdsR2V0QXR0cmli
TG9jYXRpb24obV9wcm9ncmFtLCAiYV90ZXhDb29yZCIpOworICAgIG1fbWVzaEF0dHJpYkxvY2F0
aW9uID0gZ2xHZXRBdHRyaWJMb2NhdGlvbihtX3Byb2dyYW0sICJhX21lc2hDb29yZCIpOworICAg
IG1fdHJpYW5nbGVBdHRyaWJMb2NhdGlvbiA9IGdsR2V0QXR0cmliTG9jYXRpb24obV9wcm9ncmFt
LCAiYV90cmlhbmdsZUNvb3JkIik7CisgICAgbV9tZXNoQm94TG9jYXRpb24gPSBnbEdldFVuaWZv
cm1Mb2NhdGlvbihtX3Byb2dyYW0sICJ1X21lc2hCb3giKTsKKyAgICBtX3RpbGVTaXplTG9jYXRp
b24gPSBnbEdldFVuaWZvcm1Mb2NhdGlvbihtX3Byb2dyYW0sICJ1X3RpbGVTaXplIik7CisgICAg
bV9tZXNoU2l6ZUxvY2F0aW9uID0gZ2xHZXRVbmlmb3JtTG9jYXRpb24obV9wcm9ncmFtLCAidV9t
ZXNoU2l6ZSIpOworICAgIG1fcHJvamVjdGlvbk1hdHJpeExvY2F0aW9uID0gZ2xHZXRVbmlmb3Jt
TG9jYXRpb24obV9wcm9ncmFtLCAidV9wcm9qZWN0aW9uTWF0cml4Iik7CisgICAgbV9zYW1wbGVy
U2l6ZUxvY2F0aW9uID0gZ2xHZXRVbmlmb3JtTG9jYXRpb24obV9wcm9ncmFtLCAidV90ZXh0dXJl
U2l6ZSIpOworICAgIG1fY29udGVudFNhbXBsZXJMb2NhdGlvbiA9IGdsR2V0VW5pZm9ybUxvY2F0
aW9uKG1fcHJvZ3JhbSwgInVfY29udGVudFRleHR1cmUiKTsKKyAgICBtX2ludGVybmFsVGV4Q29v
cmRBdHRyaWJMb2NhdGlvbiA9IGdsR2V0QXR0cmliTG9jYXRpb24obV9wcm9ncmFtLCAiY3NzX2Ff
dGV4Q29vcmQiKTsKKyAgICBtX3NhbXBsZXJMb2NhdGlvbiA9IGdsR2V0VW5pZm9ybUxvY2F0aW9u
KG1fcHJvZ3JhbSwgImNzc191X3RleHR1cmUiKTsKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHRleHR1
cmUgYWNjZXNzIHZpYSB1X3RleHR1cmUgYW5kIGNoYW5nZSB0aGUgdGVzdHMgdG8gdXNlIGJsZW5k
aW5nIGFuZCBjb21wb3NpdGluZy4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTM4NzEKKyAgICBpZiAobV9zYW1wbGVyTG9jYXRpb24gPT0gLTEpCisgICAg
ICAgIG1fc2FtcGxlckxvY2F0aW9uID0gZ2xHZXRVbmlmb3JtTG9jYXRpb24obV9wcm9ncmFtLCAi
dV90ZXh0dXJlIik7Cit9CisKK2ludCBMYXllckNvbXBpbGVkUHJvZ3JhbTo6dW5pZm9ybUxvY2F0
aW9uQnlOYW1lKGNvbnN0IFN0cmluZyYgbmFtZSkKK3sKKyAgICBBU1NFUlQobV9pc0luaXRpYWxp
emVkKTsKKyAgICByZXR1cm4gZ2xHZXRVbmlmb3JtTG9jYXRpb24obV9wcm9ncmFtLCBuYW1lLmxh
dGluMSgpLmRhdGEoKSk7Cit9CisKK0xheWVyQ29tcGlsZWRQcm9ncmFtOjp+TGF5ZXJDb21waWxl
ZFByb2dyYW0oKQoreworICAgIGlmIChtX3Byb2dyYW0pCisgICAgICAgIGdsRGVsZXRlUHJvZ3Jh
bShtX3Byb2dyYW0pOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyQ29tcGlsZWRQ
cm9ncmFtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xh
eWVyQ29tcGlsZWRQcm9ncmFtLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTcwNjBkMTc3YmFkZDQ1NmQ2M2YzYjYx
MjFkZTIyMzM5NGE1OTExNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJDb21waWxlZFByb2dyYW0uaApAQCAtMCwwICsx
LDk5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3Jh
dGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNo
IEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVIg4oCcQVMgSVPigJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlS
SUdIVCBIT0xERVIgQkUKKyAqIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7
IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICog
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IKKyAqIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRgorICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisj
aWZuZGVmIExheWVyQ29tcGlsZWRQcm9ncmFtX2gKKyNkZWZpbmUgTGF5ZXJDb21waWxlZFByb2dy
YW1faAorCisjaW5jbHVkZSA8R0xFUzIvZ2wyLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitjbGFzcyBMYXllckNvbXBpbGVkUHJvZ3JhbSA6IHB1YmxpYyBSZWZDb3VudGVkPExheWVy
Q29tcGlsZWRQcm9ncmFtPiB7CitwdWJsaWM6CisgICAgLy8gVGhlIHNoYWRlciBzb3VyY2Ugc2hv
dWxkIGJlIHZhbGlkYXRlZCB1c2luZyBBTkdMRSB1bmxlc3MgaXQgY29tZXMgZnJvbSBhIHRydXN0
ZWQgc291cmNlLgorICAgIHN0YXRpYyBQYXNzUmVmUHRyPExheWVyQ29tcGlsZWRQcm9ncmFtPiBj
cmVhdGUoY29uc3QgU3RyaW5nJiB2YWxpZGF0ZWRWZXJ0ZXhTaGFkZXIsIGNvbnN0IFN0cmluZyYg
dmFsaWRhdGVkRnJhZ21lbnRTaGFkZXIpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IExheWVyQ29tcGlsZWRQcm9ncmFtKHZhbGlkYXRlZFZlcnRleFNoYWRlciwgdmFsaWRhdGVk
RnJhZ21lbnRTaGFkZXIpKTsKKyAgICB9CisKKyAgICB+TGF5ZXJDb21waWxlZFByb2dyYW0oKTsK
KworICAgIC8vIEZJWE1FOiBUaGVzZSBhdHRyaWJzIGFyZSBjdXN0b20gZmlsdGVyLXNwZWNpZmlj
LCBzaG91bGQgbWFrZSB0aGlzIGNsYXNzIG1vcmUgZ2VuZXJpYyB0byByZWFsbHkgcXVhbGlmeSBm
b3IgdGhlIG5hbWUgIlBsYXRmb3JtQ29tcGlsZWRQcm9ncmFtIgorICAgIGludCBwb3NpdGlvbkF0
dHJpYkxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9wb3NpdGlvbkF0dHJpYkxvY2F0aW9uOyB9
CisgICAgaW50IHRleEF0dHJpYkxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90ZXhBdHRyaWJM
b2NhdGlvbjsgfQorICAgIGludCBtZXNoQXR0cmliTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBt
X21lc2hBdHRyaWJMb2NhdGlvbjsgfQorICAgIGludCB0cmlhbmdsZUF0dHJpYkxvY2F0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV90cmlhbmdsZUF0dHJpYkxvY2F0aW9uOyB9CisgICAgaW50IG1lc2hC
b3hMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fbWVzaEJveExvY2F0aW9uOyB9CisgICAgaW50
IHByb2plY3Rpb25NYXRyaXhMb2NhdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fcHJvamVjdGlvbk1h
dHJpeExvY2F0aW9uOyB9CisgICAgaW50IHRpbGVTaXplTG9jYXRpb24oKSBjb25zdCB7IHJldHVy
biBtX3RpbGVTaXplTG9jYXRpb247IH0KKyAgICBpbnQgbWVzaFNpemVMb2NhdGlvbigpIGNvbnN0
IHsgcmV0dXJuIG1fbWVzaFNpemVMb2NhdGlvbjsgfQorICAgIGludCBzYW1wbGVyTG9jYXRpb24o
KSBjb25zdCB7IHJldHVybiBtX3NhbXBsZXJMb2NhdGlvbjsgfQorICAgIGludCBjb250ZW50U2Ft
cGxlckxvY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50U2FtcGxlckxvY2F0aW9uOyB9
CisgICAgaW50IHNhbXBsZXJTaXplTG9jYXRpb24oKSBjb25zdCB7IHJldHVybiBtX3NhbXBsZXJT
aXplTG9jYXRpb247IH0KKyAgICBpbnQgaW50ZXJuYWxUZXhDb29yZEF0dHJpYkxvY2F0aW9uKCkg
Y29uc3QgeyByZXR1cm4gbV9pbnRlcm5hbFRleENvb3JkQXR0cmliTG9jYXRpb247IH0KKworICAg
IGludCB1bmlmb3JtTG9jYXRpb25CeU5hbWUoY29uc3QgU3RyaW5nJik7CisKKyAgICBib29sIGlz
SW5pdGlhbGl6ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSW5pdGlhbGl6ZWQ7IH0KKworICAgIEdM
dWludCBwcm9ncmFtKCkgY29uc3QgeyByZXR1cm4gbV9wcm9ncmFtOyB9CisKK3ByaXZhdGU6Cisg
ICAgTGF5ZXJDb21waWxlZFByb2dyYW0oY29uc3QgU3RyaW5nJiB2YWxpZGF0ZWRWZXJ0ZXhTaGFk
ZXIsIGNvbnN0IFN0cmluZyYgdmFsaWRhdGVkRnJhZ21lbnRTaGFkZXIpOworCisgICAgR0x1aW50
IGNvbXBpbGVTaGFkZXIoR0xlbnVtIHNoYWRlclR5cGUsIGNvbnN0IFN0cmluZyYgc2hhZGVyU3Ry
aW5nKTsKKyAgICBHTHVpbnQgbGlua1Byb2dyYW0oR0x1aW50IHZlcnRleFNoYWRlciwgR0x1aW50
IGZyYWdtZW50U2hhZGVyKTsKKyAgICB2b2lkIGluaXRpYWxpemVQYXJhbWV0ZXJMb2NhdGlvbnMo
KTsKKworICAgIEdMdWludCBtX3Byb2dyYW07CisKKyAgICBpbnQgbV9wb3NpdGlvbkF0dHJpYkxv
Y2F0aW9uOworICAgIGludCBtX3RleEF0dHJpYkxvY2F0aW9uOworICAgIGludCBtX21lc2hBdHRy
aWJMb2NhdGlvbjsKKyAgICBpbnQgbV90cmlhbmdsZUF0dHJpYkxvY2F0aW9uOworICAgIGludCBt
X21lc2hCb3hMb2NhdGlvbjsKKyAgICBpbnQgbV9wcm9qZWN0aW9uTWF0cml4TG9jYXRpb247Cisg
ICAgaW50IG1fdGlsZVNpemVMb2NhdGlvbjsKKyAgICBpbnQgbV9tZXNoU2l6ZUxvY2F0aW9uOwor
ICAgIGludCBtX3NhbXBsZXJMb2NhdGlvbjsKKyAgICBpbnQgbV9zYW1wbGVyU2l6ZUxvY2F0aW9u
OworICAgIGludCBtX2NvbnRlbnRTYW1wbGVyTG9jYXRpb247CisgICAgLy8gRklYTUU6IEdldCBy
aWQgb2YgdGhlIGludGVybmFsIHRleCBjb29yZCBhdHRyaWJ1dGUgImNzc19hX3RleENvb3JkIi4K
KyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQzNTgKKyAg
ICBpbnQgbV9pbnRlcm5hbFRleENvb3JkQXR0cmliTG9jYXRpb247CisKKyAgICBib29sIG1faXNJ
bml0aWFsaXplZDsKK307CisKK30KKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyRmlsdGVyTWVzaC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyRmlsdGVyTWVzaC5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNWNiNWU3NDkwZGVjZGRjMmIxYzUyOTcyZWZlMTJkYzVjYjAzYjRjZgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvTGF5ZXJGaWx0ZXJNZXNoLmNwcApAQCAtMCwwICsxLDc0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDExIEFkb2JlIFN5c3RlbXMgSW5jb3Jwb3JhdGVkLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDEyIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUKKyAqICAgIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nCisgKiAgICBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogICAg
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcKKyAqICAgIGRpc2NsYWltZXIgaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscworICogICAgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVIg4oCcQVMgSVPi
gJ0gQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgQkUKKyAqIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwKKyAqIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IKKyAqIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRgor
ICogVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GCisgKiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisK
KyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisjaW5jbHVkZSAiTGF5ZXJGaWx0ZXJNZXNoLmgiCisK
KyNpbmNsdWRlICJDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiTGF5ZXJG
aWx0ZXJSZW5kZXJlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK0xheWVyRmlsdGVyTWVz
aDo6TGF5ZXJGaWx0ZXJNZXNoKExheWVyRmlsdGVyUmVuZGVyZXIqIGZpbHRlclJlbmRlcmVyLCB1
bnNpZ25lZCBjb2x1bW5zLCB1bnNpZ25lZCByb3dzLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgY29uc3QgRmxvYXRSZWN0JiBtZXNoQm94LCBDdXN0b21GaWx0ZXJPcGVyYXRpb246
Ok1lc2hUeXBlIG1lc2hUeXBlKQorICAgIDogbV9maWx0ZXJSZW5kZXJlcihmaWx0ZXJSZW5kZXJl
cikKKyAgICAsIG1fdmVydGljZXNCdWZmZXJPYmplY3QoMCkKKyAgICAsIG1fZWxlbWVudHNCdWZm
ZXJPYmplY3QoMCkKKyAgICAsIG1fbWVzaEJveChtZXNoQm94KQorICAgICwgbV9tZXNoVHlwZSht
ZXNoVHlwZSkKKyAgICAsIG1fY29sdW1uQ291bnQoY29sdW1ucykKKyAgICAsIG1fcm93Q291bnQo
cm93cykKK3sKKyAgICBDdXN0b21GaWx0ZXJNZXNoR2VuZXJhdG9yIGdlbmVyYXRvcihjb2x1bW5z
LCByb3dzLCBtZXNoQm94LCBtZXNoVHlwZSk7CisgICAgbV9pbmRpY2VzQ291bnQgPSBnZW5lcmF0
b3IuaW5kaWNlc0NvdW50KCk7CisgICAgbV9ieXRlc1BlclZlcnRleCA9IGdlbmVyYXRvci5mbG9h
dHNQZXJWZXJ0ZXgoKSAqIHNpemVvZihmbG9hdCk7CisKKyAgICBnbEdlbkJ1ZmZlcnMoMSwgJm1f
dmVydGljZXNCdWZmZXJPYmplY3QpOworICAgIGdsQmluZEJ1ZmZlcihHTF9BUlJBWV9CVUZGRVIs
IG1fdmVydGljZXNCdWZmZXJPYmplY3QpOworICAgIGdsQnVmZmVyRGF0YShHTF9BUlJBWV9CVUZG
RVIsIGdlbmVyYXRvci52ZXJ0aWNlcygpLnNpemUoKSAqIHNpemVvZihmbG9hdCksIGdlbmVyYXRv
ci52ZXJ0aWNlcygpLmRhdGEoKSwgR0xfU1RBVElDX0RSQVcpOworCisgICAgZ2xHZW5CdWZmZXJz
KDEsICZtX2VsZW1lbnRzQnVmZmVyT2JqZWN0KTsKKyAgICBnbEJpbmRCdWZmZXIoR0xfRUxFTUVO
VF9BUlJBWV9CVUZGRVIsIG1fZWxlbWVudHNCdWZmZXJPYmplY3QpOworICAgIGdsQnVmZmVyRGF0
YShHTF9FTEVNRU5UX0FSUkFZX0JVRkZFUiwgZ2VuZXJhdG9yLmluZGljZXMoKS5zaXplKCkgKiBz
aXplb2YodWludDE2X3QpLCBnZW5lcmF0b3IuaW5kaWNlcygpLmRhdGEoKSwgR0xfU1RBVElDX0RS
QVcpOworfQorCitMYXllckZpbHRlck1lc2g6On5MYXllckZpbHRlck1lc2goKQoreworICAgIGds
RGVsZXRlQnVmZmVycygxLCAmbV92ZXJ0aWNlc0J1ZmZlck9iamVjdCk7CisgICAgZ2xEZWxldGVC
dWZmZXJzKDEsICZtX2VsZW1lbnRzQnVmZmVyT2JqZWN0KTsKKworICAgIG1fZmlsdGVyUmVuZGVy
ZXItPmZpbHRlck1lc2hEZXN0cm95ZWQodGhpcyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShDU1NfU0hBREVSUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJGaWx0ZXJNZXNoLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyRmlsdGVyTWVz
aC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJhNmFmYzVhYTQ2ZjRiMWY4YjI5NGRiMjI5Y2I3MDljOGEyMzI2YTIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFj
a2JlcnJ5L0xheWVyRmlsdGVyTWVzaC5oCkBAIC0wLDAgKzEsODcgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTEgQWRvYmUgU3lzdGVtcyBJbmNvcnBvcmF0ZWQuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgUmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZQorICogICAgY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcKKyAqICAgIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiAgICBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZworICogICAgZGlzY2xhaW1lciBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzCisgKiAgICBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUiDigJxBUyBJU+KA
nSBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIEhPTERFUiBCRQorICogTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLAorICogT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUgorICogVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GCisg
KiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YKKyAqIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgTGF5ZXJGaWx0ZXJNZXNo
X2gKKyNkZWZpbmUgTGF5ZXJGaWx0ZXJNZXNoX2gKKworI2lmIEVOQUJMRShDU1NfU0hBREVSUykK
KworI2luY2x1ZGUgIkN1c3RvbUZpbHRlck9wZXJhdGlvbi5oIgorI2luY2x1ZGUgIkZsb2F0UmVj
dC5oIgorI2luY2x1ZGUgPEdMRVMyL2dsMi5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTGF5ZXJGaWx0ZXJSZW5kZXJlcjsKKwor
Y2xhc3MgTGF5ZXJGaWx0ZXJNZXNoIDogcHVibGljIFJlZkNvdW50ZWQ8TGF5ZXJGaWx0ZXJNZXNo
PiB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8TGF5ZXJGaWx0ZXJNZXNoPiBjcmVh
dGUoTGF5ZXJGaWx0ZXJSZW5kZXJlciogZmlsdGVyUmVuZGVyZXIsIHVuc2lnbmVkIGNvbHVtbnMs
IHVuc2lnbmVkIHJvd3MsIGNvbnN0IEZsb2F0UmVjdCYgbWVzaEJveCwgQ3VzdG9tRmlsdGVyT3Bl
cmF0aW9uOjpNZXNoVHlwZSBtZXNoVHlwZSkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgTGF5ZXJGaWx0ZXJNZXNoKGZpbHRlclJlbmRlcmVyLCBjb2x1bW5zLCByb3dzLCBtZXNo
Qm94LCBtZXNoVHlwZSkpOworICAgIH0KKyAgICB+TGF5ZXJGaWx0ZXJNZXNoKCk7CisKKyAgICBH
THVpbnQgdmVydGljZXNCdWZmZXJPYmplY3QoKSBjb25zdCB7IHJldHVybiBtX3ZlcnRpY2VzQnVm
ZmVyT2JqZWN0OyB9CisgICAgdW5zaWduZWQgYnl0ZXNQZXJWZXJ0ZXgoKSBjb25zdCB7IHJldHVy
biBtX2J5dGVzUGVyVmVydGV4OyB9CisKKyAgICBHTHVpbnQgZWxlbWVudHNCdWZmZXJPYmplY3Qo
KSBjb25zdCB7IHJldHVybiBtX2VsZW1lbnRzQnVmZmVyT2JqZWN0OyB9CisgICAgdW5zaWduZWQg
aW5kaWNlc0NvdW50KCkgY29uc3QgeyByZXR1cm4gbV9pbmRpY2VzQ291bnQ7IH0KKworICAgIGNv
bnN0IEZsb2F0UmVjdCYgbWVzaEJveCgpIGNvbnN0IHsgcmV0dXJuIG1fbWVzaEJveDsgfQorICAg
IEN1c3RvbUZpbHRlck9wZXJhdGlvbjo6TWVzaFR5cGUgbWVzaFR5cGUoKSBjb25zdCB7IHJldHVy
biBtX21lc2hUeXBlOyB9CisKKyAgICB1bnNpZ25lZCBjb2x1bW5Db3VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fY29sdW1uQ291bnQ7IH0KKyAgICB1bnNpZ25lZCByb3dDb3VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fcm93Q291bnQ7IH0KKworcHJpdmF0ZToKKyAgICBMYXllckZpbHRlck1lc2goTGF5ZXJG
aWx0ZXJSZW5kZXJlciosIHVuc2lnbmVkIGNvbHMsIHVuc2lnbmVkIHJvd3MsIGNvbnN0IEZsb2F0
UmVjdCYgbWVzaEJveCwgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uOjpNZXNoVHlwZSk7CisKKyAgICBM
YXllckZpbHRlclJlbmRlcmVyKiBtX2ZpbHRlclJlbmRlcmVyOworCisgICAgR0x1aW50IG1fdmVy
dGljZXNCdWZmZXJPYmplY3Q7CisgICAgdW5zaWduZWQgbV9ieXRlc1BlclZlcnRleDsKKworICAg
IEdMdWludCBtX2VsZW1lbnRzQnVmZmVyT2JqZWN0OworICAgIHVuc2lnbmVkIG1faW5kaWNlc0Nv
dW50OworCisgICAgRmxvYXRSZWN0IG1fbWVzaEJveDsKKyAgICBDdXN0b21GaWx0ZXJPcGVyYXRp
b246Ok1lc2hUeXBlIG1fbWVzaFR5cGU7CisKKyAgICB1bnNpZ25lZCBtX2NvbHVtbkNvdW50Owor
ICAgIHVuc2lnbmVkIG1fcm93Q291bnQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisK
KyNlbmRpZiAvLyBFTkFCTEUoQ1NTX1NIQURFUlMpCisKKyNlbmRpZiAvLyBMYXllckZpbHRlck1l
c2hfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYmxhY2ti
ZXJyeS9MYXllckZpbHRlclJlbmRlcmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJGaWx0ZXJSZW5kZXJlci5jcHAKaW5kZXggZjQwYWI3MzUx
NWJlMjc3Yzg2ODIyNThmNjRiOTQxZmY1ZmMxNmRkMi4uNjcwYmM1NzBjNDIwYjJiNWQ3ZDg1ODVm
YWNmNjRmZGU1YjM2NzE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYmxhY2tiZXJyeS9MYXllckZpbHRlclJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xheWVyRmlsdGVyUmVuZGVyZXIuY3Bw
CkBAIC0yMiw2ICsyMiwxMCBAQAogCiAjaW5jbHVkZSAiTGF5ZXJGaWx0ZXJSZW5kZXJlci5oIgog
CisjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyTnVtYmVyUGFyYW1ldGVyLmgiCisjaW5jbHVkZSAiQ3Vz
dG9tRmlsdGVyUGFyYW1ldGVyLmgiCisjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyVHJhbnNmb3JtUGFy
YW1ldGVyLmgiCisjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbS5oIgogI2lu
Y2x1ZGUgIkZpbHRlck9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIkxheWVyQ29tcG9zaXRpbmdUaHJl
YWQuaCIKICNpbmNsdWRlICJMYXllclJlbmRlcmVyLmgiCkBAIC0yNDIsNiArMjQ2LDkgQEAgUGFz
c1JlZlB0cjxMYXllckZpbHRlclJlbmRlcmVyQWN0aW9uPiBMYXllckZpbHRlclJlbmRlcmVyQWN0
aW9uOjpjcmVhdGUoaW50IHByb2cKIAogTGF5ZXJGaWx0ZXJSZW5kZXJlckFjdGlvbjo6TGF5ZXJG
aWx0ZXJSZW5kZXJlckFjdGlvbihpbnQgY19wcm9ncmFtSWQpCiAgICAgOiBtX3Byb2dyYW1JZChj
X3Byb2dyYW1JZCkKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAgLCBtX2N1c3RvbUlkKC0x
KQorI2VuZGlmCiAgICAgLCBtX3B1c2hTbmFwc2hvdChmYWxzZSkKICAgICAsIG1fcG9wU25hcHNo
b3QoZmFsc2UpCiAgICAgLCBtX2RyYXdpbmdNb2RlKERyYXdUcmlhbmdsZUZhbkFycmF5cykKQEAg
LTI1MCwxMiArMjU3LDE5IEBAIExheWVyRmlsdGVyUmVuZGVyZXJBY3Rpb246OkxheWVyRmlsdGVy
UmVuZGVyZXJBY3Rpb24oaW50IGNfcHJvZ3JhbUlkKQogCiB2b2lkIExheWVyRmlsdGVyUmVuZGVy
ZXJBY3Rpb246OnVzZUFjdGlvbk9uKExheWVyRmlsdGVyUmVuZGVyZXIqIHJlbmRlcmVyKQogewot
ICAgIEFTU0VSVChtX3Byb2dyYW1JZCAhPSAtMSk7Ci0gICAgaWYgKG1fcHJvZ3JhbUlkID09IC0x
KSB7CisgICAgQVNTRVJUKG1fcHJvZ3JhbUlkICE9IC0xIHx8IG1fY3VzdG9tSWQgIT0gLTEpOwor
CisgICAgaWYgKG1fY3VzdG9tSWQgIT0gLTEpCisgICAgICAgIGdsVXNlUHJvZ3JhbShtX2N1c3Rv
bUlkKTsKKworICAgIGlmIChtX2N1c3RvbUlkID09IC0xKQorICAgICAgICBnbFVzZVByb2dyYW0o
cmVuZGVyZXItPm1fY3NzRmlsdGVyUHJvZ3JhbU9iamVjdFttX3Byb2dyYW1JZF0pOworCisgICAg
aWYgKG1fcHJvZ3JhbUlkID09IC0xICYmIG1fY3VzdG9tSWQgPT0gLTEpIHsKICAgICAgICAgZ2xV
c2VQcm9ncmFtKHJlbmRlcmVyLT5tX2Nzc0ZpbHRlclByb2dyYW1PYmplY3RbTGF5ZXJEYXRhOjpD
U1NGaWx0ZXJTaGFkZXJQYXNzdGhyb3VnaF0pOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAg
IGdsVXNlUHJvZ3JhbShyZW5kZXJlci0+bV9jc3NGaWx0ZXJQcm9ncmFtT2JqZWN0W21fcHJvZ3Jh
bUlkXSk7CisKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9wYXJhbWV0ZXJzLnNpemUo
KTsgKytpKQogICAgICAgICBtX3BhcmFtZXRlcnNbaV0tPmFwcGx5KCk7CiB9CkBAIC00NjAsNiAr
NDc0LDkgQEAgYm9vbCBMYXllckZpbHRlclJlbmRlcmVyOjppbml0aWFsaXplU2hhcmVkR0xPYmpl
Y3RzKCkKICAgICAgICAgfQogICAgICk7CiAKKyNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCisgICAg
c2hhZGVyU3Ryc1tMYXllckRhdGE6OkNTU0ZpbHRlclNoYWRlckN1c3RvbV0gPQorI2VuZGlmCiAg
ICAgc2hhZGVyU3Ryc1tMYXllckRhdGE6OkNTU0ZpbHRlclNoYWRlclBhc3N0aHJvdWdoXSA9IFNU
QU5EQVJEX0ZJTFRFUigKICAgICAgICAgbG93cCB2ZWM0IHNoYWRlKGxvd3AgdmVjNCBjb2xvcikK
ICAgICAgICAgewpAQCAtNTM5LDYgKzU1NiwzMyBAQCB2b2lkIExheWVyRmlsdGVyUmVuZGVyZXI6
OnBvcFNuYXBzaG90KCkKICNlbmRpZgogfQogCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorUGFz
c1JlZlB0cjxMYXllckNvbXBpbGVkUHJvZ3JhbT4gTGF5ZXJGaWx0ZXJSZW5kZXJlcjo6Z2V0Q29t
cGlsZWRQcm9ncmFtKGNvbnN0IEN1c3RvbUZpbHRlclByb2dyYW1JbmZvJiBwcm9ncmFtSW5mbykK
K3sKKyAgICBSZWZQdHI8Q3VzdG9tRmlsdGVyVmFsaWRhdGVkUHJvZ3JhbT4gdmFsaWRhdGVkUHJv
Z3JhbSA9IG1fcHJvZ3JhbVZhbGlkYXRvci5nZXRWYWxpZGF0ZWRQcm9ncmFtKHByb2dyYW1JbmZv
KTsKKyAgICByZXR1cm4gdmFsaWRhdGVkUHJvZ3JhbS0+cGxhdGZvcm1Db21waWxlZFByb2dyYW0o
KTsKK30KKworUGFzc1JlZlB0cjxMYXllckZpbHRlck1lc2g+IExheWVyRmlsdGVyUmVuZGVyZXI6
OmdldEZpbHRlck1lc2godW5zaWduZWQgY29scywgdW5zaWduZWQgcm93cywgY29uc3QgRmxvYXRS
ZWN0JiBtZXNoQm94LCBDdXN0b21GaWx0ZXJPcGVyYXRpb246Ok1lc2hUeXBlIG1lc2hUeXBlKQor
eworICAgIGZvciAoSGFzaFNldDxMYXllckZpbHRlck1lc2gqPjo6aXRlcmF0b3IgaXQgPSBtX21l
c2hTZXQuYmVnaW4oKTsgaXQgIT0gbV9tZXNoU2V0LmVuZCgpOyArK2l0KSB7CisgICAgICAgIGlm
ICgoKml0KS0+Y29sdW1uQ291bnQoKSA9PSBjb2xzICYmICgqaXQpLT5yb3dDb3VudCgpID09IHJv
d3MgJiYgKCppdCktPm1lc2hCb3goKSA9PSBtZXNoQm94KQorICAgICAgICAgICAgcmV0dXJuICpp
dDsKKyAgICB9CisKKyAgICBSZWZQdHI8TGF5ZXJGaWx0ZXJNZXNoPiBtZXNoID0gTGF5ZXJGaWx0
ZXJNZXNoOjpjcmVhdGUodGhpcywgY29scywgcm93cywgbWVzaEJveCwgbWVzaFR5cGUpOworICAg
IG1fbWVzaFNldC5hZGQobWVzaC5nZXQoKSk7CisKKyAgICByZXR1cm4gbWVzaC5yZWxlYXNlKCk7
Cit9CisKK3ZvaWQgTGF5ZXJGaWx0ZXJSZW5kZXJlcjo6ZmlsdGVyTWVzaERlc3Ryb3llZChMYXll
ckZpbHRlck1lc2gqIG1lc2gpCit7CisgICAgbV9tZXNoU2V0LnJlbW92ZShtZXNoKTsKK30KKwor
I2VuZGlmCisKIFZlY3RvcjxSZWZQdHI8TGF5ZXJGaWx0ZXJSZW5kZXJlckFjdGlvbj4gPiBMYXll
ckZpbHRlclJlbmRlcmVyOjphY3Rpb25zRm9yT3BlcmF0aW9ucyhMYXllclJlbmRlcmVyU3VyZmFj
ZSogc3VyZmFjZSwgY29uc3QgVmVjdG9yPFJlZlB0cjxGaWx0ZXJPcGVyYXRpb24+ID4mIG9wcykK
IHsKICAgICBWZWN0b3I8UmVmUHRyPExheWVyRmlsdGVyUmVuZGVyZXJBY3Rpb24+ID4gcmV0OwpA
QCAtNTY1LDggKzYwOSw3IEBAIFZlY3RvcjxSZWZQdHI8TGF5ZXJGaWx0ZXJSZW5kZXJlckFjdGlv
bj4gPiBMYXllckZpbHRlclJlbmRlcmVyOjphY3Rpb25zRm9yT3BlcmF0CiAgICAgICAgICAgICBy
ZXQubGFzdCgpLT5hcHBlbmRQYXJhbWV0ZXIoVW5pZm9ybTFmOjpjcmVhdGUobV9hbW91bnRMb2Nh
dGlvbltwcm9ncmFtSWRdCiAgICAgICAgICAgICAgICAgLCBzdGF0aWNfY2FzdDxjb25zdCBCYXNp
Y0NvbXBvbmVudFRyYW5zZmVyRmlsdGVyT3BlcmF0aW9uJj4ob3BlcmF0aW9uKS5hbW91bnQoKSkp
OwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2UgRmlsdGVyT3BlcmF0aW9uOjpCTFVS
OgotICAgICAgICAgICAgeworICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6QkxVUjogewog
ICAgICAgICAgICAgLy8gQmx1ciBpcyBhIHR3by1zdGVwIHByb2Nlc3M6CiAgICAgICAgICAgICAv
LyAgICAgMS4gYmx1ciBYCiAgICAgICAgICAgICAvLyAgICAgMi4gYmx1ciBZCkBAIC01ODUsMTAg
KzYyOCw5IEBAIFZlY3RvcjxSZWZQdHI8TGF5ZXJGaWx0ZXJSZW5kZXJlckFjdGlvbj4gPiBMYXll
ckZpbHRlclJlbmRlcmVyOjphY3Rpb25zRm9yT3BlcmF0CiAgICAgICAgICAgICByZXQubGFzdCgp
LT5hcHBlbmRQYXJhbWV0ZXIoVW5pZm9ybTFmOjpjcmVhdGUobV9ibHVyQW1vdW50TG9jYXRpb25b
MV0KICAgICAgICAgICAgICAgICAsIDEuMGYgLyBmbG9hdChzdXJmYWNlLT5zaXplKCkud2lkdGgo
KSkpKTsKIAotICAgICAgICAgICAgfQogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNhc2Ug
RmlsdGVyT3BlcmF0aW9uOjpEUk9QX1NIQURPVzoKLSAgICAgICAgICAgIHsKKyAgICAgICAgfQor
ICAgICAgICBjYXNlIEZpbHRlck9wZXJhdGlvbjo6RFJPUF9TSEFET1c6IHsKICAgICAgICAgICAg
IC8vIFNoYWRvdyBpcyBhIGZvdXItc3RlcCBwcm9jZXNzOgogICAgICAgICAgICAgLy8gICAgIDEu
IGNhcHR1cmUgc25hcHNob3QKICAgICAgICAgICAgIC8vICAgICAgICB0dXJuIGludG8gYSBzb2xp
ZCBvZmZzZXQgbWFzawpAQCAtNjE5LDExICs2NjEsMTIzIEBAIFZlY3RvcjxSZWZQdHI8TGF5ZXJG
aWx0ZXJSZW5kZXJlckFjdGlvbj4gPiBMYXllckZpbHRlclJlbmRlcmVyOjphY3Rpb25zRm9yT3Bl
cmF0CiAgICAgICAgICAgICByZXQubGFzdCgpLT5hcHBlbmRQYXJhbWV0ZXIoVW5pZm9ybTFmOjpj
cmVhdGUobV9ibHVyQW1vdW50TG9jYXRpb25bMV0KICAgICAgICAgICAgICAgICAsIDEuMGYgLyBm
bG9hdChzdXJmYWNlLT5zaXplKCkud2lkdGgoKSkpKTsKIAotICAgICAgICAgICAgLy8gUmVwYWlu
dCBvcmlnaW5hbCBpbWFnZQorICAgICAgICAgICAgLy8gUmVwYWludCBvcmlnaW5hbCBpbWFnZS4K
ICAgICAgICAgICAgIHJldC5hcHBlbmQoTGF5ZXJGaWx0ZXJSZW5kZXJlckFjdGlvbjo6Y3JlYXRl
KExheWVyRGF0YTo6Q1NTRmlsdGVyU2hhZGVyUGFzc3Rocm91Z2gpKTsKICAgICAgICAgICAgIHJl
dC5sYXN0KCktPnNldFBvcFNuYXBzaG90KCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorI2lmIEVOQUJMRShDU1NfU0hBREVSUykKKyAgICAgICAgY2FzZSBGaWx0ZXJPcGVyYXRpb246
OkNVU1RPTTogeworICAgICAgICAgICAgLy8gU2VlIEZFQ3VzdG9tRmlsdGVyOjpiaW5kUHJvZ3Jh
bUFuZEJ1ZmZlcnMuCisKKyAgICAgICAgICAgIGNvbnN0IEN1c3RvbUZpbHRlck9wZXJhdGlvbiYg
Y2ZvID0gc3RhdGljX2Nhc3Q8Y29uc3QgQ3VzdG9tRmlsdGVyT3BlcmF0aW9uJj4ob3BlcmF0aW9u
KTsKKworICAgICAgICAgICAgUmVmUHRyPExheWVyQ29tcGlsZWRQcm9ncmFtPiBzaGFkZXIgPSBn
ZXRDb21waWxlZFByb2dyYW0oY2ZvLnByb2dyYW0oKS0+cHJvZ3JhbUluZm8oKSk7CisgICAgICAg
ICAgICBSZWZQdHI8TGF5ZXJGaWx0ZXJNZXNoPiBtZXNoID0gZ2V0RmlsdGVyTWVzaChjZm8ubWVz
aENvbHVtbnMoKSwgY2ZvLm1lc2hSb3dzKCksIEZsb2F0UmVjdCgwLCAwLCAxLCAxKSwgY2ZvLm1l
c2hUeXBlKCkpOworCisgICAgICAgICAgICBpZiAoc2hhZGVyLT5zYW1wbGVyTG9jYXRpb24oKSAh
PSAtMSkKKyAgICAgICAgICAgICAgICByZXQubGFzdCgpLT5hcHBlbmRQYXJhbWV0ZXIoVW5pZm9y
bTFpOjpjcmVhdGUoc2hhZGVyLT5zYW1wbGVyTG9jYXRpb24oKSwgMCkpOworCisgICAgICAgICAg
ICBpZiAoc2hhZGVyLT5wcm9qZWN0aW9uTWF0cml4TG9jYXRpb24oKSAhPSAtMSkgeworICAgICAg
ICAgICAgICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4IHByb2plY3Rpb25NYXRyaXggPSBMYXllclJl
bmRlcmVyOjpvcnRob01hdHJpeCgtMC41LCAwLjUsIC0wLjUsIDAuNSwgLTEwMDAwLCAxMDAwMCk7
CisgICAgICAgICAgICAgICAgZmxvYXQgZ2xQcm9qZWN0aW9uTWF0cml4WzE2XTsKKyAgICAgICAg
ICAgICAgICBwcm9qZWN0aW9uTWF0cml4LnRvQ29sdW1uTWFqb3JGbG9hdEFycmF5KGdsUHJvamVj
dGlvbk1hdHJpeCk7CisKKyAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgbWFrZSBhIGRlZXAg
Y29weSBvZiBnbFByb2plY3Rpb25NYXRyaXguCisgICAgICAgICAgICAgICAgcmV0Lmxhc3QoKS0+
YXBwZW5kUGFyYW1ldGVyKE1hdHJpeDRmdjo6Y3JlYXRlKHNoYWRlci0+cHJvamVjdGlvbk1hdHJp
eExvY2F0aW9uKCksIDEsIEdMX0ZBTFNFLCAmZ2xQcm9qZWN0aW9uTWF0cml4WzBdKSk7CisgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgIHJldC5sYXN0KCktPmFwcGVuZFBhcmFtZXRlcihCdWZm
ZXI6OmNyZWF0ZShHTF9BUlJBWV9CVUZGRVIsIG1lc2gtPnZlcnRpY2VzQnVmZmVyT2JqZWN0KCkp
KTsKKyAgICAgICAgICAgIHJldC5sYXN0KCktPmFwcGVuZFBhcmFtZXRlcihCdWZmZXI6OmNyZWF0
ZShHTF9FTEVNRU5UX0FSUkFZX0JVRkZFUiwgbWVzaC0+ZWxlbWVudHNCdWZmZXJPYmplY3QoKSkp
OworICAgICAgICAgICAgcmV0Lmxhc3QoKS0+c2V0RHJhd2luZ01vZGUoTGF5ZXJGaWx0ZXJSZW5k
ZXJlckFjdGlvbjo6RHJhd1RyaWFuZ2xlRWxlbWVudHNVU2hvcnQwKTsKKyAgICAgICAgICAgIHJl
dC5sYXN0KCktPnNldERyYXdpbmdNb2RlUGFyYW1ldGVyKG1lc2gtPmluZGljZXNDb3VudCgpKTsK
KworICAgICAgICAgICAgaW50IG9mZnNldCA9IDA7CisKKyAgICAgICAgICAgIGlmIChzaGFkZXIt
PnBvc2l0aW9uQXR0cmliTG9jYXRpb24oKSAhPSAtMSkgeworICAgICAgICAgICAgICAgIHJldC5s
YXN0KCktPmFwcGVuZFBhcmFtZXRlcihWZXJ0ZXhBdHRyaWJmOjpjcmVhdGUoc2hhZGVyLT5wb3Np
dGlvbkF0dHJpYkxvY2F0aW9uKCksIDQsIG1lc2gtPmJ5dGVzUGVyVmVydGV4KCksIG9mZnNldCkp
OworICAgICAgICAgICAgICAgIG9mZnNldCArPSA0ICogc2l6ZW9mKGZsb2F0KTsKICAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgaWYgKHNoYWRlci0+aW50ZXJuYWxUZXhDb29yZEF0dHJpYkxv
Y2F0aW9uKCkgIT0gLTEpIHsKKyAgICAgICAgICAgICAgICByZXQubGFzdCgpLT5hcHBlbmRQYXJh
bWV0ZXIoVmVydGV4QXR0cmliZjo6Y3JlYXRlKHNoYWRlci0+aW50ZXJuYWxUZXhDb29yZEF0dHJp
YkxvY2F0aW9uKCksIDIsIG1lc2gtPmJ5dGVzUGVyVmVydGV4KCksIG9mZnNldCkpOworICAgICAg
ICAgICAgICAgIG9mZnNldCArPSAyICogc2l6ZW9mKGZsb2F0KTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgaWYgKHNoYWRlci0+dGV4QXR0cmliTG9jYXRpb24oKSAhPSAtMSkgeworICAg
ICAgICAgICAgICAgIHJldC5sYXN0KCktPmFwcGVuZFBhcmFtZXRlcihWZXJ0ZXhBdHRyaWJmOjpj
cmVhdGUoc2hhZGVyLT50ZXhBdHRyaWJMb2NhdGlvbigpLCAyLCBtZXNoLT5ieXRlc1BlclZlcnRl
eCgpLCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICBvZmZzZXQgKz0gMiAqIHNpemVvZihmbG9h
dCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmIChzaGFkZXItPm1lc2hBdHRyaWJM
b2NhdGlvbigpICE9IC0xKSB7CisgICAgICAgICAgICAgICAgcmV0Lmxhc3QoKS0+YXBwZW5kUGFy
YW1ldGVyKFZlcnRleEF0dHJpYmY6OmNyZWF0ZShzaGFkZXItPm1lc2hBdHRyaWJMb2NhdGlvbigp
LCAyLCBtZXNoLT5ieXRlc1BlclZlcnRleCgpLCBvZmZzZXQpKTsKKyAgICAgICAgICAgICAgICBv
ZmZzZXQgKz0gMiAqIHNpemVvZihmbG9hdCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGlmIChjZm8ubWVzaFR5cGUoKSA9PSBDdXN0b21GaWx0ZXJPcGVyYXRpb246OkRFVEFDSEVEICYm
IHNoYWRlci0+dHJpYW5nbGVBdHRyaWJMb2NhdGlvbigpICE9IC0xKSB7CisgICAgICAgICAgICAg
ICAgcmV0Lmxhc3QoKS0+YXBwZW5kUGFyYW1ldGVyKFZlcnRleEF0dHJpYmY6OmNyZWF0ZShzaGFk
ZXItPnRyaWFuZ2xlQXR0cmliTG9jYXRpb24oKSwgMywgbWVzaC0+Ynl0ZXNQZXJWZXJ0ZXgoKSwg
b2Zmc2V0KSk7CisgICAgICAgICAgICAgICAgb2Zmc2V0ICs9IDMgKiBzaXplb2YoZmxvYXQpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgY2Zv
LnBhcmFtZXRlcnMoKS5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgICAgIGludCBsb2NhdGlv
biA9IHNoYWRlci5nZXQoKS0+dW5pZm9ybUxvY2F0aW9uQnlOYW1lKGNmby5wYXJhbWV0ZXJzKClb
aV0tPm5hbWUoKSk7CisgICAgICAgICAgICAgICAgaWYgKGxvY2F0aW9uID09IC0xKQorICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgICAgICBzd2l0Y2ggKGNmby5wYXJh
bWV0ZXJzKClbaV0tPnBhcmFtZXRlclR5cGUoKSkgeworICAgICAgICAgICAgICAgIGNhc2UgQ3Vz
dG9tRmlsdGVyUGFyYW1ldGVyOjpOVU1CRVI6IHsKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qg
Q3VzdG9tRmlsdGVyTnVtYmVyUGFyYW1ldGVyJiBudW1iZXIgPSBzdGF0aWNfY2FzdDxDdXN0b21G
aWx0ZXJOdW1iZXJQYXJhbWV0ZXImPigqY2ZvLnBhcmFtZXRlcnMoKVtpXS5nZXQoKSk7CisgICAg
ICAgICAgICAgICAgICAgIHN3aXRjaCAobnVtYmVyLnNpemUoKSkgeworICAgICAgICAgICAgICAg
ICAgICBjYXNlIDE6CisgICAgICAgICAgICAgICAgICAgICAgICByZXQubGFzdCgpLT5hcHBlbmRQ
YXJhbWV0ZXIoVW5pZm9ybTFmOjpjcmVhdGUobG9jYXRpb24sIG51bWJlci52YWx1ZUF0KDApKSk7
CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgY2Fz
ZSAyOgorICAgICAgICAgICAgICAgICAgICAgICAgcmV0Lmxhc3QoKS0+YXBwZW5kUGFyYW1ldGVy
KFVuaWZvcm0yZjo6Y3JlYXRlKGxvY2F0aW9uLCBudW1iZXIudmFsdWVBdCgwKSwgbnVtYmVyLnZh
bHVlQXQoMSkpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICBjYXNlIDM6CisgICAgICAgICAgICAgICAgICAgICAgICByZXQubGFzdCgpLT5hcHBl
bmRQYXJhbWV0ZXIoVW5pZm9ybTNmOjpjcmVhdGUobG9jYXRpb24sIG51bWJlci52YWx1ZUF0KDAp
LCBudW1iZXIudmFsdWVBdCgxKSwgbnVtYmVyLnZhbHVlQXQoMikpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6CisgICAgICAgICAg
ICAgICAgICAgICAgICByZXQubGFzdCgpLT5hcHBlbmRQYXJhbWV0ZXIoVW5pZm9ybTRmOjpjcmVh
dGUobG9jYXRpb24sIG51bWJlci52YWx1ZUF0KDApLCBudW1iZXIudmFsdWVBdCgxKSwgbnVtYmVy
LnZhbHVlQXQoMiksIG51bWJlci52YWx1ZUF0KDMpKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfSAvLyBzd2l0Y2gobnVtYmVyLnNpemUoKSkK
KworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICB9IC8vIGNhc2Ug
Q3VzdG9tRmlsdGVyUGFyYW1ldGVyOjpOVU1CRVIKKyAgICAgICAgICAgICAgICBjYXNlIEN1c3Rv
bUZpbHRlclBhcmFtZXRlcjo6VFJBTlNGT1JNOiB7CisgICAgICAgICAgICAgICAgICAgIFRyYW5z
Zm9ybWF0aW9uTWF0cml4IHRyYW5zZm9ybTsKKworICAgICAgICAgICAgICAgICAgICBpZiAoc3Vy
ZmFjZS0+Y29udGVudFJlY3QoKS53aWR0aCgpICYmIHN1cmZhY2UtPmNvbnRlbnRSZWN0KCkuaGVp
Z2h0KCkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRoZSB2aWV3cG9ydCBpcyBhIGJv
eCB3aXRoIHRoZSBzaXplIG9mIDEgdW5pdCwgc28gd2UgYXJlIHNjYWxsaW5nIHVwIGhlcmUgdG8g
bWFrZSBzdXJlIHRoYXQgdHJhbnNsYXRpb25zIGhhcHBlbiB1c2luZyByZWFsIHBpeGVscworICAg
ICAgICAgICAgICAgICAgICAgICAgLy8gdW5pdHMuIEF0IHRoZSBlbmQgd2Ugc2NhbGUgYmFjayBk
b3duIGluIG9yZGVyIHRvIG1hcCBpdCBiYWNrIHRvIHRoZSBvcmlnaW5hbCBib3guIE5vdGUgdGhh
dCB0cmFuc2Zvcm1zIGNvbWUgaW4gcmV2ZXJzZSBvcmRlciwgYmVjYXVzZSBpdCBpcworICAgICAg
ICAgICAgICAgICAgICAgICAgLy8gc3VwcG9zZWQgdG8gbXVsdGlwbHkgdG8gdGhlIGxlZnQgb2Yg
dGhlIGNvb3JkaW5hdGVzIG9mIHRoZSB2ZXJ0aWNlcy4KKyAgICAgICAgICAgICAgICAgICAgICAg
IC8vIE5vdGUgdGhhdCB0aGUgb3JpZ2luICgwLCAwKSBvZiB0aGUgdmlld3BvcnQgaXMgaW4gdGhl
IG1pZGRsZSBvZiB0aGUgY29udGV4dCwgc28gdGhlcmUncyBubyBuZWVkIHRvIGNoYW5nZSB0aGUg
b3JpZ2luIG9mIHRoZSB0cmFuc2Zvcm0KKyAgICAgICAgICAgICAgICAgICAgICAgIC8vIGluIG9y
ZGVyIHRvIHJvdGF0ZSBhcm91bmQgdGhlIG1pZGRsZSBvZiBtZXNoLgorICAgICAgICAgICAgICAg
ICAgICAgICAgdHJhbnNmb3JtLnNjYWxlM2QoMS4wIC8gc3VyZmFjZS0+Y29udGVudFJlY3QoKS53
aWR0aCgpLCAxLjAgLyBzdXJmYWNlLT5jb250ZW50UmVjdCgpLmhlaWdodCgpLCAxKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIHN0YXRpY19jYXN0PEN1c3RvbUZpbHRlclRyYW5zZm9ybVBhcmFt
ZXRlcio+KGNmby5wYXJhbWV0ZXJzKClbaV0uZ2V0KCkpLT5hcHBseVRyYW5zZm9ybSh0cmFuc2Zv
cm0sIHJvdW5kZWRJbnRTaXplKHN1cmZhY2UtPmNvbnRlbnRSZWN0KCkuc2l6ZSgpKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm0uc2NhbGUzZChzdXJmYWNlLT5jb250ZW50UmVj
dCgpLndpZHRoKCksIHN1cmZhY2UtPmNvbnRlbnRSZWN0KCkuaGVpZ2h0KCksIDEpOworICAgICAg
ICAgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CisgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAg
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGZsb2F0IGdsTWF0cml4WzE2XTsK
KyAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtLnRvQ29sdW1uTWFqb3JGbG9hdEFycmF5KGds
TWF0cml4KTsKKworICAgICAgICAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgY3JlYXRlIGEgZGVl
cC1jb3B5IG9mIGdsTWF0cml4LgorICAgICAgICAgICAgICAgICAgICByZXQubGFzdCgpLT5hcHBl
bmRQYXJhbWV0ZXIoTWF0cml4NGZ2OjpjcmVhdGUobG9jYXRpb24sIDEsIGZhbHNlLCAmZ2xNYXRy
aXhbMF0pKTsKKyAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfSAv
LyBjYXNlIEN1c3RvbUZpbHRlclBhcmFtZXRlcjo6VFJBTlNGT1JNCisgICAgICAgICAgICAgICAg
ZGVmYXVsdDoKKyAgICAgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAg
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgcmV0Lmxhc3QoKS0+dXNlQ3VzdG9tU2hhZGVyKHNoYWRlci5yZWxlYXNl
KCkpOworICAgICAgICAgICAgcmV0Lmxhc3QoKS0+YWRvcHRNZXNoKG1lc2gucmVsZWFzZSgpKTsg
Ly8gT2JqZWN0cyBmcm9tIG1lc2ggYXJlIHVzZWQgaW4gR0xfQVJSQVlfQlVGRkVSIGFuZCBHTF9F
TEVNRU5UX0FSUkFZX0JVRkZFUgogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyNlbmRp
ZgogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgICAgICBicmVhazsKQEAgLTcwOCw3ICs4NjIsOSBAQCB2b2lkIExheWVyRmlsdGVyUmVu
ZGVyZXI6OmFwcGx5QWN0aW9ucyh1bnNpZ25lZCYgZmJvLCBMYXllckNvbXBvc2l0aW5nVGhyZWFk
KiBsYQogICAgICAgICAgICAgZ2xEcmF3QXJyYXlzKEdMX1RSSUFOR0xFX0ZBTiwgMCwgNCk7CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBMYXllckZpbHRlclJlbmRlcmVyQWN0aW9u
OjpEcmF3VHJpYW5nbGVFbGVtZW50c1VTaG9ydDA6CisgICAgICAgICAgICBnbFZpZXdwb3J0KDAu
NSwgMC41LCBzdXJmYWNlLT5zaXplKCkud2lkdGgoKSwgc3VyZmFjZS0+c2l6ZSgpLmhlaWdodCgp
KTsKICAgICAgICAgICAgIGdsRHJhd0VsZW1lbnRzKEdMX1RSSUFOR0xFUywgYWN0aW9uc1tpXS0+
ZHJhd2luZ01vZGVQYXJhbWV0ZXIoKSwgR0xfVU5TSUdORURfU0hPUlQsIHJlaW50ZXJwcmV0X2Nh
c3Q8R0x2b2lkKj4oc3RhdGljX2Nhc3Q8aW50cHRyX3Q+KDApKSk7CisgICAgICAgICAgICBnbFZp
ZXdwb3J0KDAuMCwgMC4wLCBzdXJmYWNlLT5zaXplKCkud2lkdGgoKSwgc3VyZmFjZS0+c2l6ZSgp
LmhlaWdodCgpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIExheWVyRmlsdGVy
UmVuZGVyZXJBY3Rpb246Ok51bWJlck9mRHJhd2luZ01vZGVzOgogICAgICAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ibGFja2JlcnJ5L0xheWVyRmlsdGVyUmVuZGVyZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJGaWx0ZXJSZW5kZXJlci5oCmluZGV4IDNi
MjhkMDhhYjQ3Zjk3ZjQxNzEzYWNjNTZkOGJmOWVlYTZmZDNhMTQuLjZiYzQ0MjI5M2Y2NjBkMGEx
YWM4ZGNhZDU0MGZjYzg1MTkxZjA0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJGaWx0ZXJSZW5kZXJlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJGaWx0ZXJSZW5kZXJl
ci5oCkBAIC0yMSw4ICsyMSwxMiBAQAogCiAjaWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5H
KSAmJiBFTkFCTEUoQ1NTX0ZJTFRFUlMpCiAKKyNpbmNsdWRlICJDdXN0b21GaWx0ZXJHbG9iYWxD
b250ZXh0LmgiCisjaW5jbHVkZSAiQ3VzdG9tRmlsdGVyT3BlcmF0aW9uLmgiCiAjaW5jbHVkZSAi
SW50UmVjdC5oIgorI2luY2x1ZGUgIkxheWVyQ29tcGlsZWRQcm9ncmFtLmgiCiAjaW5jbHVkZSAi
TGF5ZXJEYXRhLmgiCisjaW5jbHVkZSAiTGF5ZXJGaWx0ZXJNZXNoLmgiCiAjaW5jbHVkZSAiVGV4
dHVyZS5oIgogI2luY2x1ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAKQEAgLTM2LDYgKzQw
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBDdXN0b21GaWx0ZXJQcm9ncmFt
SW5mbzsKIGNsYXNzIExheWVyQ29tcG9zaXRpbmdUaHJlYWQ7CiBjbGFzcyBMYXllckZpbHRlclJl
bmRlcmVyOwogY2xhc3MgTGF5ZXJGaWx0ZXJSZW5kZXJlckFjdGlvbjsKQEAgLTE5OSw5ICsyMDQs
MTYgQEAgcHVibGljOgogICAgIGludCBkcmF3aW5nTW9kZVBhcmFtZXRlcigpIGNvbnN0IHsgcmV0
dXJuIG1fZHJhd2luZ01vZGVQYXJhbWV0ZXI7IH0KICAgICB2b2lkIHNldERyYXdpbmdNb2RlUGFy
YW1ldGVyKGludCBwKSB7IG1fZHJhd2luZ01vZGVQYXJhbWV0ZXIgPSBwOyB9CiAKKyNpZiBFTkFC
TEUoQ1NTX1NIQURFUlMpCisgICAgdm9pZCB1c2VDdXN0b21TaGFkZXIoUGFzc1JlZlB0cjxMYXll
ckNvbXBpbGVkUHJvZ3JhbT4gc2hhZGVyKSB7IG1fY3VzdG9tU2hhZGVyID0gc2hhZGVyOyBtX2N1
c3RvbUlkID0gbV9jdXN0b21TaGFkZXItPnByb2dyYW0oKTsgfQorICAgIHZvaWQgYWRvcHRNZXNo
KFBhc3NSZWZQdHI8TGF5ZXJGaWx0ZXJNZXNoPiBtZXNoKSB7IG1fY3VzdG9tTWVzaCA9IG1lc2g7
IH0KKyNlbmRpZgogCiBwcm90ZWN0ZWQ6CiAgICAgaW50IG1fcHJvZ3JhbUlkOworI2lmIEVOQUJM
RShDU1NfU0hBREVSUykKKyAgICBpbnQgbV9jdXN0b21JZDsKKyNlbmRpZgogICAgIGJvb2wgbV9w
dXNoU25hcHNob3Q7CiAgICAgYm9vbCBtX3BvcFNuYXBzaG90OwogCkBAIC0yMTAsNiArMjIyLDEw
IEBAIHByb3RlY3RlZDoKICAgICBEcmF3aW5nTW9kZSBtX2RyYXdpbmdNb2RlOwogICAgIGludCBt
X2RyYXdpbmdNb2RlUGFyYW1ldGVyOwogCisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAgIFJl
ZlB0cjxMYXllckNvbXBpbGVkUHJvZ3JhbT4gbV9jdXN0b21TaGFkZXI7CisgICAgUmVmUHRyPExh
eWVyRmlsdGVyTWVzaD4gbV9jdXN0b21NZXNoOworI2VuZGlmCiBwcml2YXRlOgogICAgIExheWVy
RmlsdGVyUmVuZGVyZXJBY3Rpb24oaW50IHByb2dyYW1JZCk7CiB9OwpAQCAtMjI2LDYgKzI0Miw4
IEBAIHB1YmxpYzoKICAgICBib29sIGlzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fZW5hYmxl
ZDsgfQogICAgIHZvaWQgZGlzYWJsZSgpIHsgbV9lbmFibGVkID0gZmFsc2U7IH0KIAorICAgIHZv
aWQgZmlsdGVyTWVzaERlc3Ryb3llZChMYXllckZpbHRlck1lc2gqKTsKKwogcHJpdmF0ZToKICAg
ICBMYXllckZpbHRlclJlbmRlcmVyKGNvbnN0IGludCYgcG9zaXRpb25Mb2NhdGlvbiwgY29uc3Qg
aW50JiB0ZXhDb29yZExvY2F0aW9uKTsKICAgICB2b2lkIGJpbmRDb21tb25BdHRyaWJMb2NhdGlv
bihpbnQgbG9jYXRpb24sIGNvbnN0IGNoYXIqIGF0dHJpYk5hbWUpOwpAQCAtMjQwLDYgKzI1OCwx
MSBAQCBwcml2YXRlOgogICAgIHZvaWQgcHVzaFNuYXBzaG90KExheWVyUmVuZGVyZXJTdXJmYWNl
KiwgaW50IHNvdXJjZUlkKTsKICAgICB2b2lkIHBvcFNuYXBzaG90KCk7CiAKKyNpZiBFTkFCTEUo
Q1NTX1NIQURFUlMpCisgICAgUGFzc1JlZlB0cjxMYXllckNvbXBpbGVkUHJvZ3JhbT4gZ2V0Q29t
cGlsZWRQcm9ncmFtKGNvbnN0IEN1c3RvbUZpbHRlclByb2dyYW1JbmZvJik7CisgICAgUGFzc1Jl
ZlB0cjxMYXllckZpbHRlck1lc2g+IGdldEZpbHRlck1lc2godW5zaWduZWQgY29scywgdW5zaWdu
ZWQgcm93cywgY29uc3QgRmxvYXRSZWN0JiBtZXNoQm94LCBDdXN0b21GaWx0ZXJPcGVyYXRpb246
Ok1lc2hUeXBlKTsKKyNlbmRpZgorCiAgICAgYm9vbCBtX2VuYWJsZWQ7CiAKICAgICAvLyBFU1NM
IGF0dHJpYnV0ZXMgc2hhcmVkIHdpdGggTGF5ZXJSZW5kZXJlciAtIHNlZSBjb25zdHJ1Y3RvcjoK
QEAgLTI1OSw2ICsyODIsMTEgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8VGV4dHVyZT4gbV90ZXh0
dXJlOwogICAgIFJlZlB0cjxUZXh0dXJlPiBtX3NuYXBzaG90VGV4dHVyZTsKIAorI2lmIEVOQUJM
RShDU1NfU0hBREVSUykKKyAgICBDdXN0b21GaWx0ZXJHbG9iYWxDb250ZXh0IG1fcHJvZ3JhbVZh
bGlkYXRvcjsKKyAgICBIYXNoU2V0PExheWVyRmlsdGVyTWVzaCo+IG1fbWVzaFNldDsKKyNlbmRp
ZgorCiAgICAgZnJpZW5kIGNsYXNzIExheWVyRmlsdGVyUmVuZGVyZXJBY3Rpb247CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ibGFja2JlcnJ5L0xh
eWVyV2ViS2l0VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Js
YWNrYmVycnkvTGF5ZXJXZWJLaXRUaHJlYWQuY3BwCmluZGV4IDdkMDhiMDU5ZjY3NzU4OGI1MTE0
YmZhYWM5YmY2OGE1NjQ0ZmQ3ZjguLjAyYjFiZWY1ZDZiMGM4M2VmMmFlMGFkYzI5ZGE1MjJkNGM3
MjhjMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2JsYWNr
YmVycnkvTGF5ZXJXZWJLaXRUaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2JsYWNrYmVycnkvTGF5ZXJXZWJLaXRUaHJlYWQuY3BwCkBAIC00NTYsOSArNDU2
LDYgQEAgYm9vbCBMYXllcldlYktpdFRocmVhZDo6ZmlsdGVyc0NhbkJlQ29tcG9zaXRlZChjb25z
dCBGaWx0ZXJPcGVyYXRpb25zJiBmaWx0ZXJzKQogICAgICAgICBjb25zdCBGaWx0ZXJPcGVyYXRp
b24qIGZpbHRlck9wZXJhdGlvbiA9IGZpbHRlcnMuYXQoaSk7CiAgICAgICAgIHN3aXRjaCAoZmls
dGVyT3BlcmF0aW9uLT5nZXRPcGVyYXRpb25UeXBlKCkpIHsKICAgICAgICAgY2FzZSBGaWx0ZXJP
cGVyYXRpb246OlJFRkVSRU5DRToKLSNpZiBFTkFCTEUoQ1NTX1NIQURFUlMpCi0gICAgICAgIGNh
c2UgRmlsdGVyT3BlcmF0aW9uOjpDVVNUT006Ci0jZW5kaWYKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJPcGVy
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9t
RmlsdGVyT3BlcmF0aW9uLmgKaW5kZXggYjRlOGIyOTM2MGI4NTc4OTgwOTFjY2VkMWJjNTc4MGJj
Zjc5YjM3NC4uZGE5MzQwMTI4ZTk1MjcyM2Y3ODRiNTAyNjc5NDBhMzA1YWNlNmIwNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0
ZXJPcGVyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9maWx0
ZXJzL0N1c3RvbUZpbHRlck9wZXJhdGlvbi5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAg
ICAKICAgICBDdXN0b21GaWx0ZXJQcm9ncmFtKiBwcm9ncmFtKCkgY29uc3QgeyByZXR1cm4gbV9w
cm9ncmFtLmdldCgpOyB9CiAgICAgCi0gICAgY29uc3QgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyTGlz
dCYgcGFyYW1ldGVycygpIHsgcmV0dXJuIG1fcGFyYW1ldGVyczsgfQorICAgIGNvbnN0IEN1c3Rv
bUZpbHRlclBhcmFtZXRlckxpc3QmIHBhcmFtZXRlcnMoKSBjb25zdCB7IHJldHVybiBtX3BhcmFt
ZXRlcnM7IH0KICAgICAKICAgICB1bnNpZ25lZCBtZXNoUm93cygpIGNvbnN0IHsgcmV0dXJuIG1f
bWVzaFJvd3M7IH0KICAgICB1bnNpZ25lZCBtZXNoQ29sdW1ucygpIGNvbnN0IHsgcmV0dXJuIG1f
bWVzaENvbHVtbnM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9maWx0ZXJzL0N1c3RvbUZpbHRlclBhcmFtZXRlci5oCmluZGV4IDgyOTgw
ZDZjNzgwZjA4MGNjN2Q3MDNmYWE5OGM2MmI2ZjVkM2VhODQuLjg3ZjQxNTZmZWVlODI1ZTJjNmU4
MjY5YmQ5YmJiYThhNjczYmE0NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZpbHRlcnMvQ3VzdG9tRmlsdGVyUGFyYW1ldGVyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZmlsdGVycy9DdXN0b21GaWx0ZXJQYXJhbWV0ZXIuaApA
QCAtMzcsMTIgKzM3LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgQW5pbWF0
aW9uQmFzZTsKKwogY2xhc3MgQ3VzdG9tRmlsdGVyUGFyYW1ldGVyIDogcHVibGljIFJlZkNvdW50
ZWQ8Q3VzdG9tRmlsdGVyUGFyYW1ldGVyPiB7CiBwdWJsaWM6CiAgICAgLy8gRklYTUU6IEltcGxl
bWVudCBvdGhlciBwYXJhbWV0ZXJzIHR5cGVzOgogICAgIC8vIGJvb2xlYW5zOiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY0MzgKICAgICAvLyB0ZXh0dXJlczogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNDQyCi0gICAgLy8gM2QtdHJh
bnNmb3JtczogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNDQzCiAg
ICAgLy8gbWF0MiwgbWF0MywgbWF0NDogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTcxNDQ0CiAgICAgZW51bSBQYXJhbWV0ZXJUeXBlIHsKICAgICAgICAgTlVNQkVSLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9GaWx0ZXJFZmZlY3RSZW5kZXJlci5jcHAK
aW5kZXggYTI0ZDVlMjkyOTk3MjI4MWUyY2MyZTlkNWRhOWQ4ZTIzYmIxZTQ3Yi4uNTQ3MWRiOWJi
NzA3ZGZjNGY1NjNkMmMxMzBmYzM1MzBhOWQ5YjZmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0ZpbHRlckVmZmVjdFJlbmRlcmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvRmlsdGVyRWZmZWN0UmVuZGVyZXIuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAg
UGFzc1JlZlB0cjxGaWx0ZXJFZmZlY3Q+IEZpbHRlckVmZmVjdFJlbmRlcmVyOjpidWlsZFJlZmVy
ZW5jZUZpbHRlcihEb2N1bWVudCogZG8KIAogYm9vbCBGaWx0ZXJFZmZlY3RSZW5kZXJlcjo6YnVp
bGQoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBGaWx0ZXJPcGVyYXRpb25zJiBvcGVyYXRpb25z
KQogewotI2lmICFFTkFCTEUoQ1NTX1NIQURFUlMpIHx8ICFFTkFCTEUoV0VCR0wpCisjaWYgIUVO
QUJMRShDU1NfU0hBREVSUykgfHwgIUVOQUJMRShXRUJHTCkgfHwgUExBVEZPUk0oQkxBQ0tCRVJS
WSkKICAgICBVTlVTRURfUEFSQU0oZG9jdW1lbnQpOwogI2VuZGlmCiAKQEAgLTIwNCw2ICsyMDQs
NyBAQCBib29sIEZpbHRlckVmZmVjdFJlbmRlcmVyOjpidWlsZChEb2N1bWVudCogZG9jdW1lbnQs
IGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIG9wZQogICAgIG1fZWZmZWN0cy5jbGVhcigpOwogCiAg
ICAgUmVmUHRyPEZpbHRlckVmZmVjdD4gcHJldmlvdXNFZmZlY3QgPSBtX3NvdXJjZUdyYXBoaWM7
CisjaWYgIVBMQVRGT1JNKEJMQUNLQkVSUlkpCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBv
cGVyYXRpb25zLm9wZXJhdGlvbnMoKS5zaXplKCk7ICsraSkgewogICAgICAgICBSZWZQdHI8Rmls
dGVyRWZmZWN0PiBlZmZlY3Q7CiAgICAgICAgIEZpbHRlck9wZXJhdGlvbiogZmlsdGVyT3BlcmF0
aW9uID0gb3BlcmF0aW9ucy5vcGVyYXRpb25zKCkuYXQoaSkuZ2V0KCk7CkBAIC0zNjcsMTMgKzM2
OCwxNCBAQCBib29sIEZpbHRlckVmZmVjdFJlbmRlcmVyOjpidWlsZChEb2N1bWVudCogZG9jdW1l
bnQsIGNvbnN0IEZpbHRlck9wZXJhdGlvbnMmIG9wZQogICAgICAgICAgICAgcHJldmlvdXNFZmZl
Y3QgPSBlZmZlY3QucmVsZWFzZSgpOwogICAgICAgICB9CiAgICAgfQorI2VuZGlmIC8vIFBMQVRG
T1JNKEJMQUNLQkVSUlkpCiAKICAgICAvLyBJZiB3ZSBkaWRuJ3QgbWFrZSBhbnkgZWZmZWN0cywg
dGVsbCBvdXIgY2FsbGVyIHdlIGFyZSBub3QgdmFsaWQKICAgICBpZiAoIW1fZWZmZWN0cy5zaXpl
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHNldE1heEVmZmVjdFJlY3RzKG1fc291
cmNlRHJhd2luZ1JlZ2lvbik7Ci0gICAgCisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9BcGkvV2ViUGFnZS5jcHAKaW5kZXggOTM3YmIzNTc5NmU0MTRjNGFk
YTQ2NTI0ZGY0ODkwY2I5NjI0NjRhNC4uMzUwOGQ0MDQ1MmY2Yjk2YzVkYzcxZWJjNzBlMTdjMDQ4
Mjg0OTAzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9XZWJQYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL1dlYlBhZ2UuY3BwCkBAIC01
ODIsNiArNTgyLDkgQEAgdm9pZCBXZWJQYWdlUHJpdmF0ZTo6aW5pdChjb25zdCBXZWJTdHJpbmcm
IHBhZ2VHcm91cE5hbWUpCiAKICNpZiBFTkFCTEUoV0VCR0wpCiAgICAgbV9wYWdlLT5zZXR0aW5n
cygpLT5zZXRXZWJHTEVuYWJsZWQodHJ1ZSk7CisjaWYgRU5BQkxFKENTU19TSEFERVJTKQorICAg
IG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0Q1NTQ3VzdG9tRmlsdGVyRW5hYmxlZCh0cnVlKTsKKyNl
bmRpZgogI2VuZGlmCiAjaWYgRU5BQkxFKEFDQ0VMRVJBVEVEXzJEX0NBTlZBUykKICAgICBtX3Bh
Z2UtPnNldHRpbmdzKCktPnNldENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmcodHJ1ZSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNGNmMzAy
Zjc3ZWUzNWFlODQyMmUyYWRhNGZlNzI1ZjYzMmE5ZGJjYy4uYjU0MDhlNWJiOTI3NTQyNGQ3ZjE0
MzMyODMwODM4ZDlmNWZiMjc0OSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTA4LTI5ICBKb3NodWEgTmV0dGVy
ZmllbGQgIDxqbmV0dGVyZmllbGRAcmltLmNvbT4KKworICAgICAgICBbQmxhY2tCZXJyeV0gRW5h
YmxlIENTUyBTaGFkZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD05NDcyOAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEVuYWJsZSBDU1MgU2hhZGVycyBmb3IgdGhlIEJsYWNrQmVycnkgcG9ydC4KKworICAg
ICAgICBDU1MgU2hhZGVycyAoYWxzbyBjYWxsZWQgQ3VzdG9tIEZpbHRlcnMpIGFyZSBDU1MgRmls
dGVyIEVmZmVjdHMKKyAgICAgICAgdGhhdCBhcmUgZGVmaW5lZCBieSBhIEdMU0wgRVMgdmVydGV4
IGFuZCBmcmFnbWVudCBzaGFkZXIuIEZvciBhIHF1aWNrCisgICAgICAgIGludHJvZHVjdGlvbiwg
c2VlIGh0dHA6Ly93d3cuYWRvYmUuY29tL2Rldm5ldC9odG1sNS9hcnRpY2xlcy9jc3Mtc2hhZGVy
cy5odG1sLgorCisgICAgICAgIFNlZSBhbHNvIFdlYktpdCBidWdzICM5MjY4NSwgIzk0NzI0IGFu
ZCAjOTQ3MjUuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG06
IEFkZCB0aGUgZmVhdHVyZSBhbmQgZW5hYmxlIGl0LgorCiAyMDEyLTA4LTIwICBHZW9yZ2UgU3Rh
aWtvcyAgPHN0YWlrb3NAd2Via2l0Lm9yZz4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gRW5hYmxl
IFhIUiBSZXNwb25zZSBCTE9CCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwv
RmVhdHVyZUxpc3QucG0gYi9Ub29scy9TY3JpcHRzL3dlYmtpdHBlcmwvRmVhdHVyZUxpc3QucG0K
aW5kZXggM2YyYjc0MmYzMmYwYmY4MGE2ZTZjMjZjMTMxMTc0OWVkMzk5NjNkZS4uZWUwOTJjMWM5
ZGEyZDI1ODMwNzA3YzgzMzAzMjQ5OTIyM2M4MWUyNCAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0
cy93ZWJraXRwZXJsL0ZlYXR1cmVMaXN0LnBtCisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cGVy
bC9GZWF0dXJlTGlzdC5wbQpAQCAtMTg0LDcgKzE4NCw3IEBAIG15IEBmZWF0dXJlcyA9ICgKICAg
ICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTU19SRUdJT05TIiwgZGVmYXVsdCA9PiAxLCB2YWx1ZSA9
PiBcJGNzc1JlZ2lvbnNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiY3NzLXNoYWRlcnMi
LCBkZXNjID0+ICJUb2dnbGUgQ1NTIFNoYWRlcnMgc3VwcG9ydCIsCi0gICAgICBkZWZpbmUgPT4g
IkVOQUJMRV9DU1NfU0hBREVSUyIsIGRlZmF1bHQgPT4gaXNBcHBsZU1hY1dlYktpdCgpLCB2YWx1
ZSA9PiBcJGNzc1NoYWRlcnNTdXBwb3J0IH0sCisgICAgICBkZWZpbmUgPT4gIkVOQUJMRV9DU1Nf
U0hBREVSUyIsIGRlZmF1bHQgPT4gaXNBcHBsZU1hY1dlYktpdCgpIHx8IGlzQmxhY2tCZXJyeSgp
LCB2YWx1ZSA9PiBcJGNzc1NoYWRlcnNTdXBwb3J0IH0sCiAKICAgICB7IG9wdGlvbiA9PiAiY3Nz
LWNvbXBvc2l0aW5nIiwgZGVzYyA9PiAiVG9nZ2xlIENTUyBDb21wb3NpdGluZyBzdXBwb3J0IiwK
ICAgICAgIGRlZmluZSA9PiAiRU5BQkxFX0NTU19DT01QT1NJVElORyIsIGRlZmF1bHQgPT4gMCwg
dmFsdWUgPT4gXCRjc3NDb21wb3NpdGluZ1N1cHBvcnQgfSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>