<?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>114029</bug_id>
          
          <creation_ts>2013-04-05 06:00:45 -0700</creation_ts>
          <short_desc>Incorrect evaluation of resolution media queries</short_desc>
          <delta_ts>2013-04-11 01:59:01 -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>CSS</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>0</everconfirmed>
          <reporter name="Rune Lillesveen">rune</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>alexander.shalamov</cc>
    
    <cc>bdakin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kenneth</cc>
    
    <cc>koivisto</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ojan.autocc</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>869723</commentid>
    <comment_count>0</comment_count>
    <who name="Rune Lillesveen">rune</who>
    <bug_when>2013-04-05 06:00:45 -0700</bug_when>
    <thetext>The current implementation of the resolultion media feature, inside ENABLE(RESOLUTION_MEDIA_QUERY) if-defs, do calculations involving the physical resolution instead of the actual CSS resolution directly.

In addition to the Media Queries spec, see:

http://www.w3.org/blog/CSS/2012/06/14/unprefix-webkit-device-pixel-ratio/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869738</commentid>
    <comment_count>1</comment_count>
      <attachid>196626</attachid>
    <who name="Rune Lillesveen">rune</who>
    <bug_when>2013-04-05 06:28:15 -0700</bug_when>
    <thetext>Created attachment 196626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>869740</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-04-05 06:33:01 -0700</bug_when>
    <thetext>Attachment 196626 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/media/mq-resolution.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValue.h&apos;, u&apos;Source/WebCore/css/MediaQueryEvaluator.cpp&apos;]&quot; exit_code: 1
Source/WebCore/css/MediaQueryEvaluator.cpp:303:  device_pixel_ratioMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 1 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872743</commentid>
    <comment_count>3</comment_count>
      <attachid>197253</attachid>
    <who name="Rune Lillesveen">rune</who>
    <bug_when>2013-04-10 06:14:51 -0700</bug_when>
    <thetext>Created attachment 197253
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872744</commentid>
    <comment_count>4</comment_count>
      <attachid>197253</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-04-10 06:21:32 -0700</bug_when>
    <thetext>Comment on attachment 197253
Patch

Attachment 197253 did not pass efl-ews (efl):
Output: http://webkit-commit-queue.appspot.com/results/17732056</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872747</commentid>
    <comment_count>5</comment_count>
      <attachid>197253</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-04-10 06:26:25 -0700</bug_when>
    <thetext>Comment on attachment 197253
Patch

Attachment 197253 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17728027</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872748</commentid>
    <comment_count>6</comment_count>
      <attachid>197253</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-04-10 06:26:34 -0700</bug_when>
    <thetext>Comment on attachment 197253
Patch

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

Please do the style fix in a separate patch.

So &quot;print&quot; now follows the dpi of the screen? It would be nice that the high resolution images were used when printing

&gt; Source/WebCore/ChangeLog:14
&gt; +
&gt; +        To pass the coding style, the media feature enums and method names
&gt; +        have been changed.

We usually don&apos;t do such changes together with a bug fix. It should really be a separate patch. The style comments are only &quot;educational&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872755</commentid>
    <comment_count>7</comment_count>
      <attachid>197257</attachid>
    <who name="Rune Lillesveen">rune</who>
    <bug_when>2013-04-10 06:39:57 -0700</bug_when>
    <thetext>Created attachment 197257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872757</commentid>
    <comment_count>8</comment_count>
      <attachid>197253</attachid>
    <who name="Rune Lillesveen">rune</who>
    <bug_when>2013-04-10 06:43:30 -0700</bug_when>
    <thetext>Comment on attachment 197253
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:14
&gt;&gt; +        have been changed.
&gt; 
&gt; We usually don&apos;t do such changes together with a bug fix. It should really be a separate patch. The style comments are only &quot;educational&quot;

OK. I&apos;ve re-uploaded the first patch now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872758</commentid>
    <comment_count>9</comment_count>
      <attachid>197257</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-04-10 06:44:54 -0700</bug_when>
    <thetext>Comment on attachment 197257
Patch

r=me, will you look at print afterwards?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872761</commentid>
    <comment_count>10</comment_count>
      <attachid>197257</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-04-10 06:46:05 -0700</bug_when>
    <thetext>Comment on attachment 197257
Patch

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

&gt; LayoutTests/fast/media/mq-resolution.html:-60
&gt;  
&gt; -        window.internals.settings.setResolutionOverride(96, 96);

btw can&apos;t you remove this testing method as well? If it is not used for something else, I think you ought to</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872763</commentid>
    <comment_count>11</comment_count>
    <who name="Rune Lillesveen">rune</who>
    <bug_when>2013-04-10 06:49:08 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 197257 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=197257&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/media/mq-resolution.html:-60
&gt; &gt;  
&gt; &gt; -        window.internals.settings.setResolutionOverride(96, 96);
&gt; 
&gt; btw can&apos;t you remove this testing method as well? If it is not used for something else, I think you ought to

In the same patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872764</commentid>
    <comment_count>12</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-04-10 06:50:49 -0700</bug_when>
    <thetext>
&gt; In the same patch?

That would be fine, but it could also be a separate patch if you commit to doing it within reasonable time. I think that I would prefer the former</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872766</commentid>
    <comment_count>13</comment_count>
    <who name="Rune Lillesveen">rune</who>
    <bug_when>2013-04-10 06:53:09 -0700</bug_when>
    <thetext>(In reply to comment #6)

&gt; So &quot;print&quot; now follows the dpi of the screen? It would be nice that the high resolution images were used when printing

No, print will use 300dpi as before my patch. The evaluation code for devicePixelRatio, now also used for resolution, already did that too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872769</commentid>
    <comment_count>14</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-04-10 06:54:26 -0700</bug_when>
    <thetext> &gt; No, print will use 300dpi as before my patch. The evaluation code for devicePixelRatio, now also used for resolution, already did that too.

Ah great, perfect!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872822</commentid>
    <comment_count>15</comment_count>
      <attachid>197274</attachid>
    <who name="Rune Lillesveen">rune</who>
    <bug_when>2013-04-10 09:06:49 -0700</bug_when>
    <thetext>Created attachment 197274
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872824</commentid>
    <comment_count>16</comment_count>
      <attachid>197274</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-04-10 09:11:23 -0700</bug_when>
    <thetext>Comment on attachment 197274
Patch

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

&gt; Source/WebCore/ChangeLog:13
&gt; +        evaluating the resolution and device-pixel-ratio media features.
&gt; +
&gt; +        * WebCore.exp.in:

I would add &quot;Covered by existing tests&quot; or similar</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>872893</commentid>
    <comment_count>17</comment_count>
      <attachid>197305</attachid>
    <who name="Rune Lillesveen">rune</who>
    <bug_when>2013-04-10 09:26:28 -0700</bug_when>
    <thetext>Created attachment 197305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873038</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-10 11:24:23 -0700</bug_when>
    <thetext>Attachment 197305 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;ChangeLog&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/fast/media/mq-resolution.html&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCore/WebCore.exp.in&apos;, u&apos;Source/WebCore/css/CSSPrimitiveValue.h&apos;, u&apos;Source/WebCore/css/MediaQueryEvaluator.cpp&apos;, u&apos;Source/WebCore/page/Screen.cpp&apos;, u&apos;Source/WebCore/page/Screen.h&apos;, u&apos;Source/WebCore/page/Settings.cpp&apos;, u&apos;Source/WebCore/page/Settings.h&apos;, u&apos;Source/WebCore/testing/InternalSettings.cpp&apos;, u&apos;Source/WebCore/testing/InternalSettings.h&apos;, u&apos;Source/WebCore/testing/InternalSettings.idl&apos;, u&apos;Source/WebKit/ChangeLog&apos;, u&apos;Source/WebKit/WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in&apos;, u&apos;Source/WebKit/win/ChangeLog&apos;, u&apos;Source/WebKit/win/WebKit.vcproj/WebKitExports.def.in&apos;, u&apos;Source/autotools/symbols.filter&apos;]&quot; exit_code: 1
Source/WebCore/css/MediaQueryEvaluator.cpp:303:  device_pixel_ratioMediaFeatureEval is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873606</commentid>
    <comment_count>19</comment_count>
      <attachid>197305</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2013-04-11 01:12:04 -0700</bug_when>
    <thetext>Comment on attachment 197305
Patch

Want to set cq?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873625</commentid>
    <comment_count>20</comment_count>
      <attachid>197305</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-11 01:58:58 -0700</bug_when>
    <thetext>Comment on attachment 197305
Patch

Clearing flags on attachment: 197305

Committed r148186: &lt;http://trac.webkit.org/changeset/148186&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>873626</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-04-11 01:59:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>196626</attachid>
            <date>2013-04-05 06:28:15 -0700</date>
            <delta_ts>2013-04-10 06:14:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114029-20130405152803.patch</filename>
            <type>text/plain</type>
            <size>12821</size>
            <attacher name="Rune Lillesveen">rune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjAyMzlkMmY5YTEwMGQ5
ZTM0ZWEyYzZhNWZiNGIyYjJjOWY5NjA1Mi4uZjlhMThmZDRlNzA5MDRjMDZjZjNhZjNkYTgzMWY5
YmRiMmM5NDhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTA0LTA1ICBSdW5l
IExpbGxlc3ZlZW4gIDxydW5lQG9wZXJhLmNvbT4KKworICAgICAgICBJbmNvcnJlY3QgZXZhbHVh
dGlvbiBvZiByZXNvbHV0aW9uIG1lZGlhIHF1ZXJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiB1c2VkIHRoZSBwaHlz
aWNhbCByZXNvbHV0aW9uIHRvIGV2YWx1YXRlIHRoZQorICAgICAgICByZXNvbHV0aW9uIG1lZGlh
IGZlYXR1cmVzLiBDaGFuZ2VkIHRvIHVzZSB0aGUgYWN0dWFsIENTUyByZXNvbHV0aW9uLAorICAg
ICAgICBhbHNvIGtub3duIGFzIHRoZSBkZXZpY2UtcGl4ZWwtcmF0aW8sIGluc3RlYWQuIFVuaWZp
ZWQgdGhlIGNvZGUgZm9yCisgICAgICAgIGV2YWx1YXRpbmcgdGhlIHJlc29sdXRpb24gYW5kIGRl
dmljZS1waXhlbC1yYXRpbyBtZWRpYSBmZWF0dXJlcy4KKworICAgICAgICAqIGNzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmlzUmVz
b2x1dGlvbik6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6ZXZhbFJlc29sdXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNlX3Bp
eGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHV0aW9u
TWVkaWFGZWF0dXJlRXZhbCk6CisKIDIwMTMtMDQtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIENocm9taXVtIGNvZGUgZnJvbSBXZWJDb3JlL2Vk
aXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggMThkMjNmYWU3
YjAwYjE3NTM0Yzc0ZmMwNzI3YmEwNTdjMDIwZjliZS4uZGEzYTMzYjMyY2Q5YzE5YzNlYTFhM2Zi
YTRhNjg2OTg5YjRmYTJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgK
QEAgLTE4OSw2ICsxODksMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNEb3RzUGVySW5jaCgpIGNv
bnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBJOyB9CiAgICAgYm9vbCBpc0Rv
dHNQZXJQaXhlbCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBQWDsg
fQogICAgIGJvb2wgaXNEb3RzUGVyQ2VudGltZXRlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2
ZVR5cGUoKSA9PSBDU1NfRFBDTTsgfQorICAgIGJvb2wgaXNSZXNvbHV0aW9uKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHVuc2lnbmVkIHNob3J0IHR5cGUgPSBwcmltaXRpdmVUeXBlKCk7CisgICAg
ICAgIHJldHVybiB0eXBlID49IENTU19EUFBYICYmIHR5cGUgPD0gQ1NTX0RQQ007CisgICAgfQog
CiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAgICAgYm9vbCBpc1ZhcmlhYmxlTmFtZSgpIGNv
bnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfVkFSSUFCTEVfTkFNRTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGMyZmMwZjYxOWY3
NDQ4NDRhZjM1N2RiNjg5NDJjYjg5ZGQxZGU3NzAuLjNlYzZiOTdjZDI0ZjIwYmQwMTNjNTMyYzAz
ZDc0ZjhjM2I0ZjZjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRv
ci5jcHAKQEAgLTE5OCwyMyArMTk4LDYgQEAgc3RhdGljIGJvb2wgY29tcGFyZUFzcGVjdFJhdGlv
VmFsdWUoQ1NTVmFsdWUqIHZhbHVlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIE1lZGkKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKLXN0
YXRpYyBib29sIGNvbXBhcmVSZXNvbHV0aW9uKGZsb2F0IG1pbiwgZmxvYXQgbWF4LCBmbG9hdCB2
YWx1ZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQotewotICAgIHN3aXRjaCAob3ApIHsKLSAgICBj
YXNlIE5vUHJlZml4OgotICAgICAgICAvLyBBICdyZXNvbHV0aW9uJyAod2l0aG91dCBhICJtaW4t
IiBvciAibWF4LSIgcHJlZml4KSBxdWVyeQotICAgICAgICAvLyBuZXZlciBtYXRjaGVzIGEgZGV2
aWNlIHdpdGggbm9uLXNxdWFyZSBwaXhlbHMuCi0gICAgICAgIHJldHVybiB2YWx1ZSA9PSBtaW4g
JiYgdmFsdWUgPT0gbWF4OwotICAgIGNhc2UgTWluUHJlZml4OgotICAgICAgICByZXR1cm4gbWlu
ID49IHZhbHVlOwotICAgIGNhc2UgTWF4UHJlZml4OgotICAgICAgICByZXR1cm4gbWF4IDw9IHZh
bHVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0jZW5kaWYKLQogc3RhdGljIGJvb2wg
bnVtYmVyVmFsdWUoQ1NTVmFsdWUqIHZhbHVlLCBmbG9hdCYgcmVzdWx0KQogewogICAgIGlmICh2
YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpCkBAIC0yODgsNyArMjcxLDcgQEAgc3RhdGljIGJvb2wg
ZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5k
ZXJTdHlsZSosIEYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgZGV2aWNlX3Bp
eGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSAqdmFsdWUsIFJlbmRlclN0eWxlKiwg
RnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCitzdGF0aWMgYm9vbCBldmFsUmVz
b2x1dGlvbihDU1NWYWx1ZSogdmFsdWUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4
IG9wKQogewogICAgIC8vIEZJWE1FOiBQb3NzaWJsZSBoYW5kbGUgb3RoZXIgbWVkaWEgdHlwZXMg
dGhhbiAnc2NyZWVuJyBhbmQgJ3ByaW50Jy4KICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9
IDA7CkBAIC0zMTAsMTA4ICsyOTMsMjggQEAgc3RhdGljIGJvb2wgZGV2aWNlX3BpeGVsX3JhdGlv
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSAqdmFsdWUsIFJlbmRlclN0eWxlKiwgRnIKICAgICBp
ZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gISFkZXZpY2VTY2FsZUZhY3RvcjsKIAotICAgIHJl
dHVybiB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpICYmIGNvbXBhcmVWYWx1ZShkZXZpY2VTY2Fs
ZUZhY3Rvciwgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldEZsb2F0
VmFsdWUoKSwgb3ApOwotfQotCi1zdGF0aWMgYm9vbCByZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZh
bChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1
cmVQcmVmaXggb3ApCi17Ci0jaWYgRU5BQkxFKFJFU09MVVRJT05fTUVESUFfUVVFUlkpCi0gICAg
Ly8gVGhlIERQSSBiZWxvdyBpcyBkb3RzIHBlciBDU1MgaW5jaCBhbmQgdGh1cyBub3QgZGV2aWNl
IGluY2guIFRoZQotICAgIC8vIGZ1bmN0aW9ucyBzaG91bGQgcmVzcGVjdCB0aGlzLgotICAgIC8v
Ci0gICAgLy8gRm9yIHNxdWFyZSBwaXhlbHMsIGl0IGlzIHNpbXBseSB0aGUgZGV2aWNlIHNjYWxl
IGZhY3RvciAoZHBweCkgdGltZXMgOTYsCi0gICAgLy8gcGVyIGRlZmluaXRpb24uCi0gICAgLy8K
LSAgICAvLyBUaGUgZGV2aWNlIHNjYWxlIGZhY3RvciBpcyBhIHByZWRlZmluZWQgdmFsdWUgd2hp
Y2ggaXMgY2FsY3VsYXRlZCBwZXIKLSAgICAvLyBkZXZpY2UgZ2l2ZW4gdGhlIHByZWZlcnJlZCBk
aXN0YW5jZSBpbiBhcm1zIGxlbmd0aCAoY29uc2lkZXJlZCBvbmUgYXJtcwotICAgIC8vIGxlbmd0
aCBmb3IgZGVza3RvcCBjb21wdXRlcnMgYW5kIHVzdWFsbHkgMC42IGFybXMgbGVuZ3RoIGZvciBw
aG9uZXMpLgotICAgIC8vCi0gICAgLy8gVGhlIHZhbHVlIGNhbiBiZSBjYWxjdWxhdGVkIGFzIGZv
bGxvd3MgKHJvdW5kZWQgdG8gcXVhcnRlcnMpOgotICAgIC8vICAgICByb3VuZCgoZGV2aWNlRG90
c1BlckluY2ggKiBkaXN0YW5jZUluQXJtc0xlbmd0aCAvIDk2KSAqIDQpIC8gNC4KLSAgICAvLyBF
eGFtcGxlIChtaWQtcmFuZ2UgcmVzb2x1dGlvbiBwaG9uZSk6Ci0gICAgLy8gICAgIHJvdW5kKCgy
NDQgKiAwLjYgLyA5NikgKiA0KSAvIDQgPSAxLjUKLSAgICAvLyBFeGFtcGxlIChoaWdoLXJhbmdl
IHJlc29sdXRpb24gbGFwdG9wKToKLSAgICAvLyAgICAgcm91bmQoKDIyMCAqIDEuMCAvIDk2KSAq
IDQpIC8gNCA9IDIuMAotCi0gICAgZmxvYXQgaG9yaURQSTsKLSAgICBmbG9hdCB2ZXJ0RFBJOwot
Ci0gICAgLy8gVGhpcyBjaGVja3MgdGhlIGFjdHVhbCBtZWRpYSB0eXBlIGFwcGxpZWQgdG8gdGhl
IGRvY3VtZW50LCBhbmQgd2Uga25vdwotICAgIC8vIHRoaXMgbWV0aG9kIG9ubHkgZ290IGNhbGxl
ZCBpZiB0aGlzIG1lZGlhIHR5cGUgbWF0Y2hlcyB0aGUgb25lIGRlZmluZWQKLSAgICAvLyBpbiB0
aGUgcXVlcnkuIFRodXMsIGlmIGlmIHRoZSBkb2N1bWVudCdzIG1lZGlhIHR5cGUgaXMgInByaW50
IiwgdGhlCi0gICAgLy8gbWVkaWEgdHlwZSBvZiB0aGUgcXVlcnkgd2lsbCBlaXRoZXIgYmUgInBy
aW50IiBvciAiYWxsIi4KLSAgICBTdHJpbmcgbWVkaWFUeXBlID0gZnJhbWUtPnZpZXcoKS0+bWVk
aWFUeXBlKCk7Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1lZGlhVHlwZSwgInNjcmVlbiIp
KSB7Ci0gICAgICAgIFNjcmVlbiogc2NyZWVuID0gZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRv
dygpLT5zY3JlZW4oKTsKLSAgICAgICAgaG9yaURQSSA9IHNjcmVlbi0+aG9yaXpvbnRhbERQSSgp
OwotICAgICAgICB2ZXJ0RFBJID0gc2NyZWVuLT52ZXJ0aWNhbERQSSgpOwotICAgIH0gZWxzZSBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWVkaWFUeXBlLCAicHJpbnQiKSkgewotICAgICAgICAvLyBU
aGUgcmVzb2x1dGlvbiBvZiBpbWFnZXMgd2hpbGUgcHJpbnRpbmcgc2hvdWxkIG5vdCBkZXBlbmQg
b24gdGhlIGRwaQotICAgICAgICAvLyBvZiB0aGUgc2NyZWVuLiBVbnRpbCB3ZSBzdXBwb3J0IHBy
b3BlciB3YXlzIG9mIHF1ZXJ5aW5nIHRoaXMgaW5mbwotICAgICAgICAvLyB3ZSB1c2UgMzAwcHgg
d2hpY2ggaXMgY29uc2lkZXJlZCBtaW5pbXVtIGZvciBjdXJyZW50IHByaW50ZXJzLgotICAgICAg
ICBob3JpRFBJID0gdmVydERQSSA9IDMwMDsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBGSVhN
RTogUG9zc2libGUgaGFuZGxlIG90aGVyIG1lZGlhIHR5cGVzIHRoYW4gJ3NjcmVlbicgYW5kICdw
cmludCcuCi0gICAgICAgIC8vIEZvciBub3csIGRvIG5vdCBtYXRjaC4KLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLQotICAgIGZsb2F0IGxlYXN0RGVuc2VEUEkgPSBzdGQ6Om1pbihob3Jp
RFBJLCB2ZXJ0RFBJKTsKLSAgICBmbG9hdCBtb3N0RGVuc2VEUEkgPSBzdGQ6Om1heChob3JpRFBJ
LCB2ZXJ0RFBJKTsKLQotICAgIC8vIEFjY29yZGluZyB0byBzcGVjLCAocmVzb2x1dGlvbikgd2ls
bCBldmFsdWF0ZSB0byB0cnVlIGlmIChyZXNvbHV0aW9uOngpCi0gICAgLy8gd2lsbCBldmFsdWF0
ZSB0byB0cnVlIGZvciBhIHZhbHVlIHggb3RoZXIgdGhhbiB6ZXJvIG9yIHplcm8gZm9sbG93ZWQg
YnkKLSAgICAvLyBhIHZhbGlkIHVuaXQgaWRlbnRpZmllciAoaS5lLiwgb3RoZXIgdGhhbiAwLCAw
ZHBpLCAwZHBjbSwgb3IgMGRwcHguKSwKLSAgICAvLyB3aGljaCBpcyBhbHdheXMgdGhlIGNhc2Uu
IEJ1dCB0aGUgc3BlYyBzcGVjaWFsIGNhc2VzICdyZXNvbHV0aW9uJyB0bwotICAgIC8vIG5ldmVy
IG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVscy4KLSAgICBpZiAoIXZhbHVl
KSB7Ci0gICAgICAgIEFTU0VSVChvcCA9PSBOb1ByZWZpeCk7Ci0gICAgICAgIHJldHVybiBsZWFz
dERlbnNlRFBJID09IG1vc3REZW5zZURQSTsKLSAgICB9Ci0KICAgICBpZiAoIXZhbHVlLT5pc1By
aW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIGh0dHA6Ly9k
ZXYudzMub3JnL2Nzc3dnL2NzczMtdmFsdWVzLyNyZXNvbHV0aW9uIGRlZmluZXMgcmVzb2x1dGlv
biBhcyBhCi0gICAgLy8gZGltZW5zaW9uLCB3aGljaCBjb250YWlucyBhIG51bWJlciAoZGVjaW1h
bCBwb2ludCBhbGxvd2VkKSwgbm90IGp1c3QgYW4KLSAgICAvLyBpbnRlZ2VyLiBBbHNvLCBodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXZhbHVlcy8jbnVtZXJpYy10eXBlcyBzYXlzCi0gICAg
Ly8gIkNTUyB0aGVvcmV0aWNhbGx5IHN1cHBvcnRzIGluZmluaXRlIHByZWNpc2lvbiBhbmQgaW5m
aW5pdGUgcmFuZ2VzIGZvcgotICAgIC8vIGFsbCB2YWx1ZSB0eXBlczsKLSAgICBDU1NQcmltaXRp
dmVWYWx1ZSogcmF3VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVl
KTsKLQotICAgIGlmIChyYXdWYWx1ZS0+aXNEb3RzUGVyUGl4ZWwoKSkgewotICAgICAgICAvLyBo
dHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXZhbHVlcy8jYWJzb2x1dGUtbGVuZ3RocyByZWNv
bW1lbmRzCi0gICAgICAgIC8vICJ0aGF0IHRoZSBwaXhlbCB1bml0IHJlZmVyIHRvIHRoZSB3aG9s
ZSBudW1iZXIgb2YgZGV2aWNlIHBpeGVscyB0aGF0Ci0gICAgICAgIC8vIGJlc3QgYXBwcm94aW1h
dGVzIHRoZSByZWZlcmVuY2UgcGl4ZWwiLiBXZSBjb21wYXJlIHdpdGggMyBkZWNpbWFsCi0gICAg
ICAgIC8vIHBvaW50cywgd2hpY2ggYWxpZ25zIHdpdGggY3VycmVudCBkZXZpY2UtcGl4ZWwtcmF0
aW8ncyBpbiB1c2UuCi0gICAgICAgIGZsb2F0IGxlYXN0RGVuc2VEZW5zaXR5ID0gZmxvb3JmKGxl
YXN0RGVuc2VEUEkgKiAxMDAwIC8gOTYpIC8gMTAwMDsKLSAgICAgICAgZmxvYXQgbW9zdERlbnNl
RGVuc2l0eSA9IGZsb29yZihsZWFzdERlbnNlRFBJICogMTAwMCAvIDk2KSAvIDEwMDA7Ci0gICAg
ICAgIGZsb2F0IHRlc3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX0RQUFgpOwotICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24o
bGVhc3REZW5zZURlbnNpdHksIG1vc3REZW5zZURlbnNpdHksIHRlc3RlZERlbnNpdHksIG9wKTsK
LSAgICB9Ci0KLSAgICBpZiAocmF3VmFsdWUtPmlzRG90c1BlckluY2goKSkgewotICAgICAgICB1
bnNpZ25lZCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19EUEkpOwotICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obGVh
c3REZW5zZURQSSwgbW9zdERlbnNlRFBJLCB0ZXN0ZWREZW5zaXR5LCBvcCk7Ci0gICAgfQorICAg
IENTU1ByaW1pdGl2ZVZhbHVlKiByZXNvbHV0aW9uID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih2YWx1ZSk7CisgICAgcmV0dXJuIGNvbXBhcmVWYWx1ZShkZXZpY2VTY2FsZUZhY3Rv
ciwgcmVzb2x1dGlvbi0+aXNOdW1iZXIoKSA/IHJlc29sdXRpb24tPmdldEZsb2F0VmFsdWUoKSA6
IHJlc29sdXRpb24tPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYKSwg
b3ApOworfQogCi0gICAgLy8gaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy12YWx1ZXMvI2Fi
c29sdXRlLWxlbmd0aHMgcmVjb21tZW5kcyAidGhhdAotICAgIC8vIHRoZSBwaXhlbCB1bml0IHJl
ZmVyIHRvIHRoZSB3aG9sZSBudW1iZXIgb2YgZGV2aWNlIHBpeGVscyB0aGF0IGJlc3QKLSAgICAv
LyBhcHByb3hpbWF0ZXMgdGhlIHJlZmVyZW5jZSBwaXhlbCIuCi0gICAgZmxvYXQgbGVhc3REZW5z
ZURQQ00gPSByb3VuZGYobGVhc3REZW5zZURQSSAvIDIuNTQpOyAvLyAoMi41NCBjbS9pbikKLSAg
ICBmbG9hdCBtb3N0RGVuc2VEUENNID0gcm91bmRmKG1vc3REZW5zZURQSSAvIDIuNTQpOworc3Rh
dGljIGJvb2wgZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSAqdmFs
dWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCit7
CisgICAgcmV0dXJuICghdmFsdWUgfHwgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2
YWx1ZSktPmlzTnVtYmVyKCkpICYmIGV2YWxSZXNvbHV0aW9uKHZhbHVlLCBmcmFtZSwgb3ApOwor
fQogCi0gICAgaWYgKHJhd1ZhbHVlLT5pc0RvdHNQZXJDZW50aW1ldGVyKCkpIHsKLSAgICAgICAg
ZmxvYXQgdGVzdGVkRGVuc2l0eSA9IHJhd1ZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfRFBDTSk7Ci0gICAgICAgIHJldHVybiBjb21wYXJlUmVzb2x1dGlvbihsZWFz
dERlbnNlRFBDTSwgbW9zdERlbnNlRFBDTSwgdGVzdGVkRGVuc2l0eSwgb3ApOwotICAgIH0KK3N0
YXRpYyBib29sIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVu
ZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3sKKyNpZiBF
TkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKKyAgICByZXR1cm4gKCF2YWx1ZSB8fCBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+aXNSZXNvbHV0aW9uKCkpICYmIGV2
YWxSZXNvbHV0aW9uKHZhbHVlLCBmcmFtZSwgb3ApOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
dmFsdWUpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CiAgICAgVU5VU0VEX1BBUkFNKG9wKTsK
LSNlbmRpZgotCiAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiB9CiAKIHN0YXRpYyBib29sIGdy
aWRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSos
IE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhOWYwYTI5OGZlNjEyNTAxMTI5MzhjY2Yz
NWQ5ZTZhYjYyYjI0YzRmLi5lZmI2YzBlNmM0YzI5Y2Y4NzFhZmMwMDZlMDk5NThhYThiZTFiODQ3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDQtMDUgIFJ1bmUgTGlsbGVzdmVlbiAgPHJ1
bmVAb3BlcmEuY29tPgorCisgICAgICAgIEluY29ycmVjdCBldmFsdWF0aW9uIG9mIHJlc29sdXRp
b24gbWVkaWEgcXVlcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTE0MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTW9kaWZpZWQgdGVzdHMgdG8gY2hhbmdlIENTUyByZXNvbHV0aW9uIGluc3RlYWQg
b2YgcGh5c2ljYWwgcmVzb2x1dGlvbi4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1
dGlvbi5odG1sOgorCiAyMDEzLTA0LTA1ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEdUSyBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sCmluZGV4IDA2MjBjYzAxN2JmYTAwZWZmMjIxMmJh
NTJlN2RhMDY0MzZkOTAwZTcuLjVjMmU2OGYzOTA3NzEyYjhhZDkxM2ZiN2Q1NjA4M2Y3ZTM4MjIx
MzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sCkBAIC00OSwx
OSArNDksMTkgQEAKICAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1dGlv
bjogMGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CiAgICAgICAgIHNob3VsZEJlKCJtYXRjaE1l
ZGlhKCcobWF4LXJlc29sdXRpb246IDBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOwogCi0gICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDE0NCwg
MTQ0KTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0
b3IoMS41LCAwLCAwKTsKICAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9u
OiAxLjVkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOwogICAgICAgICBzaG91bGRCZSgicmVzb2x1
dGlvbkZyb21TdHlsZSgpIiwgIjEuNSIpOwogCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDE5MiwgMTkyKTsKKyAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CiAgICAgICAgIHNo
b3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlvbjogMmRwcHgpJykubWF0Y2hlcyIsICJ0cnVl
Iik7CiAgICAgICAgIHNob3VsZEJlKCJyZXNvbHV0aW9uRnJvbVN0eWxlKCkiLCAiMiIpOwogCi0g
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDk2
LCA5Nik7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFj
dG9yKDEsIDAsIDApOwogICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246
IDFkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOwogICAgICAgICBzaG91bGRCZSgicmVzb2x1dGlv
bkZyb21TdHlsZSgpIiwgIjEiKTsKIAotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdz
LnNldFJlc29sdXRpb25PdmVycmlkZSgyMTYsIDIxNik7CisgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIuMjUsIDAsIDApOwogICAgICAgICBzaG91
bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDIuMjVkcHB4KScpLm1hdGNoZXMiLCAidHJ1
ZSIpOwogICAgICAgICBzaG91bGRCZSgicmVzb2x1dGlvbkZyb21TdHlsZSgpIiwgIjIuMjUiKTsK
ICAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uKScpLm1hdGNoZXMiLCAi
dHJ1ZSIpOwpAQCAtNzMsMjYgKzczLDYgQEAKICAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEo
JyhtaW4tcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOwogICAgICAgICBz
aG91bGRCZSgibWF0Y2hNZWRpYSgnKG1heC1yZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIs
ICJ0cnVlIik7CiAKLSAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0
aW9uT3ZlcnJpZGUoMjE2LCAyNTQpOwotICAgICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIg
bWF0Y2guCi0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlvbiknKS5tYXRj
aGVzIiwgImZhbHNlIik7Ci0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlv
bjogMjE2ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKLSAgICAgICAgc2hvdWxkQmUoIm1hdGNo
TWVkaWEoJyhyZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOwotCi0gICAg
ICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDIxNmRwaSknKS5tYXRj
aGVzIiwgInRydWUiKTsKLSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1
dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKLSAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJyhtYXgtcmVzb2x1dGlvbjogMjE2ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsK
LSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtYXgtcmVzb2x1dGlvbjogMjU0ZHBpKScp
Lm1hdGNoZXMiLCAidHJ1ZSIpOwotCi0gICAgICAgIC8vIE5vbi1zcXVhcmUgbXVzdCBuZXZlciBt
YXRjaC4KLSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiA4NWRwY20p
JykubWF0Y2hlcyIsICJmYWxzZSIpOwotICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJl
c29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIpOwotCi0gICAgICAgIHNob3Vs
ZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVzIiwgInRy
dWUiKTsKLSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1dGlvbjogMTAw
ZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7Ci0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlh
KCcobWF4LXJlc29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7Ci0gICAgICAg
IHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hl
cyIsICJ0cnVlIik7Ci0KICAgICAgICAgLy8gVGVzdCBwcmludGluZy4KIAogICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldE1lZGlhVHlwZU92ZXJyaWRlKCJwcmludCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197253</attachid>
            <date>2013-04-10 06:14:51 -0700</date>
            <delta_ts>2013-04-10 06:43:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114029-20130410151432.patch</filename>
            <type>text/plain</type>
            <size>39099</size>
            <attacher name="Rune Lillesveen">rune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjAyMzlkMmY5YTEwMGQ5
