<?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>75801</bug_id>
          
          <creation_ts>2012-01-08 10:43:19 -0800</creation_ts>
          <short_desc>Remove V8-specific Java Bridge code</short_desc>
          <delta_ts>2012-01-08 13:03:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>66688</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Steve Block">steveblock</reporter>
          <assigned_to name="Steve Block">steveblock</assigned_to>
          <cc>abarth</cc>
    
    <cc>steveblock</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>531775</commentid>
    <comment_count>0</comment_count>
    <who name="Steve Block">steveblock</who>
    <bug_when>2012-01-08 10:43:19 -0800</bug_when>
    <thetext>This code was added for the Android port, which has since been removed in Bug 66688, and is not used by any other ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531777</commentid>
    <comment_count>1</comment_count>
      <attachid>121582</attachid>
    <who name="Steve Block">steveblock</who>
    <bug_when>2012-01-08 10:55:01 -0800</bug_when>
    <thetext>Created attachment 121582
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531797</commentid>
    <comment_count>2</comment_count>
      <attachid>121582</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-08 13:03:17 -0800</bug_when>
    <thetext>Comment on attachment 121582
Patch

Clearing flags on attachment: 121582

Committed r104406: &lt;http://trac.webkit.org/changeset/104406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531798</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-08 13:03:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121582</attachid>
            <date>2012-01-08 10:55:01 -0800</date>
            <delta_ts>2012-01-08 13:03:17 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-75801-20120108185459.patch</filename>
            <type>text/plain</type>
            <size>38937</size>
            <attacher name="Steve Block">steveblock</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0NDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYxN2Y2NzljYjE3NmEz
