<?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>85451</bug_id>
          
          <creation_ts>2012-05-02 20:21:17 -0700</creation_ts>
          <short_desc>Add from-image to css3-images image-resolution</short_desc>
          <delta_ts>2012-06-27 23:54:25 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.w3.org/TR/2012/CR-css3-images-20120417/#image-resolution </bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>85332</dependson>
          <blocked>85262</blocked>
    
    <blocked>90140</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Barr">davidbarr</reporter>
          <assigned_to name="David Barr">davidbarr</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>eric</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mikelawther</cc>
    
    <cc>noel.gordon</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>614959</commentid>
    <comment_count>0</comment_count>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-05-02 20:21:17 -0700</bug_when>
    <thetext>The css3-images module is at candidate recommendation.
http://www.w3.org/TR/2012/CR-css3-images-20120417/#image-resolution

I propose to introduce image-resolution, initially behind a runtime feature flag.

Advertised on webkit-dev:
http://thread.gmane.org/gmane.os.opendarwin.webkit.devel/20505

As a fourth step, add support for the from-image value.
However, defer extracting resolution data from images to another bug.
For now, behave as though all images lack resolution data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>614966</commentid>
    <comment_count>1</comment_count>
      <attachid>139944</attachid>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-05-02 21:02:40 -0700</bug_when>
    <thetext>Created attachment 139944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>632456</commentid>
    <comment_count>2</comment_count>
      <attachid>143744</attachid>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-05-23 23:44:57 -0700</bug_when>
    <thetext>Created attachment 143744
Patch

Updated ref-test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>637853</commentid>
    <comment_count>3</comment_count>
      <attachid>144953</attachid>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-05-30 17:28:12 -0700</bug_when>
    <thetext>Created attachment 144953
Patch

Updated patch to use compile time flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647690</commentid>
    <comment_count>4</comment_count>
      <attachid>147230</attachid>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-06-12 22:23:34 -0700</bug_when>
    <thetext>Created attachment 147230
Patch

Rebased patch against r119984: &lt;http://trac.webkit.org/changeset/119984&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648648</commentid>
    <comment_count>5</comment_count>
      <attachid>147457</attachid>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-06-13 18:10:48 -0700</bug_when>
    <thetext>Created attachment 147457
Patch

Updated ChangeLog and rebased against pending patch: https://bugs.webkit.org/attachment.cgi?id=147397</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649272</commentid>
    <comment_count>6</comment_count>
      <attachid>147457</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-06-14 10:17:20 -0700</bug_when>
    <thetext>Comment on attachment 147457
Patch

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

I realize this is not for review yet, but trying to provide some feedback since you&apos;re in a different time zone.

&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:457
&gt; +enum EImageResolution { ImageResolutionInitial = 0, ImageResolutionFromImage };

Initial doesn&apos;t really say what the value is.  Maybe something like ImageResolutionNoFlags.  Is Snap going to be in the same enum?  I would also drop the E from the enum name (the E is from older code).

&gt; LayoutTests/fast/css/image-resolution/image-resolution-expected.txt:85
&gt; +FAIL img.offsetWidth should be 21. Was 16.
&gt; +FAIL img.offsetHeight should be 21. Was 16.

Are these expected to fail?

&gt; LayoutTests/fast/css/image-resolution/image-resolution.html:60
&gt; +    var tests = [];
&gt; +    tests.push.apply(tests, resolutions);

Nit: Arv tells me to deep copy an array, you can use slice.  E.g., var tests = resolutions.slice();

&gt; LayoutTests/fast/css/image-resolution/image-resolution.html:62
&gt; +        tests.push.apply(tests, permute2(resolution + &apos; from-image&apos;));

