<?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>94799</bug_id>
          
          <creation_ts>2012-08-23 05:00:19 -0700</creation_ts>
          <short_desc>Web Inspector: [WebGL] Implement custom wrap functions on GL context</short_desc>
          <delta_ts>2012-08-24 06:19:04 -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>
          
          <blocked>94931</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Andrey Adaikin">aandrey</reporter>
          <assigned_to name="Andrey Adaikin">aandrey</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>caseq</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>702883</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-08-23 05:00:19 -0700</bug_when>
    <thetext>Yet another step towards WebGL instrumentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702887</commentid>
    <comment_count>1</comment_count>
      <attachid>160132</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-08-23 05:04:36 -0700</bug_when>
    <thetext>Created attachment 160132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703988</commentid>
    <comment_count>2</comment_count>
      <attachid>160132</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2012-08-24 04:39:15 -0700</bug_when>
    <thetext>Comment on attachment 160132
Patch

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

&gt; Source/WebCore/inspector/InjectedScriptWebGLModuleSource.js:884
&gt; +    &quot;createBuffer&quot;: WebGLBufferResource,

I would implement this as array of pairs (arrays) so that you did not need to use Object.keys.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704004</commentid>
    <comment_count>3</comment_count>
      <attachid>160132</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-08-24 05:13:48 -0700</bug_when>
    <thetext>Comment on attachment 160132
Patch

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

&gt;&gt; Source/WebCore/inspector/InjectedScriptWebGLModuleSource.js:884
&gt;&gt; +    &quot;createBuffer&quot;: WebGLBufferResource,
&gt; 
&gt; I would implement this as array of pairs (arrays) so that you did not need to use Object.keys.

done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704005</commentid>
    <comment_count>4</comment_count>
      <attachid>160400</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2012-08-24 05:14:26 -0700</bug_when>
    <thetext>Created attachment 160400
Patch to land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>704010</commentid>
    <comment_count>5</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2012-08-24 05:23:49 -0700</bug_when>
    <thetext>Committed r126574: &lt;http://trac.webkit.org/changeset/126574&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160132</attachid>
            <date>2012-08-23 05:04:36 -0700</date>
            <delta_ts>2012-08-24 06:03:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94799-20120823160432.patch</filename>
            <type>text/plain</type>
            <size>14898</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2NhOWM1ODk5MjFlMDE2
