<?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>177994</bug_id>
          
          <creation_ts>2017-10-05 22:16:48 -0700</creation_ts>
          <short_desc>Update Source/ThirdParty/woff2 to 22c256bc457777744ba14b7325a6e8e0e7dec91c</short_desc>
          <delta_ts>2017-10-05 23:33:03 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>177768</dependson>
          <blocked>177862</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Frédéric Wang Nélar">fred.wang</reporter>
          <assigned_to name="Frédéric Wang Nélar">fred.wang</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>tpopela</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1357464</commentid>
    <comment_count>0</comment_count>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-10-05 22:16:48 -0700</bug_when>
    <thetext>Small update to take the following changes:
- Relicense as MIT (  53846e1861e713c4fdcfea98492aef24f265e9e5 )
- Move public headers into a separate include/woff2 directory ( 9b5a53b1d7bf52f51c9a3691f4664453d4805ef7 )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357466</commentid>
    <comment_count>1</comment_count>
      <attachid>322990</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2017-10-05 22:23:24 -0700</bug_when>
    <thetext>Created attachment 322990
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357476</commentid>
    <comment_count>2</comment_count>
      <attachid>322990</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-05 23:33:01 -0700</bug_when>
    <thetext>Comment on attachment 322990
Patch

Clearing flags on attachment: 322990

Committed r222960: &lt;http://trac.webkit.org/changeset/222960&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1357477</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-10-05 23:33:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>322990</attachid>
            <date>2017-10-05 22:23:24 -0700</date>
            <delta_ts>2017-10-05 23:33:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-177994-20171006072322.patch</filename>
            <type>text/plain</type>
            <size>55017</size>
            <attacher name="Frédéric Wang Nélar">fred.wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjIyOTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9DaGFuZ2VMb2cKaW5kZXggMzFhZWY1Mzhj
