<?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>72632</bug_id>
          
          <creation_ts>2011-11-17 10:31:40 -0800</creation_ts>
          <short_desc>[Chromium] Make GestureRecognizer Parameters Configurable (Incomplete - Seeking Feedback)</short_desc>
          <delta_ts>2012-02-24 05:48:01 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Eugene Girard">girard</reporter>
          <assigned_to name="Eugene Girard">girard</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>fsamuel</cc>
    
    <cc>jamesr</cc>
    
    <cc>rjkroege</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>504973</commentid>
    <comment_count>0</comment_count>
    <who name="Eugene Girard">girard</who>
    <bug_when>2011-11-17 10:31:40 -0800</bug_when>
    <thetext>The GestureRecognizer currently uses several (5) hard-coded parameters.  We would like to make these configurable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504981</commentid>
    <comment_count>1</comment_count>
      <attachid>115619</attachid>
    <who name="Eugene Girard">girard</who>
    <bug_when>2011-11-17 10:39:32 -0800</bug_when>
    <thetext>Created attachment 115619
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504982</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 10:41:43 -0800</bug_when>
    <thetext>Attachment 115619 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/platform/PlatformGestureRec...&quot; exit_code: 1

Source/WebKit/chromium/public/WebSettings.h:36:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/chromium/public/WebSettings.h:138:  Missing space after ,  [whitespace/comma] [3]
Source/WebCore/platform/chromium/GestureRecognizerChromium.cpp:50:  Missing space after ,  [whitespace/comma] [3]
Source/WebCore/platform/chromium/GestureRecognizerChromium.cpp:52:  Missing space after ,  [whitespace/comma] [3]
Source/WebCore/platform/chromium/GestureRecognizerChromium.cpp:91:  Missing space after ,  [whitespace/comma] [3]
Source/WebCore/platform/chromium/GestureRecognizerChromium.cpp:93:  Missing space after ,  [whitespace/comma] [3]
Source/WebCore/platform/chromium/GestureRecognizerChromium.h:39:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/chromium/GestureRecognizerChromium.h:62:  Missing space after ,  [whitespace/comma] [3]
Source/WebCore/platform/PlatformGestureRecognizer.h:38:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebCore/platform/PlatformGestureRecognizer.h:62:  Missing space after ,  [whitespace/comma] [3]
Source/WebKit/chromium/src/WebSettingsImpl.h:129:  Missing space after ,  [whitespace/comma] [3]
Source/WebKit/chromium/src/WebSettingsImpl.cpp:479:  Missing space after ,  [whitespace/comma] [3]
Total errors found: 12 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504983</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 10:42:01 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505124</commentid>
    <comment_count>4</comment_count>
      <attachid>115619</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2011-11-17 12:59:19 -0800</bug_when>
    <thetext>Comment on attachment 115619
Patch

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

I have some quibbles. Am looking forward to seeing the Chrome side. Do you need a unit test?

&gt;&gt; Source/WebCore/platform/PlatformGestureRecognizer.h:38
&gt;&gt; +#include &lt;map&gt;
&gt; 
&gt; Alphabetical sorting problem.  [build/include_order] [4]

