<?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>42484</bug_id>
          
          <creation_ts>2010-07-16 15:21:02 -0700</creation_ts>
          <short_desc>Support localized numbers in &lt;input type=number&gt;</short_desc>
          <delta_ts>2022-01-27 07:47:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>43973</dependson>
    
    <dependson>45730</dependson>
          <blocked>27968</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>ian</cc>
    
    <cc>jarilittlenen</cc>
    
    <cc>mehmetgelisin</cc>
    
    <cc>olivernicholle9052</cc>
    
    <cc>pacefranki56</cc>
    
    <cc>patrys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>252725</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-07-16 15:21:02 -0700</bug_when>
    <thetext>In the current implementation, the value of &lt;input type=number&gt; must be an HTML5 number (ASCII digits) and is sent to a server as is.
We should accept localized number representations and convert them to an HTML5 number for form submission.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>287874</commentid>
    <comment_count>1</comment_count>
    <who name="Patryk Zawadzki">patrys</who>
    <bug_when>2010-09-30 15:09:29 -0700</bug_when>
    <thetext>It would also be nice to display numbers in their localized form. Same probably applies to date/time fields.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340774</commentid>
    <comment_count>2</comment_count>
      <attachid>80305</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-27 01:23:24 -0800</bug_when>
    <thetext>Created attachment 80305
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340777</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-27 01:26:18 -0800</bug_when>
    <thetext>I&apos;m not sure how to use new ICU headers in Mac.  Why we have Source/WebCore/icu/?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340778</commentid>
    <comment_count>4</comment_count>
      <attachid>80307</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-27 01:31:26 -0800</bug_when>
    <thetext>Created attachment 80307
Patch 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>340887</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-27 08:56:01 -0800</bug_when>
    <thetext>&gt; We should accept localized number representations and convert them to an HTML5 number for form submission.

Is that mandated by HTML5? The bug needs to explain where this &quot;should&quot; comes from. &lt;http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#rules-for-parsing-floating-point-number-values&gt; in particular is not localization aware.

&gt; I&apos;m not sure how to use new ICU headers in Mac.  Why we have Source/WebCore/icu/?

ICU is not an officially supported API on Mac OS X, so ICU headers aren&apos;t shipped with it. When really needed, we copy an appropriate version of a particular ICU header to our repository. I&apos;m not sure if this is one of those cases, or we should just use CFNumberFormatter API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341091</commentid>
    <comment_count>6</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-01-27 15:54:47 -0800</bug_when>
    <thetext>This is a UI issue and is out of scope of the spec. You &quot;should&quot; accept localised forms if that&apos;s what&apos;s best for users.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341097</commentid>
    <comment_count>7</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-27 16:07:30 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; &gt; We should accept localized number representations and convert them to an HTML5 number for form submission.
&gt; 
&gt; Is that mandated by HTML5? The bug needs to explain where this &quot;should&quot; comes from. &lt;http://www.whatwg.org/specs/web-apps/current-work/multipage/common-microsyntaxes.html#rules-for-parsing-floating-point-number-values&gt; in particular is not localization aware.

It&apos;s not mandatory.

I should have added more words to ChangeLog.  This change is only for UI.  HTML parsing and DOM property access are not affected.

I saw several requests for localized numbers for &lt;input type=number&gt;, I haven&apos;t seen any objections, and I believe we should support them.

&gt; &gt; I&apos;m not sure how to use new ICU headers in Mac.  Why we have Source/WebCore/icu/?
&gt; 
&gt; ICU is not an officially supported API on Mac OS X, so ICU headers aren&apos;t shipped with it. When really needed, we copy an appropriate version of a particular ICU header to our repository. I&apos;m not sure if this is one of those cases, or we should just use CFNumberFormatter API.

CFNumberFormatter looks enough.  Thank you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341122</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-01-27 16:27:45 -0800</bug_when>
    <thetext>&gt; This change is only for UI.

Will is affect VoiceOver?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341169</commentid>
    <comment_count>9</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-27 17:26:44 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Will is affect VoiceOver?

I don&apos;t know.  How VoiceOver obtain text form an application?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341176</commentid>
    <comment_count>10</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-01-27 17:41:11 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; Will it affect VoiceOver?
&gt; 
&gt; I don&apos;t know. How does VoiceOver obtain text form an application?

It calls the functions defined in the WebCore/accessibility directory.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343024</commentid>
    <comment_count>11</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-01-31 21:53:40 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; &gt; &gt; Will it affect VoiceOver?
&gt; &gt; 
&gt; &gt; I don&apos;t know. How does VoiceOver obtain text form an application?
&gt; 
&gt; It calls the functions defined in the WebCore/accessibility directory.

Thanks.  I took a look at WebCore/accessibility/, and I couldn&apos;t get what would happen in this case.
ok, I&apos;ll implement LocalizedNumberCF and try VoiceOver.
I think VoiceOver should get localized text.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343098</commentid>
    <comment_count>12</comment_count>
      <attachid>80733</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-02-01 02:33:42 -0800</bug_when>
    <thetext>Created attachment 80733
Patch 3

Add LocalizedNumberMac.mm and a test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343099</commentid>
    <comment_count>13</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-02-01 02:34:35 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; I think VoiceOver should get localized text.

I confirmed that VoiceOver got a localized one with the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343187</commentid>
    <comment_count>14</comment_count>
      <attachid>80755</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-02-01 06:30:57 -0800</bug_when>
    <thetext>Created attachment 80755
Patch 4

Fix parsing error handling in LocalizedNumberMac.mm</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343815</commentid>
    <comment_count>15</comment_count>
      <attachid>80884</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-02-01 20:55:30 -0800</bug_when>
    <thetext>Created attachment 80884
Patch 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>359619</commentid>
    <comment_count>16</comment_count>
      <attachid>84179</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-02-28 19:51:45 -0800</bug_when>
    <thetext>Created attachment 84179
Patch 6

Rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360306</commentid>
    <comment_count>17</comment_count>
      <attachid>84179</attachid>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-03-01 15:28:58 -0800</bug_when>
    <thetext>Comment on attachment 84179
Patch 6

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

&gt; Source/WebCore/WebCore.xcodeproj/project.pbxproj:5665
&gt; +		F5CC42DC12F801CA00D5F7E3 /* LocalizedNumberMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = F5CC42DB12F801CA00D5F7E3 /* LocalizedNumberMac.mm */; };

Did you run sort-Xcode-project-file after your changes? This file looks out of order.

&gt; Source/WebCore/platform/text/mac/LocalizedNumberMac.mm:58
&gt; +    NSNumberFormatter* formatter = [[[NSNumberFormatter alloc] init] autorelease];

I don&apos;t know how this stuff works. Can you check with ObJC-heads before landing?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360345</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-01 16:08:42 -0800</bug_when>
    <thetext>&gt; Source/WebCore/platform/text/mac/LocalizedNumberMac.mm:58
&gt; +    NSNumberFormatter* formatter = [[[NSNumberFormatter alloc] init] autorelease];

Although autorelease works, we prefer explicit refcounting in WebCore. So, this should be:

RetainPtr&lt;NSNumberFormatter&gt; formatter(AdoptNS, [[NSNumberFormatter alloc] init]);

+    NSNumber* num = [formatter numberFromString:numberString];

Please don&apos;t abbreviate.

+    if (num == nil)

WebKit style is to not compare to zero, so this should just be &quot;if (!num)&quot; (with a better name for num).

+    NSNumber* num = [NSNumber numberWithDouble:number];

WebKit style is to put stars on the other side for Objective-C types. But it would be better to use alloc/init and RetainPtr here, too. The reasons I know of are:
1) It&apos;s faster to destroy temporaries right away, while they are in memory cache.
2) The autorelease pool won&apos;t be drained during micro-benchmarks that spin without returning to message loop, causing high memory usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360425</commentid>
    <comment_count>19</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-01 17:24:03 -0800</bug_when>
    <thetext>Dimitri,  Alexey, thank you for reviewing.
I&apos;ll update the code and commit it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360587</commentid>
    <comment_count>20</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-01 22:21:45 -0800</bug_when>
    <thetext>&gt; +    NSNumber* num = [formatter numberFromString:numberString];
&gt; +    if (num == nil)

Should we use RetainPtr&lt;&gt; here too?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360596</commentid>
    <comment_count>21</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-01 22:47:06 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; &gt; +    NSNumber* num = [formatter numberFromString:numberString];
&gt; &gt; +    if (num == nil)
&gt; 
&gt; Should we use RetainPtr&lt;&gt; here too?

Probably, no.  This object is already registered to an autorelease pool by NSNumberFormatter.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360600</commentid>
    <comment_count>22</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-01 22:55:56 -0800</bug_when>
    <thetext>Landed: http://trac.webkit.org/changeset/80096</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>360605</commentid>
    <comment_count>23</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-01 23:04:44 -0800</bug_when>
    <thetext>I think that it&apos;s more of a coding style issue in this case. If we were optimizing this function, we&apos;d likely have to cache NSNumberFormatter instance at least.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>361130</commentid>
    <comment_count>24</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-03-02 15:41:52 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; I think that it&apos;s more of a coding style issue in this case. If we were optimizing this function, we&apos;d likely have to cache NSNumberFormatter instance at least.

Indeed.  These functions should be called only the main thread.  It&apos;s easy to cache the number formatter.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80305</attachid>
            <date>2011-01-27 01:23:24 -0800</date>
            <delta_ts>2011-01-27 01:31:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-42484-20110127182322.patch</filename>
            <type>text/plain</type>
            <size>18682</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNDRmMjU2MWRmNTM3ZTVjN2E1MDQ1NzQzZjQwMzcwN2U1Y2I2OGI0Li4xY2NmNzUy
NDA1NDM3NTlkZjNhYTkxMjMzNGUyY2EyZTUyMWU0M2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDEtMjcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDxpbnB1dCB0eXBlPW51bWJl
cj4gc2hvdWxkIHNob3cgYW5kIGFjY2VwdCBsb2NhbGl6ZWQgbnVtYmVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI0ODQKKworICAgICAgICBVcGRh
dGUgYW4gZXhpc3RpbmcgdGVzdCBiZWNhdXNlIG9mIHJlbW92aW5nIHRoZSBrZXlib2FyZCBpbnB1
dAorICAgICAgICByZXN0cmljdGlvbiBmZWF0dXJlLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9p
bnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLmpzOgorCiAyMDExLTAx
LTI2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGF2ZSBIeWF0dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
bnVtYmVyLWtleW9wZXJhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDIyMWNlNmZlZGY5
ZGE2ZThiYjBjZTg5OThmYmZlODlhOTU1NmI3Y2UuLjFjNGZjMzQ0ZTYyYmFlYzAxOGZlZDZhNDZi
MDIyZTM4NWRkMDc1N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
bnVtYmVyLWtleW9wZXJhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDcg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBJbnNlcnRpbmcgImFiMTIzY2QiOgotUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMTIzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiIgogUHJlc3MgdGhl
IHVwIGFycm93IGtleToKIFBBU1MgaW5wdXQudmFsdWUgaXMgIjEyNCIKIFByZXNzIHRoZSBkb3du
IGFycm93IGtleToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLmpzCmluZGV4IGY4NDE1MWQ5
ODIyM2Y2MWE0MDI1Zjg3ZWM4MzExYzNhMTNiOTU5ZGEuLmE3YzBlODUwNTI4N2Q2MzdjNTQ1ZDRm
MDE3Mzg4ZTc0YjZiMWYwN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Ny
aXB0LXRlc3RzL2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtbnVtYmVyLWtleW9wZXJhdGlvbi5qcwpAQCAt
Nyw5ICs3LDEwIEBAIHZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW1iZXIn
KTsKIGlucHV0LmZvY3VzKCk7CiBkZWJ1ZygnSW5zZXJ0aW5nICJhYjEyM2NkIjonKTsKIGRvY3Vt
ZW50LmV4ZWNDb21tYW5kKCdJbnNlcnRUZXh0JywgZmFsc2UsICdhYjEyM2NkJyk7Ci1zaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjEyMyInKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciIicp
OwogCiBkZWJ1ZygnUHJlc3MgdGhlIHVwIGFycm93IGtleTonKTsKK2lucHV0LnZhbHVlQXNOdW1i
ZXIgPSAxMjM7CiBldmVudFNlbmRlci5rZXlEb3duKCd1cEFycm93Jyk7CiBzaG91bGRCZSgnaW5w
dXQudmFsdWUnLCAnIjEyNCInKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU0NWVhNjU3ZTk5NTk5ODQxZjRl
NjYzMjUyNzU1OTU5M2VmYzQwN2IuLmFkNmM5OGM3NTk0ZTZiZTZlYjc0Y2FmYWU2OTUxMTA0MGIy
ODE5YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMS0wMS0yNyAgS2VudCBUYW11
cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgPGlucHV0IHR5cGU9bnVtYmVyPiBzaG91bGQgc2hvdyBhbmQgYWNj
ZXB0IGxvY2FsaXplZCBudW1iZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MjQ4NAorCisgICAgICAgIC0gUmVtb3ZlIHRoZSBrZXlib2FyZCBpbnB1
dCByZXN0cmljdGlvbiBmZWF0dXJlIGJlY2F1c2UgaXQgaXMgaGFyZCB0bworICAgICAgICAgIHJl
dHJpZXZlIGNoYXJhY3RlcnMgdXNhYmxlIGZvciBsb2NhbGl6ZWQgbnVtYmVycyBpbiBJQ1UuCisK
KyAgICAgICAgLSBTZXBhcmF0ZSBjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSgpIGZyb20gc2FuaXRp
emVWYWx1ZSgpLgorICAgICAgICAgIHNhbml0aXplVmFsdWUoKSBpcyB1c2VkIGZvciBub3Qgb25s
eSBjb252ZXJ0aW5nIGEgcmVuZGVyZXIgdmFsdWUgdG8gYQorICAgICAgICAgIERPTSB2YWx1ZS4K
KworICAgICAgICAtIEltcGxlbWVudCBMb2NhbGl6ZWROdW1iZXIgZnVuY3Rpb25zIGZvciBJQ1Uu
CisgICAgICAgICAgSXQgaXMgdXNlZCBvbmx5IGluIENocm9taXVtIGZvciBub3cuCisKKyAgICAg
ICAgTm8gdGVzdHMgYmVjYXVzZSB0aGlzIGNoYW5nZSBpcyBsb2NhbGUtZGVwZW5kZW50LgorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBVc2UgTG9jYWxpemVkTnVtYmVySUNVLmNwcC4KKyAgICAg
ICAgKiBkb20vSW5wdXRFbGVtZW50Lmg6IEludHJvZHVjZSBjb252ZXJ0RnJvbVZpc2libGVWYWx1
ZSgpLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSk6CisgICAgICAg
ICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSk6
CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0
VHlwZS5jcHA6IFJlbW92ZSBpc0hUTUxOdW1iZXJDaGFyYWN0ZXIoKSwKKyAgICAgICAgICBpc051
bWJlckNoYXJhY3RlcigpLCBhbmQgaGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoKSBiZWNh
dXNlIHdlCisgICAgICAgICAgcmVtb3ZlIHRoZSBrZXlib2FyZCBpbnB1dCByZXN0cmljdGlvbiBm
ZWF0dXJlIGZvciB0eXBlPW51bWJlci4KKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklucHV0VHlw
ZTo6Y29udmVydEZyb21WaXNpYmxlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5w
dXRUeXBlOjpzYW5pdGl6ZVZhbHVlKToKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmg6IFJlbW92ZSBpc0xv
Y2FsaXplZE51bWJlckNoYXJhY3RlcigpLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxp
emVkTnVtYmVySUNVLmNwcDoKKyAgICAgICAgICBJbXBsZW1lbnQgTG9jYWxpemVkTnVtYmVyIGZ1
bmN0aW9ucyB3aXRoIElDVSBOdW1iZXJGb3JtYXQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVG
b3JtYXR0ZXJGb3JDdXJyZW50TG9jYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxp
emVkTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZE51bWJlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcDogUmVtb3ZlIGlz
TG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVyKCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmU6OnN1YnRyZWVIYXNDaGFuZ2VkKToKKyAgICAgICAgKiB3bWwvV01MSW5w
dXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmNvbnZlcnRG
cm9tVmlzaWJsZVZhbHVlKToKKyAgICAgICAgICBJbXBsZW1lbnRlZCBhcyBhIGZ1bmN0aW9uIGRv
aW5nIG5vdGhpbmcuCisKIDIwMTEtMDEtMjYgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDRhNGUwNGM5ZTBiNDIzZjdmZjI0ZTIzOWU4MjhkYzYwZjNkNjMwMTQuLjE4MzZmNjA0N2Q1MmZh
Zjc3ZmFkYjQwMjljYjNjNjM2YmIzYTM3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMzMTUsNyAr
MzMxNSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQv
TG9jYWxpemVkTnVtYmVySUNVLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9QYXJz
ZXJVdGlsaXRpZXMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9QbGF0Zm9ybVN0cmlu
Zy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKaW5kZXggMDJhYzVjZjIzNzMyYWJlMzUzMjhhNjI1
MzYzZDZmNGMwZjgzMTVkOC4uYWUwOWFkMGViNjIzOGFjYTcxMzllZDFmM2ZiOWE2MDY4ODkyODdl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmKSA9IDA7CiAg
ICAgLy8gVGhlIHZhbHVlIHdoaWNoIGlzIGRyYXduIGJ5IGEgcmVuZGVyZXIuCiAgICAgdmlydHVh
bCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKIAogICAgIC8v
IFJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHN0cmluZyBjYW4gYmUgc2V0IGFzIHRoZSB2
YWx1ZSBvZiBJbnB1dEVsZW1lbnQuCiAgICAgdmlydHVhbCBib29sIGlzQWNjZXB0YWJsZVZhbHVl
KGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCmluZGV4IDdiMTI3NjcwZmZkM2RmZDY0ZjVjMDdjYzM3NThjZjM3OTAyMjkxNjcu
LmMyOWZkZmE3ODcyOTg4NDhiMDU0NWNiODQzZTRhZTJkNzFjZjJlODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTE0NSw2ICsxMTQ1LDExIEBAIFN0cmlu
ZyBIVE1MSW5wdXRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBtX2lu
cHV0VHlwZS0+dmlzaWJsZVZhbHVlKCk7CiB9CiAKK1N0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojpj
b252ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBTdHJpbmcmIHZpc2libGVWYWx1ZSkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKHZpc2li
bGVWYWx1ZSk7Cit9CisKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNBY2NlcHRhYmxlVmFsdWUo
Y29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogewogICAgIHJldHVybiBtX2lucHV0
VHlwZS0+aXNBY2NlcHRhYmxlVmFsdWUocHJvcG9zZWRWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCmluZGV4IDc1Nzk5MmFkYTY3NTQyNjBmNjAxNDMzMTA3MzFiZGQ4
ZmMwOGMwYTUuLjQwZWIxOTVhOGIwZWM0MjVlZjhjOTU0MDI5ODkzMGZhZDExZmJjNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yNjAsNiArMjYwLDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0LCBpbnQgZW5k
KTsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OworICAgIHZpcnR1
YWwgU3RyaW5nIGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsK
ICAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBoYXNVbmFjY2VwdGFibGVWYWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuY3BwCmluZGV4IDM4MDhmMmU4ZDZlMzczMjVhMzlmNDhkNzQzZDg3N2VmMmU5
YjgwMDUuLmYxNWJkODcwOGQyNDI0ZWJmYjY2ZmNjMTNhNzAwYWQ4Y2NiNWQ4NjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTUxMSw2ICs1MTEsMTEgQEAgU3RyaW5nIElucHV0VHlw
ZTo6dmlzaWJsZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gZWxlbWVudCgpLT52YWx1ZSgpOwog
fQogCitTdHJpbmcgSW5wdXRUeXBlOjpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBTdHJp
bmcmIHZpc2libGVWYWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gdmlzaWJsZVZhbHVlOworfQor
CiBib29sIElucHV0VHlwZTo6aXNBY2NlcHRhYmxlVmFsdWUoY29uc3QgU3RyaW5nJikKIHsKICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGZlZjdlYTQyOTAwZmM1
NTEzYThmNTNjYTEzMDM3OWJmZTE5MjllMzcuLjBiMmJjZjA0ZTIxZGQ1YzllMjMyNDhkMzY1ZTI0
Yzc3MmY0ZmU1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMTQ5LDYgKzE0OSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBT
dHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgY29udmVydEZy
b21WaXNpYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlz
QWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0
aXplVmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIGhhc1VuYWNjZXB0YWJs
ZVZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKaW5kZXggZjA5
Njc3NjQzZjU5YmY5ZGE5OGM5YmM1MzQ4ODk3N2EyODUzOGZjYS4uZDY2NDNlMTJmODc3NDJhYTA0
ZGM5OWI4YzAwMzJmYjZiZTBlZmUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9O
dW1iZXJJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRU
eXBlLmNwcApAQCAtNTYsMTggKzU2LDYgQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBudW1iZXJEZWZh
dWx0TWF4aW11bSA9IEZMVF9NQVg7CiBzdGF0aWMgY29uc3QgZG91YmxlIG51bWJlckRlZmF1bHRT
dGVwID0gMS4wOwogc3RhdGljIGNvbnN0IGRvdWJsZSBudW1iZXJTdGVwU2NhbGVGYWN0b3IgPSAx
LjA7CiAKLS8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciBjYW4gYmUg
YSBwYXJ0IG9mICd2YWxpZCBmbG9hdGluZwotLy8gcG9pbnQgbnVtYmVyJyBvZiBIVE1MNS4KLXN0
YXRpYyBib29sIGlzSFRNTE51bWJlckNoYXJhY3RlcihVQ2hhciBjaCkKLXsKLSAgICByZXR1cm4g
Y2ggPT0gJysnIHx8IGNoID09ICctJyB8fCBjaCA9PSAnLicgfHwgY2ggPT0gJ2UnIHx8IGNoID09
ICdFJyB8fCBpc0FTQ0lJRGlnaXQoY2gpOwotfQotCi1zdGF0aWMgYm9vbCBpc051bWJlckNoYXJh
Y3RlcihVQ2hhciBjaCkKLXsKLSAgICByZXR1cm4gaXNMb2NhbGl6ZWROdW1iZXJDaGFyYWN0ZXIo
Y2gpIHx8IGlzSFRNTE51bWJlckNoYXJhY3RlcihjaCk7Ci19Ci0KIFBhc3NPd25QdHI8SW5wdXRU
eXBlPiBOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQog
ewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTnVtYmVySW5wdXRUeXBlKGVsZW1lbnQpKTsKQEAg
LTE4NiwzMCArMTc0LDYgQEAgdm9pZCBOdW1iZXJJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVu
dChLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjpoYW5k
bGVLZXlkb3duRXZlbnQoZXZlbnQpOwogfQogCi12b2lkIE51bWJlcklucHV0VHlwZTo6aGFuZGxl
QmVmb3JlVGV4dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4dEluc2VydGVkRXZlbnQqIGV2ZW50KQot
ewotICAgIHVuc2lnbmVkIGxlbmd0aCA9IGV2ZW50LT50ZXh0KCkubGVuZ3RoKCk7Ci0gICAgYm9v
bCBoYXNJbnZhbGlkQ2hhciA9IGZhbHNlOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBs
ZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoIWlzTnVtYmVyQ2hhcmFjdGVyKGV2ZW50LT50ZXh0
KClbaV0pKSB7Ci0gICAgICAgICAgICBoYXNJbnZhbGlkQ2hhciA9IHRydWU7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoaGFzSW52YWxpZENoYXIpIHsKLSAg
ICAgICAgVmVjdG9yPFVDaGFyPiBzdHJpcHBlZDsKLSAgICAgICAgc3RyaXBwZWQucmVzZXJ2ZUNh
cGFjaXR5KGxlbmd0aCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkgewotICAgICAgICAgICAgVUNoYXIgY2ggPSBldmVudC0+dGV4dCgpW2ldOwotICAgICAg
ICAgICAgaWYgKCFpc051bWJlckNoYXJhY3RlcihjaCkpCi0gICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgICAgICBzdHJpcHBlZC5hcHBlbmQoY2gpOwotICAgICAgICB9Ci0gICAgICAg
IGV2ZW50LT5zZXRUZXh0KFN0cmluZzo6YWRvcHQoc3RyaXBwZWQpKTsKLSAgICB9Ci0gICAgVGV4
dEZpZWxkSW5wdXRUeXBlOjpoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudChldmVudCk7Ci19
Ci0KIHZvaWQgTnVtYmVySW5wdXRUeXBlOjpoYW5kbGVXaGVlbEV2ZW50KFdoZWVsRXZlbnQqIGV2
ZW50KQogewogICAgIGhhbmRsZVdoZWVsRXZlbnRGb3JTcGluQnV0dG9uKGV2ZW50KTsKQEAgLTI2
Nyw2ICsyMzEsMTIgQEAgU3RyaW5nIE51bWJlcklucHV0VHlwZTo6dmlzaWJsZVZhbHVlKCkgY29u
c3QKICAgICByZXR1cm4gbG9jYWxpemVkLmlzRW1wdHkoKSA/IGN1cnJlbnRWYWx1ZSA6IGxvY2Fs
aXplZDsKIH0KIAorU3RyaW5nIE51bWJlcklucHV0VHlwZTo6Y29udmVydEZyb21WaXNpYmxlVmFs
dWUoY29uc3QgU3RyaW5nJiB2aXNpYmxlVmFsdWUpIGNvbnN0Cit7CisgICAgZG91YmxlIHBhcnNl
ZE51bWJlciA9IHBhcnNlTG9jYWxpemVkTnVtYmVyKHZpc2libGVWYWx1ZSk7CisgICAgcmV0dXJu
IGlzZmluaXRlKHBhcnNlZE51bWJlcikgPyBzZXJpYWxpemVGb3JOdW1iZXJUeXBlKHBhcnNlZE51
bWJlcikgOiB2aXNpYmxlVmFsdWU7Cit9CisKIGJvb2wgTnVtYmVySW5wdXRUeXBlOjppc0FjY2Vw
dGFibGVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpCiB7CiAgICAgcmV0dXJuIHBy
b3Bvc2VkVmFsdWUuaXNFbXB0eSgpIHx8IGlzZmluaXRlKHBhcnNlTG9jYWxpemVkTnVtYmVyKHBy
b3Bvc2VkVmFsdWUpKSB8fCBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShwcm9wb3NlZFZhbHVl
LCAwKTsKQEAgLTI3NCwxMSArMjQ0LDYgQEAgYm9vbCBOdW1iZXJJbnB1dFR5cGU6OmlzQWNjZXB0
YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkKIAogU3RyaW5nIE51bWJlcklu
cHV0VHlwZTo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpCiB7Ci0g
ICAgLy8gVHJ5IHRvIHBhcnNlIHRoZSB2YWx1ZSBhcyBhIGxvY2FsaXplZCBudW1iZXIsIHRoZW4g
dHJ5IHRvIHBhcnNlIGl0IGFzCi0gICAgLy8gdGhlIHN0YW5kYXJkIGZvcm1hdC4KLSAgICBkb3Vi
bGUgcGFyc2VkVmFsdWUgPSBwYXJzZUxvY2FsaXplZE51bWJlcihwcm9wb3NlZFZhbHVlKTsKLSAg
ICBpZiAoaXNmaW5pdGUocGFyc2VkVmFsdWUpKQotICAgICAgICByZXR1cm4gc2VyaWFsaXplRm9y
TnVtYmVyVHlwZShwYXJzZWRWYWx1ZSk7CiAgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGVGb3JOdW1i
ZXJUeXBlKHByb3Bvc2VkVmFsdWUsIDApID8gcHJvcG9zZWRWYWx1ZSA6IFN0cmluZygpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCA5ZDk3MTM0NGY4M2FkNTAw
OGFjNjllYzkyODkzZDlmZTY2NWIzNTk0Li5lYTVkYzEwNGYwMTA1NGFlOGU2Mjg1NzgyMzQ0ZDU3
OTFlMDAyNThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTU3LDcg
KzU3LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSBkZWZhdWx0U3RlcCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgZG91YmxlIHN0ZXBTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCopOwotICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudChCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVu
dCopOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KFdoZWVsRXZlbnQqKTsKICAg
ICB2aXJ0dWFsIGRvdWJsZSBwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSkgY29u
c3Q7CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VUb0RvdWJsZVdpdGhEZWNpbWFsUGxhY2VzKGNv
bnN0IFN0cmluZyYsIGRvdWJsZSwgdW5zaWduZWQqKSBjb25zdDsKQEAgLTY1LDYgKzY0LDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSBhY2NlcHRhYmxlRXJyb3IoZG91YmxlKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCk7CiAgICAgdmlydHVhbCBTdHJp
bmcgdmlzaWJsZVZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgY29udmVydEZyb21W
aXNpYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzQWNj
ZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXpl
VmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIGhhc1VuYWNjZXB0YWJsZVZh
bHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXpl
ZE51bWJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXIu
aAppbmRleCA0NTg3M2I4YjdkOWY0Mzk3NDhjZDViMzM0Yjc3YmZiYmE1ZjNmMDBiLi5kNzA1NDFm
MDAxZWNiZDYxNGNjNGE3YzFlYzdiZjU0ZGY5NDQ5NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgKQEAgLTQ5LDExICs0OSw2IEBAIGRvdWJs
ZSBwYXJzZUxvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcmKTsKIC8vIHJldHVybiBhbiBlbXB0
eSBzdHJpbmcuCiBTdHJpbmcgZm9ybWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZSk7CiAKLS8vIFJl
dHVybnMgdHJ1ZSBpZiB0aGUgaW5wdXQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHRvIHJlcHJlc2Vu
dCBhCi0vLyBudW1iZXIgaW4gdGhlIGJyb3dzZXIgbG9jYWxlLiBGb3IgZXhhbXBsZSwgdGhpcyBz
aG91bGQgcmV0dXJuIHRydWUgZm9yIDAtOSAuCi0vLyAsICsgLSBmb3IgZW4tVVMgbG9jYWxlLgot
Ym9vbCBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcihVQ2hhcjMyKTsKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gTG9jYWxpemVkTnVtYmVyX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVySUNVLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVySUNVLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ZWFiMGMxYzZhM2U2MjZiNWYxMWE1MzQ5YmM3MThlZjYxMjU4ZGRjCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJJQ1UuY3Bw
CkBAIC0wLDAgKzEsNzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVk
TnVtYmVyLmgiCisKKyNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8dW5pY29kZS9udW1mbXQu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOwor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxpbmUgUGFzc093blB0cjxOdW1iZXJG
b3JtYXQ+IGNyZWF0ZUZvcm1hdHRlckZvckN1cnJlbnRMb2NhbGUoKQoreworICAgIFVFcnJvckNv
ZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIHJldHVybiBhZG9wdFB0cihOdW1iZXJGb3Jt
YXQ6OmNyZWF0ZUluc3RhbmNlKHN0YXR1cykpOworfQorCitkb3VibGUgcGFyc2VMb2NhbGl6ZWRO
dW1iZXIoY29uc3QgU3RyaW5nJiBudW1iZXJTdHJpbmcpCit7CisgICAgT3duUHRyPE51bWJlckZv
cm1hdD4gZm9ybWF0dGVyID0gY3JlYXRlRm9ybWF0dGVyRm9yQ3VycmVudExvY2FsZSgpOworICAg
IGlmICghZm9ybWF0dGVyKQorICAgICAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6
cXVpZXRfTmFOKCk7CisgICAgQVNTRVJUKG51bWJlclN0cmluZy5jaGFyYWN0ZXJzKCkpOworICAg
IFVuaWNvZGVTdHJpbmcgbnVtYmVyVW5pY29kZVN0cmluZyhudW1iZXJTdHJpbmcuY2hhcmFjdGVy
cygpLCBudW1iZXJTdHJpbmcubGVuZ3RoKCkpOworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9a
RVJPX0VSUk9SOworICAgIEZvcm1hdHRhYmxlIHJlc3VsdDsKKyAgICBmb3JtYXR0ZXItPnBhcnNl
KG51bWJlclVuaWNvZGVTdHJpbmcsIHJlc3VsdCwgc3RhdHVzKTsKKyAgICBpZiAoc3RhdHVzICE9
IFVfWkVST19FUlJPUikKKyAgICAgICAgcmV0dXJuIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1
aWV0X05hTigpOworICAgIGRvdWJsZSBudW1lcmljUmVzdWx0ID0gcmVzdWx0LmdldERvdWJsZShz
dGF0dXMpOworICAgIHJldHVybiBzdGF0dXMgPT0gVV9aRVJPX0VSUk9SID8gbnVtZXJpY1Jlc3Vs
dCA6IG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworfQorCitTdHJpbmcgZm9y
bWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZSBudW1iZXIpCit7CisgICAgT3duUHRyPE51bWJlckZv
cm1hdD4gZm9ybWF0dGVyID0gY3JlYXRlRm9ybWF0dGVyRm9yQ3VycmVudExvY2FsZSgpOworICAg
IGlmICghZm9ybWF0dGVyKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAgVW5pY29kZVN0
cmluZyByZXN1bHQ7CisgICAgZm9ybWF0dGVyLT5mb3JtYXQobnVtYmVyLCByZXN1bHQpOworICAg
IHJldHVybiBTdHJpbmcocmVzdWx0LmdldEJ1ZmZlcigpLCByZXN1bHQubGVuZ3RoKCkpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcAppbmRleCA2ZjAxN2U5Zjg5NDk4ZTI1ZjYy
NmE0ODkzYzUxZjg4ODI5MmQzOGM0Li43MjlmMmYxOTQ0MmNhMGNiYzllZmI2ZGIzMDExZGQ5NjRk
Y2U4NTRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXpl
ZE51bWJlck5vbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxp
emVkTnVtYmVyTm9uZS5jcHAKQEAgLTQ3LDkgKzQ3LDQgQEAgU3RyaW5nIGZvcm1hdExvY2FsaXpl
ZE51bWJlcihkb3VibGUpCiAgICAgcmV0dXJuIFN0cmluZygpOwogfQogCi1ib29sIGlzTG9jYWxp
emVkTnVtYmVyQ2hhcmFjdGVyKFVDaGFyMzIpCi17Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCmluZGV4IGJkNGQ2MzhjMjRhM2Vh
YTg0ODQyMWU2YWI0NjZmNWU2ZDM1MjAwMzYuLjMxODBhNjFjZmI0NzNmZmFlMTg1YjVjNjFhMzRk
ZGFiMzNmYmRhMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
ZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0xNzQsNyArMTc0LDcgQEAgdm9pZCBS
ZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnN1YnRyZWVIYXNDaGFuZ2VkKCkKICAgICAvLyBz
YW5pdGl6ZVZhbHVlKCkgaXMgbmVlZGVkIGJlY2F1c2UgSU1FIGlucHV0IGRvZXNuJ3QgZGlzcGF0
Y2ggQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuCiAgICAgU3RyaW5nIHZhbHVlID0gdGV4dCgpOwog
ICAgIGlmIChpbnB1dC0+aXNBY2NlcHRhYmxlVmFsdWUodmFsdWUpKQotICAgICAgICBpbnB1dC0+
c2V0VmFsdWVGcm9tUmVuZGVyZXIoaW5wdXQtPnNhbml0aXplVmFsdWUodmFsdWUpKTsKKyAgICAg
ICAgaW5wdXQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKGlucHV0LT5zYW5pdGl6ZVZhbHVlKGlucHV0
LT5jb252ZXJ0RnJvbVZpc2libGVWYWx1ZSh2YWx1ZSkpKTsKICAgICBpZiAobm9kZSgpLT5pc0hU
TUxFbGVtZW50KCkpIHsKICAgICAgICAgLy8gUmVjYWxjIGZvciA6aW52YWxpZCBhbmQgaGFzVW5h
Y2NlcHRhYmxlVmFsdWUoKSBjaGFuZ2UuCiAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVs
ZW1lbnQqPihpbnB1dCktPnNldE5lZWRzU3R5bGVSZWNhbGMoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dtbC9XTUxJ
bnB1dEVsZW1lbnQuaAppbmRleCA2YzY2NDEwYmNmNzZhOWVmZmIxOGVlNTM5ZGIwYTYxNzk4OWEy
NTNlLi4xMTYyYWMxOTNjNzM3ZTE1NDZkYjg2MzllMjZkN2NiNWU3ZGFmNGQ1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd21sL1dNTElucHV0RWxlbWVudC5oCkBAIC02NCw2ICs2NCw3IEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwgYm9vbCBzZW5kQ2hhbmdlRXZlbnQg
PSBmYWxzZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcm
KTsKICAgICB2aXJ0dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdCB7IHJldHVybiB2YWx1
ZSgpOyB9CisgICAgdmlydHVhbCBTdHJpbmcgY29udmVydEZyb21WaXNpYmxlVmFsdWUoY29uc3Qg
U3RyaW5nJiB2YWx1ZSkgY29uc3QgeyByZXR1cm4gdmFsdWU7IH0KICAgICB2aXJ0dWFsIHZvaWQg
c2V0VmFsdWVGcm9tUmVuZGVyZXIoY29uc3QgU3RyaW5nJik7CiAKICAgICB2aXJ0dWFsIGJvb2wg
c2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJiB2YWx1ZSkgY29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80307</attachid>
            <date>2011-01-27 01:31:26 -0800</date>
            <delta_ts>2011-02-01 02:33:37 -0800</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-42484-20110127183124.patch</filename>
            <type>text/plain</type>
            <size>18728</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNDRmMjU2MWRmNTM3ZTVjN2E1MDQ1NzQzZjQwMzcwN2U1Y2I2OGI0Li4xY2NmNzUy
