<?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>119356</bug_id>
          
          <creation_ts>2013-07-31 16:24:21 -0700</creation_ts>
          <short_desc>[Forms: color] &lt;input type=&apos;color&apos;&gt; popover color well implementation</short_desc>
          <delta_ts>2013-08-01 19:06:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>119420</blocked>
    
    <blocked>119421</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Ruth Fong">ruthiecftg</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bdakin</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>rniwa</cc>
    
    <cc>ruthiecftg</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>913524</commentid>
    <comment_count>0</comment_count>
    <who name="Ruth Fong">ruthiecftg</who>
    <bug_when>2013-07-31 16:24:21 -0700</bug_when>
    <thetext>This bug tracks implementing &lt;input type=&apos;color&apos;&gt; with a popover color well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913525</commentid>
    <comment_count>1</comment_count>
    <who name="Ruth Fong">ruthiecftg</who>
    <bug_when>2013-07-31 16:25:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/14411008&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913641</commentid>
    <comment_count>2</comment_count>
      <attachid>207899</attachid>
    <who name="Ruth Fong">ruthiecftg</who>
    <bug_when>2013-07-31 23:27:56 -0700</bug_when>
    <thetext>Created attachment 207899
Patch

first patch towards popover implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913642</commentid>
    <comment_count>3</comment_count>
      <attachid>207899</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-07-31 23:37:07 -0700</bug_when>
    <thetext>Comment on attachment 207899
Patch

Attachment 207899 did not pass qt-ews (qt):
Output: http://webkit-queues.appspot.com/results/1295940</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913643</commentid>
    <comment_count>4</comment_count>
      <attachid>207899</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-07-31 23:37:51 -0700</bug_when>
    <thetext>Comment on attachment 207899
Patch

Attachment 207899 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1292896</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913644</commentid>
    <comment_count>5</comment_count>
      <attachid>207899</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-07-31 23:38:22 -0700</bug_when>
    <thetext>Comment on attachment 207899
Patch

Attachment 207899 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/1298956</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913648</commentid>
    <comment_count>6</comment_count>
      <attachid>207899</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-01 00:10:58 -0700</bug_when>
    <thetext>Comment on attachment 207899
Patch

Attachment 207899 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1292902</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913652</commentid>
    <comment_count>7</comment_count>
      <attachid>207899</attachid>
    <who name="Ruth Fong">ruthiecftg</who>
    <bug_when>2013-08-01 00:16:27 -0700</bug_when>
    <thetext>Comment on attachment 207899
Patch

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

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:2944
&gt; +#if ENABLE(INPUT_TYPE_COLOR_POPOVER)
&gt; +    m_colorPicker = m_pageClient-&gt;createColorPicker(this, initialColor, elementRect);
&gt; +#else
&gt;      if (!m_colorPicker)
&gt;          m_colorPicker = m_pageClient-&gt;createColorPicker(this, initialColor, elementRect);
&gt;      m_colorPicker-&gt;showColorPicker(initialColor);
&gt; +#endif

Every time a new &lt;input type=&apos;color&apos;&gt; element is activated, the previous popover is destroyed and a new one constructed. This differs from the panel implementation; which &quot;resets&quot; the color picker instead of tearing it down and building a new one when it&apos;s associated to another color element. Should we standardize the implementation? (Probably yes, that where there&apos;s a more similar implementation for the color picker UIs in WebColorPickerMac.)

Disadvantage of createIfNeeded-and-show: It&apos;d be harder to follow the createIfNeeded then show model for popover because in WKColorPopoverMac, initForFrame needs to be called to set the popover over the right color element, but it can be done (more information would have to be passed to showColorPicker, such as elementRect and m_pageClient-&gt;wkView()).

For destroy-and-create: For the panel implementation, it may be a poor UI experience (will try it out) having a picker disappear and then reappear.

&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:103
&gt; +#endif

The deconstructor probably shouldn&apos;t have the ASSERT. Will file a new bug to fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913654</commentid>
    <comment_count>8</comment_count>
      <attachid>207901</attachid>
    <who name="Ruth Fong">ruthiecftg</who>
    <bug_when>2013-08-01 00:28:20 -0700</bug_when>
    <thetext>Created attachment 207901
Patch

fixed feature defines bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913659</commentid>
    <comment_count>9</comment_count>
      <attachid>207901</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-01 00:46:37 -0700</bug_when>
    <thetext>Comment on attachment 207901
Patch

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

Some comments:

&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:65
&gt; +@interface WKColorPickerMac  : NSObject&lt;NSWindowDelegate&gt; {
&gt; +@protected
&gt; +BOOL _lastChangedByUser;
&gt; +WebColorPickerMac* _picker;
&gt;  }
&gt; -
&gt; -- (id)init;
&gt; -- (void)setAndShowPicker:(WebKit::WebColorPickerMac*)picker withColor:(NSColor *)color;
&gt; -- (void)didChooseColor:(NSColorPanel *)panel;
&gt; +- (void)didChooseColor:(id)sender;
&gt;  - (void)invalidate;
&gt; -
&gt; -// Sets color to the NSColorPanel as a non user change.
&gt;  - (void)setColor:(NSColor *)color;
&gt; +@end
&gt;  
&gt; +@implementation WKColorPickerMac
&gt; +- (void)didChooseColor:(id)sender { }
&gt; +- (void)invalidate { }
&gt; +- (void)setColor:(NSColor *)color { }
&gt;  @end

I think you should transform WKColorPickerMac to a protocol, and move the two attributes to the subclass.

WKColorPickerMac does not have ownership of _lastChangedByUser which leads to improper encapsulation. You should try to avoid inheritance as a way to share code, using encapsulation/aggregation leads to better designs.

&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:74
&gt; +    NSPopoverColorWell* popoverWell;

You could use a RetainPtr here to avoid risking leaking this.

&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:159
&gt; +            return self;

Indent.

&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:167
&gt; +    [popoverWell retain];

This is odd!

&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:177
&gt; +}
&gt; +

I would also add a destructor just to be safe. You could call invalidate from it, or just assert that _picker and popoverWell are nil.

&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:183
&gt; +    [popoverWell removeFromSuperviewWithoutNeedingDisplay];
&gt; +    [popoverWell deactivate];
&gt; +    [popoverWell release];
&gt; +    _picker = nil;

I believe you also want to remove the target of the popowerWell. Otherwise, if an other reference to the object exist, you may still get called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913666</commentid>
    <comment_count>10</comment_count>
      <attachid>207901</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-01 01:15:00 -0700</bug_when>
    <thetext>Comment on attachment 207901
Patch

Attachment 207901 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1307198</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913673</commentid>
    <comment_count>11</comment_count>
      <attachid>207901</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-01 01:36:45 -0700</bug_when>
    <thetext>Comment on attachment 207901
Patch

Attachment 207901 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1259019</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913688</commentid>
    <comment_count>12</comment_count>
      <attachid>207901</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-01 02:39:36 -0700</bug_when>
    <thetext>Comment on attachment 207901
Patch

Attachment 207901 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1311014</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913747</commentid>
    <comment_count>13</comment_count>
      <attachid>207901</attachid>
    <who name="Ruth Fong">ruthiecftg</who>
    <bug_when>2013-08-01 08:25:57 -0700</bug_when>
    <thetext>Comment on attachment 207901
Patch

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

&gt;&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:65
&gt;&gt;  @end
&gt; 
&gt; I think you should transform WKColorPickerMac to a protocol, and move the two attributes to the subclass.
&gt; 
&gt; WKColorPickerMac does not have ownership of _lastChangedByUser which leads to improper encapsulation. You should try to avoid inheritance as a way to share code, using encapsulation/aggregation leads to better designs.

Moving the private variables makes  sense.

I like WKColorPickerMac as a base class because that way m_colorPickerUI can be of type WKColorPickerMac and I can maintain more abstraction in WebColorPickerMac.

&gt;&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:74
&gt;&gt; +    NSPopoverColorWell* popoverWell;
&gt; 
&gt; You could use a RetainPtr here to avoid risking leaking this.

Got it.

&gt;&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:177
&gt;&gt; +
&gt; 
&gt; I would also add a destructor just to be safe. You could call invalidate from it, or just assert that _picker and popoverWell are nil.

Got it.

&gt;&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:183
&gt;&gt; +    _picker = nil;
&gt; 
&gt; I believe you also want to remove the target of the popowerWell. Otherwise, if an other reference to the object exist, you may still get called.

Got it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913773</commentid>
    <comment_count>14</comment_count>
      <attachid>207901</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-08-01 10:01:50 -0700</bug_when>
    <thetext>Comment on attachment 207901
Patch

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

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1008
&gt; +#if ENABLE(INPUT_TYPE_COLOR) &amp;&amp; ENABLE(INPUT_TYPE_COLOR_POPOVER)

This preprocessor statement is unnecessary.

Enabling INPUT_TYPE_COLOR_POPOVER without enabling INPUT_TYPE_COLOR is an invalid build config.

I think each place you use this macro it should just be the INPUT_TYPE_COLOR_POPOVER clause by itself.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913811</commentid>
    <comment_count>15</comment_count>
      <attachid>207942</attachid>
    <who name="Ruth Fong">ruthiecftg</who>
    <bug_when>2013-08-01 11:48:48 -0700</bug_when>
    <thetext>Created attachment 207942
Patch

uses WKSI, which hasn&apos;t been updated yet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913825</commentid>
    <comment_count>16</comment_count>
      <attachid>207942</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-01 12:31:17 -0700</bug_when>
    <thetext>Comment on attachment 207942
Patch

Attachment 207942 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.appspot.com/results/1321064</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913831</commentid>
    <comment_count>17</comment_count>
      <attachid>207942</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-01 13:01:32 -0700</bug_when>
    <thetext>Comment on attachment 207942
Patch

Attachment 207942 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1321066</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913856</commentid>
    <comment_count>18</comment_count>
      <attachid>207942</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-08-01 13:57:59 -0700</bug_when>
    <thetext>Comment on attachment 207942
Patch

Attachment 207942 did not pass mac-ews (mac):
Output: http://webkit-queues.appspot.com/results/1314149</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913871</commentid>
    <comment_count>19</comment_count>
      <attachid>207953</attachid>
    <who name="Ruth Fong">ruthiecftg</who>
    <bug_when>2013-08-01 14:35:29 -0700</bug_when>
    <thetext>Created attachment 207953
Patch

don&apos;t need header because not using SPI methods declared in the header</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913889</commentid>
    <comment_count>20</comment_count>
      <attachid>207957</attachid>
    <who name="Ruth Fong">ruthiecftg</who>
    <bug_when>2013-08-01 15:02:11 -0700</bug_when>
    <thetext>Created attachment 207957
Patch

added space</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913936</commentid>
    <comment_count>21</comment_count>
      <attachid>207957</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2013-08-01 17:18:13 -0700</bug_when>
    <thetext>Comment on attachment 207957
Patch

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

&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:150
&gt; +            return self;

Nit: The indentation is off here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913938</commentid>
    <comment_count>22</comment_count>
      <attachid>207957</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2013-08-01 17:29:51 -0700</bug_when>
    <thetext>Comment on attachment 207957
Patch

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

&gt; Source/WebKit2/Configurations/FeatureDefines.xcconfig:102
&gt; +ENABLE_INPUT_TYPE_COLOR_POPOVER = ENABLE_INPUT_TYPE_COLOR_POPOVER;

You should probably update all 4 FeatureDefines.xcconfig to avoid future confusions.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:1009
&gt; +    // Close popover color well when resizing window.

This comment does not add value.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:2938
&gt; +    // A new popover color well needs to be created (and the previous one destroon each activation of a color element.

The comment should be in the #ifdef.

destroon? :)

Aaaaaarg, an unclosed parenthesis.

&gt; Source/WebKit2/UIProcess/WebPageProxy.cpp:2940
&gt; +    m_colorPicker = nil;

nil -&gt; 0

&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.h:74
&gt; +    RetainPtr&lt;NSObject&lt;WKColorPickerUIMac&gt; &gt; m_colorPickerUI;

You can remove the space between the two &apos;&gt;&apos; (Yay C++ 11).

&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:106
&gt; +    m_colorPickerUI = nullptr;

nullptr -&gt; nil?

&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:150
&gt; +            return self;

Indentation.

&gt; Source/WebKit2/UIProcess/mac/WebColorPickerMac.mm:200
&gt; +        _lastChangedByUser = YES;
&gt; +            return;
&gt; +        }

Indentation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913946</commentid>
    <comment_count>23</comment_count>
      <attachid>207972</attachid>
    <who name="Ruth Fong">ruthiecftg</who>
    <bug_when>2013-08-01 17:53:22 -0700</bug_when>
    <thetext>Created attachment 207972
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913959</commentid>
    <comment_count>24</comment_count>
      <attachid>207972</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-01 19:06:25 -0700</bug_when>
    <thetext>Comment on attachment 207972
Patch

Clearing flags on attachment: 207972

Committed r153633: &lt;http://trac.webkit.org/changeset/153633&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>913960</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-08-01 19:06:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207899</attachid>
            <date>2013-07-31 23:27:56 -0700</date>
            <delta_ts>2013-08-01 00:28:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119356-20130731232755.patch</filename>
            <type>text/plain</type>
            <size>20947</size>
            <attacher name="Ruth Fong">ruthiecftg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTM1NDUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTA3LTMxICBSdXRoIEZvbmcgIDxydXRoX2Zv
bmdAYXBwbGUuY29tPgorCisgICAgICAgIFtGb3JtczogY29sb3JdIDxpbnB1dCB0eXBlPSdjb2xv
cic+IHBvcG92ZXIgY29sb3Igd2VsbCBpbXBsZW1lbnRhdGlvbgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTQ0MTEwMDg+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE5MzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDogQWRkZWQgSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVS
IGZlYXR1cmUuCisKIDIwMTMtMDctMzEgIFJ1dGggRm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgPGlucHV0IHR5cGU9Y29sb3I+IE1hYyBVSSBiZWhhdmlvdXIKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvRmVhdHVyZURlZmluZXMuaAkocmV2aXNpb24gMTUzNTQzKQorKysgU291cmNlL1dURi93dGYv
RmVhdHVyZURlZmluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDYgKzE5MCwxMCBAQAogI2Rl
ZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiAxCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIgMQorI2VuZGlmCisKICNlbmRpZiAvKiBQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpICovCiAKIC8qIC0tLS0tLS0tLSBBcHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0t
LS0tICovCkBAIC01MTAsNiArNTE0LDEwIEBACiAjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SIDAKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9Q
T1ZFUikKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IgMAorI2VuZGlmCisKICNpZiAh
ZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKQogI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFIDAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNpb24gMTUzNTQ1KQorKysgU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTMgQEAKKzIw
MTMtMDctMzEgIFJ1dGggRm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0Zv
cm1zOiBjb2xvcl0gPGlucHV0IHR5cGU9J2NvbG9yJz4gcG9wb3ZlciBjb2xvciB3ZWxsIGltcGxl
bWVudGF0aW9uCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNDQxMTAwOD4gYW5kIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTkzNTYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBhdGNoIGFkZHMgYW4gcG9wb3Zl
ciBpbXBsZW1lbnRhdGlvbiBvZiA8aW5wdXQgdHlwZT0nY29sb3InPi4KKworICAgICAgICAqIENv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBBZGRlZCBhbmQgZW5hYmxlZCBJ
TlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9Q
YWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNyZWF0
ZUNvbG9yUGlja2VyKTogVXBkYXRlZCB0byBwYXNzIHRoZSAKKyAgICAgICAgICBjb29yZGluYXRl
cyBvZiB0aGUgPGlucHV0IHR5cGU9J2NvbG9yJz4gZWxlbWVudCBhbmQgdGhlIFdLVmlldyAKKyAg
ICAgICAgICBvYmplY3QgZm9yIHRoZSB3aW5kb3cuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp2aWV3V2lsbFN0
YXJ0TGl2ZVJlc2l6ZSk6IENsb3NlIHBvcG92ZXIgY29sb3IgCisgICAgICAgICAgcGlja2VyIHdo
ZW4gdGhlIHZpZXcgaXMgcmVzaXplZC4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp2
aWV3SW5XaW5kb3dTdGF0ZURpZENoYW5nZSk6IENsb3NlIHBvcG92ZXIgY29sb3IKKyAgICAgICAg
ICBwaWNrZXIgd2hlbiB0aGUgdmlldyBpcyBubyBsb25nZXIgaW4gdGhlIHdpbmRvdy4KKyAgICAg
ICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93Q29sb3JQaWNrZXIpOgorCisgICAgICAgICog
VUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvV2ViQ29sb3JQaWNrZXJNYWMubW06CisgICAgICAgICgtW1dLQ29sb3JQaWNrZXJNYWMgZGlk
Q2hvb3NlQ29sb3I6XSk6CisgICAgICAgICgtW1dLQ29sb3JQaWNrZXJNYWMgaW52YWxpZGF0ZV0p
OgorICAgICAgICAoLVtXS0NvbG9yUGlja2VyTWFjIHNldENvbG9yOl0pOgorICAgICAgICBUaGUg
V0tDb2xvclBpY2tlck1hYyBwcm92aWRlcyB0aGUgaW50ZXJmYWNlIGZvciB0aGUgY29sb3IgcGlj
a2VyIFVJOworICAgICAgICAgIGJvdGggV0tDb2xvclBvcG92ZXJNYWMgYW5kIFdLQ29sb3JQYW5l
bE1hYyBpbmhlcml0IGZyb20gV0tDb2xvclBpY2tlck1hYy4KKworICAgICAgICAoV2ViS2l0OjpX
ZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNr
ZXJNYWM6On5XZWJDb2xvclBpY2tlck1hYyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlj
a2VyTWFjOjpXZWJDb2xvclBpY2tlck1hYyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlj
a2VyTWFjOjplbmRQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlck1hYzo6
c2V0U2VsZWN0ZWRDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpz
aG93Q29sb3JQaWNrZXIpOgorICAgICAgICBNZXRob2RzIHVwZGF0ZWQgdG8gaGFuZGxlIGJvdGgg
dGhlIGNvbG9yIHBhbmVsIGltcGxlbWVudGF0aW9uIGFuZCAKKyAgICAgICAgICB0aGUgcG9wb3Zl
ciBpbXBsZW1lbnRhdGlvbjsgYWxzbyByZW5hbWVkIG1fcGFuZWwgdG8gbV9jb2xvclBpY2tlclVJ
LiAKKworICAgICAgICAoLVtXS0NvbG9yUG9wb3Zlck1hYyBpbml0V2l0aFBpY2tlcjpXZWJLaXQ6
OndpdGhDb2xvcjp3aXRoUmVjdDpXZWJDb3JlOjp3aXRoVmlldzpdKToKKyAgICAgICAgKC1bV0tD
b2xvclBvcG92ZXJNYWMgaW52YWxpZGF0ZV0pOgorICAgICAgICAoLVtXS0NvbG9yUG9wb3Zlck1h
YyB3aW5kb3dXaWxsQ2xvc2U6XSk6CisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVyTWFjIGRpZENo
b29zZUNvbG9yOl0pOgorICAgICAgICAoLVtXS0NvbG9yUG9wb3Zlck1hYyBzZXRDb2xvcjpdKToK
KyAgICAgICAgV0tDb2xvclBvcG92ZXJNYWMgcHJvdmlkZXMgdGhlIHBvcG92ZXIgaW1wbGVtZW50
YXRpb24gb2YgPGlucHV0IHR5cGU9J2NvbG9yJz4uCisKKyAgICAgICAgKC1bV0tDb2xvclBhbmVs
TWFjIGRpZENob29zZUNvbG9yOl0pOgorICAgICAgICBVcGRhdGVkIHRvIG1hdGNoIHRoZSBpbnRl
cmZhY2Ugb2YgV0tDb2xvclBpY2tlck1hYzo6ZGlkQ2hvb3NlQ29sb3IuCisKIDIwMTMtMDctMzEg
IFJ1dGggRm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5jb20+CiAKICAgICAgICAgPGlucHV0IHR5cGU9
Y29sb3I+IE1hYyBVSSBiZWhhdmlvdXIKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRp
b25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lvbiAxNTM1NDMp
CisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZp
Zwkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksNyBAQCBFTkFCTEVfSUZSQU1FX1NFQU1MRVNT
ID0gRU5BQkxFX0lGUkFNRV9TCiBFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSA9IDsKIEVOQUJMRV9J
TlBVVF9TUEVFQ0ggPSA7CiBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiA9IEVOQUJMRV9JTlBVVF9U
WVBFX0NPTE9SOworRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUiA9IEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SX1BPUE9WRVI7CiBFTkFCTEVfSU5QVVRfVFlQRV9EQVRFID0gJChFTkFCTEVf
SU5QVVRfVFlQRV9EQVRFXyQoUExBVEZPUk1fTkFNRSkpOwogRU5BQkxFX0lOUFVUX1RZUEVfREFU
RV9pcGhvbmVvcyA9IEVOQUJMRV9JTlBVVF9UWVBFX0RBVEU7CiBFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFX2lwaG9uZXNpbXVsYXRvciA9ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURV9pcGhvbmVvcyk7
CkBAIC0xODYsNCArMTg3LDQgQEAgRU5BQkxFX1hTTFQgPSBFTkFCTEVfWFNMVDsKIAogRU5BQkxF
X0ZUTF9KSVQgPSA7CiAKLUZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykg
JChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9D
QUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNf
UFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChF
TkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBU
QVRJT04pICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChF
TkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElP
TikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9D
U1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTU19TVElDS1lf
UE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCkg
JChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUykg
JChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFC
TEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChF
TkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5B
QkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFC
TEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESUFMT0dfRUxFTUVOVCkgJChFTkFCTEVf
RElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5B
QkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVf
RU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVS
UykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQo
RU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFH
RV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJM
RV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhF
RF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJ
TUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lO
UFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVH
QUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAk
KEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElP
KSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElB
X1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVO
VCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTU9VU0VfQ1VS
U09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9U
SUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lU
X1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JF
U1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NV
RkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJB
TUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVEX1NQ
RUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5B
QkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZ
TEVfU0NPUEVEKSAkKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpICQoRU5BQkxFX1NWRykgJChFTkFC
TEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FV
VE9TSVpJTkcpICQoRU5BQkxFX1RIUkVBREVEX0hUTUxfUEFSU0VSKSAkKEVOQUJMRV9UT1VDSF9J
Q09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChF
TkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxF
X1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJM
RV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChF
TkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9S
TV9OQU1FKSk7CitGRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5B
QkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVf
UEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZ
KSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxF
X0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9O
KSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxF
X0NTU19JTUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQo
RU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX0NP
TVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lU
SU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5B
QkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5B
QkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NV
UlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxF
X0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9E
QVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RF
VklDRV9PUklFTlRBVElPTikgJChFTkFCTEVfRElBTE9HX0VMRU1FTlQpICQoRU5BQkxFX0RJUkVD
VE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9E
UkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZ
UFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQo
RU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJM
RV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9N
X1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxFX0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNP
TkRBVEFCQVNFKSAkKEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFU
QUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikg
JChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAk
KEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RB
VElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxF
X01JQ1JPREFUQSkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FU
T1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BS
T1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPWElN
SVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkg
JChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVE
SUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkg
JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVUJQSVhF
TF9MQVlPVVQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URU1Q
TEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RIUkVBREVE
X0hUTUxfUEFSU0VSKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJT
RUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxF
X1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8p
ICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JL
RVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJ
VCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkocmV2aXNpb24gMTUzNTQzKQorKysgU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEwMDUsNiArMTAwNSwxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dmlld1dpbGxTdGFydExpdmVS
ZXNpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKKyNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikgJiYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKKyAg
ICAvLyBDbG9zZSBwb3BvdmVyIGNvbG9yIHdlbGwgd2hlbiByZXNpemluZyB3aW5kb3cuCisgICAg
aWYgKG1fY29sb3JQaWNrZXIpCisgICAgICAgIGVuZENvbG9yUGlja2VyKCk7CisjZW5kaWYKICAg
ICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlZpZXdXaWxsU3RhcnRMaXZlUmVz
aXplKCksIG1fcGFnZUlEKTsKIH0KIApAQCAtMTA1Myw2ICsxMDU4LDEzIEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojp2aWV3SW5XaW5kb3dTdGF0ZURpZEMKICAgICAgICAgICAgIG1fZHJhd2luZ0FyZWEt
PmxheWVySG9zdGluZ01vZGVEaWRDaGFuZ2UoKTsKICAgICAgICAgfQogICAgIH0KKyNpZiBFTkFC
TEUoSU5QVVRfVFlQRV9DT0xPUikgJiYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikK
KyAgICBlbHNlIHsKKyAgICAgICAgLy8gV2hlbiBsZWF2aW5nIHRoZSBjdXJyZW50IHBhZ2UsIGNs
b3NlIHRoZSBwb3BvdmVyIGNvbG9yIHdlbGwuCisgICAgICAgIGlmIChtX2NvbG9yUGlja2VyKQor
ICAgICAgICAgICAgZW5kQ29sb3JQaWNrZXIoKTsKKyAgICB9CisjZW5kaWYKIH0KIAogdm9pZCBX
ZWJQYWdlUHJveHk6OnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGVGbGFncyBmbGFncykKQEAg
LTI5MjMsOSArMjkzNSwxMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6bmVlZFRvdWNoRXZlbnRzKGJv
b2wgCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2hv
d0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IElu
dFJlY3QmIGVsZW1lbnRSZWN0KQogeworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SX1BPUE9W
RVIpCisgICAgbV9jb2xvclBpY2tlciA9IG1fcGFnZUNsaWVudC0+Y3JlYXRlQ29sb3JQaWNrZXIo
dGhpcywgaW5pdGlhbENvbG9yLCBlbGVtZW50UmVjdCk7CisjZWxzZQogICAgIGlmICghbV9jb2xv
clBpY2tlcikKICAgICAgICAgbV9jb2xvclBpY2tlciA9IG1fcGFnZUNsaWVudC0+Y3JlYXRlQ29s
b3JQaWNrZXIodGhpcywgaW5pdGlhbENvbG9yLCBlbGVtZW50UmVjdCk7CiAgICAgbV9jb2xvclBp
Y2tlci0+c2hvd0NvbG9yUGlja2VyKGluaXRpYWxDb2xvcik7CisjZW5kaWYKIH0KIAogdm9pZCBX
ZWJQYWdlUHJveHk6OnNldENvbG9yUGlja2VyQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNv
bG9yKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudElt
cGwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwubW0JKHJldmlzaW9uIDE1MzU0MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zOTQsOSAr
Mzk0LDkgQEAgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBQYWdlQ2xpZQogfQogCiAj
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1QYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBQ
YWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25z
dCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYp
CitQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JQ
aWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENv
bG9yLCAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gV2ViQ29s
b3JQaWNrZXJNYWM6OmNyZWF0ZShwYWdlLCBpbml0aWFsQ29sb3IpOworICAgIHJldHVybiBXZWJD
b2xvclBpY2tlck1hYzo6Y3JlYXRlKHBhZ2UsIGluaXRpYWxDb2xvciwgcmVjdCwgd2tWaWV3KCkp
OwogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29s
b3JQaWNrZXJNYWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkNvbG9yUGlja2VyTWFjLmgJKHJldmlzaW9uIDE1MzU0MykKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAkod29ya2luZyBjb3B5KQpAQCAtMzcs
MTAgKzM3LDEyIEBACiAjaWYgVVNFKEFQUEtJVCkKIAogI2ltcG9ydCAiV2ViQ29sb3JQaWNrZXIu
aCIKKyNpbXBvcnQgIldLVmlldy5oIgorI2ltcG9ydCA8V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5j
bHVkZSA8d3RmL1JldGFpblB0ci5oPgogCiBPQkpDX0NMQVNTIE5TQ29sb3JXZWxsOwotT0JKQ19D
TEFTUyBXS0NvbG9yUGFuZWxNYWM7CitPQkpDX0NMQVNTIFdLQ29sb3JQaWNrZXJNYWM7CiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENvbG9yOwpAQCAtNTAsNyArNTIsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKICAgICAKIGNsYXNzIFdlYkNvbG9yUGlja2VyTWFjIDogcHVibGljIFdlYkNv
bG9yUGlja2VyIHsKIHB1YmxpYzogICAgICAgIAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNv
bG9yUGlja2VyTWFjPiBjcmVhdGUoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCosIGNvbnN0IFdlYkNv
cmU6OkNvbG9yJik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXJNYWM+IGNy
ZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiwgV0tWaWV3Kik7CiAgICAgfldlYkNvbG9yUGlja2VyTWFjKCk7
CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5kUGlja2VyKCkgT1ZFUlJJREU7CkBAIC02MCw4ICs2Miw4
IEBAIHB1YmxpYzogICAgICAgIAogICAgIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKTsKIAogcHJpdmF0ZToKLSAgICBXZWJDb2xvclBpY2tlck1hYyhXZWJDb2xvclBp
Y2tlcjo6Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKLSAgICBSZXRhaW5QdHI8V0tD
b2xvclBhbmVsTWFjPiBtX3BhbmVsOworICAgIFdlYkNvbG9yUGlja2VyTWFjKFdlYkNvbG9yUGlj
a2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmLCBXS1ZpZXcqKTsKKyAgICBSZXRhaW5QdHI8V0tDb2xvclBpY2tlck1hYz4gbV9jb2xvclBp
Y2tlclVJOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0JKHJldmlzaW9uIDE1
MzU0MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMu
bW0JKHdvcmtpbmcgY29weSkKQEAgLTM4LDU2ICszOCw5MyBAQAogCiAjaW1wb3J0IDxXZWJDb3Jl
L0NvbG9yTWFjLmg+CiAKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorI2lm
ZGVmIF9faGFzX2luY2x1ZGUKKyNpZiBfX2hhc19pbmNsdWRlKDxBcHBLaXQvTlNQb3BvdmVyQ29s
b3JXZWxsLmg+KQorI2ltcG9ydCA8QXBwS2l0L05TUG9wb3ZlckNvbG9yV2VsbC5oPgorI2VuZGlm
CisjZW5kaWYKKyNlbmRpZgorCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi0vLyBBIGxpc3Rl
bmVyIGNsYXNzIHRvIGFjdCBhcyBhIGV2ZW50IHRhcmdldCBmb3IgTlNDb2xvclBhbmVsIGFuZCBz
ZW5kCi0vLyB0aGUgcmVzdWx0cyB0byB0aGUgQysrIGNsYXNzLCBXZWJDb2xvclBpY2tlck1hYy4K
LUBpbnRlcmZhY2UgV0tDb2xvclBhbmVsTWFjIDogTlNPYmplY3Q8TlNXaW5kb3dEZWxlZ2F0ZT4g
ewotQHByaXZhdGUKLSAgICBCT09MIF9sYXN0Q2hhbmdlZEJ5VXNlcjsKLSAgICBXZWJDb2xvclBp
Y2tlck1hYyogX3BpY2tlcjsKK0BpbnRlcmZhY2UgV0tDb2xvclBpY2tlck1hYyAgOiBOU09iamVj
dDxOU1dpbmRvd0RlbGVnYXRlPiB7CitAcHJvdGVjdGVkCitCT09MIF9sYXN0Q2hhbmdlZEJ5VXNl
cjsKK1dlYkNvbG9yUGlja2VyTWFjKiBfcGlja2VyOwogfQotCi0tIChpZClpbml0OwotLSAodm9p
ZClzZXRBbmRTaG93UGlja2VyOihXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjKilwaWNrZXIgd2l0
aENvbG9yOihOU0NvbG9yICopY29sb3I7Ci0tICh2b2lkKWRpZENob29zZUNvbG9yOihOU0NvbG9y
UGFuZWwgKilwYW5lbDsKKy0gKHZvaWQpZGlkQ2hvb3NlQ29sb3I6KGlkKXNlbmRlcjsKIC0gKHZv
aWQpaW52YWxpZGF0ZTsKLQotLy8gU2V0cyBjb2xvciB0byB0aGUgTlNDb2xvclBhbmVsIGFzIGEg
bm9uIHVzZXIgY2hhbmdlLgogLSAodm9pZClzZXRDb2xvcjooTlNDb2xvciAqKWNvbG9yOworQGVu
ZAogCitAaW1wbGVtZW50YXRpb24gV0tDb2xvclBpY2tlck1hYworLSAodm9pZClkaWRDaG9vc2VD
b2xvcjooaWQpc2VuZGVyIHsgfQorLSAodm9pZClpbnZhbGlkYXRlIHsgfQorLSAodm9pZClzZXRD
b2xvcjooTlNDb2xvciAqKWNvbG9yIHsgfQogQGVuZAogCisjaWYgRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1JfUE9QT1ZFUikKK0BpbnRlcmZhY2UgTlNQb3BvdmVyQ29sb3JXZWxsIChTZWNyZXRzSUtu
b3cpCistICh2b2lkKV9zaG93UG9wb3ZlcjsKK0BlbmQKKworQGludGVyZmFjZSBXS0NvbG9yUG9w
b3Zlck1hYyA6IFdLQ29sb3JQaWNrZXJNYWMgeworQHByaXZhdGUKKyAgICBOU1BvcG92ZXJDb2xv
cldlbGwqIHBvcG92ZXJXZWxsOworfQorLSAoaWQpaW5pdFdpdGhQaWNrZXI6KFdlYkNvbG9yUGlj
a2VyTWFjKilwaWNrZXIgd2l0aENvbG9yOihOU0NvbG9yICopY29sb3Igd2l0aFJlY3Q6KGNvbnN0
IFdlYkNvcmU6OkludFJlY3QmKXJlY3Qgd2l0aFZpZXc6KFdLVmlldyopdmlldzsKK0BlbmQKKwor
I2Vsc2UKKy8vIEEgbGlzdGVuZXIgY2xhc3MgdG8gYWN0IGFzIGEgZXZlbnQgdGFyZ2V0IGZvciBO
U0NvbG9yUGFuZWwgYW5kIHNlbmQKKy8vIHRoZSByZXN1bHRzIHRvIHRoZSBDKysgY2xhc3MsIFdl
YkNvbG9yUGlja2VyTWFjLgorQGludGVyZmFjZSBXS0NvbG9yUGFuZWxNYWMgOiBXS0NvbG9yUGlj
a2VyTWFjCistIChpZClpbml0OworLSAodm9pZClzZXRBbmRTaG93UGlja2VyOihXZWJDb2xvclBp
Y2tlck1hYyopcGlja2VyIHdpdGhDb2xvcjooTlNDb2xvciAqKWNvbG9yOworQGVuZAorCisjZW5k
aWYKKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXJNYWM+
IFdlYkNvbG9yUGlja2VyTWFjOjpjcmVhdGUoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCogY2xpZW50
LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKQorUGFzc1JlZlB0cjxXZWJDb2xv
clBpY2tlck1hYz4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xp
ZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmIHJlY3QsIFdLVmlldyogdmlldykKIHsKLSAgICByZXR1cm4gYWRvcHRS
ZWYobmV3IFdlYkNvbG9yUGlja2VyTWFjKGNsaWVudCwgaW5pdGlhbENvbG9yKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJDb2xvclBpY2tlck1hYyhjbGllbnQsIGluaXRpYWxDb2xvciwg
cmVjdCwgdmlldykpOwogfQogCiBXZWJDb2xvclBpY2tlck1hYzo6fldlYkNvbG9yUGlja2VyTWFj
KCkKIHsKLSAgICBBU1NFUlQoIW1fcGFuZWwpOworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
X1BPUE9WRVIpCisgICAgaWYgKG1fY29sb3JQaWNrZXJVSSkKKyAgICAgICAgZW5kUGlja2VyKCk7
CisjZWxzZQorICAgIEFTU0VSVCghbV9jb2xvclBpY2tlclVJKTsKKyNlbmRpZgogfQogCi1XZWJD
b2xvclBpY2tlck1hYzo6V2ViQ29sb3JQaWNrZXJNYWMoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCog
Y2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yKQorV2ViQ29sb3JQaWNr
ZXJNYWM6OldlYkNvbG9yUGlja2VyTWFjKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgcmVjdCwgV0tWaWV3KiB2aWV3KQogICAgIDogV2ViQ29sb3JQaWNrZXIoY2xpZW50KQogewot
ICAgIG1fcGFuZWwgPSBhZG9wdE5TKFtbV0tDb2xvclBhbmVsTWFjIGFsbG9jXSBpbml0XSk7Cisj
aWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKKyAgICBtX2NvbG9yUGlja2VyVUkg
PSBhZG9wdE5TKFtbV0tDb2xvclBvcG92ZXJNYWMgYWxsb2NdIGluaXRXaXRoUGlja2VyOnRoaXMg
d2l0aENvbG9yOm5zQ29sb3IoaW5pdGlhbENvbG9yKSB3aXRoUmVjdDpyZWN0IHdpdGhWaWV3OnZp
ZXddKTsKKyNlbHNlCisgICAgbV9jb2xvclBpY2tlclVJID0gYWRvcHROUyhbW1dLQ29sb3JQYW5l
bE1hYyBhbGxvY10gaW5pdF0pOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViQ29sb3JQaWNrZXJNYWM6
OmVuZFBpY2tlcigpCiB7Ci0gICAgW21fcGFuZWwgaW52YWxpZGF0ZV07Ci0gICAgbV9wYW5lbCA9
IG51bGxwdHI7CisgICAgW21fY29sb3JQaWNrZXJVSSBpbnZhbGlkYXRlXTsKKyAgICBtX2NvbG9y
UGlja2VyVUkgPSBudWxscHRyOwogfQogCiB2b2lkIFdlYkNvbG9yUGlja2VyTWFjOjpzZXRTZWxl
Y3RlZENvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKIHsKLSAgICBpZiAoIW1fY2xp
ZW50IHx8ICFtX3BhbmVsKQorICAgIGlmICghbV9jbGllbnQgfHwgIW1fY29sb3JQaWNrZXJVSSkK
ICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIFttX3BhbmVsIHNldENvbG9yOm5zQ29sb3IoY29s
b3IpXTsKKyAgICBbbV9jb2xvclBpY2tlclVJIHNldENvbG9yOm5zQ29sb3IoY29sb3IpXTsKIH0K
IAogdm9pZCBXZWJDb2xvclBpY2tlck1hYzo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6
Q29sb3ImIGNvbG9yKQpAQCAtOTcsMjAgKzEzNCw4NCBAQCB2b2lkIFdlYkNvbG9yUGlja2VyTWFj
OjpkaWRDaG9vc2VDb2xvcihjCiAgICAgCiAgICAgbV9jbGllbnQtPmRpZENob29zZUNvbG9yKGNv
bG9yKTsKIH0KKwogdm9pZCBXZWJDb2xvclBpY2tlck1hYzo6c2hvd0NvbG9yUGlja2VyKGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKIHsKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBpZiAoIW1fcGFuZWwpCi0gICAgICAgIG1fcGFuZWwgPSBhZG9wdE5TKFtb
V0tDb2xvclBhbmVsTWFjIGFsbG9jXSBpbml0XSk7CisjaWYgIUVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SX1BPUE9WRVIpCisgICAgaWYgKCFtX2NvbG9yUGlja2VyVUkpCisgICAgICAgIG1fY29sb3JQ
aWNrZXJVSSA9IGFkb3B0TlMoW1tXS0NvbG9yUGFuZWxNYWMgYWxsb2NdIGluaXRdKTsKIAotICAg
IFttX3BhbmVsIHNldEFuZFNob3dQaWNrZXI6dGhpcyB3aXRoQ29sb3I6bnNDb2xvcihjb2xvcild
OworICAgIFttX2NvbG9yUGlja2VyVUkgc2V0QW5kU2hvd1BpY2tlcjp0aGlzIHdpdGhDb2xvcjpu
c0NvbG9yKGNvbG9yKV07CisjZW5kaWYKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLXVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZF
UikKKworQGltcGxlbWVudGF0aW9uIFdLQ29sb3JQb3BvdmVyTWFjCistIChpZClpbml0V2l0aFBp
Y2tlcjooV2ViS2l0OjpXZWJDb2xvclBpY2tlck1hYyAqKXBpY2tlciB3aXRoQ29sb3I6KE5TQ29s
b3IgKiljb2xvciB3aXRoUmVjdDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCAmKXJlY3Qgd2l0aFZp
ZXc6KFdLVmlldyAqKXZpZXcKK3sKKyAgICBpZighKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAg
ICAgICAgICAgcmV0dXJuIHNlbGY7CisgICAgX3BpY2tlciA9IHBpY2tlcjsKKworICAgIHBvcG92
ZXJXZWxsID0gW1tOU1BvcG92ZXJDb2xvcldlbGwgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNSZWN0
RnJvbUNHUmVjdChyZWN0KV07CisgICAgaWYgKCFwb3BvdmVyV2VsbCkKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmOworCisgICAgW1t2aWV3IHdpbmRvd10uY29udGVudFZpZXcgYWRkU3Vidmlldzpw
b3BvdmVyV2VsbF07CisgICAgW3BvcG92ZXJXZWxsIHJldGFpbl07CisgICAgW3BvcG92ZXJXZWxs
IHNldFRhcmdldDpzZWxmXTsKKyAgICBbcG9wb3ZlcldlbGwgc2V0QWN0aW9uOkBzZWxlY3Rvcihk
aWRDaG9vc2VDb2xvcjopXTsKKyAgICBbcG9wb3ZlcldlbGwgc2V0Q29sb3I6Y29sb3JdOworICAg
IFtwb3BvdmVyV2VsbCBfc2hvd1BvcG92ZXJdOworCisgICAgX2xhc3RDaGFuZ2VkQnlVc2VyID0g
WUVTOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpaW52YWxpZGF0ZQoreworICAg
IFtwb3BvdmVyV2VsbCByZW1vdmVGcm9tU3VwZXJ2aWV3V2l0aG91dE5lZWRpbmdEaXNwbGF5XTsK
KyAgICBbcG9wb3ZlcldlbGwgZGVhY3RpdmF0ZV07CisgICAgW3BvcG92ZXJXZWxsIHJlbGVhc2Vd
OworICAgIF9waWNrZXIgPSBuaWw7Cit9CisKKy0gKHZvaWQpd2luZG93V2lsbENsb3NlOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9sYXN0Q2hhbmdlZEJ5VXNlciA9IFlF
UzsKKyAgICBfcGlja2VyLT5lbmRQaWNrZXIoKTsKK30KKworLSAodm9pZClkaWRDaG9vc2VDb2xv
cjooaWQpc2VuZGVyCit7CisgICAgaWYgKHNlbmRlciAhPSBwb3BvdmVyV2VsbCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSA8aW5wdXQgdHlwZT0n
Y29sb3InPiB2YWx1ZSBpcyBwcm9ncmFtbWF0aWNhbGx5IHNldC4KKyAgICBpZiAoIV9sYXN0Q2hh
bmdlZEJ5VXNlcikgeworICAgICAgICBfbGFzdENoYW5nZWRCeVVzZXIgPSBZRVM7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgIF9waWNrZXItPmRpZENob29zZUNvbG9yKFdl
YkNvcmU6OmNvbG9yRnJvbU5TQ29sb3IoW3BvcG92ZXJXZWxsIGNvbG9yXSkpOworfQorCistICh2
b2lkKXNldENvbG9yOihOU0NvbG9yICopY29sb3IKK3sKKyAgICBfbGFzdENoYW5nZWRCeVVzZXIg
PSBOTzsKKyAgICBbcG9wb3ZlcldlbGwgc2V0Q29sb3I6Y29sb3JdOworfQorCitAZW5kCisKKyNl
bHNlCiAKIEBpbXBsZW1lbnRhdGlvbiBXS0NvbG9yUGFuZWxNYWMKIApAQCAtMTU0LDE1ICsyNTUs
MTggQEAgLSAodm9pZCl3aW5kb3dXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uIAogICAgIF9waWNr
ZXItPmVuZFBpY2tlcigpOwogfQogCi0tICh2b2lkKWRpZENob29zZUNvbG9yOihOU0NvbG9yUGFu
ZWwgKilwYW5lbAorLSAodm9pZClkaWRDaG9vc2VDb2xvcjooaWQpc2VuZGVyCiB7CisgICAgaWYg
KHNlbmRlciAhPSBbTlNDb2xvclBhbmVsIHNoYXJlZENvbG9yUGFuZWxdKQorICAgICAgICByZXR1
cm47CisKICAgICAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIDxpbnB1dCB0eXBlPSdjb2xv
cic+IHZhbHVlIGlzIHByb2dyYW1tYXRpY2FsbHkgc2V0LgogICAgIGlmICghX2xhc3RDaGFuZ2Vk
QnlVc2VyKSB7CiAgICAgICAgIF9sYXN0Q2hhbmdlZEJ5VXNlciA9IFlFUzsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIF9waWNrZXItPmRpZENob29zZUNvbG9yKFdlYkNvcmU6OmNvbG9y
RnJvbU5TQ29sb3IoW3BhbmVsIGNvbG9yXSkpOworICAgIF9waWNrZXItPmRpZENob29zZUNvbG9y
KFdlYkNvcmU6OmNvbG9yRnJvbU5TQ29sb3IoW3NlbmRlciBjb2xvcl0pKTsKIH0KIAogLSAodm9p
ZClzZXRDb2xvcjooTlNDb2xvciAqKWNvbG9yCkBAIC0xNzMsNiArMjc3LDggQEAgLSAodm9pZClz
ZXRDb2xvcjooTlNDb2xvciAqKWNvbG9yCiAKIEBlbmQKIAorI2VuZGlmIC8vIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SX1BPUE9WRVIpCisKICNlbmRpZiAvLyBVU0UoQVBQS0lUKQogCiAjZW5kaWYg
Ly8gRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207901</attachid>
            <date>2013-08-01 00:28:20 -0700</date>
            <delta_ts>2013-08-01 11:48:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119356-20130801002819.patch</filename>
            <type>text/plain</type>
            <size>20955</size>
            <attacher name="Ruth Fong">ruthiecftg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTM1NDUpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTA3LTMxICBSdXRoIEZvbmcgIDxydXRoX2Zv