ZTM0ZWEyYzZhNWZiNGIyYjJjOWY5NjA1Mi4uNDc1ZjUzY2ZmZTY1NGViMWE3YjdiYTNkYTIwNWQ3
OGViNTIzZDE5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY0IEBACisyMDEzLTA0LTEwICBSdW5l
IExpbGxlc3ZlZW4gIDxydW5lQG9wZXJhLmNvbT4KKworICAgICAgICBJbmNvcnJlY3QgZXZhbHVh
dGlvbiBvZiByZXNvbHV0aW9uIG1lZGlhIHF1ZXJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiB1c2VkIHRoZSBwaHlz
aWNhbCByZXNvbHV0aW9uIHRvIGV2YWx1YXRlIHRoZQorICAgICAgICByZXNvbHV0aW9uIG1lZGlh
IGZlYXR1cmVzLiBDaGFuZ2VkIHRvIHVzZSB0aGUgYWN0dWFsIENTUyByZXNvbHV0aW9uLAorICAg
ICAgICBhbHNvIGtub3duIGFzIHRoZSBkZXZpY2UtcGl4ZWwtcmF0aW8sIGluc3RlYWQuIFVuaWZp
ZWQgdGhlIGNvZGUgZm9yCisgICAgICAgIGV2YWx1YXRpbmcgdGhlIHJlc29sdXRpb24gYW5kIGRl
dmljZS1waXhlbC1yYXRpbyBtZWRpYSBmZWF0dXJlcy4KKworICAgICAgICBUbyBwYXNzIHRoZSBj
b2Rpbmcgc3R5bGUsIHRoZSBtZWRpYSBmZWF0dXJlIGVudW1zIGFuZCBtZXRob2QgbmFtZXMKKyAg
ICAgICAgaGF2ZSBiZWVuIGNoYW5nZWQuCisKKyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFs
dWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZhbHVlOjppc1Jlc29sdXRpb24p
OgorICAgICAgICAqIGNzcy9NZWRpYUZlYXR1cmVOYW1lcy5oOgorICAgICAgICAoTWVkaWFGZWF0
dXJlTmFtZXMpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmFzcGVjdFJhdGlvTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJD
b3JlOjpkZXZpY2VBc3BlY3RSYXRpb01lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29y
ZTo6ZXZhbFJlc29sdXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNlUGl4ZWxSYXRpb01l
ZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6cmVzb2x1dGlvbk1lZGlhRmVhdHVy
ZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNlSGVpZ2h0TWVkaWFGZWF0dXJlRXZhbCk6
CisgICAgICAgIChXZWJDb3JlOjpkZXZpY2VXaWR0aE1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAg
ICAoV2ViQ29yZTo6bWluQ29sb3JNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKFdlYkNvcmU6
Om1heENvbG9yTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjptaW5Nb25vY2hy
b21lTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjptYXhNb25vY2hyb21lTWVk
aWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjptaW5Bc3BlY3RSYXRpb01lZGlhRmVh
dHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6bWF4QXNwZWN0UmF0aW9NZWRpYUZlYXR1cmVF
dmFsKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbkRldmljZUFzcGVjdFJhdGlvTWVkaWFGZWF0dXJl
RXZhbCk6CisgICAgICAgIChXZWJDb3JlOjptYXhEZXZpY2VBc3BlY3RSYXRpb01lZGlhRmVhdHVy
ZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6bWluRGV2aWNlUGl4ZWxSYXRpb01lZGlhRmVhdHVy
ZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6bWF4RGV2aWNlUGl4ZWxSYXRpb01lZGlhRmVhdHVy
ZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6bWluSGVpZ2h0TWVkaWFGZWF0dXJlRXZhbCk6Cisg
ICAgICAgIChXZWJDb3JlOjptYXhIZWlnaHRNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKFdl
YkNvcmU6Om1pbldpZHRoTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjptYXhX
aWR0aE1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAoV2ViQ29yZTo6bWluRGV2aWNlSGVpZ2h0
TWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjptYXhEZXZpY2VIZWlnaHRNZWRp
YUZlYXR1cmVFdmFsKToKKyAgICAgICAgKFdlYkNvcmU6Om1pbkRldmljZVdpZHRoTWVkaWFGZWF0
dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjptYXhEZXZpY2VXaWR0aE1lZGlhRmVhdHVyZUV2
YWwpOgorICAgICAgICAoV2ViQ29yZTo6bWluUmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgor
ICAgICAgICAoV2ViQ29yZTo6bWF4UmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAg
ICAoV2ViQ29yZTo6dHJhbnNmb3JtMmRNZWRpYUZlYXR1cmVFdmFsKToKKyAgICAgICAgKFdlYkNv
cmU6OnRyYW5zZm9ybTNkTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjp2aWV3
TW9kZU1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXhwLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRoQ1NTVmFsdWVJRCk6CisgICAgICAgIChXZWJD
b3JlOjpmZWF0dXJlV2l0aFZhbGlkUG9zaXRpdmVMZW5naHRPck51bWJlcik6CisgICAgICAgIChX
ZWJDb3JlOjpmZWF0dXJlV2l0aFZhbGlkRGVuc2l0eSk6CisgICAgICAgIChXZWJDb3JlOjpmZWF0
dXJlV2l0aFBvc2l0aXZlSW50ZWdlcik6CisgICAgICAgIChXZWJDb3JlOjpmZWF0dXJlV2l0aFBv
c2l0aXZlTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmZlYXR1cmVXaXRoQXNwZWN0UmF0aW8p
OgorICAgICAgICAoV2ViQ29yZTo6ZmVhdHVyZVdpdGhvdXRWYWx1ZSk6CisgICAgICAgICogY3Nz
L01lZGlhUXVlcnlFeHAuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFeHA6OmlzVmll
d3BvcnREZXBlbmRlbnQpOgorCiAyMDEzLTA0LTA1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBDaHJvbWl1bSBjb2RlIGZyb20gV2ViQ29yZS9lZGl0
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4IDE4ZDIzZmFlN2Iw
MGIxNzUzNGM3NGZjMDcyN2JhMDU3YzAyMGY5YmUuLmRhM2EzM2IzMmNkOWMxOWMzZWExYTNmYmE0
YTY4Njk4OWI0ZmEyYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRp
dmVWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCkBA
IC0xODksNiArMTg5LDExIEBAIHB1YmxpYzoKICAgICBib29sIGlzRG90c1BlckluY2goKSBjb25z
dCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0RQSTsgfQogICAgIGJvb2wgaXNEb3Rz
UGVyUGl4ZWwoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0RQUFg7IH0K
ICAgICBib29sIGlzRG90c1BlckNlbnRpbWV0ZXIoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVU
eXBlKCkgPT0gQ1NTX0RQQ007IH0KKyAgICBib29sIGlzUmVzb2x1dGlvbigpIGNvbnN0CisgICAg
eworICAgICAgICB1bnNpZ25lZCBzaG9ydCB0eXBlID0gcHJpbWl0aXZlVHlwZSgpOworICAgICAg
ICByZXR1cm4gdHlwZSA+PSBDU1NfRFBQWCAmJiB0eXBlIDw9IENTU19EUENNOworICAgIH0KIAog
I2lmIEVOQUJMRShDU1NfVkFSSUFCTEVTKQogICAgIGJvb2wgaXNWYXJpYWJsZU5hbWUoKSBjb25z
dCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX1ZBUklBQkxFX05BTUU7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYUZlYXR1cmVOYW1lcy5oIGIvU291cmNlL1dl
YkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKaW5kZXggNmFiYmVhZjM0YTAyODI2MzZjZWQw
ZmViZTMzODhjY2E4ZDc0YTc5Yy4uZjg0NDQ4NDVkMjkwZjI5ZDJjNGZhNzU4ZGI5N2Y0OTMzMTc1
Mzc3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhRmVhdHVyZU5hbWVzLmgKQEAgLTI2LDcgKzI2
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG5hbWVzcGFjZSBNZWRpYUZlYXR1cmVOYW1l
cyB7CiAKICNpZiBFTkFCTEUoVklFV19NT0RFX0NTU19NRURJQSkKLSNkZWZpbmUgQ1NTX01FRElB
UVVFUllfVklFV19NT0RFKG1hY3JvKSBtYWNybyh2aWV3X21vZGUsICItd2Via2l0LXZpZXctbW9k
ZSIpCisjZGVmaW5lIENTU19NRURJQVFVRVJZX1ZJRVdfTU9ERShtYWNybykgbWFjcm8odmlld01v
ZGUsICItd2Via2l0LXZpZXctbW9kZSIpCiAjZWxzZQogI2RlZmluZSBDU1NfTUVESUFRVUVSWV9W
SUVXX01PREUobWFjcm8pCiAjZW5kaWYKQEAgLTM5LDM1ICszOSwzNSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgbWFjcm8oaG92ZXIsICJob3ZlciIpIFwKICAgICBtYWNybyh3aWR0aCwgIndp
ZHRoIikgXAogICAgIG1hY3JvKG9yaWVudGF0aW9uLCAib3JpZW50YXRpb24iKSBcCi0gICAgbWFj
cm8oYXNwZWN0X3JhdGlvLCAiYXNwZWN0LXJhdGlvIikgXAotICAgIG1hY3JvKGRldmljZV9hc3Bl
Y3RfcmF0aW8sICJkZXZpY2UtYXNwZWN0LXJhdGlvIikgXAotICAgIG1hY3JvKGRldmljZV9waXhl
bF9yYXRpbywgIi13ZWJraXQtZGV2aWNlLXBpeGVsLXJhdGlvIikgXAotICAgIG1hY3JvKGRldmlj
ZV9oZWlnaHQsICJkZXZpY2UtaGVpZ2h0IikgXAotICAgIG1hY3JvKGRldmljZV93aWR0aCwgImRl
dmljZS13aWR0aCIpIFwKLSAgICBtYWNybyhtYXhfY29sb3IsICJtYXgtY29sb3IiKSBcCi0gICAg
bWFjcm8obWF4X2FzcGVjdF9yYXRpbywgIm1heC1hc3BlY3QtcmF0aW8iKSBcCi0gICAgbWFjcm8o
bWF4X2RldmljZV9hc3BlY3RfcmF0aW8sICJtYXgtZGV2aWNlLWFzcGVjdC1yYXRpbyIpIFwKLSAg
ICBtYWNybyhtYXhfZGV2aWNlX3BpeGVsX3JhdGlvLCAiLXdlYmtpdC1tYXgtZGV2aWNlLXBpeGVs
LXJhdGlvIikgXAotICAgIG1hY3JvKG1heF9kZXZpY2VfaGVpZ2h0LCAibWF4LWRldmljZS1oZWln
aHQiKSBcCi0gICAgbWFjcm8obWF4X2RldmljZV93aWR0aCwgIm1heC1kZXZpY2Utd2lkdGgiKSBc
Ci0gICAgbWFjcm8obWF4X2hlaWdodCwgIm1heC1oZWlnaHQiKSBcCi0gICAgbWFjcm8obWF4X21v
bm9jaHJvbWUsICJtYXgtbW9ub2Nocm9tZSIpIFwKLSAgICBtYWNybyhtYXhfd2lkdGgsICJtYXgt
d2lkdGgiKSBcCi0gICAgbWFjcm8obWF4X3Jlc29sdXRpb24sICJtYXgtcmVzb2x1dGlvbiIpIFwK
LSAgICBtYWNybyhtaW5fY29sb3IsICJtaW4tY29sb3IiKSBcCi0gICAgbWFjcm8obWluX2FzcGVj
dF9yYXRpbywgIm1pbi1hc3BlY3QtcmF0aW8iKSBcCi0gICAgbWFjcm8obWluX2RldmljZV9hc3Bl
Y3RfcmF0aW8sICJtaW4tZGV2aWNlLWFzcGVjdC1yYXRpbyIpIFwKLSAgICBtYWNybyhtaW5fZGV2
aWNlX3BpeGVsX3JhdGlvLCAiLXdlYmtpdC1taW4tZGV2aWNlLXBpeGVsLXJhdGlvIikgXAotICAg
IG1hY3JvKG1pbl9kZXZpY2VfaGVpZ2h0LCAibWluLWRldmljZS1oZWlnaHQiKSBcCi0gICAgbWFj
cm8obWluX2RldmljZV93aWR0aCwgIm1pbi1kZXZpY2Utd2lkdGgiKSBcCi0gICAgbWFjcm8obWlu
X2hlaWdodCwgIm1pbi1oZWlnaHQiKSBcCi0gICAgbWFjcm8obWluX21vbm9jaHJvbWUsICJtaW4t
bW9ub2Nocm9tZSIpIFwKLSAgICBtYWNybyhtaW5fd2lkdGgsICJtaW4td2lkdGgiKSBcCi0gICAg
bWFjcm8obWluX3Jlc29sdXRpb24sICJtaW4tcmVzb2x1dGlvbiIpIFwKKyAgICBtYWNybyhhc3Bl
Y3RSYXRpbywgImFzcGVjdC1yYXRpbyIpIFwKKyAgICBtYWNybyhkZXZpY2VBc3BlY3RSYXRpbywg
ImRldmljZS1hc3BlY3QtcmF0aW8iKSBcCisgICAgbWFjcm8oZGV2aWNlUGl4ZWxSYXRpbywgIi13
ZWJraXQtZGV2aWNlLXBpeGVsLXJhdGlvIikgXAorICAgIG1hY3JvKGRldmljZUhlaWdodCwgImRl
dmljZS1oZWlnaHQiKSBcCisgICAgbWFjcm8oZGV2aWNlV2lkdGgsICJkZXZpY2Utd2lkdGgiKSBc
CisgICAgbWFjcm8obWF4Q29sb3IsICJtYXgtY29sb3IiKSBcCisgICAgbWFjcm8obWF4QXNwZWN0
UmF0aW8sICJtYXgtYXNwZWN0LXJhdGlvIikgXAorICAgIG1hY3JvKG1heERldmljZUFzcGVjdFJh
dGlvLCAibWF4LWRldmljZS1hc3BlY3QtcmF0aW8iKSBcCisgICAgbWFjcm8obWF4RGV2aWNlUGl4
ZWxSYXRpbywgIi13ZWJraXQtbWF4LWRldmljZS1waXhlbC1yYXRpbyIpIFwKKyAgICBtYWNybyht
YXhEZXZpY2VIZWlnaHQsICJtYXgtZGV2aWNlLWhlaWdodCIpIFwKKyAgICBtYWNybyhtYXhEZXZp
Y2VXaWR0aCwgIm1heC1kZXZpY2Utd2lkdGgiKSBcCisgICAgbWFjcm8obWF4SGVpZ2h0LCAibWF4
LWhlaWdodCIpIFwKKyAgICBtYWNybyhtYXhNb25vY2hyb21lLCAibWF4LW1vbm9jaHJvbWUiKSBc
CisgICAgbWFjcm8obWF4V2lkdGgsICJtYXgtd2lkdGgiKSBcCisgICAgbWFjcm8obWF4UmVzb2x1
dGlvbiwgIm1heC1yZXNvbHV0aW9uIikgXAorICAgIG1hY3JvKG1pbkNvbG9yLCAibWluLWNvbG9y
IikgXAorICAgIG1hY3JvKG1pbkFzcGVjdFJhdGlvLCAibWluLWFzcGVjdC1yYXRpbyIpIFwKKyAg
ICBtYWNybyhtaW5EZXZpY2VBc3BlY3RSYXRpbywgIm1pbi1kZXZpY2UtYXNwZWN0LXJhdGlvIikg
XAorICAgIG1hY3JvKG1pbkRldmljZVBpeGVsUmF0aW8sICItd2Via2l0LW1pbi1kZXZpY2UtcGl4
ZWwtcmF0aW8iKSBcCisgICAgbWFjcm8obWluRGV2aWNlSGVpZ2h0LCAibWluLWRldmljZS1oZWln
aHQiKSBcCisgICAgbWFjcm8obWluRGV2aWNlV2lkdGgsICJtaW4tZGV2aWNlLXdpZHRoIikgXAor
ICAgIG1hY3JvKG1pbkhlaWdodCwgIm1pbi1oZWlnaHQiKSBcCisgICAgbWFjcm8obWluTW9ub2No
cm9tZSwgIm1pbi1tb25vY2hyb21lIikgXAorICAgIG1hY3JvKG1pbldpZHRoLCAibWluLXdpZHRo
IikgXAorICAgIG1hY3JvKG1pblJlc29sdXRpb24sICJtaW4tcmVzb2x1dGlvbiIpIFwKICAgICBt
YWNybyhwb2ludGVyLCAicG9pbnRlciIpIFwKICAgICBtYWNybyhyZXNvbHV0aW9uLCAicmVzb2x1
dGlvbiIpIFwKLSAgICBtYWNybyh0cmFuc2Zvcm1fMmQsICItd2Via2l0LXRyYW5zZm9ybS0yZCIp
IFwKLSAgICBtYWNybyh0cmFuc2Zvcm1fM2QsICItd2Via2l0LXRyYW5zZm9ybS0zZCIpIFwKKyAg
ICBtYWNybyh0cmFuc2Zvcm0yZCwgIi13ZWJraXQtdHJhbnNmb3JtLTJkIikgXAorICAgIG1hY3Jv
KHRyYW5zZm9ybTNkLCAiLXdlYmtpdC10cmFuc2Zvcm0tM2QiKSBcCiAgICAgbWFjcm8odHJhbnNp
dGlvbiwgIi13ZWJraXQtdHJhbnNpdGlvbiIpIFwKICAgICBtYWNybyhhbmltYXRpb24sICItd2Vi
a2l0LWFuaW1hdGlvbiIpIFwKICAgICBDU1NfTUVESUFRVUVSWV9WSUVXX01PREUobWFjcm8pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXggYzJmYzBmNjE5
Zjc0NDg0NGFmMzU3ZGI2ODk0MmNiODlkZDFkZTc3MC4uOWI0ODU4ZTlkZTZkOGNhOTVlZmJhZjVh
NTA3OTMwMmZmZmNmNTY3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVl
cnlFdmFsdWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVh
dG9yLmNwcApAQCAtMTk4LDIzICsxOTgsNiBAQCBzdGF0aWMgYm9vbCBjb21wYXJlQXNwZWN0UmF0
aW9WYWx1ZShDU1NWYWx1ZSogdmFsdWUsIGludCB3aWR0aCwgaW50IGhlaWdodCwgTWVkaQogICAg
IHJldHVybiBmYWxzZTsKIH0KIAotI2lmIEVOQUJMRShSRVNPTFVUSU9OX01FRElBX1FVRVJZKQot
c3RhdGljIGJvb2wgY29tcGFyZVJlc29sdXRpb24oZmxvYXQgbWluLCBmbG9hdCBtYXgsIGZsb2F0
IHZhbHVlLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCi17Ci0gICAgc3dpdGNoIChvcCkgewotICAg
IGNhc2UgTm9QcmVmaXg6Ci0gICAgICAgIC8vIEEgJ3Jlc29sdXRpb24nICh3aXRob3V0IGEgIm1p
bi0iIG9yICJtYXgtIiBwcmVmaXgpIHF1ZXJ5Ci0gICAgICAgIC8vIG5ldmVyIG1hdGNoZXMgYSBk
ZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVscy4KLSAgICAgICAgcmV0dXJuIHZhbHVlID09IG1p
biAmJiB2YWx1ZSA9PSBtYXg7Ci0gICAgY2FzZSBNaW5QcmVmaXg6Ci0gICAgICAgIHJldHVybiBt
aW4gPj0gdmFsdWU7Ci0gICAgY2FzZSBNYXhQcmVmaXg6Ci0gICAgICAgIHJldHVybiBtYXggPD0g
dmFsdWU7Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZgotCiBzdGF0aWMgYm9v
bCBudW1iZXJWYWx1ZShDU1NWYWx1ZSogdmFsdWUsIGZsb2F0JiByZXN1bHQpCiB7CiAgICAgaWYg
KHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkKQEAgLTI2NCw3ICsyNDcsNyBAQCBzdGF0aWMgYm9v
bCBvcmllbnRhdGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHls
ZSosIEZyYW1lKiBmcgogICAgIHJldHVybiBoZWlnaHQgPj0gMCAmJiB3aWR0aCA+PSAwOwogfQog
Ci1zdGF0aWMgYm9vbCBhc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1
ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3N0
YXRpYyBib29sIGFzcGVjdFJhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJl
bmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAg
aWYgKHZhbHVlKSB7CiAgICAgICAgIEZyYW1lVmlldyogdmlldyA9IGZyYW1lLT52aWV3KCk7CkBA
IC0yNzYsNyArMjU5LDcgQEAgc3RhdGljIGJvb2wgYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZh
bChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGYKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAotc3RhdGljIGJvb2wgZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwo
Q1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJl
UHJlZml4IG9wKQorc3RhdGljIGJvb2wgZGV2aWNlQXNwZWN0UmF0aW9NZWRpYUZlYXR1cmVFdmFs
KENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVy
ZVByZWZpeCBvcCkKIHsKICAgICBpZiAodmFsdWUpIHsKICAgICAgICAgRmxvYXRSZWN0IHNnID0g
c2NyZWVuUmVjdChmcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+dmlldygpKTsKQEAgLTI4OCw3
ICsyNzEsNyBAQCBzdGF0aWMgYm9vbCBkZXZpY2VfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlRXZh
bChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRgogICAgIHJldHVybiB0cnVlOwogfQog
Ci1zdGF0aWMgYm9vbCBkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVl
ICp2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBv
cCkKK3N0YXRpYyBib29sIGV2YWxSZXNvbHV0aW9uKENTU1ZhbHVlKiB2YWx1ZSwgRnJhbWUqIGZy
YW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgLy8gRklYTUU6IFBvc3NpYmxlIGhh
bmRsZSBvdGhlciBtZWRpYSB0eXBlcyB0aGFuICdzY3JlZW4nIGFuZCAncHJpbnQnLgogICAgIGZs
b2F0IGRldmljZVNjYWxlRmFjdG9yID0gMDsKQEAgLTMxMCwxMDggKzI5MywyOCBAQCBzdGF0aWMg
Ym9vbCBkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlICp2YWx1ZSwg
UmVuZGVyU3R5bGUqLCBGcgogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiAhIWRldmlj
ZVNjYWxlRmFjdG9yOwogCi0gICAgcmV0dXJuIHZhbHVlLT5pc1ByaW1pdGl2ZVZhbHVlKCkgJiYg
Y29tcGFyZVZhbHVlKGRldmljZVNjYWxlRmFjdG9yLCBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZSo+KHZhbHVlKS0+Z2V0RmxvYXRWYWx1ZSgpLCBvcCk7Ci19Ci0KLXN0YXRpYyBib29sIHJl
c29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBG
cmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKLXsKLSNpZiBFTkFCTEUoUkVTT0xV
VElPTl9NRURJQV9RVUVSWSkKLSAgICAvLyBUaGUgRFBJIGJlbG93IGlzIGRvdHMgcGVyIENTUyBp
bmNoIGFuZCB0aHVzIG5vdCBkZXZpY2UgaW5jaC4gVGhlCi0gICAgLy8gZnVuY3Rpb25zIHNob3Vs
ZCByZXNwZWN0IHRoaXMuCi0gICAgLy8KLSAgICAvLyBGb3Igc3F1YXJlIHBpeGVscywgaXQgaXMg
c2ltcGx5IHRoZSBkZXZpY2Ugc2NhbGUgZmFjdG9yIChkcHB4KSB0aW1lcyA5NiwKLSAgICAvLyBw
ZXIgZGVmaW5pdGlvbi4KLSAgICAvLwotICAgIC8vIFRoZSBkZXZpY2Ugc2NhbGUgZmFjdG9yIGlz
IGEgcHJlZGVmaW5lZCB2YWx1ZSB3aGljaCBpcyBjYWxjdWxhdGVkIHBlcgotICAgIC8vIGRldmlj
ZSBnaXZlbiB0aGUgcHJlZmVycmVkIGRpc3RhbmNlIGluIGFybXMgbGVuZ3RoIChjb25zaWRlcmVk
IG9uZSBhcm1zCi0gICAgLy8gbGVuZ3RoIGZvciBkZXNrdG9wIGNvbXB1dGVycyBhbmQgdXN1YWxs
eSAwLjYgYXJtcyBsZW5ndGggZm9yIHBob25lcykuCi0gICAgLy8KLSAgICAvLyBUaGUgdmFsdWUg
Y2FuIGJlIGNhbGN1bGF0ZWQgYXMgZm9sbG93cyAocm91bmRlZCB0byBxdWFydGVycyk6Ci0gICAg
Ly8gICAgIHJvdW5kKChkZXZpY2VEb3RzUGVySW5jaCAqIGRpc3RhbmNlSW5Bcm1zTGVuZ3RoIC8g
OTYpICogNCkgLyA0LgotICAgIC8vIEV4YW1wbGUgKG1pZC1yYW5nZSByZXNvbHV0aW9uIHBob25l
KToKLSAgICAvLyAgICAgcm91bmQoKDI0NCAqIDAuNiAvIDk2KSAqIDQpIC8gNCA9IDEuNQotICAg
IC8vIEV4YW1wbGUgKGhpZ2gtcmFuZ2UgcmVzb2x1dGlvbiBsYXB0b3ApOgotICAgIC8vICAgICBy
b3VuZCgoMjIwICogMS4wIC8gOTYpICogNCkgLyA0ID0gMi4wCi0KLSAgICBmbG9hdCBob3JpRFBJ
OwotICAgIGZsb2F0IHZlcnREUEk7Ci0KLSAgICAvLyBUaGlzIGNoZWNrcyB0aGUgYWN0dWFsIG1l
ZGlhIHR5cGUgYXBwbGllZCB0byB0aGUgZG9jdW1lbnQsIGFuZCB3ZSBrbm93Ci0gICAgLy8gdGhp
cyBtZXRob2Qgb25seSBnb3QgY2FsbGVkIGlmIHRoaXMgbWVkaWEgdHlwZSBtYXRjaGVzIHRoZSBv
bmUgZGVmaW5lZAotICAgIC8vIGluIHRoZSBxdWVyeS4gVGh1cywgaWYgaWYgdGhlIGRvY3VtZW50
J3MgbWVkaWEgdHlwZSBpcyAicHJpbnQiLCB0aGUKLSAgICAvLyBtZWRpYSB0eXBlIG9mIHRoZSBx
dWVyeSB3aWxsIGVpdGhlciBiZSAicHJpbnQiIG9yICJhbGwiLgotICAgIFN0cmluZyBtZWRpYVR5
cGUgPSBmcmFtZS0+dmlldygpLT5tZWRpYVR5cGUoKTsKLSAgICBpZiAoZXF1YWxJZ25vcmluZ0Nh
c2UobWVkaWFUeXBlLCAic2NyZWVuIikpIHsKLSAgICAgICAgU2NyZWVuKiBzY3JlZW4gPSBmcmFt
ZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPnNjcmVlbigpOwotICAgICAgICBob3JpRFBJID0g
c2NyZWVuLT5ob3Jpem9udGFsRFBJKCk7Ci0gICAgICAgIHZlcnREUEkgPSBzY3JlZW4tPnZlcnRp
Y2FsRFBJKCk7Ci0gICAgfSBlbHNlIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtZWRpYVR5cGUsICJw
cmludCIpKSB7Ci0gICAgICAgIC8vIFRoZSByZXNvbHV0aW9uIG9mIGltYWdlcyB3aGlsZSBwcmlu
dGluZyBzaG91bGQgbm90IGRlcGVuZCBvbiB0aGUgZHBpCi0gICAgICAgIC8vIG9mIHRoZSBzY3Jl
ZW4uIFVudGlsIHdlIHN1cHBvcnQgcHJvcGVyIHdheXMgb2YgcXVlcnlpbmcgdGhpcyBpbmZvCi0g
ICAgICAgIC8vIHdlIHVzZSAzMDBweCB3aGljaCBpcyBjb25zaWRlcmVkIG1pbmltdW0gZm9yIGN1
cnJlbnQgcHJpbnRlcnMuCi0gICAgICAgIGhvcmlEUEkgPSB2ZXJ0RFBJID0gMzAwOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIC8vIEZJWE1FOiBQb3NzaWJsZSBoYW5kbGUgb3RoZXIgbWVkaWEgdHlw
ZXMgdGhhbiAnc2NyZWVuJyBhbmQgJ3ByaW50Jy4KLSAgICAgICAgLy8gRm9yIG5vdywgZG8gbm90
IG1hdGNoLgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgZmxvYXQgbGVhc3RE
ZW5zZURQSSA9IHN0ZDo6bWluKGhvcmlEUEksIHZlcnREUEkpOwotICAgIGZsb2F0IG1vc3REZW5z
ZURQSSA9IHN0ZDo6bWF4KGhvcmlEUEksIHZlcnREUEkpOwotCi0gICAgLy8gQWNjb3JkaW5nIHRv
IHNwZWMsIChyZXNvbHV0aW9uKSB3aWxsIGV2YWx1YXRlIHRvIHRydWUgaWYgKHJlc29sdXRpb246
eCkKLSAgICAvLyB3aWxsIGV2YWx1YXRlIHRvIHRydWUgZm9yIGEgdmFsdWUgeCBvdGhlciB0aGFu
IHplcm8gb3IgemVybyBmb2xsb3dlZCBieQotICAgIC8vIGEgdmFsaWQgdW5pdCBpZGVudGlmaWVy
IChpLmUuLCBvdGhlciB0aGFuIDAsIDBkcGksIDBkcGNtLCBvciAwZHBweC4pLAotICAgIC8vIHdo
aWNoIGlzIGFsd2F5cyB0aGUgY2FzZS4gQnV0IHRoZSBzcGVjIHNwZWNpYWwgY2FzZXMgJ3Jlc29s
dXRpb24nIHRvCi0gICAgLy8gbmV2ZXIgbWF0Y2hlcyBhIGRldmljZSB3aXRoIG5vbi1zcXVhcmUg
cGl4ZWxzLgotICAgIGlmICghdmFsdWUpIHsKLSAgICAgICAgQVNTRVJUKG9wID09IE5vUHJlZml4
KTsKLSAgICAgICAgcmV0dXJuIGxlYXN0RGVuc2VEUEkgPT0gbW9zdERlbnNlRFBJOwotICAgIH0K
LQogICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgLy8gaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy12YWx1ZXMvI3Jlc29s
dXRpb24gZGVmaW5lcyByZXNvbHV0aW9uIGFzIGEKLSAgICAvLyBkaW1lbnNpb24sIHdoaWNoIGNv
bnRhaW5zIGEgbnVtYmVyIChkZWNpbWFsIHBvaW50IGFsbG93ZWQpLCBub3QganVzdCBhbgotICAg
IC8vIGludGVnZXIuIEFsc28sIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdmFsdWVzLyNu
dW1lcmljLXR5cGVzIHNheXMKLSAgICAvLyAiQ1NTIHRoZW9yZXRpY2FsbHkgc3VwcG9ydHMgaW5m
aW5pdGUgcHJlY2lzaW9uIGFuZCBpbmZpbml0ZSByYW5nZXMgZm9yCi0gICAgLy8gYWxsIHZhbHVl
IHR5cGVzOwotICAgIENTU1ByaW1pdGl2ZVZhbHVlKiByYXdWYWx1ZSA9IHN0YXRpY19jYXN0PENT
U1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotCi0gICAgaWYgKHJhd1ZhbHVlLT5pc0RvdHNQZXJQ
aXhlbCgpKSB7Ci0gICAgICAgIC8vIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdmFsdWVz
LyNhYnNvbHV0ZS1sZW5ndGhzIHJlY29tbWVuZHMKLSAgICAgICAgLy8gInRoYXQgdGhlIHBpeGVs
IHVuaXQgcmVmZXIgdG8gdGhlIHdob2xlIG51bWJlciBvZiBkZXZpY2UgcGl4ZWxzIHRoYXQKLSAg
ICAgICAgLy8gYmVzdCBhcHByb3hpbWF0ZXMgdGhlIHJlZmVyZW5jZSBwaXhlbCIuIFdlIGNvbXBh
cmUgd2l0aCAzIGRlY2ltYWwKLSAgICAgICAgLy8gcG9pbnRzLCB3aGljaCBhbGlnbnMgd2l0aCBj
dXJyZW50IGRldmljZS1waXhlbC1yYXRpbydzIGluIHVzZS4KLSAgICAgICAgZmxvYXQgbGVhc3RE
ZW5zZURlbnNpdHkgPSBmbG9vcmYobGVhc3REZW5zZURQSSAqIDEwMDAgLyA5NikgLyAxMDAwOwot
ICAgICAgICBmbG9hdCBtb3N0RGVuc2VEZW5zaXR5ID0gZmxvb3JmKGxlYXN0RGVuc2VEUEkgKiAx
MDAwIC8gOTYpIC8gMTAwMDsKLSAgICAgICAgZmxvYXQgdGVzdGVkRGVuc2l0eSA9IHJhd1ZhbHVl
LT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCk7Ci0gICAgICAgIHJl
dHVybiBjb21wYXJlUmVzb2x1dGlvbihsZWFzdERlbnNlRGVuc2l0eSwgbW9zdERlbnNlRGVuc2l0
eSwgdGVzdGVkRGVuc2l0eSwgb3ApOwotICAgIH0KLQotICAgIGlmIChyYXdWYWx1ZS0+aXNEb3Rz
UGVySW5jaCgpKSB7Ci0gICAgICAgIHVuc2lnbmVkIHRlc3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+
Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQSSk7Ci0gICAgICAgIHJldHVy
biBjb21wYXJlUmVzb2x1dGlvbihsZWFzdERlbnNlRFBJLCBtb3N0RGVuc2VEUEksIHRlc3RlZERl
bnNpdHksIG9wKTsKLSAgICB9CisgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHJlc29sdXRpb24gPSBz
dGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsKKyAgICByZXR1cm4gY29tcGFy
ZVZhbHVlKGRldmljZVNjYWxlRmFjdG9yLCByZXNvbHV0aW9uLT5pc051bWJlcigpID8gcmVzb2x1
dGlvbi0+Z2V0RmxvYXRWYWx1ZSgpIDogcmVzb2x1dGlvbi0+Z2V0RmxvYXRWYWx1ZShDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX0RQUFgpLCBvcCk7Cit9CiAKLSAgICAvLyBodHRwOi8vZGV2LnczLm9y
Zy9jc3N3Zy9jc3MzLXZhbHVlcy8jYWJzb2x1dGUtbGVuZ3RocyByZWNvbW1lbmRzICJ0aGF0Ci0g
ICAgLy8gdGhlIHBpeGVsIHVuaXQgcmVmZXIgdG8gdGhlIHdob2xlIG51bWJlciBvZiBkZXZpY2Ug
cGl4ZWxzIHRoYXQgYmVzdAotICAgIC8vIGFwcHJveGltYXRlcyB0aGUgcmVmZXJlbmNlIHBpeGVs
Ii4KLSAgICBmbG9hdCBsZWFzdERlbnNlRFBDTSA9IHJvdW5kZihsZWFzdERlbnNlRFBJIC8gMi41
NCk7IC8vICgyLjU0IGNtL2luKQotICAgIGZsb2F0IG1vc3REZW5zZURQQ00gPSByb3VuZGYobW9z
dERlbnNlRFBJIC8gMi41NCk7CitzdGF0aWMgYm9vbCBkZXZpY2VQaXhlbFJhdGlvTWVkaWFGZWF0
dXJlRXZhbChDU1NWYWx1ZSAqdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRp
YUZlYXR1cmVQcmVmaXggb3ApCit7CisgICAgcmV0dXJuICghdmFsdWUgfHwgc3RhdGljX2Nhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmlzTnVtYmVyKCkpICYmIGV2YWxSZXNvbHV0aW9u
KHZhbHVlLCBmcmFtZSwgb3ApOworfQogCi0gICAgaWYgKHJhd1ZhbHVlLT5pc0RvdHNQZXJDZW50
aW1ldGVyKCkpIHsKLSAgICAgICAgZmxvYXQgdGVzdGVkRGVuc2l0eSA9IHJhd1ZhbHVlLT5nZXRG
bG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBDTSk7Ci0gICAgICAgIHJldHVybiBj
b21wYXJlUmVzb2x1dGlvbihsZWFzdERlbnNlRFBDTSwgbW9zdERlbnNlRFBDTSwgdGVzdGVkRGVu
c2l0eSwgb3ApOwotICAgIH0KK3N0YXRpYyBib29sIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFs
KENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVy
ZVByZWZpeCBvcCkKK3sKKyNpZiBFTkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKKyAgICBy
ZXR1cm4gKCF2YWx1ZSB8fCBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+
aXNSZXNvbHV0aW9uKCkpICYmIGV2YWxSZXNvbHV0aW9uKHZhbHVlLCBmcmFtZSwgb3ApOwogI2Vs
c2UKICAgICBVTlVTRURfUEFSQU0odmFsdWUpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CiAg
ICAgVU5VU0VEX1BBUkFNKG9wKTsKLSNlbmRpZgotCiAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
CiB9CiAKIHN0YXRpYyBib29sIGdyaWRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwg
UmVuZGVyU3R5bGUqLCBGcmFtZSosIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKQEAgLTQ0NCw3ICsz
NDcsNyBAQCBzdGF0aWMgYm9vbCBjb21wdXRlTGVuZ3RoKENTU1ZhbHVlKiB2YWx1ZSwgYm9vbCBz
dHJpY3QsIFJlbmRlclN0eWxlKiBzdHlsZSwgUmVuZAogICAgIHJldHVybiBmYWxzZTsKIH0KIAot
c3RhdGljIGJvb2wgZGV2aWNlX2hlaWdodE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVl
LCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9w
KQorc3RhdGljIGJvb2wgZGV2aWNlSGVpZ2h0TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFs
dWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgg
b3ApCiB7CiAgICAgaWYgKHZhbHVlKSB7CiAgICAgICAgIEZsb2F0UmVjdCBzZyA9IHNjcmVlblJl
Y3QoZnJhbWUtPnBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSk7CkBAIC00NTksNyArMzYyLDcg
QEAgc3RhdGljIGJvb2wgZGV2aWNlX2hlaWdodE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZh
bHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGlj
IGJvb2wgZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRl
clN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCitzdGF0
aWMgYm9vbCBkZXZpY2VXaWR0aE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5k
ZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewog
ICAgIGlmICh2YWx1ZSkgewogICAgICAgICBGbG9hdFJlY3Qgc2cgPSBzY3JlZW5SZWN0KGZyYW1l
LT5wYWdlKCktPm1haW5GcmFtZSgpLT52aWV3KCkpOwpAQCAtNTA4LDEwMiArNDExLDEwMiBAQCBz
dGF0aWMgYm9vbCB3aWR0aE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJT
dHlsZSogc3R5bGUsIEZyYW1lKiBmcgogCiAvLyByZXN0IG9mIHRoZSBmdW5jdGlvbnMgYXJlIHRy
YW1wb2xpbmVzIHdoaWNoIHNldCB0aGUgcHJlZml4IGFjY29yZGluZyB0byB0aGUgbWVkaWEgZmVh
dHVyZSBleHByZXNzaW9uIHVzZWQKIAotc3RhdGljIGJvb2wgbWluX2NvbG9yTWVkaWFGZWF0dXJl
RXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBN
ZWRpYUZlYXR1cmVQcmVmaXgpCitzdGF0aWMgYm9vbCBtaW5Db2xvck1lZGlhRmVhdHVyZUV2YWwo
Q1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFG
ZWF0dXJlUHJlZml4KQogewogICAgIHJldHVybiBjb2xvck1lZGlhRmVhdHVyZUV2YWwodmFsdWUs
IHN0eWxlLCBmcmFtZSwgTWluUHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWF4X2NvbG9yTWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUq
IGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitzdGF0aWMgYm9vbCBtYXhDb2xvck1lZGlhRmVh
dHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFt
ZSwgTWVkaWFGZWF0dXJlUHJlZml4KQogewogICAgIHJldHVybiBjb2xvck1lZGlhRmVhdHVyZUV2
YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWlu
X21vbm9jaHJvbWVNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUq
IHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKK3N0YXRpYyBib29sIG1p
bk1vbm9jaHJvbWVNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUq
IHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKICAgICByZXR1cm4g
bW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWluUHJlZml4
KTsKIH0KIAotc3RhdGljIGJvb2wgbWF4X21vbm9jaHJvbWVNZWRpYUZlYXR1cmVFdmFsKENTU1Zh
bHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVy
ZVByZWZpeCkKK3N0YXRpYyBib29sIG1heE1vbm9jaHJvbWVNZWRpYUZlYXR1cmVFdmFsKENTU1Zh
bHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVy
ZVByZWZpeCkKIHsKICAgICByZXR1cm4gbW9ub2Nocm9tZU1lZGlhRmVhdHVyZUV2YWwodmFsdWUs
IHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWluX2FzcGVjdF9y
YXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUs
IEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQorc3RhdGljIGJvb2wgbWluQXNwZWN0
UmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxl
LCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKLSAgICByZXR1cm4gYXNwZWN0
X3JhdGlvTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNaW5QcmVmaXgpOwor
ICAgIHJldHVybiBhc3BlY3RSYXRpb01lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFt
ZSwgTWluUHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWF4X2FzcGVjdF9yYXRpb01lZGlhRmVh
dHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFt
ZSwgTWVkaWFGZWF0dXJlUHJlZml4KQorc3RhdGljIGJvb2wgbWF4QXNwZWN0UmF0aW9NZWRpYUZl
YXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJh
bWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKLSAgICByZXR1cm4gYXNwZWN0X3JhdGlvTWVkaWFG
ZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOworICAgIHJldHVybiBh
c3BlY3RSYXRpb01lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4
KTsKIH0KIAotc3RhdGljIGJvb2wgbWluX2RldmljZV9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmVF
dmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1l
ZGlhRmVhdHVyZVByZWZpeCkKK3N0YXRpYyBib29sIG1pbkRldmljZUFzcGVjdFJhdGlvTWVkaWFG
ZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZy
YW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCiB7Ci0gICAgcmV0dXJuIGRldmljZV9hc3BlY3RfcmF0
aW9NZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1pblByZWZpeCk7CisgICAg
cmV0dXJuIGRldmljZUFzcGVjdFJhdGlvTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZy
YW1lLCBNaW5QcmVmaXgpOwogfQogCi1zdGF0aWMgYm9vbCBtYXhfZGV2aWNlX2FzcGVjdF9yYXRp
b01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZy
YW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQorc3RhdGljIGJvb2wgbWF4RGV2aWNlQXNw
ZWN0UmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0
eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKLSAgICByZXR1cm4gZGV2
aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWF4
UHJlZml4KTsKKyAgICByZXR1cm4gZGV2aWNlQXNwZWN0UmF0aW9NZWRpYUZlYXR1cmVFdmFsKHZh
bHVlLCBzdHlsZSwgZnJhbWUsIE1heFByZWZpeCk7CiB9CiAKLXN0YXRpYyBib29sIG1pbl9kZXZp
Y2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5
bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKK3N0YXRpYyBib29s
IG1pbkRldmljZVBpeGVsUmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVu
ZGVyU3R5bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKLSAg
ICByZXR1cm4gZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUs
IGZyYW1lLCBNaW5QcmVmaXgpOworICAgIHJldHVybiBkZXZpY2VQaXhlbFJhdGlvTWVkaWFGZWF0
dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNaW5QcmVmaXgpOwogfQogCi1zdGF0aWMgYm9v
bCBtYXhfZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUs
IFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitz
dGF0aWMgYm9vbCBtYXhEZXZpY2VQaXhlbFJhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSog
dmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVm
aXgpCiB7Ci0gICAgcmV0dXJuIGRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZUV2YWwodmFs
dWUsIHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKKyAgICByZXR1cm4gZGV2aWNlUGl4ZWxSYXRp
b01lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKIH0KIAot
c3RhdGljIGJvb2wgbWluX2hlaWdodE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBS
ZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQorc3Rh
dGljIGJvb2wgbWluSGVpZ2h0TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRl
clN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCiB7CiAgICAg
cmV0dXJuIGhlaWdodE1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWluUHJl
Zml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWF4X2hlaWdodE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFs
dWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJl
UHJlZml4KQorc3RhdGljIGJvb2wgbWF4SGVpZ2h0TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSog
dmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVm
aXgpCiB7CiAgICAgcmV0dXJuIGhlaWdodE1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBm
cmFtZSwgTWF4UHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWluX3dpZHRoTWVkaWFGZWF0dXJl
RXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBN
ZWRpYUZlYXR1cmVQcmVmaXgpCitzdGF0aWMgYm9vbCBtaW5XaWR0aE1lZGlhRmVhdHVyZUV2YWwo
Q1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFG
ZWF0dXJlUHJlZml4KQogewogICAgIHJldHVybiB3aWR0aE1lZGlhRmVhdHVyZUV2YWwodmFsdWUs
IHN0eWxlLCBmcmFtZSwgTWluUHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWF4X3dpZHRoTWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUq
IGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitzdGF0aWMgYm9vbCBtYXhXaWR0aE1lZGlhRmVh
dHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFt
ZSwgTWVkaWFGZWF0dXJlUHJlZml4KQogewogICAgIHJldHVybiB3aWR0aE1lZGlhRmVhdHVyZUV2
YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4KTsKIH0KIAotc3RhdGljIGJvb2wgbWlu
X2RldmljZV9oZWlnaHRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5
bGUqIHN0eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKK3N0YXRpYyBib29s
IG1pbkRldmljZUhlaWdodE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJT
dHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQogewotICAgIHJl
dHVybiBkZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBN
aW5QcmVmaXgpOworICAgIHJldHVybiBkZXZpY2VIZWlnaHRNZWRpYUZlYXR1cmVFdmFsKHZhbHVl
LCBzdHlsZSwgZnJhbWUsIE1pblByZWZpeCk7CiB9CiAKLXN0YXRpYyBib29sIG1heF9kZXZpY2Vf
aGVpZ2h0TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHls
ZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitzdGF0aWMgYm9vbCBtYXhEZXZp
Y2VIZWlnaHRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqIHN0
eWxlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCkKIHsKLSAgICByZXR1cm4gZGV2
aWNlX2hlaWdodE1lZGlhRmVhdHVyZUV2YWwodmFsdWUsIHN0eWxlLCBmcmFtZSwgTWF4UHJlZml4
KTsKKyAgICByZXR1cm4gZGV2aWNlSGVpZ2h0TWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUs
IGZyYW1lLCBNYXhQcmVmaXgpOwogfQogCi1zdGF0aWMgYm9vbCBtaW5fZGV2aWNlX3dpZHRoTWVk
aWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUq
IGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXgpCitzdGF0aWMgYm9vbCBtaW5EZXZpY2VXaWR0aE1l
ZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1l
KiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQogewotICAgIHJldHVybiBkZXZpY2Vfd2lkdGhN
ZWRpYUZlYXR1cmVFdmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1pblByZWZpeCk7CisgICAgcmV0
dXJuIGRldmljZVdpZHRoTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNaW5Q
cmVmaXgpOwogfQogCi1zdGF0aWMgYm9vbCBtYXhfZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlRXZh
bChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiBzdHlsZSwgRnJhbWUqIGZyYW1lLCBNZWRp
YUZlYXR1cmVQcmVmaXgpCitzdGF0aWMgYm9vbCBtYXhEZXZpY2VXaWR0aE1lZGlhRmVhdHVyZUV2
YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVk
aWFGZWF0dXJlUHJlZml4KQogewotICAgIHJldHVybiBkZXZpY2Vfd2lkdGhNZWRpYUZlYXR1cmVF
dmFsKHZhbHVlLCBzdHlsZSwgZnJhbWUsIE1heFByZWZpeCk7CisgICAgcmV0dXJuIGRldmljZVdp
ZHRoTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOwogfQog
Ci1zdGF0aWMgYm9vbCBtaW5fcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZh
bHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4
KQorc3RhdGljIGJvb2wgbWluUmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZh
bHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4
KQogewogICAgIHJldHVybiByZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUs
IGZyYW1lLCBNaW5QcmVmaXgpOwogfQogCi1zdGF0aWMgYm9vbCBtYXhfcmVzb2x1dGlvbk1lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBm
cmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQorc3RhdGljIGJvb2wgbWF4UmVzb2x1dGlvbk1lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSogc3R5bGUsIEZyYW1lKiBm
cmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4KQogewogICAgIHJldHVybiByZXNvbHV0aW9uTWVkaWFG
ZWF0dXJlRXZhbCh2YWx1ZSwgc3R5bGUsIGZyYW1lLCBNYXhQcmVmaXgpOwogfQpAQCAtNjI2LDcg
KzUyOSw3IEBAIHN0YXRpYyBib29sIHRyYW5zaXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVl
KiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSosIE1lCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LXN0YXRpYyBib29sIHRyYW5zZm9ybV8yZE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVl
LCBSZW5kZXJTdHlsZSosIEZyYW1lKiwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQorc3RhdGljIGJv
b2wgdHJhbnNmb3JtMmRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5
bGUqLCBGcmFtZSosIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAgICBpZiAodmFsdWUpIHsK
ICAgICAgICAgZmxvYXQgbnVtYmVyOwpAQCAtNjM1LDcgKzUzOCw3IEBAIHN0YXRpYyBib29sIHRy
YW5zZm9ybV8yZE1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSos
IEZyYW1lKiwKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgdHJhbnNmb3JtXzNk
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZy
YW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCitzdGF0aWMgYm9vbCB0cmFuc2Zvcm0zZE1lZGlh
RmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcmFtZSwg
TWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewogICAgIGJvb2wgcmV0dXJuVmFsdWVJZk5vUGFyYW1l
dGVyOwogICAgIGludCBoYXZlM2RSZW5kZXJpbmc7CkBAIC02NjMsNyArNTY2LDcgQEAgc3RhdGlj
IGJvb2wgdHJhbnNmb3JtXzNkTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRl
clN0eWxlKiwgRnJhbWUqIGYKIH0KIAogI2lmIEVOQUJMRShWSUVXX01PREVfQ1NTX01FRElBKQot
c3RhdGljIGJvb2wgdmlld19tb2RlTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJl
bmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCitzdGF0aWMg
Ym9vbCB2aWV3TW9kZU1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHls
ZSosIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQogewogICAgIFVOVVNFRF9Q
QVJBTShvcCk7CiAgICAgaWYgKCF2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9NZWRpYVF1ZXJ5RXhwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmNw
cAppbmRleCBhYWZlYjJmN2I4ZDIyODUyZDM5ZDFiYmZmYTExM2JjNGEwNmM4ODQxLi41ZTNhNDQx
ZjY0NTY4MDk4MWNlODEyNjdkYzI1YjgwNDg5MGI0N2M0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvTWVkaWFRdWVyeUV4cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlh
UXVlcnlFeHAuY3BwCkBAIC00Niw3ICs0Niw3IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJl
V2l0aENTU1ZhbHVlSUQoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIGNvbnN0CiAK
ICAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpvcmllbnRhdGlv
bk1lZGlhRmVhdHVyZQogI2lmIEVOQUJMRShWSUVXX01PREVfQ1NTX01FRElBKQotICAgICAgICB8
fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZpZXdfbW9kZU1lZGlhRmVhdHVy
ZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZpZXdNb2Rl
TWVkaWFGZWF0dXJlCiAjZW5kaWYgLy8gRU5BQkxFKFZJRVdfTU9ERV9DU1NfTUVESUEpCiAgICAg
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cG9pbnRlck1lZGlhRmVh
dHVyZTsKIH0KQEAgLTU3LDE3ICs1NywxNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdp
dGhWYWxpZFBvc2l0aXZlTGVuZ2h0T3JOdW1iZXIoY29uc3QgQXRvbWljU3RyaW5nJiBtZQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1lZGlhRmVh
dHVyZU5hbWVzOjpoZWlnaHRNZWRpYUZlYXR1cmUKLSAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09
IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfaGVpZ2h0TWVkaWFGZWF0dXJlCi0gICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX2hlaWdodE1lZGlhRmVhdHVyZQor
ICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heEhlaWdodE1l
ZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6
Om1pbkhlaWdodE1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6OndpZHRoTWVkaWFGZWF0dXJlCi0gICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4X3dpZHRoTWVkaWFGZWF0dXJlCi0gICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX3dpZHRoTWVkaWFGZWF0dXJlCi0g
ICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlX2hlaWdo
dE1lZGlhRmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6Om1heF9kZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlCi0gICAgICAgIHx8IG1lZGlhRmVhdHVy
ZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX2RldmljZV9oZWlnaHRNZWRpYUZlYXR1cmUKLSAg
ICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2Vfd2lkdGhN
ZWRpYUZlYXR1cmUKLSAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjptYXhfZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlCi0gICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX2RldmljZV93aWR0aE1lZGlhRmVhdHVyZTsKKyAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhXaWR0aE1lZGlhRmVh
dHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbldp
ZHRoTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVO
YW1lczo6ZGV2aWNlSGVpZ2h0TWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4RGV2aWNlSGVpZ2h0TWVkaWFGZWF0dXJlCisgICAgICAg
IHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluRGV2aWNlSGVpZ2h0TWVk
aWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6
ZGV2aWNlV2lkdGhNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlh
RmVhdHVyZU5hbWVzOjptYXhEZXZpY2VXaWR0aE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRp
YUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbkRldmljZVdpZHRoTWVkaWFGZWF0dXJl
OwogfQogCiBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhWYWxpZERlbnNpdHkoY29uc3Qg
QXRvbWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIGNvbnN0IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkK
QEAgLTc2LDggKzc2LDggQEAgc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoVmFsaWREZW5z
aXR5KGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBjb24KICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6
cmVzb2x1dGlvbk1lZGlhRmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6Om1heF9yZXNvbHV0aW9uTWVkaWFGZWF0dXJlCi0gICAgICAgIHx8IG1lZGlh
RmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX3Jlc29sdXRpb25NZWRpYUZlYXR1cmU7
CisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4UmVzb2x1
dGlvbk1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJl
TmFtZXM6Om1pblJlc29sdXRpb25NZWRpYUZlYXR1cmU7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9v
bCBmZWF0dXJlV2l0aFBvc2l0aXZlSW50ZWdlcihjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVh
dHVyZSwgY29uc3QgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlKQpAQCAtODYsMTAgKzg2LDEwIEBAIHN0
YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFBvc2l0aXZlSW50ZWdlcihjb25zdCBBdG9taWNT
dHJpbmcmIG1lZGlhRmVhdHVyZSwKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJu
IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6Y29sb3JNZWRpYUZlYXR1cmUKLSAg
ICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhfY29sb3JNZWRp
YUZlYXR1cmUKLSAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpt
aW5fY29sb3JNZWRpYUZlYXR1cmUKLSAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVh
dHVyZU5hbWVzOjptaW5fbW9ub2Nocm9tZU1lZGlhRmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZl
YXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heF9tb25vY2hyb21lTWVkaWFGZWF0dXJlOwor
ICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heENvbG9yTWVk
aWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6
bWluQ29sb3JNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVh
dHVyZU5hbWVzOjptaW5Nb25vY2hyb21lTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVh
dHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4TW9ub2Nocm9tZU1lZGlhRmVhdHVyZTsKIH0K
IAogc3RhdGljIGlubGluZSBib29sIGZlYXR1cmVXaXRoUG9zaXRpdmVOdW1iZXIoY29uc3QgQXRv
bWljU3RyaW5nJiBtZWRpYUZlYXR1cmUsIGNvbnN0IENTU1BhcnNlclZhbHVlKiB2YWx1ZSkKQEAg
LTk3LDEzICs5NywxMyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhQb3NpdGl2ZU51
bWJlcihjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgYwogICAgIGlmICh2YWx1ZS0+
dW5pdCAhPSBDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX05VTUJFUiB8fCB2YWx1ZS0+ZlZhbHVlIDwg
MCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6dHJhbnNmb3JtXzJkTWVkaWFGZWF0dXJlCi0gICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dHJhbnNmb3JtXzNkTWVkaWFGZWF0dXJl
CisgICAgcmV0dXJuIG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dHJhbnNmb3Jt
MmRNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5h
bWVzOjp0cmFuc2Zvcm0zZE1lZGlhRmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6OnRyYW5zaXRpb25NZWRpYUZlYXR1cmUKICAgICAgICAgfHwgbWVk
aWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjphbmltYXRpb25NZWRpYUZlYXR1cmUKLSAg
ICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VfcGl4ZWxf
cmF0aW9NZWRpYUZlYXR1cmUKLSAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVy
ZU5hbWVzOjptYXhfZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlCi0gICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX2RldmljZV9waXhlbF9yYXRpb01l
ZGlhRmVhdHVyZTsKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjpkZXZpY2VQaXhlbFJhdGlvTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9
PSBNZWRpYUZlYXR1cmVOYW1lczo6bWF4RGV2aWNlUGl4ZWxSYXRpb01lZGlhRmVhdHVyZQorICAg
ICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1pbkRldmljZVBpeGVs
UmF0aW9NZWRpYUZlYXR1cmU7CiB9CiAKIHN0YXRpYyBpbmxpbmUgYm9vbCBmZWF0dXJlV2l0aFpl
cm9Pck9uZShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSwgY29uc3QgQ1NTUGFyc2Vy
VmFsdWUqIHZhbHVlKQpAQCAtMTE3LDEyICsxMTcsMTIgQEAgc3RhdGljIGlubGluZSBib29sIGZl
YXR1cmVXaXRoWmVyb09yT25lKGNvbnN0IEF0b21pY1N0cmluZyYgbWVkaWFGZWF0dXJlLCBjb25z
dAogCiBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdpdGhBc3BlY3RSYXRpbyhjb25zdCBBdG9t
aWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKIHsKLSAgICByZXR1cm4gbWVkaWFGZWF0dXJlID09IE1l
ZGlhRmVhdHVyZU5hbWVzOjphc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmUKLSAgICAgICAgfHwgbWVk
aWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpkZXZpY2VfYXNwZWN0X3JhdGlvTWVkaWFG
ZWF0dXJlCi0gICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWlu
X2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6Om1heF9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmUKLSAgICAgICAgfHwg
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5fZGV2aWNlX2FzcGVjdF9yYXRp
b01lZGlhRmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFt
ZXM6Om1heF9kZXZpY2VfYXNwZWN0X3JhdGlvTWVkaWFGZWF0dXJlOworICAgIHJldHVybiBtZWRp
YUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmFzcGVjdFJhdGlvTWVkaWFGZWF0dXJlCisg
ICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlQXNwZWN0
UmF0aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVy
ZU5hbWVzOjptaW5Bc3BlY3RSYXRpb01lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1
cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heEFzcGVjdFJhdGlvTWVkaWFGZWF0dXJlCisgICAg
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluRGV2aWNlQXNwZWN0
UmF0aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVy
ZU5hbWVzOjptYXhEZXZpY2VBc3BlY3RSYXRpb01lZGlhRmVhdHVyZTsKIH0KIAogc3RhdGljIGlu
bGluZSBib29sIGZlYXR1cmVXaXRob3V0VmFsdWUoY29uc3QgQXRvbWljU3RyaW5nJiBtZWRpYUZl
YXR1cmUpCkBAIC0xMzMsMjEgKzEzMywyMSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgZmVhdHVyZVdp
dGhvdXRWYWx1ZShjb25zdCBBdG9taWNTdHJpbmcmIG1lZGlhRmVhdHVyZSkKICAgICAgICAgfHwg
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpncmlkTWVkaWFGZWF0dXJlCiAgICAg
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6aGVpZ2h0TWVkaWFGZWF0
dXJlCiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6d2lkdGhN
ZWRpYUZlYXR1cmUKLSAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVz
OjpkZXZpY2VfaGVpZ2h0TWVkaWFGZWF0dXJlCi0gICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlX3dpZHRoTWVkaWFGZWF0dXJlCisgICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlSGVpZ2h0TWVkaWFGZWF0dXJl
CisgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6ZGV2aWNlV2lk
dGhNZWRpYUZlYXR1cmUKICAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5h
bWVzOjpvcmllbnRhdGlvbk1lZGlhRmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6OmFzcGVjdF9yYXRpb01lZGlhRmVhdHVyZQotICAgICAgICB8fCBt
ZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZV9hc3BlY3RfcmF0aW9NZWRp
YUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjph
c3BlY3RSYXRpb01lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFG
ZWF0dXJlTmFtZXM6OmRldmljZUFzcGVjdFJhdGlvTWVkaWFGZWF0dXJlCiAgICAgICAgIHx8IG1l
ZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6aG92ZXJNZWRpYUZlYXR1cmUKLSAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjp0cmFuc2Zvcm1fMmRNZWRp
YUZlYXR1cmUKLSAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjp0
cmFuc2Zvcm1fM2RNZWRpYUZlYXR1cmUKKyAgICAgICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlh
RmVhdHVyZU5hbWVzOjp0cmFuc2Zvcm0yZE1lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZl
YXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnRyYW5zZm9ybTNkTWVkaWFGZWF0dXJlCiAgICAg
ICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6dHJhbnNpdGlvbk1lZGlh
RmVhdHVyZQogICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmFu
aW1hdGlvbk1lZGlhRmVhdHVyZQogI2lmIEVOQUJMRShWSUVXX01PREVfQ1NTX01FRElBKQotICAg
ICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZpZXdfbW9kZU1lZGlh
RmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OnZp
ZXdNb2RlTWVkaWFGZWF0dXJlCiAjZW5kaWYgLy8gRU5BQkxFKFZJRVdfTU9ERV9DU1NfTUVESUEp
CiAgICAgICAgIHx8IG1lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6cG9pbnRlck1l
ZGlhRmVhdHVyZQotICAgICAgICB8fCBtZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6
OmRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZQorICAgICAgICB8fCBtZWRpYUZlYXR1cmUg
PT0gTWVkaWFGZWF0dXJlTmFtZXM6OmRldmljZVBpeGVsUmF0aW9NZWRpYUZlYXR1cmUKICAgICAg
ICAgfHwgbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjpyZXNvbHV0aW9uTWVkaWFG
ZWF0dXJlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4
cC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHAuaAppbmRleCBjNDFiMzgwNmU3
NTViMzg0NTNkMDUzMzlkNWUzYmE1MTU4YWU2MzNmLi5jM2NlOWRjMDhjNzhmMTc0NWY1ZWYzMTMz
MzUyY2YwMDdiNDc5ZjJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVy
eUV4cC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwLmgKQEAgLTU5LDE0
ICs1OSwxNCBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzVmlld3BvcnREZXBlbmRlbnQoKSBjb25z
dCB7IHJldHVybiBtX21lZGlhRmVhdHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6d2lkdGhNZWRp
YUZlYXR1cmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwg
bV9tZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6OmhlaWdodE1lZGlhRmVhdHVyZQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBtX21lZGlhRmVh
dHVyZSA9PSBNZWRpYUZlYXR1cmVOYW1lczo6bWluX3dpZHRoTWVkaWFGZWF0dXJlCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IG1fbWVkaWFGZWF0dXJlID09
IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5faGVpZ2h0TWVkaWFGZWF0dXJlCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IG1fbWVkaWFGZWF0dXJlID09IE1lZGlh
RmVhdHVyZU5hbWVzOjptYXhfd2lkdGhNZWRpYUZlYXR1cmUKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfHwgbV9tZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJl
TmFtZXM6Om1heF9oZWlnaHRNZWRpYUZlYXR1cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgfHwgbV9tZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6
Om1pbldpZHRoTWVkaWFGZWF0dXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHx8IG1fbWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptaW5IZWln
aHRNZWRpYUZlYXR1cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgfHwgbV9tZWRpYUZlYXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om1heFdpZHRoTWVkaWFG
ZWF0dXJlCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IG1f
bWVkaWFGZWF0dXJlID09IE1lZGlhRmVhdHVyZU5hbWVzOjptYXhIZWlnaHRNZWRpYUZlYXR1cmUK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgbV9tZWRpYUZl
YXR1cmUgPT0gTWVkaWFGZWF0dXJlTmFtZXM6Om9yaWVudGF0aW9uTWVkaWFGZWF0dXJlCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IG1fbWVkaWFGZWF0dXJl
ID09IE1lZGlhRmVhdHVyZU5hbWVzOjphc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgbV9tZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6Om1pbl9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmUKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgbV9tZWRpYUZlYXR1cmUgPT0g
TWVkaWFGZWF0dXJlTmFtZXM6Om1heF9hc3BlY3RfcmF0aW9NZWRpYUZlYXR1cmU7ICB9CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IG1fbWVkaWFGZWF0dXJl
ID09IE1lZGlhRmVhdHVyZU5hbWVzOjphc3BlY3RSYXRpb01lZGlhRmVhdHVyZQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBtX21lZGlhRmVhdHVyZSA9PSBN
ZWRpYUZlYXR1cmVOYW1lczo6bWluQXNwZWN0UmF0aW9NZWRpYUZlYXR1cmUKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgbV9tZWRpYUZlYXR1cmUgPT0gTWVk
aWFGZWF0dXJlTmFtZXM6Om1heEFzcGVjdFJhdGlvTWVkaWFGZWF0dXJlOyAgfQogCiAgICAgU3Ry
aW5nIHNlcmlhbGl6ZSgpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTlmMGEyOThmZTYxMjUwMTEyOTM4Y2Nm
MzVkOWU2YWI2MmIyNGM0Zi4uZWViMjgxMDdjMWNjZjZhZmNjZTIzOTBiYTBmNGEyNDI4NWZmNTlm
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA0LTEwICBSdW5lIExpbGxlc3ZlZW4gIDxy
dW5lQG9wZXJhLmNvbT4KKworICAgICAgICBJbmNvcnJlY3QgZXZhbHVhdGlvbiBvZiByZXNvbHV0
aW9uIG1lZGlhIHF1ZXJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTExNDAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIE1vZGlmaWVkIHRlc3RzIHRvIGNoYW5nZSBDU1MgcmVzb2x1dGlvbiBpbnN0ZWFk
IG9mIHBoeXNpY2FsIHJlc29sdXRpb24uCisKKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXJlc29s
dXRpb24uaHRtbDoKKwogMjAxMy0wNC0wNSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxp
YS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbAppbmRleCAwNjIwY2MwMTdiZmEwMGVmZjIyMTJi
YTUyZTdkYTA2NDM2ZDkwMGU3Li41YzJlNjhmMzkwNzcxMmI4YWQ5MTNmYjdkNTYwODNmN2UzODIy
MTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbApAQCAtNDks
MTkgKzQ5LDE5IEBACiAgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRp
b246IDBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOwogICAgICAgICBzaG91bGRCZSgibWF0Y2hN
ZWRpYSgnKG1heC1yZXNvbHV0aW9uOiAwZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKIAotICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxNDQs
IDE0NCk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFj
dG9yKDEuNSwgMCwgMCk7CiAgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlv
bjogMS41ZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKICAgICAgICAgc2hvdWxkQmUoInJlc29s
dXRpb25Gcm9tU3R5bGUoKSIsICIxLjUiKTsKIAotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxOTIsIDE5Mik7CisgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIsIDAsIDApOwogICAgICAgICBz
aG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDJkcHB4KScpLm1hdGNoZXMiLCAidHJ1
ZSIpOwogICAgICAgICBzaG91bGRCZSgicmVzb2x1dGlvbkZyb21TdHlsZSgpIiwgIjIiKTsKIAot
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSg5
NiwgOTYpOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZh
Y3RvcigxLCAwLCAwKTsKICAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9u
OiAxZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKICAgICAgICAgc2hvdWxkQmUoInJlc29sdXRp
b25Gcm9tU3R5bGUoKSIsICIxIik7CiAKLSAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5n
cy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMjE2LCAyMTYpOworICAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigyLjI1LCAwLCAwKTsKICAgICAgICAgc2hv
dWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiAyLjI1ZHBweCknKS5tYXRjaGVzIiwgInRy
dWUiKTsKICAgICAgICAgc2hvdWxkQmUoInJlc29sdXRpb25Gcm9tU3R5bGUoKSIsICIyLjI1Iik7
CiAgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlvbiknKS5tYXRjaGVzIiwg
InRydWUiKTsKQEAgLTczLDI2ICs3Myw2IEBACiAgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlh
KCcobWluLXJlc29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKICAgICAgICAg
c2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtYXgtcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMi
LCAidHJ1ZSIpOwogCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1
dGlvbk92ZXJyaWRlKDIxNiwgMjU0KTsKLSAgICAgICAgLy8gTm9uLXNxdWFyZSBtdXN0IG5ldmVy
IG1hdGNoLgotICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb24pJykubWF0
Y2hlcyIsICJmYWxzZSIpOwotICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRp
b246IDIxNmRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7Ci0gICAgICAgIHNob3VsZEJlKCJtYXRj
aE1lZGlhKCcocmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKLQotICAg
ICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1pbi1yZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0
Y2hlcyIsICJ0cnVlIik7Ci0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29s
dXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7Ci0gICAgICAgIHNob3VsZEJlKCJt
YXRjaE1lZGlhKCcobWF4LXJlc29sdXRpb246IDIxNmRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7
Ci0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWF4LXJlc29sdXRpb246IDI1NGRwaSkn
KS5tYXRjaGVzIiwgInRydWUiKTsKLQotICAgICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIg
bWF0Y2guCi0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlvbjogODVkcGNt
KScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKLSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhy
ZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKLQotICAgICAgICBzaG91
bGRCZSgibWF0Y2hNZWRpYSgnKG1pbi1yZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIsICJ0
cnVlIik7Ci0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDEw
MGRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIpOwotICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRp
YSgnKG1heC1yZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIpOwotICAgICAg
ICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1heC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNo
ZXMiLCAidHJ1ZSIpOwotCiAgICAgICAgIC8vIFRlc3QgcHJpbnRpbmcuCiAKICAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRNZWRpYVR5cGVPdmVycmlkZSgicHJpbnQiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197257</attachid>
            <date>2013-04-10 06:39:57 -0700</date>
            <delta_ts>2013-04-10 09:06:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114029-20130410153938.patch</filename>
            <type>text/plain</type>
            <size>12821</size>
            <attacher name="Rune Lillesveen">rune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjAyMzlkMmY5YTEwMGQ5
