<?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>108313</bug_id>
          
          <creation_ts>2013-01-30 02:13:53 -0800</creation_ts>
          <short_desc>Web Inspector: migrate file selection dialog to the viewport.</short_desc>
          <delta_ts>2013-01-30 04:49:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Pavel Feldman">pfeldman</reporter>
          <assigned_to name="Pavel Feldman">pfeldman</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>819971</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-30 02:13:53 -0800</bug_when>
    <thetext>Otherwise it takes too long to render.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819976</commentid>
    <comment_count>1</comment_count>
      <attachid>185438</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-30 02:15:40 -0800</bug_when>
    <thetext>Created attachment 185438
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819991</commentid>
    <comment_count>2</comment_count>
      <attachid>185441</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-30 02:29:59 -0800</bug_when>
    <thetext>Created attachment 185441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820075</commentid>
    <comment_count>3</comment_count>
      <attachid>185441</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2013-01-30 04:10:47 -0800</bug_when>
    <thetext>Comment on attachment 185441
Patch

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

&gt; Source/WebCore/ChangeLog:66
&gt; +        (WebInspector.ViewportControl.Provider.protowarning: LF will be replaced by CRLF in Source/WebCore/WebCore.vcproj/WebCore.vcproj.

Is that fine?

&gt; Source/WebCore/inspector/front-end/FilteredItemSelectionDialog.js:544
&gt; +        setTimeout(function() { this._uiSourceCodes.sort(compareFunction); }.bind(this), 0);

setTimeout(this._uiSourceCodes.sort.bind(this._uiSourceCodes, compareFunction), 0);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820097</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-30 04:49:14 -0800</bug_when>
    <thetext>Committed r141258: &lt;http://trac.webkit.org/changeset/141258&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185438</attachid>
            <date>2013-01-30 02:15:40 -0800</date>
            <delta_ts>2013-01-30 02:29:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108313-20130130141225.patch</filename>
            <type>text/plain</type>
            <size>28396</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDk2Cndhcm5pbmc6IExGIHdpbGwgYmUgcmVwbGFjZWQg
YnkgQ1JMRiBpbiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvai4K
VGhlIGZpbGUgd2lsbCBoYXZlIGl0cyBvcmlnaW5hbCBsaW5lIGVuZGluZ3MgaW4geW91ciB3b3Jr
aW5nIGRpcmVjdG9yeS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiMzVhMmI3NGI3YTJmNzkwNWI0MDNlYmY0Yzk1
NWU2YjkxNzljN2EyLi4xN2FhMjc1NzE5ZTkwOGEwYWUxMzFkMWYyMjk5N2Q0N2RhZThkNTRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsNDggQEAKKzIwMTMtMDEtMzAgIFBhdmVsIEZlbGRtYW4gIDxw
ZmVsZG1hbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogbWlncmF0ZSBm
aWxlIHNlbGVjdGlvbiBkaWFsb2cgdG8gdGhlIHZpZXdwb3J0LgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MzEzCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT3RoZXJ3aXNlIGl0IHRha2VzIHRvbyBsb25n
IHRvIHJlbmRlci4KKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3Jl
LnZjcHJvai9XZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9u
dC1lbmQucHk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9GaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0
aW9uRGlhbG9nKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25E
aWFsb2cucHJvdG90eXBlLmZvY3VzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0
ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlLm9uRW50ZXIpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUuX2l0ZW1zTG9hZGVkKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90
eXBlLl9jcmVhdGVJdGVtRWxlbWVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJ
dGVtU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZS5fZmlsdGVySXRlbXMpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUuX29uS2V5RG93
bi51cGRhdGVTZWxlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNl
bGVjdGlvbkRpYWxvZy5wcm90b3R5cGUuX29uS2V5RG93bik6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZS5fdXBkYXRlU2VsZWN0aW9u
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJv
dG90eXBlLl9vbkNsaWNrKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxl
Y3Rpb25EaWFsb2cucHJvdG90eXBlLl9vbk1vdXNlTW92ZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZS5pdGVtQ291bnQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUu
aXRlbUVsZW1lbnQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVmlld3BvcnRDb250
cm9sLmpzOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXdwb3J0Q29udHJvbC5Qcm92aWRlcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuVmlld3BvcnRDb250cm9sLlByb3ZpZGVyLnByb3RvdHlwZS5pdGVtQ291
bnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXdwb3J0Q29udHJvbC5Qcm92aWRlci5wcm90
b3R5cGUuaXRlbUVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXdwb3J0Q29udHJv
bC5wcm90b3R5cGUuY29udGVudEVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXdw
b3J0Q29udHJvbC5wcm90b3R5cGUucmVmcmVzaCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmll
d3BvcnRDb250cm9sLnByb3RvdHlwZS5fb25TY3JvbGwpOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LlZpZXdwb3J0Q29udHJvbC5wcm90b3R5cGUucm93c1BlclZpZXdwb3J0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wucHJvdG90eXBlLmZpcnN0VmlzaWJsZUluZGV4KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wucHJvdG90eXBlLmxhc3RWaXNp
YmxlSW5kZXgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXdwb3J0Q29udHJvbC5wcm90b3R5
cGUucmVuZGVyZWRFbGVtZW50QXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXdwb3J0Q29u
dHJvbC5wcm90b3R5cGUuc2Nyb2xsSXRlbUludG9WaWV3KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9maWx0
ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuY3NzOgorICAgICAgICAoLmpzLW91dGxpbmUtZGlhbG9n
IC5jb250YWluZXIgZGl2Lml0ZW0uc2VsZWN0ZWQpOgorICAgICAgICAoLmpzLW91dGxpbmUtZGlh
bG9nIC5jb250YWluZXIgZGl2Lml0ZW0gc3Bhbi5oaWdobGlnaHQpOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWw6CisKIDIwMTMtMDEtMjkgIEV1Z2VuZSBLbHl1
Y2huaWtvdiAgPGV1c3Rhc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
W0NQVSBQcm9maWxlXSBUYWtpbmcgcHJvZmlsZSBjcmFzaGVzIHJlbmRlcmVyLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpCmluZGV4IDc0YTgzM2Q3NmNjZTYyOTg3ZTI1YjFlNDgyYjdkZGNlZmNlYzk2OTguLjQ3Y2Qz
ZmJlNmI2MDRlNDllYjgxMzEwZmMwNjZlNTFjMTI5OWVhYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAg
LTUyNjgsNiArNTI2OCw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Vc2Vy
TWV0cmljcy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVmlldy5qcycsCisgICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3cG9ydENvbnRyb2wuanMnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdlci5qcycsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvZGlhbG9nLmNzcycsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCmluZGV4IGFlZTY2MDUwOTgzZTUzYmJlNTlkOWU2NGIzZTc4MzU3MGZm
ZGVhYTguLjY3NDgzNDJmYWRjZTUzNmNkNDNlODUyNmZhNmJkYmYzYjM1NDEzMTggMTAwNzU1Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCkBAIC03NzgwNSw2ICs3
NzgwNSwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJCTxGaWxlCisJCQkJCVJlbGF0aXZl
UGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxWaWV3cG9ydENvbnRyb2wuanMiCisJCQkJCT4K
KwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3Jc
ZnJvbnQtZW5kXFdhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFuZS5qcyIKIAkJCQkJPgogCQkJCTwv
RmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250
LWVuZC5weSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQpp
bmRleCA5MzRmMzBiMzA3NDIyN2M3ZGZiNzQ4YzliZmE2OWVjMDEzYTA1ODU0Li4wZGJlZDg5ODgw
N2IyNWJjYTUwZDBlOWU4NDJkYWQ5ZTdhOGE1OTYxIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5CkBAIC0xNjAsNiArMTYwLDcgQEAgbW9kdWxlcyA9
IFsKICAgICAgICAgICAgICJUb29sYmFyLmpzIiwKICAgICAgICAgICAgICJVSVV0aWxzLmpzIiwK
ICAgICAgICAgICAgICJWaWV3LmpzIiwKKyAgICAgICAgICAgICJWaWV3cG9ydENvbnRyb2wuanMi
LAogICAgICAgICAgICAgInRyZWVvdXRsaW5lLmpzIiwKICAgICAgICAgXQogICAgIH0sCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVkSXRlbVNl
bGVjdGlvbkRpYWxvZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmls
dGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzCmluZGV4IDQ0ZDVhNGM1YzRhZjYzOWRhMTJmMWVj
ODYyMjc3NmUwN2ZjZjlmYTMuLjQzOTZhNDg5OWYxY2ExMTAxOTRjOTNkZDM3ZWY5Yjg1OTU2ODFi
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsdGVy
ZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzCkBAIC0zMSw2ICszMSw3IEBA
CiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5EaWFsb2dE
ZWxlZ2F0ZX0KKyAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0b3IuVmlld3BvcnRDb250cm9sLlBy
b3ZpZGVyfQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2VsZWN0aW9uRGlhbG9nQ29udGVudFBy
b3ZpZGVyfSBkZWxlZ2F0ZQogICovCiBXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9u
RGlhbG9nID0gZnVuY3Rpb24oZGVsZWdhdGUpCkBAIC00NCwyNSArNDUsMjMgQEAgV2ViSW5zcGVj
dG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyA9IGZ1bmN0aW9uKGRlbGVnYXRlKQogICAg
IHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMu
ZWxlbWVudC5jbGFzc05hbWUgPSAianMtb3V0bGluZS1kaWFsb2ciOwogICAgIHRoaXMuZWxlbWVu
dC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5fb25LZXlEb3duLmJpbmQodGhpcyks
IGZhbHNlKTsKLSAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwg
dGhpcy5fb25Nb3VzZU1vdmUuYmluZCh0aGlzKSwgZmFsc2UpOwotICAgIHRoaXMuZWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX29uQ2xpY2suYmluZCh0aGlzKSwgZmFsc2Up
OwogICAgIHZhciBzdHlsZUVsZW1lbnQgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoInN0eWxl
Iik7CiAgICAgc3R5bGVFbGVtZW50LnR5cGUgPSAidGV4dC9jc3MiOwogICAgIHN0eWxlRWxlbWVu
dC50ZXh0Q29udGVudCA9IHhoci5yZXNwb25zZVRleHQ7CiAKLSAgICB0aGlzLl9pdGVtRWxlbWVu
dHMgPSBbXTsKLSAgICB0aGlzLl9lbGVtZW50SW5kZXhlcyA9IG5ldyBNYXAoKTsKLSAgICB0aGlz
Ll9lbGVtZW50SGlnaGxpZ2h0Q2hhbmdlcyA9IG5ldyBNYXAoKTsKLQogICAgIHRoaXMuX3Byb21w
dEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImlucHV0IiwgIm1vbm9zcGFjZSIp
OwogICAgIHRoaXMuX3Byb21wdEVsZW1lbnQudHlwZSA9ICJ0ZXh0IjsKICAgICB0aGlzLl9wcm9t
cHRFbGVtZW50LnNldEF0dHJpYnV0ZSgic3BlbGxjaGVjayIsICJmYWxzZSIpOwogCiAgICAgdGhp
cy5fcHJvZ3Jlc3NFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiLCAicHJv
Z3Jlc3MiKTsKIAotICAgIHRoaXMuX2l0ZW1FbGVtZW50c0NvbnRhaW5lciA9IGRvY3VtZW50LmNy
ZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMuX2l0ZW1FbGVtZW50c0NvbnRhaW5lci5jbGFz
c05hbWUgPSAiY29udGFpbmVyIG1vbm9zcGFjZSI7Ci0gICAgdGhpcy5faXRlbUVsZW1lbnRzQ29u
dGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHRoaXMuX29uU2Nyb2xsLmJpbmQodGhp
cyksIGZhbHNlKTsKKyAgICB0aGlzLl9maWx0ZXJlZEl0ZW1zID0gW107CisgICAgdGhpcy5fdmll
d3BvcnRDb250cm9sID0gbmV3IFdlYkluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wodGhpcyk7Cisg
ICAgdGhpcy5faXRlbUVsZW1lbnRzQ29udGFpbmVyID0gdGhpcy5fdmlld3BvcnRDb250cm9sLmVs
ZW1lbnQ7CisgICAgdGhpcy5faXRlbUVsZW1lbnRzQ29udGFpbmVyLmFkZFN0eWxlQ2xhc3MoImNv
bnRhaW5lciIpOworICAgIHRoaXMuX2l0ZW1FbGVtZW50c0NvbnRhaW5lci5hZGRTdHlsZUNsYXNz
KCJtb25vc3BhY2UiKTsKKyAgICB0aGlzLl9pdGVtRWxlbWVudHNDb250YWluZXIuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fb25Nb3VzZU1vdmUuYmluZCh0aGlzKSwgZmFsc2Up
OworICAgIHRoaXMuX2l0ZW1FbGVtZW50c0NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJjbGlj
ayIsIHRoaXMuX29uQ2xpY2suYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMuZWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLl9pdGVtRWxlbWVudHNDb250YWluZXIpOwogCiAgICAgdGhpcy5fZGVs
ZWdhdGUgPSBkZWxlZ2F0ZTsKQEAgLTk0LDYgKzkzLDggQEAgV2ViSW5zcGVjdG9yLkZpbHRlcmVk
SXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUgPSB7CiAgICAgZm9jdXM6IGZ1bmN0aW9uKCkK
ICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJyZW50Rm9jdXNFbGVtZW50KHRoaXMu
X3Byb21wdEVsZW1lbnQpOworICAgICAgICBpZiAoIXRoaXMuX3ZpZXdwb3J0Q29udHJvbC5sYXN0
VmlzaWJsZUluZGV4KCkpCisgICAgICAgICAgICB0aGlzLl92aWV3cG9ydENvbnRyb2wucmVmcmVz
aCgpOwogICAgIH0sCiAKICAgICB3aWxsSGlkZTogZnVuY3Rpb24oKQpAQCAtMTA3LDkgKzEwOCw5
IEBAIFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlID0g
ewogCiAgICAgb25FbnRlcjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9z
ZWxlY3RlZEVsZW1lbnQpCisgICAgICAgIGlmICh0eXBlb2YgdGhpcy5fc2VsZWN0ZWRJbmRleElu
RmlsdGVyZWQgIT09ICJudW1iZXIiKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlz
Ll9kZWxlZ2F0ZS5zZWxlY3RJdGVtKHRoaXMuX2VsZW1lbnRJbmRleGVzLmdldCh0aGlzLl9zZWxl
Y3RlZEVsZW1lbnQpLCB0aGlzLl9wcm9tcHRFbGVtZW50LnZhbHVlLnRyaW0oKSk7CisgICAgICAg
IHRoaXMuX2RlbGVnYXRlLnNlbGVjdEl0ZW0odGhpcy5fZmlsdGVyZWRJdGVtc1t0aGlzLl9zZWxl
Y3RlZEluZGV4SW5GaWx0ZXJlZF0sIHRoaXMuX3Byb21wdEVsZW1lbnQudmFsdWUudHJpbSgpKTsK
ICAgICB9LAogCiAgICAgLyoqCkBAIC0xMjAsOCArMTIxLDYgQEAgV2ViSW5zcGVjdG9yLkZpbHRl
cmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgX2l0ZW1z
TG9hZGVkOiBmdW5jdGlvbihpbmRleCwgY2h1bmtMZW5ndGgsIGNodW5rSW5kZXgsIGNodW5rQ291
bnQpCiAgICAgewotICAgICAgICBmb3IgKHZhciBpID0gaW5kZXg7IGkgPCBpbmRleCArIGNodW5r
TGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0aGlzLl9pdGVtRWxlbWVudHNDb250YWluZXIuYXBw
ZW5kQ2hpbGQodGhpcy5fY3JlYXRlSXRlbUVsZW1lbnQoaSkpOwogICAgICAgICB0aGlzLl9maWx0
ZXJJdGVtcygpOwogCiAgICAgICAgIGlmIChjaHVua0luZGV4ID09PSBjaHVua0NvdW50KQpAQCAt
MTM1LDQ2ICsxMzQsMzQgQEAgV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxv
Zy5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXgK
KyAgICAgKiBAcmV0dXJuIHtFbGVtZW50fQogICAgICAqLwogICAgIF9jcmVhdGVJdGVtRWxlbWVu
dDogZnVuY3Rpb24oaW5kZXgpCiAgICAgewotICAgICAgICBpZiAodGhpcy5faXRlbUVsZW1lbnRz
W2luZGV4XSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9pdGVtRWxlbWVudHNbaW5kZXhdOwot
CiAgICAgICAgIHZhciBpdGVtRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIp
OwogICAgICAgICBpdGVtRWxlbWVudC5jbGFzc05hbWUgPSAiaXRlbSI7CiAgICAgICAgIGl0ZW1F
bGVtZW50Ll90aXRsZUVsZW1lbnQgPSBpdGVtRWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIpOwog
ICAgICAgICBpdGVtRWxlbWVudC5fdGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5fZGVs
ZWdhdGUuaXRlbVRpdGxlQXQoaW5kZXgpOwogICAgICAgICBpdGVtRWxlbWVudC5fdGl0bGVTdWZm
aXhFbGVtZW50ID0gaXRlbUVsZW1lbnQuY3JlYXRlQ2hpbGQoInNwYW4iKTsKKyAgICAgICAgaXRl
bUVsZW1lbnQuX3RpdGxlU3VmZml4RWxlbWVudC50ZXh0Q29udGVudCA9IHRoaXMuX2RlbGVnYXRl
Lml0ZW1TdWZmaXhBdChpbmRleCk7CiAgICAgICAgIGl0ZW1FbGVtZW50Ll9zdWJ0aXRsZUVsZW1l
bnQgPSBpdGVtRWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIsICJzdWJ0aXRsZSIpOwogICAgICAg
ICBpdGVtRWxlbWVudC5fc3VidGl0bGVFbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5fZGVsZWdh
dGUuaXRlbVN1YnRpdGxlQXQoaW5kZXgpOwotICAgICAgICB0aGlzLl9lbGVtZW50SW5kZXhlcy5w
dXQoaXRlbUVsZW1lbnQsIGluZGV4KTsKLSAgICAgICAgdGhpcy5faXRlbUVsZW1lbnRzLnB1c2go
aXRlbUVsZW1lbnQpOwotICAgICAgICByZXR1cm4gaXRlbUVsZW1lbnQ7Ci0gICAgfSwKLQotICAg
IC8qKgotICAgICAqIEBwYXJhbSB7RWxlbWVudH0gaXRlbUVsZW1lbnQKLSAgICAgKi8KLSAgICBf
aGlkZUl0ZW1FbGVtZW50OiBmdW5jdGlvbihpdGVtRWxlbWVudCkKLSAgICB7Ci0gICAgICAgIGl0
ZW1FbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7Ci0gICAgfSwKKyAgICAgICAgaXRlbUVs
ZW1lbnQuX2luZGV4ID0gaW5kZXg7CiAKLSAgICAvKioKLSAgICAgKiBAcGFyYW0ge0VsZW1lbnR9
IGl0ZW1FbGVtZW50Ci0gICAgICovCi0gICAgX2l0ZW1FbGVtZW50VmlzaWJsZTogZnVuY3Rpb24o
aXRlbUVsZW1lbnQpCi0gICAgewotICAgICAgICByZXR1cm4gaXRlbUVsZW1lbnQuc3R5bGUuZGlz
cGxheSAhPT0gIm5vbmUiOwotICAgIH0sCisgICAgICAgIHZhciBrZXkgPSB0aGlzLl9kZWxlZ2F0
ZS5pdGVtS2V5QXQoaW5kZXgpOworICAgICAgICB2YXIgcmFuZ2VzID0gW107CisgICAgICAgIHZh
ciBtYXRjaDsKKyAgICAgICAgaWYgKHRoaXMuX3F1ZXJ5KSB7CisgICAgICAgICAgICB2YXIgcmVn
ZXggPSB0aGlzLl9jcmVhdGVTZWFyY2hSZWdFeHAodGhpcy5fcXVlcnksIHRydWUpOworICAgICAg
ICAgICAgd2hpbGUgKChtYXRjaCA9IHJlZ2V4LmV4ZWMoa2V5KSkgIT09IG51bGwgJiYgbWF0Y2hb
MF0pCisgICAgICAgICAgICAgICAgcmFuZ2VzLnB1c2goeyBvZmZzZXQ6IG1hdGNoLmluZGV4LCBs
ZW5ndGg6IHJlZ2V4Lmxhc3RJbmRleCAtIG1hdGNoLmluZGV4IH0pOworICAgICAgICAgICAgaWYg
KHJhbmdlcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmhpZ2hsaWdodFJh
bmdlc1dpdGhTdHlsZUNsYXNzKGl0ZW1FbGVtZW50LCByYW5nZXMsICJoaWdobGlnaHQiKTsKKyAg
ICAgICAgfQorICAgICAgICBpZiAoaW5kZXggPT09IHRoaXMuX2ZpbHRlcmVkSXRlbXNbdGhpcy5f
c2VsZWN0ZWRJbmRleEluRmlsdGVyZWRdKQorICAgICAgICAgICAgaXRlbUVsZW1lbnQuYWRkU3R5
bGVDbGFzcygic2VsZWN0ZWQiKTsKIAotICAgIC8qKgotICAgICAqIEBwYXJhbSB7RWxlbWVudH0g
aXRlbUVsZW1lbnQKLSAgICAgKi8KLSAgICBfc2hvd0l0ZW1FbGVtZW50OiBmdW5jdGlvbihpdGVt
RWxlbWVudCkKLSAgICB7Ci0gICAgICAgIGl0ZW1FbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAiIjsK
KyAgICAgICAgcmV0dXJuIGl0ZW1FbGVtZW50OwogICAgIH0sCiAKICAgICAvKioKQEAgLTIxMSw3
OSArMTk4LDU3IEBAIFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJv
dG90eXBlID0gewogICAgICAgICBkZWxldGUgdGhpcy5fZmlsdGVyVGltZXI7CiAKICAgICAgICAg
dmFyIHF1ZXJ5ID0gdGhpcy5fcHJvbXB0RWxlbWVudC52YWx1ZTsKLSAgICAgICAgcXVlcnkgPSBx
dWVyeS50cmltKCk7CisgICAgICAgIHRoaXMuX3F1ZXJ5ID0gcXVlcnkudHJpbSgpOwogICAgICAg
ICB2YXIgcmVnZXggPSB0aGlzLl9jcmVhdGVTZWFyY2hSZWdFeHAocXVlcnkpOwogCi0gICAgICAg
IHZhciBmaXJzdEVsZW1lbnQ7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5faXRl
bUVsZW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgaXRlbUVsZW1lbnQgPSB0
aGlzLl9pdGVtRWxlbWVudHNbaV07Ci0gICAgICAgICAgICBpdGVtRWxlbWVudC5fdGl0bGVTdWZm
aXhFbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5fZGVsZWdhdGUuaXRlbVN1ZmZpeEF0KGkpOwor
ICAgICAgICB2YXIgb2xkU2VsZWN0ZWRBYnNvbHV0ZUluZGV4ID0gdGhpcy5fZmlsdGVyZWRJdGVt
c1t0aGlzLl9zZWxlY3RlZEluZGV4SW5GaWx0ZXJlZF07CisgICAgICAgIHRoaXMuX2ZpbHRlcmVk
SXRlbXMgPSBbXTsKKyAgICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleEluRmlsdGVyZWQgPSAwOwor
ICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2RlbGVnYXRlLml0ZW1zQ291bnQoKTsg
KytpKSB7CisgICAgICAgICAgICB2YXIgdGl0bGUgPSB0aGlzLl9kZWxlZ2F0ZS5pdGVtVGl0bGVB
dChpKTsKICAgICAgICAgICAgIGlmIChyZWdleC50ZXN0KHRoaXMuX2RlbGVnYXRlLml0ZW1LZXlB
dChpKSkpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9zaG93SXRlbUVsZW1lbnQoaXRlbUVsZW1l
bnQpOwotICAgICAgICAgICAgICAgIGlmICghZmlyc3RFbGVtZW50KQotICAgICAgICAgICAgICAg
ICAgICBmaXJzdEVsZW1lbnQgPSBpdGVtRWxlbWVudDsKLSAgICAgICAgICAgIH0gZWxzZQotICAg
ICAgICAgICAgICAgIHRoaXMuX2hpZGVJdGVtRWxlbWVudChpdGVtRWxlbWVudCk7CisgICAgICAg
ICAgICAgICAgaWYgKGkgPT09IG9sZFNlbGVjdGVkQWJzb2x1dGVJbmRleCkgCisgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXhJbkZpbHRlcmVkID0gdGhpcy5fZmlsdGVyZWRJ
dGVtcy5sZW5ndGg7CisgICAgICAgICAgICAgICAgdGhpcy5fZmlsdGVyZWRJdGVtcy5wdXNoKGkp
OworICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3Rl
ZEVsZW1lbnQgfHwgIXRoaXMuX2l0ZW1FbGVtZW50VmlzaWJsZSh0aGlzLl9zZWxlY3RlZEVsZW1l
bnQpKQotICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0aW9uKGZpcnN0RWxlbWVudCk7Ci0K
LSAgICAgICAgaWYgKHF1ZXJ5KSB7Ci0gICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRJdGVtcyhx
dWVyeSk7Ci0gICAgICAgICAgICB0aGlzLl9xdWVyeSA9IHF1ZXJ5OwotICAgICAgICB9IGVsc2Ug
ewotICAgICAgICAgICAgdGhpcy5fY2xlYXJIaWdobGlnaHQoKTsKLSAgICAgICAgICAgIGRlbGV0
ZSB0aGlzLl9xdWVyeTsKLSAgICAgICAgfQorICAgICAgICB0aGlzLl92aWV3cG9ydENvbnRyb2wu
cmVmcmVzaCgpOworICAgICAgICB0aGlzLl91cGRhdGVTZWxlY3Rpb24odGhpcy5fc2VsZWN0ZWRJ
bmRleEluRmlsdGVyZWQpOwogICAgIH0sCiAKICAgICBfb25LZXlEb3duOiBmdW5jdGlvbihldmVu
dCkKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIG5leHRJdGVtKGl0ZW1FbGVtZW50LCBpc1BhZ2VT
Y3JvbGwsIGZvcndhcmQpCi0gICAgICAgIHsKLSAgICAgICAgICAgIHZhciBzY3JvbGxJdGVtc0xl
ZnQgPSBpc1BhZ2VTY3JvbGwgJiYgdGhpcy5fcm93c1BlclZpZXdwb3J0ID8gdGhpcy5fcm93c1Bl
clZpZXdwb3J0IDogMTsKLSAgICAgICAgICAgIHZhciBjYW5kaWRhdGUgPSBpdGVtRWxlbWVudDsK
LSAgICAgICAgICAgIHZhciBsYXN0VmlzaWJsZUNhbmRpZGF0ZSA9IGNhbmRpZGF0ZTsKLSAgICAg
ICAgICAgIGRvIHsKLSAgICAgICAgICAgICAgICBjYW5kaWRhdGUgPSBmb3J3YXJkID8gY2FuZGlk
YXRlLm5leHRTaWJsaW5nIDogY2FuZGlkYXRlLnByZXZpb3VzU2libGluZzsKLSAgICAgICAgICAg
ICAgICBpZiAoIWNhbmRpZGF0ZSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoaXNQYWdlU2Ny
b2xsKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGxhc3RWaXNpYmxlQ2FuZGlkYXRl
OwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgICAgICAgICBjYW5k
aWRhdGUgPSBmb3J3YXJkID8gdGhpcy5faXRlbUVsZW1lbnRzQ29udGFpbmVyLmZpcnN0Q2hpbGQg
OiB0aGlzLl9pdGVtRWxlbWVudHNDb250YWluZXIubGFzdENoaWxkOwotICAgICAgICAgICAgICAg
IH0KLSAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2l0ZW1FbGVtZW50VmlzaWJsZShjYW5kaWRh
dGUpKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICBsYXN0
VmlzaWJsZUNhbmRpZGF0ZSA9IGNhbmRpZGF0ZTsKLSAgICAgICAgICAgICAgICAtLXNjcm9sbEl0
ZW1zTGVmdDsKLSAgICAgICAgICAgIH0gd2hpbGUgKHNjcm9sbEl0ZW1zTGVmdCAmJiBjYW5kaWRh
dGUgIT09IHRoaXMuX3NlbGVjdGVkRWxlbWVudCk7Ci0KLSAgICAgICAgICAgIHJldHVybiBjYW5k
aWRhdGU7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHR5cGVvZiB0aGlzLl9zZWxlY3RlZEluZGV4
SW5GaWx0ZXJlZCA9PT0gIm51bWJlciIpIHsKKyAgICAgICAgICAgIHZhciBuZXdTZWxlY3RlZElu
ZGV4ID0gdGhpcy5fc2VsZWN0ZWRJbmRleEluRmlsdGVyZWQ7CisKKyAgICAgICAgICAgIGZ1bmN0
aW9uIHVwZGF0ZVNlbGVjdGlvbihtYWtlTGFzdCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICB0aGlzLl92aWV3cG9ydENvbnRyb2wuc2Nyb2xsSXRlbUludG9WaWV3KG5ld1NlbGVjdGVk
SW5kZXgsIG1ha2VMYXN0KTsgCisgICAgICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0aW9u
KG5ld1NlbGVjdGVkSW5kZXgpOworICAgICAgICAgICAgICAgIGV2ZW50LmNvbnN1bWUodHJ1ZSk7
CisgICAgICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkRWxlbWVudCkgewot
ICAgICAgICAgICAgdmFyIGNhbmRpZGF0ZTsKICAgICAgICAgICAgIHN3aXRjaCAoZXZlbnQua2V5
Q29kZSkgewogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5L
ZXlzLkRvd24uY29kZToKLSAgICAgICAgICAgICAgICBjYW5kaWRhdGUgPSBuZXh0SXRlbS5jYWxs
KHRoaXMsIHRoaXMuX3NlbGVjdGVkRWxlbWVudCwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAg
ICAgIGlmICgrK25ld1NlbGVjdGVkSW5kZXggPj0gdGhpcy5fZmlsdGVyZWRJdGVtcy5sZW5ndGgp
CisgICAgICAgICAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSB0aGlzLl9maWx0ZXJlZEl0
ZW1zLmxlbmd0aCAtIDE7CisgICAgICAgICAgICAgICAgdXBkYXRlU2VsZWN0aW9uLmNhbGwodGhp
cywgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlIFdlYklu
c3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuVXAuY29kZToKLSAgICAgICAgICAgICAgICBj
YW5kaWRhdGUgPSBuZXh0SXRlbS5jYWxsKHRoaXMsIHRoaXMuX3NlbGVjdGVkRWxlbWVudCwgZmFs
c2UsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBpZiAoLS1uZXdTZWxlY3RlZEluZGV4IDwgMCkK
KyAgICAgICAgICAgICAgICAgICAgbmV3U2VsZWN0ZWRJbmRleCA9IDA7CisgICAgICAgICAgICAg
ICAgdXBkYXRlU2VsZWN0aW9uLmNhbGwodGhpcywgZmFsc2UpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlz
LlBhZ2VEb3duLmNvZGU6Ci0gICAgICAgICAgICAgICAgY2FuZGlkYXRlID0gbmV4dEl0ZW0uY2Fs
bCh0aGlzLCB0aGlzLl9zZWxlY3RlZEVsZW1lbnQsIHRydWUsIHRydWUpOworICAgICAgICAgICAg
ICAgIG5ld1NlbGVjdGVkSW5kZXggPSBNYXRoLm1pbihuZXdTZWxlY3RlZEluZGV4ICsgdGhpcy5f
dmlld3BvcnRDb250cm9sLnJvd3NQZXJWaWV3cG9ydCgpLCB0aGlzLl9maWx0ZXJlZEl0ZW1zLmxl
bmd0aCAtIDEpOworICAgICAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGlvbi5jYWxsKHRoaXMsIHRy
dWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlBhZ2VVcC5jb2RlOgotICAgICAgICAgICAgICAgIGNh
bmRpZGF0ZSA9IG5leHRJdGVtLmNhbGwodGhpcywgdGhpcy5fc2VsZWN0ZWRFbGVtZW50LCB0cnVl
LCBmYWxzZSk7CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0ZWRJbmRleCA9IE1hdGgubWF4KG5l
d1NlbGVjdGVkSW5kZXggLSB0aGlzLl92aWV3cG9ydENvbnRyb2wucm93c1BlclZpZXdwb3J0KCks
IDApOworICAgICAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGlvbi5jYWxsKHRoaXMsIGZhbHNlKTsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYg
KGNhbmRpZGF0ZSkgewotICAgICAgICAgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGlvbihjYW5k
aWRhdGUpOwotICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAgaWYg
KGV2ZW50LmtleUlkZW50aWZpZXIgIT09ICJTaGlmdCIgJiYgZXZlbnQua2V5SWRlbnRpZmllciAh
PT0gIkN0cmwiICYmIGV2ZW50LmtleUlkZW50aWZpZXIgIT09ICJNZXRhIiAmJiBldmVudC5rZXlJ
ZGVudGlmaWVyICE9PSAiTGVmdCIgJiYgZXZlbnQua2V5SWRlbnRpZmllciAhPT0gIlJpZ2h0IikK
QEAgLTI5OCwyNCArMjYzLDE5IEBAIFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25E
aWFsb2cucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0Vs
ZW1lbnR9IG5ld1NlbGVjdGVkRWxlbWVudAotICAgICAqLwotICAgIF91cGRhdGVTZWxlY3Rpb246
IGZ1bmN0aW9uKG5ld1NlbGVjdGVkRWxlbWVudCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9z
ZWxlY3RlZEVsZW1lbnQgPT09IG5ld1NlbGVjdGVkRWxlbWVudCkKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkRWxlbWVudCkKLSAgICAgICAgICAgIHRoaXMu
X3NlbGVjdGVkRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJzZWxlY3RlZCIpOwotCi0gICAgICAg
IHRoaXMuX3NlbGVjdGVkRWxlbWVudCA9IG5ld1NlbGVjdGVkRWxlbWVudDsKLSAgICAgICAgaWYg
KG5ld1NlbGVjdGVkRWxlbWVudCkgewotICAgICAgICAgICAgbmV3U2VsZWN0ZWRFbGVtZW50LmFk
ZFN0eWxlQ2xhc3MoInNlbGVjdGVkIik7Ci0gICAgICAgICAgICBuZXdTZWxlY3RlZEVsZW1lbnQu
c2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChmYWxzZSk7Ci0gICAgICAgICAgICBpZiAoIXRoaXMuX2l0
ZW1IZWlnaHQpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9pdGVtSGVpZ2h0ID0gbmV3U2VsZWN0
ZWRFbGVtZW50Lm9mZnNldEhlaWdodDsKLSAgICAgICAgICAgICAgICB0aGlzLl9yb3dzUGVyVmll
d3BvcnQgPSBNYXRoLmZsb29yKHRoaXMuX2l0ZW1FbGVtZW50c0NvbnRhaW5lci5vZmZzZXRIZWln
aHQgLyB0aGlzLl9pdGVtSGVpZ2h0KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAq
IEBwYXJhbSB7bnVtYmVyfSBpbmRleCAgCisgICAgICovCisgICAgX3VwZGF0ZVNlbGVjdGlvbjog
ZnVuY3Rpb24oaW5kZXgpCisgICAgeyAKKyAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLl92aWV3
cG9ydENvbnRyb2wucmVuZGVyZWRFbGVtZW50QXQodGhpcy5fc2VsZWN0ZWRJbmRleEluRmlsdGVy
ZWQpOworICAgICAgICBpZiAoZWxlbWVudCkKKyAgICAgICAgICAgIGVsZW1lbnQucmVtb3ZlU3R5
bGVDbGFzcygic2VsZWN0ZWQiKTsKKyAgICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleEluRmlsdGVy
ZWQgPSBpbmRleDsKKyAgICAgICAgZWxlbWVudCA9IHRoaXMuX3ZpZXdwb3J0Q29udHJvbC5yZW5k
ZXJlZEVsZW1lbnRBdChpbmRleCk7IAorICAgICAgICBpZiAoZWxlbWVudCkKKyAgICAgICAgICAg
IGVsZW1lbnQuYWRkU3R5bGVDbGFzcygic2VsZWN0ZWQiKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgdGhpcy5fdmlld3BvcnRDb250cm9sLnJlZnJlc2goKTsKICAgICB9LAogCiAgICAgX29u
Q2xpY2s6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMzIzLDk1ICsyODMsMzggQEAgV2ViSW5zcGVjdG9y
LkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBp
dGVtRWxlbWVudCA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKCJp
dGVtIik7CiAgICAgICAgIGlmICghaXRlbUVsZW1lbnQpCiAgICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGlvbihpdGVtRWxlbWVudCk7Ci0gICAgICAgIHRoaXMu
X2RlbGVnYXRlLnNlbGVjdEl0ZW0odGhpcy5fZWxlbWVudEluZGV4ZXMuZ2V0KHRoaXMuX3NlbGVj
dGVkRWxlbWVudCksIHRoaXMuX3Byb21wdEVsZW1lbnQudmFsdWUudHJpbSgpKTsKKyAgICAgICAg
dGhpcy5fZGVsZWdhdGUuc2VsZWN0SXRlbShpdGVtRWxlbWVudC5faW5kZXgsIHRoaXMuX3Byb21w
dEVsZW1lbnQudmFsdWUudHJpbSgpKTsKICAgICAgICAgV2ViSW5zcGVjdG9yLkRpYWxvZy5oaWRl
KCk7CiAgICAgfSwKIAogICAgIF9vbk1vdXNlTW92ZTogZnVuY3Rpb24oZXZlbnQpCiAgICAgewor
ICAgICAgICBpZiAoZXZlbnQucGFnZVggPT09IHRoaXMuX2xhc3RNb3VzZVggJiYgZXZlbnQucGFn
ZVkgPT09IHRoaXMuX2xhc3RNb3VzZVkpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHRo
aXMuX2xhc3RNb3VzZVggPSBldmVudC5wYWdlWDsKKyAgICAgICAgdGhpcy5fbGFzdE1vdXNlWSA9
IGV2ZW50LnBhZ2VZOwogICAgICAgICB2YXIgaXRlbUVsZW1lbnQgPSBldmVudC50YXJnZXQuZW5j
bG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygiaXRlbSIpOwogICAgICAgICBpZiAoIWl0ZW1FbGVt
ZW50KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0aGlzLl91cGRhdGVTZWxlY3Rpb24o
aXRlbUVsZW1lbnQpOwotICAgIH0sCi0KLSAgICBfb25TY3JvbGw6IGZ1bmN0aW9uKCkKLSAgICB7
Ci0gICAgICAgIGlmICh0aGlzLl9xdWVyeSkKLSAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodEl0
ZW1zKHRoaXMuX3F1ZXJ5KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdGhpcy5fY2xlYXJI
aWdobGlnaHQoKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IHF1
ZXJ5Ci0gICAgICovCi0gICAgX2hpZ2hsaWdodEl0ZW1zOiBmdW5jdGlvbihxdWVyeSkKLSAgICB7
Ci0gICAgICAgIHZhciByZWdleCA9IHRoaXMuX2NyZWF0ZVNlYXJjaFJlZ0V4cChxdWVyeSwgdHJ1
ZSk7Ci0gICAgICAgIHZhciBlbGVtZW50c1RvSGlnaGxpZ2h0ID0gW107Ci0gICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgdGhpcy5fZGVsZWdhdGUuaXRlbXNDb3VudCgpOyArK2kpIHsKLSAgICAg
ICAgICAgIHZhciBpdGVtRWxlbWVudCA9IHRoaXMuX2l0ZW1FbGVtZW50c1tpXTsKLSAgICAgICAg
ICAgIGlmICh0aGlzLl9pdGVtRWxlbWVudFZpc2libGUoaXRlbUVsZW1lbnQpICYmIHRoaXMuX2l0
ZW1FbGVtZW50SW5WaWV3cG9ydChpdGVtRWxlbWVudCkpCi0gICAgICAgICAgICAgICAgZWxlbWVu
dHNUb0hpZ2hsaWdodC5wdXNoKGl0ZW1FbGVtZW50KTsKLSAgICAgICAgfQotICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IGVsZW1lbnRzVG9IaWdobGlnaHQubGVuZ3RoOyArK2kpCi0gICAgICAg
ICAgICB0aGlzLl9oaWdobGlnaHRJdGVtKGVsZW1lbnRzVG9IaWdobGlnaHRbaV0sIHJlZ2V4KTsK
LSAgICB9LAotCi0gICAgX2NsZWFySGlnaGxpZ2h0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2RlbGVnYXRlLml0ZW1zQ291bnQoKTsgKytpKQot
ICAgICAgICAgICAgdGhpcy5fY2xlYXJFbGVtZW50SGlnaGxpZ2h0KHRoaXMuX2l0ZW1FbGVtZW50
c1tpXSk7CisgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGlvbihpdGVtRWxlbWVudC5faW5kZXgp
OwogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IGl0ZW1FbGVtZW50
CisgICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICAqLwotICAgIF9jbGVhckVsZW1lbnRIaWdo
bGlnaHQ6IGZ1bmN0aW9uKGl0ZW1FbGVtZW50KQorICAgIGl0ZW1Db3VudDogZnVuY3Rpb24oKQog
ICAgIHsKLSAgICAgICAgdmFyIGNoYW5nZXMgPSB0aGlzLl9lbGVtZW50SGlnaGxpZ2h0Q2hhbmdl
cy5nZXQoaXRlbUVsZW1lbnQpCi0gICAgICAgIGlmIChjaGFuZ2VzKSB7Ci0gICAgICAgICAgICBX
ZWJJbnNwZWN0b3IucmV2ZXJ0RG9tQ2hhbmdlcyhjaGFuZ2VzKTsKLSAgICAgICAgICAgIHRoaXMu
X2VsZW1lbnRIaWdobGlnaHRDaGFuZ2VzLnJlbW92ZShpdGVtRWxlbWVudCk7Ci0gICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcmVkSXRlbXMubGVuZ3RoOwogICAgIH0sCiAKICAg
ICAvKioKLSAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IGl0ZW1FbGVtZW50Ci0gICAgICogQHBhcmFt
IHtSZWdFeHB9IHJlZ2V4Ci0gICAgICovCi0gICAgX2hpZ2hsaWdodEl0ZW06IGZ1bmN0aW9uKGl0
ZW1FbGVtZW50LCByZWdleCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX2NsZWFyRWxlbWVudEhpZ2hs
aWdodChpdGVtRWxlbWVudCk7Ci0KLSAgICAgICAgdmFyIGtleSA9IHRoaXMuX2RlbGVnYXRlLml0
ZW1LZXlBdCh0aGlzLl9lbGVtZW50SW5kZXhlcy5nZXQoaXRlbUVsZW1lbnQpKTsKLSAgICAgICAg
dmFyIHJhbmdlcyA9IFtdOwotCi0gICAgICAgIHZhciBtYXRjaDsKLSAgICAgICAgd2hpbGUgKCht
YXRjaCA9IHJlZ2V4LmV4ZWMoa2V5KSkgIT09IG51bGwgJiYgbWF0Y2hbMF0pIHsKLSAgICAgICAg
ICAgIHJhbmdlcy5wdXNoKHsgb2Zmc2V0OiBtYXRjaC5pbmRleCwgbGVuZ3RoOiByZWdleC5sYXN0
SW5kZXggLSBtYXRjaC5pbmRleCB9KTsKLSAgICAgICAgfQotCi0gICAgICAgIHZhciBjaGFuZ2Vz
ID0gW107Ci0gICAgICAgIFdlYkluc3BlY3Rvci5oaWdobGlnaHRSYW5nZXNXaXRoU3R5bGVDbGFz
cyhpdGVtRWxlbWVudCwgcmFuZ2VzLCAiaGlnaGxpZ2h0IiwgY2hhbmdlcyk7Ci0KLSAgICAgICAg
aWYgKGNoYW5nZXMubGVuZ3RoKQotICAgICAgICAgICAgdGhpcy5fZWxlbWVudEhpZ2hsaWdodENo
YW5nZXMucHV0KGl0ZW1FbGVtZW50LCBjaGFuZ2VzKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAg
ICogQHBhcmFtIHtFbGVtZW50fSBpdGVtRWxlbWVudAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59
CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4CisgICAgICogQHJldHVybiB7RWxlbWVudH0K
ICAgICAgKi8KLSAgICBfaXRlbUVsZW1lbnRJblZpZXdwb3J0OiBmdW5jdGlvbihpdGVtRWxlbWVu
dCkKKyAgICBpdGVtRWxlbWVudDogZnVuY3Rpb24oaW5kZXgpCiAgICAgewotICAgICAgICBpZiAo
aXRlbUVsZW1lbnQub2Zmc2V0VG9wICsgdGhpcy5faXRlbUhlaWdodCA8IHRoaXMuX2l0ZW1FbGVt
ZW50c0NvbnRhaW5lci5zY3JvbGxUb3ApCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAg
ICAgIGlmIChpdGVtRWxlbWVudC5vZmZzZXRUb3AgPiB0aGlzLl9pdGVtRWxlbWVudHNDb250YWlu
ZXIuc2Nyb2xsVG9wICsgdGhpcy5faXRlbUhlaWdodCAqICh0aGlzLl9yb3dzUGVyVmlld3BvcnQg
KyAxKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIHZhciBkZWxlZ2F0ZUluZGV4ID0gdGhpcy5fZmlsdGVyZWRJdGVtc1tpbmRleF07Cisg
ICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVJdGVtRWxlbWVudChkZWxlZ2F0ZUluZGV4KTsgCiAg
ICAgfSwKIAogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9yLkRpYWxvZ0RlbGVnYXRlLnByb3Rv
dHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3
cG9ydENvbnRyb2wuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXdw
b3J0Q29udHJvbC5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YTY4ZjhhMWQwZWFkYTk5ODM0NzdjZDMwMjYxODEz
Mzk4NWNiOGJjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9WaWV3cG9ydENvbnRyb2wuanMKQEAgLTAsMCArMSwxNTkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0
aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5h
bWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVj
aWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFT
IElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAor
ICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioKKyAqIEBjb25z
dHJ1Y3RvcgorICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVmlld3BvcnRDb250cm9sLlByb3ZpZGVy
fSBwcm92aWRlcgorICovCitXZWJJbnNwZWN0b3IuVmlld3BvcnRDb250cm9sID0gZnVuY3Rpb24o
cHJvdmlkZXIpCit7CisgICAgdGhpcy5lbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CisgICAgdGhpcy5lbGVtZW50LmNsYXNzTmFtZSA9ICJmaWxsIjsKKyAgICB0aGlzLmVs
ZW1lbnQuc3R5bGUub3ZlcmZsb3cgPSAiYXV0byI7CisgICAgdGhpcy5fdG9wR2FwRWxlbWVudCA9
IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2Iik7CisgICAgdGhpcy5fY29udGVudEVsZW1l
bnQgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIpOworICAgIHRoaXMuX2JvdHRvbUdh
cEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQoImRpdiIpOworCisgICAgdGhpcy5f
cHJvdmlkZXIgPSBwcm92aWRlcjsKKyAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
c2Nyb2xsIiwgdGhpcy5fb25TY3JvbGwuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMuX2Zp
cnN0VmlzaWJsZUluZGV4ID0gMDsKKyAgICB0aGlzLl9sYXN0VmlzaWJsZUluZGV4ID0gMDsKK30K
KworLyoqCisgKiBAaW50ZXJmYWNlCisgKi8KK1dlYkluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wu
UHJvdmlkZXIgPSBmdW5jdGlvbigpIAoreworfQorCitXZWJJbnNwZWN0b3IuVmlld3BvcnRDb250
cm9sLlByb3ZpZGVyLnByb3RvdHlwZSA9IHsgCisgICAgLyoqCisgICAgICogQHJldHVybiB7bnVt
YmVyfQorICAgICAqLworICAgIGl0ZW1Db3VudDogZnVuY3Rpb24oKSB7IHJldHVybiAwOyB9LAor
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4CisgICAgICogQHJldHVybiB7
RWxlbWVudH0KKyAgICAgKi8KKyAgICBpdGVtRWxlbWVudDogZnVuY3Rpb24oaW5kZXgpIHsgcmV0
dXJuIG51bGw7IH0KK30KKworV2ViSW5zcGVjdG9yLlZpZXdwb3J0Q29udHJvbC5wcm90b3R5cGUg
PSB7CisgICAgLyoqCisgICAgICogQHJldHVybiB7RWxlbWVudH0KKyAgICAgKi8KKyAgICBjb250
ZW50RWxlbWVudDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRl
bnRFbGVtZW50OworICAgIH0sCisKKyAgICByZWZyZXNoOiBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICB2YXIgaXRlbUNvdW50ID0gdGhpcy5fcHJvdmlkZXIuaXRlbUNvdW50KCk7CisKKyAgICAg
ICAgaWYgKCF0aGlzLl9yb3dIZWlnaHQpIHsKKyAgICAgICAgICAgIHZhciBmaXJzdEVsZW1lbnQg
PSB0aGlzLl9wcm92aWRlci5pdGVtRWxlbWVudCgwKTsKKyAgICAgICAgICAgIHRoaXMuX3Jvd0hl
aWdodCA9IGZpcnN0RWxlbWVudC5tZWFzdXJlUHJlZmVycmVkU2l6ZSgpLmhlaWdodDsKKyAgICAg
ICAgfQorCisgICAgICAgIHZhciB2aXNpYmxlRnJvbSA9IHRoaXMuZWxlbWVudC5zY3JvbGxUb3A7
CisgICAgICAgIHZhciB2aXNpYmxlVG8gPSB2aXNpYmxlRnJvbSArIHRoaXMuZWxlbWVudC5jbGll
bnRIZWlnaHQ7CisKKyAgICAgICAgdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXggPSBNYXRoLmZsb29y
KHZpc2libGVGcm9tIC8gdGhpcy5fcm93SGVpZ2h0KTsKKyAgICAgICAgdGhpcy5fbGFzdFZpc2li
bGVJbmRleCA9IE1hdGgubWF4KDAsIE1hdGgubWluKE1hdGguY2VpbCh2aXNpYmxlVG8gLyB0aGlz
Ll9yb3dIZWlnaHQpLCBpdGVtQ291bnQpIC0gMSk7CisgICAgICAgIHRoaXMuX3RvcEdhcEVsZW1l
bnQuc3R5bGUuaGVpZ2h0ID0gKHRoaXMuX3Jvd0hlaWdodCAqIHRoaXMuX2ZpcnN0VmlzaWJsZUlu
ZGV4KSArICJweCI7CisgICAgICAgIHRoaXMuX2JvdHRvbUdhcEVsZW1lbnQuc3R5bGUuaGVpZ2h0
ID0gKHRoaXMuX3Jvd0hlaWdodCAqIChpdGVtQ291bnQgLSB0aGlzLl9sYXN0VmlzaWJsZUluZGV4
IC0gMSkpICsgInB4IjsgCisKKyAgICAgICAgdGhpcy5fY29udGVudEVsZW1lbnQucmVtb3ZlQ2hp
bGRyZW4oKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IHRoaXMuX2ZpcnN0VmlzaWJsZUluZGV4OyBp
IDw9IHRoaXMuX2xhc3RWaXNpYmxlSW5kZXg7ICsraSkKKyAgICAgICAgICAgIHRoaXMuX2NvbnRl
bnRFbGVtZW50LmFwcGVuZENoaWxkKHRoaXMuX3Byb3ZpZGVyLml0ZW1FbGVtZW50KGkpKTsKKyAg
ICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQKKyAgICAgKi8KKyAg
ICBfb25TY3JvbGw6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdGhpcy5yZWZyZXNo
KCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge251bWJlcn0KKyAgICAgKi8K
KyAgICByb3dzUGVyVmlld3BvcnQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiBN
YXRoLmZsb29yKHRoaXMuZWxlbWVudC5jbGllbnRIZWlnaHQgLyB0aGlzLl9yb3dIZWlnaHQpOwor
ICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtudW1iZXJ9CisgICAgICovCisgICAg
Zmlyc3RWaXNpYmxlSW5kZXg6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlz
Ll9maXJzdFZpc2libGVJbmRleDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7
bnVtYmVyfQorICAgICAqLworICAgIGxhc3RWaXNpYmxlSW5kZXg6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHJldHVybiB0aGlzLl9sYXN0VmlzaWJsZUluZGV4OworICAgIH0sCisKKyAgICAv
KioKKyAgICAgKiBAcmV0dXJuIHs/RWxlbWVudH0KKyAgICAgKi8KKyAgICByZW5kZXJlZEVsZW1l
bnRBdDogZnVuY3Rpb24oaW5kZXgpCisgICAgeworICAgICAgICBpZiAoaW5kZXggPCB0aGlzLl9m
aXJzdFZpc2libGVJbmRleCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICBpZiAo
aW5kZXggPiB0aGlzLl9sYXN0VmlzaWJsZUluZGV4KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7
CisgICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50RWxlbWVudC5jaGlsZE5vZGVzW2luZGV4IC0g
dGhpcy5fZmlyc3RWaXNpYmxlSW5kZXhdOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge251bWJlcn0gaW5kZXgKKyAgICAgKiBAcGFyYW0ge2Jvb2xlYW49fSBtYWtlTGFzdAorICAg
ICAqLworICAgIHNjcm9sbEl0ZW1JbnRvVmlldzogZnVuY3Rpb24oaW5kZXgsIG1ha2VMYXN0KQor
ICAgIHsKKyAgICAgICAgaWYgKGluZGV4ID4gdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXggJiYgaW5k
ZXggPCB0aGlzLl9sYXN0VmlzaWJsZUluZGV4KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIGlmIChtYWtlTGFzdCkKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zY3JvbGxUb3AgPSB0
aGlzLl9yb3dIZWlnaHQgKiAoaW5kZXggKyAxKSAtIHRoaXMuZWxlbWVudC5jbGllbnRIZWlnaHQ7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHRoaXMuZWxlbWVudC5zY3JvbGxUb3AgPSB0aGlz
Ll9yb3dIZWlnaHQgKiBpbmRleDsKKyAgICB9Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKaW5kZXggZTFiMGIzMDE5MGFlNzM4YWFlNzAyYmFhYzU5
YTcwZTYxNzMyY2Q2Yi4uNDAwZDAzZmY3ZGJlNGUyNWQzMzZlNTU5OWJiNmNjNzdiYjMyMTU5ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJj
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYwpAQCAt
MjI0LDYgKzIyNCw3IEBACiAgICAgPGZpbGU+VXNlck1ldHJpY3MuanM8L2ZpbGU+CiAgICAgPGZp
bGU+dXRpbGl0aWVzLmpzPC9maWxlPgogICAgIDxmaWxlPlZpZXcuanM8L2ZpbGU+CisgICAgPGZp
bGU+Vmlld3BvcnRDb250cm9sLmpzPC9maWxlPgogICAgIDxmaWxlPldhdGNoRXhwcmVzc2lvbnNT
aWRlYmFyUGFuZS5qczwvZmlsZT4KICAgICA8ZmlsZT5Xb3JrZXJNYW5hZ2VyLmpzPC9maWxlPgog
ICAgIDxmaWxlPldvcmtlcnNTaWRlYmFyUGFuZS5qczwvZmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9n
LmNzcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZmlsdGVyZWRJdGVtU2Vs
ZWN0aW9uRGlhbG9nLmNzcwppbmRleCAzNjUxMDcxMmEzNmI0YTI2M2UwNjA2N2NiYTVhMjAwNmNk
ZGM5YmYxLi41ZjEzMTc2MDU1MzNlMWU1MmEyOTBhYjU0YjU4OGQxMzJhZmRkZjFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2ZpbHRlcmVkSXRlbVNlbGVj
dGlvbkRpYWxvZy5jc3MKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9m
aWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuY3NzCkBAIC0zNywxMSArMzcsMTEgQEAKICAgICBm
bG9hdDogcmlnaHQ7CiB9CiAKLS5qcy1vdXRsaW5lLWRpYWxvZyA+IC5jb250YWluZXIgPiBkaXYu
aXRlbS5zZWxlY3RlZCB7CisuanMtb3V0bGluZS1kaWFsb2cgLmNvbnRhaW5lciBkaXYuaXRlbS5z
ZWxlY3RlZCB7CiAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiKDIyNCwgMjI0LCAyMjQpOwogfQog
Ci0uanMtb3V0bGluZS1kaWFsb2cgPiAuY29udGFpbmVyID4gZGl2Lml0ZW0gc3Bhbi5oaWdobGln
aHQgeworLmpzLW91dGxpbmUtZGlhbG9nIC5jb250YWluZXIgZGl2Lml0ZW0gc3Bhbi5oaWdobGln
aHQgewogICAgIGNvbG9yOiBibGFjazsKICAgICBmb250LXdlaWdodDogYm9sZDsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCmluZGV4
IDU0NjExY2RkNTliNDI0ZDgyZGI1YTc5ZmNiNTMwMjc2ODU5Y2MwZWQuLjQxNGJjZGU0NTE2YTFl
YTNiYTJmMjFlMmNlNTAxZjg5OWJhZDJiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAtNjAsNiArNjAsNyBAQCBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlBvcG92ZXIuanMiPjwv
c2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlBsYWNhcmQu
anMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IlRh
YmJlZFBhbmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9IlZpZXdwb3J0Q29udHJvbC5qcyI+PC9zY3JpcHQ+IAogICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IkRyYXdlci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iQ29uc29sZU1vZGVsLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJDb25zb2xlTWVzc2FnZS5qcyI+
PC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185441</attachid>
            <date>2013-01-30 02:29:59 -0800</date>
            <delta_ts>2013-01-30 04:10:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108313-20130130142643.patch</filename>
            <type>text/plain</type>
            <size>32041</size>
            <attacher name="Pavel Feldman">pfeldman</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxMDk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjM1YTJiNzRiN2EyZjc5
MDViNDAzZWJmNGM5NTVlNmI5MTc5YzdhMi4uZGY3YTYxMWUxZWRmNWUyMTdjNWQyZTQ4NDY5ZmU4
NzExODRlNjQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDEzLTAxLTMwICBQYXZl
bCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IG1pZ3JhdGUgZmlsZSBzZWxlY3Rpb24gZGlhbG9nIHRvIHRoZSB2aWV3cG9ydC4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODMxMworCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE90aGVyd2lzZSBpdCB0
YWtlcyB0b28gbG9uZyB0byByZW5kZXIuCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6CisgICAg
ICAgICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6CisgICAgICAgICogaW5zcGVjdG9y
L2NvbXBpbGUtZnJvbnQtZW5kLnB5OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRmls
dGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbHRl
cmVkSXRlbVNlbGVjdGlvbkRpYWxvZyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJ
dGVtU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZS5mb2N1cyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZS5vbkVudGVyKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlLl9p
dGVtc0xvYWRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9u
RGlhbG9nLnByb3RvdHlwZS5fY3JlYXRlSXRlbUVsZW1lbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUuX2ZpbHRlckl0ZW1zKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90
eXBlLl9vbktleURvd24udXBkYXRlU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5G
aWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlLl9vbktleURvd24pOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUuX3Vw
ZGF0ZVNlbGVjdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0
aW9uRGlhbG9nLnByb3RvdHlwZS5fb25DbGljayk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmls
dGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZS5fb25Nb3VzZU1vdmUpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUuaXRl
bUNvdW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFs
b2cucHJvdG90eXBlLml0ZW1FbGVtZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1ZpZXdwb3J0Q29udHJvbC5qczogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlld3Bv
cnRDb250cm9sKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wuUHJvdmlk
ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlZpZXdwb3J0Q29udHJvbC5Qcm92aWRlci5wcm90
b3R5cGUuaXRlbUNvdW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wu
UHJvdmlkZXIucHJvdG90eXBlLml0ZW1FbGVtZW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5W
aWV3cG9ydENvbnRyb2wucHJvdG90eXBlLmNvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaWV3cG9ydENvbnRyb2wucHJvdG90eXBlLnJlZnJlc2gpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlZpZXdwb3J0Q29udHJvbC5wcm90b3R5cGUuX29uU2Nyb2xsKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wucHJvdG90eXBlLnJvd3NQZXJWaWV3cG9ydCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlld3BvcnRDb250cm9sLnByb3RvdHlwZS5maXJzdFZp
c2libGVJbmRleCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlld3BvcnRDb250cm9sLnByb3Rv
dHlwZS5sYXN0VmlzaWJsZUluZGV4KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3cG9ydENv
bnRyb2wucHJvdG90eXBlLnJlbmRlcmVkRWxlbWVudEF0KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5WaWV3cG9ydENvbnRyb2wucHJvdG90eXBlLnNjcm9sbEl0ZW1JbnRvVmlldyk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjOgorICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvZmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmNzczoKKyAgICAgICAgKC5qcy1v
dXRsaW5lLWRpYWxvZyAuY29udGFpbmVyIGRpdi5pdGVtLnNlbGVjdGVkKToKKyAgICAgICAgKC5q
cy1vdXRsaW5lLWRpYWxvZyAuY29udGFpbmVyIGRpdi5pdGVtIHNwYW4uaGlnaGxpZ2h0KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sOgorCisgICAgICAgICog
V2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgor
ICAgICAgICAqIGluc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUuZm9jdXMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5
cGUub25FbnRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9u
RGlhbG9nLnByb3RvdHlwZS5faXRlbXNMb2FkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZp
bHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUuX2NyZWF0ZUl0ZW1FbGVtZW50KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90
eXBlLl9maWx0ZXJJdGVtcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2Vs
ZWN0aW9uRGlhbG9nLnByb3RvdHlwZS5fb25LZXlEb3duLnVwZGF0ZVNlbGVjdGlvbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZS5f
b25LZXlEb3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25E
aWFsb2cucHJvdG90eXBlLl91cGRhdGVTZWxlY3Rpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUuX29uQ2xpY2spOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUuX29u
TW91c2VNb3ZlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rpb25E
aWFsb2cucHJvdG90eXBlLml0ZW1Db3VudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRmlsdGVy
ZWRJdGVtU2VsZWN0aW9uRGlhbG9nLnByb3RvdHlwZS5pdGVtRWxlbWVudCk6CisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3cG9ydENvbnRyb2wuanM6IEFkZGVkLgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlZpZXdwb3J0Q29udHJvbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmll
d3BvcnRDb250cm9sLlByb3ZpZGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3cG9ydENv
bnRyb2wuUHJvdmlkZXIucHJvdG93YXJuaW5nOiBMRiB3aWxsIGJlIHJlcGxhY2VkIGJ5IENSTEYg
aW4gU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ouClRoZSBmaWxl
IHdpbGwgaGF2ZSBpdHMgb3JpZ2luYWwgbGluZSBlbmRpbmdzIGluIHlvdXIgd29ya2luZyBkaXJl
Y3RvcnkuCnR5cGUuaXRlbUNvdW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3cG9ydENv
bnRyb2wuUHJvdmlkZXIucHJvdG90eXBlLml0ZW1FbGVtZW50KToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5WaWV3cG9ydENvbnRyb2wucHJvdG90eXBlLmNvbnRlbnRFbGVtZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wucHJvdG90eXBlLnJlZnJlc2gpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlZpZXdwb3J0Q29udHJvbC5wcm90b3R5cGUuX29uU2Nyb2xsKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wucHJvdG90eXBlLnJvd3NQZXJWaWV3
cG9ydCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlld3BvcnRDb250cm9sLnByb3RvdHlwZS5m
aXJzdFZpc2libGVJbmRleCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVmlld3BvcnRDb250cm9s
LnByb3RvdHlwZS5sYXN0VmlzaWJsZUluZGV4KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5WaWV3
cG9ydENvbnRyb2wucHJvdG90eXBlLnJlbmRlcmVkRWxlbWVudEF0KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5WaWV3cG9ydENvbnRyb2wucHJvdG90eXBlLnNjcm9sbEl0ZW1JbnRvVmlldyk6Cisg
ICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjOgorICAgICAgICAqIGluc3Bl
Y3Rvci9mcm9udC1lbmQvZmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmNzczoKKyAgICAgICAg
KC5qcy1vdXRsaW5lLWRpYWxvZyAuY29udGFpbmVyIGRpdi5pdGVtLnNlbGVjdGVkKToKKyAgICAg
ICAgKC5qcy1vdXRsaW5lLWRpYWxvZyAuY29udGFpbmVyIGRpdi5pdGVtIHNwYW4uaGlnaGxpZ2h0
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sOgorICAgICAg
ICAqIGluc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0aWVzLmpzOgorICAgICAgICAoLik6CisKIDIw
MTMtMDEtMjkgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhc0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgV2ViIEluc3BlY3RvcjogW0NQVSBQcm9maWxlXSBUYWtpbmcgcHJvZmlsZSBjcmFzaGVz
IHJlbmRlcmVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDc0YTgzM2Q3NmNjZTYyOTg3ZTI1YjFlNDgy
YjdkZGNlZmNlYzk2OTguLjQ3Y2QzZmJlNmI2MDRlNDllYjgxMzEwZmMwNjZlNTFjMTI5OWVhYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmd5cGkKQEAgLTUyNjgsNiArNTI2OCw3IEBACiAgICAgICAgICAgICAnaW5z
cGVjdG9yL2Zyb250LWVuZC9Vc2VyTWV0cmljcy5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC91dGlsaXRpZXMuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1l
bmQvVmlldy5qcycsCisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9WaWV3cG9ydENv
bnRyb2wuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvV29ya2VyTWFuYWdl
ci5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jrc3BhY2UuanMnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvZGlhbG9nLmNzcycsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGFlZTY2MDUwOTgzZTUz
YmJlNTlkOWU2NGIzZTc4MzU3MGZmZGVhYTguLjY3NDgzNDJmYWRjZTUzNmNkNDNlODUyNmZhNmJk
YmYzYjM1NDEzMTggMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCkBAIC03NzgwNSw2ICs3NzgwNSwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxWaWV3cG9y
dENvbnRyb2wuanMiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRp
dmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFdhdGNoRXhwcmVzc2lvbnNTaWRlYmFyUGFu
ZS5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weSBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9j
b21waWxlLWZyb250LWVuZC5weQppbmRleCA5MzRmMzBiMzA3NDIyN2M3ZGZiNzQ4YzliZmE2OWVj
MDEzYTA1ODU0Li4wZGJlZDg5ODgwN2IyNWJjYTUwZDBlOWU4NDJkYWQ5ZTdhOGE1OTYxIDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHkKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5CkBAIC0xNjAs
NiArMTYwLDcgQEAgbW9kdWxlcyA9IFsKICAgICAgICAgICAgICJUb29sYmFyLmpzIiwKICAgICAg
ICAgICAgICJVSVV0aWxzLmpzIiwKICAgICAgICAgICAgICJWaWV3LmpzIiwKKyAgICAgICAgICAg
ICJWaWV3cG9ydENvbnRyb2wuanMiLAogICAgICAgICAgICAgInRyZWVvdXRsaW5lLmpzIiwKICAg
ICAgICAgXQogICAgIH0sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0ZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5qcyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzCmluZGV4IDQ0
ZDVhNGM1YzRhZjYzOWRhMTJmMWVjODYyMjc3NmUwN2ZjZjlmYTMuLmVjMWQ1ZjE1ZWJmYzA1ZTZj
Yzk2NTI4NjI2ZDY5YTAwMDU2YTliZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9n
LmpzCkBAIC0zMSw2ICszMSw3IEBACiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMg
e1dlYkluc3BlY3Rvci5EaWFsb2dEZWxlZ2F0ZX0KKyAqIEBpbXBsZW1lbnRzIHtXZWJJbnNwZWN0
b3IuVmlld3BvcnRDb250cm9sLlByb3ZpZGVyfQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2Vs
ZWN0aW9uRGlhbG9nQ29udGVudFByb3ZpZGVyfSBkZWxlZ2F0ZQogICovCiBXZWJJbnNwZWN0b3Iu
RmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlhbG9nID0gZnVuY3Rpb24oZGVsZWdhdGUpCkBAIC00NCwy
NSArNDUsMjMgQEAgV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZyA9IGZ1
bmN0aW9uKGRlbGVnYXRlKQogICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOwogICAgIHRoaXMuZWxlbWVudC5jbGFzc05hbWUgPSAianMtb3V0bGluZS1kaWFs
b2ciOwogICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJrZXlkb3duIiwgdGhpcy5f
b25LZXlEb3duLmJpbmQodGhpcyksIGZhbHNlKTsKLSAgICB0aGlzLmVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fb25Nb3VzZU1vdmUuYmluZCh0aGlzKSwgZmFsc2Up
OwotICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX29uQ2xp
Y2suYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHZhciBzdHlsZUVsZW1lbnQgPSB0aGlzLmVsZW1l
bnQuY3JlYXRlQ2hpbGQoInN0eWxlIik7CiAgICAgc3R5bGVFbGVtZW50LnR5cGUgPSAidGV4dC9j
c3MiOwogICAgIHN0eWxlRWxlbWVudC50ZXh0Q29udGVudCA9IHhoci5yZXNwb25zZVRleHQ7CiAK
LSAgICB0aGlzLl9pdGVtRWxlbWVudHMgPSBbXTsKLSAgICB0aGlzLl9lbGVtZW50SW5kZXhlcyA9
IG5ldyBNYXAoKTsKLSAgICB0aGlzLl9lbGVtZW50SGlnaGxpZ2h0Q2hhbmdlcyA9IG5ldyBNYXAo
KTsKLQogICAgIHRoaXMuX3Byb21wdEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQuY3JlYXRlQ2hpbGQo
ImlucHV0IiwgIm1vbm9zcGFjZSIpOwogICAgIHRoaXMuX3Byb21wdEVsZW1lbnQudHlwZSA9ICJ0
ZXh0IjsKICAgICB0aGlzLl9wcm9tcHRFbGVtZW50LnNldEF0dHJpYnV0ZSgic3BlbGxjaGVjayIs
ICJmYWxzZSIpOwogCiAgICAgdGhpcy5fcHJvZ3Jlc3NFbGVtZW50ID0gdGhpcy5lbGVtZW50LmNy
ZWF0ZUNoaWxkKCJkaXYiLCAicHJvZ3Jlc3MiKTsKIAotICAgIHRoaXMuX2l0ZW1FbGVtZW50c0Nv
bnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHRoaXMuX2l0ZW1F
bGVtZW50c0NvbnRhaW5lci5jbGFzc05hbWUgPSAiY29udGFpbmVyIG1vbm9zcGFjZSI7Ci0gICAg
dGhpcy5faXRlbUVsZW1lbnRzQ29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHRo
aXMuX29uU2Nyb2xsLmJpbmQodGhpcyksIGZhbHNlKTsKKyAgICB0aGlzLl9maWx0ZXJlZEl0ZW1z
ID0gW107CisgICAgdGhpcy5fdmlld3BvcnRDb250cm9sID0gbmV3IFdlYkluc3BlY3Rvci5WaWV3
cG9ydENvbnRyb2wodGhpcyk7CisgICAgdGhpcy5faXRlbUVsZW1lbnRzQ29udGFpbmVyID0gdGhp
cy5fdmlld3BvcnRDb250cm9sLmVsZW1lbnQ7CisgICAgdGhpcy5faXRlbUVsZW1lbnRzQ29udGFp
bmVyLmFkZFN0eWxlQ2xhc3MoImNvbnRhaW5lciIpOworICAgIHRoaXMuX2l0ZW1FbGVtZW50c0Nv
bnRhaW5lci5hZGRTdHlsZUNsYXNzKCJtb25vc3BhY2UiKTsKKyAgICB0aGlzLl9pdGVtRWxlbWVu
dHNDb250YWluZXIuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fb25Nb3VzZU1v
dmUuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMuX2l0ZW1FbGVtZW50c0NvbnRhaW5lci5h
ZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX29uQ2xpY2suYmluZCh0aGlzKSwgZmFsc2Up
OwogICAgIHRoaXMuZWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLl9pdGVtRWxlbWVudHNDb250YWlu
ZXIpOwogCiAgICAgdGhpcy5fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKQEAgLTk0LDYgKzkzLDggQEAg
V2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUgPSB7CiAg
ICAgZm9jdXM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5zZXRDdXJy
ZW50Rm9jdXNFbGVtZW50KHRoaXMuX3Byb21wdEVsZW1lbnQpOworICAgICAgICBpZiAoIXRoaXMu
X3ZpZXdwb3J0Q29udHJvbC5sYXN0VmlzaWJsZUluZGV4KCkpCisgICAgICAgICAgICB0aGlzLl92
aWV3cG9ydENvbnRyb2wucmVmcmVzaCgpOwogICAgIH0sCiAKICAgICB3aWxsSGlkZTogZnVuY3Rp
b24oKQpAQCAtMTA3LDkgKzEwOCw5IEBAIFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0ZW1TZWxlY3Rp
b25EaWFsb2cucHJvdG90eXBlID0gewogCiAgICAgb25FbnRlcjogZnVuY3Rpb24oKQogICAgIHsK
LSAgICAgICAgaWYgKCF0aGlzLl9zZWxlY3RlZEVsZW1lbnQpCisgICAgICAgIGlmICh0eXBlb2Yg
dGhpcy5fc2VsZWN0ZWRJbmRleEluRmlsdGVyZWQgIT09ICJudW1iZXIiKQogICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5zZWxlY3RJdGVtKHRoaXMuX2VsZW1lbnRJ
bmRleGVzLmdldCh0aGlzLl9zZWxlY3RlZEVsZW1lbnQpLCB0aGlzLl9wcm9tcHRFbGVtZW50LnZh
bHVlLnRyaW0oKSk7CisgICAgICAgIHRoaXMuX2RlbGVnYXRlLnNlbGVjdEl0ZW0odGhpcy5fZmls
dGVyZWRJdGVtc1t0aGlzLl9zZWxlY3RlZEluZGV4SW5GaWx0ZXJlZF0sIHRoaXMuX3Byb21wdEVs
ZW1lbnQudmFsdWUudHJpbSgpKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xMjAsOCArMTIxLDYg
QEAgV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUgPSB7
CiAgICAgICovCiAgICAgX2l0ZW1zTG9hZGVkOiBmdW5jdGlvbihpbmRleCwgY2h1bmtMZW5ndGgs
IGNodW5rSW5kZXgsIGNodW5rQ291bnQpCiAgICAgewotICAgICAgICBmb3IgKHZhciBpID0gaW5k
ZXg7IGkgPCBpbmRleCArIGNodW5rTGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0aGlzLl9pdGVt
RWxlbWVudHNDb250YWluZXIuYXBwZW5kQ2hpbGQodGhpcy5fY3JlYXRlSXRlbUVsZW1lbnQoaSkp
OwogICAgICAgICB0aGlzLl9maWx0ZXJJdGVtcygpOwogCiAgICAgICAgIGlmIChjaHVua0luZGV4
ID09PSBjaHVua0NvdW50KQpAQCAtMTM1LDQ2ICsxMzQsMzQgQEAgV2ViSW5zcGVjdG9yLkZpbHRl
cmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5cGUgPSB7CiAKICAgICAvKioKICAgICAgKiBA
cGFyYW0ge251bWJlcn0gaW5kZXgKKyAgICAgKiBAcmV0dXJuIHtFbGVtZW50fQogICAgICAqLwog
ICAgIF9jcmVhdGVJdGVtRWxlbWVudDogZnVuY3Rpb24oaW5kZXgpCiAgICAgewotICAgICAgICBp
ZiAodGhpcy5faXRlbUVsZW1lbnRzW2luZGV4XSkKLSAgICAgICAgICAgIHJldHVybiB0aGlzLl9p
dGVtRWxlbWVudHNbaW5kZXhdOwotCiAgICAgICAgIHZhciBpdGVtRWxlbWVudCA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICBpdGVtRWxlbWVudC5jbGFzc05hbWUgPSAi
aXRlbSI7CiAgICAgICAgIGl0ZW1FbGVtZW50Ll90aXRsZUVsZW1lbnQgPSBpdGVtRWxlbWVudC5j
cmVhdGVDaGlsZCgic3BhbiIpOwogICAgICAgICBpdGVtRWxlbWVudC5fdGl0bGVFbGVtZW50LnRl
eHRDb250ZW50ID0gdGhpcy5fZGVsZWdhdGUuaXRlbVRpdGxlQXQoaW5kZXgpOwogICAgICAgICBp
dGVtRWxlbWVudC5fdGl0bGVTdWZmaXhFbGVtZW50ID0gaXRlbUVsZW1lbnQuY3JlYXRlQ2hpbGQo
InNwYW4iKTsKKyAgICAgICAgaXRlbUVsZW1lbnQuX3RpdGxlU3VmZml4RWxlbWVudC50ZXh0Q29u
dGVudCA9IHRoaXMuX2RlbGVnYXRlLml0ZW1TdWZmaXhBdChpbmRleCk7CiAgICAgICAgIGl0ZW1F
bGVtZW50Ll9zdWJ0aXRsZUVsZW1lbnQgPSBpdGVtRWxlbWVudC5jcmVhdGVDaGlsZCgic3BhbiIs
ICJzdWJ0aXRsZSIpOwogICAgICAgICBpdGVtRWxlbWVudC5fc3VidGl0bGVFbGVtZW50LnRleHRD
b250ZW50ID0gdGhpcy5fZGVsZWdhdGUuaXRlbVN1YnRpdGxlQXQoaW5kZXgpOwotICAgICAgICB0
aGlzLl9lbGVtZW50SW5kZXhlcy5wdXQoaXRlbUVsZW1lbnQsIGluZGV4KTsKLSAgICAgICAgdGhp
cy5faXRlbUVsZW1lbnRzLnB1c2goaXRlbUVsZW1lbnQpOwotICAgICAgICByZXR1cm4gaXRlbUVs
ZW1lbnQ7Ci0gICAgfSwKLQotICAgIC8qKgotICAgICAqIEBwYXJhbSB7RWxlbWVudH0gaXRlbUVs
ZW1lbnQKLSAgICAgKi8KLSAgICBfaGlkZUl0ZW1FbGVtZW50OiBmdW5jdGlvbihpdGVtRWxlbWVu
dCkKLSAgICB7Ci0gICAgICAgIGl0ZW1FbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7Ci0g
ICAgfSwKKyAgICAgICAgaXRlbUVsZW1lbnQuX2luZGV4ID0gaW5kZXg7CiAKLSAgICAvKioKLSAg
ICAgKiBAcGFyYW0ge0VsZW1lbnR9IGl0ZW1FbGVtZW50Ci0gICAgICovCi0gICAgX2l0ZW1FbGVt
ZW50VmlzaWJsZTogZnVuY3Rpb24oaXRlbUVsZW1lbnQpCi0gICAgewotICAgICAgICByZXR1cm4g
aXRlbUVsZW1lbnQuc3R5bGUuZGlzcGxheSAhPT0gIm5vbmUiOwotICAgIH0sCisgICAgICAgIHZh
ciBrZXkgPSB0aGlzLl9kZWxlZ2F0ZS5pdGVtS2V5QXQoaW5kZXgpOworICAgICAgICB2YXIgcmFu
Z2VzID0gW107CisgICAgICAgIHZhciBtYXRjaDsKKyAgICAgICAgaWYgKHRoaXMuX3F1ZXJ5KSB7
CisgICAgICAgICAgICB2YXIgcmVnZXggPSB0aGlzLl9jcmVhdGVTZWFyY2hSZWdFeHAodGhpcy5f
cXVlcnksIHRydWUpOworICAgICAgICAgICAgd2hpbGUgKChtYXRjaCA9IHJlZ2V4LmV4ZWMoa2V5
KSkgIT09IG51bGwgJiYgbWF0Y2hbMF0pCisgICAgICAgICAgICAgICAgcmFuZ2VzLnB1c2goeyBv
ZmZzZXQ6IG1hdGNoLmluZGV4LCBsZW5ndGg6IHJlZ2V4Lmxhc3RJbmRleCAtIG1hdGNoLmluZGV4
IH0pOworICAgICAgICAgICAgaWYgKHJhbmdlcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgV2Vi
SW5zcGVjdG9yLmhpZ2hsaWdodFJhbmdlc1dpdGhTdHlsZUNsYXNzKGl0ZW1FbGVtZW50LCByYW5n
ZXMsICJoaWdobGlnaHQiKTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5kZXggPT09IHRoaXMu
X2ZpbHRlcmVkSXRlbXNbdGhpcy5fc2VsZWN0ZWRJbmRleEluRmlsdGVyZWRdKQorICAgICAgICAg
ICAgaXRlbUVsZW1lbnQuYWRkU3R5bGVDbGFzcygic2VsZWN0ZWQiKTsKIAotICAgIC8qKgotICAg
ICAqIEBwYXJhbSB7RWxlbWVudH0gaXRlbUVsZW1lbnQKLSAgICAgKi8KLSAgICBfc2hvd0l0ZW1F
bGVtZW50OiBmdW5jdGlvbihpdGVtRWxlbWVudCkKLSAgICB7Ci0gICAgICAgIGl0ZW1FbGVtZW50
LnN0eWxlLmRpc3BsYXkgPSAiIjsKKyAgICAgICAgcmV0dXJuIGl0ZW1FbGVtZW50OwogICAgIH0s
CiAKICAgICAvKioKQEAgLTIxMSw3OSArMTk4LDU3IEBAIFdlYkluc3BlY3Rvci5GaWx0ZXJlZEl0
ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlID0gewogICAgICAgICBkZWxldGUgdGhpcy5fZmls
dGVyVGltZXI7CiAKICAgICAgICAgdmFyIHF1ZXJ5ID0gdGhpcy5fcHJvbXB0RWxlbWVudC52YWx1
ZTsKLSAgICAgICAgcXVlcnkgPSBxdWVyeS50cmltKCk7CisgICAgICAgIHRoaXMuX3F1ZXJ5ID0g
cXVlcnkudHJpbSgpOwogICAgICAgICB2YXIgcmVnZXggPSB0aGlzLl9jcmVhdGVTZWFyY2hSZWdF
eHAocXVlcnkpOwogCi0gICAgICAgIHZhciBmaXJzdEVsZW1lbnQ7Ci0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgdGhpcy5faXRlbUVsZW1lbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAg
ICB2YXIgaXRlbUVsZW1lbnQgPSB0aGlzLl9pdGVtRWxlbWVudHNbaV07Ci0gICAgICAgICAgICBp
dGVtRWxlbWVudC5fdGl0bGVTdWZmaXhFbGVtZW50LnRleHRDb250ZW50ID0gdGhpcy5fZGVsZWdh
dGUuaXRlbVN1ZmZpeEF0KGkpOworICAgICAgICB2YXIgb2xkU2VsZWN0ZWRBYnNvbHV0ZUluZGV4
ID0gdGhpcy5fZmlsdGVyZWRJdGVtc1t0aGlzLl9zZWxlY3RlZEluZGV4SW5GaWx0ZXJlZF07Cisg
ICAgICAgIHRoaXMuX2ZpbHRlcmVkSXRlbXMgPSBbXTsKKyAgICAgICAgdGhpcy5fc2VsZWN0ZWRJ
bmRleEluRmlsdGVyZWQgPSAwOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2Rl
bGVnYXRlLml0ZW1zQ291bnQoKTsgKytpKSB7CisgICAgICAgICAgICB2YXIgdGl0bGUgPSB0aGlz
Ll9kZWxlZ2F0ZS5pdGVtVGl0bGVBdChpKTsKICAgICAgICAgICAgIGlmIChyZWdleC50ZXN0KHRo
aXMuX2RlbGVnYXRlLml0ZW1LZXlBdChpKSkpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9zaG93
SXRlbUVsZW1lbnQoaXRlbUVsZW1lbnQpOwotICAgICAgICAgICAgICAgIGlmICghZmlyc3RFbGVt
ZW50KQotICAgICAgICAgICAgICAgICAgICBmaXJzdEVsZW1lbnQgPSBpdGVtRWxlbWVudDsKLSAg
ICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAgICAgIHRoaXMuX2hpZGVJdGVtRWxlbWVudChp
dGVtRWxlbWVudCk7CisgICAgICAgICAgICAgICAgaWYgKGkgPT09IG9sZFNlbGVjdGVkQWJzb2x1
dGVJbmRleCkgCisgICAgICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXhJbkZpbHRl
cmVkID0gdGhpcy5fZmlsdGVyZWRJdGVtcy5sZW5ndGg7CisgICAgICAgICAgICAgICAgdGhpcy5f
ZmlsdGVyZWRJdGVtcy5wdXNoKGkpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKLSAgICAg
ICAgaWYgKCF0aGlzLl9zZWxlY3RlZEVsZW1lbnQgfHwgIXRoaXMuX2l0ZW1FbGVtZW50VmlzaWJs
ZSh0aGlzLl9zZWxlY3RlZEVsZW1lbnQpKQotICAgICAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0
aW9uKGZpcnN0RWxlbWVudCk7Ci0KLSAgICAgICAgaWYgKHF1ZXJ5KSB7Ci0gICAgICAgICAgICB0
aGlzLl9oaWdobGlnaHRJdGVtcyhxdWVyeSk7Ci0gICAgICAgICAgICB0aGlzLl9xdWVyeSA9IHF1
ZXJ5OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdGhpcy5fY2xlYXJIaWdobGlnaHQo
KTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9xdWVyeTsKLSAgICAgICAgfQorICAgICAgICB0
aGlzLl92aWV3cG9ydENvbnRyb2wucmVmcmVzaCgpOworICAgICAgICB0aGlzLl91cGRhdGVTZWxl
Y3Rpb24odGhpcy5fc2VsZWN0ZWRJbmRleEluRmlsdGVyZWQpOwogICAgIH0sCiAKICAgICBfb25L
ZXlEb3duOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIGZ1bmN0aW9uIG5leHRJdGVt
KGl0ZW1FbGVtZW50LCBpc1BhZ2VTY3JvbGwsIGZvcndhcmQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHZhciBzY3JvbGxJdGVtc0xlZnQgPSBpc1BhZ2VTY3JvbGwgJiYgdGhpcy5fcm93c1BlclZp
ZXdwb3J0ID8gdGhpcy5fcm93c1BlclZpZXdwb3J0IDogMTsKLSAgICAgICAgICAgIHZhciBjYW5k
aWRhdGUgPSBpdGVtRWxlbWVudDsKLSAgICAgICAgICAgIHZhciBsYXN0VmlzaWJsZUNhbmRpZGF0
ZSA9IGNhbmRpZGF0ZTsKLSAgICAgICAgICAgIGRvIHsKLSAgICAgICAgICAgICAgICBjYW5kaWRh
dGUgPSBmb3J3YXJkID8gY2FuZGlkYXRlLm5leHRTaWJsaW5nIDogY2FuZGlkYXRlLnByZXZpb3Vz
U2libGluZzsKLSAgICAgICAgICAgICAgICBpZiAoIWNhbmRpZGF0ZSkgewotICAgICAgICAgICAg
ICAgICAgICBpZiAoaXNQYWdlU2Nyb2xsKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IGxhc3RWaXNpYmxlQ2FuZGlkYXRlOwotICAgICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAg
ICAgICAgICAgICAgICAgICBjYW5kaWRhdGUgPSBmb3J3YXJkID8gdGhpcy5faXRlbUVsZW1lbnRz
Q29udGFpbmVyLmZpcnN0Q2hpbGQgOiB0aGlzLl9pdGVtRWxlbWVudHNDb250YWluZXIubGFzdENo
aWxkOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAoIXRoaXMuX2l0ZW1F
bGVtZW50VmlzaWJsZShjYW5kaWRhdGUpKQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgICAgICAgICBsYXN0VmlzaWJsZUNhbmRpZGF0ZSA9IGNhbmRpZGF0ZTsKLSAgICAg
ICAgICAgICAgICAtLXNjcm9sbEl0ZW1zTGVmdDsKLSAgICAgICAgICAgIH0gd2hpbGUgKHNjcm9s
bEl0ZW1zTGVmdCAmJiBjYW5kaWRhdGUgIT09IHRoaXMuX3NlbGVjdGVkRWxlbWVudCk7Ci0KLSAg
ICAgICAgICAgIHJldHVybiBjYW5kaWRhdGU7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHR5cGVv
ZiB0aGlzLl9zZWxlY3RlZEluZGV4SW5GaWx0ZXJlZCA9PT0gIm51bWJlciIpIHsKKyAgICAgICAg
ICAgIHZhciBuZXdTZWxlY3RlZEluZGV4ID0gdGhpcy5fc2VsZWN0ZWRJbmRleEluRmlsdGVyZWQ7
CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVNlbGVjdGlvbihtYWtlTGFzdCkKKyAgICAg
ICAgICAgIHsKKyAgICAgICAgICAgICAgICB0aGlzLl92aWV3cG9ydENvbnRyb2wuc2Nyb2xsSXRl
bUludG9WaWV3KG5ld1NlbGVjdGVkSW5kZXgsIG1ha2VMYXN0KTsgCisgICAgICAgICAgICAgICAg
dGhpcy5fdXBkYXRlU2VsZWN0aW9uKG5ld1NlbGVjdGVkSW5kZXgpOworICAgICAgICAgICAgICAg
IGV2ZW50LmNvbnN1bWUodHJ1ZSk7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgaWYgKHRoaXMu
X3NlbGVjdGVkRWxlbWVudCkgewotICAgICAgICAgICAgdmFyIGNhbmRpZGF0ZTsKICAgICAgICAg
ICAgIHN3aXRjaCAoZXZlbnQua2V5Q29kZSkgewogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0
b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLkRvd24uY29kZToKLSAgICAgICAgICAgICAgICBjYW5k
aWRhdGUgPSBuZXh0SXRlbS5jYWxsKHRoaXMsIHRoaXMuX3NlbGVjdGVkRWxlbWVudCwgZmFsc2Us
IHRydWUpOworICAgICAgICAgICAgICAgIGlmICgrK25ld1NlbGVjdGVkSW5kZXggPj0gdGhpcy5f
ZmlsdGVyZWRJdGVtcy5sZW5ndGgpCisgICAgICAgICAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5k
ZXggPSB0aGlzLl9maWx0ZXJlZEl0ZW1zLmxlbmd0aCAtIDE7CisgICAgICAgICAgICAgICAgdXBk
YXRlU2VsZWN0aW9uLmNhbGwodGhpcywgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgICAgICBjYXNlIFdlYkluc3BlY3Rvci5LZXlib2FyZFNob3J0Y3V0LktleXMuVXAuY29k
ZToKLSAgICAgICAgICAgICAgICBjYW5kaWRhdGUgPSBuZXh0SXRlbS5jYWxsKHRoaXMsIHRoaXMu
X3NlbGVjdGVkRWxlbWVudCwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBpZiAoLS1u
ZXdTZWxlY3RlZEluZGV4IDwgMCkKKyAgICAgICAgICAgICAgICAgICAgbmV3U2VsZWN0ZWRJbmRl
eCA9IDA7CisgICAgICAgICAgICAgICAgdXBkYXRlU2VsZWN0aW9uLmNhbGwodGhpcywgZmFsc2Up
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSBXZWJJbnNwZWN0b3Iu
S2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlBhZ2VEb3duLmNvZGU6Ci0gICAgICAgICAgICAgICAgY2Fu
ZGlkYXRlID0gbmV4dEl0ZW0uY2FsbCh0aGlzLCB0aGlzLl9zZWxlY3RlZEVsZW1lbnQsIHRydWUs
IHRydWUpOworICAgICAgICAgICAgICAgIG5ld1NlbGVjdGVkSW5kZXggPSBNYXRoLm1pbihuZXdT
ZWxlY3RlZEluZGV4ICsgdGhpcy5fdmlld3BvcnRDb250cm9sLnJvd3NQZXJWaWV3cG9ydCgpLCB0
aGlzLl9maWx0ZXJlZEl0ZW1zLmxlbmd0aCAtIDEpOworICAgICAgICAgICAgICAgIHVwZGF0ZVNl
bGVjdGlvbi5jYWxsKHRoaXMsIHRydWUpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgY2FzZSBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXlzLlBhZ2VVcC5jb2Rl
OgotICAgICAgICAgICAgICAgIGNhbmRpZGF0ZSA9IG5leHRJdGVtLmNhbGwodGhpcywgdGhpcy5f
c2VsZWN0ZWRFbGVtZW50LCB0cnVlLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgbmV3U2VsZWN0
ZWRJbmRleCA9IE1hdGgubWF4KG5ld1NlbGVjdGVkSW5kZXggLSB0aGlzLl92aWV3cG9ydENvbnRy
b2wucm93c1BlclZpZXdwb3J0KCksIDApOworICAgICAgICAgICAgICAgIHVwZGF0ZVNlbGVjdGlv
bi5jYWxsKHRoaXMsIGZhbHNlKTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAg
IH0KLQotICAgICAgICAgICAgaWYgKGNhbmRpZGF0ZSkgewotICAgICAgICAgICAgICAgIHRoaXMu
X3VwZGF0ZVNlbGVjdGlvbihjYW5kaWRhdGUpOwotICAgICAgICAgICAgICAgIGV2ZW50LnByZXZl
bnREZWZhdWx0KCk7Ci0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgfQogICAg
ICAgICB9CiAKICAgICAgICAgaWYgKGV2ZW50LmtleUlkZW50aWZpZXIgIT09ICJTaGlmdCIgJiYg
ZXZlbnQua2V5SWRlbnRpZmllciAhPT0gIkN0cmwiICYmIGV2ZW50LmtleUlkZW50aWZpZXIgIT09
ICJNZXRhIiAmJiBldmVudC5rZXlJZGVudGlmaWVyICE9PSAiTGVmdCIgJiYgZXZlbnQua2V5SWRl
bnRpZmllciAhPT0gIlJpZ2h0IikKQEAgLTI5OCwyNCArMjYzLDE5IEBAIFdlYkluc3BlY3Rvci5G
aWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKLSAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IG5ld1NlbGVjdGVkRWxlbWVudAotICAgICAqLwot
ICAgIF91cGRhdGVTZWxlY3Rpb246IGZ1bmN0aW9uKG5ld1NlbGVjdGVkRWxlbWVudCkKLSAgICB7
Ci0gICAgICAgIGlmICh0aGlzLl9zZWxlY3RlZEVsZW1lbnQgPT09IG5ld1NlbGVjdGVkRWxlbWVu
dCkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkRWxlbWVu
dCkKLSAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkRWxlbWVudC5yZW1vdmVTdHlsZUNsYXNzKCJz
ZWxlY3RlZCIpOwotCi0gICAgICAgIHRoaXMuX3NlbGVjdGVkRWxlbWVudCA9IG5ld1NlbGVjdGVk
RWxlbWVudDsKLSAgICAgICAgaWYgKG5ld1NlbGVjdGVkRWxlbWVudCkgewotICAgICAgICAgICAg
bmV3U2VsZWN0ZWRFbGVtZW50LmFkZFN0eWxlQ2xhc3MoInNlbGVjdGVkIik7Ci0gICAgICAgICAg
ICBuZXdTZWxlY3RlZEVsZW1lbnQuc2Nyb2xsSW50b1ZpZXdJZk5lZWRlZChmYWxzZSk7Ci0gICAg
ICAgICAgICBpZiAoIXRoaXMuX2l0ZW1IZWlnaHQpIHsKLSAgICAgICAgICAgICAgICB0aGlzLl9p
dGVtSGVpZ2h0ID0gbmV3U2VsZWN0ZWRFbGVtZW50Lm9mZnNldEhlaWdodDsKLSAgICAgICAgICAg
ICAgICB0aGlzLl9yb3dzUGVyVmlld3BvcnQgPSBNYXRoLmZsb29yKHRoaXMuX2l0ZW1FbGVtZW50
c0NvbnRhaW5lci5vZmZzZXRIZWlnaHQgLyB0aGlzLl9pdGVtSGVpZ2h0KTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBpbmRleCAgCisgICAgICovCisg
ICAgX3VwZGF0ZVNlbGVjdGlvbjogZnVuY3Rpb24oaW5kZXgpCisgICAgeyAKKyAgICAgICAgdmFy
IGVsZW1lbnQgPSB0aGlzLl92aWV3cG9ydENvbnRyb2wucmVuZGVyZWRFbGVtZW50QXQodGhpcy5f
c2VsZWN0ZWRJbmRleEluRmlsdGVyZWQpOworICAgICAgICBpZiAoZWxlbWVudCkKKyAgICAgICAg
ICAgIGVsZW1lbnQucmVtb3ZlU3R5bGVDbGFzcygic2VsZWN0ZWQiKTsKKyAgICAgICAgdGhpcy5f
c2VsZWN0ZWRJbmRleEluRmlsdGVyZWQgPSBpbmRleDsKKyAgICAgICAgZWxlbWVudCA9IHRoaXMu
X3ZpZXdwb3J0Q29udHJvbC5yZW5kZXJlZEVsZW1lbnRBdChpbmRleCk7IAorICAgICAgICBpZiAo
ZWxlbWVudCkKKyAgICAgICAgICAgIGVsZW1lbnQuYWRkU3R5bGVDbGFzcygic2VsZWN0ZWQiKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgdGhpcy5fdmlld3BvcnRDb250cm9sLnJlZnJlc2go
KTsKICAgICB9LAogCiAgICAgX29uQ2xpY2s6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMzIzLDk1ICsy
ODMsMzggQEAgV2ViSW5zcGVjdG9yLkZpbHRlcmVkSXRlbVNlbGVjdGlvbkRpYWxvZy5wcm90b3R5
cGUgPSB7CiAgICAgICAgIHZhciBpdGVtRWxlbWVudCA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdO
b2RlT3JTZWxmV2l0aENsYXNzKCJpdGVtIik7CiAgICAgICAgIGlmICghaXRlbUVsZW1lbnQpCiAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGlvbihpdGVtRWxl
bWVudCk7Ci0gICAgICAgIHRoaXMuX2RlbGVnYXRlLnNlbGVjdEl0ZW0odGhpcy5fZWxlbWVudElu
ZGV4ZXMuZ2V0KHRoaXMuX3NlbGVjdGVkRWxlbWVudCksIHRoaXMuX3Byb21wdEVsZW1lbnQudmFs
dWUudHJpbSgpKTsKKyAgICAgICAgdGhpcy5fZGVsZWdhdGUuc2VsZWN0SXRlbShpdGVtRWxlbWVu
dC5faW5kZXgsIHRoaXMuX3Byb21wdEVsZW1lbnQudmFsdWUudHJpbSgpKTsKICAgICAgICAgV2Vi
SW5zcGVjdG9yLkRpYWxvZy5oaWRlKCk7CiAgICAgfSwKIAogICAgIF9vbk1vdXNlTW92ZTogZnVu
Y3Rpb24oZXZlbnQpCiAgICAgeworICAgICAgICBpZiAoZXZlbnQucGFnZVggPT09IHRoaXMuX2xh
c3RNb3VzZVggJiYgZXZlbnQucGFnZVkgPT09IHRoaXMuX2xhc3RNb3VzZVkpCisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIHRoaXMuX2xhc3RNb3VzZVggPSBldmVudC5wYWdlWDsKKyAgICAg
ICAgdGhpcy5fbGFzdE1vdXNlWSA9IGV2ZW50LnBhZ2VZOwogICAgICAgICB2YXIgaXRlbUVsZW1l
bnQgPSBldmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygiaXRlbSIpOwog
ICAgICAgICBpZiAoIWl0ZW1FbGVtZW50KQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB0
aGlzLl91cGRhdGVTZWxlY3Rpb24oaXRlbUVsZW1lbnQpOwotICAgIH0sCi0KLSAgICBfb25TY3Jv
bGw6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIGlmICh0aGlzLl9xdWVyeSkKLSAgICAgICAg
ICAgIHRoaXMuX2hpZ2hsaWdodEl0ZW1zKHRoaXMuX3F1ZXJ5KTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgdGhpcy5fY2xlYXJIaWdobGlnaHQoKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAg
ICogQHBhcmFtIHtzdHJpbmd9IHF1ZXJ5Ci0gICAgICovCi0gICAgX2hpZ2hsaWdodEl0ZW1zOiBm
dW5jdGlvbihxdWVyeSkKLSAgICB7Ci0gICAgICAgIHZhciByZWdleCA9IHRoaXMuX2NyZWF0ZVNl
YXJjaFJlZ0V4cChxdWVyeSwgdHJ1ZSk7Ci0gICAgICAgIHZhciBlbGVtZW50c1RvSGlnaGxpZ2h0
ID0gW107Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fZGVsZWdhdGUuaXRlbXND
b3VudCgpOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBpdGVtRWxlbWVudCA9IHRoaXMuX2l0ZW1F
bGVtZW50c1tpXTsKLSAgICAgICAgICAgIGlmICh0aGlzLl9pdGVtRWxlbWVudFZpc2libGUoaXRl
bUVsZW1lbnQpICYmIHRoaXMuX2l0ZW1FbGVtZW50SW5WaWV3cG9ydChpdGVtRWxlbWVudCkpCi0g
ICAgICAgICAgICAgICAgZWxlbWVudHNUb0hpZ2hsaWdodC5wdXNoKGl0ZW1FbGVtZW50KTsKLSAg
ICAgICAgfQotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGVsZW1lbnRzVG9IaWdobGlnaHQu
bGVuZ3RoOyArK2kpCi0gICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRJdGVtKGVsZW1lbnRzVG9I
aWdobGlnaHRbaV0sIHJlZ2V4KTsKLSAgICB9LAotCi0gICAgX2NsZWFySGlnaGxpZ2h0OiBmdW5j
dGlvbigpCi0gICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2RlbGVnYXRl
Lml0ZW1zQ291bnQoKTsgKytpKQotICAgICAgICAgICAgdGhpcy5fY2xlYXJFbGVtZW50SGlnaGxp
Z2h0KHRoaXMuX2l0ZW1FbGVtZW50c1tpXSk7CisgICAgICAgIHRoaXMuX3VwZGF0ZVNlbGVjdGlv
bihpdGVtRWxlbWVudC5faW5kZXgpOwogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0g
e0VsZW1lbnR9IGl0ZW1FbGVtZW50CisgICAgICogQHJldHVybiB7bnVtYmVyfQogICAgICAqLwot
ICAgIF9jbGVhckVsZW1lbnRIaWdobGlnaHQ6IGZ1bmN0aW9uKGl0ZW1FbGVtZW50KQorICAgIGl0
ZW1Db3VudDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdmFyIGNoYW5nZXMgPSB0aGlzLl9l
bGVtZW50SGlnaGxpZ2h0Q2hhbmdlcy5nZXQoaXRlbUVsZW1lbnQpCi0gICAgICAgIGlmIChjaGFu
Z2VzKSB7Ci0gICAgICAgICAgICBXZWJJbnNwZWN0b3IucmV2ZXJ0RG9tQ2hhbmdlcyhjaGFuZ2Vz
KTsKLSAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRIaWdobGlnaHRDaGFuZ2VzLnJlbW92ZShpdGVt
RWxlbWVudCk7Ci0gICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlcmVkSXRlbXMu
bGVuZ3RoOwogICAgIH0sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0VsZW1lbnR9IGl0ZW1F
bGVtZW50Ci0gICAgICogQHBhcmFtIHtSZWdFeHB9IHJlZ2V4Ci0gICAgICovCi0gICAgX2hpZ2hs
aWdodEl0ZW06IGZ1bmN0aW9uKGl0ZW1FbGVtZW50LCByZWdleCkKLSAgICB7Ci0gICAgICAgIHRo
aXMuX2NsZWFyRWxlbWVudEhpZ2hsaWdodChpdGVtRWxlbWVudCk7Ci0KLSAgICAgICAgdmFyIGtl
eSA9IHRoaXMuX2RlbGVnYXRlLml0ZW1LZXlBdCh0aGlzLl9lbGVtZW50SW5kZXhlcy5nZXQoaXRl
bUVsZW1lbnQpKTsKLSAgICAgICAgdmFyIHJhbmdlcyA9IFtdOwotCi0gICAgICAgIHZhciBtYXRj
aDsKLSAgICAgICAgd2hpbGUgKChtYXRjaCA9IHJlZ2V4LmV4ZWMoa2V5KSkgIT09IG51bGwgJiYg
bWF0Y2hbMF0pIHsKLSAgICAgICAgICAgIHJhbmdlcy5wdXNoKHsgb2Zmc2V0OiBtYXRjaC5pbmRl
eCwgbGVuZ3RoOiByZWdleC5sYXN0SW5kZXggLSBtYXRjaC5pbmRleCB9KTsKLSAgICAgICAgfQot
Ci0gICAgICAgIHZhciBjaGFuZ2VzID0gW107Ci0gICAgICAgIFdlYkluc3BlY3Rvci5oaWdobGln
aHRSYW5nZXNXaXRoU3R5bGVDbGFzcyhpdGVtRWxlbWVudCwgcmFuZ2VzLCAiaGlnaGxpZ2h0Iiwg
Y2hhbmdlcyk7Ci0KLSAgICAgICAgaWYgKGNoYW5nZXMubGVuZ3RoKQotICAgICAgICAgICAgdGhp
cy5fZWxlbWVudEhpZ2hsaWdodENoYW5nZXMucHV0KGl0ZW1FbGVtZW50LCBjaGFuZ2VzKTsKLSAg
ICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtFbGVtZW50fSBpdGVtRWxlbWVudAotICAg
ICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICogQHBhcmFtIHtudW1iZXJ9IGluZGV4CisgICAg
ICogQHJldHVybiB7RWxlbWVudH0KICAgICAgKi8KLSAgICBfaXRlbUVsZW1lbnRJblZpZXdwb3J0
OiBmdW5jdGlvbihpdGVtRWxlbWVudCkKKyAgICBpdGVtRWxlbWVudDogZnVuY3Rpb24oaW5kZXgp
CiAgICAgewotICAgICAgICBpZiAoaXRlbUVsZW1lbnQub2Zmc2V0VG9wICsgdGhpcy5faXRlbUhl
aWdodCA8IHRoaXMuX2l0ZW1FbGVtZW50c0NvbnRhaW5lci5zY3JvbGxUb3ApCi0gICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGlmIChpdGVtRWxlbWVudC5vZmZzZXRUb3AgPiB0aGlz
Ll9pdGVtRWxlbWVudHNDb250YWluZXIuc2Nyb2xsVG9wICsgdGhpcy5faXRlbUhlaWdodCAqICh0
aGlzLl9yb3dzUGVyVmlld3BvcnQgKyAxKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIHZhciBkZWxlZ2F0ZUluZGV4ID0gdGhpcy5fZmls
dGVyZWRJdGVtc1tpbmRleF07CisgICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGVJdGVtRWxlbWVu
dChkZWxlZ2F0ZUluZGV4KTsgCiAgICAgfSwKIAogICAgIF9fcHJvdG9fXzogV2ViSW5zcGVjdG9y
LkRpYWxvZ0RlbGVnYXRlLnByb3RvdHlwZQpAQCAtNjM2LDcgKzUzOSwxMSBAQCBXZWJJbnNwZWN0
b3IuT3BlblJlc291cmNlRGlhbG9nID0gZnVuY3Rpb24ocGFuZWwpCiAgICAgewogICAgICAgICBy
ZXR1cm4gdWlTb3VyY2VDb2RlMS5wYXJzZWRVUkwubGFzdFBhdGhDb21wb25lbnQuY29tcGFyZVRv
KHVpU291cmNlQ29kZTIucGFyc2VkVVJMLmxhc3RQYXRoQ29tcG9uZW50KTsKICAgICB9Ci0gICAg
dGhpcy5fdWlTb3VyY2VDb2Rlcy5zb3J0KGNvbXBhcmVGdW5jdGlvbik7CisgICAgaWYgKHRoaXMu
X3VpU291cmNlQ29kZXMubGVuZ3RoID4gMTAwMCkgeworICAgICAgICB0aGlzLl91aVNvdXJjZUNv
ZGVzLnNvcnRSYW5nZShjb21wYXJlRnVuY3Rpb24sIDAsIHRoaXMuX3VpU291cmNlQ29kZXMubGVu
Z3RoIC0gMSwgMTAwMCk7CisgICAgICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7IHRoaXMuX3Vp
U291cmNlQ29kZXMuc29ydChjb21wYXJlRnVuY3Rpb24pOyB9LmJpbmQodGhpcyksIDApOworICAg
IH0gZWxzZQorICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVzLnNvcnQoY29tcGFyZUZ1bmN0aW9u
KTsKIH0KIAogV2ViSW5zcGVjdG9yLk9wZW5SZXNvdXJjZURpYWxvZy5wcm90b3R5cGUgPSB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1ZpZXdwb3J0Q29u
dHJvbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVmlld3BvcnRDb250
cm9sLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVhNjhmOGExZDBlYWRhOTk4MzQ3N2NkMzAyNjE4MTMzOTg1Y2I4
YmMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1ZpZXdwb3J0Q29udHJvbC5qcwpAQCAtMCwwICsxLDE1OSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMyBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisg
KiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2Yg
aXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHBy
b2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHBy
aW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAor
ICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8qKgorICogQGNvbnN0cnVjdG9y
CisgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wuUHJvdmlkZXJ9IHByb3Zp
ZGVyCisgKi8KK1dlYkluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wgPSBmdW5jdGlvbihwcm92aWRl
cikKK3sKKyAgICB0aGlzLmVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICB0aGlzLmVsZW1lbnQuY2xhc3NOYW1lID0gImZpbGwiOworICAgIHRoaXMuZWxlbWVudC5z
dHlsZS5vdmVyZmxvdyA9ICJhdXRvIjsKKyAgICB0aGlzLl90b3BHYXBFbGVtZW50ID0gdGhpcy5l
bGVtZW50LmNyZWF0ZUNoaWxkKCJkaXYiKTsKKyAgICB0aGlzLl9jb250ZW50RWxlbWVudCA9IHRo
aXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2Iik7CisgICAgdGhpcy5fYm90dG9tR2FwRWxlbWVu
dCA9IHRoaXMuZWxlbWVudC5jcmVhdGVDaGlsZCgiZGl2Iik7CisKKyAgICB0aGlzLl9wcm92aWRl
ciA9IHByb3ZpZGVyOworICAgIHRoaXMuZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwi
LCB0aGlzLl9vblNjcm9sbC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgdGhpcy5fZmlyc3RWaXNp
YmxlSW5kZXggPSAwOworICAgIHRoaXMuX2xhc3RWaXNpYmxlSW5kZXggPSAwOworfQorCisvKioK
KyAqIEBpbnRlcmZhY2UKKyAqLworV2ViSW5zcGVjdG9yLlZpZXdwb3J0Q29udHJvbC5Qcm92aWRl
ciA9IGZ1bmN0aW9uKCkgCit7Cit9CisKK1dlYkluc3BlY3Rvci5WaWV3cG9ydENvbnRyb2wuUHJv
dmlkZXIucHJvdG90eXBlID0geyAKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtudW1iZXJ9Cisg
ICAgICovCisgICAgaXRlbUNvdW50OiBmdW5jdGlvbigpIHsgcmV0dXJuIDA7IH0sCisKKyAgICAv
KioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gaW5kZXgKKyAgICAgKiBAcmV0dXJuIHtFbGVtZW50
fQorICAgICAqLworICAgIGl0ZW1FbGVtZW50OiBmdW5jdGlvbihpbmRleCkgeyByZXR1cm4gbnVs
bDsgfQorfQorCitXZWJJbnNwZWN0b3IuVmlld3BvcnRDb250cm9sLnByb3RvdHlwZSA9IHsKKyAg
ICAvKioKKyAgICAgKiBAcmV0dXJuIHtFbGVtZW50fQorICAgICAqLworICAgIGNvbnRlbnRFbGVt
ZW50OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudEVsZW1l
bnQ7CisgICAgfSwKKworICAgIHJlZnJlc2g6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZh
ciBpdGVtQ291bnQgPSB0aGlzLl9wcm92aWRlci5pdGVtQ291bnQoKTsKKworICAgICAgICBpZiAo
IXRoaXMuX3Jvd0hlaWdodCkgeworICAgICAgICAgICAgdmFyIGZpcnN0RWxlbWVudCA9IHRoaXMu
X3Byb3ZpZGVyLml0ZW1FbGVtZW50KDApOworICAgICAgICAgICAgdGhpcy5fcm93SGVpZ2h0ID0g
Zmlyc3RFbGVtZW50Lm1lYXN1cmVQcmVmZXJyZWRTaXplKCkuaGVpZ2h0OworICAgICAgICB9CisK
KyAgICAgICAgdmFyIHZpc2libGVGcm9tID0gdGhpcy5lbGVtZW50LnNjcm9sbFRvcDsKKyAgICAg
ICAgdmFyIHZpc2libGVUbyA9IHZpc2libGVGcm9tICsgdGhpcy5lbGVtZW50LmNsaWVudEhlaWdo
dDsKKworICAgICAgICB0aGlzLl9maXJzdFZpc2libGVJbmRleCA9IE1hdGguZmxvb3IodmlzaWJs
ZUZyb20gLyB0aGlzLl9yb3dIZWlnaHQpOworICAgICAgICB0aGlzLl9sYXN0VmlzaWJsZUluZGV4
ID0gTWF0aC5tYXgoMCwgTWF0aC5taW4oTWF0aC5jZWlsKHZpc2libGVUbyAvIHRoaXMuX3Jvd0hl
aWdodCksIGl0ZW1Db3VudCkgLSAxKTsKKyAgICAgICAgdGhpcy5fdG9wR2FwRWxlbWVudC5zdHls
ZS5oZWlnaHQgPSAodGhpcy5fcm93SGVpZ2h0ICogdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXgpICsg
InB4IjsKKyAgICAgICAgdGhpcy5fYm90dG9tR2FwRWxlbWVudC5zdHlsZS5oZWlnaHQgPSAodGhp
cy5fcm93SGVpZ2h0ICogKGl0ZW1Db3VudCAtIHRoaXMuX2xhc3RWaXNpYmxlSW5kZXggLSAxKSkg
KyAicHgiOyAKKworICAgICAgICB0aGlzLl9jb250ZW50RWxlbWVudC5yZW1vdmVDaGlsZHJlbigp
OworICAgICAgICBmb3IgKHZhciBpID0gdGhpcy5fZmlyc3RWaXNpYmxlSW5kZXg7IGkgPD0gdGhp
cy5fbGFzdFZpc2libGVJbmRleDsgKytpKQorICAgICAgICAgICAgdGhpcy5fY29udGVudEVsZW1l
bnQuYXBwZW5kQ2hpbGQodGhpcy5fcHJvdmlkZXIuaXRlbUVsZW1lbnQoaSkpOworICAgIH0sCisK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0V2ZW50fSBldmVudAorICAgICAqLworICAgIF9vblNj
cm9sbDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAgICB0aGlzLnJlZnJlc2goKTsKKyAg
ICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7bnVtYmVyfQorICAgICAqLworICAgIHJv
d3NQZXJWaWV3cG9ydDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIE1hdGguZmxv
b3IodGhpcy5lbGVtZW50LmNsaWVudEhlaWdodCAvIHRoaXMuX3Jvd0hlaWdodCk7CisgICAgfSwK
KworICAgIC8qKgorICAgICAqIEByZXR1cm4ge251bWJlcn0KKyAgICAgKi8KKyAgICBmaXJzdFZp
c2libGVJbmRleDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2ZpcnN0
VmlzaWJsZUluZGV4OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtudW1iZXJ9
CisgICAgICovCisgICAgbGFzdFZpc2libGVJbmRleDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2xhc3RWaXNpYmxlSW5kZXg7CisgICAgfSwKKworICAgIC8qKgorICAg
ICAqIEByZXR1cm4gez9FbGVtZW50fQorICAgICAqLworICAgIHJlbmRlcmVkRWxlbWVudEF0OiBm
dW5jdGlvbihpbmRleCkKKyAgICB7CisgICAgICAgIGlmIChpbmRleCA8IHRoaXMuX2ZpcnN0Vmlz
aWJsZUluZGV4KQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIGlmIChpbmRleCA+
IHRoaXMuX2xhc3RWaXNpYmxlSW5kZXgpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAg
ICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRFbGVtZW50LmNoaWxkTm9kZXNbaW5kZXggLSB0aGlzLl9m
aXJzdFZpc2libGVJbmRleF07CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVt
YmVyfSBpbmRleAorICAgICAqIEBwYXJhbSB7Ym9vbGVhbj19IG1ha2VMYXN0CisgICAgICovCisg
ICAgc2Nyb2xsSXRlbUludG9WaWV3OiBmdW5jdGlvbihpbmRleCwgbWFrZUxhc3QpCisgICAgewor
ICAgICAgICBpZiAoaW5kZXggPiB0aGlzLl9maXJzdFZpc2libGVJbmRleCAmJiBpbmRleCA8IHRo
aXMuX2xhc3RWaXNpYmxlSW5kZXgpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYg
KG1ha2VMYXN0KQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMuX3Jv
d0hlaWdodCAqIChpbmRleCArIDEpIC0gdGhpcy5lbGVtZW50LmNsaWVudEhlaWdodDsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgdGhpcy5lbGVtZW50LnNjcm9sbFRvcCA9IHRoaXMuX3Jvd0hl
aWdodCAqIGluZGV4OworICAgIH0KK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvV2ViS2l0LnFyYwppbmRleCBlMWIwYjMwMTkwYWU3MzhhYWU3MDJiYWFjNTlhNzBlNjE3
MzJjZDZiLi40MDBkMDNmZjdkYmU0ZTI1ZDMzNmU1NTk5YmI2Y2M3N2JiMzIxNTlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC0yMjQsNiAr
MjI0LDcgQEAKICAgICA8ZmlsZT5Vc2VyTWV0cmljcy5qczwvZmlsZT4KICAgICA8ZmlsZT51dGls
aXRpZXMuanM8L2ZpbGU+CiAgICAgPGZpbGU+Vmlldy5qczwvZmlsZT4KKyAgICA8ZmlsZT5WaWV3
cG9ydENvbnRyb2wuanM8L2ZpbGU+CiAgICAgPGZpbGU+V2F0Y2hFeHByZXNzaW9uc1NpZGViYXJQ
YW5lLmpzPC9maWxlPgogICAgIDxmaWxlPldvcmtlck1hbmFnZXIuanM8L2ZpbGU+CiAgICAgPGZp
bGU+V29ya2Vyc1NpZGViYXJQYW5lLmpzPC9maWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9maWx0ZXJlZEl0ZW1TZWxlY3Rpb25EaWFsb2cuY3NzIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9maWx0ZXJlZEl0ZW1TZWxlY3Rpb25E
aWFsb2cuY3NzCmluZGV4IDM2NTEwNzEyYTM2YjRhMjYzZTA2MDY3Y2JhNWEyMDA2Y2RkYzliZjEu
LjVmMTMxNzYwNTUzM2UxZTUyYTI5MGFiNTRiNTg4ZDEzMmFmZGRmMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvZmlsdGVyZWRJdGVtU2VsZWN0aW9uRGlh
bG9nLmNzcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2ZpbHRlcmVk
SXRlbVNlbGVjdGlvbkRpYWxvZy5jc3MKQEAgLTM3LDExICszNywxMSBAQAogICAgIGZsb2F0OiBy
aWdodDsKIH0KIAotLmpzLW91dGxpbmUtZGlhbG9nID4gLmNvbnRhaW5lciA+IGRpdi5pdGVtLnNl
bGVjdGVkIHsKKy5qcy1vdXRsaW5lLWRpYWxvZyAuY29udGFpbmVyIGRpdi5pdGVtLnNlbGVjdGVk
IHsKICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2IoMjI0LCAyMjQsIDIyNCk7CiB9CiAKLS5qcy1v
dXRsaW5lLWRpYWxvZyA+IC5jb250YWluZXIgPiBkaXYuaXRlbSBzcGFuLmhpZ2hsaWdodCB7Cisu
anMtb3V0bGluZS1kaWFsb2cgLmNvbnRhaW5lciBkaXYuaXRlbSBzcGFuLmhpZ2hsaWdodCB7CiAg
ICAgY29sb3I6IGJsYWNrOwogICAgIGZvbnQtd2VpZ2h0OiBib2xkOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggNTQ2MTFj
ZGQ1OWI0MjRkODJkYjVhNzlmY2I1MzAyNzY4NTljYzBlZC4uNDE0YmNkZTQ1MTZhMWVhM2JhMmYy
MWUyY2U1MDFmODk5YmFkMmIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sCkBAIC02MCw2ICs2MCw3IEBAIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iUG9wb3Zlci5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iUGxhY2FyZC5qcyI+PC9z
Y3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVGFiYmVkUGFu
ZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
Vmlld3BvcnRDb250cm9sLmpzIj48L3NjcmlwdD4gCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0iRHJhd2VyLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJDb25zb2xlTW9kZWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkNvbnNvbGVNZXNzYWdlLmpzIj48L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvdXRpbGl0
aWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMK
aW5kZXggNzY1NWYxNDYzMTg3OTEzMTA0ZjAzOWNmMjkwMjVlMGU4NGE1ZWI4Mi4uNmQ0ZTEzNTEw
MzZlYjUxYzIxZTdmZGRlZTI5MTEzOGJlMTc4YWY0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAgLTMyOSw3ICszMjksNyBAQCB2YXIg
c29ydFJhbmdlID0gewogICAgICAgICAgICAgICAgIHF1aWNrU29ydEZpcnN0SyhhcnJheSwgY29t
cGFyYXRvciwgcGl2b3ROZXdJbmRleCArIDEsIHJpZ2h0LCBrKTsKICAgICAgICAgfQogCi0gICAg
ICAgIGlmIChsZWZ0Qm91bmQgPT09IDAgJiYgcmlnaHRCb3VuZCA9PT0gKHRoaXMubGVuZ3RoIC0g
MSkgJiYgayA9PT0gdGhpcy5sZW5ndGgpCisgICAgICAgIGlmIChsZWZ0Qm91bmQgPT09IDAgJiYg
cmlnaHRCb3VuZCA9PT0gKHRoaXMubGVuZ3RoIC0gMSkgJiYgayA+PSB0aGlzLmxlbmd0aCkKICAg
ICAgICAgICAgIHRoaXMuc29ydChjb21wYXJhdG9yKTsKICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgcXVpY2tTb3J0Rmlyc3RLKHRoaXMsIGNvbXBhcmF0b3IsIGxlZnRCb3VuZCwgcmlnaHRCb3Vu
ZCwgayk7Cg==
</data>
<flag name="review"
          id="204498"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>