bmdAYXBwbGUuY29tPgorCisgICAgICAgIFtGb3JtczogY29sb3JdIDxpbnB1dCB0eXBlPSdjb2xv
cic+IHBvcG92ZXIgY29sb3Igd2VsbCBpbXBsZW1lbnRhdGlvbgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTQ0MTEwMDg+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE5MzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDogQWRkZWQgSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVS
IGZlYXR1cmUuCisKIDIwMTMtMDctMzEgIFJ1dGggRm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgPGlucHV0IHR5cGU9Y29sb3I+IE1hYyBVSSBiZWhhdmlvdXIKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvRmVhdHVyZURlZmluZXMuaAkocmV2aXNpb24gMTUzNTQzKQorKysgU291cmNlL1dURi93dGYv
RmVhdHVyZURlZmluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDYgKzE5MCwxMCBAQAogI2Rl
ZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiAxCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIgMQorI2VuZGlmCisKICNlbmRpZiAvKiBQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpICovCiAKIC8qIC0tLS0tLS0tLSBBcHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0t
LS0tICovCkBAIC01MTAsNiArNTE0LDEwIEBACiAjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SIDAKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9Q
T1ZFUikKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUiAwCisjZW5kaWYK
KwogI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpCiAjZGVmaW5lIEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEUgMAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTM1NDUp
CisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1
MyBAQAorMjAxMy0wNy0zMSAgUnV0aCBGb25nICA8cnV0aF9mb25nQGFwcGxlLmNvbT4KKworICAg
ICAgICBbRm9ybXM6IGNvbG9yXSA8aW5wdXQgdHlwZT0nY29sb3InPiBwb3BvdmVyIGNvbG9yIHdl
bGwgaW1wbGVtZW50YXRpb24KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE0NDExMDA4PiBhbmQg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTM1NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBh
biBwb3BvdmVyIGltcGxlbWVudGF0aW9uIG9mIDxpbnB1dCB0eXBlPSdjb2xvcic+LgorCisgICAg
ICAgICogQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFkZGVkIGFuZCBl
bmFibGVkIElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6Y3JlYXRlQ29sb3JQaWNrZXIpOiBVcGRhdGVkIHRvIHBhc3MgdGhlIAorICAgICAgICAgIGNv
b3JkaW5hdGVzIG9mIHRoZSA8aW5wdXQgdHlwZT0nY29sb3InPiBlbGVtZW50IGFuZCB0aGUgV0tW
aWV3IAorICAgICAgICAgIG9iamVjdCBmb3IgdGhlIHdpbmRvdy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnZp
ZXdXaWxsU3RhcnRMaXZlUmVzaXplKTogQ2xvc2UgcG9wb3ZlciBjb2xvciAKKyAgICAgICAgICBw
aWNrZXIgd2hlbiB0aGUgdmlldyBpcyByZXNpemVkLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnZpZXdJbldpbmRvd1N0YXRlRGlkQ2hhbmdlKTogQ2xvc2UgcG9wb3ZlciBjb2xvcgor
ICAgICAgICAgIHBpY2tlciB3aGVuIHRoZSB2aWV3IGlzIG5vIGxvbmdlciBpbiB0aGUgd2luZG93
LgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnNob3dDb2xvclBpY2tlcik6CisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbToKKyAgICAgICAgKC1bV0tDb2xvclBpY2tl
ck1hYyBkaWRDaG9vc2VDb2xvcjpdKToKKyAgICAgICAgKC1bV0tDb2xvclBpY2tlck1hYyBpbnZh
bGlkYXRlXSk6CisgICAgICAgICgtW1dLQ29sb3JQaWNrZXJNYWMgc2V0Q29sb3I6XSk6CisgICAg
ICAgIFRoZSBXS0NvbG9yUGlja2VyTWFjIHByb3ZpZGVzIHRoZSBpbnRlcmZhY2UgZm9yIHRoZSBj
b2xvciBwaWNrZXIgVUk7CisgICAgICAgICAgYm90aCBXS0NvbG9yUG9wb3Zlck1hYyBhbmQgV0tD
b2xvclBhbmVsTWFjIGluaGVyaXQgZnJvbSBXS0NvbG9yUGlja2VyTWFjLgorCisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJD
b2xvclBpY2tlck1hYzo6fldlYkNvbG9yUGlja2VyTWFjKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29sb3JQaWNrZXJNYWM6OldlYkNvbG9yUGlja2VyTWFjKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29sb3JQaWNrZXJNYWM6OmVuZFBpY2tlcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlj
a2VyTWFjOjpzZXRTZWxlY3RlZENvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNr
ZXJNYWM6OnNob3dDb2xvclBpY2tlcik6CisgICAgICAgIE1ldGhvZHMgdXBkYXRlZCB0byBoYW5k
bGUgYm90aCB0aGUgY29sb3IgcGFuZWwgaW1wbGVtZW50YXRpb24gYW5kIAorICAgICAgICAgIHRo
ZSBwb3BvdmVyIGltcGxlbWVudGF0aW9uOyBhbHNvIHJlbmFtZWQgbV9wYW5lbCB0byBtX2NvbG9y
UGlja2VyVUkuIAorCisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVyTWFjIGluaXRXaXRoUGlja2Vy
OldlYktpdDo6d2l0aENvbG9yOndpdGhSZWN0OldlYkNvcmU6OndpdGhWaWV3Ol0pOgorICAgICAg
ICAoLVtXS0NvbG9yUG9wb3Zlck1hYyBpbnZhbGlkYXRlXSk6CisgICAgICAgICgtW1dLQ29sb3JQ
b3BvdmVyTWFjIHdpbmRvd1dpbGxDbG9zZTpdKToKKyAgICAgICAgKC1bV0tDb2xvclBvcG92ZXJN
YWMgZGlkQ2hvb3NlQ29sb3I6XSk6CisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVyTWFjIHNldENv
bG9yOl0pOgorICAgICAgICBXS0NvbG9yUG9wb3Zlck1hYyBwcm92aWRlcyB0aGUgcG9wb3ZlciBp
bXBsZW1lbnRhdGlvbiBvZiA8aW5wdXQgdHlwZT0nY29sb3InPi4KKworICAgICAgICAoLVtXS0Nv
bG9yUGFuZWxNYWMgZGlkQ2hvb3NlQ29sb3I6XSk6CisgICAgICAgIFVwZGF0ZWQgdG8gbWF0Y2gg
dGhlIGludGVyZmFjZSBvZiBXS0NvbG9yUGlja2VyTWFjOjpkaWRDaG9vc2VDb2xvci4KKwogMjAx
My0wNy0zMSAgUnV0aCBGb25nICA8cnV0aF9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICA8aW5w
dXQgdHlwZT1jb2xvcj4gTWFjIFVJIGJlaGF2aW91cgpJbmRleDogU291cmNlL1dlYktpdDIvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9u
IDE1MzU0MykKKysrIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVz
LnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBAIC05OSw2ICs5OSw3IEBAIEVOQUJMRV9JRlJBTUVf
U0VBTUxFU1MgPSBFTkFCTEVfSUZSQU1FX1MKIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFID0gOwog
RU5BQkxFX0lOUFVUX1NQRUVDSCA9IDsKIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SID0gRU5BQkxF
X0lOUFVUX1RZUEVfQ09MT1I7CitFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSID0gRU5B
QkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUjsKIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUgPSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVfJChQTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFX2lwaG9uZW9zID0gRU5BQkxFX0lOUFVUX1RZUEVfREFURTsKIEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVfaXBob25lc2ltdWxhdG9yID0gJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFX2lw
aG9uZW9zKTsKQEAgLTE4Niw0ICsxODcsNCBAQCBFTkFCTEVfWFNMVCA9IEVOQUJMRV9YU0xUOwog
CiBFTkFCTEVfRlRMX0pJVCA9IDsKIAotRkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVO
REVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQo
RU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxF
X0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9O
RVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19ERVZJ
Q0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxU
RVJTKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9S
RVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQo
RU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NT
X1NUSUNLWV9QT1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBS
RUZJWEVEKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFM
X1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFL
KSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5E
TEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVO
VCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5U
KSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJQUxPR19FTEVNRU5UKSAk
KEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RP
UikgJChFTkFCTEVfRFJBR0dBQkxFX1JFR0lPTikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAk
KEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJM
RV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVO
X0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJ
RERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMp
ICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJM
RV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVU
X1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgpICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChF
TkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVOQUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVO
QUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNB
VElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9X
RUJfQVVESU8pICQoRU5BQkxFX0xJTktfUFJFRkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFC
TEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9NRURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRF
Ul9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkgJChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9N
T1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxFX05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVO
QUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJM
RV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9QTFVHSU5fUFJPWFlfRk9SX1ZJREVPKSAkKEVOQUJM
RV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJMRV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9Q
VUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxFX1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1B
VElPTl9GUkFNRSkgJChFTkFCTEVfUkVTT0xVVElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfU0NS
SVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFET1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VS
UykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJUykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVO
QUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxFX1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVfU1ZH
KSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5BQkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxF
X1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVfVEhSRUFERURfSFRNTF9QQVJTRVIpICQoRU5BQkxF
X1RPVUNIX0lDT05fTE9BRElORykgJChFTkFCTEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJ
REVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykgJChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkg
JChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dFQl9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMp
ICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5BQkxFX1dPUktFUlMpICQoRU5BQkxFX1hIUl9USU1F
T1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJMRV9GVExfSklUKSAkKEZFQVRVUkVfREVGSU5FU18k
KFBMQVRGT1JNX05BTUUpKTsKK0ZFQVRVUkVfREVGSU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklO
RykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FOVkFTKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJM
RV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxFX0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5W
QVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVTU0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkg
JChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JSRUFLKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FE
QVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENMVVNJT05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykg
JChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xV
VElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQoRU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJM
RV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NTU19TSEFQRVMpICQoRU5BQkxFX0NTU19TVElD
S1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFOU0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhF
RCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChFTkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxF
UykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJMRV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChF
TkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5BQkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikg
JChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQoRU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQo
RU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQoRU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChF
TkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVOQUJMRV9ESUFMT0dfRUxFTUVOVCkgJChFTkFC
TEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVfRE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQo
RU5BQkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFC
TEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJMRV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklM
VEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5UUykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkp
ICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dFT0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5f
UEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChFTkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVO
QUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lGUkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5E
RVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRfU1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpICQoRU5BQkxFX0lOUFVU
X1RZUEVfREFURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRV9JTkNPTVBMRVRFKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FTE9DQUwpICQoRU5BQkxFX0lOUFVUX1RZUEVfTU9OVEgp
ICQoRU5BQkxFX0lOUFVUX1RZUEVfVElNRSkgJChFTkFCTEVfSU5QVVRfVFlQRV9XRUVLKSAkKEVO
QUJMRV9KQVZBU0NSSVBUX0RFQlVHR0VSKSAkKEVOQUJMRV9MRUdBQ1lfQ1NTX1ZFTkRPUl9QUkVG
SVhFUykgJChFTkFCTEVfTEVHQUNZX05PVElGSUNBVElPTlMpICQoRU5BQkxFX0xFR0FDWV9WRU5E
T1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9XRUJfQVVESU8pICQoRU5BQkxFX0xJTktfUFJF
RkVUQ0gpICQoRU5BQkxFX01BVEhNTCkgJChFTkFCTEVfTUVESUFfU09VUkNFKSAkKEVOQUJMRV9N
RURJQV9TVEFUSVNUSUNTKSAkKEVOQUJMRV9NRVRFUl9FTEVNRU5UKSAkKEVOQUJMRV9NSFRNTCkg
JChFTkFCTEVfTUlDUk9EQVRBKSAkKEVOQUJMRV9NT1VTRV9DVVJTT1JfU0NBTEUpICQoRU5BQkxF
X05BVklHQVRPUl9DT05URU5UX1VUSUxTKSAkKEVOQUJMRV9OT1RJRklDQVRJT05TKSAkKEVOQUJM
RV9QQUdFX1ZJU0lCSUxJVFlfQVBJKSAkKEVOQUJMRV9QREZLSVRfUExVR0lOKSAkKEVOQUJMRV9Q
TFVHSU5fUFJPWFlfRk9SX1ZJREVPKSAkKEVOQUJMRV9QUk9HUkVTU19FTEVNRU5UKSAkKEVOQUJM
RV9QUk9YSU1JVFlfRVZFTlRTKSAkKEVOQUJMRV9QVUJMSUNfU1VGRklYX0xJU1QpICQoRU5BQkxF
X1FVT1RBKSAkKEVOQUJMRV9SRVFVRVNUX0FOSU1BVElPTl9GUkFNRSkgJChFTkFCTEVfUkVTT0xV
VElPTl9NRURJQV9RVUVSWSkgJChFTkFCTEVfU0NSSVBURURfU1BFRUNIKSAkKEVOQUJMRV9TSEFE
T1dfRE9NKSAkKEVOQUJMRV9TSEFSRURfV09SS0VSUykgJChFTkFCTEVfU1BFRUNIX1NZTlRIRVNJ
UykgJChFTkFCTEVfU1FMX0RBVEFCQVNFKSAkKEVOQUJMRV9TVFlMRV9TQ09QRUQpICQoRU5BQkxF
X1NVQlBJWEVMX0xBWU9VVCkgJChFTkFCTEVfU1ZHKSAkKEVOQUJMRV9TVkdfRk9OVFMpICQoRU5B
QkxFX1RFTVBMQVRFX0VMRU1FTlQpICQoRU5BQkxFX1RFWFRfQVVUT1NJWklORykgJChFTkFCTEVf
VEhSRUFERURfSFRNTF9QQVJTRVIpICQoRU5BQkxFX1RPVUNIX0lDT05fTE9BRElORykgJChFTkFC
TEVfVVNFUlNFTEVDVF9BTEwpICQoRU5BQkxFX1ZJREVPKSAkKEVOQUJMRV9WSURFT19UUkFDSykg
JChFTkFCTEVfVklFV19NT0RFX0NTU19NRURJQSkgJChFTkFCTEVfV0VCR0wpICQoRU5BQkxFX1dF
Ql9BVURJTykgJChFTkFCTEVfV0VCX1NPQ0tFVFMpICQoRU5BQkxFX1dFQl9USU1JTkcpICQoRU5B
QkxFX1dPUktFUlMpICQoRU5BQkxFX1hIUl9USU1FT1VUKSAkKEVOQUJMRV9YU0xUKSAkKEVOQUJM
RV9GVExfSklUKSAkKEZFQVRVUkVfREVGSU5FU18kKFBMQVRGT1JNX05BTUUpKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZpc2lvbiAxNTM1NDMp
CisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTAwNSw2ICsxMDA1LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3V2lsbFN0
YXJ0TGl2ZVJlc2kKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOworI2lm
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKSAmJiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BP
VkVSKQorICAgIC8vIENsb3NlIHBvcG92ZXIgY29sb3Igd2VsbCB3aGVuIHJlc2l6aW5nIHdpbmRv
dy4KKyAgICBpZiAobV9jb2xvclBpY2tlcikKKyAgICAgICAgZW5kQ29sb3JQaWNrZXIoKTsKKyNl
bmRpZgogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Vmlld1dpbGxTdGFy
dExpdmVSZXNpemUoKSwgbV9wYWdlSUQpOwogfQogCkBAIC0xMDUzLDYgKzEwNTgsMTMgQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnZpZXdJbldpbmRvd1N0YXRlRGlkQwogICAgICAgICAgICAgbV9kcmF3
aW5nQXJlYS0+bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOwogICAgICAgICB9CiAgICAgfQor
I2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKSAmJiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9Q
T1BPVkVSKQorICAgIGVsc2UgeworICAgICAgICAvLyBXaGVuIGxlYXZpbmcgdGhlIGN1cnJlbnQg
cGFnZSwgY2xvc2UgdGhlIHBvcG92ZXIgY29sb3Igd2VsbC4KKyAgICAgICAgaWYgKG1fY29sb3JQ
aWNrZXIpCisgICAgICAgICAgICBlbmRDb2xvclBpY2tlcigpOworICAgIH0KKyNlbmRpZgogfQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZUZsYWdzIGZs
YWdzKQpAQCAtMjkyMyw5ICsyOTM1LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpuZWVkVG91Y2hF
dmVudHMoYm9vbCAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKIHZvaWQgV2ViUGFnZVBy
b3h5OjpzaG93Q29sb3JQaWNrZXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwg
Y29uc3QgSW50UmVjdCYgZWxlbWVudFJlY3QpCiB7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09M
T1JfUE9QT1ZFUikKKyAgICBtX2NvbG9yUGlja2VyID0gbV9wYWdlQ2xpZW50LT5jcmVhdGVDb2xv
clBpY2tlcih0aGlzLCBpbml0aWFsQ29sb3IsIGVsZW1lbnRSZWN0KTsKKyNlbHNlCiAgICAgaWYg
KCFtX2NvbG9yUGlja2VyKQogICAgICAgICBtX2NvbG9yUGlja2VyID0gbV9wYWdlQ2xpZW50LT5j
cmVhdGVDb2xvclBpY2tlcih0aGlzLCBpbml0aWFsQ29sb3IsIGVsZW1lbnRSZWN0KTsKICAgICBt
X2NvbG9yUGlja2VyLT5zaG93Q29sb3JQaWNrZXIoaW5pdGlhbENvbG9yKTsKKyNlbmRpZgogfQog
CiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0Q29sb3JQaWNrZXJDb2xvcihjb25zdCBXZWJDb3JlOjpD
b2xvciYgY29sb3IpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdl
Q2xpZW50SW1wbC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9QYWdlQ2xpZW50SW1wbC5tbQkocmV2aXNpb24gMTUzNTQzKQorKysgU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0JKHdvcmtpbmcgY29weSkKQEAg
LTM5NCw5ICszOTQsOSBAQCBQYXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJveHk+IFBhZ2VDbGll
CiB9CiAKICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKLVBhc3NSZWZQdHI8V2ViQ29sb3JQ
aWNrZXI+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBh
Z2UsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IsICBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JikKK1Bhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IFBhZ2VDbGllbnRJbXBsOjpjcmVh
dGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBp
bml0aWFsQ29sb3IsICBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVy
biBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKHBhZ2UsIGluaXRpYWxDb2xvcik7CisgICAgcmV0
dXJuIFdlYkNvbG9yUGlja2VyTWFjOjpjcmVhdGUocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0LCB3
a1ZpZXcoKSk7CiB9CiAjZW5kaWYKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJDb2xvclBpY2tlck1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAkocmV2aXNpb24gMTUzNTQzKQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0zNywxMCArMzcsMTIgQEAKICNpZiBVU0UoQVBQS0lUKQogCiAjaW1wb3J0ICJXZWJDb2xv
clBpY2tlci5oIgorI2ltcG9ydCAiV0tWaWV3LmgiCisjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3Qu
aD4KICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIE9CSkNfQ0xBU1MgTlNDb2xvcldlbGw7
Ci1PQkpDX0NMQVNTIFdLQ29sb3JQYW5lbE1hYzsKK09CSkNfQ0xBU1MgV0tDb2xvclBpY2tlck1h
YzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgQ29sb3I7CkBAIC01MCw3ICs1Miw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogICAgIAogY2xhc3MgV2ViQ29sb3JQaWNrZXJNYWMgOiBwdWJs
aWMgV2ViQ29sb3JQaWNrZXIgewogcHVibGljOiAgICAgICAgCi0gICAgc3RhdGljIFBhc3NSZWZQ
dHI8V2ViQ29sb3JQaWNrZXJNYWM+IGNyZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29u
c3QgV2ViQ29yZTo6Q29sb3ImKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tl
ck1hYz4gY3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xv
ciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXS1ZpZXcqKTsKICAgICB+V2ViQ29sb3JQaWNr
ZXJNYWMoKTsKIAogICAgIHZpcnR1YWwgdm9pZCBlbmRQaWNrZXIoKSBPVkVSUklERTsKQEAgLTYw
LDggKzYyLDggQEAgcHVibGljOiAgICAgICAgCiAgICAgdm9pZCBkaWRDaG9vc2VDb2xvcihjb25z
dCBXZWJDb3JlOjpDb2xvciYpOwogCiBwcml2YXRlOgotICAgIFdlYkNvbG9yUGlja2VyTWFjKFdl
YkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOwotICAgIFJldGFp
blB0cjxXS0NvbG9yUGFuZWxNYWM+IG1fcGFuZWw7CisgICAgV2ViQ29sb3JQaWNrZXJNYWMoV2Vi
Q29sb3JQaWNrZXI6OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYsIFdLVmlldyopOworICAgIFJldGFpblB0cjxXS0NvbG9yUGlja2VyTWFjPiBt
X2NvbG9yUGlja2VyVUk7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQkocmV2
aXNpb24gMTUzNTQzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBp
Y2tlck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzgsNTYgKzM4LDkzIEBACiAKICNpbXBvcnQg
PFdlYkNvcmUvQ29sb3JNYWMuaD4KIAorI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SX1BPUE9W
RVIpCisjaWZkZWYgX19oYXNfaW5jbHVkZQorI2lmIF9faGFzX2luY2x1ZGUoPEFwcEtpdC9OU1Bv
cG92ZXJDb2xvcldlbGwuaD4pCisjaW1wb3J0IDxBcHBLaXQvTlNQb3BvdmVyQ29sb3JXZWxsLmg+
CisjZW5kaWYKKyNlbmRpZgorI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLS8v
IEEgbGlzdGVuZXIgY2xhc3MgdG8gYWN0IGFzIGEgZXZlbnQgdGFyZ2V0IGZvciBOU0NvbG9yUGFu
ZWwgYW5kIHNlbmQKLS8vIHRoZSByZXN1bHRzIHRvIHRoZSBDKysgY2xhc3MsIFdlYkNvbG9yUGlj
a2VyTWFjLgotQGludGVyZmFjZSBXS0NvbG9yUGFuZWxNYWMgOiBOU09iamVjdDxOU1dpbmRvd0Rl
bGVnYXRlPiB7Ci1AcHJpdmF0ZQotICAgIEJPT0wgX2xhc3RDaGFuZ2VkQnlVc2VyOwotICAgIFdl
YkNvbG9yUGlja2VyTWFjKiBfcGlja2VyOworQGludGVyZmFjZSBXS0NvbG9yUGlja2VyTWFjICA6
IE5TT2JqZWN0PE5TV2luZG93RGVsZWdhdGU+IHsKK0Bwcm90ZWN0ZWQKK0JPT0wgX2xhc3RDaGFu
Z2VkQnlVc2VyOworV2ViQ29sb3JQaWNrZXJNYWMqIF9waWNrZXI7CiB9Ci0KLS0gKGlkKWluaXQ7
Ci0tICh2b2lkKXNldEFuZFNob3dQaWNrZXI6KFdlYktpdDo6V2ViQ29sb3JQaWNrZXJNYWMqKXBp
Y2tlciB3aXRoQ29sb3I6KE5TQ29sb3IgKiljb2xvcjsKLS0gKHZvaWQpZGlkQ2hvb3NlQ29sb3I6
KE5TQ29sb3JQYW5lbCAqKXBhbmVsOworLSAodm9pZClkaWRDaG9vc2VDb2xvcjooaWQpc2VuZGVy
OwogLSAodm9pZClpbnZhbGlkYXRlOwotCi0vLyBTZXRzIGNvbG9yIHRvIHRoZSBOU0NvbG9yUGFu
ZWwgYXMgYSBub24gdXNlciBjaGFuZ2UuCiAtICh2b2lkKXNldENvbG9yOihOU0NvbG9yICopY29s
b3I7CitAZW5kCiAKK0BpbXBsZW1lbnRhdGlvbiBXS0NvbG9yUGlja2VyTWFjCistICh2b2lkKWRp
ZENob29zZUNvbG9yOihpZClzZW5kZXIgeyB9CistICh2b2lkKWludmFsaWRhdGUgeyB9CistICh2
b2lkKXNldENvbG9yOihOU0NvbG9yICopY29sb3IgeyB9CiBAZW5kCiAKKyNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorQGludGVyZmFjZSBOU1BvcG92ZXJDb2xvcldlbGwgKFNl
Y3JldHNJS25vdykKKy0gKHZvaWQpX3Nob3dQb3BvdmVyOworQGVuZAorCitAaW50ZXJmYWNlIFdL
Q29sb3JQb3BvdmVyTWFjIDogV0tDb2xvclBpY2tlck1hYyB7CitAcHJpdmF0ZQorICAgIE5TUG9w
b3ZlckNvbG9yV2VsbCogcG9wb3ZlcldlbGw7Cit9CistIChpZClpbml0V2l0aFBpY2tlcjooV2Vi
Q29sb3JQaWNrZXJNYWMqKXBpY2tlciB3aXRoQ29sb3I6KE5TQ29sb3IgKiljb2xvciB3aXRoUmVj
dDooY29uc3QgV2ViQ29yZTo6SW50UmVjdCYpcmVjdCB3aXRoVmlldzooV0tWaWV3Kil2aWV3Owor
QGVuZAorCisjZWxzZQorLy8gQSBsaXN0ZW5lciBjbGFzcyB0byBhY3QgYXMgYSBldmVudCB0YXJn
ZXQgZm9yIE5TQ29sb3JQYW5lbCBhbmQgc2VuZAorLy8gdGhlIHJlc3VsdHMgdG8gdGhlIEMrKyBj
bGFzcywgV2ViQ29sb3JQaWNrZXJNYWMuCitAaW50ZXJmYWNlIFdLQ29sb3JQYW5lbE1hYyA6IFdL
Q29sb3JQaWNrZXJNYWMKKy0gKGlkKWluaXQ7CistICh2b2lkKXNldEFuZFNob3dQaWNrZXI6KFdl
YkNvbG9yUGlja2VyTWFjKilwaWNrZXIgd2l0aENvbG9yOihOU0NvbG9yICopY29sb3I7CitAZW5k
CisKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJDb2xvclBp
Y2tlck1hYz4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xpZW50
KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCitQYXNzUmVmUHRy
PFdlYkNvbG9yUGlja2VyTWFjPiBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlj
a2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgV0tWaWV3KiB2aWV3KQogewotICAgIHJldHVy
biBhZG9wdFJlZihuZXcgV2ViQ29sb3JQaWNrZXJNYWMoY2xpZW50LCBpbml0aWFsQ29sb3IpKTsK
KyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbG9yUGlja2VyTWFjKGNsaWVudCwgaW5pdGlh
bENvbG9yLCByZWN0LCB2aWV3KSk7CiB9CiAKIFdlYkNvbG9yUGlja2VyTWFjOjp+V2ViQ29sb3JQ
aWNrZXJNYWMoKQogewotICAgIEFTU0VSVCghbV9wYW5lbCk7CisjaWYgRU5BQkxFKElOUFVUX1RZ
UEVfQ09MT1JfUE9QT1ZFUikKKyAgICBpZiAobV9jb2xvclBpY2tlclVJKQorICAgICAgICBlbmRQ
aWNrZXIoKTsKKyNlbHNlCisgICAgQVNTRVJUKCFtX2NvbG9yUGlja2VyVUkpOworI2VuZGlmCiB9
CiAKLVdlYkNvbG9yUGlja2VyTWFjOjpXZWJDb2xvclBpY2tlck1hYyhXZWJDb2xvclBpY2tlcjo6
Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCitXZWJD
b2xvclBpY2tlck1hYzo6V2ViQ29sb3JQaWNrZXJNYWMoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCog
Y2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3Jl
OjpJbnRSZWN0JiByZWN0LCBXS1ZpZXcqIHZpZXcpCiAgICAgOiBXZWJDb2xvclBpY2tlcihjbGll
bnQpCiB7Ci0gICAgbV9wYW5lbCA9IGFkb3B0TlMoW1tXS0NvbG9yUGFuZWxNYWMgYWxsb2NdIGlu
aXRdKTsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorICAgIG1fY29sb3JQ
aWNrZXJVSSA9IGFkb3B0TlMoW1tXS0NvbG9yUG9wb3Zlck1hYyBhbGxvY10gaW5pdFdpdGhQaWNr
ZXI6dGhpcyB3aXRoQ29sb3I6bnNDb2xvcihpbml0aWFsQ29sb3IpIHdpdGhSZWN0OnJlY3Qgd2l0
aFZpZXc6dmlld10pOworI2Vsc2UKKyAgICBtX2NvbG9yUGlja2VyVUkgPSBhZG9wdE5TKFtbV0tD
b2xvclBhbmVsTWFjIGFsbG9jXSBpbml0XSk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJDb2xvclBp
Y2tlck1hYzo6ZW5kUGlja2VyKCkKIHsKLSAgICBbbV9wYW5lbCBpbnZhbGlkYXRlXTsKLSAgICBt
X3BhbmVsID0gbnVsbHB0cjsKKyAgICBbbV9jb2xvclBpY2tlclVJIGludmFsaWRhdGVdOworICAg
IG1fY29sb3JQaWNrZXJVSSA9IG51bGxwdHI7CiB9CiAKIHZvaWQgV2ViQ29sb3JQaWNrZXJNYWM6
OnNldFNlbGVjdGVkQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQogewotICAgIGlm
ICghbV9jbGllbnQgfHwgIW1fcGFuZWwpCisgICAgaWYgKCFtX2NsaWVudCB8fCAhbV9jb2xvclBp
Y2tlclVJKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgW21fcGFuZWwgc2V0Q29sb3I6bnND
b2xvcihjb2xvcildOworICAgIFttX2NvbG9yUGlja2VyVUkgc2V0Q29sb3I6bnNDb2xvcihjb2xv
cildOwogfQogCiB2b2lkIFdlYkNvbG9yUGlja2VyTWFjOjpkaWRDaG9vc2VDb2xvcihjb25zdCBX
ZWJDb3JlOjpDb2xvciYgY29sb3IpCkBAIC05NywyMCArMTM0LDg0IEBAIHZvaWQgV2ViQ29sb3JQ
aWNrZXJNYWM6OmRpZENob29zZUNvbG9yKGMKICAgICAKICAgICBtX2NsaWVudC0+ZGlkQ2hvb3Nl
Q29sb3IoY29sb3IpOwogfQorCiB2b2lkIFdlYkNvbG9yUGlja2VyTWFjOjpzaG93Q29sb3JQaWNr
ZXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNvbG9yKQogewogICAgIGlmICghbV9jbGllbnQpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV9wYW5lbCkKLSAgICAgICAgbV9wYW5lbCA9IGFk
b3B0TlMoW1tXS0NvbG9yUGFuZWxNYWMgYWxsb2NdIGluaXRdKTsKKyNpZiAhRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1JfUE9QT1ZFUikKKyAgICBpZiAoIW1fY29sb3JQaWNrZXJVSSkKKyAgICAgICAg
bV9jb2xvclBpY2tlclVJID0gYWRvcHROUyhbW1dLQ29sb3JQYW5lbE1hYyBhbGxvY10gaW5pdF0p
OwogCi0gICAgW21fcGFuZWwgc2V0QW5kU2hvd1BpY2tlcjp0aGlzIHdpdGhDb2xvcjpuc0NvbG9y
KGNvbG9yKV07CisgICAgW21fY29sb3JQaWNrZXJVSSBzZXRBbmRTaG93UGlja2VyOnRoaXMgd2l0
aENvbG9yOm5zQ29sb3IoY29sb3IpXTsKKyNlbmRpZgogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKIAotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xP
Ul9QT1BPVkVSKQorCitAaW1wbGVtZW50YXRpb24gV0tDb2xvclBvcG92ZXJNYWMKKy0gKGlkKWlu
aXRXaXRoUGlja2VyOihXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjICopcGlja2VyIHdpdGhDb2xv
cjooTlNDb2xvciAqKWNvbG9yIHdpdGhSZWN0Oihjb25zdCBXZWJDb3JlOjpJbnRSZWN0ICYpcmVj
dCB3aXRoVmlldzooV0tWaWV3ICopdmlldworeworICAgIGlmKCEoc2VsZiA9IFtzdXBlciBpbml0
XSkpCisgICAgICAgICAgICByZXR1cm4gc2VsZjsKKyAgICBfcGlja2VyID0gcGlja2VyOworCisg
ICAgcG9wb3ZlcldlbGwgPSBbW05TUG9wb3ZlckNvbG9yV2VsbCBhbGxvY10gaW5pdFdpdGhGcmFt
ZTpOU1JlY3RGcm9tQ0dSZWN0KHJlY3QpXTsKKyAgICBpZiAoIXBvcG92ZXJXZWxsKQorICAgICAg
ICAgICAgcmV0dXJuIHNlbGY7CisKKyAgICBbW3ZpZXcgd2luZG93XS5jb250ZW50VmlldyBhZGRT
dWJ2aWV3OnBvcG92ZXJXZWxsXTsKKyAgICBbcG9wb3ZlcldlbGwgcmV0YWluXTsKKyAgICBbcG9w
b3ZlcldlbGwgc2V0VGFyZ2V0OnNlbGZdOworICAgIFtwb3BvdmVyV2VsbCBzZXRBY3Rpb246QHNl
bGVjdG9yKGRpZENob29zZUNvbG9yOildOworICAgIFtwb3BvdmVyV2VsbCBzZXRDb2xvcjpjb2xv
cl07CisgICAgW3BvcG92ZXJXZWxsIF9zaG93UG9wb3Zlcl07CisKKyAgICBfbGFzdENoYW5nZWRC
eVVzZXIgPSBZRVM7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClpbnZhbGlkYXRl
Cit7CisgICAgW3BvcG92ZXJXZWxsIHJlbW92ZUZyb21TdXBlcnZpZXdXaXRob3V0TmVlZGluZ0Rp
c3BsYXldOworICAgIFtwb3BvdmVyV2VsbCBkZWFjdGl2YXRlXTsKKyAgICBbcG9wb3ZlcldlbGwg
cmVsZWFzZV07CisgICAgX3BpY2tlciA9IG5pbDsKK30KKworLSAodm9pZCl3aW5kb3dXaWxsQ2xv
c2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2xhc3RDaGFuZ2VkQnlV
c2VyID0gWUVTOworICAgIF9waWNrZXItPmVuZFBpY2tlcigpOworfQorCistICh2b2lkKWRpZENo
b29zZUNvbG9yOihpZClzZW5kZXIKK3sKKyAgICBpZiAoc2VuZGVyICE9IHBvcG92ZXJXZWxsKQor
ICAgICAgICByZXR1cm47CisKKyAgICAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIDxpbnB1
dCB0eXBlPSdjb2xvcic+IHZhbHVlIGlzIHByb2dyYW1tYXRpY2FsbHkgc2V0LgorICAgIGlmICgh
X2xhc3RDaGFuZ2VkQnlVc2VyKSB7CisgICAgICAgIF9sYXN0Q2hhbmdlZEJ5VXNlciA9IFlFUzsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgX3BpY2tlci0+ZGlkQ2hvb3Nl
Q29sb3IoV2ViQ29yZTo6Y29sb3JGcm9tTlNDb2xvcihbcG9wb3ZlcldlbGwgY29sb3JdKSk7Cit9
CisKKy0gKHZvaWQpc2V0Q29sb3I6KE5TQ29sb3IgKiljb2xvcgoreworICAgIF9sYXN0Q2hhbmdl
ZEJ5VXNlciA9IE5POworICAgIFtwb3BvdmVyV2VsbCBzZXRDb2xvcjpjb2xvcl07Cit9CisKK0Bl
bmQKKworI2Vsc2UKIAogQGltcGxlbWVudGF0aW9uIFdLQ29sb3JQYW5lbE1hYwogCkBAIC0xNTQs
MTUgKzI1NSwxOCBAQCAtICh2b2lkKXdpbmRvd1dpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gCiAg
ICAgX3BpY2tlci0+ZW5kUGlja2VyKCk7CiB9CiAKLS0gKHZvaWQpZGlkQ2hvb3NlQ29sb3I6KE5T
Q29sb3JQYW5lbCAqKXBhbmVsCistICh2b2lkKWRpZENob29zZUNvbG9yOihpZClzZW5kZXIKIHsK
KyAgICBpZiAoc2VuZGVyICE9IFtOU0NvbG9yUGFuZWwgc2hhcmVkQ29sb3JQYW5lbF0pCisgICAg
ICAgIHJldHVybjsKKwogICAgIC8vIEhhbmRsZSB0aGUgY2FzZSB3aGVyZSB0aGUgPGlucHV0IHR5
cGU9J2NvbG9yJz4gdmFsdWUgaXMgcHJvZ3JhbW1hdGljYWxseSBzZXQuCiAgICAgaWYgKCFfbGFz
dENoYW5nZWRCeVVzZXIpIHsKICAgICAgICAgX2xhc3RDaGFuZ2VkQnlVc2VyID0gWUVTOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgX3BpY2tlci0+ZGlkQ2hvb3NlQ29sb3IoV2ViQ29y
ZTo6Y29sb3JGcm9tTlNDb2xvcihbcGFuZWwgY29sb3JdKSk7CisgICAgX3BpY2tlci0+ZGlkQ2hv
b3NlQ29sb3IoV2ViQ29yZTo6Y29sb3JGcm9tTlNDb2xvcihbc2VuZGVyIGNvbG9yXSkpOwogfQog
CiAtICh2b2lkKXNldENvbG9yOihOU0NvbG9yICopY29sb3IKQEAgLTE3Myw2ICsyNzcsOCBAQCAt
ICh2b2lkKXNldENvbG9yOihOU0NvbG9yICopY29sb3IKIAogQGVuZAogCisjZW5kaWYgLy8gRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKKwogI2VuZGlmIC8vIFVTRShBUFBLSVQpCiAK
ICNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUikK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207942</attachid>
            <date>2013-08-01 11:48:48 -0700</date>
            <delta_ts>2013-08-01 14:35:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119356-20130801114848.patch</filename>
            <type>text/plain</type>
            <size>20888</size>
            <attacher name="Ruth Fong">ruthiecftg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTM1OTIpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTA4LTAxICBSdXRoIEZvbmcgIDxydXRoX2Zv