NDA1NDM3NTlkZjNhYTkxMjMzNGUyY2EyZTUyMWU0M2NjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDEtMjcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDxpbnB1dCB0eXBlPW51bWJl
cj4gc2hvdWxkIHNob3cgYW5kIGFjY2VwdCBsb2NhbGl6ZWQgbnVtYmVycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI0ODQKKworICAgICAgICBVcGRh
dGUgYW4gZXhpc3RpbmcgdGVzdCBiZWNhdXNlIG9mIHJlbW92aW5nIHRoZSBrZXlib2FyZCBpbnB1
dAorICAgICAgICByZXN0cmljdGlvbiBmZWF0dXJlLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9p
bnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLmpzOgorCiAyMDExLTAx
LTI2ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGF2ZSBIeWF0dC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
bnVtYmVyLWtleW9wZXJhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IDIyMWNlNmZlZGY5
ZGE2ZThiYjBjZTg5OThmYmZlODlhOTU1NmI3Y2UuLjFjNGZjMzQ0ZTYyYmFlYzAxOGZlZDZhNDZi
MDIyZTM4NWRkMDc1N2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQt
bnVtYmVyLWtleW9wZXJhdGlvbi1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLWV4cGVjdGVkLnR4dApAQCAtNCw3ICs0LDcg
QEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUKIAogCiBJbnNlcnRpbmcgImFiMTIzY2QiOgotUEFT
UyBpbnB1dC52YWx1ZSBpcyAiMTIzIgorUEFTUyBpbnB1dC52YWx1ZSBpcyAiIgogUHJlc3MgdGhl
IHVwIGFycm93IGtleToKIFBBU1MgaW5wdXQudmFsdWUgaXMgIjEyNCIKIFByZXNzIHRoZSBkb3du
IGFycm93IGtleToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLmpzCmluZGV4IGY4NDE1MWQ5
ODIyM2Y2MWE0MDI1Zjg3ZWM4MzExYzNhMTNiOTU5ZGEuLmE3YzBlODUwNTI4N2Q2MzdjNTQ1ZDRm
MDE3Mzg4ZTc0YjZiMWYwN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2Ny
aXB0LXRlc3RzL2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtbnVtYmVyLWtleW9wZXJhdGlvbi5qcwpAQCAt
Nyw5ICs3LDEwIEBAIHZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW1iZXIn
KTsKIGlucHV0LmZvY3VzKCk7CiBkZWJ1ZygnSW5zZXJ0aW5nICJhYjEyM2NkIjonKTsKIGRvY3Vt
ZW50LmV4ZWNDb21tYW5kKCdJbnNlcnRUZXh0JywgZmFsc2UsICdhYjEyM2NkJyk7Ci1zaG91bGRC
ZSgnaW5wdXQudmFsdWUnLCAnIjEyMyInKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciIicp
OwogCiBkZWJ1ZygnUHJlc3MgdGhlIHVwIGFycm93IGtleTonKTsKK2lucHV0LnZhbHVlQXNOdW1i
ZXIgPSAxMjM7CiBldmVudFNlbmRlci5rZXlEb3duKCd1cEFycm93Jyk7CiBzaG91bGRCZSgnaW5w
dXQudmFsdWUnLCAnIjEyNCInKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU0NWVhNjU3ZTk5NTk5ODQxZjRl
NjYzMjUyNzU1OTU5M2VmYzQwN2IuLmFkNmM5OGM3NTk0ZTZiZTZlYjc0Y2FmYWU2OTUxMTA0MGIy
ODE5YWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OSBAQAorMjAxMS0wMS0yNyAgS2VudCBUYW11
cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgPGlucHV0IHR5cGU9bnVtYmVyPiBzaG91bGQgc2hvdyBhbmQgYWNj
ZXB0IGxvY2FsaXplZCBudW1iZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00MjQ4NAorCisgICAgICAgIC0gUmVtb3ZlIHRoZSBrZXlib2FyZCBpbnB1
dCByZXN0cmljdGlvbiBmZWF0dXJlIGJlY2F1c2UgaXQgaXMgaGFyZCB0bworICAgICAgICAgIHJl
dHJpZXZlIGNoYXJhY3RlcnMgdXNhYmxlIGZvciBsb2NhbGl6ZWQgbnVtYmVycyBpbiBJQ1UuCisK
KyAgICAgICAgLSBTZXBhcmF0ZSBjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSgpIGZyb20gc2FuaXRp
emVWYWx1ZSgpLgorICAgICAgICAgIHNhbml0aXplVmFsdWUoKSBpcyB1c2VkIGZvciBub3Qgb25s
eSBjb252ZXJ0aW5nIGEgcmVuZGVyZXIgdmFsdWUgdG8gYQorICAgICAgICAgIERPTSB2YWx1ZS4K
KworICAgICAgICAtIEltcGxlbWVudCBMb2NhbGl6ZWROdW1iZXIgZnVuY3Rpb25zIGZvciBJQ1Uu
CisgICAgICAgICAgSXQgaXMgdXNlZCBvbmx5IGluIENocm9taXVtIGZvciBub3cuCisKKyAgICAg
ICAgTm8gdGVzdHMgYmVjYXVzZSB0aGlzIGNoYW5nZSBpcyBsb2NhbGUtZGVwZW5kZW50LgorCisg
ICAgICAgICogV2ViQ29yZS5neXBpOiBVc2UgTG9jYWxpemVkTnVtYmVySUNVLmNwcC4KKyAgICAg
ICAgKiBkb20vSW5wdXRFbGVtZW50Lmg6IEludHJvZHVjZSBjb252ZXJ0RnJvbVZpc2libGVWYWx1
ZSgpLgorICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSk6CisgICAgICAg
ICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSk6
CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0
VHlwZS5jcHA6IFJlbW92ZSBpc0hUTUxOdW1iZXJDaGFyYWN0ZXIoKSwKKyAgICAgICAgICBpc051
bWJlckNoYXJhY3RlcigpLCBhbmQgaGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoKSBiZWNh
dXNlIHdlCisgICAgICAgICAgcmVtb3ZlIHRoZSBrZXlib2FyZCBpbnB1dCByZXN0cmljdGlvbiBm
ZWF0dXJlIGZvciB0eXBlPW51bWJlci4KKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklucHV0VHlw
ZTo6Y29udmVydEZyb21WaXNpYmxlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5w
dXRUeXBlOjpzYW5pdGl6ZVZhbHVlKToKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5o
OgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmg6IFJlbW92ZSBpc0xv
Y2FsaXplZE51bWJlckNoYXJhY3RlcigpLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxp
emVkTnVtYmVySUNVLmNwcDoKKyAgICAgICAgICBJbXBsZW1lbnQgTG9jYWxpemVkTnVtYmVyIGZ1
bmN0aW9ucyB3aXRoIElDVSBOdW1iZXJGb3JtYXQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVG
b3JtYXR0ZXJGb3JDdXJyZW50TG9jYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxp
emVkTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZE51bWJlcik6Cisg
ICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcDogUmVtb3ZlIGlz
TG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVyKCkuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUZXh0Q29u
dHJvbFNpbmdsZUxpbmU6OnN1YnRyZWVIYXNDaGFuZ2VkKToKKyAgICAgICAgKiB3bWwvV01MSW5w
dXRFbGVtZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpXTUxJbnB1dEVsZW1lbnQ6OmNvbnZlcnRG
cm9tVmlzaWJsZVZhbHVlKToKKyAgICAgICAgICBJbXBsZW1lbnRlZCBhcyBhIGZ1bmN0aW9uIGRv
aW5nIG5vdGhpbmcuCisKIDIwMTEtMDEtMjYgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4
IDRhNGUwNGM5ZTBiNDIzZjdmZjI0ZTIzOWU4MjhkYzYwZjNkNjMwMTQuLjE4MzZmNjA0N2Q1MmZh
Zjc3ZmFkYjQwMjljYjNjNjM2YmIzYTM3NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKQEAgLTMzMTUsNyAr
MzMxNSw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmNwcCcsCiAg
ICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmgnLAogICAgICAgICAgICAgJ3Bs
YXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgnLAotICAgICAgICAgICAgJ3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAnLAorICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQv
TG9jYWxpemVkTnVtYmVySUNVLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9QYXJz
ZXJVdGlsaXRpZXMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9QbGF0Zm9ybVN0cmlu
Zy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHByZXNzaW9uLmNwcCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKaW5kZXggMDJhYzVjZjIzNzMyYWJlMzUzMjhhNjI1
MzYzZDZmNGMwZjgzMTVkOC4uYWUwOWFkMGViNjIzOGFjYTcxMzllZDFmM2ZiOWE2MDY4ODkyODdl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmKSA9IDA7CiAg
ICAgLy8gVGhlIHZhbHVlIHdoaWNoIGlzIGRyYXduIGJ5IGEgcmVuZGVyZXIuCiAgICAgdmlydHVh
bCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNv
bnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKIAogICAgIC8v
IFJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHN0cmluZyBjYW4gYmUgc2V0IGFzIHRoZSB2
YWx1ZSBvZiBJbnB1dEVsZW1lbnQuCiAgICAgdmlydHVhbCBib29sIGlzQWNjZXB0YWJsZVZhbHVl
KGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVs
ZW1lbnQuY3BwCmluZGV4IDdiMTI3NjcwZmZkM2RmZDY0ZjVjMDdjYzM3NThjZjM3OTAyMjkxNjcu
LmMyOWZkZmE3ODcyOTg4NDhiMDU0NWNiODQzZTRhZTJkNzFjZjJlODQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTE0NSw2ICsxMTQ1LDExIEBAIFN0cmlu
ZyBIVE1MSW5wdXRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBtX2lu
cHV0VHlwZS0+dmlzaWJsZVZhbHVlKCk7CiB9CiAKK1N0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojpj
b252ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBTdHJpbmcmIHZpc2libGVWYWx1ZSkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKHZpc2li
bGVWYWx1ZSk7Cit9CisKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNBY2NlcHRhYmxlVmFsdWUo
Y29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogewogICAgIHJldHVybiBtX2lucHV0
VHlwZS0+aXNBY2NlcHRhYmxlVmFsdWUocHJvcG9zZWRWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5oCmluZGV4IDc1Nzk5MmFkYTY3NTQyNjBmNjAxNDMzMTA3MzFiZGQ4
ZmMwOGMwYTUuLjQwZWIxOTVhOGIwZWM0MjVlZjhjOTU0MDI5ODkzMGZhZDExZmJjNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yNjAsNiArMjYwLDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0LCBpbnQgZW5k
KTsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OworICAgIHZpcnR1
YWwgU3RyaW5nIGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsK
ICAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0Owog
ICAgIHZpcnR1YWwgYm9vbCBoYXNVbmFjY2VwdGFibGVWYWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbnB1dFR5cGUuY3BwCmluZGV4IDM4MDhmMmU4ZDZlMzczMjVhMzlmNDhkNzQzZDg3N2VmMmU5
YjgwMDUuLmYxNWJkODcwOGQyNDI0ZWJmYjY2ZmNjMTNhNzAwYWQ4Y2NiNWQ4NjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTUxMSw2ICs1MTEsMTEgQEAgU3RyaW5nIElucHV0VHlw
ZTo6dmlzaWJsZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gZWxlbWVudCgpLT52YWx1ZSgpOwog
fQogCitTdHJpbmcgSW5wdXRUeXBlOjpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBTdHJp
bmcmIHZpc2libGVWYWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gdmlzaWJsZVZhbHVlOworfQor
CiBib29sIElucHV0VHlwZTo6aXNBY2NlcHRhYmxlVmFsdWUoY29uc3QgU3RyaW5nJikKIHsKICAg
ICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGZlZjdlYTQyOTAwZmM1
NTEzYThmNTNjYTEzMDM3OWJmZTE5MjllMzcuLjBiMmJjZjA0ZTIxZGQ1YzllMjMyNDhkMzY1ZTI0
Yzc3MmY0ZmU1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMTQ5LDYgKzE0OSw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3Q7CiAg
ICAgdmlydHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBT
dHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgY29udmVydEZy
b21WaXNpYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlz
QWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0
aXplVmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIGhhc1VuYWNjZXB0YWJs
ZVZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKaW5kZXggZjA5
Njc3NjQzZjU5YmY5ZGE5OGM5YmM1MzQ4ODk3N2EyODUzOGZjYS4uZDY2NDNlMTJmODc3NDJhYTA0
ZGM5OWI4YzAwMzJmYjZiZTBlZmUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9O
dW1iZXJJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRU
eXBlLmNwcApAQCAtNTYsMTggKzU2LDYgQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBudW1iZXJEZWZh
dWx0TWF4aW11bSA9IEZMVF9NQVg7CiBzdGF0aWMgY29uc3QgZG91YmxlIG51bWJlckRlZmF1bHRT
dGVwID0gMS4wOwogc3RhdGljIGNvbnN0IGRvdWJsZSBudW1iZXJTdGVwU2NhbGVGYWN0b3IgPSAx
LjA7CiAKLS8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciBjYW4gYmUg
YSBwYXJ0IG9mICd2YWxpZCBmbG9hdGluZwotLy8gcG9pbnQgbnVtYmVyJyBvZiBIVE1MNS4KLXN0
YXRpYyBib29sIGlzSFRNTE51bWJlckNoYXJhY3RlcihVQ2hhciBjaCkKLXsKLSAgICByZXR1cm4g
Y2ggPT0gJysnIHx8IGNoID09ICctJyB8fCBjaCA9PSAnLicgfHwgY2ggPT0gJ2UnIHx8IGNoID09
ICdFJyB8fCBpc0FTQ0lJRGlnaXQoY2gpOwotfQotCi1zdGF0aWMgYm9vbCBpc051bWJlckNoYXJh
Y3RlcihVQ2hhciBjaCkKLXsKLSAgICByZXR1cm4gaXNMb2NhbGl6ZWROdW1iZXJDaGFyYWN0ZXIo
Y2gpIHx8IGlzSFRNTE51bWJlckNoYXJhY3RlcihjaCk7Ci19Ci0KIFBhc3NPd25QdHI8SW5wdXRU
eXBlPiBOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQog
ewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTnVtYmVySW5wdXRUeXBlKGVsZW1lbnQpKTsKQEAg
LTE4NiwzMCArMTc0LDYgQEAgdm9pZCBOdW1iZXJJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVu
dChLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjpoYW5k
bGVLZXlkb3duRXZlbnQoZXZlbnQpOwogfQogCi12b2lkIE51bWJlcklucHV0VHlwZTo6aGFuZGxl
QmVmb3JlVGV4dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4dEluc2VydGVkRXZlbnQqIGV2ZW50KQot
ewotICAgIHVuc2lnbmVkIGxlbmd0aCA9IGV2ZW50LT50ZXh0KCkubGVuZ3RoKCk7Ci0gICAgYm9v
bCBoYXNJbnZhbGlkQ2hhciA9IGZhbHNlOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBs
ZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoIWlzTnVtYmVyQ2hhcmFjdGVyKGV2ZW50LT50ZXh0
KClbaV0pKSB7Ci0gICAgICAgICAgICBoYXNJbnZhbGlkQ2hhciA9IHRydWU7Ci0gICAgICAgICAg
ICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoaGFzSW52YWxpZENoYXIpIHsKLSAg
ICAgICAgVmVjdG9yPFVDaGFyPiBzdHJpcHBlZDsKLSAgICAgICAgc3RyaXBwZWQucmVzZXJ2ZUNh
cGFjaXR5KGxlbmd0aCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7
ICsraSkgewotICAgICAgICAgICAgVUNoYXIgY2ggPSBldmVudC0+dGV4dCgpW2ldOwotICAgICAg
ICAgICAgaWYgKCFpc051bWJlckNoYXJhY3RlcihjaCkpCi0gICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgICAgICBzdHJpcHBlZC5hcHBlbmQoY2gpOwotICAgICAgICB9Ci0gICAgICAg
IGV2ZW50LT5zZXRUZXh0KFN0cmluZzo6YWRvcHQoc3RyaXBwZWQpKTsKLSAgICB9Ci0gICAgVGV4
dEZpZWxkSW5wdXRUeXBlOjpoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudChldmVudCk7Ci19
Ci0KIHZvaWQgTnVtYmVySW5wdXRUeXBlOjpoYW5kbGVXaGVlbEV2ZW50KFdoZWVsRXZlbnQqIGV2
ZW50KQogewogICAgIGhhbmRsZVdoZWVsRXZlbnRGb3JTcGluQnV0dG9uKGV2ZW50KTsKQEAgLTI2
Nyw2ICsyMzEsMTIgQEAgU3RyaW5nIE51bWJlcklucHV0VHlwZTo6dmlzaWJsZVZhbHVlKCkgY29u
c3QKICAgICByZXR1cm4gbG9jYWxpemVkLmlzRW1wdHkoKSA/IGN1cnJlbnRWYWx1ZSA6IGxvY2Fs
aXplZDsKIH0KIAorU3RyaW5nIE51bWJlcklucHV0VHlwZTo6Y29udmVydEZyb21WaXNpYmxlVmFs
dWUoY29uc3QgU3RyaW5nJiB2aXNpYmxlVmFsdWUpIGNvbnN0Cit7CisgICAgZG91YmxlIHBhcnNl
ZE51bWJlciA9IHBhcnNlTG9jYWxpemVkTnVtYmVyKHZpc2libGVWYWx1ZSk7CisgICAgcmV0dXJu
IGlzZmluaXRlKHBhcnNlZE51bWJlcikgPyBzZXJpYWxpemVGb3JOdW1iZXJUeXBlKHBhcnNlZE51
bWJlcikgOiB2aXNpYmxlVmFsdWU7Cit9CisKIGJvb2wgTnVtYmVySW5wdXRUeXBlOjppc0FjY2Vw
dGFibGVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpCiB7CiAgICAgcmV0dXJuIHBy
b3Bvc2VkVmFsdWUuaXNFbXB0eSgpIHx8IGlzZmluaXRlKHBhcnNlTG9jYWxpemVkTnVtYmVyKHBy
b3Bvc2VkVmFsdWUpKSB8fCBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShwcm9wb3NlZFZhbHVl
LCAwKTsKQEAgLTI3NCwxMSArMjQ0LDYgQEAgYm9vbCBOdW1iZXJJbnB1dFR5cGU6OmlzQWNjZXB0
YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkKIAogU3RyaW5nIE51bWJlcklu
cHV0VHlwZTo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpCiB7Ci0g
ICAgLy8gVHJ5IHRvIHBhcnNlIHRoZSB2YWx1ZSBhcyBhIGxvY2FsaXplZCBudW1iZXIsIHRoZW4g
dHJ5IHRvIHBhcnNlIGl0IGFzCi0gICAgLy8gdGhlIHN0YW5kYXJkIGZvcm1hdC4KLSAgICBkb3Vi
bGUgcGFyc2VkVmFsdWUgPSBwYXJzZUxvY2FsaXplZE51bWJlcihwcm9wb3NlZFZhbHVlKTsKLSAg
ICBpZiAoaXNmaW5pdGUocGFyc2VkVmFsdWUpKQotICAgICAgICByZXR1cm4gc2VyaWFsaXplRm9y
TnVtYmVyVHlwZShwYXJzZWRWYWx1ZSk7CiAgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGVGb3JOdW1i
ZXJUeXBlKHByb3Bvc2VkVmFsdWUsIDApID8gcHJvcG9zZWRWYWx1ZSA6IFN0cmluZygpOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCA5ZDk3MTM0NGY4M2FkNTAw
OGFjNjllYzkyODkzZDlmZTY2NWIzNTk0Li5lYTVkYzEwNGYwMTA1NGFlOGU2Mjg1NzgyMzQ0ZDU3
OTFlMDAyNThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlw
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTU3LDcg
KzU3LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSBkZWZhdWx0U3RlcCgpIGNvbnN0
OwogICAgIHZpcnR1YWwgZG91YmxlIHN0ZXBTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIHZpcnR1
YWwgdm9pZCBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCopOwotICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudChCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVu
dCopOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KFdoZWVsRXZlbnQqKTsKICAg
ICB2aXJ0dWFsIGRvdWJsZSBwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSkgY29u
c3Q7CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VUb0RvdWJsZVdpdGhEZWNpbWFsUGxhY2VzKGNv
bnN0IFN0cmluZyYsIGRvdWJsZSwgdW5zaWduZWQqKSBjb25zdDsKQEAgLTY1LDYgKzY0LDcgQEAg
cHJpdmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSBhY2NlcHRhYmxlRXJyb3IoZG91YmxlKSBjb25z
dDsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCk7CiAgICAgdmlydHVhbCBTdHJp
bmcgdmlzaWJsZVZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgY29udmVydEZyb21W
aXNpYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzQWNj
ZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXpl
VmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIGhhc1VuYWNjZXB0YWJsZVZh
bHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXpl
ZE51bWJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXIu
aAppbmRleCA0NTg3M2I4YjdkOWY0Mzk3NDhjZDViMzM0Yjc3YmZiYmE1ZjNmMDBiLi5kNzA1NDFm
MDAxZWNiZDYxNGNjNGE3YzFlYzdiZjU0ZGY5NDQ5NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgKQEAgLTQ5LDExICs0OSw2IEBAIGRvdWJs
ZSBwYXJzZUxvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcmKTsKIC8vIHJldHVybiBhbiBlbXB0
eSBzdHJpbmcuCiBTdHJpbmcgZm9ybWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZSk7CiAKLS8vIFJl
dHVybnMgdHJ1ZSBpZiB0aGUgaW5wdXQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHRvIHJlcHJlc2Vu
dCBhCi0vLyBudW1iZXIgaW4gdGhlIGJyb3dzZXIgbG9jYWxlLiBGb3IgZXhhbXBsZSwgdGhpcyBz
aG91bGQgcmV0dXJuIHRydWUgZm9yIDAtOSAuCi0vLyAsICsgLSBmb3IgZW4tVVMgbG9jYWxlLgot
Ym9vbCBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcihVQ2hhcjMyKTsKLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gTG9jYWxpemVkTnVtYmVyX2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVySUNVLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVySUNVLmNwcApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40YTgyZGQ2MWFhYmU1NGU1MmI1MmY2NTY1ZDYwODQyNWFiZDdlZmRmCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJJQ1UuY3Bw
CkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVk
TnVtYmVyLmgiCisKKyNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8dW5pY29kZS9udW1mbXQu
aD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOwor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxpbmUgUGFzc093blB0cjxOdW1iZXJG
b3JtYXQ+IGNyZWF0ZUZvcm1hdHRlckZvckN1cnJlbnRMb2NhbGUoKQoreworICAgIFVFcnJvckNv
ZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIHJldHVybiBhZG9wdFB0cihOdW1iZXJGb3Jt
YXQ6OmNyZWF0ZUluc3RhbmNlKHN0YXR1cykpOworfQorCitkb3VibGUgcGFyc2VMb2NhbGl6ZWRO
dW1iZXIoY29uc3QgU3RyaW5nJiBudW1iZXJTdHJpbmcpCit7CisgICAgaWYgKG51bWJlclN0cmlu
Zy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWll
dF9OYU4oKTsKKyAgICBPd25QdHI8TnVtYmVyRm9ybWF0PiBmb3JtYXR0ZXIgPSBjcmVhdGVGb3Jt
YXR0ZXJGb3JDdXJyZW50TG9jYWxlKCk7CisgICAgaWYgKCFmb3JtYXR0ZXIpCisgICAgICAgIHJl
dHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICBVbmljb2RlU3Ry
aW5nIG51bWJlclVuaWNvZGVTdHJpbmcobnVtYmVyU3RyaW5nLmNoYXJhY3RlcnMoKSwgbnVtYmVy
U3RyaW5nLmxlbmd0aCgpKTsKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsK
KyAgICBGb3JtYXR0YWJsZSByZXN1bHQ7CisgICAgZm9ybWF0dGVyLT5wYXJzZShudW1iZXJVbmlj
b2RlU3RyaW5nLCByZXN1bHQsIHN0YXR1cyk7CisgICAgaWYgKHN0YXR1cyAhPSBVX1pFUk9fRVJS
T1IpCisgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsK
KyAgICBkb3VibGUgbnVtZXJpY1Jlc3VsdCA9IHJlc3VsdC5nZXREb3VibGUoc3RhdHVzKTsKKyAg
ICByZXR1cm4gc3RhdHVzID09IFVfWkVST19FUlJPUiA/IG51bWVyaWNSZXN1bHQgOiBudW1lcmlj
X2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKK30KKworU3RyaW5nIGZvcm1hdExvY2FsaXpl
ZE51bWJlcihkb3VibGUgbnVtYmVyKQoreworICAgIE93blB0cjxOdW1iZXJGb3JtYXQ+IGZvcm1h
dHRlciA9IGNyZWF0ZUZvcm1hdHRlckZvckN1cnJlbnRMb2NhbGUoKTsKKyAgICBpZiAoIWZvcm1h
dHRlcikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIFVuaWNvZGVTdHJpbmcgcmVzdWx0
OworICAgIGZvcm1hdHRlci0+Zm9ybWF0KG51bWJlciwgcmVzdWx0KTsKKyAgICByZXR1cm4gU3Ry
aW5nKHJlc3VsdC5nZXRCdWZmZXIoKSwgcmVzdWx0Lmxlbmd0aCgpKTsKK30KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9M
b2NhbGl6ZWROdW1iZXJOb25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxpemVkTnVtYmVyTm9uZS5jcHAKaW5kZXggNmYwMTdlOWY4OTQ5OGUyNWY2MjZhNDg5M2M1MWY4
ODgyOTJkMzhjNC4uNzI5ZjJmMTk0NDJjYTBjYmM5ZWZiNmRiMzAxMWRkOTY0ZGNlODU0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25l
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5v
bmUuY3BwCkBAIC00Nyw5ICs0Nyw0IEBAIFN0cmluZyBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoZG91
YmxlKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotYm9vbCBpc0xvY2FsaXplZE51bWJlckNo
YXJhY3RlcihVQ2hhcjMyKQotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCBiZDRkNjM4YzI0YTNlYWE4NDg0MjFlNmFi
NDY2ZjVlNmQzNTIwMDM2Li4zMTgwYTYxY2ZiNDczZmZhZTE4NWI1YzYxYTM0ZGRhYjMzZmJkYTE1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpzdWJ0cmVlSGFzQ2hhbmdlZCgpCiAgICAgLy8gc2FuaXRpemVWYWx1
ZSgpIGlzIG5lZWRlZCBiZWNhdXNlIElNRSBpbnB1dCBkb2Vzbid0IGRpc3BhdGNoIEJlZm9yZVRl
eHRJbnNlcnRlZEV2ZW50LgogICAgIFN0cmluZyB2YWx1ZSA9IHRleHQoKTsKICAgICBpZiAoaW5w
dXQtPmlzQWNjZXB0YWJsZVZhbHVlKHZhbHVlKSkKLSAgICAgICAgaW5wdXQtPnNldFZhbHVlRnJv
bVJlbmRlcmVyKGlucHV0LT5zYW5pdGl6ZVZhbHVlKHZhbHVlKSk7CisgICAgICAgIGlucHV0LT5z
ZXRWYWx1ZUZyb21SZW5kZXJlcihpbnB1dC0+c2FuaXRpemVWYWx1ZShpbnB1dC0+Y29udmVydEZy
b21WaXNpYmxlVmFsdWUodmFsdWUpKSk7CiAgICAgaWYgKG5vZGUoKS0+aXNIVE1MRWxlbWVudCgp
KSB7CiAgICAgICAgIC8vIFJlY2FsYyBmb3IgOmludmFsaWQgYW5kIGhhc1VuYWNjZXB0YWJsZVZh
bHVlKCkgY2hhbmdlLgogICAgICAgICBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oaW5w
dXQpLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
bWwvV01MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50
LmgKaW5kZXggNmM2NjQxMGJjZjc2YTllZmZiMThlZTUzOWRiMGE2MTc5ODlhMjUzZS4uMTE2MmFj
MTkzYzczN2UxNTQ2ZGI4NjM5ZTI2ZDdjYjVlN2RhZjRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dtbC9XTUxJ
bnB1dEVsZW1lbnQuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFsc2UpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgU3RyaW5nJik7CiAgICAgdmly
dHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWUoKTsgfQorICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYgdmFs
dWUpIGNvbnN0IHsgcmV0dXJuIHZhbHVlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRnJv
bVJlbmRlcmVyKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCBib29sIHNhdmVGb3JtQ29u
dHJvbFN0YXRlKFN0cmluZyYgdmFsdWUpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80733</attachid>
            <date>2011-02-01 02:33:42 -0800</date>
            <delta_ts>2011-02-01 06:30:52 -0800</delta_ts>
            <desc>Patch 3</desc>
            <filename>bug-42484-20110201193340.patch</filename>
            <type>text/plain</type>
            <size>33176</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyYjRkMzg3MTBiYTM2ZjY5N2ZmZGIxYjhhNWE4ZGI4Njc3NmMzYzA5Li40M2RiNTdl
