<?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>125695</bug_id>
          
          <creation_ts>2013-12-13 10:10:09 -0800</creation_ts>
          <short_desc>Web Inspector: provide an abstraction for CodeMirror&apos;s TextMarker</short_desc>
          <delta_ts>2014-02-18 03:26:44 -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</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antoine Quint">graouts</reporter>
          <assigned_to name="Antoine Quint">graouts</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>graouts</cc>
    
    <cc>graouts</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>959575</commentid>
    <comment_count>0</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-12-13 10:10:09 -0800</bug_when>
    <thetext>When we introduced support for editing colors in SourceCodeTextEditor, we started using CodeMirror&apos;s TextMarker type directly. This class should have no knowledge of CodeMirror though, so we should provide an abstraction for this type.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959583</commentid>
    <comment_count>1</comment_count>
      <attachid>219172</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-12-13 10:28:59 -0800</bug_when>
    <thetext>Created attachment 219172
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959585</commentid>
    <comment_count>2</comment_count>
      <attachid>219172</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2013-12-13 10:38:03 -0800</bug_when>
    <thetext>Comment on attachment 219172
Patch

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

&gt; Source/WebInspectorUI/UserInterface/CodeMirrorColorEditingController.js:90
&gt; +        this._range = new WebInspector.TextRange(this._range.startLine, this._range.startColumn, this._range.endLine, this._range.startColumn + text.length);

Shouldn&apos;t this take into account any &quot;\n&quot; in text when making the endLine and endColumn? Or just assert no &quot;\n&quot; is allowed in the text and use startLine for endLine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959588</commentid>
    <comment_count>3</comment_count>
      <attachid>219174</attachid>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-12-13 10:54:15 -0800</bug_when>
    <thetext>Created attachment 219174
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959589</commentid>
    <comment_count>4</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-12-13 10:55:42 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 219172 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=219172&amp;action=review
&gt; 
&gt; &gt; Source/WebInspectorUI/UserInterface/CodeMirrorColorEditingController.js:90
&gt; &gt; +        this._range = new WebInspector.TextRange(this._range.startLine, this._range.startColumn, this._range.endLine, this._range.startColumn + text.length);
&gt; 
&gt; Shouldn&apos;t this take into account any &quot;\n&quot; in text when making the endLine and endColumn? Or just assert no &quot;\n&quot; is allowed in the text and use startLine for endLine.

For the record, this was fixed in the commit after discussion on IRC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959603</commentid>
    <comment_count>5</comment_count>
      <attachid>219174</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-13 11:29:42 -0800</bug_when>
    <thetext>Comment on attachment 219174
Patch for landing

Clearing flags on attachment: 219174

Committed r160552: &lt;http://trac.webkit.org/changeset/160552&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959604</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-12-13 11:29:44 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959643</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-12-13 13:02:53 -0800</bug_when>
    <thetext>Could this have caused:

file:///Volumes/Data/Build/Debug/WebInspectorUI.framework/Resources/External/CodeMirror/codemirror.js:1446:39: JS ERROR: TypeError: undefined is not a function (evaluating &apos;marker.find()&apos;)
file:///Volumes/Data/Build/Debug/WebInspectorUI.framework/Resources/Color.js:97:133: JS ERROR: TypeError: undefined is not a function (evaluating &apos;WebInspector.Color.Nicknames[nickname].concat(1)&apos;)

No marker.find?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959752</commentid>
    <comment_count>8</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2013-12-13 20:20:40 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Could this have caused:
&gt; 
&gt; file:///Volumes/Data/Build/Debug/WebInspectorUI.framework/Resources/External/CodeMirror/codemirror.js:1446:39: JS ERROR: TypeError: undefined is not a function (evaluating &apos;marker.find()&apos;)
&gt; file:///Volumes/Data/Build/Debug/WebInspectorUI.framework/Resources/Color.js:97:133: JS ERROR: TypeError: undefined is not a function (evaluating &apos;WebInspector.Color.Nicknames[nickname].concat(1)&apos;)
&gt; 
&gt; No marker.find?

Follow-up fix on:
&lt;https://webkit.org/b/125724&gt; Web Inspector: Exception: TypeError: undefined is not a function (evaluating &apos;marker.find()&apos;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>959819</commentid>
    <comment_count>9</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2013-12-14 04:06:18 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #7)
&gt; &gt; Could this have caused:
&gt; &gt; 
&gt; &gt; file:///Volumes/Data/Build/Debug/WebInspectorUI.framework/Resources/External/CodeMirror/codemirror.js:1446:39: JS ERROR: TypeError: undefined is not a function (evaluating &apos;marker.find()&apos;)
&gt; &gt; file:///Volumes/Data/Build/Debug/WebInspectorUI.framework/Resources/Color.js:97:133: JS ERROR: TypeError: undefined is not a function (evaluating &apos;WebInspector.Color.Nicknames[nickname].concat(1)&apos;)
&gt; &gt; 
&gt; &gt; No marker.find?
&gt; 
&gt; Follow-up fix on:
&gt; &lt;https://webkit.org/b/125724&gt; Web Inspector: Exception: TypeError: undefined is not a function (evaluating &apos;marker.find()&apos;)

There shouldn&apos;t be a marker.find(), there&apos;s a &quot;range&quot; property on WebInspector.TextMarker.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981868</commentid>
    <comment_count>10</comment_count>
    <who name="Antoine Quint">graouts</who>
    <bug_when>2014-02-18 03:26:25 -0800</bug_when>
    <thetext>This patch introduced another regression: https://bugs.webkit.org/show_bug.cgi?id=128965, Web Inspector: editing a color in the Styles sidebar using the color picker only works once for a given color.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>981869</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2014-02-18 03:26:44 -0800</bug_when>
    <thetext>&lt;rdar://problem/16096034&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219172</attachid>
            <date>2013-12-13 10:28:59 -0800</date>
            <delta_ts>2013-12-13 10:54:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-125695-20131213192911.patch</filename>
            <type>text/plain</type>
            <size>17128</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwNDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA5
