<?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>74462</bug_id>
          
          <creation_ts>2011-12-13 16:33:32 -0800</creation_ts>
          <short_desc>Add a very bare-bones implementation of bind and Function to WTF</short_desc>
          <delta_ts>2011-12-13 19:12:24 -0800</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="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>levin+threading</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>520472</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-12-13 16:33:32 -0800</bug_when>
    <thetext>Add a very bare-bones implementation of bind and Function to WTF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520474</commentid>
    <comment_count>1</comment_count>
      <attachid>119107</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-12-13 16:38:05 -0800</bug_when>
    <thetext>Created attachment 119107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520477</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-13 16:39:25 -0800</bug_when>
    <thetext>Attachment 119107 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/JavaScriptCore/ChangeLog&apos;, u&apos;Source...&quot; exit_code: 1

Source/JavaScriptCore/wtf/MainThread.h:50:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/wtf/Functional.h:72:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/wtf/Functional.h:80:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/wtf/Functional.h:125:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/wtf/Functional.h:131:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/wtf/Functional.h:145:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/wtf/MainThread.cpp:222:  Extra space before ( in function call  [whitespace/parens] [4]
Source/JavaScriptCore/wtf/MainThread.cpp:227:  Extra space before ( in function call  [whitespace/parens] [4]
Total errors found: 8 in 16 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520508</commentid>
    <comment_count>3</comment_count>
      <attachid>119107</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-13 17:12:27 -0800</bug_when>
    <thetext>Comment on attachment 119107
Patch

Attachment 119107 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10872034</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520511</commentid>
    <comment_count>4</comment_count>
      <attachid>119107</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2011-12-13 17:17:05 -0800</bug_when>
    <thetext>Comment on attachment 119107
Patch

Nice start!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520599</commentid>
    <comment_count>5</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-12-13 18:59:21 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 119107 [details])
&gt; Attachment 119107 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/10872034

I fixed this, turns out I put the Functional.cpp test in the wrong directory!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>520605</commentid>
    <comment_count>6</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2011-12-13 19:12:24 -0800</bug_when>
    <thetext>Committed r102730: &lt;http://trac.webkit.org/changeset/102730&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>119107</attachid>
            <date>2011-12-13 16:38:05 -0800</date>
            <delta_ts>2011-12-13 17:17:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-74462-20111213163800.patch</filename>
            <type>text/plain</type>
            <size>24787</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyNzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA5
YzI0ZmIyOWEzMjcwZDhmNzUzNjg0OTkwMDY4MDhhNmFjNWZjOThhLi40NmFlMWFjN2VlMGNjYWZk
ZDdkMzcyNWI2NDhlZGRmYmJhNTA4MWE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNSBAQAorMjAxMS0xMi0xMyAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUu
Y29tPgorCisgICAgICAgIEFkZCBhIHZlcnkgYmFyZS1ib25lcyBpbXBsZW1lbnRhdGlvbiBvZiBi
aW5kIGFuZCBGdW5jdGlvbiB0byBXVEYKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTc0NDYyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gbWFrZSBpdCBlYXNpZXIgdG8gcGFja2FnZSB1cCBm
dW5jdGlvbiBjYWxscyBhbmQgc2VuZCB0aGVtIGFjcm9zcworICAgICAgICB0aHJlYWRzLCBhZGQg
YSAoY3VycmVudGx5IHZlcnkgc2ltcGxlKSBpbXBsZW1lbnRhdGlvbiBvZiBXVEY6OmJpbmQgYW5k
IFdURjo6RnVuY3Rpb24gdG8gYSBuZXcKKyAgICAgICAgd3RmL0Z1bmN0aW9uYWwuaCBoZWFkZXIu
CisKKyAgICAgICAgQ3VycmVudGx5LCBhbGwgYmluZCBjYW4gZG8gaXMgYmluZCBhIG51bGxhcnkg
ZnVuY3Rpb24gYW5kIHJldHVybiBhIEZ1bmN0aW9uIG9iamVjdCB0aGF0IGNhbiBiZSBjYWxsZWQg
YW5kIGNvcGllZCwKKyAgICAgICAgYnV0IEknbGwgYWRkIG1vcmUgYXMgdGhlIG5lZWQgYXJpc2Vz
LgorCisgICAgICAgICogR05VbWFrZWZpbGUubGlzdC5hbToKKyAgICAgICAgKiBKYXZhU2NyaXB0
Q29yZS5neXBpOgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJv
ajoKKyAgICAgICAgKiBKYXZhU2NyaXB0Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHd0Zi9GdW5jdGlvbmFsLmg6IEFkZGVkLgorICAgICAgICAoV1RGOjpSKToKKyAg
ICAgICAgKFdURjo6RnVuY3Rpb25JbXBsQmFzZTo6fkZ1bmN0aW9uSW1wbEJhc2UpOgorICAgICAg
ICAoV1RGOjpGdW5jdGlvbldyYXBwZXI6OlJlc3VsdFR5cGUpOgorICAgICAgICAoV1RGOjpGdW5j
dGlvbkJhc2U6OmlzTnVsbCk6CisgICAgICAgIChXVEY6OkZ1bmN0aW9uQmFzZTo6RnVuY3Rpb25C
YXNlKToKKyAgICAgICAgKFdURjo6RnVuY3Rpb25CYXNlOjppbXBsKToKKyAgICAgICAgKFdURjo6
YmluZCk6CisgICAgICAgICogd3RmL01haW5UaHJlYWQuY3BwOgorICAgICAgICAoV1RGOjpjYWxs
RnVuY3Rpb25PYmplY3QpOgorICAgICAgICAoV1RGOjpjYWxsT25NYWluVGhyZWFkKToKKyAgICAg
ICAgKiB3dGYvTWFpblRocmVhZC5oOgorICAgICAgICAqIHd0Zi93dGYucHJvOgorCiAyMDExLTEy
LTEzICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CiAKICAgICAgICAgREZHIEdldEJ5
VmFsIENTRSBydWxlIHNob3VsZCBtYXRjaCBQdXRCeVZhbEFsaWFzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQx
MWYzZTUxM2VlYjM0ZmZhZWIyOGY5NmRjYjI5YzU1YTNhYTVhNS4uZDNhNjk0ZTE1YmQzYzYwMjMx
OWNlYzg1NDY1MWZiNWRmNDkyZGViMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEx
LTEyLTEzICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIGEgdmVyeSBiYXJlLWJvbmVzIGltcGxlbWVudGF0aW9uIG9mIGJpbmQgYW5kIEZ1bmN0aW9u
IHRvIFdURgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NzQ0NjIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgYSBmb3J3YXJkaW5nIGhlYWRlciBmb3IgRnVuY3Rpb25hbC5oLgorCisgICAgICAgICogRm9y
d2FyZGluZ0hlYWRlcnMvd3RmL0Z1bmN0aW9uYWwuaDogQWRkZWQuCisKIDIwMTEtMTItMTMgIEph
bWVzIFNpbW9uc2VuICA8c2ltb25qYW1AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIENocm9taXVtIE1hYyBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtl
ZmlsZS5saXN0LmFtCmluZGV4IDBkMTllZjFlODUwMzY0ODdlZDc2YzkxOWYyYWJjZWU0MGMxMzE4
NDkuLjMxNWUzZjM1ODIzMTcwZGUxMDYzZTJlZjk1MWZmNzM0YjIwZjhhMmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCisrKyBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5saXN0LmFtCkBAIC01NjAsNiArNTYwLDcgQEAgamF2
YXNjcmlwdGNvcmVfc291cmNlcyArPSBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9GbG9h
dDMyQXJyYXkuaCBcCiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9GbG9hdDY0QXJyYXkuaCBc
CiAJU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9Gb3J3YXJkLmggXAorCVNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvRnVuY3Rpb25hbC5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0dl
dFB0ci5oIFwKIAlTb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2dvYmplY3QvR093blB0ci5jcHAg
XAogCVNvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvZ29iamVjdC9HT3duUHRyLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmd5cGkgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQppbmRleCA3ZjE0OGZiOWNkNGQ3MjRi
MDY0NTJhOGQ4Y2M4ZDdlOGJlZTVhYThmLi4wMWZkM2RjYTk2ZjlhMGM0MTNiYTFkZGI0OGZkNzI3
MjcwMWZlYzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENv
cmUuZ3lwaQorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZ3lwaQpA
QCAtMTU5LDYgKzE1OSw3IEBACiAgICAgICAgICAgICAnd3RmL0Zhc3RNYWxsb2MuaCcsCiAgICAg
ICAgICAgICAnd3RmL0ZpeGVkQXJyYXkuaCcsCiAgICAgICAgICAgICAnd3RmL0ZvcndhcmQuaCcs
CisgICAgICAgICAgICAnd3RmL0Z1bmN0aW9uYWwuaCcsCiAgICAgICAgICAgICAnd3RmL0dldFB0
ci5oJywKICAgICAgICAgICAgICd3dGYvSGFzaENvdW50ZWRTZXQuaCcsCiAgICAgICAgICAgICAn
d3RmL0hhc2hGdW5jdGlvbnMuaCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagppbmRleCBiMzIwYWUzZmU5
OGFkNDczZjI2MDBhNGQ3NTU3NjhlYTgxODg4NWI1Li4zZmRjZDk4Nzg3ZWQ5MmY5YmE0NTRiZTVj
ZTRkZjM4ZDQzNWI1MTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3Byb2oKQEAgLTgxNyw2ICs4MTcsMTAg
QEAKIAkJCT4KIAkJPC9GaWxlPgogCQk8RmlsZQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZc
RnVuY3Rpb25hbC5oIgorCQkJPgorCQk8L0ZpbGU+CisJCTxGaWxlCiAJCQlSZWxhdGl2ZVBhdGg9
Ii4uXC4uXHd0ZlxHZXRQdHIuaCIKIAkJCT4KIAkJPC9GaWxlPgpkaWZmIC0tZ2l0IGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAyY2FiZGJmNDMwZDNkNjNiZjk1ZTI2MDhmZTZmODU2YjhjYzY0YzdiLi5l
YTM5NzRiMGU0NzRmNDFjZmU5OTM3YjM0NjNmMjIzY2Y3MTRmZWRkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjY0LDYgKzI2NCw3IEBACiAJCTE4QkFCNTU0MTBEQUUwNjYwMDBE
OTQ1QiAvKiBUaHJlYWRJZGVudGlmaWVyRGF0YVB0aHJlYWRzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxOEJBQjUyODEwREFERkNEMDAwRDk0NUIgLyog
VGhyZWFkSWRlbnRpZmllckRhdGFQdGhyZWFkcy5oICovOyB9OwogCQkxQTA4Mjc3OTE0MjE2OEQ3
MDA5MENDQUMgLyogQmluYXJ5U2VtYXBob3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMDgyNzc3MTQyMTY4RDcwMDkwQ0NBQyAvKiBCaW5hcnlT
ZW1hcGhvcmUuY3BwICovOyB9OwogCQkxQTA4Mjc3QTE0MjE2OEQ3MDA5MENDQUMgLyogQmluYXJ5
U2VtYXBob3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAxQTA4Mjc3ODE0MjE2OEQ3MDA5MENDQUMgLyogQmluYXJ5U2VtYXBob3JlLmggKi87IH07CisJ
CTFBQTlFNTUxMTQ5ODA5MzUwMDAwMUE4QSAvKiBGdW5jdGlvbmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUE5RTU1MDE0OTgwOTM1MDAwMDFBOEEg
LyogRnVuY3Rpb25hbC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTJDRkM1RDFFMTJGNDVCNDgwMDQ5MTRFMiAvKiBDaGFyYWN0ZXJOYW1lcy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNGQzVCN0ExMkY0
NDcxNDAwNDkxNEUyIC8qIENoYXJhY3Rlck5hbWVzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDEzNTlDRjMwRkREODlBRDAwMjA2MTgwIC8qIERh
dGVDb252ZXJzaW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBEMjEyMDIyOTBBRDQzMTBDMDBFRDc5QjYgLyogRGF0ZUNvbnZlcnNpb24uaCAqLzsgfTsK
IAkJNDEzNTlDRjYwRkREODlDQjAwMjA2MTgwIC8qIERhdGVNYXRoLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxMzU5Q0Y0MEZERDg5Q0IwMDIwNjE4
MCAvKiBEYXRlTWF0aC5jcHAgKi87IH07CkBAIC0xMDA2LDYgKzEwMDcsNyBAQAogCQkxOEJBQjUy
ODEwREFERkNEMDAwRDk0NUIgLyogVGhyZWFkSWRlbnRpZmllckRhdGFQdGhyZWFkcy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBUaHJlYWRJZGVudGlmaWVyRGF0YVB0aHJlYWRz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBMDgyNzc3MTQyMTY4RDcwMDkwQ0NB
QyAvKiBCaW5hcnlTZW1hcGhvcmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQmluYXJ5U2VtYXBob3JlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MUEwODI3NzgxNDIxNjhENzAwOTBDQ0FDIC8qIEJpbmFyeVNlbWFwaG9yZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBCaW5hcnlTZW1hcGhvcmUuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJMUFBOUU1NTAxNDk4MDkzNTAwMDAxQThBIC8qIEZ1bmN0aW9uYWwuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnVuY3Rpb25hbC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQzkwNTE0MjBCQTlFOEE3MDA4MUU5RDAgLyogVmVyc2lvbi54
Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBWZXJzaW9uLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzkwNTE0MzBCQTlFOEE3MDA4MUU5RDAg
LyogSmF2YVNjcmlwdENvcmUueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBuYW1l
ID0gSmF2YVNjcmlwdENvcmUueGNjb25maWc7IHBhdGggPSAuLi9Db25maWd1cmF0aW9ucy9KYXZh
U2NyaXB0Q29yZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUM5MDUx
NDQwQkE5RThBNzAwODFFOUQwIC8qIERlYnVnUmVsZWFzZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueGNjb25maWc7IHBhdGggPSBEZWJ1Z1JlbGVhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xOTQ0LDYgKzE5NDYsNyBAQAogCQkJCUE3M0JFMTU5MTQ4NDIwNTIw
MDkxMjA0QiAvKiBGbG9hdDMyQXJyYXkuaCAqLywKIAkJCQlBNzNCRTE1QjE0ODQyMDUyMDA5MTIw
NEIgLyogRmxvYXQ2NEFycmF5LmggKi8sCiAJCQkJOTM1QUY0NjkwOUU5RDlEQjAwQUNEMUQ4IC8q
IEZvcndhcmQuaCAqLywKKwkJCQkxQUE5RTU1MDE0OTgwOTM1MDAwMDFBOEEgLyogRnVuY3Rpb25h
bC5oICovLAogCQkJCTkzQjZBMERFMEFBNjREQTQwMDc2REUyNyAvKiBHZXRQdHIuaCAqLywKIAkJ
CQk2NTdFRUJCRjA5NEU0NDVFMDA4QzlDN0IgLyogSGFzaENvdW50ZWRTZXQuaCAqLywKIAkJCQk2
NURGQzkyQTA4RUExNzNBMDBGNzMwMEIgLyogSGFzaEZ1bmN0aW9ucy5oICovLApAQCAtMjk4OCw2
ICsyOTkxLDcgQEAKIAkJCQlBNzNCRTE4MDE0ODQyMEE4MDA5MTIwNEIgLyogSW50ZWdyYWxUeXBl
ZEFycmF5QmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODYwQkQ4MDExNDhFQTZGMjAwMTEyQjJG
IC8qIEludHJpbnNpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMEZCQzBBRTgxNDk2QzdDNzAwRDRG
QkREIC8qIERGR0V4aXRQcm9maWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQkxQUE5RTU1MTE0OTgw
OTM1MDAwMDFBOEEgLyogRnVuY3Rpb25hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVu
T25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL0Z1bmN0aW9uYWwuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvRnVuY3Rpb25hbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMyNjg4Y2ZlYTA5ZGI4NmRmZTMwOTcw
YmRmNGY4NmYwYzkwZDY2NjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvd3RmL0Z1bmN0aW9uYWwuaApAQCAtMCwwICsxLDE1NSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5k
ZWYgV1RGX0Z1bmN0aW9uYWxfaAorI2RlZmluZSBXVEZfRnVuY3Rpb25hbF9oCisKKyNpbmNsdWRl
ICJBc3NlcnRpb25zLmgiCisjaW5jbHVkZSAiUGFzc1JlZlB0ci5oIgorI2luY2x1ZGUgIlJlZlB0
ci5oIgorI2luY2x1ZGUgIlRocmVhZFNhZmVSZWZDb3VudGVkLmgiCisKK25hbWVzcGFjZSBXVEYg
eworCisvLyBGdW5jdGlvbmFsLmggcHJvdmlkZXMgYSB2ZXJ5IHNpbXBsZSB3YXkgdG8gYmluZCBh
IGZ1bmN0aW9uIHBvaW50ZXIgYW5kIGFyZ3VtZW50cyB0b2dldGhlciBpbnRvIGEgZnVuY3Rpb24g
b2JqZWN0CisvLyB0aGF0IGNhbiBiZSBzdG9yZWQsIGNvcGllZCBhbmQgaW52b2tlZCwgc2ltaWxh
ciB0byBob3cgYm9vc3Q6OmJpbmQgYW5kIHN0ZDo6YmluZCBpbiBDKysxMS4KKy8vIFRoZSBpbXBs
ZW1lbnRhdGlvbiBpcyBjdXJyZW50bHkgdmVyeSBzaW1wbGUsIGJ1dCB0aGUgZ29hbCBpcyB0byBy
ZXBsYWNlIFdvcmtJdGVtIGluIFdlYktpdDIgYW5kIG1ha2UgaXQgZWFzaWVyIHRvCisvLyBwYWNr
YWdlIHVwIGFuZCBpbnZva2UgZnVuY3Rpb24gY2FsbHMgaW5zaWRlIFdlYkNvcmUuCisKKy8vIEEg
RnVuY3Rpb25XcmFwcGVyIGlzIGEgY2xhc3MgdGVtcGxhdGUgdGhhdCBjYW4gd3JhcCBhIGZ1bmN0
aW9uIHBvaW50ZXIgb3IgYSBtZW1iZXIgZnVuY3Rpb24gcG9pbnRlciBhbmQKKy8vIHByb3ZpZGUg
YSB1bmlmaWVkIGludGVyZmFjZSBmb3IgY2FsbGluZyB0aGF0IGZ1bmN0aW9uLgordGVtcGxhdGU8
dHlwZW5hbWU+IGNsYXNzIEZ1bmN0aW9uV3JhcHBlcjsKKwordGVtcGxhdGU8dHlwZW5hbWUgUj4g
Y2xhc3MgRnVuY3Rpb25XcmFwcGVyPFIgKCopKCk+IHsKK3B1YmxpYzoKKyAgICB0eXBlZGVmIFIg
UmVzdWx0VHlwZTsKKworICAgIGV4cGxpY2l0IEZ1bmN0aW9uV3JhcHBlcihSICgqZnVuY3Rpb24p
KCkpCisgICAgICAgIDogbV9mdW5jdGlvbihmdW5jdGlvbikKKyAgICB7CisgICAgfQorCisgICAg
UiBvcGVyYXRvcigpKCkKKyAgICB7CisgICAgICAgIHJldHVybiBtX2Z1bmN0aW9uKCk7CisgICAg
fQorCitwcml2YXRlOgorICAgIFIgKCptX2Z1bmN0aW9uKSgpOworfTsKKworY2xhc3MgRnVuY3Rp
b25JbXBsQmFzZSA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxGdW5jdGlvbkltcGxCYXNl
PiB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+RnVuY3Rpb25JbXBsQmFzZSgpIHsgfQorfTsKKwor
dGVtcGxhdGU8dHlwZW5hbWU+CitjbGFzcyBGdW5jdGlvbkltcGw7CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFI+CitjbGFzcyBGdW5jdGlvbkltcGw8UiAoKT4gOiBwdWJsaWMgRnVuY3Rpb25JbXBsQmFz
ZSB7CitwdWJsaWM6CisgICAgdmlydHVhbCBSIG9wZXJhdG9yKCkoKSA9IDA7Cit9OworCit0ZW1w
bGF0ZTx0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXIsIHR5cGVuYW1lIEZ1bmN0aW9uVHlwZT4KK2Ns
YXNzIEJvdW5kRnVuY3Rpb25JbXBsOworCit0ZW1wbGF0ZTx0eXBlbmFtZSBGdW5jdGlvbldyYXBw
ZXI+IGNsYXNzIEJvdW5kRnVuY3Rpb25JbXBsPEZ1bmN0aW9uV3JhcHBlciwgdHlwZW5hbWUgRnVu
Y3Rpb25XcmFwcGVyOjpSZXN1bHRUeXBlICgpPiA6IHB1YmxpYyBGdW5jdGlvbkltcGw8dHlwZW5h
bWUgRnVuY3Rpb25XcmFwcGVyOjpSZXN1bHRUeXBlICgpPiB7CitwdWJsaWM6CisgICAgZXhwbGlj
aXQgQm91bmRGdW5jdGlvbkltcGwoRnVuY3Rpb25XcmFwcGVyIGZ1bmN0aW9uV3JhcHBlcikKKyAg
ICAgICAgOiBtX2Z1bmN0aW9uV3JhcHBlcihmdW5jdGlvbldyYXBwZXIpCisgICAgeworICAgIH0K
KworICAgIHZpcnR1YWwgdHlwZW5hbWUgRnVuY3Rpb25XcmFwcGVyOjpSZXN1bHRUeXBlIG9wZXJh
dG9yKCkoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZnVuY3Rpb25XcmFwcGVyKCk7CisgICAg
fQorCitwcml2YXRlOgorICAgIEZ1bmN0aW9uV3JhcHBlciBtX2Z1bmN0aW9uV3JhcHBlcjsKK307
CisKK2NsYXNzIEZ1bmN0aW9uQmFzZSB7CitwdWJsaWM6CisgICAgYm9vbCBpc051bGwoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuICFtX2ltcGw7CisgICAgfQorCitwcm90ZWN0ZWQ6Cisg
ICAgRnVuY3Rpb25CYXNlKCkKKyAgICB7CisgICAgfQorCisgICAgZXhwbGljaXQgRnVuY3Rpb25C
YXNlKFBhc3NSZWZQdHI8RnVuY3Rpb25JbXBsQmFzZT4gaW1wbCkKKyAgICAgICAgOiBtX2ltcGwo
aW1wbCkKKyAgICB7CisgICAgfQorCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rpb25UeXBl
PiBGdW5jdGlvbkltcGw8RnVuY3Rpb25UeXBlPiogaW1wbCgpIGNvbnN0CisgICAgeyAKKyAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PEZ1bmN0aW9uSW1wbDxGdW5jdGlvblR5cGU+Kj4obV9pbXBs
LmdldCgpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgUmVmUHRyPEZ1bmN0aW9uSW1wbEJhc2U+
IG1faW1wbDsKK307CisKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBGdW5jdGlvbjsKKwordGVt
cGxhdGU8dHlwZW5hbWUgUj4KK2NsYXNzIEZ1bmN0aW9uPFIgKCk+IDogcHVibGljIEZ1bmN0aW9u
QmFzZSB7CitwdWJsaWM6CisgICAgRnVuY3Rpb24oKQorICAgIHsKKyAgICB9CisKKyAgICBGdW5j
dGlvbihQYXNzUmVmUHRyPEZ1bmN0aW9uSW1wbDxSICgpPiA+IGltcGwpCisgICAgICAgIDogRnVu
Y3Rpb25CYXNlKGltcGwpCisgICAgeworICAgIH0KKworICAgIFIgb3BlcmF0b3IoKSgpCisgICAg
eworICAgICAgICBBU1NFUlQoIWlzTnVsbCgpKTsKKworICAgICAgICByZXR1cm4gaW1wbDxSICgp
PigpLT5vcGVyYXRvcigpKCk7CisgICAgfQorfTsKKwordGVtcGxhdGU8dHlwZW5hbWUgRnVuY3Rp
b25UeXBlPgorRnVuY3Rpb248dHlwZW5hbWUgRnVuY3Rpb25XcmFwcGVyPEZ1bmN0aW9uVHlwZT46
OlJlc3VsdFR5cGUgKCk+IGJpbmQoRnVuY3Rpb25UeXBlIGZ1bmN0aW9uKQoreworICAgIHJldHVy
biBGdW5jdGlvbjx0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI8RnVuY3Rpb25UeXBlPjo6UmVzdWx0
VHlwZSAoKT4oYWRvcHRSZWYobmV3IEJvdW5kRnVuY3Rpb25JbXBsPEZ1bmN0aW9uV3JhcHBlcjxG
dW5jdGlvblR5cGU+LCB0eXBlbmFtZSBGdW5jdGlvbldyYXBwZXI8RnVuY3Rpb25UeXBlPjo6UmVz
dWx0VHlwZSAoKT4oRnVuY3Rpb25XcmFwcGVyPEZ1bmN0aW9uVHlwZT4oZnVuY3Rpb24pKSkpOwor
fQorCit9CisKK3VzaW5nIFdURjo6RnVuY3Rpb247Cit1c2luZyBXVEY6OmJpbmQ7CisKKyNlbmRp
ZiAvLyBXVEZfRnVuY3Rpb25hbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFk
LmNwcAppbmRleCBkZWM3YmJjMzlmYWRmZGVkYTM2Y2IwMTE5M2QzYTFjNjE5M2U1Yjc2Li45MTUx
MjY1ODlmNjAyY2FjN2FmNDdkOTZlMGMwOTlhNmE2M2M1YjRmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvTWFpblRocmVhZC5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKIAogI2luY2x1ZGUgIkN1
cnJlbnRUaW1lLmgiCiAjaW5jbHVkZSAiRGVxdWUuaCIKKyNpbmNsdWRlICJGdW5jdGlvbmFsLmgi
CiAjaW5jbHVkZSAiU3RkTGliRXh0cmFzLmgiCiAjaW5jbHVkZSAiVGhyZWFkaW5nLmgiCiAKQEAg
LTIxNiw2ICsyMTcsMTggQEAgdm9pZCBjYW5jZWxDYWxsT25NYWluVGhyZWFkKE1haW5UaHJlYWRG
dW5jdGlvbiogZnVuY3Rpb24sIHZvaWQqIGNvbnRleHQpCiAgICAgfQogfQogCitzdGF0aWMgdm9p
ZCBjYWxsRnVuY3Rpb25PYmplY3Qodm9pZCogY29udGV4dCkKK3sKKyAgICBGdW5jdGlvbjx2b2lk
ICgpPiogZnVuY3Rpb24gPSBzdGF0aWNfY2FzdDxGdW5jdGlvbjx2b2lkICgpPio+KGNvbnRleHQp
OworICAgICgqZnVuY3Rpb24pKCk7CisgICAgZGVsZXRlIGZ1bmN0aW9uOworfQorCit2b2lkIGNh
bGxPbk1haW5UaHJlYWQoY29uc3QgRnVuY3Rpb248dm9pZCAoKT4mIGZ1bmN0aW9uKQoreworICAg
IGNhbGxPbk1haW5UaHJlYWQoY2FsbEZ1bmN0aW9uT2JqZWN0LCBuZXcgRnVuY3Rpb248dm9pZCAo
KT4oZnVuY3Rpb24pKTsKK30KKwogdm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJv
b2wgcGF1c2VkKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvTWFpblRocmVhZC5oCmluZGV4IDFmYzBlMzI2NjdhZjc5NTRkNWJkN2Y3ZTQzZjdl
ZTMyMTcyZWZmMGUuLmMxNTNkMWViYTQ4NWE3MmYxZGFmZDI5NTMyMzZhYWIzYjdjZmNlZDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCkBAIC00Niw2ICs0Niw5IEBAIHZv
aWQgY2FsbE9uTWFpblRocmVhZChNYWluVGhyZWFkRnVuY3Rpb24qLCB2b2lkKiBjb250ZXh0KTsK
IHZvaWQgY2FsbE9uTWFpblRocmVhZEFuZFdhaXQoTWFpblRocmVhZEZ1bmN0aW9uKiwgdm9pZCog
Y29udGV4dCk7CiB2b2lkIGNhbmNlbENhbGxPbk1haW5UaHJlYWQoTWFpblRocmVhZEZ1bmN0aW9u
Kiwgdm9pZCogY29udGV4dCk7CiAKK3RlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBGdW5jdGlvbjsK
K3ZvaWQgY2FsbE9uTWFpblRocmVhZChjb25zdCBGdW5jdGlvbjx2b2lkICgpPiYpOworICAgIAog
dm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wgcGF1c2VkKTsKIAogYm9vbCBp
c01haW5UaHJlYWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3Rm
LnBybyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvd3RmLnBybwppbmRleCBkMjZjZDVkYzQx
MDgxOTk0NWI2OGZjY2E4NTExYzk2YjUwODQ3OTZmLi40YzU3NWUzNjY4ODAxZGU5Mjc2YTQ3Y2Qx
OWIxYTQ3ZmI2YjNlZDQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL3d0
Zi5wcm8KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi93dGYucHJvCkBAIC02NSw2ICs2
NSw3IEBAIEhFQURFUlMgKz0gXAogICAgIEZsb2F0MzJBcnJheS5oIFwKICAgICBGbG9hdDY0QXJy
YXkuaCBcCiAgICAgRm9yd2FyZC5oIFwKKyAgICBGdW5jdGlvbmFsLmggXAogICAgIEdldFB0ci5o
IFwKICAgICBIYXNoQ291bnRlZFNldC5oIFwKICAgICBIYXNoRnVuY3Rpb25zLmggXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0Z1bmN0aW9uYWwuaCBi
L1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9GdW5jdGlvbmFsLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDQzMTMyNzRkNjY2MTkyNTM0MGQ1MGY2MWVmNDFmOWYxNDk5OGI1ZQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9GdW5jdGlvbmFs
LmgKQEAgLTAsMCArMSw0IEBACisjaWZuZGVmIFdlYkNvcmVfRldEX0Z1bmN0aW9uYWxfaAorI2Rl
ZmluZSBXZWJDb3JlX0ZXRF9GdW5jdGlvbmFsX2gKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9G
dW5jdGlvbmFsLmg+CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCA4NTc0NTY0YmZlMjdkYWU0NmViOGM1YTBjYjUwYWZhOTY3MzU0MmNl
Li40YTYyZDVmMjZmZmY2MWUyYjA4NGQ4MTMwOGZhYjc3ZjA1Yjc3Y2E4IDEwMDY0NAotLS0gYS9U
b29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIw
MTEtMTItMTMgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KKworICAgICAg
ICBBZGQgYSB2ZXJ5IGJhcmUtYm9uZXMgaW1wbGVtZW50YXRpb24gb2YgYmluZCBhbmQgRnVuY3Rp
b24gdG8gV1RGCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03NDQ2MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZCBiYXNpYyB0ZXN0cyBmb3IgV1RGOjpGdW5jdGlvbiBhbmQgV1RGOjpiaW5kLgorCisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLmd5cGk6CisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9GdW5jdGlvbmFsLmNwcDogQWRkZWQuCisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpyZXR1cm5Gb3J0eVR3byk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpU
RVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJvajoK
KwogMjAxMS0xMi0xMyAgUmFwaGFlbCBLdWJvIGRhIENvc3RhICA8a3Vib0Bwcm9mdXNpb24ubW9i
aT4KIAogICAgICAgICB3YXRjaGxpc3Q6IEFkZCB3YXRjaGxpc3QgZm9yIEVGTCwgQ01ha2UgYW5k
IGxpYnNvdXAgY29kZSBhbmQgcHV0IG15c2VsZiBvbiBpdC4KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQSS5neXBpIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
V2ViS2l0QVBJLmd5cGkKaW5kZXggYmY4YTI0ZjQxMzA1MjVmMTQwNjQzYzExM2U2ODE0ODQ1YTdj
MTBlYi4uN2UxMmRiNThkZWU4YmRjMDI5ZjEwZjJhYjA1MTdhMjEzYzhlMTE0YSAxMDA2NDQKLS0t
IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLmd5cGkKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLmd5cGkKQEAgLTMyLDYgKzMyLDcgQEAKICAgICAndmFy
aWFibGVzJzogewogICAgICAgICAnVGVzdFdlYktpdEFQSV9maWxlcyc6IFsKICAgICAgICAgICAg
ICdUZXN0cy9XVEYvQ2hlY2tlZEFyaXRobWV0aWNPcGVyYXRpb25zLmNwcCcsCisgICAgICAgICAg
ICAnVGVzdHMvV1RGL0Z1bmN0aW9uYWwuY3BwJywKICAgICAgICAgICAgICdUZXN0cy9XVEYvSGFz
aE1hcC5jcHAnLAogICAgICAgICAgICAgJ1Rlc3RzL1dURi9SZWRCbGFja1RyZWUuY3BwJywKICAg
ICAgICAgICAgICdUZXN0cy9XVEYvU3RyaW5nQnVpbGRlci5jcHAnLApkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAzMWU3ODI0MmQwMjdkYTgyNzZlMmNkNzhjYjU1MzBjMzkxOGY4Y2E3Li4wZmYx
N2MyNDU4ZmI5MmUxODM1NjU0ZGZkMzg5MzJjNjFiMDc5NWY2IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtNywxNCArNywxNSBAQAogCW9iamVjdHMgPSB7CiAKIC8qIEJlZ2luIFBCWEJ1aWxk
RmlsZSBzZWN0aW9uICovCisJCTBCQ0Q4MzM1MTQ4NTdDRTQwMEVBMjAwMyAvKiBIYXNoTWFwLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDBCQ0Q4MzM0
MTQ4NTdDRTQwMEVBMjAwMyAvKiBIYXNoTWFwLmNwcCAqLzsgfTsKIAkJMEJDRDg1NkExNDg1Qzk4
QjAwRUEyMDAzIC8qIFRlbXBvcmFyeUNoYW5nZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwQkNEODU2OTE0ODVDOThCMDBFQTIwMDMgLyogVGVtcG9y
YXJ5Q2hhbmdlLmNwcCAqLzsgfTsKIAkJMEZDNkM0Q0MxNDEwMjdFMDAwNUI3RjBDIC8qIFJlZEJs
YWNrVHJlZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkM2QzRDQjE0MTAyN0UwMDA1QjdGMEMgLyogUmVkQmxhY2tUcmVlLmNwcCAqLzsgfTsKLQkJ
MEJDRDgzMzUxNDg1N0NFNDAwRUEyMDAzIC8qIEhhc2hNYXAuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMEJDRDgzMzQxNDg1N0NFNDAwRUEyMDAzIC8q
IEhhc2hNYXAuY3BwICovOyB9OwogCQkwRkM2QzRDRjE0MTAzNEFEMDA1QjdGMEMgLyogTWV0YUFs
bG9jYXRvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAwRkM2QzRDRTE0MTAzNEFEMDA1QjdGMEMgLyogTWV0YUFsbG9jYXRvci5jcHAgKi87IH07CiAJ
CTFBMDJDODRGMTI1RDRBODQwMEUzRjRCRCAvKiBGaW5kLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBMDJDODRFMTI1RDRBODQwMEUzRjRCRCAvKiBG
aW5kLmNwcCAqLzsgfTsKIAkJMUEwMkM4NzAxMjVENENGRDAwRTNGNEJEIC8qIGZpbmQuaHRtbCBp
biBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQTAy
Qzg0QjEyNUQ0QTVFMDBFM0Y0QkQgLyogZmluZC5odG1sICovOyB9OwogCQkxQTVGRUZERDEyNzBF
MkEzMDAwRTI5MjEgLyogRXZhbHVhdGVKYXZhU2NyaXB0LmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBNUZFRkRDMTI3MEUyQTMwMDBFMjkyMSAvKiBF
dmFsdWF0ZUphdmFTY3JpcHQuY3BwICovOyB9OwogCQkxQTlFNTJDOTEzRTY1RUY0MDA2OTE3RjUg
LyogMTgtY2hhcmFjdGVycy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEMwNDVGOTQ2MTM4NUMyRjgwMEMwRjNDRCAvKiAxOC1jaGFyYWN0
ZXJzLmh0bWwgKi87IH07CisJCTFBQTlFNTU5MTQ5ODBBOTkwMDAwMUE4QSAvKiBGdW5jdGlvbmFs
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQTlF
NTU3MTQ5ODBBOTkwMDAwMUE4QSAvKiBGdW5jdGlvbmFsLmNwcCAqLzsgfTsKIAkJMUFEQkVGQUUx
MzBDNjg5QzAwRDYxRDE5IC8qIEZvcmNlUmVwYWludC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQURCRUZBRDEzMEM2ODlDMDBENjFEMTkgLyogRm9y
Y2VSZXBhaW50LmNwcCAqLzsgfTsKIAkJMUFEQkVGRTMxMzBDNkFBMTAwRDYxRDE5IC8qIHNpbXBs
ZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBREJFRkJDMTMwQzZBMDEwMEQ2MUQxOSAvKiBz
aW1wbGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmcuaHRtbCAqLzsgfTsKIAkJMUFFREUyMjYxM0U1
RTdFNzAwRTYyRkU4IC8qIEluamVjdGVkQnVuZGxlQ29udHJvbGxlck1hYy5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBRURFMjI0MTNFNUU3QTAwMEU2
MkZFOCAvKiBJbmplY3RlZEJ1bmRsZUNvbnRyb2xsZXJNYWMubW0gKi87IH07CkBAIC0xNTIsMTMg
KzE1MywxNCBAQAogLyogRW5kIFBCWENvcHlGaWxlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KKwkJMEJDRDgzMzQxNDg1N0NFNDAw
RUEyMDAzIC8qIEhhc2hNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1l
ID0gSGFzaE1hcC5jcHA7IHBhdGggPSBXVEYvSGFzaE1hcC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTBCQ0Q4NTY5MTQ4NUM5OEIwMEVBMjAwMyAvKiBUZW1wb3JhcnlDaGFuZ2Uu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVGVtcG9yYXJ5Q2hhbmdl
LmNwcDsgcGF0aCA9IFdURi9UZW1wb3JhcnlDaGFuZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkwRkM2QzRDQjE0MTAyN0UwMDA1QjdGMEMgLyogUmVkQmxhY2tUcmVlLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFJlZEJsYWNrVHJlZS5jcHA7IHBh
dGggPSBXVEYvUmVkQmxhY2tUcmVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
MEJDRDgzMzQxNDg1N0NFNDAwRUEyMDAzIC8qIEhhc2hNYXAuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBuYW1lID0gSGFzaE1hcC5jcHA7IHBhdGggPSBXVEYvSGFzaE1hcC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTBGQzZDNENFMTQxMDM0QUQwMDVCN0YwQyAv
KiBNZXRhQWxsb2NhdG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9
IE1ldGFBbGxvY2F0b3IuY3BwOyBwYXRoID0gV1RGL01ldGFBbGxvY2F0b3IuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQTAyQzg0QjEyNUQ0QTVFMDBFM0Y0QkQgLyogZmluZC5o
dG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gZmluZC5odG1sOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQkxQTAyQzg0RTEyNUQ0QTg0MDBFM0Y0QkQgLyogRmluZC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGaW5kLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMUE1RkVGREMxMjcwRTJBMzAwMEUyOTIxIC8qIEV2YWx1YXRlSmF2
YVNjcmlwdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFdmFsdWF0
ZUphdmFTY3JpcHQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkxQUE5RTU1NzE0
OTgwQTk5MDAwMDFBOEEgLyogRnVuY3Rpb25hbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGdW5jdGlvbmFsLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMUFEQkVGQUQxMzBDNjg5QzAwRDYxRDE5IC8qIEZvcmNlUmVwYWludC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JjZVJlcGFpbnQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQkxQURCRUZCQzEzMEM2QTAxMDBENjFEMTkgLyogc2ltcGxlLWFj
Y2VsZXJhdGVkLWNvbXBvc2l0aW5nLmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAi
c2ltcGxlLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nLmh0bWwiOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkxQUVERTIyNDEzRTVFN0EwMDBFNjJGRTggLyogSW5qZWN0ZWRCdW5kbGVDb250
cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSW5q
ZWN0ZWRCdW5kbGVDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNDM5LDYgKzQ0MSw3IEBACiAJCQkJMEZDNkM0Q0UxNDEwMzRBRDAwNUI3RjBDIC8qIE1ldGFB
bGxvY2F0b3IuY3BwICovLAogCQkJCTBGQzZDNENCMTQxMDI3RTAwMDVCN0YwQyAvKiBSZWRCbGFj
a1RyZWUuY3BwICovLAogCQkJCUE3QTk2NkRBMTQwRUNDQzgwMDVFRjlCNCAvKiBDaGVja2VkQXJp
dGhtZXRpY09wZXJhdGlvbnMuY3BwICovLAorCQkJCTFBQTlFNTU3MTQ5ODBBOTkwMDAwMUE4QSAv
KiBGdW5jdGlvbmFsLmNwcCAqLywKIAkJCQkwQkNEODMzNDE0ODU3Q0U0MDBFQTIwMDMgLyogSGFz
aE1hcC5jcHAgKi8sCiAJCQkJODFCNTAxOTIxNDBGMjMyMzAwRDlFQjU4IC8qIFN0cmluZ0J1aWxk
ZXIuY3BwICovLAogCQkJCUMwMTM2M0M3MTNDMzk5NzMwMEVGMzk2NCAvKiBTdHJpbmdPcGVyYXRv
cnMuY3BwICovLApAQCAtNjk1LDYgKzY5OCw3IEBACiAJCQkJQkMwMjlCMTgxNDg2QUQ2NDAwODE3
REE5IC8qIFJldGFpblB0ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzAyOUIxQzE0ODZCMjU5
MDA4MTdEQTkgLyogUmV0YWluUHRyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM5MDFFMjQxNDky
QURDRTAwNzRBNjY3IC8qIFdLQ29ubmVjdGlvbi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQkxQUE5
RTU1OTE0OTgwQTk5MDAwMDFBOEEgLyogRnVuY3Rpb25hbC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvRnVuY3Rpb25hbC5jcHAgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0Z1bmN0aW9uYWwuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkNDRjMGE1
ZmZlYWNkYTNmMjhiYzM4ODA4Y2UxYWIwMzY2ZTEzYzcKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL0Z1bmN0aW9uYWwuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uYWwu
aD4KKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitzdGF0aWMgaW50IHJldHVybkZvcnR5
VHdvKCkKK3sKKyAgICByZXR1cm4gNDI7Cit9CisKK1RFU1QoRnVuY3Rpb25hbFRlc3QsIEJhc2lj
KQoreworICAgIEZ1bmN0aW9uPGludCgpPiBlbXB0eUZ1bmN0aW9uOworICAgIEFTU0VSVF9UUlVF
KGVtcHR5RnVuY3Rpb24uaXNOdWxsKCkpOworCisgICAgRnVuY3Rpb248aW50KCk+IHJldHVybkZv
cnR5VHdvRnVuY3Rpb24gPSBiaW5kKHJldHVybkZvcnR5VHdvKTsKKyAgICBBU1NFUlRfRkFMU0Uo
cmV0dXJuRm9ydHlUd29GdW5jdGlvbi5pc051bGwoKSk7CisgICAgQVNTRVJUX0VRKDQyLCByZXR1
cm5Gb3J0eVR3b0Z1bmN0aW9uKCkpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJ
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL3dpbi9UZXN0V2ViS2l0QVBJLnZjcHJv
aiBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCmluZGV4IDky
Yjc3ZGUzMzA2ODZmMzJmYzE0ZjdmOTg0MjE2NGQ1MmE4ZDM2NzQuLmUzNmJmZDBmYzUxYjc1ODVh
NzBhYjFjYmZhOTU0MWYwOTQ5ZjAxYWQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
d2luL1Rlc3RXZWJLaXRBUEkudmNwcm9qCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvd2luL1Rl
c3RXZWJLaXRBUEkudmNwcm9qCkBAIC02NDAsNiArNjQwLDEwIEBACiAJCQkJCT4KIAkJCQk8L0Zp
bGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxUZXN0c1xXVEZcRnVuY3Rpb25h
bC5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRo
PSIuLlxUZXN0c1xXVEZcSGFzaE1hcC5jcHAiCiAJCQkJCT4KIAkJCQk8L0ZpbGU+Cg==
</data>
<flag name="review"
          id="119011"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="119021"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>