<?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>20029</bug_id>
          
          <creation_ts>2008-07-13 15:57:55 -0700</creation_ts>
          <short_desc>[XBL] Add more tags</short_desc>
          <delta_ts>2008-07-24 07:35:40 -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>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="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>85869</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-13 15:57:55 -0700</bug_when>
    <thetext>To produce minimal example, we need at least &lt;binding&gt;, &lt;template&gt;, &lt;div&gt; (maybe &lt;content&gt; too).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85870</commentid>
    <comment_count>1</comment_count>
      <attachid>22262</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-13 16:01:47 -0700</bug_when>
    <thetext>Created attachment 22262
Add &lt;binding&gt;, &lt;template&gt;, &lt;div&gt; and &lt;content&gt; stubs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85871</commentid>
    <comment_count>2</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-07-13 16:17:54 -0700</bug_when>
    <thetext>I don&apos;t understand what the &lt;div&gt; element is in this example... XBL doesn&apos;t have a &lt;div&gt; element does it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85876</commentid>
    <comment_count>3</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-14 01:07:49 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; I don&apos;t understand what the &lt;div&gt; element is in this example... XBL doesn&apos;t
&gt; have a &lt;div&gt; element does it?
&gt; 

It does (http://www.w3.org/TR/xbl/#the-div). It is meant to be a styling hook and should be rendered as a block (http://www.w3.org/TR/xbl/#xbl-elements).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85877</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-07-14 01:14:26 -0700</bug_when>
    <thetext>Right, but it has no DOM interface does it?  I don&apos;t see why you would need a special subclass just for a generic block.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85878</commentid>
    <comment_count>5</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-14 01:59:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Right, but it has no DOM interface does it?

You are right.

&gt;  I don&apos;t see why you would need a
&gt; special subclass just for a generic block.

We could just use XBLElement to generate the &lt;div&gt; but there is a few drawbacks:
- make_names.pl currently creates a wrapper for each tags in the factory files which requires a class per tag. We would have to add an option to generate only the qualified name.
- XBL elements have to check their hierarchy to determine if they are in error, I had though of doing it per element.

The two previous points are quite simple to solve so either solution is fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85952</commentid>
    <comment_count>6</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-07-15 13:00:39 -0700</bug_when>
    <thetext>I do not think you should create extra element classes if the element is not going to have any specialized behavior.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>85953</commentid>
    <comment_count>7</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-07-15 13:01:11 -0700</bug_when>
    <thetext>If you look at HTML, many of the elements do not have any specialized subclasses.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86005</commentid>
    <comment_count>8</comment_count>
      <attachid>22262</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-15 21:52:26 -0700</bug_when>
    <thetext>Comment on attachment 22262
Add &lt;binding&gt;, &lt;template&gt;, &lt;div&gt; and &lt;content&gt; stubs

As Hyatt says, any element which does not require custom behavior does not need to be generated for the factory (But should be generated as part of the XBLNames file).  You might have to add code to the generation scripts for that (But html needs that code anyway... when we finally make HTMLNames and HTMLElementFactory autogen -- there is another bug on that).

If it doesn&apos;t need custom behavior, you just test for the element using:

element-&gt;hasTagName(XBLNames::divTag)

the generated factory stuff should correctly generate generic XBLElements in that case, since these elements will have the XBL namespace (I know this works for SVG, so I&apos;m sure the generated stuff will do the right hting for XBL too.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86040</commentid>
    <comment_count>9</comment_count>
      <attachid>22304</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-16 04:55:24 -0700</bug_when>
    <thetext>Created attachment 22304
Updated patch: add the tags and only the useful classes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86233</commentid>
    <comment_count>10</comment_count>
      <attachid>22341</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-17 10:21:56 -0700</bug_when>
    <thetext>Created attachment 22341
Updated: add &lt;binding&gt;, template&gt; and &lt;div&gt; but do not create XBLDivElement class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86238</commentid>
    <comment_count>11</comment_count>
      <attachid>22341</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-17 10:36:31 -0700</bug_when>
    <thetext>Comment on attachment 22341
Updated: add &lt;binding&gt;, template&gt; and &lt;div&gt; but do not create XBLDivElement class

xblCustomMappings shouldn&apos;t be needed.  HTML will need this too.  This should just be a property of the tag in the .in file.

Also, I don&apos;t think you need a comment about &lt;div&gt; in the XBLElement header.  XBLElements probably want to be StyledElements anyway.  I mean, it&apos;s also possible to just create an empty XBLDivElement, despite hyatt&apos;s suggestions to the contrary.  The cost in terms of code and binary size are negligible.

I think you should make the &quot;generate w/o having a custom class&quot; thing work though, since our first pass in converting HTMLElementFactory will use that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86360</commentid>
    <comment_count>12</comment_count>
      <attachid>22371</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-18 12:27:36 -0700</bug_when>
    <thetext>Created attachment 22371
Patch updated with Eric&apos;s comments

(In reply to comment #11)
&gt; (From update of attachment 22341 [edit])
&gt; xblCustomMappings shouldn&apos;t be needed.  HTML will need this too.  This should
&gt; just be a property of the tag in the .in file.

I thought it would interact badly with the .in file format change discussed on the ML that I intend to do (thus my original FIXME). However after thinking about it, I guess I could add just one property without too much trouble.

&gt; Also, I don&apos;t think you need a comment about &lt;div&gt; in the XBLElement header. 
&gt; XBLElements probably want to be StyledElements anyway.  I mean, it&apos;s also
&gt; possible to just create an empty XBLDivElement, despite hyatt&apos;s suggestions to
&gt; the contrary.  The cost in terms of code and binary size are negligible.

HTMLElement also derives from StyledElement so we could do the same here too.

&gt; I think you should make the &quot;generate w/o having a custom class&quot; thing work
&gt; though, since our first pass in converting HTMLElementFactory will use that.

It should work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86363</commentid>
    <comment_count>13</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-07-18 12:58:49 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 22341 [edit])
&gt; xblCustomMappings shouldn&apos;t be needed.  HTML will need this too.  This should
&gt; just be a property of the tag in the .in file.
&gt; 
&gt; Also, I don&apos;t think you need a comment about &lt;div&gt; in the XBLElement header. 
&gt; XBLElements probably want to be StyledElements anyway.  I mean, it&apos;s also
&gt; possible to just create an empty XBLDivElement, despite hyatt&apos;s suggestions to
&gt; the contrary.  The cost in terms of code and binary size are negligible.
&gt; 

XBLElements should not be StyledElements.  XBL is not a language that responds to inline style or to the class attribute, so you would create bugs by inheriting from StyledElement.  I will double-check this with Hixie, but I&apos;m pretty sure the XBL div does not support class or style attributes.
 
I also disagree with making XBLDivElement.  There is absolutely no reason to need that class.  Why generate it?  We should not make classes for elements that don&apos;t need them.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86369</commentid>
    <comment_count>14</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2008-07-18 13:56:17 -0700</bug_when>
    <thetext>Ok, the &lt;div&gt; element does support class according to the spec (but no mention is made of style).  Other XBL elements do not.   This makes the hierarchy weird.  It means XBLDivElement might need to derive from StyledElement while the other XBLElement don&apos;t.

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86393</commentid>
    <comment_count>15</comment_count>
      <attachid>22378</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-18 15:52:42 -0700</bug_when>
    <thetext>Created attachment 22378
Updated patch: make XBLDivElement inherits from StyledElement</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86653</commentid>
    <comment_count>16</comment_count>
      <attachid>22378</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-22 08:35:03 -0700</bug_when>
    <thetext>Comment on attachment 22378
Updated patch: make XBLDivElement inherits from StyledElement

Seems like either all XBLElements should be StyledElements, or you&apos;ll need a StyledXBLElement to inherit from.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86683</commentid>
    <comment_count>17</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-22 15:44:32 -0700</bug_when>
    <thetext>As discussed on IRC, even if it may lead to bugs we will simplify the hierarchy by having XBLElement inherit from StyledElement (without creating an XBLDivElement class).
It is ok for a first-pass and David Hyatt pointed that we should make StyledElement a mix-in to solve this issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86685</commentid>
    <comment_count>18</comment_count>
      <attachid>22436</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-22 15:54:19 -0700</bug_when>
    <thetext>Created attachment 22436
Repost &quot;Patch updated with Eric&apos;s comments&quot; (matches the latest discussion)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86758</commentid>
    <comment_count>19</comment_count>
      <attachid>22436</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-07-23 13:16:01 -0700</bug_when>
    <thetext>Comment on attachment 22436
Repost &quot;Patch updated with Eric&apos;s comments&quot; (matches the latest discussion)

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>86849</commentid>
    <comment_count>20</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2008-07-24 07:35:40 -0700</bug_when>
    <thetext>Filed bug 20159: &quot;[XBL] XBLElement inheritance issue&quot; for the issue we mentioned.

Committed the patch in r35325.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22262</attachid>
            <date>2008-07-13 16:01:47 -0700</date>
            <delta_ts>2008-07-16 04:55:24 -0700</delta_ts>
            <desc>Add &lt;binding&gt;, &lt;template&gt;, &lt;div&gt; and &lt;content&gt; stubs</desc>
            <filename>XBLBindingHierarchy.patch</filename>
            <type>text/plain</type>
            <size>21161</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMDgtMDctMTMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQnVnIDIwMDI5OiBbWEJMXSBBZGQgbW9yZSB0YWdzCisKKyAgICAgICAgQWRkIDxiaW5k
aW5nPiAtPiA8dGVtcGxhdGU+IC0+IDxjb250ZW50PiAmIDxkaXY+CisgICAgICAgIGhpZXJhcmNo
eS4gSXQgaXMgYSBzdHViIGhpZXJhcmNoeSBmb3IgdGhlIG1vbWVudC4KKworICAgICAgICBUaGVz
ZSBub2RlcyBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhIHNpbXBsZSBYQkwgZXhhbXBsZQorICAgICAg
ICBydW5uaW5nLgorICAgICAgICAKKyAgICAgICAgWEJMRWxlbWVudCBpbmhlcml0cyBmcm9tIFN0
eWxlZEVsZW1lbnQgYXMgWEJMRGl2RWxlbWVudAorICAgICAgICBpcyBhIHBsYWNlaG9sZGVyIGZv
ciBDU1Mgc3R5bGUgaW5mb3JtYXRpb24uCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2o6CisgICAgICAgICogeGJsL1hCTEJpbmRpbmdFbGVtZW50Lmg6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6WEJMQmluZGluZ0VsZW1lbnQ6OlhCTEJpbmRpbmdFbGVtZW50
KToKKyAgICAgICAgKiB4YmwvWEJMQ29udGVudEVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpYQkxDb250ZW50RWxlbWVudDo6WEJMQ29udGVudEVsZW1lbnQpOgorICAgICAgICAq
IHhibC9YQkxEaXZFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WEJMRGl2RWxl
bWVudDo6WEJMRGl2RWxlbWVudCk6CisgICAgICAgICogeGJsL1hCTEVsZW1lbnQuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlhCTEVsZW1lbnQ6OlhCTEVsZW1lbnQpOgorICAgICAgICAqIHhibC9YQkxU
ZW1wbGF0ZUVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYQkxUZW1wbGF0ZUVs
ZW1lbnQ6OlhCTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAgICogeGJsL3hibHRhZ3MuaW46CisK
IDIwMDgtMDctMDcgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYy4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0xODI0LDYgKzE4MjQs
MTAgQEAKIAkJOTU5NjlCNDkwREQ4RDIxQjAwRjY1M0VFIC8qIEphdmFTY3JpcHRQcm9maWxlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OTY5QjQ1
MEREOEQyMUIwMEY2NTNFRSAvKiBKYXZhU2NyaXB0UHJvZmlsZS5jcHAgKi87IH07CiAJCTk1OTY5
QjRBMEREOEQyMUIwMEY2NTNFRSAvKiBKYXZhU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU5NjlCNDYwREQ4RDIxQjAwRjY1M0VF
IC8qIEphdmFTY3JpcHRQcm9maWxlLmggKi87IH07CiAJCUExMTcyRDZFMEUwQzUzOUUwMDE3NUM4
OCAvKiBYQkxEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTExNzJENkQwRTBDNTM5RTAwMTc1Qzg4IC8qIFhCTERvY3VtZW50LmggKi87IH07
CisJCUExQTJDNUMzMEUyMjdGQTQwMEI5NEUxRiAvKiBYQkxUZW1wbGF0ZUVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQTJDNUMyMEUyMjdG
QTQwMEI5NEUxRiAvKiBYQkxUZW1wbGF0ZUVsZW1lbnQuaCAqLzsgfTsKKwkJQTFBMkM1QzcwRTIy
N0ZCMjAwQjk0RTFGIC8qIFhCTEJpbmRpbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUEyQzVDNDBFMjI3RkIyMDBCOTRFMUYgLyogWEJM
QmluZGluZ0VsZW1lbnQuaCAqLzsgfTsKKwkJQTFBMkM1QzgwRTIyN0ZCMjAwQjk0RTFGIC8qIFhC
TENvbnRlbnRFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMUEyQzVDNTBFMjI3RkIyMDBCOTRFMUYgLyogWEJMQ29udGVudEVsZW1lbnQuaCAq
LzsgfTsKKwkJQTFBMkM1QzkwRTIyN0ZCMjAwQjk0RTFGIC8qIFhCTERpdkVsZW1lbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQTJDNUM2MEUyMjdG
QjIwMEI5NEUxRiAvKiBYQkxEaXZFbGVtZW50LmggKi87IH07CiAJCUE3MTg3NjBFMEIyQTEyMDEw
MEExNkVDRSAvKiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxODc4
OTAwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNF
IC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovOyB9OwogCQlBNzM1MkMxOTBCMUJCODlEMDBBOTg2
RDAgLyogUmVuZGVyU1ZHQmxvY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQTczNTJDMTcwQjFCQjg5RDAwQTk4NkQwIC8qIFJlbmRlclNWR0Jsb2Nr
LmNwcCAqLzsgfTsKQEAgLTQwMzksNyArNDA0Myw2IEBACiAJCUVERUM5ODAzMEFFRDdFMTcwMDU5
MTM3RiAvKiBXZWJDb3JlUHJlZml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFREVDOTgwMjBBRUQ3RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZpeC5o
ICovOyB9OwogCQlGOTE2QzQ4RDBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gRjkxNkM0OEIwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50LmNwcCAqLzsgfTsKIAkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGOTE2QzQ4QzBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaCAqLzsgfTsKLQkJRjlGMEVEN0EwREI1MENBMjAwRDE2REI5IC8qIFhN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRjlGMEVENzcwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudC5oICovOyB9OwogCQlGOUM2NzU1RjBERUM3NkE1MDA4RDBDMkYgLyog
WEJMRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjlDNjc1NUIwREVDNzZBNTAwOEQwQzJGIC8qIFhCTEVsZW1lbnQuaCAqLzsgfTsKIAkJRjlD
Njc1NjEwREVDNzZBNTAwOEQwQzJGIC8qIFhCTFhCTEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjlDNjc1NUQwREVDNzZBNTAwOEQwQzJG
IC8qIFhCTFhCTEVsZW1lbnQuY3BwICovOyB9OwogCQlGOUM2NzU2MjBERUM3NkE1MDA4RDBDMkYg
LyogWEJMWEJMRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjlDNjc1NUUwREVDNzZBNTAwOEQwQzJGIC8qIFhCTFhCTEVsZW1lbnQuaCAqLzsg
fTsKQEAgLTQwNDcsNiArNDA1MCw3IEBACiAJCUY5QzY3NjBCMERFQzc5MDMwMDhEMEMyRiAvKiBY
QkxOYW1lcy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBGOUM2NzYwOTBERUM3OTAzMDA4RDBDMkYgLyogWEJMTmFtZXMuY3BwICovOyB9OwogCQlGOUM2
NzYwRDBERUM3RDRDMDA4RDBDMkYgLyogWEJMRWxlbWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5QzY3NjBDMERFQzdENEMwMDhEMEMy
RiAvKiBYQkxFbGVtZW50RmFjdG9yeS5oICovOyB9OwogCQlGOUM2NzYwRjBERUM3RDdBMDA4RDBD
MkYgLyogWEJMTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY5QzY3NjBFMERFQzdEN0EwMDhEMEMyRiAvKiBYQkxOYW1lcy5oICovOyB9OworCQlG
OUYwRUQ3QTBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUYwRUQ3NzBE
QjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07CiAv
KiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQ29udGFpbmVySXRl
bVByb3h5IHNlY3Rpb24gKi8KQEAgLTYyOTMsNiArNjI5NywxMCBAQAogCQk5NTk2OUI0NTBERDhE
MjFCMDBGNjUzRUUgLyogSmF2YVNjcmlwdFByb2ZpbGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSmF2YVNjcmlwdFByb2ZpbGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5NTk2OUI0NjBERDhEMjFCMDBGNjUzRUUgLyogSmF2YVNjcmlwdFByb2Zp
bGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlwdFByb2ZpbGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzJENkQwRTBDNTM5RTAwMTc1Qzg4
IC8qIFhCTERvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhCTERv
Y3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQTJDNUMyMEUyMjdGQTQw
MEI5NEUxRiAvKiBYQkxUZW1wbGF0ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gWEJMVGVtcGxhdGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUExQTJDNUM0MEUyMjdGQjIwMEI5NEUxRiAvKiBYQkxCaW5kaW5nRWxlbWVudC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYQkxCaW5kaW5nRWxlbWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlBMUEyQzVDNTBFMjI3RkIyMDBCOTRFMUYgLyogWEJMQ29u
dGVudEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWEJMQ29udGVu
dEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTFBMkM1QzYwRTIyN0ZC
MjAwQjk0RTFGIC8qIFhCTERpdkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gWEJMRGl2RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4
NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlvbnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MzUyQzE3MEIxQkI4OUQwMEE5ODZEMCAv
KiBSZW5kZXJTVkdCbG9jay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gUmVuZGVyU1ZHQmxvY2suY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODQ2
NSwxNiArODQ3MywxNiBAQAogCQlGODIxNjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlw
dENvcmUuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IHBhdGggPSBKYXZhU2NyaXB0Q29yZS5mcmFtZXdv
cms7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCUY5MTZDNDhCMERCNTEw
RjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOTE2QzQ4QzBEQjUxMEY4MDA3
NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY5RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlGOUYwRUQ3ODBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRkU0OUVGOTcwREM1MTQ2
MjAwNDI2NkUxIC8qIERhc2hib2FyZFN1cHBvcnRDU1NQcm9wZXJ0eU5hbWVzLmluICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IERhc2hib2FyZFN1cHBvcnRDU1NQcm9wZXJ0eU5hbWVzLmluOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOUM2NzU1QjBERUM3NkE1MDA4RDBDMkYgLyogWEJM
RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWEJMRWxlbWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOUM2NzU1RDBERUM3NkE1MDA4RDBDMkYg
LyogWEJMWEJMRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gWEJMWEJMRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY5QzY3
NTVFMERFQzc2QTUwMDhEMEMyRiAvKiBYQkxYQkxFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBYQkxYQkxFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07Ci0JCUY5QzY3NjA4MERFQzc5MDMwMDhEMEMyRiAvKiBYQkxFbGVtZW50RmFjdG9yeS5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gWEJMRWxlbWVudEZhY3Rvcnku
Y3BwOyBwYXRoID0gWEJMRWxlbWVudEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQlGOUM2NzYwQzBERUM3RDRDMDA4RDBDMkYgLyogWEJMRWxlbWVudEZhY3RvcnkuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhCTEVsZW1lbnRGYWN0b3J5Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY5QzY3NjA4MERFQzc5MDMwMDhEMEMyRiAvKiBY
QkxFbGVtZW50RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gWEJMRWxlbWVudEZhY3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
OUM2NzYwOTBERUM3OTAzMDA4RDBDMkYgLyogWEJMTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhCTE5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRjlDNjc2MEMwREVDN0Q0QzAwOEQwQzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYQkxFbGVtZW50RmFjdG9yeS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOUM2NzYwRTBERUM3RDdBMDA4RDBDMkYgLyog
WEJMTmFtZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhCTE5hbWVzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY5RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAv
KiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlGOUYwRUQ3ODBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkU0OUVGOTcw
REM1MTQ2MjAwNDI2NkUxIC8qIERhc2hib2FyZFN1cHBvcnRDU1NQcm9wZXJ0eU5hbWVzLmluICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IERhc2hib2FyZFN1cHBvcnRDU1NQcm9wZXJ0eU5hbWVzLmlu
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2Vj
dGlvbiAqLwogCiAvKiBCZWdpbiBQQlhGcmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBA
IC0xMzI5Myw2ICsxMzMwMSwxMCBAQAogCQlGOUM2NzU1QTBERUM3NkE1MDA4RDBDMkYgLyogeGJs
ICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBMUEyQzVD
NDBFMjI3RkIyMDBCOTRFMUYgLyogWEJMQmluZGluZ0VsZW1lbnQuaCAqLywKKwkJCQlBMUEyQzVD
NTBFMjI3RkIyMDBCOTRFMUYgLyogWEJMQ29udGVudEVsZW1lbnQuaCAqLywKKwkJCQlBMUEyQzVD
NjBFMjI3RkIyMDBCOTRFMUYgLyogWEJMRGl2RWxlbWVudC5oICovLAorCQkJCUExQTJDNUMyMEUy
MjdGQTQwMEI5NEUxRiAvKiBYQkxUZW1wbGF0ZUVsZW1lbnQuaCAqLywKIAkJCQlBMTE3MkQ2RDBF
MEM1MzlFMDAxNzVDODggLyogWEJMRG9jdW1lbnQuaCAqLywKIAkJCQlGOUM2NzU1QjBERUM3NkE1
MDA4RDBDMkYgLyogWEJMRWxlbWVudC5oICovLAogCQkJCUY5QzY3NTVEMERFQzc2QTUwMDhEMEMy
RiAvKiBYQkxYQkxFbGVtZW50LmNwcCAqLywKQEAgLTE1MzA4LDYgKzE1MzIwLDEwIEBACiAJCQkJ
RjlDNjc2MEQwREVDN0Q0QzAwOEQwQzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlGOUM2NzYwRjBERUM3RDdBMDA4RDBDMkYgLyogWEJMTmFtZXMuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUExMTcyRDZFMEUwQzUzOUUwMDE3NUM4OCAvKiBYQkxEb2N1bWVudC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQTFBMkM1QzMwRTIyN0ZBNDAwQjk0RTFGIC8qIFhCTFRlbXBsYXRl
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTFBMkM1QzcwRTIyN0ZCMjAwQjk0RTFGIC8q
IFhCTEJpbmRpbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBMUEyQzVDODBFMjI3RkIy
MDBCOTRFMUYgLyogWEJMQ29udGVudEVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUExQTJD
NUM5MEUyMjdGQjIwMEI5NEUxRiAvKiBYQkxEaXZFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJ
CSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5k
ZXg6IFdlYkNvcmUveGJsL1hCTEJpbmRpbmdFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS94YmwvWEJMQmluZGluZ0VsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUveGJsL1hC
TEJpbmRpbmdFbGVtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDkgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENv
cHlyaWdodCAoQykgSnVsaWVuIENoYWZmcmFpeCA8amNoYWZmcmFpeEB3ZWJraXQub3JnPi4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBU
SEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgWEJMQmluZGluZ0VsZW1lbnRfaAor
I2RlZmluZSBYQkxCaW5kaW5nRWxlbWVudF9oCisKKyNpZiBFTkFCTEUoWEJMKQorCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWEJMRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKKyAgICBjbGFzcyBYQkxCaW5kaW5nRWxlbWVudCA6IHB1YmxpYyBYQkxFbGVtZW50IHsK
KyAgICBwdWJsaWM6CisgICAgICAgIFhCTEJpbmRpbmdFbGVtZW50KGNvbnN0IFdlYkNvcmU6OlF1
YWxpZmllZE5hbWUmIHFOYW1lLCBXZWJDb3JlOjpEb2N1bWVudCogZG9jKQorICAgICAgICAgICAg
OiBYQkxFbGVtZW50KHFOYW1lLCBkb2MpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgIH07CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShYQkwpCisKKyNlbmRp
ZiAvLyBYQkxCaW5kaW5nRWxlbWVudF9oCkluZGV4OiBXZWJDb3JlL3hibC9YQkxDb250ZW50RWxl
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveGJsL1hCTENvbnRlbnRFbGVtZW50LmgJKHJl
dmlzaW9uIDApCisrKyBXZWJDb3JlL3hibC9YQkxDb250ZW50RWxlbWVudC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIEp1bGllbiBDaGFmZnJhaXgg
PGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4uICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4g
YGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBP
UgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisj
aWZuZGVmIFhCTENvbnRlbnRFbGVtZW50X2gKKyNkZWZpbmUgWEJMQ29udGVudEVsZW1lbnRfaAor
CisjaWYgRU5BQkxFKFhCTCkKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhCTEVs
ZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgWEJMQ29udGVudEVs
ZW1lbnQgOiBwdWJsaWMgWEJMRWxlbWVudCB7CisgICAgcHVibGljOgorICAgICAgICBYQkxDb250
ZW50RWxlbWVudChjb25zdCBXZWJDb3JlOjpRdWFsaWZpZWROYW1lJiBxTmFtZSwgV2ViQ29yZTo6
RG9jdW1lbnQqIGRvYykKKyAgICAgICAgICAgIDogWEJMRWxlbWVudChxTmFtZSwgZG9jKQorICAg
ICAgICB7CisgICAgICAgIH0KKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoWEJMKQorCisjZW5kaWYgLy8gWEJMQ29udGVudEVsZW1lbnRfaApJbmRl
eDogV2ViQ29yZS94YmwvWEJMRGl2RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveGJs
L1hCTERpdkVsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFdlYkNvcmUveGJsL1hCTERpdkVsZW1l
bnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAwOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSBK
dWxpZW4gQ2hhZmZyYWl4IDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+LiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
Q09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4gCisgKi8KKworI2lmbmRlZiBYQkxEaXZFbGVtZW50X2gKKyNkZWZpbmUgWEJMRGl2RWxl
bWVudF9oCisKKyNpZiBFTkFCTEUoWEJMKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiWEJMRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBYQkxE
aXZFbGVtZW50IDogcHVibGljIFhCTEVsZW1lbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgWEJM
RGl2RWxlbWVudChjb25zdCBXZWJDb3JlOjpRdWFsaWZpZWROYW1lJiBxTmFtZSwgV2ViQ29yZTo6
RG9jdW1lbnQqIGRvYykKKyAgICAgICAgICAgIDogWEJMRWxlbWVudChxTmFtZSwgZG9jKQorICAg
ICAgICB7CisgICAgICAgIH0KKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoWEJMKQorCisjZW5kaWYgLy8gWEJMRGl2RWxlbWVudF9oCkluZGV4OiBX
ZWJDb3JlL3hibC9YQkxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94YmwvWEJMRWxl
bWVudC5oCShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNvcmUveGJsL1hCTEVsZW1lbnQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjksMTQgKzI5LDE1IEBACiAjaWYgRU5BQkxFKFhCTCkKIAogI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJTdHlsZWRFbGVt
ZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFhCTEVsZW1lbnQgOiBw
dWJsaWMgRWxlbWVudCB7CisgICAgLy8gRGVyaXZlcyBmcm9tIFN0eWxlZEVsZW1lbnQgZm9yIDxk
aXY+LgorICAgIGNsYXNzIFhCTEVsZW1lbnQgOiBwdWJsaWMgU3R5bGVkRWxlbWVudCB7CiAgICAg
cHVibGljOgogICAgICAgICBYQkxFbGVtZW50KGNvbnN0IFdlYkNvcmU6OlF1YWxpZmllZE5hbWUm
IHFOYW1lLCBXZWJDb3JlOjpEb2N1bWVudCogZG9jKQotICAgICAgICAgICAgOiBFbGVtZW50KHFO
YW1lLCBkb2MpCisgICAgICAgICAgICA6IFN0eWxlZEVsZW1lbnQocU5hbWUsIGRvYykKICAgICAg
ICAgewogICAgICAgICB9CiAKSW5kZXg6IFdlYkNvcmUveGJsL1hCTFRlbXBsYXRlRWxlbWVudC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUveGJsL1hCTFRlbXBsYXRlRWxlbWVudC5oCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS94YmwvWEJMVGVtcGxhdGVFbGVtZW50LmgJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEsNDkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgSnVsaWVuIENoYWZmcmFpeCA8amNo
YWZmcmFpeEB3ZWJraXQub3JnPi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFT
IElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisg
KiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsg
T1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5k
ZWYgWEJMVGVtcGxhdGVFbGVtZW50X2gKKyNkZWZpbmUgWEJMVGVtcGxhdGVFbGVtZW50X2gKKwor
I2lmIEVOQUJMRShYQkwpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYQkxFbGVt
ZW50LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIFhCTFRlbXBsYXRlRWxl
bWVudCA6IHB1YmxpYyBYQkxFbGVtZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIFhCTFRlbXBs
YXRlRWxlbWVudChjb25zdCBXZWJDb3JlOjpRdWFsaWZpZWROYW1lJiBxTmFtZSwgV2ViQ29yZTo6
RG9jdW1lbnQqIGRvYykKKyAgICAgICAgICAgIDogWEJMRWxlbWVudChxTmFtZSwgZG9jKQorICAg
ICAgICB7CisgICAgICAgIH0KKyAgICB9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoWEJMKQorCisjZW5kaWYgLy8gWEJMVGVtcGxhdGVFbGVtZW50X2gKSW5k
ZXg6IFdlYkNvcmUveGJsL3hibHRhZ3MuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94YmwveGJs
dGFncy5pbgkocmV2aXNpb24gMzUxNTQpCisrKyBXZWJDb3JlL3hibC94Ymx0YWdzLmluCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsNyBAQAogPHRhZ3MgbmFtZXNwYWNlPSJYQkwiIGNwcE5hbWVz
cGFjZT0iV2ViQ29yZSIgbmFtZXNwYWNlVVJJPSJodHRwOi8vd3d3LnczLm9yZy9ucy94YmwiIGdl
bmVyYXRlRmFjdG9yeT0iMSIgZ3VhcmRGYWN0b3J5V2l0aD0iRU5BQkxFKFhCTCkiPgorPGJpbmRp
bmcvPgorPGRpdi8+Cis8Y29udGVudC8+Cis8dGVtcGxhdGUvPgogPHhibCB1cHBlckNhc2U9IlhC
TCIvPgogPC90YWdzPgo=
</data>
<flag name="review"
          id="9797"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22304</attachid>
            <date>2008-07-16 04:55:24 -0700</date>
            <delta_ts>2008-07-17 10:21:56 -0700</delta_ts>
            <desc>Updated patch: add the tags and only the useful classes</desc>
            <filename>XBLBindingHierarchy-updated.patch</filename>
            <type>text/plain</type>
            <size>18253</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTE5NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMDgtMDctMTYgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQnVnIDIwMDI5OiBbWEJMXSBBZGQgbW9yZSB0YWdzCisKKyAgICAgICAgQWRkIDxiaW5k
aW5nPiBhbmQgPHRlbXBsYXRlPiBjbGFzc2VzLgorICAgICAgICBBZGQgPGRpdj4gYW5kIDxjb250
ZW50PiB0YWdzLgorCisgICAgICAgIFRoZSB0d28gY2xhc3NlcyBhcmUgc3R1YnMgZm9yIHRoZSBt
b21lbnQuCisKKyAgICAgICAgVGhlc2UgdGFncyBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhIHNpbXBs
ZSBYQkwgZXhhbXBsZQorICAgICAgICBydW5uaW5nLgorICAgICAgICAKKyAgICAgICAgWEJMRWxl
bWVudCBub3cgaW5oZXJpdHMgZnJvbSBTdHlsZWRFbGVtZW50IGFzIDxkaXY+CisgICAgICAgIGlz
IGEgcGxhY2Vob2xkZXIgZm9yIENTUyBzdHlsZSBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vbWFrZV9uYW1l
cy5wbDogQWRkZWQgc29tZSB0d2Vha3MgdG8gWEJMRWxlbWVudEZhY3RvcnkKKyAgICAgICAgZ2Vu
ZXJhdGlvbiB0byBnZW5lcmF0ZSBzb21lIFhCTE5hbWVzIHRhZ3MgYnV0IGF2b2lkIHVzaW5nCisg
ICAgICAgIGFuIGVtcHR5IGNsYXNzZXMuCisKKyAgICAgICAgKiB4YmwvWEJMQmluZGluZ0VsZW1l
bnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYQkxCaW5kaW5nRWxlbWVudDo6WEJMQmlu
ZGluZ0VsZW1lbnQpOgorICAgICAgICAqIHhibC9YQkxFbGVtZW50Lmg6IE5vdyBpbmhlcml0cyBm
cm9tIFN0eWxlZEVsZW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpYQkxFbGVtZW50OjpYQkxFbGVt
ZW50KToKKyAgICAgICAgKiB4YmwvWEJMVGVtcGxhdGVFbGVtZW50Lmg6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6WEJMVGVtcGxhdGVFbGVtZW50OjpYQkxUZW1wbGF0ZUVsZW1lbnQpOgorICAg
ICAgICAqIHhibC94Ymx0YWdzLmluOiBBZGRlZCB0YWdzLgorCiAyMDA4LTA3LTA3ICBKdWxpZW4g
Q2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMuCkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
cmV2aXNpb24gMzUxNTQpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTgyNCw2ICsxODI0LDggQEAKIAkJOTU5NjlCNDkwREQ4
RDIxQjAwRjY1M0VFIC8qIEphdmFTY3JpcHRQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OTY5QjQ1MEREOEQyMUIwMEY2NTNFRSAvKiBK
YXZhU2NyaXB0UHJvZmlsZS5jcHAgKi87IH07CiAJCTk1OTY5QjRBMEREOEQyMUIwMEY2NTNFRSAv
KiBKYXZhU2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTU5NjlCNDYwREQ4RDIxQjAwRjY1M0VFIC8qIEphdmFTY3JpcHRQcm9maWxl
LmggKi87IH07CiAJCUExMTcyRDZFMEUwQzUzOUUwMDE3NUM4OCAvKiBYQkxEb2N1bWVudC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzJENkQwRTBD
NTM5RTAwMTc1Qzg4IC8qIFhCTERvY3VtZW50LmggKi87IH07CisJCUExQTJDNUMzMEUyMjdGQTQw
MEI5NEUxRiAvKiBYQkxUZW1wbGF0ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQTJDNUMyMEUyMjdGQTQwMEI5NEUxRiAvKiBYQkxUZW1w
bGF0ZUVsZW1lbnQuaCAqLzsgfTsKKwkJQTFBMkM1QzcwRTIyN0ZCMjAwQjk0RTFGIC8qIFhCTEJp
bmRpbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMUEyQzVDNDBFMjI3RkIyMDBCOTRFMUYgLyogWEJMQmluZGluZ0VsZW1lbnQuaCAqLzsg
fTsKIAkJQTcxODc2MEUwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBB
MTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQlBNzE4Nzg5MDBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xs
ZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
NzE4Nzg4RjBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07CiAJ
CUE3MzUyQzE5MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzM1MkMxNzBCMUJCODlEMDBB
OTg2RDAgLyogUmVuZGVyU1ZHQmxvY2suY3BwICovOyB9OwpAQCAtNDAzOSw3ICs0MDQxLDYgQEAK
IAkJRURFQzk4MDMwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVERUM5ODAyMEFFRDdFMTcwMDU5
MTM3RiAvKiBXZWJDb3JlUHJlZml4LmggKi87IH07CiAJCUY5MTZDNDhEMERCNTEwRjgwMDc2Q0Q4
MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOTE2QzQ4QjBEQjUxMEY4MDA3NkNEODMgLyog
SlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwICovOyB9OwogCQlGOTE2QzQ4RTBEQjUx
MEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5MTZDNDhDMERCNTEwRjgwMDc2
Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICovOyB9OwotCQlGOUYwRUQ3
QTBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUYwRUQ3NzBEQjUwQ0Ey
MDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07CiAJCUY5QzY3
NTVGMERFQzc2QTUwMDhEMEMyRiAvKiBYQkxFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUM2NzU1QjBERUM3NkE1MDA4RDBDMkYgLyogWEJM
RWxlbWVudC5oICovOyB9OwogCQlGOUM2NzU2MTBERUM3NkE1MDA4RDBDMkYgLyogWEJMWEJMRWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
OUM2NzU1RDBERUM3NkE1MDA4RDBDMkYgLyogWEJMWEJMRWxlbWVudC5jcHAgKi87IH07CiAJCUY5
QzY3NTYyMERFQzc2QTUwMDhEMEMyRiAvKiBYQkxYQkxFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUM2NzU1RTBERUM3NkE1MDA4RDBDMkYg
LyogWEJMWEJMRWxlbWVudC5oICovOyB9OwpAQCAtNDA0Nyw2ICs0MDQ4LDcgQEAKIAkJRjlDNjc2
MEIwREVDNzkwMzAwOEQwQzJGIC8qIFhCTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5QzY3NjA5MERFQzc5MDMwMDhEMEMyRiAvKiBYQkxO
YW1lcy5jcHAgKi87IH07CiAJCUY5QzY3NjBEMERFQzdENEMwMDhEMEMyRiAvKiBYQkxFbGVtZW50
RmFjdG9yeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjlDNjc2MEMwREVDN0Q0QzAwOEQwQzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5LmggKi87IH07CiAJ
CUY5QzY3NjBGMERFQzdEN0EwMDhEMEMyRiAvKiBYQkxOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjlDNjc2MEUwREVDN0Q3QTAwOEQwQzJGIC8q
IFhCTE5hbWVzLmggKi87IH07CisJCUY5RjBFRDdBMERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY5RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFBy
b2dyZXNzRXZlbnQuaCAqLzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAv
KiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtNjI5Myw2ICs2Mjk1
LDggQEAKIAkJOTU5NjlCNDUwREQ4RDIxQjAwRjY1M0VFIC8qIEphdmFTY3JpcHRQcm9maWxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEphdmFTY3JpcHRQcm9maWxl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU5NjlCNDYwREQ4RDIxQjAwRjY1
M0VFIC8qIEphdmFTY3JpcHRQcm9maWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEphdmFTY3JpcHRQcm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEx
MTcyRDZEMEUwQzUzOUUwMDE3NUM4OCAvKiBYQkxEb2N1bWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBYQkxEb2N1bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBMUEyQzVDMjBFMjI3RkE0MDBCOTRFMUYgLyogWEJMVGVtcGxhdGVFbGVtZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhCTFRlbXBsYXRlRWxlbWVudC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMUEyQzVDNDBFMjI3RkIyMDBCOTRFMUYgLyogWEJM
QmluZGluZ0VsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWEJMQmlu
ZGluZ0VsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc2MEQwQjJB
MTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERyYWdBY3Rpb25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3
ODhGMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAgLyogUmVuZGVy
U1ZHQmxvY2suY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRl
clNWR0Jsb2NrLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0NjUsMTYgKzg0
NjksMTYgQEAKIAkJRjgyMTYyOTkwMjlGNEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRDb3JlLmZy
YW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHdyYXBwZXIuZnJhbWV3b3JrOyBwYXRoID0gSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrOyBzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOyB9OwogCQlGOTE2QzQ4QjBEQjUxMEY4MDA3NkNE
ODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjkxNkM0OEMwREI1MTBGODAwNzZDRDgzIC8q
IEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwotCQlGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
RjlGMEVENzgwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUZFNDlFRjk3MERDNTE0NjIwMDQyNjZF
MSAvKiBEYXNoYm9hcmRTdXBwb3J0Q1NTUHJvcGVydHlOYW1lcy5pbiAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBEYXNoYm9hcmRTdXBwb3J0Q1NTUHJvcGVydHlOYW1lcy5pbjsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRjlDNjc1NUIwREVDNzZBNTAwOEQwQzJGIC8qIFhCTEVsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhCTEVsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjlDNjc1NUQwREVDNzZBNTAwOEQwQzJGIC8qIFhCTFhC
TEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhCTFhC
TEVsZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOUM2NzU1RTBERUM3
NkE1MDA4RDBDMkYgLyogWEJMWEJMRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gWEJMWEJMRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlG
OUM2NzYwODBERUM3OTAzMDA4RDBDMkYgLyogWEJMRWxlbWVudEZhY3RvcnkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFhCTEVsZW1lbnRGYWN0b3J5LmNwcDsgcGF0
aCA9IFhCTEVsZW1lbnRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJ
RjlDNjc2MEMwREVDN0Q0QzAwOEQwQzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYQkxFbGVtZW50RmFjdG9yeS5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlGOUM2NzYwODBERUM3OTAzMDA4RDBDMkYgLyogWEJMRWxlbWVu
dEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhCTEVs
ZW1lbnRGYWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjlDNjc2MDkw
REVDNzkwMzAwOEQwQzJGIC8qIFhCTE5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBYQkxOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUY5QzY3NjBDMERFQzdENEMwMDhEMEMyRiAvKiBYQkxFbGVtZW50RmFjdG9yeS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWEJMRWxlbWVudEZhY3RvcnkuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjlDNjc2MEUwREVDN0Q3QTAwOEQwQzJGIC8qIFhCTE5hbWVz
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYQkxOYW1lcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRjlGMEVENzgwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFNDlFRjk3MERDNTE0NjIw
MDQyNjZFMSAvKiBEYXNoYm9hcmRTdXBwb3J0Q1NTUHJvcGVydHlOYW1lcy5pbiAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBEYXNoYm9hcmRTdXBwb3J0Q1NTUHJvcGVydHlOYW1lcy5pbjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8K
IAogLyogQmVnaW4gUEJYRnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTMyOTMs
NiArMTMyOTcsOCBAQAogCQlGOUM2NzU1QTBERUM3NkE1MDA4RDBDMkYgLyogeGJsICovID0gewog
CQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBMUEyQzVDNDBFMjI3RkIy
MDBCOTRFMUYgLyogWEJMQmluZGluZ0VsZW1lbnQuaCAqLywKKwkJCQlBMUEyQzVDMjBFMjI3RkE0
MDBCOTRFMUYgLyogWEJMVGVtcGxhdGVFbGVtZW50LmggKi8sCiAJCQkJQTExNzJENkQwRTBDNTM5
RTAwMTc1Qzg4IC8qIFhCTERvY3VtZW50LmggKi8sCiAJCQkJRjlDNjc1NUIwREVDNzZBNTAwOEQw
QzJGIC8qIFhCTEVsZW1lbnQuaCAqLywKIAkJCQlGOUM2NzU1RDBERUM3NkE1MDA4RDBDMkYgLyog
WEJMWEJMRWxlbWVudC5jcHAgKi8sCkBAIC0xNTMwOCw2ICsxNTMxNCw4IEBACiAJCQkJRjlDNjc2
MEQwREVDN0Q0QzAwOEQwQzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5LmggaW4gSGVhZGVycyAqLywK
IAkJCQlGOUM2NzYwRjBERUM3RDdBMDA4RDBDMkYgLyogWEJMTmFtZXMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUExMTcyRDZFMEUwQzUzOUUwMDE3NUM4OCAvKiBYQkxEb2N1bWVudC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQTFBMkM1QzMwRTIyN0ZBNDAwQjk0RTFGIC8qIFhCTFRlbXBsYXRlRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTFBMkM1QzcwRTIyN0ZCMjAwQjk0RTFGIC8qIFhCTEJp
bmRpbmdFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95
bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvZG9tL21ha2VfbmFt
ZXMucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAkocmV2aXNpb24g
MzUxNTQpCisrKyBXZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC00
NSw2ICs0NSw3IEBAIG15ICRleHRyYURlZmluZXMgPSAwOwogbXkgJHByZXByb2Nlc3NvciA9ICIv
dXNyL2Jpbi9nY2MgLUUgLVAgLXggYysrIjsKIG15ICVzdmdDdXN0b21NYXBwaW5ncyA9ICgpOwog
bXkgJWh0bWxDdXN0b21NYXBwaW5ncyA9ICgpOworbXkgJXhibEN1c3RvbU1hcHBpbmdzID0gKCk7
CiAKIEdldE9wdGlvbnMoJ3RhZ3M9cycgPT4gXCR0YWdzRmlsZSwgCiAgICAgJ2F0dHJzPXMnID0+
IFwkYXR0cnNGaWxlLApAQCAtMjM2LDYgKzIzNyw5IEBAIHN1YiBwcmludENvbnN0cnVjdG9ycwog
CiAgICAgcHJpbnQgRiAiI2lmICRwYXJhbWV0ZXJzeydndWFyZEZhY3RvcnlXaXRoJ31cbiIgaWYg
JHBhcmFtZXRlcnN7J2d1YXJkRmFjdG9yeVdpdGgnfTsKICAgICBmb3IgbXkgJG5hbWUgKHNvcnQg
a2V5cyAlbmFtZXMpIHsKKyAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgYmUgYSBuZXcgcGVy
LXRhZyBwYXJhbWV0ZXIuCisgICAgICAgIG5leHQgaWYgKCRwYXJhbWV0ZXJzeyduYW1lc3BhY2Un
fSBlcSAiWEJMIiAmJiBleGlzdHMoJHhibEN1c3RvbU1hcHBpbmdzeyRuYW1lfSkpOworCiAgICAg
ICAgIG15ICR1Y05hbWUgPSAkbmFtZXN7JG5hbWV9eyJ1cHBlckNhc2UifTsKIAogICAgICAgICBw
cmludCBGICIkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50KiAke25hbWV9Q29uc3RydWN0
b3IoRG9jdW1lbnQqIGRvYywgYm9vbCBjcmVhdGVkQnlQYXJzZXIpXG4iOwpAQCAtMjUwLDYgKzI1
NCw5IEBAIHN1YiBwcmludEZ1bmN0aW9uSW5pdHMKIHsKICAgICBteSAoJEYsICRuYW1lc1JlZikg
PSBAXzsKICAgICBmb3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlJG5hbWVzUmVmKSB7CisgICAgICAg
ICMgRklYTUU6IHRoaXMgc2hvdWxkIGJlIGEgbmV3IHBlci10YWcgcGFyYW1ldGVyLgorICAgICAg
ICBuZXh0IGlmICgkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ30gZXEgIlhCTCIgJiYgZXhpc3RzKCR4
YmxDdXN0b21NYXBwaW5nc3skbmFtZX0pKTsKKyAgICAgICAgCiAgICAgICAgIHByaW50IEYgIiAg
ICBnRnVuY3Rpb25NYXAtPnNldCgke25hbWV9VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJHtuYW1l
fUNvbnN0cnVjdG9yKTtcbiI7CiAgICAgfQogfQpAQCAtNTE1LDcgKzUyMiw4IEBAIHByaW50IEYg
PDxFTkQKIEVORAogOwogCi1wcmludEVsZW1lbnRJbmNsdWRlcygkRiwgXCV0YWdzLCAwKTsKKyMg
Rm9yY2UgWEJMIGVsZW1lbnRzIG5vdCB0byBiZSBpbmNsdWRlZC4KK3ByaW50RWxlbWVudEluY2x1
ZGVzKCRGLCBcJXRhZ3MsICgkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ30gZXEgIlhCTCIpID8gMSA6
IDApOwogCiBwcmludCBGIDw8RU5ECiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTcwMyw2
ICs3MTEsOCBAQCBzdWIgaW5pdGlhbGl6ZUN1c3RvbU1hcHBpbmdzCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3ZhcicgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgJ3dicicgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htcCcgPT4g
J3ByZScpOworICAgICAgICAleGJsQ3VzdG9tTWFwcGluZ3MgPSAoJ2RpdicgPT4gJycsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAnY29udGVudCcgPT4gJycpOwogICAgIH0KIH0KIApA
QCAtNzEyLDYgKzcyMiw3IEBAIHN1YiBoYXNDdXN0b21NYXBwaW5nCiAgICAgaW5pdGlhbGl6ZUN1
c3RvbU1hcHBpbmdzKCk7CiAgICAgcmV0dXJuIDEgaWYgJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9
IGVxICJIVE1MIiAmJiBleGlzdHMoJGh0bWxDdXN0b21NYXBwaW5nc3skbmFtZX0pOwogICAgIHJl
dHVybiAxIGlmICRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfSBlcSAiU1ZHIiAmJiBleGlzdHMoJHN2
Z0N1c3RvbU1hcHBpbmdzeyRuYW1lfSk7CisgICAgcmV0dXJuIDEgaWYgJHBhcmFtZXRlcnN7J25h
bWVzcGFjZSd9IGVxICJYQkwiICYmIGV4aXN0cygkeGJsQ3VzdG9tTWFwcGluZ3N7JG5hbWV9KTsK
ICAgICByZXR1cm4gMDsKIH0KIApJbmRleDogV2ViQ29yZS94YmwvWEJMQmluZGluZ0VsZW1lbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3hibC9YQkxCaW5kaW5nRWxlbWVudC5oCShyZXZpc2lv
biAwKQorKysgV2ViQ29yZS94YmwvWEJMQmluZGluZ0VsZW1lbnQuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSBKdWxpZW4gQ2hhZmZyYWl4IDxqY2hh
ZmZyYWl4QHdlYmtpdC5vcmc+LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBYQkxCaW5kaW5nRWxlbWVudF9oCisjZGVmaW5lIFhCTEJpbmRpbmdFbGVtZW50X2gKKworI2lm
IEVOQUJMRShYQkwpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYQkxFbGVtZW50
LmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIFhCTEJpbmRpbmdFbGVtZW50
IDogcHVibGljIFhCTEVsZW1lbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgWEJMQmluZGluZ0Vs
ZW1lbnQoY29uc3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSYgcU5hbWUsIFdlYkNvcmU6OkRvY3Vt
ZW50KiBkb2MpCisgICAgICAgICAgICA6IFhCTEVsZW1lbnQocU5hbWUsIGRvYykKKyAgICAgICAg
eworICAgICAgICB9CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFhCTCkKKworI2VuZGlmIC8vIFhCTEJpbmRpbmdFbGVtZW50X2gKSW5kZXg6IFdl
YkNvcmUveGJsL1hCTEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3hibC9YQkxFbGVt
ZW50LmgJKHJldmlzaW9uIDM1MTU0KQorKysgV2ViQ29yZS94YmwvWEJMRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOSwxNCArMjksMTUgQEAKICNpZiBFTkFCTEUoWEJMKQogCiAjaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIlN0eWxlZEVsZW1l
bnQuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgWEJMRWxlbWVudCA6IHB1
YmxpYyBFbGVtZW50IHsKKyAgICAvLyBEZXJpdmVzIGZyb20gU3R5bGVkRWxlbWVudCBmb3IgPGRp
dj4uCisgICAgY2xhc3MgWEJMRWxlbWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50IHsKICAgICBw
dWJsaWM6CiAgICAgICAgIFhCTEVsZW1lbnQoY29uc3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSYg
cU5hbWUsIFdlYkNvcmU6OkRvY3VtZW50KiBkb2MpCi0gICAgICAgICAgICA6IEVsZW1lbnQocU5h
bWUsIGRvYykKKyAgICAgICAgICAgIDogU3R5bGVkRWxlbWVudChxTmFtZSwgZG9jKQogICAgICAg
ICB7CiAgICAgICAgIH0KIApJbmRleDogV2ViQ29yZS94YmwvWEJMVGVtcGxhdGVFbGVtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViQ29yZS94YmwvWEJMVGVtcGxhdGVFbGVtZW50LmgJKHJldmlzaW9u
IDApCisrKyBXZWJDb3JlL3hibC9YQkxUZW1wbGF0ZUVsZW1lbnQuaAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuICBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSBKdWxpZW4gQ2hhZmZyYWl4IDxqY2hh
ZmZyYWl4QHdlYmtpdC5vcmc+LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMg
SVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRl
ZiBYQkxUZW1wbGF0ZUVsZW1lbnRfaAorI2RlZmluZSBYQkxUZW1wbGF0ZUVsZW1lbnRfaAorCisj
aWYgRU5BQkxFKFhCTCkKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhCTEVsZW1l
bnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgWEJMVGVtcGxhdGVFbGVt
ZW50IDogcHVibGljIFhCTEVsZW1lbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgWEJMVGVtcGxh
dGVFbGVtZW50KGNvbnN0IFdlYkNvcmU6OlF1YWxpZmllZE5hbWUmIHFOYW1lLCBXZWJDb3JlOjpE
b2N1bWVudCogZG9jKQorICAgICAgICAgICAgOiBYQkxFbGVtZW50KHFOYW1lLCBkb2MpCisgICAg
ICAgIHsKKyAgICAgICAgfQorICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShYQkwpCisKKyNlbmRpZiAvLyBYQkxUZW1wbGF0ZUVsZW1lbnRfaApJbmRl
eDogV2ViQ29yZS94YmwveGJsdGFncy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3hibC94Ymx0
YWdzLmluCShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNvcmUveGJsL3hibHRhZ3MuaW4JKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSw3IEBACiA8dGFncyBuYW1lc3BhY2U9IlhCTCIgY3BwTmFtZXNw
YWNlPSJXZWJDb3JlIiBuYW1lc3BhY2VVUkk9Imh0dHA6Ly93d3cudzMub3JnL25zL3hibCIgZ2Vu
ZXJhdGVGYWN0b3J5PSIxIiBndWFyZEZhY3RvcnlXaXRoPSJFTkFCTEUoWEJMKSI+Cis8YmluZGlu
Zy8+Cis8ZGl2Lz4KKzxjb250ZW50Lz4KKzx0ZW1wbGF0ZS8+CiA8eGJsIHVwcGVyQ2FzZT0iWEJM
Ii8+CiA8L3RhZ3M+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22341</attachid>
            <date>2008-07-17 10:21:56 -0700</date>
            <delta_ts>2008-07-18 12:27:36 -0700</delta_ts>
            <desc>Updated: add &lt;binding&gt;, template&gt; and &lt;div&gt; but do not create XBLDivElement class</desc>
            <filename>XBLBindingHierarchy-updated.patch</filename>
            <type>text/plain</type>
            <size>18178</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTE5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMDgtMDctMTcgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQnVnIDIwMDI5OiBbWEJMXSBBZGQgbW9yZSB0YWdzCisKKyAgICAgICAgQWRkIDxiaW5k
aW5nPiBhbmQgPHRlbXBsYXRlPiBjbGFzc2VzLgorICAgICAgICBBZGQgPGRpdj4gdGFnLgorCisg
ICAgICAgIFRoZSB0d28gY2xhc3NlcyBhcmUgc3R1YnMgZm9yIHRoZSBtb21lbnQuCisKKyAgICAg
ICAgVGhlc2UgdGFncyBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhIHNpbXBsZSBYQkwgZXhhbXBsZQor
ICAgICAgICBydW5uaW5nLgorICAgICAgICAKKyAgICAgICAgWEJMRWxlbWVudCBub3cgaW5oZXJp
dHMgZnJvbSBTdHlsZWRFbGVtZW50IGFzIDxkaXY+CisgICAgICAgIGlzIGEgcGxhY2Vob2xkZXIg
Zm9yIENTUyBzdHlsZSBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDogQWRkZWQgc29t
ZSB0d2Vha3MgdG8gWEJMRWxlbWVudEZhY3RvcnkKKyAgICAgICAgZ2VuZXJhdGlvbiB0byBnZW5l
cmF0ZSBzb21lIFhCTE5hbWVzIHRhZ3MgYnV0IGF2b2lkIHVzaW5nCisgICAgICAgIGFuIGVtcHR5
IGNsYXNzZXMuCisKKyAgICAgICAgKiB4YmwvWEJMQmluZGluZ0VsZW1lbnQuaDogQWRkZWQuCisg
ICAgICAgIChXZWJDb3JlOjpYQkxCaW5kaW5nRWxlbWVudDo6WEJMQmluZGluZ0VsZW1lbnQpOgor
ICAgICAgICAqIHhibC9YQkxFbGVtZW50Lmg6IE5vdyBpbmhlcml0cyBmcm9tIFN0eWxlZEVsZW1l
bnQuCisgICAgICAgIChXZWJDb3JlOjpYQkxFbGVtZW50OjpYQkxFbGVtZW50KToKKyAgICAgICAg
KiB4YmwvWEJMVGVtcGxhdGVFbGVtZW50Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WEJM
VGVtcGxhdGVFbGVtZW50OjpYQkxUZW1wbGF0ZUVsZW1lbnQpOgorICAgICAgICAqIHhibC94Ymx0
YWdzLmluOiBBZGRlZCB0YWdzLgorCiAyMDA4LTA3LTA3ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNo
YWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMuCkluZGV4OiBX
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMzUxNTQp
CisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBj
b3B5KQpAQCAtMTgyNCw2ICsxODI0LDggQEAKIAkJOTU5NjlCNDkwREQ4RDIxQjAwRjY1M0VFIC8q
IEphdmFTY3JpcHRQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk1OTY5QjQ1MEREOEQyMUIwMEY2NTNFRSAvKiBKYXZhU2NyaXB0UHJvZmls
ZS5jcHAgKi87IH07CiAJCTk1OTY5QjRBMEREOEQyMUIwMEY2NTNFRSAvKiBKYXZhU2NyaXB0UHJv
ZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTU5
NjlCNDYwREQ4RDIxQjAwRjY1M0VFIC8qIEphdmFTY3JpcHRQcm9maWxlLmggKi87IH07CiAJCUEx
MTcyRDZFMEUwQzUzOUUwMDE3NUM4OCAvKiBYQkxEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzJENkQwRTBDNTM5RTAwMTc1Qzg4IC8q
IFhCTERvY3VtZW50LmggKi87IH07CisJCUExQTJDNUMzMEUyMjdGQTQwMEI5NEUxRiAvKiBYQkxU
ZW1wbGF0ZUVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEExQTJDNUMyMEUyMjdGQTQwMEI5NEUxRiAvKiBYQkxUZW1wbGF0ZUVsZW1lbnQuaCAq
LzsgfTsKKwkJQTFBMkM1QzcwRTIyN0ZCMjAwQjk0RTFGIC8qIFhCTEJpbmRpbmdFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUEyQzVDNDBF
MjI3RkIyMDBCOTRFMUYgLyogWEJMQmluZGluZ0VsZW1lbnQuaCAqLzsgfTsKIAkJQTcxODc2MEUw
QjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyogRHJhZ0Fj
dGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlBNzE4Nzg5MDBCMkQwNEFDMDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzE4Nzg4RjBCMkQwNEFD
MDBBMTZFQ0UgLyogRHJhZ0NvbnRyb2xsZXJNYWMubW0gKi87IH07CiAJCUE3MzUyQzE5MEIxQkI4
OUQwMEE5ODZEMCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAgLyogUmVuZGVy
U1ZHQmxvY2suY3BwICovOyB9OwpAQCAtNDAzOSw3ICs0MDQxLDYgQEAKIAkJRURFQzk4MDMwQUVE
N0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEVERUM5ODAyMEFFRDdFMTcwMDU5MTM3RiAvKiBXZWJDb3Jl
UHJlZml4LmggKi87IH07CiAJCUY5MTZDNDhEMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGOTE2QzQ4QjBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuY3BwICovOyB9OwogCQlGOTE2QzQ4RTBEQjUxMEY4MDA3NkNEODMgLyog
SlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5MTZDNDhDMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0
dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICovOyB9OwotCQlGOUYwRUQ3QTBEQjUwQ0EyMDBEMTZE
QjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkgLyogWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07CiAJCUY5QzY3NTVGMERFQzc2QTUwMDhE
MEMyRiAvKiBYQkxFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBGOUM2NzU1QjBERUM3NkE1MDA4RDBDMkYgLyogWEJMRWxlbWVudC5oICovOyB9
OwogCQlGOUM2NzU2MTBERUM3NkE1MDA4RDBDMkYgLyogWEJMWEJMRWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUM2NzU1RDBERUM3NkE1
MDA4RDBDMkYgLyogWEJMWEJMRWxlbWVudC5jcHAgKi87IH07CiAJCUY5QzY3NTYyMERFQzc2QTUw
MDhEMEMyRiAvKiBYQkxYQkxFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGOUM2NzU1RTBERUM3NkE1MDA4RDBDMkYgLyogWEJMWEJMRWxlbWVu
dC5oICovOyB9OwpAQCAtNDA0Nyw2ICs0MDQ4LDcgQEAKIAkJRjlDNjc2MEIwREVDNzkwMzAwOEQw
QzJGIC8qIFhCTE5hbWVzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY5QzY3NjA5MERFQzc5MDMwMDhEMEMyRiAvKiBYQkxOYW1lcy5jcHAgKi87IH07
CiAJCUY5QzY3NjBEMERFQzdENEMwMDhEMEMyRiAvKiBYQkxFbGVtZW50RmFjdG9yeS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjlDNjc2MEMwREVDN0Q0
QzAwOEQwQzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5LmggKi87IH07CiAJCUY5QzY3NjBGMERFQzdE
N0EwMDhEMEMyRiAvKiBYQkxOYW1lcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjlDNjc2MEUwREVDN0Q3QTAwOEQwQzJGIC8qIFhCTE5hbWVzLmggKi87
IH07CisJCUY5RjBFRDdBMERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5
RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCAq
LzsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhDb250
YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLwpAQCAtNjI5Myw2ICs2Mjk1LDggQEAKIAkJOTU5NjlC
NDUwREQ4RDIxQjAwRjY1M0VFIC8qIEphdmFTY3JpcHRQcm9maWxlLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEphdmFTY3JpcHRQcm9maWxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTU5NjlCNDYwREQ4RDIxQjAwRjY1M0VFIC8qIEphdmFTY3Jp
cHRQcm9maWxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEphdmFTY3JpcHRQ
cm9maWxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUExMTcyRDZEMEUwQzUzOUUw
MDE3NUM4OCAvKiBYQkxEb2N1bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBYQkxEb2N1bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMUEyQzVDMjBF
MjI3RkE0MDBCOTRFMUYgLyogWEJMVGVtcGxhdGVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFhCTFRlbXBsYXRlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlBMUEyQzVDNDBFMjI3RkIyMDBCOTRFMUYgLyogWEJMQmluZGluZ0VsZW1lbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWEJMQmluZGluZ0VsZW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8q
IERyYWdBY3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdBY3Rp
b25zLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3ODhGMEIyRDA0QUMwMEEx
NkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAgLyogUmVuZGVyU1ZHQmxvY2suY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR0Jsb2NrLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0NjUsMTYgKzg0NjksMTYgQEAKIAkJRjgy
MTYyOTkwMjlGNEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3
b3JrOyBwYXRoID0gSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQlGOTE2QzQ4QjBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRw
UmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjkxNkM0OEMwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVl
c3RQcm9ncmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1hN
TEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjlGMEVENzgwREI1MENB
MjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUZFNDlFRjk3MERDNTE0NjIwMDQyNjZFMSAvKiBEYXNoYm9hcmRT
dXBwb3J0Q1NTUHJvcGVydHlOYW1lcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEYXNoYm9h
cmRTdXBwb3J0Q1NTUHJvcGVydHlOYW1lcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjlDNjc1NUIwREVDNzZBNTAwOEQwQzJGIC8qIFhCTEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhCTEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjlDNjc1NUQwREVDNzZBNTAwOEQwQzJGIC8qIFhCTFhCTEVsZW1lbnQuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhCTFhCTEVsZW1lbnQuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOUM2NzU1RTBERUM3NkE1MDA4RDBDMkYgLyog
WEJMWEJMRWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWEJMWEJM
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGOUM2NzYwODBERUM3OTAz
MDA4RDBDMkYgLyogWEJMRWxlbWVudEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgbmFtZSA9IFhCTEVsZW1lbnRGYWN0b3J5LmNwcDsgcGF0aCA9IFhCTEVsZW1lbnRG
YWN0b3J5LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjlDNjc2MEMwREVDN0Q0
QzAwOEQwQzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBYQkxFbGVtZW50RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlGOUM2NzYwODBERUM3OTAzMDA4RDBDMkYgLyogWEJMRWxlbWVudEZhY3RvcnkuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhCTEVsZW1lbnRGYWN0b3J5LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjlDNjc2MDkwREVDNzkwMzAwOEQwQzJG
IC8qIFhCTE5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBY
QkxOYW1lcy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY5QzY3NjBDMERFQzdE
NEMwMDhEMEMyRiAvKiBYQkxFbGVtZW50RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gWEJMRWxlbWVudEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjlDNjc2MEUwREVDN0Q3QTAwOEQwQzJGIC8qIFhCTE5hbWVzLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBYQkxOYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVz
c0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjlGMEVENzgw
REI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUZFNDlFRjk3MERDNTE0NjIwMDQyNjZFMSAvKiBEYXNo
Ym9hcmRTdXBwb3J0Q1NTUHJvcGVydHlOYW1lcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBE
YXNoYm9hcmRTdXBwb3J0Q1NTUHJvcGVydHlOYW1lcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJY
RnJhbWV3b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTMyOTMsNiArMTMyOTcsOCBAQAog
CQlGOUM2NzU1QTBERUM3NkE1MDA4RDBDMkYgLyogeGJsICovID0gewogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQlBMUEyQzVDNDBFMjI3RkIyMDBCOTRFMUYgLyogWEJM
QmluZGluZ0VsZW1lbnQuaCAqLywKKwkJCQlBMUEyQzVDMjBFMjI3RkE0MDBCOTRFMUYgLyogWEJM
VGVtcGxhdGVFbGVtZW50LmggKi8sCiAJCQkJQTExNzJENkQwRTBDNTM5RTAwMTc1Qzg4IC8qIFhC
TERvY3VtZW50LmggKi8sCiAJCQkJRjlDNjc1NUIwREVDNzZBNTAwOEQwQzJGIC8qIFhCTEVsZW1l
bnQuaCAqLywKIAkJCQlGOUM2NzU1RDBERUM3NkE1MDA4RDBDMkYgLyogWEJMWEJMRWxlbWVudC5j
cHAgKi8sCkBAIC0xNTMwOCw2ICsxNTMxNCw4IEBACiAJCQkJRjlDNjc2MEQwREVDN0Q0QzAwOEQw
QzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlGOUM2NzYwRjBE
RUM3RDdBMDA4RDBDMkYgLyogWEJMTmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMTcyRDZF
MEUwQzUzOUUwMDE3NUM4OCAvKiBYQkxEb2N1bWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQTFB
MkM1QzMwRTIyN0ZBNDAwQjk0RTFGIC8qIFhCTFRlbXBsYXRlRWxlbWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQTFBMkM1QzcwRTIyN0ZCMjAwQjk0RTFGIC8qIFhCTEJpbmRpbmdFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNz
aW5nID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAkocmV2aXNpb24gMzUxNTQpCisrKyBXZWJD
b3JlL2RvbS9tYWtlX25hbWVzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC00NSw2ICs0NSw3IEBAIG15
ICRleHRyYURlZmluZXMgPSAwOwogbXkgJHByZXByb2Nlc3NvciA9ICIvdXNyL2Jpbi9nY2MgLUUg
LVAgLXggYysrIjsKIG15ICVzdmdDdXN0b21NYXBwaW5ncyA9ICgpOwogbXkgJWh0bWxDdXN0b21N
YXBwaW5ncyA9ICgpOworbXkgJXhibEN1c3RvbU1hcHBpbmdzID0gKCk7CiAKIEdldE9wdGlvbnMo
J3RhZ3M9cycgPT4gXCR0YWdzRmlsZSwgCiAgICAgJ2F0dHJzPXMnID0+IFwkYXR0cnNGaWxlLApA
QCAtMjM2LDYgKzIzNyw5IEBAIHN1YiBwcmludENvbnN0cnVjdG9ycwogCiAgICAgcHJpbnQgRiAi
I2lmICRwYXJhbWV0ZXJzeydndWFyZEZhY3RvcnlXaXRoJ31cbiIgaWYgJHBhcmFtZXRlcnN7J2d1
YXJkRmFjdG9yeVdpdGgnfTsKICAgICBmb3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlbmFtZXMpIHsK
KyAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgYmUgYSBuZXcgcGVyLXRhZyBwYXJhbWV0ZXIu
CisgICAgICAgIG5leHQgaWYgKCRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfSBlcSAiWEJMIiAmJiBl
eGlzdHMoJHhibEN1c3RvbU1hcHBpbmdzeyRuYW1lfSkpOworCiAgICAgICAgIG15ICR1Y05hbWUg
PSAkbmFtZXN7JG5hbWV9eyJ1cHBlckNhc2UifTsKIAogICAgICAgICBwcmludCBGICIkcGFyYW1l
dGVyc3snbmFtZXNwYWNlJ31FbGVtZW50KiAke25hbWV9Q29uc3RydWN0b3IoRG9jdW1lbnQqIGRv
YywgYm9vbCBjcmVhdGVkQnlQYXJzZXIpXG4iOwpAQCAtMjUwLDYgKzI1NCw5IEBAIHN1YiBwcmlu
dEZ1bmN0aW9uSW5pdHMKIHsKICAgICBteSAoJEYsICRuYW1lc1JlZikgPSBAXzsKICAgICBmb3Ig
bXkgJG5hbWUgKHNvcnQga2V5cyAlJG5hbWVzUmVmKSB7CisgICAgICAgICMgRklYTUU6IHRoaXMg
c2hvdWxkIGJlIGEgbmV3IHBlci10YWcgcGFyYW1ldGVyLgorICAgICAgICBuZXh0IGlmICgkcGFy
YW1ldGVyc3snbmFtZXNwYWNlJ30gZXEgIlhCTCIgJiYgZXhpc3RzKCR4YmxDdXN0b21NYXBwaW5n
c3skbmFtZX0pKTsKKyAgICAgICAgCiAgICAgICAgIHByaW50IEYgIiAgICBnRnVuY3Rpb25NYXAt
PnNldCgke25hbWV9VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJHtuYW1lfUNvbnN0cnVjdG9yKTtc
biI7CiAgICAgfQogfQpAQCAtNTE1LDcgKzUyMiw4IEBAIHByaW50IEYgPDxFTkQKIEVORAogOwog
Ci1wcmludEVsZW1lbnRJbmNsdWRlcygkRiwgXCV0YWdzLCAwKTsKKyMgRm9yY2UgWEJMIGVsZW1l
bnRzIG5vdCB0byBiZSBpbmNsdWRlZC4KK3ByaW50RWxlbWVudEluY2x1ZGVzKCRGLCBcJXRhZ3Ms
ICgkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ30gZXEgIlhCTCIpID8gMSA6IDApOwogCiBwcmludCBG
IDw8RU5ECiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KQEAgLTcwMyw2ICs3MTEsNyBAQCBzdWIg
aW5pdGlhbGl6ZUN1c3RvbU1hcHBpbmdzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
J3ZhcicgPT4gJycsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3dicicgPT4gJycs
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3htcCcgPT4gJ3ByZScpOworICAgICAg
ICAleGJsQ3VzdG9tTWFwcGluZ3MgPSAoJ2RpdicgPT4gJycpOwogICAgIH0KIH0KIApAQCAtNzEy
LDYgKzcyMSw3IEBAIHN1YiBoYXNDdXN0b21NYXBwaW5nCiAgICAgaW5pdGlhbGl6ZUN1c3RvbU1h
cHBpbmdzKCk7CiAgICAgcmV0dXJuIDEgaWYgJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9IGVxICJI
VE1MIiAmJiBleGlzdHMoJGh0bWxDdXN0b21NYXBwaW5nc3skbmFtZX0pOwogICAgIHJldHVybiAx
IGlmICRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfSBlcSAiU1ZHIiAmJiBleGlzdHMoJHN2Z0N1c3Rv
bU1hcHBpbmdzeyRuYW1lfSk7CisgICAgcmV0dXJuIDEgaWYgJHBhcmFtZXRlcnN7J25hbWVzcGFj
ZSd9IGVxICJYQkwiICYmIGV4aXN0cygkeGJsQ3VzdG9tTWFwcGluZ3N7JG5hbWV9KTsKICAgICBy
ZXR1cm4gMDsKIH0KIApJbmRleDogV2ViQ29yZS94YmwvWEJMQmluZGluZ0VsZW1lbnQuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3hibC9YQkxCaW5kaW5nRWxlbWVudC5oCShyZXZpc2lvbiAwKQor
KysgV2ViQ29yZS94YmwvWEJMQmluZGluZ0VsZW1lbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSBKdWxpZW4gQ2hhZmZyYWl4IDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBYQkxC
aW5kaW5nRWxlbWVudF9oCisjZGVmaW5lIFhCTEJpbmRpbmdFbGVtZW50X2gKKworI2lmIEVOQUJM
RShYQkwpCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJYQkxFbGVtZW50LmgiCisK
K25hbWVzcGFjZSBXZWJDb3JlIHsKKworICAgIGNsYXNzIFhCTEJpbmRpbmdFbGVtZW50IDogcHVi
bGljIFhCTEVsZW1lbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgWEJMQmluZGluZ0VsZW1lbnQo
Y29uc3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSYgcU5hbWUsIFdlYkNvcmU6OkRvY3VtZW50KiBk
b2MpCisgICAgICAgICAgICA6IFhCTEVsZW1lbnQocU5hbWUsIGRvYykKKyAgICAgICAgeworICAg
ICAgICB9CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFhCTCkKKworI2VuZGlmIC8vIFhCTEJpbmRpbmdFbGVtZW50X2gKSW5kZXg6IFdlYkNvcmUv
eGJsL1hCTEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3hibC9YQkxFbGVtZW50LmgJ
KHJldmlzaW9uIDM1MTU0KQorKysgV2ViQ29yZS94YmwvWEJMRWxlbWVudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0yOSwxNCArMjksMTUgQEAKICNpZiBFTkFCTEUoWEJMKQogCiAjaW5jbHVkZSAiY29u
ZmlnLmgiCi0jaW5jbHVkZSAiRWxlbWVudC5oIgorI2luY2x1ZGUgIlN0eWxlZEVsZW1lbnQuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgWEJMRWxlbWVudCA6IHB1YmxpYyBF
bGVtZW50IHsKKyAgICAvLyBEZXJpdmVzIGZyb20gU3R5bGVkRWxlbWVudCBmb3IgPGRpdj4uCisg
ICAgY2xhc3MgWEJMRWxlbWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50IHsKICAgICBwdWJsaWM6
CiAgICAgICAgIFhCTEVsZW1lbnQoY29uc3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSYgcU5hbWUs
IFdlYkNvcmU6OkRvY3VtZW50KiBkb2MpCi0gICAgICAgICAgICA6IEVsZW1lbnQocU5hbWUsIGRv
YykKKyAgICAgICAgICAgIDogU3R5bGVkRWxlbWVudChxTmFtZSwgZG9jKQogICAgICAgICB7CiAg
ICAgICAgIH0KIApJbmRleDogV2ViQ29yZS94YmwvWEJMVGVtcGxhdGVFbGVtZW50LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS94YmwvWEJMVGVtcGxhdGVFbGVtZW50LmgJKHJldmlzaW9uIDApCisr
KyBXZWJDb3JlL3hibC9YQkxUZW1wbGF0ZUVsZW1lbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSBKdWxpZW4gQ2hhZmZyYWl4IDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKi8KKworI2lmbmRlZiBYQkxU
ZW1wbGF0ZUVsZW1lbnRfaAorI2RlZmluZSBYQkxUZW1wbGF0ZUVsZW1lbnRfaAorCisjaWYgRU5B
QkxFKFhCTCkKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlhCTEVsZW1lbnQuaCIK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgWEJMVGVtcGxhdGVFbGVtZW50IDog
cHVibGljIFhCTEVsZW1lbnQgeworICAgIHB1YmxpYzoKKyAgICAgICAgWEJMVGVtcGxhdGVFbGVt
ZW50KGNvbnN0IFdlYkNvcmU6OlF1YWxpZmllZE5hbWUmIHFOYW1lLCBXZWJDb3JlOjpEb2N1bWVu
dCogZG9jKQorICAgICAgICAgICAgOiBYQkxFbGVtZW50KHFOYW1lLCBkb2MpCisgICAgICAgIHsK
KyAgICAgICAgfQorICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShYQkwpCisKKyNlbmRpZiAvLyBYQkxUZW1wbGF0ZUVsZW1lbnRfaApJbmRleDogV2Vi
Q29yZS94YmwveGJsdGFncy5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3hibC94Ymx0YWdzLmlu
CShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNvcmUveGJsL3hibHRhZ3MuaW4JKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSw2IEBACiA8dGFncyBuYW1lc3BhY2U9IlhCTCIgY3BwTmFtZXNwYWNlPSJX
ZWJDb3JlIiBuYW1lc3BhY2VVUkk9Imh0dHA6Ly93d3cudzMub3JnL25zL3hibCIgZ2VuZXJhdGVG
YWN0b3J5PSIxIiBndWFyZEZhY3RvcnlXaXRoPSJFTkFCTEUoWEJMKSI+Cis8YmluZGluZy8+Cis8
ZGl2Lz4KKzx0ZW1wbGF0ZS8+CiA8eGJsIHVwcGVyQ2FzZT0iWEJMIi8+CiA8L3RhZ3M+Cg==
</data>
<flag name="review"
          id="9846"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22371</attachid>
            <date>2008-07-18 12:27:36 -0700</date>
            <delta_ts>2008-07-18 15:52:42 -0700</delta_ts>
            <desc>Patch updated with Eric&apos;s comments</desc>
            <filename>XBLBindingHierarchy-updated2.patch</filename>
            <type>text/plain</type>
            <size>18331</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTIzMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMDgtMDctMTggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQnVnIDIwMDI5OiBbWEJMXSBBZGQgbW9yZSB0YWdzCisKKyAgICAgICAgQWRkIDxiaW5k
aW5nPiBhbmQgPHRlbXBsYXRlPiBjbGFzc2VzLgorICAgICAgICBBZGQgPGRpdj4gdGFnLgorCisg
ICAgICAgIFRoZSB0d28gY2xhc3NlcyBhcmUgc3R1YnMgZm9yIHRoZSBtb21lbnQuCisKKyAgICAg
ICAgVGhlc2UgdGFncyBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhIHNpbXBsZSBYQkwgZXhhbXBsZQor
ICAgICAgICBydW5uaW5nLgorICAgICAgICAKKyAgICAgICAgWEJMRWxlbWVudCBub3cgaW5oZXJp
dHMgZnJvbSBTdHlsZWRFbGVtZW50IGFzIDxkaXY+CisgICAgICAgIGlzIGEgcGxhY2Vob2xkZXIg
Zm9yIENTUyBzdHlsZSBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDogQWRkICdnZW5l
cmF0ZU5hbWVPbmx5JyBhdHRyaWJ1dGUKKyAgICAgICAgdXNlZCBmb3IgPGRpdj4gYXMgd2UgZG8g
bm90IHdhbnQgdG8gYWRkIGEgc3BlY2lhbGl6ZWQKKyAgICAgICAgY2xhc3MuCisKKyAgICAgICAg
KiB4YmwvWEJMQmluZGluZ0VsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYQkxC
aW5kaW5nRWxlbWVudDo6WEJMQmluZGluZ0VsZW1lbnQpOgorICAgICAgICAqIHhibC9YQkxFbGVt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpYQkxFbGVtZW50OjpYQkxFbGVtZW50KTogTm93IFhC
TEVsZW1lbnQKKyAgICAgICAgaW5oZXJpdHMgZnJvbSBzdHlsZWRFbGVtZW50LgorCisgICAgICAg
ICogeGJsL1hCTFRlbXBsYXRlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhC
TFRlbXBsYXRlRWxlbWVudDo6WEJMVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgKiB4YmwveGJs
dGFncy5pbjogQWRkIHRhZ3MuCisKIDIwMDgtMDctMDcgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hh
ZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYy4KSW5kZXg6IFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAzNTE1NCkK
KysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xODI0LDYgKzE4MjQsOCBAQAogCQk5NTk2OUI0OTBERDhEMjFCMDBGNjUzRUUgLyog
SmF2YVNjcmlwdFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTU5NjlCNDUwREQ4RDIxQjAwRjY1M0VFIC8qIEphdmFTY3JpcHRQcm9maWxl
LmNwcCAqLzsgfTsKIAkJOTU5NjlCNEEwREQ4RDIxQjAwRjY1M0VFIC8qIEphdmFTY3JpcHRQcm9m
aWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTk2
OUI0NjBERDhEMjFCMDBGNjUzRUUgLyogSmF2YVNjcmlwdFByb2ZpbGUuaCAqLzsgfTsKIAkJQTEx
NzJENkUwRTBDNTM5RTAwMTc1Qzg4IC8qIFhCTERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3MkQ2RDBFMEM1MzlFMDAxNzVDODggLyog
WEJMRG9jdW1lbnQuaCAqLzsgfTsKKwkJQTFBMkM1QzMwRTIyN0ZBNDAwQjk0RTFGIC8qIFhCTFRl
bXBsYXRlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTFBMkM1QzIwRTIyN0ZBNDAwQjk0RTFGIC8qIFhCTFRlbXBsYXRlRWxlbWVudC5oICov
OyB9OworCQlBMUEyQzVDNzBFMjI3RkIyMDBCOTRFMUYgLyogWEJMQmluZGluZ0VsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQTJDNUM0MEUy
MjdGQjIwMEI5NEUxRiAvKiBYQkxCaW5kaW5nRWxlbWVudC5oICovOyB9OwogCQlBNzE4NzYwRTBC
MkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0
aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3MTg3ODkwMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3ODhGMEIyRDA0QUMw
MEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLzsgfTsKIAkJQTczNTJDMTkwQjFCQjg5
RDAwQTk4NkQwIC8qIFJlbmRlclNWR0Jsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MzUyQzE3MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5kZXJT
VkdCbG9jay5jcHAgKi87IH07CkBAIC00MDM5LDcgKzQwNDEsNiBAQAogCQlFREVDOTgwMzBBRUQ3
RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRURFQzk4MDIwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQ
cmVmaXguaCAqLzsgfTsKIAkJRjkxNkM0OEQwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY5MTZDNDhCMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5jcHAgKi87IH07CiAJCUY5MTZDNDhFMERCNTEwRjgwMDc2Q0Q4MyAvKiBK
U1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjkxNkM0OEMwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07Ci0JCUY5RjBFRDdBMERCNTBDQTIwMEQxNkRC
OSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCAqLzsgfTsKIAkJRjlDNjc1NUYwREVDNzZBNTAwOEQw
QzJGIC8qIFhCTEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY5QzY3NTVCMERFQzc2QTUwMDhEMEMyRiAvKiBYQkxFbGVtZW50LmggKi87IH07
CiAJCUY5QzY3NTYxMERFQzc2QTUwMDhEMEMyRiAvKiBYQkxYQkxFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5QzY3NTVEMERFQzc2QTUw
MDhEMEMyRiAvKiBYQkxYQkxFbGVtZW50LmNwcCAqLzsgfTsKIAkJRjlDNjc1NjIwREVDNzZBNTAw
OEQwQzJGIC8qIFhCTFhCTEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY5QzY3NTVFMERFQzc2QTUwMDhEMEMyRiAvKiBYQkxYQkxFbGVtZW50
LmggKi87IH07CkBAIC00MDQ3LDYgKzQwNDgsNyBAQAogCQlGOUM2NzYwQjBERUM3OTAzMDA4RDBD
MkYgLyogWEJMTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjlDNjc2MDkwREVDNzkwMzAwOEQwQzJGIC8qIFhCTE5hbWVzLmNwcCAqLzsgfTsK
IAkJRjlDNjc2MEQwREVDN0Q0QzAwOEQwQzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUM2NzYwQzBERUM3RDRD
MDA4RDBDMkYgLyogWEJMRWxlbWVudEZhY3RvcnkuaCAqLzsgfTsKIAkJRjlDNjc2MEYwREVDN0Q3
QTAwOEQwQzJGIC8qIFhCTE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGOUM2NzYwRTBERUM3RDdBMDA4RDBDMkYgLyogWEJMTmFtZXMuaCAqLzsg
fTsKKwkJRjlGMEVEN0EwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjlG
MEVENzcwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICov
OyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBAIC02MjkzLDYgKzYyOTUsOCBAQAogCQk5NTk2OUI0
NTBERDhEMjFCMDBGNjUzRUUgLyogSmF2YVNjcmlwdFByb2ZpbGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSmF2YVNjcmlwdFByb2ZpbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5NTk2OUI0NjBERDhEMjFCMDBGNjUzRUUgLyogSmF2YVNjcmlw
dFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlwdFBy
b2ZpbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzJENkQwRTBDNTM5RTAw
MTc1Qzg4IC8qIFhCTERvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFhCTERvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQTJDNUMyMEUy
MjdGQTQwMEI5NEUxRiAvKiBYQkxUZW1wbGF0ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gWEJMVGVtcGxhdGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUExQTJDNUM0MEUyMjdGQjIwMEI5NEUxRiAvKiBYQkxCaW5kaW5nRWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYQkxCaW5kaW5nRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyog
RHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2
RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3MzUyQzE3MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHQmxvY2suY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODQ2NSwxNiArODQ2OSwxNiBAQAogCQlGODIx
NjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdv
cms7IHBhdGggPSBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCUY5MTZDNDhCMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGOTE2QzQ4QzBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUY5RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGOUYwRUQ3ODBEQjUwQ0Ey
MDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRkU0OUVGOTcwREM1MTQ2MjAwNDI2NkUxIC8qIERhc2hib2FyZFN1
cHBvcnRDU1NQcm9wZXJ0eU5hbWVzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERhc2hib2Fy
ZFN1cHBvcnRDU1NQcm9wZXJ0eU5hbWVzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGOUM2NzU1QjBERUM3NkE1MDA4RDBDMkYgLyogWEJMRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gWEJMRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGOUM2NzU1RDBERUM3NkE1MDA4RDBDMkYgLyogWEJMWEJMRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWEJMWEJMRWxlbWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY5QzY3NTVFMERFQzc2QTUwMDhEMEMyRiAvKiBY
QkxYQkxFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYQkxYQkxF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY5QzY3NjA4MERFQzc5MDMw
MDhEMEMyRiAvKiBYQkxFbGVtZW50RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gWEJMRWxlbWVudEZhY3RvcnkuY3BwOyBwYXRoID0gWEJMRWxlbWVudEZh
Y3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGOUM2NzYwQzBERUM3RDRD
MDA4RDBDMkYgLyogWEJMRWxlbWVudEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFhCTEVsZW1lbnRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY5QzY3NjA4MERFQzc5MDMwMDhEMEMyRiAvKiBYQkxFbGVtZW50RmFjdG9yeS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWEJMRWxlbWVudEZhY3RvcnkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOUM2NzYwOTBERUM3OTAzMDA4RDBDMkYg
LyogWEJMTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhC
TE5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjlDNjc2MEMwREVDN0Q0
QzAwOEQwQzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBYQkxFbGVtZW50RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGOUM2NzYwRTBERUM3RDdBMDA4RDBDMkYgLyogWEJMTmFtZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhCTE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY5RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGOUYwRUQ3ODBE
QjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkU0OUVGOTcwREM1MTQ2MjAwNDI2NkUxIC8qIERhc2hi
b2FyZFN1cHBvcnRDU1NQcm9wZXJ0eU5hbWVzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERh
c2hib2FyZFN1cHBvcnRDU1NQcm9wZXJ0eU5hbWVzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhG
cmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0xMzI5Myw2ICsxMzI5Nyw4IEBACiAJ
CUY5QzY3NTVBMERFQzc2QTUwMDhEMEMyRiAvKiB4YmwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUExQTJDNUM0MEUyMjdGQjIwMEI5NEUxRiAvKiBYQkxC
aW5kaW5nRWxlbWVudC5oICovLAorCQkJCUExQTJDNUMyMEUyMjdGQTQwMEI5NEUxRiAvKiBYQkxU
ZW1wbGF0ZUVsZW1lbnQuaCAqLywKIAkJCQlBMTE3MkQ2RDBFMEM1MzlFMDAxNzVDODggLyogWEJM
RG9jdW1lbnQuaCAqLywKIAkJCQlGOUM2NzU1QjBERUM3NkE1MDA4RDBDMkYgLyogWEJMRWxlbWVu
dC5oICovLAogCQkJCUY5QzY3NTVEMERFQzc2QTUwMDhEMEMyRiAvKiBYQkxYQkxFbGVtZW50LmNw
cCAqLywKQEAgLTE1MzA4LDYgKzE1MzE0LDggQEAKIAkJCQlGOUM2NzYwRDBERUM3RDRDMDA4RDBD
MkYgLyogWEJMRWxlbWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUY5QzY3NjBGMERF
QzdEN0EwMDhEMEMyRiAvKiBYQkxOYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTExNzJENkUw
RTBDNTM5RTAwMTc1Qzg4IC8qIFhCTERvY3VtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBMUEy
QzVDMzBFMjI3RkE0MDBCOTRFMUYgLyogWEJMVGVtcGxhdGVFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKKwkJCQlBMUEyQzVDNzBFMjI3RkIyMDBCOTRFMUYgLyogWEJMQmluZGluZ0VsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNv
cmUvZG9tL21ha2VfbmFtZXMucGwJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDggQEAgaWYg
KCRwYXJhbWV0ZXJzeydnZW5lcmF0ZVdyYXBwZXJGYWN0b3J5Jwogc3ViIGluaXRpYWxpemVUYWdQ
cm9wZXJ0eUhhc2gKIHsKICAgICByZXR1cm4gKCd1cHBlckNhc2UnID0+IHVwcGVyQ2FzZU5hbWUo
JF9bMF0pLAotICAgICAgICAgICAgJ2FwcGx5QXVkaW9IYWNrJyA9PiAwKTsKKyAgICAgICAgICAg
ICdhcHBseUF1ZGlvSGFjaycgPT4gMCwKKyAgICAgICAgICAgICdnZW5lcmF0ZU5hbWVPbmx5JyA9
PiAwKTsKIH0KIAogc3ViIGluaXRpYWxpemVBdHRyUHJvcGVydHlIYXNoCkBAIC0yMzYsNiArMjM3
LDggQEAgc3ViIHByaW50Q29uc3RydWN0b3JzCiAKICAgICBwcmludCBGICIjaWYgJHBhcmFtZXRl
cnN7J2d1YXJkRmFjdG9yeVdpdGgnfVxuIiBpZiAkcGFyYW1ldGVyc3snZ3VhcmRGYWN0b3J5V2l0
aCd9OwogICAgIGZvciBteSAkbmFtZSAoc29ydCBrZXlzICVuYW1lcykgeworICAgICAgICBuZXh0
IGlmICgkbmFtZXN7JG5hbWV9eydnZW5lcmF0ZU5hbWVPbmx5J30pOworCiAgICAgICAgIG15ICR1
Y05hbWUgPSAkbmFtZXN7JG5hbWV9eyJ1cHBlckNhc2UifTsKIAogICAgICAgICBwcmludCBGICIk
cGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50KiAke25hbWV9Q29uc3RydWN0b3IoRG9jdW1l
bnQqIGRvYywgYm9vbCBjcmVhdGVkQnlQYXJzZXIpXG4iOwpAQCAtMjQ5LDcgKzI1MiwxMCBAQCBz
dWIgcHJpbnRDb25zdHJ1Y3RvcnMKIHN1YiBwcmludEZ1bmN0aW9uSW5pdHMKIHsKICAgICBteSAo
JEYsICRuYW1lc1JlZikgPSBAXzsKLSAgICBmb3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlJG5hbWVz
UmVmKSB7CisgICAgbXkgJW5hbWVzID0gJSRuYW1lc1JlZjsKKyAgICBmb3IgbXkgJG5hbWUgKHNv
cnQga2V5cyAlbmFtZXMpIHsKKyAgICAgICAgbmV4dCBpZiAoJG5hbWVzeyRuYW1lfXsnZ2VuZXJh
dGVOYW1lT25seSd9KTsKKyAgICAgICAgCiAgICAgICAgIHByaW50IEYgIiAgICBnRnVuY3Rpb25N
YXAtPnNldCgke25hbWV9VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJHtuYW1lfUNvbnN0cnVjdG9y
KTtcbiI7CiAgICAgfQogfQpAQCAtNDU5LDcgKzQ2NSw3IEBAIHN1YiBwcmludEVsZW1lbnRJbmNs
dWRlcwogICAgIG15ICgkRiwgJG5hbWVzUmVmLCAkc2hvdWxkU2tpcEN1c3RvbU1hcHBpbmdzKSA9
IEBfOwogICAgIG15ICVuYW1lcyA9ICUkbmFtZXNSZWY7CiAgICAgZm9yIG15ICRuYW1lIChzb3J0
IGtleXMgJW5hbWVzKSB7Ci0gICAgICAgIG5leHQgaWYgKCRzaG91bGRTa2lwQ3VzdG9tTWFwcGlu
Z3MgJiYgaGFzQ3VzdG9tTWFwcGluZygkbmFtZSkpOworICAgICAgICBuZXh0IGlmICgkbmFtZXN7
JG5hbWV9eydnZW5lcmF0ZU5hbWVPbmx5J30gfHwgKCRzaG91bGRTa2lwQ3VzdG9tTWFwcGluZ3Mg
JiYgaGFzQ3VzdG9tTWFwcGluZygkbmFtZSkpKTsKIAogICAgICAgICBteSAkdWNOYW1lID0gJG5h
bWVzeyRuYW1lfXsidXBwZXJDYXNlIn07CiAgICAgICAgIHByaW50IEYgIiNpbmNsdWRlIFwiJHBh
cmFtZXRlcnN7J25hbWVzcGFjZSd9JHt1Y05hbWV9RWxlbWVudC5oXCJcbiI7CkBAIC03MjEsNyAr
NzI3LDcgQEAgc3ViIHByaW50V3JhcHBlckZ1bmN0aW9ucwogICAgIG15ICVuYW1lcyA9ICUkbmFt
ZXNSZWY7CiAgICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJW5hbWVzKSB7CiAgICAgICAgICMg
Q3VzdG9tIG1hcHBpbmcgZG8gbm90IG5lZWQgYSBKUyB3cmFwcGVyCi0gICAgICAgIG5leHQgaWYg
KGhhc0N1c3RvbU1hcHBpbmcoJG5hbWUpKTsKKyAgICAgICAgbmV4dCBpZiAoJG5hbWVzeyRuYW1l
fXsnZ2VuZXJhdGVOYW1lT25seSd9IHx8IGhhc0N1c3RvbU1hcHBpbmcoJG5hbWUpKTsKIAogICAg
ICAgICBteSAkdWNOYW1lID0gJG5hbWVzeyRuYW1lfXsidXBwZXJDYXNlIn07CiAgICAgICAgICMg
SGFjayBmb3IgdGhlIG1lZGlhIHRhZ3MKQEAgLTc5Miw3ICs3OTgsNyBAQCBFTkQKIDsKIAogICAg
IGZvciBteSAkdGFnIChzb3J0IGtleXMgJXRhZ3MpIHsKLSAgICAgICAgbmV4dCBpZiAoaGFzQ3Vz
dG9tTWFwcGluZygkdGFnKSk7CisgICAgICAgIG5leHQgaWYgKCR0YWdzeyR0YWd9eydnZW5lcmF0
ZU5hbWVPbmx5J30gfHwgaGFzQ3VzdG9tTWFwcGluZygkdGFnKSk7CiAKICAgICAgICAgbXkgJHVj
VGFnID0gJHRhZ3N7JHRhZ317InVwcGVyQ2FzZSJ9OwogICAgICAgICBwcmludCBGICIgICAgICAg
bWFwLnNldCgke3RhZ31UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGUke3VjVGFnfVdyYXBw
ZXIpO1xuIjsKSW5kZXg6IFdlYkNvcmUveGJsL1hCTEJpbmRpbmdFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS94YmwvWEJMQmluZGluZ0VsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUveGJsL1hCTEJpbmRpbmdFbGVtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSnVsaWVuIENoYWZmcmFpeCA8amNoYWZmcmFp
eEB3ZWJraXQub3JnPi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgWEJM
QmluZGluZ0VsZW1lbnRfaAorI2RlZmluZSBYQkxCaW5kaW5nRWxlbWVudF9oCisKKyNpZiBFTkFC
TEUoWEJMKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWEJMRWxlbWVudC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBYQkxCaW5kaW5nRWxlbWVudCA6IHB1
YmxpYyBYQkxFbGVtZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIFhCTEJpbmRpbmdFbGVtZW50
KGNvbnN0IFdlYkNvcmU6OlF1YWxpZmllZE5hbWUmIHFOYW1lLCBXZWJDb3JlOjpEb2N1bWVudCog
ZG9jKQorICAgICAgICAgICAgOiBYQkxFbGVtZW50KHFOYW1lLCBkb2MpCisgICAgICAgIHsKKyAg
ICAgICAgfQorICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShYQkwpCisKKyNlbmRpZiAvLyBYQkxCaW5kaW5nRWxlbWVudF9oCkluZGV4OiBXZWJDb3Jl
L3hibC9YQkxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94YmwvWEJMRWxlbWVudC5o
CShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNvcmUveGJsL1hCTEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjksMTQgKzI5LDE0IEBACiAjaWYgRU5BQkxFKFhCTCkKIAogI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJTdHlsZWRFbGVtZW50Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFhCTEVsZW1lbnQgOiBwdWJsaWMg
RWxlbWVudCB7CisgICAgY2xhc3MgWEJMRWxlbWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50IHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIFhCTEVsZW1lbnQoY29uc3QgV2ViQ29yZTo6UXVhbGlmaWVk
TmFtZSYgcU5hbWUsIFdlYkNvcmU6OkRvY3VtZW50KiBkb2MpCi0gICAgICAgICAgICA6IEVsZW1l
bnQocU5hbWUsIGRvYykKKyAgICAgICAgICAgIDogU3R5bGVkRWxlbWVudChxTmFtZSwgZG9jKQog
ICAgICAgICB7CiAgICAgICAgIH0KIApJbmRleDogV2ViQ29yZS94YmwvWEJMVGVtcGxhdGVFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94YmwvWEJMVGVtcGxhdGVFbGVtZW50LmgJKHJl
dmlzaW9uIDApCisrKyBXZWJDb3JlL3hibC9YQkxUZW1wbGF0ZUVsZW1lbnQuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKdWxpZW4gQ2hh
ZmZyYWl4IDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBYQkxUZW1wbGF0ZUVsZW1lbnRfaAorI2RlZmluZSBYQkxUZW1wbGF0ZUVs
ZW1lbnRfaAorCisjaWYgRU5BQkxFKFhCTCkKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlhCTEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgWEJM
VGVtcGxhdGVFbGVtZW50IDogcHVibGljIFhCTEVsZW1lbnQgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgWEJMVGVtcGxhdGVFbGVtZW50KGNvbnN0IFdlYkNvcmU6OlF1YWxpZmllZE5hbWUmIHFOYW1l
LCBXZWJDb3JlOjpEb2N1bWVudCogZG9jKQorICAgICAgICAgICAgOiBYQkxFbGVtZW50KHFOYW1l
LCBkb2MpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShYQkwpCisKKyNlbmRpZiAvLyBYQkxUZW1wbGF0ZUVs
ZW1lbnRfaApJbmRleDogV2ViQ29yZS94YmwveGJsdGFncy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3hibC94Ymx0YWdzLmluCShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNvcmUveGJsL3hibHRh
Z3MuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2IEBACiA8dGFncyBuYW1lc3BhY2U9IlhC
TCIgY3BwTmFtZXNwYWNlPSJXZWJDb3JlIiBuYW1lc3BhY2VVUkk9Imh0dHA6Ly93d3cudzMub3Jn
L25zL3hibCIgZ2VuZXJhdGVGYWN0b3J5PSIxIiBndWFyZEZhY3RvcnlXaXRoPSJFTkFCTEUoWEJM
KSI+Cis8YmluZGluZy8+Cis8ZGl2IGdlbmVyYXRlTmFtZU9ubHk9IjEiLz4KKzx0ZW1wbGF0ZS8+
CiA8eGJsIHVwcGVyQ2FzZT0iWEJMIi8+CiA8L3RhZ3M+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22378</attachid>
            <date>2008-07-18 15:52:42 -0700</date>
            <delta_ts>2008-07-22 08:35:03 -0700</delta_ts>
            <desc>Updated patch: make XBLDivElement inherits from StyledElement</desc>
            <filename>XBLBindingHierarchy-updated2.patch</filename>
            <type>text/plain</type>
            <size>20043</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTI0MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzQgQEAKKzIwMDgtMDctMTggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQnVnIDIwMDI5OiBbWEJMXSBBZGQgbW9yZSB0YWdzCisKKyAgICAgICAgQWRkIDxiaW5k
aW5nPiwgPHRlbXBsYXRlPiBhbmQgPGRpdj4gY2xhc3Nlcy4KKworICAgICAgICBUaGUgdGhyZWUg
Y2xhc3NlcyBhcmUgc3R1YnMgZm9yIHRoZSBtb21lbnQuCisKKyAgICAgICAgVGhlc2UgdGFncyBh
cmUgcmVxdWlyZWQgdG8gaGF2ZSBhIHNpbXBsZSBYQkwgZXhhbXBsZQorICAgICAgICBydW5uaW5n
LgorICAgICAgICAKKyAgICAgICAgWEJMRGl2RWxlbWVudCBkb2VzIG5vdCBpbmhlcml0cyBmcm9t
IFhCTEVsZW1lbnQKKyAgICAgICAgYmVjYXVzZSBpdCBpcyB0aGUgb25seSBYQkwgZWxlbWVudCB0
byBpbmhlcml0IGZyb20KKyAgICAgICAgU3R5bGVkRWxlbWVudC4KKworICAgICAgICAqIFdlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5w
bDogTWFrZSB0aGUgRWxlbWVudEZhY3RvcnkgbWV0aG9kcworICAgICAgICByZXR1cm4gRWxlbWVu
dCBhbmQgbm90IFtYQkx8U1ZHfEhUTUxdRWxlbWVudCBhcworICAgICAgICBYQkxEaXZFbGVtZW50
IGRvZXMgbm90IGluaGVyaXRzIGZyb20gWEJMRWxlbWVudC4KKworICAgICAgICAqIHhibC9YQkxC
aW5kaW5nRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhCTEJpbmRpbmdFbGVt
ZW50OjpYQkxCaW5kaW5nRWxlbWVudCk6CisgICAgICAgICogeGJsL1hCTERpdkVsZW1lbnQuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYQkxEaXZFbGVtZW50OjpYQkxEaXZFbGVtZW50KToK
KworICAgICAgICAqIHhibC9YQkxUZW1wbGF0ZUVsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpYQkxUZW1wbGF0ZUVsZW1lbnQ6OlhCTFRlbXBsYXRlRWxlbWVudCk6CisgICAgICAg
ICogeGJsL3hibHRhZ3MuaW46IEFkZCB0YWdzLgorCiAyMDA4LTA3LTA3ICBKdWxpZW4gQ2hhZmZy
YWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMu
CkluZGV4OiBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNp
b24gMzUxNTQpCisrKyBXZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMTgyNCw2ICsxODI0LDkgQEAKIAkJOTU5NjlCNDkwREQ4RDIxQjAw
RjY1M0VFIC8qIEphdmFTY3JpcHRQcm9maWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk1OTY5QjQ1MEREOEQyMUIwMEY2NTNFRSAvKiBKYXZhU2Ny
aXB0UHJvZmlsZS5jcHAgKi87IH07CiAJCTk1OTY5QjRBMEREOEQyMUIwMEY2NTNFRSAvKiBKYXZh
U2NyaXB0UHJvZmlsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gOTU5NjlCNDYwREQ4RDIxQjAwRjY1M0VFIC8qIEphdmFTY3JpcHRQcm9maWxlLmggKi87
IH07CiAJCUExMTcyRDZFMEUwQzUzOUUwMDE3NUM4OCAvKiBYQkxEb2N1bWVudC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTExNzJENkQwRTBDNTM5RTAw
MTc1Qzg4IC8qIFhCTERvY3VtZW50LmggKi87IH07CisJCUExQTI4NTZBMEUzMTQ1RUQwMDE0NTgy
MiAvKiBYQkxEaXZFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMUEyODU2OTBFMzE0NUVEMDAxNDU4MjIgLyogWEJMRGl2RWxlbWVudC5oICov
OyB9OworCQlBMUEyQzVDMzBFMjI3RkE0MDBCOTRFMUYgLyogWEJMVGVtcGxhdGVFbGVtZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMUEyQzVDMjBF
MjI3RkE0MDBCOTRFMUYgLyogWEJMVGVtcGxhdGVFbGVtZW50LmggKi87IH07CisJCUExQTJDNUM3
MEUyMjdGQjIwMEI5NEUxRiAvKiBYQkxCaW5kaW5nRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTFBMkM1QzQwRTIyN0ZCMjAwQjk0RTFGIC8q
IFhCTEJpbmRpbmdFbGVtZW50LmggKi87IH07CiAJCUE3MTg3NjBFMEIyQTEyMDEwMEExNkVDRSAv
KiBEcmFnQWN0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdBY3Rpb25zLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQTcxODc4OTAwQjJEMDRB
QzAwQTE2RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTcxODc4OEYwQjJEMDRBQzAwQTE2RUNFIC8qIERyYWdD
b250cm9sbGVyTWFjLm1tICovOyB9OwogCQlBNzM1MkMxOTBCMUJCODlEMDBBOTg2RDAgLyogUmVu
ZGVyU1ZHQmxvY2suY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTczNTJDMTcwQjFCQjg5RDAwQTk4NkQwIC8qIFJlbmRlclNWR0Jsb2NrLmNwcCAqLzsg
fTsKQEAgLTQwMzksNyArNDA0Miw2IEBACiAJCUVERUM5ODAzMEFFRDdFMTcwMDU5MTM3RiAvKiBX
ZWJDb3JlUHJlZml4LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBFREVDOTgwMjBBRUQ3RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZpeC5oICovOyB9Owog
CQlGOTE2QzQ4RDBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjkx
NkM0OEIwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNw
cCAqLzsgfTsKIAkJRjkxNkM0OEUwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQ
cm9ncmVzc0V2ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGOTE2QzQ4QzBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQuaCAqLzsgfTsKLQkJRjlGMEVEN0EwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1
ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjlGMEVENzcwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudC5oICovOyB9OwogCQlGOUM2NzU1RjBERUM3NkE1MDA4RDBDMkYgLyogWEJMRWxlbWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjlDNjc1
NUIwREVDNzZBNTAwOEQwQzJGIC8qIFhCTEVsZW1lbnQuaCAqLzsgfTsKIAkJRjlDNjc1NjEwREVD
NzZBNTAwOEQwQzJGIC8qIFhCTFhCTEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjlDNjc1NUQwREVDNzZBNTAwOEQwQzJGIC8qIFhCTFhC
TEVsZW1lbnQuY3BwICovOyB9OwogCQlGOUM2NzU2MjBERUM3NkE1MDA4RDBDMkYgLyogWEJMWEJM
RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjlDNjc1NUUwREVDNzZBNTAwOEQwQzJGIC8qIFhCTFhCTEVsZW1lbnQuaCAqLzsgfTsKQEAgLTQw
NDcsNiArNDA0OSw3IEBACiAJCUY5QzY3NjBCMERFQzc5MDMwMDhEMEMyRiAvKiBYQkxOYW1lcy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUM2NzYw
OTBERUM3OTAzMDA4RDBDMkYgLyogWEJMTmFtZXMuY3BwICovOyB9OwogCQlGOUM2NzYwRDBERUM3
RDRDMDA4RDBDMkYgLyogWEJMRWxlbWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5QzY3NjBDMERFQzdENEMwMDhEMEMyRiAvKiBYQkxF
bGVtZW50RmFjdG9yeS5oICovOyB9OwogCQlGOUM2NzYwRjBERUM3RDdBMDA4RDBDMkYgLyogWEJM
TmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5
QzY3NjBFMERFQzdEN0EwMDhEMEMyRiAvKiBYQkxOYW1lcy5oICovOyB9OworCQlGOUYwRUQ3QTBE
QjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUYwRUQ3NzBEQjUwQ0EyMDBE
MTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07CiAvKiBFbmQgUEJY
QnVpbGRGaWxlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVByb3h5IHNl
Y3Rpb24gKi8KQEAgLTYyOTMsNiArNjI5Niw5IEBACiAJCTk1OTY5QjQ1MEREOEQyMUIwMEY2NTNF
RSAvKiBKYXZhU2NyaXB0UHJvZmlsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKYXZhU2NyaXB0UHJvZmlsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTk1OTY5QjQ2MEREOEQyMUIwMEY2NTNFRSAvKiBKYXZhU2NyaXB0UHJvZmlsZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKYXZhU2NyaXB0UHJvZmlsZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMTE3MkQ2RDBFMEM1MzlFMDAxNzVDODggLyogWEJMRG9j
dW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWEJMRG9jdW1lbnQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQTFBMjg1NjkwRTMxNDVFRDAwMTQ1ODIyIC8q
IFhCTERpdkVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWEJMRGl2
RWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlBMUEyQzVDMjBFMjI3RkE0
MDBCOTRFMUYgLyogWEJMVGVtcGxhdGVFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFhCTFRlbXBsYXRlRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlBMUEyQzVDNDBFMjI3RkIyMDBCOTRFMUYgLyogWEJMQmluZGluZ0VsZW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWEJMQmluZGluZ0VsZW1lbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc2MEQwQjJBMTIwMTAwQTE2RUNFIC8qIERyYWdB
Y3Rpb25zLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdBY3Rpb25zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUE3MTg3ODhGMEIyRDA0QUMwMEExNkVDRSAv
KiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IERyYWdDb250cm9sbGVyTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBNzM1MkMxNzBCMUJCODlEMDBBOTg2RDAgLyogUmVuZGVyU1ZHQmxvY2suY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbmRlclNWR0Jsb2NrLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg0NjUsMTYgKzg0NzEsMTYgQEAKIAkJRjgyMTYyOTkw
MjlGNEZCNTAxMDAwMTMxIC8qIEphdmFTY3JpcHRDb3JlLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBw
YXRoID0gSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVD
VFNfRElSOyB9OwogCQlGOTE2QzQ4QjBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEpTWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJRjkxNkM0OEMwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJlcXVlc3RQcm9n
cmVzc0V2ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBKU1hNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGOUYw
RUQ3NzBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZl
bnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjlGMEVENzgwREI1MENBMjAwRDE2
REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsg
cGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCUZFNDlFRjk3MERDNTE0NjIwMDQyNjZFMSAvKiBEYXNoYm9hcmRTdXBwb3J0
Q1NTUHJvcGVydHlOYW1lcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEYXNoYm9hcmRTdXBw
b3J0Q1NTUHJvcGVydHlOYW1lcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjlD
Njc1NUIwREVDNzZBNTAwOEQwQzJGIC8qIFhCTEVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFhCTEVsZW1lbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRjlDNjc1NUQwREVDNzZBNTAwOEQwQzJGIC8qIFhCTFhCTEVsZW1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhCTFhCTEVsZW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlGOUM2NzU1RTBERUM3NkE1MDA4RDBDMkYgLyogWEJMWEJM
RWxlbWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWEJMWEJMRWxlbWVu
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGOUM2NzYwODBERUM3OTAzMDA4RDBD
MkYgLyogWEJMRWxlbWVudEZhY3RvcnkuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgbmFtZSA9IFhCTEVsZW1lbnRGYWN0b3J5LmNwcDsgcGF0aCA9IFhCTEVsZW1lbnRGYWN0b3J5
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjlDNjc2MEMwREVDN0Q0QzAwOEQw
QzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBYQkxFbGVtZW50RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlG
OUM2NzYwODBERUM3OTAzMDA4RDBDMkYgLyogWEJMRWxlbWVudEZhY3RvcnkuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhCTEVsZW1lbnRGYWN0b3J5LmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjlDNjc2MDkwREVDNzkwMzAwOEQwQzJGIC8qIFhC
TE5hbWVzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBYQkxOYW1l
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUY5QzY3NjBDMERFQzdENEMwMDhE
MEMyRiAvKiBYQkxFbGVtZW50RmFjdG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gWEJMRWxlbWVudEZhY3RvcnkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjlDNjc2MEUwREVDN0Q3QTAwOEQwQzJGIC8qIFhCTE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBYQkxOYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlGOUYwRUQ3NzBEQjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYTUxIdHRwUmVxdWVzdFByb2dy
ZXNzRXZlbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjlGMEVENzgwREI1MENB
MjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUZFNDlFRjk3MERDNTE0NjIwMDQyNjZFMSAvKiBEYXNoYm9hcmRT
dXBwb3J0Q1NTUHJvcGVydHlOYW1lcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBEYXNoYm9h
cmRTdXBwb3J0Q1NTUHJvcGVydHlOYW1lcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IC8qIEVuZCBQQlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KIAogLyogQmVnaW4gUEJYRnJhbWV3
b3Jrc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwpAQCAtMTMyOTMsNiArMTMyOTksOSBAQAogCQlGOUM2
NzU1QTBERUM3NkE1MDA4RDBDMkYgLyogeGJsICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJ
CQljaGlsZHJlbiA9ICgKKwkJCQlBMUEyODU2OTBFMzE0NUVEMDAxNDU4MjIgLyogWEJMRGl2RWxl
bWVudC5oICovLAorCQkJCUExQTJDNUM0MEUyMjdGQjIwMEI5NEUxRiAvKiBYQkxCaW5kaW5nRWxl
bWVudC5oICovLAorCQkJCUExQTJDNUMyMEUyMjdGQTQwMEI5NEUxRiAvKiBYQkxUZW1wbGF0ZUVs
ZW1lbnQuaCAqLywKIAkJCQlBMTE3MkQ2RDBFMEM1MzlFMDAxNzVDODggLyogWEJMRG9jdW1lbnQu
aCAqLywKIAkJCQlGOUM2NzU1QjBERUM3NkE1MDA4RDBDMkYgLyogWEJMRWxlbWVudC5oICovLAog
CQkJCUY5QzY3NTVEMERFQzc2QTUwMDhEMEMyRiAvKiBYQkxYQkxFbGVtZW50LmNwcCAqLywKQEAg
LTE1MzA4LDYgKzE1MzE3LDkgQEAKIAkJCQlGOUM2NzYwRDBERUM3RDRDMDA4RDBDMkYgLyogWEJM
RWxlbWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUY5QzY3NjBGMERFQzdEN0EwMDhE
MEMyRiAvKiBYQkxOYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTExNzJENkUwRTBDNTM5RTAw
MTc1Qzg4IC8qIFhCTERvY3VtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBMUEyQzVDMzBFMjI3
RkE0MDBCOTRFMUYgLyogWEJMVGVtcGxhdGVFbGVtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlB
MUEyQzVDNzBFMjI3RkIyMDBCOTRFMUYgLyogWEJMQmluZGluZ0VsZW1lbnQuaCBpbiBIZWFkZXJz
ICovLAorCQkJCUExQTI4NTZBMEUzMTQ1RUQwMDE0NTgyMiAvKiBYQkxEaXZFbGVtZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5n
ID0gMDsKIAkJfTsKSW5kZXg6IFdlYkNvcmUvZG9tL21ha2VfbmFtZXMucGwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAkocmV2aXNpb24gMzUxNTQpCisrKyBXZWJDb3Jl
L2RvbS9tYWtlX25hbWVzLnBsCSh3b3JraW5nIGNvcHkpCkBAIC0yMzgsNyArMjM4LDcgQEAgc3Vi
IHByaW50Q29uc3RydWN0b3JzCiAgICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJW5hbWVzKSB7
CiAgICAgICAgIG15ICR1Y05hbWUgPSAkbmFtZXN7JG5hbWV9eyJ1cHBlckNhc2UifTsKIAotICAg
ICAgICBwcmludCBGICIkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50KiAke25hbWV9Q29u
c3RydWN0b3IoRG9jdW1lbnQqIGRvYywgYm9vbCBjcmVhdGVkQnlQYXJzZXIpXG4iOworICAgICAg
ICBwcmludCBGICJFbGVtZW50KiAke25hbWV9Q29uc3RydWN0b3IoRG9jdW1lbnQqIGRvYywgYm9v
bCBjcmVhdGVkQnlQYXJzZXIpXG4iOwogICAgICAgICBwcmludCBGICJ7XG4iOwogICAgICAgICBw
cmludCBGICIgICAgcmV0dXJuIG5ldyAkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ30ke3VjTmFtZX1F
bGVtZW50KCR7bmFtZX1UYWcsIGRvYyk7XG4iOwogICAgICAgICBwcmludCBGICJ9XG5cbiI7CkBA
IC01MjMsNyArNTIzLDcgQEAgcHJpbnQgRiA8PEVORAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiB1c2luZyBuYW1lc3BhY2UgJHBhcmFtZXRlcnN7J2NwcE5hbWVzcGFjZSd9OjokcGFyYW1ldGVy
c3snbmFtZXNwYWNlJ31OYW1lczsKIAotdHlwZWRlZiAkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31F
bGVtZW50KiAoKkNvbnN0cnVjdG9yRnVuYykoRG9jdW1lbnQqIGRvYywgYm9vbCBjcmVhdGVkQnlQ
YXJzZXIpOwordHlwZWRlZiBFbGVtZW50KiAoKkNvbnN0cnVjdG9yRnVuYykoRG9jdW1lbnQqIGRv
YywgYm9vbCBjcmVhdGVkQnlQYXJzZXIpOwogdHlwZWRlZiBXVEY6Okhhc2hNYXA8QXRvbWljU3Ry
aW5nSW1wbCosIENvbnN0cnVjdG9yRnVuYz4gRnVuY3Rpb25NYXA7CiAKIHN0YXRpYyBGdW5jdGlv
bk1hcCogZ0Z1bmN0aW9uTWFwID0gMDsKQEAgLTU1NSw3ICs1NTUsNyBAQCBwcmludCBGICJ9XG4i
OwogcHJpbnQgRiAiI2VuZGlmXG5cbiIgaWYgJHBhcmFtZXRlcnN7J2d1YXJkRmFjdG9yeVdpdGgn
fTsKIAogcHJpbnQgRiA8PEVORAotJHBhcmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudCogJHBh
cmFtZXRlcnN7J25hbWVzcGFjZSd9RWxlbWVudEZhY3Rvcnk6OmNyZWF0ZSRwYXJhbWV0ZXJzeydu
YW1lc3BhY2UnfUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgcU5hbWUsIERvY3VtZW50KiBk
b2MsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKQorRWxlbWVudCogJHBhcmFtZXRlcnN7J25hbWVzcGFj
ZSd9RWxlbWVudEZhY3Rvcnk6OmNyZWF0ZSRwYXJhbWV0ZXJzeyduYW1lc3BhY2UnfUVsZW1lbnQo
Y29uc3QgUXVhbGlmaWVkTmFtZSYgcU5hbWUsIERvY3VtZW50KiBkb2MsIGJvb2wgY3JlYXRlZEJ5
UGFyc2VyKQogewogRU5ECiA7CkBAIC02MzMsNyArNjMzLDcgQEAgbmFtZXNwYWNlICRwYXJhbWV0
ZXJzeydjcHBOYW1lc3BhY2UnfQogICAgIHsKICAgICBwdWJsaWM6CiAgICAgICAgIFdlYkNvcmU6
OkVsZW1lbnQqIGNyZWF0ZUVsZW1lbnQoY29uc3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSYgcU5h
bWUsIFdlYkNvcmU6OkRvY3VtZW50KiBkb2MsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyID0gdHJ1ZSk7
Ci0gICAgICAgIHN0YXRpYyAkcGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50KiBjcmVhdGUk
cGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50KGNvbnN0IFdlYkNvcmU6OlF1YWxpZmllZE5h
bWUmIHFOYW1lLCBXZWJDb3JlOjpEb2N1bWVudCogZG9jLCBib29sIGNyZWF0ZWRCeVBhcnNlciA9
IHRydWUpOworICAgICAgICBzdGF0aWMgRWxlbWVudCogY3JlYXRlJHBhcmFtZXRlcnN7J25hbWVz
cGFjZSd9RWxlbWVudChjb25zdCBXZWJDb3JlOjpRdWFsaWZpZWROYW1lJiBxTmFtZSwgV2ViQ29y
ZTo6RG9jdW1lbnQqIGRvYywgYm9vbCBjcmVhdGVkQnlQYXJzZXIgPSB0cnVlKTsKICAgICB9Owog
fQogCkluZGV4OiBXZWJDb3JlL3hibC9YQkxCaW5kaW5nRWxlbWVudC5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUveGJsL1hCTEJpbmRpbmdFbGVtZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L3hibC9YQkxCaW5kaW5nRWxlbWVudC5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQ5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSnVsaWVuIENoYWZmcmFpeCA8amNoYWZmcmFpeEB3ZWJr
aXQub3JnPi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgWEJMQmluZGlu
Z0VsZW1lbnRfaAorI2RlZmluZSBYQkxCaW5kaW5nRWxlbWVudF9oCisKKyNpZiBFTkFCTEUoWEJM
KQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWEJMRWxlbWVudC5oIgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBYQkxCaW5kaW5nRWxlbWVudCA6IHB1YmxpYyBY
QkxFbGVtZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIFhCTEJpbmRpbmdFbGVtZW50KGNvbnN0
IFdlYkNvcmU6OlF1YWxpZmllZE5hbWUmIHFOYW1lLCBXZWJDb3JlOjpEb2N1bWVudCogZG9jKQor
ICAgICAgICAgICAgOiBYQkxFbGVtZW50KHFOYW1lLCBkb2MpCisgICAgICAgIHsKKyAgICAgICAg
fQorICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShY
QkwpCisKKyNlbmRpZiAvLyBYQkxCaW5kaW5nRWxlbWVudF9oCkluZGV4OiBXZWJDb3JlL3hibC9Y
QkxEaXZFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94YmwvWEJMRGl2RWxlbWVudC5o
CShyZXZpc2lvbiAwKQorKysgV2ViQ29yZS94YmwvWEJMRGl2RWxlbWVudC5oCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA4IEFwcGxlIEluYy4g
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSnVsaWVuIENoYWZm
cmFpeCA8amNoYWZmcmFpeEB3ZWJraXQub3JnPi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICov
CisKKyNpZm5kZWYgWEJMRGl2RWxlbWVudF9oCisjZGVmaW5lIFhCTERpdkVsZW1lbnRfaAorCisj
aWYgRU5BQkxFKFhCTCkKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlN0eWxlZEVs
ZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgWEJMRGl2RWxlbWVu
dCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIFhCTERpdkVs
ZW1lbnQoY29uc3QgV2ViQ29yZTo6UXVhbGlmaWVkTmFtZSYgcU5hbWUsIFdlYkNvcmU6OkRvY3Vt
ZW50KiBkb2MpCisgICAgICAgICAgICA6IFN0eWxlZEVsZW1lbnQocU5hbWUsIGRvYykKKyAgICAg
ICAgeworICAgICAgICB9CisgICAgfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFhCTCkKKworI2VuZGlmIC8vIFhCTERpdkVsZW1lbnRfaApJbmRleDogV2Vi
Q29yZS94YmwvWEJMVGVtcGxhdGVFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94Ymwv
WEJMVGVtcGxhdGVFbGVtZW50LmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3JlL3hibC9YQkxUZW1w
bGF0ZUVsZW1lbnQuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAwOCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDA4IEp1bGllbiBDaGFmZnJhaXggPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4uICBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqLworCisjaWZuZGVmIFhCTFRlbXBsYXRlRWxlbWVudF9o
CisjZGVmaW5lIFhCTFRlbXBsYXRlRWxlbWVudF9oCisKKyNpZiBFTkFCTEUoWEJMKQorCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWEJMRWxlbWVudC5oIgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKKyAgICBjbGFzcyBYQkxUZW1wbGF0ZUVsZW1lbnQgOiBwdWJsaWMgWEJMRWxlbWVu
dCB7CisgICAgcHVibGljOgorICAgICAgICBYQkxUZW1wbGF0ZUVsZW1lbnQoY29uc3QgV2ViQ29y
ZTo6UXVhbGlmaWVkTmFtZSYgcU5hbWUsIFdlYkNvcmU6OkRvY3VtZW50KiBkb2MpCisgICAgICAg
ICAgICA6IFhCTEVsZW1lbnQocU5hbWUsIGRvYykKKyAgICAgICAgeworICAgICAgICB9CisgICAg
fTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFhCTCkKKwor
I2VuZGlmIC8vIFhCTFRlbXBsYXRlRWxlbWVudF9oCkluZGV4OiBXZWJDb3JlL3hibC94Ymx0YWdz
LmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUveGJsL3hibHRhZ3MuaW4JKHJldmlzaW9uIDM1MTU0
KQorKysgV2ViQ29yZS94YmwveGJsdGFncy5pbgkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYg
QEAKIDx0YWdzIG5hbWVzcGFjZT0iWEJMIiBjcHBOYW1lc3BhY2U9IldlYkNvcmUiIG5hbWVzcGFj
ZVVSST0iaHR0cDovL3d3dy53My5vcmcvbnMveGJsIiBnZW5lcmF0ZUZhY3Rvcnk9IjEiIGd1YXJk
RmFjdG9yeVdpdGg9IkVOQUJMRShYQkwpIj4KKzxiaW5kaW5nLz4KKzxkaXYvPgorPHRlbXBsYXRl
Lz4KIDx4YmwgdXBwZXJDYXNlPSJYQkwiLz4KIDwvdGFncz4K
</data>
<flag name="review"
          id="9865"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22436</attachid>
            <date>2008-07-22 15:54:19 -0700</date>
            <delta_ts>2008-07-23 13:16:01 -0700</delta_ts>
            <desc>Repost &quot;Patch updated with Eric&apos;s comments&quot; (matches the latest discussion)</desc>
            <filename>XBLBindingHierarchy-updated2.patch</filename>
            <type>text/plain</type>
            <size>18331</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAzNTIzMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMDgtMDctMTggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQnVnIDIwMDI5OiBbWEJMXSBBZGQgbW9yZSB0YWdzCisKKyAgICAgICAgQWRkIDxiaW5k
aW5nPiBhbmQgPHRlbXBsYXRlPiBjbGFzc2VzLgorICAgICAgICBBZGQgPGRpdj4gdGFnLgorCisg
ICAgICAgIFRoZSB0d28gY2xhc3NlcyBhcmUgc3R1YnMgZm9yIHRoZSBtb21lbnQuCisKKyAgICAg
ICAgVGhlc2UgdGFncyBhcmUgcmVxdWlyZWQgdG8gaGF2ZSBhIHNpbXBsZSBYQkwgZXhhbXBsZQor
ICAgICAgICBydW5uaW5nLgorICAgICAgICAKKyAgICAgICAgWEJMRWxlbWVudCBub3cgaW5oZXJp
dHMgZnJvbSBTdHlsZWRFbGVtZW50IGFzIDxkaXY+CisgICAgICAgIGlzIGEgcGxhY2Vob2xkZXIg
Zm9yIENTUyBzdHlsZSBpbmZvcm1hdGlvbi4KKworICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vbWFrZV9uYW1lcy5wbDogQWRkICdnZW5l
cmF0ZU5hbWVPbmx5JyBhdHRyaWJ1dGUKKyAgICAgICAgdXNlZCBmb3IgPGRpdj4gYXMgd2UgZG8g
bm90IHdhbnQgdG8gYWRkIGEgc3BlY2lhbGl6ZWQKKyAgICAgICAgY2xhc3MuCisKKyAgICAgICAg
KiB4YmwvWEJMQmluZGluZ0VsZW1lbnQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpYQkxC
aW5kaW5nRWxlbWVudDo6WEJMQmluZGluZ0VsZW1lbnQpOgorICAgICAgICAqIHhibC9YQkxFbGVt
ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpYQkxFbGVtZW50OjpYQkxFbGVtZW50KTogTm93IFhC
TEVsZW1lbnQKKyAgICAgICAgaW5oZXJpdHMgZnJvbSBzdHlsZWRFbGVtZW50LgorCisgICAgICAg
ICogeGJsL1hCTFRlbXBsYXRlRWxlbWVudC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlhC
TFRlbXBsYXRlRWxlbWVudDo6WEJMVGVtcGxhdGVFbGVtZW50KToKKyAgICAgICAgKiB4YmwveGJs
dGFncy5pbjogQWRkIHRhZ3MuCisKIDIwMDgtMDctMDcgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hh
ZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYy4KSW5kZXg6IFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAzNTE1NCkK
KysrIFdlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xODI0LDYgKzE4MjQsOCBAQAogCQk5NTk2OUI0OTBERDhEMjFCMDBGNjUzRUUgLyog
SmF2YVNjcmlwdFByb2ZpbGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gOTU5NjlCNDUwREQ4RDIxQjAwRjY1M0VFIC8qIEphdmFTY3JpcHRQcm9maWxl
LmNwcCAqLzsgfTsKIAkJOTU5NjlCNEEwREQ4RDIxQjAwRjY1M0VFIC8qIEphdmFTY3JpcHRQcm9m
aWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5NTk2
OUI0NjBERDhEMjFCMDBGNjUzRUUgLyogSmF2YVNjcmlwdFByb2ZpbGUuaCAqLzsgfTsKIAkJQTEx
NzJENkUwRTBDNTM5RTAwMTc1Qzg4IC8qIFhCTERvY3VtZW50LmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMTE3MkQ2RDBFMEM1MzlFMDAxNzVDODggLyog
WEJMRG9jdW1lbnQuaCAqLzsgfTsKKwkJQTFBMkM1QzMwRTIyN0ZBNDAwQjk0RTFGIC8qIFhCTFRl
bXBsYXRlRWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTFBMkM1QzIwRTIyN0ZBNDAwQjk0RTFGIC8qIFhCTFRlbXBsYXRlRWxlbWVudC5oICov
OyB9OworCQlBMUEyQzVDNzBFMjI3RkIyMDBCOTRFMUYgLyogWEJMQmluZGluZ0VsZW1lbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEExQTJDNUM0MEUy
MjdGQjIwMEI5NEUxRiAvKiBYQkxCaW5kaW5nRWxlbWVudC5oICovOyB9OwogCQlBNzE4NzYwRTBC
MkExMjAxMDBBMTZFQ0UgLyogRHJhZ0FjdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3NjBEMEIyQTEyMDEwMEExNkVDRSAvKiBEcmFnQWN0
aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUE3MTg3ODkwMEIyRDA0QUMwMEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MTg3ODhGMEIyRDA0QUMw
MEExNkVDRSAvKiBEcmFnQ29udHJvbGxlck1hYy5tbSAqLzsgfTsKIAkJQTczNTJDMTkwQjFCQjg5
RDAwQTk4NkQwIC8qIFJlbmRlclNWR0Jsb2NrLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEE3MzUyQzE3MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5kZXJT
VkdCbG9jay5jcHAgKi87IH07CkBAIC00MDM5LDcgKzQwNDEsNiBAQAogCQlFREVDOTgwMzBBRUQ3
RTE3MDA1OTEzN0YgLyogV2ViQ29yZVByZWZpeC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRURFQzk4MDIwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQ
cmVmaXguaCAqLzsgfTsKIAkJRjkxNkM0OEQwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0cFJl
cXVlc3RQcm9ncmVzc0V2ZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY5MTZDNDhCMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5jcHAgKi87IH07CiAJCUY5MTZDNDhFMERCNTEwRjgwMDc2Q0Q4MyAvKiBK
U1hNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjkxNkM0OEMwREI1MTBGODAwNzZDRDgzIC8qIEpTWE1MSHR0
cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmggKi87IH07Ci0JCUY5RjBFRDdBMERCNTBDQTIwMEQxNkRC
OSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxI
dHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuaCAqLzsgfTsKIAkJRjlDNjc1NUYwREVDNzZBNTAwOEQw
QzJGIC8qIFhCTEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEY5QzY3NTVCMERFQzc2QTUwMDhEMEMyRiAvKiBYQkxFbGVtZW50LmggKi87IH07
CiAJCUY5QzY3NTYxMERFQzc2QTUwMDhEMEMyRiAvKiBYQkxYQkxFbGVtZW50LmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY5QzY3NTVEMERFQzc2QTUw
MDhEMEMyRiAvKiBYQkxYQkxFbGVtZW50LmNwcCAqLzsgfTsKIAkJRjlDNjc1NjIwREVDNzZBNTAw
OEQwQzJGIC8qIFhCTFhCTEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEY5QzY3NTVFMERFQzc2QTUwMDhEMEMyRiAvKiBYQkxYQkxFbGVtZW50
LmggKi87IH07CkBAIC00MDQ3LDYgKzQwNDgsNyBAQAogCQlGOUM2NzYwQjBERUM3OTAzMDA4RDBD
MkYgLyogWEJMTmFtZXMuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRjlDNjc2MDkwREVDNzkwMzAwOEQwQzJGIC8qIFhCTE5hbWVzLmNwcCAqLzsgfTsK
IAkJRjlDNjc2MEQwREVDN0Q0QzAwOEQwQzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGOUM2NzYwQzBERUM3RDRD
MDA4RDBDMkYgLyogWEJMRWxlbWVudEZhY3RvcnkuaCAqLzsgfTsKIAkJRjlDNjc2MEYwREVDN0Q3
QTAwOEQwQzJGIC8qIFhCTE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGOUM2NzYwRTBERUM3RDdBMDA4RDBDMkYgLyogWEJMTmFtZXMuaCAqLzsg
fTsKKwkJRjlGMEVEN0EwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NF
dmVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjlG
MEVENzcwREI1MENBMjAwRDE2REI5IC8qIFhNTEh0dHBSZXF1ZXN0UHJvZ3Jlc3NFdmVudC5oICov
OyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCkBAIC02MjkzLDYgKzYyOTUsOCBAQAogCQk5NTk2OUI0
NTBERDhEMjFCMDBGNjUzRUUgLyogSmF2YVNjcmlwdFByb2ZpbGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSmF2YVNjcmlwdFByb2ZpbGUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5NTk2OUI0NjBERDhEMjFCMDBGNjUzRUUgLyogSmF2YVNjcmlw
dFByb2ZpbGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSmF2YVNjcmlwdFBy
b2ZpbGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTExNzJENkQwRTBDNTM5RTAw
MTc1Qzg4IC8qIFhCTERvY3VtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFhCTERvY3VtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUExQTJDNUMyMEUy
MjdGQTQwMEI5NEUxRiAvKiBYQkxUZW1wbGF0ZUVsZW1lbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gWEJMVGVtcGxhdGVFbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUExQTJDNUM0MEUyMjdGQjIwMEI5NEUxRiAvKiBYQkxCaW5kaW5nRWxlbWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYQkxCaW5kaW5nRWxlbWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBNzE4NzYwRDBCMkExMjAxMDBBMTZFQ0UgLyog
RHJhZ0FjdGlvbnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRHJhZ0FjdGlv
bnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTcxODc4OEYwQjJEMDRBQzAwQTE2
RUNFIC8qIERyYWdDb250cm9sbGVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gRHJhZ0NvbnRyb2xsZXJNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUE3MzUyQzE3MEIxQkI4OUQwMEE5ODZEMCAvKiBSZW5kZXJTVkdCbG9jay5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHQmxvY2suY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODQ2NSwxNiArODQ2OSwxNiBAQAogCQlGODIx
NjI5OTAyOUY0RkI1MDEwMDAxMzEgLyogSmF2YVNjcmlwdENvcmUuZnJhbWV3b3JrICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdv
cms7IHBhdGggPSBKYXZhU2NyaXB0Q29yZS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSBCVUlMVF9Q
Uk9EVUNUU19ESVI7IH07CiAJCUY5MTZDNDhCMERCNTEwRjgwMDc2Q0Q4MyAvKiBKU1hNTEh0dHBS
ZXF1ZXN0UHJvZ3Jlc3NFdmVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gSlNYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlGOTE2QzQ4QzBEQjUxMEY4MDA3NkNEODMgLyogSlNYTUxIdHRwUmVxdWVz
dFByb2dyZXNzRXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEpTWE1M
SHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0J
CUY5RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNzRXZlbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0UHJvZ3Jl
c3NFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGOUYwRUQ3ODBEQjUwQ0Ey
MDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJRkU0OUVGOTcwREM1MTQ2MjAwNDI2NkUxIC8qIERhc2hib2FyZFN1
cHBvcnRDU1NQcm9wZXJ0eU5hbWVzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERhc2hib2Fy
ZFN1cHBvcnRDU1NQcm9wZXJ0eU5hbWVzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGOUM2NzU1QjBERUM3NkE1MDA4RDBDMkYgLyogWEJMRWxlbWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gWEJMRWxlbWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGOUM2NzU1RDBERUM3NkE1MDA4RDBDMkYgLyogWEJMWEJMRWxlbWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWEJMWEJMRWxlbWVudC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY5QzY3NTVFMERFQzc2QTUwMDhEMEMyRiAvKiBY
QkxYQkxFbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYQkxYQkxF
bGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY5QzY3NjA4MERFQzc5MDMw
MDhEMEMyRiAvKiBYQkxFbGVtZW50RmFjdG9yeS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBuYW1lID0gWEJMRWxlbWVudEZhY3RvcnkuY3BwOyBwYXRoID0gWEJMRWxlbWVudEZh
Y3RvcnkuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlGOUM2NzYwQzBERUM3RDRD
MDA4RDBDMkYgLyogWEJMRWxlbWVudEZhY3RvcnkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFhCTEVsZW1lbnRGYWN0b3J5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUY5QzY3NjA4MERFQzc5MDMwMDhEMEMyRiAvKiBYQkxFbGVtZW50RmFjdG9yeS5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gWEJMRWxlbWVudEZhY3RvcnkuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGOUM2NzYwOTBERUM3OTAzMDA4RDBDMkYg
LyogWEJMTmFtZXMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFhC
TE5hbWVzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRjlDNjc2MEMwREVDN0Q0
QzAwOEQwQzJGIC8qIFhCTEVsZW1lbnRGYWN0b3J5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBYQkxFbGVtZW50RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlGOUM2NzYwRTBERUM3RDdBMDA4RDBDMkYgLyogWEJMTmFtZXMuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhCTE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUY5RjBFRDc3MERCNTBDQTIwMEQxNkRCOSAvKiBYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhNTEh0dHBSZXF1ZXN0
UHJvZ3Jlc3NFdmVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlGOUYwRUQ3ODBE
QjUwQ0EyMDBEMTZEQjkgLyogWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRkU0OUVGOTcwREM1MTQ2MjAwNDI2NkUxIC8qIERhc2hi
b2FyZFN1cHBvcnRDU1NQcm9wZXJ0eU5hbWVzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IERh
c2hib2FyZFN1cHBvcnRDU1NQcm9wZXJ0eU5hbWVzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogLyogRW5kIFBCWEZpbGVSZWZlcmVuY2Ugc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBQQlhG
cmFtZXdvcmtzQnVpbGRQaGFzZSBzZWN0aW9uICovCkBAIC0xMzI5Myw2ICsxMzI5Nyw4IEBACiAJ
CUY5QzY3NTVBMERFQzc2QTUwMDhEMEMyRiAvKiB4YmwgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91
cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCUExQTJDNUM0MEUyMjdGQjIwMEI5NEUxRiAvKiBYQkxC
aW5kaW5nRWxlbWVudC5oICovLAorCQkJCUExQTJDNUMyMEUyMjdGQTQwMEI5NEUxRiAvKiBYQkxU
ZW1wbGF0ZUVsZW1lbnQuaCAqLywKIAkJCQlBMTE3MkQ2RDBFMEM1MzlFMDAxNzVDODggLyogWEJM
RG9jdW1lbnQuaCAqLywKIAkJCQlGOUM2NzU1QjBERUM3NkE1MDA4RDBDMkYgLyogWEJMRWxlbWVu
dC5oICovLAogCQkJCUY5QzY3NTVEMERFQzc2QTUwMDhEMEMyRiAvKiBYQkxYQkxFbGVtZW50LmNw
cCAqLywKQEAgLTE1MzA4LDYgKzE1MzE0LDggQEAKIAkJCQlGOUM2NzYwRDBERUM3RDRDMDA4RDBD
MkYgLyogWEJMRWxlbWVudEZhY3RvcnkuaCBpbiBIZWFkZXJzICovLAogCQkJCUY5QzY3NjBGMERF
QzdEN0EwMDhEMEMyRiAvKiBYQkxOYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTExNzJENkUw
RTBDNTM5RTAwMTc1Qzg4IC8qIFhCTERvY3VtZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlBMUEy
QzVDMzBFMjI3RkE0MDBCOTRFMUYgLyogWEJMVGVtcGxhdGVFbGVtZW50LmggaW4gSGVhZGVycyAq
LywKKwkJCQlBMUEyQzVDNzBFMjI3RkIyMDBCOTRFMUYgLyogWEJMQmluZGluZ0VsZW1lbnQuaCBp
biBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3Np
bmcgPSAwOwogCQl9OwpJbmRleDogV2ViQ29yZS9kb20vbWFrZV9uYW1lcy5wbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2RvbS9tYWtlX25hbWVzLnBsCShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNv
cmUvZG9tL21ha2VfbmFtZXMucGwJKHdvcmtpbmcgY29weSkKQEAgLTg2LDcgKzg2LDggQEAgaWYg
KCRwYXJhbWV0ZXJzeydnZW5lcmF0ZVdyYXBwZXJGYWN0b3J5Jwogc3ViIGluaXRpYWxpemVUYWdQ
cm9wZXJ0eUhhc2gKIHsKICAgICByZXR1cm4gKCd1cHBlckNhc2UnID0+IHVwcGVyQ2FzZU5hbWUo
JF9bMF0pLAotICAgICAgICAgICAgJ2FwcGx5QXVkaW9IYWNrJyA9PiAwKTsKKyAgICAgICAgICAg
ICdhcHBseUF1ZGlvSGFjaycgPT4gMCwKKyAgICAgICAgICAgICdnZW5lcmF0ZU5hbWVPbmx5JyA9
PiAwKTsKIH0KIAogc3ViIGluaXRpYWxpemVBdHRyUHJvcGVydHlIYXNoCkBAIC0yMzYsNiArMjM3
LDggQEAgc3ViIHByaW50Q29uc3RydWN0b3JzCiAKICAgICBwcmludCBGICIjaWYgJHBhcmFtZXRl
cnN7J2d1YXJkRmFjdG9yeVdpdGgnfVxuIiBpZiAkcGFyYW1ldGVyc3snZ3VhcmRGYWN0b3J5V2l0
aCd9OwogICAgIGZvciBteSAkbmFtZSAoc29ydCBrZXlzICVuYW1lcykgeworICAgICAgICBuZXh0
IGlmICgkbmFtZXN7JG5hbWV9eydnZW5lcmF0ZU5hbWVPbmx5J30pOworCiAgICAgICAgIG15ICR1
Y05hbWUgPSAkbmFtZXN7JG5hbWV9eyJ1cHBlckNhc2UifTsKIAogICAgICAgICBwcmludCBGICIk
cGFyYW1ldGVyc3snbmFtZXNwYWNlJ31FbGVtZW50KiAke25hbWV9Q29uc3RydWN0b3IoRG9jdW1l
bnQqIGRvYywgYm9vbCBjcmVhdGVkQnlQYXJzZXIpXG4iOwpAQCAtMjQ5LDcgKzI1MiwxMCBAQCBz
dWIgcHJpbnRDb25zdHJ1Y3RvcnMKIHN1YiBwcmludEZ1bmN0aW9uSW5pdHMKIHsKICAgICBteSAo
JEYsICRuYW1lc1JlZikgPSBAXzsKLSAgICBmb3IgbXkgJG5hbWUgKHNvcnQga2V5cyAlJG5hbWVz
UmVmKSB7CisgICAgbXkgJW5hbWVzID0gJSRuYW1lc1JlZjsKKyAgICBmb3IgbXkgJG5hbWUgKHNv
cnQga2V5cyAlbmFtZXMpIHsKKyAgICAgICAgbmV4dCBpZiAoJG5hbWVzeyRuYW1lfXsnZ2VuZXJh
dGVOYW1lT25seSd9KTsKKyAgICAgICAgCiAgICAgICAgIHByaW50IEYgIiAgICBnRnVuY3Rpb25N
YXAtPnNldCgke25hbWV9VGFnLmxvY2FsTmFtZSgpLmltcGwoKSwgJHtuYW1lfUNvbnN0cnVjdG9y
KTtcbiI7CiAgICAgfQogfQpAQCAtNDU5LDcgKzQ2NSw3IEBAIHN1YiBwcmludEVsZW1lbnRJbmNs
dWRlcwogICAgIG15ICgkRiwgJG5hbWVzUmVmLCAkc2hvdWxkU2tpcEN1c3RvbU1hcHBpbmdzKSA9
IEBfOwogICAgIG15ICVuYW1lcyA9ICUkbmFtZXNSZWY7CiAgICAgZm9yIG15ICRuYW1lIChzb3J0
IGtleXMgJW5hbWVzKSB7Ci0gICAgICAgIG5leHQgaWYgKCRzaG91bGRTa2lwQ3VzdG9tTWFwcGlu
Z3MgJiYgaGFzQ3VzdG9tTWFwcGluZygkbmFtZSkpOworICAgICAgICBuZXh0IGlmICgkbmFtZXN7
JG5hbWV9eydnZW5lcmF0ZU5hbWVPbmx5J30gfHwgKCRzaG91bGRTa2lwQ3VzdG9tTWFwcGluZ3Mg
JiYgaGFzQ3VzdG9tTWFwcGluZygkbmFtZSkpKTsKIAogICAgICAgICBteSAkdWNOYW1lID0gJG5h
bWVzeyRuYW1lfXsidXBwZXJDYXNlIn07CiAgICAgICAgIHByaW50IEYgIiNpbmNsdWRlIFwiJHBh
cmFtZXRlcnN7J25hbWVzcGFjZSd9JHt1Y05hbWV9RWxlbWVudC5oXCJcbiI7CkBAIC03MjEsNyAr
NzI3LDcgQEAgc3ViIHByaW50V3JhcHBlckZ1bmN0aW9ucwogICAgIG15ICVuYW1lcyA9ICUkbmFt
ZXNSZWY7CiAgICAgZm9yIG15ICRuYW1lIChzb3J0IGtleXMgJW5hbWVzKSB7CiAgICAgICAgICMg
Q3VzdG9tIG1hcHBpbmcgZG8gbm90IG5lZWQgYSBKUyB3cmFwcGVyCi0gICAgICAgIG5leHQgaWYg
KGhhc0N1c3RvbU1hcHBpbmcoJG5hbWUpKTsKKyAgICAgICAgbmV4dCBpZiAoJG5hbWVzeyRuYW1l
fXsnZ2VuZXJhdGVOYW1lT25seSd9IHx8IGhhc0N1c3RvbU1hcHBpbmcoJG5hbWUpKTsKIAogICAg
ICAgICBteSAkdWNOYW1lID0gJG5hbWVzeyRuYW1lfXsidXBwZXJDYXNlIn07CiAgICAgICAgICMg
SGFjayBmb3IgdGhlIG1lZGlhIHRhZ3MKQEAgLTc5Miw3ICs3OTgsNyBAQCBFTkQKIDsKIAogICAg
IGZvciBteSAkdGFnIChzb3J0IGtleXMgJXRhZ3MpIHsKLSAgICAgICAgbmV4dCBpZiAoaGFzQ3Vz
dG9tTWFwcGluZygkdGFnKSk7CisgICAgICAgIG5leHQgaWYgKCR0YWdzeyR0YWd9eydnZW5lcmF0
ZU5hbWVPbmx5J30gfHwgaGFzQ3VzdG9tTWFwcGluZygkdGFnKSk7CiAKICAgICAgICAgbXkgJHVj
VGFnID0gJHRhZ3N7JHRhZ317InVwcGVyQ2FzZSJ9OwogICAgICAgICBwcmludCBGICIgICAgICAg
bWFwLnNldCgke3RhZ31UYWcubG9jYWxOYW1lKCkuaW1wbCgpLCBjcmVhdGUke3VjVGFnfVdyYXBw
ZXIpO1xuIjsKSW5kZXg6IFdlYkNvcmUveGJsL1hCTEJpbmRpbmdFbGVtZW50LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS94YmwvWEJMQmluZGluZ0VsZW1lbnQuaAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUveGJsL1hCTEJpbmRpbmdFbGVtZW50LmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMDggSnVsaWVuIENoYWZmcmFpeCA8amNoYWZmcmFp
eEB3ZWJraXQub3JnPi4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICog
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICovCisKKyNpZm5kZWYgWEJM
QmluZGluZ0VsZW1lbnRfaAorI2RlZmluZSBYQkxCaW5kaW5nRWxlbWVudF9oCisKKyNpZiBFTkFC
TEUoWEJMKQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiWEJMRWxlbWVudC5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKKyAgICBjbGFzcyBYQkxCaW5kaW5nRWxlbWVudCA6IHB1
YmxpYyBYQkxFbGVtZW50IHsKKyAgICBwdWJsaWM6CisgICAgICAgIFhCTEJpbmRpbmdFbGVtZW50
KGNvbnN0IFdlYkNvcmU6OlF1YWxpZmllZE5hbWUmIHFOYW1lLCBXZWJDb3JlOjpEb2N1bWVudCog
ZG9jKQorICAgICAgICAgICAgOiBYQkxFbGVtZW50KHFOYW1lLCBkb2MpCisgICAgICAgIHsKKyAg
ICAgICAgfQorICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShYQkwpCisKKyNlbmRpZiAvLyBYQkxCaW5kaW5nRWxlbWVudF9oCkluZGV4OiBXZWJDb3Jl
L3hibC9YQkxFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94YmwvWEJMRWxlbWVudC5o
CShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNvcmUveGJsL1hCTEVsZW1lbnQuaAkod29ya2luZyBj
b3B5KQpAQCAtMjksMTQgKzI5LDE0IEBACiAjaWYgRU5BQkxFKFhCTCkKIAogI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJTdHlsZWRFbGVtZW50Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIFhCTEVsZW1lbnQgOiBwdWJsaWMg
RWxlbWVudCB7CisgICAgY2xhc3MgWEJMRWxlbWVudCA6IHB1YmxpYyBTdHlsZWRFbGVtZW50IHsK
ICAgICBwdWJsaWM6CiAgICAgICAgIFhCTEVsZW1lbnQoY29uc3QgV2ViQ29yZTo6UXVhbGlmaWVk
TmFtZSYgcU5hbWUsIFdlYkNvcmU6OkRvY3VtZW50KiBkb2MpCi0gICAgICAgICAgICA6IEVsZW1l
bnQocU5hbWUsIGRvYykKKyAgICAgICAgICAgIDogU3R5bGVkRWxlbWVudChxTmFtZSwgZG9jKQog
ICAgICAgICB7CiAgICAgICAgIH0KIApJbmRleDogV2ViQ29yZS94YmwvWEJMVGVtcGxhdGVFbGVt
ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS94YmwvWEJMVGVtcGxhdGVFbGVtZW50LmgJKHJl
dmlzaW9uIDApCisrKyBXZWJDb3JlL3hibC9YQkxUZW1wbGF0ZUVsZW1lbnQuaAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAwOCBKdWxpZW4gQ2hh
ZmZyYWl4IDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVS
LCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIs
IElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisg
KiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisg
Ki8KKworI2lmbmRlZiBYQkxUZW1wbGF0ZUVsZW1lbnRfaAorI2RlZmluZSBYQkxUZW1wbGF0ZUVs
ZW1lbnRfaAorCisjaWYgRU5BQkxFKFhCTCkKKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlhCTEVsZW1lbnQuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisgICAgY2xhc3MgWEJM
VGVtcGxhdGVFbGVtZW50IDogcHVibGljIFhCTEVsZW1lbnQgeworICAgIHB1YmxpYzoKKyAgICAg
ICAgWEJMVGVtcGxhdGVFbGVtZW50KGNvbnN0IFdlYkNvcmU6OlF1YWxpZmllZE5hbWUmIHFOYW1l
LCBXZWJDb3JlOjpEb2N1bWVudCogZG9jKQorICAgICAgICAgICAgOiBYQkxFbGVtZW50KHFOYW1l
LCBkb2MpCisgICAgICAgIHsKKyAgICAgICAgfQorICAgIH07CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShYQkwpCisKKyNlbmRpZiAvLyBYQkxUZW1wbGF0ZUVs
ZW1lbnRfaApJbmRleDogV2ViQ29yZS94YmwveGJsdGFncy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3hibC94Ymx0YWdzLmluCShyZXZpc2lvbiAzNTE1NCkKKysrIFdlYkNvcmUveGJsL3hibHRh
Z3MuaW4JKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2IEBACiA8dGFncyBuYW1lc3BhY2U9IlhC
TCIgY3BwTmFtZXNwYWNlPSJXZWJDb3JlIiBuYW1lc3BhY2VVUkk9Imh0dHA6Ly93d3cudzMub3Jn
L25zL3hibCIgZ2VuZXJhdGVGYWN0b3J5PSIxIiBndWFyZEZhY3RvcnlXaXRoPSJFTkFCTEUoWEJM
KSI+Cis8YmluZGluZy8+Cis8ZGl2IGdlbmVyYXRlTmFtZU9ubHk9IjEiLz4KKzx0ZW1wbGF0ZS8+
CiA8eGJsIHVwcGVyQ2FzZT0iWEJMIi8+CiA8L3RhZ3M+Cg==
</data>
<flag name="review"
          id="9895"
          type_id="1"
          status="+"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>