<?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>28136</bug_id>
          
          <creation_ts>2009-08-09 21:34:00 -0700</creation_ts>
          <short_desc>Need to refactor WorkerObjectProxy</short_desc>
          <delta_ts>2009-08-11 09:33:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</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>28170</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrew Wilson">atwilson</reporter>
          <assigned_to name="Andrew Wilson">atwilson</assigned_to>
          <cc>michaeln</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>138591</commentid>
    <comment_count>0</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-08-09 21:34:00 -0700</bug_when>
    <thetext>Some of the APIs in WorkerObjectProxy are also useful for SharedWorkers - we should refactor the common APIs into a separate class.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138597</commentid>
    <comment_count>1</comment_count>
      <attachid>34439</attachid>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-08-09 21:52:40 -0700</bug_when>
    <thetext>Created attachment 34439
proposed patch

This is the first part of my upcoming patch that adds lifecycle management for shared workers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138921</commentid>
    <comment_count>2</comment_count>
      <attachid>34439</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2009-08-11 02:03:19 -0700</bug_when>
    <thetext>Comment on attachment 34439
proposed patch

&gt; diff --git a/WebCore/workers/WorkerReportingProxy.h b/WebCore/workers/WorkerReportingProxy.h

&gt; +
&gt; +    // APIs used by workers to report console activity.
&gt; +    class WorkerReportingProxy {
&gt; +    public:
&gt; +        virtual ~WorkerReportingProxy() {}
Nice to add a space in the {}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>138989</commentid>
    <comment_count>3</comment_count>
    <who name="Andrew Wilson">atwilson</who>
    <bug_when>2009-08-11 09:33:47 -0700</bug_when>
    <thetext>Committed as r47036</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34439</attachid>
            <date>2009-08-09 21:52:40 -0700</date>
            <delta_ts>2009-08-11 02:03:19 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>x</filename>
            <type>text/plain</type>
            <size>28759</size>
            <attacher name="Andrew Wilson">atwilson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MWI4Mjk2YS4uZGE3YjAxOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw2NyBAQAorMjAwOS0wOC0wOSAgRHJldyBXaWxzb24g
IDxhdHdpbHNvbkBnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIE5lZWQgdG8gcmVmYWN0b3IgV29ya2VyT2JqZWN0UHJveHkuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODEzNgorCisgICAg
ICAgIEFkZGVkIFdvcmtlclJlcG9ydGluZ1Byb3h5IGZvciByZXBvcnRpbmcgd29ya2VyIHN0YXRl
IChleGNlcHRpb25zLCBjb25zb2xlIG1lc3NhZ2VzLCB0aHJlYWQgZXhpdGVkKSB0byB0aGUgcGFy
ZW50LgorCisgICAgICAgIEV4aXN0aW5nIHRlc3RzIGFyZSBzdWZmaWNpZW50LCBhcyB0aGlzIGlz
IG9ubHkgYSByZWZhY3RvcmluZy4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAg
ICBBZGRlZCBXb3JrZXJSZXBvcnRpbmdQcm94eS5oIHRvIGJ1aWxkLgorICAgICAgICAqIFdlYkNv
cmUuZ3lwaToKKyAgICAgICAgQWRkZWQgV29ya2VyUmVwb3J0aW5nUHJveHkuaCB0byBidWlsZC4K
KyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgQWRkZWQg
V29ya2VyUmVwb3J0aW5nUHJveHkuaCB0byBidWlsZC4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgIEFkZGVkIFdvcmtlclJlcG9ydGluZ1Byb3h5
LmggdG8gYnVpbGQuCisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNw
cDoKKyAgICAgICAgKiB3b3JrZXJzL0RlZGljYXRlZFdvcmtlckNvbnRleHQuaDoKKyAgICAgICAg
UmVtb3ZlZCBhZGRNZXNzYWdlL2ZvcndhcmRFeGNlcHRpb24oKSBBUElzIC0gbm93IGhhbmRsZWQg
YnkgV29ya2VyUmVwb3J0aW5nUHJveHkuCisgICAgICAgICogd29ya2Vycy9EZWRpY2F0ZWRXb3Jr
ZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVkaWNhdGVkV29ya2VyVGhyZWFkOjpE
ZWRpY2F0ZWRXb3JrZXJUaHJlYWQpOgorICAgICAgICBDaGFuZ2VkIGNvbnN0cnVjdG9yIHRvIHBh
c3MgV29ya2VyUmVwb3J0aW5nUHJveHkgdG8gYmFzZSBjbGFzcy4KKyAgICAgICAgKiB3b3JrZXJz
L0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDoKKyAgICAgICAgVXBkYXRlZCBTaGFy
ZWRXb3JrZXJQcm94eSB0byBpbXBsZW1lbnQgV29ya2VyUmVwb3J0aW5nUHJveHkgaW50ZXJmYWNl
LgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyUHJveHk6OnBvc3RFeGNlcHRpb25Ub1dv
cmtlck9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpTaGFyZWRXb3JrZXJQcm94eTo6cG9zdENv
bnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29y
a2VyUHJveHk6OndvcmtlckNvbnRleHRDbG9zZWQpOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVk
V29ya2VyUHJveHk6OndvcmtlckNvbnRleHREZXN0cm95ZWQpOgorICAgICAgICAoV2ViQ29yZTo6
RGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnk6OndvcmtlclNjcmlwdExvYWRlZCk6CisgICAg
ICAgIE5vdyBwYXNzZXMgaW4gV29ya2VyUmVwb3J0aW5nUHJveHkgd2hlbiBjcmVhdGluZyBTaGFy
ZWRXb3JrZXJUaHJlYWQuCisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0LmNw
cDoKKyAgICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlckNvbnRleHQuaDoKKyAgICAgICAgUmVt
b3ZlZCBhZGRNZXNzYWdlL2ZvcndhcmRFeGNlcHRpb24oKSBBUElzIC0gbm93IGhhbmRsZWQgYnkg
V29ya2VyUmVwb3J0aW5nUHJveHkuCisgICAgICAgICogd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJl
YWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U2hhcmVkV29ya2VyVGhyZWFkOjpTaGFyZWRXb3JrZXJUaHJlYWQp
OgorICAgICAgICBQYXNzZXMgV29ya2VyUmVwb3J0aW5nUHJveHkgdG8gYmFzZSBjbGFzcyBjb25z
dHJ1Y3Rvci4KKyAgICAgICAgKiB3b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5oOgorICAgICAg
ICBDb25zdHJ1Y3RvciBub3cgdGFrZXMgYSBXb3JrZXJSZXBvcnRpbmdQcm94eS4KKyAgICAgICAg
KiB3b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyQ29u
dGV4dDo6fldvcmtlckNvbnRleHQpOgorICAgICAgICBNb3ZlZCBjb2RlIHRoYXQgY2FsbHMgd29y
a2VyQ29udGV4dERlc3Ryb3llZCgpIGludG8gYmFzZSBjbGFzcyBzbyBzaGFyZWQgd29ya2VycyBz
aGFyZSB0aGlzIGZ1bmN0aW9uYWxpdHkuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0
OjpjbG9zZSk6CisgICAgICAgIE5vdyBub3RpZmllcyBXb3JrZXJSZXBvcnRpbmdQcm94eSB3aGVu
IHRoZSB0aHJlYWQgaXMgY2xvc2luZy4KKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckNvbnRleHQ6
OnJlcG9ydEV4Y2VwdGlvbik6CisgICAgICAgIFJlcG9ydHMgZXhjZXB0aW9ucyB2aWEgV29ya2Vy
UmVwb3J0aW5nUHJveHkuCisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJDb250ZXh0OjphZGRNZXNz
YWdlKToKKyAgICAgICAgUmVwb3J0cyBjb25zb2xlIG1lc3NhZ2VzIHZpYSBXb3JrZXJSZXBvcnRp
bmdQcm94eS4KKyAgICAgICAgKiB3b3JrZXJzL1dvcmtlckNvbnRleHQuaDoKKyAgICAgICAgKiB3
b3JrZXJzL1dvcmtlck9iamVjdFByb3h5Lmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJPYmpl
Y3RQcm94eTo6d29ya2VyQ29udGV4dENsb3NlZCk6CisgICAgICAgIERlZmF1bHQgZW1wdHkgaW1w
bGVtZW50YXRpb24gZm9yIGRlZGljYXRlZCB3b3JrZXJzLgorICAgICAgICAqIHdvcmtlcnMvV29y
a2VyUmVwb3J0aW5nUHJveHkuaDogQWRkZWQuCisgICAgICAgIEJhc2UgaW50ZXJmYWNlIHRoYXQg
Y29udGFpbnMgQVBJcyBtb3ZlZCBmcm9tIFdvcmtlck9iamVjdFByb3h5LgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyUmVwb3J0aW5nUHJveHk6On5Xb3JrZXJSZXBvcnRpbmdQcm94eSk6CisgICAg
ICAgICogd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2Vy
VGhyZWFkOjpXb3JrZXJUaHJlYWQpOgorICAgICAgICBVcGRhdGVkIGNvbnN0cnVjdG9yIHRvIGFj
Y2VwdCBhIFdvcmtlclJlcG9ydGluZ1Byb3h5LgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyVGhy
ZWFkLmg6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWQ6OndvcmtlclJlcG9ydGluZ1By
b3h5KToKKwogMjAwOS0wOC0wOSAgTmlrb2xhcyBaaW1tZXJtYW5uICA8bmlrb2xhcy56aW1tZXJt
YW5uQHRvcmNobW9iaWxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9yZ2UgU3RhaWtv
cy4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvR05VbWFrZWZpbGUuYW0gYi9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCmluZGV4IDVjYzFmZDYuLmJhNDIyNzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvR05VbWFr
ZWZpbGUuYW0KKysrIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQpAQCAtMjM3MCw2ICsyMzcwLDcg
QEAgd2ViY29yZV9zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5n
UHJveHkuY3BwIFwKIAlXZWJDb3JlL3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCBcCiAJ
V2ViQ29yZS93b3JrZXJzL1dvcmtlck9iamVjdFByb3h5LmggXAorCVdlYkNvcmUvd29ya2Vycy9X
b3JrZXJSZXBvcnRpbmdQcm94eS5oIFwKIAlXZWJDb3JlL3dvcmtlcnMvV29ya2VyUnVuTG9vcC5j
cHAgXAogCVdlYkNvcmUvd29ya2Vycy9Xb3JrZXJSdW5Mb29wLmggXAogCVdlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJTY3JpcHRMb2FkZXIuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS5n
eXBpIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKaW5kZXggNDM4MTkwZS4uMWNmOThlNiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTMzNTMsNiArMzM1Myw3IEBACiAgICAgICAgICAgICAnd29ya2Vycy9Xb3JrZXJNZXNzYWdpbmdQ
cm94eS5jcHAnLAogICAgICAgICAgICAgJ3dvcmtlcnMvV29ya2VyTWVzc2FnaW5nUHJveHkuaCcs
CiAgICAgICAgICAgICAnd29ya2Vycy9Xb3JrZXJPYmplY3RQcm94eS5oJywKKyAgICAgICAgICAg
ICd3b3JrZXJzL1dvcmtlclJlcG9ydGluZ1Byb3h5LmgnLAogICAgICAgICAgICAgJ3dvcmtlcnMv
V29ya2VyUnVuTG9vcC5jcHAnLAogICAgICAgICAgICAgJ3dvcmtlcnMvV29ya2VyUnVuTG9vcC5o
JywKICAgICAgICAgICAgICd3b3JrZXJzL1dvcmtlclNjcmlwdExvYWRlci5jcHAnLApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1dlYkNvcmUvV2Vi
Q29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggNjkwOGZlZS4uMDgzODBiMSAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagorKysgYi9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC0yNDI1Miw2ICsyNDI1MiwxMCBAQAog
CQkJCT4NCiAJCQk8L0ZpbGU+DQogCQkJPEZpbGUNCisJCQkJUmVsYXRpdmVQYXRoPSIuLlx3b3Jr
ZXJzXFdvcmtlclJlcG9ydGluZ1Byb3h5LmgiDQorCQkJCT4NCisJCQk8L0ZpbGU+DQorCQkJPEZp
bGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlx3b3JrZXJzXFdvcmtlclJ1bkxvb3AuY3BwIg0KIAkJ
CQk+DQogCQkJPC9GaWxlPg0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMDc1M2RjNy4uNzUyZThmZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTY3NSw2ICs2NzUsNyBAQAogCQk0MTYyQTQ1ODEwMTE0NjQ3MDBE
RkYzRUQgLyogSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTYyQTQ1NjEwMTE0NjQ3MDBERkYzRUQgLyogSlNE
ZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggKi87IH07CiAJCTQxNjdFQkY1MTAyOTYyQkEwMDNEMjUy
QSAvKiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTY3RUJGMzEwMjk2MkJBMDAzRDI1MkEgLyog
RGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwICovOyB9OwogCQk0MTY3RUJGNjEwMjk2
MkJBMDAzRDI1MkEgLyogRGVmYXVsdFNoYXJlZFdvcmtlclJlcG9zaXRvcnkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNjdFQkY0MTAyOTYyQkEwMDNE
MjUyQSAvKiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5oICovOyB9OworCQk0MTZFMjlB
NjEwMkZBOTYyMDA3RkMxNEUgLyogV29ya2VyUmVwb3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNkUyOUE1MTAyRkE5NjIwMDdGQzE0
RSAvKiBXb3JrZXJSZXBvcnRpbmdQcm94eS5oICovOyB9OwogCQk0MTZFNzVCRTBFREY4RkQ3MDAz
NjBFMUQgLyogU2NyaXB0Q2FsbFN0YWNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTZFNzVCQzBFREY4RkQ3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbFN0
YWNrLmggKi87IH07CiAJCTQxNkU3NUJGMEVERjhGRDcwMDM2MEUxRCAvKiBTY3JpcHRDYWxsU3Rh
Y2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE2
RTc1QkQwRURGOEZENzAwMzYwRTFEIC8qIFNjcmlwdENhbGxTdGFjay5jcHAgKi87IH07CiAJCTQx
NkU3NUNCMEVERjkwQzcwMDM2MEUxRCAvKiBTY3JpcHRDYWxsRnJhbWUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNkU3NUM5MEVERjkwQzcwMDM2MEUx
RCAvKiBTY3JpcHRDYWxsRnJhbWUuaCAqLzsgfTsKQEAgLTU2NzMsNiArNTY3NCw3IEBACiAJCTQx
NjJBNDU2MTAxMTQ2NDcwMERGRjNFRCAvKiBKU0RlZGljYXRlZFdvcmtlckNvbnRleHQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNEZWRpY2F0ZWRXb3JrZXJDb250ZXh0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNjdFQkYzMTAyOTYyQkEwMDNEMjUyQSAv
KiBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IG5hbWUgPSBEZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHA7IHBhdGgg
PSB3b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE2N0VCRjQxMDI5NjJCQTAwM0QyNTJBIC8qIERlZmF1bHRTaGFy
ZWRXb3JrZXJSZXBvc2l0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IERl
ZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5Lmg7IHBhdGggPSB3b3JrZXJzL0RlZmF1bHRTaGFy
ZWRXb3JrZXJSZXBvc2l0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxNkUy
OUE1MTAyRkE5NjIwMDdGQzE0RSAvKiBXb3JrZXJSZXBvcnRpbmdQcm94eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IG5hbWUgPSBXb3JrZXJSZXBvcnRpbmdQcm94eS5oOyBwYXRoID0gd29y
a2Vycy9Xb3JrZXJSZXBvcnRpbmdQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTZFNzVCQzBFREY4RkQ3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbFN0YWNrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNjcmlwdENhbGxTdGFjay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTZFNzVCRDBFREY4RkQ3MDAzNjBFMUQgLyogU2NyaXB0Q2FsbFN0
YWNrLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNjcmlwdENhbGxT
dGFjay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNkU3NUM5MEVERjkwQzcw
MDM2MEUxRCAvKiBTY3JpcHRDYWxsRnJhbWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gU2NyaXB0Q2FsbEZyYW1lLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MDAyNiw2ICsxMDAyOCw3IEBACiAJCQkJMkU0MzQ2M0QwRjU0NkE4MjAwQjBGMUJBIC8qIFdvcmtl
ck1lc3NhZ2luZ1Byb3h5LmNwcCAqLywKIAkJCQkyRTQzNDYzRTBGNTQ2QTgyMDBCMEYxQkEgLyog
V29ya2VyTWVzc2FnaW5nUHJveHkuaCAqLywKIAkJCQkyRTQzNDYzRjBGNTQ2QTgyMDBCMEYxQkEg
LyogV29ya2VyT2JqZWN0UHJveHkuaCAqLywKKwkJCQk0MTZFMjlBNTEwMkZBOTYyMDA3RkMxNEUg
LyogV29ya2VyUmVwb3J0aW5nUHJveHkuaCAqLywKIAkJCQkyRTQzNDY0MDBGNTQ2QTgyMDBCMEYx
QkEgLyogV29ya2VyUnVuTG9vcC5jcHAgKi8sCiAJCQkJMkU0MzQ2NDEwRjU0NkE4MjAwQjBGMUJB
IC8qIFdvcmtlclJ1bkxvb3AuaCAqLywKIAkJCQlBN0Q2QjM0ODBGNjExMDQ1MDBCNzlGRDEgLyog
V29ya2VyU2NyaXB0TG9hZGVyLmNwcCAqLywKQEAgLTE3MTg1LDYgKzE3MTg4LDcgQEAKIAkJCQk0
OTQ4NEZDODEwMkNGMjNDMDAxODdERDMgLyogQ2FudmFzUGl4ZWxBcnJheS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNDk0ODRGQ0IxMDJDRjIzQzAwMTg3REQzIC8qIENhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDk0ODRGQ0UxMDJDRjIzQzAwMTg3REQzIC8qIENh
bnZhc1N0eWxlLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTZFMjlBNjEwMkZBOTYyMDA3RkMxNEUg
LyogV29ya2VyUmVwb3J0aW5nUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwIGIvV2ViQ29yZS93b3JrZXJz
L0RlZGljYXRlZFdvcmtlckNvbnRleHQuY3BwCmluZGV4IGFlNWM1NDcuLjZlNWEzMTcgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmNwcAorKysgYi9X
ZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4dC5jcHAKQEAgLTQ2LDIzICs0Niw2
IEBAIERlZGljYXRlZFdvcmtlckNvbnRleHQ6OkRlZGljYXRlZFdvcmtlckNvbnRleHQoY29uc3Qg
S1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVzCiB7CiB9CiAKLURlZGljYXRlZFdvcmtlckNvbnRl
eHQ6On5EZWRpY2F0ZWRXb3JrZXJDb250ZXh0KCkKLXsKLSAgICBBU1NFUlQoY3VycmVudFRocmVh
ZCgpID09IHRocmVhZCgpLT50aHJlYWRJRCgpKTsKLSAgICAvLyBOb3RpZnkgcGFyZW50IHdvcmtl
ciB3ZSBhcmUgZ29pbmcgYXdheS4gVGhpcyBjYW4gZnJlZSB0aGUgV29ya2VyVGhyZWFkIG9iamVj
dCwgc28gZG8gbm90IGFjY2VzcyBpdCBhZnRlciB0aGlzLgotICAgIHRocmVhZCgpLT53b3JrZXJP
YmplY3RQcm94eSgpLndvcmtlckNvbnRleHREZXN0cm95ZWQoKTsKLX0KLQotdm9pZCBEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0Ojpmb3J3YXJkRXhjZXB0aW9uKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNz
YWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwpCi17Ci0gICAgdGhy
ZWFkKCktPndvcmtlck9iamVjdFByb3h5KCkucG9zdEV4Y2VwdGlvblRvV29ya2VyT2JqZWN0KGVy
cm9yTWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKLX0KLQotdm9pZCBEZWRpY2F0ZWRX
b3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiBkZXN0aW5hdGlvbiwg
TWVzc2FnZVNvdXJjZSBzb3VyY2UsIE1lc3NhZ2VUeXBlIHR5cGUsIE1lc3NhZ2VMZXZlbCBsZXZl
bCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJp
bmcmIHNvdXJjZVVSTCkKLXsKLSAgICB0aHJlYWQoKS0+d29ya2VyT2JqZWN0UHJveHkoKS5wb3N0
Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChkZXN0aW5hdGlvbiwgc291cmNlLCB0eXBlLCBs
ZXZlbCwgbWVzc2FnZSwgbGluZU51bWJlciwgc291cmNlVVJMKTsKLX0KLQogdm9pZCBEZWRpY2F0
ZWRXb3JrZXJDb250ZXh0Ojpwb3N0TWVzc2FnZShjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIHBvc3RNZXNzYWdlKG1lc3NhZ2UsIDAsIGVjKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmggYi9XZWJDb3Jl
L3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyQ29udGV4dC5oCmluZGV4IGU5NzRjZWYuLmJlOWJlMGIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJDb250ZXh0LmgKKysr
IGIvV2ViQ29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckNvbnRleHQuaApAQCAtNDYsMTggKzQ2
LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgewogICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0KHVybCwgdXNlckFnZW50LCB0aHJl
YWQpKTsKICAgICAgICAgfQotICAgICAgICB2aXJ0dWFsIH5EZWRpY2F0ZWRXb3JrZXJDb250ZXh0
KCk7CiAKICAgICAgICAgdmlydHVhbCBib29sIGlzRGVkaWNhdGVkV29ya2VyQ29udGV4dCgpIGNv
bnN0IHsgcmV0dXJuIHRydWU7IH0KIAogICAgICAgICAvLyBPdmVycmlkZGVuIHRvIGFsbG93IHVz
IHRvIGNoZWNrIG91ciBwZW5kaW5nIGFjdGl2aXR5IGFmdGVyIGV4ZWN1dGluZyBpbXBvcnRlZCBz
Y3JpcHQuCiAgICAgICAgIHZpcnR1YWwgdm9pZCBpbXBvcnRTY3JpcHRzKGNvbnN0IFZlY3RvcjxT
dHJpbmc+JiB1cmxzLCBjb25zdCBTdHJpbmcmIGNhbGxlclVSTCwgaW50IGNhbGxlckxpbmUsIEV4
Y2VwdGlvbkNvZGUmKTsKIAotICAgICAgICAvLyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Ci0gICAg
ICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNzYWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiwgTWVzc2FnZVNv
dXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1
bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7Ci0KLSAgICAgICAg
dmlydHVhbCB2b2lkIGZvcndhcmRFeGNlcHRpb24oY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Us
IGludCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCk7Ci0KICAgICAgICAgLy8g
RXZlbnRUYXJnZXQKICAgICAgICAgdmlydHVhbCBEZWRpY2F0ZWRXb3JrZXJDb250ZXh0KiB0b0Rl
ZGljYXRlZFdvcmtlckNvbnRleHQoKSB7IHJldHVybiB0aGlzOyB9CiAgICAgICAgIHZvaWQgcG9z
dE1lc3NhZ2UoY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS93b3JrZXJzL0RlZGljYXRlZFdvcmtlclRocmVhZC5jcHAgYi9XZWJDb3JlL3dvcmtlcnMv
RGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcAppbmRleCAwOTA1ODQzLi5kNDc4OWExIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcAorKysgYi9XZWJD
b3JlL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyVGhyZWFkLmNwcApAQCAtNDUsNyArNDUsNyBAQCBQ
YXNzUmVmUHRyPERlZGljYXRlZFdvcmtlclRocmVhZD4gRGVkaWNhdGVkV29ya2VyVGhyZWFkOjpj
cmVhdGUoY29uc3QgS1VSTCYgc2NyaQogfQogCiBEZWRpY2F0ZWRXb3JrZXJUaHJlYWQ6OkRlZGlj
YXRlZFdvcmtlclRocmVhZChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50
LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2Fk
ZXJQcm94eSwgV29ya2VyT2JqZWN0UHJveHkmIHdvcmtlck9iamVjdFByb3h5KQotICAgIDogV29y
a2VyVGhyZWFkKHVybCwgdXNlckFnZW50LCBzb3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSkK
KyAgICA6IFdvcmtlclRocmVhZCh1cmwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgd29ya2VyTG9h
ZGVyUHJveHksIHdvcmtlck9iamVjdFByb3h5KQogICAgICwgbV93b3JrZXJPYmplY3RQcm94eSh3
b3JrZXJPYmplY3RQcm94eSkKIHsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vycy9EZWZh
dWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvRGVmYXVsdFNo
YXJlZFdvcmtlclJlcG9zaXRvcnkuY3BwCmluZGV4IDFjMWVkNGMuLmM5MDk4NGUgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvd29ya2Vycy9EZWZhdWx0U2hhcmVkV29ya2VyUmVwb3NpdG9yeS5jcHAKKysr
IGIvV2ViQ29yZS93b3JrZXJzL0RlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5LmNwcApAQCAt
NDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlNoYXJlZFdvcmtlckNvbnRleHQuaCIKICNpbmNsdWRl
ICJTaGFyZWRXb3JrZXJUaHJlYWQuaCIKICNpbmNsdWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgor
I2luY2x1ZGUgIldvcmtlclJlcG9ydGluZ1Byb3h5LmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0
TG9hZGVyLmgiCiAjaW5jbHVkZSAiV29ya2VyU2NyaXB0TG9hZGVyQ2xpZW50LmgiCiAKQEAgLTUx
LDcgKzUyLDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBTaGFyZWRXb3JrZXJQ
cm94eSA6IHB1YmxpYyBUaHJlYWRTYWZlU2hhcmVkPFNoYXJlZFdvcmtlclByb3h5PiwgcHVibGlj
IFdvcmtlckxvYWRlclByb3h5IHsKK2NsYXNzIFNoYXJlZFdvcmtlclByb3h5IDogcHVibGljIFRo
cmVhZFNhZmVTaGFyZWQ8U2hhcmVkV29ya2VyUHJveHk+LCBwdWJsaWMgV29ya2VyTG9hZGVyUHJv
eHksIHB1YmxpYyBXb3JrZXJSZXBvcnRpbmdQcm94eSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBh
c3NSZWZQdHI8U2hhcmVkV29ya2VyUHJveHk+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IEtVUkwmIHVybCkgeyByZXR1cm4gYWRvcHRSZWYobmV3IFNoYXJlZFdvcmtlclByb3h5KG5h
bWUsIHVybCkpOyB9CiAKQEAgLTY2LDggKzY3LDE1IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgcG9zdFRhc2tUb0xvYWRlcihQYXNzUmVmUHRyPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRh
c2s+KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgcG9zdFRhc2tGb3JN
b2RlVG9Xb3JrZXJDb250ZXh0KFBhc3NSZWZQdHI8U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFz
az4sIGNvbnN0IFN0cmluZyYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCisgICAgLy8gV29ya2Vy
UmVwb3J0aW5nUHJveHkKKyAgICB2aXJ0dWFsIHZvaWQgcG9zdEV4Y2VwdGlvblRvV29ya2VyT2Jq
ZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3QgU3Ry
aW5nJiBzb3VyY2VVUkwpOworICAgIHZpcnR1YWwgdm9pZCBwb3N0Q29uc29sZU1lc3NhZ2VUb1dv
cmtlck9iamVjdChNZXNzYWdlRGVzdGluYXRpb24sIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBl
LCBNZXNzYWdlTGV2ZWwsIGNvbnN0IFN0cmluZyYgbWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMKTsKKyAgICB2aXJ0dWFsIHZvaWQgd29ya2VyQ29udGV4dENs
b3NlZCgpOworICAgIHZpcnR1YWwgdm9pZCB3b3JrZXJDb250ZXh0RGVzdHJveWVkKCk7CisKICAg
ICAvLyBVcGRhdGVzIHRoZSBsaXN0IG9mIHRoZSB3b3JrZXIncyBkb2N1bWVudHMsIHBlciBzZWN0
aW9uIDQuNSBvZiB0aGUgV2ViV29ya2VycyBzcGVjLgogICAgIHZvaWQgYWRkVG9Xb3JrZXJEb2N1
bWVudHMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCopOworCiBwcml2YXRlOgogICAgIFNoYXJlZFdv
cmtlclByb3h5KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgS1VSTCYpOwogICAgIGJvb2wgbV9j
bG9zaW5nOwpAQCAtODMsNiArOTEsMjkgQEAgU2hhcmVkV29ya2VyUHJveHk6OlNoYXJlZFdvcmtl
clByb3h5KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgS1VSTCYgdXJsKQogewogfQogCit2b2lk
IFNoYXJlZFdvcmtlclByb3h5Ojpwb3N0RXhjZXB0aW9uVG9Xb3JrZXJPYmplY3QoY29uc3QgU3Ry
aW5nJiwgaW50LCBjb25zdCBTdHJpbmcmKQoreworICAgIC8vIEZJWE1FOiBMb2cgZXhjZXB0aW9u
cyB0byBhbGwgcGFyZW50IGRvY3VtZW50cy4KKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIFNoYXJlZFdvcmtlclByb3h5Ojpwb3N0Q29uc29sZU1lc3NhZ2VUb1dvcmtlck9iamVjdChN
ZXNzYWdlRGVzdGluYXRpb24sIE1lc3NhZ2VTb3VyY2UsIE1lc3NhZ2VUeXBlLCBNZXNzYWdlTGV2
ZWwsIGNvbnN0IFN0cmluZyYsIGludCwgY29uc3QgU3RyaW5nJikKK3sKKyAgICAvLyBGSVhNRTog
TG9nIGNvbnNvbGUgbWVzc2FnZXMgdG8gYWxsIHBhcmVudCBkb2N1bWVudHMuCisgICAgbm90SW1w
bGVtZW50ZWQoKTsKK30KKwordm9pZCBTaGFyZWRXb3JrZXJQcm94eTo6d29ya2VyQ29udGV4dENs
b3NlZCgpCit7CisgICAgbV9jbG9zaW5nID0gdHJ1ZTsKK30KKwordm9pZCBTaGFyZWRXb3JrZXJQ
cm94eTo6d29ya2VyQ29udGV4dERlc3Ryb3llZCgpCit7CisgICAgLy8gRklYTUU6IFJlbW92ZSB0
aGUgcHJveHkgZnJvbSB0aGUgcmVwb3NpdG9yeSBvbmNlIHRoZSB3b3JrZXIgY29udGV4dCBpcyBk
ZXN0cm95ZWQuCisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwogdm9pZCBTaGFyZWRXb3JrZXJQ
cm94eTo6YWRkVG9Xb3JrZXJEb2N1bWVudHMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4
dCkKIHsKICAgICAvLyBOZXN0ZWQgd29ya2VycyBhcmUgbm90IHlldCBzdXBwb3J0ZWQsIHNvIHBh
c3NlZC1pbiBjb250ZXh0IHNob3VsZCBhbHdheXMgYmUgYSBEb2N1bWVudC4KQEAgLTE3Nyw3ICsy
MDgsNyBAQCB2b2lkIERlZmF1bHRTaGFyZWRXb3JrZXJSZXBvc2l0b3J5Ojp3b3JrZXJTY3JpcHRM
b2FkZWQoU2hhcmVkV29ya2VyUHJveHkmIHByb3h5LAogCiAgICAgLy8gQW5vdGhlciBsb2FkZXIg
bWF5IGhhdmUgYWxyZWFkeSBzdGFydGVkIHVwIGEgdGhyZWFkIGZvciB0aGlzIHByb3h5IC0gaWYg
c28sIGp1c3Qgc2VuZCBhIGNvbm5lY3QgdG8gdGhlIHByZS1leGlzdGluZyB0aHJlYWQuCiAgICAg
aWYgKCFwcm94eS50aHJlYWQoKSkgewotICAgICAgICBSZWZQdHI8U2hhcmVkV29ya2VyVGhyZWFk
PiB0aHJlYWQgPSBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShwcm94eS5uYW1lKCksIHByb3h5
LnVybCgpLCB1c2VyQWdlbnQsIHdvcmtlclNjcmlwdCwgcHJveHkpOworICAgICAgICBSZWZQdHI8
U2hhcmVkV29ya2VyVGhyZWFkPiB0aHJlYWQgPSBTaGFyZWRXb3JrZXJUaHJlYWQ6OmNyZWF0ZShw
cm94eS5uYW1lKCksIHByb3h5LnVybCgpLCB1c2VyQWdlbnQsIHdvcmtlclNjcmlwdCwgcHJveHks
IHByb3h5KTsKICAgICAgICAgcHJveHkuc2V0VGhyZWFkKHRocmVhZCk7CiAgICAgICAgIHRocmVh
ZC0+c3RhcnQoKTsKICAgICB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29y
a2VyQ29udGV4dC5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5jcHAK
aW5kZXggMmM1MGQ5NC4uZWYzNWE2MCAxMDA2NDQKLS0tIGEvV2ViQ29yZS93b3JrZXJzL1NoYXJl
ZFdvcmtlckNvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJDb250
ZXh0LmNwcApAQCAtMzksNyArMzksNiBAQAogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiU2hhcmVkV29ya2VyVGhyZWFkLmgi
Ci0jaW5jbHVkZSAiV29ya2VyT2JqZWN0UHJveHkuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC01MywxNyArNTIsNiBAQCBTaGFyZWRXb3JrZXJDb250ZXh0Ojp+U2hhcmVkV29ya2VyQ29u
dGV4dCgpCiB7CiB9CiAKLXZvaWQgU2hhcmVkV29ya2VyQ29udGV4dDo6Zm9yd2FyZEV4Y2VwdGlv
bihjb25zdCBTdHJpbmcmLCBpbnQsIGNvbnN0IFN0cmluZyYpCi17Ci0gICAgLy8gRklYTUU6IGZv
cndhcmQgdG8gY29uc29sZSAoZG8gbm90IG5lZWQgdG8gcmVwb3J0IHRvIHBhcmVudCBjb250ZXh0
KS4KLX0KLQotdm9pZCBTaGFyZWRXb3JrZXJDb250ZXh0OjphZGRNZXNzYWdlKE1lc3NhZ2VEZXN0
aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3NhZ2VMZXZlbCwgY29uc3Qg
U3RyaW5nJiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYpCi17Ci0gICAgLy8gRklYTUU6IGZvcndh
cmQgdG8gY29uc29sZS4KLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFNoYXJlZFdv
cmtlckNvbnRleHQ6OmRpc3BhdGNoQ29ubmVjdChQYXNzUmVmUHRyPE1lc3NhZ2VQb3J0PiBwb3J0
KQogewogICAgIC8vIFNpbmNlIGNsb3NlKCkgc3RvcHMgdGhlIHRocmVhZCBldmVudCBsb29wLCB0
aGlzIHNob3VsZCBub3QgZXZlciBnZXQgY2FsbGVkIHdoaWxlIGNsb3NpbmcuCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5oIGIvV2ViQ29yZS93b3JrZXJz
L1NoYXJlZFdvcmtlckNvbnRleHQuaAppbmRleCBhN2U0MTMzLi5kNjk1NmNkIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyQ29udGV4dC5oCisrKyBiL1dlYkNvcmUvd29y
a2Vycy9TaGFyZWRXb3JrZXJDb250ZXh0LmgKQEAgLTUwLDExICs1MCw2IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTaGFyZWRXb3JrZXJDb250ZXh0KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgICAgIC8vIFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQKLSAgICAgICAgdmlydHVhbCB2b2lkIGFkZE1lc3NhZ2UoTWVzc2FnZURlc3RpbmF0aW9uLCBN
ZXNzYWdlU291cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1l
c3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKLQot
ICAgICAgICB2aXJ0dWFsIHZvaWQgZm9yd2FyZEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9y
TWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKLQogICAg
ICAgICAvLyBFdmVudFRhcmdldAogICAgICAgICB2aXJ0dWFsIFNoYXJlZFdvcmtlckNvbnRleHQq
IHRvU2hhcmVkV29ya2VyQ29udGV4dCgpIHsgcmV0dXJuIHRoaXM7IH0KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS93b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5jcHAgYi9XZWJDb3JlL3dvcmtlcnMv
U2hhcmVkV29ya2VyVGhyZWFkLmNwcAppbmRleCA0MGJiMmRlLi5kZWQ0ODM0IDEwMDY0NAotLS0g
YS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcAorKysgYi9XZWJDb3JlL3dv
cmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmNwcApAQCAtMzgsMTMgKzM4LDEzIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJUaHJlYWQ+IFNoYXJlZFdv
cmtlclRocmVhZDo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgS1VSTCYgc2NyaXB0
VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBX
b3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHkpCitQYXNzUmVmUHRyPFNoYXJlZFdv
cmtlclRocmVhZD4gU2hhcmVkV29ya2VyVGhyZWFkOjpjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBT
dHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwg
V29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5KQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgU2hhcmVkV29ya2VyVGhyZWFkKG5hbWUsIHNjcmlwdFVSTCwgdXNlckFn
ZW50LCBzb3VyY2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSkpOworICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgU2hhcmVkV29ya2VyVGhyZWFkKG5hbWUsIHNjcmlwdFVSTCwgdXNlckFnZW50LCBzb3Vy
Y2VDb2RlLCB3b3JrZXJMb2FkZXJQcm94eSwgd29ya2VyUmVwb3J0aW5nUHJveHkpKTsKIH0KIAot
U2hhcmVkV29ya2VyVGhyZWFkOjpTaGFyZWRXb3JrZXJUaHJlYWQoY29uc3QgU3RyaW5nJiBuYW1l
LCBjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcm
IHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSkKLSAgICA6
IFdvcmtlclRocmVhZCh1cmwsIHVzZXJBZ2VudCwgc291cmNlQ29kZSwgd29ya2VyTG9hZGVyUHJv
eHkpCitTaGFyZWRXb3JrZXJUaHJlYWQ6OlNoYXJlZFdvcmtlclRocmVhZChjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IEtVUkwmIHVybCwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0
cmluZyYgc291cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmIHdvcmtlckxvYWRlclByb3h5LCBX
b3JrZXJSZXBvcnRpbmdQcm94eSYgd29ya2VyUmVwb3J0aW5nUHJveHkpCisgICAgOiBXb3JrZXJU
aHJlYWQodXJsLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUsIHdvcmtlckxvYWRlclByb3h5LCB3b3Jr
ZXJSZXBvcnRpbmdQcm94eSkKICAgICAsIG1fbmFtZShuYW1lLmNvcHkoKSkKIHsKIH0KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvd29ya2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuaCBiL1dlYkNvcmUvd29y
a2Vycy9TaGFyZWRXb3JrZXJUaHJlYWQuaAppbmRleCAxNTgzOGQ3Li5kOTZmZDJhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL3dvcmtlcnMvU2hhcmVkV29ya2VyVGhyZWFkLmgKKysrIGIvV2ViQ29yZS93
b3JrZXJzL1NoYXJlZFdvcmtlclRocmVhZC5oCkBAIC0zOCwxNCArMzgsMTQgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgY2xhc3MgU2hhcmVkV29ya2VyVGhyZWFkIDogcHVibGljIFdvcmtl
clRocmVhZCB7CiAgICAgcHVibGljOgotICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRX
b3JrZXJUaHJlYWQ+IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25z
dCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2Fk
ZXJQcm94eSYpOworICAgICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRXb3JrZXJUaHJlYWQ+
IGNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCwgY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdv
cmtlclJlcG9ydGluZ1Byb3h5Jik7CiAgICAgICAgIH5TaGFyZWRXb3JrZXJUaHJlYWQoKTsKIAog
ICAgIHByb3RlY3RlZDoKICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdvcmtlckNvbnRleHQ+
IGNyZWF0ZVdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYpOwogCiAgICAg
cHJpdmF0ZToKLSAgICAgICAgU2hhcmVkV29ya2VyVGhyZWFkKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJj
ZUNvZGUsIFdvcmtlckxvYWRlclByb3h5Jik7CisgICAgICAgIFNoYXJlZFdvcmtlclRocmVhZChj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwg
Y29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYsIFdvcmtlclJlcG9y
dGluZ1Byb3h5Jik7CiAKICAgICAgICAgU3RyaW5nIG1fbmFtZTsKICAgICB9OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuY3BwIGIvV2ViQ29yZS93b3JrZXJzL1dv
cmtlckNvbnRleHQuY3BwCmluZGV4IDcyMjU4OGYuLjYwNGYwMmUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmNwcAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Q29udGV4dC5jcHAKQEAgLTY0LDYgKzY0LDkgQEAgV29ya2VyQ29udGV4dDo6V29ya2VyQ29udGV4
dChjb25zdCBLVVJMJiB1cmwsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBXb3JrZXJUaHIKIAog
V29ya2VyQ29udGV4dDo6fldvcmtlckNvbnRleHQoKQogeworICAgIEFTU0VSVChjdXJyZW50VGhy
ZWFkKCkgPT0gdGhyZWFkKCktPnRocmVhZElEKCkpOworICAgIC8vIE5vdGlmeSBwcm94eSB0aGF0
IHdlIGFyZSBnb2luZyBhd2F5LiBUaGlzIGNhbiBmcmVlIHRoZSBXb3JrZXJUaHJlYWQgb2JqZWN0
LCBzbyBkbyBub3QgYWNjZXNzIGl0IGFmdGVyIHRoaXMuCisgICAgdGhyZWFkKCktPndvcmtlclJl
cG9ydGluZ1Byb3h5KCkud29ya2VyQ29udGV4dERlc3Ryb3llZCgpOwogfQogCiBTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBXb3JrZXJDb250ZXh0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29u
c3QKQEAgLTEwOSw2ICsxMTIsOCBAQCB2b2lkIFdvcmtlckNvbnRleHQ6OmNsb3NlKCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgbV9jbG9zaW5nID0gdHJ1ZTsKKyAgICAvLyBOb3RpZnkgcGFyZW50
IHRoYXQgdGhpcyBjb250ZXh0IGlzIGNsb3NlZC4KKyAgICB0aHJlYWQoKS0+d29ya2VyUmVwb3J0
aW5nUHJveHkoKS53b3JrZXJDb250ZXh0Q2xvc2VkKCk7CiAgICAgbV90aHJlYWQtPnN0b3AoKTsK
IH0KIApAQCAtMjcxLDcgKzI3NiwxMiBAQCB2b2lkIFdvcmtlckNvbnRleHQ6OnJlcG9ydEV4Y2Vw
dGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsCiAgICAgICAg
IGVycm9ySGFuZGxlZCA9IG9uZXJyb3IoKS0+cmVwb3J0RXJyb3IoZXJyb3JNZXNzYWdlLCBzb3Vy
Y2VVUkwsIGxpbmVOdW1iZXIpOwogCiAgICAgaWYgKCFlcnJvckhhbmRsZWQpCi0gICAgICAgIGZv
cndhcmRFeGNlcHRpb24oZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworICAg
ICAgICB0aHJlYWQoKS0+d29ya2VyUmVwb3J0aW5nUHJveHkoKS5wb3N0RXhjZXB0aW9uVG9Xb3Jr
ZXJPYmplY3QoZXJyb3JNZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOworfQorCit2b2lk
IFdvcmtlckNvbnRleHQ6OmFkZE1lc3NhZ2UoTWVzc2FnZURlc3RpbmF0aW9uIGRlc3RpbmF0aW9u
LCBNZXNzYWdlU291cmNlIHNvdXJjZSwgTWVzc2FnZVR5cGUgdHlwZSwgTWVzc2FnZUxldmVsIGxl
dmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVuc2lnbmVkIGxpbmVOdW1iZXIsIGNvbnN0IFN0
cmluZyYgc291cmNlVVJMKQoreworICAgIHRocmVhZCgpLT53b3JrZXJSZXBvcnRpbmdQcm94eSgp
LnBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2VyT2JqZWN0KGRlc3RpbmF0aW9uLCBzb3VyY2UsIHR5
cGUsIGxldmVsLCBtZXNzYWdlLCBsaW5lTnVtYmVyLCBzb3VyY2VVUkwpOwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4
dC5oIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlckNvbnRleHQuaAppbmRleCAxYzQwZWIwLi4yYjU4
YjgwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyQ29udGV4dC5oCisrKyBiL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJDb250ZXh0LmgKQEAgLTQ4LDcgKzQ4LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogCiAgICAgY2xhc3MgV29ya2VyQ29udGV4dCA6IHB1YmxpYyBSZWZDb3VudGVk
PFdvcmtlckNvbnRleHQ+LCBwdWJsaWMgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgcHVibGljIEV2
ZW50VGFyZ2V0IHsKICAgICBwdWJsaWM6Ci0KICAgICAgICAgdmlydHVhbCB+V29ya2VyQ29udGV4
dCgpOwogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc1dvcmtlckNvbnRleHQoKSBjb25zdCB7IHJl
dHVybiB0cnVlOyB9CkBAIC0xMDMsOCArMTAyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAg
ICAgICAgIC8vIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQKICAgICAgICAgdmlydHVhbCB2b2lkIHJl
cG9ydEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIs
IGNvbnN0IFN0cmluZyYgc291cmNlVVJMKTsKLQotICAgICAgICB2aXJ0dWFsIHZvaWQgZm9yd2Fy
ZEV4Y2VwdGlvbihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNv
bnN0IFN0cmluZyYgc291cmNlVVJMKSA9IDA7CisgICAgICAgIHZpcnR1YWwgdm9pZCBhZGRNZXNz
YWdlKE1lc3NhZ2VEZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1lc3Nh
Z2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCB1bnNpZ25lZCBsaW5lTnVtYmVyLCBjb25z
dCBTdHJpbmcmIHNvdXJjZVVSTCk7CiAKICAgICAgICAgLy8gVGhlc2UgbWV0aG9kcyBhcmUgdXNl
ZCBmb3IgR0MgbWFya2luZy4gU2VlIEpTV29ya2VyQ29udGV4dDo6bWFyaygpIGluCiAgICAgICAg
IC8vIEpTV29ya2VyQ29udGV4dEN1c3RvbS5jcHAuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyT2JqZWN0UHJveHkuaCBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPYmplY3RQcm94
eS5oCmluZGV4IGM1ZjQ0NTYuLjU4NmU3YTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvd29ya2Vycy9X
b3JrZXJPYmplY3RQcm94eS5oCisrKyBiL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJPYmplY3RQcm94
eS5oCkBAIC0zMywzMSArMzMsMjQgQEAKIAogI2lmIEVOQUJMRShXT1JLRVJTKQogCi0jaW5jbHVk
ZSAiQ29uc29sZS5oIgorI2luY2x1ZGUgIldvcmtlclJlcG9ydGluZ1Byb3h5LmgiCiAKICNpbmNs
dWRlIDx3dGYvUGFzc093blB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICBjbGFz
cyBNZXNzYWdlUG9ydENoYW5uZWw7Ci0gICAgY2xhc3MgU3RyaW5nOwogCiAgICAgLy8gQSBwcm94
eSB0byB0YWxrIHRvIHRoZSB3b3JrZXIgb2JqZWN0LgotICAgIGNsYXNzIFdvcmtlck9iamVjdFBy
b3h5IHsKKyAgICBjbGFzcyBXb3JrZXJPYmplY3RQcm94eSA6IHB1YmxpYyBXb3JrZXJSZXBvcnRp
bmdQcm94eSB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5Xb3JrZXJPYmplY3RQcm94
eSgpIHt9Ci0KICAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RNZXNzYWdlVG9Xb3JrZXJPYmplY3Qo
Y29uc3QgU3RyaW5nJiwgUGFzc093blB0cjxNZXNzYWdlUG9ydENoYW5uZWw+KSA9IDA7CiAKLSAg
ICAgICAgdmlydHVhbCB2b2lkIHBvc3RFeGNlcHRpb25Ub1dvcmtlck9iamVjdChjb25zdCBTdHJp
bmcmIGVycm9yTWVzc2FnZSwgaW50IGxpbmVOdW1iZXIsIGNvbnN0IFN0cmluZyYgc291cmNlVVJM
KSA9IDA7Ci0KLSAgICAgICAgdmlydHVhbCB2b2lkIHBvc3RDb25zb2xlTWVzc2FnZVRvV29ya2Vy
T2JqZWN0KE1lc3NhZ2VEZXN0aW5hdGlvbiwgTWVzc2FnZVNvdXJjZSwgTWVzc2FnZVR5cGUsIE1l
c3NhZ2VMZXZlbCwgY29uc3QgU3RyaW5nJiBtZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VVUkwpID0gMDsKLQogICAgICAgICB2aXJ0dWFsIHZvaWQgY29uZmlybU1l
c3NhZ2VGcm9tV29ya2VyT2JqZWN0KGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KSA9IDA7Ci0KICAg
ICAgICAgdmlydHVhbCB2b2lkIHJlcG9ydFBlbmRpbmdBY3Rpdml0eShib29sIGhhc1BlbmRpbmdB
Y3Rpdml0eSkgPSAwOwogCi0gICAgICAgIHZpcnR1YWwgdm9pZCB3b3JrZXJDb250ZXh0RGVzdHJv
eWVkKCkgPSAwOworICAgICAgICAvLyBObyBuZWVkIHRvIG5vdGlmeSB0aGUgcGFyZW50IHBhZ2Ug
Y29udGV4dCB3aGVuIGRlZGljYXRlZCB3b3JrZXJzIGFyZSBjbG9zaW5nLgorICAgICAgICB2aXJ0
dWFsIHZvaWQgd29ya2VyQ29udGV4dENsb3NlZCgpIHsgfQogICAgIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJSZXBvcnRpbmdQ
cm94eS5oIGIvV2ViQ29yZS93b3JrZXJzL1dvcmtlclJlcG9ydGluZ1Byb3h5LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZjA0NDdjOAotLS0gL2Rldi9udWxsCisrKyBiL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJSZXBvcnRpbmdQcm94eS5oCkBAIC0wLDAgKzEsNjEgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIFdvcmtlclJlcG9ydGluZ1Byb3h5X2gKKyNkZWZpbmUgV29ya2VyUmVwb3J0aW5nUHJveHlf
aAorCisjaWYgRU5BQkxFKFdPUktFUlMpCisKKyNpbmNsdWRlICJDb25zb2xlLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIFN0cmluZzsKKworICAgIC8vIEFQSXMgdXNlZCBi
eSB3b3JrZXJzIHRvIHJlcG9ydCBjb25zb2xlIGFjdGl2aXR5LgorICAgIGNsYXNzIFdvcmtlclJl
cG9ydGluZ1Byb3h5IHsKKyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfldvcmtlclJlcG9y
dGluZ1Byb3h5KCkge30KKworICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdEV4Y2VwdGlvblRvV29y
a2VyT2JqZWN0KGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlLCBpbnQgbGluZU51bWJlciwgY29u
c3QgU3RyaW5nJiBzb3VyY2VVUkwpID0gMDsKKworICAgICAgICB2aXJ0dWFsIHZvaWQgcG9zdENv
bnNvbGVNZXNzYWdlVG9Xb3JrZXJPYmplY3QoTWVzc2FnZURlc3RpbmF0aW9uLCBNZXNzYWdlU291
cmNlLCBNZXNzYWdlVHlwZSwgTWVzc2FnZUxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIGlu
dCBsaW5lTnVtYmVyLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCkgPSAwOworCisgICAgICAgIC8v
IEludm9rZWQgd2hlbiBjbG9zZSgpIGlzIGludm9rZWQgb24gdGhlIHdvcmtlciBjb250ZXh0Lgor
ICAgICAgICB2aXJ0dWFsIHZvaWQgd29ya2VyQ29udGV4dENsb3NlZCgpID0gMDsKKworICAgICAg
ICAvLyBJbnZva2VkIHdoZW4gdGhlIHRocmVhZCBoYXMgc3RvcHBlZC4KKyAgICAgICAgdmlydHVh
bCB2b2lkIHdvcmtlckNvbnRleHREZXN0cm95ZWQoKSA9IDA7CisgICAgfTsKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXT1JLRVJTKQorCisjZW5kaWYgLy8gV29y
a2VyUmVwb3J0aW5nUHJveHlfaApkaWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRo
cmVhZC5jcHAgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAppbmRleCA4NmE1ZmE4
Li43NTJjMTc4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAor
KysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2VyVGhyZWFkLmNwcApAQCAtNjEsOSArNjEsMTAgQEAg
V29ya2VyVGhyZWFkU3RhcnR1cERhdGE6OldvcmtlclRocmVhZFN0YXJ0dXBEYXRhKGNvbnN0IEtV
UkwmIHNjcmlwdFVSTCwgY29uc3QgU3QKIHsKIH0KIAotV29ya2VyVGhyZWFkOjpXb3JrZXJUaHJl
YWQoY29uc3QgS1VSTCYgc2NyaXB0VVJMLCBjb25zdCBTdHJpbmcmIHVzZXJBZ2VudCwgY29uc3Qg
U3RyaW5nJiBzb3VyY2VDb2RlLCBXb3JrZXJMb2FkZXJQcm94eSYgd29ya2VyTG9hZGVyUHJveHkp
CitXb3JrZXJUaHJlYWQ6OldvcmtlclRocmVhZChjb25zdCBLVVJMJiBzY3JpcHRVUkwsIGNvbnN0
IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRl
clByb3h5JiB3b3JrZXJMb2FkZXJQcm94eSwgV29ya2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJl
cG9ydGluZ1Byb3h5KQogICAgIDogbV90aHJlYWRJRCgwKQogICAgICwgbV93b3JrZXJMb2FkZXJQ
cm94eSh3b3JrZXJMb2FkZXJQcm94eSkKKyAgICAsIG1fd29ya2VyUmVwb3J0aW5nUHJveHkod29y
a2VyUmVwb3J0aW5nUHJveHkpCiAgICAgLCBtX3N0YXJ0dXBEYXRhKFdvcmtlclRocmVhZFN0YXJ0
dXBEYXRhOjpjcmVhdGUoc2NyaXB0VVJMLCB1c2VyQWdlbnQsIHNvdXJjZUNvZGUpKQogewogfQpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS93b3JrZXJzL1dvcmtlclRocmVhZC5oIGIvV2ViQ29yZS93b3Jr
ZXJzL1dvcmtlclRocmVhZC5oCmluZGV4IGE2YjIyZGMuLmQ4ZmJjMzkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvd29ya2Vycy9Xb3JrZXJUaHJlYWQuaAorKysgYi9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
VGhyZWFkLmgKQEAgLTQwLDYgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNz
IFN0cmluZzsKICAgICBjbGFzcyBXb3JrZXJDb250ZXh0OwogICAgIGNsYXNzIFdvcmtlckxvYWRl
clByb3h5OworICAgIGNsYXNzIFdvcmtlclJlcG9ydGluZ1Byb3h5OwogICAgIHN0cnVjdCBXb3Jr
ZXJUaHJlYWRTdGFydHVwRGF0YTsKIAogICAgIGNsYXNzIFdvcmtlclRocmVhZCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdvcmtlclRocmVhZD4gewpAQCAtNTIsOSArNTMsMTAgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICBUaHJlYWRJZGVudGlmaWVyIHRocmVhZElEKCkgY29uc3QgeyByZXR1
cm4gbV90aHJlYWRJRDsgfQogICAgICAgICBXb3JrZXJSdW5Mb29wJiBydW5Mb29wKCkgeyByZXR1
cm4gbV9ydW5Mb29wOyB9CiAgICAgICAgIFdvcmtlckxvYWRlclByb3h5JiB3b3JrZXJMb2FkZXJQ
cm94eSgpIGNvbnN0IHsgcmV0dXJuIG1fd29ya2VyTG9hZGVyUHJveHk7IH0KKyAgICAgICAgV29y
a2VyUmVwb3J0aW5nUHJveHkmIHdvcmtlclJlcG9ydGluZ1Byb3h5KCkgY29uc3QgeyByZXR1cm4g
bV93b3JrZXJSZXBvcnRpbmdQcm94eTsgfQogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBXb3Jr
ZXJUaHJlYWQoY29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgdXNlckFnZW50LCBjb25zdCBTdHJp
bmcmIHNvdXJjZUNvZGUsIFdvcmtlckxvYWRlclByb3h5Jik7CisgICAgICAgIFdvcmtlclRocmVh
ZChjb25zdCBLVVJMJiwgY29uc3QgU3RyaW5nJiB1c2VyQWdlbnQsIGNvbnN0IFN0cmluZyYgc291
cmNlQ29kZSwgV29ya2VyTG9hZGVyUHJveHkmLCBXb3JrZXJSZXBvcnRpbmdQcm94eSYpOwogCiAg
ICAgICAgIC8vIEZhY3RvcnkgbWV0aG9kIGZvciBjcmVhdGluZyBhIG5ldyB3b3JrZXIgY29udGV4
dCBmb3IgdGhlIHRocmVhZC4KICAgICAgICAgdmlydHVhbCBQYXNzUmVmUHRyPFdvcmtlckNvbnRl
eHQ+IGNyZWF0ZVdvcmtlckNvbnRleHQoY29uc3QgS1VSTCYgdXJsLCBjb25zdCBTdHJpbmcmIHVz
ZXJBZ2VudCkgPSAwOwpAQCAtNzIsNiArNzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAg
ICAgIFRocmVhZElkZW50aWZpZXIgbV90aHJlYWRJRDsKICAgICAgICAgV29ya2VyUnVuTG9vcCBt
X3J1bkxvb3A7CiAgICAgICAgIFdvcmtlckxvYWRlclByb3h5JiBtX3dvcmtlckxvYWRlclByb3h5
OworICAgICAgICBXb3JrZXJSZXBvcnRpbmdQcm94eSYgbV93b3JrZXJSZXBvcnRpbmdQcm94eTsK
IAogICAgICAgICBSZWZQdHI8V29ya2VyQ29udGV4dD4gbV93b3JrZXJDb250ZXh0OwogICAgICAg
ICBNdXRleCBtX3RocmVhZENyZWF0aW9uTXV0ZXg7Cg==
</data>
<flag name="review"
          id="18622"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>