ZTM0ZWEyYzZhNWZiNGIyYjJjOWY5NjA1Mi4uZjlhMThmZDRlNzA5MDRjMDZjZjNhZjNkYTgzMWY5
YmRiMmM5NDhmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEzLTA0LTA1ICBSdW5l
IExpbGxlc3ZlZW4gIDxydW5lQG9wZXJhLmNvbT4KKworICAgICAgICBJbmNvcnJlY3QgZXZhbHVh
dGlvbiBvZiByZXNvbHV0aW9uIG1lZGlhIHF1ZXJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiB1c2VkIHRoZSBwaHlz
aWNhbCByZXNvbHV0aW9uIHRvIGV2YWx1YXRlIHRoZQorICAgICAgICByZXNvbHV0aW9uIG1lZGlh
IGZlYXR1cmVzLiBDaGFuZ2VkIHRvIHVzZSB0aGUgYWN0dWFsIENTUyByZXNvbHV0aW9uLAorICAg
ICAgICBhbHNvIGtub3duIGFzIHRoZSBkZXZpY2UtcGl4ZWwtcmF0aW8sIGluc3RlYWQuIFVuaWZp
ZWQgdGhlIGNvZGUgZm9yCisgICAgICAgIGV2YWx1YXRpbmcgdGhlIHJlc29sdXRpb24gYW5kIGRl
dmljZS1waXhlbC1yYXRpbyBtZWRpYSBmZWF0dXJlcy4KKworICAgICAgICAqIGNzcy9DU1NQcmlt
aXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmlzUmVz
b2x1dGlvbik6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6ZXZhbFJlc29sdXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6ZGV2aWNlX3Bp
eGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgIChXZWJDb3JlOjpyZXNvbHV0aW9u
TWVkaWFGZWF0dXJlRXZhbCk6CisKIDIwMTMtMDQtMDUgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmVtb3ZlIENocm9taXVtIGNvZGUgZnJvbSBXZWJDb3JlL2Vk
aXRpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgKaW5kZXggMThkMjNmYWU3
YjAwYjE3NTM0Yzc0ZmMwNzI3YmEwNTdjMDIwZjliZS4uZGEzYTMzYjMyY2Q5YzE5YzNlYTFhM2Zi
YTRhNjg2OTg5YjRmYTJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmgK
QEAgLTE4OSw2ICsxODksMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNEb3RzUGVySW5jaCgpIGNv
bnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBJOyB9CiAgICAgYm9vbCBpc0Rv
dHNQZXJQaXhlbCgpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfRFBQWDsg
fQogICAgIGJvb2wgaXNEb3RzUGVyQ2VudGltZXRlcigpIGNvbnN0IHsgcmV0dXJuIHByaW1pdGl2
ZVR5cGUoKSA9PSBDU1NfRFBDTTsgfQorICAgIGJvb2wgaXNSZXNvbHV0aW9uKCkgY29uc3QKKyAg
ICB7CisgICAgICAgIHVuc2lnbmVkIHNob3J0IHR5cGUgPSBwcmltaXRpdmVUeXBlKCk7CisgICAg
ICAgIHJldHVybiB0eXBlID49IENTU19EUFBYICYmIHR5cGUgPD0gQ1NTX0RQQ007CisgICAgfQog
CiAjaWYgRU5BQkxFKENTU19WQVJJQUJMRVMpCiAgICAgYm9vbCBpc1ZhcmlhYmxlTmFtZSgpIGNv
bnN0IHsgcmV0dXJuIHByaW1pdGl2ZVR5cGUoKSA9PSBDU1NfVkFSSUFCTEVfTkFNRTsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCmluZGV4IGMyZmMwZjYxOWY3
NDQ4NDRhZjM1N2RiNjg5NDJjYjg5ZGQxZGU3NzAuLjNlYzZiOTdjZDI0ZjIwYmQwMTNjNTMyYzAz
ZDc0ZjhjM2I0ZjZjYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRv
ci5jcHAKQEAgLTE5OCwyMyArMTk4LDYgQEAgc3RhdGljIGJvb2wgY29tcGFyZUFzcGVjdFJhdGlv
VmFsdWUoQ1NTVmFsdWUqIHZhbHVlLCBpbnQgd2lkdGgsIGludCBoZWlnaHQsIE1lZGkKICAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKLSNpZiBFTkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKLXN0
YXRpYyBib29sIGNvbXBhcmVSZXNvbHV0aW9uKGZsb2F0IG1pbiwgZmxvYXQgbWF4LCBmbG9hdCB2
YWx1ZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQotewotICAgIHN3aXRjaCAob3ApIHsKLSAgICBj
YXNlIE5vUHJlZml4OgotICAgICAgICAvLyBBICdyZXNvbHV0aW9uJyAod2l0aG91dCBhICJtaW4t
IiBvciAibWF4LSIgcHJlZml4KSBxdWVyeQotICAgICAgICAvLyBuZXZlciBtYXRjaGVzIGEgZGV2
aWNlIHdpdGggbm9uLXNxdWFyZSBwaXhlbHMuCi0gICAgICAgIHJldHVybiB2YWx1ZSA9PSBtaW4g
JiYgdmFsdWUgPT0gbWF4OwotICAgIGNhc2UgTWluUHJlZml4OgotICAgICAgICByZXR1cm4gbWlu
ID49IHZhbHVlOwotICAgIGNhc2UgTWF4UHJlZml4OgotICAgICAgICByZXR1cm4gbWF4IDw9IHZh
bHVlOwotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0jZW5kaWYKLQogc3RhdGljIGJvb2wg
bnVtYmVyVmFsdWUoQ1NTVmFsdWUqIHZhbHVlLCBmbG9hdCYgcmVzdWx0KQogewogICAgIGlmICh2
YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpCkBAIC0yODgsNyArMjcxLDcgQEAgc3RhdGljIGJvb2wg
ZGV2aWNlX2FzcGVjdF9yYXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5k
ZXJTdHlsZSosIEYKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotc3RhdGljIGJvb2wgZGV2aWNlX3Bp
eGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSAqdmFsdWUsIFJlbmRlclN0eWxlKiwg
RnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCitzdGF0aWMgYm9vbCBldmFsUmVz
b2x1dGlvbihDU1NWYWx1ZSogdmFsdWUsIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4
IG9wKQogewogICAgIC8vIEZJWE1FOiBQb3NzaWJsZSBoYW5kbGUgb3RoZXIgbWVkaWEgdHlwZXMg
dGhhbiAnc2NyZWVuJyBhbmQgJ3ByaW50Jy4KICAgICBmbG9hdCBkZXZpY2VTY2FsZUZhY3RvciA9
IDA7CkBAIC0zMTAsMTA4ICsyOTMsMjggQEAgc3RhdGljIGJvb2wgZGV2aWNlX3BpeGVsX3JhdGlv
TWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSAqdmFsdWUsIFJlbmRlclN0eWxlKiwgRnIKICAgICBp
ZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gISFkZXZpY2VTY2FsZUZhY3RvcjsKIAotICAgIHJl
dHVybiB2YWx1ZS0+aXNQcmltaXRpdmVWYWx1ZSgpICYmIGNvbXBhcmVWYWx1ZShkZXZpY2VTY2Fs
ZUZhY3Rvciwgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmdldEZsb2F0
VmFsdWUoKSwgb3ApOwotfQotCi1zdGF0aWMgYm9vbCByZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZh
bChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1
cmVQcmVmaXggb3ApCi17Ci0jaWYgRU5BQkxFKFJFU09MVVRJT05fTUVESUFfUVVFUlkpCi0gICAg
Ly8gVGhlIERQSSBiZWxvdyBpcyBkb3RzIHBlciBDU1MgaW5jaCBhbmQgdGh1cyBub3QgZGV2aWNl
IGluY2guIFRoZQotICAgIC8vIGZ1bmN0aW9ucyBzaG91bGQgcmVzcGVjdCB0aGlzLgotICAgIC8v
Ci0gICAgLy8gRm9yIHNxdWFyZSBwaXhlbHMsIGl0IGlzIHNpbXBseSB0aGUgZGV2aWNlIHNjYWxl
IGZhY3RvciAoZHBweCkgdGltZXMgOTYsCi0gICAgLy8gcGVyIGRlZmluaXRpb24uCi0gICAgLy8K
LSAgICAvLyBUaGUgZGV2aWNlIHNjYWxlIGZhY3RvciBpcyBhIHByZWRlZmluZWQgdmFsdWUgd2hp
Y2ggaXMgY2FsY3VsYXRlZCBwZXIKLSAgICAvLyBkZXZpY2UgZ2l2ZW4gdGhlIHByZWZlcnJlZCBk
aXN0YW5jZSBpbiBhcm1zIGxlbmd0aCAoY29uc2lkZXJlZCBvbmUgYXJtcwotICAgIC8vIGxlbmd0
aCBmb3IgZGVza3RvcCBjb21wdXRlcnMgYW5kIHVzdWFsbHkgMC42IGFybXMgbGVuZ3RoIGZvciBw
aG9uZXMpLgotICAgIC8vCi0gICAgLy8gVGhlIHZhbHVlIGNhbiBiZSBjYWxjdWxhdGVkIGFzIGZv
bGxvd3MgKHJvdW5kZWQgdG8gcXVhcnRlcnMpOgotICAgIC8vICAgICByb3VuZCgoZGV2aWNlRG90
c1BlckluY2ggKiBkaXN0YW5jZUluQXJtc0xlbmd0aCAvIDk2KSAqIDQpIC8gNC4KLSAgICAvLyBF
eGFtcGxlIChtaWQtcmFuZ2UgcmVzb2x1dGlvbiBwaG9uZSk6Ci0gICAgLy8gICAgIHJvdW5kKCgy
NDQgKiAwLjYgLyA5NikgKiA0KSAvIDQgPSAxLjUKLSAgICAvLyBFeGFtcGxlIChoaWdoLXJhbmdl
IHJlc29sdXRpb24gbGFwdG9wKToKLSAgICAvLyAgICAgcm91bmQoKDIyMCAqIDEuMCAvIDk2KSAq
IDQpIC8gNCA9IDIuMAotCi0gICAgZmxvYXQgaG9yaURQSTsKLSAgICBmbG9hdCB2ZXJ0RFBJOwot
Ci0gICAgLy8gVGhpcyBjaGVja3MgdGhlIGFjdHVhbCBtZWRpYSB0eXBlIGFwcGxpZWQgdG8gdGhl
IGRvY3VtZW50LCBhbmQgd2Uga25vdwotICAgIC8vIHRoaXMgbWV0aG9kIG9ubHkgZ290IGNhbGxl
ZCBpZiB0aGlzIG1lZGlhIHR5cGUgbWF0Y2hlcyB0aGUgb25lIGRlZmluZWQKLSAgICAvLyBpbiB0
aGUgcXVlcnkuIFRodXMsIGlmIGlmIHRoZSBkb2N1bWVudCdzIG1lZGlhIHR5cGUgaXMgInByaW50
IiwgdGhlCi0gICAgLy8gbWVkaWEgdHlwZSBvZiB0aGUgcXVlcnkgd2lsbCBlaXRoZXIgYmUgInBy
aW50IiBvciAiYWxsIi4KLSAgICBTdHJpbmcgbWVkaWFUeXBlID0gZnJhbWUtPnZpZXcoKS0+bWVk
aWFUeXBlKCk7Ci0gICAgaWYgKGVxdWFsSWdub3JpbmdDYXNlKG1lZGlhVHlwZSwgInNjcmVlbiIp
KSB7Ci0gICAgICAgIFNjcmVlbiogc2NyZWVuID0gZnJhbWUtPmRvY3VtZW50KCktPmRvbVdpbmRv
dygpLT5zY3JlZW4oKTsKLSAgICAgICAgaG9yaURQSSA9IHNjcmVlbi0+aG9yaXpvbnRhbERQSSgp
OwotICAgICAgICB2ZXJ0RFBJID0gc2NyZWVuLT52ZXJ0aWNhbERQSSgpOwotICAgIH0gZWxzZSBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWVkaWFUeXBlLCAicHJpbnQiKSkgewotICAgICAgICAvLyBU
aGUgcmVzb2x1dGlvbiBvZiBpbWFnZXMgd2hpbGUgcHJpbnRpbmcgc2hvdWxkIG5vdCBkZXBlbmQg
b24gdGhlIGRwaQotICAgICAgICAvLyBvZiB0aGUgc2NyZWVuLiBVbnRpbCB3ZSBzdXBwb3J0IHBy
b3BlciB3YXlzIG9mIHF1ZXJ5aW5nIHRoaXMgaW5mbwotICAgICAgICAvLyB3ZSB1c2UgMzAwcHgg
d2hpY2ggaXMgY29uc2lkZXJlZCBtaW5pbXVtIGZvciBjdXJyZW50IHByaW50ZXJzLgotICAgICAg
ICBob3JpRFBJID0gdmVydERQSSA9IDMwMDsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBGSVhN
RTogUG9zc2libGUgaGFuZGxlIG90aGVyIG1lZGlhIHR5cGVzIHRoYW4gJ3NjcmVlbicgYW5kICdw
cmludCcuCi0gICAgICAgIC8vIEZvciBub3csIGRvIG5vdCBtYXRjaC4KLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIH0KLQotICAgIGZsb2F0IGxlYXN0RGVuc2VEUEkgPSBzdGQ6Om1pbihob3Jp
RFBJLCB2ZXJ0RFBJKTsKLSAgICBmbG9hdCBtb3N0RGVuc2VEUEkgPSBzdGQ6Om1heChob3JpRFBJ
LCB2ZXJ0RFBJKTsKLQotICAgIC8vIEFjY29yZGluZyB0byBzcGVjLCAocmVzb2x1dGlvbikgd2ls
bCBldmFsdWF0ZSB0byB0cnVlIGlmIChyZXNvbHV0aW9uOngpCi0gICAgLy8gd2lsbCBldmFsdWF0
ZSB0byB0cnVlIGZvciBhIHZhbHVlIHggb3RoZXIgdGhhbiB6ZXJvIG9yIHplcm8gZm9sbG93ZWQg
YnkKLSAgICAvLyBhIHZhbGlkIHVuaXQgaWRlbnRpZmllciAoaS5lLiwgb3RoZXIgdGhhbiAwLCAw
ZHBpLCAwZHBjbSwgb3IgMGRwcHguKSwKLSAgICAvLyB3aGljaCBpcyBhbHdheXMgdGhlIGNhc2Uu
IEJ1dCB0aGUgc3BlYyBzcGVjaWFsIGNhc2VzICdyZXNvbHV0aW9uJyB0bwotICAgIC8vIG5ldmVy
IG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1YXJlIHBpeGVscy4KLSAgICBpZiAoIXZhbHVl
KSB7Ci0gICAgICAgIEFTU0VSVChvcCA9PSBOb1ByZWZpeCk7Ci0gICAgICAgIHJldHVybiBsZWFz
dERlbnNlRFBJID09IG1vc3REZW5zZURQSTsKLSAgICB9Ci0KICAgICBpZiAoIXZhbHVlLT5pc1By
aW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIGh0dHA6Ly9k
ZXYudzMub3JnL2Nzc3dnL2NzczMtdmFsdWVzLyNyZXNvbHV0aW9uIGRlZmluZXMgcmVzb2x1dGlv
biBhcyBhCi0gICAgLy8gZGltZW5zaW9uLCB3aGljaCBjb250YWlucyBhIG51bWJlciAoZGVjaW1h
bCBwb2ludCBhbGxvd2VkKSwgbm90IGp1c3QgYW4KLSAgICAvLyBpbnRlZ2VyLiBBbHNvLCBodHRw
Oi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXZhbHVlcy8jbnVtZXJpYy10eXBlcyBzYXlzCi0gICAg
Ly8gIkNTUyB0aGVvcmV0aWNhbGx5IHN1cHBvcnRzIGluZmluaXRlIHByZWNpc2lvbiBhbmQgaW5m
aW5pdGUgcmFuZ2VzIGZvcgotICAgIC8vIGFsbCB2YWx1ZSB0eXBlczsKLSAgICBDU1NQcmltaXRp
dmVWYWx1ZSogcmF3VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVl
KTsKLQotICAgIGlmIChyYXdWYWx1ZS0+aXNEb3RzUGVyUGl4ZWwoKSkgewotICAgICAgICAvLyBo
dHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXZhbHVlcy8jYWJzb2x1dGUtbGVuZ3RocyByZWNv
bW1lbmRzCi0gICAgICAgIC8vICJ0aGF0IHRoZSBwaXhlbCB1bml0IHJlZmVyIHRvIHRoZSB3aG9s
ZSBudW1iZXIgb2YgZGV2aWNlIHBpeGVscyB0aGF0Ci0gICAgICAgIC8vIGJlc3QgYXBwcm94aW1h
dGVzIHRoZSByZWZlcmVuY2UgcGl4ZWwiLiBXZSBjb21wYXJlIHdpdGggMyBkZWNpbWFsCi0gICAg
ICAgIC8vIHBvaW50cywgd2hpY2ggYWxpZ25zIHdpdGggY3VycmVudCBkZXZpY2UtcGl4ZWwtcmF0
aW8ncyBpbiB1c2UuCi0gICAgICAgIGZsb2F0IGxlYXN0RGVuc2VEZW5zaXR5ID0gZmxvb3JmKGxl
YXN0RGVuc2VEUEkgKiAxMDAwIC8gOTYpIC8gMTAwMDsKLSAgICAgICAgZmxvYXQgbW9zdERlbnNl
RGVuc2l0eSA9IGZsb29yZihsZWFzdERlbnNlRFBJICogMTAwMCAvIDk2KSAvIDEwMDA7Ci0gICAg
ICAgIGZsb2F0IHRlc3RlZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmlt
aXRpdmVWYWx1ZTo6Q1NTX0RQUFgpOwotICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24o
bGVhc3REZW5zZURlbnNpdHksIG1vc3REZW5zZURlbnNpdHksIHRlc3RlZERlbnNpdHksIG9wKTsK
LSAgICB9Ci0KLSAgICBpZiAocmF3VmFsdWUtPmlzRG90c1BlckluY2goKSkgewotICAgICAgICB1
bnNpZ25lZCB0ZXN0ZWREZW5zaXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19EUEkpOwotICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obGVh
c3REZW5zZURQSSwgbW9zdERlbnNlRFBJLCB0ZXN0ZWREZW5zaXR5LCBvcCk7Ci0gICAgfQorICAg
IENTU1ByaW1pdGl2ZVZhbHVlKiByZXNvbHV0aW9uID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZl
VmFsdWUqPih2YWx1ZSk7CisgICAgcmV0dXJuIGNvbXBhcmVWYWx1ZShkZXZpY2VTY2FsZUZhY3Rv
ciwgcmVzb2x1dGlvbi0+aXNOdW1iZXIoKSA/IHJlc29sdXRpb24tPmdldEZsb2F0VmFsdWUoKSA6
IHJlc29sdXRpb24tPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYKSwg
b3ApOworfQogCi0gICAgLy8gaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzMy12YWx1ZXMvI2Fi
c29sdXRlLWxlbmd0aHMgcmVjb21tZW5kcyAidGhhdAotICAgIC8vIHRoZSBwaXhlbCB1bml0IHJl
ZmVyIHRvIHRoZSB3aG9sZSBudW1iZXIgb2YgZGV2aWNlIHBpeGVscyB0aGF0IGJlc3QKLSAgICAv
LyBhcHByb3hpbWF0ZXMgdGhlIHJlZmVyZW5jZSBwaXhlbCIuCi0gICAgZmxvYXQgbGVhc3REZW5z
ZURQQ00gPSByb3VuZGYobGVhc3REZW5zZURQSSAvIDIuNTQpOyAvLyAoMi41NCBjbS9pbikKLSAg
ICBmbG9hdCBtb3N0RGVuc2VEUENNID0gcm91bmRmKG1vc3REZW5zZURQSSAvIDIuNTQpOworc3Rh
dGljIGJvb2wgZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSAqdmFs
dWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCit7
CisgICAgcmV0dXJuICghdmFsdWUgfHwgc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2
YWx1ZSktPmlzTnVtYmVyKCkpICYmIGV2YWxSZXNvbHV0aW9uKHZhbHVlLCBmcmFtZSwgb3ApOwor
fQogCi0gICAgaWYgKHJhd1ZhbHVlLT5pc0RvdHNQZXJDZW50aW1ldGVyKCkpIHsKLSAgICAgICAg
ZmxvYXQgdGVzdGVkRGVuc2l0eSA9IHJhd1ZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2
ZVZhbHVlOjpDU1NfRFBDTSk7Ci0gICAgICAgIHJldHVybiBjb21wYXJlUmVzb2x1dGlvbihsZWFz
dERlbnNlRFBDTSwgbW9zdERlbnNlRFBDTSwgdGVzdGVkRGVuc2l0eSwgb3ApOwotICAgIH0KK3N0
YXRpYyBib29sIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVu
ZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3sKKyNpZiBF
TkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKKyAgICByZXR1cm4gKCF2YWx1ZSB8fCBzdGF0
aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+aXNSZXNvbHV0aW9uKCkpICYmIGV2
YWxSZXNvbHV0aW9uKHZhbHVlLCBmcmFtZSwgb3ApOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0o
dmFsdWUpOwogICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CiAgICAgVU5VU0VEX1BBUkFNKG9wKTsK
LSNlbmRpZgotCiAgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCiB9CiAKIHN0YXRpYyBib29sIGdy
aWRNZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSos
IE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhOWYwYTI5OGZlNjEyNTAxMTI5MzhjY2Yz
NWQ5ZTZhYjYyYjI0YzRmLi5lZmI2YzBlNmM0YzI5Y2Y4NzFhZmMwMDZlMDk5NThhYThiZTFiODQ3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDQtMDUgIFJ1bmUgTGlsbGVzdmVlbiAgPHJ1
bmVAb3BlcmEuY29tPgorCisgICAgICAgIEluY29ycmVjdCBldmFsdWF0aW9uIG9mIHJlc29sdXRp
b24gbWVkaWEgcXVlcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTE0MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgTW9kaWZpZWQgdGVzdHMgdG8gY2hhbmdlIENTUyByZXNvbHV0aW9uIGluc3RlYWQg
b2YgcGh5c2ljYWwgcmVzb2x1dGlvbi4KKworICAgICAgICAqIGZhc3QvbWVkaWEvbXEtcmVzb2x1
dGlvbi5odG1sOgorCiAyMDEzLTA0LTA1ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlh
LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkIEdUSyBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sCmluZGV4IDA2MjBjYzAxN2JmYTAwZWZmMjIxMmJh
NTJlN2RhMDY0MzZkOTAwZTcuLjVjMmU2OGYzOTA3NzEyYjhhZDkxM2ZiN2Q1NjA4M2Y3ZTM4MjIx
MzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sCkBAIC00OSwx
OSArNDksMTkgQEAKICAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1dGlv
bjogMGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CiAgICAgICAgIHNob3VsZEJlKCJtYXRjaE1l
ZGlhKCcobWF4LXJlc29sdXRpb246IDBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOwogCi0gICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDE0NCwg
MTQ0KTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0
b3IoMS41LCAwLCAwKTsKICAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9u
OiAxLjVkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOwogICAgICAgICBzaG91bGRCZSgicmVzb2x1
dGlvbkZyb21TdHlsZSgpIiwgIjEuNSIpOwogCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDE5MiwgMTkyKTsKKyAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMiwgMCwgMCk7CiAgICAgICAgIHNo
b3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlvbjogMmRwcHgpJykubWF0Y2hlcyIsICJ0cnVl
Iik7CiAgICAgICAgIHNob3VsZEJlKCJyZXNvbHV0aW9uRnJvbVN0eWxlKCkiLCAiMiIpOwogCi0g
ICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlvbk92ZXJyaWRlKDk2
LCA5Nik7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFj
dG9yKDEsIDAsIDApOwogICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246
IDFkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIpOwogICAgICAgICBzaG91bGRCZSgicmVzb2x1dGlv
bkZyb21TdHlsZSgpIiwgIjEiKTsKIAotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdz
LnNldFJlc29sdXRpb25PdmVycmlkZSgyMTYsIDIxNik7CisgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIuMjUsIDAsIDApOwogICAgICAgICBzaG91
bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDIuMjVkcHB4KScpLm1hdGNoZXMiLCAidHJ1
ZSIpOwogICAgICAgICBzaG91bGRCZSgicmVzb2x1dGlvbkZyb21TdHlsZSgpIiwgIjIuMjUiKTsK
ICAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uKScpLm1hdGNoZXMiLCAi
dHJ1ZSIpOwpAQCAtNzMsMjYgKzczLDYgQEAKICAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEo
JyhtaW4tcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOwogICAgICAgICBz
aG91bGRCZSgibWF0Y2hNZWRpYSgnKG1heC1yZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIs
ICJ0cnVlIik7CiAKLSAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0
aW9uT3ZlcnJpZGUoMjE2LCAyNTQpOwotICAgICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIg
bWF0Y2guCi0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlvbiknKS5tYXRj
aGVzIiwgImZhbHNlIik7Ci0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlv
bjogMjE2ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKLSAgICAgICAgc2hvdWxkQmUoIm1hdGNo
TWVkaWEoJyhyZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOwotCi0gICAg
ICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDIxNmRwaSknKS5tYXRj
aGVzIiwgInRydWUiKTsKLSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1
dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKLSAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJyhtYXgtcmVzb2x1dGlvbjogMjE2ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsK
LSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtYXgtcmVzb2x1dGlvbjogMjU0ZHBpKScp
Lm1hdGNoZXMiLCAidHJ1ZSIpOwotCi0gICAgICAgIC8vIE5vbi1zcXVhcmUgbXVzdCBuZXZlciBt
YXRjaC4KLSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiA4NWRwY20p
JykubWF0Y2hlcyIsICJmYWxzZSIpOwotICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJl
c29sdXRpb246IDEwMGRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIpOwotCi0gICAgICAgIHNob3Vs
ZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVzIiwgInRy
dWUiKTsKLSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1dGlvbjogMTAw
ZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7Ci0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlh
KCcobWF4LXJlc29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7Ci0gICAgICAg
IHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWF4LXJlc29sdXRpb246IDEwMGRwY20pJykubWF0Y2hl
cyIsICJ0cnVlIik7Ci0KICAgICAgICAgLy8gVGVzdCBwcmludGluZy4KIAogICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldE1lZGlhVHlwZU92ZXJyaWRlKCJwcmludCIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197274</attachid>
            <date>2013-04-10 09:06:49 -0700</date>
            <delta_ts>2013-04-10 09:26:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114029-20130410180629.patch</filename>
            <type>text/plain</type>
            <size>26054</size>
            <attacher name="Rune Lillesveen">rune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjAyMzlkMmY5YTEwMGQ5