OGY3NzNlMzc2OGIxOGZiZGM2YjhhMmJkNDY1MjVjM2EzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTEtMDEtMjcgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbG9jYWxpemVk
IG51bWJlcnMgaW4gPGlucHV0IHR5cGU9bnVtYmVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI0ODQKKworICAgICAgICAtIEFkZCBhIHRlc3QgZm9y
IGVuX1VTIGxvY2FsZSBiZWhhdmlvci4KKyAgICAgICAgLSBVcGRhdGUgYW4gZXhpc3RpbmcgdGVz
dCBiZWNhdXNlIG9mIHJlbW92aW5nIHRoZSBrZXlib2FyZCBpbnB1dAorICAgICAgICAgIHJlc3Ry
aWN0aW9uIGZlYXR1cmUuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LW51bWJlci1rZXlv
cGVyYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtbnVtYmVy
LWxvY2FsaXphdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtbnVtYmVyLWxvY2FsaXphdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLmpzOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTEtMDEtMzEgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBDaHJvbWl1bSB0ZXN0
IGV4cGVjdGF0aW9uIHVwZGF0ZXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLWV4cGVjdGVkLnR4dAppbmRleCAyMjFj
ZTZmZWRmOWRhNmU4YmIwY2U4OTk4ZmJmZTg5YTk1NTZiN2NlLi4xYzRmYzM0NGU2MmJhZWMwMThm
ZWQ2YTQ2YjAyMmUzODVkZDA3NTdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWtleW9wZXJhdGlvbi1leHBlY3RlZC50eHQKQEAgLTQs
NyArNCw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAogSW5zZXJ0aW5nICJhYjEyM2Nk
IjoKLVBBU1MgaW5wdXQudmFsdWUgaXMgIjEyMyIKK1BBU1MgaW5wdXQudmFsdWUgaXMgIiIKIFBy
ZXNzIHRoZSB1cCBhcnJvdyBrZXk6CiBQQVNTIGlucHV0LnZhbHVlIGlzICIxMjQiCiBQcmVzcyB0
aGUgZG93biBhcnJvdyBrZXk6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lu
cHV0LW51bWJlci1sb2NhbGl6YXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9pbnB1dC1udW1iZXItbG9jYWxpemF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
YmRkZDdlZWYxM2I0N2Y4NWE0NTI4OGI3OGRjYzBkYjBmZTE1NTVjCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItbG9jYWxpemF0aW9uLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitOdW1iZXIgdHlwZSBpbnB1dCBzaG93cyBhbmQgYWNj
ZXB0cyBsb2NhbGl6ZWQgbnVtYmVycy4gQXNzdW1lIERSVCB3b3JrcyBpbiBlbi1VUyBsb2NhbGUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDaGVja2luZyBhIHZpc2libGUgdmFs
dWUgZm9yICItMTIzNC41NiI6CitQQVNTIGRvY3VtZW50LmdldFNlbGVjdGlvbigpLnRvU3RyaW5n
KCkgaXMgIi0xLDIzNC41NiIKK0NoZWNraW5nIGEgRE9NIHZhbHVlIGZvciB0aGUgdmlzaWJsZSB2
YWx1ZSAiMSwyMzQsNTY3Ljg5IjoKK1BBU1MgaW5wdXQudmFsdWUgaXMgIjEyMzQ1NjcuODkiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKyAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWxvY2FsaXphdGlvbi5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItbG9jYWxpemF0aW9uLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZDU0OTA3MTdjNjVkMDE0YzA2MWE0YzcwZWNiOTc4Mzc5N2E3ZjFlZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWxv
Y2FsaXphdGlvbi5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKworPGlucHV0IHR5
cGU9bnVtYmVyIGlkPXRhcmdldDE+Cis8aW5wdXQgdHlwZT1udW1iZXIgaWQ9dGFyZ2V0Mj4KKwor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdOdW1iZXIgdHlwZSBpbnB1dCBzaG93cyBhbmQgYWNjZXB0
cyBsb2NhbGl6ZWQgbnVtYmVycy4gQXNzdW1lIERSVCB3b3JrcyBpbiBlbi1VUyBsb2NhbGUuJyk7
CisKK2RlYnVnKCdDaGVja2luZyBhIHZpc2libGUgdmFsdWUgZm9yICItMTIzNC41NiI6Jyk7Cit2
YXIgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0MScpOworaW5wdXQuZm9j
dXMoKTsKK2lucHV0LnZhbHVlID0gIi0xMjM0LjU2IjsKK2RvY3VtZW50LmV4ZWNDb21tYW5kKCdT
ZWxlY3RBbGwnKTsKK3Nob3VsZEJlKCdkb2N1bWVudC5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
JywgJyItMSwyMzQuNTYiJyk7CisKK2RlYnVnKCdDaGVja2luZyBhIERPTSB2YWx1ZSBmb3IgdGhl
IHZpc2libGUgdmFsdWUgIjEsMjM0LDU2Ny44OSI6Jyk7CitpbnB1dCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCd0YXJnZXQyJyk7CitpbnB1dC5mb2N1cygpOworZG9jdW1lbnQuZXhlY0NvbW1h
bmQoJ0luc2VydFRleHQnLCBmYWxzZSwgJzEsMjM0LDU2Ny44OScpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIxMjM0NTY3Ljg5IicpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1
ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMt
dGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LW51bWJlci1rZXlvcGVyYXRp
b24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1udW1iZXIt
a2V5b3BlcmF0aW9uLmpzCmluZGV4IGY4NDE1MWQ5ODIyM2Y2MWE0MDI1Zjg3ZWM4MzExYzNhMTNi
OTU5ZGEuLmE3YzBlODUwNTI4N2Q2MzdjNTQ1ZDRmMDE3Mzg4ZTc0YjZiMWYwN2QgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LW51bWJlci1rZXlv
cGVyYXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5w
dXQtbnVtYmVyLWtleW9wZXJhdGlvbi5qcwpAQCAtNyw5ICs3LDEwIEBAIHZhciBpbnB1dCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW1iZXInKTsKIGlucHV0LmZvY3VzKCk7CiBkZWJ1Zygn
SW5zZXJ0aW5nICJhYjEyM2NkIjonKTsKIGRvY3VtZW50LmV4ZWNDb21tYW5kKCdJbnNlcnRUZXh0
JywgZmFsc2UsICdhYjEyM2NkJyk7Ci1zaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEyMyInKTsK
K3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciIicpOwogCiBkZWJ1ZygnUHJlc3MgdGhlIHVwIGFy
cm93IGtleTonKTsKK2lucHV0LnZhbHVlQXNOdW1iZXIgPSAxMjM7CiBldmVudFNlbmRlci5rZXlE
b3duKCd1cEFycm93Jyk7CiBzaG91bGRCZSgnaW5wdXQudmFsdWUnLCAnIjEyNCInKTsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCA3ZjE1NGQwODEwYmE1MjQ4YzRhN2RiYTNjNWIwYWRk
NDQ0NGM3NGVlLi5mYjQ0ZTdjNzgzZmMyZWNlODVhNmIxY2U3ZmY4OWExZTEyYmI3OWI2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNTEwMSwzICs1MTAxLDYgQEAgbWVkaWEvYXVkaW8t
ZGVsZXRlLXdoaWxlLXNsaWRlci10aHVtYi1jbGlja2VkLmh0bWwKIAogIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM0MjgKIGh0dHAvdGVzdHMvbWlzYy9mYXZpY29u
LWFzLWltYWdlLmh0bWwKKworIyBOZWVkIHRvIGltcGxlbWVudCBXZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkTnVtYmVyLmgKK2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWxvY2FsaXphdGlv
bi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCBiOGFhN2Y4OWI4ODdjMTc5YWUzZDk2
OWRjOWViMjM3NGZhMzAwZjQ5Li43YWExYzViNjg1MzUxYjYxYzFmZTMyMDNlYzE0NDBhNmQ0ZTcz
MjhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTUwMTMsMyArNTAxMyw2IEBAIGh0dHAv
dGVzdHMvbmF2aWdhdGlvbi9nby1iYWNrLXRvLWVycm9yLXBhZ2UuaHRtbAogIyBbUXRdIExheW91
dFRlc3RzL21lZGlhL3ZpZGVvLWN1cnJlbnRUaW1lLWRlbGF5Lmh0bWwgZmFpbHMKICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyODU5CiBtZWRpYS92aWRlby1jdXJy
ZW50VGltZS1kZWxheS5odG1sCisKKyMgTmVlZCB0byBpbXBsZW1lbnQgV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L0xvY2FsaXplZE51bWJlci5oCitmYXN0L2Zvcm1zL2lucHV0LW51bWJlci1sb2NhbGl6
YXRpb24uaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCA0MTEwMzA0NTA2ZjEzNDNj
MWFkZWU1OGYxMzBhN2M1N2EzZTc2MzU4Li40Mjk0ZGNmY2M5YWU3ZWIyODZmOTIzNDhiY2IyNjAx
ZDllYjYwNzQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtMTEyMiwzICsxMTIyLDUg
QEAgaHR0cC90ZXN0cy9sb2FkaW5nL2Nyb3NzLW9yaWdpbi1YSFItd2lsbExvYWRSZXF1ZXN0Lmh0
bWwKICMgUmVxdWVzdCBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpIHN1cHBvcnQKIGZh
c3QvYW5pbWF0aW9uCiAKKyMgTmVlZCB0byBpbXBsZW1lbnQgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L0xvY2FsaXplZE51bWJlci5oCitmYXN0L2Zvcm1zL2lucHV0LW51bWJlci1sb2NhbGl6YXRpb24u
aHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGU2ZWFmY2Y4ZmY2ZTViNGJkZWNlMjQzYTQ0NTEwYjg1YjgxZDVk
OTEuLjNmNmRiODJlZThiNzAxMWIwZjBhNzUzN2UzNjYzNjZjMDZkYzA3YTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw1OCBAQAorMjAxMS0wMS0yNyAgS2VudCBUYW11cmEgIDx0a2VudEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycyBpbiA8aW5wdXQgdHlwZT1udW1iZXI+CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MjQ4NAorCisgICAgICAg
IFRoaXMgY2hhbmdlIGFkZHMgc3VwcG9ydCBvZiBsb2NhbGl6ZWQgbnVtYmVycyBpbiA8aW5wdXQg
dHlwZT1udW1iZXI+LgorICAgICAgICBUaGlzIGFmZmVjdHMgb25seSB0aGUgVUksIGFuZCBub3Qg
SFRNTElucHV0RWxlbWVudDo6dmFsdWUuCisKKyAgICAgICAgLSBSZW1vdmUgdGhlIGtleWJvYXJk
IGlucHV0IHJlc3RyaWN0aW9uIGZlYXR1cmUgYmVjYXVzZSBpdCBpcyBoYXJkIHRvCisgICAgICAg
ICAgcmV0cmlldmUgY2hhcmFjdGVycyB1c2FibGUgZm9yIGxvY2FsaXplZCBudW1iZXJzIGluIElD
VS4KKworICAgICAgICAtIFNlcGFyYXRlIGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKCkgZnJvbSBz
YW5pdGl6ZVZhbHVlKCkuCisgICAgICAgICAgc2FuaXRpemVWYWx1ZSgpIGlzIHVzZWQgZm9yIG5v
dCBvbmx5IGNvbnZlcnRpbmcgYSByZW5kZXJlciB2YWx1ZSB0byBhCisgICAgICAgICAgRE9NIHZh
bHVlLgorCisgICAgICAgIC0gSW1wbGVtZW50IExvY2FsaXplZE51bWJlciBmdW5jdGlvbnMgZm9y
IElDVSBhbmQgTlNOdW1iZXJGb3JtYXR0ZXIuCisgICAgICAgICAgSXQgaXMgdXNlZCBvbmx5IGlu
IENocm9taXVtIGZvciBub3cuCisKKyAgICAgICAgVGVzdDogZmFzdC9mb3Jtcy9pbnB1dC1udW1i
ZXItbG9jYWxpemF0aW9uLmh0bWwKKworICAgICAgICAqIFdlYkNvcmUuZ3lwaTogVXNlIExvY2Fs
aXplZE51bWJlcklDVS5jcHAuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qOgorICAgICAgICAgIEFkZCBMb2NhbGl6ZWROdW1iZXJNYWMubW0gYW5kIHJlbW92ZSBM
b2NhbGl6ZWROdW1iZXJOb25lLmNwcC4KKyAgICAgICAgKiBkb20vSW5wdXRFbGVtZW50Lmg6IElu
dHJvZHVjZSBjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSgpLgorICAgICAgICAqIGh0bWwvSFRNTElu
cHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50Ojpjb252
ZXJ0RnJvbVZpc2libGVWYWx1ZSk6CisgICAgICAgICogaHRtbC9IVE1MSW5wdXRFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5wdXRU
eXBlOjpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSk6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUu
aDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6IFJlbW92ZSBpc0hUTUxOdW1i
ZXJDaGFyYWN0ZXIoKSwKKyAgICAgICAgICBpc051bWJlckNoYXJhY3RlcigpLCBhbmQgaGFuZGxl
QmVmb3JlVGV4dEluc2VydGVkRXZlbnQoKSBiZWNhdXNlIHdlCisgICAgICAgICAgcmVtb3ZlIHRo
ZSBrZXlib2FyZCBpbnB1dCByZXN0cmljdGlvbiBmZWF0dXJlIGZvciB0eXBlPW51bWJlci4KKyAg
ICAgICAgKFdlYkNvcmU6Ok51bWJlcklucHV0VHlwZTo6Y29udmVydEZyb21WaXNpYmxlVmFsdWUp
OgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBlOjpzYW5pdGl6ZVZhbHVlKToKKyAg
ICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
TG9jYWxpemVkTnVtYmVyLmg6IFJlbW92ZSBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcigpLgor
ICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVySUNVLmNwcDoKKyAgICAgICAg
ICBJbXBsZW1lbnQgTG9jYWxpemVkTnVtYmVyIGZ1bmN0aW9ucyB3aXRoIElDVSBOdW1iZXJGb3Jt
YXQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3JtYXR0ZXJGb3JDdXJyZW50TG9jYWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVkTnVtYmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmZvcm1hdExvY2FsaXplZE51bWJlcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2Nh
bGl6ZWROdW1iZXJOb25lLmNwcDogUmVtb3ZlIGlzTG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVyKCku
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxpemVkTnVtYmVyTWFjLm1tOgorICAg
ICAgICAgIEltcGxlbWVudCBMb2NhbGl6ZWROdW1iZXIgZnVuY3Rpb25zIHdpdGggTlNOdW1iZXJG
b3JtYXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpwYXJzZUxvY2FsaXplZE51bWJlcik6CisgICAg
ICAgIChXZWJDb3JlOjpmb3JtYXRMb2NhbGl6ZWROdW1iZXIpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdWJ0cmVlSGFzQ2hhbmdlZCk6CisgICAgICAgICog
d21sL1dNTElucHV0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6V01MSW5wdXRFbGVtZW50
Ojpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSk6CisgICAgICAgICAgSW1wbGVtZW50ZWQgYXMgYSBm
dW5jdGlvbiBkb2luZyBub3RoaW5nLgorCiAyMDExLTAxLTMxICBBbGV4ZXkgUHJvc2t1cnlha292
ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFr
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCmluZGV4IDFmOGVmZDhjOGI0MmQ2NjI0YTM1NGYxMGMyMjBiZDFjMDg0
YzhlM2UuLmNmNTMxMmQ4MThjOGQ0MDQ4YzM2NWNmOGIzOGM2NjY0NWUxMzUzMDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLmd5cGkKQEAgLTMzMjAsNyArMzMyMCw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4
dC9MaW5lRW5kaW5nLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5n
LmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgnLAotICAg
ICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAnLAorICAgICAg
ICAgICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVySUNVLmNwcCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vdGV4dC9QYXJzZXJVdGlsaXRpZXMuaCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vdGV4dC9QbGF0Zm9ybVN0cmluZy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1Jl
Z3VsYXJFeHByZXNzaW9uLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNDE1NjAyZThhMjYxODJhOTBkMDMzOTZkZDMwZjk0
ZTc4Y2MwY2JjNi4uMGY5ZTkyN2MyYzcyYTkwOGViOTFmNTNjMjA1Mjc1Y2UwNDRhYTI0ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtNTY0NCw3ICs1NjQ0LDYgQEAKIAkJRjRFQUY0QUUxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5U
eXBlU2FuaXRpemVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY0RUFGNEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAg
Ki87IH07CiAJCUY0RUFGNEFGMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUQx
MEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi87IH07CiAJCUY1MTQyQzY5
MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAvKiBM
b2NhbGl6ZWROdW1iZXIuaCAqLzsgfTsKLQkJRjUxNDJDNkIxMjNGMTJDNTAwRjVCRDRDIC8qIExv
Y2FsaXplZE51bWJlck5vbmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjUxNDJDNkExMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5v
bmUuY3BwICovOyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1
dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjU1QjNENzkxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsK
IAkJRjU1QjNEQUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJE
MDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEy
RDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9u
SW5wdXRUeXBlLmNwcCAqLzsgfTsKQEAgLTU3MDgsNiArNTcwNyw3IEBACiAJCUY1QzA0MUU1MEZG
Q0E5NkQwMDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUUwMEZGQ0E5NkQw
MDgzOUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJRjVD
MDQxRTYwRkZDQTk2RDAwODM5RDRBIC8qIEpTSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFFMTBGRkNBOTZE
MDA4MzlENEEgLyogSlNIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJRjVDMDQxRTcw
RkZDQTk2RDAwODM5RDRBIC8qIEpTSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRTIwRkZDQTk2RDAwODM5RDRB
IC8qIEpTSFRNTERhdGFMaXN0RWxlbWVudC5oICovOyB9OworCQlGNUNDNDJEQzEyRjgwMUNBMDBE
NUY3RTMgLyogTG9jYWxpemVkTnVtYmVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDQzQyREIxMkY4MDFDQTAwRDVGN0UzIC8qIExvY2FsaXpl
ZE51bWJlck1hYy5tbSAqLzsgfTsKIAkJRjVEM0E1N0MxMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVD
b21wb25lbnRzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1RDNBNTdBMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgKi87IH07
CiAJCUY1RDNBNTdEMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVEM0E1N0IxMDZCODNCMzAw
NTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJRjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmll
bnRhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
RjdBMDM0QzMxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjAyMCw3ICsxMjAyMCw2
IEBACiAJCUY0RUFGNEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5j
cHA7IHBhdGggPSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0
aXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXpl
ci5oOyBwYXRoID0gb3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRjUxNDJDNjgxMjNGMTJCMDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbGl6ZWROdW1iZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjUxNDJDNkExMjNGMTJDNTAwRjVCRDRDIC8q
IExvY2FsaXplZE51bWJlck5vbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gTG9jYWxpemVkTnVtYmVyTm9uZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUY1MjNEMjNCMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERvY3Vt
ZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9
IDA7IH07CiAJCUY1MjNEMjNDMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGgg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTERvY3Vt
ZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAw
OyB9OwogCQlGNTIzRDIzRTAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTEVsZW1lbnQuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEVs
ZW1lbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJz
ID0gMDsgfTsKQEAgLTEyMTA5LDYgKzEyMTA4LDcgQEAKIAkJRjVDMjg2OTMwMjg0NkRDRDAxODYz
NUNBIC8qIEFwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBB
cHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0FwcGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNv
bHV0ZT4iOyB9OwogCQlGNUMyODY5NDAyODQ2RENEMDE4NjM1Q0EgLyogQ2FyYm9uLmZyYW1ld29y
ayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBw
ZXIuZnJhbWV3b3JrOyBuYW1lID0gQ2FyYm9uLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGli
cmFyeS9GcmFtZXdvcmtzL0NhcmJvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRl
PiI7IH07CiAJCUY1QzI4Njk1MDI4NDZEQ0QwMTg2MzVDQSAvKiBDb2NvYS5mcmFtZXdvcmsgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZy
YW1ld29yazsgbmFtZSA9IENvY29hLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9G
cmFtZXdvcmtzL0NvY29hLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsK
KwkJRjVDQzQyREIxMkY4MDFDQTAwRDVGN0UzIC8qIExvY2FsaXplZE51bWJlck1hYy5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsaXplZE51bWJlck1hYy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVEM0E1N0ExMDZCODNCMzAwNTQ1Mjk3
IC8qIERhdGVDb21wb25lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IERhdGVDb21wb25lbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVE
M0E1N0IxMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IERhdGVDb21wb25lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUY3QTAzNEMzMTI2QkY2QkUwMDdEQzE5RSAvKiBGb250T3JpZW50YXRpb24uaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udE9yaWVudGF0aW9uLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNzU5Miw3ICsxNzU5Miw2IEBACiAJCQkJODlCNUVB
OUYxMUU4MDAzRDAwRjIzNjdFIC8qIExpbmVFbmRpbmcuY3BwICovLAogCQkJCTg5QjVFQUEwMTFF
ODAwM0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5nLmggKi8sCiAJCQkJRjUxNDJDNjgxMjNGMTJCMDAw
RjVCRDRDIC8qIExvY2FsaXplZE51bWJlci5oICovLAotCQkJCUY1MTQyQzZBMTIzRjEyQzUwMEY1
QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcCAqLywKIAkJCQlCQzc2QUMxMTBERDdBRDVD
MDA0MTVGMzQgLyogUGFyc2VyVXRpbGl0aWVzLmggKi8sCiAJCQkJQjJDM0Q5RkIwRDAwNkMxRDAw
RUY2RjI2IC8qIFBsYXRmb3JtU3RyaW5nLmggKi8sCiAJCQkJQjJDM0Q5RkMwRDAwNkMxRDAwRUY2
RjI2IC8qIFJlZ3VsYXJFeHByZXNzaW9uLmNwcCAqLywKQEAgLTE3NjM3LDYgKzE3NjM2LDcgQEAK
IAkJCQlCMkFGRkM4NTBEMDBBNURGMDAzMDA3NEQgLyogY2hhcmFjdGVyLXNldHMudHh0ICovLAog
CQkJCUIyQzNEOUZBMEQwMDZDMUQwMEVGNkYyNiAvKiBDaGFyc2V0RGF0YS5oICovLAogCQkJCTM3
NUNEMjM5MTE5RDQ0RUEwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbk1hYy5tbSAqLywKKwkJCQlGNUND
NDJEQjEyRjgwMUNBMDBENUY3RTMgLyogTG9jYWxpemVkTnVtYmVyTWFjLm1tICovLAogCQkJCUIy
QUZGQzg2MEQwMEE1REYwMDMwMDc0RCAvKiBtYWMtZW5jb2RpbmdzLnR4dCAqLywKIAkJCQlCMkFG
RkM4NzBEMDBBNURGMDAzMDA3NEQgLyogbWFrZS1jaGFyc2V0LXRhYmxlLnBsICovLAogCQkJCUIy
QUZGQzg4MEQwMEE1REYwMDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5jICovLApAQCAtMjQzNTEsNyAr
MjQzNTEsNyBAQAogCQkJCTdFRTY4NDY4MTJEMjZFMzgwMEU3OTQxNSAvKiBMb2FkZXJSdW5Mb29w
Q0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMDZFODFFRUMwQUI1REE5NzAwQzg3ODM3IC8qIExv
Y2FsQ3VycmVudEdyYXBoaWNzQ29udGV4dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4NTY3
MTIyQ0EwNjQwMDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCi0J
CQkJRjUxNDJDNkIxMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJRjVDQzQyREMxMkY4MDFDQTAwRDVGN0UzIC8qIExvY2FsaXplZE51
bWJlck1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUMwNDZFMUFDMTIwOEE5RkUwMEJBMkNGNyAv
KiBMb2NhbGl6ZWRTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUYyMzE3MERDMTYw
REEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUx
MUYyMzE5MERDMTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmggYi9T
b3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKaW5kZXggMDJhYzVjZjIzNzMyYWJlMzUz
MjhhNjI1MzYzZDZmNGMwZjgzMTVkOC4uYWUwOWFkMGViNjIzOGFjYTcxMzllZDFmM2ZiOWE2MDY4
ODkyODdlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuaApAQCAtNjEsNiArNjEsNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmKSA9
IDA7CiAgICAgLy8gVGhlIHZhbHVlIHdoaWNoIGlzIGRyYXduIGJ5IGEgcmVuZGVyZXIuCiAgICAg
dmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3Ry
aW5nIGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKIAog
ICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHN0cmluZyBjYW4gYmUgc2V0IGFz
IHRoZSB2YWx1ZSBvZiBJbnB1dEVsZW1lbnQuCiAgICAgdmlydHVhbCBib29sIGlzQWNjZXB0YWJs
ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bnB1dEVsZW1lbnQuY3BwCmluZGV4IDdiMTI3NjcwZmZkM2RmZDY0ZjVjMDdjYzM3NThjZjM3OTAy
MjkxNjcuLmMyOWZkZmE3ODcyOTg4NDhiMDU0NWNiODQzZTRhZTJkNzFjZjJlODQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTE0NSw2ICsxMTQ1LDExIEBA
IFN0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAogICAgIHJldHVy
biBtX2lucHV0VHlwZS0+dmlzaWJsZVZhbHVlKCk7CiB9CiAKK1N0cmluZyBIVE1MSW5wdXRFbGVt
ZW50Ojpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBTdHJpbmcmIHZpc2libGVWYWx1ZSkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmNvbnZlcnRGcm9tVmlzaWJsZVZhbHVl
KHZpc2libGVWYWx1ZSk7Cit9CisKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNBY2NlcHRhYmxl
VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogewogICAgIHJldHVybiBt
X2lucHV0VHlwZS0+aXNBY2NlcHRhYmxlVmFsdWUocHJvcG9zZWRWYWx1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oCmluZGV4IDc1Nzk5MmFkYTY3NTQyNjBmNjAxNDMzMTA3
MzFiZGQ4ZmMwOGMwYTUuLjQwZWIxOTVhOGIwZWM0MjVlZjhjOTU0MDI5ODkzMGZhZDExZmJjNjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yNjAsNiArMjYwLDcg
QEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgY2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0LCBp
bnQgZW5kKTsKIAogICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OworICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNv
bnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKSBj
b25zdDsKICAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNv
bnN0OwogICAgIHZpcnR1YWwgYm9vbCBoYXNVbmFjY2VwdGFibGVWYWx1ZSgpIGNvbnN0OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbnB1dFR5cGUuY3BwCmluZGV4IDM4MDhmMmU4ZDZlMzczMjVhMzlmNDhkNzQzZDg3
N2VmMmU5YjgwMDUuLmYxNWJkODcwOGQyNDI0ZWJmYjY2ZmNjMTNhNzAwYWQ4Y2NiNWQ4NjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKQEAgLTUxMSw2ICs1MTEsMTEgQEAgU3RyaW5nIElu
cHV0VHlwZTo6dmlzaWJsZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gZWxlbWVudCgpLT52YWx1
ZSgpOwogfQogCitTdHJpbmcgSW5wdXRUeXBlOjpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25z
dCBTdHJpbmcmIHZpc2libGVWYWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gdmlzaWJsZVZhbHVl
OworfQorCiBib29sIElucHV0VHlwZTo6aXNBY2NlcHRhYmxlVmFsdWUoY29uc3QgU3RyaW5nJikK
IHsKICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IGZlZjdlYTQy
OTAwZmM1NTEzYThmNTNjYTEzMDM3OWJmZTE5MjllMzcuLjBiMmJjZjA0ZTIxZGQ1YzllMjMyNDhk
MzY1ZTI0Yzc3MmY0ZmU1MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRU
eXBlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMTQ5LDYgKzE0
OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29u
c3Q7CiAgICAgdmlydHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgY29u
dmVydEZyb21WaXNpYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBi
b29sIGlzQWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgU3RyaW5n
IHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIGhhc1VuYWNj
ZXB0YWJsZVZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKaW5k
ZXggZjA5Njc3NjQzZjU5YmY5ZGE5OGM5YmM1MzQ4ODk3N2EyODUzOGZjYS4uZDY2NDNlMTJmODc3
NDJhYTA0ZGM5OWI4YzAwMzJmYjZiZTBlZmUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVy
SW5wdXRUeXBlLmNwcApAQCAtNTYsMTggKzU2LDYgQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBudW1i
ZXJEZWZhdWx0TWF4aW11bSA9IEZMVF9NQVg7CiBzdGF0aWMgY29uc3QgZG91YmxlIG51bWJlckRl
ZmF1bHRTdGVwID0gMS4wOwogc3RhdGljIGNvbnN0IGRvdWJsZSBudW1iZXJTdGVwU2NhbGVGYWN0
b3IgPSAxLjA7CiAKLS8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciBj
YW4gYmUgYSBwYXJ0IG9mICd2YWxpZCBmbG9hdGluZwotLy8gcG9pbnQgbnVtYmVyJyBvZiBIVE1M
NS4KLXN0YXRpYyBib29sIGlzSFRNTE51bWJlckNoYXJhY3RlcihVQ2hhciBjaCkKLXsKLSAgICBy
ZXR1cm4gY2ggPT0gJysnIHx8IGNoID09ICctJyB8fCBjaCA9PSAnLicgfHwgY2ggPT0gJ2UnIHx8
IGNoID09ICdFJyB8fCBpc0FTQ0lJRGlnaXQoY2gpOwotfQotCi1zdGF0aWMgYm9vbCBpc051bWJl
ckNoYXJhY3RlcihVQ2hhciBjaCkKLXsKLSAgICByZXR1cm4gaXNMb2NhbGl6ZWROdW1iZXJDaGFy
YWN0ZXIoY2gpIHx8IGlzSFRNTE51bWJlckNoYXJhY3RlcihjaCk7Ci19Ci0KIFBhc3NPd25QdHI8
SW5wdXRUeXBlPiBOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVt
ZW50KQogewogICAgIHJldHVybiBhZG9wdFB0cihuZXcgTnVtYmVySW5wdXRUeXBlKGVsZW1lbnQp
KTsKQEAgLTE4NiwzMCArMTc0LDYgQEAgdm9pZCBOdW1iZXJJbnB1dFR5cGU6OmhhbmRsZUtleWRv
d25FdmVudChLZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgVGV4dEZpZWxkSW5wdXRUeXBl
OjpoYW5kbGVLZXlkb3duRXZlbnQoZXZlbnQpOwogfQogCi12b2lkIE51bWJlcklucHV0VHlwZTo6
aGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4dEluc2VydGVkRXZlbnQqIGV2
ZW50KQotewotICAgIHVuc2lnbmVkIGxlbmd0aCA9IGV2ZW50LT50ZXh0KCkubGVuZ3RoKCk7Ci0g
ICAgYm9vbCBoYXNJbnZhbGlkQ2hhciA9IGZhbHNlOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBpZiAoIWlzTnVtYmVyQ2hhcmFjdGVyKGV2ZW50
LT50ZXh0KClbaV0pKSB7Ci0gICAgICAgICAgICBoYXNJbnZhbGlkQ2hhciA9IHRydWU7Ci0gICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoaGFzSW52YWxpZENoYXIp
IHsKLSAgICAgICAgVmVjdG9yPFVDaGFyPiBzdHJpcHBlZDsKLSAgICAgICAgc3RyaXBwZWQucmVz
ZXJ2ZUNhcGFjaXR5KGxlbmd0aCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBs
ZW5ndGg7ICsraSkgewotICAgICAgICAgICAgVUNoYXIgY2ggPSBldmVudC0+dGV4dCgpW2ldOwot
ICAgICAgICAgICAgaWYgKCFpc051bWJlckNoYXJhY3RlcihjaCkpCi0gICAgICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgICAgICBzdHJpcHBlZC5hcHBlbmQoY2gpOwotICAgICAgICB9Ci0g
ICAgICAgIGV2ZW50LT5zZXRUZXh0KFN0cmluZzo6YWRvcHQoc3RyaXBwZWQpKTsKLSAgICB9Ci0g
ICAgVGV4dEZpZWxkSW5wdXRUeXBlOjpoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudChldmVu
dCk7Ci19Ci0KIHZvaWQgTnVtYmVySW5wdXRUeXBlOjpoYW5kbGVXaGVlbEV2ZW50KFdoZWVsRXZl
bnQqIGV2ZW50KQogewogICAgIGhhbmRsZVdoZWVsRXZlbnRGb3JTcGluQnV0dG9uKGV2ZW50KTsK
QEAgLTI2Nyw2ICsyMzEsMTIgQEAgU3RyaW5nIE51bWJlcklucHV0VHlwZTo6dmlzaWJsZVZhbHVl
KCkgY29uc3QKICAgICByZXR1cm4gbG9jYWxpemVkLmlzRW1wdHkoKSA/IGN1cnJlbnRWYWx1ZSA6
IGxvY2FsaXplZDsKIH0KIAorU3RyaW5nIE51bWJlcklucHV0VHlwZTo6Y29udmVydEZyb21WaXNp
YmxlVmFsdWUoY29uc3QgU3RyaW5nJiB2aXNpYmxlVmFsdWUpIGNvbnN0Cit7CisgICAgZG91Ymxl
IHBhcnNlZE51bWJlciA9IHBhcnNlTG9jYWxpemVkTnVtYmVyKHZpc2libGVWYWx1ZSk7CisgICAg
cmV0dXJuIGlzZmluaXRlKHBhcnNlZE51bWJlcikgPyBzZXJpYWxpemVGb3JOdW1iZXJUeXBlKHBh
cnNlZE51bWJlcikgOiB2aXNpYmxlVmFsdWU7Cit9CisKIGJvb2wgTnVtYmVySW5wdXRUeXBlOjpp
c0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpCiB7CiAgICAgcmV0
dXJuIHByb3Bvc2VkVmFsdWUuaXNFbXB0eSgpIHx8IGlzZmluaXRlKHBhcnNlTG9jYWxpemVkTnVt
YmVyKHByb3Bvc2VkVmFsdWUpKSB8fCBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShwcm9wb3Nl
ZFZhbHVlLCAwKTsKQEAgLTI3NCwxMSArMjQ0LDYgQEAgYm9vbCBOdW1iZXJJbnB1dFR5cGU6Omlz
QWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkKIAogU3RyaW5nIE51
bWJlcklucHV0VHlwZTo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUp
CiB7Ci0gICAgLy8gVHJ5IHRvIHBhcnNlIHRoZSB2YWx1ZSBhcyBhIGxvY2FsaXplZCBudW1iZXIs
IHRoZW4gdHJ5IHRvIHBhcnNlIGl0IGFzCi0gICAgLy8gdGhlIHN0YW5kYXJkIGZvcm1hdC4KLSAg
ICBkb3VibGUgcGFyc2VkVmFsdWUgPSBwYXJzZUxvY2FsaXplZE51bWJlcihwcm9wb3NlZFZhbHVl
KTsKLSAgICBpZiAoaXNmaW5pdGUocGFyc2VkVmFsdWUpKQotICAgICAgICByZXR1cm4gc2VyaWFs
aXplRm9yTnVtYmVyVHlwZShwYXJzZWRWYWx1ZSk7CiAgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGVG
b3JOdW1iZXJUeXBlKHByb3Bvc2VkVmFsdWUsIDApID8gcHJvcG9zZWRWYWx1ZSA6IFN0cmluZygp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCA5ZDk3MTM0NGY4
M2FkNTAwOGFjNjllYzkyODkzZDlmZTY2NWIzNTk0Li5lYTVkYzEwNGYwMTA1NGFlOGU2Mjg1Nzgy
MzQ0ZDU3OTFlMDAyNThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklu
cHV0VHlwZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAg
LTU3LDcgKzU3LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSBkZWZhdWx0U3RlcCgp
IGNvbnN0OwogICAgIHZpcnR1YWwgZG91YmxlIHN0ZXBTY2FsZUZhY3RvcigpIGNvbnN0OwogICAg
IHZpcnR1YWwgdm9pZCBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCopOwotICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudChCZWZvcmVUZXh0SW5zZXJ0
ZWRFdmVudCopOwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KFdoZWVsRXZlbnQq
KTsKICAgICB2aXJ0dWFsIGRvdWJsZSBwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYsIGRvdWJs
ZSkgY29uc3Q7CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VUb0RvdWJsZVdpdGhEZWNpbWFsUGxh
Y2VzKGNvbnN0IFN0cmluZyYsIGRvdWJsZSwgdW5zaWduZWQqKSBjb25zdDsKQEAgLTY1LDYgKzY0
LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSBhY2NlcHRhYmxlRXJyb3IoZG91Ymxl
KSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCk7CiAgICAgdmlydHVh
bCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgY29udmVy
dEZyb21WaXNpYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29s
IGlzQWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgU3RyaW5nIHNh
bml0aXplVmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIGhhc1VuYWNjZXB0
YWJsZVZhbHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xv
Y2FsaXplZE51bWJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWRO
dW1iZXIuaAppbmRleCA0NTg3M2I4YjdkOWY0Mzk3NDhjZDViMzM0Yjc3YmZiYmE1ZjNmMDBiLi5k
NzA1NDFmMDAxZWNiZDYxNGNjNGE3YzFlYzdiZjU0ZGY5NDQ5NzE0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgKQEAgLTQ5LDExICs0OSw2IEBA
IGRvdWJsZSBwYXJzZUxvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcmKTsKIC8vIHJldHVybiBh
biBlbXB0eSBzdHJpbmcuCiBTdHJpbmcgZm9ybWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZSk7CiAK
LS8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgaW5wdXQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHRvIHJl
cHJlc2VudCBhCi0vLyBudW1iZXIgaW4gdGhlIGJyb3dzZXIgbG9jYWxlLiBGb3IgZXhhbXBsZSwg
dGhpcyBzaG91bGQgcmV0dXJuIHRydWUgZm9yIDAtOSAuCi0vLyAsICsgLSBmb3IgZW4tVVMgbG9j
YWxlLgotYm9vbCBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcihVQ2hhcjMyKTsKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gTG9jYWxpemVkTnVtYmVyX2gKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVySUNVLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVySUNVLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40YTgyZGQ2MWFhYmU1NGU1MmI1MmY2NTY1ZDYwODQyNWFiZDdlZmRmCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJJ
Q1UuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICog
Y29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhl
ciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJp
YnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVk
IGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJ
R0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9j
YWxpemVkTnVtYmVyLmgiCisKKyNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8dW5pY29kZS9u
dW1mbXQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1lc3BhY2Ug
c3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxpbmUgUGFzc093blB0cjxO
dW1iZXJGb3JtYXQ+IGNyZWF0ZUZvcm1hdHRlckZvckN1cnJlbnRMb2NhbGUoKQoreworICAgIFVF
cnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIHJldHVybiBhZG9wdFB0cihOdW1i
ZXJGb3JtYXQ6OmNyZWF0ZUluc3RhbmNlKHN0YXR1cykpOworfQorCitkb3VibGUgcGFyc2VMb2Nh
bGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJiBudW1iZXJTdHJpbmcpCit7CisgICAgaWYgKG51bWJl
clN0cmluZy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKTsKKyAgICBPd25QdHI8TnVtYmVyRm9ybWF0PiBmb3JtYXR0ZXIgPSBjcmVh
dGVGb3JtYXR0ZXJGb3JDdXJyZW50TG9jYWxlKCk7CisgICAgaWYgKCFmb3JtYXR0ZXIpCisgICAg
ICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICBVbmlj
b2RlU3RyaW5nIG51bWJlclVuaWNvZGVTdHJpbmcobnVtYmVyU3RyaW5nLmNoYXJhY3RlcnMoKSwg
bnVtYmVyU3RyaW5nLmxlbmd0aCgpKTsKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19F
UlJPUjsKKyAgICBGb3JtYXR0YWJsZSByZXN1bHQ7CisgICAgZm9ybWF0dGVyLT5wYXJzZShudW1i
ZXJVbmljb2RlU3RyaW5nLCByZXN1bHQsIHN0YXR1cyk7CisgICAgaWYgKHN0YXR1cyAhPSBVX1pF
Uk9fRVJST1IpCisgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9O
YU4oKTsKKyAgICBkb3VibGUgbnVtZXJpY1Jlc3VsdCA9IHJlc3VsdC5nZXREb3VibGUoc3RhdHVz
KTsKKyAgICByZXR1cm4gc3RhdHVzID09IFVfWkVST19FUlJPUiA/IG51bWVyaWNSZXN1bHQgOiBu
dW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKK30KKworU3RyaW5nIGZvcm1hdExv
Y2FsaXplZE51bWJlcihkb3VibGUgbnVtYmVyKQoreworICAgIE93blB0cjxOdW1iZXJGb3JtYXQ+
IGZvcm1hdHRlciA9IGNyZWF0ZUZvcm1hdHRlckZvckN1cnJlbnRMb2NhbGUoKTsKKyAgICBpZiAo
IWZvcm1hdHRlcikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIFVuaWNvZGVTdHJpbmcg
cmVzdWx0OworICAgIGZvcm1hdHRlci0+Zm9ybWF0KG51bWJlciwgcmVzdWx0KTsKKyAgICByZXR1
cm4gU3RyaW5nKHJlc3VsdC5nZXRCdWZmZXIoKSwgcmVzdWx0Lmxlbmd0aCgpKTsKK30KKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAKaW5kZXggNmYwMTdlOWY4OTQ5OGUyNWY2MjZhNDg5
M2M1MWY4ODgyOTJkMzhjNC4uNzI5ZjJmMTk0NDJjYTBjYmM5ZWZiNmRiMzAxMWRkOTY0ZGNlODU0
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1i
ZXJOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51
bWJlck5vbmUuY3BwCkBAIC00Nyw5ICs0Nyw0IEBAIFN0cmluZyBmb3JtYXRMb2NhbGl6ZWROdW1i
ZXIoZG91YmxlKQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotYm9vbCBpc0xvY2FsaXplZE51
bWJlckNoYXJhY3RlcihVQ2hhcjMyKQotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9tYWMvTG9jYWxpemVkTnVtYmVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9tYWMvTG9jYWxpemVkTnVtYmVyTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ1NzYyZGY1OTRjNWIyNWNi
ZDE2NTMwODgyMWYwNDc5NGMzZmVmNmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGl6ZWROdW1iZXJNYWMubW0KQEAgLTAsMCArMSw2MCBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0
aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
CisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJ
bmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8g
ZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJ
QlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICog
T1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWROdW1iZXIuaCIKKworI2lu
Y2x1ZGUgPGxpbWl0cz4KKyNpbXBvcnQgPEZvdW5kYXRpb24vTlNOdW1iZXJGb3JtYXR0ZXIuaD4K
KwordXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitkb3VibGUg
cGFyc2VMb2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJiBudW1iZXJTdHJpbmcpCit7CisgICAg
aWYgKG51bWJlclN0cmluZy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0
czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICBOU051bWJlckZvcm1hdHRlciogZm9ybWF0dGVy
ID0gW1tbTlNOdW1iZXJGb3JtYXR0ZXIgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICBb
Zm9ybWF0dGVyIHNldE51bWJlclN0eWxlOk5TTnVtYmVyRm9ybWF0dGVyRGVjaW1hbFN0eWxlXTsK
KyAgICBOU051bWJlciogbnVtID0gW2Zvcm1hdHRlciBudW1iZXJGcm9tU3RyaW5nOm51bWJlclN0
cmluZ107CisgICAgcmV0dXJuIFtudW0gZG91YmxlVmFsdWVdOworfQorCitTdHJpbmcgZm9ybWF0
TG9jYWxpemVkTnVtYmVyKGRvdWJsZSBudW1iZXIpCit7CisgICAgTlNOdW1iZXIqIG51bSA9IFtO
U051bWJlciBudW1iZXJXaXRoRG91YmxlOm51bWJlcl07CisgICAgTlNOdW1iZXJGb3JtYXR0ZXIq
IGZvcm1hdHRlciA9IFtbW05TTnVtYmVyRm9ybWF0dGVyIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFz
ZV07CisgICAgW2Zvcm1hdHRlciBzZXROdW1iZXJTdHlsZTpOU051bWJlckZvcm1hdHRlckRlY2lt
YWxTdHlsZV07CisgICAgcmV0dXJuIFN0cmluZyhbZm9ybWF0dGVyIHN0cmluZ0Zyb21OdW1iZXI6
bnVtXSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRl
eCA3MzcyNzIyNTY5NzVhZjgyMTk5MTBkZGEwODhlMzViZThlZGJiNTlkLi5jNjRlNDBmYjBhYWY3
ZjVjYjA4NzA1N2ZmMmQxYWEyMzdjMzRhZGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtMTc0LDcg
KzE3NCw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdWJ0cmVlSGFzQ2hh
bmdlZCgpCiAgICAgLy8gc2FuaXRpemVWYWx1ZSgpIGlzIG5lZWRlZCBiZWNhdXNlIElNRSBpbnB1
dCBkb2Vzbid0IGRpc3BhdGNoIEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50LgogICAgIFN0cmluZyB2
YWx1ZSA9IHRleHQoKTsKICAgICBpZiAoaW5wdXQtPmlzQWNjZXB0YWJsZVZhbHVlKHZhbHVlKSkK
LSAgICAgICAgaW5wdXQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKGlucHV0LT5zYW5pdGl6ZVZhbHVl
KHZhbHVlKSk7CisgICAgICAgIGlucHV0LT5zZXRWYWx1ZUZyb21SZW5kZXJlcihpbnB1dC0+c2Fu
aXRpemVWYWx1ZShpbnB1dC0+Y29udmVydEZyb21WaXNpYmxlVmFsdWUodmFsdWUpKSk7CiAgICAg
aWYgKG5vZGUoKS0+aXNIVE1MRWxlbWVudCgpKSB7CiAgICAgICAgIC8vIFJlY2FsYyBmb3IgOmlu
dmFsaWQgYW5kIGhhc1VuYWNjZXB0YWJsZVZhbHVlKCkgY2hhbmdlLgogICAgICAgICBzdGF0aWNf
Y2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oaW5wdXQpLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2Uv
V2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50LmgKaW5kZXggNmM2NjQxMGJjZjc2YTllZmZiMThl
ZTUzOWRiMGE2MTc5ODlhMjUzZS4uMTE2MmFjMTkzYzczN2UxNTQ2ZGI4NjM5ZTI2ZDdjYjVlN2Rh
ZjRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaApAQCAtNjQsNiArNjQsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wg
c2VuZENoYW5nZUV2ZW50ID0gZmFsc2UpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZvclVz
ZXIoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29u
c3QgeyByZXR1cm4gdmFsdWUoKTsgfQorICAgIHZpcnR1YWwgU3RyaW5nIGNvbnZlcnRGcm9tVmlz
aWJsZVZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpIGNvbnN0IHsgcmV0dXJuIHZhbHVlOyB9CiAg
ICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRnJvbVJlbmRlcmVyKGNvbnN0IFN0cmluZyYpOwogCiAg
ICAgdmlydHVhbCBib29sIHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgdmFsdWUpIGNvbnN0
Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80755</attachid>
            <date>2011-02-01 06:30:57 -0800</date>
            <delta_ts>2011-02-01 20:55:25 -0800</delta_ts>
            <desc>Patch 4</desc>
            <filename>bug-42484-20110201233055.patch</filename>
            <type>text/plain</type>
            <size>33409</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1N2FhZTJlZTRlODA3NzcyMmNkN2NlNzRmNzg5OGQyYzRiZjYzODVlLi4yY2M0ZWUw
