<?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>217660</bug_id>
          
          <creation_ts>2020-10-13 11:44:53 -0700</creation_ts>
          <short_desc>Plumb OptionSet&lt;WheelEventProcessingSteps&gt; through the wheel event handling code</short_desc>
          <delta_ts>2020-10-13 13:53:59 -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>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1697317</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-13 11:44:53 -0700</bug_when>
    <thetext>Plumb OptionSet&lt;WheelEventProcessingSteps&gt; through the wheel event handling code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697318</commentid>
    <comment_count>1</comment_count>
      <attachid>411231</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-13 11:46:39 -0700</bug_when>
    <thetext>Created attachment 411231
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697319</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-10-13 11:47:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/70259470&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697327</commentid>
    <comment_count>3</comment_count>
      <attachid>411233</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-13 11:57:19 -0700</bug_when>
    <thetext>Created attachment 411233
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697386</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-13 13:53:58 -0700</bug_when>
    <thetext>Committed r268417: &lt;https://trac.webkit.org/changeset/268417&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411233.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411231</attachid>
            <date>2020-10-13 11:46:39 -0700</date>
            <delta_ts>2020-10-13 11:57:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217660-20201013114638.patch</filename>
            <type>text/plain</type>
            <size>32062</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGRjYTU2ZjYwYTRjYTVm
