<?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>93171</bug_id>
          
          <creation_ts>2012-08-03 18:45:41 -0700</creation_ts>
          <short_desc>Remove decoding of frames in BitmapImage::frameHasAlphaAtIndex and BitmapImage::frameOrientationAtIndex</short_desc>
          <delta_ts>2012-08-09 19:08:00 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Images</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>90375</dependson>
          <blocked>93636</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Hin-Chung Lam">hclam</reporter>
          <assigned_to name="Hin-Chung Lam">hclam</assigned_to>
          <cc>dino</cc>
    
    <cc>dongseong.hwang</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>hclam</cc>
    
    <cc>hyatt</cc>
    
    <cc>nduca</cc>
    
    <cc>nick</cc>
    
    <cc>noel.gordon</cc>
    
    <cc>pkasting</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>skyul</cc>
    
    <cc>vangelis</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>687324</commentid>
    <comment_count>0</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-03 18:45:41 -0700</bug_when>
    <thetext>These two methods shouldn&apos;t require full image decoding. They are blockers for having asynchronous / deferred image decoding.

frameOrientationAtIndex

This is not implemented at the moment. And this information can be read from the image header without decoding the entire image.

frameHasAlphaAtIndex

This method is used for optimization in drawing. CG port doesn&apos;t return this reliable and use a simple jpeg-&gt;no, png/gif-&gt;yes heuristic. Having to decoding a full frame to answer this call is too heavy. This also blocks asynchronous image decoding as this is not an essential entry point to kick start image decoding.

We want image decoding to start only when an image is drawn, at least for single frame images.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687333</commentid>
    <comment_count>1</comment_count>
      <attachid>156504</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-03 18:54:57 -0700</bug_when>
    <thetext>Created attachment 156504
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687424</commentid>
    <comment_count>2</comment_count>
    <who name="Dongseong Hwang">dongseong.hwang</who>
    <bug_when>2012-08-04 01:16:14 -0700</bug_when>
    <thetext>Looks good to me. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690877</commentid>
    <comment_count>3</comment_count>
      <attachid>157324</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-08 16:15:34 -0700</bug_when>
    <thetext>Created attachment 157324
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690881</commentid>
    <comment_count>4</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-08 16:17:35 -0700</bug_when>
    <thetext>There&apos;s no new code in the second patch. It added a test for partially loaded JPEG images. This shows that this change doesn&apos;t affect rendering results when an image is fully loaded and partially loaded.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690890</commentid>
    <comment_count>5</comment_count>
      <attachid>157324</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-08-08 16:24:07 -0700</bug_when>
    <thetext>Comment on attachment 157324
Patch

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

&gt; Source/WebCore/platform/image-decoders/ImageDecoder.cpp:284
&gt; +    return m_frameBufferCache[index].status() != ImageFrame::FrameComplete || m_frameBufferCache[index].hasAlpha();

I find this confusing to read. It would be clearer as 

if (m_frameBufferCache[index].status() == ImageFrame::FrameComplete)
  return  m_frameBufferCache[index].hasAlpha();
return true;

&gt; Source/WebCore/platform/image-decoders/ImageDecoder.h:280
&gt; +        virtual bool frameHasAlphaAtIndex(size_t);

Can this be const?

&gt; LayoutTests/fast/images/jpg-image-with-background.html:11
&gt; +&lt;html&gt;
&gt; +&lt;head&gt;
&gt; +&lt;script&gt;
&gt; +if (window.testRunner)
&gt; +    testRunner.dumpAsText(true);
&gt; +&lt;/script&gt;
&gt; +&lt;/head&gt;
&gt; +&lt;body&gt;
&gt; +&lt;img src=&quot;resources/test-load.jpg&quot; style=&quot;background-color: blue;&quot;&gt;&lt;/img&gt;
&gt; +&lt;/body&gt;
&gt; +&lt;/html&gt;

I&apos;m not sure if this is worth testing.

&gt; LayoutTests/http/tests/resources/load-and-stall.php:37
&gt; +&lt;?php
&gt; +$name = $_GET[&apos;name&apos;];
&gt; +$stallAt = $_GET[&apos;stallAt&apos;];
&gt; +$stallFor = $_GET[&apos;stallFor&apos;];
&gt; +$mimeType = $_GET[&apos;mimeType&apos;];
&gt; +
&gt; +$file = fopen($name, &quot;rb&quot;);
&gt; +if (!$file)
&gt; +  die(&quot;Cannot open file.&quot;);
&gt; +
&gt; +header(&quot;Content-Type: &quot; . $mimeType);
&gt; +header(&quot;Content-Length: &quot; . filesize($name));
&gt; +
&gt; +if (isset($stallAt) &amp;&amp; isset($stallFor)) {
&gt; +  $stallAt = (int)$stallAt;
&gt; +  $stallFor = (int)$stallFor;
&gt; +  if ($stallAt &gt; filesize($name))
&gt; +    die(&quot;Incorrect value for stallAt.&quot;);
&gt; +
&gt; +  while ($written &lt; $stallAt) {
&gt; +    $write = 1024;
&gt; +    if ($write &gt; $stallAt - $written)
&gt; +      $write = $stallAt - $written;
&gt; +
&gt; +    echo(fread($file, $write));
&gt; +    $written += $write;
&gt; +    flush();
&gt; +    ob_flush();
&gt; +  }
&gt; +  sleep($stallFor);
&gt; +  echo(fread($file, filesize($name) - $stallAt));
&gt; +} else {
&gt; +  echo(fread($file, filesize($name)));
&gt; +}
&gt; +
&gt; +fclose($file);
&gt; +?&gt;

Does this match the style we use for other PHP files?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690923</commentid>
    <comment_count>6</comment_count>
      <attachid>157333</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-08 16:49:35 -0700</bug_when>
    <thetext>Created attachment 157333
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690935</commentid>
    <comment_count>7</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-08 16:54:13 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/platform/image-decoders/ImageDecoder.cpp:284
&gt; &gt; +    return m_frameBufferCache[index].status() != ImageFrame::FrameComplete || m_frameBufferCache[index].hasAlpha();
&gt; 
&gt; I find this confusing to read. It would be clearer as 
&gt; if (m_frameBufferCache[index].status() == ImageFrame::FrameComplete)
&gt;   return  m_frameBufferCache[index].hasAlpha();
&gt; return true;

Done.

&gt; &gt; Source/WebCore/platform/image-decoders/ImageDecoder.h:280
&gt; &gt; +        virtual bool frameHasAlphaAtIndex(size_t);
&gt; 
&gt; Can this be const?

Done.

&gt; &gt; LayoutTests/fast/images/jpg-image-with-background.html:11
&gt; 
&gt; I&apos;m not sure if this is worth testing.

Removed.

&gt; &gt; LayoutTests/http/tests/resources/load-and-stall.php:37
&gt;
&gt; Does this match the style we use for other PHP files?

Matched the style of this file with reset-temp-file.php in the same directory. Indentation using 4 spaces.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>690942</commentid>
    <comment_count>8</comment_count>
      <attachid>157333</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-08 16:56:04 -0700</bug_when>
    <thetext>Comment on attachment 157333
Patch

Thanks for review. I have addressed your comments in the last review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691115</commentid>
    <comment_count>9</comment_count>
      <attachid>157333</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-08 19:35:52 -0700</bug_when>
    <thetext>Comment on attachment 157333
Patch

Rejecting attachment 157333 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
Kit/chromium/third_party/yasm/source/patched-yasm --revision 134927 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
47&gt;At revision 134927.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/13460408</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691146</commentid>
    <comment_count>10</comment_count>
      <attachid>157378</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-08 20:23:56 -0700</bug_when>
    <thetext>Created attachment 157378
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691255</commentid>
    <comment_count>11</comment_count>
      <attachid>157378</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-08 23:23:58 -0700</bug_when>
    <thetext>Comment on attachment 157378
Patch for landing

Clearing flags on attachment: 157378

Committed r125154: &lt;http://trac.webkit.org/changeset/125154&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691256</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-08 23:24:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691633</commentid>
    <comment_count>13</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-08-09 11:40:29 -0700</bug_when>
    <thetext>This appears to have caused http/tests/images/jpg-img-partial-load.html to regress on Mac Lion.

http://build.webkit.org/results/Apple%20Lion%20Release%20WK1%20(Tests)/r125185%20(2163)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691636</commentid>
    <comment_count>14</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-09 11:41:21 -0700</bug_when>
    <thetext>I&apos;m looking into this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691645</commentid>
    <comment_count>15</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2012-08-09 11:44:08 -0700</bug_when>
    <thetext>This test is written on chromium&apos;s DRT which uses different image decoders than CG port. I think this maybe the reason. I&apos;ll try this on lion to verify. In the mean time please mark this as timeout in TestExpectations. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>691660</commentid>
    <comment_count>16</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-08-09 11:54:10 -0700</bug_when>
    <thetext>Followup in https://bugs.webkit.org/show_bug.cgi?id=93636</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156504</attachid>
            <date>2012-08-03 18:54:57 -0700</date>
            <delta_ts>2012-08-08 16:15:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93171-20120803185437.patch</filename>
            <type>text/plain</type>
            <size>8852</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIzMjU1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGEzNzliMGYwZjViOTYx
NWRiOThhYTQyNGVhNmVhMWE2YzFkZjQxZS4uOWYzNWZkOGNmMWMxZDcyYjhhNGEzNGQ4Nzc0MjE2
MmJmMzFlOGJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEyLTA4LTAyICBBbHBo
YSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGltYWdlIGRlY29k
aW5nIGluIHNvbWUgQml0bWFwSW1hZ2UgbWV0YWRhdGEgZnVuY3Rpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzE3MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIHR3byBtZXRhZGF0YSBmdW5j
dGlvbnMgd2VyZSBkZWNvZGluZyBhbiBlbnRpcmUgZnJhbWU6CisgICAgICAgIC0gZnJhbWVPcmll
bnRhdGlvbkF0SW5kZXgKKyAgICAgICAgLSBmcmFtZUhhc0FscGhhQXRJbmRleAorCisgICAgICAg
IFRoaXMgY2hhbmdlIHJlbW92ZXMgaW1hZ2UgZGVjb2RpbmcgZnJvbSB0aGVzZSB0d28gbWV0aG9k
cy4gVGhpcyBpcyBmb3IKKyAgICAgICAgcHJlcGFyYXRpb24gb2YgaGF2aW5nIGFzeW5jaHJvbm91
cyBpbWFnZSBkZWNvZGluZywgaW50ZW5kaW5nIHRvIHJlZHVjZQorICAgICAgICBjb2RlIGxvY2F0
aW9uIHRoYXQgdHJpZ2dlciBpbWFnZSBkZWNvZGluZy4KKworICAgICAgICBmcmFtZU9yaWVudGF0
aW9uQXRJbmRleCgpIGRvZXNuJ3QgcmVxdWlyZSBkZWNvZGluZyBhIGZyYW1lLiBUaGlzIG1ldGhv
ZAorICAgICAgICBpcyBvbmx5IGltcGxlbWVudGVkIGluIENHIHBvcnQgaW4gSW1hZ2VTb3VyY2VD
Ry5jcHAgd2hpY2ggZG9lc24ndCBkbworICAgICAgICBpbWFnZSBkZWNvZGluZy4KKworICAgICAg
ICBmcmFtZUhhc0FscGhhQXRJbmRleCgpIGlzIHVzZWQgdG8gb3B0aW1pemUgY2VydGFpbiBkcmF3
aW5nIG9wZXJhdGlvbnMKKyAgICAgICAgYW5kIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLiBUaGlz
IGNoYW5nZSB1c2VzIGEgaGV1cmlzdGljIGZvciBub24tQ0cKKyAgICAgICAgcG9ydCB0byBkZXRl
cm1pbmUgaWYgYW4gaW1hZ2UgaGFzIGFscGhhLiBJZiBhbiBpbWFnZSBpcyBub3QgeWV0CisgICAg
ICAgIGRlY29kZWQgdGhlIGNhbGwgYWxzbyBhbnN3ZXIgaGF2aW5nIGFscGhhLiBPbmx5IGlmIGEg
ZnJhbWUgaXMgZGVjb2RlZAorICAgICAgICBhbmQgY2FjaGVkIHRoYXQgdGhlIGFscGhhIHN0YXRl
IG9mIHRoZSBmcmFtZSBpcyByZXR1cm5lZC4gVGhpcyBpcyBhbgorICAgICAgICBhZG1pc3NpYmxl
IGhldXJpc3RpYyB0aGF0IHBvc3Rwb25lIGFuc3dlcmluZyB0aGUgcXVlc3Rpb24gdW50aWwgYSBm
cmFtZQorICAgICAgICBpcyBkZWNvZGVkLgorCisgICAgICAgIFRlc3Q6IGZhc3QvaW1hZ2VzL2pw
Zy1pbWFnZS13aXRoLWJhY2tncm91bmQuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmZyYW1l
SGFzQWxwaGFBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpmcmFtZU9y
aWVudGF0aW9uQXRJbmRleCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFBdElu
ZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpmcmFtZUhhc0FscGhhQXRJbmRleCk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9J
bWFnZURlY29kZXIuaDoKKyAgICAgICAgKEltYWdlRGVjb2Rlcik6CisKIDIwMTItMDctMjAgIEhh
biBTaGVuICA8c2hlbmhhbkBnb29nbGUuY29tPgogCiAgICAgICAgIFtDaHJvbWl1bV0gQ29tcGls
YXRpb24gZmFpbHMgdW5kZXIgZ2NjIDQuNwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDQ1NDYwZjhkMzRkMzFkNzc3MTU5ZTc0Y2M1
NjExODQyM2YyOTU0OWMuLmUyODZhN2M4YmY4NjE0M2JkN2VjNjQxYmEwODVlMTdlYzBkNjZiOTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5j
cHAKQEAgLTMyMiwxMSArMzIyLDEzIEBAIE5hdGl2ZUltYWdlUHRyIEJpdG1hcEltYWdlOjpuYXRp
dmVJbWFnZUZvckN1cnJlbnRGcmFtZSgpCiAKIGJvb2wgQml0bWFwSW1hZ2U6OmZyYW1lSGFzQWxw
aGFBdEluZGV4KHNpemVfdCBpbmRleCkKIHsKLSAgICAvLyBXaGVuIGEgZnJhbWUgaGFzIG5vdCBm
aW5pc2hlZCBkZWNvZGluZywgYWx3YXlzIG1hcmsgaXQgYXMgaGF2aW5nIGFscGhhLgotICAgIC8v
IFNlZSBJbWFnZVNvdXJjZTo6ZnJhbWVoYXNBbHBoYUF0SW5kZXggZm9yIGV4cGxhbmF0aW9uIG9m
IHdoeSBpbmNvbXBsZXRlIGltYWdlcyBjbGFpbSB0byBoYXZlIGFscGhhLgotICAgIGlmICghZW5z
dXJlRnJhbWVJc0NhY2hlZChpbmRleCkpCisgICAgaWYgKG1fZnJhbWVzLnNpemUoKSA8PSBpbmRl
eCkKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIG1fZnJhbWVzW2luZGV4XS5tX2hh
c0FscGhhOworCisgICAgaWYgKG1fZnJhbWVzW2luZGV4XS5tX2hhdmVNZXRhZGF0YSkKKyAgICAg
ICAgcmV0dXJuIG1fZnJhbWVzW2luZGV4XS5tX2hhc0FscGhhOworCisgICAgcmV0dXJuIG1fc291
cmNlLmZyYW1lSGFzQWxwaGFBdEluZGV4KGluZGV4KTsKIH0KIAogYm9vbCBCaXRtYXBJbWFnZTo6
Y3VycmVudEZyYW1lSGFzQWxwaGEoKQpAQCAtMzQxLDkgKzM0MywxMyBAQCBJbWFnZU9yaWVudGF0
aW9uIEJpdG1hcEltYWdlOjpjdXJyZW50RnJhbWVPcmllbnRhdGlvbigpCiAKIEltYWdlT3JpZW50
YXRpb24gQml0bWFwSW1hZ2U6OmZyYW1lT3JpZW50YXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkK
IHsKLSAgICBpZiAoIWVuc3VyZUZyYW1lSXNDYWNoZWQoaW5kZXgpKQorICAgIGlmIChtX2ZyYW1l
cy5zaXplKCkgPD0gaW5kZXgpCiAgICAgICAgIHJldHVybiBEZWZhdWx0SW1hZ2VPcmllbnRhdGlv
bjsKLSAgICByZXR1cm4gbV9mcmFtZXNbaW5kZXhdLm1fb3JpZW50YXRpb247CisKKyAgICBpZiAo
bV9mcmFtZXNbaW5kZXhdLm1faGF2ZU1ldGFkYXRhKQorICAgICAgICByZXR1cm4gbV9mcmFtZXNb
aW5kZXhdLm1fb3JpZW50YXRpb247CisKKyAgICByZXR1cm4gbV9zb3VyY2Uub3JpZW50YXRpb25B
dEluZGV4KGluZGV4KTsKIH0KIAogI2lmICFBU1NFUlRfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRleCA3NWVkNWExYTI2
ZjY0MDMyMDNiMzgzYTc5ZTEzZTEwYjgwYWZiOGExLi5jNDMzZGU0MDEyZTk4OGRjNmY5MDkxNjk3
ODc1NTMwNTY3MTUxYjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvSW1hZ2VTb3VyY2UuY3BwCkBAIC0xODQsMTQgKzE4NCw5IEBAIEltYWdlT3JpZW50YXRpb24g
SW1hZ2VTb3VyY2U6Om9yaWVudGF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0CiAKIGJv
b2wgSW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkKIHsKLSAg
ICAvLyBXaGVuIGEgZnJhbWUgaGFzIG5vdCBmaW5pc2hlZCBkZWNvZGluZywgYWx3YXlzIG1hcmsg
aXQgYXMgaGF2aW5nIGFscGhhLgotICAgIC8vIFBvcnRzIHRoYXQgY2hlY2sgdGhlIHJlc3VsdCBv
ZiB0aGlzIGZ1bmN0aW9uIHRvIGRldGVybWluZSB0aGVpcgotICAgIC8vIGNvbXBvc2l0aW5nIG9w
IG5lZWQgdGhpcyBpbiBvcmRlciB0byBub3QgZHJhdyB0aGUgdW5kZWNvZGVkIHBvcnRpb24gYXMK
LSAgICAvLyBibGFjay4KLSAgICAvLyBUT0RPOiBQZXJoYXBzIHdlIHNob3VsZCBlbnN1cmUgdGhh
dCBlYWNoIGluZGl2aWR1YWwgZGVjb2RlciByZXR1cm5zIHRydWUKLSAgICAvLyBpbiB0aGlzIGNh
c2UuCi0gICAgcmV0dXJuICFmcmFtZUlzQ29tcGxldGVBdEluZGV4KGluZGV4KQotICAgICAgICB8
fCBtX2RlY29kZXItPmZyYW1lQnVmZmVyQXRJbmRleChpbmRleCktPmhhc0FscGhhKCk7CisgICAg
aWYgKCFtX2RlY29kZXIpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBtX2RlY29k
ZXItPmZyYW1lSGFzQWxwaGFBdEluZGV4KGluZGV4KTsKIH0KIAogYm9vbCBJbWFnZVNvdXJjZTo6
ZnJhbWVJc0NvbXBsZXRlQXRJbmRleChzaXplX3QgaW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNwcAppbmRleCA3
MmI1ZGRjMmRlMzFkMDA0MDcyN2Q0NGU5NTE2MmFkZjZiYWM3NmM3Li43MDA0MmNhMTdmZDQ5ZmE4
ZmQ3NTFhYmM1NzM2YWRiMDFkOGQ5OGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHAKQEAgLTI3Nyw2ICsyNzcs
MTMgQEAgdGVtcGxhdGUgPE1hdGNoVHlwZSB0eXBlPiBpbnQgZ2V0U2NhbGVkVmFsdWUoY29uc3Qg
VmVjdG9yPGludD4mIHNjYWxlZFZhbHVlcywgaW4KIAogfQogCitib29sIEltYWdlRGVjb2Rlcjo6
ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KQoreworICAgIGlmIChtX2ZyYW1lQnVm
ZmVyQ2FjaGUuc2l6ZSgpIDw9IGluZGV4KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1
cm4gbV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XS5zdGF0dXMoKSAhPSBJbWFnZUZyYW1lOjpGcmFt
ZUNvbXBsZXRlIHx8IG1fZnJhbWVCdWZmZXJDYWNoZVtpbmRleF0uaGFzQWxwaGEoKTsKK30KKwog
dm9pZCBJbWFnZURlY29kZXI6OnByZXBhcmVTY2FsZURhdGFJZk5lY2Vzc2FyeSgpCiB7CiAgICAg
bV9zY2FsZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lt
YWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1h
Z2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKaW5kZXggOTExODc4ZTFkOTYyMjI2NDdlN2YzNDdl
NzY2MmQyZmJlZjNmMDI4Yi4uNTkwYTA2ZGMyZjg2MWM2OWVkYWM1Y2UyMmM5NTE1N2MyZGM1NTg3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1h
Z2VEZWNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
SW1hZ2VEZWNvZGVyLmgKQEAgLTI3Niw2ICsyNzYsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIC8vIEltYWdlRGVjb2Rlci1vd25lZCBwb2ludGVyLgogICAgICAgICB2aXJ0dWFsIElt
YWdlRnJhbWUqIGZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QpID0gMDsKIAorICAgICAgICAvLyBN
YWtlIHRoZSBiZXN0IGVmZm9ydCBndWVzcyB0byBjaGVjayBpZiB0aGUgcmVxdWVzdGVkIGZyYW1l
IGhhcyBhbHBoYSBjaGFubmVsLgorICAgICAgICB2aXJ0dWFsIGJvb2wgZnJhbWVIYXNBbHBoYUF0
SW5kZXgoc2l6ZV90KTsKKwogICAgICAgICB2b2lkIHNldElnbm9yZUdhbW1hQW5kQ29sb3JQcm9m
aWxlKGJvb2wgZmxhZykgeyBtX2lnbm9yZUdhbW1hQW5kQ29sb3JQcm9maWxlID0gZmxhZzsgfQog
ICAgICAgICBib29sIGlnbm9yZXNHYW1tYUFuZENvbG9yUHJvZmlsZSgpIGNvbnN0IHsgcmV0dXJu
IG1faWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGU7IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGZiZDgyYmU2M2RjNjFh
MzI1ODRmMzBjODQ1ZTBiNDc3ZjhiM2ZlOTEuLjlkNTE2MWMxMWYyMmI3YmI3M2IwOGJiMmJkZDA5
YmQ2YTI4YjQ0NjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxMi0wOC0wMyAgQWxwaGEgTGFt
ICA8aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRlc3QgcmVuZGVyaW5nIEpQRUcgPGlt
Zz4gd2l0aCBDU1MgYmFja2dyb3VuZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTMxNzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUaGVyZSBpcyBhbiBvcHRpbWl6YXRpb24gZm9yIHNraXBwaW5nIGJhY2tn
cm91bmQgcGFpbnRpbmcgdW5kZXJuZWF0aAorICAgICAgICBhbiBvcGFxdWUgaW1hZ2UgYnV0IHRo
ZXJlIHdhcyBub3QgdGVzdC4gVGhpcyBjaGFuZ2UgYWRkcyB0aGUgdGVzdC4KKworICAgICAgICBU
aGlzIGFsc28gdGVzdHMgdGhhdCBkZWZlcnJpbmcgYW5zd2VyaW5nIHRoZSBhbHBoYSBzdGF0ZSBm
b3IKKyAgICAgICAgQml0bWFwSW1hZ2Ugbm90IHlldCBkZWNvZGVkIGRvZXNuJ3QgYWZmZWN0IHJl
bmRlcmluZyByZXN1bHRzLgorCisgICAgICAgIFRoZSBleHBlY3RlZCByZW5kZXJpbmcgcmVzdWx0
IG9mIHRoaXMgdGVzdCBpcyBhIHllbGxvdyBzcXVhcmUuCisKKyAgICAgICAgKiBmYXN0L2ltYWdl
cy9qcGctaW1hZ2Utd2l0aC1iYWNrZ3JvdW5kLWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAg
ICogZmFzdC9pbWFnZXMvanBnLWltYWdlLXdpdGgtYmFja2dyb3VuZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvaW1hZ2VzL2pwZy1pbWFnZS13aXRoLWJhY2tncm91bmQuaHRt
bDogQWRkZWQuCisKIDIwMTItMDctMjAgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4K
IAogICAgICAgICBbY2hyb21pdW1dIFJlYmFzZWxpbmUgY3NzMy9maWx0ZXJzL2N1c3RvbSB0ZXN0
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvanBnLWltYWdlLXdpdGgtYmFj
a2dyb3VuZC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9qcGctaW1hZ2Ut
d2l0aC1iYWNrZ3JvdW5kLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZTM3MDg3NDBmY2RmNGI1
Y2JiNzEyYzdiMWU0NjI5MjI2M2YyZjdiCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAyODU5Cnpj
bWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5obEElQFdzJGxIYG9rPG19
P29UbjJOfgp6NndAU2dsVEA9KkxuQk0wQnZYc2pMfVBPa2xTRmUlPDVXWFNPSmlZYC00X2BjeGJ9
THdJRUdacmQzKG9APnd0bSkKemdDcDwxfEVIZ15ZQkc1PDhDe2s7RzQtX1F4eEw+UjcjMC0mLU9J
cG1BZF5MbSFORGhpaz5MbT88SiN3cGVLbmAqCnpxWms7SGNLfXM5IUJqeiMyKys5dD9XX3ozOUFo
PnhGZUVXP0dicEh5R0RaVm9HJG9BWWczKCtzbmhRcEEhRHVjUgpmJT5eU3A3bnRoPWFjOzxBbk8q
PkZ7VzVzRWBuanhnTkB4TkE0dlhBdwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvanBnLWltYWdlLXdpdGgtYmFja2dyb3VuZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9qcGctaW1hZ2Utd2l0aC1iYWNrZ3Jv
dW5kLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjEzNzg5MTc5MWZlOTY5MjdhZDc4ZTY0YjBh
YWQ3YmRlZDA4YmRjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMv
anBnLWltYWdlLXdpdGgtYmFja2dyb3VuZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9qcGctaW1hZ2Utd2l0aC1iYWNrZ3Jv
dW5kLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9qcGctaW1hZ2Utd2l0aC1iYWNrZ3Jv
dW5kLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uM2M1NDgwMjU0Zjc4YmZiZDZkODMxNGYxOGZjOTIwOTA2Yzli
YTkwYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2pwZy1pbWFn
ZS13aXRoLWJhY2tncm91bmQuaHRtbApAQCAtMCwwICsxLDExIEBACis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQodHJ1ZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGltZyBzcmM9InJlc291cmNl
cy90ZXN0LWxvYWQuanBnIiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsiPjwvaW1nPgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157324</attachid>
            <date>2012-08-08 16:15:34 -0700</date>
            <delta_ts>2012-08-08 16:49:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93171-20120808161508.patch</filename>
            <type>text/plain</type>
            <size>13805</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI5OTc3Yzk0NmRhMzY4
