<?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>92373</bug_id>
          
          <creation_ts>2012-07-26 05:54:14 -0700</creation_ts>
          <short_desc>Web Inspector: Move formatting support from JavaScriptSource to UISourceCode.</short_desc>
          <delta_ts>2012-07-27 01:50:57 -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 (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>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>679222</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-26 05:54:14 -0700</bug_when>
    <thetext>Patch to follow</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679223</commentid>
    <comment_count>1</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-26 05:54:59 -0700</bug_when>
    <thetext>This change will allow us to support CSS formatting and simplify UISourceCode code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679301</commentid>
    <comment_count>2</comment_count>
      <attachid>154649</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-26 07:24:26 -0700</bug_when>
    <thetext>Created attachment 154649
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>679382</commentid>
    <comment_count>3</comment_count>
      <attachid>154649</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-07-26 08:59:04 -0700</bug_when>
    <thetext>Comment on attachment 154649
Patch

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

&gt; Source/WebCore/inspector/front-end/JavaScriptSource.js:51
&gt;      uiLocationToRawLocation: function(lineNumber, columnNumber)

I don&apos;t think you need this method.

&gt; Source/WebCore/inspector/front-end/Script.js:223
&gt; +    uiLocation: function()

This looks like a great self-contained change.

&gt; Source/WebCore/inspector/front-end/ScriptFormatter.js:35
&gt; +WebInspector.Formatter = function(workerURL)

I don&apos;t think we should imply that the formatter is implemented using worker.

&gt; Source/WebCore/inspector/front-end/UISourceCode.js:411
&gt; +    uiLocationToRawLocation: function(lineNumber, columnNumber)

You should move it back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>680307</commentid>
    <comment_count>4</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-07-27 01:50:57 -0700</bug_when>
    <thetext>Committed r123852: &lt;http://trac.webkit.org/changeset/123852&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>154649</attachid>
            <date>2012-07-26 07:24:26 -0700</date>
            <delta_ts>2012-07-26 08:59:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-92373-20120726182414.patch</filename>
            <type>text/plain</type>
            <size>27448</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzNzE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmVhOGNkNWMxZjYxMzJk
OGFhNjYyZTNlMzI3M2ExZTRmNmZhMGZlYi4uZjRkNThlZmQ4YWIzNWQzNjZjYzM2MTc4MWIwOTI4
ZjE0MTBhN2M0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1IEBACisyMDEyLTA3LTI2ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE1vdmUgZm9ybWF0dGluZyBzdXBwb3J0IGZyb20gSmF2YVNjcmlwdFNvdXJjZSB0byBVSVNv
dXJjZUNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD05MjM3MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IE1vdmVkIGZvcm1hdHRpbmcgc3VwcG9ydCBmcm9tIEphdmFTY3JpcHRTb3VyY2UgdG8gVUlTb3Vy
Y2VDb2RlLgorICAgICAgICBSZW5hbWVkIFNjcmlwdEZvcm1hdHRlciB0byBGb3JtYXR0ZXIgYW5k
IHBhcmFtZXRyaXplZCBpdCB3aXRoIHRoZSBGb3JtYXR0ZXJXb3JrZXIgdXJsLgorICAgICAgICBJ
bnRyb2R1Y2VkIHZpcnR1YWwgY3JlYXRlRm9ybWF0dGVyKCkgYW5kIGZvcm1hdHRlZENoYW5nZWQo
KSBtZXRob2RzIG9uIFVJU291cmNlQ29kZS4KKyAgICAgICAgSW50cm9kdWNlZCBhYnN0cmFjdCBM
aXZlTG9jYXRpb24gaW1wbGVtZW50ZWQgYnkgU2NyaXB0LkxvY2F0aW9uLgorCisgICAgICAgICog
aW5zcGVjdG9yL2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlLmpzOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkphdmFTY3JpcHRTb3VyY2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3Jp
cHRTb3VyY2UucHJvdG90eXBlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlLnByb3RvdHlwZS5icmVha3BvaW50U3RvcmFnZUlk
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlLnByb3RvdHlwZS5zZWFy
Y2hJbkNvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UucHJv
dG90eXBlLmNyZWF0ZUZvcm1hdHRlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuSmF2YVNjcmlw
dFNvdXJjZS5wcm90b3R5cGUuZm9ybWF0dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU2NyaXB0Rm9ybWF0dGVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1Njcmlw
dC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQuTG9jYXRpb24pOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNjcmlwdC5Mb2NhdGlvbi5wcm90b3R5cGUudWlMb2NhdGlvbik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0LkxvY2F0aW9uLnByb3RvdHlwZS5kaXNwb3NlKToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlci5qczoKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Gb3JtYXR0ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZvcm1hdHRl
ci5sb2NhdGlvblRvUG9zaXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZvcm1hdHRlci5w
b3NpdGlvblRvTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZvcm1hdHRlci5wcm90
b3R5cGUuZ2V0IF93b3JrZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZvcm1hdHRlclNvdXJj
ZU1hcHBpbmdJbXBsLnByb3RvdHlwZS5vcmlnaW5hbFRvRm9ybWF0dGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Gb3JtYXR0ZXJTb3VyY2VNYXBwaW5nSW1wbC5wcm90b3R5cGUuZm9ybWF0dGVk
VG9PcmlnaW5hbCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLnJlcXVlc3RDb250ZW50KToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLl9maXJlQ29udGVudEF2YWlsYWJs
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS51aUxvY2F0
aW9uVG9SYXdMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnBy
b3RvdHlwZS5vdmVycmlkZUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGUucHJvdG90eXBlLnRvZ2dsaW5nRm9ybWF0dGVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLmZvcm1hdHRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5zZXRGb3JtYXR0ZWQuaWYpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUuc2V0Rm9ybWF0dGVkLmRpZEdldENvbnRl
bnQuZm9ybWF0dGVkQ2hhbmdlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
LnByb3RvdHlwZS5zZXRGb3JtYXR0ZWQuZGlkR2V0Q29udGVudCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5zZXRGb3JtYXR0ZWQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUuY3JlYXRlRm9ybWF0dGVyKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLmZvcm1hdHRlZENoYW5nZWQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxpdmVMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuTGl2ZUxvY2F0aW9uLnByb3RvdHlwZS51cGRhdGUpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkxpdmVMb2NhdGlvbi5wcm90b3R5cGUucmF3TG9jYXRpb24pOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLkxpdmVMb2NhdGlvbi5wcm90b3R5cGUudWlMb2NhdGlvbik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTGl2ZUxvY2F0aW9uLnByb3RvdHlwZS5kaXNwb3NlKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sOgorCiAyMDEyLTA3LTI2ICBTaGVyaWZmIEJv
dCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBy
b2xsaW5nIG91dCByMTIzNzE1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9KYXZhU2NyaXB0U291cmNlLmpzCmluZGV4IDUzYWZjOTA2ZjNkZTIxMzUzNTU2
Mzg3ZTgyMjcxODVlMmY4ZmNmMWEuLmJmYmE4YmNhYjQxM2UxM2M5NjgxMGE1M2I2NTI0Njk3N2Fk
YTU4ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSmF2
YVNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0phdmFTY3JpcHRTb3VyY2UuanMKQEAgLTQwLDEyNyArNDAsMjIgQEAgV2ViSW5zcGVjdG9yLkph
dmFTY3JpcHRTb3VyY2UgPSBmdW5jdGlvbih1cmwsIHJlc291cmNlLCBjb250ZW50UHJvdmlkZXIs
IHNvdXJjZU0KIHsKICAgICBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLmNhbGwodGhpcywgdXJs
LCByZXNvdXJjZSwgY29udGVudFByb3ZpZGVyLCBzb3VyY2VNYXBwaW5nKTsKICAgICB0aGlzLl9p
c0VkaXRhYmxlID0gaXNFZGl0YWJsZTsKLQotICAgIHRoaXMuX2Zvcm1hdHRlck1hcHBpbmcgPSBu
ZXcgV2ViSW5zcGVjdG9yLklkZW50aXR5Rm9ybWF0dGVyU291cmNlTWFwcGluZygpOwotICAgIC8v
IEZJWE1FOiBwb3N0cG9uZSBicmVha3BvaW50cyByZXN0b3JlIHRvIGFmdGVyIHRoZSBtYXBwaW5n
IGhhcyBiZWVuIGVzdGFibGlzaGVkLgotICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Ci0gICAg
ICAgIGlmICghdGhpcy5fZm9ybWF0dGVkKQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmJyZWFr
cG9pbnRNYW5hZ2VyLnJlc3RvcmVCcmVha3BvaW50cyh0aGlzKTsKLSAgICB9LmJpbmQodGhpcyks
IDApOwogfQogCiBXZWJJbnNwZWN0b3IuSmF2YVNjcmlwdFNvdXJjZS5wcm90b3R5cGUgPSB7CiAg
ICAgLyoqCi0gICAgICogQHBhcmFtIHs/c3RyaW5nfSBjb250ZW50Ci0gICAgICogQHBhcmFtIHti
b29sZWFufSBjb250ZW50RW5jb2RlZAotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtaW1lVHlwZQot
ICAgICAqLwotICAgIGZpcmVDb250ZW50QXZhaWxhYmxlOiBmdW5jdGlvbihjb250ZW50LCBjb250
ZW50RW5jb2RlZCwgbWltZVR5cGUpCi0gICAgewotICAgICAgICBXZWJJbnNwZWN0b3IuVUlTb3Vy
Y2VDb2RlLnByb3RvdHlwZS5maXJlQ29udGVudEF2YWlsYWJsZS5jYWxsKHRoaXMsIGNvbnRlbnQs
IGNvbnRlbnRFbmNvZGVkLCBtaW1lVHlwZSk7Ci0gICAgICAgIGlmICh0aGlzLl9mb3JtYXRPbkxv
YWQpIHsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9mb3JtYXRPbkxvYWQ7Ci0gICAgICAgICAg
ICB0aGlzLnNldEZvcm1hdHRlZCh0cnVlKTsKLSAgICAgICAgfQotICAgIH0sCi0KLSAgICAvKioK
LSAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGZvcm1hdHRlZAotICAgICAqIEBwYXJhbSB7ZnVuY3Rp
b24oKT19IGNhbGxiYWNrCi0gICAgICovCi0gICAgc2V0Rm9ybWF0dGVkOiBmdW5jdGlvbihmb3Jt
YXR0ZWQsIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgY2FsbGJhY2sgPSBjYWxsYmFjayB8fCBm
dW5jdGlvbigpIHt9OwotICAgICAgICBpZiAoIXRoaXMuY29udGVudExvYWRlZCgpKSB7Ci0gICAg
ICAgICAgICB0aGlzLl9mb3JtYXRPbkxvYWQgPSBmb3JtYXR0ZWQ7Ci0gICAgICAgICAgICBjYWxs
YmFjaygpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKHRo
aXMuX2Zvcm1hdHRlZCA9PT0gZm9ybWF0dGVkKSB7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgdGhpcy5fZm9ybWF0dGVk
ID0gZm9ybWF0dGVkOwotCi0gICAgICAgIC8vIFJlLXJlcXVlc3QgY29udGVudAotICAgICAgICB0
aGlzLl9jb250ZW50TG9hZGVkID0gZmFsc2U7Ci0gICAgICAgIHRoaXMuX2NvbnRlbnQgPSBmYWxz
ZTsKLSAgICAgICAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUucmVxdWVzdENv
bnRlbnQuY2FsbCh0aGlzLCBkaWRHZXRDb250ZW50LmJpbmQodGhpcykpOwotICAKLSAgICAgICAg
LyoqCi0gICAgICAgICAqIEB0aGlzIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlfQotICAgICAg
ICAgKiBAcGFyYW0gez9zdHJpbmd9IGNvbnRlbnQKLSAgICAgICAgICogQHBhcmFtIHtib29sZWFu
fSBjb250ZW50RW5jb2RlZAotICAgICAgICAgKiBAcGFyYW0ge3N0cmluZ30gbWltZVR5cGUKLSAg
ICAgICAgICovCi0gICAgICAgIGZ1bmN0aW9uIGRpZEdldENvbnRlbnQoY29udGVudCwgY29udGVu
dEVuY29kZWQsIG1pbWVUeXBlKQotICAgICAgICB7Ci0gICAgICAgICAgICBpZiAoIWZvcm1hdHRl
ZCkgewotICAgICAgICAgICAgICAgIHRoaXMuX3RvZ2dsaW5nRm9ybWF0dGVyID0gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRDaGFuZ2VkKGNvbnRlbnQgfHwgIiIsIG1pbWVUeXBl
KTsKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5fdG9nZ2xpbmdGb3JtYXR0ZXI7Ci0gICAg
ICAgICAgICAgICAgdGhpcy5fZm9ybWF0dGVyTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuSWRl
bnRpdHlGb3JtYXR0ZXJTb3VyY2VNYXBwaW5nKCk7Ci0gICAgICAgICAgICAgICAgdGhpcy51cGRh
dGVMaXZlTG9jYXRpb25zKCk7Ci0gICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9Ci0gICAgCi0gICAgICAgICAgICB2YXIgZm9y
bWF0dGVyID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIoKTsKLSAgICAgICAgICAg
IGZvcm1hdHRlci5mb3JtYXRDb250ZW50KG1pbWVUeXBlLCBjb250ZW50IHx8ICIiLCBkaWRGb3Jt
YXRDb250ZW50LmJpbmQodGhpcykpOwotICAKLSAgICAgICAgICAgIC8qKgotICAgICAgICAgICAg
ICogQHRoaXMge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9Ci0gICAgICAgICAgICAgKiBAcGFy
YW0ge3N0cmluZ30gZm9ybWF0dGVkQ29udGVudAotICAgICAgICAgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuRm9ybWF0dGVyU291cmNlTWFwcGluZ30gZm9ybWF0dGVyTWFwcGluZwotICAgICAg
ICAgICAgICovCi0gICAgICAgICAgICBmdW5jdGlvbiBkaWRGb3JtYXRDb250ZW50KGZvcm1hdHRl
ZENvbnRlbnQsIGZvcm1hdHRlck1hcHBpbmcpCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgdGhpcy5fdG9nZ2xpbmdGb3JtYXR0ZXIgPSB0cnVlOwotICAgICAgICAgICAgICAgIHRoaXMu
Y29udGVudENoYW5nZWQoZm9ybWF0dGVkQ29udGVudCwgbWltZVR5cGUpOwotICAgICAgICAgICAg
ICAgIGRlbGV0ZSB0aGlzLl90b2dnbGluZ0Zvcm1hdHRlcjsKLSAgICAgICAgICAgICAgICB0aGlz
Ll9mb3JtYXR0ZXJNYXBwaW5nID0gZm9ybWF0dGVyTWFwcGluZzsKLSAgICAgICAgICAgICAgICB0
aGlzLnVwZGF0ZUxpdmVMb2NhdGlvbnMoKTsKLSAgICAgICAgICAgICAgICBXZWJJbnNwZWN0b3Iu
YnJlYWtwb2ludE1hbmFnZXIucmVzdG9yZUJyZWFrcG9pbnRzKHRoaXMpOwotICAgICAgICAgICAg
ICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9LAotCi0gICAg
LyoqCi0gICAgICogQHJldHVybiB7Ym9vbGVhbn0KLSAgICAgKi8KLSAgICB0b2dnbGluZ0Zvcm1h
dHRlcjogZnVuY3Rpb24oKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3RvZ2dsaW5nRm9y
bWF0dGVyOwotICAgIH0sCi0KLSAgICAvKioKICAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51
bWJlcgogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjb2x1bW5OdW1iZXIKICAgICAgKiBAcmV0dXJu
IHtXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5Mb2NhdGlvbn0KICAgICAgKi8KICAgICB1aUxv
Y2F0aW9uVG9SYXdMb2NhdGlvbjogZnVuY3Rpb24obGluZU51bWJlciwgY29sdW1uTnVtYmVyKQog
ICAgIHsKLSAgICAgICAgdmFyIGxvY2F0aW9uID0gdGhpcy5fZm9ybWF0dGVyTWFwcGluZy5mb3Jt
YXR0ZWRUb09yaWdpbmFsKGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcik7Ci0gICAgICAgIHZhciBy
YXdMb2NhdGlvbiA9IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlLnVpTG9jYXRp
b25Ub1Jhd0xvY2F0aW9uLmNhbGwodGhpcywgbG9jYXRpb25bMF0sIGxvY2F0aW9uWzFdKTsKKyAg
ICAgICAgdmFyIHJhd0xvY2F0aW9uID0gV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5
cGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24uY2FsbCh0aGlzLCBsaW5lTnVtYmVyLCBjb2x1bW5O
dW1iZXIpOwogICAgICAgICB2YXIgZGVidWdnZXJNb2RlbExvY2F0aW9uID0gLyoqIEB0eXBlIHtX
ZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5Mb2NhdGlvbn0gKi8gcmF3TG9jYXRpb247CiAgICAg
ICAgIHJldHVybiBkZWJ1Z2dlck1vZGVsTG9jYXRpb247CiAgICAgfSwKIAogICAgIC8qKgotICAg
ICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlVJTG9jYXRpb259IHVpTG9jYXRpb24KLSAgICAgKi8K
LSAgICBvdmVycmlkZUxvY2F0aW9uOiBmdW5jdGlvbih1aUxvY2F0aW9uKQotICAgIHsKLSAgICAg
ICAgdmFyIGxvY2F0aW9uID0gdGhpcy5fZm9ybWF0dGVyTWFwcGluZy5vcmlnaW5hbFRvRm9ybWF0
dGVkKHVpTG9jYXRpb24ubGluZU51bWJlciwgdWlMb2NhdGlvbi5jb2x1bW5OdW1iZXIpOwotICAg
ICAgICB1aUxvY2F0aW9uLmxpbmVOdW1iZXIgPSBsb2NhdGlvblswXTsKLSAgICAgICAgdWlMb2Nh
dGlvbi5jb2x1bW5OdW1iZXIgPSBsb2NhdGlvblsxXTsKLSAgICAgICAgcmV0dXJuIHVpTG9jYXRp
b247Ci0gICAgfSwKLQotICAgIC8qKgogICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CiAgICAgICov
CiAgICAgc3VwcG9ydHNFbmFibGVkQnJlYWtwb2ludHNXaGlsZUVkaXRpbmc6IGZ1bmN0aW9uKCkK
QEAgLTE3Myw3ICs2OCw3IEBAIFdlYkluc3BlY3Rvci5KYXZhU2NyaXB0U291cmNlLnByb3RvdHlw
ZSA9IHsKICAgICAgKi8KICAgICBicmVha3BvaW50U3RvcmFnZUlkOiBmdW5jdGlvbigpCiAgICAg
ewotICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWF0dGVkID8gImRlb2JmdXNjYXRlZDoiICsgdGhp
cy51cmwgOiB0aGlzLnVybDsKKyAgICAgICAgcmV0dXJuIHRoaXMuZm9ybWF0dGVkKCkgPyAiZGVv
YmZ1c2NhdGVkOiIgKyB0aGlzLnVybCA6IHRoaXMudXJsOwogICAgIH0sCiAKICAgICAvKioKQEAg
LTIyMyw3ICsxMTgsMzEgQEAgV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UucHJvdG90eXBl
ID0gewogICAgICAgICB2YXIgY29udGVudCA9IHRoaXMuY29udGVudCgpOwogICAgICAgICB2YXIg
cHJvdmlkZXIgPSBjb250ZW50ID8gbmV3IFdlYkluc3BlY3Rvci5TdGF0aWNDb250ZW50UHJvdmlk
ZXIodGhpcy5fY29udGVudFByb3ZpZGVyLmNvbnRlbnRUeXBlKCksIGNvbnRlbnQpIDogdGhpcy5f
Y29udGVudFByb3ZpZGVyOwogICAgICAgICBwcm92aWRlci5zZWFyY2hJbkNvbnRlbnQocXVlcnks
IGNhc2VTZW5zaXRpdmUsIGlzUmVnZXgsIGNhbGxiYWNrKTsKKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLkZvcm1hdHRlcn0gZm9ybWF0dGVyCisgICAgICov
CisgICAgY3JlYXRlRm9ybWF0dGVyOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4g
bmV3IFdlYkluc3BlY3Rvci5Gb3JtYXR0ZXIoIlNjcmlwdEZvcm1hdHRlcldvcmtlci5qcyIpOwor
ICAgIH0sCisKKyAgICBmb3JtYXR0ZWRDaGFuZ2VkOiBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICBXZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIucmVzdG9yZUJyZWFrcG9pbnRzKHRoaXMp
OwogICAgIH0KIH0KIAogV2ViSW5zcGVjdG9yLkphdmFTY3JpcHRTb3VyY2UucHJvdG90eXBlLl9f
cHJvdG9fXyA9IFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlOworCisvKioKKyAq
IEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5Gb3JtYXR0ZXJ9CisgKi8K
K1dlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIgPSBmdW5jdGlvbigpCit7CisgICAgV2ViSW5z
cGVjdG9yLkZvcm1hdHRlci5jYWxsKHRoaXMsICJTY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMiKTsK
K30KKworV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5wcm90b3R5cGUuX19wcm90b19fID0g
V2ViSW5zcGVjdG9yLkZvcm1hdHRlci5wcm90b3R5cGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCmluZGV4IGU5NzNmYzUzMzlkZjFiMGM4OWU1OTk3N2Zl
OWZkMTM4OTIyNmYwOGUuLmQ5N2VkZjk0MjY1ZjViZTkwNzZkOTUwYWRiMDEzODM3YzVjZmQ1NWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Lmpz
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzCkBAIC0y
MDUsMzkgKzIwNSwzMSBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlwZSA9IHsKIAogLyoq
CiAgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9u
fQogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0fSBzY3JpcHQKICAqIEBwYXJhbSB7V2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuTG9jYXRpb259IHJhd0xvY2F0aW9uCiAgKiBAcGFyYW0g
e2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5VSUxvY2F0aW9uKTooYm9vbGVhbnx1bmRlZmluZWQpfSB1
cGRhdGVEZWxlZ2F0ZQogICovCiBXZWJJbnNwZWN0b3IuU2NyaXB0LkxvY2F0aW9uID0gZnVuY3Rp
b24oc2NyaXB0LCByYXdMb2NhdGlvbiwgdXBkYXRlRGVsZWdhdGUpCiB7CisgICAgV2ViSW5zcGVj
dG9yLkxpdmVMb2NhdGlvbi5jYWxsKHRoaXMsIHJhd0xvY2F0aW9uLCB1cGRhdGVEZWxlZ2F0ZSk7
CiAgICAgdGhpcy5fc2NyaXB0ID0gc2NyaXB0OwotICAgIHRoaXMuX3Jhd0xvY2F0aW9uID0gcmF3
TG9jYXRpb247Ci0gICAgdGhpcy5fdXBkYXRlRGVsZWdhdGUgPSB1cGRhdGVEZWxlZ2F0ZTsKLSAg
ICB0aGlzLl91aVNvdXJjZUNvZGVzID0gW107CiB9CiAKIFdlYkluc3BlY3Rvci5TY3JpcHQuTG9j
YXRpb24ucHJvdG90eXBlID0gewotICAgIHVwZGF0ZTogZnVuY3Rpb24oKQorICAgIC8qKgorICAg
ICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5VSUxvY2F0aW9ufQorICAgICAqLworICAgIHVpTG9j
YXRpb246IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciB1aUxvY2F0aW9uID0gdGhpcy5f
c2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKHRoaXMuX3Jhd0xvY2F0aW9uLmxpbmVOdW1i
ZXIsIHRoaXMuX3Jhd0xvY2F0aW9uLmNvbHVtbk51bWJlcik7Ci0gICAgICAgIGlmICh1aUxvY2F0
aW9uKSB7Ci0gICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdWlMb2NhdGlvbi51aVNvdXJj
ZUNvZGU7Ci0gICAgICAgICAgICBpZiAodGhpcy5fdWlTb3VyY2VDb2Rlcy5pbmRleE9mKHVpU291
cmNlQ29kZSkgPT09IC0xKSB7Ci0gICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLmFkZExpdmVM
b2NhdGlvbih0aGlzKTsKLSAgICAgICAgICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVzLnB1c2go
dWlTb3VyY2VDb2RlKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHZhciBvbmVUaW1lID0g
dGhpcy5fdXBkYXRlRGVsZWdhdGUodWlMb2NhdGlvbik7Ci0gICAgICAgICAgICBpZiAob25lVGlt
ZSkKLSAgICAgICAgICAgICAgICB0aGlzLmRpc3Bvc2UoKTsKLSAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gdGhpcy5fc2NyaXB0LnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKHRoaXMucmF3TG9jYXRp
b24oKS5saW5lTnVtYmVyLCB0aGlzLnJhd0xvY2F0aW9uKCkuY29sdW1uTnVtYmVyKTsKICAgICB9
LAogCiAgICAgZGlzcG9zZTogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCB0aGlzLl91aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgdGhp
cy5fdWlTb3VyY2VDb2Rlc1tpXS5yZW1vdmVMaXZlTG9jYXRpb24odGhpcyk7Ci0gICAgICAgIHRo
aXMuX3VpU291cmNlQ29kZXMgPSBbXTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLkxpdmVMb2NhdGlv
bi5wcm90b3R5cGUuZGlzcG9zZS5jYWxsKHRoaXMpOwogICAgICAgICB0aGlzLl9zY3JpcHQuX2xv
Y2F0aW9ucy5yZW1vdmUodGhpcyk7CiAgICAgfQogfQorCitXZWJJbnNwZWN0b3IuU2NyaXB0Lkxv
Y2F0aW9uLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9uLnBy
b3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0Rm9ybWF0dGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9T
Y3JpcHRGb3JtYXR0ZXIuanMKaW5kZXggZDdiMmY4NjE3YjU5ZjgxYmQwMDY0ZGMxNjNhODg0OTY1
NjU2NjZlZi4uOTUxYjZjNTU5YWI3YzlhYWQyNTdhZDkxMGRiNTM4OWQ2YmU1OTVkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0
ZXIuanMKQEAgLTMwLDkgKzMwLDExIEBACiAKIC8qKgogICogQGNvbnN0cnVjdG9yCisgKiBAcGFy
YW0ge3N0cmluZ30gd29ya2VyVVJMCiAgKi8KLVdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIg
PSBmdW5jdGlvbigpCitXZWJJbnNwZWN0b3IuRm9ybWF0dGVyID0gZnVuY3Rpb24od29ya2VyVVJM
KQogeworICAgIHRoaXMuX3dvcmtlclVSTCA9IHdvcmtlclVSTDsKICAgICB0aGlzLl90YXNrcyA9
IFtdOwogfQogCkBAIC00Miw3ICs0NCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIg
PSBmdW5jdGlvbigpCiAgKiBAcGFyYW0ge251bWJlcn0gY29sdW1uTnVtYmVyCiAgKiBAcmV0dXJu
IHtudW1iZXJ9CiAgKi8KLVdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIubG9jYXRpb25Ub1Bv
c2l0aW9uID0gZnVuY3Rpb24obGluZUVuZGluZ3MsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikK
K1dlYkluc3BlY3Rvci5Gb3JtYXR0ZXIubG9jYXRpb25Ub1Bvc2l0aW9uID0gZnVuY3Rpb24obGlu
ZUVuZGluZ3MsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKIHsKICAgICB2YXIgcG9zaXRpb24g
PSBsaW5lTnVtYmVyID8gbGluZUVuZGluZ3NbbGluZU51bWJlciAtIDFdICsgMSA6IDA7CiAgICAg
cmV0dXJuIHBvc2l0aW9uICsgY29sdW1uTnVtYmVyOwpAQCAtNTMsNyArNTUsNyBAQCBXZWJJbnNw
ZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmxvY2F0aW9uVG9Qb3NpdGlvbiA9IGZ1bmN0aW9uKGxpbmVF
bmRpbmdzLCBsaW5lTnVtYgogICogQHBhcmFtIHtudW1iZXJ9IHBvc2l0aW9uCiAgKiBAcmV0dXJu
IHtBcnJheS48bnVtYmVyPn0KICAqLwotV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5wb3Np
dGlvblRvTG9jYXRpb24gPSBmdW5jdGlvbihsaW5lRW5kaW5ncywgcG9zaXRpb24pCitXZWJJbnNw
ZWN0b3IuRm9ybWF0dGVyLnBvc2l0aW9uVG9Mb2NhdGlvbiA9IGZ1bmN0aW9uKGxpbmVFbmRpbmdz
LCBwb3NpdGlvbikKIHsKICAgICB2YXIgbGluZU51bWJlciA9IGxpbmVFbmRpbmdzLnVwcGVyQm91
bmQocG9zaXRpb24gLSAxKTsKICAgICBpZiAoIWxpbmVOdW1iZXIpCkBAIC02Myw3ICs2NSw3IEBA
IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIucG9zaXRpb25Ub0xvY2F0aW9uID0gZnVuY3Rp
b24obGluZUVuZGluZ3MsIHBvc2l0aW9uCiAgICAgcmV0dXJuIFtsaW5lTnVtYmVyLCBjb2x1bW5O
dW1iZXJdOwogfQogCi1XZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLnByb3RvdHlwZSA9IHsK
K1dlYkluc3BlY3Rvci5Gb3JtYXR0ZXIucHJvdG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBw
YXJhbSB7c3RyaW5nfSBtaW1lVHlwZQogICAgICAqIEBwYXJhbSB7P3N0cmluZ30gY29udGVudApA
QCAtOTQsNyArOTYsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLnByb3RvdHlwZSA9
IHsKICAgICBnZXQgX3dvcmtlcigpCiAgICAgewogICAgICAgICBpZiAoIXRoaXMuX2NhY2hlZFdv
cmtlcikgewotICAgICAgICAgICAgdGhpcy5fY2FjaGVkV29ya2VyID0gbmV3IFdvcmtlcigiU2Ny
aXB0Rm9ybWF0dGVyV29ya2VyLmpzIik7CisgICAgICAgICAgICB0aGlzLl9jYWNoZWRXb3JrZXIg
PSBuZXcgV29ya2VyKHRoaXMuX3dvcmtlclVSTCk7CiAgICAgICAgICAgICB0aGlzLl9jYWNoZWRX
b3JrZXIub25tZXNzYWdlID0gLyoqIEB0eXBlIHtmdW5jdGlvbih0aGlzOldvcmtlcil9ICovIHRo
aXMuX2RpZEZvcm1hdENvbnRlbnQuYmluZCh0aGlzKTsKICAgICAgICAgfQogICAgICAgICByZXR1
cm4gdGhpcy5fY2FjaGVkV29ya2VyOwpAQCAtMTg1LDkgKzE4Nyw5IEBAIFdlYkluc3BlY3Rvci5G
b3JtYXR0ZXJTb3VyY2VNYXBwaW5nSW1wbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgb3Jp
Z2luYWxUb0Zvcm1hdHRlZDogZnVuY3Rpb24obGluZU51bWJlciwgY29sdW1uTnVtYmVyKQogICAg
IHsKLSAgICAgICAgdmFyIG9yaWdpbmFsUG9zaXRpb24gPSBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9y
bWF0dGVyLmxvY2F0aW9uVG9Qb3NpdGlvbih0aGlzLl9vcmlnaW5hbExpbmVFbmRpbmdzLCBsaW5l
TnVtYmVyLCBjb2x1bW5OdW1iZXIgfHwgMCk7CisgICAgICAgIHZhciBvcmlnaW5hbFBvc2l0aW9u
ID0gV2ViSW5zcGVjdG9yLkZvcm1hdHRlci5sb2NhdGlvblRvUG9zaXRpb24odGhpcy5fb3JpZ2lu
YWxMaW5lRW5kaW5ncywgbGluZU51bWJlciwgY29sdW1uTnVtYmVyIHx8IDApOwogICAgICAgICB2
YXIgZm9ybWF0dGVkUG9zaXRpb24gPSB0aGlzLl9jb252ZXJ0UG9zaXRpb24odGhpcy5fbWFwcGlu
Zy5vcmlnaW5hbCwgdGhpcy5fbWFwcGluZy5mb3JtYXR0ZWQsIG9yaWdpbmFsUG9zaXRpb24gfHwg
MCk7Ci0gICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLnBvc2l0aW9u
VG9Mb2NhdGlvbih0aGlzLl9mb3JtYXR0ZWRMaW5lRW5kaW5ncywgZm9ybWF0dGVkUG9zaXRpb24p
OworICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLkZvcm1hdHRlci5wb3NpdGlvblRvTG9jYXRp
b24odGhpcy5fZm9ybWF0dGVkTGluZUVuZGluZ3MsIGZvcm1hdHRlZFBvc2l0aW9uKTsKICAgICB9
LAogCiAgICAgLyoqCkBAIC0xOTcsOSArMTk5LDkgQEAgV2ViSW5zcGVjdG9yLkZvcm1hdHRlclNv
dXJjZU1hcHBpbmdJbXBsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBmb3JtYXR0ZWRUb09y
aWdpbmFsOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCiAgICAgewotICAgICAg
ICB2YXIgZm9ybWF0dGVkUG9zaXRpb24gPSBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmxv
Y2F0aW9uVG9Qb3NpdGlvbih0aGlzLl9mb3JtYXR0ZWRMaW5lRW5kaW5ncywgbGluZU51bWJlciwg
Y29sdW1uTnVtYmVyIHx8IDApOworICAgICAgICB2YXIgZm9ybWF0dGVkUG9zaXRpb24gPSBXZWJJ
bnNwZWN0b3IuRm9ybWF0dGVyLmxvY2F0aW9uVG9Qb3NpdGlvbih0aGlzLl9mb3JtYXR0ZWRMaW5l
RW5kaW5ncywgbGluZU51bWJlciwgY29sdW1uTnVtYmVyIHx8IDApOwogICAgICAgICB2YXIgb3Jp
Z2luYWxQb3NpdGlvbiA9IHRoaXMuX2NvbnZlcnRQb3NpdGlvbih0aGlzLl9tYXBwaW5nLmZvcm1h
dHRlZCwgdGhpcy5fbWFwcGluZy5vcmlnaW5hbCwgZm9ybWF0dGVkUG9zaXRpb24pOwotICAgICAg
ICByZXR1cm4gV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlci5wb3NpdGlvblRvTG9jYXRpb24o
dGhpcy5fb3JpZ2luYWxMaW5lRW5kaW5ncywgb3JpZ2luYWxQb3NpdGlvbiB8fCAwKTsKKyAgICAg
ICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Gb3JtYXR0ZXIucG9zaXRpb25Ub0xvY2F0aW9uKHRoaXMu
X29yaWdpbmFsTGluZUVuZGluZ3MsIG9yaWdpbmFsUG9zaXRpb24gfHwgMCk7CiAgICAgfSwKIAog
ICAgIC8qKgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9V
SVNvdXJjZUNvZGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291
cmNlQ29kZS5qcwppbmRleCBjZTI0MTE2NTQxYzYwZjgxMTc3ZDVjYmYxNWIzMWQ3YWVmMTZiMzJi
Li5mNGE2ZGFkMjExOTBiMTEyMTViMTIxZmUwNTYwNWZkMTRmMDlkM2ZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1VJU291cmNlQ29kZS5qcwpAQCAtNTAs
NiArNTAsOSBAQCBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlID0gZnVuY3Rpb24odXJsLCByZXNv
dXJjZSwgY29udGVudFByb3ZpZGVyLCBzb3VyY2VNYXBwaQogICAgICAqIEB0eXBlIEFycmF5Ljxm
dW5jdGlvbig/c3RyaW5nLGJvb2xlYW4sc3RyaW5nKT4KICAgICAgKi8KICAgICB0aGlzLl9yZXF1
ZXN0Q29udGVudENhbGxiYWNrcyA9IFtdOworICAgIC8qKgorICAgICAqIEB0eXBlIEFycmF5LjxX
ZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9uPgorICAgICAqLwogICAgIHRoaXMuX2xpdmVMb2NhdGlv
bnMgPSBbXTsKICAgICAvKioKICAgICAgKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5QcmVz
ZW50YXRpb25Db25zb2xlTWVzc2FnZT59CkBAIC02MSw2ICs2NCwxMCBAQCBXZWJJbnNwZWN0b3Iu
VUlTb3VyY2VDb2RlID0gZnVuY3Rpb24odXJsLCByZXNvdXJjZSwgY29udGVudFByb3ZpZGVyLCBz
b3VyY2VNYXBwaQogICAgICAqLwogICAgIHRoaXMuaGlzdG9yeSA9IFtdOwogICAgIHRoaXMuX3Jl
c3RvcmVSZXZpc2lvbkhpc3RvcnkoKTsKKyAgICB0aGlzLl9mb3JtYXR0ZXJNYXBwaW5nID0gbmV3
IFdlYkluc3BlY3Rvci5JZGVudGl0eUZvcm1hdHRlclNvdXJjZU1hcHBpbmcoKTsKKworICAgIC8v
IEZJWE1FOiBwb3N0cG9uZSBmb3JtYXR0ZWRDaGFuZ2VkIGNhbGwgdG8gYWZ0ZXIgdGhlIG1hcHBp
bmcgaGFzIGJlZW4gZXN0YWJsaXNoZWQuCisgICAgc2V0VGltZW91dCh0aGlzLmZvcm1hdHRlZENo
YW5nZWQuYmluZCh0aGlzKSwgMCk7CiB9CiAKIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUuRXZl
bnRzID0gewpAQCAtMTM0LDcgKzE0MSw3IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJv
dG90eXBlID0gewogICAgICAgICB9CiAgICAgICAgIHRoaXMuX3JlcXVlc3RDb250ZW50Q2FsbGJh
Y2tzLnB1c2goY2FsbGJhY2spOwogICAgICAgICBpZiAodGhpcy5fcmVxdWVzdENvbnRlbnRDYWxs
YmFja3MubGVuZ3RoID09PSAxKQotICAgICAgICAgICAgdGhpcy5fY29udGVudFByb3ZpZGVyLnJl
cXVlc3RDb250ZW50KHRoaXMuZmlyZUNvbnRlbnRBdmFpbGFibGUuYmluZCh0aGlzKSk7CisgICAg
ICAgICAgICB0aGlzLl9jb250ZW50UHJvdmlkZXIucmVxdWVzdENvbnRlbnQodGhpcy5fZmlyZUNv
bnRlbnRBdmFpbGFibGUuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMzQ4LDcg
KzM1NSw3IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlID0gewogICAgICAq
IEBwYXJhbSB7Ym9vbGVhbn0gY29udGVudEVuY29kZWQKICAgICAgKiBAcGFyYW0ge3N0cmluZ30g
bWltZVR5cGUKICAgICAgKi8KLSAgICBmaXJlQ29udGVudEF2YWlsYWJsZTogZnVuY3Rpb24oY29u
dGVudCwgY29udGVudEVuY29kZWQsIG1pbWVUeXBlKQorICAgIF9maXJlQ29udGVudEF2YWlsYWJs
ZTogZnVuY3Rpb24oY29udGVudCwgY29udGVudEVuY29kZWQsIG1pbWVUeXBlKQogICAgIHsKICAg
ICAgICAgdGhpcy5fY29udGVudExvYWRlZCA9IHRydWU7CiAgICAgICAgIHRoaXMuX21pbWVUeXBl
ID0gbWltZVR5cGU7CkBAIC0zNTgsNiArMzY1LDExIEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGUucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yZXF1ZXN0Q29udGVudENhbGxiYWNrcyA9
IFtdOwogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNhbGxiYWNrcy5sZW5ndGg7ICsraSkK
ICAgICAgICAgICAgIGNhbGxiYWNrc1tpXShjb250ZW50LCBjb250ZW50RW5jb2RlZCwgbWltZVR5
cGUpOworCisgICAgICAgIGlmICh0aGlzLl9mb3JtYXRPbkxvYWQpIHsKKyAgICAgICAgICAgIGRl
bGV0ZSB0aGlzLl9mb3JtYXRPbkxvYWQ7CisgICAgICAgICAgICB0aGlzLnNldEZvcm1hdHRlZCh0
cnVlKTsKKyAgICAgICAgfQogICAgIH0sCiAKICAgICAvKioKQEAgLTM2OSwxNyArMzgxLDcgQEAg
V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8q
KgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCi0gICAgICogQHBhcmFtIHtudW1i
ZXJ9IGNvbHVtbk51bWJlcgotICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5SYXdMb2NhdGlv
bn0KLSAgICAgKi8KLSAgICB1aUxvY2F0aW9uVG9SYXdMb2NhdGlvbjogZnVuY3Rpb24obGluZU51
bWJlciwgY29sdW1uTnVtYmVyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NvdXJjZU1h
cHBpbmcudWlMb2NhdGlvblRvUmF3TG9jYXRpb24odGhpcywgbGluZU51bWJlciwgY29sdW1uTnVt
YmVyKTsKLSAgICB9LAotCi0gICAgLyoqCi0gICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2Ny
aXB0LkxvY2F0aW9ufSBsaXZlTG9jYXRpb24KKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5M
aXZlTG9jYXRpb259IGxpdmVMb2NhdGlvbgogICAgICAqLwogICAgIGFkZExpdmVMb2NhdGlvbjog
ZnVuY3Rpb24obGl2ZUxvY2F0aW9uKQogICAgIHsKQEAgLTM4Nyw3ICszODksNyBAQCBXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0LkxvY2F0aW9ufSBsaXZlTG9jYXRpb24KKyAg
ICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5MaXZlTG9jYXRpb259IGxpdmVMb2NhdGlvbgogICAg
ICAqLwogICAgIHJlbW92ZUxpdmVMb2NhdGlvbjogZnVuY3Rpb24obGl2ZUxvY2F0aW9uKQogICAg
IHsKQEAgLTQwMiwxMSArNDA0LDI0IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90
eXBlID0gewogICAgIH0sCiAKICAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51
bWJlcgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBjb2x1bW5OdW1iZXIKKyAgICAgKiBAcmV0dXJu
IHtXZWJJbnNwZWN0b3IuUmF3TG9jYXRpb259CisgICAgICovCisgICAgdWlMb2NhdGlvblRvUmF3
TG9jYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKKyAgICB7CisgICAg
ICAgIHZhciBsb2NhdGlvbiA9IHRoaXMuX2Zvcm1hdHRlck1hcHBpbmcuZm9ybWF0dGVkVG9Pcmln
aW5hbChsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOworICAgICAgICByZXR1cm4gdGhpcy5fc291
cmNlTWFwcGluZy51aUxvY2F0aW9uVG9SYXdMb2NhdGlvbih0aGlzLCBsb2NhdGlvblswXSwgbG9j
YXRpb25bMV0pOworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5VSUxvY2F0aW9ufSB1aUxvY2F0aW9uCi0gICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlVJ
TG9jYXRpb259CiAgICAgICovCiAgICAgb3ZlcnJpZGVMb2NhdGlvbjogZnVuY3Rpb24odWlMb2Nh
dGlvbikKICAgICB7CisgICAgICAgIHZhciBsb2NhdGlvbiA9IHRoaXMuX2Zvcm1hdHRlck1hcHBp
bmcub3JpZ2luYWxUb0Zvcm1hdHRlZCh1aUxvY2F0aW9uLmxpbmVOdW1iZXIsIHVpTG9jYXRpb24u
Y29sdW1uTnVtYmVyKTsKKyAgICAgICAgdWlMb2NhdGlvbi5saW5lTnVtYmVyID0gbG9jYXRpb25b
MF07CisgICAgICAgIHVpTG9jYXRpb24uY29sdW1uTnVtYmVyID0gbG9jYXRpb25bMV07CiAgICAg
ICAgIHJldHVybiB1aUxvY2F0aW9uOwogICAgIH0sCiAKQEAgLTQ0MywxMyArNDU4LDkyIEBAIFdl
Ykluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAvKioK
KyAgICAgKiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLworICAgIHRvZ2dsaW5nRm9ybWF0dGVy
OiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fdG9nZ2xpbmdGb3JtYXR0
ZXI7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICov
CisgICAgZm9ybWF0dGVkOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
Zm9ybWF0dGVkOworICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGZv
cm1hdHRlZAogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oKT19IGNhbGxiYWNrCiAgICAgICovCiAg
ICAgc2V0Rm9ybWF0dGVkOiBmdW5jdGlvbihmb3JtYXR0ZWQsIGNhbGxiYWNrKQogICAgIHsKLSAg
ICAgICAgaWYgKGNhbGxiYWNrKQorICAgICAgICBjYWxsYmFjayA9IGNhbGxiYWNrIHx8IGZ1bmN0
aW9uKCkge307CisgICAgICAgIGlmICghdGhpcy5jb250ZW50TG9hZGVkKCkpIHsKKyAgICAgICAg
ICAgIHRoaXMuX2Zvcm1hdE9uTG9hZCA9IGZvcm1hdHRlZDsKKyAgICAgICAgICAgIGNhbGxiYWNr
KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAodGhpcy5f
Zm9ybWF0dGVkID09PSBmb3JtYXR0ZWQpIHsKICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICB0aGlzLl9mb3JtYXR0ZWQgPSBm
b3JtYXR0ZWQ7CisKKyAgICAgICAgLy8gUmUtcmVxdWVzdCBjb250ZW50CisgICAgICAgIHRoaXMu
X2NvbnRlbnRMb2FkZWQgPSBmYWxzZTsKKyAgICAgICAgdGhpcy5fY29udGVudCA9IGZhbHNlOwor
ICAgICAgICBXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5yZXF1ZXN0Q29udGVu
dC5jYWxsKHRoaXMsIGRpZEdldENvbnRlbnQuYmluZCh0aGlzKSk7CisgIAorICAgICAgICAvKioK
KyAgICAgICAgICogQHRoaXMge1dlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGV9CisgICAgICAgICAq
IEBwYXJhbSB7P3N0cmluZ30gY29udGVudAorICAgICAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGNv
bnRlbnRFbmNvZGVkCisgICAgICAgICAqIEBwYXJhbSB7c3RyaW5nfSBtaW1lVHlwZQorICAgICAg
ICAgKi8KKyAgICAgICAgZnVuY3Rpb24gZGlkR2V0Q29udGVudChjb250ZW50LCBjb250ZW50RW5j
b2RlZCwgbWltZVR5cGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGlmICghZm9ybWF0dGVkKSB7
CisgICAgICAgICAgICAgICAgZm9ybWF0dGVkQ2hhbmdlZC5jYWxsKHRoaXMsIGNvbnRlbnQsIG5l
dyBXZWJJbnNwZWN0b3IuSWRlbnRpdHlGb3JtYXR0ZXJTb3VyY2VNYXBwaW5nKCkpOworICAgICAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAKKyAgICAgICAgICAgIHZhciBm
b3JtYXR0ZXIgPSB0aGlzLmNyZWF0ZUZvcm1hdHRlcigpOworICAgICAgICAgICAgaWYgKGZvcm1h
dHRlcikKKyAgICAgICAgICAgICAgICBmb3JtYXR0ZXIuZm9ybWF0Q29udGVudChtaW1lVHlwZSwg
Y29udGVudCB8fCAiIiwgZm9ybWF0dGVkQ2hhbmdlZC5iaW5kKHRoaXMpKTsKKyAgCisgICAgICAg
ICAgICAvKioKKyAgICAgICAgICAgICAqIEB0aGlzIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
fQorICAgICAgICAgICAgICogQHBhcmFtIHtzdHJpbmd9IGNvbnRlbnQKKyAgICAgICAgICAgICAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLkZvcm1hdHRlclNvdXJjZU1hcHBpbmd9IGZvcm1hdHRlck1h
cHBpbmcKKyAgICAgICAgICAgICAqLworICAgICAgICAgICAgZnVuY3Rpb24gZm9ybWF0dGVkQ2hh
bmdlZChjb250ZW50LCBmb3JtYXR0ZXJNYXBwaW5nKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIHRoaXMuX3RvZ2dsaW5nRm9ybWF0dGVyID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICB0
aGlzLmNvbnRlbnRDaGFuZ2VkKGNvbnRlbnQsIG1pbWVUeXBlKTsKKyAgICAgICAgICAgICAgICBk
ZWxldGUgdGhpcy5fdG9nZ2xpbmdGb3JtYXR0ZXI7CisgICAgICAgICAgICAgICAgdGhpcy5fZm9y
bWF0dGVyTWFwcGluZyA9IGZvcm1hdHRlck1hcHBpbmc7CisgICAgICAgICAgICAgICAgdGhpcy51
cGRhdGVMaXZlTG9jYXRpb25zKCk7CisgICAgICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWRDaGFu
Z2VkKCk7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuRm9y
bWF0dGVyfSBmb3JtYXR0ZXIKKyAgICAgKi8KKyAgICBjcmVhdGVGb3JtYXR0ZXI6IGZ1bmN0aW9u
KCkKKyAgICB7CisgICAgICAgIC8vIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4KKyAgICAgICAg
cmV0dXJuIG51bGw7CisgICAgfSwKKworICAgIGZvcm1hdHRlZENoYW5nZWQ6IGZ1bmN0aW9uKCkK
KyAgICB7CiAgICAgfQogfQogCkBAIC01MjEsNiArNjE1LDU5IEBAIFdlYkluc3BlY3Rvci5SYXdM
b2NhdGlvbiA9IGZ1bmN0aW9uKCkKIAogLyoqCiAgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlJhd0xvY2F0aW9ufSByYXdMb2NhdGlvbgorICogQHBhcmFtIHtmdW5jdGlv
bihXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbik6KGJvb2xlYW58dW5kZWZpbmVkKX0gdXBkYXRlRGVs
ZWdhdGUKKyAqLworV2ViSW5zcGVjdG9yLkxpdmVMb2NhdGlvbiA9IGZ1bmN0aW9uKHJhd0xvY2F0
aW9uLCB1cGRhdGVEZWxlZ2F0ZSkKK3sKKyAgICB0aGlzLl9yYXdMb2NhdGlvbiA9IHJhd0xvY2F0
aW9uOworICAgIHRoaXMuX3VwZGF0ZURlbGVnYXRlID0gdXBkYXRlRGVsZWdhdGU7CisgICAgdGhp
cy5fdWlTb3VyY2VDb2RlcyA9IFtdOworfQorCitXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9uLnBy
b3RvdHlwZSA9IHsKKyAgICB1cGRhdGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciB1
aUxvY2F0aW9uID0gdGhpcy51aUxvY2F0aW9uKCk7CisgICAgICAgIGlmICh1aUxvY2F0aW9uKSB7
CisgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdWlMb2NhdGlvbi51aVNvdXJjZUNvZGU7
CisgICAgICAgICAgICBpZiAodGhpcy5fdWlTb3VyY2VDb2Rlcy5pbmRleE9mKHVpU291cmNlQ29k
ZSkgPT09IC0xKSB7CisgICAgICAgICAgICAgICAgdWlTb3VyY2VDb2RlLmFkZExpdmVMb2NhdGlv
bih0aGlzKTsKKyAgICAgICAgICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVzLnB1c2godWlTb3Vy
Y2VDb2RlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHZhciBvbmVUaW1lID0gdGhpcy5f
dXBkYXRlRGVsZWdhdGUodWlMb2NhdGlvbik7CisgICAgICAgICAgICBpZiAob25lVGltZSkKKyAg
ICAgICAgICAgICAgICB0aGlzLmRpc3Bvc2UoKTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAv
KioKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUmF3TG9jYXRpb259CisgICAgICovCisg
ICAgcmF3TG9jYXRpb246IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9y
YXdMb2NhdGlvbjsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7V2ViSW5zcGVj
dG9yLlVJTG9jYXRpb259CisgICAgICovCisgICAgdWlMb2NhdGlvbjogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgLy8gU2hvdWxkIGJlIG92ZXJyaWRkZW4gYnkgc3ViY2xhc3Nlcy4KKyAgICB9
LAorCisgICAgZGlzcG9zZTogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgZm9yICh2YXIgaSA9
IDA7IGkgPCB0aGlzLl91aVNvdXJjZUNvZGVzLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhp
cy5fdWlTb3VyY2VDb2Rlc1tpXS5yZW1vdmVMaXZlTG9jYXRpb24odGhpcyk7CisgICAgICAgIHRo
aXMuX3VpU291cmNlQ29kZXMgPSBbXTsKKyAgICAgICAgdGhpcy5fc2NyaXB0Ll9sb2NhdGlvbnMu
cmVtb3ZlKHRoaXMpOworICAgIH0KK30KKworLyoqCisgKiBAY29uc3RydWN0b3IKICAqIEBpbXBs
ZW1lbnRzIHtXZWJJbnNwZWN0b3IuQ29udGVudFByb3ZpZGVyfQogICogQHBhcmFtIHtXZWJJbnNw
ZWN0b3IuVUlTb3VyY2VDb2RlfSB1aVNvdXJjZUNvZGUKICAqIEBwYXJhbSB7P3N0cmluZ3x1bmRl
ZmluZWR9IGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvaW5zcGVjdG9yLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5odG1sCmluZGV4IDYxOTA2NDBlMzMyYmM4OTYwYWVjMzM4OGQ2OTQ4ZTZiOTY2
YTk1MzUuLjFmMzViYWI4ZjBkNThkZjY0NWE4ZTJmM2I5YzBjNWNiNGMxZTE3ZTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKKysr
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbApAQCAt
OTEsNyArOTEsNiBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9IkFwcGxpY2F0aW9uQ2FjaGVJdGVtc1ZpZXcuanMiPjwvc2NyaXB0PgogICAgIDxzY3Jp
cHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkluZGV4ZWREQk1vZGVsLmpzIj48L3Njcmlw
dD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJJbmRleGVkREJWaWV3
cy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
U2NyaXB0LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJTcGVjdHJ1bS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iU2lkZWJhclBhbmUuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBzcmM9IkVsZW1lbnRzVHJlZU91dGxpbmUuanMiPjwvc2NyaXB0PgpA
QCAtMTg3LDYgKzE4Niw3IEBAIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiIHNyYz0iRGVidWdnZXJNb2RlbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU291cmNlTWFwcGluZy5qcyI+PC9zY3JpcHQ+CiAgICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iVUlTb3VyY2VDb2RlLmpzIj48L3Nj
cmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJTY3JpcHQuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkphdmFT
Y3JpcHRTb3VyY2UuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9IkxpbmtpZmllci5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0iRGVidWdnZXJTY3JpcHRNYXBwaW5nLmpzIj48L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCBmZjQ3YmMyODZkMzNiYzI2M2ZkZDY1NjI3ZTkxODU1N2ZjZGYxYjgxLi43NWQ5YmQ5ZDZk
NDI3N2Y4MDRmYzhkNDhjMjA3MjA0OGIwZDA4ZGVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MTItMDctMjYgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisKKyAgICAg
ICAgV2ViIEluc3BlY3RvcjogTW92ZSBmb3JtYXR0aW5nIHN1cHBvcnQgZnJvbSBKYXZhU2NyaXB0
U291cmNlIHRvIFVJU291cmNlQ29kZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkyMzczCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci5odG1s
OgorCiAyMDEyLTA3LTI2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNv
bT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTIzNzE1LgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXIuaHRtbCBi
L0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHQtZm9ybWF0dGVyLmh0bWwKaW5k
ZXggODBlMzU3ZDUxMTFlYzk3YzViNTRlNTdhNmZmYmQ4M2ZjM2VmNjE4MS4uNzkxNWM4MmU4ZmFk
OTIxM2MyZmY1NjUyMmVmMWU3MGZhODMzMzQ5MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NjcmlwdC1mb3JtYXR0ZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0LWZvcm1hdHRlci5odG1sCkBAIC0zMSw3ICszMSw3IEBA
IHZhciB0ZXN0ID0gZnVuY3Rpb24oKQogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RTb3VyY2VNYXBw
aW5nKG5leHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIHZhciBmb3JtYXR0ZXIgPSBuZXcgV2Vi
SW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlcigpOworICAgICAgICAgICAgdmFyIGZvcm1hdHRlciA9
IG5ldyBXZWJJbnNwZWN0b3IuRm9ybWF0dGVyKCJTY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMiKTsK
IAogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5zaG93U2NyaXB0U291cmNlKCJvYmZ1c2NhdGVk
LmpzIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7CiAgICAgICAgICAgICBmdW5jdGlvbiBkaWRTaG93
U2NyaXB0U291cmNlKHNvdXJjZUZyYW1lKQpAQCAtNDgsOSArNDgsOSBAQCB2YXIgdGVzdCA9IGZ1
bmN0aW9uKCkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgIHZhciBvcmln
aW5hbFBvc2l0aW9uID0gc291cmNlLmluZGV4T2Yoc3RyaW5nKTsKICAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKG9yaWdpbmFsUG9zaXRpb24gIT09IC0xKTsKLSAg
ICAgICAgICAgICAgICAgICAgdmFyIG9yaWdpbmFsTG9jYXRpb24gPSBXZWJJbnNwZWN0b3IuU2Ny
aXB0Rm9ybWF0dGVyLnBvc2l0aW9uVG9Mb2NhdGlvbihzb3VyY2UubGluZUVuZGluZ3MoKSwgb3Jp
Z2luYWxQb3NpdGlvbik7CisgICAgICAgICAgICAgICAgICAgIHZhciBvcmlnaW5hbExvY2F0aW9u
ID0gV2ViSW5zcGVjdG9yLkZvcm1hdHRlci5wb3NpdGlvblRvTG9jYXRpb24oc291cmNlLmxpbmVF
bmRpbmdzKCksIG9yaWdpbmFsUG9zaXRpb24pOwogICAgICAgICAgICAgICAgICAgICB2YXIgZm9y
bWF0dGVkTG9jYXRpb24gPSBtYXBwaW5nLm9yaWdpbmFsVG9Gb3JtYXR0ZWQob3JpZ2luYWxMb2Nh
dGlvblswXSwgb3JpZ2luYWxMb2NhdGlvblsxXSk7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBm
b3JtYXR0ZWRQb3NpdGlvbiA9IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIubG9jYXRpb25U
b1Bvc2l0aW9uKGZvcm1hdHRlZFNvdXJjZS5saW5lRW5kaW5ncygpLCBmb3JtYXR0ZWRMb2NhdGlv
blswXSwgZm9ybWF0dGVkTG9jYXRpb25bMV0pOworICAgICAgICAgICAgICAgICAgICB2YXIgZm9y
bWF0dGVkUG9zaXRpb24gPSBXZWJJbnNwZWN0b3IuRm9ybWF0dGVyLmxvY2F0aW9uVG9Qb3NpdGlv
bihmb3JtYXR0ZWRTb3VyY2UubGluZUVuZGluZ3MoKSwgZm9ybWF0dGVkTG9jYXRpb25bMF0sIGZv
cm1hdHRlZExvY2F0aW9uWzFdKTsKICAgICAgICAgICAgICAgICAgICAgdmFyIGV4cGVjdGVkRm9y
bWF0dGVkUG9zaXRpb24gPSBmb3JtYXR0ZWRTb3VyY2UuaW5kZXhPZihzdHJpbmcpOwogICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhleHBlY3RlZEZvcm1hdHRl
ZFBvc2l0aW9uLCBmb3JtYXR0ZWRQb3NpdGlvbiwgIndyb25nIG1hcHBpbmcgZm9yIDwiICsgc3Ry
aW5nICsgIj4iKTsKICAgICAgICAgICAgICAgICB9Cg==
</data>
<flag name="review"
          id="163930"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>