<?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>32250</bug_id>
          
          <creation_ts>2009-12-07 15:06:35 -0800</creation_ts>
          <short_desc>Rename dom/ClassNames.{cpp,h}</short_desc>
          <delta_ts>2009-12-09 10:07:45 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Nate Chapin">japhet</reporter>
          <assigned_to name="Nate Chapin">japhet</assigned_to>
          <cc>ap</cc>
    
    <cc>michelangelo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>169489</commentid>
    <comment_count>0</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2009-12-07 15:06:35 -0800</bug_when>
    <thetext>ClassNames used to be named AtomicStringList, but was renamed (http://trac.webkit.org/changeset/28722) to reflect the fact that it was only being used for class names at the time.

Its behavior, however, matches what is required of HTML5 space separated lists (http://www.whatwg.org/specs/web-apps/current-work/#space-separated-tokens).  I used ClassNames for implementing &lt;a rel=&quot;noreferrer&quot;&gt; support (https://bugs.webkit.org/show_bug.cgi?id=28986), with the understanding that ClassNames would need to be renamed again.

The only remaining question is what the new name should be.  I was thinking something like SpaceSplitString, but I could also revert it to AtomicStringList.  I&apos;m not picky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169491</commentid>
    <comment_count>1</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-07 15:11:25 -0800</bug_when>
    <thetext>Probably best to e-mail webkit-dev for more people to see the question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169774</commentid>
    <comment_count>2</comment_count>
      <attachid>44482</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2009-12-08 13:41:58 -0800</bug_when>
    <thetext>Created attachment 44482
Rename ClassNames to SpaceSplitString

I think I correctly modified all the build files, but is there a preferred way to confirm that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169822</commentid>
    <comment_count>3</comment_count>
      <attachid>44482</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-08 15:43:35 -0800</bug_when>
    <thetext>Comment on attachment 44482
Rename ClassNames to SpaceSplitString

&gt; -__ZN7WebCore14ClassNamesData12createVectorEv
&gt; +__ZN7WebCore14SpaceSplitStringData12createVectorEv

&gt; -__ZN7WebCore14ClassNamesData11containsAllERS0_
&gt; +__ZN7WebCore14SpaceSplitStringData11containsAllERS0_

These changes are incorrect. The &quot;14&quot; is the length of the string &quot;ClassNamesData&quot;, so it should be &quot;20&quot; instead. But really this file should not be updated. There&apos;s no way for the &quot;average person&quot; to generate this. It has to be generated by running the framework in a test environment. Stephanie Lewis normally does it.

&gt; Index: WebCore/html/HTMLAnchorElement.cpp
&gt; ===================================================================
&gt; --- WebCore/html/HTMLAnchorElement.cpp	(revision 51859)
&gt; +++ WebCore/html/HTMLAnchorElement.cpp	(working copy)
&gt; @@ -36,6 +36,7 @@
&gt;  #include &quot;Page.h&quot;
&gt;  #include &quot;RenderImage.h&quot;
&gt;  #include &quot;Settings.h&quot;
&gt; +#include &quot;SpaceSplitString.h&quot;

I don&apos;t understand how the name change triggered the need for an additional include.

I&apos;m going to say r=me but I think both of those are errors. The build file changes look right to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169823</commentid>
    <comment_count>4</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2009-12-08 15:45:39 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 44482 [details])
&gt; &gt; -__ZN7WebCore14ClassNamesData12createVectorEv
&gt; &gt; +__ZN7WebCore14SpaceSplitStringData12createVectorEv
&gt; 
&gt; &gt; -__ZN7WebCore14ClassNamesData11containsAllERS0_
&gt; &gt; +__ZN7WebCore14SpaceSplitStringData11containsAllERS0_
&gt; 
&gt; These changes are incorrect. The &quot;14&quot; is the length of the string
&gt; &quot;ClassNamesData&quot;, so it should be &quot;20&quot; instead. But really this file should not
&gt; be updated. There&apos;s no way for the &quot;average person&quot; to generate this. It has to
&gt; be generated by running the framework in a test environment. Stephanie Lewis
&gt; normally does it.
&gt; 
&gt; &gt; Index: WebCore/html/HTMLAnchorElement.cpp
&gt; &gt; ===================================================================
&gt; &gt; --- WebCore/html/HTMLAnchorElement.cpp	(revision 51859)
&gt; &gt; +++ WebCore/html/HTMLAnchorElement.cpp	(working copy)
&gt; &gt; @@ -36,6 +36,7 @@
&gt; &gt;  #include &quot;Page.h&quot;
&gt; &gt;  #include &quot;RenderImage.h&quot;
&gt; &gt;  #include &quot;Settings.h&quot;
&gt; &gt; +#include &quot;SpaceSplitString.h&quot;
&gt; 
&gt; I don&apos;t understand how the name change triggered the need for an additional
&gt; include.
&gt; 
&gt; I&apos;m going to say r=me but I think both of those are errors. The build file
&gt; changes look right to me.

That seems reasonable.  I&apos;ll change both prior to landing.  Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170031</commentid>
    <comment_count>5</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2009-12-09 10:07:45 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/51902</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44482</attachid>
            <date>2009-12-08 13:41:58 -0800</date>
            <delta_ts>2009-12-08 15:43:35 -0800</delta_ts>
            <desc>Rename ClassNames to SpaceSplitString</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>30355</size>
            <attacher name="Nate Chapin">japhet</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL1N0eWxlZEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2RvbS9TdHlsZWRFbGVtZW50LmgJKHJldmlzaW9uIDUxODU5KQorKysgV2ViQ29yZS9kb20vU3R5
bGVkRWxlbWVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw3IEBACiAgICAgQ1NTU3R5
bGVEZWNsYXJhdGlvbiogc3R5bGUoKTsKICAgICB2b2lkIGludmFsaWRhdGVTdHlsZUF0dHJpYnV0
ZSgpOwogCi0gICAgY29uc3QgQ2xhc3NOYW1lcyYgY2xhc3NOYW1lcygpIGNvbnN0IHsgQVNTRVJU
KGhhc0NsYXNzKCkpOyBBU1NFUlQobWFwcGVkQXR0cmlidXRlcygpKTsgcmV0dXJuIG1hcHBlZEF0
dHJpYnV0ZXMoKS0+Y2xhc3NOYW1lcygpOyB9CisgICAgY29uc3QgU3BhY2VTcGxpdFN0cmluZyYg
Y2xhc3NOYW1lcygpIGNvbnN0IHsgQVNTRVJUKGhhc0NsYXNzKCkpOyBBU1NFUlQobWFwcGVkQXR0
cmlidXRlcygpKTsgcmV0dXJuIG1hcHBlZEF0dHJpYnV0ZXMoKS0+Y2xhc3NOYW1lcygpOyB9CiAK
ICAgICB2aXJ0dWFsIGJvb2wgbWFwVG9FbnRyeShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSwgTWFwcGVkQXR0cmlidXRlRW50cnkmIHJlc3VsdCkgY29uc3Q7CiAKSW5kZXg6IFdlYkNvcmUv
ZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL1NwYWNl
U3BsaXRTdHJpbmcuY3BwCShyZXZpc2lvbiA1MTY1NCkKKysrIFdlYkNvcmUvZG9tL1NwYWNlU3Bs
aXRTdHJpbmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBACiAgKi8KIAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkNsYXNzTmFtZXMuaCIKKyNpbmNsdWRlICJTcGFj
ZVNwbGl0U3RyaW5nLmgiCiAKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlwZS5oPgogCkBAIC00MSw3
ICs0MSw3IEBACiAgICAgcmV0dXJuIGhhc1VwcGVyIHx8IChvcmVkICYgfjB4N0YpOwogfQogCi12
b2lkIENsYXNzTmFtZXNEYXRhOjpjcmVhdGVWZWN0b3IoKQordm9pZCBTcGFjZVNwbGl0U3RyaW5n
RGF0YTo6Y3JlYXRlVmVjdG9yKCkKIHsKICAgICBBU1NFUlQoIW1fY3JlYXRlZFZlY3Rvcik7CiAg
ICAgQVNTRVJUKG1fdmVjdG9yLmlzRW1wdHkoKSk7CkBAIC03MCw3ICs3MCw3IEBACiAgICAgbV9j
cmVhdGVkVmVjdG9yID0gdHJ1ZTsKIH0KIAotYm9vbCBDbGFzc05hbWVzRGF0YTo6Y29udGFpbnNB
bGwoQ2xhc3NOYW1lc0RhdGEmIG90aGVyKQorYm9vbCBTcGFjZVNwbGl0U3RyaW5nRGF0YTo6Y29u
dGFpbnNBbGwoU3BhY2VTcGxpdFN0cmluZ0RhdGEmIG90aGVyKQogewogICAgIGVuc3VyZVZlY3Rv
cigpOwogICAgIG90aGVyLmVuc3VyZVZlY3RvcigpOwpJbmRleDogV2ViQ29yZS9kb20vQ2xhc3NO
YW1lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0NsYXNzTmFtZXMuaAkocmV2aXNpb24g
NTE4NTkpCisrKyBXZWJDb3JlL2RvbS9DbGFzc05hbWVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
ODkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7
IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0
ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVi
bGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lv
biAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9u
LgotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0
IHdpbGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2
ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhh
dmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlCi0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5j
LiwgNTkgVGVtcGxlIFBsYWNlIC0gU3VpdGUgMzMwLAotICogQm9zdG9uLCBNQSAwMjExMS0xMzA3
LCBVU0EuCi0gKgotICovCi0KLSNpZm5kZWYgQ2xhc3NOYW1lc19oCi0jZGVmaW5lIENsYXNzTmFt
ZXNfaAotCi0jaW5jbHVkZSAiQXRvbWljU3RyaW5nLmgiCi0jaW5jbHVkZSA8d3RmL093blB0ci5o
PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi0gICAg
Y2xhc3MgQ2xhc3NOYW1lc0RhdGEgOiBwdWJsaWMgTm9uY29weWFibGUgewotICAgIHB1YmxpYzoK
LSAgICAgICAgQ2xhc3NOYW1lc0RhdGEoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJvb2wgc2hvdWxk
Rm9sZENhc2UpCi0gICAgICAgICAgICA6IG1fc3RyaW5nKHN0cmluZyksIG1fc2hvdWxkRm9sZENh
c2Uoc2hvdWxkRm9sZENhc2UpLCBtX2NyZWF0ZWRWZWN0b3IoZmFsc2UpCi0gICAgICAgIHsKLSAg
ICAgICAgfQotCi0gICAgICAgIGJvb2wgY29udGFpbnMoY29uc3QgQXRvbWljU3RyaW5nJiBzdHJp
bmcpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGVuc3VyZVZlY3RvcigpOwotICAgICAgICAgICAg
c2l6ZV90IHNpemUgPSBtX3ZlY3Rvci5zaXplKCk7Ci0gICAgICAgICAgICBmb3IgKHNpemVfdCBp
ID0gMDsgaSA8IHNpemU7ICsraSkgewotICAgICAgICAgICAgICAgIGlmIChtX3ZlY3RvcltpXSA9
PSBzdHJpbmcpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9Ci0KLSAgICAgICAgYm9vbCBj
b250YWluc0FsbChDbGFzc05hbWVzRGF0YSYpOwotCi0gICAgICAgIHNpemVfdCBzaXplKCkgeyBl
bnN1cmVWZWN0b3IoKTsgcmV0dXJuIG1fdmVjdG9yLnNpemUoKTsgfQotICAgICAgICBjb25zdCBB
dG9taWNTdHJpbmcmIG9wZXJhdG9yW10oc2l6ZV90IGkpIHsgZW5zdXJlVmVjdG9yKCk7IEFTU0VS
VChpIDwgc2l6ZSgpKTsgcmV0dXJuIG1fdmVjdG9yW2ldOyB9Ci0KLSAgICBwcml2YXRlOgotICAg
ICAgICB2b2lkIGVuc3VyZVZlY3RvcigpIHsgaWYgKCFtX2NyZWF0ZWRWZWN0b3IpIGNyZWF0ZVZl
Y3RvcigpOyB9Ci0gICAgICAgIHZvaWQgY3JlYXRlVmVjdG9yKCk7Ci0KLSAgICAgICAgdHlwZWRl
ZiBWZWN0b3I8QXRvbWljU3RyaW5nLCA4PiBDbGFzc05hbWVWZWN0b3I7Ci0gICAgICAgIFN0cmlu
ZyBtX3N0cmluZzsKLSAgICAgICAgQ2xhc3NOYW1lVmVjdG9yIG1fdmVjdG9yOwotICAgICAgICBi
b29sIG1fc2hvdWxkRm9sZENhc2U7Ci0gICAgICAgIGJvb2wgbV9jcmVhdGVkVmVjdG9yOwotICAg
IH07Ci0KLSAgICBjbGFzcyBDbGFzc05hbWVzIHsKLSAgICBwdWJsaWM6Ci0gICAgICAgIENsYXNz
TmFtZXMoKSB7IH0KLSAgICAgICAgQ2xhc3NOYW1lcyhjb25zdCBTdHJpbmcmIHN0cmluZywgYm9v
bCBzaG91bGRGb2xkQ2FzZSkgOiBtX2RhdGEobmV3IENsYXNzTmFtZXNEYXRhKHN0cmluZywgc2hv
dWxkRm9sZENhc2UpKSB7IH0KLQotICAgICAgICB2b2lkIHNldChjb25zdCBTdHJpbmcmIHN0cmlu
ZywgYm9vbCBzaG91bGRGb2xkQ2FzZSkgeyBtX2RhdGEuc2V0KG5ldyBDbGFzc05hbWVzRGF0YShz
dHJpbmcsIHNob3VsZEZvbGRDYXNlKSk7IH0KLSAgICAgICAgdm9pZCBjbGVhcigpIHsgbV9kYXRh
LmNsZWFyKCk7IH0KLQotICAgICAgICBib29sIGNvbnRhaW5zKGNvbnN0IEF0b21pY1N0cmluZyYg
c3RyaW5nKSBjb25zdCB7IHJldHVybiBtX2RhdGEgJiYgbV9kYXRhLT5jb250YWlucyhzdHJpbmcp
OyB9Ci0gICAgICAgIGJvb2wgY29udGFpbnNBbGwoY29uc3QgQ2xhc3NOYW1lcyYgbmFtZXMpIGNv
bnN0IHsgcmV0dXJuICFuYW1lcy5tX2RhdGEgfHwgKG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5z
QWxsKCpuYW1lcy5tX2RhdGEpKTsgfQotCi0gICAgICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyBy
ZXR1cm4gbV9kYXRhID8gbV9kYXRhLT5zaXplKCkgOiAwOyB9Ci0gICAgICAgIGNvbnN0IEF0b21p
Y1N0cmluZyYgb3BlcmF0b3JbXShzaXplX3QgaSkgY29uc3QgeyBBU1NFUlQoaSA8IHNpemUoKSk7
IHJldHVybiAoKm1fZGF0YSlbaV07IH0KLQotICAgIHByaXZhdGU6Ci0gICAgICAgIE93blB0cjxD
bGFzc05hbWVzRGF0YT4gbV9kYXRhOwotICAgIH07Ci0KLSAgICBpbmxpbmUgYm9vbCBpc0NsYXNz
V2hpdGVzcGFjZShVQ2hhciBjKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGMgPT0gJyAnIHx8IGMg
PT0gJ1xyJyB8fCBjID09ICdcbicgfHwgYyA9PSAnXHQnIHx8IGMgPT0gJ1xmJzsKLSAgICB9Ci0K
LX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQotI2VuZGlmIC8vIENsYXNzTmFtZXNfaApJbmRleDog
V2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9t
L1NwYWNlU3BsaXRTdHJpbmcuaAkocmV2aXNpb24gNTE2NTQpCisrKyBXZWJDb3JlL2RvbS9TcGFj
ZVNwbGl0U3RyaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTE4LDggKzE4LDggQEAKICAqCiAgKi8K
IAotI2lmbmRlZiBDbGFzc05hbWVzX2gKLSNkZWZpbmUgQ2xhc3NOYW1lc19oCisjaWZuZGVmIFNw
YWNlU3BsaXRTdHJpbmdfaAorI2RlZmluZSBTcGFjZVNwbGl0U3RyaW5nX2gKIAogI2luY2x1ZGUg
IkF0b21pY1N0cmluZy5oIgogI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KQEAgLTI3LDkgKzI3LDkg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgQ2xhc3NOYW1lc0RhdGEgOiBw
dWJsaWMgTm9uY29weWFibGUgeworICAgIGNsYXNzIFNwYWNlU3BsaXRTdHJpbmdEYXRhIDogcHVi
bGljIE5vbmNvcHlhYmxlIHsKICAgICBwdWJsaWM6Ci0gICAgICAgIENsYXNzTmFtZXNEYXRhKGNv
bnN0IFN0cmluZyYgc3RyaW5nLCBib29sIHNob3VsZEZvbGRDYXNlKQorICAgICAgICBTcGFjZVNw
bGl0U3RyaW5nRGF0YShjb25zdCBTdHJpbmcmIHN0cmluZywgYm9vbCBzaG91bGRGb2xkQ2FzZSkK
ICAgICAgICAgICAgIDogbV9zdHJpbmcoc3RyaW5nKSwgbV9zaG91bGRGb2xkQ2FzZShzaG91bGRG
b2xkQ2FzZSksIG1fY3JlYXRlZFZlY3RvcihmYWxzZSkKICAgICAgICAgewogICAgICAgICB9CkBA
IC00NSw3ICs0NSw3IEBACiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIAot
ICAgICAgICBib29sIGNvbnRhaW5zQWxsKENsYXNzTmFtZXNEYXRhJik7CisgICAgICAgIGJvb2wg
Y29udGFpbnNBbGwoU3BhY2VTcGxpdFN0cmluZ0RhdGEmKTsKIAogICAgICAgICBzaXplX3Qgc2l6
ZSgpIHsgZW5zdXJlVmVjdG9yKCk7IHJldHVybiBtX3ZlY3Rvci5zaXplKCk7IH0KICAgICAgICAg
Y29uc3QgQXRvbWljU3RyaW5nJiBvcGVyYXRvcltdKHNpemVfdCBpKSB7IGVuc3VyZVZlY3Rvcigp
OyBBU1NFUlQoaSA8IHNpemUoKSk7IHJldHVybiBtX3ZlY3RvcltpXTsgfQpAQCAtNTQsMjkgKzU0
LDI5IEBACiAgICAgICAgIHZvaWQgZW5zdXJlVmVjdG9yKCkgeyBpZiAoIW1fY3JlYXRlZFZlY3Rv
cikgY3JlYXRlVmVjdG9yKCk7IH0KICAgICAgICAgdm9pZCBjcmVhdGVWZWN0b3IoKTsKIAotICAg
ICAgICB0eXBlZGVmIFZlY3RvcjxBdG9taWNTdHJpbmcsIDg+IENsYXNzTmFtZVZlY3RvcjsKKyAg
ICAgICAgdHlwZWRlZiBWZWN0b3I8QXRvbWljU3RyaW5nLCA4PiBTdHJpbmdWZWN0b3I7CiAgICAg
ICAgIFN0cmluZyBtX3N0cmluZzsKLSAgICAgICAgQ2xhc3NOYW1lVmVjdG9yIG1fdmVjdG9yOwor
ICAgICAgICBTdHJpbmdWZWN0b3IgbV92ZWN0b3I7CiAgICAgICAgIGJvb2wgbV9zaG91bGRGb2xk
Q2FzZTsKICAgICAgICAgYm9vbCBtX2NyZWF0ZWRWZWN0b3I7CiAgICAgfTsKIAotICAgIGNsYXNz
IENsYXNzTmFtZXMgeworICAgIGNsYXNzIFNwYWNlU3BsaXRTdHJpbmcgewogICAgIHB1YmxpYzoK
LSAgICAgICAgQ2xhc3NOYW1lcygpIHsgfQotICAgICAgICBDbGFzc05hbWVzKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nLCBib29sIHNob3VsZEZvbGRDYXNlKSA6IG1fZGF0YShuZXcgQ2xhc3NOYW1lc0Rh
dGEoc3RyaW5nLCBzaG91bGRGb2xkQ2FzZSkpIHsgfQorICAgICAgICBTcGFjZVNwbGl0U3RyaW5n
KCkgeyB9CisgICAgICAgIFNwYWNlU3BsaXRTdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcsIGJv
b2wgc2hvdWxkRm9sZENhc2UpIDogbV9kYXRhKG5ldyBTcGFjZVNwbGl0U3RyaW5nRGF0YShzdHJp
bmcsIHNob3VsZEZvbGRDYXNlKSkgeyB9CiAKLSAgICAgICAgdm9pZCBzZXQoY29uc3QgU3RyaW5n
JiBzdHJpbmcsIGJvb2wgc2hvdWxkRm9sZENhc2UpIHsgbV9kYXRhLnNldChuZXcgQ2xhc3NOYW1l
c0RhdGEoc3RyaW5nLCBzaG91bGRGb2xkQ2FzZSkpOyB9CisgICAgICAgIHZvaWQgc2V0KGNvbnN0
IFN0cmluZyYgc3RyaW5nLCBib29sIHNob3VsZEZvbGRDYXNlKSB7IG1fZGF0YS5zZXQobmV3IFNw
YWNlU3BsaXRTdHJpbmdEYXRhKHN0cmluZywgc2hvdWxkRm9sZENhc2UpKTsgfQogICAgICAgICB2
b2lkIGNsZWFyKCkgeyBtX2RhdGEuY2xlYXIoKTsgfQogCiAgICAgICAgIGJvb2wgY29udGFpbnMo
Y29uc3QgQXRvbWljU3RyaW5nJiBzdHJpbmcpIGNvbnN0IHsgcmV0dXJuIG1fZGF0YSAmJiBtX2Rh
dGEtPmNvbnRhaW5zKHN0cmluZyk7IH0KLSAgICAgICAgYm9vbCBjb250YWluc0FsbChjb25zdCBD
bGFzc05hbWVzJiBuYW1lcykgY29uc3QgeyByZXR1cm4gIW5hbWVzLm1fZGF0YSB8fCAobV9kYXRh
ICYmIG1fZGF0YS0+Y29udGFpbnNBbGwoKm5hbWVzLm1fZGF0YSkpOyB9CisgICAgICAgIGJvb2wg
Y29udGFpbnNBbGwoY29uc3QgU3BhY2VTcGxpdFN0cmluZyYgbmFtZXMpIGNvbnN0IHsgcmV0dXJu
ICFuYW1lcy5tX2RhdGEgfHwgKG1fZGF0YSAmJiBtX2RhdGEtPmNvbnRhaW5zQWxsKCpuYW1lcy5t
X2RhdGEpKTsgfQogCiAgICAgICAgIHNpemVfdCBzaXplKCkgY29uc3QgeyByZXR1cm4gbV9kYXRh
ID8gbV9kYXRhLT5zaXplKCkgOiAwOyB9CiAgICAgICAgIGNvbnN0IEF0b21pY1N0cmluZyYgb3Bl
cmF0b3JbXShzaXplX3QgaSkgY29uc3QgeyBBU1NFUlQoaSA8IHNpemUoKSk7IHJldHVybiAoKm1f
ZGF0YSlbaV07IH0KIAogICAgIHByaXZhdGU6Ci0gICAgICAgIE93blB0cjxDbGFzc05hbWVzRGF0
YT4gbV9kYXRhOworICAgICAgICBPd25QdHI8U3BhY2VTcGxpdFN0cmluZ0RhdGE+IG1fZGF0YTsK
ICAgICB9OwogCiAgICAgaW5saW5lIGJvb2wgaXNDbGFzc1doaXRlc3BhY2UoVUNoYXIgYykKQEAg
LTg2LDQgKzg2LDQgQEAKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCi0jZW5kaWYgLy8gQ2xh
c3NOYW1lc19oCisjZW5kaWYgLy8gU3BhY2VTcGxpdFN0cmluZ19oCkluZGV4OiBXZWJDb3JlL2Rv
bS9OYW1lZE1hcHBlZEF0dHJNYXAuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9OYW1lZE1h
cHBlZEF0dHJNYXAuaAkocmV2aXNpb24gNTE4NTkpCisrKyBXZWJDb3JlL2RvbS9OYW1lZE1hcHBl
ZEF0dHJNYXAuaAkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsOCBAQAogI2lmbmRlZiBOYW1l
ZE1hcHBlZEF0dHJNYXBfaAogI2RlZmluZSBOYW1lZE1hcHBlZEF0dHJNYXBfaAogCi0jaW5jbHVk
ZSAiQ2xhc3NOYW1lcy5oIgogI2luY2x1ZGUgIk5hbWVkTm9kZU1hcC5oIgorI2luY2x1ZGUgIlNw
YWNlU3BsaXRTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zNyw3ICszNyw3
IEBACiAKICAgICB2b2lkIGNsZWFyQ2xhc3MoKSB7IG1fY2xhc3NOYW1lcy5jbGVhcigpOyB9CiAg
ICAgdm9pZCBzZXRDbGFzcyhjb25zdCBTdHJpbmcmKTsKLSAgICBjb25zdCBDbGFzc05hbWVzJiBj
bGFzc05hbWVzKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc05hbWVzOyB9CisgICAgY29uc3QgU3Bh
Y2VTcGxpdFN0cmluZyYgY2xhc3NOYW1lcygpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NOYW1lczsg
fQogCiAgICAgYm9vbCBoYXNNYXBwZWRBdHRyaWJ1dGVzKCkgY29uc3QgeyByZXR1cm4gbV9tYXBw
ZWRBdHRyaWJ1dGVDb3VudCA+IDA7IH0KICAgICB2b2lkIGRlY2xSZW1vdmVkKCkgeyBtX21hcHBl
ZEF0dHJpYnV0ZUNvdW50LS07IH0KQEAgLTUzLDcgKzUzLDcgQEAKIAogICAgIGludCBkZWNsQ291
bnQoKSBjb25zdDsKIAotICAgIENsYXNzTmFtZXMgbV9jbGFzc05hbWVzOworICAgIFNwYWNlU3Bs
aXRTdHJpbmcgbV9jbGFzc05hbWVzOwogICAgIGludCBtX21hcHBlZEF0dHJpYnV0ZUNvdW50Owog
fTsKIApJbmRleDogV2ViQ29yZS9kb20vQ2xhc3NOb2RlTGlzdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvZG9tL0NsYXNzTm9kZUxpc3QuaAkocmV2aXNpb24gNTE4NTkpCisrKyBXZWJDb3JlL2Rv
bS9DbGFzc05vZGVMaXN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMwLDggKzMwLDggQEAKICNpZm5k
ZWYgQ2xhc3NOb2RlTGlzdF9oCiAjZGVmaW5lIENsYXNzTm9kZUxpc3RfaAogCi0jaW5jbHVkZSAi
Q2xhc3NOYW1lcy5oIgogI2luY2x1ZGUgIkR5bmFtaWNOb2RlTGlzdC5oIgorI2luY2x1ZGUgIlNw
YWNlU3BsaXRTdHJpbmcuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00Nyw3ICs0Nyw3
IEBACiAKICAgICAgICAgdmlydHVhbCBib29sIG5vZGVNYXRjaGVzKEVsZW1lbnQqKSBjb25zdDsK
IAotICAgICAgICBDbGFzc05hbWVzIG1fY2xhc3NOYW1lczsKKyAgICAgICAgU3BhY2VTcGxpdFN0
cmluZyBtX2NsYXNzTmFtZXM7CiAgICAgfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRl
eDogV2ViQ29yZS9kb20vQ2xhc3NOYW1lcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20v
Q2xhc3NOYW1lcy5jcHAJKHJldmlzaW9uIDUxODU5KQorKysgV2ViQ29yZS9kb20vQ2xhc3NOYW1l
cy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsOTIgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAwNyBEYXZpZCBTbWl0aCAoY2F0ZmlzaC5tYW5AZ21haWwuY29tKQotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgot
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0ZSAz
MzAsCi0gKiBCb3N0b24sIE1BIDAyMTExLTEzMDcsIFVTQS4KLSAqLwotCi0jaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiQ2xhc3NOYW1lcy5oIgotCi0jaW5jbHVkZSA8d3RmL0FTQ0lJQ1R5
cGUuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdURjsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1z
dGF0aWMgYm9vbCBoYXNOb25BU0NJSU9yVXBwZXIoY29uc3QgU3RyaW5nJiBzdHJpbmcpCi17Ci0g
ICAgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMgPSBzdHJpbmcuY2hhcmFjdGVycygpOwotICAgIHVu
c2lnbmVkIGxlbmd0aCA9IHN0cmluZy5sZW5ndGgoKTsKLSAgICBib29sIGhhc1VwcGVyID0gZmFs
c2U7Ci0gICAgVUNoYXIgb3JlZCA9IDA7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxl
bmd0aDsgaSsrKSB7Ci0gICAgICAgIFVDaGFyIGMgPSBjaGFyYWN0ZXJzW2ldOwotICAgICAgICBo
YXNVcHBlciB8PSBpc0FTQ0lJVXBwZXIoYyk7Ci0gICAgICAgIG9yZWQgfD0gYzsKLSAgICB9Ci0g
ICAgcmV0dXJuIGhhc1VwcGVyIHx8IChvcmVkICYgfjB4N0YpOwotfQotCi12b2lkIENsYXNzTmFt
ZXNEYXRhOjpjcmVhdGVWZWN0b3IoKQotewotICAgIEFTU0VSVCghbV9jcmVhdGVkVmVjdG9yKTsK
LSAgICBBU1NFUlQobV92ZWN0b3IuaXNFbXB0eSgpKTsKLQotICAgIGlmIChtX3Nob3VsZEZvbGRD
YXNlICYmIGhhc05vbkFTQ0lJT3JVcHBlcihtX3N0cmluZykpCi0gICAgICAgIG1fc3RyaW5nID0g
bV9zdHJpbmcuZm9sZENhc2UoKTsKLQotICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzID0gbV9z
dHJpbmcuY2hhcmFjdGVycygpOwotICAgIHVuc2lnbmVkIGxlbmd0aCA9IG1fc3RyaW5nLmxlbmd0
aCgpOwotICAgIHVuc2lnbmVkIHN0YXJ0ID0gMDsKLSAgICB3aGlsZSAodHJ1ZSkgewotICAgICAg
ICB3aGlsZSAoc3RhcnQgPCBsZW5ndGggJiYgaXNDbGFzc1doaXRlc3BhY2UoY2hhcmFjdGVyc1tz
dGFydF0pKQotICAgICAgICAgICAgKytzdGFydDsKLSAgICAgICAgaWYgKHN0YXJ0ID49IGxlbmd0
aCkKLSAgICAgICAgICAgIGJyZWFrOwotICAgICAgICB1bnNpZ25lZCBlbmQgPSBzdGFydCArIDE7
Ci0gICAgICAgIHdoaWxlIChlbmQgPCBsZW5ndGggJiYgIWlzQ2xhc3NXaGl0ZXNwYWNlKGNoYXJh
Y3RlcnNbZW5kXSkpCi0gICAgICAgICAgICArK2VuZDsKLQotICAgICAgICBtX3ZlY3Rvci5hcHBl
bmQoQXRvbWljU3RyaW5nKGNoYXJhY3RlcnMgKyBzdGFydCwgZW5kIC0gc3RhcnQpKTsKLQotICAg
ICAgICBzdGFydCA9IGVuZCArIDE7Ci0gICAgfQotCi0gICAgbV9zdHJpbmcgPSBTdHJpbmcoKTsK
LSAgICBtX2NyZWF0ZWRWZWN0b3IgPSB0cnVlOwotfQotCi1ib29sIENsYXNzTmFtZXNEYXRhOjpj
b250YWluc0FsbChDbGFzc05hbWVzRGF0YSYgb3RoZXIpCi17Ci0gICAgZW5zdXJlVmVjdG9yKCk7
Ci0gICAgb3RoZXIuZW5zdXJlVmVjdG9yKCk7Ci0gICAgc2l6ZV90IHRoaXNTaXplID0gbV92ZWN0
b3Iuc2l6ZSgpOwotICAgIHNpemVfdCBvdGhlclNpemUgPSBvdGhlci5tX3ZlY3Rvci5zaXplKCk7
Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBvdGhlclNpemU7ICsraSkgewotICAgICAgICBj
b25zdCBBdG9taWNTdHJpbmcmIG5hbWUgPSBvdGhlci5tX3ZlY3RvcltpXTsKLSAgICAgICAgc2l6
ZV90IGo7Ci0gICAgICAgIGZvciAoaiA9IDA7IGogPCB0aGlzU2l6ZTsgKytqKSB7Ci0gICAgICAg
ICAgICBpZiAobV92ZWN0b3Jbal0gPT0gbmFtZSkKLSAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoaiA9PSB0aGlzU2l6ZSkKLSAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICB9Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJD
b3JlLnBybwkocmV2aXNpb24gNTE4NTkpCisrKyBXZWJDb3JlL1dlYkNvcmUucHJvCSh3b3JraW5n
IGNvcHkpCkBAIC04NTEsNyArODUxLDYgQEAKICAgICBkb20vQ2hhcmFjdGVyRGF0YS5jcHAgXAog
ICAgIGRvbS9DaGVja2VkUmFkaW9CdXR0b25zLmNwcCBcCiAgICAgZG9tL0NoaWxkTm9kZUxpc3Qu
Y3BwIFwKLSAgICBkb20vQ2xhc3NOYW1lcy5jcHAgXAogICAgIGRvbS9DbGFzc05vZGVMaXN0LmNw
cCBcCiAgICAgZG9tL0NsaWVudFJlY3QuY3BwIFwKICAgICBkb20vQ2xpZW50UmVjdExpc3QuY3Bw
IFwKQEAgLTkxMCw2ICs5MDksNyBAQAogICAgIGRvbS9TY3JpcHRFeGVjdXRpb25Db250ZXh0LmNw
cCBcCiAgICAgZG9tL1NlbGVjdEVsZW1lbnQuY3BwIFwKICAgICBkb20vU2VsZWN0b3JOb2RlTGlz
dC5jcHAgXAorICAgIGRvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBcCiAgICAgZG9tL1N0YXRpY05v
ZGVMaXN0LmNwcCBcCiAgICAgZG9tL1N0eWxlZEVsZW1lbnQuY3BwIFwKICAgICBkb20vU3R5bGVF
bGVtZW50LmNwcCBcCkBAIC0xNTM3LDcgKzE1MzcsNiBAQAogICAgIGRvbS9DaGFyYWN0ZXJEYXRh
LmggXAogICAgIGRvbS9DaGVja2VkUmFkaW9CdXR0b25zLmggXAogICAgIGRvbS9DaGlsZE5vZGVM
aXN0LmggXAotICAgIGRvbS9DbGFzc05hbWVzLmggXAogICAgIGRvbS9DbGFzc05vZGVMaXN0Lmgg
XAogICAgIGRvbS9DbGllbnRSZWN0LmggXAogICAgIGRvbS9DbGllbnRSZWN0TGlzdC5oIFwKQEAg
LTE1OTQsNiArMTU5Myw3IEBACiAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCBcCiAg
ICAgZG9tL1NlbGVjdEVsZW1lbnQuaCBcCiAgICAgZG9tL1NlbGVjdG9yTm9kZUxpc3QuaCBcCisg
ICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuaCBcCiAgICAgZG9tL1N0YXRpY05vZGVMaXN0LmggXAog
ICAgIGRvbS9TdHlsZWRFbGVtZW50LmggXAogICAgIGRvbS9TdHlsZUVsZW1lbnQuaCBcCkluZGV4
OiBXZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0NoYW5nZUxvZwkocmV2
aXNpb24gNTE4NjQpCisrKyBXZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM3IEBACisyMDA5LTEyLTA4ICBOYXRlIENoYXBpbiAgPGphcGhldEBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVuYW1l
IGRvbS9DbGFzc05hbWVzIHRvIFNwYWNlU3BsaXRTdHJpbmcgYW5kIHVwZGF0ZSBidWlsZCBmaWxl
cy4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIy
NTAKKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIFdlYkNvcmUuZ3lwaToK
KyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAgICAgKiBXZWJDb3JlLnZjcHJvai9XZWJDb3Jl
LnZjcHJvajoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgICogV2ViQ29yZVNvdXJjZXMuYmtsOgorICAgICAgICAqIGNzcy9DU1NTdHlsZVNlbGVj
dG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlU2VsZWN0b3I6Om1hdGNoUnVsZXMp
OgorICAgICAgICAqIGRvbS9DbGFzc05hbWVzLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBkb20v
Q2xhc3NOYW1lcy5oOiBSZW1vdmVkLgorICAgICAgICAqIGRvbS9DbGFzc05vZGVMaXN0Lmg6Cisg
ICAgICAgICogZG9tL05hbWVkTWFwcGVkQXR0ck1hcC5oOgorICAgICAgICAoV2ViQ29yZTo6TmFt
ZWRNYXBwZWRBdHRyTWFwOjpjbGFzc05hbWVzKToKKyAgICAgICAgKiBkb20vU3BhY2VTcGxpdFN0
cmluZy5jcHA6IENvcGllZCBmcm9tIFdlYkNvcmUvZG9tL0NsYXNzTmFtZXMuY3BwLgorICAgICAg
ICAoV2ViQ29yZTo6U3BhY2VTcGxpdFN0cmluZ0RhdGE6OmNyZWF0ZVZlY3Rvcik6CisgICAgICAg
IChXZWJDb3JlOjpTcGFjZVNwbGl0U3RyaW5nRGF0YTo6Y29udGFpbnNBbGwpOgorICAgICAgICAq
IGRvbS9TcGFjZVNwbGl0U3RyaW5nLmg6IENvcGllZCBmcm9tIFdlYkNvcmUvZG9tL0NsYXNzTmFt
ZXMuaC4KKyAgICAgICAgKFdlYkNvcmU6OlNwYWNlU3BsaXRTdHJpbmdEYXRhOjpTcGFjZVNwbGl0
U3RyaW5nRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpTcGFjZVNwbGl0U3RyaW5nOjpTcGFjZVNw
bGl0U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNwYWNlU3BsaXRTdHJpbmc6OnNldCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTcGFjZVNwbGl0U3RyaW5nOjpjb250YWluc0FsbCk6CisgICAgICAg
ICogZG9tL1N0eWxlZEVsZW1lbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlZEVsZW1lbnQ6
OmNsYXNzTmFtZXMpOgorICAgICAgICAqIGh0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTEFuY2hvckVsZW1lbnQ6OnNldFJlbCk6CisKIDIwMDktMTItMDgg
IERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBK
b2huIFN1bGxpdmFuLgpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJv
ago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCShy
ZXZpc2lvbiA1MTg1OSkKKysrIFdlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oJ
KHdvcmtpbmcgY29weSkKQEAgLTI4NDQzLDE0ICsyODQ0Myw2IEBACiAJCQkJPg0KIAkJCTwvRmls
ZT4NCiAJCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRvbVxDbGFzc05hbWVzLmNwcCIN
Ci0JCQkJPg0KLQkJCTwvRmlsZT4NCi0JCQk8RmlsZQ0KLQkJCQlSZWxhdGl2ZVBhdGg9Ii4uXGRv
bVxDbGFzc05hbWVzLmgiDQotCQkJCT4NCi0JCQk8L0ZpbGU+DQotCQkJPEZpbGUNCiAJCQkJUmVs
YXRpdmVQYXRoPSIuLlxkb21cQ2xhc3NOb2RlTGlzdC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+
DQpAQCAtMjg5NTksNiArMjg5NTEsMTQgQEAKIAkJCQk+DQogCQkJPC9GaWxlPg0KIAkJCTxGaWxl
DQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNwYWNlU3BsaXRTdHJpbmcuY3BwIg0KKwkJCQk+
DQorCQkJPC9GaWxlPg0KKwkJCTxGaWxlDQorCQkJCVJlbGF0aXZlUGF0aD0iLi5cZG9tXFNwYWNl
U3BsaXRTdHJpbmcuaCINCisJCQkJPg0KKwkJCTwvRmlsZT4NCisJCQk8RmlsZQ0KIAkJCQlSZWxh
dGl2ZVBhdGg9Ii4uXGRvbVxTdGF0aWNOb2RlTGlzdC5jcHAiDQogCQkJCT4NCiAJCQk8L0ZpbGU+
DQpJbmRleDogV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCShyZXZpc2lvbiA1MTg1OSkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0J
KHdvcmtpbmcgY29weSkKQEAgLTY2OCw4ICs2NjgsNiBAQAogCVdlYkNvcmUvZG9tL0NoZWNrZWRS
YWRpb0J1dHRvbnMuaCBcCiAJV2ViQ29yZS9kb20vQ2hpbGROb2RlTGlzdC5jcHAgXAogCVdlYkNv
cmUvZG9tL0NoaWxkTm9kZUxpc3QuaCBcCi0JV2ViQ29yZS9kb20vQ2xhc3NOYW1lcy5jcHAgXAot
CVdlYkNvcmUvZG9tL0NsYXNzTmFtZXMuaCBcCiAJV2ViQ29yZS9kb20vQ2xhc3NOb2RlTGlzdC5j
cHAgXAogCVdlYkNvcmUvZG9tL0NsYXNzTm9kZUxpc3QuaCBcCiAJV2ViQ29yZS9kb20vQ2xpZW50
UmVjdC5jcHAgXApAQCAtNzk5LDYgKzc5Nyw4IEBACiAJV2ViQ29yZS9kb20vU2VsZWN0RWxlbWVu
dC5oIFwKIAlXZWJDb3JlL2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCBcCiAJV2ViQ29yZS9kb20v
U2VsZWN0b3JOb2RlTGlzdC5oIFwKKwlXZWJDb3JlL2RvbS9TcGFjZVNwbGl0U3RyaW5nLmNwcCBc
CisJV2ViQ29yZS9kb20vU3BhY2VTcGxpdFN0cmluZy5oIFwKIAlXZWJDb3JlL2RvbS9TdGF0aWNO
b2RlTGlzdC5jcHAgXAogCVdlYkNvcmUvZG9tL1N0YXRpY05vZGVMaXN0LmggXAogCVdlYkNvcmUv
ZG9tL1N0eWxlRWxlbWVudC5jcHAgXApJbmRleDogV2ViQ29yZS9XZWJDb3JlLmd5cGkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLmd5cGkJKHJldmlzaW9uIDUxODU5KQorKysgV2ViQ29y
ZS9XZWJDb3JlLmd5cGkJKHdvcmtpbmcgY29weSkKQEAgLTk5Nyw4ICs5OTcsNiBAQAogICAgICAg
ICAgICAgJ2RvbS9DaGVja2VkUmFkaW9CdXR0b25zLmgnLAogICAgICAgICAgICAgJ2RvbS9DaGls
ZE5vZGVMaXN0LmNwcCcsCiAgICAgICAgICAgICAnZG9tL0NoaWxkTm9kZUxpc3QuaCcsCi0gICAg
ICAgICAgICAnZG9tL0NsYXNzTmFtZXMuY3BwJywKLSAgICAgICAgICAgICdkb20vQ2xhc3NOYW1l
cy5oJywKICAgICAgICAgICAgICdkb20vQ2xhc3NOb2RlTGlzdC5jcHAnLAogICAgICAgICAgICAg
J2RvbS9DbGFzc05vZGVMaXN0LmgnLAogICAgICAgICAgICAgJ2RvbS9DbGllbnRSZWN0LmNwcCcs
CkBAIC0xMTI4LDYgKzExMjYsOCBAQAogICAgICAgICAgICAgJ2RvbS9TZWxlY3RFbGVtZW50Lmgn
LAogICAgICAgICAgICAgJ2RvbS9TZWxlY3Rvck5vZGVMaXN0LmNwcCcsCiAgICAgICAgICAgICAn
ZG9tL1NlbGVjdG9yTm9kZUxpc3QuaCcsCisgICAgICAgICAgICAnZG9tL1NwYWNlU3BsaXRTdHJp
bmcuY3BwJywKKyAgICAgICAgICAgICdkb20vU3BhY2VTcGxpdFN0cmluZy5oJywKICAgICAgICAg
ICAgICdkb20vU3RhdGljTm9kZUxpc3QuY3BwJywKICAgICAgICAgICAgICdkb20vU3RhdGljTm9k
ZUxpc3QuaCcsCiAgICAgICAgICAgICAnZG9tL1N0YXRpY1N0cmluZ0xpc3QuY3BwJywKSW5kZXg6
IFdlYkNvcmUvV2ViQ29yZS5vcmRlcgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUub3Jk
ZXIJKHJldmlzaW9uIDUxODU5KQorKysgV2ViQ29yZS9XZWJDb3JlLm9yZGVyCSh3b3JraW5nIGNv
cHkpCkBAIC0yNzc3LDcgKzI3NzcsNyBAQAogX19aTks3V2ViQ29yZTEyUmVuZGVyT2JqZWN0MTRp
c1JlbmRlcklubGluZUV2CiBfX1pOSzdXZWJDb3JlN0VsZW1lbnQxNGdldElEQXR0cmlidXRlRXYK
IF9fWk43V2ViQ29yZTdEYXRhUmVmSU5TXzEyU3R5bGVCb3hEYXRhRUU2YWNjZXNzRXYKLV9fWk43
V2ViQ29yZTE0Q2xhc3NOYW1lc0RhdGExMmNyZWF0ZVZlY3RvckV2CitfX1pON1dlYkNvcmUxNFNw
YWNlU3BsaXRTdHJpbmdEYXRhMTJjcmVhdGVWZWN0b3JFdgogX19aTjdXZWJDb3JlMTdDU1NQcmlt
aXRpdmVWYWx1ZTE4Y29tcHV0ZUxlbmd0aEZsb2F0RVBOU18xMVJlbmRlclN0eWxlRWIKIF9fWk43
V2ViQ29yZTdEYXRhUmVmSU5TXzE4U3R5bGVJbmhlcml0ZWREYXRhRUU2YWNjZXNzRXYKIF9fWk43
V2ViQ29yZTE2SFRNTEltYWdlRWxlbWVudDE0Y3JlYXRlUmVuZGVyZXJFUE5TXzExUmVuZGVyQXJl
bmFFUE5TXzExUmVuZGVyU3R5bGVFCkBAIC02MjgwLDcgKzYyODAsNyBAQAogX19aTjdXZWJDb3Jl
MTNDbGFzc05vZGVMaXN0QzFFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNE5vZGVFRUVSS05TXzZTdHJp
bmdFUE5TXzE1RHluYW1pY05vZGVMaXN0NkNhY2hlc0UKIF9fWk43V2ViQ29yZTEzQ2xhc3NOb2Rl
TGlzdEMyRU4zV1RGMTBQYXNzUmVmUHRySU5TXzROb2RlRUVFUktOU182U3RyaW5nRVBOU18xNUR5
bmFtaWNOb2RlTGlzdDZDYWNoZXNFCiBfX1pOSzdXZWJDb3JlMTNDbGFzc05vZGVMaXN0MTFub2Rl
TWF0Y2hlc0VQTlNfN0VsZW1lbnRFCi1fX1pON1dlYkNvcmUxNENsYXNzTmFtZXNEYXRhMTFjb250
YWluc0FsbEVSUzBfCitfX1pON1dlYkNvcmUxNFNwYWNlU3BsaXRTdHJpbmdEYXRhMTFjb250YWlu
c0FsbEVSUzBfCiBfX1pON1dlYkNvcmUxNmpzTm9kZUZpcnN0Q2hpbGRFUE4zSlNDOUV4ZWNTdGF0
ZUVSS05TMF8xMElkZW50aWZpZXJFUktOUzBfMTJQcm9wZXJ0eVNsb3RFCiBfX1pON1dlYkNvcmU2
SlNUZXh0MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50
aWZpZXJFUk5TMV8xMlByb3BlcnR5U2xvdEUKIF9fWk43V2ViQ29yZTE1SlNDaGFyYWN0ZXJEYXRh
MThnZXRPd25Qcm9wZXJ0eVNsb3RFUE4zSlNDOUV4ZWNTdGF0ZUVSS05TMV8xMElkZW50aWZpZXJF
Uk5TMV8xMlByb3BlcnR5U2xvdEUKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MQW5jaG9yRWxlbWVu
dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAko
cmV2aXNpb24gNTE4NTkpCisrKyBXZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlJlbmRlckltYWdlLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKKyNpbmNsdWRlICJTcGFj
ZVNwbGl0U3RyaW5nLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzQzLDcgKzM0NCw3
IEBACiB2b2lkIEhUTUxBbmNob3JFbGVtZW50OjpzZXRSZWwoY29uc3QgU3RyaW5nJiB2YWx1ZSkK
IHsKICAgICBtX2xpbmtSZWxhdGlvbnMgPSAwOwotICAgIENsYXNzTmFtZXMgbmV3TGlua1JlbGF0
aW9ucyh2YWx1ZSwgdHJ1ZSk7CisgICAgU3BhY2VTcGxpdFN0cmluZyBuZXdMaW5rUmVsYXRpb25z
KHZhbHVlLCB0cnVlKTsKICAgICAvLyBGSVhNRTogQWRkIGxpbmsgcmVsYXRpb25zIGFzIHRoZXkg
YXJlIGltcGxlbWVudGVkCiAgICAgaWYgKG5ld0xpbmtSZWxhdGlvbnMuY29udGFpbnMoIm5vcmVm
ZXJyZXIiKSkKICAgICAgICAgbV9saW5rUmVsYXRpb25zIHw9IFJlbGF0aW9uTm9SZWZlcnJlcjsK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lv
biA1MTg1OSkKKysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC00MTcyLDggKzQxNzIsNiBAQAogCQlCQzQ5MThDOTBCRkVBMDUwMDA5
RDYzMTYgLyogSlNIVE1MSUZyYW1lRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0OTE4QzMwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTElG
cmFtZUVsZW1lbnQuaCAqLzsgfTsKIAkJQkM0OTFCNzgwQzAyM0VGRDAwOUQ2MzE2IC8qIEpTSFRN
TE1hcnF1ZWVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDNDkxQjc2MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVlRWxlbWVu
dC5jcHAgKi87IH07CiAJCUJDNDkxQjc5MEMwMjNFRkQwMDlENjMxNiAvKiBKU0hUTUxNYXJxdWVl
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkM0OTFCNzcwQzAyM0VGRDAwOUQ2MzE2IC8qIEpTSFRNTE1hcnF1ZWVFbGVtZW50LmggKi87IH07
Ci0JCUJDNEJGOUU0MEQxMUUxMzMwMDdEMjQ3RiAvKiBDbGFzc05hbWVzLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDNEJGOUUyMEQxMUUxMzMwMDdE
MjQ3RiAvKiBDbGFzc05hbWVzLmNwcCAqLzsgfTsKLQkJQkM0QkY5RTUwRDExRTEzMzAwN0QyNDdG
IC8qIENsYXNzTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDNEJGOUUzMEQxMUUxMzMwMDdEMjQ3RiAvKiBDbGFzc05hbWVzLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkM0RURFRjQwQzA4RjNG
QjAwN0VERDQ5IC8qIEpTSFRNTEFwcGxldEVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM0RURFRjMwQzA4RjNGQjAwN0VERDQ5
IC8qIEpTSFRNTEFwcGxldEVsZW1lbnRDdXN0b20uY3BwICovOyB9OwogCQlCQzUxNTZFODBDMDNC
NzQxMDA4QkIwRUUgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50LmggaW4gQ29weSBHZW5lcmF0ZWQg
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzUxNTZFNTBDMDNC
NzQxMDA4QkIwRUUgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50LmggKi87IH07CiAJCUJDNTE1NkU5
MEMwM0I3NDEwMDhCQjBFRSAvKiBET01IVE1MTWFycXVlZUVsZW1lbnQubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzUxNTZFNjBDMDNCNzQxMDA4QkIw
RUUgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50Lm1tICovOyB9OwpAQCAtNDU4Nyw2ICs0NTg1LDgg
QEAKIAkJQzZENzRBRDUwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZl
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzZENzRB
RDMwOUFBMjgyRTAwMEIwQTUyIC8qIE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5oICovOyB9Owog
CQlDNkQ3NEFFNDA5QUEyOTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM2RDc0QUUz
MDlBQTI5MEEwMDBCMEE1MiAvKiBNb2RpZnlTZWxlY3Rpb25MaXN0TGV2ZWwuY3BwICovOyB9Owog
CQlDRTU0RkQzODEwMTZEOUE2MDA4QjQ0QzggLyogU2NyaXB0U291cmNlUHJvdmlkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENFNTRGRDM3MTAxNkQ5
QTYwMDhCNDRDOCAvKiBTY3JpcHRTb3VyY2VQcm92aWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCUQwMUEyN0FEMTBDOUJGRDgwMDAyNkE0MiAv
KiBTcGFjZVNwbGl0U3RyaW5nLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEQwMUEyN0FCMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5n
LmNwcCAqLzsgfTsKKwkJRDAxQTI3QUUxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRTdHJp
bmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEQwMUEy
N0FDMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0U3RyaW5nLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJRDA1Q0VEMjkwQTQwQkIyQzAwQzVB
RjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBEMDVDRUQyNzBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0Qmxv
Y2tDb21tYW5kLmNwcCAqLzsgfTsKIAkJRDA1Q0VEMkEwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1h
dEJsb2NrQ29tbWFuZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRDA1Q0VEMjgwQTQwQkIyQzAwQzVBRjM4IC8qIEZvcm1hdEJsb2NrQ29tbWFuZC5oICov
OyB9OwogCQlEMDZDMEQ4RjBDRkQxMTQ2MDA2NUY0M0YgLyogUmVtb3ZlRm9ybWF0Q29tbWFuZC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRDA2QzBEOEQw
Q0ZEMTE0NjAwNjVGNDNGIC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCAqLzsgfTsKQEAgLTkzMzYs
OCArOTMzNiw2IEBACiAJCUJDNDkxQjRFMEMwMjNFMkQwMDlENjMxNiAvKiBIVE1MTWFycXVlZUVs
ZW1lbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEhUTUxNYXJxdWVlRWxlbWVudC5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNDkxQjc2MEMwMjNFRkQwMDlENjMxNiAv
KiBKU0hUTUxNYXJxdWVlRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gSlNIVE1MTWFycXVlZUVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzQ5MUI3NzBDMDIzRUZEMDA5RDYzMTYgLyogSlNIVE1MTWFycXVlZUVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTSFRNTE1hcnF1ZWVFbGVtZW50
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDNEJGOUUyMEQxMUUxMzMwMDdEMjQ3
RiAvKiBDbGFzc05hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IENsYXNzTmFtZXMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzRCRjlFMzBE
MTFFMTMzMDA3RDI0N0YgLyogQ2xhc3NOYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDbGFzc05hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDNEVE
RUYzMEMwOEYzRkIwMDdFREQ0OSAvKiBKU0hUTUxBcHBsZXRFbGVtZW50Q3VzdG9tLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTSFRNTEFwcGxldEVsZW1lbnRDdXN0
b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzUxNTZFNTBDMDNCNzQxMDA4
QkIwRUUgLyogRE9NSFRNTE1hcnF1ZWVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBET01IVE1MTWFycXVlZUVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkM1MTU2RTYwQzAzQjc0MTAwOEJCMEVFIC8qIERPTUhUTUxNYXJxdWVlRWxlbWVu
dC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBET01IVE1MTWFy
cXVlZUVsZW1lbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NzgyLDYgKzk3
ODAsOCBAQAogCQlDNkQ3NEFEMzA5QUEyODJFMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlz
dExldmVsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE1vZGlmeVNlbGVjdGlv
bkxpc3RMZXZlbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDNkQ3NEFFMzA5QUEy
OTBBMDAwQjBBNTIgLyogTW9kaWZ5U2VsZWN0aW9uTGlzdExldmVsLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE1vZGlmeVNlbGVjdGlvbkxpc3RMZXZlbC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNFNTRGRDM3MTAxNkQ5QTYwMDhCNDRDOCAvKiBT
Y3JpcHRTb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
Y3JpcHRTb3VyY2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlEMDFB
MjdBQjEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTcGFjZVNwbGl0U3RyaW5nLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRDAxQTI3QUMxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3Bs
aXRTdHJpbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3BhY2VTcGxpdFN0
cmluZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlEMDVDRUQyNzBBNDBCQjJDMDBD
NUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1hbmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlEMDVDRUQyODBBNDBCQjJDMDBDNUFGMzggLyogRm9ybWF0QmxvY2tDb21tYW5k
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb3JtYXRCbG9ja0NvbW1hbmQu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRDA2QzBEOEQwQ0ZEMTE0NjAwNjVGNDNG
IC8qIFJlbW92ZUZvcm1hdENvbW1hbmQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gUmVtb3ZlRm9ybWF0Q29tbWFuZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTU1NzIsOCArMTU1NzIsNiBAQAogCQkJCTkzRjkyNTQxMEY3RUY1QjgwMDdFMzdDOSAvKiBDaGVj
a2VkUmFkaW9CdXR0b25zLmggKi8sCiAJCQkJQTgxODcyMUEwOTc3RDNDMDAwNTgyNkQ5IC8qIENo
aWxkTm9kZUxpc3QuY3BwICovLAogCQkJCUE4MTg3MjE1MDk3N0QzQzAwMDU4MjZEOSAvKiBDaGls
ZE5vZGVMaXN0LmggKi8sCi0JCQkJQkM0QkY5RTIwRDExRTEzMzAwN0QyNDdGIC8qIENsYXNzTmFt
ZXMuY3BwICovLAotCQkJCUJDNEJGOUUzMEQxMUUxMzMwMDdEMjQ3RiAvKiBDbGFzc05hbWVzLmgg
Ki8sCiAJCQkJQkM5MDRCNzIwRDEwOTk4RjAwNjgwRDMyIC8qIENsYXNzTm9kZUxpc3QuY3BwICov
LAogCQkJCUJDOTA0QjczMEQxMDk5OEYwMDY4MEQzMiAvKiBDbGFzc05vZGVMaXN0LmggKi8sCiAJ
CQkJQkNDMDY1NzcwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuY3BwICovLApAQCAtMTU3
NDMsNiArMTU3NDEsOCBAQAogCQkJCTA4NEFFQkUzMEZCNTA1RkEwMDM4NDgzRSAvKiBTZWxlY3RF
bGVtZW50LmggKi8sCiAJCQkJQkM3RkE2ODAwRDFGMTY3OTAwREIyMkE5IC8qIFNlbGVjdG9yTm9k
ZUxpc3QuY3BwICovLAogCQkJCUJDN0ZBNjdGMEQxRjE2NzkwMERCMjJBOSAvKiBTZWxlY3Rvck5v
ZGVMaXN0LmggKi8sCisJCQkJRDAxQTI3QUIxMEM5QkZEODAwMDI2QTQyIC8qIFNwYWNlU3BsaXRT
dHJpbmcuY3BwICovLAorCQkJCUQwMUEyN0FDMTBDOUJGRDgwMDAyNkE0MiAvKiBTcGFjZVNwbGl0
U3RyaW5nLmggKi8sCiAJCQkJQkM3RkE2MkMwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVM
aXN0LmNwcCAqLywKIAkJCQlCQzdGQTYyQjBEMUYwRUZGMDBEQjIyQTkgLyogU3RhdGljTm9kZUxp
c3QuaCAqLywKIAkJCQlBOEM0QTdFQzA5RDU2MzI3MDAwM0FDOEQgLyogU3R5bGVkRWxlbWVudC5j
cHAgKi8sCkBAIC0xNTkyNyw3ICsxNTkyNyw2IEBACiAJCQkJQTgxODcyMjAwOTc3RDNDMDAwNTgy
NkQ5IC8qIENoaWxkTm9kZUxpc3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RDgyMzUyMEFGOTJB
NzkwMDA0RjA1NyAvKiBDaHJvbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTE0RDgyNDA4MEFGOTNB
RUIwMDA0RjA1NyAvKiBDaHJvbWVDbGllbnQuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDNEJGOUU1
MEQxMUUxMzMwMDdEMjQ3RiAvKiBDbGFzc05hbWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzkw
NEI3NzBEMTA5OThGMDA2ODBEMzIgLyogQ2xhc3NOb2RlTGlzdC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkNDMDY1N0UwRjNDRTFCNzAwQ0QyRDg3IC8qIENsaWVudFJlY3QuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDQzA2NTgxMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xNzc3NCw2ICsxNzc3Myw3IEBACiAJCQkJNEIzMDQzQzcwQUUwMzcwMzAw
QTgyNjQ3IC8qIFNvdW5kLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NEE4MUYzRTBGQzdERkYwMDA5
NTUzMDAgLyogU291cmNlQWxwaGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTg0QTgxRjQyMEZDN0Uw
MjcwMDk1NTMwMCAvKiBTb3VyY2VHcmFwaGljLmggaW4gSGVhZGVycyAqLywKKwkJCQlEMDFBMjdB
RTEwQzlCRkQ4MDAwMjZBNDIgLyogU3BhY2VTcGxpdFN0cmluZy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTMzMDlFMTIwOTlFNjQ5MjAwNTZFNTgxIC8qIFNwbGl0RWxlbWVudENvbW1hbmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkzMzA5RTE0MDk5RTY0OTIwMDU2RTU4MSAvKiBTcGxpdFRleHROb2Rl
Q29tbWFuZC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTMzMDlFMTYwOTlFNjQ5MjAwNTZFNTgxIC8q
IFNwbGl0VGV4dE5vZGVDb250YWluaW5nRWxlbWVudENvbW1hbmQuaCBpbiBIZWFkZXJzICovLApA
QCAtMTg1NzAsNyArMTg1NzAsNiBAQAogCQkJCUE4MTg3MjI1MDk3N0QzQzAwMDU4MjZEOSAvKiBD
aGlsZE5vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTE0RDgyMzhCMEFGOTJERjYwMDA0
RjA1NyAvKiBDaHJvbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQUJBRjIyMDgwQzAzQjFDNzAw
QjBCQ0YwIC8qIENocm9tZU1hYy5tbSBpbiBTb3VyY2VzICovLAotCQkJCUJDNEJGOUU0MEQxMUUx
MzMwMDdEMjQ3RiAvKiBDbGFzc05hbWVzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTA0Qjc2
MEQxMDk5OEYwMDY4MEQzMiAvKiBDbGFzc05vZGVMaXN0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUJDQzA2NTdEMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0LmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUJDQzA2NTgwMEYzQ0UxQjcwMENEMkQ4NyAvKiBDbGllbnRSZWN0TGlzdC5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTIwMzgyLDYgKzIwMzgxLDcgQEAKIAkJCQk3QTBFNzcwRTEwQzAwQTg4
MDBBMDI3NkUgLyogSW5zcGVjdG9yRnJvbnRlbmRIb3N0LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTdBMEU3NzFFMTBDMDBEQjEwMEEwMjc2RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlGNEVBRjRBRTEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVT
YW5pdGl6ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJRDAxQTI3QUQxMEM5QkZEODAwMDI2QTQy
IC8qIFNwYWNlU3BsaXRTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTk5RDFFMzIxMEM5
N0Q2RTAwRTBFRjEyIC8qIGpuaV91dGlsaXR5X3ByaXZhdGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CkluZGV4OiBX
ZWJDb3JlL0FuZHJvaWQubWsKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9BbmRyb2lkLm1rCShyZXZp
c2lvbiA1MTg1OSkKKysrIFdlYkNvcmUvQW5kcm9pZC5tawkod29ya2luZyBjb3B5KQpAQCAtMTA0
LDcgKzEwNCw2IEBACiAJZG9tL0NoYXJhY3RlckRhdGEuY3BwIFwKIAlkb20vQ2hlY2tlZFJhZGlv
QnV0dG9ucy5jcHAgXAogCWRvbS9DaGlsZE5vZGVMaXN0LmNwcCBcCi0JZG9tL0NsYXNzTmFtZXMu
Y3BwIFwKIAlkb20vQ2xhc3NOb2RlTGlzdC5jcHAgXAogCWRvbS9DbGllbnRSZWN0LmNwcCBcCiAJ
ZG9tL0NsaWVudFJlY3RMaXN0LmNwcCBcCkBAIC0xNjAsNiArMTU5LDcgQEAKIAlkb20vU2NyaXB0
RXhlY3V0aW9uQ29udGV4dC5jcHAgXAogCWRvbS9TZWxlY3RFbGVtZW50LmNwcCBcCiAJZG9tL1Nl
bGVjdG9yTm9kZUxpc3QuY3BwIFwKKwlkb20vU3BhY2VTcGxpdFN0cmluZy5jcHAgXAogCWRvbS9T
dGF0aWNOb2RlTGlzdC5jcHAgXAogCWRvbS9TdHlsZUVsZW1lbnQuY3BwIFwKIAlkb20vU3R5bGVk
RWxlbWVudC5jcHAgXApJbmRleDogV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHJldmlzaW9uIDUx
ODU5KQorKysgV2ViQ29yZS9jc3MvQ1NTU3R5bGVTZWxlY3Rvci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY2MCw3ICs2NjAsNyBAQAogICAgICAgICBtYXRjaFJ1bGVzRm9yTGlzdChydWxlcy0+Z2V0
SURSdWxlcyhtX2VsZW1lbnQtPmdldElEQXR0cmlidXRlKCkuaW1wbCgpKSwgZmlyc3RSdWxlSW5k
ZXgsIGxhc3RSdWxlSW5kZXgpOwogICAgIGlmIChtX2VsZW1lbnQtPmhhc0NsYXNzKCkpIHsKICAg
ICAgICAgQVNTRVJUKG1fc3R5bGVkRWxlbWVudCk7Ci0gICAgICAgIGNvbnN0IENsYXNzTmFtZXMm
IGNsYXNzTmFtZXMgPSBtX3N0eWxlZEVsZW1lbnQtPmNsYXNzTmFtZXMoKTsKKyAgICAgICAgY29u
c3QgU3BhY2VTcGxpdFN0cmluZyYgY2xhc3NOYW1lcyA9IG1fc3R5bGVkRWxlbWVudC0+Y2xhc3NO
YW1lcygpOwogICAgICAgICBzaXplX3Qgc2l6ZSA9IGNsYXNzTmFtZXMuc2l6ZSgpOwogICAgICAg
ICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHNpemU7ICsraSkKICAgICAgICAgICAgIG1hdGNoUnVs
ZXNGb3JMaXN0KHJ1bGVzLT5nZXRDbGFzc1J1bGVzKGNsYXNzTmFtZXNbaV0uaW1wbCgpKSwgZmly
c3RSdWxlSW5kZXgsIGxhc3RSdWxlSW5kZXgpOwpJbmRleDogV2ViQ29yZS9XZWJDb3JlU291cmNl
cy5ia2wKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wJKHJldmlzaW9u
IDUxODU5KQorKysgV2ViQ29yZS9XZWJDb3JlU291cmNlcy5ia2wJKHdvcmtpbmcgY29weSkKQEAg
LTQ1MCw3ICs0NTAsNiBAQAogICAgICAgICBkb20vQ2hhcmFjdGVyRGF0YS5jcHAKICAgICAgICAg
ZG9tL0NoZWNrZWRSYWRpb0J1dHRvbnMuY3BwCiAgICAgICAgIGRvbS9DaGlsZE5vZGVMaXN0LmNw
cAotICAgICAgICBkb20vQ2xhc3NOYW1lcy5jcHAKICAgICAgICAgZG9tL0NsYXNzTm9kZUxpc3Qu
Y3BwCiAgICAgICAgIGRvbS9DbGllbnRSZWN0LmNwcAogICAgICAgICBkb20vQ2xpZW50UmVjdExp
c3QuY3BwCkBAIC01MDYsNiArNTA1LDcgQEAKICAgICAgICAgZG9tL1NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuY3BwCiAgICAgICAgIGRvbS9TZWxlY3RFbGVtZW50LmNwcAogICAgICAgICBkb20vU2Vs
ZWN0b3JOb2RlTGlzdC5jcHAKKyAgICAgICAgZG9tL1NwYWNlU3BsaXRTdHJpbmcuY3BwCiAgICAg
ICAgIGRvbS9TdGF0aWNOb2RlTGlzdC5jcHAKICAgICAgICAgZG9tL1N0eWxlRWxlbWVudC5jcHAK
ICAgICAgICAgZG9tL1N0eWxlZEVsZW1lbnQuY3BwCg==
</data>
<flag name="review"
          id="26352"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>