M2Y4ZjJmNzMwMTM5OGNkNmY1MzFjN2UxYi4uODMzOWU0MjI3ZTE2YjNiZTUyYWJhOTk1YjQ4YmU1
N2IwYzUxMmVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDEyLTA4LTAyICBBbHBo
YSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGltYWdlIGRlY29k
aW5nIGluIHNvbWUgQml0bWFwSW1hZ2UgbWV0YWRhdGEgZnVuY3Rpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzE3MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIHR3byBtZXRhZGF0YSBmdW5j
dGlvbnMgd2VyZSBkZWNvZGluZyBhbiBlbnRpcmUgZnJhbWU6CisgICAgICAgIC0gZnJhbWVPcmll
bnRhdGlvbkF0SW5kZXgKKyAgICAgICAgLSBmcmFtZUhhc0FscGhhQXRJbmRleAorCisgICAgICAg
IFRoaXMgY2hhbmdlIHJlbW92ZXMgaW1hZ2UgZGVjb2RpbmcgZnJvbSB0aGVzZSB0d28gbWV0aG9k
cy4gVGhpcyBpcyBmb3IKKyAgICAgICAgcHJlcGFyYXRpb24gb2YgaGF2aW5nIGFzeW5jaHJvbm91
cyBpbWFnZSBkZWNvZGluZywgaW50ZW5kaW5nIHRvIHJlZHVjZQorICAgICAgICBjb2RlIGxvY2F0
aW9uIHRoYXQgdHJpZ2dlciBpbWFnZSBkZWNvZGluZy4KKworICAgICAgICBmcmFtZU9yaWVudGF0
aW9uQXRJbmRleCgpIGRvZXNuJ3QgcmVxdWlyZSBkZWNvZGluZyBhIGZyYW1lLiBUaGlzIG1ldGhv
ZAorICAgICAgICBpcyBvbmx5IGltcGxlbWVudGVkIGluIENHIHBvcnQgaW4gSW1hZ2VTb3VyY2VD
Ry5jcHAgd2hpY2ggZG9lc24ndCBkbworICAgICAgICBpbWFnZSBkZWNvZGluZy4KKworICAgICAg
ICBmcmFtZUhhc0FscGhhQXRJbmRleCgpIGlzIHVzZWQgdG8gb3B0aW1pemUgY2VydGFpbiBkcmF3
aW5nIG9wZXJhdGlvbnMKKyAgICAgICAgYW5kIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLiBUaGlz
IGNoYW5nZSB1c2VzIGEgaGV1cmlzdGljIGZvciBub24tQ0cKKyAgICAgICAgcG9ydCB0byBkZXRl
cm1pbmUgaWYgYW4gaW1hZ2UgaGFzIGFscGhhLiBJZiBhbiBpbWFnZSBpcyBub3QgeWV0CisgICAg
ICAgIGRlY29kZWQgdGhlIGZ1bmN0aW9uIGFuc3dlcnMgaGF2aW5nIGFscGhhLiBPbmx5IGlmIGEg
ZnJhbWUgaXMgZGVjb2RlZAorICAgICAgICBhbmQgY2FjaGVkIHRoYXQgdGhlIGFscGhhIHN0YXRl
IG9mIHRoZSBmcmFtZSBpcyByZXR1cm5lZC4gVGhpcyBpcyBhbgorICAgICAgICBhZG1pc3NpYmxl
IGhldXJpc3RpYyB0aGF0IHBvc3Rwb25lIGFuc3dlcmluZyB0aGUgcXVlc3Rpb24gdW50aWwgYSBm
cmFtZQorICAgICAgICBpcyBkZWNvZGVkLgorCisgICAgICAgIFRlc3RlZCB0aGlzIGNoYW5nZSB3
aXRoIGEgZnVsbHkgbG9hZGVkIGltYWdlIGFuZCBwYXJ0aWFsbHkgbG9hZGVkIGltYWdlCisgICAg
ICAgIHdpdGggYmFja2dyb3VuZCBjb2xvci4KKworICAgICAgICBUZXN0OiBmYXN0L2ltYWdlcy9q
cGctaW1hZ2Utd2l0aC1iYWNrZ3JvdW5kLmh0bWwKKyAgICAgICAgICAgICAgaHR0cC90ZXN0cy9p
bWFnZXMvanBnLWltZy1wYXJ0aWFsLWxvYWQuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmZy
YW1lSGFzQWxwaGFBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpmcmFt
ZU9yaWVudGF0aW9uQXRJbmRleCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VT
b3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFB
dEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpmcmFtZUhhc0FscGhhQXRJbmRl
eCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVy
cy9JbWFnZURlY29kZXIuaDoKKyAgICAgICAgKEltYWdlRGVjb2Rlcik6CisKIDIwMTItMDgtMDgg
IFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQg
YmFja2luZyBzdG9yZSBvbiBsYXllcnMgY3JlYXRlZCBmb3IgQ29yZUFuaW1hdGlvbiBwbHVnaW5z
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
aW5kZXggNDU0NjBmOGQzNGQzMWQ3NzcxNTllNzRjYzU2MTE4NDIzZjI5NTQ5Yy4uZTI4NmE3Yzhi
Zjg2MTQzYmQ3ZWM2NDFiYTA4NWUxN2VjMGQ2NmI5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApAQCAtMzIyLDExICszMjIsMTMgQEAg
TmF0aXZlSW1hZ2VQdHIgQml0bWFwSW1hZ2U6Om5hdGl2ZUltYWdlRm9yQ3VycmVudEZyYW1lKCkK
IAogYm9vbCBCaXRtYXBJbWFnZTo6ZnJhbWVIYXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KQog
ewotICAgIC8vIFdoZW4gYSBmcmFtZSBoYXMgbm90IGZpbmlzaGVkIGRlY29kaW5nLCBhbHdheXMg
bWFyayBpdCBhcyBoYXZpbmcgYWxwaGEuCi0gICAgLy8gU2VlIEltYWdlU291cmNlOjpmcmFtZWhh
c0FscGhhQXRJbmRleCBmb3IgZXhwbGFuYXRpb24gb2Ygd2h5IGluY29tcGxldGUgaW1hZ2VzIGNs
YWltIHRvIGhhdmUgYWxwaGEuCi0gICAgaWYgKCFlbnN1cmVGcmFtZUlzQ2FjaGVkKGluZGV4KSkK
KyAgICBpZiAobV9mcmFtZXMuc2l6ZSgpIDw9IGluZGV4KQogICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICByZXR1cm4gbV9mcmFtZXNbaW5kZXhdLm1faGFzQWxwaGE7CisKKyAgICBpZiAobV9mcmFt
ZXNbaW5kZXhdLm1faGF2ZU1ldGFkYXRhKQorICAgICAgICByZXR1cm4gbV9mcmFtZXNbaW5kZXhd
Lm1faGFzQWxwaGE7CisKKyAgICByZXR1cm4gbV9zb3VyY2UuZnJhbWVIYXNBbHBoYUF0SW5kZXgo
aW5kZXgpOwogfQogCiBib29sIEJpdG1hcEltYWdlOjpjdXJyZW50RnJhbWVIYXNBbHBoYSgpCkBA
IC0zNDEsOSArMzQzLDEzIEBAIEltYWdlT3JpZW50YXRpb24gQml0bWFwSW1hZ2U6OmN1cnJlbnRG
cmFtZU9yaWVudGF0aW9uKCkKIAogSW1hZ2VPcmllbnRhdGlvbiBCaXRtYXBJbWFnZTo6ZnJhbWVP
cmllbnRhdGlvbkF0SW5kZXgoc2l6ZV90IGluZGV4KQogewotICAgIGlmICghZW5zdXJlRnJhbWVJ
c0NhY2hlZChpbmRleCkpCisgICAgaWYgKG1fZnJhbWVzLnNpemUoKSA8PSBpbmRleCkKICAgICAg
ICAgcmV0dXJuIERlZmF1bHRJbWFnZU9yaWVudGF0aW9uOwotICAgIHJldHVybiBtX2ZyYW1lc1tp
bmRleF0ubV9vcmllbnRhdGlvbjsKKworICAgIGlmIChtX2ZyYW1lc1tpbmRleF0ubV9oYXZlTWV0
YWRhdGEpCisgICAgICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9vcmllbnRhdGlvbjsKKwor
ICAgIHJldHVybiBtX3NvdXJjZS5vcmllbnRhdGlvbkF0SW5kZXgoaW5kZXgpOwogfQogCiAjaWYg
IUFTU0VSVF9ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvSW1hZ2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
SW1hZ2VTb3VyY2UuY3BwCmluZGV4IDc1ZWQ1YTFhMjZmNjQwMzIwM2IzODNhNzllMTNlMTBiODBh
ZmI4YTEuLmM0MzNkZTQwMTJlOTg4ZGM2ZjkwOTE2OTc4NzU1MzA1NjcxNTFiNmIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNvdXJjZS5jcHAKQEAgLTE4
NCwxNCArMTg0LDkgQEAgSW1hZ2VPcmllbnRhdGlvbiBJbWFnZVNvdXJjZTo6b3JpZW50YXRpb25B
dEluZGV4KHNpemVfdCBpbmRleCkgY29uc3QKIAogYm9vbCBJbWFnZVNvdXJjZTo6ZnJhbWVIYXNB
bHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KQogewotICAgIC8vIFdoZW4gYSBmcmFtZSBoYXMgbm90
IGZpbmlzaGVkIGRlY29kaW5nLCBhbHdheXMgbWFyayBpdCBhcyBoYXZpbmcgYWxwaGEuCi0gICAg
Ly8gUG9ydHMgdGhhdCBjaGVjayB0aGUgcmVzdWx0IG9mIHRoaXMgZnVuY3Rpb24gdG8gZGV0ZXJt
aW5lIHRoZWlyCi0gICAgLy8gY29tcG9zaXRpbmcgb3AgbmVlZCB0aGlzIGluIG9yZGVyIHRvIG5v
dCBkcmF3IHRoZSB1bmRlY29kZWQgcG9ydGlvbiBhcwotICAgIC8vIGJsYWNrLgotICAgIC8vIFRP
RE86IFBlcmhhcHMgd2Ugc2hvdWxkIGVuc3VyZSB0aGF0IGVhY2ggaW5kaXZpZHVhbCBkZWNvZGVy
IHJldHVybnMgdHJ1ZQotICAgIC8vIGluIHRoaXMgY2FzZS4KLSAgICByZXR1cm4gIWZyYW1lSXND
b21wbGV0ZUF0SW5kZXgoaW5kZXgpCi0gICAgICAgIHx8IG1fZGVjb2Rlci0+ZnJhbWVCdWZmZXJB
dEluZGV4KGluZGV4KS0+aGFzQWxwaGEoKTsKKyAgICBpZiAoIW1fZGVjb2RlcikKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIG1fZGVjb2Rlci0+ZnJhbWVIYXNBbHBoYUF0SW5kZXgo
aW5kZXgpOwogfQogCiBib29sIEltYWdlU291cmNlOjpmcmFtZUlzQ29tcGxldGVBdEluZGV4KHNp
emVfdCBpbmRleCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL0ltYWdlRGVjb2Rlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1k
ZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCmluZGV4IDcyYjVkZGMyZGUzMWQwMDQwNzI3ZDQ0ZTk1
MTYyYWRmNmJhYzc2YzcuLjcwMDQyY2ExN2ZkNDlmYThmZDc1MWFiYzU3MzZhZGIwMWQ4ZDk4Y2Ig
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdl
RGVjb2Rlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMv
SW1hZ2VEZWNvZGVyLmNwcApAQCAtMjc3LDYgKzI3NywxMyBAQCB0ZW1wbGF0ZSA8TWF0Y2hUeXBl
IHR5cGU+IGludCBnZXRTY2FsZWRWYWx1ZShjb25zdCBWZWN0b3I8aW50PiYgc2NhbGVkVmFsdWVz
LCBpbgogCiB9CiAKK2Jvb2wgSW1hZ2VEZWNvZGVyOjpmcmFtZUhhc0FscGhhQXRJbmRleChzaXpl
X3QgaW5kZXgpCit7CisgICAgaWYgKG1fZnJhbWVCdWZmZXJDYWNoZS5zaXplKCkgPD0gaW5kZXgp
CisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBtX2ZyYW1lQnVmZmVyQ2FjaGVbaW5k
ZXhdLnN0YXR1cygpICE9IEltYWdlRnJhbWU6OkZyYW1lQ29tcGxldGUgfHwgbV9mcmFtZUJ1ZmZl
ckNhY2hlW2luZGV4XS5oYXNBbHBoYSgpOworfQorCiB2b2lkIEltYWdlRGVjb2Rlcjo6cHJlcGFy
ZVNjYWxlRGF0YUlmTmVjZXNzYXJ5KCkKIHsKICAgICBtX3NjYWxlZCA9IGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIu
aAppbmRleCA5MTE4NzhlMWQ5NjIyMjY0N2U3ZjM0N2U3NjYyZDJmYmVmM2YwMjhiLi41OTBhMDZk
YzJmODYxYzY5ZWRhYzVjZTIyYzk1MTU3YzJkYzU1ODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaApAQCAtMjc2LDYg
KzI3Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gSW1hZ2VEZWNvZGVyLW93
bmVkIHBvaW50ZXIuCiAgICAgICAgIHZpcnR1YWwgSW1hZ2VGcmFtZSogZnJhbWVCdWZmZXJBdElu
ZGV4KHNpemVfdCkgPSAwOwogCisgICAgICAgIC8vIE1ha2UgdGhlIGJlc3QgZWZmb3J0IGd1ZXNz
IHRvIGNoZWNrIGlmIHRoZSByZXF1ZXN0ZWQgZnJhbWUgaGFzIGFscGhhIGNoYW5uZWwuCisgICAg
ICAgIHZpcnR1YWwgYm9vbCBmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QpOworCiAgICAgICAg
IHZvaWQgc2V0SWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUoYm9vbCBmbGFnKSB7IG1faWdub3Jl
R2FtbWFBbmRDb2xvclByb2ZpbGUgPSBmbGFnOyB9CiAgICAgICAgIGJvb2wgaWdub3Jlc0dhbW1h
QW5kQ29sb3JQcm9maWxlKCkgY29uc3QgeyByZXR1cm4gbV9pZ25vcmVHYW1tYUFuZENvbG9yUHJv
ZmlsZTsgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggNTBhZjRiMmY5ODJiZDUwYjQ2ZGU3N2Q2ODhlYmM1ZTc4MDcwYmVi
Ni4uYjMzZDBkN2I3ZDMzMWNmMjgzNTU3ZmYwMDFkZWZlODlmOGI2OTJhNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDM2IEBACisyMDEyLTA4LTAzICBBbHBoYSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgVGVzdCByZW5kZXJpbmcgSlBFRyA8aW1nPiB3aXRoIENTUyBiYWNrZ3JvdW5kCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzE3MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3RzIGRlZmVy
IGFuc3dlcmluZyB0aGUgYWxwaGEgc3RhdGUgZm9yIEJpdG1hcEltYWdlIG5vdCB5ZXQKKyAgICAg
ICAgZGVjb2RlZCBkb2Vzbid0IGFmZmVjdCByZW5kZXJpbmcgcmVzdWx0cy4KKworICAgICAgICBU
ZXN0OiBmYXN0L2ltYWdlcy9qcGctaW1hZ2Utd2l0aC1iYWNrZ3JvdW5kLmh0bWwKKworICAgICAg
ICBUaGVyZSBpcyBhbiBvcHRpbWl6YXRpb24gZm9yIHNraXBwaW5nIGJhY2tncm91bmQgcGFpbnRp
bmcgdW5kZXJuZWF0aAorICAgICAgICBhbiBvcGFxdWUgaW1hZ2UgYnV0IHRoZXJlIHdhcyBub3Qg
dGVzdC4gVGhpcyBjaGFuZ2UgYWRkcyB0aGUgdGVzdC4KKworICAgICAgICBUaGUgZXhwZWN0ZWQg
cmVuZGVyaW5nIHJlc3VsdCBvZiB0aGlzIHRlc3QgaXMgYSB5ZWxsb3cgc3F1YXJlLgorCisgICAg
ICAgIFRlc3Q6IGh0dHAvdGVzdHMvaW1hZ2VzL2pwZy1pbWctcGFydGlhbC1sb2FkLmh0bWwKKwor
ICAgICAgICBUZXN0cyB0aGUgcmVuZGVyaW5nIHJlc3VsdHMgb2YgYSBwYXJ0aWFsbHkgbG9hZGVk
IEpQRUcgaW1hZ2UuCisgICAgICAgIFRoZSBpbWFnZSBzaG91bGQgYmUgZ3JlZW4gaW4gdGhlIHRv
cCByZWdpb24gYW5kIGJsdWUgaW4gdGhlCisgICAgICAgIGxvd2VyIHJlZ2lvbi4gVGhlIGJsdWUg
aXMgdGhlIGJhY2tncm91bmQgY29sb3IgcmV2ZWFsZWQgYnkKKyAgICAgICAgZnVsbCBhbHBoYSBv
ZiB0aGUgdW5kZWNvZGVkIHJlZ2lvbi4KKworICAgICAgICAqIGZhc3QvaW1hZ2VzL2pwZy1pbWFn
ZS13aXRoLWJhY2tncm91bmQtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2lt
YWdlcy9qcGctaW1hZ2Utd2l0aC1iYWNrZ3JvdW5kLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9pbWFnZXMvanBnLWltYWdlLXdpdGgtYmFja2dyb3VuZC5odG1sOiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4tMjU2eDI1Ni5qcGc6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvaW1hZ2VzL2pwZy1pbWctcGFydGlhbC1sb2FkLWV4cGVj
dGVkLnBuZzogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbWFnZXMvanBnLWltZy1wYXJ0
aWFsLWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2ltYWdl
cy9qcGctaW1nLXBhcnRpYWwtbG9hZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlcy9sb2FkLWFuZC1zdGFsbC5waHA6IEFkZGVkLgorCiAyMDEyLTA4LTA4ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMTI0NDE2
KTogZmFzdC9mb3Jtcy9iYXNpYy1zZWxlY3RzLmh0bWwgZmFpbGluZyBvbiBMaW9uIERlYnVnIFRl
c3RzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9qcGctaW1hZ2Utd2l0aC1i
YWNrZ3JvdW5kLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2pwZy1pbWFn
ZS13aXRoLWJhY2tncm91bmQtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJlMzcwODc0MGZjZGY0
YjVjYmI3MTJjN2IxZTQ2MjkyMjYzZjJmN2IKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI4NTkK
emNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpaKT1oXmhsQSVAV3MkbEhgb2s8
bX0/b1RuMk5+Cno2d0BTZ2xUQD0qTG5CTTBCdlhzakx9UE9rbFNGZSU8NVdYU09KaVlgLTRfYGN4
Yn1Md0lFR1pyZDMob0A+d3RtKQp6Z0NwPDF8RUhnXllCRzU8OEN7aztHNC1fUXh4TD5SNyMwLSYt
T0lwbUFkXkxtIU5EaGlrPkxtPzxKI3dwZUtuYCoKenFaaztIY0t9czkhQmp6IzIrKzl0P1dfejM5
QWg+eEZlRVc/R2JwSHlHRFpWb0ckb0FZZzMoK3NuaFFwQSFEdWNSCmYlPl5TcDdudGg9YWM7PEFu
Tyo+RntXNXNFYG5qeGdOQHhOQTR2WEF3CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9qcGctaW1hZ2Utd2l0aC1iYWNrZ3JvdW5kLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2pwZy1pbWFnZS13aXRoLWJhY2tn
cm91bmQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiMTM3ODkxNzkxZmU5NjkyN2FkNzhlNjRi
MGFhZDdiZGVkMDhiZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdl
cy9qcGctaW1hZ2Utd2l0aC1iYWNrZ3JvdW5kLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2pwZy1pbWFnZS13aXRoLWJhY2tn
cm91bmQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW1hZ2VzL2pwZy1pbWFnZS13aXRoLWJhY2tn
cm91bmQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzU0ODAyNTRmNzhiZmJkNmQ4MzE0ZjE4ZmM5MjA5MDZj
OWJhOTBiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvanBnLWlt
YWdlLXdpdGgtYmFja2dyb3VuZC5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCh0cnVlKTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aW1nIHNyYz0icmVzb3Vy
Y2VzL3Rlc3QtbG9hZC5qcGciIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyI+PC9pbWc+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9y
ZXNvdXJjZXMvZ3JlZW4tMjU2eDI1Ni5qcGcgYi9MYXlvdXRUZXN0cy9mYXN0L2ltYWdlcy9yZXNv
dXJjZXMvZ3JlZW4tMjU2eDI1Ni5qcGcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDk3ZWQ3NzBiZmI2ZmIzNjdmMmVl
YjE5NzgyMjViYzRkMDM2MDU1YgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTY1NQp6Y21leD08
TnBIJjBXVVhDSHdII1ZNZ3xXY1djWXVaITVQRygyIUlUcyROLVMke3w2V1pJVCNyajhKSFFCNz89
YloKem5GU2dEQTdQTVpVfD9qMG45VHFNajctY2R0WmVLWW9MdDtNMXpRQ2VtPjhMdm5PSy12U3lA
PHNzJXdHcjNAbjFJCnpMVytpdFl7RyR3PmBIfHFNdlc1fWF3dDEoSlNaQTtAcT56U1FjKThwbXpj
UE9xP0Q/ZnhgdzhmaUsmXm5nezc2Vgp6aT5zVHZob0BJP05OOEFpTH1YTlFOQGBrcU1yS3hWTm9p
U21NUCpmVU9LViR1TWB6Y2gkeTI2SW4/N1VhdFZONUwKekVNMnlJI21aSGlIZ0RPd1pUcFUkeUFC
O2JhYGYybzZETG55eF9zczh3ZColLS1nQH14QHNwPnxwMSprYz5mQCkrCnpVJXIwKHteUkVfa2lT
NndnYUxAaChFS0ZgXmNORWczb3tFbCRYfD8xPHZgM1YkaWt7PCRSXnwlJGV2Z3p0WXA7NAp6QT51
U347bF9pVSVFbXotTTNhZ3hhKjMmIUpYSE0lQCozREAjQ2ZjVkVUNiRXaFZhKWQxfERXY1ZCfDNp
R1QxWngKZklARzFIeyU1QFhxZDZMangpP19CWGMmeTlmc3ZPNntAKC11X05meH4KCmxpdGVyYWwg
MApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW1hZ2Vz
L2pwZy1pbWctcGFydGlhbC1sb2FkLWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW1hZ2VzL2pwZy1pbWctcGFydGlhbC1sb2FkLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44
ZGQxZDIwMjUwNDU5MTYzOWI5NWIzMzZhZjgyMDJlNjJkNTE2NTg0CkdJVCBiaW5hcnkgcGF0Y2gK
bGl0ZXJhbCAyODczCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5o
bEElQFdzJGxIYG9rPG19P29UIXRoSQp6NloxMyFxYSp7UClEJU10MTdrfXxCVTV2OEJYaUBfTD16
QnllTWtSTjFfckx2by1VM2Q2PzVMK0cyfWF9QWowYXsKelFTKUU5ZWE/YTJ0d3cjT21vTSFwYHBX
JCppa1lGfExpJT9HaEtCOGU1ZXk4NWpqUmo7IVdhemViOF5wU2wpcjBtCnprMzdzPyRQbnxxMzlC
a2hlV019KzY7UmZHQHoxXj1sbCkraXtWdEItZlBDPm1DV2ExOTlmcFAoMlN5cEFmaU9IJAp6IXI4
NTV7dE9IaTteTCN9ZE5neTc3SHAlclVeRXZEKklhT2VLaWBnTG95TFpAJEFOOE8yMldRJW12djRG
TyNxe3YKQnxFbUIxCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9qcGctaW1nLXBhcnRpYWwtbG9hZC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9qcGctaW1nLXBhcnRpYWwtbG9hZC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uOGIxMzc4OTE3OTFmZTk2OTI3YWQ3OGU2NGIwYWFkN2JkZWQw
OGJkYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW1hZ2VzL2pw
Zy1pbWctcGFydGlhbC1sb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW1hZ2VzL2pwZy1pbWctcGFydGlhbC1sb2FkLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9qcGctaW1nLXBhcnRpYWwtbG9hZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjY4OTYxMWRkNTIwNWZiMDAzOWRkZjU3YmU0YmI4ZDBmMzc5OWYwY2EK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9qcGctaW1n
LXBhcnRpYWwtbG9hZC5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0
cnVlKTsKKyAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGNoZWNr
V2lkdGgoKSB7CisgIHZhciBpbWFnZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJpbWFnZSIp
OworICBpZiAoaW1hZ2Uud2lkdGggPT0gMjU2ICYmIHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworCisgIHNldFRpbWVvdXQoY2hlY2tXaWR0aCwgMSk7Cit9
CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgIHZhciBpbWFnZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJpbWFnZSIpOworICBpbWFnZS5zcmMgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jl
c291cmNlcy9sb2FkLWFuZC1zdGFsbC5waHA/bmFtZT0uLi8uLi8uLi9mYXN0L2ltYWdlcy9yZXNv
dXJjZXMvZ3JlZW4tMjU2eDI1Ni5qcGcmbWltZVR5cGU9aW1hZ2UlMkZqcGVnJnN0YWxsQXQ9MTAy
NSZzdGFsbEZvcj02MCI7CisKKyAgc2V0VGltZW91dChjaGVja1dpZHRoLCAxKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAxKTsi
IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7Ij4KKzxpbWcgaWQ9ImltYWdlIiBzdHls
ZT0iYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsiPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwucGhwIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwucGhwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZlMGFjOTgyNmY0ODU4MTc5ODU3MGM2YmUxMmJmNmVjNWU5MDAyMzgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9sb2FkLWFuZC1zdGFs
bC5waHAKQEAgLTAsMCArMSwzNyBAQAorPD9waHAKKyRuYW1lID0gJF9HRVRbJ25hbWUnXTsKKyRz
dGFsbEF0ID0gJF9HRVRbJ3N0YWxsQXQnXTsKKyRzdGFsbEZvciA9ICRfR0VUWydzdGFsbEZvcidd
OworJG1pbWVUeXBlID0gJF9HRVRbJ21pbWVUeXBlJ107CisKKyRmaWxlID0gZm9wZW4oJG5hbWUs
ICJyYiIpOworaWYgKCEkZmlsZSkKKyAgZGllKCJDYW5ub3Qgb3BlbiBmaWxlLiIpOworCitoZWFk
ZXIoIkNvbnRlbnQtVHlwZTogIiAuICRtaW1lVHlwZSk7CitoZWFkZXIoIkNvbnRlbnQtTGVuZ3Ro
OiAiIC4gZmlsZXNpemUoJG5hbWUpKTsKKworaWYgKGlzc2V0KCRzdGFsbEF0KSAmJiBpc3NldCgk
c3RhbGxGb3IpKSB7CisgICRzdGFsbEF0ID0gKGludCkkc3RhbGxBdDsKKyAgJHN0YWxsRm9yID0g
KGludCkkc3RhbGxGb3I7CisgIGlmICgkc3RhbGxBdCA+IGZpbGVzaXplKCRuYW1lKSkKKyAgICBk
aWUoIkluY29ycmVjdCB2YWx1ZSBmb3Igc3RhbGxBdC4iKTsKKworICB3aGlsZSAoJHdyaXR0ZW4g
PCAkc3RhbGxBdCkgeworICAgICR3cml0ZSA9IDEwMjQ7CisgICAgaWYgKCR3cml0ZSA+ICRzdGFs
bEF0IC0gJHdyaXR0ZW4pCisgICAgICAkd3JpdGUgPSAkc3RhbGxBdCAtICR3cml0dGVuOworCisg
ICAgZWNobyhmcmVhZCgkZmlsZSwgJHdyaXRlKSk7CisgICAgJHdyaXR0ZW4gKz0gJHdyaXRlOwor
ICAgIGZsdXNoKCk7CisgICAgb2JfZmx1c2goKTsKKyAgfQorICBzbGVlcCgkc3RhbGxGb3IpOwor
ICBlY2hvKGZyZWFkKCRmaWxlLCBmaWxlc2l6ZSgkbmFtZSkgLSAkc3RhbGxBdCkpOworfSBlbHNl
IHsKKyAgZWNobyhmcmVhZCgkZmlsZSwgZmlsZXNpemUoJG5hbWUpKSk7Cit9CisKK2ZjbG9zZSgk
ZmlsZSk7Cis/Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157333</attachid>
            <date>2012-08-08 16:49:35 -0700</date>
            <delta_ts>2012-08-08 20:23:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93171-20120808164909.patch</filename>
            <type>text/plain</type>
            <size>11873</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGI5OTc3Yzk0NmRhMzY4