ZmMzN2M3ZWRkYmI3Zjk1OTkzYTgzYmQzNC4uMWNiOWM0ZDY1MThlY2Y1ZWVmNmU3M2Q3ZGY2MWEz
NDg0NGEzMmJkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTEwLTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBsdW1iIE9wdGlv
blNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiB0aHJvdWdoIHRoZSB3aGVlbCBldmVudCBo
YW5kbGluZyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc2NjAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBc3luYyBzY3JvbGxpbmcgaW4gcGFzc2l2ZSB3aGVlbCBldmVudCByZWdpb25zIHdpbGwg
cmVxdWlyZSB0aGF0IHRoZSBtYWluIHRocmVhZCBldmVudAorICAgICAgICBoYW5kbGluZyBjb2Rl
IGtub3dzIHRoYXQgdGhlIHNjcm9sbGluZyB0aHJlYWQgZGlkIHRoZSBzY3JvbGxpbmcuIFRvIHBy
b3BhZ2F0ZSB0aGlzCisgICAgICAgIGluZm9ybWF0aW9uLCBwbHVtYiBPcHRpb25TZXQ8V2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwcz4gdGhyb3VnaC4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFu
Z2UuCisKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZl
bnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KToKKyAgICAgICAgKiBwYWdlL0V2ZW50
SGFuZGxlci5oOgorICAgICAgICAqIHBhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6d2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQpOgorICAgICAgICAqIHBhZ2Uv
bWFjL0V2ZW50SGFuZGxlck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
d2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnBhc3NXaGVlbEV2
ZW50VG9XaWRnZXQpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6ZGV0ZXJtaW5lV2hlZWxFdmVudFBy
b2Nlc3NpbmcpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxF
dmVudCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0OjpoYW5kbGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OldoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdDo6dW5oYW5kbGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L1BsYXRmb3JtV2hlZWxFdmVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToK
KyAgICAgICAgKiByZXBsYXkvVXNlcklucHV0QnJpZGdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlVzZXJJbnB1dEJyaWRnZTo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogcmVwbGF5L1Vz
ZXJJbnB1dEJyaWRnZS5oOgorCiAyMDIwLTEwLTEyICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91
aGFsbGF3YUBhcHBsZS5jb20+CiAKICAgICAgICAgW0dQVSBQcm9jZXNzXTogUmVwbGFjZSAiSW1h
Z2VCdWZmZXJJZGVudGlmaWVyIiBieSBhIGdlbmVyaWMgaWRlbnRpZmllciBuYW1lZCAiUmVtb3Rl
UmVzb3VyY2VJZGVudGlmaWVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlYzQwNTkyNjY4MGY4OTQ0NTBlYzhiMmIx
ZGUzZTZiMmM1MDAyMDQ5Li40ZTllMzg1YzI4YmQxZmY4ODQ0MWViMTJiYzRmZTM5NzdjMTM2NDNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTEwLTEzICBTaW1vbiBGcmFzZXIgIDxz
aW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBsdW1iIE9wdGlvblNldDxXaGVlbEV2
ZW50UHJvY2Vzc2luZ1N0ZXBzPiB0aHJvdWdoIHRoZSB3aGVlbCBldmVudCBoYW5kbGluZyBjb2Rl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc2NjAK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBc3luYyBz
Y3JvbGxpbmcgaW4gcGFzc2l2ZSB3aGVlbCBldmVudCByZWdpb25zIHdpbGwgcmVxdWlyZSB0aGF0
IHRoZSBtYWluIHRocmVhZCBldmVudAorICAgICAgICBoYW5kbGluZyBjb2RlIGtub3dzIHRoYXQg
dGhlIHNjcm9sbGluZyB0aHJlYWQgZGlkIHRoZSBzY3JvbGxpbmcuIFRvIHByb3BhZ2F0ZSB0aGlz
CisgICAgICAgIGluZm9ybWF0aW9uLCBwbHVtYiBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwcz4gdGhyb3VnaC4KKworICAgICAgICBObyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hl
cjo6d2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0
Y2hXaGVlbEV2ZW50VmlhTWFpblRocmVhZCk6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0
Y2hlcjo6ZGlzcGF0Y2hXaGVlbEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2Uv
RXZlbnREaXNwYXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZTo6d2hlZWxFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaDoKKwogMjAyMC0xMC0xMiAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc106IFJlcGxhY2UgIkltYWdlQnVmZmVy
SWRlbnRpZmllciIgYnkgYSBnZW5lcmljIGlkZW50aWZpZXIgbmFtZWQgIlJlbW90ZVJlc291cmNl
SWRlbnRpZmllciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA0OTM1Yjcz
ZTJlZjYxNWNiNWIyZjA3NTU0ZWVhMjBkNGMwNmQ2NTRiLi5mNDBkNjNhZDBhNGQzZDI1NDU1NmE2
MTRlZDQ0NDVmZjY0ZjU3Njc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBA
IC0yODYyLDcgKzI4NjIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6Y29tcGxldGVXaWRnZXRXaGVl
bEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIGNvbgogICAgIHJldHVybiBw
bGF0Zm9ybUNvbXBsZXRlUGxhdGZvcm1XaWRnZXRXaGVlbEV2ZW50KGV2ZW50LCAqd2lkZ2V0Lmdl
dCgpLCBzY3JvbGxhYmxlQXJlYSk7CiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVl
bEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQpCitib29sIEV2ZW50SGFuZGxl
cjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBPcHRp
b25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gcHJvY2Vzc2luZ1N0ZXBzKQogewogICAg
IGF1dG8qIGRvY3VtZW50ID0gbV9mcmFtZS5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQp
CkBAIC0yODg2LDcgKzI4ODYsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVu
dChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KQogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShDT0NPQSkKLSAgICBMT0dfV0lUSF9TVFJFQU0oV2hlZWxFdmVudFRlc3RNb25pdG9yLCBzdHJl
YW0gPDwgIkV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudCBvbiBtYWluIHRocmVhZCwgcGhh
c2UgIiA8PCBldmVudC5waGFzZSgpIDw8ICIgbW9tZW50dW0gcGhhc2UgIiA8PCBldmVudC5tb21l
bnR1bVBoYXNlKCkpOworICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAi
RXZlbnRIYW5kbGVyOjpoYW5kbGVXaGVlbEV2ZW50ICIgPDwgZXZlbnQgPDwgIiBwcm9jZXNzaW5n
IHN0ZXBzICIgPDwgcHJvY2Vzc2luZ1N0ZXBzKTsKICAgICBpZiAoYXV0byBtb25pdG9yID0gbV9m
cmFtZS5wYWdlKCktPndoZWVsRXZlbnRUZXN0TW9uaXRvcigpKQogICAgICAgICBtb25pdG9yLT5y
ZWNlaXZlZFdoZWVsRXZlbnQoZXZlbnQpOwogCkBAIC0yOTE4LDcgKzI5MTgsNyBAQCBib29sIEV2
ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2
ZW50KQogICAgIGlmIChlbGVtZW50KSB7CiAgICAgICAgIGlmIChpc092ZXJXaWRnZXQpIHsKICAg
ICAgICAgICAgIGlmIChXZWFrUHRyPFdpZGdldD4gd2lkZ2V0ID0gd2lkZ2V0Rm9yRWxlbWVudCgq
ZWxlbWVudCkpIHsKLSAgICAgICAgICAgICAgICBpZiAocGFzc1doZWVsRXZlbnRUb1dpZGdldChl
dmVudCwgKndpZGdldC5nZXQoKSkpCisgICAgICAgICAgICAgICAgaWYgKHBhc3NXaGVlbEV2ZW50
VG9XaWRnZXQoZXZlbnQsICp3aWRnZXQuZ2V0KCksIHByb2Nlc3NpbmdTdGVwcykpCiAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBjb21wbGV0ZVdpZGdldFdoZWVsRXZlbnQoZXZlbnQsIHdpZGdl
dCwgc2Nyb2xsYWJsZUFyZWEpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC00NDQ4LDEy
ICs0NDQ4LDEyIEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzTW91c2VSZWxlYXNlRXZlbnRUb1N1
YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRm
b3JtV2hlZWxFdmVudCYgZXZlbnQsIFdpZGdldCYgd2lkZ2V0KQorYm9vbCBFdmVudEhhbmRsZXI6
OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwg
V2lkZ2V0JiB3aWRnZXQsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9j
ZXNzaW5nU3RlcHMpCiB7CiAgICAgaWYgKCFpczxGcmFtZVZpZXc+KHdpZGdldCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAotICAgIHJldHVybiBkb3duY2FzdDxGcmFtZVZpZXc+KHdpZGdldCku
ZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVXaGVlbEV2ZW50KGV2ZW50KTsKKyAgICByZXR1
cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGFu
ZGxlV2hlZWxFdmVudChldmVudCwgcHJvY2Vzc2luZ1N0ZXBzKTsKIH0KIAogYm9vbCBFdmVudEhh
bmRsZXI6OnRhYnNUb0FsbEZvcm1Db250cm9scyhLZXlib2FyZEV2ZW50KikgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDE3MWFlNDdmNzdhNjdiM2QxMzJmMDRjZTZiZWJi
ODUzNDRkYzFkZTYuLmU4NTU4ODY1NjU0ZjkzNDM4NWQyODBlYjM5ZmZhMTgzMzRhOGNkOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAtOTYsNiArOTYsOCBAQCBjbGFzcyBXaWRn
ZXQ7CiAKIHN0cnVjdCBEcmFnU3RhdGU7CiAKK2VudW0gY2xhc3MgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwcyA6IHVpbnQ4X3Q7CisKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogZXh0ZXJuIGNv
bnN0IGludCBMaW5rRHJhZ0h5c3RlcmVzaXM7CiBleHRlcm4gY29uc3QgaW50IEltYWdlRHJhZ0h5
c3RlcmVzaXM7CkBAIC0yMDYsNyArMjA4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaGFuZGxlTW91
c2VNb3ZlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgSGl0VGVzdFJlc3VsdCogPSBu
dWxscHRyLCBib29sIG9ubHlVcGRhdGVTY3JvbGxiYXJzID0gZmFsc2UpOwogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50Jik7CiAgICAgYm9vbCBoYW5kbGVNb3VzZUZvcmNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3Vz
ZUV2ZW50Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0
IFBsYXRmb3JtV2hlZWxFdmVudCYpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxlV2hl
ZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8V2hlZWxFdmVudFBy
b2Nlc3NpbmdTdGVwcz4pOwogICAgIHZvaWQgZGVmYXVsdFdoZWVsRXZlbnRIYW5kbGVyKE5vZGUq
LCBXaGVlbEV2ZW50Jik7CiAgICAgYm9vbCBoYW5kbGVQYXN0ZUdsb2JhbFNlbGVjdGlvbihjb25z
dCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKIApAQCAtNDUwLDcgKzQ1Miw3IEBAIHByaXZhdGU6CiAK
ICAgICBib29sIHBhc3NNb3VzZURvd25FdmVudFRvV2lkZ2V0KFdpZGdldCopOwogCi0gICAgYm9v
bCBwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFdpZGdl
dCYpOworICAgIGJvb2wgcGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmLCBXaWRnZXQmLCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4pOwog
ICAgIHZvaWQgZGV0ZXJtaW5lV2hlZWxFdmVudFRhcmdldChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmLCBSZWZQdHI8RWxlbWVudD4mIGV2ZW50VGFyZ2V0LCBXZWFrUHRyPFNjcm9sbGFibGVBcmVh
PiYsIGJvb2wmIGlzT3ZlcldpZGdldCk7CiAgICAgdm9pZCByZWNvcmRXaGVlbEV2ZW50Rm9yRGVs
dGFGaWx0ZXIoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CiAgICAgYm9vbCBwcm9jZXNzV2hl
ZWxFdmVudEZvclNjcm9sbGluZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBjb25zdCBXZWFr
UHRyPFNjcm9sbGFibGVBcmVhPiYpOwpAQCAtNjI1LDYgKzYyNyw3IEBAIHByaXZhdGU6CiAgICAg
ZG91YmxlIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uIHsgMCB9OwogICAgIGJvb2wgbV9kaWRTdGFy
dERyYWcgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc0hhbmRsaW5nV2hlZWxFdmVudCB7IGZhbHNl
IH07CisgICAgYm9vbCBtX2N1cnJlbnRXaGVlbEV2ZW50QWxsb3dzU2Nyb2xsaW5nIHsgdHJ1ZSB9
OwogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICAgICBib29sIG1fc2hvdWxkQWxsb3dNb3Vz
ZURvd25Ub1N0YXJ0RHJhZyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2lvcy9FdmVudEhhbmRsZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lvcy9FdmVu
dEhhbmRsZXJJT1MubW0KaW5kZXggNDY0YWRjYTE5Y2ZiMTJkMmNkNTI2MmZjYmVmZTY4ODJlNGVh
MjA4Yy4uYzU1NTI0NTcyMWU5ZmYyMzBlZDViZGM5ZGQyMmU1ZjE0MGI4N2NmMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQpAQCAtMTA3LDcgKzEwNyw3IEBA
IGJvb2wgRXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50KFdlYkV2ZW50ICpldmVudCkKIAogICAgIEN1
cnJlbnRFdmVudFNjb3BlIHNjb3BlKGV2ZW50KTsKIAotICAgIGJvb2wgZXZlbnRXYXNIYW5kbGVk
ID0gaGFuZGxlV2hlZWxFdmVudChQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1X
aGVlbEV2ZW50KGV2ZW50KSk7CisgICAgYm9vbCBldmVudFdhc0hhbmRsZWQgPSBoYW5kbGVXaGVl
bEV2ZW50KFBsYXRmb3JtRXZlbnRGYWN0b3J5OjpjcmVhdGVQbGF0Zm9ybVdoZWVsRXZlbnQoZXZl
bnQpLCB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JTY3JvbGxpbmcs
IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNo
IH0pOwogICAgIGV2ZW50Lndhc0hhbmRsZWQgPSBldmVudFdhc0hhbmRsZWQ7CiAgICAgcmV0dXJu
IGV2ZW50V2FzSGFuZGxlZDsKIH0KQEAgLTQxOSw3ICs0MTksNyBAQCBib29sIEV2ZW50SGFuZGxl
cjo6cGFzc1N1YmZyYW1lRXZlbnRUb1N1YmZyYW1lKE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3Vs
dHMmIGV2ZQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NX
aGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgV2lkZ2V0JiB3aWRn
ZXQpCitib29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmLCBXaWRnZXQmIHdpZGdldCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM+KQogewogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KaW5kZXggM2YyNThmZDg0ZDNj
MTk5MDhjODYyMDcxNDNhNDlhZWRmNjdlOTJkMS4uZmVkNTcxZmM5NWM0NzRiNThhMTIzOGJmNjQ1
MzQxYmVmZTI0YjM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRXZlbnRI
YW5kbGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1h
Yy5tbQpAQCAtNTEsNiArNTEsNyBAQAogI2ltcG9ydCAiUGFzdGVib2FyZC5oIgogI2ltcG9ydCAi
UGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaCIKICNpbXBvcnQgIlBsYXRmb3JtU2NyZWVuLmgiCisj
aW1wb3J0ICJQbGF0Zm9ybVdoZWVsRXZlbnQuaCIKICNpbXBvcnQgIlJhbmdlLmgiCiAjaW1wb3J0
ICJSZW5kZXJMYXllci5oIgogI2ltcG9ydCAiUmVuZGVyTGlzdEJveC5oIgpAQCAtMTQ1LDcgKzE0
Niw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBDdXJyZW50RXZlbnRTY29wZSBzY29wZShldmVudCwg
bmlsKTsKLSAgICByZXR1cm4gaGFuZGxlV2hlZWxFdmVudChQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6
Y3JlYXRlUGxhdGZvcm1XaGVlbEV2ZW50KGV2ZW50LCBwYWdlLT5jaHJvbWUoKS5wbGF0Zm9ybVBh
Z2VDbGllbnQoKSkpOworICAgIHJldHVybiBoYW5kbGVXaGVlbEV2ZW50KFBsYXRmb3JtRXZlbnRG
YWN0b3J5OjpjcmVhdGVQbGF0Zm9ybVdoZWVsRXZlbnQoZXZlbnQsIHBhZ2UtPmNocm9tZSgpLnBs
YXRmb3JtUGFnZUNsaWVudCgpKSwgeyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhy
ZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9y
RE9NRXZlbnREaXNwYXRjaCB9KTsKIH0KIAogYm9vbCBFdmVudEhhbmRsZXI6OmtleUV2ZW50KE5T
RXZlbnQgKmV2ZW50KQpAQCAtNDY3LDcgKzQ2OCw3IEBAIHN0YXRpYyB2b2lkIHNlbGZSZXRhaW5p
bmdOU1Njcm9sbFZpZXdTY3JvbGxXaGVlbChOU1Njcm9sbFZpZXcgKnNlbGYsIFNFTCBzZWxlY3Rv
CiAgICAgICAgIENGUmVsZWFzZSgoX19icmlkZ2UgQ0ZUeXBlUmVmKXNlbGYpOwogfQogCi1ib29s
IEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0Zm9ybVdoZWVs
RXZlbnQmIHdoZWVsRXZlbnQsIFdpZGdldCYgd2lkZ2V0KQorYm9vbCBFdmVudEhhbmRsZXI6OnBh
c3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
LCBXaWRnZXQmIHdpZGdldCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHBy
b2Nlc3NpbmdTdGVwcykKIHsKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIApAQCAt
NDc3LDcgKzQ3OCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwKICAgICAgICAgaWYgKCFpczxG
cmFtZVZpZXc+KHdpZGdldCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAg
cmV0dXJuIGRvd25jYXN0PEZyYW1lVmlldz4od2lkZ2V0KS5mcmFtZSgpLmV2ZW50SGFuZGxlcigp
LmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCk7CisgICAgICAgIHJldHVybiBkb3duY2FzdDxG
cmFtZVZpZXc+KHdpZGdldCkuZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVXaGVlbEV2ZW50
KHdoZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVwcyk7CiAgICAgfQogCiAgICAgaWYgKFtjdXJyZW50
TlNFdmVudCgpIHR5cGVdICE9IE5TRXZlbnRUeXBlU2Nyb2xsV2hlZWwgfHwgbV9zZW5kaW5nRXZl
bnRUb1N1YnZpZXcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWUuY3BwCmluZGV4IGU2N2I5YTY0YzJiOTlmZDZjYTYzYmQ2YzcxOWQ5MzI3NGQ5N2YyYWUu
LmMzZTA3OTlkZjljZTg4N2UzYTI1YTc3ODcxNDJlNDM5MWMyMTcxZjEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuY3BwCkBAIC02OCwxNiArNjgs
MjAgQEAgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IFNjcm9sbGluZ1RyZWU6
OmRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW4KICAgICAvLyBUaGlzIG1ldGhvZCBpcyBpbnZv
a2VkIGJ5IHRoZSBldmVudCBoYW5kbGluZyB0aHJlYWQKICAgICBMb2NrSG9sZGVyIGxvY2sobV90
cmVlU3RhdGVNdXRleCk7CiAKLSAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0
cmVhbSA8PCAiU2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3Vz
bHkgIiA8PCB3aGVlbEV2ZW50IDw8ICIgaGF2ZSBsYXRjaGVkIG5vZGUgIiA8PCBtX2xhdGNoaW5n
Q29udHJvbGxlci5sYXRjaGVkTm9kZUZvckV2ZW50KHdoZWVsRXZlbnQsIG1fYWxsb3dMYXRjaGlu
ZykpOwotICAgIGlmIChtX2xhdGNoaW5nQ29udHJvbGxlci5sYXRjaGVkTm9kZUZvckV2ZW50KHdo
ZWVsRXZlbnQsIG1fYWxsb3dMYXRjaGluZykpCisgICAgYXV0byBsYXRjaGVkTm9kZSA9IG1fbGF0
Y2hpbmdDb250cm9sbGVyLmxhdGNoZWROb2RlRm9yRXZlbnQod2hlZWxFdmVudCwgbV9hbGxvd0xh
dGNoaW5nKTsKKyAgICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsTGF0Y2hpbmcsIHN0cmVhbSA8PCAi
U2Nyb2xsaW5nVHJlZTo6c2hvdWxkSGFuZGxlV2hlZWxFdmVudFN5bmNocm9ub3VzbHkgIiA8PCB3
aGVlbEV2ZW50IDw8ICIgaGF2ZSBsYXRjaGVkIG5vZGUgIiA8PCBsYXRjaGVkTm9kZSk7CisgICAg
aWYgKGxhdGNoZWROb2RlKQogICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0
ZXBzOjpTY3JvbGxpbmdUaHJlYWQgfTsKIAogICAgIG1fbGF0Y2hpbmdDb250cm9sbGVyLnJlY2Vp
dmVkV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBtX2FsbG93TGF0Y2hpbmcpOwogCi0gICAgaWYgKCFt
X3RyZWVTdGF0ZS5ldmVudFRyYWNraW5nUmVnaW9ucy5pc0VtcHR5KCkgJiYgbV9yb290Tm9kZSkg
ewotICAgICAgICBGbG9hdFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOwot
ICAgICAgICBwb3NpdGlvbi5tb3ZlKG1fcm9vdE5vZGUtPnZpZXdUb0NvbnRlbnRzT2Zmc2V0KG1f
dHJlZVN0YXRlLm1haW5GcmFtZVNjcm9sbFBvc2l0aW9uKSk7CisgICAgaWYgKCFtX3Jvb3ROb2Rl
KQorICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdU
aHJlYWQgfTsKKworICAgIEZsb2F0UG9pbnQgcG9zaXRpb24gPSB3aGVlbEV2ZW50LnBvc2l0aW9u
KCk7CisgICAgcG9zaXRpb24ubW92ZShtX3Jvb3ROb2RlLT52aWV3VG9Db250ZW50c09mZnNldCht
X3RyZWVTdGF0ZS5tYWluRnJhbWVTY3JvbGxQb3NpdGlvbikpOwogCisgICAgaWYgKCFtX3RyZWVT
dGF0ZS5ldmVudFRyYWNraW5nUmVnaW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgY29uc3QgRXZl
bnROYW1lcyYgbmFtZXMgPSBldmVudE5hbWVzKCk7CiAgICAgICAgIEludFBvaW50IHJvdW5kZWRQ
b3NpdGlvbiA9IHJvdW5kZWRJbnRQb2ludChwb3NpdGlvbik7CiAKQEAgLTg5LDEwICs5MywxMSBA
QCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gU2Nyb2xsaW5nVHJlZTo6ZGV0
ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbgogICAgICAgICBpZiAoaXNTeW5jaHJvbm91c0Rpc3Bh
dGNoUmVnaW9uKQogICAgICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVw
czo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFp
blRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfTsKICAgICB9CisKICAgICByZXR1cm4geyBXaGVl
bEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQgfTsKIH0KIAotV2hlZWxFdmVu
dEhhbmRsaW5nUmVzdWx0IFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFNj
cm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3
aGVlbEV2ZW50LCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gcHJvY2Vzc2lu
Z1N0ZXBzKQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiXG5T
Y3JvbGxpbmdUcmVlICIgPDwgdGhpcyA8PCAiIGhhbmRsZVdoZWVsRXZlbnQgIiA8PCB3aGVlbEV2
ZW50KTsKIApAQCAtMTQzLDYgKzE0OCw3IEBAIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3Jv
bGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVuCiAgICAg
ICAgIHJldHVybiBoYW5kbGVXaGVlbEV2ZW50V2l0aE5vZGUod2hlZWxFdmVudCwgbm9kZS5nZXQo
KSk7CiAgICAgfSgpOwogCisgICAgcmVzdWx0LnN0ZXBzLmFkZChwcm9jZXNzaW5nU3RlcHMgJiBX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCk7
CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsaW5nVHJlZS5oCmluZGV4IDk2ODBhOTcxODYzMmRmYTM4NmE5YmUwNmY3YjZhOWM1
NmVmYWExYzMuLjQ0MTNmN2VhMzJhNTA2YWJhZmNjMWRmYjZiNmI1MDFjNjVkYjA0MzkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTYxLDEz
ICs2MSwxMyBAQCBzdHJ1Y3QgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IHsKICAgICBib29sIHdh
c0hhbmRsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbmVlZHNNYWluVGhyZWFkUHJvY2Vzc2luZygp
IGNvbnN0IHsgcmV0dXJuIHN0ZXBzLmNvbnRhaW5zQW55KHsgV2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6
TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2ggfSk7IH0KIAotICAgIHN0YXRpYyBXaGVlbEV2
ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxlZCgpCisgICAgc3RhdGljIFdoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdCBoYW5kbGVkKE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBzdGVw
cyA9IHsgfSkKICAgICB7Ci0gICAgICAgIHJldHVybiB7IHsgfSwgdHJ1ZSB9OworICAgICAgICBy
ZXR1cm4geyBzdGVwcywgdHJ1ZSB9OwogICAgIH0KLSAgICBzdGF0aWMgV2hlZWxFdmVudEhhbmRs
aW5nUmVzdWx0IHVuaGFuZGxlZCgpCisgICAgc3RhdGljIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3Vs
dCB1bmhhbmRsZWQoT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHN0ZXBzID0g
eyB9KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHsgeyB9LCBmYWxzZSB9OworICAgICAgICByZXR1
cm4geyBzdGVwcywgZmFsc2UgfTsKICAgICB9CiAgICAgc3RhdGljIFdoZWVsRXZlbnRIYW5kbGlu
Z1Jlc3VsdCByZXN1bHQoYm9vbCBoYW5kbGVkKQogICAgIHsKQEAgLTkwLDcgKzkwLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0QXN5bmNGcmFtZU9yT3ZlcmZsb3dTY3JvbGxpbmdFbmFibGVkKGJv
b2wpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM+IGRldGVybWluZVdoZWVsRXZlbnRQcm9jZXNzaW5nKGNvbnN0IFBsYXRmb3JtV2hlZWxF
dmVudCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgV2hlZWxFdmVudEhhbmRsaW5nUmVz
dWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CisgICAgV0VC
Q09SRV9FWFBPUlQgdmlydHVhbCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxlV2hlZWxF
dmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwcz4gPSB7IH0pOwogCiAgICAgYm9vbCBpc1J1YmJlckJhbmRJblByb2dyZXNzRm9y
Tm9kZShTY3JvbGxpbmdOb2RlSUQpOwogICAgIHZvaWQgc2V0UnViYmVyQmFuZGluZ0luUHJvZ3Jl
c3NGb3JOb2RlKFNjcm9sbGluZ05vZGVJRCwgYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAppbmRleCAyM2Y1
ZjBlZmYwNTU4OGFmMjgwYjg2ZDk3ZTRjMmJiZGQxZWMyZTJiLi5hMTAzMjdhZWNlYWNjYmQ0YTg5
MjlkZDViY2I1ZDU2YzBlNWZjY2JjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTU1LDEwICs1NSwxMCBA
QCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6On5UaHJlYWRlZFNjcm9sbGluZ1RyZWUoKQogICAgIEFT
U0VSVCghbV9zY3JvbGxpbmdDb29yZGluYXRvcik7CiB9CiAKLVdoZWVsRXZlbnRIYW5kbGluZ1Jl
c3VsdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQorV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IFRocmVh
ZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmIHdoZWVsRXZlbnQsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9j
ZXNzaW5nU3RlcHMpCiB7CiAgICAgQVNTRVJUKFNjcm9sbGluZ1RocmVhZDo6aXNDdXJyZW50VGhy
ZWFkKCkpOwotICAgIHJldHVybiBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KHdoZWVs
RXZlbnQpOworICAgIHJldHVybiBTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KHdoZWVs
RXZlbnQsIHByb2Nlc3NpbmdTdGVwcyk7CiB9CiAKIGJvb2wgVGhyZWFkZWRTY3JvbGxpbmdUcmVl
OjpoYW5kbGVXaGVlbEV2ZW50QWZ0ZXJNYWluVGhyZWFkKGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCwgU2Nyb2xsaW5nTm9kZUlEIHRhcmdldE5vZGVJRCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5k
ZXggYjI1ZmYxNGNhMTJjYjI4YTdjYTE5ZjAyYWIxYWZhYzQ4NmE5NTEzZi4uOWNkYjk2MTFmOTA1
MjM3NzAyMGYyZDE0OTllYzc1ZDVjYTg2MzRlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTQ1LDcgKzQ1LDcg
QEAgY2xhc3MgVGhyZWFkZWRTY3JvbGxpbmdUcmVlIDogcHVibGljIFNjcm9sbGluZ1RyZWUgewog
cHVibGljOgogICAgIHZpcnR1YWwgflRocmVhZGVkU2Nyb2xsaW5nVHJlZSgpOwogCi0gICAgV2hl
ZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50Jikgb3ZlcnJpZGU7CisgICAgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdo
ZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHM+KSBvdmVycmlkZTsKIAogICAgIGJvb2wgaGFuZGxlV2hlZWxFdmVudEFm
dGVyTWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBTY3JvbGxpbmdOb2RlSUQp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcApp
bmRleCA4YTE1YzhhYzQ0NzAxYWM3MzBjZjhiZjNhMWYwYjljMDA5YzEyZWQ3Li5mZmJkYmQzZDA1
NWY3ZDczNWYxZmVlYWNjNGFmOTc1OTRlNmM2MDgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QbGF0Zm9ybVdoZWVsRXZlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgVGV4dFN0cmVh
bSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcyBz
dGVwcykKICAgICBzd2l0Y2ggKHN0ZXBzKSB7CiAgICAgY2FzZSBXaGVlbEV2ZW50UHJvY2Vzc2lu
Z1N0ZXBzOjpTY3JvbGxpbmdUaHJlYWQ6IHRzIDw8ICJzY3JvbGxpbmcgdGhyZWFkIjsgYnJlYWs7
CiAgICAgY2FzZSBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xs
aW5nOiB0cyA8PCAibWFpbiB0aHJlYWQgc2Nyb2xsaW5nIjsgYnJlYWs7Ci0gICAgY2FzZSBXaGVl
bEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaDogdHMg
PDwgIm1haW4gdGhyZWFkIERPTSBldm5ldCBkaXNwYXRjaCI7IGJyZWFrOworICAgIGNhc2UgV2hl
ZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2g6IHRz
IDw8ICJtYWluIHRocmVhZCBET00gZXZlbnQgZGlzcGF0Y2giOyBicmVhazsKICAgICB9CiAgICAg
cmV0dXJuIHRzOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1
dEJyaWRnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvVXNlcklucHV0QnJpZGdlLmNwcApp
bmRleCA2NzlmOGVmYTkwYmY3MWU3MmE2ZDU2Mjg5NjYzNjMwNWEwN2RlODZjLi4yMGI2NDE1ZTZm
NDY4ZmQ2NjJhOGY0ZGIyMDU4NmZkYzU3ZjM4MGJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZXBsYXkvVXNlcklucHV0QnJpZGdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkv
VXNlcklucHV0QnJpZGdlLmNwcApAQCAtODcsOSArODcsOSBAQCBib29sIFVzZXJJbnB1dEJyaWRn
ZTo6aGFuZGxlQWNjZXNzS2V5RXZlbnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiBrZXlF
dmVudAogICAgIHJldHVybiBtX3BhZ2UuZm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFpbkZy
YW1lKCkuZXZlbnRIYW5kbGVyKCkuaGFuZGxlQWNjZXNzS2V5KGtleUV2ZW50KTsKIH0KIAotYm9v
bCBVc2VySW5wdXRCcmlkZ2U6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2
ZW50JiB3aGVlbEV2ZW50LCBJbnB1dFNvdXJjZSkKK2Jvb2wgVXNlcklucHV0QnJpZGdlOjpoYW5k
bGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9u
U2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHByb2Nlc3NpbmdTdGVwcywgSW5wdXRTb3Vy
Y2UpCiB7Ci0gICAgcmV0dXJuIG1fcGFnZS5tYWluRnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5k
bGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOworICAgIHJldHVybiBtX3BhZ2UubWFpbkZyYW1lKCku
ZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBwcm9jZXNzaW5nU3Rl
cHMpOwogfQogCiB2b2lkIFVzZXJJbnB1dEJyaWRnZTo6Zm9jdXNTZXRBY3RpdmUoYm9vbCBhY3Rp
dmUsIElucHV0U291cmNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJ
bnB1dEJyaWRnZS5oIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5oCmlu
ZGV4IDdjNzU5NGFlZWRjNjA1MjMyNzNiYmMwMGI0OWU2MWI5NWNjYmM5N2QuLjU0Y2M1MjdlMTky
MjU5OGRmNGNjOWRkZDZiNTBiYTE3OTUyNDk1ZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlcGxheS9Vc2VySW5wdXRCcmlkZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvVXNl
cklucHV0QnJpZGdlLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJTY3JvbGxUeXBlcy5o
IgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
CisjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTQxLDYgKzQyLDggQEAgY2xhc3MgUGxhdGZvcm1LZXlib2FyZEV2ZW50OwogY2xhc3MgUGxhdGZv
cm1Nb3VzZUV2ZW50OwogY2xhc3MgUGxhdGZvcm1XaGVlbEV2ZW50OwogCitlbnVtIGNsYXNzIFdo
ZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgOiB1aW50OF90OworCiAvLyBSZWFsIHVzZXIgaW5wdXRz
IGNvbWUgZnJvbSBXZWJLaXQgb3IgV2ViS2l0Mi4KIC8vIFN5bnRoZXRpYyBpbnB1dHMgY29tZSBm
cm9tIHdpdGhpbiBXZWJDb3JlIChpLmUuLCBmcm9tIHdlYiByZXBsYXkgb3IgZmFrZSBtb3VzZSBt
b3ZlcykuCiBlbnVtIGNsYXNzIElucHV0U291cmNlIHsKQEAgLTU4LDI0ICs2MSwyNCBAQCBwdWJs
aWM6CiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVV9FVkVOVCkKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGhhbmRsZUNvbnRleHRNZW51RXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgRnJh
bWUmLCBJbnB1dFNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKICNlbmRpZgotICAgIFdFQkNP
UkVfRVhQT1JUIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VF
dmVudCYsIElucHV0U291cmNlIHNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCBib29sIGhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91
c2VFdmVudCYsIElucHV0U291cmNlIHNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91
c2VFdmVudCYsIElucHV0U291cmNlIHNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKLSAgICBX
RUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZU1vdXNlTW92ZU9uU2Nyb2xsYmFyRXZlbnQoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiwgSW5wdXRTb3VyY2Ugc291cmNlID0gSW5wdXRTb3VyY2U6OlVz
ZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYsIElucHV0U291cmNlID0gSW5wdXRTb3VyY2U6OlVzZXIpOwor
ICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxlTW91c2VSZWxlYXNlRXZlbnQoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50JiwgSW5wdXRTb3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7CisgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9ybU1v
dXNlRXZlbnQmLCBJbnB1dFNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGhhbmRsZU1vdXNlTW92ZU9uU2Nyb2xsYmFyRXZlbnQoY29uc3QgUGxhdGZv
cm1Nb3VzZUV2ZW50JiwgSW5wdXRTb3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgYm9vbCBoYW5kbGVNb3VzZUZvcmNlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3Vz
ZUV2ZW50JiwgSW5wdXRTb3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7Ci0gICAgV0VCQ09SRV9F
WFBPUlQgYm9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIElu
cHV0U291cmNlIHNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKLSAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGhhbmRsZUtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYsIElucHV0
U291cmNlIHNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKLSAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGhhbmRsZUFjY2Vzc0tleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYsIElu
cHV0U291cmNlIHNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKLSAgICB2b2lkIGZvY3VzU2V0
QWN0aXZlKGJvb2wgYWN0aXZlLCBJbnB1dFNvdXJjZSBzb3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNl
cik7Ci0gICAgdm9pZCBmb2N1c1NldEZvY3VzZWQoYm9vbCBmb2N1c2VkLCBJbnB1dFNvdXJjZSBz
b3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3Jv
bGxSZWN1cnNpdmVseShTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBJbnB1dFNv
dXJjZSBzb3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBsb2dpY2FsU2Nyb2xsUmVjdXJzaXZlbHkoU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xs
R3JhbnVsYXJpdHksIElucHV0U291cmNlIHNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVl
bEV2ZW50JiwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+LCBJbnB1dFNvdXJj
ZSA9IElucHV0U291cmNlOjpVc2VyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZUtl
eUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYsIElucHV0U291cmNlID0gSW5wdXRT
b3VyY2U6OlVzZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxlQWNjZXNzS2V5RXZl
bnQoY29uc3QgUGxhdGZvcm1LZXlib2FyZEV2ZW50JiwgSW5wdXRTb3VyY2UgPSBJbnB1dFNvdXJj
ZTo6VXNlcik7CisgICAgdm9pZCBmb2N1c1NldEFjdGl2ZShib29sIGFjdGl2ZSwgSW5wdXRTb3Vy
Y2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7CisgICAgdm9pZCBmb2N1c1NldEZvY3VzZWQoYm9vbCBm
b2N1c2VkLCBJbnB1dFNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBib29sIHNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVs
YXJpdHksIElucHV0U291cmNlID0gSW5wdXRTb3VyY2U6OlVzZXIpOworICAgIFdFQkNPUkVfRVhQ
T1JUIGJvb2wgbG9naWNhbFNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24s
IFNjcm9sbEdyYW51bGFyaXR5LCBJbnB1dFNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKIAog
ICAgIC8vIE5hdmlnYXRpb24gQVBJcy4KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGxvYWRSZXF1
ZXN0KEZyYW1lTG9hZFJlcXVlc3QmJiwgSW5wdXRTb3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxvYWRGcmFtZShGcmFtZSosIE9wdGlvblNldDxS
ZWxvYWRPcHRpb24+LCBJbnB1dFNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHN0b3BMb2FkaW5nRnJhbWUoRnJhbWUqLCBJbnB1dFNvdXJjZSBzb3Vy
Y2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCB0cnlDbG9z
ZVBhZ2UoSW5wdXRTb3VyY2Ugc291cmNlID0gSW5wdXRTb3VyY2U6OlVzZXIpOworICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc3RvcExvYWRpbmdGcmFtZShGcmFtZSosIElucHV0U291cmNlID0gSW5w
dXRTb3VyY2U6OlVzZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdHJ5Q2xvc2VQYWdlKElu
cHV0U291cmNlID0gSW5wdXRTb3VyY2U6OlVzZXIpOwogCiBwcml2YXRlOgogICAgIFBhZ2UmIG1f
cGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMmJmZDI5Njcw
NWY5YWNlNjg4YTk1N2QzYTMwNTVjOWY0MGU3ZGNkMy4uMTAzOWNjMTU4YWQ3OWI4YWRkZjJkOTUw
N2Y0YzEwNjVmNTA3YzZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
QEAgLTgwLDcgKzgwLDYgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RpYWdub3N0aWNMb2dnaW5nQ2xp
ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWN0YXRpb25Db250ZXh0Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9EcmFnQWN0aW9ucy5oPgotI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRUcmFja2luZ1Jl
Z2lvbnMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkRldGFpbHMuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0ZvbnRBdHRyaWJ1dGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRl
clR5cGVzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9F
dmVudERpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZl
bnREaXNwYXRjaGVyLmNwcAppbmRleCAzZTE4YmM0YjAwOTE5NTBiMDE1NjczZTQyZjI3OTdhODI5
OGZkZDg5Li4yZWNmOTE0MTQ4OGU5YWFiYWJlZGM1ZDFhMWJiZDBmNTkyZDY2N2NlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5j
cHAKQEAgLTEyMSwxMyArMTIxLDE0IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50
KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlCiAgICAgfQog
I2VuZGlmCiAKKyAgICBhdXRvIHByb2Nlc3NpbmdTdGVwcyA9IE9wdGlvblNldDxXZWJDb3JlOjpX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1h
aW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoIH07CiAjaWYgRU5BQkxFKFNDUk9MTElOR19USFJF
QUQpCi0gICAgYXV0byBzZW50VG9TY3JvbGxpbmdUaHJlYWQgPSBbJl0oKSB7CisgICAgcHJvY2Vz
c2luZ1N0ZXBzID0gWyZdKCkgLT4gT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+
IHsKICAgICAgICAgTG9ja0hvbGRlciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKIAog
ICAgICAgICBhdXRvIHNjcm9sbGluZ1RyZWUgPSBtX3Njcm9sbGluZ1RyZWVzLmdldChwYWdlSUQp
OwogICAgICAgICBpZiAoIXNjcm9sbGluZ1RyZWUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgICAgICAgICByZXR1cm4geyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhy
ZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9y
RE9NRXZlbnREaXNwYXRjaCB9OwogICAgICAgICAKICAgICAgICAgLy8gRklYTUU6IEl0J3MgcHJl
dHR5IGhvcnJpYmxlIHRoYXQgd2UncmUgdXBkYXRpbmcgdGhlIGJhY2svZm9yd2FyZCBzdGF0ZSBo
ZXJlLgogICAgICAgICAvLyBXZWJDb3JlIHNob3VsZCBhbHdheXMga25vdyB0aGUgY3VycmVudCBz
dGF0ZSBhbmQga25vdyB3aGVuIGl0IGNoYW5nZXMgc28gdGhlCkBAIC0xMzgsMjUgKzEzOSwyNSBA
QCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudChQYWdlSWRlbnRpZmllciBwYWdlSUQs
IGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZQogCiAgICAgICAgIGF1dG8gcHJvY2Vzc2luZ1N0ZXBz
ID0gc2Nyb2xsaW5nVHJlZS0+ZGV0ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcocGxhdGZvcm1X
aGVlbEV2ZW50KTsKICAgICAgICAgaWYgKCFwcm9jZXNzaW5nU3RlcHMuY29udGFpbnMoV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkKSkKLSAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICAgICAgICAgIHJldHVybiBwcm9jZXNzaW5nU3RlcHM7CiAKICAgICAgICAg
c2Nyb2xsaW5nVHJlZS0+d2lsbFByb2Nlc3NXaGVlbEV2ZW50KCk7CiAKLSAgICAgICAgU2Nyb2xs
aW5nVGhyZWFkOjpkaXNwYXRjaChbc2Nyb2xsaW5nVHJlZSwgd2hlZWxFdmVudCwgcGxhdGZvcm1X
aGVlbEV2ZW50LCBwYWdlSUQsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAg
ICAgICAgICAgYXV0byByZXN1bHQgPSBzY3JvbGxpbmdUcmVlLT5oYW5kbGVXaGVlbEV2ZW50KHBs
YXRmb3JtV2hlZWxFdmVudCk7CisgICAgICAgIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goW3Nj
cm9sbGluZ1RyZWUsIHdoZWVsRXZlbnQsIHBsYXRmb3JtV2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0
ZXBzLCBwYWdlSUQsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAgICAgICAg
ICAgYXV0byByZXN1bHQgPSBzY3JvbGxpbmdUcmVlLT5oYW5kbGVXaGVlbEV2ZW50KHBsYXRmb3Jt
V2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBzKTsKIAogICAgICAgICAgICAgaWYgKHJlc3VsdC5u
ZWVkc01haW5UaHJlYWRQcm9jZXNzaW5nKCkpIHsKLSAgICAgICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5kaXNwYXRjaFdoZWVsRXZlbnRWaWFNYWluVGhyZWFkKHBhZ2VJRCwgd2hlZWxFdmVudCk7
CisgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlzcGF0Y2hXaGVlbEV2ZW50VmlhTWFp
blRocmVhZChwYWdlSUQsIHdoZWVsRXZlbnQsIHJlc3VsdC5zdGVwcyk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5z
ZW5kRGlkUmVjZWl2ZUV2ZW50KHBhZ2VJRCwgd2hlZWxFdmVudC50eXBlKCksIHJlc3VsdC53YXNI
YW5kbGVkKTsKICAgICAgICAgfSk7CiAKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJl
dHVybiBwcm9jZXNzaW5nU3RlcHM7CiAgICAgfSgpOwogCi0gICAgaWYgKHNlbnRUb1Njcm9sbGlu
Z1RocmVhZCkKKyAgICBpZiAocHJvY2Vzc2luZ1N0ZXBzLmNvbnRhaW5zKFdoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZCkpCiAgICAgICAgIHJldHVybjsKIAogI2Vsc2UK
QEAgLTE2Niw3ICsxNjcsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudChQYWdl
SWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZQogICAgIFVOVVNFRF9Q
QVJBTShjYW5SdWJiZXJCYW5kQXRCb3R0b20pOwogI2VuZGlmCiAKLSAgICBkaXNwYXRjaFdoZWVs
RXZlbnRWaWFNYWluVGhyZWFkKHBhZ2VJRCwgd2hlZWxFdmVudCk7CisgICAgZGlzcGF0Y2hXaGVl
bEV2ZW50VmlhTWFpblRocmVhZChwYWdlSUQsIHdoZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVwcyk7
CiB9CiAKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQpAQCAtMjMwLDE1ICsyMzEsMTUg
QEAgdm9pZCBFdmVudERpc3BhdGNoZXI6OmRpc3BhdGNoVG91Y2hFdmVudHMoKQogfQogI2VuZGlm
CiAKLXZvaWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFdoZWVsRXZlbnRWaWFNYWluVGhyZWFk
KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hl
ZWxFdmVudCkKK3ZvaWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFdoZWVsRXZlbnRWaWFNYWlu
VGhyZWFkKFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVu
dCYgd2hlZWxFdmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHByb2Nl
c3NpbmdTdGVwcykKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBSdW5M
b29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGFn
ZUlELCB3aGVlbEV2ZW50XSgpIG11dGFibGUgewotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaXNw
YXRjaFdoZWVsRXZlbnQocGFnZUlELCB3aGVlbEV2ZW50KTsKKyAgICBSdW5Mb29wOjptYWluKCku
ZGlzcGF0Y2goW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGFnZUlELCB3aGVlbEV2
ZW50LCBzdGVwcyA9IHByb2Nlc3NpbmdTdGVwcyAtIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6
OlNjcm9sbGluZ1RocmVhZF0oKSBtdXRhYmxlIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlz
cGF0Y2hXaGVlbEV2ZW50KHBhZ2VJRCwgd2hlZWxFdmVudCwgc3RlcHMpOwogICAgIH0pOwogfQog
Ci12b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hXaGVlbEV2ZW50KFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK3ZvaWQgRXZlbnREaXNw
YXRjaGVyOjpkaXNwYXRjaFdoZWVsRXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBX
ZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwcz4gcHJvY2Vzc2luZ1N0ZXBzKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CiAKQEAgLTI0Niw3ICsyNDcsNyBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hXaGVl
bEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdgogICAgIGlmICgh
d2ViUGFnZSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgd2ViUGFnZS0+d2hlZWxFdmVudCh3aGVl
bEV2ZW50KTsKKyAgICB3ZWJQYWdlLT53aGVlbEV2ZW50KHdoZWVsRXZlbnQsIHByb2Nlc3NpbmdT
dGVwcyk7CiB9CiAKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAppbmRleCAzNzJl
MjBlN2ExYzc2ZWMwMWY4NjM4MTMzYTI4ZDExMjY2ZTA5ZTAzLi4zNzVkMTNkYmE0NzE2YmFjYjIx
MTVjZGRmYjBkMTdjODlhNmIxY2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUg
IkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
UGFnZUlkZW50aWZpZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtV2hlZWxFdmVudC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvV2hlZWxFdmVudERlbHRhRmlsdGVyLmg+CiAjaW5jbHVkZSA8
bWVtb3J5PgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CkBAIC05Miw4ICs5Myw4IEBAIHByaXZh
dGU6CiAjZW5kaWYKIAogICAgIC8vIFRoaXMgaXMgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4K
LSAgICB2b2lkIGRpc3BhdGNoV2hlZWxFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgY29u
c3QgV2ViV2hlZWxFdmVudCYpOwotICAgIHZvaWQgZGlzcGF0Y2hXaGVlbEV2ZW50VmlhTWFpblRo
cmVhZChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgY29uc3QgV2ViV2hlZWxFdmVudCYpOworICAg
IHZvaWQgZGlzcGF0Y2hXaGVlbEV2ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBjb25zdCBX
ZWJXaGVlbEV2ZW50JiwgT3B0aW9uU2V0PFdlYkNvcmU6OldoZWVsRXZlbnRQcm9jZXNzaW5nU3Rl
cHM+KTsKKyAgICB2b2lkIGRpc3BhdGNoV2hlZWxFdmVudFZpYU1haW5UaHJlYWQoV2ViQ29yZTo6
UGFnZUlkZW50aWZpZXIsIGNvbnN0IFdlYldoZWVsRXZlbnQmLCBPcHRpb25TZXQ8V2ViQ29yZTo6
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4pOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVO
VFMpCiAgICAgdm9pZCBkaXNwYXRjaFRvdWNoRXZlbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGZmZWEzMmMyZDI0ZWQ4YjliYmE2ZDAz
NmUwMTkzNDdjOWUyNmFlODYuLmNiNzJiNWIxOWQxMTdhNDllZTEyODVlODExYjg5ZWQzNTZkMDli
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0yODU1LDIzICsyODU1LDIzIEBAIHZvaWQgV2ViUGFnZTo6bW91c2VFdmVudChjb25zdCBXZWJN
b3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkUmVjZWl2ZUV2ZW50KHN0YXRpY19jYXN0PHVpbnQzMl90Pihtb3VzZUV2ZW50LnR5cGUoKSks
IGhhbmRsZWQpKTsKIH0KIAotc3RhdGljIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJX
aGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBQYWdlKiBwYWdlKQorc3RhdGljIGJvb2wgaGFuZGxlV2hl
ZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBQYWdlKiBwYWdlLCBPcHRp
b25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gcHJvY2Vzc2luZ1N0ZXBzKQogewogICAg
IEZyYW1lJiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwogICAgIGlmICghZnJhbWUudmlldygp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgcGxhdGZv
cm1XaGVlbEV2ZW50ID0gcGxhdGZvcm0od2hlZWxFdmVudCk7Ci0gICAgcmV0dXJuIHBhZ2UtPnVz
ZXJJbnB1dEJyaWRnZSgpLmhhbmRsZVdoZWVsRXZlbnQocGxhdGZvcm1XaGVlbEV2ZW50KTsKKyAg
ICByZXR1cm4gcGFnZS0+dXNlcklucHV0QnJpZGdlKCkuaGFuZGxlV2hlZWxFdmVudChwbGF0Zm9y
bVdoZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVwcyk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6d2hlZWxF
dmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50KQordm9pZCBXZWJQYWdlOjp3aGVl
bEV2ZW50KGNvbnN0IFdlYldoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNldDxXaGVlbEV2
ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHMpCiB7CiAgICAgbV91c2VyQWN0aXZp
dHkuaW1wdWxzZSgpOwogCiAgICAgQ3VycmVudEV2ZW50IGN1cnJlbnRFdmVudCh3aGVlbEV2ZW50
KTsKIAotICAgIGJvb2wgaGFuZGxlZCA9IGhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCwgbV9w
YWdlLmdldCgpKTsKKyAgICBib29sIGhhbmRsZWQgPSBoYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZl
bnQsIG1fcGFnZS5nZXQoKSwgcHJvY2Vzc2luZ1N0ZXBzKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZUV2ZW50KHN0YXRpY19jYXN0PHVpbnQzMl90Pih3aGVl
bEV2ZW50LnR5cGUoKSksIGhhbmRsZWQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuaAppbmRleCAxYWZjZjI0NGJlN2QyMzYzMWQ3YzgxOGZmYzNmNmEyNjFj
NTY3NGI5Li5mMTIyOTVhNGRlYWUzNDg5ZmRjNGNlNGRkMDk0MDhiZWFhYWE5NjRlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05Miw2ICs5Miw3IEBA
CiAjaW5jbHVkZSA8cGFsL0h5c3RlcmVzaXNBY3Rpdml0eS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL01vbm90b25pY1RpbWUuaD4KKyNpbmNsdWRlIDx3dGYvT3B0
aW9uU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29w
Lmg+CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KQEAgLTIwNSw2ICsyMDYsNyBAQCBlbnVtIGNs
YXNzIFNlbGVjdGlvbkRpcmVjdGlvbiA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNob3VsZFRyZWF0
QXNDb250aW51aW5nTG9hZCA6IGJvb2w7CiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVzZW50
YXRpb25UcmFuc2l0aW9uIDogdWludDhfdDsKIGVudW0gY2xhc3MgVGV4dEdyYW51bGFyaXR5IDog
dWludDhfdDsKK2VudW0gY2xhc3MgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcyA6IHVpbnQ4X3Q7
CiBlbnVtIGNsYXNzIFdyaXRpbmdEaXJlY3Rpb24gOiB1aW50OF90OwogCiB1c2luZyBQbGF0Zm9y
bURpc3BsYXlJRCA9IHVpbnQzMl90OwpAQCAtMTAwOSw3ICsxMDExLDcgQEAgcHVibGljOgogICAg
IHZvaWQgY29udGV4dE1lbnVTaG93aW5nKCkgeyBtX2lzU2hvd2luZ0NvbnRleHRNZW51ID0gdHJ1
ZTsgfQogI2VuZGlmCiAKLSAgICB2b2lkIHdoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYp
OworICAgIHZvaWQgd2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiwgT3B0aW9uU2V0PFdl
YkNvcmU6OldoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+KTsKIAogICAgIHZvaWQgd2hlZWxFdmVu
dEhhbmRsZXJzQ2hhbmdlZChib29sKTsKICAgICB2b2lkIHJlY29tcHV0ZVNob3J0Q2lyY3VpdEhv
cml6b250YWxXaGVlbEV2ZW50c1N0YXRlKCk7Cg==
</data>
<flag name="review"
          id="427377"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="427378"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411233</attachid>
            <date>2020-10-13 11:57:19 -0700</date>
            <delta_ts>2020-10-13 13:53:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217660-20201013115718.patch</filename>
            <type>text/plain</type>
            <size>32883</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MzcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGRjYTU2ZjYwYTRjYTVm
