<?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>98574</bug_id>
          
          <creation_ts>2012-10-05 16:24:44 -0700</creation_ts>
          <short_desc>Some GraphicsLayer cleanup to separate the concepts of using a tile cache, and being the main tile cache layer</short_desc>
          <delta_ts>2012-10-08 13:11:45 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>dino</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>eric</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>736079</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-05 16:24:44 -0700</bug_when>
    <thetext>Some GraphicsLayer cleanup to separate the concepts of using a tile cache, and being the main tile cache layer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736093</commentid>
    <comment_count>1</comment_count>
      <attachid>167414</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-05 16:38:13 -0700</bug_when>
    <thetext>Created attachment 167414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736116</commentid>
    <comment_count>2</comment_count>
      <attachid>167414</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-05 17:27:19 -0700</bug_when>
    <thetext>Comment on attachment 167414
Patch

Attachment 167414 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14178648</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736133</commentid>
    <comment_count>3</comment_count>
      <attachid>167429</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-05 17:55:18 -0700</bug_when>
    <thetext>Created attachment 167429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736155</commentid>
    <comment_count>4</comment_count>
      <attachid>167429</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-05 18:41:37 -0700</bug_when>
    <thetext>Comment on attachment 167429
Patch

Attachment 167429 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14179685</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736172</commentid>
    <comment_count>5</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-10-05 19:29:43 -0700</bug_when>
    <thetext>7&gt;..\FullscreenVideoController.cpp(250) : error C2259: &apos;FullscreenVideoController::LayerClient&apos; : cannot instantiate abstract class
7&gt;        due to following members:
7&gt;        &apos;bool WebCore::PlatformCALayerClient::platformCALayerShowRepaintCounter(WebCore::PlatformCALayer *) const&apos; : is abstract
7&gt;        c:\cygwin\home\buildbot\webkit\webkitbuild\debug\include\webcore\PlatformCALayerClient.h(55) : see declaration of &apos;WebCore::PlatformCALayerClient::platformCALayerShowRepaintCounter&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736179</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-05 20:12:57 -0700</bug_when>
    <thetext>Boo.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736794</commentid>
    <comment_count>7</comment_count>
      <attachid>167429</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2012-10-08 10:47:26 -0700</bug_when>
    <thetext>Comment on attachment 167429
Patch

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

&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:341
&gt; +void GraphicsLayer::debugBorderInfo(Color&amp; color, float&amp; width) const

In a recent review from Darin, he said &quot;We reserve the word &apos;get&apos; for functions that have no return value and use out arguments instead&quot;. When I was seeing this used in action below, it wasn&apos;t clear the function was doing anything since you don&apos;t get return values. Maybe it should be getDebugBorderInfo?

&gt; Source/WebCore/platform/graphics/GraphicsLayer.cpp:373
&gt; +    Color borderColor;
&gt; +    float width = 0;
&gt; +    debugBorderInfo(borderColor, width);
&gt; +    setDebugBorder(borderColor, width);

Here&apos;s the place I was talking about above.

