<?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>185914</bug_id>
          
          <creation_ts>2018-05-23 07:40:33 -0700</creation_ts>
          <short_desc>Speed up JetStream/base64</short_desc>
          <delta_ts>2018-05-23 15:46:19 -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>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>msaboff</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1426568</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-23 07:40:33 -0700</bug_when>
    <thetext>While profiling base64, I found that:

- It really wanted allocation paths to be inline in C++ code.
- Rope string resolution was spending a lot of time calling Vector&lt;&gt;::append because it wasn&apos;t inlined.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426570</commentid>
    <comment_count>1</comment_count>
      <attachid>341091</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-23 07:42:03 -0700</bug_when>
    <thetext>Created attachment 341091
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426572</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-23 07:45:09 -0700</bug_when>
    <thetext>Attachment 341091 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSCellInlines.h:29:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426684</commentid>
    <comment_count>3</comment_count>
      <attachid>341116</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-23 12:27:43 -0700</bug_when>
    <thetext>Created attachment 341116
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426686</commentid>
    <comment_count>4</comment_count>
      <attachid>341116</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2018-05-23 12:29:40 -0700</bug_when>
    <thetext>Comment on attachment 341116
the patch

r=me
Nice!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426687</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-23 12:30:33 -0700</bug_when>
    <thetext>Attachment 341116 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSCellInlines.h:29:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426721</commentid>
    <comment_count>6</comment_count>
      <attachid>341125</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-23 13:44:42 -0700</bug_when>
    <thetext>Created attachment 341125
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426722</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-23 13:47:01 -0700</bug_when>
    <thetext>Attachment 341125 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSCellInlines.h:29:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426726</commentid>
    <comment_count>8</comment_count>
      <attachid>341127</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-23 14:05:35 -0700</bug_when>
    <thetext>Created attachment 341127
patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426730</commentid>
    <comment_count>9</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-05-23 14:07:15 -0700</bug_when>
    <thetext>Attachment 341127 did not pass style-queue:


ERROR: Source/JavaScriptCore/runtime/JSCellInlines.h:29:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426753</commentid>
    <comment_count>10</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2018-05-23 15:34:34 -0700</bug_when>
    <thetext>Landed in https://trac.webkit.org/changeset/232132/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1426755</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-23 15:46:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/40501797&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341091</attachid>
            <date>2018-05-23 07:42:03 -0700</date>
            <delta_ts>2018-05-23 12:27:43 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>20746</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMyMTA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDE4LTA1LTIzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U3BlZWQgdXAgSmV0U3RyZWFtL2Jhc2U2NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg1OTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisgICAgICAgIAorICAgICAgICBNYWtlIGFsbG9jYXRpb24gZmFzdCBwYXRocyBBTFdB
WVNfSU5MSU5FLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhIDElIHNwZWVkLXVwIG9uIFN1
blNwaWRlciwgbW9zdGx5IGJlY2F1c2Ugb2YgYmFzZTY0LiBJdCBhbHNvIHNwZWVkcyB1cCBwZGZq
cyBieQorICAgICAgICB+NiUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhl
YXAvQWxsb2NhdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpBbGxvY2F0b3I6OmFsbG9jYXRl
IGNvbnN0KToKKyAgICAgICAgKiBoZWFwL0NvbXBsZXRlU3Vic3BhY2UuY3BwOgorICAgICAgICAo
SlNDOjpDb21wbGV0ZVN1YnNwYWNlOjphbGxvY2F0ZU5vblZpcnR1YWwpOiBEZWxldGVkLgorICAg
ICAgICAqIGhlYXAvQ29tcGxldGVTdWJzcGFjZS5oOgorICAgICAgICAqIGhlYXAvQ29tcGxldGVT
dWJzcGFjZUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkNvbXBsZXRlU3Vic3BhY2U6
OmFsbG9jYXRlTm9uVmlydHVhbCk6CisgICAgICAgICogaGVhcC9GcmVlTGlzdElubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6RnJlZUxpc3Q6OmFsbG9jYXRlKToKKyAgICAgICAgKiBoZWFwL0lzb1N1
YnNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6SXNvU3Vic3BhY2U6OmFsbG9jYXRlTm9uVmlydHVh
bCk6IERlbGV0ZWQuCisgICAgICAgICogaGVhcC9Jc29TdWJzcGFjZS5oOgorICAgICAgICAoSlND
OjpJc29TdWJzcGFjZTo6YWxsb2NhdG9yRm9yTm9uVmlydHVhbCk6CisgICAgICAgICogaGVhcC9J
c29TdWJzcGFjZUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6Oklzb1N1YnNwYWNlOjph
bGxvY2F0ZU5vblZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOgor
ICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKwogMjAxOC0wNS0yMiAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBDbGVhbiB1cCBzdHJpbmdHZXRC
eVZhbFN0dWJHZW5lcmF0b3IKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtNTAwLDYgKzUwMCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUEKICAgICBoZWFwL0NvbGxlY3Rpb25TY29wZS5oCiAgICAgaGVh
cC9Db2xsZWN0b3JQaGFzZS5oCiAgICAgaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmgKKyAgICBoZWFw
L0NvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmgKICAgICBoZWFwL0NvbnN0cmFpbnRDb25jdXJyZW5j
eS5oCiAgICAgaGVhcC9Db25zdHJhaW50UGFyYWxsZWxpc20uaAogICAgIGhlYXAvQ29uc3RyYWlu
dFZvbGF0aWxpdHkuaApAQCAtNTMzLDYgKzUzNCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9QUklW
QVRFX0ZSQU1FV09SS19IRUEKICAgICBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCiAgICAgaGVh
cC9Jc29DZWxsU2V0LmgKICAgICBoZWFwL0lzb1N1YnNwYWNlLmgKKyAgICBoZWFwL0lzb1N1YnNw
YWNlSW5saW5lcy5oCiAgICAgaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgKICAgICBoZWFwL0xhcmdl
QWxsb2NhdGlvbi5oCiAgICAgaGVhcC9MaXN0YWJsZUhhbmRsZXIuaApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC01NDYsNiArNTQ2LDggQEAKIAkJMEZEMEU1RjAxRTQ2QkYyNTAwMDZBQjA4IC8qIFJl
Z2lzdGVyU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRDBFNUVGMUU0NkJGMjMwMDA2QUIwOCAvKiBSZWdpc3RlclN0YXRlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZEMEU1RjIxRTQ2QzhB
RjAwMDZBQjA4IC8qIENvbGxlY3RpbmdTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEMEU1RjExRTQ2QzhBRDAwMDZBQjA4IC8qIENvbGxlY3Rp
bmdTY29wZS5oICovOyB9OwogCQkwRkQyQzkyNDE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJl
SW5saW5lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZEMkM5MjMxNkQwMUVFOTAwQzc4MDNGIC8qIFN0cnVjdHVyZUlubGluZXMuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkQyRkQ5NDIwQjUyQkRF
MDBGMDk0NDEgLyogQ29tcGxldGVTdWJzcGFjZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDJGRDkzMjBCNTJCREQwMEYwOTQ0MSAvKiBD
b21wbGV0ZVN1YnNwYWNlSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CisJCTBGRDJGRDk1MjBCNTJCRTIwMEYwOTQ0MSAvKiBJc29TdWJzcGFj
ZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDBGRDJGRDkyMjBCNTJCREMwMEYwOTQ0MSAvKiBJc29TdWJzcGFjZUlubGluZXMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkQzQzgyODE0MTE1
RDRGMDBGRDgxQ0IgLyogREZHRHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkQzQzgyMjE0MTE1RDBFMDBGRDgxQ0IgLyogREZHRHJpdmVyLmgg
Ki87IH07CiAJCTBGRDNFNDAyMUI2MThBQUYwMEM4MEUxRSAvKiBERkdBZGFwdGl2ZUluZmVycmVk
UHJvcGVydHlWYWx1ZVdhdGNocG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGRDNFNDAwMUI2MThBQUYwMEM4MEUxRSAvKiBERkdBZGFwdGl2ZUlu
ZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnQuaCAqLzsgfTsKIAkJMEZEM0U0MEExQjYxOEI2
NjAwQzgwRTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQzRTQwNDFCNjE4QjY2MDBDODBFMUUgLyog
T2JqZWN0UHJvcGVydHlDb25kaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtMjcwNSw2ICsyNzA3LDggQEAKIAkJMEZEMEU1RUYxRTQ2QkYy
MzAwMDZBQjA4IC8qIFJlZ2lzdGVyU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gUmVnaXN0ZXJTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQw
RTVGMTFFNDZDOEFEMDAwNkFCMDggLyogQ29sbGVjdGluZ1Njb3BlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IENvbGxlY3RpbmdTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRkQyQzkyMzE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVJbmxpbmVzLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRDJGRDkyMjBCNTJCREMwMEYwOTQ0MSAvKiBJ
c29TdWJzcGFjZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSXNv
U3Vic3BhY2VJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRDJGRDkz
MjBCNTJCREQwMEYwOTQ0MSAvKiBDb21wbGV0ZVN1YnNwYWNlSW5saW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBDb21wbGV0ZVN1YnNwYWNlSW5saW5lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQzQzgyMDE0MTE1Q0Y4MDBGRDgxQ0IgLyogREZHRHJp
dmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0RyaXZlci5j
cHA7IHBhdGggPSBkZmcvREZHRHJpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMEZEM0M4MjIxNDExNUQwRTAwRkQ4MUNCIC8qIERGR0RyaXZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBERkdEcml2ZXIuaDsgcGF0aCA9IGRmZy9ERkdEcml2ZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZEM0UzRkYxQjYxOEFBRjAwQzgwRTFFIC8q
IERGR0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBERkdBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlW
YWx1ZVdhdGNocG9pbnQuY3BwOyBwYXRoID0gZGZnL0RGR0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0
eVZhbHVlV2F0Y2hwb2ludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NjM1
LDYgKzU2MzksNyBAQAogCQkJCTBGRDBFNUU2MUU0M0QzNDcwMDA2QUIwOCAvKiBDb2xsZWN0b3JQ
aGFzZS5oICovLAogCQkJCTBGRENFMTI3MUZBRkE4NTkwMDZGMzkwMSAvKiBDb21wbGV0ZVN1YnNw
YWNlLmNwcCAqLywKIAkJCQkwRkRDRTEyODFGQUZBODU5MDA2RjM5MDEgLyogQ29tcGxldGVTdWJz
cGFjZS5oICovLAorCQkJCTBGRDJGRDkzMjBCNTJCREQwMEYwOTQ0MSAvKiBDb21wbGV0ZVN1YnNw
YWNlSW5saW5lcy5oICovLAogCQkJCTE0NkIxNERCMTJFQjVCMTIwMDFCRUMxQiAvKiBDb25zZXJ2
YXRpdmVSb290cy5jcHAgKi8sCiAJCQkJMTQ5REFBRjIxMkVCNTU5RDAwODNCMTJCIC8qIENvbnNl
cnZhdGl2ZVJvb3RzLmggKi8sCiAJCQkJMEY0MTU0NUExRkQyMEIxRjAwMUI1OEY2IC8qIENvbnN0
cmFpbnRDb25jdXJyZW5jeS5oICovLApAQCAtNTcxMCw2ICs1NzE1LDcgQEAKIAkJCQkwRkI0Njc3
QjFGRERBNkQ4MDAzRkNCMDkgLyogSXNvQ2VsbFNldElubGluZXMuaCAqLywKIAkJCQkwRkRDRTEy
QzFGQUZCNERFMDA2RjM5MDEgLyogSXNvU3Vic3BhY2UuY3BwICovLAogCQkJCTBGRENFMTJCMUZB
RkI0REUwMDZGMzkwMSAvKiBJc29TdWJzcGFjZS5oICovLAorCQkJCTBGRDJGRDkyMjBCNTJCREMw
MEYwOTQ0MSAvKiBJc29TdWJzcGFjZUlubGluZXMuaCAqLywKIAkJCQkwRjVFMEZFNjIwODZBRDQ3
MDA5N0YwREUgLyogSXNvU3Vic3BhY2VQZXJWTS5jcHAgKi8sCiAJCQkJMEY1RTBGRTUyMDg2QUQ0
NjAwOTdGMERFIC8qIElzb1N1YnNwYWNlUGVyVk0uaCAqLywKIAkJCQkwRjc2NkQyOTE1QThDQzM0
MDA4RjM2M0UgLyogSklUU3R1YlJvdXRpbmVTZXQuY3BwICovLApAQCAtODMxNSw2ICs4MzIxLDcg
QEAKIAkJCQkwRjRDOTE2NjFDMjlGNEYyMDA0MzQxQTYgLyogQjNPcmlnaW5EdW1wLmggaW4gSGVh
ZGVycyAqLywKIAkJCQkwRkVDODUyNjFCREFDREFDMDA4MEZGNzQgLyogQjNQYXRjaHBvaW50U3Bl
Y2lhbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MjgxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
UGF0Y2hwb2ludFZhbHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQyRkQ5NTIwQjUyQkUyMDBG
MDk0NDEgLyogSXNvU3Vic3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OTlFRjdD
NDFDNTZFRDk2MDAyQjA1MzQgLyogQjNQQ1RvT3JpZ2luTWFwLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkVDODUyQTFCREFDREFDMDA4MEZGNzQgLyogQjNQaGFzZVNjb3BlLmggaW4gSGVhZGVycyAq
LywKIAkJCQkwRjM3MzA4RDFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5oIGluIEhl
YWRlcnMgKi8sCkBAIC04OTQ5LDYgKzg5NTYsNyBAQAogCQkJCUJDMThDNDE0MEUxNkY1Q0QwMEIz
NDQ2MCAvKiBKYXZhU2NyaXB0Q29yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MTUwRTE2
RjVDRDAwQjM0NDYwIC8qIEphdmFTY3JpcHRDb3JlUHJlZml4LmggaW4gSGVhZGVycyAqLywKIAkJ
CQkxNDI5RDkzMDBFRDIyRDcwMDBCODk2MTkgLyogSklULmggaW4gSGVhZGVycyAqLywKKwkJCQkw
RkQyRkQ5NDIwQjUyQkRFMDBGMDk0NDEgLyogQ29tcGxldGVTdWJzcGFjZUlubGluZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZFMTIyMDI3MUJFN0Y1OEMwMDM5RTZGMiAvKiBKSVRBZGRHZW5lcmF0
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGNzVBMDY2MjAxM0U0RjEwMDM4RTJDRiAvKiBKSVRB
bGxvY2F0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFM0EwNkIyMUMxMENCODkwMDM5MEZERCAv
KiBKSVRCaXRBbmRHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvQWxsb2NhdG9ySW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0FsbG9jYXRvcklubGluZXMuaAkocmV2aXNpb24gMjMyMTA0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQWxsb2NhdG9ySW5saW5lcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1pbmxpbmUgdm9p
ZCogQWxsb2NhdG9yOjphbGxvY2F0ZShHQ0RlZmVycmFsQ29udGV4dCogY29udGV4dCwgQWxsb2Nh
dGlvbkZhaWx1cmVNb2RlIG1vZGUpIGNvbnN0CitBTFdBWVNfSU5MSU5FIHZvaWQqIEFsbG9jYXRv
cjo6YWxsb2NhdGUoR0NEZWZlcnJhbENvbnRleHQqIGNvbnRleHQsIEFsbG9jYXRpb25GYWlsdXJl
TW9kZSBtb2RlKSBjb25zdAogewogICAgIHJldHVybiBtX2xvY2FsQWxsb2NhdG9yLT5hbGxvY2F0
ZShjb250ZXh0LCBtb2RlKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
bXBsZXRlU3Vic3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvbXBsZXRlU3Vic3BhY2UuY3BwCShyZXZpc2lvbiAyMzIxMDQpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NTcsMTMgKzU3LDYgQEAgdm9pZCogQ29tcGxldGVTdWJzcGFjZTo6YWxsb2NhdGUoVk0mIHZtLAog
ICAgIHJldHVybiBhbGxvY2F0ZU5vblZpcnR1YWwodm0sIHNpemUsIGRlZmVycmFsQ29udGV4dCwg
ZmFpbHVyZU1vZGUpOwogfQogCi12b2lkKiBDb21wbGV0ZVN1YnNwYWNlOjphbGxvY2F0ZU5vblZp
cnR1YWwoVk0mIHZtLCBzaXplX3Qgc2l6ZSwgR0NEZWZlcnJhbENvbnRleHQqIGRlZmVycmFsQ29u
dGV4dCwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlIGZhaWx1cmVNb2RlKQotewotICAgIGlmIChBbGxv
Y2F0b3IgYWxsb2NhdG9yID0gYWxsb2NhdG9yRm9yTm9uVmlydHVhbChzaXplLCBBbGxvY2F0b3JG
b3JNb2RlOjpBbGxvY2F0b3JJZkV4aXN0cykpCi0gICAgICAgIHJldHVybiBhbGxvY2F0b3IuYWxs
b2NhdGUoZGVmZXJyYWxDb250ZXh0LCBmYWlsdXJlTW9kZSk7Ci0gICAgcmV0dXJuIGFsbG9jYXRl
U2xvdyh2bSwgc2l6ZSwgZGVmZXJyYWxDb250ZXh0LCBmYWlsdXJlTW9kZSk7Ci19Ci0KIEFsbG9j
YXRvciBDb21wbGV0ZVN1YnNwYWNlOjphbGxvY2F0b3JGb3JTbG93KHNpemVfdCBzaXplKQogewog
ICAgIHNpemVfdCBpbmRleCA9IE1hcmtlZFNwYWNlOjpzaXplQ2xhc3NUb0luZGV4KHNpemUpOwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFjZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2UuaAko
cmV2aXNpb24gMjMyMTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVT
dWJzcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00Myw3ICs0Myw3IEBAIHB1YmxpYzoKICAgICBB
bGxvY2F0b3IgYWxsb2NhdG9yRm9yTm9uVmlydHVhbChzaXplX3QsIEFsbG9jYXRvckZvck1vZGUp
OwogICAgIAogICAgIHZvaWQqIGFsbG9jYXRlKFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4
dCosIEFsbG9jYXRpb25GYWlsdXJlTW9kZSkgb3ZlcnJpZGU7Ci0gICAgSlNfRVhQT1JUX1BSSVZB
VEUgdm9pZCogYWxsb2NhdGVOb25WaXJ0dWFsKFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4
dCosIEFsbG9jYXRpb25GYWlsdXJlTW9kZSk7CisgICAgdm9pZCogYWxsb2NhdGVOb25WaXJ0dWFs
KFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4dCosIEFsbG9jYXRpb25GYWlsdXJlTW9kZSk7
CiAgICAgCiAgICAgc3RhdGljIHB0cmRpZmZfdCBvZmZzZXRPZkFsbG9jYXRvckZvclNpemVTdGVw
KCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9GKENvbXBsZXRlU3Vic3BhY2UsIG1fYWxsb2NhdG9y
Rm9yU2l6ZVN0ZXApOyB9CiAgICAgCkBAIC01Myw3ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgQWxs
b2NhdG9yIGFsbG9jYXRvckZvclNsb3coc2l6ZV90KTsKICAgICAKICAgICAvLyBUaGVzZSBzbG93
IHBhdGhzIGFyZSBjb25jZXJuZWQgd2l0aCBsYXJnZSBhbGxvY2F0aW9ucyBhbmQgYWxsb2NhdG9y
IGNyZWF0aW9uLgotICAgIHZvaWQqIGFsbG9jYXRlU2xvdyhWTSYsIHNpemVfdCwgR0NEZWZlcnJh
bENvbnRleHQqLCBBbGxvY2F0aW9uRmFpbHVyZU1vZGUpOworICAgIEpTX0VYUE9SVF9QUklWQVRF
IHZvaWQqIGFsbG9jYXRlU2xvdyhWTSYsIHNpemVfdCwgR0NEZWZlcnJhbENvbnRleHQqLCBBbGxv
Y2F0aW9uRmFpbHVyZU1vZGUpOwogICAgIHZvaWQqIHRyeUFsbG9jYXRlU2xvdyhWTSYsIHNpemVf
dCwgR0NEZWZlcnJhbENvbnRleHQqKTsKICAgICAKICAgICBzdGQ6OmFycmF5PEFsbG9jYXRvciwg
TWFya2VkU3BhY2U6Om51bVNpemVDbGFzc2VzPiBtX2FsbG9jYXRvckZvclNpemVTdGVwOwpJbmRl
eDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFjZUlubGluZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNl
SW5saW5lcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0Nv
bXBsZXRlU3Vic3BhY2VJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzOCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9u
Y2UKKworbmFtZXNwYWNlIEpTQyB7CisKK0FMV0FZU19JTkxJTkUgdm9pZCogQ29tcGxldGVTdWJz
cGFjZTo6YWxsb2NhdGVOb25WaXJ0dWFsKFZNJiB2bSwgc2l6ZV90IHNpemUsIEdDRGVmZXJyYWxD
b250ZXh0KiBkZWZlcnJhbENvbnRleHQsIEFsbG9jYXRpb25GYWlsdXJlTW9kZSBmYWlsdXJlTW9k
ZSkKK3sKKyAgICBpZiAoQWxsb2NhdG9yIGFsbG9jYXRvciA9IGFsbG9jYXRvckZvck5vblZpcnR1
YWwoc2l6ZSwgQWxsb2NhdG9yRm9yTW9kZTo6QWxsb2NhdG9ySWZFeGlzdHMpKQorICAgICAgICBy
ZXR1cm4gYWxsb2NhdG9yLmFsbG9jYXRlKGRlZmVycmFsQ29udGV4dCwgZmFpbHVyZU1vZGUpOwor
ICAgIHJldHVybiBhbGxvY2F0ZVNsb3codm0sIHNpemUsIGRlZmVycmFsQ29udGV4dCwgZmFpbHVy
ZU1vZGUpOworfQorCit9IC8vIG5hbWVzcGFjZSBKU0MKKwpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2hlYXAvRnJlZUxpc3RJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvRnJlZUxpc3RJbmxpbmVzLmgJKHJldmlzaW9uIDIzMjEwNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0ZyZWVMaXN0SW5saW5lcy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zMSw3ICszMSw3IEBACiBuYW1lc3BhY2UgSlNDIHsKIAogdGVtcGxhdGU8dHlwZW5hbWUg
RnVuYz4KLUhlYXBDZWxsKiBGcmVlTGlzdDo6YWxsb2NhdGUoY29uc3QgRnVuYyYgc2xvd1BhdGgp
CitBTFdBWVNfSU5MSU5FIEhlYXBDZWxsKiBGcmVlTGlzdDo6YWxsb2NhdGUoY29uc3QgRnVuYyYg
c2xvd1BhdGgpCiB7CiAgICAgdW5zaWduZWQgcmVtYWluaW5nID0gbV9yZW1haW5pbmc7CiAgICAg
aWYgKHJlbWFpbmluZykgewpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vi
c3BhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1
YnNwYWNlLmNwcAkocmV2aXNpb24gMjMyMTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSXNvU3Vic3BhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MywxNCArNjMsNiBAQCB2b2lk
KiBJc29TdWJzcGFjZTo6YWxsb2NhdGUoVk0mIHZtLCBzaXplCiAgICAgcmV0dXJuIGFsbG9jYXRl
Tm9uVmlydHVhbCh2bSwgc2l6ZSwgZGVmZXJyYWxDb250ZXh0LCBmYWlsdXJlTW9kZSk7CiB9CiAK
LXZvaWQqIElzb1N1YnNwYWNlOjphbGxvY2F0ZU5vblZpcnR1YWwoVk0mLCBzaXplX3Qgc2l6ZSwg
R0NEZWZlcnJhbENvbnRleHQqIGRlZmVycmFsQ29udGV4dCwgQWxsb2NhdGlvbkZhaWx1cmVNb2Rl
IGZhaWx1cmVNb2RlKQotewotICAgIFJFTEVBU0VfQVNTRVJUKHNpemUgPT0gdGhpcy0+c2l6ZSgp
KTsKLSAgICBBbGxvY2F0b3IgYWxsb2NhdG9yID0gYWxsb2NhdG9yRm9yTm9uVmlydHVhbChzaXpl
LCBBbGxvY2F0b3JGb3JNb2RlOjpNdXN0QWxyZWFkeUhhdmVBbGxvY2F0b3IpOwotICAgIHZvaWQq
IHJlc3VsdCA9IGFsbG9jYXRvci5hbGxvY2F0ZShkZWZlcnJhbENvbnRleHQsIGZhaWx1cmVNb2Rl
KTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCiB2b2lkIElzb1N1YnNwYWNlOjpkaWRSZXNpemVC
aXRzKHNpemVfdCBibG9ja0luZGV4KQogewogICAgIG1fY2VsbFNldHMuZm9yRWFjaCgKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuaAkocmV2aXNpb24gMjMyMTA0
KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuaAkod29ya2luZyBj
b3B5KQpAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiAgICAgQWxsb2NhdG9yIGFsbG9jYXRvckZv
ck5vblZpcnR1YWwoc2l6ZV90LCBBbGxvY2F0b3JGb3JNb2RlKTsKIAogICAgIHZvaWQqIGFsbG9j
YXRlKFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4dCosIEFsbG9jYXRpb25GYWlsdXJlTW9k
ZSkgb3ZlcnJpZGU7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCogYWxsb2NhdGVOb25WaXJ0
dWFsKFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4dCosIEFsbG9jYXRpb25GYWlsdXJlTW9k
ZSk7CisgICAgdm9pZCogYWxsb2NhdGVOb25WaXJ0dWFsKFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFs
Q29udGV4dCosIEFsbG9jYXRpb25GYWlsdXJlTW9kZSk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5k
IGNsYXNzIElzb0NlbGxTZXQ7CkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgU2VudGlu
ZWxMaW5rZWRMaXN0PElzb0NlbGxTZXQsIEJhc2ljUmF3U2VudGluZWxOb2RlPElzb0NlbGxTZXQ+
PiBtX2NlbGxTZXRzOwogfTsKIAotaW5saW5lIEFsbG9jYXRvciBJc29TdWJzcGFjZTo6YWxsb2Nh
dG9yRm9yTm9uVmlydHVhbChzaXplX3Qgc2l6ZSwgQWxsb2NhdG9yRm9yTW9kZSkKK0FMV0FZU19J
TkxJTkUgQWxsb2NhdG9yIElzb1N1YnNwYWNlOjphbGxvY2F0b3JGb3JOb25WaXJ0dWFsKHNpemVf
dCBzaXplLCBBbGxvY2F0b3JGb3JNb2RlKQogewogICAgIFJFTEVBU0VfQVNTRVJUKHNpemUgPT0g
dGhpcy0+c2l6ZSgpKTsKICAgICByZXR1cm4gQWxsb2NhdG9yKCZtX2xvY2FsQWxsb2NhdG9yKTsK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlSW5saW5lcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlSW5saW5l
cy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNw
YWNlSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVz
cGFjZSBKU0MgeworCitBTFdBWVNfSU5MSU5FIHZvaWQqIElzb1N1YnNwYWNlOjphbGxvY2F0ZU5v
blZpcnR1YWwoVk0mLCBzaXplX3Qgc2l6ZSwgR0NEZWZlcnJhbENvbnRleHQqIGRlZmVycmFsQ29u
dGV4dCwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlIGZhaWx1cmVNb2RlKQoreworICAgIFJFTEVBU0Vf
QVNTRVJUKHNpemUgPT0gdGhpcy0+c2l6ZSgpKTsKKyAgICBBbGxvY2F0b3IgYWxsb2NhdG9yID0g
YWxsb2NhdG9yRm9yTm9uVmlydHVhbChzaXplLCBBbGxvY2F0b3JGb3JNb2RlOjpNdXN0QWxyZWFk
eUhhdmVBbGxvY2F0b3IpOworICAgIHZvaWQqIHJlc3VsdCA9IGFsbG9jYXRvci5hbGxvY2F0ZShk
ZWZlcnJhbENvbnRleHQsIGZhaWx1cmVNb2RlKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCit9
IC8vIG5hbWVzcGFjZSBKU0MKKwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
SlNDZWxsSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTQ2VsbElubGluZXMuaAkocmV2aXNpb24gMjMyMTA0KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNSwxNCAr
MjUsMTkgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJBbGxvY2F0b3JJbmxpbmVzLmgi
CisjaW5jbHVkZSAiQ29tcGxldGVTdWJzcGFjZUlubGluZXMuaCIKICNpbmNsdWRlICJDUFUuaCIK
ICNpbmNsdWRlICJDYWxsRnJhbWUuaCIKICNpbmNsdWRlICJEZWZlckdDLmgiCisjaW5jbHVkZSAi
RnJlZUxpc3RJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSGFuZGxlLmgiCisjaW5jbHVkZSAiSXNvU3Vi
c3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiSlNDYXN0LmgiCiAjaW5jbHVkZSAiSlNEZXN0cnVj
dGlibGVPYmplY3QuaCIKICNpbmNsdWRlICJKU09iamVjdC5oIgogI2luY2x1ZGUgIkpTU3RyaW5n
LmgiCisjaW5jbHVkZSAiTG9jYWxBbGxvY2F0b3JJbmxpbmVzLmgiCiAjaW5jbHVkZSAiTWFya2Vk
QmxvY2suaCIKICNpbmNsdWRlICJTdHJ1Y3R1cmUuaCIKICNpbmNsdWRlICJTeW1ib2wuaCIKSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkocmV2aXNpb24gMjMyMTA0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkod29ya2luZyBjb3B5KQpAQCAtOTUwLDcg
Kzk1MCw3IEBAIGlubGluZSBIZWFwKiBXZWFrU2V0OjpoZWFwKCkgY29uc3QKIGV4dGVybiAiQyIg
dm9pZCBzYW5pdGl6ZVN0YWNrRm9yVk1JbXBsKFZNKik7CiAjZW5kaWYKIAotdm9pZCBzYW5pdGl6
ZVN0YWNrRm9yVk0oVk0qKTsKK0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2FuaXRpemVTdGFja0Zv
clZNKFZNKik7CiB2b2lkIGxvZ1Nhbml0aXplU3RhY2soVk0qKTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L0NoYW5nZUxvZwkocmV2aXNpb24gMjMyMTA0KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0wNS0yMyAgRmlsaXAgUGl6bG8gIDxm
cGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFNwZWVkIHVwIEpldFN0cmVhbS9iYXNlNjQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTkxNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAgTWFr
ZSBWZWN0b3I8Pjo6YXBwZW5kIEFMV0FZU19JTkxJTkUuCisKKyAgICAgICAgKiB3dGYvVmVjdG9y
Lmg6CisgICAgICAgIChXVEY6OlZlY3Rvcjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6bWluQ2Fw
YWNpdHk+OjpleHBhbmRDYXBhY2l0eSk6CisgICAgICAgIChXVEY6Om1pbkNhcGFjaXR5Pjo6YXBw
ZW5kKToKKyAgICAgICAgKFdURjo6bWluQ2FwYWNpdHk+Ojp0cnlBcHBlbmQpOgorCiAyMDE4LTA1
LTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmdJbXBs
IHV0ZjggY29udmVyc2lvbiBzaG91bGQgbm90IGZhaWwgc2lsZW50bHkuCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9WZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAko
cmV2aXNpb24gMjMyMTA0KQorKysgU291cmNlL1dURi93dGYvVmVjdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTc1OCw3ICs3NTgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsZWFyKCkgeyBzaHJp
bmtDYXBhY2l0eSgwKTsgfQogCi0gICAgdm9pZCBhcHBlbmQoVmFsdWVUeXBlJiYgdmFsdWUpIHsg
YXBwZW5kPFZhbHVlVHlwZT4oc3RkOjpmb3J3YXJkPFZhbHVlVHlwZT4odmFsdWUpKTsgfQorICAg
IEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmQoVmFsdWVUeXBlJiYgdmFsdWUpIHsgYXBwZW5kPFZh
bHVlVHlwZT4oc3RkOjpmb3J3YXJkPFZhbHVlVHlwZT4odmFsdWUpKTsgfQogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFU+IHZvaWQgYXBwZW5kKFUmJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4g
QXJncz4gdm9pZCBjb25zdHJ1Y3RBbmRBcHBlbmQoQXJncyYmLi4uKTsKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBBcmdzPiBib29sIHRyeUNvbnN0cnVjdEFuZEFwcGVuZChBcmdzJiYuLi4pOwpA
QCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJm
bG93SAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5
cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbkNhcGFjaXR5PgotVCogVmVjdG9yPFQs
IGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6ZXhwYW5kQ2Fw
YWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5LCBUKiBwdHIpCitORVZFUl9JTkxJTkUgVCogVmVj
dG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6ZXhw
YW5kQ2FwYWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5LCBUKiBwdHIpCiB7CiAgICAgaWYgKHB0
ciA8IGJlZ2luKCkgfHwgcHRyID49IGVuZCgpKSB7CiAgICAgICAgIGV4cGFuZENhcGFjaXR5KG5l
d01pbkNhcGFjaXR5KTsKQEAgLTEyNDQsNyArMTI0NCw3IEBAIHZvaWQgVmVjdG9yPFQsIGlubGlu
ZUNhcGFjaXR5LCBPdmVyZmxvd0gKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4K
IHRlbXBsYXRlPHR5cGVuYW1lIFU+Ci12b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3Zl
cmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT46OmFwcGVuZChjb25zdCBVKiBkYXRhLCBzaXplX3Qg
ZGF0YVNpemUpCitBTFdBWVNfSU5MSU5FIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBP
dmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6YXBwZW5kKGNvbnN0IFUqIGRhdGEsIHNpemVf
dCBkYXRhU2l6ZSkKIHsKICAgICBzaXplX3QgbmV3U2l6ZSA9IG1fc2l6ZSArIGRhdGFTaXplOwog
ICAgIGlmIChuZXdTaXplID4gY2FwYWNpdHkoKSkgewpAQCAtMTI2MSw3ICsxMjYxLDcgQEAgdm9p
ZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SAogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6
ZV90IG1pbkNhcGFjaXR5PgogdGVtcGxhdGU8dHlwZW5hbWUgVT4KLWJvb2wgVmVjdG9yPFQsIGlu
bGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6dHJ5QXBwZW5kKGNv
bnN0IFUqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSkKK0FMV0FZU19JTkxJTkUgYm9vbCBWZWN0b3I8
VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+Ojp0cnlBcHBl
bmQoY29uc3QgVSogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQogewogICAgIHNpemVfdCBuZXdTaXpl
ID0gbV9zaXplICsgZGF0YVNpemU7CiAgICAgaWYgKG5ld1NpemUgPiBjYXBhY2l0eSgpKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341116</attachid>
            <date>2018-05-23 12:27:43 -0700</date>
            <delta_ts>2018-05-23 13:44:42 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>22469</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMyMTA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDE4LTA1LTIzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U3BlZWQgdXAgSmV0U3RyZWFtL2Jhc2U2NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg1OTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisgICAgICAgIAorICAgICAgICBNYWtlIGFsbG9jYXRpb24gZmFzdCBwYXRocyBBTFdB
