<?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>230301</bug_id>
          
          <creation_ts>2021-09-15 02:05:19 -0700</creation_ts>
          <short_desc>AX: Move platform specific code for isolated tree mode to the platform files</short_desc>
          <delta_ts>2021-09-15 08:53:06 -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>Accessibility</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>
          
          <blocked>230254</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>aperez</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1793641</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-15 02:05:19 -0700</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793642</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-15 02:05:30 -0700</bug_when>
    <thetext>&lt;rdar://problem/83138024&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793643</commentid>
    <comment_count>2</comment_count>
      <attachid>438227</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-15 02:07:12 -0700</bug_when>
    <thetext>Created attachment 438227
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793644</commentid>
    <comment_count>3</comment_count>
      <attachid>438228</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-15 02:11:50 -0700</bug_when>
    <thetext>Created attachment 438228
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793647</commentid>
    <comment_count>4</comment_count>
      <attachid>438229</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-15 02:34:09 -0700</bug_when>
    <thetext>Created attachment 438229
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793675</commentid>
    <comment_count>5</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-09-15 05:45:04 -0700</bug_when>
    <thetext>Looks great. Thanks!
(In reply to Carlos Garcia Campos from comment #4)
&gt; Created attachment 438229 [details]
&gt; Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793687</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-15 06:44:28 -0700</bug_when>
    <thetext>Committed r282450 (241703@main): &lt;https://commits.webkit.org/241703@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438229.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1793701</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-09-15 07:57:43 -0700</bug_when>
    <thetext>Committed r282455 (241707@main): &lt;https://commits.webkit.org/241707@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438227</attachid>
            <date>2021-09-15 02:07:12 -0700</date>
            <delta_ts>2021-09-15 02:30:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-ax-platform-specific.diff</filename>
            <type>text/plain</type>
            <size>19306</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ODhmOTlmZjhkYmYuLmZjNDA2NGYwY2FjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM3IEBACisyMDIxLTA5LTE1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBBWDogTW92ZSBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIGZv
ciBpc29sYXRlZCB0cmVlIG1vZGUgdG8gdGhlIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAzMDEKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgzMTM4MDI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBtaXNzaW5nIGlmZGVmcyBpbiB0aGUgaGVhZGVycyBhbmQgbW92ZSB0
aGUgbWFjIHNwZWNpZmljIGNvZGUgdG8gbWFjIGZpbGVzLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
Omlzb2xhdGVkVHJlZVJvb3RPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6aXNJc29sYXRlZFRyZWVFbmFibGVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmluaXRpYWxpemVTZWNvbmRhcnlBWFRocmVhZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1c2VkT25BWFRocmVh
ZCk6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0
aWFsaXplQXR0cmlidXRlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0
OjpjaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpwcmV2ZW50
S2V5Ym9hcmRET01FdmVudERpc3BhdGNoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkFYSXNvbGF0ZWRPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2gp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y29udmVydFJl
Y3RUb1BsYXRmb3JtU3BhY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y29udmVydFJlY3RUb1BsYXRmb3Jt
U3BhY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6cHJldmVu
dEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElz
b2xhdGVkT2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aXNJc29sYXRlZFRyZWVFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmluaXRpYWxpemVTZWNvbmRhcnlBWFRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1c2VkT25BWFRocmVhZCk6CisKIDIw
MjEtMDktMTUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIEFYOiBSZW1vdmUgQVhDb3JlT2JqZWN0Ojpjb250YWluc1RleHQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDg5ZjhhNjViMTVm
ZS4uZjM1N2E2MTI1NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKQEAgLTExMiwxMyArMTEyLDYgQEAKICNpbmNsdWRlICJUZXh0Qm91bmRh
cmllcy5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgogI2luY2x1ZGUg
IlRleHRJdGVyYXRvci5oIgotCi0jaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkgJiYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQWNjZXNzaWJpbGl0
eVN1cHBvcnRTUEkuaD4KLSNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0FjY2Vzc2liaWxpdHlTdXBw
b3J0U29mdExpbmsuaD4KLSNpbmNsdWRlIDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+Ci0j
ZW5kaWYKLQogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNj
b3BlLmg+CiAKQEAgLTc2NywzNSArNzYwLDYgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmpl
Y3RDYWNoZTo6Z2V0T3JDcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICByZXR1cm4g
bmV3T2JqLmdldCgpOwogfQogCi0jaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkKLWJvb2wgQVhPYmplY3RDYWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUoKQotewot
ICAgIGF1dG8gY2xpZW50ID0gX0FYR2V0Q2xpZW50Rm9yQ3VycmVudFJlcXVlc3RVbnRydXN0ZWQo
KTsKLSAgICByZXR1cm4gY2xpZW50ID09IGtBWENsaWVudFR5cGVWb2ljZU92ZXIKLSAgICAgICAg
fHwgVU5MSUtFTFkoY2xpZW50ID09IGtBWENsaWVudFR5cGVXZWJLaXRUZXN0aW5nKTsKLX0KLQot
Ym9vbCBBWE9iamVjdENhY2hlOjppc0lzb2xhdGVkVHJlZUVuYWJsZWQoKQotewotICAgIHN0YXRp
YyBzdGQ6OmF0b21pYzxib29sPiBlbmFibGVkIHsgZmFsc2UgfTsKLSAgICBpZiAoZW5hYmxlZCkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0gICAg
ICAgIEFTU0VSVChfQVhVSUVsZW1lbnRSZXF1ZXN0U2VydmljZWRCeVNlY29uZGFyeUFYVGhyZWFk
KCkpOwotICAgICAgICBlbmFibGVkID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBlbmFi
bGVkID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pc0FjY2Vzc2li
aWxpdHlJc29sYXRlZFRyZWVFbmFibGVkKCkgLy8gVXNlZCB0byB0dXJuIG9mZiBpbiBhcHBzIG90
aGVyIHRoYW4gU2FmYXJpLCBlLmcuLCBNYWlsLgotICAgICAgICAgICAgJiYgX0FYU0lzb2xhdGVk
VHJlZU1vZGVGdW5jdGlvbklzQXZhaWxhYmxlKCkKLSAgICAgICAgICAgICYmIF9BWFNJc29sYXRl
ZFRyZWVNb2RlX1NvZnQoKSAhPSBBWFNJc29sYXRlZFRyZWVNb2RlT2ZmIC8vIFVzZWQgdG8gc3dp
dGNoIHZpYSBzeXN0ZW0gZGVmYXVsdHMuCi0gICAgICAgICAgICAmJiBjbGllbnRTdXBwb3J0c0lz
b2xhdGVkVHJlZSgpOwotICAgIH0KLQotICAgIHJldHVybiBlbmFibGVkOwotfQotCi0jZW5kaWYK
LQogQVhDb3JlT2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290T2JqZWN0KCkKIHsKICAgICBpZiAo
IWdBY2Nlc3NpYmlsaXR5RW5hYmxlZCkKQEAgLTgxMCwxNSArNzc0LDYgQEAgQVhDb3JlT2JqZWN0
KiBBWE9iamVjdENhY2hlOjpyb290T2JqZWN0KCkKIH0KIAogI2lmIEVOQUJMRShBQ0NFU1NJQklM
SVRZX0lTT0xBVEVEX1RSRUUpCi0KLXZvaWQgQVhPYmplY3RDYWNoZTo6aW5pdGlhbGl6ZVNlY29u
ZGFyeUFYVGhyZWFkKCkKLXsKLSAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIGNyZWF0ZWQgb3VyIHRy
ZWUsIGluaXRpYWxpemUgdGhlIHNlY29uZGFyeSB0aHJlYWQsCi0gICAgLy8gc28gZnV0dXJlIHJl
cXVlc3RzIGNvbWUgaW4gb24gdGhlIG90aGVyIHRocmVhZC4KLSAgICBpZiAoX0FYU0lzb2xhdGVk
VHJlZU1vZGVGdW5jdGlvbklzQXZhaWxhYmxlKCkgJiYgX0FYU0lzb2xhdGVkVHJlZU1vZGVfU29m
dCgpID09IEFYU0lzb2xhdGVkVHJlZU1vZGVTZWNvbmRhcnlUaHJlYWQpCi0gICAgICAgIF9BWFVJ
RWxlbWVudFVzZVNlY29uZGFyeUFYVGhyZWFkKHRydWUpOwotfQotCiBSZWZQdHI8QVhJc29sYXRl
ZFRyZWU+IEFYT2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlSXNvbGF0ZWRUcmVlKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fcGFnZUlEKQpAQCAtODQ0LDEzICs3OTksNiBAQCBBWENvcmVPYmplY3QqIEFY
T2JqZWN0Q2FjaGU6Omlzb2xhdGVkVHJlZVJvb3RPYmplY3QoKQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQotCi1ib29sIEFYT2JqZWN0Q2FjaGU6OnVz
ZWRPbkFYVGhyZWFkKCkKLXsKLSAgICBBU1NFUlQoaXNJc29sYXRlZFRyZWVFbmFibGVkKCkpOwot
ICAgIHJldHVybiBfQVhTSXNvbGF0ZWRUcmVlTW9kZUZ1bmN0aW9uSXNBdmFpbGFibGUoKQotICAg
ICAgICAmJiBfQVhTSXNvbGF0ZWRUcmVlTW9kZV9Tb2Z0KCkgPT0gQVhTSXNvbGF0ZWRUcmVlTW9k
ZVNlY29uZGFyeVRocmVhZDsKLX0KICNlbmRpZgogCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9i
amVjdENhY2hlOjpyb290T2JqZWN0Rm9yRnJhbWUoRnJhbWUqIGZyYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcAppbmRleCBiMGJjZjU1MjYwZmEuLjZmYzQ1N2U4YjQxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTcxLDExICs3MSw4IEBAIHZvaWQgQVhJc29sYXRlZE9i
amVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wg
aXNSb290CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkFSSUFMYW5kbWFya1JvbGVE
ZXNjcmlwdGlvbiwgb2JqZWN0LmFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbigpLmlzb2xhdGVk
Q29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6QWNjZXNzaWJpbGl0eURl
c2NyaXB0aW9uLCBvYmplY3QuYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkuaXNvbGF0ZWRDb3B5
KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpCb3VuZGluZ0JveFJlY3QsIG9i
amVjdC5ib3VuZGluZ0JveFJlY3QoKSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OkRlc2NyaXB0aW9uLCBvYmplY3QuZGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVk
Q29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RWxlbWVudFJlY3QsIG9i
amVjdC5lbGVtZW50UmVjdCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGFz
QVJJQVZhbHVlTm93LCBvYmplY3QuaGFzQVJJQVZhbHVlTm93KCkpOwotICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpIYXNBcHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUsIG9iamVjdC5o
YXNBcHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUoKSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQcm9w
ZXJ0eU5hbWU6OkhlbHBUZXh0LCBvYmplY3QuaGVscFRleHRBdHRyaWJ1dGVWYWx1ZSgpLmlzb2xh
dGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBY2Nlc3NpYmls
aXR5SWdub3JlZCwgb2JqZWN0LmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSk7CiAgICAgc2V0UHJv
cGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzQWN0aXZlRGVzY2VuZGFudE9mRm9jdXNlZENvbnRhaW5l
ciwgb2JqZWN0LmlzQWN0aXZlRGVzY2VuZGFudE9mRm9jdXNlZENvbnRhaW5lcigpKTsKICAgICBz
ZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBdHRhY2htZW50LCBvYmplY3QuaXNBdHRhY2ht
ZW50KCkpOwpAQCAtMTM3LDExICsxMzQsOSBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRp
YWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYgb2JqZWN0LCBib29sIGlzUm9vdAogICAg
IHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpSb2xlRGVzY3JpcHRpb24sIG9iamVjdC5yb2xl
RGVzY3JpcHRpb24oKS5pc29sYXRlZENvcHkoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OlJvbGVQbGF0Zm9ybVN0cmluZywgb2JqZWN0LnJvbGVQbGF0Zm9ybVN0cmluZygpLmlz
b2xhdGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Um9sZVZhbHVl
LCBzdGF0aWNfY2FzdDxpbnQ+KG9iamVjdC5yb2xlVmFsdWUoKSkpOwotICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpTcGVlY2hIaW50LCBvYmplY3Quc3BlZWNoSGludEF0dHJpYnV0ZVZh
bHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpT
dXBwb3J0c0RhdGV0aW1lQXR0cmlidXRlLCBvYmplY3Quc3VwcG9ydHNEYXRldGltZUF0dHJpYnV0
ZSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNSb3dDb3VudENo
YW5nZSwgb2JqZWN0LnN1cHBvcnRzUm93Q291bnRDaGFuZ2UoKSk7CiAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlRpdGxlLCBvYmplY3QudGl0bGUoKS5pc29sYXRlZENvcHkoKSk7Ci0g
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlQXR0cmlidXRlVmFsdWUsIG9iamVj
dC50aXRsZUF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpEYXRldGltZUF0dHJpYnV0ZVZhbHVlLCBvYmplY3QuZGF0ZXRpbWVB
dHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6Q2FuU2V0Rm9jdXNBdHRyaWJ1dGUsIG9iamVjdC5jYW5TZXRGb2N1c0F0dHJpYnV0
ZSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Q2FuU2V0VGV4dFJhbmdlQXR0
cmlidXRlcywgb2JqZWN0LmNhblNldFRleHRSYW5nZUF0dHJpYnV0ZXMoKSk7CkBAIC0yMDksOSAr
MjA0LDYgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShB
WENvcmVPYmplY3QmIG9iamVjdCwgYm9vbCBpc1Jvb3QKICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6QXV0b0NvbXBsZXRlVmFsdWUsIG9iamVjdC5hdXRvQ29tcGxldGVWYWx1ZSgpLmlz
b2xhdGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3BlYWtBcywg
b2JqZWN0LnNwZWFrQXNQcm9wZXJ0eSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6U3RyaW5nVmFsdWUsIG9iamVjdC5zdHJpbmdWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKLSNp
ZiBQTEFURk9STShNQUMpCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkNhcmV0QnJv
d3NpbmdFbmFibGVkLCBvYmplY3QuY2FyZXRCcm93c2luZ0VuYWJsZWQoKSk7Ci0jZW5kaWYKICAg
ICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Rm9jdXNhYmxlQW5jZXN0b3IsIG9i
amVjdC5mb2N1c2FibGVBbmNlc3RvcigpKTsKICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6RWRpdGFibGVBbmNlc3Rvciwgb2JqZWN0LmVkaXRhYmxlQW5jZXN0b3IoKSk7CiAg
ICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkhpZ2hlc3RFZGl0YWJsZUFuY2Vz
dG9yLCBvYmplY3QuaGlnaGVzdEVkaXRhYmxlQW5jZXN0b3IoKSk7CkBAIC00MTEsNyArNDAzLDcg
QEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVP
YmplY3QmIG9iamVjdCwgYm9vbCBpc1Jvb3QKICAgICAgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVy
dHkoQVhQcm9wZXJ0eU5hbWU6OkRvY3VtZW50TGlua3MsIG9iamVjdC5kb2N1bWVudExpbmtzKCkp
OwogICAgIH0KIAotICAgIGluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMob2JqZWN0KTsKKyAg
ICBpbml0aWFsaXplUGxhdGZvcm1Qcm9wZXJ0aWVzKG9iamVjdCwgaXNSb290KTsKIH0KIAogQVhD
b3JlT2JqZWN0KiBBWElzb2xhdGVkT2JqZWN0Ojphc3NvY2lhdGVkQVhPYmplY3QoKSBjb25zdApA
QCAtNTE0LDggKzUwNiwxMCBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmRldGFjaEZyb21QYXJl
bnQoKQogCiBjb25zdCBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYg
QVhJc29sYXRlZE9iamVjdDo6Y2hpbGRyZW4oYm9vbCkKIHsKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQogICAgIEFTU0VSVChfQVhTSXNvbGF0ZWRUcmVlTW9kZUZ1bmN0aW9uSXNBdmFpbGFi
bGUoKSAmJiAoKF9BWFNJc29sYXRlZFRyZWVNb2RlX1NvZnQoKSA9PSBBWFNJc29sYXRlZFRyZWVN
b2RlU2Vjb25kYXJ5VGhyZWFkICYmICFpc01haW5UaHJlYWQoKSkKICAgICAgICAgfHwgKF9BWFNJ
c29sYXRlZFRyZWVNb2RlX1NvZnQoKSA9PSBBWFNJc29sYXRlZFRyZWVNb2RlTWFpblRocmVhZCAm
JiBpc01haW5UaHJlYWQoKSkpKTsKKyNlbmRpZgogICAgIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwog
ICAgIG1fY2hpbGRyZW4uY2xlYXIoKTsKICAgICBtX2NoaWxkcmVuLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkobV9jaGlsZHJlbklEcy5zaXplKCkpOwpAQCAtNjAzLDEzICs1OTcsNiBAQCBTdHJpbmcg
QVhJc29sYXRlZE9iamVjdDo6ZG9jdW1lbnRVUkkoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KIAotYm9vbCBBWElzb2xhdGVkT2JqZWN0OjpwcmV2ZW50S2V5Ym9hcmRET01FdmVudERp
c3BhdGNoKCkgY29uc3QKLXsKLSAgICBpZiAoYXV0byByb290ID0gdHJlZSgpLT5yb290Tm9kZSgp
KQotICAgICAgICByZXR1cm4gcm9vdC0+Ym9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
OjpQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KIFN0cmluZyBBWElzb2xhdGVkT2JqZWN0Ojpkb2N1bWVudEVuY29kaW5nKCkgY29uc3QKIHsK
ICAgICBpZiAoYXV0byByb290ID0gdHJlZSgpLT5yb290Tm9kZSgpKQpAQCAtNzcxLDEzICs3NTgs
NiBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wg
dmFsdWUpCiB9CiAjZW5kaWYKIAotdm9pZCBBWElzb2xhdGVkT2JqZWN0OjpzZXRQcmV2ZW50S2V5
Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgdmFsdWUpCi17Ci0gICAgcGVyZm9ybUZ1bmN0aW9u
T25NYWluVGhyZWFkKFsmdmFsdWVdKEFYQ29yZU9iamVjdCogb2JqZWN0KSB7Ci0gICAgICAgIG9i
amVjdC0+c2V0UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCh2YWx1ZSk7Ci0gICAgfSk7
Ci19Ci0KIFNSR0JBPHVpbnQ4X3Q+IEFYSXNvbGF0ZWRPYmplY3Q6OmNvbG9yVmFsdWUoKSBjb25z
dAogewogICAgIHJldHVybiBjb2xvckF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpDb2xv
clZhbHVlKS50b1NSR0JBTG9zc3k8dWludDhfdD4oKTsKQEAgLTExNjcsMTUgKzExNDcsNiBAQCBG
bG9hdFJlY3QgQVhJc29sYXRlZE9iamVjdDo6Y29udmVydEZyYW1lVG9TcGFjZShjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIEFjY2Vzc2liaQogICAgIH0pOwogfQogCi1GbG9hdFJlY3QgQVhJc29sYXRl
ZE9iamVjdDo6Y29udmVydFJlY3RUb1BsYXRmb3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0JiByZWN0
LCBBY2Nlc3NpYmlsaXR5Q29udmVyc2lvblNwYWNlIHNwYWNlKSBjb25zdAotewotICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8RmxvYXRSZWN0Pihb
JnJlY3QsICZzcGFjZSwgdGhpc10gKCkgLT4gRmxvYXRSZWN0IHsKLSAgICAgICAgaWYgKGF1dG8q
IGF4T2JqZWN0ID0gYXNzb2NpYXRlZEFYT2JqZWN0KCkpCi0gICAgICAgICAgICByZXR1cm4gYXhP
YmplY3QtPmNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlKHJlY3QsIHNwYWNlKTsKLSAgICAgICAg
cmV0dXJuIHsgfTsKLSAgICB9KTsKLX0KLQogYm9vbCBBWElzb2xhdGVkT2JqZWN0OjpyZXBsYWNl
VGV4dEluUmFuZ2UoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQsIGNvbnN0IFBsYWluVGV4
dFJhbmdlJiB0ZXh0UmFuZ2UpCiB7CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZl
VmFsdWVGcm9tTWFpblRocmVhZDxib29sPihbJnJlcGxhY2VtZW50VGV4dCwgJnRleHRSYW5nZSwg
dGhpc10gKCkgLT4gYm9vbCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggNmZiMWFkYWM4
ZGFlLi45ZDhiNTc4NWJhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTcxLDcgKzcx
LDcgQEAgcHJpdmF0ZToKICAgICBBWElzb2xhdGVkT2JqZWN0KEFYQ29yZU9iamVjdCYsIEFYSXNv
bGF0ZWRUcmVlKiwgQVhJRCBwYXJlbnRJRCk7CiAgICAgYm9vbCBpc0FYSXNvbGF0ZWRPYmplY3RJ
bnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGluaXRp
YWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYsIGJvb2wgaXNSb290KTsKLSAgICB2b2lk
IGluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMoY29uc3QgQVhDb3JlT2JqZWN0Jik7CisgICAg
dm9pZCBpbml0aWFsaXplUGxhdGZvcm1Qcm9wZXJ0aWVzKGNvbnN0IEFYQ29yZU9iamVjdCYsIGJv
b2wgaXNSb290KTsKICAgICBBWENvcmVPYmplY3QqIGFzc29jaWF0ZWRBWE9iamVjdCgpIGNvbnN0
OwogCiAgICAgdm9pZCBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZSwgQVhQcm9wZXJ0eVZhbHVl
VmFyaWFudCYmLCBib29sIHNob3VsZFJlbW92ZSA9IGZhbHNlKTsKQEAgLTMyMCwxMSArMzIwLDEz
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0Fub255bW91c01hdGhPcGVyYXRvcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNBbm9u
eW1vdXNNYXRoT3BlcmF0b3IpOyB9CiAgICAgdm9pZCBtYXRoUHJlc2NyaXB0cyhBY2Nlc3NpYmls
aXR5TWF0aE11bHRpc2NyaXB0UGFpcnMmKSBvdmVycmlkZTsKICAgICB2b2lkIG1hdGhQb3N0c2Ny
aXB0cyhBY2Nlc3NpYmlsaXR5TWF0aE11bHRpc2NyaXB0UGFpcnMmKSBvdmVycmlkZTsKKyNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBib29sIGZpbGVVcGxvYWRCdXR0b25SZXR1cm5zVmFsdWVJblRp
dGxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVy
dHlOYW1lOjpGaWxlVXBsb2FkQnV0dG9uUmV0dXJuc1ZhbHVlSW5UaXRsZSk7IH0KICAgICBTdHJp
bmcgc3BlZWNoSGludEF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3Ry
aW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlNwZWVjaEhpbnQpOyB9CiAgICAgU3Ry
aW5nIGRlc2NyaXB0aW9uQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBz
dHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6RGVzY3JpcHRpb24pOyB9CiAgICAg
U3RyaW5nIGhlbHBUZXh0QXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBz
dHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SGVscFRleHQpOyB9CiAgICAgU3Ry
aW5nIHRpdGxlQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJpbmdB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6VGl0bGVBdHRyaWJ1dGVWYWx1ZSk7IH0KKyNl
bmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIGNhcmV0QnJvd3NpbmdFbmFibGVkKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
OjpDYXJldEJyb3dzaW5nRW5hYmxlZCk7IH0KICNlbmRpZgpAQCAtMzY5LDcgKzM3MSw5IEBAIHBy
aXZhdGU6CiAgICAgdWludDY0X3Qgc2Vzc2lvbklEKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3Ry
aW5nIGRvY3VtZW50VVJJKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIGRvY3VtZW50RW5j
b2RpbmcoKSBjb25zdCBvdmVycmlkZTsKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIHBy
ZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goKSBjb25zdCBvdmVycmlkZTsKKyNlbmRpZgog
CiAgICAgLy8gUGxhaW5UZXh0UmFuZ2Ugc3VwcG9ydC4KICAgICBQbGFpblRleHRSYW5nZSBzZWxl
Y3RlZFRleHRSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNDQ0LDcgKzQ0OCw5IEBAIHByaXZh
dGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQo
Ym9vbCkgb3ZlcnJpZGU7CiAjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNl
dFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goYm9vbCkgb3ZlcnJpZGU7CisjZW5kaWYK
IAogICAgIFN0cmluZyB0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVt
ZW50TW9kZSA9IEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSgpKSBjb25zdCBvdmVy
cmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPFNpbXBsZVJhbmdlPiBtaXNzcGVsbGluZ1JhbmdlKGNv
bnN0IFNpbXBsZVJhbmdlJiwgQWNjZXNzaWJpbGl0eVNlYXJjaERpcmVjdGlvbikgY29uc3Qgb3Zl
cnJpZGU7CkBAIC02MzQsNyArNjQwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIG92ZXJyaWRlQXR0
YWNobWVudFBhcmVudChBWENvcmVPYmplY3QqIHBhcmVudCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBh
Y2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFjY2Vz
c2liaWxpdHlPYmplY3RJbmNsdXNpb24gYWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmpl
Y3QoKSBjb25zdCBvdmVycmlkZTsKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIGhhc0Fw
cGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SGFzQXBwbGVQREZBbm5vdGF0aW9uQXR0cmli
dXRlKTsgfQorI2VuZGlmCiAgICAgY29uc3QgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcqIGFuY2Vz
dG9yQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoYm9vbCBpbmNsdWRlU2VsZikgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgQVhDb3JlT2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gb2JqZWN0QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OldlYkFyZWEpOyB9CiAg
ICAgdm9pZCBzZXRJc0lnbm9yZWRGcm9tUGFyZW50RGF0YShBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
RnJvbVBhcmVudERhdGEmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL21hYy9BWElzb2xhdGVkT2JqZWN0TWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmpl
Y3RNYWMubW0KaW5kZXggYzBiZjU5YmUwYjQ2Li4zMWQyNzM2NDU2OGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL21hYy9BWElzb2xhdGVkT2Jq
ZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L21hYy9BWElzb2xhdGVkT2JqZWN0TWFjLm1tCkBAIC0zMiw4ICszMiwxOCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZVBsYXRmb3Jt
UHJvcGVydGllcyhjb25zdCBBWENvcmVPYmplY3QmIG9iamVjdCkKK3ZvaWQgQVhJc29sYXRlZE9i
amVjdDo6aW5pdGlhbGl6ZVBsYXRmb3JtUHJvcGVydGllcyhjb25zdCBBWENvcmVPYmplY3QmIG9i
amVjdCwgYm9vbCBpc1Jvb3QpCiB7CisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkRl
c2NyaXB0aW9uLCBvYmplY3QuZGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29w
eSgpKTsKKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGFzQXBwbGVQREZBbm5vdGF0
aW9uQXR0cmlidXRlLCBvYmplY3QuaGFzQXBwbGVQREZBbm5vdGF0aW9uQXR0cmlidXRlKCkpOwor
ICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpIZWxwVGV4dCwgb2JqZWN0LmhlbHBUZXh0
QXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CisgICAgc2V0UHJvcGVydHkoQVhQcm9w
ZXJ0eU5hbWU6OlNwZWVjaEhpbnQsIG9iamVjdC5zcGVlY2hIaW50QXR0cmlidXRlVmFsdWUoKS5p
c29sYXRlZENvcHkoKSk7CisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlQXR0
cmlidXRlVmFsdWUsIG9iamVjdC50aXRsZUF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkp
OworICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpDYXJldEJyb3dzaW5nRW5hYmxlZCwg
b2JqZWN0LmNhcmV0QnJvd3NpbmdFbmFibGVkKCkpOworCisgICAgaWYgKGlzUm9vdCkKKyAgICAg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlz
cGF0Y2gsIG9iamVjdC5wcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKCkpOworCiAgICAg
aWYgKG9iamVjdC5pc1Njcm9sbFZpZXcoKSkgewogICAgICAgICBtX3BsYXRmb3JtV2lkZ2V0ID0g
b2JqZWN0LnBsYXRmb3JtV2lkZ2V0KCk7CiAgICAgICAgIG1fcmVtb3RlUGFyZW50ID0gb2JqZWN0
LnJlbW90ZVBhcmVudE9iamVjdCgpOwpAQCAtNDgsNiArNTgsMTUgQEAgUmVtb3RlQVhPYmplY3RS
ZWYgQVhJc29sYXRlZE9iamVjdDo6cmVtb3RlUGFyZW50T2JqZWN0KCkgY29uc3QKICAgICByZXR1
cm4gaXM8QVhJc29sYXRlZE9iamVjdD4oc2Nyb2xsVmlldykgPyBkb3duY2FzdDxBWElzb2xhdGVk
T2JqZWN0PihzY3JvbGxWaWV3KS0+bV9yZW1vdGVQYXJlbnQuZ2V0KCkgOiBuaWw7CiB9CiAKK0Zs
b2F0UmVjdCBBWElzb2xhdGVkT2JqZWN0Ojpjb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIEFjY2Vzc2liaWxpdHlDb252ZXJzaW9uU3BhY2Ugc3BhY2UpIGNv
bnN0Cit7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRo
cmVhZDxGbG9hdFJlY3Q+KFsmcmVjdCwgJnNwYWNlLCB0aGlzXSgpIC0+IEZsb2F0UmVjdCB7Cisg
ICAgICAgIGlmIChhdXRvKiBheE9iamVjdCA9IGFzc29jaWF0ZWRBWE9iamVjdCgpKQorICAgICAg
ICAgICAgcmV0dXJuIGF4T2JqZWN0LT5jb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShyZWN0LCBz
cGFjZSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfSk7Cit9CisKIHZvaWQgQVhJc29sYXRl
ZE9iamVjdDo6YXR0YWNoUGxhdGZvcm1XcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
KiB3cmFwcGVyKQogewogICAgIFt3cmFwcGVyIGF0dGFjaElzb2xhdGVkT2JqZWN0OnRoaXNdOwpA
QCAtNjcsNiArODYsMjAgQEAgQVhUZXh0TWFya2VyUmFuZ2VSZWYgQVhJc29sYXRlZE9iamVjdDo6
dGV4dE1hcmtlclJhbmdlRm9yTlNSYW5nZShjb25zdCBOU1JhbmdlJgogICAgIH0pOwogfQogCiti
b29sIEFYSXNvbGF0ZWRPYmplY3Q6OnByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goKSBj
b25zdAoreworICAgIGlmIChhdXRvIHJvb3QgPSB0cmVlKCktPnJvb3ROb2RlKCkpCisgICAgICAg
IHJldHVybiByb290LT5ib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlByZXZlbnRL
ZXlib2FyZERPTUV2ZW50RGlzcGF0Y2gpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBB
WElzb2xhdGVkT2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wg
dmFsdWUpCit7CisgICAgcGVyZm9ybUZ1bmN0aW9uT25NYWluVGhyZWFkKFsmdmFsdWVdKEFYQ29y
ZU9iamVjdCogb2JqZWN0KSB7CisgICAgICAgIG9iamVjdC0+c2V0UHJldmVudEtleWJvYXJkRE9N
RXZlbnREaXNwYXRjaCh2YWx1ZSk7CisgICAgfSk7Cit9CisKIH0gLy8gV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJiYgUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RD
YWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2Fj
aGVNYWMubW0KaW5kZXggZTVhNzg2N2VlNmI2Li40MzkzMTQ3Mzk1ZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAt
MzYsNiArMzYsMTIgQEAKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNBY2Nlc3NpYmlsaXR5U1BJ
Lmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+CiAKKyNpZiBFTkFCTEUo
QUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9BY2Nl
c3NpYmlsaXR5U3VwcG9ydFNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9BY2Nlc3NpYmls
aXR5U3VwcG9ydFNvZnRMaW5rLmg+CisjaW1wb3J0IDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJ
Lmg+CisjZW5kaWYKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5BTF9TREspCiAjaW1wb3J0IDxBcHBs
aWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXNQcml2Lmg+CiAjZW5kaWYKQEAgLTYw
MCw2ICs2MDYsNDkgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwbGF0Zm9ybVBlcmZvcm1EZWZlcnJl
ZENhY2hlVXBkYXRlKCkKIHsKIH0KIAorI2lmIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVE
X1RSRUUpCitib29sIEFYT2JqZWN0Q2FjaGU6OmNsaWVudFN1cHBvcnRzSXNvbGF0ZWRUcmVlKCkK
K3sKKyAgICBhdXRvIGNsaWVudCA9IF9BWEdldENsaWVudEZvckN1cnJlbnRSZXF1ZXN0VW50cnVz
dGVkKCk7CisgICAgcmV0dXJuIGNsaWVudCA9PSBrQVhDbGllbnRUeXBlVm9pY2VPdmVyCisgICAg
ICAgIHx8IFVOTElLRUxZKGNsaWVudCA9PSBrQVhDbGllbnRUeXBlV2ViS2l0VGVzdGluZyk7Cit9
CisKK2Jvb2wgQVhPYmplY3RDYWNoZTo6aXNJc29sYXRlZFRyZWVFbmFibGVkKCkKK3sKKyAgICBz
dGF0aWMgc3RkOjphdG9taWM8Ym9vbD4gZW5hYmxlZCB7IGZhbHNlIH07CisgICAgaWYgKGVuYWJs
ZWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFpc01haW5UaHJlYWQoKSkgewor
ICAgICAgICBBU1NFUlQoX0FYVUlFbGVtZW50UmVxdWVzdFNlcnZpY2VkQnlTZWNvbmRhcnlBWFRo
cmVhZCgpKTsKKyAgICAgICAgZW5hYmxlZCA9IHRydWU7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
ZW5hYmxlZCA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNBY2Nl
c3NpYmlsaXR5SXNvbGF0ZWRUcmVlRW5hYmxlZCgpIC8vIFVzZWQgdG8gdHVybiBvZmYgaW4gYXBw
cyBvdGhlciB0aGFuIFNhZmFyaSwgZS5nLiwgTWFpbC4KKyAgICAgICAgICAgICYmIF9BWFNJc29s
YXRlZFRyZWVNb2RlRnVuY3Rpb25Jc0F2YWlsYWJsZSgpCisgICAgICAgICAgICAmJiBfQVhTSXNv
bGF0ZWRUcmVlTW9kZV9Tb2Z0KCkgIT0gQVhTSXNvbGF0ZWRUcmVlTW9kZU9mZiAvLyBVc2VkIHRv
IHN3aXRjaCB2aWEgc3lzdGVtIGRlZmF1bHRzLgorICAgICAgICAgICAgJiYgY2xpZW50U3VwcG9y
dHNJc29sYXRlZFRyZWUoKTsKKyAgICB9CisKKyAgICByZXR1cm4gZW5hYmxlZDsKK30KKwordm9p
ZCBBWE9iamVjdENhY2hlOjppbml0aWFsaXplU2Vjb25kYXJ5QVhUaHJlYWQoKQoreworICAgIC8v
IE5vdyB0aGF0IHdlIGhhdmUgY3JlYXRlZCBvdXIgdHJlZSwgaW5pdGlhbGl6ZSB0aGUgc2Vjb25k
YXJ5IHRocmVhZCwKKyAgICAvLyBzbyBmdXR1cmUgcmVxdWVzdHMgY29tZSBpbiBvbiB0aGUgb3Ro
ZXIgdGhyZWFkLgorICAgIGlmIChfQVhTSXNvbGF0ZWRUcmVlTW9kZUZ1bmN0aW9uSXNBdmFpbGFi
bGUoKSAmJiBfQVhTSXNvbGF0ZWRUcmVlTW9kZV9Tb2Z0KCkgPT0gQVhTSXNvbGF0ZWRUcmVlTW9k
ZVNlY29uZGFyeVRocmVhZCkKKyAgICAgICAgX0FYVUlFbGVtZW50VXNlU2Vjb25kYXJ5QVhUaHJl
YWQodHJ1ZSk7Cit9CisKK2Jvb2wgQVhPYmplY3RDYWNoZTo6dXNlZE9uQVhUaHJlYWQoKQorewor
ICAgIEFTU0VSVChpc0lzb2xhdGVkVHJlZUVuYWJsZWQoKSk7CisgICAgcmV0dXJuIF9BWFNJc29s
YXRlZFRyZWVNb2RlRnVuY3Rpb25Jc0F2YWlsYWJsZSgpCisgICAgICAgICYmIF9BWFNJc29sYXRl
ZFRyZWVNb2RlX1NvZnQoKSA9PSBBWFNJc29sYXRlZFRyZWVNb2RlU2Vjb25kYXJ5VGhyZWFkOwor
fQorI2VuZGlmCisKIC8vIFRleHRNYXJrZXIgYW5kIFRleHRNYXJrZXJSYW5nZSBmdW5jc3Rpb25z
LgogLy8gRklYTUU6IFRleHRNYXJrZXIgYW5kIFRleHRNYXJrZXJSYW5nZSBzaG91bGQgYmVjb21l
IGNsYXNzZXMgd3JhcHBpbmcgdGhlIHN5c3RlbSBvYmplY3RzLgogCg==
</data>
<flag name="commit-queue"
          id="461557"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438228</attachid>
            <date>2021-09-15 02:11:50 -0700</date>
            <delta_ts>2021-09-15 02:36:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-ax-platform-specific.diff</filename>
            <type>text/plain</type>
            <size>19441</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ODhmOTlmZjhkYmYuLmZjNDA2NGYwY2FjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM3IEBACisyMDIxLTA5LTE1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBBWDogTW92ZSBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIGZv
ciBpc29sYXRlZCB0cmVlIG1vZGUgdG8gdGhlIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAzMDEKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgzMTM4MDI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBtaXNzaW5nIGlmZGVmcyBpbiB0aGUgaGVhZGVycyBhbmQgbW92ZSB0
aGUgbWFjIHNwZWNpZmljIGNvZGUgdG8gbWFjIGZpbGVzLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
Omlzb2xhdGVkVHJlZVJvb3RPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6aXNJc29sYXRlZFRyZWVFbmFibGVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmluaXRpYWxpemVTZWNvbmRhcnlBWFRocmVhZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1c2VkT25BWFRocmVh
ZCk6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0
aWFsaXplQXR0cmlidXRlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0
OjpjaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpwcmV2ZW50
S2V5Ym9hcmRET01FdmVudERpc3BhdGNoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkFYSXNvbGF0ZWRPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2gp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y29udmVydFJl
Y3RUb1BsYXRmb3JtU3BhY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y29udmVydFJlY3RUb1BsYXRmb3Jt
U3BhY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6cHJldmVu
dEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElz
b2xhdGVkT2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aXNJc29sYXRlZFRyZWVFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmluaXRpYWxpemVTZWNvbmRhcnlBWFRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1c2VkT25BWFRocmVhZCk6CisKIDIw
MjEtMDktMTUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIEFYOiBSZW1vdmUgQVhDb3JlT2JqZWN0Ojpjb250YWluc1RleHQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDg5ZjhhNjViMTVm
ZS4uZjM1N2E2MTI1NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKQEAgLTExMiwxMyArMTEyLDYgQEAKICNpbmNsdWRlICJUZXh0Qm91bmRh
cmllcy5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgogI2luY2x1ZGUg
IlRleHRJdGVyYXRvci5oIgotCi0jaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkgJiYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQWNjZXNzaWJpbGl0
eVN1cHBvcnRTUEkuaD4KLSNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0FjY2Vzc2liaWxpdHlTdXBw
b3J0U29mdExpbmsuaD4KLSNpbmNsdWRlIDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+Ci0j
ZW5kaWYKLQogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNj
b3BlLmg+CiAKQEAgLTc2NywzNSArNzYwLDYgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmpl
Y3RDYWNoZTo6Z2V0T3JDcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICByZXR1cm4g
bmV3T2JqLmdldCgpOwogfQogCi0jaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkKLWJvb2wgQVhPYmplY3RDYWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUoKQotewot
ICAgIGF1dG8gY2xpZW50ID0gX0FYR2V0Q2xpZW50Rm9yQ3VycmVudFJlcXVlc3RVbnRydXN0ZWQo
KTsKLSAgICByZXR1cm4gY2xpZW50ID09IGtBWENsaWVudFR5cGVWb2ljZU92ZXIKLSAgICAgICAg
fHwgVU5MSUtFTFkoY2xpZW50ID09IGtBWENsaWVudFR5cGVXZWJLaXRUZXN0aW5nKTsKLX0KLQot
Ym9vbCBBWE9iamVjdENhY2hlOjppc0lzb2xhdGVkVHJlZUVuYWJsZWQoKQotewotICAgIHN0YXRp
YyBzdGQ6OmF0b21pYzxib29sPiBlbmFibGVkIHsgZmFsc2UgfTsKLSAgICBpZiAoZW5hYmxlZCkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0gICAg
ICAgIEFTU0VSVChfQVhVSUVsZW1lbnRSZXF1ZXN0U2VydmljZWRCeVNlY29uZGFyeUFYVGhyZWFk
KCkpOwotICAgICAgICBlbmFibGVkID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBlbmFi
bGVkID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pc0FjY2Vzc2li
aWxpdHlJc29sYXRlZFRyZWVFbmFibGVkKCkgLy8gVXNlZCB0byB0dXJuIG9mZiBpbiBhcHBzIG90
aGVyIHRoYW4gU2FmYXJpLCBlLmcuLCBNYWlsLgotICAgICAgICAgICAgJiYgX0FYU0lzb2xhdGVk
VHJlZU1vZGVGdW5jdGlvbklzQXZhaWxhYmxlKCkKLSAgICAgICAgICAgICYmIF9BWFNJc29sYXRl
ZFRyZWVNb2RlX1NvZnQoKSAhPSBBWFNJc29sYXRlZFRyZWVNb2RlT2ZmIC8vIFVzZWQgdG8gc3dp
dGNoIHZpYSBzeXN0ZW0gZGVmYXVsdHMuCi0gICAgICAgICAgICAmJiBjbGllbnRTdXBwb3J0c0lz
b2xhdGVkVHJlZSgpOwotICAgIH0KLQotICAgIHJldHVybiBlbmFibGVkOwotfQotCi0jZW5kaWYK
LQogQVhDb3JlT2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290T2JqZWN0KCkKIHsKICAgICBpZiAo
IWdBY2Nlc3NpYmlsaXR5RW5hYmxlZCkKQEAgLTgxMCwxNSArNzc0LDYgQEAgQVhDb3JlT2JqZWN0
KiBBWE9iamVjdENhY2hlOjpyb290T2JqZWN0KCkKIH0KIAogI2lmIEVOQUJMRShBQ0NFU1NJQklM
SVRZX0lTT0xBVEVEX1RSRUUpCi0KLXZvaWQgQVhPYmplY3RDYWNoZTo6aW5pdGlhbGl6ZVNlY29u
ZGFyeUFYVGhyZWFkKCkKLXsKLSAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIGNyZWF0ZWQgb3VyIHRy
ZWUsIGluaXRpYWxpemUgdGhlIHNlY29uZGFyeSB0aHJlYWQsCi0gICAgLy8gc28gZnV0dXJlIHJl
cXVlc3RzIGNvbWUgaW4gb24gdGhlIG90aGVyIHRocmVhZC4KLSAgICBpZiAoX0FYU0lzb2xhdGVk
VHJlZU1vZGVGdW5jdGlvbklzQXZhaWxhYmxlKCkgJiYgX0FYU0lzb2xhdGVkVHJlZU1vZGVfU29m
dCgpID09IEFYU0lzb2xhdGVkVHJlZU1vZGVTZWNvbmRhcnlUaHJlYWQpCi0gICAgICAgIF9BWFVJ
RWxlbWVudFVzZVNlY29uZGFyeUFYVGhyZWFkKHRydWUpOwotfQotCiBSZWZQdHI8QVhJc29sYXRl
ZFRyZWU+IEFYT2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlSXNvbGF0ZWRUcmVlKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fcGFnZUlEKQpAQCAtODQ0LDEzICs3OTksNiBAQCBBWENvcmVPYmplY3QqIEFY
T2JqZWN0Q2FjaGU6Omlzb2xhdGVkVHJlZVJvb3RPYmplY3QoKQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQotCi1ib29sIEFYT2JqZWN0Q2FjaGU6OnVz
ZWRPbkFYVGhyZWFkKCkKLXsKLSAgICBBU1NFUlQoaXNJc29sYXRlZFRyZWVFbmFibGVkKCkpOwot
ICAgIHJldHVybiBfQVhTSXNvbGF0ZWRUcmVlTW9kZUZ1bmN0aW9uSXNBdmFpbGFibGUoKQotICAg
ICAgICAmJiBfQVhTSXNvbGF0ZWRUcmVlTW9kZV9Tb2Z0KCkgPT0gQVhTSXNvbGF0ZWRUcmVlTW9k
ZVNlY29uZGFyeVRocmVhZDsKLX0KICNlbmRpZgogCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9i
amVjdENhY2hlOjpyb290T2JqZWN0Rm9yRnJhbWUoRnJhbWUqIGZyYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcAppbmRleCBiMGJjZjU1MjYwZmEuLjZmYzQ1N2U4YjQxYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTcxLDExICs3MSw4IEBAIHZvaWQgQVhJc29sYXRlZE9i
amVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wg
aXNSb290CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkFSSUFMYW5kbWFya1JvbGVE
ZXNjcmlwdGlvbiwgb2JqZWN0LmFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbigpLmlzb2xhdGVk
Q29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6QWNjZXNzaWJpbGl0eURl
c2NyaXB0aW9uLCBvYmplY3QuYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkuaXNvbGF0ZWRDb3B5
KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpCb3VuZGluZ0JveFJlY3QsIG9i
amVjdC5ib3VuZGluZ0JveFJlY3QoKSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OkRlc2NyaXB0aW9uLCBvYmplY3QuZGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVk
Q29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RWxlbWVudFJlY3QsIG9i
amVjdC5lbGVtZW50UmVjdCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGFz
QVJJQVZhbHVlTm93LCBvYmplY3QuaGFzQVJJQVZhbHVlTm93KCkpOwotICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpIYXNBcHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUsIG9iamVjdC5o
YXNBcHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUoKSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQcm9w
ZXJ0eU5hbWU6OkhlbHBUZXh0LCBvYmplY3QuaGVscFRleHRBdHRyaWJ1dGVWYWx1ZSgpLmlzb2xh
dGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBY2Nlc3NpYmls
aXR5SWdub3JlZCwgb2JqZWN0LmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSk7CiAgICAgc2V0UHJv
cGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzQWN0aXZlRGVzY2VuZGFudE9mRm9jdXNlZENvbnRhaW5l
ciwgb2JqZWN0LmlzQWN0aXZlRGVzY2VuZGFudE9mRm9jdXNlZENvbnRhaW5lcigpKTsKICAgICBz
ZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBdHRhY2htZW50LCBvYmplY3QuaXNBdHRhY2ht
ZW50KCkpOwpAQCAtMTM3LDExICsxMzQsOSBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRp
YWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYgb2JqZWN0LCBib29sIGlzUm9vdAogICAg
IHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpSb2xlRGVzY3JpcHRpb24sIG9iamVjdC5yb2xl
RGVzY3JpcHRpb24oKS5pc29sYXRlZENvcHkoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OlJvbGVQbGF0Zm9ybVN0cmluZywgb2JqZWN0LnJvbGVQbGF0Zm9ybVN0cmluZygpLmlz
b2xhdGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Um9sZVZhbHVl
LCBzdGF0aWNfY2FzdDxpbnQ+KG9iamVjdC5yb2xlVmFsdWUoKSkpOwotICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpTcGVlY2hIaW50LCBvYmplY3Quc3BlZWNoSGludEF0dHJpYnV0ZVZh
bHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpT
dXBwb3J0c0RhdGV0aW1lQXR0cmlidXRlLCBvYmplY3Quc3VwcG9ydHNEYXRldGltZUF0dHJpYnV0
ZSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNSb3dDb3VudENo
YW5nZSwgb2JqZWN0LnN1cHBvcnRzUm93Q291bnRDaGFuZ2UoKSk7CiAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlRpdGxlLCBvYmplY3QudGl0bGUoKS5pc29sYXRlZENvcHkoKSk7Ci0g
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlQXR0cmlidXRlVmFsdWUsIG9iamVj
dC50aXRsZUF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpEYXRldGltZUF0dHJpYnV0ZVZhbHVlLCBvYmplY3QuZGF0ZXRpbWVB
dHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6Q2FuU2V0Rm9jdXNBdHRyaWJ1dGUsIG9iamVjdC5jYW5TZXRGb2N1c0F0dHJpYnV0
ZSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Q2FuU2V0VGV4dFJhbmdlQXR0
cmlidXRlcywgb2JqZWN0LmNhblNldFRleHRSYW5nZUF0dHJpYnV0ZXMoKSk7CkBAIC0yMDksOSAr
MjA0LDYgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShB
WENvcmVPYmplY3QmIG9iamVjdCwgYm9vbCBpc1Jvb3QKICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6QXV0b0NvbXBsZXRlVmFsdWUsIG9iamVjdC5hdXRvQ29tcGxldGVWYWx1ZSgpLmlz
b2xhdGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3BlYWtBcywg
b2JqZWN0LnNwZWFrQXNQcm9wZXJ0eSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6U3RyaW5nVmFsdWUsIG9iamVjdC5zdHJpbmdWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKLSNp
ZiBQTEFURk9STShNQUMpCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkNhcmV0QnJv
d3NpbmdFbmFibGVkLCBvYmplY3QuY2FyZXRCcm93c2luZ0VuYWJsZWQoKSk7Ci0jZW5kaWYKICAg
ICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Rm9jdXNhYmxlQW5jZXN0b3IsIG9i
amVjdC5mb2N1c2FibGVBbmNlc3RvcigpKTsKICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6RWRpdGFibGVBbmNlc3Rvciwgb2JqZWN0LmVkaXRhYmxlQW5jZXN0b3IoKSk7CiAg
ICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkhpZ2hlc3RFZGl0YWJsZUFuY2Vz
dG9yLCBvYmplY3QuaGlnaGVzdEVkaXRhYmxlQW5jZXN0b3IoKSk7CkBAIC00MTEsNyArNDAzLDcg
QEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVP
YmplY3QmIG9iamVjdCwgYm9vbCBpc1Jvb3QKICAgICAgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVy
dHkoQVhQcm9wZXJ0eU5hbWU6OkRvY3VtZW50TGlua3MsIG9iamVjdC5kb2N1bWVudExpbmtzKCkp
OwogICAgIH0KIAotICAgIGluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMob2JqZWN0KTsKKyAg
ICBpbml0aWFsaXplUGxhdGZvcm1Qcm9wZXJ0aWVzKG9iamVjdCwgaXNSb290KTsKIH0KIAogQVhD
b3JlT2JqZWN0KiBBWElzb2xhdGVkT2JqZWN0Ojphc3NvY2lhdGVkQVhPYmplY3QoKSBjb25zdApA
QCAtNTE0LDggKzUwNiwxMCBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmRldGFjaEZyb21QYXJl
bnQoKQogCiBjb25zdCBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYg
QVhJc29sYXRlZE9iamVjdDo6Y2hpbGRyZW4oYm9vbCkKIHsKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQogICAgIEFTU0VSVChfQVhTSXNvbGF0ZWRUcmVlTW9kZUZ1bmN0aW9uSXNBdmFpbGFi
bGUoKSAmJiAoKF9BWFNJc29sYXRlZFRyZWVNb2RlX1NvZnQoKSA9PSBBWFNJc29sYXRlZFRyZWVN
b2RlU2Vjb25kYXJ5VGhyZWFkICYmICFpc01haW5UaHJlYWQoKSkKICAgICAgICAgfHwgKF9BWFNJ
c29sYXRlZFRyZWVNb2RlX1NvZnQoKSA9PSBBWFNJc29sYXRlZFRyZWVNb2RlTWFpblRocmVhZCAm
JiBpc01haW5UaHJlYWQoKSkpKTsKKyNlbmRpZgogICAgIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwog
ICAgIG1fY2hpbGRyZW4uY2xlYXIoKTsKICAgICBtX2NoaWxkcmVuLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkobV9jaGlsZHJlbklEcy5zaXplKCkpOwpAQCAtNjAzLDEzICs1OTcsNiBAQCBTdHJpbmcg
QVhJc29sYXRlZE9iamVjdDo6ZG9jdW1lbnRVUkkoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KIAotYm9vbCBBWElzb2xhdGVkT2JqZWN0OjpwcmV2ZW50S2V5Ym9hcmRET01FdmVudERp
c3BhdGNoKCkgY29uc3QKLXsKLSAgICBpZiAoYXV0byByb290ID0gdHJlZSgpLT5yb290Tm9kZSgp
KQotICAgICAgICByZXR1cm4gcm9vdC0+Ym9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
OjpQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KIFN0cmluZyBBWElzb2xhdGVkT2JqZWN0Ojpkb2N1bWVudEVuY29kaW5nKCkgY29uc3QKIHsK
ICAgICBpZiAoYXV0byByb290ID0gdHJlZSgpLT5yb290Tm9kZSgpKQpAQCAtNzcxLDEzICs3NTgs
NiBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wg
dmFsdWUpCiB9CiAjZW5kaWYKIAotdm9pZCBBWElzb2xhdGVkT2JqZWN0OjpzZXRQcmV2ZW50S2V5
Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgdmFsdWUpCi17Ci0gICAgcGVyZm9ybUZ1bmN0aW9u
T25NYWluVGhyZWFkKFsmdmFsdWVdKEFYQ29yZU9iamVjdCogb2JqZWN0KSB7Ci0gICAgICAgIG9i
amVjdC0+c2V0UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCh2YWx1ZSk7Ci0gICAgfSk7
Ci19Ci0KIFNSR0JBPHVpbnQ4X3Q+IEFYSXNvbGF0ZWRPYmplY3Q6OmNvbG9yVmFsdWUoKSBjb25z
dAogewogICAgIHJldHVybiBjb2xvckF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpDb2xv
clZhbHVlKS50b1NSR0JBTG9zc3k8dWludDhfdD4oKTsKQEAgLTExNjcsMTUgKzExNDcsNiBAQCBG
bG9hdFJlY3QgQVhJc29sYXRlZE9iamVjdDo6Y29udmVydEZyYW1lVG9TcGFjZShjb25zdCBGbG9h
dFJlY3QmIHJlY3QsIEFjY2Vzc2liaQogICAgIH0pOwogfQogCi1GbG9hdFJlY3QgQVhJc29sYXRl
ZE9iamVjdDo6Y29udmVydFJlY3RUb1BsYXRmb3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0JiByZWN0
LCBBY2Nlc3NpYmlsaXR5Q29udmVyc2lvblNwYWNlIHNwYWNlKSBjb25zdAotewotICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8RmxvYXRSZWN0Pihb
JnJlY3QsICZzcGFjZSwgdGhpc10gKCkgLT4gRmxvYXRSZWN0IHsKLSAgICAgICAgaWYgKGF1dG8q
IGF4T2JqZWN0ID0gYXNzb2NpYXRlZEFYT2JqZWN0KCkpCi0gICAgICAgICAgICByZXR1cm4gYXhP
YmplY3QtPmNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlKHJlY3QsIHNwYWNlKTsKLSAgICAgICAg
cmV0dXJuIHsgfTsKLSAgICB9KTsKLX0KLQogYm9vbCBBWElzb2xhdGVkT2JqZWN0OjpyZXBsYWNl
VGV4dEluUmFuZ2UoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQsIGNvbnN0IFBsYWluVGV4
dFJhbmdlJiB0ZXh0UmFuZ2UpCiB7CiAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZl
VmFsdWVGcm9tTWFpblRocmVhZDxib29sPihbJnJlcGxhY2VtZW50VGV4dCwgJnRleHRSYW5nZSwg
dGhpc10gKCkgLT4gYm9vbCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKaW5kZXggNmZiMWFkYWM4
ZGFlLi45ZDhiNTc4NWJhZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgKQEAgLTcxLDcgKzcx
LDcgQEAgcHJpdmF0ZToKICAgICBBWElzb2xhdGVkT2JqZWN0KEFYQ29yZU9iamVjdCYsIEFYSXNv
bGF0ZWRUcmVlKiwgQVhJRCBwYXJlbnRJRCk7CiAgICAgYm9vbCBpc0FYSXNvbGF0ZWRPYmplY3RJ
bnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGluaXRp
YWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYsIGJvb2wgaXNSb290KTsKLSAgICB2b2lk
IGluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMoY29uc3QgQVhDb3JlT2JqZWN0Jik7CisgICAg
dm9pZCBpbml0aWFsaXplUGxhdGZvcm1Qcm9wZXJ0aWVzKGNvbnN0IEFYQ29yZU9iamVjdCYsIGJv
b2wgaXNSb290KTsKICAgICBBWENvcmVPYmplY3QqIGFzc29jaWF0ZWRBWE9iamVjdCgpIGNvbnN0
OwogCiAgICAgdm9pZCBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZSwgQVhQcm9wZXJ0eVZhbHVl
VmFyaWFudCYmLCBib29sIHNob3VsZFJlbW92ZSA9IGZhbHNlKTsKQEAgLTMyMCwxMSArMzIwLDEz
IEBAIHByaXZhdGU6CiAgICAgYm9vbCBpc0Fub255bW91c01hdGhPcGVyYXRvcigpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SXNBbm9u
eW1vdXNNYXRoT3BlcmF0b3IpOyB9CiAgICAgdm9pZCBtYXRoUHJlc2NyaXB0cyhBY2Nlc3NpYmls
aXR5TWF0aE11bHRpc2NyaXB0UGFpcnMmKSBvdmVycmlkZTsKICAgICB2b2lkIG1hdGhQb3N0c2Ny
aXB0cyhBY2Nlc3NpYmlsaXR5TWF0aE11bHRpc2NyaXB0UGFpcnMmKSBvdmVycmlkZTsKKyNpZiBQ
TEFURk9STShDT0NPQSkKICAgICBib29sIGZpbGVVcGxvYWRCdXR0b25SZXR1cm5zVmFsdWVJblRp
dGxlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVy
dHlOYW1lOjpGaWxlVXBsb2FkQnV0dG9uUmV0dXJuc1ZhbHVlSW5UaXRsZSk7IH0KICAgICBTdHJp
bmcgc3BlZWNoSGludEF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gc3Ry
aW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlNwZWVjaEhpbnQpOyB9CiAgICAgU3Ry
aW5nIGRlc2NyaXB0aW9uQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBz
dHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6RGVzY3JpcHRpb24pOyB9CiAgICAg
U3RyaW5nIGhlbHBUZXh0QXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBz
dHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SGVscFRleHQpOyB9CiAgICAgU3Ry
aW5nIHRpdGxlQXR0cmlidXRlVmFsdWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBzdHJpbmdB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6VGl0bGVBdHRyaWJ1dGVWYWx1ZSk7IH0KKyNl
bmRpZgogI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIGNhcmV0QnJvd3NpbmdFbmFibGVkKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
OjpDYXJldEJyb3dzaW5nRW5hYmxlZCk7IH0KICNlbmRpZgpAQCAtMzY5LDcgKzM3MSw5IEBAIHBy
aXZhdGU6CiAgICAgdWludDY0X3Qgc2Vzc2lvbklEKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3Ry
aW5nIGRvY3VtZW50VVJJKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgU3RyaW5nIGRvY3VtZW50RW5j
b2RpbmcoKSBjb25zdCBvdmVycmlkZTsKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIHBy
ZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goKSBjb25zdCBvdmVycmlkZTsKKyNlbmRpZgog
CiAgICAgLy8gUGxhaW5UZXh0UmFuZ2Ugc3VwcG9ydC4KICAgICBQbGFpblRleHRSYW5nZSBzZWxl
Y3RlZFRleHRSYW5nZSgpIGNvbnN0IG92ZXJyaWRlOwpAQCAtNDQ0LDcgKzQ0OCw5IEBAIHByaXZh
dGU6CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQo
Ym9vbCkgb3ZlcnJpZGU7CiAjZW5kaWYKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICB2b2lkIHNl
dFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goYm9vbCkgb3ZlcnJpZGU7CisjZW5kaWYK
IAogICAgIFN0cmluZyB0ZXh0VW5kZXJFbGVtZW50KEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVt
ZW50TW9kZSA9IEFjY2Vzc2liaWxpdHlUZXh0VW5kZXJFbGVtZW50TW9kZSgpKSBjb25zdCBvdmVy
cmlkZTsKICAgICBzdGQ6Om9wdGlvbmFsPFNpbXBsZVJhbmdlPiBtaXNzcGVsbGluZ1JhbmdlKGNv
bnN0IFNpbXBsZVJhbmdlJiwgQWNjZXNzaWJpbGl0eVNlYXJjaERpcmVjdGlvbikgY29uc3Qgb3Zl
cnJpZGU7CkBAIC02MzQsNyArNjQwLDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIG92ZXJyaWRlQXR0
YWNobWVudFBhcmVudChBWENvcmVPYmplY3QqIHBhcmVudCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBh
Y2Nlc3NpYmlsaXR5SWdub3JlQXR0YWNobWVudCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFjY2Vz
c2liaWxpdHlPYmplY3RJbmNsdXNpb24gYWNjZXNzaWJpbGl0eVBsYXRmb3JtSW5jbHVkZXNPYmpl
Y3QoKSBjb25zdCBvdmVycmlkZTsKKyNpZiBQTEFURk9STShDT0NPQSkKICAgICBib29sIGhhc0Fw
cGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xB
dHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6SGFzQXBwbGVQREZBbm5vdGF0aW9uQXR0cmli
dXRlKTsgfQorI2VuZGlmCiAgICAgY29uc3QgQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcqIGFuY2Vz
dG9yQWNjZXNzaWJpbGl0eVNjcm9sbFZpZXcoYm9vbCBpbmNsdWRlU2VsZikgY29uc3Qgb3ZlcnJp
ZGU7CiAgICAgQVhDb3JlT2JqZWN0KiB3ZWJBcmVhT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gb2JqZWN0QXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OldlYkFyZWEpOyB9CiAg
ICAgdm9pZCBzZXRJc0lnbm9yZWRGcm9tUGFyZW50RGF0YShBY2Nlc3NpYmlsaXR5SXNJZ25vcmVk
RnJvbVBhcmVudERhdGEmKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL21hYy9BWElzb2xhdGVkT2JqZWN0TWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvbWFjL0FYSXNvbGF0ZWRPYmpl
Y3RNYWMubW0KaW5kZXggYzBiZjU5YmUwYjQ2Li4zMWQyNzM2NDU2OGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL21hYy9BWElzb2xhdGVkT2Jq
ZWN0TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L21hYy9BWElzb2xhdGVkT2JqZWN0TWFjLm1tCkBAIC0zMiw4ICszMiwxOCBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLXZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZVBsYXRmb3Jt
UHJvcGVydGllcyhjb25zdCBBWENvcmVPYmplY3QmIG9iamVjdCkKK3ZvaWQgQVhJc29sYXRlZE9i
amVjdDo6aW5pdGlhbGl6ZVBsYXRmb3JtUHJvcGVydGllcyhjb25zdCBBWENvcmVPYmplY3QmIG9i
amVjdCwgYm9vbCBpc1Jvb3QpCiB7CisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkRl
c2NyaXB0aW9uLCBvYmplY3QuZGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29w
eSgpKTsKKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGFzQXBwbGVQREZBbm5vdGF0
aW9uQXR0cmlidXRlLCBvYmplY3QuaGFzQXBwbGVQREZBbm5vdGF0aW9uQXR0cmlidXRlKCkpOwor
ICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpIZWxwVGV4dCwgb2JqZWN0LmhlbHBUZXh0
QXR0cmlidXRlVmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CisgICAgc2V0UHJvcGVydHkoQVhQcm9w
ZXJ0eU5hbWU6OlNwZWVjaEhpbnQsIG9iamVjdC5zcGVlY2hIaW50QXR0cmlidXRlVmFsdWUoKS5p
c29sYXRlZENvcHkoKSk7CisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlQXR0
cmlidXRlVmFsdWUsIG9iamVjdC50aXRsZUF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkp
OworICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpDYXJldEJyb3dzaW5nRW5hYmxlZCwg
b2JqZWN0LmNhcmV0QnJvd3NpbmdFbmFibGVkKCkpOworCisgICAgaWYgKGlzUm9vdCkKKyAgICAg
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlz
cGF0Y2gsIG9iamVjdC5wcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKCkpOworCiAgICAg
aWYgKG9iamVjdC5pc1Njcm9sbFZpZXcoKSkgewogICAgICAgICBtX3BsYXRmb3JtV2lkZ2V0ID0g
b2JqZWN0LnBsYXRmb3JtV2lkZ2V0KCk7CiAgICAgICAgIG1fcmVtb3RlUGFyZW50ID0gb2JqZWN0
LnJlbW90ZVBhcmVudE9iamVjdCgpOwpAQCAtNDgsNiArNTgsMTUgQEAgUmVtb3RlQVhPYmplY3RS
ZWYgQVhJc29sYXRlZE9iamVjdDo6cmVtb3RlUGFyZW50T2JqZWN0KCkgY29uc3QKICAgICByZXR1
cm4gaXM8QVhJc29sYXRlZE9iamVjdD4oc2Nyb2xsVmlldykgPyBkb3duY2FzdDxBWElzb2xhdGVk
T2JqZWN0PihzY3JvbGxWaWV3KS0+bV9yZW1vdGVQYXJlbnQuZ2V0KCkgOiBuaWw7CiB9CiAKK0Zs
b2F0UmVjdCBBWElzb2xhdGVkT2JqZWN0Ojpjb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShjb25z
dCBGbG9hdFJlY3QmIHJlY3QsIEFjY2Vzc2liaWxpdHlDb252ZXJzaW9uU3BhY2Ugc3BhY2UpIGNv
bnN0Cit7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRo
cmVhZDxGbG9hdFJlY3Q+KFsmcmVjdCwgJnNwYWNlLCB0aGlzXSgpIC0+IEZsb2F0UmVjdCB7Cisg
ICAgICAgIGlmIChhdXRvKiBheE9iamVjdCA9IGFzc29jaWF0ZWRBWE9iamVjdCgpKQorICAgICAg
ICAgICAgcmV0dXJuIGF4T2JqZWN0LT5jb252ZXJ0UmVjdFRvUGxhdGZvcm1TcGFjZShyZWN0LCBz
cGFjZSk7CisgICAgICAgIHJldHVybiB7IH07CisgICAgfSk7Cit9CisKIHZvaWQgQVhJc29sYXRl
ZE9iamVjdDo6YXR0YWNoUGxhdGZvcm1XcmFwcGVyKEFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVy
KiB3cmFwcGVyKQogewogICAgIFt3cmFwcGVyIGF0dGFjaElzb2xhdGVkT2JqZWN0OnRoaXNdOwpA
QCAtNjcsNiArODYsMjAgQEAgQVhUZXh0TWFya2VyUmFuZ2VSZWYgQVhJc29sYXRlZE9iamVjdDo6
dGV4dE1hcmtlclJhbmdlRm9yTlNSYW5nZShjb25zdCBOU1JhbmdlJgogICAgIH0pOwogfQogCiti
b29sIEFYSXNvbGF0ZWRPYmplY3Q6OnByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2goKSBj
b25zdAoreworICAgIGlmIChhdXRvIHJvb3QgPSB0cmVlKCktPnJvb3ROb2RlKCkpCisgICAgICAg
IHJldHVybiByb290LT5ib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlByZXZlbnRL
ZXlib2FyZERPTUV2ZW50RGlzcGF0Y2gpOworICAgIHJldHVybiBmYWxzZTsKK30KKwordm9pZCBB
WElzb2xhdGVkT2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wg
dmFsdWUpCit7CisgICAgcGVyZm9ybUZ1bmN0aW9uT25NYWluVGhyZWFkKFsmdmFsdWVdKEFYQ29y
ZU9iamVjdCogb2JqZWN0KSB7CisgICAgICAgIG9iamVjdC0+c2V0UHJldmVudEtleWJvYXJkRE9N
RXZlbnREaXNwYXRjaCh2YWx1ZSk7CisgICAgfSk7Cit9CisKIH0gLy8gV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkgJiYgUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RD
YWNoZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2Fj
aGVNYWMubW0KaW5kZXggZTVhNzg2N2VlNmI2Li4wNjNjYmIwMDE1ZmQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQVhPYmplY3RDYWNoZU1hYy5tbQpAQCAt
MzIsMTAgKzMyLDE2IEBACiAjaW1wb3J0ICJBY2Nlc3NpYmlsaXR5T2JqZWN0LmgiCiAjaW1wb3J0
ICJBY2Nlc3NpYmlsaXR5VGFibGUuaCIKICNpbXBvcnQgIlJlbmRlck9iamVjdC5oIgorI2ltcG9y
dCAiUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIgogI2ltcG9ydCAiV2ViQWNjZXNzaWJpbGl0eU9i
amVjdFdyYXBwZXJNYWMuaCIKICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNBY2Nlc3NpYmlsaXR5
U1BJLmg+CiAjaW1wb3J0IDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+CiAKKyNpZiBFTkFC
TEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9B
Y2Nlc3NpYmlsaXR5U3VwcG9ydFNQSS5oPgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9BY2Nlc3Np
YmlsaXR5U3VwcG9ydFNvZnRMaW5rLmg+CisjZW5kaWYKKwogI2lmIFVTRShBUFBMRV9JTlRFUk5B
TF9TREspCiAjaW1wb3J0IDxBcHBsaWNhdGlvblNlcnZpY2VzL0FwcGxpY2F0aW9uU2VydmljZXNQ
cml2Lmg+CiAjZW5kaWYKQEAgLTYwMCw2ICs2MDYsNDkgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpw
bGF0Zm9ybVBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlKCkKIHsKIH0KIAorI2lmIEVOQUJMRShB
Q0NFU1NJQklMSVRZX0lTT0xBVEVEX1RSRUUpCitib29sIEFYT2JqZWN0Q2FjaGU6OmNsaWVudFN1
cHBvcnRzSXNvbGF0ZWRUcmVlKCkKK3sKKyAgICBhdXRvIGNsaWVudCA9IF9BWEdldENsaWVudEZv
ckN1cnJlbnRSZXF1ZXN0VW50cnVzdGVkKCk7CisgICAgcmV0dXJuIGNsaWVudCA9PSBrQVhDbGll
bnRUeXBlVm9pY2VPdmVyCisgICAgICAgIHx8IFVOTElLRUxZKGNsaWVudCA9PSBrQVhDbGllbnRU
eXBlV2ViS2l0VGVzdGluZyk7Cit9CisKK2Jvb2wgQVhPYmplY3RDYWNoZTo6aXNJc29sYXRlZFRy
ZWVFbmFibGVkKCkKK3sKKyAgICBzdGF0aWMgc3RkOjphdG9taWM8Ym9vbD4gZW5hYmxlZCB7IGZh
bHNlIH07CisgICAgaWYgKGVuYWJsZWQpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYg
KCFpc01haW5UaHJlYWQoKSkgeworICAgICAgICBBU1NFUlQoX0FYVUlFbGVtZW50UmVxdWVzdFNl
cnZpY2VkQnlTZWNvbmRhcnlBWFRocmVhZCgpKTsKKyAgICAgICAgZW5hYmxlZCA9IHRydWU7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgZW5hYmxlZCA9IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkuaXNBY2Nlc3NpYmlsaXR5SXNvbGF0ZWRUcmVlRW5hYmxlZCgpIC8vIFVz
ZWQgdG8gdHVybiBvZmYgaW4gYXBwcyBvdGhlciB0aGFuIFNhZmFyaSwgZS5nLiwgTWFpbC4KKyAg
ICAgICAgICAgICYmIF9BWFNJc29sYXRlZFRyZWVNb2RlRnVuY3Rpb25Jc0F2YWlsYWJsZSgpCisg
ICAgICAgICAgICAmJiBfQVhTSXNvbGF0ZWRUcmVlTW9kZV9Tb2Z0KCkgIT0gQVhTSXNvbGF0ZWRU
cmVlTW9kZU9mZiAvLyBVc2VkIHRvIHN3aXRjaCB2aWEgc3lzdGVtIGRlZmF1bHRzLgorICAgICAg
ICAgICAgJiYgY2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUoKTsKKyAgICB9CisKKyAgICByZXR1
cm4gZW5hYmxlZDsKK30KKwordm9pZCBBWE9iamVjdENhY2hlOjppbml0aWFsaXplU2Vjb25kYXJ5
QVhUaHJlYWQoKQoreworICAgIC8vIE5vdyB0aGF0IHdlIGhhdmUgY3JlYXRlZCBvdXIgdHJlZSwg
aW5pdGlhbGl6ZSB0aGUgc2Vjb25kYXJ5IHRocmVhZCwKKyAgICAvLyBzbyBmdXR1cmUgcmVxdWVz
dHMgY29tZSBpbiBvbiB0aGUgb3RoZXIgdGhyZWFkLgorICAgIGlmIChfQVhTSXNvbGF0ZWRUcmVl
TW9kZUZ1bmN0aW9uSXNBdmFpbGFibGUoKSAmJiBfQVhTSXNvbGF0ZWRUcmVlTW9kZV9Tb2Z0KCkg
PT0gQVhTSXNvbGF0ZWRUcmVlTW9kZVNlY29uZGFyeVRocmVhZCkKKyAgICAgICAgX0FYVUlFbGVt
ZW50VXNlU2Vjb25kYXJ5QVhUaHJlYWQodHJ1ZSk7Cit9CisKK2Jvb2wgQVhPYmplY3RDYWNoZTo6
dXNlZE9uQVhUaHJlYWQoKQoreworICAgIEFTU0VSVChpc0lzb2xhdGVkVHJlZUVuYWJsZWQoKSk7
CisgICAgcmV0dXJuIF9BWFNJc29sYXRlZFRyZWVNb2RlRnVuY3Rpb25Jc0F2YWlsYWJsZSgpCisg
ICAgICAgICYmIF9BWFNJc29sYXRlZFRyZWVNb2RlX1NvZnQoKSA9PSBBWFNJc29sYXRlZFRyZWVN
b2RlU2Vjb25kYXJ5VGhyZWFkOworfQorI2VuZGlmCisKIC8vIFRleHRNYXJrZXIgYW5kIFRleHRN
YXJrZXJSYW5nZSBmdW5jc3Rpb25zLgogLy8gRklYTUU6IFRleHRNYXJrZXIgYW5kIFRleHRNYXJr
ZXJSYW5nZSBzaG91bGQgYmVjb21lIGNsYXNzZXMgd3JhcHBpbmcgdGhlIHN5c3RlbSBvYmplY3Rz
LgogCg==
</data>
<flag name="commit-queue"
          id="461560"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438229</attachid>
            <date>2021-09-15 02:34:09 -0700</date>
            <delta_ts>2021-09-15 08:53:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-ax-platform-specific.diff</filename>
            <type>text/plain</type>
            <size>20828</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4ODhmOTlmZjhkYmYuLmZjNDA2NGYwY2FjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM3IEBACisyMDIxLTA5LTE1ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFA
aWdhbGlhLmNvbT4KKworICAgICAgICBBWDogTW92ZSBwbGF0Zm9ybSBzcGVjaWZpYyBjb2RlIGZv
ciBpc29sYXRlZCB0cmVlIG1vZGUgdG8gdGhlIHBsYXRmb3JtIGZpbGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzAzMDEKKyAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzgzMTM4MDI0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBtaXNzaW5nIGlmZGVmcyBpbiB0aGUgaGVhZGVycyBhbmQgbW92ZSB0
aGUgbWFjIHNwZWNpZmljIGNvZGUgdG8gbWFjIGZpbGVzLgorCisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6
Omlzb2xhdGVkVHJlZVJvb3RPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6aXNJc29sYXRlZFRyZWVFbmFibGVkKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmluaXRpYWxpemVTZWNvbmRhcnlBWFRocmVhZCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1c2VkT25BWFRocmVh
ZCk6IERlbGV0ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29s
YXRlZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0
aWFsaXplQXR0cmlidXRlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0
OjpjaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0OjpwcmV2ZW50
S2V5Ym9hcmRET01FdmVudERpc3BhdGNoIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNv
cmU6OkFYSXNvbGF0ZWRPYmplY3Q6OnNldFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2gp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y29udmVydFJl
Y3RUb1BsYXRmb3JtU3BhY2UgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAqIGFjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y29udmVydFJlY3RUb1BsYXRmb3Jt
U3BhY2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6cHJldmVu
dEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElz
b2xhdGVkT2JqZWN0OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6QVhPYmplY3RDYWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aXNJc29sYXRlZFRyZWVFbmFibGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmluaXRpYWxpemVTZWNvbmRhcnlBWFRocmVhZCk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1c2VkT25BWFRocmVhZCk6CisKIDIw
MjEtMDktMTUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIEFYOiBSZW1vdmUgQVhDb3JlT2JqZWN0Ojpjb250YWluc1RleHQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDg5ZjhhNjViMTVm
ZS4uZjM1N2E2MTI1NmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYT2JqZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKQEAgLTExMiwxMyArMTEyLDYgQEAKICNpbmNsdWRlICJUZXh0Qm91bmRh
cmllcy5oIgogI2luY2x1ZGUgIlRleHRDb250cm9sSW5uZXJFbGVtZW50cy5oIgogI2luY2x1ZGUg
IlRleHRJdGVyYXRvci5oIgotCi0jaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkgJiYgUExBVEZPUk0oTUFDKQotI2luY2x1ZGUgPHBhbC9zcGkvY29jb2EvQWNjZXNzaWJpbGl0
eVN1cHBvcnRTUEkuaD4KLSNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0FjY2Vzc2liaWxpdHlTdXBw
b3J0U29mdExpbmsuaD4KLSNpbmNsdWRlIDxwYWwvc3BpL21hYy9ISVNlcnZpY2VzU1BJLmg+Ci0j
ZW5kaWYKLQogI2luY2x1ZGUgPHd0Zi9EYXRhTG9nLmg+CiAjaW5jbHVkZSA8d3RmL1NldEZvclNj
b3BlLmg+CiAKQEAgLTc2NywzNSArNzYwLDYgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCogQVhPYmpl
Y3RDYWNoZTo6Z2V0T3JDcmVhdGUoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKICAgICByZXR1cm4g
bmV3T2JqLmdldCgpOwogfQogCi0jaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJF
RSkKLWJvb2wgQVhPYmplY3RDYWNoZTo6Y2xpZW50U3VwcG9ydHNJc29sYXRlZFRyZWUoKQotewot
ICAgIGF1dG8gY2xpZW50ID0gX0FYR2V0Q2xpZW50Rm9yQ3VycmVudFJlcXVlc3RVbnRydXN0ZWQo
KTsKLSAgICByZXR1cm4gY2xpZW50ID09IGtBWENsaWVudFR5cGVWb2ljZU92ZXIKLSAgICAgICAg
fHwgVU5MSUtFTFkoY2xpZW50ID09IGtBWENsaWVudFR5cGVXZWJLaXRUZXN0aW5nKTsKLX0KLQot
Ym9vbCBBWE9iamVjdENhY2hlOjppc0lzb2xhdGVkVHJlZUVuYWJsZWQoKQotewotICAgIHN0YXRp
YyBzdGQ6OmF0b21pYzxib29sPiBlbmFibGVkIHsgZmFsc2UgfTsKLSAgICBpZiAoZW5hYmxlZCkK
LSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBpZiAoIWlzTWFpblRocmVhZCgpKSB7Ci0gICAg
ICAgIEFTU0VSVChfQVhVSUVsZW1lbnRSZXF1ZXN0U2VydmljZWRCeVNlY29uZGFyeUFYVGhyZWFk
KCkpOwotICAgICAgICBlbmFibGVkID0gdHJ1ZTsKLSAgICB9IGVsc2UgewotICAgICAgICBlbmFi
bGVkID0gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5pc0FjY2Vzc2li
aWxpdHlJc29sYXRlZFRyZWVFbmFibGVkKCkgLy8gVXNlZCB0byB0dXJuIG9mZiBpbiBhcHBzIG90
aGVyIHRoYW4gU2FmYXJpLCBlLmcuLCBNYWlsLgotICAgICAgICAgICAgJiYgX0FYU0lzb2xhdGVk
VHJlZU1vZGVGdW5jdGlvbklzQXZhaWxhYmxlKCkKLSAgICAgICAgICAgICYmIF9BWFNJc29sYXRl
ZFRyZWVNb2RlX1NvZnQoKSAhPSBBWFNJc29sYXRlZFRyZWVNb2RlT2ZmIC8vIFVzZWQgdG8gc3dp
dGNoIHZpYSBzeXN0ZW0gZGVmYXVsdHMuCi0gICAgICAgICAgICAmJiBjbGllbnRTdXBwb3J0c0lz
b2xhdGVkVHJlZSgpOwotICAgIH0KLQotICAgIHJldHVybiBlbmFibGVkOwotfQotCi0jZW5kaWYK
LQogQVhDb3JlT2JqZWN0KiBBWE9iamVjdENhY2hlOjpyb290T2JqZWN0KCkKIHsKICAgICBpZiAo
IWdBY2Nlc3NpYmlsaXR5RW5hYmxlZCkKQEAgLTgxMCwxNSArNzc0LDYgQEAgQVhDb3JlT2JqZWN0
KiBBWE9iamVjdENhY2hlOjpyb290T2JqZWN0KCkKIH0KIAogI2lmIEVOQUJMRShBQ0NFU1NJQklM
SVRZX0lTT0xBVEVEX1RSRUUpCi0KLXZvaWQgQVhPYmplY3RDYWNoZTo6aW5pdGlhbGl6ZVNlY29u
ZGFyeUFYVGhyZWFkKCkKLXsKLSAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIGNyZWF0ZWQgb3VyIHRy
ZWUsIGluaXRpYWxpemUgdGhlIHNlY29uZGFyeSB0aHJlYWQsCi0gICAgLy8gc28gZnV0dXJlIHJl
cXVlc3RzIGNvbWUgaW4gb24gdGhlIG90aGVyIHRocmVhZC4KLSAgICBpZiAoX0FYU0lzb2xhdGVk
VHJlZU1vZGVGdW5jdGlvbklzQXZhaWxhYmxlKCkgJiYgX0FYU0lzb2xhdGVkVHJlZU1vZGVfU29m
dCgpID09IEFYU0lzb2xhdGVkVHJlZU1vZGVTZWNvbmRhcnlUaHJlYWQpCi0gICAgICAgIF9BWFVJ
RWxlbWVudFVzZVNlY29uZGFyeUFYVGhyZWFkKHRydWUpOwotfQotCiBSZWZQdHI8QVhJc29sYXRl
ZFRyZWU+IEFYT2JqZWN0Q2FjaGU6OmdldE9yQ3JlYXRlSXNvbGF0ZWRUcmVlKCkgY29uc3QKIHsK
ICAgICBpZiAoIW1fcGFnZUlEKQpAQCAtODQ0LDEzICs3OTksNiBAQCBBWENvcmVPYmplY3QqIEFY
T2JqZWN0Q2FjaGU6Omlzb2xhdGVkVHJlZVJvb3RPYmplY3QoKQogICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwogICAgIHJldHVybiBudWxscHRyOwogfQotCi1ib29sIEFYT2JqZWN0Q2FjaGU6OnVz
ZWRPbkFYVGhyZWFkKCkKLXsKLSAgICBBU1NFUlQoaXNJc29sYXRlZFRyZWVFbmFibGVkKCkpOwot
ICAgIHJldHVybiBfQVhTSXNvbGF0ZWRUcmVlTW9kZUZ1bmN0aW9uSXNBdmFpbGFibGUoKQotICAg
ICAgICAmJiBfQVhTSXNvbGF0ZWRUcmVlTW9kZV9Tb2Z0KCkgPT0gQVhTSXNvbGF0ZWRUcmVlTW9k
ZVNlY29uZGFyeVRocmVhZDsKLX0KICNlbmRpZgogCiBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9i
amVjdENhY2hlOjpyb290T2JqZWN0Rm9yRnJhbWUoRnJhbWUqIGZyYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkT2JqZWN0LmNwcAppbmRleCBiMGJjZjU1MjYwZmEuLjg5YzcwY2I3ZDM1NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9i
amVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUv
QVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTcxLDExICs3MSw4IEBAIHZvaWQgQVhJc29sYXRlZE9i
amVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wg
aXNSb290CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkFSSUFMYW5kbWFya1JvbGVE
ZXNjcmlwdGlvbiwgb2JqZWN0LmFyaWFMYW5kbWFya1JvbGVEZXNjcmlwdGlvbigpLmlzb2xhdGVk
Q29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6QWNjZXNzaWJpbGl0eURl
c2NyaXB0aW9uLCBvYmplY3QuYWNjZXNzaWJpbGl0eURlc2NyaXB0aW9uKCkuaXNvbGF0ZWRDb3B5
KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpCb3VuZGluZ0JveFJlY3QsIG9i
amVjdC5ib3VuZGluZ0JveFJlY3QoKSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
OkRlc2NyaXB0aW9uLCBvYmplY3QuZGVzY3JpcHRpb25BdHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVk
Q29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6RWxlbWVudFJlY3QsIG9i
amVjdC5lbGVtZW50UmVjdCgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGFz
QVJJQVZhbHVlTm93LCBvYmplY3QuaGFzQVJJQVZhbHVlTm93KCkpOwotICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpIYXNBcHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUsIG9iamVjdC5o
YXNBcHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUoKSk7Ci0gICAgc2V0UHJvcGVydHkoQVhQcm9w
ZXJ0eU5hbWU6OkhlbHBUZXh0LCBvYmplY3QuaGVscFRleHRBdHRyaWJ1dGVWYWx1ZSgpLmlzb2xh
dGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBY2Nlc3NpYmls
aXR5SWdub3JlZCwgb2JqZWN0LmFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSk7CiAgICAgc2V0UHJv
cGVydHkoQVhQcm9wZXJ0eU5hbWU6OklzQWN0aXZlRGVzY2VuZGFudE9mRm9jdXNlZENvbnRhaW5l
ciwgb2JqZWN0LmlzQWN0aXZlRGVzY2VuZGFudE9mRm9jdXNlZENvbnRhaW5lcigpKTsKICAgICBz
ZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SXNBdHRhY2htZW50LCBvYmplY3QuaXNBdHRhY2ht
ZW50KCkpOwpAQCAtMTM3LDExICsxMzQsOSBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRp
YWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYgb2JqZWN0LCBib29sIGlzUm9vdAogICAg
IHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpSb2xlRGVzY3JpcHRpb24sIG9iamVjdC5yb2xl
RGVzY3JpcHRpb24oKS5pc29sYXRlZENvcHkoKSk7CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OlJvbGVQbGF0Zm9ybVN0cmluZywgb2JqZWN0LnJvbGVQbGF0Zm9ybVN0cmluZygpLmlz
b2xhdGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Um9sZVZhbHVl
LCBzdGF0aWNfY2FzdDxpbnQ+KG9iamVjdC5yb2xlVmFsdWUoKSkpOwotICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpTcGVlY2hIaW50LCBvYmplY3Quc3BlZWNoSGludEF0dHJpYnV0ZVZh
bHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpT
dXBwb3J0c0RhdGV0aW1lQXR0cmlidXRlLCBvYmplY3Quc3VwcG9ydHNEYXRldGltZUF0dHJpYnV0
ZSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3VwcG9ydHNSb3dDb3VudENo
YW5nZSwgb2JqZWN0LnN1cHBvcnRzUm93Q291bnRDaGFuZ2UoKSk7CiAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlRpdGxlLCBvYmplY3QudGl0bGUoKS5pc29sYXRlZENvcHkoKSk7Ci0g
ICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlQXR0cmlidXRlVmFsdWUsIG9iamVj
dC50aXRsZUF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOwogICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpEYXRldGltZUF0dHJpYnV0ZVZhbHVlLCBvYmplY3QuZGF0ZXRpbWVB
dHRyaWJ1dGVWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6Q2FuU2V0Rm9jdXNBdHRyaWJ1dGUsIG9iamVjdC5jYW5TZXRGb2N1c0F0dHJpYnV0
ZSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Q2FuU2V0VGV4dFJhbmdlQXR0
cmlidXRlcywgb2JqZWN0LmNhblNldFRleHRSYW5nZUF0dHJpYnV0ZXMoKSk7CkBAIC0yMDksOSAr
MjA0LDYgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShB
WENvcmVPYmplY3QmIG9iamVjdCwgYm9vbCBpc1Jvb3QKICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6QXV0b0NvbXBsZXRlVmFsdWUsIG9iamVjdC5hdXRvQ29tcGxldGVWYWx1ZSgpLmlz
b2xhdGVkQ29weSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6U3BlYWtBcywg
b2JqZWN0LnNwZWFrQXNQcm9wZXJ0eSgpKTsKICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6U3RyaW5nVmFsdWUsIG9iamVjdC5zdHJpbmdWYWx1ZSgpLmlzb2xhdGVkQ29weSgpKTsKLSNp
ZiBQTEFURk9STShNQUMpCi0gICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkNhcmV0QnJv
d3NpbmdFbmFibGVkLCBvYmplY3QuY2FyZXRCcm93c2luZ0VuYWJsZWQoKSk7Ci0jZW5kaWYKICAg
ICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Rm9jdXNhYmxlQW5jZXN0b3IsIG9i
amVjdC5mb2N1c2FibGVBbmNlc3RvcigpKTsKICAgICBzZXRPYmplY3RQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6RWRpdGFibGVBbmNlc3Rvciwgb2JqZWN0LmVkaXRhYmxlQW5jZXN0b3IoKSk7CiAg
ICAgc2V0T2JqZWN0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkhpZ2hlc3RFZGl0YWJsZUFuY2Vz
dG9yLCBvYmplY3QuaGlnaGVzdEVkaXRhYmxlQW5jZXN0b3IoKSk7CkBAIC00MTEsNyArNDAzLDcg
QEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVP
YmplY3QmIG9iamVjdCwgYm9vbCBpc1Jvb3QKICAgICAgICAgc2V0T2JqZWN0VmVjdG9yUHJvcGVy
dHkoQVhQcm9wZXJ0eU5hbWU6OkRvY3VtZW50TGlua3MsIG9iamVjdC5kb2N1bWVudExpbmtzKCkp
OwogICAgIH0KIAotICAgIGluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMob2JqZWN0KTsKKyAg
ICBpbml0aWFsaXplUGxhdGZvcm1Qcm9wZXJ0aWVzKG9iamVjdCwgaXNSb290KTsKIH0KIAogQVhD
b3JlT2JqZWN0KiBBWElzb2xhdGVkT2JqZWN0Ojphc3NvY2lhdGVkQVhPYmplY3QoKSBjb25zdApA
QCAtNTE0LDggKzUwNiwxMCBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmRldGFjaEZyb21QYXJl
bnQoKQogCiBjb25zdCBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYg
QVhJc29sYXRlZE9iamVjdDo6Y2hpbGRyZW4oYm9vbCkKIHsKKyNpZiBVU0UoQVBQTEVfSU5URVJO
QUxfU0RLKQogICAgIEFTU0VSVChfQVhTSXNvbGF0ZWRUcmVlTW9kZUZ1bmN0aW9uSXNBdmFpbGFi
bGUoKSAmJiAoKF9BWFNJc29sYXRlZFRyZWVNb2RlX1NvZnQoKSA9PSBBWFNJc29sYXRlZFRyZWVN
b2RlU2Vjb25kYXJ5VGhyZWFkICYmICFpc01haW5UaHJlYWQoKSkKICAgICAgICAgfHwgKF9BWFNJ
c29sYXRlZFRyZWVNb2RlX1NvZnQoKSA9PSBBWFNJc29sYXRlZFRyZWVNb2RlTWFpblRocmVhZCAm
JiBpc01haW5UaHJlYWQoKSkpKTsKKyNlbmRpZgogICAgIHVwZGF0ZUJhY2tpbmdTdG9yZSgpOwog
ICAgIG1fY2hpbGRyZW4uY2xlYXIoKTsKICAgICBtX2NoaWxkcmVuLnJlc2VydmVJbml0aWFsQ2Fw
YWNpdHkobV9jaGlsZHJlbklEcy5zaXplKCkpOwpAQCAtNjAzLDEzICs1OTcsNiBAQCBTdHJpbmcg
QVhJc29sYXRlZE9iamVjdDo6ZG9jdW1lbnRVUkkoKSBjb25zdAogICAgIHJldHVybiBTdHJpbmco
KTsKIH0KIAotYm9vbCBBWElzb2xhdGVkT2JqZWN0OjpwcmV2ZW50S2V5Ym9hcmRET01FdmVudERp
c3BhdGNoKCkgY29uc3QKLXsKLSAgICBpZiAoYXV0byByb290ID0gdHJlZSgpLT5yb290Tm9kZSgp
KQotICAgICAgICByZXR1cm4gcm9vdC0+Ym9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1l
OjpQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19
Ci0KIFN0cmluZyBBWElzb2xhdGVkT2JqZWN0Ojpkb2N1bWVudEVuY29kaW5nKCkgY29uc3QKIHsK
ICAgICBpZiAoYXV0byByb290ID0gdHJlZSgpLT5yb290Tm9kZSgpKQpAQCAtNjU2LDE1ICs2NDMs
NiBAQCBBWENvcmVPYmplY3QqIEFYSXNvbGF0ZWRPYmplY3Q6OnNjcm9sbEJhcihBY2Nlc3NpYmls
aXR5T3JpZW50YXRpb24gb3JpZW50YXRpb24pCiAgICAgcmV0dXJuIG9iamVjdEF0dHJpYnV0ZVZh
bHVlKG9yaWVudGF0aW9uID09IEFjY2Vzc2liaWxpdHlPcmllbnRhdGlvbjo6VmVydGljYWwgPyBB
WFByb3BlcnR5TmFtZTo6VmVydGljYWxTY3JvbGxCYXIgOiBBWFByb3BlcnR5TmFtZTo6SG9yaXpv
bnRhbFNjcm9sbEJhcik7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFU+Ci12b2lkIEFYSXNvbGF0
ZWRPYmplY3Q6OnBlcmZvcm1GdW5jdGlvbk9uTWFpblRocmVhZChVJiYgbGFtYmRhKSBjb25zdAot
ewotICAgIEFjY2Vzc2liaWxpdHk6OnBlcmZvcm1GdW5jdGlvbk9uTWFpblRocmVhZChbJmxhbWJk
YSwgdGhpc10gKCkgewotICAgICAgICBpZiAoYXV0byogb2JqZWN0ID0gYXNzb2NpYXRlZEFYT2Jq
ZWN0KCkpCi0gICAgICAgICAgICBsYW1iZGEob2JqZWN0KTsKLSAgICB9KTsKLX0KLQogdm9pZCBB
WElzb2xhdGVkT2JqZWN0OjpzZXRBUklBR3JhYmJlZChib29sIHZhbHVlKQogewogICAgIHBlcmZv
cm1GdW5jdGlvbk9uTWFpblRocmVhZChbJnZhbHVlXShBWENvcmVPYmplY3QqIG9iamVjdCkgewpA
QCAtNzcxLDEzICs3NDksNiBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OnNldENhcmV0QnJvd3Np
bmdFbmFibGVkKGJvb2wgdmFsdWUpCiB9CiAjZW5kaWYKIAotdm9pZCBBWElzb2xhdGVkT2JqZWN0
OjpzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wgdmFsdWUpCi17Ci0gICAg
cGVyZm9ybUZ1bmN0aW9uT25NYWluVGhyZWFkKFsmdmFsdWVdKEFYQ29yZU9iamVjdCogb2JqZWN0
KSB7Ci0gICAgICAgIG9iamVjdC0+c2V0UHJldmVudEtleWJvYXJkRE9NRXZlbnREaXNwYXRjaCh2
YWx1ZSk7Ci0gICAgfSk7Ci19Ci0KIFNSR0JBPHVpbnQ4X3Q+IEFYSXNvbGF0ZWRPYmplY3Q6OmNv
bG9yVmFsdWUoKSBjb25zdAogewogICAgIHJldHVybiBjb2xvckF0dHJpYnV0ZVZhbHVlKEFYUHJv
cGVydHlOYW1lOjpDb2xvclZhbHVlKS50b1NSR0JBTG9zc3k8dWludDhfdD4oKTsKQEAgLTExNjcs
MTUgKzExMzgsNiBAQCBGbG9hdFJlY3QgQVhJc29sYXRlZE9iamVjdDo6Y29udmVydEZyYW1lVG9T
cGFjZShjb25zdCBGbG9hdFJlY3QmIHJlY3QsIEFjY2Vzc2liaQogICAgIH0pOwogfQogCi1GbG9h
dFJlY3QgQVhJc29sYXRlZE9iamVjdDo6Y29udmVydFJlY3RUb1BsYXRmb3JtU3BhY2UoY29uc3Qg
RmxvYXRSZWN0JiByZWN0LCBBY2Nlc3NpYmlsaXR5Q29udmVyc2lvblNwYWNlIHNwYWNlKSBjb25z
dAotewotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5OjpyZXRyaWV2ZVZhbHVlRnJvbU1haW5UaHJl
YWQ8RmxvYXRSZWN0PihbJnJlY3QsICZzcGFjZSwgdGhpc10gKCkgLT4gRmxvYXRSZWN0IHsKLSAg
ICAgICAgaWYgKGF1dG8qIGF4T2JqZWN0ID0gYXNzb2NpYXRlZEFYT2JqZWN0KCkpCi0gICAgICAg
ICAgICByZXR1cm4gYXhPYmplY3QtPmNvbnZlcnRSZWN0VG9QbGF0Zm9ybVNwYWNlKHJlY3QsIHNw
YWNlKTsKLSAgICAgICAgcmV0dXJuIHsgfTsKLSAgICB9KTsKLX0KLQogYm9vbCBBWElzb2xhdGVk
T2JqZWN0OjpyZXBsYWNlVGV4dEluUmFuZ2UoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFRleHQs
IGNvbnN0IFBsYWluVGV4dFJhbmdlJiB0ZXh0UmFuZ2UpCiB7CiAgICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHk6OnJldHJpZXZlVmFsdWVGcm9tTWFpblRocmVhZDxib29sPihbJnJlcGxhY2VtZW50VGV4
dCwgJnRleHRSYW5nZSwgdGhpc10gKCkgLT4gYm9vbCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmgK
aW5kZXggNmZiMWFkYWM4ZGFlLi42YTkzN2Q5OGQyNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICBBWElzb2xhdGVkT2JqZWN0KEFYQ29y
ZU9iamVjdCYsIEFYSXNvbGF0ZWRUcmVlKiwgQVhJRCBwYXJlbnRJRCk7CiAgICAgYm9vbCBpc0FY
SXNvbGF0ZWRPYmplY3RJbnN0YW5jZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIHRydWU7IH0K
ICAgICB2b2lkIGluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYsIGJvb2wgaXNS
b290KTsKLSAgICB2b2lkIGluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMoY29uc3QgQVhDb3Jl
T2JqZWN0Jik7CisgICAgdm9pZCBpbml0aWFsaXplUGxhdGZvcm1Qcm9wZXJ0aWVzKGNvbnN0IEFY
Q29yZU9iamVjdCYsIGJvb2wgaXNSb290KTsKICAgICBBWENvcmVPYmplY3QqIGFzc29jaWF0ZWRB
WE9iamVjdCgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZSwg
QVhQcm9wZXJ0eVZhbHVlVmFyaWFudCYmLCBib29sIHNob3VsZFJlbW92ZSA9IGZhbHNlKTsKQEAg
LTEwMCw3ICsxMDAsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIGZpbGxDaGlsZHJlblZlY3RvckZv
clByb3BlcnR5KEFYUHJvcGVydHlOYW1lLCBBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3ImKSBj
b25zdDsKICAgICB2b2lkIHNldE1hdGhzY3JpcHRzKEFYUHJvcGVydHlOYW1lLCBBWENvcmVPYmpl
Y3QmKTsKICAgICB2b2lkIGluc2VydE1hdGhQYWlycyhWZWN0b3I8c3RkOjpwYWlyPEFYSUQsIEFY
SUQ+PiYsIEFjY2Vzc2liaWxpdHlNYXRoTXVsdGlzY3JpcHRQYWlycyYpOwotICAgIHRlbXBsYXRl
PHR5cGVuYW1lIFU+IHZvaWQgcGVyZm9ybUZ1bmN0aW9uT25NYWluVGhyZWFkKFUmJikgY29uc3Q7
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVT4gdm9pZCBwZXJmb3JtRnVuY3Rpb25Pbk1haW5UaHJl
YWQoVSYmIGxhbWJkYSkgY29uc3QKKyAgICB7CisgICAgICAgIEFjY2Vzc2liaWxpdHk6OnBlcmZv
cm1GdW5jdGlvbk9uTWFpblRocmVhZChbJmxhbWJkYSwgdGhpc10oKSB7CisgICAgICAgICAgICBp
ZiAoYXV0byogb2JqZWN0ID0gYXNzb2NpYXRlZEFYT2JqZWN0KCkpCisgICAgICAgICAgICAgICAg
bGFtYmRhKG9iamVjdCk7CisgICAgICAgIH0pOworICAgIH0KIAogICAgIC8vIEF0dHJpYnV0ZSBy
ZXRyaWV2YWwgb3ZlcnJpZGVzLgogICAgIGJvb2wgaXNIZWFkaW5nKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gYm9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpJc0hlYWRpbmcpOyB9
CkBAIC0zMjAsMTEgKzMyNiwxMyBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNBbm9ueW1vdXNNYXRo
T3BlcmF0b3IoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQ
cm9wZXJ0eU5hbWU6OklzQW5vbnltb3VzTWF0aE9wZXJhdG9yKTsgfQogICAgIHZvaWQgbWF0aFBy
ZXNjcmlwdHMoQWNjZXNzaWJpbGl0eU1hdGhNdWx0aXNjcmlwdFBhaXJzJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBtYXRoUG9zdHNjcmlwdHMoQWNjZXNzaWJpbGl0eU1hdGhNdWx0aXNjcmlwdFBhaXJz
Jikgb3ZlcnJpZGU7CisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgYm9vbCBmaWxlVXBsb2FkQnV0
dG9uUmV0dXJuc1ZhbHVlSW5UaXRsZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRy
aWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6RmlsZVVwbG9hZEJ1dHRvblJldHVybnNWYWx1ZUlu
VGl0bGUpOyB9CiAgICAgU3RyaW5nIHNwZWVjaEhpbnRBdHRyaWJ1dGVWYWx1ZSgpIGNvbnN0IG92
ZXJyaWRlIHsgcmV0dXJuIHN0cmluZ0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpTcGVl
Y2hIaW50KTsgfQogICAgIFN0cmluZyBkZXNjcmlwdGlvbkF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkRl
c2NyaXB0aW9uKTsgfQogICAgIFN0cmluZyBoZWxwVGV4dEF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qg
b3ZlcnJpZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6Okhl
bHBUZXh0KTsgfQogICAgIFN0cmluZyB0aXRsZUF0dHJpYnV0ZVZhbHVlKCkgY29uc3Qgb3ZlcnJp
ZGUgeyByZXR1cm4gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OlRpdGxlQXR0
cmlidXRlVmFsdWUpOyB9CisjZW5kaWYKICNpZiBQTEFURk9STShNQUMpCiAgICAgYm9vbCBjYXJl
dEJyb3dzaW5nRW5hYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIGJvb2xBdHRyaWJ1dGVW
YWx1ZShBWFByb3BlcnR5TmFtZTo6Q2FyZXRCcm93c2luZ0VuYWJsZWQpOyB9CiAjZW5kaWYKQEAg
LTM2OSw3ICszNzcsOSBAQCBwcml2YXRlOgogICAgIHVpbnQ2NF90IHNlc3Npb25JRCgpIGNvbnN0
IG92ZXJyaWRlOwogICAgIFN0cmluZyBkb2N1bWVudFVSSSgpIGNvbnN0IG92ZXJyaWRlOwogICAg
IFN0cmluZyBkb2N1bWVudEVuY29kaW5nKCkgY29uc3Qgb3ZlcnJpZGU7CisjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgYm9vbCBwcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKCkgY29uc3Qg
b3ZlcnJpZGU7CisjZW5kaWYKIAogICAgIC8vIFBsYWluVGV4dFJhbmdlIHN1cHBvcnQuCiAgICAg
UGxhaW5UZXh0UmFuZ2Ugc2VsZWN0ZWRUZXh0UmFuZ2UoKSBjb25zdCBvdmVycmlkZTsKQEAgLTQ0
NCw3ICs0NTQsOSBAQCBwcml2YXRlOgogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNldENh
cmV0QnJvd3NpbmdFbmFibGVkKGJvb2wpIG92ZXJyaWRlOwogI2VuZGlmCisjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgdm9pZCBzZXRQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKGJvb2wp
IG92ZXJyaWRlOworI2VuZGlmCiAKICAgICBTdHJpbmcgdGV4dFVuZGVyRWxlbWVudChBY2Nlc3Np
YmlsaXR5VGV4dFVuZGVyRWxlbWVudE1vZGUgPSBBY2Nlc3NpYmlsaXR5VGV4dFVuZGVyRWxlbWVu
dE1vZGUoKSkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgc3RkOjpvcHRpb25hbDxTaW1wbGVSYW5nZT4g
bWlzc3BlbGxpbmdSYW5nZShjb25zdCBTaW1wbGVSYW5nZSYsIEFjY2Vzc2liaWxpdHlTZWFyY2hE
aXJlY3Rpb24pIGNvbnN0IG92ZXJyaWRlOwpAQCAtNjM0LDcgKzY0Niw5IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBvdmVycmlkZUF0dGFjaG1lbnRQYXJlbnQoQVhDb3JlT2JqZWN0KiBwYXJlbnQpIG92
ZXJyaWRlOwogICAgIGJvb2wgYWNjZXNzaWJpbGl0eUlnbm9yZUF0dGFjaG1lbnQoKSBjb25zdCBv
dmVycmlkZTsKICAgICBBY2Nlc3NpYmlsaXR5T2JqZWN0SW5jbHVzaW9uIGFjY2Vzc2liaWxpdHlQ
bGF0Zm9ybUluY2x1ZGVzT2JqZWN0KCkgY29uc3Qgb3ZlcnJpZGU7CisjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgYm9vbCBoYXNBcHBsZVBERkFubm90YXRpb25BdHRyaWJ1dGUoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBib29sQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6Okhhc0FwcGxl
UERGQW5ub3RhdGlvbkF0dHJpYnV0ZSk7IH0KKyNlbmRpZgogICAgIGNvbnN0IEFjY2Vzc2liaWxp
dHlTY3JvbGxWaWV3KiBhbmNlc3RvckFjY2Vzc2liaWxpdHlTY3JvbGxWaWV3KGJvb2wgaW5jbHVk
ZVNlbGYpIGNvbnN0IG92ZXJyaWRlOwogICAgIEFYQ29yZU9iamVjdCogd2ViQXJlYU9iamVjdCgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG9iamVjdEF0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlO
YW1lOjpXZWJBcmVhKTsgfQogICAgIHZvaWQgc2V0SXNJZ25vcmVkRnJvbVBhcmVudERhdGEoQWNj
ZXNzaWJpbGl0eUlzSWdub3JlZEZyb21QYXJlbnREYXRhJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJc29sYXRl
ZE9iamVjdE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVl
L21hYy9BWElzb2xhdGVkT2JqZWN0TWFjLm1tCmluZGV4IGMwYmY1OWJlMGI0Ni4uMzFkMjczNjQ1
NjhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJl
ZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9tYWMvQVhJc29sYXRlZE9iamVjdE1hYy5tbQpAQCAtMzIsOCAr
MzIsMTggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi12b2lkIEFYSXNvbGF0ZWRPYmplY3Q6
OmluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMoY29uc3QgQVhDb3JlT2JqZWN0JiBvYmplY3Qp
Cit2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVQbGF0Zm9ybVByb3BlcnRpZXMoY29u
c3QgQVhDb3JlT2JqZWN0JiBvYmplY3QsIGJvb2wgaXNSb290KQogeworICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpEZXNjcmlwdGlvbiwgb2JqZWN0LmRlc2NyaXB0aW9uQXR0cmlidXRl
VmFsdWUoKS5pc29sYXRlZENvcHkoKSk7CisgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6
Okhhc0FwcGxlUERGQW5ub3RhdGlvbkF0dHJpYnV0ZSwgb2JqZWN0Lmhhc0FwcGxlUERGQW5ub3Rh
dGlvbkF0dHJpYnV0ZSgpKTsKKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6SGVscFRl
eHQsIG9iamVjdC5oZWxwVGV4dEF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOworICAg
IHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpTcGVlY2hIaW50LCBvYmplY3Quc3BlZWNoSGlu
dEF0dHJpYnV0ZVZhbHVlKCkuaXNvbGF0ZWRDb3B5KCkpOworICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpUaXRsZUF0dHJpYnV0ZVZhbHVlLCBvYmplY3QudGl0bGVBdHRyaWJ1dGVWYWx1
ZSgpLmlzb2xhdGVkQ29weSgpKTsKKyAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6Q2Fy
ZXRCcm93c2luZ0VuYWJsZWQsIG9iamVjdC5jYXJldEJyb3dzaW5nRW5hYmxlZCgpKTsKKworICAg
IGlmIChpc1Jvb3QpCisgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpQcmV2ZW50
S2V5Ym9hcmRET01FdmVudERpc3BhdGNoLCBvYmplY3QucHJldmVudEtleWJvYXJkRE9NRXZlbnRE
aXNwYXRjaCgpKTsKKwogICAgIGlmIChvYmplY3QuaXNTY3JvbGxWaWV3KCkpIHsKICAgICAgICAg
bV9wbGF0Zm9ybVdpZGdldCA9IG9iamVjdC5wbGF0Zm9ybVdpZGdldCgpOwogICAgICAgICBtX3Jl
bW90ZVBhcmVudCA9IG9iamVjdC5yZW1vdGVQYXJlbnRPYmplY3QoKTsKQEAgLTQ4LDYgKzU4LDE1
IEBAIFJlbW90ZUFYT2JqZWN0UmVmIEFYSXNvbGF0ZWRPYmplY3Q6OnJlbW90ZVBhcmVudE9iamVj
dCgpIGNvbnN0CiAgICAgcmV0dXJuIGlzPEFYSXNvbGF0ZWRPYmplY3Q+KHNjcm9sbFZpZXcpID8g
ZG93bmNhc3Q8QVhJc29sYXRlZE9iamVjdD4oc2Nyb2xsVmlldyktPm1fcmVtb3RlUGFyZW50Lmdl
dCgpIDogbmlsOwogfQogCitGbG9hdFJlY3QgQVhJc29sYXRlZE9iamVjdDo6Y29udmVydFJlY3RU
b1BsYXRmb3JtU3BhY2UoY29uc3QgRmxvYXRSZWN0JiByZWN0LCBBY2Nlc3NpYmlsaXR5Q29udmVy
c2lvblNwYWNlIHNwYWNlKSBjb25zdAoreworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5OjpyZXRy
aWV2ZVZhbHVlRnJvbU1haW5UaHJlYWQ8RmxvYXRSZWN0PihbJnJlY3QsICZzcGFjZSwgdGhpc10o
KSAtPiBGbG9hdFJlY3QgeworICAgICAgICBpZiAoYXV0byogYXhPYmplY3QgPSBhc3NvY2lhdGVk
QVhPYmplY3QoKSkKKyAgICAgICAgICAgIHJldHVybiBheE9iamVjdC0+Y29udmVydFJlY3RUb1Bs
YXRmb3JtU3BhY2UocmVjdCwgc3BhY2UpOworICAgICAgICByZXR1cm4geyB9OworICAgIH0pOwor
fQorCiB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmF0dGFjaFBsYXRmb3JtV3JhcHBlcihBY2Nlc3Np
YmlsaXR5T2JqZWN0V3JhcHBlciogd3JhcHBlcikKIHsKICAgICBbd3JhcHBlciBhdHRhY2hJc29s
YXRlZE9iamVjdDp0aGlzXTsKQEAgLTY3LDYgKzg2LDIwIEBAIEFYVGV4dE1hcmtlclJhbmdlUmVm
IEFYSXNvbGF0ZWRPYmplY3Q6OnRleHRNYXJrZXJSYW5nZUZvck5TUmFuZ2UoY29uc3QgTlNSYW5n
ZSYKICAgICB9KTsKIH0KIAorYm9vbCBBWElzb2xhdGVkT2JqZWN0OjpwcmV2ZW50S2V5Ym9hcmRE
T01FdmVudERpc3BhdGNoKCkgY29uc3QKK3sKKyAgICBpZiAoYXV0byByb290ID0gdHJlZSgpLT5y
b290Tm9kZSgpKQorICAgICAgICByZXR1cm4gcm9vdC0+Ym9vbEF0dHJpYnV0ZVZhbHVlKEFYUHJv
cGVydHlOYW1lOjpQcmV2ZW50S2V5Ym9hcmRET01FdmVudERpc3BhdGNoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKK3ZvaWQgQVhJc29sYXRlZE9iamVjdDo6c2V0UHJldmVudEtleWJvYXJkRE9N
RXZlbnREaXNwYXRjaChib29sIHZhbHVlKQoreworICAgIHBlcmZvcm1GdW5jdGlvbk9uTWFpblRo
cmVhZChbJnZhbHVlXShBWENvcmVPYmplY3QqIG9iamVjdCkgeworICAgICAgICBvYmplY3QtPnNl
dFByZXZlbnRLZXlib2FyZERPTUV2ZW50RGlzcGF0Y2godmFsdWUpOworICAgIH0pOworfQorCiB9
IC8vIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShBQ0NFU1NJQklMSVRZX0lTT0xBVEVEX1RS
RUUpICYmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvbWFjL0FYT2JqZWN0Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L21hYy9BWE9iamVjdENhY2hlTWFjLm1tCmluZGV4IGU1YTc4NjdlZTZiNi4uMDYzY2JiMDAx
NWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BWE9iamVj
dENhY2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FYT2Jq
ZWN0Q2FjaGVNYWMubW0KQEAgLTMyLDEwICszMiwxNiBAQAogI2ltcG9ydCAiQWNjZXNzaWJpbGl0
eU9iamVjdC5oIgogI2ltcG9ydCAiQWNjZXNzaWJpbGl0eVRhYmxlLmgiCiAjaW1wb3J0ICJSZW5k
ZXJPYmplY3QuaCIKKyNpbXBvcnQgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbXBvcnQg
IldlYkFjY2Vzc2liaWxpdHlPYmplY3RXcmFwcGVyTWFjLmgiCiAjaW1wb3J0IDxwYWwvc3BpL2Nv
Y29hL05TQWNjZXNzaWJpbGl0eVNQSS5oPgogI2ltcG9ydCA8cGFsL3NwaS9tYWMvSElTZXJ2aWNl
c1NQSS5oPgogCisjaWYgRU5BQkxFKEFDQ0VTU0lCSUxJVFlfSVNPTEFURURfVFJFRSkKKyNpbXBv
cnQgPHBhbC9zcGkvY29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTUEkuaD4KKyNpbXBvcnQgPHBh
bC9zcGkvY29jb2EvQWNjZXNzaWJpbGl0eVN1cHBvcnRTb2Z0TGluay5oPgorI2VuZGlmCisKICNp
ZiBVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQogI2ltcG9ydCA8QXBwbGljYXRpb25TZXJ2aWNlcy9B
cHBsaWNhdGlvblNlcnZpY2VzUHJpdi5oPgogI2VuZGlmCkBAIC02MDAsNiArNjA2LDQ5IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cGxhdGZvcm1QZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSgpCiB7
CiB9CiAKKyNpZiBFTkFCTEUoQUNDRVNTSUJJTElUWV9JU09MQVRFRF9UUkVFKQorYm9vbCBBWE9i
amVjdENhY2hlOjpjbGllbnRTdXBwb3J0c0lzb2xhdGVkVHJlZSgpCit7CisgICAgYXV0byBjbGll
bnQgPSBfQVhHZXRDbGllbnRGb3JDdXJyZW50UmVxdWVzdFVudHJ1c3RlZCgpOworICAgIHJldHVy
biBjbGllbnQgPT0ga0FYQ2xpZW50VHlwZVZvaWNlT3ZlcgorICAgICAgICB8fCBVTkxJS0VMWShj
bGllbnQgPT0ga0FYQ2xpZW50VHlwZVdlYktpdFRlc3RpbmcpOworfQorCitib29sIEFYT2JqZWN0
Q2FjaGU6OmlzSXNvbGF0ZWRUcmVlRW5hYmxlZCgpCit7CisgICAgc3RhdGljIHN0ZDo6YXRvbWlj
PGJvb2w+IGVuYWJsZWQgeyBmYWxzZSB9OworICAgIGlmIChlbmFibGVkKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIGlmICghaXNNYWluVGhyZWFkKCkpIHsKKyAgICAgICAgQVNTRVJUKF9B
WFVJRWxlbWVudFJlcXVlc3RTZXJ2aWNlZEJ5U2Vjb25kYXJ5QVhUaHJlYWQoKSk7CisgICAgICAg
IGVuYWJsZWQgPSB0cnVlOworICAgIH0gZWxzZSB7CisgICAgICAgIGVuYWJsZWQgPSBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmlzQWNjZXNzaWJpbGl0eUlzb2xhdGVk
VHJlZUVuYWJsZWQoKSAvLyBVc2VkIHRvIHR1cm4gb2ZmIGluIGFwcHMgb3RoZXIgdGhhbiBTYWZh
cmksIGUuZy4sIE1haWwuCisgICAgICAgICAgICAmJiBfQVhTSXNvbGF0ZWRUcmVlTW9kZUZ1bmN0
aW9uSXNBdmFpbGFibGUoKQorICAgICAgICAgICAgJiYgX0FYU0lzb2xhdGVkVHJlZU1vZGVfU29m
dCgpICE9IEFYU0lzb2xhdGVkVHJlZU1vZGVPZmYgLy8gVXNlZCB0byBzd2l0Y2ggdmlhIHN5c3Rl
bSBkZWZhdWx0cy4KKyAgICAgICAgICAgICYmIGNsaWVudFN1cHBvcnRzSXNvbGF0ZWRUcmVlKCk7
CisgICAgfQorCisgICAgcmV0dXJuIGVuYWJsZWQ7Cit9CisKK3ZvaWQgQVhPYmplY3RDYWNoZTo6
aW5pdGlhbGl6ZVNlY29uZGFyeUFYVGhyZWFkKCkKK3sKKyAgICAvLyBOb3cgdGhhdCB3ZSBoYXZl
IGNyZWF0ZWQgb3VyIHRyZWUsIGluaXRpYWxpemUgdGhlIHNlY29uZGFyeSB0aHJlYWQsCisgICAg
Ly8gc28gZnV0dXJlIHJlcXVlc3RzIGNvbWUgaW4gb24gdGhlIG90aGVyIHRocmVhZC4KKyAgICBp
ZiAoX0FYU0lzb2xhdGVkVHJlZU1vZGVGdW5jdGlvbklzQXZhaWxhYmxlKCkgJiYgX0FYU0lzb2xh
dGVkVHJlZU1vZGVfU29mdCgpID09IEFYU0lzb2xhdGVkVHJlZU1vZGVTZWNvbmRhcnlUaHJlYWQp
CisgICAgICAgIF9BWFVJRWxlbWVudFVzZVNlY29uZGFyeUFYVGhyZWFkKHRydWUpOworfQorCiti
b29sIEFYT2JqZWN0Q2FjaGU6OnVzZWRPbkFYVGhyZWFkKCkKK3sKKyAgICBBU1NFUlQoaXNJc29s
YXRlZFRyZWVFbmFibGVkKCkpOworICAgIHJldHVybiBfQVhTSXNvbGF0ZWRUcmVlTW9kZUZ1bmN0
aW9uSXNBdmFpbGFibGUoKQorICAgICAgICAmJiBfQVhTSXNvbGF0ZWRUcmVlTW9kZV9Tb2Z0KCkg
PT0gQVhTSXNvbGF0ZWRUcmVlTW9kZVNlY29uZGFyeVRocmVhZDsKK30KKyNlbmRpZgorCiAvLyBU
ZXh0TWFya2VyIGFuZCBUZXh0TWFya2VyUmFuZ2UgZnVuY3N0aW9ucy4KIC8vIEZJWE1FOiBUZXh0
TWFya2VyIGFuZCBUZXh0TWFya2VyUmFuZ2Ugc2hvdWxkIGJlY29tZSBjbGFzc2VzIHdyYXBwaW5n
IHRoZSBzeXN0ZW0gb2JqZWN0cy4KIAo=
</data>
<flag name="commit-queue"
          id="461581"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>