NjM5MzE1NjA4Y2M0MzljZWQ5OWY0ZmVjMWQzMmI2YWE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAK
KzIwMTEtMDItMDEgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbG9jYWxpemVk
IG51bWJlcnMgaW4gPGlucHV0IHR5cGU9bnVtYmVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI0ODQKKworICAgICAgICAtIEFkZCBhIHRlc3QgZm9y
IGVuX1VTIGxvY2FsZSBiZWhhdmlvci4KKyAgICAgICAgLSBVcGRhdGUgYW4gZXhpc3RpbmcgdGVz
dCBiZWNhdXNlIG9mIHJlbW92aW5nIHRoZSBrZXlib2FyZCBpbnB1dAorICAgICAgICAgIHJlc3Ry
aWN0aW9uIGZlYXR1cmUuCisKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LW51bWJlci1rZXlv
cGVyYXRpb24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvaW5wdXQtbnVtYmVy
LWxvY2FsaXphdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMv
aW5wdXQtbnVtYmVyLWxvY2FsaXphdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zv
cm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLmpzOgorICAgICAgICAq
IHBsYXRmb3JtL2d0ay9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NraXBwZWQ6Cisg
ICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisKIDIwMTEtMDItMDEgIFl1cnkgU2VtaWto
YXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gUm9sbG91
dCByNzcyMzAgd2hpY2ggY2F1c2VkIG1hbnkgbGF5b3V0IHRlc3RzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLWV4cGVj
dGVkLnR4dAppbmRleCAyMjFjZTZmZWRmOWRhNmU4YmIwY2U4OTk4ZmJmZTg5YTk1NTZiN2NlLi4x
YzRmYzM0NGU2MmJhZWMwMThmZWQ2YTQ2YjAyMmUzODVkZDA3NTdiIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24tZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWtleW9wZXJhdGlvbi1l
eHBlY3RlZC50eHQKQEAgLTQsNyArNCw3IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFCiAKIAog
SW5zZXJ0aW5nICJhYjEyM2NkIjoKLVBBU1MgaW5wdXQudmFsdWUgaXMgIjEyMyIKK1BBU1MgaW5w
dXQudmFsdWUgaXMgIiIKIFByZXNzIHRoZSB1cCBhcnJvdyBrZXk6CiBQQVNTIGlucHV0LnZhbHVl
IGlzICIxMjQiCiBQcmVzcyB0aGUgZG93biBhcnJvdyBrZXk6CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1sb2NhbGl6YXRpb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXItbG9jYWxpemF0aW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wYmRkZDdlZWYxM2I0N2Y4NWE0NTI4OGI3OGRjYzBkYjBmZTE1NTVj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXIt
bG9jYWxpemF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitOdW1iZXIgdHlwZSBp
bnB1dCBzaG93cyBhbmQgYWNjZXB0cyBsb2NhbGl6ZWQgbnVtYmVycy4gQXNzdW1lIERSVCB3b3Jr
cyBpbiBlbi1VUyBsb2NhbGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitDaGVj
a2luZyBhIHZpc2libGUgdmFsdWUgZm9yICItMTIzNC41NiI6CitQQVNTIGRvY3VtZW50LmdldFNl
bGVjdGlvbigpLnRvU3RyaW5nKCkgaXMgIi0xLDIzNC41NiIKK0NoZWNraW5nIGEgRE9NIHZhbHVl
IGZvciB0aGUgdmlzaWJsZSB2YWx1ZSAiMSwyMzQsNTY3Ljg5IjoKK1BBU1MgaW5wdXQudmFsdWUg
aXMgIjEyMzQ1NjcuODkiCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKyAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVt
YmVyLWxvY2FsaXphdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1i
ZXItbG9jYWxpemF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDU0OTA3MTdjNjVkMDE0YzA2MWE0Yzcw
ZWNiOTc4Mzc5N2E3ZjFlZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9y
bXMvaW5wdXQtbnVtYmVyLWxvY2FsaXphdGlvbi5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9
Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKworPGlucHV0IHR5cGU9bnVtYmVyIGlkPXRhcmdldDE+Cis8aW5wdXQgdHlwZT1udW1i
ZXIgaWQ9dGFyZ2V0Mj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCdOdW1iZXIgdHlwZSBpbnB1
dCBzaG93cyBhbmQgYWNjZXB0cyBsb2NhbGl6ZWQgbnVtYmVycy4gQXNzdW1lIERSVCB3b3JrcyBp
biBlbi1VUyBsb2NhbGUuJyk7CisKK2RlYnVnKCdDaGVja2luZyBhIHZpc2libGUgdmFsdWUgZm9y
ICItMTIzNC41NiI6Jyk7Cit2YXIgaW5wdXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFy
Z2V0MScpOworaW5wdXQuZm9jdXMoKTsKK2lucHV0LnZhbHVlID0gIi0xMjM0LjU2IjsKK2RvY3Vt
ZW50LmV4ZWNDb21tYW5kKCdTZWxlY3RBbGwnKTsKK3Nob3VsZEJlKCdkb2N1bWVudC5nZXRTZWxl
Y3Rpb24oKS50b1N0cmluZygpJywgJyItMSwyMzQuNTYiJyk7CisKK2RlYnVnKCdDaGVja2luZyBh
IERPTSB2YWx1ZSBmb3IgdGhlIHZpc2libGUgdmFsdWUgIjEsMjM0LDU2Ny44OSI6Jyk7CitpbnB1
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQyJyk7CitpbnB1dC5mb2N1cygpOwor
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFRleHQnLCBmYWxzZSwgJzEsMjM0LDU2Ny44OScp
Oworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIxMjM0NTY3Ljg5IicpOworCit2YXIgc3VjY2Vz
c2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFz
dC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0
LW51bWJlci1rZXlvcGVyYXRpb24uanMgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10
ZXN0cy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLmpzCmluZGV4IGY4NDE1MWQ5ODIyM2Y2MWE0
MDI1Zjg3ZWM4MzExYzNhMTNiOTU5ZGEuLmE3YzBlODUwNTI4N2Q2MzdjNTQ1ZDRmMDE3Mzg4ZTc0
YjZiMWYwN2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3Rz
L2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24uanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9zY3JpcHQtdGVzdHMvaW5wdXQtbnVtYmVyLWtleW9wZXJhdGlvbi5qcwpAQCAtNyw5ICs3LDEw
IEBAIHZhciBpbnB1dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdudW1iZXInKTsKIGlucHV0
LmZvY3VzKCk7CiBkZWJ1ZygnSW5zZXJ0aW5nICJhYjEyM2NkIjonKTsKIGRvY3VtZW50LmV4ZWND
b21tYW5kKCdJbnNlcnRUZXh0JywgZmFsc2UsICdhYjEyM2NkJyk7Ci1zaG91bGRCZSgnaW5wdXQu
dmFsdWUnLCAnIjEyMyInKTsKK3Nob3VsZEJlKCdpbnB1dC52YWx1ZScsICciIicpOwogCiBkZWJ1
ZygnUHJlc3MgdGhlIHVwIGFycm93IGtleTonKTsKK2lucHV0LnZhbHVlQXNOdW1iZXIgPSAxMjM7
CiBldmVudFNlbmRlci5rZXlEb3duKCd1cEFycm93Jyk7CiBzaG91bGRCZSgnaW5wdXQudmFsdWUn
LCAnIjEyNCInKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRleCA3ZjE1NGQwODEwYmE1
MjQ4YzRhN2RiYTNjNWIwYWRkNDQ0NGM3NGVlLi5mYjQ0ZTdjNzgzZmMyZWNlODVhNmIxY2U3ZmY4
OWExZTEyYmI3OWI2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtNTEwMSwzICs1MTAx
LDYgQEAgbWVkaWEvYXVkaW8tZGVsZXRlLXdoaWxlLXNsaWRlci10aHVtYi1jbGlja2VkLmh0bWwK
IAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM0MjgKIGh0dHAv
dGVzdHMvbWlzYy9mYXZpY29uLWFzLWltYWdlLmh0bWwKKworIyBOZWVkIHRvIGltcGxlbWVudCBX
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgKK2Zhc3QvZm9ybXMvaW5wdXQt
bnVtYmVyLWxvY2FsaXphdGlvbi5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCBiOGFh
N2Y4OWI4ODdjMTc5YWUzZDk2OWRjOWViMjM3NGZhMzAwZjQ5Li43YWExYzViNjg1MzUxYjYxYzFm
ZTMyMDNlYzE0NDBhNmQ0ZTczMjhiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9x
dC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTUwMTMs
MyArNTAxMyw2IEBAIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9nby1iYWNrLXRvLWVycm9yLXBhZ2Uu
aHRtbAogIyBbUXRdIExheW91dFRlc3RzL21lZGlhL3ZpZGVvLWN1cnJlbnRUaW1lLWRlbGF5Lmh0
bWwgZmFpbHMKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyODU5
CiBtZWRpYS92aWRlby1jdXJyZW50VGltZS1kZWxheS5odG1sCisKKyMgTmVlZCB0byBpbXBsZW1l
bnQgV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oCitmYXN0L2Zvcm1zL2lu
cHV0LW51bWJlci1sb2NhbGl6YXRpb24uaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRl
eCA0MTEwMzA0NTA2ZjEzNDNjMWFkZWU1OGYxMzBhN2M1N2EzZTc2MzU4Li40Mjk0ZGNmY2M5YWU3
ZWIyODZmOTIzNDhiY2IyNjAxZDllYjYwNzQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApA
QCAtMTEyMiwzICsxMTIyLDUgQEAgaHR0cC90ZXN0cy9sb2FkaW5nL2Nyb3NzLW9yaWdpbi1YSFIt
d2lsbExvYWRSZXF1ZXN0Lmh0bWwKICMgUmVxdWVzdCBFTkFCTEUoUkVRVUVTVF9BTklNQVRJT05f
RlJBTUUpIHN1cHBvcnQKIGZhc3QvYW5pbWF0aW9uCiAKKyMgTmVlZCB0byBpbXBsZW1lbnQgV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oCitmYXN0L2Zvcm1zL2lucHV0LW51
bWJlci1sb2NhbGl6YXRpb24uaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDI2Zjk3ZjcxZWZmNWZmZDQ4ZDdh
ZjZkYjE5MjlmMGIzNzQ2NmRmOWUuLjZkOGE5ZjY1MmU2NDU3OGViMGIyMzE4ZDkzNTE2OGYwMWFh
MDQ0MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAxMS0wMi0wMSAgS2VudCBUYW11
cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU3VwcG9ydCBsb2NhbGl6ZWQgbnVtYmVycyBpbiA8aW5wdXQgdHlw
ZT1udW1iZXI+CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD00MjQ4NAorCisgICAgICAgIFRoaXMgY2hhbmdlIGFkZHMgc3VwcG9ydCBvZiBsb2NhbGl6ZWQg
bnVtYmVycyBpbiA8aW5wdXQgdHlwZT1udW1iZXI+LgorICAgICAgICBUaGlzIGFmZmVjdHMgb25s
eSB0aGUgVUksIGFuZCBub3QgSFRNTElucHV0RWxlbWVudDo6dmFsdWUuCisKKyAgICAgICAgLSBS
ZW1vdmUgdGhlIGtleWJvYXJkIGlucHV0IHJlc3RyaWN0aW9uIGZlYXR1cmUgYmVjYXVzZSBpdCBp
cyBoYXJkIHRvCisgICAgICAgICAgcmV0cmlldmUgY2hhcmFjdGVycyB1c2FibGUgZm9yIGxvY2Fs
aXplZCBudW1iZXJzIGluIElDVS4KKworICAgICAgICAtIFNlcGFyYXRlIGNvbnZlcnRGcm9tVmlz
aWJsZVZhbHVlKCkgZnJvbSBzYW5pdGl6ZVZhbHVlKCkuCisgICAgICAgICAgc2FuaXRpemVWYWx1
ZSgpIGlzIHVzZWQgZm9yIG5vdCBvbmx5IGNvbnZlcnRpbmcgYSByZW5kZXJlciB2YWx1ZSB0byBh
CisgICAgICAgICAgRE9NIHZhbHVlLgorCisgICAgICAgIC0gSW1wbGVtZW50IExvY2FsaXplZE51
bWJlciBmdW5jdGlvbnMgZm9yIElDVSBhbmQgTlNOdW1iZXJGb3JtYXR0ZXIuCisgICAgICAgICAg
SXQgaXMgdXNlZCBvbmx5IGluIENocm9taXVtIGZvciBub3cuCisKKyAgICAgICAgVGVzdDogZmFz
dC9mb3Jtcy9pbnB1dC1udW1iZXItbG9jYWxpemF0aW9uLmh0bWwKKworICAgICAgICAqIFdlYkNv
cmUuZ3lwaTogVXNlIExvY2FsaXplZE51bWJlcklDVS5jcHAuCisgICAgICAgICogV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAgIEFkZCBMb2NhbGl6ZWROdW1iZXJN
YWMubW0gYW5kIHJlbW92ZSBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcC4KKyAgICAgICAgKiBkb20v
SW5wdXRFbGVtZW50Lmg6IEludHJvZHVjZSBjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSgpLgorICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50Ojpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSk6CisgICAgICAgICogaHRtbC9I
VE1MSW5wdXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9JbnB1dFR5cGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SW5wdXRUeXBlOjpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSk6CisgICAgICAg
ICogaHRtbC9JbnB1dFR5cGUuaDoKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5jcHA6
IFJlbW92ZSBpc0hUTUxOdW1iZXJDaGFyYWN0ZXIoKSwKKyAgICAgICAgICBpc051bWJlckNoYXJh
Y3RlcigpLCBhbmQgaGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoKSBiZWNhdXNlIHdlCisg
ICAgICAgICAgcmVtb3ZlIHRoZSBrZXlib2FyZCBpbnB1dCByZXN0cmljdGlvbiBmZWF0dXJlIGZv
ciB0eXBlPW51bWJlci4KKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklucHV0VHlwZTo6Y29udmVy
dEZyb21WaXNpYmxlVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6TnVtYmVySW5wdXRUeXBlOjpz
YW5pdGl6ZVZhbHVlKToKKyAgICAgICAgKiBodG1sL051bWJlcklucHV0VHlwZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmg6IFJlbW92ZSBpc0xvY2FsaXplZE51
bWJlckNoYXJhY3RlcigpLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVy
SUNVLmNwcDoKKyAgICAgICAgICBJbXBsZW1lbnQgTG9jYWxpemVkTnVtYmVyIGZ1bmN0aW9ucyB3
aXRoIElDVSBOdW1iZXJGb3JtYXQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3JtYXR0ZXJG
b3JDdXJyZW50TG9jYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVkTnVtYmVy
KToKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZE51bWJlcik6CisgICAgICAgICog
cGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcDogUmVtb3ZlIGlzTG9jYWxpemVk
TnVtYmVyQ2hhcmFjdGVyKCkuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxpemVk
TnVtYmVyTWFjLm1tOgorICAgICAgICAgIEltcGxlbWVudCBMb2NhbGl6ZWROdW1iZXIgZnVuY3Rp
b25zIHdpdGggTlNOdW1iZXJGb3JtYXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpwYXJzZUxvY2Fs
aXplZE51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpmb3JtYXRMb2NhbGl6ZWROdW1iZXIpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdWJ0cmVlSGFzQ2hh
bmdlZCk6CisgICAgICAgICogd21sL1dNTElucHV0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29y
ZTo6V01MSW5wdXRFbGVtZW50Ojpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSk6CisgICAgICAgICAg
SW1wbGVtZW50ZWQgYXMgYSBmdW5jdGlvbiBkb2luZyBub3RoaW5nLgorCiAyMDExLTAyLTAxICBZ
dXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3
ZWQuIFJvbGxvdXQgcjc3MjMwIHdoaWNoIGNhdXNlZCBtYW55IGxheW91dCB0ZXN0cwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5neXBpCmluZGV4IDQ4YzlmZmEyZGFlNGU5NzRkMGQyMzdjMTJlMGZkNzBkNmEyNzQ3MzguLjk3
MmIzZDUxODEyZTI1Y2ZjYjQ4MjFhNjliNWYxNTdiMjA0NzY0NjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
QEAgLTMzMjIsNyArMzMyMiw3IEBACiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5k
aW5nLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9MaW5lRW5kaW5nLmgnLAogICAg
ICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgnLAotICAgICAgICAgICAg
J3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAnLAorICAgICAgICAgICAgJ3Bs
YXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVySUNVLmNwcCcsCiAgICAgICAgICAgICAncGxhdGZv
cm0vdGV4dC9QYXJzZXJVdGlsaXRpZXMuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9Q
bGF0Zm9ybVN0cmluZy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1JlZ3VsYXJFeHBy
ZXNzaW9uLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKaW5kZXggZDFkMmFkMTY0MjcxZTM5NTNjMWQ0ZGY0Mzk1NzBiMzExNmQwNjFh
OS4uMDU2NDFhZDc4MjIyMWVkYTdjNWJiN2M4MzFkMjRiMDdhZDNhYWMxMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNTY0Niw3
ICs1NjQ2LDYgQEAKIAkJRjRFQUY0QUUxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRp
emVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0
RUFGNEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi87IH07CiAJ
CUY0RUFGNEFGMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUQxMEM3NDJCMTAw
OTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi87IH07CiAJCUY1MTQyQzY5MTIzRjEyQjAw
MEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWRO
dW1iZXIuaCAqLzsgfTsKLQkJRjUxNDJDNkIxMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51
bWJlck5vbmUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gRjUxNDJDNkExMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5vbmUuY3BwICov
OyB9OwogCQlGNTVCM0RBRDEyNTFGMTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNENzkx
MjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNwcCAqLzsgfTsKIAkJRjU1QjNE
QUUxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3QTEyNTFGMTJEMDAzRUYyNjkg
LyogQmFzZVRleHRJbnB1dFR5cGUuaCAqLzsgfTsKIAkJRjU1QjNEQUYxMjUxRjEyRDAwM0VGMjY5
IC8qIEJ1dHRvbklucHV0VHlwZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBGNTVCM0Q3QjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0dG9uSW5wdXRUeXBl
LmNwcCAqLzsgfTsKQEAgLTU3MTAsNiArNTcwOSw3IEBACiAJCUY1QzA0MUU1MEZGQ0E5NkQwMDgz
OUQ0QSAvKiBET01IVE1MRGF0YUxpc3RFbGVtZW50SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUUwMEZGQ0E5NkQwMDgzOUQ0QSAv
KiBET01IVE1MRGF0YUxpc3RFbGVtZW50SW50ZXJuYWwuaCAqLzsgfTsKIAkJRjVDMDQxRTYwRkZD
QTk2RDAwODM5RDRBIC8qIEpTSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFFMTBGRkNBOTZEMDA4MzlENEEg
LyogSlNIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCAqLzsgfTsKIAkJRjVDMDQxRTcwRkZDQTk2RDAw
ODM5RDRBIC8qIEpTSFRNTERhdGFMaXN0RWxlbWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRTIwRkZDQTk2RDAwODM5RDRBIC8qIEpTSFRN
TERhdGFMaXN0RWxlbWVudC5oICovOyB9OworCQlGNUNDNDJEQzEyRjgwMUNBMDBENUY3RTMgLyog
TG9jYWxpemVkTnVtYmVyTWFjLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjVDQzQyREIxMkY4MDFDQTAwRDVGN0UzIC8qIExvY2FsaXplZE51bWJlck1h
Yy5tbSAqLzsgfTsKIAkJRjVEM0E1N0MxMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1RDNB
NTdBMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5jcHAgKi87IH07CiAJCUY1RDNB
NTdEMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVEM0E1N0IxMDZCODNCMzAwNTQ1Mjk3IC8q
IERhdGVDb21wb25lbnRzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKIAkJRjdBMDM0QzQxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjdBMDM0QzMx
MjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0xMjAyNCw3ICsxMjAyNCw2IEBACiAJCUY0
RUFGNEFDMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5jcHA7IHBhdGgg
PSBvcGVudHlwZS9PcGVuVHlwZVNhbml0aXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY0RUFGNEFEMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBPcGVuVHlwZVNhbml0aXplci5oOyBwYXRo
ID0gb3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJRjUxNDJDNjgxMjNGMTJCMDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMb2NhbGl6ZWROdW1iZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJRjUxNDJDNkExMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXpl
ZE51bWJlck5vbmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTG9j
YWxpemVkTnVtYmVyTm9uZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1MjNE
MjNCMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTERvY3VtZW50LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJ
CUY1MjNEMjNDMDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRG9jdW1lbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSFRNTERvY3VtZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQlG
NTIzRDIzRTAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTEVsZW1lbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTEVsZW1lbnQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
QEAgLTEyMTEzLDYgKzEyMTEyLDcgQEAKIAkJRjVDMjg2OTMwMjg0NkRDRDAxODYzNUNBIC8qIEFw
cGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5hbWUgPSBBcHBsaWNhdGlv
blNlcnZpY2VzLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtzL0Fw
cGxpY2F0aW9uU2VydmljZXMuZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9
OwogCQlGNUMyODY5NDAyODQ2RENEMDE4NjM1Q0EgLyogQ2FyYm9uLmZyYW1ld29yayAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3
b3JrOyBuYW1lID0gQ2FyYm9uLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFt
ZXdvcmtzL0NhcmJvbi5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJ
CUY1QzI4Njk1MDI4NDZEQ0QwMTg2MzVDQSAvKiBDb2NvYS5mcmFtZXdvcmsgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsg
bmFtZSA9IENvY29hLmZyYW1ld29yazsgcGF0aCA9IC9TeXN0ZW0vTGlicmFyeS9GcmFtZXdvcmtz
L0NvY29hLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKKwkJRjVDQzQy
REIxMkY4MDFDQTAwRDVGN0UzIC8qIExvY2FsaXplZE51bWJlck1hYy5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IExvY2FsaXplZE51bWJlck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVEM0E1N0ExMDZCODNCMzAwNTQ1Mjk3IC8qIERhdGVD
b21wb25lbnRzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERhdGVD
b21wb25lbnRzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjVEM0E1N0IxMDZC
ODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IERhdGVDb21wb25lbnRzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUY3QTAzNEMzMTI2QkY2QkUwMDdEQzE5RSAvKiBGb250T3JpZW50YXRpb24uaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udE9yaWVudGF0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xNzU5Niw3ICsxNzU5Niw2IEBACiAJCQkJODlCNUVBOUYxMUU4MDAz
RDAwRjIzNjdFIC8qIExpbmVFbmRpbmcuY3BwICovLAogCQkJCTg5QjVFQUEwMTFFODAwM0QwMEYy
MzY3RSAvKiBMaW5lRW5kaW5nLmggKi8sCiAJCQkJRjUxNDJDNjgxMjNGMTJCMDAwRjVCRDRDIC8q
IExvY2FsaXplZE51bWJlci5oICovLAotCQkJCUY1MTQyQzZBMTIzRjEyQzUwMEY1QkQ0QyAvKiBM
b2NhbGl6ZWROdW1iZXJOb25lLmNwcCAqLywKIAkJCQlCQzc2QUMxMTBERDdBRDVDMDA0MTVGMzQg
LyogUGFyc2VyVXRpbGl0aWVzLmggKi8sCiAJCQkJQjJDM0Q5RkIwRDAwNkMxRDAwRUY2RjI2IC8q
IFBsYXRmb3JtU3RyaW5nLmggKi8sCiAJCQkJQjJDM0Q5RkMwRDAwNkMxRDAwRUY2RjI2IC8qIFJl
Z3VsYXJFeHByZXNzaW9uLmNwcCAqLywKQEAgLTE3NjQxLDYgKzE3NjQwLDcgQEAKIAkJCQlCMkFG
RkM4NTBEMDBBNURGMDAzMDA3NEQgLyogY2hhcmFjdGVyLXNldHMudHh0ICovLAogCQkJCUIyQzNE
OUZBMEQwMDZDMUQwMEVGNkYyNiAvKiBDaGFyc2V0RGF0YS5oICovLAogCQkJCTM3NUNEMjM5MTE5
RDQ0RUEwMEEyQTg1OSAvKiBIeXBoZW5hdGlvbk1hYy5tbSAqLywKKwkJCQlGNUNDNDJEQjEyRjgw
MUNBMDBENUY3RTMgLyogTG9jYWxpemVkTnVtYmVyTWFjLm1tICovLAogCQkJCUIyQUZGQzg2MEQw
MEE1REYwMDMwMDc0RCAvKiBtYWMtZW5jb2RpbmdzLnR4dCAqLywKIAkJCQlCMkFGRkM4NzBEMDBB
NURGMDAzMDA3NEQgLyogbWFrZS1jaGFyc2V0LXRhYmxlLnBsICovLAogCQkJCUIyQUZGQzg4MEQw
MEE1REYwMDMwMDc0RCAvKiBTaGFwZUFyYWJpYy5jICovLApAQCAtMjQzNTgsNyArMjQzNTgsNyBA
QAogCQkJCTdFRTY4NDY4MTJEMjZFMzgwMEU3OTQxNSAvKiBMb2FkZXJSdW5Mb29wQ0YuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMDZFODFFRUMwQUI1REE5NzAwQzg3ODM3IC8qIExvY2FsQ3VycmVu
dEdyYXBoaWNzQ29udGV4dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTg5ODc4NTY3MTIyQ0EwNjQw
MDNBQUJEQSAvKiBMb2NhbEZpbGVTeXN0ZW0uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJRjUxNDJD
NkIxMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlck5vbmUuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJRjVDQzQyREMxMkY4MDFDQTAwRDVGN0UzIC8qIExvY2FsaXplZE51bWJlck1hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCUMwNDZFMUFDMTIwOEE5RkUwMEJBMkNGNyAvKiBMb2NhbGl6
ZWRTdHJpbmdzLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUYyMzE3MERDMTYwREEwMDRGMDAz
MiAvKiBMb2NhbFN0b3JhZ2VUYXNrLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMUYyMzE5MERD
MTYwREEwMDRGMDAzMiAvKiBMb2NhbFN0b3JhZ2VUaHJlYWQuY3BwIGluIFNvdXJjZXMgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vSW5wdXRFbGVtZW50LmgKaW5kZXggMDJhYzVjZjIzNzMyYWJlMzUzMjhhNjI1MzYz
ZDZmNGMwZjgzMTVkOC4uYWUwOWFkMGViNjIzOGFjYTcxMzllZDFmM2ZiOWE2MDY4ODkyODdlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuaApAQCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRm9yVXNlcihjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAg
Ly8gVGhlIHZhbHVlIHdoaWNoIGlzIGRyYXduIGJ5IGEgcmVuZGVyZXIuCiAgICAgdmlydHVhbCBT
dHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnZl
cnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKIAogICAgIC8vIFJl
dHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIHN0cmluZyBjYW4gYmUgc2V0IGFzIHRoZSB2YWx1
ZSBvZiBJbnB1dEVsZW1lbnQuCiAgICAgdmlydHVhbCBib29sIGlzQWNjZXB0YWJsZVZhbHVlKGNv
bnN0IFN0cmluZyYpIGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCmluZGV4IDdiMTI3NjcwZmZkM2RmZDY0ZjVjMDdjYzM3NThjZjM3OTAyMjkxNjcuLmMy
OWZkZmE3ODcyOTg4NDhiMDU0NWNiODQzZTRhZTJkNzFjZjJlODQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTE0NSw2ICsxMTQ1LDExIEBAIFN0cmluZyBI
VE1MSW5wdXRFbGVtZW50Ojp2aXNpYmxlVmFsdWUoKSBjb25zdAogICAgIHJldHVybiBtX2lucHV0
VHlwZS0+dmlzaWJsZVZhbHVlKCk7CiB9CiAKK1N0cmluZyBIVE1MSW5wdXRFbGVtZW50Ojpjb252
ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBTdHJpbmcmIHZpc2libGVWYWx1ZSkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPmNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKHZpc2libGVW
YWx1ZSk7Cit9CisKIGJvb2wgSFRNTElucHV0RWxlbWVudDo6aXNBY2NlcHRhYmxlVmFsdWUoY29u
c3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKSBjb25zdAogewogICAgIHJldHVybiBtX2lucHV0VHlw
ZS0+aXNBY2NlcHRhYmxlVmFsdWUocHJvcG9zZWRWYWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TElucHV0RWxlbWVudC5oCmluZGV4IDc1Nzk5MmFkYTY3NTQyNjBmNjAxNDMzMTA3MzFiZGQ4ZmMw
OGMwYTUuLjQwZWIxOTVhOGIwZWM0MjVlZjhjOTU0MDI5ODkzMGZhZDExZmJjNjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5oCkBAIC0yNjAsNiArMjYwLDcgQEAgcHJpdmF0
ZToKICAgICB2aXJ0dWFsIHZvaWQgY2FjaGVTZWxlY3Rpb24oaW50IHN0YXJ0LCBpbnQgZW5kKTsK
IAogICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OworICAgIHZpcnR1YWwg
U3RyaW5nIGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBpc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAg
ICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBoYXNVbmFjY2VwdGFibGVWYWx1ZSgpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bnB1dFR5cGUuY3BwCmluZGV4IDM4MDhmMmU4ZDZlMzczMjVhMzlmNDhkNzQzZDg3N2VmMmU5Yjgw
MDUuLmYxNWJkODcwOGQyNDI0ZWJmYjY2ZmNjMTNhNzAwYWQ4Y2NiNWQ4NjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0lucHV0VHlwZS5jcHAKQEAgLTUxMSw2ICs1MTEsMTEgQEAgU3RyaW5nIElucHV0VHlwZTo6
dmlzaWJsZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gZWxlbWVudCgpLT52YWx1ZSgpOwogfQog
CitTdHJpbmcgSW5wdXRUeXBlOjpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBTdHJpbmcm
IHZpc2libGVWYWx1ZSkgY29uc3QKK3sKKyAgICByZXR1cm4gdmlzaWJsZVZhbHVlOworfQorCiBi
b29sIElucHV0VHlwZTo6aXNBY2NlcHRhYmxlVmFsdWUoY29uc3QgU3RyaW5nJikKIHsKICAgICBy
ZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCmluZGV4IDNkZWY2OTMyYjk4NjY1ZTk3
OWRjYmY3YTg1YWUyMzRiODgxMjc4ZGYuLjljZDRmZTA2YjEwN2ZkZGRiMmVmZmI0ZGI4OWI2MTdh
OTIxZDFhZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaApAQCAtMTQ5LDYgKzE0OSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIFN0cmluZyB2YWx1ZU1pc3NpbmdUZXh0KCkgY29uc3Q7CiAgICAg
dmlydHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3Q7CiAgICAgdmlydHVhbCBTdHJp
bmcgdmlzaWJsZVZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgY29udmVydEZyb21W
aXNpYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzQWNj
ZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXpl
VmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIGhhc1VuYWNjZXB0YWJsZVZh
bHVlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKaW5kZXggZjA5Njc3
NjQzZjU5YmY5ZGE5OGM5YmM1MzQ4ODk3N2EyODUzOGZjYS4uZDY2NDNlMTJmODc3NDJhYTA0ZGM5
OWI4YzAwMzJmYjZiZTBlZmUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1i
ZXJJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBl
LmNwcApAQCAtNTYsMTggKzU2LDYgQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBudW1iZXJEZWZhdWx0
TWF4aW11bSA9IEZMVF9NQVg7CiBzdGF0aWMgY29uc3QgZG91YmxlIG51bWJlckRlZmF1bHRTdGVw
ID0gMS4wOwogc3RhdGljIGNvbnN0IGRvdWJsZSBudW1iZXJTdGVwU2NhbGVGYWN0b3IgPSAxLjA7
CiAKLS8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgc3BlY2lmaWVkIGNoYXJhY3RlciBjYW4gYmUgYSBw
YXJ0IG9mICd2YWxpZCBmbG9hdGluZwotLy8gcG9pbnQgbnVtYmVyJyBvZiBIVE1MNS4KLXN0YXRp
YyBib29sIGlzSFRNTE51bWJlckNoYXJhY3RlcihVQ2hhciBjaCkKLXsKLSAgICByZXR1cm4gY2gg
PT0gJysnIHx8IGNoID09ICctJyB8fCBjaCA9PSAnLicgfHwgY2ggPT0gJ2UnIHx8IGNoID09ICdF
JyB8fCBpc0FTQ0lJRGlnaXQoY2gpOwotfQotCi1zdGF0aWMgYm9vbCBpc051bWJlckNoYXJhY3Rl
cihVQ2hhciBjaCkKLXsKLSAgICByZXR1cm4gaXNMb2NhbGl6ZWROdW1iZXJDaGFyYWN0ZXIoY2gp
IHx8IGlzSFRNTE51bWJlckNoYXJhY3RlcihjaCk7Ci19Ci0KIFBhc3NPd25QdHI8SW5wdXRUeXBl
PiBOdW1iZXJJbnB1dFR5cGU6OmNyZWF0ZShIVE1MSW5wdXRFbGVtZW50KiBlbGVtZW50KQogewog
ICAgIHJldHVybiBhZG9wdFB0cihuZXcgTnVtYmVySW5wdXRUeXBlKGVsZW1lbnQpKTsKQEAgLTE4
NiwzMCArMTc0LDYgQEAgdm9pZCBOdW1iZXJJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25FdmVudChL
ZXlib2FyZEV2ZW50KiBldmVudCkKICAgICAgICAgVGV4dEZpZWxkSW5wdXRUeXBlOjpoYW5kbGVL
ZXlkb3duRXZlbnQoZXZlbnQpOwogfQogCi12b2lkIE51bWJlcklucHV0VHlwZTo6aGFuZGxlQmVm
b3JlVGV4dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4dEluc2VydGVkRXZlbnQqIGV2ZW50KQotewot
ICAgIHVuc2lnbmVkIGxlbmd0aCA9IGV2ZW50LT50ZXh0KCkubGVuZ3RoKCk7Ci0gICAgYm9vbCBo
YXNJbnZhbGlkQ2hhciA9IGZhbHNlOwotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5n
dGg7ICsraSkgewotICAgICAgICBpZiAoIWlzTnVtYmVyQ2hhcmFjdGVyKGV2ZW50LT50ZXh0KClb
aV0pKSB7Ci0gICAgICAgICAgICBoYXNJbnZhbGlkQ2hhciA9IHRydWU7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoaGFzSW52YWxpZENoYXIpIHsKLSAgICAg
ICAgVmVjdG9yPFVDaGFyPiBzdHJpcHBlZDsKLSAgICAgICAgc3RyaXBwZWQucmVzZXJ2ZUNhcGFj
aXR5KGxlbmd0aCk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsr
aSkgewotICAgICAgICAgICAgVUNoYXIgY2ggPSBldmVudC0+dGV4dCgpW2ldOwotICAgICAgICAg
ICAgaWYgKCFpc051bWJlckNoYXJhY3RlcihjaCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgICAgICBzdHJpcHBlZC5hcHBlbmQoY2gpOwotICAgICAgICB9Ci0gICAgICAgIGV2
ZW50LT5zZXRUZXh0KFN0cmluZzo6YWRvcHQoc3RyaXBwZWQpKTsKLSAgICB9Ci0gICAgVGV4dEZp
ZWxkSW5wdXRUeXBlOjpoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudChldmVudCk7Ci19Ci0K
IHZvaWQgTnVtYmVySW5wdXRUeXBlOjpoYW5kbGVXaGVlbEV2ZW50KFdoZWVsRXZlbnQqIGV2ZW50
KQogewogICAgIGhhbmRsZVdoZWVsRXZlbnRGb3JTcGluQnV0dG9uKGV2ZW50KTsKQEAgLTI2Nyw2
ICsyMzEsMTIgQEAgU3RyaW5nIE51bWJlcklucHV0VHlwZTo6dmlzaWJsZVZhbHVlKCkgY29uc3QK
ICAgICByZXR1cm4gbG9jYWxpemVkLmlzRW1wdHkoKSA/IGN1cnJlbnRWYWx1ZSA6IGxvY2FsaXpl
ZDsKIH0KIAorU3RyaW5nIE51bWJlcklucHV0VHlwZTo6Y29udmVydEZyb21WaXNpYmxlVmFsdWUo
Y29uc3QgU3RyaW5nJiB2aXNpYmxlVmFsdWUpIGNvbnN0Cit7CisgICAgZG91YmxlIHBhcnNlZE51
bWJlciA9IHBhcnNlTG9jYWxpemVkTnVtYmVyKHZpc2libGVWYWx1ZSk7CisgICAgcmV0dXJuIGlz
ZmluaXRlKHBhcnNlZE51bWJlcikgPyBzZXJpYWxpemVGb3JOdW1iZXJUeXBlKHBhcnNlZE51bWJl
cikgOiB2aXNpYmxlVmFsdWU7Cit9CisKIGJvb2wgTnVtYmVySW5wdXRUeXBlOjppc0FjY2VwdGFi
bGVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpCiB7CiAgICAgcmV0dXJuIHByb3Bv
c2VkVmFsdWUuaXNFbXB0eSgpIHx8IGlzZmluaXRlKHBhcnNlTG9jYWxpemVkTnVtYmVyKHByb3Bv
c2VkVmFsdWUpKSB8fCBwYXJzZVRvRG91YmxlRm9yTnVtYmVyVHlwZShwcm9wb3NlZFZhbHVlLCAw
KTsKQEAgLTI3NCwxMSArMjQ0LDYgQEAgYm9vbCBOdW1iZXJJbnB1dFR5cGU6OmlzQWNjZXB0YWJs
ZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkKIAogU3RyaW5nIE51bWJlcklucHV0
VHlwZTo6c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmIHByb3Bvc2VkVmFsdWUpCiB7Ci0gICAg
Ly8gVHJ5IHRvIHBhcnNlIHRoZSB2YWx1ZSBhcyBhIGxvY2FsaXplZCBudW1iZXIsIHRoZW4gdHJ5
IHRvIHBhcnNlIGl0IGFzCi0gICAgLy8gdGhlIHN0YW5kYXJkIGZvcm1hdC4KLSAgICBkb3VibGUg
cGFyc2VkVmFsdWUgPSBwYXJzZUxvY2FsaXplZE51bWJlcihwcm9wb3NlZFZhbHVlKTsKLSAgICBp
ZiAoaXNmaW5pdGUocGFyc2VkVmFsdWUpKQotICAgICAgICByZXR1cm4gc2VyaWFsaXplRm9yTnVt
YmVyVHlwZShwYXJzZWRWYWx1ZSk7CiAgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJU
eXBlKHByb3Bvc2VkVmFsdWUsIDApID8gcHJvcG9zZWRWYWx1ZSA6IFN0cmluZygpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaAppbmRleCA5ZDk3MTM0NGY4M2FkNTAwOGFj
NjllYzkyODkzZDlmZTY2NWIzNTk0Li5lYTVkYzEwNGYwMTA1NGFlOGU2Mjg1NzgyMzQ0ZDU3OTFl
MDAyNThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKQEAgLTU3LDcgKzU3
LDYgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSBkZWZhdWx0U3RlcCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgZG91YmxlIHN0ZXBTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIHZpcnR1YWwg
dm9pZCBoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRFdmVudCopOwotICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudChCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCop
OwogICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVXaGVlbEV2ZW50KFdoZWVsRXZlbnQqKTsKICAgICB2
aXJ0dWFsIGRvdWJsZSBwYXJzZVRvRG91YmxlKGNvbnN0IFN0cmluZyYsIGRvdWJsZSkgY29uc3Q7
CiAgICAgdmlydHVhbCBkb3VibGUgcGFyc2VUb0RvdWJsZVdpdGhEZWNpbWFsUGxhY2VzKGNvbnN0
IFN0cmluZyYsIGRvdWJsZSwgdW5zaWduZWQqKSBjb25zdDsKQEAgLTY1LDYgKzY0LDcgQEAgcHJp
dmF0ZToKICAgICB2aXJ0dWFsIGRvdWJsZSBhY2NlcHRhYmxlRXJyb3IoZG91YmxlKSBjb25zdDsK
ICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlQmx1ckV2ZW50KCk7CiAgICAgdmlydHVhbCBTdHJpbmcg
dmlzaWJsZVZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcgY29udmVydEZyb21WaXNp
YmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVhbCBib29sIGlzQWNjZXB0
YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgU3RyaW5nIHNhbml0aXplVmFs
dWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIGhhc1VuYWNjZXB0YWJsZVZhbHVl
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51
bWJlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXIuaApp
bmRleCA0NTg3M2I4YjdkOWY0Mzk3NDhjZDViMzM0Yjc3YmZiYmE1ZjNmMDBiLi5kNzA1NDFmMDAx
ZWNiZDYxNGNjNGE3YzFlYzdiZjU0ZGY5NDQ5NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmgKQEAgLTQ5LDExICs0OSw2IEBAIGRvdWJsZSBw
YXJzZUxvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcmKTsKIC8vIHJldHVybiBhbiBlbXB0eSBz
dHJpbmcuCiBTdHJpbmcgZm9ybWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZSk7CiAKLS8vIFJldHVy
bnMgdHJ1ZSBpZiB0aGUgaW5wdXQgY2hhcmFjdGVyIGNhbiBiZSB1c2VkIHRvIHJlcHJlc2VudCBh
Ci0vLyBudW1iZXIgaW4gdGhlIGJyb3dzZXIgbG9jYWxlLiBGb3IgZXhhbXBsZSwgdGhpcyBzaG91
bGQgcmV0dXJuIHRydWUgZm9yIDAtOSAuCi0vLyAsICsgLSBmb3IgZW4tVVMgbG9jYWxlLgotYm9v
bCBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcihVQ2hhcjMyKTsKLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gTG9jYWxpemVkTnVtYmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVySUNVLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVySUNVLmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
YTgyZGQ2MWFhYmU1NGU1MmI1MmY2NTY1ZDYwODQyNWFiZDdlZmRmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJJQ1UuY3BwCkBA
IC0wLDAgKzEsNzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAq
IG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFt
ZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1h
eSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAq
IHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERF
UlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBD
T1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisg
KiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkTnVt
YmVyLmgiCisKKyNpbmNsdWRlIDxsaW1pdHM+CisjaW5jbHVkZSA8dW5pY29kZS9udW1mbXQuaD4K
KyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0YXRpYyBpbmxpbmUgUGFzc093blB0cjxOdW1iZXJGb3Jt
YXQ+IGNyZWF0ZUZvcm1hdHRlckZvckN1cnJlbnRMb2NhbGUoKQoreworICAgIFVFcnJvckNvZGUg
c3RhdHVzID0gVV9aRVJPX0VSUk9SOworICAgIHJldHVybiBhZG9wdFB0cihOdW1iZXJGb3JtYXQ6
OmNyZWF0ZUluc3RhbmNlKHN0YXR1cykpOworfQorCitkb3VibGUgcGFyc2VMb2NhbGl6ZWROdW1i
ZXIoY29uc3QgU3RyaW5nJiBudW1iZXJTdHJpbmcpCit7CisgICAgaWYgKG51bWJlclN0cmluZy5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9O
YU4oKTsKKyAgICBPd25QdHI8TnVtYmVyRm9ybWF0PiBmb3JtYXR0ZXIgPSBjcmVhdGVGb3JtYXR0
ZXJGb3JDdXJyZW50TG9jYWxlKCk7CisgICAgaWYgKCFmb3JtYXR0ZXIpCisgICAgICAgIHJldHVy
biBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICBVbmljb2RlU3RyaW5n
IG51bWJlclVuaWNvZGVTdHJpbmcobnVtYmVyU3RyaW5nLmNoYXJhY3RlcnMoKSwgbnVtYmVyU3Ry
aW5nLmxlbmd0aCgpKTsKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAg
ICBGb3JtYXR0YWJsZSByZXN1bHQ7CisgICAgZm9ybWF0dGVyLT5wYXJzZShudW1iZXJVbmljb2Rl
U3RyaW5nLCByZXN1bHQsIHN0YXR1cyk7CisgICAgaWYgKHN0YXR1cyAhPSBVX1pFUk9fRVJST1Ip
CisgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAg
ICBkb3VibGUgbnVtZXJpY1Jlc3VsdCA9IHJlc3VsdC5nZXREb3VibGUoc3RhdHVzKTsKKyAgICBy
ZXR1cm4gc3RhdHVzID09IFVfWkVST19FUlJPUiA/IG51bWVyaWNSZXN1bHQgOiBudW1lcmljX2xp
bWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKK30KKworU3RyaW5nIGZvcm1hdExvY2FsaXplZE51
bWJlcihkb3VibGUgbnVtYmVyKQoreworICAgIE93blB0cjxOdW1iZXJGb3JtYXQ+IGZvcm1hdHRl
ciA9IGNyZWF0ZUZvcm1hdHRlckZvckN1cnJlbnRMb2NhbGUoKTsKKyAgICBpZiAoIWZvcm1hdHRl
cikKKyAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIFVuaWNvZGVTdHJpbmcgcmVzdWx0Owor
ICAgIGZvcm1hdHRlci0+Zm9ybWF0KG51bWJlciwgcmVzdWx0KTsKKyAgICByZXR1cm4gU3RyaW5n
KHJlc3VsdC5nZXRCdWZmZXIoKSwgcmVzdWx0Lmxlbmd0aCgpKTsKK30KKworfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2Nh
bGl6ZWROdW1iZXJOb25lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxp
emVkTnVtYmVyTm9uZS5jcHAKaW5kZXggNmYwMTdlOWY4OTQ5OGUyNWY2MjZhNDg5M2M1MWY4ODgy
OTJkMzhjNC4uNzI5ZjJmMTk0NDJjYTBjYmM5ZWZiNmRiMzAxMWRkOTY0ZGNlODU0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUu
Y3BwCkBAIC00Nyw5ICs0Nyw0IEBAIFN0cmluZyBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoZG91Ymxl
KQogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KIAotYm9vbCBpc0xvY2FsaXplZE51bWJlckNoYXJh
Y3RlcihVQ2hhcjMyKQotewotICAgIHJldHVybiBmYWxzZTsKLX0KLQogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9j
YWxpemVkTnVtYmVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9j
YWxpemVkTnVtYmVyTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmYmZjNTE0YzM4YzMxNWFmZmY2ZTA5Mzgx
MjYyMjM4YmRkMmIwMjEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L21hYy9Mb2NhbGl6ZWROdW1iZXJNYWMubW0KQEAgLTAsMCArMSw2NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0
cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0
aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisg
KiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1Ig
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRl
ICJjb25maWcuaCIKKyNpbmNsdWRlICJMb2NhbGl6ZWROdW1iZXIuaCIKKworI2luY2x1ZGUgPGxp
bWl0cz4KKyNpbXBvcnQgPEZvdW5kYXRpb24vTlNOdW1iZXJGb3JtYXR0ZXIuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+Cit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2RvdWJsZSBwYXJzZUxvY2FsaXplZE51bWJlcihjb25zdCBTdHJpbmcmIG51
bWJlclN0cmluZykKK3sKKyAgICBpZiAobnVtYmVyU3RyaW5nLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAgIE5TTnVtYmVy
Rm9ybWF0dGVyKiBmb3JtYXR0ZXIgPSBbW1tOU051bWJlckZvcm1hdHRlciBhbGxvY10gaW5pdF0g
YXV0b3JlbGVhc2VdOworICAgIFtmb3JtYXR0ZXIgc2V0TG9jYWxpemVzRm9ybWF0OllFU107Cisg
ICAgW2Zvcm1hdHRlciBzZXROdW1iZXJTdHlsZTpOU051bWJlckZvcm1hdHRlckRlY2ltYWxTdHls
ZV07CisgICAgTlNOdW1iZXIqIG51bSA9IFtmb3JtYXR0ZXIgbnVtYmVyRnJvbVN0cmluZzpudW1i
ZXJTdHJpbmddOworICAgIGlmIChudW0gPT0gbmlsKQorICAgICAgICByZXR1cm4gbnVtZXJpY19s
aW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgcmV0dXJuIFtudW0gZG91YmxlVmFsdWVd
OworfQorCitTdHJpbmcgZm9ybWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZSBudW1iZXIpCit7Cisg
ICAgTlNOdW1iZXIqIG51bSA9IFtOU051bWJlciBudW1iZXJXaXRoRG91YmxlOm51bWJlcl07Cisg
ICAgTlNOdW1iZXJGb3JtYXR0ZXIqIGZvcm1hdHRlciA9IFtbW05TTnVtYmVyRm9ybWF0dGVyIGFs
bG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgW2Zvcm1hdHRlciBzZXRMb2NhbGl6ZXNGb3Jt
YXQ6WUVTXTsKKyAgICBbZm9ybWF0dGVyIHNldE51bWJlclN0eWxlOk5TTnVtYmVyRm9ybWF0dGVy
RGVjaW1hbFN0eWxlXTsKKyAgICByZXR1cm4gU3RyaW5nKFtmb3JtYXR0ZXIgc3RyaW5nRnJvbU51
bWJlcjpudW1dKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3Bw
CmluZGV4IDczNzI3MjI1Njk3NWFmODIxOTkxMGRkYTA4OGUzNWJlOGVkYmI1OWQuLmM2NGU0MGZi
MGFhZjdmNWNiMDg3MDU3ZmYyZDFhYTIzN2MzNGFkZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwCkBAIC0x
NzQsNyArMTc0LDcgQEAgdm9pZCBSZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmU6OnN1YnRyZWVI
YXNDaGFuZ2VkKCkKICAgICAvLyBzYW5pdGl6ZVZhbHVlKCkgaXMgbmVlZGVkIGJlY2F1c2UgSU1F
IGlucHV0IGRvZXNuJ3QgZGlzcGF0Y2ggQmVmb3JlVGV4dEluc2VydGVkRXZlbnQuCiAgICAgU3Ry
aW5nIHZhbHVlID0gdGV4dCgpOwogICAgIGlmIChpbnB1dC0+aXNBY2NlcHRhYmxlVmFsdWUodmFs
dWUpKQotICAgICAgICBpbnB1dC0+c2V0VmFsdWVGcm9tUmVuZGVyZXIoaW5wdXQtPnNhbml0aXpl
VmFsdWUodmFsdWUpKTsKKyAgICAgICAgaW5wdXQtPnNldFZhbHVlRnJvbVJlbmRlcmVyKGlucHV0
LT5zYW5pdGl6ZVZhbHVlKGlucHV0LT5jb252ZXJ0RnJvbVZpc2libGVWYWx1ZSh2YWx1ZSkpKTsK
ICAgICBpZiAobm9kZSgpLT5pc0hUTUxFbGVtZW50KCkpIHsKICAgICAgICAgLy8gUmVjYWxjIGZv
ciA6aW52YWxpZCBhbmQgaGFzVW5hY2NlcHRhYmxlVmFsdWUoKSBjaGFuZ2UuCiAgICAgICAgIHN0
YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihpbnB1dCktPnNldE5lZWRzU3R5bGVSZWNhbGMo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaAppbmRleCA2YzY2NDEwYmNmNzZhOWVm
ZmIxOGVlNTM5ZGIwYTYxNzk4OWEyNTNlLi4xMTYyYWMxOTNjNzM3ZTE1NDZkYjg2MzllMjZkN2Ni
NWU3ZGFmNGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5oCkBAIC02NCw2ICs2
NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWUoY29uc3QgU3RyaW5nJiwg
Ym9vbCBzZW5kQ2hhbmdlRXZlbnQgPSBmYWxzZSk7CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVl
Rm9yVXNlcihjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUo
KSBjb25zdCB7IHJldHVybiB2YWx1ZSgpOyB9CisgICAgdmlydHVhbCBTdHJpbmcgY29udmVydEZy
b21WaXNpYmxlVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkgY29uc3QgeyByZXR1cm4gdmFsdWU7
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVGcm9tUmVuZGVyZXIoY29uc3QgU3RyaW5nJik7
CiAKICAgICB2aXJ0dWFsIGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJiB2YWx1ZSkg
Y29uc3Q7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80884</attachid>
            <date>2011-02-01 20:55:30 -0800</date>
            <delta_ts>2011-02-28 19:51:39 -0800</delta_ts>
            <desc>Patch 5</desc>
            <filename>bug-42484-20110202135528.patch</filename>
            <type>text/plain</type>
            <size>30755</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMTlhYjQwYmJjMDdmOGZmMjljOTY4MzQ1MjQ4Mjc5NjBlZjJkNGU5Li5kMDFjZDYx
