<?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>184625</bug_id>
          
          <creation_ts>2018-04-13 21:44:48 -0700</creation_ts>
          <short_desc>[LayoutReloaded] Update class documentation</short_desc>
          <delta_ts>2018-04-13 21:49:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1414615</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-04-13 21:44:48 -0700</bug_when>
    <thetext>ssia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414616</commentid>
    <comment_count>1</comment_count>
      <attachid>337958</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-04-13 21:46:04 -0700</bug_when>
    <thetext>Created attachment 337958
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414617</commentid>
    <comment_count>2</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-04-13 21:48:40 -0700</bug_when>
    <thetext>Committed r230656: &lt;https://trac.webkit.org/changeset/230656&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1414618</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-13 21:49:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/39432296&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>337958</attachid>
            <date>2018-04-13 21:46:04 -0700</date>
            <delta_ts>2018-04-13 21:46:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184625-20180413214604.patch</filename>
            <type>text/plain</type>
            <size>49672</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwNjU1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzRmZjI0N2ZlNzBiYjk5Y2U5ZmVhMTI4NzNkZmQ2NGZk
MzM3MDgyMi4uYzI5YjU3Mjg2MWY1MzU1Zjc0NmVjZGRiNGY3OWYzYTkwOWYyNjY0YiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQx
IEBACisyMDE4LTA0LTEzICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAg
ICAgW0xheW91dFJlbG9hZGVkXSBVcGRhdGUgY2xhc3MgZG9jdW1lbnRhdGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTg0NjI1CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9E
aXNwbGF5VHJlZS9Cb3guanM6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0Nv
bnRleHQvQmxvY2tGb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuanM6CisgICAgICAg
ICogTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQvQmxvY2tGb3JtYXR0aW5nL0Jsb2Nr
TWFyZ2luQ29sbGFwc2UuanM6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0Nv
bnRleHQvRmxvYXRpbmdDb250ZXh0LmpzOgorICAgICAgICAqIExheW91dFJlbG9hZGVkL0Zvcm1h
dHRpbmdDb250ZXh0L0Zvcm1hdHRpbmdDb250ZXh0LmpzOgorICAgICAgICAqIExheW91dFJlbG9h
ZGVkL0Zvcm1hdHRpbmdDb250ZXh0L0lubGluZUZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQuanM6CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQvSW5s
aW5lRm9ybWF0dGluZy9MaW5lLmpzOgorICAgICAgICAqIExheW91dFJlbG9hZGVkL0Zvcm1hdHRp
bmdTdGF0ZS9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5qczoKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRl
ZC9Gb3JtYXR0aW5nU3RhdGUvRmxvYXRpbmdTdGF0ZS5qczoKKyAgICAgICAgKiBMYXlvdXRSZWxv
YWRlZC9Gb3JtYXR0aW5nU3RhdGUvRm9ybWF0dGluZ1N0YXRlLmpzOgorICAgICAgICAqIExheW91
dFJlbG9hZGVkL0Zvcm1hdHRpbmdTdGF0ZS9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuanM6CisgICAg
ICAgICogTGF5b3V0UmVsb2FkZWQvTGF5b3V0U3RhdGUuanM6CisgICAgICAgICogTGF5b3V0UmVs
b2FkZWQvTGF5b3V0VHJlZS9CbG9ja0NvbnRhaW5lci5qczoKKyAgICAgICAgKiBMYXlvdXRSZWxv
YWRlZC9MYXlvdXRUcmVlL0JveC5qczoKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9MYXlvdXRU
cmVlL0NvbnRhaW5lci5qczoKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9MYXlvdXRUcmVlL0lu
bGluZUJveC5qczoKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9MYXlvdXRUcmVlL0lubGluZUNv
bnRhaW5lci5qczoKKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9MYXlvdXRUcmVlL1RleHQuanM6
CisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Jsb2NrQ29udGFpbmVyLmg6
IFJlbW92ZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9taXNj
L2hlYWRlcnMvQmxvY2tNYXJnaW5Db2xsYXBzZS5oOiBSZW1vdmVkLgorICAgICAgICAqIExheW91
dFJlbG9hZGVkL21pc2MvaGVhZGVycy9Cb3guaDogUmVtb3ZlZC4KKyAgICAgICAgKiBMYXlvdXRS
ZWxvYWRlZC9taXNjL2hlYWRlcnMvQ29udGFpbmVyLmg6IFJlbW92ZWQuCisgICAgICAgICogTGF5
b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Zsb2F0aW5nQ29udGV4dC5oOiBSZW1vdmVkLgorICAg
ICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9Gb3JtYXR0aW5nQ29udGV4dC5oOiBS
ZW1vdmVkLgorICAgICAgICAqIExheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9Jbml0aWFsQmxv
Y2tDb250YWluZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxvYWRlZC9taXNjL2hl
YWRlcnMvSW5saW5lQm94Lmg6IFJlbW92ZWQuCisgICAgICAgICogTGF5b3V0UmVsb2FkZWQvbWlz
Yy9oZWFkZXJzL0xheW91dENvbnRleHQuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBMYXlvdXRSZWxv
YWRlZC9taXNjL2hlYWRlcnMvTGluZS5oOiBSZW1vdmVkLgorICAgICAgICAqIExheW91dFJlbG9h
ZGVkL21pc2MvaGVhZGVycy9UZXh0Lmg6IFJlbW92ZWQuCisKIDIwMTgtMDQtMTMgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTGF5b3V0UmVsb2FkZWRdIEFkZCBz
aW1wbGUgaW1wbGVtZW50YXRpb24gZm9yIEZvcm1hdHRpbmdTdGF0ZTo6bWFya05lZWRzTGF5b3V0
KCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Rpc3BsYXlUcmVlL0JveC5qcyBi
L1Rvb2xzL0xheW91dFJlbG9hZGVkL0Rpc3BsYXlUcmVlL0JveC5qcwppbmRleCBlZDU0MDg3M2Rk
M2ExNDgzYTViYTBmNDVhNWMyYzg4ZGU1YmFmNDFhLi5jOTczZWMyYzFhNDkxYzdkMjczZDA4M2Rm
ZGU3MGFjZWViNjc0MjhlIDEwMDY0NAotLS0gYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9EaXNwbGF5
VHJlZS9Cb3guanMKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRGlzcGxheVRyZWUvQm94Lmpz
CkBAIC0yMyw2ICsyMyw2MCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKgorbmFtZXNwYWNl
IERpc3BsYXkgeworY2xhc3MgQm94IHsKKyAgICBzZXRSZWN0KExheW91dFJlY3QpOworICAgIHNl
dFRvcExlZnQoTGF5b3V0UG9pbnQpOworICAgIHNldFRvcChMYXlvdXRVbml0KTsKKyAgICBzZXRM
ZWZ0KExheW91dFVuaXQpOworICAgIHNldFNpemUoTGF5b3V0U2l6ZSk7CisgICAgc2V0V2lkdGgo
TGF5b3V0VW5pdCk7CisgICAgc2V0SGVpZ2h0KExheW91dFVuaXQpOworCisgICAgTGF5b3V0UmVj
dCByZWN0KCk7CisKKyAgICBMYXlvdXRVbml0IHRvcCgpOworICAgIExheW91dFVuaXQgbGVmdCgp
OworICAgIExheW91dFVuaXQgYm90dG9tKCk7CisgICAgTGF5b3V0VW5pdCByaWdodCgpOworCisg
ICAgTGF5b3V0UG9pbnQgdG9wTGVmdCgpOworICAgIExheW91dFBvaW50IGJvdHRvbVJpZ2h0KCk7
CisKKyAgICBMYXlvdXRTaXplIHNpemUoKTsKKyAgICBMYXlvdXRVbml0IHdpZHRoKCk7CisgICAg
TGF5b3V0VW5pdCBoZWlnaHQoKTsKKworICAgIHNldE1hcmdpblRvcChMYXlvdXRVbml0KTsKKyAg
ICBzZXRNYXJnaW5MZWZ0KExheW91dFVuaXQpOworICAgIHNldE1hcmdpbkJvdHRvbShMYXlvdXRV
bml0KTsKKyAgICBzZXRNYXJnaW5SaWdodChMYXlvdXRVbml0KTsKKworICAgIExheW91dFVuaXQg
bWFyZ2luVG9wKCk7CisgICAgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KCk7CisgICAgTGF5b3V0VW5p
dCBtYXJnaW5Cb3R0b20oKTsKKyAgICBMYXlvdXRVbml0IG1hcmdpblJpZ2h0KCk7CisKKyAgICBM
YXlvdXRSZWN0IG1hcmdpbkJveCgpOworICAgIExheW91dFJlY3QgYm9yZGVyQm94KCk7CisgICAg
TGF5b3V0UmVjdCBwYWRkaW5nQm94KCk7CisgICAgTGF5b3V0UmVjdCBjb250ZW50Qm94KCk7CisK
KyAgICB2b2lkIHNldFBhcmVudChEaXNwbGF5OjpCb3gmKTsKKyAgICB2b2lkIHNldE5leHRTaWJs
aW5nKERpc3BsYXk6OkJveCYpOworICAgIHZvaWQgc2V0UHJldmlvdXNTaWJsaW5nKERpc3BsYXk6
OkJveCYpOworICAgIHZvaWQgc2V0Rmlyc3RDaGlsZChEaXNwbGF5OjpCb3gmKTsKKyAgICB2b2lk
IHNldExhc3RDaGlsZChEaXNwbGF5OjpCb3gmKTsKKworICAgIERpc3BsYXk6OkJveCogcGFyZW50
KCk7CisgICAgRGlzcGxheTo6Qm94KiBuZXh0U2libGluZygpOworICAgIERpc3BsYXk6OkJveCog
cHJldmlvdXNTaWJsaW5nKCk7CisgICAgRGlzcGxheTo6Qm94KiBmaXJzdENoaWxkKCk7CisgICAg
RGlzcGxheTo6Qm94KiBsYXN0Q2hpbGQoKTsKK307Cit9CisqLwogdmFyIERpc3BsYXkgPSB7IH0K
IAogRGlzcGxheS5Cb3ggPSBjbGFzcyBCb3ggewpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVs
b2FkZWQvRm9ybWF0dGluZ0NvbnRleHQvQmxvY2tGb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0Nv
bnRleHQuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9CbG9ja0Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5qcwppbmRleCAzOTNhNzUxNjAxYzk3NzRh
MTFjZWYyMTExOGFlOWFjYjM2MmI4ZWIxLi5hYTE2NzNmN2ZkOTM1YzQwN2VlN2Y0ZTAxMjQyNzlh
NjM4ZGZiYzg4IDEwMDY0NAotLS0gYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29u
dGV4dC9CbG9ja0Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5qcworKysgYi9Ub29s
cy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9CbG9ja0Zvcm1hdHRpbmcvQmxvY2tG
b3JtYXR0aW5nQ29udGV4dC5qcwpAQCAtMjIsNiArMjIsMjYgQEAKICAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQog
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KICAqLworCisvKgorY2xhc3MgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCA6
IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgdm9pZCBsYXlvdXQoKSBv
dmVycmlkZTsKKworICAgIHZvaWQgY29tcHV0ZVdpZHRoKGNvbnN0IExheW91dDo6Qm94Jikgb3Zl
cnJpZGU7CisgICAgdm9pZCBjb21wdXRlSGVpZ2h0KGNvbnN0IExheW91dDo6Qm94Jikgb3ZlcnJp
ZGU7CisgCisgICAgdm9pZCBtYXJnaW5Ub3AoY29uc3QgTGF5b3V0OjpCb3gmKSBvdmVycmlkZTsK
KyAgICB2b2lkIG1hcmdpbkJvdHRvbShjb25zdCBMYXlvdXQ6OkJveCYpIG92ZXJyaWRlOworCitw
cml2YXRlOgorICAgIHZvaWQgY29tcHV0ZVN0YXRpY1Bvc2l0aW9uKGNvbnN0IExheW91dDo6Qm94
Jik7CisgICAgdm9pZCBjb21wdXRlSW5GbG93SGVpZ2h0KGNvbnN0IExheW91dDo6Qm94Jik7Cisg
ICAgdm9pZCBob3Jpem9udGFsQ29uc3RyYWludChjb25zdCBMYXlvdXQ6OkJveCYpOworICAgIHZv
aWQgY29udGVudEhlaWdodChjb25zdCBMYXlvdXQ6OkJveCYpOworfTsKKyovCisKIGNsYXNzIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQgZXh0ZW5kcyBGb3JtYXR0aW5nQ29udGV4dCB7CiAgICAgY29u
c3RydWN0b3IoYmxvY2tGb3JtYXR0aW5nU3RhdGUpIHsKICAgICAgICAgc3VwZXIoYmxvY2tGb3Jt
YXR0aW5nU3RhdGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGlu
Z0NvbnRleHQvQmxvY2tGb3JtYXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuanMgYi9Ub29scy9M
YXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9CbG9ja0Zvcm1hdHRpbmcvQmxvY2tNYXJn
aW5Db2xsYXBzZS5qcwppbmRleCA4NDFhYWY4ZTZhN2EwNzA0YjllYzRkNDZiNmY4YjI0MDA3NGVl
YmQ3Li41MTU2MTg5NTQzZjZhNjZlOTljZTQ5YmI5Y2IwZTEwMmYyMGNiMzhiIDEwMDY0NAotLS0g
YS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9CbG9ja0Zvcm1hdHRpbmcv
QmxvY2tNYXJnaW5Db2xsYXBzZS5qcworKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0
aW5nQ29udGV4dC9CbG9ja0Zvcm1hdHRpbmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5qcwpAQCAtMjIs
NiArMjIsMjcgQEAKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLworLyoKK2Ns
YXNzIEJsb2NrTWFyZ2luQ29sbGFwc2UgeworcHVibGljOgorICAgIExheW91dFVuaXQgbWFyZ2lu
VG9wKGNvbnN0IExheW91dDo6Qm94Jik7CisgICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oY29u
c3QgTGF5b3V0OjpCb3gmKTsKKworcHJpdmF0ZToKKyAgICBib29sIGlzTWFyZ2luVG9wQ29sbGFw
c2VkV2l0aFNpYmxpbmcoY29uc3QgTGF5b3V0OjpCb3gmKTsKKyAgICBib29sIGlzTWFyZ2luQm90
dG9tQ29sbGFwc2VkV2l0aFNpYmxpbmcoY29uc3QgTGF5b3V0OjpCb3gmKTsKKyAgICBib29sIGlz
TWFyZ2luVG9wQ29sbGFwc2VkV2l0aFBhcmVudChjb25zdCBMYXlvdXQ6OkJveCYpOworICAgIGJv
b2wgaXNNYXJnaW5Cb3R0b21Db2xsYXBzZWRXaXRoUGFyZW50KGNvbnN0IExheW91dDo6Qm94Jik7
CisKKyAgICBMYXlvdXRVbml0IG5vbkNvbGxhcHNlZE1hcmdpblRvcChjb25zdCBMYXlvdXQ6OkJv
eCYpOworICAgIExheW91dFVuaXQgbm9uQ29sbGFwc2VkTWFyZ2luQm90dG9tKGNvbnN0IExheW91
dDo6Qm94Jik7CisgICAgTGF5b3V0VW5pdCBjb2xsYXBzZWRNYXJnaW5Ub3BGcm9tRmlyc3RDaGls
ZChjb25zdCBMYXlvdXQ6OkJveCYpOworICAgIExheW91dFVuaXQgY29sbGFwc2VkTWFyZ2luQm90
dG9tRnJvbUxhc3RDaGlsZChjb25zdCBMYXlvdXQ6OkJveCYpOworICAgIExheW91dFVuaXQgbWFy
Z2luVmFsdWUoY3VycmVudE1hcmdpblZhbHVlLCBjYW5kaWRhdGVNYXJnaW5WYWx1ZSk7CisKKyAg
ICBib29sIGhhc0Fkam9pbmluZ01hcmdpblRvcEFuZEJvdHRvbShjb25zdCBMYXlvdXQ6OkJveCYp
OworfTsKKyovCiBjbGFzcyBCbG9ja01hcmdpbkNvbGxhcHNlIHsKIAogICAgIHN0YXRpYyBtYXJn
aW5Ub3AobGF5b3V0Qm94KSB7CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3Jt
YXR0aW5nQ29udGV4dC9GbG9hdGluZ0NvbnRleHQuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9G
b3JtYXR0aW5nQ29udGV4dC9GbG9hdGluZ0NvbnRleHQuanMKaW5kZXggZjNmNjQ0OTYzNzY2MmRl
MjQ5MDYxZWFmMjA5MDRkYjNjMjc3MjMwOC4uMGIxMzE3Yzk1Y2UxN2ExNDhiZDIwM2JiOThmYmZm
ZDg1YmUxMmQwYSAxMDA2NDQKLS0tIGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0Nv
bnRleHQvRmxvYXRpbmdDb250ZXh0LmpzCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1h
dHRpbmdDb250ZXh0L0Zsb2F0aW5nQ29udGV4dC5qcwpAQCAtMjMsNiArMjMsMjAgQEAKICAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCiAgKi8KIAorLyoKK2NsYXNzIEZsb2F0aW5nQ29udGV4dCB7CitwdWJsaWM6Cisg
ICAgdm9pZCBjb21wdXRlUG9zaXRpb24oTGF5b3V0OjpCb3gmKTsKKyAgICBMYXlvdXRVbml0IGxl
ZnQoTGF5b3V0VW5pdCB2ZXJ0aWNhbFBvc2l0aW9uKTsKKyAgICBMYXlvdXRVbml0IHJpZ2h0KExh
eW91dFVuaXQgdmVydGljYWxQb3NpdGlvbik7CisgICAgTGF5b3V0VW5pdCBib3R0b20oKTsKKwor
cHJpdmF0ZToKKyAgICBMYXlvdXRQb2ludCBwb3NpdGlvbkZvckZsb2F0aW5nKGNvbnN0IExheW91
dDo6Qm94Jik7CisgICAgTGF5b3V0UG9pbnQgcG9zaXRpb25Gb3JDbGVhcihjb25zdCBMYXlvdXQ6
OkJveCYpOworICAgIExheW91dFBvaW50IGNvbXB1dGVQb3NpdGlvblRvQXZvaWRJbnRydWRpbmdG
bG9hdHMoY29uc3QgTGF5b3V0OjpCb3gmKTsKK307CisqLwogLy8gQWxsIGdlb21ldHJ5IGhlcmUg
aXMgYWJzb2x1dGUgdG8gdGhlIGZvcm1hdHRpbmcgY29udGV4dCdzIHJvb3QuCiBjbGFzcyBGbG9h
dGluZ0NvbnRleHQgewogICAgIGNvbnN0cnVjdG9yKGZsb2F0aW5nU3RhdGUpIHsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0L0Zvcm1hdHRpbmdDb250
ZXh0LmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQvRm9ybWF0dGlu
Z0NvbnRleHQuanMKaW5kZXggZjI5NGQ3ZTQxMTNmYjU3YWVhN2U2NmE0MDhlYzljZTliNzFhN2Fl
My4uMjE4NzlmM2MxMTE3ZDE2NmU4N2QyOTU1OTY1NjU2N2VlZDU1OGI1YyAxMDA2NDQKLS0tIGEv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQvRm9ybWF0dGluZ0NvbnRleHQu
anMKKysrIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQvRm9ybWF0dGlu
Z0NvbnRleHQuanMKQEAgLTIzLDYgKzIzLDQxIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8q
CitjbGFzcyBGb3JtYXR0aW5nQ29udGV4dCB7CitwdWJsaWM6CisgICAgTGF5b3V0OjpDb250YWlu
ZXImIGZvcm1hdHRpbmdSb290KCk7CisgICAgRm9ybWF0dGluZ1N0YXRlJiBmb3JtYXR0aW5nU3Rh
dGUoKTsKKyAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKTsKKyAgICBGbG9hdGluZ0NvbnRl
eHQmIGZsb2F0aW5nQ29udGV4dCgpOworCisgICAgdmlydHVhbCB2b2lkIGxheW91dCgpOworCisg
ICAgdmlydHVhbCB2b2lkIGNvbXB1dGVXaWR0aChjb25zdCBMYXlvdXQ6OkJveCYpOworICAgIHZp
cnR1YWwgdm9pZCBjb21wdXRlSGVpZ2h0KGNvbnN0IExheW91dDo6Qm94Jik7CisKKyAgICB2aXJ0
dWFsIExheW91dFVuaXQgbWFyZ2luVG9wKGNvbnN0IExheW91dDo6Qm94Jik7CisgICAgdmlydHVh
bCBMYXlvdXRVbml0IG1hcmdpbkxlZnQoY29uc3QgTGF5b3V0OjpCb3gmKTsKKyAgICB2aXJ0dWFs
IExheW91dFVuaXQgbWFyZ2luQm90dG9tKGNvbnN0IExheW91dDo6Qm94Jik7CisgICAgdmlydHVh
bCBMYXlvdXRVbml0IG1hcmdpblJpZ2h0KGNvbnN0IExheW91dDo6Qm94Jik7CisKK3ByaXZhdGU6
CisgICAgdm9pZCBjb21wdXRlRmxvYXRpbmdXaWR0aChjb25zdCBMYXlvdXQ6OkJveCYpOworICAg
IHZvaWQgY29tcHV0ZUZsb2F0aW5nSGVpZ2h0KGNvbnN0IExheW91dDo6Qm94Jik7CisKKyAgICB2
b2lkIHBsYWNlSW5GbG93UG9zaXRpb25lZENoaWxkcmVuKGNvbnN0IExheW91dDo6Qm94Jik7Cisg
ICAgdm9pZCBjb21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0aW9uKGNvbnN0IExheW91dDo6Qm94
Jik7CisgICAgdm9pZCBjb21wdXRlSW5GbG93V2lkdGgoY29uc3QgTGF5b3V0OjpCb3gmKTsKKwor
ICAgIHZvaWQgbGF5b3V0T3V0T2ZGbG93RGVzY2VuZGFudHMoKTsKKworICAgIHZvaWQgY29tcHV0
ZU91dE9mRmxvd1dpZHRoKGNvbnN0IExheW91dDo6Qm94Jik7CisgICAgdm9pZCBjb21wdXRlT3V0
T2ZGbG93SGVpZ2h0KGNvbnN0IExheW91dDo6Qm94Jik7CisgICAgdm9pZCBjb21wdXRlT3V0T2ZG
bG93UG9zaXRpb24oY29uc3QgTGF5b3V0OjpCb3gmKTsKKworICAgIExheW91dFVuaXQgc2hyaW5r
VG9GaXRXaWR0aChMYXlvdXQ6OkJveCYpOworfTsKKyovCiBjbGFzcyBGb3JtYXR0aW5nQ29udGV4
dCB7CiAgICAgY29uc3RydWN0b3IoZm9ybWF0dGluZ1N0YXRlKSB7CiAgICAgICAgIHRoaXMubV9m
b3JtYXR0aW5nU3RhdGUgPSBmb3JtYXR0aW5nU3RhdGU7CmRpZmYgLS1naXQgYS9Ub29scy9MYXlv
dXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4dC9JbmxpbmVGb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0LmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0NvbnRleHQv
SW5saW5lRm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5qcwppbmRleCBmYjcwOTBl
MmI1MTg1MmU4MDk5NjI4MmMyYjZiZTYzMWFjMjQ5NTMzLi5lZTk3M2RmNmUxOTU1MzQ4MDRiYTA1
ODhhZjAwZmI3NDQ1YTRlNTU0IDEwMDY0NAotLS0gYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3Jt
YXR0aW5nQ29udGV4dC9JbmxpbmVGb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0Lmpz
CisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdDb250ZXh0L0lubGluZUZvcm1h
dHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuanMKQEAgLTIzLDYgKzIzLDIwIEBACiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKKy8qCitjbGFzcyBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCB7Citw
dWJsaWM6CisgICAgdm9pZCBsYXlvdXQoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICB2b2lk
IGhhbmRsZUlubGluZUNvbnRhaW5lcihjb25zdCBMYXlvdXQ6OkNvbnRhaW5lciYpOworICAgIHZv
aWQgaGFuZGxlSW5saW5lQmxvY2tDb250YWluZXIoY29uc3QgTGF5b3V0OjpDb250YWluZXImKTsK
KyAgICB2b2lkIGhhbmRsZUlubGluZUNvbnRlbnQoY29uc3QgTGF5b3V0OjpCb3gmKTsKKyAgICB2
b2lkIGhhbmRsZUlubGluZUJveChjb25zdCBMYXlvdXQ6OklubGluZUJveCYpOworICAgIHZvaWQg
aGFuZGxlVGV4dChjb25zdCBMYXlvdXQ6OklubGluZUJveCYpOworICAgIHZvaWQgaGFuZGxlRmxv
YXRpbmdCb3goY29uc3QgTGF5b3V0OjpCb3gmKTsKK307CisqLwogY2xhc3MgSW5saW5lRm9ybWF0
dGluZ0NvbnRleHQgZXh0ZW5kcyBGb3JtYXR0aW5nQ29udGV4dCB7CiAgICAgY29uc3RydWN0b3Io
aW5saW5lRm9ybWF0dGluZ1N0YXRlKSB7CiAgICAgICAgIHN1cGVyKGlubGluZUZvcm1hdHRpbmdT
dGF0ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nQ29udGV4
dC9JbmxpbmVGb3JtYXR0aW5nL0xpbmUuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0
aW5nQ29udGV4dC9JbmxpbmVGb3JtYXR0aW5nL0xpbmUuanMKaW5kZXggZjRmYTExZmVjMWE5NzQ5
ZmE3ZmY1OTJlZmJjMWQzNGU2NDA2ZDU3Yi4uZTA1YzRmMDVlYzU4NTlhODc3OWRlYmFkNGZkZGRl
NDVjYjQxNDY0NSAxMDA2NDQKLS0tIGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ0Nv
bnRleHQvSW5saW5lRm9ybWF0dGluZy9MaW5lLmpzCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVk
L0Zvcm1hdHRpbmdDb250ZXh0L0lubGluZUZvcm1hdHRpbmcvTGluZS5qcwpAQCAtMjMsNiArMjMs
MjMgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLyoKK2NsYXNzIExpbmUgeworcHVibGljOgor
ICAgIGJvb2wgaXNFbXB0eSgpOworCisgICAgTGF5b3V0VW5pdCBhdmFpbGFibGVXaWR0aCgpOwor
CisgICAgTGF5b3V0UmVjdCByZWN0KCk7CisgICAgbGluZUJveGVzKCk7CisKKyAgICBzaHJpbmso
ZmxvYXQgd2lkdGgpOworICAgIGFkanVzdFdpdGhPZmZzZXQoTGF5b3V0VW5pdCBvZmZzZXQpOwor
ICAgIG1vdmVDb250ZW50SG9yaXpvbnRhbGx5KExheW91dFVuaXQgb2Zmc2V0KTsKKyAgICBhZGRJ
bmxpbmVDb250YWluZXJCb3goTGF5b3V0U2l6ZSk7CisgICAgYWRkVGV4dExpbmVCb3godW5zaWdu
ZWQgc3RhcnRQb3NpdGlvbiwgdW5zaWduZWQgZW5kUG9zaXRpb24sIExheW91dFNpemUgc2l6ZSk7
Cit9OworKi8KIGNsYXNzIExpbmUgewogICAgIGNvbnN0cnVjdG9yKHRvcExlZnQsIGhlaWdodCwg
YXZhaWxhYmxlV2lkdGgpIHsKICAgICAgICAgdGhpcy5tX2F2YWlsYWJsZVdpZHRoID0gYXZhaWxh
YmxlV2lkdGg7CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nU3Rh
dGUvQmxvY2tGb3JtYXR0aW5nU3RhdGUuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0
aW5nU3RhdGUvQmxvY2tGb3JtYXR0aW5nU3RhdGUuanMKaW5kZXggMDdiZDkwZDYzZDhkOTNiMGNl
NDQxOWIzNjA5MGMxNGNiZGZkOGIxMS4uYTY5MzljNGYyYTkyYzQ0ZjgxMDMzNzE2Nzk1OWQ1MWI2
OTRkMjgyZSAxMDA2NDQKLS0tIGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ1N0YXRl
L0Jsb2NrRm9ybWF0dGluZ1N0YXRlLmpzCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1h
dHRpbmdTdGF0ZS9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5qcwpAQCAtMjMsNiArMjMsMTEgQEAKICAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAgKi8KIAorLyoKK2NsYXNzIEJsb2NrRm9ybWF0dGluZ1N0YXRlIDogcHVi
bGljIEZvcm1hdHRpbmdTdGF0ZSB7CisKK307CisqLwogY2xhc3MgQmxvY2tGb3JtYXR0aW5nU3Rh
dGUgZXh0ZW5kcyBGb3JtYXR0aW5nU3RhdGUgewogICAgIGNvbnN0cnVjdG9yKGZvcm1hdHRpbmdS
b290LCBsYXlvdXRTdGF0ZSkgewogICAgICAgICBzdXBlcihsYXlvdXRTdGF0ZSwgZm9ybWF0dGlu
Z1Jvb3QpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ1N0YXRl
L0Zsb2F0aW5nU3RhdGUuanMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nU3RhdGUv
RmxvYXRpbmdTdGF0ZS5qcwppbmRleCA5OTMzODAwYmE1Nzg4MDA3Y2EyMTc2MmMxYjVhMWY3NzY1
ZDI2MDI2Li5lYWQ2YTRhMzlmYzBmNmRhYzg0YzE0OTZkNGZkMTk3ZGU3MzI3ZTkwIDEwMDY0NAot
LS0gYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nU3RhdGUvRmxvYXRpbmdTdGF0ZS5q
cworKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nU3RhdGUvRmxvYXRpbmdTdGF0
ZS5qcwpAQCAtMjMsNiArMjMsMTcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLyoKK2NsYXNz
IEZsb2F0aW5nU3RhdGUgeworcHVibGljOgorICAgIGFkZEZsb2F0aW5nKERpc3BsYXk6OkJveCYs
IGJvb2wgaXNGbG9hdGluZ0xlZnQpIHsKKyAgICBWZWN0b3I8RGlzcGxheTo6Qm94Jj4gbGVmdEZs
b2F0aW5nU3RhY2soKTsKKyAgICBWZWN0b3I8RGlzcGxheTo6Qm94Jj4gcmlnaHRGbG9hdGluZ1N0
YWNrKCk7CisgICAgRGlzcGxheTo6Qm94JiBsYXN0RmxvYXRpbmcoKTsKKworICAgIEZvcm1hdHRp
bmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKCk7Cit9OworKi8KIGNsYXNzIEZsb2F0aW5nU3RhdGUg
ewogICAgIGNvbnN0cnVjdG9yKHBhcmVudEZvcm1hdHRpbmdTdGF0ZSkgewogICAgICAgICB0aGlz
Lm1fcGFyZW50Rm9ybWF0dGluZ1N0YXRlID0gcGFyZW50Rm9ybWF0dGluZ1N0YXRlOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ1N0YXRlL0Zvcm1hdHRpbmdTdGF0
ZS5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1hdHRpbmdTdGF0ZS9Gb3JtYXR0aW5nU3Rh
dGUuanMKaW5kZXggYjM5Njc5OGU3MTViYmEwODNhZjNhZGU5YjIwYTM1NWJlN2MwZGEyMi4uZWM3
Yzk5OTUwZGY1NWNkNTAwNDQ3M2Y0OThiYzRmMjNhYzI5ZmRkMCAxMDA2NDQKLS0tIGEvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvRm9ybWF0dGluZ1N0YXRlL0Zvcm1hdHRpbmdTdGF0ZS5qcworKysgYi9U
b29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nU3RhdGUvRm9ybWF0dGluZ1N0YXRlLmpzCkBA
IC0yMyw2ICsyMywyNCBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKgorY2xhc3MgRm9ybWF0
dGluZ1N0YXRlIHsKK3B1YmxpYzoKKyAgICBMYXlvdXQ6OkNvbnRhaW5lciYgZm9ybWF0dGluZ1Jv
b3QoKTsKKyAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKTsKKyAgICBGbG9hdGluZ1N0YXRl
JiBmbG9hdGluZ1N0YXRlKCk7CisgICAgRGlzcGxheTo6Qm94JiBjcmVhdGVEaXNwbGF5Qm94KGNv
bnN0IExheW91dDo6Qm94Jik7CisKKyAgICBWZWN0b3I8RGlzcGxheTo6Qm94Jj4gZGlzcGxheUJv
eGVzKCk7CisgICAgRGlzcGxheTo6Qm94JiBkaXNwbGF5Qm94KGNvbnN0IExheW91dDo6Qm94Jik7
CisKKyAgICB2b2lkIG1hcmtOZWVkc0xheW91dChjb25zdCBMYXlvdXQ6OkJveCYpOworICAgIHZv
aWQgY2xlYXJOZWVkc0xheW91dChjb25zdCBMYXlvdXQ6OkJveCYpOworICAgIGJvb2wgbmVlZHNM
YXlvdXQoY29uc3QgTGF5b3V0OjpCb3gmKTsKKworICAgIGJvb2wgbmVlZHNMYXlvdXQoKTsKK307
CisqLwogY2xhc3MgRm9ybWF0dGluZ1N0YXRlIHsKICAgICBjb25zdHJ1Y3RvcihsYXlvdXRTdGF0
ZSwgZm9ybWF0dGluZ1Jvb3QpIHsKICAgICAgICAgdGhpcy5tX2xheW91dFN0YXRlID0gbGF5b3V0
U3RhdGU7CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nU3RhdGUv
SW5saW5lRm9ybWF0dGluZ1N0YXRlLmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvRm9ybWF0dGlu
Z1N0YXRlL0lubGluZUZvcm1hdHRpbmdTdGF0ZS5qcwppbmRleCBiODZkMzdiNjJhMmZmOWIzM2Q2
OGM1Y2ExMDc4NmNmM2YwNTQ3NjAxLi41YTdjYzIwNDNiMGJiZTM1YmQ4NDczZDkwODlkM2U0YmZh
ZjE3ZGY2IDEwMDY0NAotLS0gYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9Gb3JtYXR0aW5nU3RhdGUv
SW5saW5lRm9ybWF0dGluZ1N0YXRlLmpzCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0Zvcm1h
dHRpbmdTdGF0ZS9JbmxpbmVGb3JtYXR0aW5nU3RhdGUuanMKQEAgLTIzLDYgKzIzLDEzIEBACiAg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogICovCiAKKy8qCitjbGFzcyBJbmxpbmVGb3JtYXR0aW5nU3RhdGUgOiBw
dWJsaWMgRm9ybWF0dGluZ1N0YXRlIHsKK3B1YmxpYzoKKyAgICBWZWN0b3I8TGluZT4gbGluZXMo
KTsKKyAgICB2b2lkIGFwcGVuZExpbmUoTGluZSk7Cit9OworKi8KIGNsYXNzIElubGluZUZvcm1h
dHRpbmdTdGF0ZSBleHRlbmRzIEZvcm1hdHRpbmdTdGF0ZSB7CiAgICAgY29uc3RydWN0b3IoZm9y
bWF0dGluZ1Jvb3QsIGxheW91dFN0YXRlKSB7CiAgICAgICAgIHN1cGVyKGxheW91dFN0YXRlLCBm
b3JtYXR0aW5nUm9vdCk7CmRpZmYgLS1naXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRT
dGF0ZS5qcyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dFN0YXRlLmpzCmluZGV4IDUxZTk1
MjRiZmI4OWYxZjhlNjYxZWZiYjU0N2MyZjQ0YzQ1Y2Y4OTUuLjdjYTcxYWRkNzYyODYwZTY4M2Ew
MGQyOGVlMGU2ZDRjMWMzYmQ1Y2QgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xh
eW91dFN0YXRlLmpzCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dFN0YXRlLmpzCkBA
IC0yMyw2ICsyMywyMiBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCisvKgorY2xhc3MgTGF5b3V0
U3RhdGUgeworcHVibGljOgorICAgIENvbnRhaW5lciYgcm9vdENvbnRhaW5lcigpOworCisgICAg
Rm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0KGNvbnN0IExheW91dDo6Q29udGFp
bmVyJiBmb3JtYXR0aW5nUm9vdCk7CisgICAgRm9ybWF0dGluZ1N0YXRlJiBlc3RhYmxpc2hlZEZv
cm1hdHRpbmdTdGF0ZShjb25zdCBMYXlvdXQ6OkNvbnRhaW5lciYgZm9ybWF0dGluZ1Jvb3QpOwor
ICAgIEZvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlRm9yQm94KGNvbnN0IExheW91dDo6
Qm94Jik7CisKKyAgICBEaXNwbGF5OjpCb3gqIGRpc3BsYXlCb3goY29uc3QgTGF5b3V0OjpCb3gm
KTsKKworICAgIHZvaWQgbWFya05lZWRzTGF5b3V0KGNvbnN0IExheW91dDo6Qm94Jik7CisgICAg
Ym9vbCBuZWVkc0xheW91dCgpOworfTsKKyovCisKIGNsYXNzIExheW91dFN0YXRlIHsKICAgICBj
b25zdHJ1Y3Rvcihyb290Q29udGFpbmVyLCByb290RGlzcGxheUJveCkgewogICAgICAgICBBU1NF
UlQocm9vdENvbnRhaW5lci5lc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250ZXh0KCkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0VHJlZS9CbG9ja0NvbnRhaW5lci5qcyBi
L1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dFRyZWUvQmxvY2tDb250YWluZXIuanMKaW5kZXgg
YTc3YmY4YzkzYTgyNjEzYzZkNjcxYjgzYTBmOGMyYjk5NGM0NTJmOC4uY2QwYzczMjczMTg2MDI2
YWZhNjlmMmMwYTNkYzkyMWRmZWY1Mjg4ZCAxMDA2NDQKLS0tIGEvVG9vbHMvTGF5b3V0UmVsb2Fk
ZWQvTGF5b3V0VHJlZS9CbG9ja0NvbnRhaW5lci5qcworKysgYi9Ub29scy9MYXlvdXRSZWxvYWRl
ZC9MYXlvdXRUcmVlL0Jsb2NrQ29udGFpbmVyLmpzCkBAIC0yMyw2ICsyMywxNCBAQAogICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCisvKgorbmFtZXNwYWNlIExheW91dCB7CitjbGFzcyBCbG9ja0NvbnRh
aW5lciA6IHB1YmxpYyBDb250aW5lciB7CitwdWJsaWM6CisgICAgYm9vbCBlc3RhYmxpc2hlc0lu
bGluZUZvcm1hdHRpbmdDb250ZXh0KCkgZmluYWw7Cit9OworfQorKi8KIExheW91dC5CbG9ja0Nv
bnRhaW5lciA9IGNsYXNzIEJsb2NrQ29udGFpbmVyIGV4dGVuZHMgTGF5b3V0LkNvbnRhaW5lciB7
CiAgICAgY29uc3RydWN0b3Iobm9kZSwgaWQpIHsKICAgICAgICAgc3VwZXIobm9kZSwgaWQpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0VHJlZS9Cb3guanMgYi9Ub29s
cy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRUcmVlL0JveC5qcwppbmRleCBkYzRlYmNlMjBiNWExZWYz
OGMzODdhZjRjMWE5MGFiYjk1ZDM5OWIwLi44YTc3MzQ2ZjMwOWZmNDUxN2M2ZWExYTQ1Y2UwODUz
ODVhMjU0YjZkIDEwMDY0NAotLS0gYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRUcmVlL0Jv
eC5qcworKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRUcmVlL0JveC5qcwpAQCAtMjMs
NiArMjMsNTIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorLyoKK25hbWVzcGFjZSBMYXlvdXQg
eworY2xhc3MgQm94IHsKK3B1YmxpYzoKKyAgICBMYXlvdXQ6OkNvbnRhaW5lciYgcGFyZW50KCk7
CisgICAgTGF5b3V0OjpCb3gqIG5leHRTaWJsaW5nKCk7CisgICAgTGF5b3V0OjpCb3gqIG5leHRJ
bkZsb3dTaWJsaW5nKCk7CisgICAgTGF5b3V0OjpCb3gqIG5leHRJbkZsb3dPckZsb2F0U2libGlu
ZygpOworICAgIExheW91dDo6Qm94KiBwcmV2aW91c1NpYmxpbmcoKTsKKyAgICBMYXlvdXQ6OkJv
eCogcHJldmlvdXNJbkZsb3dTaWJsaW5nKCk7CisKKyAgICB2b2lkIHNldFBhcmVudChMYXlvdXQ6
OkNvbnRhaW5lciYpOworICAgIHZvaWQgc2V0TmV4dFNpYmxpbmcoTGF5b3V0OjpCb3gmKTsKKyAg
ICB2b2lkIHNldFByZXZpb3VzU2libGluZyhMYXlvdXQ6OkJveCYpOworCisgICAgYm9vbCBpc0Nv
bnRhaW5lcigpOworICAgIGJvb2wgaXNJbmxpbmVDb250YWluZXIoKTsKKyAgICBib29sIGlzSW5s
aW5lQm94KCk7CisgICAgYm9vbCBpc0Jsb2NrTGV2ZWxCb3goKTsKKyAgICBib29sIGlzQmxvY2tD
b250YWluZXJCb3goKTsKKyAgICBib29sIGlzSW5saW5lQmxvY2tCb3goKTsKKyAgICBib29sIGlz
SW5saW5lTGV2ZWxCb3goKTsKKworICAgIHZvaWQgc2V0SXNBbm9ueW1vdXMoYm9vbCk7CisgICAg
Ym9vbCBpc0Fub255bW91cygpOworCisgICAgYm9vbCBlc3RhYmxpc2hlc0Zvcm1hdHRpbmdDb250
ZXh0KCk7CisgICAgYm9vbCBlc3RhYmxpc2hlc0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQoKTsKKyAg
ICBib29sIGVzdGFibGlzaGVzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKTsKKworICAgIGJvb2wg
aXNQb3NpdGlvbmVkKCk7CisgICAgYm9vbCBpc1JlbGF0aXZlbHlQb3NpdGlvbmVkKCk7CisgICAg
Ym9vbCBpc0Fic29sdXRlbHlQb3NpdGlvbmVkKCk7CisgICAgYm9vbCBpc0ZpeGVkUG9zaXRpb25l
ZCgpOworICAgIGJvb2wgaXNJbkZsb3coKTsKKyAgICBib29sIGlzT3V0T2ZGbG93UG9zaXRpb25l
ZCgpOworICAgIGJvb2wgaXNJbkZsb3dQb3NpdGlvbmVkKCk7CisgICAgYm9vbCBpc0Zsb2F0aW5n
UG9zaXRpb25lZCgpOworICAgIGJvb2wgaXNGbG9hdGluZ09yT3V0T2ZGbG93UG9zaXRpb25lZCgp
OworICAgIGJvb2wgaXNSb290Qm94KCk7CisgICAgTGF5b3V0OjpDb250YWluZXIqIGNvbnRhaW5p
bmdCbG9jaygpOworICAgIGJvb2wgaXNEZXNjZW5kYW50T2YoTGF5b3V0OjpDb250YWluZXImKTsK
K307Cit9CisqLworCiB2YXIgTGF5b3V0ID0geyB9CiAKIExheW91dC5Cb3ggPSBjbGFzcyBCb3gg
ewpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0VHJlZS9Db250YWluZXIu
anMgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRUcmVlL0NvbnRhaW5lci5qcwppbmRleCAw
MWJmNzNkZDcxOTlhMzc0MDg5OWU2MWMyYjYwZDQyYjM0ODU5YTYwLi45YTJkMmIxZDY4Y2UwN2Fk
OWVmOWIzZTJiODNiMmUwY2IyNTAzYjI2IDEwMDY0NAotLS0gYS9Ub29scy9MYXlvdXRSZWxvYWRl
ZC9MYXlvdXRUcmVlL0NvbnRhaW5lci5qcworKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlv
dXRUcmVlL0NvbnRhaW5lci5qcwpAQCAtMjMsNiArMjMsMjcgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAorLyoKK25hbWVzcGFjZSBMYXlvdXQgeworY2xhc3MgQ29udGFpbmVyIDogcHVibGljIEJv
eCB7CitwdWJsaWM6CisgICAgc2V0Rmlyc3RDaGlsZChMYXlvdXQ6OkJveCYpOworICAgIHNldExh
c3RDaGlsZChMYXlvdXQ6OkJveCYpOworIAorICAgIExheW91dDo6Qm94KiBmaXJzdENoaWxkKCk7
CisgICAgTGF5b3V0OjpCb3gqIGZpcnN0SW5GbG93Q2hpbGQoKTsKKyAgICBMYXlvdXQ6OkJveCog
Zmlyc3RJbkZsb3dPckZsb2F0Q2hpbGQoKTsKKyAgICBMYXlvdXQ6OkJveCogbGFzdENoaWxkKCk7
CisgICAgTGF5b3V0OjpCb3gqIGxhc3RJbkZsb3dDaGlsZCgpOworCisgICAgYm9vbCBoYXNDaGls
ZCgpOworICAgIGJvb2wgaGFzSW5GbG93Q2hpbGQoKTsKKyAgICBib29sIGhhc0luRmxvd09yRmxv
YXRDaGlsZCgpOworCisgICAgVmVjdG9yPExheW91dDo6Qm94Jj4gb3V0T2ZGbG93RGVzY2VuZGFu
dHMoKTsKK307Cit9CisqLwogTGF5b3V0LkNvbnRhaW5lciA9IGNsYXNzIENvbnRhaW5lciBleHRl
bmRzIExheW91dC5Cb3ggewogICAgIGNvbnN0cnVjdG9yKG5vZGUsIGlkKSB7CiAgICAgICAgIHN1
cGVyKG5vZGUsIGlkKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dFRy
ZWUvSW5saW5lQm94LmpzIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0VHJlZS9JbmxpbmVC
b3guanMKaW5kZXggODA5MWZhNTNkMmZmMDM3ZGFkMmIxZWQzZmY3ZTNmMWExNjE1MThlMC4uMzdj
ZDllNjFiOGQwNzdiZGM4YmMxYjUyYzVhN2JjNWM2M2E5Y2E3OSAxMDA2NDQKLS0tIGEvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvTGF5b3V0VHJlZS9JbmxpbmVCb3guanMKKysrIGIvVG9vbHMvTGF5b3V0
UmVsb2FkZWQvTGF5b3V0VHJlZS9JbmxpbmVCb3guanMKQEAgLTIzLDYgKzIzLDE1IEBACiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKKy8qCituYW1lc3BhY2UgTGF5b3V0IHsKK2NsYXNzIElubGluZUJv
eCA6IHB1YmxpYyBCb3ggeworcHVibGljOgorICAgIHNldFRleHQoY29uc3QgU3RyaW5nJik7Cisg
ICAgY29uc3QgU3RyaW5nJiB0ZXh0KCk7Cit9OworfQorKi8KIExheW91dC5JbmxpbmVCb3ggPSBj
bGFzcyBJbmxpbmVCb3ggZXh0ZW5kcyBMYXlvdXQuQm94IHsKICAgICBjb25zdHJ1Y3Rvcihub2Rl
LCBpZCkgewogICAgICAgICBzdXBlcihub2RlLCBpZCk7CmRpZmYgLS1naXQgYS9Ub29scy9MYXlv
dXRSZWxvYWRlZC9MYXlvdXRUcmVlL0lubGluZUNvbnRhaW5lci5qcyBiL1Rvb2xzL0xheW91dFJl
bG9hZGVkL0xheW91dFRyZWUvSW5saW5lQ29udGFpbmVyLmpzCmluZGV4IDc4MTNkYjIxOThiZDcx
MjVjM2MyMWU0MzJmNmU0OWZiYWFhMWU2YWQuLjNiYTYyNjc0NjZlYTYyOWIwYmM4YjFhNzE5OGM5
YjFlMDA4MmRkZWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dFRyZWUv
SW5saW5lQ29udGFpbmVyLmpzCisrKyBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dFRyZWUv
SW5saW5lQ29udGFpbmVyLmpzCkBAIC0yMyw2ICsyMywxNCBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCisvKgorbmFtZXNwYWNlIExheW91dCB7CitjbGFzcyBJbmxpbmVDb250YWluZXIgOiBwdWJs
aWMgQ29udGFpbmVyIHsKK3B1YmxpYzoKKworfTsKK30KKyovCiBMYXlvdXQuSW5saW5lQ29udGFp
bmVyID0gY2xhc3MgSW5saW5lQ29udGFpbmVyIGV4dGVuZHMgTGF5b3V0LkNvbnRhaW5lciB7CiAg
ICAgY29uc3RydWN0b3Iobm9kZSwgaWQpIHsKICAgICAgICAgc3VwZXIobm9kZSwgaWQpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvTGF5b3V0VHJlZS9UZXh0LmpzIGIvVG9vbHMv
TGF5b3V0UmVsb2FkZWQvTGF5b3V0VHJlZS9UZXh0LmpzCmluZGV4IDZlOWYwZTU4MDc0MTAzYTEz
MTk5ZjNkNGMwY2Y4ZDk1OWQxOWU0MzYuLmY0NDA1YTQ5NjYwOWE2MTZiOGYxNGE3Yzc3NDBiZjAz
MmRkOTZlOWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL0xheW91dFRyZWUvVGV4
dC5qcworKysgYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9MYXlvdXRUcmVlL1RleHQuanMKQEAgLTIz
LDYgKzIzLDE1IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKKy8qCituYW1lc3BhY2UgTGF5b3V0
IHsKK2NsYXNzIFRleHQgeworcHVibGljOgorICAgIGNvbnN0IFN0cmluZyYgY29udGVudCgpOwor
ICAgIExheW91dFVuaXQgbGVuZ3RoKCk7Cit9OworfQorKi8KIGNsYXNzIFRleHQgewogICAgIGNv
bnN0cnVjdG9yKG5vZGUsIGlkLCBpbmxpbmVCb3gpIHsKICAgICAgICAgdGhpcy5tX25vZGUgPSBu
b2RlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Jsb2Nr
Q29udGFpbmVyLmggYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvQmxvY2tDb250
YWluZXIuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODZiMDg4ZWIyMGQ4Zjk1MWM4
M2M3NzU2MTUwMDRjYWU4NjcxYmYxNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvQmxvY2tDb250
YWluZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDM2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1uYW1lc3BhY2UgTGF5b3V0UmVsb2FkZWQgewot
Ci0jaW5jbHVkZSAiQ29udGFpbmVyLmgiCi0KLWNsYXNzIEJsb2NrQ29udGFpbmVyIDogcHVibGlj
IENvbnRhaW5lciB7Ci1wdWJsaWM6Ci0gICAgQmxvY2tDb250YWluZXIoTm9kZSosIHVuc2lnbmVk
IGlkLCBTdHJpbmcgbmFtZSk7Ci0gICAgdmlydHVhbCB+QmxvY2tDb250YWluZXIoKTsKLX07Ci0K
LX0KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0LmggYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMzM5
MzEwYjQ2N2U3MjBhYjc5YWNiMTEzNmI5ZWVjZTBmNmE1YWI5Li4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVh
ZGVycy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3MCArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0g
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1
ZGUgIkZvcm1hdHRpbmdDb250ZXh0LmgiCi0KLW5hbWVzcGFjZSBMYXlvdXRSZWxvYWRlZCB7Ci0K
LWNsYXNzIEJsb2NrQ29udGFpbmVyOwotY2xhc3MgQm94OwotY2xhc3MgRmxvYXRpbmdDb250ZXh0
OwotY2xhc3MgTGF5b3V0U3RhdGU7Ci0KLWNsYXNzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQgOiBw
dWJsaWMgRm9ybWF0dGluZ0NvbnRleHQgewotcHVibGljOgotICAgIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQoQmxvY2tDb250YWluZXImIHJvb3QpOwotICAgIHZpcnR1YWwgfkJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQoKTsKLQotICAgIHZvaWQgbGF5b3V0KExheW91dFN0YXRlJikgZmluYWw7Ci0KLXBy
aXZhdGU6Ci0gICAgTGF5b3V0VW5pdCBjb21wdXRlV2lkdGgoY29uc3QgQm94JikgY29uc3QgZmlu
YWw7Ci0gICAgTGF5b3V0VW5pdCBjb21wdXRlSGVpZ2h0KGNvbnN0IEJveCYpIGNvbnN0IGZpbmFs
OwotCi0gICAgTGF5b3V0VW5pdCBtYXJnaW5Ub3AoY29uc3QgQm94JikgY29uc3QgZmluYWw7Ci0g
ICAgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oY29uc3QgQm94JikgY29uc3QgZmluYWw7Ci0KLSAg
ICBMYXlvdXRVbml0IGNvbXB1dGVPdXRPZkZsb3dXaWR0aChjb25zdCBCb3gmKSBjb25zdDsKLSAg
ICBMYXlvdXRVbml0IGNvbXB1dGVGbG9hdGluZ1dpZHRoKGNvbnN0IEJveCYpIGNvbnN0OwotICAg
IExheW91dFVuaXQgY29tcHV0ZUluRmxvd1dpZHRoKGNvbnN0IEJveCYpIGNvbnN0OwotICAgIExh
eW91dFVuaXQgY29tcHV0ZUluRmxvd0hlaWdodChjb25zdCBCb3gmKSBjb25zdDsKLQotICAgIExh
eW91dFVuaXQgY29tcHV0ZU91dE9mRmxvd0hlaWdodChjb25zdCBCb3gmKSBjb25zdDsKLSAgICBM
YXlvdXRVbml0IGNvbXB1dGVGbG9hdGluZ0hlaWdodChjb25zdCBCb3gmKSBjb25zdDsKLQotICAg
IExheW91dFVuaXQgY29tcHV0ZUhvcml6b250YWxDb25zdHJhaW50KGNvbnN0IEJveCYpIGNvbnN0
OwotICAgIExheW91dFVuaXQgY29tcHV0ZUNvbnRlbnRIZWlnaHQoY29uc3QgQm94JikgY29uc3Q7
Ci0gICAgCi0gICAgdm9pZCBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJlbihCbG9ja0NvbnRh
aW5lciYpOwotICAgIHZvaWQgcGxhY2VPdXRPZkZsb3dEZXNjZW5kYW50cyhCbG9ja0NvbnRhaW5l
ciYpOwotCi0gICAgTGF5b3V0VW5pdCBjb21wdXRlU3RhdGljUG9zaXRpb24oY29uc3QgQm94Jikg
Y29uc3Q7Ci0gICAgTGF5b3V0UG9pbnQgY29tcHV0ZUluRmxvd1Bvc2l0aW9uZWRQb3NpdGlvbihj
b25zdCBCb3gmKTsKLSAgICBMYXlvdXRQb2ludCBjb21wdXRlT3V0T2ZGbG93UG9zaXRpb24oY29u
c3QgQm94Jik7Ci0gICAgCi0gICAgTGF5b3V0VW5pdCBzaHJpbmtUb0ZpdFdpZHRoKGNvbnN0IEJv
eCYpOwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFk
ZXJzL0Jsb2NrTWFyZ2luQ29sbGFwc2UuaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVh
ZGVycy9CbG9ja01hcmdpbkNvbGxhcHNlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDA2OTQ0NGNjMjEyYTBhZmYzNjZiNGE3OGRhYTVjZGU5OTFmYTJkZGUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlz
Yy9oZWFkZXJzL0Jsb2NrTWFyZ2luQ29sbGFwc2UuaAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICsw
LDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0g
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IK
LSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUyBjb25zdDsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTIGNvbnN0OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi1uYW1lc3BhY2UgTGF5b3V0UmVsb2FkZWQgewotCi1jbGFzcyBCb3g7Ci0KLWNsYXNz
IEJsb2NrTWFyZ2luQ29sbGFwc2UgewotcHVibGljOgotICAgIEJsb2NrTWFyZ2luQ29sbGFwc2Uo
KSBjb25zdDsKLQotICAgIExheW91dFVuaXQgbWFyZ2luVG9wKGNvbnN0IEJveCYpIGNvbnN0Owot
ICAgIExheW91dFVuaXQgbWFyZ2luQm90dG9tKGNvbnN0IEJveCYpIGNvbnN0OwotCi1wcml2YXRl
OgotICAgIHZvaWQgaXNNYXJnaW5Ub3BDb2xsYXBzZWRXaXRoU2libGluZyhjb25zdCBCb3gmKSBj
b25zdDsKLSAgICB2b2lkIGlzTWFyZ2luQm90dG9tQ29sbGFwc2VkV2l0aFNpYmxpbmcoY29uc3Qg
Qm94JikgY29uc3Q7Ci0gICAgCi0gICAgdm9pZCBpc01hcmdpblRvcENvbGxhcHNlZFdpdGhQYXJl
bnQoY29uc3QgQm94JikgY29uc3Q7Ci0gICAgdm9pZCBpc01hcmdpbkJvdHRvbUNvbGxhcHNlZFdp
dGhQYXJlbnQoY29uc3QgQm94JikgY29uc3Q7Ci0gICAgCi0gICAgdm9pZCBub25Db2xsYXBzZWRN
YXJnaW5Ub3AoY29uc3QgQm94JikgY29uc3Q7Ci0gICAgdm9pZCBub25Db2xsYXBzZWRNYXJnaW5C
b3R0b20oY29uc3QgQm94JikgY29uc3Q7Ci0gICAgCi0gICAgdm9pZCBjb2xsYXBzZWRNYXJnaW5U
b3BGcm9tRmlyc3RDaGlsZChjb25zdCBCb3gmKSBjb25zdDsKLSAgICB2b2lkIGNvbGxhcHNlZE1h
cmdpbkJvdHRvbUZyb21MYXN0Q2hpbGQoY29uc3QgQm94JikgY29uc3Q7Ci0gICAgCi0gICAgdm9p
ZCBtYXJnaW5WYWx1ZShjdXJyZW50TWFyZ2luVmFsdWUsIGNhbmRpZGF0ZU1hcmdpblZhbHVlKSBj
b25zdDsKLSAgICAKLSAgICB2b2lkIGhhc0Fkam9pbmluZ01hcmdpblRvcEFuZEJvdHRvbShjb25z
dCBCb3gmKSBjb25zdDsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVk
L21pc2MvaGVhZGVycy9Cb3guaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9C
b3guaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWE4ODU4ZTQ3ZmU5ZjhjM2IwODg3
ZjYyYTAzYmE5OWY2OWEzYTE3Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvQm94LmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw5NCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
Ci0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotbmFtZXNwYWNlIExheW91dFJlbG9hZGVkIHsKLQotY2xhc3MgQm94IHsK
LSAgICBCb3goTm9kZSosICB1bnNpZ25lZCBpZCwgU3RyaW5nIG5hbWUpOwotICAgIHZpcnR1YWwg
fkJveCgpOwotICAgIAotICAgIHVuc2lnbmVkIGlkKCkgY29uc3Q7Ci0gICAgU3RyaW5nIG5hbWUo
KSBjb25zdDsKLSAgICBOb2RlJiBub2RlKCkgY29uc3Q7Ci0KLSAgICBDb250YWluZXIqIHBhcmVu
dCgpIGNvbnN0OwotICAgIEJveCogbmV4dFNpYmxpbmcoKSBjb25zdDsKLSAgICBCb3gqIG5leHRJ
bkZsb3dTaWJsaW5nKCkgY29uc3Q7Ci0gICAgQm94KiBwcmV2aW91c1NpYmxpbmcoKSBjb25zdDsK
LSAgICBCb3gqIHByZXZpb3VzSW5GbG93U2libGluZygpIGNvbnN0OwotICAgIAotICAgIHZvaWQg
c2V0UGFyZW50KENvbnRhaW5lciopOwotICAgIHZvaWQgc2V0TmV4dFNpYmxpbmcoQm94Kik7Ci0g
ICAgdm9pZCBzZXRQcmV2aW91c1NpYmxpbmcoQm94Kik7Ci0gICAgCi0gICAgTGF5b3V0UmVjdCBy
ZWN0KCkgY29uc3Q7Ci0gICAgTGF5b3V0UG9pbnQgdG9wTGVmdCgpIGNvbnN0OwotICAgIExheW91
dFBvaW50IGJvdHRvbVJpZ2h0KCkgY29uc3Q7Ci0gICAgCi0gICAgdm9pZCBzZXRUb3BMZWZ0KExh
eW91dFBvaW50KTsKLSAgICB2b2lkIHNldFNpemUoTGF5b3V0U2l6ZSk7Ci0gICAgdm9pZCBzZXRX
aWR0aChMYXlvdXRVbml0KTsKLSAgICB2b2lkIHNldEhlaWdodChMYXlvdXRVbml0KTsKLSAgICAK
LSAgICB2b2lkIHNldElzQW5vbnltb3VzKGJvb2wpOwotICAgIGJvb2wgaXNBbm9ueW1vdXMoKSBj
b25zdDsKLSAgICBib29sIGlzUm9vdEJveCgpIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCBpc0Nv
bnRhaW5lcigpIGNvbnN0OwotCi0gICAgYm9vbCBpc0Jsb2NrTGV2ZWxCb3goKSBjb25zdDsKLSAg
ICBib29sIGlzQmxvY2tDb250YWluZXJCb3goKSBjb25zdDsKLSAgICBib29sIGlzSW5saW5lTGV2
ZWxCb3goKSBjb25zdDsKLQotICAgIGJvb2wgZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgp
IGNvbnN0OwotICAgIGJvb2wgZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkgY29u
c3Q7Ci0KLSAgICBib29sIGlzSW5GbG93KCkgY29uc3Q7Ci0gICAgYm9vbCBpc1Bvc2l0aW9uZWQo
KSBjb25zdDsKLSAgICBib29sIGlzUmVsYXRpdmVseVBvc2l0aW9uZWQoKSBjb25zdDsKLSAgICBi
b29sIGlzQWJzb2x1dGVseVBvc2l0aW9uZWQoKSBjb25zdDsKLSAgICBib29sIGlzRml4ZWRQb3Np
dGlvbmVkKCkgY29uc3Q7Ci0gICAgYm9vbCBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSBjb25zdDsK
LSAgICBib29sIGlzSW5GbG93UG9zaXRpb25lZCgpIGNvbnN0OwotICAgIGJvb2wgaXNGbG9hdGlu
Z1Bvc2l0aW9uZWQoKSBjb25zdDsKLSAgICBib29sIGlzRmxvYXRpbmdPck91dE9mRmxvd1Bvc2l0
aW9uZWQoKSBjb25zdDsKLSAgICAKLSAgICBCbG9ja0NvbnRhaW5lciogY29udGFpbmluZ0Jsb2Nr
KCkgY29uc3Q7Ci0KLSAgICBMYXlvdXRSZWN0JiBib3JkZXJCb3goKSBjb25zdDsKLSAgICBMYXlv
dXRSZWN0JiBwYWRkaW5nQm94KCkgY29uc3Q7Ci0gICAgTGF5b3V0UmVjdCYgY29udGVudEJveCgp
IGNvbnN0OwotICAgIAotcHJpdmF0ZToKLSAgICB1bnNpZ25lZCBtX2lkOwotICAgIFN0cmluZyBt
X3JlbmRlcmVyTmFtZTsKLSAgICBOb2RlKiBtX25vZGUgeyBudWxscHRyIH07Ci0gICAgQ29udGFp
bmVyKiBtX3BhcmVudCB7IG51bGxwdHIgfTsKLSAgICBCb3gqIG1fbmV4dFNpYmxpbmcgeyBudWxs
cHRyIH07Ci0gICAgQm94KiBtX3ByZXZpb3VzU2libGluZyB7IG51bGxwdHIgfTsKLSAgICBib29s
IG1faXNBbm9ueW1vdXMgeyBmYWxzZSB9OwotICAgIExheW91dFJlY3QgbV9yZWN0OwotfTsKLQot
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0NvbnRhaW5l
ci5oIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0NvbnRhaW5lci5oCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBjYTE2MGFmZTNlNGM4MjExMjhlNzVjZDQ4ZjgzMGIz
OTlkZTA4NjAzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9Db250YWluZXIuaAorKysgL2Rldi9u
dWxsCkBAIC0xLDUyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5j
LiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0g
KiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiQm94LmgiCi0KLW5hbWVzcGFjZSBMYXlvdXRSZWxvYWRlZCB7
Ci0KLWNsYXNzIENvbnRhaW5lciA6IHB1YmxpYyBCb3ggewotICAgIENvbnRhaW5lcihOb2RlKiwg
IHVuc2lnbmVkIGlkLCBTdHJpbmcgbmFtZSk7Ci0gICAgdmlydHVhbCB+Q29udGFpbmVyKCk7Ci0g
ICAgCi0gICAgYm9vbCBpc0NvbnRhaW5lcigpIGNvbnN0IGZpbmFsOwotCi0gICAgdm9pZCBzZXRG
aXJzdENoaWxkKEJveCopOwotICAgIHZvaWQgc2V0TGFzdENoaWxkKEJveCopOwotCi0gICAgQm94
KiBmaXJzdENoaWxkKCkgY29uc3Q7Ci0gICAgQm94KiBmaXJzdEluRmxvd0NoaWxkKCkgY29uc3Q7
Ci0gICAgQm94KiBsYXN0Q2hpbGQoKSBjb25zdDsKLSAgICBCb3gqIGxhc3RJbkZsb3dDaGlsZCgp
IGNvbnN0OwotCi0gICAgYm9vbCBoYXNDaGlsZCgpIGNvbnN0OwotICAgIGJvb2wgaGFzSW5GbG93
Q2hpbGQoKSBjb25zdDsKLQotcHJpdmF0ZToKLSAgICBCb3gqIG1fZmlyc3RDaGlsZCB7IG51bGxw
dHIgfTsKLSAgICBCb3gqIG1fbGFzdENoaWxkIHsgbnVsbHB0ciB9OwotfQotCi19CmRpZmYgLS1n
aXQgYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvRmxvYXRpbmdDb250ZXh0Lmgg
Yi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvRmxvYXRpbmdDb250ZXh0LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDg4MjllOWQwNGVlYTg3NThiMGVkNGQzYzE4MmZi
NGRkMzlkODBmMmEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Zsb2F0aW5nQ29udGV4dC5oCisr
KyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxOCBB
cHBsZSBJbmMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9S
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0g
KiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgotICovCi0KLW5hbWVzcGFjZSBMYXlvdXRSZWxvYWRlZCB7Ci0KLWNsYXNzIEJv
eDsKLWNsYXNzIEZvcm1hdHRpbmdDb250ZXh0OwotCi1jbGFzcyBGbG9hdGluZ0NvbnRleHQgewot
cHVibGljOgotICAgIEZsb2F0aW5nQ29udGV4dChjb25zdCBGb3JtYXR0aW5nQ29udGV4dCYpOwot
Ci0gICAgTGF5b3V0UG9pbnQgY29tcHV0ZVBvc2l0aW9uKGNvbnN0IEJveCYpOwotICAgIExheW91
dFVuaXQgYm90dG9tKCk7Ci0KLXByaXZhdGU6Ci0gICAgTGF5b3V0UG9pbnQgcG9zaXRpb25Gb3JG
bG9hdGluZyhjb25zdCBCb3gmIGZsb2F0aW5nQm94KTsKLSAgICBMYXlvdXRQb2ludCBwb3NpdGlv
bkZvckNsZWFyKGNvbnN0IEJveCYpOwotICAgIExheW91dFBvaW50IGNvbXB1dGVQb3NpdGlvblRv
QXZvaWRJbnRydWRpbmdGbG9hdHMoY29uc3QgQm94Jik7Ci0gICAgCi0gICAgdm9pZCBhZGRGbG9h
dGluZyhjb25zdCBCb3gmIGZsb2F0aW5nQm94KTsKLSAgICAKLSAgICBib29sIGlzRW1wdHkoKSBj
b25zdDsKLSAgICBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdDsK
LQotICAgIHN0ZDo6cGFpcjxCb3gmLCBCb3gmPiBmaW5kSW5uZXJNb3N0TGVmdEFuZFJpZ2h0KExh
eW91dFVuaXQgdmVydGljYWxQb3NpdGlvbik7Ci0gICAgTGF5b3V0VW5pdCBtb3ZlVG9OZXh0VmVy
dGljYWxQb3NpdGlvbihzdGQ6OnBhaXI8Qm94JiwgQm94Jj4mIGZsb2F0aW5nUGFpcik7Ci0gICAg
Qm94KiBmaW5kRmxvYXRpbmdBdFZlcnRpY2FsUG9zaXRpb24oTGF5b3V0VW5pdCB2ZXJ0aWNhbFBv
c2l0aW9uLCBWZWN0b3I8Qm94Kj4gZmxvYXRpbmdTdGFjayk7Ci0KLSAgICBMYXlvdXRVbml0IGF2
YWlsYWJsZVNwYWNlKGNvbnN0IENvbnRhaW5lciYgY29udGFpbmluZ0Jsb2NrLCBzdGQ6OnBhaXI8
Qm94JiwgQm94Jj4mIGZsb2F0aW5nUGFpcik7Ci0KLSAgICB2b2lkIGFkanVzdGVkRmxvYXRpbmdQ
b3NpdGlvbihjb25zdCBCb3gmIGZsb2F0aW5nQm94LCBMYXlvdXRVbml0IHZlcnRpY2FsUG9zaXRp
b24sIHN0ZDo6cGFpcjxCb3gmLCBCb3gmPiYgbGVmdFJpZ2h0RmxvYXRpbmdzKTsKLQotICAgIExh
eW91dFVuaXQgZmluZEJvdHRvbShmbG9hdGluZ1N0YWNrKTsKLX07Ci0KLX0KZGlmZiAtLWdpdCBh
L1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9Gb3JtYXR0aW5nQ29udGV4dC5oIGIv
VG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Zvcm1hdHRpbmdDb250ZXh0LmgKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ0ODc5M2U0NjdlNjUwMDAzMjE0YTZiMjUxZjIx
YmZiYjUzMmExM2MuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0t
IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0Zvcm1hdHRpbmdDb250ZXh0LmgK
KysrIC9kZXYvbnVsbApAQCAtMSw2MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotbmFtZXNwYWNlIExheW91dFJlbG9hZGVkIHsKLQotY2xhc3Mg
Qm94OwotY2xhc3MgQ29udGFpbmVyOwotY2xhc3MgRmxvYXRpbmdDb250ZXh0OwotY2xhc3MgTGF5
b3V0U3RhdGU7Ci0KLWNsYXNzIEZvcm1hdHRpbmdDb250ZXh0IHsKLXB1YmxpYzoKLSAgICBGb3Jt
YXR0aW5nQ29udGV4dCgpOwotCi0gICAgQ29udGFpbmVyJiBmb3JtYXR0aW5nUm9vdCgpIGNvbnN0
OwotICAgIEZsb2F0aW5nQ29udGV4dCYgZmxvYXRpbmdDb250ZXh0KCkgY29uc3Q7Ci0KLSAgICB2
aXJ0dWFsIHZvaWQgbGF5b3V0KGNvbnN0IExheW91dFN0YXRlJikgPSAwOwotCi1wcm90ZWN0ZWQ6
Ci0gICAgdmlydHVhbCBMYXlvdXRVbml0IGNvbXB1dGVXaWR0aChjb25zdCBCb3gmKSBjb25zdDsK
LSAgICB2aXJ0dWFsIExheW91dFVuaXQgY29tcHV0ZUhlaWdodChjb25zdCBCb3gmKSBjb25zdDsK
LSAgICAKLSAgICB2aXJ0dWFsIExheW91dFVuaXQgbWFyZ2luVG9wKGNvbnN0IEJveCYpIGNvbnN0
OwotICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5MZWZ0KGNvbnN0IEJveCYpIGNvbnN0Owot
ICAgIHZpcnR1YWwgTGF5b3V0VW5pdCBtYXJnaW5Cb3R0b20oY29uc3QgQm94JikgY29uc3Q7Ci0g
ICAgdmlydHVhbCBMYXlvdXRVbml0IG1hcmdpblJpZ2h0KGNvbnN0IEJveCYpIGNvbnN0OwotICAg
IAotICAgIExheW91dFJlY3QgYWJzb2x1dGVNYXJnaW5Cb3goY29uc3QgQm94JikgY29uc3Q7Ci0g
ICAgTGF5b3V0UmVjdCBhYnNvbHV0ZUJvcmRlckJveChjb25zdCBCb3gmKSBjb25zdDsKLSAgICBM
YXlvdXRSZWN0IGFic29sdXRlUGFkZGluZ0JveChjb25zdCBCb3gmKSBjb25zdDsKLSAgICBMYXlv
dXRSZWN0IGFic29sdXRlQ29udGVudEJveChjb25zdCBCb3gmKSBjb25zdDsKLQotcHJpdmF0ZToK
LSAgICBGbG9hdGluZ0NvbnRleHQmIG1fZmxvYXRpbmdDb250ZXh0OwotfTsKLQotfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0luaXRpYWxCbG9ja0NvbnRh
aW5lci5oIGIvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL0luaXRpYWxCbG9ja0Nv
bnRhaW5lci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBkNmE2MjlkMzM2YjM5OGM5
YTVkMjQ5YTQ2ZDg4NjdhYjU0NDIyODk3Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9Jbml0aWFs
QmxvY2tDb250YWluZXIuaAorKysgL2Rldi9udWxsCkBAIC0xLDQxICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElT
JycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiQmxvY2tDb250
YWluZXIuaCIKLQotbmFtZXNwYWNlIExheW91dFJlbG9hZGVkIHsKLQotY2xhc3MgSW5pdGlhbEJs
b2NrQ29udGFpbmVyIDogcHVibGljIEJsb2NrQ29udGFpbmVyIHsKLXB1YmxpYzoKLSAgICBJbml0
aWFsQmxvY2tDb250YWluZXIoRG9jdW1lbnQmLCB1bnNpZ25lZCBpZCwgU3RyaW5nIG5hbWUpOwot
ICAgIAotICAgIGJvb2wgZXN0YWJsaXNoZXNCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KCkgY29uc3Qg
ZmluYWw7Ci0KLSAgICAvLyBGSVhNRTogVGhlc2Ugc2hvdWxkIG5vdCByZWFsbHkgYmUgdmlydHVh
bC4KLSAgICBMYXlvdXRSZWN0IHBhZGRpbmdCb3goKSBjb25zdDsKLSAgICBMYXlvdXRSZWN0IGNv
bnRlbnRCb3goKSBjb25zdDsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL21pc2MvaGVhZGVycy9JbmxpbmVCb3guaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2Mv
aGVhZGVycy9JbmxpbmVCb3guaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNzllODgx
MjgwYTYxOTgwNGJlZmVhM2JiZmVjMTk1NWFmMjdmZjU0Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRl
cnMvSW5saW5lQm94LmgKKysrIC9kZXYvbnVsbApAQCAtMSw0MyArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotbmFtZXNwYWNlIExheW91dFJlbG9h
ZGVkIHsKLQotI2luY2x1ZGUgIkJveC5oIgotCi1jbGFzcyBUZXh0OwotCi1jbGFzcyBJbmxpbmVC
b3ggOiBwdWJsaWMgQm94IHsKLXB1YmxpYzoKLSAgICBJbmxpbmVCb3goTm9kZSosIHVuc2lnbmVk
IGlkLCBTdHJpbmcgbmFtZSk7Ci0gICAgdmlydHVhbCB+SW5saW5lQm94KCk7Ci0KLSAgICB2b2lk
IHNldFRleHQoVGV4dCYpOwotCi1wcml2YXRlOgotICAgIFRleHQmIG1fdGV4dDsKLX07Ci0KLX0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9MYXlvdXRDb250
ZXh0LmggYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRlcnMvTGF5b3V0Q29udGV4dC5o
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiOTI3NDc4NjM5MGUwNmZkMzBiZDAxNzJi
NDQyMzc0M2M2ZWQ2N2UzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Ci0tLSBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9MYXlvdXRDb250ZXh0LmgK
KysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotbmFtZXNwYWNlIExheW91dFJlbG9hZGVkIHsKLQotY2xhc3Mg
Rm9ybWF0dGluZ0NvbnRleHQ7Ci0KLWNsYXNzIExheW91dFN0YXRlIHsKLXB1YmxpYzoKLSAgICBM
YXlvdXRTdGF0ZSgpOwotICAgIAotICAgIHZvaWQgbGF5b3V0Rm9ybWF0dGluZ0NvbnRleHQoRm9y
bWF0dGluZ0NvbnRleHQmKTsKLX07Ci0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL0xheW91dFJlbG9h
ZGVkL21pc2MvaGVhZGVycy9MaW5lLmggYi9Ub29scy9MYXlvdXRSZWxvYWRlZC9taXNjL2hlYWRl
cnMvTGluZS5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMzVkOWYzNDVkZWY0Yjc4
MTdlMTMxMmNjYjk4ZTViNDk4NDgxYWNmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9MaW5lLmgK
KysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE4
IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotbmFtZXNwYWNlIExheW91dFJlbG9hZGVkIHsKLQotY2xhc3Mg
TGluZSB7Ci1wdWJsaWM6Ci0gICAgTGluZShMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKTsKLQot
ICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0OwotICAgIExheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgo
KSBjb25zdDsKLQotICAgIHZvaWQgYXBwZW5kRnJhZ21lbnQodW5zaWduZWQgc3RhcnRQb3NpdGlv
biwgdW5zaWduZWQgZW5kUG9zaXRpb24sIExheW91dFVuaXQgd2lkdGgpOwotCi1wcml2YXRlOgot
ICAgIHN0cnVjdCBGcmFnbWVudCB7Ci0gICAgICAgIHVuc2lnbmVkIG1fc3RhcnQ7Ci0gICAgICAg
IHVuc2lnbmVkIG1fZW5kOwotICAgICAgICBMYXlvdXRVbnRpIG1fd2lkdGg7Ci0gICAgfTsKLQot
ICAgIFZlY3RvcjxGcmFnbWVudD4gbV9mcmFnbWVudHM7Ci0gICAgTGF5b3V0VW5pdCBtX2F2YWls
YWJsZVdpZHRoOwotfTsKLQotfQpkaWZmIC0tZ2l0IGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlz
Yy9oZWFkZXJzL1RleHQuaCBiL1Rvb2xzL0xheW91dFJlbG9hZGVkL21pc2MvaGVhZGVycy9UZXh0
LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDlhN2U5MmI0MzgyZWViODljOTZkYzZm
N2YzYjk2NDY2NjA3MWZlOTAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvVG9vbHMvTGF5b3V0UmVsb2FkZWQvbWlzYy9oZWFkZXJzL1RleHQuaAorKysgL2Rl
di9udWxsCkBAIC0xLDQyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUg
SW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUK
LSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi1uYW1lc3BhY2UgTGF5b3V0UmVsb2FkZWQgewotCi1jbGFzcyBJbmxpbmVD
b250YWluZXI7Ci0KLWNsYXNzIFRleHQgewotcHVibGljOgotICAgIFRleHQoTm9kZSosIHVuc2ln
bmVkIGlkLCBJbmxpbmVCb3gmIHBhcmVudCk7Ci0gICAgflRleHQoKTsKLQotICAgIFN0cmluZyYg
Y29udGVudCgpOwotICAgIHVuc2lnbmVkIGxlbmd0aCgpOwotCi1wcml2YXRlOgotICAgIElubGlu
ZUJveCYgbV9wYXJlbnQ7Ci19OwotCi19Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>