<?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>223627</bug_id>
          
          <creation_ts>2021-03-23 00:31:09 -0700</creation_ts>
          <short_desc>ANGLE Metal fixes for program generation bugs</short_desc>
          <delta_ts>2021-03-23 13:00:05 -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>ANGLE</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Minor</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>220076</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kyle Piddington">kpiddington</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>graouts</cc>
    
    <cc>jonlee</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1742695</commentid>
    <comment_count>0</comment_count>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-03-23 00:31:09 -0700</bug_when>
    <thetext>The following three tests hit debug assertions when generating programs, and produce invalid programs on release.
webgl/2.0.0/conformance2/glsl3/texture-offset-uniform-texture-coordinate.html
webgl/2.0.0/conformance/glsl/bugs/compound-assignment-type-combination.html
webgl/2.0.0/conformance/glsl/bugs/complex-glsl-does-not-crash.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742696</commentid>
    <comment_count>1</comment_count>
      <attachid>423993</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-03-23 00:33:22 -0700</bug_when>
    <thetext>Created attachment 423993
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742697</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-03-23 00:34:22 -0700</bug_when>
    <thetext>Note that there are important steps to take when updating ANGLE. See https://trac.webkit.org/wiki/UpdatingANGLE</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742701</commentid>
    <comment_count>3</comment_count>
      <attachid>423993</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2021-03-23 00:48:31 -0700</bug_when>
    <thetext>Comment on attachment 423993
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=423993&amp;action=review

&gt; Source/ThirdParty/ANGLE/src/compiler/translator/TranslatorMetalDirect/ProgramPrelude.cpp:3562
&gt; +            }

missing break?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742812</commentid>
    <comment_count>4</comment_count>
      <attachid>424021</attachid>
    <who name="Kyle Piddington">kpiddington</who>
    <bug_when>2021-03-23 08:49:32 -0700</bug_when>
    <thetext>Created attachment 424021
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742914</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-23 11:23:06 -0700</bug_when>
    <thetext>Committed r274884: &lt;https://commits.webkit.org/r274884&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424021.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1742915</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-23 11:24:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/75746599&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423993</attachid>
            <date>2021-03-23 00:33:22 -0700</date>
            <delta_ts>2021-03-23 08:49:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223627-20210323003321.patch</filename>
            <type>text/plain</type>
            <size>45576</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggYzhiMTk0M2Y3YzJmNTUwMjM3ZWUwYzlhYjBjNDRmNjQzYzM3ZWI0OS4uYWY1YWYzMTQzMzJl