ZWNhMDJhYThiYzI2ZjRmODU1MWUwYjIxNjkyMzIxNy4uMTg1NTMyZmRkMjlhODU4YmRjOGMwM2Uy
OGQzOWUxZTMyYmJkODMxNyAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE3
LTEwLTA1ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KKworICAgICAgICBVcGRh
dGUgU291cmNlL1RoaXJkUGFydHkvd29mZjIgdG8gMjJjMjU2YmM0NTc3Nzc3NDRiYTE0YjczMjVh
NmU4ZTBlN2RlYzkxYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTc3OTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3b2ZmMi9DTWFrZUxpc3RzLnR4dDogQWxzbyBjb25zaWRlciB0aGUgZGlyZWN0b3J5
IGZvciBwdWJsaWMgaGVhZGVycy4KKyAgICAgICAgKiB3b2ZmMi9SRUFETUUud2Via2l0OgorICAg
ICAgICAqIHdvZmYyL2luY2x1ZGUvd29mZjIvZGVjb2RlLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
VGhpcmRQYXJ0eS93b2ZmMi9zcmMvd29mZjJfZGVjLmguCisgICAgICAgICogd29mZjIvaW5jbHVk
ZS93b2ZmMi9lbmNvZGUuaDogUmVuYW1lZCBmcm9tIFNvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3Ny
Yy93b2ZmMl9lbmMuaC4KKyAgICAgICAgKHdvZmYyOjpXT0ZGMlBhcmFtczo6V09GRjJQYXJhbXMp
OgorICAgICAgICAqIHdvZmYyL2luY2x1ZGUvd29mZjIvb3V0cHV0Lmg6IFJlbmFtZWQgZnJvbSBT
b3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvd29mZjJfb3V0LmguCisgICAgICAgICh3b2ZmMjo6
V09GRjJPdXQ6On5XT0ZGMk91dCk6CisgICAgICAgICh3b2ZmMjo6V09GRjJTdHJpbmdPdXQ6Ok1h
eFNpemUpOgorICAgICAgICAqIHdvZmYyL3NyYy9idWZmZXIuaDoKKyAgICAgICAgKiB3b2ZmMi9z
cmMvY29udmVydF93b2ZmMnR0Zl8qLmNjOgorICAgICAgICAqIHdvZmYyL3NyYy9maWxlLmg6Cisg
ICAgICAgICogd29mZjIvc3JjL2ZvbnQuY2M6CisgICAgICAgICogd29mZjIvc3JjL2ZvbnQuaDoK
KyAgICAgICAgKiB3b2ZmMi9zcmMvZ2x5cGguY2M6CisgICAgICAgICogd29mZjIvc3JjL2dseXBo
Lmg6CisgICAgICAgICogd29mZjIvc3JjL25vcm1hbGl6ZS5jYzoKKyAgICAgICAgKiB3b2ZmMi9z
cmMvbm9ybWFsaXplLmg6CisgICAgICAgICogd29mZjIvc3JjL3BvcnQuaDoKKyAgICAgICAgKiB3
b2ZmMi9zcmMvcm91bmQuaDoKKyAgICAgICAgKiB3b2ZmMi9zcmMvc3RvcmVfYnl0ZXMuaDoKKyAg
ICAgICAgKiB3b2ZmMi9zcmMvdGFibGVfdGFncy5jYzoKKyAgICAgICAgKiB3b2ZmMi9zcmMvdGFi
bGVfdGFncy5oOgorICAgICAgICAqIHdvZmYyL3NyYy90cmFuc2Zvcm0uY2M6CisgICAgICAgICog
d29mZjIvc3JjL3RyYW5zZm9ybS5oOgorICAgICAgICAqIHdvZmYyL3NyYy92YXJpYWJsZV9sZW5n
dGguY2M6CisgICAgICAgICogd29mZjIvc3JjL3ZhcmlhYmxlX2xlbmd0aC5oOgorICAgICAgICAq
IHdvZmYyL3NyYy93b2ZmMl9jb21tb24uY2M6CisgICAgICAgICogd29mZjIvc3JjL3dvZmYyX2Nv
bW1vbi5oOgorICAgICAgICAqIHdvZmYyL3NyYy93b2ZmMl9jb21wcmVzcy5jYzoKKyAgICAgICAg
KiB3b2ZmMi9zcmMvd29mZjJfZGVjLmNjOgorICAgICAgICAqIHdvZmYyL3NyYy93b2ZmMl9kZWNv
bXByZXNzLmNjOgorICAgICAgICAqIHdvZmYyL3NyYy93b2ZmMl9lbmMuY2M6CisgICAgICAgICog
d29mZjIvc3JjL3dvZmYyX2luZm8uY2M6CisgICAgICAgICogd29mZjIvc3JjL3dvZmYyX291dC5j
YzoKKyAgICAgICAgKiB3b2ZmMi91cGRhdGUuc2g6IEFsc28gY29uc2lkZXIgZGlyZWN0b3J5IGZv
ciBwdWJsaWMgaGVhZGVycy4KKwogMjAxNy0xMC0wMyAgRnJlZGVyaWMgV2FuZyAgPGZ3YW5nQGln
YWxpYS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEJyb3RsaSBmcm9tIFNvdXJjZS9UaGlyZFBhcnR5
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggNGQ0ZTAwMDE0YzE0NjgxZGYwNzg2ZTVjZTZhNzg3ZWJlZGRjM2M0ZC4u
ODMxMDFiYzFlOTVkMTVhYTBjYjk0ZGVjNWY4ODdjZjk0MTJmZWQyMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE4IEBACisyMDE3LTEwLTA1ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNv
bT4KKworICAgICAgICBVcGRhdGUgU291cmNlL1RoaXJkUGFydHkvd29mZjIgdG8gMjJjMjU2YmM0
NTc3Nzc3NDRiYTE0YjczMjVhNmU4ZTBlN2RlYzkxYworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc3OTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBhbHJlYWR5IGNvdmVyZWQgYnkg
ZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDogSW5jbHVkZSB0aGUg
ZGlyZWN0b3J5IGZvciBwdWJsaWMgaGVhZGVycyBpbnN0ZWFkLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0LmNwcDogVXNlIHRoZSBwdWJsaWMgaGVhZGVyCisgICAg
ICAgIHdvZmYyL2RlY29kZS5oIGFuZCBkbyBub3QgdXNlIHRoZSAid09GMiIgY29uc3RhbnQgZnJv
bSBwcml2YXRlIGhlYWRlcnMuCisgICAgICAgIChXZWJDb3JlOjppc1dPRkYpOgorICAgICAgICAo
V2ViQ29yZTo6Y29udmVydFdPRkZUb1NmbnQpOgorCiAyMDE3LTEwLTA1ICBDb21taXQgUXVldWUg
IDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByMjIyOTUxIGFuZCByMjIyOTUyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkv
d29mZjIvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9DTWFrZUxpc3Rz
LnR4dAppbmRleCAzZTVhNDhmMzg3NDg4MWEzYzk0N2VmYzZiODllMTYxZjFiNjg0MzU4Li5lMWY0
NTgyZGI3MjhiNTI2ZDllM2QxNDUyY2YwZTNiNjYwNDAwZGFjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
VGhpcmRQYXJ0eS93b2ZmMi9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS93
b2ZmMi9DTWFrZUxpc3RzLnR4dApAQCAtMSw2ICsxLDcgQEAKIHNldChXT0ZGMl9ESVIgIiR7VEhJ
UkRQQVJUWV9ESVJ9L3dvZmYyIikKIAogc2V0KFdPRkYyX0lOQ0xVREVfRElSRUNUT1JJRVMKKyAg
IiR7V09GRjJfRElSfS9pbmNsdWRlIgogICAiJHtXT0ZGMl9ESVJ9L3NyYyIKICkKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1RoaXJkUGFydHkvd29mZjIvUkVBRE1FLndlYmtpdCBiL1NvdXJjZS9UaGly
ZFBhcnR5L3dvZmYyL1JFQURNRS53ZWJraXQKaW5kZXggMWZjMGZhZDRjOTQzZWNjZWIyYTE5MGM3
NDZjNDAxNmNkMDU3YjNkNy4uMjhiOWFkYmFjMWQwMGQ2ZDZiZTYzNzAzODA1MzI5YzdiMzQ5N2Q3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvd29mZjIvUkVBRE1FLndlYmtpdAorKysg
Yi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9SRUFETUUud2Via2l0CkBAIC0xMSw0ICsxMSw0IEBA
IFRoZSBpbi10cmVlIGNvcHkgaXMgdXBkYXRlZCBieSBydW5uaW5nCiAgIHNoIHVwZGF0ZS5zaAog
ZnJvbSB3aXRoaW4gdGhlIG1vZHVsZXMvd29mZjIgZGlyZWN0b3J5LgogCi1DdXJyZW50IHZlcnNp
b246IFtjb21taXQgYWEyODNhNTAwYWViNjU1ODM0ZDc3ZjNjZjljZjFiMDkzYjBiNDM4OV0uCitD
dXJyZW50IHZlcnNpb246IFtjb21taXQgMjJjMjU2YmM0NTc3Nzc3NDRiYTE0YjczMjVhNmU4ZTBl
N2RlYzkxY10uCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9pbmNsdWRlL3dv
ZmYyL2RlY29kZS5oIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIvaW5jbHVkZS93b2ZmMi9kZWNv
ZGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ZWYzYjhlNzZjOGVhNzUzYTJjNWYxZTA2NzYxOWFjZjQ5ODkzZGU5
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIvaW5jbHVkZS93b2Zm
Mi9kZWNvZGUuaApAQCAtMCwwICsxLDM2IEBACisvKiBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgICBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5z
ZS4KKyAgIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHBzOi8vb3Bl
bnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUCisqLworCisvKiBMaWJyYXJ5IGZvciBjb252ZXJ0aW5n
IFdPRkYyIGZvcm1hdCBmb250IGZpbGVzIHRvIHRoZWlyIFRURiB2ZXJzaW9ucy4gKi8KKworI2lm
bmRlZiBXT0ZGMl9XT0ZGMl9ERUNfSF8KKyNkZWZpbmUgV09GRjJfV09GRjJfREVDX0hfCisKKyNp
bmNsdWRlIDxzdGRkZWYuaD4KKyNpbmNsdWRlIDxpbnR0eXBlcy5oPgorI2luY2x1ZGUgPHdvZmYy
L291dHB1dC5oPgorCituYW1lc3BhY2Ugd29mZjIgeworCisvLyBDb21wdXRlIHRoZSBzaXplIG9m
IHRoZSBmaW5hbCB1bmNvbXByZXNzZWQgZm9udCwgb3IgMCBvbiBlcnJvci4KK3NpemVfdCBDb21w
dXRlV09GRjJGaW5hbFNpemUoY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxlbmd0aCk7CisK
Ky8vIERlY29tcHJlc3NlcyB0aGUgZm9udCBpbnRvIHRoZSB0YXJnZXQgYnVmZmVyLiBUaGUgcmVz
dWx0X2xlbmd0aCBzaG91bGQKKy8vIGJlIHRoZSBzYW1lIGFzIGRldGVybWluZWQgYnkgQ29tcHV0
ZUZpbmFsU2l6ZSgpLiBSZXR1cm5zIHRydWUgb24gc3VjY2Vzc2Z1bAorLy8gZGVjb21wcmVzc2lv
bi4KKy8vIERFUFJFQ0FURUQ7IHBsZWFzZSBwcmVmZXIgdGhlIHZlcnNpb24gdGhhdCB0YWtlcyBh
IFdPRkYyT3V0KgorYm9vbCBDb252ZXJ0V09GRjJUb1RURih1aW50OF90ICpyZXN1bHQsIHNpemVf
dCByZXN1bHRfbGVuZ3RoLAorICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50OF90ICpk
YXRhLCBzaXplX3QgbGVuZ3RoKTsKKworLy8gRGVjb21wcmVzc2VzIHRoZSBmb250IGludG8gb3V0
LiBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KKy8vIFdvcmtzIGV2ZW4gaWYgV09GRjJIZWFkZXIg
dG90YWxTZm50U2l6ZSBpcyB3cm9uZy4KKy8vIFBsZWFzZSBwcmVmZXIgdGhpcyBBUEkuCitib29s
IENvbnZlcnRXT0ZGMlRvVFRGKGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW5ndGgsCisg
ICAgICAgICAgICAgICAgICAgICAgIFdPRkYyT3V0KiBvdXQpOworCit9IC8vIG5hbWVzcGFjZSB3
b2ZmMgorCisjZW5kaWYgIC8vIFdPRkYyX1dPRkYyX0RFQ19IXwpkaWZmIC0tZ2l0IGEvU291cmNl
L1RoaXJkUGFydHkvd29mZjIvaW5jbHVkZS93b2ZmMi9lbmNvZGUuaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L3dvZmYyL2luY2x1ZGUvd29mZjIvZW5jb2RlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzRiNzcyMjk3NDk1
OTQ0MDIzNzQ5MTk1NmE2OTM3N2IyYTJiZjdmMgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9U
aGlyZFBhcnR5L3dvZmYyL2luY2x1ZGUvd29mZjIvZW5jb2RlLmgKQEAgLTAsMCArMSw0MyBAQAor
LyogQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAg
RGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UuCisgICBTZWUgZmlsZSBMSUNFTlNFIGZvciBk
ZXRhaWwgb3IgY29weSBhdCBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAorKi8K
KworLyogTGlicmFyeSBmb3IgY29udmVydGluZyBXT0ZGMiBmb3JtYXQgZm9udCBmaWxlcyB0byB0
aGVpciBUVEYgdmVyc2lvbnMuICovCisKKyNpZm5kZWYgV09GRjJfV09GRjJfRU5DX0hfCisjZGVm
aW5lIFdPRkYyX1dPRkYyX0VOQ19IXworCisjaW5jbHVkZSA8c3RkZGVmLmg+CisjaW5jbHVkZSA8
aW50dHlwZXMuaD4KKyNpbmNsdWRlIDxzdHJpbmc+CisKK25hbWVzcGFjZSB3b2ZmMiB7CisKK3N0
cnVjdCBXT0ZGMlBhcmFtcyB7CisgIFdPRkYyUGFyYW1zKCkgOiBleHRlbmRlZF9tZXRhZGF0YSgi
IiksIGJyb3RsaV9xdWFsaXR5KDExKSwKKyAgICAgICAgICAgICAgICAgIGFsbG93X3RyYW5zZm9y
bXModHJ1ZSkge30KKworICBzdGQ6OnN0cmluZyBleHRlbmRlZF9tZXRhZGF0YTsKKyAgaW50IGJy
b3RsaV9xdWFsaXR5OworICBib29sIGFsbG93X3RyYW5zZm9ybXM7Cit9OworCisvLyBSZXR1cm5z
IGFuIHVwcGVyIGJvdW5kIG9uIHRoZSBzaXplIG9mIHRoZSBjb21wcmVzc2VkIGZpbGUuCitzaXpl
X3QgTWF4V09GRjJDb21wcmVzc2VkU2l6ZShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVu
Z3RoKTsKK3NpemVfdCBNYXhXT0ZGMkNvbXByZXNzZWRTaXplKGNvbnN0IHVpbnQ4X3QqIGRhdGEs
IHNpemVfdCBsZW5ndGgsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6
OnN0cmluZyYgZXh0ZW5kZWRfbWV0YWRhdGEpOworCisvLyBDb21wcmVzc2VzIHRoZSBmb250IGlu
dG8gdGhlIHRhcmdldCBidWZmZXIuICpyZXN1bHRfbGVuZ3RoIHNob3VsZCBiZSBhdCBsZWFzdAor
Ly8gdGhlIHZhbHVlIHJldHVybmVkIGJ5IE1heFdPRkYyQ29tcHJlc3NlZFNpemUoKSwgdXBvbiBy
ZXR1cm4sIGl0IGlzIHNldCB0byB0aGUKKy8vIGFjdHVhbCBjb21wcmVzc2VkIHNpemUuIFJldHVy
bnMgdHJ1ZSBvbiBzdWNjZXNzZnVsIGNvbXByZXNzaW9uLgorYm9vbCBDb252ZXJ0VFRGVG9XT0ZG
Mihjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3QgbGVuZ3RoLAorICAgICAgICAgICAgICAgICAg
ICAgICB1aW50OF90ICpyZXN1bHQsIHNpemVfdCAqcmVzdWx0X2xlbmd0aCk7Citib29sIENvbnZl
cnRUVEZUb1dPRkYyKGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW5ndGgsCisgICAgICAg
ICAgICAgICAgICAgICAgIHVpbnQ4X3QgKnJlc3VsdCwgc2l6ZV90ICpyZXN1bHRfbGVuZ3RoLAor
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBXT0ZGMlBhcmFtcyYgcGFyYW1zKTsKKworfSAv
LyBuYW1lc3BhY2Ugd29mZjIKKworI2VuZGlmICAvLyBXT0ZGMl9XT0ZGMl9FTkNfSF8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL2luY2x1ZGUvd29mZjIvb3V0cHV0LmggYi9T
b3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9pbmNsdWRlL3dvZmYyL291dHB1dC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMzMjVmNjdiZTcyODJhYjk2YTVjZmVjZTgyZmIzMDZhNDkzOTA2ZmQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9pbmNsdWRlL3dvZmYyL291dHB1dC5oCkBAIC0w
LDAgKzEsODYgQEAKKy8qIENvcHlyaWdodCAyMDE2IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisKKyAgIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLgorICAgU2VlIGZpbGUg
TElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNl
bnNlcy9NSVQKKyovCisKKy8qIE91dHB1dCBidWZmZXIgZm9yIFdPRkYyIGRlY29tcHJlc3Npb24u
ICovCisKKyNpZm5kZWYgV09GRjJfV09GRjJfT1VUX0hfCisjZGVmaW5lIFdPRkYyX1dPRkYyX09V
VF9IXworCisjaW5jbHVkZSA8YWxnb3JpdGhtPgorI2luY2x1ZGUgPGNzdHJpbmc+CisjaW5jbHVk
ZSA8bWVtb3J5PgorI2luY2x1ZGUgPHN0cmluZz4KKworbmFtZXNwYWNlIHdvZmYyIHsKKworLy8g
U3VnZ2VzdGVkIG1heCBzaXplIGZvciBvdXRwdXQuCitjb25zdCBzaXplX3Qga0RlZmF1bHRNYXhT
aXplID0gMzAgKiAxMDI0ICogMTAyNDsKKworLyoqCisgKiBPdXRwdXQgaW50ZXJmYWNlIGZvciB0
aGUgd29mZjIgZGVjb2RpbmcuCisgKgorICogV3JpdGVzIHRvIGFyYml0cmFyeSBvZmZzZXRzIGFy
ZSBzdXBwb3J0ZWQgdG8gZmFjaWxpdGF0ZSB1cGRhdGluZyBvZmZzZXQKKyAqIHRhYmxlIGFuZCBj
aGVja3N1bXMgYWZ0ZXIgdGFibGVzIGFyZSByZWFkeS4gUmVhZGluZyB0aGUgY3VycmVudCBzaXpl
IGlzCisgKiBzdXBwb3J0ZWQgc28gYSAnbG9jYScgdGFibGUgY2FuIGJlIGJ1aWx0IHVwIHdoaWxl
IHdyaXRpbmcgZ2x5cGhzLgorICoKKyAqIEJ5IGRlZmF1bHQgbGltaXRzIHNpemUgdG8ga0RlZmF1
bHRNYXhTaXplLgorICovCitjbGFzcyBXT0ZGMk91dCB7CisgcHVibGljOgorICB2aXJ0dWFsIH5X
T0ZGMk91dCh2b2lkKSB7fQorCisgIC8vIEFwcGVuZCBuIGJ5dGVzIG9mIGRhdGEgZnJvbSBidWYu
CisgIC8vIFJldHVybiB0cnVlIGlmIGFsbCB3cml0dGVuLCBmYWxzZSBvdGhlcndpc2UuCisgIHZp
cnR1YWwgYm9vbCBXcml0ZShjb25zdCB2b2lkICpidWYsIHNpemVfdCBuKSA9IDA7CisKKyAgLy8g
V3JpdGUgbiBieXRlcyBvZiBkYXRhIGZyb20gYnVmIGF0IG9mZnNldC4KKyAgLy8gUmV0dXJuIHRy
dWUgaWYgYWxsIHdyaXR0ZW4sIGZhbHNlIG90aGVyd2lzZS4KKyAgdmlydHVhbCBib29sIFdyaXRl
KGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IG9mZnNldCwgc2l6ZV90IG4pID0gMDsKKworICB2aXJ0
dWFsIHNpemVfdCBTaXplKCkgPSAwOworfTsKKworLyoqCisgKiBFeHBhbmRpbmcgbWVtb3J5IGJs
b2NrIGZvciB3b2ZmMiBvdXQuIEJ5IGRlZmF1bHQgbGltaXRlZCB0byBrRGVmYXVsdE1heFNpemUu
CisgKi8KK2NsYXNzIFdPRkYyU3RyaW5nT3V0IDogcHVibGljIFdPRkYyT3V0IHsKKyBwdWJsaWM6
CisgIC8vIENyZWF0ZSBhIHdyaXRlciB0aGF0IHdyaXRlcyBpdHMgZGF0YSB0byBidWYuCisgIC8v
IGJ1Zi0+c2l6ZSgpIHdpbGwgZ3JvdyB0byBhdCBtb3N0IG1heF9zaXplCisgIC8vIGJ1ZiBtYXkg
YmUgc2l6ZWQgKGUuZy4gdXNpbmcgRXN0aW1hdGVXT0ZGMkZpbmFsU2l6ZSkgb3IgZW1wdHkuCisg
IGV4cGxpY2l0IFdPRkYyU3RyaW5nT3V0KHN0ZDo6c3RyaW5nKiBidWYpOworCisgIGJvb2wgV3Jp
dGUoY29uc3Qgdm9pZCAqYnVmLCBzaXplX3Qgbikgb3ZlcnJpZGU7CisgIGJvb2wgV3JpdGUoY29u
c3Qgdm9pZCAqYnVmLCBzaXplX3Qgb2Zmc2V0LCBzaXplX3Qgbikgb3ZlcnJpZGU7CisgIHNpemVf
dCBTaXplKCkgb3ZlcnJpZGUgeyByZXR1cm4gb2Zmc2V0XzsgfQorICBzaXplX3QgTWF4U2l6ZSgp
IHsgcmV0dXJuIG1heF9zaXplXzsgfQorICB2b2lkIFNldE1heFNpemUoc2l6ZV90IG1heF9zaXpl
KTsKKyBwcml2YXRlOgorICBzdGQ6OnN0cmluZyogYnVmXzsKKyAgc2l6ZV90IG1heF9zaXplXzsK
KyAgc2l6ZV90IG9mZnNldF87Cit9OworCisvKioKKyAqIEZpeGVkIG1lbW9yeSBibG9jayBmb3Ig
d29mZjIgb3V0LgorICovCitjbGFzcyBXT0ZGMk1lbW9yeU91dCA6IHB1YmxpYyBXT0ZGMk91dCB7
CisgcHVibGljOgorICAvLyBDcmVhdGUgYSB3cml0ZXIgdGhhdCB3cml0ZXMgaXRzIGRhdGEgdG8g
YnVmLgorICBXT0ZGMk1lbW9yeU91dCh1aW50OF90KiBidWYsIHNpemVfdCBidWZfc2l6ZSk7CisK
KyAgYm9vbCBXcml0ZShjb25zdCB2b2lkICpidWYsIHNpemVfdCBuKSBvdmVycmlkZTsKKyAgYm9v
bCBXcml0ZShjb25zdCB2b2lkICpidWYsIHNpemVfdCBvZmZzZXQsIHNpemVfdCBuKSBvdmVycmlk
ZTsKKyAgc2l6ZV90IFNpemUoKSBvdmVycmlkZSB7IHJldHVybiBvZmZzZXRfOyB9CisgcHJpdmF0
ZToKKyAgdWludDhfdCogYnVmXzsKKyAgc2l6ZV90IGJ1Zl9zaXplXzsKKyAgc2l6ZV90IG9mZnNl
dF87Cit9OworCit9IC8vIG5hbWVzcGFjZSB3b2ZmMgorCisjZW5kaWYgIC8vIFdPRkYyX1dPRkYy
X09VVF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL2J1ZmZlci5o
IGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL2J1ZmZlci5oCmluZGV4IDA4NjgxYTZmY2Jm
ZWQ3ZmZkMDg2NTUwZDBiZmUxZmQ3ZjhiNTIzZjMuLjcyNDBlNTE4MWNlZDU5NWRmM2M5YWRkYzdi
NTQ4NDJjNmQ0OWNjZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy9i
dWZmZXIuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvYnVmZmVyLmgKQEAgLTEs
MTkgKzEsMTEgQEAKLS8vIENvcHlyaWdodCAyMDEzIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9u
IDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2Vw
dCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZb3UgbWF5IG9idGFpbiBhIGNv
cHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5z
ZXMvTElDRU5TRS0yLjAKLS8vCi0vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcg
b3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0vLyBkaXN0cmlidXRlZCB1bmRlciB0
aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotLy8gV0lUSE9V
VCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9y
IGltcGxpZWQuCi0vLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBn
b3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0vLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5z
ZS4KLS8vCi0vLyBUaGUgcGFydHMgb2Ygb3RzLmggJiBvcGVudHlwZS1zYW5pdGlzZXIuaCB0aGF0
IHdlIG5lZWQsIHRha2VuIGZyb20gdGhlCi0vLyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL290
cy8gcHJvamVjdC4KKy8qIENvcHlyaWdodCAyMDEzIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisKKyAgIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLgorICAgU2VlIGZpbGUg
TElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNl
bnNlcy9NSVQKKyovCisKKy8qIFRoZSBwYXJ0cyBvZiBvdHMuaCAmIG9wZW50eXBlLXNhbml0aXNl
ci5oIHRoYXQgd2UgbmVlZCwgdGFrZW4gZnJvbSB0aGUKKyAgIGh0dHBzOi8vY29kZS5nb29nbGUu
Y29tL3Avb3RzLyBwcm9qZWN0LiAqLwogCiAjaWZuZGVmIFdPRkYyX0JVRkZFUl9IXwogI2RlZmlu
ZSBXT0ZGMl9CVUZGRVJfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3Ny
Yy9jb252ZXJ0X3dvZmYydHRmX2Z1enplci5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3Ny
Yy9jb252ZXJ0X3dvZmYydHRmX2Z1enplci5jYwppbmRleCAzZmRkMTViYzJkMDUxN2ZhOTNkOGZk
MWVmZGRhYTJiY2NmODg4MzZlLi4yZDk3N2EzZWYyMGU1NTBhMDM3NmM3NjQ5MTJjMTNhY2JmZmY2
ODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvY29udmVydF93b2Zm
MnR0Zl9mdXp6ZXIuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL2NvbnZlcnRf
d29mZjJ0dGZfZnV6emVyLmNjCkBAIC0xLDcgKzEsNyBAQAogI2luY2x1ZGUgPHN0ZGRlZi5oPgog
I2luY2x1ZGUgPHN0ZGludC5oPgogCi0jaW5jbHVkZSAid29mZjJfZGVjLmgiCisjaW5jbHVkZSA8
d29mZjIvZGVjb2RlLmg+CiAKIC8vIEVudHJ5IHBvaW50IGZvciBMaWJGdXp6ZXIuCiBleHRlcm4g
IkMiIGludCBMTFZNRnV6emVyVGVzdE9uZUlucHV0KGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVf
dCBzaXplKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvY29udmVy
dF93b2ZmMnR0Zl9mdXp6ZXJfbmV3X2VudHJ5LmNjIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIv
c3JjL2NvbnZlcnRfd29mZjJ0dGZfZnV6emVyX25ld19lbnRyeS5jYwppbmRleCA3NTExNGE5MWIx
ZTVmMzhhYTQyZGIwYjI4YTM0ODQ5YTEwZTlhNDAwLi41YWQ5MzM2NGJmZDQ1MjIyNmI1YmE1Mzcz
MWZjNzVjOWUyODk5MmRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMv
Y29udmVydF93b2ZmMnR0Zl9mdXp6ZXJfbmV3X2VudHJ5LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBh
cnR5L3dvZmYyL3NyYy9jb252ZXJ0X3dvZmYydHRmX2Z1enplcl9uZXdfZW50cnkuY2MKQEAgLTEs
NSArMSw1IEBACiAjaW5jbHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgIndvZmYyX2RlYy5oIgorI2lu
Y2x1ZGUgPHdvZmYyL2RlY29kZS5oPgogCiBleHRlcm4gIkMiIGludCBMTFZNRnV6emVyVGVzdE9u
ZUlucHV0KGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBkYXRhX3NpemUpIHsKICAgLy8gRGVj
b2RlIHVzaW5nIG5ld2VyIGVudHJ5IHBhdHRlcm4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQ
YXJ0eS93b2ZmMi9zcmMvZmlsZS5oIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL2ZpbGUu
aAppbmRleCA3YWZjYjMxNWZlOGQzYTgxNWZiNWIwYzNlYTRlNzgwNDg5ZTM3ZTRjLi42MTMxODc3
NmJlM2IwZGE4OWY1ZmFlMTE5MGRlYTUxYzZiMGQ4ZjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhp
cmRQYXJ0eS93b2ZmMi9zcmMvZmlsZS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3Ny
Yy9maWxlLmgKQEAgLTEsMTggKzEsMTAgQEAKLS8vIENvcHlyaWdodCAyMDEzIEdvb2dsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBM
aWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1c2Ug
dGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZb3Ug
bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyBodHRwOi8vd3d3LmFw
YWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLS8vCi0vLyBVbmxlc3MgcmVxdWlyZWQgYnkg
YXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0vLyBkaXN0
cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJB
U0lTLAotLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVp
dGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0vLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVj
aWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0vLyBsaW1pdGF0aW9ucyB1
bmRlciB0aGUgTGljZW5zZS4KLS8vCi0vLyBGaWxlIElPIGhlbHBlcnMuCisvKiBDb3B5cmlnaHQg
MjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgICBEaXN0cmlidXRlZCB1
bmRlciBNSVQgbGljZW5zZS4KKyAgIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5
IGF0IGh0dHBzOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUCisqLworCisvKiBGaWxlIElP
IGhlbHBlcnMuICovCiAKICNpZm5kZWYgV09GRjJfRklMRV9IXwogI2RlZmluZSBXT0ZGMl9GSUxF
X0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvZm9udC5jYyBiL1Nv
dXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy9mb250LmNjCmluZGV4IDhkYzEwNDM4MjUxZTNmMjYy
ZjNlNGEwMjE5ZWE0MGYzOGM1ODJhNWUuLjZiNzJmNmRhOTI2YjczNjE0MzA4MzNiNjY2ZTQwM2Nm
MDMwNDU4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy9mb250LmNj
CisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy9mb250LmNjCkBAIC0xLDE4ICsxLDEw
IEBACi0vLyBDb3B5cmlnaHQgMjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgot
Ly8KLS8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRo
ZSAiTGljZW5zZSIpOwotLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29t
cGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRo
ZSBMaWNlbnNlIGF0Ci0vLwotLy8gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VO
U0UtMi4wCi0vLwotLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVl
ZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vu
c2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLS8vIFdJVEhPVVQgV0FSUkFO
VElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVk
LgotLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5n
IHBlcm1pc3Npb25zIGFuZAotLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0vLwot
Ly8gRm9udCBtYW5hZ2VtZW50IHV0aWxpdGllcworLyogQ29weXJpZ2h0IDIwMTMgR29vZ2xlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAgRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vu
c2UuCisgICBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwczovL29w
ZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAorKi8KKworLyogRm9udCBtYW5hZ2VtZW50IHV0aWxp
dGllcyAqLwogCiAjaW5jbHVkZSAiLi9mb250LmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L3dvZmYyL3NyYy9mb250LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvZm9u
dC5oCmluZGV4IDkzODA2ZTZiNWVlMTYzZGY3OGQ5YjcwYTljMWRjOTQ2NDFmZWNlODIuLjdiOGRk
ZGRjNWExOTU1NTNkN2NlMDI1ZGI3NTc2NDYxMTAwYzY5NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L3dvZmYyL3NyYy9mb250LmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIv
c3JjL2ZvbnQuaApAQCAtMSwxOSArMSwxMSBAQAotLy8gQ29weXJpZ2h0IDIwMTMgR29vZ2xlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hl
IExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLS8vIHlvdSBtYXkgbm90IHVz
ZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLS8vIFlv
dSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotLy8KLS8vIGh0dHA6Ly93d3cu
YXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotLy8KLS8vIFVubGVzcyByZXF1aXJlZCBi
eSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLS8vIGRp
c3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIg
QkFTSVMsCi0vLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwg
ZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLS8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNw
ZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLS8vIGxpbWl0YXRpb25z
IHVuZGVyIHRoZSBMaWNlbnNlLgotLy8KLS8vIERhdGEgbW9kZWwgZm9yIGEgZm9udCBmaWxlIGlu
IHNmbnQgZm9ybWF0LCByZWFkaW5nIGFuZCB3cml0aW5nIGZ1bmN0aW9ucyBhbmQKLS8vIGFjY2Vz
c29ycyBmb3IgdGhlIGdseXBoIGRhdGEuCisvKiBDb3B5cmlnaHQgMjAxMyBHb29nbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgorCisgICBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZS4K
KyAgIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHBzOi8vb3BlbnNv
dXJjZS5vcmcvbGljZW5zZXMvTUlUCisqLworCisvKiBEYXRhIG1vZGVsIGZvciBhIGZvbnQgZmls
ZSBpbiBzZm50IGZvcm1hdCwgcmVhZGluZyBhbmQgd3JpdGluZyBmdW5jdGlvbnMgYW5kCisgICBh
Y2Nlc3NvcnMgZm9yIHRoZSBnbHlwaCBkYXRhLiAqLwogCiAjaWZuZGVmIFdPRkYyX0ZPTlRfSF8K
ICNkZWZpbmUgV09GRjJfRk9OVF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvd29m
ZjIvc3JjL2dseXBoLmNjIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL2dseXBoLmNjCmlu
ZGV4IDRjNmI2MGExNDQ3MDFmNmEwNDIzY2UxNGQyOTJkYjBlZjdjZjgyZDAuLjA1NzE3NGRlMjE5
MzJiYmM3MjgzMTdhMDkzMTU4MTU5N2IwOTUyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBh
cnR5L3dvZmYyL3NyYy9nbHlwaC5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMv
Z2x5cGguY2MKQEAgLTEsMTggKzEsMTAgQEAKLS8vIENvcHlyaWdodCAyMDEzIEdvb2dsZSBJbmMu
IEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBM
aWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1c2Ug
dGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZb3Ug
bWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyBodHRwOi8vd3d3LmFw
YWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLS8vCi0vLyBVbmxlc3MgcmVxdWlyZWQgYnkg
YXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0vLyBkaXN0
cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJB
U0lTLAotLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVp
dGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0vLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVj
aWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0vLyBsaW1pdGF0aW9ucyB1
bmRlciB0aGUgTGljZW5zZS4KLS8vCi0vLyBHbHlwaCBtYW5pcHVsYXRpb24KKy8qIENvcHlyaWdo
dCAyMDEzIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKyAgIERpc3RyaWJ1dGVk
IHVuZGVyIE1JVCBsaWNlbnNlLgorICAgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNv
cHkgYXQgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQKKyovCisKKy8qIEdseXBo
IG1hbmlwdWxhdGlvbiAqLwogCiAjaW5jbHVkZSAiLi9nbHlwaC5oIgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvZ2x5cGguaCBiL1NvdXJjZS9UaGlyZFBhcnR5L3dv
ZmYyL3NyYy9nbHlwaC5oCmluZGV4IDBlZTc1NWMyZjVhZjBkNjc2ODdmNTVmYmY4YjcyZDA4NjMz
NDg3ZDIuLmYyNDA1NmY0YzhjODZmZTUzYjBkMWUxNjFlNTQ5MzQwODllZDRhYjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy9nbHlwaC5oCisrKyBiL1NvdXJjZS9UaGly
ZFBhcnR5L3dvZmYyL3NyYy9nbHlwaC5oCkBAIC0xLDE5ICsxLDExIEBACi0vLyBDb3B5cmlnaHQg
MjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIExpY2Vuc2VkIHVu
ZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotLy8g
eW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBM
aWNlbnNlLgotLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0vLwot
Ly8gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0vLwotLy8gVW5s
ZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBz
b2Z0d2FyZQotLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQg
b24gYW4gIkFTIElTIiBCQVNJUywKLS8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05T
IE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotLy8gU2VlIHRoZSBMaWNl
bnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAot
Ly8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0vLwotLy8gRGF0YSBtb2RlbCBhbmQg
SS9PIGZvciBnbHlwaCBkYXRhIHdpdGhpbiBzZm50IGZvcm1hdCBmaWxlcyBmb3IgdGhlIHB1cnBv
c2Ugb2YKLS8vIHBlcmZvcm1pbmcgdGhlIHByZXByb2Nlc3Npbmcgc3RlcCBvZiB0aGUgV09GRiAy
LjAgY29udmVyc2lvbi4KKy8qIENvcHlyaWdodCAyMDEzIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMg
UmVzZXJ2ZWQuCisKKyAgIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLgorICAgU2VlIGZp
bGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9s
aWNlbnNlcy9NSVQKKyovCisKKy8qIERhdGEgbW9kZWwgYW5kIEkvTyBmb3IgZ2x5cGggZGF0YSB3
aXRoaW4gc2ZudCBmb3JtYXQgZmlsZXMgZm9yIHRoZSBwdXJwb3NlIG9mCisgICBwZXJmb3JtaW5n
IHRoZSBwcmVwcm9jZXNzaW5nIHN0ZXAgb2YgdGhlIFdPRkYgMi4wIGNvbnZlcnNpb24uICovCiAK
ICNpZm5kZWYgV09GRjJfR0xZUEhfSF8KICNkZWZpbmUgV09GRjJfR0xZUEhfSF8KZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy9ub3JtYWxpemUuY2MgYi9Tb3VyY2UvVGhp
cmRQYXJ0eS93b2ZmMi9zcmMvbm9ybWFsaXplLmNjCmluZGV4IDFhZjNiN2RiNjZiNmQyODc3YTkz
NjI2ZmQzYmNkYTdjOWJiNDg1YjkuLjM5Zjk0MDVmZDMxMzFiNTMxYTU4N2QzM2U3YzBmNDdiNmMx
NGYyY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy9ub3JtYWxpemUu
Y2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL25vcm1hbGl6ZS5jYwpAQCAtMSwx
OCArMSwxMCBAQAotLy8gQ29weXJpZ2h0IDIwMTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLS8vCi0vLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24g
Mi4wICh0aGUgIkxpY2Vuc2UiKTsKLS8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0
IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLS8vIFlvdSBtYXkgb2J0YWluIGEgY29w
eSBvZiB0aGUgTGljZW5zZSBhdAotLy8KLS8vIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNl
cy9MSUNFTlNFLTIuMAotLy8KLS8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBv
ciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLS8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRo
ZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0vLyBXSVRIT1VU
IFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3Ig
aW1wbGllZC4KLS8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdv
dmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLS8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNl
LgotLy8KLS8vIEdseXBoIG5vcm1hbGl6YXRpb24KKy8qIENvcHlyaWdodCAyMDEzIEdvb2dsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKyAgIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNl
bnNlLgorICAgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cHM6Ly9v
cGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQKKyovCisKKy8qIEdseXBoIG5vcm1hbGl6YXRpb24g
Ki8KIAogI2luY2x1ZGUgIi4vbm9ybWFsaXplLmgiCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGly
ZFBhcnR5L3dvZmYyL3NyYy9ub3JtYWxpemUuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3Ny
Yy9ub3JtYWxpemUuaAppbmRleCBlMDE1MzQ4OGVkMzAzYzJiYzhjZTdjMjYwMTNjODUwODZlOGJm
OTRlLi5jNmZlZTc0ZGI2MDQxM2FhYWNmNzM1NGRlOGFiZWY3ODY4NmJlYzY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvbm9ybWFsaXplLmgKKysrIGIvU291cmNlL1Ro
aXJkUGFydHkvd29mZjIvc3JjL25vcm1hbGl6ZS5oCkBAIC0xLDIwICsxLDEyIEBACi0vLyBDb3B5
cmlnaHQgMjAxMyBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIExpY2Vu
c2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIp
OwotLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRo
IHRoZSBMaWNlbnNlLgotLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0
Ci0vLwotLy8gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0vLwot
Ly8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0
aW5nLCBzb2Z0d2FyZQotLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJp
YnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLS8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05E
SVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotLy8gU2VlIHRo
ZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25z
IGFuZAotLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0vLwotLy8gRnVuY3Rpb25z
IGZvciBub3JtYWxpemluZyBmb250cy4gU2luY2UgdGhlIFdPRkYgMi4wIGRlY29kZXIgY3JlYXRl
cyBmb250Ci0vLyBmaWxlcyBpbiBub3JtYWxpemVkIGZvcm0sIHRoZSBXT0ZGIDIuMCBjb252ZXJz
aW9uIGlzIGd1YXJhbnRlZWQgdG8gYmUKLS8vIGxvc3NsZXNzIChpbiBhIGJpdHdpc2Ugc2Vuc2Up
IG9ubHkgZm9yIG5vcm1hbGl6ZWQgZm9udCBmaWxlcy4KKy8qIENvcHlyaWdodCAyMDEzIEdvb2ds
ZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKyAgIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBs
aWNlbnNlLgorICAgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cHM6
Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQKKyovCisKKy8qIEZ1bmN0aW9ucyBmb3Igbm9y
bWFsaXppbmcgZm9udHMuIFNpbmNlIHRoZSBXT0ZGIDIuMCBkZWNvZGVyIGNyZWF0ZXMgZm9udAor
ICAgZmlsZXMgaW4gbm9ybWFsaXplZCBmb3JtLCB0aGUgV09GRiAyLjAgY29udmVyc2lvbiBpcyBn
dWFyYW50ZWVkIHRvIGJlCisgICBsb3NzbGVzcyAoaW4gYSBiaXR3aXNlIHNlbnNlKSBvbmx5IGZv
ciBub3JtYWxpemVkIGZvbnQgZmlsZXMuICovCiAKICNpZm5kZWYgV09GRjJfTk9STUFMSVpFX0hf
CiAjZGVmaW5lIFdPRkYyX05PUk1BTElaRV9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvd29mZjIvc3JjL3BvcnQuaCBiL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy9wb3J0LmgK
aW5kZXggYjMwMmQ2YzQ5NTliMDBlNWVlMmM0ZmMzOTdjNzU1NDcyM2VkY2ZiMi4uOGI2MGZlZThi
Yzk4ZWE1ZmQyOTc2ZDM5ZTcxYmJhY2JjMWUxOGNkMiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJk
UGFydHkvd29mZjIvc3JjL3BvcnQuaAorKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMv
cG9ydC5oCkBAIC0xLDE4ICsxLDEwIEBACi0vLyBDb3B5cmlnaHQgMjAxMyBHb29nbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGlj
ZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotLy8geW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotLy8gWW91IG1h
eSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0vLwotLy8gaHR0cDovL3d3dy5hcGFj
aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0vLwotLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFw
cGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotLy8gZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJ
UywKLS8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRo
ZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lm
aWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotLy8gbGltaXRhdGlvbnMgdW5k
ZXIgdGhlIExpY2Vuc2UuCi0vLwotLy8gSGVscGVyIGZ1bmN0aW9uIGZvciBiaXQgdHdpZGRsaW5n
IGFuZCBtYWNyb3MgZm9yIGJyYW5jaCBwcmVkaWN0aW9uLgorLyogQ29weXJpZ2h0IDIwMTMgR29v
Z2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAgRGlzdHJpYnV0ZWQgdW5kZXIgTUlU
IGxpY2Vuc2UuCisgICBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRw
czovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAorKi8KKworLyogSGVscGVyIGZ1bmN0aW9u
IGZvciBiaXQgdHdpZGRsaW5nIGFuZCBtYWNyb3MgZm9yIGJyYW5jaCBwcmVkaWN0aW9uLiAqLwog
CiAjaWZuZGVmIFdPRkYyX1BPUlRfSF8KICNkZWZpbmUgV09GRjJfUE9SVF9IXwpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3JvdW5kLmggYi9Tb3VyY2UvVGhpcmRQYXJ0
eS93b2ZmMi9zcmMvcm91bmQuaAppbmRleCBhYmI4MWY4MjM1ZDA4Mjg3MTJhYjIzMjFjYjg5ZGIy
Y2RlYWI4NzI1Li5lNWIyY2IxMjIwMGViMzI3ZDEzOGQ2YWNkYjVjYzYwODM3YThmMWY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvcm91bmQuaAorKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS93b2ZmMi9zcmMvcm91bmQuaApAQCAtMSwxOCArMSwxMCBAQAotLy8gQ29weXJp
Z2h0IDIwMTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBMaWNlbnNl
ZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsK
LS8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0
aGUgTGljZW5zZS4KLS8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAot
Ly8KLS8vIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotLy8KLS8v
IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGlu
Zywgc29mdHdhcmUKLS8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1
dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0vLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElU
SU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLS8vIFNlZSB0aGUg
TGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBh
bmQKLS8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotLy8KLS8vIEhlbHBlciBmb3Ig
cm91bmRpbmcKKy8qIENvcHlyaWdodCAyMDEzIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2
ZWQuCisKKyAgIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLgorICAgU2VlIGZpbGUgTElD
RU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNl
cy9NSVQKKyovCisKKy8qIEhlbHBlciBmb3Igcm91bmRpbmcgKi8KIAogI2lmbmRlZiBXT0ZGMl9S
T1VORF9IXwogI2RlZmluZSBXT0ZGMl9ST1VORF9IXwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvd29mZjIvc3JjL3N0b3JlX2J5dGVzLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9z
cmMvc3RvcmVfYnl0ZXMuaAppbmRleCA4MmMxYmQ4NGFjZWY2M2VhOWI1ODc4MzkyNTZiMWQzMWVi
ZGYyYjhiLi5mZmYzYzYyZjg0NmI1ZTI5N2JlMzdlYzVjNDk2YTI2YTM1YzAwZDBlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvc3RvcmVfYnl0ZXMuaAorKysgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvc3RvcmVfYnl0ZXMuaApAQCAtMSwxOSArMSwxMSBAQAot
Ly8gQ29weXJpZ2h0IDIwMTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS8vCi0v
LyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxp
Y2Vuc2UiKTsKLS8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFu
Y2Ugd2l0aCB0aGUgTGljZW5zZS4KLS8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGlj
ZW5zZSBhdAotLy8KLS8vIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIu
MAotLy8KLS8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8g
aW4gd3JpdGluZywgc29mdHdhcmUKLS8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlz
IGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0vLyBXSVRIT1VUIFdBUlJBTlRJRVMg
T1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLS8v
IFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJt
aXNzaW9ucyBhbmQKLS8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotLy8KLS8vIEhl
bHBlciBmdW5jdGlvbnMgZm9yIHN0b3JpbmcgaW50ZWdlciB2YWx1ZXMgaW50byBieXRlIHN0cmVh
bXMuCi0vLyBObyBib3VuZHMgY2hlY2tpbmcgaXMgcGVyZm9ybWVkLCB0aGF0IGlzIHRoZSByZXNw
b25zaWJpbGl0eSBvZiB0aGUgY2FsbGVyLgorLyogQ29weXJpZ2h0IDIwMTMgR29vZ2xlIEluYy4g
QWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAgRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2Uu
CisgICBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwczovL29wZW5z
b3VyY2Uub3JnL2xpY2Vuc2VzL01JVAorKi8KKworLyogSGVscGVyIGZ1bmN0aW9ucyBmb3Igc3Rv
cmluZyBpbnRlZ2VyIHZhbHVlcyBpbnRvIGJ5dGUgc3RyZWFtcy4KKyAgIE5vIGJvdW5kcyBjaGVj
a2luZyBpcyBwZXJmb3JtZWQsIHRoYXQgaXMgdGhlIHJlc3BvbnNpYmlsaXR5IG9mIHRoZSBjYWxs
ZXIuICovCiAKICNpZm5kZWYgV09GRjJfU1RPUkVfQllURVNfSF8KICNkZWZpbmUgV09GRjJfU1RP
UkVfQllURVNfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy90YWJs
ZV90YWdzLmNjIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3RhYmxlX3RhZ3MuY2MKaW5k
ZXggMDA3MWUwMGIwMGNhMjJjMmQ5ZmQ0MTdkOTExYjQ2ZTdjZDNiYTAzYy4uZGNhM2VjOGQyODc1
NzgyOTBjNDYxM2E5NDBmODc0MDg3MjBhOWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvd29mZjIvc3JjL3RhYmxlX3RhZ3MuY2MKKysrIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIv
c3JjL3RhYmxlX3RhZ3MuY2MKQEAgLTEsMTggKzEsMTAgQEAKLS8vIENvcHlyaWdodCAyMDE0IEdv
b2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5
IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2Uu
Ci0vLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyBodHRw
Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLS8vCi0vLyBVbmxlc3MgcmVx
dWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJl
Ci0vLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAi
QVMgSVMiIEJBU0lTLAotLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5Z
IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0vLyBTZWUgdGhlIExpY2Vuc2UgZm9y
IHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0vLyBsaW1p
dGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS8vCi0vLyBGb250IHRhYmxlIHRhZ3MKKy8qIENv
cHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKyAgIERpc3Ry
aWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLgorICAgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWls
IG9yIGNvcHkgYXQgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQKKyovCisKKy8q
IEZvbnQgdGFibGUgdGFncyAqLwogCiAjaW5jbHVkZSAiLi90YWJsZV90YWdzLmgiCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy90YWJsZV90YWdzLmggYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS93b2ZmMi9zcmMvdGFibGVfdGFncy5oCmluZGV4IGRhYTVkOTIxNWRlNzQ5YjMx
YzNlM2MyMGUwYjcxNzgzYzc5YTg2YmQuLjQyZGMwYWUxYzQ0MDYyOTE5ZGNhNTViZGZjZjllMjE0
N2RjMDk1YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy90YWJsZV90
YWdzLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3RhYmxlX3RhZ3MuaApAQCAt
MSwxOCArMSwxMCBAQAotLy8gQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBS
ZXNlcnZlZC4KLS8vCi0vLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNp
b24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLS8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhj
ZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLS8vIFlvdSBtYXkgb2J0YWluIGEg
Y29weSBvZiB0aGUgTGljZW5zZSBhdAotLy8KLS8vIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNl
bnNlcy9MSUNFTlNFLTIuMAotLy8KLS8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxh
dyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLS8vIGRpc3RyaWJ1dGVkIHVuZGVy
IHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0vLyBXSVRI
T1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mg
b3IgaW1wbGllZC4KLS8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdl
IGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLS8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNl
bnNlLgotLy8KLS8vIEZvbnQgdGFibGUgdGFncworLyogQ29weXJpZ2h0IDIwMTQgR29vZ2xlIElu
Yy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAgRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vu
c2UuCisgICBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwczovL29w
ZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAorKi8KKworLyogRm9udCB0YWJsZSB0YWdzICovCiAK
ICNpZm5kZWYgV09GRjJfVEFCTEVfVEFHU19IXwogI2RlZmluZSBXT0ZGMl9UQUJMRV9UQUdTX0hf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvdHJhbnNmb3JtLmNjIGIv
U291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3RyYW5zZm9ybS5jYwppbmRleCAyYWQ4YjE2M2Mz
YzgyNzczZTJlMzNiMjY3MDg5ZWYzNmNlOTk3NWViLi45OTliZWYzNzQ1OGVhNmFiNmFjNzA5NmJi
MDUwNTI4ZmU3NjA0NzU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMv
dHJhbnNmb3JtLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy90cmFuc2Zvcm0u
Y2MKQEAgLTEsMTggKzEsMTAgQEAKLS8vIENvcHlyaWdodCAyMDEzIEdvb2dsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNl
LCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBm
aWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZb3UgbWF5IG9i
dGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyBodHRwOi8vd3d3LmFwYWNoZS5v
cmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLS8vCi0vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGlj
YWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0vLyBkaXN0cmlidXRl
ZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAot
Ly8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBl
eHByZXNzIG9yIGltcGxpZWQuCi0vLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBs
YW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0vLyBsaW1pdGF0aW9ucyB1bmRlciB0
aGUgTGljZW5zZS4KLS8vCi0vLyBMaWJyYXJ5IGZvciBwcmVwcm9jZXNzaW5nIGZvbnRzIGFzIHBh
cnQgb2YgdGhlIFdPRkYgMi4wIGNvbnZlcnNpb24uCisvKiBDb3B5cmlnaHQgMjAxMyBHb29nbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorCisgICBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGlj
ZW5zZS4KKyAgIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHBzOi8v
b3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvTUlUCisqLworCisvKiBMaWJyYXJ5IGZvciBwcmVwcm9j
ZXNzaW5nIGZvbnRzIGFzIHBhcnQgb2YgdGhlIFdPRkYgMi4wIGNvbnZlcnNpb24uICovCiAKICNp
bmNsdWRlICIuL3RyYW5zZm9ybS5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS93
b2ZmMi9zcmMvdHJhbnNmb3JtLmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvdHJhbnNm
b3JtLmgKaW5kZXggZTlkMWIwZDNkYzQ4YTY3NTZjZTA4OTRhZGZlMGI0NGU1ZWExMTAwMC4uYTQ1
ODNkMTZjYjJhMzNjZWUxMGExZTI4ZTU4YjE5Njc5MzA3YTk3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvd29mZjIvc3JjL3RyYW5zZm9ybS5oCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5
L3dvZmYyL3NyYy90cmFuc2Zvcm0uaApAQCAtMSwxOCArMSwxMCBAQAotLy8gQ29weXJpZ2h0IDIw
MTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBMaWNlbnNlZCB1bmRl
ciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLS8vIHlv
dSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGlj
ZW5zZS4KLS8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotLy8KLS8v
IGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotLy8KLS8vIFVubGVz
cyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29m
dHdhcmUKLS8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9u
IGFuICJBUyBJUyIgQkFTSVMsCi0vLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBP
RiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLS8vIFNlZSB0aGUgTGljZW5z
ZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLS8v
IGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotLy8KLS8vIExpYnJhcnkgZm9yIHByZXBy
b2Nlc3NpbmcgZm9udHMgYXMgcGFydCBvZiB0aGUgV09GRiAyLjAgY29udmVyc2lvbi4KKy8qIENv
cHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKyAgIERpc3Ry
aWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLgorICAgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWls
IG9yIGNvcHkgYXQgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQKKyovCisKKy8q
IExpYnJhcnkgZm9yIHByZXByb2Nlc3NpbmcgZm9udHMgYXMgcGFydCBvZiB0aGUgV09GRiAyLjAg
Y29udmVyc2lvbi4gKi8KIAogI2lmbmRlZiBXT0ZGMl9UUkFOU0ZPUk1fSF8KICNkZWZpbmUgV09G
RjJfVFJBTlNGT1JNX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMv
dmFyaWFibGVfbGVuZ3RoLmNjIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3ZhcmlhYmxl
X2xlbmd0aC5jYwppbmRleCAyNjRlYjBhMTYwM2NkZDZjMzFiM2RmNGJhZDE4ZTlmNjIxMTkxMDY2
Li40ZjM0OGQ1ZTUwNGE0NWFmNTc0ZWQ0ZWM1ZDIxMDM1ZDk1NjBjMzc2IDEwMDY0NAotLS0gYS9T
b3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvdmFyaWFibGVfbGVuZ3RoLmNjCisrKyBiL1NvdXJj
ZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy92YXJpYWJsZV9sZW5ndGguY2MKQEAgLTEsMTggKzEsMTAg
QEAKLS8vIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0v
LwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhl
ICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21w
bGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhl
IExpY2Vuc2UgYXQKLS8vCi0vLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5T
RS0yLjAKLS8vCi0vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVk
IHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0vLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5z
ZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotLy8gV0lUSE9VVCBXQVJSQU5U
SUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQu
Ci0vLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcg
cGVybWlzc2lvbnMgYW5kCi0vLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS8vCi0v
LyBIZWxwZXIgZnVuY3Rpb25zIGZvciB3b2ZmMiB2YXJpYWJsZSBsZW5ndGggdHlwZXM6IDI1NVVJ
bnQxNiBhbmQgVUludEJhc2UxMjgKKy8qIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBS
aWdodHMgUmVzZXJ2ZWQuCisKKyAgIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLgorICAg
U2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cHM6Ly9vcGVuc291cmNl
Lm9yZy9saWNlbnNlcy9NSVQKKyovCisKKy8qIEhlbHBlciBmdW5jdGlvbnMgZm9yIHdvZmYyIHZh
cmlhYmxlIGxlbmd0aCB0eXBlczogMjU1VUludDE2IGFuZCBVSW50QmFzZTEyOCAqLwogCiAjaW5j
bHVkZSAiLi92YXJpYWJsZV9sZW5ndGguaCIKIApkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFy
dHkvd29mZjIvc3JjL3ZhcmlhYmxlX2xlbmd0aC5oIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIv
c3JjL3ZhcmlhYmxlX2xlbmd0aC5oCmluZGV4IDI4MTZhZTIzYTIwMzY5NTcxYTk4OGZhNjQ5Yjk5
MGUwYTBjMDFmNzYuLjIwODAxMDY1MzU3MjkzYTA2YWZkZmE4MjZiODZhOGNjYTA2Mjk3NzggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy92YXJpYWJsZV9sZW5ndGguaAor
KysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvdmFyaWFibGVfbGVuZ3RoLmgKQEAgLTEs
MTggKzEsMTAgQEAKLS8vIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9u
IDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2Vw
dCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZb3UgbWF5IG9idGFpbiBhIGNv
cHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5z
ZXMvTElDRU5TRS0yLjAKLS8vCi0vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcg
b3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0vLyBkaXN0cmlidXRlZCB1bmRlciB0
aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotLy8gV0lUSE9V
VCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9y
IGltcGxpZWQuCi0vLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBn
b3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0vLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5z
ZS4KLS8vCi0vLyBIZWxwZXIgZnVuY3Rpb25zIGZvciB3b2ZmMiB2YXJpYWJsZSBsZW5ndGggdHlw
ZXM6IDI1NVVJbnQxNiBhbmQgVUludEJhc2UxMjgKKy8qIENvcHlyaWdodCAyMDE1IEdvb2dsZSBJ
bmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCisKKyAgIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNl
bnNlLgorICAgU2VlIGZpbGUgTElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cHM6Ly9v
cGVuc291cmNlLm9yZy9saWNlbnNlcy9NSVQKKyovCisKKy8qIEhlbHBlciBmdW5jdGlvbnMgZm9y
IHdvZmYyIHZhcmlhYmxlIGxlbmd0aCB0eXBlczogMjU1VUludDE2IGFuZCBVSW50QmFzZTEyOCAq
LwogCiAjaWZuZGVmIFdPRkYyX1ZBUklBQkxFX0xFTkdUSF9IXwogI2RlZmluZSBXT0ZGMl9WQVJJ
QUJMRV9MRU5HVEhfSF8KZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy93
b2ZmMl9jb21tb24uY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvd29mZjJfY29tbW9u
LmNjCmluZGV4IGMxOWFjZGJkOWNlNGUwY2Q5NTU2YTI4MzQ4Njc5NjUzNGI0NWFhNWUuLmZlMGEz
YmVkYTcxMDBkNmNlYjZmOGFlMTg1NjI1MDY3ZmJmMjQ0MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9U
aGlyZFBhcnR5L3dvZmYyL3NyYy93b2ZmMl9jb21tb24uY2MKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvd29mZjIvc3JjL3dvZmYyX2NvbW1vbi5jYwpAQCAtMSwxOCArMSwxMCBAQAotLy8gQ29weXJp
Z2h0IDIwMTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBMaWNlbnNl
ZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsK
LS8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0
aGUgTGljZW5zZS4KLS8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAot
Ly8KLS8vIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotLy8KLS8v
IFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGlu
Zywgc29mdHdhcmUKLS8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1
dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0vLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElU
SU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLS8vIFNlZSB0aGUg
TGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBh
bmQKLS8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotLy8KLS8vIEhlbHBlcnMgY29t
bW9uIGFjcm9zcyBtdWx0aXBsZSBwYXJ0cyBvZiB3b2ZmMgorLyogQ29weXJpZ2h0IDIwMTMgR29v
Z2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAgRGlzdHJpYnV0ZWQgdW5kZXIgTUlU
IGxpY2Vuc2UuCisgICBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRw
czovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAorKi8KKworLyogSGVscGVycyBjb21tb24g
YWNyb3NzIG11bHRpcGxlIHBhcnRzIG9mIHdvZmYyICovCiAKICNpbmNsdWRlIDxhbGdvcml0aG0+
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy93b2ZmMl9jb21tb24u
aCBiL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy93b2ZmMl9jb21tb24uaAppbmRleCBhOGM0
NWFmODBlMTk3NGI4MWE2NThhY2FmODYyMDQwNjY0NzhlYjUxLi41MWZkNGE3YmY4YTMyNjM1MGZi
Y2UyZTY1MWJmZTU3NWFlZmVhZmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2Zm
Mi9zcmMvd29mZjJfY29tbW9uLmgKKysrIGIvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3dv
ZmYyX2NvbW1vbi5oCkBAIC0xLDE4ICsxLDEwIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFj
aGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotLy8geW91IG1heSBub3Qg
dXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotLy8g
WW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0vLwotLy8gaHR0cDovL3d3
dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0vLwotLy8gVW5sZXNzIHJlcXVpcmVk
IGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotLy8g
ZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElT
IiBCQVNJUywKLS8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5E
LCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUg
c3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotLy8gbGltaXRhdGlv
bnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0vLwotLy8gQ29tbW9uIGRlZmluaXRpb24gZm9yIFdPRkYy
IGVuY29kaW5nL2RlY29kaW5nCisvKiBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgorCisgICBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZS4KKyAgIFNl
ZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHBzOi8vb3BlbnNvdXJjZS5v
cmcvbGljZW5zZXMvTUlUCisqLworCisvKiBDb21tb24gZGVmaW5pdGlvbiBmb3IgV09GRjIgZW5j
b2RpbmcvZGVjb2RpbmcgKi8KIAogI2lmbmRlZiBXT0ZGMl9XT0ZGMl9DT01NT05fSF8KICNkZWZp
bmUgV09GRjJfV09GRjJfQ09NTU9OX0hfCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS93
b2ZmMi9zcmMvd29mZjJfY29tcHJlc3MuY2MgYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMv
d29mZjJfY29tcHJlc3MuY2MKaW5kZXggZTVjZjcxMGY3OTNkYWNhMWE2ZTczODMwYjEwMDI3NTlj
NDM4MzI5Yi4uODBlMzEwODY2NzY0ZTNiMzIxZjc4N2JkYjA2ZDNjMTc0Zjg5NmY5NCAxMDA2NDQK
LS0tIGEvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3dvZmYyX2NvbXByZXNzLmNjCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy93b2ZmMl9jb21wcmVzcy5jYwpAQCAtMSwyMyAr
MSwxNSBAQAotLy8gQ29weXJpZ2h0IDIwMTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZl
ZC4KLS8vCi0vLyBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4w
ICh0aGUgIkxpY2Vuc2UiKTsKLS8vIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGlu
IGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4KLS8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBv
ZiB0aGUgTGljZW5zZSBhdAotLy8KLS8vIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9M
SUNFTlNFLTIuMAotLy8KLS8vIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBh
Z3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUKLS8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBM
aWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJBUyBJUyIgQkFTSVMsCi0vLyBXSVRIT1VUIFdB
UlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1w
bGllZC4KLS8vIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVy
bmluZyBwZXJtaXNzaW9ucyBhbmQKLS8vIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgot
Ly8KLS8vIEEgY29tbWFuZGxpbmUgdG9vbCBmb3IgY29tcHJlc3NpbmcgdHRmIGZvcm1hdCBmaWxl
cyB0byB3b2ZmMi4KKy8qIENvcHlyaWdodCAyMDEzIEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVz
ZXJ2ZWQuCisKKyAgIERpc3RyaWJ1dGVkIHVuZGVyIE1JVCBsaWNlbnNlLgorICAgU2VlIGZpbGUg
TElDRU5TRSBmb3IgZGV0YWlsIG9yIGNvcHkgYXQgaHR0cHM6Ly9vcGVuc291cmNlLm9yZy9saWNl
bnNlcy9NSVQKKyovCisKKy8qIEEgY29tbWFuZGxpbmUgdG9vbCBmb3IgY29tcHJlc3NpbmcgdHRm
IGZvcm1hdCBmaWxlcyB0byB3b2ZmMi4gKi8KIAogI2luY2x1ZGUgPHN0cmluZz4KIAogI2luY2x1
ZGUgImZpbGUuaCIKLSNpbmNsdWRlICIuL3dvZmYyX2VuYy5oIgorI2luY2x1ZGUgPHdvZmYyL2Vu
Y29kZS5oPgogCiAKIGludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewpkaWZmIC0tZ2l0
IGEvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3dvZmYyX2RlYy5jYyBiL1NvdXJjZS9UaGly
ZFBhcnR5L3dvZmYyL3NyYy93b2ZmMl9kZWMuY2MKaW5kZXggODMxZGQ0NTU1MTNmOWE0M2M1Zjcw
MjU1NGEwNWU5NDA5NGQ1ZmYzNC4uODE4NmM4ZTVkOWU1ZDQyY2Y3NDlhYmMyYTg2YmJmZjE2MWNi
MGFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3dvZmYyX2RlYy5j
YworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvd29mZjJfZGVjLmNjCkBAIC0xLDIw
ICsxLDEyIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2Vy
dmVkLgotLy8KLS8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAy
LjAgKHRoZSAiTGljZW5zZSIpOwotLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQg
aW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5
IG9mIHRoZSBMaWNlbnNlIGF0Ci0vLwotLy8gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2Vz
L0xJQ0VOU0UtMi4wCi0vLwotLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9y
IGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhl
IExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLS8vIFdJVEhPVVQg
V0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBp
bXBsaWVkLgotLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292
ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2Uu
Ci0vLwotLy8gTGlicmFyeSBmb3IgY29udmVydGluZyBXT0ZGMiBmb3JtYXQgZm9udCBmaWxlcyB0
byB0aGVpciBUVEYgdmVyc2lvbnMuCi0KLSNpbmNsdWRlICIuL3dvZmYyX2RlYy5oIgorLyogQ29w
eXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAgRGlzdHJp
YnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UuCisgICBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwg
b3IgY29weSBhdCBodHRwczovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAorKi8KKworLyog
TGlicmFyeSBmb3IgY29udmVydGluZyBXT0ZGMiBmb3JtYXQgZm9udCBmaWxlcyB0byB0aGVpciBU
VEYgdmVyc2lvbnMuICovCisKKyNpbmNsdWRlIDx3b2ZmMi9kZWNvZGUuaD4KIAogI2luY2x1ZGUg
PHN0ZGxpYi5oPgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTI3LDcgKzE5LDcgQEAKICNpbmNs
dWRlIDxtZW1vcnk+CiAjaW5jbHVkZSA8dXRpbGl0eT4KIAotI2luY2x1ZGUgIi4vYnJvdGxpL2Rl
Y29kZS5oIgorI2luY2x1ZGUgPGJyb3RsaS9kZWNvZGUuaD4KICNpbmNsdWRlICIuL2J1ZmZlci5o
IgogI2luY2x1ZGUgIi4vcG9ydC5oIgogI2luY2x1ZGUgIi4vcm91bmQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy93b2ZmMl9kZWMuaCBiL1NvdXJjZS9UaGlyZFBh
cnR5L3dvZmYyL3NyYy93b2ZmMl9kZWMuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
Yjg4OTgxMmZiYzI2M2UzZmQ2YzAxMDQxNjFiMTQyNjI4YmFjY2QyMS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9z
cmMvd29mZjJfZGVjLmgKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi0vLyBDb3B5cmln
aHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIExpY2Vuc2Vk
IHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwot
Ly8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRo
ZSBMaWNlbnNlLgotLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0v
LwotLy8gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0vLwotLy8g
VW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5n
LCBzb2Z0d2FyZQotLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0
ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLS8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJ
T05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotLy8gU2VlIHRoZSBM
aWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFu
ZAotLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0vLwotLy8gTGlicmFyeSBmb3Ig
Y29udmVydGluZyBXT0ZGMiBmb3JtYXQgZm9udCBmaWxlcyB0byB0aGVpciBUVEYgdmVyc2lvbnMu
Ci0KLSNpZm5kZWYgV09GRjJfV09GRjJfREVDX0hfCi0jZGVmaW5lIFdPRkYyX1dPRkYyX0RFQ19I
XwotCi0jaW5jbHVkZSA8c3RkZGVmLmg+Ci0jaW5jbHVkZSA8aW50dHlwZXMuaD4KLSNpbmNsdWRl
ICIuL3dvZmYyX291dC5oIgotCi1uYW1lc3BhY2Ugd29mZjIgewotCi0vLyBDb21wdXRlIHRoZSBz
aXplIG9mIHRoZSBmaW5hbCB1bmNvbXByZXNzZWQgZm9udCwgb3IgMCBvbiBlcnJvci4KLXNpemVf
dCBDb21wdXRlV09GRjJGaW5hbFNpemUoY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxlbmd0
aCk7Ci0KLS8vIERlY29tcHJlc3NlcyB0aGUgZm9udCBpbnRvIHRoZSB0YXJnZXQgYnVmZmVyLiBU
aGUgcmVzdWx0X2xlbmd0aCBzaG91bGQKLS8vIGJlIHRoZSBzYW1lIGFzIGRldGVybWluZWQgYnkg
Q29tcHV0ZUZpbmFsU2l6ZSgpLiBSZXR1cm5zIHRydWUgb24gc3VjY2Vzc2Z1bAotLy8gZGVjb21w
cmVzc2lvbi4KLS8vIERFUFJFQ0FURUQ7IHBsZWFzZSBwcmVmZXIgdGhlIHZlcnNpb24gdGhhdCB0
YWtlcyBhIFdPRkYyT3V0KgotYm9vbCBDb252ZXJ0V09GRjJUb1RURih1aW50OF90ICpyZXN1bHQs
IHNpemVfdCByZXN1bHRfbGVuZ3RoLAotICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB1aW50
OF90ICpkYXRhLCBzaXplX3QgbGVuZ3RoKTsKLQotLy8gRGVjb21wcmVzc2VzIHRoZSBmb250IGlu
dG8gb3V0LiBSZXR1cm5zIHRydWUgb24gc3VjY2Vzcy4KLS8vIFdvcmtzIGV2ZW4gaWYgV09GRjJI
ZWFkZXIgdG90YWxTZm50U2l6ZSBpcyB3cm9uZy4KLS8vIFBsZWFzZSBwcmVmZXIgdGhpcyBBUEku
Ci1ib29sIENvbnZlcnRXT0ZGMlRvVFRGKGNvbnN0IHVpbnQ4X3QgKmRhdGEsIHNpemVfdCBsZW5n
dGgsCi0gICAgICAgICAgICAgICAgICAgICAgIFdPRkYyT3V0KiBvdXQpOwotCi19IC8vIG5hbWVz
cGFjZSB3b2ZmMgotCi0jZW5kaWYgIC8vIFdPRkYyX1dPRkYyX0RFQ19IXwpkaWZmIC0tZ2l0IGEv
U291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3dvZmYyX2RlY29tcHJlc3MuY2MgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS93b2ZmMi9zcmMvd29mZjJfZGVjb21wcmVzcy5jYwppbmRleCBhMzQyMmJmNjc2
NzU4YTA3MDU4OWFkZjdmOTE1NDQxYTNmNTkyZmY1Li5kZTA4OGI5ZWMwZjg1ZTM2MmE2ZDk1MmI1
ZTJmYTcwYTYwZjc3MDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMv
d29mZjJfZGVjb21wcmVzcy5jYworKysgYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvd29m
ZjJfZGVjb21wcmVzcy5jYwpAQCAtMSwyNCArMSwxNiBAQAotLy8gQ29weXJpZ2h0IDIwMTMgR29v
Z2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLS8vCi0vLyBMaWNlbnNlZCB1bmRlciB0aGUg
QXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgIkxpY2Vuc2UiKTsKLS8vIHlvdSBtYXkg
bm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS4K
LS8vIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdAotLy8KLS8vIGh0dHA6
Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMAotLy8KLS8vIFVubGVzcyByZXF1
aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmUK
LS8vIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICJB
UyBJUyIgQkFTSVMsCi0vLyBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkg
S0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC4KLS8vIFNlZSB0aGUgTGljZW5zZSBmb3Ig
dGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmQKLS8vIGxpbWl0
YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLgotLy8KLS8vIEEgdmVyeSBzaW1wbGUgY29tbWFuZGxp
bmUgdG9vbCBmb3IgZGVjb21wcmVzc2luZyB3b2ZmMiBmb3JtYXQgZmlsZXMgdG8gdHJ1ZQotLy8g
dHlwZSBmb250IGZpbGVzLgorLyogQ29weXJpZ2h0IDIwMTMgR29vZ2xlIEluYy4gQWxsIFJpZ2h0
cyBSZXNlcnZlZC4KKworICAgRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UuCisgICBTZWUg
ZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwczovL29wZW5zb3VyY2Uub3Jn
L2xpY2Vuc2VzL01JVAorKi8KKworLyogQSB2ZXJ5IHNpbXBsZSBjb21tYW5kbGluZSB0b29sIGZv
ciBkZWNvbXByZXNzaW5nIHdvZmYyIGZvcm1hdCBmaWxlcyB0byB0cnVlCisgICB0eXBlIGZvbnQg
ZmlsZXMuICovCiAKICNpbmNsdWRlIDxzdHJpbmc+CiAKICNpbmNsdWRlICIuL2ZpbGUuaCIKLSNp
bmNsdWRlICIuL3dvZmYyX2RlYy5oIgorI2luY2x1ZGUgPHdvZmYyL2RlY29kZS5oPgogCiAKIGlu
dCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJk
UGFydHkvd29mZjIvc3JjL3dvZmYyX2VuYy5jYyBiL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3Ny
Yy93b2ZmMl9lbmMuY2MKaW5kZXggNGU4M2E2NzRmN2UyNWFlOTcwYTYyYzA0Zjg5ZjlkNzFiY2Qz
MzZjZS4uZWMwMDg3OGJjZDY0MDMyMmY1NDdiOGI2ZjIyNTU3ZmJhYzk4NjBlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3dvZmYyX2VuYy5jYworKysgYi9Tb3VyY2Uv
VGhpcmRQYXJ0eS93b2ZmMi9zcmMvd29mZjJfZW5jLmNjCkBAIC0xLDIwICsxLDEyIEBACi0vLyBD
b3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIExp
Y2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5z
ZSIpOwotLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3
aXRoIHRoZSBMaWNlbnNlLgotLy8gWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNl
IGF0Ci0vLwotLy8gaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0v
LwotLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3
cml0aW5nLCBzb2Z0d2FyZQotLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlz
dHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLS8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBD
T05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotLy8gU2Vl
IHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Np
b25zIGFuZAotLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuCi0vLwotLy8gTGlicmFy
eSBmb3IgY29udmVydGluZyBUVEYgZm9ybWF0IGZvbnQgZmlsZXMgdG8gdGhlaXIgV09GRjIgdmVy
c2lvbnMuCi0KLSNpbmNsdWRlICIuL3dvZmYyX2VuYy5oIgorLyogQ29weXJpZ2h0IDIwMTQgR29v
Z2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KKworICAgRGlzdHJpYnV0ZWQgdW5kZXIgTUlU
IGxpY2Vuc2UuCisgICBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRw
czovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL01JVAorKi8KKworLyogTGlicmFyeSBmb3IgY29u
dmVydGluZyBUVEYgZm9ybWF0IGZvbnQgZmlsZXMgdG8gdGhlaXIgV09GRjIgdmVyc2lvbnMuICov
CisKKyNpbmNsdWRlIDx3b2ZmMi9lbmNvZGUuaD4KIAogI2luY2x1ZGUgPHN0ZGxpYi5oPgogI2lu
Y2x1ZGUgPGNvbXBsZXg+CkBAIC0yMyw3ICsxNSw3IEBACiAjaW5jbHVkZSA8c3RyaW5nPgogI2lu
Y2x1ZGUgPHZlY3Rvcj4KIAotI2luY2x1ZGUgIi4vYnJvdGxpL2VuY29kZS5oIgorI2luY2x1ZGUg
PGJyb3RsaS9lbmNvZGUuaD4KICNpbmNsdWRlICIuL2J1ZmZlci5oIgogI2luY2x1ZGUgIi4vZm9u
dC5oIgogI2luY2x1ZGUgIi4vbm9ybWFsaXplLmgiCkBAIC00MzYsNyArNDI4LDcgQEAgYm9vbCBD
b252ZXJ0VFRGVG9XT0ZGMihjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3QgbGVuZ3RoLAogICAg
ICAgICBzdGQ6OnBhaXI8dWludDMyX3QsIHVpbnQzMl90PiB0YWdfb2Zmc2V0KHRhYmxlLnRhZywg
dGFibGVfb2Zmc2V0KTsKICAgICAgICAgaWYgKGluZGV4X2J5X3RhZ19vZmZzZXQuZmluZCh0YWdf
b2Zmc2V0KSA9PSBpbmRleF9ieV90YWdfb2Zmc2V0LmVuZCgpKSB7CiAjaWZkZWYgRk9OVF9DT01Q
UkVTU0lPTl9CSU4KLSAgICAgICAgICBmcHJpbnRmKHN0ZGVyciwgIk1pc3NpbmcgdGFibGUgaW5k
ZXggZm9yIG9mZnNldCAweCUwOHhcbiIsCitmcHJpbnRmKHN0ZGVyciwgIk1pc3NpbmcgdGFibGUg
aW5kZXggZm9yIG9mZnNldCAweCUwOHhcbiIsCiAgICAgICAgICAgICAgICAgICB0YWJsZV9vZmZz
ZXQpOwogI2VuZGlmCiAgICAgICAgICAgcmV0dXJuIEZPTlRfQ09NUFJFU1NJT05fRkFJTFVSRSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3dvZmYyX2VuYy5oIGIv
U291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3dvZmYyX2VuYy5oCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAzYWM4YzNhYjFiZGU1NzgwMjY1ZDY3MzU5MjUyNjk5NzM0MTFiMTFkLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9UaGly
ZFBhcnR5L3dvZmYyL3NyYy93b2ZmMl9lbmMuaAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAg
QEAKLS8vIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0v
LwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhl
ICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21w
bGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhl
IExpY2Vuc2UgYXQKLS8vCi0vLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5T
RS0yLjAKLS8vCi0vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVk
IHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0vLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5z
ZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotLy8gV0lUSE9VVCBXQVJSQU5U
SUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQu
Ci0vLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcg
cGVybWlzc2lvbnMgYW5kCi0vLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS8vCi0v
LyBMaWJyYXJ5IGZvciBjb252ZXJ0aW5nIFdPRkYyIGZvcm1hdCBmb250IGZpbGVzIHRvIHRoZWly
IFRURiB2ZXJzaW9ucy4KLQotI2lmbmRlZiBXT0ZGMl9XT0ZGMl9FTkNfSF8KLSNkZWZpbmUgV09G
RjJfV09GRjJfRU5DX0hfCi0KLSNpbmNsdWRlIDxzdGRkZWYuaD4KLSNpbmNsdWRlIDxpbnR0eXBl
cy5oPgotI2luY2x1ZGUgPHN0cmluZz4KLQotdXNpbmcgc3RkOjpzdHJpbmc7Ci0KLQotbmFtZXNw
YWNlIHdvZmYyIHsKLQotc3RydWN0IFdPRkYyUGFyYW1zIHsKLSAgV09GRjJQYXJhbXMoKSA6IGV4
dGVuZGVkX21ldGFkYXRhKCIiKSwgYnJvdGxpX3F1YWxpdHkoMTEpLAotICAgICAgICAgICAgICAg
ICAgYWxsb3dfdHJhbnNmb3Jtcyh0cnVlKSB7fQotCi0gIHN0cmluZyBleHRlbmRlZF9tZXRhZGF0
YTsKLSAgaW50IGJyb3RsaV9xdWFsaXR5OwotICBib29sIGFsbG93X3RyYW5zZm9ybXM7Ci19Owot
Ci0vLyBSZXR1cm5zIGFuIHVwcGVyIGJvdW5kIG9uIHRoZSBzaXplIG9mIHRoZSBjb21wcmVzc2Vk
IGZpbGUuCi1zaXplX3QgTWF4V09GRjJDb21wcmVzc2VkU2l6ZShjb25zdCB1aW50OF90KiBkYXRh
LCBzaXplX3QgbGVuZ3RoKTsKLXNpemVfdCBNYXhXT0ZGMkNvbXByZXNzZWRTaXplKGNvbnN0IHVp
bnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBjb25zdCBzdHJpbmcmIGV4dGVuZGVkX21ldGFkYXRhKTsKLQotLy8gQ29tcHJlc3NlcyB0aGUg
Zm9udCBpbnRvIHRoZSB0YXJnZXQgYnVmZmVyLiAqcmVzdWx0X2xlbmd0aCBzaG91bGQgYmUgYXQg
bGVhc3QKLS8vIHRoZSB2YWx1ZSByZXR1cm5lZCBieSBNYXhXT0ZGMkNvbXByZXNzZWRTaXplKCks
IHVwb24gcmV0dXJuLCBpdCBpcyBzZXQgdG8gdGhlCi0vLyBhY3R1YWwgY29tcHJlc3NlZCBzaXpl
LiBSZXR1cm5zIHRydWUgb24gc3VjY2Vzc2Z1bCBjb21wcmVzc2lvbi4KLWJvb2wgQ29udmVydFRU
RlRvV09GRjIoY29uc3QgdWludDhfdCAqZGF0YSwgc2l6ZV90IGxlbmd0aCwKLSAgICAgICAgICAg
ICAgICAgICAgICAgdWludDhfdCAqcmVzdWx0LCBzaXplX3QgKnJlc3VsdF9sZW5ndGgpOwotYm9v
bCBDb252ZXJ0VFRGVG9XT0ZGMihjb25zdCB1aW50OF90ICpkYXRhLCBzaXplX3QgbGVuZ3RoLAot
ICAgICAgICAgICAgICAgICAgICAgICB1aW50OF90ICpyZXN1bHQsIHNpemVfdCAqcmVzdWx0X2xl
bmd0aCwKLSAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgV09GRjJQYXJhbXMmIHBhcmFtcyk7
Ci0KLX0gLy8gbmFtZXNwYWNlIHdvZmYyCi0KLSNlbmRpZiAgLy8gV09GRjJfV09GRjJfRU5DX0hf
CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvd29mZjJfaW5mby5jYyBi
L1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy93b2ZmMl9pbmZvLmNjCmluZGV4IDVkZmY4NzFi
ODE2Y2QyOWE4NGFlNGQ1MDg4YmM4YWE3ZjU2NTdmZjMuLjJiNTFhZGNiNjIyMTQ1ZTZmZGMyZGFh
YjMyMDM4ZjhhYmE1MmNkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3Ny
Yy93b2ZmMl9pbmZvLmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy93b2ZmMl9p
bmZvLmNjCkBAIC0xLDE4ICsxLDEwIEBACi0vLyBDb3B5cmlnaHQgMjAxNCBHb29nbGUgSW5jLiBB
bGwgUmlnaHRzIFJlc2VydmVkLgotLy8KLS8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGlj
ZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotLy8geW91IG1heSBub3QgdXNlIHRo
aXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotLy8gWW91IG1h
eSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0vLwotLy8gaHR0cDovL3d3dy5hcGFj
aGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0vLwotLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFw
cGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotLy8gZGlzdHJp
YnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJ
UywKLS8vIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRo
ZXIgZXhwcmVzcyBvciBpbXBsaWVkLgotLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lm
aWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotLy8gbGltaXRhdGlvbnMgdW5k
ZXIgdGhlIExpY2Vuc2UuCi0vLwotLy8gQSBjb21tYW5kbGluZSB0b29sIGZvciBkdW1waW5nIGlu
Zm8gYWJvdXQgYSB3b2ZmMiBmaWxlLgorLyogQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxs
IFJpZ2h0cyBSZXNlcnZlZC4KKworICAgRGlzdHJpYnV0ZWQgdW5kZXIgTUlUIGxpY2Vuc2UuCisg
ICBTZWUgZmlsZSBMSUNFTlNFIGZvciBkZXRhaWwgb3IgY29weSBhdCBodHRwczovL29wZW5zb3Vy
Y2Uub3JnL2xpY2Vuc2VzL01JVAorKi8KKworLyogQSBjb21tYW5kbGluZSB0b29sIGZvciBkdW1w
aW5nIGluZm8gYWJvdXQgYSB3b2ZmMiBmaWxlLiAqLwogCiAjaW5jbHVkZSA8c3RyaW5nPgogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvd29mZjJfb3V0LmNjIGIvU291
cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3dvZmYyX291dC5jYwppbmRleCA4ODgyMzA2NDQ1Yjcx
YjI1NmVlZDgyNDg4ZWU2YThjODU0OTllNDVkLi44YWIzMjY4MWYxZDI3NWU2N2M2MjQ0MjBkNWM5
MDAwN2I5NzcxOThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9zcmMvd29m
ZjJfb3V0LmNjCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3NyYy93b2ZmMl9vdXQuY2MK
QEAgLTEsMjAgKzEsMTQgQEAKLS8vIENvcHlyaWdodCAyMDE0IEdvb2dsZSBJbmMuIEFsbCBSaWdo
dHMgUmVzZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBW
ZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxl
IGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuCi0vLyBZb3UgbWF5IG9idGFp
biBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyBodHRwOi8vd3d3LmFwYWNoZS5vcmcv
bGljZW5zZXMvTElDRU5TRS0yLjAKLS8vCi0vLyBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJs
ZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlCi0vLyBkaXN0cmlidXRlZCB1
bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAiQVMgSVMiIEJBU0lTLAotLy8g
V0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHBy
ZXNzIG9yIGltcGxpZWQuCi0vLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5n
dWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0vLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUg
TGljZW5zZS4KLS8vCi0vLyBPdXRwdXQgYnVmZmVyIGZvciBXT0ZGMiBkZWNvbXByZXNzaW9uLgor
LyogQ29weXJpZ2h0IDIwMTQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KIAotI2lu
Y2x1ZGUgIi4vd29mZjJfb3V0LmgiCisgICBEaXN0cmlidXRlZCB1bmRlciBNSVQgbGljZW5zZS4K
KyAgIFNlZSBmaWxlIExJQ0VOU0UgZm9yIGRldGFpbCBvciBjb3B5IGF0IGh0dHBzOi8vb3BlbnNv
dXJjZS5vcmcvbGljZW5zZXMvTUlUCisqLworCisvKiBPdXRwdXQgYnVmZmVyIGZvciBXT0ZGMiBk
ZWNvbXByZXNzaW9uLiAqLworCisjaW5jbHVkZSA8d29mZjIvb3V0cHV0Lmg+CisKK3VzaW5nIHN0
ZDo6c3RyaW5nOwogCiBuYW1lc3BhY2Ugd29mZjIgewogCmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhp
cmRQYXJ0eS93b2ZmMi9zcmMvd29mZjJfb3V0LmggYi9Tb3VyY2UvVGhpcmRQYXJ0eS93b2ZmMi9z
cmMvd29mZjJfb3V0LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGM5NTZhZmEwZTJh
MjYwMzNmOGM1YjhmZWRjZjI3ZmE1ZjU0MmY0MGEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1RoaXJkUGFydHkvd29mZjIvc3JjL3dvZmYyX291
dC5oCisrKyAvZGV2L251bGwKQEAgLTEsMTE0ICswLDAgQEAKLS8vIENvcHlyaWdodCAyMDE2IEdv
b2dsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0vLwotLy8gTGljZW5zZWQgdW5kZXIgdGhl
IEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlICJMaWNlbnNlIik7Ci0vLyB5b3UgbWF5
IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2Uu
Ci0vLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXQKLS8vCi0vLyBodHRw
Oi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAKLS8vCi0vLyBVbmxlc3MgcmVx
dWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJl
Ci0vLyBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAi
QVMgSVMiIEJBU0lTLAotLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5Z
IEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuCi0vLyBTZWUgdGhlIExpY2Vuc2UgZm9y
IHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kCi0vLyBsaW1p
dGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS4KLS8vCi0vLyBPdXRwdXQgYnVmZmVyIGZvciBXT0ZG
MiBkZWNvbXByZXNzaW9uLgotCi0vLyBDb3B5cmlnaHQgMjAxNiBHb29nbGUgSW5jLiBBbGwgUmln
aHRzIFJlc2VydmVkLgotLy8KLS8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwg
VmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOwotLy8geW91IG1heSBub3QgdXNlIHRoaXMgZmls
ZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLgotLy8gWW91IG1heSBvYnRh
aW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0Ci0vLwotLy8gaHR0cDovL3d3dy5hcGFjaGUub3Jn
L2xpY2Vuc2VzL0xJQ0VOU0UtMi4wCi0vLwotLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2Fi
bGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZQotLy8gZGlzdHJpYnV0ZWQg
dW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gIkFTIElTIiBCQVNJUywKLS8v
IFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhw
cmVzcyBvciBpbXBsaWVkLgotLy8gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFu
Z3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZAotLy8gbGltaXRhdGlvbnMgdW5kZXIgdGhl
IExpY2Vuc2UuCi0vLwotLy8gT3V0cHV0IGJ1ZmZlciBmb3IgV09GRjIgZGVjb21wcmVzc2lvbi4K
LQotI2lmbmRlZiBXT0ZGMl9XT0ZGMl9PVVRfSF8KLSNkZWZpbmUgV09GRjJfV09GRjJfT1VUX0hf
Ci0KLSNpbmNsdWRlIDxhbGdvcml0aG0+Ci0jaW5jbHVkZSA8Y3N0cmluZz4KLSNpbmNsdWRlIDxt
ZW1vcnk+Ci0jaW5jbHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgIi4vcG9ydC5oIgotCi1uYW1lc3Bh
Y2Ugd29mZjIgewotCi0vLyBTdWdnZXN0ZWQgbWF4IHNpemUgZm9yIG91dHB1dC4KLWNvbnN0IHNp
emVfdCBrRGVmYXVsdE1heFNpemUgPSAzMCAqIDEwMjQgKiAxMDI0OwotCi11c2luZyBzdGQ6OnN0
cmluZzsKLQotCi0vKioKLSAqIE91dHB1dCBpbnRlcmZhY2UgZm9yIHRoZSB3b2ZmMiBkZWNvZGlu
Zy4KLSAqCi0gKiBXcml0ZXMgdG8gYXJiaXRyYXJ5IG9mZnNldHMgYXJlIHN1cHBvcnRlZCB0byBm
YWNpbGl0YXRlIHVwZGF0aW5nIG9mZnNldAotICogdGFibGUgYW5kIGNoZWNrc3VtcyBhZnRlciB0
YWJsZXMgYXJlIHJlYWR5LiBSZWFkaW5nIHRoZSBjdXJyZW50IHNpemUgaXMKLSAqIHN1cHBvcnRl
ZCBzbyBhICdsb2NhJyB0YWJsZSBjYW4gYmUgYnVpbHQgdXAgd2hpbGUgd3JpdGluZyBnbHlwaHMu
Ci0gKgotICogQnkgZGVmYXVsdCBsaW1pdHMgc2l6ZSB0byBrRGVmYXVsdE1heFNpemUuCi0gKi8K
LWNsYXNzIFdPRkYyT3V0IHsKLSBwdWJsaWM6Ci0gIHZpcnR1YWwgfldPRkYyT3V0KHZvaWQpIHt9
Ci0KLSAgLy8gQXBwZW5kIG4gYnl0ZXMgb2YgZGF0YSBmcm9tIGJ1Zi4KLSAgLy8gUmV0dXJuIHRy
dWUgaWYgYWxsIHdyaXR0ZW4sIGZhbHNlIG90aGVyd2lzZS4KLSAgdmlydHVhbCBib29sIFdyaXRl
KGNvbnN0IHZvaWQgKmJ1Ziwgc2l6ZV90IG4pID0gMDsKLQotICAvLyBXcml0ZSBuIGJ5dGVzIG9m
IGRhdGEgZnJvbSBidWYgYXQgb2Zmc2V0LgotICAvLyBSZXR1cm4gdHJ1ZSBpZiBhbGwgd3JpdHRl
biwgZmFsc2Ugb3RoZXJ3aXNlLgotICB2aXJ0dWFsIGJvb2wgV3JpdGUoY29uc3Qgdm9pZCAqYnVm
LCBzaXplX3Qgb2Zmc2V0LCBzaXplX3QgbikgPSAwOwotCi0gIHZpcnR1YWwgc2l6ZV90IFNpemUo
KSA9IDA7Ci19OwotCi0vKioKLSAqIEV4cGFuZGluZyBtZW1vcnkgYmxvY2sgZm9yIHdvZmYyIG91
dC4gQnkgZGVmYXVsdCBsaW1pdGVkIHRvIGtEZWZhdWx0TWF4U2l6ZS4KLSAqLwotY2xhc3MgV09G
RjJTdHJpbmdPdXQgOiBwdWJsaWMgV09GRjJPdXQgewotIHB1YmxpYzoKLSAgLy8gQ3JlYXRlIGEg
d3JpdGVyIHRoYXQgd3JpdGVzIGl0cyBkYXRhIHRvIGJ1Zi4KLSAgLy8gYnVmLT5zaXplKCkgd2ls
bCBncm93IHRvIGF0IG1vc3QgbWF4X3NpemUKLSAgLy8gYnVmIG1heSBiZSBzaXplZCAoZS5nLiB1
c2luZyBFc3RpbWF0ZVdPRkYyRmluYWxTaXplKSBvciBlbXB0eS4KLSAgZXhwbGljaXQgV09GRjJT
dHJpbmdPdXQoc3RyaW5nKiBidWYpOwotCi0gIGJvb2wgV3JpdGUoY29uc3Qgdm9pZCAqYnVmLCBz
aXplX3Qgbikgb3ZlcnJpZGU7Ci0gIGJvb2wgV3JpdGUoY29uc3Qgdm9pZCAqYnVmLCBzaXplX3Qg
b2Zmc2V0LCBzaXplX3Qgbikgb3ZlcnJpZGU7Ci0gIHNpemVfdCBTaXplKCkgb3ZlcnJpZGUgeyBy
ZXR1cm4gb2Zmc2V0XzsgfQotICBzaXplX3QgTWF4U2l6ZSgpIHsgcmV0dXJuIG1heF9zaXplXzsg
fQotICB2b2lkIFNldE1heFNpemUoc2l6ZV90IG1heF9zaXplKTsKLSBwcml2YXRlOgotICBzdHJp
bmcqIGJ1Zl87Ci0gIHNpemVfdCBtYXhfc2l6ZV87Ci0gIHNpemVfdCBvZmZzZXRfOwotfTsKLQot
LyoqCi0gKiBGaXhlZCBtZW1vcnkgYmxvY2sgZm9yIHdvZmYyIG91dC4KLSAqLwotY2xhc3MgV09G
RjJNZW1vcnlPdXQgOiBwdWJsaWMgV09GRjJPdXQgewotIHB1YmxpYzoKLSAgLy8gQ3JlYXRlIGEg
d3JpdGVyIHRoYXQgd3JpdGVzIGl0cyBkYXRhIHRvIGJ1Zi4KLSAgV09GRjJNZW1vcnlPdXQodWlu
dDhfdCogYnVmLCBzaXplX3QgYnVmX3NpemUpOwotCi0gIGJvb2wgV3JpdGUoY29uc3Qgdm9pZCAq
YnVmLCBzaXplX3Qgbikgb3ZlcnJpZGU7Ci0gIGJvb2wgV3JpdGUoY29uc3Qgdm9pZCAqYnVmLCBz
aXplX3Qgb2Zmc2V0LCBzaXplX3Qgbikgb3ZlcnJpZGU7Ci0gIHNpemVfdCBTaXplKCkgb3ZlcnJp
ZGUgeyByZXR1cm4gb2Zmc2V0XzsgfQotIHByaXZhdGU6Ci0gIHVpbnQ4X3QqIGJ1Zl87Ci0gIHNp
emVfdCBidWZfc2l6ZV87Ci0gIHNpemVfdCBvZmZzZXRfOwotfTsKLQotfSAvLyBuYW1lc3BhY2Ug
d29mZjIKLQotI2VuZGlmICAvLyBXT0ZGMl9XT0ZGMl9PVVRfSF8KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9UaGlyZFBhcnR5L3dvZmYyL3VwZGF0ZS5zaCBiL1NvdXJjZS9UaGlyZFBhcnR5L3dvZmYyL3Vw
ZGF0ZS5zaAppbmRleCBjNjdjYjQzZjFjNjYzNDAwNzM5NGRhNjNiMTQ4MTUxZGY0ZGUyYWViLi43
ZTE1ZjU2NGZmMWY0ZGM4NzdiZDU4ZjNkYmY0YmE2M2NkZmM0MmUyIDEwMDc1NQotLS0gYS9Tb3Vy
Y2UvVGhpcmRQYXJ0eS93b2ZmMi91cGRhdGUuc2gKKysrIGIvU291cmNlL1RoaXJkUGFydHkvd29m
ZjIvdXBkYXRlLnNoCkBAIC0xMCw4ICsxMCw5IEBAIGdpdCBjbG9uZSBodHRwczovL2dpdGh1Yi5j
b20vZ29vZ2xlL3dvZmYyICR7TVlfVEVNUF9ESVJ9L3dvZmYyCiBDT01NSVQ9YChjZCAke01ZX1RF
TVBfRElSfS93b2ZmMiAmJiBnaXQgbG9nIHwgaGVhZCAtbiAxKWAKIHBlcmwgLXAgLWkgLWUgInMv
XFtjb21taXQgWzAtOWEtZl17NDB9XF0vWyR7Q09NTUlUfV0vIiBSRUFETUUud2Via2l0OwogCi1y
bSAtcmYgc3JjCitybSAtcmYgc3JjIGluY2x1ZGUKIG12ICR7TVlfVEVNUF9ESVJ9L3dvZmYyL3Ny
YyBzcmMKK212ICR7TVlfVEVNUF9ESVJ9L3dvZmYyL2luY2x1ZGUgaW5jbHVkZQogcm0gLXJmICR7
TVlfVEVNUF9ESVJ9CiAKIGVjaG8gIiMjIyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggMzc4NDcy
ODdjMTgzNTAxMDI2NTQ2ZmNjYjMwNzNjYjk0MmRmNWMzMy4uNjgzMDdiYmY0ZjZlYTUzYWU2ZjRh
ZWFjYTZhYTY3NThmZjg5OWFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTM2NTMsNyArMzY1
Myw3IEBAIGlmIChFTkFCTEVfVVNFUl9NRVNTQUdFX0hBTkRMRVJTKQogZW5kaWYgKCkKIAogaWYg
KFVTRV9XT0ZGMikKLSAgbGlzdChBUFBFTkQgV2ViQ29yZV9JTkNMVURFX0RJUkVDVE9SSUVTICIk
e1RISVJEUEFSVFlfRElSfS93b2ZmMi9zcmMiKQorICBsaXN0KEFQUEVORCBXZWJDb3JlX0lOQ0xV
REVfRElSRUNUT1JJRVMgIiR7VEhJUkRQQVJUWV9ESVJ9L3dvZmYyL2luY2x1ZGUiKQogICBsaXN0
KEFQUEVORCBXZWJDb3JlX0xJQlJBUklFUyB3b2ZmMikKIGVuZGlmICgpCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dPRkZGaWxlRm9ybWF0LmNwcAppbmRleCAx
YjQwNzA4ZGJkMGMyZjIzYWM5YTE1OTZlNjRiM2JjOGZjYTNlN2QxLi5mYzZiM2MyNzBiODMyMDU2
NjQzZmVhNWRhODdkMzBkOGIzMzUxYTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9XT0ZGRmlsZUZvcm1hdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvV09GRkZpbGVGb3JtYXQuY3BwCkBAIC0zMSw4ICszMSw4IEBACiAjaW5j
bHVkZSA8d3RmL0J5dGVPcmRlci5oPgogCiAjaWYgVVNFKFdPRkYyKQotI2luY2x1ZGUgIndvZmYy
X2NvbW1vbi5oIgotI2luY2x1ZGUgIndvZmYyX2RlYy5oIgorI2luY2x1ZGUgPHdvZmYyL2RlY29k
ZS5oPgorc3RhdGljIGNvbnN0IHVpbnQzMl90IGtXb2ZmMlNpZ25hdHVyZSA9IDB4Nzc0ZjQ2MzI7
IC8vICJ3T0YyIgogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTg0LDcgKzg0LDcg
QEAgYm9vbCBpc1dPRkYoU2hhcmVkQnVmZmVyJiBidWZmZXIpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogI2lmIFVTRShXT0ZGMikKLSAgICByZXR1cm4gc2lnbmF0dXJlID09IHdvZmZTaWduYXR1
cmUgfHwgc2lnbmF0dXJlID09IHdvZmYyOjprV29mZjJTaWduYXR1cmU7CisgICAgcmV0dXJuIHNp
Z25hdHVyZSA9PSB3b2ZmU2lnbmF0dXJlIHx8IHNpZ25hdHVyZSA9PSBrV29mZjJTaWduYXR1cmU7
CiAjZWxzZQogICAgIHJldHVybiBzaWduYXR1cmUgPT0gd29mZlNpZ25hdHVyZTsKICNlbmRpZgpA
QCAtMTQwLDcgKzE0MCw3IEBAIGJvb2wgY29udmVydFdPRkZUb1NmbnQoU2hhcmVkQnVmZmVyJiB3
b2ZmLCBWZWN0b3I8Y2hhcj4mIHNmbnQpCiAgICAgfQogCiAjaWYgVVNFKFdPRkYyKQotICAgIGlm
IChzaWduYXR1cmUgPT0gd29mZjI6OmtXb2ZmMlNpZ25hdHVyZSkgeworICAgIGlmIChzaWduYXR1
cmUgPT0ga1dvZmYyU2lnbmF0dXJlKSB7CiAgICAgICAgIGNvbnN0IHVpbnQ4X3QqIHdvZmZEYXRh
ID0gcmVpbnRlcnByZXRfY2FzdF9wdHI8Y29uc3QgdWludDhfdCo+KHdvZmYuZGF0YSgpKTsKICAg
ICAgICAgY29uc3Qgc2l6ZV90IHdvZmZTaXplID0gd29mZi5zaXplKCk7CiAgICAgICAgIGNvbnN0
IHNpemVfdCBzZm50U2l6ZSA9IHdvZmYyOjpDb21wdXRlV09GRjJGaW5hbFNpemUod29mZkRhdGEs
IHdvZmZTaXplKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>