Nit: It seems like it would be simpler to just enumerate resolution + &apos; from-image&apos; and &apos;from-image &apos; + resolution.  I guess in the empty string case it&apos;s a bit redundant, but that&apos;s not a big deal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649812</commentid>
    <comment_count>7</comment_count>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-06-14 20:40:10 -0700</bug_when>
    <thetext>&gt; (From update of attachment 147457 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147457&amp;action=review
&gt; 
&gt; I realize this is not for review yet, but trying to provide some feedback since you&apos;re in a different time zone.

Thanks for this.

&gt; &gt; Source/WebCore/rendering/style/RenderStyleConstants.h:457
&gt; &gt; +enum EImageResolution { ImageResolutionInitial = 0, ImageResolutionFromImage };
&gt; 
&gt; Initial doesn&apos;t really say what the value is.  Maybe something like ImageResolutionNoFlags.  Is Snap going to be in the same enum?  I would also drop the E from the enum name (the E is from older code).

Will apply suggested changes. Yes, Snap will eventually be in the same enum.

&gt; &gt; LayoutTests/fast/css/image-resolution/image-resolution-expected.txt:85
&gt; &gt; +FAIL img.offsetWidth should be 21. Was 16.
&gt; &gt; +FAIL img.offsetHeight should be 21. Was 16.
&gt; 
&gt; Are these expected to fail?

I&apos;ll amend the test to expect that plumbing hasn&apos;t been completed.

&gt; &gt; LayoutTests/fast/css/image-resolution/image-resolution.html:60
&gt; &gt; +    var tests = [];
&gt; &gt; +    tests.push.apply(tests, resolutions);
&gt; 
&gt; Nit: Arv tells me to deep copy an array, you can use slice.  E.g., var tests = resolutions.slice();

Thanks, will do.

&gt; &gt; LayoutTests/fast/css/image-resolution/image-resolution.html:62
&gt; &gt; +        tests.push.apply(tests, permute2(resolution + &apos; from-image&apos;));
&gt; 
&gt; Nit: It seems like it would be simpler to just enumerate resolution + &apos; from-image&apos; and &apos;from-image &apos; + resolution.  I guess in the empty string case it&apos;s a bit redundant, but that&apos;s not a big deal.

I plan to follow and extend this pattern when I add snap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>649855</commentid>
    <comment_count>8</comment_count>
      <attachid>147725</attachid>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-06-14 21:59:42 -0700</bug_when>
    <thetext>Created attachment 147725
Patch

Addressed Tony&apos;s comments and clarified test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650335</commentid>
    <comment_count>9</comment_count>
      <attachid>147725</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-06-15 10:55:57 -0700</bug_when>
    <thetext>Comment on attachment 147725
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyleConstants.h:457
&gt; +enum ImageResolution { ImageResolutionNoFlags = 0, ImageResolutionFromImage };

I think it would be more clear to have 2 enums. The memory usage is the same and it will make the values more clear.  E.g., 
enum ImageResolution { ImageResolutionSpecified, ImageResolutionFromImage }
enum ImageResolutionSnap { ImageResolutionNoSnap, ImageResolutionSnapPixels }

&gt; LayoutTests/fast/css/image-resolution/image-resolution.html:70
&gt; -var imgResolutionDppx = 72 / 96;
&gt; -var dimensions = imgWidthPx + &apos;x&apos; + imgHeightPx + &apos;@&apos; + imgResolutionDppx + &apos;dppx&apos;;
&gt; +var imgResolutionDppx = 0; /* Embedded image resolution data not plumbed yet. */
&gt; +var dimensions = imgWidthPx + &apos;x&apos; + imgHeightPx;

Sorry, I just didn&apos;t understand why the tests were failing. It&apos;s OK to check in the real test with FAIL in the results as long as it&apos;s documented somewhere with a FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651080</commentid>
    <comment_count>10</comment_count>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-06-17 18:13:44 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 147725 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=147725&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/RenderStyleConstants.h:457
&gt; &gt; +enum ImageResolution { ImageResolutionNoFlags = 0, ImageResolutionFromImage };
&gt; 
&gt; I think it would be more clear to have 2 enums. The memory usage is the same and it will make the values more clear.  E.g., 
&gt; enum ImageResolution { ImageResolutionSpecified, ImageResolutionFromImage }
&gt; enum ImageResolutionSnap { ImageResolutionNoSnap, ImageResolutionSnapPixels }

Ok, I&apos;ve chosen ImageResolutionSource { ImageResolutionSpecified, ImageResolutionFromImage } for this patch.

&gt; &gt; LayoutTests/fast/css/image-resolution/image-resolution.html:70
&gt; &gt; -var imgResolutionDppx = 72 / 96;
&gt; &gt; -var dimensions = imgWidthPx + &apos;x&apos; + imgHeightPx + &apos;@&apos; + imgResolutionDppx + &apos;dppx&apos;;
&gt; &gt; +var imgResolutionDppx = 0; /* Embedded image resolution data not plumbed yet. */
&gt; &gt; +var dimensions = imgWidthPx + &apos;x&apos; + imgHeightPx;
&gt; 
&gt; Sorry, I just didn&apos;t understand why the tests were failing. It&apos;s OK to check in the real test with FAIL in the results as long as it&apos;s documented somewhere with a FIXME.

Right, I decided it was better to adapt those failing tests to instead positively test the fallback behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651081</commentid>
    <comment_count>11</comment_count>
      <attachid>148032</attachid>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-06-17 18:16:47 -0700</bug_when>
    <thetext>Created attachment 148032
Patch

Renamed enum and attribute that holds the &apos;from-image&apos; bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651145</commentid>
    <comment_count>12</comment_count>
      <attachid>148045</attachid>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-06-17 21:18:16 -0700</bug_when>
    <thetext>Created attachment 148045
Patch

Updated WebCore::RenderImage::styleDidChange and ChangeLog. Previous revisions of the patch omitted some dynamic layout logic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651452</commentid>
    <comment_count>13</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-06-18 09:50:59 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Created an attachment (id=148045) [details]
&gt; Patch
&gt; 
&gt; Updated WebCore::RenderImage::styleDidChange and ChangeLog. Previous revisions of the patch omitted some dynamic layout logic.

Does the current test cover these dynamic layout cases? If not, a follow up patch adding tests for it would be great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651809</commentid>
    <comment_count>14</comment_count>
      <attachid>148045</attachid>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-06-18 15:31:35 -0700</bug_when>
    <thetext>Comment on attachment 148045
Patch

The current test clears style before each rule. The dynamic application can be tested by removing the clear step and changing the order. Will follow up with more tests once this lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651864</commentid>
    <comment_count>15</comment_count>
      <attachid>148045</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-18 16:30:48 -0700</bug_when>
    <thetext>Comment on attachment 148045
Patch

Clearing flags on attachment: 148045

Committed r120641: &lt;http://trac.webkit.org/changeset/120641&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651866</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-18 16:31:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659232</commentid>
    <comment_count>17</comment_count>
    <who name="noel gordon">noel.gordon</who>
    <bug_when>2012-06-27 23:05:20 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; However, defer extracting resolution data from images to another bug.

Do we have a bug for this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>659269</commentid>
    <comment_count>18</comment_count>
    <who name="David Barr">davidbarr</who>
    <bug_when>2012-06-27 23:54:25 -0700</bug_when>
    <thetext>&gt; &gt; However, defer extracting resolution data from images to another bug.
&gt; 
&gt; Do we have a bug for this?

Created bug 90140 - Plumb embedded image-resolution data for from-image.
https://bugs.webkit.org/show_bug.cgi?id=90140</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>139944</attachid>
            <date>2012-05-02 21:02:40 -0700</date>
            <delta_ts>2012-05-23 23:44:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85451-20120503140237.patch</filename>
            <type>text/plain</type>
            <size>10827</size>
            <attacher name="David Barr">davidbarr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjRiMjZkYWExZDdiZDA0
ZmI0MDJjODE1MGQzYmQzMmEyYTExM2JmMy4uMzU0NmEzNThiMjViYTI0OTU0YzMyYzg0NTdlYTdj
YmRkYzQyYzljZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA1LTAyICBEYXZp
ZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZnJvbS1pbWFn
ZSB0byBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgcGVuZGluZyBkcHB4IHRlc3Rz
IGFzIGJhc2lzLgorCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQYXJzZXI6OnBhcnNlVmFsdWUpOgorICAgICAgICAqIGNzcy9DU1NWYWx1ZUtleXdv
cmRzLmluOgorICAgICAgICAqIGNzcy9TdHlsZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbjo6YXBwbHlJbmhlcml0VmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbjo6YXBwbHlJbml0aWFs
VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbjo6
YXBwbHlWYWx1ZSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxlOjpkaWZmKToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRh
OjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUlu
aGVyaXRlZERhdGE6Om9wZXJhdG9yPT0pOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHls
ZVJhcmVJbmhlcml0ZWREYXRhLmg6CisgICAgICAgIChTdHlsZVJhcmVJbmhlcml0ZWREYXRhKToK
KwogMjAxMi0wNS0wMSAgRGF2aWQgQmFyciAgPGRhdmlkYmFyckBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgQWRkIGNzczMtaW1hZ2VzIGltYWdlLXJlc29sdXRpb24gKGRwcHggb25seSkgYmVoaW5k
IFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggYWQ1
NzlmMzVlNzI5YzI5Zjc3NDVlMTM2NWVkZTRmYWNlNjUxMzM4MS4uNjYwZGUxMDk2MWEzYjVkMWYz
ZGFlYWNkODc2NzU1MzljYjU0ODI4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTI0
NjAsNyArMjQ2MCw5IEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZVZhbHVlKENTU1Byb3BlcnR5SUQg
cHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAgICAgIFJlZlB0cjxDU1NWYWx1ZUxpc3Q+
IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CiAgICAgICAgICAg
ICBib29sIGlzVmFsaWQgPSB0cnVlOwogICAgICAgICAgICAgd2hpbGUgKGlzVmFsaWQgJiYgdmFs
dWUpIHsKLSAgICAgICAgICAgICAgICBpZiAodmFsaWRVbml0KHZhbHVlLCBGUmVzb2x1dGlvbiB8
IEZOb25OZWcpKQorICAgICAgICAgICAgICAgIGlmICh2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVGcm9t
SW1hZ2UpCisgICAgICAgICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5j
cmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUtPmlkKSk7CisgICAgICAgICAgICAgICAgZWxzZSBp
ZiAodmFsaWRVbml0KHZhbHVlLCBGUmVzb2x1dGlvbiB8IEZOb25OZWcpKQogICAgICAgICAgICAg
ICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKSk7
CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBpc1ZhbGlkID0gZmFs
c2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbiBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCmluZGV4IDY0ODI4MTI0M2Rm
YWUwZWIwZDMxYTBmNjJmOGFkMmQxOGUwNjgzYWMuLjJjNTRjMDc0Y2M2NDRlM2Q3YjlhNGQwNThi
YTc2MDI5NjNhZmE2ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtl
eXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCkBA
IC05MTMsMyArOTEzLDYgQEAgZmlsdGVyLWJveAogZGV0YWNoZWQKICNlbmRpZiAvLyBDU1NfU0hB
REVSUwogI2VuZGlmIC8vIENTU19GSUxURVJTCisKKy8vIGltYWdlLXJlc29sdXRpb24KK2Zyb20t
aW1hZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKaW5kZXggYmQyZTc2NDZkYjcxNTMz
YjQ0MDBkOGUwZWFmYjcxNjljMmE2Zjk4OC4uNzYzODVmYTYyZjIxZWJlNmM5ZTEzOWQyZTQ4MDI4
NTM5OWVmODI4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKQEAgLTE3NjgsMTEg
KzE3NjgsMTMgQEAgY2xhc3MgQXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbiB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIHZvaWQgYXBwbHlJbmhlcml0VmFsdWUoU3R5bGVSZXNvbHZlciogc3R5bGVS
ZXNvbHZlcikKICAgICB7CisgICAgICAgIEFwcGx5UHJvcGVydHlEZWZhdWx0QmFzZTxFSW1hZ2VS
ZXNvbHV0aW9uLCAmUmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvbkZsYWdzLCBFSW1hZ2VSZXNv
bHV0aW9uLCAmUmVuZGVyU3R5bGU6OnNldEltYWdlUmVzb2x1dGlvbkZsYWdzLCBFSW1hZ2VSZXNv
bHV0aW9uLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlc29sdXRpb25GbGFncz46OmFwcGx5
SW5oZXJpdFZhbHVlKHN0eWxlUmVzb2x2ZXIpOwogICAgICAgICBBcHBseVByb3BlcnR5RGVmYXVs
dEJhc2U8ZmxvYXQsICZSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uLCBmbG9hdCwgJlJlbmRl
clN0eWxlOjpzZXRJbWFnZVJlc29sdXRpb24sIGZsb2F0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxJ
bWFnZVJlc29sdXRpb24+OjphcHBseUluaGVyaXRWYWx1ZShzdHlsZVJlc29sdmVyKTsKICAgICB9
CiAKICAgICBzdGF0aWMgdm9pZCBhcHBseUluaXRpYWxWYWx1ZShTdHlsZVJlc29sdmVyKiBzdHls
ZVJlc29sdmVyKQogICAgIHsKKyAgICAgICAgQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPEVJbWFn
ZVJlc29sdXRpb24sICZSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uRmxhZ3MsIEVJbWFnZVJl
c29sdXRpb24sICZSZW5kZXJTdHlsZTo6c2V0SW1hZ2VSZXNvbHV0aW9uRmxhZ3MsIEVJbWFnZVJl
c29sdXRpb24sICZSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdlUmVzb2x1dGlvbkZsYWdzPjo6YXBw
bHlJbml0aWFsVmFsdWUoc3R5bGVSZXNvbHZlcik7CiAgICAgICAgIEFwcGx5UHJvcGVydHlEZWZh
dWx0QmFzZTxmbG9hdCwgJlJlbmRlclN0eWxlOjppbWFnZVJlc29sdXRpb24sIGZsb2F0LCAmUmVu
ZGVyU3R5bGU6OnNldEltYWdlUmVzb2x1dGlvbiwgZmxvYXQsICZSZW5kZXJTdHlsZTo6aW5pdGlh
bEltYWdlUmVzb2x1dGlvbj46OmFwcGx5SW5pdGlhbFZhbHVlKHN0eWxlUmVzb2x2ZXIpOwogICAg
IH0KIApAQCAtMTc4MiwxMyArMTc4NCwxOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIENTU1ZhbHVlTGlzdCogdmFsdWVMaXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVM
aXN0Kj4odmFsdWUpOwogICAgICAgICBpbnQgbGVuID0gdmFsdWVMaXN0LT5sZW5ndGgoKTsKKyAg
ICAgICAgRUltYWdlUmVzb2x1dGlvbiBmbGFncyA9IFJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VS
ZXNvbHV0aW9uRmxhZ3MoKTsKICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBsZW47IGkrKykg
ewogICAgICAgICAgICAgQ1NTVmFsdWUqIGl0ZW0gPSB2YWx1ZUxpc3QtPml0ZW1XaXRob3V0Qm91
bmRzQ2hlY2soaSk7CiAgICAgICAgICAgICBpZiAoIWl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVl
KiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7
Ci0gICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRJbWFnZVJlc29sdXRpb24o
cHJpbWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQ
WCkpOworICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1Zh
bHVlRnJvbUltYWdlKQorICAgICAgICAgICAgICAgIGZsYWdzID0gSW1hZ2VSZXNvbHV0aW9uRnJv
bUltYWdlOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHN0eWxlUmVzb2x2ZXIt
PnN0eWxlKCktPnNldEltYWdlUmVzb2x1dGlvbihwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFs
dWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYKSk7CiAgICAgICAgIH0KKyAgICAgICAgc3R5
bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0SW1hZ2VSZXNvbHV0aW9uRmxhZ3MoZmxhZ3MpOwogICAg
IH0KIAogICAgIHN0YXRpYyBQcm9wZXJ0eUhhbmRsZXIgY3JlYXRlSGFuZGxlcigpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA4MmYwMTk0
OWVkZDdjMmYwM2MzZjZkZWFiZTAyMTcxYzY3YmI1ODcyLi4xZDRjZTM1MDk3NmMyNmRlM2RlY2E2
OWUzZWFlMDQzYjgxYmIyYzgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTQ2NSw2ICs0NjUsNyBAQCBTdHlsZURpZmZlcmVuY2UgUmVu
ZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUqIG90aGVyLCB1bnNpZ25lZCYgY2hhbmdl
ZENvbgogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fbGluZUdyaWQgIT0gb3Ro
ZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2xpbmVHcmlkCiAgICAgICAgICAgICB8fCByYXJlSW5o
ZXJpdGVkRGF0YS0+bV9saW5lU25hcCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fbGlu
ZVNuYXAKICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2xpbmVBbGlnbiAhPSBv
dGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fbGluZUFsaWduCisgICAgICAgICAgICB8fCByYXJl
SW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlc29sdXRpb25GbGFncyAhPSBvdGhlci0+cmFyZUluaGVy
aXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MKICAgICAgICAgICAgIHx8IHJhcmVJbmhl
cml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbiAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEt
Pm1faW1hZ2VSZXNvbHV0aW9uKQogICAgICAgICAgICAgcmV0dXJuIFN0eWxlRGlmZmVyZW5jZUxh
eW91dDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApp
bmRleCBhNmVjMDgzMmQ1OTgzM2JhNjkyOWIyMjcwM2NhOTQxYmJmZTU2NDFkLi4xZDA4OWRhYzY1
ZGM3M2E4N2EwNzA3MmUzN2RjMzlmYzIxZjhjZGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtOTcwLDYgKzk3MCw3IEBAIHB1YmxpYzoKIAog
ICAgIEVJbWFnZVJlbmRlcmluZyBpbWFnZVJlbmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIHN0YXRp
Y19jYXN0PEVJbWFnZVJlbmRlcmluZz4ocmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZW5kZXJp
bmcpOyB9CiAKKyAgICBFSW1hZ2VSZXNvbHV0aW9uIGltYWdlUmVzb2x1dGlvbkZsYWdzKCkgY29u
c3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUltYWdlUmVzb2x1dGlvbj4ocmFyZUluaGVyaXRlZERh
dGEtPm1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MpOyB9CiAgICAgZmxvYXQgaW1hZ2VSZXNvbHV0aW9u
KCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uOyB9
CiAgICAgCiAgICAgRVNwZWFrIHNwZWFrKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RVNw
ZWFrPihyYXJlSW5oZXJpdGVkRGF0YS0+c3BlYWspOyB9CkBAIC0xMTM4LDYgKzExMzksNyBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzZXRFZmZlY3RpdmVab29tKGZsb2F0KTsKICAgICB2b2lkIHNldElt
YWdlUmVuZGVyaW5nKEVJbWFnZVJlbmRlcmluZyB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERh
dGEsIG1faW1hZ2VSZW5kZXJpbmcsIHYpIH0KIAorICAgIHZvaWQgc2V0SW1hZ2VSZXNvbHV0aW9u
RmxhZ3MoRUltYWdlUmVzb2x1dGlvbiB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1f
aW1hZ2VSZXNvbHV0aW9uRmxhZ3MsIHYpIH0KICAgICB2b2lkIHNldEltYWdlUmVzb2x1dGlvbihm
bG9hdCBmKSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1faW1hZ2VSZXNvbHV0aW9uLCBm
KSB9CiAKICAgICB2b2lkIHNldFdoaXRlU3BhY2UoRVdoaXRlU3BhY2UgdikgeyBpbmhlcml0ZWRf
ZmxhZ3MuX3doaXRlX3NwYWNlID0gdjsgfQpAQCAtMTY0Niw2ICsxNjQ4LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyBUZXh0RW1waGFzaXNQb3NpdGlvbiBpbml0aWFsVGV4dEVtcGhhc2lzUG9zaXRp
b24oKSB7IHJldHVybiBUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXI7IH0KICAgICBzdGF0aWMgTGlu
ZUJveENvbnRhaW4gaW5pdGlhbExpbmVCb3hDb250YWluKCkgeyByZXR1cm4gTGluZUJveENvbnRh
aW5CbG9jayB8IExpbmVCb3hDb250YWluSW5saW5lIHwgTGluZUJveENvbnRhaW5SZXBsYWNlZDsg
fQogICAgIHN0YXRpYyBFSW1hZ2VSZW5kZXJpbmcgaW5pdGlhbEltYWdlUmVuZGVyaW5nKCkgeyBy
ZXR1cm4gSW1hZ2VSZW5kZXJpbmdBdXRvOyB9CisgICAgc3RhdGljIEVJbWFnZVJlc29sdXRpb24g
aW5pdGlhbEltYWdlUmVzb2x1dGlvbkZsYWdzKCkgeyByZXR1cm4gSW1hZ2VSZXNvbHV0aW9uSW5p
dGlhbDsgfQogICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsSW1hZ2VSZXNvbHV0aW9uKCkgeyByZXR1
cm4gMTsgfQogICAgIHN0YXRpYyBTdHlsZUltYWdlKiBpbml0aWFsQm9yZGVySW1hZ2VTb3VyY2Uo
KSB7IHJldHVybiAwOyB9CiAgICAgc3RhdGljIFN0eWxlSW1hZ2UqIGluaXRpYWxNYXNrQm94SW1h
Z2VTb3VyY2UoKSB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDAxZTNkMDZmNzg5NzBkNmFj
ODVjNTQ1Y2I4NTk0M2Y5OTgzYmExOGQuLmRmMDVjMTBjY2NhOTZkZjAyZDUwNTZmMTVmNGJmOTNk
ZGJiYjU5MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5oCkBAIC00NTAsNiArNDUwLDggQEAgZW51bSBUZXh0T3ZlcmZs
b3cgeyBUZXh0T3ZlcmZsb3dDbGlwID0gMCwgVGV4dE92ZXJmbG93RWxsaXBzaXMgfTsKIAogZW51
bSBFSW1hZ2VSZW5kZXJpbmcgeyBJbWFnZVJlbmRlcmluZ0F1dG8sIEltYWdlUmVuZGVyaW5nT3B0
aW1pemVTcGVlZCwgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVF1YWxpdHksIEltYWdlUmVuZGVyaW5n
T3B0aW1pemVDb250cmFzdCB9OwogCitlbnVtIEVJbWFnZVJlc29sdXRpb24geyBJbWFnZVJlc29s
dXRpb25Jbml0aWFsID0gMCwgSW1hZ2VSZXNvbHV0aW9uRnJvbUltYWdlIH07CisKIGVudW0gT3Jk
ZXIgeyBMb2dpY2FsT3JkZXIgPSAwLCBWaXN1YWxPcmRlciB9OwogCiBlbnVtIFJlZ2lvbk92ZXJm
bG93IHsgQXV0b1JlZ2lvbk92ZXJmbG93LCBCcmVha1JlZ2lvbk92ZXJmbG93IH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0
YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHAKaW5kZXggNGE1MzE2NGJhNzk3ZjNiMTU0YzA1ODk0ZjA3ZDJmMGFiODdmZWI0NC4u
YTE3YjUyNjkxZmIwMzQwYWQyODViMTlmYzFjNDk0NWI1YzQxOTRlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcApAQCAtNTgsNiArNTgsNyBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJ
bmhlcml0ZWREYXRhKCkKICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HKQogICAgICwgdXNl
VG91Y2hPdmVyZmxvd1Njcm9sbGluZyhSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZVRvdWNoT3ZlcmZs
b3dTY3JvbGxpbmcoKSkKICNlbmRpZgorICAgICwgbV9pbWFnZVJlc29sdXRpb25GbGFncyhSZW5k
ZXJTdHlsZTo6aW5pdGlhbEltYWdlUmVzb2x1dGlvbkZsYWdzKCkpCiAgICAgLCBoeXBoZW5hdGlv
bkxpbWl0QmVmb3JlKC0xKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEFmdGVyKC0xKQogICAgICwg
aHlwaGVuYXRpb25MaW1pdExpbmVzKC0xKQpAQCAtMTA3LDYgKzEwOCw3IEBAIFN0eWxlUmFyZUlu
aGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YSYgbykKICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HKQogICAgICwgdXNlVG91
Y2hPdmVyZmxvd1Njcm9sbGluZyhvLnVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcpCiAjZW5kaWYK
KyAgICAsIG1faW1hZ2VSZXNvbHV0aW9uRmxhZ3Moby5tX2ltYWdlUmVzb2x1dGlvbkZsYWdzKQog
ICAgICwgaHlwaGVuYXRpb25TdHJpbmcoby5oeXBoZW5hdGlvblN0cmluZykKICAgICAsIGh5cGhl
bmF0aW9uTGltaXRCZWZvcmUoby5oeXBoZW5hdGlvbkxpbWl0QmVmb3JlKQogICAgICwgaHlwaGVu
YXRpb25MaW1pdEFmdGVyKG8uaHlwaGVuYXRpb25MaW1pdEFmdGVyKQpAQCAtMTgxLDYgKzE4Myw3
IEBAIGJvb2wgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0b3I9PShjb25zdCBTdHlsZVJh
cmVJbmhlcml0ZWREYXRhJiBvKSBjb25zdAogICAgICAgICAmJiBRdW90ZXNEYXRhOjplcXVhbChx
dW90ZXMuZ2V0KCksIG8ucXVvdGVzLmdldCgpKQogICAgICAgICAmJiBtX2xpbmVHcmlkID09IG8u
bV9saW5lR3JpZAogICAgICAgICAmJiBtX2ltYWdlUmVuZGVyaW5nID09IG8ubV9pbWFnZVJlbmRl
cmluZworICAgICAgICAmJiBtX2ltYWdlUmVzb2x1dGlvbkZsYWdzID09IG8ubV9pbWFnZVJlc29s
dXRpb25GbGFncwogICAgICAgICAmJiBtX2ltYWdlUmVzb2x1dGlvbiA9PSBvLm1faW1hZ2VSZXNv
bHV0aW9uCiAgICAgICAgICYmIG1fbGluZVNuYXAgPT0gby5tX2xpbmVTbmFwCiAgICAgICAgICYm
IG1fbGluZUFsaWduID09IG8ubV9saW5lQWxpZ247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAppbmRleCBkNTEwOGNi
ZGQxZTA4ODM1YjVjMDc4ZTlmODE5ZjBhMzc5NmU0OTE1Li4wOGM5ZmZmNTg1M2MyMDBhMjUwMmU2
NTc3NTUwZjUxZjg2NGRhMWIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKQEAgLTk2LDYgKzk2LDcgQEAgcHVi
bGljOgogI2lmIEVOQUJMRShPVkVSRkxPV19TQ1JPTExJTkcpCiAgICAgdW5zaWduZWQgdXNlVG91
Y2hPdmVyZmxvd1Njcm9sbGluZzogMTsKICNlbmRpZgorICAgIHVuc2lnbmVkIG1faW1hZ2VSZXNv
bHV0aW9uRmxhZ3MgOiAxOyAvLyBFSW1hZ2VSZXNvbHV0aW9uCiAKICAgICBBdG9taWNTdHJpbmcg
aHlwaGVuYXRpb25TdHJpbmc7CiAgICAgc2hvcnQgaHlwaGVuYXRpb25MaW1pdEJlZm9yZTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>143744</attachid>
            <date>2012-05-23 23:44:57 -0700</date>
            <delta_ts>2012-05-30 17:28:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85451-20120524164455.patch</filename>
            <type>text/plain</type>
            <size>12029</size>
            <attacher name="David Barr">davidbarr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4MDEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzU5YjkyYTc4Y2QwMDk1
NWQ3MzRiZjNiZDJjNWViMDllNWY1YTU3NS4uMzBkOTJlMmRiNGYzYjQ1OWM0N2I3ODIwYWU5NmQ0
MTRiZGI2MDcxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA1LTIzICBEYXZp
ZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZnJvbS1pbWFn
ZSB0byBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgdXBkYXRlZCBmYXN0L2Nzcy9p
bWFnZS1yZW5kZXJpbmcuaHRtbC4KKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlJbWFnZVJlc29sdXRpb246OmFwcGx5SW5oZXJpdFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlJbWFnZVJlc29sdXRpb246OmFw
cGx5SW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlJbWFnZVJl
c29sdXRpb246OmFwcGx5VmFsdWUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YSk6CisKIDIwMTItMDUtMjIgIERhdmlkIEJhcnIgIDxkYXZpZGJhcnJAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEFkZCBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uIChkcHB4IG9u
bHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGUzYmIyMWU3NDFhZmMzZWZjNWVjYTc0
NjQwMjAzNGEyYjZkNGJiYjQuLjJlZmI4MzgzMjM5ZWJlNmQ1MzAxZjg4MzMzYjIxYWFhOTllYTE4
OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0yNDc4LDcgKzI0NzgsOSBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRh
bnQpCiAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0
OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwogICAgICAgICAgICAgYm9vbCBpc1ZhbGlkID0gdHJ1
ZTsKICAgICAgICAgICAgIHdoaWxlIChpc1ZhbGlkICYmIHZhbHVlKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKHZhbGlkVW5pdCh2YWx1ZSwgRlJlc29sdXRpb24gfCBGTm9uTmVnKSAmJiB2YWx1ZS0+
ZlZhbHVlID4gMCkKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUtPmlkID09IENTU1ZhbHVlRnJv
bUltYWdlKQorICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCku
Y3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlLT5pZCkpOworICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKHZhbGlkVW5pdCh2YWx1ZSwgRlJlc29sdXRpb24gfCBGTm9uTmVnKSAmJiB2YWx1ZS0+ZlZh
bHVlID4gMCkKICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2
ZU51bWVyaWNWYWx1ZSh2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICAgICAgaXNWYWxpZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgppbmRleCBiNjI2OTQ5ZTg2ZmU4NWViZjUxNDg5MzQyMDQ2N2YyNzljYzczM2YxLi44OGIy
YjM1ZTZmZDdhZWM2ZjFjMDJhNTZkN2UxZjQ1NjJmNzQ4ODRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtOTA4LDMgKzkwOCw2IEBAIGZpbHRlci1ib3gKIGRldGFj
aGVkCiAjZW5kaWYgLy8gQ1NTX1NIQURFUlMKICNlbmRpZiAvLyBDU1NfRklMVEVSUworCisvLyBp
bWFnZS1yZXNvbHV0aW9uCitmcm9tLWltYWdlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3Bw
CmluZGV4IDQ3YmE5MWM2NDYwODhmMGFkMjI4NjQ0YzhiZDU3NTQyZDg1NWM0M2MuLmU1ODg3MjE2
ODljMjA4ZTkyM2YzZTViOTQ2OWJjZWUyOTdjYmNhMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1
aWxkZXIuY3BwCkBAIC0xNzY4LDExICsxNzY4LDEzIEBAIGNsYXNzIEFwcGx5UHJvcGVydHlJbWFn
ZVJlc29sdXRpb24gewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFZhbHVl
KFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCiAgICAgeworICAgICAgICBBcHBseVByb3Bl
cnR5RGVmYXVsdEJhc2U8RUltYWdlUmVzb2x1dGlvbiwgJlJlbmRlclN0eWxlOjppbWFnZVJlc29s
dXRpb25GbGFncywgRUltYWdlUmVzb2x1dGlvbiwgJlJlbmRlclN0eWxlOjpzZXRJbWFnZVJlc29s
dXRpb25GbGFncywgRUltYWdlUmVzb2x1dGlvbiwgJlJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VS
ZXNvbHV0aW9uRmxhZ3M+OjphcHBseUluaGVyaXRWYWx1ZShzdHlsZVJlc29sdmVyKTsKICAgICAg
ICAgQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPGZsb2F0LCAmUmVuZGVyU3R5bGU6OmltYWdlUmVz
b2x1dGlvbiwgZmxvYXQsICZSZW5kZXJTdHlsZTo6c2V0SW1hZ2VSZXNvbHV0aW9uLCBmbG9hdCwg
JlJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uPjo6YXBwbHlJbmhlcml0VmFsdWUo
c3R5bGVSZXNvbHZlcik7CiAgICAgfQogCiAgICAgc3RhdGljIHZvaWQgYXBwbHlJbml0aWFsVmFs
dWUoU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlcikKICAgICB7CisgICAgICAgIEFwcGx5UHJv
cGVydHlEZWZhdWx0QmFzZTxFSW1hZ2VSZXNvbHV0aW9uLCAmUmVuZGVyU3R5bGU6OmltYWdlUmVz
b2x1dGlvbkZsYWdzLCBFSW1hZ2VSZXNvbHV0aW9uLCAmUmVuZGVyU3R5bGU6OnNldEltYWdlUmVz
b2x1dGlvbkZsYWdzLCBFSW1hZ2VSZXNvbHV0aW9uLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFn
ZVJlc29sdXRpb25GbGFncz46OmFwcGx5SW5pdGlhbFZhbHVlKHN0eWxlUmVzb2x2ZXIpOwogICAg
ICAgICBBcHBseVByb3BlcnR5RGVmYXVsdEJhc2U8ZmxvYXQsICZSZW5kZXJTdHlsZTo6aW1hZ2VS
ZXNvbHV0aW9uLCBmbG9hdCwgJlJlbmRlclN0eWxlOjpzZXRJbWFnZVJlc29sdXRpb24sIGZsb2F0
LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlc29sdXRpb24+OjphcHBseUluaXRpYWxWYWx1
ZShzdHlsZVJlc29sdmVyKTsKICAgICB9CiAKQEAgLTE3ODIsMTMgKzE3ODQsMTggQEAgcHVibGlj
OgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBDU1NWYWx1ZUxpc3QqIHZhbHVlTGlzdCA9
IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKICAgICAgICAgaW50IGxlbiA9IHZh
bHVlTGlzdC0+bGVuZ3RoKCk7CisgICAgICAgIEVJbWFnZVJlc29sdXRpb24gZmxhZ3MgPSBSZW5k
ZXJTdHlsZTo6aW5pdGlhbEltYWdlUmVzb2x1dGlvbkZsYWdzKCk7CiAgICAgICAgIGZvciAoaW50
IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAgICAgIENTU1ZhbHVlKiBpdGVtID0gdmFs
dWVMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkpOwogICAgICAgICAgICAgaWYgKCFpdGVt
LT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
ICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZlVmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQ
cmltaXRpdmVWYWx1ZSo+KGl0ZW0pOwotICAgICAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUo
KS0+c2V0SW1hZ2VSZXNvbHV0aW9uKHByaW1pdGl2ZVZhbHVlLT5nZXREb3VibGVWYWx1ZShDU1NQ
cmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFgpKTsKKyAgICAgICAgICAgIGlmIChwcmltaXRpdmVWYWx1
ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUZyb21JbWFnZSkKKyAgICAgICAgICAgICAgICBmbGFn
cyA9IEltYWdlUmVzb2x1dGlvbkZyb21JbWFnZTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRJbWFnZVJlc29sdXRpb24ocHJpbWl0
aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCkpOwog
ICAgICAgICB9CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldEltYWdlUmVzb2x1
dGlvbkZsYWdzKGZsYWdzKTsKICAgICB9CiAKICAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNy
ZWF0ZUhhbmRsZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAKaW5kZXggMjdiYjhiNjg2NWY3OWE0YmUyYjQ0OWMyMDg2YWY0MTM0ZjgwZmM5MS4u
ZGRjODEwZDBkNWQ4MWE4YjU4N2U5N2E1NDVkMTYzYTEwZmU1ODQyMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC00NjMsNiArNDYzLDcg
QEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBv
dGhlciwgdW5zaWduZWQmIGNoYW5nZWRDb24KICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWRE
YXRhLT5tX2xpbmVHcmlkICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+bV9saW5lR3JpZAog
ICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fbGluZVNuYXAgIT0gb3RoZXItPnJh
cmVJbmhlcml0ZWREYXRhLT5tX2xpbmVTbmFwCiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVk
RGF0YS0+bV9saW5lQWxpZ24gIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2xpbmVBbGln
bgorICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uRmxh
Z3MgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbkZsYWdzCiAg
ICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlc29sdXRpb24gIT0gb3Ro
ZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbikKICAgICAgICAgICAgIHJl
dHVybiBTdHlsZURpZmZlcmVuY2VMYXlvdXQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggZWFjZDg2MWRhYTFlMzFmZmEyZDcyZTRkM2E0ZDEy
NzVjMTdhODA0OS4uMjFlOGQ5NTMyMjczM2FjNDA3MTA1YTMyMzEwZGY5NDEyNzc2YTIwYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTk2OCw2
ICs5NjgsNyBAQCBwdWJsaWM6CiAKICAgICBFSW1hZ2VSZW5kZXJpbmcgaW1hZ2VSZW5kZXJpbmco
KSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxFSW1hZ2VSZW5kZXJpbmc+KHJhcmVJbmhlcml0
ZWREYXRhLT5tX2ltYWdlUmVuZGVyaW5nKTsgfQogCisgICAgRUltYWdlUmVzb2x1dGlvbiBpbWFn
ZVJlc29sdXRpb25GbGFncygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVJbWFnZVJlc29s
dXRpb24+KHJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbkZsYWdzKTsgfQogICAg
IGZsb2F0IGltYWdlUmVzb2x1dGlvbigpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRh
LT5tX2ltYWdlUmVzb2x1dGlvbjsgfQogICAgIAogICAgIEVTcGVhayBzcGVhaygpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PEVTcGVhaz4ocmFyZUluaGVyaXRlZERhdGEtPnNwZWFrKTsgfQpA
QCAtMTEzNiw2ICsxMTM3LDcgQEAgcHVibGljOgogICAgIGJvb2wgc2V0RWZmZWN0aXZlWm9vbShm
bG9hdCk7CiAgICAgdm9pZCBzZXRJbWFnZVJlbmRlcmluZyhFSW1hZ2VSZW5kZXJpbmcgdikgeyBT
RVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2ltYWdlUmVuZGVyaW5nLCB2KSB9CiAKKyAgICB2
b2lkIHNldEltYWdlUmVzb2x1dGlvbkZsYWdzKEVJbWFnZVJlc29sdXRpb24gdikgeyBTRVRfVkFS
KHJhcmVJbmhlcml0ZWREYXRhLCBtX2ltYWdlUmVzb2x1dGlvbkZsYWdzLCB2KSB9CiAgICAgdm9p
ZCBzZXRJbWFnZVJlc29sdXRpb24oZmxvYXQgZikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRh
LCBtX2ltYWdlUmVzb2x1dGlvbiwgZikgfQogCiAgICAgdm9pZCBzZXRXaGl0ZVNwYWNlKEVXaGl0
ZVNwYWNlIHYpIHsgaW5oZXJpdGVkX2ZsYWdzLl93aGl0ZV9zcGFjZSA9IHY7IH0KQEAgLTE2NDMs
NiArMTY0NSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVGV4dEVtcGhhc2lzUG9zaXRpb24gaW5p
dGlhbFRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgeyByZXR1cm4gVGV4dEVtcGhhc2lzUG9zaXRpb25P
dmVyOyB9CiAgICAgc3RhdGljIExpbmVCb3hDb250YWluIGluaXRpYWxMaW5lQm94Q29udGFpbigp
IHsgcmV0dXJuIExpbmVCb3hDb250YWluQmxvY2sgfCBMaW5lQm94Q29udGFpbklubGluZSB8IExp
bmVCb3hDb250YWluUmVwbGFjZWQ7IH0KICAgICBzdGF0aWMgRUltYWdlUmVuZGVyaW5nIGluaXRp
YWxJbWFnZVJlbmRlcmluZygpIHsgcmV0dXJuIEltYWdlUmVuZGVyaW5nQXV0bzsgfQorICAgIHN0
YXRpYyBFSW1hZ2VSZXNvbHV0aW9uIGluaXRpYWxJbWFnZVJlc29sdXRpb25GbGFncygpIHsgcmV0
dXJuIEltYWdlUmVzb2x1dGlvbkluaXRpYWw7IH0KICAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbElt
YWdlUmVzb2x1dGlvbigpIHsgcmV0dXJuIDE7IH0KICAgICBzdGF0aWMgU3R5bGVJbWFnZSogaW5p
dGlhbEJvcmRlckltYWdlU291cmNlKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBTdHlsZUlt
YWdlKiBpbml0aWFsTWFza0JveEltYWdlU291cmNlKCkgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApp
bmRleCBiYTc2NzdiMTBlMmFiOTUwMGQ0MDZkZjJkMjI0YTQ4OTA5MjI5MWZiLi40MjU4ZTE1NGU2
MWMzNjhhZDJlMTM1YTA4NWU2NDk4YThlZjFlMDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNDQ4LDYgKzQ0
OCw4IEBAIGVudW0gVGV4dE92ZXJmbG93IHsgVGV4dE92ZXJmbG93Q2xpcCA9IDAsIFRleHRPdmVy
Zmxvd0VsbGlwc2lzIH07CiAKIGVudW0gRUltYWdlUmVuZGVyaW5nIHsgSW1hZ2VSZW5kZXJpbmdB
dXRvLCBJbWFnZVJlbmRlcmluZ09wdGltaXplU3BlZWQsIEltYWdlUmVuZGVyaW5nT3B0aW1pemVR
dWFsaXR5LCBJbWFnZVJlbmRlcmluZ09wdGltaXplQ29udHJhc3QgfTsKIAorZW51bSBFSW1hZ2VS
ZXNvbHV0aW9uIHsgSW1hZ2VSZXNvbHV0aW9uSW5pdGlhbCA9IDAsIEltYWdlUmVzb2x1dGlvbkZy
b21JbWFnZSB9OworCiBlbnVtIE9yZGVyIHsgTG9naWNhbE9yZGVyID0gMCwgVmlzdWFsT3JkZXIg
fTsKIAogZW51bSBSZWdpb25PdmVyZmxvdyB7IEF1dG9SZWdpb25PdmVyZmxvdywgQnJlYWtSZWdp
b25PdmVyZmxvdyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IGVkMTY2YzcxMGNmNDZhZGE0MWUx
NGQ2MmI4NDU2ODExMGZhZDUyOTEuLjFlZGQ3OTQ4MGI5ZTcxYTI1MzJiZDczYTJiZWZkODBkN2Fm
YTExOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTU4LDYgKzU4LDcgQEAgU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgpCiAjaWYgRU5BQkxFKE9WRVJGTE9X
X1NDUk9MTElORykKICAgICAsIHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoUmVuZGVyU3R5bGU6
OmluaXRpYWxVc2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCkpCiAjZW5kaWYKKyAgICAsIG1faW1h
Z2VSZXNvbHV0aW9uRmxhZ3MoUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlc29sdXRpb25GbGFn
cygpKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZSgtMSkKICAgICAsIGh5cGhlbmF0aW9u
TGltaXRBZnRlcigtMSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRMaW5lcygtMSkKQEAgLTEwOCw2
ICsxMDksNyBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRh
KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pCiAjaWYgRU5BQkxFKE9WRVJGTE9XX1ND
Uk9MTElORykKICAgICAsIHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoby51c2VUb3VjaE92ZXJm
bG93U2Nyb2xsaW5nKQogI2VuZGlmCisgICAgLCBtX2ltYWdlUmVzb2x1dGlvbkZsYWdzKG8ubV9p
bWFnZVJlc29sdXRpb25GbGFncykKICAgICAsIGh5cGhlbmF0aW9uU3RyaW5nKG8uaHlwaGVuYXRp
b25TdHJpbmcpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlKG8uaHlwaGVuYXRpb25MaW1p
dEJlZm9yZSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRlcihvLmh5cGhlbmF0aW9uTGltaXRB
ZnRlcikKQEAgLTE4NCw2ICsxODYsNyBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9w
ZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAgICAgICAg
JiYgbV90YWJTaXplID09IG8ubV90YWJTaXplCiAgICAgICAgICYmIG1fbGluZUdyaWQgPT0gby5t
X2xpbmVHcmlkCiAgICAgICAgICYmIG1faW1hZ2VSZW5kZXJpbmcgPT0gby5tX2ltYWdlUmVuZGVy
aW5nCisgICAgICAgICYmIG1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MgPT0gby5tX2ltYWdlUmVzb2x1
dGlvbkZsYWdzCiAgICAgICAgICYmIG1faW1hZ2VSZXNvbHV0aW9uID09IG8ubV9pbWFnZVJlc29s
dXRpb24KICAgICAgICAgJiYgbV9saW5lU25hcCA9PSBvLm1fbGluZVNuYXAKICAgICAgICAgJiYg
bV9saW5lQWxpZ24gPT0gby5tX2xpbmVBbGlnbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCmluZGV4IDUwYTdjYjZj
OTYwYmY2M2E5MWQxZGZkNWM1NGE3MzQzMzAzNDRhNzQuLmI1ODE0MjA2ZGM0NjFhN2M2ZTI2YWYy
ZDEyMjY4ZDM5NzY2NjcwZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApAQCAtOTYsNiArOTYsNyBAQCBwdWJs
aWM6CiAjaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykKICAgICB1bnNpZ25lZCB1c2VUb3Vj
aE92ZXJmbG93U2Nyb2xsaW5nOiAxOwogI2VuZGlmCisgICAgdW5zaWduZWQgbV9pbWFnZVJlc29s
dXRpb25GbGFncyA6IDE7IC8vIEVJbWFnZVJlc29sdXRpb24KIAogICAgIEF0b21pY1N0cmluZyBo
eXBoZW5hdGlvblN0cmluZzsKICAgICBzaG9ydCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDQ3YmY1MTkxM2FkMDE5YmRmOGM4ZjhiYzVlYjgxYjFlYzRlNDYwZWIuLmExZTExMjg4OGQ5
NjliZWYyYmEwMTdlZjY1YTQ5ODhlMTgwMTFlMDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAx
Mi0wNS0yMyAgRGF2aWQgQmFyciAgPGRhdmlkYmFyckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
QWRkIGZyb20taW1hZ2UgdG8gY3NzMy1pbWFnZXMgaW1hZ2UtcmVzb2x1dGlvbgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU0NTEKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvY3NzL3NjcmlwdC10
ZXN0cy9pbWFnZS1yZXNvbHV0aW9uLmpzOgorCiAyMDEyLTA1LTIyICBEYXZpZCBCYXJyICA8ZGF2
aWRiYXJyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgY3NzMy1pbWFnZXMgaW1hZ2UtcmVz
b2x1dGlvbiAoZHBweCBvbmx5KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mvc2Ny
aXB0LXRlc3RzL2ltYWdlLXJlc29sdXRpb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zY3Jp
cHQtdGVzdHMvaW1hZ2UtcmVzb2x1dGlvbi5qcwppbmRleCBmOTRlZGNjNDkyNjg4NGE2ZDBjYzg4
YjljZDQwYzY0YWRjMTQ1OGRkLi45ZGEyNmNlNTE2NGUyMzIwZmNmMDkyNDFjYzIwY2E5ZTNiOTc0
N2RhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zY3JpcHQtdGVzdHMvaW1hZ2Ut
cmVzb2x1dGlvbi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zY3JpcHQtdGVzdHMvaW1h
Z2UtcmVzb2x1dGlvbi5qcwpAQCAtNCw3ICs0LDcgQEAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCiB2
YXIgZHBweEltcGxlbWVudGVkID0gdHJ1ZTsKIHZhciBkcGlJbXBsZW1lbnRlZCA9IGZhbHNlOwog
dmFyIGRwY21JbXBsZW1lbnRlZCA9IGZhbHNlOwotdmFyIGZyb21JbWFnZUltcGxlbWVudGVkID0g
ZmFsc2U7Cit2YXIgZnJvbUltYWdlSW1wbGVtZW50ZWQgPSB0cnVlOwogdmFyIGZyb21JbWFnZVBs
dW1iaW5nSW1wbGVtZW50ZWQgPSBmYWxzZTsKIHZhciBzbmFwSW1wbGVtZW50ZWQgPSBmYWxzZTsK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>144953</attachid>
            <date>2012-05-30 17:28:12 -0700</date>
            <delta_ts>2012-06-12 22:23:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85451-20120531102810.patch</filename>
            <type>text/plain</type>
            <size>11988</size>
            <attacher name="David Barr">davidbarr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE4OTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjVkM2MzNTAwODVkYjZi
MmM3MTdiNDQwYjBkMDdiNzVhNGNmZGI0Yy4uMGE2NDE5ODBmOWRjY2ZhM2RmNDBhOGVlZTFjMDVl
NTZhNzgxMmFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA1LTMxICBEYXZp
ZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZnJvbS1pbWFn
ZSB0byBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgdXBkYXRlZCBmYXN0L2Nzcy9p
bWFnZS1yZW5kZXJpbmcuaHRtbC4KKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbjoKKyAgICAgICAgKiBjc3MvU3R5bGVCdWlsZGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlJbWFnZVJlc29sdXRpb246OmFwcGx5SW5oZXJpdFZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlJbWFnZVJlc29sdXRpb246OmFw
cGx5SW5pdGlhbFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGx5UHJvcGVydHlJbWFnZVJl
c29sdXRpb246OmFwcGx5VmFsdWUpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6ZGlmZik6CisgICAgICAg
ICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmg6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0
eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRvcj09KToKKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOgorICAgICAgICAoU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YSk6CisKIDIwMTItMDUtMjkgIERhdmlkIEJhcnIgIDxkYXZpZGJhcnJAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIEFkZCBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uIChkcHB4IG9u
bHkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IDQxMTA0ODJmMThjMWNlMWRjMTRkMWM0
MjgwZjkzNjhhMTgwMThjZjguLjBmZTQ3M2E4OWJiOGFmMmU3NjJiZTc4YjQ2NmFjMDNlMWFmZTUy
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC0yNTI0LDcgKzI1MjQsOSBAQCBib29s
IENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRh
bnQpCiAgICAgICAgICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0
OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwogICAgICAgICAgICAgYm9vbCBpc1ZhbGlkID0gdHJ1
ZTsKICAgICAgICAgICAgIHdoaWxlIChpc1ZhbGlkICYmIHZhbHVlKSB7Ci0gICAgICAgICAgICAg
ICAgaWYgKHZhbGlkVW5pdCh2YWx1ZSwgRlJlc29sdXRpb24gfCBGTm9uTmVnKSAmJiB2YWx1ZS0+
ZlZhbHVlID4gMCkKKyAgICAgICAgICAgICAgICBpZiAodmFsdWUtPmlkID09IENTU1ZhbHVlRnJv
bUltYWdlKQorICAgICAgICAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCku
Y3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVlLT5pZCkpOworICAgICAgICAgICAgICAgIGVsc2Ug
aWYgKHZhbGlkVW5pdCh2YWx1ZSwgRlJlc29sdXRpb24gfCBGTm9uTmVnKSAmJiB2YWx1ZS0+ZlZh
bHVlID4gMCkKICAgICAgICAgICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2
ZU51bWVyaWNWYWx1ZSh2YWx1ZSkpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICAgICAgaXNWYWxpZCA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jk
cy5pbgppbmRleCBhNWNlMzQ3Y2ZlMDFhNGM3NDJkZjZkNjA5OWU5MGRlNDcwMmFjODBmLi5kZDQz
MTljM2E5NTI0NTQ1MzJmYzliMTQ2NzE1NjkyMTc0Njg4MjUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtOTE2LDMgKzkxNiw4IEBAIGZpbHRlci1ib3gKIGRldGFj
aGVkCiAjZW5kaWYgLy8gQ1NTX1NIQURFUlMKICNlbmRpZiAvLyBDU1NfRklMVEVSUworCisjaWYg
ZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICYmIEVOQUJMRV9DU1NfSU1BR0Vf
UkVTT0xVVElPTgorLy8gaW1hZ2UtcmVzb2x1dGlvbgorZnJvbS1pbWFnZQorI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4IGUwY2NmZGY5ZTk0NjNjNjE2NjY3Y2E5YmM2
N2IwMDlkYjZkYzM2NDEuLmM3NGViMGJjZjQxYjdlYThiNGQ4NjNiZDRjNWNlMDdjMDUxOTE3ZGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCkBAIC0xNzY5LDExICsxNzY5LDEzIEBA
IGNsYXNzIEFwcGx5UHJvcGVydHlJbWFnZVJlc29sdXRpb24gewogcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIGFwcGx5SW5oZXJpdFZhbHVlKFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCiAg
ICAgeworICAgICAgICBBcHBseVByb3BlcnR5RGVmYXVsdEJhc2U8RUltYWdlUmVzb2x1dGlvbiwg
JlJlbmRlclN0eWxlOjppbWFnZVJlc29sdXRpb25GbGFncywgRUltYWdlUmVzb2x1dGlvbiwgJlJl
bmRlclN0eWxlOjpzZXRJbWFnZVJlc29sdXRpb25GbGFncywgRUltYWdlUmVzb2x1dGlvbiwgJlJl
bmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uRmxhZ3M+OjphcHBseUluaGVyaXRWYWx1
ZShzdHlsZVJlc29sdmVyKTsKICAgICAgICAgQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPGZsb2F0
LCAmUmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvbiwgZmxvYXQsICZSZW5kZXJTdHlsZTo6c2V0
SW1hZ2VSZXNvbHV0aW9uLCBmbG9hdCwgJlJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0
aW9uPjo6YXBwbHlJbmhlcml0VmFsdWUoc3R5bGVSZXNvbHZlcik7CiAgICAgfQogCiAgICAgc3Rh
dGljIHZvaWQgYXBwbHlJbml0aWFsVmFsdWUoU3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlcikK
ICAgICB7CisgICAgICAgIEFwcGx5UHJvcGVydHlEZWZhdWx0QmFzZTxFSW1hZ2VSZXNvbHV0aW9u
LCAmUmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvbkZsYWdzLCBFSW1hZ2VSZXNvbHV0aW9uLCAm
UmVuZGVyU3R5bGU6OnNldEltYWdlUmVzb2x1dGlvbkZsYWdzLCBFSW1hZ2VSZXNvbHV0aW9uLCAm
UmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlc29sdXRpb25GbGFncz46OmFwcGx5SW5pdGlhbFZh
bHVlKHN0eWxlUmVzb2x2ZXIpOwogICAgICAgICBBcHBseVByb3BlcnR5RGVmYXVsdEJhc2U8Zmxv
YXQsICZSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uLCBmbG9hdCwgJlJlbmRlclN0eWxlOjpz
ZXRJbWFnZVJlc29sdXRpb24sIGZsb2F0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlc29s
dXRpb24+OjphcHBseUluaXRpYWxWYWx1ZShzdHlsZVJlc29sdmVyKTsKICAgICB9CiAKQEAgLTE3
ODMsMTMgKzE3ODUsMTggQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBD
U1NWYWx1ZUxpc3QqIHZhbHVlTGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVl
KTsKICAgICAgICAgaW50IGxlbiA9IHZhbHVlTGlzdC0+bGVuZ3RoKCk7CisgICAgICAgIEVJbWFn
ZVJlc29sdXRpb24gZmxhZ3MgPSBSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdlUmVzb2x1dGlvbkZs
YWdzKCk7CiAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbGVuOyBpKyspIHsKICAgICAgICAg
ICAgIENTU1ZhbHVlKiBpdGVtID0gdmFsdWVMaXN0LT5pdGVtV2l0aG91dEJvdW5kc0NoZWNrKGkp
OwogICAgICAgICAgICAgaWYgKCFpdGVtLT5pc1ByaW1pdGl2ZVZhbHVlKCkpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgICAgICBDU1NQcmltaXRpdmVWYWx1ZSogcHJpbWl0aXZl
VmFsdWUgPSBzdGF0aWNfY2FzdDxDU1NQcmltaXRpdmVWYWx1ZSo+KGl0ZW0pOwotICAgICAgICAg
ICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0SW1hZ2VSZXNvbHV0aW9uKHByaW1pdGl2ZVZh
bHVlLT5nZXREb3VibGVWYWx1ZShDU1NQcmltaXRpdmVWYWx1ZTo6Q1NTX0RQUFgpKTsKKyAgICAg
ICAgICAgIGlmIChwcmltaXRpdmVWYWx1ZS0+Z2V0SWRlbnQoKSA9PSBDU1NWYWx1ZUZyb21JbWFn
ZSkKKyAgICAgICAgICAgICAgICBmbGFncyA9IEltYWdlUmVzb2x1dGlvbkZyb21JbWFnZTsKKyAg
ICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5z
ZXRJbWFnZVJlc29sdXRpb24ocHJpbWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfRFBQWCkpOwogICAgICAgICB9CisgICAgICAgIHN0eWxlUmVzb2x2ZXIt
PnN0eWxlKCktPnNldEltYWdlUmVzb2x1dGlvbkZsYWdzKGZsYWdzKTsKICAgICB9CiAKICAgICBz
dGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRsZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggZjY1NjY0YjUyZTljMmUyZjFm
MmNhYzFiMTY4MmNiZjJmOWJjNWRmMS4uMzIyNTY2Y2M5MTgxMDdiM2M5MTMzMjhjYjhkOTJmOWYz
ZWNmZGY1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuY3BwCkBAIC00NjIsNiArNDYyLDcgQEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlclN0eWxlOjpk
aWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmIGNoYW5nZWRDb24KICAgICAg
ICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2xpbmVCb3hDb250YWluICE9IG90aGVyLT5y
YXJlSW5oZXJpdGVkRGF0YS0+bV9saW5lQm94Q29udGFpbgogICAgICAgICAgICAgfHwgcmFyZUlu
aGVyaXRlZERhdGEtPm1fbGluZUdyaWQgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2xp
bmVHcmlkCiAjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQorICAgICAgICAgICAgfHwg
cmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MgIT0gb3RoZXItPnJhcmVJ
bmhlcml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbkZsYWdzCiAgICAgICAgICAgICB8fCByYXJl
SW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlc29sdXRpb24gIT0gb3RoZXItPnJhcmVJbmhlcml0ZWRE
YXRhLT5tX2ltYWdlUmVzb2x1dGlvbgogI2VuZGlmCiAgICAgICAgICAgICB8fCByYXJlSW5oZXJp
dGVkRGF0YS0+bV9saW5lU25hcCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fbGluZVNu
YXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXgg
NzZmYjE4ZGFiMDk3MTk1Mzk3MjY4Yzk3YzljODQzYjRhZjAxMjU1ZS4uZjBjNTcxYjg4YTE1MmY2
N2RmN2Y0Y2Q5N2I4MDM5YzlhMjFmOTkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTk3MCw2ICs5NzAsNyBAQCBwdWJsaWM6CiAgICAgRUlt
YWdlUmVuZGVyaW5nIGltYWdlUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8
RUltYWdlUmVuZGVyaW5nPihyYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlbmRlcmluZyk7IH0K
IAogI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikKKyAgICBFSW1hZ2VSZXNvbHV0aW9u
IGltYWdlUmVzb2x1dGlvbkZsYWdzKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUltYWdl
UmVzb2x1dGlvbj4ocmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MpOyB9
CiAgICAgZmxvYXQgaW1hZ2VSZXNvbHV0aW9uKCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRl
ZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uOyB9CiAjZW5kaWYKICAgICAKQEAgLTExNDAsNiArMTE0
MSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEltYWdlUmVuZGVyaW5nKEVJbWFnZVJlbmRlcmlu
ZyB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1faW1hZ2VSZW5kZXJpbmcsIHYpIH0K
IAogI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikKKyAgICB2b2lkIHNldEltYWdlUmVz
b2x1dGlvbkZsYWdzKEVJbWFnZVJlc29sdXRpb24gdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWRE
YXRhLCBtX2ltYWdlUmVzb2x1dGlvbkZsYWdzLCB2KSB9CiAgICAgdm9pZCBzZXRJbWFnZVJlc29s
dXRpb24oZmxvYXQgZikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2ltYWdlUmVzb2x1
dGlvbiwgZikgfQogI2VuZGlmCiAKQEAgLTE2NTEsNiArMTY1Myw3IEBAIHB1YmxpYzoKICAgICBz
dGF0aWMgTGluZUJveENvbnRhaW4gaW5pdGlhbExpbmVCb3hDb250YWluKCkgeyByZXR1cm4gTGlu
ZUJveENvbnRhaW5CbG9jayB8IExpbmVCb3hDb250YWluSW5saW5lIHwgTGluZUJveENvbnRhaW5S
ZXBsYWNlZDsgfQogICAgIHN0YXRpYyBFSW1hZ2VSZW5kZXJpbmcgaW5pdGlhbEltYWdlUmVuZGVy
aW5nKCkgeyByZXR1cm4gSW1hZ2VSZW5kZXJpbmdBdXRvOyB9CiAjaWYgRU5BQkxFKENTU19JTUFH
RV9SRVNPTFVUSU9OKQorICAgIHN0YXRpYyBFSW1hZ2VSZXNvbHV0aW9uIGluaXRpYWxJbWFnZVJl
c29sdXRpb25GbGFncygpIHsgcmV0dXJuIEltYWdlUmVzb2x1dGlvbkluaXRpYWw7IH0KICAgICBz
dGF0aWMgZmxvYXQgaW5pdGlhbEltYWdlUmVzb2x1dGlvbigpIHsgcmV0dXJuIDE7IH0KICNlbmRp
ZgogICAgIHN0YXRpYyBTdHlsZUltYWdlKiBpbml0aWFsQm9yZGVySW1hZ2VTb3VyY2UoKSB7IHJl
dHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IDRhZGIxZWU3MGJkM2NiMTllZDlmNGY5NDZlMTE2MTlk
OWQ3ZDIxMWMuLjM2YzZjNGM2NTQzYTM5ZDE4YzE3OTM1NjJkMTRlMDI4N2FiNTE4NjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0
YW50cy5oCkBAIC00NTQsNiArNDU0LDEwIEBAIGVudW0gVGV4dE92ZXJmbG93IHsgVGV4dE92ZXJm
bG93Q2xpcCA9IDAsIFRleHRPdmVyZmxvd0VsbGlwc2lzIH07CiAKIGVudW0gRUltYWdlUmVuZGVy
aW5nIHsgSW1hZ2VSZW5kZXJpbmdBdXRvLCBJbWFnZVJlbmRlcmluZ09wdGltaXplU3BlZWQsIElt
YWdlUmVuZGVyaW5nT3B0aW1pemVRdWFsaXR5LCBJbWFnZVJlbmRlcmluZ09wdGltaXplQ29udHJh
c3QgfTsKIAorI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikKK2VudW0gRUltYWdlUmVz
b2x1dGlvbiB7IEltYWdlUmVzb2x1dGlvbkluaXRpYWwgPSAwLCBJbWFnZVJlc29sdXRpb25Gcm9t
SW1hZ2UgfTsKKyNlbmRpZgorCiBlbnVtIE9yZGVyIHsgTG9naWNhbE9yZGVyID0gMCwgVmlzdWFs
T3JkZXIgfTsKIAogZW51bSBSZWdpb25PdmVyZmxvdyB7IEF1dG9SZWdpb25PdmVyZmxvdywgQnJl
YWtSZWdpb25PdmVyZmxvdyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDdmMTQ3MzhiOTI3Yzlk
YzU4NzU3MmVhYzRiMjU0ODM1MGZjZThkMTguLjkyMmM3ZjdiNTc5NzIzMDdhYzQ2YzBmOWYyYzli
MThlMTU5MmIzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9T
dHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTU4LDYgKzU4LDkgQEAgU3R5bGVS
YXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgpCiAjaWYgRU5BQkxFKE9W
RVJGTE9XX1NDUk9MTElORykKICAgICAsIHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoUmVuZGVy
U3R5bGU6OmluaXRpYWxVc2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCkpCiAjZW5kaWYKKyNpZiBF
TkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCisgICAgLCBtX2ltYWdlUmVzb2x1dGlvbkZsYWdz
KFJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uRmxhZ3MoKSkKKyNlbmRpZgogICAg
ICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZSgtMSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRl
cigtMSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRMaW5lcygtMSkKQEAgLTExMCw2ICsxMTMsOSBA
QCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKGNvbnN0IFN0
eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pCiAjaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykK
ICAgICAsIHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoby51c2VUb3VjaE92ZXJmbG93U2Nyb2xs
aW5nKQogI2VuZGlmCisjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQorICAgICwgbV9p
bWFnZVJlc29sdXRpb25GbGFncyhvLm1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MpCisjZW5kaWYKICAg
ICAsIGh5cGhlbmF0aW9uU3RyaW5nKG8uaHlwaGVuYXRpb25TdHJpbmcpCiAgICAgLCBoeXBoZW5h
dGlvbkxpbWl0QmVmb3JlKG8uaHlwaGVuYXRpb25MaW1pdEJlZm9yZSkKICAgICAsIGh5cGhlbmF0
aW9uTGltaXRBZnRlcihvLmh5cGhlbmF0aW9uTGltaXRBZnRlcikKQEAgLTE4OSw2ICsxOTUsNyBA
QCBib29sIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YSYgbykgY29uc3QKICAgICAgICAgJiYgbV9saW5lR3JpZCA9PSBvLm1fbGlu
ZUdyaWQKICAgICAgICAgJiYgbV9pbWFnZVJlbmRlcmluZyA9PSBvLm1faW1hZ2VSZW5kZXJpbmcK
ICNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCisgICAgICAgICYmIG1faW1hZ2VSZXNv
bHV0aW9uRmxhZ3MgPT0gby5tX2ltYWdlUmVzb2x1dGlvbkZsYWdzCiAgICAgICAgICYmIG1faW1h
Z2VSZXNvbHV0aW9uID09IG8ubV9pbWFnZVJlc29sdXRpb24KICNlbmRpZgogICAgICAgICAmJiBt
X2xpbmVTbmFwID09IG8ubV9saW5lU25hcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggOGI1NGQxOTdhZjUy
ZDU4ZjJlOTI2Yzk1ZThjMzM1MDRjZWIyMTJlYS4uOGVmYzllM2JmMTY3YTRlYmI3NDBjMDM2Zjgx
ZjNhNjc3M2VmZDhmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC05Niw2ICs5Niw5IEBAIHB1YmxpYzoK
ICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HKQogICAgIHVuc2lnbmVkIHVzZVRvdWNoT3Zl
cmZsb3dTY3JvbGxpbmc6IDE7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJ
T04pCisgICAgdW5zaWduZWQgbV9pbWFnZVJlc29sdXRpb25GbGFncyA6IDE7IC8vIEVJbWFnZVJl
c29sdXRpb24KKyNlbmRpZgogCiAgICAgQXRvbWljU3RyaW5nIGh5cGhlbmF0aW9uU3RyaW5nOwog
ICAgIHNob3J0IGh5cGhlbmF0aW9uTGltaXRCZWZvcmU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjJiYzQ5NTgxMmExMWFk
Zjc1OGUzY2NiY2RmN2JhZjZmNDgwNjg1Mi4uZTA0NTY5MzYwOWQ3NTIzMDA5NjllOGQ4OTY0ZWY5
YmJjZjZiMjNmNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA1LTMxICBEYXZpZCBCYXJy
ICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZnJvbS1pbWFnZSB0byBj
c3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9jc3Mvc2NyaXB0LXRlc3RzL2ltYWdlLXJlc29sdXRp
b24uanM6CisKIDIwMTItMDUtMjkgIERhdmlkIEJhcnIgIDxkYXZpZGJhcnJAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIEFkZCBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uIChkcHB4IG9ubHkp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9zY3JpcHQtdGVzdHMvaW1hZ2UtcmVz
b2x1dGlvbi5qcyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3NjcmlwdC10ZXN0cy9pbWFnZS1yZXNv
bHV0aW9uLmpzCmluZGV4IGJiODNhMGVhZTc2NmZmYjQ2YTY4NjFkOWY4ZGQ3ZDI3NmM2MTU3ZWYu
LmJjMjU2MDBmZTg5NWI3NmFkZTk0YTZjN2NiYjAwNDUwMzVmMGRhMDkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3NjcmlwdC10ZXN0cy9pbWFnZS1yZXNvbHV0aW9uLmpzCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvY3NzL3NjcmlwdC10ZXN0cy9pbWFnZS1yZXNvbHV0aW9uLmpzCkBA
IC0xLDcgKzEsNyBAQAogdmFyIGRwcHhJbXBsZW1lbnRlZCA9IHRydWU7CiB2YXIgZHBpSW1wbGVt
ZW50ZWQgPSBmYWxzZTsKIHZhciBkcGNtSW1wbGVtZW50ZWQgPSBmYWxzZTsKLXZhciBmcm9tSW1h
Z2VJbXBsZW1lbnRlZCA9IGZhbHNlOwordmFyIGZyb21JbWFnZUltcGxlbWVudGVkID0gdHJ1ZTsK
IHZhciBmcm9tSW1hZ2VQbHVtYmluZ0ltcGxlbWVudGVkID0gZmFsc2U7CiB2YXIgc25hcEltcGxl
bWVudGVkID0gZmFsc2U7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147230</attachid>
            <date>2012-06-12 22:23:34 -0700</date>
            <delta_ts>2012-06-13 18:10:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85451-20120613152332.patch</filename>
            <type>text/plain</type>
            <size>15433</size>
            <attacher name="David Barr">davidbarr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE5OTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThmMDIxODE3ODdjYWE4
OWMzZTE3NGQ5MjFiOTliMGEwYWZmOWExNC4uYjRjYWJkNmYwYmNhOGZmYWEwZDJkMmZmY2U0ZWZj
MDlhYmE0YjI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA2LTEyICBEYXZp
ZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZnJvbS1pbWFn
ZSB0byBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czsgZXh0ZW5kZWQgZmFzdC9jc3Mv
aW1hZ2UtcmVzb2x1dGlvbi9pbWFnZS1yZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIGNzcy9D
U1NQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZUltYWdlUmVz
b2x1dGlvbik6CisgICAgICAgICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46CisgICAgICAgICog
Y3NzL1N0eWxlQnVpbGRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVByb3BlcnR5SW1h
Z2VSZXNvbHV0aW9uOjphcHBseUluaGVyaXRWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBs
eVByb3BlcnR5SW1hZ2VSZXNvbHV0aW9uOjphcHBseUluaXRpYWxWYWx1ZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBseVByb3BlcnR5SW1hZ2VSZXNvbHV0aW9uOjphcHBseVZhbHVlKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU3R5bGU6OmRpZmYpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5oOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOgor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVyaXRl
ZERhdGEpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3BlcmF0
b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
aDoKKyAgICAgICAgKFN0eWxlUmFyZUluaGVyaXRlZERhdGEpOgorCiAyMDEyLTA2LTExICBEYXZp
ZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgY3NzMy1pbWFn
ZXMgaW1hZ2UtcmVzb2x1dGlvbiAoZHBweCBvbmx5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApp
bmRleCAwZTlmY2ExODc2NGQ1ODZlOGFiMzgxZGFhODVhMjgxMmE5NzVjMDI5Li5mYTY4NGQ5YWQ2
MTBmMGI3Y2I0NGZkMWE4YjVhZDBhZDBmMmQzYmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cApAQCAtNjgxOSwxMCArNjgxOSwxNCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6
OnBhcnNlSW1hZ2VSZXNvbHV0aW9uKENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaQogewogICAg
IFJlZlB0cjxDU1NWYWx1ZUxpc3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2Vw
YXJhdGVkKCk7CiAgICAgYm9vbCBoYXZlUmVzb2x1dGlvbiA9IGZhbHNlOworICAgIGJvb2wgaGF2
ZUZyb21JbWFnZSA9IGZhbHNlOwogCiAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gdmFsdWVM
aXN0LT5jdXJyZW50KCk7CiAgICAgd2hpbGUgKHZhbHVlKSB7Ci0gICAgICAgIGlmICghaGF2ZVJl
c29sdXRpb24gJiYgdmFsaWRVbml0KHZhbHVlLCBGUmVzb2x1dGlvbiB8IEZOb25OZWcpICYmIHZh
bHVlLT5mVmFsdWUgPiAwKSB7CisgICAgICAgIGlmICghaGF2ZUZyb21JbWFnZSAmJiB2YWx1ZS0+
aWQgPT0gQ1NTVmFsdWVGcm9tSW1hZ2UpIHsKKyAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NW
YWx1ZVBvb2woKS5jcmVhdGVJZGVudGlmaWVyVmFsdWUodmFsdWUtPmlkKSk7CisgICAgICAgICAg
ICBoYXZlRnJvbUltYWdlID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIGlmICghaGF2ZVJlc29sdXRp
b24gJiYgdmFsaWRVbml0KHZhbHVlLCBGUmVzb2x1dGlvbiB8IEZOb25OZWcpICYmIHZhbHVlLT5m
VmFsdWUgPiAwKSB7CiAgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRlUHJpbWl0aXZlTnVt
ZXJpY1ZhbHVlKHZhbHVlKSk7CiAgICAgICAgICAgICBoYXZlUmVzb2x1dGlvbiA9IHRydWU7CiAg
ICAgICAgIH0gZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5
d29yZHMuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCBh
ZTNjOTBiM2YxODc4NmYyMGI0NmRmOTJhZmU5YmRmMDFhNzkyNmZiLi5mMjEzNmU0YzI4OTc4ZDMx
ZGYzZWVmYTU2MjZkZWM4MTNlMjJhNWFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTVmFsdWVLZXl3b3Jkcy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3
b3Jkcy5pbgpAQCAtOTIyLDMgKzkyMiw3IEBAIGZpbHRlci1ib3gKIGRldGFjaGVkCiAjZW5kaWYg
Ly8gQ1NTX1NIQURFUlMKICNlbmRpZiAvLyBDU1NfRklMVEVSUworCisjaWYgZGVmaW5lZChFTkFC
TEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICYmIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTgor
ZnJvbS1pbWFnZQorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVC
dWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDU2
NTc2ZjE4NmFmYzA5NzE5ZTQzZjRkYjllNGViZjExOWExNjc3NDguLjkwMmVjMmQyNDAwYTgxZTJh
MDgyOTRlNzdhMjdiMThlZTVjN2M0ZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
dHlsZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3Bw
CkBAIC0xNzcyLDExICsxNzcyLDEzIEBAIGNsYXNzIEFwcGx5UHJvcGVydHlJbWFnZVJlc29sdXRp
b24gewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFZhbHVlKFN0eWxlUmVz
b2x2ZXIqIHN0eWxlUmVzb2x2ZXIpCiAgICAgeworICAgICAgICBBcHBseVByb3BlcnR5RGVmYXVs
dEJhc2U8RUltYWdlUmVzb2x1dGlvbiwgJlJlbmRlclN0eWxlOjppbWFnZVJlc29sdXRpb25GbGFn
cywgRUltYWdlUmVzb2x1dGlvbiwgJlJlbmRlclN0eWxlOjpzZXRJbWFnZVJlc29sdXRpb25GbGFn
cywgRUltYWdlUmVzb2x1dGlvbiwgJlJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9u
RmxhZ3M+OjphcHBseUluaGVyaXRWYWx1ZShzdHlsZVJlc29sdmVyKTsKICAgICAgICAgQXBwbHlQ
cm9wZXJ0eURlZmF1bHRCYXNlPGZsb2F0LCAmUmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvbiwg
ZmxvYXQsICZSZW5kZXJTdHlsZTo6c2V0SW1hZ2VSZXNvbHV0aW9uLCBmbG9hdCwgJlJlbmRlclN0
eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uPjo6YXBwbHlJbmhlcml0VmFsdWUoc3R5bGVSZXNv
bHZlcik7CiAgICAgfQogCiAgICAgc3RhdGljIHZvaWQgYXBwbHlJbml0aWFsVmFsdWUoU3R5bGVS
ZXNvbHZlciogc3R5bGVSZXNvbHZlcikKICAgICB7CisgICAgICAgIEFwcGx5UHJvcGVydHlEZWZh
dWx0QmFzZTxFSW1hZ2VSZXNvbHV0aW9uLCAmUmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvbkZs
YWdzLCBFSW1hZ2VSZXNvbHV0aW9uLCAmUmVuZGVyU3R5bGU6OnNldEltYWdlUmVzb2x1dGlvbkZs
YWdzLCBFSW1hZ2VSZXNvbHV0aW9uLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlc29sdXRp
b25GbGFncz46OmFwcGx5SW5pdGlhbFZhbHVlKHN0eWxlUmVzb2x2ZXIpOwogICAgICAgICBBcHBs
eVByb3BlcnR5RGVmYXVsdEJhc2U8ZmxvYXQsICZSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9u
LCBmbG9hdCwgJlJlbmRlclN0eWxlOjpzZXRJbWFnZVJlc29sdXRpb24sIGZsb2F0LCAmUmVuZGVy
U3R5bGU6OmluaXRpYWxJbWFnZVJlc29sdXRpb24+OjphcHBseUluaXRpYWxWYWx1ZShzdHlsZVJl
c29sdmVyKTsKICAgICB9CiAKQEAgLTE3ODUsMTMgKzE3ODcsMjAgQEAgcHVibGljOgogICAgICAg
ICBpZiAoIXZhbHVlLT5pc1ZhbHVlTGlzdCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBDU1NWYWx1ZUxpc3QqIHZhbHVlTGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZh
bHVlKTsKKyAgICAgICAgRUltYWdlUmVzb2x1dGlvbiBmbGFncyA9IFJlbmRlclN0eWxlOjppbml0
aWFsSW1hZ2VSZXNvbHV0aW9uRmxhZ3MoKTsKKyAgICAgICAgZG91YmxlIHJlc29sdXRpb24gPSBS
ZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdlUmVzb2x1dGlvbigpOwogICAgICAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHZhbHVlTGlzdC0+bGVuZ3RoKCk7IGkrKykgewogICAgICAgICAgICAgQ1NT
VmFsdWUqIGl0ZW0gPSB2YWx1ZUxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soaSk7CiAgICAg
ICAgICAgICBpZiAoIWl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgICAgICAgICBj
b250aW51ZTsKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9
IHN0YXRpY19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7Ci0gICAgICAgICAgICBzdHls
ZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRJbWFnZVJlc29sdXRpb24ocHJpbWl0aXZlVmFsdWUtPmdl
dERvdWJsZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCkpOworICAgICAgICAgICAg
aWYgKHByaW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRnJvbUltYWdlKQorICAg
ICAgICAgICAgICAgIGZsYWdzID0gSW1hZ2VSZXNvbHV0aW9uRnJvbUltYWdlOworICAgICAgICAg
ICAgZWxzZQorICAgICAgICAgICAgICAgIHJlc29sdXRpb24gPSBwcmltaXRpdmVWYWx1ZS0+Z2V0
RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYKTsKICAgICAgICAgfQorICAg
ICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRJbWFnZVJlc29sdXRpb25GbGFncyhmbGFn
cyk7CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldEltYWdlUmVzb2x1dGlvbihy
ZXNvbHV0aW9uKTsKICAgICB9CiAKICAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhh
bmRsZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAKaW5kZXggNGEzNjk0ZGViYmJkM2NlZGEwMDUxODcwZTMwMTU1OTcwNDdjNTZmYi4uZWRhZDVi
MTgxYjgyZTlmOGEyZDdlMTYxMmQ5N2Q0ZWEwYTQwM2IzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC00NzQsNiArNDc0LDcgQEAgU3R5
bGVEaWZmZXJlbmNlIFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwg
dW5zaWduZWQmIGNoYW5nZWRDb24KICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5t
X2xpbmVCb3hDb250YWluICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+bV9saW5lQm94Q29u
dGFpbgogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fbGluZUdyaWQgIT0gb3Ro
ZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2xpbmVHcmlkCiAjaWYgRU5BQkxFKENTU19JTUFHRV9S
RVNPTFVUSU9OKQorICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNv
bHV0aW9uRmxhZ3MgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlv
bkZsYWdzCiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlc29sdXRp
b24gIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbgogI2VuZGlm
CiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV9saW5lU25hcCAhPSBvdGhlci0+
cmFyZUluaGVyaXRlZERhdGEtPm1fbGluZVNuYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmgKaW5kZXggNDIzOTUxYWJjYWNlMGQyYjAwMjFlNWRmYWJlN2Y1
MmE4YWI2M2VlOC4uYWYxNTk5MzZmNTMyZjkyMjg0MGU3Zjc0YmE4ZjI3YjJiOWU5MTRjYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTk3NSw2
ICs5NzUsNyBAQCBwdWJsaWM6CiAgICAgRUltYWdlUmVuZGVyaW5nIGltYWdlUmVuZGVyaW5nKCkg
Y29uc3QgeyByZXR1cm4gc3RhdGljX2Nhc3Q8RUltYWdlUmVuZGVyaW5nPihyYXJlSW5oZXJpdGVk
RGF0YS0+bV9pbWFnZVJlbmRlcmluZyk7IH0KIAogI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xV
VElPTikKKyAgICBFSW1hZ2VSZXNvbHV0aW9uIGltYWdlUmVzb2x1dGlvbkZsYWdzKCkgY29uc3Qg
eyByZXR1cm4gc3RhdGljX2Nhc3Q8RUltYWdlUmVzb2x1dGlvbj4ocmFyZUluaGVyaXRlZERhdGEt
Pm1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MpOyB9CiAgICAgZmxvYXQgaW1hZ2VSZXNvbHV0aW9uKCkg
Y29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uOyB9CiAj
ZW5kaWYKICAgICAKQEAgLTExNDUsNiArMTE0Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldElt
YWdlUmVuZGVyaW5nKEVJbWFnZVJlbmRlcmluZyB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERh
dGEsIG1faW1hZ2VSZW5kZXJpbmcsIHYpIH0KIAogI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xV
VElPTikKKyAgICB2b2lkIHNldEltYWdlUmVzb2x1dGlvbkZsYWdzKEVJbWFnZVJlc29sdXRpb24g
dikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2ltYWdlUmVzb2x1dGlvbkZsYWdzLCB2
KSB9CiAgICAgdm9pZCBzZXRJbWFnZVJlc29sdXRpb24oZmxvYXQgZikgeyBTRVRfVkFSKHJhcmVJ
bmhlcml0ZWREYXRhLCBtX2ltYWdlUmVzb2x1dGlvbiwgZikgfQogI2VuZGlmCiAKQEAgLTE2NTUs
NiArMTY1Nyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVGV4dEVtcGhhc2lzUG9zaXRpb24gaW5p
dGlhbFRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgeyByZXR1cm4gVGV4dEVtcGhhc2lzUG9zaXRpb25P
dmVyOyB9CiAgICAgc3RhdGljIExpbmVCb3hDb250YWluIGluaXRpYWxMaW5lQm94Q29udGFpbigp
IHsgcmV0dXJuIExpbmVCb3hDb250YWluQmxvY2sgfCBMaW5lQm94Q29udGFpbklubGluZSB8IExp
bmVCb3hDb250YWluUmVwbGFjZWQ7IH0KICAgICBzdGF0aWMgRUltYWdlUmVuZGVyaW5nIGluaXRp
YWxJbWFnZVJlbmRlcmluZygpIHsgcmV0dXJuIEltYWdlUmVuZGVyaW5nQXV0bzsgfQorICAgIHN0
YXRpYyBFSW1hZ2VSZXNvbHV0aW9uIGluaXRpYWxJbWFnZVJlc29sdXRpb25GbGFncygpIHsgcmV0
dXJuIEltYWdlUmVzb2x1dGlvbkluaXRpYWw7IH0KICAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbElt
YWdlUmVzb2x1dGlvbigpIHsgcmV0dXJuIDE7IH0KICAgICBzdGF0aWMgU3R5bGVJbWFnZSogaW5p
dGlhbEJvcmRlckltYWdlU291cmNlKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBTdHlsZUlt
YWdlKiBpbml0aWFsTWFza0JveEltYWdlU291cmNlKCkgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApp
bmRleCBkY2Q1MmRjMzBjNmVlZmFlNGFkM2MyZjI4NmRkMGI4YTZkNGIwNDRhLi5iOGMxYmViYTFh
ZGFiYzgxOWNmN2Y4YmU0NjE4MWI1NzE3N2NiZmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNDU0LDYgKzQ1
NCw4IEBAIGVudW0gVGV4dE92ZXJmbG93IHsgVGV4dE92ZXJmbG93Q2xpcCA9IDAsIFRleHRPdmVy
Zmxvd0VsbGlwc2lzIH07CiAKIGVudW0gRUltYWdlUmVuZGVyaW5nIHsgSW1hZ2VSZW5kZXJpbmdB
dXRvLCBJbWFnZVJlbmRlcmluZ09wdGltaXplU3BlZWQsIEltYWdlUmVuZGVyaW5nT3B0aW1pemVR
dWFsaXR5LCBJbWFnZVJlbmRlcmluZ09wdGltaXplQ29udHJhc3QgfTsKIAorZW51bSBFSW1hZ2VS
ZXNvbHV0aW9uIHsgSW1hZ2VSZXNvbHV0aW9uSW5pdGlhbCA9IDAsIEltYWdlUmVzb2x1dGlvbkZy
b21JbWFnZSB9OworCiBlbnVtIE9yZGVyIHsgTG9naWNhbE9yZGVyID0gMCwgVmlzdWFsT3JkZXIg
fTsKIAogZW51bSBSZWdpb25PdmVyZmxvdyB7IEF1dG9SZWdpb25PdmVyZmxvdywgQnJlYWtSZWdp
b25PdmVyZmxvdyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmluZGV4IDdmMTQ3MzhiOTI3YzlkYzU4NzU3
MmVhYzRiMjU0ODM1MGZjZThkMTguLjkyMmM3ZjdiNTc5NzIzMDdhYzQ2YzBmOWYyYzliMThlMTU5
MmIzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTU4LDYgKzU4LDkgQEAgU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YSgpCiAjaWYgRU5BQkxFKE9WRVJGTE9X
X1NDUk9MTElORykKICAgICAsIHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoUmVuZGVyU3R5bGU6
OmluaXRpYWxVc2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKCkpCiAjZW5kaWYKKyNpZiBFTkFCTEUo
Q1NTX0lNQUdFX1JFU09MVVRJT04pCisgICAgLCBtX2ltYWdlUmVzb2x1dGlvbkZsYWdzKFJlbmRl
clN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uRmxhZ3MoKSkKKyNlbmRpZgogICAgICwgaHlw
aGVuYXRpb25MaW1pdEJlZm9yZSgtMSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRlcigtMSkK
ICAgICAsIGh5cGhlbmF0aW9uTGltaXRMaW5lcygtMSkKQEAgLTExMCw2ICsxMTMsOSBAQCBTdHls
ZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFy
ZUluaGVyaXRlZERhdGEmIG8pCiAjaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykKICAgICAs
IHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoby51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKQog
I2VuZGlmCisjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQorICAgICwgbV9pbWFnZVJl
c29sdXRpb25GbGFncyhvLm1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MpCisjZW5kaWYKICAgICAsIGh5
cGhlbmF0aW9uU3RyaW5nKG8uaHlwaGVuYXRpb25TdHJpbmcpCiAgICAgLCBoeXBoZW5hdGlvbkxp
bWl0QmVmb3JlKG8uaHlwaGVuYXRpb25MaW1pdEJlZm9yZSkKICAgICAsIGh5cGhlbmF0aW9uTGlt
aXRBZnRlcihvLmh5cGhlbmF0aW9uTGltaXRBZnRlcikKQEAgLTE4OSw2ICsxOTUsNyBAQCBib29s
IFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YSYgbykgY29uc3QKICAgICAgICAgJiYgbV9saW5lR3JpZCA9PSBvLm1fbGluZUdyaWQK
ICAgICAgICAgJiYgbV9pbWFnZVJlbmRlcmluZyA9PSBvLm1faW1hZ2VSZW5kZXJpbmcKICNpZiBF
TkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCisgICAgICAgICYmIG1faW1hZ2VSZXNvbHV0aW9u
RmxhZ3MgPT0gby5tX2ltYWdlUmVzb2x1dGlvbkZsYWdzCiAgICAgICAgICYmIG1faW1hZ2VSZXNv
bHV0aW9uID09IG8ubV9pbWFnZVJlc29sdXRpb24KICNlbmRpZgogICAgICAgICAmJiBtX2xpbmVT
bmFwID09IG8ubV9saW5lU25hcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKaW5kZXggOGI1NGQxOTdhZjUyZDU4ZjJl
OTI2Yzk1ZThjMzM1MDRjZWIyMTJlYS4uOGVmYzllM2JmMTY3YTRlYmI3NDBjMDM2ZjgxZjNhNjc3
M2VmZDhmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxl
UmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBAIC05Niw2ICs5Niw5IEBAIHB1YmxpYzoKICNpZiBF
TkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HKQogICAgIHVuc2lnbmVkIHVzZVRvdWNoT3ZlcmZsb3dT
Y3JvbGxpbmc6IDE7CiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCisg
ICAgdW5zaWduZWQgbV9pbWFnZVJlc29sdXRpb25GbGFncyA6IDE7IC8vIEVJbWFnZVJlc29sdXRp
b24KKyNlbmRpZgogCiAgICAgQXRvbWljU3RyaW5nIGh5cGhlbmF0aW9uU3RyaW5nOwogICAgIHNo
b3J0IGh5cGhlbmF0aW9uTGltaXRCZWZvcmU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGIwNzUwZmExNzRkZjA3MjBlYzA3
ZWRhMjIyNTEyMzQ1YjdlYWJmMS4uMGVkZWYxMGNjM2FhNGZmMDQxNjkzMTM3ZGUyMzU3NzNmNWU4
ODIxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTA2LTEyICBEYXZpZCBCYXJyICA8ZGF2
aWRiYXJyQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZnJvbS1pbWFnZSB0byBjc3MzLWlt
YWdlcyBpbWFnZS1yZXNvbHV0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04NTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbi9pbWFnZS1yZXNvbHV0aW9u
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdl
LXJlc29sdXRpb24uaHRtbDoKKwogMjAxMi0wNi0xMSAgRGF2aWQgQmFyciAgPGRhdmlkYmFyckBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGNzczMtaW1hZ2VzIGltYWdlLXJlc29sdXRpb24g
KGRwcHggb25seSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltYWdlLXJlc29s
dXRpb24vaW1hZ2UtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDFh
MWY2NjQ0Njk1MWJmYjQ2MWYyOTY1MjMzM2ZjZmQyY2M4MGM0N2QuLmY3ZjZhMjA5MjNkZTk2YThj
MTRlYjg5NzlhNmU5NDAxNTg0YjQ4NGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3Nz
L2ltYWdlLXJlc29sdXRpb24vaW1hZ2UtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbi9pbWFnZS1yZXNvbHV0aW9uLWV4cGVj
dGVkLnR4dApAQCAtMjMsNiArMjMsNDYgQEAgUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgNAogUEFT
UyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDQKIFRFU1QgIiIKIFBBU1MgaW1nLnN0eWxlLmNzc1RleHQg
aXMgIiIKK1RFU1QgIjBkcHB4IGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlz
ICIiCitURVNUICJmcm9tLWltYWdlIDBkcHB4IgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAi
IgorVEVTVCAiMWRwcHggZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImlt
YWdlLXJlc29sdXRpb246IDFkcHB4IGZyb20taW1hZ2U7ICIKK0ZBSUwgaW1nLm9mZnNldFdpZHRo
IHNob3VsZCBiZSAyMS4gV2FzIDE2LgorRkFJTCBpbWcub2Zmc2V0SGVpZ2h0IHNob3VsZCBiZSAy
MS4gV2FzIDE2LgorVEVTVCAiZnJvbS1pbWFnZSAxZHBweCIKK1BBU1MgaW1nLnN0eWxlLmNzc1Rl
eHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMWRwcHg7ICIKK0ZBSUwgaW1nLm9m
ZnNldFdpZHRoIHNob3VsZCBiZSAyMS4gV2FzIDE2LgorRkFJTCBpbWcub2Zmc2V0SGVpZ2h0IHNo
b3VsZCBiZSAyMS4gV2FzIDE2LgorVEVTVCAiMmRwcHggZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0
eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDJkcHB4IGZyb20taW1hZ2U7ICIKK0ZB
SUwgaW1nLm9mZnNldFdpZHRoIHNob3VsZCBiZSAyMS4gV2FzIDguCitGQUlMIGltZy5vZmZzZXRI
ZWlnaHQgc2hvdWxkIGJlIDIxLiBXYXMgOC4KK1RFU1QgImZyb20taW1hZ2UgMmRwcHgiCitQQVNT
IGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDJkcHB4
OyAiCitGQUlMIGltZy5vZmZzZXRXaWR0aCBzaG91bGQgYmUgMjEuIFdhcyA4LgorRkFJTCBpbWcu
b2Zmc2V0SGVpZ2h0IHNob3VsZCBiZSAyMS4gV2FzIDguCitURVNUICIzZHBweCBmcm9tLWltYWdl
IgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogM2RwcHggZnJv
bS1pbWFnZTsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGggc2hvdWxkIGJlIDIxLiBXYXMgNS4KK0ZB
SUwgaW1nLm9mZnNldEhlaWdodCBzaG91bGQgYmUgMjEuIFdhcyA1LgorVEVTVCAiZnJvbS1pbWFn
ZSAzZHBweCIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZy
b20taW1hZ2UgM2RwcHg7ICIKK0ZBSUwgaW1nLm9mZnNldFdpZHRoIHNob3VsZCBiZSAyMS4gV2Fz
IDUuCitGQUlMIGltZy5vZmZzZXRIZWlnaHQgc2hvdWxkIGJlIDIxLiBXYXMgNS4KK1RFU1QgIjRk
cHB4IGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0
aW9uOiA0ZHBweCBmcm9tLWltYWdlOyAiCitGQUlMIGltZy5vZmZzZXRXaWR0aCBzaG91bGQgYmUg
MjEuIFdhcyA0LgorRkFJTCBpbWcub2Zmc2V0SGVpZ2h0IHNob3VsZCBiZSAyMS4gV2FzIDQuCitU
RVNUICJmcm9tLWltYWdlIDRkcHB4IgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2Ut
cmVzb2x1dGlvbjogZnJvbS1pbWFnZSA0ZHBweDsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGggc2hv
dWxkIGJlIDIxLiBXYXMgNC4KK0ZBSUwgaW1nLm9mZnNldEhlaWdodCBzaG91bGQgYmUgMjEuIFdh
cyA0LgorVEVTVCAiZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdl
LXJlc29sdXRpb246IGZyb20taW1hZ2U7ICIKK0ZBSUwgaW1nLm9mZnNldFdpZHRoIHNob3VsZCBi
ZSAyMS4gV2FzIDE2LgorRkFJTCBpbWcub2Zmc2V0SGVpZ2h0IHNob3VsZCBiZSAyMS4gV2FzIDE2
LgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29s
dXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24vaW1hZ2Ut
cmVzb2x1dGlvbi5odG1sCmluZGV4IGVjYjVkMjdlODMxOWUwNjg4Njk1ZGY3YjhhOGEyZjUxODI0
MGY3YTguLjc0ODc2NGY5OTVlMTQxM2E0OTRlYjdhYTEzZDYxNGJkZGQ2YTIzZDcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24vaW1hZ2UtcmVzb2x1dGlv
bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24vaW1hZ2Ut
cmVzb2x1dGlvbi5odG1sCkBAIC00OCw2ICs0OCwyMiBAQCBmdW5jdGlvbiBjb21wdXRlUmVzb2x1
dGlvbihyZXNvbHV0aW9uLCBpbWdSZXNvbHV0aW9uRHBweCkKICAgICByZXR1cm4gZHBweDsKIH0K
IAorZnVuY3Rpb24gcGVybXV0ZTIocnVsZSkgeworICAgIHZhciBzID0gcnVsZS50cmltKCkuc3Bs
aXQoJyAnKTsKKyAgICBpZiAocy5sZW5ndGggPT0gMSkKKyAgICAgICAgcmV0dXJuIHM7CisgICAg
cmV0dXJuIFtzLmpvaW4oJyAnKSwgW3NbMV0sIHNbMF1dLmpvaW4oJyAnKV07Cit9CisKK2Z1bmN0
aW9uIGdlbmVyYXRlVGVzdHMocmVzb2x1dGlvbnMpIHsKKyAgICB2YXIgdGVzdHMgPSBbXTsKKyAg
ICB0ZXN0cy5wdXNoLmFwcGx5KHRlc3RzLCByZXNvbHV0aW9ucyk7CisgICAgcmVzb2x1dGlvbnMu
Zm9yRWFjaChmdW5jdGlvbihyZXNvbHV0aW9uKSB7CisgICAgICAgIHRlc3RzLnB1c2guYXBwbHko
dGVzdHMsIHBlcm11dGUyKHJlc29sdXRpb24gKyAnIGZyb20taW1hZ2UnKSk7CisgICAgfSk7Cisg
ICAgcmV0dXJuIHRlc3RzOworfQorCiB2YXIgaW1nVXJsID0gJy4uLy4uL2ltYWdlcy9yZXNvdXJj
ZXMvZ3JlZW4uanBnJzsKIHZhciBpbWdXaWR0aFB4ID0gMTY7CiB2YXIgaW1nSGVpZ2h0UHggPSAx
NjsKQEAgLTYyLDcgKzc4LDcgQEAgaW1nLnNyYyA9IGltZ1VybDsKIHZhciByZXNvbHV0aW9ucyA9
IFsnMGRwcHgnLCAnMWRwcHgnLCAnMmRwcHgnLCAnM2RwcHgnLCAnNGRwcHgnLCAnJ107CiAKIGlt
Zy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICByZXNvbHV0aW9ucy5mb3JFYWNoKGZ1bmN0aW9u
KHRlc3QpIHsKKyAgICBnZW5lcmF0ZVRlc3RzKHJlc29sdXRpb25zKS5mb3JFYWNoKGZ1bmN0aW9u
KHRlc3QpIHsKICAgICAgICAgdmFyIGRwcHggPSBjb21wdXRlUmVzb2x1dGlvbih0ZXN0LCBpbWdS
ZXNvbHV0aW9uRHBweCk7CiAgICAgICAgIGltZy5zdHlsZS5pbWFnZVJlc29sdXRpb24gPSAnJzsK
ICAgICAgICAgaW1nLnN0eWxlLmltYWdlUmVzb2x1dGlvbiA9IHRlc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147457</attachid>
            <date>2012-06-13 18:10:48 -0700</date>
            <delta_ts>2012-06-14 21:59:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85451-20120614111046.patch</filename>
            <type>text/plain</type>
            <size>21143</size>
            <attacher name="David Barr">davidbarr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMjUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDQ2NzllZDU0ODI0MDBh
ZDdhOTMyNzRiNDg1OTk1YWZmZTc3ZDg3ZS4uYWFmZWViZmExYWM4MWQ5NGJjZDg4NDNlYmM3ZmQy
ZTAxNDIxOWY2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTEzICBEYXZp
ZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZnJvbS1pbWFn
ZSB0byBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjc3MzLWltYWdlcyBtb2R1bGUgaXMgYXQgY2Fu
ZGlkYXRlIHJlY29tbWVuZGF0aW9uLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEy
L0NSLWNzczMtaW1hZ2VzLTIwMTIwNDE3LyNpbWFnZS1yZXNvbHV0aW9uCisKKyAgICAgICAgTm8g
bmV3IHRlc3RzOyBleHRlbmRlZCBmYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29s
dXRpb24uaHRtbAorCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6IEFjY2VwdCBmcm9tLWlt
YWdlIGlkZW50aWZpZXIgaW4gaW1hZ2UtcmVzb2x1dGlvbiBwcm9wZXJ0eS4KKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VJbWFnZVJlc29sdXRpb24pOiBNYXAgQ1NTVmFsdWVGcm9t
SW1hZ2UgdG8gaWRlbnRpZmllciB2YWx1ZSBmcm9tIGNzc1ZhbHVlUG9vbC4KKyAgICAgICAgKiBj
c3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbjogQWRkIGZyb20taW1hZ2UuCisgICAgICAgICogY3NzL1N0
eWxlQnVpbGRlci5jcHA6IEV4dGVuZCBBcHBseVByb3BlcnR5SW1hZ2VSZXNvbHV0aW9uIHRvIGFw
cGx5IFJlbmRlclN0eWxlOjppbWFnZVJlc29sdXRpb25GbGFncy4KKyAgICAgICAgKFdlYkNvcmU6
OkFwcGx5UHJvcGVydHlJbWFnZVJlc29sdXRpb246OmFwcGx5SW5oZXJpdFZhbHVlKTogQXBwbHkg
UmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvbkZsYWdzLgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbjo6YXBwbHlJbml0aWFsVmFsdWUpOiBBcHBseSBSZW5k
ZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uRmxhZ3MuCisgICAgICAgIChXZWJDb3JlOjpBcHBseVBy
b3BlcnR5SW1hZ2VSZXNvbHV0aW9uOjphcHBseVZhbHVlKTogTWFwIENTU1ZhbHVlRnJvbUltYWdl
IHRvIEltYWdlUmVzb2x1dGlvbkZyb21JbWFnZS4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwOiBJbmNsdWRlIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om1faW1hZ2VS
ZXNvbHV0aW9uRmxhZ3MgaW4gc3R5bGUgZGlmZi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0
eWxlOjpkaWZmKTogTWFwIGNoYW5nZSBpbiBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjptX2ltYWdl
UmVzb2x1dGlvbkZsYWdzIHRvIFN0eWxlRGlmZmVyZW5jZUxheW91dC4KKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDogQWRkIFJlbmRlclN0eWxlOjppbWFnZVJlc29sdXRp
b25GbGFncywgUmVuZGVyU3R5bGU6OnNldEltYWdlUmVzb2x1dGlvbkZsYWdzLCBSZW5kZXJTdHls
ZTo6aW5pdGlhbEltYWdlUmVzb2x1dGlvbkZsYWdzLgorICAgICAgICAqIHJlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOiBBZGQgZW51bSBFSW1hZ2VSZXNvbHV0aW9uLgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDogQWRkIFN0
eWxlUmFyZUluaGVyaXRlZERhdGE6Om1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MuCisgICAgICAgIChX
ZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKTog
QWRkIG1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MgdG8gZGVmYXVsdCBhbmQgY29weSBjb25zdHJ1Y3Rv
ci4KKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0p
OiBJbmNsdWRlIG1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MgaW4gY29tcGFyaXNvbi4KKyAgICAgICAg
KiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOiBBZGQgU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YTo6bV9pbWFnZVJlc29sdXRpb25GbGFncy4KKyAgICAgICAgKFN0eWxlUmFy
ZUluaGVyaXRlZERhdGEpOiBBZGQgMS1iaXQgZmllbGQgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6
bV9pbWFnZVJlc29sdXRpb25GbGFncy4KKwogMjAxMi0wNi0xMiAgRGF2aWQgQmFyciAgPGRhdmlk
YmFyckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIGRwY20gdG8gY3NzMy1pbWFnZXMgaW1h
Z2UtcmVzb2x1dGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAxNGE5NDllZGY3MDhi
YWUwNDg0ZjUzMmZjNDU1NjZmYjg1YTE4YjcyLi5hZmMwNmQ3NTQxZmFiNjMyNzNmMTVhZDI2OTVk
ZTJkZTAyYjc1NDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNjg4NSwxMCArNjg4
NSwxNCBAQCBQYXNzUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlSW1hZ2VSZXNvbHV0
aW9uKENTU1BhcnNlclZhbHVlTGlzdCogdmFsdWVMaQogewogICAgIFJlZlB0cjxDU1NWYWx1ZUxp
c3Q+IGxpc3QgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7CiAgICAgYm9v
bCBoYXZlUmVzb2x1dGlvbiA9IGZhbHNlOworICAgIGJvb2wgaGF2ZUZyb21JbWFnZSA9IGZhbHNl
OwogCiAgICAgQ1NTUGFyc2VyVmFsdWUqIHZhbHVlID0gdmFsdWVMaXN0LT5jdXJyZW50KCk7CiAg
ICAgd2hpbGUgKHZhbHVlKSB7Ci0gICAgICAgIGlmICghaGF2ZVJlc29sdXRpb24gJiYgdmFsaWRV
bml0KHZhbHVlLCBGUmVzb2x1dGlvbiB8IEZOb25OZWcpICYmIHZhbHVlLT5mVmFsdWUgPiAwKSB7
CisgICAgICAgIGlmICghaGF2ZUZyb21JbWFnZSAmJiB2YWx1ZS0+aWQgPT0gQ1NTVmFsdWVGcm9t
SW1hZ2UpIHsKKyAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjc3NWYWx1ZVBvb2woKS5jcmVhdGVJ
ZGVudGlmaWVyVmFsdWUodmFsdWUtPmlkKSk7CisgICAgICAgICAgICBoYXZlRnJvbUltYWdlID0g
dHJ1ZTsKKyAgICAgICAgfSBlbHNlIGlmICghaGF2ZVJlc29sdXRpb24gJiYgdmFsaWRVbml0KHZh
bHVlLCBGUmVzb2x1dGlvbiB8IEZOb25OZWcpICYmIHZhbHVlLT5mVmFsdWUgPiAwKSB7CiAgICAg
ICAgICAgICBsaXN0LT5hcHBlbmQoY3JlYXRlUHJpbWl0aXZlTnVtZXJpY1ZhbHVlKHZhbHVlKSk7
CiAgICAgICAgICAgICBoYXZlUmVzb2x1dGlvbiA9IHRydWU7CiAgICAgICAgIH0gZWxzZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4gYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgppbmRleCA5OGIyMGMzYjBjMjA5Y2M0ODFh
NjNkMDYzMWY0NTU1MjBiN2EyZGI5Li42Zjk2YTA0MTAzNzZmNzIxMzY0NWY2MmYwMTJjOTE2M2Ni
YWMzZjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5p
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWVLZXl3b3Jkcy5pbgpAQCAtOTI0LDMg
KzkyNCw3IEBAIGZpbHRlci1ib3gKIGRldGFjaGVkCiAjZW5kaWYgLy8gQ1NTX1NIQURFUlMKICNl
bmRpZiAvLyBDU1NfRklMVEVSUworCisjaWYgZGVmaW5lZChFTkFCTEVfQ1NTX0lNQUdFX1JFU09M
VVRJT04pICYmIEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTgorZnJvbS1pbWFnZQorI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCmluZGV4IDU2NDY3N2Y5Y2Q0YWQ4N2FhNzM1
NzRlYTRlNGMwMTI4NjgxOWU3YTcuLjRjNzUwNDAwNmVhNGNjNmMxMGI1OTg3N2YwMjcxYTQ5OGFi
NjBkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZUJ1aWxkZXIuY3BwCkBAIC0xNzcyLDExICsxNzcy
LDEzIEBAIGNsYXNzIEFwcGx5UHJvcGVydHlJbWFnZVJlc29sdXRpb24gewogcHVibGljOgogICAg
IHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFZhbHVlKFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2
ZXIpCiAgICAgeworICAgICAgICBBcHBseVByb3BlcnR5RGVmYXVsdEJhc2U8RUltYWdlUmVzb2x1
dGlvbiwgJlJlbmRlclN0eWxlOjppbWFnZVJlc29sdXRpb25GbGFncywgRUltYWdlUmVzb2x1dGlv
biwgJlJlbmRlclN0eWxlOjpzZXRJbWFnZVJlc29sdXRpb25GbGFncywgRUltYWdlUmVzb2x1dGlv
biwgJlJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uRmxhZ3M+OjphcHBseUluaGVy
aXRWYWx1ZShzdHlsZVJlc29sdmVyKTsKICAgICAgICAgQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNl
PGZsb2F0LCAmUmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvbiwgZmxvYXQsICZSZW5kZXJTdHls
ZTo6c2V0SW1hZ2VSZXNvbHV0aW9uLCBmbG9hdCwgJlJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VS
ZXNvbHV0aW9uPjo6YXBwbHlJbmhlcml0VmFsdWUoc3R5bGVSZXNvbHZlcik7CiAgICAgfQogCiAg
ICAgc3RhdGljIHZvaWQgYXBwbHlJbml0aWFsVmFsdWUoU3R5bGVSZXNvbHZlciogc3R5bGVSZXNv
bHZlcikKICAgICB7CisgICAgICAgIEFwcGx5UHJvcGVydHlEZWZhdWx0QmFzZTxFSW1hZ2VSZXNv
bHV0aW9uLCAmUmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvbkZsYWdzLCBFSW1hZ2VSZXNvbHV0
aW9uLCAmUmVuZGVyU3R5bGU6OnNldEltYWdlUmVzb2x1dGlvbkZsYWdzLCBFSW1hZ2VSZXNvbHV0
aW9uLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlc29sdXRpb25GbGFncz46OmFwcGx5SW5p
dGlhbFZhbHVlKHN0eWxlUmVzb2x2ZXIpOwogICAgICAgICBBcHBseVByb3BlcnR5RGVmYXVsdEJh
c2U8ZmxvYXQsICZSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uLCBmbG9hdCwgJlJlbmRlclN0
eWxlOjpzZXRJbWFnZVJlc29sdXRpb24sIGZsb2F0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFn
ZVJlc29sdXRpb24+OjphcHBseUluaXRpYWxWYWx1ZShzdHlsZVJlc29sdmVyKTsKICAgICB9CiAK
QEAgLTE3ODUsMTMgKzE3ODcsMjAgQEAgcHVibGljOgogICAgICAgICBpZiAoIXZhbHVlLT5pc1Zh
bHVlTGlzdCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBDU1NWYWx1ZUxpc3QqIHZh
bHVlTGlzdCA9IHN0YXRpY19jYXN0PENTU1ZhbHVlTGlzdCo+KHZhbHVlKTsKKyAgICAgICAgRUlt
YWdlUmVzb2x1dGlvbiBmbGFncyA9IFJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9u
RmxhZ3MoKTsKKyAgICAgICAgZG91YmxlIHJlc29sdXRpb24gPSBSZW5kZXJTdHlsZTo6aW5pdGlh
bEltYWdlUmVzb2x1dGlvbigpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVl
TGlzdC0+bGVuZ3RoKCk7IGkrKykgewogICAgICAgICAgICAgQ1NTVmFsdWUqIGl0ZW0gPSB2YWx1
ZUxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soaSk7CiAgICAgICAgICAgICBpZiAoIWl0ZW0t
PmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1By
aW1pdGl2ZVZhbHVlKj4oaXRlbSk7Ci0gICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgp
LT5zZXRJbWFnZVJlc29sdXRpb24ocHJpbWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKENTU1By
aW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCkpOworICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVl
LT5nZXRJZGVudCgpID09IENTU1ZhbHVlRnJvbUltYWdlKQorICAgICAgICAgICAgICAgIGZsYWdz
ID0gSW1hZ2VSZXNvbHV0aW9uRnJvbUltYWdlOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIHJlc29sdXRpb24gPSBwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJp
bWl0aXZlVmFsdWU6OkNTU19EUFBYKTsKICAgICAgICAgfQorICAgICAgICBzdHlsZVJlc29sdmVy
LT5zdHlsZSgpLT5zZXRJbWFnZVJlc29sdXRpb25GbGFncyhmbGFncyk7CisgICAgICAgIHN0eWxl
UmVzb2x2ZXItPnN0eWxlKCktPnNldEltYWdlUmVzb2x1dGlvbihyZXNvbHV0aW9uKTsKICAgICB9
CiAKICAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRsZXIoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggZDAyYTg3NWNl
M2FiMzM1YmM5YzdjMmZiNDg4NjcyNGJlNDFiMDNmZi4uZmRmYjkxOGJlYjY4MzdlNTNiOTNiMjRm
YzAyMTU2N2IwOWQ4NzMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwCkBAIC00NzMsNiArNDczLDcgQEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRl
clN0eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmIGNoYW5nZWRD
b24KICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2xpbmVCb3hDb250YWluICE9
IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+bV9saW5lQm94Q29udGFpbgogICAgICAgICAgICAg
fHwgcmFyZUluaGVyaXRlZERhdGEtPm1fbGluZUdyaWQgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWRE
YXRhLT5tX2xpbmVHcmlkCiAjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQorICAgICAg
ICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MgIT0gb3Ro
ZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbkZsYWdzCiAgICAgICAgICAg
ICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlc29sdXRpb24gIT0gb3RoZXItPnJhcmVJ
bmhlcml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbgogI2VuZGlmCiAgICAgICAgICAgICB8fCBy
YXJlSW5oZXJpdGVkRGF0YS0+bV9saW5lU25hcCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEt
Pm1fbGluZVNuYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmgKaW5kZXggOWVkN2Y5MWVkZjdlODQzOGRkNGNhODc3MWE1ZGM0ZDA0MTVhYzE4Ni4uOWI0OWM0
OWMyMzQyOWM1OGM0N2I4NDlhNWUxZTlhNWE2YWE0NTgzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTk4Miw2ICs5ODIsNyBAQCBwdWJsaWM6
CiAgICAgRUltYWdlUmVuZGVyaW5nIGltYWdlUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gc3Rh
dGljX2Nhc3Q8RUltYWdlUmVuZGVyaW5nPihyYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlbmRl
cmluZyk7IH0KIAogI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikKKyAgICBFSW1hZ2VS
ZXNvbHV0aW9uIGltYWdlUmVzb2x1dGlvbkZsYWdzKCkgY29uc3QgeyByZXR1cm4gc3RhdGljX2Nh
c3Q8RUltYWdlUmVzb2x1dGlvbj4ocmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9u
RmxhZ3MpOyB9CiAgICAgZmxvYXQgaW1hZ2VSZXNvbHV0aW9uKCkgY29uc3QgeyByZXR1cm4gcmFy
ZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uOyB9CiAjZW5kaWYKICAgICAKQEAgLTEx
NTIsNiArMTE1Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEltYWdlUmVuZGVyaW5nKEVJbWFn
ZVJlbmRlcmluZyB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1faW1hZ2VSZW5kZXJp
bmcsIHYpIH0KIAogI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikKKyAgICB2b2lkIHNl
dEltYWdlUmVzb2x1dGlvbkZsYWdzKEVJbWFnZVJlc29sdXRpb24gdikgeyBTRVRfVkFSKHJhcmVJ
bmhlcml0ZWREYXRhLCBtX2ltYWdlUmVzb2x1dGlvbkZsYWdzLCB2KSB9CiAgICAgdm9pZCBzZXRJ
bWFnZVJlc29sdXRpb24oZmxvYXQgZikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2lt
YWdlUmVzb2x1dGlvbiwgZikgfQogI2VuZGlmCiAKQEAgLTE2NjQsNiArMTY2Niw3IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgVGV4dEVtcGhhc2lzUG9zaXRpb24gaW5pdGlhbFRleHRFbXBoYXNpc1Bv
c2l0aW9uKCkgeyByZXR1cm4gVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyOyB9CiAgICAgc3RhdGlj
IExpbmVCb3hDb250YWluIGluaXRpYWxMaW5lQm94Q29udGFpbigpIHsgcmV0dXJuIExpbmVCb3hD
b250YWluQmxvY2sgfCBMaW5lQm94Q29udGFpbklubGluZSB8IExpbmVCb3hDb250YWluUmVwbGFj
ZWQ7IH0KICAgICBzdGF0aWMgRUltYWdlUmVuZGVyaW5nIGluaXRpYWxJbWFnZVJlbmRlcmluZygp
IHsgcmV0dXJuIEltYWdlUmVuZGVyaW5nQXV0bzsgfQorICAgIHN0YXRpYyBFSW1hZ2VSZXNvbHV0
aW9uIGluaXRpYWxJbWFnZVJlc29sdXRpb25GbGFncygpIHsgcmV0dXJuIEltYWdlUmVzb2x1dGlv
bkluaXRpYWw7IH0KICAgICBzdGF0aWMgZmxvYXQgaW5pdGlhbEltYWdlUmVzb2x1dGlvbigpIHsg
cmV0dXJuIDE7IH0KICAgICBzdGF0aWMgU3R5bGVJbWFnZSogaW5pdGlhbEJvcmRlckltYWdlU291
cmNlKCkgeyByZXR1cm4gMDsgfQogICAgIHN0YXRpYyBTdHlsZUltYWdlKiBpbml0aWFsTWFza0Jv
eEltYWdlU291cmNlKCkgeyByZXR1cm4gMDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaAppbmRleCBkY2Q1MmRjMzBjNmVl
ZmFlNGFkM2MyZjI4NmRkMGI4YTZkNGIwNDRhLi5iOGMxYmViYTFhZGFiYzgxOWNmN2Y4YmU0NjE4
MWI1NzE3N2NiZmU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaApAQCAtNDU0LDYgKzQ1NCw4IEBAIGVudW0gVGV4dE92
ZXJmbG93IHsgVGV4dE92ZXJmbG93Q2xpcCA9IDAsIFRleHRPdmVyZmxvd0VsbGlwc2lzIH07CiAK
IGVudW0gRUltYWdlUmVuZGVyaW5nIHsgSW1hZ2VSZW5kZXJpbmdBdXRvLCBJbWFnZVJlbmRlcmlu
Z09wdGltaXplU3BlZWQsIEltYWdlUmVuZGVyaW5nT3B0aW1pemVRdWFsaXR5LCBJbWFnZVJlbmRl
cmluZ09wdGltaXplQ29udHJhc3QgfTsKIAorZW51bSBFSW1hZ2VSZXNvbHV0aW9uIHsgSW1hZ2VS
ZXNvbHV0aW9uSW5pdGlhbCA9IDAsIEltYWdlUmVzb2x1dGlvbkZyb21JbWFnZSB9OworCiBlbnVt
IE9yZGVyIHsgTG9naWNhbE9yZGVyID0gMCwgVmlzdWFsT3JkZXIgfTsKIAogZW51bSBSZWdpb25P
dmVyZmxvdyB7IEF1dG9SZWdpb25PdmVyZmxvdywgQnJlYWtSZWdpb25PdmVyZmxvdyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVy
aXRlZERhdGEuY3BwCmluZGV4IGNhNjUyZDZlZDk3MzkzNGRiNzA0YzRlZmI4ZDRjZGJlZDVkNGI2
NWQuLjZmMTMzOTIwNjc3MWFiMWMzZDcxMjM4ZWMxODM3ZGEzMDVhMzk0YjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5jcHAKQEAgLTU4LDYgKzU4LDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVS
YXJlSW5oZXJpdGVkRGF0YSgpCiAjaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykKICAgICAs
IHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcoUmVuZGVyU3R5bGU6OmluaXRpYWxVc2VUb3VjaE92
ZXJmbG93U2Nyb2xsaW5nKCkpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJ
T04pCisgICAgLCBtX2ltYWdlUmVzb2x1dGlvbkZsYWdzKFJlbmRlclN0eWxlOjppbml0aWFsSW1h
Z2VSZXNvbHV0aW9uRmxhZ3MoKSkKKyNlbmRpZgogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9y
ZSgtMSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRlcigtMSkKICAgICAsIGh5cGhlbmF0aW9u
TGltaXRMaW5lcygtMSkKQEAgLTExMyw2ICsxMTYsOSBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRh
OjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhKGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8p
CiAjaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykKICAgICAsIHVzZVRvdWNoT3ZlcmZsb3dT
Y3JvbGxpbmcoby51c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5nKQogI2VuZGlmCisjaWYgRU5BQkxF
KENTU19JTUFHRV9SRVNPTFVUSU9OKQorICAgICwgbV9pbWFnZVJlc29sdXRpb25GbGFncyhvLm1f
aW1hZ2VSZXNvbHV0aW9uRmxhZ3MpCisjZW5kaWYKICAgICAsIGh5cGhlbmF0aW9uU3RyaW5nKG8u
aHlwaGVuYXRpb25TdHJpbmcpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlKG8uaHlwaGVu
YXRpb25MaW1pdEJlZm9yZSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRlcihvLmh5cGhlbmF0
aW9uTGltaXRBZnRlcikKQEAgLTE5NSw2ICsyMDEsNyBAQCBib29sIFN0eWxlUmFyZUluaGVyaXRl
ZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykgY29uc3QK
ICAgICAgICAgJiYgbV9saW5lR3JpZCA9PSBvLm1fbGluZUdyaWQKICAgICAgICAgJiYgbV9pbWFn
ZVJlbmRlcmluZyA9PSBvLm1faW1hZ2VSZW5kZXJpbmcKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JF
U09MVVRJT04pCisgICAgICAgICYmIG1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MgPT0gby5tX2ltYWdl
UmVzb2x1dGlvbkZsYWdzCiAgICAgICAgICYmIG1faW1hZ2VSZXNvbHV0aW9uID09IG8ubV9pbWFn
ZVJlc29sdXRpb24KICNlbmRpZgogICAgICAgICAmJiBtX2xpbmVTbmFwID09IG8ubV9saW5lU25h
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUlu
aGVyaXRlZERhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJ
bmhlcml0ZWREYXRhLmgKaW5kZXggMzQxZjNkOTgwMGVhNjMxODMyZWY5MWQ1ZjBjZGZiNjA2MTM2
ZTVlYi4uODE4Y2I4N2E0NjA3OGY3N2MzZGNhZmVlMzlkYjE0YzA1OWY0OTFlMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5oCkBAIC0xMDEsNiArMTAxLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShPVkVSRkxPV19T
Q1JPTExJTkcpCiAgICAgdW5zaWduZWQgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZzogMTsKICNl
bmRpZgorI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikKKyAgICB1bnNpZ25lZCBtX2lt
YWdlUmVzb2x1dGlvbkZsYWdzIDogMTsgLy8gRUltYWdlUmVzb2x1dGlvbgorI2VuZGlmCiAKICAg
ICBBdG9taWNTdHJpbmcgaHlwaGVuYXRpb25TdHJpbmc7CiAgICAgc2hvcnQgaHlwaGVuYXRpb25M
aW1pdEJlZm9yZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCBlODZlNTViY2RmOWIwZmE4MDQwYzc2NDU1NGMxYTJmMTMzZGI3
MzhlLi4xZDcxZDY0M2VjZDc1Zjk5YWI1ZmE4ODk4NmI0OGRlNmJkNTRmNzM1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTItMDYtMTMgIERhdmlkIEJhcnIgIDxkYXZpZGJhcnJAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIEFkZCBmcm9tLWltYWdlIHRvIGNzczMtaW1hZ2VzIGltYWdlLXJlc29s
dXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1
NDUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBm
YXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24vaW1hZ2UtcmVzb2x1dGlvbi5odG1s
OgorCiAyMDEyLTA2LTEyICBEYXZpZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBBZGQgZHBjbSB0byBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRp
b24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbi9p
bWFnZS1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBiNzY3MzFmZWFkM2MyMDRlOWFhMzkw
NjFkOWNmYzI1ODY1NDcwYzk5Li5kYTZjMTczYWY5OTZlMzI0NDMzYmU0NWZjNDNhNTQ0ZWY2MDE1
NGUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2lt
YWdlLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2lt
YWdlLXJlc29sdXRpb24vaW1hZ2UtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTc1LDYgKzc1
LDE1MCBAQCBQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA0CiBQQVNTIGltZy5vZmZzZXRIZWlnaHQg
aXMgNAogVEVTVCAiIgogUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiIgorVEVTVCAiMGRwcHgg
ZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgIiIKK1RFU1QgImZyb20taW1h
Z2UgMGRwcHgiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICIiCitURVNUICIxZHBweCBmcm9t
LWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogMWRw
cHggZnJvbS1pbWFnZTsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGggc2hvdWxkIGJlIDIxLiBXYXMg
MTYuCitGQUlMIGltZy5vZmZzZXRIZWlnaHQgc2hvdWxkIGJlIDIxLiBXYXMgMTYuCitURVNUICJm
cm9tLWltYWdlIDFkcHB4IgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1
dGlvbjogZnJvbS1pbWFnZSAxZHBweDsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGggc2hvdWxkIGJl
IDIxLiBXYXMgMTYuCitGQUlMIGltZy5vZmZzZXRIZWlnaHQgc2hvdWxkIGJlIDIxLiBXYXMgMTYu
CitURVNUICIyZHBweCBmcm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1h
Z2UtcmVzb2x1dGlvbjogMmRwcHggZnJvbS1pbWFnZTsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGgg
c2hvdWxkIGJlIDIxLiBXYXMgOC4KK0ZBSUwgaW1nLm9mZnNldEhlaWdodCBzaG91bGQgYmUgMjEu
IFdhcyA4LgorVEVTVCAiZnJvbS1pbWFnZSAyZHBweCIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQg
aXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMmRwcHg7ICIKK0ZBSUwgaW1nLm9mZnNl
dFdpZHRoIHNob3VsZCBiZSAyMS4gV2FzIDguCitGQUlMIGltZy5vZmZzZXRIZWlnaHQgc2hvdWxk
IGJlIDIxLiBXYXMgOC4KK1RFU1QgIjNkcHB4IGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5j
c3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiAzZHBweCBmcm9tLWltYWdlOyAiCitGQUlMIGlt
Zy5vZmZzZXRXaWR0aCBzaG91bGQgYmUgMjEuIFdhcyA1LgorRkFJTCBpbWcub2Zmc2V0SGVpZ2h0
IHNob3VsZCBiZSAyMS4gV2FzIDUuCitURVNUICJmcm9tLWltYWdlIDNkcHB4IgorUEFTUyBpbWcu
c3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJvbS1pbWFnZSAzZHBweDsgIgor
RkFJTCBpbWcub2Zmc2V0V2lkdGggc2hvdWxkIGJlIDIxLiBXYXMgNS4KK0ZBSUwgaW1nLm9mZnNl
dEhlaWdodCBzaG91bGQgYmUgMjEuIFdhcyA1LgorVEVTVCAiNGRwcHggZnJvbS1pbWFnZSIKK1BB
U1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDRkcHB4IGZyb20taW1h
Z2U7ICIKK0ZBSUwgaW1nLm9mZnNldFdpZHRoIHNob3VsZCBiZSAyMS4gV2FzIDQuCitGQUlMIGlt
Zy5vZmZzZXRIZWlnaHQgc2hvdWxkIGJlIDIxLiBXYXMgNC4KK1RFU1QgImZyb20taW1hZ2UgNGRw
cHgiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWlt
YWdlIDRkcHB4OyAiCitGQUlMIGltZy5vZmZzZXRXaWR0aCBzaG91bGQgYmUgMjEuIFdhcyA0Lgor
RkFJTCBpbWcub2Zmc2V0SGVpZ2h0IHNob3VsZCBiZSAyMS4gV2FzIDQuCitURVNUICIwZHBpIGZy
b20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICIiCitURVNUICJmcm9tLWltYWdl
IDBkcGkiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICIiCitURVNUICI5NmRwaSBmcm9tLWlt
YWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogOTZkcGkg
ZnJvbS1pbWFnZTsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGggc2hvdWxkIGJlIDIxLiBXYXMgMTYu
CitGQUlMIGltZy5vZmZzZXRIZWlnaHQgc2hvdWxkIGJlIDIxLiBXYXMgMTYuCitURVNUICJmcm9t
LWltYWdlIDk2ZHBpIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlv
bjogZnJvbS1pbWFnZSA5NmRwaTsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGggc2hvdWxkIGJlIDIx
LiBXYXMgMTYuCitGQUlMIGltZy5vZmZzZXRIZWlnaHQgc2hvdWxkIGJlIDIxLiBXYXMgMTYuCitU
RVNUICIxOTJkcGkgZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdl
LXJlc29sdXRpb246IDE5MmRwaSBmcm9tLWltYWdlOyAiCitGQUlMIGltZy5vZmZzZXRXaWR0aCBz
aG91bGQgYmUgMjEuIFdhcyA4LgorRkFJTCBpbWcub2Zmc2V0SGVpZ2h0IHNob3VsZCBiZSAyMS4g
V2FzIDguCitURVNUICJmcm9tLWltYWdlIDE5MmRwaSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQg
aXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMTkyZHBpOyAiCitGQUlMIGltZy5vZmZz
ZXRXaWR0aCBzaG91bGQgYmUgMjEuIFdhcyA4LgorRkFJTCBpbWcub2Zmc2V0SGVpZ2h0IHNob3Vs
ZCBiZSAyMS4gV2FzIDguCitURVNUICIyODhkcGkgZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxl
LmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDI4OGRwaSBmcm9tLWltYWdlOyAiCitGQUlM
IGltZy5vZmZzZXRXaWR0aCBzaG91bGQgYmUgMjEuIFdhcyA1LgorRkFJTCBpbWcub2Zmc2V0SGVp
Z2h0IHNob3VsZCBiZSAyMS4gV2FzIDUuCitURVNUICJmcm9tLWltYWdlIDI4OGRwaSIKK1BBU1Mg
aW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMjg4ZHBp
OyAiCitGQUlMIGltZy5vZmZzZXRXaWR0aCBzaG91bGQgYmUgMjEuIFdhcyA1LgorRkFJTCBpbWcu
b2Zmc2V0SGVpZ2h0IHNob3VsZCBiZSAyMS4gV2FzIDUuCitURVNUICIzODRkcGkgZnJvbS1pbWFn
ZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDM4NGRwaSBm
cm9tLWltYWdlOyAiCitGQUlMIGltZy5vZmZzZXRXaWR0aCBzaG91bGQgYmUgMjEuIFdhcyA0Lgor
RkFJTCBpbWcub2Zmc2V0SGVpZ2h0IHNob3VsZCBiZSAyMS4gV2FzIDQuCitURVNUICJmcm9tLWlt
YWdlIDM4NGRwaSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246
IGZyb20taW1hZ2UgMzg0ZHBpOyAiCitGQUlMIGltZy5vZmZzZXRXaWR0aCBzaG91bGQgYmUgMjEu
IFdhcyA0LgorRkFJTCBpbWcub2Zmc2V0SGVpZ2h0IHNob3VsZCBiZSAyMS4gV2FzIDQuCitURVNU
ICIxNTBkcGkgZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJl
c29sdXRpb246IDE1MGRwaSBmcm9tLWltYWdlOyAiCitGQUlMIGltZy5vZmZzZXRXaWR0aCBzaG91
bGQgYmUgMjEuIFdhcyAxMC4KK0ZBSUwgaW1nLm9mZnNldEhlaWdodCBzaG91bGQgYmUgMjEuIFdh
cyAxMC4KK1RFU1QgImZyb20taW1hZ2UgMTUwZHBpIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBp
cyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJvbS1pbWFnZSAxNTBkcGk7ICIKK0ZBSUwgaW1nLm9mZnNl
dFdpZHRoIHNob3VsZCBiZSAyMS4gV2FzIDEwLgorRkFJTCBpbWcub2Zmc2V0SGVpZ2h0IHNob3Vs
ZCBiZSAyMS4gV2FzIDEwLgorVEVTVCAiMzAwZHBpIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHls
ZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiAzMDBkcGkgZnJvbS1pbWFnZTsgIgorRkFJ
TCBpbWcub2Zmc2V0V2lkdGggc2hvdWxkIGJlIDIxLiBXYXMgNS4KK0ZBSUwgaW1nLm9mZnNldEhl
aWdodCBzaG91bGQgYmUgMjEuIFdhcyA1LgorVEVTVCAiZnJvbS1pbWFnZSAzMDBkcGkiCitQQVNT
IGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDMwMGRw
aTsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGggc2hvdWxkIGJlIDIxLiBXYXMgNS4KK0ZBSUwgaW1n
Lm9mZnNldEhlaWdodCBzaG91bGQgYmUgMjEuIFdhcyA1LgorVEVTVCAiNDUwZHBpIGZyb20taW1h
Z2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiA0NTBkcGkg
ZnJvbS1pbWFnZTsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGggc2hvdWxkIGJlIDIxLiBXYXMgMy4K
K0ZBSUwgaW1nLm9mZnNldEhlaWdodCBzaG91bGQgYmUgMjEuIFdhcyAzLgorVEVTVCAiZnJvbS1p
bWFnZSA0NTBkcGkiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9u
OiBmcm9tLWltYWdlIDQ1MGRwaTsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGggc2hvdWxkIGJlIDIx
LiBXYXMgMy4KK0ZBSUwgaW1nLm9mZnNldEhlaWdodCBzaG91bGQgYmUgMjEuIFdhcyAzLgorVEVT
VCAiNjAwZHBpIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1y
ZXNvbHV0aW9uOiA2MDBkcGkgZnJvbS1pbWFnZTsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGggc2hv
dWxkIGJlIDIxLiBXYXMgMi4KK0ZBSUwgaW1nLm9mZnNldEhlaWdodCBzaG91bGQgYmUgMjEuIFdh
cyAyLgorVEVTVCAiZnJvbS1pbWFnZSA2MDBkcGkiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlz
ICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDYwMGRwaTsgIgorRkFJTCBpbWcub2Zmc2V0
V2lkdGggc2hvdWxkIGJlIDIxLiBXYXMgMi4KK0ZBSUwgaW1nLm9mZnNldEhlaWdodCBzaG91bGQg
YmUgMjEuIFdhcyAyLgorVEVTVCAiMGRwY20gZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNz
c1RleHQgaXMgIiIKK1RFU1QgImZyb20taW1hZ2UgMGRwY20iCitQQVNTIGltZy5zdHlsZS5jc3NU
ZXh0IGlzICIiCitURVNUICIzNy43ZHBjbSBmcm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3Nz
VGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogMzcuN2RwY20gZnJvbS1pbWFnZTsgIgorRkFJTCBp
bWcub2Zmc2V0V2lkdGggc2hvdWxkIGJlIDIxLiBXYXMgMTYuCitGQUlMIGltZy5vZmZzZXRIZWln
aHQgc2hvdWxkIGJlIDIxLiBXYXMgMTYuCitURVNUICJmcm9tLWltYWdlIDM3LjdkcGNtIgorUEFT
UyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJvbS1pbWFnZSAzNy43
ZHBjbTsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGggc2hvdWxkIGJlIDIxLiBXYXMgMTYuCitGQUlM
IGltZy5vZmZzZXRIZWlnaHQgc2hvdWxkIGJlIDIxLiBXYXMgMTYuCitURVNUICI3NS41ZHBjbSBm
cm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjog
NzUuNWRwY20gZnJvbS1pbWFnZTsgIgorRkFJTCBpbWcub2Zmc2V0V2lkdGggc2hvdWxkIGJlIDIx
LiBXYXMgOC4KK0ZBSUwgaW1nLm9mZnNldEhlaWdodCBzaG91bGQgYmUgMjEuIFdhcyA4LgorVEVT
VCAiZnJvbS1pbWFnZSA3NS41ZHBjbSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdl
LXJlc29sdXRpb246IGZyb20taW1hZ2UgNzUuNWRwY207ICIKK0ZBSUwgaW1nLm9mZnNldFdpZHRo
IHNob3VsZCBiZSAyMS4gV2FzIDguCitGQUlMIGltZy5vZmZzZXRIZWlnaHQgc2hvdWxkIGJlIDIx
LiBXYXMgOC4KK1RFU1QgIjExMy4zZHBjbSBmcm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3Nz
VGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogMTEzLjNkcGNtIGZyb20taW1hZ2U7ICIKK0ZBSUwg
aW1nLm9mZnNldFdpZHRoIHNob3VsZCBiZSAyMS4gV2FzIDUuCitGQUlMIGltZy5vZmZzZXRIZWln
aHQgc2hvdWxkIGJlIDIxLiBXYXMgNS4KK1RFU1QgImZyb20taW1hZ2UgMTEzLjNkcGNtIgorUEFT
UyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJvbS1pbWFnZSAxMTMu
M2RwY207ICIKK0ZBSUwgaW1nLm9mZnNldFdpZHRoIHNob3VsZCBiZSAyMS4gV2FzIDUuCitGQUlM
IGltZy5vZmZzZXRIZWlnaHQgc2hvdWxkIGJlIDIxLiBXYXMgNS4KK1RFU1QgIjE1MS4xZHBjbSBm
cm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjog
MTUxLjFkcGNtIGZyb20taW1hZ2U7ICIKK0ZBSUwgaW1nLm9mZnNldFdpZHRoIHNob3VsZCBiZSAy
MS4gV2FzIDQuCitGQUlMIGltZy5vZmZzZXRIZWlnaHQgc2hvdWxkIGJlIDIxLiBXYXMgNC4KK1RF
U1QgImZyb20taW1hZ2UgMTUxLjFkcGNtIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1h
Z2UtcmVzb2x1dGlvbjogZnJvbS1pbWFnZSAxNTEuMWRwY207ICIKK0ZBSUwgaW1nLm9mZnNldFdp
ZHRoIHNob3VsZCBiZSAyMS4gV2FzIDQuCitGQUlMIGltZy5vZmZzZXRIZWlnaHQgc2hvdWxkIGJl
IDIxLiBXYXMgNC4KK1RFU1QgImZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlz
ICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlOyAiCitGQUlMIGltZy5vZmZzZXRXaWR0aCBz
aG91bGQgYmUgMjEuIFdhcyAxNi4KK0ZBSUwgaW1nLm9mZnNldEhlaWdodCBzaG91bGQgYmUgMjEu
IFdhcyAxNi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVU
RQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbi9pbWFn
ZS1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9u
L2ltYWdlLXJlc29sdXRpb24uaHRtbAppbmRleCA3ZWIzNTUyNjdiNzM2NGJkMGZiZDk1MmM0Yjhl
MmUxZTMwOGJjMWEwLi5lOTFmZmFiM2E0MWY1MmMzZjg5MWU4ODM5MzMyODM2MDZhNTljM2IyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJl
c29sdXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9u
L2ltYWdlLXJlc29sdXRpb24uaHRtbApAQCAtNDgsNiArNDgsMjIgQEAgZnVuY3Rpb24gY29tcHV0
ZVJlc29sdXRpb24ocmVzb2x1dGlvbiwgaW1nUmVzb2x1dGlvbkRwcHgpCiAgICAgcmV0dXJuIGRw
cHg7CiB9CiAKK2Z1bmN0aW9uIHBlcm11dGUyKHJ1bGUpIHsKKyAgICB2YXIgcyA9IHJ1bGUudHJp
bSgpLnNwbGl0KCcgJyk7CisgICAgaWYgKHMubGVuZ3RoID09IDEpCisgICAgICAgIHJldHVybiBz
OworICAgIHJldHVybiBbcy5qb2luKCcgJyksIFtzWzFdLCBzWzBdXS5qb2luKCcgJyldOworfQor
CitmdW5jdGlvbiBnZW5lcmF0ZVRlc3RzKHJlc29sdXRpb25zKSB7CisgICAgdmFyIHRlc3RzID0g
W107CisgICAgdGVzdHMucHVzaC5hcHBseSh0ZXN0cywgcmVzb2x1dGlvbnMpOworICAgIHJlc29s
dXRpb25zLmZvckVhY2goZnVuY3Rpb24ocmVzb2x1dGlvbikgeworICAgICAgICB0ZXN0cy5wdXNo
LmFwcGx5KHRlc3RzLCBwZXJtdXRlMihyZXNvbHV0aW9uICsgJyBmcm9tLWltYWdlJykpOworICAg
IH0pOworICAgIHJldHVybiB0ZXN0czsKK30KKwogdmFyIGltZ1VybCA9ICcuLi8uLi9pbWFnZXMv
cmVzb3VyY2VzL2dyZWVuLmpwZyc7CiB2YXIgaW1nV2lkdGhQeCA9IDE2OwogdmFyIGltZ0hlaWdo
dFB4ID0gMTY7CkBAIC02NSw3ICs4MSw3IEBAIHZhciByZXNvbHV0aW9ucyA9IFsnMGRwcHgnLCAn
MWRwcHgnLCAnMmRwcHgnLCAnM2RwcHgnLCAnNGRwcHgnLAogICAgICAgICAgICAgICAgICAgICcw
ZHBjbScsICczNy43ZHBjbScsICc3NS41ZHBjbScsICcxMTMuM2RwY20nLCAnMTUxLjFkcGNtJywg
JyddOwogCiBpbWcub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgcmVzb2x1dGlvbnMuZm9yRWFj
aChmdW5jdGlvbih0ZXN0KSB7CisgICAgZ2VuZXJhdGVUZXN0cyhyZXNvbHV0aW9ucykuZm9yRWFj
aChmdW5jdGlvbih0ZXN0KSB7CiAgICAgICAgIHZhciBkcHB4ID0gY29tcHV0ZVJlc29sdXRpb24o
dGVzdCwgaW1nUmVzb2x1dGlvbkRwcHgpOwogICAgICAgICBpbWcuc3R5bGUuaW1hZ2VSZXNvbHV0
aW9uID0gJyc7CiAgICAgICAgIGltZy5zdHlsZS5pbWFnZVJlc29sdXRpb24gPSB0ZXN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147725</attachid>
            <date>2012-06-14 21:59:42 -0700</date>
            <delta_ts>2012-06-17 18:16:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85451-20120615145940.patch</filename>
            <type>text/plain</type>
            <size>20942</size>
            <attacher name="David Barr">davidbarr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwMzA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDZlNTJmODJmN2UxNTVk
NjQ0NmJhY2JiMzBkNjExMWNhNTY2N2JmMS4uODc0NjI2OGE0N2RiNzdiNzJiMDM3OGFjNTE0YWUy
ODA3ZTY4N2VlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTE1ICBEYXZp
ZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZnJvbS1pbWFn
ZSB0byBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjc3MzLWltYWdlcyBtb2R1bGUgaXMgYXQgY2Fu
ZGlkYXRlIHJlY29tbWVuZGF0aW9uLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEy
L0NSLWNzczMtaW1hZ2VzLTIwMTIwNDE3LyN0aGUtaW1hZ2UtcmVzb2x1dGlvbgorCisgICAgICAg
IE5vIG5ldyB0ZXN0czsgZXh0ZW5kZWQgZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbi9pbWFnZS1y
ZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOiBBY2NlcHQgZnJv
bS1pbWFnZSBpZGVudGlmaWVyIGluIGltYWdlLXJlc29sdXRpb24gcHJvcGVydHkuCisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlSW1hZ2VSZXNvbHV0aW9uKTogTWFwIENTU1ZhbHVl
RnJvbUltYWdlIHRvIGlkZW50aWZpZXIgdmFsdWUgZnJvbSBjc3NWYWx1ZVBvb2wuCisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46IEFkZCBmcm9tLWltYWdlLgorICAgICAgICAqIGNz
cy9TdHlsZUJ1aWxkZXIuY3BwOiBFeHRlbmQgQXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbiB0
byBhcHBseSBSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uRmxhZ3MuCisgICAgICAgIChXZWJD
b3JlOjpBcHBseVByb3BlcnR5SW1hZ2VSZXNvbHV0aW9uOjphcHBseUluaGVyaXRWYWx1ZSk6IEFw
cGx5IFJlbmRlclN0eWxlOjppbWFnZVJlc29sdXRpb25GbGFncy4KKyAgICAgICAgKFdlYkNvcmU6
OkFwcGx5UHJvcGVydHlJbWFnZVJlc29sdXRpb246OmFwcGx5SW5pdGlhbFZhbHVlKTogQXBwbHkg
UmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvbkZsYWdzLgorICAgICAgICAoV2ViQ29yZTo6QXBw
bHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbjo6YXBwbHlWYWx1ZSk6IE1hcCBDU1NWYWx1ZUZyb21J
bWFnZSB0byBJbWFnZVJlc29sdXRpb25Gcm9tSW1hZ2UuCisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcDogSW5jbHVkZSBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjptX2lt
YWdlUmVzb2x1dGlvbkZsYWdzIGluIHN0eWxlIGRpZmYuCisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJTdHlsZTo6ZGlmZik6IE1hcCBjaGFuZ2UgaW4gU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6bV9p
bWFnZVJlc29sdXRpb25GbGFncyB0byBTdHlsZURpZmZlcmVuY2VMYXlvdXQuCisgICAgICAgICog
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6IEFkZCBSZW5kZXJTdHlsZTo6aW1hZ2VSZXNv
bHV0aW9uRmxhZ3MsIFJlbmRlclN0eWxlOjpzZXRJbWFnZVJlc29sdXRpb25GbGFncywgUmVuZGVy
U3R5bGU6OmluaXRpYWxJbWFnZVJlc29sdXRpb25GbGFncy4KKyAgICAgICAgKiByZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDogQWRkIGVudW0gRUltYWdlUmVzb2x1dGlvbi4K
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHA6IEFk
ZCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjptX2ltYWdlUmVzb2x1dGlvbkZsYWdzLgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0
YSk6IEFkZCBtX2ltYWdlUmVzb2x1dGlvbkZsYWdzIHRvIGRlZmF1bHQgYW5kIGNvcHkgY29uc3Ry
dWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVyYXRv
cj09KTogSW5jbHVkZSBtX2ltYWdlUmVzb2x1dGlvbkZsYWdzIGluIGNvbXBhcmlzb24uCisgICAg
ICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaDogQWRkIFN0eWxl
UmFyZUluaGVyaXRlZERhdGE6Om1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MuCisgICAgICAgIChTdHls
ZVJhcmVJbmhlcml0ZWREYXRhKTogQWRkIDEtYml0IGZpZWxkIFN0eWxlUmFyZUluaGVyaXRlZERh
dGE6Om1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MuCisKIDIwMTItMDYtMTQgIERhdmlkIEJhcnIgIDxk
YXZpZGJhcnJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBkcGNtIHRvIGNzczMtaW1hZ2Vz
IGltYWdlLXJlc29sdXRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggMTRhOTQ5ZWRm
NzA4YmFlMDQ4NGY1MzJmYzQ1NTY2ZmI4NWExOGI3Mi4uYWZjMDZkNzU0MWZhYjYzMjczZjE1YWQy
Njk1ZGUyZGUwMmI3NTQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTY4ODUsMTAg
KzY4ODUsMTQgQEAgUGFzc1JlZlB0cjxDU1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUltYWdlUmVz
b2x1dGlvbihDU1NQYXJzZXJWYWx1ZUxpc3QqIHZhbHVlTGkKIHsKICAgICBSZWZQdHI8Q1NTVmFs
dWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwogICAg
IGJvb2wgaGF2ZVJlc29sdXRpb24gPSBmYWxzZTsKKyAgICBib29sIGhhdmVGcm9tSW1hZ2UgPSBm
YWxzZTsKIAogICAgIENTU1BhcnNlclZhbHVlKiB2YWx1ZSA9IHZhbHVlTGlzdC0+Y3VycmVudCgp
OwogICAgIHdoaWxlICh2YWx1ZSkgewotICAgICAgICBpZiAoIWhhdmVSZXNvbHV0aW9uICYmIHZh
bGlkVW5pdCh2YWx1ZSwgRlJlc29sdXRpb24gfCBGTm9uTmVnKSAmJiB2YWx1ZS0+ZlZhbHVlID4g
MCkgeworICAgICAgICBpZiAoIWhhdmVGcm9tSW1hZ2UgJiYgdmFsdWUtPmlkID09IENTU1ZhbHVl
RnJvbUltYWdlKSB7CisgICAgICAgICAgICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3Jl
YXRlSWRlbnRpZmllclZhbHVlKHZhbHVlLT5pZCkpOworICAgICAgICAgICAgaGF2ZUZyb21JbWFn
ZSA9IHRydWU7CisgICAgICAgIH0gZWxzZSBpZiAoIWhhdmVSZXNvbHV0aW9uICYmIHZhbGlkVW5p
dCh2YWx1ZSwgRlJlc29sdXRpb24gfCBGTm9uTmVnKSAmJiB2YWx1ZS0+ZlZhbHVlID4gMCkgewog
ICAgICAgICAgICAgbGlzdC0+YXBwZW5kKGNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZSh2YWx1
ZSkpOwogICAgICAgICAgICAgaGF2ZVJlc29sdXRpb24gPSB0cnVlOwogICAgICAgICB9IGVsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KaW5kZXggOThiMjBjM2IwYzIwOWNj
NDgxYTYzZDA2MzFmNDU1NTIwYjdhMmRiOS4uNmY5NmEwNDEwMzc2ZjcyMTM2NDVmNjJmMDEyYzkx
NjNjYmFjM2YzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29y
ZHMuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTky
NCwzICs5MjQsNyBAQCBmaWx0ZXItYm94CiBkZXRhY2hlZAogI2VuZGlmIC8vIENTU19TSEFERVJT
CiAjZW5kaWYgLy8gQ1NTX0ZJTFRFUlMKKworI2lmIGRlZmluZWQoRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OKSAmJiBFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04KK2Zyb20taW1hZ2UKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAppbmRleCA1NjQ2NzdmOWNkNGFkODdh
YTczNTc0ZWE0ZTRjMDEyODY4MTllN2E3Li5mYmU2ODA4OWZiYWQ2YmFjMTk2M2FlNGYwNGRiYTMw
NDU5M2U5ZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcApAQCAtMTc3MiwxMSAr
MTc3MiwxMyBAQCBjbGFzcyBBcHBseVByb3BlcnR5SW1hZ2VSZXNvbHV0aW9uIHsKIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCBhcHBseUluaGVyaXRWYWx1ZShTdHlsZVJlc29sdmVyKiBzdHlsZVJl
c29sdmVyKQogICAgIHsKKyAgICAgICAgQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPEltYWdlUmVz
b2x1dGlvbiwgJlJlbmRlclN0eWxlOjppbWFnZVJlc29sdXRpb25GbGFncywgSW1hZ2VSZXNvbHV0
aW9uLCAmUmVuZGVyU3R5bGU6OnNldEltYWdlUmVzb2x1dGlvbkZsYWdzLCBJbWFnZVJlc29sdXRp
b24sICZSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdlUmVzb2x1dGlvbkZsYWdzPjo6YXBwbHlJbmhl
cml0VmFsdWUoc3R5bGVSZXNvbHZlcik7CiAgICAgICAgIEFwcGx5UHJvcGVydHlEZWZhdWx0QmFz
ZTxmbG9hdCwgJlJlbmRlclN0eWxlOjppbWFnZVJlc29sdXRpb24sIGZsb2F0LCAmUmVuZGVyU3R5
bGU6OnNldEltYWdlUmVzb2x1dGlvbiwgZmxvYXQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdl
UmVzb2x1dGlvbj46OmFwcGx5SW5oZXJpdFZhbHVlKHN0eWxlUmVzb2x2ZXIpOwogICAgIH0KIAog
ICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5pdGlhbFZhbHVlKFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVz
b2x2ZXIpCiAgICAgeworICAgICAgICBBcHBseVByb3BlcnR5RGVmYXVsdEJhc2U8SW1hZ2VSZXNv
bHV0aW9uLCAmUmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvbkZsYWdzLCBJbWFnZVJlc29sdXRp
b24sICZSZW5kZXJTdHlsZTo6c2V0SW1hZ2VSZXNvbHV0aW9uRmxhZ3MsIEltYWdlUmVzb2x1dGlv
biwgJlJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uRmxhZ3M+OjphcHBseUluaXRp
YWxWYWx1ZShzdHlsZVJlc29sdmVyKTsKICAgICAgICAgQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNl
PGZsb2F0LCAmUmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvbiwgZmxvYXQsICZSZW5kZXJTdHls
ZTo6c2V0SW1hZ2VSZXNvbHV0aW9uLCBmbG9hdCwgJlJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VS
ZXNvbHV0aW9uPjo6YXBwbHlJbml0aWFsVmFsdWUoc3R5bGVSZXNvbHZlcik7CiAgICAgfQogCkBA
IC0xNzg1LDEzICsxNzg3LDIwIEBAIHB1YmxpYzoKICAgICAgICAgaWYgKCF2YWx1ZS0+aXNWYWx1
ZUxpc3QoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgQ1NTVmFsdWVMaXN0KiB2YWx1
ZUxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1ZSk7CisgICAgICAgIEltYWdl
UmVzb2x1dGlvbiBmbGFncyA9IFJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uRmxh
Z3MoKTsKKyAgICAgICAgZG91YmxlIHJlc29sdXRpb24gPSBSZW5kZXJTdHlsZTo6aW5pdGlhbElt
YWdlUmVzb2x1dGlvbigpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHZhbHVlTGlz
dC0+bGVuZ3RoKCk7IGkrKykgewogICAgICAgICAgICAgQ1NTVmFsdWUqIGl0ZW0gPSB2YWx1ZUxp
c3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soaSk7CiAgICAgICAgICAgICBpZiAoIWl0ZW0tPmlz
UHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAg
IENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRpY19jYXN0PENTU1ByaW1p
dGl2ZVZhbHVlKj4oaXRlbSk7Ci0gICAgICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5z
ZXRJbWFnZVJlc29sdXRpb24ocHJpbWl0aXZlVmFsdWUtPmdldERvdWJsZVZhbHVlKENTU1ByaW1p
dGl2ZVZhbHVlOjpDU1NfRFBQWCkpOworICAgICAgICAgICAgaWYgKHByaW1pdGl2ZVZhbHVlLT5n
ZXRJZGVudCgpID09IENTU1ZhbHVlRnJvbUltYWdlKQorICAgICAgICAgICAgICAgIGZsYWdzID0g
SW1hZ2VSZXNvbHV0aW9uRnJvbUltYWdlOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHJlc29sdXRpb24gPSBwcmltaXRpdmVWYWx1ZS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJpbWl0
aXZlVmFsdWU6OkNTU19EUFBYKTsKICAgICAgICAgfQorICAgICAgICBzdHlsZVJlc29sdmVyLT5z
dHlsZSgpLT5zZXRJbWFnZVJlc29sdXRpb25GbGFncyhmbGFncyk7CisgICAgICAgIHN0eWxlUmVz
b2x2ZXItPnN0eWxlKCktPnNldEltYWdlUmVzb2x1dGlvbihyZXNvbHV0aW9uKTsKICAgICB9CiAK
ICAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRsZXIoKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggZDAyYTg3NWNlM2Fi
MzM1YmM5YzdjMmZiNDg4NjcyNGJlNDFiMDNmZi4uZmRmYjkxOGJlYjY4MzdlNTNiOTNiMjRmYzAy
MTU2N2IwOWQ4NzMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuY3BwCkBAIC00NzMsNiArNDczLDcgQEAgU3R5bGVEaWZmZXJlbmNlIFJlbmRlclN0
eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmIGNoYW5nZWRDb24K
ICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2xpbmVCb3hDb250YWluICE9IG90
aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+bV9saW5lQm94Q29udGFpbgogICAgICAgICAgICAgfHwg
cmFyZUluaGVyaXRlZERhdGEtPm1fbGluZUdyaWQgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRh
LT5tX2xpbmVHcmlkCiAjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQorICAgICAgICAg
ICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uRmxhZ3MgIT0gb3RoZXIt
PnJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbkZsYWdzCiAgICAgICAgICAgICB8
fCByYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlc29sdXRpb24gIT0gb3RoZXItPnJhcmVJbmhl
cml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbgogI2VuZGlmCiAgICAgICAgICAgICB8fCByYXJl
SW5oZXJpdGVkRGF0YS0+bV9saW5lU25hcCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1f
bGluZVNuYXAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgK
aW5kZXggOWVkN2Y5MWVkZjdlODQzOGRkNGNhODc3MWE1ZGM0ZDA0MTVhYzE4Ni4uMWE5ZjUxMGE2
M2ViMTc5MWUxOTNjMjY5YjRhMTkyMzVhN2ZiNjEzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmgKQEAgLTk4Miw2ICs5ODIsNyBAQCBwdWJsaWM6CiAg
ICAgRUltYWdlUmVuZGVyaW5nIGltYWdlUmVuZGVyaW5nKCkgY29uc3QgeyByZXR1cm4gc3RhdGlj
X2Nhc3Q8RUltYWdlUmVuZGVyaW5nPihyYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlbmRlcmlu
Zyk7IH0KIAogI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikKKyAgICBJbWFnZVJlc29s
dXRpb24gaW1hZ2VSZXNvbHV0aW9uRmxhZ3MoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxJ
bWFnZVJlc29sdXRpb24+KHJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbkZsYWdz
KTsgfQogICAgIGZsb2F0IGltYWdlUmVzb2x1dGlvbigpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhl
cml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbjsgfQogI2VuZGlmCiAgICAgCkBAIC0xMTUyLDYg
KzExNTMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJbWFnZVJlbmRlcmluZyhFSW1hZ2VSZW5k
ZXJpbmcgdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2ltYWdlUmVuZGVyaW5nLCB2
KSB9CiAKICNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCisgICAgdm9pZCBzZXRJbWFn
ZVJlc29sdXRpb25GbGFncyhJbWFnZVJlc29sdXRpb24gdikgeyBTRVRfVkFSKHJhcmVJbmhlcml0
ZWREYXRhLCBtX2ltYWdlUmVzb2x1dGlvbkZsYWdzLCB2KSB9CiAgICAgdm9pZCBzZXRJbWFnZVJl
c29sdXRpb24oZmxvYXQgZikgeyBTRVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2ltYWdlUmVz
b2x1dGlvbiwgZikgfQogI2VuZGlmCiAKQEAgLTE2NjQsNiArMTY2Niw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgVGV4dEVtcGhhc2lzUG9zaXRpb24gaW5pdGlhbFRleHRFbXBoYXNpc1Bvc2l0aW9u
KCkgeyByZXR1cm4gVGV4dEVtcGhhc2lzUG9zaXRpb25PdmVyOyB9CiAgICAgc3RhdGljIExpbmVC
b3hDb250YWluIGluaXRpYWxMaW5lQm94Q29udGFpbigpIHsgcmV0dXJuIExpbmVCb3hDb250YWlu
QmxvY2sgfCBMaW5lQm94Q29udGFpbklubGluZSB8IExpbmVCb3hDb250YWluUmVwbGFjZWQ7IH0K
ICAgICBzdGF0aWMgRUltYWdlUmVuZGVyaW5nIGluaXRpYWxJbWFnZVJlbmRlcmluZygpIHsgcmV0
dXJuIEltYWdlUmVuZGVyaW5nQXV0bzsgfQorICAgIHN0YXRpYyBJbWFnZVJlc29sdXRpb24gaW5p
dGlhbEltYWdlUmVzb2x1dGlvbkZsYWdzKCkgeyByZXR1cm4gSW1hZ2VSZXNvbHV0aW9uTm9GbGFn
czsgfQogICAgIHN0YXRpYyBmbG9hdCBpbml0aWFsSW1hZ2VSZXNvbHV0aW9uKCkgeyByZXR1cm4g
MTsgfQogICAgIHN0YXRpYyBTdHlsZUltYWdlKiBpbml0aWFsQm9yZGVySW1hZ2VTb3VyY2UoKSB7
IHJldHVybiAwOyB9CiAgICAgc3RhdGljIFN0eWxlSW1hZ2UqIGluaXRpYWxNYXNrQm94SW1hZ2VT
b3VyY2UoKSB7IHJldHVybiAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oCmluZGV4IGRjZDUyZGMzMGM2ZWVmYWU0YWQz
YzJmMjg2ZGQwYjhhNmQ0YjA0NGEuLmMwNjkxNWYzN2IwNzEwMjNkM2Y3ZjY3MTliMWQ3ZGIyMTVj
NmIyZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZUNvbnN0YW50cy5oCkBAIC00NTQsNiArNDU0LDggQEAgZW51bSBUZXh0T3ZlcmZsb3cg
eyBUZXh0T3ZlcmZsb3dDbGlwID0gMCwgVGV4dE92ZXJmbG93RWxsaXBzaXMgfTsKIAogZW51bSBF
SW1hZ2VSZW5kZXJpbmcgeyBJbWFnZVJlbmRlcmluZ0F1dG8sIEltYWdlUmVuZGVyaW5nT3B0aW1p
emVTcGVlZCwgSW1hZ2VSZW5kZXJpbmdPcHRpbWl6ZVF1YWxpdHksIEltYWdlUmVuZGVyaW5nT3B0
aW1pemVDb250cmFzdCB9OwogCitlbnVtIEltYWdlUmVzb2x1dGlvbiB7IEltYWdlUmVzb2x1dGlv
bk5vRmxhZ3MgPSAwLCBJbWFnZVJlc29sdXRpb25Gcm9tSW1hZ2UgfTsKKwogZW51bSBPcmRlciB7
IExvZ2ljYWxPcmRlciA9IDAsIFZpc3VhbE9yZGVyIH07CiAKIGVudW0gUmVnaW9uT3ZlcmZsb3cg
eyBBdXRvUmVnaW9uT3ZlcmZsb3csIEJyZWFrUmVnaW9uT3ZlcmZsb3cgfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRh
LmNwcAppbmRleCBjYTY1MmQ2ZWQ5NzM5MzRkYjcwNGM0ZWZiOGQ0Y2RiZWQ1ZDRiNjVkLi42ZjEz
MzkyMDY3NzFhYjFjM2Q3MTIzOGVjMTgzN2RhMzA1YTM5NGI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3Bw
CkBAIC01OCw2ICs1OCw5IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUluaGVy
aXRlZERhdGEoKQogI2lmIEVOQUJMRShPVkVSRkxPV19TQ1JPTExJTkcpCiAgICAgLCB1c2VUb3Vj
aE92ZXJmbG93U2Nyb2xsaW5nKFJlbmRlclN0eWxlOjppbml0aWFsVXNlVG91Y2hPdmVyZmxvd1Nj
cm9sbGluZygpKQogI2VuZGlmCisjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQorICAg
ICwgbV9pbWFnZVJlc29sdXRpb25GbGFncyhSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdlUmVzb2x1
dGlvbkZsYWdzKCkpCisjZW5kaWYKICAgICAsIGh5cGhlbmF0aW9uTGltaXRCZWZvcmUoLTEpCiAg
ICAgLCBoeXBoZW5hdGlvbkxpbWl0QWZ0ZXIoLTEpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0TGlu
ZXMoLTEpCkBAIC0xMTMsNiArMTE2LDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVS
YXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhJiBvKQogI2lmIEVO
QUJMRShPVkVSRkxPV19TQ1JPTExJTkcpCiAgICAgLCB1c2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5n
KG8udXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZykKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfSU1B
R0VfUkVTT0xVVElPTikKKyAgICAsIG1faW1hZ2VSZXNvbHV0aW9uRmxhZ3Moby5tX2ltYWdlUmVz
b2x1dGlvbkZsYWdzKQorI2VuZGlmCiAgICAgLCBoeXBoZW5hdGlvblN0cmluZyhvLmh5cGhlbmF0
aW9uU3RyaW5nKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZShvLmh5cGhlbmF0aW9uTGlt
aXRCZWZvcmUpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QWZ0ZXIoby5oeXBoZW5hdGlvbkxpbWl0
QWZ0ZXIpCkBAIC0xOTUsNiArMjAxLDcgQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpv
cGVyYXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0CiAgICAgICAg
ICYmIG1fbGluZUdyaWQgPT0gby5tX2xpbmVHcmlkCiAgICAgICAgICYmIG1faW1hZ2VSZW5kZXJp
bmcgPT0gby5tX2ltYWdlUmVuZGVyaW5nCiAjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9O
KQorICAgICAgICAmJiBtX2ltYWdlUmVzb2x1dGlvbkZsYWdzID09IG8ubV9pbWFnZVJlc29sdXRp
b25GbGFncwogICAgICAgICAmJiBtX2ltYWdlUmVzb2x1dGlvbiA9PSBvLm1faW1hZ2VSZXNvbHV0
aW9uCiAjZW5kaWYKICAgICAgICAgJiYgbV9saW5lU25hcCA9PSBvLm1fbGluZVNuYXAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVk
RGF0YS5oCmluZGV4IDM0MWYzZDk4MDBlYTYzMTgzMmVmOTFkNWYwY2RmYjYwNjEzNmU1ZWIuLmRj
ODc0YjUxMjQxM2NiM2IwNDZjMzJkNGQ2NDdlNmU4ZTlkZWFlMzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaApA
QCAtMTAxLDYgKzEwMSw5IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5H
KQogICAgIHVuc2lnbmVkIHVzZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmc6IDE7CiAjZW5kaWYKKyNp
ZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCisgICAgdW5zaWduZWQgbV9pbWFnZVJlc29s
dXRpb25GbGFncyA6IDE7IC8vIEltYWdlUmVzb2x1dGlvbgorI2VuZGlmCiAKICAgICBBdG9taWNT
dHJpbmcgaHlwaGVuYXRpb25TdHJpbmc7CiAgICAgc2hvcnQgaHlwaGVuYXRpb25MaW1pdEJlZm9y
ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA0YzdkNmY2MGY0OWZmODEyZmU0YWQ2YmM3ODllNjAxYWI3NmMyY2Y1Li4wNTEw
MmY0MjE5M2I5MWFmNDU5NGJmY2FhMGQzZjMxZjVmODc3MDI5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTItMDYtMTUgIERhdmlkIEJhcnIgIDxkYXZpZGJhcnJAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIEFkZCBmcm9tLWltYWdlIHRvIGNzczMtaW1hZ2VzIGltYWdlLXJlc29sdXRpb24KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NDUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2Nzcy9p
bWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGZhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24vaW1hZ2UtcmVzb2x1dGlvbi5odG1sOgorCiAyMDEy
LTA2LTE0ICBEYXZpZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBB
ZGQgZHBjbSB0byBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbi9pbWFnZS1yZXNv
bHV0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBiNzY3MzFmZWFkM2MyMDRlOWFhMzkwNjFkOWNmYzI1
ODY1NDcwYzk5Li45ZTNjOTMzNzI0YjU3OWJhZTgyYTlhZWIyNGRjMmMwNDE1MDIyMTZmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29s
dXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltYWdlLXJlc29s
dXRpb24vaW1hZ2UtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1BcHBs
eSBpbWFnZS1yZXNvbHV0aW9uIHByb3BlcnR5IHRvIGEgZml4ZWQgaW1hZ2UgKDE2eDE2QDAuNzVk
cHB4KS4KK0FwcGx5IGltYWdlLXJlc29sdXRpb24gcHJvcGVydHkgdG8gYSBmaXhlZCBpbWFnZSAo
MTZ4MTYpLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1l
c3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKQEAgLTc1LDYgKzc1LDE1MCBA
QCBQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA0CiBQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgNAog
VEVTVCAiIgogUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiIgorVEVTVCAiMGRwcHggZnJvbS1p
bWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgIiIKK1RFU1QgImZyb20taW1hZ2UgMGRw
cHgiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICIiCitURVNUICIxZHBweCBmcm9tLWltYWdl
IgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogMWRwcHggZnJv
bS1pbWFnZTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMTYKK1BBU1MgaW1nLm9mZnNldEhl
aWdodCBpcyAxNgorVEVTVCAiZnJvbS1pbWFnZSAxZHBweCIKK1BBU1MgaW1nLnN0eWxlLmNzc1Rl
eHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMWRwcHg7ICIKK1BBU1MgaW1nLm9m
ZnNldFdpZHRoIGlzIDE2CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgMTYKK1RFU1QgIjJkcHB4
IGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9u
OiAyZHBweCBmcm9tLWltYWdlOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA4CitQQVNTIGlt
Zy5vZmZzZXRIZWlnaHQgaXMgOAorVEVTVCAiZnJvbS1pbWFnZSAyZHBweCIKK1BBU1MgaW1nLnN0
eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMmRwcHg7ICIKK1BB
U1MgaW1nLm9mZnNldFdpZHRoIGlzIDgKK1BBU1MgaW1nLm9mZnNldEhlaWdodCBpcyA4CitURVNU
ICIzZHBweCBmcm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVz
b2x1dGlvbjogM2RwcHggZnJvbS1pbWFnZTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgNQor
UEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDUKK1RFU1QgImZyb20taW1hZ2UgM2RwcHgiCitQQVNT
IGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDNkcHB4
OyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA1CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMg
NQorVEVTVCAiNGRwcHggZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImlt
YWdlLXJlc29sdXRpb246IDRkcHB4IGZyb20taW1hZ2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRo
IGlzIDQKK1BBU1MgaW1nLm9mZnNldEhlaWdodCBpcyA0CitURVNUICJmcm9tLWltYWdlIDRkcHB4
IgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJvbS1pbWFn
ZSA0ZHBweDsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgNAorUEFTUyBpbWcub2Zmc2V0SGVp
Z2h0IGlzIDQKK1RFU1QgIjBkcGkgZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQg
aXMgIiIKK1RFU1QgImZyb20taW1hZ2UgMGRwaSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMg
IiIKK1RFU1QgIjk2ZHBpIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJp
bWFnZS1yZXNvbHV0aW9uOiA5NmRwaSBmcm9tLWltYWdlOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0
aCBpcyAxNgorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDE2CitURVNUICJmcm9tLWltYWdlIDk2
ZHBpIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJvbS1p
bWFnZSA5NmRwaTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMTYKK1BBU1MgaW1nLm9mZnNl
dEhlaWdodCBpcyAxNgorVEVTVCAiMTkyZHBpIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5j
c3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiAxOTJkcGkgZnJvbS1pbWFnZTsgIgorUEFTUyBp
bWcub2Zmc2V0V2lkdGggaXMgOAorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDgKK1RFU1QgImZy
b20taW1hZ2UgMTkyZHBpIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1
dGlvbjogZnJvbS1pbWFnZSAxOTJkcGk7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDgKK1BB
U1MgaW1nLm9mZnNldEhlaWdodCBpcyA4CitURVNUICIyODhkcGkgZnJvbS1pbWFnZSIKK1BBU1Mg
aW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDI4OGRwaSBmcm9tLWltYWdl
OyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA1CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMg
NQorVEVTVCAiZnJvbS1pbWFnZSAyODhkcGkiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJp
bWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDI4OGRwaTsgIgorUEFTUyBpbWcub2Zmc2V0V2lk
dGggaXMgNQorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDUKK1RFU1QgIjM4NGRwaSBmcm9tLWlt
YWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogMzg0ZHBp
IGZyb20taW1hZ2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDQKK1BBU1MgaW1nLm9mZnNl
dEhlaWdodCBpcyA0CitURVNUICJmcm9tLWltYWdlIDM4NGRwaSIKK1BBU1MgaW1nLnN0eWxlLmNz
c1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMzg0ZHBpOyAiCitQQVNTIGlt
Zy5vZmZzZXRXaWR0aCBpcyA0CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgNAorVEVTVCAiMTUw
ZHBpIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0
aW9uOiAxNTBkcGkgZnJvbS1pbWFnZTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMTAKK1BB
U1MgaW1nLm9mZnNldEhlaWdodCBpcyAxMAorVEVTVCAiZnJvbS1pbWFnZSAxNTBkcGkiCitQQVNT
IGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDE1MGRw
aTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMTAKK1BBU1MgaW1nLm9mZnNldEhlaWdodCBp
cyAxMAorVEVTVCAiMzAwZHBpIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlz
ICJpbWFnZS1yZXNvbHV0aW9uOiAzMDBkcGkgZnJvbS1pbWFnZTsgIgorUEFTUyBpbWcub2Zmc2V0
V2lkdGggaXMgNQorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDUKK1RFU1QgImZyb20taW1hZ2Ug
MzAwZHBpIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJv
bS1pbWFnZSAzMDBkcGk7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDUKK1BBU1MgaW1nLm9m
ZnNldEhlaWdodCBpcyA1CitURVNUICI0NTBkcGkgZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxl
LmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDQ1MGRwaSBmcm9tLWltYWdlOyAiCitQQVNT
IGltZy5vZmZzZXRXaWR0aCBpcyAzCitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgMworVEVTVCAi
ZnJvbS1pbWFnZSA0NTBkcGkiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNv
bHV0aW9uOiBmcm9tLWltYWdlIDQ1MGRwaTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMwor
UEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDMKK1RFU1QgIjYwMGRwaSBmcm9tLWltYWdlIgorUEFT
UyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogNjAwZHBpIGZyb20taW1h
Z2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDIKK1BBU1MgaW1nLm9mZnNldEhlaWdodCBp
cyAyCitURVNUICJmcm9tLWltYWdlIDYwMGRwaSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMg
ImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgNjAwZHBpOyAiCitQQVNTIGltZy5vZmZzZXRX
aWR0aCBpcyAyCitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgMgorVEVTVCAiMGRwY20gZnJvbS1p
bWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgIiIKK1RFU1QgImZyb20taW1hZ2UgMGRw
Y20iCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICIiCitURVNUICIzNy43ZHBjbSBmcm9tLWlt
YWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogMzcuN2Rw
Y20gZnJvbS1pbWFnZTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMTYKK1BBU1MgaW1nLm9m
ZnNldEhlaWdodCBpcyAxNgorVEVTVCAiZnJvbS1pbWFnZSAzNy43ZHBjbSIKK1BBU1MgaW1nLnN0
eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMzcuN2RwY207ICIK
K1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDE2CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgMTYK
K1RFU1QgIjc1LjVkcGNtIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJp
bWFnZS1yZXNvbHV0aW9uOiA3NS41ZHBjbSBmcm9tLWltYWdlOyAiCitQQVNTIGltZy5vZmZzZXRX
aWR0aCBpcyA4CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgOAorVEVTVCAiZnJvbS1pbWFnZSA3
NS41ZHBjbSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZy
b20taW1hZ2UgNzUuNWRwY207ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDgKK1BBU1MgaW1n
Lm9mZnNldEhlaWdodCBpcyA4CitURVNUICIxMTMuM2RwY20gZnJvbS1pbWFnZSIKK1BBU1MgaW1n
LnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDExMy4zZHBjbSBmcm9tLWltYWdl
OyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA1CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMg
NQorVEVTVCAiZnJvbS1pbWFnZSAxMTMuM2RwY20iCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlz
ICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDExMy4zZHBjbTsgIgorUEFTUyBpbWcub2Zm
c2V0V2lkdGggaXMgNQorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDUKK1RFU1QgIjE1MS4xZHBj
bSBmcm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlv
bjogMTUxLjFkcGNtIGZyb20taW1hZ2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDQKK1BB
U1MgaW1nLm9mZnNldEhlaWdodCBpcyA0CitURVNUICJmcm9tLWltYWdlIDE1MS4xZHBjbSIKK1BB
U1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMTUx
LjFkcGNtOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA0CitQQVNTIGltZy5vZmZzZXRIZWln
aHQgaXMgNAorVEVTVCAiZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImlt
YWdlLXJlc29sdXRpb246IGZyb20taW1hZ2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDE2
CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgMTYKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
aW1hZ2UtcmVzb2x1dGlvbi9pbWFnZS1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24uaHRtbAppbmRleCA3ZWIzNTUy
NjdiNzM2NGJkMGZiZDk1MmM0YjhlMmUxZTMwOGJjMWEwLi43ZTE5NGU0NWQzNjIzODFhZDYzYTMx
ZGQ3OTYwMmI4MDE3MzIxMzY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWFn
ZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24uaHRtbApAQCAtMzksNyArMzks
NyBAQCBmdW5jdGlvbiBjb21wdXRlUmVzb2x1dGlvbihyZXNvbHV0aW9uLCBpbWdSZXNvbHV0aW9u
RHBweCkKICAgICAgICAgZWxzZSBpZiAodW5pdCA9PT0gJ2RwY20nKQogICAgICAgICAgICAgZHBw
eCA9IHZhbHVlIC8gKGNzc1B4UGVySW4gLyBjbVBlckluKTsKICAgICB9Ci0gICAgaWYgKGZyb21J
bWFnZSkKKyAgICBpZiAoZnJvbUltYWdlICYmIGltZ1Jlc29sdXRpb25EcHB4KQogICAgICAgICBk
cHB4ID0gaW1nUmVzb2x1dGlvbkRwcHg7CiAgICAgaWYgKHNuYXApCiAgICAgICAgIGRwcHggPSBN
YXRoLmZsb29yKGRwcHgpOwpAQCAtNDgsMTEgKzQ4LDI2IEBAIGZ1bmN0aW9uIGNvbXB1dGVSZXNv
bHV0aW9uKHJlc29sdXRpb24sIGltZ1Jlc29sdXRpb25EcHB4KQogICAgIHJldHVybiBkcHB4Owog
fQogCitmdW5jdGlvbiBwZXJtdXRlMihydWxlKSB7CisgICAgdmFyIHMgPSBydWxlLnRyaW0oKS5z
cGxpdCgnICcpOworICAgIGlmIChzLmxlbmd0aCA9PSAxKQorICAgICAgICByZXR1cm4gczsKKyAg
ICByZXR1cm4gW3Muam9pbignICcpLCBbc1sxXSwgc1swXV0uam9pbignICcpXTsKK30KKworZnVu
Y3Rpb24gZ2VuZXJhdGVUZXN0cyhyZXNvbHV0aW9ucykgeworICAgIHZhciB0ZXN0cyA9IHJlc29s
dXRpb25zLnNsaWNlKCk7CisgICAgcmVzb2x1dGlvbnMuZm9yRWFjaChmdW5jdGlvbihyZXNvbHV0
aW9uKSB7CisgICAgICAgIHRlc3RzLnB1c2guYXBwbHkodGVzdHMsIHBlcm11dGUyKHJlc29sdXRp
b24gKyAnIGZyb20taW1hZ2UnKSk7CisgICAgfSk7CisgICAgcmV0dXJuIHRlc3RzOworfQorCiB2
YXIgaW1nVXJsID0gJy4uLy4uL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4uanBnJzsKIHZhciBpbWdX
aWR0aFB4ID0gMTY7CiB2YXIgaW1nSGVpZ2h0UHggPSAxNjsKLXZhciBpbWdSZXNvbHV0aW9uRHBw
eCA9IDcyIC8gOTY7Ci12YXIgZGltZW5zaW9ucyA9IGltZ1dpZHRoUHggKyAneCcgKyBpbWdIZWln
aHRQeCArICdAJyArIGltZ1Jlc29sdXRpb25EcHB4ICsgJ2RwcHgnOwordmFyIGltZ1Jlc29sdXRp
b25EcHB4ID0gMDsgLyogRW1iZWRkZWQgaW1hZ2UgcmVzb2x1dGlvbiBkYXRhIG5vdCBwbHVtYmVk
IHlldC4gKi8KK3ZhciBkaW1lbnNpb25zID0gaW1nV2lkdGhQeCArICd4JyArIGltZ0hlaWdodFB4
OwogCiBkZXNjcmlwdGlvbignQXBwbHkgaW1hZ2UtcmVzb2x1dGlvbiBwcm9wZXJ0eSB0byBhIGZp
eGVkIGltYWdlICgnICsgZGltZW5zaW9ucyArICcpLicpOwogCkBAIC02NSw3ICs4MCw3IEBAIHZh
ciByZXNvbHV0aW9ucyA9IFsnMGRwcHgnLCAnMWRwcHgnLCAnMmRwcHgnLCAnM2RwcHgnLCAnNGRw
cHgnLAogICAgICAgICAgICAgICAgICAgICcwZHBjbScsICczNy43ZHBjbScsICc3NS41ZHBjbScs
ICcxMTMuM2RwY20nLCAnMTUxLjFkcGNtJywgJyddOwogCiBpbWcub25sb2FkID0gZnVuY3Rpb24o
KSB7Ci0gICAgcmVzb2x1dGlvbnMuZm9yRWFjaChmdW5jdGlvbih0ZXN0KSB7CisgICAgZ2VuZXJh
dGVUZXN0cyhyZXNvbHV0aW9ucykuZm9yRWFjaChmdW5jdGlvbih0ZXN0KSB7CiAgICAgICAgIHZh
ciBkcHB4ID0gY29tcHV0ZVJlc29sdXRpb24odGVzdCwgaW1nUmVzb2x1dGlvbkRwcHgpOwogICAg
ICAgICBpbWcuc3R5bGUuaW1hZ2VSZXNvbHV0aW9uID0gJyc7CiAgICAgICAgIGltZy5zdHlsZS5p
bWFnZVJlc29sdXRpb24gPSB0ZXN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148032</attachid>
            <date>2012-06-17 18:16:47 -0700</date>
            <delta_ts>2012-06-17 21:18:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85451-20120618111645.patch</filename>
            <type>text/plain</type>
            <size>21079</size>
            <attacher name="David Barr">davidbarr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM4YzVhMzk5NjJjZjhm
ZGUxMjU4MmY0MGJkOWRlYTg4ZTc1MTQyNS4uMGJiNGYyMDNiYjMxYzI3ZWE4OTNmZDkzMTA4ZGY1
MTdjMTg0NDhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTA2LTE3ICBEYXZp
ZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZnJvbS1pbWFn
ZSB0byBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjc3MzLWltYWdlcyBtb2R1bGUgaXMgYXQgY2Fu
ZGlkYXRlIHJlY29tbWVuZGF0aW9uLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEy
L0NSLWNzczMtaW1hZ2VzLTIwMTIwNDE3LyN0aGUtaW1hZ2UtcmVzb2x1dGlvbgorCisgICAgICAg
IE5vIG5ldyB0ZXN0czsgZXh0ZW5kZWQgZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbi9pbWFnZS1y
ZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOiBBY2NlcHQgZnJv
bS1pbWFnZSBpZGVudGlmaWVyIGluIGltYWdlLXJlc29sdXRpb24gcHJvcGVydHkuCisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlSW1hZ2VSZXNvbHV0aW9uKTogTWFwIENTU1ZhbHVl
RnJvbUltYWdlIHRvIGlkZW50aWZpZXIgdmFsdWUgZnJvbSBjc3NWYWx1ZVBvb2wuCisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46IEFkZCBmcm9tLWltYWdlLgorICAgICAgICAqIGNz
cy9TdHlsZUJ1aWxkZXIuY3BwOiBFeHRlbmQgQXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbiB0
byBhcHBseSBSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uU291cmNlLgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbjo6YXBwbHlJbmhlcml0VmFsdWUpOiBB
cHBseSBSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uU291cmNlLgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbjo6YXBwbHlJbml0aWFsVmFsdWUpOiBBcHBs
eSBSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uU291cmNlLgorICAgICAgICAoV2ViQ29yZTo6
QXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbjo6YXBwbHlWYWx1ZSk6IE1hcCBDU1NWYWx1ZUZy
b21JbWFnZSB0byBJbWFnZVJlc29sdXRpb25Gcm9tSW1hZ2UuCisgICAgICAgICogcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcDogSW5jbHVkZSBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpt
X2ltYWdlUmVzb2x1dGlvblNvdXJjZSBpbiBzdHlsZSBkaWZmLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU3R5bGU6OmRpZmYpOiBNYXAgY2hhbmdlIGluIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6
Om1faW1hZ2VSZXNvbHV0aW9uU291cmNlIHRvIFN0eWxlRGlmZmVyZW5jZUxheW91dC4KKyAgICAg
ICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaDogQWRkIFJlbmRlclN0eWxlOjppbWFn
ZVJlc29sdXRpb25Tb3VyY2UsIFJlbmRlclN0eWxlOjpzZXRJbWFnZVJlc29sdXRpb25Tb3VyY2Us
IFJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uU291cmNlLgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oOiBBZGQgZW51bSBJbWFnZVJlc29s
dXRpb25Tb3VyY2UuCisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRl
ZERhdGEuY3BwOiBBZGQgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6bV9pbWFnZVJlc29sdXRpb25T
b3VyY2UuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpTdHlsZVJh
cmVJbmhlcml0ZWREYXRhKTogQWRkIG1faW1hZ2VSZXNvbHV0aW9uU291cmNlIHRvIGRlZmF1bHQg
YW5kIGNvcHkgY29uc3RydWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpTdHlsZVJhcmVJbmhlcml0
ZWREYXRhOjpvcGVyYXRvcj09KTogSW5jbHVkZSBtX2ltYWdlUmVzb2x1dGlvblNvdXJjZSBpbiBj
b21wYXJpc29uLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmg6IEFkZCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjptX2ltYWdlUmVzb2x1dGlvblNvdXJj
ZS4KKyAgICAgICAgKFN0eWxlUmFyZUluaGVyaXRlZERhdGEpOiBBZGQgMS1iaXQgZmllbGQgU3R5
bGVSYXJlSW5oZXJpdGVkRGF0YTo6bV9pbWFnZVJlc29sdXRpb25Tb3VyY2UuCisKIDIwMTItMDYt
MTUgIFNpbHZpYSBQZmVpZmZlciAgPHNpbHZpYXBmQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZW1vdmUgdm9sdW1lIHRodW1iIGZvciB2aWRlb3Mgd2l0aG91dCBhdWRpbyB0cmFjay4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1BhcnNlci5jcHAKaW5kZXggNjk0YmViODU2NjcwNzdmZmU3MmYxZmMyNzNkZDlmYWVj
NDMyMTAzZC4uYzUyYTdmNmE5YjVmZTk2ZGRhYjA0NjZkYzFkMDU0MjU4NmViYzNiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTY4ODksMTAgKzY4ODksMTQgQEAgUGFzc1JlZlB0cjxD
U1NWYWx1ZT4gQ1NTUGFyc2VyOjpwYXJzZUltYWdlUmVzb2x1dGlvbihDU1NQYXJzZXJWYWx1ZUxp
c3QqIHZhbHVlTGkKIHsKICAgICBSZWZQdHI8Q1NTVmFsdWVMaXN0PiBsaXN0ID0gQ1NTVmFsdWVM
aXN0OjpjcmVhdGVTcGFjZVNlcGFyYXRlZCgpOwogICAgIGJvb2wgaGF2ZVJlc29sdXRpb24gPSBm
YWxzZTsKKyAgICBib29sIGhhdmVGcm9tSW1hZ2UgPSBmYWxzZTsKIAogICAgIENTU1BhcnNlclZh
bHVlKiB2YWx1ZSA9IHZhbHVlTGlzdC0+Y3VycmVudCgpOwogICAgIHdoaWxlICh2YWx1ZSkgewot
ICAgICAgICBpZiAoIWhhdmVSZXNvbHV0aW9uICYmIHZhbGlkVW5pdCh2YWx1ZSwgRlJlc29sdXRp
b24gfCBGTm9uTmVnKSAmJiB2YWx1ZS0+ZlZhbHVlID4gMCkgeworICAgICAgICBpZiAoIWhhdmVG
cm9tSW1hZ2UgJiYgdmFsdWUtPmlkID09IENTU1ZhbHVlRnJvbUltYWdlKSB7CisgICAgICAgICAg
ICBsaXN0LT5hcHBlbmQoY3NzVmFsdWVQb29sKCkuY3JlYXRlSWRlbnRpZmllclZhbHVlKHZhbHVl
LT5pZCkpOworICAgICAgICAgICAgaGF2ZUZyb21JbWFnZSA9IHRydWU7CisgICAgICAgIH0gZWxz
ZSBpZiAoIWhhdmVSZXNvbHV0aW9uICYmIHZhbGlkVW5pdCh2YWx1ZSwgRlJlc29sdXRpb24gfCBG
Tm9uTmVnKSAmJiB2YWx1ZS0+ZlZhbHVlID4gMCkgewogICAgICAgICAgICAgbGlzdC0+YXBwZW5k
KGNyZWF0ZVByaW1pdGl2ZU51bWVyaWNWYWx1ZSh2YWx1ZSkpOwogICAgICAgICAgICAgaGF2ZVJl
c29sdXRpb24gPSB0cnVlOwogICAgICAgICB9IGVsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
S2V5d29yZHMuaW4KaW5kZXggOThiMjBjM2IwYzIwOWNjNDgxYTYzZDA2MzFmNDU1NTIwYjdhMmRi
OS4uNmY5NmEwNDEwMzc2ZjcyMTM2NDVmNjJmMDEyYzkxNjNjYmFjM2YzYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW4KQEAgLTkyNCwzICs5MjQsNyBAQCBmaWx0ZXItYm94
CiBkZXRhY2hlZAogI2VuZGlmIC8vIENTU19TSEFERVJTCiAjZW5kaWYgLy8gQ1NTX0ZJTFRFUlMK
KworI2lmIGRlZmluZWQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAmJiBFTkFCTEVfQ1NT
X0lNQUdFX1JFU09MVVRJT04KK2Zyb20taW1hZ2UKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVC
dWlsZGVyLmNwcAppbmRleCA1NjQ2NzdmOWNkNGFkODdhYTczNTc0ZWE0ZTRjMDEyODY4MTllN2E3
Li5iZmY5ZmY0NGE3M2FmMWQzNTNhMWM2ZmIxMTIzMjI0ZjVjOGU2MjVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU3R5bGVCdWlsZGVyLmNwcApAQCAtMTc3MiwxMSArMTc3MiwxMyBAQCBjbGFzcyBBcHBseVBy
b3BlcnR5SW1hZ2VSZXNvbHV0aW9uIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBhcHBseUlu
aGVyaXRWYWx1ZShTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyKQogICAgIHsKKyAgICAgICAg
QXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPEltYWdlUmVzb2x1dGlvblNvdXJjZSwgJlJlbmRlclN0
eWxlOjppbWFnZVJlc29sdXRpb25Tb3VyY2UsIEltYWdlUmVzb2x1dGlvblNvdXJjZSwgJlJlbmRl
clN0eWxlOjpzZXRJbWFnZVJlc29sdXRpb25Tb3VyY2UsIEltYWdlUmVzb2x1dGlvblNvdXJjZSwg
JlJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uU291cmNlPjo6YXBwbHlJbmhlcml0
VmFsdWUoc3R5bGVSZXNvbHZlcik7CiAgICAgICAgIEFwcGx5UHJvcGVydHlEZWZhdWx0QmFzZTxm
bG9hdCwgJlJlbmRlclN0eWxlOjppbWFnZVJlc29sdXRpb24sIGZsb2F0LCAmUmVuZGVyU3R5bGU6
OnNldEltYWdlUmVzb2x1dGlvbiwgZmxvYXQsICZSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdlUmVz
b2x1dGlvbj46OmFwcGx5SW5oZXJpdFZhbHVlKHN0eWxlUmVzb2x2ZXIpOwogICAgIH0KIAogICAg
IHN0YXRpYyB2b2lkIGFwcGx5SW5pdGlhbFZhbHVlKFN0eWxlUmVzb2x2ZXIqIHN0eWxlUmVzb2x2
ZXIpCiAgICAgeworICAgICAgICBBcHBseVByb3BlcnR5RGVmYXVsdEJhc2U8SW1hZ2VSZXNvbHV0
aW9uU291cmNlLCAmUmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvblNvdXJjZSwgSW1hZ2VSZXNv
bHV0aW9uU291cmNlLCAmUmVuZGVyU3R5bGU6OnNldEltYWdlUmVzb2x1dGlvblNvdXJjZSwgSW1h
Z2VSZXNvbHV0aW9uU291cmNlLCAmUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlc29sdXRpb25T
b3VyY2U+OjphcHBseUluaXRpYWxWYWx1ZShzdHlsZVJlc29sdmVyKTsKICAgICAgICAgQXBwbHlQ
cm9wZXJ0eURlZmF1bHRCYXNlPGZsb2F0LCAmUmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1dGlvbiwg
ZmxvYXQsICZSZW5kZXJTdHlsZTo6c2V0SW1hZ2VSZXNvbHV0aW9uLCBmbG9hdCwgJlJlbmRlclN0
eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uPjo6YXBwbHlJbml0aWFsVmFsdWUoc3R5bGVSZXNv
bHZlcik7CiAgICAgfQogCkBAIC0xNzg1LDEzICsxNzg3LDIwIEBAIHB1YmxpYzoKICAgICAgICAg
aWYgKCF2YWx1ZS0+aXNWYWx1ZUxpc3QoKSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
Q1NTVmFsdWVMaXN0KiB2YWx1ZUxpc3QgPSBzdGF0aWNfY2FzdDxDU1NWYWx1ZUxpc3QqPih2YWx1
ZSk7CisgICAgICAgIEltYWdlUmVzb2x1dGlvblNvdXJjZSBzb3VyY2UgPSBSZW5kZXJTdHlsZTo6
aW5pdGlhbEltYWdlUmVzb2x1dGlvblNvdXJjZSgpOworICAgICAgICBkb3VibGUgcmVzb2x1dGlv
biA9IFJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uKCk7CiAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgdmFsdWVMaXN0LT5sZW5ndGgoKTsgaSsrKSB7CiAgICAgICAgICAg
ICBDU1NWYWx1ZSogaXRlbSA9IHZhbHVlTGlzdC0+aXRlbVdpdGhvdXRCb3VuZHNDaGVjayhpKTsK
ICAgICAgICAgICAgIGlmICghaXRlbS0+aXNQcmltaXRpdmVWYWx1ZSgpKQogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgQ1NTUHJpbWl0aXZlVmFsdWUqIHByaW1pdGl2ZVZh
bHVlID0gc3RhdGljX2Nhc3Q8Q1NTUHJpbWl0aXZlVmFsdWUqPihpdGVtKTsKLSAgICAgICAgICAg
IHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldEltYWdlUmVzb2x1dGlvbihwcmltaXRpdmVWYWx1
ZS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYKSk7CisgICAgICAg
ICAgICBpZiAocHJpbWl0aXZlVmFsdWUtPmdldElkZW50KCkgPT0gQ1NTVmFsdWVGcm9tSW1hZ2Up
CisgICAgICAgICAgICAgICAgc291cmNlID0gSW1hZ2VSZXNvbHV0aW9uRnJvbUltYWdlOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHJlc29sdXRpb24gPSBwcmltaXRpdmVWYWx1
ZS0+Z2V0RG91YmxlVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWU6OkNTU19EUFBYKTsKICAgICAgICAg
fQorICAgICAgICBzdHlsZVJlc29sdmVyLT5zdHlsZSgpLT5zZXRJbWFnZVJlc29sdXRpb25Tb3Vy
Y2Uoc291cmNlKTsKKyAgICAgICAgc3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0SW1hZ2VSZXNv
bHV0aW9uKHJlc29sdXRpb24pOwogICAgIH0KIAogICAgIHN0YXRpYyBQcm9wZXJ0eUhhbmRsZXIg
Y3JlYXRlSGFuZGxlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcAppbmRleCBkMDJhODc1Y2UzYWIzMzViYzljN2MyZmI0ODg2NzI0YmU0MWIwM2Zm
Li4zNmM1ZWQ0MGViNzM2NTEyOGQ5ZmMwMTNmNTNhYmEwNGI2OWU4MTdjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKQEAgLTQ3Myw2ICs0NzMs
NyBAQCBTdHlsZURpZmZlcmVuY2UgUmVuZGVyU3R5bGU6OmRpZmYoY29uc3QgUmVuZGVyU3R5bGUq
IG90aGVyLCB1bnNpZ25lZCYgY2hhbmdlZENvbgogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRl
ZERhdGEtPm1fbGluZUJveENvbnRhaW4gIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2xp
bmVCb3hDb250YWluCiAgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV9saW5lR3Jp
ZCAhPSBvdGhlci0+cmFyZUluaGVyaXRlZERhdGEtPm1fbGluZUdyaWQKICNpZiBFTkFCTEUoQ1NT
X0lNQUdFX1JFU09MVVRJT04pCisgICAgICAgICAgICB8fCByYXJlSW5oZXJpdGVkRGF0YS0+bV9p
bWFnZVJlc29sdXRpb25Tb3VyY2UgIT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdl
UmVzb2x1dGlvblNvdXJjZQogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1faW1h
Z2VSZXNvbHV0aW9uICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlc29sdXRp
b24KICNlbmRpZgogICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fbGluZVNuYXAg
IT0gb3RoZXItPnJhcmVJbmhlcml0ZWREYXRhLT5tX2xpbmVTbmFwCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4IDllZDdmOTFlZGY3ZTg0MzhkZDRj
YTg3NzFhNWRjNGQwNDE1YWMxODYuLjBjYmQzZmNlZjMyNGI4YmY4ZjQ5ZTFlYTE0NmFlMDU5MzBl
ZGYyNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5o
CkBAIC05ODIsNiArOTgyLDcgQEAgcHVibGljOgogICAgIEVJbWFnZVJlbmRlcmluZyBpbWFnZVJl
bmRlcmluZygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVJbWFnZVJlbmRlcmluZz4ocmFy
ZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZW5kZXJpbmcpOyB9CiAKICNpZiBFTkFCTEUoQ1NTX0lN
QUdFX1JFU09MVVRJT04pCisgICAgSW1hZ2VSZXNvbHV0aW9uU291cmNlIGltYWdlUmVzb2x1dGlv
blNvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEltYWdlUmVzb2x1dGlvblNvdXJj
ZT4ocmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uU291cmNlKTsgfQogICAgIGZs
b2F0IGltYWdlUmVzb2x1dGlvbigpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT5t
X2ltYWdlUmVzb2x1dGlvbjsgfQogI2VuZGlmCiAgICAgCkBAIC0xMTUyLDYgKzExNTMsNyBAQCBw
dWJsaWM6CiAgICAgdm9pZCBzZXRJbWFnZVJlbmRlcmluZyhFSW1hZ2VSZW5kZXJpbmcgdikgeyBT
RVRfVkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2ltYWdlUmVuZGVyaW5nLCB2KSB9CiAKICNpZiBF
TkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCisgICAgdm9pZCBzZXRJbWFnZVJlc29sdXRpb25T
b3VyY2UoSW1hZ2VSZXNvbHV0aW9uU291cmNlIHYpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVkRGF0
YSwgbV9pbWFnZVJlc29sdXRpb25Tb3VyY2UsIHYpIH0KICAgICB2b2lkIHNldEltYWdlUmVzb2x1
dGlvbihmbG9hdCBmKSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1faW1hZ2VSZXNvbHV0
aW9uLCBmKSB9CiAjZW5kaWYKIApAQCAtMTY2NCw2ICsxNjY2LDcgQEAgcHVibGljOgogICAgIHN0
YXRpYyBUZXh0RW1waGFzaXNQb3NpdGlvbiBpbml0aWFsVGV4dEVtcGhhc2lzUG9zaXRpb24oKSB7
IHJldHVybiBUZXh0RW1waGFzaXNQb3NpdGlvbk92ZXI7IH0KICAgICBzdGF0aWMgTGluZUJveENv
bnRhaW4gaW5pdGlhbExpbmVCb3hDb250YWluKCkgeyByZXR1cm4gTGluZUJveENvbnRhaW5CbG9j
ayB8IExpbmVCb3hDb250YWluSW5saW5lIHwgTGluZUJveENvbnRhaW5SZXBsYWNlZDsgfQogICAg
IHN0YXRpYyBFSW1hZ2VSZW5kZXJpbmcgaW5pdGlhbEltYWdlUmVuZGVyaW5nKCkgeyByZXR1cm4g
SW1hZ2VSZW5kZXJpbmdBdXRvOyB9CisgICAgc3RhdGljIEltYWdlUmVzb2x1dGlvblNvdXJjZSBp
bml0aWFsSW1hZ2VSZXNvbHV0aW9uU291cmNlKCkgeyByZXR1cm4gSW1hZ2VSZXNvbHV0aW9uU3Bl
Y2lmaWVkOyB9CiAgICAgc3RhdGljIGZsb2F0IGluaXRpYWxJbWFnZVJlc29sdXRpb24oKSB7IHJl
dHVybiAxOyB9CiAgICAgc3RhdGljIFN0eWxlSW1hZ2UqIGluaXRpYWxCb3JkZXJJbWFnZVNvdXJj
ZSgpIHsgcmV0dXJuIDA7IH0KICAgICBzdGF0aWMgU3R5bGVJbWFnZSogaW5pdGlhbE1hc2tCb3hJ
bWFnZVNvdXJjZSgpIHsgcmV0dXJuIDA7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKaW5kZXggZGNkNTJkYzMwYzZlZWZh
ZTRhZDNjMmYyODZkZDBiOGE2ZDRiMDQ0YS4uZGE1N2I5MzZlMGZmMjRiYzYxYmJlYzFlODQ5ZmYx
ZTc0OGEwNDRkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmgKQEAgLTQ1NCw2ICs0NTQsOCBAQCBlbnVtIFRleHRPdmVy
ZmxvdyB7IFRleHRPdmVyZmxvd0NsaXAgPSAwLCBUZXh0T3ZlcmZsb3dFbGxpcHNpcyB9OwogCiBl
bnVtIEVJbWFnZVJlbmRlcmluZyB7IEltYWdlUmVuZGVyaW5nQXV0bywgSW1hZ2VSZW5kZXJpbmdP
cHRpbWl6ZVNwZWVkLCBJbWFnZVJlbmRlcmluZ09wdGltaXplUXVhbGl0eSwgSW1hZ2VSZW5kZXJp
bmdPcHRpbWl6ZUNvbnRyYXN0IH07CiAKK2VudW0gSW1hZ2VSZXNvbHV0aW9uU291cmNlIHsgSW1h
Z2VSZXNvbHV0aW9uU3BlY2lmaWVkID0gMCwgSW1hZ2VSZXNvbHV0aW9uRnJvbUltYWdlIH07CisK
IGVudW0gT3JkZXIgeyBMb2dpY2FsT3JkZXIgPSAwLCBWaXN1YWxPcmRlciB9OwogCiBlbnVtIFJl
Z2lvbk92ZXJmbG93IHsgQXV0b1JlZ2lvbk92ZXJmbG93LCBCcmVha1JlZ2lvbk92ZXJmbG93IH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJl
SW5oZXJpdGVkRGF0YS5jcHAKaW5kZXggMzVhNTJlNTQ1N2RlODkzM2E5Y2E4OWJiYmM4M2M3YjIx
MWFlOGRkOS4uN2ZlNjA5YzIxOGRmMGVhODZhOGVkNjQ4NmIzYjNkZDY3YmFmNGM5ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERh
dGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhl
cml0ZWREYXRhLmNwcApAQCAtODcsNiArODcsOSBAQCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpT
dHlsZVJhcmVJbmhlcml0ZWREYXRhKCkKICNpZiBFTkFCTEUoT1ZFUkZMT1dfU0NST0xMSU5HKQog
ICAgICwgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZyhSZW5kZXJTdHlsZTo6aW5pdGlhbFVzZVRv
dWNoT3ZlcmZsb3dTY3JvbGxpbmcoKSkKICNlbmRpZgorI2lmIEVOQUJMRShDU1NfSU1BR0VfUkVT
T0xVVElPTikKKyAgICAsIG1faW1hZ2VSZXNvbHV0aW9uU291cmNlKFJlbmRlclN0eWxlOjppbml0
aWFsSW1hZ2VSZXNvbHV0aW9uU291cmNlKCkpCisjZW5kaWYKICAgICAsIGh5cGhlbmF0aW9uTGlt
aXRCZWZvcmUoLTEpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QWZ0ZXIoLTEpCiAgICAgLCBoeXBo
ZW5hdGlvbkxpbWl0TGluZXMoLTEpCkBAIC0xNDIsNiArMTQ1LDkgQEAgU3R5bGVSYXJlSW5oZXJp
dGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YShjb25zdCBTdHlsZVJhcmVJbmhlcml0ZWRE
YXRhJiBvKQogI2lmIEVOQUJMRShPVkVSRkxPV19TQ1JPTExJTkcpCiAgICAgLCB1c2VUb3VjaE92
ZXJmbG93U2Nyb2xsaW5nKG8udXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZykKICNlbmRpZgorI2lm
IEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikKKyAgICAsIG1faW1hZ2VSZXNvbHV0aW9uU291
cmNlKG8ubV9pbWFnZVJlc29sdXRpb25Tb3VyY2UpCisjZW5kaWYKICAgICAsIGh5cGhlbmF0aW9u
U3RyaW5nKG8uaHlwaGVuYXRpb25TdHJpbmcpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QmVmb3Jl
KG8uaHlwaGVuYXRpb25MaW1pdEJlZm9yZSkKICAgICAsIGh5cGhlbmF0aW9uTGltaXRBZnRlcihv
Lmh5cGhlbmF0aW9uTGltaXRBZnRlcikKQEAgLTIyNCw2ICsyMzAsNyBAQCBib29sIFN0eWxlUmFy
ZUluaGVyaXRlZERhdGE6Om9wZXJhdG9yPT0oY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYg
bykgY29uc3QKICAgICAgICAgJiYgbV9saW5lR3JpZCA9PSBvLm1fbGluZUdyaWQKICAgICAgICAg
JiYgbV9pbWFnZVJlbmRlcmluZyA9PSBvLm1faW1hZ2VSZW5kZXJpbmcKICNpZiBFTkFCTEUoQ1NT
X0lNQUdFX1JFU09MVVRJT04pCisgICAgICAgICYmIG1faW1hZ2VSZXNvbHV0aW9uU291cmNlID09
IG8ubV9pbWFnZVJlc29sdXRpb25Tb3VyY2UKICAgICAgICAgJiYgbV9pbWFnZVJlc29sdXRpb24g
PT0gby5tX2ltYWdlUmVzb2x1dGlvbgogI2VuZGlmCiAgICAgICAgICYmIG1fbGluZVNuYXAgPT0g
by5tX2xpbmVTbmFwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAppbmRleCBiMzI5ZThiZmQ5Yzc4YzQ3YzY3ODY1NmY2
NTZiZGMxYzVkMDE4OTM2Li41ODkxYWY5OGYxNzVmOTJkZmQ2ZjlmZjIyNjc1NTFmMTgzNDk2YTll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5o
ZXJpdGVkRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJh
cmVJbmhlcml0ZWREYXRhLmgKQEAgLTEwMSw2ICsxMDEsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxF
KE9WRVJGTE9XX1NDUk9MTElORykKICAgICB1bnNpZ25lZCB1c2VUb3VjaE92ZXJmbG93U2Nyb2xs
aW5nOiAxOwogI2VuZGlmCisjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQorICAgIHVu
c2lnbmVkIG1faW1hZ2VSZXNvbHV0aW9uU291cmNlIDogMTsgLy8gSW1hZ2VSZXNvbHV0aW9uU291
cmNlCisjZW5kaWYKIAogICAgIEF0b21pY1N0cmluZyBoeXBoZW5hdGlvblN0cmluZzsKICAgICBz
aG9ydCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDdkNzNhYmM5M2IzYTQwY2I2OTZl
MTJhZjNjNTQwY2FlMjBhNTQwN2MuLjE2MTkzNmJmMDBhNmQ0MjI5OTYwZjg2MTExYzY3ZmE5OWZl
ZjQxMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wNi0xNyAgRGF2aWQgQmFyciAgPGRh
dmlkYmFyckBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgQWRkIGZyb20taW1hZ2UgdG8gY3NzMy1p
bWFnZXMgaW1hZ2UtcmVzb2x1dGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODU0NTEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24vaW1hZ2UtcmVzb2x1dGlv
bi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbi9pbWFn
ZS1yZXNvbHV0aW9uLmh0bWw6CisKIDIwMTItMDYtMTUgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5v
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkLiBSZWJhc2VsaW5lcyBmb3IgcjEy
MDQ3Ny4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24v
aW1hZ2UtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWFn
ZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IGI3NjczMWZl
YWQzYzIwNGU5YWEzOTA2MWQ5Y2ZjMjU4NjU0NzBjOTkuLjllM2M5MzM3MjRiNTc5YmFlODJhOWFl
YjI0ZGMyYzA0MTUwMjIxNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltYWdl
LXJlc29sdXRpb24vaW1hZ2UtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbi9pbWFnZS1yZXNvbHV0aW9uLWV4cGVjdGVkLnR4
dApAQCAtMSw0ICsxLDQgQEAKLUFwcGx5IGltYWdlLXJlc29sdXRpb24gcHJvcGVydHkgdG8gYSBm
aXhlZCBpbWFnZSAoMTZ4MTZAMC43NWRwcHgpLgorQXBwbHkgaW1hZ2UtcmVzb2x1dGlvbiBwcm9w
ZXJ0eSB0byBhIGZpeGVkIGltYWdlICgxNngxNikuCiAKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KIApAQCAtNzUsNiArNzUsMTUwIEBAIFBBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDQKIFBBU1Mg
aW1nLm9mZnNldEhlaWdodCBpcyA0CiBURVNUICIiCiBQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlz
ICIiCitURVNUICIwZHBweCBmcm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAi
IgorVEVTVCAiZnJvbS1pbWFnZSAwZHBweCIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgIiIK
K1RFU1QgIjFkcHB4IGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFn
ZS1yZXNvbHV0aW9uOiAxZHBweCBmcm9tLWltYWdlOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBp
cyAxNgorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDE2CitURVNUICJmcm9tLWltYWdlIDFkcHB4
IgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJvbS1pbWFn
ZSAxZHBweDsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMTYKK1BBU1MgaW1nLm9mZnNldEhl
aWdodCBpcyAxNgorVEVTVCAiMmRwcHggZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1Rl
eHQgaXMgImltYWdlLXJlc29sdXRpb246IDJkcHB4IGZyb20taW1hZ2U7ICIKK1BBU1MgaW1nLm9m
ZnNldFdpZHRoIGlzIDgKK1BBU1MgaW1nLm9mZnNldEhlaWdodCBpcyA4CitURVNUICJmcm9tLWlt
YWdlIDJkcHB4IgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjog
ZnJvbS1pbWFnZSAyZHBweDsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgOAorUEFTUyBpbWcu
b2Zmc2V0SGVpZ2h0IGlzIDgKK1RFU1QgIjNkcHB4IGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHls
ZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiAzZHBweCBmcm9tLWltYWdlOyAiCitQQVNT
IGltZy5vZmZzZXRXaWR0aCBpcyA1CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgNQorVEVTVCAi
ZnJvbS1pbWFnZSAzZHBweCIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29s
dXRpb246IGZyb20taW1hZ2UgM2RwcHg7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDUKK1BB
U1MgaW1nLm9mZnNldEhlaWdodCBpcyA1CitURVNUICI0ZHBweCBmcm9tLWltYWdlIgorUEFTUyBp
bWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogNGRwcHggZnJvbS1pbWFnZTsg
IgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgNAorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDQK
K1RFU1QgImZyb20taW1hZ2UgNGRwcHgiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFn
ZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDRkcHB4OyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBp
cyA0CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgNAorVEVTVCAiMGRwaSBmcm9tLWltYWdlIgor
UEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiIgorVEVTVCAiZnJvbS1pbWFnZSAwZHBpIgorUEFT
UyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiIgorVEVTVCAiOTZkcGkgZnJvbS1pbWFnZSIKK1BBU1Mg
aW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDk2ZHBpIGZyb20taW1hZ2U7
ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDE2CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMg
MTYKK1RFU1QgImZyb20taW1hZ2UgOTZkcGkiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJp
bWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDk2ZHBpOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0
aCBpcyAxNgorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDE2CitURVNUICIxOTJkcGkgZnJvbS1p
bWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDE5MmRw
aSBmcm9tLWltYWdlOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA4CitQQVNTIGltZy5vZmZz
ZXRIZWlnaHQgaXMgOAorVEVTVCAiZnJvbS1pbWFnZSAxOTJkcGkiCitQQVNTIGltZy5zdHlsZS5j
c3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDE5MmRwaTsgIgorUEFTUyBp
bWcub2Zmc2V0V2lkdGggaXMgOAorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDgKK1RFU1QgIjI4
OGRwaSBmcm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1
dGlvbjogMjg4ZHBpIGZyb20taW1hZ2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDUKK1BB
U1MgaW1nLm9mZnNldEhlaWdodCBpcyA1CitURVNUICJmcm9tLWltYWdlIDI4OGRwaSIKK1BBU1Mg
aW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMjg4ZHBp
OyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA1CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMg
NQorVEVTVCAiMzg0ZHBpIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJp
bWFnZS1yZXNvbHV0aW9uOiAzODRkcGkgZnJvbS1pbWFnZTsgIgorUEFTUyBpbWcub2Zmc2V0V2lk
dGggaXMgNAorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDQKK1RFU1QgImZyb20taW1hZ2UgMzg0
ZHBpIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJvbS1p
bWFnZSAzODRkcGk7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDQKK1BBU1MgaW1nLm9mZnNl
dEhlaWdodCBpcyA0CitURVNUICIxNTBkcGkgZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNz
c1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDE1MGRwaSBmcm9tLWltYWdlOyAiCitQQVNTIGlt
Zy5vZmZzZXRXaWR0aCBpcyAxMAorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDEwCitURVNUICJm
cm9tLWltYWdlIDE1MGRwaSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29s
dXRpb246IGZyb20taW1hZ2UgMTUwZHBpOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyAxMAor
UEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDEwCitURVNUICIzMDBkcGkgZnJvbS1pbWFnZSIKK1BB
U1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDMwMGRwaSBmcm9tLWlt
YWdlOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA1CitQQVNTIGltZy5vZmZzZXRIZWlnaHQg
aXMgNQorVEVTVCAiZnJvbS1pbWFnZSAzMDBkcGkiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlz
ICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDMwMGRwaTsgIgorUEFTUyBpbWcub2Zmc2V0
V2lkdGggaXMgNQorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDUKK1RFU1QgIjQ1MGRwaSBmcm9t
LWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogNDUw
ZHBpIGZyb20taW1hZ2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDMKK1BBU1MgaW1nLm9m
ZnNldEhlaWdodCBpcyAzCitURVNUICJmcm9tLWltYWdlIDQ1MGRwaSIKK1BBU1MgaW1nLnN0eWxl
LmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgNDUwZHBpOyAiCitQQVNT
IGltZy5vZmZzZXRXaWR0aCBpcyAzCitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgMworVEVTVCAi
NjAwZHBpIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNv
bHV0aW9uOiA2MDBkcGkgZnJvbS1pbWFnZTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMgor
UEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDIKK1RFU1QgImZyb20taW1hZ2UgNjAwZHBpIgorUEFT
UyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJvbS1pbWFnZSA2MDBk
cGk7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDIKK1BBU1MgaW1nLm9mZnNldEhlaWdodCBp
cyAyCitURVNUICIwZHBjbSBmcm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAi
IgorVEVTVCAiZnJvbS1pbWFnZSAwZHBjbSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgIiIK
K1RFU1QgIjM3LjdkcGNtIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJp
bWFnZS1yZXNvbHV0aW9uOiAzNy43ZHBjbSBmcm9tLWltYWdlOyAiCitQQVNTIGltZy5vZmZzZXRX
aWR0aCBpcyAxNgorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDE2CitURVNUICJmcm9tLWltYWdl
IDM3LjdkcGNtIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjog
ZnJvbS1pbWFnZSAzNy43ZHBjbTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMTYKK1BBU1Mg
aW1nLm9mZnNldEhlaWdodCBpcyAxNgorVEVTVCAiNzUuNWRwY20gZnJvbS1pbWFnZSIKK1BBU1Mg
aW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDc1LjVkcGNtIGZyb20taW1h
Z2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDgKK1BBU1MgaW1nLm9mZnNldEhlaWdodCBp
cyA4CitURVNUICJmcm9tLWltYWdlIDc1LjVkcGNtIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBp
cyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJvbS1pbWFnZSA3NS41ZHBjbTsgIgorUEFTUyBpbWcub2Zm
c2V0V2lkdGggaXMgOAorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDgKK1RFU1QgIjExMy4zZHBj
bSBmcm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlv
bjogMTEzLjNkcGNtIGZyb20taW1hZ2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDUKK1BB
U1MgaW1nLm9mZnNldEhlaWdodCBpcyA1CitURVNUICJmcm9tLWltYWdlIDExMy4zZHBjbSIKK1BB
U1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMTEz
LjNkcGNtOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA1CitQQVNTIGltZy5vZmZzZXRIZWln
aHQgaXMgNQorVEVTVCAiMTUxLjFkcGNtIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NU
ZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiAxNTEuMWRwY20gZnJvbS1pbWFnZTsgIgorUEFTUyBp
bWcub2Zmc2V0V2lkdGggaXMgNAorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDQKK1RFU1QgImZy
b20taW1hZ2UgMTUxLjFkcGNtIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVz
b2x1dGlvbjogZnJvbS1pbWFnZSAxNTEuMWRwY207ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlz
IDQKK1BBU1MgaW1nLm9mZnNldEhlaWdodCBpcyA0CitURVNUICJmcm9tLWltYWdlIgorUEFTUyBp
bWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJvbS1pbWFnZTsgIgorUEFT
UyBpbWcub2Zmc2V0V2lkdGggaXMgMTYKK1BBU1MgaW1nLm9mZnNldEhlaWdodCBpcyAxNgogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24u
aHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24vaW1hZ2UtcmVzb2x1
dGlvbi5odG1sCmluZGV4IDdlYjM1NTI2N2I3MzY0YmQwZmJkOTUyYzRiOGUyZTFlMzA4YmMxYTAu
LjdlMTk0ZTQ1ZDM2MjM4MWFkNjNhMzFkZDc5NjAyYjgwMTczMjEzNjkgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24vaW1hZ2UtcmVzb2x1dGlvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24vaW1hZ2UtcmVzb2x1
dGlvbi5odG1sCkBAIC0zOSw3ICszOSw3IEBAIGZ1bmN0aW9uIGNvbXB1dGVSZXNvbHV0aW9uKHJl
c29sdXRpb24sIGltZ1Jlc29sdXRpb25EcHB4KQogICAgICAgICBlbHNlIGlmICh1bml0ID09PSAn
ZHBjbScpCiAgICAgICAgICAgICBkcHB4ID0gdmFsdWUgLyAoY3NzUHhQZXJJbiAvIGNtUGVySW4p
OwogICAgIH0KLSAgICBpZiAoZnJvbUltYWdlKQorICAgIGlmIChmcm9tSW1hZ2UgJiYgaW1nUmVz
b2x1dGlvbkRwcHgpCiAgICAgICAgIGRwcHggPSBpbWdSZXNvbHV0aW9uRHBweDsKICAgICBpZiAo
c25hcCkKICAgICAgICAgZHBweCA9IE1hdGguZmxvb3IoZHBweCk7CkBAIC00OCwxMSArNDgsMjYg
QEAgZnVuY3Rpb24gY29tcHV0ZVJlc29sdXRpb24ocmVzb2x1dGlvbiwgaW1nUmVzb2x1dGlvbkRw
cHgpCiAgICAgcmV0dXJuIGRwcHg7CiB9CiAKK2Z1bmN0aW9uIHBlcm11dGUyKHJ1bGUpIHsKKyAg
ICB2YXIgcyA9IHJ1bGUudHJpbSgpLnNwbGl0KCcgJyk7CisgICAgaWYgKHMubGVuZ3RoID09IDEp
CisgICAgICAgIHJldHVybiBzOworICAgIHJldHVybiBbcy5qb2luKCcgJyksIFtzWzFdLCBzWzBd
XS5qb2luKCcgJyldOworfQorCitmdW5jdGlvbiBnZW5lcmF0ZVRlc3RzKHJlc29sdXRpb25zKSB7
CisgICAgdmFyIHRlc3RzID0gcmVzb2x1dGlvbnMuc2xpY2UoKTsKKyAgICByZXNvbHV0aW9ucy5m
b3JFYWNoKGZ1bmN0aW9uKHJlc29sdXRpb24pIHsKKyAgICAgICAgdGVzdHMucHVzaC5hcHBseSh0
ZXN0cywgcGVybXV0ZTIocmVzb2x1dGlvbiArICcgZnJvbS1pbWFnZScpKTsKKyAgICB9KTsKKyAg
ICByZXR1cm4gdGVzdHM7Cit9CisKIHZhciBpbWdVcmwgPSAnLi4vLi4vaW1hZ2VzL3Jlc291cmNl
cy9ncmVlbi5qcGcnOwogdmFyIGltZ1dpZHRoUHggPSAxNjsKIHZhciBpbWdIZWlnaHRQeCA9IDE2
OwotdmFyIGltZ1Jlc29sdXRpb25EcHB4ID0gNzIgLyA5NjsKLXZhciBkaW1lbnNpb25zID0gaW1n
V2lkdGhQeCArICd4JyArIGltZ0hlaWdodFB4ICsgJ0AnICsgaW1nUmVzb2x1dGlvbkRwcHggKyAn
ZHBweCc7Cit2YXIgaW1nUmVzb2x1dGlvbkRwcHggPSAwOyAvKiBFbWJlZGRlZCBpbWFnZSByZXNv
bHV0aW9uIGRhdGEgbm90IHBsdW1iZWQgeWV0LiAqLwordmFyIGRpbWVuc2lvbnMgPSBpbWdXaWR0
aFB4ICsgJ3gnICsgaW1nSGVpZ2h0UHg7CiAKIGRlc2NyaXB0aW9uKCdBcHBseSBpbWFnZS1yZXNv
bHV0aW9uIHByb3BlcnR5IHRvIGEgZml4ZWQgaW1hZ2UgKCcgKyBkaW1lbnNpb25zICsgJykuJyk7
CiAKQEAgLTY1LDcgKzgwLDcgQEAgdmFyIHJlc29sdXRpb25zID0gWycwZHBweCcsICcxZHBweCcs
ICcyZHBweCcsICczZHBweCcsICc0ZHBweCcsCiAgICAgICAgICAgICAgICAgICAgJzBkcGNtJywg
JzM3LjdkcGNtJywgJzc1LjVkcGNtJywgJzExMy4zZHBjbScsICcxNTEuMWRwY20nLCAnJ107CiAK
IGltZy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICByZXNvbHV0aW9ucy5mb3JFYWNoKGZ1bmN0
aW9uKHRlc3QpIHsKKyAgICBnZW5lcmF0ZVRlc3RzKHJlc29sdXRpb25zKS5mb3JFYWNoKGZ1bmN0
aW9uKHRlc3QpIHsKICAgICAgICAgdmFyIGRwcHggPSBjb21wdXRlUmVzb2x1dGlvbih0ZXN0LCBp
bWdSZXNvbHV0aW9uRHBweCk7CiAgICAgICAgIGltZy5zdHlsZS5pbWFnZVJlc29sdXRpb24gPSAn
JzsKICAgICAgICAgaW1nLnN0eWxlLmltYWdlUmVzb2x1dGlvbiA9IHRlc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148045</attachid>
            <date>2012-06-17 21:18:16 -0700</date>
            <delta_ts>2012-06-18 16:30:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-85451-20120618141814.patch</filename>
            <type>text/plain</type>
            <size>22142</size>
            <attacher name="David Barr">davidbarr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM4YzVhMzk5NjJjZjhm
ZGUxMjU4MmY0MGJkOWRlYTg4ZTc1MTQyNS4uNDFkNzIyYjgwMDcwMDFkZTdhNTZmYmZiMWU0MTQw
ZDAxZTg3ZjA2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA2LTE3ICBEYXZp
ZCBCYXJyICA8ZGF2aWRiYXJyQGNocm9taXVtLm9yZz4KKworICAgICAgICBBZGQgZnJvbS1pbWFn
ZSB0byBjc3MzLWltYWdlcyBpbWFnZS1yZXNvbHV0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTQ1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBjc3MzLWltYWdlcyBtb2R1bGUgaXMgYXQgY2Fu
ZGlkYXRlIHJlY29tbWVuZGF0aW9uLgorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi8yMDEy
L0NSLWNzczMtaW1hZ2VzLTIwMTIwNDE3LyN0aGUtaW1hZ2UtcmVzb2x1dGlvbgorCisgICAgICAg
IE5vIG5ldyB0ZXN0czsgZXh0ZW5kZWQgZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbi9pbWFnZS1y
ZXNvbHV0aW9uLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOiBBY2NlcHQgZnJv
bS1pbWFnZSBpZGVudGlmaWVyIGluIGltYWdlLXJlc29sdXRpb24gcHJvcGVydHkuCisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnBhcnNlSW1hZ2VSZXNvbHV0aW9uKTogTWFwIENTU1ZhbHVl
RnJvbUltYWdlIHRvIGlkZW50aWZpZXIgdmFsdWUgZnJvbSBjc3NWYWx1ZVBvb2wuCisgICAgICAg
ICogY3NzL0NTU1ZhbHVlS2V5d29yZHMuaW46IEFkZCBmcm9tLWltYWdlLgorICAgICAgICAqIGNz
cy9TdHlsZUJ1aWxkZXIuY3BwOiBFeHRlbmQgQXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbiB0
byBhcHBseSBSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uU291cmNlLgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbjo6YXBwbHlJbmhlcml0VmFsdWUpOiBB
cHBseSBSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uU291cmNlLgorICAgICAgICAoV2ViQ29y
ZTo6QXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbjo6YXBwbHlJbml0aWFsVmFsdWUpOiBBcHBs
eSBSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uU291cmNlLgorICAgICAgICAoV2ViQ29yZTo6
QXBwbHlQcm9wZXJ0eUltYWdlUmVzb2x1dGlvbjo6YXBwbHlWYWx1ZSk6IE1hcCBDU1NWYWx1ZUZy
b21JbWFnZSB0byBJbWFnZVJlc29sdXRpb25Gcm9tSW1hZ2UuCisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcDogRXh0ZW5kIGNvbmRpdGlvbnMgZm9yIHJlY2FsY3VsYXRpb24gb2Yg
aW50cmluc2ljIHNpemUuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6c3R5bGVEaWRD
aGFuZ2UpOiBVcGRhdGUgaW50cmluc2ljIHNpemUgaWYgUmVuZGVyU3R5bGU6OmltYWdlUmVzb2x1
dGlvblNvdXJjZSgpIGhhcyBjaGFuZ2VkLgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHA6IEluY2x1ZGUgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6bV9pbWFnZVJlc29s
dXRpb25Tb3VyY2UgaW4gc3R5bGUgZGlmZi4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclN0eWxl
OjpkaWZmKTogTWFwIGNoYW5nZSBpbiBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjptX2ltYWdlUmVz
b2x1dGlvblNvdXJjZSB0byBTdHlsZURpZmZlcmVuY2VMYXlvdXQuCisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6IEFkZCBSZW5kZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9u
U291cmNlLCBSZW5kZXJTdHlsZTo6c2V0SW1hZ2VSZXNvbHV0aW9uU291cmNlLCBSZW5kZXJTdHls
ZTo6aW5pdGlhbEltYWdlUmVzb2x1dGlvblNvdXJjZS4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuaDogQWRkIGVudW0gSW1hZ2VSZXNvbHV0aW9uU291cmNl
LgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcDog
QWRkIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6Om1faW1hZ2VSZXNvbHV0aW9uU291cmNlLgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVk
RGF0YSk6IEFkZCBtX2ltYWdlUmVzb2x1dGlvblNvdXJjZSB0byBkZWZhdWx0IGFuZCBjb3B5IGNv
bnN0cnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6b3Bl
cmF0b3I9PSk6IEluY2x1ZGUgbV9pbWFnZVJlc29sdXRpb25Tb3VyY2UgaW4gY29tcGFyaXNvbi4K
KyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oOiBBZGQg
U3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6bV9pbWFnZVJlc29sdXRpb25Tb3VyY2UuCisgICAgICAg
IChTdHlsZVJhcmVJbmhlcml0ZWREYXRhKTogQWRkIDEtYml0IGZpZWxkIFN0eWxlUmFyZUluaGVy
aXRlZERhdGE6Om1faW1hZ2VSZXNvbHV0aW9uU291cmNlLgorCiAyMDEyLTA2LTE1ICBTaWx2aWEg
UGZlaWZmZXIgIDxzaWx2aWFwZkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIHZvbHVt
ZSB0aHVtYiBmb3IgdmlkZW9zIHdpdGhvdXQgYXVkaW8gdHJhY2suCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJz
ZXIuY3BwCmluZGV4IDY5NGJlYjg1NjY3MDc3ZmZlNzJmMWZjMjczZGQ5ZmFlYzQzMjEwM2QuLmM1
MmE3ZjZhOWI1ZmU5NmRkYWIwNDY2ZGMxZDA1NDI1ODZlYmMzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXIuY3BwCkBAIC02ODg5LDEwICs2ODg5LDE0IEBAIFBhc3NSZWZQdHI8Q1NTVmFsdWU+IENT
U1BhcnNlcjo6cGFyc2VJbWFnZVJlc29sdXRpb24oQ1NTUGFyc2VyVmFsdWVMaXN0KiB2YWx1ZUxp
CiB7CiAgICAgUmVmUHRyPENTU1ZhbHVlTGlzdD4gbGlzdCA9IENTU1ZhbHVlTGlzdDo6Y3JlYXRl
U3BhY2VTZXBhcmF0ZWQoKTsKICAgICBib29sIGhhdmVSZXNvbHV0aW9uID0gZmFsc2U7CisgICAg
Ym9vbCBoYXZlRnJvbUltYWdlID0gZmFsc2U7CiAKICAgICBDU1NQYXJzZXJWYWx1ZSogdmFsdWUg
PSB2YWx1ZUxpc3QtPmN1cnJlbnQoKTsKICAgICB3aGlsZSAodmFsdWUpIHsKLSAgICAgICAgaWYg
KCFoYXZlUmVzb2x1dGlvbiAmJiB2YWxpZFVuaXQodmFsdWUsIEZSZXNvbHV0aW9uIHwgRk5vbk5l
ZykgJiYgdmFsdWUtPmZWYWx1ZSA+IDApIHsKKyAgICAgICAgaWYgKCFoYXZlRnJvbUltYWdlICYm
IHZhbHVlLT5pZCA9PSBDU1NWYWx1ZUZyb21JbWFnZSkgeworICAgICAgICAgICAgbGlzdC0+YXBw
ZW5kKGNzc1ZhbHVlUG9vbCgpLmNyZWF0ZUlkZW50aWZpZXJWYWx1ZSh2YWx1ZS0+aWQpKTsKKyAg
ICAgICAgICAgIGhhdmVGcm9tSW1hZ2UgPSB0cnVlOworICAgICAgICB9IGVsc2UgaWYgKCFoYXZl
UmVzb2x1dGlvbiAmJiB2YWxpZFVuaXQodmFsdWUsIEZSZXNvbHV0aW9uIHwgRk5vbk5lZykgJiYg
dmFsdWUtPmZWYWx1ZSA+IDApIHsKICAgICAgICAgICAgIGxpc3QtPmFwcGVuZChjcmVhdGVQcmlt
aXRpdmVOdW1lcmljVmFsdWUodmFsdWUpKTsKICAgICAgICAgICAgIGhhdmVSZXNvbHV0aW9uID0g
dHJ1ZTsKICAgICAgICAgfSBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
VmFsdWVLZXl3b3Jkcy5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmlu
CmluZGV4IDk4YjIwYzNiMGMyMDljYzQ4MWE2M2QwNjMxZjQ1NTUyMGI3YTJkYjkuLjZmOTZhMDQx
MDM3NmY3MjEzNjQ1ZjYyZjAxMmM5MTYzY2JhYzNmM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZUtleXdvcmRzLmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NW
YWx1ZUtleXdvcmRzLmluCkBAIC05MjQsMyArOTI0LDcgQEAgZmlsdGVyLWJveAogZGV0YWNoZWQK
ICNlbmRpZiAvLyBDU1NfU0hBREVSUwogI2VuZGlmIC8vIENTU19GSUxURVJTCisKKyNpZiBkZWZp
bmVkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJiYgRU5BQkxFX0NTU19JTUFHRV9SRVNP
TFVUSU9OCitmcm9tLWltYWdlCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TdHlsZUJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVpbGRlci5jcHAK
aW5kZXggNTY0Njc3ZjljZDRhZDg3YWE3MzU3NGVhNGU0YzAxMjg2ODE5ZTdhNy4uYmZmOWZmNDRh
NzNhZjFkMzUzYTFjNmZiMTEyMzIyNGY1YzhlNjI1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlQnVp
bGRlci5jcHAKQEAgLTE3NzIsMTEgKzE3NzIsMTMgQEAgY2xhc3MgQXBwbHlQcm9wZXJ0eUltYWdl
UmVzb2x1dGlvbiB7CiBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgYXBwbHlJbmhlcml0VmFsdWUo
U3R5bGVSZXNvbHZlciogc3R5bGVSZXNvbHZlcikKICAgICB7CisgICAgICAgIEFwcGx5UHJvcGVy
dHlEZWZhdWx0QmFzZTxJbWFnZVJlc29sdXRpb25Tb3VyY2UsICZSZW5kZXJTdHlsZTo6aW1hZ2VS
ZXNvbHV0aW9uU291cmNlLCBJbWFnZVJlc29sdXRpb25Tb3VyY2UsICZSZW5kZXJTdHlsZTo6c2V0
SW1hZ2VSZXNvbHV0aW9uU291cmNlLCBJbWFnZVJlc29sdXRpb25Tb3VyY2UsICZSZW5kZXJTdHls
ZTo6aW5pdGlhbEltYWdlUmVzb2x1dGlvblNvdXJjZT46OmFwcGx5SW5oZXJpdFZhbHVlKHN0eWxl
UmVzb2x2ZXIpOwogICAgICAgICBBcHBseVByb3BlcnR5RGVmYXVsdEJhc2U8ZmxvYXQsICZSZW5k
ZXJTdHlsZTo6aW1hZ2VSZXNvbHV0aW9uLCBmbG9hdCwgJlJlbmRlclN0eWxlOjpzZXRJbWFnZVJl
c29sdXRpb24sIGZsb2F0LCAmUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFnZVJlc29sdXRpb24+Ojph
cHBseUluaGVyaXRWYWx1ZShzdHlsZVJlc29sdmVyKTsKICAgICB9CiAKICAgICBzdGF0aWMgdm9p
ZCBhcHBseUluaXRpYWxWYWx1ZShTdHlsZVJlc29sdmVyKiBzdHlsZVJlc29sdmVyKQogICAgIHsK
KyAgICAgICAgQXBwbHlQcm9wZXJ0eURlZmF1bHRCYXNlPEltYWdlUmVzb2x1dGlvblNvdXJjZSwg
JlJlbmRlclN0eWxlOjppbWFnZVJlc29sdXRpb25Tb3VyY2UsIEltYWdlUmVzb2x1dGlvblNvdXJj
ZSwgJlJlbmRlclN0eWxlOjpzZXRJbWFnZVJlc29sdXRpb25Tb3VyY2UsIEltYWdlUmVzb2x1dGlv
blNvdXJjZSwgJlJlbmRlclN0eWxlOjppbml0aWFsSW1hZ2VSZXNvbHV0aW9uU291cmNlPjo6YXBw
bHlJbml0aWFsVmFsdWUoc3R5bGVSZXNvbHZlcik7CiAgICAgICAgIEFwcGx5UHJvcGVydHlEZWZh
dWx0QmFzZTxmbG9hdCwgJlJlbmRlclN0eWxlOjppbWFnZVJlc29sdXRpb24sIGZsb2F0LCAmUmVu
ZGVyU3R5bGU6OnNldEltYWdlUmVzb2x1dGlvbiwgZmxvYXQsICZSZW5kZXJTdHlsZTo6aW5pdGlh
bEltYWdlUmVzb2x1dGlvbj46OmFwcGx5SW5pdGlhbFZhbHVlKHN0eWxlUmVzb2x2ZXIpOwogICAg
IH0KIApAQCAtMTc4NSwxMyArMTc4NywyMCBAQCBwdWJsaWM6CiAgICAgICAgIGlmICghdmFsdWUt
PmlzVmFsdWVMaXN0KCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIENTU1ZhbHVlTGlz
dCogdmFsdWVMaXN0ID0gc3RhdGljX2Nhc3Q8Q1NTVmFsdWVMaXN0Kj4odmFsdWUpOworICAgICAg
ICBJbWFnZVJlc29sdXRpb25Tb3VyY2Ugc291cmNlID0gUmVuZGVyU3R5bGU6OmluaXRpYWxJbWFn
ZVJlc29sdXRpb25Tb3VyY2UoKTsKKyAgICAgICAgZG91YmxlIHJlc29sdXRpb24gPSBSZW5kZXJT
dHlsZTo6aW5pdGlhbEltYWdlUmVzb2x1dGlvbigpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHZhbHVlTGlzdC0+bGVuZ3RoKCk7IGkrKykgewogICAgICAgICAgICAgQ1NTVmFsdWUq
IGl0ZW0gPSB2YWx1ZUxpc3QtPml0ZW1XaXRob3V0Qm91bmRzQ2hlY2soaSk7CiAgICAgICAgICAg
ICBpZiAoIWl0ZW0tPmlzUHJpbWl0aXZlVmFsdWUoKSkKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgICAgIENTU1ByaW1pdGl2ZVZhbHVlKiBwcmltaXRpdmVWYWx1ZSA9IHN0YXRp
Y19jYXN0PENTU1ByaW1pdGl2ZVZhbHVlKj4oaXRlbSk7Ci0gICAgICAgICAgICBzdHlsZVJlc29s
dmVyLT5zdHlsZSgpLT5zZXRJbWFnZVJlc29sdXRpb24ocHJpbWl0aXZlVmFsdWUtPmdldERvdWJs
ZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCkpOworICAgICAgICAgICAgaWYgKHBy
aW1pdGl2ZVZhbHVlLT5nZXRJZGVudCgpID09IENTU1ZhbHVlRnJvbUltYWdlKQorICAgICAgICAg
ICAgICAgIHNvdXJjZSA9IEltYWdlUmVzb2x1dGlvbkZyb21JbWFnZTsKKyAgICAgICAgICAgIGVs
c2UKKyAgICAgICAgICAgICAgICByZXNvbHV0aW9uID0gcHJpbWl0aXZlVmFsdWUtPmdldERvdWJs
ZVZhbHVlKENTU1ByaW1pdGl2ZVZhbHVlOjpDU1NfRFBQWCk7CiAgICAgICAgIH0KKyAgICAgICAg
c3R5bGVSZXNvbHZlci0+c3R5bGUoKS0+c2V0SW1hZ2VSZXNvbHV0aW9uU291cmNlKHNvdXJjZSk7
CisgICAgICAgIHN0eWxlUmVzb2x2ZXItPnN0eWxlKCktPnNldEltYWdlUmVzb2x1dGlvbihyZXNv
bHV0aW9uKTsKICAgICB9CiAKICAgICBzdGF0aWMgUHJvcGVydHlIYW5kbGVyIGNyZWF0ZUhhbmRs
ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYjdkNzEw
NTQ5NzI5Y2FhNDgyN2M3Y2NlMDg0MDg5MzZlZWY2MWI2Yi4uMDkzODgwZTk5YWEyODA4Yjk1ZWNk
OWJjYzlkNDgyYTlhNzkwMzI1MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1h
Z2UuY3BwCkBAIC0xMzgsNyArMTM4LDkgQEAgdm9pZCBSZW5kZXJJbWFnZTo6c3R5bGVEaWRDaGFu
Z2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHkKICAgICAg
ICAgbV9uZWVkc1RvU2V0U2l6ZUZvckFsdFRleHQgPSBmYWxzZTsKICAgICB9CiAjaWYgRU5BQkxF
KENTU19JTUFHRV9SRVNPTFVUSU9OKQotICAgIGlmIChkaWZmID09IFN0eWxlRGlmZmVyZW5jZUxh
eW91dCAmJiBvbGRTdHlsZS0+aW1hZ2VSZXNvbHV0aW9uKCkgIT0gc3R5bGUoKS0+aW1hZ2VSZXNv
bHV0aW9uKCkpCisgICAgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlTGF5b3V0CisgICAgICAg
ICYmIChvbGRTdHlsZS0+aW1hZ2VSZXNvbHV0aW9uKCkgIT0gc3R5bGUoKS0+aW1hZ2VSZXNvbHV0
aW9uKCkKKyAgICAgICAgICAgIHx8IG9sZFN0eWxlLT5pbWFnZVJlc29sdXRpb25Tb3VyY2UoKSAh
PSBzdHlsZSgpLT5pbWFnZVJlc29sdXRpb25Tb3VyY2UoKSkpCiAgICAgICAgIGltYWdlRGltZW5z
aW9uc0NoYW5nZWQodHJ1ZSAvKiBpbWFnZVNpemVDaGFuZ2VkICovKTsKICNlbmRpZgogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggZDAy
YTg3NWNlM2FiMzM1YmM5YzdjMmZiNDg4NjcyNGJlNDFiMDNmZi4uMzZjNWVkNDBlYjczNjUxMjhk
OWZjMDEzZjUzYWJhMDRiNjllODE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC00NzMsNiArNDczLDcgQEAgU3R5bGVEaWZmZXJlbmNl
IFJlbmRlclN0eWxlOjpkaWZmKGNvbnN0IFJlbmRlclN0eWxlKiBvdGhlciwgdW5zaWduZWQmIGNo
YW5nZWRDb24KICAgICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2xpbmVCb3hDb250
YWluICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+bV9saW5lQm94Q29udGFpbgogICAgICAg
ICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1fbGluZUdyaWQgIT0gb3RoZXItPnJhcmVJbmhl
cml0ZWREYXRhLT5tX2xpbmVHcmlkCiAjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQor
ICAgICAgICAgICAgfHwgcmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uU291cmNl
ICE9IG90aGVyLT5yYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlc29sdXRpb25Tb3VyY2UKICAg
ICAgICAgICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2ltYWdlUmVzb2x1dGlvbiAhPSBvdGhl
ci0+cmFyZUluaGVyaXRlZERhdGEtPm1faW1hZ2VSZXNvbHV0aW9uCiAjZW5kaWYKICAgICAgICAg
ICAgIHx8IHJhcmVJbmhlcml0ZWREYXRhLT5tX2xpbmVTbmFwICE9IG90aGVyLT5yYXJlSW5oZXJp
dGVkRGF0YS0+bV9saW5lU25hcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVu
ZGVyU3R5bGUuaAppbmRleCA5ZWQ3ZjkxZWRmN2U4NDM4ZGQ0Y2E4NzcxYTVkYzRkMDQxNWFjMTg2
Li4wY2JkM2ZjZWYzMjRiOGJmOGY0OWUxZWExNDZhZTA1OTMwZWRmMjZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtOTgyLDYgKzk4Miw3IEBA
IHB1YmxpYzoKICAgICBFSW1hZ2VSZW5kZXJpbmcgaW1hZ2VSZW5kZXJpbmcoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxFSW1hZ2VSZW5kZXJpbmc+KHJhcmVJbmhlcml0ZWREYXRhLT5tX2lt
YWdlUmVuZGVyaW5nKTsgfQogCiAjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQorICAg
IEltYWdlUmVzb2x1dGlvblNvdXJjZSBpbWFnZVJlc29sdXRpb25Tb3VyY2UoKSBjb25zdCB7IHJl
dHVybiBzdGF0aWNfY2FzdDxJbWFnZVJlc29sdXRpb25Tb3VyY2U+KHJhcmVJbmhlcml0ZWREYXRh
LT5tX2ltYWdlUmVzb2x1dGlvblNvdXJjZSk7IH0KICAgICBmbG9hdCBpbWFnZVJlc29sdXRpb24o
KSBjb25zdCB7IHJldHVybiByYXJlSW5oZXJpdGVkRGF0YS0+bV9pbWFnZVJlc29sdXRpb247IH0K
ICNlbmRpZgogICAgIApAQCAtMTE1Miw2ICsxMTUzLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
SW1hZ2VSZW5kZXJpbmcoRUltYWdlUmVuZGVyaW5nIHYpIHsgU0VUX1ZBUihyYXJlSW5oZXJpdGVk
RGF0YSwgbV9pbWFnZVJlbmRlcmluZywgdikgfQogCiAjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNP
TFVUSU9OKQorICAgIHZvaWQgc2V0SW1hZ2VSZXNvbHV0aW9uU291cmNlKEltYWdlUmVzb2x1dGlv
blNvdXJjZSB2KSB7IFNFVF9WQVIocmFyZUluaGVyaXRlZERhdGEsIG1faW1hZ2VSZXNvbHV0aW9u
U291cmNlLCB2KSB9CiAgICAgdm9pZCBzZXRJbWFnZVJlc29sdXRpb24oZmxvYXQgZikgeyBTRVRf
VkFSKHJhcmVJbmhlcml0ZWREYXRhLCBtX2ltYWdlUmVzb2x1dGlvbiwgZikgfQogI2VuZGlmCiAK
QEAgLTE2NjQsNiArMTY2Niw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgVGV4dEVtcGhhc2lzUG9z
aXRpb24gaW5pdGlhbFRleHRFbXBoYXNpc1Bvc2l0aW9uKCkgeyByZXR1cm4gVGV4dEVtcGhhc2lz
UG9zaXRpb25PdmVyOyB9CiAgICAgc3RhdGljIExpbmVCb3hDb250YWluIGluaXRpYWxMaW5lQm94
Q29udGFpbigpIHsgcmV0dXJuIExpbmVCb3hDb250YWluQmxvY2sgfCBMaW5lQm94Q29udGFpbklu
bGluZSB8IExpbmVCb3hDb250YWluUmVwbGFjZWQ7IH0KICAgICBzdGF0aWMgRUltYWdlUmVuZGVy
aW5nIGluaXRpYWxJbWFnZVJlbmRlcmluZygpIHsgcmV0dXJuIEltYWdlUmVuZGVyaW5nQXV0bzsg
fQorICAgIHN0YXRpYyBJbWFnZVJlc29sdXRpb25Tb3VyY2UgaW5pdGlhbEltYWdlUmVzb2x1dGlv
blNvdXJjZSgpIHsgcmV0dXJuIEltYWdlUmVzb2x1dGlvblNwZWNpZmllZDsgfQogICAgIHN0YXRp
YyBmbG9hdCBpbml0aWFsSW1hZ2VSZXNvbHV0aW9uKCkgeyByZXR1cm4gMTsgfQogICAgIHN0YXRp
YyBTdHlsZUltYWdlKiBpbml0aWFsQm9yZGVySW1hZ2VTb3VyY2UoKSB7IHJldHVybiAwOyB9CiAg
ICAgc3RhdGljIFN0eWxlSW1hZ2UqIGluaXRpYWxNYXNrQm94SW1hZ2VTb3VyY2UoKSB7IHJldHVy
biAwOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5oCmluZGV4IGRjZDUyZGMzMGM2ZWVmYWU0YWQzYzJmMjg2ZGQwYjhhNmQ0
YjA0NGEuLmRhNTdiOTM2ZTBmZjI0YmM2MWJiZWMxZTg0OWZmMWU3NDhhMDQ0ZGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5oCkBAIC00NTQsNiArNDU0LDggQEAgZW51bSBUZXh0T3ZlcmZsb3cgeyBUZXh0T3ZlcmZsb3dD
bGlwID0gMCwgVGV4dE92ZXJmbG93RWxsaXBzaXMgfTsKIAogZW51bSBFSW1hZ2VSZW5kZXJpbmcg
eyBJbWFnZVJlbmRlcmluZ0F1dG8sIEltYWdlUmVuZGVyaW5nT3B0aW1pemVTcGVlZCwgSW1hZ2VS
ZW5kZXJpbmdPcHRpbWl6ZVF1YWxpdHksIEltYWdlUmVuZGVyaW5nT3B0aW1pemVDb250cmFzdCB9
OwogCitlbnVtIEltYWdlUmVzb2x1dGlvblNvdXJjZSB7IEltYWdlUmVzb2x1dGlvblNwZWNpZmll
ZCA9IDAsIEltYWdlUmVzb2x1dGlvbkZyb21JbWFnZSB9OworCiBlbnVtIE9yZGVyIHsgTG9naWNh
bE9yZGVyID0gMCwgVmlzdWFsT3JkZXIgfTsKIAogZW51bSBSZWdpb25PdmVyZmxvdyB7IEF1dG9S
ZWdpb25PdmVyZmxvdywgQnJlYWtSZWdpb25PdmVyZmxvdyB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuY3BwCmlu
ZGV4IDM1YTUyZTU0NTdkZTg5MzNhOWNhODliYmJjODNjN2IyMTFhZThkZDkuLjdmZTYwOWMyMThk
ZjBlYTg2YThlZDY0ODZiM2IzZGQ2N2JhZjRjOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWREYXRhLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5jcHAKQEAgLTg3
LDYgKzg3LDkgQEAgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YTo6U3R5bGVSYXJlSW5oZXJpdGVkRGF0
YSgpCiAjaWYgRU5BQkxFKE9WRVJGTE9XX1NDUk9MTElORykKICAgICAsIHVzZVRvdWNoT3ZlcmZs
b3dTY3JvbGxpbmcoUmVuZGVyU3R5bGU6OmluaXRpYWxVc2VUb3VjaE92ZXJmbG93U2Nyb2xsaW5n
KCkpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JFU09MVVRJT04pCisgICAgLCBtX2lt
YWdlUmVzb2x1dGlvblNvdXJjZShSZW5kZXJTdHlsZTo6aW5pdGlhbEltYWdlUmVzb2x1dGlvblNv
dXJjZSgpKQorI2VuZGlmCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QmVmb3JlKC0xKQogICAgICwg
aHlwaGVuYXRpb25MaW1pdEFmdGVyKC0xKQogICAgICwgaHlwaGVuYXRpb25MaW1pdExpbmVzKC0x
KQpAQCAtMTQyLDYgKzE0NSw5IEBAIFN0eWxlUmFyZUluaGVyaXRlZERhdGE6OlN0eWxlUmFyZUlu
aGVyaXRlZERhdGEoY29uc3QgU3R5bGVSYXJlSW5oZXJpdGVkRGF0YSYgbykKICNpZiBFTkFCTEUo
T1ZFUkZMT1dfU0NST0xMSU5HKQogICAgICwgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZyhvLnVz
ZVRvdWNoT3ZlcmZsb3dTY3JvbGxpbmcpCiAjZW5kaWYKKyNpZiBFTkFCTEUoQ1NTX0lNQUdFX1JF
U09MVVRJT04pCisgICAgLCBtX2ltYWdlUmVzb2x1dGlvblNvdXJjZShvLm1faW1hZ2VSZXNvbHV0
aW9uU291cmNlKQorI2VuZGlmCiAgICAgLCBoeXBoZW5hdGlvblN0cmluZyhvLmh5cGhlbmF0aW9u
U3RyaW5nKQogICAgICwgaHlwaGVuYXRpb25MaW1pdEJlZm9yZShvLmh5cGhlbmF0aW9uTGltaXRC
ZWZvcmUpCiAgICAgLCBoeXBoZW5hdGlvbkxpbWl0QWZ0ZXIoby5oeXBoZW5hdGlvbkxpbWl0QWZ0
ZXIpCkBAIC0yMjQsNiArMjMwLDcgQEAgYm9vbCBTdHlsZVJhcmVJbmhlcml0ZWREYXRhOjpvcGVy
YXRvcj09KGNvbnN0IFN0eWxlUmFyZUluaGVyaXRlZERhdGEmIG8pIGNvbnN0CiAgICAgICAgICYm
IG1fbGluZUdyaWQgPT0gby5tX2xpbmVHcmlkCiAgICAgICAgICYmIG1faW1hZ2VSZW5kZXJpbmcg
PT0gby5tX2ltYWdlUmVuZGVyaW5nCiAjaWYgRU5BQkxFKENTU19JTUFHRV9SRVNPTFVUSU9OKQor
ICAgICAgICAmJiBtX2ltYWdlUmVzb2x1dGlvblNvdXJjZSA9PSBvLm1faW1hZ2VSZXNvbHV0aW9u
U291cmNlCiAgICAgICAgICYmIG1faW1hZ2VSZXNvbHV0aW9uID09IG8ubV9pbWFnZVJlc29sdXRp
b24KICNlbmRpZgogICAgICAgICAmJiBtX2xpbmVTbmFwID09IG8ubV9saW5lU25hcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERh
dGEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVJhcmVJbmhlcml0ZWRE
YXRhLmgKaW5kZXggYjMyOWU4YmZkOWM3OGM0N2M2Nzg2NTZmNjU2YmRjMWM1ZDAxODkzNi4uNTg5
MWFmOThmMTc1ZjkyZGZkNmY5ZmYyMjY3NTUxZjE4MzQ5NmE5ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlUmFyZUluaGVyaXRlZERhdGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVSYXJlSW5oZXJpdGVkRGF0YS5oCkBA
IC0xMDEsNiArMTAxLDkgQEAgcHVibGljOgogI2lmIEVOQUJMRShPVkVSRkxPV19TQ1JPTExJTkcp
CiAgICAgdW5zaWduZWQgdXNlVG91Y2hPdmVyZmxvd1Njcm9sbGluZzogMTsKICNlbmRpZgorI2lm
IEVOQUJMRShDU1NfSU1BR0VfUkVTT0xVVElPTikKKyAgICB1bnNpZ25lZCBtX2ltYWdlUmVzb2x1
dGlvblNvdXJjZSA6IDE7IC8vIEltYWdlUmVzb2x1dGlvblNvdXJjZQorI2VuZGlmCiAKICAgICBB
dG9taWNTdHJpbmcgaHlwaGVuYXRpb25TdHJpbmc7CiAgICAgc2hvcnQgaHlwaGVuYXRpb25MaW1p
dEJlZm9yZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwppbmRleCA3ZDczYWJjOTNiM2E0MGNiNjk2ZTEyYWYzYzU0MGNhZTIwYTU0MDdj
Li4xNjE5MzZiZjAwYTZkNDIyOTk2MGY4NjExMWM2N2ZhOTlmZWY0MTAzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTMgQEAKKzIwMTItMDYtMTcgIERhdmlkIEJhcnIgIDxkYXZpZGJhcnJAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIEFkZCBmcm9tLWltYWdlIHRvIGNzczMtaW1hZ2VzIGltYWdlLXJlc29sdXRp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NDUx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0
L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24tZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGZhc3QvY3NzL2ltYWdlLXJlc29sdXRpb24vaW1hZ2UtcmVzb2x1dGlvbi5odG1sOgor
CiAyMDEyLTA2LTE1ICBBYmhpc2hlayBBcnlhICA8aW5mZXJub0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZC4gUmViYXNlbGluZXMgZm9yIHIxMjA0NzcuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaW1hZ2UtcmVzb2x1dGlvbi9pbWFnZS1y
ZXNvbHV0aW9uLWV4cGVjdGVkLnR4dAppbmRleCBiNzY3MzFmZWFkM2MyMDRlOWFhMzkwNjFkOWNm
YzI1ODY1NDcwYzk5Li45ZTNjOTMzNzI0YjU3OWJhZTgyYTlhZWIyNGRjMmMwNDE1MDIyMTZmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJl
c29sdXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ltYWdlLXJl
c29sdXRpb24vaW1hZ2UtcmVzb2x1dGlvbi1leHBlY3RlZC50eHQKQEAgLTEsNCArMSw0IEBACi1B
cHBseSBpbWFnZS1yZXNvbHV0aW9uIHByb3BlcnR5IHRvIGEgZml4ZWQgaW1hZ2UgKDE2eDE2QDAu
NzVkcHB4KS4KK0FwcGx5IGltYWdlLXJlc29sdXRpb24gcHJvcGVydHkgdG8gYSBmaXhlZCBpbWFn
ZSAoMTZ4MTYpLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKQEAgLTc1LDYgKzc1LDE1
MCBAQCBQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA0CiBQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMg
NAogVEVTVCAiIgogUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiIgorVEVTVCAiMGRwcHggZnJv
bS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgIiIKK1RFU1QgImZyb20taW1hZ2Ug
MGRwcHgiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICIiCitURVNUICIxZHBweCBmcm9tLWlt
YWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogMWRwcHgg
ZnJvbS1pbWFnZTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMTYKK1BBU1MgaW1nLm9mZnNl
dEhlaWdodCBpcyAxNgorVEVTVCAiZnJvbS1pbWFnZSAxZHBweCIKK1BBU1MgaW1nLnN0eWxlLmNz
c1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMWRwcHg7ICIKK1BBU1MgaW1n
Lm9mZnNldFdpZHRoIGlzIDE2CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgMTYKK1RFU1QgIjJk
cHB4IGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0
aW9uOiAyZHBweCBmcm9tLWltYWdlOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA4CitQQVNT
IGltZy5vZmZzZXRIZWlnaHQgaXMgOAorVEVTVCAiZnJvbS1pbWFnZSAyZHBweCIKK1BBU1MgaW1n
LnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMmRwcHg7ICIK
K1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDgKK1BBU1MgaW1nLm9mZnNldEhlaWdodCBpcyA4CitU
RVNUICIzZHBweCBmcm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2Ut
cmVzb2x1dGlvbjogM2RwcHggZnJvbS1pbWFnZTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMg
NQorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDUKK1RFU1QgImZyb20taW1hZ2UgM2RwcHgiCitQ
QVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDNk
cHB4OyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA1CitQQVNTIGltZy5vZmZzZXRIZWlnaHQg
aXMgNQorVEVTVCAiNGRwcHggZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMg
ImltYWdlLXJlc29sdXRpb246IDRkcHB4IGZyb20taW1hZ2U7ICIKK1BBU1MgaW1nLm9mZnNldFdp
ZHRoIGlzIDQKK1BBU1MgaW1nLm9mZnNldEhlaWdodCBpcyA0CitURVNUICJmcm9tLWltYWdlIDRk
cHB4IgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJvbS1p
bWFnZSA0ZHBweDsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgNAorUEFTUyBpbWcub2Zmc2V0
SGVpZ2h0IGlzIDQKK1RFU1QgIjBkcGkgZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1Rl
eHQgaXMgIiIKK1RFU1QgImZyb20taW1hZ2UgMGRwaSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQg
aXMgIiIKK1RFU1QgIjk2ZHBpIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlz
ICJpbWFnZS1yZXNvbHV0aW9uOiA5NmRwaSBmcm9tLWltYWdlOyAiCitQQVNTIGltZy5vZmZzZXRX
aWR0aCBpcyAxNgorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDE2CitURVNUICJmcm9tLWltYWdl
IDk2ZHBpIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogZnJv
bS1pbWFnZSA5NmRwaTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMTYKK1BBU1MgaW1nLm9m
ZnNldEhlaWdodCBpcyAxNgorVEVTVCAiMTkyZHBpIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHls
ZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiAxOTJkcGkgZnJvbS1pbWFnZTsgIgorUEFT
UyBpbWcub2Zmc2V0V2lkdGggaXMgOAorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDgKK1RFU1Qg
ImZyb20taW1hZ2UgMTkyZHBpIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVz
b2x1dGlvbjogZnJvbS1pbWFnZSAxOTJkcGk7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDgK
K1BBU1MgaW1nLm9mZnNldEhlaWdodCBpcyA4CitURVNUICIyODhkcGkgZnJvbS1pbWFnZSIKK1BB
U1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDI4OGRwaSBmcm9tLWlt
YWdlOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA1CitQQVNTIGltZy5vZmZzZXRIZWlnaHQg
aXMgNQorVEVTVCAiZnJvbS1pbWFnZSAyODhkcGkiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlz
ICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDI4OGRwaTsgIgorUEFTUyBpbWcub2Zmc2V0
V2lkdGggaXMgNQorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDUKK1RFU1QgIjM4NGRwaSBmcm9t
LWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogMzg0
ZHBpIGZyb20taW1hZ2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDQKK1BBU1MgaW1nLm9m
ZnNldEhlaWdodCBpcyA0CitURVNUICJmcm9tLWltYWdlIDM4NGRwaSIKK1BBU1MgaW1nLnN0eWxl
LmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMzg0ZHBpOyAiCitQQVNT
IGltZy5vZmZzZXRXaWR0aCBpcyA0CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgNAorVEVTVCAi
MTUwZHBpIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNv
bHV0aW9uOiAxNTBkcGkgZnJvbS1pbWFnZTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMTAK
K1BBU1MgaW1nLm9mZnNldEhlaWdodCBpcyAxMAorVEVTVCAiZnJvbS1pbWFnZSAxNTBkcGkiCitQ
QVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDE1
MGRwaTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMTAKK1BBU1MgaW1nLm9mZnNldEhlaWdo
dCBpcyAxMAorVEVTVCAiMzAwZHBpIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0
IGlzICJpbWFnZS1yZXNvbHV0aW9uOiAzMDBkcGkgZnJvbS1pbWFnZTsgIgorUEFTUyBpbWcub2Zm
c2V0V2lkdGggaXMgNQorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDUKK1RFU1QgImZyb20taW1h
Z2UgMzAwZHBpIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjog
ZnJvbS1pbWFnZSAzMDBkcGk7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDUKK1BBU1MgaW1n
Lm9mZnNldEhlaWdodCBpcyA1CitURVNUICI0NTBkcGkgZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0
eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDQ1MGRwaSBmcm9tLWltYWdlOyAiCitQ
QVNTIGltZy5vZmZzZXRXaWR0aCBpcyAzCitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgMworVEVT
VCAiZnJvbS1pbWFnZSA0NTBkcGkiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICJpbWFnZS1y
ZXNvbHV0aW9uOiBmcm9tLWltYWdlIDQ1MGRwaTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMg
MworUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDMKK1RFU1QgIjYwMGRwaSBmcm9tLWltYWdlIgor
UEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogNjAwZHBpIGZyb20t
aW1hZ2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDIKK1BBU1MgaW1nLm9mZnNldEhlaWdo
dCBpcyAyCitURVNUICJmcm9tLWltYWdlIDYwMGRwaSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQg
aXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgNjAwZHBpOyAiCitQQVNTIGltZy5vZmZz
ZXRXaWR0aCBpcyAyCitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgMgorVEVTVCAiMGRwY20gZnJv
bS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgIiIKK1RFU1QgImZyb20taW1hZ2Ug
MGRwY20iCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlzICIiCitURVNUICIzNy43ZHBjbSBmcm9t
LWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1dGlvbjogMzcu
N2RwY20gZnJvbS1pbWFnZTsgIgorUEFTUyBpbWcub2Zmc2V0V2lkdGggaXMgMTYKK1BBU1MgaW1n
Lm9mZnNldEhlaWdodCBpcyAxNgorVEVTVCAiZnJvbS1pbWFnZSAzNy43ZHBjbSIKK1BBU1MgaW1n
LnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2UgMzcuN2RwY207
ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDE2CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMg
MTYKK1RFU1QgIjc1LjVkcGNtIGZyb20taW1hZ2UiCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0IGlz
ICJpbWFnZS1yZXNvbHV0aW9uOiA3NS41ZHBjbSBmcm9tLWltYWdlOyAiCitQQVNTIGltZy5vZmZz
ZXRXaWR0aCBpcyA4CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgOAorVEVTVCAiZnJvbS1pbWFn
ZSA3NS41ZHBjbSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246
IGZyb20taW1hZ2UgNzUuNWRwY207ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDgKK1BBU1Mg
aW1nLm9mZnNldEhlaWdodCBpcyA4CitURVNUICIxMTMuM2RwY20gZnJvbS1pbWFnZSIKK1BBU1Mg
aW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IDExMy4zZHBjbSBmcm9tLWlt
YWdlOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA1CitQQVNTIGltZy5vZmZzZXRIZWlnaHQg
aXMgNQorVEVTVCAiZnJvbS1pbWFnZSAxMTMuM2RwY20iCitQQVNTIGltZy5zdHlsZS5jc3NUZXh0
IGlzICJpbWFnZS1yZXNvbHV0aW9uOiBmcm9tLWltYWdlIDExMy4zZHBjbTsgIgorUEFTUyBpbWcu
b2Zmc2V0V2lkdGggaXMgNQorUEFTUyBpbWcub2Zmc2V0SGVpZ2h0IGlzIDUKK1RFU1QgIjE1MS4x
ZHBjbSBmcm9tLWltYWdlIgorUEFTUyBpbWcuc3R5bGUuY3NzVGV4dCBpcyAiaW1hZ2UtcmVzb2x1
dGlvbjogMTUxLjFkcGNtIGZyb20taW1hZ2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlzIDQK
K1BBU1MgaW1nLm9mZnNldEhlaWdodCBpcyA0CitURVNUICJmcm9tLWltYWdlIDE1MS4xZHBjbSIK
K1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMgImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2Ug
MTUxLjFkcGNtOyAiCitQQVNTIGltZy5vZmZzZXRXaWR0aCBpcyA0CitQQVNTIGltZy5vZmZzZXRI
ZWlnaHQgaXMgNAorVEVTVCAiZnJvbS1pbWFnZSIKK1BBU1MgaW1nLnN0eWxlLmNzc1RleHQgaXMg
ImltYWdlLXJlc29sdXRpb246IGZyb20taW1hZ2U7ICIKK1BBU1MgaW1nLm9mZnNldFdpZHRoIGlz
IDE2CitQQVNTIGltZy5vZmZzZXRIZWlnaHQgaXMgMTYKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9j
c3MvaW1hZ2UtcmVzb2x1dGlvbi9pbWFnZS1yZXNvbHV0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24uaHRtbAppbmRleCA3ZWIz
NTUyNjdiNzM2NGJkMGZiZDk1MmM0YjhlMmUxZTMwOGJjMWEwLi43ZTE5NGU0NWQzNjIzODFhZDYz
YTMxZGQ3OTYwMmI4MDE3MzIxMzY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9p
bWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9pbWFnZS1yZXNvbHV0aW9uL2ltYWdlLXJlc29sdXRpb24uaHRtbApAQCAtMzksNyAr
MzksNyBAQCBmdW5jdGlvbiBjb21wdXRlUmVzb2x1dGlvbihyZXNvbHV0aW9uLCBpbWdSZXNvbHV0
aW9uRHBweCkKICAgICAgICAgZWxzZSBpZiAodW5pdCA9PT0gJ2RwY20nKQogICAgICAgICAgICAg
ZHBweCA9IHZhbHVlIC8gKGNzc1B4UGVySW4gLyBjbVBlckluKTsKICAgICB9Ci0gICAgaWYgKGZy
b21JbWFnZSkKKyAgICBpZiAoZnJvbUltYWdlICYmIGltZ1Jlc29sdXRpb25EcHB4KQogICAgICAg
ICBkcHB4ID0gaW1nUmVzb2x1dGlvbkRwcHg7CiAgICAgaWYgKHNuYXApCiAgICAgICAgIGRwcHgg
PSBNYXRoLmZsb29yKGRwcHgpOwpAQCAtNDgsMTEgKzQ4LDI2IEBAIGZ1bmN0aW9uIGNvbXB1dGVS
ZXNvbHV0aW9uKHJlc29sdXRpb24sIGltZ1Jlc29sdXRpb25EcHB4KQogICAgIHJldHVybiBkcHB4
OwogfQogCitmdW5jdGlvbiBwZXJtdXRlMihydWxlKSB7CisgICAgdmFyIHMgPSBydWxlLnRyaW0o
KS5zcGxpdCgnICcpOworICAgIGlmIChzLmxlbmd0aCA9PSAxKQorICAgICAgICByZXR1cm4gczsK
KyAgICByZXR1cm4gW3Muam9pbignICcpLCBbc1sxXSwgc1swXV0uam9pbignICcpXTsKK30KKwor
ZnVuY3Rpb24gZ2VuZXJhdGVUZXN0cyhyZXNvbHV0aW9ucykgeworICAgIHZhciB0ZXN0cyA9IHJl
c29sdXRpb25zLnNsaWNlKCk7CisgICAgcmVzb2x1dGlvbnMuZm9yRWFjaChmdW5jdGlvbihyZXNv
bHV0aW9uKSB7CisgICAgICAgIHRlc3RzLnB1c2guYXBwbHkodGVzdHMsIHBlcm11dGUyKHJlc29s
dXRpb24gKyAnIGZyb20taW1hZ2UnKSk7CisgICAgfSk7CisgICAgcmV0dXJuIHRlc3RzOworfQor
CiB2YXIgaW1nVXJsID0gJy4uLy4uL2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4uanBnJzsKIHZhciBp
bWdXaWR0aFB4ID0gMTY7CiB2YXIgaW1nSGVpZ2h0UHggPSAxNjsKLXZhciBpbWdSZXNvbHV0aW9u
RHBweCA9IDcyIC8gOTY7Ci12YXIgZGltZW5zaW9ucyA9IGltZ1dpZHRoUHggKyAneCcgKyBpbWdI
ZWlnaHRQeCArICdAJyArIGltZ1Jlc29sdXRpb25EcHB4ICsgJ2RwcHgnOwordmFyIGltZ1Jlc29s
dXRpb25EcHB4ID0gMDsgLyogRW1iZWRkZWQgaW1hZ2UgcmVzb2x1dGlvbiBkYXRhIG5vdCBwbHVt
YmVkIHlldC4gKi8KK3ZhciBkaW1lbnNpb25zID0gaW1nV2lkdGhQeCArICd4JyArIGltZ0hlaWdo
dFB4OwogCiBkZXNjcmlwdGlvbignQXBwbHkgaW1hZ2UtcmVzb2x1dGlvbiBwcm9wZXJ0eSB0byBh
IGZpeGVkIGltYWdlICgnICsgZGltZW5zaW9ucyArICcpLicpOwogCkBAIC02NSw3ICs4MCw3IEBA
IHZhciByZXNvbHV0aW9ucyA9IFsnMGRwcHgnLCAnMWRwcHgnLCAnMmRwcHgnLCAnM2RwcHgnLCAn
NGRwcHgnLAogICAgICAgICAgICAgICAgICAgICcwZHBjbScsICczNy43ZHBjbScsICc3NS41ZHBj
bScsICcxMTMuM2RwY20nLCAnMTUxLjFkcGNtJywgJyddOwogCiBpbWcub25sb2FkID0gZnVuY3Rp
b24oKSB7Ci0gICAgcmVzb2x1dGlvbnMuZm9yRWFjaChmdW5jdGlvbih0ZXN0KSB7CisgICAgZ2Vu
ZXJhdGVUZXN0cyhyZXNvbHV0aW9ucykuZm9yRWFjaChmdW5jdGlvbih0ZXN0KSB7CiAgICAgICAg
IHZhciBkcHB4ID0gY29tcHV0ZVJlc29sdXRpb24odGVzdCwgaW1nUmVzb2x1dGlvbkRwcHgpOwog
ICAgICAgICBpbWcuc3R5bGUuaW1hZ2VSZXNvbHV0aW9uID0gJyc7CiAgICAgICAgIGltZy5zdHls
ZS5pbWFnZVJlc29sdXRpb24gPSB0ZXN0Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>