ZmMzN2M3ZWRkYmI3Zjk1OTkzYTgzYmQzNC4uZjBkNTUwZjNiYWZlM2FkNjZhYzQyNjZiZDk0MzMw
ZTAzZmMzNDFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIwLTEwLTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBsdW1iIE9wdGlv
blNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiB0aHJvdWdoIHRoZSB3aGVlbCBldmVudCBo
YW5kbGluZyBjb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTc2NjAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0gSG9ydG9uLgorCisgICAgICAg
IEFzeW5jIHNjcm9sbGluZyBpbiBwYXNzaXZlIHdoZWVsIGV2ZW50IHJlZ2lvbnMgd2lsbCByZXF1
aXJlIHRoYXQgdGhlIG1haW4gdGhyZWFkIGV2ZW50CisgICAgICAgIGhhbmRsaW5nIGNvZGUga25v
d3MgdGhhdCB0aGUgc2Nyb2xsaW5nIHRocmVhZCBkaWQgdGhlIHNjcm9sbGluZy4gVG8gcHJvcGFn
YXRlIHRoaXMKKyAgICAgICAgaW5mb3JtYXRpb24sIHBsdW1iIE9wdGlvblNldDxXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzPiB0aHJvdWdoLgorCisgICAgICAgIE5vIGJlaGF2aW9yIGNoYW5nZS4K
KworICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5k
bGVyLmg6CisgICAgICAgICogcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp3aGVlbEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldCk6CisgICAgICAgICogcGFnZS9tYWMv
RXZlbnRIYW5kbGVyTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp3aGVl
bEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRU
b1dpZGdldCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2ZW50UHJvY2Vz
c2luZyk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50
KToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmg6CisgICAgICAgIChX
ZWJDb3JlOjpXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQ6OmhhbmRsZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6V2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0Ojp1bmhhbmRsZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRo
cmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudCk6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmg6CisgICAgICAgICogcGxhdGZvcm0vUGxh
dGZvcm1XaGVlbEV2ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAg
ICAgICAqIHJlcGxheS9Vc2VySW5wdXRCcmlkZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VXNl
cklucHV0QnJpZGdlOjpoYW5kbGVXaGVlbEV2ZW50KToKKyAgICAgICAgKiByZXBsYXkvVXNlcklu
cHV0QnJpZGdlLmg6CisKIDIwMjAtMTAtMTIgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxs
YXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdOiBSZXBsYWNlICJJbWFnZUJ1
ZmZlcklkZW50aWZpZXIiIGJ5IGEgZ2VuZXJpYyBpZGVudGlmaWVyIG5hbWVkICJSZW1vdGVSZXNv
dXJjZUlkZW50aWZpZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVjNDA1OTI2NjgwZjg5NDQ1MGVjOGIyYjFkZTNl
NmIyYzUwMDIwNDkuLjUwOTVlYWY5NmE3ZDljMmQ5ODM5MTdiNTE3NzQzZjI4ZTZiNmVmNTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjAtMTAtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CisKKyAgICAgICAgUGx1bWIgT3B0aW9uU2V0PFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHM+IHRocm91Z2ggdGhlIHdoZWVsIGV2ZW50IGhhbmRsaW5nIGNvZGUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY2MAorCisg
ICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgQXN5bmMgc2Nyb2xsaW5n
IGluIHBhc3NpdmUgd2hlZWwgZXZlbnQgcmVnaW9ucyB3aWxsIHJlcXVpcmUgdGhhdCB0aGUgbWFp
biB0aHJlYWQgZXZlbnQKKyAgICAgICAgaGFuZGxpbmcgY29kZSBrbm93cyB0aGF0IHRoZSBzY3Jv
bGxpbmcgdGhyZWFkIGRpZCB0aGUgc2Nyb2xsaW5nLiBUbyBwcm9wYWdhdGUgdGhpcworICAgICAg
ICBpbmZvcm1hdGlvbiwgcGx1bWIgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+
IHRocm91Z2guCisKKyAgICAgICAgTm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkV2
ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OkV2ZW50RGlzcGF0
Y2hlcjo6ZGlzcGF0Y2hXaGVlbEV2ZW50VmlhTWFpblRocmVhZCk6CisgICAgICAgIChXZWJLaXQ6
OkV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hXaGVlbEV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVXaGVlbEV2ZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZTo6d2hlZWxFdmVudCk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuaDoKKwogMjAyMC0xMC0xMiAgU2FpZCBBYm91LUhhbGxhd2EgIDxz
YWJvdWhhbGxhd2FAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc106IFJlcGxhY2Ug
IkltYWdlQnVmZmVySWRlbnRpZmllciIgYnkgYSBnZW5lcmljIGlkZW50aWZpZXIgbmFtZWQgIlJl
bW90ZVJlc291cmNlSWRlbnRpZmllciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwppbmRleCBl
ZDI0M2M0MmJiZjYyYTIwYTBkYzE3NjZjMjliNmQxYzA2ZThkMjc3Li5kODg5MGQ3MDg3MzcxZjI2
MDNmZWJiYjI3YzdkYmU1ZGYwYjEzY2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjAtMTAtMTMgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CisKKyAgICAgICAgUGx1bWIgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM+IHRocm91Z2ggdGhlIHdoZWVsIGV2ZW50IGhhbmRsaW5nIGNvZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzY2MAorCisgICAgICAgIFJl
dmlld2VkIGJ5IFRpbSBIb3J0b24uCisKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYlZpZXc6Om1vdXNlV2hlZWwpOgorCiAyMDIwLTEwLTA2ICBEZXZpbiBSb3Vzc28gIDxkcm91
c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3ZlIHBsYXRmb3JtIGxvZ2ljIGZvciBDU1MgYGhv
dmVyYCBhbmQgYHBvaW50ZXJgIG1lZGlhIHF1ZXJpZXMgb3V0c2lkZSBvZiBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNDkzNWI3M2UyZWY2MTVjYjViMmYwNzU1
NGVlYTIwZDRjMDZkNjU0Yi4uZjQwZDYzYWQwYTRkM2QyNTQ1NTZhNjE0ZWQ0NDQ1ZmY2NGY1NzY3
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMjg2Miw3ICsyODYyLDcg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmNvbXBsZXRlV2lkZ2V0V2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIGV2ZW50LCBjb24KICAgICByZXR1cm4gcGxhdGZvcm1Db21wbGV0ZVBs
YXRmb3JtV2lkZ2V0V2hlZWxFdmVudChldmVudCwgKndpZGdldC5nZXQoKSwgc2Nyb2xsYWJsZUFy
ZWEpOwogfQogCi1ib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0
Zm9ybVdoZWVsRXZlbnQmIGV2ZW50KQorYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZl
bnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQ
cm9jZXNzaW5nU3RlcHM+IHByb2Nlc3NpbmdTdGVwcykKIHsKICAgICBhdXRvKiBkb2N1bWVudCA9
IG1fZnJhbWUuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQpAQCAtMjg4Niw3ICsyODg2
LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50JiBldmVudCkKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgTE9H
X1dJVEhfU1RSRUFNKFdoZWVsRXZlbnRUZXN0TW9uaXRvciwgc3RyZWFtIDw8ICJFdmVudEhhbmRs
ZXI6OmhhbmRsZVdoZWVsRXZlbnQgb24gbWFpbiB0aHJlYWQsIHBoYXNlICIgPDwgZXZlbnQucGhh
c2UoKSA8PCAiIG1vbWVudHVtIHBoYXNlICIgPDwgZXZlbnQubW9tZW50dW1QaGFzZSgpKTsKKyAg
ICBMT0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIkV2ZW50SGFuZGxlcjo6aGFu
ZGxlV2hlZWxFdmVudCAiIDw8IGV2ZW50IDw8ICIgcHJvY2Vzc2luZyBzdGVwcyAiIDw8IHByb2Nl
c3NpbmdTdGVwcyk7CiAgICAgaWYgKGF1dG8gbW9uaXRvciA9IG1fZnJhbWUucGFnZSgpLT53aGVl
bEV2ZW50VGVzdE1vbml0b3IoKSkKICAgICAgICAgbW9uaXRvci0+cmVjZWl2ZWRXaGVlbEV2ZW50
KGV2ZW50KTsKIApAQCAtMjkxOCw3ICsyOTE4LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRs
ZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiBldmVudCkKICAgICBpZiAoZWxl
bWVudCkgewogICAgICAgICBpZiAoaXNPdmVyV2lkZ2V0KSB7CiAgICAgICAgICAgICBpZiAoV2Vh
a1B0cjxXaWRnZXQ+IHdpZGdldCA9IHdpZGdldEZvckVsZW1lbnQoKmVsZW1lbnQpKSB7Ci0gICAg
ICAgICAgICAgICAgaWYgKHBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoZXZlbnQsICp3aWRnZXQuZ2V0
KCkpKQorICAgICAgICAgICAgICAgIGlmIChwYXNzV2hlZWxFdmVudFRvV2lkZ2V0KGV2ZW50LCAq
d2lkZ2V0LmdldCgpLCBwcm9jZXNzaW5nU3RlcHMpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gY29tcGxldGVXaWRnZXRXaGVlbEV2ZW50KGV2ZW50LCB3aWRnZXQsIHNjcm9sbGFibGVBcmVh
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNDQ0OCwxMiArNDQ0OCwxMiBAQCBib29s
IEV2ZW50SGFuZGxlcjo6cGFzc01vdXNlUmVsZWFzZUV2ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50
V2l0aEhpdFRlc3RSZXN1bHRzJgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIEV2ZW50SGFu
ZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIGV2
ZW50LCBXaWRnZXQmIHdpZGdldCkKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRv
V2lkZ2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgZXZlbnQsIFdpZGdldCYgd2lkZ2V0LCBP
cHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gcHJvY2Vzc2luZ1N0ZXBzKQogewog
ICAgIGlmICghaXM8RnJhbWVWaWV3Pih3aWRnZXQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
LSAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQpLmZyYW1lKCkuZXZlbnRIYW5k
bGVyKCkuaGFuZGxlV2hlZWxFdmVudChldmVudCk7CisgICAgcmV0dXJuIGRvd25jYXN0PEZyYW1l
Vmlldz4od2lkZ2V0KS5mcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQoZXZl
bnQsIHByb2Nlc3NpbmdTdGVwcyk7CiB9CiAKIGJvb2wgRXZlbnRIYW5kbGVyOjp0YWJzVG9BbGxG
b3JtQ29udHJvbHMoS2V5Ym9hcmRFdmVudCopIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaAppbmRleCAxNzFhZTQ3Zjc3YTY3YjNkMTMyZjA0Y2U2YmViYjg1MzQ0ZGMxZGU2Li5lODU1
ODg2NTY1NGY5MzQzODVkMjgwZWIzOWZmYTE4MzM0YThjZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmgKQEAgLTk2LDYgKzk2LDggQEAgY2xhc3MgV2lkZ2V0OwogCiBzdHJ1Y3QgRHJh
Z1N0YXRlOwogCitlbnVtIGNsYXNzIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgOiB1aW50OF90
OworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKIGV4dGVybiBjb25zdCBpbnQgTGlua0RyYWdI
eXN0ZXJlc2lzOwogZXh0ZXJuIGNvbnN0IGludCBJbWFnZURyYWdIeXN0ZXJlc2lzOwpAQCAtMjA2
LDcgKzIwOCw3IEBAIHB1YmxpYzoKICAgICBib29sIGhhbmRsZU1vdXNlTW92ZUV2ZW50KGNvbnN0
IFBsYXRmb3JtTW91c2VFdmVudCYsIEhpdFRlc3RSZXN1bHQqID0gbnVsbHB0ciwgYm9vbCBvbmx5
VXBkYXRlU2Nyb2xsYmFycyA9IGZhbHNlKTsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRs
ZU1vdXNlUmVsZWFzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwogICAgIGJvb2wg
aGFuZGxlTW91c2VGb3JjZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwotICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZl
bnQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+KTsK
ICAgICB2b2lkIGRlZmF1bHRXaGVlbEV2ZW50SGFuZGxlcihOb2RlKiwgV2hlZWxFdmVudCYpOwog
ICAgIGJvb2wgaGFuZGxlUGFzdGVHbG9iYWxTZWxlY3Rpb24oY29uc3QgUGxhdGZvcm1Nb3VzZUV2
ZW50Jik7CiAKQEAgLTQ1MCw3ICs0NTIsNyBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBwYXNzTW91
c2VEb3duRXZlbnRUb1dpZGdldChXaWRnZXQqKTsKIAotICAgIGJvb2wgcGFzc1doZWVsRXZlbnRU
b1dpZGdldChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBXaWRnZXQmKTsKKyAgICBib29sIHBh
c3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgV2lkZ2V0Jiwg
T3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+KTsKICAgICB2b2lkIGRldGVybWlu
ZVdoZWVsRXZlbnRUYXJnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgUmVmUHRyPEVsZW1l
bnQ+JiBldmVudFRhcmdldCwgV2Vha1B0cjxTY3JvbGxhYmxlQXJlYT4mLCBib29sJiBpc092ZXJX
aWRnZXQpOwogICAgIHZvaWQgcmVjb3JkV2hlZWxFdmVudEZvckRlbHRhRmlsdGVyKGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYpOwogICAgIGJvb2wgcHJvY2Vzc1doZWVsRXZlbnRGb3JTY3JvbGxp
bmcoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgY29uc3QgV2Vha1B0cjxTY3JvbGxhYmxlQXJl
YT4mKTsKQEAgLTYyNSw2ICs2MjcsNyBAQCBwcml2YXRlOgogICAgIGRvdWJsZSBtX21heE1vdXNl
TW92ZWREdXJhdGlvbiB7IDAgfTsKICAgICBib29sIG1fZGlkU3RhcnREcmFnIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faXNIYW5kbGluZ1doZWVsRXZlbnQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9j
dXJyZW50V2hlZWxFdmVudEFsbG93c1Njcm9sbGluZyB7IHRydWUgfTsKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgYm9vbCBtX3Nob3VsZEFsbG93TW91c2VEb3duVG9TdGFydERyYWcg
eyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5k
bGVySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9pb3MvRXZlbnRIYW5kbGVySU9TLm1tCmlu
ZGV4IDQ2NGFkY2ExOWNmYjEyZDJjZDUyNjJmY2JlZmU2ODgyZTRlYTIwOGMuLmM1NTUyNDU3MjFl
OWZmMjMwZWQ1YmRjOWRkMjJlNWYxNDBiODdjZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvaW9zL0V2ZW50SGFuZGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2lv
cy9FdmVudEhhbmRsZXJJT1MubW0KQEAgLTEwNyw3ICsxMDcsNyBAQCBib29sIEV2ZW50SGFuZGxl
cjo6d2hlZWxFdmVudChXZWJFdmVudCAqZXZlbnQpCiAKICAgICBDdXJyZW50RXZlbnRTY29wZSBz
Y29wZShldmVudCk7CiAKLSAgICBib29sIGV2ZW50V2FzSGFuZGxlZCA9IGhhbmRsZVdoZWVsRXZl
bnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtV2hlZWxFdmVudChldmVudCkp
OworICAgIGJvb2wgZXZlbnRXYXNIYW5kbGVkID0gaGFuZGxlV2hlZWxFdmVudChQbGF0Zm9ybUV2
ZW50RmFjdG9yeTo6Y3JlYXRlUGxhdGZvcm1XaGVlbEV2ZW50KGV2ZW50KSwgeyBXaGVlbEV2ZW50
UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9KTsKICAgICBldmVudC53
YXNIYW5kbGVkID0gZXZlbnRXYXNIYW5kbGVkOwogICAgIHJldHVybiBldmVudFdhc0hhbmRsZWQ7
CiB9CkBAIC00MTksNyArNDE5LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NTdWJmcmFtZUV2
ZW50VG9TdWJmcmFtZShNb3VzZUV2ZW50V2l0aEhpdFRlc3RSZXN1bHRzJiBldmUKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLWJvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lkZ2V0
KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIFdpZGdldCYgd2lkZ2V0KQorYm9vbCBFdmVudEhh
bmRsZXI6OnBhc3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jiwg
V2lkZ2V0JiB3aWRnZXQsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPikKIHsK
ICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlMKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9tYWMvRXZlbnRIYW5kbGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvRXZlbnRIYW5kbGVyTWFjLm1tCmluZGV4IDNmMjU4ZmQ4NGQzYzE5OTA4Yzg2MjA3MTQzYTQ5
YWVkZjY3ZTkyZDEuLmZlZDU3MWZjOTVjNDc0YjU4YTEyMzhiZjY0NTM0MWJlZmUyNGIzOWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0V2ZW50SGFuZGxlck1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9FdmVudEhhbmRsZXJNYWMubW0KQEAgLTUxLDYgKzUx
LDcgQEAKICNpbXBvcnQgIlBhc3RlYm9hcmQuaCIKICNpbXBvcnQgIlBsYXRmb3JtRXZlbnRGYWN0
b3J5TWFjLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVNjcmVlbi5oIgorI2ltcG9ydCAiUGxhdGZvcm1X
aGVlbEV2ZW50LmgiCiAjaW1wb3J0ICJSYW5nZS5oIgogI2ltcG9ydCAiUmVuZGVyTGF5ZXIuaCIK
ICNpbXBvcnQgIlJlbmRlckxpc3RCb3guaCIKQEAgLTE0NSw3ICsxNDYsNyBAQCBib29sIEV2ZW50
SGFuZGxlcjo6d2hlZWxFdmVudChOU0V2ZW50ICpldmVudCkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgQ3VycmVudEV2ZW50U2NvcGUgc2NvcGUoZXZlbnQsIG5pbCk7Ci0gICAgcmV0dXJu
IGhhbmRsZVdoZWVsRXZlbnQoUGxhdGZvcm1FdmVudEZhY3Rvcnk6OmNyZWF0ZVBsYXRmb3JtV2hl
ZWxFdmVudChldmVudCwgcGFnZS0+Y2hyb21lKCkucGxhdGZvcm1QYWdlQ2xpZW50KCkpKTsKKyAg
ICByZXR1cm4gaGFuZGxlV2hlZWxFdmVudChQbGF0Zm9ybUV2ZW50RmFjdG9yeTo6Y3JlYXRlUGxh
dGZvcm1XaGVlbEV2ZW50KGV2ZW50LCBwYWdlLT5jaHJvbWUoKS5wbGF0Zm9ybVBhZ2VDbGllbnQo
KSksIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZywg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2gg
fSk7CiB9CiAKIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChOU0V2ZW50ICpldmVudCkKQEAg
LTQ2Nyw3ICs0NjgsNyBAQCBzdGF0aWMgdm9pZCBzZWxmUmV0YWluaW5nTlNTY3JvbGxWaWV3U2Ny
b2xsV2hlZWwoTlNTY3JvbGxWaWV3ICpzZWxmLCBTRUwgc2VsZWN0bwogICAgICAgICBDRlJlbGVh
c2UoKF9fYnJpZGdlIENGVHlwZVJlZilzZWxmKTsKIH0KIAotYm9vbCBFdmVudEhhbmRsZXI6OnBh
c3NXaGVlbEV2ZW50VG9XaWRnZXQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50
LCBXaWRnZXQmIHdpZGdldCkKK2Jvb2wgRXZlbnRIYW5kbGVyOjpwYXNzV2hlZWxFdmVudFRvV2lk
Z2V0KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgV2lkZ2V0JiB3aWRnZXQs
IE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHMpCiB7
CiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TCiAKQEAgLTQ3Nyw3ICs0NzgsNyBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6cGFzc1doZWVsRXZlbnRUb1dpZGdldChjb25zdCBQbGF0Zm9ybVdo
ZWVsRXZlbnQmIHdoZWVsRXZlbnQsCiAgICAgICAgIGlmICghaXM8RnJhbWVWaWV3Pih3aWRnZXQp
KQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgIHJldHVybiBkb3duY2FzdDxG
cmFtZVZpZXc+KHdpZGdldCkuZnJhbWUoKS5ldmVudEhhbmRsZXIoKS5oYW5kbGVXaGVlbEV2ZW50
KHdoZWVsRXZlbnQpOworICAgICAgICByZXR1cm4gZG93bmNhc3Q8RnJhbWVWaWV3Pih3aWRnZXQp
LmZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBwcm9j
ZXNzaW5nU3RlcHMpOwogICAgIH0KIAogICAgIGlmIChbY3VycmVudE5TRXZlbnQoKSB0eXBlXSAh
PSBOU0V2ZW50VHlwZVNjcm9sbFdoZWVsIHx8IG1fc2VuZGluZ0V2ZW50VG9TdWJ2aWV3KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAppbmRleCBl
NjdiOWE2NGMyYjk5ZmQ2Y2E2M2JkNmM3MTlkOTMyNzRkOTdmMmFlLi5jM2UwNzk5ZGY5Y2U4ODdl
M2EyNWE3Nzg3MTQyZTQzOTFjMjE3MWYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdUcmVlLmNwcApAQCAtNjgsMTYgKzY4LDIwIEBAIE9wdGlvblNldDxX
aGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBTY3JvbGxpbmdUcmVlOjpkZXRlcm1pbmVXaGVlbEV2
ZW50UHJvY2Vzc2luCiAgICAgLy8gVGhpcyBtZXRob2QgaXMgaW52b2tlZCBieSB0aGUgZXZlbnQg
aGFuZGxpbmcgdGhyZWFkCiAgICAgTG9ja0hvbGRlciBsb2NrKG1fdHJlZVN0YXRlTXV0ZXgpOwog
Ci0gICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGlu
Z1RyZWU6OnNob3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5ICIgPDwgd2hlZWxFdmVu
dCA8PCAiIGhhdmUgbGF0Y2hlZCBub2RlICIgPDwgbV9sYXRjaGluZ0NvbnRyb2xsZXIubGF0Y2hl
ZE5vZGVGb3JFdmVudCh3aGVlbEV2ZW50LCBtX2FsbG93TGF0Y2hpbmcpKTsKLSAgICBpZiAobV9s
YXRjaGluZ0NvbnRyb2xsZXIubGF0Y2hlZE5vZGVGb3JFdmVudCh3aGVlbEV2ZW50LCBtX2FsbG93
TGF0Y2hpbmcpKQorICAgIGF1dG8gbGF0Y2hlZE5vZGUgPSBtX2xhdGNoaW5nQ29udHJvbGxlci5s
YXRjaGVkTm9kZUZvckV2ZW50KHdoZWVsRXZlbnQsIG1fYWxsb3dMYXRjaGluZyk7CisgICAgTE9H
X1dJVEhfU1RSRUFNKFNjcm9sbExhdGNoaW5nLCBzdHJlYW0gPDwgIlNjcm9sbGluZ1RyZWU6OnNo
b3VsZEhhbmRsZVdoZWVsRXZlbnRTeW5jaHJvbm91c2x5ICIgPDwgd2hlZWxFdmVudCA8PCAiIGhh
dmUgbGF0Y2hlZCBub2RlICIgPDwgbGF0Y2hlZE5vZGUpOworICAgIGlmIChsYXRjaGVkTm9kZSkK
ICAgICAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhy
ZWFkIH07CiAKICAgICBtX2xhdGNoaW5nQ29udHJvbGxlci5yZWNlaXZlZFdoZWVsRXZlbnQod2hl
ZWxFdmVudCwgbV9hbGxvd0xhdGNoaW5nKTsKIAotICAgIGlmICghbV90cmVlU3RhdGUuZXZlbnRU
cmFja2luZ1JlZ2lvbnMuaXNFbXB0eSgpICYmIG1fcm9vdE5vZGUpIHsKLSAgICAgICAgRmxvYXRQ
b2ludCBwb3NpdGlvbiA9IHdoZWVsRXZlbnQucG9zaXRpb24oKTsKLSAgICAgICAgcG9zaXRpb24u
bW92ZShtX3Jvb3ROb2RlLT52aWV3VG9Db250ZW50c09mZnNldChtX3RyZWVTdGF0ZS5tYWluRnJh
bWVTY3JvbGxQb3NpdGlvbikpOworICAgIGlmICghbV9yb290Tm9kZSkKKyAgICAgICAgcmV0dXJu
IHsgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5nVGhyZWFkIH07CisKKyAgICBG
bG9hdFBvaW50IHBvc2l0aW9uID0gd2hlZWxFdmVudC5wb3NpdGlvbigpOworICAgIHBvc2l0aW9u
Lm1vdmUobV9yb290Tm9kZS0+dmlld1RvQ29udGVudHNPZmZzZXQobV90cmVlU3RhdGUubWFpbkZy
YW1lU2Nyb2xsUG9zaXRpb24pKTsKIAorICAgIGlmICghbV90cmVlU3RhdGUuZXZlbnRUcmFja2lu
Z1JlZ2lvbnMuaXNFbXB0eSgpKSB7CiAgICAgICAgIGNvbnN0IEV2ZW50TmFtZXMmIG5hbWVzID0g
ZXZlbnROYW1lcygpOwogICAgICAgICBJbnRQb2ludCByb3VuZGVkUG9zaXRpb24gPSByb3VuZGVk
SW50UG9pbnQocG9zaXRpb24pOwogCkBAIC04OSwxMCArOTMsMTEgQEAgT3B0aW9uU2V0PFdoZWVs
RXZlbnRQcm9jZXNzaW5nU3RlcHM+IFNjcm9sbGluZ1RyZWU6OmRldGVybWluZVdoZWVsRXZlbnRQ
cm9jZXNzaW4KICAgICAgICAgaWYgKGlzU3luY2hyb25vdXNEaXNwYXRjaFJlZ2lvbikKICAgICAg
ICAgICAgIHJldHVybiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JT
Y3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVu
dERpc3BhdGNoIH07CiAgICAgfQorCiAgICAgcmV0dXJuIHsgV2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwczo6U2Nyb2xsaW5nVGhyZWFkIH07CiB9CiAKLVdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBT
Y3JvbGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYg
d2hlZWxFdmVudCkKK1doZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlOjpoYW5k
bGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9u
U2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHByb2Nlc3NpbmdTdGVwcykKIHsKICAgICBM
T0dfV0lUSF9TVFJFQU0oU2Nyb2xsaW5nLCBzdHJlYW0gPDwgIlxuU2Nyb2xsaW5nVHJlZSAiIDw8
IHRoaXMgPDwgIiBoYW5kbGVXaGVlbEV2ZW50ICIgPDwgd2hlZWxFdmVudCk7CiAKQEAgLTE0Myw2
ICsxNDgsNyBAQCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZTo6aGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbgogICAgICAgICByZXR1cm4gaGFuZGxl
V2hlZWxFdmVudFdpdGhOb2RlKHdoZWVsRXZlbnQsIG5vZGUuZ2V0KCkpOwogICAgIH0oKTsKIAor
ICAgIHJlc3VsdC5zdGVwcy5hZGQocHJvY2Vzc2luZ1N0ZXBzICYgV2hlZWxFdmVudFByb2Nlc3Np
bmdTdGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2gpOwogICAgIHJldHVybiByZXN1
bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUu
aAppbmRleCA5NjgwYTk3MTg2MzJkZmEzODZhOWJlMDZmN2I2YTljNTZlZmFhMWMzLi40NDEzZjdl
YTMyYTUwNmFiYWZjYzFkZmI2YjZiNTAxYzY1ZGIwNDM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oCkBAIC02MSwxMyArNjEsMTMgQEAgc3RydWN0
IFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCB7CiAgICAgYm9vbCB3YXNIYW5kbGVkIHsgZmFsc2Ug
fTsKICAgICBib29sIG5lZWRzTWFpblRocmVhZFByb2Nlc3NpbmcoKSBjb25zdCB7IHJldHVybiBz
dGVwcy5jb250YWluc0FueSh7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRG
b3JTY3JvbGxpbmcsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01F
dmVudERpc3BhdGNoIH0pOyB9CiAKLSAgICBzdGF0aWMgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0
IGhhbmRsZWQoKQorICAgIHN0YXRpYyBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgaGFuZGxlZChP
cHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gc3RlcHMgPSB7IH0pCiAgICAgewot
ICAgICAgICByZXR1cm4geyB7IH0sIHRydWUgfTsKKyAgICAgICAgcmV0dXJuIHsgc3RlcHMsIHRy
dWUgfTsKICAgICB9Ci0gICAgc3RhdGljIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCB1bmhhbmRs
ZWQoKQorICAgIHN0YXRpYyBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgdW5oYW5kbGVkKE9wdGlv
blNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBzdGVwcyA9IHsgfSkKICAgICB7Ci0gICAg
ICAgIHJldHVybiB7IHsgfSwgZmFsc2UgfTsKKyAgICAgICAgcmV0dXJuIHsgc3RlcHMsIGZhbHNl
IH07CiAgICAgfQogICAgIHN0YXRpYyBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgcmVzdWx0KGJv
b2wgaGFuZGxlZCkKICAgICB7CkBAIC05MCw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dEFzeW5jRnJhbWVPck92ZXJmbG93U2Nyb2xsaW5nRW5hYmxlZChib29sKTsKIAogICAgIFdFQkNP
UkVfRVhQT1JUIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBkZXRlcm1pbmVX
aGVlbEV2ZW50UHJvY2Vzc2luZyhjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmKTsKLSAgICBXRUJD
T1JFX0VYUE9SVCB2aXJ0dWFsIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVXaGVlbEV2
ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1
YWwgV2hlZWxFdmVudEhhbmRsaW5nUmVzdWx0IGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50JiwgT3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+ID0geyB9
KTsKIAogICAgIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVzc0Zvck5vZGUoU2Nyb2xsaW5nTm9k
ZUlEKTsKICAgICB2b2lkIHNldFJ1YmJlckJhbmRpbmdJblByb2dyZXNzRm9yTm9kZShTY3JvbGxp
bmdOb2RlSUQsIGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKaW5kZXggMjNmNWYwZWZmMDU1ODhhZjI4MGI4
NmQ5N2U0YzJiYmRkMWVjMmUyYi4uYTEwMzI3YWVjZWFjY2JkNGE4OTI5ZGQ1YmNiNWQ1NmMwZTVm
Y2NiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJl
YWRlZFNjcm9sbGluZ1RyZWUuY3BwCkBAIC01NSwxMCArNTUsMTAgQEAgVGhyZWFkZWRTY3JvbGxp
bmdUcmVlOjp+VGhyZWFkZWRTY3JvbGxpbmdUcmVlKCkKICAgICBBU1NFUlQoIW1fc2Nyb2xsaW5n
Q29vcmRpbmF0b3IpOwogfQogCi1XaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlOjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hl
ZWxFdmVudCkKK1doZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6
OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JiB3aGVlbEV2ZW50LCBP
cHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gcHJvY2Vzc2luZ1N0ZXBzKQogewog
ICAgIEFTU0VSVChTY3JvbGxpbmdUaHJlYWQ6OmlzQ3VycmVudFRocmVhZCgpKTsKLSAgICByZXR1
cm4gU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAgICByZXR1
cm4gU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50LCBwcm9jZXNzaW5n
U3RlcHMpOwogfQogCiBib29sIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aGFuZGxlV2hlZWxFdmVu
dEFmdGVyTWFpblRocmVhZChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIFNj
cm9sbGluZ05vZGVJRCB0YXJnZXROb2RlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCmluZGV4IGIyNWZmMTRjYTEyY2Iy
OGE3Y2ExOWYwMmFiMWFmYWM0ODZhOTUxM2YuLjljZGI5NjExZjkwNTIzNzcwMjBmMmQxNDk5ZWM3
NWQ1Y2E4NjM0ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Ro
cmVhZGVkU2Nyb2xsaW5nVHJlZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oCkBAIC00NSw3ICs0NSw3IEBAIGNsYXNzIFRocmVhZGVk
U2Nyb2xsaW5nVHJlZSA6IHB1YmxpYyBTY3JvbGxpbmdUcmVlIHsKIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5UaHJlYWRlZFNjcm9sbGluZ1RyZWUoKTsKIAotICAgIFdoZWVsRXZlbnRIYW5kbGluZ1Jl
c3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYpIG92ZXJyaWRl
OworICAgIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBs
YXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPikg
b3ZlcnJpZGU7CiAKICAgICBib29sIGhhbmRsZVdoZWVsRXZlbnRBZnRlck1haW5UaHJlYWQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JiwgU2Nyb2xsaW5nTm9kZUlEKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1XaGVlbEV2ZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtV2hlZWxFdmVudC5jcHAKaW5kZXggOGExNWM4YWM0NDcw
MWFjNzMwY2Y4YmYzYTFmMGI5YzAwOWMxMmVkNy4uZmZiZGJkM2QwNTVmN2Q3MzVmMWZlZWFjYzRh
Zjk3NTk0ZTZjNjA4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZv
cm1XaGVlbEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVdo
ZWVsRXZlbnQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgdHMsIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHMgc3RlcHMpCiAgICAgc3dpdGNo
IChzdGVwcykgewogICAgIGNhc2UgV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6U2Nyb2xsaW5n
VGhyZWFkOiB0cyA8PCAic2Nyb2xsaW5nIHRocmVhZCI7IGJyZWFrOwogICAgIGNhc2UgV2hlZWxF
dmVudFByb2Nlc3NpbmdTdGVwczo6TWFpblRocmVhZEZvclNjcm9sbGluZzogdHMgPDwgIm1haW4g
dGhyZWFkIHNjcm9sbGluZyI7IGJyZWFrOwotICAgIGNhc2UgV2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwczo6TWFpblRocmVhZEZvckRPTUV2ZW50RGlzcGF0Y2g6IHRzIDw8ICJtYWluIHRocmVhZCBE
T00gZXZuZXQgZGlzcGF0Y2giOyBicmVhazsKKyAgICBjYXNlIFdoZWVsRXZlbnRQcm9jZXNzaW5n
U3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERpc3BhdGNoOiB0cyA8PCAibWFpbiB0aHJlYWQg
RE9NIGV2ZW50IGRpc3BhdGNoIjsgYnJlYWs7CiAgICAgfQogICAgIHJldHVybiB0czsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9Vc2VySW5wdXRCcmlkZ2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5jcHAKaW5kZXggNjc5ZjhlZmE5MGJm
NzFlNzJhNmQ1NjI4OTY2MzYzMDVhMDdkZTg2Yy4uMjBiNjQxNWU2ZjQ2OGZkNjYyYThmNGRiMjA1
ODZmZGM1N2YzODBiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1
dEJyaWRnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5j
cHAKQEAgLTg3LDkgKzg3LDkgQEAgYm9vbCBVc2VySW5wdXRCcmlkZ2U6OmhhbmRsZUFjY2Vzc0tl
eUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYga2V5RXZlbnQKICAgICByZXR1cm4g
bV9wYWdlLmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRPck1haW5GcmFtZSgpLmV2ZW50SGFuZGxl
cigpLmhhbmRsZUFjY2Vzc0tleShrZXlFdmVudCk7CiB9CiAKLWJvb2wgVXNlcklucHV0QnJpZGdl
OjpoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYgd2hlZWxFdmVudCwg
SW5wdXRTb3VyY2UpCitib29sIFVzZXJJbnB1dEJyaWRnZTo6aGFuZGxlV2hlZWxFdmVudChjb25z
dCBQbGF0Zm9ybVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJv
Y2Vzc2luZ1N0ZXBzPiBwcm9jZXNzaW5nU3RlcHMsIElucHV0U291cmNlKQogewotICAgIHJldHVy
biBtX3BhZ2UubWFpbkZyYW1lKCkuZXZlbnRIYW5kbGVyKCkuaGFuZGxlV2hlZWxFdmVudCh3aGVl
bEV2ZW50KTsKKyAgICByZXR1cm4gbV9wYWdlLm1haW5GcmFtZSgpLmV2ZW50SGFuZGxlcigpLmhh
bmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBzKTsKIH0KIAogdm9pZCBV
c2VySW5wdXRCcmlkZ2U6OmZvY3VzU2V0QWN0aXZlKGJvb2wgYWN0aXZlLCBJbnB1dFNvdXJjZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlcGxheS9Vc2VySW5wdXRCcmlkZ2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlcGxheS9Vc2VySW5wdXRCcmlkZ2UuaAppbmRleCA3Yzc1OTRhZWVkYzYw
NTIzMjczYmJjMDBiNDllNjFiOTVjY2JjOTdkLi41NGNjNTI3ZTE5MjI1OThkZjRjYzlkZGQ2YjUw
YmExNzk1MjQ5NWU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZXBsYXkvVXNlcklucHV0
QnJpZGdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVwbGF5L1VzZXJJbnB1dEJyaWRnZS5oCkBA
IC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMuaCIKICNpbmNsdWRlIDx3dGYv
Rm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9Ob25jb3B5YWJsZS5oPgorI2luY2x1ZGUgPHd0Zi9P
cHRpb25TZXQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MSw2ICs0Miw4IEBAIGNs
YXNzIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFBsYXRmb3JtTW91c2VFdmVudDsKIGNs
YXNzIFBsYXRmb3JtV2hlZWxFdmVudDsKIAorZW51bSBjbGFzcyBXaGVlbEV2ZW50UHJvY2Vzc2lu
Z1N0ZXBzIDogdWludDhfdDsKKwogLy8gUmVhbCB1c2VyIGlucHV0cyBjb21lIGZyb20gV2ViS2l0
IG9yIFdlYktpdDIuCiAvLyBTeW50aGV0aWMgaW5wdXRzIGNvbWUgZnJvbSB3aXRoaW4gV2ViQ29y
ZSAoaS5lLiwgZnJvbSB3ZWIgcmVwbGF5IG9yIGZha2UgbW91c2UgbW92ZXMpLgogZW51bSBjbGFz
cyBJbnB1dFNvdXJjZSB7CkBAIC01OCwyNCArNjEsMjQgQEAgcHVibGljOgogI2lmIEVOQUJMRShD
T05URVhUX01FTlVfRVZFTlQpCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVDb250ZXh0
TWVudUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIEZyYW1lJiwgSW5wdXRTb3VyY2Ug
PSBJbnB1dFNvdXJjZTo6VXNlcik7CiAjZW5kaWYKLSAgICBXRUJDT1JFX0VYUE9SVCBib29sIGhh
bmRsZU1vdXNlUHJlc3NFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBJbnB1dFNvdXJj
ZSBzb3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBo
YW5kbGVNb3VzZVJlbGVhc2VFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBJbnB1dFNv
dXJjZSBzb3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmLCBJbnB1dFNv
dXJjZSBzb3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9v
bCBoYW5kbGVNb3VzZU1vdmVPblNjcm9sbGJhckV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVu
dCYsIElucHV0U291cmNlIHNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGhhbmRsZU1vdXNlUHJlc3NFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZl
bnQmLCBJbnB1dFNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBib29sIGhhbmRsZU1vdXNlUmVsZWFzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYs
IElucHV0U291cmNlID0gSW5wdXRTb3VyY2U6OlVzZXIpOworICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgaGFuZGxlTW91c2VNb3ZlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiwgSW5wdXRT
b3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5k
bGVNb3VzZU1vdmVPblNjcm9sbGJhckV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIElu
cHV0U291cmNlID0gSW5wdXRTb3VyY2U6OlVzZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wg
aGFuZGxlTW91c2VGb3JjZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYsIElucHV0U291
cmNlID0gSW5wdXRTb3VyY2U6OlVzZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaGFuZGxl
V2hlZWxFdmVudChjb25zdCBQbGF0Zm9ybVdoZWVsRXZlbnQmLCBJbnB1dFNvdXJjZSBzb3VyY2Ug
PSBJbnB1dFNvdXJjZTo6VXNlcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVLZXlF
dmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmLCBJbnB1dFNvdXJjZSBzb3VyY2UgPSBJ
bnB1dFNvdXJjZTo6VXNlcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVBY2Nlc3NL
ZXlFdmVudChjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmLCBJbnB1dFNvdXJjZSBzb3VyY2Ug
PSBJbnB1dFNvdXJjZTo6VXNlcik7Ci0gICAgdm9pZCBmb2N1c1NldEFjdGl2ZShib29sIGFjdGl2
ZSwgSW5wdXRTb3VyY2Ugc291cmNlID0gSW5wdXRTb3VyY2U6OlVzZXIpOwotICAgIHZvaWQgZm9j
dXNTZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCwgSW5wdXRTb3VyY2Ugc291cmNlID0gSW5wdXRTb3Vy
Y2U6OlVzZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgc2Nyb2xsUmVjdXJzaXZlbHkoU2Ny
b2xsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgSW5wdXRTb3VyY2Ugc291cmNlID0gSW5w
dXRTb3VyY2U6OlVzZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgbG9naWNhbFNjcm9sbFJl
Y3Vyc2l2ZWx5KFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBJbnB1
dFNvdXJjZSBzb3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7CisgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBoYW5kbGVXaGVlbEV2ZW50KGNvbnN0IFBsYXRmb3JtV2hlZWxFdmVudCYsIE9wdGlvblNl
dDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiwgSW5wdXRTb3VyY2UgPSBJbnB1dFNvdXJjZTo6
VXNlcik7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBoYW5kbGVLZXlFdmVudChjb25zdCBQbGF0
Zm9ybUtleWJvYXJkRXZlbnQmLCBJbnB1dFNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBib29sIGhhbmRsZUFjY2Vzc0tleUV2ZW50KGNvbnN0IFBsYXRmb3Jt
S2V5Ym9hcmRFdmVudCYsIElucHV0U291cmNlID0gSW5wdXRTb3VyY2U6OlVzZXIpOworICAgIHZv
aWQgZm9jdXNTZXRBY3RpdmUoYm9vbCBhY3RpdmUsIElucHV0U291cmNlID0gSW5wdXRTb3VyY2U6
OlVzZXIpOworICAgIHZvaWQgZm9jdXNTZXRGb2N1c2VkKGJvb2wgZm9jdXNlZCwgSW5wdXRTb3Vy
Y2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7CisgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBzY3JvbGxS
ZWN1cnNpdmVseShTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBJbnB1dFNvdXJj
ZSA9IElucHV0U291cmNlOjpVc2VyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBib29sIGxvZ2ljYWxT
Y3JvbGxSZWN1cnNpdmVseShTY3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0
eSwgSW5wdXRTb3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7CiAKICAgICAvLyBOYXZpZ2F0aW9u
IEFQSXMuCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBsb2FkUmVxdWVzdChGcmFtZUxvYWRSZXF1
ZXN0JiYsIElucHV0U291cmNlID0gSW5wdXRTb3VyY2U6OlVzZXIpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgcmVsb2FkRnJhbWUoRnJhbWUqLCBPcHRpb25TZXQ8UmVsb2FkT3B0aW9uPiwgSW5w
dXRTb3VyY2UgPSBJbnB1dFNvdXJjZTo6VXNlcik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
dG9wTG9hZGluZ0ZyYW1lKEZyYW1lKiwgSW5wdXRTb3VyY2Ugc291cmNlID0gSW5wdXRTb3VyY2U6
OlVzZXIpOwotICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgdHJ5Q2xvc2VQYWdlKElucHV0U291cmNl
IHNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0
b3BMb2FkaW5nRnJhbWUoRnJhbWUqLCBJbnB1dFNvdXJjZSA9IElucHV0U291cmNlOjpVc2VyKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBib29sIHRyeUNsb3NlUGFnZShJbnB1dFNvdXJjZSA9IElucHV0
U291cmNlOjpVc2VyKTsKIAogcHJpdmF0ZToKICAgICBQYWdlJiBtX3BhZ2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmNwcAppbmRl
eCAzZTE4YmM0YjAwOTE5NTBiMDE1NjczZTQyZjI3OTdhODI5OGZkZDg5Li4yZWNmOTE0MTQ4OGU5
YWFiYWJlZGM1ZDFhMWJiZDBmNTkyZDY2N2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL0V2ZW50RGlzcGF0Y2hlci5jcHAKQEAgLTEyMSwxMyArMTIxLDE0
IEBAIHZvaWQgRXZlbnREaXNwYXRjaGVyOjp3aGVlbEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJ
RCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlCiAgICAgfQogI2VuZGlmCiAKKyAgICBhdXRvIHBy
b2Nlc3NpbmdTdGVwcyA9IE9wdGlvblNldDxXZWJDb3JlOjpXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0
ZXBzPiB7IFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6Ok1haW5UaHJlYWRGb3JET01FdmVudERp
c3BhdGNoIH07CiAjaWYgRU5BQkxFKFNDUk9MTElOR19USFJFQUQpCi0gICAgYXV0byBzZW50VG9T
Y3JvbGxpbmdUaHJlYWQgPSBbJl0oKSB7CisgICAgcHJvY2Vzc2luZ1N0ZXBzID0gWyZdKCkgLT4g
T3B0aW9uU2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHsKICAgICAgICAgTG9ja0hvbGRl
ciBsb2NrZXIobV9zY3JvbGxpbmdUcmVlc011dGV4KTsKIAogICAgICAgICBhdXRvIHNjcm9sbGlu
Z1RyZWUgPSBtX3Njcm9sbGluZ1RyZWVzLmdldChwYWdlSUQpOwogICAgICAgICBpZiAoIXNjcm9s
bGluZ1RyZWUpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgICAgICByZXR1cm4g
eyBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVl
bEV2ZW50UHJvY2Vzc2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9Owog
ICAgICAgICAKICAgICAgICAgLy8gRklYTUU6IEl0J3MgcHJldHR5IGhvcnJpYmxlIHRoYXQgd2Un
cmUgdXBkYXRpbmcgdGhlIGJhY2svZm9yd2FyZCBzdGF0ZSBoZXJlLgogICAgICAgICAvLyBXZWJD
b3JlIHNob3VsZCBhbHdheXMga25vdyB0aGUgY3VycmVudCBzdGF0ZSBhbmQga25vdyB3aGVuIGl0
IGNoYW5nZXMgc28gdGhlCkBAIC0xMzgsMjUgKzEzOSwyNSBAQCB2b2lkIEV2ZW50RGlzcGF0Y2hl
cjo6d2hlZWxFdmVudChQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNvbnN0IFdlYldoZWVsRXZlbnQm
IHdoZQogCiAgICAgICAgIGF1dG8gcHJvY2Vzc2luZ1N0ZXBzID0gc2Nyb2xsaW5nVHJlZS0+ZGV0
ZXJtaW5lV2hlZWxFdmVudFByb2Nlc3NpbmcocGxhdGZvcm1XaGVlbEV2ZW50KTsKICAgICAgICAg
aWYgKCFwcm9jZXNzaW5nU3RlcHMuY29udGFpbnMoV2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwczo6
U2Nyb2xsaW5nVGhyZWFkKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAg
IHJldHVybiBwcm9jZXNzaW5nU3RlcHM7CiAKICAgICAgICAgc2Nyb2xsaW5nVHJlZS0+d2lsbFBy
b2Nlc3NXaGVlbEV2ZW50KCk7CiAKLSAgICAgICAgU2Nyb2xsaW5nVGhyZWFkOjpkaXNwYXRjaChb
c2Nyb2xsaW5nVHJlZSwgd2hlZWxFdmVudCwgcGxhdGZvcm1XaGVlbEV2ZW50LCBwYWdlSUQsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0gewotICAgICAgICAgICAgYXV0byByZXN1bHQg
PSBzY3JvbGxpbmdUcmVlLT5oYW5kbGVXaGVlbEV2ZW50KHBsYXRmb3JtV2hlZWxFdmVudCk7Cisg
ICAgICAgIFNjcm9sbGluZ1RocmVhZDo6ZGlzcGF0Y2goW3Njcm9sbGluZ1RyZWUsIHdoZWVsRXZl
bnQsIHBsYXRmb3JtV2hlZWxFdmVudCwgcHJvY2Vzc2luZ1N0ZXBzLCBwYWdlSUQsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0geworICAgICAgICAgICAgYXV0byByZXN1bHQgPSBzY3Jv
bGxpbmdUcmVlLT5oYW5kbGVXaGVlbEV2ZW50KHBsYXRmb3JtV2hlZWxFdmVudCwgcHJvY2Vzc2lu
Z1N0ZXBzKTsKIAogICAgICAgICAgICAgaWYgKHJlc3VsdC5uZWVkc01haW5UaHJlYWRQcm9jZXNz
aW5nKCkpIHsKLSAgICAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaXNwYXRjaFdoZWVsRXZl
bnRWaWFNYWluVGhyZWFkKHBhZ2VJRCwgd2hlZWxFdmVudCk7CisgICAgICAgICAgICAgICAgcHJv
dGVjdGVkVGhpcy0+ZGlzcGF0Y2hXaGVlbEV2ZW50VmlhTWFpblRocmVhZChwYWdlSUQsIHdoZWVs
RXZlbnQsIHJlc3VsdC5zdGVwcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAg
ICAgfQogCiAgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5zZW5kRGlkUmVjZWl2ZUV2ZW50KHBh
Z2VJRCwgd2hlZWxFdmVudC50eXBlKCksIHJlc3VsdC53YXNIYW5kbGVkKTsKICAgICAgICAgfSk7
CiAKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHJldHVybiBwcm9jZXNzaW5nU3RlcHM7
CiAgICAgfSgpOwogCi0gICAgaWYgKHNlbnRUb1Njcm9sbGluZ1RocmVhZCkKKyAgICBpZiAocHJv
Y2Vzc2luZ1N0ZXBzLmNvbnRhaW5zKFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGlu
Z1RocmVhZCkpCiAgICAgICAgIHJldHVybjsKIAogI2Vsc2UKQEAgLTE2Niw3ICsxNjcsNyBAQCB2
b2lkIEV2ZW50RGlzcGF0Y2hlcjo6d2hlZWxFdmVudChQYWdlSWRlbnRpZmllciBwYWdlSUQsIGNv
bnN0IFdlYldoZWVsRXZlbnQmIHdoZQogICAgIFVOVVNFRF9QQVJBTShjYW5SdWJiZXJCYW5kQXRC
b3R0b20pOwogI2VuZGlmCiAKLSAgICBkaXNwYXRjaFdoZWVsRXZlbnRWaWFNYWluVGhyZWFkKHBh
Z2VJRCwgd2hlZWxFdmVudCk7CisgICAgZGlzcGF0Y2hXaGVlbEV2ZW50VmlhTWFpblRocmVhZChw
YWdlSUQsIHdoZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVwcyk7CiB9CiAKICNpZiBFTkFCTEUoTUFD
X0dFU1RVUkVfRVZFTlRTKQpAQCAtMjMwLDE1ICsyMzEsMTUgQEAgdm9pZCBFdmVudERpc3BhdGNo
ZXI6OmRpc3BhdGNoVG91Y2hFdmVudHMoKQogfQogI2VuZGlmCiAKLXZvaWQgRXZlbnREaXNwYXRj
aGVyOjpkaXNwYXRjaFdoZWVsRXZlbnRWaWFNYWluVGhyZWFkKFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxFdmVudCkKK3ZvaWQgRXZlbnRE
aXNwYXRjaGVyOjpkaXNwYXRjaFdoZWVsRXZlbnRWaWFNYWluVGhyZWFkKFdlYkNvcmU6OlBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdmVudCYgd2hlZWxFdmVudCwgT3B0aW9u
U2V0PFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+IHByb2Nlc3NpbmdTdGVwcykKIHsKICAgICBB
U1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2go
W3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgcGFnZUlELCB3aGVlbEV2ZW50XSgpIG11
dGFibGUgewotICAgICAgICBwcm90ZWN0ZWRUaGlzLT5kaXNwYXRjaFdoZWVsRXZlbnQocGFnZUlE
LCB3aGVlbEV2ZW50KTsKKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgcGFnZUlELCB3aGVlbEV2ZW50LCBzdGVwcyA9IHByb2Nlc3Np
bmdTdGVwcyAtIFdoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM6OlNjcm9sbGluZ1RocmVhZF0oKSBt
dXRhYmxlIHsKKyAgICAgICAgcHJvdGVjdGVkVGhpcy0+ZGlzcGF0Y2hXaGVlbEV2ZW50KHBhZ2VJ
RCwgd2hlZWxFdmVudCwgc3RlcHMpOwogICAgIH0pOwogfQogCi12b2lkIEV2ZW50RGlzcGF0Y2hl
cjo6ZGlzcGF0Y2hXaGVlbEV2ZW50KFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCwgY29uc3QgV2ViV2hl
ZWxFdmVudCYgd2hlZWxFdmVudCkKK3ZvaWQgRXZlbnREaXNwYXRjaGVyOjpkaXNwYXRjaFdoZWVs
RXZlbnQoUGFnZUlkZW50aWZpZXIgcGFnZUlELCBjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2
ZW50LCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcz4gcHJvY2Vzc2luZ1N0ZXBz
KQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTI0Niw3ICsyNDcsNyBA
QCB2b2lkIEV2ZW50RGlzcGF0Y2hlcjo6ZGlzcGF0Y2hXaGVlbEV2ZW50KFBhZ2VJZGVudGlmaWVy
IHBhZ2VJRCwgY29uc3QgV2ViV2hlZWxFdgogICAgIGlmICghd2ViUGFnZSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgd2ViUGFnZS0+d2hlZWxFdmVudCh3aGVlbEV2ZW50KTsKKyAgICB3ZWJQYWdl
LT53aGVlbEV2ZW50KHdoZWVsRXZlbnQsIHByb2Nlc3NpbmdTdGVwcyk7CiB9CiAKICNpZiBFTkFC
TEUoTUFDX0dFU1RVUkVfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvRXZlbnREaXNwYXRjaGVyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViUGFnZS9FdmVudERpc3BhdGNoZXIuaAppbmRleCAzNzJlMjBlN2ExYzc2ZWMwMWY4NjM4MTMz
YTI4ZDExMjY2ZTA5ZTAzLi4zNzVkMTNkYmE0NzE2YmFjYjIxMTVjZGRmYjBkMTdjODlhNmIxY2Zh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9FdmVudERpc3Bh
dGNoZXIuaApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZUlkZW50aWZpZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtV2hlZWxFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
V2hlZWxFdmVudERlbHRhRmlsdGVyLmg+CiAjaW5jbHVkZSA8bWVtb3J5PgogI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CkBAIC05Miw4ICs5Myw4IEBAIHByaXZhdGU6CiAjZW5kaWYKIAogICAgIC8v
IFRoaXMgaXMgY2FsbGVkIG9uIHRoZSBtYWluIHRocmVhZC4KLSAgICB2b2lkIGRpc3BhdGNoV2hl
ZWxFdmVudChXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgY29uc3QgV2ViV2hlZWxFdmVudCYpOwot
ICAgIHZvaWQgZGlzcGF0Y2hXaGVlbEV2ZW50VmlhTWFpblRocmVhZChXZWJDb3JlOjpQYWdlSWRl
bnRpZmllciwgY29uc3QgV2ViV2hlZWxFdmVudCYpOworICAgIHZvaWQgZGlzcGF0Y2hXaGVlbEV2
ZW50KFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBjb25zdCBXZWJXaGVlbEV2ZW50JiwgT3B0aW9u
U2V0PFdlYkNvcmU6OldoZWVsRXZlbnRQcm9jZXNzaW5nU3RlcHM+KTsKKyAgICB2b2lkIGRpc3Bh
dGNoV2hlZWxFdmVudFZpYU1haW5UaHJlYWQoV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIGNvbnN0
IFdlYldoZWVsRXZlbnQmLCBPcHRpb25TZXQ8V2ViQ29yZTo6V2hlZWxFdmVudFByb2Nlc3NpbmdT
dGVwcz4pOwogCiAjaWYgRU5BQkxFKElPU19UT1VDSF9FVkVOVFMpCiAgICAgdm9pZCBkaXNwYXRj
aFRvdWNoRXZlbnRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCmluZGV4IGZmZWEzMmMyZDI0ZWQ4YjliYmE2ZDAzNmUwMTkzNDdjOWUyNmFlODYuLmNi
NzJiNWIxOWQxMTdhNDllZTEyODVlODExYjg5ZWQzNTZkMDliNzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0yODU1LDIzICsyODU1LDIzIEBA
IHZvaWQgV2ViUGFnZTo6bW91c2VFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBtb3VzZUV2ZW50
KQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVjZWl2ZUV2ZW50KHN0YXRp
Y19jYXN0PHVpbnQzMl90Pihtb3VzZUV2ZW50LnR5cGUoKSksIGhhbmRsZWQpKTsKIH0KIAotc3Rh
dGljIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JiB3aGVlbEV2ZW50
LCBQYWdlKiBwYWdlKQorc3RhdGljIGJvb2wgaGFuZGxlV2hlZWxFdmVudChjb25zdCBXZWJXaGVl
bEV2ZW50JiB3aGVlbEV2ZW50LCBQYWdlKiBwYWdlLCBPcHRpb25TZXQ8V2hlZWxFdmVudFByb2Nl
c3NpbmdTdGVwcz4gcHJvY2Vzc2luZ1N0ZXBzKQogewogICAgIEZyYW1lJiBmcmFtZSA9IHBhZ2Ut
Pm1haW5GcmFtZSgpOwogICAgIGlmICghZnJhbWUudmlldygpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBQbGF0Zm9ybVdoZWVsRXZlbnQgcGxhdGZvcm1XaGVlbEV2ZW50ID0gcGxhdGZv
cm0od2hlZWxFdmVudCk7Ci0gICAgcmV0dXJuIHBhZ2UtPnVzZXJJbnB1dEJyaWRnZSgpLmhhbmRs
ZVdoZWVsRXZlbnQocGxhdGZvcm1XaGVlbEV2ZW50KTsKKyAgICByZXR1cm4gcGFnZS0+dXNlcklu
cHV0QnJpZGdlKCkuaGFuZGxlV2hlZWxFdmVudChwbGF0Zm9ybVdoZWVsRXZlbnQsIHByb2Nlc3Np
bmdTdGVwcyk7CiB9CiAKLXZvaWQgV2ViUGFnZTo6d2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2
ZW50JiB3aGVlbEV2ZW50KQordm9pZCBXZWJQYWdlOjp3aGVlbEV2ZW50KGNvbnN0IFdlYldoZWVs
RXZlbnQmIHdoZWVsRXZlbnQsIE9wdGlvblNldDxXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0ZXBzPiBw
cm9jZXNzaW5nU3RlcHMpCiB7CiAgICAgbV91c2VyQWN0aXZpdHkuaW1wdWxzZSgpOwogCiAgICAg
Q3VycmVudEV2ZW50IGN1cnJlbnRFdmVudCh3aGVlbEV2ZW50KTsKIAotICAgIGJvb2wgaGFuZGxl
ZCA9IGhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCwgbV9wYWdlLmdldCgpKTsKKyAgICBib29s
IGhhbmRsZWQgPSBoYW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQsIG1fcGFnZS5nZXQoKSwgcHJv
Y2Vzc2luZ1N0ZXBzKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUmVj
ZWl2ZUV2ZW50KHN0YXRpY19jYXN0PHVpbnQzMl90Pih3aGVlbEV2ZW50LnR5cGUoKSksIGhhbmRs
ZWQpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAppbmRl
eCAxYWZjZjI0NGJlN2QyMzYzMWQ3YzgxOGZmYzNmNmEyNjFjNTY3NGI5Li5mMTIyOTVhNGRlYWUz
NDg5ZmRjNGNlNGRkMDk0MDhiZWFhYWE5NjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oCkBAIC05Miw2ICs5Miw3IEBACiAjaW5jbHVkZSA8cGFsL0h5c3Rl
cmVzaXNBY3Rpdml0eS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3Rm
L01vbm90b25pY1RpbWUuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8d3RmL1Nl
Y29uZHMuaD4KQEAgLTIwNSw2ICsyMDYsNyBAQCBlbnVtIGNsYXNzIFNlbGVjdGlvbkRpcmVjdGlv
biA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFNob3VsZFRyZWF0QXNDb250aW51aW5nTG9hZCA6IGJv
b2w7CiBlbnVtIGNsYXNzIFRleHRJbmRpY2F0b3JQcmVzZW50YXRpb25UcmFuc2l0aW9uIDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgVGV4dEdyYW51bGFyaXR5IDogdWludDhfdDsKK2VudW0gY2xhc3Mg
V2hlZWxFdmVudFByb2Nlc3NpbmdTdGVwcyA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFdyaXRpbmdE
aXJlY3Rpb24gOiB1aW50OF90OwogCiB1c2luZyBQbGF0Zm9ybURpc3BsYXlJRCA9IHVpbnQzMl90
OwpAQCAtMTAwOSw3ICsxMDExLDcgQEAgcHVibGljOgogICAgIHZvaWQgY29udGV4dE1lbnVTaG93
aW5nKCkgeyBtX2lzU2hvd2luZ0NvbnRleHRNZW51ID0gdHJ1ZTsgfQogI2VuZGlmCiAKLSAgICB2
b2lkIHdoZWVsRXZlbnQoY29uc3QgV2ViV2hlZWxFdmVudCYpOworICAgIHZvaWQgd2hlZWxFdmVu
dChjb25zdCBXZWJXaGVlbEV2ZW50JiwgT3B0aW9uU2V0PFdlYkNvcmU6OldoZWVsRXZlbnRQcm9j
ZXNzaW5nU3RlcHM+KTsKIAogICAgIHZvaWQgd2hlZWxFdmVudEhhbmRsZXJzQ2hhbmdlZChib29s
KTsKICAgICB2b2lkIHJlY29tcHV0ZVNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50c1N0
YXRlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCmluZGV4IDdlMWEwZTMyN2VjNDE4
YzNjMmQ2M2IzNDE0NzUzYjYxMmVhMTAyM2YuLjAyNDUxMWQ3NjEzMjZlYmVjODVlNDhjNmI5OTMz
MDc1YjhkYzVjNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuY3BwCkBAIC0yMTM2LDcg
KzIxMzYsNyBAQCBib29sIFdlYlZpZXc6Om1vdXNlV2hlZWwoV1BBUkFNIHdQYXJhbSwgTFBBUkFN
IGxQYXJhbSwgYm9vbCBpc01vdXNlSFdoZWVsKQogICAgIGlmICghY29yZUZyYW1lKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4gY29yZUZyYW1lLT5ldmVudEhhbmRsZXIoKS5o
YW5kbGVXaGVlbEV2ZW50KHdoZWVsRXZlbnQpOworICAgIHJldHVybiBjb3JlRnJhbWUtPmV2ZW50
SGFuZGxlcigpLmhhbmRsZVdoZWVsRXZlbnQod2hlZWxFdmVudCwgeyBXaGVlbEV2ZW50UHJvY2Vz
c2luZ1N0ZXBzOjpNYWluVGhyZWFkRm9yU2Nyb2xsaW5nLCBXaGVlbEV2ZW50UHJvY2Vzc2luZ1N0
ZXBzOjpNYWluVGhyZWFkRm9yRE9NRXZlbnREaXNwYXRjaCB9KTsKIH0KIAogYm9vbCBXZWJWaWV3
Ojp2ZXJ0aWNhbFNjcm9sbChXUEFSQU0gd1BhcmFtLCBMUEFSQU0gLypsUGFyYW0qLykK
</data>

          </attachment>
      

    </bug>

</bugzilla>