NGE2ZGFhYWVlNDFlNjQ3NjIyNjVjNWUyNy4uZjJmYjA0MzNhYTU3MzZmYTQ3ZTBiZDI3NTBmNTVl
YTEzYzczYWUyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA4LTIzICBBbmRy
ZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtXZWJHTF0gSW1wbGVtZW50IGN1c3RvbSB3cmFwIGZ1bmN0aW9ucyBvbiBHTCBjb250ZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVu
dCBjdXN0b20gd3JhcCBmdW5jdGlvbnMgb24gV2ViR0wgcmVuZGVyaW5nIGNvbnRleHQgZm9yIFdl
YkdMIGluc3RydW1lbnRhdGlvbi4KKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlw
dFdlYkdMTW9kdWxlU291cmNlLmpzOgorICAgICAgICAoLik6CisKIDIwMTItMDgtMjIgIFBhdHJp
Y2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQnVpbGQgZml4IGZv
ciBXaW5DRSBhZnRlciByMTI2MzU5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0V2ViR0xNb2R1bGVTb3VyY2UuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRXZWJHTE1vZHVsZVNvdXJjZS5qcwppbmRleCAzYWNlMGIy
NDUwYWZhMWFmY2M4MTBhODE4NzUzZDkxMjIzZDcwZDZjLi43N2I3ZTBiOTE5OWIwMjJlMDVkZjM0
YTNhMzlmZWVkYzhlZjQzNzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5qZWN0ZWRTY3JpcHRXZWJHTE1vZHVsZVNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRXZWJHTE1vZHVsZVNvdXJjZS5qcwpAQCAtNDQwLDYgKzQ0
MCwxOTkgQEAgUmVwbGF5YWJsZVJlc291cmNlLnByb3RvdHlwZSA9IHsKIC8qKgogICogQGNvbnN0
cnVjdG9yCiAgKiBAZXh0ZW5kcyB7UmVzb3VyY2V9CisgKi8KK2Z1bmN0aW9uIFdlYkdMQm91bmRS
ZXNvdXJjZSh3cmFwcGVkT2JqZWN0KQoreworICAgIFJlc291cmNlLmNhbGwodGhpcywgd3JhcHBl
ZE9iamVjdCk7CisgICAgdGhpcy5fc3RhdGUgPSB7fTsKK30KKworV2ViR0xCb3VuZFJlc291cmNl
LnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gdGFyZ2V0Cisg
ICAgICogQHBhcmFtIHtzdHJpbmd9IGJpbmRNZXRob2ROYW1lCisgICAgICovCisgICAgcHVzaEJp
bmRpbmc6IGZ1bmN0aW9uKHRhcmdldCwgYmluZE1ldGhvZE5hbWUpCisgICAgeworICAgICAgICBp
ZiAodGhpcy5fc3RhdGUuQklORElORyAhPT0gdGFyZ2V0KSB7CisgICAgICAgICAgICB0aGlzLl9z
dGF0ZS5CSU5ESU5HID0gdGFyZ2V0OworICAgICAgICAgICAgdGhpcy5wdXNoQ2FsbChuZXcgQ2Fs
bChXZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZS5mb3JPYmplY3QodGhpcyksIGJpbmRNZXRo
b2ROYW1lLCBbdGFyZ2V0LCB0aGlzXSkpOworICAgICAgICB9CisgICAgfQorfQorCitXZWJHTEJv
dW5kUmVzb3VyY2UucHJvdG90eXBlLl9fcHJvdG9fXyA9IFJlc291cmNlLnByb3RvdHlwZTsKKwor
LyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJHTEJvdW5kUmVzb3VyY2V9Cisg
Ki8KK2Z1bmN0aW9uIFdlYkdMVGV4dHVyZVJlc291cmNlKHdyYXBwZWRPYmplY3QpCit7CisgICAg
V2ViR0xCb3VuZFJlc291cmNlLmNhbGwodGhpcywgd3JhcHBlZE9iamVjdCk7Cit9CisKK1dlYkdM
VGV4dHVyZVJlc291cmNlLnByb3RvdHlwZSA9IHsKKyAgICAvKiogQGluaGVyaXREb2MgKi8KKyAg
ICBwdXNoQ2FsbDogZnVuY3Rpb24oY2FsbCkKKyAgICB7CisgICAgICAgIHZhciBnbCA9IGNhbGwu
cmVzb3VyY2UoKS53cmFwcGVkT2JqZWN0KCk7CisgICAgICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4
dFJlc291cmNlLlBpeGVsU3RvcmVQYXJhbWV0ZXJzLmZvckVhY2goZnVuY3Rpb24ocGFyYW1ldGVy
KSB7CisgICAgICAgICAgICB2YXIgdmFsdWUgPSBnbC5nZXRQYXJhbWV0ZXIoZ2xbcGFyYW1ldGVy
XSk7CisgICAgICAgICAgICBpZiAodGhpcy5fc3RhdGVbcGFyYW1ldGVyXSAhPT0gdmFsdWUpIHsK
KyAgICAgICAgICAgICAgICB0aGlzLl9zdGF0ZVtwYXJhbWV0ZXJdID0gdmFsdWU7CisgICAgICAg
ICAgICAgICAgdmFyIHBpeGVsU3RvcmVDYWxsID0gbmV3IENhbGwoZ2wsICJwaXhlbFN0b3JlaSIs
IFtnbFtwYXJhbWV0ZXJdLCB2YWx1ZV0pOworICAgICAgICAgICAgICAgIFdlYkdMQm91bmRSZXNv
dXJjZS5wcm90b3R5cGUucHVzaENhbGwuY2FsbCh0aGlzLCBwaXhlbFN0b3JlQ2FsbCk7CisgICAg
ICAgICAgICB9CisgICAgICAgIH0sIHRoaXMpOworCisgICAgICAgIC8vIEZJWE1FOiByZW1vdmUg
YW55IG9sZGVyIGNhbGxzIHRoYXQgbm8gbG9uZ2VyIGNvbnRyaWJ1dGUgdG8gdGhlIHJlc291cmNl
IHN0YXRlLgorICAgICAgICAvLyBGSVhNRTogb3B0aW1pemUgbWVtb3J5IHVzYWdlOiBtYXliZSBp
dCdzIG1vcmUgZWZmaWNpZW50IHRvIHN0b3JlIG9uZSB0ZXhJbWFnZTJEIGNhbGwgaW5zdGVhZCBv
ZiBtYW55IHRleFN1YkltYWdlMkQuCisgICAgICAgIFdlYkdMQm91bmRSZXNvdXJjZS5wcm90b3R5
cGUucHVzaENhbGwuY2FsbCh0aGlzLCBjYWxsKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICog
QHBhcmFtIHtDYWxsfSBjYWxsCisgICAgICovCisgICAgcHVzaENhbGxfdGV4UGFyYW1ldGVyZjog
ZnVuY3Rpb24oY2FsbCkKKyAgICB7CisgICAgICAgIHZhciBhcmdzID0gY2FsbC5hcmdzKCk7Cisg
ICAgICAgIHZhciBwbmFtZSA9IGFyZ3NbMV07CisgICAgICAgIHZhciBwYXJhbSA9IGFyZ3NbMl07
CisgICAgICAgIGlmICh0aGlzLl9zdGF0ZVtwbmFtZV0gIT09IHBhcmFtKSB7CisgICAgICAgICAg
ICB0aGlzLl9zdGF0ZVtwbmFtZV0gPSBwYXJhbTsKKyAgICAgICAgICAgIFdlYkdMQm91bmRSZXNv
dXJjZS5wcm90b3R5cGUucHVzaENhbGwuY2FsbCh0aGlzLCBjYWxsKTsKKyAgICAgICAgfQorICAg
IH0sCisKKyAgICAvKioKKyAgICAgKiBjb3B5VGV4SW1hZ2UyRCBhbmQgY29weVRleFN1YkltYWdl
MkQgZGVmaW5lIGEgdGV4dHVyZSBpbWFnZSB3aXRoIHBpeGVscyBmcm9tIHRoZSBjdXJyZW50IGZy
YW1lYnVmZmVyLgorICAgICAqIEBwYXJhbSB7Q2FsbH0gY2FsbAorICAgICAqLworICAgIHB1c2hD
YWxsX2NvcHlUZXhJbWFnZTJEOiBmdW5jdGlvbihjYWxsKQorICAgIHsKKyAgICAgICAgdmFyIGds
UmVzb3VyY2UgPSBjYWxsLnJlc291cmNlKCk7CisgICAgICAgIHZhciBnbCA9IGdsUmVzb3VyY2Uu
d3JhcHBlZE9iamVjdCgpOworICAgICAgICB2YXIgZnJhbWVidWZmZXJSZXNvdXJjZSA9IGdsUmVz
b3VyY2UuY3VycmVudEJpbmRpbmcoZ2wuRlJBTUVCVUZGRVIpOworICAgICAgICBpZiAoZnJhbWVi
dWZmZXJSZXNvdXJjZSkKKyAgICAgICAgICAgIHRoaXMucHVzaENhbGwobmV3IENhbGwoZ2xSZXNv
dXJjZSwgImJpbmRGcmFtZWJ1ZmZlciIsIFtnbC5GUkFNRUJVRkZFUiwgZnJhbWVidWZmZXJSZXNv
dXJjZV0pKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29uc29sZS5lcnJvcigiQVNTRVJU
X05PVF9SRUFDSEVEOiBObyBGUkFNRUJVRkZFUiBib3VuZCB3aGlsZSBjYWxsaW5nIGdsLiIgKyBj
YWxsLmZ1bmN0aW9uTmFtZSgpKTsKKyAgICAgICAgdGhpcy5wdXNoQ2FsbChjYWxsKTsKKyAgICB9
Cit9CisKK1dlYkdMVGV4dHVyZVJlc291cmNlLnByb3RvdHlwZS5wdXNoQ2FsbF90ZXhQYXJhbWV0
ZXJpID0gV2ViR0xUZXh0dXJlUmVzb3VyY2UucHJvdG90eXBlLnB1c2hDYWxsX3RleFBhcmFtZXRl
cmY7CitXZWJHTFRleHR1cmVSZXNvdXJjZS5wcm90b3R5cGUucHVzaENhbGxfY29weVRleFN1Yklt
YWdlMkQgPSBXZWJHTFRleHR1cmVSZXNvdXJjZS5wcm90b3R5cGUucHVzaENhbGxfY29weVRleElt
YWdlMkQ7CisKK1dlYkdMVGV4dHVyZVJlc291cmNlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJH
TEJvdW5kUmVzb3VyY2UucHJvdG90eXBlOworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4
dGVuZHMge1Jlc291cmNlfQorICovCitmdW5jdGlvbiBXZWJHTFByb2dyYW1SZXNvdXJjZSh3cmFw
cGVkT2JqZWN0KQoreworICAgIFJlc291cmNlLmNhbGwodGhpcywgd3JhcHBlZE9iamVjdCk7Cit9
CisKK1dlYkdMUHJvZ3JhbVJlc291cmNlLnByb3RvdHlwZSA9IHsKKyAgICAvKiogQGluaGVyaXRE
b2MgKi8KKyAgICBwdXNoQ2FsbDogZnVuY3Rpb24oY2FsbCkKKyAgICB7CisgICAgICAgIC8vIEZJ
WE1FOiByZW1vdmUgYW55IG9sZGVyIGNhbGxzIHRoYXQgbm8gbG9uZ2VyIGNvbnRyaWJ1dGUgdG8g
dGhlIHJlc291cmNlIHN0YXRlLgorICAgICAgICAvLyBGSVhNRTogaGFuZGxlIG11bHRpcGxlIGF0
dGFjaFNoYWRlciAmJiBkZXRhY2hTaGFkZXIuCisgICAgICAgIFJlc291cmNlLnByb3RvdHlwZS5w
dXNoQ2FsbC5jYWxsKHRoaXMsIGNhbGwpOworICAgIH0KK30KKworV2ViR0xQcm9ncmFtUmVzb3Vy
Y2UucHJvdG90eXBlLl9fcHJvdG9fXyA9IFJlc291cmNlLnByb3RvdHlwZTsKKworLyoqCisgKiBA
Y29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtSZXNvdXJjZX0KKyAqLworZnVuY3Rpb24gV2ViR0xT
aGFkZXJSZXNvdXJjZSh3cmFwcGVkT2JqZWN0KQoreworICAgIFJlc291cmNlLmNhbGwodGhpcywg
d3JhcHBlZE9iamVjdCk7Cit9CisKK1dlYkdMU2hhZGVyUmVzb3VyY2UucHJvdG90eXBlID0gewor
ICAgIC8qKiBAaW5oZXJpdERvYyAqLworICAgIHB1c2hDYWxsOiBmdW5jdGlvbihjYWxsKQorICAg
IHsKKyAgICAgICAgLy8gRklYTUU6IHJlbW92ZSBhbnkgb2xkZXIgY2FsbHMgdGhhdCBubyBsb25n
ZXIgY29udHJpYnV0ZSB0byB0aGUgcmVzb3VyY2Ugc3RhdGUuCisgICAgICAgIC8vIEZJWE1FOiBo
YW5kbGUgbXVsdGlwbGUgc2hhZGVyU291cmNlIGNhbGxzLgorICAgICAgICBSZXNvdXJjZS5wcm90
b3R5cGUucHVzaENhbGwuY2FsbCh0aGlzLCBjYWxsKTsKKyAgICB9Cit9CisKK1dlYkdMU2hhZGVy
UmVzb3VyY2UucHJvdG90eXBlLl9fcHJvdG9fXyA9IFJlc291cmNlLnByb3RvdHlwZTsKKworLyoq
CisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJHTEJvdW5kUmVzb3VyY2V9CisgKi8K
K2Z1bmN0aW9uIFdlYkdMQnVmZmVyUmVzb3VyY2Uod3JhcHBlZE9iamVjdCkKK3sKKyAgICBXZWJH
TEJvdW5kUmVzb3VyY2UuY2FsbCh0aGlzLCB3cmFwcGVkT2JqZWN0KTsKK30KKworV2ViR0xCdWZm
ZXJSZXNvdXJjZS5wcm90b3R5cGUgPSB7CisgICAgLyoqIEBpbmhlcml0RG9jICovCisgICAgcHVz
aENhbGw6IGZ1bmN0aW9uKGNhbGwpCisgICAgeworICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIGFu
eSBvbGRlciBjYWxscyB0aGF0IG5vIGxvbmdlciBjb250cmlidXRlIHRvIHRoZSByZXNvdXJjZSBz
dGF0ZS4KKyAgICAgICAgLy8gRklYTUU6IE9wdGltaXplIG1lbW9yeSBmb3IgYnVmZmVyU3ViRGF0
YS4KKyAgICAgICAgV2ViR0xCb3VuZFJlc291cmNlLnByb3RvdHlwZS5wdXNoQ2FsbC5jYWxsKHRo
aXMsIGNhbGwpOworICAgIH0KK30KKworV2ViR0xCdWZmZXJSZXNvdXJjZS5wcm90b3R5cGUuX19w
cm90b19fID0gV2ViR0xCb3VuZFJlc291cmNlLnByb3RvdHlwZTsKKworLyoqCisgKiBAY29uc3Ry
dWN0b3IKKyAqIEBleHRlbmRzIHtXZWJHTEJvdW5kUmVzb3VyY2V9CisgKi8KK2Z1bmN0aW9uIFdl
YkdMRnJhbWVidWZmZXJSZXNvdXJjZSh3cmFwcGVkT2JqZWN0KQoreworICAgIFdlYkdMQm91bmRS
ZXNvdXJjZS5jYWxsKHRoaXMsIHdyYXBwZWRPYmplY3QpOworfQorCitXZWJHTEZyYW1lYnVmZmVy
UmVzb3VyY2UucHJvdG90eXBlID0geworICAgIC8qKiBAaW5oZXJpdERvYyAqLworICAgIHB1c2hD
YWxsOiBmdW5jdGlvbihjYWxsKQorICAgIHsKKyAgICAgICAgLy8gRklYTUU6IHJlbW92ZSBhbnkg
b2xkZXIgY2FsbHMgdGhhdCBubyBsb25nZXIgY29udHJpYnV0ZSB0byB0aGUgcmVzb3VyY2Ugc3Rh
dGUuCisgICAgICAgIFdlYkdMQm91bmRSZXNvdXJjZS5wcm90b3R5cGUucHVzaENhbGwuY2FsbCh0
aGlzLCBjYWxsKTsKKyAgICB9Cit9CisKK1dlYkdMRnJhbWVidWZmZXJSZXNvdXJjZS5wcm90b3R5
cGUuX19wcm90b19fID0gV2ViR0xCb3VuZFJlc291cmNlLnByb3RvdHlwZTsKKworLyoqCisgKiBA
Y29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtXZWJHTEJvdW5kUmVzb3VyY2V9CisgKi8KK2Z1bmN0
aW9uIFdlYkdMUmVuZGVyYnVmZmVyUmVzb3VyY2Uod3JhcHBlZE9iamVjdCkKK3sKKyAgICBXZWJH
TEJvdW5kUmVzb3VyY2UuY2FsbCh0aGlzLCB3cmFwcGVkT2JqZWN0KTsKK30KKworV2ViR0xSZW5k
ZXJidWZmZXJSZXNvdXJjZS5wcm90b3R5cGUgPSB7CisgICAgLyoqIEBpbmhlcml0RG9jICovCisg
ICAgcHVzaENhbGw6IGZ1bmN0aW9uKGNhbGwpCisgICAgeworICAgICAgICAvLyBGSVhNRTogcmVt
b3ZlIGFueSBvbGRlciBjYWxscyB0aGF0IG5vIGxvbmdlciBjb250cmlidXRlIHRvIHRoZSByZXNv
dXJjZSBzdGF0ZS4KKyAgICAgICAgV2ViR0xCb3VuZFJlc291cmNlLnByb3RvdHlwZS5wdXNoQ2Fs
bC5jYWxsKHRoaXMsIGNhbGwpOworICAgIH0KK30KKworV2ViR0xSZW5kZXJidWZmZXJSZXNvdXJj
ZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViR0xCb3VuZFJlc291cmNlLnByb3RvdHlwZTsKKwor
LyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBleHRlbmRzIHtSZXNvdXJjZX0KICAqIEBwYXJhbSB7
V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBnbENvbnRleHQKICAqLwogZnVuY3Rpb24gV2ViR0xSZW5k
ZXJpbmdDb250ZXh0UmVzb3VyY2UoZ2xDb250ZXh0KQpAQCAtNDQ4LDYgKzY0MSwzNCBAQCBmdW5j
dGlvbiBXZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZShnbENvbnRleHQpCiAgICAgdGhpcy5f
cHJveHlPYmplY3QgPSBudWxsOwogfQogCisvKioKKyAqIEBjb25zdAorICogQHR5cGUge0FycmF5
LjxzdHJpbmc+fQorICovCitXZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZS5QaXhlbFN0b3Jl
UGFyYW1ldGVycyA9IFsKKyAgICAiUEFDS19BTElHTk1FTlQiLAorICAgICJVTlBBQ0tfQUxJR05N
RU5UIiwKKyAgICAiVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTCIsCisgICAgIlVO
UEFDS19GTElQX1lfV0VCR0wiLAorICAgICJVTlBBQ0tfUFJFTVVMVElQTFlfQUxQSEFfV0VCR0wi
CitdOworCisvKioKKyAqIEBwYXJhbSB7Kn0gb2JqCisgKiBAcmV0dXJuIHtXZWJHTFJlbmRlcmlu
Z0NvbnRleHRSZXNvdXJjZX0KKyAqLworV2ViR0xSZW5kZXJpbmdDb250ZXh0UmVzb3VyY2UuZm9y
T2JqZWN0ID0gZnVuY3Rpb24ob2JqKQoreworICAgIHZhciByZXNvdXJjZSA9IFJlc291cmNlLmZv
ck9iamVjdChvYmopOworICAgIGlmICghcmVzb3VyY2UgfHwgcmVzb3VyY2UgaW5zdGFuY2VvZiBX
ZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZSkKKyAgICAgICAgcmV0dXJuIHJlc291cmNlOwor
ICAgIHZhciBjYWxsID0gcmVzb3VyY2UuY2FsbHMoKTsKKyAgICBpZiAoIWNhbGwgfHwgIWNhbGwu
bGVuZ3RoKQorICAgICAgICByZXR1cm4gbnVsbDsKKyAgICByZXNvdXJjZSA9IGNhbGxbMF0ucmVz
b3VyY2UoKTsKKyAgICByZXR1cm4gKHJlc291cmNlIGluc3RhbmNlb2YgV2ViR0xSZW5kZXJpbmdD
b250ZXh0UmVzb3VyY2UpID8gcmVzb3VyY2UgOiBudWxsOworfQorCiBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRSZXNvdXJjZS5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHJldHVybiB7T2Jq
ZWN0fQpAQCAtNDYwLDYgKzY4MSw1OSBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZS5w
cm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7T2JqZWN0fG51
bWJlcn0gdGFyZ2V0CisgICAgICogQHJldHVybiB7UmVzb3VyY2V9CisgICAgICovCisgICAgY3Vy
cmVudEJpbmRpbmc6IGZ1bmN0aW9uKHRhcmdldCkKKyAgICB7CisgICAgICAgIHZhciByZXNvdXJj
ZSA9IFJlc291cmNlLmZvck9iamVjdCh0YXJnZXQpOworICAgICAgICBpZiAocmVzb3VyY2UpCisg
ICAgICAgICAgICByZXR1cm4gcmVzb3VyY2U7CisgICAgICAgIHZhciBnbCA9IHRoaXMud3JhcHBl
ZE9iamVjdCgpOworICAgICAgICB2YXIgYmluZGluZ1RhcmdldDsKKyAgICAgICAgdmFyIGJpbmRN
ZXRob2ROYW1lOworICAgICAgICBzd2l0Y2ggKHRhcmdldCkgeworICAgICAgICAgICAgY2FzZSBn
bC5BUlJBWV9CVUZGRVI6CisgICAgICAgICAgICAgICAgYmluZGluZ1RhcmdldCA9IGdsLkFSUkFZ
X0JVRkZFUl9CSU5ESU5HOworICAgICAgICAgICAgICAgIGJpbmRNZXRob2ROYW1lID0gImJpbmRC
dWZmZXIiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBnbC5FTEVN
RU5UX0FSUkFZX0JVRkZFUjoKKyAgICAgICAgICAgICAgICBiaW5kaW5nVGFyZ2V0ID0gZ2wuRUxF
TUVOVF9BUlJBWV9CVUZGRVJfQklORElORzsKKyAgICAgICAgICAgICAgICBiaW5kTWV0aG9kTmFt
ZSA9ICJiaW5kQnVmZmVyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgZ2wuVEVYVFVSRV8yRDoKKyAgICAgICAgICAgICAgICBiaW5kaW5nVGFyZ2V0ID0gZ2wuVEVY
VFVSRV9CSU5ESU5HXzJEOworICAgICAgICAgICAgICAgIGJpbmRNZXRob2ROYW1lID0gImJpbmRU
ZXh0dXJlIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgZ2wuVEVY
VFVSRV9DVUJFX01BUDoKKyAgICAgICAgICAgIGNhc2UgZ2wuVEVYVFVSRV9DVUJFX01BUF9QT1NJ
VElWRV9YOgorICAgICAgICAgICAgY2FzZSBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1g6
CisgICAgICAgICAgICBjYXNlIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWToKKyAgICAg
ICAgICAgIGNhc2UgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9ZOgorICAgICAgICAgICAg
Y2FzZSBnbC5URVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1o6CisgICAgICAgICAgICBjYXNlIGds
LlRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWjoKKyAgICAgICAgICAgICAgICBiaW5kaW5nVGFy
Z2V0ID0gZ2wuVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQOworICAgICAgICAgICAgICAgIGJpbmRN
ZXRob2ROYW1lID0gImJpbmRUZXh0dXJlIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgZ2wuRlJBTUVCVUZGRVI6CisgICAgICAgICAgICAgICAgYmluZGluZ1Rhcmdl
dCA9IGdsLkZSQU1FQlVGRkVSX0JJTkRJTkc7CisgICAgICAgICAgICAgICAgYmluZE1ldGhvZE5h
bWUgPSAiYmluZEZyYW1lYnVmZmVyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgZ2wuUkVOREVSQlVGRkVSOgorICAgICAgICAgICAgICAgIGJpbmRpbmdUYXJnZXQg
PSBnbC5SRU5ERVJCVUZGRVJfQklORElORzsKKyAgICAgICAgICAgICAgICBiaW5kTWV0aG9kTmFt
ZSA9ICJiaW5kUmVuZGVyYnVmZmVyIjsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiQVNTRVJUX05PVF9S
RUFDSEVEOiB1bmtub3duIGJpbmRpbmcgdGFyZ2V0ICIgKyB0YXJnZXQpOworICAgICAgICAgICAg
ICAgIHJldHVybiBudWxsOworICAgICAgICB9CisgICAgICAgIHJlc291cmNlID0gUmVzb3VyY2Uu
Zm9yT2JqZWN0KGdsLmdldFBhcmFtZXRlcihiaW5kaW5nVGFyZ2V0KSk7CisgICAgICAgIGlmIChy
ZXNvdXJjZSkKKyAgICAgICAgICAgIHJlc291cmNlLnB1c2hCaW5kaW5nKHRhcmdldCwgYmluZE1l
dGhvZE5hbWUpOworICAgICAgICByZXR1cm4gcmVzb3VyY2U7CisgICAgfSwKKworICAgIC8qKgog
ICAgICAqIEByZXR1cm4ge09iamVjdH0KICAgICAgKi8KICAgICBfd3JhcE9iamVjdDogZnVuY3Rp
b24oKQpAQCAtNDcxLDggKzc0NSwxMSBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZS5w
cm90b3R5cGUgPSB7CiAgICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NQcm9wZXJ0eShwcm9wZXJ0eSkK
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKHR5cGVvZiBnbENvbnRleHRbcHJvcGVydHldID09
PSAiZnVuY3Rpb24iKSB7Ci0gICAgICAgICAgICAgICAgLy8gRklYTUU6IG92ZXJyaWRlIEdMIGNh
bGxzIGFmZmVjdGluZyByZXNvdXJjZXMgc3RhdGVzIGhlcmUuCi0gICAgICAgICAgICAgICAgcHJv
eHlbcHJvcGVydHldID0gc2VsZi5fd3JhcEZ1bmN0aW9uKHNlbGYsIGdsQ29udGV4dCwgZ2xDb250
ZXh0W3Byb3BlcnR5XSwgcHJvcGVydHkpOworICAgICAgICAgICAgICAgIHZhciBjdXN0b21XcmFw
RnVuY3Rpb24gPSBXZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZS5XcmFwRnVuY3Rpb25zW3By
b3BlcnR5XTsKKyAgICAgICAgICAgICAgICBpZiAoY3VzdG9tV3JhcEZ1bmN0aW9uKQorICAgICAg
ICAgICAgICAgICAgICBwcm94eVtwcm9wZXJ0eV0gPSBzZWxmLl93cmFwQ3VzdG9tRnVuY3Rpb24o
c2VsZiwgZ2xDb250ZXh0LCBnbENvbnRleHRbcHJvcGVydHldLCBwcm9wZXJ0eSwgY3VzdG9tV3Jh
cEZ1bmN0aW9uKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIHBy
b3h5W3Byb3BlcnR5XSA9IHNlbGYuX3dyYXBGdW5jdGlvbihzZWxmLCBnbENvbnRleHQsIGdsQ29u
dGV4dFtwcm9wZXJ0eV0sIHByb3BlcnR5KTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAoL15bQS1a
MC05X10rJC8udGVzdChwcm9wZXJ0eSkpIHsKICAgICAgICAgICAgICAgICAvLyBGYXN0IGFjY2Vz
cyB0byBlbnVtcyBhbmQgY29uc3RhbnRzLgogICAgICAgICAgICAgICAgIHByb3h5W3Byb3BlcnR5
XSA9IGdsQ29udGV4dFtwcm9wZXJ0eV07CkBAIC01MDEsNiArNzc4LDI5IEBAIFdlYkdMUmVuZGVy
aW5nQ29udGV4dFJlc291cmNlLnByb3RvdHlwZSA9IHsKICAgICAgKiBAcGFyYW0ge1dlYkdMUmVu
ZGVyaW5nQ29udGV4dH0gb3JpZ2luYWxPYmplY3QKICAgICAgKiBAcGFyYW0ge0Z1bmN0aW9ufSBv
cmlnaW5hbEZ1bmN0aW9uCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IGZ1bmN0aW9uTmFtZQorICAg
ICAqIEBwYXJhbSB7RnVuY3Rpb259IGN1c3RvbVdyYXBGdW5jdGlvbgorICAgICAqIEByZXR1cm4g
eyp9CisgICAgICovCisgICAgX3dyYXBDdXN0b21GdW5jdGlvbjogZnVuY3Rpb24ocmVzb3VyY2Us
IG9yaWdpbmFsT2JqZWN0LCBvcmlnaW5hbEZ1bmN0aW9uLCBmdW5jdGlvbk5hbWUsIGN1c3RvbVdy
YXBGdW5jdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBmdW5jdGlvbigpCisgICAgICAgIHsK
KyAgICAgICAgICAgIHZhciBtYW5hZ2VyID0gcmVzb3VyY2UubWFuYWdlcigpOworICAgICAgICAg
ICAgaWYgKG1hbmFnZXIpCisgICAgICAgICAgICAgICAgbWFuYWdlci5jYXB0dXJlQXJndW1lbnRz
KHJlc291cmNlLCBhcmd1bWVudHMpOworICAgICAgICAgICAgdmFyIHdyYXBGdW5jdGlvbiA9IG5l
dyBXZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZS5XcmFwRnVuY3Rpb24ob3JpZ2luYWxPYmpl
Y3QsIG9yaWdpbmFsRnVuY3Rpb24sIGZ1bmN0aW9uTmFtZSwgYXJndW1lbnRzKTsKKyAgICAgICAg
ICAgIGN1c3RvbVdyYXBGdW5jdGlvbi5hcHBseSh3cmFwRnVuY3Rpb24sIGFyZ3VtZW50cyk7Cisg
ICAgICAgICAgICBpZiAobWFuYWdlcikKKyAgICAgICAgICAgICAgICBtYW5hZ2VyLnJlcG9ydENh
bGwod3JhcEZ1bmN0aW9uLmNhbGwoKSk7CisgICAgICAgICAgICByZXR1cm4gd3JhcEZ1bmN0aW9u
LnJlc3VsdCgpOworICAgICAgICB9OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e1Jlc291cmNlfSByZXNvdXJjZQorICAgICAqIEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0
fSBvcmlnaW5hbE9iamVjdAorICAgICAqIEBwYXJhbSB7RnVuY3Rpb259IG9yaWdpbmFsRnVuY3Rp
b24KKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gZnVuY3Rpb25OYW1lCiAgICAgICogQHJldHVybiB7
Kn0KICAgICAgKi8KICAgICBfd3JhcEZ1bmN0aW9uOiBmdW5jdGlvbihyZXNvdXJjZSwgb3JpZ2lu
YWxPYmplY3QsIG9yaWdpbmFsRnVuY3Rpb24sIGZ1bmN0aW9uTmFtZSkKQEAgLTU2MSw2ICs4NjEs
NzIgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0UmVzb3VyY2UuV3JhcEZ1bmN0aW9uLnByb3RvdHlw
ZSA9IHsKICAgICB9CiB9CiAKK1dlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlLldyYXBGdW5j
dGlvbnMgPSB7CisgICAgX19wcm90b19fOiBudWxsCit9OworCisoZnVuY3Rpb24oaXRlbXMpIHsK
KyAgICBPYmplY3Qua2V5cyhpdGVtcykuZm9yRWFjaChmdW5jdGlvbihtZXRob2ROYW1lKSB7Cisg
ICAgICAgIHZhciByZXNvdXJjZUNvbnN0cnVjdG9yID0gaXRlbXNbbWV0aG9kTmFtZV07CisgICAg
ICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlLldyYXBGdW5jdGlvbnNbbWV0aG9kTmFt
ZV0gPSBmdW5jdGlvbigpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciB3cmFwcGVkT2JqZWN0
ID0gdGhpcy5yZXN1bHQoKTsKKyAgICAgICAgICAgIGlmICghd3JhcHBlZE9iamVjdCkKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSBuZXcgcmVzb3Vy
Y2VDb25zdHJ1Y3Rvcih3cmFwcGVkT2JqZWN0KTsKKyAgICAgICAgICAgIHZhciBtYW5hZ2VyID0g
dGhpcy5fZ2xSZXNvdXJjZS5tYW5hZ2VyKCk7CisgICAgICAgICAgICBpZiAobWFuYWdlcikKKyAg
ICAgICAgICAgICAgICBtYW5hZ2VyLnJlZ2lzdGVyUmVzb3VyY2UocmVzb3VyY2UpOworICAgICAg
ICAgICAgcmVzb3VyY2UucHVzaENhbGwodGhpcy5jYWxsKCkpOworICAgICAgICB9OworICAgIH0p
OworfSkoeworICAgICJjcmVhdGVCdWZmZXIiOiBXZWJHTEJ1ZmZlclJlc291cmNlLAorICAgICJj
cmVhdGVTaGFkZXIiOiBXZWJHTFNoYWRlclJlc291cmNlLAorICAgICJjcmVhdGVQcm9ncmFtIjog
V2ViR0xQcm9ncmFtUmVzb3VyY2UsCisgICAgImNyZWF0ZVRleHR1cmUiOiBXZWJHTFRleHR1cmVS
ZXNvdXJjZSwKKyAgICAiY3JlYXRlRnJhbWVidWZmZXIiOiBXZWJHTEZyYW1lYnVmZmVyUmVzb3Vy
Y2UsCisgICAgImNyZWF0ZVJlbmRlcmJ1ZmZlciI6IFdlYkdMUmVuZGVyYnVmZmVyUmVzb3VyY2Us
CisgICAgImdldFVuaWZvcm1Mb2NhdGlvbiI6IFJlc291cmNlCit9KTsKKworKGZ1bmN0aW9uKG1l
dGhvZHMpIHsKKyAgICBtZXRob2RzLmZvckVhY2goZnVuY3Rpb24obWV0aG9kTmFtZSkgeworICAg
ICAgICB2YXIgY3VzdG9tUHVzaENhbGwgPSAicHVzaENhbGxfIiArIG1ldGhvZE5hbWU7CisgICAg
ICAgIFdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlLldyYXBGdW5jdGlvbnNbbWV0aG9kTmFt
ZV0gPSBmdW5jdGlvbih0YXJnZXQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHZhciByZXNvdXJj
ZSA9IHRoaXMuX2dsUmVzb3VyY2UuY3VycmVudEJpbmRpbmcodGFyZ2V0KTsKKyAgICAgICAgICAg
IGlmIChyZXNvdXJjZSkgeworICAgICAgICAgICAgICAgIGlmIChyZXNvdXJjZVtjdXN0b21QdXNo
Q2FsbF0pCisgICAgICAgICAgICAgICAgICAgIHJlc291cmNlW2N1c3RvbVB1c2hDYWxsXS5jYWxs
KHJlc291cmNlLCB0aGlzLmNhbGwoKSk7CisgICAgICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgICAgICByZXNvdXJjZS5wdXNoQ2FsbCh0aGlzLmNhbGwoKSk7CisgICAgICAgICAgICB9
CisgICAgICAgIH07CisgICAgfSk7Cit9KShbCisgICAgImF0dGFjaFNoYWRlciIsCisgICAgImJp
bmRBdHRyaWJMb2NhdGlvbiIsCisgICAgImNvbXBpbGVTaGFkZXIiLAorICAgICJkZXRhY2hTaGFk
ZXIiLAorICAgICJsaW5rUHJvZ3JhbSIsCisgICAgInNoYWRlclNvdXJjZSIsCisgICAgImJ1ZmZl
ckRhdGEiLAorICAgICJidWZmZXJTdWJEYXRhIiwKKyAgICAiY29tcHJlc3NlZFRleEltYWdlMkQi
LAorICAgICJjb21wcmVzc2VkVGV4U3ViSW1hZ2UyRCIsCisgICAgImNvcHlUZXhJbWFnZTJEIiwK
KyAgICAiY29weVRleFN1YkltYWdlMkQiLAorICAgICJnZW5lcmF0ZU1pcG1hcCIsCisgICAgInRl
eEltYWdlMkQiLAorICAgICJ0ZXhTdWJJbWFnZTJEIiwKKyAgICAidGV4UGFyYW1ldGVyZiIsCisg
ICAgInRleFBhcmFtZXRlcmkiLAorICAgICJmcmFtZWJ1ZmZlclJlbmRlcmJ1ZmZlciIsCisgICAg
ImZyYW1lYnVmZmVyVGV4dHVyZTJEIiwKKyAgICAicmVuZGVyYnVmZmVyU3RvcmFnZSIKK10pOwor
CiAvKioKICAqIEBjb25zdHJ1Y3RvcgogICovCkBAIC02NTYsNyArMTAyMiw3IEBAIFRyYWNlTG9n
UGxheWVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgLy8gRklYTUU6IFJlcGxheSBhbGwgdGhlIGNh
Y2hlZCByZXNvdXJjZXMgZmlyc3QgdG8gd2FybS11cC4KICAgICAgICAgdmFyIHJlcGxheWFibGVD
YWxscyA9IHRoaXMuX3RyYWNlTG9nLnJlcGxheWFibGVDYWxscygpOwogICAgICAgICB3aGlsZSAo
dGhpcy5fbmV4dFJlcGxheVN0ZXAgPD0gc3RlcE51bSkKLSAgICAgICAgICAgIHJlcGxheWFibGVD
YWxsc1t0aGlzLl9uZXh0UmVwbGF5U3RlcCsrXS5yZXBsYXkodGhpcy5fcmVwbGF5V29ybGRDYWNo
ZSk7ICAgICAgICAgICAgCisgICAgICAgICAgICByZXBsYXlhYmxlQ2FsbHNbdGhpcy5fbmV4dFJl
cGxheVN0ZXArK10ucmVwbGF5KHRoaXMuX3JlcGxheVdvcmxkQ2FjaGUpOwogICAgIH0sCiAKICAg
ICByZXBsYXk6IGZ1bmN0aW9uKCkK
</data>
<flag name="review"
          id="170613"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160400</attachid>
            <date>2012-08-24 05:14:26 -0700</date>
            <delta_ts>2012-08-24 06:03:25 -0700</delta_ts>
            <desc>Patch to land</desc>
            <filename>bug-94799-20120824161421.patch</filename>
            <type>text/plain</type>
            <size>14935</size>
            <attacher name="Andrey Adaikin">aandrey</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTkxOWIyZDU3YzNlZTM1