bmdAYXBwbGUuY29tPgorCisgICAgICAgIFtGb3JtczogY29sb3JdIDxpbnB1dCB0eXBlPSdjb2xv
cic+IHBvcG92ZXIgY29sb3Igd2VsbCBpbXBsZW1lbnRhdGlvbgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTQ0MTEwMDg+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE5MzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDogQWRkZWQgSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVS
IGZlYXR1cmUuCisKIDIwMTMtMDctMzEgIFJ1dGggRm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgPGlucHV0IHR5cGU9Y29sb3I+IE1hYyBVSSBiZWhhdmlvdXIKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvRmVhdHVyZURlZmluZXMuaAkocmV2aXNpb24gMTUzNTQzKQorKysgU291cmNlL1dURi93dGYv
RmVhdHVyZURlZmluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDYgKzE5MCwxMiBAQAogI2Rl
ZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiAxCiAjZW5kaWYKIAorI2lmIF9fTUFDX09TX1hf
VkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTA3MAorI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9U
WVBFX0NPTE9SX1BPUE9WRVIpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9W
RVIgMQorI2VuZGlmCisjZW5kaWYKKwogI2VuZGlmIC8qIFBMQVRGT1JNKE1BQykgJiYgIVBMQVRG
T1JNKElPUykgKi8KIAogLyogLS0tLS0tLS0tIEFwcGxlIFdpbmRvd3MgcG9ydCAtLS0tLS0tLS0g
Ki8KQEAgLTUxMCw2ICs1MTYsMTAgQEAKICNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Ig
MAogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVS
KQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSIDAKKyNlbmRpZgorCiAj
aWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfREFURSkKICNkZWZpbmUgRU5BQkxFX0lOUFVU
X1RZUEVfREFURSAwCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MzU5MikKKysr
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBA
CisyMDEzLTA4LTAxICBSdXRoIEZvbmcgIDxydXRoX2ZvbmdAYXBwbGUuY29tPgorCisgICAgICAg
IFtGb3JtczogY29sb3JdIDxpbnB1dCB0eXBlPSdjb2xvcic+IHBvcG92ZXIgY29sb3Igd2VsbCBp
bXBsZW1lbnRhdGlvbgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTQ0MTEwMDg+IGFuZCBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5MzU2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhZGRzIGFuIHBv
cG92ZXIgaW1wbGVtZW50YXRpb24gb2YgPGlucHV0IHR5cGU9J2NvbG9yJz4uCisKKyAgICAgICAg
KiBDb25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzogQWRkZWQgYW5kIGVuYWJs
ZWQgSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVDb2xvclBpY2tlcik6IFVwZGF0ZWQgdG8gcGFzcyB0aGUgCisgICAgICAgICAgY29vcmRp
bmF0ZXMgb2YgdGhlIDxpbnB1dCB0eXBlPSdjb2xvcic+IGVsZW1lbnQgYW5kIHRoZSBXS1ZpZXcg
CisgICAgICAgICAgb2JqZWN0IGZvciB0aGUgd2luZG93LgorCisgICAgICAgICogVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld1dp
bGxTdGFydExpdmVSZXNpemUpOiBDbG9zZSBwb3BvdmVyIGNvbG9yIAorICAgICAgICAgIHBpY2tl
ciB3aGVuIHRoZSB2aWV3IGlzIHJlc2l6ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6dmlld0luV2luZG93U3RhdGVEaWRDaGFuZ2UpOiBDbG9zZSBwb3BvdmVyIGNvbG9yCisgICAg
ICAgICAgcGlja2VyIHdoZW4gdGhlIHZpZXcgaXMgbm8gbG9uZ2VyIGluIHRoZSB3aW5kb3cuCisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd0NvbG9yUGlja2VyKToKKworICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBp
Y2tlck1hYzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJNYWM6On5X
ZWJDb2xvclBpY2tlck1hYyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpX
ZWJDb2xvclBpY2tlck1hYyk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpl
bmRQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlck1hYzo6c2V0U2VsZWN0
ZWRDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpzaG93Q29sb3JQ
aWNrZXIpOgorICAgICAgICBNZXRob2RzIHVwZGF0ZWQgdG8gaGFuZGxlIGJvdGggdGhlIGNvbG9y
IHBhbmVsIGltcGxlbWVudGF0aW9uIGFuZCAKKyAgICAgICAgICB0aGUgcG9wb3ZlciBpbXBsZW1l
bnRhdGlvbjsgYWxzbyByZW5hbWVkIG1fcGFuZWwgdG8gbV9jb2xvclBpY2tlclVJLiAKKworICAg
ICAgICAoLVtXS0NvbG9yUG9wb3Zlck1hYyBpbml0V2l0aFBpY2tlcjpXZWJLaXQ6OndpdGhDb2xv
cjp3aXRoUmVjdDpXZWJDb3JlOjp3aXRoVmlldzpdKToKKyAgICAgICAgKC1bV0tDb2xvclBvcG92
ZXJNYWMgZGVhbGxvY10pOgorICAgICAgICAoLVtXS0NvbG9yUG9wb3Zlck1hYyBpbnZhbGlkYXRl
XSk6CisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVyTWFjIHdpbmRvd1dpbGxDbG9zZTpdKToKKyAg
ICAgICAgKC1bV0tDb2xvclBvcG92ZXJNYWMgZGlkQ2hvb3NlQ29sb3I6XSk6CisgICAgICAgICgt
W1dLQ29sb3JQb3BvdmVyTWFjIHNldENvbG9yOl0pOgorICAgICAgICBXS0NvbG9yUG9wb3Zlck1h
YyBwcm92aWRlcyB0aGUgcG9wb3ZlciBpbXBsZW1lbnRhdGlvbiBvZiA8aW5wdXQgdHlwZT0nY29s
b3InPi4KKworICAgICAgICAoLVtXS0NvbG9yUGFuZWxNYWMgZGlkQ2hvb3NlQ29sb3I6XSk6IFVw
ZGF0ZWQgdG8gbWF0Y2ggdGhlIGludGVyZmFjZSBvZiAKKyAgICAgICAgICBXS0NvbG9yUGlja2Vy
TWFjOjpkaWRDaG9vc2VDb2xvci4KKwogMjAxMy0wOC0wMSAgTWlsaWFuIFdvbGZmICA8bWlsaWFu
LndvbGZmQGtkYWIuY29tPgogCiAgICAgICAgIFtRdF0gRW5hYmxlIFFNTCBoYW5kbGluZyBvZiBj
cmFzaGVkL3VucmVzcG9uc2l2ZSBRdFdlYlByb2Nlc3MKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0Nv
bmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShyZXZpc2lv
biAxNTM1NDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5l
cy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtOTksNiArOTksMTEgQEAgRU5BQkxFX0lGUkFN
RV9TRUFNTEVTUyA9IEVOQUJMRV9JRlJBTUVfUwogRU5BQkxFX0lOREVYRURfREFUQUJBU0UgPSA7
CiBFTkFCTEVfSU5QVVRfU1BFRUNIID0gOwogRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IgPSBFTkFC
TEVfSU5QVVRfVFlQRV9DT0xPUjsKK0VOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIgPSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVJfJChQTEFURk9STV9OQU1FKSk7CitFTkFC
TEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSX21hY29zeCA9ICQoRU5BQkxFX0lOUFVUX1RZUEVf
Q09MT1JfUE9QT1ZFUl9tYWNvc3hfJChUQVJHRVRfTUFDX09TX1hfVkVSU0lPTl9NQUpPUikpOwor
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUl9tYWNvc3hfMTA3MCA9IEVOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SX1BPUE9WRVI7CitFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSX21h
Y29zeF8xMDgwID0gRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUjsKK0VOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SX1BPUE9WRVJfbWFjb3N4XzEwOTAgPSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
Ul9QT1BPVkVSOwogRU5BQkxFX0lOUFVUX1RZUEVfREFURSA9ICQoRU5BQkxFX0lOUFVUX1RZUEVf
REFURV8kKFBMQVRGT1JNX05BTUUpKTsKIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVfaXBob25lb3Mg
PSBFTkFCTEVfSU5QVVRfVFlQRV9EQVRFOwogRU5BQkxFX0lOUFVUX1RZUEVfREFURV9pcGhvbmVz
aW11bGF0b3IgPSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVfaXBob25lb3MpOwpAQCAtMTg2LDQg
KzE5MSw0IEBAIEVOQUJMRV9YU0xUID0gRU5BQkxFX1hTTFQ7CiAKIEVOQUJMRV9GVExfSklUID0g
OwogCi1GRUFUVVJFX0RFRklORVMgPSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FD
Q0VMRVJBVEVEXzJEX0NBTlZBUykgJChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElU
SU9OSU5HKSAkKEVOQUJMRV9DQU5WQVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVO
QUJMRV9DSEFOTkVMX01FU1NBR0lORykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19C
T1hfREVDT1JBVElPTl9CUkVBSykgJChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVO
QUJMRV9DU1NfRVhDTFVTSU9OUykgJChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19J
TUFHRV9PUklFTlRBVElPTikgJChFTkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxF
X0NTU19SRUdJT05TKSAkKEVOQUJMRV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX0NPTVBPU0lU
SU5HKSAkKEVOQUJMRV9DU1NfU0hBUEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAk
KEVOQUJMRV9DU1NfVFJBTlNGT1JNU19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NT
U19WQVJJQUJMRVMpICQoRU5BQkxFX0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NT
UzNfVEVYVCkgJChFTkFCTEVfQ1NTM19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9W
SVNJQklMSVRZKSAkKEVOQUJMRV9DVVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hC
T0FSRF9TVVBQT1JUKSAkKEVOQUJMRV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RS
QU5TRkVSX0lURU1TKSAkKEVOQUJMRV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9P
UklFTlRBVElPTikgJChFTkFCTEVfRElBTE9HX0VMRU1FTlQpICQoRU5BQkxFX0RJUkVDVE9SWV9V
UExPQUQpICQoRU5BQkxFX0RPTTRfRVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FC
TEVfUkVHSU9OKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9N
RURJQV9WMikgJChFTkFCTEVfRklMRV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxF
X0ZPTlRfTE9BRF9FVkVOVFMpICQoRU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1F
UEFEKSAkKEVOQUJMRV9HRU9MT0NBVElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVS
X1RIUk9UVExJTkcpICQoRU5BQkxFX0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFC
QVNFKSAkKEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0Up
ICQoRU5BQkxFX0lOUFVUX1NQRUVDSCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExF
VEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dF
RUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVO
RE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVH
QUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVf
TElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQo
RU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxF
X01IVE1MKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkg
JChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05PVElGSUNBVElPTlMp
ICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQo
RU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU8pICQoRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQp
ICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkg
JChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJM
RV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5B
QkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hf
U1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkg
JChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19GT05U
UykgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAk
KEVOQUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUikgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5H
KSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVP
X1RSQUNLKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChF
TkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlO
RykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQp
ICQoRU5BQkxFX0ZUTF9KSVQpICQoRkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOwor
RkVBVFVSRV9ERUZJTkVTID0gJChFTkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVS
QVRFRF8yRF9DQU5WQVMpICQoRU5BQkxFX0JMT0IpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklO
RykgJChFTkFCTEVfQ0FOVkFTX1BBVEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVf
Q0hBTk5FTF9NRVNTQUdJTkcpICQoRU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RF
Q09SQVRJT05fQlJFQUspICQoRU5BQkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVf
Q1NTX0VYQ0xVU0lPTlMpICQoRU5BQkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0Vf
T1JJRU5UQVRJT04pICQoRU5BQkxFX0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1Nf
UkVHSU9OUykgJChFTkFCTEVfQ1NTX1NIQURFUlMpICQoRU5BQkxFX0NTU19DT01QT1NJVElORykg
JChFTkFCTEVfQ1NTX1NIQVBFUykgJChFTkFCTEVfQ1NTX1NUSUNLWV9QT1NJVElPTikgJChFTkFC
TEVfQ1NTX1RSQU5TRk9STVNfQU5JTUFUSU9OU19VTlBSRUZJWEVEKSAkKEVOQUJMRV9DU1NfVkFS
SUFCTEVTKSAkKEVOQUJMRV9DU1MzX0NPTkRJVElPTkFMX1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RF
WFQpICQoRU5BQkxFX0NTUzNfVEVYVF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJ
TElUWSkgJChFTkFCTEVfQ1VTVE9NX1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRf
U1VQUE9SVCkgJChFTkFCTEVfREFUQUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZF
Ul9JVEVNUykgJChFTkFCTEVfREVUQUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5U
QVRJT04pICQoRU5BQkxFX0RJQUxPR19FTEVNRU5UKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FE
KSAkKEVOQUJMRV9ET000X0VWRU5UU19DT05TVFJVQ1RPUikgJChFTkFCTEVfRFJBR0dBQkxFX1JF
R0lPTikgJChFTkFCTEVfRU5DUllQVEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFf
VjIpICQoRU5BQkxFX0ZJTEVfU1lTVEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05U
X0xPQURfRVZFTlRTKSAkKEVOQUJMRV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkg
JChFTkFCTEVfR0VPTE9DQVRJT04pICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJP
VFRMSU5HKSAkKEVOQUJMRV9ISUdIX0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkg
JChFTkFCTEVfSUZSQU1FX1NFQU1MRVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVO
QUJMRV9JTlBVVF9TUEVFQ0gpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lO
UFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQ
RV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVC
VUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdB
Q1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFC
TEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFU
SE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQo
RU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NSUNST0RBVEEp
ICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRf
VVRJTFMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9B
UEkpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklE
RU8pICQoRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMp
ICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JF
UVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAk
KEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NI
QVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFU
QUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKSAk
KEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVO
VCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9USFJFQURFRF9IVE1MX1BBUlNF
UikgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkg
JChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSUVXX01PREVf
Q1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9X
RUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFC
TEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRkVBVFVS
RV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDE1MzU0MykKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA1LDYgKzEw
MDUsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnZpZXdXaWxsU3RhcnRMaXZlUmVzaQogewogICAg
IGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CisjaWYgRU5BQkxFKElOUFVUX1RZUEVf
Q09MT1JfUE9QT1ZFUikKKyAgICAvLyBDbG9zZSBwb3BvdmVyIGNvbG9yIHdlbGwgd2hlbiByZXNp
emluZyB3aW5kb3cuCisgICAgaWYgKG1fY29sb3JQaWNrZXIpCisgICAgICAgIGVuZENvbG9yUGlj
a2VyKCk7CisjZW5kaWYKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlZp
ZXdXaWxsU3RhcnRMaXZlUmVzaXplKCksIG1fcGFnZUlEKTsKIH0KIApAQCAtMTA1Myw2ICsxMDU4
LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3SW5XaW5kb3dTdGF0ZURpZEMKICAgICAgICAg
ICAgIG1fZHJhd2luZ0FyZWEtPmxheWVySG9zdGluZ01vZGVEaWRDaGFuZ2UoKTsKICAgICAgICAg
fQogICAgIH0KKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorICAgIGVsc2Ug
eworICAgICAgICAvLyBXaGVuIGxlYXZpbmcgdGhlIGN1cnJlbnQgcGFnZSwgY2xvc2UgdGhlIHBv
cG92ZXIgY29sb3Igd2VsbC4KKyAgICAgICAgaWYgKG1fY29sb3JQaWNrZXIpCisgICAgICAgICAg
ICBlbmRDb2xvclBpY2tlcigpOworICAgIH0KKyNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZUZsYWdzIGZsYWdzKQpAQCAtMjkyMyw5ICsy
OTM1LDEzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpuZWVkVG91Y2hFdmVudHMoYm9vbCAKICNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUikKIHZvaWQgV2ViUGFnZVByb3h5OjpzaG93Q29sb3JQaWNr
ZXIoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgSW50UmVjdCYgZWxl
bWVudFJlY3QpCiB7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKKyAgICBt
X2NvbG9yUGlja2VyID0gbV9wYWdlQ2xpZW50LT5jcmVhdGVDb2xvclBpY2tlcih0aGlzLCBpbml0
aWFsQ29sb3IsIGVsZW1lbnRSZWN0KTsKKyNlbHNlCiAgICAgaWYgKCFtX2NvbG9yUGlja2VyKQog
ICAgICAgICBtX2NvbG9yUGlja2VyID0gbV9wYWdlQ2xpZW50LT5jcmVhdGVDb2xvclBpY2tlcih0
aGlzLCBpbml0aWFsQ29sb3IsIGVsZW1lbnRSZWN0KTsKICAgICBtX2NvbG9yUGlja2VyLT5zaG93
Q29sb3JQaWNrZXIoaW5pdGlhbENvbG9yKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlBhZ2VQcm94
eTo6c2V0Q29sb3JQaWNrZXJDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCkluZGV4
OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1w
bC5tbQkocmV2aXNpb24gMTUzNTQzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvUGFnZUNsaWVudEltcGwubW0JKHdvcmtpbmcgY29weSkKQEAgLTM5NCw5ICszOTQsOSBAQCBQ
YXNzUmVmUHRyPFdlYkNvbnRleHRNZW51UHJveHk+IFBhZ2VDbGllCiB9CiAKICNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKLVBhc3NSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IFBhZ2VDbGllbnRJ
bXBsOjpjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiBpbml0aWFsQ29sb3IsICBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JikKK1Bhc3NSZWZQ
dHI8V2ViQ29sb3JQaWNrZXI+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb2xvclBpY2tlcihXZWJQ
YWdlUHJveHkqIHBhZ2UsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IsICBjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBXZWJDb2xvclBpY2tlck1h
Yzo6Y3JlYXRlKHBhZ2UsIGluaXRpYWxDb2xvcik7CisgICAgcmV0dXJuIFdlYkNvbG9yUGlja2Vy
TWFjOjpjcmVhdGUocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0LCB3a1ZpZXcoKSk7CiB9CiAjZW5k
aWYKIApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1h
Yy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQ
aWNrZXJNYWMuaAkocmV2aXNpb24gMTUzNTQzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJDb2xvclBpY2tlck1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNywxMCArMzcsMTUg
QEAKICNpZiBVU0UoQVBQS0lUKQogCiAjaW1wb3J0ICJXZWJDb2xvclBpY2tlci5oIgorI2ltcG9y
dCAiV0tWaWV3LmgiCisjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDx3dGYv
UmV0YWluUHRyLmg+CiAKLU9CSkNfQ0xBU1MgTlNDb2xvcldlbGw7Ci1PQkpDX0NMQVNTIFdLQ29s
b3JQYW5lbE1hYzsKK0Bwcm90b2NvbCBXS0NvbG9yUGlja2VyVUlNYWMgPE5TT2JqZWN0PgorLSAo
dm9pZClkaWRDaG9vc2VDb2xvcjooaWQpc2VuZGVyOworLSAodm9pZClpbnZhbGlkYXRlOworLSAo
dm9pZClzZXRDb2xvcjooTlNDb2xvciAqKWNvbG9yOworQGVuZAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiBjbGFzcyBDb2xvcjsKQEAgLTUwLDcgKzU1LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAg
ICAgCiBjbGFzcyBXZWJDb2xvclBpY2tlck1hYyA6IHB1YmxpYyBXZWJDb2xvclBpY2tlciB7CiBw
dWJsaWM6ICAgICAgICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlck1hYz4g
Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOwor
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyTWFjPiBjcmVhdGUoV2ViQ29sb3JQ
aWNrZXI6OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50
UmVjdCYsIFdLVmlldyopOwogICAgIH5XZWJDb2xvclBpY2tlck1hYygpOwogCiAgICAgdmlydHVh
bCB2b2lkIGVuZFBpY2tlcigpIE9WRVJSSURFOwpAQCAtNjAsOCArNjUsOCBAQCBwdWJsaWM6ICAg
ICAgICAKICAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CiAK
IHByaXZhdGU6Ci0gICAgV2ViQ29sb3JQaWNrZXJNYWMoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCos
IGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7Ci0gICAgUmV0YWluUHRyPFdLQ29sb3JQYW5lbE1hYz4g
bV9wYW5lbDsKKyAgICBXZWJDb2xvclBpY2tlck1hYyhXZWJDb2xvclBpY2tlcjo6Q2xpZW50Kiwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV0tWaWV3Kik7
CisgICAgUmV0YWluUHRyPE5TT2JqZWN0PFdLQ29sb3JQaWNrZXJVSU1hYz4+IG1fY29sb3JQaWNr
ZXJVSTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCShyZXZpc2lvbiAxNTM1
NDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1t
CSh3b3JraW5nIGNvcHkpCkBAIC00MCw1NCArNDAsNzMgQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIAotLy8gQSBsaXN0ZW5lciBjbGFzcyB0byBhY3QgYXMgYSBldmVudCB0YXJnZXQgZm9y
IE5TQ29sb3JQYW5lbCBhbmQgc2VuZAotLy8gdGhlIHJlc3VsdHMgdG8gdGhlIEMrKyBjbGFzcywg
V2ViQ29sb3JQaWNrZXJNYWMuCi1AaW50ZXJmYWNlIFdLQ29sb3JQYW5lbE1hYyA6IE5TT2JqZWN0
PE5TV2luZG93RGVsZWdhdGU+IHsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVS
KQorCisjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKworQGNsYXNzIE5TQ29sb3JX
ZWxsOworCitAaW50ZXJmYWNlIFdLQ29sb3JQb3BvdmVyTWFjIDogTlNPYmplY3Q8V0tDb2xvclBp
Y2tlclVJTWFjLCBOU1dpbmRvd0RlbGVnYXRlPiB7CiBAcHJpdmF0ZQogICAgIEJPT0wgX2xhc3RD
aGFuZ2VkQnlVc2VyOwotICAgIFdlYkNvbG9yUGlja2VyTWFjKiBfcGlja2VyOworICAgIFdlYkNv
bG9yUGlja2VyTWFjICpfcGlja2VyOworICAgIFJldGFpblB0cjxOU0NvbG9yV2VsbD4gX3BvcG92
ZXJXZWxsOwogfQorLSAoaWQpaW5pdFdpdGhQaWNrZXI6KFdlYkNvbG9yUGlja2VyTWFjKilwaWNr
ZXIgd2l0aENvbG9yOihOU0NvbG9yICopY29sb3Igd2l0aFJlY3Q6KGNvbnN0IFdlYkNvcmU6Oklu
dFJlY3QmKXJlY3Qgd2l0aFZpZXc6KFdLVmlldyopdmlldzsKK0BlbmQKIAotLSAoaWQpaW5pdDsK
LS0gKHZvaWQpc2V0QW5kU2hvd1BpY2tlcjooV2ViS2l0OjpXZWJDb2xvclBpY2tlck1hYyopcGlj
a2VyIHdpdGhDb2xvcjooTlNDb2xvciAqKWNvbG9yOwotLSAodm9pZClkaWRDaG9vc2VDb2xvcjoo
TlNDb2xvclBhbmVsICopcGFuZWw7Ci0tICh2b2lkKWludmFsaWRhdGU7Ci0KLS8vIFNldHMgY29s
b3IgdG8gdGhlIE5TQ29sb3JQYW5lbCBhcyBhIG5vbiB1c2VyIGNoYW5nZS4KLS0gKHZvaWQpc2V0
Q29sb3I6KE5TQ29sb3IgKiljb2xvcjsKKyNlbHNlCiAKK0BpbnRlcmZhY2UgV0tDb2xvclBhbmVs
TWFjIDogTlNPYmplY3Q8V0tDb2xvclBpY2tlclVJTWFjLCBOU1dpbmRvd0RlbGVnYXRlPiB7CitA
cHJpdmF0ZQorICAgIEJPT0wgX2xhc3RDaGFuZ2VkQnlVc2VyOworICAgIFdlYkNvbG9yUGlja2Vy
TWFjICpfcGlja2VyOworfQorLSAoaWQpaW5pdDsKKy0gKHZvaWQpc2V0QW5kU2hvd1BpY2tlcjoo
V2ViQ29sb3JQaWNrZXJNYWMqKXBpY2tlciB3aXRoQ29sb3I6KE5TQ29sb3IgKiljb2xvcjsKIEBl
bmQKIAorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1QYXNzUmVmUHRyPFdlYkNvbG9y
UGlja2VyTWFjPiBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGll
bnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcikKK1Bhc3NSZWZQ
dHI8V2ViQ29sb3JQaWNrZXJNYWM+IFdlYkNvbG9yUGlja2VyTWFjOjpjcmVhdGUoV2ViQ29sb3JQ
aWNrZXI6OkNsaWVudCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9y
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBXS1ZpZXcqIHZpZXcpCiB7Ci0gICAgcmV0
dXJuIGFkb3B0UmVmKG5ldyBXZWJDb2xvclBpY2tlck1hYyhjbGllbnQsIGluaXRpYWxDb2xvcikp
OworICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29sb3JQaWNrZXJNYWMoY2xpZW50LCBpbml0
aWFsQ29sb3IsIHJlY3QsIHZpZXcpKTsKIH0KIAogV2ViQ29sb3JQaWNrZXJNYWM6On5XZWJDb2xv
clBpY2tlck1hYygpCiB7Ci0gICAgQVNTRVJUKCFtX3BhbmVsKTsKKyNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUl9QT1BPVkVSKQorICAgIGlmIChtX2NvbG9yUGlja2VyVUkpCisgICAgICAgIGVu
ZFBpY2tlcigpOworI2Vsc2UKKyAgICBBU1NFUlQoIW1fY29sb3JQaWNrZXJVSSk7CisjZW5kaWYK
IH0KIAotV2ViQ29sb3JQaWNrZXJNYWM6OldlYkNvbG9yUGlja2VyTWFjKFdlYkNvbG9yUGlja2Vy
OjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvcikKK1dl
YkNvbG9yUGlja2VyTWFjOjpXZWJDb2xvclBpY2tlck1hYyhXZWJDb2xvclBpY2tlcjo6Q2xpZW50
KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IFdlYkNv
cmU6OkludFJlY3QmIHJlY3QsIFdLVmlldyogdmlldykKICAgICA6IFdlYkNvbG9yUGlja2VyKGNs
aWVudCkKIHsKLSAgICBtX3BhbmVsID0gYWRvcHROUyhbW1dLQ29sb3JQYW5lbE1hYyBhbGxvY10g
aW5pdF0pOworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpCisgICAgbV9jb2xv
clBpY2tlclVJID0gYWRvcHROUyhbW1dLQ29sb3JQb3BvdmVyTWFjIGFsbG9jXSBpbml0V2l0aFBp
Y2tlcjp0aGlzIHdpdGhDb2xvcjpuc0NvbG9yKGluaXRpYWxDb2xvcikgd2l0aFJlY3Q6cmVjdCB3
aXRoVmlldzp2aWV3XSk7CisjZWxzZQorICAgIG1fY29sb3JQaWNrZXJVSSA9IGFkb3B0TlMoW1tX
S0NvbG9yUGFuZWxNYWMgYWxsb2NdIGluaXRdKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYkNvbG9y
UGlja2VyTWFjOjplbmRQaWNrZXIoKQogewotICAgIFttX3BhbmVsIGludmFsaWRhdGVdOwotICAg
IG1fcGFuZWwgPSBudWxscHRyOworICAgIFttX2NvbG9yUGlja2VyVUkgaW52YWxpZGF0ZV07Cisg
ICAgbV9jb2xvclBpY2tlclVJID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJDb2xvclBpY2tlck1h
Yzo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCiB7Ci0gICAg
aWYgKCFtX2NsaWVudCB8fCAhbV9wYW5lbCkKKyAgICBpZiAoIW1fY2xpZW50IHx8ICFtX2NvbG9y
UGlja2VyVUkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBbbV9wYW5lbCBzZXRDb2xvcjpu
c0NvbG9yKGNvbG9yKV07CisgICAgW21fY29sb3JQaWNrZXJVSSBzZXRDb2xvcjpuc0NvbG9yKGNv
bG9yKV07CiB9CiAKIHZvaWQgV2ViQ29sb3JQaWNrZXJNYWM6OmRpZENob29zZUNvbG9yKGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKQEAgLTk3LDIwICsxMTYsOTIgQEAgdm9pZCBXZWJDb2xv
clBpY2tlck1hYzo6ZGlkQ2hvb3NlQ29sb3IoYwogICAgIAogICAgIG1fY2xpZW50LT5kaWRDaG9v
c2VDb2xvcihjb2xvcik7CiB9CisKIHZvaWQgV2ViQ29sb3JQaWNrZXJNYWM6OnNob3dDb2xvclBp
Y2tlcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCiB7CiAgICAgaWYgKCFtX2NsaWVudCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFtX3BhbmVsKQotICAgICAgICBtX3BhbmVsID0g
YWRvcHROUyhbW1dLQ29sb3JQYW5lbE1hYyBhbGxvY10gaW5pdF0pOworI2lmICFFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorICAgIGlmICghbV9jb2xvclBpY2tlclVJKQorICAgICAg
ICBtX2NvbG9yUGlja2VyVUkgPSBhZG9wdE5TKFtbV0tDb2xvclBhbmVsTWFjIGFsbG9jXSBpbml0
XSk7CiAKLSAgICBbbV9wYW5lbCBzZXRBbmRTaG93UGlja2VyOnRoaXMgd2l0aENvbG9yOm5zQ29s
b3IoY29sb3IpXTsKKyAgICBbbV9jb2xvclBpY2tlclVJIHNldEFuZFNob3dQaWNrZXI6dGhpcyB3
aXRoQ29sb3I6bnNDb2xvcihjb2xvcildOworI2VuZGlmCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SX1BPUE9WRVIpCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NvbG9yUG9wb3Zlck1hYworLSAoaWQp
aW5pdFdpdGhQaWNrZXI6KFdlYktpdDo6V2ViQ29sb3JQaWNrZXJNYWMgKilwaWNrZXIgd2l0aENv
bG9yOihOU0NvbG9yICopY29sb3Igd2l0aFJlY3Q6KGNvbnN0IFdlYkNvcmU6OkludFJlY3QgJily
ZWN0IHdpdGhWaWV3OihXS1ZpZXcgKil2aWV3Cit7CisgICAgaWYoIShzZWxmID0gW3N1cGVyIGlu
aXRdKSkKKyAgICAgICAgcmV0dXJuIHNlbGY7CisgICAgX3BpY2tlciA9IHBpY2tlcjsKKworICAg
IF9wb3BvdmVyV2VsbCA9IGFkb3B0TlMoV0tDcmVhdGVDb2xvclBvcG92ZXJXZWxsKE5TUmVjdEZy
b21DR1JlY3QocmVjdCkpKTsKKyAgICBpZiAoIV9wb3BvdmVyV2VsbCkKKyAgICAgICAgICAgIHJl
dHVybiBzZWxmOworCisgICAgW1t2aWV3IHdpbmRvd10uY29udGVudFZpZXcgYWRkU3Vidmlldzpf
cG9wb3ZlcldlbGwuZ2V0KCldOworICAgIFtfcG9wb3ZlcldlbGwgc2V0VGFyZ2V0OnNlbGZdOwor
ICAgIFtfcG9wb3ZlcldlbGwgc2V0QWN0aW9uOkBzZWxlY3RvcihkaWRDaG9vc2VDb2xvcjopXTsK
KyAgICBbX3BvcG92ZXJXZWxsIHNldENvbG9yOmNvbG9yXTsKKyAgICBXS1Nob3dDb2xvclBvcG92
ZXJXZWxsKF9wb3BvdmVyV2VsbC5nZXQoKSk7CisKKyAgICBfbGFzdENoYW5nZWRCeVVzZXIgPSBZ
RVM7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9pZClkZWFsbG9jCit7CisgICAgQVNT
RVJUKCFfcG9wb3ZlcldlbGwpOworICAgIEFTU0VSVCghX3BpY2tlcik7CisgICAgW3N1cGVyIGRl
YWxsb2NdOworfQorCistICh2b2lkKWludmFsaWRhdGUKK3sKKyAgICBbX3BvcG92ZXJXZWxsIHJl
bW92ZUZyb21TdXBlcnZpZXdXaXRob3V0TmVlZGluZ0Rpc3BsYXldOworICAgIFtfcG9wb3Zlcldl
bGwgc2V0VGFyZ2V0Om5pbF07CisgICAgW19wb3BvdmVyV2VsbCBzZXRBY3Rpb246bmlsXTsKKyAg
ICBbX3BvcG92ZXJXZWxsIGRlYWN0aXZhdGVdOworICAgIF9wb3BvdmVyV2VsbCA9IG5pbDsKKyAg
ICBfcGlja2VyID0gbmlsOworfQorCistICh2b2lkKXdpbmRvd1dpbGxDbG9zZTooTlNOb3RpZmlj
YXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBfbGFzdENoYW5nZWRCeVVzZXIgPSBZRVM7Cisg
ICAgX3BpY2tlci0+ZW5kUGlja2VyKCk7Cit9CisKKy0gKHZvaWQpZGlkQ2hvb3NlQ29sb3I6KGlk
KXNlbmRlcgoreworICAgIGlmIChzZW5kZXIgIT0gX3BvcG92ZXJXZWxsKQorICAgICAgICByZXR1
cm47CisKKyAgICAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIDxpbnB1dCB0eXBlPSdjb2xv
cic+IHZhbHVlIGlzIHByb2dyYW1tYXRpY2FsbHkgc2V0LgorICAgIGlmICghX2xhc3RDaGFuZ2Vk
QnlVc2VyKSB7CisgICAgICAgIF9sYXN0Q2hhbmdlZEJ5VXNlciA9IFlFUzsKKyAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgfQorCisgICAgX3BpY2tlci0+ZGlkQ2hvb3NlQ29sb3IoV2ViQ29y
ZTo6Y29sb3JGcm9tTlNDb2xvcihbX3BvcG92ZXJXZWxsIGNvbG9yXSkpOworfQorCistICh2b2lk
KXNldENvbG9yOihOU0NvbG9yICopY29sb3IKK3sKKyAgICBfbGFzdENoYW5nZWRCeVVzZXIgPSBO
TzsKKyAgICBbX3BvcG92ZXJXZWxsIHNldENvbG9yOmNvbG9yXTsKK30KKworQGVuZAorCisjZWxz
ZQogCiBAaW1wbGVtZW50YXRpb24gV0tDb2xvclBhbmVsTWFjCiAKQEAgLTE1NCwxNSArMjQ1LDE4
IEBAIC0gKHZvaWQpd2luZG93V2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAKICAgICBfcGlja2Vy
LT5lbmRQaWNrZXIoKTsKIH0KIAotLSAodm9pZClkaWRDaG9vc2VDb2xvcjooTlNDb2xvclBhbmVs
ICopcGFuZWwKKy0gKHZvaWQpZGlkQ2hvb3NlQ29sb3I6KGlkKXNlbmRlcgogeworICAgIGlmIChz
ZW5kZXIgIT0gW05TQ29sb3JQYW5lbCBzaGFyZWRDb2xvclBhbmVsXSkKKyAgICAgICAgcmV0dXJu
OworCiAgICAgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSA8aW5wdXQgdHlwZT0nY29sb3In
PiB2YWx1ZSBpcyBwcm9ncmFtbWF0aWNhbGx5IHNldC4KICAgICBpZiAoIV9sYXN0Q2hhbmdlZEJ5
VXNlcikgewogICAgICAgICBfbGFzdENoYW5nZWRCeVVzZXIgPSBZRVM7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBfcGlja2VyLT5kaWRDaG9vc2VDb2xvcihXZWJDb3JlOjpjb2xvckZy
b21OU0NvbG9yKFtwYW5lbCBjb2xvcl0pKTsKKyAgICBfcGlja2VyLT5kaWRDaG9vc2VDb2xvcihX
ZWJDb3JlOjpjb2xvckZyb21OU0NvbG9yKFtzZW5kZXIgY29sb3JdKSk7CiB9CiAKIC0gKHZvaWQp
c2V0Q29sb3I6KE5TQ29sb3IgKiljb2xvcgpAQCAtMTczLDYgKzI2Nyw4IEBAIC0gKHZvaWQpc2V0
Q29sb3I6KE5TQ29sb3IgKiljb2xvcgogCiBAZW5kCiAKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUl9QT1BPVkVSKQorCiAjZW5kaWYgLy8gVVNFKEFQUEtJVCkKIAogI2VuZGlmIC8v
IEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207953</attachid>
            <date>2013-08-01 14:35:29 -0700</date>
            <delta_ts>2013-08-01 15:02:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119356-20130801143528.patch</filename>
            <type>text/plain</type>
            <size>20582</size>
            <attacher name="Ruth Fong">ruthiecftg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTM2MDYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTA4LTAxICBSdXRoIEZvbmcgIDxydXRoX2Zv