WVNfSU5MSU5FLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhIDElIHNwZWVkLXVwIG9uIFN1
blNwaWRlciwgbW9zdGx5IGJlY2F1c2Ugb2YgYmFzZTY0LiBJdCBhbHNvIHNwZWVkcyB1cCBwZGZq
cyBieQorICAgICAgICB+NiUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhl
YXAvQWxsb2NhdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpBbGxvY2F0b3I6OmFsbG9jYXRl
IGNvbnN0KToKKyAgICAgICAgKiBoZWFwL0NvbXBsZXRlU3Vic3BhY2UuY3BwOgorICAgICAgICAo
SlNDOjpDb21wbGV0ZVN1YnNwYWNlOjphbGxvY2F0ZU5vblZpcnR1YWwpOiBEZWxldGVkLgorICAg
ICAgICAqIGhlYXAvQ29tcGxldGVTdWJzcGFjZS5oOgorICAgICAgICAqIGhlYXAvQ29tcGxldGVT
dWJzcGFjZUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkNvbXBsZXRlU3Vic3BhY2U6
OmFsbG9jYXRlTm9uVmlydHVhbCk6CisgICAgICAgICogaGVhcC9GcmVlTGlzdElubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6RnJlZUxpc3Q6OmFsbG9jYXRlKToKKyAgICAgICAgKiBoZWFwL0lzb1N1
YnNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6SXNvU3Vic3BhY2U6OmFsbG9jYXRlTm9uVmlydHVh
bCk6IERlbGV0ZWQuCisgICAgICAgICogaGVhcC9Jc29TdWJzcGFjZS5oOgorICAgICAgICAoSlND
OjpJc29TdWJzcGFjZTo6YWxsb2NhdG9yRm9yTm9uVmlydHVhbCk6CisgICAgICAgICogaGVhcC9J
c29TdWJzcGFjZUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6Oklzb1N1YnNwYWNlOjph
bGxvY2F0ZU5vblZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOgor
ICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKwogMjAxOC0wNS0yMiAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBDbGVhbiB1cCBzdHJpbmdHZXRC
eVZhbFN0dWJHZW5lcmF0b3IKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtNDkwLDYgKzQ5MCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUEKICAgICBoZWFwL0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaAog
ICAgIGhlYXAvQWxsb2NhdGlvbkZhaWx1cmVNb2RlLmgKICAgICBoZWFwL0FsbG9jYXRvci5oCisg
ICAgaGVhcC9BbGxvY2F0b3JJbmxpbmVzLmgKICAgICBoZWFwL0FsbG9jYXRvckZvck1vZGUuaAog
ICAgIGhlYXAvQmxvY2tEaXJlY3RvcnkuaAogICAgIGhlYXAvQmxvY2tEaXJlY3RvcnlJbmxpbmVz
LmgKQEAgLTUwMCw2ICs1MDEsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBCiAgICAgaGVhcC9Db2xsZWN0aW9uU2NvcGUuaAogICAgIGhlYXAvQ29sbGVjdG9yUGhh
c2UuaAogICAgIGhlYXAvQ29tcGxldGVTdWJzcGFjZS5oCisgICAgaGVhcC9Db21wbGV0ZVN1YnNw
YWNlSW5saW5lcy5oCiAgICAgaGVhcC9Db25zdHJhaW50Q29uY3VycmVuY3kuaAogICAgIGhlYXAv
Q29uc3RyYWludFBhcmFsbGVsaXNtLmgKICAgICBoZWFwL0NvbnN0cmFpbnRWb2xhdGlsaXR5LmgK
QEAgLTUzMyw2ICs1MzUsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdPUktf
SEVBCiAgICAgaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaAogICAgIGhlYXAvSXNvQ2VsbFNldC5o
CiAgICAgaGVhcC9Jc29TdWJzcGFjZS5oCisgICAgaGVhcC9Jc29TdWJzcGFjZUlubGluZXMuaAog
ICAgIGhlYXAvSXNvU3Vic3BhY2VQZXJWTS5oCiAgICAgaGVhcC9MYXJnZUFsbG9jYXRpb24uaAog
ICAgIGhlYXAvTGlzdGFibGVIYW5kbGVyLmgKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCShyZXZpc2lvbiAyMzIxMDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlw
dENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMzk2LDcg
KzM5Niw3IEBACiAJCTBGNzRCOTNCMUY4OTYxNDgwMEI5MzVEMyAvKiBQcm90b3R5cGVLZXkuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzRCOTNBMUY4
OTYxNDUwMEI5MzVEMyAvKiBQcm90b3R5cGVLZXkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjc1QTA2MDIwMEQyNjBCMDAzOEUyQ0YgLyogTG9j
YWxBbGxvY2F0b3JJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwRjc1QTA1QTIwMEQyNUYwMDAzOEUyQ0YgLyogTG9jYWxBbGxvY2F0b3JJbmxp
bmVzLmggKi87IH07CiAJCTBGNzVBMDYxMjAwRDI2MTgwMDM4RTJDRiAvKiBMb2NhbEFsbG9jYXRv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3NUEw
NTcyMDBEMjVGMDAwMzhFMkNGIC8qIExvY2FsQWxsb2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY3NUEwNjIyMDBEMjYxRDAwMzhFMkNG
IC8qIEFsbG9jYXRvcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGNzVBMDVEMjAwRDI1RjEwMDM4RTJDRiAvKiBBbGxvY2F0b3JJbmxpbmVz
LmggKi87IH07CisJCTBGNzVBMDYyMjAwRDI2MUQwMDM4RTJDRiAvKiBBbGxvY2F0b3JJbmxpbmVz
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc1QTA1
RDIwMEQyNUYxMDAzOEUyQ0YgLyogQWxsb2NhdG9ySW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNzVBMDYzMjAwRDI2MUYwMDM4RTJD
RiAvKiBBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDBGNzVBMDU0MjAwRDI1RUYwMDM4RTJDRiAvKiBBbGxvY2F0b3IuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjc1QTA2NjIwMTNFNEYx
MDAzOEUyQ0YgLyogSklUQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRjc1QTA2NTIwMTNFNEVGMDAzOEUyQ0YgLyogSklUQWxsb2NhdG9y
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEY3
NjZEMkMxNUE4Q0MzQTAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc2NkQyQTE1QThDQzM0MDA4RjM2
M0UgLyogSklUU3R1YlJvdXRpbmVTZXQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwpAQCAtNTQ2LDYgKzU0Niw4IEBACiAJCTBGRDBFNUYwMUU0NkJGMjUw
MDA2QUIwOCAvKiBSZWdpc3RlclN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkQwRTVFRjFFNDZCRjIzMDAwNkFCMDggLyogUmVnaXN0ZXJTdGF0
ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBG
RDBFNUYyMUU0NkM4QUYwMDA2QUIwOCAvKiBDb2xsZWN0aW5nU2NvcGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDBFNUYxMUU0NkM4QUQwMDA2QUIw
OCAvKiBDb2xsZWN0aW5nU2NvcGUuaCAqLzsgfTsKIAkJMEZEMkM5MjQxNkQwMUVFOTAwQzc4MDNG
IC8qIFN0cnVjdHVyZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDBGRDJDOTIzMTZEMDFFRTkwMEM3ODAzRiAvKiBTdHJ1Y3R1cmVJbmxpbmVz
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMEZE
MkZEOTQyMEI1MkJERTAwRjA5NDQxIC8qIENvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQyRkQ5MzIwQjUyQkRE
MDBGMDk0NDEgLyogQ29tcGxldGVTdWJzcGFjZUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkQyRkQ5NTIwQjUyQkUyMDBGMDk0NDEg
LyogSXNvU3Vic3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSAwRkQyRkQ5MjIwQjUyQkRDMDBGMDk0NDEgLyogSXNvU3Vic3BhY2VJbmxp
bmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
MEZEM0M4MjgxNDExNUQ0RjAwRkQ4MUNCIC8qIERGR0RyaXZlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEM0M4MjIxNDExNUQwRTAwRkQ4MUNCIC8q
IERGR0RyaXZlci5oICovOyB9OwogCQkwRkQzRTQwMjFCNjE4QUFGMDBDODBFMUUgLyogREZHQWRh
cHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQzRTQwMDFCNjE4QUFGMDBDODBFMUUgLyog
REZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmggKi87IH07CiAJCTBG
RDNFNDBBMUI2MThCNjYwMEM4MEUxRSAvKiBPYmplY3RQcm9wZXJ0eUNvbmRpdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEM0U0MDQxQjYxOEI2
NjAwQzgwRTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3MDUsNiArMjcwNyw4IEBACiAJCTBG
RDBFNUVGMUU0NkJGMjMwMDA2QUIwOCAvKiBSZWdpc3RlclN0YXRlLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ2lzdGVyU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMEZEMEU1RjExRTQ2QzhBRDAwMDZBQjA4IC8qIENvbGxlY3RpbmdTY29wZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0aW5nU2NvcGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZEMkM5MjMxNkQwMUVFOTAwQzc4MDNGIC8qIFN0cnVj
dHVyZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RydWN0dXJl
SW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwRkQyRkQ5MjIwQjUyQkRD
MDBGMDk0NDEgLyogSXNvU3Vic3BhY2VJbmxpbmVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IElzb1N1YnNwYWNlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQkwRkQyRkQ5MzIwQjUyQkREMDBGMDk0NDEgLyogQ29tcGxldGVTdWJzcGFjZUlubGluZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGxldGVTdWJzcGFjZUlubGlu
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZEM0M4MjAxNDExNUNGODAwRkQ4
MUNCIC8qIERGR0RyaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUg
PSBERkdEcml2ZXIuY3BwOyBwYXRoID0gZGZnL0RGR0RyaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTBGRDNDODIyMTQxMTVEMEUwMEZEODFDQiAvKiBERkdEcml2ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRHJpdmVyLmg7IHBhdGggPSBkZmcv
REZHRHJpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRDNFM0ZGMUI2MThB
QUYwMEM4MEUxRSAvKiBERkdBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gREZHQWRhcHRpdmVJbmZl
cnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmNwcDsgcGF0aCA9IGRmZy9ERkdBZGFwdGl2ZUlu
ZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtNTYzNSw2ICs1NjM5LDcgQEAKIAkJCQkwRkQwRTVFNjFFNDNEMzQ3MDAwNkFCMDgg
LyogQ29sbGVjdG9yUGhhc2UuaCAqLywKIAkJCQkwRkRDRTEyNzFGQUZBODU5MDA2RjM5MDEgLyog
Q29tcGxldGVTdWJzcGFjZS5jcHAgKi8sCiAJCQkJMEZEQ0UxMjgxRkFGQTg1OTAwNkYzOTAxIC8q
IENvbXBsZXRlU3Vic3BhY2UuaCAqLywKKwkJCQkwRkQyRkQ5MzIwQjUyQkREMDBGMDk0NDEgLyog
Q29tcGxldGVTdWJzcGFjZUlubGluZXMuaCAqLywKIAkJCQkxNDZCMTREQjEyRUI1QjEyMDAxQkVD
MUIgLyogQ29uc2VydmF0aXZlUm9vdHMuY3BwICovLAogCQkJCTE0OURBQUYyMTJFQjU1OUQwMDgz
QjEyQiAvKiBDb25zZXJ2YXRpdmVSb290cy5oICovLAogCQkJCTBGNDE1NDVBMUZEMjBCMUYwMDFC
NThGNiAvKiBDb25zdHJhaW50Q29uY3VycmVuY3kuaCAqLywKQEAgLTU3MTAsNiArNTcxNSw3IEBA
CiAJCQkJMEZCNDY3N0IxRkREQTZEODAwM0ZDQjA5IC8qIElzb0NlbGxTZXRJbmxpbmVzLmggKi8s
CiAJCQkJMEZEQ0UxMkMxRkFGQjRERTAwNkYzOTAxIC8qIElzb1N1YnNwYWNlLmNwcCAqLywKIAkJ
CQkwRkRDRTEyQjFGQUZCNERFMDA2RjM5MDEgLyogSXNvU3Vic3BhY2UuaCAqLywKKwkJCQkwRkQy
RkQ5MjIwQjUyQkRDMDBGMDk0NDEgLyogSXNvU3Vic3BhY2VJbmxpbmVzLmggKi8sCiAJCQkJMEY1
RTBGRTYyMDg2QUQ0NzAwOTdGMERFIC8qIElzb1N1YnNwYWNlUGVyVk0uY3BwICovLAogCQkJCTBG
NUUwRkU1MjA4NkFENDYwMDk3RjBERSAvKiBJc29TdWJzcGFjZVBlclZNLmggKi8sCiAJCQkJMEY3
NjZEMjkxNUE4Q0MzNDAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0LmNwcCAqLywKQEAgLTgz
MTUsNiArODMyMSw3IEBACiAJCQkJMEY0QzkxNjYxQzI5RjRGMjAwNDM0MUE2IC8qIEIzT3JpZ2lu
RHVtcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MjYxQkRBQ0RBQzAwODBGRjc0IC8qIEIz
UGF0Y2hwb2ludFNwZWNpYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBGRUM4NTI4MUJEQUNEQUMw
MDgwRkY3NCAvKiBCM1BhdGNocG9pbnRWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZEMkZE
OTUyMEI1MkJFMjAwRjA5NDQxIC8qIElzb1N1YnNwYWNlSW5saW5lcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09yaWdpbk1hcC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZFQzg1MkExQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGhhc2VTY29wZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzNzMwOEQxQzBCRDI5MTAwMDUyQkZBIC8qIEIzUGhpQ2hp
bGRyZW4uaCBpbiBIZWFkZXJzICovLApAQCAtODk0OSw2ICs4OTU2LDcgQEAKIAkJCQlCQzE4QzQx
NDBFMTZGNUNEMDBCMzQ0NjAgLyogSmF2YVNjcmlwdENvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMThDNDE1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKYXZhU2NyaXB0Q29yZVByZWZpeC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMTQyOUQ5MzAwRUQyMkQ3MDAwQjg5NjE5IC8qIEpJVC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJMEZEMkZEOTQyMEI1MkJERTAwRjA5NDQxIC8qIENvbXBsZXRlU3Vic3BhY2VJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTEyMjAyNzFCRTdGNThDMDAzOUU2RjIgLyog
SklUQWRkR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc1QTA2NjIwMTNFNEYxMDAz
OEUyQ0YgLyogSklUQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTNBMDZCMjFDMTBD
Qjg5MDAzOTBGREQgLyogSklUQml0QW5kR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0FsbG9jYXRvcklubGluZXMuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BbGxvY2F0b3JJbmxpbmVzLmgJKHJldmlz
aW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0FsbG9jYXRvcklubGlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAotaW5saW5lIHZvaWQqIEFsbG9jYXRvcjo6YWxsb2NhdGUoR0NEZWZlcnJhbENvbnRleHQqIGNv
bnRleHQsIEFsbG9jYXRpb25GYWlsdXJlTW9kZSBtb2RlKSBjb25zdAorQUxXQVlTX0lOTElORSB2
b2lkKiBBbGxvY2F0b3I6OmFsbG9jYXRlKEdDRGVmZXJyYWxDb250ZXh0KiBjb250ZXh0LCBBbGxv
Y2F0aW9uRmFpbHVyZU1vZGUgbW9kZSkgY29uc3QKIHsKICAgICByZXR1cm4gbV9sb2NhbEFsbG9j
YXRvci0+YWxsb2NhdGUoY29udGV4dCwgbW9kZSk7CiB9CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmNwcAkocmV2aXNpb24gMjMyMTA0KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFjZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTU3LDEzICs1Nyw2IEBAIHZvaWQqIENvbXBsZXRlU3Vic3BhY2U6OmFsbG9j
YXRlKFZNJiB2bSwKICAgICByZXR1cm4gYWxsb2NhdGVOb25WaXJ0dWFsKHZtLCBzaXplLCBkZWZl
cnJhbENvbnRleHQsIGZhaWx1cmVNb2RlKTsKIH0KIAotdm9pZCogQ29tcGxldGVTdWJzcGFjZTo6
YWxsb2NhdGVOb25WaXJ0dWFsKFZNJiB2bSwgc2l6ZV90IHNpemUsIEdDRGVmZXJyYWxDb250ZXh0
KiBkZWZlcnJhbENvbnRleHQsIEFsbG9jYXRpb25GYWlsdXJlTW9kZSBmYWlsdXJlTW9kZSkKLXsK
LSAgICBpZiAoQWxsb2NhdG9yIGFsbG9jYXRvciA9IGFsbG9jYXRvckZvck5vblZpcnR1YWwoc2l6
ZSwgQWxsb2NhdG9yRm9yTW9kZTo6QWxsb2NhdG9ySWZFeGlzdHMpKQotICAgICAgICByZXR1cm4g
YWxsb2NhdG9yLmFsbG9jYXRlKGRlZmVycmFsQ29udGV4dCwgZmFpbHVyZU1vZGUpOwotICAgIHJl
dHVybiBhbGxvY2F0ZVNsb3codm0sIHNpemUsIGRlZmVycmFsQ29udGV4dCwgZmFpbHVyZU1vZGUp
OwotfQotCiBBbGxvY2F0b3IgQ29tcGxldGVTdWJzcGFjZTo6YWxsb2NhdG9yRm9yU2xvdyhzaXpl
X3Qgc2l6ZSkKIHsKICAgICBzaXplX3QgaW5kZXggPSBNYXJrZWRTcGFjZTo6c2l6ZUNsYXNzVG9J
bmRleChzaXplKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vi
c3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db21wbGV0
ZVN1YnNwYWNlLmgJKHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvbXBsZXRlU3Vic3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBw
dWJsaWM6CiAgICAgQWxsb2NhdG9yIGFsbG9jYXRvckZvck5vblZpcnR1YWwoc2l6ZV90LCBBbGxv
Y2F0b3JGb3JNb2RlKTsKICAgICAKICAgICB2b2lkKiBhbGxvY2F0ZShWTSYsIHNpemVfdCwgR0NE
ZWZlcnJhbENvbnRleHQqLCBBbGxvY2F0aW9uRmFpbHVyZU1vZGUpIG92ZXJyaWRlOwotICAgIEpT
X0VYUE9SVF9QUklWQVRFIHZvaWQqIGFsbG9jYXRlTm9uVmlydHVhbChWTSYsIHNpemVfdCwgR0NE
ZWZlcnJhbENvbnRleHQqLCBBbGxvY2F0aW9uRmFpbHVyZU1vZGUpOworICAgIHZvaWQqIGFsbG9j
YXRlTm9uVmlydHVhbChWTSYsIHNpemVfdCwgR0NEZWZlcnJhbENvbnRleHQqLCBBbGxvY2F0aW9u
RmFpbHVyZU1vZGUpOwogICAgIAogICAgIHN0YXRpYyBwdHJkaWZmX3Qgb2Zmc2V0T2ZBbGxvY2F0
b3JGb3JTaXplU3RlcCgpIHsgcmV0dXJuIE9CSkVDVF9PRkZTRVRPRihDb21wbGV0ZVN1YnNwYWNl
LCBtX2FsbG9jYXRvckZvclNpemVTdGVwKTsgfQogICAgIApAQCAtNTMsNyArNTMsNyBAQCBwcml2
YXRlOgogICAgIEFsbG9jYXRvciBhbGxvY2F0b3JGb3JTbG93KHNpemVfdCk7CiAgICAgCiAgICAg
Ly8gVGhlc2Ugc2xvdyBwYXRocyBhcmUgY29uY2VybmVkIHdpdGggbGFyZ2UgYWxsb2NhdGlvbnMg
YW5kIGFsbG9jYXRvciBjcmVhdGlvbi4KLSAgICB2b2lkKiBhbGxvY2F0ZVNsb3coVk0mLCBzaXpl
X3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlKTsKKyAgICBKU19F
WFBPUlRfUFJJVkFURSB2b2lkKiBhbGxvY2F0ZVNsb3coVk0mLCBzaXplX3QsIEdDRGVmZXJyYWxD
b250ZXh0KiwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlKTsKICAgICB2b2lkKiB0cnlBbGxvY2F0ZVNs
b3coVk0mLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0Kik7CiAgICAgCiAgICAgc3RkOjphcnJh
eTxBbGxvY2F0b3IsIE1hcmtlZFNwYWNlOjpudW1TaXplQ2xhc3Nlcz4gbV9hbGxvY2F0b3JGb3JT
aXplU3RlcDsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3Bh
Y2VJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29t
cGxldGVTdWJzcGFjZUlubGluZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMzggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8K
KworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBKU0MgeworCitBTFdBWVNfSU5MSU5FIHZvaWQq
IENvbXBsZXRlU3Vic3BhY2U6OmFsbG9jYXRlTm9uVmlydHVhbChWTSYgdm0sIHNpemVfdCBzaXpl
LCBHQ0RlZmVycmFsQ29udGV4dCogZGVmZXJyYWxDb250ZXh0LCBBbGxvY2F0aW9uRmFpbHVyZU1v
ZGUgZmFpbHVyZU1vZGUpCit7CisgICAgaWYgKEFsbG9jYXRvciBhbGxvY2F0b3IgPSBhbGxvY2F0
b3JGb3JOb25WaXJ0dWFsKHNpemUsIEFsbG9jYXRvckZvck1vZGU6OkFsbG9jYXRvcklmRXhpc3Rz
KSkKKyAgICAgICAgcmV0dXJuIGFsbG9jYXRvci5hbGxvY2F0ZShkZWZlcnJhbENvbnRleHQsIGZh
aWx1cmVNb2RlKTsKKyAgICByZXR1cm4gYWxsb2NhdGVTbG93KHZtLCBzaXplLCBkZWZlcnJhbENv
bnRleHQsIGZhaWx1cmVNb2RlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKSW5kZXg6IFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0ZyZWVMaXN0SW5saW5lcy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0ZyZWVMaXN0SW5saW5lcy5oCShyZXZpc2lvbiAy
MzIxMDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GcmVlTGlzdElubGluZXMuaAko
d29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIEZ1bmM+Ci1IZWFwQ2VsbCogRnJlZUxpc3Q6OmFsbG9jYXRlKGNvbnN0IEZ1
bmMmIHNsb3dQYXRoKQorQUxXQVlTX0lOTElORSBIZWFwQ2VsbCogRnJlZUxpc3Q6OmFsbG9jYXRl
KGNvbnN0IEZ1bmMmIHNsb3dQYXRoKQogewogICAgIHVuc2lnbmVkIHJlbWFpbmluZyA9IG1fcmVt
YWluaW5nOwogICAgIGlmIChyZW1haW5pbmcpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0lzb1N1YnNwYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9Jc29TdWJzcGFjZS5jcHAJKHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTQg
KzYzLDYgQEAgdm9pZCogSXNvU3Vic3BhY2U6OmFsbG9jYXRlKFZNJiB2bSwgc2l6ZQogICAgIHJl
dHVybiBhbGxvY2F0ZU5vblZpcnR1YWwodm0sIHNpemUsIGRlZmVycmFsQ29udGV4dCwgZmFpbHVy
ZU1vZGUpOwogfQogCi12b2lkKiBJc29TdWJzcGFjZTo6YWxsb2NhdGVOb25WaXJ0dWFsKFZNJiwg
c2l6ZV90IHNpemUsIEdDRGVmZXJyYWxDb250ZXh0KiBkZWZlcnJhbENvbnRleHQsIEFsbG9jYXRp
b25GYWlsdXJlTW9kZSBmYWlsdXJlTW9kZSkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChzaXplID09
IHRoaXMtPnNpemUoKSk7Ci0gICAgQWxsb2NhdG9yIGFsbG9jYXRvciA9IGFsbG9jYXRvckZvck5v
blZpcnR1YWwoc2l6ZSwgQWxsb2NhdG9yRm9yTW9kZTo6TXVzdEFscmVhZHlIYXZlQWxsb2NhdG9y
KTsKLSAgICB2b2lkKiByZXN1bHQgPSBhbGxvY2F0b3IuYWxsb2NhdGUoZGVmZXJyYWxDb250ZXh0
LCBmYWlsdXJlTW9kZSk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQogdm9pZCBJc29TdWJzcGFj
ZTo6ZGlkUmVzaXplQml0cyhzaXplX3QgYmxvY2tJbmRleCkKIHsKICAgICBtX2NlbGxTZXRzLmZv
ckVhY2goCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmgJKHJl
dmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNl
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIEFsbG9jYXRv
ciBhbGxvY2F0b3JGb3JOb25WaXJ0dWFsKHNpemVfdCwgQWxsb2NhdG9yRm9yTW9kZSk7CiAKICAg
ICB2b2lkKiBhbGxvY2F0ZShWTSYsIHNpemVfdCwgR0NEZWZlcnJhbENvbnRleHQqLCBBbGxvY2F0
aW9uRmFpbHVyZU1vZGUpIG92ZXJyaWRlOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQqIGFs
bG9jYXRlTm9uVmlydHVhbChWTSYsIHNpemVfdCwgR0NEZWZlcnJhbENvbnRleHQqLCBBbGxvY2F0
aW9uRmFpbHVyZU1vZGUpOworICAgIHZvaWQqIGFsbG9jYXRlTm9uVmlydHVhbChWTSYsIHNpemVf
dCwgR0NEZWZlcnJhbENvbnRleHQqLCBBbGxvY2F0aW9uRmFpbHVyZU1vZGUpOwogCiBwcml2YXRl
OgogICAgIGZyaWVuZCBjbGFzcyBJc29DZWxsU2V0OwpAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRl
OgogICAgIFNlbnRpbmVsTGlua2VkTGlzdDxJc29DZWxsU2V0LCBCYXNpY1Jhd1NlbnRpbmVsTm9k
ZTxJc29DZWxsU2V0Pj4gbV9jZWxsU2V0czsKIH07CiAKLWlubGluZSBBbGxvY2F0b3IgSXNvU3Vi
c3BhY2U6OmFsbG9jYXRvckZvck5vblZpcnR1YWwoc2l6ZV90IHNpemUsIEFsbG9jYXRvckZvck1v
ZGUpCitBTFdBWVNfSU5MSU5FIEFsbG9jYXRvciBJc29TdWJzcGFjZTo6YWxsb2NhdG9yRm9yTm9u
VmlydHVhbChzaXplX3Qgc2l6ZSwgQWxsb2NhdG9yRm9yTW9kZSkKIHsKICAgICBSRUxFQVNFX0FT
U0VSVChzaXplID09IHRoaXMtPnNpemUoKSk7CiAgICAgcmV0dXJuIEFsbG9jYXRvcigmbV9sb2Nh
bEFsbG9jYXRvcik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFj
ZUlubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29T
dWJzcGFjZUlubGluZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9Jc29TdWJzcGFjZUlubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQor
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEg
b25jZQorCituYW1lc3BhY2UgSlNDIHsKKworQUxXQVlTX0lOTElORSB2b2lkKiBJc29TdWJzcGFj
ZTo6YWxsb2NhdGVOb25WaXJ0dWFsKFZNJiwgc2l6ZV90IHNpemUsIEdDRGVmZXJyYWxDb250ZXh0
KiBkZWZlcnJhbENvbnRleHQsIEFsbG9jYXRpb25GYWlsdXJlTW9kZSBmYWlsdXJlTW9kZSkKK3sK
KyAgICBSRUxFQVNFX0FTU0VSVChzaXplID09IHRoaXMtPnNpemUoKSk7CisgICAgQWxsb2NhdG9y
IGFsbG9jYXRvciA9IGFsbG9jYXRvckZvck5vblZpcnR1YWwoc2l6ZSwgQWxsb2NhdG9yRm9yTW9k
ZTo6TXVzdEFscmVhZHlIYXZlQWxsb2NhdG9yKTsKKyAgICB2b2lkKiByZXN1bHQgPSBhbGxvY2F0
b3IuYWxsb2NhdGUoZGVmZXJyYWxDb250ZXh0LCBmYWlsdXJlTW9kZSk7CisgICAgcmV0dXJuIHJl
c3VsdDsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgJKHJldmlzaW9uIDIzMjEwNCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjUsMTQgKzI1LDE5IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWxsb2Nh
dG9ySW5saW5lcy5oIgorI2luY2x1ZGUgIkNvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmgiCiAjaW5j
bHVkZSAiQ1BVLmgiCiAjaW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiRGVmZXJHQy5o
IgorI2luY2x1ZGUgIkZyZWVMaXN0SW5saW5lcy5oIgogI2luY2x1ZGUgIkhhbmRsZS5oIgorI2lu
Y2x1ZGUgIklzb1N1YnNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2FzdC5oIgogI2luY2x1
ZGUgIkpTRGVzdHJ1Y3RpYmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNs
dWRlICJKU1N0cmluZy5oIgorI2luY2x1ZGUgIkxvY2FsQWxsb2NhdG9ySW5saW5lcy5oIgogI2lu
Y2x1ZGUgIk1hcmtlZEJsb2NrLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVkZSAi
U3ltYm9sLmgiCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHJldmlzaW9uIDIz
MjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTk1MCw3ICs5NTAsNyBAQCBpbmxpbmUgSGVhcCogV2Vha1NldDo6aGVhcCgpIGNvbnN0
CiBleHRlcm4gIkMiIHZvaWQgc2FuaXRpemVTdGFja0ZvclZNSW1wbChWTSopOwogI2VuZGlmCiAK
LXZvaWQgc2FuaXRpemVTdGFja0ZvclZNKFZNKik7CitKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNh
bml0aXplU3RhY2tGb3JWTShWTSopOwogdm9pZCBsb2dTYW5pdGl6ZVN0YWNrKFZNKik7CiAKIH0g
Ly8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9XVEYv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTgtMDUtMjMgIEZp
bGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBTcGVlZCB1cCBKZXRTdHJl
YW0vYmFzZTY0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xODU5MTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAg
CisgICAgICAgIE1ha2UgVmVjdG9yPD46OmFwcGVuZCBBTFdBWVNfSU5MSU5FLgorCisgICAgICAg
ICogd3RmL1ZlY3Rvci5oOgorICAgICAgICAoV1RGOjpWZWN0b3I6OmFwcGVuZCk6CisgICAgICAg
IChXVEY6Om1pbkNhcGFjaXR5Pjo6ZXhwYW5kQ2FwYWNpdHkpOgorICAgICAgICAoV1RGOjptaW5D
YXBhY2l0eT46OmFwcGVuZCk6CisgICAgICAgIChXVEY6Om1pbkNhcGFjaXR5Pjo6dHJ5QXBwZW5k
KToKKwogMjAxOC0wNS0yMiAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAg
ICAgU3RyaW5nSW1wbCB1dGY4IGNvbnZlcnNpb24gc2hvdWxkIG5vdCBmYWlsIHNpbGVudGx5LgpJ
bmRleDogU291cmNlL1dURi93dGYvVmVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvVmVjdG9yLmgJKHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9XVEYvd3RmL1ZlY3Rvci5o
CSh3b3JraW5nIGNvcHkpCkBAIC03NTgsNyArNzU4LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBj
bGVhcigpIHsgc2hyaW5rQ2FwYWNpdHkoMCk7IH0KIAotICAgIHZvaWQgYXBwZW5kKFZhbHVlVHlw
ZSYmIHZhbHVlKSB7IGFwcGVuZDxWYWx1ZVR5cGU+KHN0ZDo6Zm9yd2FyZDxWYWx1ZVR5cGU+KHZh
bHVlKSk7IH0KKyAgICBBTFdBWVNfSU5MSU5FIHZvaWQgYXBwZW5kKFZhbHVlVHlwZSYmIHZhbHVl
KSB7IGFwcGVuZDxWYWx1ZVR5cGU+KHN0ZDo6Zm9yd2FyZDxWYWx1ZVR5cGU+KHZhbHVlKSk7IH0K
ICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiB2b2lkIGFwcGVuZChVJiYpOwogICAgIHRlbXBsYXRl
PHR5cGVuYW1lLi4uIEFyZ3M+IHZvaWQgY29uc3RydWN0QW5kQXBwZW5kKEFyZ3MmJi4uLik7CiAg
ICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gYm9vbCB0cnlDb25zdHJ1Y3RBbmRBcHBlbmQo
QXJncyYmLi4uKTsKQEAgLTEwMzIsNyArMTAzMiw3IEBAIHZvaWQgVmVjdG9yPFQsIGlubGluZUNh
cGFjaXR5LCBPdmVyZmxvd0gKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4K
LVQqIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0
eT46OmV4cGFuZENhcGFjaXR5KHNpemVfdCBuZXdNaW5DYXBhY2l0eSwgVCogcHRyKQorTkVWRVJf
SU5MSU5FIFQqIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5D
YXBhY2l0eT46OmV4cGFuZENhcGFjaXR5KHNpemVfdCBuZXdNaW5DYXBhY2l0eSwgVCogcHRyKQog
ewogICAgIGlmIChwdHIgPCBiZWdpbigpIHx8IHB0ciA+PSBlbmQoKSkgewogICAgICAgICBleHBh
bmRDYXBhY2l0eShuZXdNaW5DYXBhY2l0eSk7CkBAIC0xMjQ0LDcgKzEyNDQsNyBAQCB2b2lkIFZl
Y3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dICiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQs
IHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5hbWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3Qg
bWluQ2FwYWNpdHk+CiB0ZW1wbGF0ZTx0eXBlbmFtZSBVPgotdm9pZCBWZWN0b3I8VCwgaW5saW5l
Q2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+OjphcHBlbmQoY29uc3QgVSog
ZGF0YSwgc2l6ZV90IGRhdGFTaXplKQorQUxXQVlTX0lOTElORSB2b2lkIFZlY3RvcjxULCBpbmxp
bmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT46OmFwcGVuZChjb25zdCBV
KiBkYXRhLCBzaXplX3QgZGF0YVNpemUpCiB7CiAgICAgc2l6ZV90IG5ld1NpemUgPSBtX3NpemUg
KyBkYXRhU2l6ZTsKICAgICBpZiAobmV3U2l6ZSA+IGNhcGFjaXR5KCkpIHsKQEAgLTEyNjEsNyAr
MTI2MSw3IEBAIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0gKIAogdGVt
cGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxv
d0hhbmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4KIHRlbXBsYXRlPHR5cGVuYW1lIFU+Ci1ib29s
IFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT46
OnRyeUFwcGVuZChjb25zdCBVKiBkYXRhLCBzaXplX3QgZGF0YVNpemUpCitBTFdBWVNfSU5MSU5F
IGJvb2wgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFj
aXR5Pjo6dHJ5QXBwZW5kKGNvbnN0IFUqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSkKIHsKICAgICBz
aXplX3QgbmV3U2l6ZSA9IG1fc2l6ZSArIGRhdGFTaXplOwogICAgIGlmIChuZXdTaXplID4gY2Fw
YWNpdHkoKSkgewo=
</data>
<flag name="review"
          id="359320"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341125</attachid>
            <date>2018-05-23 13:44:42 -0700</date>
            <delta_ts>2018-05-23 14:05:35 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>23482</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMyMTA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDE4LTA1LTIzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U3BlZWQgdXAgSmV0U3RyZWFtL2Jhc2U2NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg1OTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBT
YWJvZmYuCisgICAgICAgIAorICAgICAgICBNYWtlIGFsbG9jYXRpb24gZmFzdCBwYXRocyBBTFdB
WVNfSU5MSU5FLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhIDElIHNwZWVkLXVwIG9uIFN1
blNwaWRlciwgbW9zdGx5IGJlY2F1c2Ugb2YgYmFzZTY0LiBJdCBhbHNvIHNwZWVkcyB1cCBwZGZq
cyBieQorICAgICAgICB+NiUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhl
YXAvQWxsb2NhdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpBbGxvY2F0b3I6OmFsbG9jYXRl
IGNvbnN0KToKKyAgICAgICAgKiBoZWFwL0NvbXBsZXRlU3Vic3BhY2UuY3BwOgorICAgICAgICAo
SlNDOjpDb21wbGV0ZVN1YnNwYWNlOjphbGxvY2F0ZU5vblZpcnR1YWwpOiBEZWxldGVkLgorICAg
ICAgICAqIGhlYXAvQ29tcGxldGVTdWJzcGFjZS5oOgorICAgICAgICAqIGhlYXAvQ29tcGxldGVT
dWJzcGFjZUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkNvbXBsZXRlU3Vic3BhY2U6
OmFsbG9jYXRlTm9uVmlydHVhbCk6CisgICAgICAgICogaGVhcC9GcmVlTGlzdElubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6RnJlZUxpc3Q6OmFsbG9jYXRlKToKKyAgICAgICAgKiBoZWFwL0lzb1N1
YnNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6SXNvU3Vic3BhY2U6OmFsbG9jYXRlTm9uVmlydHVh
bCk6IERlbGV0ZWQuCisgICAgICAgICogaGVhcC9Jc29TdWJzcGFjZS5oOgorICAgICAgICAoSlND
OjpJc29TdWJzcGFjZTo6YWxsb2NhdG9yRm9yTm9uVmlydHVhbCk6CisgICAgICAgICogaGVhcC9J
c29TdWJzcGFjZUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6Oklzb1N1YnNwYWNlOjph
bGxvY2F0ZU5vblZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOgor
ICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKwogMjAxOC0wNS0yMiAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBDbGVhbiB1cCBzdHJpbmdHZXRC
eVZhbFN0dWJHZW5lcmF0b3IKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtNDkwLDYgKzQ5MCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUEKICAgICBoZWFwL0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaAog
ICAgIGhlYXAvQWxsb2NhdGlvbkZhaWx1cmVNb2RlLmgKICAgICBoZWFwL0FsbG9jYXRvci5oCisg
ICAgaGVhcC9BbGxvY2F0b3JJbmxpbmVzLmgKICAgICBoZWFwL0FsbG9jYXRvckZvck1vZGUuaAog
ICAgIGhlYXAvQmxvY2tEaXJlY3RvcnkuaAogICAgIGhlYXAvQmxvY2tEaXJlY3RvcnlJbmxpbmVz
LmgKQEAgLTUwMCw2ICs1MDEsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBCiAgICAgaGVhcC9Db2xsZWN0aW9uU2NvcGUuaAogICAgIGhlYXAvQ29sbGVjdG9yUGhh
c2UuaAogICAgIGhlYXAvQ29tcGxldGVTdWJzcGFjZS5oCisgICAgaGVhcC9Db21wbGV0ZVN1YnNw
YWNlSW5saW5lcy5oCiAgICAgaGVhcC9Db25zdHJhaW50Q29uY3VycmVuY3kuaAogICAgIGhlYXAv
Q29uc3RyYWludFBhcmFsbGVsaXNtLmgKICAgICBoZWFwL0NvbnN0cmFpbnRWb2xhdGlsaXR5LmgK
QEAgLTUzMywxMCArNTM1LDEyIEBAIHNldChKYXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUEKICAgICBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCiAgICAgaGVhcC9Jc29DZWxsU2V0
LmgKICAgICBoZWFwL0lzb1N1YnNwYWNlLmgKKyAgICBoZWFwL0lzb1N1YnNwYWNlSW5saW5lcy5o
CiAgICAgaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgKICAgICBoZWFwL0xhcmdlQWxsb2NhdGlvbi5o
CiAgICAgaGVhcC9MaXN0YWJsZUhhbmRsZXIuaAogICAgIGhlYXAvTG9jYWxBbGxvY2F0b3IuaAor
ICAgIGhlYXAvTG9jYWxBbGxvY2F0b3JJbmxpbmVzLmgKICAgICBoZWFwL0xvY2tEdXJpbmdNYXJr
aW5nLmgKICAgICBoZWFwL01hY2hpbmVTdGFja01hcmtlci5oCiAgICAgaGVhcC9NYXJrU3RhY2su
aApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIzMjEwNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTYsNyArMzk2LDcgQEAKIAkJMEY3NEI5M0IxRjg5
NjE0ODAwQjkzNUQzIC8qIFByb3RvdHlwZUtleS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3NEI5M0ExRjg5NjE0NTAwQjkzNUQzIC8qIFByb3RvdHlw
ZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CTBGNzVBMDYwMjAwRDI2MEIwMDM4RTJDRiAvKiBMb2NhbEFsbG9jYXRvcklubGluZXMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzVBMDVBMjAwRDI1
RjAwMDM4RTJDRiAvKiBMb2NhbEFsbG9jYXRvcklubGluZXMuaCAqLzsgfTsKIAkJMEY3NUEwNjEy
MDBEMjYxODAwMzhFMkNGIC8qIExvY2FsQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc1QTA1NzIwMEQyNUYwMDAzOEUyQ0YgLyogTG9j
YWxBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwotCQkwRjc1QTA2MjIwMEQyNjFEMDAzOEUyQ0YgLyogQWxsb2NhdG9ySW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3NUEwNUQyMDBE
MjVGMTAwMzhFMkNGIC8qIEFsbG9jYXRvcklubGluZXMuaCAqLzsgfTsKKwkJMEY3NUEwNjIyMDBE
MjYxRDAwMzhFMkNGIC8qIEFsbG9jYXRvcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzVBMDVEMjAwRDI1RjEwMDM4RTJDRiAvKiBBbGxv
Y2F0b3JJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJMEY3NUEwNjMyMDBEMjYxRjAwMzhFMkNGIC8qIEFsbG9jYXRvci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3NUEwNTQyMDBEMjVFRjAw
MzhFMkNGIC8qIEFsbG9jYXRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCTBGNzVBMDY2MjAxM0U0RjEwMDM4RTJDRiAvKiBKSVRBbGxvY2F0b3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzVBMDY1
MjAxM0U0RUYwMDM4RTJDRiAvKiBKSVRBbGxvY2F0b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRjc2NkQyQzE1QThDQzNBMDA4RjM2M0UgLyog
SklUU3R1YlJvdXRpbmVTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDBGNzY2RDJBMTVBOENDMzQwMDhGMzYzRSAvKiBKSVRTdHViUm91dGluZVNldC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC01NDYs
NiArNTQ2LDggQEAKIAkJMEZEMEU1RjAxRTQ2QkYyNTAwMDZBQjA4IC8qIFJlZ2lzdGVyU3RhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDBFNUVG
MUU0NkJGMjMwMDA2QUIwOCAvKiBSZWdpc3RlclN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMEZEMEU1RjIxRTQ2QzhBRjAwMDZBQjA4IC8q
IENvbGxlY3RpbmdTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEZEMEU1RjExRTQ2QzhBRDAwMDZBQjA4IC8qIENvbGxlY3RpbmdTY29wZS5oICov
OyB9OwogCQkwRkQyQzkyNDE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEMkM5MjMxNkQw
MUVFOTAwQzc4MDNGIC8qIFN0cnVjdHVyZUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkQyRkQ5NDIwQjUyQkRFMDBGMDk0NDEgLyog
Q29tcGxldGVTdWJzcGFjZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDBGRDJGRDkzMjBCNTJCREQwMEYwOTQ0MSAvKiBDb21wbGV0ZVN1YnNw
YWNlSW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTBGRDJGRDk1MjBCNTJCRTIwMEYwOTQ0MSAvKiBJc29TdWJzcGFjZUlubGluZXMuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDJGRDkyMjBC
NTJCREMwMEYwOTQ0MSAvKiBJc29TdWJzcGFjZUlubGluZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkwRkQzQzgyODE0MTE1RDRGMDBGRDgxQ0Ig
LyogREZHRHJpdmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAwRkQzQzgyMjE0MTE1RDBFMDBGRDgxQ0IgLyogREZHRHJpdmVyLmggKi87IH07CiAJCTBG
RDNFNDAyMUI2MThBQUYwMEM4MEUxRSAvKiBERkdBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1
ZVdhdGNocG9pbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDBGRDNFNDAwMUI2MThBQUYwMEM4MEUxRSAvKiBERkdBZGFwdGl2ZUluZmVycmVkUHJvcGVy
dHlWYWx1ZVdhdGNocG9pbnQuaCAqLzsgfTsKIAkJMEZEM0U0MEExQjYxOEI2NjAwQzgwRTFFIC8q
IE9iamVjdFByb3BlcnR5Q29uZGl0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAwRkQzRTQwNDFCNjE4QjY2MDBDODBFMUUgLyogT2JqZWN0UHJvcGVy
dHlDb25kaXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtMjcwNSw2ICsyNzA3LDggQEAKIAkJMEZEMEU1RUYxRTQ2QkYyMzAwMDZBQjA4IC8q
IFJlZ2lzdGVyU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVnaXN0
ZXJTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwRkQwRTVGMTFFNDZDOEFE
MDAwNkFCMDggLyogQ29sbGVjdGluZ1Njb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENvbGxlY3RpbmdTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkw
RkQyQzkyMzE2RDAxRUU5MDBDNzgwM0YgLyogU3RydWN0dXJlSW5saW5lcy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBTdHJ1Y3R1cmVJbmxpbmVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTBGRDJGRDkyMjBCNTJCREMwMEYwOTQ0MSAvKiBJc29TdWJzcGFjZUlu
bGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSXNvU3Vic3BhY2VJbmxp
bmVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTBGRDJGRDkzMjBCNTJCREQwMEYw
OTQ0MSAvKiBDb21wbGV0ZVN1YnNwYWNlSW5saW5lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBDb21wbGV0ZVN1YnNwYWNlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRkQzQzgyMDE0MTE1Q0Y4MDBGRDgxQ0IgLyogREZHRHJpdmVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IERGR0RyaXZlci5jcHA7IHBhdGggPSBk
ZmcvREZHRHJpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZEM0M4MjIx
NDExNUQwRTAwRkQ4MUNCIC8qIERGR0RyaXZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IG5hbWUgPSBERkdEcml2ZXIuaDsgcGF0aCA9IGRmZy9ERkdEcml2ZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMEZEM0UzRkYxQjYxOEFBRjAwQzgwRTFFIC8qIERGR0FkYXB0aXZl
SW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hwb2ludC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBERkdBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9p
bnQuY3BwOyBwYXRoID0gZGZnL0RGR0FkYXB0aXZlSW5mZXJyZWRQcm9wZXJ0eVZhbHVlV2F0Y2hw
b2ludC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01NjM1LDYgKzU2MzksNyBA
QAogCQkJCTBGRDBFNUU2MUU0M0QzNDcwMDA2QUIwOCAvKiBDb2xsZWN0b3JQaGFzZS5oICovLAog
CQkJCTBGRENFMTI3MUZBRkE4NTkwMDZGMzkwMSAvKiBDb21wbGV0ZVN1YnNwYWNlLmNwcCAqLywK
IAkJCQkwRkRDRTEyODFGQUZBODU5MDA2RjM5MDEgLyogQ29tcGxldGVTdWJzcGFjZS5oICovLAor
CQkJCTBGRDJGRDkzMjBCNTJCREQwMEYwOTQ0MSAvKiBDb21wbGV0ZVN1YnNwYWNlSW5saW5lcy5o
ICovLAogCQkJCTE0NkIxNERCMTJFQjVCMTIwMDFCRUMxQiAvKiBDb25zZXJ2YXRpdmVSb290cy5j
cHAgKi8sCiAJCQkJMTQ5REFBRjIxMkVCNTU5RDAwODNCMTJCIC8qIENvbnNlcnZhdGl2ZVJvb3Rz
LmggKi8sCiAJCQkJMEY0MTU0NUExRkQyMEIxRjAwMUI1OEY2IC8qIENvbnN0cmFpbnRDb25jdXJy
ZW5jeS5oICovLApAQCAtNTcxMCw2ICs1NzE1LDcgQEAKIAkJCQkwRkI0Njc3QjFGRERBNkQ4MDAz
RkNCMDkgLyogSXNvQ2VsbFNldElubGluZXMuaCAqLywKIAkJCQkwRkRDRTEyQzFGQUZCNERFMDA2
RjM5MDEgLyogSXNvU3Vic3BhY2UuY3BwICovLAogCQkJCTBGRENFMTJCMUZBRkI0REUwMDZGMzkw
MSAvKiBJc29TdWJzcGFjZS5oICovLAorCQkJCTBGRDJGRDkyMjBCNTJCREMwMEYwOTQ0MSAvKiBJ
c29TdWJzcGFjZUlubGluZXMuaCAqLywKIAkJCQkwRjVFMEZFNjIwODZBRDQ3MDA5N0YwREUgLyog
SXNvU3Vic3BhY2VQZXJWTS5jcHAgKi8sCiAJCQkJMEY1RTBGRTUyMDg2QUQ0NjAwOTdGMERFIC8q
IElzb1N1YnNwYWNlUGVyVk0uaCAqLywKIAkJCQkwRjc2NkQyOTE1QThDQzM0MDA4RjM2M0UgLyog
SklUU3R1YlJvdXRpbmVTZXQuY3BwICovLApAQCAtODMxNSw2ICs4MzIxLDcgQEAKIAkJCQkwRjRD
OTE2NjFDMjlGNEYyMDA0MzQxQTYgLyogQjNPcmlnaW5EdW1wLmggaW4gSGVhZGVycyAqLywKIAkJ
CQkwRkVDODUyNjFCREFDREFDMDA4MEZGNzQgLyogQjNQYXRjaHBvaW50U3BlY2lhbC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEZFQzg1MjgxQkRBQ0RBQzAwODBGRjc0IC8qIEIzUGF0Y2hwb2ludFZh
bHVlLmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQyRkQ5NTIwQjUyQkUyMDBGMDk0NDEgLyogSXNv
U3Vic3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3OTlFRjdDNDFDNTZFRDk2MDAy
QjA1MzQgLyogQjNQQ1RvT3JpZ2luTWFwLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkVDODUyQTFC
REFDREFDMDA4MEZGNzQgLyogQjNQaGFzZVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjM3
MzA4RDFDMEJEMjkxMDAwNTJCRkEgLyogQjNQaGlDaGlsZHJlbi5oIGluIEhlYWRlcnMgKi8sCkBA
IC04OTQ5LDYgKzg5NTYsNyBAQAogCQkJCUJDMThDNDE0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKYXZh
U2NyaXB0Q29yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMxOEM0MTUwRTE2RjVDRDAwQjM0NDYw
IC8qIEphdmFTY3JpcHRDb3JlUHJlZml4LmggaW4gSGVhZGVycyAqLywKIAkJCQkxNDI5RDkzMDBF
RDIyRDcwMDBCODk2MTkgLyogSklULmggaW4gSGVhZGVycyAqLywKKwkJCQkwRkQyRkQ5NDIwQjUy
QkRFMDBGMDk0NDEgLyogQ29tcGxldGVTdWJzcGFjZUlubGluZXMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZFMTIyMDI3MUJFN0Y1OEMwMDM5RTZGMiAvKiBKSVRBZGRHZW5lcmF0b3IuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTBGNzVBMDY2MjAxM0U0RjEwMDM4RTJDRiAvKiBKSVRBbGxvY2F0b3IuaCBp
biBIZWFkZXJzICovLAogCQkJCUZFM0EwNkIyMUMxMENCODkwMDM5MEZERCAvKiBKSVRCaXRBbmRH
ZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvQWxsb2NhdG9ySW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL0FsbG9jYXRvcklubGluZXMuaAkocmV2aXNpb24gMjMyMTA0KQorKysgU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvQWxsb2NhdG9ySW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw3ICszMCw3IEBACiAKIG5hbWVzcGFjZSBKU0MgewogCi1pbmxpbmUgdm9pZCogQWxsb2NhdG9y
OjphbGxvY2F0ZShHQ0RlZmVycmFsQ29udGV4dCogY29udGV4dCwgQWxsb2NhdGlvbkZhaWx1cmVN
b2RlIG1vZGUpIGNvbnN0CitBTFdBWVNfSU5MSU5FIHZvaWQqIEFsbG9jYXRvcjo6YWxsb2NhdGUo
R0NEZWZlcnJhbENvbnRleHQqIGNvbnRleHQsIEFsbG9jYXRpb25GYWlsdXJlTW9kZSBtb2RlKSBj
b25zdAogewogICAgIHJldHVybiBtX2xvY2FsQWxsb2NhdG9yLT5hbGxvY2F0ZShjb250ZXh0LCBt
b2RlKTsKIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3Bh
Y2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRl
U3Vic3BhY2UuY3BwCShyZXZpc2lvbiAyMzIxMDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
aGVhcC9Db21wbGV0ZVN1YnNwYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTMgKzU3LDYg
QEAgdm9pZCogQ29tcGxldGVTdWJzcGFjZTo6YWxsb2NhdGUoVk0mIHZtLAogICAgIHJldHVybiBh
bGxvY2F0ZU5vblZpcnR1YWwodm0sIHNpemUsIGRlZmVycmFsQ29udGV4dCwgZmFpbHVyZU1vZGUp
OwogfQogCi12b2lkKiBDb21wbGV0ZVN1YnNwYWNlOjphbGxvY2F0ZU5vblZpcnR1YWwoVk0mIHZt
LCBzaXplX3Qgc2l6ZSwgR0NEZWZlcnJhbENvbnRleHQqIGRlZmVycmFsQ29udGV4dCwgQWxsb2Nh
dGlvbkZhaWx1cmVNb2RlIGZhaWx1cmVNb2RlKQotewotICAgIGlmIChBbGxvY2F0b3IgYWxsb2Nh
dG9yID0gYWxsb2NhdG9yRm9yTm9uVmlydHVhbChzaXplLCBBbGxvY2F0b3JGb3JNb2RlOjpBbGxv
Y2F0b3JJZkV4aXN0cykpCi0gICAgICAgIHJldHVybiBhbGxvY2F0b3IuYWxsb2NhdGUoZGVmZXJy
YWxDb250ZXh0LCBmYWlsdXJlTW9kZSk7Ci0gICAgcmV0dXJuIGFsbG9jYXRlU2xvdyh2bSwgc2l6
ZSwgZGVmZXJyYWxDb250ZXh0LCBmYWlsdXJlTW9kZSk7Ci19Ci0KIEFsbG9jYXRvciBDb21wbGV0
ZVN1YnNwYWNlOjphbGxvY2F0b3JGb3JTbG93KHNpemVfdCBzaXplKQogewogICAgIHNpemVfdCBp
bmRleCA9IE1hcmtlZFNwYWNlOjpzaXplQ2xhc3NUb0luZGV4KHNpemUpOwpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFjZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2UuaAkocmV2aXNpb24gMjMy
MTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFjZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC00MywxNyArNDMsMTcgQEAgcHVibGljOgogICAgIEFsbG9jYXRvciBh
bGxvY2F0b3JGb3JOb25WaXJ0dWFsKHNpemVfdCwgQWxsb2NhdG9yRm9yTW9kZSk7CiAgICAgCiAg
ICAgdm9pZCogYWxsb2NhdGUoVk0mLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2Nh
dGlvbkZhaWx1cmVNb2RlKSBvdmVycmlkZTsKLSAgICBKU19FWFBPUlRfUFJJVkFURSB2b2lkKiBh
bGxvY2F0ZU5vblZpcnR1YWwoVk0mLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2Nh
dGlvbkZhaWx1cmVNb2RlKTsKKyAgICB2b2lkKiBhbGxvY2F0ZU5vblZpcnR1YWwoVk0mLCBzaXpl
X3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlKTsKICAgICAKICAg
ICBzdGF0aWMgcHRyZGlmZl90IG9mZnNldE9mQWxsb2NhdG9yRm9yU2l6ZVN0ZXAoKSB7IHJldHVy
biBPQkpFQ1RfT0ZGU0VUT0YoQ29tcGxldGVTdWJzcGFjZSwgbV9hbGxvY2F0b3JGb3JTaXplU3Rl
cCk7IH0KICAgICAKICAgICBBbGxvY2F0b3IqIGFsbG9jYXRvckZvclNpemVTdGVwKCkgeyByZXR1
cm4gJm1fYWxsb2NhdG9yRm9yU2l6ZVN0ZXBbMF07IH0KIAogcHJpdmF0ZToKLSAgICBBbGxvY2F0
b3IgYWxsb2NhdG9yRm9yU2xvdyhzaXplX3QpOworICAgIEpTX0VYUE9SVF9QUklWQVRFIEFsbG9j
YXRvciBhbGxvY2F0b3JGb3JTbG93KHNpemVfdCk7CiAgICAgCiAgICAgLy8gVGhlc2Ugc2xvdyBw
YXRocyBhcmUgY29uY2VybmVkIHdpdGggbGFyZ2UgYWxsb2NhdGlvbnMgYW5kIGFsbG9jYXRvciBj
cmVhdGlvbi4KLSAgICB2b2lkKiBhbGxvY2F0ZVNsb3coVk0mLCBzaXplX3QsIEdDRGVmZXJyYWxD
b250ZXh0KiwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSB2
b2lkKiBhbGxvY2F0ZVNsb3coVk0mLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2Nh
dGlvbkZhaWx1cmVNb2RlKTsKICAgICB2b2lkKiB0cnlBbGxvY2F0ZVNsb3coVk0mLCBzaXplX3Qs
IEdDRGVmZXJyYWxDb250ZXh0Kik7CiAgICAgCiAgICAgc3RkOjphcnJheTxBbGxvY2F0b3IsIE1h
cmtlZFNwYWNlOjpudW1TaXplQ2xhc3Nlcz4gbV9hbGxvY2F0b3JGb3JTaXplU3RlcDsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFjZUlu
bGluZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db21w
bGV0ZVN1YnNwYWNlSW5saW5lcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzggQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI3ByYWdtYSBvbmNl
CisKK25hbWVzcGFjZSBKU0MgeworCitBTFdBWVNfSU5MSU5FIHZvaWQqIENvbXBsZXRlU3Vic3Bh
Y2U6OmFsbG9jYXRlTm9uVmlydHVhbChWTSYgdm0sIHNpemVfdCBzaXplLCBHQ0RlZmVycmFsQ29u
dGV4dCogZGVmZXJyYWxDb250ZXh0LCBBbGxvY2F0aW9uRmFpbHVyZU1vZGUgZmFpbHVyZU1vZGUp
Cit7CisgICAgaWYgKEFsbG9jYXRvciBhbGxvY2F0b3IgPSBhbGxvY2F0b3JGb3JOb25WaXJ0dWFs
KHNpemUsIEFsbG9jYXRvckZvck1vZGU6OkFsbG9jYXRvcklmRXhpc3RzKSkKKyAgICAgICAgcmV0
dXJuIGFsbG9jYXRvci5hbGxvY2F0ZShkZWZlcnJhbENvbnRleHQsIGZhaWx1cmVNb2RlKTsKKyAg
ICByZXR1cm4gYWxsb2NhdGVTbG93KHZtLCBzaXplLCBkZWZlcnJhbENvbnRleHQsIGZhaWx1cmVN
b2RlKTsKK30KKworfSAvLyBuYW1lc3BhY2UgSlNDCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9oZWFwL0ZyZWVMaXN0SW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9oZWFwL0ZyZWVMaXN0SW5saW5lcy5oCShyZXZpc2lvbiAyMzIxMDQpCisrKyBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GcmVlTGlzdElubGluZXMuaAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNyArMzEsNyBAQAogbmFtZXNwYWNlIEpTQyB7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIEZ1
bmM+Ci1IZWFwQ2VsbCogRnJlZUxpc3Q6OmFsbG9jYXRlKGNvbnN0IEZ1bmMmIHNsb3dQYXRoKQor
QUxXQVlTX0lOTElORSBIZWFwQ2VsbCogRnJlZUxpc3Q6OmFsbG9jYXRlKGNvbnN0IEZ1bmMmIHNs
b3dQYXRoKQogewogICAgIHVuc2lnbmVkIHJlbWFpbmluZyA9IG1fcmVtYWluaW5nOwogICAgIGlm
IChyZW1haW5pbmcpIHsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNw
YWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJz
cGFjZS5jcHAJKHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0lzb1N1YnNwYWNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjMsMTQgKzYzLDYgQEAgdm9pZCog
SXNvU3Vic3BhY2U6OmFsbG9jYXRlKFZNJiB2bSwgc2l6ZQogICAgIHJldHVybiBhbGxvY2F0ZU5v
blZpcnR1YWwodm0sIHNpemUsIGRlZmVycmFsQ29udGV4dCwgZmFpbHVyZU1vZGUpOwogfQogCi12
b2lkKiBJc29TdWJzcGFjZTo6YWxsb2NhdGVOb25WaXJ0dWFsKFZNJiwgc2l6ZV90IHNpemUsIEdD
RGVmZXJyYWxDb250ZXh0KiBkZWZlcnJhbENvbnRleHQsIEFsbG9jYXRpb25GYWlsdXJlTW9kZSBm
YWlsdXJlTW9kZSkKLXsKLSAgICBSRUxFQVNFX0FTU0VSVChzaXplID09IHRoaXMtPnNpemUoKSk7
Ci0gICAgQWxsb2NhdG9yIGFsbG9jYXRvciA9IGFsbG9jYXRvckZvck5vblZpcnR1YWwoc2l6ZSwg
QWxsb2NhdG9yRm9yTW9kZTo6TXVzdEFscmVhZHlIYXZlQWxsb2NhdG9yKTsKLSAgICB2b2lkKiBy
ZXN1bHQgPSBhbGxvY2F0b3IuYWxsb2NhdGUoZGVmZXJyYWxDb250ZXh0LCBmYWlsdXJlTW9kZSk7
Ci0gICAgcmV0dXJuIHJlc3VsdDsKLX0KLQogdm9pZCBJc29TdWJzcGFjZTo6ZGlkUmVzaXplQml0
cyhzaXplX3QgYmxvY2tJbmRleCkKIHsKICAgICBtX2NlbGxTZXRzLmZvckVhY2goCkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmgJKHJldmlzaW9uIDIzMjEwNCkK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0lzb1N1YnNwYWNlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogICAgIEFsbG9jYXRvciBhbGxvY2F0b3JGb3JO
b25WaXJ0dWFsKHNpemVfdCwgQWxsb2NhdG9yRm9yTW9kZSk7CiAKICAgICB2b2lkKiBhbGxvY2F0
ZShWTSYsIHNpemVfdCwgR0NEZWZlcnJhbENvbnRleHQqLCBBbGxvY2F0aW9uRmFpbHVyZU1vZGUp
IG92ZXJyaWRlOwotICAgIEpTX0VYUE9SVF9QUklWQVRFIHZvaWQqIGFsbG9jYXRlTm9uVmlydHVh
bChWTSYsIHNpemVfdCwgR0NEZWZlcnJhbENvbnRleHQqLCBBbGxvY2F0aW9uRmFpbHVyZU1vZGUp
OworICAgIHZvaWQqIGFsbG9jYXRlTm9uVmlydHVhbChWTSYsIHNpemVfdCwgR0NEZWZlcnJhbENv
bnRleHQqLCBBbGxvY2F0aW9uRmFpbHVyZU1vZGUpOwogCiBwcml2YXRlOgogICAgIGZyaWVuZCBj
bGFzcyBJc29DZWxsU2V0OwpAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIFNlbnRpbmVs
TGlua2VkTGlzdDxJc29DZWxsU2V0LCBCYXNpY1Jhd1NlbnRpbmVsTm9kZTxJc29DZWxsU2V0Pj4g
bV9jZWxsU2V0czsKIH07CiAKLWlubGluZSBBbGxvY2F0b3IgSXNvU3Vic3BhY2U6OmFsbG9jYXRv
ckZvck5vblZpcnR1YWwoc2l6ZV90IHNpemUsIEFsbG9jYXRvckZvck1vZGUpCitBTFdBWVNfSU5M
SU5FIEFsbG9jYXRvciBJc29TdWJzcGFjZTo6YWxsb2NhdG9yRm9yTm9uVmlydHVhbChzaXplX3Qg
c2l6ZSwgQWxsb2NhdG9yRm9yTW9kZSkKIHsKICAgICBSRUxFQVNFX0FTU0VSVChzaXplID09IHRo
aXMtPnNpemUoKSk7CiAgICAgcmV0dXJuIEFsbG9jYXRvcigmbV9sb2NhbEFsbG9jYXRvcik7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZUlubGluZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZUlubGluZXMu
aAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFj
ZUlubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAq
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3Bh
Y2UgSlNDIHsKKworQUxXQVlTX0lOTElORSB2b2lkKiBJc29TdWJzcGFjZTo6YWxsb2NhdGVOb25W
aXJ0dWFsKFZNJiwgc2l6ZV90IHNpemUsIEdDRGVmZXJyYWxDb250ZXh0KiBkZWZlcnJhbENvbnRl
eHQsIEFsbG9jYXRpb25GYWlsdXJlTW9kZSBmYWlsdXJlTW9kZSkKK3sKKyAgICBSRUxFQVNFX0FT
U0VSVChzaXplID09IHRoaXMtPnNpemUoKSk7CisgICAgQWxsb2NhdG9yIGFsbG9jYXRvciA9IGFs
bG9jYXRvckZvck5vblZpcnR1YWwoc2l6ZSwgQWxsb2NhdG9yRm9yTW9kZTo6TXVzdEFscmVhZHlI
YXZlQWxsb2NhdG9yKTsKKyAgICB2b2lkKiByZXN1bHQgPSBhbGxvY2F0b3IuYWxsb2NhdGUoZGVm
ZXJyYWxDb250ZXh0LCBmYWlsdXJlTW9kZSk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworfSAv
LyBuYW1lc3BhY2UgSlNDCisKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
Q2VsbElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9KU0NlbGxJbmxpbmVzLmgJKHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL0pTQ2VsbElubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMjUsMTQgKzI1
LDE5IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQWxsb2NhdG9ySW5saW5lcy5oIgor
I2luY2x1ZGUgIkNvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmgiCiAjaW5jbHVkZSAiQ1BVLmgiCiAj
aW5jbHVkZSAiQ2FsbEZyYW1lLmgiCiAjaW5jbHVkZSAiRGVmZXJHQy5oIgorI2luY2x1ZGUgIkZy
ZWVMaXN0SW5saW5lcy5oIgogI2luY2x1ZGUgIkhhbmRsZS5oIgorI2luY2x1ZGUgIklzb1N1YnNw
YWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIkpTQ2FzdC5oIgogI2luY2x1ZGUgIkpTRGVzdHJ1Y3Rp
YmxlT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNPYmplY3QuaCIKICNpbmNsdWRlICJKU1N0cmluZy5o
IgorI2luY2x1ZGUgIkxvY2FsQWxsb2NhdG9ySW5saW5lcy5oIgogI2luY2x1ZGUgIk1hcmtlZEJs
b2NrLmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVkZSAiU3ltYm9sLmgiCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCShyZXZpc2lvbiAy
MzIxMDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lkIEpTUm9wZVN0cmluZzo6cmVzb2x2
ZVJvcGUoRXhlY1N0YXRlCiAvLyB3ZSB3b3VsZCBsaWtlbHkgaGF2ZSB0byBwbGFjZSBhbGwgb2Yg
dGhlIGNvbnN0aXR1ZW50IFN0cmluZ0ltcGxzIGludG8gdGhlCiAvLyBWZWN0b3IgYmVmb3JlIHBl
cmZvcm1pbmcgYW55IGNvbmNhdGVuYXRpb24sIGJ1dCBieSB3b3JraW5nIGJhY2t3YXJkcyB3ZSBs
aWtlbHkKIC8vIG9ubHkgZmlsbCB0aGUgcXVldWUgd2l0aCB0aGUgbnVtYmVyIG9mIHN1YnN0cmlu
Z3MgYXQgYW55IGdpdmVuIGxldmVsIGluIGEKLS8vIHJvcGUtb2Ytcm9wZXMuKSAgICAKKy8vIHJv
cGUtb2Ytcm9wZXMuKQogdm9pZCBKU1JvcGVTdHJpbmc6OnJlc29sdmVSb3BlU2xvd0Nhc2U4KExD
aGFyKiBidWZmZXIpIGNvbnN0CiB7CiAgICAgTENoYXIqIHBvc2l0aW9uID0gYnVmZmVyICsgbGVu
Z3RoKCk7IC8vIFdlIHdpbGwgYmUgd29ya2luZyBiYWNrd2FyZHMgb3ZlciB0aGUgcm9wZS4KSW5k
ZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZNLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkocmV2aXNpb24gMjMyMTA0KQorKysgU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uaAkod29ya2luZyBjb3B5KQpAQCAtOTUwLDcg
Kzk1MCw3IEBAIGlubGluZSBIZWFwKiBXZWFrU2V0OjpoZWFwKCkgY29uc3QKIGV4dGVybiAiQyIg
dm9pZCBzYW5pdGl6ZVN0YWNrRm9yVk1JbXBsKFZNKik7CiAjZW5kaWYKIAotdm9pZCBzYW5pdGl6
ZVN0YWNrRm9yVk0oVk0qKTsKK0pTX0VYUE9SVF9QUklWQVRFIHZvaWQgc2FuaXRpemVTdGFja0Zv
clZNKFZNKik7CiB2b2lkIGxvZ1Nhbml0aXplU3RhY2soVk0qKTsKIAogfSAvLyBuYW1lc3BhY2Ug
SlNDCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RG
L0NoYW5nZUxvZwkocmV2aXNpb24gMjMyMTA0KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxOC0wNS0yMyAgRmlsaXAgUGl6bG8gIDxm
cGl6bG9AYXBwbGUuY29tPgorCisgICAgICAgIFNwZWVkIHVwIEpldFN0cmVhbS9iYXNlNjQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4NTkxNAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE1pY2hhZWwgU2Fib2ZmLgorICAgICAgICAKKyAgICAgICAgTWFr
ZSBWZWN0b3I8Pjo6YXBwZW5kIEFMV0FZU19JTkxJTkUuCisKKyAgICAgICAgKiB3dGYvVmVjdG9y
Lmg6CisgICAgICAgIChXVEY6OlZlY3Rvcjo6YXBwZW5kKToKKyAgICAgICAgKFdURjo6bWluQ2Fw
YWNpdHk+OjpleHBhbmRDYXBhY2l0eSk6CisgICAgICAgIChXVEY6Om1pbkNhcGFjaXR5Pjo6YXBw
ZW5kKToKKyAgICAgICAgKFdURjo6bWluQ2FwYWNpdHk+Ojp0cnlBcHBlbmQpOgorCiAyMDE4LTA1
LTIyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBTdHJpbmdJbXBs
IHV0ZjggY29udmVyc2lvbiBzaG91bGQgbm90IGZhaWwgc2lsZW50bHkuCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9WZWN0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi9WZWN0b3IuaAko
cmV2aXNpb24gMjMyMTA0KQorKysgU291cmNlL1dURi93dGYvVmVjdG9yLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTc1OCw3ICs3NTgsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGNsZWFyKCkgeyBzaHJp
bmtDYXBhY2l0eSgwKTsgfQogCi0gICAgdm9pZCBhcHBlbmQoVmFsdWVUeXBlJiYgdmFsdWUpIHsg
YXBwZW5kPFZhbHVlVHlwZT4oc3RkOjpmb3J3YXJkPFZhbHVlVHlwZT4odmFsdWUpKTsgfQorICAg
IEFMV0FZU19JTkxJTkUgdm9pZCBhcHBlbmQoVmFsdWVUeXBlJiYgdmFsdWUpIHsgYXBwZW5kPFZh
bHVlVHlwZT4oc3RkOjpmb3J3YXJkPFZhbHVlVHlwZT4odmFsdWUpKTsgfQogICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFU+IHZvaWQgYXBwZW5kKFUmJik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4g
QXJncz4gdm9pZCBjb25zdHJ1Y3RBbmRBcHBlbmQoQXJncyYmLi4uKTsKICAgICB0ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBBcmdzPiBib29sIHRyeUNvbnN0cnVjdEFuZEFwcGVuZChBcmdzJiYuLi4pOwpA
QCAtMTAzMiw3ICsxMDMyLDcgQEAgdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJm
bG93SAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5
cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6ZV90IG1pbkNhcGFjaXR5PgotVCogVmVjdG9yPFQs
IGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6ZXhwYW5kQ2Fw
YWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5LCBUKiBwdHIpCitORVZFUl9JTkxJTkUgVCogVmVj
dG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6ZXhw
YW5kQ2FwYWNpdHkoc2l6ZV90IG5ld01pbkNhcGFjaXR5LCBUKiBwdHIpCiB7CiAgICAgaWYgKHB0
ciA8IGJlZ2luKCkgfHwgcHRyID49IGVuZCgpKSB7CiAgICAgICAgIGV4cGFuZENhcGFjaXR5KG5l
d01pbkNhcGFjaXR5KTsKQEAgLTEyNDQsNyArMTI0NCw3IEBAIHZvaWQgVmVjdG9yPFQsIGlubGlu
ZUNhcGFjaXR5LCBPdmVyZmxvd0gKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4K
IHRlbXBsYXRlPHR5cGVuYW1lIFU+Ci12b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3Zl
cmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT46OmFwcGVuZChjb25zdCBVKiBkYXRhLCBzaXplX3Qg
ZGF0YVNpemUpCitBTFdBWVNfSU5MSU5FIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBP
dmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6YXBwZW5kKGNvbnN0IFUqIGRhdGEsIHNpemVf
dCBkYXRhU2l6ZSkKIHsKICAgICBzaXplX3QgbmV3U2l6ZSA9IG1fc2l6ZSArIGRhdGFTaXplOwog
ICAgIGlmIChuZXdTaXplID4gY2FwYWNpdHkoKSkgewpAQCAtMTI2MSw3ICsxMjYxLDcgQEAgdm9p
ZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SAogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBULCBzaXplX3QgaW5saW5lQ2FwYWNpdHksIHR5cGVuYW1lIE92ZXJmbG93SGFuZGxlciwgc2l6
ZV90IG1pbkNhcGFjaXR5PgogdGVtcGxhdGU8dHlwZW5hbWUgVT4KLWJvb2wgVmVjdG9yPFQsIGlu
bGluZUNhcGFjaXR5LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6dHJ5QXBwZW5kKGNv
bnN0IFUqIGRhdGEsIHNpemVfdCBkYXRhU2l6ZSkKK0FMV0FZU19JTkxJTkUgYm9vbCBWZWN0b3I8
VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWluQ2FwYWNpdHk+Ojp0cnlBcHBl
bmQoY29uc3QgVSogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQogewogICAgIHNpemVfdCBuZXdTaXpl
ID0gbV9zaXplICsgZGF0YVNpemU7CiAgICAgaWYgKG5ld1NpemUgPiBjYXBhY2l0eSgpKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341127</attachid>
            <date>2018-05-23 14:05:35 -0700</date>
            <delta_ts>2018-05-23 14:05:35 -0700</delta_ts>
            <desc>patch for landing</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>23978</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMyMTA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBA
CisyMDE4LTA1LTIzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
U3BlZWQgdXAgSmV0U3RyZWFtL2Jhc2U2NAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTg1OTE0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBT
YWJvZmYuCisgICAgICAgIAorICAgICAgICBNYWtlIGFsbG9jYXRpb24gZmFzdCBwYXRocyBBTFdB
WVNfSU5MSU5FLgorICAgICAgICAKKyAgICAgICAgVGhpcyBpcyBhIDElIHNwZWVkLXVwIG9uIFN1
blNwaWRlciwgbW9zdGx5IGJlY2F1c2Ugb2YgYmFzZTY0LiBJdCBhbHNvIHNwZWVkcyB1cCBwZGZq
cyBieQorICAgICAgICB+NiUuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAg
KiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGhl
YXAvQWxsb2NhdG9ySW5saW5lcy5oOgorICAgICAgICAoSlNDOjpBbGxvY2F0b3I6OmFsbG9jYXRl
IGNvbnN0KToKKyAgICAgICAgKiBoZWFwL0NvbXBsZXRlU3Vic3BhY2UuY3BwOgorICAgICAgICAo
SlNDOjpDb21wbGV0ZVN1YnNwYWNlOjphbGxvY2F0ZU5vblZpcnR1YWwpOiBEZWxldGVkLgorICAg
ICAgICAqIGhlYXAvQ29tcGxldGVTdWJzcGFjZS5oOgorICAgICAgICAqIGhlYXAvQ29tcGxldGVT
dWJzcGFjZUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6OkNvbXBsZXRlU3Vic3BhY2U6
OmFsbG9jYXRlTm9uVmlydHVhbCk6CisgICAgICAgICogaGVhcC9GcmVlTGlzdElubGluZXMuaDoK
KyAgICAgICAgKEpTQzo6RnJlZUxpc3Q6OmFsbG9jYXRlKToKKyAgICAgICAgKiBoZWFwL0lzb1N1
YnNwYWNlLmNwcDoKKyAgICAgICAgKEpTQzo6SXNvU3Vic3BhY2U6OmFsbG9jYXRlTm9uVmlydHVh
bCk6IERlbGV0ZWQuCisgICAgICAgICogaGVhcC9Jc29TdWJzcGFjZS5oOgorICAgICAgICAoSlND
OjpJc29TdWJzcGFjZTo6YWxsb2NhdG9yRm9yTm9uVmlydHVhbCk6CisgICAgICAgICogaGVhcC9J
c29TdWJzcGFjZUlubGluZXMuaDogQWRkZWQuCisgICAgICAgIChKU0M6Oklzb1N1YnNwYWNlOjph
bGxvY2F0ZU5vblZpcnR1YWwpOgorICAgICAgICAqIHJ1bnRpbWUvSlNDZWxsSW5saW5lcy5oOgor
ICAgICAgICAqIHJ1bnRpbWUvVk0uaDoKKwogMjAxOC0wNS0yMiAgWXVzdWtlIFN1enVraSAgPHV0
YXRhbmUudGVhQGdtYWlsLmNvbT4KIAogICAgICAgICBbSlNDXSBDbGVhbiB1cCBzdHJpbmdHZXRC
eVZhbFN0dWJHZW5lcmF0b3IKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3Rz
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ01ha2VMaXN0cy50eHQJ
KHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DTWFrZUxpc3RzLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtNDkwLDYgKzQ5MCw3IEBAIHNldChKYXZhU2NyaXB0Q29yZV9Q
UklWQVRFX0ZSQU1FV09SS19IRUEKICAgICBoZWFwL0FsaWduZWRNZW1vcnlBbGxvY2F0b3IuaAog
ICAgIGhlYXAvQWxsb2NhdGlvbkZhaWx1cmVNb2RlLmgKICAgICBoZWFwL0FsbG9jYXRvci5oCisg
ICAgaGVhcC9BbGxvY2F0b3JJbmxpbmVzLmgKICAgICBoZWFwL0FsbG9jYXRvckZvck1vZGUuaAog
ICAgIGhlYXAvQmxvY2tEaXJlY3RvcnkuaAogICAgIGhlYXAvQmxvY2tEaXJlY3RvcnlJbmxpbmVz
LmgKQEAgLTUwMCw2ICs1MDEsNyBAQCBzZXQoSmF2YVNjcmlwdENvcmVfUFJJVkFURV9GUkFNRVdP
UktfSEVBCiAgICAgaGVhcC9Db2xsZWN0aW9uU2NvcGUuaAogICAgIGhlYXAvQ29sbGVjdG9yUGhh
c2UuaAogICAgIGhlYXAvQ29tcGxldGVTdWJzcGFjZS5oCisgICAgaGVhcC9Db21wbGV0ZVN1YnNw
YWNlSW5saW5lcy5oCiAgICAgaGVhcC9Db25zdHJhaW50Q29uY3VycmVuY3kuaAogICAgIGhlYXAv
Q29uc3RyYWludFBhcmFsbGVsaXNtLmgKICAgICBoZWFwL0NvbnN0cmFpbnRWb2xhdGlsaXR5LmgK
QEAgLTUzMywxMCArNTM1LDEyIEBAIHNldChKYXZhU2NyaXB0Q29yZV9QUklWQVRFX0ZSQU1FV09S
S19IRUEKICAgICBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5oCiAgICAgaGVhcC9Jc29DZWxsU2V0
LmgKICAgICBoZWFwL0lzb1N1YnNwYWNlLmgKKyAgICBoZWFwL0lzb1N1YnNwYWNlSW5saW5lcy5o
CiAgICAgaGVhcC9Jc29TdWJzcGFjZVBlclZNLmgKICAgICBoZWFwL0xhcmdlQWxsb2NhdGlvbi5o
CiAgICAgaGVhcC9MaXN0YWJsZUhhbmRsZXIuaAogICAgIGhlYXAvTG9jYWxBbGxvY2F0b3IuaAor
ICAgIGhlYXAvTG9jYWxBbGxvY2F0b3JJbmxpbmVzLmgKICAgICBoZWFwL0xvY2tEdXJpbmdNYXJr
aW5nLmgKICAgICBoZWFwL01hY2hpbmVTdGFja01hcmtlci5oCiAgICAgaGVhcC9NYXJrU3RhY2su
aApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIzMjEwNCkKKysr
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0zOTQsOSArMzk0LDkgQEAKIAkJMEY3MjVDQUExQzUw
M0RFRDAwQUQ5NDNBIC8qIEIzUHVyZUNTRS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMEY3MjVDQTYxQzUwM0RFRDAwQUQ5NDNBIC8qIEIzUHVyZUNTRS5o
ICovOyB9OwogCQkwRjcyNUNCMDFDNTA2RDNCMDBBRDk0M0EgLyogQjNGb2xkUGF0aENvbnN0YW50
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3MjVD
QUUxQzUwNkQzQjAwQUQ5NDNBIC8qIEIzRm9sZFBhdGhDb25zdGFudHMuaCAqLzsgfTsKIAkJMEY3
NEI5M0IxRjg5NjE0ODAwQjkzNUQzIC8qIFByb3RvdHlwZUtleS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3NEI5M0ExRjg5NjE0NTAwQjkzNUQzIC8q
IFByb3RvdHlwZUtleS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07Ci0JCTBGNzVBMDYwMjAwRDI2MEIwMDM4RTJDRiAvKiBMb2NhbEFsbG9jYXRvcklubGlu
ZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzVB
MDVBMjAwRDI1RjAwMDM4RTJDRiAvKiBMb2NhbEFsbG9jYXRvcklubGluZXMuaCAqLzsgfTsKKwkJ
MEY3NUEwNjAyMDBEMjYwQjAwMzhFMkNGIC8qIExvY2FsQWxsb2NhdG9ySW5saW5lcy5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEY3NUEwNUEyMDBEMjVG
MDAwMzhFMkNGIC8qIExvY2FsQWxsb2NhdG9ySW5saW5lcy5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNzVBMDYxMjAwRDI2MTgwMDM4RTJDRiAv
KiBMb2NhbEFsbG9jYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMEY3NUEwNTcyMDBEMjVGMDAwMzhFMkNGIC8qIExvY2FsQWxsb2NhdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJMEY3NUEwNjIy
MDBEMjYxRDAwMzhFMkNGIC8qIEFsbG9jYXRvcklubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzVBMDVEMjAwRDI1RjEwMDM4RTJDRiAvKiBB
bGxvY2F0b3JJbmxpbmVzLmggKi87IH07CisJCTBGNzVBMDYyMjAwRDI2MUQwMDM4RTJDRiAvKiBB
bGxvY2F0b3JJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAwRjc1QTA1RDIwMEQyNUYxMDAzOEUyQ0YgLyogQWxsb2NhdG9ySW5saW5lcy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTBGNzVBMDYz
MjAwRDI2MUYwMDM4RTJDRiAvKiBBbGxvY2F0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGNzVBMDU0MjAwRDI1RUYwMDM4RTJDRiAvKiBBbGxvY2F0
b3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkw
Rjc1QTA2NjIwMTNFNEYxMDAzOEUyQ0YgLyogSklUQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc1QTA2NTIwMTNFNEVGMDAzOEUyQ0Yg
LyogSklUQWxsb2NhdG9yLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJMEY3NjZEMkMxNUE4Q0MzQTAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjc2NkQy
QTE1QThDQzM0MDA4RjM2M0UgLyogSklUU3R1YlJvdXRpbmVTZXQuaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtNTQ2LDYgKzU0Niw4IEBACiAJCTBG
RDBFNUYwMUU0NkJGMjUwMDA2QUIwOCAvKiBSZWdpc3RlclN0YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQwRTVFRjFFNDZCRjIzMDAwNkFCMDgg
LyogUmVnaXN0ZXJTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTBGRDBFNUYyMUU0NkM4QUYwMDA2QUIwOCAvKiBDb2xsZWN0aW5nU2NvcGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDBFNUYx
MUU0NkM4QUQwMDA2QUIwOCAvKiBDb2xsZWN0aW5nU2NvcGUuaCAqLzsgfTsKIAkJMEZEMkM5MjQx
NkQwMUVFOTAwQzc4MDNGIC8qIFN0cnVjdHVyZUlubGluZXMuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBGRDJDOTIzMTZEMDFFRTkwMEM3ODAzRiAvKiBT
dHJ1Y3R1cmVJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJMEZEMkZEOTQyMEI1MkJERTAwRjA5NDQxIC8qIENvbXBsZXRlU3Vic3BhY2VJ
bmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAw
RkQyRkQ5MzIwQjUyQkREMDBGMDk0NDEgLyogQ29tcGxldGVTdWJzcGFjZUlubGluZXMuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQkwRkQyRkQ5NTIw
QjUyQkUyMDBGMDk0NDEgLyogSXNvU3Vic3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQyRkQ5MjIwQjUyQkRDMDBGMDk0NDEgLyog
SXNvU3Vic3BhY2VJbmxpbmVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMEZEM0M4MjgxNDExNUQ0RjAwRkQ4MUNCIC8qIERGR0RyaXZlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEZEM0M4MjIxNDEx
NUQwRTAwRkQ4MUNCIC8qIERGR0RyaXZlci5oICovOyB9OwogCQkwRkQzRTQwMjFCNjE4QUFGMDBD
ODBFMUUgLyogREZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRkQzRTQwMDFCNjE4
QUFGMDBDODBFMUUgLyogREZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50
LmggKi87IH07CiAJCTBGRDNFNDBBMUI2MThCNjYwMEM4MEUxRSAvKiBPYmplY3RQcm9wZXJ0eUNv
bmRpdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MEZEM0U0MDQxQjYxOEI2NjAwQzgwRTFFIC8qIE9iamVjdFByb3BlcnR5Q29uZGl0aW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI3MDUsNiAr
MjcwNyw4IEBACiAJCTBGRDBFNUVGMUU0NkJGMjMwMDA2QUIwOCAvKiBSZWdpc3RlclN0YXRlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZ2lzdGVyU3RhdGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZEMEU1RjExRTQ2QzhBRDAwMDZBQjA4IC8qIENvbGxl
Y3RpbmdTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDb2xsZWN0aW5n
U2NvcGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZEMkM5MjMxNkQwMUVFOTAw
Qzc4MDNGIC8qIFN0cnVjdHVyZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU3RydWN0dXJlSW5saW5lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkw
RkQyRkQ5MjIwQjUyQkRDMDBGMDk0NDEgLyogSXNvU3Vic3BhY2VJbmxpbmVzLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElzb1N1YnNwYWNlSW5saW5lcy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQkwRkQyRkQ5MzIwQjUyQkREMDBGMDk0NDEgLyogQ29tcGxldGVT
dWJzcGFjZUlubGluZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29tcGxl
dGVTdWJzcGFjZUlubGluZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEZEM0M4
MjAxNDExNUNGODAwRkQ4MUNCIC8qIERGR0RyaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBERkdEcml2ZXIuY3BwOyBwYXRoID0gZGZnL0RGR0RyaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGRDNDODIyMTQxMTVEMEUwMEZEODFDQiAv
KiBERkdEcml2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gREZHRHJpdmVy
Lmg7IHBhdGggPSBkZmcvREZHRHJpdmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTBGRDNFM0ZGMUI2MThBQUYwMEM4MEUxRSAvKiBERkdBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlW
YWx1ZVdhdGNocG9pbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
REZHQWRhcHRpdmVJbmZlcnJlZFByb3BlcnR5VmFsdWVXYXRjaHBvaW50LmNwcDsgcGF0aCA9IGRm
Zy9ERkdBZGFwdGl2ZUluZmVycmVkUHJvcGVydHlWYWx1ZVdhdGNocG9pbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTYzNSw2ICs1NjM5LDcgQEAKIAkJCQkwRkQwRTVFNjFF
NDNEMzQ3MDAwNkFCMDggLyogQ29sbGVjdG9yUGhhc2UuaCAqLywKIAkJCQkwRkRDRTEyNzFGQUZB
ODU5MDA2RjM5MDEgLyogQ29tcGxldGVTdWJzcGFjZS5jcHAgKi8sCiAJCQkJMEZEQ0UxMjgxRkFG
QTg1OTAwNkYzOTAxIC8qIENvbXBsZXRlU3Vic3BhY2UuaCAqLywKKwkJCQkwRkQyRkQ5MzIwQjUy
QkREMDBGMDk0NDEgLyogQ29tcGxldGVTdWJzcGFjZUlubGluZXMuaCAqLywKIAkJCQkxNDZCMTRE
QjEyRUI1QjEyMDAxQkVDMUIgLyogQ29uc2VydmF0aXZlUm9vdHMuY3BwICovLAogCQkJCTE0OURB
QUYyMTJFQjU1OUQwMDgzQjEyQiAvKiBDb25zZXJ2YXRpdmVSb290cy5oICovLAogCQkJCTBGNDE1
NDVBMUZEMjBCMUYwMDFCNThGNiAvKiBDb25zdHJhaW50Q29uY3VycmVuY3kuaCAqLywKQEAgLTU3
MTAsNiArNTcxNSw3IEBACiAJCQkJMEZCNDY3N0IxRkREQTZEODAwM0ZDQjA5IC8qIElzb0NlbGxT
ZXRJbmxpbmVzLmggKi8sCiAJCQkJMEZEQ0UxMkMxRkFGQjRERTAwNkYzOTAxIC8qIElzb1N1YnNw
YWNlLmNwcCAqLywKIAkJCQkwRkRDRTEyQjFGQUZCNERFMDA2RjM5MDEgLyogSXNvU3Vic3BhY2Uu
aCAqLywKKwkJCQkwRkQyRkQ5MjIwQjUyQkRDMDBGMDk0NDEgLyogSXNvU3Vic3BhY2VJbmxpbmVz
LmggKi8sCiAJCQkJMEY1RTBGRTYyMDg2QUQ0NzAwOTdGMERFIC8qIElzb1N1YnNwYWNlUGVyVk0u
Y3BwICovLAogCQkJCTBGNUUwRkU1MjA4NkFENDYwMDk3RjBERSAvKiBJc29TdWJzcGFjZVBlclZN
LmggKi8sCiAJCQkJMEY3NjZEMjkxNUE4Q0MzNDAwOEYzNjNFIC8qIEpJVFN0dWJSb3V0aW5lU2V0
LmNwcCAqLywKQEAgLTgzMTUsNiArODMyMSw3IEBACiAJCQkJMEY0QzkxNjYxQzI5RjRGMjAwNDM0
MUE2IC8qIEIzT3JpZ2luRHVtcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MjYxQkRBQ0RB
QzAwODBGRjc0IC8qIEIzUGF0Y2hwb2ludFNwZWNpYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCTBG
RUM4NTI4MUJEQUNEQUMwMDgwRkY3NCAvKiBCM1BhdGNocG9pbnRWYWx1ZS5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJMEZEMkZEOTUyMEI1MkJFMjAwRjA5NDQxIC8qIElzb1N1YnNwYWNlSW5saW5lcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNzk5RUY3QzQxQzU2RUQ5NjAwMkIwNTM0IC8qIEIzUENUb09y
aWdpbk1hcC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZFQzg1MkExQkRBQ0RBQzAwODBGRjc0IC8q
IEIzUGhhc2VTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEYzNzMwOEQxQzBCRDI5MTAwMDUy
QkZBIC8qIEIzUGhpQ2hpbGRyZW4uaCBpbiBIZWFkZXJzICovLApAQCAtODk0OSw2ICs4OTU2LDcg
QEAKIAkJCQlCQzE4QzQxNDBFMTZGNUNEMDBCMzQ0NjAgLyogSmF2YVNjcmlwdENvcmUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDMThDNDE1MEUxNkY1Q0QwMEIzNDQ2MCAvKiBKYXZhU2NyaXB0Q29y
ZVByZWZpeC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMTQyOUQ5MzAwRUQyMkQ3MDAwQjg5NjE5IC8q
IEpJVC5oIGluIEhlYWRlcnMgKi8sCisJCQkJMEZEMkZEOTQyMEI1MkJERTAwRjA5NDQxIC8qIENv
bXBsZXRlU3Vic3BhY2VJbmxpbmVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlGRTEyMjAyNzFCRTdG
NThDMDAzOUU2RjIgLyogSklUQWRkR2VuZXJhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRjc1
QTA2NjIwMTNFNEYxMDAzOEUyQ0YgLyogSklUQWxsb2NhdG9yLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlGRTNBMDZCMjFDMTBDQjg5MDAzOTBGREQgLyogSklUQml0QW5kR2VuZXJhdG9yLmggaW4gSGVh
ZGVycyAqLywKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0FsbG9jYXRvcklubGlu
ZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9BbGxvY2F0b3JJ
bmxpbmVzLmgJKHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFw
L0FsbG9jYXRvcklubGluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMzAsNyArMzAsNyBAQAogCiBu
YW1lc3BhY2UgSlNDIHsKIAotaW5saW5lIHZvaWQqIEFsbG9jYXRvcjo6YWxsb2NhdGUoR0NEZWZl
cnJhbENvbnRleHQqIGNvbnRleHQsIEFsbG9jYXRpb25GYWlsdXJlTW9kZSBtb2RlKSBjb25zdAor
QUxXQVlTX0lOTElORSB2b2lkKiBBbGxvY2F0b3I6OmFsbG9jYXRlKEdDRGVmZXJyYWxDb250ZXh0
KiBjb250ZXh0LCBBbGxvY2F0aW9uRmFpbHVyZU1vZGUgbW9kZSkgY29uc3QKIHsKICAgICByZXR1
cm4gbV9sb2NhbEFsbG9jYXRvci0+YWxsb2NhdGUoY29udGV4dCwgbW9kZSk7CiB9CkluZGV4OiBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmNwcAkocmV2
aXNpb24gMjMyMTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJz
cGFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3LDEzICs1Nyw2IEBAIHZvaWQqIENvbXBsZXRl
U3Vic3BhY2U6OmFsbG9jYXRlKFZNJiB2bSwKICAgICByZXR1cm4gYWxsb2NhdGVOb25WaXJ0dWFs
KHZtLCBzaXplLCBkZWZlcnJhbENvbnRleHQsIGZhaWx1cmVNb2RlKTsKIH0KIAotdm9pZCogQ29t
cGxldGVTdWJzcGFjZTo6YWxsb2NhdGVOb25WaXJ0dWFsKFZNJiB2bSwgc2l6ZV90IHNpemUsIEdD
RGVmZXJyYWxDb250ZXh0KiBkZWZlcnJhbENvbnRleHQsIEFsbG9jYXRpb25GYWlsdXJlTW9kZSBm
YWlsdXJlTW9kZSkKLXsKLSAgICBpZiAoQWxsb2NhdG9yIGFsbG9jYXRvciA9IGFsbG9jYXRvckZv
ck5vblZpcnR1YWwoc2l6ZSwgQWxsb2NhdG9yRm9yTW9kZTo6QWxsb2NhdG9ySWZFeGlzdHMpKQot
ICAgICAgICByZXR1cm4gYWxsb2NhdG9yLmFsbG9jYXRlKGRlZmVycmFsQ29udGV4dCwgZmFpbHVy
ZU1vZGUpOwotICAgIHJldHVybiBhbGxvY2F0ZVNsb3codm0sIHNpemUsIGRlZmVycmFsQ29udGV4
dCwgZmFpbHVyZU1vZGUpOwotfQotCiBBbGxvY2F0b3IgQ29tcGxldGVTdWJzcGFjZTo6YWxsb2Nh
dG9yRm9yU2xvdyhzaXplX3Qgc2l6ZSkKIHsKICAgICBzaXplX3QgaW5kZXggPSBNYXJrZWRTcGFj
ZTo6c2l6ZUNsYXNzVG9JbmRleChzaXplKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9o
ZWFwL0NvbXBsZXRlU3Vic3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlLmgJKHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2UuaAkod29ya2luZyBjb3B5KQpAQCAt
NDMsMTcgKzQzLDE3IEBAIHB1YmxpYzoKICAgICBBbGxvY2F0b3IgYWxsb2NhdG9yRm9yTm9uVmly
dHVhbChzaXplX3QsIEFsbG9jYXRvckZvck1vZGUpOwogICAgIAogICAgIHZvaWQqIGFsbG9jYXRl
KFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4dCosIEFsbG9jYXRpb25GYWlsdXJlTW9kZSkg
b3ZlcnJpZGU7Ci0gICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCogYWxsb2NhdGVOb25WaXJ0dWFs
KFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4dCosIEFsbG9jYXRpb25GYWlsdXJlTW9kZSk7
CisgICAgdm9pZCogYWxsb2NhdGVOb25WaXJ0dWFsKFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29u
dGV4dCosIEFsbG9jYXRpb25GYWlsdXJlTW9kZSk7CiAgICAgCiAgICAgc3RhdGljIHB0cmRpZmZf
dCBvZmZzZXRPZkFsbG9jYXRvckZvclNpemVTdGVwKCkgeyByZXR1cm4gT0JKRUNUX09GRlNFVE9G
KENvbXBsZXRlU3Vic3BhY2UsIG1fYWxsb2NhdG9yRm9yU2l6ZVN0ZXApOyB9CiAgICAgCiAgICAg
QWxsb2NhdG9yKiBhbGxvY2F0b3JGb3JTaXplU3RlcCgpIHsgcmV0dXJuICZtX2FsbG9jYXRvckZv
clNpemVTdGVwWzBdOyB9CiAKIHByaXZhdGU6Ci0gICAgQWxsb2NhdG9yIGFsbG9jYXRvckZvclNs
b3coc2l6ZV90KTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBBbGxvY2F0b3IgYWxsb2NhdG9yRm9y
U2xvdyhzaXplX3QpOwogICAgIAogICAgIC8vIFRoZXNlIHNsb3cgcGF0aHMgYXJlIGNvbmNlcm5l
ZCB3aXRoIGxhcmdlIGFsbG9jYXRpb25zIGFuZCBhbGxvY2F0b3IgY3JlYXRpb24uCi0gICAgdm9p
ZCogYWxsb2NhdGVTbG93KFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4dCosIEFsbG9jYXRp
b25GYWlsdXJlTW9kZSk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgdm9pZCogYWxsb2NhdGVTbG93
KFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4dCosIEFsbG9jYXRpb25GYWlsdXJlTW9kZSk7
CiAgICAgdm9pZCogdHJ5QWxsb2NhdGVTbG93KFZNJiwgc2l6ZV90LCBHQ0RlZmVycmFsQ29udGV4
dCopOwogICAgIAogICAgIHN0ZDo6YXJyYXk8QWxsb2NhdG9yLCBNYXJrZWRTcGFjZTo6bnVtU2l6
ZUNsYXNzZXM+IG1fYWxsb2NhdG9yRm9yU2l6ZVN0ZXA7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9Db21wbGV0ZVN1YnNwYWNlSW5saW5lcy5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0NvbXBsZXRlU3Vic3BhY2VJbmxpbmVzLmgJKG5vbmV4aXN0
ZW50KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvQ29tcGxldGVTdWJzcGFjZUlubGlu
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDM4IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgSlND
IHsKKworQUxXQVlTX0lOTElORSB2b2lkKiBDb21wbGV0ZVN1YnNwYWNlOjphbGxvY2F0ZU5vblZp
cnR1YWwoVk0mIHZtLCBzaXplX3Qgc2l6ZSwgR0NEZWZlcnJhbENvbnRleHQqIGRlZmVycmFsQ29u
dGV4dCwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlIGZhaWx1cmVNb2RlKQoreworICAgIGlmIChBbGxv
Y2F0b3IgYWxsb2NhdG9yID0gYWxsb2NhdG9yRm9yTm9uVmlydHVhbChzaXplLCBBbGxvY2F0b3JG
b3JNb2RlOjpBbGxvY2F0b3JJZkV4aXN0cykpCisgICAgICAgIHJldHVybiBhbGxvY2F0b3IuYWxs
b2NhdGUoZGVmZXJyYWxDb250ZXh0LCBmYWlsdXJlTW9kZSk7CisgICAgcmV0dXJuIGFsbG9jYXRl
U2xvdyh2bSwgc2l6ZSwgZGVmZXJyYWxDb250ZXh0LCBmYWlsdXJlTW9kZSk7Cit9CisKK30gLy8g
bmFtZXNwYWNlIEpTQworCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GcmVlTGlz
dElubGluZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9GcmVl
TGlzdElubGluZXMuaAkocmV2aXNpb24gMjMyMTA0KQorKysgU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvRnJlZUxpc3RJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAK
IG5hbWVzcGFjZSBKU0MgewogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jPgotSGVhcENlbGwqIEZy
ZWVMaXN0OjphbGxvY2F0ZShjb25zdCBGdW5jJiBzbG93UGF0aCkKK0FMV0FZU19JTkxJTkUgSGVh
cENlbGwqIEZyZWVMaXN0OjphbGxvY2F0ZShjb25zdCBGdW5jJiBzbG93UGF0aCkKIHsKICAgICB1
bnNpZ25lZCByZW1haW5pbmcgPSBtX3JlbWFpbmluZzsKICAgICBpZiAocmVtYWluaW5nKSB7Cklu
ZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2UuY3BwCShyZXZpc2lv
biAyMzIxMDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTYzLDE0ICs2Myw2IEBAIHZvaWQqIElzb1N1YnNwYWNlOjphbGxv
Y2F0ZShWTSYgdm0sIHNpemUKICAgICByZXR1cm4gYWxsb2NhdGVOb25WaXJ0dWFsKHZtLCBzaXpl
LCBkZWZlcnJhbENvbnRleHQsIGZhaWx1cmVNb2RlKTsKIH0KIAotdm9pZCogSXNvU3Vic3BhY2U6
OmFsbG9jYXRlTm9uVmlydHVhbChWTSYsIHNpemVfdCBzaXplLCBHQ0RlZmVycmFsQ29udGV4dCog
ZGVmZXJyYWxDb250ZXh0LCBBbGxvY2F0aW9uRmFpbHVyZU1vZGUgZmFpbHVyZU1vZGUpCi17Ci0g
ICAgUkVMRUFTRV9BU1NFUlQoc2l6ZSA9PSB0aGlzLT5zaXplKCkpOwotICAgIEFsbG9jYXRvciBh
bGxvY2F0b3IgPSBhbGxvY2F0b3JGb3JOb25WaXJ0dWFsKHNpemUsIEFsbG9jYXRvckZvck1vZGU6
Ok11c3RBbHJlYWR5SGF2ZUFsbG9jYXRvcik7Ci0gICAgdm9pZCogcmVzdWx0ID0gYWxsb2NhdG9y
LmFsbG9jYXRlKGRlZmVycmFsQ29udGV4dCwgZmFpbHVyZU1vZGUpOwotICAgIHJldHVybiByZXN1
bHQ7Ci19Ci0KIHZvaWQgSXNvU3Vic3BhY2U6OmRpZFJlc2l6ZUJpdHMoc2l6ZV90IGJsb2NrSW5k
ZXgpCiB7CiAgICAgbV9jZWxsU2V0cy5mb3JFYWNoKApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL2hlYXAvSXNvU3Vic3BhY2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9Jc29TdWJzcGFjZS5oCShyZXZpc2lvbiAyMzIxMDQpCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9Jc29TdWJzcGFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSw3ICs0NSw3
IEBAIHB1YmxpYzoKICAgICBBbGxvY2F0b3IgYWxsb2NhdG9yRm9yTm9uVmlydHVhbChzaXplX3Qs
IEFsbG9jYXRvckZvck1vZGUpOwogCiAgICAgdm9pZCogYWxsb2NhdGUoVk0mLCBzaXplX3QsIEdD
RGVmZXJyYWxDb250ZXh0KiwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlKSBvdmVycmlkZTsKLSAgICBK
U19FWFBPUlRfUFJJVkFURSB2b2lkKiBhbGxvY2F0ZU5vblZpcnR1YWwoVk0mLCBzaXplX3QsIEdD
RGVmZXJyYWxDb250ZXh0KiwgQWxsb2NhdGlvbkZhaWx1cmVNb2RlKTsKKyAgICB2b2lkKiBhbGxv
Y2F0ZU5vblZpcnR1YWwoVk0mLCBzaXplX3QsIEdDRGVmZXJyYWxDb250ZXh0KiwgQWxsb2NhdGlv
bkZhaWx1cmVNb2RlKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgSXNvQ2VsbFNldDsK
QEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAgICBTZW50aW5lbExpbmtlZExpc3Q8SXNvQ2Vs
bFNldCwgQmFzaWNSYXdTZW50aW5lbE5vZGU8SXNvQ2VsbFNldD4+IG1fY2VsbFNldHM7CiB9Owog
Ci1pbmxpbmUgQWxsb2NhdG9yIElzb1N1YnNwYWNlOjphbGxvY2F0b3JGb3JOb25WaXJ0dWFsKHNp
emVfdCBzaXplLCBBbGxvY2F0b3JGb3JNb2RlKQorQUxXQVlTX0lOTElORSBBbGxvY2F0b3IgSXNv
U3Vic3BhY2U6OmFsbG9jYXRvckZvck5vblZpcnR1YWwoc2l6ZV90IHNpemUsIEFsbG9jYXRvckZv
ck1vZGUpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoc2l6ZSA9PSB0aGlzLT5zaXplKCkpOwogICAg
IHJldHVybiBBbGxvY2F0b3IoJm1fbG9jYWxBbGxvY2F0b3IpOwpJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2VJbmxpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2VJbmxpbmVzLmgJKG5vbmV4aXN0ZW50KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSXNvU3Vic3BhY2VJbmxpbmVzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRI
RQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQ
Uk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLiAKKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFtZXNwYWNlIEpTQyB7CisKK0FMV0FZ
U19JTkxJTkUgdm9pZCogSXNvU3Vic3BhY2U6OmFsbG9jYXRlTm9uVmlydHVhbChWTSYsIHNpemVf
dCBzaXplLCBHQ0RlZmVycmFsQ29udGV4dCogZGVmZXJyYWxDb250ZXh0LCBBbGxvY2F0aW9uRmFp
bHVyZU1vZGUgZmFpbHVyZU1vZGUpCit7CisgICAgUkVMRUFTRV9BU1NFUlQoc2l6ZSA9PSB0aGlz
LT5zaXplKCkpOworICAgIEFsbG9jYXRvciBhbGxvY2F0b3IgPSBhbGxvY2F0b3JGb3JOb25WaXJ0
dWFsKHNpemUsIEFsbG9jYXRvckZvck1vZGU6Ok11c3RBbHJlYWR5SGF2ZUFsbG9jYXRvcik7Cisg
ICAgdm9pZCogcmVzdWx0ID0gYWxsb2NhdG9yLmFsbG9jYXRlKGRlZmVycmFsQ29udGV4dCwgZmFp
bHVyZU1vZGUpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK30gLy8gbmFtZXNwYWNlIEpTQwor
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0NlbGxJbmxpbmVzLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNDZWxsSW5saW5lcy5o
CShyZXZpc2lvbiAyMzIxMDQpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0Nl
bGxJbmxpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTI1LDE0ICsyNSwxOSBAQAogCiAjcHJhZ21h
IG9uY2UKIAorI2luY2x1ZGUgIkFsbG9jYXRvcklubGluZXMuaCIKKyNpbmNsdWRlICJDb21wbGV0
ZVN1YnNwYWNlSW5saW5lcy5oIgogI2luY2x1ZGUgIkNQVS5oIgogI2luY2x1ZGUgIkNhbGxGcmFt
ZS5oIgogI2luY2x1ZGUgIkRlZmVyR0MuaCIKKyNpbmNsdWRlICJGcmVlTGlzdElubGluZXMuaCIK
ICNpbmNsdWRlICJIYW5kbGUuaCIKKyNpbmNsdWRlICJJc29TdWJzcGFjZUlubGluZXMuaCIKICNp
bmNsdWRlICJKU0Nhc3QuaCIKICNpbmNsdWRlICJKU0Rlc3RydWN0aWJsZU9iamVjdC5oIgogI2lu
Y2x1ZGUgIkpTT2JqZWN0LmgiCiAjaW5jbHVkZSAiSlNTdHJpbmcuaCIKKyNpbmNsdWRlICJMb2Nh
bEFsbG9jYXRvcklubGluZXMuaCIKICNpbmNsdWRlICJNYXJrZWRCbG9jay5oIgogI2luY2x1ZGUg
IlN0cnVjdHVyZS5oIgogI2luY2x1ZGUgIlN5bWJvbC5oIgpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmNwcAkocmV2aXNpb24gMjMyMTA0KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
OTUsNyArMjk1LDcgQEAgdm9pZCBKU1JvcGVTdHJpbmc6OnJlc29sdmVSb3BlKEV4ZWNTdGF0ZQog
Ly8gd2Ugd291bGQgbGlrZWx5IGhhdmUgdG8gcGxhY2UgYWxsIG9mIHRoZSBjb25zdGl0dWVudCBT
dHJpbmdJbXBscyBpbnRvIHRoZQogLy8gVmVjdG9yIGJlZm9yZSBwZXJmb3JtaW5nIGFueSBjb25j
YXRlbmF0aW9uLCBidXQgYnkgd29ya2luZyBiYWNrd2FyZHMgd2UgbGlrZWx5CiAvLyBvbmx5IGZp
bGwgdGhlIHF1ZXVlIHdpdGggdGhlIG51bWJlciBvZiBzdWJzdHJpbmdzIGF0IGFueSBnaXZlbiBs
ZXZlbCBpbiBhCi0vLyByb3BlLW9mLXJvcGVzLikgICAgCisvLyByb3BlLW9mLXJvcGVzLikKIHZv
aWQgSlNSb3BlU3RyaW5nOjpyZXNvbHZlUm9wZVNsb3dDYXNlOChMQ2hhciogYnVmZmVyKSBjb25z
dAogewogICAgIExDaGFyKiBwb3NpdGlvbiA9IGJ1ZmZlciArIGxlbmd0aCgpOyAvLyBXZSB3aWxs
IGJlIHdvcmtpbmcgYmFja3dhcmRzIG92ZXIgdGhlIHJvcGUuCkluZGV4OiBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmgJKHJldmlzaW9uIDIzMjEwNCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL1ZNLmgJKHdvcmtpbmcgY29weSkKQEAgLTk1MCw3ICs5NTAsNyBAQCBpbmxpbmUg
SGVhcCogV2Vha1NldDo6aGVhcCgpIGNvbnN0CiBleHRlcm4gIkMiIHZvaWQgc2FuaXRpemVTdGFj
a0ZvclZNSW1wbChWTSopOwogI2VuZGlmCiAKLXZvaWQgc2FuaXRpemVTdGFja0ZvclZNKFZNKik7
CitKU19FWFBPUlRfUFJJVkFURSB2b2lkIHNhbml0aXplU3RhY2tGb3JWTShWTSopOwogdm9pZCBs
b2dTYW5pdGl6ZVN0YWNrKFZNKik7CiAKIH0gLy8gbmFtZXNwYWNlIEpTQwpJbmRleDogU291cmNl
L1dURi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlz
aW9uIDIzMjEwNCkKKysrIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTgtMDUtMjMgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
KworICAgICAgICBTcGVlZCB1cCBKZXRTdHJlYW0vYmFzZTY0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU5MTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBNaWNoYWVsIFNhYm9mZi4KKyAgICAgICAgCisgICAgICAgIE1ha2UgVmVjdG9yPD46OmFwcGVu
ZCBBTFdBWVNfSU5MSU5FLgorCisgICAgICAgICogd3RmL1ZlY3Rvci5oOgorICAgICAgICAoV1RG
OjpWZWN0b3I6OmFwcGVuZCk6CisgICAgICAgIChXVEY6Om1pbkNhcGFjaXR5Pjo6ZXhwYW5kQ2Fw
YWNpdHkpOgorICAgICAgICAoV1RGOjptaW5DYXBhY2l0eT46OmFwcGVuZCk6CisgICAgICAgIChX
VEY6Om1pbkNhcGFjaXR5Pjo6dHJ5QXBwZW5kKToKKwogMjAxOC0wNS0yMiAgTWFyayBMYW0gIDxt
YXJrLmxhbUBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nSW1wbCB1dGY4IGNvbnZlcnNpb24g
c2hvdWxkIG5vdCBmYWlsIHNpbGVudGx5LgpJbmRleDogU291cmNlL1dURi93dGYvVmVjdG9yLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvVmVjdG9yLmgJKHJldmlzaW9uIDIzMjEwNCkK
KysrIFNvdXJjZS9XVEYvd3RmL1ZlY3Rvci5oCSh3b3JraW5nIGNvcHkpCkBAIC03NTgsNyArNzU4
LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBjbGVhcigpIHsgc2hyaW5rQ2FwYWNpdHkoMCk7IH0K
IAotICAgIHZvaWQgYXBwZW5kKFZhbHVlVHlwZSYmIHZhbHVlKSB7IGFwcGVuZDxWYWx1ZVR5cGU+
KHN0ZDo6Zm9yd2FyZDxWYWx1ZVR5cGU+KHZhbHVlKSk7IH0KKyAgICBBTFdBWVNfSU5MSU5FIHZv
aWQgYXBwZW5kKFZhbHVlVHlwZSYmIHZhbHVlKSB7IGFwcGVuZDxWYWx1ZVR5cGU+KHN0ZDo6Zm9y
d2FyZDxWYWx1ZVR5cGU+KHZhbHVlKSk7IH0KICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBVPiB2b2lk
IGFwcGVuZChVJiYpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHZvaWQgY29uc3Ry
dWN0QW5kQXBwZW5kKEFyZ3MmJi4uLik7CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4g
Ym9vbCB0cnlDb25zdHJ1Y3RBbmRBcHBlbmQoQXJncyYmLi4uKTsKQEAgLTEwMzIsNyArMTAzMiw3
IEBAIHZvaWQgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5LCBPdmVyZmxvd0gKIH0KIAogdGVtcGxh
dGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGluZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hh
bmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4KLVQqIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwg
T3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT46OmV4cGFuZENhcGFjaXR5KHNpemVfdCBuZXdN
aW5DYXBhY2l0eSwgVCogcHRyKQorTkVWRVJfSU5MSU5FIFQqIFZlY3RvcjxULCBpbmxpbmVDYXBh
Y2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT46OmV4cGFuZENhcGFjaXR5KHNpemVf
dCBuZXdNaW5DYXBhY2l0eSwgVCogcHRyKQogewogICAgIGlmIChwdHIgPCBiZWdpbigpIHx8IHB0
ciA+PSBlbmQoKSkgewogICAgICAgICBleHBhbmRDYXBhY2l0eShuZXdNaW5DYXBhY2l0eSk7CkBA
IC0xMjQ0LDcgKzEyNDQsNyBAQCB2b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZs
b3dICiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQsIHNpemVfdCBpbmxpbmVDYXBhY2l0eSwgdHlwZW5h
bWUgT3ZlcmZsb3dIYW5kbGVyLCBzaXplX3QgbWluQ2FwYWNpdHk+CiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBVPgotdm9pZCBWZWN0b3I8VCwgaW5saW5lQ2FwYWNpdHksIE92ZXJmbG93SGFuZGxlciwgbWlu
Q2FwYWNpdHk+OjphcHBlbmQoY29uc3QgVSogZGF0YSwgc2l6ZV90IGRhdGFTaXplKQorQUxXQVlT
X0lOTElORSB2b2lkIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3ZlcmZsb3dIYW5kbGVyLCBt
aW5DYXBhY2l0eT46OmFwcGVuZChjb25zdCBVKiBkYXRhLCBzaXplX3QgZGF0YVNpemUpCiB7CiAg
ICAgc2l6ZV90IG5ld1NpemUgPSBtX3NpemUgKyBkYXRhU2l6ZTsKICAgICBpZiAobmV3U2l6ZSA+
IGNhcGFjaXR5KCkpIHsKQEAgLTEyNjEsNyArMTI2MSw3IEBAIHZvaWQgVmVjdG9yPFQsIGlubGlu
ZUNhcGFjaXR5LCBPdmVyZmxvd0gKIAogdGVtcGxhdGU8dHlwZW5hbWUgVCwgc2l6ZV90IGlubGlu
ZUNhcGFjaXR5LCB0eXBlbmFtZSBPdmVyZmxvd0hhbmRsZXIsIHNpemVfdCBtaW5DYXBhY2l0eT4K
IHRlbXBsYXRlPHR5cGVuYW1lIFU+Ci1ib29sIFZlY3RvcjxULCBpbmxpbmVDYXBhY2l0eSwgT3Zl
cmZsb3dIYW5kbGVyLCBtaW5DYXBhY2l0eT46OnRyeUFwcGVuZChjb25zdCBVKiBkYXRhLCBzaXpl
X3QgZGF0YVNpemUpCitBTFdBWVNfSU5MSU5FIGJvb2wgVmVjdG9yPFQsIGlubGluZUNhcGFjaXR5
LCBPdmVyZmxvd0hhbmRsZXIsIG1pbkNhcGFjaXR5Pjo6dHJ5QXBwZW5kKGNvbnN0IFUqIGRhdGEs
IHNpemVfdCBkYXRhU2l6ZSkKIHsKICAgICBzaXplX3QgbmV3U2l6ZSA9IG1fc2l6ZSArIGRhdGFT
aXplOwogICAgIGlmIChuZXdTaXplID4gY2FwYWNpdHkoKSkgewo=
</data>

          </attachment>
      

    </bug>

</bugzilla>