OWYzOGZhZjEyYWY4NmYxZGRhMzc2ZjE1Ny4uZjZkZWRlMTIzYzhmMjM2NjczZmY5ZmU0MTk0Mjdh
ODMzZjljNGRlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEyLTA4LTIzICBBbmRy
ZXkgQWRhaWtpbiAgPGFhbmRyZXlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IFtXZWJHTF0gSW1wbGVtZW50IGN1c3RvbSB3cmFwIGZ1bmN0aW9ucyBvbiBHTCBjb250ZXh0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc5OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVu
dCBjdXN0b20gd3JhcCBmdW5jdGlvbnMgb24gV2ViR0wgcmVuZGVyaW5nIGNvbnRleHQgZm9yIFdl
YkdMIGluc3RydW1lbnRhdGlvbi4KKworICAgICAgICAqIGluc3BlY3Rvci9JbmplY3RlZFNjcmlw
dFdlYkdMTW9kdWxlU291cmNlLmpzOgorICAgICAgICAoLik6CisKIDIwMTItMDgtMjQgIEtlbnRh
cm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBSZWZQdHIg
ZnJvbSBIVE1MVGV4dEFyZWFFbGVtZW50OjptX3BsYWNlaG9sZGVyCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRXZWJHTE1vZHVsZVNvdXJjZS5qcyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFdlYkdMTW9kdWxlU291cmNl
LmpzCmluZGV4IDNhY2UwYjI0NTBhZmExYWZjYzgxMGE4MTg3NTNkOTEyMjNkNzBkNmMuLmRhYTM3
MmFlNTc5NGZiZGQ5Y2QxNmJlMGI4NDVlNzhlNWNkNDM1ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFdlYkdMTW9kdWxlU291cmNlLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFdlYkdMTW9kdWxlU291cmNl
LmpzCkBAIC00NDAsNiArNDQwLDE5OSBAQCBSZXBsYXlhYmxlUmVzb3VyY2UucHJvdG90eXBlID0g
ewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBleHRlbmRzIHtSZXNvdXJjZX0KKyAqLworZnVu
Y3Rpb24gV2ViR0xCb3VuZFJlc291cmNlKHdyYXBwZWRPYmplY3QpCit7CisgICAgUmVzb3VyY2Uu
Y2FsbCh0aGlzLCB3cmFwcGVkT2JqZWN0KTsKKyAgICB0aGlzLl9zdGF0ZSA9IHt9OworfQorCitX
ZWJHTEJvdW5kUmVzb3VyY2UucHJvdG90eXBlID0geworICAgIC8qKgorICAgICAqIEBwYXJhbSB7
bnVtYmVyfSB0YXJnZXQKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gYmluZE1ldGhvZE5hbWUKKyAg
ICAgKi8KKyAgICBwdXNoQmluZGluZzogZnVuY3Rpb24odGFyZ2V0LCBiaW5kTWV0aG9kTmFtZSkK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLl9zdGF0ZS5CSU5ESU5HICE9PSB0YXJnZXQpIHsKKyAg
ICAgICAgICAgIHRoaXMuX3N0YXRlLkJJTkRJTkcgPSB0YXJnZXQ7CisgICAgICAgICAgICB0aGlz
LnB1c2hDYWxsKG5ldyBDYWxsKFdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlLmZvck9iamVj
dCh0aGlzKSwgYmluZE1ldGhvZE5hbWUsIFt0YXJnZXQsIHRoaXNdKSk7CisgICAgICAgIH0KKyAg
ICB9Cit9CisKK1dlYkdMQm91bmRSZXNvdXJjZS5wcm90b3R5cGUuX19wcm90b19fID0gUmVzb3Vy
Y2UucHJvdG90eXBlOworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkdM
Qm91bmRSZXNvdXJjZX0KKyAqLworZnVuY3Rpb24gV2ViR0xUZXh0dXJlUmVzb3VyY2Uod3JhcHBl
ZE9iamVjdCkKK3sKKyAgICBXZWJHTEJvdW5kUmVzb3VyY2UuY2FsbCh0aGlzLCB3cmFwcGVkT2Jq
ZWN0KTsKK30KKworV2ViR0xUZXh0dXJlUmVzb3VyY2UucHJvdG90eXBlID0geworICAgIC8qKiBA
aW5oZXJpdERvYyAqLworICAgIHB1c2hDYWxsOiBmdW5jdGlvbihjYWxsKQorICAgIHsKKyAgICAg
ICAgdmFyIGdsID0gY2FsbC5yZXNvdXJjZSgpLndyYXBwZWRPYmplY3QoKTsKKyAgICAgICAgV2Vi
R0xSZW5kZXJpbmdDb250ZXh0UmVzb3VyY2UuUGl4ZWxTdG9yZVBhcmFtZXRlcnMuZm9yRWFjaChm
dW5jdGlvbihwYXJhbWV0ZXIpIHsKKyAgICAgICAgICAgIHZhciB2YWx1ZSA9IGdsLmdldFBhcmFt
ZXRlcihnbFtwYXJhbWV0ZXJdKTsKKyAgICAgICAgICAgIGlmICh0aGlzLl9zdGF0ZVtwYXJhbWV0
ZXJdICE9PSB2YWx1ZSkgeworICAgICAgICAgICAgICAgIHRoaXMuX3N0YXRlW3BhcmFtZXRlcl0g
PSB2YWx1ZTsKKyAgICAgICAgICAgICAgICB2YXIgcGl4ZWxTdG9yZUNhbGwgPSBuZXcgQ2FsbChn
bCwgInBpeGVsU3RvcmVpIiwgW2dsW3BhcmFtZXRlcl0sIHZhbHVlXSk7CisgICAgICAgICAgICAg
ICAgV2ViR0xCb3VuZFJlc291cmNlLnByb3RvdHlwZS5wdXNoQ2FsbC5jYWxsKHRoaXMsIHBpeGVs
U3RvcmVDYWxsKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwgdGhpcyk7CisKKyAgICAgICAg
Ly8gRklYTUU6IHJlbW92ZSBhbnkgb2xkZXIgY2FsbHMgdGhhdCBubyBsb25nZXIgY29udHJpYnV0
ZSB0byB0aGUgcmVzb3VyY2Ugc3RhdGUuCisgICAgICAgIC8vIEZJWE1FOiBvcHRpbWl6ZSBtZW1v
cnkgdXNhZ2U6IG1heWJlIGl0J3MgbW9yZSBlZmZpY2llbnQgdG8gc3RvcmUgb25lIHRleEltYWdl
MkQgY2FsbCBpbnN0ZWFkIG9mIG1hbnkgdGV4U3ViSW1hZ2UyRC4KKyAgICAgICAgV2ViR0xCb3Vu
ZFJlc291cmNlLnByb3RvdHlwZS5wdXNoQ2FsbC5jYWxsKHRoaXMsIGNhbGwpOworICAgIH0sCisK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge0NhbGx9IGNhbGwKKyAgICAgKi8KKyAgICBwdXNoQ2Fs
bF90ZXhQYXJhbWV0ZXJmOiBmdW5jdGlvbihjYWxsKQorICAgIHsKKyAgICAgICAgdmFyIGFyZ3Mg
PSBjYWxsLmFyZ3MoKTsKKyAgICAgICAgdmFyIHBuYW1lID0gYXJnc1sxXTsKKyAgICAgICAgdmFy
IHBhcmFtID0gYXJnc1syXTsKKyAgICAgICAgaWYgKHRoaXMuX3N0YXRlW3BuYW1lXSAhPT0gcGFy
YW0pIHsKKyAgICAgICAgICAgIHRoaXMuX3N0YXRlW3BuYW1lXSA9IHBhcmFtOworICAgICAgICAg
ICAgV2ViR0xCb3VuZFJlc291cmNlLnByb3RvdHlwZS5wdXNoQ2FsbC5jYWxsKHRoaXMsIGNhbGwp
OworICAgICAgICB9CisgICAgfSwKKworICAgIC8qKgorICAgICAqIGNvcHlUZXhJbWFnZTJEIGFu
ZCBjb3B5VGV4U3ViSW1hZ2UyRCBkZWZpbmUgYSB0ZXh0dXJlIGltYWdlIHdpdGggcGl4ZWxzIGZy
b20gdGhlIGN1cnJlbnQgZnJhbWVidWZmZXIuCisgICAgICogQHBhcmFtIHtDYWxsfSBjYWxsCisg
ICAgICovCisgICAgcHVzaENhbGxfY29weVRleEltYWdlMkQ6IGZ1bmN0aW9uKGNhbGwpCisgICAg
eworICAgICAgICB2YXIgZ2xSZXNvdXJjZSA9IGNhbGwucmVzb3VyY2UoKTsKKyAgICAgICAgdmFy
IGdsID0gZ2xSZXNvdXJjZS53cmFwcGVkT2JqZWN0KCk7CisgICAgICAgIHZhciBmcmFtZWJ1ZmZl
clJlc291cmNlID0gZ2xSZXNvdXJjZS5jdXJyZW50QmluZGluZyhnbC5GUkFNRUJVRkZFUik7Cisg
ICAgICAgIGlmIChmcmFtZWJ1ZmZlclJlc291cmNlKQorICAgICAgICAgICAgdGhpcy5wdXNoQ2Fs
bChuZXcgQ2FsbChnbFJlc291cmNlLCAiYmluZEZyYW1lYnVmZmVyIiwgW2dsLkZSQU1FQlVGRkVS
LCBmcmFtZWJ1ZmZlclJlc291cmNlXSkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBjb25z
b2xlLmVycm9yKCJBU1NFUlRfTk9UX1JFQUNIRUQ6IE5vIEZSQU1FQlVGRkVSIGJvdW5kIHdoaWxl
IGNhbGxpbmcgZ2wuIiArIGNhbGwuZnVuY3Rpb25OYW1lKCkpOworICAgICAgICB0aGlzLnB1c2hD
YWxsKGNhbGwpOworICAgIH0KK30KKworV2ViR0xUZXh0dXJlUmVzb3VyY2UucHJvdG90eXBlLnB1
c2hDYWxsX3RleFBhcmFtZXRlcmkgPSBXZWJHTFRleHR1cmVSZXNvdXJjZS5wcm90b3R5cGUucHVz
aENhbGxfdGV4UGFyYW1ldGVyZjsKK1dlYkdMVGV4dHVyZVJlc291cmNlLnByb3RvdHlwZS5wdXNo
Q2FsbF9jb3B5VGV4U3ViSW1hZ2UyRCA9IFdlYkdMVGV4dHVyZVJlc291cmNlLnByb3RvdHlwZS5w
dXNoQ2FsbF9jb3B5VGV4SW1hZ2UyRDsKKworV2ViR0xUZXh0dXJlUmVzb3VyY2UucHJvdG90eXBl
Ll9fcHJvdG9fXyA9IFdlYkdMQm91bmRSZXNvdXJjZS5wcm90b3R5cGU7CisKKy8qKgorICogQGNv
bnN0cnVjdG9yCisgKiBAZXh0ZW5kcyB7UmVzb3VyY2V9CisgKi8KK2Z1bmN0aW9uIFdlYkdMUHJv
Z3JhbVJlc291cmNlKHdyYXBwZWRPYmplY3QpCit7CisgICAgUmVzb3VyY2UuY2FsbCh0aGlzLCB3
cmFwcGVkT2JqZWN0KTsKK30KKworV2ViR0xQcm9ncmFtUmVzb3VyY2UucHJvdG90eXBlID0gewor
ICAgIC8qKiBAaW5oZXJpdERvYyAqLworICAgIHB1c2hDYWxsOiBmdW5jdGlvbihjYWxsKQorICAg
IHsKKyAgICAgICAgLy8gRklYTUU6IHJlbW92ZSBhbnkgb2xkZXIgY2FsbHMgdGhhdCBubyBsb25n
ZXIgY29udHJpYnV0ZSB0byB0aGUgcmVzb3VyY2Ugc3RhdGUuCisgICAgICAgIC8vIEZJWE1FOiBo
YW5kbGUgbXVsdGlwbGUgYXR0YWNoU2hhZGVyICYmIGRldGFjaFNoYWRlci4KKyAgICAgICAgUmVz
b3VyY2UucHJvdG90eXBlLnB1c2hDYWxsLmNhbGwodGhpcywgY2FsbCk7CisgICAgfQorfQorCitX
ZWJHTFByb2dyYW1SZXNvdXJjZS5wcm90b3R5cGUuX19wcm90b19fID0gUmVzb3VyY2UucHJvdG90
eXBlOworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1Jlc291cmNlfQorICov
CitmdW5jdGlvbiBXZWJHTFNoYWRlclJlc291cmNlKHdyYXBwZWRPYmplY3QpCit7CisgICAgUmVz
b3VyY2UuY2FsbCh0aGlzLCB3cmFwcGVkT2JqZWN0KTsKK30KKworV2ViR0xTaGFkZXJSZXNvdXJj
ZS5wcm90b3R5cGUgPSB7CisgICAgLyoqIEBpbmhlcml0RG9jICovCisgICAgcHVzaENhbGw6IGZ1
bmN0aW9uKGNhbGwpCisgICAgeworICAgICAgICAvLyBGSVhNRTogcmVtb3ZlIGFueSBvbGRlciBj
YWxscyB0aGF0IG5vIGxvbmdlciBjb250cmlidXRlIHRvIHRoZSByZXNvdXJjZSBzdGF0ZS4KKyAg
ICAgICAgLy8gRklYTUU6IGhhbmRsZSBtdWx0aXBsZSBzaGFkZXJTb3VyY2UgY2FsbHMuCisgICAg
ICAgIFJlc291cmNlLnByb3RvdHlwZS5wdXNoQ2FsbC5jYWxsKHRoaXMsIGNhbGwpOworICAgIH0K
K30KKworV2ViR0xTaGFkZXJSZXNvdXJjZS5wcm90b3R5cGUuX19wcm90b19fID0gUmVzb3VyY2Uu
cHJvdG90eXBlOworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkdMQm91
bmRSZXNvdXJjZX0KKyAqLworZnVuY3Rpb24gV2ViR0xCdWZmZXJSZXNvdXJjZSh3cmFwcGVkT2Jq
ZWN0KQoreworICAgIFdlYkdMQm91bmRSZXNvdXJjZS5jYWxsKHRoaXMsIHdyYXBwZWRPYmplY3Qp
OworfQorCitXZWJHTEJ1ZmZlclJlc291cmNlLnByb3RvdHlwZSA9IHsKKyAgICAvKiogQGluaGVy
aXREb2MgKi8KKyAgICBwdXNoQ2FsbDogZnVuY3Rpb24oY2FsbCkKKyAgICB7CisgICAgICAgIC8v
IEZJWE1FOiByZW1vdmUgYW55IG9sZGVyIGNhbGxzIHRoYXQgbm8gbG9uZ2VyIGNvbnRyaWJ1dGUg
dG8gdGhlIHJlc291cmNlIHN0YXRlLgorICAgICAgICAvLyBGSVhNRTogT3B0aW1pemUgbWVtb3J5
IGZvciBidWZmZXJTdWJEYXRhLgorICAgICAgICBXZWJHTEJvdW5kUmVzb3VyY2UucHJvdG90eXBl
LnB1c2hDYWxsLmNhbGwodGhpcywgY2FsbCk7CisgICAgfQorfQorCitXZWJHTEJ1ZmZlclJlc291
cmNlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJHTEJvdW5kUmVzb3VyY2UucHJvdG90eXBlOwor
CisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkdMQm91bmRSZXNvdXJjZX0K
KyAqLworZnVuY3Rpb24gV2ViR0xGcmFtZWJ1ZmZlclJlc291cmNlKHdyYXBwZWRPYmplY3QpCit7
CisgICAgV2ViR0xCb3VuZFJlc291cmNlLmNhbGwodGhpcywgd3JhcHBlZE9iamVjdCk7Cit9CisK
K1dlYkdMRnJhbWVidWZmZXJSZXNvdXJjZS5wcm90b3R5cGUgPSB7CisgICAgLyoqIEBpbmhlcml0
RG9jICovCisgICAgcHVzaENhbGw6IGZ1bmN0aW9uKGNhbGwpCisgICAgeworICAgICAgICAvLyBG
SVhNRTogcmVtb3ZlIGFueSBvbGRlciBjYWxscyB0aGF0IG5vIGxvbmdlciBjb250cmlidXRlIHRv
IHRoZSByZXNvdXJjZSBzdGF0ZS4KKyAgICAgICAgV2ViR0xCb3VuZFJlc291cmNlLnByb3RvdHlw
ZS5wdXNoQ2FsbC5jYWxsKHRoaXMsIGNhbGwpOworICAgIH0KK30KKworV2ViR0xGcmFtZWJ1ZmZl
clJlc291cmNlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJHTEJvdW5kUmVzb3VyY2UucHJvdG90
eXBlOworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkdMQm91bmRSZXNv
dXJjZX0KKyAqLworZnVuY3Rpb24gV2ViR0xSZW5kZXJidWZmZXJSZXNvdXJjZSh3cmFwcGVkT2Jq
ZWN0KQoreworICAgIFdlYkdMQm91bmRSZXNvdXJjZS5jYWxsKHRoaXMsIHdyYXBwZWRPYmplY3Qp
OworfQorCitXZWJHTFJlbmRlcmJ1ZmZlclJlc291cmNlLnByb3RvdHlwZSA9IHsKKyAgICAvKiog
QGluaGVyaXREb2MgKi8KKyAgICBwdXNoQ2FsbDogZnVuY3Rpb24oY2FsbCkKKyAgICB7CisgICAg
ICAgIC8vIEZJWE1FOiByZW1vdmUgYW55IG9sZGVyIGNhbGxzIHRoYXQgbm8gbG9uZ2VyIGNvbnRy
aWJ1dGUgdG8gdGhlIHJlc291cmNlIHN0YXRlLgorICAgICAgICBXZWJHTEJvdW5kUmVzb3VyY2Uu
cHJvdG90eXBlLnB1c2hDYWxsLmNhbGwodGhpcywgY2FsbCk7CisgICAgfQorfQorCitXZWJHTFJl
bmRlcmJ1ZmZlclJlc291cmNlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJHTEJvdW5kUmVzb3Vy
Y2UucHJvdG90eXBlOworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1Jlc291
cmNlfQogICogQHBhcmFtIHtXZWJHTFJlbmRlcmluZ0NvbnRleHR9IGdsQ29udGV4dAogICovCiBm
dW5jdGlvbiBXZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZShnbENvbnRleHQpCkBAIC00NDgs
NiArNjQxLDM0IEBAIGZ1bmN0aW9uIFdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlKGdsQ29u
dGV4dCkKICAgICB0aGlzLl9wcm94eU9iamVjdCA9IG51bGw7CiB9CiAKKy8qKgorICogQGNvbnN0
CisgKiBAdHlwZSB7QXJyYXkuPHN0cmluZz59CisgKi8KK1dlYkdMUmVuZGVyaW5nQ29udGV4dFJl
c291cmNlLlBpeGVsU3RvcmVQYXJhbWV0ZXJzID0gWworICAgICJQQUNLX0FMSUdOTUVOVCIsCisg
ICAgIlVOUEFDS19BTElHTk1FTlQiLAorICAgICJVTlBBQ0tfQ09MT1JTUEFDRV9DT05WRVJTSU9O
X1dFQkdMIiwKKyAgICAiVU5QQUNLX0ZMSVBfWV9XRUJHTCIsCisgICAgIlVOUEFDS19QUkVNVUxU
SVBMWV9BTFBIQV9XRUJHTCIKK107CisKKy8qKgorICogQHBhcmFtIHsqfSBvYmoKKyAqIEByZXR1
cm4ge1dlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlfQorICovCitXZWJHTFJlbmRlcmluZ0Nv
bnRleHRSZXNvdXJjZS5mb3JPYmplY3QgPSBmdW5jdGlvbihvYmopCit7CisgICAgdmFyIHJlc291
cmNlID0gUmVzb3VyY2UuZm9yT2JqZWN0KG9iaik7CisgICAgaWYgKCFyZXNvdXJjZSB8fCByZXNv
dXJjZSBpbnN0YW5jZW9mIFdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlKQorICAgICAgICBy
ZXR1cm4gcmVzb3VyY2U7CisgICAgdmFyIGNhbGwgPSByZXNvdXJjZS5jYWxscygpOworICAgIGlm
ICghY2FsbCB8fCAhY2FsbC5sZW5ndGgpCisgICAgICAgIHJldHVybiBudWxsOworICAgIHJlc291
cmNlID0gY2FsbFswXS5yZXNvdXJjZSgpOworICAgIHJldHVybiAocmVzb3VyY2UgaW5zdGFuY2Vv
ZiBXZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZSkgPyByZXNvdXJjZSA6IG51bGw7Cit9CisK
IFdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAg
ICAgKiBAcmV0dXJuIHtPYmplY3R9CkBAIC00NjAsNiArNjgxLDU5IEBAIFdlYkdMUmVuZGVyaW5n
Q29udGV4dFJlc291cmNlLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCisgICAgICog
QHBhcmFtIHtPYmplY3R8bnVtYmVyfSB0YXJnZXQKKyAgICAgKiBAcmV0dXJuIHtSZXNvdXJjZX0K
KyAgICAgKi8KKyAgICBjdXJyZW50QmluZGluZzogZnVuY3Rpb24odGFyZ2V0KQorICAgIHsKKyAg
ICAgICAgdmFyIHJlc291cmNlID0gUmVzb3VyY2UuZm9yT2JqZWN0KHRhcmdldCk7CisgICAgICAg
IGlmIChyZXNvdXJjZSkKKyAgICAgICAgICAgIHJldHVybiByZXNvdXJjZTsKKyAgICAgICAgdmFy
IGdsID0gdGhpcy53cmFwcGVkT2JqZWN0KCk7CisgICAgICAgIHZhciBiaW5kaW5nVGFyZ2V0Owor
ICAgICAgICB2YXIgYmluZE1ldGhvZE5hbWU7CisgICAgICAgIHN3aXRjaCAodGFyZ2V0KSB7Cisg
ICAgICAgICAgICBjYXNlIGdsLkFSUkFZX0JVRkZFUjoKKyAgICAgICAgICAgICAgICBiaW5kaW5n
VGFyZ2V0ID0gZ2wuQVJSQVlfQlVGRkVSX0JJTkRJTkc7CisgICAgICAgICAgICAgICAgYmluZE1l
dGhvZE5hbWUgPSAiYmluZEJ1ZmZlciI7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIGdsLkVMRU1FTlRfQVJSQVlfQlVGRkVSOgorICAgICAgICAgICAgICAgIGJpbmRp
bmdUYXJnZXQgPSBnbC5FTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HOworICAgICAgICAgICAg
ICAgIGJpbmRNZXRob2ROYW1lID0gImJpbmRCdWZmZXIiOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBnbC5URVhUVVJFXzJEOgorICAgICAgICAgICAgICAgIGJpbmRp
bmdUYXJnZXQgPSBnbC5URVhUVVJFX0JJTkRJTkdfMkQ7CisgICAgICAgICAgICAgICAgYmluZE1l
dGhvZE5hbWUgPSAiYmluZFRleHR1cmUiOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBnbC5URVhUVVJFX0NVQkVfTUFQOgorICAgICAgICAgICAgY2FzZSBnbC5URVhU
VVJFX0NVQkVfTUFQX1BPU0lUSVZFX1g6CisgICAgICAgICAgICBjYXNlIGdsLlRFWFRVUkVfQ1VC
RV9NQVBfTkVHQVRJVkVfWDoKKyAgICAgICAgICAgIGNhc2UgZ2wuVEVYVFVSRV9DVUJFX01BUF9Q
T1NJVElWRV9ZOgorICAgICAgICAgICAgY2FzZSBnbC5URVhUVVJFX0NVQkVfTUFQX05FR0FUSVZF
X1k6CisgICAgICAgICAgICBjYXNlIGdsLlRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWjoKKyAg
ICAgICAgICAgIGNhc2UgZ2wuVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aOgorICAgICAgICAg
ICAgICAgIGJpbmRpbmdUYXJnZXQgPSBnbC5URVhUVVJFX0JJTkRJTkdfQ1VCRV9NQVA7CisgICAg
ICAgICAgICAgICAgYmluZE1ldGhvZE5hbWUgPSAiYmluZFRleHR1cmUiOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBnbC5GUkFNRUJVRkZFUjoKKyAgICAgICAgICAg
ICAgICBiaW5kaW5nVGFyZ2V0ID0gZ2wuRlJBTUVCVUZGRVJfQklORElORzsKKyAgICAgICAgICAg
ICAgICBiaW5kTWV0aG9kTmFtZSA9ICJiaW5kRnJhbWVidWZmZXIiOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBnbC5SRU5ERVJCVUZGRVI6CisgICAgICAgICAgICAg
ICAgYmluZGluZ1RhcmdldCA9IGdsLlJFTkRFUkJVRkZFUl9CSU5ESU5HOworICAgICAgICAgICAg
ICAgIGJpbmRNZXRob2ROYW1lID0gImJpbmRSZW5kZXJidWZmZXIiOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgICAgICBjb25zb2xlLmVy
cm9yKCJBU1NFUlRfTk9UX1JFQUNIRUQ6IHVua25vd24gYmluZGluZyB0YXJnZXQgIiArIHRhcmdl
dCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIH0KKyAgICAgICAgcmVz
b3VyY2UgPSBSZXNvdXJjZS5mb3JPYmplY3QoZ2wuZ2V0UGFyYW1ldGVyKGJpbmRpbmdUYXJnZXQp
KTsKKyAgICAgICAgaWYgKHJlc291cmNlKQorICAgICAgICAgICAgcmVzb3VyY2UucHVzaEJpbmRp
bmcodGFyZ2V0LCBiaW5kTWV0aG9kTmFtZSk7CisgICAgICAgIHJldHVybiByZXNvdXJjZTsKKyAg
ICB9LAorCisgICAgLyoqCiAgICAgICogQHJldHVybiB7T2JqZWN0fQogICAgICAqLwogICAgIF93
cmFwT2JqZWN0OiBmdW5jdGlvbigpCkBAIC00NzEsOCArNzQ1LDExIEBAIFdlYkdMUmVuZGVyaW5n
Q29udGV4dFJlc291cmNlLnByb3RvdHlwZSA9IHsKICAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc1By
b3BlcnR5KHByb3BlcnR5KQogICAgICAgICB7CiAgICAgICAgICAgICBpZiAodHlwZW9mIGdsQ29u
dGV4dFtwcm9wZXJ0eV0gPT09ICJmdW5jdGlvbiIpIHsKLSAgICAgICAgICAgICAgICAvLyBGSVhN
RTogb3ZlcnJpZGUgR0wgY2FsbHMgYWZmZWN0aW5nIHJlc291cmNlcyBzdGF0ZXMgaGVyZS4KLSAg
ICAgICAgICAgICAgICBwcm94eVtwcm9wZXJ0eV0gPSBzZWxmLl93cmFwRnVuY3Rpb24oc2VsZiwg
Z2xDb250ZXh0LCBnbENvbnRleHRbcHJvcGVydHldLCBwcm9wZXJ0eSk7CisgICAgICAgICAgICAg
ICAgdmFyIGN1c3RvbVdyYXBGdW5jdGlvbiA9IFdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNl
LldyYXBGdW5jdGlvbnNbcHJvcGVydHldOworICAgICAgICAgICAgICAgIGlmIChjdXN0b21XcmFw
RnVuY3Rpb24pCisgICAgICAgICAgICAgICAgICAgIHByb3h5W3Byb3BlcnR5XSA9IHNlbGYuX3dy
YXBDdXN0b21GdW5jdGlvbihzZWxmLCBnbENvbnRleHQsIGdsQ29udGV4dFtwcm9wZXJ0eV0sIHBy
b3BlcnR5LCBjdXN0b21XcmFwRnVuY3Rpb24pOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAg
ICAgICAgICAgICAgICAgcHJveHlbcHJvcGVydHldID0gc2VsZi5fd3JhcEZ1bmN0aW9uKHNlbGYs
IGdsQ29udGV4dCwgZ2xDb250ZXh0W3Byb3BlcnR5XSwgcHJvcGVydHkpOwogICAgICAgICAgICAg
fSBlbHNlIGlmICgvXltBLVowLTlfXSskLy50ZXN0KHByb3BlcnR5KSkgewogICAgICAgICAgICAg
ICAgIC8vIEZhc3QgYWNjZXNzIHRvIGVudW1zIGFuZCBjb25zdGFudHMuCiAgICAgICAgICAgICAg
ICAgcHJveHlbcHJvcGVydHldID0gZ2xDb250ZXh0W3Byb3BlcnR5XTsKQEAgLTUwMSw2ICs3Nzgs
MjkgQEAgV2ViR0xSZW5kZXJpbmdDb250ZXh0UmVzb3VyY2UucHJvdG90eXBlID0gewogICAgICAq
IEBwYXJhbSB7V2ViR0xSZW5kZXJpbmdDb250ZXh0fSBvcmlnaW5hbE9iamVjdAogICAgICAqIEBw
YXJhbSB7RnVuY3Rpb259IG9yaWdpbmFsRnVuY3Rpb24KICAgICAgKiBAcGFyYW0ge3N0cmluZ30g
ZnVuY3Rpb25OYW1lCisgICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY3VzdG9tV3JhcEZ1bmN0aW9u
CisgICAgICogQHJldHVybiB7Kn0KKyAgICAgKi8KKyAgICBfd3JhcEN1c3RvbUZ1bmN0aW9uOiBm
dW5jdGlvbihyZXNvdXJjZSwgb3JpZ2luYWxPYmplY3QsIG9yaWdpbmFsRnVuY3Rpb24sIGZ1bmN0
aW9uTmFtZSwgY3VzdG9tV3JhcEZ1bmN0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZ1bmN0
aW9uKCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIG1hbmFnZXIgPSByZXNvdXJjZS5tYW5h
Z2VyKCk7CisgICAgICAgICAgICBpZiAobWFuYWdlcikKKyAgICAgICAgICAgICAgICBtYW5hZ2Vy
LmNhcHR1cmVBcmd1bWVudHMocmVzb3VyY2UsIGFyZ3VtZW50cyk7CisgICAgICAgICAgICB2YXIg
d3JhcEZ1bmN0aW9uID0gbmV3IFdlYkdMUmVuZGVyaW5nQ29udGV4dFJlc291cmNlLldyYXBGdW5j
dGlvbihvcmlnaW5hbE9iamVjdCwgb3JpZ2luYWxGdW5jdGlvbiwgZnVuY3Rpb25OYW1lLCBhcmd1
bWVudHMpOworICAgICAgICAgICAgY3VzdG9tV3JhcEZ1bmN0aW9uLmFwcGx5KHdyYXBGdW5jdGlv
biwgYXJndW1lbnRzKTsKKyAgICAgICAgICAgIGlmIChtYW5hZ2VyKQorICAgICAgICAgICAgICAg
IG1hbmFnZXIucmVwb3J0Q2FsbCh3cmFwRnVuY3Rpb24uY2FsbCgpKTsKKyAgICAgICAgICAgIHJl
dHVybiB3cmFwRnVuY3Rpb24ucmVzdWx0KCk7CisgICAgICAgIH07CisgICAgfSwKKworICAgIC8q
KgorICAgICAqIEBwYXJhbSB7UmVzb3VyY2V9IHJlc291cmNlCisgICAgICogQHBhcmFtIHtXZWJH
TFJlbmRlcmluZ0NvbnRleHR9IG9yaWdpbmFsT2JqZWN0CisgICAgICogQHBhcmFtIHtGdW5jdGlv
bn0gb3JpZ2luYWxGdW5jdGlvbgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBmdW5jdGlvbk5hbWUK
ICAgICAgKiBAcmV0dXJuIHsqfQogICAgICAqLwogICAgIF93cmFwRnVuY3Rpb246IGZ1bmN0aW9u
KHJlc291cmNlLCBvcmlnaW5hbE9iamVjdCwgb3JpZ2luYWxGdW5jdGlvbiwgZnVuY3Rpb25OYW1l
KQpAQCAtNTYxLDYgKzg2MSw3MyBAQCBXZWJHTFJlbmRlcmluZ0NvbnRleHRSZXNvdXJjZS5XcmFw
RnVuY3Rpb24ucHJvdG90eXBlID0gewogICAgIH0KIH0KIAorV2ViR0xSZW5kZXJpbmdDb250ZXh0
UmVzb3VyY2UuV3JhcEZ1bmN0aW9ucyA9IHsKKyAgICBfX3Byb3RvX186IG51bGwKK307CisKKyhm
dW5jdGlvbihpdGVtcykgeworICAgIGl0ZW1zLmZvckVhY2goZnVuY3Rpb24oaXRlbSkgeworICAg
ICAgICB2YXIgbWV0aG9kTmFtZSA9IGl0ZW1bMF07CisgICAgICAgIHZhciByZXNvdXJjZUNvbnN0
cnVjdG9yID0gaXRlbVsxXTsKKyAgICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0UmVzb3VyY2Uu
V3JhcEZ1bmN0aW9uc1ttZXRob2ROYW1lXSA9IGZ1bmN0aW9uKCkKKyAgICAgICAgeworICAgICAg
ICAgICAgdmFyIHdyYXBwZWRPYmplY3QgPSB0aGlzLnJlc3VsdCgpOworICAgICAgICAgICAgaWYg
KCF3cmFwcGVkT2JqZWN0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHZh
ciByZXNvdXJjZSA9IG5ldyByZXNvdXJjZUNvbnN0cnVjdG9yKHdyYXBwZWRPYmplY3QpOworICAg
ICAgICAgICAgdmFyIG1hbmFnZXIgPSB0aGlzLl9nbFJlc291cmNlLm1hbmFnZXIoKTsKKyAgICAg
ICAgICAgIGlmIChtYW5hZ2VyKQorICAgICAgICAgICAgICAgIG1hbmFnZXIucmVnaXN0ZXJSZXNv
dXJjZShyZXNvdXJjZSk7CisgICAgICAgICAgICByZXNvdXJjZS5wdXNoQ2FsbCh0aGlzLmNhbGwo
KSk7CisgICAgICAgIH07CisgICAgfSk7Cit9KShbCisgICAgWyJjcmVhdGVCdWZmZXIiLCBXZWJH
TEJ1ZmZlclJlc291cmNlXSwKKyAgICBbImNyZWF0ZVNoYWRlciIsIFdlYkdMU2hhZGVyUmVzb3Vy
Y2VdLAorICAgIFsiY3JlYXRlUHJvZ3JhbSIsIFdlYkdMUHJvZ3JhbVJlc291cmNlXSwKKyAgICBb
ImNyZWF0ZVRleHR1cmUiLCBXZWJHTFRleHR1cmVSZXNvdXJjZV0sCisgICAgWyJjcmVhdGVGcmFt
ZWJ1ZmZlciIsIFdlYkdMRnJhbWVidWZmZXJSZXNvdXJjZV0sCisgICAgWyJjcmVhdGVSZW5kZXJi
dWZmZXIiLCBXZWJHTFJlbmRlcmJ1ZmZlclJlc291cmNlXSwKKyAgICBbImdldFVuaWZvcm1Mb2Nh
dGlvbiIsIFJlc291cmNlXQorXSk7CisKKyhmdW5jdGlvbihtZXRob2RzKSB7CisgICAgbWV0aG9k
cy5mb3JFYWNoKGZ1bmN0aW9uKG1ldGhvZE5hbWUpIHsKKyAgICAgICAgdmFyIGN1c3RvbVB1c2hD
YWxsID0gInB1c2hDYWxsXyIgKyBtZXRob2ROYW1lOworICAgICAgICBXZWJHTFJlbmRlcmluZ0Nv
bnRleHRSZXNvdXJjZS5XcmFwRnVuY3Rpb25zW21ldGhvZE5hbWVdID0gZnVuY3Rpb24odGFyZ2V0
KQorICAgICAgICB7CisgICAgICAgICAgICB2YXIgcmVzb3VyY2UgPSB0aGlzLl9nbFJlc291cmNl
LmN1cnJlbnRCaW5kaW5nKHRhcmdldCk7CisgICAgICAgICAgICBpZiAocmVzb3VyY2UpIHsKKyAg
ICAgICAgICAgICAgICBpZiAocmVzb3VyY2VbY3VzdG9tUHVzaENhbGxdKQorICAgICAgICAgICAg
ICAgICAgICByZXNvdXJjZVtjdXN0b21QdXNoQ2FsbF0uY2FsbChyZXNvdXJjZSwgdGhpcy5jYWxs
KCkpOworICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2Uu
cHVzaENhbGwodGhpcy5jYWxsKCkpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0p
OworfSkoWworICAgICJhdHRhY2hTaGFkZXIiLAorICAgICJiaW5kQXR0cmliTG9jYXRpb24iLAor
ICAgICJjb21waWxlU2hhZGVyIiwKKyAgICAiZGV0YWNoU2hhZGVyIiwKKyAgICAibGlua1Byb2dy
YW0iLAorICAgICJzaGFkZXJTb3VyY2UiLAorICAgICJidWZmZXJEYXRhIiwKKyAgICAiYnVmZmVy
U3ViRGF0YSIsCisgICAgImNvbXByZXNzZWRUZXhJbWFnZTJEIiwKKyAgICAiY29tcHJlc3NlZFRl
eFN1YkltYWdlMkQiLAorICAgICJjb3B5VGV4SW1hZ2UyRCIsCisgICAgImNvcHlUZXhTdWJJbWFn
ZTJEIiwKKyAgICAiZ2VuZXJhdGVNaXBtYXAiLAorICAgICJ0ZXhJbWFnZTJEIiwKKyAgICAidGV4
U3ViSW1hZ2UyRCIsCisgICAgInRleFBhcmFtZXRlcmYiLAorICAgICJ0ZXhQYXJhbWV0ZXJpIiwK
KyAgICAiZnJhbWVidWZmZXJSZW5kZXJidWZmZXIiLAorICAgICJmcmFtZWJ1ZmZlclRleHR1cmUy
RCIsCisgICAgInJlbmRlcmJ1ZmZlclN0b3JhZ2UiCitdKTsKKwogLyoqCiAgKiBAY29uc3RydWN0
b3IKICAqLwpAQCAtNjU2LDcgKzEwMjMsNyBAQCBUcmFjZUxvZ1BsYXllci5wcm90b3R5cGUgPSB7
CiAgICAgICAgIC8vIEZJWE1FOiBSZXBsYXkgYWxsIHRoZSBjYWNoZWQgcmVzb3VyY2VzIGZpcnN0
IHRvIHdhcm0tdXAuCiAgICAgICAgIHZhciByZXBsYXlhYmxlQ2FsbHMgPSB0aGlzLl90cmFjZUxv
Zy5yZXBsYXlhYmxlQ2FsbHMoKTsKICAgICAgICAgd2hpbGUgKHRoaXMuX25leHRSZXBsYXlTdGVw
IDw9IHN0ZXBOdW0pCi0gICAgICAgICAgICByZXBsYXlhYmxlQ2FsbHNbdGhpcy5fbmV4dFJlcGxh
eVN0ZXArK10ucmVwbGF5KHRoaXMuX3JlcGxheVdvcmxkQ2FjaGUpOyAgICAgICAgICAgIAorICAg
ICAgICAgICAgcmVwbGF5YWJsZUNhbGxzW3RoaXMuX25leHRSZXBsYXlTdGVwKytdLnJlcGxheSh0
aGlzLl9yZXBsYXlXb3JsZENhY2hlKTsKICAgICB9LAogCiAgICAgcmVwbGF5OiBmdW5jdGlvbigp
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>