bmdAYXBwbGUuY29tPgorCisgICAgICAgIFtGb3JtczogY29sb3JdIDxpbnB1dCB0eXBlPSdjb2xv
cic+IHBvcG92ZXIgY29sb3Igd2VsbCBpbXBsZW1lbnRhdGlvbgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTQ0MTEwMDg+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE5MzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDogQWRkZWQgSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVS
IGZlYXR1cmUuCisKIDIwMTMtMDctMzEgIFJ1dGggRm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgPGlucHV0IHR5cGU9Y29sb3I+IE1hYyBVSSBiZWhhdmlvdXIKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvRmVhdHVyZURlZmluZXMuaAkocmV2aXNpb24gMTUzNTQzKQorKysgU291cmNlL1dURi93dGYv
RmVhdHVyZURlZmluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDYgKzE5MCwxMCBAQAogI2Rl
ZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiAxCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIgMQorI2VuZGlmCisKICNlbmRpZiAvKiBQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpICovCiAKIC8qIC0tLS0tLS0tLSBBcHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0t
LS0tICovCkBAIC01MTAsNiArNTE0LDEwIEBACiAjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SIDAKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9Q
T1ZFUikKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUiAwCisjZW5kaWYK
KwogI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpCiAjZGVmaW5lIEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEUgMAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTM2MDYp
CisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0
NiBAQAorMjAxMy0wOC0wMSAgUnV0aCBGb25nICA8cnV0aF9mb25nQGFwcGxlLmNvbT4KKworICAg
ICAgICBbRm9ybXM6IGNvbG9yXSA8aW5wdXQgdHlwZT0nY29sb3InPiBwb3BvdmVyIGNvbG9yIHdl
bGwgaW1wbGVtZW50YXRpb24KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE0NDExMDA4PiBhbmQg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTM1NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBh
biBwb3BvdmVyIGltcGxlbWVudGF0aW9uIG9mIDxpbnB1dCB0eXBlPSdjb2xvcic+LgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb2xvclBpY2tlcik6IFVwZGF0ZWQgdG8gcGFzcyB0
aGUgCisgICAgICAgICAgY29vcmRpbmF0ZXMgb2YgdGhlIDxpbnB1dCB0eXBlPSdjb2xvcic+IGVs
ZW1lbnQgYW5kIHRoZSBXS1ZpZXcgCisgICAgICAgICAgb2JqZWN0IGZvciB0aGUgd2luZG93Lgor
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6dmlld1dpbGxTdGFydExpdmVSZXNpemUpOiBDbG9zZSBwb3BvdmVyIGNv
bG9yIAorICAgICAgICAgIHBpY2tlciB3aGVuIHRoZSB2aWV3IGlzIHJlc2l6ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld0luV2luZG93U3RhdGVEaWRDaGFuZ2UpOiBDbG9z
ZSBwb3BvdmVyIGNvbG9yCisgICAgICAgICAgcGlja2VyIHdoZW4gdGhlIHZpZXcgaXMgbm8gbG9u
Z2VyIGluIHRoZSB3aW5kb3cuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd0Nv
bG9yUGlja2VyKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29sb3JQaWNrZXJNYWM6On5XZWJDb2xvclBpY2tlck1hYyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbG9yUGlja2VyTWFjOjpXZWJDb2xvclBpY2tlck1hYyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbG9yUGlja2VyTWFjOjplbmRQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xv
clBpY2tlck1hYzo6c2V0U2VsZWN0ZWRDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9y
UGlja2VyTWFjOjpzaG93Q29sb3JQaWNrZXIpOgorICAgICAgICBNZXRob2RzIHVwZGF0ZWQgdG8g
aGFuZGxlIGJvdGggdGhlIGNvbG9yIHBhbmVsIGltcGxlbWVudGF0aW9uIGFuZCAKKyAgICAgICAg
ICB0aGUgcG9wb3ZlciBpbXBsZW1lbnRhdGlvbjsgYWxzbyByZW5hbWVkIG1fcGFuZWwgdG8gbV9j
b2xvclBpY2tlclVJLiAKKworICAgICAgICAoLVtXS0NvbG9yUG9wb3Zlck1hYyBpbml0V2l0aFBp
Y2tlcjpXZWJLaXQ6OndpdGhDb2xvcjp3aXRoUmVjdDpXZWJDb3JlOjp3aXRoVmlldzpdKToKKyAg
ICAgICAgKC1bV0tDb2xvclBvcG92ZXJNYWMgZGVhbGxvY10pOgorICAgICAgICAoLVtXS0NvbG9y
UG9wb3Zlck1hYyBpbnZhbGlkYXRlXSk6CisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVyTWFjIHdp
bmRvd1dpbGxDbG9zZTpdKToKKyAgICAgICAgKC1bV0tDb2xvclBvcG92ZXJNYWMgZGlkQ2hvb3Nl
Q29sb3I6XSk6CisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVyTWFjIHNldENvbG9yOl0pOgorICAg
ICAgICBXS0NvbG9yUG9wb3Zlck1hYyBwcm92aWRlcyB0aGUgcG9wb3ZlciBpbXBsZW1lbnRhdGlv
biBvZiA8aW5wdXQgdHlwZT0nY29sb3InPi4KKworICAgICAgICAoLVtXS0NvbG9yUGFuZWxNYWMg
ZGlkQ2hvb3NlQ29sb3I6XSk6IFVwZGF0ZWQgdG8gbWF0Y2ggdGhlIGludGVyZmFjZSBvZiAKKyAg
ICAgICAgICBXS0NvbG9yUGlja2VyTWFjOjpkaWRDaG9vc2VDb2xvci4KKwogMjAxMy0wOC0wMSAg
TWlsaWFuIFdvbGZmICA8bWlsaWFuLndvbGZmQGtkYWIuY29tPgogCiAgICAgICAgIFtRdF0gRW5h
YmxlIFFNTCBoYW5kbGluZyBvZiBjcmFzaGVkL3VucmVzcG9uc2l2ZSBRdFdlYlByb2Nlc3MKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCShyZXZpc2lvbiAxNTM1NDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtOTksNiAr
OTksNyBAQCBFTkFCTEVfSUZSQU1FX1NFQU1MRVNTID0gRU5BQkxFX0lGUkFNRV9TCiBFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSA9IDsKIEVOQUJMRV9JTlBVVF9TUEVFQ0ggPSA7CiBFTkFCTEVfSU5Q
VVRfVFlQRV9DT0xPUiA9IEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SOworRU5BQkxFX0lOUFVUX1RZ
UEVfQ09MT1JfUE9QT1ZFUiA9IEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVI7CiBFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFID0gJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFXyQoUExBVEZPUk1f
TkFNRSkpOwogRU5BQkxFX0lOUFVUX1RZUEVfREFURV9pcGhvbmVvcyA9IEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEU7CiBFTkFCTEVfSU5QVVRfVFlQRV9EQVRFX2lwaG9uZXNpbXVsYXRvciA9ICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURV9pcGhvbmVvcyk7CkBAIC0xODYsNCArMTg3LDQgQEAgRU5BQkxF
X1hTTFQgPSBFTkFCTEVfWFNMVDsKIAogRU5BQkxFX0ZUTF9KSVQgPSA7CiAKLUZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxF
X0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENMVVNJ
T05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQo
RU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NT
U19TSEFQRVMpICQoRU5BQkxFX0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFO
U0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChF
TkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJM
RV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQo
RU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQo
RU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9ESUFMT0dfRUxFTUVOVCkgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVf
RE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5B
QkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJM
RV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5U
UykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChF
TkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lG
UkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRf
U1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAk
KEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RB
VElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxF
X01JQ1JPREFUQSkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FU
T1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BS
T1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPWElN
SVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkg
JChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVE
SUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkg
JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVUJQSVhF
TF9MQVlPVVQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URU1Q
TEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RIUkVBREVE
X0hUTUxfUEFSU0VSKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJT
RUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxF
X1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8p
ICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JL
RVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJ
VCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CitGRUFUVVJFX0RFRklORVMg
PSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5W
QVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykg
JChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykg
JChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJM
RV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfU0hB
UEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JN
U19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxF
X0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NT
M19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9D
VVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJM
RV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RElBTE9HX0VMRU1FTlQpICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTTRf
RVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9F
TkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklM
RV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxF
X0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JRlJBTUVf
U0VBTUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVD
SCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9Q
T1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVf
TEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FV
RElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01F
RElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxF
TUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTU9VU0Vf
Q1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERG
S0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJP
R1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElD
X1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05f
RlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVE
X1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQo
RU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVf
U1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpICQoRU5BQkxFX1NWRykgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhU
X0FVVE9TSVpJTkcpICQoRU5BQkxFX1RIUkVBREVEX0hUTUxfUEFSU0VSKSAkKEVOQUJMRV9UT1VD
SF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5B
QkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVO
QUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkg
JChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFU
Rk9STV9OQU1FKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAkocmV2aXNpb24gMTUzNTQzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMDUsNiArMTAwNSwxMSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6dmlld1dpbGxTdGFydExpdmVSZXNpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkp
CiAgICAgICAgIHJldHVybjsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQor
ICAgIC8vIENsb3NlIHBvcG92ZXIgY29sb3Igd2VsbCB3aGVuIHJlc2l6aW5nIHdpbmRvdy4KKyAg
ICBpZiAobV9jb2xvclBpY2tlcikKKyAgICAgICAgZW5kQ29sb3JQaWNrZXIoKTsKKyNlbmRpZgog
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Vmlld1dpbGxTdGFydExpdmVS
ZXNpemUoKSwgbV9wYWdlSUQpOwogfQogCkBAIC0xMDUzLDYgKzEwNTgsMTMgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnZpZXdJbldpbmRvd1N0YXRlRGlkQwogICAgICAgICAgICAgbV9kcmF3aW5nQXJl
YS0+bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOwogICAgICAgICB9CiAgICAgfQorI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpCisgICAgZWxzZSB7CisgICAgICAgIC8vIFdo
ZW4gbGVhdmluZyB0aGUgY3VycmVudCBwYWdlLCBjbG9zZSB0aGUgcG9wb3ZlciBjb2xvciB3ZWxs
LgorICAgICAgICBpZiAobV9jb2xvclBpY2tlcikKKyAgICAgICAgICAgIGVuZENvbG9yUGlja2Vy
KCk7CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3U3RhdGVEaWRD
aGFuZ2UoVmlld1N0YXRlRmxhZ3MgZmxhZ3MpCkBAIC0yOTIzLDYgKzI5MzUsMTEgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6Om5lZWRUb3VjaEV2ZW50cyhib29sIAogI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQogdm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJbnRSZWN0JiBlbGVtZW50UmVjdCkKIHsKKyAg
ICAvLyBBIG5ldyBwb3BvdmVyIGNvbG9yIHdlbGwgbmVlZHMgdG8gYmUgY3JlYXRlZCAoYW5kIHRo
ZSBwcmV2aW91cyBvbmUgZGVzdHJveWVkKQorICAgIC8vIG9uIGVhY2ggYWN0aXZhdGlvbiBvZiBh
IGNvbG9yIGVsZW1lbnQuCisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKKyAg
ICBtX2NvbG9yUGlja2VyID0gbmlsOworI2VuZGlmCiAgICAgaWYgKCFtX2NvbG9yUGlja2VyKQog
ICAgICAgICBtX2NvbG9yUGlja2VyID0gbV9wYWdlQ2xpZW50LT5jcmVhdGVDb2xvclBpY2tlcih0
aGlzLCBpbml0aWFsQ29sb3IsIGVsZW1lbnRSZWN0KTsKICAgICBtX2NvbG9yUGlja2VyLT5zaG93
Q29sb3JQaWNrZXIoaW5pdGlhbENvbG9yKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCShyZXZpc2lvbiAxNTM1NDMpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbQkod29y
a2luZyBjb3B5KQpAQCAtMzk0LDkgKzM5NCw5IEBAIFBhc3NSZWZQdHI8V2ViQ29udGV4dE1lbnVQ
cm94eT4gUGFnZUNsaWUKIH0KIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQotUGFzc1Jl
ZlB0cjxXZWJDb2xvclBpY2tlcj4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZUNvbG9yUGlja2VyKFdl
YlBhZ2VQcm94eSogcGFnZSwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgIGNv
bnN0IFdlYkNvcmU6OkludFJlY3QmKQorUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlcj4gUGFnZUNs
aWVudEltcGw6OmNyZWF0ZUNvbG9yUGlja2VyKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3Qp
CiB7Ci0gICAgcmV0dXJuIFdlYkNvbG9yUGlja2VyTWFjOjpjcmVhdGUocGFnZSwgaW5pdGlhbENv
bG9yKTsKKyAgICByZXR1cm4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShwYWdlLCBpbml0aWFs
Q29sb3IsIHJlY3QsIHdrVmlldygpKTsKIH0KICNlbmRpZgogCkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oCShyZXZpc2lvbiAxNTM1
NDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTM3LDIwICszNywzMCBAQAogI2lmIFVTRShBUFBLSVQpCiAKICNp
bXBvcnQgIldlYkNvbG9yUGlja2VyLmgiCisjaW1wb3J0ICJXS1ZpZXcuaCIKKyNpbXBvcnQgPFdl
YkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAotT0JKQ19DTEFT
UyBOU0NvbG9yV2VsbDsKLU9CSkNfQ0xBU1MgV0tDb2xvclBhbmVsTWFjOwotCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBjbGFzcyBDb2xvcjsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBX
ZWJDb2xvclBpY2tlck1hYzsKK30KKworQHByb3RvY29sIFdLQ29sb3JQaWNrZXJVSU1hYyA8TlNP
YmplY3Q+CistICh2b2lkKWRpZENob29zZUNvbG9yOihpZClzZW5kZXI7CistICh2b2lkKWludmFs
aWRhdGU7CistICh2b2lkKXNldENvbG9yOihOU0NvbG9yICopY29sb3I7CistICh2b2lkKXNldEFu
ZFNob3dQaWNrZXI6KFdlYktpdDo6V2ViQ29sb3JQaWNrZXJNYWMqKXBpY2tlciB3aXRoQ29sb3I6
KE5TQ29sb3IgKiljb2xvcjsKK0BlbmQKKworbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgCiBjbGFz
cyBXZWJDb2xvclBpY2tlck1hYyA6IHB1YmxpYyBXZWJDb2xvclBpY2tlciB7CiBwdWJsaWM6ICAg
ICAgICAKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlck1hYz4gY3JlYXRlKFdl
YkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYpOworICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyTWFjPiBjcmVhdGUoV2ViQ29sb3JQaWNrZXI6OkNs
aWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIFdL
VmlldyopOwogICAgIH5XZWJDb2xvclBpY2tlck1hYygpOwogCiAgICAgdmlydHVhbCB2b2lkIGVu
ZFBpY2tlcigpIE9WRVJSSURFOwpAQCAtNjAsOCArNzAsOCBAQCBwdWJsaWM6ICAgICAgICAKICAg
ICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CiAKIHByaXZhdGU6
Ci0gICAgV2ViQ29sb3JQaWNrZXJNYWMoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCosIGNvbnN0IFdl
YkNvcmU6OkNvbG9yJik7Ci0gICAgUmV0YWluUHRyPFdLQ29sb3JQYW5lbE1hYz4gbV9wYW5lbDsK
KyAgICBXZWJDb2xvclBpY2tlck1hYyhXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV0tWaWV3Kik7CisgICAgUmV0
YWluUHRyPE5TT2JqZWN0PFdLQ29sb3JQaWNrZXJVSU1hYz4+IG1fY29sb3JQaWNrZXJVSTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCShyZXZpc2lvbiAxNTM1NDMpCisrKyBT
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00MCw1NCArNDAsNzggQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAot
Ly8gQSBsaXN0ZW5lciBjbGFzcyB0byBhY3QgYXMgYSBldmVudCB0YXJnZXQgZm9yIE5TQ29sb3JQ
YW5lbCBhbmQgc2VuZAotLy8gdGhlIHJlc3VsdHMgdG8gdGhlIEMrKyBjbGFzcywgV2ViQ29sb3JQ
aWNrZXJNYWMuCi1AaW50ZXJmYWNlIFdLQ29sb3JQYW5lbE1hYyA6IE5TT2JqZWN0PE5TV2luZG93
RGVsZWdhdGU+IHsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorCisvLyBU
aGUgbWV0aG9kcyB3ZSB1c2UgZnJvbSBOU1BvcG92ZXJDb2xvcldlbGwgYXJlbid0IGRlY2xhcmVk
IGluIGl0cyBoZWFkZXIKKy8vIHNvIHRoZXJlJ3Mgbm8gYmVuZWZpdCB0byB0cnlpbmcgdG8gaW5j
bHVkZSB0aGVtLiBJbnN0ZWFkIHdlIGp1c3QgZGVjbGFyZQorLy8gdGhlIGNsYXNzIGFuZCBtZXRo
b2RzIGhlcmUuCitAaW50ZXJmYWNlIE5TUG9wb3ZlckNvbG9yV2VsbCA6IE5TQ29sb3JXZWxsCitA
ZW5kCisKK0BpbnRlcmZhY2UgTlNQb3BvdmVyQ29sb3JXZWxsIChBcHBLaXRTZWNyZXRzSUtub3cp
CistICh2b2lkKV9zaG93UG9wb3ZlcjsKK0BlbmQKKworQGludGVyZmFjZSBXS0NvbG9yUG9wb3Zl
ck1hYyA6IE5TT2JqZWN0PFdLQ29sb3JQaWNrZXJVSU1hYywgTlNXaW5kb3dEZWxlZ2F0ZT4gewog
QHByaXZhdGUKICAgICBCT09MIF9sYXN0Q2hhbmdlZEJ5VXNlcjsKLSAgICBXZWJDb2xvclBpY2tl
ck1hYyogX3BpY2tlcjsKKyAgICBXZWJDb2xvclBpY2tlck1hYyAqX3BpY2tlcjsKKyAgICBSZXRh
aW5QdHI8TlNQb3BvdmVyQ29sb3JXZWxsPiBfcG9wb3ZlcldlbGw7CiB9CistIChpZClpbml0V2l0
aEZyYW1lOihjb25zdCBXZWJDb3JlOjpJbnRSZWN0ICYpcmVjdCBpblZpZXc6KFdLVmlldyAqKXZp
ZXc7CitAZW5kCiAKLS0gKGlkKWluaXQ7Ci0tICh2b2lkKXNldEFuZFNob3dQaWNrZXI6KFdlYktp
dDo6V2ViQ29sb3JQaWNrZXJNYWMqKXBpY2tlciB3aXRoQ29sb3I6KE5TQ29sb3IgKiljb2xvcjsK
LS0gKHZvaWQpZGlkQ2hvb3NlQ29sb3I6KE5TQ29sb3JQYW5lbCAqKXBhbmVsOwotLSAodm9pZClp
bnZhbGlkYXRlOwotCi0vLyBTZXRzIGNvbG9yIHRvIHRoZSBOU0NvbG9yUGFuZWwgYXMgYSBub24g
dXNlciBjaGFuZ2UuCi0tICh2b2lkKXNldENvbG9yOihOU0NvbG9yICopY29sb3I7CisjZWxzZQog
CitAaW50ZXJmYWNlIFdLQ29sb3JQYW5lbE1hYyA6IE5TT2JqZWN0PFdLQ29sb3JQaWNrZXJVSU1h
YywgTlNXaW5kb3dEZWxlZ2F0ZT4geworQHByaXZhdGUKKyAgICBCT09MIF9sYXN0Q2hhbmdlZEJ5
VXNlcjsKKyAgICBXZWJDb2xvclBpY2tlck1hYyAqX3BpY2tlcjsKK30KKy0gKGlkKWluaXQ7CiBA
ZW5kCiAKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJDb2xv
clBpY2tlck1hYz4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xp
ZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCitQYXNzUmVm
UHRyPFdlYkNvbG9yUGlja2VyTWFjPiBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9y
UGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xv
ciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgV0tWaWV3KiB2aWV3KQogewotICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgV2ViQ29sb3JQaWNrZXJNYWMoY2xpZW50LCBpbml0aWFsQ29sb3Ip
KTsKKyAgICByZXR1cm4gYWRvcHRSZWYobmV3IFdlYkNvbG9yUGlja2VyTWFjKGNsaWVudCwgaW5p
dGlhbENvbG9yLCByZWN0LCB2aWV3KSk7CiB9CiAKIFdlYkNvbG9yUGlja2VyTWFjOjp+V2ViQ29s
b3JQaWNrZXJNYWMoKQogewotICAgIEFTU0VSVCghbV9wYW5lbCk7CisjaWYgRU5BQkxFKElOUFVU
X1RZUEVfQ09MT1JfUE9QT1ZFUikKKyAgICBpZiAobV9jb2xvclBpY2tlclVJKQorICAgICAgICBl
bmRQaWNrZXIoKTsKKyNlbHNlCisgICAgQVNTRVJUKCFtX2NvbG9yUGlja2VyVUkpOworI2VuZGlm
CiB9CiAKLVdlYkNvbG9yUGlja2VyTWFjOjpXZWJDb2xvclBpY2tlck1hYyhXZWJDb2xvclBpY2tl
cjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCitX
ZWJDb2xvclBpY2tlck1hYzo6V2ViQ29sb3JQaWNrZXJNYWMoV2ViQ29sb3JQaWNrZXI6OkNsaWVu
dCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiByZWN0LCBXS1ZpZXcqIHZpZXcpCiAgICAgOiBXZWJDb2xvclBpY2tlcihj
bGllbnQpCiB7Ci0gICAgbV9wYW5lbCA9IGFkb3B0TlMoW1tXS0NvbG9yUGFuZWxNYWMgYWxsb2Nd
IGluaXRdKTsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorICAgIG1fY29s
b3JQaWNrZXJVSSA9IGFkb3B0TlMoW1tXS0NvbG9yUG9wb3Zlck1hYyBhbGxvY10gaW5pdFdpdGhG
cmFtZTpyZWN0IGluVmlldzp2aWV3XSk7CisjZWxzZQorICAgIG1fY29sb3JQaWNrZXJVSSA9IGFk
b3B0TlMoW1tXS0NvbG9yUGFuZWxNYWMgYWxsb2NdIGluaXRdKTsKKyNlbmRpZgogfQogCiB2b2lk
IFdlYkNvbG9yUGlja2VyTWFjOjplbmRQaWNrZXIoKQogewotICAgIFttX3BhbmVsIGludmFsaWRh
dGVdOwotICAgIG1fcGFuZWwgPSBudWxscHRyOworICAgIFttX2NvbG9yUGlja2VyVUkgaW52YWxp
ZGF0ZV07CisgICAgbV9jb2xvclBpY2tlclVJID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJDb2xv
clBpY2tlck1hYzo6c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3Ip
CiB7Ci0gICAgaWYgKCFtX2NsaWVudCB8fCAhbV9wYW5lbCkKKyAgICBpZiAoIW1fY2xpZW50IHx8
ICFtX2NvbG9yUGlja2VyVUkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBbbV9wYW5lbCBz
ZXRDb2xvcjpuc0NvbG9yKGNvbG9yKV07CisgICAgW21fY29sb3JQaWNrZXJVSSBzZXRDb2xvcjpu
c0NvbG9yKGNvbG9yKV07CiB9CiAKIHZvaWQgV2ViQ29sb3JQaWNrZXJNYWM6OmRpZENob29zZUNv
bG9yKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKQEAgLTk3LDIwICsxMjEsOTYgQEAgdm9p
ZCBXZWJDb2xvclBpY2tlck1hYzo6ZGlkQ2hvb3NlQ29sb3IoYwogICAgIAogICAgIG1fY2xpZW50
LT5kaWRDaG9vc2VDb2xvcihjb2xvcik7CiB9CisKIHZvaWQgV2ViQ29sb3JQaWNrZXJNYWM6OnNo
b3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCiB7CiAgICAgaWYgKCFt
X2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFtX3BhbmVsKQotICAgICAgICBt
X3BhbmVsID0gYWRvcHROUyhbW1dLQ29sb3JQYW5lbE1hYyBhbGxvY10gaW5pdF0pOworI2lmICFF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorICAgIGlmICghbV9jb2xvclBpY2tlclVJ
KQorICAgICAgICBtX2NvbG9yUGlja2VyVUkgPSBhZG9wdE5TKFtbV0tDb2xvclBhbmVsTWFjIGFs
bG9jXSBpbml0XSk7CisjZW5kaWYKIAotICAgIFttX3BhbmVsIHNldEFuZFNob3dQaWNrZXI6dGhp
cyB3aXRoQ29sb3I6bnNDb2xvcihjb2xvcildOworICAgIFttX2NvbG9yUGlja2VyVUkgc2V0QW5k
U2hvd1BpY2tlcjp0aGlzIHdpdGhDb2xvcjpuc0NvbG9yKGNvbG9yKV07CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdAogCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OworI2lmIEVOQUJMRShJTlBV
VF9UWVBFX0NPTE9SX1BPUE9WRVIpCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NvbG9yUG9wb3Zlck1h
YworLSAoaWQpaW5pdFdpdGhGcmFtZTooY29uc3QgV2ViQ29yZTo6SW50UmVjdCAmKXJlY3QgaW5W
aWV3OihXS1ZpZXcgKil2aWV3Cit7CisgICAgaWYoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAg
ICAgICAgcmV0dXJuIHNlbGY7CisKKyAgICBfcG9wb3ZlcldlbGwgPSBhZG9wdE5TKFtbTlNQb3Bv
dmVyQ29sb3JXZWxsIGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TUmVjdEZyb21DR1JlY3QocmVjdCld
KTsKKyAgICBpZiAoIV9wb3BvdmVyV2VsbCkKKyAgICAgICAgICAgIHJldHVybiBzZWxmOworCisg
ICAgW1t2aWV3IHdpbmRvd10uY29udGVudFZpZXcgYWRkU3VidmlldzpfcG9wb3ZlcldlbGwuZ2V0
KCldOworCisgICAgcmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpc2V0QW5kU2hvd1BpY2tlcjoo
V2ViS2l0OjpXZWJDb2xvclBpY2tlck1hYyopcGlja2VyIHdpdGhDb2xvcjooTlNDb2xvciAqKWNv
bG9yCit7CisgICAgX3BpY2tlciA9IHBpY2tlcjsKKworICAgIFtfcG9wb3ZlcldlbGwgc2V0VGFy
Z2V0OnNlbGZdOworICAgIFtfcG9wb3ZlcldlbGwgc2V0QWN0aW9uOkBzZWxlY3RvcihkaWRDaG9v
c2VDb2xvcjopXTsKKyAgICBbX3BvcG92ZXJXZWxsIHNldENvbG9yOmNvbG9yXTsKKyAgICBbX3Bv
cG92ZXJXZWxsIF9zaG93UG9wb3Zlcl07CisgICAgCisgICAgX2xhc3RDaGFuZ2VkQnlVc2VyID0g
WUVTOworfQorLSAodm9pZClkZWFsbG9jCit7CisgICAgQVNTRVJUKCFfcG9wb3ZlcldlbGwpOwor
ICAgIEFTU0VSVCghX3BpY2tlcik7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh2b2lk
KWludmFsaWRhdGUKK3sKKyAgICBbX3BvcG92ZXJXZWxsIHJlbW92ZUZyb21TdXBlcnZpZXdXaXRo
b3V0TmVlZGluZ0Rpc3BsYXldOworICAgIFtfcG9wb3ZlcldlbGwgc2V0VGFyZ2V0Om5pbF07Cisg
ICAgW19wb3BvdmVyV2VsbCBzZXRBY3Rpb246bmlsXTsKKyAgICBbX3BvcG92ZXJXZWxsIGRlYWN0
aXZhdGVdOworICAgIF9wb3BvdmVyV2VsbCA9IG5pbDsKKyAgICBfcGlja2VyID0gbmlsOworfQor
CistICh2b2lkKXdpbmRvd1dpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
K3sKKyAgICBfbGFzdENoYW5nZWRCeVVzZXIgPSBZRVM7CisgICAgX3BpY2tlci0+ZW5kUGlja2Vy
KCk7Cit9CisKKy0gKHZvaWQpZGlkQ2hvb3NlQ29sb3I6KGlkKXNlbmRlcgoreworICAgIGlmIChz
ZW5kZXIgIT0gX3BvcG92ZXJXZWxsKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBIYW5kbGUg
dGhlIGNhc2Ugd2hlcmUgdGhlIDxpbnB1dCB0eXBlPSdjb2xvcic+IHZhbHVlIGlzIHByb2dyYW1t
YXRpY2FsbHkgc2V0LgorICAgIGlmICghX2xhc3RDaGFuZ2VkQnlVc2VyKSB7CisgICAgICAgIF9s
YXN0Q2hhbmdlZEJ5VXNlciA9IFlFUzsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQor
CisgICAgX3BpY2tlci0+ZGlkQ2hvb3NlQ29sb3IoV2ViQ29yZTo6Y29sb3JGcm9tTlNDb2xvcihb
X3BvcG92ZXJXZWxsIGNvbG9yXSkpOworfQorCistICh2b2lkKXNldENvbG9yOihOU0NvbG9yICop
Y29sb3IKK3sKKyAgICBfbGFzdENoYW5nZWRCeVVzZXIgPSBOTzsKKyAgICBbX3BvcG92ZXJXZWxs
IHNldENvbG9yOmNvbG9yXTsKK30KKworQGVuZAorCisjZWxzZQogCiBAaW1wbGVtZW50YXRpb24g
V0tDb2xvclBhbmVsTWFjCiAKQEAgLTE1NCwxNSArMjU0LDE4IEBAIC0gKHZvaWQpd2luZG93V2ls
bENsb3NlOihOU05vdGlmaWNhdGlvbiAKICAgICBfcGlja2VyLT5lbmRQaWNrZXIoKTsKIH0KIAot
LSAodm9pZClkaWRDaG9vc2VDb2xvcjooTlNDb2xvclBhbmVsICopcGFuZWwKKy0gKHZvaWQpZGlk
Q2hvb3NlQ29sb3I6KGlkKXNlbmRlcgogeworICAgIGlmIChzZW5kZXIgIT0gW05TQ29sb3JQYW5l
bCBzaGFyZWRDb2xvclBhbmVsXSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gSGFuZGxlIHRo
ZSBjYXNlIHdoZXJlIHRoZSA8aW5wdXQgdHlwZT0nY29sb3InPiB2YWx1ZSBpcyBwcm9ncmFtbWF0
aWNhbGx5IHNldC4KICAgICBpZiAoIV9sYXN0Q2hhbmdlZEJ5VXNlcikgewogICAgICAgICBfbGFz
dENoYW5nZWRCeVVzZXIgPSBZRVM7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBfcGlj
a2VyLT5kaWRDaG9vc2VDb2xvcihXZWJDb3JlOjpjb2xvckZyb21OU0NvbG9yKFtwYW5lbCBjb2xv
cl0pKTsKKyAgICBfcGlja2VyLT5kaWRDaG9vc2VDb2xvcihXZWJDb3JlOjpjb2xvckZyb21OU0Nv
bG9yKFtzZW5kZXIgY29sb3JdKSk7CiB9CiAKIC0gKHZvaWQpc2V0Q29sb3I6KE5TQ29sb3IgKilj
b2xvcgpAQCAtMTczLDYgKzI3Niw4IEBAIC0gKHZvaWQpc2V0Q29sb3I6KE5TQ29sb3IgKiljb2xv
cgogCiBAZW5kCiAKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQor
CiAjZW5kaWYgLy8gVVNFKEFQUEtJVCkKIAogI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207957</attachid>
            <date>2013-08-01 15:02:11 -0700</date>
            <delta_ts>2013-08-01 17:53:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119356-20130801150210.patch</filename>
            <type>text/plain</type>
            <size>20570</size>
            <attacher name="Ruth Fong">ruthiecftg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxNTM2MDYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEzLTA4LTAxICBSdXRoIEZvbmcgIDxydXRoX2Zv
