<?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>84812</bug_id>
          
          <creation_ts>2012-04-24 18:05:26 -0700</creation_ts>
          <short_desc>[chromium] Prevent CCLayerImpl::willDraw/didDraw mismatches</short_desc>
          <delta_ts>2012-04-25 18:56:41 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>84805</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrienne Walker">enne</reporter>
          <assigned_to name="Adrienne Walker">enne</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>609332</commentid>
    <comment_count>0</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-24 18:05:26 -0700</bug_when>
    <thetext>[chromium] Prevent CCLayerImpl::willDraw/didDraw mismatches</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609339</commentid>
    <comment_count>1</comment_count>
      <attachid>138707</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-24 18:11:40 -0700</bug_when>
    <thetext>Created attachment 138707
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609345</commentid>
    <comment_count>2</comment_count>
      <attachid>138709</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-24 18:20:17 -0700</bug_when>
    <thetext>Created attachment 138709
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609348</commentid>
    <comment_count>3</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-24 18:20:41 -0700</bug_when>
    <thetext>(Ack.  webkit-patch upload failed.  Ignore that patch.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609823</commentid>
    <comment_count>4</comment_count>
      <attachid>138822</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-25 09:14:47 -0700</bug_when>
    <thetext>Created attachment 138822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609826</commentid>
    <comment_count>5</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-25 09:16:52 -0700</bug_when>
    <thetext>I&apos;m not totally happy with &quot;didDrawAllLayers&quot; as a function name here and will happily take suggestions, since it might be confusing that you call it even if you don&apos;t call drawLayers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>609833</commentid>
    <comment_count>6</comment_count>
      <attachid>138822</attachid>
    <who name="Dana Jansens">danakj</who>
    <bug_when>2012-04-25 09:30:42 -0700</bug_when>
    <thetext>Comment on attachment 138822
Patch

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

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:103
&gt;      virtual bool prepareToDraw(FrameData&amp;);
&gt;      virtual void drawLayers(const FrameData&amp;);
&gt; +    // Must be called if and only if prepareToDraw was called.
&gt; +    void didDrawAllLayers(const FrameData&amp;);

The naming here is getting funny.. or do you think this is more correct/descriptive? We have:
1. draw
2. drawLayers
3. drawAllLayers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610242</commentid>
    <comment_count>7</comment_count>
      <attachid>138822</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-04-25 18:00:36 -0700</bug_when>
    <thetext>Comment on attachment 138822
Patch

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

R=me.

&gt; Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h:354
&gt; +    bool m_betweenWillDrawAndDidDraw;

guard in #ifndef NDEBUG? i want to make it clear what bits of state are &quot;real&quot; and what are for asserts - i think it&apos;d be pretty weird if we started basing &quot;real&quot; logic on this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610286</commentid>
    <comment_count>8</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-25 18:47:21 -0700</bug_when>
    <thetext>Committed r115278: &lt;http://trac.webkit.org/changeset/115278&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>610294</commentid>
    <comment_count>9</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-04-25 18:56:41 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Committed r115278: &lt;http://trac.webkit.org/changeset/115278&gt;

^ Guarded things was #ifndef NDEBUG.

danakj: I don&apos;t know that the name difference is that confusing, even if it&apos;s inconsistent since there&apos;s only one type of thing we draw.  

Sorry for leaving the bikeshed painted an ugly color, but I wanted to land this because there&apos;s a video crash fix that depends on it.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138707</attachid>
            <date>2012-04-24 18:11:40 -0700</date>
            <delta_ts>2012-04-24 18:20:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84812-20120424181139.patch</filename>
            <type>text/plain</type>
            <size>28326</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ3OWVlY2M3NTk4MWI1
Yzg0OTg0ZjA1MGFhZWIyOWI5NDc3NGIwMS4uNjVkZjI1ZmY0NDVjZTU2M2Y3NjkwYzhlYzExYzA5
OWYzMGU4MGQyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU0IEBACiAyMDEyLTA0LTI0ICBBZHJp
ZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CiAKKyAgICAgICAgW2Nocm9taXVtXSBQcmV2
ZW50IENDTGF5ZXJJbXBsOjp3aWxsRHJhdy9kaWREcmF3IG1pc21hdGNoZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0ODEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVjYXVzZSBzb21lIGxheWVycyBs
b2NrL3VubG9jayByZXNvdXJjZXMsIGl0IG5lZWRzIHRvIGJlIGd1YXJhbnRlZWQKKyAgICAgICAg
dGhhdCBpZiB3aWxsRHJhdyBpcyBjYWxsZWQgb24gYSBsYXllciB0aGVuIGRpZERyYXcgd2lsbCBh
bHNvIGJlIGNhbGxlZAorICAgICAgICBvbiB0aGF0IGxheWVyIGJlZm9yZSBhbm90aGVyIHdpbGxE
cmF3IG9yIGJlZm9yZSBsYXllciBkZXN0cnVjdGlvbi4gQWRkCisgICAgICAgIGFzc2VydHMgdG8g
bWFrZSBzdXJlIHRoYXQgdGhpcyBpcyB0aGUgY2FzZS4KKworICAgICAgICB3aWxsRHJhdyBpcyBj
YWxsZWQgdmlhIENDTGF5ZXJUcmVlSG9zdEltcGw6OnByZXBhcmVUb0RyYXcgLT4KKyAgICAgICAg
Y2FsY3VsYXRlUmVuZGVyUGFzc2VzLiBkaWREcmF3IHdhcyBwcmV2aW91c2x5IGNhbGxlZCBpbgor
ICAgICAgICBDQ0xheWVyVHJlZUhvc3RJbXBsOjpkcmF3TGF5ZXJzLiBTb21ldGltZXMgZHJhd0xh
eWVycyB3YXMgYmVpbmcKKyAgICAgICAgc2tpcHBlZCBieSB0aGUgY2FsbGVyIG9mIHRoZXNlIGZ1
bmN0aW9ucyBiYXNlZCBvbiB3aGF0IHByZXBhcmVUb0RyYXcKKyAgICAgICAgcmV0dXJuZWQgKGNh
dXNpbmcgZGlkRHJhdyB0byBub3QgYmUgY2FsbGVkKS4gRml4IHRoaXMgYnkgaGF2aW5nIGFuCisg
ICAgICAgIGV4cGxpY2l0IHN0ZXAgdG8gY2FsbCBkaWREcmF3IG9uIGFsbCBsYXllcnMuIFRoaXMg
bmV3IGRpZERyYXdBbGxMYXllcnMKKyAgICAgICAgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgaWYg
YW5kIG9ubHkgaWYgcHJlcGFyZURyYXcgaXMgY2FsbGVkLgorCisgICAgICAgIFRlc3RlZCBieSBl
eGlzdGluZyB0ZXN0cyB2aWEgbmV3IGFzc2VydHMgaW4gQ0NMYXllckltcGwuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDQ0xheWVySW1wbDo6Q0NMYXllckltcGwpOgorICAgICAgICAoV2ViQ29yZTo6
Q0NMYXllckltcGw6On5DQ0xheWVySW1wbCk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVySW1w
bDo6d2lsbERyYXcpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xh
eWVySW1wbDo6ZGlkRHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NMYXllckltcGwuaDoKKyAgICAgICAgKENDTGF5ZXJJbXBsKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdEltcGw6OmRyYXdMYXllcnMpOgorICAgICAgICAo
V2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6ZGlkRHJhd0FsbExheWVycyk6CisgICAgICAg
IChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3RJbXBsLmg6CisgICAgICAgIChDQ0xheWVyVHJlZUhvc3RJbXBsKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Njcm9sbGJhckxheWVySW1wbC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1Njcm9sbGJhckxheWVySW1wbDo6d2lsbERyYXcpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NTY3JvbGxiYXJMYXllckltcGw6OmRpZERyYXcpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21wb3NpdGUpOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1w
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1RleHR1cmVMYXllckltcGw6OndpbGxEcmF3KToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGhyZWFkUHJveHk6OnNjaGVkdWxlZEFjdGlvbkRyYXdB
bmRTd2FwSW50ZXJuYWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2Nj
L0NDVmlkZW9MYXllckltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NWaWRlb0xheWVySW1w
bDo6d2lsbERyYXcpOgorICAgICAgICAoV2ViQ29yZTo6Q0NWaWRlb0xheWVySW1wbDo6ZGlkRHJh
dyk6CisKKzIwMTItMDQtMjQgIEFkcmllbm5lIFdhbGtlciAgPGVubmVAZ29vZ2xlLmNvbT4KKwog
ICAgICAgICBbY2hyb21pdW1dIERvbid0IGNhbGwgY2FsY3VsYXRlUmVuZGVyUGFzc2VzIGluIEND
TGF5ZXJUcmVlSG9zdEltcGw6OnNjcm9sbEJlZ2luKCkKICAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0ODA3CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggOWIyZmNmNzViNmNiNDVjNWI0ZjA0OGI1MzYwNGU3OWU2NzE5NmYwZC4uOGI5ODA1YmZl
MjAzMzhjZTljYmM4OTA1ZDBlZDhlNzg5YzVkMDhlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNyBAQAorMjAxMi0wNC0yNCAgQWRyaWVubmUgV2Fsa2VyICA8ZW5uZUBn
b29nbGUuY29tPgorCisgICAgICAgIFtjaHJvbWl1bV0gUHJldmVudCBDQ0xheWVySW1wbDo6d2ls
bERyYXcvZGlkRHJhdyBtaXNtYXRjaGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NDgxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVwZGF0ZSBhbGwgdGVzdHMgdG8gY2FsbCBDQ0xheWVyVHJlZUhvc3RJ
bXBsOjpkaWREcmF3QWxsTGF5ZXJzIGlmIHRoZXkKKyAgICAgICAgY2FsbCBDQ0xheWVyVHJlZUhv
c3RJbXBsOjpwcmVwYXJlVG9EcmF3LgorCisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0
SW1wbFRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0VGVzdHM6OkNDTGF5ZXJUcmVlSG9zdEltcGxU
ZXN0Ojppbml0aWFsaXplTGF5ZXJSZW5kZXJlckFuZERyYXdGcmFtZSk6CisgICAgICAgIChXZWJL
aXRUZXN0czo6VEVTVF9GKToKKwogMjAxMi0wNC0yNCAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGls
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIERvbid0IGtlZXAgcG9pbnRlcnMg
dG8gcmVsZWFzZWQgbGF5ZXIgdHJlZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuY3BwCmluZGV4IGZlZmNl
YzVlYjk3MWQ4NjkwZmRhYTU4MjI4OWU5ZWQ5ZWNkZjgzODguLmQ1ODJiZmU1YjRiMWFjNGYyNjAw
NGM4OWJhMDA3YjI4ODM1Y2ZmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKQEAgLTY5LDYg
KzY5LDcgQEAgQ0NMYXllckltcGw6OkNDTGF5ZXJJbXBsKGludCBpZCkKICAgICAsIG1fZGVidWdC
b3JkZXJXaWR0aCgwKQogICAgICwgbV9kcmF3VHJhbnNmb3JtSXNBbmltYXRpbmcoZmFsc2UpCiAg
ICAgLCBtX3NjcmVlblNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmcoZmFsc2UpCisgICAgLCBtX2Jl
dHdlZW5XaWxsRHJhd0FuZERpZERyYXcoZmFsc2UpCiAgICAgLCBtX2xheWVyQW5pbWF0aW9uQ29u
dHJvbGxlcihDQ0xheWVyQW5pbWF0aW9uQ29udHJvbGxlcjo6Y3JlYXRlKHRoaXMpKQogewogICAg
IEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CkBAIC03Nyw2ICs3OCw3IEBAIENDTGF5
ZXJJbXBsOjpDQ0xheWVySW1wbChpbnQgaWQpCiBDQ0xheWVySW1wbDo6fkNDTGF5ZXJJbXBsKCkK
IHsKICAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOworICAgIEFTU0VSVCghbV9i
ZXR3ZWVuV2lsbERyYXdBbmREaWREcmF3KTsKIH0KIAogdm9pZCBDQ0xheWVySW1wbDo6YWRkQ2hp
bGQoUGFzc093blB0cjxDQ0xheWVySW1wbD4gY2hpbGQpCkBAIC0xMzYsNiArMTM4LDE5IEBAIFBh
c3NPd25QdHI8Q0NTaGFyZWRRdWFkU3RhdGU+IENDTGF5ZXJJbXBsOjpjcmVhdGVTaGFyZWRRdWFk
U3RhdGUoKSBjb25zdAogICAgIHJldHVybiBDQ1NoYXJlZFF1YWRTdGF0ZTo6Y3JlYXRlKHF1YWRU
cmFuc2Zvcm0oKSwgZHJhd1RyYW5zZm9ybSgpLCB2aXNpYmxlTGF5ZXJSZWN0KCksIGxheWVyQ2xp
cFJlY3QsIGRyYXdPcGFjaXR5KCksIG9wYXF1ZSgpKTsKIH0KIAordm9pZCBDQ0xheWVySW1wbDo6
d2lsbERyYXcoTGF5ZXJSZW5kZXJlckNocm9taXVtKikKK3sKKyAgICAvLyB3aWxsRHJhdy9kaWRE
cmF3IG11c3QgYmUgbWF0Y2hlZC4KKyAgICBBU1NFUlQoIW1fYmV0d2VlbldpbGxEcmF3QW5kRGlk
RHJhdyk7CisgICAgbV9iZXR3ZWVuV2lsbERyYXdBbmREaWREcmF3ID0gdHJ1ZTsKK30KKwordm9p
ZCBDQ0xheWVySW1wbDo6ZGlkRHJhdygpCit7CisgICAgQVNTRVJUKG1fYmV0d2VlbldpbGxEcmF3
QW5kRGlkRHJhdyk7CisgICAgbV9iZXR3ZWVuV2lsbERyYXdBbmREaWREcmF3ID0gZmFsc2U7Cit9
CisKIHZvaWQgQ0NMYXllckltcGw6OmFwcGVuZERlYnVnQm9yZGVyUXVhZChDQ1F1YWRDdWxsZXIm
IHF1YWRMaXN0LCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSogc2hhcmVkUXVhZFN0YXRlKSBjb25z
dAogewogICAgIGlmICghaGFzRGVidWdCb3JkZXJzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaAppbmRl
eCBkM2JiYTE3MjdiMDdmN2I3YjFjNzZlYTQzMWQyM2JkNGYxNTVjNDJjLi44ZjBjMDhhNTBiMWFh
NmE3M2MzOGJhNGI3ZjJkNDM2ZDczMzczNDIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmgKQEAgLTg0
LDkgKzg0LDEzIEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgUGFzc093blB0cjxDQ1NoYXJlZFF1
YWRTdGF0ZT4gY3JlYXRlU2hhcmVkUXVhZFN0YXRlKCkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lk
IHdpbGxEcmF3KExheWVyUmVuZGVyZXJDaHJvbWl1bSopIHsgfQorICAgIC8vIHdpbGxEcmF3IG11
c3QgYmUgY2FsbGVkIGJlZm9yZSBhcHBlbmRRdWFkcy4gSWYgd2lsbERyYXcgaXMgY2FsbGVkLAor
ICAgIC8vIGRpZERyYXcgaXMgZ3VhcmFudGVlZCB0byBiZSBjYWxsZWQgYmVmb3JlIGFub3RoZXIg
d2lsbERyYXcgb3IgYmVmb3JlCisgICAgLy8gdGhlIGxheWVyIGlzIGRlc3Ryb3llZC4gVG8gZW5m
b3JjZSB0aGlzLCBhbnkgY2xhc3MgdGhhdCBvdmVycmlkZXMKKyAgICAvLyB3aWxsRHJhdy9kaWRE
cmF3IG11c3QgY2FsbCB0aGUgYmFzZSBjbGFzcyB2ZXJzaW9uLgorICAgIHZpcnR1YWwgdm9pZCB3
aWxsRHJhdyhMYXllclJlbmRlcmVyQ2hyb21pdW0qKTsKICAgICB2aXJ0dWFsIHZvaWQgYXBwZW5k
UXVhZHMoQ0NRdWFkQ3VsbGVyJiwgY29uc3QgQ0NTaGFyZWRRdWFkU3RhdGUqLCBib29sJiBoYWRN
aXNzaW5nVGlsZXMpIHsgfQotICAgIHZpcnR1YWwgdm9pZCBkaWREcmF3KCkgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZERyYXcoKTsKICAgICB2b2lkIGFwcGVuZERlYnVnQm9yZGVyUXVhZChDQ1F1
YWRDdWxsZXImLCBjb25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSopIGNvbnN0OwogCiAgICAgdmlydHVh
bCB2b2lkIGJpbmRDb250ZW50c1RleHR1cmUoTGF5ZXJSZW5kZXJlckNocm9taXVtKik7CkBAIC0z
NDcsNiArMzUxLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHJhd1RyYW5zZm9ybUlzQW5pbWF0
aW5nOwogICAgIGJvb2wgbV9zY3JlZW5TcGFjZVRyYW5zZm9ybUlzQW5pbWF0aW5nOwogCisgICAg
Ym9vbCBtX2JldHdlZW5XaWxsRHJhd0FuZERpZERyYXc7CisKICAgICAvLyBUaGUgcmVjdCB0aGF0
IGNvbnRyaWJ1dGVzIHRvIHRoZSBzY2lzc29yIHdoZW4gdGhpcyBsYXllciBpcyBkcmF3bi4KICAg
ICAvLyBJbmhlcml0ZWQgYnkgdGhlIHBhcmVudCBsYXllciBhbmQgZnVydGhlciByZXN0cmljdGVk
IGlmIHRoaXMgbGF5ZXIgbWFza3MKICAgICAvLyB0byBib3VuZHMuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdEltcGwuY3BwCmluZGV4IGI2ZjlkYjk5NTYyZjc5YzQ0MTc1NTE1NzY2Njdl
N2EyZmY2YzA4MzkuLmM0ZDU5OWI3MTM3M2UwYWE2NjJhY2VlOWNiZDNlNDZjOTgwYTZiZjQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwCkBAIC00MTYsMTQgKzQxNiw2
IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6ZHJhd0xheWVycyhjb25zdCBGcmFtZURhdGEm
IGZyYW1lKQogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZnJhbWUucmVuZGVyUGFzc2VzLnNp
emUoKTsgKytpKQogICAgICAgICBtX2xheWVyUmVuZGVyZXItPmRyYXdSZW5kZXJQYXNzKGZyYW1l
LnJlbmRlclBhc3Nlc1tpXS5nZXQoKSk7CiAKLSAgICB0eXBlZGVmIENDTGF5ZXJJdGVyYXRvcjxD
Q0xheWVySW1wbCwgVmVjdG9yPENDTGF5ZXJJbXBsKj4sIENDUmVuZGVyU3VyZmFjZSwgQ0NMYXll
ckl0ZXJhdG9yQWN0aW9uczo6QmFja1RvRnJvbnQ+IENDTGF5ZXJJdGVyYXRvclR5cGU7Ci0KLSAg
ICBDQ0xheWVySXRlcmF0b3JUeXBlIGVuZCA9IENDTGF5ZXJJdGVyYXRvclR5cGU6OmVuZCgmZnJh
bWUucmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7Ci0gICAgZm9yIChDQ0xheWVySXRlcmF0b3JUeXBl
IGl0ID0gQ0NMYXllckl0ZXJhdG9yVHlwZTo6YmVnaW4oJmZyYW1lLnJlbmRlclN1cmZhY2VMYXll
ckxpc3QpOyBpdCAhPSBlbmQ7ICsraXQpIHsKLSAgICAgICAgaWYgKGl0LnJlcHJlc2VudHNJdHNl
bGYoKSAmJiAhaXQtPnZpc2libGVMYXllclJlY3QoKS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBp
dC0+ZGlkRHJhdygpOwotICAgIH0KLQogICAgIGlmIChtX2RlYnVnUmVjdEhpc3RvcnktPmVuYWJs
ZWQoc2V0dGluZ3MoKSkpCiAgICAgICAgIG1fZGVidWdSZWN0SGlzdG9yeS0+c2F2ZURlYnVnUmVj
dHNGb3JDdXJyZW50RnJhbWUobV9yb290TGF5ZXJJbXBsLmdldCgpLCBmcmFtZS5yZW5kZXJTdXJm
YWNlTGF5ZXJMaXN0LCBzZXR0aW5ncygpKTsKIApAQCAtNDM4LDYgKzQzMCwxNyBAQCB2b2lkIEND
TGF5ZXJUcmVlSG9zdEltcGw6OmRyYXdMYXllcnMoY29uc3QgRnJhbWVEYXRhJiBmcmFtZSkKICAg
ICBtX3Jvb3RMYXllckltcGwtPnJlc2V0QWxsQ2hhbmdlVHJhY2tpbmdGb3JTdWJ0cmVlKCk7CiB9
CiAKK3ZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6ZGlkRHJhd0FsbExheWVycyhjb25zdCBGcmFt
ZURhdGEmIGZyYW1lKQoreworICAgIHR5cGVkZWYgQ0NMYXllckl0ZXJhdG9yPENDTGF5ZXJJbXBs
LCBWZWN0b3I8Q0NMYXllckltcGwqPiwgQ0NSZW5kZXJTdXJmYWNlLCBDQ0xheWVySXRlcmF0b3JB
Y3Rpb25zOjpCYWNrVG9Gcm9udD4gQ0NMYXllckl0ZXJhdG9yVHlwZTsKKworICAgIENDTGF5ZXJJ
dGVyYXRvclR5cGUgZW5kID0gQ0NMYXllckl0ZXJhdG9yVHlwZTo6ZW5kKCZmcmFtZS5yZW5kZXJT
dXJmYWNlTGF5ZXJMaXN0KTsKKyAgICBmb3IgKENDTGF5ZXJJdGVyYXRvclR5cGUgaXQgPSBDQ0xh
eWVySXRlcmF0b3JUeXBlOjpiZWdpbigmZnJhbWUucmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7IGl0
ICE9IGVuZDsgKytpdCkgeworICAgICAgICBpZiAoaXQucmVwcmVzZW50c0l0c2VsZigpICYmICFp
dC0+dmlzaWJsZUxheWVyUmVjdCgpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGl0LT5kaWREcmF3
KCk7CisgICAgfQorfQorCiB2b2lkIENDTGF5ZXJUcmVlSG9zdEltcGw6OmZpbmlzaEFsbFJlbmRl
cmluZygpCiB7CiAgICAgaWYgKG1fbGF5ZXJSZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJU
cmVlSG9zdEltcGwuaAppbmRleCAxNzdiNGI1NmZmODc2MmYyMDczZWYzMzY5YTIyNjgxYjBiNWMx
OWRjLi4zZDI3MmVkM2MzOGI3MWZjZTM3MzYwM2Q3ZTI2Y2VjNjEwNzU2NjRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCkBAIC05Miw5ICs5MiwxNSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGJlZ2luQ29tbWl0KCk7CiAgICAgdmlydHVhbCB2b2lkIGNvbW1pdENv
bXBsZXRlKCk7CiAgICAgdmlydHVhbCB2b2lkIGFuaW1hdGUoZG91YmxlIG1vbm90b25pY1RpbWUs
IGRvdWJsZSB3YWxsQ2xvY2tUaW1lKTsKLSAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIHByb2JsZW1z
IG9jY3VyZWQgcHJlcGFyaW5nIHRoZSBmcmFtZSwgYW5kIHdlIHNob3VsZCB0cnkgdG8gYXZvaWQg
ZGlzcGxheWluZyB0aGUgZnJhbWUuCisKKyAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIHByb2JsZW1z
IG9jY3VyZWQgcHJlcGFyaW5nIHRoZSBmcmFtZSwgYW5kIHdlIHNob3VsZCB0cnkKKyAgICAvLyB0
byBhdm9pZCBkaXNwbGF5aW5nIHRoZSBmcmFtZS4gSWYgcHJlcGFyZVRvRHJhdyBpcyBjYWxsZWQs
CisgICAgLy8gZGlkRHJhd0FsbExheWVycyBtdXN0IGFsc28gYmUgY2FsbGVkLCByZWdhcmRsZXNz
IG9mIHdoZXRoZXIgZHJhd0xheWVycyBpcworICAgIC8vIGNhbGxlZCBiZXR3ZWVuIHRoZSB0d28u
CiAgICAgdmlydHVhbCBib29sIHByZXBhcmVUb0RyYXcoRnJhbWVEYXRhJik7CiAgICAgdmlydHVh
bCB2b2lkIGRyYXdMYXllcnMoY29uc3QgRnJhbWVEYXRhJik7CisgICAgLy8gTXVzdCBiZSBjYWxs
ZWQgaWYgYW5kIG9ubHkgaWYgcHJlcGFyZVRvRHJhdyB3YXMgY2FsbGVkLgorICAgIHZvaWQgZGlk
RHJhd0FsbExheWVycyhjb25zdCBGcmFtZURhdGEmKTsKIAogICAgIC8vIExheWVyUmVuZGVyZXJD
aHJvbWl1bUNsaWVudCBpbXBsZW1lbnRhdGlvbgogICAgIHZpcnR1YWwgY29uc3QgSW50U2l6ZSYg
dmlld3BvcnRTaXplKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gbV92aWV3cG9ydFNpemU7IH0K
QEAgLTE3Nyw3ICsxODMsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHVwZGF0ZU1heFNjcm9sbFBv
c2l0aW9uKCk7CiAgICAgdm9pZCB0cmFja0RhbWFnZUZvckFsbFN1cmZhY2VzKENDTGF5ZXJJbXBs
KiByb290RHJhd0xheWVyLCBjb25zdCBDQ0xheWVyTGlzdCYgcmVuZGVyU3VyZmFjZUxheWVyTGlz
dCk7CiAgICAgdm9pZCBjYWxjdWxhdGVSZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KENDTGF5ZXJMaXN0
Jik7Ci0gICAgLy8gUmV0dXJucyBmYWxzZSBpZiB0aGUgZnJhbWUgc2hvdWxkIG5vdCBiZSBkaXNw
bGF5ZWQuCisKKyAgICAvLyBSZXR1cm5zIGZhbHNlIGlmIHRoZSBmcmFtZSBzaG91bGQgbm90IGJl
IGRpc3BsYXllZC4gVGhpcyBmdW5jdGlvbiBzaG91bGQKKyAgICAvLyBvbmx5IGJlIGNhbGxlZCBm
cm9tIHByZXBhcmVUb0RyYXcsIGFzIGRpZERyYXdBbGxMYXllcnMgbXVzdCBiZSBjYWxsZWQKKyAg
ICAvLyBpZiB0aGlzIGhlbHBlciBmdW5jdGlvbiBpcyBjYWxsZWQuCiAgICAgYm9vbCBjYWxjdWxh
dGVSZW5kZXJQYXNzZXMoQ0NSZW5kZXJQYXNzTGlzdCYsIENDTGF5ZXJMaXN0JiByZW5kZXJTdXJm
YWNlTGF5ZXJMaXN0KTsKICAgICB2b2lkIGFuaW1hdGVMYXllcnNSZWN1cnNpdmUoQ0NMYXllcklt
cGwqLCBkb3VibGUgbW9ub3RvbmljVGltZSwgZG91YmxlIHdhbGxDbG9ja1RpbWUsIENDQW5pbWF0
aW9uRXZlbnRzVmVjdG9yKiwgYm9vbCYgZGlkQW5pbWF0ZSwgYm9vbCYgbmVlZHNBbmltYXRlTGF5
ZXJzKTsKICAgICBJbnRTaXplIGNvbnRlbnRTaXplKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Njcm9sbGJhckxheWVy
SW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1Njcm9sbGJhckxheWVySW1wbC5jcHAKaW5kZXggNGZmYzRhZDFkMDg4YTYzMDVhODdlM2IyNDk3
YmQyNmM0MzAyOTVjMC4uMjQzYWQyMzFlN2Y0NmZjODllYjA0MDVkOGQwYmY1MzY4MzFlYzYxNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NTY3JvbGxiYXJMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsYmFyTGF5ZXJJbXBsLmNwcApAQCAtNTIsNiArNTIs
OCBAQCBDQ1Njcm9sbGJhckxheWVySW1wbDo6Q0NTY3JvbGxiYXJMYXllckltcGwoaW50IGlkKQog
CiB2b2lkIENDU2Nyb2xsYmFyTGF5ZXJJbXBsOjp3aWxsRHJhdyhMYXllclJlbmRlcmVyQ2hyb21p
dW0qIGxheWVyUmVuZGVyZXIpCiB7CisgICAgQ0NMYXllckltcGw6OndpbGxEcmF3KGxheWVyUmVu
ZGVyZXIpOworCiAgICAgaWYgKGJvdW5kcygpLmlzRW1wdHkoKSB8fCBjb250ZW50Qm91bmRzKCku
aXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTk0LDYgKzk2LDggQEAgdm9pZCBDQ1Nj
cm9sbGJhckxheWVySW1wbDo6YXBwZW5kUXVhZHMoQ0NRdWFkQ3VsbGVyJiBxdWFkTGlzdCwgY29u
c3QgQ0NTaGFyZWRRdWEKIAogdm9pZCBDQ1Njcm9sbGJhckxheWVySW1wbDo6ZGlkRHJhdygpCiB7
CisgICAgQ0NMYXllckltcGw6OmRpZERyYXcoKTsKKwogICAgIG1fdGV4dHVyZS0+dW5yZXNlcnZl
KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKaW5kZXggYWFj
ZmU1NGFiNjA2MjZiYTIzM2Y1NDJhMjJlMGNkZjkwYWNhZWViZC4uMTU3ZWY3NjU5OWM4MWE1MGFm
YTliZTExMmY5Yjg0MDBiMjgzNzEwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQ
cm94eS5jcHAKQEAgLTMyMSw2ICszMjEsNyBAQCBib29sIENDU2luZ2xlVGhyZWFkUHJveHk6OmRv
Q29tcG9zaXRlKCkKICAgICAgIENDTGF5ZXJUcmVlSG9zdEltcGw6OkZyYW1lRGF0YSBmcmFtZTsK
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJhbWUpOwogICAgICAg
bV9sYXllclRyZWVIb3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgICBtX2xheWVyVHJl
ZUhvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKICAgICB9CiAKICAgICBpZiAobV9s
YXllclRyZWVIb3N0SW1wbC0+aXNDb250ZXh0TG9zdCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVMYXllckltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0
dXJlTGF5ZXJJbXBsLmNwcAppbmRleCAyNWNiZTRiNTk1MzAxM2E4N2FhZmVlNjMyNjk3Yjk5NDQ2
MDNkZThlLi5mMWExOGE1NTViYzI3YTA4YmU3NGI4ZDlhNDA0ZWEzNjhjNWY5NTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1
cmVMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5jcHAKQEAgLTU5LDYgKzU5LDggQEAgQ0NUZXh0
dXJlTGF5ZXJJbXBsOjp+Q0NUZXh0dXJlTGF5ZXJJbXBsKCkKIAogdm9pZCBDQ1RleHR1cmVMYXll
ckltcGw6OndpbGxEcmF3KExheWVyUmVuZGVyZXJDaHJvbWl1bSogbGF5ZXJSZW5kZXJlcikKIHsK
KyAgICBDQ0xheWVySW1wbDo6d2lsbERyYXcobGF5ZXJSZW5kZXJlcik7CisKICAgICBpZiAobV9p
b1N1cmZhY2VDaGFuZ2VkKSB7CiAgICAgICAgIEdyYXBoaWNzQ29udGV4dDNEKiBjb250ZXh0ID0g
bGF5ZXJSZW5kZXJlci0+Y29udGV4dCgpOwogICAgICAgICBFeHRlbnNpb25zM0RDaHJvbWl1bSog
ZXh0ZW5zaW9ucyA9IHN0YXRpY19jYXN0PEV4dGVuc2lvbnMzRENocm9taXVtKj4oY29udGV4dC0+
Z2V0RXh0ZW5zaW9ucygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKaW5kZXggMTM4Yzcy
MzQ5OGJkMWY4Y2NiMTJlOGVkYjkzM2JmNDhhZGQ5MDQ5Ny4uMmM2YzUyOTY3M2EzYWM0NmUzOTQy
Nzc0YmU4ZTJhOTllMTlmNDExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUaHJlYWRQcm94eS5jcHAKQEAgLTYw
OSw2ICs2MDksNyBAQCBDQ1NjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwUmVzdWx0IENDVGhyZWFk
UHJveHk6OnNjaGVkdWxlZEFjdGlvbkRyYXdBbmRTd2FwSW50ZQogICAgICAgICBtX2xheWVyVHJl
ZUhvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKICAgICAgICAgcmVzdWx0LmRpZERyYXcgPSB0
cnVlOwogICAgIH0KKyAgICBtX2xheWVyVHJlZUhvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZy
YW1lKTsKIAogICAgIC8vIENoZWNrIGZvciBhIHBlbmRpbmcgY29tcG9zaXRlQW5kUmVhZGJhY2su
CiAgICAgaWYgKG1fcmVhZGJhY2tSZXF1ZXN0T25JbXBsVGhyZWFkKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
VmlkZW9MYXllckltcGwuY3BwCmluZGV4IDlhNzZmYTBjYzY1M2MxZDlhYjFhMTJiNmEwZDBhYTYw
N2UzNjg4MWIuLjljMDc2YTJlZDZmYTg4MmNkNzU1YWQ4MTEwZjA0NjQ5MDI5M2M4M2QgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlk
ZW9MYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCkBAIC0xMjEsNiArMTIxLDcgQEAgc3RhdGlj
IEdDM0RlbnVtIGNvbnZlcnRWRkNGb3JtYXRUb0dDM0RGb3JtYXQoY29uc3QgV2ViS2l0OjpXZWJW
aWRlb0ZyYW1lJiBmcmFtZSkKIHZvaWQgQ0NWaWRlb0xheWVySW1wbDo6d2lsbERyYXcoTGF5ZXJS
ZW5kZXJlckNocm9taXVtKiBsYXllclJlbmRlcmVyKQogewogICAgIEFTU0VSVChDQ1Byb3h5Ojpp
c0ltcGxUaHJlYWQoKSk7CisgICAgQ0NMYXllckltcGw6OndpbGxEcmF3KGxheWVyUmVuZGVyZXIp
OwogCiAgICAgLy8gRXhwbGljaXRseSBsb2NrIGFuZCB1bmxvY2sgdGhlIHByb3ZpZGVyIG11dGV4
IHNvIGl0IGNhbiBiZSBoZWxkIGZyb20KICAgICAvLyB3aWxsRHJhdyB0byBkaWREcmF3LiBTaW5j
ZSB0aGUgY29tcG9zaXRvciB0aHJlYWQgaXMgaW4gdGhlIG1pZGRsZSBvZgpAQCAtMTg0LDYgKzE4
NSw3IEBAIHZvaWQgQ0NWaWRlb0xheWVySW1wbDo6YXBwZW5kUXVhZHMoQ0NRdWFkQ3VsbGVyJiBx
dWFkTGlzdCwgY29uc3QgQ0NTaGFyZWRRdWFkU3RhCiB2b2lkIENDVmlkZW9MYXllckltcGw6OmRp
ZERyYXcoKQogewogICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CisgICAgQ0NM
YXllckltcGw6OmRpZERyYXcoKTsKIAogICAgIGlmICghbV9mcmFtZSkKICAgICAgICAgcmV0dXJu
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhv
c3RJbXBsVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVl
SG9zdEltcGxUZXN0LmNwcAppbmRleCAwY2IyZjBkZjNhNGU2ZTIzODViNmYyNmQ1ODk0ZmU1OWRi
NTEyNTQ4Li4zNGVhYzBmOGIwOWE5ZWE1MTlkZTRhNTlmZTcxODgwYzg4NGQ3M2E1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdElt
cGxUZXN0LmNwcApAQCAtMTE0LDYgKzExNCw3IEBAIHB1YmxpYzoKICAgICAgICAgQ0NMYXllclRy
ZWVIb3N0SW1wbDo6RnJhbWVEYXRhIGZyYW1lOwogICAgICAgICBFWFBFQ1RfVFJVRShtX2hvc3RJ
bXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgICAgIG1faG9zdEltcGwtPmRyYXdMYXll
cnMoZnJhbWUpOworICAgICAgICBtX2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsK
ICAgICB9CiAKIHByb3RlY3RlZDoKQEAgLTUxNSw2ICs1MTYsNyBAQCBURVNUX0YoQ0NMYXllclRy
ZWVIb3N0SW1wbFRlc3QsIGRpZERyYXdOb3RDYWxsZWRPbkhpZGRlbkxheWVyKQogCiAgICAgRVhQ
RUNUX1RSVUUobV9ob3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwogICAgIG1faG9zdElt
cGwtPmRyYXdMYXllcnMoZnJhbWUpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMo
ZnJhbWUpOwogCiAgICAgRVhQRUNUX0ZBTFNFKHJvb3QtPndpbGxEcmF3Q2FsbGVkKCkpOwogICAg
IEVYUEVDVF9GQUxTRShyb290LT5kaWREcmF3Q2FsbGVkKCkpOwpAQCAtNTI5LDYgKzUzMSw3IEBA
IFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgZGlkRHJhd05vdENhbGxlZE9uSGlkZGVu
TGF5ZXIpCiAKICAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1l
KSk7CiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9ob3N0SW1wbC0+
ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAKICAgICBFWFBFQ1RfVFJVRShyb290LT53aWxsRHJh
d0NhbGxlZCgpKTsKICAgICBFWFBFQ1RfVFJVRShyb290LT5kaWREcmF3Q2FsbGVkKCkpOwpAQCAt
NTYwLDYgKzU2Myw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgZGlkRHJhd0Nh
bGxlZE9uQWxsTGF5ZXJzKQogICAgIENDTGF5ZXJUcmVlSG9zdEltcGw6OkZyYW1lRGF0YSBmcmFt
ZTsKICAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAg
ICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9ob3N0SW1wbC0+ZGlkRHJh
d0FsbExheWVycyhmcmFtZSk7CiAKICAgICBFWFBFQ1RfVFJVRShyb290LT5kaWREcmF3Q2FsbGVk
KCkpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+ZGlkRHJhd0NhbGxlZCgpKTsKQEAgLTYwMiw2
ICs2MDYsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHByZXBhcmVUb0RyYXdG
YWlsc1doZW5BbmltYXRpb25Vc2VzQ2hlY2tlcmJvYXJkKQogCiAgICAgRVhQRUNUX1RSVUUobV9o
b3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwogICAgIG1faG9zdEltcGwtPmRyYXdMYXll
cnMoZnJhbWUpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAg
ICAgLy8gV2hlbiBhIHRleHR1cmUgaXMgbWlzc2luZyBhbmQgd2UncmUgbm90IGFuaW1hdGluZywg
d2UgZHJhdyBhcyB1c3VhbCB3aXRoIGNoZWNrZXJib2FyZGluZy4KICAgICBtX2hvc3RJbXBsLT5z
ZXRSb290TGF5ZXIoRGlkRHJhd0NoZWNrTGF5ZXI6OmNyZWF0ZSgwKSk7CkBAIC02MTAsNiArNjE1
LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBwcmVwYXJlVG9EcmF3RmFpbHNX
aGVuQW5pbWF0aW9uVXNlc0NoZWNrZXJib2FyZCkKIAogICAgIEVYUEVDVF9UUlVFKG1faG9zdElt
cGwtPnByZXBhcmVUb0RyYXcoZnJhbWUpKTsKICAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZy
YW1lKTsKKyAgICBtX2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKIAogICAgIC8v
IFdoZW4gYSB0ZXh0dXJlIGlzIG1pc3NpbmcgYW5kIHdlJ3JlIGFuaW1hdGluZywgd2UgZG9uJ3Qg
d2FudCB0byBkcmF3IGFueXRoaW5nLgogICAgIG1faG9zdEltcGwtPnNldFJvb3RMYXllcihEaWRE
cmF3Q2hlY2tMYXllcjo6Y3JlYXRlKDApKTsKQEAgLTYyMCw2ICs2MjYsNyBAQCBURVNUX0YoQ0NM
YXllclRyZWVIb3N0SW1wbFRlc3QsIHByZXBhcmVUb0RyYXdGYWlsc1doZW5BbmltYXRpb25Vc2Vz
Q2hlY2tlcmJvYXJkKQogICAgIEVYUEVDVF9GQUxTRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3
KGZyYW1lKSk7CiAgICAgRVhQRUNUX1RSVUUobV9kaWRSZXF1ZXN0Q29tbWl0KTsKICAgICBtX2hv
c3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKKyAgICBtX2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5
ZXJzKGZyYW1lKTsKIAogICAgIC8vIFdoZW4gdGhlIGxheWVyIHNraXBzIGRyYXcgYW5kIHdlJ3Jl
IGFuaW1hdGluZywgd2Ugc3RpbGwgZHJhdyB0aGUgZnJhbWUuCiAgICAgbV9ob3N0SW1wbC0+c2V0
Um9vdExheWVyKERpZERyYXdDaGVja0xheWVyOjpjcmVhdGUoMCkpOwpAQCAtNjI4LDYgKzYzNSw3
IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgcHJlcGFyZVRvRHJhd0ZhaWxzV2hl
bkFuaW1hdGlvblVzZXNDaGVja2VyYm9hcmQpCiAKICAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBs
LT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFt
ZSk7CisgICAgbV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiB9CiAKIFRFU1Rf
RihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgc2Nyb2xsUm9vdElnbm9yZWQpCkBAIC0xMDAxLDYg
KzEwMDksNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGJsZW5kaW5nT2ZmV2hl
bkRyYXdpbmdPcGFxdWVMYXllcnMpCiAgICAgRVhQRUNUX1RSVUUobV9ob3N0SW1wbC0+cHJlcGFy
ZVRvRHJhdyhmcmFtZSkpOwogICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoZnJhbWUpOwogICAg
IEVYUEVDVF9UUlVFKGxheWVyMS0+cXVhZHNBcHBlbmRlZCgpKTsKKyAgICBtX2hvc3RJbXBsLT5k
aWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKIAogICAgIC8vIExheWVyIHdpdGggdHJhbnNsdWNlbnQg
Y29udGVudCwgYnV0IG9wYXF1ZSBjb250ZW50LCBzbyBkcmF3biB3aXRob3V0IGJsZW5kaW5nLgog
ICAgIGxheWVyMS0+c2V0T3BhcXVlKGZhbHNlKTsKQEAgLTEwMDksNiArMTAxOCw3IEBAIFRFU1Rf
RihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxh
eWVycykKICAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7
CiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CiAgICAgRVhQRUNUX1RSVUUobGF5
ZXIxLT5xdWFkc0FwcGVuZGVkKCkpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMo
ZnJhbWUpOwogCiAgICAgLy8gTGF5ZXIgd2l0aCB0cmFuc2x1Y2VudCBjb250ZW50IGFuZCBwYWlu
dGluZywgc28gZHJhd24gd2l0aCBibGVuZGluZy4KICAgICBsYXllcjEtPnNldE9wYXF1ZShmYWxz
ZSk7CkBAIC0xMDE3LDYgKzEwMjcsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3Qs
IGJsZW5kaW5nT2ZmV2hlbkRyYXdpbmdPcGFxdWVMYXllcnMpCiAgICAgRVhQRUNUX1RSVUUobV9o
b3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwogICAgIG1faG9zdEltcGwtPmRyYXdMYXll
cnMoZnJhbWUpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+cXVhZHNBcHBlbmRlZCgpKTsKKyAg
ICBtX2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKIAogICAgIC8vIExheWVyIHdp
dGggdHJhbnNsdWNlbnQgb3BhY2l0eSwgZHJhd24gd2l0aCBibGVuZGluZy4KICAgICBsYXllcjEt
PnNldE9wYXF1ZSh0cnVlKTsKQEAgLTEwMjYsNiArMTAzNyw3IEBAIFRFU1RfRihDQ0xheWVyVHJl
ZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVycykKICAgICBF
WFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgbV9ob3N0
SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5xdWFkc0Fw
cGVuZGVkKCkpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAg
ICAgLy8gTGF5ZXIgd2l0aCB0cmFuc2x1Y2VudCBvcGFjaXR5IGFuZCBwYWludGluZywgZHJhd24g
d2l0aCBibGVuZGluZy4KICAgICBsYXllcjEtPnNldE9wYXF1ZSh0cnVlKTsKQEAgLTEwMzUsNiAr
MTA0Nyw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZXaGVu
RHJhd2luZ09wYXF1ZUxheWVycykKICAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJl
VG9EcmF3KGZyYW1lKSk7CiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CiAgICAg
RVhQRUNUX1RSVUUobGF5ZXIxLT5xdWFkc0FwcGVuZGVkKCkpOworICAgIG1faG9zdEltcGwtPmRp
ZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAgICAgbGF5ZXIxLT5hZGRDaGlsZChCbGVuZFN0YXRl
Q2hlY2tMYXllcjo6Y3JlYXRlKDIpKTsKICAgICBCbGVuZFN0YXRlQ2hlY2tMYXllciogbGF5ZXIy
ID0gc3RhdGljX2Nhc3Q8QmxlbmRTdGF0ZUNoZWNrTGF5ZXIqPihsYXllcjEtPmNoaWxkcmVuKClb
MF0uZ2V0KCkpOwpAQCAtMTA1Miw2ICsxMDY1LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdElt
cGxUZXN0LCBibGVuZGluZ09mZldoZW5EcmF3aW5nT3BhcXVlTGF5ZXJzKQogICAgIG1faG9zdElt
cGwtPmRyYXdMYXllcnMoZnJhbWUpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+cXVhZHNBcHBl
bmRlZCgpKTsKICAgICBFWFBFQ1RfVFJVRShsYXllcjItPnF1YWRzQXBwZW5kZWQoKSk7CisgICAg
bV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAKICAgICAvLyBQYXJlbnQgbGF5
ZXIgd2l0aCB0cmFuc2x1Y2VudCBjb250ZW50LCBkcmF3biB3aXRoIGJsZW5kaW5nLgogICAgIC8v
IENoaWxkIGxheWVyIHdpdGggb3BhcXVlIGNvbnRlbnQsIGRyYXduIHdpdGhvdXQgYmxlbmRpbmcu
CkBAIC0xMDYzLDYgKzEwNzcsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGJs
ZW5kaW5nT2ZmV2hlbkRyYXdpbmdPcGFxdWVMYXllcnMpCiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xh
eWVycyhmcmFtZSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5xdWFkc0FwcGVuZGVkKCkpOwog
ICAgIEVYUEVDVF9UUlVFKGxheWVyMi0+cXVhZHNBcHBlbmRlZCgpKTsKKyAgICBtX2hvc3RJbXBs
LT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKIAogICAgIC8vIFBhcmVudCBsYXllciB3aXRoIHRy
YW5zbHVjZW50IGNvbnRlbnQgYnV0IG9wYXF1ZSBwYWludGluZywgZHJhd24gd2l0aG91dCBibGVu
ZGluZy4KICAgICAvLyBDaGlsZCBsYXllciB3aXRoIG9wYXF1ZSBjb250ZW50LCBkcmF3biB3aXRo
b3V0IGJsZW5kaW5nLgpAQCAtMTA3NCw2ICsxMDg5LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9z
dEltcGxUZXN0LCBibGVuZGluZ09mZldoZW5EcmF3aW5nT3BhcXVlTGF5ZXJzKQogICAgIG1faG9z
dEltcGwtPmRyYXdMYXllcnMoZnJhbWUpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+cXVhZHNB
cHBlbmRlZCgpKTsKICAgICBFWFBFQ1RfVFJVRShsYXllcjItPnF1YWRzQXBwZW5kZWQoKSk7Cisg
ICAgbV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAKICAgICAvLyBQYXJlbnQg
bGF5ZXIgd2l0aCB0cmFuc2x1Y2VudCBvcGFjaXR5IGFuZCBvcGFxdWUgY29udGVudC4gU2luY2Ug
aXQgaGFzIGEKICAgICAvLyBkcmF3aW5nIGNoaWxkLCBpdCdzIGRyYXduIHRvIGEgcmVuZGVyIHN1
cmZhY2Ugd2hpY2ggY2FycmllcyB0aGUgb3BhY2l0eSwKQEAgLTEwODksNiArMTEwNSw3IEBAIFRF
U1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1
ZUxheWVycykKICAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKICAgICBFWFBFQ1Rf
VFJVRShsYXllcjEtPnF1YWRzQXBwZW5kZWQoKSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIyLT5x
dWFkc0FwcGVuZGVkKCkpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUp
OwogCiAgICAgLy8gRHJhdyBhZ2FpbiwgYnV0IHdpdGggY2hpbGQgbm9uLW9wYXF1ZSwgdG8gbWFr
ZSBzdXJlCiAgICAgLy8gbGF5ZXIxIG5vdCBjdWxsZWQuCkBAIC0xMTA0LDYgKzExMjEsNyBAQCBU
RVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGJsZW5kaW5nT2ZmV2hlbkRyYXdpbmdPcGFx
dWVMYXllcnMpCiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CiAgICAgRVhQRUNU
X1RSVUUobGF5ZXIxLT5xdWFkc0FwcGVuZGVkKCkpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMi0+
cXVhZHNBcHBlbmRlZCgpKTsKKyAgICBtX2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1l
KTsKIAogICAgIC8vIEEgc2Vjb25kIHdheSBvZiBtYWtpbmcgdGhlIGNoaWxkIG5vbi1vcGFxdWUu
CiAgICAgbGF5ZXIxLT5zZXRPcGFxdWUodHJ1ZSk7CkBAIC0xMTE3LDYgKzExMzUsNyBAQCBURVNU
X0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGJsZW5kaW5nT2ZmV2hlbkRyYXdpbmdPcGFxdWVM
YXllcnMpCiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CiAgICAgRVhQRUNUX1RS
VUUobGF5ZXIxLT5xdWFkc0FwcGVuZGVkKCkpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMi0+cXVh
ZHNBcHBlbmRlZCgpKTsKKyAgICBtX2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsK
IAogICAgIC8vIEFuZCB3aGVuIHRoZSBsYXllciBzYXlzIGl0cyBub3Qgb3BhcXVlIGJ1dCBpcyBw
YWludGVkIG9wYXF1ZSwgaXQgaXMgbm90IGJsZW5kZWQuCiAgICAgbGF5ZXIxLT5zZXRPcGFxdWUo
dHJ1ZSk7CkBAIC0xMTMwLDYgKzExNDksNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRl
c3QsIGJsZW5kaW5nT2ZmV2hlbkRyYXdpbmdPcGFxdWVMYXllcnMpCiAgICAgbV9ob3N0SW1wbC0+
ZHJhd0xheWVycyhmcmFtZSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5xdWFkc0FwcGVuZGVk
KCkpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMi0+cXVhZHNBcHBlbmRlZCgpKTsKKyAgICBtX2hv
c3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKIAogICAgIC8vIExheWVyIHdpdGggcGFy
dGlhbGx5IG9wYXF1ZSBjb250ZW50cywgZHJhd24gd2l0aCBibGVuZGluZy4KICAgICBsYXllcjEt
PnNldE9wYXF1ZShmYWxzZSk7CkBAIC0xMTQxLDYgKzExNjEsNyBAQCBURVNUX0YoQ0NMYXllclRy
ZWVIb3N0SW1wbFRlc3QsIGJsZW5kaW5nT2ZmV2hlbkRyYXdpbmdPcGFxdWVMYXllcnMpCiAgICAg
RVhQRUNUX1RSVUUobV9ob3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwogICAgIG1faG9z
dEltcGwtPmRyYXdMYXllcnMoZnJhbWUpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyMS0+cXVhZHNB
cHBlbmRlZCgpKTsKKyAgICBtX2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKIAog
ICAgIC8vIExheWVyIHdpdGggcGFydGlhbGx5IG9wYXF1ZSBjb250ZW50cyBwYXJ0aWFsbHkgY3Vs
bGVkLCBkcmF3biB3aXRoIGJsZW5kaW5nLgogICAgIGxheWVyMS0+c2V0T3BhcXVlKGZhbHNlKTsK
QEAgLTExNTIsNiArMTE3Myw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxl
bmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVycykKICAgICBFWFBFQ1RfVFJVRShtX2hvc3RJ
bXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhm
cmFtZSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5xdWFkc0FwcGVuZGVkKCkpOworICAgIG1f
aG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAgICAgLy8gTGF5ZXIgd2l0aCBw
YXJ0aWFsbHkgb3BhcXVlIGNvbnRlbnRzIGN1bGxlZCwgZHJhd24gd2l0aCBibGVuZGluZy4KICAg
ICBsYXllcjEtPnNldE9wYXF1ZShmYWxzZSk7CkBAIC0xMTYzLDYgKzExODUsNyBAQCBURVNUX0Yo
Q0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGJsZW5kaW5nT2ZmV2hlbkRyYXdpbmdPcGFxdWVMYXll
cnMpCiAgICAgRVhQRUNUX1RSVUUobV9ob3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwog
ICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoZnJhbWUpOwogICAgIEVYUEVDVF9UUlVFKGxheWVy
MS0+cXVhZHNBcHBlbmRlZCgpKTsKKyAgICBtX2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZy
YW1lKTsKIAogICAgIC8vIExheWVyIHdpdGggcGFydGlhbGx5IG9wYXF1ZSBjb250ZW50cyBhbmQg
dHJhbnNsdWNlbnQgY29udGVudHMgY3VsbGVkLCBkcmF3biB3aXRob3V0IGJsZW5kaW5nLgogICAg
IGxheWVyMS0+c2V0T3BhcXVlKGZhbHNlKTsKQEAgLTExNzQsNiArMTE5Nyw3IEBAIFRFU1RfRihD
Q0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVy
cykKICAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAg
ICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIx
LT5xdWFkc0FwcGVuZGVkKCkpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJh
bWUpOwogCiB9CiAKQEAgLTEyMTAsNiArMTIzNCw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJ
bXBsVGVzdCwgdmlld3BvcnRDb3ZlcmVkKQogICAgICAgICBFWFBFQ1RfRVEoMXUsIGZyYW1lLnJl
bmRlclBhc3Nlc1swXS0+cXVhZExpc3QoKS5zaXplKCkpOwogCiAgICAgICAgIHZlcmlmeVF1YWRz
RXhhY3RseUNvdmVyUmVjdChmcmFtZS5yZW5kZXJQYXNzZXNbMF0tPnF1YWRMaXN0KCksIEludFJl
Y3QoLWxheWVyUmVjdC5sb2NhdGlvbigpLCB2aWV3cG9ydFNpemUpKTsKKyAgICAgICAgbV9ob3N0
SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAgICAgfQogCiAgICAgLy8gRW1wdHkgdmlz
aWJsZSBjb250ZW50IGFyZWEgKGZ1bGxzY3JlZW4gZ3V0dGVyIHJlY3QpCkBAIC0xMjI0LDYgKzEy
NDksNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHZpZXdwb3J0Q292ZXJlZCkK
ICAgICAgICAgQ0NMYXllclRyZWVIb3N0SW1wbDo6RnJhbWVEYXRhIGZyYW1lOwogICAgICAgICBF
WFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgICAgIEFT
U0VSVF9FUSgxdSwgZnJhbWUucmVuZGVyUGFzc2VzLnNpemUoKSk7CisgICAgICAgIG1faG9zdElt
cGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAgICAgICAgIHNpemVfdCBudW1HdXR0ZXJR
dWFkcyA9IDA7CiAgICAgICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZnJhbWUucmVuZGVyUGFz
c2VzWzBdLT5xdWFkTGlzdCgpLnNpemUoKTsgKytpKQpAQCAtMTIzMiw2ICsxMjU4LDcgQEAgVEVT
VF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCB2aWV3cG9ydENvdmVyZWQpCiAgICAgICAgIEVY
UEVDVF9FUSgxdSwgZnJhbWUucmVuZGVyUGFzc2VzWzBdLT5xdWFkTGlzdCgpLnNpemUoKSk7CiAK
ICAgICAgICAgdmVyaWZ5UXVhZHNFeGFjdGx5Q292ZXJSZWN0KGZyYW1lLnJlbmRlclBhc3Nlc1sw
XS0+cXVhZExpc3QoKSwgSW50UmVjdCgtbGF5ZXJSZWN0LmxvY2F0aW9uKCksIHZpZXdwb3J0U2l6
ZSkpOworICAgICAgICBtX2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKICAgICB9
CiAKICAgICAvLyBDb250ZW50IGFyZWEgaW4gbWlkZGxlIG9mIGNsaXAgcmVjdCAoZm91ciBzdXJy
b3VuZGluZyBndXR0ZXIgcmVjdHMpCkBAIC0xMjU0LDYgKzEyODEsNyBAQCBURVNUX0YoQ0NMYXll
clRyZWVIb3N0SW1wbFRlc3QsIHZpZXdwb3J0Q292ZXJlZCkKICAgICAgICAgRVhQRUNUX0VRKDV1
LCBmcmFtZS5yZW5kZXJQYXNzZXNbMF0tPnF1YWRMaXN0KCkuc2l6ZSgpKTsKIAogICAgICAgICB2
ZXJpZnlRdWFkc0V4YWN0bHlDb3ZlclJlY3QoZnJhbWUucmVuZGVyUGFzc2VzWzBdLT5xdWFkTGlz
dCgpLCBJbnRSZWN0KC1sYXllclJlY3QubG9jYXRpb24oKSwgdmlld3BvcnRTaXplKSk7CisgICAg
ICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogICAgIH0KIAogfQpAQCAt
MTMwMCw2ICsxMzI4LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCByZXNoYXBl
Tm90Q2FsbGVkVW50aWxEcmF3KQogICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBhcmVU
b0RyYXcoZnJhbWUpKTsKICAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKICAgICBF
WFBFQ1RfVFJVRShyZXNoYXBlVHJhY2tlci0+cmVzaGFwZUNhbGxlZCgpKTsKKyAgICBtX2hvc3RJ
bXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKIH0KIAogY2xhc3MgUGFydGlhbFN3YXBUcmFj
a2VyQ29udGV4dCA6IHB1YmxpYyBGYWtlV2ViR3JhcGhpY3NDb250ZXh0M0QgewpAQCAtMTM1NSw2
ICsxMzg0LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBwYXJ0aWFsU3dhcFJl
Y2VpdmVzRGFtYWdlUmVjdCkKICAgICAvLyBGaXJzdCBmcmFtZSwgdGhlIGVudGlyZSBzY3JlZW4g
c2hvdWxkIGdldCBzd2FwcGVkLgogICAgIEVYUEVDVF9UUlVFKGxheWVyVHJlZUhvc3RJbXBsLT5w
cmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgbGF5ZXJUcmVlSG9zdEltcGwtPmRyYXdMYXllcnMo
ZnJhbWUpOworICAgIGxheWVyVHJlZUhvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsK
ICAgICBsYXllclRyZWVIb3N0SW1wbC0+c3dhcEJ1ZmZlcnMoKTsKICAgICBJbnRSZWN0IGFjdHVh
bFN3YXBSZWN0ID0gcGFydGlhbFN3YXBUcmFja2VyLT5wYXJ0aWFsU3dhcFJlY3QoKTsKICAgICBJ
bnRSZWN0IGV4cGVjdGVkU3dhcFJlY3QgPSBJbnRSZWN0KEludFBvaW50Ojp6ZXJvKCksIEludFNp
emUoNTAwLCA1MDApKTsKQEAgLTEzNzAsNiArMTQwMCw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhv
c3RJbXBsVGVzdCwgcGFydGlhbFN3YXBSZWNlaXZlc0RhbWFnZVJlY3QpCiAgICAgY2hpbGQtPnNl
dFBvc2l0aW9uKEZsb2F0UG9pbnQoMCwgMCkpOwogICAgIEVYUEVDVF9UUlVFKGxheWVyVHJlZUhv
c3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgbGF5ZXJUcmVlSG9zdEltcGwtPmRy
YXdMYXllcnMoZnJhbWUpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUp
OwogICAgIGxheWVyVHJlZUhvc3RJbXBsLT5zd2FwQnVmZmVycygpOwogICAgIGFjdHVhbFN3YXBS
ZWN0ID0gcGFydGlhbFN3YXBUcmFja2VyLT5wYXJ0aWFsU3dhcFJlY3QoKTsKICAgICBleHBlY3Rl
ZFN3YXBSZWN0ID0gSW50UmVjdChJbnRQb2ludCgwLCA1MDAtMjgpLCBJbnRTaXplKDI2LCAyOCkp
OwpAQCAtMTM4NSw2ICsxNDE2LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBw
YXJ0aWFsU3dhcFJlY2VpdmVzRGFtYWdlUmVjdCkKICAgICByb290LT5zZXRPcGFjaXR5KDAuN2Yp
OyAvLyB0aGlzIHdpbGwgZGFtYWdlIGV2ZXJ5dGhpbmcKICAgICBFWFBFQ1RfVFJVRShsYXllclRy
ZWVIb3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwogICAgIGxheWVyVHJlZUhvc3RJbXBs
LT5kcmF3TGF5ZXJzKGZyYW1lKTsKKyAgICBtX2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZy
YW1lKTsKICAgICBsYXllclRyZWVIb3N0SW1wbC0+c3dhcEJ1ZmZlcnMoKTsKICAgICBhY3R1YWxT
d2FwUmVjdCA9IHBhcnRpYWxTd2FwVHJhY2tlci0+cGFydGlhbFN3YXBSZWN0KCk7CiAgICAgZXhw
ZWN0ZWRTd2FwUmVjdCA9IEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgSW50U2l6ZSgxMCwgMTAp
KTsKQEAgLTE0ODEsNyArMTUxMyw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwg
c2Nyb2xsYmFyTGF5ZXJMb3N0Q29udGV4dCkKICAgICAgICAgQ0NSZW5kZXJQYXNzKiByZW5kZXJQ
YXNzID0gZnJhbWUucmVuZGVyUGFzc2VzWzBdLmdldCgpOwogICAgICAgICAvLyBTY3JvbGxiYXIg
bGF5ZXIgc2hvdWxkIGFsd2F5cyBnZW5lcmF0ZSBxdWFkcywgZXZlbiBhZnRlciBsb3N0IGNvbnRl
eHQKICAgICAgICAgRVhQRUNUX0dUKHJlbmRlclBhc3MtPnF1YWRMaXN0KCkuc2l6ZSgpLCAwdSk7
Ci0KKyAgICAgICAgbV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAgICAgICAg
IG1faG9zdEltcGwtPmluaXRpYWxpemVMYXllclJlbmRlcmVyKGNyZWF0ZUNvbnRleHQoKSk7CiAg
ICAgfQogfQpAQCAtMTY1NSw2ICsxNjg3LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxU
ZXN0LCBkb250VXNlT2xkUmVzb3VyY2VzQWZ0ZXJMb3N0Q29udGV4dCkKICAgICBDQ0xheWVyVHJl
ZUhvc3RJbXBsOjpGcmFtZURhdGEgZnJhbWU7CiAgICAgRVhQRUNUX1RSVUUobV9ob3N0SW1wbC0+
cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwogICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoZnJhbWUp
OworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogICAgIG1faG9zdElt
cGwtPnN3YXBCdWZmZXJzKCk7CiAKICAgICAvLyBMb3NlIHRoZSBjb250ZXh0LCByZXBsYWNpbmcg
aXQgd2l0aCBhIFN0cmljdFdlYkdyYXBoaWNzQ29udGV4dDNELCB0aGF0CkBAIC0xNjYyLDYgKzE2
OTUsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGRvbnRVc2VPbGRSZXNvdXJj
ZXNBZnRlckxvc3RDb250ZXh0KQogICAgIG1faG9zdEltcGwtPmluaXRpYWxpemVMYXllclJlbmRl
cmVyKFN0cmljdFdlYkdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGVHcmFwaGljc0NvbnRleHQoKSk7
CiAgICAgRVhQRUNUX1RSVUUobV9ob3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSkpOwogICAg
IG1faG9zdEltcGwtPmRyYXdMYXllcnMoZnJhbWUpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdB
bGxMYXllcnMoZnJhbWUpOwogICAgIG1faG9zdEltcGwtPnN3YXBCdWZmZXJzKCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138709</attachid>
            <date>2012-04-24 18:20:17 -0700</date>
            <delta_ts>2012-04-25 09:14:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84812-20120424182015.patch</filename>
            <type>text/plain</type>
            <size>4103</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGNkOTA1ZGU0ZjNiMzE2
YmNhZWEyMWQwNTVmNjNmNThiZjViYzBhZC4uM2ZhYWFjNTJlMGU3Mjg4MzQ3YjZlY2QzOGYxMWU4
YmQ0ZDEyZDAxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEyLTA0LTI0ICBBZHJp
ZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBIb2xk
IHZpZGVvIHByb3ZpZGVyIGxvY2sgZnJvbSB3aWxsRHJhdyB0byBkaWREcmF3CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NDgwNQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1Zp
ZGVvTGF5ZXJJbXBsOjp3aWxsRHJhdyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNDVmlkZW9MYXllckltcGw6OndpbGxEcmF3SW50ZXJuYWwpOgorICAgICAgICAoV2Vi
Q29yZTo6Q0NWaWRlb0xheWVySW1wbDo6YXBwZW5kUXVhZHMpOgorICAgICAgICAoV2ViQ29yZTo6
Q0NWaWRlb0xheWVySW1wbDo6ZGlkRHJhdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5oOgorCiAyMDEyLTA0LTI0ICBDYWlvIE1hcmNl
bG8gZGUgT2xpdmVpcmEgRmlsaG8gIDxjYWlvLm9saXZlaXJhQG9wZW5ib3NzYS5vcmc+CiAKICAg
ICAgICAgRml4IHdyb25nIEFTU0VSVCgpIGluIGZpbmRBdHRyaWJ1dGVJblZlY3RvcigpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Zp
ZGVvTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCmluZGV4IDgzZDI2MmYxMTA5NzI3YTYyZDAxODlj
MWIzOWMwMzUxNjJjYzM2YjcuLjlhNzZmYTBjYzY1M2MxZDlhYjFhMTJiNmEwZDBhYTYwN2UzNjg4
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDVmlkZW9MYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwCkBAIC0xMjIsNyArMTIyLDI0
IEBAIHZvaWQgQ0NWaWRlb0xheWVySW1wbDo6d2lsbERyYXcoTGF5ZXJSZW5kZXJlckNocm9taXVt
KiBsYXllclJlbmRlcmVyKQogewogICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7
CiAKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9wcm92aWRlck11dGV4KTsKKyAgICAvLyBFeHBs
aWNpdGx5IGxvY2sgYW5kIHVubG9jayB0aGUgcHJvdmlkZXIgbXV0ZXggc28gaXQgY2FuIGJlIGhl
bGQgZnJvbQorICAgIC8vIHdpbGxEcmF3IHRvIGRpZERyYXcuIFNpbmNlIHRoZSBjb21wb3NpdG9y
IHRocmVhZCBpcyBpbiB0aGUgbWlkZGxlIG9mCisgICAgLy8gZHJhd2luZywgdGhlIGxheWVyIHdp
bGwgbm90IGJlIGRlc3Ryb3llZCBiZWZvcmUgZGlkRHJhdyBpcyBjYWxsZWQuCisgICAgLy8gVGhl
cmVmb3JlLCB0aGUgb25seSB0aGluZyB0aGF0IHdpbGwgcHJldmVudCB0aGlzIGxvY2sgZnJvbSBi
ZWluZyByZWxlYXNlZAorICAgIC8vIGlzIHRoZSBHUFUgcHJvY2VzcyBsb2NraW5nIGl0LiBBcyB0
aGUgR1BVIHByb2Nlc3MgY2FuJ3QgY2F1c2UgdGhlCisgICAgLy8gZGVzdHJ1Y3Rpb24gb2YgdGhl
IHByb3ZpZGVyIChjYWxsaW5nIHN0b3BVc2luZ1Byb3ZpZGVyKSwgaG9sZGluZyB0aGlzCisgICAg
Ly8gbG9jayBzaG91bGQgbm90IGNhdXNlIGEgZGVhZGxvY2suCisgICAgbV9wcm92aWRlck11dGV4
LmxvY2soKTsKKworICAgIHdpbGxEcmF3SW50ZXJuYWwobGF5ZXJSZW5kZXJlcik7CisKKyAgICBp
ZiAoIW1fZnJhbWUpCisgICAgICAgIG1fcHJvdmlkZXJNdXRleC51bmxvY2soKTsKK30KKwordm9p
ZCBDQ1ZpZGVvTGF5ZXJJbXBsOjp3aWxsRHJhd0ludGVybmFsKExheWVyUmVuZGVyZXJDaHJvbWl1
bSogbGF5ZXJSZW5kZXJlcikKK3sKKyAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkp
OwogCiAgICAgaWYgKCFtX3Byb3ZpZGVyKSB7CiAgICAgICAgIG1fZnJhbWUgPSAwOwpAQCAtMTUw
LDYgKzE2Nyw4IEBAIHZvaWQgQ0NWaWRlb0xheWVySW1wbDo6d2lsbERyYXcoTGF5ZXJSZW5kZXJl
ckNocm9taXVtKiBsYXllclJlbmRlcmVyKQogCiB2b2lkIENDVmlkZW9MYXllckltcGw6OmFwcGVu
ZFF1YWRzKENDUXVhZEN1bGxlciYgcXVhZExpc3QsIGNvbnN0IENDU2hhcmVkUXVhZFN0YXRlKiBz
aGFyZWRRdWFkU3RhdGUsIGJvb2wmKQogeworICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJl
YWQoKSk7CisKICAgICBpZiAoIW1fZnJhbWUpCiAgICAgICAgIHJldHVybjsKIApAQCAtMTY2LDE1
ICsxODUsMTUgQEAgdm9pZCBDQ1ZpZGVvTGF5ZXJJbXBsOjpkaWREcmF3KCkKIHsKICAgICBBU1NF
UlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwogCi0gICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
cHJvdmlkZXJNdXRleCk7Ci0KLSAgICBpZiAoIW1fcHJvdmlkZXIgfHwgIW1fZnJhbWUpCisgICAg
aWYgKCFtX2ZyYW1lKQogICAgICAgICByZXR1cm47CiAKICAgICBmb3IgKHVuc2lnbmVkIHBsYW5l
ID0gMDsgcGxhbmUgPCBtX2ZyYW1lLT5wbGFuZXMoKTsgKytwbGFuZSkKICAgICAgICAgbV90ZXh0
dXJlc1twbGFuZV0ubV90ZXh0dXJlLT51bnJlc2VydmUoKTsKICAgICBtX3Byb3ZpZGVyLT5wdXRD
dXJyZW50RnJhbWUobV9mcmFtZSk7CiAgICAgbV9mcmFtZSA9IDA7CisKKyAgICBtX3Byb3ZpZGVy
TXV0ZXgudW5sb2NrKCk7CiB9CiAKIHN0YXRpYyBpbnQgdmlkZW9GcmFtZURpbWVuc2lvbihpbnQg
b3JpZ2luYWxEaW1lbnNpb24sIHVuc2lnbmVkIHBsYW5lLCBpbnQgZm9ybWF0KQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xh
eWVySW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NWaWRlb0xheWVySW1wbC5oCmluZGV4IDlhOTkyODVkZGRkMzUyMGNkMjMwOWEwMDRmMzFmYzc4
ZWZmYzU5ZjguLjBhZDI2M2ZmZDM5N2NiNGE5ZTg4NWJkNDc4MjIyZDZmY2RhODQxYTUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlk
ZW9MYXllckltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ1ZpZGVvTGF5ZXJJbXBsLmgKQEAgLTkwLDkgKzkwLDExIEBAIHByaXZhdGU6CiAg
ICAgc3RhdGljIEludFNpemUgY29tcHV0ZVZpc2libGVTaXplKGNvbnN0IFdlYktpdDo6V2ViVmlk
ZW9GcmFtZSYsIHVuc2lnbmVkIHBsYW5lKTsKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIGxheWVy
VHlwZUFzU3RyaW5nKCkgY29uc3QgT1ZFUlJJREUgeyByZXR1cm4gIlZpZGVvTGF5ZXIiOyB9CiAK
KyAgICB2b2lkIHdpbGxEcmF3SW50ZXJuYWwoTGF5ZXJSZW5kZXJlckNocm9taXVtKik7CiAgICAg
Ym9vbCByZXNlcnZlVGV4dHVyZXMoY29uc3QgV2ViS2l0OjpXZWJWaWRlb0ZyYW1lJiwgR0MzRGVu
dW0gZm9ybWF0LCBMYXllclJlbmRlcmVyQ2hyb21pdW0qKTsKIAotICAgIE11dGV4IG1fcHJvdmlk
ZXJNdXRleDsgLy8gR3VhcmRzIG1fcHJvdmlkZXIgYmVsb3cuCisgICAgLy8gR3VhcmRzIHRoZSBk
ZXN0cnVjdGlvbiBvZiBtX3Byb3ZpZGVyIGFuZCB0aGUgZnJhbWUgdGhhdCBpdCBwcm92aWRlcwor
ICAgIE11dGV4IG1fcHJvdmlkZXJNdXRleDsKICAgICBXZWJLaXQ6OldlYlZpZGVvRnJhbWVQcm92
aWRlciogbV9wcm92aWRlcjsKIAogICAgIFRleHR1cmUgbV90ZXh0dXJlc1tNYXhQbGFuZXNdOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>138822</attachid>
            <date>2012-04-25 09:14:47 -0700</date>
            <delta_ts>2012-04-25 18:00:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-84812-20120425091446.patch</filename>
            <type>text/plain</type>
            <size>28145</size>
            <attacher name="Adrienne Walker">enne</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE1MjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGYzMWFlYjRhMDM5YWQy
ZjQ2NmFkNmJhZTZlNzQ2MWZiMDk2MjBhMS4uOTNhMGZiZjA2ZTY2MzcyZmUwNjg5MGNjNjJmNDM0
ZTg2YTQ4YjhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDEyLTA0LTI1ICBBZHJp
ZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CisKKyAgICAgICAgW2Nocm9taXVtXSBQcmV2
ZW50IENDTGF5ZXJJbXBsOjp3aWxsRHJhdy9kaWREcmF3IG1pc21hdGNoZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0ODEyCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQmVjYXVzZSBzb21lIGxheWVycyBs
b2NrL3VubG9jayByZXNvdXJjZXMsIGl0IG5lZWRzIHRvIGJlIGd1YXJhbnRlZWQKKyAgICAgICAg
dGhhdCBpZiB3aWxsRHJhdyBpcyBjYWxsZWQgb24gYSBsYXllciB0aGVuIGRpZERyYXcgd2lsbCBh
bHNvIGJlIGNhbGxlZAorICAgICAgICBvbiB0aGF0IGxheWVyIGJlZm9yZSBhbm90aGVyIHdpbGxE
cmF3IG9yIGJlZm9yZSBsYXllciBkZXN0cnVjdGlvbi4gQWRkCisgICAgICAgIGFzc2VydHMgdG8g
bWFrZSBzdXJlIHRoYXQgdGhpcyBpcyB0aGUgY2FzZS4KKworICAgICAgICB3aWxsRHJhdyBpcyBj
YWxsZWQgdmlhIENDTGF5ZXJUcmVlSG9zdEltcGw6OnByZXBhcmVUb0RyYXcgLT4KKyAgICAgICAg
Y2FsY3VsYXRlUmVuZGVyUGFzc2VzLiBkaWREcmF3IHdhcyBwcmV2aW91c2x5IGNhbGxlZCBpbgor
ICAgICAgICBDQ0xheWVyVHJlZUhvc3RJbXBsOjpkcmF3TGF5ZXJzLiBTb21ldGltZXMgZHJhd0xh
eWVycyB3YXMgYmVpbmcKKyAgICAgICAgc2tpcHBlZCBieSB0aGUgY2FsbGVyIG9mIHRoZXNlIGZ1
bmN0aW9ucyBiYXNlZCBvbiB3aGF0IHByZXBhcmVUb0RyYXcKKyAgICAgICAgcmV0dXJuZWQgKGNh
dXNpbmcgZGlkRHJhdyB0byBub3QgYmUgY2FsbGVkKS4gRml4IHRoaXMgYnkgaGF2aW5nIGFuCisg
ICAgICAgIGV4cGxpY2l0IHN0ZXAgdG8gY2FsbCBkaWREcmF3IG9uIGFsbCBsYXllcnMuIFRoaXMg
bmV3IGRpZERyYXdBbGxMYXllcnMKKyAgICAgICAgZnVuY3Rpb24gbXVzdCBiZSBjYWxsZWQgaWYg
YW5kIG9ubHkgaWYgcHJlcGFyZVRvRHJhdyBpcyBjYWxsZWQuCisKKyAgICAgICAgVGVzdGVkIGJ5
IGV4aXN0aW5nIHRlc3RzIHZpYSBuZXcgYXNzZXJ0cyBpbiBDQ0xheWVySW1wbC4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNDTGF5ZXJJbXBsOjpDQ0xheWVySW1wbCk6CisgICAgICAgIChXZWJDb3Jl
OjpDQ0xheWVySW1wbDo6fkNDTGF5ZXJJbXBsKToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJJ
bXBsOjp3aWxsRHJhdyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OkND
TGF5ZXJJbXBsOjpkaWREcmF3KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ0xheWVySW1wbC5oOgorICAgICAgICAoQ0NMYXllckltcGwpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0SW1wbDo6ZHJhd0xheWVycyk6CisgICAgICAg
IChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3RJbXBsOjpkaWREcmF3QWxsTGF5ZXJzKToKKyAgICAg
ICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0ND
TGF5ZXJUcmVlSG9zdEltcGwuaDoKKyAgICAgICAgKENDTGF5ZXJUcmVlSG9zdEltcGwpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsYmFyTGF5ZXJJbXBs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDU2Nyb2xsYmFyTGF5ZXJJbXBsOjp3aWxsRHJhdyk6
CisgICAgICAgIChXZWJDb3JlOjpDQ1Njcm9sbGJhckxheWVySW1wbDo6ZGlkRHJhdyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1NpbmdsZVRocmVhZFByb3h5Ojpkb0NvbXBvc2l0ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlTGF5ZXJJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDVGV4dHVyZUxheWVySW1wbDo6d2lsbERyYXcp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGhyZWFkUHJveHku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9uRHJh
d0FuZFN3YXBJbnRlcm5hbCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Y2MvQ0NWaWRlb0xheWVySW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVvTGF5ZXJJ
bXBsOjp3aWxsRHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDQ1ZpZGVvTGF5ZXJJbXBsOjpkaWRE
cmF3KToKKwogMjAxMi0wNC0yNSAgQWxleGlzIE1lbmFyZCAgPGFsZXhpcy5tZW5hcmRAb3BlbmJv
c3NhLm9yZz4KIAogICAgICAgICBSZW5hbWUgQ1NTU3R5bGVTZWxlY3RvciBmaWxlcyB0byBTdHls
ZVJlc29sdmVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA1YjlmN2YwODAwZjI1NDA5
ZmFlYmQyYWE3MmQ4YzhmZmQ1N2FhNDU0Li5jYTk5ZGUyMTI3ZWMwOWY5YWE5NTNiMzk2ZDgzZDZl
Zjc0NjBjYTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisy
MDEyLTA0LTI0ICBBZHJpZW5uZSBXYWxrZXIgIDxlbm5lQGdvb2dsZS5jb20+CisKKyAgICAgICAg
W2Nocm9taXVtXSBQcmV2ZW50IENDTGF5ZXJJbXBsOjp3aWxsRHJhdy9kaWREcmF3IG1pc21hdGNo
ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg0ODEy
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRl
IGFsbCB0ZXN0cyB0byBjYWxsIENDTGF5ZXJUcmVlSG9zdEltcGw6OmRpZERyYXdBbGxMYXllcnMg
aWYgdGhleQorICAgICAgICBjYWxsIENDTGF5ZXJUcmVlSG9zdEltcGw6OnByZXBhcmVUb0RyYXcu
CisKKyAgICAgICAgKiB0ZXN0cy9DQ0xheWVyVHJlZUhvc3RJbXBsVGVzdC5jcHA6CisgICAgICAg
IChXZWJLaXRUZXN0czo6Q0NMYXllclRyZWVIb3N0SW1wbFRlc3Q6OmluaXRpYWxpemVMYXllclJl
bmRlcmVyQW5kRHJhd0ZyYW1lKToKKyAgICAgICAgKFdlYktpdFRlc3RzOjpURVNUX0YpOgorCiAy
MDEyLTA0LTI1ICBBbGV4aXMgTWVuYXJkICA8YWxleGlzLm1lbmFyZEBvcGVuYm9zc2Eub3JnPgog
CiAgICAgICAgIFJlbmFtZSBDU1NTdHlsZVNlbGVjdG9yIGZpbGVzIHRvIFN0eWxlUmVzb2x2ZXIu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ0xheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9jYy9DQ0xheWVySW1wbC5jcHAKaW5kZXggZmVmY2VjNWViOTcxZDg2OTBmZGFhNTgyMjg5
ZTllZDllY2RmODM4OC4uZDU4MmJmZTViNGIxYWM0ZjI2MDA0Yzg5YmEwMDdiMjg4MzVjZmZjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJJbXBsLmNwcApAQCAtNjksNiArNjksNyBAQCBDQ0xheWVySW1wbDo6
Q0NMYXllckltcGwoaW50IGlkKQogICAgICwgbV9kZWJ1Z0JvcmRlcldpZHRoKDApCiAgICAgLCBt
X2RyYXdUcmFuc2Zvcm1Jc0FuaW1hdGluZyhmYWxzZSkKICAgICAsIG1fc2NyZWVuU3BhY2VUcmFu
c2Zvcm1Jc0FuaW1hdGluZyhmYWxzZSkKKyAgICAsIG1fYmV0d2VlbldpbGxEcmF3QW5kRGlkRHJh
dyhmYWxzZSkKICAgICAsIG1fbGF5ZXJBbmltYXRpb25Db250cm9sbGVyKENDTGF5ZXJBbmltYXRp
b25Db250cm9sbGVyOjpjcmVhdGUodGhpcykpCiB7CiAgICAgQVNTRVJUKENDUHJveHk6OmlzSW1w
bFRocmVhZCgpKTsKQEAgLTc3LDYgKzc4LDcgQEAgQ0NMYXllckltcGw6OkNDTGF5ZXJJbXBsKGlu
dCBpZCkKIENDTGF5ZXJJbXBsOjp+Q0NMYXllckltcGwoKQogewogICAgIEFTU0VSVChDQ1Byb3h5
Ojppc0ltcGxUaHJlYWQoKSk7CisgICAgQVNTRVJUKCFtX2JldHdlZW5XaWxsRHJhd0FuZERpZERy
YXcpOwogfQogCiB2b2lkIENDTGF5ZXJJbXBsOjphZGRDaGlsZChQYXNzT3duUHRyPENDTGF5ZXJJ
bXBsPiBjaGlsZCkKQEAgLTEzNiw2ICsxMzgsMTkgQEAgUGFzc093blB0cjxDQ1NoYXJlZFF1YWRT
dGF0ZT4gQ0NMYXllckltcGw6OmNyZWF0ZVNoYXJlZFF1YWRTdGF0ZSgpIGNvbnN0CiAgICAgcmV0
dXJuIENDU2hhcmVkUXVhZFN0YXRlOjpjcmVhdGUocXVhZFRyYW5zZm9ybSgpLCBkcmF3VHJhbnNm
b3JtKCksIHZpc2libGVMYXllclJlY3QoKSwgbGF5ZXJDbGlwUmVjdCwgZHJhd09wYWNpdHkoKSwg
b3BhcXVlKCkpOwogfQogCit2b2lkIENDTGF5ZXJJbXBsOjp3aWxsRHJhdyhMYXllclJlbmRlcmVy
Q2hyb21pdW0qKQoreworICAgIC8vIHdpbGxEcmF3L2RpZERyYXcgbXVzdCBiZSBtYXRjaGVkLgor
ICAgIEFTU0VSVCghbV9iZXR3ZWVuV2lsbERyYXdBbmREaWREcmF3KTsKKyAgICBtX2JldHdlZW5X
aWxsRHJhd0FuZERpZERyYXcgPSB0cnVlOworfQorCit2b2lkIENDTGF5ZXJJbXBsOjpkaWREcmF3
KCkKK3sKKyAgICBBU1NFUlQobV9iZXR3ZWVuV2lsbERyYXdBbmREaWREcmF3KTsKKyAgICBtX2Jl
dHdlZW5XaWxsRHJhd0FuZERpZERyYXcgPSBmYWxzZTsKK30KKwogdm9pZCBDQ0xheWVySW1wbDo6
YXBwZW5kRGVidWdCb3JkZXJRdWFkKENDUXVhZEN1bGxlciYgcXVhZExpc3QsIGNvbnN0IENDU2hh
cmVkUXVhZFN0YXRlKiBzaGFyZWRRdWFkU3RhdGUpIGNvbnN0CiB7CiAgICAgaWYgKCFoYXNEZWJ1
Z0JvcmRlcnMoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDTGF5ZXJJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jaHJvbWl1bS9jYy9DQ0xheWVySW1wbC5oCmluZGV4IGQzYmJhMTcyN2IwN2Y3YjdiMWM3
NmVhNDMxZDIzYmQ0ZjE1NWM0MmMuLjhmMGMwOGE1MGIxYWE2YTczYzM4YmE0YjdmMmQ0MzZkNzMz
NzM0MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDTGF5ZXJJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllckltcGwuaApAQCAtODQsOSArODQsMTMgQEAgcHVibGljOgog
I2VuZGlmCiAKICAgICBQYXNzT3duUHRyPENDU2hhcmVkUXVhZFN0YXRlPiBjcmVhdGVTaGFyZWRR
dWFkU3RhdGUoKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERyYXcoTGF5ZXJSZW5kZXJl
ckNocm9taXVtKikgeyB9CisgICAgLy8gd2lsbERyYXcgbXVzdCBiZSBjYWxsZWQgYmVmb3JlIGFw
cGVuZFF1YWRzLiBJZiB3aWxsRHJhdyBpcyBjYWxsZWQsCisgICAgLy8gZGlkRHJhdyBpcyBndWFy
YW50ZWVkIHRvIGJlIGNhbGxlZCBiZWZvcmUgYW5vdGhlciB3aWxsRHJhdyBvciBiZWZvcmUKKyAg
ICAvLyB0aGUgbGF5ZXIgaXMgZGVzdHJveWVkLiBUbyBlbmZvcmNlIHRoaXMsIGFueSBjbGFzcyB0
aGF0IG92ZXJyaWRlcworICAgIC8vIHdpbGxEcmF3L2RpZERyYXcgbXVzdCBjYWxsIHRoZSBiYXNl
IGNsYXNzIHZlcnNpb24uCisgICAgdmlydHVhbCB2b2lkIHdpbGxEcmF3KExheWVyUmVuZGVyZXJD
aHJvbWl1bSopOwogICAgIHZpcnR1YWwgdm9pZCBhcHBlbmRRdWFkcyhDQ1F1YWRDdWxsZXImLCBj
b25zdCBDQ1NoYXJlZFF1YWRTdGF0ZSosIGJvb2wmIGhhZE1pc3NpbmdUaWxlcykgeyB9Ci0gICAg
dmlydHVhbCB2b2lkIGRpZERyYXcoKSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRHJhdygpOwog
ICAgIHZvaWQgYXBwZW5kRGVidWdCb3JkZXJRdWFkKENDUXVhZEN1bGxlciYsIGNvbnN0IENDU2hh
cmVkUXVhZFN0YXRlKikgY29uc3Q7CiAKICAgICB2aXJ0dWFsIHZvaWQgYmluZENvbnRlbnRzVGV4
dHVyZShMYXllclJlbmRlcmVyQ2hyb21pdW0qKTsKQEAgLTM0Nyw2ICszNTEsOCBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9kcmF3VHJhbnNmb3JtSXNBbmltYXRpbmc7CiAgICAgYm9vbCBtX3NjcmVl
blNwYWNlVHJhbnNmb3JtSXNBbmltYXRpbmc7CiAKKyAgICBib29sIG1fYmV0d2VlbldpbGxEcmF3
QW5kRGlkRHJhdzsKKwogICAgIC8vIFRoZSByZWN0IHRoYXQgY29udHJpYnV0ZXMgdG8gdGhlIHNj
aXNzb3Igd2hlbiB0aGlzIGxheWVyIGlzIGRyYXduLgogICAgIC8vIEluaGVyaXRlZCBieSB0aGUg
cGFyZW50IGxheWVyIGFuZCBmdXJ0aGVyIHJlc3RyaWN0ZWQgaWYgdGhpcyBsYXllciBtYXNrcwog
ICAgIC8vIHRvIGJvdW5kcy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAK
aW5kZXggYjZmOWRiOTk1NjJmNzljNDQxNzU1MTU3NjY2N2U3YTJmZjZjMDgzOS4uYzRkNTk5Yjcx
MzczZTBhYTY2MmFjZWU5Y2JkM2U0NmM5ODBhNmJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXll
clRyZWVIb3N0SW1wbC5jcHAKQEAgLTQxNiwxNCArNDE2LDYgQEAgdm9pZCBDQ0xheWVyVHJlZUhv
c3RJbXBsOjpkcmF3TGF5ZXJzKGNvbnN0IEZyYW1lRGF0YSYgZnJhbWUpCiAgICAgZm9yIChzaXpl
X3QgaSA9IDA7IGkgPCBmcmFtZS5yZW5kZXJQYXNzZXMuc2l6ZSgpOyArK2kpCiAgICAgICAgIG1f
bGF5ZXJSZW5kZXJlci0+ZHJhd1JlbmRlclBhc3MoZnJhbWUucmVuZGVyUGFzc2VzW2ldLmdldCgp
KTsKIAotICAgIHR5cGVkZWYgQ0NMYXllckl0ZXJhdG9yPENDTGF5ZXJJbXBsLCBWZWN0b3I8Q0NM
YXllckltcGwqPiwgQ0NSZW5kZXJTdXJmYWNlLCBDQ0xheWVySXRlcmF0b3JBY3Rpb25zOjpCYWNr
VG9Gcm9udD4gQ0NMYXllckl0ZXJhdG9yVHlwZTsKLQotICAgIENDTGF5ZXJJdGVyYXRvclR5cGUg
ZW5kID0gQ0NMYXllckl0ZXJhdG9yVHlwZTo6ZW5kKCZmcmFtZS5yZW5kZXJTdXJmYWNlTGF5ZXJM
aXN0KTsKLSAgICBmb3IgKENDTGF5ZXJJdGVyYXRvclR5cGUgaXQgPSBDQ0xheWVySXRlcmF0b3JU
eXBlOjpiZWdpbigmZnJhbWUucmVuZGVyU3VyZmFjZUxheWVyTGlzdCk7IGl0ICE9IGVuZDsgKytp
dCkgewotICAgICAgICBpZiAoaXQucmVwcmVzZW50c0l0c2VsZigpICYmICFpdC0+dmlzaWJsZUxh
eWVyUmVjdCgpLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIGl0LT5kaWREcmF3KCk7Ci0gICAgfQot
CiAgICAgaWYgKG1fZGVidWdSZWN0SGlzdG9yeS0+ZW5hYmxlZChzZXR0aW5ncygpKSkKICAgICAg
ICAgbV9kZWJ1Z1JlY3RIaXN0b3J5LT5zYXZlRGVidWdSZWN0c0ZvckN1cnJlbnRGcmFtZShtX3Jv
b3RMYXllckltcGwuZ2V0KCksIGZyYW1lLnJlbmRlclN1cmZhY2VMYXllckxpc3QsIHNldHRpbmdz
KCkpOwogCkBAIC00MzgsNiArNDMwLDE3IEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0SW1wbDo6ZHJh
d0xheWVycyhjb25zdCBGcmFtZURhdGEmIGZyYW1lKQogICAgIG1fcm9vdExheWVySW1wbC0+cmVz
ZXRBbGxDaGFuZ2VUcmFja2luZ0ZvclN1YnRyZWUoKTsKIH0KIAordm9pZCBDQ0xheWVyVHJlZUhv
c3RJbXBsOjpkaWREcmF3QWxsTGF5ZXJzKGNvbnN0IEZyYW1lRGF0YSYgZnJhbWUpCit7CisgICAg
dHlwZWRlZiBDQ0xheWVySXRlcmF0b3I8Q0NMYXllckltcGwsIFZlY3RvcjxDQ0xheWVySW1wbCo+
LCBDQ1JlbmRlclN1cmZhY2UsIENDTGF5ZXJJdGVyYXRvckFjdGlvbnM6OkJhY2tUb0Zyb250PiBD
Q0xheWVySXRlcmF0b3JUeXBlOworCisgICAgQ0NMYXllckl0ZXJhdG9yVHlwZSBlbmQgPSBDQ0xh
eWVySXRlcmF0b3JUeXBlOjplbmQoJmZyYW1lLnJlbmRlclN1cmZhY2VMYXllckxpc3QpOworICAg
IGZvciAoQ0NMYXllckl0ZXJhdG9yVHlwZSBpdCA9IENDTGF5ZXJJdGVyYXRvclR5cGU6OmJlZ2lu
KCZmcmFtZS5yZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAg
ICAgIGlmIChpdC5yZXByZXNlbnRzSXRzZWxmKCkgJiYgIWl0LT52aXNpYmxlTGF5ZXJSZWN0KCku
aXNFbXB0eSgpKQorICAgICAgICAgICAgaXQtPmRpZERyYXcoKTsKKyAgICB9Cit9CisKIHZvaWQg
Q0NMYXllclRyZWVIb3N0SW1wbDo6ZmluaXNoQWxsUmVuZGVyaW5nKCkKIHsKICAgICBpZiAobV9s
YXllclJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRyZWVIb3N0SW1wbC5oCmluZGV4IDE3
N2I0YjU2ZmY4NzYyZjIwNzNlZjMzNjlhMjI2ODFiMGI1YzE5ZGMuLjNkMjcyZWQzYzM4YjcxZmNl
MzczNjAzZDdlMjZjZWM2MTA3NTY2NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdEltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3RJ
bXBsLmgKQEAgLTkyLDkgKzkyLDE1IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5D
b21taXQoKTsKICAgICB2aXJ0dWFsIHZvaWQgY29tbWl0Q29tcGxldGUoKTsKICAgICB2aXJ0dWFs
IHZvaWQgYW5pbWF0ZShkb3VibGUgbW9ub3RvbmljVGltZSwgZG91YmxlIHdhbGxDbG9ja1RpbWUp
OwotICAgIC8vIFJldHVybnMgZmFsc2UgaWYgcHJvYmxlbXMgb2NjdXJlZCBwcmVwYXJpbmcgdGhl
IGZyYW1lLCBhbmQgd2Ugc2hvdWxkIHRyeSB0byBhdm9pZCBkaXNwbGF5aW5nIHRoZSBmcmFtZS4K
KworICAgIC8vIFJldHVybnMgZmFsc2UgaWYgcHJvYmxlbXMgb2NjdXJlZCBwcmVwYXJpbmcgdGhl
IGZyYW1lLCBhbmQgd2Ugc2hvdWxkIHRyeQorICAgIC8vIHRvIGF2b2lkIGRpc3BsYXlpbmcgdGhl
IGZyYW1lLiBJZiBwcmVwYXJlVG9EcmF3IGlzIGNhbGxlZCwKKyAgICAvLyBkaWREcmF3QWxsTGF5
ZXJzIG11c3QgYWxzbyBiZSBjYWxsZWQsIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciBkcmF3TGF5ZXJz
IGlzCisgICAgLy8gY2FsbGVkIGJldHdlZW4gdGhlIHR3by4KICAgICB2aXJ0dWFsIGJvb2wgcHJl
cGFyZVRvRHJhdyhGcmFtZURhdGEmKTsKICAgICB2aXJ0dWFsIHZvaWQgZHJhd0xheWVycyhjb25z
dCBGcmFtZURhdGEmKTsKKyAgICAvLyBNdXN0IGJlIGNhbGxlZCBpZiBhbmQgb25seSBpZiBwcmVw
YXJlVG9EcmF3IHdhcyBjYWxsZWQuCisgICAgdm9pZCBkaWREcmF3QWxsTGF5ZXJzKGNvbnN0IEZy
YW1lRGF0YSYpOwogCiAgICAgLy8gTGF5ZXJSZW5kZXJlckNocm9taXVtQ2xpZW50IGltcGxlbWVu
dGF0aW9uCiAgICAgdmlydHVhbCBjb25zdCBJbnRTaXplJiB2aWV3cG9ydFNpemUoKSBjb25zdCBP
VkVSUklERSB7IHJldHVybiBtX3ZpZXdwb3J0U2l6ZTsgfQpAQCAtMTc3LDcgKzE4MywxMCBAQCBw
cml2YXRlOgogICAgIHZvaWQgdXBkYXRlTWF4U2Nyb2xsUG9zaXRpb24oKTsKICAgICB2b2lkIHRy
YWNrRGFtYWdlRm9yQWxsU3VyZmFjZXMoQ0NMYXllckltcGwqIHJvb3REcmF3TGF5ZXIsIGNvbnN0
IENDTGF5ZXJMaXN0JiByZW5kZXJTdXJmYWNlTGF5ZXJMaXN0KTsKICAgICB2b2lkIGNhbGN1bGF0
ZVJlbmRlclN1cmZhY2VMYXllckxpc3QoQ0NMYXllckxpc3QmKTsKLSAgICAvLyBSZXR1cm5zIGZh
bHNlIGlmIHRoZSBmcmFtZSBzaG91bGQgbm90IGJlIGRpc3BsYXllZC4KKworICAgIC8vIFJldHVy
bnMgZmFsc2UgaWYgdGhlIGZyYW1lIHNob3VsZCBub3QgYmUgZGlzcGxheWVkLiBUaGlzIGZ1bmN0
aW9uIHNob3VsZAorICAgIC8vIG9ubHkgYmUgY2FsbGVkIGZyb20gcHJlcGFyZVRvRHJhdywgYXMg
ZGlkRHJhd0FsbExheWVycyBtdXN0IGJlIGNhbGxlZAorICAgIC8vIGlmIHRoaXMgaGVscGVyIGZ1
bmN0aW9uIGlzIGNhbGxlZC4KICAgICBib29sIGNhbGN1bGF0ZVJlbmRlclBhc3NlcyhDQ1JlbmRl
clBhc3NMaXN0JiwgQ0NMYXllckxpc3QmIHJlbmRlclN1cmZhY2VMYXllckxpc3QpOwogICAgIHZv
aWQgYW5pbWF0ZUxheWVyc1JlY3Vyc2l2ZShDQ0xheWVySW1wbCosIGRvdWJsZSBtb25vdG9uaWNU
aW1lLCBkb3VibGUgd2FsbENsb2NrVGltZSwgQ0NBbmltYXRpb25FdmVudHNWZWN0b3IqLCBib29s
JiBkaWRBbmltYXRlLCBib29sJiBuZWVkc0FuaW1hdGVMYXllcnMpOwogICAgIEludFNpemUgY29u
dGVudFNpemUoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsYmFyTGF5ZXJJbXBsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDU2Nyb2xsYmFyTGF5ZXJJbXBsLmNw
cAppbmRleCA0ZmZjNGFkMWQwODhhNjMwNWE4N2UzYjI0OTdiZDI2YzQzMDI5NWMwLi4yNDNhZDIz
MWU3ZjQ2ZmM4OWViMDQwNWQ4ZDBiZjUzNjgzMWVjNjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Njcm9sbGJhckxheWVySW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NT
Y3JvbGxiYXJMYXllckltcGwuY3BwCkBAIC01Miw2ICs1Miw4IEBAIENDU2Nyb2xsYmFyTGF5ZXJJ
bXBsOjpDQ1Njcm9sbGJhckxheWVySW1wbChpbnQgaWQpCiAKIHZvaWQgQ0NTY3JvbGxiYXJMYXll
ckltcGw6OndpbGxEcmF3KExheWVyUmVuZGVyZXJDaHJvbWl1bSogbGF5ZXJSZW5kZXJlcikKIHsK
KyAgICBDQ0xheWVySW1wbDo6d2lsbERyYXcobGF5ZXJSZW5kZXJlcik7CisKICAgICBpZiAoYm91
bmRzKCkuaXNFbXB0eSgpIHx8IGNvbnRlbnRCb3VuZHMoKS5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybjsKIApAQCAtOTQsNiArOTYsOCBAQCB2b2lkIENDU2Nyb2xsYmFyTGF5ZXJJbXBsOjphcHBl
bmRRdWFkcyhDQ1F1YWRDdWxsZXImIHF1YWRMaXN0LCBjb25zdCBDQ1NoYXJlZFF1YQogCiB2b2lk
IENDU2Nyb2xsYmFyTGF5ZXJJbXBsOjpkaWREcmF3KCkKIHsKKyAgICBDQ0xheWVySW1wbDo6ZGlk
RHJhdygpOworCiAgICAgbV90ZXh0dXJlLT51bnJlc2VydmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJl
YWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAppbmRleCBhYWNmZTU0YWI2MDYyNmJhMjMzZjU0MmEy
MmUwY2RmOTBhY2FlZWJkLi4xNTdlZjc2NTk5YzgxYTUwYWZhOWJlMTEyZjliODQwMGIyODM3MTBi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9j
Yy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmNwcApAQCAtMzIxLDYgKzMy
MSw3IEBAIGJvb2wgQ0NTaW5nbGVUaHJlYWRQcm94eTo6ZG9Db21wb3NpdGUoKQogICAgICAgQ0NM
YXllclRyZWVIb3N0SW1wbDo6RnJhbWVEYXRhIGZyYW1lOwogICAgICAgbV9sYXllclRyZWVIb3N0
SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFtZSk7CiAgICAgICBtX2xheWVyVHJlZUhvc3RJbXBsLT5k
cmF3TGF5ZXJzKGZyYW1lKTsKKyAgICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmRpZERyYXdBbGxM
YXllcnMoZnJhbWUpOwogICAgIH0KIAogICAgIGlmIChtX2xheWVyVHJlZUhvc3RJbXBsLT5pc0Nv
bnRleHRMb3N0KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1RleHR1cmVMYXllckltcGwuY3BwCmluZGV4
IDI1Y2JlNGI1OTUzMDEzYTg3YWFmZWU2MzI2OTdiOTk0NDYwM2RlOGUuLmYxYTE4YTU1NWJjMjdh
MDhiZTc0YjhkOWE0MDRlYTM2OGM1Zjk1ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVGV4dHVyZUxheWVySW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NUZXh0dXJlTGF5
ZXJJbXBsLmNwcApAQCAtNTksNiArNTksOCBAQCBDQ1RleHR1cmVMYXllckltcGw6On5DQ1RleHR1
cmVMYXllckltcGwoKQogCiB2b2lkIENDVGV4dHVyZUxheWVySW1wbDo6d2lsbERyYXcoTGF5ZXJS
ZW5kZXJlckNocm9taXVtKiBsYXllclJlbmRlcmVyKQogeworICAgIENDTGF5ZXJJbXBsOjp3aWxs
RHJhdyhsYXllclJlbmRlcmVyKTsKKwogICAgIGlmIChtX2lvU3VyZmFjZUNoYW5nZWQpIHsKICAg
ICAgICAgR3JhcGhpY3NDb250ZXh0M0QqIGNvbnRleHQgPSBsYXllclJlbmRlcmVyLT5jb250ZXh0
KCk7CiAgICAgICAgIEV4dGVuc2lvbnMzRENocm9taXVtKiBleHRlbnNpb25zID0gc3RhdGljX2Nh
c3Q8RXh0ZW5zaW9uczNEQ2hyb21pdW0qPihjb250ZXh0LT5nZXRFeHRlbnNpb25zKCkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NU
aHJlYWRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1
bS9jYy9DQ1RocmVhZFByb3h5LmNwcAppbmRleCAxMzhjNzIzNDk4YmQxZjhjY2IxMmU4ZWRiOTMz
YmY0OGFkZDkwNDk3Li4yYzZjNTI5NjczYTNhYzQ2ZTM5NDI3NzRiZThlMmE5OWUxOWY0MTFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1RocmVhZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1RocmVhZFByb3h5LmNwcApAQCAtNjA5LDYgKzYwOSw3IEBAIENDU2NoZWR1
bGVkQWN0aW9uRHJhd0FuZFN3YXBSZXN1bHQgQ0NUaHJlYWRQcm94eTo6c2NoZWR1bGVkQWN0aW9u
RHJhd0FuZFN3YXBJbnRlCiAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdEltcGwtPmRyYXdMYXllcnMo
ZnJhbWUpOwogICAgICAgICByZXN1bHQuZGlkRHJhdyA9IHRydWU7CiAgICAgfQorICAgIG1fbGF5
ZXJUcmVlSG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAgICAgLy8gQ2hlY2sg
Zm9yIGEgcGVuZGluZyBjb21wb3NpdGVBbmRSZWFkYmFjay4KICAgICBpZiAobV9yZWFkYmFja1Jl
cXVlc3RPbkltcGxUaHJlYWQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDVmlkZW9MYXllckltcGwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAKaW5k
ZXggODNkMjYyZjExMDk3MjdhNjJkMDE4OWMxYjM5YzAzNTE2MmNjMzZiNy4uYTFkYmEzMjBhNzRi
MGJkZGQyYTk2NTBjZDg4NTkzZDdmODAxMTUzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVySW1wbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NWaWRlb0xheWVy
SW1wbC5jcHAKQEAgLTEyMSw2ICsxMjEsNyBAQCBzdGF0aWMgR0MzRGVudW0gY29udmVydFZGQ0Zv
cm1hdFRvR0MzREZvcm1hdChjb25zdCBXZWJLaXQ6OldlYlZpZGVvRnJhbWUmIGZyYW1lKQogdm9p
ZCBDQ1ZpZGVvTGF5ZXJJbXBsOjp3aWxsRHJhdyhMYXllclJlbmRlcmVyQ2hyb21pdW0qIGxheWVy
UmVuZGVyZXIpCiB7CiAgICAgQVNTRVJUKENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsKKyAgICBD
Q0xheWVySW1wbDo6d2lsbERyYXcobGF5ZXJSZW5kZXJlcik7CiAKICAgICBNdXRleExvY2tlciBs
b2NrZXIobV9wcm92aWRlck11dGV4KTsKIApAQCAtMTY1LDYgKzE2Niw3IEBAIHZvaWQgQ0NWaWRl
b0xheWVySW1wbDo6YXBwZW5kUXVhZHMoQ0NRdWFkQ3VsbGVyJiBxdWFkTGlzdCwgY29uc3QgQ0NT
aGFyZWRRdWFkU3RhCiB2b2lkIENDVmlkZW9MYXllckltcGw6OmRpZERyYXcoKQogewogICAgIEFT
U0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7CisgICAgQ0NMYXllckltcGw6OmRpZERyYXco
KTsKIAogICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3Byb3ZpZGVyTXV0ZXgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdEltcGxUZXN0
LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRl
c3QuY3BwCmluZGV4IDBjYjJmMGRmM2E0ZTZlMjM4NWI2ZjI2ZDU4OTRmZTU5ZGI1MTI1NDguLjM0
ZWFjMGY4YjA5YTllYTUxOWRlNGE1OWZlNzE4ODBjODg0ZDczYTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QuY3Bw
CkBAIC0xMTQsNiArMTE0LDcgQEAgcHVibGljOgogICAgICAgICBDQ0xheWVyVHJlZUhvc3RJbXBs
OjpGcmFtZURhdGEgZnJhbWU7CiAgICAgICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBh
cmVUb0RyYXcoZnJhbWUpKTsKICAgICAgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7
CisgICAgICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogICAgIH0KIAog
cHJvdGVjdGVkOgpAQCAtNTE1LDYgKzUxNiw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBs
VGVzdCwgZGlkRHJhd05vdENhbGxlZE9uSGlkZGVuTGF5ZXIpCiAKICAgICBFWFBFQ1RfVFJVRSht
X2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xh
eWVycyhmcmFtZSk7CisgICAgbV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAK
ICAgICBFWFBFQ1RfRkFMU0Uocm9vdC0+d2lsbERyYXdDYWxsZWQoKSk7CiAgICAgRVhQRUNUX0ZB
TFNFKHJvb3QtPmRpZERyYXdDYWxsZWQoKSk7CkBAIC01MjksNiArNTMxLDcgQEAgVEVTVF9GKEND
TGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBkaWREcmF3Tm90Q2FsbGVkT25IaWRkZW5MYXllcikKIAog
ICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJhbWUpKTsKICAgICBt
X2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKKyAgICBtX2hvc3RJbXBsLT5kaWREcmF3QWxs
TGF5ZXJzKGZyYW1lKTsKIAogICAgIEVYUEVDVF9UUlVFKHJvb3QtPndpbGxEcmF3Q2FsbGVkKCkp
OwogICAgIEVYUEVDVF9UUlVFKHJvb3QtPmRpZERyYXdDYWxsZWQoKSk7CkBAIC01NjAsNiArNTYz
LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBkaWREcmF3Q2FsbGVkT25BbGxM
YXllcnMpCiAgICAgQ0NMYXllclRyZWVIb3N0SW1wbDo6RnJhbWVEYXRhIGZyYW1lOwogICAgIEVY
UEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJhbWUpKTsKICAgICBtX2hvc3RJ
bXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKKyAgICBtX2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJz
KGZyYW1lKTsKIAogICAgIEVYUEVDVF9UUlVFKHJvb3QtPmRpZERyYXdDYWxsZWQoKSk7CiAgICAg
RVhQRUNUX1RSVUUobGF5ZXIxLT5kaWREcmF3Q2FsbGVkKCkpOwpAQCAtNjAyLDYgKzYwNiw3IEBA
IFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgcHJlcGFyZVRvRHJhd0ZhaWxzV2hlbkFu
aW1hdGlvblVzZXNDaGVja2VyYm9hcmQpCiAKICAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5w
cmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7
CisgICAgbV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAKICAgICAvLyBXaGVu
IGEgdGV4dHVyZSBpcyBtaXNzaW5nIGFuZCB3ZSdyZSBub3QgYW5pbWF0aW5nLCB3ZSBkcmF3IGFz
IHVzdWFsIHdpdGggY2hlY2tlcmJvYXJkaW5nLgogICAgIG1faG9zdEltcGwtPnNldFJvb3RMYXll
cihEaWREcmF3Q2hlY2tMYXllcjo6Y3JlYXRlKDApKTsKQEAgLTYxMCw2ICs2MTUsNyBAQCBURVNU
X0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHByZXBhcmVUb0RyYXdGYWlsc1doZW5BbmltYXRp
b25Vc2VzQ2hlY2tlcmJvYXJkKQogCiAgICAgRVhQRUNUX1RSVUUobV9ob3N0SW1wbC0+cHJlcGFy
ZVRvRHJhdyhmcmFtZSkpOwogICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoZnJhbWUpOworICAg
IG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAgICAgLy8gV2hlbiBhIHRl
eHR1cmUgaXMgbWlzc2luZyBhbmQgd2UncmUgYW5pbWF0aW5nLCB3ZSBkb24ndCB3YW50IHRvIGRy
YXcgYW55dGhpbmcuCiAgICAgbV9ob3N0SW1wbC0+c2V0Um9vdExheWVyKERpZERyYXdDaGVja0xh
eWVyOjpjcmVhdGUoMCkpOwpAQCAtNjIwLDYgKzYyNiw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhv
c3RJbXBsVGVzdCwgcHJlcGFyZVRvRHJhd0ZhaWxzV2hlbkFuaW1hdGlvblVzZXNDaGVja2VyYm9h
cmQpCiAgICAgRVhQRUNUX0ZBTFNFKG1faG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJhbWUpKTsK
ICAgICBFWFBFQ1RfVFJVRShtX2RpZFJlcXVlc3RDb21taXQpOwogICAgIG1faG9zdEltcGwtPmRy
YXdMYXllcnMoZnJhbWUpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUp
OwogCiAgICAgLy8gV2hlbiB0aGUgbGF5ZXIgc2tpcHMgZHJhdyBhbmQgd2UncmUgYW5pbWF0aW5n
LCB3ZSBzdGlsbCBkcmF3IHRoZSBmcmFtZS4KICAgICBtX2hvc3RJbXBsLT5zZXRSb290TGF5ZXIo
RGlkRHJhd0NoZWNrTGF5ZXI6OmNyZWF0ZSgwKSk7CkBAIC02MjgsNiArNjM1LDcgQEAgVEVTVF9G
KENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBwcmVwYXJlVG9EcmF3RmFpbHNXaGVuQW5pbWF0aW9u
VXNlc0NoZWNrZXJib2FyZCkKIAogICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBhcmVU
b0RyYXcoZnJhbWUpKTsKICAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKKyAgICBt
X2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKIH0KIAogVEVTVF9GKENDTGF5ZXJU
cmVlSG9zdEltcGxUZXN0LCBzY3JvbGxSb290SWdub3JlZCkKQEAgLTEwMDEsNiArMTAwOSw3IEBA
IFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZXaGVuRHJhd2luZ09w
YXF1ZUxheWVycykKICAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZy
YW1lKSk7CiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CiAgICAgRVhQRUNUX1RS
VUUobGF5ZXIxLT5xdWFkc0FwcGVuZGVkKCkpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxM
YXllcnMoZnJhbWUpOwogCiAgICAgLy8gTGF5ZXIgd2l0aCB0cmFuc2x1Y2VudCBjb250ZW50LCBi
dXQgb3BhcXVlIGNvbnRlbnQsIHNvIGRyYXduIHdpdGhvdXQgYmxlbmRpbmcuCiAgICAgbGF5ZXIx
LT5zZXRPcGFxdWUoZmFsc2UpOwpAQCAtMTAwOSw2ICsxMDE4LDcgQEAgVEVTVF9GKENDTGF5ZXJU
cmVlSG9zdEltcGxUZXN0LCBibGVuZGluZ09mZldoZW5EcmF3aW5nT3BhcXVlTGF5ZXJzKQogICAg
IEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJhbWUpKTsKICAgICBtX2hv
c3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKICAgICBFWFBFQ1RfVFJVRShsYXllcjEtPnF1YWRz
QXBwZW5kZWQoKSk7CisgICAgbV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAK
ICAgICAvLyBMYXllciB3aXRoIHRyYW5zbHVjZW50IGNvbnRlbnQgYW5kIHBhaW50aW5nLCBzbyBk
cmF3biB3aXRoIGJsZW5kaW5nLgogICAgIGxheWVyMS0+c2V0T3BhcXVlKGZhbHNlKTsKQEAgLTEw
MTcsNiArMTAyNyw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdP
ZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVycykKICAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5w
cmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7
CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5xdWFkc0FwcGVuZGVkKCkpOworICAgIG1faG9zdElt
cGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAgICAgLy8gTGF5ZXIgd2l0aCB0cmFuc2x1
Y2VudCBvcGFjaXR5LCBkcmF3biB3aXRoIGJsZW5kaW5nLgogICAgIGxheWVyMS0+c2V0T3BhcXVl
KHRydWUpOwpAQCAtMTAyNiw2ICsxMDM3LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxU
ZXN0LCBibGVuZGluZ09mZldoZW5EcmF3aW5nT3BhcXVlTGF5ZXJzKQogICAgIEVYUEVDVF9UUlVF
KG1faG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJhbWUpKTsKICAgICBtX2hvc3RJbXBsLT5kcmF3
TGF5ZXJzKGZyYW1lKTsKICAgICBFWFBFQ1RfVFJVRShsYXllcjEtPnF1YWRzQXBwZW5kZWQoKSk7
CisgICAgbV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAKICAgICAvLyBMYXll
ciB3aXRoIHRyYW5zbHVjZW50IG9wYWNpdHkgYW5kIHBhaW50aW5nLCBkcmF3biB3aXRoIGJsZW5k
aW5nLgogICAgIGxheWVyMS0+c2V0T3BhcXVlKHRydWUpOwpAQCAtMTAzNSw2ICsxMDQ3LDcgQEAg
VEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBibGVuZGluZ09mZldoZW5EcmF3aW5nT3Bh
cXVlTGF5ZXJzKQogICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJh
bWUpKTsKICAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKICAgICBFWFBFQ1RfVFJV
RShsYXllcjEtPnF1YWRzQXBwZW5kZWQoKSk7CisgICAgbV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExh
eWVycyhmcmFtZSk7CiAKICAgICBsYXllcjEtPmFkZENoaWxkKEJsZW5kU3RhdGVDaGVja0xheWVy
OjpjcmVhdGUoMikpOwogICAgIEJsZW5kU3RhdGVDaGVja0xheWVyKiBsYXllcjIgPSBzdGF0aWNf
Y2FzdDxCbGVuZFN0YXRlQ2hlY2tMYXllcio+KGxheWVyMS0+Y2hpbGRyZW4oKVswXS5nZXQoKSk7
CkBAIC0xMDUyLDYgKzEwNjUsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGJs
ZW5kaW5nT2ZmV2hlbkRyYXdpbmdPcGFxdWVMYXllcnMpCiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xh
eWVycyhmcmFtZSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5xdWFkc0FwcGVuZGVkKCkpOwog
ICAgIEVYUEVDVF9UUlVFKGxheWVyMi0+cXVhZHNBcHBlbmRlZCgpKTsKKyAgICBtX2hvc3RJbXBs
LT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKIAogICAgIC8vIFBhcmVudCBsYXllciB3aXRoIHRy
YW5zbHVjZW50IGNvbnRlbnQsIGRyYXduIHdpdGggYmxlbmRpbmcuCiAgICAgLy8gQ2hpbGQgbGF5
ZXIgd2l0aCBvcGFxdWUgY29udGVudCwgZHJhd24gd2l0aG91dCBibGVuZGluZy4KQEAgLTEwNjMs
NiArMTA3Nyw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZX
aGVuRHJhd2luZ09wYXF1ZUxheWVycykKICAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1l
KTsKICAgICBFWFBFQ1RfVFJVRShsYXllcjEtPnF1YWRzQXBwZW5kZWQoKSk7CiAgICAgRVhQRUNU
X1RSVUUobGF5ZXIyLT5xdWFkc0FwcGVuZGVkKCkpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdB
bGxMYXllcnMoZnJhbWUpOwogCiAgICAgLy8gUGFyZW50IGxheWVyIHdpdGggdHJhbnNsdWNlbnQg
Y29udGVudCBidXQgb3BhcXVlIHBhaW50aW5nLCBkcmF3biB3aXRob3V0IGJsZW5kaW5nLgogICAg
IC8vIENoaWxkIGxheWVyIHdpdGggb3BhcXVlIGNvbnRlbnQsIGRyYXduIHdpdGhvdXQgYmxlbmRp
bmcuCkBAIC0xMDc0LDYgKzEwODksNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3Qs
IGJsZW5kaW5nT2ZmV2hlbkRyYXdpbmdPcGFxdWVMYXllcnMpCiAgICAgbV9ob3N0SW1wbC0+ZHJh
d0xheWVycyhmcmFtZSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5xdWFkc0FwcGVuZGVkKCkp
OwogICAgIEVYUEVDVF9UUlVFKGxheWVyMi0+cXVhZHNBcHBlbmRlZCgpKTsKKyAgICBtX2hvc3RJ
bXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKIAogICAgIC8vIFBhcmVudCBsYXllciB3aXRo
IHRyYW5zbHVjZW50IG9wYWNpdHkgYW5kIG9wYXF1ZSBjb250ZW50LiBTaW5jZSBpdCBoYXMgYQog
ICAgIC8vIGRyYXdpbmcgY2hpbGQsIGl0J3MgZHJhd24gdG8gYSByZW5kZXIgc3VyZmFjZSB3aGlj
aCBjYXJyaWVzIHRoZSBvcGFjaXR5LApAQCAtMTA4OSw2ICsxMTA1LDcgQEAgVEVTVF9GKENDTGF5
ZXJUcmVlSG9zdEltcGxUZXN0LCBibGVuZGluZ09mZldoZW5EcmF3aW5nT3BhcXVlTGF5ZXJzKQog
ICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoZnJhbWUpOwogICAgIEVYUEVDVF9UUlVFKGxheWVy
MS0+cXVhZHNBcHBlbmRlZCgpKTsKICAgICBFWFBFQ1RfVFJVRShsYXllcjItPnF1YWRzQXBwZW5k
ZWQoKSk7CisgICAgbV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAKICAgICAv
LyBEcmF3IGFnYWluLCBidXQgd2l0aCBjaGlsZCBub24tb3BhcXVlLCB0byBtYWtlIHN1cmUKICAg
ICAvLyBsYXllcjEgbm90IGN1bGxlZC4KQEAgLTExMDQsNiArMTEyMSw3IEBAIFRFU1RfRihDQ0xh
eWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVycykK
ICAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKICAgICBFWFBFQ1RfVFJVRShsYXll
cjEtPnF1YWRzQXBwZW5kZWQoKSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIyLT5xdWFkc0FwcGVu
ZGVkKCkpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAgICAg
Ly8gQSBzZWNvbmQgd2F5IG9mIG1ha2luZyB0aGUgY2hpbGQgbm9uLW9wYXF1ZS4KICAgICBsYXll
cjEtPnNldE9wYXF1ZSh0cnVlKTsKQEAgLTExMTcsNiArMTEzNSw3IEBAIFRFU1RfRihDQ0xheWVy
VHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVycykKICAg
ICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKICAgICBFWFBFQ1RfVFJVRShsYXllcjEt
PnF1YWRzQXBwZW5kZWQoKSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIyLT5xdWFkc0FwcGVuZGVk
KCkpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAgICAgLy8g
QW5kIHdoZW4gdGhlIGxheWVyIHNheXMgaXRzIG5vdCBvcGFxdWUgYnV0IGlzIHBhaW50ZWQgb3Bh
cXVlLCBpdCBpcyBub3QgYmxlbmRlZC4KICAgICBsYXllcjEtPnNldE9wYXF1ZSh0cnVlKTsKQEAg
LTExMzAsNiArMTE0OSw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgYmxlbmRp
bmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVycykKICAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJz
KGZyYW1lKTsKICAgICBFWFBFQ1RfVFJVRShsYXllcjEtPnF1YWRzQXBwZW5kZWQoKSk7CiAgICAg
RVhQRUNUX1RSVUUobGF5ZXIyLT5xdWFkc0FwcGVuZGVkKCkpOworICAgIG1faG9zdEltcGwtPmRp
ZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAgICAgLy8gTGF5ZXIgd2l0aCBwYXJ0aWFsbHkgb3Bh
cXVlIGNvbnRlbnRzLCBkcmF3biB3aXRoIGJsZW5kaW5nLgogICAgIGxheWVyMS0+c2V0T3BhcXVl
KGZhbHNlKTsKQEAgLTExNDEsNiArMTE2MSw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJbXBs
VGVzdCwgYmxlbmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVycykKICAgICBFWFBFQ1RfVFJV
RShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgbV9ob3N0SW1wbC0+ZHJh
d0xheWVycyhmcmFtZSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5xdWFkc0FwcGVuZGVkKCkp
OworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAgICAgLy8gTGF5
ZXIgd2l0aCBwYXJ0aWFsbHkgb3BhcXVlIGNvbnRlbnRzIHBhcnRpYWxseSBjdWxsZWQsIGRyYXdu
IHdpdGggYmxlbmRpbmcuCiAgICAgbGF5ZXIxLT5zZXRPcGFxdWUoZmFsc2UpOwpAQCAtMTE1Miw2
ICsxMTczLDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBibGVuZGluZ09mZldo
ZW5EcmF3aW5nT3BhcXVlTGF5ZXJzKQogICAgIEVYUEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBh
cmVUb0RyYXcoZnJhbWUpKTsKICAgICBtX2hvc3RJbXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKICAg
ICBFWFBFQ1RfVFJVRShsYXllcjEtPnF1YWRzQXBwZW5kZWQoKSk7CisgICAgbV9ob3N0SW1wbC0+
ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAKICAgICAvLyBMYXllciB3aXRoIHBhcnRpYWxseSBv
cGFxdWUgY29udGVudHMgY3VsbGVkLCBkcmF3biB3aXRoIGJsZW5kaW5nLgogICAgIGxheWVyMS0+
c2V0T3BhcXVlKGZhbHNlKTsKQEAgLTExNjMsNiArMTE4NSw3IEBAIFRFU1RfRihDQ0xheWVyVHJl
ZUhvc3RJbXBsVGVzdCwgYmxlbmRpbmdPZmZXaGVuRHJhd2luZ09wYXF1ZUxheWVycykKICAgICBF
WFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgbV9ob3N0
SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXIxLT5xdWFkc0Fw
cGVuZGVkKCkpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogCiAg
ICAgLy8gTGF5ZXIgd2l0aCBwYXJ0aWFsbHkgb3BhcXVlIGNvbnRlbnRzIGFuZCB0cmFuc2x1Y2Vu
dCBjb250ZW50cyBjdWxsZWQsIGRyYXduIHdpdGhvdXQgYmxlbmRpbmcuCiAgICAgbGF5ZXIxLT5z
ZXRPcGFxdWUoZmFsc2UpOwpAQCAtMTE3NCw2ICsxMTk3LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVl
SG9zdEltcGxUZXN0LCBibGVuZGluZ09mZldoZW5EcmF3aW5nT3BhcXVlTGF5ZXJzKQogICAgIEVY
UEVDVF9UUlVFKG1faG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJhbWUpKTsKICAgICBtX2hvc3RJ
bXBsLT5kcmF3TGF5ZXJzKGZyYW1lKTsKICAgICBFWFBFQ1RfVFJVRShsYXllcjEtPnF1YWRzQXBw
ZW5kZWQoKSk7CisgICAgbV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAKIH0K
IApAQCAtMTIxMCw2ICsxMjM0LDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCB2
aWV3cG9ydENvdmVyZWQpCiAgICAgICAgIEVYUEVDVF9FUSgxdSwgZnJhbWUucmVuZGVyUGFzc2Vz
WzBdLT5xdWFkTGlzdCgpLnNpemUoKSk7CiAKICAgICAgICAgdmVyaWZ5UXVhZHNFeGFjdGx5Q292
ZXJSZWN0KGZyYW1lLnJlbmRlclBhc3Nlc1swXS0+cXVhZExpc3QoKSwgSW50UmVjdCgtbGF5ZXJS
ZWN0LmxvY2F0aW9uKCksIHZpZXdwb3J0U2l6ZSkpOworICAgICAgICBtX2hvc3RJbXBsLT5kaWRE
cmF3QWxsTGF5ZXJzKGZyYW1lKTsKICAgICB9CiAKICAgICAvLyBFbXB0eSB2aXNpYmxlIGNvbnRl
bnQgYXJlYSAoZnVsbHNjcmVlbiBndXR0ZXIgcmVjdCkKQEAgLTEyMjQsNiArMTI0OSw3IEBAIFRF
U1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgdmlld3BvcnRDb3ZlcmVkKQogICAgICAgICBD
Q0xheWVyVHJlZUhvc3RJbXBsOjpGcmFtZURhdGEgZnJhbWU7CiAgICAgICAgIEVYUEVDVF9UUlVF
KG1faG9zdEltcGwtPnByZXBhcmVUb0RyYXcoZnJhbWUpKTsKICAgICAgICAgQVNTRVJUX0VRKDF1
LCBmcmFtZS5yZW5kZXJQYXNzZXMuc2l6ZSgpKTsKKyAgICAgICAgbV9ob3N0SW1wbC0+ZGlkRHJh
d0FsbExheWVycyhmcmFtZSk7CiAKICAgICAgICAgc2l6ZV90IG51bUd1dHRlclF1YWRzID0gMDsK
ICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmcmFtZS5yZW5kZXJQYXNzZXNbMF0tPnF1
YWRMaXN0KCkuc2l6ZSgpOyArK2kpCkBAIC0xMjMyLDYgKzEyNTgsNyBAQCBURVNUX0YoQ0NMYXll
clRyZWVIb3N0SW1wbFRlc3QsIHZpZXdwb3J0Q292ZXJlZCkKICAgICAgICAgRVhQRUNUX0VRKDF1
LCBmcmFtZS5yZW5kZXJQYXNzZXNbMF0tPnF1YWRMaXN0KCkuc2l6ZSgpKTsKIAogICAgICAgICB2
ZXJpZnlRdWFkc0V4YWN0bHlDb3ZlclJlY3QoZnJhbWUucmVuZGVyUGFzc2VzWzBdLT5xdWFkTGlz
dCgpLCBJbnRSZWN0KC1sYXllclJlY3QubG9jYXRpb24oKSwgdmlld3BvcnRTaXplKSk7CisgICAg
ICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogICAgIH0KIAogICAgIC8v
IENvbnRlbnQgYXJlYSBpbiBtaWRkbGUgb2YgY2xpcCByZWN0IChmb3VyIHN1cnJvdW5kaW5nIGd1
dHRlciByZWN0cykKQEAgLTEyNTQsNiArMTI4MSw3IEBAIFRFU1RfRihDQ0xheWVyVHJlZUhvc3RJ
bXBsVGVzdCwgdmlld3BvcnRDb3ZlcmVkKQogICAgICAgICBFWFBFQ1RfRVEoNXUsIGZyYW1lLnJl
bmRlclBhc3Nlc1swXS0+cXVhZExpc3QoKS5zaXplKCkpOwogCiAgICAgICAgIHZlcmlmeVF1YWRz
RXhhY3RseUNvdmVyUmVjdChmcmFtZS5yZW5kZXJQYXNzZXNbMF0tPnF1YWRMaXN0KCksIEludFJl
Y3QoLWxheWVyUmVjdC5sb2NhdGlvbigpLCB2aWV3cG9ydFNpemUpKTsKKyAgICAgICAgbV9ob3N0
SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAgICAgfQogCiB9CkBAIC0xMzAwLDYgKzEz
MjgsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHJlc2hhcGVOb3RDYWxsZWRV
bnRpbERyYXcpCiAgICAgRVhQRUNUX1RSVUUobV9ob3N0SW1wbC0+cHJlcGFyZVRvRHJhdyhmcmFt
ZSkpOwogICAgIG1faG9zdEltcGwtPmRyYXdMYXllcnMoZnJhbWUpOwogICAgIEVYUEVDVF9UUlVF
KHJlc2hhcGVUcmFja2VyLT5yZXNoYXBlQ2FsbGVkKCkpOworICAgIG1faG9zdEltcGwtPmRpZERy
YXdBbGxMYXllcnMoZnJhbWUpOwogfQogCiBjbGFzcyBQYXJ0aWFsU3dhcFRyYWNrZXJDb250ZXh0
IDogcHVibGljIEZha2VXZWJHcmFwaGljc0NvbnRleHQzRCB7CkBAIC0xMzU1LDYgKzEzODQsNyBA
QCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHBhcnRpYWxTd2FwUmVjZWl2ZXNEYW1h
Z2VSZWN0KQogICAgIC8vIEZpcnN0IGZyYW1lLCB0aGUgZW50aXJlIHNjcmVlbiBzaG91bGQgZ2V0
IHN3YXBwZWQuCiAgICAgRVhQRUNUX1RSVUUobGF5ZXJUcmVlSG9zdEltcGwtPnByZXBhcmVUb0Ry
YXcoZnJhbWUpKTsKICAgICBsYXllclRyZWVIb3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7Cisg
ICAgbGF5ZXJUcmVlSG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogICAgIGxheWVy
VHJlZUhvc3RJbXBsLT5zd2FwQnVmZmVycygpOwogICAgIEludFJlY3QgYWN0dWFsU3dhcFJlY3Qg
PSBwYXJ0aWFsU3dhcFRyYWNrZXItPnBhcnRpYWxTd2FwUmVjdCgpOwogICAgIEludFJlY3QgZXhw
ZWN0ZWRTd2FwUmVjdCA9IEludFJlY3QoSW50UG9pbnQ6Onplcm8oKSwgSW50U2l6ZSg1MDAsIDUw
MCkpOwpAQCAtMTM3MCw2ICsxNDAwLDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0
LCBwYXJ0aWFsU3dhcFJlY2VpdmVzRGFtYWdlUmVjdCkKICAgICBjaGlsZC0+c2V0UG9zaXRpb24o
RmxvYXRQb2ludCgwLCAwKSk7CiAgICAgRVhQRUNUX1RSVUUobGF5ZXJUcmVlSG9zdEltcGwtPnBy
ZXBhcmVUb0RyYXcoZnJhbWUpKTsKICAgICBsYXllclRyZWVIb3N0SW1wbC0+ZHJhd0xheWVycyhm
cmFtZSk7CisgICAgbV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAgICAgbGF5
ZXJUcmVlSG9zdEltcGwtPnN3YXBCdWZmZXJzKCk7CiAgICAgYWN0dWFsU3dhcFJlY3QgPSBwYXJ0
aWFsU3dhcFRyYWNrZXItPnBhcnRpYWxTd2FwUmVjdCgpOwogICAgIGV4cGVjdGVkU3dhcFJlY3Qg
PSBJbnRSZWN0KEludFBvaW50KDAsIDUwMC0yOCksIEludFNpemUoMjYsIDI4KSk7CkBAIC0xMzg1
LDYgKzE0MTYsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIHBhcnRpYWxTd2Fw
UmVjZWl2ZXNEYW1hZ2VSZWN0KQogICAgIHJvb3QtPnNldE9wYWNpdHkoMC43Zik7IC8vIHRoaXMg
d2lsbCBkYW1hZ2UgZXZlcnl0aGluZwogICAgIEVYUEVDVF9UUlVFKGxheWVyVHJlZUhvc3RJbXBs
LT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgbGF5ZXJUcmVlSG9zdEltcGwtPmRyYXdMYXll
cnMoZnJhbWUpOworICAgIG1faG9zdEltcGwtPmRpZERyYXdBbGxMYXllcnMoZnJhbWUpOwogICAg
IGxheWVyVHJlZUhvc3RJbXBsLT5zd2FwQnVmZmVycygpOwogICAgIGFjdHVhbFN3YXBSZWN0ID0g
cGFydGlhbFN3YXBUcmFja2VyLT5wYXJ0aWFsU3dhcFJlY3QoKTsKICAgICBleHBlY3RlZFN3YXBS
ZWN0ID0gSW50UmVjdChJbnRQb2ludDo6emVybygpLCBJbnRTaXplKDEwLCAxMCkpOwpAQCAtMTQ4
MSw3ICsxNTEzLDcgQEAgVEVTVF9GKENDTGF5ZXJUcmVlSG9zdEltcGxUZXN0LCBzY3JvbGxiYXJM
YXllckxvc3RDb250ZXh0KQogICAgICAgICBDQ1JlbmRlclBhc3MqIHJlbmRlclBhc3MgPSBmcmFt
ZS5yZW5kZXJQYXNzZXNbMF0uZ2V0KCk7CiAgICAgICAgIC8vIFNjcm9sbGJhciBsYXllciBzaG91
bGQgYWx3YXlzIGdlbmVyYXRlIHF1YWRzLCBldmVuIGFmdGVyIGxvc3QgY29udGV4dAogICAgICAg
ICBFWFBFQ1RfR1QocmVuZGVyUGFzcy0+cXVhZExpc3QoKS5zaXplKCksIDB1KTsKLQorICAgICAg
ICBtX2hvc3RJbXBsLT5kaWREcmF3QWxsTGF5ZXJzKGZyYW1lKTsKICAgICAgICAgbV9ob3N0SW1w
bC0+aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIoY3JlYXRlQ29udGV4dCgpKTsKICAgICB9CiB9CkBA
IC0xNjU1LDYgKzE2ODcsNyBAQCBURVNUX0YoQ0NMYXllclRyZWVIb3N0SW1wbFRlc3QsIGRvbnRV
c2VPbGRSZXNvdXJjZXNBZnRlckxvc3RDb250ZXh0KQogICAgIENDTGF5ZXJUcmVlSG9zdEltcGw6
OkZyYW1lRGF0YSBmcmFtZTsKICAgICBFWFBFQ1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9E
cmF3KGZyYW1lKSk7CiAgICAgbV9ob3N0SW1wbC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9o
b3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhmcmFtZSk7CiAgICAgbV9ob3N0SW1wbC0+c3dhcEJ1
ZmZlcnMoKTsKIAogICAgIC8vIExvc2UgdGhlIGNvbnRleHQsIHJlcGxhY2luZyBpdCB3aXRoIGEg
U3RyaWN0V2ViR3JhcGhpY3NDb250ZXh0M0QsIHRoYXQKQEAgLTE2NjIsNiArMTY5NSw3IEBAIFRF
U1RfRihDQ0xheWVyVHJlZUhvc3RJbXBsVGVzdCwgZG9udFVzZU9sZFJlc291cmNlc0FmdGVyTG9z
dENvbnRleHQpCiAgICAgbV9ob3N0SW1wbC0+aW5pdGlhbGl6ZUxheWVyUmVuZGVyZXIoU3RyaWN0
V2ViR3JhcGhpY3NDb250ZXh0M0Q6OmNyZWF0ZUdyYXBoaWNzQ29udGV4dCgpKTsKICAgICBFWFBF
Q1RfVFJVRShtX2hvc3RJbXBsLT5wcmVwYXJlVG9EcmF3KGZyYW1lKSk7CiAgICAgbV9ob3N0SW1w
bC0+ZHJhd0xheWVycyhmcmFtZSk7CisgICAgbV9ob3N0SW1wbC0+ZGlkRHJhd0FsbExheWVycyhm
cmFtZSk7CiAgICAgbV9ob3N0SW1wbC0+c3dhcEJ1ZmZlcnMoKTsKIH0KIAo=
</data>
<flag name="review"
          id="144292"
          type_id="1"
          status="+"
          setter="jamesr"
    />
          </attachment>
      

    </bug>

</bugzilla>