<?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>128783</bug_id>
          
          <creation_ts>2014-02-13 17:42:40 -0800</creation_ts>
          <short_desc>Web Inspector: DataGrid should have an API to set sort column and direction</short_desc>
          <delta_ts>2014-03-12 11:18:58 -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>Web Inspector</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>980560</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-02-13 17:42:40 -0800</bug_when>
    <thetext>Some tables (such as DOMStorageView) should have a default sort column rather than displaying rows in a possibly undefined order. However, the code to update the actual sort column and direction is stuck within a click event handler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>980562</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-13 17:43:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/16066438&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989455</commentid>
    <comment_count>2</comment_count>
      <attachid>226446</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-11 16:27:42 -0700</bug_when>
    <thetext>Created attachment 226446
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989727</commentid>
    <comment_count>3</comment_count>
      <attachid>226446</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2014-03-12 11:07:46 -0700</bug_when>
    <thetext>Comment on attachment 226446
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=226446&amp;action=review

&gt; Source/WebInspectorUI/UserInterface/Views/ApplicationCacheFrameContentView.js:204
&gt; +        switch (this._dataGrid.sortColumnIdentifier || &quot;url&quot;) {
&gt; +            case &quot;url&quot;: comparator = localeCompare.bind(this, &quot;url&quot;); break;

Just use default:?

&gt; Source/WebInspectorUI/UserInterface/Views/CookieStorageContentView.js:82
&gt; +            var columns = { name: {}, value: {}, domain: {}, path: {}, expires: {}, size: {}, http: {}, secure: {}};

No space after {.

&gt; Source/WebInspectorUI/UserInterface/Views/CookieStorageContentView.js:141
&gt; +            };
&gt; +            if (cookie.type !== WebInspector.CookieType.Request)

Add a newline.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>989744</commentid>
    <comment_count>4</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2014-03-12 11:18:58 -0700</bug_when>
    <thetext>Committed r165487: &lt;http://trac.webkit.org/changeset/165487&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226446</attachid>
            <date>2014-03-11 16:27:42 -0700</date>
            <delta_ts>2014-03-12 11:07:45 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>bug-128783-20140311162813.patch</filename>
            <type>text/plain</type>
            <size>45466</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY1Mzg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA2
MzJkMWMyMjY0ZDliOTM4ODg1MTg1MzVkOTQ4NDg0YWZmMTg3MzIxLi4zNjEwODkwOTFlNzNhOGE5
MTE5ZjEwMDMzZGE1MDY4NmVlNTRhMmYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw3NCBAQAorMjAxNC0wMy0xMSAgQnJpYW4gQnVyZyAgPGJidXJnQGFwcGxlLmNvbT4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBEYXRhR3JpZCBzaG91bGQgaGF2ZSBhbiBBUEkgdG8gc2V0
IHNvcnQgY29sdW1uIGFuZCBkaXJlY3Rpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEyODc4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFByZXZpb3VzbHkgdGhlcmUgd2FzIG5vIHdheSBmb3IgRGF0YUdy
aWQgY2xpZW50cyB0byBwcm9ncmFtbWF0aWNhbGx5IGNoYW5nZQorICAgICAgICB0aGUgc29ydCBv
cmRlciBvciBzb3J0IGNvbHVtbiBpZGVudGlmaWVyIGFmdGVyIHRoZSBkYXRhIGdyaWQgd2FzIGNv
bnN0cnVjdGVkLgorICAgICAgICBUaGlzIHBhdGNoIG1vZGVybml6ZXMgRGF0YUdyaWQgc29ydGlu
ZyBieSBleHBvc2luZyBnZXR0ZXJzIGFuZCBzZXR0ZXJzIGZvcgorICAgICAgICBzb3J0T3JkZXIg
YW5kIHNvcnRDb2x1bW5JZGVudGlmaWVyLCB3aGljaCB0cmlnZ2VyIHRoZSBTb3J0Q2hhbmdlZCBl
dmVudCBpZgorICAgICAgICB0aGUgc29ydCBzZXR0aW5ncyBoYXZlIGNoYW5nZWQuCisKKyAgICAg
ICAgVGhpcyBwYXRjaCBhbHNvIG1vZGVybml6ZXMgc29ydGluZyBmdW5jdGlvbmFsaXR5IGluIERh
dGFHcmlkIGNsaWVudHMsIGFuZCBpbgorICAgICAgICBhIGZldyBjbGllbnRzIGl0IG1vdmVzIGNv
bHVtbiBpZGVudGlmaWVycyBmcm9tIG51bWJlcnMgdG8gc3RyaW5nIGlkZW50aWZpZXJzLgorCisg
ICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6CisgICAgICAgICogVXNlckludGVyZmFj
ZS9WaWV3cy9BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qczogVXNlIHN0cmluZyBj
b2x1bW4gaWRlbnRpZmllcnMKKyAgICAgICAgaW5zdGVhZCBvZiBudW1iZXJzLiBEb24ndCByZXBv
cHVsYXRlIHRoZSBlbnRpcmUgdGFibGUgd2hlbiB0aGUgc29ydCBjaGFuZ2VzLCBpbnN0ZWFkCisg
ICAgICAgIGNhbGwgRGF0YUdyaWQuc29ydE5vZGVzIGZyb20gdGhlIHNvcnRpbmcgY2FsbGJhY2su
IEV4cGxpY2l0bHkgc2V0IHRoZSBzb3J0IG9yZGVyLgorCisgICAgICAgIChXZWJJbnNwZWN0b3Iu
QXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZpZXcucHJvdG90eXBlLl9jcmVhdGVEYXRhR3Jp
ZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZp
ZXcucHJvdG90eXBlLl9zb3J0RGF0YUdyaWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxp
Y2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3LnByb3RvdHlwZS5fc29ydERhdGFHcmlkLmxvY2Fs
ZUNvbXBhcmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZUNv
bnRlbnRWaWV3LnByb3RvdHlwZS5fcG9wdWxhdGVEYXRhR3JpZCk6CisKKyAgICAgICAgKiBVc2Vy
SW50ZXJmYWNlL1ZpZXdzL0Nvb2tpZVN0b3JhZ2VDb250ZW50Vmlldy5qczogVXNlIHN0cmluZyBj
b2x1bW4gaWRlbnRpZmllcnMgaW5zdGVhZAorICAgICAgICBvZiBudW1iZXJzLiBEb24ndCBzb3J0
IHRoZSBjb29raWVzIHRoZW1zZWx2ZXMsIGp1c3QgdGhlIGRhdGEgZ3JpZCBub2RlcyByZXByZXNl
bnRpbmcKKyAgICAgICAgZWFjaCBjb29raWUuIFVzZSBEYXRhR3JpZC5zb3J0Tm9kZXMgYXMgdGhl
IHNvcnRpbmcgaW1wbGVtZW50YXRpb24sIGFuZCBwcm92aWRlIGEKKyAgICAgICAgY29tcGFyYXRv
ci4gRG9uJ3QgcmVidWlsZCB0aGUgZW50aXJlIHRhYmxlIHdoZW4gdGhlIHNvcnQgY2hhbmdlcy4K
KworICAgICAgICAoV2ViSW5zcGVjdG9yLkNvb2tpZVN0b3JhZ2VDb250ZW50Vmlldy5wcm90b3R5
cGUuX3JlYnVpbGRUYWJsZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llU3RvcmFnZUNv
bnRlbnRWaWV3LnByb3RvdHlwZS5fc29ydERhdGFHcmlkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db29raWVTdG9yYWdlQ29udGVudFZpZXcucHJvdG90eXBlLl9zb3J0RGF0YUdyaWQubnVtYmVy
Q29tcGFyZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29va2llU3RvcmFnZUNvbnRlbnRWaWV3
LnByb3RvdHlwZS5fc29ydERhdGFHcmlkLmV4cGlyZXNDb21wYXJlKToKKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuanM6IEFkZCB0aGUgRGF0YUdyaWQuU29ydE9yZGVy
IGVudW0uIFB1dCBzb3J0T3JkZXIKKyAgICAgICAgYW5kIHNvcnRDb2x1bW5JZGVudGlmaWVyIGJl
aGluZCBnZXR0ZXJzIGFuZCBzZXR0ZXJzLiBQdWxsIHNvbWUgaGFyZGNvZGVkIHN0eWxlCisgICAg
ICAgIGNsYXNzIG5hbWVzIGludG8gY29uc3RhbnRzLiBSZW1vdmUgdGhlICJzb3J0IiBmaWVsZCBv
biBjb2x1bW4gY29uZmlnIG9iamVjdHM7IGluc3RlYWQKKyAgICAgICAgc2hvdWxkIHVzZSB0aGUg
RGF0YUdyaWQuc29ydENvbHVtbklkZW50aWZpZXIgc2V0dGVyIGFmdGVyIGNvbnN0cnVjdGlvbi4K
KworICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFHcmlkKTogS2VlcCBzb3J0IHNldHRpbmdzIGlu
IHByaXZhdGUgdmFyaWFibGVzLgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLnByb3Rv
dHlwZS5nZXQgc29ydE9yZGVyKTogUmVpbXBsZW1lbnRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EYXRhR3JpZC5wcm90b3R5cGUuZ2V0IHNvcnRDb2x1bW5JZGVudGlmaWVyKTogUmVpbXBsZW1l
bnRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUubW92ZVRvTmV4
dENlbGwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLnByb3RvdHlwZS5fZWRpdGlu
Z0NvbW1pdHRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlLnNv
cnROb2Rlcyk6IFVzZSByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgdG8KKyAgICAgICAgY29hbGVzY2Ug
bXVsdGlwbGUgc29ydCByZXF1ZXN0cyB3aXRoaW4gdGhlIHNhbWUgZHJhdyBmcmFtZS4KKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUuX3NvcnROb2Rlc0NhbGxiYWNrKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUuX2hlYWRlckNlbGxDbGlj
a2VkKTogVXNlIHRoZSBuZXcgc29ydCBBUEkuCisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3
cy9MYXllclRyZWVEYXRhR3JpZC5qczogUmVtb3ZlZC4gVW5uZWNlc3NhcnkgZm9yIHBlcmZvcm1h
bmNlCisgICAgICAgIG5vdyB0aGF0IHNvcnQgcmVxdWVzdHMgYXJlIGNvYWxlc2NlZCBieSByZXF1
ZXN0QW5pbWF0aW9uRnJhbWUuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVy
VHJlZVNpZGViYXJQYW5lbC5qczogVXNlIERhdGFHcmlkIGluc3RlYWQgb2YgTGF5ZXJUcmVlRGF0
YUdyaWQuCisgICAgICAgIEhvb2sgdXAgdGhlIF9zb3J0RGF0YUdyaWQgbWV0aG9kIHRvIHRoZSBi
dWlsdC1pbiBEYXRhR3JpZC5zb3J0Tm9kZXMgQVBJLgorCisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TGF5ZXJUcmVlU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fYnVpbGREYXRhR3JpZFNlY3Rpb24pOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkxheWVyVHJlZVNpZGViYXJQYW5lbC5wcm90b3R5cGUuX3Nv
cnREYXRhR3JpZC5jb21wYXJhdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5MYXllclRyZWVT
aWRlYmFyUGFuZWwucHJvdG90eXBlLl9zb3J0RGF0YUdyaWQpOgorICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVWaWV3LmpzOgorICAgICAgICAqIFVzZXJJbnRlcmZh
Y2UvVmlld3MvTGVnYWN5SmF2YVNjcmlwdFByb2ZpbGVWaWV3LmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkxlZ2FjeUphdmFTY3JpcHRQcm9maWxlVmlldy5wcm90b3R5cGUuX3NvcnRQcm9maWxl
KToKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1ZpZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanM6
CisgICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZURldGFpbHNTaWRlYmFyUGFu
ZWwuanM6IFVzZSB0aGUgRGF0YUdyaWQuc29ydE5vZGVzIEFQSS4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5SZXNvdXJjZURldGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9jcmVhdGVOYW1lVmFs
dWVEYXRhR3JpZC5zb3J0RGF0YUdyaWQuY29tcGFyYXRvcik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuUmVzb3VyY2VEZXRhaWxzU2lkZWJhclBhbmVsLnByb3RvdHlwZS5fY3JlYXRlTmFtZVZhbHVl
RGF0YUdyaWQuc29ydERhdGFHcmlkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5SZXNvdXJjZURl
dGFpbHNTaWRlYmFyUGFuZWwucHJvdG90eXBlLl9jcmVhdGVOYW1lVmFsdWVEYXRhR3JpZCk6Cisg
ICAgICAgICogVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRUaW1lbGluZVZpZXcuanM6CisgICAg
ICAgICogVXNlckludGVyZmFjZS9WaWV3cy9UaW1lbGluZURhdGFHcmlkLmpzOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlRpbWVsaW5lRGF0YUdyaWQucHJvdG90eXBlLl9zb3J0Q29tcGFyYXRvcik6
CisKIDIwMTQtMDMtMTAgIEJyaWFuIEJ1cmcgIDxiYnVyZ0BhcHBsZS5jb20+CiAKICAgICAgICAg
V2ViIEluc3BlY3Rvcjogc2hvdyBhIGRlYnVnZ2luZy1vcmllbnRlZCBkYXNoYm9hcmQgd2hlbiBz
Y3JpcHRzIHBhdXNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9NYWluLmh0bWwgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWlu
Lmh0bWwKaW5kZXggNjU3NTIwZjk3NTE0NmY0Nzc4MzM1NjE4NWE0MDA5OTc1Yzg5Y2E2Ny4uODQ3
ZjUxOTk0OTlmNzhiYmU2YjhlY2IwMjE5MDIwODdhNjZmNDRiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbApAQCAtMzg0LDcgKzM4NCw2IEBACiAg
ICAgPHNjcmlwdCBzcmM9IlZpZXdzL0luZGV4ZWREYXRhYmFzZU9iamVjdFN0b3JlSW5kZXhUcmVl
RWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlZpZXdzL0luZGV4ZWREYXRh
YmFzZU9iamVjdFN0b3JlVHJlZUVsZW1lbnQuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3Jj
PSJWaWV3cy9JbmRleGVkRGF0YWJhc2VUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNj
cmlwdCBzcmM9IlZpZXdzL0xheWVyVHJlZURhdGFHcmlkLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iVmlld3MvTGF5ZXJUcmVlRGF0YUdyaWROb2RlLmpzIj48L3NjcmlwdD4KICAgICA8
c2NyaXB0IHNyYz0iVmlld3MvTGF5ZXJUcmVlU2lkZWJhclBhbmVsLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iVmlld3MvTGF5b3V0VGltZWxpbmVEYXRhR3JpZC5qcyI+PC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9B
cHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3Lmpz
CmluZGV4IGQyZDBlNmM5MWQ4N2Q2ZjYzNGJlZDg2OGYxZTY4MzNkOTE1YjIyN2YuLjNmYThlNGNh
M2VjMDdjZDVhNzA2YWQyYjhkYzI1Mzk4Mjk2MjNjNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRl
bnRWaWV3LmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdz
L0FwcGxpY2F0aW9uQ2FjaGVGcmFtZUNvbnRlbnRWaWV3LmpzCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxMCwgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAsIDIwMTMsIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yMywxMCAr
MjMsNiBAQAogICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLS8qKgot
ICogQGNvbnN0cnVjdG9yCi0gKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLlZpZXd9Ci0gKi8KIFdl
Ykluc3BlY3Rvci5BcHBsaWNhdGlvbkNhY2hlRnJhbWVDb250ZW50VmlldyA9IGZ1bmN0aW9uKHJl
cHJlc2VudGVkT2JqZWN0KQogewogICAgIGNvbnNvbGUuYXNzZXJ0KHJlcHJlc2VudGVkT2JqZWN0
IGluc3RhbmNlb2YgV2ViSW5zcGVjdG9yLkFwcGxpY2F0aW9uQ2FjaGVGcmFtZSk7CkBAIC0xNjks
NjUgKzE2NSw2NCBAQCBXZWJJbnNwZWN0b3IuQXBwbGljYXRpb25DYWNoZUZyYW1lQ29udGVudFZp
ZXcucHJvdG90eXBlID0gewogCiAgICAgX2NyZWF0ZURhdGFHcmlkOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICB2YXIgY29sdW1ucyA9IHsgMDoge30sIDE6IHt9LCAyOiB7fSB9OwotICAgICAg
ICBjb2x1bW5zWzBdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJSZXNvdXJjZSIpOwot
ICAgICAgICBjb2x1bW5zWzBdLnNvcnQgPSAiYXNjZW5kaW5nIjsKLSAgICAgICAgY29sdW1uc1sw
XS5zb3J0YWJsZSA9IHRydWU7Ci0gICAgICAgIGNvbHVtbnNbMV0udGl0bGUgPSBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlR5cGUiKTsKLSAgICAgICAgY29sdW1uc1sxXS5zb3J0YWJsZSA9IHRydWU7
Ci0gICAgICAgIGNvbHVtbnNbMl0udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNpemUi
KTsKLSAgICAgICAgY29sdW1uc1syXS5hbGlnbmVkID0gInJpZ2h0IjsKLSAgICAgICAgY29sdW1u
c1syXS5zb3J0YWJsZSA9IHRydWU7CisgICAgICAgIHZhciBjb2x1bW5zID0ge3VybDoge30sIHR5
cGU6IHt9LCBzaXplOiB7fX07CisKKyAgICAgICAgY29sdW1ucy51cmwudGl0bGUgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIlJlc291cmNlIik7CisgICAgICAgIGNvbHVtbnMudXJsLnNvcnRhYmxl
ID0gdHJ1ZTsKKworICAgICAgICBjb2x1bW5zLnR5cGUudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlT
dHJpbmcoIlR5cGUiKTsKKyAgICAgICAgY29sdW1ucy50eXBlLnNvcnRhYmxlID0gdHJ1ZTsKKwor
ICAgICAgICBjb2x1bW5zLnNpemUudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNpemUi
KTsKKyAgICAgICAgY29sdW1ucy5zaXplLmFsaWduZWQgPSAicmlnaHQiOworICAgICAgICBjb2x1
bW5zLnNpemUuc29ydGFibGUgPSB0cnVlOworCiAgICAgICAgIHRoaXMuX2RhdGFHcmlkID0gbmV3
IFdlYkluc3BlY3Rvci5EYXRhR3JpZChjb2x1bW5zKTsKKyAgICAgICAgdGhpcy5fZGF0YUdyaWQu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGF0YUdyaWQuRXZlbnQuU29ydENoYW5nZWQs
IHRoaXMuX3NvcnREYXRhR3JpZCwgdGhpcyk7CisKKyAgICAgICAgdGhpcy5fZGF0YUdyaWQuc29y
dENvbHVtbklkZW50aWZpZXIgPSAidXJsIjsKKyAgICAgICAgdGhpcy5fZGF0YUdyaWQuc29ydE9y
ZGVyID0gV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlNvcnRPcmRlci5Bc2NlbmRpbmc7CisKICAgICAg
ICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2RhdGFHcmlkLmVsZW1lbnQpOwogICAg
ICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVMYXlvdXQoKTsKLSAgICAgICAgdGhpcy5fZGF0YUdy
aWQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGF0YUdyaWQuRXZlbnQuU29ydENoYW5n
ZWQsIHRoaXMuX3BvcHVsYXRlRGF0YUdyaWQsIHRoaXMpOwogICAgIH0sCiAKLSAgICBfcG9wdWxh
dGVEYXRhR3JpZDogZnVuY3Rpb24oKQorICAgIF9zb3J0RGF0YUdyaWQ6IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIHZhciBzZWxlY3RlZFJlc291cmNlID0gdGhpcy5fZGF0YUdyaWQuc2VsZWN0
ZWROb2RlID8gdGhpcy5fZGF0YUdyaWQuc2VsZWN0ZWROb2RlLnJlc291cmNlIDogbnVsbDsKLSAg
ICAgICAgdmFyIHNvcnREaXJlY3Rpb24gPSB0aGlzLl9kYXRhR3JpZC5zb3J0T3JkZXIgPT09ICJh
c2NlbmRpbmciID8gMSA6IC0xOwotCi0gICAgICAgIGZ1bmN0aW9uIG51bWJlckNvbXBhcmUoZmll
bGQsIHJlc291cmNlMSwgcmVzb3VyY2UyKQorICAgICAgICBmdW5jdGlvbiBudW1iZXJDb21wYXJl
KGNvbHVtbklkZW50aWZpZXIsIG5vZGVBLCBub2RlQikKICAgICAgICAgewotICAgICAgICAgICAg
cmV0dXJuIHNvcnREaXJlY3Rpb24gKiAocmVzb3VyY2UxW2ZpZWxkXSAtIHJlc291cmNlMltmaWVs
ZF0pOworICAgICAgICAgICAgY29uc29sZS5sb2coY29sdW1uSWRlbnRpZmllciwgbm9kZUEsIG5v
ZGVCKTsKKyAgICAgICAgICAgIHJldHVybiBub2RlQS5kYXRhW2NvbHVtbklkZW50aWZpZXJdIC0g
bm9kZUIuZGF0YVtjb2x1bW5JZGVudGlmaWVyXTsKICAgICAgICAgfQotICAgICAgICBmdW5jdGlv
biBsb2NhbGVDb21wYXJlKGZpZWxkLCByZXNvdXJjZTEsIHJlc291cmNlMikKKyAgICAgICAgZnVu
Y3Rpb24gbG9jYWxlQ29tcGFyZShjb2x1bW5JZGVudGlmaWVyLCBub2RlQSwgbm9kZUIpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgICByZXR1cm4gc29ydERpcmVjdGlvbiAqIChyZXNvdXJjZTFbZmll
bGRdICsgIiIpLmxvY2FsZUNvbXBhcmUocmVzb3VyY2UyW2ZpZWxkXSArICIiKTsKKyAgICAgICAg
ICAgICByZXR1cm4gKG5vZGVBLmRhdGFbY29sdW1uSWRlbnRpZmllcl0gKyAiIikubG9jYWxlQ29t
cGFyZShub2RlQi5kYXRhW2NvbHVtbklkZW50aWZpZXJdICsgIiIpOwogICAgICAgICB9CiAKICAg
ICAgICAgdmFyIGNvbXBhcmF0b3I7Ci0gICAgICAgIHN3aXRjaCAocGFyc2VJbnQodGhpcy5fZGF0
YUdyaWQuc29ydENvbHVtbklkZW50aWZpZXIsIDEwKSkgewotICAgICAgICAgICAgY2FzZSAwOiBj
b21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJ1cmwiKTsgYnJlYWs7Ci0gICAg
ICAgICAgICBjYXNlIDE6IGNvbXBhcmF0b3IgPSBsb2NhbGVDb21wYXJlLmJpbmQodGhpcywgInR5
cGUiKTsgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIDI6IGNvbXBhcmF0b3IgPSBudW1iZXJDb21w
YXJlLmJpbmQodGhpcywgInNpemUiKTsgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OiBsb2Nh
bGVDb21wYXJlLmJpbmQodGhpcywgInJlc291cmNlIik7IC8vIEZJWE1FOiBjb21wYXJhdG9yID0g
PworICAgICAgICBzd2l0Y2ggKHRoaXMuX2RhdGFHcmlkLnNvcnRDb2x1bW5JZGVudGlmaWVyIHx8
ICJ1cmwiKSB7CisgICAgICAgICAgICBjYXNlICJ1cmwiOiBjb21wYXJhdG9yID0gbG9jYWxlQ29t
cGFyZS5iaW5kKHRoaXMsICJ1cmwiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlICJ0eXBlIjog
Y29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAidHlwZSIpOyBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgInNpemUiOiBjb21wYXJhdG9yID0gbnVtYmVyQ29tcGFyZS5iaW5kKHRo
aXMsICJzaXplIik7IGJyZWFrOwogICAgICAgICB9CiAKLSAgICAgICAgdGhpcy5fcmVzb3VyY2Vz
LnNvcnQoY29tcGFyYXRvcik7CisgICAgICAgIHRoaXMuX2RhdGFHcmlkLnNvcnROb2Rlcyhjb21w
YXJhdG9yKTsKKyAgICB9LAorCisgICAgX3BvcHVsYXRlRGF0YUdyaWQ6IGZ1bmN0aW9uKCkKKyAg
ICB7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnJlbW92ZUNoaWxkcmVuKCk7CiAKLSAgICAgICAg
dmFyIG5vZGVUb1NlbGVjdDsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9yZXNv
dXJjZXMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBkYXRhID0ge307Ci0gICAgICAg
ICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9yZXNvdXJjZXNbaV07Ci0gICAgICAgICAgICBkYXRh
WzBdID0gcmVzb3VyY2UudXJsOwotICAgICAgICAgICAgZGF0YVsxXSA9IHJlc291cmNlLnR5cGU7
Ci0gICAgICAgICAgICBkYXRhWzJdID0gTnVtYmVyLmJ5dGVzVG9TdHJpbmcocmVzb3VyY2Uuc2l6
ZSk7CisgICAgICAgIGZvciAodmFyIHJlc291cmNlIG9mIHRoaXMuX3Jlc291cmNlcykgeworICAg
ICAgICAgICAgdmFyIGRhdGEgPSB7CisgICAgICAgICAgICAgICAgdXJsOiByZXNvdXJjZS51cmws
CisgICAgICAgICAgICAgICAgdHlwZTogcmVzb3VyY2UudHlwZSwKKyAgICAgICAgICAgICAgICBz
aXplOiBOdW1iZXIuYnl0ZXNUb1N0cmluZyhyZXNvdXJjZS5zaXplKQorICAgICAgICAgICAgfTsK
ICAgICAgICAgICAgIHZhciBub2RlID0gbmV3IFdlYkluc3BlY3Rvci5EYXRhR3JpZE5vZGUoZGF0
YSk7Ci0gICAgICAgICAgICBub2RlLnJlc291cmNlID0gcmVzb3VyY2U7CiAgICAgICAgICAgICBu
b2RlLnNlbGVjdGFibGUgPSB0cnVlOwogICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYXBwZW5k
Q2hpbGQobm9kZSk7Ci0gICAgICAgICAgICBpZiAocmVzb3VyY2UgPT09IHNlbGVjdGVkUmVzb3Vy
Y2UpIHsKLSAgICAgICAgICAgICAgICBub2RlVG9TZWxlY3QgPSBub2RlOwotICAgICAgICAgICAg
ICAgIG5vZGVUb1NlbGVjdC5zZWxlY3RlZCA9IHRydWU7Ci0gICAgICAgICAgICB9CiAgICAgICAg
IH0KLQotICAgICAgICBpZiAoIW5vZGVUb1NlbGVjdCAmJiB0aGlzLl9kYXRhR3JpZC5jaGlsZHJl
bi5sZW5ndGgpCi0gICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5jaGlsZHJlblswXS5zZWxlY3Rl
ZCA9IHRydWU7CiAgICAgfSwKIAogICAgIF9kZWxldGVCdXR0b25DbGlja2VkOiBmdW5jdGlvbihl
dmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL0Nvb2tpZVN0b3JhZ2VDb250ZW50Vmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL1ZpZXdzL0Nvb2tpZVN0b3JhZ2VDb250ZW50Vmlldy5qcwppbmRleCA4NDNl
NmM5MzAwZjg1OTg3MTUyMDcyN2Y0Y2EwZTcyMzdmMDlkN2RhLi4wYzZmMjAxODE3YTU2NGI4MWVk
ZjdmNmE3NzI3M2ZmYTU4NWU1NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9Db29raWVTdG9yYWdlQ29udGVudFZpZXcuanMKKysrIGIvU291
cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvQ29va2llU3RvcmFnZUNvbnRl
bnRWaWV3LmpzCkBAIC03OSwzNyArNzksNDUgQEAgV2ViSW5zcGVjdG9yLkNvb2tpZVN0b3JhZ2VD
b250ZW50Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIC8vIEZJWE1FOiBJZiB0aGVyZSBhcmUg
bm8gY29va2llcywgZG8gd2Ugd2FudCB0byBzaG93IGFuIGVtcHR5IGRhdGFncmlkLCBvciBkbyBz
b21ldGhpbmcgbGlrZSB0aGUgb2xkCiAgICAgICAgIC8vIGluc3BlY3RvciBhbmQgc2hvdyBzb21l
IHRleHQgc2F5aW5nIHRoZXJlIGFyZSBubyBjb29raWVzPwogICAgICAgICBpZiAoIXRoaXMuX2Rh
dGFHcmlkKSB7Ci0gICAgICAgICAgICB2YXIgY29sdW1ucyA9IHsgMDoge30sIDE6IHt9LCAyOiB7
fSwgMzoge30sIDQ6IHt9LCA1OiB7fSwgNjoge30sIDc6IHt9IH07Ci0gICAgICAgICAgICBjb2x1
bW5zWzBdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJOYW1lIik7Ci0gICAgICAgICAg
ICBjb2x1bW5zWzBdLnNvcnRhYmxlID0gdHJ1ZTsKLSAgICAgICAgICAgIGNvbHVtbnNbMF0ud2lk
dGggPSAiMjQlIjsKLSAgICAgICAgICAgIGNvbHVtbnNbMV0udGl0bGUgPSBXZWJJbnNwZWN0b3Iu
VUlTdHJpbmcoIlZhbHVlIik7Ci0gICAgICAgICAgICBjb2x1bW5zWzFdLnNvcnRhYmxlID0gdHJ1
ZTsKLSAgICAgICAgICAgIGNvbHVtbnNbMV0ud2lkdGggPSAiMzQlIjsKLSAgICAgICAgICAgIGNv
bHVtbnNbMl0udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIkRvbWFpbiIpOwotICAgICAg
ICAgICAgY29sdW1uc1syXS5zb3J0YWJsZSA9IHRydWU7Ci0gICAgICAgICAgICBjb2x1bW5zWzJd
LndpZHRoID0gIjclIjsKLSAgICAgICAgICAgIGNvbHVtbnNbM10udGl0bGUgPSBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIlBhdGgiKTsKLSAgICAgICAgICAgIGNvbHVtbnNbM10uc29ydGFibGUgPSB0
cnVlOwotICAgICAgICAgICAgY29sdW1uc1szXS53aWR0aCA9ICI3JSI7Ci0gICAgICAgICAgICBj
b2x1bW5zWzRdLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJFeHBpcmVzIik7Ci0gICAg
ICAgICAgICBjb2x1bW5zWzRdLnNvcnRhYmxlID0gdHJ1ZTsKLSAgICAgICAgICAgIGNvbHVtbnNb
NF0ud2lkdGggPSAiNyUiOwotICAgICAgICAgICAgY29sdW1uc1s1XS50aXRsZSA9IFdlYkluc3Bl
Y3Rvci5VSVN0cmluZygiU2l6ZSIpOwotICAgICAgICAgICAgY29sdW1uc1s1XS5hbGlnbmVkID0g
InJpZ2h0IjsKLSAgICAgICAgICAgIGNvbHVtbnNbNV0uc29ydGFibGUgPSB0cnVlOwotICAgICAg
ICAgICAgY29sdW1uc1s1XS53aWR0aCA9ICI3JSI7Ci0gICAgICAgICAgICBjb2x1bW5zWzZdLnRp
dGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJIVFRQIik7Ci0gICAgICAgICAgICBjb2x1bW5z
WzZdLmFsaWduZWQgPSAiY2VudGVyZWQiOwotICAgICAgICAgICAgY29sdW1uc1s2XS5zb3J0YWJs
ZSA9IHRydWU7Ci0gICAgICAgICAgICBjb2x1bW5zWzZdLndpZHRoID0gIjclIjsKLSAgICAgICAg
ICAgIGNvbHVtbnNbN10udGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlNlY3VyZSIpOwot
ICAgICAgICAgICAgY29sdW1uc1s3XS5hbGlnbmVkID0gImNlbnRlcmVkIjsKLSAgICAgICAgICAg
IGNvbHVtbnNbN10uc29ydGFibGUgPSB0cnVlOwotICAgICAgICAgICAgY29sdW1uc1s3XS53aWR0
aCA9ICI3JSI7CisgICAgICAgICAgICB2YXIgY29sdW1ucyA9IHsgbmFtZToge30sIHZhbHVlOiB7
fSwgZG9tYWluOiB7fSwgcGF0aDoge30sIGV4cGlyZXM6IHt9LCBzaXplOiB7fSwgaHR0cDoge30s
IHNlY3VyZToge319OworCisgICAgICAgICAgICBjb2x1bW5zLm5hbWUudGl0bGUgPSBXZWJJbnNw
ZWN0b3IuVUlTdHJpbmcoIk5hbWUiKTsKKyAgICAgICAgICAgIGNvbHVtbnMubmFtZS5zb3J0YWJs
ZSA9IHRydWU7CisgICAgICAgICAgICBjb2x1bW5zLm5hbWUud2lkdGggPSAiMjQlIjsKKworICAg
ICAgICAgICAgY29sdW1ucy52YWx1ZS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVmFs
dWUiKTsKKyAgICAgICAgICAgIGNvbHVtbnMudmFsdWUuc29ydGFibGUgPSB0cnVlOworICAgICAg
ICAgICAgY29sdW1ucy52YWx1ZS53aWR0aCA9ICIzNCUiOworCisgICAgICAgICAgICBjb2x1bW5z
LmRvbWFpbi50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRG9tYWluIik7CisgICAgICAg
ICAgICBjb2x1bW5zLmRvbWFpbi5zb3J0YWJsZSA9IHRydWU7CisgICAgICAgICAgICBjb2x1bW5z
LmRvbWFpbi53aWR0aCA9ICI3JSI7CisKKyAgICAgICAgICAgIGNvbHVtbnMucGF0aC50aXRsZSA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiUGF0aCIpOworICAgICAgICAgICAgY29sdW1ucy5wYXRo
LnNvcnRhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbHVtbnMucGF0aC53aWR0aCA9ICI3JSI7
CisKKyAgICAgICAgICAgIGNvbHVtbnMuZXhwaXJlcy50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiRXhwaXJlcyIpOworICAgICAgICAgICAgY29sdW1ucy5leHBpcmVzLnNvcnRhYmxlID0g
dHJ1ZTsKKyAgICAgICAgICAgIGNvbHVtbnMuZXhwaXJlcy53aWR0aCA9ICI3JSI7CisKKyAgICAg
ICAgICAgIGNvbHVtbnMuc2l6ZS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2l6ZSIp
OworICAgICAgICAgICAgY29sdW1ucy5zaXplLmFsaWduZWQgPSAicmlnaHQiOworICAgICAgICAg
ICAgY29sdW1ucy5zaXplLnNvcnRhYmxlID0gdHJ1ZTsKKyAgICAgICAgICAgIGNvbHVtbnMuc2l6
ZS53aWR0aCA9ICI3JSI7CisKKyAgICAgICAgICAgIGNvbHVtbnMuaHR0cC50aXRsZSA9IFdlYklu
c3BlY3Rvci5VSVN0cmluZygiSFRUUCIpOworICAgICAgICAgICAgY29sdW1ucy5odHRwLmFsaWdu
ZWQgPSAiY2VudGVyZWQiOworICAgICAgICAgICAgY29sdW1ucy5odHRwLnNvcnRhYmxlID0gdHJ1
ZTsKKyAgICAgICAgICAgIGNvbHVtbnMuaHR0cC53aWR0aCA9ICI3JSI7CisKKyAgICAgICAgICAg
IGNvbHVtbnMuc2VjdXJlLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJTZWN1cmUiKTsK
KyAgICAgICAgICAgIGNvbHVtbnMuc2VjdXJlLmFsaWduZWQgPSAiY2VudGVyZWQiOworICAgICAg
ICAgICAgY29sdW1ucy5zZWN1cmUuc29ydGFibGUgPSB0cnVlOworICAgICAgICAgICAgY29sdW1u
cy5zZWN1cmUud2lkdGggPSAiNyUiOwogCiAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IG5l
dyBXZWJJbnNwZWN0b3IuRGF0YUdyaWQoY29sdW1ucywgbnVsbCwgdGhpcy5fZGVsZXRlQ2FsbGJh
Y2suYmluZCh0aGlzKSk7Ci0gICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRFdmVudExpc3Rl
bmVyKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5FdmVudC5Tb3J0Q2hhbmdlZCwgdGhpcy5fcmVidWls
ZFRhYmxlLCB0aGlzKTsKKyAgICAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LlNvcnRDaGFuZ2VkLCB0aGlzLl9zb3J0RGF0
YUdyaWQsIHRoaXMpOwogCiAgICAgICAgICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fZGF0YUdyaWQuZWxlbWVudCk7CiAgICAgICAgICAgICB0aGlzLl9kYXRhR3JpZC51cGRhdGVM
YXlvdXQoKTsKQEAgLTExOCwzMyArMTI2LDI5IEBAIFdlYkluc3BlY3Rvci5Db29raWVTdG9yYWdl
Q29udGVudFZpZXcucHJvdG90eXBlID0gewogICAgICAgICBjb25zb2xlLmFzc2VydCh0aGlzLl9k
YXRhR3JpZCk7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLnJlbW92ZUNoaWxkcmVuKCk7CiAKLSAg
ICAgICAgdGhpcy5fc29ydENvb2tpZXModGhpcy5fY29va2llcyk7Ci0KLSAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCB0aGlzLl9jb29raWVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBj
b25zdCBjb29raWUgPSB0aGlzLl9jb29raWVzW2ldOwotCi0gICAgICAgICAgICB2YXIgZGF0YSA9
IHt9OwotICAgICAgICAgICAgZGF0YVswXSA9IGNvb2tpZS5uYW1lOwotICAgICAgICAgICAgZGF0
YVsxXSA9IGNvb2tpZS52YWx1ZTsKLSAgICAgICAgICAgIGRhdGFbMl0gPSBjb29raWUuZG9tYWlu
IHx8ICIiOwotICAgICAgICAgICAgZGF0YVszXSA9IGNvb2tpZS5wYXRoIHx8ICIiOwotCi0gICAg
ICAgICAgICBpZiAoY29va2llLnR5cGUgPT09IFdlYkluc3BlY3Rvci5Db29raWVUeXBlLlJlcXVl
c3QpCi0gICAgICAgICAgICAgICAgZGF0YVs0XSA9ICIiOwotICAgICAgICAgICAgZWxzZQotICAg
ICAgICAgICAgICAgIGRhdGFbNF0gPSBjb29raWUuc2Vzc2lvbiA/IFdlYkluc3BlY3Rvci5VSVN0
cmluZygiU2Vzc2lvbiIpIDogbmV3IERhdGUoY29va2llLmV4cGlyZXMpLnRvTG9jYWxlU3RyaW5n
KCk7Ci0KLSAgICAgICAgICAgIGRhdGFbNV0gPSBOdW1iZXIuYnl0ZXNUb1N0cmluZyhjb29raWUu
c2l6ZSk7CisgICAgICAgIGZvciAodmFyIGNvb2tpZSBvZiB0aGlzLl9jb29raWVzKSB7CiAgICAg
ICAgICAgICBjb25zdCBjaGVja21hcmsgPSAiXHUyNzEzIjsKLSAgICAgICAgICAgIGRhdGFbNl0g
PSBjb29raWUuaHR0cE9ubHkgPyBjaGVja21hcmsgOiAiIjsKLSAgICAgICAgICAgIGRhdGFbN10g
PSBjb29raWUuc2VjdXJlID8gY2hlY2ttYXJrIDogIiI7CisgICAgICAgICAgICB2YXIgZGF0YSA9
IHsKKyAgICAgICAgICAgICAgICAibmFtZSI6IGNvb2tpZS5uYW1lLAorICAgICAgICAgICAgICAg
ICJ2YWx1ZSI6IGNvb2tpZS52YWx1ZSwKKyAgICAgICAgICAgICAgICAiZG9tYWluIjogY29va2ll
LmRvbWFpbiB8fCAiIiwKKyAgICAgICAgICAgICAgICAicGF0aCI6IGNvb2tpZS5wYXRoIHx8ICIi
LAorICAgICAgICAgICAgICAgICJleHBpcmVzIjogIiIsCisgICAgICAgICAgICAgICAgInNpemUi
OiBOdW1iZXIuYnl0ZXNUb1N0cmluZyhjb29raWUuc2l6ZSksCisgICAgICAgICAgICAgICAgImh0
dHAiOiBjb29raWUuaHR0cE9ubHkgPyBjaGVja21hcmsgOiAiIiwKKyAgICAgICAgICAgICAgICAi
c2VjdXJlIjogY29va2llLnNlY3VyZSA/IGNoZWNrbWFyayA6ICIiLAorICAgICAgICAgICAgfTsK
KyAgICAgICAgICAgIGlmIChjb29raWUudHlwZSAhPT0gV2ViSW5zcGVjdG9yLkNvb2tpZVR5cGUu
UmVxdWVzdCkKKyAgICAgICAgICAgICAgICBkYXRhWyJleHBpcmVzIl0gPSBjb29raWUuc2Vzc2lv
biA/IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU2Vzc2lvbiIpIDogbmV3IERhdGUoY29va2llLmV4
cGlyZXMpLnRvTG9jYWxlU3RyaW5nKCk7CiAKICAgICAgICAgICAgIHZhciBub2RlID0gbmV3IFdl
Ykluc3BlY3Rvci5EYXRhR3JpZE5vZGUoZGF0YSk7Ci0gICAgICAgICAgICBub2RlLmNvb2tpZSA9
IGNvb2tpZTsKICAgICAgICAgICAgIG5vZGUuc2VsZWN0YWJsZSA9IHRydWU7CisgICAgICAgICAg
ICBub2RlLmNvb2tpZSA9IGNvb2tpZTsKIAogICAgICAgICAgICAgdGhpcy5fZGF0YUdyaWQuYXBw
ZW5kQ2hpbGQobm9kZSk7CiAgICAgICAgIH0KKworICAgICAgICB0aGlzLl9kYXRhR3JpZC5zb3J0
Q29sdW1uSWRlbnRpZmllciA9ICJuYW1lIjsKICAgICB9LAogCiAgICAgX2ZpbHRlckNvb2tpZXM6
IGZ1bmN0aW9uKGNvb2tpZXMpCkBAIC0xODAsNDUgKzE4NCw0MyBAQCBXZWJJbnNwZWN0b3IuQ29v
a2llU3RvcmFnZUNvbnRlbnRWaWV3LnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIGZpbHRl
cmVkQ29va2llczsKICAgICB9LAogCi0gICAgX3NvcnRDb29raWVzOiBmdW5jdGlvbihjb29raWVz
KQorICAgIF9zb3J0RGF0YUdyaWQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBzb3J0
RGlyZWN0aW9uID0gdGhpcy5fZGF0YUdyaWQuc29ydE9yZGVyID09PSAiYXNjZW5kaW5nIiA/IDEg
OiAtMTsKLQotICAgICAgICBmdW5jdGlvbiBsb2NhbGVDb21wYXJlKGZpZWxkLCBjb29raWUxLCBj
b29raWUyKQorICAgICAgICBmdW5jdGlvbiBsb2NhbGVDb21wYXJlKGZpZWxkLCBub2RlQSwgbm9k
ZUIpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBzb3J0RGlyZWN0aW9uICogKGNvb2tp
ZTFbZmllbGRdICsgIiIpLmxvY2FsZUNvbXBhcmUoY29va2llMltmaWVsZF0gKyAiIikKKyAgICAg
ICAgICAgIHJldHVybiAobm9kZUEuZGF0YVtmaWVsZF0gKyAiIikubG9jYWxlQ29tcGFyZShub2Rl
Qi5kYXRhW2ZpZWxkXSArICIiKTsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9uIG51bWJl
ckNvbXBhcmUoZmllbGQsIGNvb2tpZTEsIGNvb2tpZTIpCisgICAgICAgIGZ1bmN0aW9uIG51bWJl
ckNvbXBhcmUoZmllbGQsIG5vZGVBLCBub2RlQikKICAgICAgICAgewotICAgICAgICAgICAgcmV0
dXJuIHNvcnREaXJlY3Rpb24gKiAoY29va2llMVtmaWVsZF0gLSBjb29raWUyW2ZpZWxkXSk7Cisg
ICAgICAgICAgICByZXR1cm4gbm9kZUEuY29va2llW2ZpZWxkXSAtIG5vZGVCLmNvb2tpZVtmaWVs
ZF07CiAgICAgICAgIH0KIAotICAgICAgICBmdW5jdGlvbiBleHBpcmVzQ29tcGFyZShjb29raWUx
LCBjb29raWUyKQorICAgICAgICBmdW5jdGlvbiBleHBpcmVzQ29tcGFyZShub2RlQSwgbm9kZUIp
CiAgICAgICAgIHsKLSAgICAgICAgICAgIGlmIChjb29raWUxLnNlc3Npb24gIT09IGNvb2tpZTIu
c2Vzc2lvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gc29ydERpcmVjdGlvbiAqIChjb29raWUx
LnNlc3Npb24gPyAxIDogLTEpOworICAgICAgICAgICAgaWYgKG5vZGVBLmNvb2tpZS5zZXNzaW9u
ICE9PSBub2RlQi5jb29raWUuc2Vzc2lvbikKKyAgICAgICAgICAgICAgICByZXR1cm4gbm9kZUEu
Y29va2llLnNlc3Npb24gPyAxIDogLTE7CiAKLSAgICAgICAgICAgIGlmIChjb29raWUxLnNlc3Np
b24pCisgICAgICAgICAgICBpZiAobm9kZUEuY29va2llLnNlc3Npb24pCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIDA7CiAKLSAgICAgICAgICAgIHJldHVybiBzb3J0RGlyZWN0aW9uICogKGNvb2tp
ZTEuZXhwaXJlcyAtIGNvb2tpZTIuZXhwaXJlcyk7CisgICAgICAgICAgICByZXR1cm4gbm9kZUEu
ZGF0YVsiZXhwaXJlcyJdIC0gbm9kZUIuZGF0YVsiZXhwaXJlcyJdOwogICAgICAgICB9CiAKICAg
ICAgICAgdmFyIGNvbXBhcmF0b3I7Ci0gICAgICAgIHN3aXRjaCAocGFyc2VJbnQodGhpcy5fZGF0
YUdyaWQuc29ydENvbHVtbklkZW50aWZpZXIsIDEwKSkgewotICAgICAgICAgICAgY2FzZSAwOiBj
b21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7IGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSAxOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJ2
YWx1ZSIpOyBicmVhazsKLSAgICAgICAgICAgIGNhc2UgMjogY29tcGFyYXRvciA9IGxvY2FsZUNv
bXBhcmUuYmluZCh0aGlzLCAiZG9tYWluIik7IGJyZWFrOwotICAgICAgICAgICAgY2FzZSAzOiBj
b21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJwYXRoIik7IGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSA0OiBjb21wYXJhdG9yID0gZXhwaXJlc0NvbXBhcmU7IGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSA1OiBjb21wYXJhdG9yID0gbnVtYmVyQ29tcGFyZS5iaW5kKHRoaXMsICJz
aXplIik7IGJyZWFrOwotICAgICAgICAgICAgY2FzZSA2OiBjb21wYXJhdG9yID0gbG9jYWxlQ29t
cGFyZS5iaW5kKHRoaXMsICJodHRwT25seSIpOyBicmVhazsKLSAgICAgICAgICAgIGNhc2UgNzog
Y29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAic2VjdXJlIik7IGJyZWFrOwot
ICAgICAgICAgICAgZGVmYXVsdDogbG9jYWxlQ29tcGFyZS5iaW5kKHRoaXMsICJuYW1lIik7Cisg
ICAgICAgIHN3aXRjaCAodGhpcy5fZGF0YUdyaWQuc29ydENvbHVtbklkZW50aWZpZXIgfHwgIm5h
bWUiKSB7CisgICAgICAgICAgICBjYXNlICJuYW1lIjogY29tcGFyYXRvciA9IGxvY2FsZUNvbXBh
cmUuYmluZCh0aGlzLCAibmFtZSIpOyBicmVhazsKKyAgICAgICAgICAgIGNhc2UgInZhbHVlIjog
Y29tcGFyYXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAidmFsdWUiKTsgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlICJkb21haW4iOiBjb21wYXJhdG9yID0gbG9jYWxlQ29tcGFyZS5iaW5k
KHRoaXMsICJkb21haW4iKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlICJwYXRoIjogY29tcGFy
YXRvciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAicGF0aCIpOyBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgImV4cGlyZXMiOiBjb21wYXJhdG9yID0gZXhwaXJlc0NvbXBhcmU7IGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSAic2l6ZSI6IGNvbXBhcmF0b3IgPSBudW1iZXJDb21wYXJlLmJpbmQo
dGhpcywgInNpemUiKTsgYnJlYWs7CisgICAgICAgICAgICBjYXNlICJodHRwIjogY29tcGFyYXRv
ciA9IGxvY2FsZUNvbXBhcmUuYmluZCh0aGlzLCAiaHR0cCIpOyBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgInNlY3VyZSI6IGNvbXBhcmF0b3IgPSBsb2NhbGVDb21wYXJlLmJpbmQodGhpcywgInNl
Y3VyZSIpOyBicmVhazsKICAgICAgICAgfQogCi0gICAgICAgIGNvb2tpZXMuc29ydChjb21wYXJh
dG9yKTsKKyAgICAgICAgY29uc29sZS5hc3NlcnQoY29tcGFyYXRvcik7CisgICAgICAgIHRoaXMu
X2RhdGFHcmlkLnNvcnROb2Rlcyhjb21wYXJhdG9yKTsKICAgICB9LAogCiAgICAgX2RlbGV0ZUNh
bGxiYWNrOiBmdW5jdGlvbihub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJ
L1VzZXJJbnRlcmZhY2UvVmlld3MvRGF0YUdyaWQuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9EYXRhR3JpZC5qcwppbmRleCBiN2M3OTk3MjM0M2Y1NWY0Mzcy
MzE0OTM4Yjc1YWNlNWZmYWEyMDY3Li5jMWMwZTcwNjY2MzNjMzBlYTE3ZjA5NTZjMDM5M2M0YzI2
ZGIwMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9EYXRhR3JpZC5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9WaWV3cy9EYXRhR3JpZC5qcwpAQCAtMjgsNiArMjgsOSBAQCBXZWJJbnNwZWN0b3IuRGF0YUdy
aWQgPSBmdW5jdGlvbihjb2x1bW5zRGF0YSwgZWRpdENhbGxiYWNrLCBkZWxldGVDYWxsYmFjaykK
ICAgICB0aGlzLmNvbHVtbnMgPSBuZXcgTWFwOwogICAgIHRoaXMub3JkZXJlZENvbHVtbnMgPSBb
XTsKIAorICAgIHRoaXMuX3NvcnRDb2x1bW5JZGVudGlmaWVyID0gbnVsbDsKKyAgICB0aGlzLl9z
b3J0T3JkZXIgPSBXZWJJbnNwZWN0b3IuRGF0YUdyaWQuU29ydE9yZGVyLkluZGV0ZXJtaW5hdGU7
CisKICAgICB0aGlzLmNoaWxkcmVuID0gW107CiAgICAgdGhpcy5zZWxlY3RlZE5vZGUgPSBudWxs
OwogICAgIHRoaXMuZXhwYW5kTm9kZXNXaGVuQXJyb3dpbmcgPSBmYWxzZTsKQEAgLTk4LDEwICsx
MDEsMTYgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50ID0gewogICAgIENvbGxhcHNlZE5v
ZGU6ICJkYXRhZ3JpZC1jb2xsYXBzZWQtbm9kZSIKIH07CiAKLS8qKgotICogQHBhcmFtIHtBcnJh
eS48c3RyaW5nPn0gY29sdW1uTmFtZXMKLSAqIEBwYXJhbSB7QXJyYXkuPHN0cmluZz59IHZhbHVl
cwotICovCitXZWJJbnNwZWN0b3IuRGF0YUdyaWQuU29ydE9yZGVyID0geworICAgIEluZGV0ZXJt
aW5hdGU6ICJkYXRhLWdyaWQtc29ydC1vcmRlci1pbmRldGVybWluYXRlIiwKKyAgICBBc2NlbmRp
bmc6ICJkYXRhLWdyaWQtc29ydC1vcmRlci1hc2NlbmRpbmciLAorICAgIERlc2NlbmRpbmc6ICJk
YXRhLWdyaWQtc29ydC1vcmRlci1kZXNjZW5kaW5nIgorfTsKKworV2ViSW5zcGVjdG9yLkRhdGFH
cmlkLlNvcnRDb2x1bW5Bc2NlbmRpbmdTdHlsZUNsYXNzTmFtZSA9ICJzb3J0LWFzY2VuZGluZyI7
CitXZWJJbnNwZWN0b3IuRGF0YUdyaWQuU29ydENvbHVtbkRlc2NlbmRpbmdTdHlsZUNsYXNzTmFt
ZSA9ICJzb3J0LWRlc2NlbmRpbmciOworV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlNvcnRhYmxlQ29s
dW1uU3R5bGVDbGFzc05hbWUgPSAic29ydGFibGUiOworCiBXZWJJbnNwZWN0b3IuRGF0YUdyaWQu
Y3JlYXRlU29ydGFibGVEYXRhR3JpZCA9IGZ1bmN0aW9uKGNvbHVtbk5hbWVzLCB2YWx1ZXMpCiB7
CiAgICAgdmFyIG51bUNvbHVtbnMgPSBjb2x1bW5OYW1lcy5sZW5ndGg7CkBAIC0xMzMsNyArMTQy
LDcgQEAgV2ViSW5zcGVjdG9yLkRhdGFHcmlkLmNyZWF0ZVNvcnRhYmxlRGF0YUdyaWQgPSBmdW5j
dGlvbihjb2x1bW5OYW1lcywgdmFsdWVzKQogICAgIGZ1bmN0aW9uIHNvcnREYXRhR3JpZCgpCiAg
ICAgewogICAgICAgICB2YXIgc29ydENvbHVtbklkZW50aWZpZXIgPSBkYXRhR3JpZC5zb3J0Q29s
dW1uSWRlbnRpZmllcjsKLSAgICAgICAgdmFyIHNvcnRBc2NlbmRpbmcgPSBkYXRhR3JpZC5zb3J0
T3JkZXIgPT09ICJhc2NlbmRpbmciID8gMSA6IC0xOworICAgICAgICB2YXIgc29ydEFzY2VuZGlu
ZyA9IGRhdGFHcmlkLnNvcnRPcmRlciA9PT0gV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlNvcnRPcmRl
ci5Bc2NlbmRpbmcgPyAxIDogLTE7CiAKICAgICAgICAgZm9yICh2YXIgbm9kZSBvZiBkYXRhR3Jp
ZC5jaGlsZHJlbikgewogICAgICAgICAgICAgaWYgKGlzTmFOKE51bWJlcihub2RlLmRhdGFbc29y
dENvbHVtbklkZW50aWZpZXJdIHx8ICIiKSkpCkBAIC0xNzUsNiArMTg0LDYwIEBAIFdlYkluc3Bl
Y3Rvci5EYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX3JlZnJlc2hDYWxsYmFj
ayA9IHJlZnJlc2hDYWxsYmFjazsKICAgICB9LAogCisgICAgZ2V0IHNvcnRPcmRlcigpCisgICAg
eworICAgICAgICByZXR1cm4gdGhpcy5fc29ydE9yZGVyOworICAgIH0sCisKKyAgICBzZXQgc29y
dE9yZGVyKG9yZGVyKQorICAgIHsKKyAgICAgICAgaWYgKG9yZGVyID09PSB0aGlzLl9zb3J0T3Jk
ZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdGhpcy5fc29ydE9yZGVyID0gb3Jk
ZXI7CisKKyAgICAgICAgaWYgKCF0aGlzLl9zb3J0Q29sdW1uSWRlbnRpZmllcikKKyAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICB2YXIgc29ydEhlYWRlckNlbGxFbGVtZW50ID0gdGhpcy5f
aGVhZGVyVGFibGVDZWxsRWxlbWVudHMuZ2V0KHRoaXMuX3NvcnRDb2x1bW5JZGVudGlmaWVyKTsK
KworICAgICAgICBzb3J0SGVhZGVyQ2VsbEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShXZWJJbnNw
ZWN0b3IuRGF0YUdyaWQuU29ydENvbHVtbkFzY2VuZGluZ1N0eWxlQ2xhc3NOYW1lLCB0aGlzLl9z
b3J0T3JkZXIgPT09IFdlYkluc3BlY3Rvci5EYXRhR3JpZC5Tb3J0T3JkZXIuQXNjZW5kaW5nKTsK
KyAgICAgICAgc29ydEhlYWRlckNlbGxFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoV2ViSW5zcGVj
dG9yLkRhdGFHcmlkLlNvcnRDb2x1bW5EZXNjZW5kaW5nU3R5bGVDbGFzc05hbWUsIHRoaXMuX3Nv
cnRPcmRlciA9PT0gV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlNvcnRPcmRlci5EZXNjZW5kaW5nKTsK
KworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGF0
YUdyaWQuRXZlbnQuU29ydENoYW5nZWQpOworICAgIH0sCisKKyAgICBnZXQgc29ydENvbHVtbklk
ZW50aWZpZXIoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NvcnRDb2x1bW5JZGVudGlm
aWVyOworICAgIH0sCisKKyAgICBzZXQgc29ydENvbHVtbklkZW50aWZpZXIoY29sdW1uSWRlbnRp
ZmllcikKKyAgICB7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KGNvbHVtbklkZW50aWZpZXIgJiYg
dGhpcy5jb2x1bW5zLmhhcyhjb2x1bW5JZGVudGlmaWVyKSk7CisgICAgICAgIGNvbnNvbGUuYXNz
ZXJ0KHRoaXMuY29sdW1ucy5nZXQoY29sdW1uSWRlbnRpZmllcikuaGFzKCJzb3J0YWJsZSIpKTsK
KworICAgICAgICBpZiAodGhpcy5fc29ydENvbHVtbklkZW50aWZpZXIgPT09IGNvbHVtbklkZW50
aWZpZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgdmFyIG9sZFNvcnRDb2x1bW5J
ZGVudGlmaWVyID0gdGhpcy5fc29ydENvbHVtbklkZW50aWZpZXI7CisgICAgICAgIHRoaXMuX3Nv
cnRDb2x1bW5JZGVudGlmaWVyID0gY29sdW1uSWRlbnRpZmllcjsKKworICAgICAgICBpZiAob2xk
U29ydENvbHVtbklkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIHZhciBvbGRTb3J0SGVhZGVyQ2Vs
bEVsZW1lbnQgPSB0aGlzLl9oZWFkZXJUYWJsZUNlbGxFbGVtZW50cy5nZXQob2xkU29ydENvbHVt
bklkZW50aWZpZXIpOworICAgICAgICAgICAgb2xkU29ydEhlYWRlckNlbGxFbGVtZW50LmNsYXNz
TGlzdC5yZW1vdmUoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlNvcnRDb2x1bW5Bc2NlbmRpbmdTdHls
ZUNsYXNzTmFtZSk7CisgICAgICAgICAgICBvbGRTb3J0SGVhZGVyQ2VsbEVsZW1lbnQuY2xhc3NM
aXN0LnJlbW92ZShXZWJJbnNwZWN0b3IuRGF0YUdyaWQuU29ydENvbHVtbkRlc2NlbmRpbmdTdHls
ZUNsYXNzTmFtZSk7CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy5fc29ydENvbHVtbklk
ZW50aWZpZXIpIHsKKyAgICAgICAgICAgIHZhciBuZXdTb3J0SGVhZGVyQ2VsbEVsZW1lbnQgPSB0
aGlzLl9oZWFkZXJUYWJsZUNlbGxFbGVtZW50cy5nZXQodGhpcy5fc29ydENvbHVtbklkZW50aWZp
ZXIpOworICAgICAgICAgICAgbmV3U29ydEhlYWRlckNlbGxFbGVtZW50LmNsYXNzTGlzdC50b2dn
bGUoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlNvcnRDb2x1bW5Bc2NlbmRpbmdTdHlsZUNsYXNzTmFt
ZSwgdGhpcy5fc29ydE9yZGVyID09PSBXZWJJbnNwZWN0b3IuRGF0YUdyaWQuU29ydE9yZGVyLkFz
Y2VuZGluZyk7CisgICAgICAgICAgICBuZXdTb3J0SGVhZGVyQ2VsbEVsZW1lbnQuY2xhc3NMaXN0
LnRvZ2dsZShXZWJJbnNwZWN0b3IuRGF0YUdyaWQuU29ydENvbHVtbkRlc2NlbmRpbmdTdHlsZUNs
YXNzTmFtZSwgdGhpcy5fc29ydE9yZGVyID09PSBXZWJJbnNwZWN0b3IuRGF0YUdyaWQuU29ydE9y
ZGVyLkRlc2NlbmRpbmcpOworICAgICAgICB9CisKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50
VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLkV2ZW50LlNvcnRDaGFuZ2VkKTsKKyAg
ICB9LAorCiAgICAgX29uZGJsY2xpY2s6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKICAgICAgICAg
aWYgKHRoaXMuX2VkaXRpbmcgfHwgdGhpcy5fZWRpdGluZ05vZGUpCkBAIC0yODMsMjAgKzM0Niw2
IEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX2Vk
aXRpbmdOb2RlID0gbnVsbDsKICAgICB9LAogCi0gICAgZ2V0IHNvcnRDb2x1bW5JZGVudGlmaWVy
KCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zb3J0Q29sdW1uQ2VsbCA/IHRoaXMuX3Nv
cnRDb2x1bW5DZWxsLmNvbHVtbklkZW50aWZpZXIgOiBudWxsOwotICAgIH0sCi0KLSAgICBnZXQg
c29ydE9yZGVyKCkKLSAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fc29ydENvbHVtbkNlbGwgfHwg
dGhpcy5fc29ydENvbHVtbkNlbGwuY2xhc3NMaXN0LmNvbnRhaW5zKCJzb3J0LWFzY2VuZGluZyIp
KQotICAgICAgICAgICAgcmV0dXJuICJhc2NlbmRpbmciOwotICAgICAgICBpZiAodGhpcy5fc29y
dENvbHVtbkNlbGwuY2xhc3NMaXN0LmNvbnRhaW5zKCJzb3J0LWRlc2NlbmRpbmciKSkKLSAgICAg
ICAgICAgIHJldHVybiAiZGVzY2VuZGluZyI7Ci0gICAgICAgIHJldHVybiBudWxsOwotICAgIH0s
Ci0KICAgICBhdXRvU2l6ZUNvbHVtbnM6IGZ1bmN0aW9uKG1pblBlcmNlbnQsIG1heFBlcmNlbnQs
IG1heERlc2NlbnRMZXZlbCkKICAgICB7CiAgICAgICAgIGlmIChtaW5QZXJjZW50KQpAQCAtNDEz
LDE0ICs0NjIsOSBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlID0gewogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBkaXYudGV4dENvbnRlbnQgPSBjb2x1bW4uZ2V0KCJ0aXRsZSIs
ICIiKTsKIAotICAgICAgICBpZiAoY29sdW1uLmhhcygic29ydCIpKSB7Ci0gICAgICAgICAgICBo
ZWFkZXJDZWxsRWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzb3J0LSIgKyBjb2x1bW4uZ2V0KCJzb3J0
IikpOwotICAgICAgICAgICAgdGhpcy5fc29ydENvbHVtbkNlbGwgPSBoZWFkZXJDZWxsRWxlbWVu
dDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmIChjb2x1bW4uaGFzKCJzb3J0YWJsZSIpKSB7Ci0g
ICAgICAgICAgICBsaXN0ZW5lcnMucmVnaXN0ZXIoaGVhZGVyQ2VsbEVsZW1lbnQsICJjbGljayIs
IHRoaXMuX2NsaWNrSW5IZWFkZXJDZWxsLCBmYWxzZSk7Ci0gICAgICAgICAgICBoZWFkZXJDZWxs
RWxlbWVudC5jbGFzc0xpc3QuYWRkKCJzb3J0YWJsZSIpOworICAgICAgICBpZiAoY29sdW1uLmdl
dCgic29ydGFibGUiKSkgeworICAgICAgICAgICAgbGlzdGVuZXJzLnJlZ2lzdGVyKGhlYWRlckNl
bGxFbGVtZW50LCAiY2xpY2siLCB0aGlzLl9oZWFkZXJDZWxsQ2xpY2tlZCk7CisgICAgICAgICAg
ICBoZWFkZXJDZWxsRWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5EYXRhR3JpZC5T
b3J0YWJsZUNvbHVtblN0eWxlQ2xhc3NOYW1lKTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChj
b2x1bW4uaGFzKCJncm91cCIpKQpAQCAtNDgzLDggKzUyNyw4IEBAIFdlYkluc3BlY3Rvci5EYXRh
R3JpZC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmIChyZW1vdmVkQ29sdW1uLmhhcygiZGlzY2xv
c3VyZSIpKQogICAgICAgICAgICAgZGVsZXRlIHRoaXMuZGlzY2xvc3VyZUNvbHVtbklkZW50aWZp
ZXI7CiAKLSAgICAgICAgaWYgKHJlbW92ZWRDb2x1bW4uaGFzKCJzb3J0IikpCi0gICAgICAgICAg
ICBkZWxldGUgdGhpcy5fc29ydENvbHVtbkNlbGw7CisgICAgICAgIGlmICh0aGlzLnNvcnRDb2x1
bW5JZGVudGlmaWVyID09PSBjb2x1bW5JZGVudGlmaWVyKQorICAgICAgICAgICAgdGhpcy5zb3J0
Q29sdW1uSWRlbnRpZmllciA9IG51bGw7CiAKICAgICAgICAgdGhpcy5faGVhZGVyVGFibGVDZWxs
RWxlbWVudHMuZGVsZXRlKGNvbHVtbklkZW50aWZpZXIpOwogICAgICAgICB0aGlzLl9oZWFkZXJU
YWJsZVJvd0VsZW1lbnQuY2hpbGRyZW5bcmVtb3ZlZE9yZGluYWxdLnJlbW92ZSgpOwpAQCAtNzc2
LDkgKzgyMCwxNyBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlID0gewogCiAgICAg
c29ydE5vZGVzOiBmdW5jdGlvbihjb21wYXJhdG9yKQogICAgIHsKKyAgICAgICAgaWYgKHRoaXMu
X3NvcnROb2Rlc1JlcXVlc3RJZCkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlz
Ll9zb3J0Tm9kZXNSZXF1ZXN0SWQgPSB3aW5kb3cucmVxdWVzdEFuaW1hdGlvbkZyYW1lKHRoaXMu
X3NvcnROb2Rlc0NhbGxiYWNrLmJpbmQodGhpcywgY29tcGFyYXRvcikpOworICAgIH0sCisKKyAg
ICBfc29ydE5vZGVzQ2FsbGJhY2s6IGZ1bmN0aW9uKGNvbXBhcmF0b3IpCisgICAgewogICAgICAg
ICBmdW5jdGlvbiBjb21wYXJhdG9yV3JhcHBlcihhUm93LCBiUm93KQogICAgICAgICB7Ci0gICAg
ICAgICAgICB2YXIgcmV2ZXJzZUZhY3RvciA9IHRoaXMuc29ydE9yZGVyICE9PSAiYXNjZWRpbmci
ID8gLTEgOiAxOworICAgICAgICAgICAgdmFyIHJldmVyc2VGYWN0b3IgPSB0aGlzLnNvcnRPcmRl
ciAhPT0gV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlNvcnRPcmRlci5Bc2NlbmRpbmcgPyAtMSA6IDE7
CiAgICAgICAgICAgICB2YXIgYU5vZGUgPSBhUm93Ll9kYXRhR3JpZE5vZGU7CiAgICAgICAgICAg
ICB2YXIgYk5vZGUgPSBiUm93Ll9kYXRhR3JpZE5vZGU7CiAgICAgICAgICAgICBpZiAoYU5vZGUu
X2RhdGEuc3VtbWFyeVJvdyB8fCBhTm9kZS5pc1BsYWNlaG9sZGVyTm9kZSkKQEAgLTc4OSw2ICs4
NDEsOCBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlID0gewogICAgICAgICAgICAg
cmV0dXJuIHJldmVyc2VGYWN0b3IgKiBjb21wYXJhdG9yKGFOb2RlLCBiTm9kZSk7CiAgICAgICAg
IH0KIAorICAgICAgICBkZWxldGUgdGhpcy5fc29ydE5vZGVzUmVxdWVzdElkOworCiAgICAgICAg
IGlmICh0aGlzLl9lZGl0aW5nKSB7CiAgICAgICAgICAgICB0aGlzLl9zb3J0QWZ0ZXJFZGl0aW5n
Q2FsbGJhY2sgPSB0aGlzLnNvcnROb2Rlcy5iaW5kKHRoaXMsIGNvbXBhcmF0b3IpOwogICAgICAg
ICAgICAgcmV0dXJuOwpAQCAtNzk5LDcgKzg1Myw3IEBAIFdlYkluc3BlY3Rvci5EYXRhR3JpZC5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBmaWxsZXJSb3dFbGVtZW50ID0gdGJvZHkubGFzdENo
aWxkOwogCiAgICAgICAgIHZhciBzb3J0ZWRSb3dFbGVtZW50cyA9IEFycmF5LnByb3RvdHlwZS5z
bGljZS5jYWxsKGNoaWxkTm9kZXMsIDAsIGNoaWxkTm9kZXMubGVuZ3RoIC0gMSk7Ci0gICAgICAg
IHNvcnRlZFJvd0VsZW1lbnRzLnNvcnQoY29tcGFyYXRvcldyYXBwZXIpOworICAgICAgICBzb3J0
ZWRSb3dFbGVtZW50cy5zb3J0KGNvbXBhcmF0b3JXcmFwcGVyLmJpbmQodGhpcykpOwogCiAgICAg
ICAgIHRib2R5LnJlbW92ZUNoaWxkcmVuKCk7CiAKQEAgLTkyMywyOSArOTc3LDIwIEBAIFdlYklu
c3BlY3Rvci5EYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiByb3dFbGVtZW50
ICYmIHJvd0VsZW1lbnQuX2RhdGFHcmlkTm9kZTsKICAgICB9LAogCi0gICAgX2NsaWNrSW5IZWFk
ZXJDZWxsOiBmdW5jdGlvbihldmVudCkKKyAgICBfaGVhZGVyQ2VsbENsaWNrZWQ6IGZ1bmN0aW9u
KGV2ZW50KQogICAgIHsKICAgICAgICAgdmFyIGNlbGwgPSBldmVudC50YXJnZXQuZW5jbG9zaW5n
Tm9kZU9yU2VsZldpdGhOb2RlTmFtZSgidGgiKTsKLSAgICAgICAgaWYgKCFjZWxsIHx8ICFjZWxs
LmNvbHVtbklkZW50aWZpZXIgfHwgIWNlbGwuY2xhc3NMaXN0LmNvbnRhaW5zKCJzb3J0YWJsZSIp
KQorICAgICAgICBpZiAoIWNlbGwgfHwgIWNlbGwuY29sdW1uSWRlbnRpZmllciB8fCAhY2VsbC5j
bGFzc0xpc3QuY29udGFpbnMoV2ViSW5zcGVjdG9yLkRhdGFHcmlkLlNvcnRhYmxlQ29sdW1uU3R5
bGVDbGFzc05hbWUpKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIHZhciBzb3J0T3Jk
ZXIgPSB0aGlzLnNvcnRPcmRlcjsKLQotICAgICAgICBpZiAodGhpcy5fc29ydENvbHVtbkNlbGwp
Ci0gICAgICAgICAgICB0aGlzLl9zb3J0Q29sdW1uQ2VsbC5yZW1vdmVNYXRjaGluZ1N0eWxlQ2xh
c3Nlcygic29ydC1cXHcrIik7Ci0KLSAgICAgICAgaWYgKGNlbGwgPT0gdGhpcy5fc29ydENvbHVt
bkNlbGwpIHsKLSAgICAgICAgICAgIGlmIChzb3J0T3JkZXIgPT09ICJhc2NlbmRpbmciKQotICAg
ICAgICAgICAgICAgIHNvcnRPcmRlciA9ICJkZXNjZW5kaW5nIjsKKyAgICAgICAgdmFyIGNsaWNr
ZWRDb2x1bW5JZGVudGlmaWVyID0gY2VsbC5jb2x1bW5JZGVudGlmaWVyOworICAgICAgICBpZiAo
dGhpcy5zb3J0Q29sdW1uSWRlbnRpZmllciA9PT0gY2xpY2tlZENvbHVtbklkZW50aWZpZXIpIHsK
KyAgICAgICAgICAgIGlmICh0aGlzLnNvcnRPcmRlciAhPT0gV2ViSW5zcGVjdG9yLkRhdGFHcmlk
LlNvcnRPcmRlci5EZXNjZW5kaW5nKQorICAgICAgICAgICAgICAgIHRoaXMuc29ydE9yZGVyID0g
V2ViSW5zcGVjdG9yLkRhdGFHcmlkLlNvcnRPcmRlci5EZXNjZW5kaW5nOwogICAgICAgICAgICAg
ZWxzZQotICAgICAgICAgICAgICAgIHNvcnRPcmRlciA9ICJhc2NlbmRpbmciOwotICAgICAgICB9
Ci0KLSAgICAgICAgdGhpcy5fc29ydENvbHVtbkNlbGwgPSBjZWxsOwotCi0gICAgICAgIGNlbGwu
Y2xhc3NMaXN0LmFkZCgic29ydC0iICsgc29ydE9yZGVyKTsKLQotICAgICAgICB0aGlzLmRpc3Bh
dGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGF0YUdyaWQuRXZlbnQuU29ydENoYW5n
ZWQpOworICAgICAgICAgICAgICAgIHRoaXMuc29ydE9yZGVyID0gV2ViSW5zcGVjdG9yLkRhdGFH
cmlkLlNvcnRPcmRlci5Bc2NlbmRpbmc7CisgICAgICAgIH0gZWxzZQorICAgICAgICAgICAgdGhp
cy5zb3J0Q29sdW1uSWRlbnRpZmllciA9IGNsaWNrZWRDb2x1bW5JZGVudGlmaWVyOwogICAgIH0s
CiAKICAgICBfbW91c2VvdmVyQ29sdW1uQ29sbGFwc2VyOiBmdW5jdGlvbihldmVudCkKQEAgLTEw
MzUsMTkgKzEwODAsNiBAQCBXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlID0gewogICAg
ICAgICAvLyBJbXBsZW1lbnRlZCBieSBzdWJjbGFzc2VzIGlmIG5lZWRlZC4KICAgICB9LAogCi0g
ICAgaXNDb2x1bW5Tb3J0Q29sdW1uOiBmdW5jdGlvbihjb2x1bW5JZGVudGlmaWVyKQotICAgIHsK
LSAgICAgICAgcmV0dXJuIHRoaXMuX3NvcnRDb2x1bW5DZWxsID09PSB0aGlzLl9oZWFkZXJUYWJs
ZUNlbGxFbGVtZW50cy5nZXQoY29sdW1uSWRlbnRpZmllcik7Ci0gICAgfSwKLQotICAgIG1hcmtD
b2x1bW5Bc1NvcnRlZEJ5OiBmdW5jdGlvbihjb2x1bW5JZGVudGlmaWVyLCBzb3J0T3JkZXIpCi0g
ICAgewotICAgICAgICBpZiAodGhpcy5fc29ydENvbHVtbkNlbGwpCi0gICAgICAgICAgICB0aGlz
Ll9zb3J0Q29sdW1uQ2VsbC5yZW1vdmVNYXRjaGluZ1N0eWxlQ2xhc3Nlcygic29ydC1cXHcrIik7
Ci0gICAgICAgIHRoaXMuX3NvcnRDb2x1bW5DZWxsID0gdGhpcy5faGVhZGVyVGFibGVDZWxsRWxl
bWVudHMuZ2V0KGNvbHVtbklkZW50aWZpZXIpOwotICAgICAgICB0aGlzLl9zb3J0Q29sdW1uQ2Vs
bC5jbGFzc0xpc3QuYWRkKCJzb3J0LSIgKyBzb3J0T3JkZXIpOwotICAgIH0sCi0KICAgICBoZWFk
ZXJUYWJsZUhlYWRlcjogZnVuY3Rpb24oY29sdW1uSWRlbnRpZmllcikKICAgICB7CiAgICAgICAg
IHJldHVybiB0aGlzLl9oZWFkZXJUYWJsZUNlbGxFbGVtZW50cy5nZXQoY29sdW1uSWRlbnRpZmll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3
cy9MYXllclRyZWVEYXRhR3JpZC5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL1ZpZXdzL0xheWVyVHJlZURhdGFHcmlkLmpzCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCBjMmFiYjI0YjA0YWU2YzhiNTkwODZiYTI3MTE3MjBmNzFiMjkwOTk2Li4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyVHJlZURhdGFHcmlkLmpzCisrKyAvZGV2L251bGwK
QEAgLTEsMTIwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBh
cmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1XZWJJbnNwZWN0b3IuTGF5ZXJUcmVlRGF0
YUdyaWQgPSBmdW5jdGlvbigpIHsKLSAgICBXZWJJbnNwZWN0b3IuRGF0YUdyaWQuY2FsbCh0aGlz
LCB7Ci0gICAgICAgIG5hbWU6IHsgdGl0bGU6IFdlYkluc3BlY3Rvci5VSVN0cmluZygiTm9kZSIp
LCBzb3J0YWJsZTogZmFsc2UgfSwKLSAgICAgICAgcGFpbnRDb3VudDogeyB0aXRsZTogV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJQYWludHMiKSwgc29ydGFibGU6IHRydWUsIGFsaWduZWQ6ICJyaWdo
dCIsIHdpZHRoOiAiNTBweCIgfSwKLSAgICAgICAgbWVtb3J5OiB7IHRpdGxlOiBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIk1lbW9yeSIpLCBzb3J0YWJsZTogdHJ1ZSwgc29ydDogImRlc2NlbmRpbmci
LCBhbGlnbmVkOiAicmlnaHQiLCB3aWR0aDogIjcwcHgiIH0KLSAgICB9KTsKLX07Ci0KLVdlYklu
c3BlY3Rvci5MYXllclRyZWVEYXRhR3JpZC5wcm90b3R5cGUgPSB7Ci0gICAgY29uc3RydWN0b3I6
IFdlYkluc3BlY3Rvci5MYXllclRyZWVEYXRhR3JpZCwKLSAgICAKLSAgICBpbnNlcnRDaGlsZDog
ZnVuY3Rpb24oY2hpbGQpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJv
dG90eXBlLmluc2VydENoaWxkLmNhbGwodGhpcywgY2hpbGQpOwotCi0gICAgICAgIHRoaXMuX3Vw
ZGF0ZUNoaWxkcmVuKCk7Ci0gICAgfSwKLSAgICAKLSAgICByZW1vdmVDaGlsZDogZnVuY3Rpb24o
Y2hpbGQpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuRGF0YUdyaWQucHJvdG90eXBlLnJl
bW92ZUNoaWxkLmNhbGwodGhpcywgY2hpbGQpOwotCi0gICAgICAgIHRoaXMuX3VwZGF0ZUNoaWxk
cmVuKCk7Ci0gICAgfSwKLSAgICAKLSAgICBzZXRDaGlsZHJlbjogZnVuY3Rpb24oY2hpbGRyZW4p
Ci0gICAgewotICAgICAgICB0aGlzLl9zdXNwZW5kTGF5b3V0ID0gdHJ1ZTsKLQotICAgICAgICB2
YXIgcmVtb3ZlZENoaWxkcmVuID0gdGhpcy5jaGlsZHJlbi5maWx0ZXIoZnVuY3Rpb24oY2hpbGQp
IHsKLSAgICAgICAgICAgIHJldHVybiAhY2hpbGRyZW4uY29udGFpbnMoY2hpbGQpOwotICAgICAg
ICB9KTsKLQotICAgICAgICB3aGlsZSAocmVtb3ZlZENoaWxkcmVuLmxlbmd0aCkKLSAgICAgICAg
ICAgIHRoaXMucmVtb3ZlQ2hpbGQocmVtb3ZlZENoaWxkcmVuLnBvcCgpKTsKLQotICAgICAgICBj
aGlsZHJlbi5mb3JFYWNoKGZ1bmN0aW9uKGNoaWxkKSB7Ci0gICAgICAgICAgICBpZiAoY2hpbGQu
cGFyZW50ICE9PSB0aGlzKQotICAgICAgICAgICAgICAgIHRoaXMuYXBwZW5kQ2hpbGQoY2hpbGQp
OwotICAgICAgICB9LmJpbmQodGhpcykpOwotCi0gICAgICAgIHRoaXMuX3N1c3BlbmRMYXlvdXQg
PSBmYWxzZTsKLSAgICAgICAgCi0gICAgICAgIHRoaXMuY2hpbGRyZW4gPSBjaGlsZHJlbjsKLSAg
ICAgICAgdGhpcy5fdXBkYXRlQ2hpbGRyZW4oKTsKLSAgICB9LAotICAgIAotICAgIF91cGRhdGVD
aGlsZHJlbjogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX3N1c3BlbmRMYXlv
dXQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gSXRlcmF0ZSB0aHJvdWdoIG5v
ZGVzIGJ5IERPTSBvcmRlciBmaXJzdCBzbyB3ZSBjYW4gZXN0YWJsaXNoCi0gICAgICAgIC8vIHRo
ZSBET00gaW5kZXguCi0gICAgICAgIHZhciBlbGVtZW50cyA9IHRoaXMuZGF0YVRhYmxlQm9keUVs
ZW1lbnQucm93czsKLSAgICAgICAgZm9yICh2YXIgaSA9IDAsIGNvdW50ID0gZWxlbWVudHMubGVu
Z3RoIC0gMTsgaSA8IGNvdW50OyArK2kpCi0gICAgICAgICAgICBlbGVtZW50c1tpXS5fZGF0YUdy
aWROb2RlLl9kb21JbmRleCA9IGk7Ci0KLSAgICAgICAgLy8gTm93IGl0ZXJhdGUgdGhyb3VnaCBj
aGlsZHJlbiB0byBzZXQgdXAgdGhlaXIgc2libGluZyByZWxhdGlvbnNoaXAKLSAgICAgICAgLy8g
YW5kIHVwZGF0ZSB0aGUgZWxlbWVudCBzdHlsZSB0byBvZmZzZXQgdGhlIHBvc2l0aW9uIG9mIHRo
ZSBub2RlCi0gICAgICAgIC8vIHRvIG1hdGNoIGl0cyBwb3NpdGlvbiBpbiB0aGUgY2hpbGRyZW4g
bGlzdCB2cy4gRE9NIG9yZGVyLgotICAgICAgICB2YXIgY2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVu
OwotICAgICAgICBmb3IgKHZhciBpID0gMCwgY291bnQgPSBjaGlsZHJlbi5sZW5ndGg7IGkgPCBj
b3VudDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgY2hpbGQgPSBjaGlsZHJlbltpXTsKLSAgICAg
ICAgICAgIGNoaWxkLnByZXZpb3VzU2libGluZyA9IGkgPiAwID8gY2hpbGRyZW5baSAtIDFdIDog
bnVsbDsKLSAgICAgICAgICAgIGNoaWxkLm5leHRTaWJsaW5nID0gaSArIDEgPCBjb3VudCA/IGNo
aWxkcmVuW2kgKyAxXSA6IG51bGw7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgIHZhciB0eSA9
IChpIC0gY2hpbGQuX2RvbUluZGV4KSAqIDEwMDsKLSAgICAgICAgICAgIGNoaWxkLmVsZW1lbnQu
c3R5bGUud2Via2l0VHJhbnNmb3JtID0gInRyYW5zbGF0ZVkoIiArIHR5ICsgIiUpIjsKLQotICAg
ICAgICAgICAgLy8gU2luY2UgdGhlIERPTSBvcmRlciB3b24ndCBuZWNlc3NhcmlseSBtYXRjaCB0
aGUgdmlzdWFsIG9yZGVyIG9mIHRoZQotICAgICAgICAgICAgLy8gY2hpbGRyZW4gaW4gdGhlIGRh
dGEgZ3JpZCB3ZSBtYW51YWxseSBzZXQgImV2ZW4iIGFuZCAib2RkIiBhbmQgQ1NTCi0gICAgICAg
ICAgICAvLyBjbGFzcyBuYW1lcyBvbiB0aGUgZGF0YSBncmlkIG5vZGVzIHNvIHRoYXQgdGhleSBt
YXkgYmUgc3R5bGVkIHdpdGgKLSAgICAgICAgICAgIC8vIGEgZGlmZmVyZW50IG1lY2hhbmlzbSB0
aGFuIHRoZSBidWlsdC1pbiBDU1MgcHNldWRvLWNsYXNzZXMuCi0gICAgICAgICAgICB2YXIgY2xh
c3NMaXN0ID0gY2hpbGQuZWxlbWVudC5jbGFzc0xpc3Q7Ci0gICAgICAgICAgICBpZiAoaSAlIDIp
IHsKLSAgICAgICAgICAgICAgICBjbGFzc0xpc3QucmVtb3ZlKCJvZGQiKTsKLSAgICAgICAgICAg
ICAgICBjbGFzc0xpc3QuYWRkKCJldmVuIik7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIGNsYXNzTGlzdC5yZW1vdmUoImV2ZW4iKTsKLSAgICAgICAgICAgICAgICBjbGFz
c0xpc3QuYWRkKCJvZGQiKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIHRo
aXMuaGFzQ2hpbGRyZW4gPSB0aGlzLmNoaWxkcmVuLmxlbmd0aCA+IDA7Ci0gICAgfSwKLSAgICAK
LSAgICBfcmVjYWxjdWxhdGVTaWJsaW5nczogZnVuY3Rpb24obXlJbmRleCkKLSAgICB7Ci0gICAg
ICAgIC8vIE92ZXJyaWRpbmcgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiB0byBkbyBub3RoaW5nIGF0
IGFsbAotICAgICAgICAvLyBzaW5jZSB3ZSdyZSBzZXR0aW5nIHNpYmxpbmcgcmVsYXRpb25zaGlw
IGluIF91cGRhdGVDaGlsZHJlbi4KLSAgICB9Ci19OwotCi1XZWJJbnNwZWN0b3IuTGF5ZXJUcmVl
RGF0YUdyaWQucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5EYXRhR3JpZC5wcm90
b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9MYXllclRyZWVTaWRlYmFyUGFuZWwuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9WaWV3cy9MYXllclRyZWVTaWRlYmFyUGFuZWwuanMKaW5kZXggZmJlOWVkMDM2
YjAzM2IyZjY2ZjVkMDBlOWQzODdkZjg5YTEzMzBiZi4uNGU1MGUzZWRlYTAyYjA4YTNhOTEwNzZj
ZWRiMGQ0YTg3ZTZhY2I0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJ
bnRlcmZhY2UvVmlld3MvTGF5ZXJUcmVlU2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheWVyVHJlZVNpZGViYXJQYW5lbC5qcwpA
QCAtMTI4LDExICsxMjgsMjggQEAgV2ViSW5zcGVjdG9yLkxheWVyVHJlZVNpZGViYXJQYW5lbC5w
cm90b3R5cGUgPSB7CiAKICAgICBfYnVpbGREYXRhR3JpZFNlY3Rpb246IGZ1bmN0aW9uKCkKICAg
ICB7Ci0gICAgICAgIHRoaXMuX2RhdGFHcmlkID0gbmV3IFdlYkluc3BlY3Rvci5MYXllclRyZWVE
YXRhR3JpZDsKKyAgICAgICAgdmFyIGNvbHVtbnMgPSB7bmFtZToge30sIHBhaW50Q291bnQ6IHt9
LCBtZW1vcnk6IHt9fTsKIAorICAgICAgICBjb2x1bW5zLm5hbWUudGl0bGUgPSBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIk5vZGUiKTsKKyAgICAgICAgY29sdW1ucy5uYW1lLnNvcnRhYmxlID0gZmFs
c2U7CisKKyAgICAgICAgY29sdW1ucy5wYWludENvdW50LnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJ
U3RyaW5nKCJQYWludHMiKTsKKyAgICAgICAgY29sdW1ucy5wYWludENvdW50LnNvcnRhYmxlID0g
dHJ1ZTsKKyAgICAgICAgY29sdW1ucy5wYWludENvdW50LmFsaWduZWQgPSAicmlnaHQiOworICAg
ICAgICBjb2x1bW5zLnBhaW50Q291bnQud2lkdGggPSAiNTBweCI7CisKKyAgICAgICAgY29sdW1u
cy5tZW1vcnkudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIk1lbW9yeSIpOworICAgICAg
ICBjb2x1bW5zLm1lbW9yeS5zb3J0YWJsZSA9IHRydWU7CisgICAgICAgIGNvbHVtbnMubWVtb3J5
LmFsaWduZWQgPSAicmlnaHQiOworICAgICAgICBjb2x1bW5zLm1lbW9yeS53aWR0aCA9ICI3MHB4
IjsKKworICAgICAgICB0aGlzLl9kYXRhR3JpZCA9IG5ldyBXZWJJbnNwZWN0b3IuRGF0YUdyaWQo
Y29sdW1ucyk7CiAgICAgICAgIHRoaXMuX2RhdGFHcmlkLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRhdGFHcmlkLkV2ZW50LlNvcnRDaGFuZ2VkLCB0aGlzLl9zb3J0RGF0YUdyaWQsIHRo
aXMpOwogICAgICAgICB0aGlzLl9kYXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rv
ci5EYXRhR3JpZC5FdmVudC5TZWxlY3RlZE5vZGVDaGFuZ2VkLCB0aGlzLl9zZWxlY3RlZERhdGFH
cmlkTm9kZUNoYW5nZWQsIHRoaXMpOwogCisgICAgICAgIHRoaXMuc29ydENvbHVtbklkZW50aWZp
ZXIgPSAibWVtb3J5IjsKKyAgICAgICAgdGhpcy5zb3J0T3JkZXIgPSBXZWJJbnNwZWN0b3IuRGF0
YUdyaWQuU29ydE9yZGVyLkRlc2NlbmRpbmc7CisKICAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlz
Ll9kYXRhR3JpZC5lbGVtZW50OwogICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoImZv
Y3VzIiwgdGhpcy5fZGF0YUdyaWRHYWluZWRGb2N1cy5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAg
ICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigiYmx1ciIsIHRoaXMuX2RhdGFHcmlkTG9zdEZv
Y3VzLmJpbmQodGhpcyksIGZhbHNlKTsKQEAgLTE1OSwyNiArMTc2LDE5IEBAIFdlYkluc3BlY3Rv
ci5MYXllclRyZWVTaWRlYmFyUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9sYXll
cnNNZW1vcnlMYWJlbCA9IGJvdHRvbUJhci5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKSk7CiAgICAgICAgIHRoaXMuX2xheWVyc01lbW9yeUxhYmVsLmNsYXNzTmFtZSA9
ICJsYXllcnMtbWVtb3J5LWxhYmVsIjsKICAgICB9LAotICAgIAorCiAgICAgX3NvcnREYXRhR3Jp
ZDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIGRhdGFHcmlkID0gdGhpcy5fZGF0YUdy
aWQ7Ci0KLSAgICAgICAgdmFyIG5vZGVzID0gZGF0YUdyaWQuY2hpbGRyZW4uc2xpY2UoKTsKLSAg
ICAgICAgdmFyIHNvcnRDb2x1bW5JZGVudGlmaWVyID0gZGF0YUdyaWQuc29ydENvbHVtbklkZW50
aWZpZXI7Ci0gICAgICAgIHZhciBzb3J0RGlyZWN0aW9uID0gZGF0YUdyaWQuc29ydE9yZGVyID09
PSAiYXNjZW5kaW5nIiA/IDEgOiAtMTsKKyAgICAgICAgdmFyIHNvcnRDb2x1bW5JZGVudGlmaWVy
ID0gdGhpcy5fZGF0YUdyaWQuc29ydENvbHVtbklkZW50aWZpZXI7CiAKICAgICAgICAgZnVuY3Rp
b24gY29tcGFyYXRvcihhLCBiKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgaXRlbTEgPSBh
LmxheWVyW3NvcnRDb2x1bW5JZGVudGlmaWVyXSB8fCAwOwogICAgICAgICAgICAgdmFyIGl0ZW0y
ID0gYi5sYXllcltzb3J0Q29sdW1uSWRlbnRpZmllcl0gfHwgMDsKLSAgICAgICAgICAgIHJldHVy
biBzb3J0RGlyZWN0aW9uICogKGl0ZW0xIC0gaXRlbTIpOworICAgICAgICAgICAgcmV0dXJuIGl0
ZW0xIC0gaXRlbTI7CiAgICAgICAgIH07CiAKLSAgICAgICAgbm9kZXMuc29ydChjb21wYXJhdG9y
KTsKLQotICAgICAgICBkYXRhR3JpZC5zZXRDaGlsZHJlbihub2Rlcyk7Ci0KKyAgICAgICAgdGhp
cy5fZGF0YUdyaWQuc29ydE5vZGVzKGNvbXBhcmF0b3IpOwogICAgICAgICB0aGlzLl91cGRhdGVQ
b3BvdmVyRm9yU2VsZWN0ZWROb2RlKCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVWaWV3LmpzIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGF5b3V0VGltZWxpbmVW
aWV3LmpzCmluZGV4IDJjNDg3NjJjOTk0YzM1NzNmYmFjOWJlY2JjNDlhYTE0OTlkMzdiZDkuLjAx
OWYzZGU4YjdjZDYxYzE0N2EyNTczZTRhNjQwNTQxNmI0ZWM4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xheW91dFRpbWVsaW5lVmlldy5q
cworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9MYXlvdXRU
aW1lbGluZVZpZXcuanMKQEAgLTUwLDcgKzUwLDYgQEAgV2ViSW5zcGVjdG9yLkxheW91dFRpbWVs
aW5lVmlldyA9IGZ1bmN0aW9uKHJlY29yZGluZykKICAgICBjb2x1bW5zLnN0YXJ0VGltZS50aXRs
ZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiU3RhcnQgVGltZSIpOwogICAgIGNvbHVtbnMuc3Rh
cnRUaW1lLndpZHRoID0gIjglIjsKICAgICBjb2x1bW5zLnN0YXJ0VGltZS5hbGlnbmVkID0gInJp
Z2h0IjsKLSAgICBjb2x1bW5zLnN0YXJ0VGltZS5zb3J0ID0gImFzY2VuZGluZyI7CiAKICAgICBj
b2x1bW5zLmR1cmF0aW9uLnRpdGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJEdXJhdGlvbiIp
OwogICAgIGNvbHVtbnMuZHVyYXRpb24ud2lkdGggPSAiOCUiOwpAQCAtNjMsNiArNjIsOSBAQCBX
ZWJJbnNwZWN0b3IuTGF5b3V0VGltZWxpbmVWaWV3ID0gZnVuY3Rpb24ocmVjb3JkaW5nKQogICAg
IHRoaXMuX2RhdGFHcmlkLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlRpbWVsaW5lRGF0
YUdyaWQuRXZlbnQuRmlsdGVyc0RpZENoYW5nZSwgdGhpcy5fZGF0YUdyaWRGaWx0ZXJzRGlkQ2hh
bmdlLCB0aGlzKTsKICAgICB0aGlzLl9kYXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5EYXRhR3JpZC5FdmVudC5TZWxlY3RlZE5vZGVDaGFuZ2VkLCB0aGlzLl9kYXRhR3JpZE5v
ZGVTZWxlY3RlZCwgdGhpcyk7CiAKKyAgICB0aGlzLl9kYXRhR3JpZC5zb3J0Q29sdW1uSWRlbnRp
ZmllciA9ICJzdGFydFRpbWUiOworICAgIHRoaXMuX2RhdGFHcmlkLnNvcnRPcmRlciA9IFdlYklu
c3BlY3Rvci5EYXRhR3JpZC5Tb3J0T3JkZXIuQXNjZW5kaW5nOworCiAgICAgdGhpcy5lbGVtZW50
LmNsYXNzTGlzdC5hZGQoV2ViSW5zcGVjdG9yLkxheW91dFRpbWVsaW5lVmlldy5TdHlsZUNsYXNz
TmFtZSk7CiAgICAgdGhpcy5lbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX2RhdGFHcmlkLmVsZW1l
bnQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9W
aWV3cy9MZWdhY3lKYXZhU2NyaXB0UHJvZmlsZVZpZXcuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9MZWdhY3lKYXZhU2NyaXB0UHJvZmlsZVZpZXcuanMKaW5k
ZXggZjI3M2ZiYTdhMDU0NTE0ODMxNmM1NTcxZGU4ZTczZjczYTMwOTVjZC4uZWRlNzY1ZTRkNjA1
YzA2YWNiNDIwYTc2OGU4ZjA4YTE5MGEzZjJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTGVnYWN5SmF2YVNjcmlwdFByb2ZpbGVWaWV3Lmpz
CisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL0xlZ2FjeUph
dmFTY3JpcHRQcm9maWxlVmlldy5qcwpAQCAtNDE5LDcgKzQxOSw3IEBAIFdlYkluc3BlY3Rvci5M
ZWdhY3lKYXZhU2NyaXB0UHJvZmlsZVZpZXcucHJvdG90eXBlID0gewogCiAgICAgX3NvcnRQcm9m
aWxlOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICB2YXIgc29ydEFzY2VuZGluZyA9IHRoaXMu
ZGF0YUdyaWQuc29ydE9yZGVyID09PSAiYXNjZW5kaW5nIjsKKyAgICAgICAgdmFyIHNvcnRBc2Nl
bmRpbmcgPSB0aGlzLmRhdGFHcmlkLnNvcnRPcmRlciA9PT0gV2ViSW5zcGVjdG9yLkRhdGFHcmlk
LlNvcnRPcmRlci5Bc2NlbmRpbmc7CiAgICAgICAgIHZhciBzb3J0Q29sdW1uSWRlbnRpZmllciA9
IHRoaXMuZGF0YUdyaWQuc29ydENvbHVtbklkZW50aWZpZXI7CiAgICAgICAgIHZhciBzb3J0UHJv
cGVydHkgPSB7CiAgICAgICAgICAgICAgICAgImF2ZXJhZ2UiOiAiYXZlcmFnZVRpbWUiLApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvTmV0d29y
a1RpbWVsaW5lVmlldy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1Zp
ZXdzL05ldHdvcmtUaW1lbGluZVZpZXcuanMKaW5kZXggMzM2NmI5MTRjMjFhZmFhYTM1NThiYjFi
YzY1MjljMDU4ZjgzMmVlOS4uNjk2YmE4ZjE3ZDc1ODMwMjYyMWViZjJlNmMxOTU3MmVmNDUwNGY0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3Mv
TmV0d29ya1RpbWVsaW5lVmlldy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9WaWV3cy9OZXR3b3JrVGltZWxpbmVWaWV3LmpzCkBAIC02Myw3ICs2Myw2IEBAIFdl
Ykluc3BlY3Rvci5OZXR3b3JrVGltZWxpbmVWaWV3ID0gZnVuY3Rpb24ocmVjb3JkaW5nKQogICAg
IGNvbHVtbnMucmVxdWVzdFNlbnQudGl0bGUgPSBXZWJJbnNwZWN0b3IuVUlTdHJpbmcoIlN0YXJ0
IFRpbWUiKTsKICAgICBjb2x1bW5zLnJlcXVlc3RTZW50LndpZHRoID0gIjklIjsKICAgICBjb2x1
bW5zLnJlcXVlc3RTZW50LmFsaWduZWQgPSAicmlnaHQiOwotICAgIGNvbHVtbnMucmVxdWVzdFNl
bnQuc29ydCA9ICJhc2NlbmRpbmciOwogCiAgICAgY29sdW1ucy5sYXRlbmN5LnRpdGxlID0gV2Vi
SW5zcGVjdG9yLlVJU3RyaW5nKCJMYXRlbmN5Iik7CiAgICAgY29sdW1ucy5sYXRlbmN5LndpZHRo
ID0gIjklIjsKQEAgLTc5LDYgKzc4LDggQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtUaW1lbGluZVZp
ZXcgPSBmdW5jdGlvbihyZWNvcmRpbmcpCiAgICAgdGhpcy5fZGF0YUdyaWQgPSBuZXcgV2ViSW5z
cGVjdG9yLlRpbWVsaW5lRGF0YUdyaWQodGhpcy5uYXZpZ2F0aW9uU2lkZWJhclRyZWVPdXRsaW5l
LCBjb2x1bW5zKTsKICAgICB0aGlzLl9kYXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3Bl
Y3Rvci5UaW1lbGluZURhdGFHcmlkLkV2ZW50LkZpbHRlcnNEaWRDaGFuZ2UsIHRoaXMuX2RhdGFH
cmlkRmlsdGVyc0RpZENoYW5nZSwgdGhpcyk7CiAgICAgdGhpcy5fZGF0YUdyaWQuYWRkRXZlbnRM
aXN0ZW5lcihXZWJJbnNwZWN0b3IuRGF0YUdyaWQuRXZlbnQuU2VsZWN0ZWROb2RlQ2hhbmdlZCwg
dGhpcy5fZGF0YUdyaWROb2RlU2VsZWN0ZWQsIHRoaXMpOworICAgIHRoaXMuX2RhdGFHcmlkLnNv
cnRDb2x1bW5JZGVudGlmaWVyID0gInJlcXVlc3RTZW50IjsKKyAgICB0aGlzLl9kYXRhR3JpZC5z
b3J0T3JkZXIgPSBXZWJJbnNwZWN0b3IuRGF0YUdyaWQuU29ydE9yZGVyLkFzY2VuZGluZzsKIAog
ICAgIHRoaXMuZWxlbWVudC5jbGFzc0xpc3QuYWRkKFdlYkluc3BlY3Rvci5OZXR3b3JrVGltZWxp
bmVWaWV3LlN0eWxlQ2xhc3NOYW1lKTsKICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhp
cy5fZGF0YUdyaWQuZWxlbWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZURldGFpbHNTaWRlYmFyUGFuZWwuanMgYi9Tb3Vy
Y2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9SZXNvdXJjZURldGFpbHNTaWRl
YmFyUGFuZWwuanMKaW5kZXggODg1YzhkMWJhMTY4MDM1ZjAxOTIyYzFlMzcxNGIwMjFhMjQ0ZWU1
MS4uNWZlZWUxZTYyMTdkODg4MDExMjI5ZTU2NTlkNDI0MzdhYmIyNzllNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvUmVzb3VyY2VEZXRhaWxz
U2lkZWJhclBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1Jlc291cmNlRGV0YWlsc1NpZGViYXJQYW5lbC5qcwpAQCAtMzU5LDIyICszNTksMTYg
QEAgV2ViSW5zcGVjdG9yLlJlc291cmNlRGV0YWlsc1NpZGViYXJQYW5lbC5wcm90b3R5cGUgPSB7
CiAKICAgICAgICAgZnVuY3Rpb24gc29ydERhdGFHcmlkKCkKICAgICAgICAgewotICAgICAgICAg
ICAgdmFyIG5vZGVzID0gZGF0YUdyaWQuY2hpbGRyZW4uc2xpY2UoKTsKICAgICAgICAgICAgIHZh
ciBzb3J0Q29sdW1uSWRlbnRpZmllciA9IGRhdGFHcmlkLnNvcnRDb2x1bW5JZGVudGlmaWVyOwot
ICAgICAgICAgICAgdmFyIHNvcnREaXJlY3Rpb24gPSBkYXRhR3JpZC5zb3J0T3JkZXIgPT09ICJh
c2NlbmRpbmciID8gMSA6IC0xOwogCiAgICAgICAgICAgICBmdW5jdGlvbiBjb21wYXJhdG9yKGEs
IGIpCiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgdmFyIGl0ZW0xID0gYS5kYXRhW3Nv
cnRDb2x1bW5JZGVudGlmaWVyXTsKICAgICAgICAgICAgICAgICB2YXIgaXRlbTIgPSBiLmRhdGFb
c29ydENvbHVtbklkZW50aWZpZXJdOwotICAgICAgICAgICAgICAgIHJldHVybiBzb3J0RGlyZWN0
aW9uICogaXRlbTEubG9jYWxlQ29tcGFyZShpdGVtMik7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGl0ZW0xLmxvY2FsZUNvbXBhcmUoaXRlbTIpOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAg
ICBub2Rlcy5zb3J0KGNvbXBhcmF0b3IpOwotCi0gICAgICAgICAgICBkYXRhR3JpZC5yZW1vdmVD
aGlsZHJlbigpOwotICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2Rlcy5sZW5ndGg7
IGkrKykKLSAgICAgICAgICAgICAgICBkYXRhR3JpZC5hcHBlbmRDaGlsZChub2Rlc1tpXSk7Cisg
ICAgICAgICAgICBkYXRhR3JpZC5zb3J0Tm9kZXMoY29tcGFyYXRvcik7CiAgICAgICAgIH0KIAog
ICAgICAgICByZXR1cm4gZGF0YUdyaWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRUaW1lbGluZVZpZXcuanMgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9TY3JpcHRUaW1lbGluZVZpZXcuanMKaW5k
ZXggYmFiMzJhMGU4ODc3Y2Q2ZDIwNGI5OTBjYmMyOWFhMmVlZGEzMWQ5OS4uYzllN2M2OTg0NDI2
NjZjMDQ5OWI1NDBiNjkyYzg3ZTg5YTliZWM0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVmlld3MvU2NyaXB0VGltZWxpbmVWaWV3LmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1ZpZXdzL1NjcmlwdFRpbWVsaW5lVmll
dy5qcwpAQCAtNDIsNyArNDIsNiBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVWaWV3ID0g
ZnVuY3Rpb24ocmVjb3JkaW5nKQogICAgIGNvbHVtbnMuc3RhcnRUaW1lLnRpdGxlID0gV2ViSW5z
cGVjdG9yLlVJU3RyaW5nKCJTdGFydCBUaW1lIik7CiAgICAgY29sdW1ucy5zdGFydFRpbWUud2lk
dGggPSAiMTAlIjsKICAgICBjb2x1bW5zLnN0YXJ0VGltZS5hbGlnbmVkID0gInJpZ2h0IjsKLSAg
ICBjb2x1bW5zLnN0YXJ0VGltZS5zb3J0ID0gImFzY2VuZGluZyI7CiAKICAgICBjb2x1bW5zLnRv
dGFsVGltZS50aXRsZSA9IFdlYkluc3BlY3Rvci5VSVN0cmluZygiVG90YWwgVGltZSIpOwogICAg
IGNvbHVtbnMudG90YWxUaW1lLndpZHRoID0gIjEwJSI7CkBAIC02Miw2ICs2MSw4IEBAIFdlYklu
c3BlY3Rvci5TY3JpcHRUaW1lbGluZVZpZXcgPSBmdW5jdGlvbihyZWNvcmRpbmcpCiAgICAgdGhp
cy5fZGF0YUdyaWQgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdFRpbWVsaW5lRGF0YUdyaWQodGhp
cy5uYXZpZ2F0aW9uU2lkZWJhclRyZWVPdXRsaW5lLCBjb2x1bW5zLCB0aGlzKTsKICAgICB0aGlz
Ll9kYXRhR3JpZC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5UaW1lbGluZURhdGFHcmlk
LkV2ZW50LkZpbHRlcnNEaWRDaGFuZ2UsIHRoaXMuX2RhdGFHcmlkRmlsdGVyc0RpZENoYW5nZSwg
dGhpcyk7CiAgICAgdGhpcy5fZGF0YUdyaWQuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RGF0YUdyaWQuRXZlbnQuU2VsZWN0ZWROb2RlQ2hhbmdlZCwgdGhpcy5fZGF0YUdyaWROb2RlU2Vs
ZWN0ZWQsIHRoaXMpOworICAgIHRoaXMuX2RhdGFHcmlkLnNvcnRDb2x1bW5JZGVudGlmaWVyID0g
InN0YXJ0VGltZSI7CisgICAgdGhpcy5fZGF0YUdyaWQuc29ydE9yZGVyID0gV2ViSW5zcGVjdG9y
LkRhdGFHcmlkLlNvcnRPcmRlci5Bc2NlbmRpbmc7CiAKICAgICB0aGlzLmVsZW1lbnQuY2xhc3NM
aXN0LmFkZChXZWJJbnNwZWN0b3IuU2NyaXB0VGltZWxpbmVWaWV3LlN0eWxlQ2xhc3NOYW1lKTsK
ICAgICB0aGlzLmVsZW1lbnQuYXBwZW5kQ2hpbGQodGhpcy5fZGF0YUdyaWQuZWxlbWVudCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1l
bGluZURhdGFHcmlkLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVmll
d3MvVGltZWxpbmVEYXRhR3JpZC5qcwppbmRleCA4YjczMTU1ZWUyNDRkMjg5ZmU5OTRhMTM0Yzlj
ZDljYWYwYTBlOTk3Li4zOWZiN2VhNzEzZTUwY2NlYTUwYmMxMGVkZjY1MmU5NzdiYWU1OTQ2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9WaWV3cy9UaW1l
bGluZURhdGFHcmlkLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNl
L1ZpZXdzL1RpbWVsaW5lRGF0YUdyaWQuanMKQEAgLTMyMCw3ICszMjAsNyBAQCBXZWJJbnNwZWN0
b3IuVGltZWxpbmVEYXRhR3JpZC5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlmICghc29ydENvbHVt
bklkZW50aWZpZXIpCiAgICAgICAgICAgICByZXR1cm4gMDsKIAotICAgICAgICB2YXIgc29ydERp
cmVjdGlvbiA9IHRoaXMuc29ydE9yZGVyID09PSAiYXNjZW5kaW5nIiA/IDEgOiAtMTsKKyAgICAg
ICAgdmFyIHNvcnREaXJlY3Rpb24gPSB0aGlzLnNvcnRPcmRlciA9PT0gV2ViSW5zcGVjdG9yLkRh
dGFHcmlkLlNvcnRPcmRlci5Bc2NlbmRpbmcgPyAxIDogLTE7CiAKICAgICAgICAgdmFyIHZhbHVl
MSA9IG5vZGUxLmRhdGFbc29ydENvbHVtbklkZW50aWZpZXJdOwogICAgICAgICB2YXIgdmFsdWUy
ID0gbm9kZTIuZGF0YVtzb3J0Q29sdW1uSWRlbnRpZmllcl07Cg==
</data>
<flag name="review"
          id="250683"
          type_id="1"
          status="+"
          setter="timothy"
    />
          </attachment>
      

    </bug>

</bugzilla>