<?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>99762</bug_id>
          
          <creation_ts>2012-10-18 15:15:28 -0700</creation_ts>
          <short_desc>REGRESSION(r131810): Broke linux debug webkit_unit_tests (Requested by danakj|gardening on #webkit).</short_desc>
          <delta_ts>2012-10-18 15:45:48 -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>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>hclam</cc>
    
    <cc>senorblanco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745619</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 15:15:28 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/131810 broke the build:
Broke linux debug webkit_unit_tests (Requested by danakj|gardening on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745622</commentid>
    <comment_count>1</comment_count>
      <attachid>169485</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 15:16:14 -0700</bug_when>
    <thetext>Created attachment 169485
ROLLOUT of r131810

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745632</commentid>
    <comment_count>2</comment_count>
      <attachid>169485</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 15:24:39 -0700</bug_when>
    <thetext>Comment on attachment 169485
ROLLOUT of r131810

Clearing flags on attachment: 169485

Committed r131815: &lt;http://trac.webkit.org/changeset/131815&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745633</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 15:24:42 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169485</attachid>
            <date>2012-10-18 15:16:14 -0700</date>
            <delta_ts>2012-10-18 15:24:39 -0700</delta_ts>
            <desc>ROLLOUT of r131810</desc>
            <filename>bug-99762-20121018222240.patch</filename>
            <type>text/plain</type>
            <size>72165</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMxODE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdiYmQ5ZGE1NjA1YmI5
NDllN2M0MTYyMjcyZTUyMDBlNWU1NTkyNS4uOGExMTAwMTFhNGQ5OWJlNTcwOGViOGViMGQ2ZDI0
NDdhNGZmZDY0NSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDEyLTEwLTE4ICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTMxODEwLgorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8xMzE4MTAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTk5NzYyCisKKyAgICAgICAgQnJva2UgbGludXggZGVidWcgd2Via2l0X3VuaXRf
dGVzdHMgKFJlcXVlc3RlZCBieQorICAgICAgICBkYW5ha2p8Z2FyZGVuaW5nIG9uICN3ZWJraXQp
LgorCisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0ltYWdlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlU291cmNlOjpzZXREYXRh
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChJbWFnZVNvdXJjZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuY3BwOiBSZW1vdmVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVyLmg6IFJl
bW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VEZWNvZGlu
Z1N0b3JlLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9JbWFnZURlY29kaW5nU3RvcmUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9JbWFnZUZyYW1lR2VuZXJhdG9yLmNwcDogUmVtb3ZlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUZyYW1lR2VuZXJhdG9yLmg6IFJlbW92
ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF6eURlY29kaW5nUGl4
ZWxSZWYuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0xhenlEZWNvZGluZ1BpeGVsUmVmLmg6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vU2NhbGVkSW1hZ2VGcmFnbWVudC5jcHA6IFJlbW92ZWQuCisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2NhbGVkSW1hZ2VGcmFnbWVudC5oOiBSZW1v
dmVkLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvTmF0aXZlSW1hZ2VTa2lhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok5hdGl2ZUltYWdlU2tpYTo6cmVzaXplZEJpdG1hcCk6Cisg
ICAgICAgICogcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmg6CisgICAgICAg
IChJbWFnZUZyYW1lKToKKwogMjAxMi0xMC0xOCAgVG9tbXkgV2lkZW5mbHljaHQgIDx0b21teXdA
Z29vZ2xlLmNvbT4KIAogICAgICAgICBNZWRpYVN0cmVhbSBBUEk6IERvIHNvbWUgY2xlYW51cCBp
biB0aGUgY2hyb21pdW0gV2ViS2l0IEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBi
MWZlNTUzY2NlNjdiN2MyZjA2NWE0MjYzZGE1MWNjNDkyODgwY2I2Li4yMjhiZWVmMDZiZjU1ZDFk
Y2JlY2NkMzRhOGJmZWQ4ZTFmYTA5MGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDIzIEBACisyMDEyLTEwLTE4ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90
QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTMxODEwLgor
ICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMzE4MTAKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5NzYyCisKKyAgICAgICAg
QnJva2UgbGludXggZGVidWcgd2Via2l0X3VuaXRfdGVzdHMgKFJlcXVlc3RlZCBieQorICAgICAg
ICBkYW5ha2p8Z2FyZGVuaW5nIG9uICN3ZWJraXQpLgorCisgICAgICAgICogV2ViS2l0Lmd5cGk6
CisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL1dlYktpdC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OnNodXRkb3duKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGlu
Z3NJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpXZWJTZXR0aW5n
c0ltcGwpOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKKyAgICAgICAgKFdlYlNl
dHRpbmdzSW1wbCk6CisgICAgICAgICogdGVzdHMvRGVmZXJyZWRJbWFnZURlY29kZXJUZXN0LmNw
cDogUmVtb3ZlZC4KKyAgICAgICAgKiB0ZXN0cy9Nb2NrSW1hZ2VEZWNvZGVyLmg6IFJlbW92ZWQu
CisKIDIwMTItMTAtMTggIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBbY2hyb21pdW1dIEltcGxlbWVudCBkZWZlcnJlZCBpbWFnZSBkZWNvZGluZwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDQ4YTFkY2IzZjVjYTg0MjQxMTA5NDAwZmZmOTRjY2IyMTMyNmE3MDQuLjkwMTk2
MDRkY2U4YWRjZWY5OGNkNjNiY2NmYWU5MTRiNGExNWQzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTQ5MTcsOCArNDkxNyw2IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vQ29tcG9zaXRvckhVREZvbnRBdGxhcy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9Dcm9zc1Byb2Nlc3NGb250TG9hZGluZy5oJywKICAgICAgICAgICAgICdw
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Dcm9zc1Byb2Nlc3NGb250TG9hZGluZy5tbScsCi0g
ICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29k
ZXIuY3BwJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZlcnJl
ZEltYWdlRGVjb2Rlci5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9EcmF3aW5nQnVmZmVyQ2hyb21pdW0uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9FeHRlbnNpb25zM0RDaHJvbWl1bS5oJywKICAgICAgICAgICAgICdwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250Q2FjaGVBbmRyb2lkLmNwcCcsCkBAIC00OTM4LDE4
ICs0OTM2LDEwIEBACiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSWNv
bkNocm9taXVtQW5kcm9pZC5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ltYWdlQnVmZmVyRGF0YVNraWEuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vSW1hZ2VDaHJvbWl1bS5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlRGVjb2RpbmdTdG9yZS5jcHAnLAotICAgICAgICAgICAg
J3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlRGVjb2RpbmdTdG9yZS5oJywKLSAgICAg
ICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUZyYW1lR2VuZXJhdG9yLmNw
cCcsCi0gICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VGcmFtZUdl
bmVyYXRvci5oJywKLSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXp5
RGVjb2RpbmdQaXhlbFJlZi5jcHAnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0xhenlEZWNvZGluZ1BpeGVsUmVmLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL01lZGlhUGxheWVyUHJpdmF0ZUNocm9taXVtLmgnLAogICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL09wYXF1ZVJlY3RUcmFja2luZ0NvbnRlbnRM
YXllckRlbGVnYXRlLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vT3BhcXVlUmVjdFRyYWNraW5nQ29udGVudExheWVyRGVsZWdhdGUuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vUGxhdGZvcm1JY29uLmgnLAotICAgICAgICAg
ICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NjYWxlZEltYWdlRnJhZ21lbnQuY3BwJywK
LSAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY2FsZWRJbWFnZUZyYWdt
ZW50LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NpbXBsZUZv
bnREYXRhQ2hyb21pdW1XaW4uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9UcmFuc3BhcmVuY3lXaW4uY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9UcmFuc3BhcmVuY3lXaW4uaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKaW5kZXggYWJmYTU5ODhiNDJiYzY5MGY3
ZWFiYzk1M2VlYjA3ZDA1MzAwM2M0Yy4uODJkZmRlMWM5ZGQ4MmUzMTViYmRkOWVlODljZDA4MjNj
OWNjOGU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmNwcApAQCAtMzUsMTAgKzM1LDYgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtTWVtb3J5SW5zdHJ1bWVudGF0aW9uLmgiCiAKLSNpZiBQTEFU
Rk9STShDSFJPTUlVTSkKLSNpbmNsdWRlICJEZWZlcnJlZEltYWdlRGVjb2Rlci5oIgotI2VuZGlm
Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogI2lmIEVOQUJMRShJTUFHRV9ERUNPREVSX0RPV05f
U0FNUExJTkcpCkBAIC04Myw3ICs3OSw3IEBAIHZvaWQgSW1hZ2VTb3VyY2U6OnNldERhdGEoU2hh
cmVkQnVmZmVyKiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKICAgICAvLyBJZiBpbnN1ZmZp
Y2llbnQgYnl0ZXMgYXJlIGF2YWlsYWJsZSB0byBkZXRlcm1pbmUgdGhlIGltYWdlIHR5cGUsIG5v
IGRlY29kZXIgcGx1Z2luIHdpbGwgYmUKICAgICAvLyBtYWRlLgogICAgIGlmICghbV9kZWNvZGVy
KSB7Ci0gICAgICAgIG1fZGVjb2RlciA9IHN0YXRpY19jYXN0PE5hdGl2ZUltYWdlRGVjb2RlclB0
cj4oTmF0aXZlSW1hZ2VEZWNvZGVyOjpjcmVhdGUoKmRhdGEsIG1fYWxwaGFPcHRpb24sIG1fZ2Ft
bWFBbmRDb2xvclByb2ZpbGVPcHRpb24pKTsKKyAgICAgICAgbV9kZWNvZGVyID0gc3RhdGljX2Nh
c3Q8TmF0aXZlSW1hZ2VTb3VyY2VQdHI+KEltYWdlRGVjb2Rlcjo6Y3JlYXRlKCpkYXRhLCBtX2Fs
cGhhT3B0aW9uLCBtX2dhbW1hQW5kQ29sb3JQcm9maWxlT3B0aW9uKSk7CiAjaWYgRU5BQkxFKElN
QUdFX0RFQ09ERVJfRE9XTl9TQU1QTElORykKICAgICAgICAgaWYgKG1fZGVjb2RlciAmJiBzX21h
eFBpeGVsc1BlckRlY29kZWRJbWFnZSkKICAgICAgICAgICAgIG1fZGVjb2Rlci0+c2V0TWF4TnVt
UGl4ZWxzKHNfbWF4UGl4ZWxzUGVyRGVjb2RlZEltYWdlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5oCmluZGV4IDY2YThhMGE1MWMzOWZiOTI2OGIy
MjFhNDdiNjg3NTAxNTkzYmM0YTMuLjBkOGEwMWUyNmE3MmNmZmYzOWFhNDY1NDM3NDE0NGEwYTE3
OWFjMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdl
U291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuaApAQCAtNDcsMjAgKzQ3LDEwIEBAIGNsYXNzIEludFNpemU7CiBjbGFzcyBTaGFyZWRCdWZm
ZXI7CiAKICNpZiBVU0UoQ0cpCi10eXBlZGVmIENHSW1hZ2VTb3VyY2VSZWYgTmF0aXZlSW1hZ2VE
ZWNvZGVyUHRyOwotI2VsaWYgIVBMQVRGT1JNKENIUk9NSVVNKQotY2xhc3MgSW1hZ2VEZWNvZGVy
OwotdHlwZWRlZiBJbWFnZURlY29kZXIqIE5hdGl2ZUltYWdlRGVjb2RlclB0cjsKLSNlbmRpZgot
Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi1jbGFzcyBEZWZlcnJlZEltYWdlRGVjb2RlcjsKLXR5
cGVkZWYgRGVmZXJyZWRJbWFnZURlY29kZXIgTmF0aXZlSW1hZ2VEZWNvZGVyOwotdHlwZWRlZiBE
ZWZlcnJlZEltYWdlRGVjb2RlciogTmF0aXZlSW1hZ2VEZWNvZGVyUHRyOwotI2VsaWYgVVNFKENH
KQotI2RlZmluZSBOYXRpdmVJbWFnZURlY29kZXIgSW1hZ2VEZWNvZGVyCit0eXBlZGVmIENHSW1h
Z2VTb3VyY2VSZWYgTmF0aXZlSW1hZ2VTb3VyY2VQdHI7CiAjZWxzZQotdHlwZWRlZiBJbWFnZURl
Y29kZXIgTmF0aXZlSW1hZ2VEZWNvZGVyOworY2xhc3MgSW1hZ2VEZWNvZGVyOwordHlwZWRlZiBJ
bWFnZURlY29kZXIqIE5hdGl2ZUltYWdlU291cmNlUHRyOwogI2VuZGlmCiAKIC8vIFJpZ2h0IG5v
dyBHSUZzIGFyZSB0aGUgb25seSByZWNvZ25pemVkIGltYWdlIGZvcm1hdCB0aGF0IHN1cHBvcnRz
IGFuaW1hdGlvbi4KQEAgLTE2OCw3ICsxNTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZXBvcnRN
ZW1vcnlVc2FnZShNZW1vcnlPYmplY3RJbmZvKikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgTmF0
aXZlSW1hZ2VEZWNvZGVyUHRyIG1fZGVjb2RlcjsKKyAgICBOYXRpdmVJbWFnZVNvdXJjZVB0ciBt
X2RlY29kZXI7CiAKICNpZiAhVVNFKENHKQogICAgIEFscGhhT3B0aW9uIG1fYWxwaGFPcHRpb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9E
ZWZlcnJlZEltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDc1NzQxOTZlNzFhZGI0MTMxNWNkYjNjYjc1NjJlYTAwYWYwMTY4NWEuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRGVmZXJyZWRJbWFnZURlY29kZXIuY3BwCisrKyAv
ZGV2L251bGwKQEAgLTEsMTU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgR29v
Z2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiRGVmZXJyZWRJbWFnZURlY29kZXIuaCIKLQotI2luY2x1ZGUgIkltYWdlRGVj
b2RpbmdTdG9yZS5oIgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVzcGFjZSBX
ZWJDb3JlIHsKLQotRGVmZXJyZWRJbWFnZURlY29kZXI6OkRlZmVycmVkSW1hZ2VEZWNvZGVyKElt
YWdlRGVjb2RlciogYWN0dWFsRGVjb2RlcikKLSAgICA6IG1fYWxsRGF0YVJlY2VpdmVkKGZhbHNl
KQotICAgICwgbV9hY3R1YWxEZWNvZGVyKGFkb3B0UHRyKGFjdHVhbERlY29kZXIpKQotewotfQot
Ci1EZWZlcnJlZEltYWdlRGVjb2Rlcjo6fkRlZmVycmVkSW1hZ2VEZWNvZGVyKCkKLXsKLSAgICAv
LyBGSVhNRTogUmVtb3ZlIHRoZSBjb3JyZXNwb25kaW5nIGVudHJ5IGluIEltYWdlRGVjb2RpbmdT
dG9yZSBpZiBpbWFnZQotICAgIC8vIGlzIGRlZmVyLWRlY29kZWQuCi19Ci0KLURlZmVycmVkSW1h
Z2VEZWNvZGVyKiBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6Y3JlYXRlKGNvbnN0IFNoYXJlZEJ1ZmZl
ciYgZGF0YSwgSW1hZ2VTb3VyY2U6OkFscGhhT3B0aW9uIGFscGhhT3B0aW9uLCBJbWFnZVNvdXJj
ZTo6R2FtbWFBbmRDb2xvclByb2ZpbGVPcHRpb24gZ2FtbWFBbmRDb2xvck9wdGlvbikKLXsKLSAg
ICBJbWFnZURlY29kZXIqIGFjdHVhbERlY29kZXIgPSBJbWFnZURlY29kZXI6OmNyZWF0ZShkYXRh
LCBhbHBoYU9wdGlvbiwgZ2FtbWFBbmRDb2xvck9wdGlvbik7Ci0gICAgcmV0dXJuIGFjdHVhbERl
Y29kZXIgPyBuZXcgRGVmZXJyZWRJbWFnZURlY29kZXIoYWN0dWFsRGVjb2RlcikgOiAwOwotfQot
Ci1QYXNzT3duUHRyPERlZmVycmVkSW1hZ2VEZWNvZGVyPiBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6
Y3JlYXRlRm9yVGVzdGluZyhQYXNzT3duUHRyPEltYWdlRGVjb2Rlcj4gZGVjb2RlcikKLXsKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IERlZmVycmVkSW1hZ2VEZWNvZGVyKGRlY29kZXIubGVha1B0
cigpKSk7Ci19Ci0KLVN0cmluZyBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6ZmlsZW5hbWVFeHRlbnNp
b24oKSBjb25zdAotewotICAgIHJldHVybiBtX2FjdHVhbERlY29kZXIgPyBtX2FjdHVhbERlY29k
ZXItPmZpbGVuYW1lRXh0ZW5zaW9uKCkgOiBtX2ZpbGVuYW1lRXh0ZW5zaW9uOwotfQotCi1JbWFn
ZUZyYW1lKiBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6ZnJhbWVCdWZmZXJBdEluZGV4KHNpemVfdCBp
bmRleCkKLXsKLSAgICAvLyBPbmx5IGRlZmVyIGltYWdlIGRlY29kaW5nIGlmIHRoaXMgaXMgYSBz
aW5nbGUgZnJhbWUgaW1hZ2UuIFRoZSByZWFzb24gaXMKLSAgICAvLyBiZWNhdXNlIGEgbXVsdGlm
cmFtZSBpcyB1c3VhbGx5IGFuaW1hdGVkIEdJRi4gQW5pbWF0aW9uIGlzIGhhbmRsZWQgYnkKLSAg
ICAvLyBCaXRtYXBJbWFnZSB3aGljaCB1c2VzIHNvbWUgbWV0YWRhdGEgZnVuY3Rpb25zIHRoYXQg
ZG8gc3luY2hyb25vdXMgaW1hZ2UKLSAgICAvLyBkZWNvZGluZy4KLSAgICBpZiAoSW1hZ2VEZWNv
ZGluZ1N0b3JlOjppbnN0YW5jZU9uTWFpblRocmVhZCgpCi0gICAgICAgICYmIG1fYWN0dWFsRGVj
b2RlcgotICAgICAgICAmJiBtX2FjdHVhbERlY29kZXItPnJlcGV0aXRpb25Db3VudCgpID09IGNB
bmltYXRpb25Ob25lCi0gICAgICAgICYmIG1fYWN0dWFsRGVjb2Rlci0+aXNTaXplQXZhaWxhYmxl
KCkpIHsKLQotICAgICAgICBtX3NpemUgPSBtX2FjdHVhbERlY29kZXItPnNpemUoKTsKLSAgICAg
ICAgbV9maWxlbmFtZUV4dGVuc2lvbiA9IG1fYWN0dWFsRGVjb2Rlci0+ZmlsZW5hbWVFeHRlbnNp
b24oKTsKLQotICAgICAgICBTa0JpdG1hcCBsYXp5RGVjb2RlZFNrQml0bWFwID0gSW1hZ2VEZWNv
ZGluZ1N0b3JlOjppbnN0YW5jZU9uTWFpblRocmVhZCgpLT5jcmVhdGVMYXp5RGVjb2RlZFNrQml0
bWFwKG1fYWN0dWFsRGVjb2Rlci5yZWxlYXNlKCkpOwotICAgICAgICBtX2xhenlEZWNvZGVkRnJh
bWUuc2V0U2tCaXRtYXAobGF6eURlY29kZWRTa0JpdG1hcCk7Ci0gICAgICAgIEltYWdlRGVjb2Rp
bmdTdG9yZTo6aW5zdGFuY2VPbk1haW5UaHJlYWQoKS0+c2V0RGF0YShtX2xhenlEZWNvZGVkRnJh
bWUuZ2V0U2tCaXRtYXAoKSwgbV9kYXRhLnJlbGVhc2UoKSwgbV9hbGxEYXRhUmVjZWl2ZWQpOwot
Ci0gICAgICAgIC8vIERvbid0IG1hcmsgdGhlIGZyYW1lIGFzIGNvbXBsZXRlbHkgZGVjb2RlZCB1
bnRpbCB0aGUgdW5kZXJseWluZwotICAgICAgICAvLyBkZWNvZGVyIGhhcyByZWFsbHkgZGVjb2Rl
ZCBpdC4gVW50aWwgdGhlbiwgb3VyIGRhdGEgYW5kIG1ldGFkYXRhIG1heQotICAgICAgICAvLyBi
ZSBpbmNvcnJlY3QsIHNvIGNhbGxlcnMgY2FuJ3QgcmVseSBvbiB0aGVtLgotICAgICAgICBtX2xh
enlEZWNvZGVkRnJhbWUuc2V0U3RhdHVzKEltYWdlRnJhbWU6OkZyYW1lUGFydGlhbCk7Ci0gICAg
fQotCi0gICAgcmV0dXJuIG1fYWN0dWFsRGVjb2RlciA/IG1fYWN0dWFsRGVjb2Rlci0+ZnJhbWVC
dWZmZXJBdEluZGV4KGluZGV4KSA6ICZtX2xhenlEZWNvZGVkRnJhbWU7Ci19Ci0KLXZvaWQgRGVm
ZXJyZWRJbWFnZURlY29kZXI6OnNldERhdGEoU2hhcmVkQnVmZmVyKiBkYXRhLCBib29sIGFsbERh
dGFSZWNlaXZlZCkKLXsKLSAgICBpZiAobV9hY3R1YWxEZWNvZGVyKSB7Ci0gICAgICAgIC8vIEtl
ZXAgYSByZWZlcmVuY2UgdG8gZGF0YSB1bnRpbCBpbWFnZSBkZWNvZGluZyBpcyBkZWZlcnJlZC4K
LSAgICAgICAgLy8gV2hlbiBpbWFnZSBkZWNvZGluZyBpcyBkZWZlcnJlZCB0aGVuIG93bmVyc2hp
cCBvZiBtX2RhdGEgaXMKLSAgICAgICAgLy8gdHJhbnNmZXJyZWQgdG8gSW1hZ2VEZWNvZGluZ1N0
b3JlLgotICAgICAgICBtX2RhdGEgPSBkYXRhOwotICAgICAgICBtX2FsbERhdGFSZWNlaXZlZCA9
IGFsbERhdGFSZWNlaXZlZDsKLSAgICAgICAgbV9hY3R1YWxEZWNvZGVyLT5zZXREYXRhKGRhdGEs
IGFsbERhdGFSZWNlaXZlZCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUKCFtX2RhdGEp
OwotICAgICAgICBJbWFnZURlY29kaW5nU3RvcmU6Omluc3RhbmNlT25NYWluVGhyZWFkKCktPnNl
dERhdGEobV9sYXp5RGVjb2RlZEZyYW1lLmdldFNrQml0bWFwKCksIGRhdGEsIGFsbERhdGFSZWNl
aXZlZCk7Ci0gICAgfQotfQotCi1ib29sIERlZmVycmVkSW1hZ2VEZWNvZGVyOjppc1NpemVBdmFp
bGFibGUoKQotewotICAgIC8vIG1fYWN0dWFsRGVjb2RlciBpcyAwIG9ubHkgaWYgaW1hZ2UgZGVj
b2RpbmcgaXMgZGVmZXJyZWQgYW5kIHRoYXQKLSAgICAvLyBtZWFucyBpbWFnZSBoZWFkZXIgZGVj
b2RlZCBzdWNjZXNzZnVsbHkgYW5kIHNpemUgaXMgYXZhaWxhYmxlLgotICAgIHJldHVybiBtX2Fj
dHVhbERlY29kZXIgPyBtX2FjdHVhbERlY29kZXItPmlzU2l6ZUF2YWlsYWJsZSgpIDogdHJ1ZTsK
LX0KLQotSW50U2l6ZSBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6c2l6ZSgpIGNvbnN0Ci17Ci0gICAg
cmV0dXJuIG1fYWN0dWFsRGVjb2RlciA/IG1fYWN0dWFsRGVjb2Rlci0+c2l6ZSgpIDogbV9zaXpl
OwotfQotCi1JbnRTaXplIERlZmVycmVkSW1hZ2VEZWNvZGVyOjpmcmFtZVNpemVBdEluZGV4KHNp
emVfdCBpbmRleCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9hY3R1YWxEZWNvZGVyID8gbV9hY3R1
YWxEZWNvZGVyLT5mcmFtZVNpemVBdEluZGV4KGluZGV4KSA6IG1fc2l6ZTsKLX0KLQotc2l6ZV90
IERlZmVycmVkSW1hZ2VEZWNvZGVyOjpmcmFtZUNvdW50KCkKLXsKLSAgICByZXR1cm4gbV9hY3R1
YWxEZWNvZGVyID8gbV9hY3R1YWxEZWNvZGVyLT5mcmFtZUNvdW50KCkgOiAxOwotfQotCi1pbnQg
RGVmZXJyZWRJbWFnZURlY29kZXI6OnJlcGV0aXRpb25Db3VudCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fYWN0dWFsRGVjb2RlciA/IG1fYWN0dWFsRGVjb2Rlci0+cmVwZXRpdGlvbkNvdW50KCkg
OiBjQW5pbWF0aW9uTm9uZTsKLX0KLQotdm9pZCBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6Y2xlYXJG
cmFtZUJ1ZmZlckNhY2hlKHNpemVfdCBjbGVhckJlZm9yZUZyYW1lKQotewotICAgIC8vIElmIGlt
YWdlIGRlY29kaW5nIGlzIGRlZmVycmVkIHRoZW4gZnJhbWUgYnVmZmVyIGNhY2hlIGlzIG1hbmFn
ZWQgYnkKLSAgICAvLyB0aGUgY29tcG9zaXRvciBhbmQgdGhpcyBjYWxsIGlzIGlnbm9yZWQuCi0g
ICAgaWYgKG1fYWN0dWFsRGVjb2RlcikKLSAgICAgICAgbV9hY3R1YWxEZWNvZGVyLT5jbGVhckZy
YW1lQnVmZmVyQ2FjaGUoY2xlYXJCZWZvcmVGcmFtZSk7Ci19Ci0KLWJvb2wgRGVmZXJyZWRJbWFn
ZURlY29kZXI6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKLXsKLSAg
ICAvLyBGSVhNRTogU3luY2hyb25pemUgdGhpcyBzdGF0ZSB3aXRoIEltYWdlRGVjb2RpbmdTdG9y
ZSB3aGVuIGltYWdlIGlzCi0gICAgLy8gYWN0dWFsbHkgZGVjb2RlZC4gUmV0dXJuIHRydWUgaGVy
ZSBpcyBjb3JyZWN0IGluIHRlcm1zIG9mIHJlbmRlcmluZyBidXQKLSAgICAvLyBtYXkgbm90IGdv
IHRocm91Z2ggc29tZSBvcHRpbWl6ZWQgcmVuZGVyaW5nIGNvZGUgcGF0aC4KLSAgICByZXR1cm4g
bV9hY3R1YWxEZWNvZGVyID8gbV9hY3R1YWxEZWNvZGVyLT5mcmFtZUhhc0FscGhhQXRJbmRleChp
bmRleCkgOiB0cnVlOwotfQotCi11bnNpZ25lZCBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6ZnJhbWVC
eXRlc0F0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAotewotICAgIC8vIElmIGZyYW1lIGRlY29k
aW5nIGlzIGRlZmVycmVkIHRoZW4gaXQgaXMgbm90IG1hbmFnZWQgYnkgTWVtb3J5Q2FjaGUKLSAg
ICAvLyBzbyByZXR1cm4gMCBoZXJlLgotICAgIHJldHVybiBtX2FjdHVhbERlY29kZXIgPyBtX2Fj
dHVhbERlY29kZXItPmZyYW1lQnl0ZXNBdEluZGV4KGluZGV4KSA6IDA7Ci19Ci0KLX0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9EZWZlcnJlZEltYWdlRGVjb2Rlci5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2YjMzZmUzNWUwZWM2YjMyMTVhOTQzZDI3NjE2ZjBjM2Q5YzM4
YmQzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0RlZmVycmVkSW1hZ2VEZWNvZGVy
LmgKKysrIC9kZXYvbnVsbApAQCAtMSw3NSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAy
MDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0g
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBEZWZl
cnJlZEltYWdlRGVjb2Rlcl9oCi0jZGVmaW5lIERlZmVycmVkSW1hZ2VEZWNvZGVyX2gKLQotI2lu
Y2x1ZGUgIkltYWdlRGVjb2Rlci5oIgotI2luY2x1ZGUgIkltYWdlU291cmNlLmgiCi0jaW5jbHVk
ZSAiSW50U2l6ZS5oIgotI2luY2x1ZGUgIlNrQml0bWFwLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3Jl
IHsKLQotY2xhc3MgU2hhcmVkQnVmZmVyOwotCi1jbGFzcyBEZWZlcnJlZEltYWdlRGVjb2RlciB7
Ci1wdWJsaWM6Ci0gICAgfkRlZmVycmVkSW1hZ2VEZWNvZGVyKCk7Ci0gICAgc3RhdGljIERlZmVy
cmVkSW1hZ2VEZWNvZGVyKiBjcmVhdGUoY29uc3QgU2hhcmVkQnVmZmVyJiBkYXRhLCBJbWFnZVNv
dXJjZTo6QWxwaGFPcHRpb24sIEltYWdlU291cmNlOjpHYW1tYUFuZENvbG9yUHJvZmlsZU9wdGlv
bik7Ci0KLSAgICBzdGF0aWMgUGFzc093blB0cjxEZWZlcnJlZEltYWdlRGVjb2Rlcj4gY3JlYXRl
Rm9yVGVzdGluZyhQYXNzT3duUHRyPEltYWdlRGVjb2Rlcj4pOwotCi0gICAgU3RyaW5nIGZpbGVu
YW1lRXh0ZW5zaW9uKCkgY29uc3Q7Ci0KLSAgICBJbWFnZUZyYW1lKiBmcmFtZUJ1ZmZlckF0SW5k
ZXgoc2l6ZV90IGluZGV4KTsKLQotICAgIHZvaWQgc2V0RGF0YShTaGFyZWRCdWZmZXIqIGRhdGEs
IGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKLQotICAgIGJvb2wgaXNTaXplQXZhaWxhYmxlKCk7Ci0g
ICAgSW50U2l6ZSBzaXplKCkgY29uc3Q7Ci0gICAgSW50U2l6ZSBmcmFtZVNpemVBdEluZGV4KHNp
emVfdCBpbmRleCkgY29uc3Q7Ci0gICAgc2l6ZV90IGZyYW1lQ291bnQoKTsKLSAgICBpbnQgcmVw
ZXRpdGlvbkNvdW50KCkgY29uc3Q7Ci0gICAgdm9pZCBjbGVhckZyYW1lQnVmZmVyQ2FjaGUoc2l6
ZV90KTsKLSAgICBib29sIGZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkgY29uc3Q7
Ci0gICAgdW5zaWduZWQgZnJhbWVCeXRlc0F0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdDsKLQot
cHJpdmF0ZToKLSAgICBleHBsaWNpdCBEZWZlcnJlZEltYWdlRGVjb2RlcihJbWFnZURlY29kZXIq
IGFjdHVhbERlY29kZXIpOwotCi0gICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9kYXRhOwotICAg
IGJvb2wgbV9hbGxEYXRhUmVjZWl2ZWQ7Ci0gICAgT3duUHRyPEltYWdlRGVjb2Rlcj4gbV9hY3R1
YWxEZWNvZGVyOwotCi0gICAgU3RyaW5nIG1fZmlsZW5hbWVFeHRlbnNpb247Ci0gICAgSW50U2l6
ZSBtX3NpemU7Ci0KLSAgICBJbWFnZUZyYW1lIG1fbGF6eURlY29kZWRGcmFtZTsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZURlY29kaW5nU3RvcmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VEZWNvZGluZ1N0b3Jl
LmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDI3OTBkZjkwZjhmZjQ2MDEyMjJl
Y2M0NmZkZWM0OWZkYTg5NTc0ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFn
ZURlY29kaW5nU3RvcmUuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsMjI1ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0g
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSW1hZ2VEZWNvZGluZ1N0b3JlLmgi
Ci0KLSNpbmNsdWRlICJJbWFnZURlY29kZXIuaCIKLSNpbmNsdWRlICJJbWFnZUZyYW1lR2VuZXJh
dG9yLmgiCi0jaW5jbHVkZSAiTGF6eURlY29kaW5nUGl4ZWxSZWYuaCIKLSNpbmNsdWRlICJTY2Fs
ZWRJbWFnZUZyYWdtZW50LmgiCi0jaW5jbHVkZSAiU2tSZWN0LmgiCi0jaW5jbHVkZSAiU2tTaXpl
LmgiCi0KLSNpbmNsdWRlICJza2lhL2V4dC9pbWFnZV9vcGVyYXRpb25zLmgiCi0KLSNpbmNsdWRl
IDx3dGYvTWFpblRocmVhZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+Ci0KLW5hbWVz
cGFjZSBXZWJDb3JlIHsKLQotbmFtZXNwYWNlIHsKLQotLy8gVVJJIGxhYmVsIGZvciBhIGxhemls
eSBkZWNvZGVkIFNrUGl4ZWxSZWYuCi1jb25zdCBjaGFyIGxhYmVsTGF6eURlY29kZWRbXSA9ICJs
YXp5IjsKLQotSW1hZ2VEZWNvZGluZ1N0b3JlKiBzX2luc3RhbmNlT25NYWluVGhyZWFkID0gMDsK
LQotc3RhdGljIHZvaWQgc2V0SW5zdGFuY2VPbk1haW5UaHJlYWQoSW1hZ2VEZWNvZGluZ1N0b3Jl
KiBpbWFnZURlY29kaW5nU3RvcmUpCi17Ci0gICAgZGVsZXRlIHNfaW5zdGFuY2VPbk1haW5UaHJl
YWQ7Ci0gICAgc19pbnN0YW5jZU9uTWFpblRocmVhZCA9IGltYWdlRGVjb2RpbmdTdG9yZTsKLX0K
LX0gLy8gbmFtZXNwYWNlCi0KLUltYWdlRGVjb2RpbmdTdG9yZTo6SW1hZ2VEZWNvZGluZ1N0b3Jl
KCkKLXsKLX0KLQotSW1hZ2VEZWNvZGluZ1N0b3JlOjp+SW1hZ2VEZWNvZGluZ1N0b3JlKCkKLXsK
LX0KLQotSW1hZ2VEZWNvZGluZ1N0b3JlKiBJbWFnZURlY29kaW5nU3RvcmU6Omluc3RhbmNlT25N
YWluVGhyZWFkKCkKLXsKLSAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIHJldHVybiBz
X2luc3RhbmNlT25NYWluVGhyZWFkOwotfQotCi12b2lkIEltYWdlRGVjb2RpbmdTdG9yZTo6aW5p
dGlhbGl6ZU9uTWFpblRocmVhZCgpCi17Ci0gICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAg
ICBzZXRJbnN0YW5jZU9uTWFpblRocmVhZChJbWFnZURlY29kaW5nU3RvcmU6OmNyZWF0ZSgpLmxl
YWtQdHIoKSk7Ci19Ci0KLXZvaWQgSW1hZ2VEZWNvZGluZ1N0b3JlOjpzaHV0ZG93bigpCi17Ci0g
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBzZXRJbnN0YW5jZU9uTWFpblRocmVhZCgw
KTsKLX0KLQotYm9vbCBJbWFnZURlY29kaW5nU3RvcmU6OmlzTGF6eURlY29kZWQoY29uc3QgU2tC
aXRtYXAmIGJpdG1hcCkKLXsKLSAgICByZXR1cm4gYml0bWFwLnBpeGVsUmVmKCkKLSAgICAgICAg
JiYgYml0bWFwLnBpeGVsUmVmKCktPmdldFVSSSgpCi0gICAgICAgICYmICFtZW1jbXAoYml0bWFw
LnBpeGVsUmVmKCktPmdldFVSSSgpLCBsYWJlbExhenlEZWNvZGVkLCBzaXplb2YobGFiZWxMYXp5
RGVjb2RlZCkpOwotfQotCi1Ta0JpdG1hcCBJbWFnZURlY29kaW5nU3RvcmU6OmNyZWF0ZUxhenlE
ZWNvZGVkU2tCaXRtYXAoUGFzc093blB0cjxJbWFnZURlY29kZXI+IGRlY29kZXIpCi17Ci0gICAg
QVNTRVJUKGNhbGxlZE9uVmFsaWRUaHJlYWQoKSk7Ci0KLSAgICBTa0lTaXplIGZ1bGxTaXplID0g
U2tJU2l6ZTo6TWFrZShkZWNvZGVyLT5zaXplKCkud2lkdGgoKSwgZGVjb2Rlci0+c2l6ZSgpLmhl
aWdodCgpKTsKLSAgICBBU1NFUlQoIWZ1bGxTaXplLmlzRW1wdHkoKSk7Ci0KLSAgICBTa0lSZWN0
IGZ1bGxSZWN0ID0gU2tJUmVjdDo6TWFrZVNpemUoZnVsbFNpemUpOwotCi0gICAgLy8gQ3JlYXRl
cyBhIGxhemlseSBkZWNvZGVkIFNrUGl4ZWxSZWYgdGhhdCByZWZlcmVuY2VzIHRoZSBlbnRpcmUg
aW1hZ2Ugd2l0aG91dCBzY2FsaW5nLgotICAgIFNrQml0bWFwIGJpdG1hcDsKLSAgICBiaXRtYXAu
c2V0Q29uZmlnKFNrQml0bWFwOjprQVJHQl84ODg4X0NvbmZpZywgZnVsbFNpemUud2lkdGgoKSwg
ZnVsbFNpemUuaGVpZ2h0KCkpOwotICAgIGJpdG1hcC5zZXRQaXhlbFJlZihuZXcgTGF6eURlY29k
aW5nUGl4ZWxSZWYoSW1hZ2VGcmFtZUdlbmVyYXRvcjo6Y3JlYXRlKGRlY29kZXIpLCBmdWxsU2l6
ZSwgZnVsbFJlY3QpKS0+dW5yZWYoKTsKLQotICAgIC8vIFVzZSBVUkkgdG8gaWRlbnRpZnkgdGhp
cyBpcyBhIGxhemlseSBkZWNvZGVkIFNrUGl4ZWxSZWYgb2YgdHlwZSBMYXp5RGVjb2RpbmdQaXhl
bFJlZi4KLSAgICAvLyBGSVhNRTogR2l2ZSB0aGUgYWN0dWFsIFVSSSBpcyBtb3JlIHVzZWZ1bC4K
LSAgICBiaXRtYXAucGl4ZWxSZWYoKS0+c2V0VVJJKGxhYmVsTGF6eURlY29kZWQpOwotCi0gICAg
Ly8gSW5mb3JtIHRoZSBiaXRtYXAgdGhhdCB3ZSB3aWxsIG5ldmVyIGNoYW5nZSB0aGUgcGl4ZWxz
LiBUaGlzIGlzIGEgcGVyZm9ybWFuY2UgaGludAotICAgIC8vIHN1YnN5c3RlbXMgdGhhdCBtYXkg
dHJ5IHRvIGNhY2hlIHRoaXMgYml0bWFwIChlLmcuIHBpY3R1cmVzLCBwaXBlcywgZ3B1LCBwZGYs
IGV0Yy4pCi0gICAgYml0bWFwLnNldEltbXV0YWJsZSgpOwotCi0gICAgLy8gRklYTUU6IFNldHRp
bmcgYml0bWFwLnNldElzT3BhcXVlKCkgaXMgYmlnIHBlcmZvcm1hbmNlIGdhaW4gaWYgcG9zc2li
bGUuIFdlIGNhbgotICAgIC8vIGRvIHNvIHNhZmVseSBpZiB0aGUgaW1hZ2UgaXMgZnVsbHkgbG9h
ZGVkIGFuZCBpdCBpcyBhIEpQRUcgaW1hZ2UsIG9yIGltYWdlIHdhcwotICAgIC8vIGRlY29kZWQg
YmVmb3JlLgotCi0gICAgcmV0dXJuIGJpdG1hcDsKLX0KLQotU2tCaXRtYXAgSW1hZ2VEZWNvZGlu
Z1N0b3JlOjpyZXNpemVMYXp5RGVjb2RlZFNrQml0bWFwKGNvbnN0IFNrQml0bWFwJiBiaXRtYXAs
IGNvbnN0IFNrSVNpemUmIHNjYWxlZFNpemUsIGNvbnN0IFNrSVJlY3QmIHNjYWxlZFN1YnNldCkK
LXsKLSAgICBBU1NFUlQoY2FsbGVkT25WYWxpZFRocmVhZCgpKTsKLQotICAgIExhenlEZWNvZGlu
Z1BpeGVsUmVmKiBwaXhlbFJlZiA9IHN0YXRpY19jYXN0PExhenlEZWNvZGluZ1BpeGVsUmVmKj4o
Yml0bWFwLnBpeGVsUmVmKCkpOwotICAgIEFTU0VSVCghcGl4ZWxSZWYtPmlzU2NhbGVkKHBpeGVs
UmVmLT5mcmFtZUdlbmVyYXRvcigpLT5mdWxsU2l6ZSgpKSAmJiAhcGl4ZWxSZWYtPmlzQ2xpcHBl
ZCgpKTsKLQotICAgIGludCByb3dCeXRlcyA9IDA7Ci0gICAgcm93Qnl0ZXMgPSBTa0JpdG1hcDo6
Q29tcHV0ZVJvd0J5dGVzKFNrQml0bWFwOjprQVJHQl84ODg4X0NvbmZpZywgc2NhbGVkU2l6ZS53
aWR0aCgpKTsKLQotICAgIFNrQml0bWFwIHJlc2l6ZWRCaXRtYXA7Ci0gICAgcmVzaXplZEJpdG1h
cC5zZXRDb25maWcoU2tCaXRtYXA6OmtBUkdCXzg4ODhfQ29uZmlnLCBzY2FsZWRTdWJzZXQud2lk
dGgoKSwgc2NhbGVkU3Vic2V0LmhlaWdodCgpLCByb3dCeXRlcyk7Ci0gICAgcmVzaXplZEJpdG1h
cC5zZXRQaXhlbFJlZihuZXcgTGF6eURlY29kaW5nUGl4ZWxSZWYocGl4ZWxSZWYtPmZyYW1lR2Vu
ZXJhdG9yKCksIHNjYWxlZFNpemUsIHNjYWxlZFN1YnNldCkpLT51bnJlZigpOwotCi0gICAgLy8g
U2VlIGNvbW1lbnRzIGluIGNyZWF0ZUxhenlEZWNvZGVkU2tCaXRtYXAoKS4KLSAgICByZXNpemVk
Qml0bWFwLnNldEltbXV0YWJsZSgpOwotICAgIHJldHVybiByZXNpemVkQml0bWFwOwotfQotCi12
b2lkIEltYWdlRGVjb2RpbmdTdG9yZTo6c2V0RGF0YShjb25zdCBTa0JpdG1hcCYgYml0bWFwLCBQ
YXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gZGF0YSwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpCi17Ci0g
ICAgQVNTRVJUKGNhbGxlZE9uVmFsaWRUaHJlYWQoKSk7Ci0gICAgaWYgKGlzTGF6eURlY29kZWQo
Yml0bWFwKSkKLSAgICAgICAgc3RhdGljX2Nhc3Q8TGF6eURlY29kaW5nUGl4ZWxSZWYqPihiaXRt
YXAucGl4ZWxSZWYoKSktPmZyYW1lR2VuZXJhdG9yKCktPnNldERhdGEoZGF0YSwgYWxsRGF0YVJl
Y2VpdmVkKTsKLX0KLQotdm9pZCogSW1hZ2VEZWNvZGluZ1N0b3JlOjpsb2NrUGl4ZWxzKFBhc3NS
ZWZQdHI8SW1hZ2VGcmFtZUdlbmVyYXRvcj4gZnJhbWVHZW5lcmF0b3IsIGNvbnN0IFNrSVNpemUm
IHNjYWxlZFNpemUsIGNvbnN0IFNrSVJlY3QmIHNjYWxlZFN1YnNldCkKLXsKLSAgICBBU1NFUlQo
Y2FsbGVkT25WYWxpZFRocmVhZCgpKTsKLSAgICBBU1NFUlQobV9sb2NrZWRTa0JpdG1hcC5pc051
bGwoKSk7Ci0KLSAgICBTa0lTaXplIGZ1bGxTaXplID0gZnJhbWVHZW5lcmF0b3ItPmZ1bGxTaXpl
KCk7Ci0KLSAgICAvLyBUaGUgY2FjaGUgb25seSBzYXZlcyB0aGUgZnVsbCBzaXplIGltYWdlIGF0
IHRoZSBtb21lbnQuCi0gICAgU2NhbGVkSW1hZ2VGcmFnbWVudCogZnJhbWVDYWNoZSA9IGxvb2t1
cEZyYW1lQ2FjaGUoZnJhbWVHZW5lcmF0b3ItPmltYWdlSWQoKSwgZnVsbFNpemUpOwotICAgIFNr
Qml0bWFwIGJpdG1hcDsKLQotICAgIGlmICghZnJhbWVDYWNoZSkgewotICAgICAgICAvLyBGSVhN
RTogUGl4ZWxzIGFyZSBvd25lZCBieSB0aGUgSW1hZ2VEZWNvZGVyIGluIHRoZSBnZW5lcmF0b3Iu
IEZpbmQKLSAgICAgICAgLy8gYSB3YXkgdG8gdHJhbnNmZXIgb3duZXJzaGlwIHRvIG91ciBjYWNo
ZS4KLSAgICAgICAgSW1hZ2VGcmFtZSogZnJhbWUgPSBmcmFtZUdlbmVyYXRvci0+ZGVjb2Rlcigp
LT5mcmFtZUJ1ZmZlckF0SW5kZXgoMCk7Ci0KLSAgICAgICAgLy8gU2F2ZXMgdGhlIGZyYW1lIGlu
IGNhY2hlIGlmIHRoaXMgaXMgY29tcGxldGUuCi0gICAgICAgIGlmIChmcmFtZS0+c3RhdHVzKCkg
PT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSkgewotICAgICAgICAgICAgbV9mcmFtZUNhY2hl
LmFwcGVuZChTY2FsZWRJbWFnZUZyYWdtZW50OjpjcmVhdGUoZnJhbWVHZW5lcmF0b3ItPmltYWdl
SWQoKSwgZnVsbFNpemUsIGZyYW1lLT5nZXRTa0JpdG1hcCgpLCB0cnVlKSk7Ci0gICAgICAgIH0g
ZWxzZSBpZiAoZnJhbWUtPnN0YXR1cygpID09IEltYWdlRnJhbWU6OkZyYW1lRW1wdHkpIHsKLSAg
ICAgICAgICAgIC8vIEZJWE1FOiBJZiB0aGlzIGlzIGEgZGVjb2RpbmcgZXJyb3IuIFJlcG9ydCB0
aGlzIHRvIEJpdG1hcEltYWdlLgotICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIH0KLQot
ICAgICAgICBiaXRtYXAgPSBmcmFtZS0+Z2V0U2tCaXRtYXAoKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBBU1NFUlQoZnJhbWVDYWNoZS0+aXNDb21wbGV0ZSgpKTsKLSAgICAgICAgYml0bWFwID0g
ZnJhbWVDYWNoZS0+Yml0bWFwKCk7Ci0gICAgfQotCi0gICAgaWYgKGZ1bGxTaXplICE9IHNjYWxl
ZFNpemUpIHsKLSAgICAgICAgLy8gSW1hZ2Ugc2NhbGluZyBpcyBkb25lIG9uLXRoZS1mbHkgYW5k
IHNjYWxlZCBpbWFnZSBpcyBkZXN0cm95ZWQKLSAgICAgICAgLy8gYWZ0ZXIgdXNlLgotICAgICAg
ICAvLyBGSVhNRTogUmVzaXplIGp1c3QgdGhlIHJlcXVlc3RlZCBmcmFnbWVudC4KLSAgICAgICAg
bV9sb2NrZWRTa0JpdG1hcCA9IHNraWE6OkltYWdlT3BlcmF0aW9uczo6UmVzaXplKGJpdG1hcCwg
c2tpYTo6SW1hZ2VPcGVyYXRpb25zOjpSRVNJWkVfTEFOQ1pPUzMsIHNjYWxlZFNpemUud2lkdGgo
KSwgc2NhbGVkU2l6ZS5oZWlnaHQoKSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIG1fbG9ja2VkU2tC
aXRtYXAgPSBiaXRtYXA7Ci0gICAgbV9sb2NrZWRTa0JpdG1hcC5sb2NrUGl4ZWxzKCk7Ci0gICAg
cmV0dXJuIG1fbG9ja2VkU2tCaXRtYXAuZ2V0QWRkcihzY2FsZWRTdWJzZXQueCgpLCBzY2FsZWRT
dWJzZXQueSgpKTsKLX0KLQotdm9pZCBJbWFnZURlY29kaW5nU3RvcmU6OnVubG9ja1BpeGVscygp
Ci17Ci0gICAgQVNTRVJUKGNhbGxlZE9uVmFsaWRUaHJlYWQoKSk7Ci0KLSAgICBtX2xvY2tlZFNr
Qml0bWFwLnVubG9ja1BpeGVscygpOwotICAgIG1fbG9ja2VkU2tCaXRtYXAucmVzZXQoKTsKLX0K
LQotdm9pZCBJbWFnZURlY29kaW5nU3RvcmU6OmZyYW1lR2VuZXJhdG9yQmVpbmdEZXN0cm95ZWQo
SW1hZ2VGcmFtZUdlbmVyYXRvciogZnJhbWVHZW5lcmF0b3IpCi17Ci0gICAgQVNTRVJUKGNhbGxl
ZE9uVmFsaWRUaHJlYWQoKSk7Ci0KLSAgICBkZWxldGVGcmFtZUNhY2hlKGZyYW1lR2VuZXJhdG9y
LT5pbWFnZUlkKCkpOwotfQotCi1ib29sIEltYWdlRGVjb2RpbmdTdG9yZTo6Y2FsbGVkT25WYWxp
ZFRocmVhZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIHRoaXMgPT0gaW5zdGFuY2VPbk1haW5UaHJl
YWQoKSAmJiBpc01haW5UaHJlYWQoKTsKLX0KLQotU2NhbGVkSW1hZ2VGcmFnbWVudCogSW1hZ2VE
ZWNvZGluZ1N0b3JlOjpsb29rdXBGcmFtZUNhY2hlKGludCBpbWFnZUlkLCBjb25zdCBTa0lTaXpl
JiBzY2FsZWRTaXplKSBjb25zdAotewotICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9mcmFt
ZUNhY2hlLnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGlmIChtX2ZyYW1lQ2FjaGVbaV0tPmlzRXF1
YWwoaW1hZ2VJZCwgc2NhbGVkU2l6ZSkpCi0gICAgICAgICAgICByZXR1cm4gbV9mcmFtZUNhY2hl
W2ldLmdldCgpOwotICAgIH0KLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBJbWFnZURlY29kaW5n
U3RvcmU6OmRlbGV0ZUZyYW1lQ2FjaGUoaW50IGltYWdlSWQpCi17Ci0gICAgZm9yIChzaXplX3Qg
aSA9IDA7IGkgPCBtX2ZyYW1lQ2FjaGUuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAgaWYgKG1fZnJh
bWVDYWNoZVtpXS0+aXNFcXVhbChpbWFnZUlkKSkgewotICAgICAgICAgICAgbV9mcmFtZUNhY2hl
LnJlbW92ZShpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLX0KLQot
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vSW1hZ2VEZWNvZGluZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZURlY29kaW5nU3RvcmUuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTZhNWQ5Mjk0NWY2NzcxM2JjYTg2MjRlZmM3OGNlMTYx
NWI2NjlmYS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZURlY29kaW5nU3Rv
cmUuaAorKysgL2Rldi9udWxsCkBAIC0xLDg2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMp
IDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMn
JyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0g
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaWZuZGVmIElt
YWdlRGVjb2RpbmdTdG9yZV9oCi0jZGVmaW5lIEltYWdlRGVjb2RpbmdTdG9yZV9oCi0KLSNpbmNs
dWRlICJTa0JpdG1hcC5oIgotI2luY2x1ZGUgIlNrUmVjdC5oIgotI2luY2x1ZGUgIlNrU2l6ZS5o
IgotCi0jaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgot
I2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLSNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgotI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0KLW5hbWVzcGFj
ZSBXZWJDb3JlIHsKLQotY2xhc3MgSW1hZ2VEZWNvZGVyOwotY2xhc3MgSW1hZ2VGcmFtZUdlbmVy
YXRvcjsKLWNsYXNzIFNjYWxlZEltYWdlRnJhZ21lbnQ7Ci1jbGFzcyBTaGFyZWRCdWZmZXI7Ci0K
LS8vIFRoaXMgY2xhc3MgY2FuIG9ubHkgYmUgaW5zdGFudGlhdGVkIG9uIG1haW4gdGhyZWFkLiBU
aGVyZSB3aWxsIGJlIGFuCi0vLyBpbnN0YW5jZSBvbiBpbXBsIHRocmVhZCBpbiB0aGUgZnV0dXJl
IGJ1dCB0aGF0IHBhcnQgb2YgaW1wbGVtZW50YXRpb24KLS8vIGlzIGluY29tcGxldGUuIFNlZSBi
dWc6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDI0MAotLy8gZm9y
IGRldGFpbHMuCi1jbGFzcyBJbWFnZURlY29kaW5nU3RvcmUgewotcHVibGljOgotICAgIHN0YXRp
YyBQYXNzT3duUHRyPEltYWdlRGVjb2RpbmdTdG9yZT4gY3JlYXRlKCkgeyByZXR1cm4gYWRvcHRQ
dHIobmV3IEltYWdlRGVjb2RpbmdTdG9yZSk7IH0KLSAgICB+SW1hZ2VEZWNvZGluZ1N0b3JlKCk7
Ci0KLSAgICBzdGF0aWMgSW1hZ2VEZWNvZGluZ1N0b3JlKiBpbnN0YW5jZU9uTWFpblRocmVhZCgp
OwotICAgIHN0YXRpYyB2b2lkIGluaXRpYWxpemVPbk1haW5UaHJlYWQoKTsKLSAgICBzdGF0aWMg
dm9pZCBzaHV0ZG93bigpOwotICAgIHN0YXRpYyBib29sIGlzTGF6eURlY29kZWQoY29uc3QgU2tC
aXRtYXAmKTsKLQotICAgIFNrQml0bWFwIGNyZWF0ZUxhenlEZWNvZGVkU2tCaXRtYXAoUGFzc093
blB0cjxJbWFnZURlY29kZXI+KTsKLSAgICBTa0JpdG1hcCByZXNpemVMYXp5RGVjb2RlZFNrQml0
bWFwKGNvbnN0IFNrQml0bWFwJiwgY29uc3QgU2tJU2l6ZSYgc2NhbGVkU2l6ZSwgY29uc3QgU2tJ
UmVjdCYgc2NhbGVkU3Vic2V0KTsKLQotICAgIHZvaWQgc2V0RGF0YShjb25zdCBTa0JpdG1hcCYs
IFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiwgYm9vbCBhbGxEYXRhUmVjZWl2ZWQpOwotCi0gICAg
Ly8gWW91IG1heSBvbmx5IGxvY2sgb25lIHNldCBvZiBwaXhlbHMgYXQgYSB0aW1lOyBvdmVybGFw
cGluZyBsb2NrIGNhbGxzIGFyZSBub3QgYWxsb3dlZC4KLSAgICB2b2lkKiBsb2NrUGl4ZWxzKFBh
c3NSZWZQdHI8SW1hZ2VGcmFtZUdlbmVyYXRvcj4sIGNvbnN0IFNrSVNpemUmIHNjYWxlZFNpemUs
IGNvbnN0IFNrSVJlY3QmIHNjYWxlZFN1YnNldCk7Ci0gICAgdm9pZCB1bmxvY2tQaXhlbHMoKTsK
LQotICAgIHZvaWQgZnJhbWVHZW5lcmF0b3JCZWluZ0Rlc3Ryb3llZChJbWFnZUZyYW1lR2VuZXJh
dG9yKik7Ci0KLXByaXZhdGU6Ci0gICAgSW1hZ2VEZWNvZGluZ1N0b3JlKCk7Ci0gICAgYm9vbCBj
YWxsZWRPblZhbGlkVGhyZWFkKCkgY29uc3Q7Ci0gICAgdm9pZCBjcmVhdGVGcmFtZUdlbmVyYXRv
cihQYXNzT3duUHRyPEltYWdlRGVjb2Rlcj4pOwotICAgIFNjYWxlZEltYWdlRnJhZ21lbnQqIGxv
b2t1cEZyYW1lQ2FjaGUoaW50IGltYWdlSWQsIGNvbnN0IFNrSVNpemUmIHNjYWxlZFNpemUpIGNv
bnN0OwotICAgIHZvaWQgZGVsZXRlRnJhbWVDYWNoZShpbnQgaW1hZ2VJZCk7Ci0KLSAgICBWZWN0
b3I8T3duUHRyPFNjYWxlZEltYWdlRnJhZ21lbnQ+ID4gbV9mcmFtZUNhY2hlOwotCi0gICAgU2tC
aXRtYXAgbV9sb2NrZWRTa0JpdG1hcDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQot
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9JbWFnZUZyYW1lR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ltYWdlRnJhbWVHZW5lcmF0b3IuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCA0YzJmMjk5MTUyNTA0YTVmNjU2YTliN2YxZmZmZGUxZDMzMzNiNTAyLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ltYWdlRnJhbWVHZW5lcmF0b3IuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsNjggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBB
TlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
ICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVU
T1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNT
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAot
ICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcu
aCIKLQotI2luY2x1ZGUgIkltYWdlRnJhbWVHZW5lcmF0b3IuaCIKLQotI2luY2x1ZGUgIkltYWdl
RGVjb2Rlci5oIgotI2luY2x1ZGUgIkltYWdlRGVjb2RpbmdTdG9yZS5oIgotI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgotCi1uYW1lc3BhY2UgewotCi0vLyBBbiB1bmlxdWUgSUQgZm9yIGFuIGlt
YWdlIGZpbGUuCi1pbnQgc19uZXh0SW1hZ2VJZCA9IDA7Ci0KLX0gLy8gbmFtZXNwYWNlCi0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotSW1hZ2VGcmFtZUdlbmVyYXRvcjo6SW1hZ2VGcmFtZUdlbmVy
YXRvcihQYXNzT3duUHRyPEltYWdlRGVjb2Rlcj4gZGVjb2RlcikKLSAgICA6IG1fZGVjb2Rlcihk
ZWNvZGVyKQotewotICAgIG1fZnVsbFNpemUgPSBTa0lTaXplOjpNYWtlKG1fZGVjb2Rlci0+c2l6
ZSgpLndpZHRoKCksIG1fZGVjb2Rlci0+c2l6ZSgpLmhlaWdodCgpKTsKLSAgICBtX2ltYWdlSWQg
PSBzX25leHRJbWFnZUlkKys7Ci19Ci0KLUltYWdlRnJhbWVHZW5lcmF0b3I6On5JbWFnZUZyYW1l
R2VuZXJhdG9yKCkKLXsKLSAgICBpZiAoSW1hZ2VEZWNvZGluZ1N0b3JlOjppbnN0YW5jZU9uTWFp
blRocmVhZCgpKQotICAgICAgICBJbWFnZURlY29kaW5nU3RvcmU6Omluc3RhbmNlT25NYWluVGhy
ZWFkKCktPmZyYW1lR2VuZXJhdG9yQmVpbmdEZXN0cm95ZWQodGhpcyk7Ci19Ci0KLUltYWdlRGVj
b2RlciogSW1hZ2VGcmFtZUdlbmVyYXRvcjo6ZGVjb2RlcigpCi17Ci0gICAgcmV0dXJuIG1fZGVj
b2Rlci5nZXQoKTsKLX0KLQotdm9pZCBJbWFnZUZyYW1lR2VuZXJhdG9yOjpzZXREYXRhKFBhc3NS
ZWZQdHI8U2hhcmVkQnVmZmVyPiBkYXRhLCBib29sIGFsbERhdGFSZWNlaXZlZCkKLXsKLSAgICBt
X2RhdGEgPSBkYXRhOwotICAgIGlmIChtX2RlY29kZXIpCi0gICAgICAgIG1fZGVjb2Rlci0+c2V0
RGF0YShtX2RhdGEuZ2V0KCksIGFsbERhdGFSZWNlaXZlZCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ltYWdlRnJhbWVHZW5lcmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL0ltYWdlRnJhbWVHZW5lcmF0b3IuaApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggYjljZDcyYjc5MWI5YjhhNGU5N2NkNjBlOTExNzBmOWFkZDM3ZGVlMS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9JbWFnZUZyYW1lR2VuZXJhdG9yLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSw2NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQot
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
LSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lmbmRlZiBJbWFnZUZyYW1lR2Vu
ZXJhdG9yX2gKLSNkZWZpbmUgSW1hZ2VGcmFtZUdlbmVyYXRvcl9oCi0KLSNpbmNsdWRlICJTa1Np
emUuaCIKLSNpbmNsdWRlIDx3dGYvT3duUHRyLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIu
aD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4K
LQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBJbWFnZURlY29kZXI7Ci1jbGFzcyBTaGFy
ZWRCdWZmZXI7Ci0KLWNsYXNzIEltYWdlRnJhbWVHZW5lcmF0b3IgOiBwdWJsaWMgUmVmQ291bnRl
ZDxJbWFnZUZyYW1lR2VuZXJhdG9yPiB7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8
SW1hZ2VGcmFtZUdlbmVyYXRvcj4gY3JlYXRlKFBhc3NPd25QdHI8SW1hZ2VEZWNvZGVyPiBkZWNv
ZGVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBJbWFnZUZyYW1lR2VuZXJh
dG9yKGRlY29kZXIpKTsKLSAgICB9Ci0KLSAgICBleHBsaWNpdCBJbWFnZUZyYW1lR2VuZXJhdG9y
KFBhc3NPd25QdHI8SW1hZ2VEZWNvZGVyPik7Ci0gICAgfkltYWdlRnJhbWVHZW5lcmF0b3IoKTsK
LQotICAgIC8vIENyZWF0ZXMgdGhlIGltYWdlIGRlY29kZXIgaWYgbmVlZGVkLgotICAgIEltYWdl
RGVjb2RlciogZGVjb2RlcigpOwotICAgIHZvaWQgc2V0RGF0YShQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4sIGJvb2wgYWxsRGF0YVJlY2VpdmVkKTsKLQotICAgIGNvbnN0IFNrSVNpemUmIGZ1bGxT
aXplKCkgY29uc3QgeyByZXR1cm4gbV9mdWxsU2l6ZTsgfQotICAgIGludCBpbWFnZUlkKCkgY29u
c3QgeyByZXR1cm4gbV9pbWFnZUlkOyB9Ci0KLXByaXZhdGU6Ci0gICAgT3duUHRyPEltYWdlRGVj
b2Rlcj4gbV9kZWNvZGVyOwotICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fZGF0YTsKLSAgICBT
a0lTaXplIG1fZnVsbFNpemU7Ci0gICAgaW50IG1faW1hZ2VJZDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9MYXp5RGVjb2RpbmdQaXhlbFJlZi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXp5RGVjb2RpbmdQaXhlbFJlZi5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDU2ZGQwOTFlMGQ5ZjhjMTQwYjdkYmQ3MzFk
NzM2MjE4YWQwZmI5MzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF6eURlY29k
aW5nUGl4ZWxSZWYuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5E
IElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0g
KiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBP
UiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJMYXp5RGVjb2RpbmdQaXhlbFJlZi5oIgotCi0j
aW5jbHVkZSAiSW1hZ2VEZWNvZGVyLmgiCi0jaW5jbHVkZSAiSW1hZ2VEZWNvZGluZ1N0b3JlLmgi
Ci0jaW5jbHVkZSAiSW1hZ2VGcmFtZUdlbmVyYXRvci5oIgotI2luY2x1ZGUgPHd0Zi9NYWluVGhy
ZWFkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotTGF6eURlY29kaW5nUGl4ZWxSZWY6Okxh
enlEZWNvZGluZ1BpeGVsUmVmKFBhc3NSZWZQdHI8SW1hZ2VGcmFtZUdlbmVyYXRvcj4gZnJhbWVH
ZW5lcmF0b3IsIGNvbnN0IFNrSVNpemUmIHNjYWxlZFNpemUsIGNvbnN0IFNrSVJlY3QmIHNjYWxl
ZFN1YnNldCkKLSAgICA6IFNrUGl4ZWxSZWYoMCkKLSAgICAsIG1fZnJhbWVHZW5lcmF0b3IoZnJh
bWVHZW5lcmF0b3IpCi0gICAgLCBtX3NjYWxlZFNpemUoc2NhbGVkU2l6ZSkKLSAgICAsIG1fc2Nh
bGVkU3Vic2V0KHNjYWxlZFN1YnNldCkKLXsKLX0KLQotTGF6eURlY29kaW5nUGl4ZWxSZWY6On5M
YXp5RGVjb2RpbmdQaXhlbFJlZigpCi17Ci19Ci0KLWJvb2wgTGF6eURlY29kaW5nUGl4ZWxSZWY6
OmlzU2NhbGVkKGNvbnN0IFNrSVNpemUmIGZ1bGxTaXplKSBjb25zdAotewotICAgIHJldHVybiBm
dWxsU2l6ZSAhPSBtX3NjYWxlZFNpemU7Ci19Ci0KLWJvb2wgTGF6eURlY29kaW5nUGl4ZWxSZWY6
OmlzQ2xpcHBlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2NhbGVkU2l6ZS53aWR0aCgpICE9
IG1fc2NhbGVkU3Vic2V0LndpZHRoKCkgfHwgbV9zY2FsZWRTaXplLmhlaWdodCgpICE9IG1fc2Nh
bGVkU3Vic2V0LmhlaWdodCgpOwotfQotCi12b2lkKiBMYXp5RGVjb2RpbmdQaXhlbFJlZjo6b25M
b2NrUGl4ZWxzKFNrQ29sb3JUYWJsZSoqKQotewotICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
Ci0gICAgcmV0dXJuIEltYWdlRGVjb2RpbmdTdG9yZTo6aW5zdGFuY2VPbk1haW5UaHJlYWQoKS0+
bG9ja1BpeGVscyhtX2ZyYW1lR2VuZXJhdG9yLCBtX3NjYWxlZFNpemUsIG1fc2NhbGVkU3Vic2V0
KTsKLX0KLQotdm9pZCBMYXp5RGVjb2RpbmdQaXhlbFJlZjo6b25VbmxvY2tQaXhlbHMoKQotewot
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgSW1hZ2VEZWNvZGluZ1N0b3JlOjppbnN0
YW5jZU9uTWFpblRocmVhZCgpLT51bmxvY2tQaXhlbHMoKTsKLX0KLQotYm9vbCBMYXp5RGVjb2Rp
bmdQaXhlbFJlZjo6b25Mb2NrUGl4ZWxzQXJlV3JpdGFibGUoKSBjb25zdAotewotICAgIHJldHVy
biBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXp5RGVjb2RpbmdQaXhlbFJlZi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF6eURlY29kaW5n
UGl4ZWxSZWYuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGFiOWNjYzRjYjExMWYy
NzY0ZjcyMzcwNjc1MWE1ZWNmMTNjNzYzMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9MYXp5RGVjb2RpbmdQaXhlbFJlZi5oCisrKyAvZGV2L251bGwKQEAgLTEsNjUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
Ci0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgTGF6eURlY29kaW5nUGl4ZWxSZWZfaAotI2RlZmluZSBMYXp5RGVjb2Rp
bmdQaXhlbFJlZl9oCi0KLSNpbmNsdWRlICJTa0ZsYXR0ZW5hYmxlQnVmZmVycy5oIgotI2luY2x1
ZGUgIlNrUGl4ZWxSZWYuaCIKLSNpbmNsdWRlICJTa1JlY3QuaCIKLSNpbmNsdWRlICJTa1NpemUu
aCIKLQotI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1j
bGFzcyBJbWFnZUZyYW1lR2VuZXJhdG9yOwotCi1jbGFzcyBMYXp5RGVjb2RpbmdQaXhlbFJlZiA6
IHB1YmxpYyBTa1BpeGVsUmVmIHsKLXB1YmxpYzoKLSAgICBMYXp5RGVjb2RpbmdQaXhlbFJlZihQ
YXNzUmVmUHRyPEltYWdlRnJhbWVHZW5lcmF0b3I+LCBjb25zdCBTa0lTaXplJiBzY2FsZWRTaXpl
LCBjb25zdCBTa0lSZWN0JiBzY2FsZWRTdWJzZXQpOwotICAgIHZpcnR1YWwgfkxhenlEZWNvZGlu
Z1BpeGVsUmVmKCk7Ci0KLSAgICBTS19ERUNMQVJFX1VORkxBVFRFTkFCTEVfT0JKRUNUKCkKLQot
ICAgIFBhc3NSZWZQdHI8SW1hZ2VGcmFtZUdlbmVyYXRvcj4gZnJhbWVHZW5lcmF0b3IoKSBjb25z
dCB7IHJldHVybiBtX2ZyYW1lR2VuZXJhdG9yOyB9Ci0gICAgYm9vbCBpc1NjYWxlZChjb25zdCBT
a0lTaXplJiBmdWxsU2l6ZSkgY29uc3Q7Ci0gICAgYm9vbCBpc0NsaXBwZWQoKSBjb25zdDsKLQot
cHJvdGVjdGVkOgotICAgIC8vIFNrUGl4ZWxSZWYgaW1wbGVtZW50YXRpb24uCi0gICAgdmlydHVh
bCB2b2lkKiBvbkxvY2tQaXhlbHMoU2tDb2xvclRhYmxlKiopOwotICAgIHZpcnR1YWwgdm9pZCBv
blVubG9ja1BpeGVscygpOwotICAgIHZpcnR1YWwgYm9vbCBvbkxvY2tQaXhlbHNBcmVXcml0YWJs
ZSgpIGNvbnN0OwotCi1wcml2YXRlOgotICAgIFJlZlB0cjxJbWFnZUZyYW1lR2VuZXJhdG9yPiBt
X2ZyYW1lR2VuZXJhdG9yOwotICAgIFNrSVNpemUgbV9zY2FsZWRTaXplOwotICAgIFNrSVJlY3Qg
bV9zY2FsZWRTdWJzZXQ7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZiAv
LyBMYXp5RGVjb2RpbmdQaXhlbFJlZl9oXwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vU2NhbGVkSW1hZ2VGcmFnbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY2FsZWRJbWFnZUZyYWdtZW50LmNw
cApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggOTc0ZTZmZjg0N2VjNWI1ZGQ0Njk1OGYy
MGJkNDgxMjkzOWJkMzU3My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY2FsZWRJ
bWFnZUZyYWdtZW50LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU0ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTIgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0g
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRlICJTY2FsZWRJbWFnZUZyYWdtZW50Lmgi
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotU2NhbGVkSW1hZ2VGcmFnbWVudDo6flNjYWxlZElt
YWdlRnJhZ21lbnQoKQotewotfQotCi1TY2FsZWRJbWFnZUZyYWdtZW50OjpTY2FsZWRJbWFnZUZy
YWdtZW50KGludCBpbWFnZUlkLCBjb25zdCBTa0lTaXplJiBzY2FsZWRTaXplLCBjb25zdCBTa0Jp
dG1hcCYgYml0bWFwLCBjb25zdCBib29sIGlzQ29tcGxldGUpCi0gICAgOiBtX2ltYWdlSWQoaW1h
Z2VJZCkKLSAgICAsIG1fc2NhbGVkU2l6ZShzY2FsZWRTaXplKQotICAgICwgbV9iaXRtYXAoYml0
bWFwKQotICAgICwgbV9pc0NvbXBsZXRlKGlzQ29tcGxldGUpCi17Ci19Ci0KLWJvb2wgU2NhbGVk
SW1hZ2VGcmFnbWVudDo6aXNFcXVhbChpbnQgaW1hZ2VJZCwgY29uc3QgU2tJU2l6ZSYgc2NhbGVk
U2l6ZSkgY29uc3QKLXsKLSAgICByZXR1cm4gaW1hZ2VJZCA9PSBtX2ltYWdlSWQgJiYgc2NhbGVk
U2l6ZSA9PSBtX3NjYWxlZFNpemU7Ci19Ci0KLWJvb2wgU2NhbGVkSW1hZ2VGcmFnbWVudDo6aXNF
cXVhbChpbnQgaW1hZ2VJZCkgY29uc3QKLXsKLSAgICByZXR1cm4gaW1hZ2VJZCA9PSBtX2ltYWdl
SWQ7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NjYWxlZEltYWdlRnJhZ21lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL1NjYWxlZEltYWdlRnJhZ21l
bnQuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNWI3ZmZjOTYwMTRlMDU3M2U4MzUw
NzgwMmI2NmYzNGQ5YmNkM2Y2ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9TY2Fs
ZWRJbWFnZUZyYWdtZW50LmgKKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0vKgotICog
Q29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2lmbmRlZiBTY2FsZWRJbWFnZUZyYWdtZW50X2gKLSNkZWZpbmUgU2NhbGVkSW1hZ2VGcmFn
bWVudF9oCi0KLSNpbmNsdWRlICJTa0JpdG1hcC5oIgotI2luY2x1ZGUgIlNrUmVjdC5oIgotI2lu
Y2x1ZGUgIlNrU2l6ZS5oIgotCi0jaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi0vLyBTY2FsZWRJbWFnZUZyYWdtZW50IGlzIGEgc2NhbGVkIHZlcnNp
b24gb2YgYSBpbWFnZS4gSXQgaXMgaWRlbnRpZmllZAotLy8gYnkgdHdvIHRoaW5nczoKLS8vIDEu
IEltYWdlIElELiBUaGUgb3JpZ2luYWwgaW1hZ2UgdGhhdCB0aGlzIGZyYWdtZW50IGNvbWVzIGZy
b20uCi0vLyAyLiBTY2FsZWQgaW1hZ2Ugc2l6ZS4KLWNsYXNzIFNjYWxlZEltYWdlRnJhZ21lbnQg
ewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFNjYWxlZEltYWdlRnJhZ21lbnQ+IGNy
ZWF0ZShpbnQgaW1hZ2VJZCwgY29uc3QgU2tJU2l6ZSYgc2NhbGVkU2l6ZSwgY29uc3QgU2tCaXRt
YXAmIGJpdG1hcCwgYm9vbCBpc0NvbXBsZXRlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UHRyKG5ldyBTY2FsZWRJbWFnZUZyYWdtZW50KGltYWdlSWQsIHNjYWxlZFNpemUsIGJpdG1hcCwg
aXNDb21wbGV0ZSkpOwotICAgIH0KLQotICAgIFNjYWxlZEltYWdlRnJhZ21lbnQoaW50IGltYWdl
SWQsIGNvbnN0IFNrSVNpemUmLCBjb25zdCBTa0JpdG1hcCYsIGJvb2wgaXNDb21wbGV0ZSk7Ci0g
ICAgflNjYWxlZEltYWdlRnJhZ21lbnQoKTsKLQotICAgIGNvbnN0IFNrQml0bWFwJiBiaXRtYXAo
KSBjb25zdCB7IHJldHVybiBtX2JpdG1hcDsgfQotICAgIFNrQml0bWFwJiBiaXRtYXAoKSB7IHJl
dHVybiBtX2JpdG1hcDsgfQotCi0gICAgYm9vbCBpc0VxdWFsKGludCBpbWFnZUlkLCBjb25zdCBT
a0lTaXplJiBzY2FsZWRTaXplKSBjb25zdDsKLSAgICBib29sIGlzRXF1YWwoaW50IGltYWdlSWQp
IGNvbnN0OwotICAgIGJvb2wgaXNDb21wbGV0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb21wbGV0
ZTsgfQotCi1wcml2YXRlOgotICAgIGludCBtX2ltYWdlSWQ7Ci0gICAgU2tJU2l6ZSBtX3NjYWxl
ZFNpemU7Ci0gICAgU2tCaXRtYXAgbV9iaXRtYXA7Ci0gICAgYm9vbCBtX2lzQ29tcGxldGU7Ci19
OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJbWFnZVNraWEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9OYXRpdmVJbWFnZVNraWEuY3BwCmlu
ZGV4IGQwODRlYzhmNDFjZmFmNDY0YzhiNjQ4NjRmZmQ0MDU2YTc0M2EyNTkuLjE4NjJhMmFmYzZl
MzUwNDkzNmRjYmM5MDNjZTZmMjRkNGFhZjUwYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvTmF0aXZlSW1hZ2VTa2lhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL05hdGl2ZUltYWdlU2tpYS5jcHAKQEAgLTQw
LDExICs0MCw2IEBACiAjaW5jbHVkZSAiU2tQaXhlbFJlZi5oIgogI2luY2x1ZGUgIlNraWFVdGls
cy5oIgogCi0jaWYgUExBVEZPUk0oQ0hST01JVU0pCi0jaW5jbHVkZSAiSW1hZ2VEZWNvZGluZ1N0
b3JlLmgiCi0jaW5jbHVkZSAiVHJhY2VFdmVudC5oIgotI2VuZGlmCi0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogTmF0aXZlSW1hZ2VTa2lhOjpOYXRpdmVJbWFnZVNraWEoKQpAQCAtNzgsMTEgKzcz
LDYgQEAgYm9vbCBOYXRpdmVJbWFnZVNraWE6Omhhc1Jlc2l6ZWRCaXRtYXAoY29uc3QgU2tJU2l6
ZSYgc2NhbGVkSW1hZ2VTaXplLCBjb25zdCBTa0kKIAogU2tCaXRtYXAgTmF0aXZlSW1hZ2VTa2lh
OjpyZXNpemVkQml0bWFwKGNvbnN0IFNrSVNpemUmIHNjYWxlZEltYWdlU2l6ZSwgY29uc3QgU2tJ
UmVjdCYgc2NhbGVkSW1hZ2VTdWJzZXQpIGNvbnN0CiB7Ci0jaWYgUExBVEZPUk0oQ0hST01JVU0p
Ci0gICAgaWYgKEltYWdlRGVjb2RpbmdTdG9yZTo6aXNMYXp5RGVjb2RlZChtX2ltYWdlKSkKLSAg
ICAgICAgcmV0dXJuIEltYWdlRGVjb2RpbmdTdG9yZTo6aW5zdGFuY2VPbk1haW5UaHJlYWQoKS0+
cmVzaXplTGF6eURlY29kZWRTa0JpdG1hcChtX2ltYWdlLCBzY2FsZWRJbWFnZVNpemUsIHNjYWxl
ZEltYWdlU3Vic2V0KTsKLSNlbmRpZgotCiAgICAgaWYgKCFoYXNSZXNpemVkQml0bWFwKHNjYWxl
ZEltYWdlU2l6ZSwgc2NhbGVkSW1hZ2VTdWJzZXQpKSB7CiAgICAgICAgIGJvb2wgc2hvdWxkQ2Fj
aGUgPSBpc0RhdGFDb21wbGV0ZSgpCiAgICAgICAgICAgICAmJiBzaG91bGRDYWNoZVJlc2FtcGxp
bmcoc2NhbGVkSW1hZ2VTaXplLCBzY2FsZWRJbWFnZVN1YnNldCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCmluZGV4IDlm
Njk3YTg0YWIwOWFmYmFjM2I2MmFlM2ZjZTU2NmM0ZmI2ZDc0MmQuLmZjODJhNWMyNWFkNzhlODc3
ZGM5OTE4OGU5ZmRiMWU4NWIxYWQyN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oCkBAIC0xNDgsMTggKzE0OCw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICB2b2lkIHJlcG9ydE1lbW9yeVVzYWdlKE1l
bW9yeU9iamVjdEluZm8qKSBjb25zdDsKIAotI2lmIFBMQVRGT1JNKENIUk9NSVVNKQotICAgICAg
ICB2b2lkIHNldFNrQml0bWFwKGNvbnN0IFNrQml0bWFwJiBiaXRtYXApCi0gICAgICAgIHsKLSAg
ICAgICAgICAgIG1fYml0bWFwID0gTmF0aXZlSW1hZ2VTa2lhKGJpdG1hcCwgMSk7Ci0gICAgICAg
IH0KLQotICAgICAgICBjb25zdCBTa0JpdG1hcCYgZ2V0U2tCaXRtYXAoKSBjb25zdAotICAgICAg
ICB7Ci0gICAgICAgICAgICByZXR1cm4gbV9iaXRtYXAuYml0bWFwKCk7Ci0gICAgICAgIH0KLSNl
bmRpZgotCiAgICAgcHJpdmF0ZToKICAgICAgICAgaW50IHdpZHRoKCkgY29uc3Q7CiAgICAgICAg
IGludCBoZWlnaHQoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
V2ViS2l0Lmd5cGkgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCmluZGV4IDY0
MDYzYTAyMWM0NjcxNGQ5ZDU5ODU2YWNlYzQyMmVmODdiZGU5OWUuLjI0Y2FlMjk4ZmY1MDQ5MWZl
YzEzZmFiNDNiZDkwODY5NjY3ODZjMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cGkKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQpA
QCAtNjEsNyArNjEsNiBAQAogICAgICAgICAgICAgJ3Rlc3RzL0NvbXBvc2l0b3JGYWtlV2ViR3Jh
cGhpY3NDb250ZXh0M0QuaCcsCiAgICAgICAgICAgICAndGVzdHMvRGF0ZVRpbWVGb3JtYXRUZXN0
LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvRGVjaW1hbFRlc3QuY3BwJywKLSAgICAgICAgICAg
ICd0ZXN0cy9EZWZlcnJlZEltYWdlRGVjb2RlclRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0
cy9EcmFnSW1hZ2VUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvRXZlbnRMaXN0ZW5lclRl
c3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9GYWtlV2ViQ29tcG9zaXRvck91dHB1dFN1cmZh
Y2UuaCcsCkBAIC03OSw5ICs3OCw4IEBACiAgICAgICAgICAgICAndGVzdHMvSURCTGV2ZWxEQkNv
ZGluZ1Rlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9JREJSZXF1ZXN0VGVzdC5jcHAnLAog
ICAgICAgICAgICAgJ3Rlc3RzL0ltYWdlTGF5ZXJDaHJvbWl1bVRlc3QuY3BwJywKLSAgICAgICAg
ICAgICd0ZXN0cy9Nb2NrSW1hZ2VEZWNvZGVyLmgnLAotICAgICAgICAgICAgJ3Rlc3RzL0tleWJv
YXJkVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL0tVUkxUZXN0LmNwcCcsCisgICAgICAg
ICAgICAndGVzdHMvS2V5Ym9hcmRUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvTGV2ZWxE
QlRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9MaW5rSGlnaGxpZ2h0VGVzdC5jcHAnLAog
ICAgICAgICAgICAgJ3Rlc3RzL0xpc3RlbmVyTGVha1Rlc3QuY3BwJywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IDA4Y2QxOTc0NWNjNzBhYWUzNzlj
ODk1MWU2NGExNDgyN2Y2YTQ1NDUuLmFiZDg0ZWQwZTU3YWZlOTgzMWZmZmQwNjM5MWU0MjkxZTVk
YzJiZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRp
bmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApA
QCAtODYsNyArODYsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldERlZmF1bHRUZXh0
RW5jb2RpbmdOYW1lKGNvbnN0IFdlYlN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
RGVmYXVsdFRpbGVTaXplKFdlYlNpemUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmZXJy
ZWQyZENhbnZhc0VuYWJsZWQoYm9vbCkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnJl
ZEltYWdlRGVjb2RpbmdFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldERldmlj
ZVN1cHBvcnRzTW91c2UoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXREZXZpY2VTdXBw
b3J0c1RvdWNoKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYktpdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJLaXQuY3BwCmlu
ZGV4IDI0M2QwOGU2Mjk0ODA1Njk3OTM2MmRmY2Y4NThjNmZmODVlOGE3NjguLmUzNTdmMjhlNDI4
M2E3MDAxNTZkNmNmYWJkNTBlZGIzZWQyZjc4OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYktpdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViS2l0LmNwcApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIldlYktpdC5oIgogCi0jaW5jbHVkZSAiSW1hZ2VEZWNvZGluZ1N0b3JlLmgiCiAjaW5jbHVk
ZSAiTGF5b3V0VGVzdFN1cHBvcnQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAi
TXV0YXRpb25PYnNlcnZlci5oIgpAQCAtMTY2LDcgKzE2NSw2IEBAIHZvaWQgc2h1dGRvd24oKQog
ICAgIH0KICNlbmRpZgogICAgIHNfd2ViS2l0UGxhdGZvcm1TdXBwb3J0ID0gMDsKLSAgICBXZWJD
b3JlOjpJbWFnZURlY29kaW5nU3RvcmU6OnNodXRkb3duKCk7CiAgICAgUGxhdGZvcm06OnNodXRk
b3duKCk7CiAgICAgV2ViUHJlcmVuZGVyaW5nU3VwcG9ydDo6c2h1dGRvd24oKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IGRjNzcz
NmQ5YTIxYjA5MDc0Y2ZiMWQ5MTU5Y2I4ZjdiMTljOTA5ODAuLjk4OGM1ZTY2YjFlMTNjMTZlOWY2
N2QwMmE0N2NhMDc4ZGYzODYwOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtMzIsNyArMzIsNiBAQAogI2luY2x1ZGUgIldlYlNldHRp
bmdzSW1wbC5oIgogCiAjaW5jbHVkZSAiRm9udFJlbmRlcmluZ01vZGUuaCIKLSNpbmNsdWRlICJJ
bWFnZURlY29kaW5nU3RvcmUuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgPHB1
YmxpYy9XZWJTdHJpbmcuaD4KICNpbmNsdWRlIDxwdWJsaWMvV2ViVVJMLmg+CkBAIC01Niw3ICs1
NSw2IEBAIFdlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGluZ3NJbXBsKFNldHRpbmdzKiBzZXR0aW5n
cykKICAgICAsIG1fYXBwbHlEZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoZmFs
c2UpCiAgICAgLCBtX2dlc3R1cmVUYXBIaWdobGlnaHRFbmFibGVkKHRydWUpCiAgICAgLCBtX2F1
dG9ab29tRm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZShmYWxzZSkKLSAgICAsIG1fZGVmZXJyZWRJ
bWFnZURlY29kaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fZGVmYXVsdFRpbGVTaXplKFdlYlNp
emUoMjU2LCAyNTYpKQogICAgICwgbV9tYXhVbnRpbGVkTGF5ZXJTaXplKFdlYlNpemUoNTEyLCA1
MTIpKQogewpAQCAtNDgyLDE1ICs0ODAsNiBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0RGVm
ZXJyZWQyZENhbnZhc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1fc2V0dGluZ3MtPnNldERl
ZmVycmVkMmRDYW52YXNFbmFibGVkKGVuYWJsZWQpOwogfQogCi12b2lkIFdlYlNldHRpbmdzSW1w
bDo6c2V0RGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAg
aWYgKCFtX2RlZmVycmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQgJiYgZW5hYmxlZCkKLSAgICAgICAg
SW1hZ2VEZWNvZGluZ1N0b3JlOjppbml0aWFsaXplT25NYWluVGhyZWFkKCk7Ci0gICAgaWYgKG1f
ZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZCAmJiAhZW5hYmxlZCkKLSAgICAgICAgSW1hZ2VE
ZWNvZGluZ1N0b3JlOjpzaHV0ZG93bigpOwotICAgIG1fZGVmZXJyZWRJbWFnZURlY29kaW5nRW5h
YmxlZCA9IGVuYWJsZWQ7Ci19Ci0KIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRBY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAg
IG1fc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uRW5h
YmxlZChlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmgKaW5kZXggOTA1MWJhYjYxN2Y4NmJmZTA0OWIwYjc3ZTZlMmFkZjAyZDcyZDY1OC4uMTE2
OWMzMWNmM2ViMmFlODBmZGExZjg4NWNkMDg2OTE2OGY0NmE0MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTc4LDcgKzc4LDYgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0VGV4dEVuY29kaW5nTmFtZShjb25zdCBXZWJT
dHJpbmcmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGVmYXVsdFRpbGVTaXplKFdlYlNpemUpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXREZWZlcnJlZDJkQ2FudmFzRW5hYmxlZChib29sKTsKLSAgICB2
aXJ0dWFsIHZvaWQgc2V0RGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZChib29sKTsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0RGV2aWNlU3VwcG9ydHNNb3VzZShib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
RGV2aWNlU3VwcG9ydHNUb3VjaChib29sKTsKQEAgLTE3OSw3ICsxNzgsNiBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9hcHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcjsKICAg
ICBib29sIG1fZ2VzdHVyZVRhcEhpZ2hsaWdodEVuYWJsZWQ7CiAgICAgYm9vbCBtX2F1dG9ab29t
Rm9jdXNlZE5vZGVUb0xlZ2libGVTY2FsZTsKLSAgICBib29sIG1fZGVmZXJyZWRJbWFnZURlY29k
aW5nRW5hYmxlZDsKICAgICBXZWJTaXplIG1fZGVmYXVsdFRpbGVTaXplOwogICAgIFdlYlNpemUg
bV9tYXhVbnRpbGVkTGF5ZXJTaXplOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvRGVmZXJyZWRJbWFnZURlY29kZXJUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vdGVzdHMvRGVmZXJyZWRJbWFnZURlY29kZXJUZXN0LmNwcApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDgyNTQ5ODA1Yzc2YTgxYmUzMWEzZGY0OGM0NzQxZTMyZTRlZGI5
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL0RlZmVycmVkSW1hZ2VEZWNvZGVyVGVzdC5jcHAKKysrIC9k
ZXYvbnVsbApAQCAtMSwxMDIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLQot
I2luY2x1ZGUgIkRlZmVycmVkSW1hZ2VEZWNvZGVyLmgiCi0KLSNpbmNsdWRlICJJbWFnZURlY29k
aW5nU3RvcmUuaCIKLSNpbmNsdWRlICJNb2NrSW1hZ2VEZWNvZGVyLmgiCi0jaW5jbHVkZSAiTmF0
aXZlSW1hZ2VTa2lhLmgiCi0jaW5jbHVkZSAiU2tDYW52YXMuaCIKLSNpbmNsdWRlICJTa0Rldmlj
ZS5oIgotI2luY2x1ZGUgIlNrUGljdHVyZS5oIgotI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Ci0K
LXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgewotCi1jbGFzcyBEZWZlcnJl
ZEltYWdlRGVjb2RlclRlc3QgOiBwdWJsaWMgOjp0ZXN0aW5nOjpUZXN0IHsKLXB1YmxpYzoKLSAg
ICB2aXJ0dWFsIHZvaWQgU2V0VXAoKQotICAgIHsKLSAgICAgICAgSW1hZ2VEZWNvZGluZ1N0b3Jl
Ojppbml0aWFsaXplT25NYWluVGhyZWFkKCk7Ci0gICAgICAgIG1fYWN0dWFsRGVjb2RlciA9IG5l
dyBNb2NrSW1hZ2VEZWNvZGVyKCk7Ci0gICAgICAgIG1fYWN0dWFsRGVjb2Rlci0+c2V0U2l6ZSg2
MDAsIDYxMyk7Ci0gICAgICAgIG1fbGF6eURlY29kZXIgPSBEZWZlcnJlZEltYWdlRGVjb2Rlcjo6
Y3JlYXRlRm9yVGVzdGluZyhhZG9wdFB0cihtX2FjdHVhbERlY29kZXIpKTsKLSAgICAgICAgbV9j
YW52YXMuc2V0RGV2aWNlKG5ldyBTa0RldmljZShTa0JpdG1hcDo6a0FSR0JfODg4OF9Db25maWcs
IDEwMCwgMTAwKSktPnVucmVmKCk7Ci0gICAgfQotCi0gICAgdmlydHVhbCB2b2lkIFRlYXJEb3du
KCkKLSAgICB7Ci0gICAgICAgIEltYWdlRGVjb2RpbmdTdG9yZTo6c2h1dGRvd24oKTsKLSAgICB9
Ci0KLXByb3RlY3RlZDoKLSAgICAvLyBEb24ndCBvd24gdGhpcyBidXQgc2F2ZXMgdGhlIHBvaW50
ZXIgdG8gcXVlcnkgc3RhdGVzLgotICAgIE1vY2tJbWFnZURlY29kZXIqIG1fYWN0dWFsRGVjb2Rl
cjsKLSAgICBPd25QdHI8RGVmZXJyZWRJbWFnZURlY29kZXI+IG1fbGF6eURlY29kZXI7Ci0gICAg
U2tQaWN0dXJlIG1fcGljdHVyZTsKLSAgICBTa0NhbnZhcyBtX2NhbnZhczsKLX07Ci0KLVRFU1Rf
RihEZWZlcnJlZEltYWdlRGVjb2RlclRlc3QsIGRyYXdJbnRvU2tQaWN0dXJlKQotewotICAgIE93
blB0cjxOYXRpdmVJbWFnZVNraWE+IGltYWdlKGFkb3B0UHRyKG1fbGF6eURlY29kZXItPmZyYW1l
QnVmZmVyQXRJbmRleCgwKS0+YXNOZXdOYXRpdmVJbWFnZSgpKSk7Ci0gICAgRVhQRUNUX0VRKG1f
YWN0dWFsRGVjb2Rlci0+c2l6ZSgpLndpZHRoKCksIGltYWdlLT5iaXRtYXAoKS53aWR0aCgpKTsK
LSAgICBFWFBFQ1RfRVEobV9hY3R1YWxEZWNvZGVyLT5zaXplKCkuaGVpZ2h0KCksIGltYWdlLT5i
aXRtYXAoKS5oZWlnaHQoKSk7Ci0gICAgRVhQRUNUX0ZBTFNFKGltYWdlLT5iaXRtYXAoKS5pc051
bGwoKSk7Ci0gICAgRVhQRUNUX1RSVUUoaW1hZ2UtPmJpdG1hcCgpLmlzSW1tdXRhYmxlKCkpOwot
Ci0gICAgU2tDYW52YXMqIHRlbXBDYW52YXMgPSBtX3BpY3R1cmUuYmVnaW5SZWNvcmRpbmcoMTAw
LCAxMDApOwotICAgIHRlbXBDYW52YXMtPmRyYXdCaXRtYXAoaW1hZ2UtPmJpdG1hcCgpLCAwLCAw
KTsKLSAgICBtX3BpY3R1cmUuZW5kUmVjb3JkaW5nKCk7Ci0gICAgRVhQRUNUX0VRKDAsIG1fYWN0
dWFsRGVjb2Rlci0+ZnJhbWVCdWZmZXJSZXF1ZXN0Q291bnQoKSk7Ci0KLSAgICBtX2NhbnZhcy5k
cmF3UGljdHVyZShtX3BpY3R1cmUpOwotICAgIEVYUEVDVF9FUSgxLCBtX2FjdHVhbERlY29kZXIt
PmZyYW1lQnVmZmVyUmVxdWVzdENvdW50KCkpOwotfQotCi1URVNUX0YoRGVmZXJyZWRJbWFnZURl
Y29kZXJUZXN0LCBkcmF3U2NhbGVkSW50b1NrUGljdHVyZSkKLXsKLSAgICBPd25QdHI8TmF0aXZl
SW1hZ2VTa2lhPiBpbWFnZShhZG9wdFB0cihtX2xhenlEZWNvZGVyLT5mcmFtZUJ1ZmZlckF0SW5k
ZXgoMCktPmFzTmV3TmF0aXZlSW1hZ2UoKSkpOwotICAgIFNrQml0bWFwIHNjYWxlZEJpdG1hcCA9
IGltYWdlLT5yZXNpemVkQml0bWFwKFNrSVNpemU6Ok1ha2UoNTAsIDUxKSwgU2tJUmVjdDo6TWFr
ZVdIKDUwLCA1MSkpOwotICAgIEVYUEVDVF9GQUxTRShzY2FsZWRCaXRtYXAuaXNOdWxsKCkpOwot
ICAgIEVYUEVDVF9UUlVFKHNjYWxlZEJpdG1hcC5pc0ltbXV0YWJsZSgpKTsKLSAgICBFWFBFQ1Rf
RVEoNTAsIHNjYWxlZEJpdG1hcC53aWR0aCgpKTsKLSAgICBFWFBFQ1RfRVEoNTEsIHNjYWxlZEJp
dG1hcC5oZWlnaHQoKSk7Ci0gICAgRVhQRUNUX0VRKDAsIG1fYWN0dWFsRGVjb2Rlci0+ZnJhbWVC
dWZmZXJSZXF1ZXN0Q291bnQoKSk7Ci0KLSAgICBTa0NhbnZhcyogdGVtcENhbnZhcyA9IG1fcGlj
dHVyZS5iZWdpblJlY29yZGluZygxMDAsIDEwMCk7Ci0gICAgdGVtcENhbnZhcy0+ZHJhd0JpdG1h
cChzY2FsZWRCaXRtYXAsIDAsIDApOwotICAgIG1fcGljdHVyZS5lbmRSZWNvcmRpbmcoKTsKLSAg
ICBFWFBFQ1RfRVEoMCwgbV9hY3R1YWxEZWNvZGVyLT5mcmFtZUJ1ZmZlclJlcXVlc3RDb3VudCgp
KTsKLQotICAgIG1fY2FudmFzLmRyYXdQaWN0dXJlKG1fcGljdHVyZSk7Ci0gICAgRVhQRUNUX0VR
KDEsIG1fYWN0dWFsRGVjb2Rlci0+ZnJhbWVCdWZmZXJSZXF1ZXN0Q291bnQoKSk7Ci19Ci0KLX0g
Ly8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL01v
Y2tJbWFnZURlY29kZXIuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTW9ja0ltYWdl
RGVjb2Rlci5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1Y2YyMzc0NGU1MWZkZTQz
YzE2NGIzMTEwMWQwNWIzMzA3MzJjMmZkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvTW9ja0ltYWdlRGVj
b2Rlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNjEgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05U
UklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP
U0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgTW9j
a0ltYWdlRGVjb2Rlcl9oCi0KLSNpbmNsdWRlICJJbWFnZURlY29kZXIuaCIKLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1jbGFzcyBNb2NrSW1hZ2VEZWNvZGVyIDogcHVibGljIEltYWdlRGVjb2Rl
ciB7Ci1wdWJsaWM6Ci0gICAgTW9ja0ltYWdlRGVjb2RlcigpCi0gICAgICAgIDogSW1hZ2VEZWNv
ZGVyKEltYWdlU291cmNlOjpBbHBoYVByZW11bHRpcGxpZWQsIEltYWdlU291cmNlOjpHYW1tYUFu
ZENvbG9yUHJvZmlsZUFwcGxpZWQpCi0gICAgICAgICwgbV9mcmFtZUJ1ZmZlclJlcXVlc3RDb3Vu
dCgwKQotICAgIHsgfQotCi0gICAgdmlydHVhbCBTdHJpbmcgZmlsZW5hbWVFeHRlbnNpb24oKSBj
b25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuICJtb2NrIjsKLSAgICB9Ci0KLSAgICB2aXJ0dWFs
IEltYWdlRnJhbWUqIGZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QpCi0gICAgewotICAgICAgICAr
K21fZnJhbWVCdWZmZXJSZXF1ZXN0Q291bnQ7Ci0KLSAgICAgICAgbV9mcmFtZUJ1ZmZlckNhY2hl
LnJlc2l6ZSgxKTsKLSAgICAgICAgbV9mcmFtZUJ1ZmZlckNhY2hlWzBdLnNldFNpemUoc2l6ZSgp
LndpZHRoKCksIHNpemUoKS5oZWlnaHQoKSk7Ci0gICAgICAgIHJldHVybiAmbV9mcmFtZUJ1ZmZl
ckNhY2hlWzBdOwotICAgIH0KLQotICAgIGludCBmcmFtZUJ1ZmZlclJlcXVlc3RDb3VudCgpIGNv
bnN0IHsgcmV0dXJuIG1fZnJhbWVCdWZmZXJSZXF1ZXN0Q291bnQ7IH0KLQotcHJpdmF0ZToKLSAg
ICBpbnQgbV9mcmFtZUJ1ZmZlclJlcXVlc3RDb3VudDsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQotI2VuZGlmIC8vIE1vY2tJbWFnZURlY29kZXJfaApkaWZmIC0tZ2l0IGEvVG9vbHMv
Q2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc4MjNiZGRjZDUzMDE1OWFjOTI4MzVm
ZGM0ZTFiN2QwOTk4ZDBmZDYuLjFjNzkxNzE3MGYzODA2ZDE2NDIxNDllNjRkNGRlNGIxMjE2OTBh
MGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNyBAQAorMjAxMi0xMC0xOCAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJv
dEBnbWFpbC5jb20+CisKKyAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjEzMTgxMC4K
KyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTMxODEwCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTc2MgorCisgICAgICAg
IEJyb2tlIGxpbnV4IGRlYnVnIHdlYmtpdF91bml0X3Rlc3RzIChSZXF1ZXN0ZWQgYnkKKyAgICAg
ICAgZGFuYWtqfGdhcmRlbmluZyBvbiAjd2Via2l0KS4KKworICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKG1haW4pOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHA6CisgICAgICAgIChUZXN0
U2hlbGw6OlRlc3RTaGVsbCk6CisgICAgICAgIChUZXN0U2hlbGw6OnJlc2V0V2ViU2V0dGluZ3Mp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oOgorICAgICAg
ICAoVGVzdFNoZWxsKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVm
ZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6cmVzZXQpOgorICAgICAgICAo
V2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlByZWZlcmVuY2VzLmg6CisgICAgICAgIChXZWJQcmVmZXJlbmNlcyk6CisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weToKKyAgICAg
ICAgKENocm9taXVtUG9ydC52aXJ0dWFsX3Rlc3Rfc3VpdGVzKToKKwogMjAxMi0xMC0xOCAgQWxw
aGEgTGFtICA8aGNsYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gSW1wbGVt
ZW50IGRlZmVycmVkIGltYWdlIGRlY29kaW5nCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNWEzMjEwNDQ5NmY3OWIxZjJhNDU0OGIz
NjUzNDU2YjQwNjFmYTZiNS4uMzBjZTI4ODUxZmM5YTlhNDZiOGI2M2U2ZGJkMDBkYTFjM2ZlYTgz
OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRy
ZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVl
LmNwcApAQCAtNjQsNyArNjQsNiBAQCBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2Nl
bGVyYXRlZFBhaW50aW5nW10gPSAiLS1lbmFibGUtYWNjZWxlcmF0ZWQtcGFpbgogc3RhdGljIGNv
bnN0IGNoYXIgb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvW10gPSAi
LS1lbmFibGUtYWNjZWxlcmF0ZWQtdmlkZW8iOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uVXNl
R3JhcGhpY3NDb250ZXh0M0RJbXBsZW1lbnRhdGlvbltdID0gIi0tdXNlLWdyYXBoaWNzLWNvbnRl
eHQtM2QtaW1wbGVtZW50YXRpb249IjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkVuYWJsZVBl
clRpbGVQYWludGluZ1tdID0gIi0tZW5hYmxlLXBlci10aWxlLXBhaW50aW5nIjsKLXN0YXRpYyBj
b25zdCBjaGFyIG9wdGlvbkVuYWJsZURlZmVycmVkSW1hZ2VEZWNvZGluZ1tdID0gIi0tZW5hYmxl
LWRlZmVycmVkLWltYWdlLWRlY29kaW5nIjsKIAogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uU3Ry
ZXNzT3B0W10gPSAiLS1zdHJlc3Mtb3B0IjsKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvblN0cmVz
c0Rlb3B0W10gPSAiLS1zdHJlc3MtZGVvcHQiOwpAQCAtMTM0LDcgKzEzMyw2IEBAIGludCBtYWlu
KGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgYm9vbCBkZWZlcnJlZDJEQ2FudmFzRW5hYmxl
ZCA9IGZhbHNlOwogICAgIGJvb2wgYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQgPSBmYWxzZTsK
ICAgICBib29sIHBlclRpbGVQYWludGluZ0VuYWJsZWQgPSBmYWxzZTsKLSAgICBib29sIGRlZmVy
cmVkSW1hZ2VEZWNvZGluZ0VuYWJsZWQgPSBmYWxzZTsKICAgICBib29sIHN0cmVzc09wdCA9IGZh
bHNlOwogICAgIGJvb2wgc3RyZXNzRGVvcHQgPSBmYWxzZTsKICAgICBib29sIGhhcmR3YXJlQWNj
ZWxlcmF0ZWRHTCA9IGZhbHNlOwpAQCAtMTg1LDggKzE4Myw2IEBAIGludCBtYWluKGludCBhcmdj
LCBjaGFyKiBhcmd2W10pCiAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiVW5rbm93biBH
cmFwaGljQ29udGV4dDNEIGltcGxlbWVudGF0aW9uICVzXG4iLCBpbXBsZW1lbnRhdGlvbi5jX3N0
cigpKTsKICAgICAgICAgfSBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25FbmFibGVQZXJUaWxl
UGFpbnRpbmcpCiAgICAgICAgICAgICBwZXJUaWxlUGFpbnRpbmdFbmFibGVkID0gdHJ1ZTsKLSAg
ICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlRGVmZXJyZWRJbWFnZURlY29k
aW5nKQotICAgICAgICAgICAgZGVmZXJyZWRJbWFnZURlY29kaW5nRW5hYmxlZCA9IHRydWU7CiAg
ICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlvblN0cmVzc09wdCkKICAgICAgICAgICAg
IHN0cmVzc09wdCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlvblN0
cmVzc0Rlb3B0KQpAQCAtMjI2LDcgKzIyMiw2IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBh
cmd2W10pCiAgICAgICAgIHNoZWxsLnNldERlZmVycmVkMmRDYW52YXNFbmFibGVkKGRlZmVycmVk
MkRDYW52YXNFbmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0QWNjZWxlcmF0ZWRQYWludGluZ0Vu
YWJsZWQoYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQpOwogICAgICAgICBzaGVsbC5zZXRQZXJU
aWxlUGFpbnRpbmdFbmFibGVkKHBlclRpbGVQYWludGluZ0VuYWJsZWQpOwotICAgICAgICBzaGVs
bC5zZXREZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKGRlZmVycmVkSW1hZ2VEZWNvZGluZ0Vu
YWJsZWQpOwogICAgICAgICBzaGVsbC5zZXRKYXZhU2NyaXB0RmxhZ3MoamF2YVNjcmlwdEZsYWdz
KTsKICAgICAgICAgc2hlbGwuc2V0U3RyZXNzT3B0KHN0cmVzc09wdCk7CiAgICAgICAgIHNoZWxs
LnNldFN0cmVzc0Rlb3B0KHN0cmVzc0Rlb3B0KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IGFjNzc1OTY4MWEwNDZkMDNkNDcxOGZjNDU4YzI3ZTgy
ZTE0NjE3OTkuLjMyNTg1ZmFhMWIyZDhhZDgxYTgzYjE1ZThmNzEyYmQ4Y2E3MjQ4OWIgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcApAQCAtMTE0LDcgKzEx
NCw2IEBAIFRlc3RTaGVsbDo6VGVzdFNoZWxsKCkKICAgICAsIG1fYWNjZWxlcmF0ZWQyZENhbnZh
c0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2RlZmVycmVkMmRDYW52YXNFbmFibGVkKGZhbHNlKQog
ICAgICwgbV9hY2NlbGVyYXRlZFBhaW50aW5nRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fZGVmZXJy
ZWRJbWFnZURlY29kaW5nRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc3RyZXNzT3B0KGZhbHNlKQog
ICAgICwgbV9zdHJlc3NEZW9wdChmYWxzZSkKICAgICAsIG1fZHVtcFdoZW5GaW5pc2hlZCh0cnVl
KQpAQCAtMjMwLDcgKzIyOSw2IEBAIHZvaWQgVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdzKFdl
YlZpZXcmIHdlYlZpZXcpCiAgICAgbV9wcmVmcy5hY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9
IG1fYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgbV9wcmVmcy5kZWZlcnJlZDJkQ2Fu
dmFzRW5hYmxlZCA9IG1fZGVmZXJyZWQyZENhbnZhc0VuYWJsZWQ7CiAgICAgbV9wcmVmcy5hY2Nl
bGVyYXRlZFBhaW50aW5nRW5hYmxlZCA9IG1fYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQ7Ci0g
ICAgbV9wcmVmcy5kZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkID0gbV9kZWZlcnJlZEltYWdl
RGVjb2RpbmdFbmFibGVkOwogICAgIG1fcHJlZnMuYXBwbHlUbygmd2ViVmlldyk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmgKaW5kZXggMzkyNjYyNDQ2OWI2
OGNjYmM4NzRiNDkxZWE0ODNhMGI2MzkyY2U1NS4uNDRiNWFlMzg4YzY4ZDY1ZGU4OTBmYzgwMGZl
ZDUyMjllZWMyYTMyNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFNoZWxsLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxs
LmgKQEAgLTEzOCw3ICsxMzgsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXREZWZlcnJlZDJkQ2Fu
dmFzRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9kZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IGVu
YWJsZWQ7IH0KICAgICB2b2lkIHNldEFjY2VsZXJhdGVkUGFpbnRpbmdFbmFibGVkKGJvb2wgZW5h
YmxlZCkgeyBtX2FjY2VsZXJhdGVkUGFpbnRpbmdFbmFibGVkID0gZW5hYmxlZDsgfQogICAgIHZv
aWQgc2V0UGVyVGlsZVBhaW50aW5nRW5hYmxlZChib29sKTsKLSAgICB2b2lkIHNldERlZmVycmVk
SW1hZ2VEZWNvZGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fZGVmZXJyZWRJbWFnZURlY29k
aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICNpZiBkZWZpbmVkKE9TX1dJTikKICAgICAvLyBBY2Nl
c3MgdG8gdGhlIGZpbmlzaGVkIGV2ZW50LiBVc2VkIGJ5IHRoZSBzdGF0aWMgV2F0Y2hEb2cgdGhy
ZWFkLgogICAgIEhBTkRMRSBmaW5pc2hlZEV2ZW50KCkgeyByZXR1cm4gbV9maW5pc2hlZEV2ZW50
OyB9CkBAIC0yMzYsNyArMjM1LDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZGVmZXJyZWQyZENh
bnZhc0VuYWJsZWQ7CiAgICAgYm9vbCBtX2FjY2VsZXJhdGVkUGFpbnRpbmdFbmFibGVkOwogICAg
IGJvb2wgbV9wZXJUaWxlUGFpbnRpbmdFbmFibGVkOwotICAgIGJvb2wgbV9kZWZlcnJlZEltYWdl
RGVjb2RpbmdFbmFibGVkOwogICAgIFdlYlByZWZlcmVuY2VzIG1fcHJlZnM7CiAgICAgYm9vbCBt
X3N0cmVzc09wdDsKICAgICBib29sIG1fc3RyZXNzRGVvcHQ7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggNWM4YzkyYzk5OTQyNjQ0
ZGQxOWE0OWM5OGU2NmMxYTRmMDZkNDQ0ZC4uM2JjMmNkZDlmMmFlNDE3MGMzM2FkNjQxMDZkNGE3
ZjJkMDkwMjFmNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
UHJlZmVyZW5jZXMuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBy
ZWZlcmVuY2VzLmNwcApAQCAtMTE2LDcgKzExNiw2IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJl
c2V0KCkKICAgICBkZWZlcnJlZDJkQ2FudmFzRW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJh
dGVkUGFpbnRpbmdFbmFibGVkID0gZmFsc2U7CiAgICAgZm9yY2VDb21wb3NpdGluZ01vZGUgPSBm
YWxzZTsKLSAgICBkZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkID0gZmFsc2U7CiAgICAgbWVk
aWFQbGF5YmFja1JlcXVpcmVzVXNlckdlc3R1cmUgPSBmYWxzZTsKICAgICBtb2NrU2Nyb2xsYmFy
c0VuYWJsZWQgPSBmYWxzZTsKICAgICBjc3NDdXN0b21GaWx0ZXJFbmFibGVkID0gZmFsc2U7CkBA
IC0yMjUsNyArMjI0LDYgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3
ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChhY2Nl
bGVyYXRlZDJkQ2FudmFzRW5hYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldERlZmVycmVkMmRDYW52
YXNFbmFibGVkKGRlZmVycmVkMmRDYW52YXNFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0QWNj
ZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQoYWNjZWxlcmF0ZWRQYWludGluZ0VuYWJsZWQpOwotICAg
IHNldHRpbmdzLT5zZXREZWZlcnJlZEltYWdlRGVjb2RpbmdFbmFibGVkKGRlZmVycmVkSW1hZ2VE
ZWNvZGluZ0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5zZXRNZWRpYVBsYXliYWNrUmVxdWlyZXNV
c2VyR2VzdHVyZShtZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSk7CiAgICAgc2V0dGlu
Z3MtPnNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChtb2NrU2Nyb2xsYmFyc0VuYWJsZWQpOwogICAg
IHNldHRpbmdzLT5zZXRBcHBseURlZmF1bHREZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcihm
b3JjZUNvbXBvc2l0aW5nTW9kZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViUHJlZmVyZW5jZXMuaAppbmRleCBlMDMxNWYyZDA3YzFlNWI5ODU1ZmU3YjNhYTJlMTRjZjdl
MWU0MGJmLi5jMzY1NTNiMzU0Njk2NGM3NmYyOTkxNmE5ZWE5YjllMmEyM2UyNGIyIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKQEAgLTEwOSw3
ICsxMDksNiBAQCBzdHJ1Y3QgV2ViUHJlZmVyZW5jZXMgewogICAgIGJvb2wgYWNjZWxlcmF0ZWQy
ZENhbnZhc0VuYWJsZWQ7CiAgICAgYm9vbCBkZWZlcnJlZDJkQ2FudmFzRW5hYmxlZDsKICAgICBi
b29sIGFjY2VsZXJhdGVkUGFpbnRpbmdFbmFibGVkOwotICAgIGJvb2wgZGVmZXJyZWRJbWFnZURl
Y29kaW5nRW5hYmxlZDsKICAgICBib29sIG1lZGlhUGxheWJhY2tSZXF1aXJlc1VzZXJHZXN0dXJl
OwogICAgIGJvb2wgbW9ja1Njcm9sbGJhcnNFbmFibGVkOwogICAgIGJvb2wgY3NzQ3VzdG9tRmls
dGVyRW5hYmxlZDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9wb3J0L2Nocm9taXVtLnB5CmluZGV4IGE2OWY1YTgyMmFhM2ZlMzI4NDZmOTE3MDExNjQxOTNj
YzIyMzhmNTIuLmMzMTBlYjE1YjE5NTRkZGVkZGMzMzNiOTgwZjY2NWQ1ZmNkYjkxY2UgMTAwNzU1
Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0u
cHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1
bS5weQpAQCAtMzkwLDkgKzM5MCw2IEBAIGNsYXNzIENocm9taXVtUG9ydChQb3J0KToKICAgICAg
ICAgICAgIFZpcnR1YWxUZXN0U3VpdGUoJ3BsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvc29mdHdh
cmVjb21wb3NpdGluZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdjb21wb3NpdGlu
ZycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsnLS1lbmFibGUtc29mdHdhcmUtY29t
cG9zaXRpbmcnXSksCi0gICAgICAgICAgICBWaXJ0dWFsVGVzdFN1aXRlKCdwbGF0Zm9ybS9jaHJv
bWl1bS92aXJ0dWFsL2RlZmVycmVkL2Zhc3QvaW1hZ2VzJywKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJ2Zhc3QvaW1hZ2VzJywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyct
LWVuYWJsZS1kZWZlcnJlZC1pbWFnZS1kZWNvZGluZycsICctLWVuYWJsZS1wZXItdGlsZS1wYWlu
dGluZycsICctLWZvcmNlLWNvbXBvc2l0aW5nLW1vZGUnXSksCiAgICAgICAgIF0KIAogICAgICMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YzJkZjc1MjliNDVhM2RlNjVhMGM5NzgzOWI4MGVjNWI5NmI1Mzg3Li5lMDIzY2Iy
MzJlNTAxMWQ5MDVkZmNhZTRjYzY4YzQ5NDM4NDUwYzdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTItMTAtMTggIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgor
CisgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMzE4MTAuCisgICAgICAgIGh0dHA6
Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEzMTgxMAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk3NjIKKworICAgICAgICBCcm9rZSBsaW51eCBk
ZWJ1ZyB3ZWJraXRfdW5pdF90ZXN0cyAoUmVxdWVzdGVkIGJ5CisgICAgICAgIGRhbmFranxnYXJk
ZW5pbmcgb24gI3dlYmtpdCkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhw
ZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZGVmZXJyZWQv
ZmFzdC9pbWFnZXMvUkVBRE1FLnR4dDogUmVtb3ZlZC4KKwogMjAxMi0xMC0xOCAgTWlrZSBXZXN0
ICA8bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBsYXlvdXQgdGVzdHMgZm9yIHdp
bGRjYXJkZWQgaG9zdHMgaW4gQ1NQIGRpcmVjdGl2ZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2M2U1OWZiYjI3MWM4MGM3NjQwYmJk
NjU4NDc0YTQyYmE2ZDdmNjM2Li4wZmMyYjQ0M2RmZjBjZTU0Zjc3MzI1Yjc3NDY0NzM3ZjdiYzM2
Yzg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTQyMzMsMjggKzQyMzMsMyBAQCB3ZWJraXQub3JnL2IvODQ4OTMgaHR0cC90ZXN0cy93
M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0ludGVsL3VzZXItdGltaW5nIFsgU2tpcCBdCiAjIEV4cGVj
dGVkIHRvIGZhaWwgdW50aWwgV2ViR0wgZXh0ZW5zaW9uIGltcGxlbWVudGF0aW9uIGxhbmRzCiB3
ZWJraXQub3JnL2IvOTgyNTcgZmFzdC9jYW52YXMvd2ViZ2wvb2VzLWVsZW1lbnQtaW5kZXgtdWlu
dC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi85ODI1NyBwbGF0Zm9ybS9jaHJv
bWl1bS92aXJ0dWFsL2dwdS9mYXN0L2NhbnZhcy93ZWJnbC9vZXMtZWxlbWVudC1pbmRleC11aW50
Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotCi0jIFRoZXNlIHRlc3RzIGFyZSBmYWlsaW5nIGFscmVh
ZHkgYW5kIGJlY2F1c2Ugb2YgdmlydHVhbCB0ZXN0IHN1aXRlIGZvciBkZWZlcnJlZAotIyBpbWFn
ZSBkZWNvZGluZyB0aGV5IG5lZWQgdG8gYmUgc3VwcHJlc3NlZCBhZ2Fpbi4KLXdlYmtpdC5vcmcv
Yi85NDI0MCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2RlZmVycmVkL2Zhc3QvaW1hZ2VzL2Fu
aW1hdGVkLWdpZi1yZXN0b3JlZC1mcm9tLWJmY2FjaGUuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0
Lm9yZy9iLzk0MjQwIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZGVmZXJyZWQvZmFzdC9pbWFn
ZXMvZXhpZi1vcmllbnRhdGlvbi1jc3MuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzk0
MjQwIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZGVmZXJyZWQvZmFzdC9pbWFnZXMvZXhpZi1v
cmllbnRhdGlvbi5odG1sIFsgRmFpbHVyZSBdCi13ZWJraXQub3JnL2IvOTQyNDAgcGxhdGZvcm0v
Y2hyb21pdW0vdmlydHVhbC9kZWZlcnJlZC9mYXN0L2ltYWdlcy9wZGYtYXMtaW1hZ2UtbGFuZHNj
YXBlLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi85NDI0MCBwbGF0Zm9ybS9jaHJvbWl1
bS92aXJ0dWFsL2RlZmVycmVkL2Zhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS5odG1sIFsgRmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvOTQyNDAgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9kZWZlcnJl
ZC9mYXN0L2ltYWdlcy9zdXBwb3J0LWJyb2tlbi1pbWFnZS1kZWxlZ2F0ZS5odG1sIFsgRmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvOTQyNDAgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9kZWZlcnJl
ZC9mYXN0L2ltYWdlcy9jb2xvci1qcGVnLXdpdGgtY29sb3ItcHJvZmlsZS5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvOTQyNDAgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVh
bC9kZWZlcnJlZC9mYXN0L2ltYWdlcy9naWYtbGFyZ2UtY2hlY2tlcmJvYXJkLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi85NDI0MCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0
dWFsL2RlZmVycmVkL2Zhc3QvaW1hZ2VzL2dpZi1sb29wLWNvdW50Lmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KLXdlYmtpdC5vcmcvYi85NDI0MCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2Rl
ZmVycmVkL2Zhc3QvaW1hZ2VzL3BhaW50LXN1YnJlY3QtZ3JpZC5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCi13ZWJraXQub3JnL2IvOTQyNDAgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9kZWZl
cnJlZC9mYXN0L2ltYWdlcy9waXhlbC1jcmFjay1pbWFnZS1iYWNrZ3JvdW5kLXdlYmtpdC10cmFu
c2Zvcm0tc2NhbGUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzk0MjQw
IHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZGVmZXJyZWQvZmFzdC9pbWFnZXMvZW1iZWQtaW1h
Z2UuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzk0MjQwIHBsYXRmb3JtL2Nocm9taXVt
L3ZpcnR1YWwvZGVmZXJyZWQvZmFzdC9pbWFnZXMvZmF2aWNvbi1hcy1pbWFnZS5odG1sIFsgRmFp
bHVyZSBdCi13ZWJraXQub3JnL2IvOTQyNDAgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9kZWZl
cnJlZC9mYXN0L2ltYWdlcy9pbWFnZW1hcC1jaXJjbGUtZm9jdXMtcmluZy5odG1sIFsgRmFpbHVy
ZSBdCi13ZWJraXQub3JnL2IvOTQyNDAgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9kZWZlcnJl
ZC9mYXN0L2ltYWdlcy9pbWFnZW1hcC1mb2N1cy1yaW5nLW91dGxpbmUtY29sb3ItZXhwbGljaXRs
eS1pbmhlcml0ZWQtZnJvbS1tYXAuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0Lm9yZy9iLzk0MjQw
IHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZGVmZXJyZWQvZmFzdC9pbWFnZXMvaW1hZ2VtYXAt
Zm9jdXMtcmluZy1vdXRsaW5lLWNvbG9yLW5vdC1pbmhlcml0ZWQtZnJvbS1tYXAuaHRtbCBbIEZh
aWx1cmUgXQotd2Via2l0Lm9yZy9iLzk0MjQwIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZGVm
ZXJyZWQvZmFzdC9pbWFnZXMvaW1hZ2VtYXAtZm9jdXMtcmluZy1vdXRsaW5lLWNvbG9yLmh0bWwg
WyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi85NDI0MCBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFs
L2RlZmVycmVkL2Zhc3QvaW1hZ2VzL2ltYWdlbWFwLXBvbHlnb24tZm9jdXMtcmluZy5odG1sIFsg
RmFpbHVyZSBdCi13ZWJraXQub3JnL2IvOTQyNDAgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9k
ZWZlcnJlZC9mYXN0L2ltYWdlcy9vYmplY3QtaW1hZ2UuaHRtbCBbIEZhaWx1cmUgXQotd2Via2l0
Lm9yZy9iLzk0MjQwIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZGVmZXJyZWQvZmFzdC9pbWFn
ZXMvcmVwYWludC1zdWJyZWN0LWdyaWQuaHRtbCBbIFRpbWVvdXQgXQotd2Via2l0Lm9yZy9iLzk0
MjQwIHBsYXRmb3JtL2Nocm9taXVtL3ZpcnR1YWwvZGVmZXJyZWQvZmFzdC9pbWFnZXMvcGFsZXR0
ZWQtcG5nLXdpdGgtY29sb3ItcHJvZmlsZS5odG1sIFsgTWlzc2luZyBdCi13ZWJraXQub3JnL2Iv
OTQyNDAgcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9kZWZlcnJlZC9mYXN0L2ltYWdlcy9pbWFn
ZW1hcC1mb2N1cy1yaW5nLXpvb20uaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9kZWZlcnJlZC9mYXN0L2ltYWdlcy9SRUFE
TUUudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdmlydHVhbC9kZWZlcnJlZC9m
YXN0L2ltYWdlcy9SRUFETUUudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjg4
MmViMDQzMmQ1ZmQwMGI4MjgxZTI4OGIxOTg5OTljYjdkODUzLi4wMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L3ZpcnR1YWwvZGVmZXJyZWQvZmFzdC9pbWFnZXMvUkVBRE1FLnR4dAorKysgL2Rldi9udWxsCkBA
IC0xLDIgKzAsMCBAQAotIyBUZXN0IHN1aXRlcyBpbiB0aGlzIGRpcmVjdG9yeSB0ZXN0IHRoZSAn
ZGVmZXJyZWQgaW1hZ2UgZGVjb2RpbmcnIGNvZGUgcGF0aAotIyB0aHJvdWdoIENocm9taXVtIERS
VC4K
</data>

          </attachment>
      

    </bug>

</bugzilla>