MDFhNjY5Nzc5YjQxNTRlOWVjOWFmMjhhNGM0MTI1OGMwOTYyODFkLi4yOTAxMDJkZDg5NWI3ZmYz
NTg1NmQwZjA3MjkxY2I2ZTk4NjZkNmQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5MSBAQAorMjAxMy0xMi0xMyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgYW4gYWJzdHJhY3Rpb24gZm9yIENv
ZGVNaXJyb3IncyBUZXh0TWFya2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjU2OTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBJbnRyb2R1Y2UgYSBuZXcgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIgY2xh
c3Mgd2hpY2ggaXMgdXNlZCBieSBjb2RlIHdpdGggQ29kZU1pcnJvciBrbm93bGVkZ2UKKyAgICAg
ICAgdG8gcmV0dXJuIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gdGV4dCBtYXJrZXJzIHRvIG9iamVj
dHMgdGhhdCBzaG91bGQgaGF2ZSBubyBkaXJlY3Qga25vd2xlZGdlCisgICAgICAgIG9mIENvZGVN
aXJyb3IuIFN0YXJ0IHVzaW5nIHRoaXMgY2xhc3MgaW4gVGV4dEVkaXRvciBhbmQgU291cmNlQ29k
ZVRleHRFZGl0b3IgdG8gcmVtb3ZlIHRoZQorICAgICAgICBsYXN0IHJlbWFpbmluZyBwaWVjZXMg
b2YgQ29kZU1pcnJvciBrbm93bGVkZ2UgYWRkZWQgdG8gU291cmNlQ29kZVRleHRFZGl0b3IgdG8g
Zml4CisgICAgICAgIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzEyNDM2NC4KKworICAgICAgICAqIFVz
ZXJJbnRlcmZhY2UvQ29kZU1pcnJvckFkZGl0aW9ucy5qczoKKyAgICAgICAgU3RvcCB1c2luZyBf
X21hcmtlZENvbG9yIHRvIGlkZW50aWZ5IGEgY29sb3IgbWFya2VyIGFuZCBpbnN0ZWFkIHVzZSB0
aGUgdHlwZSBvbiB0aGUgbWF0Y2hpbmcKKyAgICAgICAgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIu
IEFkZGl0aW9uYWxseSwgY3JlYXRlIGEgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIgd2l0aCB0eXBl
CisgICAgICAgIFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUuQ29sb3IgaW4gY3JlYXRlQ29s
b3JNYXJrZXJzKCkuCisgICAgICAgIAorICAgICAgICAqIFVzZXJJbnRlcmZhY2UvQ29kZU1pcnJv
ckNvbG9yRWRpdGluZ0NvbnRyb2xsZXIuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29kZU1p
cnJvckNvbG9yRWRpdGluZ0NvbnRyb2xsZXIpOgorICAgICAgICBVc2UgYSBXZWJJbnNwZWN0b3Iu
VGV4dFJhbmdlIHRvIHRyYWNrIHRoZSBlZGl0ZWQgcmFuZ2UgYW5kIG9idGFpbiBpdCBkaXJlY3Rs
eSBmcm9tIHRoZQorICAgICAgICBXZWJJbnNwZWN0b3IuVGV4dE1ha2VyIHVzZWQgdG8gaW5zdGFu
dGlhdGUgdGhlIG9iamVjdC4gV2UgYWxzbyB1c2UgdGhlIG5ldyAidGV4dCIgcHVibGljCisgICAg
ICAgIHByb3BlcnR5IHRvIGNyZWF0ZSB0aGUgY29sb3IuCisKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5Db2RlTWlycm9yQ29sb3JFZGl0aW5nQ29udHJvbGxlci5wcm90b3R5cGUuc2V0IGNvbG9yKToK
KyAgICAgICAgU2ltcGx5IGFzc2luZyB0aGUgc2VyaWFsaXplZCBjb2xvciB0byB0aGUgbmV3ICJ0
ZXh0IiBwdWJsaWMgcHJvcGVydHkuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Db2RlTWlycm9y
Q29sb3JFZGl0aW5nQ29udHJvbGxlci5wcm90b3R5cGUuZ2V0IHRleHQpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvZGVNaXJyb3JDb2xvckVkaXRpbmdDb250cm9sbGVyLnByb3RvdHlwZS5zZXQg
dGV4dCk6CisgICAgICAgIE5ldyBwdWJsaWMgcHJvcGVydHkgdG8gc2V0IGdldCBhbmQgc2V0IHRo
ZSB0ZXh0IGZvciB0aGUgZWRpdGVkIHJhbmdlLCBhdXRvbWF0aWNhbGx5IHVwZGF0aW5nCisgICAg
ICAgIHRoZSByYW5nZSB1cG9uIHNldHRpbmcgdG8gYSBuZXcgdGV4dC4KKworICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvZGVNaXJyb3JDb2xvckVkaXRpbmdDb250cm9sbGVyLnByb3RvdHlwZS5wcmVz
ZW50SG92ZXJNZW51KToKKyAgICAgICAgT2J0YWluIHRoZSBib3VuZHMgZGlyZWN0bHkgZnJvbSB0
aGUgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIgb2JqZWN0LgorCisgICAgICAgICogVXNlckludGVy
ZmFjZS9Db2RlTWlycm9yVG9rZW5UcmFja2luZ0NvbnRyb2xsZXIuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuQ29kZU1pcnJvclRva2VuVHJhY2tpbmdDb250cm9sbGVyLnByb3RvdHlwZS5fdXBk
YXRlSG92ZXJlZFRva2VuSW5mbyk6CisgICAgICAgIFNpbmNlIHdlJ3JlIG5vdyB0cmFja2luZyB0
aGUgaG92ZXJlZE1hcmtlciBhcyBhIFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLCBnZXQgdGhlIENv
ZGVNaXJyb3IKKyAgICAgICAgVGV4dE1hcmtlciBmcm9tIHRoYXQgb2JqZWN0IHRvIGNoZWNrIGlm
IGl0J3MgY29udGFpbmVkIHdpdGhpbiB0aGUgdGV4dCBtYXJrZXJzIGF0IHRoZQorICAgICAgICBo
b3ZlcmVkIHBvc2l0aW9uLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9NYWluLmh0bWw6Cisg
ICAgICAgIEFkZCB0aGUgbmV3IFRleHRNYXJrZXIgY2xhc3Mgc291cmNlLgorCisgICAgICAgICog
VXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUuX2hhc0NvbG9yTWFya2Vycyk6Cisg
ICAgICAgIFVzZSB0aGUgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIgdHlwZSB0byBpZGVudGlmeSBh
IGdpdmVuIHRleHQgbWFya2VyIGlzIG1hcmtpbmcgYSBjb2xvci4KKworICAgICAgICAoV2ViSW5z
cGVjdG9yLlNvdXJjZUNvZGVUZXh0RWRpdG9yLnByb3RvdHlwZS50b2tlblRyYWNraW5nQ29udHJv
bGxlck5ld0hpZ2hsaWdodENhbmRpZGF0ZSk6CisgICAgICAgIFVzZSB0aGUgcmVuYW1lZCBtYXJr
ZXJzQXRQb3NpdGlvbigpIG1ldGhvZCBmcm9tIFRleHRFZGl0b3IuCisKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUuX3Rva2VuVHJhY2tpbmdDb250
cm9sbGVySGlnaGxpZ2h0ZWRNYXJrZWRFeHByZXNzaW9uKToKKyAgICAgICAgVXNlIHRoZSBXZWJJ
bnNwZWN0b3IuVGV4dE1hcmtlciB0eXBlIHRvIGlkZW50aWZ5IGEgZ2l2ZW4gdGV4dCBtYXJrZXIg
aXMgbWFya2luZyBhIGNvbG9yLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRl
eHRFZGl0b3IucHJvdG90eXBlLmNvbG9yRWRpdGluZ0NvbnRyb2xsZXJEaWRGaW5pc2hFZGl0aW5n
KToKKyAgICAgICAgU2luY2UgdGhlIENvZGVNaXJyb3JDb2xvckVkaXRpbmdDb250cm9sbGVyIGlz
IG5vdyB1c2luZyBhIFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UgZm9yIGl0cyByYW5nZSwKKyAgICAg
ICAgdXBkYXRlIHRvIHVzZSBhIFdlYkluc3BlY3Rvci5UZXh0UmFuZ2UgQVBJIHRvIGdldCB0aGUg
cmFuZ2UncyBzdGFydCBsaW5lLgorCisgICAgICAgICogVXNlckludGVyZmFjZS9UZXh0RWRpdG9y
LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLmdldCBtYXJr
ZXJzKToKKyAgICAgICAgUmV0dXJuIFdlYkluc3BlY3Rvci5UZXh0TWFya2VyIG9iamVjdHMgaW5z
dGVhZCBvZiBDb2RlTWlycm9yIFRleHRSYW5nZSBvYmplY3RzLgorCisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUubWFya2Vyc0F0UG9zaXRpb24pOgorICAgICAgICBS
ZW5hbWUgbWV0aG9kIHRvIGEgYmV0dGVyIG5hbWUgaW5zdGVhZCBvZiB1c2luZyB0aGUgQ29kZU1p
cnJvci1pbmZsdWVuY2VkIG5hbWUuIEFsc28sIHJldHVybgorICAgICAgICBXZWJJbnNwZWN0b3Iu
VGV4dE1hcmtlciBvYmplY3RzIGluc3RlYWQgb2YgQ29kZU1pcnJvciBUZXh0UmFuZ2Ugb2JqZWN0
cy4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGV4dE1hcmtlci5qczogQWRkZWQuCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGV4dE1hcmtlcik6CisgICAgICAgIENyZWF0ZSBhIFdlYkluc3Bl
Y3Rvci5UZXh0TWFya2VyIHdpdGggYSBDb2RlTWlycm9yIFRleHRNYXJrZXIgYW5kIGFuIG9wdGlv
bmFsIHR5cGUuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLnRleHRNYXJrZXJG
b3JDb2RlTWlycm9yVGV4dE1hcmtlcik6CisgICAgICAgIFN0YXRpYyBtZXRob2QgdG8gZWl0aGVy
IG9idGFpbiB0aGUgZXhpc3RpbmcgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIgZm9yIGEgZ2l2ZW4g
Q29kZU1pcnJvcgorICAgICAgICBUZXh0TWFya2VyLCBvciBjcmVhdGUgYSBuZXcgV2ViSW5zcGVj
dG9yLlRleHRNYXJrZXIuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLnByb3Rv
dHlwZS5nZXQgY29kZU1pcnJvclRleHRNYXJrZXIpOgorICAgICAgICBQdWJsaWMgcHJvcGVydHkg
dG8gYWNjZXNzIHRoZSBDb2RlTWlycm9yIFRleHRNYXJrZXIgb2JqZWN0cyBmb3IgY2xhc3NlcyB0
aGF0IGhhdmUgZGlyZWN0CisgICAgICAgIGtub3dsZWRnZSBvZiBDb2RlTWlycm9yLgorCisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci5wcm90b3R5cGUuZ2V0IHR5cGUpOgorICAgICAg
ICBQdWJsaWMgcHJvcGVydHkgdG8gYWNjZXNzIHRoZSB0eXBlIHVzZWQgdG8gY3JlYXRlIHRoaXMg
dGV4dCBtYXJrZXIuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLnByb3RvdHlw
ZS5nZXQgcmFuZ2UpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIucHJvdG90eXBl
LmdldCBib3VuZHMpOgorICAgICAgICBQdWJsaWMgcHJvcGVydGllcyBhbGxvd2luZyBlYXN5IGFj
Y2VzcyB0byBnZW5lcmFsbHkgdXNlZnVsIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gbWFya2VkIHRl
eHQuCisKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLnByb3RvdHlwZS5jbGVhcik6
CisgICAgICAgIFdyYXBwZXIgZm9yIHRoZSBDb2RlTWlycm9yIFRleHRNYXJrZXIgY2xlYXIoKSBt
ZXRob2QuCisKIDIwMTMtMTItMTIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4K
IAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBhbGxvdyBlZGl0aW5nIG9mIGNvbG9ycyBpbiBDU1Mg
cmVzb3VyY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFj
ZS9Db2RlTWlycm9yQWRkaXRpb25zLmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRl
cmZhY2UvQ29kZU1pcnJvckFkZGl0aW9ucy5qcwppbmRleCBlZDg1YzkwMTNmMGQ2MTE0ZDRiMDc2
ZmVhOGU2NDVlZGExN2Q3NGMxLi42NTI2MGRhNTQyMDM2OTQ0ZmQ0ZTFhYTBkYzAyMmQ4YTQ3NGY4
YjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db2Rl
TWlycm9yQWRkaXRpb25zLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJm
YWNlL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMKQEAgLTQ1MCwxMCArNDUwLDEwIEBACiAgICAgICAg
ICAgICAgICAgdmFyIGZvdW5kQ29sb3JNYXJrZXIgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB2
YXIgbWFya2VycyA9IHRoaXMuZmluZE1hcmtzQXQodG8pOwogICAgICAgICAgICAgICAgIGZvciAo
dmFyIGogPSAwOyBqIDwgbWFya2Vycy5sZW5ndGg7ICsraikgewotICAgICAgICAgICAgICAgICAg
ICBpZiAoIW1hcmtlcnNbal0uX19tYXJrZWRDb2xvcikKLSAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICBmb3VuZENvbG9yTWFya2VyID0gdHJ1ZTsK
LSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIGlmIChXZWJJ
bnNwZWN0b3IuVGV4dE1hcmtlci50ZXh0TWFya2VyRm9yQ29kZU1pcnJvclRleHRNYXJrZXIobWFy
a2Vyc1tqXSkudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZS5Db2xvcikgewor
ICAgICAgICAgICAgICAgICAgICAgICAgZm91bmRDb2xvck1hcmtlciA9IHRydWU7CisgICAgICAg
ICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAg
ICAgICAgIH0KIAogICAgICAgICAgICAgICAgIGlmIChmb3VuZENvbG9yTWFya2VyKSB7CkBAIC00
NjksNyArNDY5LDcgQEAKICAgICAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgICAgICB2YXIg
bWFya2VyID0gdGhpcy5tYXJrVGV4dChmcm9tLCB0byk7Ci0gICAgICAgICAgICAgICAgbWFya2Vy
Ll9fbWFya2VkQ29sb3IgPSB0cnVlOworICAgICAgICAgICAgICAgIG1hcmtlciA9IG5ldyBXZWJJ
bnNwZWN0b3IuVGV4dE1hcmtlcihtYXJrZXIsIFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUu
Q29sb3IpOwogCiAgICAgICAgICAgICAgICAgY3JlYXRlZE1hcmtlcnMucHVzaChtYXJrZXIpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db2RlTWly
cm9yQ29sb3JFZGl0aW5nQ29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvZGVNaXJyb3JDb2xvckVkaXRpbmdDb250cm9sbGVyLmpzCmluZGV4IDY2YTNm
OTZlNWRiZTA1ODdiMmY5MWFlZGJiZmFiNTgyZGQ4NjdmMjguLjkxM2JmYzZjMTUzM2ExNmUxNzk2
MWM2MDlkYzNlZTNiZWRkZTViNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9V
c2VySW50ZXJmYWNlL0NvZGVNaXJyb3JDb2xvckVkaXRpbmdDb250cm9sbGVyLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvZGVNaXJyb3JDb2xvckVkaXRpbmdD
b250cm9sbGVyLmpzCkBAIC0zMSw5ICszMSw4IEBAIFdlYkluc3BlY3Rvci5Db2RlTWlycm9yQ29s
b3JFZGl0aW5nQ29udHJvbGxlciA9IGZ1bmN0aW9uKGNvZGVNaXJyb3IsIG1hcmtlcikKICAgICB0
aGlzLl9tYXJrZXIgPSBtYXJrZXI7CiAgICAgdGhpcy5fZGVsZWdhdGUgPSBudWxsOwogCi0gICAg
dGhpcy5fcmFuZ2UgPSBtYXJrZXIuZmluZCgpOwotCi0gICAgdGhpcy5fY29sb3IgPSBXZWJJbnNw
ZWN0b3IuQ29sb3IuZnJvbVN0cmluZyhjb2RlTWlycm9yLmdldFJhbmdlKHRoaXMuX3JhbmdlLmZy
b20sIHRoaXMuX3JhbmdlLnRvKSk7CisgICAgdGhpcy5fcmFuZ2UgPSBtYXJrZXIucmFuZ2U7Cisg
ICAgdGhpcy5fY29sb3IgPSBXZWJJbnNwZWN0b3IuQ29sb3IuZnJvbVN0cmluZyh0aGlzLnRleHQp
OwogCiAgICAgdGhpcy5fa2V5Ym9hcmRTaG9ydGN1dEVzYyA9IG5ldyBXZWJJbnNwZWN0b3IuS2V5
Ym9hcmRTaG9ydGN1dChudWxsLCBXZWJJbnNwZWN0b3IuS2V5Ym9hcmRTaG9ydGN1dC5LZXkuRXNj
YXBlKTsKIH0KQEAgLTYxLDEwICs2MCw3IEBAIFdlYkluc3BlY3Rvci5Db2RlTWlycm9yQ29sb3JF
ZGl0aW5nQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgCiAgICAgc2V0IGNvbG9yKGNvbG9y
KQogICAgIHsKLSAgICAgICAgdmFyIGNvbG9yVGV4dCA9IGNvbG9yLnRvU3RyaW5nKCk7Ci0gICAg
ICAgIHRoaXMuX2NvZGVNaXJyb3IucmVwbGFjZVJhbmdlKGNvbG9yVGV4dCwgdGhpcy5fcmFuZ2Uu
ZnJvbSwgdGhpcy5fcmFuZ2UudG8pOwotICAgICAgICB0aGlzLl9yYW5nZS50by5jaCA9IHRoaXMu
X3JhbmdlLmZyb20uY2ggKyBjb2xvclRleHQubGVuZ3RoOwotCisgICAgICAgIHRoaXMudGV4dCA9
IGNvbG9yLnRvU3RyaW5nKCk7CiAgICAgICAgIHRoaXMuX2NvbG9yID0gY29sb3I7CiAgICAgfSwK
IApAQCAtNzcsMTUgKzczLDI4IEBAIFdlYkluc3BlY3Rvci5Db2RlTWlycm9yQ29sb3JFZGl0aW5n
Q29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICB0aGlzLl9kZWxlZ2F0ZSA9
IGRlbGVnYXRlOwogICAgIH0sCisKKyAgICBnZXQgdGV4dCgpCisgICAgeworICAgICAgICB2YXIg
ZnJvbSA9IHtsaW5lOiB0aGlzLl9yYW5nZS5zdGFydExpbmUsIGNoOiB0aGlzLl9yYW5nZS5zdGFy
dENvbHVtbn07CisgICAgICAgIHZhciB0byA9IHtsaW5lOiB0aGlzLl9yYW5nZS5lbmRMaW5lLCBj
aDogdGhpcy5fcmFuZ2UuZW5kQ29sdW1ufTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2NvZGVNaXJy
b3IuZ2V0UmFuZ2UoZnJvbSwgdG8pOworICAgIH0sCisgICAgCisgICAgc2V0IHRleHQodGV4dCkK
KyAgICB7CisgICAgICAgIHZhciBmcm9tID0ge2xpbmU6IHRoaXMuX3JhbmdlLnN0YXJ0TGluZSwg
Y2g6IHRoaXMuX3JhbmdlLnN0YXJ0Q29sdW1ufTsKKyAgICAgICAgdmFyIHRvID0ge2xpbmU6IHRo
aXMuX3JhbmdlLmVuZExpbmUsIGNoOiB0aGlzLl9yYW5nZS5lbmRDb2x1bW59OworICAgICAgICB0
aGlzLl9jb2RlTWlycm9yLnJlcGxhY2VSYW5nZSh0ZXh0LCBmcm9tLCB0byk7CisKKyAgICAgICAg
dGhpcy5fcmFuZ2UgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSh0aGlzLl9yYW5nZS5zdGFy
dExpbmUsIHRoaXMuX3JhbmdlLnN0YXJ0Q29sdW1uLCB0aGlzLl9yYW5nZS5lbmRMaW5lLCB0aGlz
Ll9yYW5nZS5zdGFydENvbHVtbiArIHRleHQubGVuZ3RoKTsKKyAgICB9LAogICAgIAogICAgIHBy
ZXNlbnRIb3Zlck1lbnU6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIHRoaXMuX2hvdmVyTWVu
dSA9IG5ldyBXZWJJbnNwZWN0b3IuSG92ZXJNZW51KHRoaXMpOwogICAgICAgICB0aGlzLl9ob3Zl
ck1lbnUuZWxlbWVudC5jbGFzc0xpc3QuYWRkKCJjb2xvciIpOwotICAgICAgICB0aGlzLl9ib3Vu
ZHMgPSB0aGlzLl9jb2RlTWlycm9yLmJvdW5kc0ZvclJhbmdlKHsKLSAgICAgICAgICAgIHN0YXJ0
OiB0aGlzLl9yYW5nZS5mcm9tLAotICAgICAgICAgICAgZW5kOiB0aGlzLl9yYW5nZS50bwotICAg
ICAgICB9KTsKKyAgICAgICAgdGhpcy5fYm91bmRzID0gdGhpcy5fbWFya2VyLmJvdW5kczsKICAg
ICAgICAgdGhpcy5faG92ZXJNZW51LnByZXNlbnQodGhpcy5fYm91bmRzKTsKICAgICB9LAogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db2RlTWlycm9y
VG9rZW5UcmFja2luZ0NvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlcklu
dGVyZmFjZS9Db2RlTWlycm9yVG9rZW5UcmFja2luZ0NvbnRyb2xsZXIuanMKaW5kZXggMDY0MDhm
N2Y3ZGNlODA4NGE5ZGNhMzYxYTM4MjY5OTM0MDk0MTI5YS4uM2EwNDJlMzE3MWZiZGZiNDM5ODBk
NDA4MWUwNTRhMDFiNzE5OTdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1Vz
ZXJJbnRlcmZhY2UvQ29kZU1pcnJvclRva2VuVHJhY2tpbmdDb250cm9sbGVyLmpzCisrKyBiL1Nv
dXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvZGVNaXJyb3JUb2tlblRyYWNraW5n
Q29udHJvbGxlci5qcwpAQCAtMzA1LDggKzMwNSw3IEBAIFdlYkluc3BlY3Rvci5Db2RlTWlycm9y
VG9rZW5UcmFja2luZ0NvbnRyb2xsZXIucHJvdG90eXBlID0gewogCiAgICAgICAgIGlmICghdG9r
ZW4gfHwgIXRva2VuLnR5cGUgfHwgIXRva2VuLnN0cmluZykgewogICAgICAgICAgICAgaWYgKHRo
aXMuX2hvdmVyZWRNYXJrZXIgJiYgdGhpcy5fZGVsZWdhdGUgJiYgdHlwZW9mIHRoaXMuX2RlbGVn
YXRlLnRva2VuVHJhY2tpbmdDb250cm9sbGVyTW91c2VPdXRPZkhvdmVyZWRNYXJrZXIgPT09ICJm
dW5jdGlvbiIpIHsKLSAgICAgICAgICAgICAgICB2YXIgbWFya2VycyA9IHRoaXMuX2NvZGVNaXJy
b3IuZmluZE1hcmtzQXQocG9zaXRpb24pOwotICAgICAgICAgICAgICAgIGlmICghbWFya2Vycy5j
b250YWlucyh0aGlzLl9ob3ZlcmVkTWFya2VyKSkKKyAgICAgICAgICAgICAgICBpZiAoIXRoaXMu
X2NvZGVNaXJyb3IuZmluZE1hcmtzQXQocG9zaXRpb24pLmNvbnRhaW5zKHRoaXMuX2hvdmVyZWRN
YXJrZXIuY29kZU1pcnJvclRleHRNYXJrZXIpKQogICAgICAgICAgICAgICAgICAgICB0aGlzLl9k
ZWxlZ2F0ZS50b2tlblRyYWNraW5nQ29udHJvbGxlck1vdXNlT3V0T2ZIb3ZlcmVkTWFya2VyKHRo
aXMsIHRoaXMuX2hvdmVyZWRNYXJrZXIpOwogICAgICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwgYi9Tb3VyY2UvV2Vi
SW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9NYWluLmh0bWwKaW5kZXggOWZmOWJiMTcwODI0MGFj
ZWM5NzdjY2RiOTMwOWE5MDJiMzc0YTMzMi4uZDUzMjliNmVkMGQyNTc1MjVhNTVjMjAwMGYxOGRk
YmUzYjliMzVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvTWFpbi5odG1sCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01h
aW4uaHRtbApAQCAtMjg2LDYgKzI4Niw3IEBACiAgICAgPHNjcmlwdCBzcmM9IlJlc291cmNlU2Vh
cmNoTWF0Y2hPYmplY3QuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJTZWFyY2hSZXN1
bHRUcmVlRWxlbWVudC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlRleHRSYW5nZS5q
cyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9IlRleHRNYXJrZXIuanMiPjwvc2NyaXB0Pgog
ICAgIDxzY3JpcHQgc3JjPSJDb25zb2xlTWVzc2FnZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlw
dCBzcmM9IkNvbnNvbGVNZXNzYWdlSW1wbC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IkNvbnNvbGVHcm91cC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9Tb3VyY2VDb2RlVGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzCmluZGV4IGE0
YmZlYmVlMmE4MmE4NDk3OGE1MTEwZGZmYjMyODZhODJlMGM4MjcuLmFlYWZkM2Q1ZDg5ZmI0MzQ0
NDExNjUwMjg1YzY0NGM1NTQzYjc1MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzCkBAIC0xMDE2
LDcgKzEwMTYsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBl
ID0gewogICAgIF9oYXNDb2xvck1hcmtlcnM6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGZv
ciAodmFyIG1hcmtlciBvZiB0aGlzLm1hcmtlcnMpIHsKLSAgICAgICAgICAgIGlmIChtYXJrZXIu
X19tYXJrZWRDb2xvcikKKyAgICAgICAgICAgIGlmIChtYXJrZXIudHlwZSA9PT0gV2ViSW5zcGVj
dG9yLlRleHRNYXJrZXIuVHlwZS5Db2xvcikKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICAgICAgfQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC0xMDcwLDcgKzEwNzAsNyBAQCBX
ZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlID0gewogICAgICAgICB9
CiAKICAgICAgICAgaWYgKHRoaXMudG9rZW5UcmFja2luZ0NvbnRyb2xsZXIubW9kZSA9PT0gV2Vi
SW5zcGVjdG9yLkNvZGVNaXJyb3JUb2tlblRyYWNraW5nQ29udHJvbGxlci5Nb2RlLk1hcmtlZFRv
a2VucykgewotICAgICAgICAgICAgdmFyIG1hcmtlcnMgPSB0aGlzLmZpbmRNYXJrZXJzQXRQb3Np
dGlvbihjYW5kaWRhdGUuaG92ZXJlZFRva2VuUmFuZ2Uuc3RhcnQpOworICAgICAgICAgICAgdmFy
IG1hcmtlcnMgPSB0aGlzLm1hcmtlcnNBdFBvc2l0aW9uKGNhbmRpZGF0ZS5ob3ZlcmVkVG9rZW5S
YW5nZS5zdGFydCk7CiAgICAgICAgICAgICBpZiAobWFya2Vycy5sZW5ndGggPiAwKQogICAgICAg
ICAgICAgICAgIHRoaXMuX3Rva2VuVHJhY2tpbmdDb250cm9sbGVySGlnaGxpZ2h0ZWRNYXJrZWRF
eHByZXNzaW9uKGNhbmRpZGF0ZSwgbWFya2Vycyk7CiAgICAgICAgICAgICBlbHNlCkBAIC0xMjk4
LDcgKzEyOTgsNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBl
ID0gewogICAgIHsKICAgICAgICAgdmFyIGNvbG9yTWFya2VyOwogICAgICAgICBmb3IgKHZhciBt
YXJrZXIgb2YgbWFya2VycykgewotICAgICAgICAgICAgaWYgKG1hcmtlci5fX21hcmtlZENvbG9y
KSB7CisgICAgICAgICAgICBpZiAobWFya2VyLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UZXh0TWFy
a2VyLlR5cGUuQ29sb3IpIHsKICAgICAgICAgICAgICAgICBjb2xvck1hcmtlciA9IG1hcmtlcjsK
ICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KQEAgLTEzNTYsNyArMTM1Niw3
IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAg
CiAgICAgY29sb3JFZGl0aW5nQ29udHJvbGxlckRpZEZpbmlzaEVkaXRpbmc6IGZ1bmN0aW9uKGNv
bG9yRWRpdGluZ0NvbnRyb2xsZXIpCiAgICAgewotICAgICAgICB0aGlzLl91cGRhdGVDb2xvck1h
cmtlcnMoY29sb3JFZGl0aW5nQ29udHJvbGxlci5yYW5nZS5mcm9tLmxpbmUpOworICAgICAgICB0
aGlzLl91cGRhdGVDb2xvck1hcmtlcnMoY29sb3JFZGl0aW5nQ29udHJvbGxlci5yYW5nZS5zdGFy
dExpbmUpOwogCiAgICAgICAgIHRoaXMuX2lnbm9yZUNvbnRlbnREaWRDaGFuZ2UtLTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5q
cyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RleHRFZGl0b3IuanMKaW5k
ZXggOGJiZGYwZjA5MmRlZjI5YWVjMGEyMzAwNzk3MGM1OTJlMTI0Njk0Zi4uOGMwYTVhOGVlZTIw
NTkxNzBmMjczNGI0YTE5MDUwNmQ2NGE2NGI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmpzCkBAIC02MDMsMTMgKzYwMywxNiBAQCBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAKICAgICBnZXQgbWFya2Vycygp
CiAgICAgewotICAgICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIG5vdCByZXR1cm4gQ29kZU1pcnJv
ciBUZXh0TWFya2VyIG9iamVjdHMgYnV0IHJhdGhlciB3cmFwcGVycy4KLSAgICAgICAgcmV0dXJu
IHRoaXMuX2NvZGVNaXJyb3IuZ2V0QWxsTWFya3MoKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2Nv
ZGVNaXJyb3IuZ2V0QWxsTWFya3MoKS5tYXAoZnVuY3Rpb24oY29kZU1pcnJvclRleHRNYXJrZXIp
IHsKKyAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci50ZXh0TWFya2Vy
Rm9yQ29kZU1pcnJvclRleHRNYXJrZXIoY29kZU1pcnJvclRleHRNYXJrZXIpOworICAgICAgICB9
KTsKICAgICB9LAogCi0gICAgZmluZE1hcmtlcnNBdFBvc2l0aW9uOiBmdW5jdGlvbihwb3NpdGlv
bikKKyAgICBtYXJrZXJzQXRQb3NpdGlvbjogZnVuY3Rpb24ocG9zaXRpb24pCiAgICAgewotICAg
ICAgICByZXR1cm4gdGhpcy5fY29kZU1pcnJvci5maW5kTWFya3NBdChwb3NpdGlvbik7CisgICAg
ICAgIHJldHVybiB0aGlzLl9jb2RlTWlycm9yLmZpbmRNYXJrc0F0KHBvc2l0aW9uKS5tYXAoZnVu
Y3Rpb24oY29kZU1pcnJvclRleHRNYXJrZXIpIHsKKyAgICAgICAgICAgIHJldHVybiBXZWJJbnNw
ZWN0b3IuVGV4dE1hcmtlci50ZXh0TWFya2VyRm9yQ29kZU1pcnJvclRleHRNYXJrZXIoY29kZU1p
cnJvclRleHRNYXJrZXIpOworICAgICAgICB9KTsKICAgICB9LAogCiAgICAgY3JlYXRlQ29sb3JN
YXJrZXJzOiBmdW5jdGlvbihsaW5lTnVtYmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3Bl
Y3RvclVJL1VzZXJJbnRlcmZhY2UvVGV4dE1hcmtlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JV
SS9Vc2VySW50ZXJmYWNlL1RleHRNYXJrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWZkY2ViMTU2MzZhZWIz
YWU3ZjU5ZDBkNGUxMTlmMWQxYWUzYmZkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJJ
bnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RleHRNYXJrZXIuanMKQEAgLTAsMCArMSw4NSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKK1dlYkluc3BlY3Rvci5UZXh0TWFya2VyID0gZnVuY3Rpb24oY29kZU1pcnJv
clRleHRNYXJrZXIsIHR5cGUpCit7CisgICAgV2ViSW5zcGVjdG9yLk9iamVjdC5jYWxsKHRoaXMp
OworCisgICAgdGhpcy5fY29kZU1pcnJvclRleHRNYXJrZXIgPSBjb2RlTWlycm9yVGV4dE1hcmtl
cjsKKyAgICBjb2RlTWlycm9yVGV4dE1hcmtlci5fX3dlYkluc3BlY3RvclRleHRNYXJrZXIgPSB0
aGlzOworCisgICAgdGhpcy5fdHlwZSA9IHR5cGUgfHwgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIu
VHlwZS5QbGFpbjsKK30KKworV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIuVHlwZSA9IHsKKyAgICBD
b2xvcjogInRleHQtbWFya2VyLXR5cGUtY29sb3IiLAorICAgIFBsYWluOiAidGV4dC1tYXJrZXIt
dHlwZS1wbGFpbiIKK307CisKK1dlYkluc3BlY3Rvci5UZXh0TWFya2VyLnRleHRNYXJrZXJGb3JD
b2RlTWlycm9yVGV4dE1hcmtlciA9IGZ1bmN0aW9uKGNvZGVNaXJyb3JUZXh0TWFya2VyKQorewor
ICAgIHJldHVybiBjb2RlTWlycm9yVGV4dE1hcmtlci5fX3dlYkluc3BlY3RvclRleHRNYXJrZXIg
fHwgbmV3IFdlYkluc3BlY3Rvci5UZXh0TWFya2VyKGNvZGVNaXJyb3JUZXh0TWFya2VyKTsKK307
CisKK1dlYkluc3BlY3Rvci5UZXh0TWFya2VyLnByb3RvdHlwZSA9IHsKKyAgICBjb25zdHJ1Y3Rv
cjogV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIsCisgICAgX19wcm90b19fOiBXZWJJbnNwZWN0b3Iu
T2JqZWN0LnByb3RvdHlwZSwKKyAgICAKKyAgICAvLyBQdWJsaWMKKworICAgIGdldCBjb2RlTWly
cm9yVGV4dE1hcmtlcigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fY29kZU1pcnJvclRl
eHRNYXJrZXI7CisgICAgfSwKKworICAgIGdldCB0eXBlKCkKKyAgICB7CisgICAgICAgIHJldHVy
biB0aGlzLl90eXBlOworICAgIH0sCisKKyAgICBnZXQgcmFuZ2UoKQorICAgIHsKKyAgICAgICAg
dmFyIHJhbmdlID0gdGhpcy5fY29kZU1pcnJvclRleHRNYXJrZXIuZmluZCgpOworICAgICAgICBp
ZiAoIXJhbmdlKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHJldHVybiBuZXcg
V2ViSW5zcGVjdG9yLlRleHRSYW5nZShyYW5nZS5mcm9tLmxpbmUsIHJhbmdlLmZyb20uY2gsIHJh
bmdlLnRvLmxpbmUsIHJhbmdlLnRvLmNoKTsKKyAgICB9LAorCisgICAgZ2V0IGJvdW5kcygpCisg
ICAgeworICAgICAgICB2YXIgcmFuZ2UgPSB0aGlzLl9jb2RlTWlycm9yVGV4dE1hcmtlci5maW5k
KCk7CisgICAgICAgIGlmICghcmFuZ2UpCisgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9y
LlJlY3QuWkVST19SRUNUOworICAgICAgICByZXR1cm4gdGhpcy5fY29kZU1pcnJvclRleHRNYXJr
ZXIuZG9jLmNtLmJvdW5kc0ZvclJhbmdlKHsKKyAgICAgICAgICAgIHN0YXJ0OiByYW5nZS5mcm9t
LAorICAgICAgICAgICAgZW5kOiByYW5nZS50bworICAgICAgICB9KTsKKyAgICB9LAorICAgIAor
ICAgIGNsZWFyOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9jb2RlTWlycm9yVGV4
dE1hcmtlci5jbGVhcigpOworICAgIH0KK307Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>219174</attachid>
            <date>2013-12-13 10:54:15 -0800</date>
            <delta_ts>2013-12-13 11:29:42 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-125695-20131213195427.patch</filename>
            <type>text/plain</type>
            <size>17301</size>
            <attacher name="Antoine Quint">graouts</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwNDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVj
dG9yVUkvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkluc3BlY3RvclVJL0NoYW5nZUxvZwppbmRleCA5
MDFhNjY5Nzc5YjQxNTRlOWVjOWFmMjhhNGM0MTI1OGMwOTYyODFkLi5iNGE3NjZjMTEzM2VlYjk2
ZTUwYWM4NmUwMmI3Y2ZhNTk3ZTFhYjIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9y
VUkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw5MSBAQAorMjAxMy0xMi0xMyAgQW50b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgYW4gYWJzdHJhY3Rpb24gZm9yIENv
ZGVNaXJyb3IncyBUZXh0TWFya2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMjU2OTUKKworICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNo
ZXIuCisKKyAgICAgICAgSW50cm9kdWNlIGEgbmV3IFdlYkluc3BlY3Rvci5UZXh0TWFya2VyIGNs
YXNzIHdoaWNoIGlzIHVzZWQgYnkgY29kZSB3aXRoIENvZGVNaXJyb3Iga25vd2xlZGdlCisgICAg
ICAgIHRvIHJldHVybiBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIHRleHQgbWFya2VycyB0byBvYmpl
Y3RzIHRoYXQgc2hvdWxkIGhhdmUgbm8gZGlyZWN0IGtub3dsZWRnZQorICAgICAgICBvZiBDb2Rl
TWlycm9yLiBTdGFydCB1c2luZyB0aGlzIGNsYXNzIGluIFRleHRFZGl0b3IgYW5kIFNvdXJjZUNv
ZGVUZXh0RWRpdG9yIHRvIHJlbW92ZSB0aGUKKyAgICAgICAgbGFzdCByZW1haW5pbmcgcGllY2Vz
IG9mIENvZGVNaXJyb3Iga25vd2xlZGdlIGFkZGVkIHRvIFNvdXJjZUNvZGVUZXh0RWRpdG9yIHRv
IGZpeAorICAgICAgICBodHRwczovL3dlYmtpdC5vcmcvYi8xMjQzNjQuCisKKyAgICAgICAgKiBV
c2VySW50ZXJmYWNlL0NvZGVNaXJyb3JBZGRpdGlvbnMuanM6CisgICAgICAgIFN0b3AgdXNpbmcg
X19tYXJrZWRDb2xvciB0byBpZGVudGlmeSBhIGNvbG9yIG1hcmtlciBhbmQgaW5zdGVhZCB1c2Ug
dGhlIHR5cGUgb24gdGhlIG1hdGNoaW5nCisgICAgICAgIFdlYkluc3BlY3Rvci5UZXh0TWFya2Vy
LiBBZGRpdGlvbmFsbHksIGNyZWF0ZSBhIFdlYkluc3BlY3Rvci5UZXh0TWFya2VyIHdpdGggdHlw
ZQorICAgICAgICBXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci5UeXBlLkNvbG9yIGluIGNyZWF0ZUNv
bG9yTWFya2VycygpLgorICAgICAgICAKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL0NvZGVNaXJy
b3JDb2xvckVkaXRpbmdDb250cm9sbGVyLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkNvZGVN
aXJyb3JDb2xvckVkaXRpbmdDb250cm9sbGVyKToKKyAgICAgICAgVXNlIGEgV2ViSW5zcGVjdG9y
LlRleHRSYW5nZSB0byB0cmFjayB0aGUgZWRpdGVkIHJhbmdlIGFuZCBvYnRhaW4gaXQgZGlyZWN0
bHkgZnJvbSB0aGUKKyAgICAgICAgV2ViSW5zcGVjdG9yLlRleHRNYWtlciB1c2VkIHRvIGluc3Rh
bnRpYXRlIHRoZSBvYmplY3QuIFdlIGFsc28gdXNlIHRoZSBuZXcgInRleHQiIHB1YmxpYworICAg
ICAgICBwcm9wZXJ0eSB0byBjcmVhdGUgdGhlIGNvbG9yLgorCisgICAgICAgIChXZWJJbnNwZWN0
b3IuQ29kZU1pcnJvckNvbG9yRWRpdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlLnNldCBjb2xvcik6
CisgICAgICAgIFNpbXBseSBhc3NpbmcgdGhlIHNlcmlhbGl6ZWQgY29sb3IgdG8gdGhlIG5ldyAi
dGV4dCIgcHVibGljIHByb3BlcnR5LgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuQ29kZU1pcnJv
ckNvbG9yRWRpdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlLmdldCB0ZXh0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db2RlTWlycm9yQ29sb3JFZGl0aW5nQ29udHJvbGxlci5wcm90b3R5cGUuc2V0
IHRleHQpOgorICAgICAgICBOZXcgcHVibGljIHByb3BlcnR5IHRvIHNldCBnZXQgYW5kIHNldCB0
aGUgdGV4dCBmb3IgdGhlIGVkaXRlZCByYW5nZSwgYXV0b21hdGljYWxseSB1cGRhdGluZworICAg
ICAgICB0aGUgcmFuZ2UgdXBvbiBzZXR0aW5nIHRvIGEgbmV3IHRleHQuCisKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Db2RlTWlycm9yQ29sb3JFZGl0aW5nQ29udHJvbGxlci5wcm90b3R5cGUucHJl
c2VudEhvdmVyTWVudSk6CisgICAgICAgIE9idGFpbiB0aGUgYm91bmRzIGRpcmVjdGx5IGZyb20g
dGhlIFdlYkluc3BlY3Rvci5UZXh0TWFya2VyIG9iamVjdC4KKworICAgICAgICAqIFVzZXJJbnRl
cmZhY2UvQ29kZU1pcnJvclRva2VuVHJhY2tpbmdDb250cm9sbGVyLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLkNvZGVNaXJyb3JUb2tlblRyYWNraW5nQ29udHJvbGxlci5wcm90b3R5cGUuX3Vw
ZGF0ZUhvdmVyZWRUb2tlbkluZm8pOgorICAgICAgICBTaW5jZSB3ZSdyZSBub3cgdHJhY2tpbmcg
dGhlIGhvdmVyZWRNYXJrZXIgYXMgYSBXZWJJbnNwZWN0b3IuVGV4dE1hcmtlciwgZ2V0IHRoZSBD
b2RlTWlycm9yCisgICAgICAgIFRleHRNYXJrZXIgZnJvbSB0aGF0IG9iamVjdCB0byBjaGVjayBp
ZiBpdCdzIGNvbnRhaW5lZCB3aXRoaW4gdGhlIHRleHQgbWFya2VycyBhdCB0aGUKKyAgICAgICAg
aG92ZXJlZCBwb3NpdGlvbi4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvTWFpbi5odG1sOgor
ICAgICAgICBBZGQgdGhlIG5ldyBUZXh0TWFya2VyIGNsYXNzIHNvdXJjZS4KKworICAgICAgICAq
IFVzZXJJbnRlcmZhY2UvU291cmNlQ29kZVRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlLl9oYXNDb2xvck1hcmtlcnMpOgor
ICAgICAgICBVc2UgdGhlIFdlYkluc3BlY3Rvci5UZXh0TWFya2VyIHR5cGUgdG8gaWRlbnRpZnkg
YSBnaXZlbiB0ZXh0IG1hcmtlciBpcyBtYXJraW5nIGEgY29sb3IuCisKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUudG9rZW5UcmFja2luZ0NvbnRy
b2xsZXJOZXdIaWdobGlnaHRDYW5kaWRhdGUpOgorICAgICAgICBVc2UgdGhlIHJlbmFtZWQgbWFy
a2Vyc0F0UG9zaXRpb24oKSBtZXRob2QgZnJvbSBUZXh0RWRpdG9yLgorCisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU291cmNlQ29kZVRleHRFZGl0b3IucHJvdG90eXBlLl90b2tlblRyYWNraW5nQ29u
dHJvbGxlckhpZ2hsaWdodGVkTWFya2VkRXhwcmVzc2lvbik6CisgICAgICAgIFVzZSB0aGUgV2Vi
SW5zcGVjdG9yLlRleHRNYXJrZXIgdHlwZSB0byBpZGVudGlmeSBhIGdpdmVuIHRleHQgbWFya2Vy
IGlzIG1hcmtpbmcgYSBjb2xvci4KKworICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVU
ZXh0RWRpdG9yLnByb3RvdHlwZS5jb2xvckVkaXRpbmdDb250cm9sbGVyRGlkRmluaXNoRWRpdGlu
Zyk6CisgICAgICAgIFNpbmNlIHRoZSBDb2RlTWlycm9yQ29sb3JFZGl0aW5nQ29udHJvbGxlciBp
cyBub3cgdXNpbmcgYSBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlIGZvciBpdHMgcmFuZ2UsCisgICAg
ICAgIHVwZGF0ZSB0byB1c2UgYSBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlIEFQSSB0byBnZXQgdGhl
IHJhbmdlJ3Mgc3RhcnQgbGluZS4KKworICAgICAgICAqIFVzZXJJbnRlcmZhY2UvVGV4dEVkaXRv
ci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5nZXQgbWFy
a2Vycyk6CisgICAgICAgIFJldHVybiBXZWJJbnNwZWN0b3IuVGV4dE1hcmtlciBvYmplY3RzIGlu
c3RlYWQgb2YgQ29kZU1pcnJvciBUZXh0UmFuZ2Ugb2JqZWN0cy4KKworICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3IucHJvdG90eXBlLm1hcmtlcnNBdFBvc2l0aW9uKToKKyAgICAgICAg
UmVuYW1lIG1ldGhvZCB0byBhIGJldHRlciBuYW1lIGluc3RlYWQgb2YgdXNpbmcgdGhlIENvZGVN
aXJyb3ItaW5mbHVlbmNlZCBuYW1lLiBBbHNvLCByZXR1cm4KKyAgICAgICAgV2ViSW5zcGVjdG9y
LlRleHRNYXJrZXIgb2JqZWN0cyBpbnN0ZWFkIG9mIENvZGVNaXJyb3IgVGV4dFJhbmdlIG9iamVj
dHMuCisKKyAgICAgICAgKiBVc2VySW50ZXJmYWNlL1RleHRNYXJrZXIuanM6IEFkZGVkLgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIpOgorICAgICAgICBDcmVhdGUgYSBXZWJJbnNw
ZWN0b3IuVGV4dE1hcmtlciB3aXRoIGEgQ29kZU1pcnJvciBUZXh0TWFya2VyIGFuZCBhbiBvcHRp
b25hbCB0eXBlLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci50ZXh0TWFya2Vy
Rm9yQ29kZU1pcnJvclRleHRNYXJrZXIpOgorICAgICAgICBTdGF0aWMgbWV0aG9kIHRvIGVpdGhl
ciBvYnRhaW4gdGhlIGV4aXN0aW5nIFdlYkluc3BlY3Rvci5UZXh0TWFya2VyIGZvciBhIGdpdmVu
IENvZGVNaXJyb3IKKyAgICAgICAgVGV4dE1hcmtlciwgb3IgY3JlYXRlIGEgbmV3IFdlYkluc3Bl
Y3Rvci5UZXh0TWFya2VyLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci5wcm90
b3R5cGUuZ2V0IGNvZGVNaXJyb3JUZXh0TWFya2VyKToKKyAgICAgICAgUHVibGljIHByb3BlcnR5
IHRvIGFjY2VzcyB0aGUgQ29kZU1pcnJvciBUZXh0TWFya2VyIG9iamVjdHMgZm9yIGNsYXNzZXMg
dGhhdCBoYXZlIGRpcmVjdAorICAgICAgICBrbm93bGVkZ2Ugb2YgQ29kZU1pcnJvci4KKworICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIucHJvdG90eXBlLmdldCB0eXBlKToKKyAgICAg
ICAgUHVibGljIHByb3BlcnR5IHRvIGFjY2VzcyB0aGUgdHlwZSB1c2VkIHRvIGNyZWF0ZSB0aGlz
IHRleHQgbWFya2VyLgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci5wcm90b3R5
cGUuZ2V0IHJhbmdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLnByb3RvdHlw
ZS5nZXQgYm91bmRzKToKKyAgICAgICAgUHVibGljIHByb3BlcnRpZXMgYWxsb3dpbmcgZWFzeSBh
Y2Nlc3MgdG8gZ2VuZXJhbGx5IHVzZWZ1bCBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIG1hcmtlZCB0
ZXh0LgorCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci5wcm90b3R5cGUuY2xlYXIp
OgorICAgICAgICBXcmFwcGVyIGZvciB0aGUgQ29kZU1pcnJvciBUZXh0TWFya2VyIGNsZWFyKCkg
bWV0aG9kLgorCiAyMDEzLTEyLTEyICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogYWxsb3cgZWRpdGluZyBvZiBjb2xvcnMgaW4gQ1NT
IHJlc291cmNlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZh
Y2UvQ29kZU1pcnJvckFkZGl0aW9ucy5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50
ZXJmYWNlL0NvZGVNaXJyb3JBZGRpdGlvbnMuanMKaW5kZXggZWQ4NWM5MDEzZjBkNjExNGQ0YjA3
NmZlYThlNjQ1ZWRhMTdkNzRjMS4uNjUyNjBkYTU0MjAzNjk0NGZkNGUxYWEwZGMwMjJkOGE0NzRm
OGIzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29k
ZU1pcnJvckFkZGl0aW9ucy5qcworKysgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9Db2RlTWlycm9yQWRkaXRpb25zLmpzCkBAIC00NTAsMTAgKzQ1MCwxMCBAQAogICAgICAg
ICAgICAgICAgIHZhciBmb3VuZENvbG9yTWFya2VyID0gZmFsc2U7CiAgICAgICAgICAgICAgICAg
dmFyIG1hcmtlcnMgPSB0aGlzLmZpbmRNYXJrc0F0KHRvKTsKICAgICAgICAgICAgICAgICBmb3Ig
KHZhciBqID0gMDsgaiA8IG1hcmtlcnMubGVuZ3RoOyArK2opIHsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKCFtYXJrZXJzW2pdLl9fbWFya2VkQ29sb3IpCi0gICAgICAgICAgICAgICAgICAgICAg
ICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICAgICAgZm91bmRDb2xvck1hcmtlciA9IHRydWU7
Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICBpZiAoV2Vi
SW5zcGVjdG9yLlRleHRNYXJrZXIudGV4dE1hcmtlckZvckNvZGVNaXJyb3JUZXh0TWFya2VyKG1h
cmtlcnNbal0pLnR5cGUgPT09IFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLlR5cGUuQ29sb3IpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGZvdW5kQ29sb3JNYXJrZXIgPSB0cnVlOworICAgICAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgICAgICBpZiAoZm91bmRDb2xvck1hcmtlcikgewpAQCAt
NDY5LDcgKzQ2OSw3IEBACiAgICAgICAgICAgICAgICAgfQogCiAgICAgICAgICAgICAgICAgdmFy
IG1hcmtlciA9IHRoaXMubWFya1RleHQoZnJvbSwgdG8pOwotICAgICAgICAgICAgICAgIG1hcmtl
ci5fX21hcmtlZENvbG9yID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBtYXJrZXIgPSBuZXcgV2Vi
SW5zcGVjdG9yLlRleHRNYXJrZXIobWFya2VyLCBXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci5UeXBl
LkNvbG9yKTsKIAogICAgICAgICAgICAgICAgIGNyZWF0ZWRNYXJrZXJzLnB1c2gobWFya2VyKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29kZU1p
cnJvckNvbG9yRWRpdGluZ0NvbnRyb2xsZXIuanMgYi9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNl
ckludGVyZmFjZS9Db2RlTWlycm9yQ29sb3JFZGl0aW5nQ29udHJvbGxlci5qcwppbmRleCA2NmEz
Zjk2ZTVkYmUwNTg3YjJmOTFhZWRiYmZhYjU4MmRkODY3ZjI4Li5iZDI0MmEwYTdjMzY4NThiZmRh
MTJhMTU1MWJjYjViZTExNDBhNDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db2RlTWlycm9yQ29sb3JFZGl0aW5nQ29udHJvbGxlci5qcworKysgYi9T
b3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9Db2RlTWlycm9yQ29sb3JFZGl0aW5n
Q29udHJvbGxlci5qcwpAQCAtMzEsOSArMzEsOCBAQCBXZWJJbnNwZWN0b3IuQ29kZU1pcnJvckNv
bG9yRWRpdGluZ0NvbnRyb2xsZXIgPSBmdW5jdGlvbihjb2RlTWlycm9yLCBtYXJrZXIpCiAgICAg
dGhpcy5fbWFya2VyID0gbWFya2VyOwogICAgIHRoaXMuX2RlbGVnYXRlID0gbnVsbDsKIAotICAg
IHRoaXMuX3JhbmdlID0gbWFya2VyLmZpbmQoKTsKLQotICAgIHRoaXMuX2NvbG9yID0gV2ViSW5z
cGVjdG9yLkNvbG9yLmZyb21TdHJpbmcoY29kZU1pcnJvci5nZXRSYW5nZSh0aGlzLl9yYW5nZS5m
cm9tLCB0aGlzLl9yYW5nZS50bykpOworICAgIHRoaXMuX3JhbmdlID0gbWFya2VyLnJhbmdlOwor
ICAgIHRoaXMuX2NvbG9yID0gV2ViSW5zcGVjdG9yLkNvbG9yLmZyb21TdHJpbmcodGhpcy50ZXh0
KTsKIAogICAgIHRoaXMuX2tleWJvYXJkU2hvcnRjdXRFc2MgPSBuZXcgV2ViSW5zcGVjdG9yLktl
eWJvYXJkU2hvcnRjdXQobnVsbCwgV2ViSW5zcGVjdG9yLktleWJvYXJkU2hvcnRjdXQuS2V5LkVz
Y2FwZSk7CiB9CkBAIC02MSwxMCArNjAsNyBAQCBXZWJJbnNwZWN0b3IuQ29kZU1pcnJvckNvbG9y
RWRpdGluZ0NvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgIAogICAgIHNldCBjb2xvcihjb2xv
cikKICAgICB7Ci0gICAgICAgIHZhciBjb2xvclRleHQgPSBjb2xvci50b1N0cmluZygpOwotICAg
ICAgICB0aGlzLl9jb2RlTWlycm9yLnJlcGxhY2VSYW5nZShjb2xvclRleHQsIHRoaXMuX3Jhbmdl
LmZyb20sIHRoaXMuX3JhbmdlLnRvKTsKLSAgICAgICAgdGhpcy5fcmFuZ2UudG8uY2ggPSB0aGlz
Ll9yYW5nZS5mcm9tLmNoICsgY29sb3JUZXh0Lmxlbmd0aDsKLQorICAgICAgICB0aGlzLnRleHQg
PSBjb2xvci50b1N0cmluZygpOwogICAgICAgICB0aGlzLl9jb2xvciA9IGNvbG9yOwogICAgIH0s
CiAKQEAgLTc3LDE1ICs3MywzMSBAQCBXZWJJbnNwZWN0b3IuQ29kZU1pcnJvckNvbG9yRWRpdGlu
Z0NvbnRyb2xsZXIucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdGhpcy5fZGVsZWdhdGUg
PSBkZWxlZ2F0ZTsKICAgICB9LAorCisgICAgZ2V0IHRleHQoKQorICAgIHsKKyAgICAgICAgdmFy
IGZyb20gPSB7bGluZTogdGhpcy5fcmFuZ2Uuc3RhcnRMaW5lLCBjaDogdGhpcy5fcmFuZ2Uuc3Rh
cnRDb2x1bW59OworICAgICAgICB2YXIgdG8gPSB7bGluZTogdGhpcy5fcmFuZ2UuZW5kTGluZSwg
Y2g6IHRoaXMuX3JhbmdlLmVuZENvbHVtbn07CisgICAgICAgIHJldHVybiB0aGlzLl9jb2RlTWly
cm9yLmdldFJhbmdlKGZyb20sIHRvKTsKKyAgICB9LAorICAgIAorICAgIHNldCB0ZXh0KHRleHQp
CisgICAgeworICAgICAgICB2YXIgZnJvbSA9IHtsaW5lOiB0aGlzLl9yYW5nZS5zdGFydExpbmUs
IGNoOiB0aGlzLl9yYW5nZS5zdGFydENvbHVtbn07CisgICAgICAgIHZhciB0byA9IHtsaW5lOiB0
aGlzLl9yYW5nZS5lbmRMaW5lLCBjaDogdGhpcy5fcmFuZ2UuZW5kQ29sdW1ufTsKKyAgICAgICAg
dGhpcy5fY29kZU1pcnJvci5yZXBsYWNlUmFuZ2UodGV4dCwgZnJvbSwgdG8pOworCisgICAgICAg
IHZhciBsaW5lcyA9IHRleHQuc3BsaXQoIlxuIik7CisgICAgICAgIHZhciBlbmRMaW5lID0gdGhp
cy5fcmFuZ2Uuc3RhcnRMaW5lICsgbGluZXMubGVuZ3RoIC0gMTsKKyAgICAgICAgdmFyIGVuZENv
bHVtbiA9IGxpbmVzLmxlbmd0aCA+IDEgPyBsaW5lcy5sYXN0VmFsdWUubGVuZ3RoIDogdGhpcy5f
cmFuZ2Uuc3RhcnRDb2x1bW4gKyB0ZXh0Lmxlbmd0aDsKKyAgICAgICAgdGhpcy5fcmFuZ2UgPSBu
ZXcgV2ViSW5zcGVjdG9yLlRleHRSYW5nZSh0aGlzLl9yYW5nZS5zdGFydExpbmUsIHRoaXMuX3Jh
bmdlLnN0YXJ0Q29sdW1uLCBlbmRMaW5lLCBlbmRDb2x1bW4pOworICAgIH0sCiAgICAgCiAgICAg
cHJlc2VudEhvdmVyTWVudTogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5faG92ZXJN
ZW51ID0gbmV3IFdlYkluc3BlY3Rvci5Ib3Zlck1lbnUodGhpcyk7CiAgICAgICAgIHRoaXMuX2hv
dmVyTWVudS5lbGVtZW50LmNsYXNzTGlzdC5hZGQoImNvbG9yIik7Ci0gICAgICAgIHRoaXMuX2Jv
dW5kcyA9IHRoaXMuX2NvZGVNaXJyb3IuYm91bmRzRm9yUmFuZ2UoewotICAgICAgICAgICAgc3Rh
cnQ6IHRoaXMuX3JhbmdlLmZyb20sCi0gICAgICAgICAgICBlbmQ6IHRoaXMuX3JhbmdlLnRvCi0g
ICAgICAgIH0pOworICAgICAgICB0aGlzLl9ib3VuZHMgPSB0aGlzLl9tYXJrZXIuYm91bmRzOwog
ICAgICAgICB0aGlzLl9ob3Zlck1lbnUucHJlc2VudCh0aGlzLl9ib3VuZHMpOwogICAgIH0sCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL0NvZGVNaXJy
b3JUb2tlblRyYWNraW5nQ29udHJvbGxlci5qcyBiL1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2Vy
SW50ZXJmYWNlL0NvZGVNaXJyb3JUb2tlblRyYWNraW5nQ29udHJvbGxlci5qcwppbmRleCAwNjQw
OGY3ZjdkY2U4MDg0YTlkY2EzNjFhMzgyNjk5MzQwOTQxMjlhLi4zYTA0MmUzMTcxZmJkZmI0Mzk4
MGQ0MDgxZTA1NGEwMWI3MTk5N2FjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkv
VXNlckludGVyZmFjZS9Db2RlTWlycm9yVG9rZW5UcmFja2luZ0NvbnRyb2xsZXIuanMKKysrIGIv
U291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvQ29kZU1pcnJvclRva2VuVHJhY2tp
bmdDb250cm9sbGVyLmpzCkBAIC0zMDUsOCArMzA1LDcgQEAgV2ViSW5zcGVjdG9yLkNvZGVNaXJy
b3JUb2tlblRyYWNraW5nQ29udHJvbGxlci5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgaWYgKCF0
b2tlbiB8fCAhdG9rZW4udHlwZSB8fCAhdG9rZW4uc3RyaW5nKSB7CiAgICAgICAgICAgICBpZiAo
dGhpcy5faG92ZXJlZE1hcmtlciAmJiB0aGlzLl9kZWxlZ2F0ZSAmJiB0eXBlb2YgdGhpcy5fZGVs
ZWdhdGUudG9rZW5UcmFja2luZ0NvbnRyb2xsZXJNb3VzZU91dE9mSG92ZXJlZE1hcmtlciA9PT0g
ImZ1bmN0aW9uIikgewotICAgICAgICAgICAgICAgIHZhciBtYXJrZXJzID0gdGhpcy5fY29kZU1p
cnJvci5maW5kTWFya3NBdChwb3NpdGlvbik7Ci0gICAgICAgICAgICAgICAgaWYgKCFtYXJrZXJz
LmNvbnRhaW5zKHRoaXMuX2hvdmVyZWRNYXJrZXIpKQorICAgICAgICAgICAgICAgIGlmICghdGhp
cy5fY29kZU1pcnJvci5maW5kTWFya3NBdChwb3NpdGlvbikuY29udGFpbnModGhpcy5faG92ZXJl
ZE1hcmtlci5jb2RlTWlycm9yVGV4dE1hcmtlcikpCiAgICAgICAgICAgICAgICAgICAgIHRoaXMu
X2RlbGVnYXRlLnRva2VuVHJhY2tpbmdDb250cm9sbGVyTW91c2VPdXRPZkhvdmVyZWRNYXJrZXIo
dGhpcywgdGhpcy5faG92ZXJlZE1hcmtlcik7CiAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbCBiL1NvdXJjZS9X
ZWJJbnNwZWN0b3JVSS9Vc2VySW50ZXJmYWNlL01haW4uaHRtbAppbmRleCA5ZmY5YmIxNzA4MjQw
YWNlYzk3N2NjZGI5MzA5YTkwMmIzNzRhMzMyLi5kNTMyOWI2ZWQwZDI1NzUyNWE1NWMyMDAwZjE4
ZGRiZTNiOWIzNWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVy
ZmFjZS9NYWluLmh0bWwKKysrIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2Uv
TWFpbi5odG1sCkBAIC0yODYsNiArMjg2LDcgQEAKICAgICA8c2NyaXB0IHNyYz0iUmVzb3VyY2VT
ZWFyY2hNYXRjaE9iamVjdC5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IlNlYXJjaFJl
c3VsdFRyZWVFbGVtZW50LmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iVGV4dFJhbmdl
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iVGV4dE1hcmtlci5qcyI+PC9zY3JpcHQ+
CiAgICAgPHNjcmlwdCBzcmM9IkNvbnNvbGVNZXNzYWdlLmpzIj48L3NjcmlwdD4KICAgICA8c2Ny
aXB0IHNyYz0iQ29uc29sZU1lc3NhZ2VJbXBsLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNy
Yz0iQ29uc29sZUdyb3VwLmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1NvdXJjZUNvZGVUZXh0RWRpdG9yLmpzIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvU291cmNlQ29kZVRleHRFZGl0b3IuanMKaW5kZXgg
YTRiZmViZWUyYTgyYTg0OTc4YTUxMTBkZmZiMzI4NmE4MmUwYzgyNy4uYWVhZmQzZDVkODlmYjQz
NDQ0MTE2NTAyODVjNjQ0YzU1NDNiNzUzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvU291cmNlQ29kZVRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvU291cmNlQ29kZVRleHRFZGl0b3IuanMKQEAgLTEw
MTYsNyArMTAxNiw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5
cGUgPSB7CiAgICAgX2hhc0NvbG9yTWFya2VyczogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAg
Zm9yICh2YXIgbWFya2VyIG9mIHRoaXMubWFya2VycykgewotICAgICAgICAgICAgaWYgKG1hcmtl
ci5fX21hcmtlZENvbG9yKQorICAgICAgICAgICAgaWYgKG1hcmtlci50eXBlID09PSBXZWJJbnNw
ZWN0b3IuVGV4dE1hcmtlci5UeXBlLkNvbG9yKQogICAgICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogICAgICAgICB9CiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTEwNzAsNyArMTA3MCw3IEBA
IFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAodGhpcy50b2tlblRyYWNraW5nQ29udHJvbGxlci5tb2RlID09PSBX
ZWJJbnNwZWN0b3IuQ29kZU1pcnJvclRva2VuVHJhY2tpbmdDb250cm9sbGVyLk1vZGUuTWFya2Vk
VG9rZW5zKSB7Ci0gICAgICAgICAgICB2YXIgbWFya2VycyA9IHRoaXMuZmluZE1hcmtlcnNBdFBv
c2l0aW9uKGNhbmRpZGF0ZS5ob3ZlcmVkVG9rZW5SYW5nZS5zdGFydCk7CisgICAgICAgICAgICB2
YXIgbWFya2VycyA9IHRoaXMubWFya2Vyc0F0UG9zaXRpb24oY2FuZGlkYXRlLmhvdmVyZWRUb2tl
blJhbmdlLnN0YXJ0KTsKICAgICAgICAgICAgIGlmIChtYXJrZXJzLmxlbmd0aCA+IDApCiAgICAg
ICAgICAgICAgICAgdGhpcy5fdG9rZW5UcmFja2luZ0NvbnRyb2xsZXJIaWdobGlnaHRlZE1hcmtl
ZEV4cHJlc3Npb24oY2FuZGlkYXRlLCBtYXJrZXJzKTsKICAgICAgICAgICAgIGVsc2UKQEAgLTEy
OTgsNyArMTI5OCw3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VDb2RlVGV4dEVkaXRvci5wcm90b3R5
cGUgPSB7CiAgICAgewogICAgICAgICB2YXIgY29sb3JNYXJrZXI7CiAgICAgICAgIGZvciAodmFy
IG1hcmtlciBvZiBtYXJrZXJzKSB7Ci0gICAgICAgICAgICBpZiAobWFya2VyLl9fbWFya2VkQ29s
b3IpIHsKKyAgICAgICAgICAgIGlmIChtYXJrZXIudHlwZSA9PT0gV2ViSW5zcGVjdG9yLlRleHRN
YXJrZXIuVHlwZS5Db2xvcikgewogICAgICAgICAgICAgICAgIGNvbG9yTWFya2VyID0gbWFya2Vy
OwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpAQCAtMTM1Niw3ICsxMzU2
LDcgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUNvZGVUZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAg
ICAKICAgICBjb2xvckVkaXRpbmdDb250cm9sbGVyRGlkRmluaXNoRWRpdGluZzogZnVuY3Rpb24o
Y29sb3JFZGl0aW5nQ29udHJvbGxlcikKICAgICB7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZUNvbG9y
TWFya2Vycyhjb2xvckVkaXRpbmdDb250cm9sbGVyLnJhbmdlLmZyb20ubGluZSk7CisgICAgICAg
IHRoaXMuX3VwZGF0ZUNvbG9yTWFya2Vycyhjb2xvckVkaXRpbmdDb250cm9sbGVyLnJhbmdlLnN0
YXJ0TGluZSk7CiAKICAgICAgICAgdGhpcy5faWdub3JlQ29udGVudERpZENoYW5nZS0tOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5zcGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXh0RWRpdG9y
LmpzIGIvU291cmNlL1dlYkluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGV4dEVkaXRvci5qcwpp
bmRleCA4YmJkZjBmMDkyZGVmMjlhZWMwYTIzMDA3OTcwYzU5MmUxMjQ2OTRmLi44YzBhNWE4ZWVl
MjA1OTE3MGYyNzM0YjRhMTkwNTA2ZDY0YTY0YjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJJbnNw
ZWN0b3JVSS9Vc2VySW50ZXJmYWNlL1RleHRFZGl0b3IuanMKQEAgLTYwMywxMyArNjAzLDE2IEBA
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKIAogICAgIGdldCBtYXJrZXJz
KCkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiB3ZSBzaG91bGQgbm90IHJldHVybiBDb2RlTWly
cm9yIFRleHRNYXJrZXIgb2JqZWN0cyBidXQgcmF0aGVyIHdyYXBwZXJzLgotICAgICAgICByZXR1
cm4gdGhpcy5fY29kZU1pcnJvci5nZXRBbGxNYXJrcygpOworICAgICAgICByZXR1cm4gdGhpcy5f
Y29kZU1pcnJvci5nZXRBbGxNYXJrcygpLm1hcChmdW5jdGlvbihjb2RlTWlycm9yVGV4dE1hcmtl
cikgeworICAgICAgICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5UZXh0TWFya2VyLnRleHRNYXJr
ZXJGb3JDb2RlTWlycm9yVGV4dE1hcmtlcihjb2RlTWlycm9yVGV4dE1hcmtlcik7CisgICAgICAg
IH0pOwogICAgIH0sCiAKLSAgICBmaW5kTWFya2Vyc0F0UG9zaXRpb246IGZ1bmN0aW9uKHBvc2l0
aW9uKQorICAgIG1hcmtlcnNBdFBvc2l0aW9uOiBmdW5jdGlvbihwb3NpdGlvbikKICAgICB7Ci0g
ICAgICAgIHJldHVybiB0aGlzLl9jb2RlTWlycm9yLmZpbmRNYXJrc0F0KHBvc2l0aW9uKTsKKyAg
ICAgICAgcmV0dXJuIHRoaXMuX2NvZGVNaXJyb3IuZmluZE1hcmtzQXQocG9zaXRpb24pLm1hcChm
dW5jdGlvbihjb2RlTWlycm9yVGV4dE1hcmtlcikgeworICAgICAgICAgICAgcmV0dXJuIFdlYklu
c3BlY3Rvci5UZXh0TWFya2VyLnRleHRNYXJrZXJGb3JDb2RlTWlycm9yVGV4dE1hcmtlcihjb2Rl
TWlycm9yVGV4dE1hcmtlcik7CisgICAgICAgIH0pOwogICAgIH0sCiAKICAgICBjcmVhdGVDb2xv
ck1hcmtlcnM6IGZ1bmN0aW9uKGxpbmVOdW1iZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViSW5z
cGVjdG9yVUkvVXNlckludGVyZmFjZS9UZXh0TWFya2VyLmpzIGIvU291cmNlL1dlYkluc3BlY3Rv
clVJL1VzZXJJbnRlcmZhY2UvVGV4dE1hcmtlci5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZmRjZWIxNTYzNmFl
YjNhZTdmNTlkMGQ0ZTExOWYxZDFhZTNiZmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
Ykluc3BlY3RvclVJL1VzZXJJbnRlcmZhY2UvVGV4dE1hcmtlci5qcwpAQCAtMCwwICsxLDg1IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIgPSBmdW5jdGlvbihjb2RlTWly
cm9yVGV4dE1hcmtlciwgdHlwZSkKK3sKKyAgICBXZWJJbnNwZWN0b3IuT2JqZWN0LmNhbGwodGhp
cyk7CisKKyAgICB0aGlzLl9jb2RlTWlycm9yVGV4dE1hcmtlciA9IGNvZGVNaXJyb3JUZXh0TWFy
a2VyOworICAgIGNvZGVNaXJyb3JUZXh0TWFya2VyLl9fd2ViSW5zcGVjdG9yVGV4dE1hcmtlciA9
IHRoaXM7CisKKyAgICB0aGlzLl90eXBlID0gdHlwZSB8fCBXZWJJbnNwZWN0b3IuVGV4dE1hcmtl
ci5UeXBlLlBsYWluOworfQorCitXZWJJbnNwZWN0b3IuVGV4dE1hcmtlci5UeXBlID0geworICAg
IENvbG9yOiAidGV4dC1tYXJrZXItdHlwZS1jb2xvciIsCisgICAgUGxhaW46ICJ0ZXh0LW1hcmtl
ci10eXBlLXBsYWluIgorfTsKKworV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIudGV4dE1hcmtlckZv
ckNvZGVNaXJyb3JUZXh0TWFya2VyID0gZnVuY3Rpb24oY29kZU1pcnJvclRleHRNYXJrZXIpCit7
CisgICAgcmV0dXJuIGNvZGVNaXJyb3JUZXh0TWFya2VyLl9fd2ViSW5zcGVjdG9yVGV4dE1hcmtl
ciB8fCBuZXcgV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIoY29kZU1pcnJvclRleHRNYXJrZXIpOwor
fTsKKworV2ViSW5zcGVjdG9yLlRleHRNYXJrZXIucHJvdG90eXBlID0geworICAgIGNvbnN0cnVj
dG9yOiBXZWJJbnNwZWN0b3IuVGV4dE1hcmtlciwKKyAgICBfX3Byb3RvX186IFdlYkluc3BlY3Rv
ci5PYmplY3QucHJvdG90eXBlLAorICAgIAorICAgIC8vIFB1YmxpYworCisgICAgZ2V0IGNvZGVN
aXJyb3JUZXh0TWFya2VyKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9jb2RlTWlycm9y
VGV4dE1hcmtlcjsKKyAgICB9LAorCisgICAgZ2V0IHR5cGUoKQorICAgIHsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX3R5cGU7CisgICAgfSwKKworICAgIGdldCByYW5nZSgpCisgICAgeworICAgICAg
ICB2YXIgcmFuZ2UgPSB0aGlzLl9jb2RlTWlycm9yVGV4dE1hcmtlci5maW5kKCk7CisgICAgICAg
IGlmICghcmFuZ2UpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgcmV0dXJuIG5l
dyBXZWJJbnNwZWN0b3IuVGV4dFJhbmdlKHJhbmdlLmZyb20ubGluZSwgcmFuZ2UuZnJvbS5jaCwg
cmFuZ2UudG8ubGluZSwgcmFuZ2UudG8uY2gpOworICAgIH0sCisKKyAgICBnZXQgYm91bmRzKCkK
KyAgICB7CisgICAgICAgIHZhciByYW5nZSA9IHRoaXMuX2NvZGVNaXJyb3JUZXh0TWFya2VyLmZp
bmQoKTsKKyAgICAgICAgaWYgKCFyYW5nZSkKKyAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0
b3IuUmVjdC5aRVJPX1JFQ1Q7CisgICAgICAgIHJldHVybiB0aGlzLl9jb2RlTWlycm9yVGV4dE1h
cmtlci5kb2MuY20uYm91bmRzRm9yUmFuZ2UoeworICAgICAgICAgICAgc3RhcnQ6IHJhbmdlLmZy
b20sCisgICAgICAgICAgICBlbmQ6IHJhbmdlLnRvCisgICAgICAgIH0pOworICAgIH0sCisgICAg
CisgICAgY2xlYXI6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2NvZGVNaXJyb3JU
ZXh0TWFya2VyLmNsZWFyKCk7CisgICAgfQorfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>