ZTM0ZWEyYzZhNWZiNGIyYjJjOWY5NjA1Mi4uNmFhODZhZGQ2YTg5YWJhMjc5ZGU3ODM1Nzc5MDMy
YTRkMzM0NzU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTA0LTEwICBSdW5l
IExpbGxlc3ZlZW4gIDxydW5lQG9wZXJhLmNvbT4KKworICAgICAgICBJbmNvcnJlY3QgZXZhbHVh
dGlvbiBvZiByZXNvbHV0aW9uIG1lZGlhIHF1ZXJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiB1c2VkIHRoZSBwaHlz
aWNhbCByZXNvbHV0aW9uIHRvIGV2YWx1YXRlIHRoZQorICAgICAgICByZXNvbHV0aW9uIG1lZGlh
IGZlYXR1cmVzLiBDaGFuZ2VkIHRvIHVzZSB0aGUgYWN0dWFsIENTUyByZXNvbHV0aW9uLAorICAg
ICAgICBhbHNvIGtub3duIGFzIHRoZSBkZXZpY2UtcGl4ZWwtcmF0aW8sIGluc3RlYWQuIFVuaWZp
ZWQgdGhlIGNvZGUgZm9yCisgICAgICAgIGV2YWx1YXRpbmcgdGhlIHJlc29sdXRpb24gYW5kIGRl
dmljZS1waXhlbC1yYXRpbyBtZWRpYSBmZWF0dXJlcy4KKworICAgICAgICAqIFdlYkNvcmUuZXhw
LmluOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OmlzUmVzb2x1dGlvbik6CisgICAgICAgICogY3NzL01lZGlh
UXVlcnlFdmFsdWF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXZhbFJlc29sdXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6ZGV2aWNlX3BpeGVsX3JhdGlvTWVkaWFGZWF0dXJlRXZhbCk6Cisg
ICAgICAgIChXZWJDb3JlOjpyZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbCk6CisgICAgICAgICog
cGFnZS9TY3JlZW4uY3BwOgorICAgICAgICAqIHBhZ2UvU2NyZWVuLmg6CisgICAgICAgICogcGFn
ZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL1NldHRp
bmdzLmg6CisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6
QmFja3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6cmVz
dG9yZVRvKToKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAgICAg
KEJhY2t1cCk6CisgICAgICAgIChJbnRlcm5hbFNldHRpbmdzKToKKyAgICAgICAgKiB0ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDEzLTA0LTA1ICBSeW9zdWtlIE5pd2EgIDxybml3
YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBDaHJvbWl1bSBjb2RlIGZyb20gV2ViQ29y
ZS9lZGl0aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGM3ZTk1Y2UzZWVjMTA4YzM4MDkzZmY0NzBjM2JmOGQxYjhj
MGJjNjIuLmQzNTdjYWQ1YTZmNWY2NzQ1NjJhMjgxNDAyNTY4YTNjOGFjNDU0Y2EgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTQgQEAKKzIwMTMtMDQtMTAgIFJ1bmUgTGlsbGVzdmVlbiAgPHJ1bmVAb3Bl
cmEuY29tPgorCisgICAgICAgIEluY29ycmVjdCBldmFsdWF0aW9uIG9mIHJlc29sdXRpb24gbWVk
aWEgcXVlcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE0MDI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgUmVtb3ZlZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUgZnJvbSBleHBvcnRzLgorCisgICAgICAg
ICogV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVm
LmluOgorCiAyMDEzLTA0LTA0ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9y
Zz4KIAogICAgICAgICBSZW1vdmUgV2Via2l0L2Nocm9taXVtCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXgg
MTA1NzdlMDIwNDFkMzk0ZGEzZTQ4YjhlNWY3MDdhMzhiNDcwOTMxZi4uZDMyNDE2NTZlMzA5YjFl
Yjc1ZTc1Njc2NzI5N2ZjNTA0NmMzMzZkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDEzLTA0LTEwICBSdW5lIExpbGxlc3ZlZW4gIDxydW5lQG9wZXJhLmNvbT4KKworICAg
ICAgICBJbmNvcnJlY3QgZXZhbHVhdGlvbiBvZiByZXNvbHV0aW9uIG1lZGlhIHF1ZXJpZXMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDAyOQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgc2V0
UmVzb2x1dGlvbk92ZXJyaWRlIGZyb20gZXhwb3J0cy4KKworICAgICAgICAqIFdlYktpdC52Y3By
b2ovV2ViS2l0RXhwb3J0cy5kZWYuaW46CisKIDIwMTMtMDQtMDQgIENocmlzdG9waGUgRHVtZXog
IDxjaC5kdW1lekBzaXNhLnNhbXN1bmcuY29tPgogCiAgICAgICAgIFtDYWlyb10gRml4IGNhbnZh
cyBkcmF3aW5nIG9mIFNWRy1iYXNlZCBwYXR0ZXJucyBhbmQgcmVtb3ZlIE5hdGl2ZUltYWdlQ2Fp
cm8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggNmIxZTZjMjMxODM5OTMyN2FhMWIxYjMzZTFmMmJk
N2JjMGVhYjFkYS4uZjc2OTEyMWE5MGQ4ZGYxZmFhMzYwZmQxZjZjNmJhZDRiZjc4ODI2NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4KQEAgLTEwNjUsNyArMTA2NSw2IEBAIF9fWk43V2ViQ29yZThTZXR0
aW5nczMzc2V0QWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVkRWIKIF9fWk43V2ViQ29yZThT
ZXR0aW5nczM3c2V0U2Nyb2xsaW5nUGVyZm9ybWFuY2VMb2dnaW5nRW5hYmxlZEViCiBfX1pON1dl
YkNvcmU4U2V0dGluZ3M0MnNldEhpZGRlblBhZ2VDU1NBbmltYXRpb25TdXNwZW5zaW9uRW5hYmxl
ZEViCiBfX1pON1dlYkNvcmU4U2V0dGluZ3M0NXNldFNob3VsZFJlc3BlY3RQcmlvcml0eUluQ1NT
QXR0cmlidXRlU2V0dGVyc0ViCi1fX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFJlc29sdXRpb25P
dmVycmlkZUVSS05TXzdJbnRTaXplRQogX19aTjdXZWJDb3JlOFNldHRpbmdzMjBzZXRNZWRpYVR5
cGVPdmVycmlkZUVSS04zV1RGNlN0cmluZ0UKIF9fWk43V2ViQ29yZThTZXR0aW5nczMwc2V0U2hv
d1RpbGVkU2Nyb2xsaW5nSW5kaWNhdG9yRWIKIF9fWk43V2ViQ29yZThibGFua1VSTEV2CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCmluZGV4IDE4ZDIzZmFlN2IwMGIxNzUzNGM3
NGZjMDcyN2JhMDU3YzAyMGY5YmUuLmRhM2EzM2IzMmNkOWMxOWMzZWExYTNmYmE0YTY4Njk4OWI0
ZmEyYTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5oCkBAIC0xODksNiAr
MTg5LDExIEBAIHB1YmxpYzoKICAgICBib29sIGlzRG90c1BlckluY2goKSBjb25zdCB7IHJldHVy
biBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0RQSTsgfQogICAgIGJvb2wgaXNEb3RzUGVyUGl4ZWwo
KSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX0RQUFg7IH0KICAgICBib29s
IGlzRG90c1BlckNlbnRpbWV0ZXIoKSBjb25zdCB7IHJldHVybiBwcmltaXRpdmVUeXBlKCkgPT0g
Q1NTX0RQQ007IH0KKyAgICBib29sIGlzUmVzb2x1dGlvbigpIGNvbnN0CisgICAgeworICAgICAg
ICB1bnNpZ25lZCBzaG9ydCB0eXBlID0gcHJpbWl0aXZlVHlwZSgpOworICAgICAgICByZXR1cm4g
dHlwZSA+PSBDU1NfRFBQWCAmJiB0eXBlIDw9IENTU19EUENNOworICAgIH0KIAogI2lmIEVOQUJM
RShDU1NfVkFSSUFCTEVTKQogICAgIGJvb2wgaXNWYXJpYWJsZU5hbWUoKSBjb25zdCB7IHJldHVy
biBwcmltaXRpdmVUeXBlKCkgPT0gQ1NTX1ZBUklBQkxFX05BTUU7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcAppbmRleCBjMmZjMGY2MTlmNzQ0ODQ0YWYzNTdk
YjY4OTQyY2I4OWRkMWRlNzcwLi4zZWM2Yjk3Y2QyNGYyMGJkMDEzYzUzMmMwM2Q3NGY4YzNiNGY2
Y2FlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCkBAIC0x
OTgsMjMgKzE5OCw2IEBAIHN0YXRpYyBib29sIGNvbXBhcmVBc3BlY3RSYXRpb1ZhbHVlKENTU1Zh
bHVlKiB2YWx1ZSwgaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBNZWRpCiAgICAgcmV0dXJuIGZhbHNl
OwogfQogCi0jaWYgRU5BQkxFKFJFU09MVVRJT05fTUVESUFfUVVFUlkpCi1zdGF0aWMgYm9vbCBj
b21wYXJlUmVzb2x1dGlvbihmbG9hdCBtaW4sIGZsb2F0IG1heCwgZmxvYXQgdmFsdWUsIE1lZGlh
RmVhdHVyZVByZWZpeCBvcCkKLXsKLSAgICBzd2l0Y2ggKG9wKSB7Ci0gICAgY2FzZSBOb1ByZWZp
eDoKLSAgICAgICAgLy8gQSAncmVzb2x1dGlvbicgKHdpdGhvdXQgYSAibWluLSIgb3IgIm1heC0i
IHByZWZpeCkgcXVlcnkKLSAgICAgICAgLy8gbmV2ZXIgbWF0Y2hlcyBhIGRldmljZSB3aXRoIG5v
bi1zcXVhcmUgcGl4ZWxzLgotICAgICAgICByZXR1cm4gdmFsdWUgPT0gbWluICYmIHZhbHVlID09
IG1heDsKLSAgICBjYXNlIE1pblByZWZpeDoKLSAgICAgICAgcmV0dXJuIG1pbiA+PSB2YWx1ZTsK
LSAgICBjYXNlIE1heFByZWZpeDoKLSAgICAgICAgcmV0dXJuIG1heCA8PSB2YWx1ZTsKLSAgICB9
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotI2VuZGlmCi0KIHN0YXRpYyBib29sIG51bWJlclZhbHVl
KENTU1ZhbHVlKiB2YWx1ZSwgZmxvYXQmIHJlc3VsdCkKIHsKICAgICBpZiAodmFsdWUtPmlzUHJp
bWl0aXZlVmFsdWUoKQpAQCAtMjg4LDcgKzI3MSw3IEBAIHN0YXRpYyBib29sIGRldmljZV9hc3Bl
Y3RfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1ZSwgUmVuZGVyU3R5bGUqLCBG
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIGRldmljZV9waXhlbF9yYXRpb01l
ZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUgKnZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcmFt
ZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQorc3RhdGljIGJvb2wgZXZhbFJlc29sdXRpb24oQ1NT
VmFsdWUqIHZhbHVlLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKIHsKICAg
ICAvLyBGSVhNRTogUG9zc2libGUgaGFuZGxlIG90aGVyIG1lZGlhIHR5cGVzIHRoYW4gJ3NjcmVl
bicgYW5kICdwcmludCcuCiAgICAgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IgPSAwOwpAQCAtMzEw
LDEwOCArMjkzLDI4IEBAIHN0YXRpYyBib29sIGRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVy
ZUV2YWwoQ1NTVmFsdWUgKnZhbHVlLCBSZW5kZXJTdHlsZSosIEZyCiAgICAgaWYgKCF2YWx1ZSkK
ICAgICAgICAgcmV0dXJuICEhZGV2aWNlU2NhbGVGYWN0b3I7CiAKLSAgICByZXR1cm4gdmFsdWUt
PmlzUHJpbWl0aXZlVmFsdWUoKSAmJiBjb21wYXJlVmFsdWUoZGV2aWNlU2NhbGVGYWN0b3IsIHN0
YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5nZXRGbG9hdFZhbHVlKCksIG9w
KTsKLX0KLQotc3RhdGljIGJvb2wgcmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUq
IHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9w
KQotewotI2lmIEVOQUJMRShSRVNPTFVUSU9OX01FRElBX1FVRVJZKQotICAgIC8vIFRoZSBEUEkg
YmVsb3cgaXMgZG90cyBwZXIgQ1NTIGluY2ggYW5kIHRodXMgbm90IGRldmljZSBpbmNoLiBUaGUK
LSAgICAvLyBmdW5jdGlvbnMgc2hvdWxkIHJlc3BlY3QgdGhpcy4KLSAgICAvLwotICAgIC8vIEZv
ciBzcXVhcmUgcGl4ZWxzLCBpdCBpcyBzaW1wbHkgdGhlIGRldmljZSBzY2FsZSBmYWN0b3IgKGRw
cHgpIHRpbWVzIDk2LAotICAgIC8vIHBlciBkZWZpbml0aW9uLgotICAgIC8vCi0gICAgLy8gVGhl
IGRldmljZSBzY2FsZSBmYWN0b3IgaXMgYSBwcmVkZWZpbmVkIHZhbHVlIHdoaWNoIGlzIGNhbGN1
bGF0ZWQgcGVyCi0gICAgLy8gZGV2aWNlIGdpdmVuIHRoZSBwcmVmZXJyZWQgZGlzdGFuY2UgaW4g
YXJtcyBsZW5ndGggKGNvbnNpZGVyZWQgb25lIGFybXMKLSAgICAvLyBsZW5ndGggZm9yIGRlc2t0
b3AgY29tcHV0ZXJzIGFuZCB1c3VhbGx5IDAuNiBhcm1zIGxlbmd0aCBmb3IgcGhvbmVzKS4KLSAg
ICAvLwotICAgIC8vIFRoZSB2YWx1ZSBjYW4gYmUgY2FsY3VsYXRlZCBhcyBmb2xsb3dzIChyb3Vu
ZGVkIHRvIHF1YXJ0ZXJzKToKLSAgICAvLyAgICAgcm91bmQoKGRldmljZURvdHNQZXJJbmNoICog
ZGlzdGFuY2VJbkFybXNMZW5ndGggLyA5NikgKiA0KSAvIDQuCi0gICAgLy8gRXhhbXBsZSAobWlk
LXJhbmdlIHJlc29sdXRpb24gcGhvbmUpOgotICAgIC8vICAgICByb3VuZCgoMjQ0ICogMC42IC8g
OTYpICogNCkgLyA0ID0gMS41Ci0gICAgLy8gRXhhbXBsZSAoaGlnaC1yYW5nZSByZXNvbHV0aW9u
IGxhcHRvcCk6Ci0gICAgLy8gICAgIHJvdW5kKCgyMjAgKiAxLjAgLyA5NikgKiA0KSAvIDQgPSAy
LjAKLQotICAgIGZsb2F0IGhvcmlEUEk7Ci0gICAgZmxvYXQgdmVydERQSTsKLQotICAgIC8vIFRo
aXMgY2hlY2tzIHRoZSBhY3R1YWwgbWVkaWEgdHlwZSBhcHBsaWVkIHRvIHRoZSBkb2N1bWVudCwg
YW5kIHdlIGtub3cKLSAgICAvLyB0aGlzIG1ldGhvZCBvbmx5IGdvdCBjYWxsZWQgaWYgdGhpcyBt
ZWRpYSB0eXBlIG1hdGNoZXMgdGhlIG9uZSBkZWZpbmVkCi0gICAgLy8gaW4gdGhlIHF1ZXJ5LiBU
aHVzLCBpZiBpZiB0aGUgZG9jdW1lbnQncyBtZWRpYSB0eXBlIGlzICJwcmludCIsIHRoZQotICAg
IC8vIG1lZGlhIHR5cGUgb2YgdGhlIHF1ZXJ5IHdpbGwgZWl0aGVyIGJlICJwcmludCIgb3IgImFs
bCIuCi0gICAgU3RyaW5nIG1lZGlhVHlwZSA9IGZyYW1lLT52aWV3KCktPm1lZGlhVHlwZSgpOwot
ICAgIGlmIChlcXVhbElnbm9yaW5nQ2FzZShtZWRpYVR5cGUsICJzY3JlZW4iKSkgewotICAgICAg
ICBTY3JlZW4qIHNjcmVlbiA9IGZyYW1lLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKS0+c2NyZWVu
KCk7Ci0gICAgICAgIGhvcmlEUEkgPSBzY3JlZW4tPmhvcml6b250YWxEUEkoKTsKLSAgICAgICAg
dmVydERQSSA9IHNjcmVlbi0+dmVydGljYWxEUEkoKTsKLSAgICB9IGVsc2UgaWYgKGVxdWFsSWdu
b3JpbmdDYXNlKG1lZGlhVHlwZSwgInByaW50IikpIHsKLSAgICAgICAgLy8gVGhlIHJlc29sdXRp
b24gb2YgaW1hZ2VzIHdoaWxlIHByaW50aW5nIHNob3VsZCBub3QgZGVwZW5kIG9uIHRoZSBkcGkK
LSAgICAgICAgLy8gb2YgdGhlIHNjcmVlbi4gVW50aWwgd2Ugc3VwcG9ydCBwcm9wZXIgd2F5cyBv
ZiBxdWVyeWluZyB0aGlzIGluZm8KLSAgICAgICAgLy8gd2UgdXNlIDMwMHB4IHdoaWNoIGlzIGNv
bnNpZGVyZWQgbWluaW11bSBmb3IgY3VycmVudCBwcmludGVycy4KLSAgICAgICAgaG9yaURQSSA9
IHZlcnREUEkgPSAzMDA7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gRklYTUU6IFBvc3NpYmxl
IGhhbmRsZSBvdGhlciBtZWRpYSB0eXBlcyB0aGFuICdzY3JlZW4nIGFuZCAncHJpbnQnLgotICAg
ICAgICAvLyBGb3Igbm93LCBkbyBub3QgbWF0Y2guCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAg
ICB9Ci0KLSAgICBmbG9hdCBsZWFzdERlbnNlRFBJID0gc3RkOjptaW4oaG9yaURQSSwgdmVydERQ
SSk7Ci0gICAgZmxvYXQgbW9zdERlbnNlRFBJID0gc3RkOjptYXgoaG9yaURQSSwgdmVydERQSSk7
Ci0KLSAgICAvLyBBY2NvcmRpbmcgdG8gc3BlYywgKHJlc29sdXRpb24pIHdpbGwgZXZhbHVhdGUg
dG8gdHJ1ZSBpZiAocmVzb2x1dGlvbjp4KQotICAgIC8vIHdpbGwgZXZhbHVhdGUgdG8gdHJ1ZSBm
b3IgYSB2YWx1ZSB4IG90aGVyIHRoYW4gemVybyBvciB6ZXJvIGZvbGxvd2VkIGJ5Ci0gICAgLy8g
YSB2YWxpZCB1bml0IGlkZW50aWZpZXIgKGkuZS4sIG90aGVyIHRoYW4gMCwgMGRwaSwgMGRwY20s
IG9yIDBkcHB4LiksCi0gICAgLy8gd2hpY2ggaXMgYWx3YXlzIHRoZSBjYXNlLiBCdXQgdGhlIHNw
ZWMgc3BlY2lhbCBjYXNlcyAncmVzb2x1dGlvbicgdG8KLSAgICAvLyBuZXZlciBtYXRjaGVzIGEg
ZGV2aWNlIHdpdGggbm9uLXNxdWFyZSBwaXhlbHMuCi0gICAgaWYgKCF2YWx1ZSkgewotICAgICAg
ICBBU1NFUlQob3AgPT0gTm9QcmVmaXgpOwotICAgICAgICByZXR1cm4gbGVhc3REZW5zZURQSSA9
PSBtb3N0RGVuc2VEUEk7Ci0gICAgfQotCiAgICAgaWYgKCF2YWx1ZS0+aXNQcmltaXRpdmVWYWx1
ZSgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyBodHRwOi8vZGV2LnczLm9yZy9j
c3N3Zy9jc3MzLXZhbHVlcy8jcmVzb2x1dGlvbiBkZWZpbmVzIHJlc29sdXRpb24gYXMgYQotICAg
IC8vIGRpbWVuc2lvbiwgd2hpY2ggY29udGFpbnMgYSBudW1iZXIgKGRlY2ltYWwgcG9pbnQgYWxs
b3dlZCksIG5vdCBqdXN0IGFuCi0gICAgLy8gaW50ZWdlci4gQWxzbywgaHR0cDovL2Rldi53My5v
cmcvY3Nzd2cvY3NzMy12YWx1ZXMvI251bWVyaWMtdHlwZXMgc2F5cwotICAgIC8vICJDU1MgdGhl
b3JldGljYWxseSBzdXBwb3J0cyBpbmZpbml0ZSBwcmVjaXNpb24gYW5kIGluZmluaXRlIHJhbmdl
cyBmb3IKLSAgICAvLyBhbGwgdmFsdWUgdHlwZXM7Ci0gICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHJh
d1ZhbHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPih2YWx1ZSk7Ci0KLSAgICBp
ZiAocmF3VmFsdWUtPmlzRG90c1BlclBpeGVsKCkpIHsKLSAgICAgICAgLy8gaHR0cDovL2Rldi53
My5vcmcvY3Nzd2cvY3NzMy12YWx1ZXMvI2Fic29sdXRlLWxlbmd0aHMgcmVjb21tZW5kcwotICAg
ICAgICAvLyAidGhhdCB0aGUgcGl4ZWwgdW5pdCByZWZlciB0byB0aGUgd2hvbGUgbnVtYmVyIG9m
IGRldmljZSBwaXhlbHMgdGhhdAotICAgICAgICAvLyBiZXN0IGFwcHJveGltYXRlcyB0aGUgcmVm
ZXJlbmNlIHBpeGVsIi4gV2UgY29tcGFyZSB3aXRoIDMgZGVjaW1hbAotICAgICAgICAvLyBwb2lu
dHMsIHdoaWNoIGFsaWducyB3aXRoIGN1cnJlbnQgZGV2aWNlLXBpeGVsLXJhdGlvJ3MgaW4gdXNl
LgotICAgICAgICBmbG9hdCBsZWFzdERlbnNlRGVuc2l0eSA9IGZsb29yZihsZWFzdERlbnNlRFBJ
ICogMTAwMCAvIDk2KSAvIDEwMDA7Ci0gICAgICAgIGZsb2F0IG1vc3REZW5zZURlbnNpdHkgPSBm
bG9vcmYobGVhc3REZW5zZURQSSAqIDEwMDAgLyA5NikgLyAxMDAwOwotICAgICAgICBmbG9hdCB0
ZXN0ZWREZW5zaXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6
OkNTU19EUFBYKTsKLSAgICAgICAgcmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKGxlYXN0RGVuc2VE
ZW5zaXR5LCBtb3N0RGVuc2VEZW5zaXR5LCB0ZXN0ZWREZW5zaXR5LCBvcCk7Ci0gICAgfQotCi0g
ICAgaWYgKHJhd1ZhbHVlLT5pc0RvdHNQZXJJbmNoKCkpIHsKLSAgICAgICAgdW5zaWduZWQgdGVz
dGVkRGVuc2l0eSA9IHJhd1ZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpD
U1NfRFBJKTsKLSAgICAgICAgcmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKGxlYXN0RGVuc2VEUEks
IG1vc3REZW5zZURQSSwgdGVzdGVkRGVuc2l0eSwgb3ApOwotICAgIH0KKyAgICBDU1NQcmltaXRp
dmVWYWx1ZSogcmVzb2x1dGlvbiA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFs
dWUpOworICAgIHJldHVybiBjb21wYXJlVmFsdWUoZGV2aWNlU2NhbGVGYWN0b3IsIHJlc29sdXRp
b24tPmlzTnVtYmVyKCkgPyByZXNvbHV0aW9uLT5nZXRGbG9hdFZhbHVlKCkgOiByZXNvbHV0aW9u
LT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCksIG9wKTsKK30KIAot
ICAgIC8vIGh0dHA6Ly9kZXYudzMub3JnL2Nzc3dnL2NzczMtdmFsdWVzLyNhYnNvbHV0ZS1sZW5n
dGhzIHJlY29tbWVuZHMgInRoYXQKLSAgICAvLyB0aGUgcGl4ZWwgdW5pdCByZWZlciB0byB0aGUg
d2hvbGUgbnVtYmVyIG9mIGRldmljZSBwaXhlbHMgdGhhdCBiZXN0Ci0gICAgLy8gYXBwcm94aW1h
dGVzIHRoZSByZWZlcmVuY2UgcGl4ZWwiLgotICAgIGZsb2F0IGxlYXN0RGVuc2VEUENNID0gcm91
bmRmKGxlYXN0RGVuc2VEUEkgLyAyLjU0KTsgLy8gKDIuNTQgY20vaW4pCi0gICAgZmxvYXQgbW9z
dERlbnNlRFBDTSA9IHJvdW5kZihtb3N0RGVuc2VEUEkgLyAyLjU0KTsKK3N0YXRpYyBib29sIGRl
dmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUgKnZhbHVlLCBSZW5kZXJT
dHlsZSosIEZyYW1lKiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQoreworICAgIHJldHVy
biAoIXZhbHVlIHx8IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpLT5pc051
bWJlcigpKSAmJiBldmFsUmVzb2x1dGlvbih2YWx1ZSwgZnJhbWUsIG9wKTsKK30KIAotICAgIGlm
IChyYXdWYWx1ZS0+aXNEb3RzUGVyQ2VudGltZXRlcigpKSB7Ci0gICAgICAgIGZsb2F0IHRlc3Rl
ZERlbnNpdHkgPSByYXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NT
X0RQQ00pOwotICAgICAgICByZXR1cm4gY29tcGFyZVJlc29sdXRpb24obGVhc3REZW5zZURQQ00s
IG1vc3REZW5zZURQQ00sIHRlc3RlZERlbnNpdHksIG9wKTsKLSAgICB9CitzdGF0aWMgYm9vbCBy
ZXNvbHV0aW9uTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwg
RnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCit7CisjaWYgRU5BQkxFKFJFU09M
VVRJT05fTUVESUFfUVVFUlkpCisgICAgcmV0dXJuICghdmFsdWUgfHwgc3RhdGljX2Nhc3Q8Q1NT
UHJpbWl0aXZlVmFsdWUqPih2YWx1ZSktPmlzUmVzb2x1dGlvbigpKSAmJiBldmFsUmVzb2x1dGlv
bih2YWx1ZSwgZnJhbWUsIG9wKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsKICAg
ICBVTlVTRURfUEFSQU0oZnJhbWUpOwogICAgIFVOVVNFRF9QQVJBTShvcCk7Ci0jZW5kaWYKLQog
ICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgogfQogCiBzdGF0aWMgYm9vbCBncmlkTWVkaWFGZWF0
dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRnJhbWUqLCBNZWRpYUZlYXR1
cmVQcmVmaXggb3ApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKaW5kZXggZTYzOWE5YzEzMDBiNmFjZGY2
ZWQ2NTA4NmI4MmEwMzEyMDZlOGExZS4uNzYxNWJhMDAxYmVhMTNiYmUwZjExMWYxODc0MmZkZWM3
NmY0ZTkzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcApAQCAtNDUsMzUgKzQ1LDYgQEAgU2NyZWVu
OjpTY3JlZW4oRnJhbWUqIGZyYW1lKQogewogfQogCi11bnNpZ25lZCBTY3JlZW46Omhvcml6b250
YWxEUEkoKSBjb25zdAotewotICAgIGlmICghbV9mcmFtZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0K
LSAgICAvLyBVc2VkIGJ5IHRoZSB0ZXN0aW5nIHN5c3RlbSwgY2FuIGJlIHNldCBmcm9tIGludGVy
bmFscy4KLSAgICBJbnRTaXplIG92ZXJyaWRlID0gbV9mcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygp
LT5yZXNvbHV0aW9uT3ZlcnJpZGUoKTsKLSAgICBpZiAoIW92ZXJyaWRlLmlzRW1wdHkoKSkKLSAg
ICAgICAgcmV0dXJuIG92ZXJyaWRlLndpZHRoKCk7Ci0KLSAgICAvLyBUaGUgRFBJIGlzIGRlZmlu
ZWQgYXMgZG90cyBwZXIgQ1NTIGluY2ggYW5kIHRodXMgbm90IGRldmljZSBpbmNoLgotICAgIHJl
dHVybiBtX2ZyYW1lLT5wYWdlKCktPmRldmljZVNjYWxlRmFjdG9yKCkgKiA5NjsKLX0KLQotdW5z
aWduZWQgU2NyZWVuOjp2ZXJ0aWNhbERQSSgpIGNvbnN0Ci17Ci0gICAgLy8gVGhlIERQSSBpcyBk
ZWZpbmVkIGFzIGRvdHMgcGVyIENTUyBpbmNoIGFuZCB0aHVzIG5vdCBkZXZpY2UgaW5jaC4KLSAg
ICBpZiAoIW1fZnJhbWUpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAgLy8gVXNlZCBieSB0aGUg
dGVzdGluZyBzeXN0ZW0sIGNhbiBiZSBzZXQgZnJvbSBpbnRlcm5hbHMuCi0gICAgSW50U2l6ZSBv
dmVycmlkZSA9IG1fZnJhbWUtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+cmVzb2x1dGlvbk92ZXJyaWRl
KCk7Ci0gICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBvdmVycmlk
ZS5oZWlnaHQoKTsKLQotICAgIC8vIFRoZSBEUEkgaXMgZGVmaW5lZCBhcyBkb3RzIHBlciBDU1Mg
aW5jaCBhbmQgdGh1cyBub3QgZGV2aWNlIGluY2guCi0gICAgcmV0dXJuIG1fZnJhbWUtPnBhZ2Uo
KS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSAqIDk2OwotfQotCiB1bnNpZ25lZCBTY3JlZW46OmhlaWdo
dCgpIGNvbnN0CiB7CiAgICAgaWYgKCFtX2ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9TY3JlZW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmgKaW5kZXggNWFi
Y2MxZDY5MjI4YmM0NmYxOGMzM2M5OTYyZDY3NzEwZTg0NzRmOS4uYzc4ODUwYzFlZjAzODFlZDE3
YTU1MTZmYjkyMDRiZTlhOWFkY2I3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9T
Y3JlZW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5oCkBAIC00Myw4ICs0Myw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBQYXNz
UmVmUHRyPFNjcmVlbj4gY3JlYXRlKEZyYW1lICpmcmFtZSkgeyByZXR1cm4gYWRvcHRSZWYobmV3
IFNjcmVlbihmcmFtZSkpOyB9CiAKLSAgICAgICAgdW5zaWduZWQgaG9yaXpvbnRhbERQSSgpIGNv
bnN0OwotICAgICAgICB1bnNpZ25lZCB2ZXJ0aWNhbERQSSgpIGNvbnN0OwogICAgICAgICB1bnNp
Z25lZCBoZWlnaHQoKSBjb25zdDsKICAgICAgICAgdW5zaWduZWQgd2lkdGgoKSBjb25zdDsKICAg
ICAgICAgdW5zaWduZWQgY29sb3JEZXB0aCgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNw
cAppbmRleCAwNTIwY2ZhZGE2ZDkxZWQyODdkZGRlYWZiMTFhOGY1YTNjMDU5OTJiLi44M2NlYWZh
ZjlhZWZhNzc5MmU3MjUyMmFhNGIwNWY3Njk3MjZjNDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LmNwcApAQCAtMzM4LDE1ICszMzgsNiBAQCB2b2lkIFNldHRpbmdzOjpzZXRUZXh0QXV0b3Npemlu
Z0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBmb250U2NhbGVGYWN0b3IpCiAKICNlbmRpZgogCi12b2lk
IFNldHRpbmdzOjpzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoY29uc3QgSW50U2l6ZSYgZGVuc2l0eVBl
ckluY2hPdmVycmlkZSkKLXsKLSAgICBpZiAobV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hPdmVy
cmlkZSA9PSBkZW5zaXR5UGVySW5jaE92ZXJyaWRlKQotICAgICAgICByZXR1cm47Ci0KLSAgICBt
X3Jlc29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlID0gZGVuc2l0eVBlckluY2hPdmVycmlk
ZTsKLSAgICBtX3BhZ2UtPnNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcygpOwotfQotCiB2
b2lkIFNldHRpbmdzOjpzZXRNZWRpYVR5cGVPdmVycmlkZShjb25zdCBTdHJpbmcmIG1lZGlhVHlw
ZU92ZXJyaWRlKQogewogICAgIGlmIChtX21lZGlhVHlwZU92ZXJyaWRlID09IG1lZGlhVHlwZU92
ZXJyaWRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCmluZGV4IDJhZGFlYWQzM2E2NzMxMDk0OTFjMWZh
YTY2ZGQ5NzkxOWE2NTA2ZDIuLjIyODZlOWM2Njc5OTdhMzk4MDQxMGE1OWYyYzFiMzIyYjBhOWNh
NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKQEAgLTEwNywxMCArMTA3LDYgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogI2VuZGlmCiAKICAgICAgICAgLy8gT25seSBzZXQgYnkgTGF5b3V0IFRlc3Rz
LgotICAgICAgICB2b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShjb25zdCBJbnRTaXplJik7Ci0g
ICAgICAgIGNvbnN0IEludFNpemUmIHJlc29sdXRpb25PdmVycmlkZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7IH0KLQotICAgICAgICAvLyBPbmx5
IHNldCBieSBMYXlvdXQgVGVzdHMuCiAgICAgICAgIHZvaWQgc2V0TWVkaWFUeXBlT3ZlcnJpZGUo
Y29uc3QgU3RyaW5nJik7CiAgICAgICAgIGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlT3ZlcnJpZGUo
KSBjb25zdCB7IHJldHVybiBtX21lZGlhVHlwZU92ZXJyaWRlOyB9CiAKQEAgLTI5NCw3ICsyOTAs
NiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEludFNpemUgbV90ZXh0QXV0b3Npemlu
Z1dpbmRvd1NpemVPdmVycmlkZTsKICAgICAgICAgYm9vbCBtX3RleHRBdXRvc2l6aW5nRW5hYmxl
ZCA6IDE7CiAjZW5kaWYKLSAgICAgICAgSW50U2l6ZSBtX3Jlc29sdXRpb25EZW5zaXR5UGVySW5j
aE92ZXJyaWRlOwogCiAgICAgICAgIFNFVFRJTkdTX01FTUJFUl9WQVJJQUJMRVMKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKaW5kZXggNmMzZDc4OGRlNmJj
MjdjZThmNDZmYjU4OWNlYzI2YTBjNmFiNzkxZi4uNWMxMWY4NGU4OTY1ODRiOThiNDYxMWQ4N2Zi
MWI1YjExOWFlYzNmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwCkBAIC04MSw3ICs4MSw2IEBAIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3Vw
KFNldHRpbmdzKiBzZXR0aW5ncykKICAgICAsIG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRv
d1NpemVPdmVycmlkZShzZXR0aW5ncy0+dGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUo
KSkKICAgICAsIG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihzZXR0aW5n
cy0+dGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoKSkKICNlbmRpZgotICAgICwgbV9vcmln
aW5hbFJlc29sdXRpb25PdmVycmlkZShzZXR0aW5ncy0+cmVzb2x1dGlvbk92ZXJyaWRlKCkpCiAg
ICAgLCBtX29yaWdpbmFsTWVkaWFUeXBlT3ZlcnJpZGUoc2V0dGluZ3MtPm1lZGlhVHlwZU92ZXJy
aWRlKCkpCiAjaWYgRU5BQkxFKERJQUxPR19FTEVNRU5UKQogICAgICwgbV9vcmlnaW5hbERpYWxv
Z0VsZW1lbnRFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OmRpYWxvZ0VsZW1lbnRFbmFi
bGVkKCkpCkBAIC0xMTksNyArMTE4LDYgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6
OnJlc3RvcmVUbyhTZXR0aW5ncyogc2V0dGluZ3MpCiAgICAgc2V0dGluZ3MtPnNldFRleHRBdXRv
c2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1Np
emVPdmVycmlkZSk7CiAgICAgc2V0dGluZ3MtPnNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFj
dG9yKG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3Rvcik7CiAjZW5kaWYKLSAg
ICBzZXR0aW5ncy0+c2V0UmVzb2x1dGlvbk92ZXJyaWRlKG1fb3JpZ2luYWxSZXNvbHV0aW9uT3Zl
cnJpZGUpOwogICAgIHNldHRpbmdzLT5zZXRNZWRpYVR5cGVPdmVycmlkZShtX29yaWdpbmFsTWVk
aWFUeXBlT3ZlcnJpZGUpOwogI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKICAgICBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzZXREaWFsb2dFbGVtZW50RW5hYmxlZChtX29yaWdpbmFsRGlhbG9n
RWxlbWVudEVuYWJsZWQpOwpAQCAtMzMwLDEzICszMjgsNiBAQCB2b2lkIEludGVybmFsU2V0dGlu
Z3M6OnNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGludCB3aWR0aCwgaW50IGhl
aWdodAogI2VuZGlmCiB9CiAKLXZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0UmVzb2x1dGlvbk92
ZXJyaWRlKGludCBkb3RzUGVyQ1NTSW5jaEhvcml6b250YWxseSwgaW50IGRvdHNQZXJDU1NJbmNo
VmVydGljYWxseSwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgSW50ZXJuYWxTZXR0aW5nc0d1
YXJkRm9yU2V0dGluZ3MoKTsKLSAgICAvLyBBbiBlbXB0eSBzaXplIHJlc2V0cyB0aGUgb3ZlcnJp
ZGUuCi0gICAgc2V0dGluZ3MoKS0+c2V0UmVzb2x1dGlvbk92ZXJyaWRlKEludFNpemUoZG90c1Bl
ckNTU0luY2hIb3Jpem9udGFsbHksIGRvdHNQZXJDU1NJbmNoVmVydGljYWxseSkpOwotfQotCiB2
b2lkIEludGVybmFsU2V0dGluZ3M6OnNldE1lZGlhVHlwZU92ZXJyaWRlKGNvbnN0IFN0cmluZyYg
bWVkaWFUeXBlLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJbnRlcm5hbFNldHRpbmdzR3Vh
cmRGb3JTZXR0aW5ncygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aAppbmRleCAxZGI4ODMzNTI4N2FjMGQ4MDFiZDExMjZmNTkwMDE0NTYzZjUzMjQxLi5mN2EwYmJk
NGRmZjI5M2JjMmU0MTk5OTE3NjY4N2UyMzYzZDUzOGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtNjUsNyArNjUsNiBAQCBwdWJsaWM6CiAgICAgICAg
IEludFNpemUgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlOwogICAg
ICAgICBmbG9hdCBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3I7CiAjZW5k
aWYKLSAgICAgICAgSW50U2l6ZSBtX29yaWdpbmFsUmVzb2x1dGlvbk92ZXJyaWRlOwogICAgICAg
ICBTdHJpbmcgbV9vcmlnaW5hbE1lZGlhVHlwZU92ZXJyaWRlOwogI2lmIEVOQUJMRShESUFMT0df
RUxFTUVOVCkKICAgICAgICAgYm9vbCBtX29yaWdpbmFsRGlhbG9nRWxlbWVudEVuYWJsZWQ7CkBA
IC0xMTIsNyArMTExLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdFbmFi
bGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0VGV4dEF1dG9z
aXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoaW50IHdpZHRoLCBpbnQgaGVpZ2h0LCBFeGNlcHRpb25D
b2RlJik7CiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3RvcihmbG9hdCBm
b250U2NhbGVGYWN0b3IsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldFJlc29sdXRpb25P
dmVycmlkZShpbnQgZG90c1BlckNTU0luY2hIb3Jpem9udGFsbHksIGludCBkb3RzUGVyQ1NTSW5j
aFZlcnRpY2FsbHksIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldE1lZGlhVHlwZU92ZXJy
aWRlKGNvbnN0IFN0cmluZyYgbWVkaWFUeXBlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBz
ZXRDU1NFeGNsdXNpb25zRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAg
ICB2b2lkIHNldENTU1ZhcmlhYmxlc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2Rl
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3Mu
aWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRleCA5
YjlkZTM4ZjIwMWI3MzM0YjQzYTY2ODg2NTlmYjU1NmYxZDlhYzk5Li5lZjU1OTk4YmIzMGU1YTAy
Y2ZkMTUzZDc2ODc2NWY3MWJjMDgxYWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTQyLDcgKzQyLDYgQEAKICAgICB2b2lkIHNldFRleHRBdXRv
c2l6aW5nRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
ICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3ZlcnJpZGUoaW4gbG9uZyB3aWR0
aCwgaW4gbG9uZyBoZWlnaHQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0VGV4
dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoaW4gZmxvYXQgZm9udFNjYWxlRmFjdG9yKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKLSAgICB2b2lkIHNldFJlc29sdXRpb25PdmVycmlkZShpbiBsb25n
IGRvdHNQZXJDU1NJbmNoSG9yaXpvbnRhbGx5LCBpbiBsb25nIGRvdHNQZXJDU1NJbmNoVmVydGlj
YWxseSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRNZWRpYVR5cGVPdmVycmlk
ZShpbiBET01TdHJpbmcgbWVkaWFUeXBlT3ZlcnJpZGUpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
ICAgIHZvaWQgc2V0Q1NTRXhjbHVzaW9uc0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlz
ZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldENTU1ZhcmlhYmxlc0VuYWJsZWQoaW4gYm9v
bGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMu
ZGVmLmluIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0
b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KaW5kZXggMzlhMzNhOGZlYzY0NWE4ZjQyYTU1YjcwZmUz
MTFhZTE2MTM2OTQ3OS4uMzFjMTI0NzFjYjllZjEyM2JjOGViZTQxMGM5YzI4NmMxZGMwZmJiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQudmN4cHJvai9XZWJLaXRFeHBvcnRHZW5l
cmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQudmN4
cHJvai9XZWJLaXRFeHBvcnRHZW5lcmF0b3IvV2ViS2l0RXhwb3J0cy5kZWYuaW4KQEAgLTI4Myw3
ICsyODMsNiBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRTdWdnZXN0ZWRWYWx1ZUBIVE1MSW5wdXRF
bGVtZW50QFdlYkNvcmVAQFFBRVhBQlZTdHJpbmdAV1RGQEBAWgogICAgICAgICA/c2V0RWRpdGlu
Z1ZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVlN0cmluZ0BXVEZAQEBaCiAg
ICAgICAgID9zZXRQc2V1ZG9ARWxlbWVudEBXZWJDb3JlQEBRQUVYQUJWQXRvbWljU3RyaW5nQFdU
RkBAQFoKLSAgICAgICAgP3NldFJlc29sdXRpb25PdmVycmlkZUBTZXR0aW5nc0BXZWJDb3JlQEBR
QUVYQUJWSW50U2l6ZUAyQEBaCiAgICAgICAgID9zZXRNZWRpYVR5cGVPdmVycmlkZUBTZXR0aW5n
c0BXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3NldHRpbmdzQERvY3Vt
ZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKICAgICAgICAgP3NldHRpbmdzQEZyYW1l
QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYktpdC52Y3Byb2ovV2ViS2l0RXhwb3J0cy5kZWYuaW4gYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJLaXQudmNwcm9qL1dlYktpdEV4cG9ydHMuZGVmLmluCmluZGV4IDM5YTMzYThmZWM2NDVh
OGY0MmE1NWI3MGZlMzExYWUxNjEzNjk0NzkuLjMxYzEyNDcxY2I5ZWYxMjNiYzhlYmU0MTBjOWMy
ODZjMWRjMGZiYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ov
V2ViS2l0RXhwb3J0cy5kZWYuaW4KKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViS2l0LnZjcHJv
ai9XZWJLaXRFeHBvcnRzLmRlZi5pbgpAQCAtMjgzLDcgKzI4Myw2IEBAIEVYUE9SVFMKICAgICAg
ICAgP3NldFN1Z2dlc3RlZFZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVlN0
cmluZ0BXVEZAQEBaCiAgICAgICAgID9zZXRFZGl0aW5nVmFsdWVASFRNTElucHV0RWxlbWVudEBX
ZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3NldFBzZXVkb0BFbGVtZW50
QFdlYkNvcmVAQFFBRVhBQlZBdG9taWNTdHJpbmdAV1RGQEBAWgotICAgICAgICA/c2V0UmVzb2x1
dGlvbk92ZXJyaWRlQFNldHRpbmdzQFdlYkNvcmVAQFFBRVhBQlZJbnRTaXplQDJAQFoKICAgICAg
ICAgP3NldE1lZGlhVHlwZU92ZXJyaWRlQFNldHRpbmdzQFdlYkNvcmVAQFFBRVhBQlZTdHJpbmdA
V1RGQEBAWgogICAgICAgICA/c2V0dGluZ3NARG9jdW1lbnRAV2ViQ29yZUBAUUJFUEFWU2V0dGlu
Z3NAMkBYWgogICAgICAgICA/c2V0dGluZ3NARnJhbWVAV2ViQ29yZUBAUUJFUEFWU2V0dGluZ3NA
MkBYWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJj
ZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5kZXggNGYwZWI4NDg4OGZmZTNlZmEyMmY0MjY4
NTczOGI1OGVhMjk5YmQyZi4uMDZiZTVmMmM0ZGMwN2M1NWNiZDA4MTU2NDgzZjQ5NjdkMmVhZmM4
OSAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3Vy
Y2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBAIC0yMTcsNyArMjE3LDYgQEAgX1pON1dlYkNv
cmU4U2V0dGluZ3MyMHNldEN1cnNpdmVGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0Ux
MVVTY3JpcHRDb2RlOwogX1pON1dlYkNvcmU4U2V0dGluZ3MyMHNldEZhbnRhc3lGb250RmFtaWx5
RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UxMVVTY3JpcHRDb2RlOwogX1pON1dlYkNvcmU4U2V0dGlu
Z3MyMHNldE1lZGlhVHlwZU92ZXJyaWRlRVJLTjNXVEY2U3RyaW5nRTsKIF9aTjdXZWJDb3JlOFNl
dHRpbmdzMjFtb2NrU2Nyb2xsYmFyc0VuYWJsZWRFdjsKLV9aTjdXZWJDb3JlOFNldHRpbmdzMjFz
ZXRSZXNvbHV0aW9uT3ZlcnJpZGVFUktOU183SW50U2l6ZUU7CiBfWk43V2ViQ29yZThTZXR0aW5n
czIxc2V0U2hvd1JlcGFpbnRDb3VudGVyRWI7CiBfWk43V2ViQ29yZThTZXR0aW5nczIxc2V0U3Rh
bmRhcmRGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmluZ0UxMVVTY3JpcHRDb2RlOwogX1pO
N1dlYkNvcmU4U2V0dGluZ3MyMnNldFNhbnNTZXJpZkZvbnRGYW1pbHlFUktOM1dURjEyQXRvbWlj
U3RyaW5nRTExVVNjcmlwdENvZGU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTlmMGEyOThmZTYxMjUwMTEyOTM4Y2NmMzVk
OWU2YWI2MmIyNGM0Zi4uZWViMjgxMDdjMWNjZjZhZmNjZTIzOTBiYTBmNGEyNDI4NWZmNTlmOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTA0LTEwICBSdW5lIExpbGxlc3ZlZW4gIDxydW5l
QG9wZXJhLmNvbT4KKworICAgICAgICBJbmNvcnJlY3QgZXZhbHVhdGlvbiBvZiByZXNvbHV0aW9u
IG1lZGlhIHF1ZXJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTExNDAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1vZGlmaWVkIHRlc3RzIHRvIGNoYW5nZSBDU1MgcmVzb2x1dGlvbiBpbnN0ZWFkIG9m
IHBoeXNpY2FsIHJlc29sdXRpb24uCisKKyAgICAgICAgKiBmYXN0L21lZGlhL21xLXJlc29sdXRp
b24uaHRtbDoKKwogMjAxMy0wNC0wNSAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhL21xLXJlc29sdXRpb24uaHRtbAppbmRleCAwNjIwY2MwMTdiZmEwMGVmZjIyMTJiYTUy
ZTdkYTA2NDM2ZDkwMGU3Li41YzJlNjhmMzkwNzcxMmI4YWQ5MTNmYjdkNTYwODNmN2UzODIyMTM3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhL21xLXJlc29sdXRpb24uaHRtbApAQCAtNDksMTkg
KzQ5LDE5IEBACiAgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246
IDBkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOwogICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRp
YSgnKG1heC1yZXNvbHV0aW9uOiAwZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKIAotICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxNDQsIDE0
NCk7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9y
KDEuNSwgMCwgMCk7CiAgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlvbjog
MS41ZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKICAgICAgICAgc2hvdWxkQmUoInJlc29sdXRp
b25Gcm9tU3R5bGUoKSIsICIxLjUiKTsKIAotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRp
bmdzLnNldFJlc29sdXRpb25PdmVycmlkZSgxOTIsIDE5Mik7CisgICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0UGFnZVNjYWxlRmFjdG9yKDIsIDAsIDApOwogICAgICAgICBzaG91
bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDJkcHB4KScpLm1hdGNoZXMiLCAidHJ1ZSIp
OwogICAgICAgICBzaG91bGRCZSgicmVzb2x1dGlvbkZyb21TdHlsZSgpIiwgIjIiKTsKIAotICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVycmlkZSg5Niwg
OTYpOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3Rv
cigxLCAwLCAwKTsKICAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiAx
ZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKICAgICAgICAgc2hvdWxkQmUoInJlc29sdXRpb25G
cm9tU3R5bGUoKSIsICIxIik7CiAKLSAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMjE2LCAyMTYpOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigyLjI1LCAwLCAwKTsKICAgICAgICAgc2hvdWxk
QmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiAyLjI1ZHBweCknKS5tYXRjaGVzIiwgInRydWUi
KTsKICAgICAgICAgc2hvdWxkQmUoInJlc29sdXRpb25Gcm9tU3R5bGUoKSIsICIyLjI1Iik7CiAg
ICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlvbiknKS5tYXRjaGVzIiwgInRy
dWUiKTsKQEAgLTczLDI2ICs3Myw2IEBACiAgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCco
bWluLXJlc29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVzIiwgInRydWUiKTsKICAgICAgICAgc2hv
dWxkQmUoIm1hdGNoTWVkaWEoJyhtYXgtcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMiLCAi
dHJ1ZSIpOwogCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVzb2x1dGlv
bk92ZXJyaWRlKDIxNiwgMjU0KTsKLSAgICAgICAgLy8gTm9uLXNxdWFyZSBtdXN0IG5ldmVyIG1h
dGNoLgotICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb24pJykubWF0Y2hl
cyIsICJmYWxzZSIpOwotICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246
IDIxNmRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7Ci0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1l
ZGlhKCcocmVzb2x1dGlvbjogMjU0ZHBpKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKLQotICAgICAg
ICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1pbi1yZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0Y2hl
cyIsICJ0cnVlIik7Ci0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRp
b246IDI1NGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7Ci0gICAgICAgIHNob3VsZEJlKCJtYXRj
aE1lZGlhKCcobWF4LXJlc29sdXRpb246IDIxNmRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7Ci0g
ICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWF4LXJlc29sdXRpb246IDI1NGRwaSknKS5t
YXRjaGVzIiwgInRydWUiKTsKLQotICAgICAgICAvLyBOb24tc3F1YXJlIG11c3QgbmV2ZXIgbWF0
Y2guCi0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlvbjogODVkcGNtKScp
Lm1hdGNoZXMiLCAiZmFsc2UiKTsKLSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNv
bHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKLQotICAgICAgICBzaG91bGRC
ZSgibWF0Y2hNZWRpYSgnKG1pbi1yZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIsICJ0cnVl
Iik7Ci0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcobWluLXJlc29sdXRpb246IDEwMGRw
Y20pJykubWF0Y2hlcyIsICJmYWxzZSIpOwotICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgn
KG1heC1yZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIsICJmYWxzZSIpOwotICAgICAgICBz
aG91bGRCZSgibWF0Y2hNZWRpYSgnKG1heC1yZXNvbHV0aW9uOiAxMDBkcGNtKScpLm1hdGNoZXMi
LCAidHJ1ZSIpOwotCiAgICAgICAgIC8vIFRlc3QgcHJpbnRpbmcuCiAKICAgICAgICAgd2luZG93
LmludGVybmFscy5zZXR0aW5ncy5zZXRNZWRpYVR5cGVPdmVycmlkZSgicHJpbnQiKTsKZGlmZiAt
LWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCAxYjJkOGY3OWUzYTE1NDIyODFhNGUx
NmIyNmFlMWQyNTQ1NWRkZjMyLi45ZDRlMmRkMzg1MjI1MmJhMDRmMDZlNGEwOThhOTI1YmY1OThk
MmU5IDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTMtMDQtMTAgIFJ1bmUgTGlsbGVzdmVlbiAgPHJ1bmVAb3BlcmEuY29tPgorCisgICAg
ICAgIEluY29ycmVjdCBldmFsdWF0aW9uIG9mIHJlc29sdXRpb24gbWVkaWEgcXVlcmllcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE0MDI5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlZCBzZXRS
ZXNvbHV0aW9uT3ZlcnJpZGUgZnJvbSBleHBvcnRzLgorCisgICAgICAgICogU291cmNlL2F1dG90
b29scy9zeW1ib2xzLmZpbHRlcjoKKwogMjAxMy0wNC0wNSAgQmVuamFtaW4gUG91bGFpbiAgPGJl
bmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRml4IEdUSysgZm9yIHJlYWwgYWZ0ZXIgcjE0
NzcxMgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>197305</attachid>
            <date>2013-04-10 09:26:28 -0700</date>
            <delta_ts>2013-04-11 01:58:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-114029-20130410182609.patch</filename>
            <type>text/plain</type>
            <size>26106</size>
            <attacher name="Rune Lillesveen">rune</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ3NzI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjAyMzlkMmY5YTEwMGQ5