MGRjM2Y1Njk0NmM0NzJkOWI1YTVkNGYzMDkxMTA5NGVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDItMDIgIEtlbnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN1cHBvcnQgbG9jYWxpemVk
IG51bWJlcnMgaW4gPGlucHV0IHR5cGU9bnVtYmVyPgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI0ODQKKworICAgICAgICBVcGRhdGUgYW4gZXhpc3Rp
bmcgdGVzdCBiZWNhdXNlIG9mIHJlbW92aW5nIHRoZSBrZXlib2FyZCBpbnB1dAorICAgICAgICBy
ZXN0cmljdGlvbiBmZWF0dXJlLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXIt
a2V5b3BlcmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10
ZXN0cy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLmpzOgorCiAyMDExLTAyLTAxICBLZW50IFRh
bXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBUb255IENo
YW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXIta2V5
b3BlcmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVt
YmVyLWtleW9wZXJhdGlvbi1leHBlY3RlZC50eHQKaW5kZXggMjIxY2U2ZmVkZjlkYTZlOGJiMGNl
ODk5OGZiZmU4OWE5NTU2YjdjZS4uMWM0ZmMzNDRlNjJiYWVjMDE4ZmVkNmE0NmIwMjJlMzg1ZGQw
NzU3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXIta2V5
b3BlcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0
LW51bWJlci1rZXlvcGVyYXRpb24tZXhwZWN0ZWQudHh0CkBAIC00LDcgKzQsNyBAQCBPbiBzdWNj
ZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBi
eSAiVEVTVCBDT01QTEVURQogCiAKIEluc2VydGluZyAiYWIxMjNjZCI6Ci1QQVNTIGlucHV0LnZh
bHVlIGlzICIxMjMiCitQQVNTIGlucHV0LnZhbHVlIGlzICIiCiBQcmVzcyB0aGUgdXAgYXJyb3cg
a2V5OgogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTI0IgogUHJlc3MgdGhlIGRvd24gYXJyb3cga2V5
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQt
bnVtYmVyLWtleW9wZXJhdGlvbi5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRl
c3RzL2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24uanMKaW5kZXggZjg0MTUxZDk4MjIzZjYxYTQw
MjVmODdlYzgzMTFjM2ExM2I5NTlkYS4uYTdjMGU4NTA1Mjg3ZDYzN2M1NDVkNGYwMTczODhlNzRi
NmIxZjA3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMv
aW5wdXQtbnVtYmVyLWtleW9wZXJhdGlvbi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L3NjcmlwdC10ZXN0cy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLmpzCkBAIC03LDkgKzcsMTAg
QEAgdmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ251bWJlcicpOwogaW5wdXQu
Zm9jdXMoKTsKIGRlYnVnKCdJbnNlcnRpbmcgImFiMTIzY2QiOicpOwogZG9jdW1lbnQuZXhlY0Nv
bW1hbmQoJ0luc2VydFRleHQnLCBmYWxzZSwgJ2FiMTIzY2QnKTsKLXNob3VsZEJlKCdpbnB1dC52
YWx1ZScsICciMTIzIicpOworc2hvdWxkQmUoJ2lucHV0LnZhbHVlJywgJyIiJyk7CiAKIGRlYnVn
KCdQcmVzcyB0aGUgdXAgYXJyb3cga2V5OicpOworaW5wdXQudmFsdWVBc051bWJlciA9IDEyMzsK
IGV2ZW50U2VuZGVyLmtleURvd24oJ3VwQXJyb3cnKTsKIHNob3VsZEJlKCdpbnB1dC52YWx1ZScs
ICciMTI0IicpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTAxNWFhN2UwYTUyYzk4MDcyZDQ1Zjk3YmRjZmRk
ZDQwNzYwNWFiNy4uNmZmOWUyMzI5ZDg4MGJhZDMwZGY4NTYwZGNkZGJhNWYyYTJkOGQ3ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDExLTAyLTAxICBLZW50IFRhbXVyYSAgPHRrZW50
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTdXBwb3J0IGxvY2FsaXplZCBudW1iZXJzIGluIDxpbnB1dCB0eXBlPW51bWJlcj4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQyNDg0CisK
KyAgICAgICAgVGhpcyBjaGFuZ2UgYWRkcyBzdXBwb3J0IG9mIGxvY2FsaXplZCBudW1iZXJzIGlu
IDxpbnB1dCB0eXBlPW51bWJlcj4uCisgICAgICAgIFRoaXMgYWZmZWN0cyBvbmx5IHRoZSBVSSwg
YW5kIG5vdCBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZS4KKworICAgICAgICAtIFJlbW92ZSB0aGUg
a2V5Ym9hcmQgaW5wdXQgcmVzdHJpY3Rpb24gZmVhdHVyZSBiZWNhdXNlIGl0IGlzIGhhcmQgdG8K
KyAgICAgICAgICByZXRyaWV2ZSBjaGFyYWN0ZXJzIHVzYWJsZSBmb3IgbG9jYWxpemVkIG51bWJl
cnMgaW4gSUNVLgorCisgICAgICAgIC0gU2VwYXJhdGUgY29udmVydEZyb21WaXNpYmxlVmFsdWUo
KSBmcm9tIHNhbml0aXplVmFsdWUoKS4KKyAgICAgICAgICBzYW5pdGl6ZVZhbHVlKCkgaXMgdXNl
ZCBmb3Igbm90IG9ubHkgY29udmVydGluZyBhIHJlbmRlcmVyIHZhbHVlIHRvIGEKKyAgICAgICAg
ICBET00gdmFsdWUuCisKKyAgICAgICAgLSBJbXBsZW1lbnQgTG9jYWxpemVkTnVtYmVyIGZ1bmN0
aW9ucyBmb3IgSUNVIGFuZCBOU051bWJlckZvcm1hdHRlci4KKyAgICAgICAgICBJdCBpcyB1c2Vk
IG9ubHkgaW4gQ2hyb21pdW0gZm9yIG5vdy4KKworICAgICAgICBUZXN0OiBtYW51YWwtdGVzdHMv
aW5wdXQtbnVtYmVyLWxvY2FsaXphdGlvbi5odG1sCisKKyAgICAgICAgKiBXZWJDb3JlLmd5cGk6
IFVzZSBMb2NhbGl6ZWROdW1iZXJJQ1UuY3BwLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgICBBZGQgTG9jYWxpemVkTnVtYmVyTWFjLm1tIGFu
ZCByZW1vdmUgTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAuCisgICAgICAgICogZG9tL0lucHV0RWxl
bWVudC5oOiBJbnRyb2R1Y2UgY29udmVydEZyb21WaXNpYmxlVmFsdWUoKS4KKyAgICAgICAgKiBo
dG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxl
bWVudDo6Y29udmVydEZyb21WaXNpYmxlVmFsdWUpOgorICAgICAgICAqIGh0bWwvSFRNTElucHV0
RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6Y29udmVydEZyb21WaXNpYmxlVmFsdWUpOgorICAgICAgICAqIGh0bWwv
SW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwOiBSZW1vdmUg
aXNIVE1MTnVtYmVyQ2hhcmFjdGVyKCksCisgICAgICAgICAgaXNOdW1iZXJDaGFyYWN0ZXIoKSwg
YW5kIGhhbmRsZUJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KCkgYmVjYXVzZSB3ZQorICAgICAgICAg
IHJlbW92ZSB0aGUga2V5Ym9hcmQgaW5wdXQgcmVzdHJpY3Rpb24gZmVhdHVyZSBmb3IgdHlwZT1u
dW1iZXIuCisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJbnB1dFR5cGU6OmNvbnZlcnRGcm9tVmlz
aWJsZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok51bWJlcklucHV0VHlwZTo6c2FuaXRpemVW
YWx1ZSk6CisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1dFR5cGUuaDoKKyAgICAgICAgKiBtYW51
YWwtdGVzdHMvaW5wdXQtbnVtYmVyLWxvY2FsaXphdGlvbi5odG1sOiBBZGQgYSBtYW51YWwgdGVz
dCBiZWNhdXNlCisgICAgICAgICAgdGhlIGJlaGF2aW9yIGRlcGVuZHMgb24gdGhlIGN1cnJlbnQg
bG9jYWxlLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyLmg6IFJlbW92
ZSBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcigpLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
TG9jYWxpemVkTnVtYmVySUNVLmNwcDoKKyAgICAgICAgICBJbXBsZW1lbnQgTG9jYWxpemVkTnVt
YmVyIGZ1bmN0aW9ucyB3aXRoIElDVSBOdW1iZXJGb3JtYXQuCisgICAgICAgIChXZWJDb3JlOjpj
cmVhdGVGb3JtYXR0ZXJGb3JDdXJyZW50TG9jYWxlKToKKyAgICAgICAgKFdlYkNvcmU6OnBhcnNl
TG9jYWxpemVkTnVtYmVyKToKKyAgICAgICAgKFdlYkNvcmU6OmZvcm1hdExvY2FsaXplZE51bWJl
cik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcDogUmVt
b3ZlIGlzTG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVyKCkuCisgICAgICAgICogcGxhdGZvcm0vdGV4
dC9tYWMvTG9jYWxpemVkTnVtYmVyTWFjLm1tOgorICAgICAgICAgIEltcGxlbWVudCBMb2NhbGl6
ZWROdW1iZXIgZnVuY3Rpb25zIHdpdGggTlNOdW1iZXJGb3JtYXR0ZXIuCisgICAgICAgIChXZWJD
b3JlOjpwYXJzZUxvY2FsaXplZE51bWJlcik6CisgICAgICAgIChXZWJDb3JlOjpmb3JtYXRMb2Nh
bGl6ZWROdW1iZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbFNpbmds
ZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5l
OjpzdWJ0cmVlSGFzQ2hhbmdlZCk6CisgICAgICAgICogd21sL1dNTElucHV0RWxlbWVudC5oOgor
ICAgICAgICAoV2ViQ29yZTo6V01MSW5wdXRFbGVtZW50Ojpjb252ZXJ0RnJvbVZpc2libGVWYWx1
ZSk6CisgICAgICAgICAgSW1wbGVtZW50ZWQgYXMgYSBmdW5jdGlvbiBkb2luZyBub3RoaW5nLgor
CiAyMDExLTAxLTI1ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBHdXN0YXZvIE5vcm9uaGEgU2lsdmEuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkK
aW5kZXggNDhjOWZmYTJkYWU0ZTk3NGQwZDIzN2MxMmUwZmQ3MGQ2YTI3NDczOC4uOTcyYjNkNTE4
MTJlMjVjZmNiNDgyMWE2OWI1ZjE1N2IyMDQ3NjQ2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5neXBpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpAQCAtMzMy
Miw3ICszMzIyLDcgQEAKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuY3Bw
JywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0xpbmVFbmRpbmcuaCcsCiAgICAgICAgICAg
ICAncGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXIuaCcsCi0gICAgICAgICAgICAncGxhdGZv
cm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcCcsCisgICAgICAgICAgICAncGxhdGZvcm0v
dGV4dC9Mb2NhbGl6ZWROdW1iZXJJQ1UuY3BwJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0
L1BhcnNlclV0aWxpdGllcy5oJywKICAgICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L1BsYXRmb3Jt
U3RyaW5nLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvUmVndWxhckV4cHJlc3Npb24u
Y3BwJywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCAyMmFjZWRjMDFmNjE1ZDk2NmMwNmJlYjgyOTNjMmI4NTI0ZGM3ZjM0Li4wYWI1
NTg2YTFiNWU4NjUyZWUyZjAyYTI1NGY3YTVmNWY0MzcwYmYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC01NjQ2LDcgKzU2NDYs
NiBAQAogCQlGNEVBRjRBRTEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjRFQUY0QUMx
MEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNwcCAqLzsgfTsKIAkJRjRFQUY0
QUYxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMg
LyogT3BlblR5cGVTYW5pdGl6ZXIuaCAqLzsgfTsKIAkJRjUxNDJDNjkxMjNGMTJCMDAwRjVCRDRD
IC8qIExvY2FsaXplZE51bWJlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRjUxNDJDNjgxMjNGMTJCMDAwRjVCRDRDIC8qIExvY2FsaXplZE51bWJlci5o
ICovOyB9OwotCQlGNTE0MkM2QjEyM0YxMkM1MDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyTm9u
ZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTE0
MkM2QTEyM0YxMkM1MDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgKi87IH07CiAJ
CUY1NUIzREFEMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTVCM0Q3OTEyNTFGMTJE
MDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuY3BwICovOyB9OwogCQlGNTVCM0RBRTEyNTFG
MTJEMDAzRUYyNjkgLyogQmFzZVRleHRJbnB1dFR5cGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDdBMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNl
VGV4dElucHV0VHlwZS5oICovOyB9OwogCQlGNTVCM0RBRjEyNTFGMTJEMDAzRUYyNjkgLyogQnV0
dG9uSW5wdXRUeXBlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEY1NUIzRDdCMTI1MUYxMkQwMDNFRjI2OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwICov
OyB9OwpAQCAtNTcxMCw2ICs1NzA5LDcgQEAKIAkJRjVDMDQxRTUwRkZDQTk2RDAwODM5RDRBIC8q
IERPTUhUTUxEYXRhTGlzdEVsZW1lbnRJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRTAwRkZDQTk2RDAwODM5RDRBIC8qIERPTUhU
TUxEYXRhTGlzdEVsZW1lbnRJbnRlcm5hbC5oICovOyB9OwogCQlGNUMwNDFFNjBGRkNBOTZEMDA4
MzlENEEgLyogSlNIVE1MRGF0YUxpc3RFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUUxMEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hU
TUxEYXRhTGlzdEVsZW1lbnQuY3BwICovOyB9OwogCQlGNUMwNDFFNzBGRkNBOTZEMDA4MzlENEEg
LyogSlNIVE1MRGF0YUxpc3RFbGVtZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFFMjBGRkNBOTZEMDA4MzlENEEgLyogSlNIVE1MRGF0YUxp
c3RFbGVtZW50LmggKi87IH07CisJCUY1Q0M0MkRDMTJGODAxQ0EwMEQ1RjdFMyAvKiBMb2NhbGl6
ZWROdW1iZXJNYWMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBGNUNDNDJEQjEyRjgwMUNBMDBENUY3RTMgLyogTG9jYWxpemVkTnVtYmVyTWFjLm1tICov
OyB9OwogCQlGNUQzQTU3QzEwNkI4M0IzMDA1NDUyOTcgLyogRGF0ZUNvbXBvbmVudHMuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVEM0E1N0ExMDZC
ODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmNwcCAqLzsgfTsKIAkJRjVEM0E1N0QxMDZC
ODNCMzAwNTQ1Mjk3IC8qIERhdGVDb21wb25lbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUQzQTU3QjEwNkI4M0IzMDA1NDUyOTcgLyogRGF0ZUNv
bXBvbmVudHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlGN0EwMzRDNDEyNkJGNkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGN0EwMzRDMzEyNkJGNkJF
MDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTEyMDI1LDcgKzEyMDI1LDYgQEAKIAkJRjRFQUY0QUMx
MEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgbmFtZSA9IE9wZW5UeXBlU2FuaXRpemVyLmNwcDsgcGF0aCA9IG9wZW50
eXBlL09wZW5UeXBlU2FuaXRpemVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RjRFQUY0QUQxMEM3NDJCMTAwOTEwMEQzIC8qIE9wZW5UeXBlU2FuaXRpemVyLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IE9wZW5UeXBlU2FuaXRpemVyLmg7IHBhdGggPSBvcGVu
dHlwZS9PcGVuVHlwZVNhbml0aXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlG
NTE0MkM2ODEyM0YxMkIwMDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IExvY2FsaXplZE51bWJlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlGNTE0MkM2QTEyM0YxMkM1MDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVy
Tm9uZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMb2NhbGl6ZWRO
dW1iZXJOb25lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjUyM0QyM0IwMkRF
NDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRG9jdW1lbnQuY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJRjUyM0Qy
M0MwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxEb2N1bWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBIVE1MRG9jdW1lbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CiAJCUY1MjNEMjNF
MDJERTQzOTYwMTg2MzVDQSAvKiBIVE1MRWxlbWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MRWxlbWVudC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwpAQCAtMTIx
MTQsNiArMTIxMTMsNyBAQAogCQlGNUMyODY5MzAyODQ2RENEMDE4NjM1Q0EgLyogQXBwbGljYXRp
b25TZXJ2aWNlcy5mcmFtZXdvcmsgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1ld29yazsgbmFtZSA9IEFwcGxpY2F0aW9uU2Vydmlj
ZXMuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQXBwbGljYXRp
b25TZXJ2aWNlcy5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CiAJCUY1
QzI4Njk0MDI4NDZEQ0QwMTg2MzVDQSAvKiBDYXJib24uZnJhbWV3b3JrICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7IG5h
bWUgPSBDYXJib24uZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3Mv
Q2FyYm9uLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+IjsgfTsKIAkJRjVDMjg2
OTUwMjg0NkRDRDAxODYzNUNBIC8qIENvY29hLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0g
Q29jb2EuZnJhbWV3b3JrOyBwYXRoID0gL1N5c3RlbS9MaWJyYXJ5L0ZyYW1ld29ya3MvQ29jb2Eu
ZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9OworCQlGNUNDNDJEQjEyRjgw
MUNBMDBENUY3RTMgLyogTG9jYWxpemVkTnVtYmVyTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gTG9jYWxpemVkTnVtYmVyTWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlGNUQzQTU3QTEwNkI4M0IzMDA1NDUyOTcgLyogRGF0ZUNvbXBvbmVu
dHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGF0ZUNvbXBvbmVu
dHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNUQzQTU3QjEwNkI4M0IzMDA1
NDUyOTcgLyogRGF0ZUNvbXBvbmVudHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRGF0ZUNvbXBvbmVudHMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRjdBMDM0
QzMxMjZCRjZCRTAwN0RDMTlFIC8qIEZvbnRPcmllbnRhdGlvbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb250T3JpZW50YXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTE3NTk4LDcgKzE3NTk4LDYgQEAKIAkJCQk4OUI1RUE5RjExRTgwMDNEMDBGMjM2
N0UgLyogTGluZUVuZGluZy5jcHAgKi8sCiAJCQkJODlCNUVBQTAxMUU4MDAzRDAwRjIzNjdFIC8q
IExpbmVFbmRpbmcuaCAqLywKIAkJCQlGNTE0MkM2ODEyM0YxMkIwMDBGNUJENEMgLyogTG9jYWxp
emVkTnVtYmVyLmggKi8sCi0JCQkJRjUxNDJDNkExMjNGMTJDNTAwRjVCRDRDIC8qIExvY2FsaXpl
ZE51bWJlck5vbmUuY3BwICovLAogCQkJCUJDNzZBQzExMEREN0FENUMwMDQxNUYzNCAvKiBQYXJz
ZXJVdGlsaXRpZXMuaCAqLywKIAkJCQlCMkMzRDlGQjBEMDA2QzFEMDBFRjZGMjYgLyogUGxhdGZv
cm1TdHJpbmcuaCAqLywKIAkJCQlCMkMzRDlGQzBEMDA2QzFEMDBFRjZGMjYgLyogUmVndWxhckV4
cHJlc3Npb24uY3BwICovLApAQCAtMTc2NDMsNiArMTc2NDIsNyBAQAogCQkJCUIyQUZGQzg1MEQw
MEE1REYwMDMwMDc0RCAvKiBjaGFyYWN0ZXItc2V0cy50eHQgKi8sCiAJCQkJQjJDM0Q5RkEwRDAw
NkMxRDAwRUY2RjI2IC8qIENoYXJzZXREYXRhLmggKi8sCiAJCQkJMzc1Q0QyMzkxMTlENDRFQTAw
QTJBODU5IC8qIEh5cGhlbmF0aW9uTWFjLm1tICovLAorCQkJCUY1Q0M0MkRCMTJGODAxQ0EwMEQ1
RjdFMyAvKiBMb2NhbGl6ZWROdW1iZXJNYWMubW0gKi8sCiAJCQkJQjJBRkZDODYwRDAwQTVERjAw
MzAwNzREIC8qIG1hYy1lbmNvZGluZ3MudHh0ICovLAogCQkJCUIyQUZGQzg3MEQwMEE1REYwMDMw
MDc0RCAvKiBtYWtlLWNoYXJzZXQtdGFibGUucGwgKi8sCiAJCQkJQjJBRkZDODgwRDAwQTVERjAw
MzAwNzREIC8qIFNoYXBlQXJhYmljLmMgKi8sCkBAIC0yNDM2MCw3ICsyNDM2MCw3IEBACiAJCQkJ
N0VFNjg0NjgxMkQyNkUzODAwRTc5NDE1IC8qIExvYWRlclJ1bkxvb3BDRi5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkwNkU4MUVFQzBBQjVEQTk3MDBDODc4MzcgLyogTG9jYWxDdXJyZW50R3JhcGhp
Y3NDb250ZXh0Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODk4Nzg1NjcxMjJDQTA2NDAwM0FBQkRB
IC8qIExvY2FsRmlsZVN5c3RlbS5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlGNTE0MkM2QjEyM0Yx
MkM1MDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQlGNUNDNDJEQzEyRjgwMUNBMDBENUY3RTMgLyogTG9jYWxpemVkTnVtYmVyTWFjLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQzA0NkUxQUMxMjA4QTlGRTAwQkEyQ0Y3IC8qIExvY2FsaXplZFN0cmlu
Z3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExRjIzMTcwREMxNjBEQTAwNEYwMDMyIC8qIExv
Y2FsU3RvcmFnZVRhc2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTExRjIzMTkwREMxNjBEQTAw
NEYwMDMyIC8qIExvY2FsU3RvcmFnZVRocmVhZC5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9JbnB1dEVsZW1lbnQuaAppbmRleCAwMmFjNWNmMjM3MzJhYmUzNTMyOGE2MjUzNjNkNmY0YzBm
ODMxNWQ4Li5hZTA5YWQwZWI2MjM4YWNhNzEzOWVkMWYzZmI5YTYwNjg4OTI4N2UzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0lucHV0RWxlbWVudC5oCkBAIC02MSw2ICs2MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICAvLyBUaGUg
dmFsdWUgd2hpY2ggaXMgZHJhd24gYnkgYSByZW5kZXJlci4KICAgICB2aXJ0dWFsIFN0cmluZyB2
aXNpYmxlVmFsdWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBTdHJpbmcgY29udmVydEZyb21W
aXNpYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3QgPSAwOwogCiAgICAgLy8gUmV0dXJucyB0
cnVlIGlmIHRoZSBzcGVjaWZpZWQgc3RyaW5nIGNhbiBiZSBzZXQgYXMgdGhlIHZhbHVlIG9mIElu
cHV0RWxlbWVudC4KICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlcHRhYmxlVmFsdWUoY29uc3QgU3Ry
aW5nJikgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5w
dXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAK
aW5kZXggN2IxMjc2NzBmZmQzZGZkNjRmNWMwN2NjMzc1OGNmMzc5MDIyOTE2Ny4uYzI5ZmRmYTc4
NzI5ODg0OGIwNTQ1Y2I4NDNlNGFlMmQ3MWNmMmU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0xMTQ1LDYgKzExNDUsMTEgQEAgU3RyaW5nIEhUTUxJbnB1
dEVsZW1lbnQ6OnZpc2libGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT52
aXNpYmxlVmFsdWUoKTsKIH0KIAorU3RyaW5nIEhUTUxJbnB1dEVsZW1lbnQ6OmNvbnZlcnRGcm9t
VmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYgdmlzaWJsZVZhbHVlKSBjb25zdAoreworICAgIHJl
dHVybiBtX2lucHV0VHlwZS0+Y29udmVydEZyb21WaXNpYmxlVmFsdWUodmlzaWJsZVZhbHVlKTsK
K30KKwogYm9vbCBIVE1MSW5wdXRFbGVtZW50Ojppc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJp
bmcmIHByb3Bvc2VkVmFsdWUpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5pc0Fj
Y2VwdGFibGVWYWx1ZShwcm9wb3NlZFZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRF
bGVtZW50LmgKaW5kZXggNzU3OTkyYWRhNjc1NDI2MGY2MDE0MzMxMDczMWJkZDhmYzA4YzBhNS4u
NDBlYjE5NWE4YjBlYzQyNWVmOGM5NTQwMjk4OTMwZmFkMTFmYmM2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW5wdXRFbGVtZW50LmgKQEAgLTI2MCw2ICsyNjAsNyBAQCBwcml2YXRlOgogICAg
IHZpcnR1YWwgdm9pZCBjYWNoZVNlbGVjdGlvbihpbnQgc3RhcnQsIGludCBlbmQpOwogCiAgICAg
dmlydHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3Q7CisgICAgdmlydHVhbCBTdHJpbmcg
Y29udmVydEZyb21WaXNpYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVh
bCBib29sIGlzQWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZpcnR1
YWwgU3RyaW5nIHNhbml0aXplVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgdmlydHVh
bCBib29sIGhhc1VuYWNjZXB0YWJsZVZhbHVlKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5jcHAKaW5kZXggMzgwOGYyZThkNmUzNzMyNWEzOWY0OGQ3NDNkODc3ZWYyZTliODAwNS4uZjE1
YmQ4NzA4ZDI0MjRlYmZiNjZmY2MxM2E3MDBhZDhjY2I1ZDg2MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5w
dXRUeXBlLmNwcApAQCAtNTExLDYgKzUxMSwxMSBAQCBTdHJpbmcgSW5wdXRUeXBlOjp2aXNpYmxl
VmFsdWUoKSBjb25zdAogICAgIHJldHVybiBlbGVtZW50KCktPnZhbHVlKCk7CiB9CiAKK1N0cmlu
ZyBJbnB1dFR5cGU6OmNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYgdmlzaWJs
ZVZhbHVlKSBjb25zdAoreworICAgIHJldHVybiB2aXNpYmxlVmFsdWU7Cit9CisKIGJvb2wgSW5w
dXRUeXBlOjppc0FjY2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKQogewogICAgIHJldHVybiB0
cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKaW5kZXggM2RlZjY5MzJiOTg2NjVlOTc5ZGNiZjdh
ODVhZTIzNGI4ODEyNzhkZi4uOWNkNGZlMDZiMTA3ZmRkZGIyZWZmYjRkYjg5YjYxN2E5MjFkMWFl
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCkBAIC0xNDksNiArMTQ5LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdDsKICAgICB2aXJ0dWFs
IGJvb2wgY2FuU2V0U3RyaW5nVmFsdWUoKSBjb25zdDsKICAgICB2aXJ0dWFsIFN0cmluZyB2aXNp
YmxlVmFsdWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb252ZXJ0RnJvbVZpc2libGVW
YWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlcHRhYmxl
VmFsdWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBTdHJpbmcgc2FuaXRpemVWYWx1ZShj
b25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzVW5hY2NlcHRhYmxlVmFsdWUoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcAppbmRleCBmMDk2Nzc2NDNmNTli
ZjlkYTk4YzliYzUzNDg4OTc3YTI4NTM4ZmNhLi5kNjY0M2UxMmY4Nzc0MmFhMDRkYzk5YjhjMDAz
MmZiNmJlMGVmZTMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0
VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBA
IC01NiwxOCArNTYsNiBAQCBzdGF0aWMgY29uc3QgZG91YmxlIG51bWJlckRlZmF1bHRNYXhpbXVt
ID0gRkxUX01BWDsKIHN0YXRpYyBjb25zdCBkb3VibGUgbnVtYmVyRGVmYXVsdFN0ZXAgPSAxLjA7
CiBzdGF0aWMgY29uc3QgZG91YmxlIG51bWJlclN0ZXBTY2FsZUZhY3RvciA9IDEuMDsKIAotLy8g
UmV0dXJucyB0cnVlIGlmIHRoZSBzcGVjaWZpZWQgY2hhcmFjdGVyIGNhbiBiZSBhIHBhcnQgb2Yg
J3ZhbGlkIGZsb2F0aW5nCi0vLyBwb2ludCBudW1iZXInIG9mIEhUTUw1Lgotc3RhdGljIGJvb2wg
aXNIVE1MTnVtYmVyQ2hhcmFjdGVyKFVDaGFyIGNoKQotewotICAgIHJldHVybiBjaCA9PSAnKycg
fHwgY2ggPT0gJy0nIHx8IGNoID09ICcuJyB8fCBjaCA9PSAnZScgfHwgY2ggPT0gJ0UnIHx8IGlz
QVNDSUlEaWdpdChjaCk7Ci19Ci0KLXN0YXRpYyBib29sIGlzTnVtYmVyQ2hhcmFjdGVyKFVDaGFy
IGNoKQotewotICAgIHJldHVybiBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcihjaCkgfHwgaXNI
VE1MTnVtYmVyQ2hhcmFjdGVyKGNoKTsKLX0KLQogUGFzc093blB0cjxJbnB1dFR5cGU+IE51bWJl
cklucHV0VHlwZTo6Y3JlYXRlKEhUTUxJbnB1dEVsZW1lbnQqIGVsZW1lbnQpCiB7CiAgICAgcmV0
dXJuIGFkb3B0UHRyKG5ldyBOdW1iZXJJbnB1dFR5cGUoZWxlbWVudCkpOwpAQCAtMTg2LDMwICsx
NzQsNiBAQCB2b2lkIE51bWJlcklucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJk
RXZlbnQqIGV2ZW50KQogICAgICAgICBUZXh0RmllbGRJbnB1dFR5cGU6OmhhbmRsZUtleWRvd25F
dmVudChldmVudCk7CiB9CiAKLXZvaWQgTnVtYmVySW5wdXRUeXBlOjpoYW5kbGVCZWZvcmVUZXh0
SW5zZXJ0ZWRFdmVudChCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudCogZXZlbnQpCi17Ci0gICAgdW5z
aWduZWQgbGVuZ3RoID0gZXZlbnQtPnRleHQoKS5sZW5ndGgoKTsKLSAgICBib29sIGhhc0ludmFs
aWRDaGFyID0gZmFsc2U7Ci0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytp
KSB7Ci0gICAgICAgIGlmICghaXNOdW1iZXJDaGFyYWN0ZXIoZXZlbnQtPnRleHQoKVtpXSkpIHsK
LSAgICAgICAgICAgIGhhc0ludmFsaWRDaGFyID0gdHJ1ZTsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgfQotICAgIGlmIChoYXNJbnZhbGlkQ2hhcikgewotICAgICAgICBWZWN0
b3I8VUNoYXI+IHN0cmlwcGVkOwotICAgICAgICBzdHJpcHBlZC5yZXNlcnZlQ2FwYWNpdHkobGVu
Z3RoKTsKLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7Ci0g
ICAgICAgICAgICBVQ2hhciBjaCA9IGV2ZW50LT50ZXh0KClbaV07Ci0gICAgICAgICAgICBpZiAo
IWlzTnVtYmVyQ2hhcmFjdGVyKGNoKSkKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgICAgIHN0cmlwcGVkLmFwcGVuZChjaCk7Ci0gICAgICAgIH0KLSAgICAgICAgZXZlbnQtPnNl
dFRleHQoU3RyaW5nOjphZG9wdChzdHJpcHBlZCkpOwotICAgIH0KLSAgICBUZXh0RmllbGRJbnB1
dFR5cGU6OmhhbmRsZUJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KGV2ZW50KTsKLX0KLQogdm9pZCBO
dW1iZXJJbnB1dFR5cGU6OmhhbmRsZVdoZWVsRXZlbnQoV2hlZWxFdmVudCogZXZlbnQpCiB7CiAg
ICAgaGFuZGxlV2hlZWxFdmVudEZvclNwaW5CdXR0b24oZXZlbnQpOwpAQCAtMjY3LDYgKzIzMSwx
MiBAQCBTdHJpbmcgTnVtYmVySW5wdXRUeXBlOjp2aXNpYmxlVmFsdWUoKSBjb25zdAogICAgIHJl
dHVybiBsb2NhbGl6ZWQuaXNFbXB0eSgpID8gY3VycmVudFZhbHVlIDogbG9jYWxpemVkOwogfQog
CitTdHJpbmcgTnVtYmVySW5wdXRUeXBlOjpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBT
dHJpbmcmIHZpc2libGVWYWx1ZSkgY29uc3QKK3sKKyAgICBkb3VibGUgcGFyc2VkTnVtYmVyID0g
cGFyc2VMb2NhbGl6ZWROdW1iZXIodmlzaWJsZVZhbHVlKTsKKyAgICByZXR1cm4gaXNmaW5pdGUo
cGFyc2VkTnVtYmVyKSA/IHNlcmlhbGl6ZUZvck51bWJlclR5cGUocGFyc2VkTnVtYmVyKSA6IHZp
c2libGVWYWx1ZTsKK30KKwogYm9vbCBOdW1iZXJJbnB1dFR5cGU6OmlzQWNjZXB0YWJsZVZhbHVl
KGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkKIHsKICAgICByZXR1cm4gcHJvcG9zZWRWYWx1
ZS5pc0VtcHR5KCkgfHwgaXNmaW5pdGUocGFyc2VMb2NhbGl6ZWROdW1iZXIocHJvcG9zZWRWYWx1
ZSkpIHx8IHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKHByb3Bvc2VkVmFsdWUsIDApOwpAQCAt
Mjc0LDExICsyNDQsNiBAQCBib29sIE51bWJlcklucHV0VHlwZTo6aXNBY2NlcHRhYmxlVmFsdWUo
Y29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKQogCiBTdHJpbmcgTnVtYmVySW5wdXRUeXBlOjpz
YW5pdGl6ZVZhbHVlKGNvbnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkKIHsKLSAgICAvLyBUcnkg
dG8gcGFyc2UgdGhlIHZhbHVlIGFzIGEgbG9jYWxpemVkIG51bWJlciwgdGhlbiB0cnkgdG8gcGFy
c2UgaXQgYXMKLSAgICAvLyB0aGUgc3RhbmRhcmQgZm9ybWF0LgotICAgIGRvdWJsZSBwYXJzZWRW
YWx1ZSA9IHBhcnNlTG9jYWxpemVkTnVtYmVyKHByb3Bvc2VkVmFsdWUpOwotICAgIGlmIChpc2Zp
bml0ZShwYXJzZWRWYWx1ZSkpCi0gICAgICAgIHJldHVybiBzZXJpYWxpemVGb3JOdW1iZXJUeXBl
KHBhcnNlZFZhbHVlKTsKICAgICByZXR1cm4gcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUocHJv
cG9zZWRWYWx1ZSwgMCkgPyBwcm9wb3NlZFZhbHVlIDogU3RyaW5nKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9odG1sL051bWJlcklucHV0VHlwZS5oCmluZGV4IDlkOTcxMzQ0ZjgzYWQ1MDA4YWM2OWVjOTI4
OTNkOWZlNjY1YjM1OTQuLmVhNWRjMTA0ZjAxMDU0YWU4ZTYyODU3ODIzNDRkNTc5MWUwMDI1OGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaApAQCAtNTcsNyArNTcsNiBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgZG91YmxlIGRlZmF1bHRTdGVwKCkgY29uc3Q7CiAgICAgdmly
dHVhbCBkb3VibGUgc3RlcFNjYWxlRmFjdG9yKCkgY29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIGhh
bmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50Kik7Ci0gICAgdmlydHVhbCB2b2lkIGhhbmRs
ZUJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50Kik7CiAgICAg
dmlydHVhbCB2b2lkIGhhbmRsZVdoZWVsRXZlbnQoV2hlZWxFdmVudCopOwogICAgIHZpcnR1YWwg
ZG91YmxlIHBhcnNlVG9Eb3VibGUoY29uc3QgU3RyaW5nJiwgZG91YmxlKSBjb25zdDsKICAgICB2
aXJ0dWFsIGRvdWJsZSBwYXJzZVRvRG91YmxlV2l0aERlY2ltYWxQbGFjZXMoY29uc3QgU3RyaW5n
JiwgZG91YmxlLCB1bnNpZ25lZCopIGNvbnN0OwpAQCAtNjUsNiArNjQsNyBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgZG91YmxlIGFjY2VwdGFibGVFcnJvcihkb3VibGUpIGNvbnN0OwogICAgIHZp
cnR1YWwgdm9pZCBoYW5kbGVCbHVyRXZlbnQoKTsKICAgICB2aXJ0dWFsIFN0cmluZyB2aXNpYmxl
VmFsdWUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb252ZXJ0RnJvbVZpc2libGVWYWx1
ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICB2aXJ0dWFsIGJvb2wgaXNBY2NlcHRhYmxlVmFs
dWUoY29uc3QgU3RyaW5nJik7CiAgICAgdmlydHVhbCBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25z
dCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzVW5hY2NlcHRhYmxlVmFsdWUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0cy9pbnB1dC1udW1iZXItbG9jYWxp
emF0aW9uLmh0bWwgYi9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVzdHMvaW5wdXQtbnVtYmVyLWxv
Y2FsaXphdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NDdhYTU3ZDQyMzg3OTI0MTEzNGQ0MWJmMDQ4
NzZmYzJjZjU1YTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9tYW51YWwtdGVz
dHMvaW5wdXQtbnVtYmVyLWxvY2FsaXphdGlvbi5odG1sCkBAIC0wLDAgKzEsMzAgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzx0aXRsZT5OdW1iZXIgdHlwZSBpbnB1dCBzaG93
cyBhbmQgYWNjZXB0cyBsb2NhbGl6ZWQgbnVtYmVyczwvdGl0bGU+Cis8c3R5bGU+Cis6aW52YWxp
ZCB7CisgIGJvcmRlci1jb2xvcjogcmVkOworICAtd2Via2l0LWJveC1zaGFkb3c6IDRweCA0cHgg
OHB4ICNmZjg4ODg7Cit9Cis8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKworPHA+T3V0cHV0IHRlc3Q6IFRoZSBmb2xsb3dpbmcgdGV4dCBmaWVsZCBz
aG91bGQgaGF2ZSBhIGxvY2FsaXplZCByZXByZXNlbnRhdGlvbiBmb3IgIi0xMjM0LjU2Ii4KK2Uu
Zy4gIi0xLDIzNC41NiIgZm9yIGVuX1VTIGxvY2FsZSwgIi0xLjIzNCw1NiIgZm9yIGZyX0ZSIGxv
Y2FsZS48L3A+Cis8ZGl2PjxpbnB1dCB0eXBlPW51bWJlciB2YWx1ZT0iLTEyMzQuNTYiIHN0ZXA9
YW55PjwvZGl2PgorCis8cD5JbnB1dCB0ZXN0OiBUeXBlIGEgbG9jYWxpemVkIHJlcHJlc2VudGF0
aW9uIG9mIGEgbnVtYmVyIGludG8gdGhlIGZvbGxvd2luZyB0ZXh0IGZpZWxkLgorWW91J2xsIHNl
ZSBhbiBlcXVpdmFsZW50IG51bWJlciBpbiB0aGUgc3RhbmRhcmQgZm9ybWF0IG9uIHRoZSBib3R0
b20gb2YgdGhlIHRleHQgZmllbGQuPC9wPgorPGRpdj48aW5wdXQgdHlwZT1udW1iZXIgaWQ9dGFy
Z2V0IHN0ZXA9YW55IG9uaW5wdXQ9ImhhbmRsZUlucHV0KCkiPjwvZGl2PgorPGRpdj5TdGFuZGFy
ZCBmb3JtYXQ6IDxvdXRwdXQgaWQ9b3V0cHV0Pjwvb3V0cHV0PjwvZGl2PgorCis8c2NyaXB0Pgor
ZnVuY3Rpb24gaGFuZGxlSW5wdXQoKSB7CisgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdXRw
dXQnKS52YWx1ZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS52YWx1ZTsKK30K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvTG9jYWxpemVkTnVtYmVyLmgKaW5kZXggNDU4NzNiOGI3ZDlmNDM5NzQ4Y2Q1YjMzNGI3
N2JmYmJhNWYzZjAwYi4uZDcwNTQxZjAwMWVjYmQ2MTRjYzRhN2MxZWM3YmY1NGRmOTQ0OTcxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oCkBA
IC00OSwxMSArNDksNiBAQCBkb3VibGUgcGFyc2VMb2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5n
Jik7CiAvLyByZXR1cm4gYW4gZW1wdHkgc3RyaW5nLgogU3RyaW5nIGZvcm1hdExvY2FsaXplZE51
bWJlcihkb3VibGUpOwogCi0vLyBSZXR1cm5zIHRydWUgaWYgdGhlIGlucHV0IGNoYXJhY3RlciBj
YW4gYmUgdXNlZCB0byByZXByZXNlbnQgYQotLy8gbnVtYmVyIGluIHRoZSBicm93c2VyIGxvY2Fs
ZS4gRm9yIGV4YW1wbGUsIHRoaXMgc2hvdWxkIHJldHVybiB0cnVlIGZvciAwLTkgLgotLy8gLCAr
IC0gZm9yIGVuLVVTIGxvY2FsZS4KLWJvb2wgaXNMb2NhbGl6ZWROdW1iZXJDaGFyYWN0ZXIoVUNo
YXIzMik7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIExvY2FsaXplZE51
bWJlcl9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXpl
ZE51bWJlcklDVS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51
bWJlcklDVS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGE4MmRkNjFhYWJlNTRlNTJiNTJmNjU2NWQ2MDg0MjVh
YmQ3ZWZkZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxpemVkTnVtYmVySUNVLmNwcApAQCAtMCwwICsxLDc1IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4K
KyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBv
ZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUg
cHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMg
cHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
CisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisg
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIkxvY2FsaXplZE51bWJlci5oIgorCisjaW5jbHVkZSA8bGltaXRzPgorI2lu
Y2x1ZGUgPHVuaWNvZGUvbnVtZm10Lmg+CisjaW5jbHVkZSA8d3RmL1Bhc3NPd25QdHIuaD4KKwor
dXNpbmcgbmFtZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdGF0aWMgaW5s
aW5lIFBhc3NPd25QdHI8TnVtYmVyRm9ybWF0PiBjcmVhdGVGb3JtYXR0ZXJGb3JDdXJyZW50TG9j
YWxlKCkKK3sKKyAgICBVRXJyb3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICByZXR1
cm4gYWRvcHRQdHIoTnVtYmVyRm9ybWF0OjpjcmVhdGVJbnN0YW5jZShzdGF0dXMpKTsKK30KKwor
ZG91YmxlIHBhcnNlTG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYgbnVtYmVyU3RyaW5nKQor
eworICAgIGlmIChudW1iZXJTdHJpbmcuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVtZXJp
Y19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgT3duUHRyPE51bWJlckZvcm1hdD4g
Zm9ybWF0dGVyID0gY3JlYXRlRm9ybWF0dGVyRm9yQ3VycmVudExvY2FsZSgpOworICAgIGlmICgh
Zm9ybWF0dGVyKQorICAgICAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRf
TmFOKCk7CisgICAgVW5pY29kZVN0cmluZyBudW1iZXJVbmljb2RlU3RyaW5nKG51bWJlclN0cmlu
Zy5jaGFyYWN0ZXJzKCksIG51bWJlclN0cmluZy5sZW5ndGgoKSk7CisgICAgVUVycm9yQ29kZSBz
dGF0dXMgPSBVX1pFUk9fRVJST1I7CisgICAgRm9ybWF0dGFibGUgcmVzdWx0OworICAgIGZvcm1h
dHRlci0+cGFyc2UobnVtYmVyVW5pY29kZVN0cmluZywgcmVzdWx0LCBzdGF0dXMpOworICAgIGlm
IChzdGF0dXMgIT0gVV9aRVJPX0VSUk9SKQorICAgICAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgZG91YmxlIG51bWVyaWNSZXN1bHQgPSByZXN1bHQu
Z2V0RG91YmxlKHN0YXR1cyk7CisgICAgcmV0dXJuIHN0YXR1cyA9PSBVX1pFUk9fRVJST1IgPyBu
dW1lcmljUmVzdWx0IDogbnVtZXJpY19saW1pdHM8ZG91YmxlPjo6cXVpZXRfTmFOKCk7Cit9CisK
K1N0cmluZyBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoZG91YmxlIG51bWJlcikKK3sKKyAgICBPd25Q
dHI8TnVtYmVyRm9ybWF0PiBmb3JtYXR0ZXIgPSBjcmVhdGVGb3JtYXR0ZXJGb3JDdXJyZW50TG9j
YWxlKCk7CisgICAgaWYgKCFmb3JtYXR0ZXIpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKyAg
ICBVbmljb2RlU3RyaW5nIHJlc3VsdDsKKyAgICBmb3JtYXR0ZXItPmZvcm1hdChudW1iZXIsIHJl
c3VsdCk7CisgICAgcmV0dXJuIFN0cmluZyhyZXN1bHQuZ2V0QnVmZmVyKCksIHJlc3VsdC5sZW5n
dGgoKSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwCmluZGV4IDZmMDE3ZTlm
ODk0OThlMjVmNjI2YTQ4OTNjNTFmODg4MjkyZDM4YzQuLjcyOWYyZjE5NDQyY2EwY2JjOWVmYjZk
YjMwMTFkZDk2NGRjZTg1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Rl
eHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcApAQCAtNDcsOSArNDcsNCBAQCBTdHJpbmcgZm9y
bWF0TG9jYWxpemVkTnVtYmVyKGRvdWJsZSkKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9CiAKLWJv
b2wgaXNMb2NhbGl6ZWROdW1iZXJDaGFyYWN0ZXIoVUNoYXIzMikKLXsKLSAgICByZXR1cm4gZmFs
c2U7Ci19Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsaXplZE51bWJlck1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvbWFjL0xvY2FsaXplZE51bWJlck1hYy5tbQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
ZmJmYzUxNGMzOGMzMTVhZmZmNmUwOTM4MTI2MjIzOGJkZDJiMDIxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxpemVkTnVtYmVyTWFjLm1t
CkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUK
KyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJp
Z2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUg
bmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3Jz
IG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20K
KyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Np
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhP
TERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICog
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRI
RSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
CisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVk
TnVtYmVyLmgiCisKKyNpbmNsdWRlIDxsaW1pdHM+CisjaW1wb3J0IDxGb3VuZGF0aW9uL05TTnVt
YmVyRm9ybWF0dGVyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgordXNpbmcgbmFt
ZXNwYWNlIHN0ZDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitkb3VibGUgcGFyc2VMb2NhbGl6
ZWROdW1iZXIoY29uc3QgU3RyaW5nJiBudW1iZXJTdHJpbmcpCit7CisgICAgaWYgKG51bWJlclN0
cmluZy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+Ojpx
dWlldF9OYU4oKTsKKyAgICBOU051bWJlckZvcm1hdHRlciogZm9ybWF0dGVyID0gW1tbTlNOdW1i
ZXJGb3JtYXR0ZXIgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNlXTsKKyAgICBbZm9ybWF0dGVyIHNl
dExvY2FsaXplc0Zvcm1hdDpZRVNdOworICAgIFtmb3JtYXR0ZXIgc2V0TnVtYmVyU3R5bGU6TlNO
dW1iZXJGb3JtYXR0ZXJEZWNpbWFsU3R5bGVdOworICAgIE5TTnVtYmVyKiBudW0gPSBbZm9ybWF0
dGVyIG51bWJlckZyb21TdHJpbmc6bnVtYmVyU3RyaW5nXTsKKyAgICBpZiAobnVtID09IG5pbCkK
KyAgICAgICAgcmV0dXJuIG51bWVyaWNfbGltaXRzPGRvdWJsZT46OnF1aWV0X05hTigpOworICAg
IHJldHVybiBbbnVtIGRvdWJsZVZhbHVlXTsKK30KKworU3RyaW5nIGZvcm1hdExvY2FsaXplZE51
bWJlcihkb3VibGUgbnVtYmVyKQoreworICAgIE5TTnVtYmVyKiBudW0gPSBbTlNOdW1iZXIgbnVt
YmVyV2l0aERvdWJsZTpudW1iZXJdOworICAgIE5TTnVtYmVyRm9ybWF0dGVyKiBmb3JtYXR0ZXIg
PSBbW1tOU051bWJlckZvcm1hdHRlciBhbGxvY10gaW5pdF0gYXV0b3JlbGVhc2VdOworICAgIFtm
b3JtYXR0ZXIgc2V0TG9jYWxpemVzRm9ybWF0OllFU107CisgICAgW2Zvcm1hdHRlciBzZXROdW1i
ZXJTdHlsZTpOU051bWJlckZvcm1hdHRlckRlY2ltYWxTdHlsZV07CisgICAgcmV0dXJuIFN0cmlu
ZyhbZm9ybWF0dGVyIHN0cmluZ0Zyb21OdW1iZXI6bnVtXSk7Cit9CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2xTaW5nbGVMaW5lLmNwcAppbmRleCBiMjNjYmVjNGI5NjI2ODFiNmUwMDU1NmM1
MmZiNTc5MDI4NTUwODhlLi5iZTcwYThhZjQwNzhlYTY2OTY1MDQ1NTRiY2IzZDY3ODdiMzAzYWY3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2xT
aW5nbGVMaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lLmNwcApAQCAtMTc0LDcgKzE3NCw3IEBAIHZvaWQgUmVuZGVyVGV4dENv
bnRyb2xTaW5nbGVMaW5lOjpzdWJ0cmVlSGFzQ2hhbmdlZCgpCiAgICAgLy8gc2FuaXRpemVWYWx1
ZSgpIGlzIG5lZWRlZCBiZWNhdXNlIElNRSBpbnB1dCBkb2Vzbid0IGRpc3BhdGNoIEJlZm9yZVRl
eHRJbnNlcnRlZEV2ZW50LgogICAgIFN0cmluZyB2YWx1ZSA9IHRleHQoKTsKICAgICBpZiAoaW5w
dXQtPmlzQWNjZXB0YWJsZVZhbHVlKHZhbHVlKSkKLSAgICAgICAgaW5wdXQtPnNldFZhbHVlRnJv
bVJlbmRlcmVyKGlucHV0LT5zYW5pdGl6ZVZhbHVlKHZhbHVlKSk7CisgICAgICAgIGlucHV0LT5z
ZXRWYWx1ZUZyb21SZW5kZXJlcihpbnB1dC0+c2FuaXRpemVWYWx1ZShpbnB1dC0+Y29udmVydEZy
b21WaXNpYmxlVmFsdWUodmFsdWUpKSk7CiAgICAgaWYgKG5vZGUoKS0+aXNIVE1MRWxlbWVudCgp
KSB7CiAgICAgICAgIC8vIFJlY2FsYyBmb3IgOmludmFsaWQgYW5kIGhhc1VuYWNjZXB0YWJsZVZh
bHVlKCkgY2hhbmdlLgogICAgICAgICBzdGF0aWNfY2FzdDxIVE1MSW5wdXRFbGVtZW50Kj4oaW5w
dXQpLT5zZXROZWVkc1N0eWxlUmVjYWxjKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
bWwvV01MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93bWwvV01MSW5wdXRFbGVtZW50
LmgKaW5kZXggNmM2NjQxMGJjZjc2YTllZmZiMThlZTUzOWRiMGE2MTc5ODlhMjUzZS4uMTE2MmFj
MTkzYzczN2UxNTQ2ZGI4NjM5ZTI2ZDdjYjVlN2RhZjRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dtbC9XTUxJ
bnB1dEVsZW1lbnQuaApAQCAtNjQsNiArNjQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldFZhbHVlKGNvbnN0IFN0cmluZyYsIGJvb2wgc2VuZENoYW5nZUV2ZW50ID0gZmFsc2UpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgU3RyaW5nJik7CiAgICAgdmly
dHVhbCBTdHJpbmcgdmlzaWJsZVZhbHVlKCkgY29uc3QgeyByZXR1cm4gdmFsdWUoKTsgfQorICAg
IHZpcnR1YWwgU3RyaW5nIGNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYgdmFs
dWUpIGNvbnN0IHsgcmV0dXJuIHZhbHVlOyB9CiAgICAgdmlydHVhbCB2b2lkIHNldFZhbHVlRnJv
bVJlbmRlcmVyKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdmlydHVhbCBib29sIHNhdmVGb3JtQ29u
dHJvbFN0YXRlKFN0cmluZyYgdmFsdWUpIGNvbnN0Owo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>84179</attachid>
            <date>2011-02-28 19:51:45 -0800</date>
            <delta_ts>2011-03-01 15:28:58 -0800</delta_ts>
            <desc>Patch 6</desc>
            <filename>bug-42484-20110301125143.patch</filename>
            <type>text/plain</type>
            <size>30822</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogNzk5NTkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3YTdkMzM5MmRjNDI3ZGM4OTkzMDM4