&gt; Source/WebCore/platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:99
&gt; -    if (owner()-&gt;owner()-&gt;platformCALayerShowRepaintCounter()) {
&gt; +    if (owner()-&gt;owner()-&gt;platformCALayerShowRepaintCounter(owner())) {

wow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>736954</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-10-08 13:11:45 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/130676</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167414</attachid>
            <date>2012-10-05 16:38:13 -0700</date>
            <delta_ts>2012-10-05 17:55:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98574-20121005163723.patch</filename>
            <type>text/plain</type>
            <size>18359</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJlZDAzZGRkZjMyMDQw
MjhiYjgzNjQxNTY2MDc0ZTMxZmEyZGUwZi4uZTc0N2I2MTA2ODUyNmFkNjhhZTI2MDAwNmU2ZGYw
ODVjMTAxOTAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTEwLTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFNvbWUgR3JhcGhp
Y3NMYXllciBjbGVhbnVwIHRvIHNlcGFyYXRlIHRoZSBjb25jZXB0cyBvZiB1c2luZyBhIHRpbGUg
Y2FjaGUsIGFuZCBiZWluZyB0aGUgbWFpbiB0aWxlIGNhY2hlIGxheWVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODU3NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdyYXBoaWNzTGF5ZXJDQSBhc3N1bWVk
IHRoYXQgdXNpbmcgYSBUaWxlQ2FjaGUgZXF1YXRlZCB0byBiZWluZyB0aGUgbWFpbiBwYWdlIHRp
bGUKKyAgICAgICAgY2FjaGUgbGF5ZXIsIHdoaWNoIGhhcyBzb21lIHNwZWNpYWwgY29uc2lkZXJh
dGlvbnMuIE1ha2UgdGhlc2UgdHdvIGNvbmNlcHRzIHNlcGFyYXRlCisgICAgICAgIHRvIGdldCBj
bG9zZXIgdG8gYmVpbmcgYWJsZSB0byB1c2UgVGlsZUNhY2hlcyBpbiBwbGFjZSBvZiBDQVRpbGVk
TGF5ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6Cisg
ICAgICAgIChHcmFwaGljc0xheWVyKTogUmVtb3ZlIG1fdXNpbmdUaWxlQ2FjaGUgbWVtYmVyLCB3
aGljaCB3YXMgbm90IGFwcHJvcHJpYXRlCisgICAgICAgIGZvciB0aGlzIGNsYXNzIHRvIGhhdmUu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKTogUmVtb3ZlIGluaXQgb2Yg
bV91c2luZ1RpbGVDYWNoZS4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmRlYnVn
Qm9yZGVySW5mbyk6IENhbiBubyBsb25nZXIgdXNlIG1fdXNpbmdUaWxlQ2FjaGUgdG8KKyAgICAg
ICAgZ2V0IHRoZSBibHVlIGNvbG9yLCBzbyBtb3ZlZCBjb2RlIGludG8gYSB2aXJ0dWFsIGRlYnVn
Qm9yZGVySW5mbygpIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnVw
ZGF0ZURlYnVnSW5kaWNhdG9ycyk6IENhbGwgdGhlIHZpcnR1YWwgZGVidWdCb3JkZXJJbmZvKCku
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOiBSZW1v
dmUgdGhlIHVzaW5nVGlsZUNhY2hlKCkgY2FsbGJhY2s7CisgICAgICAgIHdlIG5vdyBqdXN0IGNh
Y2hlIHRoaXMgaW5mb3JtYXRpb24gaW4gdGhlIEdyYXBoaWNzTGF5ZXJDQSBvbiBjcmVhdGlvbi4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpHcmFwaGljc0xheWVyQ0EpOiBJbml0IG1f
aXNQYWdlVGlsZUNhY2hlTGF5ZXIgdG8gZmFsc2UsCisgICAgICAgIHRoZW4gc2V0IHRvIG1faXNQ
YWdlVGlsZUNhY2hlTGF5ZXIgaWYgdGhlIGNsaWVudCBzYXlzIHdlIHNob3VsZCBjcmVhdGUgYSB0
aWxlIGNhY2hlLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNB
TGF5ZXJTaG93UmVwYWludENvdW50ZXIpOiBPdmVyaWRkZW4gdG8gYXZvaWQgZHVwbGljYXRlIHJl
cGFpbnQKKyAgICAgICAgY291bnRlcnMgaW4gdGhlIHRvcC1sZWZ0IHRpbGUuCisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUxheWVyQmFja2dyb3VuZENvbG9yKTogSWYg
dGhpcyBsYXllciBpcyB0aGUgcGFnZSB0aWxlIGNhY2hlIGxheWVyLAorICAgICAgICB3ZSBhbGxv
dyBzZXR0aW5nIG9mIGl0cyBiYWNrZ3JvdW5kIGNvbG9yLgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckNBOjpkZWJ1Z0JvcmRlckluZm8pOiBPdmVyaWRkZW4gdG8gdXNlIGEgYmx1ZSBj
b2xvciBmb3IgdGlsZXMuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnJlcXVp
cmVzVGlsZWRMYXllcik6IERvbid0IG1ha2UgQ0FUaWxlZExheWVycyBmb3IgdGhlIHBhZ2UgdGls
ZSBjYWNoZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aDoKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXJDQSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvUGxhdGZvcm1DQUxheWVyQ2xpZW50Lmg6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJD
bGllbnQpOiBOZWVkIHRvIHBhc3MgdGhlIHBsYXRmb3JtIGxheWVyIGludG8gcGxhdGZvcm1DQUxh
eWVyU2hvd1JlcGFpbnRDb3VudGVyKCkKKyAgICAgICAgc28gd2UgY2FuIGRpc3Rpbmd1aXNoIGJl
dHdlZW4gY2FsbHMgZm9yIHRpbGVzLCBhbmQgY2FsbHMgZm9yIHRoZSB0aWxlIGNhY2hlIGxheWVy
IGl0c2VsZi4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1t
OgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNhY2hlOjpzaG91bGRTaG93UmVwYWludENvdW50ZXJz
KTogUGFzcyAwIHRvIHBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRlcigpIHRvCisgICAg
ICAgIGluZGljYXRlIHRoYXQgd2UncmUgYXNraW5nIGFib3V0IGEgdGlsZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW06CisgICAgICAgIChkcmF3TGF5ZXJDb250
ZW50cyk6IE5vdyB3ZSBjYW4ganVzdCByZWx5IG9uIHBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50
Q291bnRlcigpIHRvIHRlbGwgdXMgd2hldGhlcgorICAgICAgICB0byBkcmF3IHRoZSByZXBhaW50
IGNvdW50ZXIuCisgICAgICAgICgtW1dlYkxheWVyIHNldE5lZWRzRGlzcGxheUluUmVjdDpdKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViVGlsZWRMYXllci5tbToKKyAgICAg
ICAgKC1bV2ViVGlsZWRMYXllciBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6XSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjp1c2luZ1RpbGVDYWNoZSk6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tp
bmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkb2N1bWVudEJhY2tncm91bmRD
b2xvckRpZENoYW5nZSk6IFdlIGNhbiBhc2sgdGhlIFJlbmRlckxheWVyQmFja2luZworICAgICAg
ICB3aGV0aGVyIGl0J3MgZm9yIHRoZSB0aWxlIGNhY2hlLCByYXRoZXIgdGhhbiBnb2luZyB0byB0
aGUgR3JhcGhpY3NMYXllci4KKworMjAxMi0xMC0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBEb24ndCBhc3N1bWUgdGhhdCBUaWxlQ2FjaGUgbGF5
ZXJzIGFyZSBvcGFxdWUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4NTU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKaW5kZXggZTM2MGM5MTA1ZDRlZTI0YzZiM2VmNGM5MTFmZDAyMzQw
NTRjZTE0MC4uYzUyM2ZlMjUxN2U2ZGFlYWRiYTAwMzI2NzQ0NzA5NmYwMDA0ZTAyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAK
QEAgLTgwLDcgKzgwLDYgQEAgR3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcihHcmFwaGljc0xh
eWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2FjY2VsZXJhdGVzRHJhd2luZyhmYWxzZSkKICAg
ICAsIG1fbWFpbnRhaW5zUGl4ZWxBbGlnbm1lbnQoZmFsc2UpCiAgICAgLCBtX2FwcGxpZXNQYWdl
U2NhbGUoZmFsc2UpCi0gICAgLCBtX3VzaW5nVGlsZUNhY2hlKGZhbHNlKQogICAgICwgbV9wYWlu
dGluZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQYWludEFsbFdpdGhPdmVyZmxvd0NsaXApCiAgICAgLCBt
X2NvbnRlbnRzT3JpZW50YXRpb24oQ29tcG9zaXRpbmdDb29yZGluYXRlc1RvcERvd24pCiAgICAg
LCBtX3BhcmVudCgwKQpAQCAtMzM5LDIxICszMzgsMzkgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpy
ZXN1bWVBbmltYXRpb25zKCkKIHsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyOjp1cGRhdGVEZWJ1
Z0luZGljYXRvcnMoKQordm9pZCBHcmFwaGljc0xheWVyOjpkZWJ1Z0JvcmRlckluZm8oQ29sb3Im
IGNvbG9yLCBmbG9hdCYgd2lkdGgpIGNvbnN0CiB7Ci0gICAgaWYgKEdyYXBoaWNzTGF5ZXI6OnNo
b3dEZWJ1Z0JvcmRlcnMoKSkgewotICAgICAgICBpZiAoZHJhd3NDb250ZW50KCkpIHsKLSAgICAg
ICAgICAgIGlmIChtX3VzaW5nVGlsZUNhY2hlKSAvLyB0aWxlIGNhY2hlIGxheWVyOiBkYXJrIGJs
dWUKLSAgICAgICAgICAgICAgICBzZXREZWJ1Z0JvcmRlcihDb2xvcigwLCAwLCAxMjgsIDEyOCks
IDAuNSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChtX3VzaW5nVGlsZWRMYXllcikKLSAgICAgICAg
ICAgICAgICBzZXREZWJ1Z0JvcmRlcihDb2xvcigyNTUsIDEyOCwgMCwgMTI4KSwgMik7IC8vIHRp
bGVkIGxheWVyOiBvcmFuZ2UKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzZXRE
ZWJ1Z0JvcmRlcihDb2xvcigwLCAxMjgsIDMyLCAxMjgpLCAyKTsgLy8gbm9ybWFsIGxheWVyOiBn
cmVlbgotICAgICAgICB9IGVsc2UgaWYgKG1hc2tzVG9Cb3VuZHMoKSkgewotICAgICAgICAgICAg
c2V0RGVidWdCb3JkZXIoQ29sb3IoMTI4LCAyNTUsIDI1NSwgNDgpLCAyMCk7IC8vIG1hc2tpbmcg
bGF5ZXI6IHBhbGUgYmx1ZQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHNldERlYnVnQm9y
ZGVyKENvbG9yKDI1NSwgMjU1LCAwLCAxOTIpLCAyKTsgLy8gY29udGFpbmVyOiB5ZWxsb3cKKyAg
ICBpZiAoZHJhd3NDb250ZW50KCkpIHsKKyAgICAgICAgaWYgKG1fdXNpbmdUaWxlZExheWVyKSB7
CisgICAgICAgICAgICBjb2xvciA9IENvbG9yKDI1NSwgMTI4LCAwLCAxMjgpOyAvLyB0aWxlZCBs
YXllcjogb3JhbmdlCisgICAgICAgICAgICB3aWR0aCA9IDI7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBjb2xvciA9IENvbG9yKDAsIDEyOCwgMzIsIDEyOCk7IC8v
IG5vcm1hbCBsYXllcjogZ3JlZW4KKyAgICAgICAgd2lkdGggPSAyOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIAorICAgIGlmIChtYXNrc1RvQm91bmRzKCkpIHsKKyAgICAgICAgY29sb3Ig
PSBDb2xvcigxMjgsIDI1NSwgMjU1LCA0OCk7IC8vIG1hc2tpbmcgbGF5ZXI6IHBhbGUgYmx1ZQor
ICAgICAgICB3aWR0aCA9IDIwOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgICAgICAKKyAg
ICBjb2xvciA9IENvbG9yKDI1NSwgMjU1LCAwLCAxOTIpOyAvLyBjb250YWluZXI6IHllbGxvdwor
ICAgIHdpZHRoID0gMjsKK30KKwordm9pZCBHcmFwaGljc0xheWVyOjp1cGRhdGVEZWJ1Z0luZGlj
YXRvcnMoKQoreworICAgIGlmICghR3JhcGhpY3NMYXllcjo6c2hvd0RlYnVnQm9yZGVycygpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBDb2xvciBib3JkZXJDb2xvcjsKKyAgICBmbG9hdCB3aWR0
aCA9IDA7CisgICAgZGVidWdCb3JkZXJJbmZvKGJvcmRlckNvbG9yLCB3aWR0aCk7CisgICAgc2V0
RGVidWdCb3JkZXIoYm9yZGVyQ29sb3IsIHdpZHRoKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVy
OjpzZXRaUG9zaXRpb24oZmxvYXQgcG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggMTViM2FhMjEzNzQ3Njg0Y2VjOWUy
ZTRhMDZhZTJjMmY2ZTNlM2MwOS4uZTY1YjY5YmUwZTk3ZjM1MDAzMjVjYzhhNGU4NmVmOTExNDU4
MTAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaApAQCAtNDM2LDYgKzQzNiw3IEBAIHByb3RlY3RlZDoKICAgICBHcmFwaGljc0xheWVy
KEdyYXBoaWNzTGF5ZXJDbGllbnQqKTsKIAogICAgIHZvaWQgZHVtcFByb3BlcnRpZXMoVGV4dFN0
cmVhbSYsIGludCBpbmRlbnQsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGVidWdCb3JkZXJJbmZvKENvbG9yJiwgZmxvYXQmIHdpZHRoKSBjb25zdDsK
IAogICAgIEdyYXBoaWNzTGF5ZXJDbGllbnQqIG1fY2xpZW50OwogICAgIFN0cmluZyBtX25hbWU7
CkBAIC00NzEsNyArNDcyLDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9hY2NlbGVyYXRlc0Ry
YXdpbmcgOiAxOwogICAgIGJvb2wgbV9tYWludGFpbnNQaXhlbEFsaWdubWVudCA6IDE7CiAgICAg
Ym9vbCBtX2FwcGxpZXNQYWdlU2NhbGUgOiAxOyAvLyBTZXQgZm9yIHRoZSBsYXllciB3aGljaCBo
YXMgdGhlIHBhZ2Ugc2NhbGUgYXBwbGllZCB0byBpdC4KLSAgICBib29sIG1fdXNpbmdUaWxlQ2Fj
aGUgOiAxOwogCiAgICAgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UgbV9wYWludGluZ1BoYXNl
OwogICAgIENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBtX2NvbnRlbnRzT3JpZW50
YXRpb247IC8vIGFmZmVjdHMgb3JpZW50YXRpb24gb2YgbGF5ZXIgY29udGVudHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQu
aAppbmRleCAzZDVkYmM4MmQ4NjY5MDQ3NDAzN2Y3YzVmYzM4ZjZkMDlmMDZlZWY0Li43ZWZlZTBl
NjVjNzllYjE1NjVkYWE4ZmZjYzQyMDIwNzlmM2YwMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBAIC01OCw3
ICs1OCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5HcmFwaGljc0xheWVyQ2xpZW50KCkge30K
IAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlQ2FjaGUoY29uc3QgR3JhcGhpY3NMYXll
ciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHVzaW5nVGlsZUNh
Y2hlKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIAog
ICAgIC8vIENhbGxiYWNrIGZvciB3aGVuIGhhcmR3YXJlLWFjY2VsZXJhdGVkIGFuaW1hdGlvbiBz
dGFydGVkLgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggMjQ5NTRh
NGI4ZGYyZmVjODA3YTJlNGYzNmZiMmVjYjNiYTZkNTA3Yi4uYWQ1Mjk4M2QyYWEwYTliNzFhNGE3
ODcyZjA5YWYyMTcwNTYwMTNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0yNzQsMTIgKzI3NCwxMyBA
QCBHcmFwaGljc0xheWVyQ0E6OkdyYXBoaWNzTGF5ZXJDQShHcmFwaGljc0xheWVyQ2xpZW50KiBj
bGllbnQpCiAgICAgLCBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlKE5vQ29udGVudHNMYXllcikKICAg
ICAsIG1fY29udGVudHNMYXllckhhc0JhY2tncm91bmRDb2xvcihmYWxzZSkKICAgICAsIG1fYWxs
b3dUaWxlZExheWVyKHRydWUpCisgICAgLCBtX2lzUGFnZVRpbGVDYWNoZUxheWVyKGZhbHNlKQog
ICAgICwgbV91bmNvbW1pdHRlZENoYW5nZXMoMCkKIHsKICAgICBQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZSBsYXllclR5cGUgPSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVdlYkxheWVyOwog
ICAgIGlmIChjbGllbnQgJiYgY2xpZW50LT5zaG91bGRVc2VUaWxlQ2FjaGUodGhpcykpIHsKICAg
ICAgICAgbGF5ZXJUeXBlID0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlQ2FjaGVMYXll
cjsKLSAgICAgICAgbV91c2luZ1RpbGVDYWNoZSA9IHRydWU7CisgICAgICAgIG1faXNQYWdlVGls
ZUNhY2hlTGF5ZXIgPSB0cnVlOwogICAgIH0KIAogICAgIG1fbGF5ZXIgPSBQbGF0Zm9ybUNBTGF5
ZXI6OmNyZWF0ZShsYXllclR5cGUsIHRoaXMpOwpAQCAtOTkyLDYgKzk5MywxNiBAQCB2b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6cmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyhjb25zdCBUcmFuc2Zvcm1TdGF0
ZSYgc3RhdGUsIGZsb2F0CiAgICAgICAgIGNsaWVudCgpLT5kaWRDb21taXRDaGFuZ2VzRm9yTGF5
ZXIodGhpcyk7CiB9CiAKK2Jvb2wgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJTaG93
UmVwYWludENvdW50ZXIoUGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9ybUxheWVyKSBjb25zdAorewor
ICAgIC8vIFRoZSByZXBhaW50IGNvdW50ZXJzIGFyZSBwYWludGVkIGludG8gdGhlIFRpbGVDYWNo
ZSB0aWxlcyAod2hpY2ggaGF2ZSBubyBjb3JyZXNwb25kaW5nIHBsYXRmb3JtIGxheWVyKSwKKyAg
ICAvLyBzbyB3ZSBkb24ndCB3YW50IHRvIG92ZXJwYWludCB0aGUgcmVwYWludCBjb3VudGVyIHdo
ZW4gY2FsbGVkIHdpdGggdGhlIFRpbGVDYWNoZSdzIG93biBsYXllci4KKyAgICBpZiAobV9pc1Bh
Z2VUaWxlQ2FjaGVMYXllciAmJiBwbGF0Zm9ybUxheWVyKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgCisgICAgcmV0dXJuIHNob3dSZXBhaW50Q291bnRlcigpOworfQorCiB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGNsaXApCiB7CiAgICAgcGFpbnRHcmFwaGljc0xheWVy
Q29udGVudHMoY29udGV4dCwgY2xpcCk7CkBAIC0xNDk3LDcgKzE1MDgsNyBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6dXBkYXRlQWNjZWxlcmF0ZXNEcmF3aW5nKCkKICAgICAKIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjp1cGRhdGVMYXllckJhY2tncm91bmRDb2xvcigpCiB7Ci0gICAgaWYgKG1fbGF5
ZXItPmxheWVyVHlwZSgpID09IFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlVGlsZUNhY2hlTGF5
ZXIpIHsKKyAgICBpZiAobV9pc1BhZ2VUaWxlQ2FjaGVMYXllcikgewogICAgICAgICBtX2xheWVy
LT5zZXRCYWNrZ3JvdW5kQ29sb3IobV9iYWNrZ3JvdW5kQ29sb3IpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMjM5MSw2ICsyNDAyLDE3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRE
ZWJ1Z0JhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiAgICAgICAgIG1fbGF5ZXIt
PnNldEJhY2tncm91bmRDb2xvcihDb2xvcjo6dHJhbnNwYXJlbnQpOwogfQogCit2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6ZGVidWdCb3JkZXJJbmZvKENvbG9yJiBjb2xvciwgZmxvYXQmIHdpZHRoKSBj
b25zdAoreworICAgIGlmIChtX2lzUGFnZVRpbGVDYWNoZUxheWVyKSB7CisgICAgICAgIGNvbG9y
ID0gQ29sb3IoMCwgMCwgMTI4LCAxMjgpOyAvLyB0aWxlIGNhY2hlIGxheWVyOiBkYXJrIGJsdWUK
KyAgICAgICAgd2lkdGggPSAwLjU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBHcmFw
aGljc0xheWVyOjpkZWJ1Z0JvcmRlckluZm8oY29sb3IsIHdpZHRoKTsKK30KKwogdm9pZCBHcmFw
aGljc0xheWVyQ0E6OnNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgYm9y
ZGVyV2lkdGgpCiB7ICAgIAogICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpIHsKQEAgLTI0MjgsNyAr
MjQ1MCw3IEBAIEZsb2F0U2l6ZSBHcmFwaGljc0xheWVyQ0E6OmNvbnN0cmFpbmVkU2l6ZSgpIGNv
bnN0CiAKIGJvb2wgR3JhcGhpY3NMYXllckNBOjpyZXF1aXJlc1RpbGVkTGF5ZXIoZmxvYXQgcGFn
ZVNjYWxlRmFjdG9yKSBjb25zdAogewotICAgIGlmICghbV9kcmF3c0NvbnRlbnQgfHwgIW1fYWxs
b3dUaWxlZExheWVyIHx8IG1fbGF5ZXItPmxheWVyVHlwZSgpID09IFBsYXRmb3JtQ0FMYXllcjo6
TGF5ZXJUeXBlVGlsZUNhY2hlTGF5ZXIpCisgICAgaWYgKCFtX2RyYXdzQ29udGVudCB8fCAhbV9h
bGxvd1RpbGVkTGF5ZXIgfHwgbV9pc1BhZ2VUaWxlQ2FjaGVMYXllcikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgLy8gRklYTUU6IGNhdGNoIHplcm8tc2l6ZSBoZWlnaHQgb3Igd2lkdGgg
aGVyZSAob3IgZWFybGllcik/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IGU2MzVhYmIyNzIxYmNiMWQ2Mzk4ODRi
YmVhM2Q1M2YzMDRkODEzMDguLmFhMmU1MDhmYTUwYmQxMTJjNTE1N2U0NGRlN2UzNWEzOGEzNzMx
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5oCkBAIC0xNTMsNyArMTUzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBwbGF0Zm9ybUNBTGF5ZXJDb250ZW50
c09yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gY29udGVudHNPcmllbnRhdGlvbigpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVudHMoR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgSW50UmVjdCYgY2xpcCk7CiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FM
YXllclNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBzaG93RGVidWdCb3JkZXJzKCk7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKCkg
Y29uc3QgeyByZXR1cm4gc2hvd1JlcGFpbnRDb3VudGVyKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
cGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKFBsYXRmb3JtQ0FMYXllciopIGNvbnN0
OwogICAgIHZpcnR1YWwgaW50IHBsYXRmb3JtQ0FMYXllckluY3JlbWVudFJlcGFpbnRDb3VudCgp
IHsgcmV0dXJuIGluY3JlbWVudFJlcGFpbnRDb3VudCgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wg
cGxhdGZvcm1DQUxheWVyQ29udGVudHNPcGFxdWUoKSBjb25zdCB7IHJldHVybiBjb250ZW50c09w
YXF1ZSgpOyB9CkBAIC0yMjgsNiArMjI4LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXRSZXBsaWNhdGVkQnlMYXllcihHcmFwaGljc0xheWVyKik7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgZGVidWdCb3JkZXJJbmZvKENvbG9yJiwgZmxvYXQmIHdpZHRoKSBjb25zdDsKKwogICAgIHZv
aWQgY29tcHV0ZVBpeGVsQWxpZ25tZW50KGZsb2F0IHBpeGVsQWxpZ25tZW50U2NhbGUsIGNvbnN0
IEZsb2F0UG9pbnQmIHBvc2l0aW9uUmVsYXRpdmVUb0Jhc2UsCiAgICAgICAgIEZsb2F0UG9pbnQm
IHBvc2l0aW9uLCBGbG9hdFNpemUmLCBGbG9hdFBvaW50M0QmIGFuY2hvclBvaW50LCBGbG9hdFNp
emUmIGFsaWdubWVudE9mZnNldCkgY29uc3Q7CiAKQEAgLTQwMyw2ICs0MDUsNyBAQCBwcml2YXRl
OgogICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVudHNMYXllclB1cnBvc2U7CiAgICAg
Ym9vbCBtX2NvbnRlbnRzTGF5ZXJIYXNCYWNrZ3JvdW5kQ29sb3IgOiAxOwogICAgIGJvb2wgbV9h
bGxvd1RpbGVkTGF5ZXIgOiAxOworICAgIGJvb2wgbV9pc1BhZ2VUaWxlQ2FjaGVMYXllciA6IDE7
CiAKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gbV91bmNvcnJlY3RlZENvbnRlbnRzSW1hZ2U7
CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fcGVuZGluZ0NvbnRlbnRzSW1hZ2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FMYXllckNsaWVudC5oCmluZGV4IDMxNjYwNjE3M2Q0NDExOWQ2YWRjNDUzOTA1OTg0OGNmODQ4
ZDk4MzAuLjE4NWQ2MzU4Yzg1NTM5ZjI1MDY2NzRkYzU2NGIzMGU1NGU3MjQwZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FMYXllckNsaWVudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdy
YXBoaWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBwbGF0Zm9ybUNB
TGF5ZXJDb250ZW50c09yaWVudGF0aW9uKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJl
Y3QmIGluQ2xpcCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJTaG93RGVi
dWdCb3JkZXJzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJT
aG93UmVwYWludENvdW50ZXIoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIHBsYXRmb3Jt
Q0FMYXllclNob3dSZXBhaW50Q291bnRlcihQbGF0Zm9ybUNBTGF5ZXIqKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBpbnQgcGxhdGZvcm1DQUxheWVySW5jcmVtZW50UmVwYWludENvdW50KCkgPSAw
OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c09wYXF1ZSgp
IGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9UaWxlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvVGlsZUNhY2hlLm1tCmluZGV4IDExNjQxZDEzNTIzNjcwMGYzNGVjNjU1MTNiMGM5NDFh
OWYwOTI3NjIuLjc3ZmZjMjUwOTEwYjcxZjIyNzI1MDdhNzg5ZTVkZDA0ODFhMGM0MjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNo
ZS5tbQpAQCAtNDgwLDcgKzQ4MCw3IEBAIGJvb2wgVGlsZUNhY2hlOjpzaG91bGRTaG93UmVwYWlu
dENvdW50ZXJzKCkgY29uc3QKICAgICBpZiAoIWxheWVyQ29udGVudHMpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIHJldHVybiBsYXllckNvbnRlbnRzLT5wbGF0Zm9ybUNBTGF5ZXJTaG93
UmVwYWludENvdW50ZXIoKTsKKyAgICByZXR1cm4gbGF5ZXJDb250ZW50cy0+cGxhdGZvcm1DQUxh
eWVyU2hvd1JlcGFpbnRDb3VudGVyKDApOwogfQogCiB2b2lkIFRpbGVDYWNoZTo6ZHJhd1JlcGFp
bnRDb3VudGVyKFdlYlRpbGVMYXllciAqbGF5ZXIsIENHQ29udGV4dFJlZiBjb250ZXh0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tCmluZGV4
IGQ3ODNlNDk0YTllMzIxODAyZWM5N2ViNjNmZDBkYzBjZDA1MWViYTUuLjU1NTBkYjJhNmY5ODE0
NTNlMzg5MGNjMmJkOTE0NDRkNWU5M2M3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9XZWJMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW0KQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIGRy
YXdMYXllckNvbnRlbnRzKENHQ29udGV4dFJlZiBjb250ZXh0LCBDQUxheWVyICpsYXllciwgV2Vi
Q29yZTo6UGxhdGZvcm1DQQogICAgIC8vIFJlLWZldGNoIHRoZSBsYXllciBvd25lciwgc2luY2Ug
PHJkYXI6Ly9wcm9ibGVtLzkxMjUxNTE+IGluZGljYXRlcyB0aGF0IGl0IG1pZ2h0IGhhdmUgYmVl
biBkZXN0cm95ZWQgZHVyaW5nIHBhaW50aW5nLgogICAgIGxheWVyQ29udGVudHMgPSBwbGF0Zm9y
bUxheWVyLT5vd25lcigpOwogICAgIEFTU0VSVChsYXllckNvbnRlbnRzKTsKLSAgICBpZiAocGxh
dGZvcm1MYXllci0+bGF5ZXJUeXBlKCkgIT0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxl
Q2FjaGVMYXllciAmJiBsYXllckNvbnRlbnRzICYmIGxheWVyQ29udGVudHMtPnBsYXRmb3JtQ0FM
YXllclNob3dSZXBhaW50Q291bnRlcigpKSB7CisgICAgaWYgKGxheWVyQ29udGVudHMgJiYgbGF5
ZXJDb250ZW50cy0+cGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKHBsYXRmb3JtTGF5
ZXIpKSB7CiAgICAgICAgIGJvb2wgaXNUaWxlZExheWVyID0gW2xheWVyIGlzS2luZE9mQ2xhc3M6
W0NBVGlsZWRMYXllciBjbGFzc11dOwogCiAgICAgICAgIGNoYXIgdGV4dFsxNl07IC8vIHRoYXQn
cyBhIGxvdCBvZiByZXBhaW50cwpAQCAtMTc4LDcgKzE3OCw3IEBAIHZvaWQgZHJhd0xheWVyQ29u
dGVudHMoQ0dDb250ZXh0UmVmIGNvbnRleHQsIENBTGF5ZXIgKmxheWVyLCBXZWJDb3JlOjpQbGF0
Zm9ybUNBCiAKICAgICAgICAgICAgIFtzdXBlciBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6ZGlydHlS
ZWN0XTsKIAotICAgICAgICAgICAgaWYgKGxheWVyT3duZXItPnBsYXRmb3JtQ0FMYXllclNob3dS
ZXBhaW50Q291bnRlcigpKSB7CisgICAgICAgICAgICBpZiAobGF5ZXJPd25lci0+cGxhdGZvcm1D
QUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKHBsYXRmb3JtTGF5ZXIpKSB7CiAgICAgICAgICAgICAg
ICAgQ0dSZWN0IGJvdW5kcyA9IFtzZWxmIGJvdW5kc107CiAgICAgICAgICAgICAgICAgQ0dSZWN0
IGluZGljYXRvclJlY3QgPSBDR1JlY3RNYWtlKGJvdW5kcy5vcmlnaW4ueCwgYm91bmRzLm9yaWdp
bi55LCA1MiwgMjcpOwogICAgICAgICAgICAgICAgIGlmIChsYXllck93bmVyLT5wbGF0Zm9ybUNB
TGF5ZXJDb250ZW50c09yaWVudGF0aW9uKCkgPT0gV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Q29t
cG9zaXRpbmdDb29yZGluYXRlc0JvdHRvbVVwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYlRpbGVkTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViVGlsZWRMYXllci5tbQppbmRleCA5NzM2ZTc0ZGMwYWU4
ZjAyODU5ZGU2ODgzMjIyMGE4NDY5YWMwZjk1Li42NWZhN2QyZWUxMGNmZmNkMThhYWNlMmEzN2Zi
MmJiN2FjYjVmNWVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvV2ViVGlsZWRMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvV2ViVGlsZWRMYXllci5tbQpAQCAtODQsNyArODQsNyBAQCB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAogICAgICAgICAgICAgW3N1cGVyIHNldE5lZWRzRGlzcGxheUluUmVjdDpk
aXJ0eVJlY3RdOwogCi0gICAgICAgICAgICBpZiAobGF5ZXJPd25lci0+cGxhdGZvcm1DQUxheWVy
U2hvd1JlcGFpbnRDb3VudGVyKCkpIHsKKyAgICAgICAgICAgIGlmIChsYXllck93bmVyLT5wbGF0
Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIocGxhdGZvcm1MYXllcikpIHsKICAgICAgICAg
ICAgICAgICBDR1JlY3QgYm91bmRzID0gW3NlbGYgYm91bmRzXTsKICAgICAgICAgICAgICAgICBD
R1JlY3QgaW5kaWNhdG9yUmVjdCA9IENHUmVjdE1ha2UoYm91bmRzLm9yaWdpbi54LCBib3VuZHMu
b3JpZ2luLnksIDUyLCAyNyk7CiAgICAgICAgICAgICAgICAgaWYgKGxheWVyT3duZXItPnBsYXRm
b3JtQ0FMYXllckNvbnRlbnRzT3JpZW50YXRpb24oKSA9PSBXZWJDb3JlOjpHcmFwaGljc0xheWVy
OjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzQm90dG9tVXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKaW5kZXggM2QyMjQ3YWY4N2NjNWNhY2I5ZDVhMDVk
ZjA3MGUzODU0ODEwYmY3Mi4uOGMyODMwMWE3NzcyZTc4YTAyNGUzYmI3NDBlNDhmNWYxMzEyZTAx
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaApA
QCAtMTMzLDkgKzEzMywxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVBZnRlcldpZGdldFJl
c2l6ZSgpOwogICAgIHZvaWQgcG9zaXRpb25PdmVyZmxvd0NvbnRyb2xzTGF5ZXJzKGNvbnN0IElu
dFNpemUmIG9mZnNldEZyb21Sb290KTsKIAorICAgIGJvb2wgdXNpbmdUaWxlQ2FjaGUoKSBjb25z
dCB7IHJldHVybiBtX3VzaW5nVGlsZWRDYWNoZUxheWVyOyB9CisKICAgICAvLyBHcmFwaGljc0xh
eWVyQ2xpZW50IGludGVyZmFjZQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlQ2FjaGUo
Y29uc3QgR3JhcGhpY3NMYXllciopIGNvbnN0OwotICAgIHZpcnR1YWwgYm9vbCB1c2luZ1RpbGVD
YWNoZShjb25zdCBHcmFwaGljc0xheWVyKikgY29uc3QgeyByZXR1cm4gbV91c2luZ1RpbGVkQ2Fj
aGVMYXllcjsgfQogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0
IEdyYXBoaWNzTGF5ZXIqLCBkb3VibGUgc3RhcnRUaW1lKTsKICAgICB2aXJ0dWFsIHZvaWQgbm90
aWZ5Rmx1c2hSZXF1aXJlZChjb25zdCBHcmFwaGljc0xheWVyKik7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggOGRiZTEy
OWExMTkyYTFhMzBjNzAxMDlmOWRiZGI5ODI2NGU0MzBlNS4uMjA0YjBkMGJkYWE2M2E2ZjdkZWVk
NTE2MTg1OWFmMjY3NWQwNzcwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTE5MzUsMTMgKzE5MzUsMTAgQEAgdm9pZCBS
ZW5kZXJMYXllckNvbXBvc2l0b3I6OnBhaW50Q29udGVudHMoY29uc3QgR3JhcGhpY3NMYXllciog
Z3JhcGhpY3NMYXllciwgR3IKIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkb2N1bWVudEJh
Y2tncm91bmRDb2xvckRpZENoYW5nZSgpCiB7CiAgICAgUmVuZGVyTGF5ZXJCYWNraW5nKiBiYWNr
aW5nID0gcm9vdFJlbmRlckxheWVyKCktPmJhY2tpbmcoKTsKLSAgICBpZiAoIWJhY2tpbmcpCisg
ICAgaWYgKCFiYWNraW5nIHx8ICFiYWNraW5nLT51c2luZ1RpbGVDYWNoZSgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBHcmFwaGljc0xheWVyKiBncmFwaGljc0xheWVyID0gYmFja2luZy0+Z3Jh
cGhpY3NMYXllcigpOwotICAgIGlmICghZ3JhcGhpY3NMYXllci0+Y2xpZW50KCktPnVzaW5nVGls
ZUNhY2hlKGdyYXBoaWNzTGF5ZXIpKQotICAgICAgICByZXR1cm47Ci0KICAgICBDb2xvciBiYWNr
Z3JvdW5kQ29sb3IgPSBtX3JlbmRlclZpZXctPmZyYW1lVmlldygpLT5kb2N1bWVudEJhY2tncm91
bmRDb2xvcigpOwogICAgIGlmICghYmFja2dyb3VuZENvbG9yLmlzVmFsaWQoKSB8fCBiYWNrZ3Jv
dW5kQ29sb3IuaGFzQWxwaGEoKSkKICAgICAgICAgYmFja2dyb3VuZENvbG9yID0gQ29sb3I6Ondo
aXRlOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167429</attachid>
            <date>2012-10-05 17:55:18 -0700</date>
            <delta_ts>2012-10-08 10:47:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98574-20121005175429.patch</filename>
            <type>text/plain</type>
            <size>21357</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNTU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzJlZDAzZGRkZjMyMDQw
MjhiYjgzNjQxNTY2MDc0ZTMxZmEyZGUwZi4uZTc0N2I2MTA2ODUyNmFkNjhhZTI2MDAwNmU2ZGYw
ODVjMTAxOTAyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDU2IEBACiAyMDEyLTEwLTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCisgICAgICAgIFNvbWUgR3JhcGhp
Y3NMYXllciBjbGVhbnVwIHRvIHNlcGFyYXRlIHRoZSBjb25jZXB0cyBvZiB1c2luZyBhIHRpbGUg
Y2FjaGUsIGFuZCBiZWluZyB0aGUgbWFpbiB0aWxlIGNhY2hlIGxheWVyCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05ODU3NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEdyYXBoaWNzTGF5ZXJDQSBhc3N1bWVk
IHRoYXQgdXNpbmcgYSBUaWxlQ2FjaGUgZXF1YXRlZCB0byBiZWluZyB0aGUgbWFpbiBwYWdlIHRp
bGUKKyAgICAgICAgY2FjaGUgbGF5ZXIsIHdoaWNoIGhhcyBzb21lIHNwZWNpYWwgY29uc2lkZXJh
dGlvbnMuIE1ha2UgdGhlc2UgdHdvIGNvbmNlcHRzIHNlcGFyYXRlCisgICAgICAgIHRvIGdldCBj
bG9zZXIgdG8gYmVpbmcgYWJsZSB0byB1c2UgVGlsZUNhY2hlcyBpbiBwbGFjZSBvZiBDQVRpbGVk
TGF5ZXIuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmg6Cisg
ICAgICAgIChHcmFwaGljc0xheWVyKTogUmVtb3ZlIG1fdXNpbmdUaWxlQ2FjaGUgbWVtYmVyLCB3
aGljaCB3YXMgbm90IGFwcHJvcHJpYXRlCisgICAgICAgIGZvciB0aGlzIGNsYXNzIHRvIGhhdmUu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpHcmFwaGljc0xheWVyKTogUmVtb3ZlIGluaXQgb2Yg
bV91c2luZ1RpbGVDYWNoZS4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OmRlYnVn
Qm9yZGVySW5mbyk6IENhbiBubyBsb25nZXIgdXNlIG1fdXNpbmdUaWxlQ2FjaGUgdG8KKyAgICAg
ICAgZ2V0IHRoZSBibHVlIGNvbG9yLCBzbyBtb3ZlZCBjb2RlIGludG8gYSB2aXJ0dWFsIGRlYnVn
Qm9yZGVySW5mbygpIG1ldGhvZC4KKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI6OnVw
ZGF0ZURlYnVnSW5kaWNhdG9ycyk6IENhbGwgdGhlIHZpcnR1YWwgZGVidWdCb3JkZXJJbmZvKCku
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oOiBSZW1v
dmUgdGhlIHVzaW5nVGlsZUNhY2hlKCkgY2FsbGJhY2s7CisgICAgICAgIHdlIG5vdyBqdXN0IGNh
Y2hlIHRoaXMgaW5mb3JtYXRpb24gaW4gdGhlIEdyYXBoaWNzTGF5ZXJDQSBvbiBjcmVhdGlvbi4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpHcmFwaGljc0xheWVyQ0EpOiBJbml0IG1f
aXNQYWdlVGlsZUNhY2hlTGF5ZXIgdG8gZmFsc2UsCisgICAgICAgIHRoZW4gc2V0IHRvIG1faXNQ
YWdlVGlsZUNhY2hlTGF5ZXIgaWYgdGhlIGNsaWVudCBzYXlzIHdlIHNob3VsZCBjcmVhdGUgYSB0
aWxlIGNhY2hlLgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNB
TGF5ZXJTaG93UmVwYWludENvdW50ZXIpOiBPdmVyaWRkZW4gdG8gYXZvaWQgZHVwbGljYXRlIHJl
cGFpbnQKKyAgICAgICAgY291bnRlcnMgaW4gdGhlIHRvcC1sZWZ0IHRpbGUuCisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnVwZGF0ZUxheWVyQmFja2dyb3VuZENvbG9yKTogSWYg
dGhpcyBsYXllciBpcyB0aGUgcGFnZSB0aWxlIGNhY2hlIGxheWVyLAorICAgICAgICB3ZSBhbGxv
dyBzZXR0aW5nIG9mIGl0cyBiYWNrZ3JvdW5kIGNvbG9yLgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NMYXllckNBOjpkZWJ1Z0JvcmRlckluZm8pOiBPdmVyaWRkZW4gdG8gdXNlIGEgYmx1ZSBj
b2xvciBmb3IgdGlsZXMuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyQ0E6OnJlcXVp
cmVzVGlsZWRMYXllcik6IERvbid0IG1ha2UgQ0FUaWxlZExheWVycyBmb3IgdGhlIHBhZ2UgdGls
ZSBjYWNoZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0Eu
aDoKKyAgICAgICAgKEdyYXBoaWNzTGF5ZXJDQSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY2EvUGxhdGZvcm1DQUxheWVyQ2xpZW50Lmg6CisgICAgICAgIChQbGF0Zm9ybUNBTGF5ZXJD
bGllbnQpOiBOZWVkIHRvIHBhc3MgdGhlIHBsYXRmb3JtIGxheWVyIGludG8gcGxhdGZvcm1DQUxh
eWVyU2hvd1JlcGFpbnRDb3VudGVyKCkKKyAgICAgICAgc28gd2UgY2FuIGRpc3Rpbmd1aXNoIGJl
dHdlZW4gY2FsbHMgZm9yIHRpbGVzLCBhbmQgY2FsbHMgZm9yIHRoZSB0aWxlIGNhY2hlIGxheWVy
IGl0c2VsZi4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYS9tYWMvVGlsZUNhY2hlLm1t
OgorICAgICAgICAoV2ViQ29yZTo6VGlsZUNhY2hlOjpzaG91bGRTaG93UmVwYWludENvdW50ZXJz
KTogUGFzcyAwIHRvIHBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRlcigpIHRvCisgICAg
ICAgIGluZGljYXRlIHRoYXQgd2UncmUgYXNraW5nIGFib3V0IGEgdGlsZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViTGF5ZXIubW06CisgICAgICAgIChkcmF3TGF5ZXJDb250
ZW50cyk6IE5vdyB3ZSBjYW4ganVzdCByZWx5IG9uIHBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50
Q291bnRlcigpIHRvIHRlbGwgdXMgd2hldGhlcgorICAgICAgICB0byBkcmF3IHRoZSByZXBhaW50
IGNvdW50ZXIuCisgICAgICAgICgtW1dlYkxheWVyIHNldE5lZWRzRGlzcGxheUluUmVjdDpdKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViVGlsZWRMYXllci5tbToKKyAgICAg
ICAgKC1bV2ViVGlsZWRMYXllciBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6XSk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5oOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
TGF5ZXJCYWNraW5nOjp1c2luZ1RpbGVDYWNoZSk6CisgICAgICAgIChSZW5kZXJMYXllckJhY2tp
bmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpkb2N1bWVudEJhY2tncm91bmRD
b2xvckRpZENoYW5nZSk6IFdlIGNhbiBhc2sgdGhlIFJlbmRlckxheWVyQmFja2luZworICAgICAg
ICB3aGV0aGVyIGl0J3MgZm9yIHRoZSB0aWxlIGNhY2hlLCByYXRoZXIgdGhhbiBnb2luZyB0byB0
aGUgR3JhcGhpY3NMYXllci4KKworMjAxMi0xMC0wNSAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJh
c2VyQGFwcGxlLmNvbT4KKwogICAgICAgICBEb24ndCBhc3N1bWUgdGhhdCBUaWxlQ2FjaGUgbGF5
ZXJzIGFyZSBvcGFxdWUKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk4NTU1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0dyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R3JhcGhpY3NMYXllci5jcHAKaW5kZXggZTM2MGM5MTA1ZDRlZTI0YzZiM2VmNGM5MTFmZDAyMzQw
NTRjZTE0MC4uYzUyM2ZlMjUxN2U2ZGFlYWRiYTAwMzI2NzQ0NzA5NmYwMDA0ZTAyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllci5jcHAK
QEAgLTgwLDcgKzgwLDYgQEAgR3JhcGhpY3NMYXllcjo6R3JhcGhpY3NMYXllcihHcmFwaGljc0xh
eWVyQ2xpZW50KiBjbGllbnQpCiAgICAgLCBtX2FjY2VsZXJhdGVzRHJhd2luZyhmYWxzZSkKICAg
ICAsIG1fbWFpbnRhaW5zUGl4ZWxBbGlnbm1lbnQoZmFsc2UpCiAgICAgLCBtX2FwcGxpZXNQYWdl
U2NhbGUoZmFsc2UpCi0gICAgLCBtX3VzaW5nVGlsZUNhY2hlKGZhbHNlKQogICAgICwgbV9wYWlu
dGluZ1BoYXNlKEdyYXBoaWNzTGF5ZXJQYWludEFsbFdpdGhPdmVyZmxvd0NsaXApCiAgICAgLCBt
X2NvbnRlbnRzT3JpZW50YXRpb24oQ29tcG9zaXRpbmdDb29yZGluYXRlc1RvcERvd24pCiAgICAg
LCBtX3BhcmVudCgwKQpAQCAtMzM5LDIxICszMzgsMzkgQEAgdm9pZCBHcmFwaGljc0xheWVyOjpy
ZXN1bWVBbmltYXRpb25zKCkKIHsKIH0KIAotdm9pZCBHcmFwaGljc0xheWVyOjp1cGRhdGVEZWJ1
Z0luZGljYXRvcnMoKQordm9pZCBHcmFwaGljc0xheWVyOjpkZWJ1Z0JvcmRlckluZm8oQ29sb3Im
IGNvbG9yLCBmbG9hdCYgd2lkdGgpIGNvbnN0CiB7Ci0gICAgaWYgKEdyYXBoaWNzTGF5ZXI6OnNo
b3dEZWJ1Z0JvcmRlcnMoKSkgewotICAgICAgICBpZiAoZHJhd3NDb250ZW50KCkpIHsKLSAgICAg
ICAgICAgIGlmIChtX3VzaW5nVGlsZUNhY2hlKSAvLyB0aWxlIGNhY2hlIGxheWVyOiBkYXJrIGJs
dWUKLSAgICAgICAgICAgICAgICBzZXREZWJ1Z0JvcmRlcihDb2xvcigwLCAwLCAxMjgsIDEyOCks
IDAuNSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChtX3VzaW5nVGlsZWRMYXllcikKLSAgICAgICAg
ICAgICAgICBzZXREZWJ1Z0JvcmRlcihDb2xvcigyNTUsIDEyOCwgMCwgMTI4KSwgMik7IC8vIHRp
bGVkIGxheWVyOiBvcmFuZ2UKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBzZXRE
ZWJ1Z0JvcmRlcihDb2xvcigwLCAxMjgsIDMyLCAxMjgpLCAyKTsgLy8gbm9ybWFsIGxheWVyOiBn
cmVlbgotICAgICAgICB9IGVsc2UgaWYgKG1hc2tzVG9Cb3VuZHMoKSkgewotICAgICAgICAgICAg
c2V0RGVidWdCb3JkZXIoQ29sb3IoMTI4LCAyNTUsIDI1NSwgNDgpLCAyMCk7IC8vIG1hc2tpbmcg
bGF5ZXI6IHBhbGUgYmx1ZQotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHNldERlYnVnQm9y
ZGVyKENvbG9yKDI1NSwgMjU1LCAwLCAxOTIpLCAyKTsgLy8gY29udGFpbmVyOiB5ZWxsb3cKKyAg
ICBpZiAoZHJhd3NDb250ZW50KCkpIHsKKyAgICAgICAgaWYgKG1fdXNpbmdUaWxlZExheWVyKSB7
CisgICAgICAgICAgICBjb2xvciA9IENvbG9yKDI1NSwgMTI4LCAwLCAxMjgpOyAvLyB0aWxlZCBs
YXllcjogb3JhbmdlCisgICAgICAgICAgICB3aWR0aCA9IDI7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBjb2xvciA9IENvbG9yKDAsIDEyOCwgMzIsIDEyOCk7IC8v
IG5vcm1hbCBsYXllcjogZ3JlZW4KKyAgICAgICAgd2lkdGggPSAyOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIAorICAgIGlmIChtYXNrc1RvQm91bmRzKCkpIHsKKyAgICAgICAgY29sb3Ig
PSBDb2xvcigxMjgsIDI1NSwgMjU1LCA0OCk7IC8vIG1hc2tpbmcgbGF5ZXI6IHBhbGUgYmx1ZQor
ICAgICAgICB3aWR0aCA9IDIwOworICAgICAgICByZXR1cm47CiAgICAgfQorICAgICAgICAKKyAg
ICBjb2xvciA9IENvbG9yKDI1NSwgMjU1LCAwLCAxOTIpOyAvLyBjb250YWluZXI6IHllbGxvdwor
ICAgIHdpZHRoID0gMjsKK30KKwordm9pZCBHcmFwaGljc0xheWVyOjp1cGRhdGVEZWJ1Z0luZGlj
YXRvcnMoKQoreworICAgIGlmICghR3JhcGhpY3NMYXllcjo6c2hvd0RlYnVnQm9yZGVycygpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBDb2xvciBib3JkZXJDb2xvcjsKKyAgICBmbG9hdCB3aWR0
aCA9IDA7CisgICAgZGVidWdCb3JkZXJJbmZvKGJvcmRlckNvbG9yLCB3aWR0aCk7CisgICAgc2V0
RGVidWdCb3JkZXIoYm9yZGVyQ29sb3IsIHdpZHRoKTsKIH0KIAogdm9pZCBHcmFwaGljc0xheWVy
OjpzZXRaUG9zaXRpb24oZmxvYXQgcG9zaXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyLmgKaW5kZXggMTViM2FhMjEzNzQ3Njg0Y2VjOWUy
ZTRhMDZhZTJjMmY2ZTNlM2MwOS4uZTY1YjY5YmUwZTk3ZjM1MDAzMjVjYzhhNGU4NmVmOTExNDU4
MTAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhp
Y3NMYXllci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNz
TGF5ZXIuaApAQCAtNDM2LDYgKzQzNiw3IEBAIHByb3RlY3RlZDoKICAgICBHcmFwaGljc0xheWVy
KEdyYXBoaWNzTGF5ZXJDbGllbnQqKTsKIAogICAgIHZvaWQgZHVtcFByb3BlcnRpZXMoVGV4dFN0
cmVhbSYsIGludCBpbmRlbnQsIExheWVyVHJlZUFzVGV4dEJlaGF2aW9yKSBjb25zdDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGVidWdCb3JkZXJJbmZvKENvbG9yJiwgZmxvYXQmIHdpZHRoKSBjb25zdDsK
IAogICAgIEdyYXBoaWNzTGF5ZXJDbGllbnQqIG1fY2xpZW50OwogICAgIFN0cmluZyBtX25hbWU7
CkBAIC00NzEsNyArNDcyLDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9hY2NlbGVyYXRlc0Ry
YXdpbmcgOiAxOwogICAgIGJvb2wgbV9tYWludGFpbnNQaXhlbEFsaWdubWVudCA6IDE7CiAgICAg
Ym9vbCBtX2FwcGxpZXNQYWdlU2NhbGUgOiAxOyAvLyBTZXQgZm9yIHRoZSBsYXllciB3aGljaCBo
YXMgdGhlIHBhZ2Ugc2NhbGUgYXBwbGllZCB0byBpdC4KLSAgICBib29sIG1fdXNpbmdUaWxlQ2Fj
aGUgOiAxOwogCiAgICAgR3JhcGhpY3NMYXllclBhaW50aW5nUGhhc2UgbV9wYWludGluZ1BoYXNl
OwogICAgIENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBtX2NvbnRlbnRzT3JpZW50
YXRpb247IC8vIGFmZmVjdHMgb3JpZW50YXRpb24gb2YgbGF5ZXIgY29udGVudHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzTGF5ZXJDbGllbnQu
aAppbmRleCAzZDVkYmM4MmQ4NjY5MDQ3NDAzN2Y3YzVmYzM4ZjZkMDlmMDZlZWY0Li43ZWZlZTBl
NjVjNzllYjE1NjVkYWE4ZmZjYzQyMDIwNzlmM2YwMmYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0xheWVyQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NMYXllckNsaWVudC5oCkBAIC01OCw3
ICs1OCw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5HcmFwaGljc0xheWVyQ2xpZW50KCkge30K
IAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRVc2VUaWxlQ2FjaGUoY29uc3QgR3JhcGhpY3NMYXll
ciopIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCBib29sIHVzaW5nVGlsZUNh
Y2hlKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIAog
ICAgIC8vIENhbGxiYWNrIGZvciB3aGVuIGhhcmR3YXJlLWFjY2VsZXJhdGVkIGFuaW1hdGlvbiBz
dGFydGVkLgogICAgIHZpcnR1YWwgdm9pZCBub3RpZnlBbmltYXRpb25TdGFydGVkKGNvbnN0IEdy
YXBoaWNzTGF5ZXIqLCBkb3VibGUgdGltZSkgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5jcHAKaW5kZXggMjQ5NTRh
NGI4ZGYyZmVjODA3YTJlNGYzNmZiMmVjYjNiYTZkNTA3Yi4uYWQ1Mjk4M2QyYWEwYTliNzFhNGE3
ODcyZjA5YWYyMTcwNTYwMTNhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2EvR3JhcGhpY3NMYXllckNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuY3BwCkBAIC0yNzQsMTIgKzI3NCwxMyBA
QCBHcmFwaGljc0xheWVyQ0E6OkdyYXBoaWNzTGF5ZXJDQShHcmFwaGljc0xheWVyQ2xpZW50KiBj
bGllbnQpCiAgICAgLCBtX2NvbnRlbnRzTGF5ZXJQdXJwb3NlKE5vQ29udGVudHNMYXllcikKICAg
ICAsIG1fY29udGVudHNMYXllckhhc0JhY2tncm91bmRDb2xvcihmYWxzZSkKICAgICAsIG1fYWxs
b3dUaWxlZExheWVyKHRydWUpCisgICAgLCBtX2lzUGFnZVRpbGVDYWNoZUxheWVyKGZhbHNlKQog
ICAgICwgbV91bmNvbW1pdHRlZENoYW5nZXMoMCkKIHsKICAgICBQbGF0Zm9ybUNBTGF5ZXI6Okxh
eWVyVHlwZSBsYXllclR5cGUgPSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVdlYkxheWVyOwog
ICAgIGlmIChjbGllbnQgJiYgY2xpZW50LT5zaG91bGRVc2VUaWxlQ2FjaGUodGhpcykpIHsKICAg
ICAgICAgbGF5ZXJUeXBlID0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlQ2FjaGVMYXll
cjsKLSAgICAgICAgbV91c2luZ1RpbGVDYWNoZSA9IHRydWU7CisgICAgICAgIG1faXNQYWdlVGls
ZUNhY2hlTGF5ZXIgPSB0cnVlOwogICAgIH0KIAogICAgIG1fbGF5ZXIgPSBQbGF0Zm9ybUNBTGF5
ZXI6OmNyZWF0ZShsYXllclR5cGUsIHRoaXMpOwpAQCAtOTkyLDYgKzk5MywxNiBAQCB2b2lkIEdy
YXBoaWNzTGF5ZXJDQTo6cmVjdXJzaXZlQ29tbWl0Q2hhbmdlcyhjb25zdCBUcmFuc2Zvcm1TdGF0
ZSYgc3RhdGUsIGZsb2F0CiAgICAgICAgIGNsaWVudCgpLT5kaWRDb21taXRDaGFuZ2VzRm9yTGF5
ZXIodGhpcyk7CiB9CiAKK2Jvb2wgR3JhcGhpY3NMYXllckNBOjpwbGF0Zm9ybUNBTGF5ZXJTaG93
UmVwYWludENvdW50ZXIoUGxhdGZvcm1DQUxheWVyKiBwbGF0Zm9ybUxheWVyKSBjb25zdAorewor
ICAgIC8vIFRoZSByZXBhaW50IGNvdW50ZXJzIGFyZSBwYWludGVkIGludG8gdGhlIFRpbGVDYWNo
ZSB0aWxlcyAod2hpY2ggaGF2ZSBubyBjb3JyZXNwb25kaW5nIHBsYXRmb3JtIGxheWVyKSwKKyAg
ICAvLyBzbyB3ZSBkb24ndCB3YW50IHRvIG92ZXJwYWludCB0aGUgcmVwYWludCBjb3VudGVyIHdo
ZW4gY2FsbGVkIHdpdGggdGhlIFRpbGVDYWNoZSdzIG93biBsYXllci4KKyAgICBpZiAobV9pc1Bh
Z2VUaWxlQ2FjaGVMYXllciAmJiBwbGF0Zm9ybUxheWVyKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgCisgICAgcmV0dXJuIHNob3dSZXBhaW50Q291bnRlcigpOworfQorCiB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6cGxhdGZvcm1DQUxheWVyUGFpbnRDb250ZW50cyhHcmFwaGljc0NvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEludFJlY3QmIGNsaXApCiB7CiAgICAgcGFpbnRHcmFwaGljc0xheWVy
Q29udGVudHMoY29udGV4dCwgY2xpcCk7CkBAIC0xNDk3LDcgKzE1MDgsNyBAQCB2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6dXBkYXRlQWNjZWxlcmF0ZXNEcmF3aW5nKCkKICAgICAKIHZvaWQgR3JhcGhp
Y3NMYXllckNBOjp1cGRhdGVMYXllckJhY2tncm91bmRDb2xvcigpCiB7Ci0gICAgaWYgKG1fbGF5
ZXItPmxheWVyVHlwZSgpID09IFBsYXRmb3JtQ0FMYXllcjo6TGF5ZXJUeXBlVGlsZUNhY2hlTGF5
ZXIpIHsKKyAgICBpZiAobV9pc1BhZ2VUaWxlQ2FjaGVMYXllcikgewogICAgICAgICBtX2xheWVy
LT5zZXRCYWNrZ3JvdW5kQ29sb3IobV9iYWNrZ3JvdW5kQ29sb3IpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtMjM5MSw2ICsyNDAyLDE3IEBAIHZvaWQgR3JhcGhpY3NMYXllckNBOjpzZXRE
ZWJ1Z0JhY2tncm91bmRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCiAgICAgICAgIG1fbGF5ZXIt
PnNldEJhY2tncm91bmRDb2xvcihDb2xvcjo6dHJhbnNwYXJlbnQpOwogfQogCit2b2lkIEdyYXBo
aWNzTGF5ZXJDQTo6ZGVidWdCb3JkZXJJbmZvKENvbG9yJiBjb2xvciwgZmxvYXQmIHdpZHRoKSBj
b25zdAoreworICAgIGlmIChtX2lzUGFnZVRpbGVDYWNoZUxheWVyKSB7CisgICAgICAgIGNvbG9y
ID0gQ29sb3IoMCwgMCwgMTI4LCAxMjgpOyAvLyB0aWxlIGNhY2hlIGxheWVyOiBkYXJrIGJsdWUK
KyAgICAgICAgd2lkdGggPSAwLjU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBHcmFw
aGljc0xheWVyOjpkZWJ1Z0JvcmRlckluZm8oY29sb3IsIHdpZHRoKTsKK30KKwogdm9pZCBHcmFw
aGljc0xheWVyQ0E6OnNldERlYnVnQm9yZGVyKGNvbnN0IENvbG9yJiBjb2xvciwgZmxvYXQgYm9y
ZGVyV2lkdGgpCiB7ICAgIAogICAgIGlmIChjb2xvci5pc1ZhbGlkKCkpIHsKQEAgLTI0MjgsNyAr
MjQ1MCw3IEBAIEZsb2F0U2l6ZSBHcmFwaGljc0xheWVyQ0E6OmNvbnN0cmFpbmVkU2l6ZSgpIGNv
bnN0CiAKIGJvb2wgR3JhcGhpY3NMYXllckNBOjpyZXF1aXJlc1RpbGVkTGF5ZXIoZmxvYXQgcGFn
ZVNjYWxlRmFjdG9yKSBjb25zdAogewotICAgIGlmICghbV9kcmF3c0NvbnRlbnQgfHwgIW1fYWxs
b3dUaWxlZExheWVyIHx8IG1fbGF5ZXItPmxheWVyVHlwZSgpID09IFBsYXRmb3JtQ0FMYXllcjo6
TGF5ZXJUeXBlVGlsZUNhY2hlTGF5ZXIpCisgICAgaWYgKCFtX2RyYXdzQ29udGVudCB8fCAhbV9h
bGxvd1RpbGVkTGF5ZXIgfHwgbV9pc1BhZ2VUaWxlQ2FjaGVMYXllcikKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgLy8gRklYTUU6IGNhdGNoIHplcm8tc2l6ZSBoZWlnaHQgb3Igd2lkdGgg
aGVyZSAob3IgZWFybGllcik/CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYS9HcmFwaGljc0xheWVyQ0EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NhL0dyYXBoaWNzTGF5ZXJDQS5oCmluZGV4IGU2MzVhYmIyNzIxYmNiMWQ2Mzk4ODRi
YmVhM2Q1M2YzMDRkODEzMDguLmFhMmU1MDhmYTUwYmQxMTJjNTE1N2U0NGRlN2UzNWEzOGEzNzMx
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dyYXBo
aWNzTGF5ZXJDQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL0dy
YXBoaWNzTGF5ZXJDQS5oCkBAIC0xNTMsNyArMTUzLDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFs
IENvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBwbGF0Zm9ybUNBTGF5ZXJDb250ZW50
c09yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gY29udGVudHNPcmllbnRhdGlvbigpOyB9CiAg
ICAgdmlydHVhbCB2b2lkIHBsYXRmb3JtQ0FMYXllclBhaW50Q29udGVudHMoR3JhcGhpY3NDb250
ZXh0JiwgY29uc3QgSW50UmVjdCYgY2xpcCk7CiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FM
YXllclNob3dEZWJ1Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBzaG93RGVidWdCb3JkZXJzKCk7
IH0KLSAgICB2aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKCkg
Y29uc3QgeyByZXR1cm4gc2hvd1JlcGFpbnRDb3VudGVyKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wg
cGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKFBsYXRmb3JtQ0FMYXllciopIGNvbnN0
OwogICAgIHZpcnR1YWwgaW50IHBsYXRmb3JtQ0FMYXllckluY3JlbWVudFJlcGFpbnRDb3VudCgp
IHsgcmV0dXJuIGluY3JlbWVudFJlcGFpbnRDb3VudCgpOyB9CiAKICAgICB2aXJ0dWFsIGJvb2wg
cGxhdGZvcm1DQUxheWVyQ29udGVudHNPcGFxdWUoKSBjb25zdCB7IHJldHVybiBjb250ZW50c09w
YXF1ZSgpOyB9CkBAIC0yMjgsNiArMjI4LDggQEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9p
ZCBzZXRSZXBsaWNhdGVkQnlMYXllcihHcmFwaGljc0xheWVyKik7CiAKKyAgICB2aXJ0dWFsIHZv
aWQgZGVidWdCb3JkZXJJbmZvKENvbG9yJiwgZmxvYXQmIHdpZHRoKSBjb25zdDsKKwogICAgIHZv
aWQgY29tcHV0ZVBpeGVsQWxpZ25tZW50KGZsb2F0IHBpeGVsQWxpZ25tZW50U2NhbGUsIGNvbnN0
IEZsb2F0UG9pbnQmIHBvc2l0aW9uUmVsYXRpdmVUb0Jhc2UsCiAgICAgICAgIEZsb2F0UG9pbnQm
IHBvc2l0aW9uLCBGbG9hdFNpemUmLCBGbG9hdFBvaW50M0QmIGFuY2hvclBvaW50LCBGbG9hdFNp
emUmIGFsaWdubWVudE9mZnNldCkgY29uc3Q7CiAKQEAgLTQwMyw2ICs0MDUsNyBAQCBwcml2YXRl
OgogICAgIENvbnRlbnRzTGF5ZXJQdXJwb3NlIG1fY29udGVudHNMYXllclB1cnBvc2U7CiAgICAg
Ym9vbCBtX2NvbnRlbnRzTGF5ZXJIYXNCYWNrZ3JvdW5kQ29sb3IgOiAxOwogICAgIGJvb2wgbV9h
bGxvd1RpbGVkTGF5ZXIgOiAxOworICAgIGJvb2wgbV9pc1BhZ2VUaWxlQ2FjaGVMYXllciA6IDE7
CiAKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gbV91bmNvcnJlY3RlZENvbnRlbnRzSW1hZ2U7
CiAgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fcGVuZGluZ0NvbnRlbnRzSW1hZ2U7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS9QbGF0Zm9ybUNBTGF5
ZXJDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FMYXllckNsaWVudC5oCmluZGV4IDMxNjYwNjE3M2Q0NDExOWQ2YWRjNDUzOTA1OTg0OGNmODQ4
ZDk4MzAuLjE4NWQ2MzU4Yzg1NTM5ZjI1MDY2NzRkYzU2NGIzMGU1NGU3MjQwZDYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3JtQ0FMYXllckNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL1BsYXRmb3Jt
Q0FMYXllckNsaWVudC5oCkBAIC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEdy
YXBoaWNzTGF5ZXI6OkNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBwbGF0Zm9ybUNB
TGF5ZXJDb250ZW50c09yaWVudGF0aW9uKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJl
Y3QmIGluQ2xpcCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJTaG93RGVi
dWdCb3JkZXJzKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJT
aG93UmVwYWludENvdW50ZXIoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIHBsYXRmb3Jt
Q0FMYXllclNob3dSZXBhaW50Q291bnRlcihQbGF0Zm9ybUNBTGF5ZXIqKSBjb25zdCA9IDA7CiAg
ICAgdmlydHVhbCBpbnQgcGxhdGZvcm1DQUxheWVySW5jcmVtZW50UmVwYWludENvdW50KCkgPSAw
OwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJDb250ZW50c09wYXF1ZSgp
IGNvbnN0ID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL21hYy9UaWxlQ2FjaGUubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YS9tYWMvVGlsZUNhY2hlLm1tCmluZGV4IDExNjQxZDEzNTIzNjcwMGYzNGVjNjU1MTNiMGM5NDFh
OWYwOTI3NjIuLjc3ZmZjMjUwOTEwYjcxZjIyNzI1MDdhNzg5ZTVkZDA0ODFhMGM0MjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhL21hYy9UaWxlQ2FjaGUu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2EvbWFjL1RpbGVDYWNo
ZS5tbQpAQCAtNDgwLDcgKzQ4MCw3IEBAIGJvb2wgVGlsZUNhY2hlOjpzaG91bGRTaG93UmVwYWlu
dENvdW50ZXJzKCkgY29uc3QKICAgICBpZiAoIWxheWVyQ29udGVudHMpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAotICAgIHJldHVybiBsYXllckNvbnRlbnRzLT5wbGF0Zm9ybUNBTGF5ZXJTaG93
UmVwYWludENvdW50ZXIoKTsKKyAgICByZXR1cm4gbGF5ZXJDb250ZW50cy0+cGxhdGZvcm1DQUxh
eWVyU2hvd1JlcGFpbnRDb3VudGVyKDApOwogfQogCiB2b2lkIFRpbGVDYWNoZTo6ZHJhd1JlcGFp
bnRDb3VudGVyKFdlYlRpbGVMYXllciAqbGF5ZXIsIENHQ29udGV4dFJlZiBjb250ZXh0KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Evd2luL1BsYXRmb3Jt
Q0FMYXllcldpbkludGVybmFsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NhL3dpbi9QbGF0Zm9ybUNBTGF5ZXJXaW5JbnRlcm5hbC5jcHAKaW5kZXggZGU4OWFlMWNlNjQz
NmZlMjgyOGMyZjBlNTAzZjc3NWRjMzFiYmE1ZS4uYzQzMGNmMjg0NjE0NjY0N2JmNjFmYzdhNzE2
MjlmNTJmMDIxZmE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Evd2luL1BsYXRmb3JtQ0FMYXllcldpbkludGVybmFsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYS93aW4vUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWwu
Y3BwCkBAIC05Niw3ICs5Niw3IEBAIHZvaWQgUGxhdGZvcm1DQUxheWVyV2luSW50ZXJuYWw6OmRp
c3BsYXlDYWxsYmFjayhDQUNGTGF5ZXJSZWYgY2FMYXllciwgQ0dDb250ZXh0CiAgICAgfQogI2Vu
ZGlmCiAKLSAgICBpZiAob3duZXIoKS0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVyU2hvd1JlcGFp
bnRDb3VudGVyKCkpIHsKKyAgICBpZiAob3duZXIoKS0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVy
U2hvd1JlcGFpbnRDb3VudGVyKG93bmVyKCkpKSB7CiAgICAgICAgIEZvbnRDYWNoZVB1cmdlUHJl
dmVudGVyIGZvbnRDYWNoZVB1cmdlUHJldmVudGVyOwogCiAgICAgICAgIFN0cmluZyB0ZXh0ID0g
U3RyaW5nOjpudW1iZXIob3duZXIoKS0+b3duZXIoKS0+cGxhdGZvcm1DQUxheWVySW5jcmVtZW50
UmVwYWludENvdW50KCkpOwpAQCAtMTY1LDE0ICsxNjUsMTQgQEAgdm9pZCBQbGF0Zm9ybUNBTGF5
ZXJXaW5JbnRlcm5hbDo6c2V0TmVlZHNEaXNwbGF5KGNvbnN0IEZsb2F0UmVjdCogZGlydHlSZWN0
KQogICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG51bVRpbGVMYXllcnM7ICsraSkKICAgICAg
ICAgICAgIENBQ0ZMYXllclNldE5lZWRzRGlzcGxheSh0aWxlQXRJbmRleChpKSwgZGlydHlSZWN0
ID8gJnJlY3QgOiAwKTsKIAotICAgICAgICBpZiAobV9vd25lci0+b3duZXIoKSAmJiBtX293bmVy
LT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIoKSkgeworICAgICAg
ICBpZiAobV9vd25lci0+b3duZXIoKSAmJiBtX293bmVyLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5
ZXJTaG93UmVwYWludENvdW50ZXIobV9vd25lcikpIHsKICAgICAgICAgICAgIENHUmVjdCBsYXll
ckJvdW5kcyA9IG1fb3duZXItPmJvdW5kcygpOwogICAgICAgICAgICAgQ0dSZWN0IGluZGljYXRv
clJlY3QgPSBDR1JlY3RNYWtlKGxheWVyQm91bmRzLm9yaWdpbi54LCBsYXllckJvdW5kcy5vcmln
aW4ueSwgODAsIDI1KTsKICAgICAgICAgICAgIENBQ0ZMYXllclNldE5lZWRzRGlzcGxheSh0aWxl
QXRJbmRleCgwKSwgJmluZGljYXRvclJlY3QpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChv
d25lcigpLT5sYXllclR5cGUoKSA9PSBQbGF0Zm9ybUNBTGF5ZXI6OkxheWVyVHlwZVdlYkxheWVy
KSB7CiAgICAgICAgIGlmIChvd25lcigpICYmIG93bmVyKCktPm93bmVyKCkpIHsKLSAgICAgICAg
ICAgIGlmIChvd25lcigpLT5vd25lcigpLT5wbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50
ZXIoKSkgeworICAgICAgICAgICAgaWYgKG93bmVyKCktPm93bmVyKCktPnBsYXRmb3JtQ0FMYXll
clNob3dSZXBhaW50Q291bnRlcihvd25lcigpKSkgewogICAgICAgICAgICAgICAgIEZsb2F0UmVj
dCBsYXllckJvdW5kcyA9IG93bmVyKCktPmJvdW5kcygpOwogICAgICAgICAgICAgICAgIEZsb2F0
UmVjdCByZXBhaW50Q291bnRlclJlY3QgPSBsYXllckJvdW5kczsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL1dlYkxheWVyLm1tCmluZGV4IGQ3ODNlNDk0YTll
MzIxODAyZWM5N2ViNjNmZDBkYzBjZDA1MWViYTUuLjU1NTBkYjJhNmY5ODE0NTNlMzg5MGNjMmJk
OTE0NDRkNWU5M2M3NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9XZWJMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvV2ViTGF5ZXIubW0KQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIGRyYXdMYXllckNvbnRl
bnRzKENHQ29udGV4dFJlZiBjb250ZXh0LCBDQUxheWVyICpsYXllciwgV2ViQ29yZTo6UGxhdGZv
cm1DQQogICAgIC8vIFJlLWZldGNoIHRoZSBsYXllciBvd25lciwgc2luY2UgPHJkYXI6Ly9wcm9i
bGVtLzkxMjUxNTE+IGluZGljYXRlcyB0aGF0IGl0IG1pZ2h0IGhhdmUgYmVlbiBkZXN0cm95ZWQg
ZHVyaW5nIHBhaW50aW5nLgogICAgIGxheWVyQ29udGVudHMgPSBwbGF0Zm9ybUxheWVyLT5vd25l
cigpOwogICAgIEFTU0VSVChsYXllckNvbnRlbnRzKTsKLSAgICBpZiAocGxhdGZvcm1MYXllci0+
bGF5ZXJUeXBlKCkgIT0gUGxhdGZvcm1DQUxheWVyOjpMYXllclR5cGVUaWxlQ2FjaGVMYXllciAm
JiBsYXllckNvbnRlbnRzICYmIGxheWVyQ29udGVudHMtPnBsYXRmb3JtQ0FMYXllclNob3dSZXBh
aW50Q291bnRlcigpKSB7CisgICAgaWYgKGxheWVyQ29udGVudHMgJiYgbGF5ZXJDb250ZW50cy0+
cGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRDb3VudGVyKHBsYXRmb3JtTGF5ZXIpKSB7CiAgICAg
ICAgIGJvb2wgaXNUaWxlZExheWVyID0gW2xheWVyIGlzS2luZE9mQ2xhc3M6W0NBVGlsZWRMYXll
ciBjbGFzc11dOwogCiAgICAgICAgIGNoYXIgdGV4dFsxNl07IC8vIHRoYXQncyBhIGxvdCBvZiBy
ZXBhaW50cwpAQCAtMTc4LDcgKzE3OCw3IEBAIHZvaWQgZHJhd0xheWVyQ29udGVudHMoQ0dDb250
ZXh0UmVmIGNvbnRleHQsIENBTGF5ZXIgKmxheWVyLCBXZWJDb3JlOjpQbGF0Zm9ybUNBCiAKICAg
ICAgICAgICAgIFtzdXBlciBzZXROZWVkc0Rpc3BsYXlJblJlY3Q6ZGlydHlSZWN0XTsKIAotICAg
ICAgICAgICAgaWYgKGxheWVyT3duZXItPnBsYXRmb3JtQ0FMYXllclNob3dSZXBhaW50Q291bnRl
cigpKSB7CisgICAgICAgICAgICBpZiAobGF5ZXJPd25lci0+cGxhdGZvcm1DQUxheWVyU2hvd1Jl
cGFpbnRDb3VudGVyKHBsYXRmb3JtTGF5ZXIpKSB7CiAgICAgICAgICAgICAgICAgQ0dSZWN0IGJv
dW5kcyA9IFtzZWxmIGJvdW5kc107CiAgICAgICAgICAgICAgICAgQ0dSZWN0IGluZGljYXRvclJl
Y3QgPSBDR1JlY3RNYWtlKGJvdW5kcy5vcmlnaW4ueCwgYm91bmRzLm9yaWdpbi55LCA1MiwgMjcp
OwogICAgICAgICAgICAgICAgIGlmIChsYXllck93bmVyLT5wbGF0Zm9ybUNBTGF5ZXJDb250ZW50
c09yaWVudGF0aW9uKCkgPT0gV2ViQ29yZTo6R3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29y
ZGluYXRlc0JvdHRvbVVwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL1dlYlRpbGVkTGF5ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvV2ViVGlsZWRMYXllci5tbQppbmRleCA5NzM2ZTc0ZGMwYWU4ZjAyODU5ZGU2ODgz
MjIyMGE4NDY5YWMwZjk1Li42NWZhN2QyZWUxMGNmZmNkMThhYWNlMmEzN2ZiMmJiN2FjYjVmNWVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2ViVGls
ZWRMYXllci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvV2Vi
VGlsZWRMYXllci5tbQpAQCAtODQsNyArODQsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogICAgICAgICAgICAgW3N1cGVyIHNldE5lZWRzRGlzcGxheUluUmVjdDpkaXJ0eVJlY3RdOwog
Ci0gICAgICAgICAgICBpZiAobGF5ZXJPd25lci0+cGxhdGZvcm1DQUxheWVyU2hvd1JlcGFpbnRD
b3VudGVyKCkpIHsKKyAgICAgICAgICAgIGlmIChsYXllck93bmVyLT5wbGF0Zm9ybUNBTGF5ZXJT
aG93UmVwYWludENvdW50ZXIocGxhdGZvcm1MYXllcikpIHsKICAgICAgICAgICAgICAgICBDR1Jl
Y3QgYm91bmRzID0gW3NlbGYgYm91bmRzXTsKICAgICAgICAgICAgICAgICBDR1JlY3QgaW5kaWNh
dG9yUmVjdCA9IENHUmVjdE1ha2UoYm91bmRzLm9yaWdpbi54LCBib3VuZHMub3JpZ2luLnksIDUy
LCAyNyk7CiAgICAgICAgICAgICAgICAgaWYgKGxheWVyT3duZXItPnBsYXRmb3JtQ0FMYXllckNv
bnRlbnRzT3JpZW50YXRpb24oKSA9PSBXZWJDb3JlOjpHcmFwaGljc0xheWVyOjpDb21wb3NpdGlu
Z0Nvb3JkaW5hdGVzQm90dG9tVXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2
YXRlUXVpY2tUaW1lVmlzdWFsQ29udGV4dC5jcHAKaW5kZXggYzMzY2NlNThkZWZkMTg2ZWY1NGRi
MTZkYWZiNWE0MjNiYWY3ZjA4Yy4uMzVjM2Q3Nzc4OGY4NmRlODA0NWI2Y2M3MGQyODZhN2QxZjFm
MGQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01l
ZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVZpc3VhbENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVW
aXN1YWxDb250ZXh0LmNwcApAQCAtMTAxLDcgKzEwMSw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBHcmFwaGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gcGxhdGZv
cm1DQUxheWVyQ29udGVudHNPcmllbnRhdGlvbigpIGNvbnN0IHsgcmV0dXJuIEdyYXBoaWNzTGF5
ZXI6OkNvbXBvc2l0aW5nQ29vcmRpbmF0ZXNCb3R0b21VcDsgfQogICAgIHZpcnR1YWwgdm9pZCBw
bGF0Zm9ybUNBTGF5ZXJQYWludENvbnRlbnRzKEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEludFJl
Y3QmIGluQ2xpcCkgeyB9CiAgICAgdmlydHVhbCBib29sIHBsYXRmb3JtQ0FMYXllclNob3dEZWJ1
Z0JvcmRlcnMoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotICAgIHZpcnR1YWwgYm9vbCBwbGF0
Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQor
ICAgIHZpcnR1YWwgYm9vbCBwbGF0Zm9ybUNBTGF5ZXJTaG93UmVwYWludENvdW50ZXIoUGxhdGZv
cm1DQUxheWVyKikgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGludCBwbGF0
Zm9ybUNBTGF5ZXJJbmNyZW1lbnRSZXBhaW50Q291bnQoKSB7IHJldHVybiAwOyB9CiAKICAgICB2
aXJ0dWFsIGJvb2wgcGxhdGZvcm1DQUxheWVyQ29udGVudHNPcGFxdWUoKSBjb25zdCB7IHJldHVy
biBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyQmFja2luZy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2lu
Zy5oCmluZGV4IDNkMjI0N2FmODdjYzVjYWNiOWQ1YTA1ZGYwNzBlMzg1NDgxMGJmNzIuLjhjMjgz
MDFhNzc3MmU3OGEwMjRlM2JiNzQwZTQ4ZjVmMTMxMmUwMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmgKQEAgLTEzMyw5ICsxMzMsMTAgQEAgcHVi
bGljOgogICAgIHZvaWQgdXBkYXRlQWZ0ZXJXaWRnZXRSZXNpemUoKTsKICAgICB2b2lkIHBvc2l0
aW9uT3ZlcmZsb3dDb250cm9sc0xheWVycyhjb25zdCBJbnRTaXplJiBvZmZzZXRGcm9tUm9vdCk7
CiAKKyAgICBib29sIHVzaW5nVGlsZUNhY2hlKCkgY29uc3QgeyByZXR1cm4gbV91c2luZ1RpbGVk
Q2FjaGVMYXllcjsgfQorCiAgICAgLy8gR3JhcGhpY3NMYXllckNsaWVudCBpbnRlcmZhY2UKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkVXNlVGlsZUNhY2hlKGNvbnN0IEdyYXBoaWNzTGF5ZXIqKSBj
b25zdDsKLSAgICB2aXJ0dWFsIGJvb2wgdXNpbmdUaWxlQ2FjaGUoY29uc3QgR3JhcGhpY3NMYXll
ciopIGNvbnN0IHsgcmV0dXJuIG1fdXNpbmdUaWxlZENhY2hlTGF5ZXI7IH0KICAgICB2aXJ0dWFs
IHZvaWQgbm90aWZ5QW5pbWF0aW9uU3RhcnRlZChjb25zdCBHcmFwaGljc0xheWVyKiwgZG91Ymxl
IHN0YXJ0VGltZSk7CiAgICAgdmlydHVhbCB2b2lkIG5vdGlmeUZsdXNoUmVxdWlyZWQoY29uc3Qg
R3JhcGhpY3NMYXllciopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IDhkYmUxMjlhMTE5MmExYTMwYzcwMTA5ZjlkYmRi
OTgyNjRlNDMwZTUuLjIwNGIwZDBiZGFhNjNhNmY3ZGVlZDUxNjE4NTlhZjI2NzVkMDc3MDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3Iu
Y3BwCkBAIC0xOTM1LDEzICsxOTM1LDEwIEBAIHZvaWQgUmVuZGVyTGF5ZXJDb21wb3NpdG9yOjpw
YWludENvbnRlbnRzKGNvbnN0IEdyYXBoaWNzTGF5ZXIqIGdyYXBoaWNzTGF5ZXIsIEdyCiB2b2lk
IFJlbmRlckxheWVyQ29tcG9zaXRvcjo6ZG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3JEaWRDaGFuZ2Uo
KQogewogICAgIFJlbmRlckxheWVyQmFja2luZyogYmFja2luZyA9IHJvb3RSZW5kZXJMYXllcigp
LT5iYWNraW5nKCk7Ci0gICAgaWYgKCFiYWNraW5nKQorICAgIGlmICghYmFja2luZyB8fCAhYmFj
a2luZy0+dXNpbmdUaWxlQ2FjaGUoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgR3JhcGhpY3NM
YXllciogZ3JhcGhpY3NMYXllciA9IGJhY2tpbmctPmdyYXBoaWNzTGF5ZXIoKTsKLSAgICBpZiAo
IWdyYXBoaWNzTGF5ZXItPmNsaWVudCgpLT51c2luZ1RpbGVDYWNoZShncmFwaGljc0xheWVyKSkK
LSAgICAgICAgcmV0dXJuOwotCiAgICAgQ29sb3IgYmFja2dyb3VuZENvbG9yID0gbV9yZW5kZXJW
aWV3LT5mcmFtZVZpZXcoKS0+ZG9jdW1lbnRCYWNrZ3JvdW5kQ29sb3IoKTsKICAgICBpZiAoIWJh
Y2tncm91bmRDb2xvci5pc1ZhbGlkKCkgfHwgYmFja2dyb3VuZENvbG9yLmhhc0FscGhhKCkpCiAg
ICAgICAgIGJhY2tncm91bmRDb2xvciA9IENvbG9yOjp3aGl0ZTsK
</data>
<flag name="review"
          id="180104"
          type_id="1"
          status="+"
          setter="dino"
    />
    <flag name="commit-queue"
          id="180111"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
      

    </bug>

</bugzilla>