<?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>82901</bug_id>
          
          <creation_ts>2012-04-02 08:13:32 -0700</creation_ts>
          <short_desc>REGRESSION(r112868): &quot;Build fail on bots.&quot; (Requested by kbalazs on #webkit).</short_desc>
          <delta_ts>2012-04-02 08:17:30 -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>
          
          <blocked>72121</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>hausmann</cc>
    
    <cc>kbalazs</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>593479</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-02 08:13:32 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/112868 broke the build:
&quot;Build fail on bots.&quot; (Requested by kbalazs 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>593480</commentid>
    <comment_count>1</comment_count>
      <attachid>135104</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-02 08:14:11 -0700</bug_when>
    <thetext>Created attachment 135104
ROLLOUT of r112868

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>593482</commentid>
    <comment_count>2</comment_count>
      <attachid>135104</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-02 08:17:23 -0700</bug_when>
    <thetext>Comment on attachment 135104
ROLLOUT of r112868

Clearing flags on attachment: 135104

Committed r112887: &lt;http://trac.webkit.org/changeset/112887&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>593483</commentid>
    <comment_count>3</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-04-02 08:17:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135104</attachid>
            <date>2012-04-02 08:14:11 -0700</date>
            <delta_ts>2012-04-02 08:17:23 -0700</delta_ts>
            <desc>ROLLOUT of r112868</desc>
            <filename>bug-82901-20120402151709.patch</filename>
            <type>text/plain</type>
            <size>50744</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyODg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWRhOWE5MjdmMDU4MDBl
YWE2NDU0ZGZlYjYzMTQ5NTBhNzhmMzkwZi4uYjAzMDhmOTUzYTU0NTMyNzA1OTRmNGU5NTA5ZTll
MjIxY2Q5Mzg5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDEyLTA0LTAyICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTEyODY4LCByMTEyODc5LCBhbmQgcjExMjg4MS4KKyAgICAgICAg
aHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTEyODY4CisgICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzExMjg3OQorICAgICAgICBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8xMTI4ODEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgyOTAxCisKKyAgICAgICAgIkJ1aWxkIGZhaWwgb24gYm90cy4iIChS
ZXF1ZXN0ZWQgYnkga2JhbGF6cyBvbiAjd2Via2l0KS4KKworICAgICAgICAqIEdOVW1ha2VmaWxl
LmFtOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MucHJvOiBSZW1vdmVkLgorICAgICAgICAqIFBs
dWdpblByb2Nlc3MvZ3RrL1BsdWdpblByb2Nlc3NNYWluR3RrLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UGx1Z2luUHJvY2Vzc01haW5HdGspOgorICAgICAgICAqIFBsdWdpblByb2Nlc3MvcXQvUGx1
Z2luUHJvY2Vzc01haW5RdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NNYWlu
KToKKyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVs
ZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luTW9kdWxlOjp0cnlMb2FkKToK
KyAgICAgICAgKiBTaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5o
OgorICAgICAgICAoTmV0c2NhcGVQbHVnaW5Nb2R1bGUpOgorICAgICAgICAqIFNoYXJlZC9QbHVn
aW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVsZVgxMS5jcHA6CisgICAgICAgIChT
dGRvdXREZXZOdWxsUmVkaXJlY3Rvcik6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
S2l0OjpTdGRvdXREZXZOdWxsUmVkaXJlY3Rvcjo6U3Rkb3V0RGV2TnVsbFJlZGlyZWN0b3IpOgor
ICAgICAgICAoV2ViS2l0OjpTdGRvdXREZXZOdWxsUmVkaXJlY3Rvcjo6flN0ZG91dERldk51bGxS
ZWRpcmVjdG9yKToKKyAgICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZUdUSyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luTW9kdWxlOjphcHBseVgxMVF1aXJrc0JlZm9yZUxvYWQpOgor
ICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbk1vZHVsZTo6c2V0TUlNRURlc2NyaXB0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6TmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmdldFBsdWdpbkluZm9G
b3JMb2FkZWRQbHVnaW4pOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbk1vZHVsZTo6
Z2V0UGx1Z2luSW5mbyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luTW9kdWxlOjpk
ZXRlcm1pbmVRdWlya3MpOgorICAgICAgICAqIFNoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGgu
aDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0
ay5jcHA6IFJlbW92ZWQuCisgICAgICAgICogU2hhcmVkL3F0L1Byb2Nlc3NFeGVjdXRhYmxlUGF0
aFF0LmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBTaGFyZWQvcXQvU2hhcmVhYmxlQml0bWFwUXQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpTaGFyZWFibGVCaXRtYXA6OnBhaW50KToKKyAgICAgICAg
KiBUYXJnZXQucHJpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNo
ZXIuaDoKKyAgICAgICAgKFByb2Nlc3NMYXVuY2hlcik6CisgICAgICAgICogVUlQcm9jZXNzL0xh
dW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAg
ICAgICAgKFdlYktpdDo6ZmluZFdlYktpdFByb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpQcm9j
ZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MpOgorICAgICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hl
ci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlByb2Nlc3NMYXVu
Y2hlcjo6bGF1bmNoUHJvY2Vzcyk6CisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoUGx1Z2luUHJvY2Vz
c1Byb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9ndGsvUGx1Z2luUHJvY2Vzc1By
b3h5R3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9y
bUluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9x
dC9QbHVnaW5Qcm9jZXNzUHJveHlRdC5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nl
c3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2Vzcyk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6TlBOX0dldFZhbHVlKToKKyAgICAgICAgKiBxdC9QbHVnaW5NYWluUXQuY3Bw
OiBSZW1vdmVkLgorCiAyMDEyLTA0LTAyICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0
Lm9yZz4KIAogICAgICAgICBPbmUgbW9yZSB0cnkgdG8gZml4IFF0IGJ1aWxkIGFmdGVyIHIxMTI4
NjguCmRpZmYgLS1naXQgYS9Tb3VyY2UvUXRXZWJLaXQucHJvIGIvU291cmNlL1F0V2ViS2l0LnBy
bwppbmRleCBiYmJmYzQxZTY4MTdiN2MwZDViZDVlMTNlYzlkM2NmZDQ3OWJhMWY4Li4wMmZjOWUx
YzdlYmUxZjczMTlkMDlkMTIxNWUyMDk4OTliNDUxYTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvUXRX
ZWJLaXQucHJvCisrKyBiL1NvdXJjZS9RdFdlYktpdC5wcm8KQEAgLTQsOCArNCw2IEBACiAjIFNl
ZSAnVG9vbHMvcW1ha2UvUkVBRE1FJyBmb3IgYW4gb3ZlcnZpZXcgb2YgdGhlIGJ1aWxkIHN5c3Rl
bQogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tCiAKLWxvYWQoZmVhdHVyZXMpCi0KIFRFTVBMQVRFID0gc3ViZGlycwog
Q09ORklHICs9IG9yZGVyZWQKIApAQCAtMTUsMTAgKzEzLDYgQEAgU1VCRElSUyArPSBhcGkKICFu
b193ZWJraXQyIHsKICAgICB3ZWJwcm9jZXNzLmZpbGUgPSBXZWJLaXQyL1dlYlByb2Nlc3MucHJv
CiAgICAgU1VCRElSUyArPSB3ZWJwcm9jZXNzCi0gICAgY29udGFpbnMoREVGSU5FUywgRU5BQkxF
X1BMVUdJTl9QUk9DRVNTPTEpIHsKLSAgICAgICAgcGx1Z2lucHJvY2Vzcy5maWxlID0gV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzLnBybwotICAgICAgICBTVUJESVJTICs9IHBsdWdpbnByb2Nlc3MKLSAg
ICB9CiB9CiAKIGluY2x1ZGUoV2ViS2l0L3F0L2RvY3MvZG9jcy5wcmkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxl
LmFtCmluZGV4IDU4OGU2YTYzZmU1YTI1MDFiN2JlODc4ZmE5ZTcyYjMxOGMxODQ2MzQuLjM2NGQz
ZDFmMmEwZWZmOWUyOGRlMTM2ODE2NWMxYjNlNGQzNjhmNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJLaXQyL0dOVW1ha2VmaWxlLmFt
CkBAIC0zMzEsNyArMzMxLDYgQEAgd2Via2l0Ml9zb3VyY2VzICs9IFwKIAlTb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvRWRpdG9yU3RhdGUuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvRWRpdG9y
U3RhdGUuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL0ZvbnRTbW9vdGhpbmdMZXZlbC5oIFwK
LQlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmggXAogCVNvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9jYWlyby9MYXllclRyZWVDb250ZXh0Q2Fpcm8uY3BwIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvY2Fpcm8vU2hhcmVhYmxlQml0bWFwQ2Fpcm8uY3BwIFwKIAlTb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL0FyZ3VtZW50Q29kZXJzR3RrLmggXApAQCAtMzQxLDcgKzM0
MCw2IEBAIHdlYmtpdDJfc291cmNlcyArPSBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9O
YXRpdmVXZWJXaGVlbEV2ZW50R3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9Q
bGF0Zm9ybUNlcnRpZmljYXRlSW5mby5oIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL1By
aW50SW5mb0d0ay5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvUHJvY2Vzc0V4ZWN1
dGFibGVQYXRoR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9XZWJDb3JlQXJn
dW1lbnRDb2RlcnNHdGsuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvZ3RrL1dlYkV2ZW50
RmFjdG9yeS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvV2ViRXZlbnRGYWN0b3J5
LmggXApAQCAtMTM3MSw3ICsxMzY5LDYgQEAgUHJvZ3JhbXNfV2ViS2l0UGx1Z2luUHJvY2Vzc19D
UFBGTEFHUyA9IFwKIAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucyBc
CiAJLUkkKHNyY2RpcikvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvIFwK
IAktSSQoc3JjZGlyKS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy8gXAotCS1JJChz
cmNkaXIpL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlciBcCiAJLUkkKHNyY2Rpcikv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zLyBcCiAJLUkkKHNyY2RpcikvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlLyBcCiAJLUkkKHRvcF9idWlsZGRp
cikvRGVyaXZlZFNvdXJjZXMvV2ViS2l0MiBcCkBAIC0xMzgyLDcgKzEzNzksNiBAQCBQcm9ncmFt
c19XZWJLaXRQbHVnaW5Qcm9jZXNzX0NQUEZMQUdTID0gXAogCS1EQlVJTERJTkdfV0VCS0lUIFwK
IAktREdUS19BUElfVkVSU0lPTl8yPTEgXAogCS1ERU5BQkxFX1BMVUdJTl9QUk9DRVNTPTEgXAot
CS1ETElCRVhFQ0RJUj1cIiIkKGxpYmV4ZWNkaXIpIlwiIFwKIAkkKGdsb2JhbF9jcHBmbGFncykg
XAogCSQod2ViY29yZV9jcHBmbGFncykgXAogCSQod2ViY29yZWd0a19jcHBmbGFncykgXApAQCAt
MTQ2NSw3ICsxNDYxLDYgQEAgd2Via2l0Ml9wbHVnaW5fcHJvY2Vzc19zb3VyY2VzICs9IFwKIAlT
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL2d0ay9QbHVnaW5Qcm9jZXNzTWFpbkd0ay5jcHAg
XAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3MuY3BwIFwKIAlTb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzLmggXAotCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9j
ZXNzRXhlY3V0YWJsZVBhdGguaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBJ
ZGVudGlmaWVyRGF0YS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05QSWRl
bnRpZmllckRhdGEuaCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTlBPYmplY3RN
ZXNzYWdlUmVjZWl2ZXIuY3BwIFwKQEAgLTE0OTIsMTAgKzE0ODcsOCBAQCB3ZWJraXQyX3BsdWdp
bl9wcm9jZXNzX3NvdXJjZXMgKz0gXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvTmF0
aXZlV2ViV2hlZWxFdmVudEd0ay5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvTmF0
aXZlV2ViTW91c2VFdmVudEd0ay5jcHAgXAotCVNvdXJjZS9XZWJLaXQyL1NoYXJlZC9ndGsvUHJv
Y2Vzc0V4ZWN1dGFibGVQYXRoR3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvU2hhcmVkL2d0ay9X
ZWJFdmVudEZhY3RvcnkuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvY2Fpcm8vU2hhcmVh
YmxlQml0bWFwQ2Fpcm8uY3BwIFwKLQlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9n
dGsvUGx1Z2luUHJvY2Vzc1Byb3h5R3RrLmNwcCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpbi5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lu
cy9QbHVnaW4uaCBcCiAJU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBl
L05QUnVudGltZVV0aWxpdGllcy5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1
Z2luUHJvY2Vzcy5wcm8gYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzLnBybwpkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzVmNDU4ODI3ZTRkOGNiN2MwODMxYmQ4Yzc0N2I5MGJm
YTFmM2UyNS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzLnBybworKysgL2Rldi9udWxsCkBAIC0xLDI2ICsw
LDAgQEAKLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLQotIyBQcm9qZWN0IGZpbGUgZm9yIHRoZSBXZWJLaXQyIHBsdWdp
biBwcm9jZXNzIGJpbmFyeQotIwotIyBTZWUgJ1Rvb2xzL3FtYWtlL1JFQURNRScgZm9yIGFuIG92
ZXJ2aWV3IG9mIHRoZSBidWlsZCBzeXN0ZW0KLSMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotCi1URU1QTEFURSA9IGFw
cAotCi1RVCArPSB3ZWJraXQKLQotVEFSR0VUID0gUXRXZWJQbHVnaW5Qcm9jZXNzCi1ERVNURElS
ID0gJCR7Uk9PVF9CVUlMRF9ESVJ9L2JpbgotCi1TT1VSQ0VTICs9IHF0L1BsdWdpbk1haW5RdC5j
cHAKLQotSU5DTFVERVBBVEggPSAkJFBXRC8uLi9XVEYgXAotICAgICAgICAgICAgICAkJFBXRC8u
Li9KYXZhU2NpcHRDb3JlIFwKLSAgICAgICAgICAgICAgJCRJTkNMVURFUEFUSAotCi1JTlNUQUxM
UyArPSB0YXJnZXQKLQotaXNFbXB0eShJTlNUQUxMX0JJTlMpIHsKLSAgICB0YXJnZXQucGF0aCA9
ICQkW1FUX0lOU1RBTExfQklOU10KLX0gZWxzZSB7Ci0gICAgdGFyZ2V0LnBhdGggPSAkJElOU1RB
TExfQklOUwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9ndGsv
UGx1Z2luUHJvY2Vzc01haW5HdGsuY3BwIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9n
dGsvUGx1Z2luUHJvY2Vzc01haW5HdGsuY3BwCmluZGV4IDg3MGMwMWMyNzk0NmViMmU1MDM0MTUx
YjA5ODhjMGViNjYwODMxM2MuLjk5MmQ3NDA3NTEwNGM4Y2JjYTYxMmYxY2Q4OTllOWE1MGUzNzE0
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvZ3RrL1BsdWdpblBy
b2Nlc3NNYWluR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL2d0ay9Q
bHVnaW5Qcm9jZXNzTWFpbkd0ay5jcHAKQEAgLTI2LDcgKzI2LDYgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzTWFpbkd0ay5oIgogCi0jaW5jbHVkZSAiTmV0
c2NhcGVQbHVnaW4uaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8Z2RrL2dka3guaD4KQEAgLTU0LDIyICs1MywxMiBA
QCBzdGF0aWMgaW50IHdlYmtpdGd0a1hFcnJvcihEaXNwbGF5KiB4ZGlzcGxheSwgWEVycm9yRXZl
bnQqIGVycm9yKQogCiBXS19FWFBPUlQgaW50IFBsdWdpblByb2Nlc3NNYWluR3RrKGludCBhcmdj
LCBjaGFyKiBhcmd2W10pCiB7Ci0gICAgQVNTRVJUKGFyZ2MgPT0gMiB8fCBhcmdjID09IDMpOwot
ICAgIGJvb2wgc2NhblBsdWdpbiA9ICFzdHJjbXAoYXJndlsxXSwgIi1zY2FuUGx1Z2luIik7Ci0g
ICAgQVNTRVJUKGFyZ2MgPT0gMiB8fCAoYXJnYyA9PSAzICYmIHNjYW5QbHVnaW4pKTsKKyAgICBB
U1NFUlQoYXJnYyA9PSAyKTsKIAogICAgIGd0a19pbml0KCZhcmdjLCAmYXJndik7CiAKICAgICBK
U0M6OmluaXRpYWxpemVUaHJlYWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFk
KCk7Ci0KLSAgICBpZiAoc2NhblBsdWdpbikgewotICAgICAgICBTdHJpbmcgcGx1Z2luUGF0aChh
cmd2WzJdKTsKLSAgICAgICAgaWYgKCFOZXRzY2FwZVBsdWdpbk1vZHVsZTo6c2NhblBsdWdpbihw
bHVnaW5QYXRoKSkKLSAgICAgICAgICAgIHJldHVybiBFWElUX0ZBSUxVUkU7Ci0gICAgICAgIHJl
dHVybiBFWElUX1NVQ0NFU1M7Ci0gICAgfQotCiAgICAgUnVuTG9vcDo6aW5pdGlhbGl6ZU1haW5S
dW5Mb29wKCk7CiAKICAgICAvLyBQbHVnaW5zIGNhbiBwcm9kdWNlIFggZXJyb3JzIHRoYXQgYXJl
IGhhbmRsZWQgYnkgdGhlIEdESyBYIGVycm9yIGhhbmRsZXIsIHdoaWNoCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWluUXQuY3BwIGIv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9xdC9QbHVnaW5Qcm9jZXNzTWFpblF0LmNwcApp
bmRleCBiYzQ4N2UxZWM3MWY0MDA5ZjY3ZTFmZWVhZDAxMjAxZjUyNmRiYTI2Li5kM2EwZWMzZTI0
NTk1NmI5ODUwMGQ1NjdlNTY1ZmFhMTUwNmEwMDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL3F0L1BsdWdpblByb2Nlc3NNYWluUXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1BsdWdpblByb2Nlc3MvcXQvUGx1Z2luUHJvY2Vzc01haW5RdC5jcHAKQEAgLTEsNiAr
MSw1IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDEwLCAyMDExIE5va2lhIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAxMSBVbml2ZXJzaXR5IG9mIFN6ZWdl
ZC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjUsODMgKzI0LDQ0IEBACiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IlBsdWdpblByb2Nlc3NNYWluLmgiCiAKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCi0jaW5j
bHVkZSAiUGx1Z2luUHJvY2Vzc01haW4uaCIKIAotI2luY2x1ZGUgIk5ldHNjYXBlUGx1Z2luTW9k
dWxlLmgiCisjaW5jbHVkZSAiQ29tbWFuZExpbmUuaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
LmgiCi0jaW5jbHVkZSA8UURlYnVnPgotI2luY2x1ZGUgPFFHdWlBcHBsaWNhdGlvbj4KLSNpbmNs
dWRlIDxRU3RyaW5nTGlzdD4KKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SdW5Mb29wLmg+CiAjaW5jbHVkZSA8cnVudGltZS9Jbml0aWFsaXpl
VGhyZWFkaW5nLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYv
VGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgorI2luY2x1ZGUgPHd0Zi90
ZXh0L0NTdHJpbmcuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2RlZmlu
ZSBTSE9XX0NSQVNIX1JFUE9SVEVSIDEKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1zdGF0aWMgdm9pZCBtZXNzYWdlSGFuZGxlcihRdE1zZ1R5cGUg
dHlwZSwgY29uc3QgY2hhciogbWVzc2FnZSkKLXsKLSAgICBpZiAodHlwZSA9PSBRdENyaXRpY2Fs
TXNnKSB7Ci0gICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXNcbiIsIG1lc3NhZ2UpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gRG8gbm90aGluZwotfQotCi1zdGF0aWMgYm9vbCBp
bml0aWFsaXplR3RrKCkKLXsKLSAgICBRTGlicmFyeSBndGtMaWJyYXJ5KFFMYXRpbjFTdHJpbmco
ImxpYmd0ay14MTEtMi4wIiksIDApOwotICAgIGlmICghZ3RrTGlicmFyeS5sb2FkKCkpCi0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB0eXBlZGVmIHZvaWQqICgqZ3RrX2luaXRfcHRyKSh2b2lk
Kiwgdm9pZCopOwotICAgIGd0a19pbml0X3B0ciBndGtJbml0ID0gcmVpbnRlcnByZXRfY2FzdDxn
dGtfaW5pdF9wdHI+KGd0a0xpYnJhcnkucmVzb2x2ZSgiZ3RrX2luaXQiKSk7Ci0gICAgaWYgKCFn
dGtJbml0KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgZ3RrSW5pdCgwLCAwKTsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotaW50IFBsdWdpblByb2Nlc3NNYWluKGludCBhcmdjLCBjaGFyKiog
YXJndikKK2ludCBQbHVnaW5Qcm9jZXNzTWFpbihjb25zdCBDb21tYW5kTGluZSYgY29tbWFuZExp
bmUpCiB7Ci0gICAgUUJ5dGVBcnJheSBzdXBwcmVzc091dHB1dCA9IHFnZXRlbnYoIlFUX1dFQktJ
VF9TVVBQUkVTU19XRUJfUFJPQ0VTU19PVVRQVVQiKTsKLSAgICBpZiAoIXN1cHByZXNzT3V0cHV0
LmlzRW1wdHkoKSAmJiBzdXBwcmVzc091dHB1dCAhPSAiMCIpCi0gICAgICAgIHFJbnN0YWxsTXNn
SGFuZGxlcihtZXNzYWdlSGFuZGxlcik7Ci0KLSAgICBRR3VpQXBwbGljYXRpb24gYXBwKGFyZ2Ms
IGFyZ3YpOwotCi0gICAgLy8gV29ya2Fyb3VuZCB0aGUgaXNzdWUgdGhhdCBzb21lIHZlcnNpb25z
IG9mIGZsYXNoIGRvZXMgbm90IGluaXRpYWxpemUgR3RrIHByb3Blcmx5LgotICAgIGlmICghaW5p
dGlhbGl6ZUd0aygpKQorICAgIFN0cmluZyBzZXJ2aWNlTmFtZSA9IGNvbW1hbmRMaW5lWyJzZXJ2
aWNlbmFtZSJdOworICAgIGlmIChzZXJ2aWNlTmFtZS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVy
biBFWElUX0ZBSUxVUkU7CiAKKyNpZiAhU0hPV19DUkFTSF9SRVBPUlRFUgorICAgIC8vIEluc3Rh
bGxzIHNpZ25hbCBoYW5kbGVycyB0aGF0IGV4aXQgb24gYSBjcmFzaCBzbyB0aGF0IENyYXNoUmVw
b3J0ZXIgZG9lcyBub3Qgc2hvdyB1cC4KKyAgICBzaWduYWwoU0lHSUxMLCBfZXhpdCk7CisgICAg
c2lnbmFsKFNJR0ZQRSwgX2V4aXQpOworICAgIHNpZ25hbChTSUdCVVMsIF9leGl0KTsKKyAgICBz
aWduYWwoU0lHU0VHViwgX2V4aXQpOworI2VuZGlmCisKICAgICBKU0M6OmluaXRpYWxpemVUaHJl
YWRpbmcoKTsKICAgICBXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkKCk7Ci0KLSAgICBpZiAoYXJn
YyA8PSAxKQotICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwotCi0gICAgaWYgKGFwcC5hcmd1
bWVudHMoKS5hdCgxKSA9PSBRTGF0aW4xU3RyaW5nKCItc2NhblBsdWdpbiIpKSB7Ci0gICAgICAg
IGlmIChhcmdjICE9IDMpCi0gICAgICAgICAgICByZXR1cm4gRVhJVF9GQUlMVVJFOwotICAgICAg
ICBTdHJpbmcgcGx1Z2luUGF0aChhcHAuYXJndW1lbnRzKCkuYXQoMikpOwotICAgICAgICBpZiAo
IU5ldHNjYXBlUGx1Z2luTW9kdWxlOjpzY2FuUGx1Z2luKHBsdWdpblBhdGgpKQotICAgICAgICAg
ICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLSAgICAgICAgcmV0dXJuIEVYSVRfU1VDQ0VTUzsKLSAg
ICB9Ci0KICAgICBSdW5Mb29wOjppbml0aWFsaXplTWFpblJ1bkxvb3AoKTsKIAotICAgIC8vIENy
ZWF0ZSB0aGUgY29ubmVjdGlvbi4KLSAgICBib29sIGlzTnVtYmVyID0gZmFsc2U7Ci0gICAgaW50
IGlkZW50aWZpZXIgPSBhcHAuYXJndW1lbnRzKCkuYXQoMSkudG9JbnQoJmlzTnVtYmVyLCAxMCk7
Ci0gICAgaWYgKCFpc051bWJlcikKLSAgICAgICAgcmV0dXJuIEVYSVRfRkFJTFVSRTsKLSAgICBX
ZWJLaXQ6OlBsdWdpblByb2Nlc3M6OnNoYXJlZCgpLmluaXRpYWxpemUoaWRlbnRpZmllciwgUnVu
TG9vcDo6bWFpbigpKTsKLQogICAgIFJ1bkxvb3A6OnJ1bigpOwogCiAgICAgcmV0dXJuIDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2Fw
ZVBsdWdpbk1vZHVsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2Fw
ZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5jcHAKaW5kZXggYzE4NzRkOTk2NmE2NmRkOTMyZWQyZGZm
OTIwN2NiZjg5ZDMyNWJhOC4uZTVmOGRjMmEzZjJlZmE3ZGU4YjQxMDk5MzI2YWUwNGY5NWY0NTE2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0
c2NhcGVQbHVnaW5Nb2R1bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5z
L05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmNwcApAQCAtMTk3LDYgKzE5NywxMCBAQCBi
b29sIE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpsb2FkKCkKIAogYm9vbCBOZXRzY2FwZVBsdWdpbk1v
ZHVsZTo6dHJ5TG9hZCgpCiB7CisjaWYgUExVR0lOX0FSQ0hJVEVDVFVSRShYMTEpCisgICAgYXBw
bHlYMTFRdWlya3NCZWZvcmVMb2FkKCk7CisjZW5kaWYKKwogICAgIG1fbW9kdWxlID0gYWRvcHRQ
dHIobmV3IE1vZHVsZShtX3BsdWdpblBhdGgpKTsKICAgICBpZiAoIW1fbW9kdWxlLT5sb2FkKCkp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZVBsdWdpbk1vZHVsZS5oCmluZGV4IGU5
NmJkMmQwNDJiY2VhNDU5ZWNiMWE0ZGY4NjI2Y2U2MzY4MTE5OWEuLmY4MGEwYTFhMGEzMmMwNzIx
Y2U2YWJmYjVmYmRkNWI0MGQ4YTk2YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9QbHVnaW5zL05ldHNjYXBlL05ldHNjYXBlUGx1Z2luTW9kdWxlLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvTmV0c2NhcGVQbHVnaW5Nb2R1bGUuaApAQCAt
MzUsOCArMzUsNiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotY2xhc3MgUmF3UGx1Z2luTWV0
YURhdGE7Ci0KIGNsYXNzIE5ldHNjYXBlUGx1Z2luTW9kdWxlIDogcHVibGljIFJlZkNvdW50ZWQ8
TmV0c2NhcGVQbHVnaW5Nb2R1bGU+IHsKIHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxO
ZXRzY2FwZVBsdWdpbk1vZHVsZT4gZ2V0T3JDcmVhdGUoY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRo
KTsKQEAgLTYzLDE3ICs2MSwxNSBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgY3JlYXRlUGx1
Z2luTUlNRVR5cGVzUHJlZmVyZW5jZXMoY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoKTsKICNlbmRp
ZgogCi0jaWYgUExVR0lOX0FSQ0hJVEVDVFVSRShYMTEpCi0gICAgc3RhdGljIGJvb2wgc2NhblBs
dWdpbihjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgpOwotI2VuZGlmCi0KIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgTmV0c2NhcGVQbHVnaW5Nb2R1bGUoY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoKTsK
IAogICAgIHZvaWQgZGV0ZXJtaW5lUXVpcmtzKCk7CiAKICNpZiBQTFVHSU5fQVJDSElURUNUVVJF
KFgxMSkKLSAgICBib29sIGdldFBsdWdpbkluZm9Gb3JMb2FkZWRQbHVnaW4oUmF3UGx1Z2luTWV0
YURhdGEmKTsKKyAgICB2b2lkIGFwcGx5WDExUXVpcmtzQmVmb3JlTG9hZCgpOworICAgIHN0YXRp
YyB2b2lkIHNldE1JTUVEZXNjcmlwdGlvbihjb25zdCBTdHJpbmcmIG1pbWVEZXNjcmlwdGlvbiwg
UGx1Z2luTW9kdWxlSW5mbyYpOworICAgIGJvb2wgZ2V0UGx1Z2luSW5mb0ZvckxvYWRlZFBsdWdp
bihQbHVnaW5Nb2R1bGVJbmZvJik7CiAjZW5kaWYKIAogICAgIGJvb2wgdHJ5R2V0U2l0ZXNXaXRo
RGF0YShWZWN0b3I8U3RyaW5nPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVk
L1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luTW9kdWxlWDExLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpbk1vZHVs
ZVgxMS5jcHAKaW5kZXggZDJlM2VjOTRhZDFhNmY3NjA1YjAzOWI2NzMyNWY4YTE5NzkwY2Y3Ni4u
ODY2ODMzYzY0NjExZDEyZGQ3ZTA1MWM3ZjA5YjU0YWU4OGY1OTM2OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luTW9k
dWxlWDExLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS94
MTEvTmV0c2NhcGVQbHVnaW5Nb2R1bGVYMTEuY3BwCkBAIC0yOCwxMCArMjgsMTMgQEAKIAogI2lu
Y2x1ZGUgIk5ldHNjYXBlUGx1Z2luTW9kdWxlLmgiCiAKLSNpbmNsdWRlICJQbHVnaW5Qcm9jZXNz
UHJveHkuaCIKICNpbmNsdWRlICJOZXRzY2FwZUJyb3dzZXJGdW5jcy5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvRmlsZVN5c3RlbS5oPgotI2luY2x1ZGUgPGVycm5vLmg+CisKKyNpZiBQTEFURk9STShR
VCkKKyNpbmNsdWRlIDxRTGlicmFyeT4KKyNlbmRpZgorCiAjaW5jbHVkZSA8ZmNudGwuaD4KICNp
bmNsdWRlIDxzeXMvc3RhdC5oPgogI2luY2x1ZGUgPHN5cy90eXBlcy5oPgpAQCAtNDEsMTMgKzQ0
LDYwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAot
c3RhdGljIHZvaWQgcGFyc2VNSU1FRGVzY3JpcHRpb24oY29uc3QgU3RyaW5nJiBtaW1lRGVzY3Jp
cHRpb24sIFZlY3RvcjxNaW1lQ2xhc3NJbmZvPiYgcmVzdWx0KQorY2xhc3MgU3Rkb3V0RGV2TnVs
bFJlZGlyZWN0b3IgeworcHVibGljOgorICAgIFN0ZG91dERldk51bGxSZWRpcmVjdG9yKCk7Cisg
ICAgflN0ZG91dERldk51bGxSZWRpcmVjdG9yKCk7CisKK3ByaXZhdGU6CisgICAgaW50IG1fc2F2
ZWRTdGRvdXQ7Cit9OworCitTdGRvdXREZXZOdWxsUmVkaXJlY3Rvcjo6U3Rkb3V0RGV2TnVsbFJl
ZGlyZWN0b3IoKQorICAgIDogbV9zYXZlZFN0ZG91dCgtMSkKIHsKLSAgICBBU1NFUlRfQVJHKHJl
c3VsdCwgcmVzdWx0LmlzRW1wdHkoKSk7CisgICAgaW50IG5ld1N0ZG91dCA9IG9wZW4oIi9kZXYv
bnVsbCIsIE9fV1JPTkxZKTsKKyAgICBpZiAobmV3U3Rkb3V0ID09IC0xKQorICAgICAgICByZXR1
cm47CisgICAgbV9zYXZlZFN0ZG91dCA9IGR1cChTVERPVVRfRklMRU5PKTsKKyAgICBkdXAyKG5l
d1N0ZG91dCwgU1RET1VUX0ZJTEVOTyk7Cit9CisKK1N0ZG91dERldk51bGxSZWRpcmVjdG9yOjp+
U3Rkb3V0RGV2TnVsbFJlZGlyZWN0b3IoKQoreworICAgIGlmIChtX3NhdmVkU3Rkb3V0ICE9IC0x
KQorICAgICAgICBkdXAyKG1fc2F2ZWRTdGRvdXQsIFNURE9VVF9GSUxFTk8pOworfQorCisjaWYg
UExBVEZPUk0oUVQpCitzdGF0aWMgdm9pZCBpbml0aWFsaXplR1RLKCkKK3sKKyAgICBRTGlicmFy
eSBsaWJyYXJ5KFFMYXRpbjFTdHJpbmcoImxpYmd0ay14MTEtMi4wLnNvLjAiKSk7CisgICAgaWYg
KGxpYnJhcnkubG9hZCgpKSB7CisgICAgICAgIHR5cGVkZWYgdm9pZCAqKCpndGtfaW5pdF9jaGVj
a19wdHIpKGludCosIGNoYXIqKiopOworICAgICAgICBndGtfaW5pdF9jaGVja19wdHIgZ3RrSW5p
dENoZWNrID0gcmVpbnRlcnByZXRfY2FzdDxndGtfaW5pdF9jaGVja19wdHI+KGxpYnJhcnkucmVz
b2x2ZSgiZ3RrX2luaXRfY2hlY2siKSk7CisgICAgICAgIC8vIE5PVEU6IFdlJ3JlIHVzaW5nIGd0
a19pbml0X2NoZWNrKCkgc2luY2UgZ3RrX2luaXQoKSBjYWxscyBleGl0KCkgb24gZmFpbHVyZS4K
KyAgICAgICAgaWYgKGd0a0luaXRDaGVjaykKKyAgICAgICAgICAgICh2b2lkKSBndGtJbml0Q2hl
Y2soMCwgMCk7CisgICAgfQorfQorI2VuZGlmCiAKK3ZvaWQgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6
OmFwcGx5WDExUXVpcmtzQmVmb3JlTG9hZCgpCit7CisjaWYgUExBVEZPUk0oUVQpCisgICAgaWYg
KG1fcGx1Z2luUGF0aC5jb250YWlucygibnB3cmFwcGVyIikgfHwgbV9wbHVnaW5QYXRoLmNvbnRh
aW5zKCJmbGFzaHBsYXllciIpKSB7CisgICAgICAgIGluaXRpYWxpemVHVEsoKTsKKyAgICAgICAg
bV9wbHVnaW5RdWlya3MuYWRkKFBsdWdpblF1aXJrczo6UmVxdWlyZXNHVEtUb29sS2l0KTsKKyAg
ICB9CisjZW5kaWYKK30KKwordm9pZCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6c2V0TUlNRURlc2Ny
aXB0aW9uKGNvbnN0IFN0cmluZyYgbWltZURlc2NyaXB0aW9uLCBQbHVnaW5Nb2R1bGVJbmZvJiBw
bHVnaW4pCit7CiAgICAgVmVjdG9yPFN0cmluZz4gdHlwZXM7CiAgICAgbWltZURlc2NyaXB0aW9u
Lmxvd2VyKCkuc3BsaXQoVUNoYXIoJzsnKSwgZmFsc2UsIHR5cGVzKTsKLSAgICByZXN1bHQucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eSh0eXBlcy5zaXplKCkpOworICAgIHBsdWdpbi5pbmZvLm1pbWVz
LnJlc2VydmVDYXBhY2l0eSh0eXBlcy5zaXplKCkpOwogCiAgICAgc2l6ZV90IG1pbWVJbmZvQ291
bnQgPSAwOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdHlwZXMuc2l6ZSgpOyArK2kpIHsK
QEAgLTU2LDggKzEwNiw4IEBAIHN0YXRpYyB2b2lkIHBhcnNlTUlNRURlc2NyaXB0aW9uKGNvbnN0
IFN0cmluZyYgbWltZURlc2NyaXB0aW9uLCBWZWN0b3I8TWltZUNsYXNzCiAgICAgICAgIGlmICht
aW1lVHlwZVBhcnRzLnNpemUoKSA8PSAwKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVuZChNaW1lQ2xhc3NJbmZvKCkpOwotICAgICAgICBNaW1l
Q2xhc3NJbmZvJiBtaW1lSW5mbyA9IHJlc3VsdFttaW1lSW5mb0NvdW50KytdOworICAgICAgICBw
bHVnaW4uaW5mby5taW1lcy51bmNoZWNrZWRBcHBlbmQoTWltZUNsYXNzSW5mbygpKTsKKyAgICAg
ICAgTWltZUNsYXNzSW5mbyYgbWltZUluZm8gPSBwbHVnaW4uaW5mby5taW1lc1ttaW1lSW5mb0Nv
dW50KytdOwogICAgICAgICBtaW1lSW5mby50eXBlID0gbWltZVR5cGVQYXJ0c1swXTsKIAogICAg
ICAgICBpZiAobWltZVR5cGVQYXJ0cy5zaXplKCkgPiAxKQpAQCAtNjgsMTAgKzExOCwxMyBAQCBz
dGF0aWMgdm9pZCBwYXJzZU1JTUVEZXNjcmlwdGlvbihjb25zdCBTdHJpbmcmIG1pbWVEZXNjcmlw
dGlvbiwgVmVjdG9yPE1pbWVDbGFzcwogICAgIH0KIH0KIAotYm9vbCBOZXRzY2FwZVBsdWdpbk1v
ZHVsZTo6Z2V0UGx1Z2luSW5mb0ZvckxvYWRlZFBsdWdpbihSYXdQbHVnaW5NZXRhRGF0YSYgbWV0
YURhdGEpCitib29sIE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpnZXRQbHVnaW5JbmZvRm9yTG9hZGVk
UGx1Z2luKFBsdWdpbk1vZHVsZUluZm8mIHBsdWdpbikKIHsKICAgICBBU1NFUlQobV9pc0luaXRp
YWxpemVkKTsKIAorICAgIHBsdWdpbi5wYXRoID0gbV9wbHVnaW5QYXRoOworICAgIHBsdWdpbi5p
bmZvLmZpbGUgPSBwYXRoR2V0RmlsZU5hbWUobV9wbHVnaW5QYXRoKTsKKwogICAgIE1vZHVsZSog
bW9kdWxlID0gbV9tb2R1bGUuZ2V0KCk7CiAgICAgTlBQX0dldFZhbHVlUHJvY1B0ciBOUFBfR2V0
VmFsdWUgPSBtb2R1bGUtPmZ1bmN0aW9uUG9pbnRlcjxOUFBfR2V0VmFsdWVQcm9jUHRyPigiTlBf
R2V0VmFsdWUiKTsKICAgICBpZiAoIU5QUF9HZXRWYWx1ZSkKQEAgLTg0LDQ1ICsxMzcsNDcgQEAg
Ym9vbCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6Z2V0UGx1Z2luSW5mb0ZvckxvYWRlZFBsdWdpbihS
YXdQbHVnaW5NZXRhRGF0YSYgbWV0YUQKICAgICBjaGFyKiBidWZmZXI7CiAgICAgTlBFcnJvciBl
cnJvciA9IE5QUF9HZXRWYWx1ZSgwLCBOUFBWcGx1Z2luTmFtZVN0cmluZywgJmJ1ZmZlcik7CiAg
ICAgaWYgKGVycm9yID09IE5QRVJSX05PX0VSUk9SKQotICAgICAgICBtZXRhRGF0YS5uYW1lID0g
U3RyaW5nOjpmcm9tVVRGOChidWZmZXIpOworICAgICAgICBwbHVnaW4uaW5mby5uYW1lID0gU3Ry
aW5nOjpmcm9tVVRGOChidWZmZXIpOwogCiAgICAgZXJyb3IgPSBOUFBfR2V0VmFsdWUoMCwgTlBQ
VnBsdWdpbkRlc2NyaXB0aW9uU3RyaW5nLCAmYnVmZmVyKTsKICAgICBpZiAoZXJyb3IgPT0gTlBF
UlJfTk9fRVJST1IpCi0gICAgICAgIG1ldGFEYXRhLmRlc2NyaXB0aW9uID0gU3RyaW5nOjpmcm9t
VVRGOChidWZmZXIpOworICAgICAgICBwbHVnaW4uaW5mby5kZXNjID0gU3RyaW5nOjpmcm9tVVRG
OChidWZmZXIpOwogCiAgICAgU3RyaW5nIG1pbWVEZXNjcmlwdGlvbiA9IFN0cmluZzo6ZnJvbVVU
RjgoTlBfR2V0TUlNRURlc2NyaXB0aW9uKCkpOwogICAgIGlmIChtaW1lRGVzY3JpcHRpb24uaXNO
dWxsKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIG1ldGFEYXRhLm1pbWVEZXNjcmlw
dGlvbiA9IG1pbWVEZXNjcmlwdGlvbjsKKyAgICBzZXRNSU1FRGVzY3JpcHRpb24obWltZURlc2Ny
aXB0aW9uLCBwbHVnaW4pOwogCiAgICAgcmV0dXJuIHRydWU7CiB9Ci0KIGJvb2wgTmV0c2NhcGVQ
bHVnaW5Nb2R1bGU6OmdldFBsdWdpbkluZm8oY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoLCBQbHVn
aW5Nb2R1bGVJbmZvJiBwbHVnaW4pCiB7Ci0gICAgUmF3UGx1Z2luTWV0YURhdGEgbWV0YURhdGE7
Ci0gICAgaWYgKCFQbHVnaW5Qcm9jZXNzUHJveHk6OnNjYW5QbHVnaW4ocGx1Z2luUGF0aCwgbWV0
YURhdGEpKQorICAgIC8vIFRlbXBhcmFyaWx5IHN1cHByZXNzIHN0ZG91dCBpbiB0aGlzIGZ1bmN0
aW9uIGFzIHBsdWdpbnMgd2lsbCBiZSBsb2FkZWQgYW5kIHNodXRkb3duIGFuZCBkZWJ1ZyBpbmZv
CisgICAgLy8gaXMgbGVha2VkIHRvIGxheW91dCB0ZXN0IG91dHB1dC4KKyAgICBTdGRvdXREZXZO
dWxsUmVkaXJlY3RvciBzdGRvdXREZXZOdWxsUmVkaXJlY3RvcjsKKworICAgIC8vIFdlIGFyZSBs
b2FkaW5nIHRoZSBwbHVnaW4gaGVyZSBzaW5jZSBpdCBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgc3Rh
bmRhcmRpemVkIHdheSB0bworICAgIC8vIGdldCB0aGUgbmVlZGVkIGluZm9ybWF0aW9ucyBmcm9t
IGEgVU5JWCBwbHVnaW4gd2l0aG91dCBsb2FkaW5nIGl0LgorICAgIFJlZlB0cjxOZXRzY2FwZVBs
dWdpbk1vZHVsZT4gcGx1Z2luTW9kdWxlID0gTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmdldE9yQ3Jl
YXRlKHBsdWdpblBhdGgpOworICAgIGlmICghcGx1Z2luTW9kdWxlKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICBwbHVnaW4ucGF0aCA9IHBsdWdpblBhdGg7Ci0gICAgcGx1Z2luLmluZm8u
ZmlsZSA9IHBhdGhHZXRGaWxlTmFtZShwbHVnaW5QYXRoKTsKLSAgICBwbHVnaW4uaW5mby5uYW1l
ID0gbWV0YURhdGEubmFtZTsKLSAgICBwbHVnaW4uaW5mby5kZXNjID0gbWV0YURhdGEuZGVzY3Jp
cHRpb247Ci0gICAgcGFyc2VNSU1FRGVzY3JpcHRpb24obWV0YURhdGEubWltZURlc2NyaXB0aW9u
LCBwbHVnaW4uaW5mby5taW1lcyk7CisgICAgcGx1Z2luTW9kdWxlLT5pbmNyZW1lbnRMb2FkQ291
bnQoKTsKKyAgICBib29sIHJldHVyblZhbHVlID0gcGx1Z2luTW9kdWxlLT5nZXRQbHVnaW5JbmZv
Rm9yTG9hZGVkUGx1Z2luKHBsdWdpbik7CisgICAgcGx1Z2luTW9kdWxlLT5kZWNyZW1lbnRMb2Fk
Q291bnQoKTsKIAotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiByZXR1cm5WYWx1ZTsKIH0K
IAogdm9pZCBOZXRzY2FwZVBsdWdpbk1vZHVsZTo6ZGV0ZXJtaW5lUXVpcmtzKCkKIHsKICNpZiBD
UFUoWDg2XzY0KQotICAgIFJhd1BsdWdpbk1ldGFEYXRhIG1ldGFEYXRhOwotICAgIGlmICghZ2V0
UGx1Z2luSW5mb0ZvckxvYWRlZFBsdWdpbihtZXRhRGF0YSkpCisgICAgUGx1Z2luTW9kdWxlSW5m
byBwbHVnaW47CisgICAgaWYgKCFnZXRQbHVnaW5JbmZvRm9yTG9hZGVkUGx1Z2luKHBsdWdpbikp
CiAgICAgICAgIHJldHVybjsKIAotICAgIFZlY3RvcjxNaW1lQ2xhc3NJbmZvPiBtaW1lVHlwZXM7
Ci0gICAgcGFyc2VNSU1FRGVzY3JpcHRpb24obWV0YURhdGEubWltZURlc2NyaXB0aW9uLCBtaW1l
VHlwZXMpOworICAgIFZlY3RvcjxNaW1lQ2xhc3NJbmZvPiBtaW1lVHlwZXMgPSBwbHVnaW4uaW5m
by5taW1lczsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG1pbWVUeXBlcy5zaXplKCk7ICsr
aSkgewogICAgICAgICBpZiAobWltZVR5cGVzW2ldLnR5cGUgPT0gImFwcGxpY2F0aW9uL3gtc2hv
Y2t3YXZlLWZsYXNoIikgewogICAgICAgICAgICAgbV9wbHVnaW5RdWlya3MuYWRkKFBsdWdpblF1
aXJrczo6SWdub3JlUmlnaHRDbGlja0luV2luZG93bGVzc01vZGUpOwpAQCAtMTMyLDY1ICsxODcs
NiBAQCB2b2lkIE5ldHNjYXBlUGx1Z2luTW9kdWxlOjpkZXRlcm1pbmVRdWlya3MoKQogI2VuZGlm
CiB9CiAKLXN0YXRpYyBTdHJpbmcgdHJ1bmNhdGVUb1NpbmdsZUxpbmUoY29uc3QgU3RyaW5nJiBz
dHJpbmcpCi17Ci0gICAgQVNTRVJUX0FSRyhzdHJpbmcsICFzdHJpbmcuaXM4Qml0KCkpOwotCi0g
ICAgdW5zaWduZWQgb2xkTGVuZ3RoID0gc3RyaW5nLmxlbmd0aCgpOwotICAgIFVDaGFyKiBidWZm
ZXI7Ci0gICAgU3RyaW5nIHN0cmluZ0J1ZmZlcihTdHJpbmdJbXBsOjpjcmVhdGVVbmluaXRpYWxp
emVkKG9sZExlbmd0aCArIDEsIGJ1ZmZlcikpOwotCi0gICAgdW5zaWduZWQgbmV3TGVuZ3RoID0g
MDsKLSAgICBmb3IgKGNvbnN0IFVDaGFyKiBjID0gc3RyaW5nLmNoYXJhY3RlcnMxNigpOyBjIDwg
c3RyaW5nLmNoYXJhY3RlcnMxNigpICsgb2xkTGVuZ3RoOyArK2MpIHsKLSAgICAgICAgaWYgKCpj
ICE9IFVDaGFyKCdcbicpKQotICAgICAgICAgICAgYnVmZmVyW25ld0xlbmd0aCsrXSA9ICpjOwot
ICAgIH0KLSAgICBidWZmZXJbbmV3TGVuZ3RoKytdID0gVUNoYXIoJ1xuJyk7Ci0KLSAgICBpZiAo
bmV3TGVuZ3RoID09IG9sZExlbmd0aCArIDEpCi0gICAgICAgIHJldHVybiBzdHJpbmdCdWZmZXI7
Ci0gICAgcmV0dXJuIFN0cmluZyhzdHJpbmdCdWZmZXIuY2hhcmFjdGVyczE2KCksIG5ld0xlbmd0
aCk7Ci19Ci0KLWJvb2wgTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OnNjYW5QbHVnaW4oY29uc3QgU3Ry
aW5nJiBwbHVnaW5QYXRoKQotewotICAgIC8vIFdlIGFyZSBsb2FkaW5nIHRoZSBwbHVnaW4gaGVy
ZSBzaW5jZSBpdCBkb2VzIG5vdCBzZWVtIHRvIGJlIGEgc3RhbmRhcmRpemVkIHdheSB0bwotICAg
IC8vIGdldCB0aGUgbmVlZGVkIGluZm9ybWF0aW9ucyBmcm9tIGEgVU5JWCBwbHVnaW4gd2l0aG91
dCBsb2FkaW5nIGl0LgotICAgIFJlZlB0cjxOZXRzY2FwZVBsdWdpbk1vZHVsZT4gcGx1Z2luTW9k
dWxlID0gTmV0c2NhcGVQbHVnaW5Nb2R1bGU6OmdldE9yQ3JlYXRlKHBsdWdpblBhdGgpOwotICAg
IGlmICghcGx1Z2luTW9kdWxlKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBwbHVnaW5N
b2R1bGUtPmluY3JlbWVudExvYWRDb3VudCgpOwotICAgIFJhd1BsdWdpbk1ldGFEYXRhIG1ldGFE
YXRhOwotICAgIGJvb2wgc3VjY2VzcyA9IHBsdWdpbk1vZHVsZS0+Z2V0UGx1Z2luSW5mb0Zvckxv
YWRlZFBsdWdpbihtZXRhRGF0YSk7Ci0gICAgcGx1Z2luTW9kdWxlLT5kZWNyZW1lbnRMb2FkQ291
bnQoKTsKLQotICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
Ly8gV3JpdGUgZGF0YSB0byBzdGFuZGFyZCBvdXRwdXQgZm9yIHRoZSBVSSBwcm9jZXNzLgotICAg
IFN0cmluZyBvdXRwdXRbM10gPSB7Ci0gICAgICAgIHRydW5jYXRlVG9TaW5nbGVMaW5lKG1ldGFE
YXRhLm5hbWUpLAotICAgICAgICB0cnVuY2F0ZVRvU2luZ2xlTGluZShtZXRhRGF0YS5kZXNjcmlw
dGlvbiksCi0gICAgICAgIHRydW5jYXRlVG9TaW5nbGVMaW5lKG1ldGFEYXRhLm1pbWVEZXNjcmlw
dGlvbikKLSAgICB9OwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAzOyArK2kpIHsKLSAg
ICAgICAgY29uc3QgU3RyaW5nJiBsaW5lID0gb3V0cHV0W2ldOwotICAgICAgICBjb25zdCBjaGFy
KiBjdXJyZW50ID0gcmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4obGluZS5jaGFyYWN0ZXJz
MTYoKSk7Ci0gICAgICAgIGNvbnN0IGNoYXIqIGVuZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
Y2hhcio+KGxpbmUuY2hhcmFjdGVyczE2KCkpICsgKGxpbmUubGVuZ3RoKCkgKiBzaXplb2YoVUNo
YXIpKTsKLSAgICAgICAgd2hpbGUgKGN1cnJlbnQgPCBlbmQpIHsKLSAgICAgICAgICAgIGludCBy
ZXN1bHQ7Ci0gICAgICAgICAgICB3aGlsZSAoKHJlc3VsdCA9IGZwdXRjKCpjdXJyZW50LCBzdGRv
dXQpKSA9PSBFT0YgJiYgZXJybm8gPT0gRUlOVFIpIHsgfQotICAgICAgICAgICAgQVNTRVJUKHJl
c3VsdCAhPSBFT0YpOwotICAgICAgICAgICAgKytjdXJyZW50OwotICAgICAgICB9Ci0gICAgfQot
Ci0gICAgZmZsdXNoKHN0ZG91dCk7Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTFVHSU5fQVJDSElURUNUVVJFKFgxMSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaCBiL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGguaApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNWZiZjMyMDE4MTEwNTVlMzg0YWJlZGI2ZDNkZDVkYWYxYzdiNzRk
ZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgKKysrIC9kZXYvbnVsbApAQCAt
MSwzOCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEyIFVuaXZlcnNpdHkgb2YgU3pl
Z2VkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgVU5JVkVSU0lUWSBPRiBTWkVHRUQgYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBVTklWRVJTSVRZIE9GIFNaRUdFRCBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZT
dHJpbmcuaD4KLQotI2lmbmRlZiBQcm9jZXNzRXhlY3V0YWJsZVBhdGhfaAotI2RlZmluZSBQcm9j
ZXNzRXhlY3V0YWJsZVBhdGhfaAotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotU3RyaW5nIGV4ZWN1
dGFibGVQYXRoT2ZXZWJQcm9jZXNzKCk7Ci1TdHJpbmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdpblBy
b2Nlc3MoKTsKLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9ndGsvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9ndGsvUHJvY2Vzc0V4ZWN1dGFibGVQYXRoR3RrLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNWUxNTAyOWMzNzIwYTNhMzA1NDYwNDE0MTJhZWNlNjg2MGVjYTliYS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvZ3RrL1Byb2Nlc3NFeGVjdXRhYmxlUGF0aEd0ay5jcHAKKysrIC9kZXYvbnVsbApAQCAt
MSw3OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KLSAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMjAxMCBNb3Rvcm9sYSBN
b2JpbGl0eSwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIE1PVE9ST0xBIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIE1PVE9ST0xBIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlByb2Nlc3NFeGVjdXRhYmxlUGF0aC5oIgotCi0j
aW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+Ci0jaW5jbHVkZSA8Z2xpYi5oPgotI2luY2x1
ZGUgPHd0Zi9nb2JqZWN0L0dsaWJVdGlsaXRpZXMuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jb25zdCBjaGFyKiBnV2ViS2l0V2ViUHJvY2Vz
c05hbWUgPSAiV2ViS2l0V2ViUHJvY2VzcyI7Ci1jb25zdCBjaGFyKiBnV2ViS2l0UGx1Z2luUHJv
Y2Vzc05hbWUgPSAiV2ViS2l0UGx1Z2luUHJvY2VzcyI7Ci0KLXN0YXRpYyBTdHJpbmcgZmluZFdl
YktpdFByb2Nlc3MoY29uc3QgY2hhciogcHJvY2Vzc05hbWUpCi17Ci0gICAgY29uc3QgY2hhciog
ZXhlY0RpcmVjdG9yeSA9IGdfZ2V0ZW52KCJXRUJLSVRfRVhFQ19QQVRIIik7Ci0gICAgaWYgKGV4
ZWNEaXJlY3RvcnkpIHsKLSAgICAgICAgU3RyaW5nIHByb2Nlc3NQYXRoID0gcGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KGZpbGVuYW1lVG9TdHJpbmcoZXhlY0RpcmVjdG9yeSksIHByb2Nlc3NOYW1l
KTsKLSAgICAgICAgaWYgKGZpbGVFeGlzdHMocHJvY2Vzc1BhdGgpKQotICAgICAgICAgICAgcmV0
dXJuIHByb2Nlc3NQYXRoOwotICAgIH0KLQotICAgIHN0YXRpYyBib29sIGdvdEV4ZWN1dGFibGVQ
YXRoID0gZmFsc2U7Ci0gICAgc3RhdGljIFN0cmluZyBleGVjdXRhYmxlUGF0aDsKLSAgICBpZiAo
IWdvdEV4ZWN1dGFibGVQYXRoKSB7Ci0gICAgICAgIGdvdEV4ZWN1dGFibGVQYXRoID0gdHJ1ZTsK
LQotICAgICAgICBDU3RyaW5nIGV4ZWN1dGFibGVGaWxlID0gZ2V0Q3VycmVudEV4ZWN1dGFibGVQ
YXRoKCk7Ci0gICAgICAgIGlmICghZXhlY3V0YWJsZUZpbGUuaXNOdWxsKCkpCi0gICAgICAgICAg
ICBleGVjdXRhYmxlUGF0aCA9IGRpcmVjdG9yeU5hbWUoZmlsZW5hbWVUb1N0cmluZyhleGVjdXRh
YmxlRmlsZS5kYXRhKCkpKTsKLSAgICB9Ci0KLSAgICBpZiAoIWV4ZWN1dGFibGVQYXRoLmlzTnVs
bCgpKSB7Ci0gICAgICAgIFN0cmluZyBwcm9jZXNzUGF0aCA9IHBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChleGVjdXRhYmxlUGF0aCwgcHJvY2Vzc05hbWUpOwotICAgICAgICBpZiAoZmlsZUV4aXN0
cyhwcm9jZXNzUGF0aCkpCi0gICAgICAgICAgICByZXR1cm4gcHJvY2Vzc1BhdGg7Ci0gICAgfQot
Ci0gICAgcmV0dXJuIHBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChmaWxlbmFtZVRvU3RyaW5nKExJ
QkVYRUNESVIpLCBwcm9jZXNzTmFtZSk7Ci19Ci0KLVN0cmluZyBleGVjdXRhYmxlUGF0aE9mV2Vi
UHJvY2VzcygpCi17Ci0gICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKGdXZWJLaXRXZWJQcm9j
ZXNzTmFtZSk7Ci19Ci0KLVN0cmluZyBleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2VzcygpCi17
Ci0gICAgcmV0dXJuIGZpbmRXZWJLaXRQcm9jZXNzKGdXZWJLaXRQbHVnaW5Qcm9jZXNzTmFtZSk7
Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL3F0L1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9xdC9Qcm9jZXNzRXhlY3V0YWJsZVBhdGhRdC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDRiNGY4MjQ5YWRlMTA1ZjFiYzBmODIwZmE5MmE1MzU2NDdlOTFiNjMuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL3F0L1Byb2Nlc3NFeGVjdXRhYmxlUGF0aFF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0x
LDU0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFu
ZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
LSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0g
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgiCi0KLSNpbmNsdWRlIDxRQ29yZUFw
cGxpY2F0aW9uPgotI2luY2x1ZGUgPFFEaXI+Ci0jaW5jbHVkZSA8UUZpbGU+Ci0KLW5hbWVzcGFj
ZSBXZWJLaXQgewotCi1zdGF0aWMgU3RyaW5nIGV4ZWN1dGFibGVQYXRoKFFMYXRpbjFTdHJpbmcg
YmFzZU5hbWUpCi17Ci0gICAgUVN0cmluZyBleHBlY3RlZFBhdGggPSBRQ29yZUFwcGxpY2F0aW9u
OjphcHBsaWNhdGlvbkRpclBhdGgoKSArIFFEaXI6OnNlcGFyYXRvcigpICsgYmFzZU5hbWU7Ci0g
ICAgaWYgKFFGaWxlOjpleGlzdHMoZXhwZWN0ZWRQYXRoKSkKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZyhleHBlY3RlZFBhdGgpOwotICAgIHJldHVybiBTdHJpbmcoUVN0cmluZyhiYXNlTmFtZSkpOwot
fQotCi1TdHJpbmcgZXhlY3V0YWJsZVBhdGhPZldlYlByb2Nlc3MoKQotewotICAgIHJldHVybiBl
eGVjdXRhYmxlUGF0aChRU3RyaW5nTGl0ZXJhbCgiUXRXZWJQcm9jZXNzIikpOwotfQotCi1TdHJp
bmcgZXhlY3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKQotewotICAgIHJldHVybiBleGVjdXRh
YmxlUGF0aChRU3RyaW5nTGl0ZXJhbCgiUXRXZWJQbHVnaW5Qcm9jZXNzIikpOwotfQotCi19IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9T
aGFyZWFibGVCaXRtYXBRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvcXQvU2hhcmVhYmxl
Qml0bWFwUXQuY3BwCmluZGV4IDc3OGJjZmNjMWNkMmMzZDI1OTBjYjhmZjM0MWYwOGRjOTg3OTBj
ZGYuLjBjOGJlMDcyYTQ2MmQ2M2ZjMDYyNzA4YzAxZWM1YTZmYzIxZmVkM2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9xdC9TaGFyZWFibGVCaXRtYXBRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL3F0L1NoYXJlYWJsZUJpdG1hcFF0LmNwcApAQCAtMjgsNyArMjgs
NiBAQAogCiAjaW5jbHVkZSA8UUltYWdlPgogI2luY2x1ZGUgPFFQYWludGVyPgotI2luY2x1ZGUg
PFF0R2xvYmFsPgogI2luY2x1ZGUgPFdlYkNvcmUvQml0bWFwSW1hZ2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0dyYXBoaWNzQ29udGV4dC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50
ZWQuaD4KQEAgLTcyLDEzICs3MSw4IEBAIHZvaWQgU2hhcmVhYmxlQml0bWFwOjpwYWludChHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEludFBvaW50JiBkc3RQb2ludCwKICAgICBwYWlu
dGVyLT5kcmF3SW1hZ2UoZHN0UG9pbnQsIGltYWdlLCBRUmVjdChzcmNSZWN0KSk7CiB9CiAKLXZv
aWQgU2hhcmVhYmxlQml0bWFwOjpwYWludChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGZsb2F0
IHNjYWxlRmFjdG9yLCBjb25zdCBJbnRQb2ludCYgZHN0UG9pbnQsIGNvbnN0IEludFJlY3QmIHNy
Y1JlY3QpCit2b2lkIFNoYXJlYWJsZUJpdG1hcDo6cGFpbnQoR3JhcGhpY3NDb250ZXh0JiAvKmNv
bnRleHQqLywgZmxvYXQgLypzY2FsZUZhY3RvciovLCBjb25zdCBJbnRQb2ludCYgLypkc3RQb2lu
dCovLCBjb25zdCBJbnRSZWN0JiAvKnNyY1JlY3QqLykKIHsKLSAgICBpZiAocUZ1enp5Q29tcGFy
ZShzY2FsZUZhY3RvciwgMSkpIHsKLSAgICAgICAgcGFpbnQoY29udGV4dCwgZHN0UG9pbnQsIHNy
Y1JlY3QpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCiAgICAgLy8gU2VlIDxodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ2NjM+LgogICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpIGIvU291cmNlL1dl
YktpdDIvVGFyZ2V0LnByaQppbmRleCAwNzQ5NzM4M2VjZDY2N2ZiMTY1MGZjMWEyZTA2NDI1NWY3
NzkzODUzLi4xNmZiYWQ0YTNjM2Y0OWRjN2I3ODU5N2Q4YjQxNzQwYmJmNmUwY2E0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9UYXJnZXQucHJpCisrKyBiL1NvdXJjZS9XZWJLaXQyL1Rhcmdl
dC5wcmkKQEAgLTM0LDcgKzM0LDYgQEAgSEVBREVSUyArPSBcCiAgICAgUGxhdGZvcm0vU2hhcmVk
TWVtb3J5LmggXAogICAgIFBsYXRmb3JtL1dvcmtRdWV1ZS5oIFwKICAgICBQbHVnaW5Qcm9jZXNz
L1BsdWdpbkNvbnRyb2xsZXJQcm94eS5oIFwKLSAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpbkNyZWF0
aW9uUGFyYW1ldGVycy5oIFwKICAgICBQbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaCBcCiAg
ICAgUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5oIFwKICAgICBTaGFyZWQvQVBJ
L2MvV0tCYXNlLmggXApAQCAtODIsNyArODEsNiBAQCBIRUFERVJTICs9IFwKICAgICBTaGFyZWQv
T3JpZ2luQW5kRGF0YWJhc2VzLmggXAogICAgIFNoYXJlZC9QbGF0Zm9ybVBvcHVwTWVudURhdGEu
aCBcCiAgICAgU2hhcmVkL1ByaW50SW5mby5oIFwKLSAgICBTaGFyZWQvUHJvY2Vzc0V4ZWN1dGFi
bGVQYXRoLmggXAogICAgIFNoYXJlZC9TYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIFwKICAg
ICBTaGFyZWQvU2VjdXJpdHlPcmlnaW5EYXRhLmggXAogICAgIFNoYXJlZC9TZXNzaW9uU3RhdGUu
aCBcCkBAIC0zODQsNyArMzgyLDYgQEAgU09VUkNFUyArPSBcCiAgICAgUGxhdGZvcm0vV29ya1F1
ZXVlLmNwcCBcCiAgICAgUGxhdGZvcm0vcXQvTW9kdWxlUXQuY3BwIFwKICAgICBQbHVnaW5Qcm9j
ZXNzL1BsdWdpbkNvbnRyb2xsZXJQcm94eS5jcHAgXAotICAgIFBsdWdpblByb2Nlc3MvUGx1Z2lu
Q3JlYXRpb25QYXJhbWV0ZXJzLmNwcCBcCiAgICAgUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
LmNwcCBcCiAgICAgUGx1Z2luUHJvY2Vzcy9XZWJQcm9jZXNzQ29ubmVjdGlvbi5jcHAgXAogICAg
IFBsdWdpblByb2Nlc3MvcXQvUGx1Z2luQ29udHJvbGxlclByb3h5UXQuY3BwIFwKQEAgLTQ3Nyw3
ICs0NzQsNiBAQCBTT1VSQ0VTICs9IFwKICAgICBTaGFyZWQvcXQvTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudFF0LmNwcCBcCiAgICAgU2hhcmVkL3F0L05hdGl2ZVdlYk1vdXNlRXZlbnRRdC5jcHAgXAog
ICAgIFNoYXJlZC9xdC9OYXRpdmVXZWJXaGVlbEV2ZW50UXQuY3BwIFwKLSAgICBTaGFyZWQvcXQv
UHJvY2Vzc0V4ZWN1dGFibGVQYXRoUXQuY3BwIFwKICAgICBTaGFyZWQvcXQvV2ViQ29yZUFyZ3Vt
ZW50Q29kZXJzUXQuY3BwIFwKICAgICBTaGFyZWQvcXQvV2ViRXZlbnRGYWN0b3J5UXQuY3BwIFwK
ICAgICBTaGFyZWQvcXQvUXROZXR3b3JrUmVwbHlEYXRhLmNwcCBcCkBAIC03NzMsNyArNzY5LDYg
QEAgY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0dFT0xPQ0FUSU9OPTEpOiBRVCArPSBsb2NhdGlv
bgogCiBwbHVnaW5fYmFja2VuZF94bGliIHsKICAgICBERUZJTkVTICs9IFhQX1VOSVgKLSAgICBQ
S0dDT05GSUcgKz0geDExCiB9CiAKIGluY2x1ZGUoRGVyaXZlZFNvdXJjZXMucHJpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5oCmlu
ZGV4IGJjMWY4NjdmM2MyOTE1NTIzNjMwYzY3NjExZjA1Y2U5NzNkZWQ1M2IuLjA5YzU1ODlmMzg4
ODE1MGU1OTFjYjlmM2UwNzEzODQ1NDJjNzk3MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmgKQEAgLTY4LDYgKzY4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCiAgICAgc3RhdGljIGJvb2wgZ2V0UHJv
Y2Vzc1R5cGVGcm9tU3RyaW5nKGNvbnN0IGNoYXIqLCBQcm9jZXNzVHlwZSYpOworCiBwcml2YXRl
OgogICAgIFByb2Nlc3NMYXVuY2hlcihDbGllbnQqLCBjb25zdCBMYXVuY2hPcHRpb25zJiBsYXVu
Y2hPcHRpb25zKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5j
aGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0xhdW5jaGVyL2d0ay9Qcm9jZXNzTGF1bmNoZXJHdGsuY3BwCmluZGV4IDhmYjYxOWVjZDQ2YjY3
N2NmNTRhM2NkODQ3NDRiNmZjNjM1MzQxNmMuLjk0Y2FkNWZjNDQ4MjBkYTE5OGRhODcxY2NiZDZm
YTQ3ZTQzODliMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hl
ci9ndGsvUHJvY2Vzc0xhdW5jaGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvZ3RrL1Byb2Nlc3NMYXVuY2hlckd0ay5jcHAKQEAgLTI4LDcgKzI4LDYgQEAK
ICNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIuaCIKIAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIK
LSNpbmNsdWRlICJQcm9jZXNzRXhlY3V0YWJsZVBhdGguaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zp
bGVTeXN0ZW0uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlSGFuZGxlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9SdW5Mb29wLmg+CkBAIC01Myw2ICs1Miw5IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY29uc3QgY2hhciogZ1dlYktpdFdlYlBy
b2Nlc3NOYW1lID0gIldlYktpdFdlYlByb2Nlc3MiOworY29uc3QgY2hhciogZ1dlYktpdFBsdWdp
blByb2Nlc3NOYW1lID0gIldlYktpdFBsdWdpblByb2Nlc3MiOworCiBzdGF0aWMgdm9pZCBjaGls
ZFNldHVwRnVuY3Rpb24oZ3BvaW50ZXIgdXNlckRhdGEpCiB7CiAgICAgaW50IHNvY2tldCA9IEdQ
T0lOVEVSX1RPX0lOVCh1c2VyRGF0YSk7CkBAIC03NSw2ICs3NywzNCBAQCBzdGF0aWMgdm9pZCBj
aGlsZEZpbmlzaGVkRnVuY3Rpb24oR1BpZCwgZ2ludCBzdGF0dXMsIGdwb2ludGVyIHVzZXJEYXRh
KQogICAgIGNsb3NlKEdQT0lOVEVSX1RPX0lOVCh1c2VyRGF0YSkpOwogfQogCitzdGF0aWMgQ1N0
cmluZyBmaW5kV2ViS2l0UHJvY2Vzcyhjb25zdCBjaGFyKiBwcm9jZXNzTmFtZSkKK3sKKyAgICBj
b25zdCBjaGFyKiBleGVjRGlyZWN0b3J5ID0gZ19nZXRlbnYoIldFQktJVF9FWEVDX1BBVEgiKTsK
KyAgICBpZiAoZXhlY0RpcmVjdG9yeSkgeworICAgICAgICBTdHJpbmcgcHJvY2Vzc1BhdGggPSBw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZmlsZW5hbWVUb1N0cmluZyhleGVjRGlyZWN0b3J5KSwg
cHJvY2Vzc05hbWUpOworICAgICAgICBpZiAoZmlsZUV4aXN0cyhwcm9jZXNzUGF0aCkpCisgICAg
ICAgICAgICByZXR1cm4gZmlsZVN5c3RlbVJlcHJlc2VudGF0aW9uKHByb2Nlc3NQYXRoKTsKKyAg
ICB9CisKKyAgICBzdGF0aWMgYm9vbCBnb3RFeGVjdXRhYmxlUGF0aCA9IGZhbHNlOworICAgIHN0
YXRpYyBTdHJpbmcgZXhlY3V0YWJsZVBhdGg7CisgICAgaWYgKCFnb3RFeGVjdXRhYmxlUGF0aCkg
eworICAgICAgICBnb3RFeGVjdXRhYmxlUGF0aCA9IHRydWU7CisKKyAgICAgICAgQ1N0cmluZyBl
eGVjdXRhYmxlRmlsZSA9IGdldEN1cnJlbnRFeGVjdXRhYmxlUGF0aCgpOworICAgICAgICBpZiAo
IWV4ZWN1dGFibGVGaWxlLmlzTnVsbCgpKQorICAgICAgICAgICAgZXhlY3V0YWJsZVBhdGggPSBk
aXJlY3RvcnlOYW1lKGZpbGVuYW1lVG9TdHJpbmcoZXhlY3V0YWJsZUZpbGUuZGF0YSgpKSk7Cisg
ICAgfQorCisgICAgaWYgKCFleGVjdXRhYmxlUGF0aC5pc051bGwoKSkgeworICAgICAgICBTdHJp
bmcgcHJvY2Vzc1BhdGggPSBwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZXhlY3V0YWJsZVBhdGgs
IHByb2Nlc3NOYW1lKTsKKyAgICAgICAgaWYgKGZpbGVFeGlzdHMocHJvY2Vzc1BhdGgpKQorICAg
ICAgICAgICAgcmV0dXJuIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwcm9jZXNzUGF0aCk7Cisg
ICAgfQorCisgICAgcmV0dXJuIGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbihwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQoZmlsZW5hbWVUb1N0cmluZyhMSUJFWEVDRElSKSwgcHJvY2Vzc05hbWUpKTsK
K30KKwogdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogewogICAgIEdQaWQg
cGlkID0gMDsKQEAgLTg2LDkgKzExNiw3IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVyOjpsYXVuY2hQ
cm9jZXNzKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFN0cmluZyBleGVjdXRhYmxl
UGF0aCA9IG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBXZWJQcm9jZXNzID8KLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlUGF0aE9mV2ViUHJvY2VzcygpIDogZXhl
Y3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKTsKLSAgICBDU3RyaW5nIGJpbmFyeVBhdGggPSBm
aWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBhdGgpOworICAgIENTdHJpbmcgYmlu
YXJ5UGF0aCA9IGZpbmRXZWJLaXRQcm9jZXNzKG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9
PSBQcm9jZXNzTGF1bmNoZXI6OldlYlByb2Nlc3MgPyBnV2ViS2l0V2ViUHJvY2Vzc05hbWUgOiBn
V2ViS2l0UGx1Z2luUHJvY2Vzc05hbWUpOwogICAgIEdPd25QdHI8Z2NoYXI+IHNvY2tldChnX3N0
cmR1cF9wcmludGYoIiVkIiwgc29ja2V0c1swXSkpOwogICAgIGNoYXIqIGFyZ3ZbM107CiAgICAg
YXJndlswXSA9IGNvbnN0X2Nhc3Q8Y2hhcio+KGJpbmFyeVBhdGguZGF0YSgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJR
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvcXQvUHJvY2Vzc0xhdW5j
aGVyUXQuY3BwCmluZGV4IGM1YzNmNzE0NWRlNmM4OTFjNDVhMmQ1NjYwMDA4MjQ5MGE4NzVmZDEu
LjhlODI2MjA2MzY3ZWVkOGViMWMyNWNlMmY0YjQ1NjRiMDhmNzRhMDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9xdC9Qcm9jZXNzTGF1bmNoZXJRdC5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0xhdW5jaGVyL3F0L1Byb2Nlc3NMYXVuY2hl
clF0LmNwcApAQCAtMjgsOSArMjgsMTAgQEAKICNpbmNsdWRlICJQcm9jZXNzTGF1bmNoZXIuaCIK
IAogI2luY2x1ZGUgIkNvbm5lY3Rpb24uaCIKLSNpbmNsdWRlICJQcm9jZXNzRXhlY3V0YWJsZVBh
dGguaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlv
bj4KICNpbmNsdWRlIDxRRGVidWc+CisjaW5jbHVkZSA8UUZpbGU+CiAjaW5jbHVkZSA8UUxvY2Fs
U2VydmVyPgogI2luY2x1ZGUgPFFNZXRhVHlwZT4KICNpbmNsdWRlIDxRUHJvY2Vzcz4KQEAgLTEw
MSw5ICsxMDIsMTMgQEAgdm9pZCBRdFdlYlByb2Nlc3M6OnNldHVwQ2hpbGRQcm9jZXNzKCkKIAog
dm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogewotICAgIFFTdHJpbmcgY29t
bWFuZExpbmUgPSBRTGF0aW4xU3RyaW5nKCIlMSAlMiIpOwotICAgIGNvbW1hbmRMaW5lID0gY29t
bWFuZExpbmUuYXJnKG1fbGF1bmNoT3B0aW9ucy5wcm9jZXNzVHlwZSA9PSBXZWJQcm9jZXNzID8K
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGVjdXRhYmxlUGF0aE9mV2ViUHJv
Y2VzcygpIDogZXhlY3V0YWJsZVBhdGhPZlBsdWdpblByb2Nlc3MoKSk7CisgICAgUVN0cmluZyBh
cHBsaWNhdGlvblBhdGggPSBRTGF0aW4xU3RyaW5nKCIlMSAlMiIpOworCisgICAgaWYgKFFGaWxl
OjpleGlzdHMoUUNvcmVBcHBsaWNhdGlvbjo6YXBwbGljYXRpb25EaXJQYXRoKCkgKyBRTGF0aW4x
U3RyaW5nKCIvUXRXZWJQcm9jZXNzIikpKSB7CisgICAgICAgIGFwcGxpY2F0aW9uUGF0aCA9IGFw
cGxpY2F0aW9uUGF0aC5hcmcoUUNvcmVBcHBsaWNhdGlvbjo6YXBwbGljYXRpb25EaXJQYXRoKCkg
KyBRTGF0aW4xU3RyaW5nKCIvUXRXZWJQcm9jZXNzIikpOworICAgIH0gZWxzZSB7CisgICAgICAg
IGFwcGxpY2F0aW9uUGF0aCA9IGFwcGxpY2F0aW9uUGF0aC5hcmcoUUxhdGluMVN0cmluZygiUXRX
ZWJQcm9jZXNzIikpOworICAgIH0KIAogI2lmIE9TKERBUldJTikKICAgICAvLyBDcmVhdGUgdGhl
IGxpc3RlbmluZyBwb3J0LgpAQCAtMTE5LDcgKzEyNCw3IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVy
OjpsYXVuY2hQcm9jZXNzKCkKICAgICBrZXJuX3JldHVybl90IGtyID0gYm9vdHN0cmFwX3JlZ2lz
dGVyMihib290c3RyYXBfcG9ydCwgY29uc3RfY2FzdDxjaGFyKj4oc2VydmljZU5hbWUudG9VdGY4
KCkuZGF0YSgpKSwgY29ubmVjdG9yLCAwKTsKICAgICBBU1NFUlRfVU5VU0VEKGtyLCBrciA9PSBL
RVJOX1NVQ0NFU1MpOwogCi0gICAgY29tbWFuZExpbmUgPSBjb21tYW5kTGluZS5hcmcoc2Vydmlj
ZU5hbWUpOworICAgIFFTdHJpbmcgcHJvZ3JhbShhcHBsaWNhdGlvblBhdGguYXJnKHNlcnZpY2VO
YW1lKSk7CiAjZWxzZQogICAgIGludCBzb2NrZXRzWzJdOwogICAgIGlmIChzb2NrZXRwYWlyKEFG
X1VOSVgsIFNPQ0tFVF9UWVBFLCAwLCBzb2NrZXRzKSA9PSAtMSkgewpAQCAtMTM5LDEyICsxNDQs
MTIgQEAgdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmxhdW5jaFByb2Nlc3MoKQogICAgIH0KIAogICAg
IGludCBjb25uZWN0b3IgPSBzb2NrZXRzWzFdOwotICAgIGNvbW1hbmRMaW5lID0gY29tbWFuZExp
bmUuYXJnKHNvY2tldHNbMF0pOworICAgIFFTdHJpbmcgcHJvZ3JhbShhcHBsaWNhdGlvblBhdGgu
YXJnKHNvY2tldHNbMF0pKTsKICNlbmRpZgogCiAgICAgUVByb2Nlc3MqIHdlYlByb2Nlc3MgPSBu
ZXcgUXRXZWJQcm9jZXNzKCk7CiAgICAgd2ViUHJvY2Vzcy0+c2V0UHJvY2Vzc0NoYW5uZWxNb2Rl
KFFQcm9jZXNzOjpGb3J3YXJkZWRDaGFubmVscyk7Ci0gICAgd2ViUHJvY2Vzcy0+c3RhcnQoY29t
bWFuZExpbmUpOworICAgIHdlYlByb2Nlc3MtPnN0YXJ0KHByb2dyYW0pOwogCiAjaWYgIU9TKERB
UldJTikKICAgICAvLyBEb24ndCBleHBvc2UgdGhlIHdlYiBzb2NrZXQgdG8gcG9zc2libGUgZnV0
dXJlIHdlYiBwcm9jZXNzZXMKQEAgLTE1OCw3ICsxNjMsNyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hl
cjo6bGF1bmNoUHJvY2VzcygpCiAjZW5kaWYKIAogICAgIGlmICghd2ViUHJvY2Vzcy0+d2FpdEZv
clN0YXJ0ZWQoKSkgewotICAgICAgICBxRGVidWcoKSA8PCAiRmFpbGVkIHRvIHN0YXJ0IiA8PCBj
b21tYW5kTGluZTsKKyAgICAgICAgcURlYnVnKCkgPDwgIkZhaWxlZCB0byBzdGFydCIgPDwgcHJv
Z3JhbTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAjaWYgT1MoREFSV0lOKQogICAg
ICAgICBtYWNoX3BvcnRfZGVhbGxvY2F0ZShtYWNoX3Rhc2tfc2VsZigpLCBjb25uZWN0b3IpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
UHJveHkuaAppbmRleCAwYTUxZDliMjdlNDFlMWQxMmIzMTg2YjdjMzkyODliMzRlMTVjZTQ1Li5l
NTA5ZTk3ZWIyZWNmNzM2MGVlMmU0YzlkYzllNDA5NmZkZTEwMGI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAt
NTIsMTQgKzUyLDYgQEAgY2xhc3MgV2ViUGx1Z2luU2l0ZURhdGFNYW5hZ2VyOwogY2xhc3MgV2Vi
UHJvY2Vzc1Byb3h5Owogc3RydWN0IFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnM7CiAK
LSNpZiBQTFVHSU5fQVJDSElURUNUVVJFKFgxMSkKLXN0cnVjdCBSYXdQbHVnaW5NZXRhRGF0YSB7
Ci0gICAgU3RyaW5nIG5hbWU7Ci0gICAgU3RyaW5nIGRlc2NyaXB0aW9uOwotICAgIFN0cmluZyBt
aW1lRGVzY3JpcHRpb247Ci19OwotI2VuZGlmCi0KIGNsYXNzIFBsdWdpblByb2Nlc3NQcm94eSA6
IHB1YmxpYyBSZWZDb3VudGVkPFBsdWdpblByb2Nlc3NQcm94eT4sIENvcmVJUEM6OkNvbm5lY3Rp
b246OkNsaWVudCwgUHJvY2Vzc0xhdW5jaGVyOjpDbGllbnQgewogcHVibGljOgogICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFBsdWdpblByb2Nlc3NQcm94eT4gY3JlYXRlKFBsdWdpblByb2Nlc3NNYW5h
Z2VyKiwgY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYpOwpAQCAtODgsMTAgKzgwLDYgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBib29sIGNyZWF0ZVByb3BlcnR5TGlzdEZpbGUoY29uc3QgUGx1Z2luTW9k
dWxlSW5mbyYpOwogI2VuZGlmCiAKLSNpZiBQTFVHSU5fQVJDSElURUNUVVJFKFgxMSkKLSAgICBz
dGF0aWMgYm9vbCBzY2FuUGx1Z2luKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgUmF3UGx1Z2lu
TWV0YURhdGEmIHJlc3VsdCk7Ci0jZW5kaWYKLQogcHJpdmF0ZToKICAgICBQbHVnaW5Qcm9jZXNz
UHJveHkoUGx1Z2luUHJvY2Vzc01hbmFnZXIqLCBjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJik7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL2d0ay9QbHVnaW5Q
cm9jZXNzUHJveHlHdGsuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvZ3Rr
L1BsdWdpblByb2Nlc3NQcm94eUd0ay5jcHAKaW5kZXggNjUzYzcyOTY1ZWI5MzI5NmZhN2RmYmRk
Yjk1NWQ2YjI4MDA4NzNjNi4uNGM4NTc3MmEyN2Y3YjcwNzJhZmY2YTExMzdjOTI3NDg4NWE4ZjY0
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvZ3RrL1BsdWdp
blByb2Nlc3NQcm94eUd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdp
bnMvZ3RrL1BsdWdpblByb2Nlc3NQcm94eUd0ay5jcHAKQEAgLTI5LDUxICsyOSwxMyBAQAogI2lm
IEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAogI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMuaCIKLSNpbmNsdWRlICJQcm9jZXNzRXhlY3V0YWJsZVBhdGguaCIKLSNpbmNs
dWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW0uaD4KLSNpbmNsdWRlIDxnbGliLmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgotI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgotCi11
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKyNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVk
Lmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi12b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6cGxh
dGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0
ZXJzJikKLXsKLX0KLQotYm9vbCBQbHVnaW5Qcm9jZXNzUHJveHk6OnNjYW5QbHVnaW4oY29uc3Qg
U3RyaW5nJiBwbHVnaW5QYXRoLCBSYXdQbHVnaW5NZXRhRGF0YSYgcmVzdWx0KQordm9pZCBQbHVn
aW5Qcm9jZXNzUHJveHk6OnBsYXRmb3JtSW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MoUGx1Z2luUHJv
Y2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKLSAgICBDU3RyaW5nIGJpbmFy
eVBhdGggPSBmaWxlU3lzdGVtUmVwcmVzZW50YXRpb24oZXhlY3V0YWJsZVBhdGhPZlBsdWdpblBy
b2Nlc3MoKSk7Ci0gICAgQ1N0cmluZyBwbHVnaW5QYXRoQ1N0cmluZyA9IGZpbGVTeXN0ZW1SZXBy
ZXNlbnRhdGlvbihwbHVnaW5QYXRoKTsKLSAgICBjaGFyKiBhcmd2WzRdOwotICAgIGFyZ3ZbMF0g
PSBjb25zdF9jYXN0PGNoYXIqPihiaW5hcnlQYXRoLmRhdGEoKSk7Ci0gICAgYXJndlsxXSA9IGNv
bnN0X2Nhc3Q8Y2hhcio+KCItc2NhblBsdWdpbiIpOwotICAgIGFyZ3ZbMl0gPSBjb25zdF9jYXN0
PGNoYXIqPihwbHVnaW5QYXRoQ1N0cmluZy5kYXRhKCkpOwotICAgIGFyZ3ZbM10gPSAwOwotCi0g
ICAgZ2ludCBzdGF0dXM7Ci0gICAgZ2NoYXIqIHN0ZE91dDsKLSAgICBpZiAoIWdfc3Bhd25fc3lu
YygwLCBhcmd2LCAwLCBHX1NQQVdOX1NUREVSUl9UT19ERVZfTlVMTCwgMCwgMCwgJnN0ZE91dCwg
MCwgJnN0YXR1cywgMCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIVdJRkVYSVRF
RChzdGF0dXMpIHx8IFdFWElUU1RBVFVTKHN0YXR1cykgIT0gRVhJVF9TVUNDRVNTKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICBjb25zdCB1bnNpZ25lZCBrTnVtTGluZXNFeHBlY3RlZCA9
IDM7Ci0gICAgU3RyaW5nIGxpbmVzW2tOdW1MaW5lc0V4cGVjdGVkXTsKLSAgICB1bnNpZ25lZCBs
aW5lSW5kZXggPSAwOwotICAgIGNvbnN0IFVDaGFyKiBjdXJyZW50ID0gcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBVQ2hhcio+KHN0ZE91dCk7Ci0gICAgd2hpbGUgKGxpbmVJbmRleCA8IGtOdW1MaW5l
c0V4cGVjdGVkKSB7Ci0gICAgICAgIGNvbnN0IFVDaGFyKiBzdGFydCA9IGN1cnJlbnQ7Ci0gICAg
ICAgIHdoaWxlICgqY3VycmVudCsrICE9IFVDaGFyKCdcbicpKSB7IH0KLSAgICAgICAgbGluZXNb
bGluZUluZGV4KytdID0gU3RyaW5nKHN0YXJ0LCBjdXJyZW50IC0gc3RhcnQgLSAxKTsKLSAgICB9
Ci0KLSAgICByZXN1bHQubmFtZS5zd2FwKGxpbmVzWzBdKTsKLSAgICByZXN1bHQuZGVzY3JpcHRp
b24uc3dhcChsaW5lc1sxXSk7Ci0gICAgcmVzdWx0Lm1pbWVEZXNjcmlwdGlvbi5zd2FwKGxpbmVz
WzJdKTsKLSAgICByZXR1cm4gIXJlc3VsdC5taW1lRGVzY3JpcHRpb24uaXNFbXB0eSgpOworICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvcXQvUGx1Z2luUHJvY2Vzc1Byb3h5
UXQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvcXQvUGx1Z2luUHJvY2Vz
c1Byb3h5UXQuY3BwCmluZGV4IDliN2YyYjJkZGEyZTc4YWZkM2E4N2YxNzIxNmRlMWJhYWNlNzM5
ZmMuLmNjNTIxZTBhZjlhNmEwNzQ0YzJkYzBlMDZmNjUxNGZjOTRiMzQ5ZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL3F0L1BsdWdpblByb2Nlc3NQcm94eVF0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9xdC9QbHVnaW5Qcm9j
ZXNzUHJveHlRdC5jcHAKQEAgLTI4LDUxICsyOCwxNCBAQAogCiAjaWYgRU5BQkxFKFBMVUdJTl9Q
Uk9DRVNTKQogCi0jaW5jbHVkZSAiUHJvY2Vzc0V4ZWN1dGFibGVQYXRoLmgiCi0jaW5jbHVkZSA8
UUJ5dGVBcnJheT4KLSNpbmNsdWRlIDxRQ29yZUFwcGxpY2F0aW9uPgotI2luY2x1ZGUgPFFEaXI+
Ci0jaW5jbHVkZSA8UUV2ZW50TG9vcD4KLSNpbmNsdWRlIDxRUHJvY2Vzcz4KLSNpbmNsdWRlIDxR
U3RyaW5nPgorI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci1jbGFzcyBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzOwotCi12b2lkIFBsdWdpblBy
b2Nlc3NQcm94eTo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9jZXNz
Q3JlYXRpb25QYXJhbWV0ZXJzJikKK3ZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUlu
aXRpYWxpemVQbHVnaW5Qcm9jZXNzKFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCiB7Ci19Ci0KLWJvb2wgUGx1Z2luUHJvY2Vzc1Byb3h5OjpzY2FuUGx1Z2luKGNv
bnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgUmF3UGx1Z2luTWV0YURhdGEmIHJlc3VsdCkKLXsKLSAg
ICBRU3RyaW5nIGNvbW1hbmRMaW5lID0gUUxhdGluMVN0cmluZygiJTEgJTIgJTMiKTsKLSAgICBj
b21tYW5kTGluZSA9IGNvbW1hbmRMaW5lLmFyZyhleGVjdXRhYmxlUGF0aE9mUGx1Z2luUHJvY2Vz
cygpKTsKLSAgICBjb21tYW5kTGluZSA9IGNvbW1hbmRMaW5lLmFyZyhRU3RyaW5nTGl0ZXJhbCgi
LXNjYW5QbHVnaW4iKSkuYXJnKHN0YXRpY19jYXN0PFFTdHJpbmc+KHBsdWdpblBhdGgpKTsKLQot
ICAgIFFQcm9jZXNzIHByb2Nlc3M7Ci0gICAgcHJvY2Vzcy5zZXRSZWFkQ2hhbm5lbChRUHJvY2Vz
czo6U3RhbmRhcmRPdXRwdXQpOwotICAgIHByb2Nlc3Muc3RhcnQoY29tbWFuZExpbmUpOwotCi0g
ICAgaWYgKCFwcm9jZXNzLndhaXRGb3JGaW5pc2hlZCgpCi0gICAgICAgIHx8IHByb2Nlc3MuZXhp
dFN0YXR1cygpICE9IFFQcm9jZXNzOjpOb3JtYWxFeGl0Ci0gICAgICAgIHx8IHByb2Nlc3MuZXhp
dENvZGUoKSAhPSBFWElUX1NVQ0NFU1MpIHsKLSAgICAgICAgcHJvY2Vzcy5raWxsKCk7Ci0gICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0KLSAgICBRQnl0ZUFycmF5IG91dHB1dEJ5dGVzID0g
cHJvY2Vzcy5yZWFkQWxsKCk7Ci0gICAgQVNTRVJUKCEob3V0cHV0Qnl0ZXMuc2l6ZSgpICUgc2l6
ZW9mKFVDaGFyKSkpOwotCi0gICAgU3RyaW5nIG91dHB1dChyZWludGVycHJldF9jYXN0PGNvbnN0
IFVDaGFyKj4ob3V0cHV0Qnl0ZXMuY29uc3REYXRhKCkpLCBvdXRwdXRCeXRlcy5zaXplKCkgLyBz
aXplb2YoVUNoYXIpKTsKLSAgICBWZWN0b3I8U3RyaW5nPiBsaW5lczsKLSAgICBvdXRwdXQuc3Bs
aXQoVUNoYXIoJ1xuJyksIGxpbmVzKTsKLSAgICBBU1NFUlQobGluZXMuc2l6ZSgpID09IDMpOwot
Ci0gICAgcmVzdWx0Lm5hbWUuc3dhcChsaW5lc1swXSk7Ci0gICAgcmVzdWx0LmRlc2NyaXB0aW9u
LnN3YXAobGluZXNbMV0pOwotICAgIHJlc3VsdC5taW1lRGVzY3JpcHRpb24uc3dhcChsaW5lc1sy
XSk7Ci0gICAgcmV0dXJuICFyZXN1bHQubWltZURlc2NyaXB0aW9uLmlzRW1wdHkoKTsKKyAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9OZXRzY2FwZUJyb3dz
ZXJGdW5jcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUv
TmV0c2NhcGVCcm93c2VyRnVuY3MuY3BwCmluZGV4IDEyYTU4ZDJjNzIzMTBhNjZjMzFiMDUxZGNl
MTM3Y2NkZDBhMWZjY2QuLjY0YzYyNGY2YjU5MjJjMWIzYzZjYzg1MDFkZGQwY2QzNzFjNTE4MGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS9O
ZXRzY2FwZUJyb3dzZXJGdW5jcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Q
bHVnaW5zL05ldHNjYXBlL05ldHNjYXBlQnJvd3NlckZ1bmNzLmNwcApAQCAtNTUxLDkgKzU1MSwy
MyBAQCBzdGF0aWMgTlBFcnJvciBOUE5fR2V0VmFsdWUoTlBQIG5wcCwgTlBOVmFyaWFibGUgdmFy
aWFibGUsIHZvaWQgKnZhbHVlKQogICAgICAgICAgICBicmVhazsKIAogICAgICAgIGNhc2UgTlBO
VlRvb2xraXQ6IHsKLSAgICAgICAgICAgLy8gR3RrIGJhc2VkIHBsdWdpbnMgbmVlZCB0byBiZSBh
c3N1cmVkIGFib3V0IHRoZSB0b29sa2l0IHZlcnNpb24uCi0gICAgICAgICAgIGNvbnN0IHVpbnQz
Ml90IGV4cGVjdGVkR3RrVG9vbEtpdFZlcnNpb24gPSAyOwotICAgICAgICAgICAqcmVpbnRlcnBy
ZXRfY2FzdDx1aW50MzJfdCo+KHZhbHVlKSA9IGV4cGVjdGVkR3RrVG9vbEtpdFZlcnNpb247Cisj
aWYgUExBVEZPUk0oR1RLKQorICAgICAgICAgICAqcmVpbnRlcnByZXRfY2FzdDx1aW50MzJfdCo+
KHZhbHVlKSA9IDI7CisjZWxzZQorICAgICAgICAgICBjb25zdCB1aW50MzJfdCBleHBlY3RlZEdU
S1Rvb2xLaXRWZXJzaW9uID0gMjsKKworICAgICAgICAgICAvLyBTZXQgdGhlIGV4cGVjdGVkIEdU
SyB2ZXJzaW9uIGlmIHdlIGtub3cgdGhhdCB0aGlzIHBsdWdpbiBuZWVkcyBpdCBvciBpZiB0aGUg
cGx1Z2luIGNhbGwgdXMKKyAgICAgICAgICAgLy8gd2l0aCBhIG51bGwgaW5zdGFuY2UuIFRoZSBs
YXR0ZXIgaXMgdGhlIGNhc2Ugd2l0aCBOU1BsdWdpbldyYXBwZXIgcGx1Z2lucy4KKyAgICAgICAg
ICAgYm9vbCByZXF1aXJlc0dUS1Rvb2xLaXRWZXJzaW9uOworICAgICAgICAgICBpZiAoIW5wcCkK
KyAgICAgICAgICAgICAgIHJlcXVpcmVzR1RLVG9vbEtpdFZlcnNpb24gPSB0cnVlOworICAgICAg
ICAgICBlbHNlIHsKKyAgICAgICAgICAgICAgIFJlZlB0cjxOZXRzY2FwZVBsdWdpbj4gcGx1Z2lu
ID0gTmV0c2NhcGVQbHVnaW46OmZyb21OUFAobnBwKTsKKyAgICAgICAgICAgICAgIHJlcXVpcmVz
R1RLVG9vbEtpdFZlcnNpb24gPSBwbHVnaW4tPnF1aXJrcygpLmNvbnRhaW5zKFBsdWdpblF1aXJr
czo6UmVxdWlyZXNHVEtUb29sS2l0KTsKKyAgICAgICAgICAgfQorCisgICAgICAgICAgICpyZWlu
dGVycHJldF9jYXN0PHVpbnQzMl90Kj4odmFsdWUpID0gcmVxdWlyZXNHVEtUb29sS2l0VmVyc2lv
biA/IGV4cGVjdGVkR1RLVG9vbEtpdFZlcnNpb24gOiAwOworI2VuZGlmCiAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvcXQvUGx1Z2luTWFp
blF0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL3F0L1BsdWdpbk1haW5RdC5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDNkNWM5M2I1N2IzYjllY2U1NDM2YzA2ZDE3NjQzM2JkMjY5YTkx
ZDIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdDIvcXQvUGx1Z2luTWFpblF0LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDM5ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICogQ29weXJpZ2h0IChDKSAyMDExIFVuaXZlcnNpdHkgb2YgU3plZ2VkLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0KLSNpbmNsdWRl
IDxRTGlicmFyeT4KLSNpbmNsdWRlIDxRdEdsb2JhbD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci1R
X0RFQ0xfSU1QT1JUIGludCBQbHVnaW5Qcm9jZXNzTWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3Yp
OwotfQotCi1pbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCi17Ci0gICAgcmV0dXJuIFdl
YktpdDo6UGx1Z2luUHJvY2Vzc01haW4oYXJnYywgYXJndik7Ci19CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODc4YzcyYTJkZjU3NWZiY2VmZjRk
NzhjZTE5OGYyNTI3N2I3NTY5Yy4uN2RiMGQ1MWI3Nzc0ZDdlNjQxZGRhY2JhMjhkMDFlY2RiYTMz
ZDk0NCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE2IEBACisyMDEyLTA0LTAyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTEyODY4
LCByMTEyODc5LCBhbmQgcjExMjg4MS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvMTEyODY4CisgICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0
LzExMjg3OQorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMTI4ODEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyOTAxCisK
KyAgICAgICAgIkJ1aWxkIGZhaWwgb24gYm90cy4iIChSZXF1ZXN0ZWQgYnkga2JhbGF6cyBvbiAj
d2Via2l0KS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9HTlVtYWtlZmlsZS5hbToKKyAg
ICAgICAgKiBxbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnByZjoKKwogMjAxMi0wNC0w
MiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gRW5hYmxlIHNoYWRvdy1kb20gaW4gYnVpbGQtd2Via2l0LgpkaWZmIC0tZ2l0IGEvVG9vbHMv
TWluaUJyb3dzZXIvZ3RrL0dOVW1ha2VmaWxlLmFtIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0dO
VW1ha2VmaWxlLmFtCmluZGV4IDMzODgyOTA3MzI4MTAzMWVkYzIxOWEyMWRjYTgwZjJkOTFiNjU5
YTkuLmQyOGQ5ZTRmZTk2ZDk0NWRiMjVmMmQ0ZTE0OGRiZDRmNDc3OWU1ZjAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9HTlVtYWtlZmlsZS5hbQorKysgYi9Ub29scy9NaW5pQnJv
d3Nlci9ndGsvR05VbWFrZWZpbGUuYW0KQEAgLTMyLDggKzMyLDcgQEAgbm9kaXN0X1Byb2dyYW1z
X01pbmlCcm93c2VyX1NPVVJDRVMgPSBcCiBQcm9ncmFtc19NaW5pQnJvd3Nlcl9MREFERCA9IFwK
IAlsaWJ3ZWJraXQyZ3RrLUBXRUJLSVRHVEtfQVBJX01BSk9SX1ZFUlNJT05ALkBXRUJLSVRHVEtf
QVBJX01JTk9SX1ZFUlNJT05ALmxhIFwKIAkkKEdMSUJfTElCUykgXAotCSQoR1RLX0xJQlMpIFwK
LQkkKExJQlNPVVBfTElCUykKKwkkKEdUS19MSUJTKQogCiBQcm9ncmFtc19NaW5pQnJvd3Nlcl9M
REZMQUdTID0gXAogCS1uby1mYXN0LWluc3RhbGwgXApkaWZmIC0tZ2l0IGEvVG9vbHMvcW1ha2Uv
bWtzcGVjcy9mZWF0dXJlcy9mZWF0dXJlcy5wcmYgYi9Ub29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1
cmVzL2ZlYXR1cmVzLnByZgppbmRleCAyZWMwN2UwZGI5OWE5NjgxYzc3ZDJlMDU3ZTU1YWU1NGZm
NjU5YWY5Li5kODVjN2RjNDdjMmFlYTQ4MDA1YTBjMjdhNDI4OTdjYmUyMGNmMWYxIDEwMDY0NAot
LS0gYS9Ub29scy9xbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnByZgorKysgYi9Ub29s
cy9xbWFrZS9ta3NwZWNzL2ZlYXR1cmVzL2ZlYXR1cmVzLnByZgpAQCAtMTI3LDExICsxMjcsMTIg
QEAgaGF2ZVF0KDUpIHsKICAgICBub193ZWJraXQyIHsKICAgICAgICAgREVGSU5FUyArPSBQTFVH
SU5fQVJDSElURUNUVVJFX1VOU1VQUE9SVEVEPTEKICAgICB9IGVsc2UgewotICAgICAgICBjb250
YWlucyhRVF9DT05GSUcsIHhjYi14bGliKSB7CisgICAgICAgICMgRGlzYWJsZSB4bGliIHBsdWdp
bnMgd2hpbGUgdGhleSdyZSBpbi1wcm9jZXNzLCBiZWNhdXNlIHRoZXkgY3Jhc2gKKyAgICAgICAg
IyBhcyBzb29uIGFzIGFuIGluc3RhbGxlZCBucGFwaSBwbHVnaW4gdXNlcyBRdCA0LgorICAgICAg
ICBmYWxzZTpjb250YWlucyhRVF9DT05GSUcsIHhjYi14bGliKSB7CiAgICAgICAgICAgICBDT05G
SUcgKz0gcGx1Z2luX2JhY2tlbmRfeGxpYgogICAgICAgICAgICAgREVGSU5FUyArPSBQTFVHSU5f
QVJDSElURUNUVVJFX1gxMT0xIFwKLSAgICAgICAgICAgICAgICAgICAgICAgUExVR0lOX0FSQ0hJ
VEVDVFVSRV9VTlNVUFBPUlRFRD0wIFwKLSAgICAgICAgICAgICAgICAgICAgICAgRU5BQkxFX1BM
VUdJTl9QUk9DRVNTPTEKKyAgICAgICAgICAgICAgICAgICAgICAgUExVR0lOX0FSQ0hJVEVDVFVS
RV9VTlNVUFBPUlRFRD0wCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBERUZJTkVTICs9
IFBMVUdJTl9BUkNISVRFQ1RVUkVfVU5TVVBQT1JURUQ9MQogICAgICAgICB9CmRpZmYgLS1naXQg
YS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggYzVlMjNhZDg2Y2I3MTVjOWM1NDQ0NTIzYjgx
MDUwMWRjN2RlOTJiNi4uYWRmYjhkYzE2ZjgwYTRiYTA4MTE2MjExOTJkOTUzN2JiNzQzMWQwYiAx
MDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisy
MDEyLTA0LTAyICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKwor
ICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTEyODY4LCByMTEyODc5LCBhbmQgcjEx
Mjg4MS4KKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvMTEyODY4Cisg
ICAgICAgIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzExMjg3OQorICAgICAgICBo
dHRwOi8vdHJhYy53ZWJraXQub3JnL2NoYW5nZXNldC8xMTI4ODEKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgyOTAxCisKKyAgICAgICAgIkJ1aWxkIGZh
aWwgb24gYm90cy4iIChSZXF1ZXN0ZWQgYnkga2JhbGF6cyBvbiAjd2Via2l0KS4KKworICAgICAg
ICAqIFNvdXJjZS9RdFdlYktpdC5wcm86CisKIDIwMTItMDQtMDIgIEJhbGF6cyBLZWxlbWVuICA8
a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBTZXQgdXAgcGx1Z2luIHBy
b2Nlc3Mgb24gVW5peAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>