M2Y4ZjJmNzMwMTM5OGNkNmY1MzFjN2UxYi4uZTc4ZDUyNmUwYTlhOTg3YTU5NjcxYzZjMTdkYzkw
Y2NlN2UxOTkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA4LTAyICBBbHBo
YSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGltYWdlIGRlY29k
aW5nIGluIHNvbWUgQml0bWFwSW1hZ2UgbWV0YWRhdGEgZnVuY3Rpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzE3MQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXNlIHR3byBtZXRhZGF0YSBmdW5j
dGlvbnMgd2VyZSBkZWNvZGluZyBhbiBlbnRpcmUgZnJhbWU6CisgICAgICAgIC0gZnJhbWVPcmll
bnRhdGlvbkF0SW5kZXgKKyAgICAgICAgLSBmcmFtZUhhc0FscGhhQXRJbmRleAorCisgICAgICAg
IFRoaXMgY2hhbmdlIHJlbW92ZXMgaW1hZ2UgZGVjb2RpbmcgZnJvbSB0aGVzZSB0d28gbWV0aG9k
cy4gVGhpcyBpcyBmb3IKKyAgICAgICAgcHJlcGFyYXRpb24gb2YgaGF2aW5nIGFzeW5jaHJvbm91
cyBpbWFnZSBkZWNvZGluZywgaW50ZW5kaW5nIHRvIHJlZHVjZQorICAgICAgICBjb2RlIGxvY2F0
aW9uIHRoYXQgdHJpZ2dlciBpbWFnZSBkZWNvZGluZy4KKworICAgICAgICBmcmFtZU9yaWVudGF0
aW9uQXRJbmRleCgpIGRvZXNuJ3QgcmVxdWlyZSBkZWNvZGluZyBhIGZyYW1lLiBUaGlzIG1ldGhv
ZAorICAgICAgICBpcyBvbmx5IGltcGxlbWVudGVkIGluIENHIHBvcnQgaW4gSW1hZ2VTb3VyY2VD
Ry5jcHAgd2hpY2ggZG9lc24ndCBkbworICAgICAgICBpbWFnZSBkZWNvZGluZy4KKworICAgICAg
ICBmcmFtZUhhc0FscGhhQXRJbmRleCgpIGlzIHVzZWQgdG8gb3B0aW1pemUgY2VydGFpbiBkcmF3
aW5nIG9wZXJhdGlvbnMKKyAgICAgICAgYW5kIGFjY2VsZXJhdGVkIGNvbXBvc2l0aW5nLiBUaGlz
IGNoYW5nZSB1c2VzIGEgaGV1cmlzdGljIGZvciBub24tQ0cKKyAgICAgICAgcG9ydCB0byBkZXRl
cm1pbmUgaWYgYW4gaW1hZ2UgaGFzIGFscGhhLiBJZiBhbiBpbWFnZSBpcyBub3QgeWV0CisgICAg
ICAgIGRlY29kZWQgdGhlIGZ1bmN0aW9uIGFuc3dlcnMgaGF2aW5nIGFscGhhLiBPbmx5IGlmIGEg
ZnJhbWUgaXMgZGVjb2RlZAorICAgICAgICBhbmQgY2FjaGVkIHRoYXQgdGhlIGFscGhhIHN0YXRl
IG9mIHRoZSBmcmFtZSBpcyByZXR1cm5lZC4gVGhpcyBpcyBhbgorICAgICAgICBhZG1pc3NpYmxl
IGhldXJpc3RpYyB0aGF0IHBvc3Rwb25lIGFuc3dlcmluZyB0aGUgcXVlc3Rpb24gdW50aWwgYSBm
cmFtZQorICAgICAgICBpcyBkZWNvZGVkLgorCisgICAgICAgIFRlc3RlZCB0aGlzIGNoYW5nZSB3
aXRoIGEgZnVsbHkgbG9hZGVkIGltYWdlIGFuZCBwYXJ0aWFsbHkgbG9hZGVkIGltYWdlCisgICAg
ICAgIHdpdGggYmFja2dyb3VuZCBjb2xvci4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL2lt
YWdlcy9qcGctaW1nLXBhcnRpYWwtbG9hZC5odG1sCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9CaXRtYXBJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXRtYXBJbWFnZTo6ZnJh
bWVIYXNBbHBoYUF0SW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmZyYW1l
T3JpZW50YXRpb25BdEluZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZVNv
dXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZVNvdXJjZTo6ZnJhbWVIYXNBbHBoYUF0
SW5kZXgpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZURlY29kZXI6OmZyYW1lSGFzQWxwaGFBdEluZGV4
KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2ltYWdlLWRlY29kZXJz
L0ltYWdlRGVjb2Rlci5oOgorICAgICAgICAoSW1hZ2VEZWNvZGVyKToKKwogMjAxMi0wOC0wOCAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBBdm9pZCBi
YWNraW5nIHN0b3JlIG9uIGxheWVycyBjcmVhdGVkIGZvciBDb3JlQW5pbWF0aW9uIHBsdWdpbnMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcApp
bmRleCA0NTQ2MGY4ZDM0ZDMxZDc3NzE1OWU3NGNjNTYxMTg0MjNmMjk1NDljLi5lMjg2YTdjOGJm
ODYxNDNiZDdlYzY0MWJhMDg1ZTE3ZWMwZDY2Yjk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCkBAIC0zMjIsMTEgKzMyMiwxMyBAQCBO
YXRpdmVJbWFnZVB0ciBCaXRtYXBJbWFnZTo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoKQog
CiBib29sIEJpdG1hcEltYWdlOjpmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QgaW5kZXgpCiB7
Ci0gICAgLy8gV2hlbiBhIGZyYW1lIGhhcyBub3QgZmluaXNoZWQgZGVjb2RpbmcsIGFsd2F5cyBt
YXJrIGl0IGFzIGhhdmluZyBhbHBoYS4KLSAgICAvLyBTZWUgSW1hZ2VTb3VyY2U6OmZyYW1laGFz
QWxwaGFBdEluZGV4IGZvciBleHBsYW5hdGlvbiBvZiB3aHkgaW5jb21wbGV0ZSBpbWFnZXMgY2xh
aW0gdG8gaGF2ZSBhbHBoYS4KLSAgICBpZiAoIWVuc3VyZUZyYW1lSXNDYWNoZWQoaW5kZXgpKQor
ICAgIGlmIChtX2ZyYW1lcy5zaXplKCkgPD0gaW5kZXgpCiAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0ubV9oYXNBbHBoYTsKKworICAgIGlmIChtX2ZyYW1l
c1tpbmRleF0ubV9oYXZlTWV0YWRhdGEpCisgICAgICAgIHJldHVybiBtX2ZyYW1lc1tpbmRleF0u
bV9oYXNBbHBoYTsKKworICAgIHJldHVybiBtX3NvdXJjZS5mcmFtZUhhc0FscGhhQXRJbmRleChp
bmRleCk7CiB9CiAKIGJvb2wgQml0bWFwSW1hZ2U6OmN1cnJlbnRGcmFtZUhhc0FscGhhKCkKQEAg
LTM0MSw5ICszNDMsMTMgQEAgSW1hZ2VPcmllbnRhdGlvbiBCaXRtYXBJbWFnZTo6Y3VycmVudEZy
YW1lT3JpZW50YXRpb24oKQogCiBJbWFnZU9yaWVudGF0aW9uIEJpdG1hcEltYWdlOjpmcmFtZU9y
aWVudGF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpCiB7Ci0gICAgaWYgKCFlbnN1cmVGcmFtZUlz
Q2FjaGVkKGluZGV4KSkKKyAgICBpZiAobV9mcmFtZXMuc2l6ZSgpIDw9IGluZGV4KQogICAgICAg
ICByZXR1cm4gRGVmYXVsdEltYWdlT3JpZW50YXRpb247Ci0gICAgcmV0dXJuIG1fZnJhbWVzW2lu
ZGV4XS5tX29yaWVudGF0aW9uOworCisgICAgaWYgKG1fZnJhbWVzW2luZGV4XS5tX2hhdmVNZXRh
ZGF0YSkKKyAgICAgICAgcmV0dXJuIG1fZnJhbWVzW2luZGV4XS5tX29yaWVudGF0aW9uOworCisg
ICAgcmV0dXJuIG1fc291cmNlLm9yaWVudGF0aW9uQXRJbmRleChpbmRleCk7CiB9CiAKICNpZiAh
QVNTRVJUX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9JbWFnZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5jcHAKaW5kZXggNzVlZDVhMWEyNmY2NDAzMjAzYjM4M2E3OWUxM2UxMGI4MGFm
YjhhMS4uYzQzM2RlNDAxMmU5ODhkYzZmOTA5MTY5Nzg3NTUzMDU2NzE1MWI2YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcApAQCAtMTg0
LDE0ICsxODQsOSBAQCBJbWFnZU9yaWVudGF0aW9uIEltYWdlU291cmNlOjpvcmllbnRhdGlvbkF0
SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAogCiBib29sIEltYWdlU291cmNlOjpmcmFtZUhhc0Fs
cGhhQXRJbmRleChzaXplX3QgaW5kZXgpCiB7Ci0gICAgLy8gV2hlbiBhIGZyYW1lIGhhcyBub3Qg
ZmluaXNoZWQgZGVjb2RpbmcsIGFsd2F5cyBtYXJrIGl0IGFzIGhhdmluZyBhbHBoYS4KLSAgICAv
LyBQb3J0cyB0aGF0IGNoZWNrIHRoZSByZXN1bHQgb2YgdGhpcyBmdW5jdGlvbiB0byBkZXRlcm1p
bmUgdGhlaXIKLSAgICAvLyBjb21wb3NpdGluZyBvcCBuZWVkIHRoaXMgaW4gb3JkZXIgdG8gbm90
IGRyYXcgdGhlIHVuZGVjb2RlZCBwb3J0aW9uIGFzCi0gICAgLy8gYmxhY2suCi0gICAgLy8gVE9E
TzogUGVyaGFwcyB3ZSBzaG91bGQgZW5zdXJlIHRoYXQgZWFjaCBpbmRpdmlkdWFsIGRlY29kZXIg
cmV0dXJucyB0cnVlCi0gICAgLy8gaW4gdGhpcyBjYXNlLgotICAgIHJldHVybiAhZnJhbWVJc0Nv
bXBsZXRlQXRJbmRleChpbmRleCkKLSAgICAgICAgfHwgbV9kZWNvZGVyLT5mcmFtZUJ1ZmZlckF0
SW5kZXgoaW5kZXgpLT5oYXNBbHBoYSgpOworICAgIGlmICghbV9kZWNvZGVyKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gbV9kZWNvZGVyLT5mcmFtZUhhc0FscGhhQXRJbmRleChp
bmRleCk7CiB9CiAKIGJvb2wgSW1hZ2VTb3VyY2U6OmZyYW1lSXNDb21wbGV0ZUF0SW5kZXgoc2l6
ZV90IGluZGV4KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvSW1hZ2VEZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2ltYWdlLWRl
Y29kZXJzL0ltYWdlRGVjb2Rlci5jcHAKaW5kZXggNzJiNWRkYzJkZTMxZDAwNDA3MjdkNDRlOTUx
NjJhZGY2YmFjNzZjNy4uOTk1MTEwODI3ZTU1ZDY5YTkxMDk2N2Y0YWMxMzY3YjE4YTIyMTdjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VE
ZWNvZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9J
bWFnZURlY29kZXIuY3BwCkBAIC0yNzcsNiArMjc3LDE1IEBAIHRlbXBsYXRlIDxNYXRjaFR5cGUg
dHlwZT4gaW50IGdldFNjYWxlZFZhbHVlKGNvbnN0IFZlY3RvcjxpbnQ+JiBzY2FsZWRWYWx1ZXMs
IGluCiAKIH0KIAorYm9vbCBJbWFnZURlY29kZXI6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVf
dCBpbmRleCkgY29uc3QKK3sKKyAgICBpZiAobV9mcmFtZUJ1ZmZlckNhY2hlLnNpemUoKSA8PSBp
bmRleCkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKG1fZnJhbWVCdWZmZXJDYWNoZVtp
bmRleF0uc3RhdHVzKCkgPT0gSW1hZ2VGcmFtZTo6RnJhbWVDb21wbGV0ZSkKKyAgICAgICAgcmV0
dXJuIG1fZnJhbWVCdWZmZXJDYWNoZVtpbmRleF0uaGFzQWxwaGEoKTsKKyAgICByZXR1cm4gdHJ1
ZTsKK30KKwogdm9pZCBJbWFnZURlY29kZXI6OnByZXBhcmVTY2FsZURhdGFJZk5lY2Vzc2FyeSgp
CiB7CiAgICAgbV9zY2FsZWQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKaW5kZXggOTExODc4ZTFkOTYyMjI2
NDdlN2YzNDdlNzY2MmQyZmJlZjNmMDI4Yi4uZjJhYWVjYzQ3MDc2MDBmY2QwZjQ3M2JmODhkMjY3
ZDg4MTYxN2YyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVj
b2RlcnMvSW1hZ2VEZWNvZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2Ut
ZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgKQEAgLTI3Niw2ICsyNzYsOSBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIC8vIEltYWdlRGVjb2Rlci1vd25lZCBwb2ludGVyLgogICAgICAgICB2
aXJ0dWFsIEltYWdlRnJhbWUqIGZyYW1lQnVmZmVyQXRJbmRleChzaXplX3QpID0gMDsKIAorICAg
ICAgICAvLyBNYWtlIHRoZSBiZXN0IGVmZm9ydCBndWVzcyB0byBjaGVjayBpZiB0aGUgcmVxdWVz
dGVkIGZyYW1lIGhhcyBhbHBoYSBjaGFubmVsLgorICAgICAgICB2aXJ0dWFsIGJvb2wgZnJhbWVI
YXNBbHBoYUF0SW5kZXgoc2l6ZV90KSBjb25zdDsKKwogICAgICAgICB2b2lkIHNldElnbm9yZUdh
bW1hQW5kQ29sb3JQcm9maWxlKGJvb2wgZmxhZykgeyBtX2lnbm9yZUdhbW1hQW5kQ29sb3JQcm9m
aWxlID0gZmxhZzsgfQogICAgICAgICBib29sIGlnbm9yZXNHYW1tYUFuZENvbG9yUHJvZmlsZSgp
IGNvbnN0IHsgcmV0dXJuIG1faWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGU7IH0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDUwYWY0YjJmOTgyYmQ1MGI0NmRlNzdkNjg4ZWJjNWU3ODA3MGJlYjYuLjQ4ODc2NDc1YmIzYjVl
YzQ4NjdmMzUzZjA0MmVkYmVhNDAxZmI3MmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxMi0w
OC0wMyAgQWxwaGEgTGFtICA8aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRlc3QgcmVu
ZGVyaW5nIEpQRUcgPGltZz4gd2l0aCBDU1MgYmFja2dyb3VuZAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTMxNzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBkZWZlciBhbnN3ZXJpbmcgdGhlIGFs
cGhhIHN0YXRlIGZvciBCaXRtYXBJbWFnZSBub3QgeWV0CisgICAgICAgIGRlY29kZWQgZG9lc24n
dCBhZmZlY3QgcmVuZGVyaW5nIHJlc3VsdHMuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9p
bWFnZXMvanBnLWltZy1wYXJ0aWFsLWxvYWQuaHRtbAorCisgICAgICAgIFRlc3RzIHRoZSByZW5k
ZXJpbmcgcmVzdWx0cyBvZiBhIHBhcnRpYWxseSBsb2FkZWQgSlBFRyBpbWFnZS4KKyAgICAgICAg
VGhlIGltYWdlIHNob3VsZCBiZSBncmVlbiBpbiB0aGUgdG9wIHJlZ2lvbiBhbmQgYmx1ZSBpbiB0
aGUKKyAgICAgICAgbG93ZXIgcmVnaW9uLiBUaGUgYmx1ZSBpcyB0aGUgYmFja2dyb3VuZCBjb2xv
ciByZXZlYWxlZCBieQorICAgICAgICBmdWxsIGFscGhhIG9mIHRoZSB1bmRlY29kZWQgcmVnaW9u
LgorCisgICAgICAgICogZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLTI1NngyNTYuanBnOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2ltYWdlcy9qcGctaW1nLXBhcnRpYWwtbG9hZC1l
eHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW1hZ2VzL2pwZy1pbWct
cGFydGlhbC1sb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9p
bWFnZXMvanBnLWltZy1wYXJ0aWFsLWxvYWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwucGhwOiBBZGRlZC4KKwogMjAxMi0wOC0wOCAg
RGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjEy
NDQxNik6IGZhc3QvZm9ybXMvYmFzaWMtc2VsZWN0cy5odG1sIGZhaWxpbmcgb24gTGlvbiBEZWJ1
ZyBUZXN0cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dy
ZWVuLTI1NngyNTYuanBnIGIvTGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dyZWVu
LTI1NngyNTYuanBnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5N2VkNzcwYmZiNmZiMzY3ZjJlZWIxOTc4MjI1YmM0
ZDAzNjA1NWIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDE2NTUKemNtZXg9PE5wSCYwV1VYQ0h3
SCNWTWd8V2NXY1l1WiE1UEcoMiFJVHMkTi1TJHt8NldaSVQjcmo4SkhRQjc/PWJaCnpuRlNnREE3
UE1aVXw/ajBuOVRxTWo3LWNkdFplS1lvTHQ7TTF6UUNlbT44THZuT0stdlN5QDxzcyV3R3IzQG4x
SQp6TFcraXRZe0ckdz5gSHxxTXZXNX1hd3QxKEpTWkE7QHE+elNRYyk4cG16Y1BPcT9EP2Z4YHc4
ZmlLJl5uZ3s3NlYKemk+c1R2aG9AST9OTjhBaUx9WE5RTkBga3FNckt4Vk5vaVNtTVAqZlVPS1Yk
dU1gemNoJHkyNkluPzdVYXRWTjVMCnpFTTJ5SSNtWkhpSGdET3daVHBVJHlBQjtiYWBmMm82RExu
eXhfc3M4d2QqJS0tZ0B9eEBzcD58cDEqa2M+ZkApKwp6VSVyMCh7XlJFX2tpUzZ3Z2FMQGgoRUtG
YF5jTkVnM297RWwkWHw/MTx2YDNWJGlrezwkUl58JSRldmd6dFlwOzQKekE+dVN+O2xfaVUlRW16
LU0zYWd4YSozJiFKWEhNJUAqM0RAI0NmY1ZFVDYkV2hWYSlkMXxEV2NWQnwzaUdUMVp4CmZJQEcx
SHslNUBYcWQ2TGp4KT9fQlhjJnk5ZnN2TzZ7QCgtdV9OZnh+CgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9qcGctaW1nLXBh
cnRpYWwtbG9hZC1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9q
cGctaW1nLXBhcnRpYWwtbG9hZC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRkMWQyMDI1MDQ1
OTE2MzliOTViMzM2YWY4MjAyZTYyZDUxNjU4NApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjg3
Mwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRsSGBv
azxtfT9vVCF0aEkKejZaMTMhcWEqe1ApRCVNdDE3a318QlU1djhCWGlAX0w9ekJ5ZU1rUk4xX3JM
dm8tVTNkNj81TCtHMn1hfUFqMGF7CnpRUylFOWVhP2EydHd3I09tb00hcGBwVyQqaWtZRnxMaSU/
R2hLQjhlNWV5ODVqalJqOyFXYXplYjhecFNsKXIwbQp6azM3cz8kUG58cTM5QmtoZVdNfSs2O1Jm
R0B6MV49bGwpK2l7VnRCLWZQQz5tQ1dhMTk5ZnBQKDJTeXBBZmlPSCQKeiFyODU1e3RPSGk7Xkwj
fWROZ3k3N0hwJXJVXkV2RCpJYU9lS2lgZ0xveUxaQCRBTjhPMjJXUSVtdnY0Rk8jcXt2CkJ8RW1C
MQoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9pbWFnZXMvanBnLWltZy1wYXJ0aWFsLWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9pbWFnZXMvanBnLWltZy1wYXJ0aWFsLWxvYWQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjhiMTM3ODkxNzkxZmU5NjkyN2FkNzhlNjRiMGFhZDdiZGVkMDhiZGMKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9qcGctaW1nLXBhcnRp
YWwtbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9qcGctaW1nLXBhcnRpYWwtbG9hZC5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9pbWFnZXMvanBnLWltZy1wYXJ0aWFsLWxvYWQuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4yMzljMTk3ZGQwNGI0ZDMxMTc0MjIwMDlkMDViNDMyZjI0Y2JiOTgwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbWFnZXMvanBnLWltZy1wYXJ0aWFsLWxv
YWQuaHRtbApAQCAtMCwwICsxLDMwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gY2hlY2tXaWR0aCgp
Cit7CisgICAgdmFyIGltYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlIik7Cisg
ICAgaWYgKGltYWdlLndpZHRoID09IDI1NiAmJiB3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisKKyAgICBzZXRUaW1lb3V0KGNoZWNrV2lkdGgsIDEp
OworfQorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgaW1hZ2UgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiaW1hZ2UiKTsKKyAgICBpbWFnZS5zcmMgPSAiaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3Jlc291cmNlcy9sb2FkLWFuZC1zdGFsbC5waHA/bmFtZT0uLi8uLi8uLi9mYXN0L2lt
YWdlcy9yZXNvdXJjZXMvZ3JlZW4tMjU2eDI1Ni5qcGcmbWltZVR5cGU9aW1hZ2UlMkZqcGVnJnN0
YWxsQXQ9MTAyNSZzdGFsbEZvcj02MCI7CisKKyAgICBzZXRUaW1lb3V0KGNoZWNrV2lkdGgsIDEp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRl
c3QoKScsIDEpOyIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHllbGxvdzsiPgorPGltZyBpZD0i
aW1hZ2UiIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyI+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9sb2FkLWFuZC1z
dGFsbC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9sb2FkLWFuZC1zdGFs
bC5waHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNDUzMDQ4MWY0NzE4OWUyN2FmZTU2MWJjMzBiMDBiMTVkZWQyNTM2
NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2xv
YWQtYW5kLXN0YWxsLnBocApAQCAtMCwwICsxLDM3IEBACis8P3BocAorJG5hbWUgPSAkX0dFVFsn
bmFtZSddOworJHN0YWxsQXQgPSAkX0dFVFsnc3RhbGxBdCddOworJHN0YWxsRm9yID0gJF9HRVRb
J3N0YWxsRm9yJ107CiskbWltZVR5cGUgPSAkX0dFVFsnbWltZVR5cGUnXTsKKworJGZpbGUgPSBm
b3BlbigkbmFtZSwgInJiIik7CitpZiAoISRmaWxlKQorICAgIGRpZSgiQ2Fubm90IG9wZW4gZmls
ZS4iKTsKKworaGVhZGVyKCJDb250ZW50LVR5cGU6ICIgLiAkbWltZVR5cGUpOworaGVhZGVyKCJD
b250ZW50LUxlbmd0aDogIiAuIGZpbGVzaXplKCRuYW1lKSk7CisKK2lmIChpc3NldCgkc3RhbGxB
dCkgJiYgaXNzZXQoJHN0YWxsRm9yKSkgeworICAgICRzdGFsbEF0ID0gKGludCkkc3RhbGxBdDsK
KyAgICAkc3RhbGxGb3IgPSAoaW50KSRzdGFsbEZvcjsKKyAgICBpZiAoJHN0YWxsQXQgPiBmaWxl
c2l6ZSgkbmFtZSkpCisgICAgICAgIGRpZSgiSW5jb3JyZWN0IHZhbHVlIGZvciBzdGFsbEF0LiIp
OworCisgICAgd2hpbGUgKCR3cml0dGVuIDwgJHN0YWxsQXQpIHsKKyAgICAgICAgJHdyaXRlID0g
MTAyNDsKKyAgICAgICAgaWYgKCR3cml0ZSA+ICRzdGFsbEF0IC0gJHdyaXR0ZW4pCisgICAgICAg
ICAgICAkd3JpdGUgPSAkc3RhbGxBdCAtICR3cml0dGVuOworCisgICAgICAgIGVjaG8oZnJlYWQo
JGZpbGUsICR3cml0ZSkpOworICAgICAgICAkd3JpdHRlbiArPSAkd3JpdGU7CisgICAgICAgIGZs
dXNoKCk7CisgICAgICAgIG9iX2ZsdXNoKCk7CisgICAgfQorICAgIHNsZWVwKCRzdGFsbEZvcik7
CisgICAgZWNobyhmcmVhZCgkZmlsZSwgZmlsZXNpemUoJG5hbWUpIC0gJHN0YWxsQXQpKTsKK30g
ZWxzZSB7CisgICAgZWNobyhmcmVhZCgkZmlsZSwgZmlsZXNpemUoJG5hbWUpKSk7Cit9CisKK2Zj
bG9zZSgkZmlsZSk7Cis/Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>157378</attachid>
            <date>2012-08-08 20:23:56 -0700</date>
            <delta_ts>2012-08-08 23:23:58 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-93171-20120808202329.patch</filename>
            <type>text/plain</type>
            <size>11909</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1MTQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODdkZTBmOGIwMzYyOTJk
MDQzY2ZlMDdlMDkzZmQxYWI4Yzg5NzAyMS4uNmE4ZDZkZTU0ZDgzYmY3NTBhNGY1NDgzYTdjN2E1
MDMwOTljZjVmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDEyLTA4LTAyICBBbHBo
YSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVtb3ZlIGltYWdlIGRlY29k
aW5nIGluIHNvbWUgQml0bWFwSW1hZ2UgbWV0YWRhdGEgZnVuY3Rpb25zCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzE3MQorCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBUaGVzZSB0d28gbWV0YWRhdGEgZnVuY3Rp
b25zIHdlcmUgZGVjb2RpbmcgYW4gZW50aXJlIGZyYW1lOgorICAgICAgICAtIGZyYW1lT3JpZW50
YXRpb25BdEluZGV4CisgICAgICAgIC0gZnJhbWVIYXNBbHBoYUF0SW5kZXgKKworICAgICAgICBU
aGlzIGNoYW5nZSByZW1vdmVzIGltYWdlIGRlY29kaW5nIGZyb20gdGhlc2UgdHdvIG1ldGhvZHMu
IFRoaXMgaXMgZm9yCisgICAgICAgIHByZXBhcmF0aW9uIG9mIGhhdmluZyBhc3luY2hyb25vdXMg
aW1hZ2UgZGVjb2RpbmcsIGludGVuZGluZyB0byByZWR1Y2UKKyAgICAgICAgY29kZSBsb2NhdGlv
biB0aGF0IHRyaWdnZXIgaW1hZ2UgZGVjb2RpbmcuCisKKyAgICAgICAgZnJhbWVPcmllbnRhdGlv
bkF0SW5kZXgoKSBkb2Vzbid0IHJlcXVpcmUgZGVjb2RpbmcgYSBmcmFtZS4gVGhpcyBtZXRob2QK
KyAgICAgICAgaXMgb25seSBpbXBsZW1lbnRlZCBpbiBDRyBwb3J0IGluIEltYWdlU291cmNlQ0cu
Y3BwIHdoaWNoIGRvZXNuJ3QgZG8KKyAgICAgICAgaW1hZ2UgZGVjb2RpbmcuCisKKyAgICAgICAg
ZnJhbWVIYXNBbHBoYUF0SW5kZXgoKSBpcyB1c2VkIHRvIG9wdGltaXplIGNlcnRhaW4gZHJhd2lu
ZyBvcGVyYXRpb25zCisgICAgICAgIGFuZCBhY2NlbGVyYXRlZCBjb21wb3NpdGluZy4gVGhpcyBj
aGFuZ2UgdXNlcyBhIGhldXJpc3RpYyBmb3Igbm9uLUNHCisgICAgICAgIHBvcnQgdG8gZGV0ZXJt
aW5lIGlmIGFuIGltYWdlIGhhcyBhbHBoYS4gSWYgYW4gaW1hZ2UgaXMgbm90IHlldAorICAgICAg
ICBkZWNvZGVkIHRoZSBmdW5jdGlvbiBhbnN3ZXJzIGhhdmluZyBhbHBoYS4gT25seSBpZiBhIGZy
YW1lIGlzIGRlY29kZWQKKyAgICAgICAgYW5kIGNhY2hlZCB0aGF0IHRoZSBhbHBoYSBzdGF0ZSBv
ZiB0aGUgZnJhbWUgaXMgcmV0dXJuZWQuIFRoaXMgaXMgYW4KKyAgICAgICAgYWRtaXNzaWJsZSBo
ZXVyaXN0aWMgdGhhdCBwb3N0cG9uZSBhbnN3ZXJpbmcgdGhlIHF1ZXN0aW9uIHVudGlsIGEgZnJh
bWUKKyAgICAgICAgaXMgZGVjb2RlZC4KKworICAgICAgICBUZXN0ZWQgdGhpcyBjaGFuZ2Ugd2l0
aCBhIGZ1bGx5IGxvYWRlZCBpbWFnZSBhbmQgcGFydGlhbGx5IGxvYWRlZCBpbWFnZQorICAgICAg
ICB3aXRoIGJhY2tncm91bmQgY29sb3IuCisKKyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9pbWFn
ZXMvanBnLWltZy1wYXJ0aWFsLWxvYWQuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmZyYW1l
SGFzQWxwaGFBdEluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpmcmFtZU9y
aWVudGF0aW9uQXRJbmRleCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2VTb3Vy
Y2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFBdElu
ZGV4KToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VEZWNvZGVyOjpmcmFtZUhhc0FscGhhQXRJbmRleCk6
CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9J
bWFnZURlY29kZXIuaDoKKyAgICAgICAgKEltYWdlRGVjb2Rlcik6CisKIDIwMTItMDgtMDggIEh1
YW5nIERvbmdzdW5nICA8bHV4dGVsbGFAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgRXh0cmFj
dCB0aGUgZGVmaW5pdGlvbiBvZiBOYXRpdmVJbWFnZVB0ciBmcm9tIEltYWdlU291cmNlLmggaW50
byBOYXRpdmVJbWFnZVB0ci5oLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDQ1NDYwZjhkMzRkMzFkNzc3MTU5ZTc0Y2M1NjExODQy
M2YyOTU0OWMuLmUyODZhN2M4YmY4NjE0M2JkN2VjNjQxYmEwODVlMTdlYzBkNjZiOTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAKQEAg
LTMyMiwxMSArMzIyLDEzIEBAIE5hdGl2ZUltYWdlUHRyIEJpdG1hcEltYWdlOjpuYXRpdmVJbWFn
ZUZvckN1cnJlbnRGcmFtZSgpCiAKIGJvb2wgQml0bWFwSW1hZ2U6OmZyYW1lSGFzQWxwaGFBdElu
ZGV4KHNpemVfdCBpbmRleCkKIHsKLSAgICAvLyBXaGVuIGEgZnJhbWUgaGFzIG5vdCBmaW5pc2hl
ZCBkZWNvZGluZywgYWx3YXlzIG1hcmsgaXQgYXMgaGF2aW5nIGFscGhhLgotICAgIC8vIFNlZSBJ
bWFnZVNvdXJjZTo6ZnJhbWVoYXNBbHBoYUF0SW5kZXggZm9yIGV4cGxhbmF0aW9uIG9mIHdoeSBp
bmNvbXBsZXRlIGltYWdlcyBjbGFpbSB0byBoYXZlIGFscGhhLgotICAgIGlmICghZW5zdXJlRnJh
bWVJc0NhY2hlZChpbmRleCkpCisgICAgaWYgKG1fZnJhbWVzLnNpemUoKSA8PSBpbmRleCkKICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIG1fZnJhbWVzW2luZGV4XS5tX2hhc0FscGhh
OworCisgICAgaWYgKG1fZnJhbWVzW2luZGV4XS5tX2hhdmVNZXRhZGF0YSkKKyAgICAgICAgcmV0
dXJuIG1fZnJhbWVzW2luZGV4XS5tX2hhc0FscGhhOworCisgICAgcmV0dXJuIG1fc291cmNlLmZy
YW1lSGFzQWxwaGFBdEluZGV4KGluZGV4KTsKIH0KIAogYm9vbCBCaXRtYXBJbWFnZTo6Y3VycmVu
dEZyYW1lSGFzQWxwaGEoKQpAQCAtMzQxLDkgKzM0MywxMyBAQCBJbWFnZU9yaWVudGF0aW9uIEJp
dG1hcEltYWdlOjpjdXJyZW50RnJhbWVPcmllbnRhdGlvbigpCiAKIEltYWdlT3JpZW50YXRpb24g
Qml0bWFwSW1hZ2U6OmZyYW1lT3JpZW50YXRpb25BdEluZGV4KHNpemVfdCBpbmRleCkKIHsKLSAg
ICBpZiAoIWVuc3VyZUZyYW1lSXNDYWNoZWQoaW5kZXgpKQorICAgIGlmIChtX2ZyYW1lcy5zaXpl
KCkgPD0gaW5kZXgpCiAgICAgICAgIHJldHVybiBEZWZhdWx0SW1hZ2VPcmllbnRhdGlvbjsKLSAg
ICByZXR1cm4gbV9mcmFtZXNbaW5kZXhdLm1fb3JpZW50YXRpb247CisKKyAgICBpZiAobV9mcmFt
ZXNbaW5kZXhdLm1faGF2ZU1ldGFkYXRhKQorICAgICAgICByZXR1cm4gbV9mcmFtZXNbaW5kZXhd
Lm1fb3JpZW50YXRpb247CisKKyAgICByZXR1cm4gbV9zb3VyY2Uub3JpZW50YXRpb25BdEluZGV4
KGluZGV4KTsKIH0KIAogI2lmICFBU1NFUlRfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlU291cmNlLmNwcAppbmRleCA3NWVkNWExYTI2ZjY0MDMy
MDNiMzgzYTc5ZTEzZTEwYjgwYWZiOGExLi5jNDMzZGU0MDEyZTk4OGRjNmY5MDkxNjk3ODc1NTMw
NTY3MTUxYjZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9J
bWFnZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1h
Z2VTb3VyY2UuY3BwCkBAIC0xODQsMTQgKzE4NCw5IEBAIEltYWdlT3JpZW50YXRpb24gSW1hZ2VT
b3VyY2U6Om9yaWVudGF0aW9uQXRJbmRleChzaXplX3QgaW5kZXgpIGNvbnN0CiAKIGJvb2wgSW1h
Z2VTb3VyY2U6OmZyYW1lSGFzQWxwaGFBdEluZGV4KHNpemVfdCBpbmRleCkKIHsKLSAgICAvLyBX
aGVuIGEgZnJhbWUgaGFzIG5vdCBmaW5pc2hlZCBkZWNvZGluZywgYWx3YXlzIG1hcmsgaXQgYXMg
aGF2aW5nIGFscGhhLgotICAgIC8vIFBvcnRzIHRoYXQgY2hlY2sgdGhlIHJlc3VsdCBvZiB0aGlz
IGZ1bmN0aW9uIHRvIGRldGVybWluZSB0aGVpcgotICAgIC8vIGNvbXBvc2l0aW5nIG9wIG5lZWQg
dGhpcyBpbiBvcmRlciB0byBub3QgZHJhdyB0aGUgdW5kZWNvZGVkIHBvcnRpb24gYXMKLSAgICAv
LyBibGFjay4KLSAgICAvLyBUT0RPOiBQZXJoYXBzIHdlIHNob3VsZCBlbnN1cmUgdGhhdCBlYWNo
IGluZGl2aWR1YWwgZGVjb2RlciByZXR1cm5zIHRydWUKLSAgICAvLyBpbiB0aGlzIGNhc2UuCi0g
ICAgcmV0dXJuICFmcmFtZUlzQ29tcGxldGVBdEluZGV4KGluZGV4KQotICAgICAgICB8fCBtX2Rl
Y29kZXItPmZyYW1lQnVmZmVyQXRJbmRleChpbmRleCktPmhhc0FscGhhKCk7CisgICAgaWYgKCFt
X2RlY29kZXIpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBtX2RlY29kZXItPmZy
YW1lSGFzQWxwaGFBdEluZGV4KGluZGV4KTsKIH0KIAogYm9vbCBJbWFnZVNvdXJjZTo6ZnJhbWVJ
c0NvbXBsZXRlQXRJbmRleChzaXplX3QgaW5kZXgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmNwcAppbmRleCA3MmI1ZGRj
MmRlMzFkMDA0MDcyN2Q0NGU5NTE2MmFkZjZiYWM3NmM3Li45OTUxMTA4MjdlNTVkNjlhOTEwOTY3
ZjRhYzEzNjdiMThhMjIxN2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9p
bWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2ltYWdlLWRlY29kZXJzL0ltYWdlRGVjb2Rlci5jcHAKQEAgLTI3Nyw2ICsyNzcsMTUgQEAg
dGVtcGxhdGUgPE1hdGNoVHlwZSB0eXBlPiBpbnQgZ2V0U2NhbGVkVmFsdWUoY29uc3QgVmVjdG9y
PGludD4mIHNjYWxlZFZhbHVlcywgaW4KIAogfQogCitib29sIEltYWdlRGVjb2Rlcjo6ZnJhbWVI
YXNBbHBoYUF0SW5kZXgoc2l6ZV90IGluZGV4KSBjb25zdAoreworICAgIGlmIChtX2ZyYW1lQnVm
ZmVyQ2FjaGUuc2l6ZSgpIDw9IGluZGV4KQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAo
bV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XS5zdGF0dXMoKSA9PSBJbWFnZUZyYW1lOjpGcmFtZUNv
bXBsZXRlKQorICAgICAgICByZXR1cm4gbV9mcmFtZUJ1ZmZlckNhY2hlW2luZGV4XS5oYXNBbHBo
YSgpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEltYWdlRGVjb2Rlcjo6cHJlcGFyZVNj
YWxlRGF0YUlmTmVjZXNzYXJ5KCkKIHsKICAgICBtX3NjYWxlZCA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW1hZ2UtZGVjb2RlcnMvSW1hZ2VEZWNvZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaApp
bmRleCA5MTE4NzhlMWQ5NjIyMjY0N2U3ZjM0N2U3NjYyZDJmYmVmM2YwMjhiLi5mMmFhZWNjNDcw
NzYwMGZjZDBmNDczYmY4OGQyNjdkODgxNjE3ZjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pbWFnZS1kZWNvZGVycy9JbWFnZURlY29kZXIuaApAQCAtMjc2LDYgKzI3
Niw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gSW1hZ2VEZWNvZGVyLW93bmVk
IHBvaW50ZXIuCiAgICAgICAgIHZpcnR1YWwgSW1hZ2VGcmFtZSogZnJhbWVCdWZmZXJBdEluZGV4
KHNpemVfdCkgPSAwOwogCisgICAgICAgIC8vIE1ha2UgdGhlIGJlc3QgZWZmb3J0IGd1ZXNzIHRv
IGNoZWNrIGlmIHRoZSByZXF1ZXN0ZWQgZnJhbWUgaGFzIGFscGhhIGNoYW5uZWwuCisgICAgICAg
IHZpcnR1YWwgYm9vbCBmcmFtZUhhc0FscGhhQXRJbmRleChzaXplX3QpIGNvbnN0OworCiAgICAg
ICAgIHZvaWQgc2V0SWdub3JlR2FtbWFBbmRDb2xvclByb2ZpbGUoYm9vbCBmbGFnKSB7IG1faWdu
b3JlR2FtbWFBbmRDb2xvclByb2ZpbGUgPSBmbGFnOyB9CiAgICAgICAgIGJvb2wgaWdub3Jlc0dh
bW1hQW5kQ29sb3JQcm9maWxlKCkgY29uc3QgeyByZXR1cm4gbV9pZ25vcmVHYW1tYUFuZENvbG9y
UHJvZmlsZTsgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWFiYzEwNWNiOWJhNWYyNzVkZGNhNTlkOTZiMzBjMzViZDY2
ZGQzZS4uOTc5YzY5NGQxMzJjMzA5YzRiZmU2MmU0ZjRkNGRlNTY2NGY4NTIzZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI2IEBACisyMDEyLTA4LTAzICBBbHBoYSBMYW0gIDxoY2xhbUBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgVGVzdCByZW5kZXJpbmcgSlBFRyA8aW1nPiB3aXRoIENTUyBiYWNrZ3JvdW5k
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzE3MQor
CisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBUZXN0cyBkZWZl
ciBhbnN3ZXJpbmcgdGhlIGFscGhhIHN0YXRlIGZvciBCaXRtYXBJbWFnZSBub3QgeWV0CisgICAg
ICAgIGRlY29kZWQgZG9lc24ndCBhZmZlY3QgcmVuZGVyaW5nIHJlc3VsdHMuCisKKyAgICAgICAg
VGVzdDogaHR0cC90ZXN0cy9pbWFnZXMvanBnLWltZy1wYXJ0aWFsLWxvYWQuaHRtbAorCisgICAg
ICAgIFRlc3RzIHRoZSByZW5kZXJpbmcgcmVzdWx0cyBvZiBhIHBhcnRpYWxseSBsb2FkZWQgSlBF
RyBpbWFnZS4KKyAgICAgICAgVGhlIGltYWdlIHNob3VsZCBiZSBncmVlbiBpbiB0aGUgdG9wIHJl
Z2lvbiBhbmQgYmx1ZSBpbiB0aGUKKyAgICAgICAgbG93ZXIgcmVnaW9uLiBUaGUgYmx1ZSBpcyB0
aGUgYmFja2dyb3VuZCBjb2xvciByZXZlYWxlZCBieQorICAgICAgICBmdWxsIGFscGhhIG9mIHRo
ZSB1bmRlY29kZWQgcmVnaW9uLgorCisgICAgICAgICogZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dy
ZWVuLTI1NngyNTYuanBnOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2ltYWdlcy9qcGct
aW1nLXBhcnRpYWwtbG9hZC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvaW1hZ2VzL2pwZy1pbWctcGFydGlhbC1sb2FkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9pbWFnZXMvanBnLWltZy1wYXJ0aWFsLWxvYWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwucGhwOiBBZGRl
ZC4KKwogMjAxMi0wOC0wOCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIGNzczMvZmxleGJveC9jb250ZW50LWhlaWdodC13aXRoLXNjcm9sbGJhcnMuaHRtbCBmYWls
aW5nIG9uIG5vbi1mcmFjdGlvbmFsIHBpeGVsIGxheW91dCBtYWNoaW5lcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLTI1NngyNTYuanBnIGIvTGF5
b3V0VGVzdHMvZmFzdC9pbWFnZXMvcmVzb3VyY2VzL2dyZWVuLTI1NngyNTYuanBnCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQ5N2VkNzcwYmZiNmZiMzY3ZjJlZWIxOTc4MjI1YmM0ZDAzNjA1NWIKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDE2NTUKemNtZXg9PE5wSCYwV1VYQ0h3SCNWTWd8V2NXY1l1WiE1UEcoMiFJ
VHMkTi1TJHt8NldaSVQjcmo4SkhRQjc/PWJaCnpuRlNnREE3UE1aVXw/ajBuOVRxTWo3LWNkdFpl
S1lvTHQ7TTF6UUNlbT44THZuT0stdlN5QDxzcyV3R3IzQG4xSQp6TFcraXRZe0ckdz5gSHxxTXZX
NX1hd3QxKEpTWkE7QHE+elNRYyk4cG16Y1BPcT9EP2Z4YHc4ZmlLJl5uZ3s3NlYKemk+c1R2aG9A
ST9OTjhBaUx9WE5RTkBga3FNckt4Vk5vaVNtTVAqZlVPS1YkdU1gemNoJHkyNkluPzdVYXRWTjVM
CnpFTTJ5SSNtWkhpSGdET3daVHBVJHlBQjtiYWBmMm82RExueXhfc3M4d2QqJS0tZ0B9eEBzcD58
cDEqa2M+ZkApKwp6VSVyMCh7XlJFX2tpUzZ3Z2FMQGgoRUtGYF5jTkVnM297RWwkWHw/MTx2YDNW
JGlrezwkUl58JSRldmd6dFlwOzQKekE+dVN+O2xfaVUlRW16LU0zYWd4YSozJiFKWEhNJUAqM0RA
I0NmY1ZFVDYkV2hWYSlkMXxEV2NWQnwzaUdUMVp4CmZJQEcxSHslNUBYcWQ2TGp4KT9fQlhjJnk5
ZnN2TzZ7QCgtdV9OZnh+CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9qcGctaW1nLXBhcnRpYWwtbG9hZC1leHBlY3RlZC5w
bmcgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9qcGctaW1nLXBhcnRpYWwtbG9hZC1l
eHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGRkMWQyMDI1MDQ1OTE2MzliOTViMzM2YWY4MjAyZTYy
ZDUxNjU4NApHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjg3Mwp6Y21lQVNATj8ob2xIeWB1VkJx
IWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRsSGBvazxtfT9vVCF0aEkKejZaMTMhcWEq
e1ApRCVNdDE3a318QlU1djhCWGlAX0w9ekJ5ZU1rUk4xX3JMdm8tVTNkNj81TCtHMn1hfUFqMGF7
CnpRUylFOWVhP2EydHd3I09tb00hcGBwVyQqaWtZRnxMaSU/R2hLQjhlNWV5ODVqalJqOyFXYXpl
YjhecFNsKXIwbQp6azM3cz8kUG58cTM5QmtoZVdNfSs2O1JmR0B6MV49bGwpK2l7VnRCLWZQQz5t
Q1dhMTk5ZnBQKDJTeXBBZmlPSCQKeiFyODU1e3RPSGk7XkwjfWROZ3k3N0hwJXJVXkV2RCpJYU9l
S2lgZ0xveUxaQCRBTjhPMjJXUSVtdnY0Rk8jcXt2CkJ8RW1CMQoKbGl0ZXJhbCAwCkhjbVY/ZDAw
MDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbWFnZXMvanBnLWltZy1w
YXJ0aWFsLWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbWFnZXMv
anBnLWltZy1wYXJ0aWFsLWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiMTM3ODkxNzkx
ZmU5NjkyN2FkNzhlNjRiMGFhZDdiZGVkMDhiZGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9qcGctaW1nLXBhcnRpYWwtbG9hZC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSBAQAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdl
cy9qcGctaW1nLXBhcnRpYWwtbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbWFn
ZXMvanBnLWltZy1wYXJ0aWFsLWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzljMTk3ZGQwNGI0ZDMx
MTc0MjIwMDlkMDViNDMyZjI0Y2JiOTgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9pbWFnZXMvanBnLWltZy1wYXJ0aWFsLWxvYWQuaHRtbApAQCAtMCwwICsxLDMw
IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKK30KKworZnVuY3Rpb24gY2hlY2tXaWR0aCgpCit7CisgICAgdmFyIGltYWdlID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImltYWdlIik7CisgICAgaWYgKGltYWdlLndpZHRoID09
IDI1NiAmJiB3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisKKyAgICBzZXRUaW1lb3V0KGNoZWNrV2lkdGgsIDEpOworfQorCitmdW5jdGlvbiBydW5U
ZXN0KCkKK3sKKyAgICB2YXIgaW1hZ2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiaW1hZ2Ui
KTsKKyAgICBpbWFnZS5zcmMgPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwL3Jlc291cmNlcy9sb2Fk
LWFuZC1zdGFsbC5waHA/bmFtZT0uLi8uLi8uLi9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvZ3JlZW4t
MjU2eDI1Ni5qcGcmbWltZVR5cGU9aW1hZ2UlMkZqcGVnJnN0YWxsQXQ9MTAyNSZzdGFsbEZvcj02
MCI7CisKKyAgICBzZXRUaW1lb3V0KGNoZWNrV2lkdGgsIDEpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDEpOyIgc3R5bGU9ImJh
Y2tncm91bmQtY29sb3I6IHllbGxvdzsiPgorPGltZyBpZD0iaW1hZ2UiIHN0eWxlPSJiYWNrZ3Jv
dW5kLWNvbG9yOiBibHVlOyI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9sb2FkLWFuZC1zdGFsbC5waHAgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9sb2FkLWFuZC1zdGFsbC5waHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDUz
MDQ4MWY0NzE4OWUyN2FmZTU2MWJjMzBiMDBiMTVkZWQyNTM2NQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2xvYWQtYW5kLXN0YWxsLnBocApAQCAt
MCwwICsxLDM3IEBACis8P3BocAorJG5hbWUgPSAkX0dFVFsnbmFtZSddOworJHN0YWxsQXQgPSAk
X0dFVFsnc3RhbGxBdCddOworJHN0YWxsRm9yID0gJF9HRVRbJ3N0YWxsRm9yJ107CiskbWltZVR5
cGUgPSAkX0dFVFsnbWltZVR5cGUnXTsKKworJGZpbGUgPSBmb3BlbigkbmFtZSwgInJiIik7Citp
ZiAoISRmaWxlKQorICAgIGRpZSgiQ2Fubm90IG9wZW4gZmlsZS4iKTsKKworaGVhZGVyKCJDb250
ZW50LVR5cGU6ICIgLiAkbWltZVR5cGUpOworaGVhZGVyKCJDb250ZW50LUxlbmd0aDogIiAuIGZp
bGVzaXplKCRuYW1lKSk7CisKK2lmIChpc3NldCgkc3RhbGxBdCkgJiYgaXNzZXQoJHN0YWxsRm9y
KSkgeworICAgICRzdGFsbEF0ID0gKGludCkkc3RhbGxBdDsKKyAgICAkc3RhbGxGb3IgPSAoaW50
KSRzdGFsbEZvcjsKKyAgICBpZiAoJHN0YWxsQXQgPiBmaWxlc2l6ZSgkbmFtZSkpCisgICAgICAg
IGRpZSgiSW5jb3JyZWN0IHZhbHVlIGZvciBzdGFsbEF0LiIpOworCisgICAgd2hpbGUgKCR3cml0
dGVuIDwgJHN0YWxsQXQpIHsKKyAgICAgICAgJHdyaXRlID0gMTAyNDsKKyAgICAgICAgaWYgKCR3
cml0ZSA+ICRzdGFsbEF0IC0gJHdyaXR0ZW4pCisgICAgICAgICAgICAkd3JpdGUgPSAkc3RhbGxB
dCAtICR3cml0dGVuOworCisgICAgICAgIGVjaG8oZnJlYWQoJGZpbGUsICR3cml0ZSkpOworICAg
ICAgICAkd3JpdHRlbiArPSAkd3JpdGU7CisgICAgICAgIGZsdXNoKCk7CisgICAgICAgIG9iX2Zs
dXNoKCk7CisgICAgfQorICAgIHNsZWVwKCRzdGFsbEZvcik7CisgICAgZWNobyhmcmVhZCgkZmls
ZSwgZmlsZXNpemUoJG5hbWUpIC0gJHN0YWxsQXQpKTsKK30gZWxzZSB7CisgICAgZWNobyhmcmVh
ZCgkZmlsZSwgZmlsZXNpemUoJG5hbWUpKSk7Cit9CisKK2ZjbG9zZSgkZmlsZSk7Cis/Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>