OGFkYzhhMmVkNmNjNWEwMzg0NjJhNDdlMWRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTAzLTIzICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQU5HTEUgTWV0YWwgZml4ZXMgZm9yIHByb2dyYW0g
Z2VuZXJhdGlvbiBidWdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjM2MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAgICB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvZ2xzbDMvdGV4dHVyZS1vZmZzZXQt
dW5pZm9ybS10ZXh0dXJlLWNvb3JkaW5hdGUuaHRtbCBpcyBmaXhlZCBieSBkcm9wcGluZyAndGhy
ZWFkJyBxdWFsaWZpZXJzIG9uIHByZWdlbmVyYXRlZCBmdW5jdGlvbnMKKyAgICAgICAgICAgd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UvZ2xzbC9idWdzL2NvbXBvdW5kLWFzc2lnbm1lbnQtdHlwZS1j
b21iaW5hdGlvbi5odG1sIGlzIGZpeGVkIGJ5IGludHJvZHVjaW5nIG5ldyBvcGVyYXRvcnMgZm9y
IG1hdHJpeCArLy0gc2NhbGFycworICAgICAgICAgICB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9n
bHNsL2J1Z3MvY29tcGxleC1nbHNsLWRvZXMtbm90LWNyYXNoLmh0bWwgaXMgZml4ZWQgYnkgYWRk
aW5nIGEgcHJlLXBhc3MgdG8gcmVuYW1lIGFueSByZXNlcnZlZCBrZXl3b3Jkcywgc3VjaCBhcyAn
dmVydGV4JworCisgICAgICAgICogc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1l
dGFsRGlyZWN0L0VtaXRNZXRhbC5jcHA6CisgICAgICAgIChCdWlsZEV4dGVybmFsQXR0cmlidXRl
SW5kZXhNYXApOgorICAgICAgICAqIHNyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JN
ZXRhbERpcmVjdC9Qcm9ncmFtUHJlbHVkZS5jcHA6CisgICAgICAgICogc3JjL2NvbXBpbGVyL3Ry
YW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1Jld3JpdGVLZXl3b3Jkcy5jcHA6CisgICAg
ICAgIChzaDo6UmV3cml0ZXI6Om1heWJlQ3JlYXRlTmV3TmFtZSk6CisgICAgICAgIChzaDo6UmV3
cml0ZXI6OnZpc2l0U3ltYm9sUG9zdCk6CisgICAgICAgIChzaDo6UmV3cml0ZXI6OnByZWRlZmlu
ZU5hbWUpOgorICAgICAgICAoc2g6OlJld3JpdGVLZXl3b3Jkcyk6CisKIDIwMjEtMDMtMTkgIEt5
bGUgUGlkZGluZ3RvbiAgPGtwaWRkaW5ndG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZXRhbC1B
bmdsZSBvbiBTaW11bGF0b3IgZG9lcyBub3Qgc3VwcG9ydCBEMjRTOCBjb3JyZWN0bHkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1Ry
YW5zbGF0b3JNZXRhbERpcmVjdC9FbWl0TWV0YWwuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L0VtaXRNZXRh
bC5jcHAKaW5kZXggMjJhZGI0MjZiOGViYWM1ZDVkNDNkZGNjZmQ2MzZkNDMzNWM1MjQ1Ny4uOTI1
M2ZkOTNmZGIzOTNmZjMwNzE4YjYyY2E0MWU1ZWQzMTMzMzhiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFs
RGlyZWN0L0VtaXRNZXRhbC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2Nv
bXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L0VtaXRNZXRhbC5jcHAKQEAg
LTEyNTYsNyArMTI1Niw4IEBAIHN0YXRpYyBzdGQ6Om1hcDxOYW1lLCBzaXplX3Q+IEJ1aWxkRXh0
ZXJuYWxBdHRyaWJ1dGVJbmRleE1hcCgKICAgICAgICAgY29uc3QgVEZpZWxkICZpbnRlcm5hbEZp
ZWxkID0gKmludGVybmFsRmllbGRzW2ludGVybmFsSW5kZXhdOwogICAgICAgICBjb25zdCBOYW1l
IGludGVybmFsTmFtZSAgICAgPSBOYW1lKGludGVybmFsRmllbGQpOwogICAgICAgICBjb25zdCBU
VHlwZSAmaW50ZXJuYWxUeXBlICAgPSAqaW50ZXJuYWxGaWVsZC50eXBlKCk7Ci0gICAgICAgIHdo
aWxlIChpbnRlcm5hbE5hbWUucmF3TmFtZSgpICE9IHNoYWRlclZhcnNbc2hhZGVyVmFySW5kZXhd
Lm5hbWUpCisgICAgICAgIHdoaWxlIChpbnRlcm5hbE5hbWUucmF3TmFtZSgpICE9IHNoYWRlclZh
cnNbc2hhZGVyVmFySW5kZXhdLm5hbWUgJiYKKyAgICAgICAgICAgICAgIGludGVybmFsTmFtZS5y
YXdOYW1lKCkgIT0gc2hhZGVyVmFyc1tzaGFkZXJWYXJJbmRleF0ubWFwcGVkTmFtZSkKICAgICAg
ICAgewogICAgICAgICAgICAgLy8gVGhpcyBjYXNlIHJlcHJlc2VudHMgYW4gaW5hY3RpdmUgZmll
bGQuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90
cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9Qcm9ncmFtUHJlbHVkZS5jcHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0
YWxEaXJlY3QvUHJvZ3JhbVByZWx1ZGUuY3BwCmluZGV4IDhiMDY1NmFhZjM3NmUxZTgyNzRhZjFm
MjBiY2I3NDcwNzAxNmYzNDMuLjU1YjBmNjk5NzAyMDRlZDM5NjZlMDBhMjI5ZjYwNTVmYzY2NGZi
ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFu
c2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9Qcm9ncmFtUHJlbHVkZS5jcHAKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1l
dGFsRGlyZWN0L1Byb2dyYW1QcmVsdWRlLmNwcApAQCAtNzQxLDggKzc0MSw4IEBAIEFOR0xFX0FM
V0FZU19JTkxJTkUgZmxvYXQyIEFOR0xFX3VucGFja19oYWxmXzJ4MTYodWludCB4KQogKSIsICkK
IAogUFJPR1JBTV9QUkVMVURFX0RFQ0xBUkUobWF0bXVsQXNzaWduLCBSIigKLXRlbXBsYXRlIDx0
eXBlbmFtZSBULCBpbnQgTj4KLUFOR0xFX0FMV0FZU19JTkxJTkUgdGhyZWFkIG1ldGFsOjptYXRy
aXg8VCwgTiwgTj4gJm9wZXJhdG9yKj0odGhyZWFkIG1ldGFsOjptYXRyaXg8VCwgTiwgTj4gJmEs
IG1ldGFsOjptYXRyaXg8VCwgTiwgTj4gYikKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCBpbnQgQ29s
cywgaW50IFJvd3M+CitBTkdMRV9BTFdBWVNfSU5MSU5FIHRocmVhZCBtZXRhbDo6bWF0cml4PFQs
IENvbHMsIFJvd3M+ICZvcGVyYXRvcio9KHRocmVhZCBtZXRhbDo6bWF0cml4PFQsIENvbHMsIFJv
d3M+ICZhLCBtZXRhbDo6bWF0cml4PFQsIENvbHMsIENvbHM+IGIpCiB7CiAgICAgYSA9IGEgKiBi
OwogICAgIHJldHVybiBhOwpAQCAtMTQ4Myw3ICsxNDgzLDcgQEAgUFJPR1JBTV9QUkVMVURFX0RF
Q0xBUkUodGV4ZWxGZXRjaCwKIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxX
QVlTX0lOTElORSBhdXRvIEFOR0xFX3RleGVsRmV0Y2hfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVy
ZSAmdGV4dHVyZSwKLSAgICB0aHJlYWQgbWV0YWw6OmludDIgY29uc3QgJmNvb3JkLAorICAgIG1l
dGFsOjppbnQyIGNvbnN0IGNvb3JkLAogICAgIHVpbnQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRl
eHR1cmUucmVhZCh1aW50Mihjb29yZCksIGxldmVsKTsKQEAgLTE0OTIsNyArMTQ5Miw3IEBAIEFO
R0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXhlbEZldGNoX2ltcGwoCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXhlbEZl
dGNoX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUsCi0gICAgdGhyZWFkIG1ldGFs
OjppbnQzIGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6aW50MyBjb25zdCBjb29yZCwKICAgICB1
aW50IGxldmVsKQogewogICAgIHJldHVybiB0ZXh0dXJlLnJlYWQodWludDMoY29vcmQpLCBsZXZl
bCk7CkBAIC0xNTAxLDcgKzE1MDEsNyBAQCBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVf
dGV4ZWxGZXRjaF9pbXBsKAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5M
SU5FIGF1dG8gQU5HTEVfdGV4ZWxGZXRjaF9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6dGV4dHVy
ZTJkX2FycmF5PFQ+ICZ0ZXh0dXJlLAotICAgIHRocmVhZCBtZXRhbDo6aW50MyBjb25zdCAmY29v
cmQsCisgICAgbWV0YWw6OmludDMgY29uc3QgY29vcmQsCiAgICAgdWludCBsZXZlbCkKIHsKICAg
ICByZXR1cm4gdGV4dHVyZS5yZWFkKHVpbnQyKGNvb3JkLnh5KSwgdWludChjb29yZC56KSwgbGV2
ZWwpOwpAQCAtMTUxNiw5ICsxNTE2LDkgQEAgUFJPR1JBTV9QUkVMVURFX0RFQ0xBUkUodGV4ZWxG
ZXRjaE9mZnNldCwKIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lO
TElORSBhdXRvIEFOR0xFX3RleGVsRmV0Y2hPZmZzZXRfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVy
ZSAmdGV4dHVyZSwKLSAgICB0aHJlYWQgbWV0YWw6OmludDIgY29uc3QgJmNvb3JkLAorICAgIG1l
dGFsOjppbnQyIGNvbnN0IGNvb3JkLAogICAgIHVpbnQgbGV2ZWwsCi0gICAgdGhyZWFkIG1ldGFs
OjppbnQyIGNvbnN0ICZvZmZzZXQpCisgICAgbWV0YWw6OmludDIgY29uc3Qgb2Zmc2V0KQogewog
ICAgIHJldHVybiB0ZXh0dXJlLnJlYWQodWludDIoY29vcmQgKyBvZmZzZXQpLCBsZXZlbCk7CiB9
CkBAIC0xNTI2LDkgKzE1MjYsOSBAQCBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4
ZWxGZXRjaE9mZnNldF9pbXBsKAogdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9B
TFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4ZWxGZXRjaE9mZnNldF9pbXBsKAogICAgIHRocmVh
ZCBUZXh0dXJlICZ0ZXh0dXJlLAotICAgIHRocmVhZCBtZXRhbDo6aW50MyBjb25zdCAmY29vcmQs
CisgICAgbWV0YWw6OmludDMgY29uc3QgY29vcmQsCiAgICAgdWludCBsZXZlbCwKLSAgICB0aHJl
YWQgbWV0YWw6OmludDMgY29uc3QgJm9mZnNldCkKKyAgICBtZXRhbDo6aW50MyBjb25zdCBvZmZz
ZXQpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUucmVhZCh1aW50Myhjb29yZCArIG9mZnNldCksIGxl
dmVsKTsKIH0KQEAgLTE1MzYsOSArMTUzNiw5IEBAIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBB
TkdMRV90ZXhlbEZldGNoT2Zmc2V0X2ltcGwoCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xF
X0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXhlbEZldGNoT2Zmc2V0X2ltcGwoCiAgICAgdGhy
ZWFkIG1ldGFsOjp0ZXh0dXJlMmRfYXJyYXk8VD4gJnRleHR1cmUsCi0gICAgdGhyZWFkIG1ldGFs
OjppbnQzIGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6aW50MyBjb25zdCBjb29yZCwKICAgICB1
aW50IGxldmVsLAotICAgIHRocmVhZCBtZXRhbDo6aW50MiBjb25zdCAmb2Zmc2V0KQorICAgIG1l
dGFsOjppbnQyIGNvbnN0IG9mZnNldCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5yZWFkKHVpbnQy
KGNvb3JkLnh5ICsgb2Zmc2V0KSwgdWludChjb29yZC56KSwgbGV2ZWwpOwogfQpAQCAtMTU1Nyw3
ICsxNTU3LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5M
SU5FIGF1dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJl
LAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQg
bWV0YWw6OmZsb2F0MiBjb25zdCAmY29vcmQpCisgICAgbWV0YWw6OmZsb2F0MiBjb25zdCBjb29y
ZCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQpOwogfQpAQCAt
MTU3MCw3ICsxNTcwLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdB
WVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0
ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0
aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MiBjb25z
dCBjb29yZCwKICAgICBmbG9hdCBiaWFzKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShz
YW1wbGVyLCBjb29yZCwgbWV0YWw6OmJpYXMoYmlhcykpOwpAQCAtMTU4NCw3ICsxNTg0LDcgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5H
TEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAgIHRocmVh
ZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0
MyBjb25zdCAmY29vcmQpCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBjb29yZCkKIHsKICAgICBy
ZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQpOwogfQpAQCAtMTU5Nyw3ICsxNTk3
LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1
dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAg
IHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6
OmZsb2F0MyBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBjb29yZCwKICAg
ICBmbG9hdCBiaWFzKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29y
ZCwgbWV0YWw6OmJpYXMoYmlhcykpOwpAQCAtMTYxMSw3ICsxNjExLDcgQEAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAog
ICAgIHRocmVhZCBtZXRhbDo6ZGVwdGgyZDxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6
OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3Qg
JmNvb3JkKQorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQpCiB7CiAgICAgcmV0dXJuIHRl
eHR1cmUuc2FtcGxlX2NvbXBhcmUoc2FtcGxlciwgY29vcmQueHksIGNvb3JkLnopOwogfQpAQCAt
MTYyNCw3ICsxNjI0LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5M
SU5FIGF1dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6ZGVwdGgyZDxU
PiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0g
ICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMg
Y29uc3QgY29vcmQsCiAgICAgZmxvYXQgYmlhcykKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1w
bGVfY29tcGFyZShzYW1wbGVyLCBjb29yZC54eSwgY29vcmQueiwgbWV0YWw6OmJpYXMoYmlhcykp
OwpAQCAtMTYzOCw3ICsxNjM4LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdB
WVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6ZGVw
dGgyZF9hcnJheTxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3Qg
JnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkKQorICAgIG1l
dGFsOjpmbG9hdDQgY29uc3QgY29vcmQpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlX2Nv
bXBhcmUoc2FtcGxlciwgY29vcmQueHksIHVpbnQobWV0YWw6OnJvdW5kKGNvb3JkLnopKSwgY29v
cmQudyk7CiB9CkBAIC0xNjUxLDcgKzE2NTEsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFO
R0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlX2ltcGwoCiAgICAgdGhyZWFkIG1l
dGFsOjpkZXB0aDJkX2FycmF5PFQ+ICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxl
ciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25zdCAmY29vcmQs
CisgICAgbWV0YWw6OmZsb2F0NCBjb25zdCBjb29yZCwKICAgICBmbG9hdCBjb21wYXJlKQogewog
ICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZV9jb21wYXJlKHNhbXBsZXIsIGNvb3JkLnh5eiwgdWlu
dChtZXRhbDo6cm91bmQoY29vcmQudykpLCBjb21wYXJlKTsKQEAgLTE2NjUsNyArMTY2NSw3IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3Rl
eHR1cmVfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoY3ViZTxUPiAmdGV4dHVyZSwKICAg
ICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFs
OjpmbG9hdDQgY29uc3QgJmNvb3JkKQorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQpCiB7
CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlX2NvbXBhcmUoc2FtcGxlciwgY29vcmQueHl6LCBj
b29yZC53KTsKIH0KQEAgLTE2NzgsNyArMTY3OCw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgog
QU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVfaW1wbCgKICAgICB0aHJlYWQg
bWV0YWw6OmRlcHRoY3ViZTxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIg
Y29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkLAor
ICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCiAgICAgZmxvYXQgYmlhcykKIHsKICAgICBy
ZXR1cm4gdGV4dHVyZS5zYW1wbGVfY29tcGFyZShzYW1wbGVyLCBjb29yZC54eXosIGNvb3JkLncs
IG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTE2OTIsNyArMTY5Miw3IEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVfaW1wbCgKICAg
ICB0aHJlYWQgbWV0YWw6OnRleHR1cmUyZF9hcnJheTxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQg
bWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMg
Y29uc3QgJmNvb3JkKQorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQpCiB7CiAgICAgcmV0
dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5LCB1aW50KG1ldGFsOjpyb3VuZChj
b29yZC56KSkpOwogfQpAQCAtMTcwNSw3ICsxNzA1LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVh
ZCBtZXRhbDo6dGV4dHVyZTJkX2FycmF5PFQ+ICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6
c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MyBjb25zdCAm
Y29vcmQsCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBjb29yZCwKICAgICBmbG9hdCBiaWFzKQog
ewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eSwgdWludChtZXRh
bDo6cm91bmQoY29vcmQueikpLCBtZXRhbDo6YmlhcyhiaWFzKSk7CkBAIC0xNzE5LDcgKzE3MTks
NyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdM
RV90ZXh0dXJlX2ltcGwoCiAgICAgdGhyZWFkIG1ldGFsOjp0ZXh0dXJlMmRfYXJyYXk8VD4gJnRl
eHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRo
cmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCkKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0
IGNvb3JkKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eXos
IHVpbnQobWV0YWw6OnJvdW5kKGNvb3JkLncpKSk7CiB9CkBAIC0xNzMyLDcgKzE3MzIsNyBAQCB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0
dXJlX2ltcGwoCiAgICAgdGhyZWFkIG1ldGFsOjp0ZXh0dXJlMmRfYXJyYXk8VD4gJnRleHR1cmUs
CiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBt
ZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3Jk
LAogICAgIGZsb2F0IGJpYXMpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5eiwgdWludChtZXRhbDo6cm91bmQoY29vcmQudykpLCBtZXRhbDo6YmlhcyhiaWFz
KSk7CkBAIC0xNzQ4LDcgKzE3NDgsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFO
R0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlMURMb2RfaW1wbCgKICAgICB0aHJl
YWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNh
bXBsZXIsCi0gICAgdGhyZWFkIGZsb2F0IGNvbnN0ICZjb29yZCwKKyAgICBmbG9hdCBjb25zdCBj
b29yZCwKICAgICBmbG9hdCBsZXZlbCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2Ft
cGxlciwgY29vcmQsIG1ldGFsOjpsZXZlbChsZXZlbCkpOwpAQCAtMTc2NCw3ICsxNzY0LDcgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5H
TEVfdGV4dHVyZTFEUHJval9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAg
IHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6
OmZsb2F0MiBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MiBjb25zdCBjb29yZCwKICAg
ICBmbG9hdCBiaWFzID0gMCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwg
Y29vcmQueC9jb29yZC55LCBtZXRhbDo6YmlhcyhiaWFzKSk7CkBAIC0xNzc0LDcgKzE3NzQsNyBA
QCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBB
TkdMRV90ZXh0dXJlMURQcm9qX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUsCiAg
ICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRh
bDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3JkLAog
ICAgIGZsb2F0IGJpYXMgPSAwKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVy
LCBjb29yZC54L2Nvb3JkLncsIG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTE3OTAsNyArMTc5MCw3
IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRv
IEFOR0xFX3RleHR1cmUxRFByb2pMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVy
ZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFk
IG1ldGFsOjpmbG9hdDIgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgY29v
cmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBs
ZXIsIGNvb3JkLngvY29vcmQueSwgbWV0YWw6OmxldmVsKGxldmVsKSk7CkBAIC0xODAwLDcgKzE4
MDAsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUg
YXV0byBBTkdMRV90ZXh0dXJlMURQcm9qTG9kX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRl
eHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRo
cmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0
IGNvb3JkLAogICAgIGZsb2F0IGxldmVsKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShz
YW1wbGVyLCBjb29yZC54L2Nvb3JkLncsIG1ldGFsOjpsZXZlbChsZXZlbCkpOwpAQCAtMTgxNiw3
ICsxODE2LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5M
SU5FIGF1dG8gQU5HTEVfdGV4dHVyZTJEX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBtZXRhbDo6ZmxvYXQyIGNvbnN0ICZjb29yZCkKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGNv
b3JkKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZCk7CiB9CkBA
IC0xODI1LDcgKzE4MjUsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FM
V0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlMkRfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVy
ZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0g
ICAgdGhyZWFkIG1ldGFsOjpmbG9hdDIgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIg
Y29uc3QgY29vcmQsCiAgICAgZmxvYXQgYmlhcykKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1w
bGUoc2FtcGxlciwgY29vcmQsIG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTE4MzUsNyArMTgzNSw3
IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRv
IEFOR0xFX3RleHR1cmUyRF9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAg
IHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6
OmZsb2F0MyBjb25zdCAmY29vcmQpCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBjb29yZCkKIHsK
ICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQpOwogfQpAQCAtMTg0NCw3
ICsxODQ0LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5M
SU5FIGF1dG8gQU5HTEVfdGV4dHVyZTJEX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNv
b3JkLAogICAgIGZsb2F0IGJpYXMpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBs
ZXIsIGNvb3JkLCBtZXRhbDo6YmlhcyhiaWFzKSk7CkBAIC0xODU5LDcgKzE4NTksNyBAQCB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90
ZXh0dXJlMkRSZWN0X2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhy
ZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6Zmxv
YXQyIGNvbnN0ICZjb29yZCkKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGNvb3JkKQogewogICAg
IHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZCk7CiB9CkBAIC0xODc1LDcgKzE4
NzUsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUg
YXV0byBBTkdMRV90ZXh0dXJlMkRMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVy
ZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFk
IG1ldGFsOjpmbG9hdDIgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgY29v
cmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBs
ZXIsIGNvb3JkLCBtZXRhbDo6bGV2ZWwobGV2ZWwpKTsKQEAgLTE4OTEsNyArMTg5MSw3IEBAIHRl
bXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xF
X3RleHR1cmUyRFByb2pfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0
aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpm
bG9hdDMgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQsCiAgICAg
ZmxvYXQgYmlhcyA9IDApCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNv
b3JkLnh5L2Nvb3JkLnosIG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTE5MDEsNyArMTkwMSw3IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFO
R0xFX3RleHR1cmUyRFByb2pfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAg
ICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFs
OjpmbG9hdDQgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCiAg
ICAgZmxvYXQgYmlhcyA9IDApCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5L2Nvb3JkLncsIG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTE5MTcsNyArMTkxNyw3
IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRv
IEFOR0xFX3RleHR1cmUyRFJlY3RQcm9qX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCkKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNv
b3JkKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eS9jb29y
ZC56KTsKIH0KQEAgLTE5MjUsNyArMTkyNSw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJl
PgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmUyRFJlY3RQcm9qX2ltcGwo
CiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVy
IGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCkK
KyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3JkKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNh
bXBsZShzYW1wbGVyLCBjb29yZC54eS9jb29yZC53KTsKIH0KQEAgLTE5NDAsNyArMTk0MCw3IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFO
R0xFX3RleHR1cmUyRFByb2pMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwK
ICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1l
dGFsOjpmbG9hdDMgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQs
CiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5L2Nvb3JkLnosIG1ldGFsOjpsZXZlbChsZXZlbCkpOwpAQCAtMTk1MCw3ICsxOTUw
LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1
dG8gQU5HTEVfdGV4dHVyZTJEUHJvakxvZF9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0
dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJl
YWQgbWV0YWw6OmZsb2F0NCBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0NCBjb25zdCBj
b29yZCwKICAgICBmbG9hdCBsZXZlbCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2Ft
cGxlciwgY29vcmQueHkvY29vcmQudywgbWV0YWw6OmxldmVsKGxldmVsKSk7CkBAIC0xOTY2LDcg
KzE5NjYsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJ
TkUgYXV0byBBTkdMRV90ZXh0dXJlM0RMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4
dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhy
ZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3Qg
Y29vcmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNh
bXBsZXIsIGNvb3JkLCBtZXRhbDo6bGV2ZWwobGV2ZWwpKTsKQEAgLTE5ODIsNyArMTk4Miw3IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFO
R0xFX3RleHR1cmUzRFByb2pfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAg
ICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFs
OjpmbG9hdDQgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCiAg
ICAgZmxvYXQgYmlhcyA9IDApCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5ei9jb29yZC53LCBtZXRhbDo6YmlhcyhiaWFzKSk7CkBAIC0xOTk4LDcgKzE5OTgs
NyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0
byBBTkdMRV90ZXh0dXJlM0RQcm9qTG9kX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNv
b3JkLAogICAgIGZsb2F0IGxldmVsKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1w
bGVyLCBjb29yZC54eXovY29vcmQudywgbWV0YWw6OmxldmVsKGxldmVsKSk7CkBAIC0yMDE0LDcg
KzIwMTQsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJ
TkUgYXV0byBBTkdMRV90ZXh0dXJlQ3ViZV9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0
dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJl
YWQgbWV0YWw6OmZsb2F0MyBjb25zdCAmY29vcmQpCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBj
b29yZCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQpOwogfQpA
QCAtMjAyMyw3ICsyMDIzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9B
TFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZUN1YmVfaW1wbCgKICAgICB0aHJlYWQgVGV4
dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIs
Ci0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9h
dDMgY29uc3QgY29vcmQsCiAgICAgZmxvYXQgYmlhcykKIHsKICAgICByZXR1cm4gdGV4dHVyZS5z
YW1wbGUoc2FtcGxlciwgY29vcmQsIG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTIwMzksNyArMjAz
OSw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBh
dXRvIEFOR0xFX3RleHR1cmVDdWJlTG9kX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNv
b3JkLAogICAgIGZsb2F0IGxldmVsKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1w
bGVyLCBjb29yZCwgbWV0YWw6OmxldmVsKGxldmVsKSk7CkBAIC0yMDU1LDcgKzIwNTUsNyBAQCB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdM
RV90ZXh0dXJlQ3ViZVByb2pfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAg
ICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFs
OjpmbG9hdDQgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCiAg
ICAgZmxvYXQgYmlhcyA9IDApCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5ei9jb29yZC53LCBtZXRhbDo6YmlhcyhiaWFzKSk7CkBAIC0yMDcxLDcgKzIwNzEs
NyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0
byBBTkdMRV90ZXh0dXJlQ3ViZVByb2pMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4
dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhy
ZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3Qg
Y29vcmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNh
bXBsZXIsIGNvb3JkLnh5ei9jb29yZC53LCBtZXRhbDo6bGV2ZWwobGV2ZWwpKTsKQEAgLTIxMDcs
OSArMjEwNyw5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lO
TElORSBhdXRvIEFOR0xFX3RleHR1cmVHcmFkX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRl
eHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRo
cmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0
MiBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeSkKKyAg
ICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgZFBk
eCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHkpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUu
c2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5LCB1aW50KG1ldGFsOjpyb3VuZChjb29yZC56KSksIG1l
dGFsOjpncmFkaWVudDJkKGRQZHgsIGRQZHkpKTsKIH0KQEAgLTIxMjIsOSArMjEyMiw5IEBAIHRl
bXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xF
X3RleHR1cmVHcmFkX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhy
ZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6Zmxv
YXQ0IGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeCwK
LSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeSkKKyAgICBtZXRhbDo6ZmxvYXQ0
IGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgZFBkeCwKKyAgICBtZXRhbDo6
ZmxvYXQyIGNvbnN0IGRQZHkpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5LCB1aW50KG1ldGFsOjpyb3VuZChjb29yZC56KSksIG1ldGFsOjpncmFkaWVudDJk
KGRQZHgsIGRQZHkpKTsKIH0KQEAgLTIxMzcsOSArMjEzNyw5IEBAIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVHcmFkX2ltcGwoCiAg
ICAgdGhyZWFkIG1ldGFsOjpkZXB0aDJkPFQ+ICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6
c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MyBjb25zdCAm
Y29vcmQsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDIgY29uc3QgJmRQZHgsCi0gICAgdGhyZWFk
IG1ldGFsOjpmbG9hdDIgY29uc3QgJmRQZHkpCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBjb29y
ZCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHgsCisgICAgbWV0YWw6OmZsb2F0MiBjb25z
dCBkUGR5KQogewogICAgIGlmIChBTkdMRV9Vc2VTYW1wbGVDb21wYXJlR3JhZGllbnQpCiAgICAg
ewpAQCAtMjE2MCw5ICsyMTYwLDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdB
WVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZUdyYWRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6
OmRlcHRoMmRfYXJyYXk8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNv
bnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKLSAg
ICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZs
b2F0MiBjb25zdCAmZFBkeSkKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3JkLAorICAgIG1l
dGFsOjpmbG9hdDIgY29uc3QgZFBkeCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHkpCiB7
CiAgICAgaWYgKEFOR0xFX1VzZVNhbXBsZUNvbXBhcmVHcmFkaWVudCkKICAgICB7CkBAIC0yMTgz
LDkgKzIxODMsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUg
YXV0byBBTkdMRV90ZXh0dXJlR3JhZF9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6ZGVwdGhjdWJl
PFQ+ICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwK
LSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIG1ldGFs
OjpmbG9hdDMgY29uc3QgJmRQZHgsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmRQ
ZHkpCisgICAgbWV0YWw6OmZsb2F0NCBjb25zdCBjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNv
bnN0IGRQZHgsCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBkUGR5KQogewogICAgIGlmIChBTkdM
RV9Vc2VTYW1wbGVDb21wYXJlR3JhZGllbnQpCiAgICAgewpAQCAtMjIwNiw5ICsyMjA2LDkgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4
dHVyZUdyYWRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OnRleHR1cmVjdWJlPFQ+ICZ0ZXh0dXJl
LAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQg
bWV0YWw6OmZsb2F0MyBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29u
c3QgJmRQZHgsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmRQZHkpCisgICAgbWV0
YWw6OmZsb2F0MyBjb25zdCBjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGRQZHgsCisg
ICAgbWV0YWw6OmZsb2F0MyBjb25zdCBkUGR5KQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBs
ZShzYW1wbGVyLCBjb29yZCwgbWV0YWw6OmdyYWRpZW50Y3ViZShkUGR4LCBkUGR5KSk7CiB9CkBA
IC0yMjQ0LDEwICsyMjQ0LDEwIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVf
QUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVHcmFkT2Zmc2V0X2ltcGwoCiAgICAgdGhy
ZWFkIFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZz
YW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKLSAgICB0aHJl
YWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBj
b25zdCAmZFBkeSwKLSAgICB0aHJlYWQgbWV0YWw6OmludDIgY29uc3QgJm9mZnNldCkKKyAgICBt
ZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgZFBkeCwK
KyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHksCisgICAgbWV0YWw6OmludDIgY29uc3Qgb2Zm
c2V0KQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eSwgdWlu
dChtZXRhbDo6cm91bmQoY29vcmQueikpLCBtZXRhbDo6Z3JhZGllbnQyZChkUGR4LCBkUGR5KSwg
b2Zmc2V0KTsKIH0KQEAgLTIyNjAsMTAgKzIyNjAsMTAgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRl
eHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZUdyYWRPZmZzZXRf
aW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNh
bXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNv
b3JkLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQyIGNvbnN0ICZkUGR4LAotICAgIHRocmVhZCBt
ZXRhbDo6ZmxvYXQyIGNvbnN0ICZkUGR5LAotICAgIHRocmVhZCBtZXRhbDo6aW50MiBjb25zdCAm
b2Zmc2V0KQorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCisgICAgbWV0YWw6OmZsb2F0
MiBjb25zdCBkUGR4LAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgZFBkeSwKKyAgICBtZXRhbDo6
aW50MiBjb25zdCBvZmZzZXQpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5LCB1aW50KG1ldGFsOjpyb3VuZChjb29yZC56KSksIG1ldGFsOjpncmFkaWVudDJk
KGRQZHgsIGRQZHkpLCBvZmZzZXQpOwogfQpAQCAtMjI3NiwxMCArMjI3NiwxMCBAQCB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlR3Jh
ZE9mZnNldF9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6ZGVwdGgyZDxUPiAmdGV4dHVyZSwKICAg
ICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFs
OjpmbG9hdDMgY29uc3QgJmNvb3JkLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQyIGNvbnN0ICZk
UGR4LAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQyIGNvbnN0ICZkUGR5LAotICAgIHRocmVhZCBt
ZXRhbDo6aW50MiBjb25zdCAmb2Zmc2V0KQorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQs
CisgICAgbWV0YWw6OmZsb2F0MiBjb25zdCBkUGR4LAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3Qg
ZFBkeSwKKyAgICBtZXRhbDo6aW50MiBjb25zdCBvZmZzZXQpCiB7CiAgICAgaWYgKEFOR0xFX1Vz
ZVNhbXBsZUNvbXBhcmVHcmFkaWVudCkKICAgICB7CkBAIC0yMzAwLDEwICsyMzAwLDEwIEBAIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1
cmVHcmFkT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFkIG1ldGFsOjpkZXB0aDJkX2FycmF5PFQ+ICZ0
ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0
aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9h
dDIgY29uc3QgJmRQZHgsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDIgY29uc3QgJmRQZHksCi0g
ICAgdGhyZWFkIG1ldGFsOjppbnQyIGNvbnN0ICZvZmZzZXQpCisgICAgbWV0YWw6OmZsb2F0NCBj
b25zdCBjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHgsCisgICAgbWV0YWw6OmZs
b2F0MiBjb25zdCBkUGR5LAorICAgIG1ldGFsOjppbnQyIGNvbnN0IG9mZnNldCkKIHsKICAgICBp
ZiAoQU5HTEVfVXNlU2FtcGxlQ29tcGFyZUdyYWRpZW50KQogICAgIHsKQEAgLTIzMjQsMTAgKzIz
MjQsMTAgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8g
QU5HTEVfdGV4dHVyZUdyYWRPZmZzZXRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoY3Vi
ZTxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIs
Ci0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkLAotICAgIHRocmVhZCBtZXRh
bDo6ZmxvYXQzIGNvbnN0ICZkUGR4LAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZk
UGR5LAotICAgIHRocmVhZCBtZXRhbDo6aW50MyBjb25zdCAmb2Zmc2V0KQorICAgIG1ldGFsOjpm
bG9hdDQgY29uc3QgY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBkUGR4LAorICAgIG1l
dGFsOjpmbG9hdDMgY29uc3QgZFBkeSwKKyAgICBtZXRhbDo6aW50MyBjb25zdCBvZmZzZXQpCiB7
CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlX2NvbXBhcmUoc2FtcGxlciwgY29vcmQueHl6LCBj
b29yZC53LCBtZXRhbDo6Z3JhZGllbnRjdWJlKGRQZHgsIGRQZHkpLCBvZmZzZXQpOwogfQpAQCAt
MjM0MCwxMCArMjM0MCwxMCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19J
TkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlR3JhZE9mZnNldF9pbXBsKAogICAgIHRocmVhZCBtZXRh
bDo6dGV4dHVyZWN1YmU8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNv
bnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKLSAg
ICB0aHJlYWQgbWV0YWw6OmZsb2F0MyBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZs
b2F0MyBjb25zdCAmZFBkeSwKLSAgICB0aHJlYWQgbWV0YWw6OmludDMgY29uc3QgJm9mZnNldCkK
KyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3Qg
ZFBkeCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGRQZHksCisgICAgbWV0YWw6OmludDMgY29u
c3Qgb2Zmc2V0KQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZCwg
bWV0YWw6OmdyYWRpZW50Y3ViZShkUGR4LCBkUGR5KSwgb2Zmc2V0KTsKIH0KQEAgLTIzNjIsNyAr
MjM2Miw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElO
RSBhdXRvIEFOR0xFX3RleHR1cmVMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVy
ZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFk
IG1ldGFsOjpmbG9hdDIgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgY29v
cmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBs
ZXIsIGNvb3JkLCBtZXRhbDo6bGV2ZWwobGV2ZWwpKTsKQEAgLTIzNzYsNyArMjM3Niw3IEBAIHRl
bXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xF
X3RleHR1cmVMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJl
YWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9h
dDMgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQsCiAgICAgZmxv
YXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLCBt
ZXRhbDo6bGV2ZWwobGV2ZWwpKTsKQEAgLTIzOTAsNyArMjM5MCw3IEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVMb2RfaW1wbCgK
ICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoMmQ8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFs
OjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0
ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAogICAgIGZsb2F0IGxldmVs
KQogewogICAgIGlmIChBTkdMRV9Vc2VTYW1wbGVDb21wYXJlTG9kKQpAQCAtMjQxMiw3ICsyNDEy
LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5H
TEVfdGV4dHVyZUxvZF9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6dGV4dHVyZTJkX2FycmF5PFQ+
ICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAg
ICB0aHJlYWQgbWV0YWw6OmZsb2F0MyBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MyBj
b25zdCBjb29yZCwKICAgICBmbG9hdCBsZXZlbCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1w
bGUoc2FtcGxlciwgY29vcmQueHksIHVpbnQobWV0YWw6OnJvdW5kKGNvb3JkLnopKSwgbWV0YWw6
OmxldmVsKGxldmVsKSk7CkBAIC0yNDI2LDcgKzI0MjYsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlTG9kX2ltcGwoCiAgICAg
dGhyZWFkIG1ldGFsOjp0ZXh0dXJlMmRfYXJyYXk8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1l
dGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQ0IGNv
bnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3JkLAogICAgIGZsb2F0IGxl
dmVsKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eXosIHVp
bnQobWV0YWw6OnJvdW5kKGNvb3JkLncpKSwgbWV0YWw6OmxldmVsKGxldmVsKSk7CkBAIC0yNDQy
LDkgKzI0NDIsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19J
TkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlTG9kT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFkIFRleHR1
cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAot
ICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQyIGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQy
IGNvbnN0IGNvb3JkLAogICAgIGZsb2F0IGxldmVsLAotICAgIHRocmVhZCBpbnQyIGNvbnN0ICZv
ZmZzZXQpCisgICAgbWV0YWw6OmludDIgY29uc3Qgb2Zmc2V0KQogewogICAgIHJldHVybiB0ZXh0
dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZCwgbWV0YWw6OmxldmVsKGxldmVsKSwgb2Zmc2V0KTsK
IH0KQEAgLTI0NTMsOSArMjQ1Myw5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5H
TEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVMb2RPZmZzZXRfaW1wbCgKICAgICB0
aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3Qg
JnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmNvb3JkLAorICAgIG1l
dGFsOjpmbG9hdDMgY29uc3QgY29vcmQsCiAgICAgZmxvYXQgbGV2ZWwsCi0gICAgdGhyZWFkIGlu
dDMgY29uc3QgJm9mZnNldCkKKyAgICBtZXRhbDo6aW50MyBjb25zdCBvZmZzZXQpCiB7CiAgICAg
cmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLCBtZXRhbDo6bGV2ZWwobGV2ZWwp
LCBvZmZzZXQpOwogfQpAQCAtMjQ2NCw5ICsyNDY0LDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZUxvZE9mZnNldF9pbXBsKAog
ICAgIHRocmVhZCBtZXRhbDo6ZGVwdGgyZDxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6
OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3Qg
JmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQsCiAgICAgZmxvYXQgbGV2ZWws
Ci0gICAgdGhyZWFkIGludDIgY29uc3QgJm9mZnNldCkKKyAgICBpbnQyIGNvbnN0IG9mZnNldCkK
IHsKICAgICBpZiAoQU5HTEVfVXNlU2FtcGxlQ29tcGFyZUxvZCkKICAgICB7CkBAIC0yNDgyLDkg
KzI0ODIsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0
byBBTkdMRV90ZXh0dXJlTG9kT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFkIG1ldGFsOjp0ZXh0dXJl
MmRfYXJyYXk8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZz
YW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKKyAgICBtZXRh
bDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAogICAgIGZsb2F0IGxldmVsLAotICAgIHRocmVhZCBpbnQy
IGNvbnN0ICZvZmZzZXQpCisgICAgbWV0YWw6OmludDIgY29uc3Qgb2Zmc2V0KQogewogICAgIHJl
dHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eSwgdWludChtZXRhbDo6cm91bmQo
Y29vcmQueikpLCBtZXRhbDo6bGV2ZWwobGV2ZWwpLCBvZmZzZXQpOwogfQpAQCAtMjQ5Myw5ICsy
NDkzLDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8g
QU5HTEVfdGV4dHVyZUxvZE9mZnNldF9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6dGV4dHVyZTJk
X2FycmF5PFQ+ICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2Ft
cGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6
OmZsb2F0NCBjb25zdCBjb29yZCwKICAgICBmbG9hdCBsZXZlbCwKLSAgICB0aHJlYWQgaW50MyBj
b25zdCAmb2Zmc2V0KQorICAgIG1ldGFsOjppbnQzIGNvbnN0IG9mZnNldCkKIHsKICAgICByZXR1
cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQueHl6LCB1aW50KG1ldGFsOjpyb3VuZChj
b29yZC53KSksIG1ldGFsOjpsZXZlbChsZXZlbCksIG9mZnNldCk7CiB9CkBAIC0yNTExLDggKzI1
MTEsOCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUg
YXV0byBBTkdMRV90ZXh0dXJlT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBmbG9hdDIgY29uc3QgJmNvb3JkLAotICAgIHRocmVhZCBpbnQyIGNvbnN0ICZvZmZzZXQpCisg
ICAgbWV0YWw6OmZsb2F0MiBjb25zdCBjb29yZCwKKyAgICBtZXRhbDo6aW50MiBjb25zdCBvZmZz
ZXQpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLCBvZmZzZXQp
OwogfQpAQCAtMjUyMSw4ICsyNTIxLDggQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBB
TkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZU9mZnNldF9pbXBsKAogICAgIHRo
cmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAm
c2FtcGxlciwKLSAgICB0aHJlYWQgZmxvYXQyIGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgaW50
MiBjb25zdCAmb2Zmc2V0LAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgY29vcmQsCisgICAgbWV0
YWw6OmludDIgY29uc3Qgb2Zmc2V0LAogICAgIGZsb2F0IGJpYXMpCiB7CiAgICAgcmV0dXJuIHRl
eHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLCBtZXRhbDo6YmlhcyhiaWFzKSwgb2Zmc2V0KTsK
QEAgLTI1MzIsOCArMjUzMiw4IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVf
QUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVPZmZzZXRfaW1wbCgKICAgICB0aHJlYWQg
VGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBs
ZXIsCi0gICAgdGhyZWFkIGZsb2F0MyBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIGludDIgY29u
c3QgJm9mZnNldCkKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpp
bnQyIGNvbnN0IG9mZnNldCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwg
Y29vcmQueHksIHVpbnQobWV0YWw6OnJvdW5kKGNvb3JkLnopKSwgb2Zmc2V0KTsKIH0KQEAgLTI1
NDIsOCArMjU0Miw4IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlT
X0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVPZmZzZXRfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVy
ZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0g
ICAgdGhyZWFkIGZsb2F0MyBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIGludDIgY29uc3QgJm9m
ZnNldCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjppbnQyIGNv
bnN0IG9mZnNldCwKICAgICBmbG9hdCBiaWFzKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBs
ZShzYW1wbGVyLCBjb29yZC54eSwgdWludChtZXRhbDo6cm91bmQoY29vcmQueikpLCBtZXRhbDo6
YmlhcyhiaWFzKSwgb2Zmc2V0KTsKQEAgLTI1NTMsOCArMjU1Myw4IEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVPZmZz
ZXRfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6
OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIGZsb2F0MyBjb25zdCAmY29vcmQs
Ci0gICAgdGhyZWFkIGludDMgY29uc3QgJm9mZnNldCkKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0
IGNvb3JkLAorICAgIG1ldGFsOjppbnQzIGNvbnN0IG9mZnNldCkKIHsKICAgICByZXR1cm4gdGV4
dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQsIG9mZnNldCk7CiB9CkBAIC0yNTYzLDggKzI1NjMs
OCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0
byBBTkdMRV90ZXh0dXJlT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUs
CiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBm
bG9hdDMgY29uc3QgJmNvb3JkLAotICAgIHRocmVhZCBpbnQzIGNvbnN0ICZvZmZzZXQsCisgICAg
bWV0YWw6OmZsb2F0MyBjb25zdCBjb29yZCwKKyAgICBtZXRhbDo6aW50MyBjb25zdCBvZmZzZXQs
CiAgICAgZmxvYXQgYmlhcykKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwg
Y29vcmQsIG1ldGFsOjpiaWFzKGJpYXMpLCBvZmZzZXQpOwpAQCAtMjU3NCw4ICsyNTc0LDggQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4
dHVyZU9mZnNldF9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6ZGVwdGgyZDxUPiAmdGV4dHVyZSwK
ICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIGZs
b2F0MyBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIGludDIgY29uc3QgJm9mZnNldCkKKyAgICBt
ZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjppbnQyIGNvbnN0IG9mZnNldCkK
IHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGVfY29tcGFyZShzYW1wbGVyLCBjb29yZC54eSwg
Y29vcmQueiwgb2Zmc2V0KTsKIH0KQEAgLTI1ODQsOCArMjU4NCw4IEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVPZmZzZXRfaW1w
bCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoMmQ8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1l
dGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBmbG9hdDMgY29uc3QgJmNv
b3JkLAotICAgIHRocmVhZCBpbnQyIGNvbnN0ICZvZmZzZXQsCisgICAgbWV0YWw6OmZsb2F0MyBj
b25zdCBjb29yZCwKKyAgICBtZXRhbDo6aW50MiBjb25zdCBvZmZzZXQsCiAgICAgZmxvYXQgYmlh
cykKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGVfY29tcGFyZShzYW1wbGVyLCBjb29yZC54
eSwgY29vcmQueiwgbWV0YWw6OmJpYXMoYmlhcyksIG9mZnNldCk7CkBAIC0yNjAxLDcgKzI2MDEs
NyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0
byBBTkdMRV90ZXh0dXJlUHJval9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAog
ICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0
YWw6OmZsb2F0MyBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBjb29yZCwK
ICAgICBmbG9hdCBiaWFzID0gMCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxl
ciwgY29vcmQueHkvY29vcmQueiwgbWV0YWw6OmJpYXMoYmlhcykpOwpAQCAtMjYxMSw3ICsyNjEx
LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1
dG8gQU5HTEVfdGV4dHVyZVByb2pfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwK
ICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1l
dGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQs
CiAgICAgZmxvYXQgYmlhcyA9IDApCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBs
ZXIsIGNvb3JkLnh5L2Nvb3JkLncsIG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTI2MjEsNyArMjYy
MSw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFO
R0xFX3RleHR1cmVQcm9qX2ltcGwoCiAgICAgdGhyZWFkIG1ldGFsOjp0ZXh0dXJlM2Q8VD4gJnRl
eHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRo
cmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0
IGNvb3JkLAogICAgIGZsb2F0IGJpYXMgPSAwKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBs
ZShzYW1wbGVyLCBjb29yZC54eXovY29vcmQudywgbWV0YWw6OmJpYXMoYmlhcykpOwpAQCAtMjY0
MSw5ICsyNjQxLDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNf
SU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pHcmFkX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1
cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAot
ICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgbWV0YWw6
OmZsb2F0MiBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBk
eSkKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29u
c3QgZFBkeCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHkpCiB7CiAgICAgcmV0dXJuIHRl
eHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5L2Nvb3JkLnosIG1ldGFsOjpncmFkaWVudDJk
KGRQZHgsIGRQZHkpKTsKIH0KQEAgLTI2NTYsOSArMjY1Niw5IEBAIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVQcm9qR3Jh
ZF9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6
c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25zdCAm
Y29vcmQsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDIgY29uc3QgJmRQZHgsCi0gICAgdGhyZWFk
IG1ldGFsOjpmbG9hdDIgY29uc3QgJmRQZHkpCisgICAgbWV0YWw6OmZsb2F0NCBjb25zdCBjb29y
ZCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHgsCisgICAgbWV0YWw6OmZsb2F0MiBjb25z
dCBkUGR5KQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eS9j
b29yZC53LCBtZXRhbDo6Z3JhZGllbnQyZChkUGR4LCBkUGR5KSk7CiB9CkBAIC0yNjcxLDkgKzI2
NzEsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBB
TkdMRV90ZXh0dXJlUHJvakdyYWRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoMmQ8VD4g
JnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAg
IHRocmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgbWV0YWw6OmZs
b2F0MiBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeSkK
KyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3Qg
ZFBkeCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHkpCiB7CiAgICAgaWYgKEFOR0xFX1Vz
ZVNhbXBsZUNvbXBhcmVHcmFkaWVudCkKICAgICB7CkBAIC0yNjk0LDkgKzI2OTQsOSBAQCB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJl
UHJvakdyYWRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OnRleHR1cmUzZDxUPiAmdGV4dHVyZSwK
ICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1l
dGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0
ICZkUGR4LAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZkUGR5KQorICAgIG1ldGFs
OjpmbG9hdDQgY29uc3QgY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBkUGR4LAorICAg
IG1ldGFsOjpmbG9hdDMgY29uc3QgZFBkeSkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUo
c2FtcGxlciwgY29vcmQueHl6L2Nvb3JkLncsIG1ldGFsOjpncmFkaWVudDNkKGRQZHgsIGRQZHkp
KTsKIH0KQEAgLTI3MTUsMTAgKzI3MTUsMTAgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+
CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pHcmFkT2Zmc2V0X2lt
cGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1w
bGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29y
ZCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0
YWw6OmZsb2F0MiBjb25zdCAmZFBkeSwKLSAgICB0aHJlYWQgaW50MiBjb25zdCAmb2Zmc2V0KQor
ICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MiBjb25zdCBk
UGR4LAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgZFBkeSwKKyAgICBpbnQyIGNvbnN0IG9mZnNl
dCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQueHkvY29vcmQu
eiwgbWV0YWw6OmdyYWRpZW50MmQoZFBkeCwgZFBkeSksIG9mZnNldCk7CiB9CkBAIC0yNzMxLDEw
ICsyNzMxLDEwIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lO
TElORSBhdXRvIEFOR0xFX3RleHR1cmVQcm9qR3JhZE9mZnNldF9pbXBsKAogICAgIHRocmVhZCBU
ZXh0dXJlICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxl
ciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIG1l
dGFsOjpmbG9hdDIgY29uc3QgJmRQZHgsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDIgY29uc3Qg
JmRQZHksCi0gICAgdGhyZWFkIGludDIgY29uc3QgJm9mZnNldCkKKyAgICBtZXRhbDo6ZmxvYXQ0
IGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgZFBkeCwKKyAgICBtZXRhbDo6
ZmxvYXQyIGNvbnN0IGRQZHksCisgICAgaW50MiBjb25zdCBvZmZzZXQpCiB7CiAgICAgcmV0dXJu
IHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5L2Nvb3JkLncsIG1ldGFsOjpncmFkaWVu
dDJkKGRQZHgsIGRQZHkpLCBvZmZzZXQpOwogfQpAQCAtMjc0NywxMCArMjc0NywxMCBAQCB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJl
UHJvakdyYWRPZmZzZXRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoMmQ8VD4gJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBj
b25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeSwKLSAgICB0
aHJlYWQgaW50MiBjb25zdCAmb2Zmc2V0KQorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQs
CisgICAgbWV0YWw6OmZsb2F0MiBjb25zdCBkUGR4LAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3Qg
ZFBkeSwKKyAgICBpbnQyIGNvbnN0IG9mZnNldCkKIHsKICAgICBpZiAoQU5HTEVfVXNlU2FtcGxl
Q29tcGFyZUdyYWRpZW50KQogICAgIHsKQEAgLTI3NzEsMTAgKzI3NzEsMTAgQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pH
cmFkT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFkIG1ldGFsOjp0ZXh0dXJlM2Q8VD4gJnRleHR1cmUs
CiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBt
ZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MyBjb25z
dCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MyBjb25zdCAmZFBkeSwKLSAgICB0aHJl
YWQgaW50MyBjb25zdCAmb2Zmc2V0KQorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCisg
ICAgbWV0YWw6OmZsb2F0MyBjb25zdCBkUGR4LAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgZFBk
eSwKKyAgICBpbnQzIGNvbnN0IG9mZnNldCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUo
c2FtcGxlciwgY29vcmQueHl6L2Nvb3JkLncsIG1ldGFsOjpncmFkaWVudDNkKGRQZHgsIGRQZHkp
LCBvZmZzZXQpOwogfQpAQCAtMjc5Myw3ICsyNzkzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRl
eHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pMb2RfaW1w
bCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBs
ZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmNvb3Jk
LAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAg
ICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5L2Nvb3JkLnosIG1ldGFs
OjpsZXZlbChsZXZlbCkpOwpAQCAtMjgwNyw3ICsyODA3LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1l
IFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pMb2Rf
aW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNh
bXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNv
b3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7
CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5L2Nvb3JkLncsIG1l
dGFsOjpsZXZlbChsZXZlbCkpOwpAQCAtMjgyMSw3ICsyODIxLDcgQEAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pMb2RfaW1w
bCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoMmQ8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1l
dGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQ0IGNv
bnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3JkLAogICAgIGZsb2F0IGxl
dmVsKQogewogICAgIGlmIChBTkdMRV9Vc2VTYW1wbGVDb21wYXJlTG9kKQpAQCAtMjg0Myw3ICsy
ODQzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8g
QU5HTEVfdGV4dHVyZVByb2pMb2RfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OnRleHR1cmUzZDxU
PiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0g
ICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQg
Y29uc3QgY29vcmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2Ft
cGxlKHNhbXBsZXIsIGNvb3JkLnh5ei9jb29yZC53LCBtZXRhbDo6bGV2ZWwobGV2ZWwpKTsKQEAg
LTI4NTksOSArMjg1OSw5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxX
QVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVQcm9qTG9kT2Zmc2V0X2ltcGwoCiAgICAgdGhy
ZWFkIFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZz
YW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKKyAgICBtZXRh
bDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAogICAgIGZsb2F0IGxldmVsLAotICAgIHRocmVhZCBpbnQy
IGNvbnN0ICZvZmZzZXQpCisgICAgaW50MiBjb25zdCBvZmZzZXQpCiB7CiAgICAgcmV0dXJuIHRl
eHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5L2Nvb3JkLnosIG1ldGFsOjpsZXZlbChsZXZl
bCksIG9mZnNldCk7CiB9CkBAIC0yODcwLDkgKzI4NzAsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlUHJvakxvZE9m
ZnNldF9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRh
bDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25z
dCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0NCBjb25zdCBjb29yZCwKICAgICBmbG9hdCBsZXZl
bCwKLSAgICB0aHJlYWQgaW50MiBjb25zdCAmb2Zmc2V0KQorICAgIGludDIgY29uc3Qgb2Zmc2V0
KQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eS9jb29yZC53
LCBtZXRhbDo6bGV2ZWwobGV2ZWwpLCBvZmZzZXQpOwogfQpAQCAtMjg4MSw5ICsyODgxLDkgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4
dHVyZVByb2pMb2RPZmZzZXRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoMmQ8VD4gJnRl
eHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRo
cmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0
IGNvb3JkLAogICAgIGZsb2F0IGxldmVsLAotICAgIHRocmVhZCBpbnQyIGNvbnN0ICZvZmZzZXQp
CisgICAgaW50MiBjb25zdCBvZmZzZXQpCiB7CiAgICAgaWYgKEFOR0xFX1VzZVNhbXBsZUNvbXBh
cmVMb2QpCiAgICAgewpAQCAtMjg5OSw5ICsyODk5LDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pMb2RPZmZzZXRfaW1w
bCgKICAgICB0aHJlYWQgbWV0YWw6OnRleHR1cmUzZDxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQg
bWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQg
Y29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCiAgICAgZmxvYXQg
bGV2ZWwsCi0gICAgdGhyZWFkIGludDMgY29uc3QgJm9mZnNldCkKKyAgICBpbnQzIGNvbnN0IG9m
ZnNldCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQueHl6L2Nv
b3JkLncsIG1ldGFsOjpsZXZlbChsZXZlbCksIG9mZnNldCk7CiB9CkBAIC0yOTE3LDggKzI5MTcs
OCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0
byBBTkdMRV90ZXh0dXJlUHJvak9mZnNldF9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0
dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJl
YWQgbWV0YWw6OmZsb2F0MyBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIGludDIgY29uc3QgJm9m
ZnNldCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIGludDIgY29uc3Qgb2Zm
c2V0LAogICAgIGZsb2F0IGJpYXMgPSAwKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShz
YW1wbGVyLCBjb29yZC54eS9jb29yZC56LCBtZXRhbDo6YmlhcyhiaWFzKSwgb2Zmc2V0KTsKQEAg
LTI5MjgsOCArMjkyOCw4IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxX
QVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVQcm9qT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFk
IFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1w
bGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQg
aW50MiBjb25zdCAmb2Zmc2V0LAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCisgICAg
aW50MiBjb25zdCBvZmZzZXQsCiAgICAgZmxvYXQgYmlhcyA9IDApCiB7CiAgICAgcmV0dXJuIHRl
eHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5L2Nvb3JkLncsIG1ldGFsOjpiaWFzKGJpYXMp
LCBvZmZzZXQpOwpAQCAtMjkzOSw4ICsyOTM5LDggQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBB
TkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pPZmZzZXRfaW1wbCgKICAg
ICB0aHJlYWQgbWV0YWw6OnRleHR1cmUzZDxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6
OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3Qg
JmNvb3JkLAotICAgIHRocmVhZCBpbnQzIGNvbnN0ICZvZmZzZXQsCisgICAgbWV0YWw6OmZsb2F0
NCBjb25zdCBjb29yZCwKKyAgICBpbnQzIGNvbnN0IG9mZnNldCwKICAgICBmbG9hdCBiaWFzID0g
MCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQueHl6L2Nvb3Jk
LncsIG1ldGFsOjpiaWFzKGJpYXMpLCBvZmZzZXQpOwpAQCAtMzU0MSw2ICszNTQxLDEzIEBAIHZv
aWQgUHJvZ3JhbVByZWx1ZGU6OnZpc2l0T3BlcmF0b3IoVE9wZXJhdG9yIG9wLAogICAgICAgICAg
ICAgfQogICAgICAgICAgICAgYnJlYWs7CiAKKyAgICAgICAgY2FzZSBUT3BlcmF0b3I6OkVPcEFk
ZEFzc2lnbjoKKyAgICAgICAgICAgIGlmIChhcmdUeXBlMC0+aXNNYXRyaXgoKSAmJiBhcmdUeXBl
MS0+aXNTY2FsYXIoKSkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBhZGRNYXRyaXhT
Y2FsYXJBc3NpZ24oKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGJyZWFrOworCiAgICAg
ICAgIGNhc2UgVE9wZXJhdG9yOjpFT3BTdWI6CiAgICAgICAgICAgICBpZiAoYXJnVHlwZTAtPmlz
TWF0cml4KCkgJiYgYXJnVHlwZTEtPmlzU2NhbGFyKCkpCiAgICAgICAgICAgICB7CkBAIC0zNTQ4
LDYgKzM1NTUsMTEgQEAgdm9pZCBQcm9ncmFtUHJlbHVkZTo6dmlzaXRPcGVyYXRvcihUT3BlcmF0
b3Igb3AsCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBicmVhazsKIAorICAgICAgICBjYXNl
IFRPcGVyYXRvcjo6RU9wU3ViQXNzaWduOgorICAgICAgICAgICAgaWYoYXJnVHlwZTAtPmlzTWF0
cml4KCkgJiYgYXJnVHlwZTEtPmlzU2NhbGFyKCkpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgc3ViTWF0cml4U2NhbGFyQXNzaWduKCk7CisgICAgICAgICAgICB9CiAgICAgICAgIGNh
c2UgVE9wZXJhdG9yOjpFT3BEaXY6CiAgICAgICAgICAgICBpZiAoYXJnVHlwZTAtPmlzTWF0cml4
KCkpCiAgICAgICAgICAgICB7CkBAIC0zNjQxLDggKzM2NTMsNiBAQCB2b2lkIFByb2dyYW1QcmVs
dWRlOjp2aXNpdE9wZXJhdG9yKFRPcGVyYXRvciBvcCwKICAgICAgICAgY2FzZSBUT3BlcmF0b3I6
OkVPcENvbW1hOgogICAgICAgICBjYXNlIFRPcGVyYXRvcjo6RU9wQXNzaWduOgogICAgICAgICBj
YXNlIFRPcGVyYXRvcjo6RU9wSW5pdGlhbGl6ZToKLSAgICAgICAgY2FzZSBUT3BlcmF0b3I6OkVP
cEFkZEFzc2lnbjoKLSAgICAgICAgY2FzZSBUT3BlcmF0b3I6OkVPcFN1YkFzc2lnbjoKICAgICAg
ICAgY2FzZSBUT3BlcmF0b3I6OkVPcE11bEFzc2lnbjoKICAgICAgICAgY2FzZSBUT3BlcmF0b3I6
OkVPcElNb2RBc3NpZ246CiAgICAgICAgIGNhc2UgVE9wZXJhdG9yOjpFT3BCaXRTaGlmdExlZnRB
c3NpZ246CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIv
dHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0YWxEaXJlY3QvUmV3cml0ZUtleXdvcmRzLmNwcCBiL1Nv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JN
ZXRhbERpcmVjdC9SZXdyaXRlS2V5d29yZHMuY3BwCmluZGV4IGUwMTRmNDBmODFjY2FkNTAxMzM3
MDY1OGJjODk0MmIwMDJkNmI4ZTMuLjgwMWZjZjFmMzBkOGZjMTBkODc5MDU0ZWY3Y2VhOGI3OTky
MWJkZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90
cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9SZXdyaXRlS2V5d29yZHMuY3BwCisrKyBi
L1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0
b3JNZXRhbERpcmVjdC9SZXdyaXRlS2V5d29yZHMuY3BwCkBAIC05LDYgKzksNyBAQAogI2luY2x1
ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDx1bm9yZGVyZWRfbWFwPgogI2luY2x1ZGUgPHVub3JkZXJl
ZF9zZXQ+CisjaW5jbHVkZSA8bWFwPgogCiAjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci9U
cmFuc2xhdG9yTWV0YWxEaXJlY3QvQXN0SGVscGVycy5oIgogI2luY2x1ZGUgImNvbXBpbGVyL3Ry
YW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L0RlYnVnLmgiCkBAIC0zNiw2ICszNyw3IEBA
IGNsYXNzIFJld3JpdGVyIDogcHVibGljIFRJbnRlcm1SZWJ1aWxkCiAgICAgUmVtYXBwaW5nPFRJ
bnRlcmZhY2VCbG9jaz4gbUludGVyZmFjZUJsb2NrczsKICAgICBSZW1hcHBpbmc8VFN0cnVjdHVy
ZT4gbVN0cnVjdHVyZXM7CiAgICAgUmVtYXBwaW5nPFRWYXJpYWJsZT4gbVZhcmlhYmxlczsKKyAg
ICBzdGQ6Om1hcDxJbW11dGFibGVTdHJpbmcsIHN0ZDo6c3RyaW5nPiBtUHJlZGVmaW5lZE5hbWVz
OwogICAgIHN0ZDo6c3RyaW5nIG1OZXdOYW1lQnVmZmVyOwogCiAgIHByaXZhdGU6CkBAIC00NCw2
ICs0NiwxMSBAQCBjbGFzcyBSZXdyaXRlciA6IHB1YmxpYyBUSW50ZXJtUmVidWlsZAogICAgIHsK
ICAgICAgICAgaWYgKG5lZWRzUmVuYW1pbmcob2JqZWN0LCBmYWxzZSkpCiAgICAgICAgIHsKKyAg
ICAgICAgICAgIGF1dG8gaXQgPSBtUHJlZGVmaW5lZE5hbWVzLmZpbmQoTmFtZShvYmplY3QpLnJh
d05hbWUoKSk7CisgICAgICAgICAgICBpZiAoaXQgIT0gbVByZWRlZmluZWROYW1lcy5lbmQoKSkK
KyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gSW1tdXRhYmxlU3RyaW5nKGl0
LT5zZWNvbmQpOworICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIG1JZEdlbi5jcmVh
dGVOZXdOYW1lKE5hbWUob2JqZWN0KSkucmF3TmFtZSgpOwogICAgICAgICB9CiAgICAgICAgIHJl
dHVybiBOYW1lKG9iamVjdCkucmF3TmFtZSgpOwpAQCAtMzQ0LDcgKzM1MSw3IEBAIGNsYXNzIFJl
d3JpdGVyIDogcHVibGljIFRJbnRlcm1SZWJ1aWxkCiAgICAgICAgIDogVEludGVybVJlYnVpbGQo
Y29tcGlsZXIsIGZhbHNlLCB0cnVlKSwgbUtleXdvcmRzKGtleXdvcmRzKSwgbUlkR2VuKGlkR2Vu
KQogICAgIHt9CiAKLSAgICBQb3N0UmVzdWx0IHZpc2l0U3ltYm9sKFRJbnRlcm1TeW1ib2wgJnN5
bWJvbE5vZGUpCisgICAgUG9zdFJlc3VsdCB2aXNpdFN5bWJvbFBvc3QoVEludGVybVN5bWJvbCAm
c3ltYm9sTm9kZSkKICAgICB7CiAgICAgICAgIGNvbnN0IFRWYXJpYWJsZSAmdmFyID0gc3ltYm9s
Tm9kZS52YXJpYWJsZSgpOwogICAgICAgICBpZiAobmVlZHNSZW5hbWluZyh2YXIsIHRydWUpKQpA
QCAtMzY2LDYgKzM3MywxOCBAQCBjbGFzcyBSZXdyaXRlciA6IHB1YmxpYyBUSW50ZXJtUmVidWls
ZAogICAgICAgICByZXR1cm4gZnVuY1Byb3RvTm9kZTsKICAgICB9CiAKKyAgICBQb3N0UmVzdWx0
IHZpc2l0RGVjbGFyYXRpb25Qb3N0KFRJbnRlcm1EZWNsYXJhdGlvbiAmZGVjbE5vZGUpIG92ZXJy
aWRlCisgICAgeworICAgICAgICBEZWNsYXJhdGlvbiBkZWNsICAgICA9IFZpZXdEZWNsYXJhdGlv
bihkZWNsTm9kZSk7CisgICAgICAgIGNvbnN0IFRWYXJpYWJsZSAmdmFyID0gZGVjbC5zeW1ib2wu
dmFyaWFibGUoKTsKKyAgICAgICAgaWYgKG5lZWRzUmVuYW1pbmcodmFyLCB0cnVlKSkKKyAgICAg
ICAgeworICAgICAgICAgICAgY29uc3QgVFZhcmlhYmxlICZyVmFyID0gZ2V0UmVuYW1lZE9yT3Jp
Z2luYWwodmFyKTsKKyAgICAgICAgICAgIHJldHVybiAqbmV3IFRJbnRlcm1EZWNsYXJhdGlvbigm
clZhciwgZGVjbC5pbml0RXhwcik7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlY2xOb2Rl
OworICAgIH0KKwogICAgIFBvc3RSZXN1bHQgdmlzaXRGdW5jdGlvbkRlZmluaXRpb25Qb3N0KFRJ
bnRlcm1GdW5jdGlvbkRlZmluaXRpb24gJmZ1bmNEZWZOb2RlKSBvdmVycmlkZQogICAgIHsKICAg
ICAgICAgVEludGVybUZ1bmN0aW9uUHJvdG90eXBlICZmdW5jUHJvdG9Ob2RlID0gKmZ1bmNEZWZO
b2RlLmdldEZ1bmN0aW9uUHJvdG90eXBlKCk7CkBAIC00MTQsNiArNDMzLDExIEBAIGNsYXNzIFJl
d3JpdGVyIDogcHVibGljIFRJbnRlcm1SZWJ1aWxkCiAgICAgICAgIH0KICAgICAgICAgcmV0dXJu
IGFnZ3JlZ2F0ZU5vZGU7CiAgICAgfQorCisgICAgY29uc3Qgdm9pZCBwcmVkZWZpbmVOYW1lKGNv
bnN0IEltbXV0YWJsZVN0cmluZyBuYW1lLCBzdGQ6OnN0cmluZyBwcmVQb3B1bGF0ZWROYW1lKQor
ICAgIHsKKyAgICAgICAgbVByZWRlZmluZWROYW1lc1tuYW1lXSA9IHByZVBvcHVsYXRlZE5hbWU7
CisgICAgfQogfTsKIAogfSAgLy8gYW5vbnltb3VzIG5hbWVzcGFjZQpAQCAtNDI2LDYgKzQ1MCwx
MSBAQCBib29sIHNoOjpSZXdyaXRlS2V5d29yZHMoVENvbXBpbGVyICZjb21waWxlciwKICAgICAg
ICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGQ6OnNldDxJbW11dGFibGVTdHJpbmc+ICZrZXl3
b3JkcykKIHsKICAgICBSZXdyaXRlciByZXdyaXRlcihjb21waWxlciwgaWRHZW4sIGtleXdvcmRz
KTsKKyAgICBjb25zdCBhdXRvICZpbnB1dEF0dHJzICAgICA9IGNvbXBpbGVyLmdldEF0dHJpYnV0
ZXMoKTsKKyAgICBmb3IoY29uc3QgYXV0byAmIHZhciA6IGlucHV0QXR0cnMpCisgICAgeworICAg
ICAgICByZXdyaXRlci5wcmVkZWZpbmVOYW1lKEltbXV0YWJsZVN0cmluZyh2YXIubmFtZSksIHZh
ci5tYXBwZWROYW1lKTsKKyAgICB9CiAgICAgaWYgKCFyZXdyaXRlci5yZWJ1aWxkUm9vdChyb290
KSkKICAgICB7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424021</attachid>
            <date>2021-03-23 08:49:32 -0700</date>
            <delta_ts>2021-03-23 13:00:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223627-20210323084931.patch</filename>
            <type>text/plain</type>
            <size>45560</size>
            <attacher name="Kyle Piddington">kpiddington</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0ODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9DaGFuZ2VMb2cgYi9Tb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cKaW5k