ZWYzNDE3ZWE4OWQyMDFiZTI1Li4zNTRkZjM4YTY0NjRhZDdlYTZjMmU5ZjY1ZDFlNjEwYjQ2ZWY0
MTZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDItMDIgIEtlbnQgVGFtdXJhICA8dGtl
bnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFN1cHBvcnQgbG9jYWxpemVkIG51bWJlcnMgaW4gPGlucHV0IHR5cGU9bnVtYmVy
PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDI0ODQK
KworICAgICAgICBVcGRhdGUgYW4gZXhpc3RpbmcgdGVzdCBiZWNhdXNlIG9mIHJlbW92aW5nIHRo
ZSBrZXlib2FyZCBpbnB1dAorICAgICAgICByZXN0cmljdGlvbiBmZWF0dXJlLgorCisgICAgICAg
ICogZmFzdC9mb3Jtcy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBmYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9u
LmpzOgorCiAyMDExLTAyLTI4ICBDaGFuZyBTaHUgIDxjc2h1QHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvaW5wdXQtbnVtYmVyLWtleW9wZXJhdGlvbi1leHBlY3RlZC50eHQKaW5k
ZXggMjIxY2U2ZmVkZjlkYTZlOGJiMGNlODk5OGZiZmU4OWE5NTU2YjdjZS4uMWM0ZmMzNDRlNjJi
YWVjMDE4ZmVkNmE0NmIwMjJlMzg1ZGQwNzU3YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9mb3Jtcy9pbnB1dC1udW1iZXIta2V5b3BlcmF0aW9uLWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24tZXhwZWN0ZWQudHh0
CkBAIC00LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURQogCiAKIEluc2VydGluZyAi
YWIxMjNjZCI6Ci1QQVNTIGlucHV0LnZhbHVlIGlzICIxMjMiCitQQVNTIGlucHV0LnZhbHVlIGlz
ICIiCiBQcmVzcyB0aGUgdXAgYXJyb3cga2V5OgogUEFTUyBpbnB1dC52YWx1ZSBpcyAiMTI0Igog
UHJlc3MgdGhlIGRvd24gYXJyb3cga2V5OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtbnVtYmVyLWtleW9wZXJhdGlvbi5qcyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvc2NyaXB0LXRlc3RzL2lucHV0LW51bWJlci1rZXlvcGVyYXRpb24uanMK
aW5kZXggZjg0MTUxZDk4MjIzZjYxYTQwMjVmODdlYzgzMTFjM2ExM2I5NTlkYS4uYTdjMGU4NTA1
Mjg3ZDYzN2M1NDVkNGYwMTczODhlNzRiNmIxZjA3ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9zY3JpcHQtdGVzdHMvaW5wdXQtbnVtYmVyLWtleW9wZXJhdGlvbi5qcworKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3NjcmlwdC10ZXN0cy9pbnB1dC1udW1iZXIta2V5b3Bl
cmF0aW9uLmpzCkBAIC03LDkgKzcsMTAgQEAgdmFyIGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ251bWJlcicpOwogaW5wdXQuZm9jdXMoKTsKIGRlYnVnKCdJbnNlcnRpbmcgImFiMTIz
Y2QiOicpOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ0luc2VydFRleHQnLCBmYWxzZSwgJ2FiMTIz
Y2QnKTsKLXNob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMTIzIicpOworc2hvdWxkQmUoJ2lucHV0
LnZhbHVlJywgJyIiJyk7CiAKIGRlYnVnKCdQcmVzcyB0aGUgdXAgYXJyb3cga2V5OicpOworaW5w
dXQudmFsdWVBc051bWJlciA9IDEyMzsKIGV2ZW50U2VuZGVyLmtleURvd24oJ3VwQXJyb3cnKTsK
IHNob3VsZEJlKCdpbnB1dC52YWx1ZScsICciMTI0IicpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzMxZjQ3
NDJjOTRkMzFmMTRhMmQzZGY2Y2M4YjM3OWRlMjAzZjkxMC4uZTViYmZiMWI3N2Q3ZDJjZmY2MzA5
MmI1Mzc5MzYxY2E5YzM2ZDJmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDExLTAy
LTAxICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdXBwb3J0IGxvY2FsaXplZCBudW1iZXJz
IGluIDxpbnB1dCB0eXBlPW51bWJlcj4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQyNDg0CisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWRkcyBzdXBwb3J0
IG9mIGxvY2FsaXplZCBudW1iZXJzIGluIDxpbnB1dCB0eXBlPW51bWJlcj4uCisgICAgICAgIFRo
aXMgYWZmZWN0cyBvbmx5IHRoZSBVSSwgYW5kIG5vdCBIVE1MSW5wdXRFbGVtZW50Ojp2YWx1ZS4K
KworICAgICAgICAtIFJlbW92ZSB0aGUga2V5Ym9hcmQgaW5wdXQgcmVzdHJpY3Rpb24gZmVhdHVy
ZSBiZWNhdXNlIGl0IGlzIGhhcmQgdG8KKyAgICAgICAgICByZXRyaWV2ZSBjaGFyYWN0ZXJzIHVz
YWJsZSBmb3IgbG9jYWxpemVkIG51bWJlcnMgaW4gSUNVLgorCisgICAgICAgIC0gU2VwYXJhdGUg
Y29udmVydEZyb21WaXNpYmxlVmFsdWUoKSBmcm9tIHNhbml0aXplVmFsdWUoKS4KKyAgICAgICAg
ICBzYW5pdGl6ZVZhbHVlKCkgaXMgdXNlZCBmb3Igbm90IG9ubHkgY29udmVydGluZyBhIHJlbmRl
cmVyIHZhbHVlIHRvIGEKKyAgICAgICAgICBET00gdmFsdWUuCisKKyAgICAgICAgLSBJbXBsZW1l
bnQgTG9jYWxpemVkTnVtYmVyIGZ1bmN0aW9ucyBmb3IgSUNVIGFuZCBOU051bWJlckZvcm1hdHRl
ci4KKyAgICAgICAgICBJdCBpcyB1c2VkIG9ubHkgaW4gQ2hyb21pdW0gZm9yIG5vdy4KKworICAg
ICAgICBUZXN0OiBtYW51YWwtdGVzdHMvaW5wdXQtbnVtYmVyLWxvY2FsaXphdGlvbi5odG1sCisK
KyAgICAgICAgKiBXZWJDb3JlLmd5cGk6IFVzZSBMb2NhbGl6ZWROdW1iZXJJQ1UuY3BwLgorICAg
ICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgICBBZGQg
TG9jYWxpemVkTnVtYmVyTWFjLm1tIGFuZCByZW1vdmUgTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAu
CisgICAgICAgICogZG9tL0lucHV0RWxlbWVudC5oOiBJbnRyb2R1Y2UgY29udmVydEZyb21WaXNp
YmxlVmFsdWUoKS4KKyAgICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6Y29udmVydEZyb21WaXNpYmxlVmFsdWUpOgor
ICAgICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5oOgorICAgICAgICAqIGh0bWwvSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklucHV0VHlwZTo6Y29udmVydEZyb21WaXNpYmxl
VmFsdWUpOgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmg6CisgICAgICAgICogaHRtbC9OdW1i
ZXJJbnB1dFR5cGUuY3BwOiBSZW1vdmUgaXNIVE1MTnVtYmVyQ2hhcmFjdGVyKCksCisgICAgICAg
ICAgaXNOdW1iZXJDaGFyYWN0ZXIoKSwgYW5kIGhhbmRsZUJlZm9yZVRleHRJbnNlcnRlZEV2ZW50
KCkgYmVjYXVzZSB3ZQorICAgICAgICAgIHJlbW92ZSB0aGUga2V5Ym9hcmQgaW5wdXQgcmVzdHJp
Y3Rpb24gZmVhdHVyZSBmb3IgdHlwZT1udW1iZXIuCisgICAgICAgIChXZWJDb3JlOjpOdW1iZXJJ
bnB1dFR5cGU6OmNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6Ok51
bWJlcklucHV0VHlwZTo6c2FuaXRpemVWYWx1ZSk6CisgICAgICAgICogaHRtbC9OdW1iZXJJbnB1
dFR5cGUuaDoKKyAgICAgICAgKiBtYW51YWwtdGVzdHMvaW5wdXQtbnVtYmVyLWxvY2FsaXphdGlv
bi5odG1sOiBBZGQgYSBtYW51YWwgdGVzdCBiZWNhdXNlCisgICAgICAgICAgdGhlIGJlaGF2aW9y
IGRlcGVuZHMgb24gdGhlIGN1cnJlbnQgbG9jYWxlLgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
TG9jYWxpemVkTnVtYmVyLmg6IFJlbW92ZSBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcigpLgor
ICAgICAgICAqIHBsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVySUNVLmNwcDoKKyAgICAgICAg
ICBJbXBsZW1lbnQgTG9jYWxpemVkTnVtYmVyIGZ1bmN0aW9ucyB3aXRoIElDVSBOdW1iZXJGb3Jt
YXQuCisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGb3JtYXR0ZXJGb3JDdXJyZW50TG9jYWxlKToK
KyAgICAgICAgKFdlYkNvcmU6OnBhcnNlTG9jYWxpemVkTnVtYmVyKToKKyAgICAgICAgKFdlYkNv
cmU6OmZvcm1hdExvY2FsaXplZE51bWJlcik6CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9Mb2Nh
bGl6ZWROdW1iZXJOb25lLmNwcDogUmVtb3ZlIGlzTG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVyKCku
CisgICAgICAgICogcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxpemVkTnVtYmVyTWFjLm1tOgorICAg
ICAgICAgIEltcGxlbWVudCBMb2NhbGl6ZWROdW1iZXIgZnVuY3Rpb25zIHdpdGggTlNOdW1iZXJG
b3JtYXR0ZXIuCisgICAgICAgIChXZWJDb3JlOjpwYXJzZUxvY2FsaXplZE51bWJlcik6CisgICAg
ICAgIChXZWJDb3JlOjpmb3JtYXRMb2NhbGl6ZWROdW1iZXIpOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGV4dENvbnRyb2xTaW5nbGVMaW5lOjpzdWJ0cmVlSGFzQ2hhbmdlZCk6CisgICAgICAgICog
d21sL1dNTElucHV0RWxlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6V01MSW5wdXRFbGVtZW50
Ojpjb252ZXJ0RnJvbVZpc2libGVWYWx1ZSk6CisgICAgICAgICAgSW1wbGVtZW50ZWQgYXMgYSBm
dW5jdGlvbiBkb2luZyBub3RoaW5nLgorCiAyMDExLTAyLTI4ICBEYXZpZCBMZXZpbiAgPGxldmlu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUuZ3lwaQppbmRleCA2NmZmMzMxNzIxNTU1NTQyYzBlNTQwMDFjMGVmNWE2MzYzMmNkZWJkLi5l
OGQzOTE0MzBlYTAyODE2OWJkMzY0Mjc5Zjg2YTczNTI0ZjlmMDdjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBp
CkBAIC0zMzYyLDcgKzMzNjIsNyBAQAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTGluZUVu
ZGluZy5jcHAnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQvTGluZUVuZGluZy5oJywKICAg
ICAgICAgICAgICdwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oJywKLSAgICAgICAgICAg
ICdwbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwJywKKyAgICAgICAgICAgICdw
bGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlcklDVS5jcHAnLAogICAgICAgICAgICAgJ3BsYXRm
b3JtL3RleHQvUGFyc2VyVXRpbGl0aWVzLmgnLAogICAgICAgICAgICAgJ3BsYXRmb3JtL3RleHQv
UGxhdGZvcm1TdHJpbmcuaCcsCiAgICAgICAgICAgICAncGxhdGZvcm0vdGV4dC9SZWd1bGFyRXhw
cmVzc2lvbi5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGYwMWY3OGIxOTg5ZWEzYzY5NGE5ODRlZjE1MWM1MGJkZjA4ODdh
NzMuLmEyMTM1ZDljOWU3ZTg5YjI0NDFiMDU5ZGM3NzY0YjE1NzE0OWU4ZmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTU1OTks
NyArNTU5OSw2IEBACiAJCUY0RUFGNEFFMTBDNzQyQjEwMDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0
aXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBG
NEVBRjRBQzEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwICovOyB9Owog
CQlGNEVBRjRBRjEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY0RUFGNEFEMTBDNzQyQjEw
MDkxMDBEMyAvKiBPcGVuVHlwZVNhbml0aXplci5oICovOyB9OwogCQlGNTE0MkM2OTEyM0YxMkIw
MDBGNUJENEMgLyogTG9jYWxpemVkTnVtYmVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBGNTE0MkM2ODEyM0YxMkIwMDBGNUJENEMgLyogTG9jYWxpemVk
TnVtYmVyLmggKi87IH07Ci0JCUY1MTQyQzZCMTIzRjEyQzUwMEY1QkQ0QyAvKiBMb2NhbGl6ZWRO
dW1iZXJOb25lLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEY1MTQyQzZBMTIzRjEyQzUwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcCAq
LzsgfTsKIAkJRjU1QjNEQUQxMjUxRjEyRDAwM0VGMjY5IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1NUIzRDc5
MTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5jcHAgKi87IH07CiAJCUY1NUIz
REFFMTI1MUYxMkQwMDNFRjI2OSAvKiBCYXNlVGV4dElucHV0VHlwZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjU1QjNEN0ExMjUxRjEyRDAwM0VGMjY5
IC8qIEJhc2VUZXh0SW5wdXRUeXBlLmggKi87IH07CiAJCUY1NUIzREFGMTI1MUYxMkQwMDNFRjI2
OSAvKiBCdXR0b25JbnB1dFR5cGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRjU1QjNEN0IxMjUxRjEyRDAwM0VGMjY5IC8qIEJ1dHRvbklucHV0VHlw
ZS5jcHAgKi87IH07CkBAIC01NjYzLDYgKzU2NjIsNyBAQAogCQlGNUMwNDFFNTBGRkNBOTZEMDA4
MzlENEEgLyogRE9NSFRNTERhdGFMaXN0RWxlbWVudEludGVybmFsLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUMwNDFFMDBGRkNBOTZEMDA4MzlENEEg
LyogRE9NSFRNTERhdGFMaXN0RWxlbWVudEludGVybmFsLmggKi87IH07CiAJCUY1QzA0MUU2MEZG
Q0E5NkQwMDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRjVDMDQxRTEwRkZDQTk2RDAwODM5RDRB
IC8qIEpTSFRNTERhdGFMaXN0RWxlbWVudC5jcHAgKi87IH07CiAJCUY1QzA0MUU3MEZGQ0E5NkQw
MDgzOUQ0QSAvKiBKU0hUTUxEYXRhTGlzdEVsZW1lbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1QzA0MUUyMEZGQ0E5NkQwMDgzOUQ0QSAvKiBKU0hU
TUxEYXRhTGlzdEVsZW1lbnQuaCAqLzsgfTsKKwkJRjVDQzQyREMxMkY4MDFDQTAwRDVGN0UzIC8q
IExvY2FsaXplZE51bWJlck1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEY1Q0M0MkRCMTJGODAxQ0EwMEQ1RjdFMyAvKiBMb2NhbGl6ZWROdW1iZXJN
YWMubW0gKi87IH07CiAJCUY1RDNBNTdDMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50
cy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNUQz
QTU3QTEwNkI4M0IzMDA1NDUyOTcgLyogRGF0ZUNvbXBvbmVudHMuY3BwICovOyB9OwogCQlGNUQz
QTU3RDEwNkI4M0IzMDA1NDUyOTcgLyogRGF0ZUNvbXBvbmVudHMuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY1RDNBNTdCMTA2QjgzQjMwMDU0NTI5NyAv
KiBEYXRlQ29tcG9uZW50cy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCUY3QTAzNEM0MTI2QkY2QkUwMDdEQzE5RSAvKiBGb250T3JpZW50YXRpb24u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEY3QTAzNEMz
MTI2QkY2QkUwMDdEQzE5RSAvKiBGb250T3JpZW50YXRpb24uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTIwMDIsNyArMTIwMDIsNiBAQAogCQlG
NEVBRjRBQzEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6ZXIuY3BwOyBwYXRo
ID0gb3BlbnR5cGUvT3BlblR5cGVTYW5pdGl6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlGNEVBRjRBRDEwQzc0MkIxMDA5MTAwRDMgLyogT3BlblR5cGVTYW5pdGl6ZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gT3BlblR5cGVTYW5pdGl6ZXIuaDsgcGF0
aCA9IG9wZW50eXBlL09wZW5UeXBlU2FuaXRpemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTG9jYWxpemVkTnVtYmVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUY1MTQyQzZBMTIzRjEyQzUwMEY1QkQ0QyAvKiBMb2NhbGl6
ZWROdW1iZXJOb25lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExv
Y2FsaXplZE51bWJlck5vbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlGNTIz
RDIzQjAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxEb2N1bWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9Owog
CQlGNTIzRDIzQzAyREU0Mzk2MDE4NjM1Q0EgLyogSFRNTERvY3VtZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhUTUxEb2N1bWVudC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKIAkJ
RjUyM0QyM0UwMkRFNDM5NjAxODYzNUNBIC8qIEhUTUxFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxFbGVtZW50LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07
CkBAIC0xMjA4OCw2ICsxMjA4Nyw3IEBACiAJCUY1QzI4NjkzMDI4NDZEQ0QwMTg2MzVDQSAvKiBB
cHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yayAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHdyYXBwZXIuZnJhbWV3b3JrOyBuYW1lID0gQXBwbGljYXRp
b25TZXJ2aWNlcy5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jrcy9B
cHBsaWNhdGlvblNlcnZpY2VzLmZyYW1ld29yazsgc291cmNlVHJlZSA9ICI8YWJzb2x1dGU+Ijsg
fTsKIAkJRjVDMjg2OTQwMjg0NkRDRDAxODYzNUNBIC8qIENhcmJvbi5mcmFtZXdvcmsgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB3cmFwcGVyLmZyYW1l
d29yazsgbmFtZSA9IENhcmJvbi5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJh
bWV3b3Jrcy9DYXJib24uZnJhbWV3b3JrOyBzb3VyY2VUcmVlID0gIjxhYnNvbHV0ZT4iOyB9Owog
CQlGNUMyODY5NTAyODQ2RENEMDE4NjM1Q0EgLyogQ29jb2EuZnJhbWV3b3JrICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gd3JhcHBlci5mcmFtZXdvcms7
IG5hbWUgPSBDb2NvYS5mcmFtZXdvcms7IHBhdGggPSAvU3lzdGVtL0xpYnJhcnkvRnJhbWV3b3Jr
cy9Db2NvYS5mcmFtZXdvcms7IHNvdXJjZVRyZWUgPSAiPGFic29sdXRlPiI7IH07CisJCUY1Q0M0
MkRCMTJGODAxQ0EwMEQ1RjdFMyAvKiBMb2NhbGl6ZWROdW1iZXJNYWMubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBMb2NhbGl6ZWROdW1iZXJNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1RDNBNTdBMTA2QjgzQjMwMDU0NTI5NyAvKiBEYXRl
Q29tcG9uZW50cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEYXRl
Q29tcG9uZW50cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUY1RDNBNTdCMTA2
QjgzQjMwMDU0NTI5NyAvKiBEYXRlQ29tcG9uZW50cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBEYXRlQ29tcG9uZW50cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlGN0EwMzRDMzEyNkJGNkJFMDA3REMxOUUgLyogRm9udE9yaWVudGF0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRPcmllbnRhdGlvbi5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTc1ODMsNyArMTc1ODMsNiBAQAogCQkJCTg5QjVFQTlGMTFFODAw
M0QwMEYyMzY3RSAvKiBMaW5lRW5kaW5nLmNwcCAqLywKIAkJCQk4OUI1RUFBMDExRTgwMDNEMDBG
MjM2N0UgLyogTGluZUVuZGluZy5oICovLAogCQkJCUY1MTQyQzY4MTIzRjEyQjAwMEY1QkQ0QyAv
KiBMb2NhbGl6ZWROdW1iZXIuaCAqLywKLQkJCQlGNTE0MkM2QTEyM0YxMkM1MDBGNUJENEMgLyog
TG9jYWxpemVkTnVtYmVyTm9uZS5jcHAgKi8sCiAJCQkJQkM3NkFDMTEwREQ3QUQ1QzAwNDE1RjM0
IC8qIFBhcnNlclV0aWxpdGllcy5oICovLAogCQkJCUIyQzNEOUZCMEQwMDZDMUQwMEVGNkYyNiAv
KiBQbGF0Zm9ybVN0cmluZy5oICovLAogCQkJCUIyQzNEOUZDMEQwMDZDMUQwMEVGNkYyNiAvKiBS
ZWd1bGFyRXhwcmVzc2lvbi5jcHAgKi8sCkBAIC0xNzYzMiw2ICsxNzYzMSw3IEBACiAJCQkJQjJB
RkZDODUwRDAwQTVERjAwMzAwNzREIC8qIGNoYXJhY3Rlci1zZXRzLnR4dCAqLywKIAkJCQlCMkMz
RDlGQTBEMDA2QzFEMDBFRjZGMjYgLyogQ2hhcnNldERhdGEuaCAqLywKIAkJCQkzNzVDRDIzOTEx
OUQ0NEVBMDBBMkE4NTkgLyogSHlwaGVuYXRpb25NYWMubW0gKi8sCisJCQkJRjVDQzQyREIxMkY4
MDFDQTAwRDVGN0UzIC8qIExvY2FsaXplZE51bWJlck1hYy5tbSAqLywKIAkJCQlCMkFGRkM4NjBE
MDBBNURGMDAzMDA3NEQgLyogbWFjLWVuY29kaW5ncy50eHQgKi8sCiAJCQkJQjJBRkZDODcwRDAw
QTVERjAwMzAwNzREIC8qIG1ha2UtY2hhcnNldC10YWJsZS5wbCAqLywKIAkJCQlCMkFGRkM4ODBE
MDBBNURGMDAzMDA3NEQgLyogU2hhcGVBcmFiaWMuYyAqLywKQEAgLTI0MzUwLDcgKzI0MzUwLDcg
QEAKIAkJCQk3RUU2ODQ2ODEyRDI2RTM4MDBFNzk0MTUgLyogTG9hZGVyUnVuTG9vcENGLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTA2RTgxRUVDMEFCNURBOTcwMEM4NzgzNyAvKiBMb2NhbEN1cnJl
bnRHcmFwaGljc0NvbnRleHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk4OTg3ODU2NzEyMkNBMDY0
MDAzQUFCREEgLyogTG9jYWxGaWxlU3lzdGVtLmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUY1MTQy
QzZCMTIzRjEyQzUwMEY1QkQ0QyAvKiBMb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBpbiBTb3VyY2Vz
ICovLAorCQkJCUY1Q0M0MkRDMTJGODAxQ0EwMEQ1RjdFMyAvKiBMb2NhbGl6ZWROdW1iZXJNYWMu
bW0gaW4gU291cmNlcyAqLywKIAkJCQlDMDQ2RTFBQzEyMDhBOUZFMDBCQTJDRjcgLyogTG9jYWxp
emVkU3RyaW5ncy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFGMjMxNzBEQzE2MERBMDA0RjAw
MzIgLyogTG9jYWxTdG9yYWdlVGFzay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTFGMjMxOTBE
QzE2MERBMDA0RjAwMzIgLyogTG9jYWxTdG9yYWdlVGhyZWFkLmNwcCBpbiBTb3VyY2VzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0lucHV0RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0lucHV0RWxlbWVudC5oCmluZGV4IGQ2MTg5MGYzNjAzNGQ3NmMyYzE2YWIzMGQ4
MGZmODY3NDIyMjIxOTMuLjgzOGFkZjVhYWY1ODM4OTVmY2MxNmQwOWU0OTMzMjRjNjUwYzM1Yjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9JbnB1dEVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vSW5wdXRFbGVtZW50LmgKQEAgLTYxLDYgKzYxLDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWYWx1ZUZvclVzZXIoY29uc3QgU3RyaW5nJikgPSAwOwogICAg
IC8vIFRoZSB2YWx1ZSB3aGljaCBpcyBkcmF3biBieSBhIHJlbmRlcmVyLgogICAgIHZpcnR1YWwg
U3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIFN0cmluZyBjb252
ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdCA9IDA7CiAKICAgICAvLyBS
ZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBzdHJpbmcgY2FuIGJlIHNldCBhcyB0aGUgdmFs
dWUgb2YgSW5wdXRFbGVtZW50LgogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2VwdGFibGVWYWx1ZShj
b25zdCBTdHJpbmcmKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVt
ZW50LmNwcAppbmRleCBhMjIxZDNlNWE5ZmYyMTYyMzQwNTk1YWZmZDEzNDZiMjA5ZjZiZTJmLi5l
MTA5NTc4ZjMyYjIzMzE4MWUwYmI4NjQzOTk3MjY4MGRmM2QwNzNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTExNTAsNiArMTE1MCwxMSBAQCBTdHJpbmcg
SFRNTElucHV0RWxlbWVudDo6dmlzaWJsZVZhbHVlKCkgY29uc3QKICAgICByZXR1cm4gbV9pbnB1
dFR5cGUtPnZpc2libGVWYWx1ZSgpOwogfQogCitTdHJpbmcgSFRNTElucHV0RWxlbWVudDo6Y29u
dmVydEZyb21WaXNpYmxlVmFsdWUoY29uc3QgU3RyaW5nJiB2aXNpYmxlVmFsdWUpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5jb252ZXJ0RnJvbVZpc2libGVWYWx1ZSh2aXNpYmxl
VmFsdWUpOworfQorCiBib29sIEhUTUxJbnB1dEVsZW1lbnQ6OmlzQWNjZXB0YWJsZVZhbHVlKGNv
bnN0IFN0cmluZyYgcHJvcG9zZWRWYWx1ZSkgY29uc3QKIHsKICAgICByZXR1cm4gbV9pbnB1dFR5
cGUtPmlzQWNjZXB0YWJsZVZhbHVlKHByb3Bvc2VkVmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbnB1dEVsZW1lbnQuaAppbmRleCA3NTc5OTJhZGE2NzU0MjYwZjYwMTQzMzEwNzMxYmRkOGZj
MDhjMGE1Li40MGViMTk1YThiMGVjNDI1ZWY4Yzk1NDAyOTg5MzBmYWQxMWZiYzYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjYwLDYgKzI2MCw3IEBAIHByaXZh
dGU6CiAgICAgdmlydHVhbCB2b2lkIGNhY2hlU2VsZWN0aW9uKGludCBzdGFydCwgaW50IGVuZCk7
CiAKICAgICB2aXJ0dWFsIFN0cmluZyB2aXNpYmxlVmFsdWUoKSBjb25zdDsKKyAgICB2aXJ0dWFs
IFN0cmluZyBjb252ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNBY2NlcHRhYmxlVmFsdWUoY29uc3QgU3RyaW5nJikgY29uc3Q7CiAg
ICAgdmlydHVhbCBTdHJpbmcgc2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAg
ICB2aXJ0dWFsIGJvb2wgaGFzVW5hY2NlcHRhYmxlVmFsdWUoKSBjb25zdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW5wdXRUeXBlLmNwcAppbmRleCBiMmNjN2RlODFkMDZhN2E5ZWFiNjk0MTk4NWUzNTFjZDc3YjQ0
YWUwLi5lNzA4YTM1NjI4ZjAxZTZlNWQzOWNjNmFlMDkzMzEyOTI1OGI3NDI2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9JbnB1dFR5cGUuY3BwCkBAIC01MTUsNiArNTE1LDExIEBAIFN0cmluZyBJbnB1dFR5cGU6
OnZpc2libGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0dXJuIGVsZW1lbnQoKS0+dmFsdWUoKTsKIH0K
IAorU3RyaW5nIElucHV0VHlwZTo6Y29udmVydEZyb21WaXNpYmxlVmFsdWUoY29uc3QgU3RyaW5n
JiB2aXNpYmxlVmFsdWUpIGNvbnN0Cit7CisgICAgcmV0dXJuIHZpc2libGVWYWx1ZTsKK30KKwog
Ym9vbCBJbnB1dFR5cGU6OmlzQWNjZXB0YWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpCiB7CiAgICAg
cmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCBiMGE3NWE3YzM5OTQ5NjBj
NDBhMzkyZjc4NGYzMmY1ZDA2MGQ3NTc2Li4yZTkxMzg3OWIzMmE0OTA2OTVhYTgxODIyNzIzNTNh
NjMyNjE0MzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTE0OSw2ICsxNDksNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBTdHJpbmcgdmFsdWVNaXNzaW5nVGV4dCgpIGNvbnN0OwogICAg
IHZpcnR1YWwgYm9vbCBjYW5TZXRTdHJpbmdWYWx1ZSgpIGNvbnN0OwogICAgIHZpcnR1YWwgU3Ry
aW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnZlcnRGcm9t
VmlzaWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0Fj
Y2VwdGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKTsKICAgICAvLyBSZXR1cmluZyB0aGUgbnVsbCBz
dHJpbmcgbWVhbnMgInVzZSB0aGUgZGVmYXVsdCB2YWx1ZS4iCiAgICAgdmlydHVhbCBTdHJpbmcg
c2FuaXRpemVWYWx1ZShjb25zdCBTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvTnVtYmVySW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5w
dXRUeXBlLmNwcAppbmRleCAxZDdmOTQxZWRkN2ZmOTJjZTVkZWZhZDkzZGQ1ZDkwYzhjYTkwZDNm
Li4zMzk3MjQ4OTIzMDM3MDUyYzA5ZGY4NWM0YTk2NzJlM2E2YTI2ZmQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuY3BwCkBAIC01MywxOCArNTMsNiBAQCB1c2luZyBuYW1l
c3BhY2Ugc3RkOwogc3RhdGljIGNvbnN0IGRvdWJsZSBudW1iZXJEZWZhdWx0U3RlcCA9IDEuMDsK
IHN0YXRpYyBjb25zdCBkb3VibGUgbnVtYmVyU3RlcFNjYWxlRmFjdG9yID0gMS4wOwogCi0vLyBS
ZXR1cm5zIHRydWUgaWYgdGhlIHNwZWNpZmllZCBjaGFyYWN0ZXIgY2FuIGJlIGEgcGFydCBvZiAn
dmFsaWQgZmxvYXRpbmcKLS8vIHBvaW50IG51bWJlcicgb2YgSFRNTDUuCi1zdGF0aWMgYm9vbCBp
c0hUTUxOdW1iZXJDaGFyYWN0ZXIoVUNoYXIgY2gpCi17Ci0gICAgcmV0dXJuIGNoID09ICcrJyB8
fCBjaCA9PSAnLScgfHwgY2ggPT0gJy4nIHx8IGNoID09ICdlJyB8fCBjaCA9PSAnRScgfHwgaXNB
U0NJSURpZ2l0KGNoKTsKLX0KLQotc3RhdGljIGJvb2wgaXNOdW1iZXJDaGFyYWN0ZXIoVUNoYXIg
Y2gpCi17Ci0gICAgcmV0dXJuIGlzTG9jYWxpemVkTnVtYmVyQ2hhcmFjdGVyKGNoKSB8fCBpc0hU
TUxOdW1iZXJDaGFyYWN0ZXIoY2gpOwotfQotCiBQYXNzT3duUHRyPElucHV0VHlwZT4gTnVtYmVy
SW5wdXRUeXBlOjpjcmVhdGUoSFRNTElucHV0RWxlbWVudCogZWxlbWVudCkKIHsKICAgICByZXR1
cm4gYWRvcHRQdHIobmV3IE51bWJlcklucHV0VHlwZShlbGVtZW50KSk7CkBAIC0xODMsMzAgKzE3
MSw2IEBAIHZvaWQgTnVtYmVySW5wdXRUeXBlOjpoYW5kbGVLZXlkb3duRXZlbnQoS2V5Ym9hcmRF
dmVudCogZXZlbnQpCiAgICAgICAgIFRleHRGaWVsZElucHV0VHlwZTo6aGFuZGxlS2V5ZG93bkV2
ZW50KGV2ZW50KTsKIH0KIAotdm9pZCBOdW1iZXJJbnB1dFR5cGU6OmhhbmRsZUJlZm9yZVRleHRJ
bnNlcnRlZEV2ZW50KEJlZm9yZVRleHRJbnNlcnRlZEV2ZW50KiBldmVudCkKLXsKLSAgICB1bnNp
Z25lZCBsZW5ndGggPSBldmVudC0+dGV4dCgpLmxlbmd0aCgpOwotICAgIGJvb2wgaGFzSW52YWxp
ZENoYXIgPSBmYWxzZTsKLSAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kp
IHsKLSAgICAgICAgaWYgKCFpc051bWJlckNoYXJhY3RlcihldmVudC0+dGV4dCgpW2ldKSkgewot
ICAgICAgICAgICAgaGFzSW52YWxpZENoYXIgPSB0cnVlOwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKGhhc0ludmFsaWRDaGFyKSB7Ci0gICAgICAgIFZlY3Rv
cjxVQ2hhcj4gc3RyaXBwZWQ7Ci0gICAgICAgIHN0cmlwcGVkLnJlc2VydmVDYXBhY2l0eShsZW5n
dGgpOwotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGVuZ3RoOyArK2kpIHsKLSAg
ICAgICAgICAgIFVDaGFyIGNoID0gZXZlbnQtPnRleHQoKVtpXTsKLSAgICAgICAgICAgIGlmICgh
aXNOdW1iZXJDaGFyYWN0ZXIoY2gpKQotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgc3RyaXBwZWQuYXBwZW5kKGNoKTsKLSAgICAgICAgfQotICAgICAgICBldmVudC0+c2V0
VGV4dChTdHJpbmc6OmFkb3B0KHN0cmlwcGVkKSk7Ci0gICAgfQotICAgIFRleHRGaWVsZElucHV0
VHlwZTo6aGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoZXZlbnQpOwotfQotCiB2b2lkIE51
bWJlcklucHV0VHlwZTo6aGFuZGxlV2hlZWxFdmVudChXaGVlbEV2ZW50KiBldmVudCkKIHsKICAg
ICBoYW5kbGVXaGVlbEV2ZW50Rm9yU3BpbkJ1dHRvbihldmVudCk7CkBAIC0yNjQsNiArMjI4LDE0
IEBAIFN0cmluZyBOdW1iZXJJbnB1dFR5cGU6OnZpc2libGVWYWx1ZSgpIGNvbnN0CiAgICAgcmV0
dXJuIGxvY2FsaXplZC5pc0VtcHR5KCkgPyBjdXJyZW50VmFsdWUgOiBsb2NhbGl6ZWQ7CiB9CiAK
K1N0cmluZyBOdW1iZXJJbnB1dFR5cGU6OmNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKGNvbnN0IFN0
cmluZyYgdmlzaWJsZVZhbHVlKSBjb25zdAoreworICAgIGlmICh2aXNpYmxlVmFsdWUuaXNFbXB0
eSgpKQorICAgICAgICByZXR1cm4gdmlzaWJsZVZhbHVlOworICAgIGRvdWJsZSBwYXJzZWROdW1i
ZXIgPSBwYXJzZUxvY2FsaXplZE51bWJlcih2aXNpYmxlVmFsdWUpOworICAgIHJldHVybiBpc2Zp
bml0ZShwYXJzZWROdW1iZXIpID8gc2VyaWFsaXplRm9yTnVtYmVyVHlwZShwYXJzZWROdW1iZXIp
IDogdmlzaWJsZVZhbHVlOworfQorCiBib29sIE51bWJlcklucHV0VHlwZTo6aXNBY2NlcHRhYmxl
VmFsdWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKQogewogICAgIHJldHVybiBwcm9wb3Nl
ZFZhbHVlLmlzRW1wdHkoKSB8fCBpc2Zpbml0ZShwYXJzZUxvY2FsaXplZE51bWJlcihwcm9wb3Nl
ZFZhbHVlKSkgfHwgcGFyc2VUb0RvdWJsZUZvck51bWJlclR5cGUocHJvcG9zZWRWYWx1ZSwgMCk7
CkBAIC0yNzMsMTEgKzI0NSw2IEBAIFN0cmluZyBOdW1iZXJJbnB1dFR5cGU6OnNhbml0aXplVmFs
dWUoY29uc3QgU3RyaW5nJiBwcm9wb3NlZFZhbHVlKQogewogICAgIGlmIChwcm9wb3NlZFZhbHVl
LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIHByb3Bvc2VkVmFsdWU7Ci0gICAgLy8gVHJ5IHRv
IHBhcnNlIHRoZSB2YWx1ZSBhcyBhIGxvY2FsaXplZCBudW1iZXIsIHRoZW4gdHJ5IHRvIHBhcnNl
IGl0IGFzCi0gICAgLy8gdGhlIHN0YW5kYXJkIGZvcm1hdC4KLSAgICBkb3VibGUgcGFyc2VkVmFs
dWUgPSBwYXJzZUxvY2FsaXplZE51bWJlcihwcm9wb3NlZFZhbHVlKTsKLSAgICBpZiAoaXNmaW5p
dGUocGFyc2VkVmFsdWUpKQotICAgICAgICByZXR1cm4gc2VyaWFsaXplRm9yTnVtYmVyVHlwZShw
YXJzZWRWYWx1ZSk7CiAgICAgcmV0dXJuIHBhcnNlVG9Eb3VibGVGb3JOdW1iZXJUeXBlKHByb3Bv
c2VkVmFsdWUsIDApID8gcHJvcG9zZWRWYWx1ZSA6IGVtcHR5QXRvbS5zdHJpbmcoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvTnVtYmVySW5wdXRUeXBlLmgKaW5kZXggOWQ5NzEzNDRmODNhZDUwMDhh
YzY5ZWM5Mjg5M2Q5ZmU2NjViMzU5NC4uZWE1ZGMxMDRmMDEwNTRhZThlNjI4NTc4MjM0NGQ1Nzkx
ZTAwMjU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9OdW1iZXJJbnB1dFR5cGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL051bWJlcklucHV0VHlwZS5oCkBAIC01Nyw3ICs1
Nyw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBkb3VibGUgZGVmYXVsdFN0ZXAoKSBjb25zdDsK
ICAgICB2aXJ0dWFsIGRvdWJsZSBzdGVwU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFs
IHZvaWQgaGFuZGxlS2V5ZG93bkV2ZW50KEtleWJvYXJkRXZlbnQqKTsKLSAgICB2aXJ0dWFsIHZv
aWQgaGFuZGxlQmVmb3JlVGV4dEluc2VydGVkRXZlbnQoQmVmb3JlVGV4dEluc2VydGVkRXZlbnQq
KTsKICAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlV2hlZWxFdmVudChXaGVlbEV2ZW50Kik7CiAgICAg
dmlydHVhbCBkb3VibGUgcGFyc2VUb0RvdWJsZShjb25zdCBTdHJpbmcmLCBkb3VibGUpIGNvbnN0
OwogICAgIHZpcnR1YWwgZG91YmxlIHBhcnNlVG9Eb3VibGVXaXRoRGVjaW1hbFBsYWNlcyhjb25z
dCBTdHJpbmcmLCBkb3VibGUsIHVuc2lnbmVkKikgY29uc3Q7CkBAIC02NSw2ICs2NCw3IEBAIHBy
aXZhdGU6CiAgICAgdmlydHVhbCBkb3VibGUgYWNjZXB0YWJsZUVycm9yKGRvdWJsZSkgY29uc3Q7
CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUJsdXJFdmVudCgpOwogICAgIHZpcnR1YWwgU3RyaW5n
IHZpc2libGVWYWx1ZSgpIGNvbnN0OworICAgIHZpcnR1YWwgU3RyaW5nIGNvbnZlcnRGcm9tVmlz
aWJsZVZhbHVlKGNvbnN0IFN0cmluZyYpIGNvbnN0OwogICAgIHZpcnR1YWwgYm9vbCBpc0FjY2Vw
dGFibGVWYWx1ZShjb25zdCBTdHJpbmcmKTsKICAgICB2aXJ0dWFsIFN0cmluZyBzYW5pdGl6ZVZh
bHVlKGNvbnN0IFN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBoYXNVbmFjY2VwdGFibGVWYWx1
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbWFudWFsLXRlc3RzL2lucHV0LW51bWJl
ci1sb2NhbGl6YXRpb24uaHRtbCBiL1NvdXJjZS9XZWJDb3JlL21hbnVhbC10ZXN0cy9pbnB1dC1u
dW1iZXItbG9jYWxpemF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDY0N2FhNTdkNDIzODc5MjQxMTM0
ZDQxYmYwNDg3NmZjMmNmNTVhMAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL21h
bnVhbC10ZXN0cy9pbnB1dC1udW1iZXItbG9jYWxpemF0aW9uLmh0bWwKQEAgLTAsMCArMSwzMCBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPk51bWJlciB0eXBlIGlu
cHV0IHNob3dzIGFuZCBhY2NlcHRzIGxvY2FsaXplZCBudW1iZXJzPC90aXRsZT4KKzxzdHlsZT4K
KzppbnZhbGlkIHsKKyAgYm9yZGVyLWNvbG9yOiByZWQ7CisgIC13ZWJraXQtYm94LXNoYWRvdzog
NHB4IDRweCA4cHggI2ZmODg4ODsKK30KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYg
aWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8cD5PdXRwdXQgdGVzdDogVGhlIGZvbGxvd2luZyB0ZXh0
IGZpZWxkIHNob3VsZCBoYXZlIGEgbG9jYWxpemVkIHJlcHJlc2VudGF0aW9uIGZvciAiLTEyMzQu
NTYiLgorZS5nLiAiLTEsMjM0LjU2IiBmb3IgZW5fVVMgbG9jYWxlLCAiLTEuMjM0LDU2IiBmb3Ig
ZnJfRlIgbG9jYWxlLjwvcD4KKzxkaXY+PGlucHV0IHR5cGU9bnVtYmVyIHZhbHVlPSItMTIzNC41
NiIgc3RlcD1hbnk+PC9kaXY+CisKKzxwPklucHV0IHRlc3Q6IFR5cGUgYSBsb2NhbGl6ZWQgcmVw
cmVzZW50YXRpb24gb2YgYSBudW1iZXIgaW50byB0aGUgZm9sbG93aW5nIHRleHQgZmllbGQuCitZ
b3UnbGwgc2VlIGFuIGVxdWl2YWxlbnQgbnVtYmVyIGluIHRoZSBzdGFuZGFyZCBmb3JtYXQgb24g
dGhlIGJvdHRvbSBvZiB0aGUgdGV4dCBmaWVsZC48L3A+Cis8ZGl2PjxpbnB1dCB0eXBlPW51bWJl
ciBpZD10YXJnZXQgc3RlcD1hbnkgb25pbnB1dD0iaGFuZGxlSW5wdXQoKSI+PC9kaXY+Cis8ZGl2
PlN0YW5kYXJkIGZvcm1hdDogPG91dHB1dCBpZD1vdXRwdXQ+PC9vdXRwdXQ+PC9kaXY+CisKKzxz
Y3JpcHQ+CitmdW5jdGlvbiBoYW5kbGVJbnB1dCgpIHsKKyAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ291dHB1dCcpLnZhbHVlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLnZh
bHVlOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXIuaAppbmRleCA0NTg3M2I4YjdkOWY0Mzk3NDhj
ZDViMzM0Yjc3YmZiYmE1ZjNmMDBiLi5kNzA1NDFmMDAxZWNiZDYxNGNjNGE3YzFlYzdiZjU0ZGY5
NDQ5NzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L0xvY2FsaXpl
ZE51bWJlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVt
YmVyLmgKQEAgLTQ5LDExICs0OSw2IEBAIGRvdWJsZSBwYXJzZUxvY2FsaXplZE51bWJlcihjb25z
dCBTdHJpbmcmKTsKIC8vIHJldHVybiBhbiBlbXB0eSBzdHJpbmcuCiBTdHJpbmcgZm9ybWF0TG9j
YWxpemVkTnVtYmVyKGRvdWJsZSk7CiAKLS8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgaW5wdXQgY2hh
cmFjdGVyIGNhbiBiZSB1c2VkIHRvIHJlcHJlc2VudCBhCi0vLyBudW1iZXIgaW4gdGhlIGJyb3dz
ZXIgbG9jYWxlLiBGb3IgZXhhbXBsZSwgdGhpcyBzaG91bGQgcmV0dXJuIHRydWUgZm9yIDAtOSAu
Ci0vLyAsICsgLSBmb3IgZW4tVVMgbG9jYWxlLgotYm9vbCBpc0xvY2FsaXplZE51bWJlckNoYXJh
Y3RlcihVQ2hhcjMyKTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gTG9j
YWxpemVkTnVtYmVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQv
TG9jYWxpemVkTnVtYmVySUNVLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9j
YWxpemVkTnVtYmVySUNVLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YTgyZGQ2MWFhYmU1NGU1MmI1MmY2NTY1
ZDYwODQyNWFiZDdlZmRmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJJQ1UuY3BwCkBAIC0wLDAgKzEsNzUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJp
YnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhl
IG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBz
cGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICog
IkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiTG9jYWxpemVkTnVtYmVyLmgiCisKKyNpbmNsdWRlIDxsaW1p
dHM+CisjaW5jbHVkZSA8dW5pY29kZS9udW1mbXQuaD4KKyNpbmNsdWRlIDx3dGYvUGFzc093blB0
ci5oPgorCit1c2luZyBuYW1lc3BhY2Ugc3RkOworCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0
YXRpYyBpbmxpbmUgUGFzc093blB0cjxOdW1iZXJGb3JtYXQ+IGNyZWF0ZUZvcm1hdHRlckZvckN1
cnJlbnRMb2NhbGUoKQoreworICAgIFVFcnJvckNvZGUgc3RhdHVzID0gVV9aRVJPX0VSUk9SOwor
ICAgIHJldHVybiBhZG9wdFB0cihOdW1iZXJGb3JtYXQ6OmNyZWF0ZUluc3RhbmNlKHN0YXR1cykp
OworfQorCitkb3VibGUgcGFyc2VMb2NhbGl6ZWROdW1iZXIoY29uc3QgU3RyaW5nJiBudW1iZXJT
dHJpbmcpCit7CisgICAgaWYgKG51bWJlclN0cmluZy5pc0VtcHR5KCkpCisgICAgICAgIHJldHVy
biBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICBPd25QdHI8TnVtYmVy
Rm9ybWF0PiBmb3JtYXR0ZXIgPSBjcmVhdGVGb3JtYXR0ZXJGb3JDdXJyZW50TG9jYWxlKCk7Cisg
ICAgaWYgKCFmb3JtYXR0ZXIpCisgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+
OjpxdWlldF9OYU4oKTsKKyAgICBVbmljb2RlU3RyaW5nIG51bWJlclVuaWNvZGVTdHJpbmcobnVt
YmVyU3RyaW5nLmNoYXJhY3RlcnMoKSwgbnVtYmVyU3RyaW5nLmxlbmd0aCgpKTsKKyAgICBVRXJy
b3JDb2RlIHN0YXR1cyA9IFVfWkVST19FUlJPUjsKKyAgICBGb3JtYXR0YWJsZSByZXN1bHQ7Cisg
ICAgZm9ybWF0dGVyLT5wYXJzZShudW1iZXJVbmljb2RlU3RyaW5nLCByZXN1bHQsIHN0YXR1cyk7
CisgICAgaWYgKHN0YXR1cyAhPSBVX1pFUk9fRVJST1IpCisgICAgICAgIHJldHVybiBudW1lcmlj
X2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4oKTsKKyAgICBkb3VibGUgbnVtZXJpY1Jlc3VsdCA9
IHJlc3VsdC5nZXREb3VibGUoc3RhdHVzKTsKKyAgICByZXR1cm4gc3RhdHVzID09IFVfWkVST19F
UlJPUiA/IG51bWVyaWNSZXN1bHQgOiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9OYU4o
KTsKK30KKworU3RyaW5nIGZvcm1hdExvY2FsaXplZE51bWJlcihkb3VibGUgbnVtYmVyKQorewor
ICAgIE93blB0cjxOdW1iZXJGb3JtYXQ+IGZvcm1hdHRlciA9IGNyZWF0ZUZvcm1hdHRlckZvckN1
cnJlbnRMb2NhbGUoKTsKKyAgICBpZiAoIWZvcm1hdHRlcikKKyAgICAgICAgcmV0dXJuIFN0cmlu
ZygpOworICAgIFVuaWNvZGVTdHJpbmcgcmVzdWx0OworICAgIGZvcm1hdHRlci0+Zm9ybWF0KG51
bWJlciwgcmVzdWx0KTsKKyAgICByZXR1cm4gU3RyaW5nKHJlc3VsdC5nZXRCdWZmZXIoKSwgcmVz
dWx0Lmxlbmd0aCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvTG9jYWxpemVkTnVtYmVyTm9uZS5jcHAKaW5kZXgg
NmYwMTdlOWY4OTQ5OGUyNWY2MjZhNDg5M2M1MWY4ODgyOTJkMzhjNC4uNzI5ZjJmMTk0NDJjYTBj
YmM5ZWZiNmRiMzAxMWRkOTY0ZGNlODU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9Mb2NhbGl6ZWROdW1iZXJOb25lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS90ZXh0L0xvY2FsaXplZE51bWJlck5vbmUuY3BwCkBAIC00Nyw5ICs0Nyw0IEBAIFN0
cmluZyBmb3JtYXRMb2NhbGl6ZWROdW1iZXIoZG91YmxlKQogICAgIHJldHVybiBTdHJpbmcoKTsK
IH0KIAotYm9vbCBpc0xvY2FsaXplZE51bWJlckNoYXJhY3RlcihVQ2hhcjMyKQotewotICAgIHJl
dHVybiBmYWxzZTsKLX0KLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxpemVkTnVtYmVyTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9tYWMvTG9jYWxpemVkTnVtYmVyTWFjLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmJiY2VmMDgyOTI2ZTM2ODcxNGMyNjEyNTMyMTk3MGZkNDMyNzU3NTYKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L21hYy9Mb2NhbGl6ZWROdW1i
ZXJNYWMubW0KQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZQorICogbWV0OgorICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisg
KiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyCisgKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0
aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250
cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2
ZWQgZnJvbQorICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4g
cGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZ
UklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBU
TywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SCisgKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgVEhFIENPUFlSSUdIVAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwKKyAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJM
b2NhbGl6ZWROdW1iZXIuaCIKKworI2luY2x1ZGUgPGxpbWl0cz4KKyNpbXBvcnQgPEZvdW5kYXRp
b24vTlNOdW1iZXJGb3JtYXR0ZXIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CisK
K3VzaW5nIG5hbWVzcGFjZSBzdGQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworZG91YmxlIHBh
cnNlTG9jYWxpemVkTnVtYmVyKGNvbnN0IFN0cmluZyYgbnVtYmVyU3RyaW5nKQoreworICAgIGlm
IChudW1iZXJTdHJpbmcuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gbnVtZXJpY19saW1pdHM8
ZG91YmxlPjo6cXVpZXRfTmFOKCk7CisgICAgTlNOdW1iZXJGb3JtYXR0ZXIqIGZvcm1hdHRlciA9
IFtbW05TTnVtYmVyRm9ybWF0dGVyIGFsbG9jXSBpbml0XSBhdXRvcmVsZWFzZV07CisgICAgW2Zv
cm1hdHRlciBzZXRMb2NhbGl6ZXNGb3JtYXQ6WUVTXTsKKyAgICBbZm9ybWF0dGVyIHNldE51bWJl
clN0eWxlOk5TTnVtYmVyRm9ybWF0dGVyRGVjaW1hbFN0eWxlXTsKKyAgICBOU051bWJlciogbnVt
ID0gW2Zvcm1hdHRlciBudW1iZXJGcm9tU3RyaW5nOm51bWJlclN0cmluZ107CisgICAgaWYgKG51
bSA9PSBuaWwpCisgICAgICAgIHJldHVybiBudW1lcmljX2xpbWl0czxkb3VibGU+OjpxdWlldF9O
YU4oKTsKKyAgICByZXR1cm4gW251bSBkb3VibGVWYWx1ZV07Cit9CisKK1N0cmluZyBmb3JtYXRM
b2NhbGl6ZWROdW1iZXIoZG91YmxlIG51bWJlcikKK3sKKyAgICBOU051bWJlciogbnVtID0gW05T
TnVtYmVyIG51bWJlcldpdGhEb3VibGU6bnVtYmVyXTsKKyAgICBOU051bWJlckZvcm1hdHRlciog
Zm9ybWF0dGVyID0gW1tbTlNOdW1iZXJGb3JtYXR0ZXIgYWxsb2NdIGluaXRdIGF1dG9yZWxlYXNl
XTsKKyAgICBbZm9ybWF0dGVyIHNldExvY2FsaXplc0Zvcm1hdDpZRVNdOworICAgIFtmb3JtYXR0
ZXIgc2V0TnVtYmVyU3R5bGU6TlNOdW1iZXJGb3JtYXR0ZXJEZWNpbWFsU3R5bGVdOworICAgIHJl
dHVybiBTdHJpbmcoW2Zvcm1hdHRlciBzdHJpbmdGcm9tTnVtYmVyOm51bV0pOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUZXh0Q29udHJvbFNpbmdsZUxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKaW5kZXggNjg5YjYyNDdhNTQyNzIz
Y2JhOWQ0OTgxOTViZmMxZTlkYzliZDM0NS4uNzE3YzU4ODJiODM5MjQ4YjBmZjc4MGYzOGI3MWEx
ZDhjMzk1YTY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRl
eHRDb250cm9sU2luZ2xlTGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZS5jcHAKQEAgLTE3NCw3ICsxNzQsNyBAQCB2b2lkIFJl
bmRlclRleHRDb250cm9sU2luZ2xlTGluZTo6c3VidHJlZUhhc0NoYW5nZWQoKQogICAgIC8vIHNh
bml0aXplVmFsdWUoKSBpcyBuZWVkZWQgYmVjYXVzZSBJTUUgaW5wdXQgZG9lc24ndCBkaXNwYXRj
aCBCZWZvcmVUZXh0SW5zZXJ0ZWRFdmVudC4KICAgICBTdHJpbmcgdmFsdWUgPSB0ZXh0KCk7CiAg
ICAgaWYgKGlucHV0LT5pc0FjY2VwdGFibGVWYWx1ZSh2YWx1ZSkpCi0gICAgICAgIGlucHV0LT5z
ZXRWYWx1ZUZyb21SZW5kZXJlcihpbnB1dC0+c2FuaXRpemVWYWx1ZSh2YWx1ZSkpOworICAgICAg
ICBpbnB1dC0+c2V0VmFsdWVGcm9tUmVuZGVyZXIoaW5wdXQtPnNhbml0aXplVmFsdWUoaW5wdXQt
PmNvbnZlcnRGcm9tVmlzaWJsZVZhbHVlKHZhbHVlKSkpOwogICAgIGlmIChub2RlKCktPmlzSFRN
TEVsZW1lbnQoKSkgewogICAgICAgICAvLyBSZWNhbGMgZm9yIDppbnZhbGlkIGFuZCBoYXNVbmFj
Y2VwdGFibGVWYWx1ZSgpIGNoYW5nZS4KICAgICAgICAgc3RhdGljX2Nhc3Q8SFRNTElucHV0RWxl
bWVudCo+KGlucHV0KS0+c2V0TmVlZHNTdHlsZVJlY2FsYygpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd21sL1dNTElucHV0RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvd21sL1dNTElu
cHV0RWxlbWVudC5oCmluZGV4IDZjNjY0MTBiY2Y3NmE5ZWZmYjE4ZWU1MzlkYjBhNjE3OTg5YTI1
M2UuLjExNjJhYzE5M2M3MzdlMTU0NmRiODYzOWUyNmQ3Y2I1ZTdkYWY0ZDUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dtbC9XTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93bWwvV01MSW5wdXRFbGVtZW50LmgKQEAgLTY0LDYgKzY0LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBzZXRWYWx1ZShjb25zdCBTdHJpbmcmLCBib29sIHNlbmRDaGFuZ2VFdmVudCA9
IGZhbHNlKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VmFsdWVGb3JVc2VyKGNvbnN0IFN0cmluZyYp
OwogICAgIHZpcnR1YWwgU3RyaW5nIHZpc2libGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIHZhbHVl
KCk7IH0KKyAgICB2aXJ0dWFsIFN0cmluZyBjb252ZXJ0RnJvbVZpc2libGVWYWx1ZShjb25zdCBT
dHJpbmcmIHZhbHVlKSBjb25zdCB7IHJldHVybiB2YWx1ZTsgfQogICAgIHZpcnR1YWwgdm9pZCBz
ZXRWYWx1ZUZyb21SZW5kZXJlcihjb25zdCBTdHJpbmcmKTsKIAogICAgIHZpcnR1YWwgYm9vbCBz
YXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHZhbHVlKSBjb25zdDsK
</data>
<flag name="review"
          id="76146"
          type_id="1"
          status="+"
          setter="dglazkov"
    />
          </attachment>
      

    </bug>

</bugzilla>