<?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>182277</bug_id>
          
          <creation_ts>2018-01-29 20:46:00 -0800</creation_ts>
          <short_desc>BitmapImage::drawPattern() may not draw a complete frame even after all the data is received</short_desc>
          <delta_ts>2018-01-31 15:23:41 -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>Images</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1394415</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-01-29 20:46:00 -0800</bug_when>
    <thetext>This may happen if the same image is not drawn synchronously through BitmapImage::draw(). The member BitmapImage::m_currentFrameDecodingStatus was added to control when a decoded frame can be destroyed. For asynchronous image decoding, we may want to keep the incomplete decoded frame till the more complete frame finishes decoding so we have something to paint. For synchronous image drawing, we know we have to destroy the incomplete decoded frame because we are going to generate a new one.

The BitmapImage::drawPattern() asks for a decoded frame if it is not cached and then draws it by calling GraphicsContext::drawPattern(). We need to destroy the incomplete decoded frames before trying to draw it as a pattern.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394416</commentid>
    <comment_count>1</comment_count>
      <attachid>332626</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-01-29 20:48:36 -0800</bug_when>
    <thetext>Created attachment 332626
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394417</commentid>
    <comment_count>2</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-01-29 20:50:06 -0800</bug_when>
    <thetext>&lt;rdar://problem/34588529&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394696</commentid>
    <comment_count>3</comment_count>
      <attachid>332626</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-01-30 13:11:09 -0800</bug_when>
    <thetext>Comment on attachment 332626
Patch

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

Needs a test case.

&gt; Source/WebCore/platform/graphics/Image.cpp:-116
&gt; -void Image::drawPattern(GraphicsContext&amp; ctxt, const FloatRect&amp; destRect, const FloatRect&amp; tileRect, const AffineTransform&amp; patternTransform,
&gt; -    const FloatPoint&amp; phase, const FloatSize&amp; spacing, CompositeOperator op, BlendMode blendMode)
&gt; -{
&gt; -    if (!nativeImageForCurrentFrame())
&gt; -        return;
&gt; -
&gt; -    ctxt.drawPattern(*this, destRect, tileRect, patternTransform, phase, spacing, op, blendMode);
&gt; -
&gt; -    if (imageObserver())
&gt; -        imageObserver()-&gt;didDraw(*this);
&gt; -}

Changelog doesn&apos;t say why this was removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395058</commentid>
    <comment_count>4</comment_count>
      <attachid>332780</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-01-31 10:44:05 -0800</bug_when>
    <thetext>Created attachment 332780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395059</commentid>
    <comment_count>5</comment_count>
      <attachid>332626</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-01-31 10:49:11 -0800</bug_when>
    <thetext>Comment on attachment 332626
Patch

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

A layout test was added to the new patch.

&gt;&gt; Source/WebCore/platform/graphics/Image.cpp:-116
&gt;&gt; -}
&gt; 
&gt; Changelog doesn&apos;t say why this was removed.

Image::drawPattern() was only called from BitmapImage(). When I moved this code to BitmapImage::drawPattern() nothing was calling this function.

To make the patch smaller and clearer, I have reverted this change back and I kept BitmapImage::drawPattern() call Image::drawPattern(). I can do this cleanup later in separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395061</commentid>
    <comment_count>6</comment_count>
      <attachid>332781</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-01-31 10:52:21 -0800</bug_when>
    <thetext>Created attachment 332781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395068</commentid>
    <comment_count>7</comment_count>
      <attachid>332781</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-01-31 11:08:42 -0800</bug_when>
    <thetext>Comment on attachment 332781
Patch

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

&gt; Source/WebCore/loader/cache/CachedImage.h:183
&gt; +    bool m_deferUpdateImageDataEnabledForTesting { true };

It seems wrong for this to default to true.