You must use wtf/*

&gt; Source/WebCore/platform/chromium/GestureRecognizerChromium.cpp:37
&gt; +    double maximumTouchDownDurationInSecondsForClick = 0.8;

I would make these static member variables.

&gt; Source/WebCore/platform/chromium/GestureRecognizerChromium.cpp:43
&gt; +    enum ConfigurationSetting {

You will need this enum elsewhere. In particular, you would need this down in Chrome land. At a minimum, you will want this enum in the header file. It also should not be in the anonymous name space.

&gt; Source/WebCore/platform/chromium/GestureRecognizerChromium.cpp:49
&gt; +    };

need a blank line between these blocks

&gt;&gt; Source/WebCore/platform/chromium/GestureRecognizerChromium.cpp:50
&gt;&gt; +    double readConfiguration(const std::map&lt;int,double&gt;&amp; configuration, ConfigurationSetting index, double defaultValue)
&gt; 
&gt; Missing space after ,  [whitespace/comma] [3]

why not make this a method?

&gt;&gt; Source/WebCore/platform/chromium/GestureRecognizerChromium.cpp:52
&gt;&gt; +        std::map&lt;int,double&gt;::const_iterator item = configuration.find(index);
&gt; 
&gt; Missing space after ,  [whitespace/comma] [3]

you are in webcore here.  WTF::HashMap

&gt; Source/WebKit/chromium/src/WebSettingsImpl.cpp:476
&gt; +    OwnPtr&lt;PlatformGestureRecognizer&gt; recognizer = PlatformGestureRecognizer::create();

you are building an instance to set what are class variables. This seems undesirable to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505165</commentid>
    <comment_count>5</comment_count>
      <attachid>115619</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-17 13:43:54 -0800</bug_when>
    <thetext>Comment on attachment 115619
Patch

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

&gt; Source/WebKit/chromium/src/WebSettingsImpl.h:128
&gt; +    virtual void setGestureParameters(const std::map&lt;int,double&gt;&amp;);

hmm.. we don&apos;t have a good way of pasing a map across the webkit API boundary.
we&apos;ve thus far avoided using std::map.  in this case, a simple structure with
five named fields would seem to be OK.  why not do that?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505285</commentid>
    <comment_count>6</comment_count>
    <who name="Eugene Girard">girard</who>
    <bug_when>2011-11-17 15:29:25 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 115619 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=115619&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebSettingsImpl.h:128
&gt; &gt; +    virtual void setGestureParameters(const std::map&lt;int,double&gt;&amp;);
&gt; 
&gt; hmm.. we don&apos;t have a good way of pasing a map across the webkit API boundary.
&gt; we&apos;ve thus far avoided using std::map.  in this case, a simple structure with
&gt; five named fields would seem to be OK.  why not do that?

I was hoping to minimize the impact on the public UI (PlatformGestureRecognizer.h) since other implementations would need different parameters.  Is there support for passing a WTF structure?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505872</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-11-18 09:54:17 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; I was hoping to minimize the impact on the public UI (PlatformGestureRecognizer.h) since other implementations would need different parameters.  Is there support for passing a WTF structure?

There is not support for passing a WTF structure through the WebKit API.  The WebKit API exists to isolate WTF and WebCore types from Chromium.

Since we are just talking about the Chromium WebKit API, why do other implementations matter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505874</commentid>
    <comment_count>8</comment_count>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2011-11-18 09:57:26 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; I was hoping to minimize the impact on the public UI (PlatformGestureRecognizer.h) since other implementations would need different parameters.  Is there support for passing a WTF structure?
&gt; 
&gt; There is not support for passing a WTF structure through the WebKit API.  The WebKit API exists to isolate WTF and WebCore types from Chromium.
&gt; 
&gt; Since we are just talking about the Chromium WebKit API, why do other implementations matter?

How about making an abstract &quot;GestureRecognizerParameters&quot; class with a GestureRecognizerParametersChromium subclass that contains a struct. This lets the PlatformGestureRecognizer interface stay platform-neutral and the GRPC as Chromium-only code can be safely built/modified from the Chromium WebKit API?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516301</commentid>
    <comment_count>9</comment_count>
      <attachid>118124</attachid>
    <who name="Eugene Girard">girard</who>
    <bug_when>2011-12-06 15:28:54 -0800</bug_when>
    <thetext>Created attachment 118124
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516308</commentid>
    <comment_count>10</comment_count>
    <who name="Eugene Girard">girard</who>
    <bug_when>2011-12-06 15:36:45 -0800</bug_when>
    <thetext>The previous patch contains one typo/merge mangling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516316</commentid>
    <comment_count>11</comment_count>
      <attachid>118124</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-06 15:50:20 -0800</bug_when>
    <thetext>Comment on attachment 118124
Patch

Attachment 118124 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10746071</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516338</commentid>
    <comment_count>12</comment_count>
      <attachid>118134</attachid>
    <who name="Eugene Girard">girard</who>
    <bug_when>2011-12-06 16:15:53 -0800</bug_when>
    <thetext>Created attachment 118134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517421</commentid>
    <comment_count>13</comment_count>
      <attachid>118134</attachid>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2011-12-08 07:56:39 -0800</bug_when>
    <thetext>Comment on attachment 118134
Patch

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

&gt; Source/WebCore/platform/PlatformGestureRecognizer.h:59
&gt; +    // Settings that control gesture recognition.

this change is inserting platform-dependent config into what ought to be a platform-independent api.

I still maintain that a different mechanism is needed.

&gt; Source/WebCore/platform/chromium/GestureRecognizerChromium.cpp:36
&gt; +double GestureRecognizerChromium::s_maximumTouchDownDurationInSecondsForClick = 0.8;

Didn&apos;t know that s_ is the convention for this. Cool

&gt; Source/WebKit/chromium/public/WebView.h:441
&gt; +    // Settings that control gesture recognition.

A large part of me would really like to see this interface aggregated. An array of doubles?

Also: you can enclose all of this in a #if ENABLE(GESTURE_RECOGNIZER)?

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3074
&gt; +void WebViewImpl::setGestureMaximumTouchDownDurationInSecondsForClick(double val)

enclose entire with #if ENABLE(G...)? If not, why?

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3086
&gt; +    return 0;

I like having the trailing . on the 0 so it&apos;s easier to remember that this is a double constant.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517423</commentid>
    <comment_count>14</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-08 08:09:45 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 118134 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118134&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/PlatformGestureRecognizer.h:59
&gt; &gt; +    // Settings that control gesture recognition.
&gt; 
&gt; this change is inserting platform-dependent config into what ought to be a platform-independent api.
&gt; 
&gt; I still maintain that a different mechanism is needed.
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/GestureRecognizerChromium.cpp:36
&gt; &gt; +double GestureRecognizerChromium::s_maximumTouchDownDurationInSecondsForClick = 0.8;
&gt; 
&gt; Didn&apos;t know that s_ is the convention for this. Cool
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebView.h:441
&gt; &gt; +    // Settings that control gesture recognition.
&gt; 
&gt; A large part of me would really like to see this interface aggregated. An array of doubles?
&gt; 
&gt; Also: you can enclose all of this in a #if ENABLE(GESTURE_RECOGNIZER)?
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3074
&gt; &gt; +void WebViewImpl::setGestureMaximumTouchDownDurationInSecondsForClick(double val)
&gt; 
&gt; enclose entire with #if ENABLE(G...)? If not, why?
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:3086
&gt; &gt; +    return 0;
&gt; 
&gt; I like having the trailing . on the 0 so it&apos;s easier to remember that this is a double constant.

http://www.webkit.org/coding/coding-style.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523985</commentid>
    <comment_count>15</comment_count>
      <attachid>118134</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-19 10:35:08 -0800</bug_when>
    <thetext>Comment on attachment 118134
Patch

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

&gt; Source/WebCore/ChangeLog:7
&gt; +

How do we test this gesture recognition?  Tests are required for changes to WebCore when possible/practical.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>523995</commentid>
    <comment_count>16</comment_count>
    <who name="Robert Kroeger">rjkroege</who>
    <bug_when>2011-12-19 10:45:00 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 118134 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=118134&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:7
&gt; &gt; +
&gt; 
&gt; How do we test this gesture recognition?  Tests are required for changes to WebCore when possible/practical.

I note in passing (largely as a suggestion for Eugene) that there are WebKit unit tests for the gesture recognizer -- they could be exercised with different settings. Alternatively, there are also layout tests exercising the gesture recognizer and these could executed for different parameters configured via a windows.internals interface.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525396</commentid>
    <comment_count>17</comment_count>
      <attachid>118134</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-12-21 11:39:17 -0800</bug_when>
    <thetext>Comment on attachment 118134
Patch

Not up for review yet it seems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>531269</commentid>
    <comment_count>18</comment_count>
      <attachid>121469</attachid>
    <who name="Eugene Girard">girard</who>
    <bug_when>2012-01-06 12:29:24 -0800</bug_when>
    <thetext>Created attachment 121469
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561560</commentid>
    <comment_count>19</comment_count>
      <attachid>121469</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-02-21 20:48:18 -0800</bug_when>
    <thetext>Comment on attachment 121469
Patch

I believe the GestureRecognizer is gone from WebKit. Clearing review? flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564249</commentid>
    <comment_count>20</comment_count>
    <who name="Eugene Girard">girard</who>
    <bug_when>2012-02-24 05:48:01 -0800</bug_when>
    <thetext>Agreed.  This functionality has been removed from WebKit.  Closing WONTFIX.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115619</attachid>
            <date>2011-11-17 10:39:32 -0800</date>
            <delta_ts>2011-12-06 15:28:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72632-20111117133931.patch</filename>
            <type>text/plain</type>
            <size>6668</size>
            <attacher name="Eugene Girard">girard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk1MjkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1BsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1BsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXIuaAppbmRleCAwYjg2YTkyNzZmYjZiZGVmOWI3
YzM3ODgzYzUwOTNmNzdlMDRjYjNjLi4yZjhhYzljZWJlNDQzMDQxZTQ4Y2U1NGY5Mjk5MzdjOTE4
MTIzNjEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUdlc3R1
cmVSZWNvZ25pemVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1HZXN0
dXJlUmVjb2duaXplci5oCkBAIC0zMiw4ICszMiwxMCBAQAogI2RlZmluZSBQbGF0Zm9ybUdlc3R1
cmVSZWNvZ25pemVyX2gKIAogI2luY2x1ZGUgIlBsYXRmb3JtR2VzdHVyZUV2ZW50LmgiCisjaW5j
bHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgogI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KKyNpbmNsdWRlIDxtYXA+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IApAQCAtNTUsNiArNTcsOSBAQCBwdWJsaWM6CiAKICAgICAvLyBDbGVhcnMgdGhlIEdlc3R1cmVS
ZWNvZ25pemVyIHRvIGl0cyBpbml0aWFsIHN0YXRlLgogICAgIHZpcnR1YWwgdm9pZCByZXNldCgp
ID0gMDsKKworICAgIC8vIFNldCBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgZm9yIEdlc3R1cmVS
ZWNvZ25pemVyCisgICAgdmlydHVhbCB2b2lkIHNldEdlc3R1cmVQYXJhbWV0ZXJzKGNvbnN0IHN0
ZDo6bWFwPGludCxkb3VibGU+JikgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29n
bml6ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0
dXJlUmVjb2duaXplckNocm9taXVtLmNwcAppbmRleCBlZmI1M2RjZGZlZTdiNjhmNTI0MTI2OTQ3
OGRkNmE4Njc3NDM3YjRmLi41OWMzYzllY2MyMGRiYjIwOGNiYzhiY2ZjNGFkNDE1NzM1OTA1ZGVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJlUmVj
b2duaXplckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1
bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmNwcApAQCAtMzMsMTIgKzMzLDI4IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6IE1ha2UgdGhlc2UgY29uZmlndXJhYmxlIHBy
b2dyYW1tYXRpY2FsbHkuCi1zdGF0aWMgY29uc3QgZG91YmxlIG1heGltdW1Ub3VjaERvd25EdXJh
dGlvbkluU2Vjb25kc0ZvckNsaWNrID0gMC44Owotc3RhdGljIGNvbnN0IGRvdWJsZSBtaW5pbXVt
VG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljayA9IDAuMDE7Ci1zdGF0aWMgY29uc3Qg
ZG91YmxlIG1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrID0gMC43Owotc3RhdGljIGNv
bnN0IGludCBtYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljayA9IDIwOwotc3RhdGljIGNv
bnN0IGZsb2F0IG1pbkZsaWNrU3BlZWRTcXVhcmVkID0gNTUwLmYgKiA1NTAuZjsKK25hbWVzcGFj
ZSB7CisgICAgZG91YmxlIG1heGltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNr
ID0gMC44OworICAgIGRvdWJsZSBtaW5pbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JD
bGljayA9IDAuMDE7CisgICAgZG91YmxlIG1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNr
ID0gMC43OworICAgIGludCBtYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljayA9IDIwOwor
ICAgIGZsb2F0IG1pbkZsaWNrU3BlZWRTcXVhcmVkID0gNTUwLmYgKiA1NTAuZjsKKworICAgIGVu
dW0gQ29uZmlndXJhdGlvblNldHRpbmcgeworICAgICAgICBNYXhpbXVtVG91Y2hEb3duRHVyYXRp
b25JblNlY29uZHNGb3JDbGljaywKKyAgICAgICAgTWluaW11bVRvdWNoRG93bkR1cmF0aW9uSW5T
ZWNvbmRzRm9yQ2xpY2ssCisgICAgICAgIE1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNr
LAorICAgICAgICBNYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljaywgCisgICAgICAgIE1p
bkZsaWNrU3BlZWRTcXVhcmVkLAorICAgIH07CisgICAgZG91YmxlIHJlYWRDb25maWd1cmF0aW9u
KGNvbnN0IHN0ZDo6bWFwPGludCxkb3VibGU+JiBjb25maWd1cmF0aW9uLCBDb25maWd1cmF0aW9u
U2V0dGluZyBpbmRleCwgZG91YmxlIGRlZmF1bHRWYWx1ZSkKKyAgICB7CisgICAgICAgIHN0ZDo6
bWFwPGludCxkb3VibGU+Ojpjb25zdF9pdGVyYXRvciBpdGVtID0gY29uZmlndXJhdGlvbi5maW5k
KGluZGV4KTsKKyAgICAgICAgaWYgKGl0ZW0gIT0gY29uZmlndXJhdGlvbi5lbmQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBpdGVtLT5zZWNvbmQ7CisgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7
CisgICAgfQorfQogCiBHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpHZXN0dXJlUmVjb2duaXpl
ckNocm9taXVtKCkKICAgICA6IG1fZmlyc3RUb3VjaFRpbWUoMC4wKQpAQCAtNzIsNiArODgsMTUg
QEAgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bSgp
CiAgICAgYWRkRWRnZUZ1bmN0aW9uKFNjcm9sbCwgRmlyc3RGaW5nZXIsIENhbmNlbGxlZCwgZmFs
c2UsICZHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpzY3JvbGxFbmQpOwogfQogCit2b2lkIEdl
c3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OnNldEdlc3R1cmVQYXJhbWV0ZXJzKGNvbnN0IHN0ZDo6
bWFwPGludCxkb3VibGU+JiBwYXJhbWV0ZXJzKQoreworICAgIG1heGltdW1Ub3VjaERvd25EdXJh
dGlvbkluU2Vjb25kc0ZvckNsaWNrID0gcmVhZENvbmZpZ3VyYXRpb24ocGFyYW1ldGVycywgTWF4
aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2ssMC44KTsKKyAgICBtaW5pbXVt
VG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljayA9IHJlYWRDb25maWd1cmF0aW9uKHBh
cmFtZXRlcnMsIE1pbmltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrLCAwLjAx
KTsKKyAgICBtYXhpbXVtU2Vjb25kc0JldHdlZW5Eb3VibGVDbGljayA9IHJlYWRDb25maWd1cmF0
aW9uKHBhcmFtZXRlcnMsIE1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrLCAwLjcpOwor
ICAgIG1heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrID0gcmVhZENvbmZpZ3VyYXRpb24o
cGFyYW1ldGVycywgTWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2ssIDIwKTsKKyAgICBt
aW5GbGlja1NwZWVkU3F1YXJlZCA9IHJlYWRDb25maWd1cmF0aW9uKHBhcmFtZXRlcnMsIE1pbkZs
aWNrU3BlZWRTcXVhcmVkLCA1NTAuZiAqIDU1MC5mKTsKK30KKwogdm9pZCBHZXN0dXJlUmVjb2du
aXplckNocm9taXVtOjpyZXNldCgpCiB7CiAgICAgbV9maXJzdFRvdWNoVGltZSA9IDAuMDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVSZWNvZ25p
emVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVS
ZWNvZ25pemVyQ2hyb21pdW0uaAppbmRleCA0ODg5ODY2ZjY2MzRiNTYwMzlhNGViNTEzNGEyZTcw
YTk2ZGNmNGI5Li44NDY4YjdlNmE4NzM4Mjk0NTdlMTU1NGNmNDkxYjRhNzRlM2U3NTBhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJlUmVjb2duaXpl
ckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVy
ZVJlY29nbml6ZXJDaHJvbWl1bS5oCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiUGxhdGZv
cm1Ub3VjaEV2ZW50LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Ub3VjaFBvaW50LmgiCiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KKyNpbmNsdWRlIDxtYXA+CiAKIGNsYXNzIEluc3BlY3RhYmxlR2Vz
dHVyZVJlY29nbml6ZXJDaHJvbWl1bTsKIApAQCAtNTgsNiArNTksNyBAQCBwdWJsaWM6CiAgICAg
fkdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0oKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZXNldCgp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRHZXN0dXJlUGFyYW1ldGVycyhjb25zdCBzdGQ6Om1hcDxp
bnQsZG91YmxlPiYpOwogICAgIHZpcnR1YWwgUGxhdGZvcm1HZXN0dXJlUmVjb2duaXplcjo6UGFz
c0dlc3R1cmVzICBwcm9jZXNzVG91Y2hFdmVudEZvckdlc3R1cmVzKGNvbnN0IFBsYXRmb3JtVG91
Y2hFdmVudCYsIGJvb2wgZGVmYXVsdFByZXZlbnRlZCk7CiAgICAgU3RhdGUgc3RhdGUoKSB7IHJl
dHVybiBtX3N0YXRlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVi
bGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0
aW5ncy5oCmluZGV4IDM5M2JiODc4N2U5NDlhYWZjMjk1ZGNmODk1Y2U3ZjUxZWI1YWY2YTAuLjBl
MGM2MjYxNjQzNzQ0NDA5Y2VmYzk1NTg2NjUyZjYzY2RkNjhmMmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5j
bHVkZSAiV2ViQ29tbW9uLmgiCiAjaW5jbHVkZSA8dW5pY29kZS91c2NyaXB0Lmg+CisjaW5jbHVk
ZSA8bWFwPgogCiAjZGVmaW5lIEhBU19XRUJBVURJT19GRUFUVVJFX0VOQUJMRSAxCiAKQEAgLTEz
Myw3ICsxMzQsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZVNjcm9sbEFu
aW1hdG9yKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SGl4aWU3NldlYlNvY2tldFBy
b3RvY29sRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFZpc3VhbFdvcmRN
b3ZlbWVudEVuYWJsZWQoYm9vbCkgPSAwOwotCisgICAgdmlydHVhbCB2b2lkIHNldEdlc3R1cmVQ
YXJhbWV0ZXJzKGNvbnN0IHN0ZDo6bWFwPGludCxkb3VibGU+JikgPSAwOwogcHJvdGVjdGVkOgog
ICAgIH5XZWJTZXR0aW5ncygpIHsgfQogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IDc3ZjljMjg4YzAzMTg1OTk4OGQzNjM2Y2IzNTk1
MmZjNDkzZjAyY2YuLjRmOGY4YzE5NTlhYzhhOGJmYmFiMTM5MmUxZGEwM2NhMzMwYmM5NmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAt
MzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIldlYlNldHRpbmdzSW1wbC5oIgogCiAjaW5jbHVkZSAi
Rm9udFJlbmRlcmluZ01vZGUuaCIKKyNpbmNsdWRlICJQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVy
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNs
dWRlICJXZWJVUkwuaCIKQEAgLTQ3MCw0ICs0NzEsOSBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6
c2V0VmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbV9zZXR0aW5n
cy0+c2V0VmlzdWFsV29yZE1vdmVtZW50RW5hYmxlZChlbmFibGVkKTsKIH0KIAordm9pZCBXZWJT
ZXR0aW5nc0ltcGw6OnNldEdlc3R1cmVQYXJhbWV0ZXJzKGNvbnN0IHN0ZDo6bWFwPGludCxkb3Vi
bGU+JiBwYXJhbWV0ZXJzKQoreworICAgIE93blB0cjxQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVy
PiByZWNvZ25pemVyID0gUGxhdGZvcm1HZXN0dXJlUmVjb2duaXplcjo6Y3JlYXRlKCk7CisgICAg
cmVjb2duaXplci0+c2V0R2VzdHVyZVBhcmFtZXRlcnMocGFyYW1ldGVycyk7Cit9CiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmgKaW5kZXggMDc4YTY4Y2FiNjYzZmRkNWJiZWI0MzY1ZTRjNzJkNTEzZjJlOGYzNy4uMDIz
YWM3M2U1YTc0ZjVkNTMxNTRmZWE0NjEzNWM2Y2FjYmU0ZjNhMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTEyNSw2ICsxMjUsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGJvb2wpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRIaXhpZTc2V2ViU29ja2V0UHJvdG9jb2xFbmFibGVkKGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRWaXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkKGJvb2wpOworICAg
IHZpcnR1YWwgdm9pZCBzZXRHZXN0dXJlUGFyYW1ldGVycyhjb25zdCBzdGQ6Om1hcDxpbnQsZG91
YmxlPiYpOwogCiBwcml2YXRlOgogICAgIFdlYkNvcmU6OlNldHRpbmdzKiBtX3NldHRpbmdzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118124</attachid>
            <date>2011-12-06 15:28:54 -0800</date>
            <delta_ts>2011-12-06 16:15:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72632-20111206182852.patch</filename>
            <type>text/plain</type>
            <size>15760</size>
            <attacher name="Eugene Girard">girard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA5Y2Q4ZjNmNjNhYWNj
OTY4MGE3ZTQ1ZjA3ZTZhZjU2NTY3MzY1OC4uMjU2MTkyNTU0NzQ4MDRjNjc2NmEwY2U5Y2MxYjZi
ZmYxMjRhZjU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDExLTEyLTA2ICBFdWdl
bmUgR2lyYXJkICA8Z2lyYXJkQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1h
a2UgR2VzdHVyZVJlY29nbml6ZXIgUGFyYW1ldGVycyBDb25maWd1cmFibGUgKEluY29tcGxldGUg
LSBTZWVraW5nIEZlZWRiYWNrKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzI2MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmlzSW5DbGlja1RpbWVX
aW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6aXNJ
blNlY29uZENsaWNrVGltZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2du
aXplckNocm9taXVtOjppc0luc2lkZU1hbmhhdHRhblNxdWFyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjppc1NlY29uZENsaWNrSW5zaWRlTWFuaGF0dGFu
U3F1YXJlKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06Omlz
T3Zlck1pbkZsaWNrU3BlZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVS
ZWNvZ25pemVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVy
Q2hyb21pdW06OnNldEdlc3R1cmVNYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JD
bGljayk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpnZXN0
dXJlTWF4aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2spOgorICAgICAgICAo
V2ViQ29yZTo6R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6c2V0R2VzdHVyZU1pbmltdW1Ub3Vj
aERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1
cmVSZWNvZ25pemVyQ2hyb21pdW06Omdlc3R1cmVNaW5pbXVtVG91Y2hEb3duRHVyYXRpb25JblNl
Y29uZHNGb3JDbGljayk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9t
aXVtOjpzZXRHZXN0dXJlTWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2spOgorICAgICAg
ICAoV2ViQ29yZTo6R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6Z2VzdHVyZU1heGltdW1TZWNv
bmRzQmV0d2VlbkRvdWJsZUNsaWNrKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25p
emVyQ2hyb21pdW06OnNldEdlc3R1cmVNYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljayk6
CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpnZXN0dXJlTWF4
aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2spOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVy
ZVJlY29nbml6ZXJDaHJvbWl1bTo6c2V0R2VzdHVyZU1pbkZsaWNrU3BlZWRTcXVhcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06Omdlc3R1cmVNaW5GbGlj
a1NwZWVkU3F1YXJlZCk6CisKIDIwMTEtMTItMDYgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25A
Z21haWwuY29tPgogCiAgICAgICAgIFdlYlBJbWFnZURlY29kZXIgY29tcHV0ZXMgaW1hZ2Ugd2lk
dGggYW5kIGhlaWdodCBtdWx0aXBsZSB0aW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBjYzRiMGFhYzQ2ZDI5YjIxNzIyMDMyYzQxOTMyNmRlZTJjYmY2ZDc0Li44MmM5ODQ5OWJiYTk0
ZGEzZGIzYTVlYjNiYTYyYWVhMTcyMGQzNjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDExLTEyLTA2ICBFdWdlbmUgR2lyYXJkICA8Z2lyYXJkQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1ha2UgR2VzdHVyZVJlY29nbml6ZXIgUGFy
YW1ldGVycyBDb25maWd1cmFibGUgKEluY29tcGxldGUgLSBTZWVraW5nIEZlZWRiYWNrKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2MzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Lmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnNldEdlc3R1cmVNYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljayk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpnZXN0dXJlTWF4aW11bVRvdWNoRG93bkR1
cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
c2V0R2VzdHVyZU1pbmltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omdlc3R1cmVNaW5pbXVtVG91Y2hEb3duRHVyYXRp
b25JblNlY29uZHNGb3JDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRH
ZXN0dXJlTWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2spOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6Z2VzdHVyZU1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEdlc3R1cmVNYXhpbXVtVG91Y2hNb3Zl
SW5QaXhlbHNGb3JDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpnZXN0dXJl
TWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6c2V0R2VzdHVyZU1pbkZsaWNrU3BlZWRTcXVhcmVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6Omdlc3R1cmVNaW5GbGlja1NwZWVkU3F1YXJlZCk6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTEtMTItMDYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MDIxMDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUdlc3R1
cmVSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUdlc3R1cmVS
ZWNvZ25pemVyLmgKaW5kZXggMGI4NmE5Mjc2ZmI2YmRlZjliN2MzNzg4M2M1MDkzZjc3ZTA0Y2Iz
Yy4uM2MxYWY3Zjc2OTg2NGM3YzUyZDI0NDQyY2Q1YTYyZjVkNjM5ODYxYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1HZXN0dXJlUmVjb2duaXplci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXIuaApAQCAt
NTUsNiArNTUsMTggQEAgcHVibGljOgogCiAgICAgLy8gQ2xlYXJzIHRoZSBHZXN0dXJlUmVjb2du
aXplciB0byBpdHMgaW5pdGlhbCBzdGF0ZS4KICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSA9IDA7
CisKKyAgICAvLyBTZXR0aW5ncyB0aGF0IGNvbnRyb2wgZ2VzdHVyZSByZWNvZ25pdGlvbi4KKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0R2VzdHVyZU1heGltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25k
c0ZvckNsaWNrKGRvdWJsZSB2YWwpID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBnZXN0dXJlTWF4
aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2soKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHNldEdlc3R1cmVNaW5pbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNG
b3JDbGljayhkb3VibGUgdmFsKSA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1pbmlt
dW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzZXRHZXN0dXJlTWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2soZG91
YmxlIHZhbCkgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIGdlc3R1cmVNYXhpbXVtU2Vjb25kc0Jl
dHdlZW5Eb3VibGVDbGljaygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0R2VzdHVy
ZU1heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrKGRvdWJsZSB2YWwpID0gMDsKKyAgICB2
aXJ0dWFsIGRvdWJsZSBnZXN0dXJlTWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2soKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEdlc3R1cmVNaW5GbGlja1NwZWVkU3F1YXJl
ZChkb3VibGUgdmFsKSA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1pbkZsaWNrU3Bl
ZWRTcXVhcmVkKCkgY29uc3QgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6
ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJl
UmVjb2duaXplckNocm9taXVtLmNwcAppbmRleCBlZmI1M2RjZGZlZTdiNjhmNTI0MTI2OTQ3OGRk
NmE4Njc3NDM3YjRmLi44YWY1ZDUzOWM0NTAzNDY0YzJlMjViOWYxMWQ5Y2EzNGY5NzU4Mjc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJlUmVjb2du
aXplckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9H
ZXN0dXJlUmVjb2duaXplckNocm9taXVtLmNwcApAQCAtMzMsMTIgKzMzLDExIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6IE1ha2UgdGhlc2UgY29uZmlndXJhYmxlIHByb2dy
YW1tYXRpY2FsbHkuCi1zdGF0aWMgY29uc3QgZG91YmxlIG1heGltdW1Ub3VjaERvd25EdXJhdGlv
bkluU2Vjb25kc0ZvckNsaWNrID0gMC44Owotc3RhdGljIGNvbnN0IGRvdWJsZSBtaW5pbXVtVG91
Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljayA9IDAuMDE7Ci1zdGF0aWMgY29uc3QgZG91
YmxlIG1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrID0gMC43Owotc3RhdGljIGNvbnN0
IGludCBtYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljayA9IDIwOwotc3RhdGljIGNvbnN0
IGZsb2F0IG1pbkZsaWNrU3BlZWRTcXVhcmVkID0gNTUwLmYgKiA1NTAuZjsKK2RvdWJsZSBHZXN0
dXJlUmVjb2duaXplckNocm9taXVtOjpzX21heGltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25k
c0ZvckNsaWNrID0gMC44OworZG91YmxlIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OnNfbWlu
aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2sgPSAwLjAxOworZG91YmxlIEdl
c3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OnNfbWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xp
Y2sgPSAwLjc7Citkb3VibGUgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6c19tYXhpbXVtVG91
Y2hNb3ZlSW5QaXhlbHNGb3JDbGljayA9IDIwOworZG91YmxlIEdlc3R1cmVSZWNvZ25pemVyQ2hy
b21pdW06OnNfbWluRmxpY2tTcGVlZFNxdWFyZWQgPSA1NTAuZiAqIDU1MC5mOwogCiBHZXN0dXJl
UmVjb2duaXplckNocm9taXVtOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtKCkKICAgICA6IG1f
Zmlyc3RUb3VjaFRpbWUoMC4wKQpAQCAtOTcsMzAgKzk2LDMwIEBAIHZvaWQgR2VzdHVyZVJlY29n
bml6ZXJDaHJvbWl1bTo6YWRkRWRnZUZ1bmN0aW9uKFN0YXRlIHN0YXRlLCB1bnNpZ25lZCBmaW5n
ZXJJZCwKIGJvb2wgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6aXNJbkNsaWNrVGltZVdpbmRv
dygpCiB7CiAgICAgZG91YmxlIGR1cmF0aW9uKG1fbGFzdFRvdWNoVGltZSAtIG1fZmlyc3RUb3Vj
aFRpbWUpOwotICAgIHJldHVybiBkdXJhdGlvbiA+PSBtaW5pbXVtVG91Y2hEb3duRHVyYXRpb25J
blNlY29uZHNGb3JDbGljayAmJiBkdXJhdGlvbiA8IG1heGltdW1Ub3VjaERvd25EdXJhdGlvbklu
U2Vjb25kc0ZvckNsaWNrOworICAgIHJldHVybiBkdXJhdGlvbiA+PSBzX21pbmltdW1Ub3VjaERv
d25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrICYmIGR1cmF0aW9uIDwgc19tYXhpbXVtVG91Y2hE
b3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljazsKIH0KIAogYm9vbCBHZXN0dXJlUmVjb2duaXpl
ckNocm9taXVtOjppc0luU2Vjb25kQ2xpY2tUaW1lV2luZG93KCkKIHsKICAgICBkb3VibGUgZHVy
YXRpb24obV9sYXN0VG91Y2hUaW1lIC0gbV9sYXN0Q2xpY2tUaW1lKTsKLSAgICByZXR1cm4gZHVy
YXRpb24gPCBtYXhpbXVtU2Vjb25kc0JldHdlZW5Eb3VibGVDbGljazsKKyAgICByZXR1cm4gZHVy
YXRpb24gPCBzX21heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrOwogfQogCiBib29sIEdl
c3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmlzSW5zaWRlTWFuaGF0dGFuU3F1YXJlKGNvbnN0IFBs
YXRmb3JtVG91Y2hQb2ludCYgcG9pbnQpCiB7CiAgICAgaW50IG1hbmhhdHRhbkRpc3RhbmNlID0g
YWJzKHBvaW50LnBvcygpLngoKSAtIG1fZmlyc3RUb3VjaFBvc2l0aW9uLngoKSkgKyBhYnMocG9p
bnQucG9zKCkueSgpIC0gbV9maXJzdFRvdWNoUG9zaXRpb24ueSgpKTsKLSAgICByZXR1cm4gbWFu
aGF0dGFuRGlzdGFuY2UgPCBtYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljazsKKyAgICBy
ZXR1cm4gbWFuaGF0dGFuRGlzdGFuY2UgPCBzX21heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNs
aWNrOwogfQogCiBib29sIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmlzU2Vjb25kQ2xpY2tJ
bnNpZGVNYW5oYXR0YW5TcXVhcmUoY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiBwb2ludCkKIHsK
ICAgICBpbnQgbWFuaGF0dGFuRGlzdGFuY2UgPSBhYnMocG9pbnQucG9zKCkueCgpIC0gbV9sYXN0
Q2xpY2tQb3NpdGlvbi54KCkpICsgYWJzKHBvaW50LnBvcygpLnkoKSAtIG1fbGFzdENsaWNrUG9z
aXRpb24ueSgpKTsKLSAgICByZXR1cm4gbWFuaGF0dGFuRGlzdGFuY2UgPCBtYXhpbXVtVG91Y2hN
b3ZlSW5QaXhlbHNGb3JDbGljazsKKyAgICByZXR1cm4gbWFuaGF0dGFuRGlzdGFuY2UgPCBzX21h
eGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrOwogfQogCiBib29sIEdlc3R1cmVSZWNvZ25p
emVyQ2hyb21pdW06OmlzT3Zlck1pbkZsaWNrU3BlZWQoKQogewotICAgIHJldHVybiAobV94VmVs
b2NpdHkgKiBtX3hWZWxvY2l0eSArIG1feVZlbG9jaXR5ICogbV95VmVsb2NpdHkpID4gbWluRmxp
Y2tTcGVlZFNxdWFyZWQ7CisgICAgcmV0dXJuIChtX3hWZWxvY2l0eSAqIG1feFZlbG9jaXR5ICsg
bV95VmVsb2NpdHkgKiBtX3lWZWxvY2l0eSkgPiBzX21pbkZsaWNrU3BlZWRTcXVhcmVkOwogfQog
CiB2b2lkIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmFwcGVuZFRhcERvd25HZXN0dXJlRXZl
bnQoY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiB0b3VjaFBvaW50LCBHZXN0dXJlcyBnZXN0dXJl
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVS
ZWNvZ25pemVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dl
c3R1cmVSZWNvZ25pemVyQ2hyb21pdW0uaAppbmRleCA0ODg5ODY2ZjY2MzRiNTYwMzlhNGViNTEz
NGEyZTcwYTk2ZGNmNGI5Li43NDdiYjQ0NTQyMjQ3MGExN2MwY2FhY2ZjNGExMmQyZDdjMjcxOTZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJlUmVj
b2duaXplckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5oCkBAIC02MSw2ICs2MSwxNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVyOjpQYXNzR2VzdHVyZXMgIHByb2Nl
c3NUb3VjaEV2ZW50Rm9yR2VzdHVyZXMoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiwgYm9vbCBk
ZWZhdWx0UHJldmVudGVkKTsKICAgICBTdGF0ZSBzdGF0ZSgpIHsgcmV0dXJuIG1fc3RhdGU7IH0K
IAorICAgIHZpcnR1YWwgdm9pZCBzZXRHZXN0dXJlTWF4aW11bVRvdWNoRG93bkR1cmF0aW9uSW5T
ZWNvbmRzRm9yQ2xpY2soZG91YmxlIHZhbCkgeyBzX21heGltdW1Ub3VjaERvd25EdXJhdGlvbklu
U2Vjb25kc0ZvckNsaWNrID0gdmFsOyB9CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1heGlt
dW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKCkgY29uc3QgeyByZXR1cm4gc19t
YXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljazsgfQorICAgIHZpcnR1YWwg
dm9pZCBzZXRHZXN0dXJlTWluaW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2so
ZG91YmxlIHZhbCkgeyBzX21pbmltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNr
ID0gdmFsOyB9CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1pbmltdW1Ub3VjaERvd25EdXJh
dGlvbkluU2Vjb25kc0ZvckNsaWNrKCkgY29uc3QgeyByZXR1cm4gc19taW5pbXVtVG91Y2hEb3du
RHVyYXRpb25JblNlY29uZHNGb3JDbGljazsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRHZXN0dXJl
TWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2soZG91YmxlIHZhbCkgeyBzX21heGltdW1T
ZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrID0gdmFsOyB9CisgICAgdmlydHVhbCBkb3VibGUgZ2Vz
dHVyZU1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrKCkgY29uc3QgeyByZXR1cm4gc19t
YXhpbXVtU2Vjb25kc0JldHdlZW5Eb3VibGVDbGljazsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRH
ZXN0dXJlTWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2soZG91YmxlIHZhbCkgeyBzX21h
eGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrID0gdmFsOyB9CisgICAgdmlydHVhbCBkb3Vi
bGUgZ2VzdHVyZU1heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrKCkgY29uc3QgeyByZXR1
cm4gc19tYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljazsgfQorICAgIHZpcnR1YWwgdm9p
ZCBzZXRHZXN0dXJlTWluRmxpY2tTcGVlZFNxdWFyZWQoZG91YmxlIHZhbCkgeyBzX21pbkZsaWNr
U3BlZWRTcXVhcmVkID0gdmFsOyB9CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1pbkZsaWNr
U3BlZWRTcXVhcmVkKCkgY29uc3QgeyByZXR1cm4gc19taW5GbGlja1NwZWVkU3F1YXJlZDsgfQor
CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyA6Okluc3BlY3RhYmxlR2VzdHVyZVJlY29nbml6
ZXJDaHJvbWl1bTsKIApAQCAtMTA0LDYgKzExNSwxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9h
bHRLZXk7CiAgICAgYm9vbCBtX3NoaWZ0S2V5OwogICAgIGJvb2wgbV9tZXRhS2V5OworCisgICAg
c3RhdGljIGRvdWJsZSBzX21heGltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNr
OworICAgIHN0YXRpYyBkb3VibGUgc19taW5pbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNG
b3JDbGljazsKKyAgICBzdGF0aWMgZG91YmxlIHNfbWF4aW11bVNlY29uZHNCZXR3ZWVuRG91Ymxl
Q2xpY2s7CisgICAgc3RhdGljIGRvdWJsZSBzX21heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNs
aWNrOworICAgIHN0YXRpYyBkb3VibGUgc19taW5GbGlja1NwZWVkU3F1YXJlZDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcu
aAppbmRleCA4NTk3NTdmOTk3ZTU0ZTdhNDY4MWY4ZWY4YTA3MDg0OGQzNWQyNmE0Li5mZGFhZDgz
MGFiNWYyMTM2ZmU5OGQ3YmM3ZmFhNjFhMDYzY2ZlYjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlldy5oCkBAIC00MzgsNiArNDM4LDE3IEBAIHB1YmxpYzoKICAgICAvLyBT
aW11bGF0ZXMgYSBjb21wb3NpdG9yIGxvc3QgY29udGV4dC4KICAgICB2aXJ0dWFsIHZvaWQgbG9z
ZUNvbXBvc2l0b3JDb250ZXh0KGludCBudW1UaW1lcykgPSAwOwogCisgICAgLy8gU2V0dGluZ3Mg
dGhhdCBjb250cm9sIGdlc3R1cmUgcmVjb2duaXRpb24uCisgICAgdmlydHVhbCB2b2lkIHNldEdl
c3R1cmVNYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljayhkb3VibGUgdmFs
KSA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1heGltdW1Ub3VjaERvd25EdXJhdGlv
bkluU2Vjb25kc0ZvckNsaWNrKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRHZXN0
dXJlTWluaW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2soZG91YmxlIHZhbCkg
PSAwOworICAgIHZpcnR1YWwgZG91YmxlIGdlc3R1cmVNaW5pbXVtVG91Y2hEb3duRHVyYXRpb25J
blNlY29uZHNGb3JDbGljaygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0R2VzdHVy
ZU1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrKGRvdWJsZSB2YWwpID0gMDsKKyAgICB2
aXJ0dWFsIGRvdWJsZSBnZXN0dXJlTWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2soKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEdlc3R1cmVNYXhpbXVtVG91Y2hNb3ZlSW5Q
aXhlbHNGb3JDbGljayhkb3VibGUgdmFsKSA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVy
ZU1heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRHZXN0dXJlTWluRmxpY2tTcGVlZFNxdWFyZWQoZG91YmxlIHZhbCkgPSAwOwor
ICAgIHZpcnR1YWwgZG91YmxlIGdlc3R1cmVNaW5GbGlja1NwZWVkU3F1YXJlZCgpIGNvbnN0ID0g
MDsKIAogcHJvdGVjdGVkOgogICAgIH5XZWJWaWV3KCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAwNmMwOTcyOTZlYjg2MTdkMjBjNmI3YjI0NzE1
MzNkMTdhMjMwMjMxLi5iNDY0OWJiZjQxZjdhZmNkOTFkZjMzMGEyYjcyOWY3MjM4OGY0N2JiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0zMDcxLDQg
KzMwNzEsOTkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVzZXRHZXN0dXJlUmVjb2duaXplcigpCiB9
CiAjZW5kaWYKIAorPDw8PDw8PCBIRUFECis9PT09PT09Cit2b2lkIFdlYlZpZXdJbXBsOjpleGl0
RnVsbHNjcmVlbigpCit7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIERvY3VtZW50
KiBkb2N1bWVudCA9IHBhZ2UoKS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgRWxlbWVu
dCogZnVsbHNjcmVlbkVsZW1lbnQgPSBkb2N1bWVudC0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5F
bGVtZW50KCk7CisgICAgaWYgKCFmdWxsc2NyZWVuRWxlbWVudCkKKyAgICAgICAgcmV0dXJuOwor
ICAgIGRvY3VtZW50LT53ZWJraXRXaWxsRXhpdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KGZ1bGxzY3Jl
ZW5FbGVtZW50KTsKKyAgICBkb2N1bWVudC0+d2Via2l0RGlkRXhpdEZ1bGxTY3JlZW5Gb3JFbGVt
ZW50KGZ1bGxzY3JlZW5FbGVtZW50KTsKKyNlbmRpZgorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpz
ZXRHZXN0dXJlTWF4aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2soZG91Ymxl
IHZhbCkKK3sKKyNpZiBFTkFCTEUoR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIG1fZ2VzdHVyZVJl
Y29nbml6ZXItPnNldEdlc3R1cmVNYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JD
bGljayh2YWwpOworI2VuZGlmCit9CisKK2RvdWJsZSBXZWJWaWV3SW1wbDo6Z2VzdHVyZU1heGlt
dW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKCkgY29uc3QKK3sKKyNpZiBFTkFC
TEUoR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIHJldHVybiBtX2dlc3R1cmVSZWNvZ25pemVyLT5n
ZXN0dXJlTWF4aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2soKTsKKyNlbHNl
CisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0R2VzdHVy
ZU1pbmltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKGRvdWJsZSB2YWwpCit7
CisjaWYgRU5BQkxFKEdFU1RVUkVfUkVDT0dOSVpFUikKKyAgICBtX2dlc3R1cmVSZWNvZ25pemVy
LT5zZXRHZXN0dXJlTWluaW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2sodmFs
KTsKKyNlbmRpZgorfQorCitkb3VibGUgV2ViVmlld0ltcGw6Omdlc3R1cmVNaW5pbXVtVG91Y2hE
b3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljaygpIGNvbnN0Cit7CisjaWYgRU5BQkxFKEdFU1RV
UkVfUkVDT0dOSVpFUikKKyAgICByZXR1cm4gbV9nZXN0dXJlUmVjb2duaXplci0+Z2VzdHVyZU1p
bmltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKCk7CisjZWxzZQorICAgIHJl
dHVybiAwOworI2VuZGlmCit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldEdlc3R1cmVNYXhpbXVt
U2Vjb25kc0JldHdlZW5Eb3VibGVDbGljayhkb3VibGUgdmFsKQoreworI2lmIEVOQUJMRShHRVNU
VVJFX1JFQ09HTklaRVIpCisgICAgbV9nZXN0dXJlUmVjb2duaXplci0+c2V0R2VzdHVyZU1heGlt
dW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrKHZhbCk7CisjZW5kaWYKK30KKworZG91YmxlIFdl
YlZpZXdJbXBsOjpnZXN0dXJlTWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2soKSBjb25z
dAoreworI2lmIEVOQUJMRShHRVNUVVJFX1JFQ09HTklaRVIpCisgICAgcmV0dXJuIG1fZ2VzdHVy
ZVJlY29nbml6ZXItPmdlc3R1cmVNYXhpbXVtU2Vjb25kc0JldHdlZW5Eb3VibGVDbGljaygpOwor
I2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRH
ZXN0dXJlTWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2soZG91YmxlIHZhbCkKK3sKKyNp
ZiBFTkFCTEUoR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIG1fZ2VzdHVyZVJlY29nbml6ZXItPnNl
dEdlc3R1cmVNYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljayh2YWwpOworI2VuZGlmCit9
CisKK2RvdWJsZSBXZWJWaWV3SW1wbDo6Z2VzdHVyZU1heGltdW1Ub3VjaE1vdmVJblBpeGVsc0Zv
ckNsaWNrKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIHJl
dHVybiBtX2dlc3R1cmVSZWNvZ25pemVyLT5nZXN0dXJlTWF4aW11bVRvdWNoTW92ZUluUGl4ZWxz
Rm9yQ2xpY2soKTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5kaWYKK30KKwordm9pZCBXZWJW
aWV3SW1wbDo6c2V0R2VzdHVyZU1pbkZsaWNrU3BlZWRTcXVhcmVkKGRvdWJsZSB2YWwpCit7Cisj
aWYgRU5BQkxFKEdFU1RVUkVfUkVDT0dOSVpFUikKKyAgICBtX2dlc3R1cmVSZWNvZ25pemVyLT5z
ZXRHZXN0dXJlTWluRmxpY2tTcGVlZFNxdWFyZWQodmFsKTsKKyNlbmRpZgorfQorCitkb3VibGUg
V2ViVmlld0ltcGw6Omdlc3R1cmVNaW5GbGlja1NwZWVkU3F1YXJlZCgpIGNvbnN0Cit7CisjaWYg
RU5BQkxFKEdFU1RVUkVfUkVDT0dOSVpFUikKKyAgICByZXR1cm4gbV9nZXN0dXJlUmVjb2duaXpl
ci0+Z2VzdHVyZU1pbkZsaWNrU3BlZWRTcXVhcmVkKCk7CisjZWxzZQorICAgIHJldHVybiAwOwor
I2VuZGlmCit9CisKKz4+Pj4+Pj4gR2VzdHVyZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgbm93
IHdvcmsuCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oCmluZGV4IDI3MmQ1ZTMwYWRjZjA2OWFhM2VmODgzZWVkYTkyODkxYTBjOWQ4
M2QuLjUxOGE5NzcxYTFiYjU0MGViOTNiOTZkNTZkMzBjNzBjMDBmNmM4ZGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApAQCAtNDYwLDYgKzQ2MCwxOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNIb3Jpem9udGFsU2Nyb2xsYmFyKCk7CiAgICAgYm9vbCBoYXNWZXJ0
aWNhbFNjcm9sbGJhcigpOwogCisgICAgLy8gU2V0dGluZ3MgdGhhdCBjb250cm9sIGdlc3R1cmUg
cmVjb2duaXRpb24uCisgICAgdmlydHVhbCB2b2lkIHNldEdlc3R1cmVNYXhpbXVtVG91Y2hEb3du
RHVyYXRpb25JblNlY29uZHNGb3JDbGljayhkb3VibGUgdmFsKTsKKyAgICB2aXJ0dWFsIGRvdWJs
ZSBnZXN0dXJlTWF4aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2soKSBjb25z
dDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0R2VzdHVyZU1pbmltdW1Ub3VjaERvd25EdXJhdGlvbklu
U2Vjb25kc0ZvckNsaWNrKGRvdWJsZSB2YWwpOworICAgIHZpcnR1YWwgZG91YmxlIGdlc3R1cmVN
aW5pbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljaygpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCBzZXRHZXN0dXJlTWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2soZG91
YmxlIHZhbCk7CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1heGltdW1TZWNvbmRzQmV0d2Vl
bkRvdWJsZUNsaWNrKCkgY29uc3Q7CisgICAgdmlydHVhbCB2b2lkIHNldEdlc3R1cmVNYXhpbXVt
VG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljayhkb3VibGUgdmFsKTsKKyAgICB2aXJ0dWFsIGRvdWJs
ZSBnZXN0dXJlTWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2soKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0R2VzdHVyZU1pbkZsaWNrU3BlZWRTcXVhcmVkKGRvdWJsZSB2YWwpOwor
ICAgIHZpcnR1YWwgZG91YmxlIGdlc3R1cmVNaW5GbGlja1NwZWVkU3F1YXJlZCgpIGNvbnN0Owor
CiBwcml2YXRlOgogICAgIGZsb2F0IGNvbXB1dGVQYWdlU2NhbGVGYWN0b3JXaXRoaW5MaW1pdHMo
ZmxvYXQgc2NhbGUpOwogICAgIFdlYlBvaW50IGNsYW1wT2Zmc2V0QXRTY2FsZShjb25zdCBXZWJQ
b2ludCYgb2Zmc2V0LCBmbG9hdCBzY2FsZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118134</attachid>
            <date>2011-12-06 16:15:53 -0800</date>
            <delta_ts>2012-01-06 12:29:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72632-20111206191551.patch</filename>
            <type>text/plain</type>
            <size>15283</size>
            <attacher name="Eugene Girard">girard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMTYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODA5Y2Q4ZjNmNjNhYWNj
OTY4MGE3ZTQ1ZjA3ZTZhZjU2NTY3MzY1OC4uMjU2MTkyNTU0NzQ4MDRjNjc2NmEwY2U5Y2MxYjZi
ZmYxMjRhZjU4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDExLTEyLTA2ICBFdWdl
bmUgR2lyYXJkICA8Z2lyYXJkQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1h
a2UgR2VzdHVyZVJlY29nbml6ZXIgUGFyYW1ldGVycyBDb25maWd1cmFibGUgKEluY29tcGxldGUg
LSBTZWVraW5nIEZlZWRiYWNrKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzI2MzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHBsYXRmb3JtL1BsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXIuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9taXVtLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmlzSW5DbGlja1RpbWVX
aW5kb3cpOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6aXNJ
blNlY29uZENsaWNrVGltZVdpbmRvdyk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2du
aXplckNocm9taXVtOjppc0luc2lkZU1hbmhhdHRhblNxdWFyZSk6CisgICAgICAgIChXZWJDb3Jl
OjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjppc1NlY29uZENsaWNrSW5zaWRlTWFuaGF0dGFu
U3F1YXJlKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06Omlz
T3Zlck1pbkZsaWNrU3BlZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVS
ZWNvZ25pemVyQ2hyb21pdW0uaDoKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVy
Q2hyb21pdW06OnNldEdlc3R1cmVNYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JD
bGljayk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpnZXN0
dXJlTWF4aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2spOgorICAgICAgICAo
V2ViQ29yZTo6R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6c2V0R2VzdHVyZU1pbmltdW1Ub3Vj
aERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1
cmVSZWNvZ25pemVyQ2hyb21pdW06Omdlc3R1cmVNaW5pbXVtVG91Y2hEb3duRHVyYXRpb25JblNl
Y29uZHNGb3JDbGljayk6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9t
aXVtOjpzZXRHZXN0dXJlTWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2spOgorICAgICAg
ICAoV2ViQ29yZTo6R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6Z2VzdHVyZU1heGltdW1TZWNv
bmRzQmV0d2VlbkRvdWJsZUNsaWNrKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25p
emVyQ2hyb21pdW06OnNldEdlc3R1cmVNYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljayk6
CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpnZXN0dXJlTWF4
aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2spOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVy
ZVJlY29nbml6ZXJDaHJvbWl1bTo6c2V0R2VzdHVyZU1pbkZsaWNrU3BlZWRTcXVhcmVkKToKKyAg
ICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06Omdlc3R1cmVNaW5GbGlj
a1NwZWVkU3F1YXJlZCk6CisKIDIwMTEtMTItMDYgIE5vZWwgR29yZG9uICA8bm9lbC5nb3Jkb25A
Z21haWwuY29tPgogCiAgICAgICAgIFdlYlBJbWFnZURlY29kZXIgY29tcHV0ZXMgaW1hZ2Ugd2lk
dGggYW5kIGhlaWdodCBtdWx0aXBsZSB0aW1lcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCBjYzRiMGFhYzQ2ZDI5YjIxNzIyMDMyYzQxOTMyNmRlZTJjYmY2ZDc0Li44MmM5ODQ5OWJiYTk0
ZGEzZGIzYTVlYjNiYTYyYWVhMTcyMGQzNjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDExLTEyLTA2ICBFdWdlbmUgR2lyYXJkICA8Z2lyYXJkQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1ha2UgR2VzdHVyZVJlY29nbml6ZXIgUGFy
YW1ldGVycyBDb25maWd1cmFibGUgKEluY29tcGxldGUgLSBTZWVraW5nIEZlZWRiYWNrKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2MzIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Lmg6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OmV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnNldEdlc3R1cmVNYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljayk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpnZXN0dXJlTWF4aW11bVRvdWNoRG93bkR1
cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
c2V0R2VzdHVyZU1pbmltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omdlc3R1cmVNaW5pbXVtVG91Y2hEb3duRHVyYXRp
b25JblNlY29uZHNGb3JDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRH
ZXN0dXJlTWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2spOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6Z2VzdHVyZU1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEdlc3R1cmVNYXhpbXVtVG91Y2hNb3Zl
SW5QaXhlbHNGb3JDbGljayk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpnZXN0dXJl
TWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6c2V0R2VzdHVyZU1pbkZsaWNrU3BlZWRTcXVhcmVkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6Omdlc3R1cmVNaW5GbGlja1NwZWVkU3F1YXJlZCk6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmg6CisKIDIwMTEtMTItMDYgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJl
dmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIx
MDIxMDIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUdlc3R1
cmVSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybUdlc3R1cmVS
ZWNvZ25pemVyLmgKaW5kZXggMGI4NmE5Mjc2ZmI2YmRlZjliN2MzNzg4M2M1MDkzZjc3ZTA0Y2Iz
Yy4uM2MxYWY3Zjc2OTg2NGM3YzUyZDI0NDQyY2Q1YTYyZjVkNjM5ODYxYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1HZXN0dXJlUmVjb2duaXplci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXIuaApAQCAt
NTUsNiArNTUsMTggQEAgcHVibGljOgogCiAgICAgLy8gQ2xlYXJzIHRoZSBHZXN0dXJlUmVjb2du
aXplciB0byBpdHMgaW5pdGlhbCBzdGF0ZS4KICAgICB2aXJ0dWFsIHZvaWQgcmVzZXQoKSA9IDA7
CisKKyAgICAvLyBTZXR0aW5ncyB0aGF0IGNvbnRyb2wgZ2VzdHVyZSByZWNvZ25pdGlvbi4KKyAg
ICB2aXJ0dWFsIHZvaWQgc2V0R2VzdHVyZU1heGltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25k
c0ZvckNsaWNrKGRvdWJsZSB2YWwpID0gMDsKKyAgICB2aXJ0dWFsIGRvdWJsZSBnZXN0dXJlTWF4
aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2soKSBjb25zdCA9IDA7CisgICAg
dmlydHVhbCB2b2lkIHNldEdlc3R1cmVNaW5pbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNG
b3JDbGljayhkb3VibGUgdmFsKSA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1pbmlt
dW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKCkgY29uc3QgPSAwOworICAgIHZp
cnR1YWwgdm9pZCBzZXRHZXN0dXJlTWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2soZG91
YmxlIHZhbCkgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIGdlc3R1cmVNYXhpbXVtU2Vjb25kc0Jl
dHdlZW5Eb3VibGVDbGljaygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0R2VzdHVy
ZU1heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrKGRvdWJsZSB2YWwpID0gMDsKKyAgICB2
aXJ0dWFsIGRvdWJsZSBnZXN0dXJlTWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2soKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEdlc3R1cmVNaW5GbGlja1NwZWVkU3F1YXJl
ZChkb3VibGUgdmFsKSA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1pbkZsaWNrU3Bl
ZWRTcXVhcmVkKCkgY29uc3QgPSAwOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6
ZXJDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJl
UmVjb2duaXplckNocm9taXVtLmNwcAppbmRleCBlZmI1M2RjZGZlZTdiNjhmNTI0MTI2OTQ3OGRk
NmE4Njc3NDM3YjRmLi44YWY1ZDUzOWM0NTAzNDY0YzJlMjViOWYxMWQ5Y2EzNGY5NzU4Mjc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJlUmVjb2du
aXplckNocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9H
ZXN0dXJlUmVjb2duaXplckNocm9taXVtLmNwcApAQCAtMzMsMTIgKzMzLDExIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotLy8gRklYTUU6IE1ha2UgdGhlc2UgY29uZmlndXJhYmxlIHByb2dy
YW1tYXRpY2FsbHkuCi1zdGF0aWMgY29uc3QgZG91YmxlIG1heGltdW1Ub3VjaERvd25EdXJhdGlv
bkluU2Vjb25kc0ZvckNsaWNrID0gMC44Owotc3RhdGljIGNvbnN0IGRvdWJsZSBtaW5pbXVtVG91
Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljayA9IDAuMDE7Ci1zdGF0aWMgY29uc3QgZG91
YmxlIG1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrID0gMC43Owotc3RhdGljIGNvbnN0
IGludCBtYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljayA9IDIwOwotc3RhdGljIGNvbnN0
IGZsb2F0IG1pbkZsaWNrU3BlZWRTcXVhcmVkID0gNTUwLmYgKiA1NTAuZjsKK2RvdWJsZSBHZXN0
dXJlUmVjb2duaXplckNocm9taXVtOjpzX21heGltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25k
c0ZvckNsaWNrID0gMC44OworZG91YmxlIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OnNfbWlu
aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2sgPSAwLjAxOworZG91YmxlIEdl
c3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OnNfbWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xp
Y2sgPSAwLjc7Citkb3VibGUgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6c19tYXhpbXVtVG91
Y2hNb3ZlSW5QaXhlbHNGb3JDbGljayA9IDIwOworZG91YmxlIEdlc3R1cmVSZWNvZ25pemVyQ2hy
b21pdW06OnNfbWluRmxpY2tTcGVlZFNxdWFyZWQgPSA1NTAuZiAqIDU1MC5mOwogCiBHZXN0dXJl
UmVjb2duaXplckNocm9taXVtOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtKCkKICAgICA6IG1f
Zmlyc3RUb3VjaFRpbWUoMC4wKQpAQCAtOTcsMzAgKzk2LDMwIEBAIHZvaWQgR2VzdHVyZVJlY29n
bml6ZXJDaHJvbWl1bTo6YWRkRWRnZUZ1bmN0aW9uKFN0YXRlIHN0YXRlLCB1bnNpZ25lZCBmaW5n
ZXJJZCwKIGJvb2wgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6aXNJbkNsaWNrVGltZVdpbmRv
dygpCiB7CiAgICAgZG91YmxlIGR1cmF0aW9uKG1fbGFzdFRvdWNoVGltZSAtIG1fZmlyc3RUb3Vj
aFRpbWUpOwotICAgIHJldHVybiBkdXJhdGlvbiA+PSBtaW5pbXVtVG91Y2hEb3duRHVyYXRpb25J
blNlY29uZHNGb3JDbGljayAmJiBkdXJhdGlvbiA8IG1heGltdW1Ub3VjaERvd25EdXJhdGlvbklu
U2Vjb25kc0ZvckNsaWNrOworICAgIHJldHVybiBkdXJhdGlvbiA+PSBzX21pbmltdW1Ub3VjaERv
d25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrICYmIGR1cmF0aW9uIDwgc19tYXhpbXVtVG91Y2hE
b3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljazsKIH0KIAogYm9vbCBHZXN0dXJlUmVjb2duaXpl
ckNocm9taXVtOjppc0luU2Vjb25kQ2xpY2tUaW1lV2luZG93KCkKIHsKICAgICBkb3VibGUgZHVy
YXRpb24obV9sYXN0VG91Y2hUaW1lIC0gbV9sYXN0Q2xpY2tUaW1lKTsKLSAgICByZXR1cm4gZHVy
YXRpb24gPCBtYXhpbXVtU2Vjb25kc0JldHdlZW5Eb3VibGVDbGljazsKKyAgICByZXR1cm4gZHVy
YXRpb24gPCBzX21heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrOwogfQogCiBib29sIEdl
c3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmlzSW5zaWRlTWFuaGF0dGFuU3F1YXJlKGNvbnN0IFBs
YXRmb3JtVG91Y2hQb2ludCYgcG9pbnQpCiB7CiAgICAgaW50IG1hbmhhdHRhbkRpc3RhbmNlID0g
YWJzKHBvaW50LnBvcygpLngoKSAtIG1fZmlyc3RUb3VjaFBvc2l0aW9uLngoKSkgKyBhYnMocG9p
bnQucG9zKCkueSgpIC0gbV9maXJzdFRvdWNoUG9zaXRpb24ueSgpKTsKLSAgICByZXR1cm4gbWFu
aGF0dGFuRGlzdGFuY2UgPCBtYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljazsKKyAgICBy
ZXR1cm4gbWFuaGF0dGFuRGlzdGFuY2UgPCBzX21heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNs
aWNrOwogfQogCiBib29sIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmlzU2Vjb25kQ2xpY2tJ
bnNpZGVNYW5oYXR0YW5TcXVhcmUoY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiBwb2ludCkKIHsK
ICAgICBpbnQgbWFuaGF0dGFuRGlzdGFuY2UgPSBhYnMocG9pbnQucG9zKCkueCgpIC0gbV9sYXN0
Q2xpY2tQb3NpdGlvbi54KCkpICsgYWJzKHBvaW50LnBvcygpLnkoKSAtIG1fbGFzdENsaWNrUG9z
aXRpb24ueSgpKTsKLSAgICByZXR1cm4gbWFuaGF0dGFuRGlzdGFuY2UgPCBtYXhpbXVtVG91Y2hN
b3ZlSW5QaXhlbHNGb3JDbGljazsKKyAgICByZXR1cm4gbWFuaGF0dGFuRGlzdGFuY2UgPCBzX21h
eGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrOwogfQogCiBib29sIEdlc3R1cmVSZWNvZ25p
emVyQ2hyb21pdW06OmlzT3Zlck1pbkZsaWNrU3BlZWQoKQogewotICAgIHJldHVybiAobV94VmVs
b2NpdHkgKiBtX3hWZWxvY2l0eSArIG1feVZlbG9jaXR5ICogbV95VmVsb2NpdHkpID4gbWluRmxp
Y2tTcGVlZFNxdWFyZWQ7CisgICAgcmV0dXJuIChtX3hWZWxvY2l0eSAqIG1feFZlbG9jaXR5ICsg
bV95VmVsb2NpdHkgKiBtX3lWZWxvY2l0eSkgPiBzX21pbkZsaWNrU3BlZWRTcXVhcmVkOwogfQog
CiB2b2lkIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmFwcGVuZFRhcERvd25HZXN0dXJlRXZl
bnQoY29uc3QgUGxhdGZvcm1Ub3VjaFBvaW50JiB0b3VjaFBvaW50LCBHZXN0dXJlcyBnZXN0dXJl
cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVS
ZWNvZ25pemVyQ2hyb21pdW0uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dl
c3R1cmVSZWNvZ25pemVyQ2hyb21pdW0uaAppbmRleCA0ODg5ODY2ZjY2MzRiNTYwMzlhNGViNTEz
NGEyZTcwYTk2ZGNmNGI5Li43NDdiYjQ0NTQyMjQ3MGExN2MwY2FhY2ZjNGExMmQyZDdjMjcxOTZm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJlUmVj
b2duaXplckNocm9taXVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bS5oCkBAIC02MSw2ICs2MSwxNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVyOjpQYXNzR2VzdHVyZXMgIHByb2Nl
c3NUb3VjaEV2ZW50Rm9yR2VzdHVyZXMoY29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50JiwgYm9vbCBk
ZWZhdWx0UHJldmVudGVkKTsKICAgICBTdGF0ZSBzdGF0ZSgpIHsgcmV0dXJuIG1fc3RhdGU7IH0K
IAorICAgIHZpcnR1YWwgdm9pZCBzZXRHZXN0dXJlTWF4aW11bVRvdWNoRG93bkR1cmF0aW9uSW5T
ZWNvbmRzRm9yQ2xpY2soZG91YmxlIHZhbCkgeyBzX21heGltdW1Ub3VjaERvd25EdXJhdGlvbklu
U2Vjb25kc0ZvckNsaWNrID0gdmFsOyB9CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1heGlt
dW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKCkgY29uc3QgeyByZXR1cm4gc19t
YXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljazsgfQorICAgIHZpcnR1YWwg
dm9pZCBzZXRHZXN0dXJlTWluaW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2so
ZG91YmxlIHZhbCkgeyBzX21pbmltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNr
ID0gdmFsOyB9CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1pbmltdW1Ub3VjaERvd25EdXJh
dGlvbkluU2Vjb25kc0ZvckNsaWNrKCkgY29uc3QgeyByZXR1cm4gc19taW5pbXVtVG91Y2hEb3du
RHVyYXRpb25JblNlY29uZHNGb3JDbGljazsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRHZXN0dXJl
TWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2soZG91YmxlIHZhbCkgeyBzX21heGltdW1T
ZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrID0gdmFsOyB9CisgICAgdmlydHVhbCBkb3VibGUgZ2Vz
dHVyZU1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrKCkgY29uc3QgeyByZXR1cm4gc19t
YXhpbXVtU2Vjb25kc0JldHdlZW5Eb3VibGVDbGljazsgfQorICAgIHZpcnR1YWwgdm9pZCBzZXRH
ZXN0dXJlTWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2soZG91YmxlIHZhbCkgeyBzX21h
eGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrID0gdmFsOyB9CisgICAgdmlydHVhbCBkb3Vi
bGUgZ2VzdHVyZU1heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrKCkgY29uc3QgeyByZXR1
cm4gc19tYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljazsgfQorICAgIHZpcnR1YWwgdm9p
ZCBzZXRHZXN0dXJlTWluRmxpY2tTcGVlZFNxdWFyZWQoZG91YmxlIHZhbCkgeyBzX21pbkZsaWNr
U3BlZWRTcXVhcmVkID0gdmFsOyB9CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1pbkZsaWNr
U3BlZWRTcXVhcmVkKCkgY29uc3QgeyByZXR1cm4gc19taW5GbGlja1NwZWVkU3F1YXJlZDsgfQor
CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyA6Okluc3BlY3RhYmxlR2VzdHVyZVJlY29nbml6
ZXJDaHJvbWl1bTsKIApAQCAtMTA0LDYgKzExNSwxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9h
bHRLZXk7CiAgICAgYm9vbCBtX3NoaWZ0S2V5OwogICAgIGJvb2wgbV9tZXRhS2V5OworCisgICAg
c3RhdGljIGRvdWJsZSBzX21heGltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNr
OworICAgIHN0YXRpYyBkb3VibGUgc19taW5pbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNG
b3JDbGljazsKKyAgICBzdGF0aWMgZG91YmxlIHNfbWF4aW11bVNlY29uZHNCZXR3ZWVuRG91Ymxl
Q2xpY2s7CisgICAgc3RhdGljIGRvdWJsZSBzX21heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNs
aWNrOworICAgIHN0YXRpYyBkb3VibGUgc19taW5GbGlja1NwZWVkU3F1YXJlZDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcu
aAppbmRleCA4NTk3NTdmOTk3ZTU0ZTdhNDY4MWY4ZWY4YTA3MDg0OGQzNWQyNmE0Li5mZGFhZDgz
MGFiNWYyMTM2ZmU5OGQ3YmM3ZmFhNjFhMDYzY2ZlYjBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViVmlldy5oCkBAIC00MzgsNiArNDM4LDE3IEBAIHB1YmxpYzoKICAgICAvLyBT
aW11bGF0ZXMgYSBjb21wb3NpdG9yIGxvc3QgY29udGV4dC4KICAgICB2aXJ0dWFsIHZvaWQgbG9z
ZUNvbXBvc2l0b3JDb250ZXh0KGludCBudW1UaW1lcykgPSAwOwogCisgICAgLy8gU2V0dGluZ3Mg
dGhhdCBjb250cm9sIGdlc3R1cmUgcmVjb2duaXRpb24uCisgICAgdmlydHVhbCB2b2lkIHNldEdl
c3R1cmVNYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljayhkb3VibGUgdmFs
KSA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVyZU1heGltdW1Ub3VjaERvd25EdXJhdGlv
bkluU2Vjb25kc0ZvckNsaWNrKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRHZXN0
dXJlTWluaW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2soZG91YmxlIHZhbCkg
PSAwOworICAgIHZpcnR1YWwgZG91YmxlIGdlc3R1cmVNaW5pbXVtVG91Y2hEb3duRHVyYXRpb25J
blNlY29uZHNGb3JDbGljaygpIGNvbnN0ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0R2VzdHVy
ZU1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrKGRvdWJsZSB2YWwpID0gMDsKKyAgICB2
aXJ0dWFsIGRvdWJsZSBnZXN0dXJlTWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2soKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEdlc3R1cmVNYXhpbXVtVG91Y2hNb3ZlSW5Q
aXhlbHNGb3JDbGljayhkb3VibGUgdmFsKSA9IDA7CisgICAgdmlydHVhbCBkb3VibGUgZ2VzdHVy
ZU1heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrKCkgY29uc3QgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBzZXRHZXN0dXJlTWluRmxpY2tTcGVlZFNxdWFyZWQoZG91YmxlIHZhbCkgPSAwOwor
ICAgIHZpcnR1YWwgZG91YmxlIGdlc3R1cmVNaW5GbGlja1NwZWVkU3F1YXJlZCgpIGNvbnN0ID0g
MDsKIAogcHJvdGVjdGVkOgogICAgIH5XZWJWaWV3KCkge30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCAwNmMwOTcyOTZlYjg2MTdkMjBjNmI3YjI0NzE1
MzNkMTdhMjMwMjMxLi4wYjdlNGE2OTkzNjc2YTI2MDYzYWZkMDE5NGIyY2FiMjZlM2ExNDMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0zMDcxLDQg
KzMwNzEsODQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVzZXRHZXN0dXJlUmVjb2duaXplcigpCiB9
CiAjZW5kaWYKIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0R2VzdHVyZU1heGltdW1Ub3VjaERvd25E
dXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKGRvdWJsZSB2YWwpCit7CisjaWYgRU5BQkxFKEdFU1RV
UkVfUkVDT0dOSVpFUikKKyAgICBtX2dlc3R1cmVSZWNvZ25pemVyLT5zZXRHZXN0dXJlTWF4aW11
bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2sodmFsKTsKKyNlbmRpZgorfQorCitk
b3VibGUgV2ViVmlld0ltcGw6Omdlc3R1cmVNYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29u
ZHNGb3JDbGljaygpIGNvbnN0Cit7CisjaWYgRU5BQkxFKEdFU1RVUkVfUkVDT0dOSVpFUikKKyAg
ICByZXR1cm4gbV9nZXN0dXJlUmVjb2duaXplci0+Z2VzdHVyZU1heGltdW1Ub3VjaERvd25EdXJh
dGlvbkluU2Vjb25kc0ZvckNsaWNrKCk7CisjZWxzZQorICAgIHJldHVybiAwOworI2VuZGlmCit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldEdlc3R1cmVNaW5pbXVtVG91Y2hEb3duRHVyYXRpb25J
blNlY29uZHNGb3JDbGljayhkb3VibGUgdmFsKQoreworI2lmIEVOQUJMRShHRVNUVVJFX1JFQ09H
TklaRVIpCisgICAgbV9nZXN0dXJlUmVjb2duaXplci0+c2V0R2VzdHVyZU1pbmltdW1Ub3VjaERv
d25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKHZhbCk7CisjZW5kaWYKK30KKworZG91YmxlIFdl
YlZpZXdJbXBsOjpnZXN0dXJlTWluaW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xp
Y2soKSBjb25zdAoreworI2lmIEVOQUJMRShHRVNUVVJFX1JFQ09HTklaRVIpCisgICAgcmV0dXJu
IG1fZ2VzdHVyZVJlY29nbml6ZXItPmdlc3R1cmVNaW5pbXVtVG91Y2hEb3duRHVyYXRpb25JblNl
Y29uZHNGb3JDbGljaygpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCit2b2lk
IFdlYlZpZXdJbXBsOjpzZXRHZXN0dXJlTWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2so
ZG91YmxlIHZhbCkKK3sKKyNpZiBFTkFCTEUoR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIG1fZ2Vz
dHVyZVJlY29nbml6ZXItPnNldEdlc3R1cmVNYXhpbXVtU2Vjb25kc0JldHdlZW5Eb3VibGVDbGlj
ayh2YWwpOworI2VuZGlmCit9CisKK2RvdWJsZSBXZWJWaWV3SW1wbDo6Z2VzdHVyZU1heGltdW1T
ZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrKCkgY29uc3QKK3sKKyNpZiBFTkFCTEUoR0VTVFVSRV9S
RUNPR05JWkVSKQorICAgIHJldHVybiBtX2dlc3R1cmVSZWNvZ25pemVyLT5nZXN0dXJlTWF4aW11
bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2soKTsKKyNlbHNlCisgICAgcmV0dXJuIDA7CisjZW5k
aWYKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0R2VzdHVyZU1heGltdW1Ub3VjaE1vdmVJblBp
eGVsc0ZvckNsaWNrKGRvdWJsZSB2YWwpCit7CisjaWYgRU5BQkxFKEdFU1RVUkVfUkVDT0dOSVpF
UikKKyAgICBtX2dlc3R1cmVSZWNvZ25pemVyLT5zZXRHZXN0dXJlTWF4aW11bVRvdWNoTW92ZUlu
UGl4ZWxzRm9yQ2xpY2sodmFsKTsKKyNlbmRpZgorfQorCitkb3VibGUgV2ViVmlld0ltcGw6Omdl
c3R1cmVNYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljaygpIGNvbnN0Cit7CisjaWYgRU5B
QkxFKEdFU1RVUkVfUkVDT0dOSVpFUikKKyAgICByZXR1cm4gbV9nZXN0dXJlUmVjb2duaXplci0+
Z2VzdHVyZU1heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrKCk7CisjZWxzZQorICAgIHJl
dHVybiAwOworI2VuZGlmCit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldEdlc3R1cmVNaW5GbGlj
a1NwZWVkU3F1YXJlZChkb3VibGUgdmFsKQoreworI2lmIEVOQUJMRShHRVNUVVJFX1JFQ09HTkla
RVIpCisgICAgbV9nZXN0dXJlUmVjb2duaXplci0+c2V0R2VzdHVyZU1pbkZsaWNrU3BlZWRTcXVh
cmVkKHZhbCk7CisjZW5kaWYKK30KKworZG91YmxlIFdlYlZpZXdJbXBsOjpnZXN0dXJlTWluRmxp
Y2tTcGVlZFNxdWFyZWQoKSBjb25zdAoreworI2lmIEVOQUJMRShHRVNUVVJFX1JFQ09HTklaRVIp
CisgICAgcmV0dXJuIG1fZ2VzdHVyZVJlY29nbml6ZXItPmdlc3R1cmVNaW5GbGlja1NwZWVkU3F1
YXJlZCgpOworI2Vsc2UKKyAgICByZXR1cm4gMDsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCmluZGV4IDI3
MmQ1ZTMwYWRjZjA2OWFhM2VmODgzZWVkYTkyODkxYTBjOWQ4M2QuLjUxOGE5NzcxYTFiYjU0MGVi
OTNiOTZkNTZkMzBjNzBjMDBmNmM4ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuaApAQCAtNDYwLDYgKzQ2MCwxOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNIb3Jp
em9udGFsU2Nyb2xsYmFyKCk7CiAgICAgYm9vbCBoYXNWZXJ0aWNhbFNjcm9sbGJhcigpOwogCisg
ICAgLy8gU2V0dGluZ3MgdGhhdCBjb250cm9sIGdlc3R1cmUgcmVjb2duaXRpb24uCisgICAgdmly
dHVhbCB2b2lkIHNldEdlc3R1cmVNYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JD
bGljayhkb3VibGUgdmFsKTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBnZXN0dXJlTWF4aW11bVRvdWNo
RG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2soKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0R2VzdHVyZU1pbmltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrKGRvdWJs
ZSB2YWwpOworICAgIHZpcnR1YWwgZG91YmxlIGdlc3R1cmVNaW5pbXVtVG91Y2hEb3duRHVyYXRp
b25JblNlY29uZHNGb3JDbGljaygpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBzZXRHZXN0dXJl
TWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2soZG91YmxlIHZhbCk7CisgICAgdmlydHVh
bCBkb3VibGUgZ2VzdHVyZU1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrKCkgY29uc3Q7
CisgICAgdmlydHVhbCB2b2lkIHNldEdlc3R1cmVNYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JD
bGljayhkb3VibGUgdmFsKTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBnZXN0dXJlTWF4aW11bVRvdWNo
TW92ZUluUGl4ZWxzRm9yQ2xpY2soKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0R2VzdHVy
ZU1pbkZsaWNrU3BlZWRTcXVhcmVkKGRvdWJsZSB2YWwpOworICAgIHZpcnR1YWwgZG91YmxlIGdl
c3R1cmVNaW5GbGlja1NwZWVkU3F1YXJlZCgpIGNvbnN0OworCiBwcml2YXRlOgogICAgIGZsb2F0
IGNvbXB1dGVQYWdlU2NhbGVGYWN0b3JXaXRoaW5MaW1pdHMoZmxvYXQgc2NhbGUpOwogICAgIFdl
YlBvaW50IGNsYW1wT2Zmc2V0QXRTY2FsZShjb25zdCBXZWJQb2ludCYgb2Zmc2V0LCBmbG9hdCBz
Y2FsZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121469</attachid>
            <date>2012-01-06 12:29:24 -0800</date>
            <delta_ts>2012-02-21 20:48:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72632-20120106152922.patch</filename>
            <type>text/plain</type>
            <size>19154</size>
            <attacher name="Eugene Girard">girard</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MzEzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDBlMTVjNTM4ZGQwMGVi
MjM2NTVkOGIyODhmZTVhN2E4OTU2NDA0ZS4uNjI1ZmVlMTFlYjc3Yjc4M2MwMGVhZTJlNTRlMDky
NGQ1OGZjMTgzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTA2ICBFdWdl
bmUgR2lyYXJkICA8Z2lyYXJkQGNocm9taXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1h
a2UgR2VzdHVyZVJlY29nbml6ZXIgUGFyYW1ldGVycyBDb25maWd1cmFibGUgKEluY29tcGxldGUg
LSBTZWVraW5nIEZlZWRiYWNrKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzI2MzIKKworICAgICAgICBDcmVhdGVkIGVudW0gdG8gZGVmaW5lIGN1cnJl
bnQgZ2VzdHVyZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMuCisgICAgICAgIEFkZGVkIGludGVy
ZmFjZSB0byBnZXQgYW5kIHNldCBnZXN0dXJlQ29uZmlndXJhdGlvbi4KKyAgICAgICAgUmVwbGFj
ZWQgc3RhdGljIGdsb2JhbHMgd2l0aCBzdGF0aWMgbWVtYmVycy4gIFJlZmFjdG9yZWQgcmVmZXJl
bmNlcyBhcHByb3ByaWF0ZWx5LgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogcGxhdGZvcm0v
UGxhdGZvcm1HZXN0dXJlUmVjb2duaXplci5oOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L0dlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0uY3BwOgorICAgICAgICAoV2ViQ29yZTo6R2VzdHVy
ZVJlY29nbml6ZXJDaHJvbWl1bTo6aXNJbkNsaWNrVGltZVdpbmRvdyk6CisgICAgICAgIChXZWJD
b3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjppc0luU2Vjb25kQ2xpY2tUaW1lV2luZG93
KToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmlzSW5zaWRl
TWFuaGF0dGFuU3F1YXJlKToKKyAgICAgICAgKFdlYkNvcmU6Okdlc3R1cmVSZWNvZ25pemVyQ2hy
b21pdW06OmlzU2Vjb25kQ2xpY2tJbnNpZGVNYW5oYXR0YW5TcXVhcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6aXNPdmVyTWluRmxpY2tTcGVlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpzZXRHZXN0dXJlQ29u
ZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpHZXN0dXJlUmVjb2duaXplckNocm9taXVt
OjpnZXN0dXJlQ29uZmlndXJhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vR2Vz
dHVyZVJlY29nbml6ZXJDaHJvbWl1bS5oOgorCiAyMDEyLTAxLTA2ICBUb255IENoYW5nICA8dG9u
eUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTmVlZCB0byByZWxheW91dCB3aGVuIHN0cmV0Y2hp
bmcgdGhlIGhlaWdodCBvZiBhIGZsZXggaXRlbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCAzNThhYTBjN2Q1YjJiZTAzZWJlYTZmNzljMTRlOTQ1M2I3MzA3YjUxLi4yNDliOTU5ZWZhZTU4
ZjgzYmM0ODZhZDk0ODlmNjBiZjRhZDVkYzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI0IEBACisyMDEyLTAxLTA2ICBFdWdlbmUgR2lyYXJkICA8Z2lyYXJkQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBbQ2hyb21pdW1dIE1ha2UgR2VzdHVyZVJlY29nbml6ZXIgUGFy
YW1ldGVycyBDb25maWd1cmFibGUgKEluY29tcGxldGUgLSBTZWVraW5nIEZlZWRiYWNrKQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2MzIKKworICAg
ICAgICBBZGRlZCBleHRlcm5hbGx5IHZpc2libGUgZW51bSBXZWJHZXN0dXJlQ29uZmlndXJhdGlv
biB0byBtaXJyb3IgaW50ZXJuYWwgV2ViQ29yZSBlbnVtLgorICAgICAgICBBZGRlZCBpbnRlcmZh
Y2UgdG8gZ2V0IGFuZCBzZXQgV2ViR2VzdHVyZUNvbmZpZ3VyYXRpb24sIGFuZCBkaXNwYXRjaCBj
YWxscyB0byBpbXBsZW1lbnRhdGlvbi4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIFdlYktpdC5neXA6CisgICAgICAgICogcHVibGljL1dlYkdlc3R1
cmVDb25maWd1cmF0aW9uLmg6IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtR2VzdHVyZVJlY29nbml6ZXIuaC4KKyAgICAgICAgKiBwdWJsaWMvV2ViVmlldy5oOgor
ICAgICAgICAqIHNyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcDoKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0R2VzdHVyZUNv
bmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Z2VzdHVyZUNvbmZp
Z3VyYXRpb24pOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAqIHRlc3Rz
L0lubmVyR2VzdHVyZVJlY29nbml6ZXJUZXN0LmNwcDoKKyAgICAgICAgKFRFU1RfRik6CisKIDIw
MTItMDEtMDUgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgQ2hlY2sgd2hldGhlciBhIFdlYlZpZXcgZXhpc3RzIGJlZm9yZSBhY2Nlc3NpbmcgaXQgaW4g
U3RvcmFnZUFyZWFQcm94eS4gVGhpcyBpcyBub3QgbmVjZXNzYXJpbHkgdGhlIGNhc2UsIGUuZy4g
Zm9yIGRldGFjaGVkIGlmcmFtZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
bGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVyLmgKaW5kZXggMGI4NmE5Mjc2ZmI2YmRlZjliN2MzNzg4
M2M1MDkzZjc3ZTA0Y2IzYy4uMDQ2OWE2NmIzZjk5YmYyOGZmMmMzN2Q5ODg5NzVjZmM3ZmI5NGJh
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1HZXN0dXJlUmVj
b2duaXplci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtR2VzdHVyZVJl
Y29nbml6ZXIuaApAQCAtNTUsNiArNTUsMTkgQEAgcHVibGljOgogCiAgICAgLy8gQ2xlYXJzIHRo
ZSBHZXN0dXJlUmVjb2duaXplciB0byBpdHMgaW5pdGlhbCBzdGF0ZS4KICAgICB2aXJ0dWFsIHZv
aWQgcmVzZXQoKSA9IDA7CisKKyNpZiBFTkFCTEUoR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIC8v
IFNldHRpbmdzIHRoYXQgY29udHJvbCBnZXN0dXJlIHJlY29nbml0aW9uLgorICAgIGVudW0gR2Vz
dHVyZUNvbmZpZ3VyYXRpb25TZXR0aW5nIHsKKyAgICAgICAgR2VzdHVyZU1heGltdW1Ub3VjaERv
d25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrLAorICAgICAgICBHZXN0dXJlTWluaW11bVRvdWNo
RG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2ssCisgICAgICAgIEdlc3R1cmVNYXhpbXVtU2Vj
b25kc0JldHdlZW5Eb3VibGVDbGljaywKKyAgICAgICAgR2VzdHVyZU1heGltdW1Ub3VjaE1vdmVJ
blBpeGVsc0ZvckNsaWNrLAorICAgICAgICBHZXN0dXJlTWluRmxpY2tTcGVlZFNxdWFyZWQsCisg
ICAgfTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0R2VzdHVyZUNvbmZpZ3VyYXRpb24oR2VzdHVyZUNv
bmZpZ3VyYXRpb25TZXR0aW5nIGlkLCBkb3VibGUgdmFsKSA9IDA7CisgICAgdmlydHVhbCBkb3Vi
bGUgZ2VzdHVyZUNvbmZpZ3VyYXRpb24oR2VzdHVyZUNvbmZpZ3VyYXRpb25TZXR0aW5nIGlkKSA9
IDA7CisjZW5kaWYKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJD
aHJvbWl1bS5jcHAKaW5kZXggZjU1NDU1ZDk2MzNkYWIyZjUzNjczZDYxMTQzZThjN2JiMzhkYjRj
OC4uNzlhYjNlNTMwNGU1NDRkYzNlMzQ4ZWVjNTExOTc2NzMxZWM1Mjc2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1
bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29n
bml6ZXJDaHJvbWl1bS5jcHAKQEAgLTMzLDEyICszMywxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLS8vIEZJWE1FOiBNYWtlIHRoZXNlIGNvbmZpZ3VyYWJsZSBwcm9ncmFtbWF0aWNhbGx5
Lgotc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNG
b3JDbGljayA9IDAuODsKLXN0YXRpYyBjb25zdCBkb3VibGUgbWluaW11bVRvdWNoRG93bkR1cmF0
aW9uSW5TZWNvbmRzRm9yQ2xpY2sgPSAwLjAxOwotc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhpbXVt
U2Vjb25kc0JldHdlZW5Eb3VibGVDbGljayA9IDAuNzsKLXN0YXRpYyBjb25zdCBpbnQgbWF4aW11
bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2sgPSAyMDsKLXN0YXRpYyBjb25zdCBmbG9hdCBtaW5G
bGlja1NwZWVkU3F1YXJlZCA9IDU1MC5mICogNTUwLmY7Citkb3VibGUgR2VzdHVyZVJlY29nbml6
ZXJDaHJvbWl1bTo6c19tYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljayA9
IDAuODsKK2RvdWJsZSBHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpzX21pbmltdW1Ub3VjaERv
d25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrID0gMC4wMTsKK2RvdWJsZSBHZXN0dXJlUmVjb2du
aXplckNocm9taXVtOjpzX21heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrID0gMC43Owor
ZG91YmxlIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OnNfbWF4aW11bVRvdWNoTW92ZUluUGl4
ZWxzRm9yQ2xpY2sgPSAyMDsKK2RvdWJsZSBHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjpzX21p
bkZsaWNrU3BlZWRTcXVhcmVkID0gNTUwLmYgKiA1NTAuZjsKIAogR2VzdHVyZVJlY29nbml6ZXJD
aHJvbWl1bTo6R2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bSgpCiAgICAgOiBtX2ZpcnN0VG91Y2hU
aW1lKDAuMCkKQEAgLTk3LDMwICs5NiwzMCBAQCB2b2lkIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21p
dW06OmFkZEVkZ2VGdW5jdGlvbihTdGF0ZSBzdGF0ZSwgdW5zaWduZWQgZmluZ2VySWQsCiBib29s
IEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06OmlzSW5DbGlja1RpbWVXaW5kb3coKQogewogICAg
IGRvdWJsZSBkdXJhdGlvbihtX2xhc3RUb3VjaFRpbWUgLSBtX2ZpcnN0VG91Y2hUaW1lKTsKLSAg
ICByZXR1cm4gZHVyYXRpb24gPj0gbWluaW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9y
Q2xpY2sgJiYgZHVyYXRpb24gPCBtYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JD
bGljazsKKyAgICByZXR1cm4gZHVyYXRpb24gPj0gc19taW5pbXVtVG91Y2hEb3duRHVyYXRpb25J
blNlY29uZHNGb3JDbGljayAmJiBkdXJhdGlvbiA8IHNfbWF4aW11bVRvdWNoRG93bkR1cmF0aW9u
SW5TZWNvbmRzRm9yQ2xpY2s7CiB9CiAKIGJvb2wgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6
aXNJblNlY29uZENsaWNrVGltZVdpbmRvdygpCiB7CiAgICAgZG91YmxlIGR1cmF0aW9uKG1fbGFz
dFRvdWNoVGltZSAtIG1fbGFzdENsaWNrVGltZSk7Ci0gICAgcmV0dXJuIGR1cmF0aW9uIDwgbWF4
aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2s7CisgICAgcmV0dXJuIGR1cmF0aW9uIDwgc19t
YXhpbXVtU2Vjb25kc0JldHdlZW5Eb3VibGVDbGljazsKIH0KIAogYm9vbCBHZXN0dXJlUmVjb2du
aXplckNocm9taXVtOjppc0luc2lkZU1hbmhhdHRhblNxdWFyZShjb25zdCBQbGF0Zm9ybVRvdWNo
UG9pbnQmIHBvaW50KQogewogICAgIGludCBtYW5oYXR0YW5EaXN0YW5jZSA9IGFicyhwb2ludC5w
b3MoKS54KCkgLSBtX2ZpcnN0VG91Y2hQb3NpdGlvbi54KCkpICsgYWJzKHBvaW50LnBvcygpLnko
KSAtIG1fZmlyc3RUb3VjaFBvc2l0aW9uLnkoKSk7Ci0gICAgcmV0dXJuIG1hbmhhdHRhbkRpc3Rh
bmNlIDwgbWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2s7CisgICAgcmV0dXJuIG1hbmhh
dHRhbkRpc3RhbmNlIDwgc19tYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljazsKIH0KIAog
Ym9vbCBHZXN0dXJlUmVjb2duaXplckNocm9taXVtOjppc1NlY29uZENsaWNrSW5zaWRlTWFuaGF0
dGFuU3F1YXJlKGNvbnN0IFBsYXRmb3JtVG91Y2hQb2ludCYgcG9pbnQpCiB7CiAgICAgaW50IG1h
bmhhdHRhbkRpc3RhbmNlID0gYWJzKHBvaW50LnBvcygpLngoKSAtIG1fbGFzdENsaWNrUG9zaXRp
b24ueCgpKSArIGFicyhwb2ludC5wb3MoKS55KCkgLSBtX2xhc3RDbGlja1Bvc2l0aW9uLnkoKSk7
Ci0gICAgcmV0dXJuIG1hbmhhdHRhbkRpc3RhbmNlIDwgbWF4aW11bVRvdWNoTW92ZUluUGl4ZWxz
Rm9yQ2xpY2s7CisgICAgcmV0dXJuIG1hbmhhdHRhbkRpc3RhbmNlIDwgc19tYXhpbXVtVG91Y2hN
b3ZlSW5QaXhlbHNGb3JDbGljazsKIH0KIAogYm9vbCBHZXN0dXJlUmVjb2duaXplckNocm9taXVt
Ojppc092ZXJNaW5GbGlja1NwZWVkKCkKIHsKLSAgICByZXR1cm4gKG1feFZlbG9jaXR5ICogbV94
VmVsb2NpdHkgKyBtX3lWZWxvY2l0eSAqIG1feVZlbG9jaXR5KSA+IG1pbkZsaWNrU3BlZWRTcXVh
cmVkOworICAgIHJldHVybiAobV94VmVsb2NpdHkgKiBtX3hWZWxvY2l0eSArIG1feVZlbG9jaXR5
ICogbV95VmVsb2NpdHkpID4gc19taW5GbGlja1NwZWVkU3F1YXJlZDsKIH0KIAogdm9pZCBHZXN0
dXJlUmVjb2duaXplckNocm9taXVtOjphcHBlbmRUYXBEb3duR2VzdHVyZUV2ZW50KGNvbnN0IFBs
YXRmb3JtVG91Y2hQb2ludCYgdG91Y2hQb2ludCwgR2VzdHVyZXMgZ2VzdHVyZXMpCkBAIC0yNjgs
NiArMjY3LDQ1IEBAIGJvb2wgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6aW5TY3JvbGwoY29u
c3QgUGxhdGZvcm1Ub3VjaFBvaW50JiBwb2ludCwgR2VzdHVyCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKK3ZvaWQgR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1bTo6c2V0R2VzdHVyZUNvbmZpZ3VyYXRp
b24oR2VzdHVyZUNvbmZpZ3VyYXRpb25TZXR0aW5nIGlkLCBkb3VibGUgdmFsKQoreworICAgIHN3
aXRjaCAoaWQpIHsKKyAgICBjYXNlIEdlc3R1cmVNYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNl
Y29uZHNGb3JDbGljazoKKyAgICAgICAgc19tYXhpbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29u
ZHNGb3JDbGljayA9IHZhbDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBHZXN0dXJlTWluaW11
bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2s6CisgICAgICAgIHNfbWluaW11bVRv
dWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2sgPSB2YWw7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgR2VzdHVyZU1heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrOgorICAgICAg
ICBzX21heGltdW1TZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrID0gdmFsOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEdlc3R1cmVNYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljazoKKyAg
ICAgICAgc19tYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljayA9IHZhbDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBHZXN0dXJlTWluRmxpY2tTcGVlZFNxdWFyZWQ6CisgICAgICAgIHNf
bWluRmxpY2tTcGVlZFNxdWFyZWQgPSB2YWw7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKwor
ZG91YmxlIEdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW06Omdlc3R1cmVDb25maWd1cmF0aW9uKEdl
c3R1cmVDb25maWd1cmF0aW9uU2V0dGluZyBpZCkKK3sKKyAgICBzd2l0Y2ggKGlkKSB7CisgICAg
Y2FzZSBHZXN0dXJlTWF4aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2s6Cisg
ICAgICAgIHJldHVybiBzX21heGltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNr
OworICAgIGNhc2UgR2VzdHVyZU1pbmltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNs
aWNrOgorICAgICAgICByZXR1cm4gc19taW5pbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNG
b3JDbGljazsKKyAgICBjYXNlIEdlc3R1cmVNYXhpbXVtU2Vjb25kc0JldHdlZW5Eb3VibGVDbGlj
azoKKyAgICAgICAgcmV0dXJuIHNfbWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2s7Cisg
ICAgY2FzZSBHZXN0dXJlTWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2s6CisgICAgICAg
IHJldHVybiBzX21heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrOworICAgIGNhc2UgR2Vz
dHVyZU1pbkZsaWNrU3BlZWRTcXVhcmVkOgorICAgICAgICByZXR1cm4gc19taW5GbGlja1NwZWVk
U3F1YXJlZDsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gMDsKKyAgICB9Cit9CisKIFBh
c3NPd25QdHI8UGxhdGZvcm1HZXN0dXJlUmVjb2duaXplcj4gUGxhdGZvcm1HZXN0dXJlUmVjb2du
aXplcjo6Y3JlYXRlKCkKIHsKICAgICBHZXN0dXJlUmVjb2duaXplckNocm9taXVtKiBnZXN0dXJl
UmVjb2duaXplciA9IG5ldyBHZXN0dXJlUmVjb2duaXplckNocm9taXVtKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJlUmVjb2duaXplckNocm9t
aXVtLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9HZXN0dXJlUmVjb2duaXpl
ckNocm9taXVtLmgKaW5kZXggNDg4OTg2NmY2NjM0YjU2MDM5YTRlYjUxMzRhMmU3MGE5NmRjZjRi
OS4uMjJhMzQ4ODNjNzk4YmNhMjMzMzg0NDNhMTRiYWQ0M2ZmNjM5YzEzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vR2VzdHVyZVJlY29nbml6ZXJDaHJvbWl1
bS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0dlc3R1cmVSZWNvZ25p
emVyQ2hyb21pdW0uaApAQCAtNjEsNiArNjEsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgUGxh
dGZvcm1HZXN0dXJlUmVjb2duaXplcjo6UGFzc0dlc3R1cmVzICBwcm9jZXNzVG91Y2hFdmVudEZv
ckdlc3R1cmVzKGNvbnN0IFBsYXRmb3JtVG91Y2hFdmVudCYsIGJvb2wgZGVmYXVsdFByZXZlbnRl
ZCk7CiAgICAgU3RhdGUgc3RhdGUoKSB7IHJldHVybiBtX3N0YXRlOyB9CiAKKyNpZiBFTkFCTEUo
R0VTVFVSRV9SRUNPR05JWkVSKQorICAgIHZpcnR1YWwgdm9pZCBzZXRHZXN0dXJlQ29uZmlndXJh
dGlvbihHZXN0dXJlQ29uZmlndXJhdGlvblNldHRpbmcgaWQsIGRvdWJsZSB2YWwpOworICAgIHZp
cnR1YWwgZG91YmxlIGdlc3R1cmVDb25maWd1cmF0aW9uKEdlc3R1cmVDb25maWd1cmF0aW9uU2V0
dGluZyBpZCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgOjpJbnNwZWN0
YWJsZUdlc3R1cmVSZWNvZ25pemVyQ2hyb21pdW07CiAKQEAgLTEwNCw2ICsxMDksMTIgQEAgcHJp
dmF0ZToKICAgICBib29sIG1fYWx0S2V5OwogICAgIGJvb2wgbV9zaGlmdEtleTsKICAgICBib29s
IG1fbWV0YUtleTsKKworICAgIHN0YXRpYyBkb3VibGUgc19tYXhpbXVtVG91Y2hEb3duRHVyYXRp
b25JblNlY29uZHNGb3JDbGljazsKKyAgICBzdGF0aWMgZG91YmxlIHNfbWluaW11bVRvdWNoRG93
bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2s7CisgICAgc3RhdGljIGRvdWJsZSBzX21heGltdW1T
ZWNvbmRzQmV0d2VlbkRvdWJsZUNsaWNrOworICAgIHN0YXRpYyBkb3VibGUgc19tYXhpbXVtVG91
Y2hNb3ZlSW5QaXhlbHNGb3JDbGljazsKKyAgICBzdGF0aWMgZG91YmxlIHNfbWluRmxpY2tTcGVl
ZFNxdWFyZWQ7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXAKaW5kZXggYTI0MTk3OGQyNWE5ZTFiYjYxZjZmMGY3YjllNDZhNWYxMjFjZTAwYS4u
NmI3NGQ2YWFiY2FhMzlkNjJjYmZkMTU5NTEzNmM1MWU3OTE5YmQ5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vV2ViS2l0Lmd5cApAQCAtMTY2LDYgKzE2Niw3IEBACiAgICAgICAgICAgICAgICAgJ3B1Ymxp
Yy9XZWJHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0LmgnLAogICAgICAgICAgICAgICAgICdw
dWJsaWMvV2ViR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCcsCiAgICAgICAg
ICAgICAgICAgJ3B1YmxpYy9XZWJHZW9sb2NhdGlvblBvc2l0aW9uLmgnLAorICAgICAgICAgICAg
ICAgICdwdWJsaWMvV2ViR2VzdHVyZUNvbmZpZ3VyYXRpb24uaCcsCiAgICAgICAgICAgICAgICAg
J3B1YmxpYy9XZWJHbHlwaENhY2hlLmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViSGlz
dG9yeUl0ZW0uaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJJREJDYWxsYmFja3MuaCcs
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJHZXN0dXJlQ29u
ZmlndXJhdGlvbi5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViR2VzdHVyZUNv
bmZpZ3VyYXRpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YzFkZjU4NWEyM2Y0MzE0MWZhNGIwOGFjZjQ0ODlh
NTBiNDVjYjJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViR2VzdHVyZUNvbmZpZ3VyYXRpb24uaApAQCAtMCwwICsxLDQ4IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1
dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBu
YW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3Bl
Y2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJB
UyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwK
KyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJH
ZXN0dXJlQ29uZmlndXJhdGlvbl9oCisjZGVmaW5lIFdlYkdlc3R1cmVDb25maWd1cmF0aW9uX2gK
KworbmFtZXNwYWNlIFdlYktpdCB7CisKKy8vIFRoZSBmb2xsb3dpbmcgZW51bSBzaG91bGQgYmUg
Y29uc2lzdGVudCB3aXRoIHRoZSBHZXN0dXJlQ29uZmlndXJhdGlvbiBlbnVtCisvLyBkZWZpbmVk
IGluIFdlYkNvcmUuCitlbnVtIFdlYkdlc3R1cmVDb25maWd1cmF0aW9uU2V0dGluZyB7CisgICAg
V2ViR2VzdHVyZU1heGltdW1Ub3VjaERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrLAorICAg
IFdlYkdlc3R1cmVNaW5pbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljaywKKyAg
ICBXZWJHZXN0dXJlTWF4aW11bVNlY29uZHNCZXR3ZWVuRG91YmxlQ2xpY2ssCisgICAgV2ViR2Vz
dHVyZU1heGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrLAorICAgIFdlYkdlc3R1cmVNaW5G
bGlja1NwZWVkU3F1YXJlZCwKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCAxZjg1MzBmZjg0MjZh
MzlhZjE5ZDg0MmZhOTE2NTIzYzQ2YzhhNWU1Li5kNDVhYjIxNDQ2NjUwYzE4NGIyNWVmMWVjYWE0
NGM5ODkzOTU3ZGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBA
IC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFdlYlZpZXdfaAogCiAjaW5jbHVkZSAiV2ViRHJhZ09w
ZXJhdGlvbi5oIgorI2luY2x1ZGUgIldlYkdlc3R1cmVDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZVZpc2liaWxpdHlTdGF0ZS5oIgogI2luY2x1ZGUgIldlYldpZGdldC5oIgogI2lu
Y2x1ZGUgInBsYXRmb3JtL1dlYlN0cmluZy5oIgpAQCAtNDQ5LDYgKzQ1MCw5IEBAIHB1YmxpYzoK
ICAgICAvLyBTaW11bGF0ZXMgYSBjb21wb3NpdG9yIGxvc3QgY29udGV4dC4KICAgICB2aXJ0dWFs
IHZvaWQgbG9zZUNvbXBvc2l0b3JDb250ZXh0KGludCBudW1UaW1lcykgPSAwOwogCisgICAgLy8g
U2V0dGluZ3MgdGhhdCBjb250cm9sIGdlc3R1cmUgcmVjb2duaXRpb24uCisgICAgdmlydHVhbCB2
b2lkIHNldEdlc3R1cmVDb25maWd1cmF0aW9uKFdlYkdlc3R1cmVDb25maWd1cmF0aW9uU2V0dGlu
ZyBpZCwgZG91YmxlIHZhbCkgPSAwOworICAgIHZpcnR1YWwgZG91YmxlIGdlc3R1cmVDb25maWd1
cmF0aW9uKFdlYkdlc3R1cmVDb25maWd1cmF0aW9uU2V0dGluZyBpZCkgPSAwOwogCiBwcm90ZWN0
ZWQ6CiAgICAgfldlYlZpZXcoKSB7fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCA1YTNhZjQzMDFjNThmMGVhMmM5MjU0ZTZm
MTM0YWIzYzYyMTdiYjZjLi5jY2ExZGY0NDFkNjBlMjNkNWVmNDJlZTAzOGIyOTIzNmY2NmEwNjkz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0Vu
dW1zLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0Vu
dW1zLmNwcApAQCAtNTYsNiArNTYsNyBAQAogI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUu
aCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ3Vy
c29yLmgiCisjaW5jbHVkZSAiUGxhdGZvcm1HZXN0dXJlUmVjb2duaXplci5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5UG9saWN5LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdG9y
YWdlSW5mby5oIgpAQCAtNzUsNiArNzYsNyBAQAogI2luY2x1ZGUgIldlYkZvbnREZXNjcmlwdGlv
bi5oIgogI2luY2x1ZGUgIldlYkdlb2xvY2F0aW9uRXJyb3IuaCIKICNpbmNsdWRlICJXZWJHZW9s
b2NhdGlvblBvc2l0aW9uLmgiCisjaW5jbHVkZSAiV2ViR2VzdHVyZUNvbmZpZ3VyYXRpb24uaCIK
ICNpbmNsdWRlICJXZWJJREJGYWN0b3J5LmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5LmgiCiAjaW5j
bHVkZSAiV2ViSWNvblVSTC5oIgpAQCAtNDk0LDMgKzQ5Niw5IEBAIENPTVBJTEVfQVNTRVJUX01B
VENISU5HX0VOVU0oV2ViUmVmZXJyZXJQb2xpY3lBbHdheXMsIFNlY3VyaXR5UG9saWN5OjpSZWZl
cnJlclBvCiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlJlZmVycmVyUG9saWN5RGVm
YXVsdCwgU2VjdXJpdHlQb2xpY3k6OlJlZmVycmVyUG9saWN5RGVmYXVsdCk7CiBDT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdlYlJlZmVycmVyUG9saWN5TmV2ZXIsIFNlY3VyaXR5UG9saWN5
OjpSZWZlcnJlclBvbGljeU5ldmVyKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2Vi
UmVmZXJyZXJQb2xpY3lPcmlnaW4sIFNlY3VyaXR5UG9saWN5OjpSZWZlcnJlclBvbGljeU9yaWdp
bik7CisKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViR2VzdHVyZU1heGltdW1Ub3Vj
aERvd25EdXJhdGlvbkluU2Vjb25kc0ZvckNsaWNrLCBQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVy
OjpHZXN0dXJlTWF4aW11bVRvdWNoRG93bkR1cmF0aW9uSW5TZWNvbmRzRm9yQ2xpY2spOworQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJHZXN0dXJlTWluaW11bVRvdWNoRG93bkR1cmF0
aW9uSW5TZWNvbmRzRm9yQ2xpY2ssIFBsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXI6Okdlc3R1cmVN
aW5pbXVtVG91Y2hEb3duRHVyYXRpb25JblNlY29uZHNGb3JDbGljayk7CitDT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdlYkdlc3R1cmVNYXhpbXVtU2Vjb25kc0JldHdlZW5Eb3VibGVDbGlj
aywgUGxhdGZvcm1HZXN0dXJlUmVjb2duaXplcjo6R2VzdHVyZU1heGltdW1TZWNvbmRzQmV0d2Vl
bkRvdWJsZUNsaWNrKTsKK0NPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViR2VzdHVyZU1h
eGltdW1Ub3VjaE1vdmVJblBpeGVsc0ZvckNsaWNrLCBQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVy
OjpHZXN0dXJlTWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2spOworQ09NUElMRV9BU1NF
UlRfTUFUQ0hJTkdfRU5VTShXZWJHZXN0dXJlTWluRmxpY2tTcGVlZFNxdWFyZWQsIFBsYXRmb3Jt
R2VzdHVyZVJlY29nbml6ZXI6Okdlc3R1cmVNaW5GbGlja1NwZWVkU3F1YXJlZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggYjkzNTVmYzgzMzA4NDNi
NTFjYTVjNDM1Yzc3YjdkNjQzMWNmMDI2OC4uNDgxMDdmMWExZTU5YjVjMWE2Mzk3OTcyNzE0YWVl
YzhiNGMzYmE5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cApAQCAtMzE0Nyw0ICszMTQ3LDIwIEBAIHZvaWQgV2ViVmlld0ltcGw6OnJlc2V0R2VzdHVyZVJl
Y29nbml6ZXIoKQogfQogI2VuZGlmCiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldEdlc3R1cmVDb25m
aWd1cmF0aW9uKFdlYkdlc3R1cmVDb25maWd1cmF0aW9uU2V0dGluZyBpZCwgZG91YmxlIHZhbCkK
K3sKKyNpZiBFTkFCTEUoR0VTVFVSRV9SRUNPR05JWkVSKQorICAgIG1fZ2VzdHVyZVJlY29nbml6
ZXItPnNldEdlc3R1cmVDb25maWd1cmF0aW9uKFBsYXRmb3JtR2VzdHVyZVJlY29nbml6ZXI6Okdl
c3R1cmVDb25maWd1cmF0aW9uU2V0dGluZyhpZCksIHZhbCk7CisjZW5kaWYKK30KKworZG91Ymxl
IFdlYlZpZXdJbXBsOjpnZXN0dXJlQ29uZmlndXJhdGlvbihXZWJHZXN0dXJlQ29uZmlndXJhdGlv
blNldHRpbmcgaWQpCit7CisjaWYgRU5BQkxFKEdFU1RVUkVfUkVDT0dOSVpFUikKKyAgICByZXR1
cm4gbV9nZXN0dXJlUmVjb2duaXplci0+Z2VzdHVyZUNvbmZpZ3VyYXRpb24oUGxhdGZvcm1HZXN0
dXJlUmVjb2duaXplcjo6R2VzdHVyZUNvbmZpZ3VyYXRpb25TZXR0aW5nKGlkKSk7CisjZWxzZQor
ICAgIHJldHVybiAwOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggZTViNWE1MjVmMTNhYmNiYmNk
NmM0NWQ3NGZhMjk5MWRmMzU1NzE2Ny4uMmExZWNkZWQ1OWJhMWRlMzQ0ODM2ZDJlMGMwMDNmY2I0
NGJlMjJmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBAIC00
NjUsNiArNDY1LDEwIEBAIHB1YmxpYzoKICAgICBib29sIGhhc0hvcml6b250YWxTY3JvbGxiYXIo
KTsKICAgICBib29sIGhhc1ZlcnRpY2FsU2Nyb2xsYmFyKCk7CiAKKyAgICAvLyBTZXR0aW5ncyB0
aGF0IGNvbnRyb2wgZ2VzdHVyZSByZWNvZ25pdGlvbi4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0R2Vz
dHVyZUNvbmZpZ3VyYXRpb24oV2ViR2VzdHVyZUNvbmZpZ3VyYXRpb25TZXR0aW5nIGlkLCBkb3Vi
bGUgdmFsKTsKKyAgICB2aXJ0dWFsIGRvdWJsZSBnZXN0dXJlQ29uZmlndXJhdGlvbihXZWJHZXN0
dXJlQ29uZmlndXJhdGlvblNldHRpbmcgaWQpOworCiBwcml2YXRlOgogICAgIGJvb2wgY29tcHV0
ZVBhZ2VTY2FsZUZhY3RvckxpbWl0cygpOwogICAgIGZsb2F0IGNsYW1wUGFnZVNjYWxlRmFjdG9y
VG9MaW1pdHMoZmxvYXQgc2NhbGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9Jbm5lckdlc3R1cmVSZWNvZ25pemVyVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lubmVyR2VzdHVyZVJlY29nbml6ZXJUZXN0LmNwcAppbmRleCAxOTEwNTRl
NGIzMmUzODkxNTYwMzMwZTExMmZmYTE1ZmE4ZGFhNmI2Li40NTNmODFhNGUzOWRkNjhhNzQ4ZTM3
MWZmMTM1ZGY0MTIxY2E5YTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0lubmVyR2VzdHVyZVJlY29nbml6ZXJUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL0lubmVyR2VzdHVyZVJlY29nbml6ZXJUZXN0LmNwcApAQCAtMjE4LDMxICsy
MTgsMzUgQEAgVEVTVF9GKEdlc3R1cmVSZWNvZ25pemVyVGVzdCwgaXNJbnNpZGVNYW5oYXR0YW5T
cXVhcmUpCiAgICAgSW5zcGVjdGFibGVHZXN0dXJlUmVjb2duaXplckNocm9taXVtIGdtOwogICAg
IEJ1aWxkYWJsZVBsYXRmb3JtVG91Y2hQb2ludCBwOwogCisgICAgZG91YmxlIHZhbHVlSW5zaWRl
TGltaXQgPSBnbS5nZXN0dXJlQ29uZmlndXJhdGlvbihQbGF0Zm9ybUdlc3R1cmVSZWNvZ25pemVy
OjpHZXN0dXJlTWF4aW11bVRvdWNoTW92ZUluUGl4ZWxzRm9yQ2xpY2spIC0gMC4wMDE7CisgICAg
ZG91YmxlIHZhbHVlQXRMaW1pdCA9IGdtLmdlc3R1cmVDb25maWd1cmF0aW9uKFBsYXRmb3JtR2Vz
dHVyZVJlY29nbml6ZXI6Okdlc3R1cmVNYXhpbXVtVG91Y2hNb3ZlSW5QaXhlbHNGb3JDbGljayk7
CisgICAgQVNTRVJUX0xUKDAuMCwgdmFsdWVJbnNpZGVMaW1pdCk7CisKICAgICBBU1NFUlRfRVEo
MC4wLCBnbS5maXJzdFRvdWNoUG9zaXRpb24oKS54KCkpOwogICAgIEFTU0VSVF9FUSgwLjAsIGdt
LmZpcnN0VG91Y2hQb3NpdGlvbigpLnkoKSk7CiAKICAgICBwLnNldFgoMC4wKTsKLSAgICBwLnNl
dFkoMTkuOTk5KTsKKyAgICBwLnNldFkodmFsdWVJbnNpZGVMaW1pdCk7CiAgICAgQVNTRVJUX1RS
VUUoZ20uaXNJbnNpZGVNYW5oYXR0YW5TcXVhcmUocCkpOwogCi0gICAgcC5zZXRYKDE5Ljk5OSk7
CisgICAgcC5zZXRYKHZhbHVlSW5zaWRlTGltaXQpOwogICAgIHAuc2V0WSgwLjApOwogICAgIEFT
U0VSVF9UUlVFKGdtLmlzSW5zaWRlTWFuaGF0dGFuU3F1YXJlKHApKTsKIAotICAgIHAuc2V0WCgy
MC4wKTsKKyAgICBwLnNldFgodmFsdWVBdExpbWl0KTsKICAgICBwLnNldFkoMC4wKTsKICAgICBB
U1NFUlRfRkFMU0UoZ20uaXNJbnNpZGVNYW5oYXR0YW5TcXVhcmUocCkpOwogCiAgICAgcC5zZXRY
KDAuMCk7Ci0gICAgcC5zZXRZKDIwLjApOworICAgIHAuc2V0WSh2YWx1ZUF0TGltaXQpOwogICAg
IEFTU0VSVF9GQUxTRShnbS5pc0luc2lkZU1hbmhhdHRhblNxdWFyZShwKSk7CiAKLSAgICBwLnNl
dFgoLTIwLjApOworICAgIHAuc2V0WCgtdmFsdWVBdExpbWl0KTsKICAgICBwLnNldFkoMC4wKTsK
ICAgICBBU1NFUlRfRkFMU0UoZ20uaXNJbnNpZGVNYW5oYXR0YW5TcXVhcmUocCkpOwogCiAgICAg
cC5zZXRYKDAuMCk7Ci0gICAgcC5zZXRZKC0yMC4wKTsKKyAgICBwLnNldFkoLXZhbHVlQXRMaW1p
dCk7CiAgICAgQVNTRVJUX0ZBTFNFKGdtLmlzSW5zaWRlTWFuaGF0dGFuU3F1YXJlKHApKTsKIH0K
IAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>