bmdAYXBwbGUuY29tPgorCisgICAgICAgIFtGb3JtczogY29sb3JdIDxpbnB1dCB0eXBlPSdjb2xv
cic+IHBvcG92ZXIgY29sb3Igd2VsbCBpbXBsZW1lbnRhdGlvbgorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMTQ0MTEwMDg+IGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTE5MzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3dGYvRmVhdHVyZURlZmluZXMuaDogQWRkZWQgSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVS
IGZlYXR1cmUuCisKIDIwMTMtMDctMzEgIFJ1dGggRm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgPGlucHV0IHR5cGU9Y29sb3I+IE1hYyBVSSBiZWhhdmlvdXIKSW5kZXg6IFNv
dXJjZS9XVEYvd3RmL0ZlYXR1cmVEZWZpbmVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93
dGYvRmVhdHVyZURlZmluZXMuaAkocmV2aXNpb24gMTUzNTQzKQorKysgU291cmNlL1dURi93dGYv
RmVhdHVyZURlZmluZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTkwLDYgKzE5MCwxMCBAQAogI2Rl
ZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiAxCiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVO
QUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpCisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIgMQorI2VuZGlmCisKICNlbmRpZiAvKiBQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShJT1MpICovCiAKIC8qIC0tLS0tLS0tLSBBcHBsZSBXaW5kb3dzIHBvcnQgLS0tLS0t
LS0tICovCkBAIC01MTAsNiArNTE0LDEwIEBACiAjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SIDAKICNlbmRpZgogCisjaWYgIWRlZmluZWQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9Q
T1ZFUikKKyNkZWZpbmUgRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUiAwCisjZW5kaWYK
KwogI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpCiAjZGVmaW5lIEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEUgMAogI2VuZGlmCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTM2MDYp
CisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0
NiBAQAorMjAxMy0wOC0wMSAgUnV0aCBGb25nICA8cnV0aF9mb25nQGFwcGxlLmNvbT4KKworICAg
ICAgICBbRm9ybXM6IGNvbG9yXSA8aW5wdXQgdHlwZT0nY29sb3InPiBwb3BvdmVyIGNvbG9yIHdl
bGwgaW1wbGVtZW50YXRpb24KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE0NDExMDA4PiBhbmQg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTM1NgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBh
biBwb3BvdmVyIGltcGxlbWVudGF0aW9uIG9mIDxpbnB1dCB0eXBlPSdjb2xvcic+LgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb2xvclBpY2tlcik6IFVwZGF0ZWQgdG8gcGFzcyB0
aGUgCisgICAgICAgICAgY29vcmRpbmF0ZXMgb2YgdGhlIDxpbnB1dCB0eXBlPSdjb2xvcic+IGVs
ZW1lbnQgYW5kIHRoZSBXS1ZpZXcgCisgICAgICAgICAgb2JqZWN0IGZvciB0aGUgd2luZG93Lgor
CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2VQcm94eTo6dmlld1dpbGxTdGFydExpdmVSZXNpemUpOiBDbG9zZSBwb3BvdmVyIGNv
bG9yIAorICAgICAgICAgIHBpY2tlciB3aGVuIHRoZSB2aWV3IGlzIHJlc2l6ZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dmlld0luV2luZG93U3RhdGVEaWRDaGFuZ2UpOiBDbG9z
ZSBwb3BvdmVyIGNvbG9yCisgICAgICAgICAgcGlja2VyIHdoZW4gdGhlIHZpZXcgaXMgbm8gbG9u
Z2VyIGluIHRoZSB3aW5kb3cuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2hvd0Nv
bG9yUGlja2VyKToKKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQ29sb3JQaWNrZXJNYWM6On5XZWJDb2xvclBpY2tlck1hYyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbG9yUGlja2VyTWFjOjpXZWJDb2xvclBpY2tlck1hYyk6CisgICAgICAgIChXZWJLaXQ6
OldlYkNvbG9yUGlja2VyTWFjOjplbmRQaWNrZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb2xv
clBpY2tlck1hYzo6c2V0U2VsZWN0ZWRDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9y
UGlja2VyTWFjOjpzaG93Q29sb3JQaWNrZXIpOgorICAgICAgICBNZXRob2RzIHVwZGF0ZWQgdG8g
aGFuZGxlIGJvdGggdGhlIGNvbG9yIHBhbmVsIGltcGxlbWVudGF0aW9uIGFuZCAKKyAgICAgICAg
ICB0aGUgcG9wb3ZlciBpbXBsZW1lbnRhdGlvbjsgYWxzbyByZW5hbWVkIG1fcGFuZWwgdG8gbV9j
b2xvclBpY2tlclVJLiAKKworICAgICAgICAoLVtXS0NvbG9yUG9wb3Zlck1hYyBpbml0V2l0aFBp
Y2tlcjpXZWJLaXQ6OndpdGhDb2xvcjp3aXRoUmVjdDpXZWJDb3JlOjp3aXRoVmlldzpdKToKKyAg
ICAgICAgKC1bV0tDb2xvclBvcG92ZXJNYWMgZGVhbGxvY10pOgorICAgICAgICAoLVtXS0NvbG9y
UG9wb3Zlck1hYyBpbnZhbGlkYXRlXSk6CisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVyTWFjIHdp
bmRvd1dpbGxDbG9zZTpdKToKKyAgICAgICAgKC1bV0tDb2xvclBvcG92ZXJNYWMgZGlkQ2hvb3Nl
Q29sb3I6XSk6CisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVyTWFjIHNldENvbG9yOl0pOgorICAg
ICAgICBXS0NvbG9yUG9wb3Zlck1hYyBwcm92aWRlcyB0aGUgcG9wb3ZlciBpbXBsZW1lbnRhdGlv
biBvZiA8aW5wdXQgdHlwZT0nY29sb3InPi4KKworICAgICAgICAoLVtXS0NvbG9yUGFuZWxNYWMg
ZGlkQ2hvb3NlQ29sb3I6XSk6IFVwZGF0ZWQgdG8gbWF0Y2ggdGhlIGludGVyZmFjZSBvZiAKKyAg
ICAgICAgICBXS0NvbG9yUGlja2VyTWFjOjpkaWRDaG9vc2VDb2xvci4KKwogMjAxMy0wOC0wMSAg
TWlsaWFuIFdvbGZmICA8bWlsaWFuLndvbGZmQGtkYWIuY29tPgogCiAgICAgICAgIFtRdF0gRW5h
YmxlIFFNTCBoYW5kbGluZyBvZiBjcmFzaGVkL3VucmVzcG9uc2l2ZSBRdFdlYlByb2Nlc3MKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmln
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZp
bmVzLnhjY29uZmlnCShyZXZpc2lvbiAxNTM1NDMpCisrKyBTb3VyY2UvV2ViS2l0Mi9Db25maWd1
cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwkod29ya2luZyBjb3B5KQpAQCAtOTksNiAr
OTksNyBAQCBFTkFCTEVfSUZSQU1FX1NFQU1MRVNTID0gRU5BQkxFX0lGUkFNRV9TCiBFTkFCTEVf
SU5ERVhFRF9EQVRBQkFTRSA9IDsKIEVOQUJMRV9JTlBVVF9TUEVFQ0ggPSA7CiBFTkFCTEVfSU5Q
VVRfVFlQRV9DT0xPUiA9IEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SOworRU5BQkxFX0lOUFVUX1RZ
UEVfQ09MT1JfUE9QT1ZFUiA9IEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVI7CiBFTkFC
TEVfSU5QVVRfVFlQRV9EQVRFID0gJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFXyQoUExBVEZPUk1f
TkFNRSkpOwogRU5BQkxFX0lOUFVUX1RZUEVfREFURV9pcGhvbmVvcyA9IEVOQUJMRV9JTlBVVF9U
WVBFX0RBVEU7CiBFTkFCTEVfSU5QVVRfVFlQRV9EQVRFX2lwaG9uZXNpbXVsYXRvciA9ICQoRU5B
QkxFX0lOUFVUX1RZUEVfREFURV9pcGhvbmVvcyk7CkBAIC0xODYsNCArMTg3LDQgQEAgRU5BQkxF
X1hTTFQgPSBFTkFCTEVfWFNMVDsKIAogRU5BQkxFX0ZUTF9KSVQgPSA7CiAKLUZFQVRVUkVfREVG
SU5FUyA9ICQoRU5BQkxFXzNEX1JFTkRFUklORykgJChFTkFCTEVfQUNDRUxFUkFURURfMkRfQ0FO
VkFTKSAkKEVOQUJMRV9CTE9CKSAkKEVOQUJMRV9DQUNIRV9QQVJUSVRJT05JTkcpICQoRU5BQkxF
X0NBTlZBU19QQVRIKSAkKEVOQUJMRV9DQU5WQVNfUFJPWFkpICQoRU5BQkxFX0NIQU5ORUxfTUVT
U0FHSU5HKSAkKEVOQUJMRV9DU1BfTkVYVCkgJChFTkFCTEVfQ1NTX0JPWF9ERUNPUkFUSU9OX0JS
RUFLKSAkKEVOQUJMRV9DU1NfREVWSUNFX0FEQVBUQVRJT04pICQoRU5BQkxFX0NTU19FWENMVVNJ
T05TKSAkKEVOQUJMRV9DU1NfRklMVEVSUykgJChFTkFCTEVfQ1NTX0lNQUdFX09SSUVOVEFUSU9O
KSAkKEVOQUJMRV9DU1NfSU1BR0VfUkVTT0xVVElPTikgJChFTkFCTEVfQ1NTX1JFR0lPTlMpICQo
RU5BQkxFX0NTU19TSEFERVJTKSAkKEVOQUJMRV9DU1NfQ09NUE9TSVRJTkcpICQoRU5BQkxFX0NT
U19TSEFQRVMpICQoRU5BQkxFX0NTU19TVElDS1lfUE9TSVRJT04pICQoRU5BQkxFX0NTU19UUkFO
U0ZPUk1TX0FOSU1BVElPTlNfVU5QUkVGSVhFRCkgJChFTkFCTEVfQ1NTX1ZBUklBQkxFUykgJChF
TkFCTEVfQ1NTM19DT05ESVRJT05BTF9SVUxFUykgJChFTkFCTEVfQ1NTM19URVhUKSAkKEVOQUJM
RV9DU1MzX1RFWFRfTElORV9CUkVBSykgJChFTkFCTEVfQ1VSU09SX1ZJU0lCSUxJVFkpICQoRU5B
QkxFX0NVU1RPTV9TQ0hFTUVfSEFORExFUikgJChFTkFCTEVfREFTSEJPQVJEX1NVUFBPUlQpICQo
RU5BQkxFX0RBVEFMSVNUX0VMRU1FTlQpICQoRU5BQkxFX0RBVEFfVFJBTlNGRVJfSVRFTVMpICQo
RU5BQkxFX0RFVEFJTFNfRUxFTUVOVCkgJChFTkFCTEVfREVWSUNFX09SSUVOVEFUSU9OKSAkKEVO
QUJMRV9ESUFMT0dfRUxFTUVOVCkgJChFTkFCTEVfRElSRUNUT1JZX1VQTE9BRCkgJChFTkFCTEVf
RE9NNF9FVkVOVFNfQ09OU1RSVUNUT1IpICQoRU5BQkxFX0RSQUdHQUJMRV9SRUdJT04pICQoRU5B
QkxFX0VOQ1JZUFRFRF9NRURJQSkgJChFTkFCTEVfRU5DUllQVEVEX01FRElBX1YyKSAkKEVOQUJM
RV9GSUxFX1NZU1RFTSkgJChFTkFCTEVfRklMVEVSUykgJChFTkFCTEVfRk9OVF9MT0FEX0VWRU5U
UykgJChFTkFCTEVfRlVMTFNDUkVFTl9BUEkpICQoRU5BQkxFX0dBTUVQQUQpICQoRU5BQkxFX0dF
T0xPQ0FUSU9OKSAkKEVOQUJMRV9ISURERU5fUEFHRV9ET01fVElNRVJfVEhST1RUTElORykgJChF
TkFCTEVfSElHSF9EUElfQ0FOVkFTKSAkKEVOQUJMRV9JQ09OREFUQUJBU0UpICQoRU5BQkxFX0lG
UkFNRV9TRUFNTEVTUykgJChFTkFCTEVfSU5ERVhFRF9EQVRBQkFTRSkgJChFTkFCTEVfSU5QVVRf
U1BFRUNIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVOQUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJM
RV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxFX0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFW
QVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVfTEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQo
RU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05TKSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJ
WEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FVRElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAk
KEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01FRElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RB
VElTVElDUykgJChFTkFCTEVfTUVURVJfRUxFTUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxF
X01JQ1JPREFUQSkgJChFTkFCTEVfTU9VU0VfQ1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FU
T1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9W
SVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERGS0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BS
T1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJPR1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPWElN
SVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElDX1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkg
JChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05fRlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVE
SUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVEX1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkg
JChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQoRU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5B
QkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVfU1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVUJQSVhF
TF9MQVlPVVQpICQoRU5BQkxFX1NWRykgJChFTkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URU1Q
TEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhUX0FVVE9TSVpJTkcpICQoRU5BQkxFX1RIUkVBREVE
X0hUTUxfUEFSU0VSKSAkKEVOQUJMRV9UT1VDSF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJT
RUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykgJChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxF
X1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5BQkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8p
ICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVOQUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JL
RVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkgJChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJ
VCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFURk9STV9OQU1FKSk7CitGRUFUVVJFX0RFRklORVMg
PSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5W
QVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykg
JChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykg
JChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJM
RV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfU0hB
UEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JN
U19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxF
X0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NT
M19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9D
VVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJM
RV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RElBTE9HX0VMRU1FTlQpICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTTRf
RVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9F
TkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklM
RV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxF
X0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JRlJBTUVf
U0VBTUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVD
SCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9Q
T1BPVkVSKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFU
RVRJTUVfSU5DT01QTEVURSkgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFVElNRUxPQ0FMKSAkKEVO
QUJMRV9JTlBVVF9UWVBFX01PTlRIKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1RJTUUpICQoRU5BQkxF
X0lOUFVUX1RZUEVfV0VFSykgJChFTkFCTEVfSkFWQVNDUklQVF9ERUJVR0dFUikgJChFTkFCTEVf
TEVHQUNZX0NTU19WRU5ET1JfUFJFRklYRVMpICQoRU5BQkxFX0xFR0FDWV9OT1RJRklDQVRJT05T
KSAkKEVOQUJMRV9MRUdBQ1lfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfV0VCX0FV
RElPKSAkKEVOQUJMRV9MSU5LX1BSRUZFVENIKSAkKEVOQUJMRV9NQVRITUwpICQoRU5BQkxFX01F
RElBX1NPVVJDRSkgJChFTkFCTEVfTUVESUFfU1RBVElTVElDUykgJChFTkFCTEVfTUVURVJfRUxF
TUVOVCkgJChFTkFCTEVfTUhUTUwpICQoRU5BQkxFX01JQ1JPREFUQSkgJChFTkFCTEVfTU9VU0Vf
Q1VSU09SX1NDQUxFKSAkKEVOQUJMRV9OQVZJR0FUT1JfQ09OVEVOVF9VVElMUykgJChFTkFCTEVf
Tk9USUZJQ0FUSU9OUykgJChFTkFCTEVfUEFHRV9WSVNJQklMSVRZX0FQSSkgJChFTkFCTEVfUERG
S0lUX1BMVUdJTikgJChFTkFCTEVfUExVR0lOX1BST1hZX0ZPUl9WSURFTykgJChFTkFCTEVfUFJP
R1JFU1NfRUxFTUVOVCkgJChFTkFCTEVfUFJPWElNSVRZX0VWRU5UUykgJChFTkFCTEVfUFVCTElD
X1NVRkZJWF9MSVNUKSAkKEVOQUJMRV9RVU9UQSkgJChFTkFCTEVfUkVRVUVTVF9BTklNQVRJT05f
RlJBTUUpICQoRU5BQkxFX1JFU09MVVRJT05fTUVESUFfUVVFUlkpICQoRU5BQkxFX1NDUklQVEVE
X1NQRUVDSCkgJChFTkFCTEVfU0hBRE9XX0RPTSkgJChFTkFCTEVfU0hBUkVEX1dPUktFUlMpICQo
RU5BQkxFX1NQRUVDSF9TWU5USEVTSVMpICQoRU5BQkxFX1NRTF9EQVRBQkFTRSkgJChFTkFCTEVf
U1RZTEVfU0NPUEVEKSAkKEVOQUJMRV9TVUJQSVhFTF9MQVlPVVQpICQoRU5BQkxFX1NWRykgJChF
TkFCTEVfU1ZHX0ZPTlRTKSAkKEVOQUJMRV9URU1QTEFURV9FTEVNRU5UKSAkKEVOQUJMRV9URVhU
X0FVVE9TSVpJTkcpICQoRU5BQkxFX1RIUkVBREVEX0hUTUxfUEFSU0VSKSAkKEVOQUJMRV9UT1VD
SF9JQ09OX0xPQURJTkcpICQoRU5BQkxFX1VTRVJTRUxFQ1RfQUxMKSAkKEVOQUJMRV9WSURFTykg
JChFTkFCTEVfVklERU9fVFJBQ0spICQoRU5BQkxFX1ZJRVdfTU9ERV9DU1NfTUVESUEpICQoRU5B
QkxFX1dFQkdMKSAkKEVOQUJMRV9XRUJfQVVESU8pICQoRU5BQkxFX1dFQl9TT0NLRVRTKSAkKEVO
QUJMRV9XRUJfVElNSU5HKSAkKEVOQUJMRV9XT1JLRVJTKSAkKEVOQUJMRV9YSFJfVElNRU9VVCkg
JChFTkFCTEVfWFNMVCkgJChFTkFCTEVfRlRMX0pJVCkgJChGRUFUVVJFX0RFRklORVNfJChQTEFU
Rk9STV9OQU1FKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAkocmV2aXNpb24gMTUzNTQzKQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMDUsNiArMTAwNSwxMSBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6dmlld1dpbGxTdGFydExpdmVSZXNpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkp
CiAgICAgICAgIHJldHVybjsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQor
ICAgIC8vIENsb3NlIHBvcG92ZXIgY29sb3Igd2VsbCB3aGVuIHJlc2l6aW5nIHdpbmRvdy4KKyAg
ICBpZiAobV9jb2xvclBpY2tlcikKKyAgICAgICAgZW5kQ29sb3JQaWNrZXIoKTsKKyNlbmRpZgog
ICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Vmlld1dpbGxTdGFydExpdmVS
ZXNpemUoKSwgbV9wYWdlSUQpOwogfQogCkBAIC0xMDUzLDYgKzEwNTgsMTMgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OnZpZXdJbldpbmRvd1N0YXRlRGlkQwogICAgICAgICAgICAgbV9kcmF3aW5nQXJl
YS0+bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOwogICAgICAgICB9CiAgICAgfQorI2lmIEVO
QUJMRShJTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpCisgICAgZWxzZSB7CisgICAgICAgIC8vIFdo
ZW4gbGVhdmluZyB0aGUgY3VycmVudCBwYWdlLCBjbG9zZSB0aGUgcG9wb3ZlciBjb2xvciB3ZWxs
LgorICAgICAgICBpZiAobV9jb2xvclBpY2tlcikKKyAgICAgICAgICAgIGVuZENvbG9yUGlja2Vy
KCk7CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3U3RhdGVEaWRD
aGFuZ2UoVmlld1N0YXRlRmxhZ3MgZmxhZ3MpCkBAIC0yOTIzLDYgKzI5MzUsMTAgQEAgdm9pZCBX
ZWJQYWdlUHJveHk6Om5lZWRUb3VjaEV2ZW50cyhib29sIAogI2lmIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SKQogdm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3Jl
OjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJbnRSZWN0JiBlbGVtZW50UmVjdCkKIHsKKyAg
ICAvLyBBIG5ldyBwb3BvdmVyIGNvbG9yIHdlbGwgbmVlZHMgdG8gYmUgY3JlYXRlZCAoYW5kIHRo
ZSBwcmV2aW91cyBvbmUgZGVzdHJvb24gZWFjaCBhY3RpdmF0aW9uIG9mIGEgY29sb3IgZWxlbWVu
dC4KKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorICAgIG1fY29sb3JQaWNr
ZXIgPSBuaWw7CisjZW5kaWYKICAgICBpZiAoIW1fY29sb3JQaWNrZXIpCiAgICAgICAgIG1fY29s
b3JQaWNrZXIgPSBtX3BhZ2VDbGllbnQtPmNyZWF0ZUNvbG9yUGlja2VyKHRoaXMsIGluaXRpYWxD
b2xvciwgZWxlbWVudFJlY3QpOwogICAgIG1fY29sb3JQaWNrZXItPnNob3dDb2xvclBpY2tlcihp
bml0aWFsQ29sb3IpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvUGFn
ZUNsaWVudEltcGwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvUGFnZUNsaWVudEltcGwubW0JKHJldmlzaW9uIDE1MzU0MykKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCSh3b3JraW5nIGNvcHkpCkBA
IC0zOTQsOSArMzk0LDkgQEAgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5PiBQYWdlQ2xp
ZQogfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1QYXNzUmVmUHRyPFdlYkNvbG9y
UGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBw
YWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCAgY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYpCitQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3Jl
YXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYg
aW5pdGlhbENvbG9yLCAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1
cm4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShwYWdlLCBpbml0aWFsQ29sb3IpOworICAgIHJl
dHVybiBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKHBhZ2UsIGluaXRpYWxDb2xvciwgcmVjdCwg
d2tWaWV3KCkpOwogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViQ29sb3JQaWNrZXJNYWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmgJKHJldmlzaW9uIDE1MzU0MykKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAkod29ya2luZyBjb3B5
KQpAQCAtMzcsMjAgKzM3LDMwIEBACiAjaWYgVVNFKEFQUEtJVCkKIAogI2ltcG9ydCAiV2ViQ29s
b3JQaWNrZXIuaCIKKyNpbXBvcnQgIldLVmlldy5oIgorI2ltcG9ydCA8V2ViQ29yZS9JbnRSZWN0
Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCi1PQkpDX0NMQVNTIE5TQ29sb3JXZWxs
OwotT0JKQ19DTEFTUyBXS0NvbG9yUGFuZWxNYWM7Ci0KIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNs
YXNzIENvbG9yOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkNvbG9yUGlja2Vy
TWFjOworfQorCitAcHJvdG9jb2wgV0tDb2xvclBpY2tlclVJTWFjIDxOU09iamVjdD4KKy0gKHZv
aWQpZGlkQ2hvb3NlQ29sb3I6KGlkKXNlbmRlcjsKKy0gKHZvaWQpaW52YWxpZGF0ZTsKKy0gKHZv
aWQpc2V0Q29sb3I6KE5TQ29sb3IgKiljb2xvcjsKKy0gKHZvaWQpc2V0QW5kU2hvd1BpY2tlcjoo
V2ViS2l0OjpXZWJDb2xvclBpY2tlck1hYyopcGlja2VyIHdpdGhDb2xvcjooTlNDb2xvciAqKWNv
bG9yOworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKICAgICAKIGNsYXNzIFdlYkNvbG9yUGlj
a2VyTWFjIDogcHVibGljIFdlYkNvbG9yUGlja2VyIHsKIHB1YmxpYzogICAgICAgIAotICAgIHN0
YXRpYyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyTWFjPiBjcmVhdGUoV2ViQ29sb3JQaWNrZXI6
OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgc3RhdGljIFBhc3NSZWZQdHI8
V2ViQ29sb3JQaWNrZXJNYWM+IGNyZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29uc3Qg
V2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV0tWaWV3Kik7CiAgICAg
fldlYkNvbG9yUGlja2VyTWFjKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5kUGlja2VyKCkgT1ZF
UlJJREU7CkBAIC02MCw4ICs3MCw4IEBAIHB1YmxpYzogICAgICAgIAogICAgIHZvaWQgZGlkQ2hv
b3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKIAogcHJpdmF0ZToKLSAgICBXZWJDb2xv
clBpY2tlck1hYyhXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3Im
KTsKLSAgICBSZXRhaW5QdHI8V0tDb2xvclBhbmVsTWFjPiBtX3BhbmVsOworICAgIFdlYkNvbG9y
UGlja2VyTWFjKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYs
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXS1ZpZXcqKTsKKyAgICBSZXRhaW5QdHI8TlNPYmpl
Y3Q8V0tDb2xvclBpY2tlclVJTWFjPiA+IG1fY29sb3JQaWNrZXJVSTsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xv
clBpY2tlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkNvbG9yUGlja2VyTWFjLm1tCShyZXZpc2lvbiAxNTM1NDMpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC00
MCw1NCArNDAsNzggQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotLy8gQSBsaXN0ZW5l
ciBjbGFzcyB0byBhY3QgYXMgYSBldmVudCB0YXJnZXQgZm9yIE5TQ29sb3JQYW5lbCBhbmQgc2Vu
ZAotLy8gdGhlIHJlc3VsdHMgdG8gdGhlIEMrKyBjbGFzcywgV2ViQ29sb3JQaWNrZXJNYWMuCi1A
aW50ZXJmYWNlIFdLQ29sb3JQYW5lbE1hYyA6IE5TT2JqZWN0PE5TV2luZG93RGVsZWdhdGU+IHsK
KyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorCisvLyBUaGUgbWV0aG9kcyB3
ZSB1c2UgZnJvbSBOU1BvcG92ZXJDb2xvcldlbGwgYXJlbid0IGRlY2xhcmVkIGluIGl0cyBoZWFk
ZXIKKy8vIHNvIHRoZXJlJ3Mgbm8gYmVuZWZpdCB0byB0cnlpbmcgdG8gaW5jbHVkZSB0aGVtLiBJ
bnN0ZWFkIHdlIGp1c3QgZGVjbGFyZQorLy8gdGhlIGNsYXNzIGFuZCBtZXRob2RzIGhlcmUuCitA
aW50ZXJmYWNlIE5TUG9wb3ZlckNvbG9yV2VsbCA6IE5TQ29sb3JXZWxsCitAZW5kCisKK0BpbnRl
cmZhY2UgTlNQb3BvdmVyQ29sb3JXZWxsIChBcHBLaXRTZWNyZXRzSUtub3cpCistICh2b2lkKV9z
aG93UG9wb3ZlcjsKK0BlbmQKKworQGludGVyZmFjZSBXS0NvbG9yUG9wb3Zlck1hYyA6IE5TT2Jq
ZWN0PFdLQ29sb3JQaWNrZXJVSU1hYywgTlNXaW5kb3dEZWxlZ2F0ZT4gewogQHByaXZhdGUKICAg
ICBCT09MIF9sYXN0Q2hhbmdlZEJ5VXNlcjsKLSAgICBXZWJDb2xvclBpY2tlck1hYyogX3BpY2tl
cjsKKyAgICBXZWJDb2xvclBpY2tlck1hYyAqX3BpY2tlcjsKKyAgICBSZXRhaW5QdHI8TlNQb3Bv
dmVyQ29sb3JXZWxsPiBfcG9wb3ZlcldlbGw7CiB9CistIChpZClpbml0V2l0aEZyYW1lOihjb25z
dCBXZWJDb3JlOjpJbnRSZWN0ICYpcmVjdCBpblZpZXc6KFdLVmlldyAqKXZpZXc7CitAZW5kCiAK
LS0gKGlkKWluaXQ7Ci0tICh2b2lkKXNldEFuZFNob3dQaWNrZXI6KFdlYktpdDo6V2ViQ29sb3JQ
aWNrZXJNYWMqKXBpY2tlciB3aXRoQ29sb3I6KE5TQ29sb3IgKiljb2xvcjsKLS0gKHZvaWQpZGlk
Q2hvb3NlQ29sb3I6KE5TQ29sb3JQYW5lbCAqKXBhbmVsOwotLSAodm9pZClpbnZhbGlkYXRlOwot
Ci0vLyBTZXRzIGNvbG9yIHRvIHRoZSBOU0NvbG9yUGFuZWwgYXMgYSBub24gdXNlciBjaGFuZ2Uu
Ci0tICh2b2lkKXNldENvbG9yOihOU0NvbG9yICopY29sb3I7CisjZWxzZQogCitAaW50ZXJmYWNl
IFdLQ29sb3JQYW5lbE1hYyA6IE5TT2JqZWN0PFdLQ29sb3JQaWNrZXJVSU1hYywgTlNXaW5kb3dE
ZWxlZ2F0ZT4geworQHByaXZhdGUKKyAgICBCT09MIF9sYXN0Q2hhbmdlZEJ5VXNlcjsKKyAgICBX
ZWJDb2xvclBpY2tlck1hYyAqX3BpY2tlcjsKK30KKy0gKGlkKWluaXQ7CiBAZW5kCiAKKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlck1hYz4g
V2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBjbGllbnQs
IGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCitQYXNzUmVmUHRyPFdlYkNvbG9y
UGlja2VyTWFjPiBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGll
bnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgcmVjdCwgV0tWaWV3KiB2aWV3KQogewotICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgV2ViQ29sb3JQaWNrZXJNYWMoY2xpZW50LCBpbml0aWFsQ29sb3IpKTsKKyAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFdlYkNvbG9yUGlja2VyTWFjKGNsaWVudCwgaW5pdGlhbENvbG9yLCBy
ZWN0LCB2aWV3KSk7CiB9CiAKIFdlYkNvbG9yUGlja2VyTWFjOjp+V2ViQ29sb3JQaWNrZXJNYWMo
KQogewotICAgIEFTU0VSVCghbV9wYW5lbCk7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1Jf
UE9QT1ZFUikKKyAgICBpZiAobV9jb2xvclBpY2tlclVJKQorICAgICAgICBlbmRQaWNrZXIoKTsK
KyNlbHNlCisgICAgQVNTRVJUKCFtX2NvbG9yUGlja2VyVUkpOworI2VuZGlmCiB9CiAKLVdlYkNv
bG9yUGlja2VyTWFjOjpXZWJDb2xvclBpY2tlck1hYyhXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBj
bGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCitXZWJDb2xvclBpY2tl
ck1hYzo6V2ViQ29sb3JQaWNrZXJNYWMoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCogY2xpZW50LCBj
b25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiByZWN0LCBXS1ZpZXcqIHZpZXcpCiAgICAgOiBXZWJDb2xvclBpY2tlcihjbGllbnQpCiB7Ci0g
ICAgbV9wYW5lbCA9IGFkb3B0TlMoW1tXS0NvbG9yUGFuZWxNYWMgYWxsb2NdIGluaXRdKTsKKyNp
ZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorICAgIG1fY29sb3JQaWNrZXJVSSA9
IGFkb3B0TlMoW1tXS0NvbG9yUG9wb3Zlck1hYyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0IGlu
Vmlldzp2aWV3XSk7CisjZWxzZQorICAgIG1fY29sb3JQaWNrZXJVSSA9IGFkb3B0TlMoW1tXS0Nv
bG9yUGFuZWxNYWMgYWxsb2NdIGluaXRdKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYkNvbG9yUGlj
a2VyTWFjOjplbmRQaWNrZXIoKQogewotICAgIFttX3BhbmVsIGludmFsaWRhdGVdOwotICAgIG1f
cGFuZWwgPSBudWxscHRyOworICAgIFttX2NvbG9yUGlja2VyVUkgaW52YWxpZGF0ZV07CisgICAg
bV9jb2xvclBpY2tlclVJID0gbnVsbHB0cjsKIH0KIAogdm9pZCBXZWJDb2xvclBpY2tlck1hYzo6
c2V0U2VsZWN0ZWRDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCiB7Ci0gICAgaWYg
KCFtX2NsaWVudCB8fCAhbV9wYW5lbCkKKyAgICBpZiAoIW1fY2xpZW50IHx8ICFtX2NvbG9yUGlj
a2VyVUkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBbbV9wYW5lbCBzZXRDb2xvcjpuc0Nv
bG9yKGNvbG9yKV07CisgICAgW21fY29sb3JQaWNrZXJVSSBzZXRDb2xvcjpuc0NvbG9yKGNvbG9y
KV07CiB9CiAKIHZvaWQgV2ViQ29sb3JQaWNrZXJNYWM6OmRpZENob29zZUNvbG9yKGNvbnN0IFdl
YkNvcmU6OkNvbG9yJiBjb2xvcikKQEAgLTk3LDIwICsxMjEsOTYgQEAgdm9pZCBXZWJDb2xvclBp
Y2tlck1hYzo6ZGlkQ2hvb3NlQ29sb3IoYwogICAgIAogICAgIG1fY2xpZW50LT5kaWRDaG9vc2VD
b2xvcihjb2xvcik7CiB9CisKIHZvaWQgV2ViQ29sb3JQaWNrZXJNYWM6OnNob3dDb2xvclBpY2tl
cihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCiB7CiAgICAgaWYgKCFtX2NsaWVudCkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFtX3BhbmVsKQotICAgICAgICBtX3BhbmVsID0gYWRv
cHROUyhbW1dLQ29sb3JQYW5lbE1hYyBhbGxvY10gaW5pdF0pOworI2lmICFFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUl9QT1BPVkVSKQorICAgIGlmICghbV9jb2xvclBpY2tlclVJKQorICAgICAgICBt
X2NvbG9yUGlja2VyVUkgPSBhZG9wdE5TKFtbV0tDb2xvclBhbmVsTWFjIGFsbG9jXSBpbml0XSk7
CisjZW5kaWYKIAotICAgIFttX3BhbmVsIHNldEFuZFNob3dQaWNrZXI6dGhpcyB3aXRoQ29sb3I6
bnNDb2xvcihjb2xvcildOworICAgIFttX2NvbG9yUGlja2VyVUkgc2V0QW5kU2hvd1BpY2tlcjp0
aGlzIHdpdGhDb2xvcjpuc0NvbG9yKGNvbG9yKV07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogCi11c2luZyBuYW1lc3BhY2UgV2ViS2l0OworI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9S
X1BPUE9WRVIpCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NvbG9yUG9wb3Zlck1hYworLSAoaWQpaW5p
dFdpdGhGcmFtZTooY29uc3QgV2ViQ29yZTo6SW50UmVjdCAmKXJlY3QgaW5WaWV3OihXS1ZpZXcg
Kil2aWV3Cit7CisgICAgaWYoIShzZWxmID0gW3N1cGVyIGluaXRdKSkKKyAgICAgICAgcmV0dXJu
IHNlbGY7CisKKyAgICBfcG9wb3ZlcldlbGwgPSBhZG9wdE5TKFtbTlNQb3BvdmVyQ29sb3JXZWxs
IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TUmVjdEZyb21DR1JlY3QocmVjdCldKTsKKyAgICBpZiAo
IV9wb3BvdmVyV2VsbCkKKyAgICAgICAgICAgIHJldHVybiBzZWxmOworCisgICAgW1t2aWV3IHdp
bmRvd10uY29udGVudFZpZXcgYWRkU3VidmlldzpfcG9wb3ZlcldlbGwuZ2V0KCldOworCisgICAg
cmV0dXJuIHNlbGY7Cit9CisKKy0gKHZvaWQpc2V0QW5kU2hvd1BpY2tlcjooV2ViS2l0OjpXZWJD
b2xvclBpY2tlck1hYyopcGlja2VyIHdpdGhDb2xvcjooTlNDb2xvciAqKWNvbG9yCit7CisgICAg
X3BpY2tlciA9IHBpY2tlcjsKKworICAgIFtfcG9wb3ZlcldlbGwgc2V0VGFyZ2V0OnNlbGZdOwor
ICAgIFtfcG9wb3ZlcldlbGwgc2V0QWN0aW9uOkBzZWxlY3RvcihkaWRDaG9vc2VDb2xvcjopXTsK
KyAgICBbX3BvcG92ZXJXZWxsIHNldENvbG9yOmNvbG9yXTsKKyAgICBbX3BvcG92ZXJXZWxsIF9z
aG93UG9wb3Zlcl07CisgICAgCisgICAgX2xhc3RDaGFuZ2VkQnlVc2VyID0gWUVTOworfQorLSAo
dm9pZClkZWFsbG9jCit7CisgICAgQVNTRVJUKCFfcG9wb3ZlcldlbGwpOworICAgIEFTU0VSVCgh
X3BpY2tlcik7CisgICAgW3N1cGVyIGRlYWxsb2NdOworfQorCistICh2b2lkKWludmFsaWRhdGUK
K3sKKyAgICBbX3BvcG92ZXJXZWxsIHJlbW92ZUZyb21TdXBlcnZpZXdXaXRob3V0TmVlZGluZ0Rp
c3BsYXldOworICAgIFtfcG9wb3ZlcldlbGwgc2V0VGFyZ2V0Om5pbF07CisgICAgW19wb3BvdmVy
V2VsbCBzZXRBY3Rpb246bmlsXTsKKyAgICBbX3BvcG92ZXJXZWxsIGRlYWN0aXZhdGVdOworICAg
IF9wb3BvdmVyV2VsbCA9IG5pbDsKKyAgICBfcGlja2VyID0gbmlsOworfQorCistICh2b2lkKXdp
bmRvd1dpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBfbGFz
dENoYW5nZWRCeVVzZXIgPSBZRVM7CisgICAgX3BpY2tlci0+ZW5kUGlja2VyKCk7Cit9CisKKy0g
KHZvaWQpZGlkQ2hvb3NlQ29sb3I6KGlkKXNlbmRlcgoreworICAgIGlmIChzZW5kZXIgIT0gX3Bv
cG92ZXJXZWxsKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hl
cmUgdGhlIDxpbnB1dCB0eXBlPSdjb2xvcic+IHZhbHVlIGlzIHByb2dyYW1tYXRpY2FsbHkgc2V0
LgorICAgIGlmICghX2xhc3RDaGFuZ2VkQnlVc2VyKSB7CisgICAgICAgIF9sYXN0Q2hhbmdlZEJ5
VXNlciA9IFlFUzsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgX3BpY2tl
ci0+ZGlkQ2hvb3NlQ29sb3IoV2ViQ29yZTo6Y29sb3JGcm9tTlNDb2xvcihbX3BvcG92ZXJXZWxs
IGNvbG9yXSkpOworfQorCistICh2b2lkKXNldENvbG9yOihOU0NvbG9yICopY29sb3IKK3sKKyAg
ICBfbGFzdENoYW5nZWRCeVVzZXIgPSBOTzsKKyAgICBbX3BvcG92ZXJXZWxsIHNldENvbG9yOmNv
bG9yXTsKK30KKworQGVuZAorCisjZWxzZQogCiBAaW1wbGVtZW50YXRpb24gV0tDb2xvclBhbmVs
TWFjCiAKQEAgLTE1NCwxNSArMjU0LDE4IEBAIC0gKHZvaWQpd2luZG93V2lsbENsb3NlOihOU05v
dGlmaWNhdGlvbiAKICAgICBfcGlja2VyLT5lbmRQaWNrZXIoKTsKIH0KIAotLSAodm9pZClkaWRD
aG9vc2VDb2xvcjooTlNDb2xvclBhbmVsICopcGFuZWwKKy0gKHZvaWQpZGlkQ2hvb3NlQ29sb3I6
KGlkKXNlbmRlcgogeworICAgIGlmIChzZW5kZXIgIT0gW05TQ29sb3JQYW5lbCBzaGFyZWRDb2xv
clBhbmVsXSkKKyAgICAgICAgcmV0dXJuOworCiAgICAgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJl
IHRoZSA8aW5wdXQgdHlwZT0nY29sb3InPiB2YWx1ZSBpcyBwcm9ncmFtbWF0aWNhbGx5IHNldC4K
ICAgICBpZiAoIV9sYXN0Q2hhbmdlZEJ5VXNlcikgewogICAgICAgICBfbGFzdENoYW5nZWRCeVVz
ZXIgPSBZRVM7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBfcGlja2VyLT5kaWRDaG9v
c2VDb2xvcihXZWJDb3JlOjpjb2xvckZyb21OU0NvbG9yKFtwYW5lbCBjb2xvcl0pKTsKKyAgICBf
cGlja2VyLT5kaWRDaG9vc2VDb2xvcihXZWJDb3JlOjpjb2xvckZyb21OU0NvbG9yKFtzZW5kZXIg
Y29sb3JdKSk7CiB9CiAKIC0gKHZvaWQpc2V0Q29sb3I6KE5TQ29sb3IgKiljb2xvcgpAQCAtMTcz
LDYgKzI3Niw4IEBAIC0gKHZvaWQpc2V0Q29sb3I6KE5TQ29sb3IgKiljb2xvcgogCiBAZW5kCiAK
KyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorCiAjZW5kaWYgLy8g
VVNFKEFQUEtJVCkKIAogI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207972</attachid>
            <date>2013-08-01 17:53:22 -0700</date>
            <delta_ts>2013-08-01 19:06:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-119356-20130801175320.patch</filename>
            <type>text/plain</type>
            <size>25125</size>
            <attacher name="Ruth Fong">ruthiecftg</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUzNjMwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBA
CisyMDEzLTA4LTAxICBSdXRoIEZvbmcgIDxydXRoX2ZvbmdAYXBwbGUuY29tPgorCisgICAgICAg
IFtGb3JtczogY29sb3JdIDxpbnB1dCB0eXBlPSdjb2xvcic+IHBvcG92ZXIgY29sb3Igd2VsbCBp
bXBsZW1lbnRhdGlvbgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTQ0MTEwMDg+IGFuZCBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE5MzU2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9GZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZzogQWRkZWQgYW5kIGVuYWJsZWQgSU5QVVRfVFlQRV9DT0xPUl9Q
T1BPVkVSLgorCiAyMDEzLTA4LTAxICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgREZHIGlzIG5vdCBlbmZvcmNpbmcgY29ycmVjdCBvcmRlcmluZyBvZiBUb1N0cmlu
ZyBjb252ZXJzaW9uIGluIE1ha2VSb3BlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29u
ZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCShy
ZXZpc2lvbiAxNTM1NDMpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTk5LDYgKzk5LDcgQEAg
RU5BQkxFX0lGUkFNRV9TRUFNTEVTUyA9IEVOQUJMRV9JRlJBTUVfUwogRU5BQkxFX0lOREVYRURf
REFUQUJBU0UgPSA7CiBFTkFCTEVfSU5QVVRfU1BFRUNIID0gOwogRU5BQkxFX0lOUFVUX1RZUEVf
Q09MT1IgPSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUjsKK0VOQUJMRV9JTlBVVF9UWVBFX0NPTE9S
X1BPUE9WRVIgPSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSOwogRU5BQkxFX0lOUFVU
X1RZUEVfREFURSA9ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURV8kKFBMQVRGT1JNX05BTUUpKTsK
IEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVfaXBob25lb3MgPSBFTkFCTEVfSU5QVVRfVFlQRV9EQVRF
OwogRU5BQkxFX0lOUFVUX1RZUEVfREFURV9pcGhvbmVzaW11bGF0b3IgPSAkKEVOQUJMRV9JTlBV
VF9UWVBFX0RBVEVfaXBob25lb3MpOwpJbmRleDogU291cmNlL1dURi9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dURi9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MzYzMCkKKysrIFNvdXJj
ZS9XVEYvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTMtMDgt
MDEgIFJ1dGggRm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5jb20+CisKKyAgICAgICAgW0Zvcm1zOiBj
b2xvcl0gPGlucHV0IHR5cGU9J2NvbG9yJz4gcG9wb3ZlciBjb2xvciB3ZWxsIGltcGxlbWVudGF0
aW9uCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNDQxMTAwOD4gYW5kIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTkzNTYKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9GZWF0dXJlRGVmaW5lcy5oOiBBZGRlZCBh
bmQgZW5hYmxlZCBJTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIuCisKIDIwMTMtMDgtMDEgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihy
MTQ1NTkyKTogQXV0b2RyYWluZWRQb29sLmguIFJ1bkxvb3BUaW1lci5oLCBTY2hlZHVsZVBhaXIu
aCBhcmUgYmVpbmcgY29waWVkIGludG8gdGhlIHdyb25nIGxvY2F0aW9uCkluZGV4OiBTb3VyY2Uv
V1RGL3d0Zi9GZWF0dXJlRGVmaW5lcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL0Zl
YXR1cmVEZWZpbmVzLmgJKHJldmlzaW9uIDE1MzU0MykKKysrIFNvdXJjZS9XVEYvd3RmL0ZlYXR1
cmVEZWZpbmVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTE5MCw2ICsxOTAsMTAgQEAKICNkZWZpbmUg
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IgMQogI2VuZGlmCiAKKyNpZiAhZGVmaW5lZChFTkFCTEVf
SU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xP
Ul9QT1BPVkVSIDEKKyNlbmRpZgorCiAjZW5kaWYgLyogUExBVEZPUk0oTUFDKSAmJiAhUExBVEZP
Uk0oSU9TKSAqLwogCiAvKiAtLS0tLS0tLS0gQXBwbGUgV2luZG93cyBwb3J0IC0tLS0tLS0tLSAq
LwpAQCAtNTEwLDYgKzUxNCwxMCBAQAogI2RlZmluZSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUiAw
CiAjZW5kaWYKIAorI2lmICFkZWZpbmVkKEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIp
CisjZGVmaW5lIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIgMAorI2VuZGlmCisKICNp
ZiAhZGVmaW5lZChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKQogI2RlZmluZSBFTkFCTEVfSU5QVVRf
VFlQRV9EQVRFIDAKICNlbmRpZgpJbmRleDogU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTUzNjMwKQorKysg
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTMtMDgtMDEgIFJ1dGggRm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5jb20+CisKKyAgICAgICAg
W0Zvcm1zOiBjb2xvcl0gPGlucHV0IHR5cGU9J2NvbG9yJz4gcG9wb3ZlciBjb2xvciB3ZWxsIGlt
cGxlbWVudGF0aW9uCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNDQxMTAwOD4gYW5kIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTkzNTYKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1
cmVEZWZpbmVzLnhjY29uZmlnOiBBZGRlZCBhbmQgZW5hYmxlZCBJTlBVVF9UWVBFX0NPTE9SX1BP
UE9WRVIuCisKIDIwMTMtMDgtMDEgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dpbmRvd3NdIFdlYktpdDEgRnVsbHNjcmVlbiBWaWRlbyBQbGF5IGlzIEJy
b2tlbgpJbmRleDogU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ29uZmlndXJhdGlvbnMvRmVh
dHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDE1MzU0MykKKysrIFNvdXJjZS9XZWJDb3Jl
L0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNvcHkpCkBA
IC0xMDAsNiArMTAwLDcgQEAgRU5BQkxFX0lOREVYRURfREFUQUJBU0UgPSA7CiBFTkFCTEVfSU5E
SUVfVUkgPSBFTkFCTEVfSU5ESUVfVUk7CiBFTkFCTEVfSU5QVVRfU1BFRUNIID0gOwogRU5BQkxF
X0lOUFVUX1RZUEVfQ09MT1IgPSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUjsKK0VOQUJMRV9JTlBV
VF9UWVBFX0NPTE9SX1BPUE9WRVIgPSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSOwog
RU5BQkxFX0lOUFVUX1RZUEVfREFURSA9ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURV8kKFBMQVRG
T1JNX05BTUUpKTsKIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVfaXBob25lb3MgPSBFTkFCTEVfSU5Q
VVRfVFlQRV9EQVRFOwogRU5BQkxFX0lOUFVUX1RZUEVfREFURV9pcGhvbmVzaW11bGF0b3IgPSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVfaXBob25lb3MpOwpJbmRleDogU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkocmV2aXNp
b24gMTUzNjMwKQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTAgQEAKKzIwMTMtMDgtMDEgIFJ1dGggRm9uZyAgPHJ1dGhfZm9uZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgW0Zvcm1zOiBjb2xvcl0gPGlucHV0IHR5cGU9J2NvbG9yJz4gcG9wb3Zl
ciBjb2xvciB3ZWxsIGltcGxlbWVudGF0aW9uCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xNDQx
MTAwOD4gYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTkzNTYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHBh
dGNoIGFkZHMgYW4gcG9wb3ZlciBpbXBsZW1lbnRhdGlvbiBvZiA8aW5wdXQgdHlwZT0nY29sb3In
Pi4KKworICAgICAgICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOiBB
ZGRlZCBhbmQgZW5hYmxlZCBJTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OmNyZWF0ZUNvbG9yUGlja2VyKTogVXBkYXRlZCB0byBwYXNzIHRoZSAKKyAg
ICAgICAgICBjb29yZGluYXRlcyBvZiB0aGUgPGlucHV0IHR5cGU9J2NvbG9yJz4gZWxlbWVudCBh
bmQgdGhlIFdLVmlldyAKKyAgICAgICAgICBvYmplY3QgZm9yIHRoZSB3aW5kb3cuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojp2aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSk6IENsb3NlIHBvcG92ZXIgY29sb3IgCisg
ICAgICAgICAgcGlja2VyIHdoZW4gdGhlIHZpZXcgaXMgcmVzaXplZC4KKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5Ojp2aWV3SW5XaW5kb3dTdGF0ZURpZENoYW5nZSk6IENsb3NlIHBvcG92
ZXIgY29sb3IKKyAgICAgICAgICBwaWNrZXIgd2hlbiB0aGUgdmlldyBpcyBubyBsb25nZXIgaW4g
dGhlIHdpbmRvdy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzaG93Q29sb3JQaWNr
ZXIpOiBVcGRhdGVkIHRvIHNob3cgZWl0aGVyIGEgY29sb3IgcGFuZWwKKyAgICAgICAgICBvciBh
IHBvcG92ZXIgY29sb3IgcGlja2VyIGRlcGVuZGluZyBvbiB3aGV0aGVyIElOUFVUX1RZUEVfQ09M
T1JfUE9QT1ZFUiBpcyBlbmFibGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xv
clBpY2tlck1hYy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpjcmVhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJDb2xvclBpY2tlck1hYzo6fldlYkNvbG9yUGlja2VyTWFjKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJNYWM6OldlYkNvbG9yUGlja2VyTWFjKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJNYWM6OmVuZFBpY2tlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYkNvbG9yUGlja2VyTWFjOjpzZXRTZWxlY3RlZENvbG9yKToKKyAgICAgICAgKFdlYktp
dDo6V2ViQ29sb3JQaWNrZXJNYWM6OnNob3dDb2xvclBpY2tlcik6CisgICAgICAgIE1ldGhvZHMg
dXBkYXRlZCB0byBoYW5kbGUgYm90aCB0aGUgY29sb3IgcGFuZWwgaW1wbGVtZW50YXRpb24gYW5k
IAorICAgICAgICAgIHRoZSBwb3BvdmVyIGltcGxlbWVudGF0aW9uOyBhbHNvIHJlbmFtZWQgbV9w
YW5lbCB0byBtX2NvbG9yUGlja2VyVUkuIAorCisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVyTWFj
IGluaXRXaXRoRnJhbWU6V2ViQ29yZTo6aW5WaWV3Ol0pOgorICAgICAgICAoLVtXS0NvbG9yUG9w
b3Zlck1hYyBzZXRBbmRTaG93UGlja2VyOldlYktpdDo6d2l0aENvbG9yOl0pOgorICAgICAgICAo
LVtXS0NvbG9yUG9wb3Zlck1hYyBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVy
TWFjIGludmFsaWRhdGVdKToKKyAgICAgICAgKC1bV0tDb2xvclBvcG92ZXJNYWMgd2luZG93V2ls
bENsb3NlOl0pOgorICAgICAgICAoLVtXS0NvbG9yUG9wb3Zlck1hYyBkaWRDaG9vc2VDb2xvcjpd
KToKKyAgICAgICAgKC1bV0tDb2xvclBvcG92ZXJNYWMgc2V0Q29sb3I6XSk6CisgICAgICAgIFdL
Q29sb3JQb3BvdmVyTWFjIHByb3ZpZGVzIHRoZSBwb3BvdmVyIGltcGxlbWVudGF0aW9uIG9mIDxp
bnB1dCB0eXBlPSdjb2xvcic+LgorCisgICAgICAgICgtW1dLQ29sb3JQYW5lbE1hYyBkaWRDaG9v
c2VDb2xvcjpdKTogVXBkYXRlZCB0byBtYXRjaCB0aGUgaW50ZXJmYWNlIG9mIAorICAgICAgICAg
IFdLQ29sb3JQaWNrZXJNYWM6OmRpZENob29zZUNvbG9yLgorCiAyMDEzLTA4LTAxICBBbmRlcnMg
Q2FybHNzb24gIDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgTG90cyBvZiBsZWFrcyB1
bmRlciBXZWJDb250ZXh0OjpwbHVnaW5JbmZvU3RvcmVEaWRMb2FkUGx1Z2lucygpCkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54Y2NvbmZpZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9Db25maWd1cmF0aW9ucy9GZWF0dXJlRGVmaW5lcy54
Y2NvbmZpZwkocmV2aXNpb24gMTUzNTQzKQorKysgU291cmNlL1dlYktpdDIvQ29uZmlndXJhdGlv
bnMvRmVhdHVyZURlZmluZXMueGNjb25maWcJKHdvcmtpbmcgY29weSkKQEAgLTk5LDYgKzk5LDcg
QEAgRU5BQkxFX0lGUkFNRV9TRUFNTEVTUyA9IEVOQUJMRV9JRlJBTUVfUwogRU5BQkxFX0lOREVY
RURfREFUQUJBU0UgPSA7CiBFTkFCTEVfSU5QVVRfU1BFRUNIID0gOwogRU5BQkxFX0lOUFVUX1RZ
UEVfQ09MT1IgPSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUjsKK0VOQUJMRV9JTlBVVF9UWVBFX0NP
TE9SX1BPUE9WRVIgPSBFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSOwogRU5BQkxFX0lO
UFVUX1RZUEVfREFURSA9ICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURV8kKFBMQVRGT1JNX05BTUUp
KTsKIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVfaXBob25lb3MgPSBFTkFCTEVfSU5QVVRfVFlQRV9E
QVRFOwogRU5BQkxFX0lOUFVUX1RZUEVfREFURV9pcGhvbmVzaW11bGF0b3IgPSAkKEVOQUJMRV9J
TlBVVF9UWVBFX0RBVEVfaXBob25lb3MpOwpAQCAtMTg2LDQgKzE4Nyw0IEBAIEVOQUJMRV9YU0xU
ID0gRU5BQkxFX1hTTFQ7CiAKIEVOQUJMRV9GVExfSklUID0gOwogCi1GRUFUVVJFX0RFRklORVMg
PSAkKEVOQUJMRV8zRF9SRU5ERVJJTkcpICQoRU5BQkxFX0FDQ0VMRVJBVEVEXzJEX0NBTlZBUykg
JChFTkFCTEVfQkxPQikgJChFTkFCTEVfQ0FDSEVfUEFSVElUSU9OSU5HKSAkKEVOQUJMRV9DQU5W
QVNfUEFUSCkgJChFTkFCTEVfQ0FOVkFTX1BST1hZKSAkKEVOQUJMRV9DSEFOTkVMX01FU1NBR0lO
RykgJChFTkFCTEVfQ1NQX05FWFQpICQoRU5BQkxFX0NTU19CT1hfREVDT1JBVElPTl9CUkVBSykg
JChFTkFCTEVfQ1NTX0RFVklDRV9BREFQVEFUSU9OKSAkKEVOQUJMRV9DU1NfRVhDTFVTSU9OUykg
JChFTkFCTEVfQ1NTX0ZJTFRFUlMpICQoRU5BQkxFX0NTU19JTUFHRV9PUklFTlRBVElPTikgJChF
TkFCTEVfQ1NTX0lNQUdFX1JFU09MVVRJT04pICQoRU5BQkxFX0NTU19SRUdJT05TKSAkKEVOQUJM
RV9DU1NfU0hBREVSUykgJChFTkFCTEVfQ1NTX0NPTVBPU0lUSU5HKSAkKEVOQUJMRV9DU1NfU0hB
UEVTKSAkKEVOQUJMRV9DU1NfU1RJQ0tZX1BPU0lUSU9OKSAkKEVOQUJMRV9DU1NfVFJBTlNGT1JN
U19BTklNQVRJT05TX1VOUFJFRklYRUQpICQoRU5BQkxFX0NTU19WQVJJQUJMRVMpICQoRU5BQkxF
X0NTUzNfQ09ORElUSU9OQUxfUlVMRVMpICQoRU5BQkxFX0NTUzNfVEVYVCkgJChFTkFCTEVfQ1NT
M19URVhUX0xJTkVfQlJFQUspICQoRU5BQkxFX0NVUlNPUl9WSVNJQklMSVRZKSAkKEVOQUJMRV9D
VVNUT01fU0NIRU1FX0hBTkRMRVIpICQoRU5BQkxFX0RBU0hCT0FSRF9TVVBQT1JUKSAkKEVOQUJM
RV9EQVRBTElTVF9FTEVNRU5UKSAkKEVOQUJMRV9EQVRBX1RSQU5TRkVSX0lURU1TKSAkKEVOQUJM
RV9ERVRBSUxTX0VMRU1FTlQpICQoRU5BQkxFX0RFVklDRV9PUklFTlRBVElPTikgJChFTkFCTEVf
RElBTE9HX0VMRU1FTlQpICQoRU5BQkxFX0RJUkVDVE9SWV9VUExPQUQpICQoRU5BQkxFX0RPTTRf
RVZFTlRTX0NPTlNUUlVDVE9SKSAkKEVOQUJMRV9EUkFHR0FCTEVfUkVHSU9OKSAkKEVOQUJMRV9F
TkNSWVBURURfTUVESUEpICQoRU5BQkxFX0VOQ1JZUFRFRF9NRURJQV9WMikgJChFTkFCTEVfRklM
RV9TWVNURU0pICQoRU5BQkxFX0ZJTFRFUlMpICQoRU5BQkxFX0ZPTlRfTE9BRF9FVkVOVFMpICQo
RU5BQkxFX0ZVTExTQ1JFRU5fQVBJKSAkKEVOQUJMRV9HQU1FUEFEKSAkKEVOQUJMRV9HRU9MT0NB
VElPTikgJChFTkFCTEVfSElEREVOX1BBR0VfRE9NX1RJTUVSX1RIUk9UVExJTkcpICQoRU5BQkxF
X0hJR0hfRFBJX0NBTlZBUykgJChFTkFCTEVfSUNPTkRBVEFCQVNFKSAkKEVOQUJMRV9JRlJBTUVf
U0VBTUxFU1MpICQoRU5BQkxFX0lOREVYRURfREFUQUJBU0UpICQoRU5BQkxFX0lOUFVUX1NQRUVD
SCkgJChFTkFCTEVfSU5QVVRfVFlQRV9DT0xPUikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAk
KEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1FX0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZ
UEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVfSU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5Q
VVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBVVF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJ
UFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FDWV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJM
RV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChFTkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykg
JChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykgJChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFC
TEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9TT1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJ
Q1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQpICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NSUNS
T0RBVEEpICQoRU5BQkxFX01PVVNFX0NVUlNPUl9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NP
TlRFTlRfVVRJTFMpICQoRU5BQkxFX05PVElGSUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJ
TElUWV9BUEkpICQoRU5BQkxFX1BERktJVF9QTFVHSU4pICQoRU5BQkxFX1BMVUdJTl9QUk9YWV9G
T1JfVklERU8pICQoRU5BQkxFX1BST0dSRVNTX0VMRU1FTlQpICQoRU5BQkxFX1BST1hJTUlUWV9F
VkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZGSVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5B
QkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1FKSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FV
RVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVFQ0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5B
QkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJMRV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9T
UUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxFX1NDT1BFRCkgJChFTkFCTEVfU1VCUElYRUxfTEFZ
T1VUKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxFX1NWR19GT05UUykgJChFTkFCTEVfVEVNUExBVEVf
RUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRPU0laSU5HKSAkKEVOQUJMRV9USFJFQURFRF9IVE1M
X1BBUlNFUikgJChFTkFCTEVfVE9VQ0hfSUNPTl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNU
X0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5BQkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSUVX
X01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9XRUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVO
QUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVfV0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykg
JChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5BQkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQo
RkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1fTkFNRSkpOworRkVBVFVSRV9ERUZJTkVTID0gJChF
TkFCTEVfM0RfUkVOREVSSU5HKSAkKEVOQUJMRV9BQ0NFTEVSQVRFRF8yRF9DQU5WQVMpICQoRU5B
QkxFX0JMT0IpICQoRU5BQkxFX0NBQ0hFX1BBUlRJVElPTklORykgJChFTkFCTEVfQ0FOVkFTX1BB
VEgpICQoRU5BQkxFX0NBTlZBU19QUk9YWSkgJChFTkFCTEVfQ0hBTk5FTF9NRVNTQUdJTkcpICQo
RU5BQkxFX0NTUF9ORVhUKSAkKEVOQUJMRV9DU1NfQk9YX0RFQ09SQVRJT05fQlJFQUspICQoRU5B
QkxFX0NTU19ERVZJQ0VfQURBUFRBVElPTikgJChFTkFCTEVfQ1NTX0VYQ0xVU0lPTlMpICQoRU5B
QkxFX0NTU19GSUxURVJTKSAkKEVOQUJMRV9DU1NfSU1BR0VfT1JJRU5UQVRJT04pICQoRU5BQkxF
X0NTU19JTUFHRV9SRVNPTFVUSU9OKSAkKEVOQUJMRV9DU1NfUkVHSU9OUykgJChFTkFCTEVfQ1NT
X1NIQURFUlMpICQoRU5BQkxFX0NTU19DT01QT1NJVElORykgJChFTkFCTEVfQ1NTX1NIQVBFUykg
JChFTkFCTEVfQ1NTX1NUSUNLWV9QT1NJVElPTikgJChFTkFCTEVfQ1NTX1RSQU5TRk9STVNfQU5J
TUFUSU9OU19VTlBSRUZJWEVEKSAkKEVOQUJMRV9DU1NfVkFSSUFCTEVTKSAkKEVOQUJMRV9DU1Mz
X0NPTkRJVElPTkFMX1JVTEVTKSAkKEVOQUJMRV9DU1MzX1RFWFQpICQoRU5BQkxFX0NTUzNfVEVY
VF9MSU5FX0JSRUFLKSAkKEVOQUJMRV9DVVJTT1JfVklTSUJJTElUWSkgJChFTkFCTEVfQ1VTVE9N
X1NDSEVNRV9IQU5ETEVSKSAkKEVOQUJMRV9EQVNIQk9BUkRfU1VQUE9SVCkgJChFTkFCTEVfREFU
QUxJU1RfRUxFTUVOVCkgJChFTkFCTEVfREFUQV9UUkFOU0ZFUl9JVEVNUykgJChFTkFCTEVfREVU
QUlMU19FTEVNRU5UKSAkKEVOQUJMRV9ERVZJQ0VfT1JJRU5UQVRJT04pICQoRU5BQkxFX0RJQUxP
R19FTEVNRU5UKSAkKEVOQUJMRV9ESVJFQ1RPUllfVVBMT0FEKSAkKEVOQUJMRV9ET000X0VWRU5U
U19DT05TVFJVQ1RPUikgJChFTkFCTEVfRFJBR0dBQkxFX1JFR0lPTikgJChFTkFCTEVfRU5DUllQ
VEVEX01FRElBKSAkKEVOQUJMRV9FTkNSWVBURURfTUVESUFfVjIpICQoRU5BQkxFX0ZJTEVfU1lT
VEVNKSAkKEVOQUJMRV9GSUxURVJTKSAkKEVOQUJMRV9GT05UX0xPQURfRVZFTlRTKSAkKEVOQUJM
RV9GVUxMU0NSRUVOX0FQSSkgJChFTkFCTEVfR0FNRVBBRCkgJChFTkFCTEVfR0VPTE9DQVRJT04p
ICQoRU5BQkxFX0hJRERFTl9QQUdFX0RPTV9USU1FUl9USFJPVFRMSU5HKSAkKEVOQUJMRV9ISUdI
X0RQSV9DQU5WQVMpICQoRU5BQkxFX0lDT05EQVRBQkFTRSkgJChFTkFCTEVfSUZSQU1FX1NFQU1M
RVNTKSAkKEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFKSAkKEVOQUJMRV9JTlBVVF9TUEVFQ0gpICQo
RU5BQkxFX0lOUFVUX1RZUEVfQ09MT1IpICQoRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1JfUE9QT1ZF
UikgJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFKSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVUSU1F
X0lOQ09NUExFVEUpICQoRU5BQkxFX0lOUFVUX1RZUEVfREFURVRJTUVMT0NBTCkgJChFTkFCTEVf
SU5QVVRfVFlQRV9NT05USCkgJChFTkFCTEVfSU5QVVRfVFlQRV9USU1FKSAkKEVOQUJMRV9JTlBV
VF9UWVBFX1dFRUspICQoRU5BQkxFX0pBVkFTQ1JJUFRfREVCVUdHRVIpICQoRU5BQkxFX0xFR0FD
WV9DU1NfVkVORE9SX1BSRUZJWEVTKSAkKEVOQUJMRV9MRUdBQ1lfTk9USUZJQ0FUSU9OUykgJChF
TkFCTEVfTEVHQUNZX1ZFTkRPUl9QUkVGSVhFUykgJChFTkFCTEVfTEVHQUNZX1dFQl9BVURJTykg
JChFTkFCTEVfTElOS19QUkVGRVRDSCkgJChFTkFCTEVfTUFUSE1MKSAkKEVOQUJMRV9NRURJQV9T
T1VSQ0UpICQoRU5BQkxFX01FRElBX1NUQVRJU1RJQ1MpICQoRU5BQkxFX01FVEVSX0VMRU1FTlQp
ICQoRU5BQkxFX01IVE1MKSAkKEVOQUJMRV9NSUNST0RBVEEpICQoRU5BQkxFX01PVVNFX0NVUlNP
Ul9TQ0FMRSkgJChFTkFCTEVfTkFWSUdBVE9SX0NPTlRFTlRfVVRJTFMpICQoRU5BQkxFX05PVElG
SUNBVElPTlMpICQoRU5BQkxFX1BBR0VfVklTSUJJTElUWV9BUEkpICQoRU5BQkxFX1BERktJVF9Q
TFVHSU4pICQoRU5BQkxFX1BMVUdJTl9QUk9YWV9GT1JfVklERU8pICQoRU5BQkxFX1BST0dSRVNT
X0VMRU1FTlQpICQoRU5BQkxFX1BST1hJTUlUWV9FVkVOVFMpICQoRU5BQkxFX1BVQkxJQ19TVUZG
SVhfTElTVCkgJChFTkFCTEVfUVVPVEEpICQoRU5BQkxFX1JFUVVFU1RfQU5JTUFUSU9OX0ZSQU1F
KSAkKEVOQUJMRV9SRVNPTFVUSU9OX01FRElBX1FVRVJZKSAkKEVOQUJMRV9TQ1JJUFRFRF9TUEVF
Q0gpICQoRU5BQkxFX1NIQURPV19ET00pICQoRU5BQkxFX1NIQVJFRF9XT1JLRVJTKSAkKEVOQUJM
RV9TUEVFQ0hfU1lOVEhFU0lTKSAkKEVOQUJMRV9TUUxfREFUQUJBU0UpICQoRU5BQkxFX1NUWUxF
X1NDT1BFRCkgJChFTkFCTEVfU1VCUElYRUxfTEFZT1VUKSAkKEVOQUJMRV9TVkcpICQoRU5BQkxF
X1NWR19GT05UUykgJChFTkFCTEVfVEVNUExBVEVfRUxFTUVOVCkgJChFTkFCTEVfVEVYVF9BVVRP
U0laSU5HKSAkKEVOQUJMRV9USFJFQURFRF9IVE1MX1BBUlNFUikgJChFTkFCTEVfVE9VQ0hfSUNP
Tl9MT0FESU5HKSAkKEVOQUJMRV9VU0VSU0VMRUNUX0FMTCkgJChFTkFCTEVfVklERU8pICQoRU5B
QkxFX1ZJREVPX1RSQUNLKSAkKEVOQUJMRV9WSUVXX01PREVfQ1NTX01FRElBKSAkKEVOQUJMRV9X
RUJHTCkgJChFTkFCTEVfV0VCX0FVRElPKSAkKEVOQUJMRV9XRUJfU09DS0VUUykgJChFTkFCTEVf
V0VCX1RJTUlORykgJChFTkFCTEVfV09SS0VSUykgJChFTkFCTEVfWEhSX1RJTUVPVVQpICQoRU5B
QkxFX1hTTFQpICQoRU5BQkxFX0ZUTF9KSVQpICQoRkVBVFVSRV9ERUZJTkVTXyQoUExBVEZPUk1f
TkFNRSkpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJ
KHJldmlzaW9uIDE1MzU0MykKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDA1LDYgKzEwMDUsMTAgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnZpZXdXaWxsU3RhcnRMaXZlUmVzaQogewogICAgIGlmICghaXNWYWxpZCgpKQogICAg
ICAgICByZXR1cm47CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKKyAgICBp
ZiAobV9jb2xvclBpY2tlcikKKyAgICAgICAgZW5kQ29sb3JQaWNrZXIoKTsKKyNlbmRpZgogICAg
IG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Vmlld1dpbGxTdGFydExpdmVSZXNp
emUoKSwgbV9wYWdlSUQpOwogfQogCkBAIC0xMDUzLDYgKzEwNTcsMTMgQEAgdm9pZCBXZWJQYWdl
UHJveHk6OnZpZXdJbldpbmRvd1N0YXRlRGlkQwogICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+
bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOwogICAgICAgICB9CiAgICAgfQorI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0NPTE9SX1BPUE9WRVIpCisgICAgZWxzZSB7CisgICAgICAgIC8vIFdoZW4g
bGVhdmluZyB0aGUgY3VycmVudCBwYWdlLCBjbG9zZSB0aGUgcG9wb3ZlciBjb2xvciB3ZWxsLgor
ICAgICAgICBpZiAobV9jb2xvclBpY2tlcikKKyAgICAgICAgICAgIGVuZENvbG9yUGlja2VyKCk7
CisgICAgfQorI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWV3U3RhdGVEaWRDaGFu
Z2UoVmlld1N0YXRlRmxhZ3MgZmxhZ3MpCkBAIC0yOTIzLDYgKzI5MzQsMTEgQEAgdm9pZCBXZWJQ
YWdlUHJveHk6Om5lZWRUb3VjaEV2ZW50cyhib29sIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQogdm9pZCBXZWJQYWdlUHJveHk6OnNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3JlOjpD
b2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBJbnRSZWN0JiBlbGVtZW50UmVjdCkKIHsKKyNpZiBF
TkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorICAgIC8vIEEgbmV3IHBvcG92ZXIgY29s
b3Igd2VsbCBuZWVkcyB0byBiZSBjcmVhdGVkIChhbmQgdGhlIHByZXZpb3VzIG9uZSBkZXN0cm95
ZWQpIGZvcgorICAgIC8vIGVhY2ggYWN0aXZhdGlvbiBvZiBhIGNvbG9yIGVsZW1lbnQuCisgICAg
bV9jb2xvclBpY2tlciA9IDA7CisjZW5kaWYKICAgICBpZiAoIW1fY29sb3JQaWNrZXIpCiAgICAg
ICAgIG1fY29sb3JQaWNrZXIgPSBtX3BhZ2VDbGllbnQtPmNyZWF0ZUNvbG9yUGlja2VyKHRoaXMs
IGluaXRpYWxDb2xvciwgZWxlbWVudFJlY3QpOwogICAgIG1fY29sb3JQaWNrZXItPnNob3dDb2xv
clBpY2tlcihpbml0aWFsQ29sb3IpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvUGFnZUNsaWVudEltcGwubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvUGFnZUNsaWVudEltcGwubW0JKHJldmlzaW9uIDE1MzU0MykKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0zOTQsOSArMzk0LDkgQEAgUGFzc1JlZlB0cjxXZWJDb250ZXh0TWVudVByb3h5
PiBQYWdlQ2xpZQogfQogCiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1IpCi1QYXNzUmVmUHRy
PFdlYkNvbG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFn
ZVByb3h5KiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCAgY29uc3Qg
V2ViQ29yZTo6SW50UmVjdCYpCitQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBQYWdlQ2xpZW50
SW1wbDo6Y3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBXZWJDb3Jl
OjpDb2xvciYgaW5pdGlhbENvbG9yLCAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKIHsK
LSAgICByZXR1cm4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShwYWdlLCBpbml0aWFsQ29sb3Ip
OworICAgIHJldHVybiBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKHBhZ2UsIGluaXRpYWxDb2xv
ciwgcmVjdCwgd2tWaWV3KCkpOwogfQogI2VuZGlmCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmgJKHJldmlzaW9uIDE1MzU0MykK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAkod29y
a2luZyBjb3B5KQpAQCAtMzcsMjAgKzM3LDMwIEBACiAjaWYgVVNFKEFQUEtJVCkKIAogI2ltcG9y
dCAiV2ViQ29sb3JQaWNrZXIuaCIKKyNpbXBvcnQgIldLVmlldy5oIgorI2ltcG9ydCA8V2ViQ29y
ZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCi1PQkpDX0NMQVNTIE5T
Q29sb3JXZWxsOwotT0JKQ19DTEFTUyBXS0NvbG9yUGFuZWxNYWM7Ci0KIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIGNsYXNzIENvbG9yOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYkNv
bG9yUGlja2VyTWFjOworfQorCitAcHJvdG9jb2wgV0tDb2xvclBpY2tlclVJTWFjIDxOU09iamVj
dD4KKy0gKHZvaWQpc2V0QW5kU2hvd1BpY2tlcjooV2ViS2l0OjpXZWJDb2xvclBpY2tlck1hYyop
cGlja2VyIHdpdGhDb2xvcjooTlNDb2xvciAqKWNvbG9yOworLSAodm9pZClpbnZhbGlkYXRlOwor
LSAodm9pZClzZXRDb2xvcjooTlNDb2xvciAqKWNvbG9yOworLSAodm9pZClkaWRDaG9vc2VDb2xv
cjooaWQpc2VuZGVyOworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKICAgICAKIGNsYXNzIFdl
YkNvbG9yUGlja2VyTWFjIDogcHVibGljIFdlYkNvbG9yUGlja2VyIHsKIHB1YmxpYzogICAgICAg
IAotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyTWFjPiBjcmVhdGUoV2ViQ29s
b3JQaWNrZXI6OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJik7CisgICAgc3RhdGljIFBh
c3NSZWZQdHI8V2ViQ29sb3JQaWNrZXJNYWM+IGNyZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xpZW50
KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV0tWaWV3
Kik7CiAgICAgfldlYkNvbG9yUGlja2VyTWFjKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5kUGlj
a2VyKCkgT1ZFUlJJREU7CkBAIC02MCw4ICs3MCw4IEBAIHB1YmxpYzogICAgICAgIAogICAgIHZv
aWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsKIAogcHJpdmF0ZToKLSAg
ICBXZWJDb2xvclBpY2tlck1hYyhXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29uc3QgV2ViQ29y
ZTo6Q29sb3ImKTsKLSAgICBSZXRhaW5QdHI8V0tDb2xvclBhbmVsTWFjPiBtX3BhbmVsOworICAg
IFdlYkNvbG9yUGlja2VyTWFjKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3Jl
OjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXS1ZpZXcqKTsKKyAgICBSZXRhaW5Q
dHI8TlNPYmplY3Q8V0tDb2xvclBpY2tlclVJTWFjPiA+IG1fY29sb3JQaWNrZXJVSTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJDb2xvclBpY2tlck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCShyZXZpc2lvbiAxNTM1NDMpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCSh3b3JraW5nIGNv
cHkpCkBAIC00MCw1NCArNDAsNzggQEAKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotLy8g
QSBsaXN0ZW5lciBjbGFzcyB0byBhY3QgYXMgYSBldmVudCB0YXJnZXQgZm9yIE5TQ29sb3JQYW5l
bCBhbmQgc2VuZAotLy8gdGhlIHJlc3VsdHMgdG8gdGhlIEMrKyBjbGFzcywgV2ViQ29sb3JQaWNr
ZXJNYWMuCi1AaW50ZXJmYWNlIFdLQ29sb3JQYW5lbE1hYyA6IE5TT2JqZWN0PE5TV2luZG93RGVs
ZWdhdGU+IHsKKyNpZiBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorCisvLyBUaGUg
bWV0aG9kcyB3ZSB1c2UgZnJvbSBOU1BvcG92ZXJDb2xvcldlbGwgYXJlbid0IGRlY2xhcmVkIGlu
IGl0cyBoZWFkZXIKKy8vIHNvIHRoZXJlJ3Mgbm8gYmVuZWZpdCB0byB0cnlpbmcgdG8gaW5jbHVk
ZSB0aGVtLiBJbnN0ZWFkIHdlIGp1c3QgZGVjbGFyZQorLy8gdGhlIGNsYXNzIGFuZCBtZXRob2Rz
IGhlcmUuCitAaW50ZXJmYWNlIE5TUG9wb3ZlckNvbG9yV2VsbCA6IE5TQ29sb3JXZWxsCitAZW5k
CisKK0BpbnRlcmZhY2UgTlNQb3BvdmVyQ29sb3JXZWxsIChBcHBLaXRTZWNyZXRzSUtub3cpCist
ICh2b2lkKV9zaG93UG9wb3ZlcjsKK0BlbmQKKworQGludGVyZmFjZSBXS0NvbG9yUG9wb3Zlck1h
YyA6IE5TT2JqZWN0PFdLQ29sb3JQaWNrZXJVSU1hYywgTlNXaW5kb3dEZWxlZ2F0ZT4gewogQHBy
aXZhdGUKICAgICBCT09MIF9sYXN0Q2hhbmdlZEJ5VXNlcjsKLSAgICBXZWJDb2xvclBpY2tlck1h
YyogX3BpY2tlcjsKKyAgICBXZWJDb2xvclBpY2tlck1hYyAqX3BpY2tlcjsKKyAgICBSZXRhaW5Q
dHI8TlNQb3BvdmVyQ29sb3JXZWxsPiBfcG9wb3ZlcldlbGw7CiB9CistIChpZClpbml0V2l0aEZy
YW1lOihjb25zdCBXZWJDb3JlOjpJbnRSZWN0ICYpcmVjdCBpblZpZXc6KFdLVmlldyAqKXZpZXc7
CitAZW5kCiAKLS0gKGlkKWluaXQ7Ci0tICh2b2lkKXNldEFuZFNob3dQaWNrZXI6KFdlYktpdDo6
V2ViQ29sb3JQaWNrZXJNYWMqKXBpY2tlciB3aXRoQ29sb3I6KE5TQ29sb3IgKiljb2xvcjsKLS0g
KHZvaWQpZGlkQ2hvb3NlQ29sb3I6KE5TQ29sb3JQYW5lbCAqKXBhbmVsOwotLSAodm9pZClpbnZh
bGlkYXRlOwotCi0vLyBTZXRzIGNvbG9yIHRvIHRoZSBOU0NvbG9yUGFuZWwgYXMgYSBub24gdXNl
ciBjaGFuZ2UuCi0tICh2b2lkKXNldENvbG9yOihOU0NvbG9yICopY29sb3I7CisjZWxzZQogCitA
aW50ZXJmYWNlIFdLQ29sb3JQYW5lbE1hYyA6IE5TT2JqZWN0PFdLQ29sb3JQaWNrZXJVSU1hYywg
TlNXaW5kb3dEZWxlZ2F0ZT4geworQHByaXZhdGUKKyAgICBCT09MIF9sYXN0Q2hhbmdlZEJ5VXNl
cjsKKyAgICBXZWJDb2xvclBpY2tlck1hYyAqX3BpY2tlcjsKK30KKy0gKGlkKWluaXQ7CiBAZW5k
CiAKKyNlbmRpZiAvLyBFTkFCTEUoSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotUGFzc1JlZlB0cjxXZWJDb2xvclBpY2tlck1hYz4gV2ViQ29sb3JQaWNr
ZXJNYWM6OmNyZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNv
cmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCitQYXNzUmVmUHRyPFdlYkNvbG9yUGlja2VyTWFjPiBX
ZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwg
Y29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYgcmVjdCwgV0tWaWV3KiB2aWV3KQogewotICAgIHJldHVybiBhZG9wdFJlZihuZXcgV2ViQ29s
b3JQaWNrZXJNYWMoY2xpZW50LCBpbml0aWFsQ29sb3IpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYo
bmV3IFdlYkNvbG9yUGlja2VyTWFjKGNsaWVudCwgaW5pdGlhbENvbG9yLCByZWN0LCB2aWV3KSk7
CiB9CiAKIFdlYkNvbG9yUGlja2VyTWFjOjp+V2ViQ29sb3JQaWNrZXJNYWMoKQogewotICAgIEFT
U0VSVCghbV9wYW5lbCk7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKKyAg
ICBpZiAobV9jb2xvclBpY2tlclVJKQorICAgICAgICBlbmRQaWNrZXIoKTsKKyNlbHNlCisgICAg
QVNTRVJUKCFtX2NvbG9yUGlja2VyVUkpOworI2VuZGlmCiB9CiAKLVdlYkNvbG9yUGlja2VyTWFj
OjpXZWJDb2xvclBpY2tlck1hYyhXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IpCitXZWJDb2xvclBpY2tlck1hYzo6V2ViQ29s
b3JQaWNrZXJNYWMoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCogY2xpZW50LCBjb25zdCBXZWJDb3Jl
OjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBXS1Zp
ZXcqIHZpZXcpCiAgICAgOiBXZWJDb2xvclBpY2tlcihjbGllbnQpCiB7Ci0gICAgbV9wYW5lbCA9
IGFkb3B0TlMoW1tXS0NvbG9yUGFuZWxNYWMgYWxsb2NdIGluaXRdKTsKKyNpZiBFTkFCTEUoSU5Q
VVRfVFlQRV9DT0xPUl9QT1BPVkVSKQorICAgIG1fY29sb3JQaWNrZXJVSSA9IGFkb3B0TlMoW1tX
S0NvbG9yUG9wb3Zlck1hYyBhbGxvY10gaW5pdFdpdGhGcmFtZTpyZWN0IGluVmlldzp2aWV3XSk7
CisjZWxzZQorICAgIG1fY29sb3JQaWNrZXJVSSA9IGFkb3B0TlMoW1tXS0NvbG9yUGFuZWxNYWMg
YWxsb2NdIGluaXRdKTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYkNvbG9yUGlja2VyTWFjOjplbmRQ
aWNrZXIoKQogewotICAgIFttX3BhbmVsIGludmFsaWRhdGVdOwotICAgIG1fcGFuZWwgPSBudWxs
cHRyOworICAgIFttX2NvbG9yUGlja2VyVUkgaW52YWxpZGF0ZV07CisgICAgbV9jb2xvclBpY2tl
clVJID0gbmlsOwogfQogCiB2b2lkIFdlYkNvbG9yUGlja2VyTWFjOjpzZXRTZWxlY3RlZENvbG9y
KGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKIHsKLSAgICBpZiAoIW1fY2xpZW50IHx8ICFt
X3BhbmVsKQorICAgIGlmICghbV9jbGllbnQgfHwgIW1fY29sb3JQaWNrZXJVSSkKICAgICAgICAg
cmV0dXJuOwogICAgIAotICAgIFttX3BhbmVsIHNldENvbG9yOm5zQ29sb3IoY29sb3IpXTsKKyAg
ICBbbV9jb2xvclBpY2tlclVJIHNldENvbG9yOm5zQ29sb3IoY29sb3IpXTsKIH0KIAogdm9pZCBX
ZWJDb2xvclBpY2tlck1hYzo6ZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImIGNv
bG9yKQpAQCAtOTcsMjAgKzEyMSw5NiBAQCB2b2lkIFdlYkNvbG9yUGlja2VyTWFjOjpkaWRDaG9v
c2VDb2xvcihjCiAgICAgCiAgICAgbV9jbGllbnQtPmRpZENob29zZUNvbG9yKGNvbG9yKTsKIH0K
Kwogdm9pZCBXZWJDb2xvclBpY2tlck1hYzo6c2hvd0NvbG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6
OkNvbG9yJiBjb2xvcikKIHsKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICBpZiAoIW1fcGFuZWwpCi0gICAgICAgIG1fcGFuZWwgPSBhZG9wdE5TKFtbV0tDb2xvclBh
bmVsTWFjIGFsbG9jXSBpbml0XSk7CisjaWYgIUVOQUJMRShJTlBVVF9UWVBFX0NPTE9SX1BPUE9W
RVIpCisgICAgaWYgKCFtX2NvbG9yUGlja2VyVUkpCisgICAgICAgIG1fY29sb3JQaWNrZXJVSSA9
IGFkb3B0TlMoW1tXS0NvbG9yUGFuZWxNYWMgYWxsb2NdIGluaXRdKTsKKyNlbmRpZgogCi0gICAg
W21fcGFuZWwgc2V0QW5kU2hvd1BpY2tlcjp0aGlzIHdpdGhDb2xvcjpuc0NvbG9yKGNvbG9yKV07
CisgICAgW21fY29sb3JQaWNrZXJVSSBzZXRBbmRTaG93UGlja2VyOnRoaXMgd2l0aENvbG9yOm5z
Q29sb3IoY29sb3IpXTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLXVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CisjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKKworQGlt
cGxlbWVudGF0aW9uIFdLQ29sb3JQb3BvdmVyTWFjCistIChpZClpbml0V2l0aEZyYW1lOihjb25z
dCBXZWJDb3JlOjpJbnRSZWN0ICYpcmVjdCBpblZpZXc6KFdLVmlldyAqKXZpZXcKK3sKKyAgICBp
ZighKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQorICAgICAgICByZXR1cm4gc2VsZjsKKworICAgIF9w
b3BvdmVyV2VsbCA9IGFkb3B0TlMoW1tOU1BvcG92ZXJDb2xvcldlbGwgYWxsb2NdIGluaXRXaXRo
RnJhbWU6TlNSZWN0RnJvbUNHUmVjdChyZWN0KV0pOworICAgIGlmICghX3BvcG92ZXJXZWxsKQor
ICAgICAgICByZXR1cm4gc2VsZjsKKworICAgIFtbdmlldyB3aW5kb3ddLmNvbnRlbnRWaWV3IGFk
ZFN1YnZpZXc6X3BvcG92ZXJXZWxsLmdldCgpXTsKKworICAgIHJldHVybiBzZWxmOworfQorCist
ICh2b2lkKXNldEFuZFNob3dQaWNrZXI6KFdlYktpdDo6V2ViQ29sb3JQaWNrZXJNYWMqKXBpY2tl
ciB3aXRoQ29sb3I6KE5TQ29sb3IgKiljb2xvcgoreworICAgIF9waWNrZXIgPSBwaWNrZXI7CisK
KyAgICBbX3BvcG92ZXJXZWxsIHNldFRhcmdldDpzZWxmXTsKKyAgICBbX3BvcG92ZXJXZWxsIHNl
dEFjdGlvbjpAc2VsZWN0b3IoZGlkQ2hvb3NlQ29sb3I6KV07CisgICAgW19wb3BvdmVyV2VsbCBz
ZXRDb2xvcjpjb2xvcl07CisgICAgW19wb3BvdmVyV2VsbCBfc2hvd1BvcG92ZXJdOworICAgIAor
ICAgIF9sYXN0Q2hhbmdlZEJ5VXNlciA9IFlFUzsKK30KKy0gKHZvaWQpZGVhbGxvYworeworICAg
IEFTU0VSVCghX3BvcG92ZXJXZWxsKTsKKyAgICBBU1NFUlQoIV9waWNrZXIpOworICAgIFtzdXBl
ciBkZWFsbG9jXTsKK30KKworLSAodm9pZClpbnZhbGlkYXRlCit7CisgICAgW19wb3BvdmVyV2Vs
bCByZW1vdmVGcm9tU3VwZXJ2aWV3V2l0aG91dE5lZWRpbmdEaXNwbGF5XTsKKyAgICBbX3BvcG92
ZXJXZWxsIHNldFRhcmdldDpuaWxdOworICAgIFtfcG9wb3ZlcldlbGwgc2V0QWN0aW9uOm5pbF07
CisgICAgW19wb3BvdmVyV2VsbCBkZWFjdGl2YXRlXTsKKyAgICBfcG9wb3ZlcldlbGwgPSBuaWw7
CisgICAgX3BpY2tlciA9IG5pbDsKK30KKworLSAodm9pZCl3aW5kb3dXaWxsQ2xvc2U6KE5TTm90
aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2xhc3RDaGFuZ2VkQnlVc2VyID0gWUVT
OworICAgIF9waWNrZXItPmVuZFBpY2tlcigpOworfQorCistICh2b2lkKWRpZENob29zZUNvbG9y
OihpZClzZW5kZXIKK3sKKyAgICBpZiAoc2VuZGVyICE9IF9wb3BvdmVyV2VsbCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgLy8gSGFuZGxlIHRoZSBjYXNlIHdoZXJlIHRoZSA8aW5wdXQgdHlwZT0n
Y29sb3InPiB2YWx1ZSBpcyBwcm9ncmFtbWF0aWNhbGx5IHNldC4KKyAgICBpZiAoIV9sYXN0Q2hh
bmdlZEJ5VXNlcikgeworICAgICAgICBfbGFzdENoYW5nZWRCeVVzZXIgPSBZRVM7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBfcGlja2VyLT5kaWRDaG9vc2VDb2xvcihXZWJDb3JlOjpj
b2xvckZyb21OU0NvbG9yKFtfcG9wb3ZlcldlbGwgY29sb3JdKSk7Cit9CisKKy0gKHZvaWQpc2V0
Q29sb3I6KE5TQ29sb3IgKiljb2xvcgoreworICAgIF9sYXN0Q2hhbmdlZEJ5VXNlciA9IE5POwor
ICAgIFtfcG9wb3ZlcldlbGwgc2V0Q29sb3I6Y29sb3JdOworfQorCitAZW5kCisKKyNlbHNlCiAK
IEBpbXBsZW1lbnRhdGlvbiBXS0NvbG9yUGFuZWxNYWMKIApAQCAtMTU0LDE1ICsyNTQsMTggQEAg
LSAodm9pZCl3aW5kb3dXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uIAogICAgIF9waWNrZXItPmVu
ZFBpY2tlcigpOwogfQogCi0tICh2b2lkKWRpZENob29zZUNvbG9yOihOU0NvbG9yUGFuZWwgKilw
YW5lbAorLSAodm9pZClkaWRDaG9vc2VDb2xvcjooaWQpc2VuZGVyCiB7CisgICAgaWYgKHNlbmRl
ciAhPSBbTlNDb2xvclBhbmVsIHNoYXJlZENvbG9yUGFuZWxdKQorICAgICAgICByZXR1cm47CisK
ICAgICAvLyBIYW5kbGUgdGhlIGNhc2Ugd2hlcmUgdGhlIDxpbnB1dCB0eXBlPSdjb2xvcic+IHZh
bHVlIGlzIHByb2dyYW1tYXRpY2FsbHkgc2V0LgogICAgIGlmICghX2xhc3RDaGFuZ2VkQnlVc2Vy
KSB7CiAgICAgICAgIF9sYXN0Q2hhbmdlZEJ5VXNlciA9IFlFUzsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIF9waWNrZXItPmRpZENob29zZUNvbG9yKFdlYkNvcmU6OmNvbG9yRnJvbU5T
Q29sb3IoW3BhbmVsIGNvbG9yXSkpOworICAgIF9waWNrZXItPmRpZENob29zZUNvbG9yKFdlYkNv
cmU6OmNvbG9yRnJvbU5TQ29sb3IoW3NlbmRlciBjb2xvcl0pKTsKIH0KIAogLSAodm9pZClzZXRD
b2xvcjooTlNDb2xvciAqKWNvbG9yCkBAIC0xNzMsNiArMjc2LDggQEAgLSAodm9pZClzZXRDb2xv
cjooTlNDb2xvciAqKWNvbG9yCiAKIEBlbmQKIAorI2VuZGlmIC8vIEVOQUJMRShJTlBVVF9UWVBF
X0NPTE9SX1BPUE9WRVIpCisKICNlbmRpZiAvLyBVU0UoQVBQS0lUKQogCiAjZW5kaWYgLy8gRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1IpCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxNTM2
MzApCisrKyBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxMiBAQAorMjAxMy0wOC0wMSAgUnV0aCBGb25nICA8cnV0aF9mb25nQGFwcGxlLmNvbT4K
KworICAgICAgICBbRm9ybXM6IGNvbG9yXSA8aW5wdXQgdHlwZT0nY29sb3InPiBwb3BvdmVyIGNv
bG9yIHdlbGwgaW1wbGVtZW50YXRpb24KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE0NDExMDA4
PiBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTExOTM1NgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ29uZmlndXJh
dGlvbnMvRmVhdHVyZURlZmluZXMueGNjb25maWc6IEFkZGVkIGFuZCBlbmFibGVkIElOUFVUX1RZ
UEVfQ09MT1JfUE9QT1ZFUi4KKwogMjAxMy0wNy0zMSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9y
dG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgZGlkRmluaXNoTG9hZCBvcmRlciBxdWly
awpJbmRleDogU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMvRmVhdHVyZURlZmluZXMu
eGNjb25maWcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9tYWMvQ29uZmlndXJhdGlvbnMv
RmVhdHVyZURlZmluZXMueGNjb25maWcJKHJldmlzaW9uIDE1MzU0MykKKysrIFNvdXJjZS9XZWJL
aXQvbWFjL0NvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnCSh3b3JraW5nIGNv
cHkpCkBAIC05OSw2ICs5OSw3IEBAIEVOQUJMRV9JRlJBTUVfU0VBTUxFU1MgPSBFTkFCTEVfSUZS
QU1FX1MKIEVOQUJMRV9JTkRFWEVEX0RBVEFCQVNFID0gOwogRU5BQkxFX0lOUFVUX1NQRUVDSCA9
IDsKIEVOQUJMRV9JTlBVVF9UWVBFX0NPTE9SID0gRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1I7CitF
TkFCTEVfSU5QVVRfVFlQRV9DT0xPUl9QT1BPVkVSID0gRU5BQkxFX0lOUFVUX1RZUEVfQ09MT1Jf
UE9QT1ZFUjsKIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEUgPSAkKEVOQUJMRV9JTlBVVF9UWVBFX0RB
VEVfJChQTEFURk9STV9OQU1FKSk7CiBFTkFCTEVfSU5QVVRfVFlQRV9EQVRFX2lwaG9uZW9zID0g
RU5BQkxFX0lOUFVUX1RZUEVfREFURTsKIEVOQUJMRV9JTlBVVF9UWVBFX0RBVEVfaXBob25lc2lt
dWxhdG9yID0gJChFTkFCTEVfSU5QVVRfVFlQRV9EQVRFX2lwaG9uZW9zKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>