ZXggYzhiMTk0M2Y3YzJmNTUwMjM3ZWUwYzlhYjBjNDRmNjQzYzM3ZWI0OS4uYWY1YWYzMTQzMzJl
OGFkYzhhMmVkNmNjNWEwMzg0NjJhNDdlMWRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTAzLTIzICBLeWxlIFBpZGRpbmd0b24gIDxrcGlkZGlu
Z3RvbkBhcHBsZS5jb20+CisKKyAgICAgICAgQU5HTEUgTWV0YWwgZml4ZXMgZm9yIHByb2dyYW0g
Z2VuZXJhdGlvbiBidWdzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjM2MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAgICB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZTIvZ2xzbDMvdGV4dHVyZS1vZmZzZXQt
dW5pZm9ybS10ZXh0dXJlLWNvb3JkaW5hdGUuaHRtbCBpcyBmaXhlZCBieSBkcm9wcGluZyAndGhy
ZWFkJyBxdWFsaWZpZXJzIG9uIHByZWdlbmVyYXRlZCBmdW5jdGlvbnMKKyAgICAgICAgICAgd2Vi
Z2wvMi4wLjAvY29uZm9ybWFuY2UvZ2xzbC9idWdzL2NvbXBvdW5kLWFzc2lnbm1lbnQtdHlwZS1j
b21iaW5hdGlvbi5odG1sIGlzIGZpeGVkIGJ5IGludHJvZHVjaW5nIG5ldyBvcGVyYXRvcnMgZm9y
IG1hdHJpeCArLy0gc2NhbGFycworICAgICAgICAgICB3ZWJnbC8yLjAuMC9jb25mb3JtYW5jZS9n
bHNsL2J1Z3MvY29tcGxleC1nbHNsLWRvZXMtbm90LWNyYXNoLmh0bWwgaXMgZml4ZWQgYnkgYWRk
aW5nIGEgcHJlLXBhc3MgdG8gcmVuYW1lIGFueSByZXNlcnZlZCBrZXl3b3Jkcywgc3VjaCBhcyAn
dmVydGV4JworCisgICAgICAgICogc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1l
dGFsRGlyZWN0L0VtaXRNZXRhbC5jcHA6CisgICAgICAgIChCdWlsZEV4dGVybmFsQXR0cmlidXRl
SW5kZXhNYXApOgorICAgICAgICAqIHNyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JN
ZXRhbERpcmVjdC9Qcm9ncmFtUHJlbHVkZS5jcHA6CisgICAgICAgICogc3JjL2NvbXBpbGVyL3Ry
YW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1Jld3JpdGVLZXl3b3Jkcy5jcHA6CisgICAg
ICAgIChzaDo6UmV3cml0ZXI6Om1heWJlQ3JlYXRlTmV3TmFtZSk6CisgICAgICAgIChzaDo6UmV3
cml0ZXI6OnZpc2l0U3ltYm9sUG9zdCk6CisgICAgICAgIChzaDo6UmV3cml0ZXI6OnByZWRlZmlu
ZU5hbWUpOgorICAgICAgICAoc2g6OlJld3JpdGVLZXl3b3Jkcyk6CisKIDIwMjEtMDMtMTkgIEt5
bGUgUGlkZGluZ3RvbiAgPGtwaWRkaW5ndG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBNZXRhbC1B
bmdsZSBvbiBTaW11bGF0b3IgZG9lcyBub3Qgc3VwcG9ydCBEMjRTOCBjb3JyZWN0bHkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1Ry
YW5zbGF0b3JNZXRhbERpcmVjdC9FbWl0TWV0YWwuY3BwIGIvU291cmNlL1RoaXJkUGFydHkvQU5H
TEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L0VtaXRNZXRh
bC5jcHAKaW5kZXggMjJhZGI0MjZiOGViYWM1ZDVkNDNkZGNjZmQ2MzZkNDMzNWM1MjQ1Ny4uOTI1
M2ZkOTNmZGIzOTNmZjMwNzE4YjYyY2E0MWU1ZWQzMTMzMzhiOSAxMDA2NDQKLS0tIGEvU291cmNl
L1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFs
RGlyZWN0L0VtaXRNZXRhbC5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2Nv
bXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L0VtaXRNZXRhbC5jcHAKQEAg
LTEyNTYsNyArMTI1Niw4IEBAIHN0YXRpYyBzdGQ6Om1hcDxOYW1lLCBzaXplX3Q+IEJ1aWxkRXh0
ZXJuYWxBdHRyaWJ1dGVJbmRleE1hcCgKICAgICAgICAgY29uc3QgVEZpZWxkICZpbnRlcm5hbEZp
ZWxkID0gKmludGVybmFsRmllbGRzW2ludGVybmFsSW5kZXhdOwogICAgICAgICBjb25zdCBOYW1l
IGludGVybmFsTmFtZSAgICAgPSBOYW1lKGludGVybmFsRmllbGQpOwogICAgICAgICBjb25zdCBU
VHlwZSAmaW50ZXJuYWxUeXBlICAgPSAqaW50ZXJuYWxGaWVsZC50eXBlKCk7Ci0gICAgICAgIHdo
aWxlIChpbnRlcm5hbE5hbWUucmF3TmFtZSgpICE9IHNoYWRlclZhcnNbc2hhZGVyVmFySW5kZXhd
Lm5hbWUpCisgICAgICAgIHdoaWxlIChpbnRlcm5hbE5hbWUucmF3TmFtZSgpICE9IHNoYWRlclZh
cnNbc2hhZGVyVmFySW5kZXhdLm5hbWUgJiYKKyAgICAgICAgICAgICAgIGludGVybmFsTmFtZS5y
YXdOYW1lKCkgIT0gc2hhZGVyVmFyc1tzaGFkZXJWYXJJbmRleF0ubWFwcGVkTmFtZSkKICAgICAg
ICAgewogICAgICAgICAgICAgLy8gVGhpcyBjYXNlIHJlcHJlc2VudHMgYW4gaW5hY3RpdmUgZmll
bGQuCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90
cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9Qcm9ncmFtUHJlbHVkZS5jcHAgYi9Tb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xhdG9yTWV0
YWxEaXJlY3QvUHJvZ3JhbVByZWx1ZGUuY3BwCmluZGV4IDhiMDY1NmFhZjM3NmUxZTgyNzRhZjFm
MjBiY2I3NDcwNzAxNmYzNDMuLjcyNGY3OWI5NzQ3NmExYzhlMDE1OGQ5YzNlZTViN2YyYzFlNjU1
MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFu
c2xhdG9yL1RyYW5zbGF0b3JNZXRhbERpcmVjdC9Qcm9ncmFtUHJlbHVkZS5jcHAKKysrIGIvU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1l
dGFsRGlyZWN0L1Byb2dyYW1QcmVsdWRlLmNwcApAQCAtNzQxLDggKzc0MSw4IEBAIEFOR0xFX0FM
V0FZU19JTkxJTkUgZmxvYXQyIEFOR0xFX3VucGFja19oYWxmXzJ4MTYodWludCB4KQogKSIsICkK
IAogUFJPR1JBTV9QUkVMVURFX0RFQ0xBUkUobWF0bXVsQXNzaWduLCBSIigKLXRlbXBsYXRlIDx0
eXBlbmFtZSBULCBpbnQgTj4KLUFOR0xFX0FMV0FZU19JTkxJTkUgdGhyZWFkIG1ldGFsOjptYXRy
aXg8VCwgTiwgTj4gJm9wZXJhdG9yKj0odGhyZWFkIG1ldGFsOjptYXRyaXg8VCwgTiwgTj4gJmEs
IG1ldGFsOjptYXRyaXg8VCwgTiwgTj4gYikKK3RlbXBsYXRlIDx0eXBlbmFtZSBULCBpbnQgQ29s
cywgaW50IFJvd3M+CitBTkdMRV9BTFdBWVNfSU5MSU5FIHRocmVhZCBtZXRhbDo6bWF0cml4PFQs
IENvbHMsIFJvd3M+ICZvcGVyYXRvcio9KHRocmVhZCBtZXRhbDo6bWF0cml4PFQsIENvbHMsIFJv
d3M+ICZhLCBtZXRhbDo6bWF0cml4PFQsIENvbHMsIENvbHM+IGIpCiB7CiAgICAgYSA9IGEgKiBi
OwogICAgIHJldHVybiBhOwpAQCAtMTQ4Myw3ICsxNDgzLDcgQEAgUFJPR1JBTV9QUkVMVURFX0RF
Q0xBUkUodGV4ZWxGZXRjaCwKIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxX
QVlTX0lOTElORSBhdXRvIEFOR0xFX3RleGVsRmV0Y2hfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVy
ZSAmdGV4dHVyZSwKLSAgICB0aHJlYWQgbWV0YWw6OmludDIgY29uc3QgJmNvb3JkLAorICAgIG1l
dGFsOjppbnQyIGNvbnN0IGNvb3JkLAogICAgIHVpbnQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRl
eHR1cmUucmVhZCh1aW50Mihjb29yZCksIGxldmVsKTsKQEAgLTE0OTIsNyArMTQ5Miw3IEBAIEFO
R0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXhlbEZldGNoX2ltcGwoCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXhlbEZl
dGNoX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUsCi0gICAgdGhyZWFkIG1ldGFs
OjppbnQzIGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6aW50MyBjb25zdCBjb29yZCwKICAgICB1
aW50IGxldmVsKQogewogICAgIHJldHVybiB0ZXh0dXJlLnJlYWQodWludDMoY29vcmQpLCBsZXZl
bCk7CkBAIC0xNTAxLDcgKzE1MDEsNyBAQCBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVf
dGV4ZWxGZXRjaF9pbXBsKAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5M
SU5FIGF1dG8gQU5HTEVfdGV4ZWxGZXRjaF9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6dGV4dHVy
ZTJkX2FycmF5PFQ+ICZ0ZXh0dXJlLAotICAgIHRocmVhZCBtZXRhbDo6aW50MyBjb25zdCAmY29v
cmQsCisgICAgbWV0YWw6OmludDMgY29uc3QgY29vcmQsCiAgICAgdWludCBsZXZlbCkKIHsKICAg
ICByZXR1cm4gdGV4dHVyZS5yZWFkKHVpbnQyKGNvb3JkLnh5KSwgdWludChjb29yZC56KSwgbGV2
ZWwpOwpAQCAtMTUxNiw5ICsxNTE2LDkgQEAgUFJPR1JBTV9QUkVMVURFX0RFQ0xBUkUodGV4ZWxG
ZXRjaE9mZnNldCwKIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lO
TElORSBhdXRvIEFOR0xFX3RleGVsRmV0Y2hPZmZzZXRfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVy
ZSAmdGV4dHVyZSwKLSAgICB0aHJlYWQgbWV0YWw6OmludDIgY29uc3QgJmNvb3JkLAorICAgIG1l
dGFsOjppbnQyIGNvbnN0IGNvb3JkLAogICAgIHVpbnQgbGV2ZWwsCi0gICAgdGhyZWFkIG1ldGFs
OjppbnQyIGNvbnN0ICZvZmZzZXQpCisgICAgbWV0YWw6OmludDIgY29uc3Qgb2Zmc2V0KQogewog
ICAgIHJldHVybiB0ZXh0dXJlLnJlYWQodWludDIoY29vcmQgKyBvZmZzZXQpLCBsZXZlbCk7CiB9
CkBAIC0xNTI2LDkgKzE1MjYsOSBAQCBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4
ZWxGZXRjaE9mZnNldF9pbXBsKAogdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9B
TFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4ZWxGZXRjaE9mZnNldF9pbXBsKAogICAgIHRocmVh
ZCBUZXh0dXJlICZ0ZXh0dXJlLAotICAgIHRocmVhZCBtZXRhbDo6aW50MyBjb25zdCAmY29vcmQs
CisgICAgbWV0YWw6OmludDMgY29uc3QgY29vcmQsCiAgICAgdWludCBsZXZlbCwKLSAgICB0aHJl
YWQgbWV0YWw6OmludDMgY29uc3QgJm9mZnNldCkKKyAgICBtZXRhbDo6aW50MyBjb25zdCBvZmZz
ZXQpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUucmVhZCh1aW50Myhjb29yZCArIG9mZnNldCksIGxl
dmVsKTsKIH0KQEAgLTE1MzYsOSArMTUzNiw5IEBAIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBB
TkdMRV90ZXhlbEZldGNoT2Zmc2V0X2ltcGwoCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xF
X0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXhlbEZldGNoT2Zmc2V0X2ltcGwoCiAgICAgdGhy
ZWFkIG1ldGFsOjp0ZXh0dXJlMmRfYXJyYXk8VD4gJnRleHR1cmUsCi0gICAgdGhyZWFkIG1ldGFs
OjppbnQzIGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6aW50MyBjb25zdCBjb29yZCwKICAgICB1
aW50IGxldmVsLAotICAgIHRocmVhZCBtZXRhbDo6aW50MiBjb25zdCAmb2Zmc2V0KQorICAgIG1l
dGFsOjppbnQyIGNvbnN0IG9mZnNldCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5yZWFkKHVpbnQy
KGNvb3JkLnh5ICsgb2Zmc2V0KSwgdWludChjb29yZC56KSwgbGV2ZWwpOwogfQpAQCAtMTU1Nyw3
ICsxNTU3LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5M
SU5FIGF1dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJl
LAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQg
bWV0YWw6OmZsb2F0MiBjb25zdCAmY29vcmQpCisgICAgbWV0YWw6OmZsb2F0MiBjb25zdCBjb29y
ZCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQpOwogfQpAQCAt
MTU3MCw3ICsxNTcwLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdB
WVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0
ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0
aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MiBjb25z
dCBjb29yZCwKICAgICBmbG9hdCBiaWFzKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShz
YW1wbGVyLCBjb29yZCwgbWV0YWw6OmJpYXMoYmlhcykpOwpAQCAtMTU4NCw3ICsxNTg0LDcgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5H
TEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAgIHRocmVh
ZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0
MyBjb25zdCAmY29vcmQpCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBjb29yZCkKIHsKICAgICBy
ZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQpOwogfQpAQCAtMTU5Nyw3ICsxNTk3
LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1
dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAg
IHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6
OmZsb2F0MyBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBjb29yZCwKICAg
ICBmbG9hdCBiaWFzKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29y
ZCwgbWV0YWw6OmJpYXMoYmlhcykpOwpAQCAtMTYxMSw3ICsxNjExLDcgQEAgdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAog
ICAgIHRocmVhZCBtZXRhbDo6ZGVwdGgyZDxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6
OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3Qg
JmNvb3JkKQorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQpCiB7CiAgICAgcmV0dXJuIHRl
eHR1cmUuc2FtcGxlX2NvbXBhcmUoc2FtcGxlciwgY29vcmQueHksIGNvb3JkLnopOwogfQpAQCAt
MTYyNCw3ICsxNjI0LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5M
SU5FIGF1dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6ZGVwdGgyZDxU
PiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0g
ICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMg
Y29uc3QgY29vcmQsCiAgICAgZmxvYXQgYmlhcykKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1w
bGVfY29tcGFyZShzYW1wbGVyLCBjb29yZC54eSwgY29vcmQueiwgbWV0YWw6OmJpYXMoYmlhcykp
OwpAQCAtMTYzOCw3ICsxNjM4LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdB
WVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6ZGVw
dGgyZF9hcnJheTxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3Qg
JnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkKQorICAgIG1l
dGFsOjpmbG9hdDQgY29uc3QgY29vcmQpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlX2Nv
bXBhcmUoc2FtcGxlciwgY29vcmQueHksIHVpbnQobWV0YWw6OnJvdW5kKGNvb3JkLnopKSwgY29v
cmQudyk7CiB9CkBAIC0xNjUxLDcgKzE2NTEsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFO
R0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlX2ltcGwoCiAgICAgdGhyZWFkIG1l
dGFsOjpkZXB0aDJkX2FycmF5PFQ+ICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxl
ciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25zdCAmY29vcmQs
CisgICAgbWV0YWw6OmZsb2F0NCBjb25zdCBjb29yZCwKICAgICBmbG9hdCBjb21wYXJlKQogewog
ICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZV9jb21wYXJlKHNhbXBsZXIsIGNvb3JkLnh5eiwgdWlu
dChtZXRhbDo6cm91bmQoY29vcmQudykpLCBjb21wYXJlKTsKQEAgLTE2NjUsNyArMTY2NSw3IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3Rl
eHR1cmVfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoY3ViZTxUPiAmdGV4dHVyZSwKICAg
ICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFs
OjpmbG9hdDQgY29uc3QgJmNvb3JkKQorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQpCiB7
CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlX2NvbXBhcmUoc2FtcGxlciwgY29vcmQueHl6LCBj
b29yZC53KTsKIH0KQEAgLTE2NzgsNyArMTY3OCw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgog
QU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVfaW1wbCgKICAgICB0aHJlYWQg
bWV0YWw6OmRlcHRoY3ViZTxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIg
Y29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkLAor
ICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCiAgICAgZmxvYXQgYmlhcykKIHsKICAgICBy
ZXR1cm4gdGV4dHVyZS5zYW1wbGVfY29tcGFyZShzYW1wbGVyLCBjb29yZC54eXosIGNvb3JkLncs
IG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTE2OTIsNyArMTY5Miw3IEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVfaW1wbCgKICAg
ICB0aHJlYWQgbWV0YWw6OnRleHR1cmUyZF9hcnJheTxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQg
bWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMg
Y29uc3QgJmNvb3JkKQorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQpCiB7CiAgICAgcmV0
dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5LCB1aW50KG1ldGFsOjpyb3VuZChj
b29yZC56KSkpOwogfQpAQCAtMTcwNSw3ICsxNzA1LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZV9pbXBsKAogICAgIHRocmVh
ZCBtZXRhbDo6dGV4dHVyZTJkX2FycmF5PFQ+ICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6
c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MyBjb25zdCAm
Y29vcmQsCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBjb29yZCwKICAgICBmbG9hdCBiaWFzKQog
ewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eSwgdWludChtZXRh
bDo6cm91bmQoY29vcmQueikpLCBtZXRhbDo6YmlhcyhiaWFzKSk7CkBAIC0xNzE5LDcgKzE3MTks
NyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdM
RV90ZXh0dXJlX2ltcGwoCiAgICAgdGhyZWFkIG1ldGFsOjp0ZXh0dXJlMmRfYXJyYXk8VD4gJnRl
eHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRo
cmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCkKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0
IGNvb3JkKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eXos
IHVpbnQobWV0YWw6OnJvdW5kKGNvb3JkLncpKSk7CiB9CkBAIC0xNzMyLDcgKzE3MzIsNyBAQCB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0
dXJlX2ltcGwoCiAgICAgdGhyZWFkIG1ldGFsOjp0ZXh0dXJlMmRfYXJyYXk8VD4gJnRleHR1cmUs
CiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBt
ZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3Jk
LAogICAgIGZsb2F0IGJpYXMpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5eiwgdWludChtZXRhbDo6cm91bmQoY29vcmQudykpLCBtZXRhbDo6YmlhcyhiaWFz
KSk7CkBAIC0xNzQ4LDcgKzE3NDgsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFO
R0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlMURMb2RfaW1wbCgKICAgICB0aHJl
YWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNh
bXBsZXIsCi0gICAgdGhyZWFkIGZsb2F0IGNvbnN0ICZjb29yZCwKKyAgICBmbG9hdCBjb25zdCBj
b29yZCwKICAgICBmbG9hdCBsZXZlbCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2Ft
cGxlciwgY29vcmQsIG1ldGFsOjpsZXZlbChsZXZlbCkpOwpAQCAtMTc2NCw3ICsxNzY0LDcgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5H
TEVfdGV4dHVyZTFEUHJval9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAg
IHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6
OmZsb2F0MiBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MiBjb25zdCBjb29yZCwKICAg
ICBmbG9hdCBiaWFzID0gMCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwg
Y29vcmQueC9jb29yZC55LCBtZXRhbDo6YmlhcyhiaWFzKSk7CkBAIC0xNzc0LDcgKzE3NzQsNyBA
QCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBB
TkdMRV90ZXh0dXJlMURQcm9qX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUsCiAg
ICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRh
bDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3JkLAog
ICAgIGZsb2F0IGJpYXMgPSAwKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVy
LCBjb29yZC54L2Nvb3JkLncsIG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTE3OTAsNyArMTc5MCw3
IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRv
IEFOR0xFX3RleHR1cmUxRFByb2pMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVy
ZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFk
IG1ldGFsOjpmbG9hdDIgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgY29v
cmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBs
ZXIsIGNvb3JkLngvY29vcmQueSwgbWV0YWw6OmxldmVsKGxldmVsKSk7CkBAIC0xODAwLDcgKzE4
MDAsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUg
YXV0byBBTkdMRV90ZXh0dXJlMURQcm9qTG9kX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRl
eHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRo
cmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0
IGNvb3JkLAogICAgIGZsb2F0IGxldmVsKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShz
YW1wbGVyLCBjb29yZC54L2Nvb3JkLncsIG1ldGFsOjpsZXZlbChsZXZlbCkpOwpAQCAtMTgxNiw3
ICsxODE2LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5M
SU5FIGF1dG8gQU5HTEVfdGV4dHVyZTJEX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBtZXRhbDo6ZmxvYXQyIGNvbnN0ICZjb29yZCkKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGNv
b3JkKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZCk7CiB9CkBA
IC0xODI1LDcgKzE4MjUsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FM
V0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlMkRfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVy
ZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0g
ICAgdGhyZWFkIG1ldGFsOjpmbG9hdDIgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIg
Y29uc3QgY29vcmQsCiAgICAgZmxvYXQgYmlhcykKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1w
bGUoc2FtcGxlciwgY29vcmQsIG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTE4MzUsNyArMTgzNSw3
IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRv
IEFOR0xFX3RleHR1cmUyRF9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAg
IHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6
OmZsb2F0MyBjb25zdCAmY29vcmQpCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBjb29yZCkKIHsK
ICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQpOwogfQpAQCAtMTg0NCw3
ICsxODQ0LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5M
SU5FIGF1dG8gQU5HTEVfdGV4dHVyZTJEX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNv
b3JkLAogICAgIGZsb2F0IGJpYXMpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBs
ZXIsIGNvb3JkLCBtZXRhbDo6YmlhcyhiaWFzKSk7CkBAIC0xODU5LDcgKzE4NTksNyBAQCB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90
ZXh0dXJlMkRSZWN0X2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhy
ZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6Zmxv
YXQyIGNvbnN0ICZjb29yZCkKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGNvb3JkKQogewogICAg
IHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZCk7CiB9CkBAIC0xODc1LDcgKzE4
NzUsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUg
YXV0byBBTkdMRV90ZXh0dXJlMkRMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVy
ZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFk
IG1ldGFsOjpmbG9hdDIgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgY29v
cmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBs
ZXIsIGNvb3JkLCBtZXRhbDo6bGV2ZWwobGV2ZWwpKTsKQEAgLTE4OTEsNyArMTg5MSw3IEBAIHRl
bXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xF
X3RleHR1cmUyRFByb2pfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0
aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpm
bG9hdDMgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQsCiAgICAg
ZmxvYXQgYmlhcyA9IDApCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNv
b3JkLnh5L2Nvb3JkLnosIG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTE5MDEsNyArMTkwMSw3IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFO
R0xFX3RleHR1cmUyRFByb2pfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAg
ICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFs
OjpmbG9hdDQgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCiAg
ICAgZmxvYXQgYmlhcyA9IDApCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5L2Nvb3JkLncsIG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTE5MTcsNyArMTkxNyw3
IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRv
IEFOR0xFX3RleHR1cmUyRFJlY3RQcm9qX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCkKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNv
b3JkKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eS9jb29y
ZC56KTsKIH0KQEAgLTE5MjUsNyArMTkyNSw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJl
PgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmUyRFJlY3RQcm9qX2ltcGwo
CiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVy
IGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCkK
KyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3JkKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNh
bXBsZShzYW1wbGVyLCBjb29yZC54eS9jb29yZC53KTsKIH0KQEAgLTE5NDAsNyArMTk0MCw3IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFO
R0xFX3RleHR1cmUyRFByb2pMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwK
ICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1l
dGFsOjpmbG9hdDMgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQs
CiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5L2Nvb3JkLnosIG1ldGFsOjpsZXZlbChsZXZlbCkpOwpAQCAtMTk1MCw3ICsxOTUw
LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1
dG8gQU5HTEVfdGV4dHVyZTJEUHJvakxvZF9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0
dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJl
YWQgbWV0YWw6OmZsb2F0NCBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0NCBjb25zdCBj
b29yZCwKICAgICBmbG9hdCBsZXZlbCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2Ft
cGxlciwgY29vcmQueHkvY29vcmQudywgbWV0YWw6OmxldmVsKGxldmVsKSk7CkBAIC0xOTY2LDcg
KzE5NjYsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJ
TkUgYXV0byBBTkdMRV90ZXh0dXJlM0RMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4
dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhy
ZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3Qg
Y29vcmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNh
bXBsZXIsIGNvb3JkLCBtZXRhbDo6bGV2ZWwobGV2ZWwpKTsKQEAgLTE5ODIsNyArMTk4Miw3IEBA
IHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFO
R0xFX3RleHR1cmUzRFByb2pfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAg
ICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFs
OjpmbG9hdDQgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCiAg
ICAgZmxvYXQgYmlhcyA9IDApCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5ei9jb29yZC53LCBtZXRhbDo6YmlhcyhiaWFzKSk7CkBAIC0xOTk4LDcgKzE5OTgs
NyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0
byBBTkdMRV90ZXh0dXJlM0RQcm9qTG9kX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNv
b3JkLAogICAgIGZsb2F0IGxldmVsKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1w
bGVyLCBjb29yZC54eXovY29vcmQudywgbWV0YWw6OmxldmVsKGxldmVsKSk7CkBAIC0yMDE0LDcg
KzIwMTQsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJ
TkUgYXV0byBBTkdMRV90ZXh0dXJlQ3ViZV9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0
dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJl
YWQgbWV0YWw6OmZsb2F0MyBjb25zdCAmY29vcmQpCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBj
b29yZCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQpOwogfQpA
QCAtMjAyMyw3ICsyMDIzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9B
TFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZUN1YmVfaW1wbCgKICAgICB0aHJlYWQgVGV4
dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIs
Ci0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9h
dDMgY29uc3QgY29vcmQsCiAgICAgZmxvYXQgYmlhcykKIHsKICAgICByZXR1cm4gdGV4dHVyZS5z
YW1wbGUoc2FtcGxlciwgY29vcmQsIG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTIwMzksNyArMjAz
OSw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBh
dXRvIEFOR0xFX3RleHR1cmVDdWJlTG9kX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNv
b3JkLAogICAgIGZsb2F0IGxldmVsKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1w
bGVyLCBjb29yZCwgbWV0YWw6OmxldmVsKGxldmVsKSk7CkBAIC0yMDU1LDcgKzIwNTUsNyBAQCB0
ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdM
RV90ZXh0dXJlQ3ViZVByb2pfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAg
ICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFs
OjpmbG9hdDQgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCiAg
ICAgZmxvYXQgYmlhcyA9IDApCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5ei9jb29yZC53LCBtZXRhbDo6YmlhcyhiaWFzKSk7CkBAIC0yMDcxLDcgKzIwNzEs
NyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0
byBBTkdMRV90ZXh0dXJlQ3ViZVByb2pMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4
dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhy
ZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3Qg
Y29vcmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNh
bXBsZXIsIGNvb3JkLnh5ei9jb29yZC53LCBtZXRhbDo6bGV2ZWwobGV2ZWwpKTsKQEAgLTIxMDcs
OSArMjEwNyw5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lO
TElORSBhdXRvIEFOR0xFX3RleHR1cmVHcmFkX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRl
eHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRo
cmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0
MiBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeSkKKyAg
ICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgZFBk
eCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHkpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUu
c2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5LCB1aW50KG1ldGFsOjpyb3VuZChjb29yZC56KSksIG1l
dGFsOjpncmFkaWVudDJkKGRQZHgsIGRQZHkpKTsKIH0KQEAgLTIxMjIsOSArMjEyMiw5IEBAIHRl
bXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xF
X3RleHR1cmVHcmFkX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhy
ZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6Zmxv
YXQ0IGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeCwK
LSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeSkKKyAgICBtZXRhbDo6ZmxvYXQ0
IGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgZFBkeCwKKyAgICBtZXRhbDo6
ZmxvYXQyIGNvbnN0IGRQZHkpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5LCB1aW50KG1ldGFsOjpyb3VuZChjb29yZC56KSksIG1ldGFsOjpncmFkaWVudDJk
KGRQZHgsIGRQZHkpKTsKIH0KQEAgLTIxMzcsOSArMjEzNyw5IEBAIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVHcmFkX2ltcGwoCiAg
ICAgdGhyZWFkIG1ldGFsOjpkZXB0aDJkPFQ+ICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6
c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MyBjb25zdCAm
Y29vcmQsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDIgY29uc3QgJmRQZHgsCi0gICAgdGhyZWFk
IG1ldGFsOjpmbG9hdDIgY29uc3QgJmRQZHkpCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBjb29y
ZCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHgsCisgICAgbWV0YWw6OmZsb2F0MiBjb25z
dCBkUGR5KQogewogICAgIGlmIChBTkdMRV9Vc2VTYW1wbGVDb21wYXJlR3JhZGllbnQpCiAgICAg
ewpAQCAtMjE2MCw5ICsyMTYwLDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdB
WVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZUdyYWRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6
OmRlcHRoMmRfYXJyYXk8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNv
bnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKLSAg
ICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZs
b2F0MiBjb25zdCAmZFBkeSkKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3JkLAorICAgIG1l
dGFsOjpmbG9hdDIgY29uc3QgZFBkeCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHkpCiB7
CiAgICAgaWYgKEFOR0xFX1VzZVNhbXBsZUNvbXBhcmVHcmFkaWVudCkKICAgICB7CkBAIC0yMTgz
LDkgKzIxODMsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUg
YXV0byBBTkdMRV90ZXh0dXJlR3JhZF9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6ZGVwdGhjdWJl
PFQ+ICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwK
LSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIG1ldGFs
OjpmbG9hdDMgY29uc3QgJmRQZHgsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmRQ
ZHkpCisgICAgbWV0YWw6OmZsb2F0NCBjb25zdCBjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNv
bnN0IGRQZHgsCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBkUGR5KQogewogICAgIGlmIChBTkdM
RV9Vc2VTYW1wbGVDb21wYXJlR3JhZGllbnQpCiAgICAgewpAQCAtMjIwNiw5ICsyMjA2LDkgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4
dHVyZUdyYWRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OnRleHR1cmVjdWJlPFQ+ICZ0ZXh0dXJl
LAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQg
bWV0YWw6OmZsb2F0MyBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29u
c3QgJmRQZHgsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmRQZHkpCisgICAgbWV0
YWw6OmZsb2F0MyBjb25zdCBjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGRQZHgsCisg
ICAgbWV0YWw6OmZsb2F0MyBjb25zdCBkUGR5KQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBs
ZShzYW1wbGVyLCBjb29yZCwgbWV0YWw6OmdyYWRpZW50Y3ViZShkUGR4LCBkUGR5KSk7CiB9CkBA
IC0yMjQ0LDEwICsyMjQ0LDEwIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVf
QUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVHcmFkT2Zmc2V0X2ltcGwoCiAgICAgdGhy
ZWFkIFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZz
YW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKLSAgICB0aHJl
YWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBj
b25zdCAmZFBkeSwKLSAgICB0aHJlYWQgbWV0YWw6OmludDIgY29uc3QgJm9mZnNldCkKKyAgICBt
ZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgZFBkeCwK
KyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHksCisgICAgbWV0YWw6OmludDIgY29uc3Qgb2Zm
c2V0KQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eSwgdWlu
dChtZXRhbDo6cm91bmQoY29vcmQueikpLCBtZXRhbDo6Z3JhZGllbnQyZChkUGR4LCBkUGR5KSwg
b2Zmc2V0KTsKIH0KQEAgLTIyNjAsMTAgKzIyNjAsMTAgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRl
eHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZUdyYWRPZmZzZXRf
aW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNh
bXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNv
b3JkLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQyIGNvbnN0ICZkUGR4LAotICAgIHRocmVhZCBt
ZXRhbDo6ZmxvYXQyIGNvbnN0ICZkUGR5LAotICAgIHRocmVhZCBtZXRhbDo6aW50MiBjb25zdCAm
b2Zmc2V0KQorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCisgICAgbWV0YWw6OmZsb2F0
MiBjb25zdCBkUGR4LAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgZFBkeSwKKyAgICBtZXRhbDo6
aW50MiBjb25zdCBvZmZzZXQpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIs
IGNvb3JkLnh5LCB1aW50KG1ldGFsOjpyb3VuZChjb29yZC56KSksIG1ldGFsOjpncmFkaWVudDJk
KGRQZHgsIGRQZHkpLCBvZmZzZXQpOwogfQpAQCAtMjI3NiwxMCArMjI3NiwxMCBAQCB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlR3Jh
ZE9mZnNldF9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6ZGVwdGgyZDxUPiAmdGV4dHVyZSwKICAg
ICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFs
OjpmbG9hdDMgY29uc3QgJmNvb3JkLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQyIGNvbnN0ICZk
UGR4LAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQyIGNvbnN0ICZkUGR5LAotICAgIHRocmVhZCBt
ZXRhbDo6aW50MiBjb25zdCAmb2Zmc2V0KQorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQs
CisgICAgbWV0YWw6OmZsb2F0MiBjb25zdCBkUGR4LAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3Qg
ZFBkeSwKKyAgICBtZXRhbDo6aW50MiBjb25zdCBvZmZzZXQpCiB7CiAgICAgaWYgKEFOR0xFX1Vz
ZVNhbXBsZUNvbXBhcmVHcmFkaWVudCkKICAgICB7CkBAIC0yMzAwLDEwICsyMzAwLDEwIEBAIHRl
bXBsYXRlIDx0eXBlbmFtZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1
cmVHcmFkT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFkIG1ldGFsOjpkZXB0aDJkX2FycmF5PFQ+ICZ0
ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0
aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9h
dDIgY29uc3QgJmRQZHgsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDIgY29uc3QgJmRQZHksCi0g
ICAgdGhyZWFkIG1ldGFsOjppbnQyIGNvbnN0ICZvZmZzZXQpCisgICAgbWV0YWw6OmZsb2F0NCBj
b25zdCBjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHgsCisgICAgbWV0YWw6OmZs
b2F0MiBjb25zdCBkUGR5LAorICAgIG1ldGFsOjppbnQyIGNvbnN0IG9mZnNldCkKIHsKICAgICBp
ZiAoQU5HTEVfVXNlU2FtcGxlQ29tcGFyZUdyYWRpZW50KQogICAgIHsKQEAgLTIzMjQsMTAgKzIz
MjQsMTAgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8g
QU5HTEVfdGV4dHVyZUdyYWRPZmZzZXRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoY3Vi
ZTxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIs
Ci0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkLAotICAgIHRocmVhZCBtZXRh
bDo6ZmxvYXQzIGNvbnN0ICZkUGR4LAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZk
UGR5LAotICAgIHRocmVhZCBtZXRhbDo6aW50MyBjb25zdCAmb2Zmc2V0KQorICAgIG1ldGFsOjpm
bG9hdDQgY29uc3QgY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBkUGR4LAorICAgIG1l
dGFsOjpmbG9hdDMgY29uc3QgZFBkeSwKKyAgICBtZXRhbDo6aW50MyBjb25zdCBvZmZzZXQpCiB7
CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlX2NvbXBhcmUoc2FtcGxlciwgY29vcmQueHl6LCBj
b29yZC53LCBtZXRhbDo6Z3JhZGllbnRjdWJlKGRQZHgsIGRQZHkpLCBvZmZzZXQpOwogfQpAQCAt
MjM0MCwxMCArMjM0MCwxMCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19J
TkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlR3JhZE9mZnNldF9pbXBsKAogICAgIHRocmVhZCBtZXRh
bDo6dGV4dHVyZWN1YmU8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNv
bnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKLSAg
ICB0aHJlYWQgbWV0YWw6OmZsb2F0MyBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZs
b2F0MyBjb25zdCAmZFBkeSwKLSAgICB0aHJlYWQgbWV0YWw6OmludDMgY29uc3QgJm9mZnNldCkK
KyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3Qg
ZFBkeCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGRQZHksCisgICAgbWV0YWw6OmludDMgY29u
c3Qgb2Zmc2V0KQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZCwg
bWV0YWw6OmdyYWRpZW50Y3ViZShkUGR4LCBkUGR5KSwgb2Zmc2V0KTsKIH0KQEAgLTIzNjIsNyAr
MjM2Miw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElO
RSBhdXRvIEFOR0xFX3RleHR1cmVMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVy
ZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFk
IG1ldGFsOjpmbG9hdDIgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgY29v
cmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBs
ZXIsIGNvb3JkLCBtZXRhbDo6bGV2ZWwobGV2ZWwpKTsKQEAgLTIzNzYsNyArMjM3Niw3IEBAIHRl
bXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xF
X3RleHR1cmVMb2RfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJl
YWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9h
dDMgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQsCiAgICAgZmxv
YXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLCBt
ZXRhbDo6bGV2ZWwobGV2ZWwpKTsKQEAgLTIzOTAsNyArMjM5MCw3IEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVMb2RfaW1wbCgK
ICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoMmQ8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFs
OjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0
ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAogICAgIGZsb2F0IGxldmVs
KQogewogICAgIGlmIChBTkdMRV9Vc2VTYW1wbGVDb21wYXJlTG9kKQpAQCAtMjQxMiw3ICsyNDEy
LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5H
TEVfdGV4dHVyZUxvZF9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6dGV4dHVyZTJkX2FycmF5PFQ+
ICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAg
ICB0aHJlYWQgbWV0YWw6OmZsb2F0MyBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MyBj
b25zdCBjb29yZCwKICAgICBmbG9hdCBsZXZlbCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1w
bGUoc2FtcGxlciwgY29vcmQueHksIHVpbnQobWV0YWw6OnJvdW5kKGNvb3JkLnopKSwgbWV0YWw6
OmxldmVsKGxldmVsKSk7CkBAIC0yNDI2LDcgKzI0MjYsNyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlTG9kX2ltcGwoCiAgICAg
dGhyZWFkIG1ldGFsOjp0ZXh0dXJlMmRfYXJyYXk8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1l
dGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQ0IGNv
bnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3JkLAogICAgIGZsb2F0IGxl
dmVsKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eXosIHVp
bnQobWV0YWw6OnJvdW5kKGNvb3JkLncpKSwgbWV0YWw6OmxldmVsKGxldmVsKSk7CkBAIC0yNDQy
LDkgKzI0NDIsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19J
TkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlTG9kT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFkIFRleHR1
cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAot
ICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQyIGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQy
IGNvbnN0IGNvb3JkLAogICAgIGZsb2F0IGxldmVsLAotICAgIHRocmVhZCBpbnQyIGNvbnN0ICZv
ZmZzZXQpCisgICAgbWV0YWw6OmludDIgY29uc3Qgb2Zmc2V0KQogewogICAgIHJldHVybiB0ZXh0
dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZCwgbWV0YWw6OmxldmVsKGxldmVsKSwgb2Zmc2V0KTsK
IH0KQEAgLTI0NTMsOSArMjQ1Myw5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5H
TEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVMb2RPZmZzZXRfaW1wbCgKICAgICB0
aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3Qg
JnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmNvb3JkLAorICAgIG1l
dGFsOjpmbG9hdDMgY29uc3QgY29vcmQsCiAgICAgZmxvYXQgbGV2ZWwsCi0gICAgdGhyZWFkIGlu
dDMgY29uc3QgJm9mZnNldCkKKyAgICBtZXRhbDo6aW50MyBjb25zdCBvZmZzZXQpCiB7CiAgICAg
cmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLCBtZXRhbDo6bGV2ZWwobGV2ZWwp
LCBvZmZzZXQpOwogfQpAQCAtMjQ2NCw5ICsyNDY0LDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZUxvZE9mZnNldF9pbXBsKAog
ICAgIHRocmVhZCBtZXRhbDo6ZGVwdGgyZDxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6
OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3Qg
JmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQsCiAgICAgZmxvYXQgbGV2ZWws
Ci0gICAgdGhyZWFkIGludDIgY29uc3QgJm9mZnNldCkKKyAgICBpbnQyIGNvbnN0IG9mZnNldCkK
IHsKICAgICBpZiAoQU5HTEVfVXNlU2FtcGxlQ29tcGFyZUxvZCkKICAgICB7CkBAIC0yNDgyLDkg
KzI0ODIsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0
byBBTkdMRV90ZXh0dXJlTG9kT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFkIG1ldGFsOjp0ZXh0dXJl
MmRfYXJyYXk8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZz
YW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKKyAgICBtZXRh
bDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAogICAgIGZsb2F0IGxldmVsLAotICAgIHRocmVhZCBpbnQy
IGNvbnN0ICZvZmZzZXQpCisgICAgbWV0YWw6OmludDIgY29uc3Qgb2Zmc2V0KQogewogICAgIHJl
dHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eSwgdWludChtZXRhbDo6cm91bmQo
Y29vcmQueikpLCBtZXRhbDo6bGV2ZWwobGV2ZWwpLCBvZmZzZXQpOwogfQpAQCAtMjQ5Myw5ICsy
NDkzLDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8g
QU5HTEVfdGV4dHVyZUxvZE9mZnNldF9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6dGV4dHVyZTJk
X2FycmF5PFQ+ICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2Ft
cGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6
OmZsb2F0NCBjb25zdCBjb29yZCwKICAgICBmbG9hdCBsZXZlbCwKLSAgICB0aHJlYWQgaW50MyBj
b25zdCAmb2Zmc2V0KQorICAgIG1ldGFsOjppbnQzIGNvbnN0IG9mZnNldCkKIHsKICAgICByZXR1
cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQueHl6LCB1aW50KG1ldGFsOjpyb3VuZChj
b29yZC53KSksIG1ldGFsOjpsZXZlbChsZXZlbCksIG9mZnNldCk7CiB9CkBAIC0yNTExLDggKzI1
MTEsOCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUg
YXV0byBBTkdMRV90ZXh0dXJlT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBmbG9hdDIgY29uc3QgJmNvb3JkLAotICAgIHRocmVhZCBpbnQyIGNvbnN0ICZvZmZzZXQpCisg
ICAgbWV0YWw6OmZsb2F0MiBjb25zdCBjb29yZCwKKyAgICBtZXRhbDo6aW50MiBjb25zdCBvZmZz
ZXQpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLCBvZmZzZXQp
OwogfQpAQCAtMjUyMSw4ICsyNTIxLDggQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBB
TkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZU9mZnNldF9pbXBsKAogICAgIHRo
cmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAm
c2FtcGxlciwKLSAgICB0aHJlYWQgZmxvYXQyIGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgaW50
MiBjb25zdCAmb2Zmc2V0LAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgY29vcmQsCisgICAgbWV0
YWw6OmludDIgY29uc3Qgb2Zmc2V0LAogICAgIGZsb2F0IGJpYXMpCiB7CiAgICAgcmV0dXJuIHRl
eHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLCBtZXRhbDo6YmlhcyhiaWFzKSwgb2Zmc2V0KTsK
QEAgLTI1MzIsOCArMjUzMiw4IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVf
QUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVPZmZzZXRfaW1wbCgKICAgICB0aHJlYWQg
VGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBs
ZXIsCi0gICAgdGhyZWFkIGZsb2F0MyBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIGludDIgY29u
c3QgJm9mZnNldCkKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpp
bnQyIGNvbnN0IG9mZnNldCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwg
Y29vcmQueHksIHVpbnQobWV0YWw6OnJvdW5kKGNvb3JkLnopKSwgb2Zmc2V0KTsKIH0KQEAgLTI1
NDIsOCArMjU0Miw4IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlT
X0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVPZmZzZXRfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVy
ZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0g
ICAgdGhyZWFkIGZsb2F0MyBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIGludDIgY29uc3QgJm9m
ZnNldCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjppbnQyIGNv
bnN0IG9mZnNldCwKICAgICBmbG9hdCBiaWFzKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBs
ZShzYW1wbGVyLCBjb29yZC54eSwgdWludChtZXRhbDo6cm91bmQoY29vcmQueikpLCBtZXRhbDo6
YmlhcyhiaWFzKSwgb2Zmc2V0KTsKQEAgLTI1NTMsOCArMjU1Myw4IEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVPZmZz
ZXRfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6
OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIGZsb2F0MyBjb25zdCAmY29vcmQs
Ci0gICAgdGhyZWFkIGludDMgY29uc3QgJm9mZnNldCkKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0
IGNvb3JkLAorICAgIG1ldGFsOjppbnQzIGNvbnN0IG9mZnNldCkKIHsKICAgICByZXR1cm4gdGV4
dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQsIG9mZnNldCk7CiB9CkBAIC0yNTYzLDggKzI1NjMs
OCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0
byBBTkdMRV90ZXh0dXJlT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUs
CiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBm
bG9hdDMgY29uc3QgJmNvb3JkLAotICAgIHRocmVhZCBpbnQzIGNvbnN0ICZvZmZzZXQsCisgICAg
bWV0YWw6OmZsb2F0MyBjb25zdCBjb29yZCwKKyAgICBtZXRhbDo6aW50MyBjb25zdCBvZmZzZXQs
CiAgICAgZmxvYXQgYmlhcykKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwg
Y29vcmQsIG1ldGFsOjpiaWFzKGJpYXMpLCBvZmZzZXQpOwpAQCAtMjU3NCw4ICsyNTc0LDggQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4
dHVyZU9mZnNldF9pbXBsKAogICAgIHRocmVhZCBtZXRhbDo6ZGVwdGgyZDxUPiAmdGV4dHVyZSwK
ICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIGZs
b2F0MyBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIGludDIgY29uc3QgJm9mZnNldCkKKyAgICBt
ZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjppbnQyIGNvbnN0IG9mZnNldCkK
IHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGVfY29tcGFyZShzYW1wbGVyLCBjb29yZC54eSwg
Y29vcmQueiwgb2Zmc2V0KTsKIH0KQEAgLTI1ODQsOCArMjU4NCw4IEBAIHRlbXBsYXRlIDx0eXBl
bmFtZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVPZmZzZXRfaW1w
bCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoMmQ8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1l
dGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBmbG9hdDMgY29uc3QgJmNv
b3JkLAotICAgIHRocmVhZCBpbnQyIGNvbnN0ICZvZmZzZXQsCisgICAgbWV0YWw6OmZsb2F0MyBj
b25zdCBjb29yZCwKKyAgICBtZXRhbDo6aW50MiBjb25zdCBvZmZzZXQsCiAgICAgZmxvYXQgYmlh
cykKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGVfY29tcGFyZShzYW1wbGVyLCBjb29yZC54
eSwgY29vcmQueiwgbWV0YWw6OmJpYXMoYmlhcyksIG9mZnNldCk7CkBAIC0yNjAxLDcgKzI2MDEs
NyBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0
byBBTkdMRV90ZXh0dXJlUHJval9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAog
ICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0
YWw6OmZsb2F0MyBjb25zdCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBjb29yZCwK
ICAgICBmbG9hdCBiaWFzID0gMCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxl
ciwgY29vcmQueHkvY29vcmQueiwgbWV0YWw6OmJpYXMoYmlhcykpOwpAQCAtMjYxMSw3ICsyNjEx
LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1
dG8gQU5HTEVfdGV4dHVyZVByb2pfaW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwK
ICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1l
dGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQs
CiAgICAgZmxvYXQgYmlhcyA9IDApCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBs
ZXIsIGNvb3JkLnh5L2Nvb3JkLncsIG1ldGFsOjpiaWFzKGJpYXMpKTsKQEAgLTI2MjEsNyArMjYy
MSw3IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFO
R0xFX3RleHR1cmVQcm9qX2ltcGwoCiAgICAgdGhyZWFkIG1ldGFsOjp0ZXh0dXJlM2Q8VD4gJnRl
eHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRo
cmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0
IGNvb3JkLAogICAgIGZsb2F0IGJpYXMgPSAwKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBs
ZShzYW1wbGVyLCBjb29yZC54eXovY29vcmQudywgbWV0YWw6OmJpYXMoYmlhcykpOwpAQCAtMjY0
MSw5ICsyNjQxLDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+CiBBTkdMRV9BTFdBWVNf
SU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pHcmFkX2ltcGwoCiAgICAgdGhyZWFkIFRleHR1
cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAot
ICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgbWV0YWw6
OmZsb2F0MiBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBk
eSkKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29u
c3QgZFBkeCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHkpCiB7CiAgICAgcmV0dXJuIHRl
eHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5L2Nvb3JkLnosIG1ldGFsOjpncmFkaWVudDJk
KGRQZHgsIGRQZHkpKTsKIH0KQEAgLTI2NTYsOSArMjY1Niw5IEBAIHRlbXBsYXRlIDx0eXBlbmFt
ZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVQcm9qR3Jh
ZF9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6
c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25zdCAm
Y29vcmQsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDIgY29uc3QgJmRQZHgsCi0gICAgdGhyZWFk
IG1ldGFsOjpmbG9hdDIgY29uc3QgJmRQZHkpCisgICAgbWV0YWw6OmZsb2F0NCBjb25zdCBjb29y
ZCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHgsCisgICAgbWV0YWw6OmZsb2F0MiBjb25z
dCBkUGR5KQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eS9j
b29yZC53LCBtZXRhbDo6Z3JhZGllbnQyZChkUGR4LCBkUGR5KSk7CiB9CkBAIC0yNjcxLDkgKzI2
NzEsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBB
TkdMRV90ZXh0dXJlUHJvakdyYWRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoMmQ8VD4g
JnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAg
IHRocmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgbWV0YWw6OmZs
b2F0MiBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeSkK
KyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3Qg
ZFBkeCwKKyAgICBtZXRhbDo6ZmxvYXQyIGNvbnN0IGRQZHkpCiB7CiAgICAgaWYgKEFOR0xFX1Vz
ZVNhbXBsZUNvbXBhcmVHcmFkaWVudCkKICAgICB7CkBAIC0yNjk0LDkgKzI2OTQsOSBAQCB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJl
UHJvakdyYWRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OnRleHR1cmUzZDxUPiAmdGV4dHVyZSwK
ICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1l
dGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0
ICZkUGR4LAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZkUGR5KQorICAgIG1ldGFs
OjpmbG9hdDQgY29uc3QgY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MyBjb25zdCBkUGR4LAorICAg
IG1ldGFsOjpmbG9hdDMgY29uc3QgZFBkeSkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUo
c2FtcGxlciwgY29vcmQueHl6L2Nvb3JkLncsIG1ldGFsOjpncmFkaWVudDNkKGRQZHgsIGRQZHkp
KTsKIH0KQEAgLTI3MTUsMTAgKzI3MTUsMTAgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRleHR1cmU+
CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pHcmFkT2Zmc2V0X2lt
cGwoCiAgICAgdGhyZWFkIFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1w
bGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29y
ZCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0
YWw6OmZsb2F0MiBjb25zdCAmZFBkeSwKLSAgICB0aHJlYWQgaW50MiBjb25zdCAmb2Zmc2V0KQor
ICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQsCisgICAgbWV0YWw6OmZsb2F0MiBjb25zdCBk
UGR4LAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgZFBkeSwKKyAgICBpbnQyIGNvbnN0IG9mZnNl
dCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQueHkvY29vcmQu
eiwgbWV0YWw6OmdyYWRpZW50MmQoZFBkeCwgZFBkeSksIG9mZnNldCk7CiB9CkBAIC0yNzMxLDEw
ICsyNzMxLDEwIEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxXQVlTX0lO
TElORSBhdXRvIEFOR0xFX3RleHR1cmVQcm9qR3JhZE9mZnNldF9pbXBsKAogICAgIHRocmVhZCBU
ZXh0dXJlICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxl
ciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIG1l
dGFsOjpmbG9hdDIgY29uc3QgJmRQZHgsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDIgY29uc3Qg
JmRQZHksCi0gICAgdGhyZWFkIGludDIgY29uc3QgJm9mZnNldCkKKyAgICBtZXRhbDo6ZmxvYXQ0
IGNvbnN0IGNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3QgZFBkeCwKKyAgICBtZXRhbDo6
ZmxvYXQyIGNvbnN0IGRQZHksCisgICAgaW50MiBjb25zdCBvZmZzZXQpCiB7CiAgICAgcmV0dXJu
IHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5L2Nvb3JkLncsIG1ldGFsOjpncmFkaWVu
dDJkKGRQZHgsIGRQZHkpLCBvZmZzZXQpOwogfQpAQCAtMjc0NywxMCArMjc0NywxMCBAQCB0ZW1w
bGF0ZSA8dHlwZW5hbWUgVD4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJl
UHJvakdyYWRPZmZzZXRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoMmQ8VD4gJnRleHR1
cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVh
ZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBj
b25zdCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MiBjb25zdCAmZFBkeSwKLSAgICB0
aHJlYWQgaW50MiBjb25zdCAmb2Zmc2V0KQorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQs
CisgICAgbWV0YWw6OmZsb2F0MiBjb25zdCBkUGR4LAorICAgIG1ldGFsOjpmbG9hdDIgY29uc3Qg
ZFBkeSwKKyAgICBpbnQyIGNvbnN0IG9mZnNldCkKIHsKICAgICBpZiAoQU5HTEVfVXNlU2FtcGxl
Q29tcGFyZUdyYWRpZW50KQogICAgIHsKQEAgLTI3NzEsMTAgKzI3NzEsMTAgQEAgdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pH
cmFkT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFkIG1ldGFsOjp0ZXh0dXJlM2Q8VD4gJnRleHR1cmUs
CiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBt
ZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MyBjb25z
dCAmZFBkeCwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0MyBjb25zdCAmZFBkeSwKLSAgICB0aHJl
YWQgaW50MyBjb25zdCAmb2Zmc2V0KQorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCisg
ICAgbWV0YWw6OmZsb2F0MyBjb25zdCBkUGR4LAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgZFBk
eSwKKyAgICBpbnQzIGNvbnN0IG9mZnNldCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUo
c2FtcGxlciwgY29vcmQueHl6L2Nvb3JkLncsIG1ldGFsOjpncmFkaWVudDNkKGRQZHgsIGRQZHkp
LCBvZmZzZXQpOwogfQpAQCAtMjc5Myw3ICsyNzkzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFRl
eHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pMb2RfaW1w
bCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBs
ZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDMgY29uc3QgJmNvb3Jk
LAorICAgIG1ldGFsOjpmbG9hdDMgY29uc3QgY29vcmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAg
ICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5L2Nvb3JkLnosIG1ldGFs
OjpsZXZlbChsZXZlbCkpOwpAQCAtMjgwNyw3ICsyODA3LDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1l
IFRleHR1cmU+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pMb2Rf
aW1wbCgKICAgICB0aHJlYWQgVGV4dHVyZSAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNh
bXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNv
b3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7
CiAgICAgcmV0dXJuIHRleHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5L2Nvb3JkLncsIG1l
dGFsOjpsZXZlbChsZXZlbCkpOwpAQCAtMjgyMSw3ICsyODIxLDcgQEAgdGVtcGxhdGUgPHR5cGVu
YW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pMb2RfaW1w
bCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoMmQ8VD4gJnRleHR1cmUsCiAgICAgdGhyZWFkIG1l
dGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQ0IGNv
bnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0IGNvb3JkLAogICAgIGZsb2F0IGxl
dmVsKQogewogICAgIGlmIChBTkdMRV9Vc2VTYW1wbGVDb21wYXJlTG9kKQpAQCAtMjg0Myw3ICsy
ODQzLDcgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8g
QU5HTEVfdGV4dHVyZVByb2pMb2RfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OnRleHR1cmUzZDxU
PiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0g
ICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQg
Y29uc3QgY29vcmQsCiAgICAgZmxvYXQgbGV2ZWwpCiB7CiAgICAgcmV0dXJuIHRleHR1cmUuc2Ft
cGxlKHNhbXBsZXIsIGNvb3JkLnh5ei9jb29yZC53LCBtZXRhbDo6bGV2ZWwobGV2ZWwpKTsKQEAg
LTI4NTksOSArMjg1OSw5IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxX
QVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVQcm9qTG9kT2Zmc2V0X2ltcGwoCiAgICAgdGhy
ZWFkIFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZz
YW1wbGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQzIGNvbnN0ICZjb29yZCwKKyAgICBtZXRh
bDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAogICAgIGZsb2F0IGxldmVsLAotICAgIHRocmVhZCBpbnQy
IGNvbnN0ICZvZmZzZXQpCisgICAgaW50MiBjb25zdCBvZmZzZXQpCiB7CiAgICAgcmV0dXJuIHRl
eHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5L2Nvb3JkLnosIG1ldGFsOjpsZXZlbChsZXZl
bCksIG9mZnNldCk7CiB9CkBAIC0yODcwLDkgKzI4NzAsOSBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0byBBTkdMRV90ZXh0dXJlUHJvakxvZE9m
ZnNldF9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0dXJlLAogICAgIHRocmVhZCBtZXRh
bDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJlYWQgbWV0YWw6OmZsb2F0NCBjb25z
dCAmY29vcmQsCisgICAgbWV0YWw6OmZsb2F0NCBjb25zdCBjb29yZCwKICAgICBmbG9hdCBsZXZl
bCwKLSAgICB0aHJlYWQgaW50MiBjb25zdCAmb2Zmc2V0KQorICAgIGludDIgY29uc3Qgb2Zmc2V0
KQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShzYW1wbGVyLCBjb29yZC54eS9jb29yZC53
LCBtZXRhbDo6bGV2ZWwobGV2ZWwpLCBvZmZzZXQpOwogfQpAQCAtMjg4MSw5ICsyODgxLDkgQEAg
dGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4
dHVyZVByb2pMb2RPZmZzZXRfaW1wbCgKICAgICB0aHJlYWQgbWV0YWw6OmRlcHRoMmQ8VD4gJnRl
eHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1wbGVyLAotICAgIHRo
cmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKKyAgICBtZXRhbDo6ZmxvYXQ0IGNvbnN0
IGNvb3JkLAogICAgIGZsb2F0IGxldmVsLAotICAgIHRocmVhZCBpbnQyIGNvbnN0ICZvZmZzZXQp
CisgICAgaW50MiBjb25zdCBvZmZzZXQpCiB7CiAgICAgaWYgKEFOR0xFX1VzZVNhbXBsZUNvbXBh
cmVMb2QpCiAgICAgewpAQCAtMjg5OSw5ICsyODk5LDkgQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CiBBTkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pMb2RPZmZzZXRfaW1w
bCgKICAgICB0aHJlYWQgbWV0YWw6OnRleHR1cmUzZDxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQg
bWV0YWw6OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQg
Y29uc3QgJmNvb3JkLAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCiAgICAgZmxvYXQg
bGV2ZWwsCi0gICAgdGhyZWFkIGludDMgY29uc3QgJm9mZnNldCkKKyAgICBpbnQzIGNvbnN0IG9m
ZnNldCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQueHl6L2Nv
b3JkLncsIG1ldGFsOjpsZXZlbChsZXZlbCksIG9mZnNldCk7CiB9CkBAIC0yOTE3LDggKzI5MTcs
OCBAQCB0ZW1wbGF0ZSA8dHlwZW5hbWUgVGV4dHVyZT4KIEFOR0xFX0FMV0FZU19JTkxJTkUgYXV0
byBBTkdMRV90ZXh0dXJlUHJvak9mZnNldF9pbXBsKAogICAgIHRocmVhZCBUZXh0dXJlICZ0ZXh0
dXJlLAogICAgIHRocmVhZCBtZXRhbDo6c2FtcGxlciBjb25zdCAmc2FtcGxlciwKLSAgICB0aHJl
YWQgbWV0YWw6OmZsb2F0MyBjb25zdCAmY29vcmQsCi0gICAgdGhyZWFkIGludDIgY29uc3QgJm9m
ZnNldCwKKyAgICBtZXRhbDo6ZmxvYXQzIGNvbnN0IGNvb3JkLAorICAgIGludDIgY29uc3Qgb2Zm
c2V0LAogICAgIGZsb2F0IGJpYXMgPSAwKQogewogICAgIHJldHVybiB0ZXh0dXJlLnNhbXBsZShz
YW1wbGVyLCBjb29yZC54eS9jb29yZC56LCBtZXRhbDo6YmlhcyhiaWFzKSwgb2Zmc2V0KTsKQEAg
LTI5MjgsOCArMjkyOCw4IEBAIHRlbXBsYXRlIDx0eXBlbmFtZSBUZXh0dXJlPgogQU5HTEVfQUxX
QVlTX0lOTElORSBhdXRvIEFOR0xFX3RleHR1cmVQcm9qT2Zmc2V0X2ltcGwoCiAgICAgdGhyZWFk
IFRleHR1cmUgJnRleHR1cmUsCiAgICAgdGhyZWFkIG1ldGFsOjpzYW1wbGVyIGNvbnN0ICZzYW1w
bGVyLAotICAgIHRocmVhZCBtZXRhbDo6ZmxvYXQ0IGNvbnN0ICZjb29yZCwKLSAgICB0aHJlYWQg
aW50MiBjb25zdCAmb2Zmc2V0LAorICAgIG1ldGFsOjpmbG9hdDQgY29uc3QgY29vcmQsCisgICAg
aW50MiBjb25zdCBvZmZzZXQsCiAgICAgZmxvYXQgYmlhcyA9IDApCiB7CiAgICAgcmV0dXJuIHRl
eHR1cmUuc2FtcGxlKHNhbXBsZXIsIGNvb3JkLnh5L2Nvb3JkLncsIG1ldGFsOjpiaWFzKGJpYXMp
LCBvZmZzZXQpOwpAQCAtMjkzOSw4ICsyOTM5LDggQEAgdGVtcGxhdGUgPHR5cGVuYW1lIFQ+CiBB
TkdMRV9BTFdBWVNfSU5MSU5FIGF1dG8gQU5HTEVfdGV4dHVyZVByb2pPZmZzZXRfaW1wbCgKICAg
ICB0aHJlYWQgbWV0YWw6OnRleHR1cmUzZDxUPiAmdGV4dHVyZSwKICAgICB0aHJlYWQgbWV0YWw6
OnNhbXBsZXIgY29uc3QgJnNhbXBsZXIsCi0gICAgdGhyZWFkIG1ldGFsOjpmbG9hdDQgY29uc3Qg
JmNvb3JkLAotICAgIHRocmVhZCBpbnQzIGNvbnN0ICZvZmZzZXQsCisgICAgbWV0YWw6OmZsb2F0
NCBjb25zdCBjb29yZCwKKyAgICBpbnQzIGNvbnN0IG9mZnNldCwKICAgICBmbG9hdCBiaWFzID0g
MCkKIHsKICAgICByZXR1cm4gdGV4dHVyZS5zYW1wbGUoc2FtcGxlciwgY29vcmQueHl6L2Nvb3Jk
LncsIG1ldGFsOjpiaWFzKGJpYXMpLCBvZmZzZXQpOwpAQCAtMzU0MSwxMiArMzU0MSwyNiBAQCB2
b2lkIFByb2dyYW1QcmVsdWRlOjp2aXNpdE9wZXJhdG9yKFRPcGVyYXRvciBvcCwKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIGJyZWFrOwogCisgICAgICAgIGNhc2UgVE9wZXJhdG9yOjpFT3BB
ZGRBc3NpZ246CisgICAgICAgICAgICBpZiAoYXJnVHlwZTAtPmlzTWF0cml4KCkgJiYgYXJnVHlw
ZTEtPmlzU2NhbGFyKCkpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgYWRkTWF0cml4
U2NhbGFyQXNzaWduKCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBicmVhazsKKwogICAg
ICAgICBjYXNlIFRPcGVyYXRvcjo6RU9wU3ViOgogICAgICAgICAgICAgaWYgKGFyZ1R5cGUwLT5p
c01hdHJpeCgpICYmIGFyZ1R5cGUxLT5pc1NjYWxhcigpKQogICAgICAgICAgICAgewogICAgICAg
ICAgICAgICAgIHN1Yk1hdHJpeFNjYWxhcigpOwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICAKKyAgICAgICAgY2FzZSBUT3BlcmF0b3I6OkVPcFN1YkFzc2ln
bjoKKyAgICAgICAgICAgIGlmKGFyZ1R5cGUwLT5pc01hdHJpeCgpICYmIGFyZ1R5cGUxLT5pc1Nj
YWxhcigpKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIHN1Yk1hdHJpeFNjYWxhckFz
c2lnbigpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgYnJlYWs7CiAKICAgICAgICAgY2Fz
ZSBUT3BlcmF0b3I6OkVPcERpdjoKICAgICAgICAgICAgIGlmIChhcmdUeXBlMC0+aXNNYXRyaXgo
KSkKQEAgLTM2NDEsOCArMzY1NSw2IEBAIHZvaWQgUHJvZ3JhbVByZWx1ZGU6OnZpc2l0T3BlcmF0
b3IoVE9wZXJhdG9yIG9wLAogICAgICAgICBjYXNlIFRPcGVyYXRvcjo6RU9wQ29tbWE6CiAgICAg
ICAgIGNhc2UgVE9wZXJhdG9yOjpFT3BBc3NpZ246CiAgICAgICAgIGNhc2UgVE9wZXJhdG9yOjpF
T3BJbml0aWFsaXplOgotICAgICAgICBjYXNlIFRPcGVyYXRvcjo6RU9wQWRkQXNzaWduOgotICAg
ICAgICBjYXNlIFRPcGVyYXRvcjo6RU9wU3ViQXNzaWduOgogICAgICAgICBjYXNlIFRPcGVyYXRv
cjo6RU9wTXVsQXNzaWduOgogICAgICAgICBjYXNlIFRPcGVyYXRvcjo6RU9wSU1vZEFzc2lnbjoK
ICAgICAgICAgY2FzZSBUT3BlcmF0b3I6OkVPcEJpdFNoaWZ0TGVmdEFzc2lnbjoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci90cmFuc2xhdG9yL1RyYW5z
bGF0b3JNZXRhbERpcmVjdC9SZXdyaXRlS2V5d29yZHMuY3BwIGIvU291cmNlL1RoaXJkUGFydHkv
QU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1Jld3Jp
dGVLZXl3b3Jkcy5jcHAKaW5kZXggZTAxNGY0MGY4MWNjYWQ1MDEzMzcwNjU4YmM4OTQyYjAwMmQ2
YjhlMy4uODAxZmNmMWYzMGQ4ZmMxMGQ4NzkwNTRlZjdjZWE4Yjc5OTIxYmRmOSAxMDA2NDQKLS0t
IGEvU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNs
YXRvck1ldGFsRGlyZWN0L1Jld3JpdGVLZXl3b3Jkcy5jcHAKKysrIGIvU291cmNlL1RoaXJkUGFy
dHkvQU5HTEUvc3JjL2NvbXBpbGVyL3RyYW5zbGF0b3IvVHJhbnNsYXRvck1ldGFsRGlyZWN0L1Jl
d3JpdGVLZXl3b3Jkcy5jcHAKQEAgLTksNiArOSw3IEBACiAjaW5jbHVkZSA8bGltaXRzPgogI2lu
Y2x1ZGUgPHVub3JkZXJlZF9tYXA+CiAjaW5jbHVkZSA8dW5vcmRlcmVkX3NldD4KKyNpbmNsdWRl
IDxtYXA+CiAKICNpbmNsdWRlICJjb21waWxlci90cmFuc2xhdG9yL1RyYW5zbGF0b3JNZXRhbERp
cmVjdC9Bc3RIZWxwZXJzLmgiCiAjaW5jbHVkZSAiY29tcGlsZXIvdHJhbnNsYXRvci9UcmFuc2xh
dG9yTWV0YWxEaXJlY3QvRGVidWcuaCIKQEAgLTM2LDYgKzM3LDcgQEAgY2xhc3MgUmV3cml0ZXIg
OiBwdWJsaWMgVEludGVybVJlYnVpbGQKICAgICBSZW1hcHBpbmc8VEludGVyZmFjZUJsb2NrPiBt
SW50ZXJmYWNlQmxvY2tzOwogICAgIFJlbWFwcGluZzxUU3RydWN0dXJlPiBtU3RydWN0dXJlczsK
ICAgICBSZW1hcHBpbmc8VFZhcmlhYmxlPiBtVmFyaWFibGVzOworICAgIHN0ZDo6bWFwPEltbXV0
YWJsZVN0cmluZywgc3RkOjpzdHJpbmc+IG1QcmVkZWZpbmVkTmFtZXM7CiAgICAgc3RkOjpzdHJp
bmcgbU5ld05hbWVCdWZmZXI7CiAKICAgcHJpdmF0ZToKQEAgLTQ0LDYgKzQ2LDExIEBAIGNsYXNz
IFJld3JpdGVyIDogcHVibGljIFRJbnRlcm1SZWJ1aWxkCiAgICAgewogICAgICAgICBpZiAobmVl
ZHNSZW5hbWluZyhvYmplY3QsIGZhbHNlKSkKICAgICAgICAgeworICAgICAgICAgICAgYXV0byBp
dCA9IG1QcmVkZWZpbmVkTmFtZXMuZmluZChOYW1lKG9iamVjdCkucmF3TmFtZSgpKTsKKyAgICAg
ICAgICAgIGlmIChpdCAhPSBtUHJlZGVmaW5lZE5hbWVzLmVuZCgpKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIHJldHVybiBJbW11dGFibGVTdHJpbmcoaXQtPnNlY29uZCk7CisgICAg
ICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gbUlkR2VuLmNyZWF0ZU5ld05hbWUoTmFtZShv
YmplY3QpKS5yYXdOYW1lKCk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuIE5hbWUob2JqZWN0
KS5yYXdOYW1lKCk7CkBAIC0zNDQsNyArMzUxLDcgQEAgY2xhc3MgUmV3cml0ZXIgOiBwdWJsaWMg
VEludGVybVJlYnVpbGQKICAgICAgICAgOiBUSW50ZXJtUmVidWlsZChjb21waWxlciwgZmFsc2Us
IHRydWUpLCBtS2V5d29yZHMoa2V5d29yZHMpLCBtSWRHZW4oaWRHZW4pCiAgICAge30KIAotICAg
IFBvc3RSZXN1bHQgdmlzaXRTeW1ib2woVEludGVybVN5bWJvbCAmc3ltYm9sTm9kZSkKKyAgICBQ
b3N0UmVzdWx0IHZpc2l0U3ltYm9sUG9zdChUSW50ZXJtU3ltYm9sICZzeW1ib2xOb2RlKQogICAg
IHsKICAgICAgICAgY29uc3QgVFZhcmlhYmxlICZ2YXIgPSBzeW1ib2xOb2RlLnZhcmlhYmxlKCk7
CiAgICAgICAgIGlmIChuZWVkc1JlbmFtaW5nKHZhciwgdHJ1ZSkpCkBAIC0zNjYsNiArMzczLDE4
IEBAIGNsYXNzIFJld3JpdGVyIDogcHVibGljIFRJbnRlcm1SZWJ1aWxkCiAgICAgICAgIHJldHVy
biBmdW5jUHJvdG9Ob2RlOwogICAgIH0KIAorICAgIFBvc3RSZXN1bHQgdmlzaXREZWNsYXJhdGlv
blBvc3QoVEludGVybURlY2xhcmF0aW9uICZkZWNsTm9kZSkgb3ZlcnJpZGUKKyAgICB7CisgICAg
ICAgIERlY2xhcmF0aW9uIGRlY2wgICAgID0gVmlld0RlY2xhcmF0aW9uKGRlY2xOb2RlKTsKKyAg
ICAgICAgY29uc3QgVFZhcmlhYmxlICZ2YXIgPSBkZWNsLnN5bWJvbC52YXJpYWJsZSgpOworICAg
ICAgICBpZiAobmVlZHNSZW5hbWluZyh2YXIsIHRydWUpKQorICAgICAgICB7CisgICAgICAgICAg
ICBjb25zdCBUVmFyaWFibGUgJnJWYXIgPSBnZXRSZW5hbWVkT3JPcmlnaW5hbCh2YXIpOworICAg
ICAgICAgICAgcmV0dXJuICpuZXcgVEludGVybURlY2xhcmF0aW9uKCZyVmFyLCBkZWNsLmluaXRF
eHByKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVjbE5vZGU7CisgICAgfQorCiAgICAg
UG9zdFJlc3VsdCB2aXNpdEZ1bmN0aW9uRGVmaW5pdGlvblBvc3QoVEludGVybUZ1bmN0aW9uRGVm
aW5pdGlvbiAmZnVuY0RlZk5vZGUpIG92ZXJyaWRlCiAgICAgewogICAgICAgICBUSW50ZXJtRnVu
Y3Rpb25Qcm90b3R5cGUgJmZ1bmNQcm90b05vZGUgPSAqZnVuY0RlZk5vZGUuZ2V0RnVuY3Rpb25Q
cm90b3R5cGUoKTsKQEAgLTQxNCw2ICs0MzMsMTEgQEAgY2xhc3MgUmV3cml0ZXIgOiBwdWJsaWMg
VEludGVybVJlYnVpbGQKICAgICAgICAgfQogICAgICAgICByZXR1cm4gYWdncmVnYXRlTm9kZTsK
ICAgICB9CisKKyAgICBjb25zdCB2b2lkIHByZWRlZmluZU5hbWUoY29uc3QgSW1tdXRhYmxlU3Ry
aW5nIG5hbWUsIHN0ZDo6c3RyaW5nIHByZVBvcHVsYXRlZE5hbWUpCisgICAgeworICAgICAgICBt
UHJlZGVmaW5lZE5hbWVzW25hbWVdID0gcHJlUG9wdWxhdGVkTmFtZTsKKyAgICB9CiB9OwogCiB9
ICAvLyBhbm9ueW1vdXMgbmFtZXNwYWNlCkBAIC00MjYsNiArNDUwLDExIEBAIGJvb2wgc2g6OlJl
d3JpdGVLZXl3b3JkcyhUQ29tcGlsZXIgJmNvbXBpbGVyLAogICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IHN0ZDo6c2V0PEltbXV0YWJsZVN0cmluZz4gJmtleXdvcmRzKQogewogICAgIFJl
d3JpdGVyIHJld3JpdGVyKGNvbXBpbGVyLCBpZEdlbiwga2V5d29yZHMpOworICAgIGNvbnN0IGF1
dG8gJmlucHV0QXR0cnMgICAgID0gY29tcGlsZXIuZ2V0QXR0cmlidXRlcygpOworICAgIGZvcihj
b25zdCBhdXRvICYgdmFyIDogaW5wdXRBdHRycykKKyAgICB7CisgICAgICAgIHJld3JpdGVyLnBy
ZWRlZmluZU5hbWUoSW1tdXRhYmxlU3RyaW5nKHZhci5uYW1lKSwgdmFyLm1hcHBlZE5hbWUpOwor
ICAgIH0KICAgICBpZiAoIXJld3JpdGVyLnJlYnVpbGRSb290KHJvb3QpKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwo=
</data>
<flag name="commit-queue"
          id="443609"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>