ZjE3ODM5MGNkNDA5ODg1ZDQwYTQxM2FjYy4uNGMzYjViY2IzZDQwMjI4NTAwODllODAzY2QxZWJl
NGE2MTNjZWQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTAxLTA4ICBTdGV2
ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZW1vdmUgVjgtc3Bl
Y2lmaWMgSmF2YSBCcmlkZ2UgY29kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NzU4MDEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBBbHNvIHJlbW92ZSBzdXBlcmZsdW91cyBKU0MgYW5kIFY4IGd1YXJkcywg
YXMgdGhlIGNvZGUgaXMgbm93IHVzZWQgb25seQorICAgICAgICB3aXRoIEpTQy4KKworICAgICAg
ICBObyBuZXcgdGVzdHMsIHJlbW92aW5nIGRlYWQgY29kZSBvbmx5LgorCisgICAgICAgICogV2Vi
Q29yZS5neXBpOgorICAgICAgICAqIGJyaWRnZS9qbmkvSk5JVXRpbGl0eS5jcHA6CisgICAgICAg
IChKU0M6OkJpbmRpbmdzOjpqYXZhVHlwZUZyb21DbGFzc05hbWUpOgorICAgICAgICAoSlNDOjpC
aW5kaW5nczo6c2lnbmF0dXJlRnJvbUphdmFUeXBlKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6
OmdldEpOSUZpZWxkKToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OmNhbGxKTklNZXRob2QpOgor
ICAgICAgICAqIGJyaWRnZS9qbmkvSmF2YVR5cGUuaDoKKyAgICAgICAgKiBicmlkZ2Uvam5pL2pz
Yy9KYXZhTWV0aG9kSlNDLmNwcDoKKyAgICAgICAgKGFwcGVuZENsYXNzTmFtZSk6CisgICAgICAg
IChKYXZhTWV0aG9kOjpzaWduYXR1cmUpOgorICAgICAgICAqIGJyaWRnZS9qbmkvdjgvSk5JVXRp
bGl0eVByaXZhdGUuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJyaWRnZS9qbmkvdjgvSk5JVXRp
bGl0eVByaXZhdGUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBicmlkZ2Uvam5pL3Y4L0phdmFDbGFz
c1Y4Lmg6IFJlbW92ZWQuCisgICAgICAgICogYnJpZGdlL2puaS92OC9KYXZhRmllbGRWOC5oOiBS
ZW1vdmVkLgorICAgICAgICAqIGJyaWRnZS9qbmkvdjgvSmF2YUluc3RhbmNlVjguaDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBicmlkZ2Uvam5pL3Y4L0phdmFNZXRob2RWOC5oOiBSZW1vdmVkLgorICAg
ICAgICAqIGJyaWRnZS9qbmkvdjgvSmF2YU5QT2JqZWN0VjguY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIGJyaWRnZS9qbmkvdjgvSmF2YU5QT2JqZWN0VjguaDogUmVtb3ZlZC4KKyAgICAgICAgKiBi
cmlkZ2Uvam5pL3Y4L0phdmFWYWx1ZVY4Lmg6IFJlbW92ZWQuCisgICAgICAgICogYnJpZGdlL2pz
Yy9CcmlkZ2VKU0MuaDoKKwogMjAxMi0wMS0wOCAgTm8nYW0gUm9zZW50aGFsICA8bm9hbS5yb3Nl
bnRoYWxAbm9raWEuY29tPgogCiAgICAgICAgIFtRdF0gRW5hYmxlIENTU19GSUxURVJTIGluIFF0
IGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggMTRkYWQwMzk3OTlhN2JjZjFiZmEzYzE2ZTEzOTE3
YTVjMWJjYzgwNC4uM2FjOTlhY2RiOGFhZGE4NGFiNTBkYWYyZDFjNWMzZjU3MzFjZGM5NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQpAQCAtMjMyNiwxNSArMjMyNiw2IEBACiAgICAgICAgICAgICAnYnJpZGdl
L2puaS9qc2MvSmF2YVJ1bnRpbWVPYmplY3QuY3BwJywKICAgICAgICAgICAgICdicmlkZ2Uvam5p
L2pzYy9KYXZhUnVudGltZU9iamVjdC5oJywKICAgICAgICAgICAgICdicmlkZ2Uvam5pL2pzYy9K
YXZhU3RyaW5nSlNDLmgnLAotICAgICAgICAgICAgJ2JyaWRnZS9qbmkvdjgvSk5JVXRpbGl0eVBy
aXZhdGUuY3BwJywKLSAgICAgICAgICAgICdicmlkZ2Uvam5pL3Y4L0pOSVV0aWxpdHlQcml2YXRl
LmgnLAotICAgICAgICAgICAgJ2JyaWRnZS9qbmkvdjgvSmF2YUNsYXNzVjguaCcsCi0gICAgICAg
ICAgICAnYnJpZGdlL2puaS92OC9KYXZhRmllbGRWOC5oJywKLSAgICAgICAgICAgICdicmlkZ2Uv
am5pL3Y4L0phdmFJbnN0YW5jZVY4LmgnLAotICAgICAgICAgICAgJ2JyaWRnZS9qbmkvdjgvSmF2
YU1ldGhvZFY4LmgnLAotICAgICAgICAgICAgJ2JyaWRnZS9qbmkvdjgvSmF2YU5QT2JqZWN0Vjgu
Y3BwJywKLSAgICAgICAgICAgICdicmlkZ2Uvam5pL3Y4L0phdmFOUE9iamVjdFY4LmgnLAotICAg
ICAgICAgICAgJ2JyaWRnZS9qbmkvdjgvSmF2YVZhbHVlVjguaCcsCiAgICAgICAgICAgICAnYnJp
ZGdlL2pzYy9CcmlkZ2VKU0MuY3BwJywKICAgICAgICAgICAgICdicmlkZ2UvbnBydW50aW1lLmNw
cCcsCiAgICAgICAgICAgICAnYnJpZGdlL25wcnVudGltZV9wcml2LmgnLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KTklVdGlsaXR5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qbmkvSk5JVXRpbGl0eS5jcHAKaW5kZXggZDNjNmM4NTdjMDdmYzk1ZWEzYzMzYzhi
YjE0ODdjNjZkZTY1MDhjNC4uNjlkNTc4MTBlNDQ3MmIzMDdjMzQ2ZWNkNDYwYWE5YzcyYzI2NDNk
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KTklVdGlsaXR5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0pOSVV0aWxpdHkuY3BwCkBAIC0xODcsMTAg
KzE4Nyw2IEBAIEphdmFUeXBlIGphdmFUeXBlRnJvbUNsYXNzTmFtZShjb25zdCBjaGFyKiBuYW1l
KQogICAgICAgICB0eXBlID0gSmF2YVR5cGVWb2lkOwogICAgIGVsc2UgaWYgKCdbJyA9PSBuYW1l
WzBdKQogICAgICAgICB0eXBlID0gSmF2YVR5cGVBcnJheTsKLSNpZiBVU0UoVjgpCi0gICAgZWxz
ZSBpZiAoIXN0cmNtcCgiamF2YS5sYW5nLlN0cmluZyIsIG5hbWUpKQotICAgICAgICB0eXBlID0g
SmF2YVR5cGVTdHJpbmc7Ci0jZW5kaWYKICAgICBlbHNlCiAgICAgICAgIHR5cGUgPSBKYXZhVHlw
ZU9iamVjdDsKIApAQCAtMjA3LDkgKzIwMyw2IEBAIGNvbnN0IGNoYXIqIHNpZ25hdHVyZUZyb21K
YXZhVHlwZShKYXZhVHlwZSB0eXBlKQogICAgICAgICByZXR1cm4gIlsiOwogCiAgICAgY2FzZSBK
YXZhVHlwZU9iamVjdDoKLSNpZiBVU0UoVjgpCi0gICAgY2FzZSBKYXZhVHlwZVN0cmluZzoKLSNl
bmRpZgogICAgICAgICByZXR1cm4gIkwiOwogCiAgICAgY2FzZSBKYXZhVHlwZUJvb2xlYW46CkBA
IC0zMDAsOSArMjkzLDYgQEAganZhbHVlIGdldEpOSUZpZWxkKGpvYmplY3Qgb2JqLCBKYXZhVHlw
ZSB0eXBlLCBjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBjaGFyKiBzaWcKICAgICAgICAgICAgICAg
ICBzd2l0Y2ggKHR5cGUpIHsKICAgICAgICAgICAgICAgICBjYXNlIEphdmFUeXBlQXJyYXk6CiAg
ICAgICAgICAgICAgICAgY2FzZSBKYXZhVHlwZU9iamVjdDoKLSNpZiBVU0UoVjgpCi0gICAgICAg
ICAgICAgICAgY2FzZSBKYXZhVHlwZVN0cmluZzoKLSNlbmRpZgogICAgICAgICAgICAgICAgICAg
ICByZXN1bHQubCA9IGVudi0+ZnVuY3Rpb25zLT5HZXRPYmplY3RGaWVsZChlbnYsIG9iaiwgZmll
bGQpOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBjYXNlIEph
dmFUeXBlQm9vbGVhbjoKQEAgLTM1Niw5ICszNDYsNiBAQCBqdmFsdWUgY2FsbEpOSU1ldGhvZChq
b2JqZWN0IG9iamVjdCwgSmF2YVR5cGUgcmV0dXJuVHlwZSwgY29uc3QgY2hhciogbmFtZSwgY29u
cwogICAgICAgICBjYWxsSk5JTWV0aG9kSURBPHZvaWQ+KG9iamVjdCwgbWV0aG9kSWQsIGFyZ3Mp
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIEphdmFUeXBlT2JqZWN0OgotI2lmIFVTRShWOCkK
LSAgICBjYXNlIEphdmFUeXBlU3RyaW5nOgotI2VuZGlmCiAgICAgICAgIHJlc3VsdC5sID0gY2Fs
bEpOSU1ldGhvZElEQTxqb2JqZWN0PihvYmplY3QsIG1ldGhvZElkLCBhcmdzKTsKICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBKYXZhVHlwZUJvb2xlYW46CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvam5pL0phdmFUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL0ph
dmFUeXBlLmgKaW5kZXggMTcwNTNmYjEyN2VmNTY4MjdjMzE1NDY3YmNiZDA0YWI1MmJhODc1Ni4u
ZTgwZmZlYzExNWZjNjFhMDM5YjFjMGVkYjQ2M2UyYjY3ZTk0OGM3YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9KYXZhVHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jy
aWRnZS9qbmkvSmF2YVR5cGUuaApAQCAtNTMsMjAgKzUzLDYgQEAgZW51bSBKYXZhVHlwZSB7CiAg
ICAgSmF2YVR5cGVGbG9hdCwKICAgICBKYXZhVHlwZURvdWJsZSwKICAgICBKYXZhVHlwZUFycmF5
LAotI2lmIFVTRShWOCkKLSAgICAvLyBKYXZhVHlwZVN0cmluZyBpcyBkaXN0aW5jdCBmcm9tIEph
dmFUeXBlT2JqZWN0IGJlY2F1c2Ugc3RyaW5ncyByZWNlaXZlCi0gICAgLy8gc3BlY2lhbCBoYW5k
bGluZyB3aGVuIHdlIGNvbnZlcnQgdG8gYW5kIGZyb20gSmF2YVNjcmlwdC4gV2hlbiBjYWxsaW5n
Ci0gICAgLy8gSmF2YSBtZXRob2RzLCB3ZSBtdXN0IGNyZWF0ZSBKYXZhIFN0cmluZyBvYmplY3Rz
IGZvciBzdHJpbmcgYXJndW1lbnRzLgotICAgIC8vIEhvd2V2ZXIsIGF0IGNvbnZlcnNpb24gdGlt
ZSB3ZSBjYW5ub3QgYXNzdW1lIHRoYXQgdGhlIG1lY2hhbmlzbSB1c2VkIHRvCi0gICAgLy8gaW50
ZXJhY3Qgd2l0aCBKYXZhIGlzIEpOSS4gSW5zdGVhZCB3ZSB1c2UgYSBzcGVjaWFsIEphdmFUeXBl
U3RyaW5nLgotICAgIC8vIEltcGxlbWVudGF0aW9ucyBvZiBKYXZhSW5zdGFuY2Ugd2hpY2ggdXNl
IEpOSSB3aWxsIGNyZWF0ZSBhIEphdmEgU3RyaW5nCi0gICAgLy8gb2JqZWN0IHdoZW4gY29udmVy
dGluZyB0aGUgSmF2YVZhbHVlIHRvIGEganZhbHVlLgotICAgIC8vCi0gICAgLy8gTm90ZSB0aGF0
IHRoaXMgdHlwZSBpcyBpbmRlcGVuZGVudCBvZiB0aGUgSmF2YVNjcmlwdCBlbmdpbmUsIGJ1dCBp
cwotICAgIC8vIGN1cnJlbnRseSB1c2VkIG9ubHkgd2l0aCBWOC4KLSAgICAvLyBTZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU3MDIzLgotICAgIEphdmFUeXBlU3Ry
aW5nLAotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBCaW5kaW5ncwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS9qc2MvSmF2YU1ldGhvZEpTQy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9KYXZhTWV0aG9kSlNDLmNwcAppbmRleCAzY2IzODg5MDM2
M2I1ODMyMTY3ZmNlZDQ0Mjg1YTExNjkxMWEwMzM3Li41ZTE4ZWE4YmExNzM3ZjBkM2ZmMGFiOTlh
ZTBlMDBkOGVmMDc1ODJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pz
Yy9KYXZhTWV0aG9kSlNDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL2pzYy9K
YXZhTWV0aG9kSlNDLmNwcApAQCAtOTIsOSArOTIsNyBAQCBKYXZhTWV0aG9kOjp+SmF2YU1ldGhv
ZCgpCiAvLyB3ZSBnZXQgJy4nIGJldHdlZW4gY29tcG9uZW50cyBmcm9tIHRoZSByZWZsZWN0aW9u
IEFQSS4KIHN0YXRpYyB2b2lkIGFwcGVuZENsYXNzTmFtZShTdHJpbmdCdWlsZGVyJiBidWlsZGVy
LCBjb25zdCBjaGFyKiBjbGFzc05hbWUpCiB7Ci0jaWYgVVNFKEpTQykKICAgICBBU1NFUlQoSlNM
b2NrOjpsb2NrQ291bnQoKSA+IDApOwotI2VuZGlmCiAKICAgICBjaGFyKiBjID0gZmFzdFN0ckR1
cChjbGFzc05hbWUpOwogCkBAIC0xMTMsOSArMTExLDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kQ2xh
c3NOYW1lKFN0cmluZ0J1aWxkZXImIGJ1aWxkZXIsIGNvbnN0IGNoYXIqIGNsYXNzTmFtZSkKIGNv
bnN0IGNoYXIqIEphdmFNZXRob2Q6OnNpZ25hdHVyZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX3Np
Z25hdHVyZSkgewotI2lmIFVTRShKU0MpCiAgICAgICAgIEpTTG9jayBsb2NrKFNpbGVuY2VBc3Nl
cnRpb25zT25seSk7Ci0jZW5kaWYKIAogICAgICAgICBTdHJpbmdCdWlsZGVyIHNpZ25hdHVyZUJ1
aWxkZXI7CiAgICAgICAgIHNpZ25hdHVyZUJ1aWxkZXIuYXBwZW5kKCcoJyk7CkBAIC0xMjYsMTEg
KzEyMiw3IEBAIGNvbnN0IGNoYXIqIEphdmFNZXRob2Q6OnNpZ25hdHVyZSgpIGNvbnN0CiAgICAg
ICAgICAgICAgICAgYXBwZW5kQ2xhc3NOYW1lKHNpZ25hdHVyZUJ1aWxkZXIsIGphdmFDbGFzc05h
bWUuZGF0YSgpKTsKICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgIHNpZ25hdHVy
ZUJ1aWxkZXIuYXBwZW5kKHNpZ25hdHVyZUZyb21KYXZhVHlwZSh0eXBlKSk7Ci0gICAgICAgICAg
ICAgICAgaWYgKHR5cGUgPT0gSmF2YVR5cGVPYmplY3QKLSNpZiBVU0UoVjgpCi0gICAgICAgICAg
ICAgICAgICAgIHx8IHR5cGUgPT0gSmF2YVR5cGVTdHJpbmcKLSNlbmRpZgotICAgICAgICAgICAg
ICAgICAgICApIHsKKyAgICAgICAgICAgICAgICBpZiAodHlwZSA9PSBKYXZhVHlwZU9iamVjdCkg
ewogICAgICAgICAgICAgICAgICAgICBhcHBlbmRDbGFzc05hbWUoc2lnbmF0dXJlQnVpbGRlciwg
amF2YUNsYXNzTmFtZS5kYXRhKCkpOwogICAgICAgICAgICAgICAgICAgICBzaWduYXR1cmVCdWls
ZGVyLmFwcGVuZCgnOycpOwogICAgICAgICAgICAgICAgIH0KQEAgLTE0MywxMSArMTM1LDcgQEAg
Y29uc3QgY2hhciogSmF2YU1ldGhvZDo6c2lnbmF0dXJlKCkgY29uc3QKICAgICAgICAgICAgIGFw
cGVuZENsYXNzTmFtZShzaWduYXR1cmVCdWlsZGVyLCByZXR1cm5UeXBlKTsKICAgICAgICAgZWxz
ZSB7CiAgICAgICAgICAgICBzaWduYXR1cmVCdWlsZGVyLmFwcGVuZChzaWduYXR1cmVGcm9tSmF2
YVR5cGUobV9yZXR1cm5UeXBlKSk7Ci0gICAgICAgICAgICBpZiAobV9yZXR1cm5UeXBlID09IEph
dmFUeXBlT2JqZWN0Ci0jaWYgVVNFKFY4KQotICAgICAgICAgICAgICAgIHx8IG1fcmV0dXJuVHlw
ZSA9PSBKYXZhVHlwZVN0cmluZwotI2VuZGlmCi0gICAgICAgICAgICAgICAgKSB7CisgICAgICAg
ICAgICBpZiAobV9yZXR1cm5UeXBlID09IEphdmFUeXBlT2JqZWN0KSB7CiAgICAgICAgICAgICAg
ICAgYXBwZW5kQ2xhc3NOYW1lKHNpZ25hdHVyZUJ1aWxkZXIsIHJldHVyblR5cGUpOwogICAgICAg
ICAgICAgICAgIHNpZ25hdHVyZUJ1aWxkZXIuYXBwZW5kKCc7Jyk7CiAgICAgICAgICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL3Y4L0pOSVV0aWxpdHlQcml2YXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSk5JVXRpbGl0eVByaXZhdGUuY3Bw
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4OGU0MTc0MmIyZjc0ZjA0ZDdmN2ZiNDhm
NmYwZmNmMjgzOTExMDQ5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSk5JVXRpbGl0eVByaXZhdGUuY3Bw
CisrKyAvZGV2L251bGwKQEAgLTEsMjQxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgMjAxMCwg
VGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLSNpbmNsdWRlICJKTklVdGlsaXR5UHJpdmF0ZS5oIgotCi0jaWYgRU5BQkxFKEpBVkFfQlJJ
REdFKQotCi0jaW5jbHVkZSAiSmF2YUluc3RhbmNlVjguaCIKLSNpbmNsdWRlICJKYXZhTlBPYmpl
Y3RWOC5oIgotI2luY2x1ZGUgIkphdmFWYWx1ZVY4LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0
cmluZy5oPgotCi1uYW1lc3BhY2UgSlNDIHsKLQotbmFtZXNwYWNlIEJpbmRpbmdzIHsKLQotSmF2
YVZhbHVlIGNvbnZlcnROUFZhcmlhbnRUb0phdmFWYWx1ZShOUFZhcmlhbnQgdmFsdWUsIGNvbnN0
IFN0cmluZyYgamF2YUNsYXNzKQotewotICAgIENTdHJpbmcgamF2YUNsYXNzTmFtZSA9IGphdmFD
bGFzcy51dGY4KCk7Ci0gICAgSmF2YVR5cGUgamF2YVR5cGUgPSBqYXZhVHlwZUZyb21DbGFzc05h
bWUoamF2YUNsYXNzTmFtZS5kYXRhKCkpOwotICAgIEphdmFWYWx1ZSByZXN1bHQ7Ci0gICAgcmVz
dWx0Lm1fdHlwZSA9IGphdmFUeXBlOwotICAgIE5QVmFyaWFudFR5cGUgdHlwZSA9IHZhbHVlLnR5
cGU7Ci0KLSAgICBzd2l0Y2ggKGphdmFUeXBlKSB7Ci0gICAgY2FzZSBKYXZhVHlwZUFycmF5Ogot
ICAgIGNhc2UgSmF2YVR5cGVPYmplY3Q6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIC8vIFNlZSBp
ZiB3ZSBoYXZlIGEgSmF2YSBpbnN0YW5jZS4KLSAgICAgICAgICAgIGlmICh0eXBlID09IE5QVmFy
aWFudFR5cGVfT2JqZWN0KSB7Ci0gICAgICAgICAgICAgICAgTlBPYmplY3QqIG9iamVjdEltcCA9
IE5QVkFSSUFOVF9UT19PQkpFQ1QodmFsdWUpOwotICAgICAgICAgICAgICAgIHJlc3VsdC5tX29i
amVjdFZhbHVlID0gRXh0cmFjdEphdmFJbnN0YW5jZShvYmplY3RJbXApOwotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBKYXZhVHlwZVN0cmluZzoK
LSAgICAgICAgewotI2lmZGVmIENPTlZFUlRfTlVMTF9UT19FTVBUWV9TVFJJTkcKLSAgICAgICAg
ICAgIGlmICh0eXBlID09IE5QVmFyaWFudFR5cGVfTnVsbCkgewotICAgICAgICAgICAgICAgIHJl
c3VsdC5tX3R5cGUgPSBKYXZhVHlwZVN0cmluZzsKLSAgICAgICAgICAgICAgICByZXN1bHQubV9z
dHJpbmdWYWx1ZSA9IFN0cmluZzo6ZnJvbVVURjgoIiIpOwotICAgICAgICAgICAgfSBlbHNlCi0j
ZWxzZQotICAgICAgICAgICAgaWYgKHR5cGUgPT0gTlBWYXJpYW50VHlwZV9TdHJpbmcpCi0jZW5k
aWYKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBOUFN0cmluZyBzcmMgPSBOUFZBUklB
TlRfVE9fU1RSSU5HKHZhbHVlKTsKLSAgICAgICAgICAgICAgICByZXN1bHQubV90eXBlID0gSmF2
YVR5cGVTdHJpbmc7Ci0gICAgICAgICAgICAgICAgcmVzdWx0Lm1fc3RyaW5nVmFsdWUgPSBTdHJp
bmc6OmZyb21VVEY4KHNyYy5VVEY4Q2hhcmFjdGVycyk7Ci0gICAgICAgICAgICB9Ci0gICAgICAg
IH0KLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIEphdmFUeXBlQm9vbGVhbjoKLSAgICAgICAg
ewotICAgICAgICAgICAgaWYgKHR5cGUgPT0gTlBWYXJpYW50VHlwZV9Cb29sKQotICAgICAgICAg
ICAgICAgIHJlc3VsdC5tX2Jvb2xlYW5WYWx1ZSA9IE5QVkFSSUFOVF9UT19CT09MRUFOKHZhbHVl
KTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgSmF2YVR5cGVCeXRlOgot
ICAgICAgICB7Ci0gICAgICAgICAgICBpZiAodHlwZSA9PSBOUFZhcmlhbnRUeXBlX0ludDMyKQot
ICAgICAgICAgICAgICAgIHJlc3VsdC5tX2J5dGVWYWx1ZSA9IHN0YXRpY19jYXN0PHNpZ25lZCBj
aGFyPihOUFZBUklBTlRfVE9fSU5UMzIodmFsdWUpKTsKLSAgICAgICAgICAgIGVsc2UgaWYgKHR5
cGUgPT0gTlBWYXJpYW50VHlwZV9Eb3VibGUpCi0gICAgICAgICAgICAgICAgcmVzdWx0Lm1fYnl0
ZVZhbHVlID0gc3RhdGljX2Nhc3Q8c2lnbmVkIGNoYXI+KE5QVkFSSUFOVF9UT19ET1VCTEUodmFs
dWUpKTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgSmF2YVR5cGVDaGFy
OgotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAodHlwZSA9PSBOUFZhcmlhbnRUeXBlX0ludDMy
KQotICAgICAgICAgICAgICAgIHJlc3VsdC5tX2NoYXJWYWx1ZSA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkIHNob3J0PihOUFZBUklBTlRfVE9fSU5UMzIodmFsdWUpKTsKLSAgICAgICAgfQotICAgICAg
ICBicmVhazsKLQotICAgIGNhc2UgSmF2YVR5cGVTaG9ydDoKLSAgICAgICAgewotICAgICAgICAg
ICAgaWYgKHR5cGUgPT0gTlBWYXJpYW50VHlwZV9JbnQzMikKLSAgICAgICAgICAgICAgICByZXN1
bHQubV9zaG9ydFZhbHVlID0gc3RhdGljX2Nhc3Q8c2hvcnQ+KE5QVkFSSUFOVF9UT19JTlQzMih2
YWx1ZSkpOwotICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBOUFZhcmlhbnRUeXBlX0RvdWJs
ZSkKLSAgICAgICAgICAgICAgICByZXN1bHQubV9zaG9ydFZhbHVlID0gc3RhdGljX2Nhc3Q8c2hv
cnQ+KE5QVkFSSUFOVF9UT19ET1VCTEUodmFsdWUpKTsKLSAgICAgICAgfQotICAgICAgICBicmVh
azsKLQotICAgIGNhc2UgSmF2YVR5cGVJbnQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICh0
eXBlID09IE5QVmFyaWFudFR5cGVfSW50MzIpCi0gICAgICAgICAgICAgICAgcmVzdWx0Lm1faW50
VmFsdWUgPSBzdGF0aWNfY2FzdDxpbnQ+KE5QVkFSSUFOVF9UT19JTlQzMih2YWx1ZSkpOwotICAg
ICAgICAgICAgZWxzZSBpZiAodHlwZSA9PSBOUFZhcmlhbnRUeXBlX0RvdWJsZSkKLSAgICAgICAg
ICAgICAgICByZXN1bHQubV9pbnRWYWx1ZSA9IHN0YXRpY19jYXN0PGludD4oTlBWQVJJQU5UX1RP
X0RPVUJMRSh2YWx1ZSkpOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBK
YXZhVHlwZUxvbmc6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICh0eXBlID09IE5QVmFyaWFu
dFR5cGVfSW50MzIpCi0gICAgICAgICAgICAgICAgcmVzdWx0Lm1fbG9uZ1ZhbHVlID0gc3RhdGlj
X2Nhc3Q8bG9uZyBsb25nPihOUFZBUklBTlRfVE9fSU5UMzIodmFsdWUpKTsKLSAgICAgICAgICAg
IGVsc2UgaWYgKHR5cGUgPT0gTlBWYXJpYW50VHlwZV9Eb3VibGUpCi0gICAgICAgICAgICAgICAg
cmVzdWx0Lm1fbG9uZ1ZhbHVlID0gc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihOUFZBUklBTlRfVE9f
RE9VQkxFKHZhbHVlKSk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIEph
dmFUeXBlRmxvYXQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICh0eXBlID09IE5QVmFyaWFu
dFR5cGVfSW50MzIpCi0gICAgICAgICAgICAgICAgcmVzdWx0Lm1fZmxvYXRWYWx1ZSA9IHN0YXRp
Y19jYXN0PGZsb2F0PihOUFZBUklBTlRfVE9fSU5UMzIodmFsdWUpKTsKLSAgICAgICAgICAgIGVs
c2UgaWYgKHR5cGUgPT0gTlBWYXJpYW50VHlwZV9Eb3VibGUpCi0gICAgICAgICAgICAgICAgcmVz
dWx0Lm1fZmxvYXRWYWx1ZSA9IHN0YXRpY19jYXN0PGZsb2F0PihOUFZBUklBTlRfVE9fRE9VQkxF
KHZhbHVlKSk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIEphdmFUeXBl
RG91YmxlOgotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAodHlwZSA9PSBOUFZhcmlhbnRUeXBl
X0ludDMyKQotICAgICAgICAgICAgICAgIHJlc3VsdC5tX2RvdWJsZVZhbHVlID0gc3RhdGljX2Nh
c3Q8ZG91YmxlPihOUFZBUklBTlRfVE9fSU5UMzIodmFsdWUpKTsKLSAgICAgICAgICAgIGVsc2Ug
aWYgKHR5cGUgPT0gTlBWYXJpYW50VHlwZV9Eb3VibGUpCi0gICAgICAgICAgICAgICAgcmVzdWx0
Lm1fZG91YmxlVmFsdWUgPSBzdGF0aWNfY2FzdDxkb3VibGU+KE5QVkFSSUFOVF9UT19ET1VCTEUo
dmFsdWUpKTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLSAgICBkZWZhdWx0OgotICAgICAg
ICBicmVhazsKLSAgICB9Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotCi12b2lkIGNvbnZlcnRK
YXZhVmFsdWVUb05QVmFyaWFudChKYXZhVmFsdWUgdmFsdWUsIE5QVmFyaWFudCogcmVzdWx0KQot
ewotICAgIHN3aXRjaCAodmFsdWUubV90eXBlKSB7Ci0gICAgY2FzZSBKYXZhVHlwZVZvaWQ6Ci0g
ICAgICAgIHsKLSAgICAgICAgICAgIFZPSURfVE9fTlBWQVJJQU5UKCpyZXN1bHQpOwotICAgICAg
ICB9Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBKYXZhVHlwZU9iamVjdDoKLSAgICAgICAg
ewotICAgICAgICAgICAgLy8gSWYgdGhlIEphdmFWYWx1ZSBpcyBhIFN0cmluZyBvYmplY3QsIGl0
IHNob3VsZCBoYXZlIHR5cGUgSmF2YVR5cGVTdHJpbmcuCi0gICAgICAgICAgICBpZiAodmFsdWUu
bV9vYmplY3RWYWx1ZSkKLSAgICAgICAgICAgICAgICBPQkpFQ1RfVE9fTlBWQVJJQU5UKEphdmFJ
bnN0YW5jZVRvTlBPYmplY3QodmFsdWUubV9vYmplY3RWYWx1ZS5nZXQoKSksICpyZXN1bHQpOwot
ICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIFZPSURfVE9fTlBWQVJJQU5UKCpyZXN1
bHQpOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotCi0gICAgY2FzZSBKYXZhVHlwZVN0cmlu
ZzoKLSAgICAgICAgewotICAgICAgICAgICAgY29uc3QgY2hhciogdXRmOFN0cmluZyA9IHN0cmR1
cCh2YWx1ZS5tX3N0cmluZ1ZhbHVlLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICAgICAgLy8gVGhl
IGNvcGllZCBzdHJpbmcgaXMgZnJlZWQgaW4gTlBOX1JlbGVhc2VWYXJpYW50VmFsdWUgKHNlZSBu
cHJ1bnRpbWUuY3BwKQotICAgICAgICAgICAgU1RSSU5HWl9UT19OUFZBUklBTlQodXRmOFN0cmlu
ZywgKnJlc3VsdCk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIEphdmFU
eXBlQm9vbGVhbjoKLSAgICAgICAgewotICAgICAgICAgICAgQk9PTEVBTl9UT19OUFZBUklBTlQo
dmFsdWUubV9ib29sZWFuVmFsdWUsICpyZXN1bHQpOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFr
OwotCi0gICAgY2FzZSBKYXZhVHlwZUJ5dGU6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIElOVDMy
X1RPX05QVkFSSUFOVCh2YWx1ZS5tX2J5dGVWYWx1ZSwgKnJlc3VsdCk7Ci0gICAgICAgIH0KLSAg
ICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIEphdmFUeXBlQ2hhcjoKLSAgICAgICAgewotICAgICAg
ICAgICAgSU5UMzJfVE9fTlBWQVJJQU5UKHZhbHVlLm1fY2hhclZhbHVlLCAqcmVzdWx0KTsKLSAg
ICAgICAgfQotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgSmF2YVR5cGVTaG9ydDoKLSAgICAg
ICAgewotICAgICAgICAgICAgSU5UMzJfVE9fTlBWQVJJQU5UKHZhbHVlLm1fc2hvcnRWYWx1ZSwg
KnJlc3VsdCk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0KLSAgICBjYXNlIEphdmFUeXBl
SW50OgotICAgICAgICB7Ci0gICAgICAgICAgICBJTlQzMl9UT19OUFZBUklBTlQodmFsdWUubV9p
bnRWYWx1ZSwgKnJlc3VsdCk7Ci0gICAgICAgIH0KLSAgICAgICAgYnJlYWs7Ci0KLSAgICAgICAg
Ly8gVE9ETzogQ2hlY2sgaWYgY2FzdCB0byBkb3VibGUgaXMgbmVlZGVkLgotICAgIGNhc2UgSmF2
YVR5cGVMb25nOgotICAgICAgICB7Ci0gICAgICAgICAgICBET1VCTEVfVE9fTlBWQVJJQU5UKHZh
bHVlLm1fbG9uZ1ZhbHVlLCAqcmVzdWx0KTsKLSAgICAgICAgfQotICAgICAgICBicmVhazsKLQot
ICAgIGNhc2UgSmF2YVR5cGVGbG9hdDoKLSAgICAgICAgewotICAgICAgICAgICAgRE9VQkxFX1RP
X05QVkFSSUFOVCh2YWx1ZS5tX2Zsb2F0VmFsdWUsICpyZXN1bHQpOwotICAgICAgICB9Ci0gICAg
ICAgIGJyZWFrOwotCi0gICAgY2FzZSBKYXZhVHlwZURvdWJsZToKLSAgICAgICAgewotICAgICAg
ICAgICAgRE9VQkxFX1RPX05QVkFSSUFOVCh2YWx1ZS5tX2RvdWJsZVZhbHVlLCAqcmVzdWx0KTsK
LSAgICAgICAgfQotICAgICAgICBicmVhazsKLQotICAgIGNhc2UgSmF2YVR5cGVJbnZhbGlkOgot
ICAgIGRlZmF1bHQ6Ci0gICAgICAgIHsKLSAgICAgICAgICAgIFZPSURfVE9fTlBWQVJJQU5UKCpy
ZXN1bHQpOwotICAgICAgICB9Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLX0KLQotfSAvLyBuYW1l
c3BhY2UgQmluZGluZ3MKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBFTkFCTEUo
SkFWQV9CUklER0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL3Y4L0pO
SVV0aWxpdHlQcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL3Y4L0pOSVV0aWxp
dHlQcml2YXRlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIxNWM1NTk1NzFjM2Jl
MTExY2RmOTVmOTlmYzBiZWFlMzVmNjZkZWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KTklVdGlsaXR5
UHJpdmF0ZS5oCisrKyAvZGV2L251bGwKQEAgLTEsNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBBUyBJ
UycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBK
TklVdGlsaXR5UHJpdmF0ZV9oCi0jZGVmaW5lIEpOSVV0aWxpdHlQcml2YXRlX2gKLQotI2lmIEVO
QUJMRShKQVZBX0JSSURHRSkKLQotI2luY2x1ZGUgIkpOSVV0aWxpdHkuaCIKLSNpbmNsdWRlICJu
cHJ1bnRpbWUuaCIKLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KLQotbmFtZXNwYWNl
IEpTQyB7Ci0KLW5hbWVzcGFjZSBCaW5kaW5ncyB7Ci0KLWNsYXNzIEphdmFWYWx1ZTsKLQotSmF2
YVZhbHVlIGNvbnZlcnROUFZhcmlhbnRUb0phdmFWYWx1ZShOUFZhcmlhbnQsIGNvbnN0IFN0cmlu
ZyYgamF2YUNsYXNzKTsKLXZvaWQgY29udmVydEphdmFWYWx1ZVRvTlBWYXJpYW50KEphdmFWYWx1
ZSwgTlBWYXJpYW50Kik7Ci0KLX0gLy8gbmFtZXNwYWNlIEJpbmRpbmdzCi0KLX0gLy8gbmFtZXNw
YWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFfQlJJREdFKQotCi0jZW5kaWYgLy8gSk5J
VXRpbGl0eVByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92
OC9KYXZhQ2xhc3NWOC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZhQ2xhc3NW
OC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlNjBjYTJkYzY0ZTBjNmNhMzkyZjNj
MjNhOWI2ZThiNmU5ZDQyYWNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSmF2YUNsYXNzVjguaAorKysg
L2Rldi9udWxsCkBAIC0xLDYwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgMjAxMCwgVGhlIEFu
ZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0g
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSmF2YUNsYXNzVjhfaAot
I2RlZmluZSBKYXZhQ2xhc3NWOF9oCi0KLSNpZiBFTkFCTEUoSkFWQV9CUklER0UpCi0KLSNpbmNs
dWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3
dGYvdGV4dC9TdHJpbmdIYXNoLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0K
LW5hbWVzcGFjZSBKU0MgewotCi1uYW1lc3BhY2UgQmluZGluZ3MgewotCi1jbGFzcyBKYXZhRmll
bGQ7Ci1jbGFzcyBKYXZhTWV0aG9kOwotCi10eXBlZGVmIFZlY3RvcjxKYXZhTWV0aG9kKj4gTWV0
aG9kTGlzdDsKLXR5cGVkZWYgSGFzaE1hcDxXVEY6OlN0cmluZywgSmF2YUZpZWxkKj4gRmllbGRN
YXA7Ci0KLWNsYXNzIEphdmFDbGFzcyB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+SmF2YUNsYXNz
KCkge30KLQotICAgIHZpcnR1YWwgTWV0aG9kTGlzdCBtZXRob2RzTmFtZWQoY29uc3QgY2hhciog
bmFtZSkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgSmF2YUZpZWxkKiBmaWVsZE5hbWVkKGNvbnN0
IGNoYXIqIG5hbWUpIGNvbnN0ID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEJpbmRpbmdzCi0K
LX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFfQlJJREdFKQotCi0j
ZW5kaWYgLy8gSmF2YUNsYXNzVjhfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS92OC9KYXZhRmllbGRWOC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZh
RmllbGRWOC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA4ZjljOTgyMmJlNjEzMmU3
OTgwMmI1ZDQwNzg0MjEzMzJiZDJlYWMxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSmF2YUZpZWxkVjgu
aAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgMjAxMCwg
VGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSmF2YUZpZWxk
VjhfaAotI2RlZmluZSBKYXZhRmllbGRWOF9oCi0KLSNpZiBFTkFCTEUoSkFWQV9CUklER0UpCi0K
LSNpbmNsdWRlICJKTklVdGlsaXR5LmgiCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1uYW1lc3BhY2UgQmluZGluZ3MgewotCi1jbGFzcyBKYXZh
RmllbGQgewotcHVibGljOgotICAgIHZpcnR1YWwgfkphdmFGaWVsZCgpIHt9Ci0KLSAgICB2aXJ0
dWFsIFN0cmluZyBuYW1lKCkgY29uc3QgPSAwOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgQmluZGlu
Z3MKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRpZiAvLyBFTkFCTEUoSkFWQV9CUklER0Up
Ci0KLSNlbmRpZiAvLyBKYXZhRmllbGRWOF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2Uvam5pL3Y4L0phdmFJbnN0YW5jZVY4LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5p
L3Y4L0phdmFJbnN0YW5jZVY4LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDIwZDAy
NzQyODQzM2Q5ZTY0YWU5MWJiNjRkNGY0ZTA4MWVkOWRhYzUuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9K
YXZhSW5zdGFuY2VWOC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjIgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwMywgMjAwOCwgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgMjAxMCwgVGhlIEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VCBPV05FUiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IK
LSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgSmF2YUluc3RhbmNlVjhfaAotI2RlZmluZSBKYXZhSW5zdGFuY2VWOF9o
Ci0KLSNpZiBFTkFCTEUoSkFWQV9CUklER0UpCi0KLSNpbmNsdWRlICJKYXZhVmFsdWVWOC5oIgot
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBXVEY7Ci0KLW5h
bWVzcGFjZSBKU0MgewotCi1uYW1lc3BhY2UgQmluZGluZ3MgewotCi1jbGFzcyBKYXZhQ2xhc3M7
Ci1jbGFzcyBKYXZhRmllbGQ7Ci1jbGFzcyBKYXZhTWV0aG9kOwotCi1jbGFzcyBKYXZhSW5zdGFu
Y2UgOiBwdWJsaWMgUmVmQ291bnRlZDxKYXZhSW5zdGFuY2U+IHsKLXB1YmxpYzoKLSAgICB2aXJ0
dWFsIH5KYXZhSW5zdGFuY2UoKSB7fQotCi0gICAgdmlydHVhbCBKYXZhQ2xhc3MqIGdldENsYXNz
KCkgY29uc3QgPSAwOwotICAgIC8vIGFyZ3MgbXVzdCBiZSBhbiBhcnJheSBvZiBsZW5ndGggZ3Jl
YXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBudW1iZXIgb2YKLSAgICAvLyBhcmd1bWVudHMgZXhw
ZWN0ZWQgYnkgdGhlIG1ldGhvZC4KLSAgICB2aXJ0dWFsIEphdmFWYWx1ZSBpbnZva2VNZXRob2Qo
Y29uc3QgSmF2YU1ldGhvZCYsIEphdmFWYWx1ZSogYXJncykgPSAwOwotICAgIHZpcnR1YWwgSmF2
YVZhbHVlIGdldEZpZWxkKGNvbnN0IEphdmFGaWVsZCYpID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIEJpbmRpbmdzCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKEpB
VkFfQlJJREdFKQotCi0jZW5kaWYgLy8gSmF2YUluc3RhbmNlVjhfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZhTWV0aG9kVjguaCBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9qbmkvdjgvSmF2YU1ldGhvZFY4LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGYwNzExNjA5MjJlMTZiMjA4OWU0ZGE3ZjQxMTZmMWQ1NDczMWQyZDYuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS92OC9KYXZhTWV0aG9kVjguaAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDcsIDIwMDksIDIwMTAgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IDIwMTAsIFRoZSBBbmRy
b2lkIE9wZW4gU291cmNlIFByb2plY3QKLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIEphdmFNZXRob2RWOF9oCi0j
ZGVmaW5lIEphdmFNZXRob2RWOF9oCi0KLSNpZiBFTkFCTEUoSkFWQV9CUklER0UpCi0KLSNpbmNs
dWRlICJCcmlkZ2UuaCIKLSNpbmNsdWRlICJKYXZhVHlwZS5oIgotCi0jaW5jbHVkZSA8d3RmL3Rl
eHQvV1RGU3RyaW5nLmg+Ci0KLW5hbWVzcGFjZSBKU0MgewotCi1uYW1lc3BhY2UgQmluZGluZ3Mg
ewotCi10eXBlZGVmIGNvbnN0IGNoYXIqIFJ1bnRpbWVUeXBlOwotCi1jbGFzcyBKYXZhTWV0aG9k
IDogcHVibGljIE1ldGhvZCB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCB+SmF2YU1ldGhvZCgpIHsg
fQotCi0gICAgdmlydHVhbCBTdHJpbmcgbmFtZSgpIGNvbnN0ID0gMDsKLSAgICB2aXJ0dWFsIFN0
cmluZyBwYXJhbWV0ZXJBdChpbnQpIGNvbnN0ID0gMDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEJp
bmRpbmdzCi0KLX0gLy8gbmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFfQlJJ
REdFKQotCi0jZW5kaWYgLy8gSmF2YU1ldGhvZFY4X2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9qbmkvdjgvSmF2YU5QT2JqZWN0VjguY3BwIGIvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2puaS92OC9KYXZhTlBPYmplY3RWOC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDk4OGRmMmQ4NjJjYWIwZGMyNjMxMzlmMmEzYTcxMGVkYmI0YzVhNWQuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L2puaS92OC9KYXZhTlBPYmplY3RWOC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxOTAgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJ
R0hUIE9XTkVSIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSmF2YU5QT2JqZWN0Vjgu
aCIKLQotI2lmIEVOQUJMRShKQVZBX0JSSURHRSkKLQotI2luY2x1ZGUgIkpOSVV0aWxpdHlQcml2
YXRlLmgiCi0jaW5jbHVkZSAiSmF2YUNsYXNzVjguaCIKLSNpbmNsdWRlICJKYXZhRmllbGRWOC5o
IgotI2luY2x1ZGUgIkphdmFJbnN0YW5jZVY4LmgiCi0jaW5jbHVkZSAiSmF2YU1ldGhvZFY4Lmgi
Ci0jaW5jbHVkZSAiSmF2YVZhbHVlVjguaCIKLSNpbmNsdWRlICJucHJ1bnRpbWVfaW1wbC5oIgot
Ci1uYW1lc3BhY2UgSlNDIHsKLQotbmFtZXNwYWNlIEJpbmRpbmdzIHsKLQotc3RhdGljIE5QT2Jq
ZWN0KiBBbGxvY0phdmFOUE9iamVjdChOUFAsIE5QQ2xhc3MqKQotewotICAgIEphdmFOUE9iamVj
dCogb2JqID0gc3RhdGljX2Nhc3Q8SmF2YU5QT2JqZWN0Kj4obWFsbG9jKHNpemVvZihKYXZhTlBP
YmplY3QpKSk7Ci0gICAgaWYgKCFvYmopCi0gICAgICAgIHJldHVybiAwOwotICAgIG1lbXNldChv
YmosIDAsIHNpemVvZihKYXZhTlBPYmplY3QpKTsKLSAgICByZXR1cm4gcmVpbnRlcnByZXRfY2Fz
dDxOUE9iamVjdCo+KG9iaik7Ci19Ci0KLXN0YXRpYyB2b2lkIEZyZWVKYXZhTlBPYmplY3QoTlBP
YmplY3QqIG5wb2JqKQotewotICAgIEphdmFOUE9iamVjdCogb2JqID0gcmVpbnRlcnByZXRfY2Fz
dDxKYXZhTlBPYmplY3QqPihucG9iaik7Ci0gICAgb2JqLT5tX2luc3RhbmNlID0gMDsgLy8gZnJl
ZSBkb2VzIG5vdCBjYWxsIHRoZSBkZXN0cnVjdG9yCi0gICAgZnJlZShvYmopOwotfQotCi1zdGF0
aWMgTlBDbGFzcyBKYXZhTlBPYmplY3RDbGFzcyA9IHsKLSAgICBOUF9DTEFTU19TVFJVQ1RfVkVS
U0lPTiwKLSAgICBBbGxvY0phdmFOUE9iamVjdCwgLy8gYWxsb2NhdGUsCi0gICAgRnJlZUphdmFO
UE9iamVjdCwgLy8gZnJlZSwKLSAgICAwLCAvLyBpbnZhbGlkYXRlCi0gICAgSmF2YU5QT2JqZWN0
SGFzTWV0aG9kLAotICAgIEphdmFOUE9iamVjdEludm9rZSwKLSAgICAwLCAvLyBpbnZva2VEZWZh
dWx0LAotICAgIEphdmFOUE9iamVjdEhhc1Byb3BlcnR5LAotICAgIEphdmFOUE9iamVjdEdldFBy
b3BlcnR5LAotICAgIDAsIC8vIHNldFByb3BlcnR5Ci0gICAgMCwgLy8gcmVtb3ZlUHJvcGVydHkK
LSAgICAwLCAvLyBlbnVtZXJhdGUKLSAgICAwIC8vIGNvbnN0cnVjdAotfTsKLQotTlBPYmplY3Qq
IEphdmFJbnN0YW5jZVRvTlBPYmplY3QoSmF2YUluc3RhbmNlKiBpbnN0YW5jZSkKLXsKLSAgICBK
YXZhTlBPYmplY3QqIG9iamVjdCA9IHJlaW50ZXJwcmV0X2Nhc3Q8SmF2YU5QT2JqZWN0Kj4oX05Q
Tl9DcmVhdGVPYmplY3QoMCwgJkphdmFOUE9iamVjdENsYXNzKSk7Ci0gICAgb2JqZWN0LT5tX2lu
c3RhbmNlID0gaW5zdGFuY2U7Ci0gICAgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8TlBPYmplY3Qq
PihvYmplY3QpOwotfQotCi0vLyBSZXR1cm5zIG51bGwgaWYgb2JqIGlzIG5vdCBhIHdyYXBwZXIg
b2YgSmF2YUluc3RhbmNlCi1KYXZhSW5zdGFuY2UqIEV4dHJhY3RKYXZhSW5zdGFuY2UoTlBPYmpl
Y3QqIG9iaikKLXsKLSAgICBpZiAob2JqLT5fY2xhc3MgPT0gJkphdmFOUE9iamVjdENsYXNzKQot
ICAgICAgICByZXR1cm4gcmVpbnRlcnByZXRfY2FzdDxKYXZhTlBPYmplY3QqPihvYmopLT5tX2lu
c3RhbmNlLmdldCgpOwotICAgIHJldHVybiAwOwotfQotCi1ib29sIEphdmFOUE9iamVjdEhhc01l
dGhvZChOUE9iamVjdCogb2JqLCBOUElkZW50aWZpZXIgaWRlbnRpZmllcikKLXsKLSAgICBKYXZh
SW5zdGFuY2UqIGluc3RhbmNlID0gRXh0cmFjdEphdmFJbnN0YW5jZShvYmopOwotICAgIGlmICgh
aW5zdGFuY2UpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBOUFVURjgqIG5hbWUgPSBfTlBO
X1VURjhGcm9tSWRlbnRpZmllcihpZGVudGlmaWVyKTsKLSAgICBpZiAoIW5hbWUpCi0gICAgICAg
IHJldHVybiBmYWxzZTsKLQotICAgIGJvb2wgcmVzdWx0ID0gKGluc3RhbmNlLT5nZXRDbGFzcygp
LT5tZXRob2RzTmFtZWQobmFtZSkuc2l6ZSgpID4gMCk7Ci0KLSAgICAvLyBUT0RPOiB1c2UgTlBO
X01lbUZyZWUKLSAgICBmcmVlKG5hbWUpOwotCi0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotYm9v
bCBKYXZhTlBPYmplY3RJbnZva2UoTlBPYmplY3QqIG9iaiwgTlBJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCog
cmVzdWx0KQotewotICAgIEphdmFJbnN0YW5jZSogaW5zdGFuY2UgPSBFeHRyYWN0SmF2YUluc3Rh
bmNlKG9iaik7Ci0gICAgaWYgKCFpbnN0YW5jZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAg
IE5QVVRGOCogbmFtZSA9IF9OUE5fVVRGOEZyb21JZGVudGlmaWVyKGlkZW50aWZpZXIpOwotICAg
IGlmICghbmFtZSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgTWV0aG9kTGlzdCBtZXRo
b2RMaXN0ID0gaW5zdGFuY2UtPmdldENsYXNzKCktPm1ldGhvZHNOYW1lZChuYW1lKTsKLSAgICAv
LyBUT0RPOiB1c2UgTlBOX01lbUZyZWUKLSAgICBmcmVlKG5hbWUpOwotCi0gICAgLy8gVHJ5IHRv
IGZpbmQgYSBnb29kIG1hdGNoIGZvciB0aGUgb3ZlcmxvYWRlZCBtZXRob2QuIFRoZQotICAgIC8v
IGZ1bmRhbWVudGFsIHByb2JsZW0gaXMgdGhhdCBKYXZhU2NyaXB0IGRvZXNuJ3QgaGF2ZSB0aGUK
LSAgICAvLyBub3Rpb24gb2YgbWV0aG9kIG92ZXJsb2FkaW5nIGFuZCBKYXZhIGRvZXMuIFdlIGNv
dWxkCi0gICAgLy8gZ2V0IGEgYml0IG1vcmUgc29waGlzdGljYXRlZCBhbmQgYXR0ZW1wdCB0byBk
byBzb21lCi0gICAgLy8gdHlwZSBjaGVja2luZyBhcyB3ZWxsIGFzIGNoZWNraW5nIHRoZSBudW1i
ZXIgb2YgcGFyYW1ldGVycy4KLSAgICBzaXplX3QgbnVtTWV0aG9kcyA9IG1ldGhvZExpc3Quc2l6
ZSgpOwotICAgIEphdmFNZXRob2QqIGFNZXRob2Q7Ci0gICAgSmF2YU1ldGhvZCogak1ldGhvZCA9
IDA7Ci0gICAgZm9yIChzaXplX3QgbWV0aG9kSW5kZXggPSAwOyBtZXRob2RJbmRleCA8IG51bU1l
dGhvZHM7IG1ldGhvZEluZGV4KyspIHsKLSAgICAgICAgYU1ldGhvZCA9IG1ldGhvZExpc3RbbWV0
aG9kSW5kZXhdOwotICAgICAgICBpZiAoYU1ldGhvZC0+bnVtUGFyYW1ldGVycygpID09IHN0YXRp
Y19jYXN0PGludD4oYXJnQ291bnQpKSB7Ci0gICAgICAgICAgICBqTWV0aG9kID0gYU1ldGhvZDsK
LSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgfQotICAgIGlmICghak1ldGhvZCkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgSmF2YVZhbHVlKiBqQXJncyA9IG5ldyBKYXZh
VmFsdWVbYXJnQ291bnRdOwotICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgYXJnQ291
bnQ7IGkrKykKLSAgICAgICAgakFyZ3NbaV0gPSBjb252ZXJ0TlBWYXJpYW50VG9KYXZhVmFsdWUo
YXJnc1tpXSwgak1ldGhvZC0+cGFyYW1ldGVyQXQoaSkpOwotCi0gICAgSmF2YVZhbHVlIGpSZXN1
bHQgPSBpbnN0YW5jZS0+aW52b2tlTWV0aG9kKCpqTWV0aG9kLCBqQXJncyk7Ci0gICAgZGVsZXRl
W10gakFyZ3M7Ci0KLSAgICBWT0lEX1RPX05QVkFSSUFOVCgqcmVzdWx0KTsKLSAgICBjb252ZXJ0
SmF2YVZhbHVlVG9OUFZhcmlhbnQoalJlc3VsdCwgcmVzdWx0KTsKLSAgICByZXR1cm4gdHJ1ZTsK
LX0KLQotYm9vbCBKYXZhTlBPYmplY3RIYXNQcm9wZXJ0eShOUE9iamVjdCogb2JqLCBOUElkZW50
aWZpZXIgaWRlbnRpZmllcikKLXsKLSAgICBKYXZhSW5zdGFuY2UqIGluc3RhbmNlID0gRXh0cmFj
dEphdmFJbnN0YW5jZShvYmopOwotICAgIGlmICghaW5zdGFuY2UpCi0gICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICBOUFVURjgqIG5hbWUgPSBfTlBOX1VURjhGcm9tSWRlbnRpZmllcihpZGVudGlm
aWVyKTsKLSAgICBpZiAoIW5hbWUpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBib29sIHJl
c3VsdCA9IGluc3RhbmNlLT5nZXRDbGFzcygpLT5maWVsZE5hbWVkKG5hbWUpOwotICAgIGZyZWUo
bmFtZSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotYm9vbCBKYXZhTlBPYmplY3RHZXRQcm9w
ZXJ0eShOUE9iamVjdCogb2JqLCBOUElkZW50aWZpZXIgaWRlbnRpZmllciwgTlBWYXJpYW50KiBy
ZXN1bHQpCi17Ci0gICAgVk9JRF9UT19OUFZBUklBTlQoKnJlc3VsdCk7Ci0gICAgSmF2YUluc3Rh
bmNlKiBpbnN0YW5jZSA9IEV4dHJhY3RKYXZhSW5zdGFuY2Uob2JqKTsKLSAgICBpZiAoIWluc3Rh
bmNlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgTlBVVEY4KiBuYW1lID0gX05QTl9VVEY4
RnJvbUlkZW50aWZpZXIoaWRlbnRpZmllcik7Ci0gICAgaWYgKCFuYW1lKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBKYXZhRmllbGQqIGZpZWxkID0gaW5zdGFuY2UtPmdldENsYXNzKCkt
PmZpZWxkTmFtZWQobmFtZSk7Ci0gICAgZnJlZShuYW1lKTsgLy8gVE9ETzogdXNlIE5QTl9NZW1G
cmVlCi0gICAgaWYgKCFmaWVsZCkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgSmF2YVZh
bHVlIHZhbHVlID0gaW5zdGFuY2UtPmdldEZpZWxkKCpmaWVsZCk7Ci0KLSAgICBjb252ZXJ0SmF2
YVZhbHVlVG9OUFZhcmlhbnQodmFsdWUsIHJlc3VsdCk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0K
LQotfSAvLyBuYW1lc3BhY2UgQmluZGluZ3MKLQotfSAvLyBuYW1lc3BhY2UgSlNDCi0KLSNlbmRp
ZiAvLyBFTkFCTEUoSkFWQV9CUklER0UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2Uvam5pL3Y4L0phdmFOUE9iamVjdFY4LmggYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvam5pL3Y4
L0phdmFOUE9iamVjdFY4LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGZmM2JiNWZj
MDM2YzI4ODY5N2M3YzU0NWI5NjE1MGI1YzA3MzU1N2QuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZh
TlBPYmplY3RWOC5oCisrKyAvZGV2L251bGwKQEAgLTEsNjAgKzAsMCBAQAotLyoKLSAqIENvcHly
aWdodCAyMDEwLCBUaGUgQW5kcm9pZCBPcGVuIFNvdXJjZSBQcm9qZWN0Ci0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgYGBB
UyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUIE9XTkVSIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRl
ZiBKYXZhTlBPYmplY3RWOF9oCi0jZGVmaW5lIEphdmFOUE9iamVjdFY4X2gKLQotI2lmIEVOQUJM
RShKQVZBX0JSSURHRSkKLQotI2luY2x1ZGUgIm5wcnVudGltZS5oIgotI2luY2x1ZGUgPHd0Zi9S
ZWZQdHIuaD4KLQotCi1uYW1lc3BhY2UgSlNDIHsKLQotbmFtZXNwYWNlIEJpbmRpbmdzIHsKLQot
Y2xhc3MgSmF2YUluc3RhbmNlOwotCi1zdHJ1Y3QgSmF2YU5QT2JqZWN0IHsKLSAgICBOUE9iamVj
dCBtX29iamVjdDsKLSAgICBSZWZQdHI8SmF2YUluc3RhbmNlPiBtX2luc3RhbmNlOwotfTsKLQot
TlBPYmplY3QqIEphdmFJbnN0YW5jZVRvTlBPYmplY3QoSmF2YUluc3RhbmNlKik7Ci1KYXZhSW5z
dGFuY2UqIEV4dHJhY3RKYXZhSW5zdGFuY2UoTlBPYmplY3QqKTsKLQotYm9vbCBKYXZhTlBPYmpl
Y3RIYXNNZXRob2QoTlBPYmplY3QqLCBOUElkZW50aWZpZXIgbmFtZSk7Ci1ib29sIEphdmFOUE9i
amVjdEludm9rZShOUE9iamVjdCosIE5QSWRlbnRpZmllciBtZXRob2ROYW1lLCBjb25zdCBOUFZh
cmlhbnQqIGFyZ3MsIHVpbnQzMl90IGFyZ0NvdW50LCBOUFZhcmlhbnQqIHJlc3VsdCk7Ci1ib29s
IEphdmFOUE9iamVjdEhhc1Byb3BlcnR5KE5QT2JqZWN0KiwgTlBJZGVudGlmaWVyIG5hbWUpOwot
Ym9vbCBKYXZhTlBPYmplY3RHZXRQcm9wZXJ0eShOUE9iamVjdCosIE5QSWRlbnRpZmllciBuYW1l
LCBOUFZhcmlhbnQqIHJlc3VsdCk7Ci0KLX0gLy8gbmFtZXNwYWNlIEJpbmRpbmdzCi0KLX0gLy8g
bmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFfQlJJREdFKQotCi0jZW5kaWYg
Ly8gSmF2YU5QT2JqZWN0VjhfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2pu
aS92OC9KYXZhVmFsdWVWOC5oIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL2puaS92OC9KYXZhVmFs
dWVWOC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzZTFjNjIzYzE3ZjIxNzUzNTJl
MjE0NTM0ZDQwZWY5YmI2Mjg3MTQ4Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qbmkvdjgvSmF2YVZhbHVlVjguaAor
KysgL2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgMjAxMSwgVGhl
IEFuZHJvaWQgT3BlbiBTb3VyY2UgUHJvamVjdAotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBPV05FUiBPUgotICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
Ci0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgSmF2YVZhbHVlVjhf
aAotI2RlZmluZSBKYXZhVmFsdWVWOF9oCi0KLSNpZiBFTkFCTEUoSkFWQV9CUklER0UpCi0KLSNp
bmNsdWRlICJKYXZhVHlwZS5oIgotCi0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+Ci0K
LW5hbWVzcGFjZSBKU0MgewotCi1uYW1lc3BhY2UgQmluZGluZ3MgewotCi1jbGFzcyBKYXZhSW5z
dGFuY2U7Ci0KLS8vIEEgdmFyaWFudCB1c2VkIHRvIHJlcHJlc2VudCBhIEphdmEgdmFsdWUsIGFs
bW9zdCBpZGVudGljYWwgdG8gdGhlIEpOSQotLy8ganZhbHVlIHR5cGUuIEl0IGV4aXN0cyBiZWNh
dXNlIHRoZSBsb2dpYyB0byBjb252ZXJ0IGJldHdlZW4gSmF2YVNjcmlwdAotLy8gb2JqZWN0cyAo
YXMgSmF2YU5QT2JqZWN0IG9yIEpTVmFsdWUpIGFuZCBKYXZhIG9iamVjdHMgc2hvdWxkIG5vdCBk
ZXBlbmQgdXBvbgotLy8gSk5JLCB0byBhbGxvdyBwb3J0cyB0byBwcm92aWRlIGEgSmF2YUluc3Rh
bmNlIG9iamVjdCBldGMgd2hpY2ggZG9lcyBub3QgdXNlCi0vLyBKTkkuIFRoaXMgbWVhbnMgdGhh
dCB0aGUgJ29iamVjdCcgZmllbGQgb2YgdGhpcyB2YXJpYW50IHVzZXMgSmF2YUluc3RhbmNlLAot
Ly8gbm90IGpvYmplY3QuCi0vLwotLy8gTm90ZSB0aGF0IHRoaXMgY2xhc3MgaXMgaW5kZXBlbmRl
bnQgb2YgdGhlIEphdmFTY3JpcHQgZW5naW5lLCBidXQgaXMKLS8vIGN1cnJlbnRseSB1c2VkIG9u
bHkgd2l0aCBWOC4KLS8vIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTcwMjMuCi1zdHJ1Y3QgSmF2YVZhbHVlIHsKLSAgICBKYXZhVmFsdWUoKSA6IG1fdHlwZShK
YXZhVHlwZUludmFsaWQpIHt9Ci0KLSAgICBKYXZhVHlwZSBtX3R5cGU7Ci0gICAgLy8gV2UgZG9u
J3QgdXNlIGEgdW5pb24gYmVjYXVzZSB3ZSB3YW50IHRvIGJlIGFibGUgdG8gcmVmLWNvdW50IHNv
bWUgb2YgdGhlCi0gICAgLy8gdmFsdWVzLiBUaGlzIHJlcXVpcmVzIHR5cGVzIHdpdGggbm9uLXRy
aXZpYWwgY29uc3RydWN0b3JzLgotICAgIFJlZlB0cjxKYXZhSW5zdGFuY2U+IG1fb2JqZWN0VmFs
dWU7Ci0gICAgYm9vbCBtX2Jvb2xlYW5WYWx1ZTsKLSAgICBzaWduZWQgY2hhciBtX2J5dGVWYWx1
ZTsKLSAgICB1bnNpZ25lZCBzaG9ydCBtX2NoYXJWYWx1ZTsKLSAgICBzaG9ydCBtX3Nob3J0VmFs
dWU7Ci0gICAgaW50IG1faW50VmFsdWU7Ci0gICAgbG9uZyBsb25nIG1fbG9uZ1ZhbHVlOwotICAg
IGZsb2F0IG1fZmxvYXRWYWx1ZTsKLSAgICBkb3VibGUgbV9kb3VibGVWYWx1ZTsKLSAgICBTdHJp
bmcgbV9zdHJpbmdWYWx1ZTsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIEJpbmRpbmdzCi0KLX0gLy8g
bmFtZXNwYWNlIEpTQwotCi0jZW5kaWYgLy8gRU5BQkxFKEpBVkFfQlJJREdFKQotCi0jZW5kaWYg
Ly8gSmF2YVZhbHVlVjhfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL2pzYy9C
cmlkZ2VKU0MuaCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9qc2MvQnJpZGdlSlNDLmgKaW5kZXgg
OTVhMzk3M2QxNDMxZDdmYTA0YmQwYmRmMDMxYTYxZWQwMDdlMTA1OS4uYTlmMmJhZWQwZDk5ODJj
MjE2NjJhNjRmNDk5ZTIwNzk2NDBjNWE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL2pzYy9CcmlkZ2VKU0MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvanNjL0JyaWRn
ZUpTQy5oCkBAIC0yNyw4ICsyNyw2IEBACiAjaWZuZGVmIEJyaWRnZUpTQ19oCiAjZGVmaW5lIEJy
aWRnZUpTQ19oCiAKLSNpZiBVU0UoSlNDKQotCiAjaW5jbHVkZSAiQnJpZGdlLmgiCiAjaW5jbHVk
ZSA8cnVudGltZS9KU1N0cmluZy5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC0xNTEs
NiArMTQ5LDQgQEAgdHlwZWRlZiBIYXNoTWFwPFJlZlB0cjxTdHJpbmdJbXBsPiwgRmllbGQqPiBG
aWVsZE1hcDsKIAogfSAvLyBuYW1lc3BhY2UgSlNDCiAKLSNlbmRpZiAvLyBVU0UoSlNDKQotCiAj
ZW5kaWYK
</data>

          </attachment>
      

    </bug>

</bugzilla>