<?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>80863</bug_id>
          
          <creation_ts>2012-03-12 11:43:54 -0700</creation_ts>
          <short_desc>Web Inspector: Add snippets model.</short_desc>
          <delta_ts>2012-03-13 09:38:21 -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>75094</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>peter</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>576339</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-12 11:43:54 -0700</bug_when>
    <thetext>Add snippets model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576439</commentid>
    <comment_count>1</comment_count>
      <attachid>131389</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-12 13:09:58 -0700</bug_when>
    <thetext>Created attachment 131389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577172</commentid>
    <comment_count>2</comment_count>
      <attachid>131389</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-03-13 01:56:32 -0700</bug_when>
    <thetext>Comment on attachment 131389
Patch

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

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:2
&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.

2012

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:35
&gt; +    this._snippetsCount = 0;

It is unused, remove it.

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:63
&gt; +            savedSnippet.id = this._snippets[i].id;

Can we generate snippet id on load?

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:102
&gt; +        var snippet = new WebInspector.Snippet(this, this._snippets.length);

Using this._snippets.length as snippet id is fragile. Please use a separate counter for it as discussed offline.

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:139
&gt; +    snippetForId: function(snippetId)

This will break if one of the snippets has been deleted. Please fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577205</commentid>
    <comment_count>3</comment_count>
      <attachid>131579</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-13 03:09:07 -0700</bug_when>
    <thetext>Created attachment 131579
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577212</commentid>
    <comment_count>4</comment_count>
      <attachid>131579</attachid>
    <who name="Alexander Pavlov (apavlov)">apavlov</who>
    <bug_when>2012-03-13 03:39:49 -0700</bug_when>
    <thetext>Comment on attachment 131579
Patch

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

&gt; Source/WebCore/inspector/compile-front-end.py:87
&gt; +            &quot;SnippetsModel.js&quot;,

I guess it&apos;s a good idea to maintain the alphabetical order (believe it should be there but it&apos;s not.)

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:35
&gt; +    this._snippets = [];

You have duplicate initialization (here and in this._loadSettings()). I suggest that you remove this one and only declare the field:

/**
 * @type {Array.&lt;WebInspector.Snippet&gt;}
 */
 this._snippets;

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:63
&gt; +            savedSnippet.id = this._snippets[i].id;

You could have Snippet.prototype.toObject() or something similar, since you know they will be stored as plain objects.

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:77
&gt; +            var snippet = new WebInspector.Snippet(this, savedSnippets[i].id, savedSnippets[i].name, savedSnippets[i].content);

Same thing: something like fromObject(object) (or parseObject) would make sense. See WebInspector.CSSRule.parsePayload() (and other instances in the same file.)

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:85
&gt; +    deleteSnippet: function(snippet)

Do you need the entire snippet as an argument? An ID seems to be sufficient here.

You can also return a boolean to indicate whether or not a snippet has actually been deleted (i.e. was present in the model.)

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:100
&gt; +    createSnippet: function()

optional: This method might accept optional name and content of the snippet

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:106
&gt; +        this._saveSettings();

Should this live inside this._snippetAdded()? Meaning, do we always save the state of the model once its contents have changed?

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:131
&gt; +    _snippetRenamed: function(snippet)

You might want to have the old name of the snippet here as well (to dispatch in the event), but be reasonable and don&apos;t write provisional code :)

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:139
&gt; +     * @return {WebInspector.Snippet}

@return {WebInspector.Snippet|undefined}

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:182
&gt; +    set name(name)

Don&apos;t know if it&apos;s important or not, but most of our setters accept the &quot;x&quot; argument (presumably, to distinguish the new value from anything else - here you have three &quot;name&quot;-related entities.)

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:184
&gt; +        this._name = name;

Check for the actual name change before doing anything (especially notifying the model.)

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:198
&gt; +        this._content = content;

ditto

&gt; LayoutTests/inspector/debugger/snippets-model.html:5
&gt; +function test()

This does not cover much of the model functionality. E.g., event dispatching, snippetForId() etc.

&gt; LayoutTests/inspector/debugger/snippets-model.html:27
&gt; +    // FIXME: Remove once snippets are taked out of experiments.

taken

&gt; LayoutTests/inspector/debugger/snippets-model.html:29
&gt; +        WebInspector.snippetsModel = new WebInspector.SnippetsModel();

Actually, you could just create your own SnippetsModel instance without relying on WebInspector.snippetsModel.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577242</commentid>
    <comment_count>5</comment_count>
      <attachid>131594</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-13 05:18:12 -0700</bug_when>
    <thetext>Created attachment 131594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>577433</commentid>
    <comment_count>6</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-13 09:38:21 -0700</bug_when>
    <thetext>Committed r110576: &lt;http://trac.webkit.org/changeset/110576&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131389</attachid>
            <date>2012-03-12 13:09:58 -0700</date>
            <delta_ts>2012-03-13 03:08:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80863-20120313000956.patch</filename>
            <type>text/plain</type>
            <size>18542</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjViMjBiZTJlYzI0YjI3
ZTk5OTNiOTJkNzIwM2ViN2ExYWFmY2IyNy4uMzA2YWQ3MzlkOTJkMzZhZjFiMjU1ODg3N2I0Mjcx
ZjRkOGVmMDQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTAzLTEyICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEFkZCBzbmlwcGV0cyBtb2RlbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgwODYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0
bWwKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2g6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5FeHBlcmltZW50c1NldHRpbmdzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1NuaXBwZXRzTW9kZWwuanM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNu
aXBwZXRzTW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90
eXBlLmdldCBzbmlwcGV0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5w
cm90b3R5cGUuX3NhdmVTZXR0aW5ncyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNN
b2RlbC5wcm90b3R5cGUuc2V0IF9sb2FkU2V0dGluZ3MuZ2V0IGZvcik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUuc2V0IF9sb2FkU2V0dGluZ3MpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLmRlbGV0ZVNuaXBwZXQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLmNyZWF0ZVNu
aXBwZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLl9z
bmlwcGV0QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90
eXBlLl9zbmlwcGV0Q29udGVudFVwZGF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBw
ZXRzTW9kZWwucHJvdG90eXBlLl9zbmlwcGV0UmVuYW1lZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUuc25pcHBldEZvcklkKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TbmlwcGV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0LnByb3RvdHlw
ZS5nZXQgaWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXQucHJvdG90eXBlLmdldCBu
YW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0LnByb3RvdHlwZS5zZXQgbmFtZSk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldC5wcm90b3R5cGUuZ2V0IGNvbnRlbnQpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXQucHJvdG90eXBlLnNldCBjb250ZW50KToKKyAg
ICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL2luc3BlY3Rvci5qczoKKwogMjAxMi0wMy0xMiAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZp
bG92QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHRyYWN0IFJlc291
cmNlU2NyaXB0TWFwcGluZyBmcm9tIE1haW5TY3JpcHRNYXBwaW5nLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmlu
ZGV4IGI4MTcxZWM2ODQ1NGM3Y2NhMjRhMzIxZmEzZTRhY2ZmZGExYzQzMjMuLjUxN2NhNzZjZDM0
MGFlNjUwNDFkYjkwZjY4MzFkMzU5ODk0OTU1MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTYyODcs
NiArNjI4Nyw3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyT3Zl
cmxheS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyUGFuZS5q
cycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyVHJlZUVsZW1lbnQu
anMnLAorICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU25pcHBldHNNb2RlbC5qcycs
CiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Tb2Z0Q29udGV4dE1lbnUuanMnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlQ1NTVG9rZW5pemVyLmpzJywK
ICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzJywKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggM2FkMDljZjQ1
NDhlZDhkM2Y0NjllN2M2MDkyNGQ5MWYzNDdhODJhZS4uYjVlNjU5MGNhY2RkMTM4YjAzYjFkMzY0
ZmJhNjhjMDk0NzkzMzkwYiAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3By
b2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2Vi
Q29yZS52Y3Byb2oKQEAgLTczODU3LDYgKzczODU3LDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+
CiAJCQkJPEZpbGUKKwkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFNu
aXBwZXRzTW9kZWwuanMiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFNvZnRDb250ZXh0TWVudS5qcyIKIAkJ
CQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9j
b21waWxlLWZyb250LWVuZC5zaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZy
b250LWVuZC5zaAppbmRleCA3ZmYwZDU1NzE1YTI0MThlNDRhMGViYmI2ZGY0MzEyNjU0OTQ0ZGJl
Li40MWRiNDYyNjI4ZTc1MDY4ZmE2ZTRhYTBhMDY1ZjYxODZkMTYxYzI1IDEwMDc1NQotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQuc2gKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnNoCkBAIC00NSw3ICs0NSw3IEBA
IGphdmEgLWphciB+L2Nsb3N1cmUvY29tcGlsZXIuamFyIC0tc3VtbWFyeV9kZXRhaWxfbGV2ZWwg
MyAtLWNvbXBpbGF0aW9uX2xldmVsIFNJCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9Vc2VyTWV0cmljcy5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9IYW5kbGVyUmVnaXN0cnkuanMgXAogICAgICAgICAt
LWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvSW5zcGVjdG9yRnJvbnRlbmRI
b3N0U3R1Yi5qcyBcCi0gICAgLS1tb2R1bGUganNtb2R1bGVfc2RrOjM0OmpzbW9kdWxlX2NvbW1v
biBcCisgICAgLS1tb2R1bGUganNtb2R1bGVfc2RrOjM1OmpzbW9kdWxlX2NvbW1vbiBcCiAgICAg
ICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9JbnNwZWN0b3JCYWNr
ZW5kLmpzIFwKICAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L0FwcGxpY2F0aW9uQ2FjaGVNb2RlbC5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Db2xvci5qcyBcCkBAIC03Miw2ICs3Miw3IEBAIGphdmEgLWph
ciB+L2Nsb3N1cmUvY29tcGlsZXIuamFyIC0tc3VtbWFyeV9kZXRhaWxfbGV2ZWwgMyAtLWNvbXBp
bGF0aW9uX2xldmVsIFNJCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UaW1lbGluZU1hbmFnZXIuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVNb2RlbC5qcyBcCiAgICAgICAgIC0tanMgU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVByZXNlbnRhdGlvbk1vZGVs
LmpzIFwKKyAgICAgICAgLS1qcyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nu
aXBwZXRzTW9kZWwuanMgXAogICAgICAgICAtLWpzIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmF3U291cmNlQ29kZS5qcyBcCiAgICAgICAgIC0tanMgU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9SZW1vdGVPYmplY3QuanMgXAogICAgICAgICAtLWpzIFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmVzb3VyY2UuanMgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKaW5kZXggODY3MzgzOTQ1YmEw
MGU2N2E3N2NkYzJiNDkzNTgxMjc4M2Q3ZWE2OC4uNjkzYjU3MDMzNjU5M2M1MGNhODAyYjZhMDk1
OGUyZjdjNjg3OWFhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TZXR0aW5ncy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NldHRpbmdzLmpzCkBAIC0xODAsNiArMTgwLDcgQEAgV2ViSW5zcGVjdG9yLkV4cGVyaW1lbnRz
U2V0dGluZ3MgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5zaG93SW5kZXhlZERCID0gdGhpcy5fY3Jl
YXRlRXhwZXJpbWVudCgic2hvd0luZGV4ZWREQiIsICJTaG93IEluZGV4ZWREQiBpbiBSZXNvdXJj
ZXMgcGFuZWwiKTsKICAgICB0aGlzLmRlYnVnQ1NTID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgi
ZGVidWdDU1MiLCAiTG9hZCBDU1MgdmlhIGxpbmsgdGFncyBmb3IgZGVidWdnaW5nIik7CiAgICAg
dGhpcy5zaG93U2hhZG93RE9NID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgic2hvd1NoYWRvd0RP
TSIsICJTaG93IHNoYWRvdyBET00iKTsKKyAgICB0aGlzLnNuaXBwZXRzU3VwcG9ydCA9IHRoaXMu
X2NyZWF0ZUV4cGVyaW1lbnQoInNuaXBwZXRzU3VwcG9ydCIsICJTbmlwcGV0cyBzdXBwb3J0Iik7
CiAKICAgICB0aGlzLl9jbGVhblVwU2V0dGluZygpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0c01vZGVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0c01vZGVsLmpzCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhlODJi
ZjJkYmJjZmRjN2M1ZGZlMTRjMjBmM2RkMzk0MTJhOTg0YmYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NuaXBwZXRzTW9kZWwuanMKQEAgLTAs
MCArMSwyMDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1l
dDoKKyAqCisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICoKKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIK
KyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEdPT0dMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgR09PR0xFIElOQy4KKyAqIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBl
eHRlbmRzIHtXZWJJbnNwZWN0b3IuT2JqZWN0fQorICovCitXZWJJbnNwZWN0b3IuU25pcHBldHNN
b2RlbCA9IGZ1bmN0aW9uKCkKK3sKKyAgICB0aGlzLl9zbmlwcGV0c0NvdW50ID0gMDsKKyAgICB0
aGlzLl9zbmlwcGV0cyA9IFtdOworICAgIAorICAgIHRoaXMuX3NuaXBwZXRzU2V0dGluZyA9IFdl
Ykluc3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0aW5nKCJzbmlwcGV0cyIsIFtdKTsKKworICAg
IHRoaXMuX2xvYWRTZXR0aW5ncygpOworfQorCitXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5F
dmVudFR5cGVzID0geworICAgIFNuaXBwZXRBZGRlZDogIlNuaXBwZXRBZGRlZCIsCisgICAgU25p
cHBldFJlbmFtZWQ6ICJTbmlwcGV0UmVuYW1lZCIsCisgICAgU25pcHBldERlbGV0ZWQ6ICJTbmlw
cGV0RGVsZXRlZCIsCit9CisKK1dlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLnByb3RvdHlwZSA9
IHsKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLlNuaXBwZXQ+
fQorICAgICAqLworICAgIGdldCBzbmlwcGV0cygpCisgICAgeworICAgICAgICByZXR1cm4gdGhp
cy5fc25pcHBldHMuc2xpY2UoKTsKKyAgICB9LAorICAgIAorICAgIF9zYXZlU2V0dGluZ3M6IGZ1
bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBzYXZlZFNuaXBwZXRzID0gW107CisgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fc25pcHBldHMubGVuZ3RoOyArK2kpIHsKKyAgICAg
ICAgICAgIHZhciBzYXZlZFNuaXBwZXQgPSB7fTsKKyAgICAgICAgICAgIHNhdmVkU25pcHBldC5p
ZCA9IHRoaXMuX3NuaXBwZXRzW2ldLmlkOworICAgICAgICAgICAgc2F2ZWRTbmlwcGV0Lm5hbWUg
PSB0aGlzLl9zbmlwcGV0c1tpXS5uYW1lOworICAgICAgICAgICAgc2F2ZWRTbmlwcGV0LmNvbnRl
bnQgPSB0aGlzLl9zbmlwcGV0c1tpXS5jb250ZW50OworICAgICAgICAgICAgc2F2ZWRTbmlwcGV0
cy5wdXNoKHNhdmVkU25pcHBldCk7CisgICAgICAgIH0gICAKKyAgICAgIAorICAgICAgICB0aGlz
Ll9zbmlwcGV0c1NldHRpbmcuc2V0KHNhdmVkU25pcHBldHMpOworICAgIH0sCisgICAgCisgICAg
X2xvYWRTZXR0aW5nczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fc25pcHBldHMg
PSBbXTsKKyAgICAgICAgdmFyIHNhdmVkU25pcHBldHMgPSB0aGlzLl9zbmlwcGV0c1NldHRpbmcu
Z2V0KCk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2F2ZWRTbmlwcGV0cy5sZW5ndGg7
ICsraSkgeworICAgICAgICAgICAgdmFyIHNuaXBwZXQgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBw
ZXQodGhpcywgc2F2ZWRTbmlwcGV0c1tpXS5pZCwgc2F2ZWRTbmlwcGV0c1tpXS5uYW1lLCBzYXZl
ZFNuaXBwZXRzW2ldLmNvbnRlbnQpOworICAgICAgICAgICAgdGhpcy5fc25pcHBldEFkZGVkKHNu
aXBwZXQpOworICAgICAgICB9CisgICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5TbmlwcGV0fSBzbmlwcGV0CisgICAgICovCisgICAgZGVsZXRlU25pcHBl
dDogZnVuY3Rpb24oc25pcHBldCkKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dGhpcy5fc25pcHBldHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzbmlwcGV0Lmlk
ID09PSB0aGlzLl9zbmlwcGV0c1tpXS5pZCkgeworICAgICAgICAgICAgICAgIHRoaXMuX3NuaXBw
ZXRzLnNwbGljZShpLCAxKTsKKyAgICAgICAgICAgICAgICB0aGlzLl9zYXZlU2V0dGluZ3MoKTsK
KyAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuU25pcHBldHNNb2RlbC5FdmVudFR5cGVzLlNuaXBwZXREZWxldGVkLCBzbmlwcGV0KTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0sCisg
ICAgCisgICAgLyoqCisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlNuaXBwZXR9CisgICAg
ICovCisgICAgY3JlYXRlU25pcHBldDogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdmFyIHNu
aXBwZXQgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXQodGhpcywgdGhpcy5fc25pcHBldHMubGVu
Z3RoKTsKKyAgICAgICAgdGhpcy5fc25pcHBldEFkZGVkKHNuaXBwZXQpOworICAgICAgICB0aGlz
Ll9zYXZlU2V0dGluZ3MoKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBzbmlwcGV0OworICAg
IH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU25pcHBldH0g
c25pcHBldAorICAgICAqLworICAgIF9zbmlwcGV0QWRkZWQ6IGZ1bmN0aW9uKHNuaXBwZXQpCisg
ICAgeworICAgICAgICB0aGlzLl9zbmlwcGV0cy5wdXNoKHNuaXBwZXQpOworICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5FdmVu
dFR5cGVzLlNuaXBwZXRBZGRlZCwgc25pcHBldCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAq
IEBwYXJhbSB7bnVtYmVyfSBzbmlwcGV0SWQKKyAgICAgKi8KKyAgICBfc25pcHBldENvbnRlbnRV
cGRhdGVkOiBmdW5jdGlvbihzbmlwcGV0SWQpCisgICAgeworICAgICAgICB0aGlzLl9zYXZlU2V0
dGluZ3MoKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
U25pcHBldH0gc25pcHBldAorICAgICAqLworICAgIF9zbmlwcGV0UmVuYW1lZDogZnVuY3Rpb24o
c25pcHBldCkKKyAgICB7CisgICAgICAgIHRoaXMuX3NhdmVTZXR0aW5ncygpOworICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5F
dmVudFR5cGVzLlNuaXBwZXRSZW5hbWVkLCBzbmlwcGV0KTsKKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtudW1iZXJ9IHNuaXBwZXRJZAorICAgICAqIEByZXR1cm4ge1dlYkluc3Bl
Y3Rvci5TbmlwcGV0fQorICAgICAqLworICAgIHNuaXBwZXRGb3JJZDogZnVuY3Rpb24oc25pcHBl
dElkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NuaXBwZXRzW3NuaXBwZXRJZF07Cisg
ICAgfQorfQorCitXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUuX19wcm90b19f
ID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9y
CisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KKyAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlNuaXBwZXRzTW9kZWx9IG1vZGVsCisgKiBAcGFyYW0ge251bWJlcn0gaWQKKyAqIEBwYXJh
bSB7c3RyaW5nPX0gbmFtZQorICogQHBhcmFtIHtzdHJpbmc9fSBjb250ZW50CisgKi8KK1dlYklu
c3BlY3Rvci5TbmlwcGV0ID0gZnVuY3Rpb24obW9kZWwsIGlkLCBuYW1lLCBjb250ZW50KQorewor
ICAgIHRoaXMuX21vZGVsID0gbW9kZWw7CisgICAgdGhpcy5faWQgPSBpZDsKKyAgICB0aGlzLl9u
YW1lID0gbmFtZSB8fCAiU25pcHBldCAjIiArIGlkOworICAgIHRoaXMuX2NvbnRlbnQgPSBjb250
ZW50IHx8ICIiOworfQorCitXZWJJbnNwZWN0b3IuU25pcHBldC5wcm90b3R5cGUgPSB7CisgICAg
LyoqCisgICAgICogQHR5cGUge251bWJlcn0KKyAgICAgKi8KKyAgICBnZXQgaWQoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX2lkOworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICog
QHR5cGUge3N0cmluZ30KKyAgICAgKi8KKyAgICBnZXQgbmFtZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5fbmFtZTsKKyAgICB9LAorICAgIAorICAgIHNldCBuYW1lKG5hbWUpCisgICAg
eworICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKKyAgICAgICAgdGhpcy5fbW9kZWwuX3NuaXBw
ZXRSZW5hbWVkKHRoaXMpOworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHR5cGUge3N0
cmluZ30KKyAgICAgKi8KKyAgICBnZXQgY29udGVudCgpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5fY29udGVudDsKKyAgICB9LAorICAgIAorICAgIHNldCBjb250ZW50KGNvbnRlbnQpCisg
ICAgeworICAgICAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDsKKyAgICAgICAgdGhpcy5fbW9k
ZWwuX3NuaXBwZXRDb250ZW50VXBkYXRlZCh0aGlzLl9pZCk7CisgICAgfSwKK30KKworV2ViSW5z
cGVjdG9yLlNuaXBwZXQucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3Qu
cHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9XZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQu
cXJjCmluZGV4IDU3YzU4ZTY1MWMyMTc2MDE5ZTYyZjE4ZTFlMDVmNDRhMjUyZGMxNWYuLmFhZDA4
MTA4OTI3NTIyZTUwMGEwY2E4NGRkNjdkY2ExZTZjNTkzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTEzMSw2ICsxMzEsNyBAQAogICAg
IDxmaWxlPlNpZGViYXJPdmVybGF5LmpzPC9maWxlPgogICAgIDxmaWxlPlNpZGViYXJQYW5lLmpz
PC9maWxlPgogICAgIDxmaWxlPlNpZGViYXJUcmVlRWxlbWVudC5qczwvZmlsZT4KKyAgICA8Zmls
ZT5TbmlwcGV0c01vZGVsLmpzPC9maWxlPgogICAgIDxmaWxlPlNvZnRDb250ZXh0TWVudS5qczwv
ZmlsZT4KICAgICA8ZmlsZT5Tb3VyY2VDU1NUb2tlbml6ZXIuanM8L2ZpbGU+CiAgICAgPGZpbGU+
U291cmNlRnJhbWUuanM8L2ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCA3YzIwNzc4YWVjZTcxZThiYmU3N2FiMmQ5ZmQ3
ZWQ4NWI0N2RmOWZhLi44NDRlZTZmODc0NDc5MjY3ZDhhNzVhYzBhMDk5OGNhMWM2NDExZWUyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5o
dG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0
bWwKQEAgLTE5Nyw2ICsxOTcsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSGFuZGxlclJlZ2lzdHJ5Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJNZW1v
cnlTdGF0aXN0aWNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJTbmlwcGV0c01vZGVsLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IGNs
YXNzPSJkZXRhY2hlZCIgaWQ9Ii13ZWJraXQtd2ViLWluc3BlY3RvciI+CiAgICAgPGRpdiBpZD0i
dG9vbGJhciI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzCmluZGV4IDgwNWI3MjQ4ZjI0ODdiZjQwMzI0OGI0MmQyOThmMWI5ZWNjNWRiY2IuLjM5
M2RhYjE1ODBkZTM1OGIyMjcyM2I4MGNjZDRhNTJjZmVhOTExOTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC00MDYsNiArNDA2LDgg
QEAgV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVXaXRoQ2FwYWJpbGl0aWVzID0gZnVuY3Rpb24o
KQogICAgIHRoaXMuY29uc29sZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xl
TW9kZWwuRXZlbnRzLlJlcGVhdENvdW50VXBkYXRlZCwgdGhpcy5fdXBkYXRlRXJyb3JBbmRXYXJu
aW5nQ291bnRzLCB0aGlzKTsKIAogICAgIHRoaXMuZGVidWdnZXJNb2RlbCA9IG5ldyBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNb2RlbCgpOworICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNT
ZXR0aW5ncy5zbmlwcGV0c1N1cHBvcnQuaXNFbmFibGVkKCkpCisgICAgICAgIHRoaXMuc25pcHBl
dHNNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbCgpOwogICAgIHRoaXMuZGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbCgpOwogCiAgICAgdGhpcy5kcmF3ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRyYXdl
cigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGUyZjI5YWQ2ZTA2MDY1M2E2YmZjYjRjNzE0Njg0MGExNzk2NjgxYjAuLjE0
YTY0MGJhYjNhMDA2ZjY4NjVkMmFiN2MyZDAwMGQ5ODljMzE0YjQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMi0wMy0xMiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc25pcHBldHMgbW9kZWwuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg2MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NuaXBwZXRzLW1vZGVsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAzLTEyICBFcmlj
IFVocmhhbmUgIDxlcmljdUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBmYXN0
L2ZpbGVzeXN0ZW0vb3AtcmVzdHJpY3RlZC1jaGFycy5odG1sIGZhaWxzIG9uIFdpbmRvd3MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc25pcHBldHMtbW9k
ZWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhZTc1OWJhNWYwZDg1MWM3Mzg0NjI0NDdkNjI2
YWZhNmQ2MWZjNDcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc25pcHBldHMtbW9kZWwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAKK1Rlc3Rz
IGhvdyBzbmlwcGV0cyBtb2RlbCBzdG9yZXMsIHNhdmVzIGFuZCBsb2FkcyBzbmlwcGV0cworCitE
dW1waW5nIHNhdmVkIHNuaXBwZXRzOgorRHVtcGluZyBtb2RlbCBzbmlwcGV0czoKK1NuaXBwZXQg
Y3JlYXRlZC4KK0R1bXBpbmcgc2F2ZWQgc25pcHBldHM6CisgICAgU25pcHBldDogaWQgPSAwLCBu
YW1lID0gJ1NuaXBwZXQgIzAnLCBjb250ZW50ID0gJycuCitEdW1waW5nIG1vZGVsIHNuaXBwZXRz
OgorICAgIFNuaXBwZXQ6IGlkID0gMCwgbmFtZSA9ICdTbmlwcGV0ICMwJywgY29udGVudCA9ICcn
LgorU25pcHBldCByZW5hbWVkLgorRHVtcGluZyBzYXZlZCBzbmlwcGV0czoKKyAgICBTbmlwcGV0
OiBpZCA9IDAsIG5hbWUgPSAnTmV3IHNuaXBwZXQgbmFtZScsIGNvbnRlbnQgPSAnJy4KK0R1bXBp
bmcgbW9kZWwgc25pcHBldHM6CisgICAgU25pcHBldDogaWQgPSAwLCBuYW1lID0gJ05ldyBzbmlw
cGV0IG5hbWUnLCBjb250ZW50ID0gJycuCitTbmlwcGV0IGNvbnRlbnQgY2hhbmdlZC4KK0R1bXBp
bmcgc2F2ZWQgc25pcHBldHM6CisgICAgU25pcHBldDogaWQgPSAwLCBuYW1lID0gJ05ldyBzbmlw
cGV0IG5hbWUnLCBjb250ZW50ID0gJ05ldyBzbmlwcGV0IGNvbnRlbnQnLgorRHVtcGluZyBtb2Rl
bCBzbmlwcGV0czoKKyAgICBTbmlwcGV0OiBpZCA9IDAsIG5hbWUgPSAnTmV3IHNuaXBwZXQgbmFt
ZScsIGNvbnRlbnQgPSAnTmV3IHNuaXBwZXQgY29udGVudCcuCitBbm90aGVyIHNuaXBwZXQgY3Jl
YXRlZC4KK0R1bXBpbmcgc2F2ZWQgc25pcHBldHM6CisgICAgU25pcHBldDogaWQgPSAwLCBuYW1l
ID0gJ05ldyBzbmlwcGV0IG5hbWUnLCBjb250ZW50ID0gJ05ldyBzbmlwcGV0IGNvbnRlbnQnLgor
ICAgIFNuaXBwZXQ6IGlkID0gMSwgbmFtZSA9ICdTbmlwcGV0ICMxJywgY29udGVudCA9ICcnLgor
RHVtcGluZyBtb2RlbCBzbmlwcGV0czoKKyAgICBTbmlwcGV0OiBpZCA9IDAsIG5hbWUgPSAnTmV3
IHNuaXBwZXQgbmFtZScsIGNvbnRlbnQgPSAnTmV3IHNuaXBwZXQgY29udGVudCcuCisgICAgU25p
cHBldDogaWQgPSAxLCBuYW1lID0gJ1NuaXBwZXQgIzEnLCBjb250ZW50ID0gJycuCitTbmlwcGV0
IGRlbGV0ZWQuCitEdW1waW5nIHNhdmVkIHNuaXBwZXRzOgorICAgIFNuaXBwZXQ6IGlkID0gMSwg
bmFtZSA9ICdTbmlwcGV0ICMxJywgY29udGVudCA9ICcnLgorRHVtcGluZyBtb2RlbCBzbmlwcGV0
czoKKyAgICBTbmlwcGV0OiBpZCA9IDEsIG5hbWUgPSAnU25pcHBldCAjMScsIGNvbnRlbnQgPSAn
Jy4KK0Fub3RoZXIgc25pcHBldCBkZWxldGVkLgorRHVtcGluZyBzYXZlZCBzbmlwcGV0czoKK0R1
bXBpbmcgbW9kZWwgc25pcHBldHM6CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDI5MGNkOWJjMmYzZjYzMmNh
N2VmNzM2ODhlMjQ5NTM1NTZiZjI0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5z
cGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQorewor
ICAgIGZ1bmN0aW9uIGR1bXBTbmlwcGV0cyhzbmlwcGV0cykKKyAgICB7CisgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgc25pcHBldHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBz
bmlwcGV0ID0gc25pcHBldHNbaV07CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiICAgIFNuaXBwZXQ6IGlkID0gIiArIHNuaXBwZXQuaWQgKyAiLCBuYW1lID0gJyIgKyBzbmlw
cGV0Lm5hbWUgKyAiJywgY29udGVudCA9ICciICsgc25pcHBldC5jb250ZW50ICsgIicuIik7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBmdW5jdGlvbiBkdW1wU2F2ZWRTbmlwcGV0cygpCisgICAg
eworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBzYXZlZCBzbmlwcGV0
czoiKTsKKyAgICAgICAgZHVtcFNuaXBwZXRzKFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLl9z
bmlwcGV0c1NldHRpbmcuZ2V0KCkpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGR1bXBNb2RlbFNu
aXBwZXRzKCkKKyAgICB7CisgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5n
IG1vZGVsIHNuaXBwZXRzOiIpOworICAgICAgICBkdW1wU25pcHBldHMoV2ViSW5zcGVjdG9yLnNu
aXBwZXRzTW9kZWwuc25pcHBldHMpOworICAgIH0KKworICAgIC8vIEZJWE1FOiBSZW1vdmUgb25j
ZSBzbmlwcGV0cyBhcmUgdGFrZWQgb3V0IG9mIGV4cGVyaW1lbnRzLgorICAgIGlmICghV2ViSW5z
cGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Muc25pcHBldHNTdXBwb3J0LmlzRW5hYmxlZCgpKQor
ICAgICAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuU25p
cHBldHNNb2RlbCgpOworCisgICAgZHVtcFNhdmVkU25pcHBldHMoKTsKKyAgICBkdW1wTW9kZWxT
bmlwcGV0cygpOworICAgIHZhciBzbmlwcGV0ID0gV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwu
Y3JlYXRlU25pcHBldCgpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IGNy
ZWF0ZWQuIik7CisgICAgZHVtcFNhdmVkU25pcHBldHMoKTsKKyAgICBkdW1wTW9kZWxTbmlwcGV0
cygpOworICAgIHNuaXBwZXQubmFtZSA9ICJOZXcgc25pcHBldCBuYW1lIjsKKyAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCByZW5hbWVkLiIpOworICAgIGR1bXBTYXZlZFNuaXBw
ZXRzKCk7CisgICAgZHVtcE1vZGVsU25pcHBldHMoKTsKKyAgICBzbmlwcGV0LmNvbnRlbnQgPSAi
TmV3IHNuaXBwZXQgY29udGVudCI7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBw
ZXQgY29udGVudCBjaGFuZ2VkLiIpOworICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7CisgICAgZHVt
cE1vZGVsU25pcHBldHMoKTsKKyAgICB2YXIgYW5vdGhlclNuaXBwZXQgPSBXZWJJbnNwZWN0b3Iu
c25pcHBldHNNb2RlbC5jcmVhdGVTbmlwcGV0KCk7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIkFub3RoZXIgc25pcHBldCBjcmVhdGVkLiIpOworICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7
CisgICAgZHVtcE1vZGVsU25pcHBldHMoKTsKKyAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2Rl
bC5kZWxldGVTbmlwcGV0KHNuaXBwZXQpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJT
bmlwcGV0IGRlbGV0ZWQuIik7CisgICAgZHVtcFNhdmVkU25pcHBldHMoKTsKKyAgICBkdW1wTW9k
ZWxTbmlwcGV0cygpOworICAgIFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmRlbGV0ZVNuaXBw
ZXQoYW5vdGhlclNuaXBwZXQpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBbm90aGVy
IHNuaXBwZXQgZGVsZXRlZC4iKTsKKyAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgIGR1bXBN
b2RlbFNuaXBwZXRzKCk7CisKKyAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworfTsK
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMg
aG93IHNuaXBwZXRzIG1vZGVsIHN0b3Jlcywgc2F2ZXMgYW5kIGxvYWRzIHNuaXBwZXRzPC9wPgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131579</attachid>
            <date>2012-03-13 03:09:07 -0700</date>
            <delta_ts>2012-03-13 05:18:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80863-20120313140905.patch</filename>
            <type>text/plain</type>
            <size>17777</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNmMTAyNWYxZDQ2NGE4
OWU2NjU3NDY4ZjJmYjZjZTZiZjIyNTc4ZS4uZmZlZDg2OGZlNzg2N2RiZDBjZDUyZWQyYTM2ZmY3
ZTBmNDA3NTk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEyLTAzLTEzICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEFkZCBzbmlwcGV0cyBtb2RlbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgwODYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0
bWwKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5FeHBlcmltZW50c1NldHRpbmdzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1NuaXBwZXRzTW9kZWwuanM6IEFkZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNu
aXBwZXRzTW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90
eXBlLmdldCBzbmlwcGV0cyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5w
cm90b3R5cGUuX3NhdmVTZXR0aW5ncyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNN
b2RlbC5wcm90b3R5cGUuc2V0IF9sb2FkU2V0dGluZ3MuZ2V0IGZvcik6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUuc2V0IF9sb2FkU2V0dGluZ3MpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLmRlbGV0ZVNuaXBwZXQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLl9zbmlwcGV0
QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLl9z
bmlwcGV0Q29udGVudFVwZGF0ZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9k
ZWwucHJvdG90eXBlLl9zbmlwcGV0UmVuYW1lZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25p
cHBldHNNb2RlbC5wcm90b3R5cGUuc25pcHBldEZvcklkKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TbmlwcGV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0LnByb3RvdHlwZS5nZXQg
aWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXQucHJvdG90eXBlLmdldCBuYW1lKToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0LnByb3RvdHlwZS5zZXQgbmFtZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuU25pcHBldC5wcm90b3R5cGUuZ2V0IGNvbnRlbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNuaXBwZXQucHJvdG90eXBlLnNldCBjb250ZW50KToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmM6CisgICAgICAgICogaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2lu
c3BlY3Rvci5qczoKKwogMjAxMi0wMy0xMiAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBDaGFuZ2VzIHRvIHRoZSBsaXN0IG9m
IHNjcmlwdHMgZm9yIGZyb250LWVuZCBjb21waWxhdGlvbiBzaG91bGQgbm90IHJlcXVpcmUgdXBk
YXRlIG9mIG51bWJlciBvZiBzY3JpcHRzIGluIG1vZHVsZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCA4
NzhjNDY1ZWJmZGQyOWNkY2FmZTk2NjgxMGFmYWI2ZWZhZGNkMjFhLi42NGI1ZjMxZDdlOWJlYzU2
YWU0NjMwMzZiNzIyNGYyZjY0Njk4MjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02Mjg4LDYgKzYy
ODgsNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhck92ZXJsYXku
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclBhbmUuanMnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU2lkZWJhclRyZWVFbGVtZW50LmpzJywK
KyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NuaXBwZXRzTW9kZWwuanMnLAogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvU29mdENvbnRleHRNZW51LmpzJywKICAgICAg
ICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUNTU1Rva2VuaXplci5qcycsCiAgICAg
ICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcycsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IDJkOWM5NjQ0NjAzZWNl
MmEzNDc5ZTc2MzlkYmYyODBmMjlmYzdjNWIuLjZlMzllYTU2MmRmMDA3OWZiMTg3ZDZlMmE3OGM2
ZmUzNjlmYjZhODkgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dl
YkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCkBAIC03Mzg2MSw2ICs3Mzg2MSwxMCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgogCQkJ
CTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxTbmlwcGV0
c01vZGVsLmpzIgorCQkJCQk+CisJCQkJPC9GaWxlPgorCQkJCTxGaWxlCiAJCQkJCVJlbGF0aXZl
UGF0aD0iLi5caW5zcGVjdG9yXGZyb250LWVuZFxTb2Z0Q29udGV4dE1lbnUuanMiCiAJCQkJCT4K
IAkJCQk8L0ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGls
ZS1mcm9udC1lbmQucHkgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvY29tcGlsZS1mcm9udC1l
bmQucHkKaW5kZXggZmVmNmE3Yzc3NGQ4ZWEzY2VkOGU4NWJhMGFkYmZkZGI3NGUxZWI4Yy4uNjQy
NDQxMDQzMDMwYmJiNTliMjNiYzBhMjIwNGFhZWI2YmNjOTliNCAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2NvbXBpbGUtZnJvbnQtZW5kLnB5CisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQpAQCAtODQsNiArODQsNyBAQCBtb2R1
bGVzID0gWwogICAgICAgICAgICAgIlRpbWVsaW5lTWFuYWdlci5qcyIsCiAgICAgICAgICAgICAi
VGltZWxpbmVNb2RlbC5qcyIsCiAgICAgICAgICAgICAiVGltZWxpbmVQcmVzZW50YXRpb25Nb2Rl
bC5qcyIsCisgICAgICAgICAgICAiU25pcHBldHNNb2RlbC5qcyIsCiAgICAgICAgICAgICAiUmF3
U291cmNlQ29kZS5qcyIsCiAgICAgICAgICAgICAiUmVtb3RlT2JqZWN0LmpzIiwKICAgICAgICAg
ICAgICJSZXNvdXJjZS5qcyIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NldHRpbmdzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TZXR0aW5ncy5qcwppbmRleCA4NjczODM5NDViYTAwZTY3YTc3Y2RjMmI0OTM1ODEyNzgzZDdl
YTY4Li42OTNiNTcwMzM2NTkzYzUwY2E4MDJiNmEwOTU4ZTJmN2M2ODc5YWFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKQEAgLTE4MCw2ICsx
ODAsNyBAQCBXZWJJbnNwZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5ncyA9IGZ1bmN0aW9uKCkKICAg
ICB0aGlzLnNob3dJbmRleGVkREIgPSB0aGlzLl9jcmVhdGVFeHBlcmltZW50KCJzaG93SW5kZXhl
ZERCIiwgIlNob3cgSW5kZXhlZERCIGluIFJlc291cmNlcyBwYW5lbCIpOwogICAgIHRoaXMuZGVi
dWdDU1MgPSB0aGlzLl9jcmVhdGVFeHBlcmltZW50KCJkZWJ1Z0NTUyIsICJMb2FkIENTUyB2aWEg
bGluayB0YWdzIGZvciBkZWJ1Z2dpbmciKTsKICAgICB0aGlzLnNob3dTaGFkb3dET00gPSB0aGlz
Ll9jcmVhdGVFeHBlcmltZW50KCJzaG93U2hhZG93RE9NIiwgIlNob3cgc2hhZG93IERPTSIpOwor
ICAgIHRoaXMuc25pcHBldHNTdXBwb3J0ID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgic25pcHBl
dHNTdXBwb3J0IiwgIlNuaXBwZXRzIHN1cHBvcnQiKTsKIAogICAgIHRoaXMuX2NsZWFuVXBTZXR0
aW5nKCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NuaXBwZXRzTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Nu
aXBwZXRzTW9kZWwuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzMxMTdjYTAwNDA2ODU5OGE3MzMxNzQwNDg4YzJi
ZGNjOTU2YzUxNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU25pcHBldHNNb2RlbC5qcwpAQCAtMCwwICsxLDIwMyBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElD
VUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5D
LgorICogT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmpl
Y3R9CisgKi8KK1dlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsID0gZnVuY3Rpb24oKQoreworICAg
IHRoaXMuX3NuaXBwZXRzID0gW107CisgICAgCisgICAgdGhpcy5fbGFzdFNuaXBwZXRJZGVudGlm
aWVyU2V0dGluZyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0aW5nKCJsYXN0U25p
cHBldElkZW50aWZpZXIiLCAwKTsKKyAgICB0aGlzLl9zbmlwcGV0c1NldHRpbmcgPSBXZWJJbnNw
ZWN0b3Iuc2V0dGluZ3MuY3JlYXRlU2V0dGluZygic25pcHBldHMiLCBbXSk7CisKKyAgICB0aGlz
Ll9sb2FkU2V0dGluZ3MoKTsKK30KKworV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwuRXZlbnRU
eXBlcyA9IHsKKyAgICBTbmlwcGV0QWRkZWQ6ICJTbmlwcGV0QWRkZWQiLAorICAgIFNuaXBwZXRS
ZW5hbWVkOiAiU25pcHBldFJlbmFtZWQiLAorICAgIFNuaXBwZXREZWxldGVkOiAiU25pcHBldERl
bGV0ZWQiLAorfQorCitXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUgPSB7Cisg
ICAgLyoqCisgICAgICogQHJldHVybiB7QXJyYXkuPFdlYkluc3BlY3Rvci5TbmlwcGV0Pn0KKyAg
ICAgKi8KKyAgICBnZXQgc25pcHBldHMoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3Nu
aXBwZXRzLnNsaWNlKCk7CisgICAgfSwKKyAgICAKKyAgICBfc2F2ZVNldHRpbmdzOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICB2YXIgc2F2ZWRTbmlwcGV0cyA9IFtdOworICAgICAgICBmb3Ig
KHZhciBpID0gMDsgaSA8IHRoaXMuX3NuaXBwZXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAg
ICB2YXIgc2F2ZWRTbmlwcGV0ID0ge307CisgICAgICAgICAgICBzYXZlZFNuaXBwZXQuaWQgPSB0
aGlzLl9zbmlwcGV0c1tpXS5pZDsKKyAgICAgICAgICAgIHNhdmVkU25pcHBldC5uYW1lID0gdGhp
cy5fc25pcHBldHNbaV0ubmFtZTsKKyAgICAgICAgICAgIHNhdmVkU25pcHBldC5jb250ZW50ID0g
dGhpcy5fc25pcHBldHNbaV0uY29udGVudDsKKyAgICAgICAgICAgIHNhdmVkU25pcHBldHMucHVz
aChzYXZlZFNuaXBwZXQpOworICAgICAgICB9ICAgCisgICAgICAKKyAgICAgICAgdGhpcy5fc25p
cHBldHNTZXR0aW5nLnNldChzYXZlZFNuaXBwZXRzKTsKKyAgICB9LAorICAgIAorICAgIF9sb2Fk
U2V0dGluZ3M6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX3NuaXBwZXRzID0gW107
CisgICAgICAgIHZhciBzYXZlZFNuaXBwZXRzID0gdGhpcy5fc25pcHBldHNTZXR0aW5nLmdldCgp
OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNhdmVkU25pcHBldHMubGVuZ3RoOyArK2kp
IHsKKyAgICAgICAgICAgIHZhciBzbmlwcGV0ID0gbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0KHRo
aXMsIHNhdmVkU25pcHBldHNbaV0uaWQsIHNhdmVkU25pcHBldHNbaV0ubmFtZSwgc2F2ZWRTbmlw
cGV0c1tpXS5jb250ZW50KTsKKyAgICAgICAgICAgIHRoaXMuX3NuaXBwZXRBZGRlZChzbmlwcGV0
KTsKKyAgICAgICAgfQorICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuU25pcHBldH0gc25pcHBldAorICAgICAqLworICAgIGRlbGV0ZVNuaXBwZXQ6IGZ1
bmN0aW9uKHNuaXBwZXQpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMu
X3NuaXBwZXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoc25pcHBldC5pZCA9PT0g
dGhpcy5fc25pcHBldHNbaV0uaWQpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9zbmlwcGV0cy5z
cGxpY2UoaSwgMSk7CisgICAgICAgICAgICAgICAgdGhpcy5fc2F2ZVNldHRpbmdzKCk7CisgICAg
ICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNu
aXBwZXRzTW9kZWwuRXZlbnRUeXBlcy5TbmlwcGV0RGVsZXRlZCwgc25pcHBldCk7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9LAorICAgIAor
ICAgIC8qKgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5TbmlwcGV0fQorICAgICAqLwor
ICAgIGNyZWF0ZVNuaXBwZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBzbmlwcGV0
SWQgPSB0aGlzLl9sYXN0U25pcHBldElkZW50aWZpZXJTZXR0aW5nLmdldCgpICsgMTsKKyAgICAg
ICAgdGhpcy5fbGFzdFNuaXBwZXRJZGVudGlmaWVyU2V0dGluZy5zZXQoc25pcHBldElkKTsKKyAg
ICAgICAgdmFyIHNuaXBwZXQgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXQodGhpcywgc25pcHBl
dElkKTsKKyAgICAgICAgdGhpcy5fc25pcHBldEFkZGVkKHNuaXBwZXQpOworICAgICAgICB0aGlz
Ll9zYXZlU2V0dGluZ3MoKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBzbmlwcGV0OworICAg
IH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU25pcHBldH0g
c25pcHBldAorICAgICAqLworICAgIF9zbmlwcGV0QWRkZWQ6IGZ1bmN0aW9uKHNuaXBwZXQpCisg
ICAgeworICAgICAgICB0aGlzLl9zbmlwcGV0cy5wdXNoKHNuaXBwZXQpOworICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5FdmVu
dFR5cGVzLlNuaXBwZXRBZGRlZCwgc25pcHBldCk7CisgICAgfSwKKworICAgIC8qKgorICAgICAq
IEBwYXJhbSB7bnVtYmVyfSBzbmlwcGV0SWQKKyAgICAgKi8KKyAgICBfc25pcHBldENvbnRlbnRV
cGRhdGVkOiBmdW5jdGlvbihzbmlwcGV0SWQpCisgICAgeworICAgICAgICB0aGlzLl9zYXZlU2V0
dGluZ3MoKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
U25pcHBldH0gc25pcHBldAorICAgICAqLworICAgIF9zbmlwcGV0UmVuYW1lZDogZnVuY3Rpb24o
c25pcHBldCkKKyAgICB7CisgICAgICAgIHRoaXMuX3NhdmVTZXR0aW5ncygpOworICAgICAgICB0
aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5F
dmVudFR5cGVzLlNuaXBwZXRSZW5hbWVkLCBzbmlwcGV0KTsKKyAgICB9LAorCisgICAgLyoqCisg
ICAgICogQHBhcmFtIHtudW1iZXJ9IHNuaXBwZXRJZAorICAgICAqIEByZXR1cm4ge1dlYkluc3Bl
Y3Rvci5TbmlwcGV0fQorICAgICAqLworICAgIHNuaXBwZXRGb3JJZDogZnVuY3Rpb24oc25pcHBl
dElkKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3NuaXBwZXRzW3NuaXBwZXRJZF07Cisg
ICAgfQorfQorCitXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUuX19wcm90b19f
ID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CisKKy8qKgorICogQGNvbnN0cnVjdG9y
CisgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KKyAqIEBwYXJhbSB7V2ViSW5zcGVj
dG9yLlNuaXBwZXRzTW9kZWx9IG1vZGVsCisgKiBAcGFyYW0ge251bWJlcn0gaWQKKyAqIEBwYXJh
bSB7c3RyaW5nPX0gbmFtZQorICogQHBhcmFtIHtzdHJpbmc9fSBjb250ZW50CisgKi8KK1dlYklu
c3BlY3Rvci5TbmlwcGV0ID0gZnVuY3Rpb24obW9kZWwsIGlkLCBuYW1lLCBjb250ZW50KQorewor
ICAgIHRoaXMuX21vZGVsID0gbW9kZWw7CisgICAgdGhpcy5faWQgPSBpZDsKKyAgICB0aGlzLl9u
YW1lID0gbmFtZSB8fCAiU25pcHBldCAjIiArIGlkOworICAgIHRoaXMuX2NvbnRlbnQgPSBjb250
ZW50IHx8ICIiOworfQorCitXZWJJbnNwZWN0b3IuU25pcHBldC5wcm90b3R5cGUgPSB7CisgICAg
LyoqCisgICAgICogQHR5cGUge251bWJlcn0KKyAgICAgKi8KKyAgICBnZXQgaWQoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX2lkOworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICog
QHR5cGUge3N0cmluZ30KKyAgICAgKi8KKyAgICBnZXQgbmFtZSgpCisgICAgeworICAgICAgICBy
ZXR1cm4gdGhpcy5fbmFtZTsKKyAgICB9LAorICAgIAorICAgIHNldCBuYW1lKG5hbWUpCisgICAg
eworICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKKyAgICAgICAgdGhpcy5fbW9kZWwuX3NuaXBw
ZXRSZW5hbWVkKHRoaXMpOworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHR5cGUge3N0
cmluZ30KKyAgICAgKi8KKyAgICBnZXQgY29udGVudCgpCisgICAgeworICAgICAgICByZXR1cm4g
dGhpcy5fY29udGVudDsKKyAgICB9LAorICAgIAorICAgIHNldCBjb250ZW50KGNvbnRlbnQpCisg
ICAgeworICAgICAgICB0aGlzLl9jb250ZW50ID0gY29udGVudDsKKyAgICAgICAgdGhpcy5fbW9k
ZWwuX3NuaXBwZXRDb250ZW50VXBkYXRlZCh0aGlzLl9pZCk7CisgICAgfSwKK30KKworV2ViSW5z
cGVjdG9yLlNuaXBwZXQucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3Qu
cHJvdG90eXBlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9XZWJLaXQucXJjIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQu
cXJjCmluZGV4IDdiNjkzMmUwYWM1YjVhNmIzNjA3YTFjNGM3MGRjNzRiNThhOGU1OGUuLmE0MjY0
YjMyMWZiOGJlODU2ZDQyZGIwOGQ4NWIxZTQ2ZDA5YmU3ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKQEAgLTEzMiw2ICsxMzIsNyBAQAogICAg
IDxmaWxlPlNpZGViYXJPdmVybGF5LmpzPC9maWxlPgogICAgIDxmaWxlPlNpZGViYXJQYW5lLmpz
PC9maWxlPgogICAgIDxmaWxlPlNpZGViYXJUcmVlRWxlbWVudC5qczwvZmlsZT4KKyAgICA8Zmls
ZT5TbmlwcGV0c01vZGVsLmpzPC9maWxlPgogICAgIDxmaWxlPlNvZnRDb250ZXh0TWVudS5qczwv
ZmlsZT4KICAgICA8ZmlsZT5Tb3VyY2VDU1NUb2tlbml6ZXIuanM8L2ZpbGU+CiAgICAgPGZpbGU+
U291cmNlRnJhbWUuanM8L2ZpbGU+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5odG1sIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9pbnNwZWN0b3IuaHRtbAppbmRleCBiM2Y4NmFmMWFlNTllZjIxZDUzNDI5YzBhNTdj
NDI2NWVhMTllMGM2Li43M2YxZWMxMDNlOTQ4ZGU3OWUyYzQyYTFkZDU1M2JkZTc5NWZiYzZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5o
dG1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0
bWwKQEAgLTE5OCw2ICsxOTgsNyBAQCBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9IkphdmFTY3JpcHRDb250ZXh0TWFuYWdlci5qcyI+PC9zY3JpcHQ+CiAg
ICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iSGFuZGxlclJlZ2lzdHJ5Lmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJNZW1v
cnlTdGF0aXN0aWNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCIgc3JjPSJTbmlwcGV0c01vZGVsLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5IGNs
YXNzPSJkZXRhY2hlZCIgaWQ9Ii13ZWJraXQtd2ViLWluc3BlY3RvciI+CiAgICAgPGRpdiBpZD0i
dG9vbGJhciI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVj
dG9yLmpzCmluZGV4IDgwNWI3MjQ4ZjI0ODdiZjQwMzI0OGI0MmQyOThmMWI5ZWNjNWRiY2IuLjM5
M2RhYjE1ODBkZTM1OGIyMjcyM2I4MGNjZDRhNTJjZmVhOTExOTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCkBAIC00MDYsNiArNDA2LDgg
QEAgV2ViSW5zcGVjdG9yLl9kb0xvYWRlZERvbmVXaXRoQ2FwYWJpbGl0aWVzID0gZnVuY3Rpb24o
KQogICAgIHRoaXMuY29uc29sZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Db25zb2xl
TW9kZWwuRXZlbnRzLlJlcGVhdENvdW50VXBkYXRlZCwgdGhpcy5fdXBkYXRlRXJyb3JBbmRXYXJu
aW5nQ291bnRzLCB0aGlzKTsKIAogICAgIHRoaXMuZGVidWdnZXJNb2RlbCA9IG5ldyBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNb2RlbCgpOworICAgIGlmIChXZWJJbnNwZWN0b3IuZXhwZXJpbWVudHNT
ZXR0aW5ncy5zbmlwcGV0c1N1cHBvcnQuaXNFbmFibGVkKCkpCisgICAgICAgIHRoaXMuc25pcHBl
dHNNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbCgpOwogICAgIHRoaXMuZGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbCgpOwogCiAgICAgdGhpcy5kcmF3ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkRyYXdl
cigpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGRlMzA3ODUwM2IzNWE1Yjk3NjE3NTQ2Njc4MGM0YTU5NjE3N2VhOTcuLmY4
MjNmZTIwN2U5OTRlZmNmNDg1OGMzYzYwM2JlODI0OTdlN2Y2ZmMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMi0wMy0xMyAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4K
KworICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQgc25pcHBldHMgbW9kZWwuCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDg2MworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NuaXBwZXRzLW1vZGVsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaW5zcGVjdG9y
L2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAzLTEzICBIYWpp
bWUgTW9ycml0YSAgPG1vcnJpdGFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHNraXBwaW5nIHNvbWUgZmFpbGluZyB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc25pcHBldHMtbW9kZWwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ0MzkzNTEzOWJiN2JmODNkNzM3NGQ5NmY2NDFkMzNlZjEzMDM5ZDYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc25pcHBldHMtbW9kZWwtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzUgQEAKK1Rlc3RzIGhvdyBzbmlwcGV0cyBtb2RlbCBzdG9y
ZXMsIHNhdmVzIGFuZCBsb2FkcyBzbmlwcGV0cworCitEdW1waW5nIHNhdmVkIHNuaXBwZXRzOgor
RHVtcGluZyBtb2RlbCBzbmlwcGV0czoKK1NuaXBwZXQgY3JlYXRlZC4KK0R1bXBpbmcgc2F2ZWQg
c25pcHBldHM6CisgICAgU25pcHBldDogaWQgPSAxLCBuYW1lID0gJ1NuaXBwZXQgIzEnLCBjb250
ZW50ID0gJycuCitEdW1waW5nIG1vZGVsIHNuaXBwZXRzOgorICAgIFNuaXBwZXQ6IGlkID0gMSwg
bmFtZSA9ICdTbmlwcGV0ICMxJywgY29udGVudCA9ICcnLgorU25pcHBldCByZW5hbWVkLgorRHVt
cGluZyBzYXZlZCBzbmlwcGV0czoKKyAgICBTbmlwcGV0OiBpZCA9IDEsIG5hbWUgPSAnTmV3IHNu
aXBwZXQgbmFtZScsIGNvbnRlbnQgPSAnJy4KK0R1bXBpbmcgbW9kZWwgc25pcHBldHM6CisgICAg
U25pcHBldDogaWQgPSAxLCBuYW1lID0gJ05ldyBzbmlwcGV0IG5hbWUnLCBjb250ZW50ID0gJycu
CitTbmlwcGV0IGNvbnRlbnQgY2hhbmdlZC4KK0R1bXBpbmcgc2F2ZWQgc25pcHBldHM6CisgICAg
U25pcHBldDogaWQgPSAxLCBuYW1lID0gJ05ldyBzbmlwcGV0IG5hbWUnLCBjb250ZW50ID0gJ05l
dyBzbmlwcGV0IGNvbnRlbnQnLgorRHVtcGluZyBtb2RlbCBzbmlwcGV0czoKKyAgICBTbmlwcGV0
OiBpZCA9IDEsIG5hbWUgPSAnTmV3IHNuaXBwZXQgbmFtZScsIGNvbnRlbnQgPSAnTmV3IHNuaXBw
ZXQgY29udGVudCcuCitBbm90aGVyIHNuaXBwZXQgY3JlYXRlZC4KK0R1bXBpbmcgc2F2ZWQgc25p
cHBldHM6CisgICAgU25pcHBldDogaWQgPSAxLCBuYW1lID0gJ05ldyBzbmlwcGV0IG5hbWUnLCBj
b250ZW50ID0gJ05ldyBzbmlwcGV0IGNvbnRlbnQnLgorICAgIFNuaXBwZXQ6IGlkID0gMiwgbmFt
ZSA9ICdTbmlwcGV0ICMyJywgY29udGVudCA9ICcnLgorRHVtcGluZyBtb2RlbCBzbmlwcGV0czoK
KyAgICBTbmlwcGV0OiBpZCA9IDEsIG5hbWUgPSAnTmV3IHNuaXBwZXQgbmFtZScsIGNvbnRlbnQg
PSAnTmV3IHNuaXBwZXQgY29udGVudCcuCisgICAgU25pcHBldDogaWQgPSAyLCBuYW1lID0gJ1Nu
aXBwZXQgIzInLCBjb250ZW50ID0gJycuCitTbmlwcGV0IGRlbGV0ZWQuCitEdW1waW5nIHNhdmVk
IHNuaXBwZXRzOgorICAgIFNuaXBwZXQ6IGlkID0gMiwgbmFtZSA9ICdTbmlwcGV0ICMyJywgY29u
dGVudCA9ICcnLgorRHVtcGluZyBtb2RlbCBzbmlwcGV0czoKKyAgICBTbmlwcGV0OiBpZCA9IDIs
IG5hbWUgPSAnU25pcHBldCAjMicsIGNvbnRlbnQgPSAnJy4KK0Fub3RoZXIgc25pcHBldCBkZWxl
dGVkLgorRHVtcGluZyBzYXZlZCBzbmlwcGV0czoKK0R1bXBpbmcgbW9kZWwgc25pcHBldHM6CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2Rl
bC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNDI5MGNkOWJjMmYzZjYzMmNhN2VmNzM2ODhlMjQ5NTM1NTZiZjI0Zgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0
cy1tb2RlbC5odG1sCkBAIC0wLDAgKzEsNjUgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNy
Yz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGZ1bmN0aW9uIGR1bXBTbmlwcGV0
cyhzbmlwcGV0cykKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc25pcHBldHMu
bGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHZhciBzbmlwcGV0ID0gc25pcHBldHNbaV07Cisg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIFNuaXBwZXQ6IGlkID0gIiAr
IHNuaXBwZXQuaWQgKyAiLCBuYW1lID0gJyIgKyBzbmlwcGV0Lm5hbWUgKyAiJywgY29udGVudCA9
ICciICsgc25pcHBldC5jb250ZW50ICsgIicuIik7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBm
dW5jdGlvbiBkdW1wU2F2ZWRTbmlwcGV0cygpCisgICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiRHVtcGluZyBzYXZlZCBzbmlwcGV0czoiKTsKKyAgICAgICAgZHVtcFNuaXBw
ZXRzKFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLl9zbmlwcGV0c1NldHRpbmcuZ2V0KCkpOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGR1bXBNb2RlbFNuaXBwZXRzKCkKKyAgICB7CisgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIG1vZGVsIHNuaXBwZXRzOiIpOworICAg
ICAgICBkdW1wU25pcHBldHMoV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuc25pcHBldHMpOwor
ICAgIH0KKworICAgIC8vIEZJWE1FOiBSZW1vdmUgb25jZSBzbmlwcGV0cyBhcmUgdGFrZWQgb3V0
IG9mIGV4cGVyaW1lbnRzLgorICAgIGlmICghV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGlu
Z3Muc25pcHBldHNTdXBwb3J0LmlzRW5hYmxlZCgpKQorICAgICAgICBXZWJJbnNwZWN0b3Iuc25p
cHBldHNNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbCgpOworCisgICAgZHVt
cFNhdmVkU25pcHBldHMoKTsKKyAgICBkdW1wTW9kZWxTbmlwcGV0cygpOworICAgIHZhciBzbmlw
cGV0ID0gV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuY3JlYXRlU25pcHBldCgpOworICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IGNyZWF0ZWQuIik7CisgICAgZHVtcFNhdmVk
U25pcHBldHMoKTsKKyAgICBkdW1wTW9kZWxTbmlwcGV0cygpOworICAgIHNuaXBwZXQubmFtZSA9
ICJOZXcgc25pcHBldCBuYW1lIjsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBl
dCByZW5hbWVkLiIpOworICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7CisgICAgZHVtcE1vZGVsU25p
cHBldHMoKTsKKyAgICBzbmlwcGV0LmNvbnRlbnQgPSAiTmV3IHNuaXBwZXQgY29udGVudCI7Cisg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgY29udGVudCBjaGFuZ2VkLiIpOwor
ICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7CisgICAgZHVtcE1vZGVsU25pcHBldHMoKTsKKyAgICB2
YXIgYW5vdGhlclNuaXBwZXQgPSBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5jcmVhdGVTbmlw
cGV0KCk7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFub3RoZXIgc25pcHBldCBjcmVh
dGVkLiIpOworICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7CisgICAgZHVtcE1vZGVsU25pcHBldHMo
KTsKKyAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5kZWxldGVTbmlwcGV0KHNuaXBwZXQp
OworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IGRlbGV0ZWQuIik7CisgICAg
ZHVtcFNhdmVkU25pcHBldHMoKTsKKyAgICBkdW1wTW9kZWxTbmlwcGV0cygpOworICAgIFdlYklu
c3BlY3Rvci5zbmlwcGV0c01vZGVsLmRlbGV0ZVNuaXBwZXQoYW5vdGhlclNuaXBwZXQpOworICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBbm90aGVyIHNuaXBwZXQgZGVsZXRlZC4iKTsKKyAg
ICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7CisKKyAgICBJ
bnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworfTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgaG93IHNuaXBwZXRzIG1vZGVsIHN0b3Jl
cywgc2F2ZXMgYW5kIGxvYWRzIHNuaXBwZXRzPC9wPgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131594</attachid>
            <date>2012-03-13 05:18:12 -0700</date>
            <delta_ts>2012-03-13 08:51:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80863-20120313161810.patch</filename>
            <type>text/plain</type>
            <size>17277</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNTUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjNmMTAyNWYxZDQ2NGE4
OWU2NjU3NDY4ZjJmYjZjZTZiZjIyNTc4ZS4uNjI3M2YzYzNhNDU4MmQ0OTIxYzk3NGE2ZGU0Zjli
YTM2MTcwM2Q5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTAzLTEzICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IEFkZCBzbmlwcGV0cyBtb2RlbC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTgwODYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdDogaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0
bWwKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaToKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9X
ZWJDb3JlLnZjcHJvajoKKyAgICAgICAgKiBpbnNwZWN0b3IvY29tcGlsZS1mcm9udC1lbmQucHk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5FeHBlcmltZW50c1NldHRpbmdzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1NuaXBwZXRzTW9kZWwuanM6IEFkZGVkLgorICAgICAgICAqIGluc3BlY3Rvci9mcm9u
dC1lbmQvV2ViS2l0LnFyYzoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rv
ci5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzOgorCiAy
MDEyLTAzLTEyICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IENoYW5nZXMgdG8gdGhlIGxpc3Qgb2Ygc2NyaXB0cyBmb3IgZnJv
bnQtZW5kIGNvbXBpbGF0aW9uIHNob3VsZCBub3QgcmVxdWlyZSB1cGRhdGUgb2YgbnVtYmVyIG9m
IHNjcmlwdHMgaW4gbW9kdWxlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDg3OGM0NjVlYmZkZDI5Y2Rj
YWZlOTY2ODEwYWZhYjZlZmFkY2QyMWEuLjY0YjVmMzFkN2U5YmVjNTZhZTQ2MzAzNmI3MjI0ZjJm
NjQ2OTgyNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTYyODgsNiArNjI4OCw3IEBACiAgICAgICAg
ICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyT3ZlcmxheS5qcycsCiAgICAgICAgICAg
ICAnaW5zcGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyUGFuZS5qcycsCiAgICAgICAgICAgICAnaW5z
cGVjdG9yL2Zyb250LWVuZC9TaWRlYmFyVHJlZUVsZW1lbnQuanMnLAorICAgICAgICAgICAgJ2lu
c3BlY3Rvci9mcm9udC1lbmQvU25pcHBldHNNb2RlbC5qcycsCiAgICAgICAgICAgICAnaW5zcGVj
dG9yL2Zyb250LWVuZC9Tb2Z0Q29udGV4dE1lbnUuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlQ1NTVG9rZW5pemVyLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2oKaW5kZXggMmQ5Yzk2NDQ2MDNlY2UyYTM0NzllNzYzOWRiZjI4
MGYyOWZjN2M1Yi4uNmUzOWVhNTYyZGYwMDc5ZmIxODdkNmUyYTc4YzZmZTM2OWZiNmE4OSAxMDA3
NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysr
IGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTczODYx
LDYgKzczODYxLDEwIEBACiAJCQkJCT4KIAkJCQk8L0ZpbGU+CiAJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxpbnNwZWN0b3JcZnJvbnQtZW5kXFNuaXBwZXRzTW9kZWwuanMiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxpbnNwZWN0
b3JcZnJvbnQtZW5kXFNvZnRDb250ZXh0TWVudS5qcyIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weSBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9jb21waWxlLWZyb250LWVuZC5weQppbmRleCBmZWY2
YTdjNzc0ZDhlYTNjZWQ4ZTg1YmEwYWRiZmRkYjc0ZTFlYjhjLi5kMWQyYjc4N2RmNWViNjc4Nzc4
ZGVhYWNjMmEyNWVjMGNjMDg3NTgwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvY29tcGlsZS1mcm9udC1lbmQucHkKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Nv
bXBpbGUtZnJvbnQtZW5kLnB5CkBAIC04MSw2ICs4MSw3IEBAIG1vZHVsZXMgPSBbCiAgICAgICAg
ICAgICAiU2NyaXB0LmpzIiwKICAgICAgICAgICAgICJTY3JpcHRGb3JtYXR0ZXIuanMiLAogICAg
ICAgICAgICAgIlNjcmlwdE1hcHBpbmcuanMiLAorICAgICAgICAgICAgIlNuaXBwZXRzTW9kZWwu
anMiLAogICAgICAgICAgICAgIlRpbWVsaW5lTWFuYWdlci5qcyIsCiAgICAgICAgICAgICAiVGlt
ZWxpbmVNb2RlbC5qcyIsCiAgICAgICAgICAgICAiVGltZWxpbmVQcmVzZW50YXRpb25Nb2RlbC5q
cyIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRp
bmdzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5qcwpp
bmRleCA4NjczODM5NDViYTAwZTY3YTc3Y2RjMmI0OTM1ODEyNzgzZDdlYTY4Li42OTNiNTcwMzM2
NTkzYzUwY2E4MDJiNmEwOTU4ZTJmN2M2ODc5YWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMKQEAgLTE4MCw2ICsxODAsNyBAQCBXZWJJbnNw
ZWN0b3IuRXhwZXJpbWVudHNTZXR0aW5ncyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLnNob3dJbmRl
eGVkREIgPSB0aGlzLl9jcmVhdGVFeHBlcmltZW50KCJzaG93SW5kZXhlZERCIiwgIlNob3cgSW5k
ZXhlZERCIGluIFJlc291cmNlcyBwYW5lbCIpOwogICAgIHRoaXMuZGVidWdDU1MgPSB0aGlzLl9j
cmVhdGVFeHBlcmltZW50KCJkZWJ1Z0NTUyIsICJMb2FkIENTUyB2aWEgbGluayB0YWdzIGZvciBk
ZWJ1Z2dpbmciKTsKICAgICB0aGlzLnNob3dTaGFkb3dET00gPSB0aGlzLl9jcmVhdGVFeHBlcmlt
ZW50KCJzaG93U2hhZG93RE9NIiwgIlNob3cgc2hhZG93IERPTSIpOworICAgIHRoaXMuc25pcHBl
dHNTdXBwb3J0ID0gdGhpcy5fY3JlYXRlRXhwZXJpbWVudCgic25pcHBldHNTdXBwb3J0IiwgIlNu
aXBwZXRzIHN1cHBvcnQiKTsKIAogICAgIHRoaXMuX2NsZWFuVXBTZXR0aW5nKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NuaXBwZXRzTW9kZWwu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NuaXBwZXRzTW9kZWwuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uY2FjY2QzNzg1YzU1NzAyZTcwNjI3ZDUzNDc3YWMyY2Y1NGI5NTYwNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU25pcHBl
dHNNb2RlbC5qcwpAQCAtMCwwICsxLDIyMyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBH
b29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZQorICogbWV0OgorICoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQor
ICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgR09PR0xFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMK
KyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBHT09HTEUgSU5DLgorICogT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvKioKKyAqIEBj
b25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmplY3R9CisgKi8KK1dlYklu
c3BlY3Rvci5TbmlwcGV0c01vZGVsID0gZnVuY3Rpb24oKQoreworICAgIC8qKiBAdHlwZSB7QXJy
YXkuPFdlYkluc3BlY3Rvci5TbmlwcGV0Pn0gKi8gdGhpcy5fc25pcHBldHM7CisgICAgCisgICAg
dGhpcy5fbGFzdFNuaXBwZXRJZGVudGlmaWVyU2V0dGluZyA9IFdlYkluc3BlY3Rvci5zZXR0aW5n
cy5jcmVhdGVTZXR0aW5nKCJsYXN0U25pcHBldElkZW50aWZpZXIiLCAwKTsKKyAgICB0aGlzLl9z
bmlwcGV0c1NldHRpbmcgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY3JlYXRlU2V0dGluZygic25p
cHBldHMiLCBbXSk7CisKKyAgICB0aGlzLl9sb2FkU2V0dGluZ3MoKTsKK30KKworV2ViSW5zcGVj
dG9yLlNuaXBwZXRzTW9kZWwuRXZlbnRUeXBlcyA9IHsKKyAgICBTbmlwcGV0QWRkZWQ6ICJTbmlw
cGV0QWRkZWQiLAorICAgIFNuaXBwZXRSZW5hbWVkOiAiU25pcHBldFJlbmFtZWQiLAorICAgIFNu
aXBwZXREZWxldGVkOiAiU25pcHBldERlbGV0ZWQiLAorfQorCitXZWJJbnNwZWN0b3IuU25pcHBl
dHNNb2RlbC5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHJldHVybiB7QXJyYXkuPFdl
Ykluc3BlY3Rvci5TbmlwcGV0Pn0KKyAgICAgKi8KKyAgICBnZXQgc25pcHBldHMoKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIHRoaXMuX3NuaXBwZXRzLnNsaWNlKCk7CisgICAgfSwKKyAgICAKKyAg
ICBfc2F2ZVNldHRpbmdzOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB2YXIgc2F2ZWRTbmlw
cGV0cyA9IFtdOworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX3NuaXBwZXRzLmxl
bmd0aDsgKytpKQorICAgICAgICAgICAgc2F2ZWRTbmlwcGV0cy5wdXNoKHRoaXMuX3NuaXBwZXRz
W2ldLnNlcmlhbGl6ZVRvT2JqZWN0KCkpOworICAgICAgCisgICAgICAgIHRoaXMuX3NuaXBwZXRz
U2V0dGluZy5zZXQoc2F2ZWRTbmlwcGV0cyk7CisgICAgfSwKKyAgICAKKyAgICBfbG9hZFNldHRp
bmdzOiBmdW5jdGlvbigpCisgICAgeworICAgICAgICB0aGlzLl9zbmlwcGV0cyA9IFtdOworICAg
ICAgICB2YXIgc2F2ZWRTbmlwcGV0cyA9IHRoaXMuX3NuaXBwZXRzU2V0dGluZy5nZXQoKTsKKyAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzYXZlZFNuaXBwZXRzLmxlbmd0aDsgKytpKQorICAg
ICAgICAgICAgdGhpcy5fc25pcHBldEFkZGVkKFdlYkluc3BlY3Rvci5TbmlwcGV0LmZyb21PYmpl
Y3Qoc2F2ZWRTbmlwcGV0c1tpXSkpOworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBh
cmFtIHtXZWJJbnNwZWN0b3IuU25pcHBldH0gc25pcHBldAorICAgICAqLworICAgIGRlbGV0ZVNu
aXBwZXQ6IGZ1bmN0aW9uKHNuaXBwZXQpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHRoaXMuX3NuaXBwZXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICBpZiAoc25pcHBl
dC5pZCA9PT0gdGhpcy5fc25pcHBldHNbaV0uaWQpIHsKKyAgICAgICAgICAgICAgICB0aGlzLl9z
bmlwcGV0cy5zcGxpY2UoaSwgMSk7CisgICAgICAgICAgICAgICAgdGhpcy5fc2F2ZVNldHRpbmdz
KCk7CisgICAgICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5z
cGVjdG9yLlNuaXBwZXRzTW9kZWwuRXZlbnRUeXBlcy5TbmlwcGV0RGVsZXRlZCwgc25pcHBldCk7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICB9
LAorICAgIAorICAgIC8qKgorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5TbmlwcGV0fQor
ICAgICAqLworICAgIGNyZWF0ZVNuaXBwZXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZh
ciBzbmlwcGV0SWQgPSB0aGlzLl9sYXN0U25pcHBldElkZW50aWZpZXJTZXR0aW5nLmdldCgpICsg
MTsKKyAgICAgICAgdGhpcy5fbGFzdFNuaXBwZXRJZGVudGlmaWVyU2V0dGluZy5zZXQoc25pcHBl
dElkKTsKKyAgICAgICAgdmFyIHNuaXBwZXQgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXQodGhp
cywgc25pcHBldElkKTsKKyAgICAgICAgdGhpcy5fc25pcHBldEFkZGVkKHNuaXBwZXQpOworICAg
ICAgICB0aGlzLl9zYXZlU2V0dGluZ3MoKTsKKyAgICAgICAgCisgICAgICAgIHJldHVybiBzbmlw
cGV0OworICAgIH0sCisgICAgCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
U25pcHBldH0gc25pcHBldAorICAgICAqLworICAgIF9zbmlwcGV0QWRkZWQ6IGZ1bmN0aW9uKHNu
aXBwZXQpCisgICAgeworICAgICAgICB0aGlzLl9zbmlwcGV0cy5wdXNoKHNuaXBwZXQpOworICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU25pcHBldHNN
b2RlbC5FdmVudFR5cGVzLlNuaXBwZXRBZGRlZCwgc25pcHBldCk7CisgICAgfSwKKworICAgIC8q
KgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzbmlwcGV0SWQKKyAgICAgKi8KKyAgICBfc25pcHBl
dENvbnRlbnRVcGRhdGVkOiBmdW5jdGlvbihzbmlwcGV0SWQpCisgICAgeworICAgICAgICB0aGlz
Ll9zYXZlU2V0dGluZ3MoKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJ
bnNwZWN0b3IuU25pcHBldH0gc25pcHBldAorICAgICAqLworICAgIF9zbmlwcGV0UmVuYW1lZDog
ZnVuY3Rpb24oc25pcHBldCkKKyAgICB7CisgICAgICAgIHRoaXMuX3NhdmVTZXR0aW5ncygpOwor
ICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU25pcHBl
dHNNb2RlbC5FdmVudFR5cGVzLlNuaXBwZXRSZW5hbWVkLCBzbmlwcGV0KTsKKyAgICB9LAorCisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IHNuaXBwZXRJZAorICAgICAqIEByZXR1cm4g
e1dlYkluc3BlY3Rvci5TbmlwcGV0fHVuZGVmaW5lZH0KKyAgICAgKi8KKyAgICBzbmlwcGV0Rm9y
SWQ6IGZ1bmN0aW9uKHNuaXBwZXRJZCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zbmlw
cGV0c1tzbmlwcGV0SWRdOworICAgIH0KK30KKworV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwu
cHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOworCisv
KioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5PYmplY3R9Cisg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsfSBtb2RlbAorICogQHBhcmFtIHtu
dW1iZXJ9IGlkCisgKiBAcGFyYW0ge3N0cmluZz19IG5hbWUKKyAqIEBwYXJhbSB7c3RyaW5nPX0g
Y29udGVudAorICovCitXZWJJbnNwZWN0b3IuU25pcHBldCA9IGZ1bmN0aW9uKG1vZGVsLCBpZCwg
bmFtZSwgY29udGVudCkKK3sKKyAgICB0aGlzLl9tb2RlbCA9IG1vZGVsOworICAgIHRoaXMuX2lk
ID0gaWQ7CisgICAgdGhpcy5fbmFtZSA9IG5hbWUgfHwgIlNuaXBwZXQgIyIgKyBpZDsKKyAgICB0
aGlzLl9jb250ZW50ID0gY29udGVudCB8fCAiIjsKK30KKworLyoqCisgKiBAcGFyYW0ge09iamVj
dH0gc2VyaWFsaXplZFNuaXBwZXQKKyAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5TbmlwcGV0fQor
ICovCitXZWJJbnNwZWN0b3IuU25pcHBldC5mcm9tT2JqZWN0ID0gZnVuY3Rpb24oc2VyaWFsaXpl
ZFNuaXBwZXQpCit7CisgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldCh0aGlzLCBz
ZXJpYWxpemVkU25pcHBldC5pZCwgc2VyaWFsaXplZFNuaXBwZXQubmFtZSwgc2VyaWFsaXplZFNu
aXBwZXQuY29udGVudCk7Cit9CisKK1dlYkluc3BlY3Rvci5TbmlwcGV0LnByb3RvdHlwZSA9IHsK
KyAgICAvKioKKyAgICAgKiBAdHlwZSB7bnVtYmVyfQorICAgICAqLworICAgIGdldCBpZCgpCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5faWQ7CisgICAgfSwKKworICAgIC8qKgorICAgICAq
IEB0eXBlIHtzdHJpbmd9CisgICAgICovCisgICAgZ2V0IG5hbWUoKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIHRoaXMuX25hbWU7CisgICAgfSwKKworICAgIHNldCBuYW1lKG5hbWUpCisgICAgewor
ICAgICAgICBpZiAodGhpcy5fbmFtZSA9PT0gbmFtZSkKKyAgICAgICAgICAgIHJldHVybjsKKwor
ICAgICAgICB0aGlzLl9uYW1lID0gbmFtZTsKKyAgICAgICAgdGhpcy5fbW9kZWwuX3NuaXBwZXRS
ZW5hbWVkKHRoaXMpOworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAdHlwZSB7c3RyaW5nfQor
ICAgICAqLworICAgIGdldCBjb250ZW50KCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9j
b250ZW50OworICAgIH0sCisKKyAgICBzZXQgY29udGVudChjb250ZW50KQorICAgIHsKKyAgICAg
ICAgaWYgKHRoaXMuX2NvbnRlbnQgPT09IGNvbnRlbnQpCisgICAgICAgICAgICByZXR1cm47CisK
KyAgICAgICAgdGhpcy5fY29udGVudCA9IGNvbnRlbnQ7CisgICAgICAgIHRoaXMuX21vZGVsLl9z
bmlwcGV0Q29udGVudFVwZGF0ZWQodGhpcy5faWQpOworICAgIH0sCisKKyAgICAvKioKKyAgICAg
KiBAcmV0dXJuIHtPYmplY3R9CisgICAgICovCisgICAgc2VyaWFsaXplVG9PYmplY3Q6IGZ1bmN0
aW9uKCkKKyAgICB7CisgICAgICAgIHZhciBzZXJpYWxpemVkU25pcHBldCA9IHt9OworICAgICAg
ICBzZXJpYWxpemVkU25pcHBldC5pZCA9IHRoaXMuaWQ7CisgICAgICAgIHNlcmlhbGl6ZWRTbmlw
cGV0Lm5hbWUgPSB0aGlzLm5hbWU7CisgICAgICAgIHNlcmlhbGl6ZWRTbmlwcGV0LmNvbnRlbnQg
PSB0aGlzLmNvbnRlbnQ7CisgICAgICAgIHJldHVybiBzZXJpYWxpemVkU25pcHBldDsKKyAgICB9
Cit9CisKK1dlYkluc3BlY3Rvci5TbmlwcGV0LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvV2ViS2l0LnFyYyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvV2ViS2l0LnFyYwppbmRleCA3YjY5MzJlMGFjNWI1YTZiMzYwN2ExYzRjNzBkYzc0YjU4
YThlNThlLi5hNDI2NGIzMjFmYjhiZTg1NmQ0MmRiMDhkODViMWU0NmQwOWJlN2QzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dlYktpdC5xcmMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9XZWJLaXQucXJjCkBAIC0xMzIsNiAr
MTMyLDcgQEAKICAgICA8ZmlsZT5TaWRlYmFyT3ZlcmxheS5qczwvZmlsZT4KICAgICA8ZmlsZT5T
aWRlYmFyUGFuZS5qczwvZmlsZT4KICAgICA8ZmlsZT5TaWRlYmFyVHJlZUVsZW1lbnQuanM8L2Zp
bGU+CisgICAgPGZpbGU+U25pcHBldHNNb2RlbC5qczwvZmlsZT4KICAgICA8ZmlsZT5Tb2Z0Q29u
dGV4dE1lbnUuanM8L2ZpbGU+CiAgICAgPGZpbGU+U291cmNlQ1NTVG9rZW5pemVyLmpzPC9maWxl
PgogICAgIDxmaWxlPlNvdXJjZUZyYW1lLmpzPC9maWxlPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuaHRtbCBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmh0bWwKaW5kZXggYjNmODZhZjFhZTU5ZWYy
MWQ1MzQyOWMwYTU3YzQyNjVlYTE5ZTBjNi4uNzNmMWVjMTAzZTk0OGRlNzllMmM0MmExZGQ1NTNi
ZGU3OTVmYmM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9pbnNwZWN0b3IuaHRtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L2luc3BlY3Rvci5odG1sCkBAIC0xOTgsNiArMTk4LDcgQEAgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAgICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJKYXZhU2NyaXB0Q29udGV4dE1hbmFnZXIuanMi
Pjwvc2NyaXB0PgogICAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9IkhhbmRs
ZXJSZWdpc3RyeS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIHNyYz0iTWVtb3J5U3RhdGlzdGljcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iU25pcHBldHNNb2RlbC5qcyI+PC9zY3JpcHQ+CiA8L2hl
YWQ+CiA8Ym9keSBjbGFzcz0iZGV0YWNoZWQiIGlkPSItd2Via2l0LXdlYi1pbnNwZWN0b3IiPgog
ICAgIDxkaXYgaWQ9InRvb2xiYXIiPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL2luc3BlY3Rvci5qcwppbmRleCA4MDViNzI0OGYyNDg3YmY0MDMyNDhiNDJkMjk4ZjFi
OWVjYzVkYmNiLi4zOTNkYWIxNTgwZGUzNThiMjI3MjNiODBjY2Q0YTUyY2ZlYTkxMTkxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAt
NDA2LDYgKzQwNiw4IEBAIFdlYkluc3BlY3Rvci5fZG9Mb2FkZWREb25lV2l0aENhcGFiaWxpdGll
cyA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmNvbnNvbGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuQ29uc29sZU1vZGVsLkV2ZW50cy5SZXBlYXRDb3VudFVwZGF0ZWQsIHRoaXMuX3VwZGF0
ZUVycm9yQW5kV2FybmluZ0NvdW50cywgdGhpcyk7CiAKICAgICB0aGlzLmRlYnVnZ2VyTW9kZWwg
PSBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwoKTsKKyAgICBpZiAoV2ViSW5zcGVjdG9y
LmV4cGVyaW1lbnRzU2V0dGluZ3Muc25pcHBldHNTdXBwb3J0LmlzRW5hYmxlZCgpKQorICAgICAg
ICB0aGlzLnNuaXBwZXRzTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwoKTsK
ICAgICB0aGlzLmRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwoKTsKIAogICAgIHRoaXMuZHJhd2VyID0gbmV3IFdlYklu
c3BlY3Rvci5EcmF3ZXIoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkZTMwNzg1MDNiMzVhNWI5NzYxNzU0NjY3ODBjNGE1
OTYxNzdlYTk3Li5mODIzZmUyMDdlOTk0ZWZjZjQ4NThjM2M2MDNiZTgyNDk3ZTdmNmZjIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTMgQEAKKzIwMTItMDMtMTMgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0Bj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHNuaXBwZXRzIG1vZGVs
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA4NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC5odG1sOiBBZGRlZC4KKwogMjAx
Mi0wMy0xMyAgSGFqaW1lIE1vcnJpdGEgIDxtb3JyaXRhQGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkLCBza2lwcGluZyBzb21lIGZhaWxpbmcgdGVzdHMuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc25pcHBldHMtbW9kZWwtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kNDM5MzUxMzliYjdiZjgzZDczNzRkOTZmNjQxZDMzZWYxMzAzOWQ2
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBw
ZXRzLW1vZGVsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM1IEBACitUZXN0cyBob3cgc25pcHBl
dHMgbW9kZWwgc3RvcmVzLCBzYXZlcyBhbmQgbG9hZHMgc25pcHBldHMKKworRHVtcGluZyBzYXZl
ZCBzbmlwcGV0czoKK0R1bXBpbmcgbW9kZWwgc25pcHBldHM6CitTbmlwcGV0IGNyZWF0ZWQuCitE
dW1waW5nIHNhdmVkIHNuaXBwZXRzOgorICAgIFNuaXBwZXQ6IGlkID0gMSwgbmFtZSA9ICdTbmlw
cGV0ICMxJywgY29udGVudCA9ICcnLgorRHVtcGluZyBtb2RlbCBzbmlwcGV0czoKKyAgICBTbmlw
cGV0OiBpZCA9IDEsIG5hbWUgPSAnU25pcHBldCAjMScsIGNvbnRlbnQgPSAnJy4KK1NuaXBwZXQg
cmVuYW1lZC4KK0R1bXBpbmcgc2F2ZWQgc25pcHBldHM6CisgICAgU25pcHBldDogaWQgPSAxLCBu
YW1lID0gJ05ldyBzbmlwcGV0IG5hbWUnLCBjb250ZW50ID0gJycuCitEdW1waW5nIG1vZGVsIHNu
aXBwZXRzOgorICAgIFNuaXBwZXQ6IGlkID0gMSwgbmFtZSA9ICdOZXcgc25pcHBldCBuYW1lJywg
Y29udGVudCA9ICcnLgorU25pcHBldCBjb250ZW50IGNoYW5nZWQuCitEdW1waW5nIHNhdmVkIHNu
aXBwZXRzOgorICAgIFNuaXBwZXQ6IGlkID0gMSwgbmFtZSA9ICdOZXcgc25pcHBldCBuYW1lJywg
Y29udGVudCA9ICdOZXcgc25pcHBldCBjb250ZW50Jy4KK0R1bXBpbmcgbW9kZWwgc25pcHBldHM6
CisgICAgU25pcHBldDogaWQgPSAxLCBuYW1lID0gJ05ldyBzbmlwcGV0IG5hbWUnLCBjb250ZW50
ID0gJ05ldyBzbmlwcGV0IGNvbnRlbnQnLgorQW5vdGhlciBzbmlwcGV0IGNyZWF0ZWQuCitEdW1w
aW5nIHNhdmVkIHNuaXBwZXRzOgorICAgIFNuaXBwZXQ6IGlkID0gMSwgbmFtZSA9ICdOZXcgc25p
cHBldCBuYW1lJywgY29udGVudCA9ICdOZXcgc25pcHBldCBjb250ZW50Jy4KKyAgICBTbmlwcGV0
OiBpZCA9IDIsIG5hbWUgPSAnU25pcHBldCAjMicsIGNvbnRlbnQgPSAnJy4KK0R1bXBpbmcgbW9k
ZWwgc25pcHBldHM6CisgICAgU25pcHBldDogaWQgPSAxLCBuYW1lID0gJ05ldyBzbmlwcGV0IG5h
bWUnLCBjb250ZW50ID0gJ05ldyBzbmlwcGV0IGNvbnRlbnQnLgorICAgIFNuaXBwZXQ6IGlkID0g
MiwgbmFtZSA9ICdTbmlwcGV0ICMyJywgY29udGVudCA9ICcnLgorU25pcHBldCBkZWxldGVkLgor
RHVtcGluZyBzYXZlZCBzbmlwcGV0czoKKyAgICBTbmlwcGV0OiBpZCA9IDIsIG5hbWUgPSAnU25p
cHBldCAjMicsIGNvbnRlbnQgPSAnJy4KK0R1bXBpbmcgbW9kZWwgc25pcHBldHM6CisgICAgU25p
cHBldDogaWQgPSAyLCBuYW1lID0gJ1NuaXBwZXQgIzInLCBjb250ZW50ID0gJycuCitBbm90aGVy
IHNuaXBwZXQgZGVsZXRlZC4KK0R1bXBpbmcgc2F2ZWQgc25pcHBldHM6CitEdW1waW5nIG1vZGVs
IHNuaXBwZXRzOgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
c25pcHBldHMtbW9kZWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zbmlw
cGV0cy1tb2RlbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNiY2RmYzQ0OTNiZDZmMGRhNmIzY2M3NTMyNTM2
MTMxYTYzZDU0MTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc25pcHBldHMtbW9kZWwuaHRtbApAQCAtMCwwICsxLDY1IEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBmdW5jdGlv
biBkdW1wU25pcHBldHMoc25pcHBldHMpCisgICAgeworICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IHNuaXBwZXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgc25pcHBldCA9IHNu
aXBwZXRzW2ldOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBTbmlw
cGV0OiBpZCA9ICIgKyBzbmlwcGV0LmlkICsgIiwgbmFtZSA9ICciICsgc25pcHBldC5uYW1lICsg
IicsIGNvbnRlbnQgPSAnIiArIHNuaXBwZXQuY29udGVudCArICInLiIpOworICAgICAgICB9Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gZHVtcFNhdmVkU25pcHBldHMoKQorICAgIHsKKyAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bXBpbmcgc2F2ZWQgc25pcHBldHM6Iik7CisgICAg
ICAgIGR1bXBTbmlwcGV0cyhXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5fc25pcHBldHNTZXR0
aW5nLmdldCgpKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkdW1wTW9kZWxTbmlwcGV0cygpCisg
ICAgeworICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBtb2RlbCBzbmlw
cGV0czoiKTsKKyAgICAgICAgZHVtcFNuaXBwZXRzKFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVs
LnNuaXBwZXRzKTsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogUmVtb3ZlIG9uY2Ugc25pcHBldHMg
YXJlIHRha2VuIG91dCBvZiBleHBlcmltZW50cy4KKyAgICBpZiAoIVdlYkluc3BlY3Rvci5leHBl
cmltZW50c1NldHRpbmdzLnNuaXBwZXRzU3VwcG9ydC5pc0VuYWJsZWQoKSkKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwo
KTsKKworICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7CisgICAgZHVtcE1vZGVsU25pcHBldHMoKTsK
KyAgICB2YXIgc25pcHBldCA9IFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmNyZWF0ZVNuaXBw
ZXQoKTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCBjcmVhdGVkLiIpOwor
ICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7CisgICAgZHVtcE1vZGVsU25pcHBldHMoKTsKKyAgICBz
bmlwcGV0Lm5hbWUgPSAiTmV3IHNuaXBwZXQgbmFtZSI7CisgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIlNuaXBwZXQgcmVuYW1lZC4iKTsKKyAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAg
IGR1bXBNb2RlbFNuaXBwZXRzKCk7CisgICAgc25pcHBldC5jb250ZW50ID0gIk5ldyBzbmlwcGV0
IGNvbnRlbnQiOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IGNvbnRlbnQg
Y2hhbmdlZC4iKTsKKyAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgIGR1bXBNb2RlbFNuaXBw
ZXRzKCk7CisgICAgdmFyIGFub3RoZXJTbmlwcGV0ID0gV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9k
ZWwuY3JlYXRlU25pcHBldCgpOworICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBbm90aGVy
IHNuaXBwZXQgY3JlYXRlZC4iKTsKKyAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgIGR1bXBN
b2RlbFNuaXBwZXRzKCk7CisgICAgV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuZGVsZXRlU25p
cHBldChzbmlwcGV0KTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCBkZWxl
dGVkLiIpOworICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7CisgICAgZHVtcE1vZGVsU25pcHBldHMo
KTsKKyAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5kZWxldGVTbmlwcGV0KGFub3RoZXJT
bmlwcGV0KTsKKyAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQW5vdGhlciBzbmlwcGV0IGRl
bGV0ZWQuIik7CisgICAgZHVtcFNhdmVkU25pcHBldHMoKTsKKyAgICBkdW1wTW9kZWxTbmlwcGV0
cygpOworCisgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKK307Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxwPlRlc3RzIGhvdyBzbmlwcGV0
cyBtb2RlbCBzdG9yZXMsIHNhdmVzIGFuZCBsb2FkcyBzbmlwcGV0czwvcD4KKzwvYm9keT4KKzwv
aHRtbD4K
</data>
<flag name="review"
          id="134959"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>