&gt; Source/WebCore/platform/graphics/BitmapImage.cpp:293
&gt;      if (!ctxt.drawLuminanceMask()) {

Does the ctxt.drawLuminanceMask() code path also work correctly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395087</commentid>
    <comment_count>8</comment_count>
      <attachid>332783</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-01-31 11:27:03 -0800</bug_when>
    <thetext>Created attachment 332783
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395090</commentid>
    <comment_count>9</comment_count>
      <attachid>332781</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-01-31 11:31:01 -0800</bug_when>
    <thetext>Comment on attachment 332781
Patch

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

&gt;&gt; Source/WebCore/loader/cache/CachedImage.h:183
&gt;&gt; +    bool m_deferUpdateImageDataEnabledForTesting { true };
&gt; 
&gt; It seems wrong for this to default to true.

I flipped the meaning of the member and its initial value. The new name is m_forceUpdateImageDataEnabledForTesting.

&gt;&gt; Source/WebCore/platform/graphics/BitmapImage.cpp:293
&gt;&gt;      if (!ctxt.drawLuminanceMask()) {
&gt; 
&gt; Does the ctxt.drawLuminanceMask() code path also work correctly?

In theory yes because BitmapImage::draw() will be called to draw the image synchronous into the ImageBuffer context where the incomplete decoded frame will be thrown away correctly. However I could not verify that since max-mode: luminance; is not supported in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395105</commentid>
    <comment_count>10</comment_count>
      <attachid>332781</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2018-01-31 12:00:36 -0800</bug_when>
    <thetext>Comment on attachment 332781
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/BitmapImage.cpp:293
&gt;&gt;&gt;      if (!ctxt.drawLuminanceMask()) {
&gt;&gt; 
&gt;&gt; Does the ctxt.drawLuminanceMask() code path also work correctly?
&gt; 
&gt; In theory yes because BitmapImage::draw() will be called to draw the image synchronous into the ImageBuffer context where the incomplete decoded frame will be thrown away correctly. However I could not verify that since max-mode: luminance; is not supported in WebKit.

... mask-mode: luminance; is not supported in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395187</commentid>
    <comment_count>11</comment_count>
      <attachid>332783</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-31 15:23:39 -0800</bug_when>
    <thetext>Comment on attachment 332783
Patch

Clearing flags on attachment: 332783

Committed r227936: &lt;https://trac.webkit.org/changeset/227936&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395188</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-31 15:23:41 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332626</attachid>
            <date>2018-01-29 20:48:36 -0800</date>
            <delta_ts>2018-01-31 10:44:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182277-20180129204836.patch</filename>
            <type>text/plain</type>
            <size>23594</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNzc3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDE4LTAxLTI5ICBTYWlkIEFi
b3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQml0bWFwSW1h
Z2U6OmRyYXdQYXR0ZXJuKCkgbWF5IG5vdCBkcmF3IGEgY29tcGxldGUgZnJhbWUgZXZlbiBhZnRl
ciBhbGwgdGhlIGRhdGEgaXMgcmVjZWl2ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE4MjI3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEJpdG1hcEltYWdlOjpkcmF3UGF0dGVybigpIG5lZWRzIHRvIGRl
c3Ryb3kgdGhlIGluY29tcGxldGUgZGVjb2RlZCBmcmFtZQorICAgICAgICBiZWZvcmUgdHJ5aW5n
IHRvIGRyYXcgaXQgYXMgYSBwYXR0ZXJuLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Qml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Qml0bWFwSW1hZ2U6OmRyYXdQYXR0
ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybik6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HZW5lcmF0ZWRJbWFnZS5oOgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhZGll
bnRJbWFnZTo6ZHJhd1BhdHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0dyYWRp
ZW50SW1hZ2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbWFnZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhd1BhdHRlcm4pOiBEZWxldGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ltYWdlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbWFnZTo6ZHJhd1Bh
dHRlcm4pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJ
bWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRy
YXdQYXR0ZXJuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJh
dGVkSW1hZ2UuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U1ZHSW1hZ2U6OmRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKToKKyAgICAgICAg
KiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaDoKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1h
Z2VGb3JDb250YWluZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHSW1hZ2VGb3JDb250YWlu
ZXI6OmRyYXdQYXR0ZXJuKToKKyAgICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250
YWluZXIuaDoKKwogMjAxOC0wMS0yOSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CiAKICAgICAgICAgQ2FjaGUgQVBJIHNob3VsZCBtYWtlIHN1cmUgdG8gcmVzb2x2ZSBjYWNoZXMu
b3BlbiBwcm9taXNlcyBpbiB0aGUgc2FtZSBvcmRlciBhcyBjYWxsZWQKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAJKHJldmlzaW9u
IDIyNzY4NSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg1LDIwICsyODUsMzMgQEAgSW1hZ2VEcmF3UmVzdWx0
IEJpdG1hcEltYWdlOjpkcmF3KEdyYXBoaQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXZvaWQg
Qml0bWFwSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxv
YXRSZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiB0aWxlUmVjdCwgY29uc3QgQWZmaW5l
VHJhbnNmb3JtJiB0cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9h
dFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIG9wLCBCbGVuZE1vZGUgYmxlbmRNb2Rl
KQorSW1hZ2VEcmF3UmVzdWx0IEJpdG1hcEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGljc0NvbnRl
eHQmIGN0eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgdGls
ZVJlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgdHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50
JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBvcCwg
QmxlbmRNb2RlIGJsZW5kTW9kZSkKIHsKICAgICBpZiAodGlsZVJlY3QuaXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7
CiAKICAgICBpZiAoIWN0eHQuZHJhd0x1bWluYW5jZU1hc2soKSkgewotICAgICAgICBJbWFnZTo6
ZHJhd1BhdHRlcm4oY3R4dCwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNlLCBz
cGFjaW5nLCBvcCwgYmxlbmRNb2RlKTsKLSAgICAgICAgcmV0dXJuOworICAgICAgICAvLyBJZiBu
ZXcgZGF0YSBpcyByZWNlaXZlZCwgdGhlIGN1cnJlbnQgaW5jb21wbGV0ZSBkZWNvZGVkIGZyYW1l
IGhhcyB0byBiZSBkZXN0cm95ZWQuCisgICAgICAgIGlmIChtX2N1cnJlbnRGcmFtZURlY29kaW5n
U3RhdHVzID09IERlY29kaW5nU3RhdHVzOjpJbnZhbGlkKQorICAgICAgICAgICAgbV9zb3VyY2Ut
PmRlc3Ryb3lJbmNvbXBsZXRlRGVjb2RlZERhdGEoKTsKKworICAgICAgICBpZiAoIW5hdGl2ZUlt
YWdlRm9yQ3VycmVudEZyYW1lKCkpCisgICAgICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0
OjpEaWROb3RoaW5nOworCisgICAgICAgIG1fY3VycmVudEZyYW1lRGVjb2RpbmdTdGF0dXMgPSBm
cmFtZURlY29kaW5nU3RhdHVzQXRJbmRleChtX2N1cnJlbnRGcmFtZSk7CisKKyAgICAgICAgY3R4
dC5kcmF3UGF0dGVybigqdGhpcywgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zvcm0sIHBoYXNl
LCBzcGFjaW5nLCBvcCwgYmxlbmRNb2RlKTsKKworICAgICAgICBpZiAoaW1hZ2VPYnNlcnZlcigp
KQorICAgICAgICAgICAgaW1hZ2VPYnNlcnZlcigpLT5kaWREcmF3KCp0aGlzKTsKKworICAgICAg
ICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWREcmF3OwogICAgIH0KIAogICAgIGlmICghbV9j
YWNoZWRJbWFnZSkgewogICAgICAgICBhdXRvIGJ1ZmZlciA9IEltYWdlQnVmZmVyOjpjcmVhdGVD
b21wYXRpYmxlQnVmZmVyKGV4cGFuZGVkSW50U2l6ZSh0aWxlUmVjdC5zaXplKCkpLCBDb2xvclNw
YWNlU1JHQiwgY3R4dCk7CiAgICAgICAgIGlmICghYnVmZmVyKQotICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKIAogICAg
ICAgICBJbWFnZU9ic2VydmVyKiBvYnNlcnZlciA9IGltYWdlT2JzZXJ2ZXIoKTsKIApAQCAtMzEw
LDEzICszMjMsMTMgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDbwog
ICAgICAgICBzZXRJbWFnZU9ic2VydmVyKG9ic2VydmVyKTsKICAgICAgICAgYnVmZmVyLT5jb252
ZXJ0VG9MdW1pbmFuY2VNYXNrKCk7CiAKLSAgICAgICAgbV9jYWNoZWRJbWFnZSA9IGJ1ZmZlci0+
Y29weUltYWdlKERvbnRDb3B5QmFja2luZ1N0b3JlLCBQcmVzZXJ2ZVJlc29sdXRpb246Olllcyk7
CisgICAgICAgIG1fY2FjaGVkSW1hZ2UgPSBzdGF0aWNfcG9pbnRlcl9jYXN0PEJpdG1hcEltYWdl
PihidWZmZXItPmNvcHlJbWFnZShEb250Q29weUJhY2tpbmdTdG9yZSwgUHJlc2VydmVSZXNvbHV0
aW9uOjpZZXMpKTsKICAgICAgICAgaWYgKCFtX2NhY2hlZEltYWdlKQotICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90aGluZzsKICAg
ICB9CiAKICAgICBjdHh0LnNldERyYXdMdW1pbmFuY2VNYXNrKGZhbHNlKTsKLSAgICBtX2NhY2hl
ZEltYWdlLT5kcmF3UGF0dGVybihjdHh0LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwg
cGhhc2UsIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOworICAgIHJldHVybiBtX2NhY2hlZEltYWdl
LT5kcmF3UGF0dGVybihjdHh0LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwgcGhhc2Us
IHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOwogfQogCiBib29sIEJpdG1hcEltYWdlOjpzaG91bGRB
bmltYXRlKCkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Jp
dG1hcEltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvQml0bWFwSW1hZ2UuaAkocmV2aXNpb24gMjI3Njg1KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTU4LDcgKzE1
OCw3IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YUlmTmVjZXNzYXJ5
KGJvb2wgZGVzdHJveUFsbCA9IHRydWUpOwogCiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3Qm
IHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1h
Z2VPcmllbnRhdGlvbkRlc2NyaXB0aW9uKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJu
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3Np
dGVPcGVyYXRvciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlTm9ybWFsKSBvdmVycmlkZTsKKyAgICBJ
bWFnZURyYXdSZXN1bHQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBG
bG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVuZE1v
ZGVOb3JtYWwpIG92ZXJyaWRlOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICB2b2lkIGRyYXdGcmFt
ZU1hdGNoaW5nU291cmNlU2l6ZShHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRz
dFJlY3QsIGNvbnN0IEludFNpemUmIHNyY1NpemUsIENvbXBvc2l0ZU9wZXJhdG9yKSBvdmVycmlk
ZTsKICNlbmRpZgpAQCAtMjQ2LDcgKzI0Niw3IEBAIHByaXZhdGU6CiAjaWYgVVNFKENHKQogICAg
IG11dGFibGUgUmV0YWluUHRyPENGRGF0YVJlZj4gbV90aWZmUmVwOyAvLyBDYWNoZWQgVElGRiBy
ZXAgZm9yIGFsbCB0aGUgZnJhbWVzLiBPbmx5IGJ1aWx0IGxhemlseSBpZiBzb21lb25lIHF1ZXJp
ZXMgZm9yIG9uZS4KICNlbmRpZgotICAgIFJlZlB0cjxJbWFnZT4gbV9jYWNoZWRJbWFnZTsKKyAg
ICBSZWZQdHI8Qml0bWFwSW1hZ2U+IG1fY2FjaGVkSW1hZ2U7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2Zh
ZGVHZW5lcmF0ZWRJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuY3BwCShyZXZpc2lvbiAyMjc2ODUp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Dcm9zc2ZhZGVHZW5lcmF0ZWRJ
bWFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwMCwxMSArMTAwLDExIEBAIEltYWdlRHJhd1Jl
c3VsdCBDcm9zc2ZhZGVHZW5lcmF0ZWRJbWFnZToKICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0
OjpEaWREcmF3OwogfQogCi12b2lkIENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVy
bihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29u
c3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFu
c2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcs
IENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQorSW1h
Z2VEcmF3UmVzdWx0IENyb3NzZmFkZUdlbmVyYXRlZEltYWdlOjpkcmF3UGF0dGVybihHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRS
ZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0
ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQogewogICAgIHN0ZDo6
dW5pcXVlX3B0cjxJbWFnZUJ1ZmZlcj4gaW1hZ2VCdWZmZXIgPSBJbWFnZUJ1ZmZlcjo6Y3JlYXRl
KHNpemUoKSwgY29udGV4dC5yZW5kZXJpbmdNb2RlKCkpOwogICAgIGlmICghaW1hZ2VCdWZmZXIp
Ci0gICAgICAgIHJldHVybjsKKyAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkTm90
aGluZzsKIAogICAgIC8vIEZpbGwgd2l0aCB0aGUgY3Jvc3MtZmFkZWQgaW1hZ2UuCiAgICAgR3Jh
cGhpY3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQgPSBpbWFnZUJ1ZmZlci0+Y29udGV4dCgpOwpA
QCAtMTEyLDYgKzExMiw3IEBAIHZvaWQgQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0
ZXIKIAogICAgIC8vIFRpbGUgdGhlIGltYWdlIGJ1ZmZlciBpbnRvIHRoZSBjb250ZXh0LgogICAg
IGltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0LCBzcmNSZWN0LCBwYXR0
ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgY29tcG9zaXRlT3AsIGJsZW5kTW9kZSk7Cisg
ICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkRHJhdzsKIH0KIAogdm9pZCBDcm9zc2ZhZGVH
ZW5lcmF0ZWRJbWFnZTo6ZHVtcChUZXh0U3RyZWFtJiB0cykgY29uc3QKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Nyb3NzZmFkZUdlbmVyYXRlZEltYWdlLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJh
dGVkSW1hZ2UuaAkocmV2aXNpb24gMjI3Njg1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ3Jvc3NmYWRlR2VuZXJhdGVkSW1hZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDgs
NyArNDgsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBJbWFnZURyYXdSZXN1bHQgZHJh
dyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2Rl
LCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pIG92ZXJyaWRlOwotICAgIHZvaWQgZHJhd1Bh
dHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBG
bG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9y
bSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29t
cG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgb3ZlcnJpZGU7CisgICAgSW1hZ2VEcmF3UmVzdWx0
IGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5U
cmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNp
bmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpIG92ZXJyaWRlOwogCiAgICAgQ3Jvc3Nm
YWRlR2VuZXJhdGVkSW1hZ2UoSW1hZ2UmIGZyb21JbWFnZSwgSW1hZ2UmIHRvSW1hZ2UsIGZsb2F0
IHBlcmNlbnRhZ2UsIGNvbnN0IEZsb2F0U2l6ZSYgY3Jvc3NmYWRlU2l6ZSwgY29uc3QgRmxvYXRT
aXplJik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dlbmVyYXRl
ZEltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R2VuZXJhdGVkSW1hZ2UuaAkocmV2aXNpb24gMjI3Njg1KQorKysgU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvR2VuZXJhdGVkSW1hZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNyAr
NDcsNyBAQCBwdWJsaWM6CiAKIHByb3RlY3RlZDoKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhH
cmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVj
dCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJ
bWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pIG92ZXJyaWRlID0gMDsKLSAgICB2b2lkIGRyYXdQ
YXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLAorICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0
IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwKICAgICAgICAgY29uc3QgRmxvYXRQ
b2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3Is
IEJsZW5kTW9kZSkgb3ZlcnJpZGUgPSAwOwogCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlz
IHRvIGJlIGxlc3MgY29uc2VydmF0aXZlLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhZGllbnRJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJbWFnZS5jcHAJKHJldmlzaW9uIDIyNzY4NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYWRpZW50SW1hZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01Miw3ICs1Miw3IEBAIEltYWdlRHJhd1Jlc3VsdCBHcmFkaWVudEltYWdl
OjpkcmF3KEdyYXAKICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWREcmF3OwogfQogCi12
b2lkIEdyYWRpZW50SW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRl
eHQsIGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwg
Y29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAorSW1hZ2VEcmF3UmVzdWx0
IEdyYWRpZW50SW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29udGV4dCYgZGVzdENvbnRleHQs
IGNvbnN0IEZsb2F0UmVjdCYgZGVzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29u
c3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLAogICAgIGNvbnN0IEZsb2F0UG9p
bnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yIGNv
bXBvc2l0ZU9wLCBCbGVuZE1vZGUgYmxlbmRNb2RlKQogewogICAgIC8vIEFsbG93IHRoZSBnZW5l
cmF0b3IgdG8gcHJvdmlkZSB2aXN1YWxseS1lcXVpdmFsZW50IHRpbGluZyBwYXJhbWV0ZXJzIGZv
ciBiZXR0ZXIgcGVyZm9ybWFuY2UuCkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgR3JhZGllbnRJbWFn
ZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3MKICAgICBpZiAoIW1fY2FjaGVkSW1hZ2VCdWZmZXIgfHwg
bV9jYWNoZWRHZW5lcmF0b3JIYXNoICE9IGdlbmVyYXRvckhhc2ggfHwgbV9jYWNoZWRBZGp1c3Rl
ZFNpemUgIT0gYWRqdXN0ZWRTaXplIHx8ICFtX2NhY2hlZEltYWdlQnVmZmVyLT5pc0NvbXBhdGli
bGVXaXRoQ29udGV4dChkZXN0Q29udGV4dCkpIHsKICAgICAgICAgbV9jYWNoZWRJbWFnZUJ1ZmZl
ciA9IEltYWdlQnVmZmVyOjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGFkanVzdGVkU2l6ZSwgQ29s
b3JTcGFjZVNSR0IsIGRlc3RDb250ZXh0KTsKICAgICAgICAgaWYgKCFtX2NhY2hlZEltYWdlQnVm
ZmVyKQotICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIEltYWdlRHJhd1Jl
c3VsdDo6RGlkTm90aGluZzsKIAogICAgICAgICAvLyBGaWxsIHdpdGggdGhlIGdlbmVyYXRlZCBp
bWFnZS4KICAgICAgICAgbV9jYWNoZWRJbWFnZUJ1ZmZlci0+Y29udGV4dCgpLmZpbGxSZWN0KEZs
b2F0UmVjdChGbG9hdFBvaW50KCksIGFkanVzdGVkU2l6ZSksIG1fZ3JhZGllbnQuZ2V0KCkpOwpA
QCAtODksNiArODksNyBAQCB2b2lkIEdyYWRpZW50SW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBoaWNz
CiAKICAgICAvLyBUaWxlIHRoZSBpbWFnZSBidWZmZXIgaW50byB0aGUgY29udGV4dC4KICAgICBt
X2NhY2hlZEltYWdlQnVmZmVyLT5kcmF3UGF0dGVybihkZXN0Q29udGV4dCwgZGVzdFJlY3QsIGFk
anVzdGVkU3JjUmVjdCwgYWRqdXN0ZWRQYXR0ZXJuQ1RNLCBwaGFzZSwgc3BhY2luZywgY29tcG9z
aXRlT3AsIGJsZW5kTW9kZSk7CisgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3VsdDo6RGlkRHJhdzsK
IH0KIAogdm9pZCBHcmFkaWVudEltYWdlOjpkdW1wKFdURjo6VGV4dFN0cmVhbSYgdHMpIGNvbnN0
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFkaWVudEltYWdlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhZGllbnRJ
bWFnZS5oCShyZXZpc2lvbiAyMjc2ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9HcmFkaWVudEltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDcgKzQ3LDcgQEAgcHJp
dmF0ZToKICAgICBHcmFkaWVudEltYWdlKEdyYWRpZW50JiwgY29uc3QgRmxvYXRTaXplJik7CiAK
ICAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJl
Y3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgQ29tcG9zaXRlT3BlcmF0b3Is
IEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVudGF0aW9uRGVzY3JpcHRpb24pIGZp
bmFsOwotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRS
ZWN0JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFu
c2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBG
bG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUpIGZpbmFsOwor
ICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3UGF0dGVybihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBG
bG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmlu
ZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNv
bnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgZmlu
YWw7CiAgICAgYm9vbCBpc0dyYWRpZW50SW1hZ2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CiAgICAgdm9pZCBkdW1wKFdURjo6VGV4dFN0cmVhbSYpIGNvbnN0IGZpbmFsOwogICAgIApJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmNwcAkocmV2aXNp
b24gMjI3Njg1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDMsMTggKzEwMyw2IEBAIHZvaWQgSW1hZ2U6OmZpbGxXaXRo
U29saWRDb2xvcihHcmFwaGljc0MKICAgICBjdHh0LnNldENvbXBvc2l0ZU9wZXJhdGlvbihwcmV2
aW91c09wZXJhdG9yKTsKIH0KIAotdm9pZCBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250
ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRp
bGVSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sCi0gICAgY29u
c3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRl
T3BlcmF0b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCi17Ci0gICAgaWYgKCFuYXRpdmVJbWFn
ZUZvckN1cnJlbnRGcmFtZSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBjdHh0LmRyYXdQYXR0
ZXJuKCp0aGlzLCBkZXN0UmVjdCwgdGlsZVJlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBz
cGFjaW5nLCBvcCwgYmxlbmRNb2RlKTsKLQotICAgIGlmIChpbWFnZU9ic2VydmVyKCkpCi0gICAg
ICAgIGltYWdlT2JzZXJ2ZXIoKS0+ZGlkRHJhdygqdGhpcyk7Ci19Ci0KIEltYWdlRHJhd1Jlc3Vs
dCBJbWFnZTo6ZHJhd1RpbGVkKEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0
JiBkZXN0UmVjdCwgY29uc3QgRmxvYXRQb2ludCYgc3JjUG9pbnQsIGNvbnN0IEZsb2F0U2l6ZSYg
c2NhbGVkVGlsZVNpemUsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9zaXRlT3BlcmF0
b3Igb3AsIEJsZW5kTW9kZSBibGVuZE1vZGUsIERlY29kaW5nTW9kZSBkZWNvZGluZ01vZGUpCiB7
CiAgICAgQ29sb3IgY29sb3IgPSBzaW5nbGVQaXhlbFNvbGlkQ29sb3IoKTsKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ltYWdlLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAkocmV2aXNpb24gMjI3Njg1KQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW1hZ2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMTc1LDggKzE3NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdka1BpeGJ1ZiogZ2V0R2Rr
UGl4YnVmKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogI2VuZGlmCiAKLSAgICB2aXJ0dWFsIHZvaWQg
ZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwg
Y29uc3QgRmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5U
cmFuc2Zvcm0sCi0gICAgICAgIGNvbnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNp
emUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUgPSBCbGVuZE1vZGVOb3Jt
YWwpOworICAgIHZpcnR1YWwgSW1hZ2VEcmF3UmVzdWx0IGRyYXdQYXR0ZXJuKEdyYXBoaWNzQ29u
dGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEFmZmluZVRy
YW5zZm9ybSYsIGNvbnN0IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFNpemUmLCBDb21wb3NpdGVP
cGVyYXRvciwgQmxlbmRNb2RlID0gQmxlbmRNb2RlTm9ybWFsKSB7IHJldHVybiBJbWFnZURyYXdS
ZXN1bHQ6OkRpZE5vdGhpbmc7IH0KIAogI2lmICFBU1NFUlRfRElTQUJMRUQKICAgICB2aXJ0dWFs
IGJvb2wgbm90U29saWRDb2xvcigpIHsgcmV0dXJuIHRydWU7IH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL05hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmFtZWRJbWFnZUdlbmVy
YXRlZEltYWdlLmNwcAkocmV2aXNpb24gMjI3Njg1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTmFtZWRJbWFnZUdlbmVyYXRlZEltYWdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNjMsMTggKzYzLDE5IEBAIEltYWdlRHJhd1Jlc3VsdCBOYW1lZEltYWdlR2VuZXJhdGVkSW1h
Z2UKICNlbmRpZgogfQogCi12b2lkIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRl
cm4oR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNv
bnN0IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJh
bnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5n
LCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgQmxlbmRNb2RlIGJsZW5kTW9kZSkKK0lt
YWdlRHJhd1Jlc3VsdCBOYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2U6OmRyYXdQYXR0ZXJuKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYgcGF0dGVyblRyYW5zZm9ybSwg
Y29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2luZywgQ29tcG9z
aXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCiB7CiAjaWYgVVNF
KE5FV19USEVNRSkKICAgICBhdXRvIGltYWdlQnVmZmVyID0gSW1hZ2VCdWZmZXI6OmNyZWF0ZUNv
bXBhdGlibGVCdWZmZXIoc2l6ZSgpLCBjb250ZXh0KTsKICAgICBpZiAoIWltYWdlQnVmZmVyKQot
ICAgICAgICByZXR1cm47CisgICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhp
bmc7CiAKICAgICBHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4dCA9IGltYWdlQnVmZmVy
LT5jb250ZXh0KCk7CiAgICAgVGhlbWU6OnNpbmdsZXRvbigpLmRyYXdOYW1lZEltYWdlKG1fbmFt
ZSwgZ3JhcGhpY3NDb250ZXh0LCBGbG9hdFJlY3QoMCwgMCwgc2l6ZSgpLndpZHRoKCksIHNpemUo
KS5oZWlnaHQoKSkpOwogCiAgICAgLy8gVGlsZSB0aGUgaW1hZ2UgYnVmZmVyIGludG8gdGhlIGNv
bnRleHQuCiAgICAgaW1hZ2VCdWZmZXItPmRyYXdQYXR0ZXJuKGNvbnRleHQsIGRzdFJlY3QsIHNy
Y1JlY3QsIHBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBjb21wb3NpdGVPcCwgYmxl
bmRNb2RlKTsKKyAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0OjpEaWREcmF3OwogI2Vsc2UKICAg
ICBVTlVTRURfUEFSQU0oY29udGV4dCk7CiAgICAgVU5VU0VEX1BBUkFNKHNyY1JlY3QpOwpAQCAt
ODQsNiArODUsNyBAQCB2b2lkIE5hbWVkSW1hZ2VHZW5lcmF0ZWRJbWFnZTo6ZHJhd1BhdHRlCiAg
ICAgVU5VU0VEX1BBUkFNKGRzdFJlY3QpOwogICAgIFVOVVNFRF9QQVJBTShjb21wb3NpdGVPcCk7
CiAgICAgVU5VU0VEX1BBUkFNKGJsZW5kTW9kZSk7CisgICAgcmV0dXJuIEltYWdlRHJhd1Jlc3Vs
dDo6RGlkTm90aGluZzsKICNlbmRpZgogfQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9OYW1lZEltYWdlR2VuZXJhdGVkSW1hZ2UuaAko
cmV2aXNpb24gMjI3Njg1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTmFt
ZWRJbWFnZUdlbmVyYXRlZEltYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDcgKzQwLDcgQEAg
cHVibGljOgogCiBwcm90ZWN0ZWQ6CiAgICAgSW1hZ2VEcmF3UmVzdWx0IGRyYXcoR3JhcGhpY3ND
b250ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1Jl
Y3QsIENvbXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmll
bnRhdGlvbkRlc2NyaXB0aW9uKSBvdmVycmlkZTsKLSAgICB2b2lkIGRyYXdQYXR0ZXJuKEdyYXBo
aWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3QgRmxvYXRSZWN0JiBz
cmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zvcm0sIGNvbnN0IEZs
b2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsIENvbXBvc2l0ZU9wZXJh
dG9yLCBCbGVuZE1vZGUpIG92ZXJyaWRlOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3UGF0dGVy
bihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0IEZsb2F0
UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBj
b25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLCBDb21wb3Np
dGVPcGVyYXRvciwgQmxlbmRNb2RlKSBvdmVycmlkZTsKIAogICAgIE5hbWVkSW1hZ2VHZW5lcmF0
ZWRJbWFnZShTdHJpbmcgbmFtZSwgY29uc3QgRmxvYXRTaXplJik7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAkocmV2aXNpb24gMjI3Njg1KQorKysgU291
cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NWR0ltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjQ0LDcgKzI0NCw3IEBAIE5hdGl2ZUltYWdlUHRyIFNWR0ltYWdlOjpuYXRpdmVJbWFnZShjb24K
IH0KICNlbmRpZgogCi12b2lkIFNWR0ltYWdlOjpkcmF3UGF0dGVybkZvckNvbnRhaW5lcihHcmFw
aGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0U2l6ZSYgY29udGFpbmVyU2l6ZSwgZmxv
YXQgY29udGFpbmVyWm9vbSwgY29uc3QgVVJMJiBpbml0aWFsRnJhZ21lbnRVUkwsIGNvbnN0IEZs
b2F0UmVjdCYgc3JjUmVjdCwKK0ltYWdlRHJhd1Jlc3VsdCBTVkdJbWFnZTo6ZHJhd1BhdHRlcm5G
b3JDb250YWluZXIoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFNpemUmIGNv
bnRhaW5lclNpemUsIGZsb2F0IGNvbnRhaW5lclpvb20sIGNvbnN0IFVSTCYgaW5pdGlhbEZyYWdt
ZW50VVJMLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsCiAgICAgY29uc3QgQWZmaW5lVHJhbnNm
b3JtJiBwYXR0ZXJuVHJhbnNmb3JtLCBjb25zdCBGbG9hdFBvaW50JiBwaGFzZSwgY29uc3QgRmxv
YXRTaXplJiBzcGFjaW5nLCBDb21wb3NpdGVPcGVyYXRvciBjb21wb3NpdGVPcCwgY29uc3QgRmxv
YXRSZWN0JiBkc3RSZWN0LCBCbGVuZE1vZGUgYmxlbmRNb2RlKQogewogICAgIEZsb2F0UmVjdCB6
b29tZWRDb250YWluZXJSZWN0ID0gRmxvYXRSZWN0KEZsb2F0UG9pbnQoKSwgY29udGFpbmVyU2l6
ZSk7CkBAIC0yNjEsMTQgKzI2MSwxNCBAQCB2b2lkIFNWR0ltYWdlOjpkcmF3UGF0dGVybkZvckNv
bnRhaW5lcihHCiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW1hZ2VCdWZmZXI+IGJ1ZmZlciA9IElt
YWdlQnVmZmVyOjpjcmVhdGVDb21wYXRpYmxlQnVmZmVyKGV4cGFuZGVkSW50U2l6ZShpbWFnZUJ1
ZmZlclNpemUuc2l6ZSgpKSwgMSwgQ29sb3JTcGFjZVNSR0IsIGNvbnRleHQpOwogICAgIGlmICgh
YnVmZmVyKSAvLyBGYWlsZWQgdG8gYWxsb2NhdGUgYnVmZmVyLgotICAgICAgICByZXR1cm47Cisg
ICAgICAgIHJldHVybiBJbWFnZURyYXdSZXN1bHQ6OkRpZE5vdGhpbmc7CiAgICAgZHJhd0ZvckNv
bnRhaW5lcihidWZmZXItPmNvbnRleHQoKSwgY29udGFpbmVyU2l6ZSwgY29udGFpbmVyWm9vbSwg
aW5pdGlhbEZyYWdtZW50VVJMLCBpbWFnZUJ1ZmZlclNpemUsIHpvb21lZENvbnRhaW5lclJlY3Qs
IENvbXBvc2l0ZVNvdXJjZU92ZXIsIEJsZW5kTW9kZU5vcm1hbCk7CiAgICAgaWYgKGNvbnRleHQu
ZHJhd0x1bWluYW5jZU1hc2soKSkKICAgICAgICAgYnVmZmVyLT5jb252ZXJ0VG9MdW1pbmFuY2VN
YXNrKCk7CiAKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gSW1hZ2VCdWZmZXI6OnNpbmtJbnRv
SW1hZ2UoV1RGTW92ZShidWZmZXIpLCBQcmVzZXJ2ZVJlc29sdXRpb246Olllcyk7CiAgICAgaWYg
KCFpbWFnZSkKLSAgICAgICAgcmV0dXJuOworICAgICAgICByZXR1cm4gSW1hZ2VEcmF3UmVzdWx0
OjpEaWROb3RoaW5nOwogCiAgICAgLy8gQWRqdXN0IHRoZSBzb3VyY2UgcmVjdCBhbmQgdHJhbnNm
b3JtIGR1ZSB0byB0aGUgaW1hZ2UgYnVmZmVyJ3Mgc2NhbGluZy4KICAgICBGbG9hdFJlY3Qgc2Nh
bGVkU3JjUmVjdCA9IHNyY1JlY3Q7CkBAIC0yNzcsNyArMjc3LDcgQEAgdm9pZCBTVkdJbWFnZTo6
ZHJhd1BhdHRlcm5Gb3JDb250YWluZXIoRwogICAgIHVuc2NhbGVkUGF0dGVyblRyYW5zZm9ybS5z
Y2FsZSgxIC8gaW1hZ2VCdWZmZXJTY2FsZS53aWR0aCgpLCAxIC8gaW1hZ2VCdWZmZXJTY2FsZS5o
ZWlnaHQoKSk7CiAKICAgICBjb250ZXh0LnNldERyYXdMdW1pbmFuY2VNYXNrKGZhbHNlKTsKLSAg
ICBpbWFnZS0+ZHJhd1BhdHRlcm4oY29udGV4dCwgZHN0UmVjdCwgc2NhbGVkU3JjUmVjdCwgdW5z
Y2FsZWRQYXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgY29tcG9zaXRlT3AsIGJsZW5k
TW9kZSk7CisgICAgcmV0dXJuIGltYWdlLT5kcmF3UGF0dGVybihjb250ZXh0LCBkc3RSZWN0LCBz
Y2FsZWRTcmNSZWN0LCB1bnNjYWxlZFBhdHRlcm5UcmFuc2Zvcm0sIHBoYXNlLCBzcGFjaW5nLCBj
b21wb3NpdGVPcCwgYmxlbmRNb2RlKTsKIH0KIAogSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlOjpk
cmF3KEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBkc3RSZWN0LCBj
b25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9wZXJhdG9yIGNvbXBvc2l0ZU9wLCBC
bGVuZE1vZGUgYmxlbmRNb2RlLCBEZWNvZGluZ01vZGUsIEltYWdlT3JpZW50YXRpb25EZXNjcmlw
dGlvbikKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZS5oCShyZXZpc2lv
biAyMjc2ODUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuaAkod29y
a2luZyBjb3B5KQpAQCAtOTIsNyArOTIsNyBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFNWR0lt
YWdlKEltYWdlT2JzZXJ2ZXImKTsKICAgICBJbWFnZURyYXdSZXN1bHQgZHJhdyhHcmFwaGljc0Nv
bnRleHQmLCBjb25zdCBGbG9hdFJlY3QmIGZyb21SZWN0LCBjb25zdCBGbG9hdFJlY3QmIHRvUmVj
dCwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSwgRGVjb2RpbmdNb2RlLCBJbWFnZU9yaWVu
dGF0aW9uRGVzY3JpcHRpb24pIGZpbmFsOwogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3Rm9yQ29u
dGFpbmVyKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0U2l6ZSBjb250YWluZXJTaXplLCBm
bG9hdCBjb250YWluZXJab29tLCBjb25zdCBVUkwmIGluaXRpYWxGcmFnbWVudFVSTCwgY29uc3Qg
RmxvYXRSZWN0JiBkc3RSZWN0LCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUpOwotICAgIHZvaWQgZHJhd1BhdHRlcm5Gb3JDb250YWluZXIoR3Jh
cGhpY3NDb250ZXh0JiwgY29uc3QgRmxvYXRTaXplJiBjb250YWluZXJTaXplLCBmbG9hdCBjb250
YWluZXJab29tLCBjb25zdCBVUkwmIGluaXRpYWxGcmFnbWVudFVSTCwgY29uc3QgRmxvYXRSZWN0
JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiBwaGFz
ZSwgY29uc3QgRmxvYXRTaXplJiBzcGFjaW5nLAorICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3UGF0
dGVybkZvckNvbnRhaW5lcihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFNpemUmIGNvbnRh
aW5lclNpemUsIGZsb2F0IGNvbnRhaW5lclpvb20sIGNvbnN0IFVSTCYgaW5pdGlhbEZyYWdtZW50
VVJMLCBjb25zdCBGbG9hdFJlY3QmIHNyY1JlY3QsIGNvbnN0IEFmZmluZVRyYW5zZm9ybSYsIGNv
bnN0IEZsb2F0UG9pbnQmIHBoYXNlLCBjb25zdCBGbG9hdFNpemUmIHNwYWNpbmcsCiAgICAgICAg
IENvbXBvc2l0ZU9wZXJhdG9yLCBjb25zdCBGbG9hdFJlY3QmLCBCbGVuZE1vZGUpOwogCiAgICAg
UmVmUHRyPFNWR1NWR0VsZW1lbnQ+IHJvb3RFbGVtZW50KCkgY29uc3Q7CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9zdmcvZ3JhcGhpY3MvU1ZHSW1hZ2VGb3JDb250YWluZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5jcHAJ
KHJldmlzaW9uIDIyNzY4NSkKKysrIFNvdXJjZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFn
ZUZvckNvbnRhaW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQwLDEwICs0MCwxMCBAQCBJbWFn
ZURyYXdSZXN1bHQgU1ZHSW1hZ2VGb3JDb250YWluZXI6OmRyCiAgICAgcmV0dXJuIG1faW1hZ2Ut
PmRyYXdGb3JDb250YWluZXIoY29udGV4dCwgbV9jb250YWluZXJTaXplLCBtX2NvbnRhaW5lclpv
b20sIG1faW5pdGlhbEZyYWdtZW50VVJMLCBkc3RSZWN0LCBzcmNSZWN0LCBjb21wb3NpdGVPcCwg
YmxlbmRNb2RlKTsKIH0KIAotdm9pZCBTVkdJbWFnZUZvckNvbnRhaW5lcjo6ZHJhd1BhdHRlcm4o
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFJlY3QmIGRzdFJlY3QsIGNvbnN0
IEZsb2F0UmVjdCYgc3JjUmVjdCwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBwYXR0ZXJuVHJhbnNm
b3JtLAorSW1hZ2VEcmF3UmVzdWx0IFNWR0ltYWdlRm9yQ29udGFpbmVyOjpkcmF3UGF0dGVybihH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UmVjdCYgZHN0UmVjdCwgY29uc3Qg
RmxvYXRSZWN0JiBzcmNSZWN0LCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIHBhdHRlcm5UcmFuc2Zv
cm0sCiAgICAgY29uc3QgRmxvYXRQb2ludCYgcGhhc2UsIGNvbnN0IEZsb2F0U2l6ZSYgc3BhY2lu
ZywgQ29tcG9zaXRlT3BlcmF0b3IgY29tcG9zaXRlT3AsIEJsZW5kTW9kZSBibGVuZE1vZGUpCiB7
Ci0gICAgbV9pbWFnZS0+ZHJhd1BhdHRlcm5Gb3JDb250YWluZXIoY29udGV4dCwgbV9jb250YWlu
ZXJTaXplLCBtX2NvbnRhaW5lclpvb20sIG1faW5pdGlhbEZyYWdtZW50VVJMLCBzcmNSZWN0LCBw
YXR0ZXJuVHJhbnNmb3JtLCBwaGFzZSwgc3BhY2luZywgY29tcG9zaXRlT3AsIGRzdFJlY3QsIGJs
ZW5kTW9kZSk7CisgICAgcmV0dXJuIG1faW1hZ2UtPmRyYXdQYXR0ZXJuRm9yQ29udGFpbmVyKGNv
bnRleHQsIG1fY29udGFpbmVyU2l6ZSwgbV9jb250YWluZXJab29tLCBtX2luaXRpYWxGcmFnbWVu
dFVSTCwgc3JjUmVjdCwgcGF0dGVyblRyYW5zZm9ybSwgcGhhc2UsIHNwYWNpbmcsIGNvbXBvc2l0
ZU9wLCBkc3RSZWN0LCBibGVuZE1vZGUpOwogfQogCiBOYXRpdmVJbWFnZVB0ciBTVkdJbWFnZUZv
ckNvbnRhaW5lcjo6bmF0aXZlSW1hZ2VGb3JDdXJyZW50RnJhbWUoY29uc3QgR3JhcGhpY3NDb250
ZXh0KiB0YXJnZXRDb250ZXh0KQpJbmRleDogU291cmNlL1dlYkNvcmUvc3ZnL2dyYXBoaWNzL1NW
R0ltYWdlRm9yQ29udGFpbmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL2dy
YXBoaWNzL1NWR0ltYWdlRm9yQ29udGFpbmVyLmgJKHJldmlzaW9uIDIyNzY4NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3N2Zy9ncmFwaGljcy9TVkdJbWFnZUZvckNvbnRhaW5lci5oCSh3b3JraW5nIGNv
cHkpCkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIAogICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3
KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UmVjdCYsIGNvbnN0IEZsb2F0UmVjdCYsIENv
bXBvc2l0ZU9wZXJhdG9yLCBCbGVuZE1vZGUsIERlY29kaW5nTW9kZSwgSW1hZ2VPcmllbnRhdGlv
bkRlc2NyaXB0aW9uKSBmaW5hbDsKIAotICAgIHZvaWQgZHJhd1BhdHRlcm4oR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgRmxvYXRSZWN0JiwgY29uc3QgQWZmaW5lVHJh
bnNmb3JtJiwgY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0U2l6ZSYsIENvbXBvc2l0ZU9w
ZXJhdG9yLCBCbGVuZE1vZGUpIGZpbmFsOworICAgIEltYWdlRHJhd1Jlc3VsdCBkcmF3UGF0dGVy
bihHcmFwaGljc0NvbnRleHQmLCBjb25zdCBGbG9hdFJlY3QmLCBjb25zdCBGbG9hdFJlY3QmLCBj
b25zdCBBZmZpbmVUcmFuc2Zvcm0mLCBjb25zdCBGbG9hdFBvaW50JiwgY29uc3QgRmxvYXRTaXpl
JiwgQ29tcG9zaXRlT3BlcmF0b3IsIEJsZW5kTW9kZSkgZmluYWw7CiAKICAgICAvLyBGSVhNRTog
SW1wbGVtZW50IHRoaXMgdG8gYmUgbGVzcyBjb25zZXJ2YXRpdmUuCiAgICAgYm9vbCBjdXJyZW50
RnJhbWVLbm93blRvQmVPcGFxdWUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBmYWxzZTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332780</attachid>
            <date>2018-01-31 10:44:05 -0800</date>
            <delta_ts>2018-01-31 10:52:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182277-20180131104404.patch</filename>
            <type>text/plain</type>
            <size>12305</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3ODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTRjOTY4OGE0OWVmNDg4
MTRlMjY3MzNiMDg2ZGQyOWQxODRjZmM2NC4uYTMwMWE3ZTM4ZjdlMGExZjg0OTViNmJjYzYzN2Y5
OWQ1OGI0MTAyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTAxLTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQml0bWFw
SW1hZ2U6OmRyYXdQYXR0ZXJuKCkgbWF5IG5vdCBkcmF3IGEgY29tcGxldGUgZnJhbWUgZXZlbiBh
ZnRlciBhbGwgdGhlIGRhdGEgaXMgcmVjZWl2ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjI3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEJpdG1hcEltYWdlOjpkcmF3UGF0dGVybigpIG5lZWRzIHRv
IGRlc3Ryb3kgdGhlIGluY29tcGxldGUgZGVjb2RlZCBmcmFtZQorICAgICAgICBiZWZvcmUgdHJ5
aW5nIHRvIGRyYXcgaXQgYXMgYSBwYXR0ZXJuLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMv
aW1hZ2VzL2RyYXctcGF0dGVybi1zbG93LWxvYWQtbGFyZ2UtaW1hZ2UuaHRtbAorCisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZEltYWdlOjp1cGRhdGVCdWZmZXJJbnRlcm5hbCk6IFdlIG5lZWQgdG8gZGlzYWJsZSBDYWNoZWRJ
bWFnZQorICAgICAgICBkYXRhIGJ1ZmZlcmluZyBmb3IgdGVzdGluZy4gVGhpcyBzaW11bGF0ZXMg
c2xvdyBuZXR3b3JrIHdoZXJlIGludGVydmFscworICAgICAgICBiZXR3ZWVuIGRhdGEgY2h1bmtz
IGNhbiBsYXN0IGZvciBzZWNvbmRzLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3UGF0dGVybik6IERlc3Ryb3kgdGhlIGluY29t
cGxldGUgZGVjb2RlZCBmcmFtZQorICAgICAgICBiZWZvcmUgZHJhd2luZyB0aGlzIGZyYW1lIGFz
IGEgcGF0dGVybi4gV2UgZG8gbm90IGRlc3Ryb3kgaW5jb21wbGV0ZSBkZWNvZGVkCisgICAgICAg
IGZyYW1lIG9uY2UgbmV3IGRhdGEgaXMgcmVjZWl2ZWQgYmVjYXVzZSBpdCBtYXkgYmUgZHJhd24g
YnkgYXN5bmMgaW1hZ2UKKyAgICAgICAgZHJhd2luZyB3aGlsZSB3YWl0aW5nIGZvciB0aGUgbmV3
ZXIgZnJhbWUgdG8gZmluaXNoIGRlY29kaW5nLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0RGVmZXJVcGRhdGVJbWFnZURh
dGFFbmFibGVkRm9yVGVzdGluZyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTgtMDEtMzAgIEZ1amlpIEhpcm9u
b3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgVW5pZmllZCBzb3VyY2Vz
IGZvciBGRU1vcnBob2xvZ3kuY3BwIHNlZW1zIHRvIGJyZWFrIHRoZSB3aW5kb3dzIGJ1aWxkLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKaW5kZXggNDEwMWQz
YjhlMWI4ODFjOWY0NzlkM2Y1ODQ3MjQxNGQyNDAxMWU0MC4uMWE3MmFiYTZmMWIwNDkzNWYxZjlh
MWMzZjlhYjczYWI3Njk3ZDY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkSW1hZ2UuY3BwCkBAIC00MzEsNyArNDMxLDcgQEAgdm9pZCBDYWNoZWRJbWFnZTo6dXBkYXRl
QnVmZmVySW50ZXJuYWwoU2hhcmVkQnVmZmVyJiBkYXRhKQogCiAgICAgLy8gRG9uJ3QgdXBkYXRl
IHRoZSBpbWFnZSB3aXRoIHRoZSBuZXcgYnVmZmVyIHZlcnkgb2Z0ZW4uIENoYW5naW5nIHRoZSBk
ZWNvZGVyCiAgICAgLy8gaW50ZXJuYWwgZGF0YSBhbmQgcmVwYWludGluZyB0aGUgb2JzZXJ2ZXJz
IHNvbWV0aW1lcyBhcmUgdmVyeSBleHBlbnNpdmUgb3BlcmF0aW9ucy4KLSAgICBpZiAoc2hvdWxk
RGVmZXJVcGRhdGVJbWFnZURhdGEoKSkKKyAgICBpZiAobV9kZWZlclVwZGF0ZUltYWdlRGF0YUVu
YWJsZWRGb3JUZXN0aW5nICYmIHNob3VsZERlZmVyVXBkYXRlSW1hZ2VEYXRhKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEVuY29kZWREYXRhU3RhdHVzIGVuY29kZWREYXRhU3RhdHVzID0gRW5j
b2RlZERhdGFTdGF0dXM6OlVua25vd247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRJbWFnZS5oCmluZGV4IDI2NDM0NTc2NWIzMjM2ODg1ZWNmMmY2NGY4NjlhZjc4ZWUyNTQ0Y2Qu
LmQ1MmI1YWRiMDdmMjdiZGZjMzZlZWQ1MDIwNzkwNzMyN2Q4NTBhODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oCkBAIC04Nyw2ICs4Nyw4IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgYWRkUGVuZGluZ0ltYWdlRHJhd2luZ0NsaWVudChDYWNoZWRJbWFnZUNsaWVu
dCYpOwogCisgICAgdm9pZCBzZXREZWZlclVwZGF0ZUltYWdlRGF0YUVuYWJsZWRGb3JUZXN0aW5n
KGJvb2wgZW5hYmxlZCkgeyBtX2RlZmVyVXBkYXRlSW1hZ2VEYXRhRW5hYmxlZEZvclRlc3Rpbmcg
PSAgZW5hYmxlZDsgfQorICAgIAogcHJpdmF0ZToKICAgICB2b2lkIGNsZWFyKCk7CiAKQEAgLTE3
OCw2ICsxODAsNyBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0cjxTVkdJbWFnZUNhY2hl
PiBtX3N2Z0ltYWdlQ2FjaGU7CiAgICAgYm9vbCBtX2lzTWFudWFsbHlDYWNoZWQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9zaG91bGRQYWludEJyb2tlbkltYWdlIHsgdHJ1ZSB9OworICAgIGJvb2wg
bV9kZWZlclVwZGF0ZUltYWdlRGF0YUVuYWJsZWRGb3JUZXN0aW5nIHsgdHJ1ZSB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDQ1OWVhZjNjMjA3OTQxNzE0YjE4ZjQzY2YzNzJk
YzBmZWZkYjQzNjIuLmExNGE5YmMxMmNmMmRiNzI1YWY0NmFlMGY3NDRmY2JiMDk2NjM0MjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJbWFnZS5jcHAK
QEAgLTI5MSw3ICsyOTEsMTIgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRlcm4oR3JhcGhp
Y3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LAogICAgICAgICByZXR1
cm47CiAKICAgICBpZiAoIWN0eHQuZHJhd0x1bWluYW5jZU1hc2soKSkgeworICAgICAgICAvLyBJ
ZiBuZXcgZGF0YSBpcyByZWNlaXZlZCwgdGhlIGN1cnJlbnQgaW5jb21wbGV0ZSBkZWNvZGVkIGZy
YW1lIGhhcyB0byBiZSBkZXN0cm95ZWQuCisgICAgICAgIGlmIChtX2N1cnJlbnRGcmFtZURlY29k
aW5nU3RhdHVzID09IERlY29kaW5nU3RhdHVzOjpJbnZhbGlkKQorICAgICAgICAgICAgbV9zb3Vy
Y2UtPmRlc3Ryb3lJbmNvbXBsZXRlRGVjb2RlZERhdGEoKTsKKyAgICAgICAgCiAgICAgICAgIElt
YWdlOjpkcmF3UGF0dGVybihjdHh0LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5zZm9ybSwgcGhh
c2UsIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOworICAgICAgICBtX2N1cnJlbnRGcmFtZURlY29k
aW5nU3RhdHVzID0gZnJhbWVEZWNvZGluZ1N0YXR1c0F0SW5kZXgobV9jdXJyZW50RnJhbWUpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggODk5YzkyZjU1ZTE3ZjliNTUyNDAwOTZjMWZjMTcxZTA1NGI3MTRmYy4uNDQwMjRhYTY4
MDU3YThmMWIxM2NiYzQwMTczNjY3ZjNlZmQ4ZjQ1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcApAQCAtODM2LDYgKzgzNiwxMiBAQCB2b2lkIEludGVybmFsczo6c2V0TGFyZ2VJ
bWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkRm9yVGVzdGluZyhIVE1MSW1hZ2VFbGVtZW50JiBlbAog
ICAgIGlmIChhdXRvKiBiaXRtYXBJbWFnZSA9IGJpdG1hcEltYWdlRnJvbUltYWdlRWxlbWVudChl
bGVtZW50KSkKICAgICAgICAgYml0bWFwSW1hZ2UtPnNldExhcmdlSW1hZ2VBc3luY0RlY29kaW5n
RW5hYmxlZEZvclRlc3RpbmcoZW5hYmxlZCk7CiB9CisgICAgCit2b2lkIEludGVybmFsczo6c2V0
RGVmZXJVcGRhdGVJbWFnZURhdGFFbmFibGVkRm9yVGVzdGluZyhIVE1MSW1hZ2VFbGVtZW50JiBl
bGVtZW50LCBib29sIGVuYWJsZWQpCit7CisgICAgaWYgKGF1dG8qIGNhY2hlZEltYWdlID0gZWxl
bWVudC5jYWNoZWRJbWFnZSgpKQorICAgICAgICBjYWNoZWRJbWFnZS0+c2V0RGVmZXJVcGRhdGVJ
bWFnZURhdGFFbmFibGVkRm9yVGVzdGluZyhlbmFibGVkKTsKK30KIAogdm9pZCBJbnRlcm5hbHM6
OnNldEdyaWRNYXhUcmFja3NMaW1pdCh1bnNpZ25lZCBtYXhUcmFja0xpbWl0KQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggY2UyOTk1ODJiMjU0ZmYyMmU3ZDM0YjRjMDVlN2My
NWU0YzJhYWFlYy4uNDdiN2E4MGJkNDE2ZjZkMDUwMjVhYzkwY2NjOTllYzVlZDE2MDU4NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xNDEsNiArMTQxLDcgQEAgcHVibGljOgog
ICAgIHVuc2lnbmVkIGltYWdlRGVjb2RlQ291bnQoSFRNTEltYWdlRWxlbWVudCYpOwogICAgIHVu
c2lnbmVkIHBkZkRvY3VtZW50Q2FjaGluZ0NvdW50KEhUTUxJbWFnZUVsZW1lbnQmKTsKICAgICB2
b2lkIHNldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZEZvclRlc3RpbmcoSFRNTEltYWdl
RWxlbWVudCYsIGJvb2wgZW5hYmxlZCk7CisgICAgdm9pZCBzZXREZWZlclVwZGF0ZUltYWdlRGF0
YUVuYWJsZWRGb3JUZXN0aW5nKEhUTUxJbWFnZUVsZW1lbnQmLCBib29sIGVuYWJsZWQpOwogCiAg
ICAgdm9pZCBzZXRHcmlkTWF4VHJhY2tzTGltaXQodW5zaWduZWQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggMWFlYWZiMTVjZWRhZTNhZDdiNWFiYzVlNzQ5M2YyZWU3
MTA0NTIzZC4uZTFiNzg0NGY2ZWRiZTdkNWYxZmZmMjU1Yzg2NTJkN2Y1NjZiNjE4OSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMjY0LDYgKzI2NCw3IEBAIGVudW0gRXZl
bnRUaHJvdHRsaW5nQmVoYXZpb3IgewogICAgIHVuc2lnbmVkIGxvbmcgaW1hZ2VEZWNvZGVDb3Vu
dChIVE1MSW1hZ2VFbGVtZW50IGVsZW1lbnQpOwogICAgIHVuc2lnbmVkIGxvbmcgcGRmRG9jdW1l
bnRDYWNoaW5nQ291bnQoSFRNTEltYWdlRWxlbWVudCBlbGVtZW50KTsKICAgICB2b2lkIHNldExh
cmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZEZvclRlc3RpbmcoSFRNTEltYWdlRWxlbWVudCBl
bGVtZW50LCBib29sZWFuIGVuYWJsZWQpOworICAgIHZvaWQgc2V0RGVmZXJVcGRhdGVJbWFnZURh
dGFFbmFibGVkRm9yVGVzdGluZyhIVE1MSW1hZ2VFbGVtZW50IGVsZW1lbnQsIGJvb2xlYW4gZW5h
YmxlZCk7CiAKICAgICB2b2lkIHNldEdyaWRNYXhUcmFja3NMaW1pdCh1bnNpZ25lZCBsb25nIG1h
eFRyYWNrc0xpbWl0KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk5ZjczMGI0NDNlMGUyN2Q4OWI0MjUzMjM3YzE2MTE5
YTQzZTQ0MzMuLmZmNGQ1ZDIyZTFlMjJlYWE1ZjU5NDRlOThjN2Q0NjI5MWM2YzA5YzggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxOC0wMS0zMSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhh
bGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEJpdG1hcEltYWdlOjpkcmF3UGF0dGVybigpIG1h
eSBub3QgZHJhdyBhIGNvbXBsZXRlIGZyYW1lIGV2ZW4gYWZ0ZXIgYWxsIHRoZSBkYXRhIGlzIHJl
Y2VpdmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
ODIyNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvaW1hZ2VzL2RyYXctcGF0dGVybi1zbG93LWxvYWQtbGFyZ2UtaW1hZ2UtZXhw
ZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbWFnZXMvZHJhdy1wYXR0
ZXJuLXNsb3ctbG9hZC1sYXJnZS1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3Jlc291cmNlcy9sb2FkLWFuZC1zdGFsbC5waHA6IEFkZCBhIG5ldyBhcmd1bWVudCB0byBh
bGxvdworICAgICAgICByZXBlYXRpbmcgdGhlIHN0YWxsIHRpbGwgdGhlIGVuZCBvZiB0aGUgZmls
ZS4gVGhpcyBzaW11bGF0ZXMgcmVhbCBzbG93CisgICAgICAgIG5ldHdvcmsgd2hlcmUgc2VuZGlu
ZyBkYXRhIGFuZCBzdGFsbGluZyBoYXBwZW5zIGNvbnN0YW50bHkgYW5kIG5vdCBvbmx5CisgICAg
ICAgIGEgc2luZ2xlIHRpbWUuCisKIDIwMTgtMDEtMzAgIERlYW4gSmFja3NvbiAgPGRpbm9AYXBw
bGUuY29tPgogCiAgICAgICAgIENyYXNoVHJhY2VyOiBjb20uYXBwbGUuV2ViS2l0LldlYkNvbnRl
bnQgYXQgV2ViQ29yZTogV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW1hZ2VzL2RyYXctcGF0dGVybi1zbG93
LWxvYWQtbGFyZ2UtaW1hZ2UtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
aW1hZ2VzL2RyYXctcGF0dGVybi1zbG93LWxvYWQtbGFyZ2UtaW1hZ2UtZXhwZWN0ZWQuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4wZTJkNjA4YzRhMTVkNDk0ODAzNmNlMDk1NDMyOTkyMTM3YjUwZTViCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbWFnZXMvZHJhdy1wYXR0ZXJu
LXNsb3ctbG9hZC1sYXJnZS1pbWFnZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTEgQEAKKzxz
dHlsZT4KKyAgICAuYm94IHsKKyAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICBoZWlnaHQ6
IDMwMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8
Ym9keT4KKyAgICA8aDE+VGhpcyB0ZXN0IGVuc3VyZXMgZHJhd1BhdHRlcm4oKSBkZWNvZGVzIGEg
bmV3IGltYWdlIGZyYW1lIHdoZW4gbmV3IGVuY29kZWQgZGF0YSBpcyByZWNlaXZlZC48L2gxPgor
ICAgIDxkaXYgY2xhc3M9ImJveCI+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9kcmF3LXBhdHRlcm4tc2xvdy1sb2FkLWxhcmdlLWltYWdl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9kcmF3LXBhdHRlcm4tc2xvdy1s
b2FkLWxhcmdlLWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU4NTg3MTFjYzMxOGI2M2RiZmYzMWIy
MTg0YzU4MGY5MzVlMWY3OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvaW1hZ2VzL2RyYXctcGF0dGVybi1zbG93LWxvYWQtbGFyZ2UtaW1hZ2UuaHRtbApAQCAtMCww
ICsxLDUzIEBACis8c3R5bGU+CisgICAgLmJveCB7CisgICAgICAgIHdpZHRoOiAzMDBweDsKKyAg
ICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVkOworICAg
ICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MHB4IDUwcHg7IAorICAgICAgICBiYWNrZ3JvdW5k
LXNpemU6IDUwcHggNTBweDsKKyAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVhdDsKK30K
Kzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8aDE+VGhpcyB0ZXN0IGVuc3VyZXMgZHJhd1BhdHRlcm4o
KSBkZWNvZGVzIGEgbmV3IGltYWdlIGZyYW1lIHdoZW4gbmV3IGVuY29kZWQgZGF0YSBpcyByZWNl
aXZlZC48L2gxPgorICAgIDxkaXYgY2xhc3M9ImJveCI+PC9kaXY+CisgICAgPHNjcmlwdD4KKyAg
ICAgICAgLy8gVGhlIG1heGltdW0gYnVmZmVyaW5nIGludGVydmFsIGZvciBJbWFnZVJlc291cmNl
IGlzIDUwMG1zLiBDaG9vc2Ugc3RhbGxGb3IKKyAgICAgICAgLy8gc3VjaCB0aGF0IHRoZSBpbWFn
ZSBidWZmZXJpbmcgaXMgZGlzYWJsZWQgaW4gdGhlIG5ldHdvcmsgcHJvY2Vzcy4KKyAgICAgICAg
ZnVuY3Rpb24gc2xvd0xhcmdlSW1hZ2VTb3VyY2VVUkwoKSB7CisgICAgICAgICAgICByZXR1cm4g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwucGhwIgorICAg
ICAgICAgICAgICAgICArICI/bmFtZT0uLi8uLi8uLi9mYXN0L2ltYWdlcy9yZXNvdXJjZXMvZ3Jl
ZW4tNDAweDQwMC5wbmciIAorICAgICAgICAgICAgICAgICArICImbWltZVR5cGU9aW1hZ2UlMkZw
bmciCisgICAgICAgICAgICAgICAgICsgIiZzdGFsbEF0PTUxMiIKKyAgICAgICAgICAgICAgICAg
KyAiJnN0YWxsRm9yPTAuNiIKKyAgICAgICAgICAgICAgICAgKyAiJnN0YWxsUmVwZWF0PVRydWUi
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgdmFyIGltYWdlID0gbmV3
IEltYWdlOworICAgICAgICB2YXIgYm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiLmJveCIp
OworCisgICAgICAgIGltYWdlLnNyYyA9IHNsb3dMYXJnZUltYWdlU291cmNlVVJMKCk7CisKKyAg
ICAgICAgLy8gRGlzYWJsZSB0aGUgQ2FjaGVkSW1hZ2UgYnVmZmVyaW5nIGFzIHdlbGwuIFRoaXMg
aGFzIHRvIGhhcHBlbiBhZnRlciBzZXR0aW5nCisgICAgICAgIC8vIHRoZSBzcmMgdG8gbWFrZSBz
dXJlIHRoZSBJbWFnZSBlbGVtZW50IGhhcyBjcmVhdGVkIGl0cyBDYWNoZWRJbWFnZQorICAgICAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXREZWZlclVw
ZGF0ZUltYWdlRGF0YUVuYWJsZWRGb3JUZXN0aW5nKGltYWdlLCBmYWxzZSk7CisKKyAgICAgICAg
Ym94LnN0eWxlLmJhY2tncm91bmRJbWFnZSA9ICJ1cmwoIiArIGltYWdlLnNyYyArICIpIjsKKwor
ICAgICAgICB2YXIgaW50ZXJ2YWwgPSBzZXRJbnRlcnZhbChmdW5jdGlvbigpIHsKKyAgICAgICAg
ICAgIGlmIChpbWFnZS5jb21wbGV0ZSkgeworICAgICAgICAgICAgICAgIGNsZWFySW50ZXJ2YWwo
aW50ZXJ2YWwpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAg
ICAgICAgICAgfQorICAgICAgICAgICAgZWxzZSBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgICAgICAgICAvLyBGb3JjZSBsYXlvdXQgYW5kIGRyYXdpbmcgZXZlbnkgMTAwbXMuCisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRIZWlnaHQ7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0sIDEwMCk7
CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3Jlc291cmNlcy9sb2FkLWFuZC1zdGFsbC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3Jlc291cmNlcy9sb2FkLWFuZC1zdGFsbC5waHAKaW5kZXggNWY0Mzg2ZGE2NjUwYjg4MjFhZWMx
OTg5YjAxNjY5MGM0ZmIxOTI2My4uOGY0ZjY2YTQyOGY3ZWM1Njk2YzQxMDUzZGE1ZTc2NDNjYTQ0
OTUzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvbG9hZC1h
bmQtc3RhbGwucGhwCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2xvYWQt
YW5kLXN0YWxsLnBocApAQCAtMiw2ICsyLDcgQEAKICRuYW1lID0gJF9HRVRbJ25hbWUnXTsKICRz
dGFsbEF0ID0gJF9HRVRbJ3N0YWxsQXQnXTsKICRzdGFsbEZvciA9ICRfR0VUWydzdGFsbEZvcidd
OworJHN0YWxsUmVwZWF0ID0gJF9HRVRbJ3N0YWxsUmVwZWF0J107CiAkbWltZVR5cGUgPSAkX0dF
VFsnbWltZVR5cGUnXTsKIAogJGZpbGUgPSBmb3BlbigkbmFtZSwgInJiIik7CkBAIC0xMywyNiAr
MTQsMzcgQEAgaGVhZGVyKCJDb250ZW50LUxlbmd0aDogIiAuIGZpbGVzaXplKCRuYW1lKSk7CiAK
IGlmIChpc3NldCgkc3RhbGxBdCkgJiYgaXNzZXQoJHN0YWxsRm9yKSkgewogICAgICRzdGFsbEF0
ID0gKGludCkkc3RhbGxBdDsKLSAgICAkc3RhbGxGb3IgPSAoaW50KSRzdGFsbEZvcjsKICAgICBp
ZiAoJHN0YWxsQXQgPiBmaWxlc2l6ZSgkbmFtZSkpCiAgICAgICAgIGRpZSgiSW5jb3JyZWN0IHZh
bHVlIGZvciBzdGFsbEF0LiIpOwotICAgICR3cml0dGVuID0gMDsKLSAgICB3aGlsZSAoJHdyaXR0
ZW4gPCAkc3RhbGxBdCkgewotICAgICAgICAkd3JpdGUgPSAxMDI0OwotICAgICAgICBpZiAoJHdy
aXRlID4gJHN0YWxsQXQgLSAkd3JpdHRlbikKLSAgICAgICAgICAgICR3cml0ZSA9ICRzdGFsbEF0
IC0gJHdyaXR0ZW47Ci0KLSAgICAgICAgZWNobyhmcmVhZCgkZmlsZSwgJHdyaXRlKSk7Ci0gICAg
ICAgICR3cml0dGVuICs9ICR3cml0ZTsKLSAgICAgICAgZmx1c2goKTsKLSAgICAgICAgb2JfZmx1
c2goKTsKKworICAgICR3cml0dGVuVG90YWwgPSAwOworICAgICRmaWxlU2l6ZSA9IGZpbGVzaXpl
KCRuYW1lKTsKKworICAgIHdoaWxlICgkd3JpdHRlblRvdGFsIDwgJGZpbGVTaXplKSB7CisgICAg
ICAgICRzdGFsbEF0ID0gbWluKCRzdGFsbEF0LCAkZmlsZVNpemUgLSAkd3JpdHRlblRvdGFsKTsK
KyAgICAgICAgJHdyaXR0ZW4gPSAwOworCisgICAgICAgIHdoaWxlICgkd3JpdHRlbiA8ICRzdGFs
bEF0KSB7CisgICAgICAgICAgICAkd3JpdGUgPSBtaW4oMTAyNCwgJHN0YWxsQXQgLSAkd3JpdHRl
bik7CisgICAgICAgICAgICBlY2hvKGZyZWFkKCRmaWxlLCAkd3JpdGUpKTsKKyAgICAgICAgICAg
ICR3cml0dGVuICs9ICR3cml0ZTsKKyAgICAgICAgICAgIGZsdXNoKCk7CisgICAgICAgICAgICBv
Yl9mbHVzaCgpOworICAgICAgICB9CisKKyAgICAgICAgJHdyaXR0ZW5Ub3RhbCArPSAkd3JpdHRl
bjsKKyAgICAgICAgJHJlbWFpbmluZyA9ICRmaWxlU2l6ZSAtICR3cml0dGVuVG90YWw7CisgICAg
ICAgIGlmICghJHJlbWFpbmluZykKKyAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgIHVzbGVl
cCgkc3RhbGxGb3IgKiAxMDAwMDAwKTsKKyAgICAgICAgaWYgKCFpc3NldCgkc3RhbGxSZXBlYXQp
IHx8ICEkc3RhbGxSZXBlYXQpCisgICAgICAgICAgICAkc3RhbGxBdCA9ICRyZW1haW5pbmc7CiAg
ICAgfQotICAgIHVzbGVlcCgkc3RhbGxGb3IgKiAxMDAwMDAwKTsKLSAgICBlY2hvKGZyZWFkKCRm
aWxlLCBmaWxlc2l6ZSgkbmFtZSkgLSAkc3RhbGxBdCkpOwogfSBlbHNlIHsKICAgICBlY2hvKGZy
ZWFkKCRmaWxlLCBmaWxlc2l6ZSgkbmFtZSkpKTsKKyAgICBmbHVzaCgpOworICAgIG9iX2ZsdXNo
KCk7CiB9Ci1mbHVzaCgpOwotb2JfZmx1c2goKTsKIGZjbG9zZSgkZmlsZSk7CiA/Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332781</attachid>
            <date>2018-01-31 10:52:21 -0800</date>
            <delta_ts>2018-01-31 11:27:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182277-20180131105221.patch</filename>
            <type>text/plain</type>
            <size>12309</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3OTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWMyMTA3M2Q1NjRjZTRl
NmRkNWEyMTI3MTdiYTQ2YWVlYjk4NTk5OC4uNzUzYjhhNTBiNWNjZGY1NWJlN2MyYTVhZWNjMTIy
ZjVkZWE1NmI3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTAxLTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQml0bWFw
SW1hZ2U6OmRyYXdQYXR0ZXJuKCkgbWF5IG5vdCBkcmF3IGEgY29tcGxldGUgZnJhbWUgZXZlbiBh
ZnRlciBhbGwgdGhlIGRhdGEgaXMgcmVjZWl2ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjI3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEJpdG1hcEltYWdlOjpkcmF3UGF0dGVybigpIG5lZWRzIHRv
IGRlc3Ryb3kgdGhlIGluY29tcGxldGUgZGVjb2RlZCBmcmFtZQorICAgICAgICBiZWZvcmUgdHJ5
aW5nIHRvIGRyYXcgaXQgYXMgYSBwYXR0ZXJuLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMv
aW1hZ2VzL2RyYXctcGF0dGVybi1zbG93LWxvYWQtbGFyZ2UtaW1hZ2UuaHRtbAorCisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZEltYWdlOjp1cGRhdGVCdWZmZXJJbnRlcm5hbCk6IFdlIG5lZWQgdG8gZGlzYWJsZSBDYWNoZWRJ
bWFnZQorICAgICAgICBkYXRhIGJ1ZmZlcmluZyBmb3IgdGVzdGluZy4gVGhpcyBzaW11bGF0ZXMg
c2xvdyBuZXR3b3JrIHdoZXJlIGludGVydmFscworICAgICAgICBiZXR3ZWVuIGRhdGEgY2h1bmtz
IGNhbiBsYXN0IGZvciBzZWNvbmRzLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3UGF0dGVybik6IERlc3Ryb3kgdGhlIGluY29t
cGxldGUgZGVjb2RlZCBmcmFtZQorICAgICAgICBiZWZvcmUgZHJhd2luZyB0aGlzIGZyYW1lIGFz
IGEgcGF0dGVybi4gV2UgZG8gbm90IGRlc3Ryb3kgaW5jb21wbGV0ZSBkZWNvZGVkCisgICAgICAg
IGZyYW1lIG9uY2UgbmV3IGRhdGEgaXMgcmVjZWl2ZWQgYmVjYXVzZSBpdCBtYXkgYmUgZHJhd24g
YnkgYXN5bmMgaW1hZ2UKKyAgICAgICAgZHJhd2luZyB3aGlsZSB3YWl0aW5nIGZvciB0aGUgbmV3
ZXIgZnJhbWUgdG8gZmluaXNoIGRlY29kaW5nLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0RGVmZXJVcGRhdGVJbWFnZURh
dGFFbmFibGVkRm9yVGVzdGluZyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTgtMDEtMzEgIEFudG9pbmUgUXVp
bnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xz
XSBUdXJuIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9zdGFydC1zdXBwb3J0IHRlc3RzIGJh
Y2sgb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4
IDQxMDFkM2I4ZTFiODgxYzlmNDc5ZDNmNTg0NzI0MTRkMjQwMTFlNDAuLjFhNzJhYmE2ZjFiMDQ5
MzVmMWY5YTFjM2Y5YWI3M2FiNzY5N2Q2NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZEltYWdlLmNwcApAQCAtNDMxLDcgKzQzMSw3IEBAIHZvaWQgQ2FjaGVkSW1hZ2U6
OnVwZGF0ZUJ1ZmZlckludGVybmFsKFNoYXJlZEJ1ZmZlciYgZGF0YSkKIAogICAgIC8vIERvbid0
IHVwZGF0ZSB0aGUgaW1hZ2Ugd2l0aCB0aGUgbmV3IGJ1ZmZlciB2ZXJ5IG9mdGVuLiBDaGFuZ2lu
ZyB0aGUgZGVjb2RlcgogICAgIC8vIGludGVybmFsIGRhdGEgYW5kIHJlcGFpbnRpbmcgdGhlIG9i
c2VydmVycyBzb21ldGltZXMgYXJlIHZlcnkgZXhwZW5zaXZlIG9wZXJhdGlvbnMuCi0gICAgaWYg
KHNob3VsZERlZmVyVXBkYXRlSW1hZ2VEYXRhKCkpCisgICAgaWYgKG1fZGVmZXJVcGRhdGVJbWFn
ZURhdGFFbmFibGVkRm9yVGVzdGluZyAmJiBzaG91bGREZWZlclVwZGF0ZUltYWdlRGF0YSgpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBFbmNvZGVkRGF0YVN0YXR1cyBlbmNvZGVkRGF0YVN0YXR1
cyA9IEVuY29kZWREYXRhU3RhdHVzOjpVbmtub3duOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2Fj
aGUvQ2FjaGVkSW1hZ2UuaAppbmRleCAyNjQzNDU3NjViMzIzNjg4NWVjZjJmNjRmODY5YWY3OGVl
MjU0NGNkLi5kNTJiNWFkYjA3ZjI3YmRmYzM2ZWVkNTAyMDc5MDczMjdkODUwYTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuaApAQCAtODcsNiArODcsOCBAQCBw
dWJsaWM6CiAKICAgICB2b2lkIGFkZFBlbmRpbmdJbWFnZURyYXdpbmdDbGllbnQoQ2FjaGVkSW1h
Z2VDbGllbnQmKTsKIAorICAgIHZvaWQgc2V0RGVmZXJVcGRhdGVJbWFnZURhdGFFbmFibGVkRm9y
VGVzdGluZyhib29sIGVuYWJsZWQpIHsgbV9kZWZlclVwZGF0ZUltYWdlRGF0YUVuYWJsZWRGb3JU
ZXN0aW5nID0gIGVuYWJsZWQ7IH0KKyAgICAKIHByaXZhdGU6CiAgICAgdm9pZCBjbGVhcigpOwog
CkBAIC0xNzgsNiArMTgwLDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U1ZHSW1h
Z2VDYWNoZT4gbV9zdmdJbWFnZUNhY2hlOwogICAgIGJvb2wgbV9pc01hbnVhbGx5Q2FjaGVkIHsg
ZmFsc2UgfTsKICAgICBib29sIG1fc2hvdWxkUGFpbnRCcm9rZW5JbWFnZSB7IHRydWUgfTsKKyAg
ICBib29sIG1fZGVmZXJVcGRhdGVJbWFnZURhdGFFbmFibGVkRm9yVGVzdGluZyB7IHRydWUgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAppbmRleCA0NTllYWYzYzIwNzk0MTcxNGIxOGY0
M2NmMzcyZGMwZmVmZGI0MzYyLi5hMTRhOWJjMTJjZjJkYjcyNWFmNDZhZTBmNzQ0ZmNiYjA5NjYz
NDI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1h
Z2UuY3BwCkBAIC0yOTEsNyArMjkxLDEyIEBAIHZvaWQgQml0bWFwSW1hZ2U6OmRyYXdQYXR0ZXJu
KEdyYXBoaWNzQ29udGV4dCYgY3R4dCwgY29uc3QgRmxvYXRSZWN0JiBkZXN0UmVjdCwKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgaWYgKCFjdHh0LmRyYXdMdW1pbmFuY2VNYXNrKCkpIHsKKyAgICAg
ICAgLy8gSWYgbmV3IGRhdGEgaXMgcmVjZWl2ZWQsIHRoZSBjdXJyZW50IGluY29tcGxldGUgZGVj
b2RlZCBmcmFtZSBoYXMgdG8gYmUgZGVzdHJveWVkLgorICAgICAgICBpZiAobV9jdXJyZW50RnJh
bWVEZWNvZGluZ1N0YXR1cyA9PSBEZWNvZGluZ1N0YXR1czo6SW52YWxpZCkKKyAgICAgICAgICAg
IG1fc291cmNlLT5kZXN0cm95SW5jb21wbGV0ZURlY29kZWREYXRhKCk7CisgICAgICAgIAogICAg
ICAgICBJbWFnZTo6ZHJhd1BhdHRlcm4oY3R4dCwgZGVzdFJlY3QsIHRpbGVSZWN0LCB0cmFuc2Zv
cm0sIHBoYXNlLCBzcGFjaW5nLCBvcCwgYmxlbmRNb2RlKTsKKyAgICAgICAgbV9jdXJyZW50RnJh
bWVEZWNvZGluZ1N0YXR1cyA9IGZyYW1lRGVjb2RpbmdTdGF0dXNBdEluZGV4KG1fY3VycmVudEZy
YW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCmluZGV4IDg5OWM5MmY1NWUxN2Y5YjU1MjQwMDk2YzFmYzE3MWUwNTRiNzE0ZmMuLjQ0
MDI0YWE2ODA1N2E4ZjFiMTNjYmM0MDE3MzY2N2YzZWZkOGY0NTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKQEAgLTgzNiw2ICs4MzYsMTIgQEAgdm9pZCBJbnRlcm5hbHM6OnNl
dExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZEZvclRlc3RpbmcoSFRNTEltYWdlRWxlbWVu
dCYgZWwKICAgICBpZiAoYXV0byogYml0bWFwSW1hZ2UgPSBiaXRtYXBJbWFnZUZyb21JbWFnZUVs
ZW1lbnQoZWxlbWVudCkpCiAgICAgICAgIGJpdG1hcEltYWdlLT5zZXRMYXJnZUltYWdlQXN5bmNE
ZWNvZGluZ0VuYWJsZWRGb3JUZXN0aW5nKGVuYWJsZWQpOwogfQorICAgIAordm9pZCBJbnRlcm5h
bHM6OnNldERlZmVyVXBkYXRlSW1hZ2VEYXRhRW5hYmxlZEZvclRlc3RpbmcoSFRNTEltYWdlRWxl
bWVudCYgZWxlbWVudCwgYm9vbCBlbmFibGVkKQoreworICAgIGlmIChhdXRvKiBjYWNoZWRJbWFn
ZSA9IGVsZW1lbnQuY2FjaGVkSW1hZ2UoKSkKKyAgICAgICAgY2FjaGVkSW1hZ2UtPnNldERlZmVy
VXBkYXRlSW1hZ2VEYXRhRW5hYmxlZEZvclRlc3RpbmcoZW5hYmxlZCk7Cit9CiAKIHZvaWQgSW50
ZXJuYWxzOjpzZXRHcmlkTWF4VHJhY2tzTGltaXQodW5zaWduZWQgbWF4VHJhY2tMaW1pdCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IGNlMjk5NTgyYjI1NGZmMjJlN2QzNGI0
YzA1ZTdjMjVlNGMyYWFhZWMuLjQ3YjdhODBiZDQxNmY2ZDA1MDI1YWM5MGNjYzk5ZWM1ZWQxNjA1
ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTQxLDYgKzE0MSw3IEBAIHB1
YmxpYzoKICAgICB1bnNpZ25lZCBpbWFnZURlY29kZUNvdW50KEhUTUxJbWFnZUVsZW1lbnQmKTsK
ICAgICB1bnNpZ25lZCBwZGZEb2N1bWVudENhY2hpbmdDb3VudChIVE1MSW1hZ2VFbGVtZW50Jik7
CiAgICAgdm9pZCBzZXRMYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWRGb3JUZXN0aW5nKEhU
TUxJbWFnZUVsZW1lbnQmLCBib29sIGVuYWJsZWQpOworICAgIHZvaWQgc2V0RGVmZXJVcGRhdGVJ
bWFnZURhdGFFbmFibGVkRm9yVGVzdGluZyhIVE1MSW1hZ2VFbGVtZW50JiwgYm9vbCBlbmFibGVk
KTsKIAogICAgIHZvaWQgc2V0R3JpZE1heFRyYWNrc0xpbWl0KHVuc2lnbmVkKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDFhZWFmYjE1Y2VkYWUzYWQ3YjVhYmM1ZTc0
OTNmMmVlNzEwNDUyM2QuLmUxYjc4NDRmNmVkYmU3ZDVmMWZmZjI1NWM4NjUyZDdmNTY2YjYxODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTI2NCw2ICsyNjQsNyBAQCBl
bnVtIEV2ZW50VGhyb3R0bGluZ0JlaGF2aW9yIHsKICAgICB1bnNpZ25lZCBsb25nIGltYWdlRGVj
b2RlQ291bnQoSFRNTEltYWdlRWxlbWVudCBlbGVtZW50KTsKICAgICB1bnNpZ25lZCBsb25nIHBk
ZkRvY3VtZW50Q2FjaGluZ0NvdW50KEhUTUxJbWFnZUVsZW1lbnQgZWxlbWVudCk7CiAgICAgdm9p
ZCBzZXRMYXJnZUltYWdlQXN5bmNEZWNvZGluZ0VuYWJsZWRGb3JUZXN0aW5nKEhUTUxJbWFnZUVs
ZW1lbnQgZWxlbWVudCwgYm9vbGVhbiBlbmFibGVkKTsKKyAgICB2b2lkIHNldERlZmVyVXBkYXRl
SW1hZ2VEYXRhRW5hYmxlZEZvclRlc3RpbmcoSFRNTEltYWdlRWxlbWVudCBlbGVtZW50LCBib29s
ZWFuIGVuYWJsZWQpOwogCiAgICAgdm9pZCBzZXRHcmlkTWF4VHJhY2tzTGltaXQodW5zaWduZWQg
bG9uZyBtYXhUcmFja3NMaW1pdCk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4OTk3OTVlOTFkZjBjMzU5NmUyNzVmM2M4
YzdlMWYyZjk2Zjk5OTM2Li4wOWFjMDk3ZmU2YTdmY2FjYTk4ZmJlY2M0ZmQ0MWFjY2E5ODFjYmJj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTgtMDEtMzEgIFNhaWQgQWJvdS1IYWxsYXdhICA8
c2Fib3VoYWxsYXdhQGFwcGxlLmNvbT4KKworICAgICAgICBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRl
cm4oKSBtYXkgbm90IGRyYXcgYSBjb21wbGV0ZSBmcmFtZSBldmVuIGFmdGVyIGFsbCB0aGUgZGF0
YSBpcyByZWNlaXZlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgyMjc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2ltYWdlcy9kcmF3LXBhdHRlcm4tc2xvdy1sb2FkLWxhcmdlLWlt
YWdlLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvaW1hZ2VzL2Ry
YXctcGF0dGVybi1zbG93LWxvYWQtbGFyZ2UtaW1hZ2UuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwucGhwOiBBZGQgYSBuZXcgYXJndW1l
bnQgdG8gYWxsb3cKKyAgICAgICAgcmVwZWF0aW5nIHRoZSBzdGFsbCB0aWxsIHRoZSBlbmQgb2Yg
dGhlIGZpbGUuIFRoaXMgc2ltdWxhdGVzIHJlYWwgc2xvdworICAgICAgICBuZXR3b3JrIHdoZXJl
IHNlbmRpbmcgZGF0YSBhbmQgc3RhbGxpbmcgaGFwcGVucyBjb25zdGFudGx5IGFuZCBub3Qgb25s
eQorICAgICAgICBhIHNpbmdsZSB0aW1lLgorCiAyMDE4LTAxLTMxICBBbnRvaW5lIFF1aW50ICA8
Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgW01vZGVybiBNZWRpYSBDb250cm9sc10gVHVy
biBtZWRpYS9tb2Rlcm4tbWVkaWEtY29udHJvbHMvc3RhcnQtc3VwcG9ydCB0ZXN0cyBiYWNrIG9u
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9kcmF3LXBhdHRlcm4t
c2xvdy1sb2FkLWxhcmdlLWltYWdlLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2ltYWdlcy9kcmF3LXBhdHRlcm4tc2xvdy1sb2FkLWxhcmdlLWltYWdlLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMGUyZDYwOGM0YTE1ZDQ5NDgwMzZjZTA5NTQzMjk5MjEzN2I1MGU1Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW1hZ2VzL2RyYXctcGF0
dGVybi1zbG93LWxvYWQtbGFyZ2UtaW1hZ2UtZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDExIEBA
Cis8c3R5bGU+CisgICAgLmJveCB7CisgICAgICAgIHdpZHRoOiAzMDBweDsKKyAgICAgICAgaGVp
Z2h0OiAzMDBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxl
PgorPGJvZHk+CisgICAgPGgxPlRoaXMgdGVzdCBlbnN1cmVzIGRyYXdQYXR0ZXJuKCkgZGVjb2Rl
cyBhIG5ldyBpbWFnZSBmcmFtZSB3aGVuIG5ldyBlbmNvZGVkIGRhdGEgaXMgcmVjZWl2ZWQuPC9o
MT4KKyAgICA8ZGl2IGNsYXNzPSJib3giPjwvZGl2PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9pbWFnZXMvZHJhdy1wYXR0ZXJuLXNsb3ctbG9hZC1sYXJnZS1p
bWFnZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbWFnZXMvZHJhdy1wYXR0ZXJuLXNs
b3ctbG9hZC1sYXJnZS1pbWFnZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlODU4NzExY2MzMThiNjNkYmZm
MzFiMjE4NGM1ODBmOTM1ZTFmNzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2ltYWdlcy9kcmF3LXBhdHRlcm4tc2xvdy1sb2FkLWxhcmdlLWltYWdlLmh0bWwKQEAg
LTAsMCArMSw1MyBAQAorPHN0eWxlPgorICAgIC5ib3ggeworICAgICAgICB3aWR0aDogMzAwcHg7
CisgICAgICAgIGhlaWdodDogMzAwcHg7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsK
KyAgICAgICAgYmFja2dyb3VuZC1wb3NpdGlvbjogNTBweCA1MHB4OyAKKyAgICAgICAgYmFja2dy
b3VuZC1zaXplOiA1MHB4IDUwcHg7CisgICAgICAgIGJhY2tncm91bmQtcmVwZWF0OiByZXBlYXQ7
Cit9Cis8L3N0eWxlPgorPGJvZHk+CisgICAgPGgxPlRoaXMgdGVzdCBlbnN1cmVzIGRyYXdQYXR0
ZXJuKCkgZGVjb2RlcyBhIG5ldyBpbWFnZSBmcmFtZSB3aGVuIG5ldyBlbmNvZGVkIGRhdGEgaXMg
cmVjZWl2ZWQuPC9oMT4KKyAgICA8ZGl2IGNsYXNzPSJib3giPjwvZGl2PgorICAgIDxzY3JpcHQ+
CisgICAgICAgIC8vIFRoZSBtYXhpbXVtIGJ1ZmZlcmluZyBpbnRlcnZhbCBmb3IgSW1hZ2VSZXNv
dXJjZSBpcyA1MDBtcy4gQ2hvb3NlIHN0YWxsRm9yCisgICAgICAgIC8vIHN1Y2ggdGhhdCB0aGUg
aW1hZ2UgYnVmZmVyaW5nIGlzIGRpc2FibGVkIGluIHRoZSBuZXR3b3JrIHByb2Nlc3MuCisgICAg
ICAgIGZ1bmN0aW9uIHNsb3dMYXJnZUltYWdlU291cmNlVVJMKCkgeworICAgICAgICAgICAgcmV0
dXJuICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvcmVzb3VyY2VzL2xvYWQtYW5kLXN0YWxsLnBocCIK
KyAgICAgICAgICAgICAgICAgKyAiP25hbWU9Li4vLi4vLi4vZmFzdC9pbWFnZXMvcmVzb3VyY2Vz
L2dyZWVuLTQwMHg0MDAucG5nIiAKKyAgICAgICAgICAgICAgICAgKyAiJm1pbWVUeXBlPWltYWdl
JTJGcG5nIgorICAgICAgICAgICAgICAgICArICImc3RhbGxBdD01MTIiCisgICAgICAgICAgICAg
ICAgICsgIiZzdGFsbEZvcj0wLjYiCisgICAgICAgICAgICAgICAgICsgIiZzdGFsbFJlcGVhdD1U
cnVlIjsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisgICAgICAgIHZhciBpbWFnZSA9
IG5ldyBJbWFnZTsKKyAgICAgICAgdmFyIGJveCA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIi5i
b3giKTsKKworICAgICAgICBpbWFnZS5zcmMgPSBzbG93TGFyZ2VJbWFnZVNvdXJjZVVSTCgpOwor
CisgICAgICAgIC8vIERpc2FibGUgdGhlIENhY2hlZEltYWdlIGJ1ZmZlcmluZyBhcyB3ZWxsLiBU
aGlzIGhhcyB0byBoYXBwZW4gYWZ0ZXIgc2V0dGluZworICAgICAgICAvLyB0aGUgc3JjIHRvIG1h
a2Ugc3VyZSB0aGUgSW1hZ2UgZWxlbWVudCBoYXMgY3JlYXRlZCBpdHMgQ2FjaGVkSW1hZ2UKKyAg
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICBpbnRlcm5hbHMuc2V0RGVm
ZXJVcGRhdGVJbWFnZURhdGFFbmFibGVkRm9yVGVzdGluZyhpbWFnZSwgZmFsc2UpOworCisgICAg
ICAgIGJveC5zdHlsZS5iYWNrZ3JvdW5kSW1hZ2UgPSAidXJsKCIgKyBpbWFnZS5zcmMgKyAiKSI7
CisKKyAgICAgICAgdmFyIGludGVydmFsID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7CisgICAg
ICAgICAgICBpZiAoaW1hZ2UuY29tcGxldGUpIHsKKyAgICAgICAgICAgICAgICBjbGVhckludGVy
dmFsKGludGVydmFsKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGVsc2UgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICAgICAgLy8gRm9yY2UgbGF5b3V0IGFuZCBkcmF3aW5nIGV2ZW55IDEwMG1z
LgorICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0SGVpZ2h0OworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgfQorICAgICAgICB9LCAx
MDApOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwucGhwCmluZGV4IDVmNDM4NmRhNjY1MGI4ODIx
YWVjMTk4OWIwMTY2OTBjNGZiMTkyNjMuLjhmNGY2NmE0MjhmN2VjNTY5NmM0MTA1M2RhNWU3NjQz
Y2E0NDk1MzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcmVzb3VyY2VzL2xv
YWQtYW5kLXN0YWxsLnBocAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9s
b2FkLWFuZC1zdGFsbC5waHAKQEAgLTIsNiArMiw3IEBACiAkbmFtZSA9ICRfR0VUWyduYW1lJ107
CiAkc3RhbGxBdCA9ICRfR0VUWydzdGFsbEF0J107CiAkc3RhbGxGb3IgPSAkX0dFVFsnc3RhbGxG
b3InXTsKKyRzdGFsbFJlcGVhdCA9ICRfR0VUWydzdGFsbFJlcGVhdCddOwogJG1pbWVUeXBlID0g
JF9HRVRbJ21pbWVUeXBlJ107CiAKICRmaWxlID0gZm9wZW4oJG5hbWUsICJyYiIpOwpAQCAtMTMs
MjYgKzE0LDM3IEBAIGhlYWRlcigiQ29udGVudC1MZW5ndGg6ICIgLiBmaWxlc2l6ZSgkbmFtZSkp
OwogCiBpZiAoaXNzZXQoJHN0YWxsQXQpICYmIGlzc2V0KCRzdGFsbEZvcikpIHsKICAgICAkc3Rh
bGxBdCA9IChpbnQpJHN0YWxsQXQ7Ci0gICAgJHN0YWxsRm9yID0gKGludCkkc3RhbGxGb3I7CiAg
ICAgaWYgKCRzdGFsbEF0ID4gZmlsZXNpemUoJG5hbWUpKQogICAgICAgICBkaWUoIkluY29ycmVj
dCB2YWx1ZSBmb3Igc3RhbGxBdC4iKTsKLSAgICAkd3JpdHRlbiA9IDA7Ci0gICAgd2hpbGUgKCR3
cml0dGVuIDwgJHN0YWxsQXQpIHsKLSAgICAgICAgJHdyaXRlID0gMTAyNDsKLSAgICAgICAgaWYg
KCR3cml0ZSA+ICRzdGFsbEF0IC0gJHdyaXR0ZW4pCi0gICAgICAgICAgICAkd3JpdGUgPSAkc3Rh
bGxBdCAtICR3cml0dGVuOwotCi0gICAgICAgIGVjaG8oZnJlYWQoJGZpbGUsICR3cml0ZSkpOwot
ICAgICAgICAkd3JpdHRlbiArPSAkd3JpdGU7Ci0gICAgICAgIGZsdXNoKCk7Ci0gICAgICAgIG9i
X2ZsdXNoKCk7CisKKyAgICAkd3JpdHRlblRvdGFsID0gMDsKKyAgICAkZmlsZVNpemUgPSBmaWxl
c2l6ZSgkbmFtZSk7CisKKyAgICB3aGlsZSAoJHdyaXR0ZW5Ub3RhbCA8ICRmaWxlU2l6ZSkgewor
ICAgICAgICAkc3RhbGxBdCA9IG1pbigkc3RhbGxBdCwgJGZpbGVTaXplIC0gJHdyaXR0ZW5Ub3Rh
bCk7CisgICAgICAgICR3cml0dGVuID0gMDsKKworICAgICAgICB3aGlsZSAoJHdyaXR0ZW4gPCAk
c3RhbGxBdCkgeworICAgICAgICAgICAgJHdyaXRlID0gbWluKDEwMjQsICRzdGFsbEF0IC0gJHdy
aXR0ZW4pOworICAgICAgICAgICAgZWNobyhmcmVhZCgkZmlsZSwgJHdyaXRlKSk7CisgICAgICAg
ICAgICAkd3JpdHRlbiArPSAkd3JpdGU7CisgICAgICAgICAgICBmbHVzaCgpOworICAgICAgICAg
ICAgb2JfZmx1c2goKTsKKyAgICAgICAgfQorCisgICAgICAgICR3cml0dGVuVG90YWwgKz0gJHdy
aXR0ZW47CisgICAgICAgICRyZW1haW5pbmcgPSAkZmlsZVNpemUgLSAkd3JpdHRlblRvdGFsOwor
ICAgICAgICBpZiAoISRyZW1haW5pbmcpCisgICAgICAgICAgICBicmVhazsKKworICAgICAgICB1
c2xlZXAoJHN0YWxsRm9yICogMTAwMDAwMCk7CisgICAgICAgIGlmICghaXNzZXQoJHN0YWxsUmVw
ZWF0KSB8fCAhJHN0YWxsUmVwZWF0KQorICAgICAgICAgICAgJHN0YWxsQXQgPSAkcmVtYWluaW5n
OwogICAgIH0KLSAgICB1c2xlZXAoJHN0YWxsRm9yICogMTAwMDAwMCk7Ci0gICAgZWNobyhmcmVh
ZCgkZmlsZSwgZmlsZXNpemUoJG5hbWUpIC0gJHN0YWxsQXQpKTsKIH0gZWxzZSB7CiAgICAgZWNo
byhmcmVhZCgkZmlsZSwgZmlsZXNpemUoJG5hbWUpKSk7CisgICAgZmx1c2goKTsKKyAgICBvYl9m
bHVzaCgpOwogfQotZmx1c2goKTsKLW9iX2ZsdXNoKCk7CiBmY2xvc2UoJGZpbGUpOwogPz4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332783</attachid>
            <date>2018-01-31 11:27:03 -0800</date>
            <delta_ts>2018-01-31 15:23:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-182277-20180131112702.patch</filename>
            <type>text/plain</type>
            <size>12310</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3OTA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWMyMTA3M2Q1NjRjZTRl
NmRkNWEyMTI3MTdiYTQ2YWVlYjk4NTk5OC4uYTA2MDhlNTdkYzkxY2IyYTcyMmJiYzFmNDQ4YTI5
MWVjNDQ1OTlhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDE4LTAxLTMxICBTYWlk
IEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBsZS5jb20+CisKKyAgICAgICAgQml0bWFw
SW1hZ2U6OmRyYXdQYXR0ZXJuKCkgbWF5IG5vdCBkcmF3IGEgY29tcGxldGUgZnJhbWUgZXZlbiBh
ZnRlciBhbGwgdGhlIGRhdGEgaXMgcmVjZWl2ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MjI3NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEJpdG1hcEltYWdlOjpkcmF3UGF0dGVybigpIG5lZWRzIHRv
IGRlc3Ryb3kgdGhlIGluY29tcGxldGUgZGVjb2RlZCBmcmFtZQorICAgICAgICBiZWZvcmUgdHJ5
aW5nIHRvIGRyYXcgaXQgYXMgYSBwYXR0ZXJuLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMv
aW1hZ2VzL2RyYXctcGF0dGVybi1zbG93LWxvYWQtbGFyZ2UtaW1hZ2UuaHRtbAorCisgICAgICAg
ICogbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hl
ZEltYWdlOjp1cGRhdGVCdWZmZXJJbnRlcm5hbCk6IFdlIG5lZWQgdG8gZGlzYWJsZSBDYWNoZWRJ
bWFnZQorICAgICAgICBkYXRhIGJ1ZmZlcmluZyBmb3IgdGVzdGluZy4gVGhpcyBzaW11bGF0ZXMg
c2xvdyBuZXR3b3JrIHdoZXJlIGludGVydmFscworICAgICAgICBiZXR3ZWVuIGRhdGEgY2h1bmtz
IGNhbiBsYXN0IGZvciBzZWNvbmRzLgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkJpdG1hcEltYWdlOjpkcmF3UGF0dGVybik6IERlc3Ryb3kgdGhlIGluY29t
cGxldGUgZGVjb2RlZCBmcmFtZQorICAgICAgICBiZWZvcmUgZHJhd2luZyB0aGlzIGZyYW1lIGFz
IGEgcGF0dGVybi4gV2UgZG8gbm90IGRlc3Ryb3kgaW5jb21wbGV0ZSBkZWNvZGVkCisgICAgICAg
IGZyYW1lIG9uY2UgbmV3IGRhdGEgaXMgcmVjZWl2ZWQgYmVjYXVzZSBpdCBtYXkgYmUgZHJhd24g
YnkgYXN5bmMgaW1hZ2UKKyAgICAgICAgZHJhd2luZyB3aGlsZSB3YWl0aW5nIGZvciB0aGUgbmV3
ZXIgZnJhbWUgdG8gZmluaXNoIGRlY29kaW5nLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6c2V0Rm9yY2VVcGRhdGVJbWFnZURh
dGFFbmFibGVkRm9yVGVzdGluZyk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAg
ICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTgtMDEtMzEgIEFudG9pbmUgUXVp
bnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xz
XSBUdXJuIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9zdGFydC1zdXBwb3J0IHRlc3RzIGJh
Y2sgb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFn
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkSW1hZ2UuY3BwCmluZGV4
IDQxMDFkM2I4ZTFiODgxYzlmNDc5ZDNmNTg0NzI0MTRkMjQwMTFlNDAuLjAwOTMwNTYzZmUwN2E3
MmM4MzQ3YmVkMjVjMTExMDFiNzRhNGRjYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jYWNoZS9DYWNoZWRJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZEltYWdlLmNwcApAQCAtNDMxLDcgKzQzMSw3IEBAIHZvaWQgQ2FjaGVkSW1hZ2U6
OnVwZGF0ZUJ1ZmZlckludGVybmFsKFNoYXJlZEJ1ZmZlciYgZGF0YSkKIAogICAgIC8vIERvbid0
IHVwZGF0ZSB0aGUgaW1hZ2Ugd2l0aCB0aGUgbmV3IGJ1ZmZlciB2ZXJ5IG9mdGVuLiBDaGFuZ2lu
ZyB0aGUgZGVjb2RlcgogICAgIC8vIGludGVybmFsIGRhdGEgYW5kIHJlcGFpbnRpbmcgdGhlIG9i
c2VydmVycyBzb21ldGltZXMgYXJlIHZlcnkgZXhwZW5zaXZlIG9wZXJhdGlvbnMuCi0gICAgaWYg
KHNob3VsZERlZmVyVXBkYXRlSW1hZ2VEYXRhKCkpCisgICAgaWYgKCFtX2ZvcmNlVXBkYXRlSW1h
Z2VEYXRhRW5hYmxlZEZvclRlc3RpbmcgJiYgc2hvdWxkRGVmZXJVcGRhdGVJbWFnZURhdGEoKSkK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgRW5jb2RlZERhdGFTdGF0dXMgZW5jb2RlZERhdGFTdGF0
dXMgPSBFbmNvZGVkRGF0YVN0YXR1czo6VW5rbm93bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRJbWFnZS5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZEltYWdlLmgKaW5kZXggMjY0MzQ1NzY1YjMyMzY4ODVlY2YyZjY0Zjg2OWFmNzhl
ZTI1NDRjZC4uZjZjZDBkNDYzZTVhZGVkNmJhYmY5MjdhZTI0MmNlOGU0MDRiZDg1ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEltYWdlLmgKQEAgLTg3LDYgKzg3LDggQEAg
cHVibGljOgogCiAgICAgdm9pZCBhZGRQZW5kaW5nSW1hZ2VEcmF3aW5nQ2xpZW50KENhY2hlZElt
YWdlQ2xpZW50Jik7CiAKKyAgICB2b2lkIHNldEZvcmNlVXBkYXRlSW1hZ2VEYXRhRW5hYmxlZEZv
clRlc3RpbmcoYm9vbCBlbmFibGVkKSB7IG1fZm9yY2VVcGRhdGVJbWFnZURhdGFFbmFibGVkRm9y
VGVzdGluZyA9ICBlbmFibGVkOyB9CisgICAgCiBwcml2YXRlOgogICAgIHZvaWQgY2xlYXIoKTsK
IApAQCAtMTc4LDYgKzE4MCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFNWR0lt
YWdlQ2FjaGU+IG1fc3ZnSW1hZ2VDYWNoZTsKICAgICBib29sIG1faXNNYW51YWxseUNhY2hlZCB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZFBhaW50QnJva2VuSW1hZ2UgeyB0cnVlIH07Cisg
ICAgYm9vbCBtX2ZvcmNlVXBkYXRlSW1hZ2VEYXRhRW5hYmxlZEZvclRlc3RpbmcgeyBmYWxzZSB9
OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwCmluZGV4IDQ1OWVhZjNjMjA3OTQxNzE0YjE4
ZjQzY2YzNzJkYzBmZWZkYjQzNjIuLmExNGE5YmMxMmNmMmRiNzI1YWY0NmFlMGY3NDRmY2JiMDk2
NjM0MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1h
cEltYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9CaXRtYXBJ
bWFnZS5jcHAKQEAgLTI5MSw3ICsyOTEsMTIgQEAgdm9pZCBCaXRtYXBJbWFnZTo6ZHJhd1BhdHRl
cm4oR3JhcGhpY3NDb250ZXh0JiBjdHh0LCBjb25zdCBGbG9hdFJlY3QmIGRlc3RSZWN0LAogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAoIWN0eHQuZHJhd0x1bWluYW5jZU1hc2soKSkgeworICAg
ICAgICAvLyBJZiBuZXcgZGF0YSBpcyByZWNlaXZlZCwgdGhlIGN1cnJlbnQgaW5jb21wbGV0ZSBk
ZWNvZGVkIGZyYW1lIGhhcyB0byBiZSBkZXN0cm95ZWQuCisgICAgICAgIGlmIChtX2N1cnJlbnRG
cmFtZURlY29kaW5nU3RhdHVzID09IERlY29kaW5nU3RhdHVzOjpJbnZhbGlkKQorICAgICAgICAg
ICAgbV9zb3VyY2UtPmRlc3Ryb3lJbmNvbXBsZXRlRGVjb2RlZERhdGEoKTsKKyAgICAgICAgCiAg
ICAgICAgIEltYWdlOjpkcmF3UGF0dGVybihjdHh0LCBkZXN0UmVjdCwgdGlsZVJlY3QsIHRyYW5z
Zm9ybSwgcGhhc2UsIHNwYWNpbmcsIG9wLCBibGVuZE1vZGUpOworICAgICAgICBtX2N1cnJlbnRG
cmFtZURlY29kaW5nU3RhdHVzID0gZnJhbWVEZWNvZGluZ1N0YXR1c0F0SW5kZXgobV9jdXJyZW50
RnJhbWUpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKaW5kZXggODk5YzkyZjU1ZTE3ZjliNTUyNDAwOTZjMWZjMTcxZTA1NGI3MTRmYy4u
ZGQ2MThjYzJlNWU4MTIxOGU4OTcwZmQzNjM2MzhhMGZjM2NkNzIwZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtODM2LDYgKzgzNiwxMiBAQCB2b2lkIEludGVybmFsczo6
c2V0TGFyZ2VJbWFnZUFzeW5jRGVjb2RpbmdFbmFibGVkRm9yVGVzdGluZyhIVE1MSW1hZ2VFbGVt
ZW50JiBlbAogICAgIGlmIChhdXRvKiBiaXRtYXBJbWFnZSA9IGJpdG1hcEltYWdlRnJvbUltYWdl
RWxlbWVudChlbGVtZW50KSkKICAgICAgICAgYml0bWFwSW1hZ2UtPnNldExhcmdlSW1hZ2VBc3lu
Y0RlY29kaW5nRW5hYmxlZEZvclRlc3RpbmcoZW5hYmxlZCk7CiB9CisgICAgCit2b2lkIEludGVy
bmFsczo6c2V0Rm9yY2VVcGRhdGVJbWFnZURhdGFFbmFibGVkRm9yVGVzdGluZyhIVE1MSW1hZ2VF
bGVtZW50JiBlbGVtZW50LCBib29sIGVuYWJsZWQpCit7CisgICAgaWYgKGF1dG8qIGNhY2hlZElt
YWdlID0gZWxlbWVudC5jYWNoZWRJbWFnZSgpKQorICAgICAgICBjYWNoZWRJbWFnZS0+c2V0Rm9y
Y2VVcGRhdGVJbWFnZURhdGFFbmFibGVkRm9yVGVzdGluZyhlbmFibGVkKTsKK30KIAogdm9pZCBJ
bnRlcm5hbHM6OnNldEdyaWRNYXhUcmFja3NMaW1pdCh1bnNpZ25lZCBtYXhUcmFja0xpbWl0KQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggY2UyOTk1ODJiMjU0ZmYyMmU3ZDM0
YjRjMDVlN2MyNWU0YzJhYWFlYy4uODBmYjdhYzlkODIxNjk4ZGRlNzNmNmE0YmRjYTI4OTg1OGE0
ZGE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xNDEsNiArMTQxLDcgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIGltYWdlRGVjb2RlQ291bnQoSFRNTEltYWdlRWxlbWVudCYp
OwogICAgIHVuc2lnbmVkIHBkZkRvY3VtZW50Q2FjaGluZ0NvdW50KEhUTUxJbWFnZUVsZW1lbnQm
KTsKICAgICB2b2lkIHNldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZEZvclRlc3Rpbmco
SFRNTEltYWdlRWxlbWVudCYsIGJvb2wgZW5hYmxlZCk7CisgICAgdm9pZCBzZXRGb3JjZVVwZGF0
ZUltYWdlRGF0YUVuYWJsZWRGb3JUZXN0aW5nKEhUTUxJbWFnZUVsZW1lbnQmLCBib29sIGVuYWJs
ZWQpOwogCiAgICAgdm9pZCBzZXRHcmlkTWF4VHJhY2tzTGltaXQodW5zaWduZWQpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggMWFlYWZiMTVjZWRhZTNhZDdiNWFiYzVl
NzQ5M2YyZWU3MTA0NTIzZC4uYjMwNzAzNjE5NGQyNTA0ODA2YjFiYmExODEzMDU0MDJkMGM3Y2Uy
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtMjY0LDYgKzI2NCw3IEBA
IGVudW0gRXZlbnRUaHJvdHRsaW5nQmVoYXZpb3IgewogICAgIHVuc2lnbmVkIGxvbmcgaW1hZ2VE
ZWNvZGVDb3VudChIVE1MSW1hZ2VFbGVtZW50IGVsZW1lbnQpOwogICAgIHVuc2lnbmVkIGxvbmcg
cGRmRG9jdW1lbnRDYWNoaW5nQ291bnQoSFRNTEltYWdlRWxlbWVudCBlbGVtZW50KTsKICAgICB2
b2lkIHNldExhcmdlSW1hZ2VBc3luY0RlY29kaW5nRW5hYmxlZEZvclRlc3RpbmcoSFRNTEltYWdl
RWxlbWVudCBlbGVtZW50LCBib29sZWFuIGVuYWJsZWQpOworICAgIHZvaWQgc2V0Rm9yY2VVcGRh
dGVJbWFnZURhdGFFbmFibGVkRm9yVGVzdGluZyhIVE1MSW1hZ2VFbGVtZW50IGVsZW1lbnQsIGJv
b2xlYW4gZW5hYmxlZCk7CiAKICAgICB2b2lkIHNldEdyaWRNYXhUcmFja3NMaW1pdCh1bnNpZ25l
ZCBsb25nIG1heFRyYWNrc0xpbWl0KTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg5OTc5NWU5MWRmMGMzNTk2ZTI3NWYz
YzhjN2UxZjJmOTZmOTk5MzYuLjA5YWMwOTdmZTZhN2ZjYWNhOThmYmVjYzRmZDQxYWNjYTk4MWNi
YmMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxOC0wMS0zMSAgU2FpZCBBYm91LUhhbGxhd2Eg
IDxzYWJvdWhhbGxhd2FAYXBwbGUuY29tPgorCisgICAgICAgIEJpdG1hcEltYWdlOjpkcmF3UGF0
dGVybigpIG1heSBub3QgZHJhdyBhIGNvbXBsZXRlIGZyYW1lIGV2ZW4gYWZ0ZXIgYWxsIHRoZSBk
YXRhIGlzIHJlY2VpdmVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xODIyNzcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGh0dHAvdGVzdHMvaW1hZ2VzL2RyYXctcGF0dGVybi1zbG93LWxvYWQtbGFyZ2Ut
aW1hZ2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9pbWFnZXMv
ZHJhdy1wYXR0ZXJuLXNsb3ctbG9hZC1sYXJnZS1pbWFnZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3Jlc291cmNlcy9sb2FkLWFuZC1zdGFsbC5waHA6IEFkZCBhIG5ldyBhcmd1
bWVudCB0byBhbGxvdworICAgICAgICByZXBlYXRpbmcgdGhlIHN0YWxsIHRpbGwgdGhlIGVuZCBv
ZiB0aGUgZmlsZS4gVGhpcyBzaW11bGF0ZXMgcmVhbCBzbG93CisgICAgICAgIG5ldHdvcmsgd2hl
cmUgc2VuZGluZyBkYXRhIGFuZCBzdGFsbGluZyBoYXBwZW5zIGNvbnN0YW50bHkgYW5kIG5vdCBv
bmx5CisgICAgICAgIGEgc2luZ2xlIHRpbWUuCisKIDIwMTgtMDEtMzEgIEFudG9pbmUgUXVpbnQg
IDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBbTW9kZXJuIE1lZGlhIENvbnRyb2xzXSBU
dXJuIG1lZGlhL21vZGVybi1tZWRpYS1jb250cm9scy9zdGFydC1zdXBwb3J0IHRlc3RzIGJhY2sg
b24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvaW1hZ2VzL2RyYXctcGF0dGVy
bi1zbG93LWxvYWQtbGFyZ2UtaW1hZ2UtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvaW1hZ2VzL2RyYXctcGF0dGVybi1zbG93LWxvYWQtbGFyZ2UtaW1hZ2UtZXhwZWN0ZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4wZTJkNjA4YzRhMTVkNDk0ODAzNmNlMDk1NDMyOTkyMTM3YjUwZTVi
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9pbWFnZXMvZHJhdy1w
YXR0ZXJuLXNsb3ctbG9hZC1sYXJnZS1pbWFnZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTEg
QEAKKzxzdHlsZT4KKyAgICAuYm94IHsKKyAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICBo
ZWlnaHQ6IDMwMHB4OworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5
bGU+Cis8Ym9keT4KKyAgICA8aDE+VGhpcyB0ZXN0IGVuc3VyZXMgZHJhd1BhdHRlcm4oKSBkZWNv
ZGVzIGEgbmV3IGltYWdlIGZyYW1lIHdoZW4gbmV3IGVuY29kZWQgZGF0YSBpcyByZWNlaXZlZC48
L2gxPgorICAgIDxkaXYgY2xhc3M9ImJveCI+PC9kaXY+Cis8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9kcmF3LXBhdHRlcm4tc2xvdy1sb2FkLWxhcmdl
LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2ltYWdlcy9kcmF3LXBhdHRlcm4t
c2xvdy1sb2FkLWxhcmdlLWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjlmOWVmZTJlYjM0MmZiMDQ1
MWY0MjEyNTliYTQ5Njg3MTFiZjY3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvaW1hZ2VzL2RyYXctcGF0dGVybi1zbG93LWxvYWQtbGFyZ2UtaW1hZ2UuaHRtbApA
QCAtMCwwICsxLDUzIEBACis8c3R5bGU+CisgICAgLmJveCB7CisgICAgICAgIHdpZHRoOiAzMDBw
eDsKKyAgICAgICAgaGVpZ2h0OiAzMDBweDsKKyAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmVk
OworICAgICAgICBiYWNrZ3JvdW5kLXBvc2l0aW9uOiA1MHB4IDUwcHg7IAorICAgICAgICBiYWNr
Z3JvdW5kLXNpemU6IDUwcHggNTBweDsKKyAgICAgICAgYmFja2dyb3VuZC1yZXBlYXQ6IHJlcGVh
dDsKK30KKzwvc3R5bGU+Cis8Ym9keT4KKyAgICA8aDE+VGhpcyB0ZXN0IGVuc3VyZXMgZHJhd1Bh
dHRlcm4oKSBkZWNvZGVzIGEgbmV3IGltYWdlIGZyYW1lIHdoZW4gbmV3IGVuY29kZWQgZGF0YSBp
cyByZWNlaXZlZC48L2gxPgorICAgIDxkaXYgY2xhc3M9ImJveCI+PC9kaXY+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgLy8gVGhlIG1heGltdW0gYnVmZmVyaW5nIGludGVydmFsIGZvciBJbWFnZVJl
c291cmNlIGlzIDUwMG1zLiBDaG9vc2Ugc3RhbGxGb3IKKyAgICAgICAgLy8gc3VjaCB0aGF0IHRo
ZSBpbWFnZSBidWZmZXJpbmcgaXMgZGlzYWJsZWQgaW4gdGhlIG5ldHdvcmsgcHJvY2Vzcy4KKyAg
ICAgICAgZnVuY3Rpb24gc2xvd0xhcmdlSW1hZ2VTb3VyY2VVUkwoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9yZXNvdXJjZXMvbG9hZC1hbmQtc3RhbGwucGhw
IgorICAgICAgICAgICAgICAgICArICI/bmFtZT0uLi8uLi8uLi9mYXN0L2ltYWdlcy9yZXNvdXJj
ZXMvZ3JlZW4tNDAweDQwMC5wbmciIAorICAgICAgICAgICAgICAgICArICImbWltZVR5cGU9aW1h
Z2UlMkZwbmciCisgICAgICAgICAgICAgICAgICsgIiZzdGFsbEF0PTUxMiIKKyAgICAgICAgICAg
ICAgICAgKyAiJnN0YWxsRm9yPTAuNiIKKyAgICAgICAgICAgICAgICAgKyAiJnN0YWxsUmVwZWF0
PVRydWUiOworICAgICAgICB9CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisKKyAgICAgICAgdmFyIGltYWdl
ID0gbmV3IEltYWdlOworICAgICAgICB2YXIgYm94ID0gZG9jdW1lbnQucXVlcnlTZWxlY3Rvcigi
LmJveCIpOworCisgICAgICAgIGltYWdlLnNyYyA9IHNsb3dMYXJnZUltYWdlU291cmNlVVJMKCk7
CisKKyAgICAgICAgLy8gRGlzYWJsZSB0aGUgQ2FjaGVkSW1hZ2UgYnVmZmVyaW5nIGFzIHdlbGwu
IFRoaXMgaGFzIHRvIGhhcHBlbiBhZnRlciBzZXR0aW5nCisgICAgICAgIC8vIHRoZSBzcmMgdG8g
bWFrZSBzdXJlIHRoZSBJbWFnZSBlbGVtZW50IGhhcyBjcmVhdGVkIGl0cyBDYWNoZWRJbWFnZQor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIGludGVybmFscy5zZXRG
b3JjZVVwZGF0ZUltYWdlRGF0YUVuYWJsZWRGb3JUZXN0aW5nKGltYWdlLCB0cnVlKTsKKworICAg
ICAgICBib3guc3R5bGUuYmFja2dyb3VuZEltYWdlID0gInVybCgiICsgaW1hZ2Uuc3JjICsgIiki
OworCisgICAgICAgIHZhciBpbnRlcnZhbCA9IHNldEludGVydmFsKGZ1bmN0aW9uKCkgeworICAg
ICAgICAgICAgaWYgKGltYWdlLmNvbXBsZXRlKSB7CisgICAgICAgICAgICAgICAgY2xlYXJJbnRl
cnZhbChpbnRlcnZhbCk7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICBlbHNlIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICAgICAgICAgIC8vIEZvcmNlIGxheW91dCBhbmQgZHJhd2luZyBldmVueSAxMDBt
cy4KKyAgICAgICAgICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldEhlaWdodDsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSwg
MTAwKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvcmVzb3VyY2VzL2xvYWQtYW5kLXN0YWxsLnBocCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvcmVzb3VyY2VzL2xvYWQtYW5kLXN0YWxsLnBocAppbmRleCA1ZjQzODZkYTY2NTBiODgy
MWFlYzE5ODliMDE2NjkwYzRmYjE5MjYzLi44ZjRmNjZhNDI4ZjdlYzU2OTZjNDEwNTNkYTVlNzY0
M2NhNDQ5NTM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9s
b2FkLWFuZC1zdGFsbC5waHAKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMv
bG9hZC1hbmQtc3RhbGwucGhwCkBAIC0yLDYgKzIsNyBAQAogJG5hbWUgPSAkX0dFVFsnbmFtZSdd
OwogJHN0YWxsQXQgPSAkX0dFVFsnc3RhbGxBdCddOwogJHN0YWxsRm9yID0gJF9HRVRbJ3N0YWxs
Rm9yJ107Ciskc3RhbGxSZXBlYXQgPSAkX0dFVFsnc3RhbGxSZXBlYXQnXTsKICRtaW1lVHlwZSA9
ICRfR0VUWydtaW1lVHlwZSddOwogCiAkZmlsZSA9IGZvcGVuKCRuYW1lLCAicmIiKTsKQEAgLTEz
LDI2ICsxNCwzNyBAQCBoZWFkZXIoIkNvbnRlbnQtTGVuZ3RoOiAiIC4gZmlsZXNpemUoJG5hbWUp
KTsKIAogaWYgKGlzc2V0KCRzdGFsbEF0KSAmJiBpc3NldCgkc3RhbGxGb3IpKSB7CiAgICAgJHN0
YWxsQXQgPSAoaW50KSRzdGFsbEF0OwotICAgICRzdGFsbEZvciA9IChpbnQpJHN0YWxsRm9yOwog
ICAgIGlmICgkc3RhbGxBdCA+IGZpbGVzaXplKCRuYW1lKSkKICAgICAgICAgZGllKCJJbmNvcnJl
Y3QgdmFsdWUgZm9yIHN0YWxsQXQuIik7Ci0gICAgJHdyaXR0ZW4gPSAwOwotICAgIHdoaWxlICgk
d3JpdHRlbiA8ICRzdGFsbEF0KSB7Ci0gICAgICAgICR3cml0ZSA9IDEwMjQ7Ci0gICAgICAgIGlm
ICgkd3JpdGUgPiAkc3RhbGxBdCAtICR3cml0dGVuKQotICAgICAgICAgICAgJHdyaXRlID0gJHN0
YWxsQXQgLSAkd3JpdHRlbjsKLQotICAgICAgICBlY2hvKGZyZWFkKCRmaWxlLCAkd3JpdGUpKTsK
LSAgICAgICAgJHdyaXR0ZW4gKz0gJHdyaXRlOwotICAgICAgICBmbHVzaCgpOwotICAgICAgICBv
Yl9mbHVzaCgpOworCisgICAgJHdyaXR0ZW5Ub3RhbCA9IDA7CisgICAgJGZpbGVTaXplID0gZmls
ZXNpemUoJG5hbWUpOworCisgICAgd2hpbGUgKCR3cml0dGVuVG90YWwgPCAkZmlsZVNpemUpIHsK
KyAgICAgICAgJHN0YWxsQXQgPSBtaW4oJHN0YWxsQXQsICRmaWxlU2l6ZSAtICR3cml0dGVuVG90
YWwpOworICAgICAgICAkd3JpdHRlbiA9IDA7CisKKyAgICAgICAgd2hpbGUgKCR3cml0dGVuIDwg
JHN0YWxsQXQpIHsKKyAgICAgICAgICAgICR3cml0ZSA9IG1pbigxMDI0LCAkc3RhbGxBdCAtICR3
cml0dGVuKTsKKyAgICAgICAgICAgIGVjaG8oZnJlYWQoJGZpbGUsICR3cml0ZSkpOworICAgICAg
ICAgICAgJHdyaXR0ZW4gKz0gJHdyaXRlOworICAgICAgICAgICAgZmx1c2goKTsKKyAgICAgICAg
ICAgIG9iX2ZsdXNoKCk7CisgICAgICAgIH0KKworICAgICAgICAkd3JpdHRlblRvdGFsICs9ICR3
cml0dGVuOworICAgICAgICAkcmVtYWluaW5nID0gJGZpbGVTaXplIC0gJHdyaXR0ZW5Ub3RhbDsK
KyAgICAgICAgaWYgKCEkcmVtYWluaW5nKQorICAgICAgICAgICAgYnJlYWs7CisKKyAgICAgICAg
dXNsZWVwKCRzdGFsbEZvciAqIDEwMDAwMDApOworICAgICAgICBpZiAoIWlzc2V0KCRzdGFsbFJl
cGVhdCkgfHwgISRzdGFsbFJlcGVhdCkKKyAgICAgICAgICAgICRzdGFsbEF0ID0gJHJlbWFpbmlu
ZzsKICAgICB9Ci0gICAgdXNsZWVwKCRzdGFsbEZvciAqIDEwMDAwMDApOwotICAgIGVjaG8oZnJl
YWQoJGZpbGUsIGZpbGVzaXplKCRuYW1lKSAtICRzdGFsbEF0KSk7CiB9IGVsc2UgewogICAgIGVj
aG8oZnJlYWQoJGZpbGUsIGZpbGVzaXplKCRuYW1lKSkpOworICAgIGZsdXNoKCk7CisgICAgb2Jf
Zmx1c2goKTsKIH0KLWZsdXNoKCk7Ci1vYl9mbHVzaCgpOwogZmNsb3NlKCRmaWxlKTsKID8+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>