ZTM0ZWEyYzZhNWZiNGIyYjJjOWY5NjA1Mi4uMDBhZTBiNTMxNTYzZjk4OTRhYzFmYmY1Mzk0OGU1
ZDgxOWRiZTBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDEzLTA0LTEwICBSdW5l
IExpbGxlc3ZlZW4gIDxydW5lQG9wZXJhLmNvbT4KKworICAgICAgICBJbmNvcnJlY3QgZXZhbHVh
dGlvbiBvZiByZXNvbHV0aW9uIG1lZGlhIHF1ZXJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBpbXBsZW1lbnRhdGlvbiB1c2VkIHRoZSBwaHlz
aWNhbCByZXNvbHV0aW9uIHRvIGV2YWx1YXRlIHRoZQorICAgICAgICByZXNvbHV0aW9uIG1lZGlh
IGZlYXR1cmVzLiBDaGFuZ2VkIHRvIHVzZSB0aGUgYWN0dWFsIENTUyByZXNvbHV0aW9uLAorICAg
ICAgICBhbHNvIGtub3duIGFzIHRoZSBkZXZpY2UtcGl4ZWwtcmF0aW8sIGluc3RlYWQuIFVuaWZp
ZWQgdGhlIGNvZGUgZm9yCisgICAgICAgIGV2YWx1YXRpbmcgdGhlIHJlc29sdXRpb24gYW5kIGRl
dmljZS1waXhlbC1yYXRpbyBtZWRpYSBmZWF0dXJlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMs
IGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBXZWJDb3JlLmV4cC5pbjoK
KyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U1ByaW1pdGl2ZVZhbHVlOjppc1Jlc29sdXRpb24pOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5
RXZhbHVhdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmV2YWxSZXNvbHV0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRldmljZV9waXhlbF9yYXRpb01lZGlhRmVhdHVyZUV2YWwpOgorICAgICAg
ICAoV2ViQ29yZTo6cmVzb2x1dGlvbk1lZGlhRmVhdHVyZUV2YWwpOgorICAgICAgICAqIHBhZ2Uv
U2NyZWVuLmNwcDoKKyAgICAgICAgKiBwYWdlL1NjcmVlbi5oOgorICAgICAgICAqIHBhZ2UvU2V0
dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5o
OgorICAgICAgICAoU2V0dGluZ3MpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1
cCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVU
byk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmg6CisgICAgICAgIChCYWNr
dXApOgorICAgICAgICAoSW50ZXJuYWxTZXR0aW5ncyk6CisgICAgICAgICogdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbDoKKwogMjAxMy0wNC0wNSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgQ2hyb21pdW0gY29kZSBmcm9tIFdlYkNvcmUvZWRp
dGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCBjN2U5NWNlM2VlYzEwOGMzODA5M2ZmNDcwYzNiZjhkMWI4YzBiYzYy
Li5kMzU3Y2FkNWE2ZjVmNjc0NTYyYTI4MTQwMjU2OGEzYzhhYzQ1NGNhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE0IEBACisyMDEzLTA0LTEwICBSdW5lIExpbGxlc3ZlZW4gIDxydW5lQG9wZXJhLmNv
bT4KKworICAgICAgICBJbmNvcnJlY3QgZXZhbHVhdGlvbiBvZiByZXNvbHV0aW9uIG1lZGlhIHF1
ZXJpZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEx
NDAyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJl
bW92ZWQgc2V0UmVzb2x1dGlvbk92ZXJyaWRlIGZyb20gZXhwb3J0cy4KKworICAgICAgICAqIFdl
YktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5pbjoK
KwogMjAxMy0wNC0wNCAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAK
ICAgICAgICAgUmVtb3ZlIFdlYmtpdC9jaHJvbWl1bQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDEwNTc3
ZTAyMDQxZDM5NGRhM2U0OGI4ZTVmNzA3YTM4YjQ3MDkzMWYuLmQzMjQxNjU2ZTMwOWIxZWI3NWU3
NTY3NjcyOTdmYzUwNDZjMzM2ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAor
MjAxMy0wNC0xMCAgUnVuZSBMaWxsZXN2ZWVuICA8cnVuZUBvcGVyYS5jb20+CisKKyAgICAgICAg
SW5jb3JyZWN0IGV2YWx1YXRpb24gb2YgcmVzb2x1dGlvbiBtZWRpYSBxdWVyaWVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTQwMjkKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVkIHNldFJlc29s
dXRpb25PdmVycmlkZSBmcm9tIGV4cG9ydHMuCisKKyAgICAgICAgKiBXZWJLaXQudmNwcm9qL1dl
YktpdEV4cG9ydHMuZGVmLmluOgorCiAyMDEzLTA0LTA0ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2gu
ZHVtZXpAc2lzYS5zYW1zdW5nLmNvbT4KIAogICAgICAgICBbQ2Fpcm9dIEZpeCBjYW52YXMgZHJh
d2luZyBvZiBTVkctYmFzZWQgcGF0dGVybnMgYW5kIHJlbW92ZSBOYXRpdmVJbWFnZUNhaXJvCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbiBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUuZXhwLmluCmluZGV4IDZiMWU2YzIzMTgzOTkzMjdhYTFiMWIzM2UxZjJiZDdiYzBl
YWIxZGEuLmY3NjkxMjFhOTBkOGRmMWZhYTM2MGZkMWY2YzZiYWQ0YmY3ODgyNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZXhwLmluCkBAIC0xMDY1LDcgKzEwNjUsNiBAQCBfX1pON1dlYkNvcmU4U2V0dGluZ3Mz
M3NldEFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxlZEViCiBfX1pON1dlYkNvcmU4U2V0dGlu
Z3MzN3NldFNjcm9sbGluZ1BlcmZvcm1hbmNlTG9nZ2luZ0VuYWJsZWRFYgogX19aTjdXZWJDb3Jl
OFNldHRpbmdzNDJzZXRIaWRkZW5QYWdlQ1NTQW5pbWF0aW9uU3VzcGVuc2lvbkVuYWJsZWRFYgog
X19aTjdXZWJDb3JlOFNldHRpbmdzNDVzZXRTaG91bGRSZXNwZWN0UHJpb3JpdHlJbkNTU0F0dHJp
YnV0ZVNldHRlcnNFYgotX19aTjdXZWJDb3JlOFNldHRpbmdzMjFzZXRSZXNvbHV0aW9uT3ZlcnJp
ZGVFUktOU183SW50U2l6ZUUKIF9fWk43V2ViQ29yZThTZXR0aW5nczIwc2V0TWVkaWFUeXBlT3Zl
cnJpZGVFUktOM1dURjZTdHJpbmdFCiBfX1pON1dlYkNvcmU4U2V0dGluZ3MzMHNldFNob3dUaWxl
ZFNjcm9sbGluZ0luZGljYXRvckViCiBfX1pON1dlYkNvcmU4YmxhbmtVUkxFdgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAppbmRleCAxOGQyM2ZhZTdiMDBiMTc1MzRjNzRmYzA3
MjdiYTA1N2MwMjBmOWJlLi5kYTNhMzNiMzJjZDljMTljM2VhMWEzZmJhNGE2ODY5ODliNGZhMmEx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuaApAQCAtMTg5LDYgKzE4OSwx
MSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0RvdHNQZXJJbmNoKCkgY29uc3QgeyByZXR1cm4gcHJp
bWl0aXZlVHlwZSgpID09IENTU19EUEk7IH0KICAgICBib29sIGlzRG90c1BlclBpeGVsKCkgY29u
c3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU19EUFBYOyB9CiAgICAgYm9vbCBpc0Rv
dHNQZXJDZW50aW1ldGVyKCkgY29uc3QgeyByZXR1cm4gcHJpbWl0aXZlVHlwZSgpID09IENTU19E
UENNOyB9CisgICAgYm9vbCBpc1Jlc29sdXRpb24oKSBjb25zdAorICAgIHsKKyAgICAgICAgdW5z
aWduZWQgc2hvcnQgdHlwZSA9IHByaW1pdGl2ZVR5cGUoKTsKKyAgICAgICAgcmV0dXJuIHR5cGUg
Pj0gQ1NTX0RQUFggJiYgdHlwZSA8PSBDU1NfRFBDTTsKKyAgICB9CiAKICNpZiBFTkFCTEUoQ1NT
X1ZBUklBQkxFUykKICAgICBib29sIGlzVmFyaWFibGVOYW1lKCkgY29uc3QgeyByZXR1cm4gcHJp
bWl0aXZlVHlwZSgpID09IENTU19WQVJJQUJMRV9OQU1FOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV2YWx1YXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV2YWx1YXRvci5jcHAKaW5kZXggYzJmYzBmNjE5Zjc0NDg0NGFmMzU3ZGI2ODk0
MmNiODlkZDFkZTc3MC4uM2VjNmI5N2NkMjRmMjBiZDAxM2M1MzJjMDNkNzRmOGMzYjRmNmNhZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFdmFsdWF0b3IuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXZhbHVhdG9yLmNwcApAQCAtMTk4LDIz
ICsxOTgsNiBAQCBzdGF0aWMgYm9vbCBjb21wYXJlQXNwZWN0UmF0aW9WYWx1ZShDU1NWYWx1ZSog
dmFsdWUsIGludCB3aWR0aCwgaW50IGhlaWdodCwgTWVkaQogICAgIHJldHVybiBmYWxzZTsKIH0K
IAotI2lmIEVOQUJMRShSRVNPTFVUSU9OX01FRElBX1FVRVJZKQotc3RhdGljIGJvb2wgY29tcGFy
ZVJlc29sdXRpb24oZmxvYXQgbWluLCBmbG9hdCBtYXgsIGZsb2F0IHZhbHVlLCBNZWRpYUZlYXR1
cmVQcmVmaXggb3ApCi17Ci0gICAgc3dpdGNoIChvcCkgewotICAgIGNhc2UgTm9QcmVmaXg6Ci0g
ICAgICAgIC8vIEEgJ3Jlc29sdXRpb24nICh3aXRob3V0IGEgIm1pbi0iIG9yICJtYXgtIiBwcmVm
aXgpIHF1ZXJ5Ci0gICAgICAgIC8vIG5ldmVyIG1hdGNoZXMgYSBkZXZpY2Ugd2l0aCBub24tc3F1
YXJlIHBpeGVscy4KLSAgICAgICAgcmV0dXJuIHZhbHVlID09IG1pbiAmJiB2YWx1ZSA9PSBtYXg7
Ci0gICAgY2FzZSBNaW5QcmVmaXg6Ci0gICAgICAgIHJldHVybiBtaW4gPj0gdmFsdWU7Ci0gICAg
Y2FzZSBNYXhQcmVmaXg6Ci0gICAgICAgIHJldHVybiBtYXggPD0gdmFsdWU7Ci0gICAgfQotICAg
IHJldHVybiBmYWxzZTsKLX0KLSNlbmRpZgotCiBzdGF0aWMgYm9vbCBudW1iZXJWYWx1ZShDU1NW
YWx1ZSogdmFsdWUsIGZsb2F0JiByZXN1bHQpCiB7CiAgICAgaWYgKHZhbHVlLT5pc1ByaW1pdGl2
ZVZhbHVlKCkKQEAgLTI4OCw3ICsyNzEsNyBAQCBzdGF0aWMgYm9vbCBkZXZpY2VfYXNwZWN0X3Jh
dGlvTWVkaWFGZWF0dXJlRXZhbChDU1NWYWx1ZSogdmFsdWUsIFJlbmRlclN0eWxlKiwgRgogICAg
IHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgYm9vbCBkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZl
YXR1cmVFdmFsKENTU1ZhbHVlICp2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1l
ZGlhRmVhdHVyZVByZWZpeCBvcCkKK3N0YXRpYyBib29sIGV2YWxSZXNvbHV0aW9uKENTU1ZhbHVl
KiB2YWx1ZSwgRnJhbWUqIGZyYW1lLCBNZWRpYUZlYXR1cmVQcmVmaXggb3ApCiB7CiAgICAgLy8g
RklYTUU6IFBvc3NpYmxlIGhhbmRsZSBvdGhlciBtZWRpYSB0eXBlcyB0aGFuICdzY3JlZW4nIGFu
ZCAncHJpbnQnLgogICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gMDsKQEAgLTMxMCwxMDgg
KzI5MywyOCBAQCBzdGF0aWMgYm9vbCBkZXZpY2VfcGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFs
KENTU1ZhbHVlICp2YWx1ZSwgUmVuZGVyU3R5bGUqLCBGcgogICAgIGlmICghdmFsdWUpCiAgICAg
ICAgIHJldHVybiAhIWRldmljZVNjYWxlRmFjdG9yOwogCi0gICAgcmV0dXJuIHZhbHVlLT5pc1By
aW1pdGl2ZVZhbHVlKCkgJiYgY29tcGFyZVZhbHVlKGRldmljZVNjYWxlRmFjdG9yLCBzdGF0aWNf
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+Z2V0RmxvYXRWYWx1ZSgpLCBvcCk7Ci19
Ci0KLXN0YXRpYyBib29sIHJlc29sdXRpb25NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlKiB2YWx1
ZSwgUmVuZGVyU3R5bGUqLCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKLXsK
LSNpZiBFTkFCTEUoUkVTT0xVVElPTl9NRURJQV9RVUVSWSkKLSAgICAvLyBUaGUgRFBJIGJlbG93
IGlzIGRvdHMgcGVyIENTUyBpbmNoIGFuZCB0aHVzIG5vdCBkZXZpY2UgaW5jaC4gVGhlCi0gICAg
Ly8gZnVuY3Rpb25zIHNob3VsZCByZXNwZWN0IHRoaXMuCi0gICAgLy8KLSAgICAvLyBGb3Igc3F1
YXJlIHBpeGVscywgaXQgaXMgc2ltcGx5IHRoZSBkZXZpY2Ugc2NhbGUgZmFjdG9yIChkcHB4KSB0
aW1lcyA5NiwKLSAgICAvLyBwZXIgZGVmaW5pdGlvbi4KLSAgICAvLwotICAgIC8vIFRoZSBkZXZp
Y2Ugc2NhbGUgZmFjdG9yIGlzIGEgcHJlZGVmaW5lZCB2YWx1ZSB3aGljaCBpcyBjYWxjdWxhdGVk
IHBlcgotICAgIC8vIGRldmljZSBnaXZlbiB0aGUgcHJlZmVycmVkIGRpc3RhbmNlIGluIGFybXMg
bGVuZ3RoIChjb25zaWRlcmVkIG9uZSBhcm1zCi0gICAgLy8gbGVuZ3RoIGZvciBkZXNrdG9wIGNv
bXB1dGVycyBhbmQgdXN1YWxseSAwLjYgYXJtcyBsZW5ndGggZm9yIHBob25lcykuCi0gICAgLy8K
LSAgICAvLyBUaGUgdmFsdWUgY2FuIGJlIGNhbGN1bGF0ZWQgYXMgZm9sbG93cyAocm91bmRlZCB0
byBxdWFydGVycyk6Ci0gICAgLy8gICAgIHJvdW5kKChkZXZpY2VEb3RzUGVySW5jaCAqIGRpc3Rh
bmNlSW5Bcm1zTGVuZ3RoIC8gOTYpICogNCkgLyA0LgotICAgIC8vIEV4YW1wbGUgKG1pZC1yYW5n
ZSByZXNvbHV0aW9uIHBob25lKToKLSAgICAvLyAgICAgcm91bmQoKDI0NCAqIDAuNiAvIDk2KSAq
IDQpIC8gNCA9IDEuNQotICAgIC8vIEV4YW1wbGUgKGhpZ2gtcmFuZ2UgcmVzb2x1dGlvbiBsYXB0
b3ApOgotICAgIC8vICAgICByb3VuZCgoMjIwICogMS4wIC8gOTYpICogNCkgLyA0ID0gMi4wCi0K
LSAgICBmbG9hdCBob3JpRFBJOwotICAgIGZsb2F0IHZlcnREUEk7Ci0KLSAgICAvLyBUaGlzIGNo
ZWNrcyB0aGUgYWN0dWFsIG1lZGlhIHR5cGUgYXBwbGllZCB0byB0aGUgZG9jdW1lbnQsIGFuZCB3
ZSBrbm93Ci0gICAgLy8gdGhpcyBtZXRob2Qgb25seSBnb3QgY2FsbGVkIGlmIHRoaXMgbWVkaWEg
dHlwZSBtYXRjaGVzIHRoZSBvbmUgZGVmaW5lZAotICAgIC8vIGluIHRoZSBxdWVyeS4gVGh1cywg
aWYgaWYgdGhlIGRvY3VtZW50J3MgbWVkaWEgdHlwZSBpcyAicHJpbnQiLCB0aGUKLSAgICAvLyBt
ZWRpYSB0eXBlIG9mIHRoZSBxdWVyeSB3aWxsIGVpdGhlciBiZSAicHJpbnQiIG9yICJhbGwiLgot
ICAgIFN0cmluZyBtZWRpYVR5cGUgPSBmcmFtZS0+dmlldygpLT5tZWRpYVR5cGUoKTsKLSAgICBp
ZiAoZXF1YWxJZ25vcmluZ0Nhc2UobWVkaWFUeXBlLCAic2NyZWVuIikpIHsKLSAgICAgICAgU2Ny
ZWVuKiBzY3JlZW4gPSBmcmFtZS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCktPnNjcmVlbigpOwot
ICAgICAgICBob3JpRFBJID0gc2NyZWVuLT5ob3Jpem9udGFsRFBJKCk7Ci0gICAgICAgIHZlcnRE
UEkgPSBzY3JlZW4tPnZlcnRpY2FsRFBJKCk7Ci0gICAgfSBlbHNlIGlmIChlcXVhbElnbm9yaW5n
Q2FzZShtZWRpYVR5cGUsICJwcmludCIpKSB7Ci0gICAgICAgIC8vIFRoZSByZXNvbHV0aW9uIG9m
IGltYWdlcyB3aGlsZSBwcmludGluZyBzaG91bGQgbm90IGRlcGVuZCBvbiB0aGUgZHBpCi0gICAg
ICAgIC8vIG9mIHRoZSBzY3JlZW4uIFVudGlsIHdlIHN1cHBvcnQgcHJvcGVyIHdheXMgb2YgcXVl
cnlpbmcgdGhpcyBpbmZvCi0gICAgICAgIC8vIHdlIHVzZSAzMDBweCB3aGljaCBpcyBjb25zaWRl
cmVkIG1pbmltdW0gZm9yIGN1cnJlbnQgcHJpbnRlcnMuCi0gICAgICAgIGhvcmlEUEkgPSB2ZXJ0
RFBJID0gMzAwOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEZJWE1FOiBQb3NzaWJsZSBoYW5k
bGUgb3RoZXIgbWVkaWEgdHlwZXMgdGhhbiAnc2NyZWVuJyBhbmQgJ3ByaW50Jy4KLSAgICAgICAg
Ly8gRm9yIG5vdywgZG8gbm90IG1hdGNoLgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQot
Ci0gICAgZmxvYXQgbGVhc3REZW5zZURQSSA9IHN0ZDo6bWluKGhvcmlEUEksIHZlcnREUEkpOwot
ICAgIGZsb2F0IG1vc3REZW5zZURQSSA9IHN0ZDo6bWF4KGhvcmlEUEksIHZlcnREUEkpOwotCi0g
ICAgLy8gQWNjb3JkaW5nIHRvIHNwZWMsIChyZXNvbHV0aW9uKSB3aWxsIGV2YWx1YXRlIHRvIHRy
dWUgaWYgKHJlc29sdXRpb246eCkKLSAgICAvLyB3aWxsIGV2YWx1YXRlIHRvIHRydWUgZm9yIGEg
dmFsdWUgeCBvdGhlciB0aGFuIHplcm8gb3IgemVybyBmb2xsb3dlZCBieQotICAgIC8vIGEgdmFs
aWQgdW5pdCBpZGVudGlmaWVyIChpLmUuLCBvdGhlciB0aGFuIDAsIDBkcGksIDBkcGNtLCBvciAw
ZHBweC4pLAotICAgIC8vIHdoaWNoIGlzIGFsd2F5cyB0aGUgY2FzZS4gQnV0IHRoZSBzcGVjIHNw
ZWNpYWwgY2FzZXMgJ3Jlc29sdXRpb24nIHRvCi0gICAgLy8gbmV2ZXIgbWF0Y2hlcyBhIGRldmlj
ZSB3aXRoIG5vbi1zcXVhcmUgcGl4ZWxzLgotICAgIGlmICghdmFsdWUpIHsKLSAgICAgICAgQVNT
RVJUKG9wID09IE5vUHJlZml4KTsKLSAgICAgICAgcmV0dXJuIGxlYXN0RGVuc2VEUEkgPT0gbW9z
dERlbnNlRFBJOwotICAgIH0KLQogICAgIGlmICghdmFsdWUtPmlzUHJpbWl0aXZlVmFsdWUoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gaHR0cDovL2Rldi53My5vcmcvY3Nzd2cv
Y3NzMy12YWx1ZXMvI3Jlc29sdXRpb24gZGVmaW5lcyByZXNvbHV0aW9uIGFzIGEKLSAgICAvLyBk
aW1lbnNpb24sIHdoaWNoIGNvbnRhaW5zIGEgbnVtYmVyIChkZWNpbWFsIHBvaW50IGFsbG93ZWQp
LCBub3QganVzdCBhbgotICAgIC8vIGludGVnZXIuIEFsc28sIGh0dHA6Ly9kZXYudzMub3JnL2Nz
c3dnL2NzczMtdmFsdWVzLyNudW1lcmljLXR5cGVzIHNheXMKLSAgICAvLyAiQ1NTIHRoZW9yZXRp
Y2FsbHkgc3VwcG9ydHMgaW5maW5pdGUgcHJlY2lzaW9uIGFuZCBpbmZpbml0ZSByYW5nZXMgZm9y
Ci0gICAgLy8gYWxsIHZhbHVlIHR5cGVzOwotICAgIENTU1ByaW1pdGl2ZVZhbHVlKiByYXdWYWx1
ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4odmFsdWUpOwotCi0gICAgaWYgKHJh
d1ZhbHVlLT5pc0RvdHNQZXJQaXhlbCgpKSB7Ci0gICAgICAgIC8vIGh0dHA6Ly9kZXYudzMub3Jn
L2Nzc3dnL2NzczMtdmFsdWVzLyNhYnNvbHV0ZS1sZW5ndGhzIHJlY29tbWVuZHMKLSAgICAgICAg
Ly8gInRoYXQgdGhlIHBpeGVsIHVuaXQgcmVmZXIgdG8gdGhlIHdob2xlIG51bWJlciBvZiBkZXZp
Y2UgcGl4ZWxzIHRoYXQKLSAgICAgICAgLy8gYmVzdCBhcHByb3hpbWF0ZXMgdGhlIHJlZmVyZW5j
ZSBwaXhlbCIuIFdlIGNvbXBhcmUgd2l0aCAzIGRlY2ltYWwKLSAgICAgICAgLy8gcG9pbnRzLCB3
aGljaCBhbGlnbnMgd2l0aCBjdXJyZW50IGRldmljZS1waXhlbC1yYXRpbydzIGluIHVzZS4KLSAg
ICAgICAgZmxvYXQgbGVhc3REZW5zZURlbnNpdHkgPSBmbG9vcmYobGVhc3REZW5zZURQSSAqIDEw
MDAgLyA5NikgLyAxMDAwOwotICAgICAgICBmbG9hdCBtb3N0RGVuc2VEZW5zaXR5ID0gZmxvb3Jm
KGxlYXN0RGVuc2VEUEkgKiAxMDAwIC8gOTYpIC8gMTAwMDsKLSAgICAgICAgZmxvYXQgdGVzdGVk
RGVuc2l0eSA9IHJhd1ZhbHVlLT5nZXRGbG9hdFZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1Nf
RFBQWCk7Ci0gICAgICAgIHJldHVybiBjb21wYXJlUmVzb2x1dGlvbihsZWFzdERlbnNlRGVuc2l0
eSwgbW9zdERlbnNlRGVuc2l0eSwgdGVzdGVkRGVuc2l0eSwgb3ApOwotICAgIH0KLQotICAgIGlm
IChyYXdWYWx1ZS0+aXNEb3RzUGVySW5jaCgpKSB7Ci0gICAgICAgIHVuc2lnbmVkIHRlc3RlZERl
bnNpdHkgPSByYXdWYWx1ZS0+Z2V0RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQ
SSk7Ci0gICAgICAgIHJldHVybiBjb21wYXJlUmVzb2x1dGlvbihsZWFzdERlbnNlRFBJLCBtb3N0
RGVuc2VEUEksIHRlc3RlZERlbnNpdHksIG9wKTsKLSAgICB9CisgICAgQ1NTUHJpbWl0aXZlVmFs
dWUqIHJlc29sdXRpb24gPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKTsK
KyAgICByZXR1cm4gY29tcGFyZVZhbHVlKGRldmljZVNjYWxlRmFjdG9yLCByZXNvbHV0aW9uLT5p
c051bWJlcigpID8gcmVzb2x1dGlvbi0+Z2V0RmxvYXRWYWx1ZSgpIDogcmVzb2x1dGlvbi0+Z2V0
RmxvYXRWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFgpLCBvcCk7Cit9CiAKLSAgICAv
LyBodHRwOi8vZGV2LnczLm9yZy9jc3N3Zy9jc3MzLXZhbHVlcy8jYWJzb2x1dGUtbGVuZ3RocyBy
ZWNvbW1lbmRzICJ0aGF0Ci0gICAgLy8gdGhlIHBpeGVsIHVuaXQgcmVmZXIgdG8gdGhlIHdob2xl
IG51bWJlciBvZiBkZXZpY2UgcGl4ZWxzIHRoYXQgYmVzdAotICAgIC8vIGFwcHJveGltYXRlcyB0
aGUgcmVmZXJlbmNlIHBpeGVsIi4KLSAgICBmbG9hdCBsZWFzdERlbnNlRFBDTSA9IHJvdW5kZihs
ZWFzdERlbnNlRFBJIC8gMi41NCk7IC8vICgyLjU0IGNtL2luKQotICAgIGZsb2F0IG1vc3REZW5z
ZURQQ00gPSByb3VuZGYobW9zdERlbnNlRFBJIC8gMi41NCk7CitzdGF0aWMgYm9vbCBkZXZpY2Vf
cGl4ZWxfcmF0aW9NZWRpYUZlYXR1cmVFdmFsKENTU1ZhbHVlICp2YWx1ZSwgUmVuZGVyU3R5bGUq
LCBGcmFtZSogZnJhbWUsIE1lZGlhRmVhdHVyZVByZWZpeCBvcCkKK3sKKyAgICByZXR1cm4gKCF2
YWx1ZSB8fCBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KHZhbHVlKS0+aXNOdW1iZXIo
KSkgJiYgZXZhbFJlc29sdXRpb24odmFsdWUsIGZyYW1lLCBvcCk7Cit9CiAKLSAgICBpZiAocmF3
VmFsdWUtPmlzRG90c1BlckNlbnRpbWV0ZXIoKSkgewotICAgICAgICBmbG9hdCB0ZXN0ZWREZW5z
aXR5ID0gcmF3VmFsdWUtPmdldEZsb2F0VmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUENN
KTsKLSAgICAgICAgcmV0dXJuIGNvbXBhcmVSZXNvbHV0aW9uKGxlYXN0RGVuc2VEUENNLCBtb3N0
RGVuc2VEUENNLCB0ZXN0ZWREZW5zaXR5LCBvcCk7Ci0gICAgfQorc3RhdGljIGJvb2wgcmVzb2x1
dGlvbk1lZGlhRmVhdHVyZUV2YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1l
KiBmcmFtZSwgTWVkaWFGZWF0dXJlUHJlZml4IG9wKQoreworI2lmIEVOQUJMRShSRVNPTFVUSU9O
X01FRElBX1FVRVJZKQorICAgIHJldHVybiAoIXZhbHVlIHx8IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4odmFsdWUpLT5pc1Jlc29sdXRpb24oKSkgJiYgZXZhbFJlc29sdXRpb24odmFs
dWUsIGZyYW1lLCBvcCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh2YWx1ZSk7CiAgICAgVU5V
U0VEX1BBUkFNKGZyYW1lKTsKICAgICBVTlVTRURfUEFSQU0ob3ApOwotI2VuZGlmCi0KICAgICBy
ZXR1cm4gZmFsc2U7CisjZW5kaWYKIH0KIAogc3RhdGljIGJvb2wgZ3JpZE1lZGlhRmVhdHVyZUV2
YWwoQ1NTVmFsdWUqIHZhbHVlLCBSZW5kZXJTdHlsZSosIEZyYW1lKiwgTWVkaWFGZWF0dXJlUHJl
Zml4IG9wKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uY3BwCmluZGV4IGU2MzlhOWMxMzAwYjZhY2RmNmVkNjUw
ODZiODJhMDMxMjA2ZThhMWUuLjc2MTViYTAwMWJlYTEzYmJlMGYxMTFmMTg3NDJmZGVjNzZmNGU5
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVuLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5jcHAKQEAgLTQ1LDM1ICs0NSw2IEBAIFNjcmVlbjo6U2Ny
ZWVuKEZyYW1lKiBmcmFtZSkKIHsKIH0KIAotdW5zaWduZWQgU2NyZWVuOjpob3Jpem9udGFsRFBJ
KCkgY29uc3QKLXsKLSAgICBpZiAoIW1fZnJhbWUpCi0gICAgICAgIHJldHVybiAwOwotCi0gICAg
Ly8gVXNlZCBieSB0aGUgdGVzdGluZyBzeXN0ZW0sIGNhbiBiZSBzZXQgZnJvbSBpbnRlcm5hbHMu
Ci0gICAgSW50U2l6ZSBvdmVycmlkZSA9IG1fZnJhbWUtPnBhZ2UoKS0+c2V0dGluZ3MoKS0+cmVz
b2x1dGlvbk92ZXJyaWRlKCk7Ci0gICAgaWYgKCFvdmVycmlkZS5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybiBvdmVycmlkZS53aWR0aCgpOwotCi0gICAgLy8gVGhlIERQSSBpcyBkZWZpbmVkIGFz
IGRvdHMgcGVyIENTUyBpbmNoIGFuZCB0aHVzIG5vdCBkZXZpY2UgaW5jaC4KLSAgICByZXR1cm4g
bV9mcmFtZS0+cGFnZSgpLT5kZXZpY2VTY2FsZUZhY3RvcigpICogOTY7Ci19Ci0KLXVuc2lnbmVk
IFNjcmVlbjo6dmVydGljYWxEUEkoKSBjb25zdAotewotICAgIC8vIFRoZSBEUEkgaXMgZGVmaW5l
ZCBhcyBkb3RzIHBlciBDU1MgaW5jaCBhbmQgdGh1cyBub3QgZGV2aWNlIGluY2guCi0gICAgaWYg
KCFtX2ZyYW1lKQotICAgICAgICByZXR1cm4gMDsKLQotICAgIC8vIFVzZWQgYnkgdGhlIHRlc3Rp
bmcgc3lzdGVtLCBjYW4gYmUgc2V0IGZyb20gaW50ZXJuYWxzLgotICAgIEludFNpemUgb3ZlcnJp
ZGUgPSBtX2ZyYW1lLT5wYWdlKCktPnNldHRpbmdzKCktPnJlc29sdXRpb25PdmVycmlkZSgpOwot
ICAgIGlmICghb3ZlcnJpZGUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gb3ZlcnJpZGUuaGVp
Z2h0KCk7Ci0KLSAgICAvLyBUaGUgRFBJIGlzIGRlZmluZWQgYXMgZG90cyBwZXIgQ1NTIGluY2gg
YW5kIHRodXMgbm90IGRldmljZSBpbmNoLgotICAgIHJldHVybiBtX2ZyYW1lLT5wYWdlKCktPmRl
dmljZVNjYWxlRmFjdG9yKCkgKiA5NjsKLX0KLQogdW5zaWduZWQgU2NyZWVuOjpoZWlnaHQoKSBj
b25zdAogewogICAgIGlmICghbV9mcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2NyZWVuLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NjcmVlbi5oCmluZGV4IDVhYmNjMWQ2
OTIyOGJjNDZmMThjMzNjOTk2MmQ2NzcxMGU4NDc0ZjkuLmM3ODg1MGMxZWYwMzgxZWQxN2E1NTE2
ZmI5MjA0YmU5YTlhZGNiNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2NyZWVu
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TY3JlZW4uaApAQCAtNDMsOCArNDMsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgcHVibGljOgogICAgICAgICBzdGF0aWMgUGFzc1JlZlB0
cjxTY3JlZW4+IGNyZWF0ZShGcmFtZSAqZnJhbWUpIHsgcmV0dXJuIGFkb3B0UmVmKG5ldyBTY3Jl
ZW4oZnJhbWUpKTsgfQogCi0gICAgICAgIHVuc2lnbmVkIGhvcml6b250YWxEUEkoKSBjb25zdDsK
LSAgICAgICAgdW5zaWduZWQgdmVydGljYWxEUEkoKSBjb25zdDsKICAgICAgICAgdW5zaWduZWQg
aGVpZ2h0KCkgY29uc3Q7CiAgICAgICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3Q7CiAgICAgICAg
IHVuc2lnbmVkIGNvbG9yRGVwdGgoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5k
ZXggMDUyMGNmYWRhNmQ5MWVkMjg3ZGRkZWFmYjExYThmNWEzYzA1OTkyYi4uODNjZWFmYWY5YWVm
YTc3OTJlNzI1MjJhYTRiMDVmNzY5NzI2YzQ0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAK
QEAgLTMzOCwxNSArMzM4LDYgQEAgdm9pZCBTZXR0aW5nczo6c2V0VGV4dEF1dG9zaXppbmdGb250
U2NhbGVGYWN0b3IoZmxvYXQgZm9udFNjYWxlRmFjdG9yKQogCiAjZW5kaWYKIAotdm9pZCBTZXR0
aW5nczo6c2V0UmVzb2x1dGlvbk92ZXJyaWRlKGNvbnN0IEludFNpemUmIGRlbnNpdHlQZXJJbmNo
T3ZlcnJpZGUpCi17Ci0gICAgaWYgKG1fcmVzb2x1dGlvbkRlbnNpdHlQZXJJbmNoT3ZlcnJpZGUg
PT0gZGVuc2l0eVBlckluY2hPdmVycmlkZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgbV9yZXNv
bHV0aW9uRGVuc2l0eVBlckluY2hPdmVycmlkZSA9IGRlbnNpdHlQZXJJbmNoT3ZlcnJpZGU7Ci0g
ICAgbV9wYWdlLT5zZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMoKTsKLX0KLQogdm9pZCBT
ZXR0aW5nczo6c2V0TWVkaWFUeXBlT3ZlcnJpZGUoY29uc3QgU3RyaW5nJiBtZWRpYVR5cGVPdmVy
cmlkZSkKIHsKICAgICBpZiAobV9tZWRpYVR5cGVPdmVycmlkZSA9PSBtZWRpYVR5cGVPdmVycmlk
ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCAyYWRhZWFkMzNhNjczMTA5NDkxYzFmYWE2NmRk
OTc5MTlhNjUwNmQyLi4yMjg2ZTljNjY3OTk3YTM5ODA0MTBhNTlmMmMxYjMyMmIwYTljYTUzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5oCkBAIC0xMDcsMTAgKzEwNyw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICNlbmRpZgogCiAgICAgICAgIC8vIE9ubHkgc2V0IGJ5IExheW91dCBUZXN0cy4KLSAg
ICAgICAgdm9pZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoY29uc3QgSW50U2l6ZSYpOwotICAgICAg
ICBjb25zdCBJbnRTaXplJiByZXNvbHV0aW9uT3ZlcnJpZGUoKSBjb25zdCB7IHJldHVybiBtX3Jl
c29sdXRpb25EZW5zaXR5UGVySW5jaE92ZXJyaWRlOyB9Ci0KLSAgICAgICAgLy8gT25seSBzZXQg
YnkgTGF5b3V0IFRlc3RzLgogICAgICAgICB2b2lkIHNldE1lZGlhVHlwZU92ZXJyaWRlKGNvbnN0
IFN0cmluZyYpOwogICAgICAgICBjb25zdCBTdHJpbmcmIG1lZGlhVHlwZU92ZXJyaWRlKCkgY29u
c3QgeyByZXR1cm4gbV9tZWRpYVR5cGVPdmVycmlkZTsgfQogCkBAIC0yOTQsNyArMjkwLDYgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBJbnRTaXplIG1fdGV4dEF1dG9zaXppbmdXaW5k
b3dTaXplT3ZlcnJpZGU7CiAgICAgICAgIGJvb2wgbV90ZXh0QXV0b3NpemluZ0VuYWJsZWQgOiAx
OwogI2VuZGlmCi0gICAgICAgIEludFNpemUgbV9yZXNvbHV0aW9uRGVuc2l0eVBlckluY2hPdmVy
cmlkZTsKIAogICAgICAgICBTRVRUSU5HU19NRU1CRVJfVkFSSUFCTEVTCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCmluZGV4IDZjM2Q3ODhkZTZiYzI3Y2U4
ZjQ2ZmI1ODljZWMyNmEwYzZhYjc5MWYuLjVjMTFmODRlODk2NTg0Yjk4YjQ2MTFkODdmYjFiNWIx
MTlhZWMzZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNw
cApAQCAtODEsNyArODEsNiBAQCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1cChTZXR0
aW5ncyogc2V0dGluZ3MpCiAgICAgLCBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdXaW5kb3dTaXpl
T3ZlcnJpZGUoc2V0dGluZ3MtPnRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKCkpCiAg
ICAgLCBtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3Ioc2V0dGluZ3MtPnRl
eHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKCkpCiAjZW5kaWYKLSAgICAsIG1fb3JpZ2luYWxS
ZXNvbHV0aW9uT3ZlcnJpZGUoc2V0dGluZ3MtPnJlc29sdXRpb25PdmVycmlkZSgpKQogICAgICwg
bV9vcmlnaW5hbE1lZGlhVHlwZU92ZXJyaWRlKHNldHRpbmdzLT5tZWRpYVR5cGVPdmVycmlkZSgp
KQogI2lmIEVOQUJMRShESUFMT0dfRUxFTUVOVCkKICAgICAsIG1fb3JpZ2luYWxEaWFsb2dFbGVt
ZW50RW5hYmxlZChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpkaWFsb2dFbGVtZW50RW5hYmxlZCgp
KQpAQCAtMTE5LDcgKzExOCw2IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0
b3JlVG8oU2V0dGluZ3MqIHNldHRpbmdzKQogICAgIHNldHRpbmdzLT5zZXRUZXh0QXV0b3Npemlu
Z1dpbmRvd1NpemVPdmVycmlkZShtX29yaWdpbmFsVGV4dEF1dG9zaXppbmdXaW5kb3dTaXplT3Zl
cnJpZGUpOwogICAgIHNldHRpbmdzLT5zZXRUZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3Rvciht
X29yaWdpbmFsVGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IpOwogI2VuZGlmCi0gICAgc2V0
dGluZ3MtPnNldFJlc29sdXRpb25PdmVycmlkZShtX29yaWdpbmFsUmVzb2x1dGlvbk92ZXJyaWRl
KTsKICAgICBzZXR0aW5ncy0+c2V0TWVkaWFUeXBlT3ZlcnJpZGUobV9vcmlnaW5hbE1lZGlhVHlw
ZU92ZXJyaWRlKTsKICNpZiBFTkFCTEUoRElBTE9HX0VMRU1FTlQpCiAgICAgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2V0RGlhbG9nRWxlbWVudEVuYWJsZWQobV9vcmlnaW5hbERpYWxvZ0VsZW1l
bnRFbmFibGVkKTsKQEAgLTMzMCwxMyArMzI4LDYgQEAgdm9pZCBJbnRlcm5hbFNldHRpbmdzOjpz
ZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShpbnQgd2lkdGgsIGludCBoZWlnaHQK
ICNlbmRpZgogfQogCi12b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFJlc29sdXRpb25PdmVycmlk
ZShpbnQgZG90c1BlckNTU0luY2hIb3Jpem9udGFsbHksIGludCBkb3RzUGVyQ1NTSW5jaFZlcnRp
Y2FsbHksIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZv
clNldHRpbmdzKCk7Ci0gICAgLy8gQW4gZW1wdHkgc2l6ZSByZXNldHMgdGhlIG92ZXJyaWRlLgot
ICAgIHNldHRpbmdzKCktPnNldFJlc29sdXRpb25PdmVycmlkZShJbnRTaXplKGRvdHNQZXJDU1NJ
bmNoSG9yaXpvbnRhbGx5LCBkb3RzUGVyQ1NTSW5jaFZlcnRpY2FsbHkpKTsKLX0KLQogdm9pZCBJ
bnRlcm5hbFNldHRpbmdzOjpzZXRNZWRpYVR5cGVPdmVycmlkZShjb25zdCBTdHJpbmcmIG1lZGlh
VHlwZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgSW50ZXJuYWxTZXR0aW5nc0d1YXJkRm9y
U2V0dGluZ3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxT
ZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKaW5k
ZXggMWRiODgzMzUyODdhYzBkODAxYmQxMTI2ZjU5MDAxNDU2M2Y1MzI0MS4uZjdhMGJiZDRkZmYy
OTNiYzJlNDE5OTkxNzY2ODdlMjM2M2Q1MzhmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmgKQEAgLTY1LDcgKzY1LDYgQEAgcHVibGljOgogICAgICAgICBJbnRT
aXplIG1fb3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZTsKICAgICAgICAg
ZmxvYXQgbV9vcmlnaW5hbFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yOwogI2VuZGlmCi0g
ICAgICAgIEludFNpemUgbV9vcmlnaW5hbFJlc29sdXRpb25PdmVycmlkZTsKICAgICAgICAgU3Ry
aW5nIG1fb3JpZ2luYWxNZWRpYVR5cGVPdmVycmlkZTsKICNpZiBFTkFCTEUoRElBTE9HX0VMRU1F
TlQpCiAgICAgICAgIGJvb2wgbV9vcmlnaW5hbERpYWxvZ0VsZW1lbnRFbmFibGVkOwpAQCAtMTEy
LDcgKzExMSw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5nRW5hYmxlZChi
b29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFRleHRBdXRvc2l6aW5n
V2luZG93U2l6ZU92ZXJyaWRlKGludCB3aWR0aCwgaW50IGhlaWdodCwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdGb250U2NhbGVGYWN0b3IoZmxvYXQgZm9udFNj
YWxlRmFjdG9yLCBFeGNlcHRpb25Db2RlJik7Ci0gICAgdm9pZCBzZXRSZXNvbHV0aW9uT3ZlcnJp
ZGUoaW50IGRvdHNQZXJDU1NJbmNoSG9yaXpvbnRhbGx5LCBpbnQgZG90c1BlckNTU0luY2hWZXJ0
aWNhbGx5LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRNZWRpYVR5cGVPdmVycmlkZShj
b25zdCBTdHJpbmcmIG1lZGlhVHlwZSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0Q1NT
RXhjbHVzaW9uc0VuYWJsZWQoYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRDU1NWYXJpYWJsZXNFbmFibGVkKGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwKaW5kZXggOWI5ZGUz
OGYyMDFiNzMzNGI0M2E2Njg4NjU5ZmI1NTZmMWQ5YWM5OS4uZWY1NTk5OGJiMzBlNWEwMmNmZDE1
M2Q3Njg3NjVmNzFiYzA4MWFkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
U2V0dGluZ3MuaWRsCkBAIC00Miw3ICs0Miw2IEBACiAgICAgdm9pZCBzZXRUZXh0QXV0b3Npemlu
Z0VuYWJsZWQoaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2
b2lkIHNldFRleHRBdXRvc2l6aW5nV2luZG93U2l6ZU92ZXJyaWRlKGluIGxvbmcgd2lkdGgsIGlu
IGxvbmcgaGVpZ2h0KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2b2lkIHNldFRleHRBdXRv
c2l6aW5nRm9udFNjYWxlRmFjdG9yKGluIGZsb2F0IGZvbnRTY2FsZUZhY3RvcikgcmFpc2VzKERP
TUV4Y2VwdGlvbik7Ci0gICAgdm9pZCBzZXRSZXNvbHV0aW9uT3ZlcnJpZGUoaW4gbG9uZyBkb3Rz
UGVyQ1NTSW5jaEhvcml6b250YWxseSwgaW4gbG9uZyBkb3RzUGVyQ1NTSW5jaFZlcnRpY2FsbHkp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0TWVkaWFUeXBlT3ZlcnJpZGUoaW4g
RE9NU3RyaW5nIG1lZGlhVHlwZU92ZXJyaWRlKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB2
b2lkIHNldENTU0V4Y2x1c2lvbnNFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRDU1NWYXJpYWJsZXNFbmFibGVkKGluIGJvb2xlYW4g
ZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC52Y3hwcm9qL1dlYktpdEV4cG9ydEdlbmVyYXRvci9XZWJLaXRFeHBvcnRzLmRlZi5p
biBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dl
YktpdEV4cG9ydHMuZGVmLmluCmluZGV4IDM5YTMzYThmZWM2NDVhOGY0MmE1NWI3MGZlMzExYWUx
NjEzNjk0NzkuLjMxYzEyNDcxY2I5ZWYxMjNiYzhlYmU0MTBjOWMyODZjMWRjMGZiYmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ovV2ViS2l0RXhwb3J0R2VuZXJhdG9y
L1dlYktpdEV4cG9ydHMuZGVmLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0LnZjeHByb2ov
V2ViS2l0RXhwb3J0R2VuZXJhdG9yL1dlYktpdEV4cG9ydHMuZGVmLmluCkBAIC0yODMsNyArMjgz
LDYgQEAgRVhQT1JUUwogICAgICAgICA/c2V0U3VnZ2VzdGVkVmFsdWVASFRNTElucHV0RWxlbWVu
dEBXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBAQFoKICAgICAgICAgP3NldEVkaXRpbmdWYWx1
ZUBIVE1MSW5wdXRFbGVtZW50QFdlYkNvcmVAQFFBRVhBQlZTdHJpbmdAV1RGQEBAWgogICAgICAg
ICA/c2V0UHNldWRvQEVsZW1lbnRAV2ViQ29yZUBAUUFFWEFCVkF0b21pY1N0cmluZ0BXVEZAQEBa
Ci0gICAgICAgID9zZXRSZXNvbHV0aW9uT3ZlcnJpZGVAU2V0dGluZ3NAV2ViQ29yZUBAUUFFWEFC
VkludFNpemVAMkBAWgogICAgICAgICA/c2V0TWVkaWFUeXBlT3ZlcnJpZGVAU2V0dGluZ3NAV2Vi
Q29yZUBAUUFFWEFCVlN0cmluZ0BXVEZAQEBaCiAgICAgICAgID9zZXR0aW5nc0BEb2N1bWVudEBX
ZWJDb3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCiAgICAgICAgID9zZXR0aW5nc0BGcmFtZUBXZWJD
b3JlQEBRQkVQQVZTZXR0aW5nc0AyQFhaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9X
ZWJLaXQudmNwcm9qL1dlYktpdEV4cG9ydHMuZGVmLmluIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
S2l0LnZjcHJvai9XZWJLaXRFeHBvcnRzLmRlZi5pbgppbmRleCAzOWEzM2E4ZmVjNjQ1YThmNDJh
NTViNzBmZTMxMWFlMTYxMzY5NDc5Li4zMWMxMjQ3MWNiOWVmMTIzYmM4ZWJlNDEwYzljMjg2YzFk
YzBmYmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJLaXQudmNwcm9qL1dlYktp
dEV4cG9ydHMuZGVmLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYktpdC52Y3Byb2ovV2Vi
S2l0RXhwb3J0cy5kZWYuaW4KQEAgLTI4Myw3ICsyODMsNiBAQCBFWFBPUlRTCiAgICAgICAgID9z
ZXRTdWdnZXN0ZWRWYWx1ZUBIVE1MSW5wdXRFbGVtZW50QFdlYkNvcmVAQFFBRVhBQlZTdHJpbmdA
V1RGQEBAWgogICAgICAgICA/c2V0RWRpdGluZ1ZhbHVlQEhUTUxJbnB1dEVsZW1lbnRAV2ViQ29y
ZUBAUUFFWEFCVlN0cmluZ0BXVEZAQEBaCiAgICAgICAgID9zZXRQc2V1ZG9ARWxlbWVudEBXZWJD
b3JlQEBRQUVYQUJWQXRvbWljU3RyaW5nQFdURkBAQFoKLSAgICAgICAgP3NldFJlc29sdXRpb25P
dmVycmlkZUBTZXR0aW5nc0BXZWJDb3JlQEBRQUVYQUJWSW50U2l6ZUAyQEBaCiAgICAgICAgID9z
ZXRNZWRpYVR5cGVPdmVycmlkZUBTZXR0aW5nc0BXZWJDb3JlQEBRQUVYQUJWU3RyaW5nQFdURkBA
QFoKICAgICAgICAgP3NldHRpbmdzQERvY3VtZW50QFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJA
WFoKICAgICAgICAgP3NldHRpbmdzQEZyYW1lQFdlYkNvcmVAQFFCRVBBVlNldHRpbmdzQDJAWFoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0
b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDRmMGViODQ4ODhmZmUzZWZhMjJmNDI2ODU3Mzhi
NThlYTI5OWJkMmYuLjA2YmU1ZjJjNGRjMDdjNTVjYmQwODE1NjQ4M2Y0OTY3ZDJlYWZjODkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1
dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtMjE3LDcgKzIxNyw2IEBAIF9aTjdXZWJDb3JlOFNl
dHRpbmdzMjBzZXRDdXJzaXZlRm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFMTFVU2Ny
aXB0Q29kZTsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMjBzZXRGYW50YXN5Rm9udEZhbWlseUVSS04z
V1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZTsKIF9aTjdXZWJDb3JlOFNldHRpbmdzMjBz
ZXRNZWRpYVR5cGVPdmVycmlkZUVSS04zV1RGNlN0cmluZ0U7CiBfWk43V2ViQ29yZThTZXR0aW5n
czIxbW9ja1Njcm9sbGJhcnNFbmFibGVkRXY7Ci1fWk43V2ViQ29yZThTZXR0aW5nczIxc2V0UmVz
b2x1dGlvbk92ZXJyaWRlRVJLTlNfN0ludFNpemVFOwogX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNl
dFNob3dSZXBhaW50Q291bnRlckViOwogX1pON1dlYkNvcmU4U2V0dGluZ3MyMXNldFN0YW5kYXJk
Rm9udEZhbWlseUVSS04zV1RGMTJBdG9taWNTdHJpbmdFMTFVU2NyaXB0Q29kZTsKIF9aTjdXZWJD
b3JlOFNldHRpbmdzMjJzZXRTYW5zU2VyaWZGb250RmFtaWx5RVJLTjNXVEYxMkF0b21pY1N0cmlu
Z0UxMVVTY3JpcHRDb2RlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGE5ZjBhMjk4ZmU2MTI1MDExMjkzOGNjZjM1ZDllNmFi
NjJiMjRjNGYuLmVlYjI4MTA3YzFjY2Y2YWZjY2UyMzkwYmEwZjRhMjQyODVmZjU5ZjkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNCBAQAorMjAxMy0wNC0xMCAgUnVuZSBMaWxsZXN2ZWVuICA8cnVuZUBvcGVy
YS5jb20+CisKKyAgICAgICAgSW5jb3JyZWN0IGV2YWx1YXRpb24gb2YgcmVzb2x1dGlvbiBtZWRp
YSBxdWVyaWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTQwMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBNb2RpZmllZCB0ZXN0cyB0byBjaGFuZ2UgQ1NTIHJlc29sdXRpb24gaW5zdGVhZCBvZiBwaHlz
aWNhbCByZXNvbHV0aW9uLgorCisgICAgICAgICogZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0
bWw6CisKIDIwMTMtMDQtMDUgIFphbiBEb2JlcnNlayAgPHpkb2JlcnNla0BpZ2FsaWEuY29tPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgR1RLIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWEvbXEtcmVzb2x1dGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YS9tcS1yZXNvbHV0aW9uLmh0bWwKaW5kZXggMDYyMGNjMDE3YmZhMDBlZmYyMjEyYmE1MmU3ZGEw
NjQzNmQ5MDBlNy4uNWMyZTY4ZjM5MDc3MTJiOGFkOTEzZmI3ZDU2MDgzZjdlMzgyMjEzNyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9tZWRpYS9tcS1yZXNvbHV0aW9uLmh0bWwKQEAgLTQ5LDE5ICs0OSwx
OSBAQAogICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1pbi1yZXNvbHV0aW9uOiAwZHBp
KScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKICAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyht
YXgtcmVzb2x1dGlvbjogMGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7CiAKLSAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMTQ0LCAxNDQpOwor
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigxLjUs
IDAsIDApOwogICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDEuNWRw
cHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CiAgICAgICAgIHNob3VsZEJlKCJyZXNvbHV0aW9uRnJv
bVN0eWxlKCkiLCAiMS41Iik7CiAKLSAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5z
ZXRSZXNvbHV0aW9uT3ZlcnJpZGUoMTkyLCAxOTIpOworICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldHRpbmdzLnNldFBhZ2VTY2FsZUZhY3RvcigyLCAwLCAwKTsKICAgICAgICAgc2hvdWxkQmUo
Im1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiAyZHBweCknKS5tYXRjaGVzIiwgInRydWUiKTsKICAg
ICAgICAgc2hvdWxkQmUoInJlc29sdXRpb25Gcm9tU3R5bGUoKSIsICIyIik7CiAKLSAgICAgICAg
d2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRSZXNvbHV0aW9uT3ZlcnJpZGUoOTYsIDk2KTsK
KyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMSwg
MCwgMCk7CiAgICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlvbjogMWRwcHgp
JykubWF0Y2hlcyIsICJ0cnVlIik7CiAgICAgICAgIHNob3VsZEJlKCJyZXNvbHV0aW9uRnJvbVN0
eWxlKCkiLCAiMSIpOwogCi0gICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0UmVz
b2x1dGlvbk92ZXJyaWRlKDIxNiwgMjE2KTsKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXR0
aW5ncy5zZXRQYWdlU2NhbGVGYWN0b3IoMi4yNSwgMCwgMCk7CiAgICAgICAgIHNob3VsZEJlKCJt
YXRjaE1lZGlhKCcocmVzb2x1dGlvbjogMi4yNWRwcHgpJykubWF0Y2hlcyIsICJ0cnVlIik7CiAg
ICAgICAgIHNob3VsZEJlKCJyZXNvbHV0aW9uRnJvbVN0eWxlKCkiLCAiMi4yNSIpOwogICAgICAg
ICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb24pJykubWF0Y2hlcyIsICJ0cnVlIik7
CkBAIC03MywyNiArNzMsNiBAQAogICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1pbi1y
ZXNvbHV0aW9uOiA4NWRwY20pJykubWF0Y2hlcyIsICJ0cnVlIik7CiAgICAgICAgIHNob3VsZEJl
KCJtYXRjaE1lZGlhKCcobWF4LXJlc29sdXRpb246IDg1ZHBjbSknKS5tYXRjaGVzIiwgInRydWUi
KTsKIAotICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFJlc29sdXRpb25PdmVy
cmlkZSgyMTYsIDI1NCk7Ci0gICAgICAgIC8vIE5vbi1zcXVhcmUgbXVzdCBuZXZlciBtYXRjaC4K
LSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uKScpLm1hdGNoZXMiLCAi
ZmFsc2UiKTsKLSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhyZXNvbHV0aW9uOiAyMTZk
cGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOwotICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgn
KHJlc29sdXRpb246IDI1NGRwaSknKS5tYXRjaGVzIiwgImZhbHNlIik7Ci0KLSAgICAgICAgc2hv
dWxkQmUoIm1hdGNoTWVkaWEoJyhtaW4tcmVzb2x1dGlvbjogMjE2ZHBpKScpLm1hdGNoZXMiLCAi
dHJ1ZSIpOwotICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1pbi1yZXNvbHV0aW9uOiAy
NTRkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOwotICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRp
YSgnKG1heC1yZXNvbHV0aW9uOiAyMTZkcGkpJykubWF0Y2hlcyIsICJmYWxzZSIpOwotICAgICAg
ICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1heC1yZXNvbHV0aW9uOiAyNTRkcGkpJykubWF0Y2hl
cyIsICJ0cnVlIik7Ci0KLSAgICAgICAgLy8gTm9uLXNxdWFyZSBtdXN0IG5ldmVyIG1hdGNoLgot
ICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKHJlc29sdXRpb246IDg1ZHBjbSknKS5tYXRj
aGVzIiwgImZhbHNlIik7Ci0gICAgICAgIHNob3VsZEJlKCJtYXRjaE1lZGlhKCcocmVzb2x1dGlv
bjogMTAwZHBjbSknKS5tYXRjaGVzIiwgImZhbHNlIik7Ci0KLSAgICAgICAgc2hvdWxkQmUoIm1h
dGNoTWVkaWEoJyhtaW4tcmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMiLCAidHJ1ZSIpOwot
ICAgICAgICBzaG91bGRCZSgibWF0Y2hNZWRpYSgnKG1pbi1yZXNvbHV0aW9uOiAxMDBkcGNtKScp
Lm1hdGNoZXMiLCAiZmFsc2UiKTsKLSAgICAgICAgc2hvdWxkQmUoIm1hdGNoTWVkaWEoJyhtYXgt
cmVzb2x1dGlvbjogODVkcGNtKScpLm1hdGNoZXMiLCAiZmFsc2UiKTsKLSAgICAgICAgc2hvdWxk
QmUoIm1hdGNoTWVkaWEoJyhtYXgtcmVzb2x1dGlvbjogMTAwZHBjbSknKS5tYXRjaGVzIiwgInRy
dWUiKTsKLQogICAgICAgICAvLyBUZXN0IHByaW50aW5nLgogCiAgICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0dGluZ3Muc2V0TWVkaWFUeXBlT3ZlcnJpZGUoInByaW50Iik7CmRpZmYgLS1naXQg
YS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMWIyZDhmNzllM2ExNTQyMjgxYTRlMTZiMjZh
ZTFkMjU0NTVkZGYzMi4uOWQ0ZTJkZDM4NTIyNTJiYTA0ZjA2ZTRhMDk4YTkyNWJmNTk4ZDJlOSAx
MDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisy
MDEzLTA0LTEwICBSdW5lIExpbGxlc3ZlZW4gIDxydW5lQG9wZXJhLmNvbT4KKworICAgICAgICBJ
bmNvcnJlY3QgZXZhbHVhdGlvbiBvZiByZXNvbHV0aW9uIG1lZGlhIHF1ZXJpZXMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExNDAyOQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZWQgc2V0UmVzb2x1
dGlvbk92ZXJyaWRlIGZyb20gZXhwb3J0cy4KKworICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMv
c3ltYm9scy5maWx0ZXI6CisKIDIwMTMtMDQtMDUgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5qYW1p
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIEZpeCBHVEsrIGZvciByZWFsIGFmdGVyIHIxNDc3MTIK
</data>

          </attachment>
      

    </bug>

</bugzilla>