<?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>62032</bug_id>
          
          <creation_ts>2011-06-03 11:46:38 -0700</creation_ts>
          <short_desc>Convert RenderBox::overflowClipRect to IntPoint</short_desc>
          <delta_ts>2011-06-04 02:53:54 -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>Layout and Rendering</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>60318</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Emil A Eklund">eae</reporter>
          <assigned_to name="Emil A Eklund">eae</assigned_to>
          <cc>eric</cc>
    
    <cc>leviw</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>415043</commentid>
    <comment_count>0</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-06-03 11:46:38 -0700</bug_when>
    <thetext>Ongoing tx, ty to IntPoint conversion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415098</commentid>
    <comment_count>1</comment_count>
      <attachid>95948</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-06-03 12:36:02 -0700</bug_when>
    <thetext>Created attachment 95948
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415124</commentid>
    <comment_count>2</comment_count>
      <attachid>95954</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-06-03 13:17:47 -0700</bug_when>
    <thetext>Created attachment 95954
Patch

Fixed typo in ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415140</commentid>
    <comment_count>3</comment_count>
      <attachid>95954</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-03 13:42:15 -0700</bug_when>
    <thetext>Comment on attachment 95954
Patch

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

&gt; Source/WebCore/rendering/RenderBox.cpp:1145
&gt; +    IntRect clipRect(location + borderTopLeft(), size() - borderSize());

borderSize() = IntSize(borderRight(), borderBottom)?

&gt; Source/WebCore/rendering/RenderBoxModelObject.h:95
&gt; +    virtual IntSize borderSize() const { return IntSize(borderLeft() + borderRight(), borderTop() + borderBottom()); }

Hmmm... Seems we should get this from the borderRect(), I&apos;m not sure borderSize is meaningful.

&gt; Source/WebCore/rendering/RenderLayer.h:258
&gt; +    IntSize scrollbarSize(OverlayScrollbarSizeRelevancy = IgnoreOverlayScrollbarSize) const;

This doesn&apos;t make any sense.  The vertical and horizontal scrollbars are indepenent.  How can we put them both into a single size?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415229</commentid>
    <comment_count>4</comment_count>
      <attachid>95970</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-06-03 15:05:40 -0700</bug_when>
    <thetext>Created attachment 95970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415231</commentid>
    <comment_count>5</comment_count>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-06-03 15:06:41 -0700</bug_when>
    <thetext>Thanks Eric, I agree that the scrollbarSize method was a bit weird.
Please take another look and see if you like this approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415244</commentid>
    <comment_count>6</comment_count>
      <attachid>95970</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-06-03 15:39:26 -0700</bug_when>
    <thetext>Comment on attachment 95970
Patch

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

LGTM.

&gt; Source/WebCore/rendering/RenderBox.cpp:1148
&gt; +        clipRect.contract(layer()-&gt;verticalScrollbarWidth(relevancy),
&gt; +            layer()-&gt;horizontalScrollbarHeight(relevancy));

I wouldn&apos;t have bothered wrapping. 1. cause we have no column limit in webkit.  and 2. because as soon as you make it 2 lines, we technically would require { } around the if block (even though the executed code is one line).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415266</commentid>
    <comment_count>7</comment_count>
      <attachid>95981</attachid>
    <who name="Emil A Eklund">eae</who>
    <bug_when>2011-06-03 16:08:08 -0700</bug_when>
    <thetext>Created attachment 95981
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415441</commentid>
    <comment_count>8</comment_count>
      <attachid>95981</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-04 02:53:49 -0700</bug_when>
    <thetext>Comment on attachment 95981
Patch for landing

Clearing flags on attachment: 95981

Committed r88102: &lt;http://trac.webkit.org/changeset/88102&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415442</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-06-04 02:53:54 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95948</attachid>
            <date>2011-06-03 12:36:02 -0700</date>
            <delta_ts>2011-06-03 13:17:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62032-20110603123601.patch</filename>
            <type>text/plain</type>
            <size>16978</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MDM0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDYtMDMgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENvbnZlcnQgUmVuZGVyVGFibGU6Om92ZXJmbG93Q2xpcFJlY3Qg
dG8gSW50UG9pbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYyMDMyCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAg
ICAqIGVkaXRpbmcvRWRpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvcjo6aW5zaWRl
VmlzaWJsZUFyZWEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkludFJlY3Q6OmNvbnRyYWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Om5vZGVBdFBv
aW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJveDo6cHVzaENvbnRlbnRzQ2xpcCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCb3g6Om92ZXJmbG93Q2xpcFJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3gu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OnBhaW50RmlsbExheWVyRXh0ZW5kZWQp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmJvcmRlclRvcExlZnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyQm94TW9kZWxPYmplY3Q6OmJvcmRlclNpemUpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6
c2Nyb2xsYmFyU2l6ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRl
Q2xpcFJlY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVSZWN0
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVwYWludEJsb2NrU2VsZWN0aW9u
R2Fwcyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjbGlwQm94
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGFibGU6Om92ZXJmbG93Q2xpcFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGFibGU6Om5vZGVBdFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGUu
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6bm9kZUF0UG9pbnQpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJT
VkdSb290OjpwYWludCk6CisKIDIwMTEtMDYtMDEgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogU291cmNl
L1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvRWRpdG9yLmNwcAkocmV2aXNpb24gODc4NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NjgsNyArMjU2OCw3IEBAIGJv
b2wgRWRpdG9yOjppbnNpZGVWaXNpYmxlQXJlYShjb25zdCBJbnQKICAgICBpZiAoIShjb250YWlu
ZXItPnN0eWxlKCktPm92ZXJmbG93WCgpID09IE9ISURERU4gfHwgY29udGFpbmVyLT5zdHlsZSgp
LT5vdmVyZmxvd1koKSA9PSBPSElEREVOKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBJ
bnRSZWN0IHJlY3RJblBhZ2VDb29yZHMgPSBjb250YWluZXItPm92ZXJmbG93Q2xpcFJlY3QoMCwg
MCk7CisgICAgSW50UmVjdCByZWN0SW5QYWdlQ29vcmRzID0gY29udGFpbmVyLT5vdmVyZmxvd0Ns
aXBSZWN0KEludFBvaW50KCkpOwogICAgIEludFJlY3QgcmVjdEluRnJhbWVDb29yZHMgPSBJbnRS
ZWN0KHJlbmRlcmVyLT54KCkgKiAtMSwgcmVuZGVyZXItPnkoKSAqIC0xLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgcmVjdEluUGFnZUNvb3Jkcy53aWR0aCgpLCByZWN0SW5Q
YWdlQ29vcmRzLmhlaWdodCgpKTsKIApAQCAtMjU5Nyw3ICsyNTk3LDcgQEAgYm9vbCBFZGl0b3I6
Omluc2lkZVZpc2libGVBcmVhKFJhbmdlKiByYQogICAgIGlmICghKGNvbnRhaW5lci0+c3R5bGUo
KS0+b3ZlcmZsb3dYKCkgPT0gT0hJRERFTiB8fCBjb250YWluZXItPnN0eWxlKCktPm92ZXJmbG93
WSgpID09IE9ISURERU4pKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIEludFJlY3QgcmVj
dEluUGFnZUNvb3JkcyA9IGNvbnRhaW5lci0+b3ZlcmZsb3dDbGlwUmVjdCgwLCAwKTsKKyAgICBJ
bnRSZWN0IHJlY3RJblBhZ2VDb29yZHMgPSBjb250YWluZXItPm92ZXJmbG93Q2xpcFJlY3QoSW50
UG9pbnQoKSk7CiAgICAgSW50UmVjdCByZWN0SW5GcmFtZUNvb3JkcyA9IEludFJlY3QocmVuZGVy
ZXItPngoKSAqIC0xLCByZW5kZXJlci0+eSgpICogLTEsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICByZWN0SW5QYWdlQ29vcmRzLndpZHRoKCksIHJlY3RJblBhZ2VDb29yZHMu
aGVpZ2h0KCkpOwogICAgIEludFJlY3QgcmVzdWx0UmVjdCA9IHJhbmdlLT5ib3VuZGluZ0JveCgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAkocmV2
aXNpb24gODc4NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IGV4cGFuZChjb25zdCBJbnRTaXplJiBzaXplKSB7IG1fbG9jYXRpb24gKz0gc2l6ZTsgfQogICAg
IHZvaWQgZXhwYW5kKGludCBkdywgaW50IGRoKSB7IG1fc2l6ZS5leHBhbmQoZHcsIGRoKTsgfQor
ICAgIHZvaWQgY29udHJhY3QoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBtX3NpemUgLT0gc2l6ZTsg
fQorICAgIHZvaWQgY29udHJhY3QoaW50IGR3LCBpbnQgZGgpIHsgbV9zaXplLmV4cGFuZCgtZHcs
IC1kaCk7IH0KIAogICAgIHZvaWQgc2hpZnRYRWRnZVRvKGludCBlZGdlKQogICAgIHsKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gODc4NjUp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zOTI2LDcgKzM5MjYsNyBAQCBib29sIFJlbmRlckJsb2NrOjpub2RlQXRQb2ludChj
b25zdCBIaXRUCiAgICAgYm9vbCB1c2VPdmVyZmxvd0NsaXAgPSBoYXNPdmVyZmxvd0NsaXAoKSAm
JiAhaGFzU2VsZlBhaW50aW5nTGF5ZXIoKTsKICAgICBib29sIHVzZUNsaXAgPSAoaGFzQ29udHJv
bENsaXAoKSB8fCB1c2VPdmVyZmxvd0NsaXApOwogICAgIEludFJlY3QgaGl0VGVzdEFyZWEocmVz
dWx0LnJlY3RGb3JQb2ludChwb2ludEluQ29udGFpbmVyKSk7Ci0gICAgYm9vbCBjaGVja0NoaWxk
cmVuID0gIXVzZUNsaXAgfHwgKGhhc0NvbnRyb2xDbGlwKCkgPyBjb250cm9sQ2xpcFJlY3QodG9Q
b2ludChsb2NhbE9mZnNldCkpLmludGVyc2VjdHMoaGl0VGVzdEFyZWEpIDogb3ZlcmZsb3dDbGlw
UmVjdChsb2NhbE9mZnNldC53aWR0aCgpLCBsb2NhbE9mZnNldC5oZWlnaHQoKSwgSW5jbHVkZU92
ZXJsYXlTY3JvbGxiYXJTaXplKS5pbnRlcnNlY3RzKGhpdFRlc3RBcmVhKSk7CisgICAgYm9vbCBj
aGVja0NoaWxkcmVuID0gIXVzZUNsaXAgfHwgKGhhc0NvbnRyb2xDbGlwKCkgPyBjb250cm9sQ2xp
cFJlY3QodG9Qb2ludChsb2NhbE9mZnNldCkpLmludGVyc2VjdHMoaGl0VGVzdEFyZWEpIDogb3Zl
cmZsb3dDbGlwUmVjdCh0b1BvaW50KGxvY2FsT2Zmc2V0KSwgSW5jbHVkZU92ZXJsYXlTY3JvbGxi
YXJTaXplKS5pbnRlcnNlY3RzKGhpdFRlc3RBcmVhKSk7CiAgICAgaWYgKGNoZWNrQ2hpbGRyZW4p
IHsKICAgICAgICAgLy8gSGl0IHRlc3QgZGVzY2VuZGFudHMgZmlyc3QuCiAgICAgICAgIEludFNp
emUgc2Nyb2xsZWRPZmZzZXQobG9jYWxPZmZzZXQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5jcHAJKHJldmlzaW9uIDg3ODY1KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMTYsNyArMTExNiw3IEBA
IGJvb2wgUmVuZGVyQm94OjpwdXNoQ29udGVudHNDbGlwKFBhaW50SW4KICAgICAgICAgcGFpbnRP
YmplY3QocGFpbnRJbmZvLCB0eCwgdHkpOwogICAgICAgICBwYWludEluZm8ucGhhc2UgPSBQYWlu
dFBoYXNlQ2hpbGRCbG9ja0JhY2tncm91bmRzOwogICAgIH0KLSAgICBJbnRSZWN0IGNsaXBSZWN0
KGlzQ29udHJvbENsaXAgPyBjb250cm9sQ2xpcFJlY3QoSW50UG9pbnQodHgsIHR5KSkgOiBvdmVy
Zmxvd0NsaXBSZWN0KHR4LCB0eSkpOworICAgIEludFJlY3QgY2xpcFJlY3QoaXNDb250cm9sQ2xp
cCA/IGNvbnRyb2xDbGlwUmVjdChJbnRQb2ludCh0eCwgdHkpKSA6IG92ZXJmbG93Q2xpcFJlY3Qo
SW50UG9pbnQodHgsIHR5KSkpOwogICAgIHBhaW50SW5mby5jb250ZXh0LT5zYXZlKCk7CiAgICAg
aWYgKHN0eWxlKCktPmhhc0JvcmRlclJhZGl1cygpKQogICAgICAgICBwYWludEluZm8uY29udGV4
dC0+YWRkUm91bmRlZFJlY3RDbGlwKHN0eWxlKCktPmdldFJvdW5kZWRCb3JkZXJGb3IoSW50UmVj
dCh0eCwgdHksIHdpZHRoKCksIGhlaWdodCgpKSkpOwpAQCAtMTEzNywyNiArMTEzNywxOCBAQCB2
b2lkIFJlbmRlckJveDo6cG9wQ29udGVudHNDbGlwKFBhaW50SW5mCiAgICAgICAgIHBhaW50SW5m
by5waGFzZSA9IG9yaWdpbmFsUGhhc2U7CiB9CiAKLUludFJlY3QgUmVuZGVyQm94OjpvdmVyZmxv
d0NsaXBSZWN0KGludCB0eCwgaW50IHR5LCBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2YW5jeSBy
ZWxldmFuY3kpCitJbnRSZWN0IFJlbmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdChjb25zdCBJbnRQ
b2ludCYgbG9jYXRpb24sIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IHJlbGV2YW5jeSkK
IHsKICAgICAvLyBGSVhNRTogV2hlbiBvdmVyZmxvdy1jbGlwIChDU1MzKSBpcyBpbXBsZW1lbnRl
ZCwgd2UnbGwgb2J0YWluIHRoZSBwcm9wZXJ0eQogICAgIC8vIGhlcmUuCiAKLSAgICBpbnQgYkxl
ZnQgPSBib3JkZXJMZWZ0KCk7Ci0gICAgaW50IGJUb3AgPSBib3JkZXJUb3AoKTsKLQotICAgIGlu
dCBjbGlwWCA9IHR4ICsgYkxlZnQ7Ci0gICAgaW50IGNsaXBZID0gdHkgKyBiVG9wOwotICAgIGlu
dCBjbGlwV2lkdGggPSB3aWR0aCgpIC0gYkxlZnQgLSBib3JkZXJSaWdodCgpOwotICAgIGludCBj
bGlwSGVpZ2h0ID0gaGVpZ2h0KCkgLSBiVG9wIC0gYm9yZGVyQm90dG9tKCk7CisgICAgSW50UmVj
dCBjbGlwUmVjdChsb2NhdGlvbiArIGJvcmRlclRvcExlZnQoKSwgc2l6ZSgpIC0gYm9yZGVyU2l6
ZSgpKTsKIAogICAgIC8vIFN1YnRyYWN0IG91dCBzY3JvbGxiYXJzIGlmIHdlIGhhdmUgdGhlbS4K
LSAgICBpZiAobGF5ZXIoKSkgewotICAgICAgICBjbGlwV2lkdGggLT0gbGF5ZXIoKS0+dmVydGlj
YWxTY3JvbGxiYXJXaWR0aChyZWxldmFuY3kpOwotICAgICAgICBjbGlwSGVpZ2h0IC09IGxheWVy
KCktPmhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQocmVsZXZhbmN5KTsKLSAgICB9CisgICAgaWYg
KGxheWVyKCkpCisgICAgICAgIGNsaXBSZWN0LmNvbnRyYWN0KGxheWVyKCktPnNjcm9sbGJhclNp
emUocmVsZXZhbmN5KSk7CiAKLSAgICByZXR1cm4gSW50UmVjdChjbGlwWCwgY2xpcFksIGNsaXBX
aWR0aCwgY2xpcEhlaWdodCk7CisgICAgcmV0dXJuIGNsaXBSZWN0OwogfQogCiBJbnRSZWN0IFJl
bmRlckJveDo6Y2xpcFJlY3QoaW50IHR4LCBpbnQgdHkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiA4Nzg2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaAkod29ya2luZyBjb3B5KQpAQCAtMzQ1LDcgKzM0NSw3IEBAIHB1Ymxp
YzoKICAgICAKICAgICB2aXJ0dWFsIEludFJlY3QgbG9jYWxDYXJldFJlY3QoSW5saW5lQm94Kiwg
aW50IGNhcmV0T2Zmc2V0LCBpbnQqIGV4dHJhV2lkdGhUb0VuZE9mTGluZSA9IDApOwogCi0gICAg
dmlydHVhbCBJbnRSZWN0IG92ZXJmbG93Q2xpcFJlY3QoaW50IHR4LCBpbnQgdHksIE92ZXJsYXlT
Y3JvbGxiYXJTaXplUmVsZXZhbmN5IHJlbGV2YW5jeSA9IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJT
aXplKTsKKyAgICB2aXJ0dWFsIEludFJlY3Qgb3ZlcmZsb3dDbGlwUmVjdChjb25zdCBJbnRQb2lu
dCYgbG9jYXRpb24sIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5ID0gSWdub3JlT3Zlcmxh
eVNjcm9sbGJhclNpemUpOwogICAgIEludFJlY3QgY2xpcFJlY3QoaW50IHR4LCBpbnQgdHkpOwog
ICAgIHZpcnR1YWwgYm9vbCBoYXNDb250cm9sQ2xpcCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9
CiAgICAgdmlydHVhbCBJbnRSZWN0IGNvbnRyb2xDbGlwUmVjdChjb25zdCBJbnRQb2ludCYpIGNv
bnN0IHsgcmV0dXJuIEludFJlY3QoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3BwCShyZXZpc2lvbiA4Nzg2NSkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY1NSw3ICs2NTUsNyBAQCB2b2lkIFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWlu
dEZpbGxMYXllCiAgICAgSW50UmVjdCBzY3JvbGxlZFBhaW50UmVjdCA9IHJlY3Q7CiAgICAgaWYg
KGNsaXBwZWRXaXRoTG9jYWxTY3JvbGxpbmcpIHsKICAgICAgICAgLy8gQ2xpcCB0byB0aGUgb3Zl
cmZsb3cgYXJlYS4KLSAgICAgICAgY29udGV4dC0+Y2xpcCh0b1JlbmRlckJveCh0aGlzKS0+b3Zl
cmZsb3dDbGlwUmVjdChyZWN0LngoKSwgcmVjdC55KCkpKTsKKyAgICAgICAgY29udGV4dC0+Y2xp
cCh0b1JlbmRlckJveCh0aGlzKS0+b3ZlcmZsb3dDbGlwUmVjdChyZWN0LmxvY2F0aW9uKCkpKTsK
ICAgICAgICAgCiAgICAgICAgIC8vIEFkanVzdCB0aGUgcGFpbnQgcmVjdCB0byByZWZsZWN0IGEg
c2Nyb2xsZWQgY29udGVudCBib3ggd2l0aCBib3JkZXJzIGF0IHRoZSBlbmRzLgogICAgICAgICBJ
bnRTaXplIG9mZnNldCA9IGxheWVyKCktPnNjcm9sbGVkQ29udGVudE9mZnNldCgpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmgJKHJl
dmlzaW9uIDg3ODY1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVs
T2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTkxLDYgKzkxLDggQEAgcHVibGljOgogICAgIHZp
cnR1YWwgaW50IGJvcmRlckFmdGVyKCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+Ym9yZGVyQWZ0
ZXJXaWR0aCgpOyB9CiAgICAgdmlydHVhbCBpbnQgYm9yZGVyU3RhcnQoKSBjb25zdCB7IHJldHVy
biBzdHlsZSgpLT5ib3JkZXJTdGFydFdpZHRoKCk7IH0KICAgICB2aXJ0dWFsIGludCBib3JkZXJF
bmQoKSBjb25zdCB7IHJldHVybiBzdHlsZSgpLT5ib3JkZXJFbmRXaWR0aCgpOyB9CisgICAgdmly
dHVhbCBJbnRTaXplIGJvcmRlclRvcExlZnQoKSBjb25zdCB7IHJldHVybiBJbnRTaXplKGJvcmRl
ckxlZnQoKSwgYm9yZGVyVG9wKCkpOyB9CisgICAgdmlydHVhbCBJbnRTaXplIGJvcmRlclNpemUo
KSBjb25zdCB7IHJldHVybiBJbnRTaXplKGJvcmRlckxlZnQoKSArIGJvcmRlclJpZ2h0KCksIGJv
cmRlclRvcCgpICsgYm9yZGVyQm90dG9tKCkpOyB9CiAKICAgICBpbnQgYm9yZGVyQW5kUGFkZGlu
Z0hlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGJvcmRlclRvcCgpICsgYm9yZGVyQm90dG9tKCkgKyBw
YWRkaW5nVG9wKCkgKyBwYWRkaW5nQm90dG9tKCk7IH0KICAgICBpbnQgYm9yZGVyQW5kUGFkZGlu
Z1dpZHRoKCkgY29uc3QgeyByZXR1cm4gYm9yZGVyTGVmdCgpICsgYm9yZGVyUmlnaHQoKSArIHBh
ZGRpbmdMZWZ0KCkgKyBwYWRkaW5nUmlnaHQoKTsgfQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiA4Nzg2NSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwMDEsNiArMjAw
MSwxMSBAQCBpbnQgUmVuZGVyTGF5ZXI6Omhvcml6b250YWxTY3JvbGxiYXJIZWlnCiAgICAgcmV0
dXJuIG1faEJhci0+aGVpZ2h0KCk7CiB9CiAKK0ludFNpemUgUmVuZGVyTGF5ZXI6OnNjcm9sbGJh
clNpemUoT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgcmVsZXZhbmN5KSBjb25zdAorewor
ICAgIHJldHVybiBJbnRTaXplKHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgocmVsZXZhbmN5KSwgaG9y
aXpvbnRhbFNjcm9sbGJhckhlaWdodChyZWxldmFuY3kpKTsKK30KKwogSW50U2l6ZSBSZW5kZXJM
YXllcjo6b2Zmc2V0RnJvbVJlc2l6ZUNvcm5lcihjb25zdCBJbnRQb2ludCYgYWJzb2x1dGVQb2lu
dCkgY29uc3QKIHsKICAgICAvLyBDdXJyZW50bHkgdGhlIHJlc2l6ZSBjb3JuZXIgaXMgYWx3YXlz
IHRoZSBib3R0b20gcmlnaHQgY29ybmVyCkBAIC0zMzg4LDcgKzMzOTMsNyBAQCB2b2lkIFJlbmRl
ckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMoY29uCiAgICAgICAgIH0KICAgICAgICAgCiAgICAg
ICAgIGlmIChyZW5kZXJlcigpLT5oYXNPdmVyZmxvd0NsaXAoKSkgewotICAgICAgICAgICAgSW50
UmVjdCBuZXdPdmVyZmxvd0NsaXAgPSB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+b3ZlcmZsb3dD
bGlwUmVjdCh4LCB5LCByZWxldmFuY3kpOworICAgICAgICAgICAgSW50UmVjdCBuZXdPdmVyZmxv
d0NsaXAgPSB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+b3ZlcmZsb3dDbGlwUmVjdChJbnRQb2lu
dCh4LCB5KSwgcmVsZXZhbmN5KTsKICAgICAgICAgICAgIGNsaXBSZWN0cy5zZXRPdmVyZmxvd0Ns
aXBSZWN0KGludGVyc2VjdGlvbihuZXdPdmVyZmxvd0NsaXAsIGNsaXBSZWN0cy5vdmVyZmxvd0Ns
aXBSZWN0KCkpKTsKICAgICAgICAgICAgIGlmIChyZW5kZXJlcigpLT5pc1Bvc2l0aW9uZWQoKSB8
fCByZW5kZXJlcigpLT5pc1JlbFBvc2l0aW9uZWQoKSkKICAgICAgICAgICAgICAgICBjbGlwUmVj
dHMuc2V0UG9zQ2xpcFJlY3QoaW50ZXJzZWN0aW9uKG5ld092ZXJmbG93Q2xpcCwgY2xpcFJlY3Rz
LnBvc0NsaXBSZWN0KCkpKTsKQEAgLTM0NTMsNyArMzQ1OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6
OmNhbGN1bGF0ZVJlY3RzKGNvbnN0IFIKICAgICBpZiAocmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dD
bGlwKCkgfHwgcmVuZGVyZXIoKS0+aGFzQ2xpcCgpKSB7CiAgICAgICAgIC8vIFRoaXMgbGF5ZXIg
ZXN0YWJsaXNoZXMgYSBjbGlwIG9mIHNvbWUga2luZC4KICAgICAgICAgaWYgKHJlbmRlcmVyKCkt
Pmhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICAgICAgZm9yZWdyb3VuZFJlY3QuaW50ZXJzZWN0
KHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5vdmVyZmxvd0NsaXBSZWN0KHgsIHksIHJlbGV2YW5j
eSkpOworICAgICAgICAgICAgZm9yZWdyb3VuZFJlY3QuaW50ZXJzZWN0KHRvUmVuZGVyQm94KHJl
bmRlcmVyKCkpLT5vdmVyZmxvd0NsaXBSZWN0KEludFBvaW50KHgsIHkpLCByZWxldmFuY3kpKTsK
ICAgICAgICAgaWYgKHJlbmRlcmVyKCktPmhhc0NsaXAoKSkgewogICAgICAgICAgICAgLy8gQ2xp
cCBhcHBsaWVzIHRvICp1cyogYXMgd2VsbCwgc28gZ28gYWhlYWQgYW5kIHVwZGF0ZSB0aGUgZGFt
YWdlUmVjdC4KICAgICAgICAgICAgIEludFJlY3QgbmV3UG9zQ2xpcCA9IHRvUmVuZGVyQm94KHJl
bmRlcmVyKCkpLT5jbGlwUmVjdCh4LCB5KTsKQEAgLTM1MjUsNyArMzUzMCw3IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnJlcGFpbnRCbG9ja1NlbGVjdGlvbkcKICAgICBJbnRSZWN0IHJlY3QgPSBtX2Js
b2NrU2VsZWN0aW9uR2Fwc0JvdW5kczsKICAgICByZWN0Lm1vdmUoLXNjcm9sbGVkQ29udGVudE9m
ZnNldCgpKTsKICAgICBpZiAocmVuZGVyZXIoKS0+aGFzT3ZlcmZsb3dDbGlwKCkpCi0gICAgICAg
IHJlY3QuaW50ZXJzZWN0KHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5vdmVyZmxvd0NsaXBSZWN0
KDAsIDApKTsKKyAgICAgICAgcmVjdC5pbnRlcnNlY3QodG9SZW5kZXJCb3gocmVuZGVyZXIoKSkt
Pm92ZXJmbG93Q2xpcFJlY3QoSW50UG9pbnQoKSkpOwogICAgIGlmIChyZW5kZXJlcigpLT5oYXND
bGlwKCkpCiAgICAgICAgIHJlY3QuaW50ZXJzZWN0KHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5j
bGlwUmVjdCgwLCAwKSk7CiAgICAgaWYgKCFyZWN0LmlzRW1wdHkoKSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCShyZXZpc2lvbiA4Nzg2NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTUsNiAr
MjU1LDcgQEAgcHVibGljOgogCiAgICAgaW50IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoT3Zlcmxh
eVNjcm9sbGJhclNpemVSZWxldmFuY3kgPSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkgY29u
c3Q7CiAgICAgaW50IGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQoT3ZlcmxheVNjcm9sbGJhclNp
emVSZWxldmFuY3kgPSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkgY29uc3Q7CisgICAgSW50
U2l6ZSBzY3JvbGxiYXJTaXplKE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5ID0gSWdub3Jl
T3ZlcmxheVNjcm9sbGJhclNpemUpIGNvbnN0OwogCiAgICAgYm9vbCBoYXNPdmVyZmxvd0NvbnRy
b2xzKCkgY29uc3Q7CiAgICAgYm9vbCBpc1BvaW50SW5SZXNpemVDb250cm9sKGNvbnN0IEludFBv
aW50JiBhYnNvbHV0ZVBvaW50KSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCShyZXZpc2lvbiA4Nzg2NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMTcsNyArMzE3LDcgQEAgc3RhdGljIEludFJlY3QgY2xpcEJveChSZW5kZXJCb3gqIHJl
bmRlcgogewogICAgIEludFJlY3QgcmVzdWx0ID0gUGFpbnRJbmZvOjppbmZpbml0ZVJlY3QoKTsK
ICAgICBpZiAocmVuZGVyZXItPmhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICByZXN1bHQgPSBy
ZW5kZXJlci0+b3ZlcmZsb3dDbGlwUmVjdCgwLCAwKTsKKyAgICAgICAgcmVzdWx0ID0gcmVuZGVy
ZXItPm92ZXJmbG93Q2xpcFJlY3QoSW50UG9pbnQoKSk7CiAKICAgICBpZiAocmVuZGVyZXItPmhh
c0NsaXAoKSkKICAgICAgICAgcmVzdWx0LmludGVyc2VjdChyZW5kZXJlci0+Y2xpcFJlY3QoMCwg
MCkpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCShyZXZp
c2lvbiA4Nzg2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTExNzEsOSArMTE3MSw5IEBAIGludCBSZW5kZXJUYWJsZTo6Zmly
c3RMaW5lQm94QmFzZWxpbmUoKSAKICAgICByZXR1cm4gZmlyc3ROb25FbXB0eVNlY3Rpb24tPmxv
Z2ljYWxUb3AoKSArIGZpcnN0Tm9uRW1wdHlTZWN0aW9uLT5maXJzdExpbmVCb3hCYXNlbGluZSgp
OwogfQogCi1JbnRSZWN0IFJlbmRlclRhYmxlOjpvdmVyZmxvd0NsaXBSZWN0KGludCB0eCwgaW50
IHR5LCBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2YW5jeSByZWxldmFuY3kpCitJbnRSZWN0IFJl
bmRlclRhYmxlOjpvdmVyZmxvd0NsaXBSZWN0KGNvbnN0IEludFBvaW50JiBsb2NhdGlvbiwgT3Zl
cmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgcmVsZXZhbmN5KQogewotICAgIEludFJlY3QgcmVj
dCA9IFJlbmRlckJsb2NrOjpvdmVyZmxvd0NsaXBSZWN0KHR4LCB0eSwgcmVsZXZhbmN5KTsKKyAg
ICBJbnRSZWN0IHJlY3QgPSBSZW5kZXJCbG9jazo6b3ZlcmZsb3dDbGlwUmVjdChsb2NhdGlvbiwg
cmVsZXZhbmN5KTsKICAgICAKICAgICAvLyBJZiB3ZSBoYXZlIGEgY2FwdGlvbiwgZXhwYW5kIHRo
ZSBjbGlwIHRvIGluY2x1ZGUgdGhlIGNhcHRpb24uCiAgICAgLy8gRklYTUU6IFRlY2huaWNhbGx5
IHRoaXMgaXMgd3JvbmcsIGJ1dCBpdCdzIHZpcnR1YWxseSBpbXBvc3NpYmxlIHRvIGZpeCB0aGlz
CkBAIC0xMTg0LDEwICsxMTg0LDEwIEBAIEludFJlY3QgUmVuZGVyVGFibGU6Om92ZXJmbG93Q2xp
cFJlY3QoaW4KICAgICBpZiAobV9jYXB0aW9uKSB7CiAgICAgICAgIGlmIChzdHlsZSgpLT5pc0hv
cml6b250YWxXcml0aW5nTW9kZSgpKSB7CiAgICAgICAgICAgICByZWN0LnNldEhlaWdodChoZWln
aHQoKSk7Ci0gICAgICAgICAgICByZWN0LnNldFkodHkpOworICAgICAgICAgICAgcmVjdC5zZXRZ
KGxvY2F0aW9uLnkoKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICByZWN0LnNldFdp
ZHRoKHdpZHRoKCkpOwotICAgICAgICAgICAgcmVjdC5zZXRYKHR4KTsKKyAgICAgICAgICAgIHJl
Y3Quc2V0WChsb2NhdGlvbi54KCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMjAwLDcgKzEy
MDAsNyBAQCBib29sIFJlbmRlclRhYmxlOjpub2RlQXRQb2ludChjb25zdCBIaXRUCiAgICAgdHkg
Kz0geSgpOwogCiAgICAgLy8gQ2hlY2sga2lkcyBmaXJzdC4KLSAgICBpZiAoIWhhc092ZXJmbG93
Q2xpcCgpIHx8IG92ZXJmbG93Q2xpcFJlY3QodHgsIHR5KS5pbnRlcnNlY3RzKHJlc3VsdC5yZWN0
Rm9yUG9pbnQocG9pbnRJbkNvbnRhaW5lcikpKSB7CisgICAgaWYgKCFoYXNPdmVyZmxvd0NsaXAo
KSB8fCBvdmVyZmxvd0NsaXBSZWN0KEludFBvaW50KHR4LCB0eSkpLmludGVyc2VjdHMocmVzdWx0
LnJlY3RGb3JQb2ludChwb2ludEluQ29udGFpbmVyKSkpIHsKICAgICAgICAgZm9yIChSZW5kZXJP
YmplY3QqIGNoaWxkID0gbGFzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5wcmV2aW91
c1NpYmxpbmcoKSkgewogICAgICAgICAgICAgaWYgKGNoaWxkLT5pc0JveCgpICYmICF0b1JlbmRl
ckJveChjaGlsZCktPmhhc1NlbGZQYWludGluZ0xheWVyKCkgJiYgKGNoaWxkLT5pc1RhYmxlU2Vj
dGlvbigpIHx8IGNoaWxkID09IG1fY2FwdGlvbikpIHsKICAgICAgICAgICAgICAgICBJbnRQb2lu
dCBjaGlsZFBvaW50ID0gZmxpcEZvcldyaXRpbmdNb2RlKHRvUmVuZGVyQm94KGNoaWxkKSwgSW50
UG9pbnQodHgsIHR5KSwgUGFyZW50VG9DaGlsZEZsaXBwaW5nQWRqdXN0bWVudCk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAkocmV2aXNpb24gODc4NjUpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAt
MjMxLDcgKzIzMSw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2lj
YWxXaWR0aCgpOwogCi0gICAgdmlydHVhbCBJbnRSZWN0IG92ZXJmbG93Q2xpcFJlY3QoaW50IHR4
LCBpbnQgdHksIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IHJlbGV2YW5jeSA9IElnbm9y
ZU92ZXJsYXlTY3JvbGxiYXJTaXplKTsKKyAgICB2aXJ0dWFsIEludFJlY3Qgb3ZlcmZsb3dDbGlw
UmVjdChjb25zdCBJbnRQb2ludCYgbG9jYXRpb24sIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZh
bmN5ID0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpOwogCiAgICAgdmlydHVhbCB2b2lkIGFk
ZE92ZXJmbG93RnJvbUNoaWxkcmVuKCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCShyZXZpc2lvbiA4Nzg2NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMTUzLDcgKzExNTMsNyBAQCBib29sIFJlbmRlclRhYmxlU2VjdGlvbjo6bm9kZUF0UG9p
bnQoY29uCiAgICAgdHggKz0geCgpOwogICAgIHR5ICs9IHkoKTsKIAotICAgIGlmIChoYXNPdmVy
Zmxvd0NsaXAoKSAmJiAhb3ZlcmZsb3dDbGlwUmVjdCh0eCwgdHkpLmludGVyc2VjdHMocmVzdWx0
LnJlY3RGb3JQb2ludChwb2ludEluQ29udGFpbmVyKSkpCisgICAgaWYgKGhhc092ZXJmbG93Q2xp
cCgpICYmICFvdmVyZmxvd0NsaXBSZWN0KEludFBvaW50KHR4LCB0eSkpLmludGVyc2VjdHMocmVz
dWx0LnJlY3RGb3JQb2ludChwb2ludEluQ29udGFpbmVyKSkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGlmIChtX2hhc092ZXJmbG93aW5nQ2VsbCkgewpJbmRleDogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCShyZXZpc2lvbiA4Nzg2NSkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI5NCw3ICsyOTQsNyBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OnBhaW50KFBh
aW50SW5mbyYgcGFpCiAgICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+c2F2ZSgpOwogCiAgICAg
Ly8gQXBwbHkgaW5pdGlhbCB2aWV3cG9ydCBjbGlwIC0gbm90IGFmZmVjdGVkIGJ5IG92ZXJmbG93
IGhhbmRsaW5nCi0gICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+Y2xpcChvdmVyZmxvd0NsaXBS
ZWN0KGJvcmRlckJveE9yaWdpbkluQ29udGFpbmVyLngoKSwgYm9yZGVyQm94T3JpZ2luSW5Db250
YWluZXIueSgpKSk7CisgICAgY2hpbGRQYWludEluZm8uY29udGV4dC0+Y2xpcChvdmVyZmxvd0Ns
aXBSZWN0KGJvcmRlckJveE9yaWdpbkluQ29udGFpbmVyKSk7CiAKICAgICAvLyBDb252ZXJ0IGZy
b20gY29udGFpbmVyIG9mZnNldHMgKGh0bWwgcmVuZGVyZXJzKSB0byBhIHJlbGF0aXZlIHRyYW5z
Zm9ybSAoc3ZnIHJlbmRlcmVycykuCiAgICAgLy8gVHJhbnNmb3JtIGZyb20gb3VyIHBhaW50IGNv
bnRhaW5lcidzIGNvb3JkaW5hdGUgc3lzdGVtIHRvIG91ciBsb2NhbCBjb29yZHMuCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95954</attachid>
            <date>2011-06-03 13:17:47 -0700</date>
            <delta_ts>2011-06-03 15:05:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62032-20110603123601.patch</filename>
            <type>text/plain</type>
            <size>17024</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgICAgKHJldmlzaW9uIDg4MDM0KQorKysgU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nICAgICh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDQgQEAKKzIwMTEtMDYtMDMgIEVt
aWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnZlcnQgUmVuZGVyQm94OjpvdmVyZmxvd0NsaXBS
ZWN0IHRvIEludFBvaW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02MjAzMgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAg
ICAgICAgKiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omlu
c2lkZVZpc2libGVBcmVhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpJbnRSZWN0Ojpjb250cmFjdCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpub2Rl
QXRQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJCb3g6OnB1c2hDb250ZW50c0NsaXApOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyQm94OjpvdmVyZmxvd0NsaXBSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
Qm94Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVu
ZGVkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojpib3JkZXJUb3BMZWZ0KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0Ojpib3JkZXJTaXplKToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnNjcm9sbGJhclNpemUpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmNhbGN1
bGF0ZUNsaXBSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y2FsY3VsYXRl
UmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJlcGFpbnRCbG9ja1NlbGVj
dGlvbkdhcHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2xp
cEJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRhYmxlOjpvdmVyZmxvd0NsaXBSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRhYmxlOjpub2RlQXRQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRh
YmxlLmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246Om5vZGVBdFBvaW50KToKKyAgICAgICAg
KiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyU1ZHUm9vdDo6cGFpbnQpOgorCiAyMDExLTA2LTAxICBKZXIgTm9ibGUgIDxqZXIubm9ibGVA
YXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgICAocmV2aXNpb24gODc4NjUpCisrKyBTb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL0VkaXRvci5jcHAgICAod29ya2luZyBjb3B5KQpAQCAtMjU2OCw3ICsyNTY4
LDcgQEAgYm9vbCBFZGl0b3I6Omluc2lkZVZpc2libGVBcmVhKGNvbnN0IEludAogICAgIGlmICgh
KGNvbnRhaW5lci0+c3R5bGUoKS0+b3ZlcmZsb3dYKCkgPT0gT0hJRERFTiB8fCBjb250YWluZXIt
PnN0eWxlKCktPm92ZXJmbG93WSgpID09IE9ISURERU4pKQogICAgICAgICByZXR1cm4gdHJ1ZTsK
IAotICAgIEludFJlY3QgcmVjdEluUGFnZUNvb3JkcyA9IGNvbnRhaW5lci0+b3ZlcmZsb3dDbGlw
UmVjdCgwLCAwKTsKKyAgICBJbnRSZWN0IHJlY3RJblBhZ2VDb29yZHMgPSBjb250YWluZXItPm92
ZXJmbG93Q2xpcFJlY3QoSW50UG9pbnQoKSk7CiAgICAgSW50UmVjdCByZWN0SW5GcmFtZUNvb3Jk
cyA9IEludFJlY3QocmVuZGVyZXItPngoKSAqIC0xLCByZW5kZXJlci0+eSgpICogLTEsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWN0SW5QYWdlQ29vcmRzLndpZHRoKCks
IHJlY3RJblBhZ2VDb29yZHMuaGVpZ2h0KCkpOwogCkBAIC0yNTk3LDcgKzI1OTcsNyBAQCBib29s
IEVkaXRvcjo6aW5zaWRlVmlzaWJsZUFyZWEoUmFuZ2UqIHJhCiAgICAgaWYgKCEoY29udGFpbmVy
LT5zdHlsZSgpLT5vdmVyZmxvd1goKSA9PSBPSElEREVOIHx8IGNvbnRhaW5lci0+c3R5bGUoKS0+
b3ZlcmZsb3dZKCkgPT0gT0hJRERFTikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgSW50
UmVjdCByZWN0SW5QYWdlQ29vcmRzID0gY29udGFpbmVyLT5vdmVyZmxvd0NsaXBSZWN0KDAsIDAp
OworICAgIEludFJlY3QgcmVjdEluUGFnZUNvb3JkcyA9IGNvbnRhaW5lci0+b3ZlcmZsb3dDbGlw
UmVjdChJbnRQb2ludCgpKTsKICAgICBJbnRSZWN0IHJlY3RJbkZyYW1lQ29vcmRzID0gSW50UmVj
dChyZW5kZXJlci0+eCgpICogLTEsIHJlbmRlcmVyLT55KCkgKiAtMSwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHJlY3RJblBhZ2VDb29yZHMud2lkdGgoKSwgcmVjdEluUGFn
ZUNvb3Jkcy5oZWlnaHQoKSk7CiAgICAgSW50UmVjdCByZXN1bHRSZWN0ID0gcmFuZ2UtPmJvdW5k
aW5nQm94KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVj
dC5oICAocmV2aXNpb24gODc4NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9JbnRSZWN0LmggICh3b3JraW5nIGNvcHkpCkBAIC0xMTMsNiArMTEzLDggQEAgcHVibGljOgog
CiAgICAgdm9pZCBleHBhbmQoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBtX2xvY2F0aW9uICs9IHNp
emU7IH0KICAgICB2b2lkIGV4cGFuZChpbnQgZHcsIGludCBkaCkgeyBtX3NpemUuZXhwYW5kKGR3
LCBkaCk7IH0KKyAgICB2b2lkIGNvbnRyYWN0KGNvbnN0IEludFNpemUmIHNpemUpIHsgbV9zaXpl
IC09IHNpemU7IH0KKyAgICB2b2lkIGNvbnRyYWN0KGludCBkdywgaW50IGRoKSB7IG1fc2l6ZS5l
eHBhbmQoLWR3LCAtZGgpOyB9CiAKICAgICB2b2lkIHNoaWZ0WEVkZ2VUbyhpbnQgZWRnZSkKICAg
ICB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgICAgKHJl
dmlzaW9uIDg3ODY1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNw
cCAgICAod29ya2luZyBjb3B5KQpAQCAtMzkyNiw3ICszOTI2LDcgQEAgYm9vbCBSZW5kZXJCbG9j
azo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VAogICAgIGJvb2wgdXNlT3ZlcmZsb3dDbGlwID0gaGFz
T3ZlcmZsb3dDbGlwKCkgJiYgIWhhc1NlbGZQYWludGluZ0xheWVyKCk7CiAgICAgYm9vbCB1c2VD
bGlwID0gKGhhc0NvbnRyb2xDbGlwKCkgfHwgdXNlT3ZlcmZsb3dDbGlwKTsKICAgICBJbnRSZWN0
IGhpdFRlc3RBcmVhKHJlc3VsdC5yZWN0Rm9yUG9pbnQocG9pbnRJbkNvbnRhaW5lcikpOwotICAg
IGJvb2wgY2hlY2tDaGlsZHJlbiA9ICF1c2VDbGlwIHx8IChoYXNDb250cm9sQ2xpcCgpID8gY29u
dHJvbENsaXBSZWN0KHRvUG9pbnQobG9jYWxPZmZzZXQpKS5pbnRlcnNlY3RzKGhpdFRlc3RBcmVh
KSA6IG92ZXJmbG93Q2xpcFJlY3QobG9jYWxPZmZzZXQud2lkdGgoKSwgbG9jYWxPZmZzZXQuaGVp
Z2h0KCksIEluY2x1ZGVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkuaW50ZXJzZWN0cyhoaXRUZXN0QXJl
YSkpOworICAgIGJvb2wgY2hlY2tDaGlsZHJlbiA9ICF1c2VDbGlwIHx8IChoYXNDb250cm9sQ2xp
cCgpID8gY29udHJvbENsaXBSZWN0KHRvUG9pbnQobG9jYWxPZmZzZXQpKS5pbnRlcnNlY3RzKGhp
dFRlc3RBcmVhKSA6IG92ZXJmbG93Q2xpcFJlY3QodG9Qb2ludChsb2NhbE9mZnNldCksIEluY2x1
ZGVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkuaW50ZXJzZWN0cyhoaXRUZXN0QXJlYSkpOwogICAgIGlm
IChjaGVja0NoaWxkcmVuKSB7CiAgICAgICAgIC8vIEhpdCB0ZXN0IGRlc2NlbmRhbnRzIGZpcnN0
LgogICAgICAgICBJbnRTaXplIHNjcm9sbGVkT2Zmc2V0KGxvY2FsT2Zmc2V0KTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guY3BwICAocmV2aXNpb24gODc4NjUpCisrKyBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcCAgKHdvcmtpbmcgY29weSkKQEAg
LTExMTYsNyArMTExNiw3IEBAIGJvb2wgUmVuZGVyQm94OjpwdXNoQ29udGVudHNDbGlwKFBhaW50
SW4KICAgICAgICAgcGFpbnRPYmplY3QocGFpbnRJbmZvLCB0eCwgdHkpOwogICAgICAgICBwYWlu
dEluZm8ucGhhc2UgPSBQYWludFBoYXNlQ2hpbGRCbG9ja0JhY2tncm91bmRzOwogICAgIH0KLSAg
ICBJbnRSZWN0IGNsaXBSZWN0KGlzQ29udHJvbENsaXAgPyBjb250cm9sQ2xpcFJlY3QoSW50UG9p
bnQodHgsIHR5KSkgOiBvdmVyZmxvd0NsaXBSZWN0KHR4LCB0eSkpOworICAgIEludFJlY3QgY2xp
cFJlY3QoaXNDb250cm9sQ2xpcCA/IGNvbnRyb2xDbGlwUmVjdChJbnRQb2ludCh0eCwgdHkpKSA6
IG92ZXJmbG93Q2xpcFJlY3QoSW50UG9pbnQodHgsIHR5KSkpOwogICAgIHBhaW50SW5mby5jb250
ZXh0LT5zYXZlKCk7CiAgICAgaWYgKHN0eWxlKCktPmhhc0JvcmRlclJhZGl1cygpKQogICAgICAg
ICBwYWludEluZm8uY29udGV4dC0+YWRkUm91bmRlZFJlY3RDbGlwKHN0eWxlKCktPmdldFJvdW5k
ZWRCb3JkZXJGb3IoSW50UmVjdCh0eCwgdHksIHdpZHRoKCksIGhlaWdodCgpKSkpOwpAQCAtMTEz
NywyNiArMTEzNywxOCBAQCB2b2lkIFJlbmRlckJveDo6cG9wQ29udGVudHNDbGlwKFBhaW50SW5m
CiAgICAgICAgIHBhaW50SW5mby5waGFzZSA9IG9yaWdpbmFsUGhhc2U7CiB9CiAKLUludFJlY3Qg
UmVuZGVyQm94OjpvdmVyZmxvd0NsaXBSZWN0KGludCB0eCwgaW50IHR5LCBPdmVybGF5U2Nyb2xs
YmFyU2l6ZVJlbGV2YW5jeSByZWxldmFuY3kpCitJbnRSZWN0IFJlbmRlckJveDo6b3ZlcmZsb3dD
bGlwUmVjdChjb25zdCBJbnRQb2ludCYgbG9jYXRpb24sIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVs
ZXZhbmN5IHJlbGV2YW5jeSkKIHsKICAgICAvLyBGSVhNRTogV2hlbiBvdmVyZmxvdy1jbGlwIChD
U1MzKSBpcyBpbXBsZW1lbnRlZCwgd2UnbGwgb2J0YWluIHRoZSBwcm9wZXJ0eQogICAgIC8vIGhl
cmUuCiAKLSAgICBpbnQgYkxlZnQgPSBib3JkZXJMZWZ0KCk7Ci0gICAgaW50IGJUb3AgPSBib3Jk
ZXJUb3AoKTsKLQotICAgIGludCBjbGlwWCA9IHR4ICsgYkxlZnQ7Ci0gICAgaW50IGNsaXBZID0g
dHkgKyBiVG9wOwotICAgIGludCBjbGlwV2lkdGggPSB3aWR0aCgpIC0gYkxlZnQgLSBib3JkZXJS
aWdodCgpOwotICAgIGludCBjbGlwSGVpZ2h0ID0gaGVpZ2h0KCkgLSBiVG9wIC0gYm9yZGVyQm90
dG9tKCk7CisgICAgSW50UmVjdCBjbGlwUmVjdChsb2NhdGlvbiArIGJvcmRlclRvcExlZnQoKSwg
c2l6ZSgpIC0gYm9yZGVyU2l6ZSgpKTsKIAogICAgIC8vIFN1YnRyYWN0IG91dCBzY3JvbGxiYXJz
IGlmIHdlIGhhdmUgdGhlbS4KLSAgICBpZiAobGF5ZXIoKSkgewotICAgICAgICBjbGlwV2lkdGgg
LT0gbGF5ZXIoKS0+dmVydGljYWxTY3JvbGxiYXJXaWR0aChyZWxldmFuY3kpOwotICAgICAgICBj
bGlwSGVpZ2h0IC09IGxheWVyKCktPmhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQocmVsZXZhbmN5
KTsKLSAgICB9CisgICAgaWYgKGxheWVyKCkpCisgICAgICAgIGNsaXBSZWN0LmNvbnRyYWN0KGxh
eWVyKCktPnNjcm9sbGJhclNpemUocmVsZXZhbmN5KSk7CiAKLSAgICByZXR1cm4gSW50UmVjdChj
bGlwWCwgY2xpcFksIGNsaXBXaWR0aCwgY2xpcEhlaWdodCk7CisgICAgcmV0dXJuIGNsaXBSZWN0
OwogfQogCiBJbnRSZWN0IFJlbmRlckJveDo6Y2xpcFJlY3QoaW50IHR4LCBpbnQgdHkpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oICAgIChyZXZpc2lvbiA4Nzg2NSkKKysr
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaCAgICAod29ya2luZyBjb3B5KQpA
QCAtMzQ1LDcgKzM0NSw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIEludFJlY3QgbG9j
YWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBpbnQqIGV4dHJhV2lkdGhU
b0VuZE9mTGluZSA9IDApOwogCi0gICAgdmlydHVhbCBJbnRSZWN0IG92ZXJmbG93Q2xpcFJlY3Qo
aW50IHR4LCBpbnQgdHksIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IHJlbGV2YW5jeSA9
IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplKTsKKyAgICB2aXJ0dWFsIEludFJlY3Qgb3ZlcmZs
b3dDbGlwUmVjdChjb25zdCBJbnRQb2ludCYgbG9jYXRpb24sIE92ZXJsYXlTY3JvbGxiYXJTaXpl
UmVsZXZhbmN5ID0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpOwogICAgIEludFJlY3QgY2xp
cFJlY3QoaW50IHR4LCBpbnQgdHkpOwogICAgIHZpcnR1YWwgYm9vbCBoYXNDb250cm9sQ2xpcCgp
IGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBJbnRSZWN0IGNvbnRyb2xDbGlw
UmVjdChjb25zdCBJbnRQb2ludCYpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoKTsgfQpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3QuY3Bw
ICAgKHJldmlzaW9uIDg3ODY1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eE1vZGVsT2JqZWN0LmNwcCAgICh3b3JraW5nIGNvcHkpCkBAIC02NTUsNyArNjU1LDcgQEAgdm9p
ZCBSZW5kZXJCb3hNb2RlbE9iamVjdDo6cGFpbnRGaWxsTGF5ZQogICAgIEludFJlY3Qgc2Nyb2xs
ZWRQYWludFJlY3QgPSByZWN0OwogICAgIGlmIChjbGlwcGVkV2l0aExvY2FsU2Nyb2xsaW5nKSB7
CiAgICAgICAgIC8vIENsaXAgdG8gdGhlIG92ZXJmbG93IGFyZWEuCi0gICAgICAgIGNvbnRleHQt
PmNsaXAodG9SZW5kZXJCb3godGhpcyktPm92ZXJmbG93Q2xpcFJlY3QocmVjdC54KCksIHJlY3Qu
eSgpKSk7CisgICAgICAgIGNvbnRleHQtPmNsaXAodG9SZW5kZXJCb3godGhpcyktPm92ZXJmbG93
Q2xpcFJlY3QocmVjdC5sb2NhdGlvbigpKSk7CiAgICAgICAgIAogICAgICAgICAvLyBBZGp1c3Qg
dGhlIHBhaW50IHJlY3QgdG8gcmVmbGVjdCBhIHNjcm9sbGVkIGNvbnRlbnQgYm94IHdpdGggYm9y
ZGVycyBhdCB0aGUgZW5kcy4KICAgICAgICAgSW50U2l6ZSBvZmZzZXQgPSBsYXllcigpLT5zY3Jv
bGxlZENvbnRlbnRPZmZzZXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3hNb2RlbE9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oIChyZXZpc2lvbiA4Nzg2NSkKKysrIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5oICh3b3JraW5nIGNvcHkpCkBAIC05
MSw2ICs5MSw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBib3JkZXJBZnRlcigpIGNvbnN0
IHsgcmV0dXJuIHN0eWxlKCktPmJvcmRlckFmdGVyV2lkdGgoKTsgfQogICAgIHZpcnR1YWwgaW50
IGJvcmRlclN0YXJ0KCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+Ym9yZGVyU3RhcnRXaWR0aCgp
OyB9CiAgICAgdmlydHVhbCBpbnQgYm9yZGVyRW5kKCkgY29uc3QgeyByZXR1cm4gc3R5bGUoKS0+
Ym9yZGVyRW5kV2lkdGgoKTsgfQorICAgIHZpcnR1YWwgSW50U2l6ZSBib3JkZXJUb3BMZWZ0KCkg
Y29uc3QgeyByZXR1cm4gSW50U2l6ZShib3JkZXJMZWZ0KCksIGJvcmRlclRvcCgpKTsgfQorICAg
IHZpcnR1YWwgSW50U2l6ZSBib3JkZXJTaXplKCkgY29uc3QgeyByZXR1cm4gSW50U2l6ZShib3Jk
ZXJMZWZ0KCkgKyBib3JkZXJSaWdodCgpLCBib3JkZXJUb3AoKSArIGJvcmRlckJvdHRvbSgpKTsg
fQogCiAgICAgaW50IGJvcmRlckFuZFBhZGRpbmdIZWlnaHQoKSBjb25zdCB7IHJldHVybiBib3Jk
ZXJUb3AoKSArIGJvcmRlckJvdHRvbSgpICsgcGFkZGluZ1RvcCgpICsgcGFkZGluZ0JvdHRvbSgp
OyB9CiAgICAgaW50IGJvcmRlckFuZFBhZGRpbmdXaWR0aCgpIGNvbnN0IHsgcmV0dXJuIGJvcmRl
ckxlZnQoKSArIGJvcmRlclJpZ2h0KCkgKyBwYWRkaW5nTGVmdCgpICsgcGFkZGluZ1JpZ2h0KCk7
IH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcCAgICAocmV2
aXNpb24gODc4NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
ICAgICh3b3JraW5nIGNvcHkpCkBAIC0yMDAxLDYgKzIwMDEsMTEgQEAgaW50IFJlbmRlckxheWVy
Ojpob3Jpem9udGFsU2Nyb2xsYmFySGVpZwogICAgIHJldHVybiBtX2hCYXItPmhlaWdodCgpOwog
fQogCitJbnRTaXplIFJlbmRlckxheWVyOjpzY3JvbGxiYXJTaXplKE92ZXJsYXlTY3JvbGxiYXJT
aXplUmVsZXZhbmN5IHJlbGV2YW5jeSkgY29uc3QKK3sKKyAgICByZXR1cm4gSW50U2l6ZSh2ZXJ0
aWNhbFNjcm9sbGJhcldpZHRoKHJlbGV2YW5jeSksIGhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQo
cmVsZXZhbmN5KSk7Cit9CisKIEludFNpemUgUmVuZGVyTGF5ZXI6Om9mZnNldEZyb21SZXNpemVD
b3JuZXIoY29uc3QgSW50UG9pbnQmIGFic29sdXRlUG9pbnQpIGNvbnN0CiB7CiAgICAgLy8gQ3Vy
cmVudGx5IHRoZSByZXNpemUgY29ybmVyIGlzIGFsd2F5cyB0aGUgYm90dG9tIHJpZ2h0IGNvcm5l
cgpAQCAtMzM4OCw3ICszMzkzLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6Y2FsY3VsYXRlQ2xpcFJl
Y3RzKGNvbgogICAgICAgICB9CiAgICAgICAgIAogICAgICAgICBpZiAocmVuZGVyZXIoKS0+aGFz
T3ZlcmZsb3dDbGlwKCkpIHsKLSAgICAgICAgICAgIEludFJlY3QgbmV3T3ZlcmZsb3dDbGlwID0g
dG9SZW5kZXJCb3gocmVuZGVyZXIoKSktPm92ZXJmbG93Q2xpcFJlY3QoeCwgeSwgcmVsZXZhbmN5
KTsKKyAgICAgICAgICAgIEludFJlY3QgbmV3T3ZlcmZsb3dDbGlwID0gdG9SZW5kZXJCb3gocmVu
ZGVyZXIoKSktPm92ZXJmbG93Q2xpcFJlY3QoSW50UG9pbnQoeCwgeSksIHJlbGV2YW5jeSk7CiAg
ICAgICAgICAgICBjbGlwUmVjdHMuc2V0T3ZlcmZsb3dDbGlwUmVjdChpbnRlcnNlY3Rpb24obmV3
T3ZlcmZsb3dDbGlwLCBjbGlwUmVjdHMub3ZlcmZsb3dDbGlwUmVjdCgpKSk7CiAgICAgICAgICAg
ICBpZiAocmVuZGVyZXIoKS0+aXNQb3NpdGlvbmVkKCkgfHwgcmVuZGVyZXIoKS0+aXNSZWxQb3Np
dGlvbmVkKCkpCiAgICAgICAgICAgICAgICAgY2xpcFJlY3RzLnNldFBvc0NsaXBSZWN0KGludGVy
c2VjdGlvbihuZXdPdmVyZmxvd0NsaXAsIGNsaXBSZWN0cy5wb3NDbGlwUmVjdCgpKSk7CkBAIC0z
NDUzLDcgKzM0NTgsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpjYWxjdWxhdGVSZWN0cyhjb25zdCBS
CiAgICAgaWYgKHJlbmRlcmVyKCktPmhhc092ZXJmbG93Q2xpcCgpIHx8IHJlbmRlcmVyKCktPmhh
c0NsaXAoKSkgewogICAgICAgICAvLyBUaGlzIGxheWVyIGVzdGFibGlzaGVzIGEgY2xpcCBvZiBz
b21lIGtpbmQuCiAgICAgICAgIGlmIChyZW5kZXJlcigpLT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAg
ICAgICAgICAgIGZvcmVncm91bmRSZWN0LmludGVyc2VjdCh0b1JlbmRlckJveChyZW5kZXJlcigp
KS0+b3ZlcmZsb3dDbGlwUmVjdCh4LCB5LCByZWxldmFuY3kpKTsKKyAgICAgICAgICAgIGZvcmVn
cm91bmRSZWN0LmludGVyc2VjdCh0b1JlbmRlckJveChyZW5kZXJlcigpKS0+b3ZlcmZsb3dDbGlw
UmVjdChJbnRQb2ludCh4LCB5KSwgcmVsZXZhbmN5KSk7CiAgICAgICAgIGlmIChyZW5kZXJlcigp
LT5oYXNDbGlwKCkpIHsKICAgICAgICAgICAgIC8vIENsaXAgYXBwbGllcyB0byAqdXMqIGFzIHdl
bGwsIHNvIGdvIGFoZWFkIGFuZCB1cGRhdGUgdGhlIGRhbWFnZVJlY3QuCiAgICAgICAgICAgICBJ
bnRSZWN0IG5ld1Bvc0NsaXAgPSB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+Y2xpcFJlY3QoeCwg
eSk7CkBAIC0zNTI1LDcgKzM1MzAsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpyZXBhaW50QmxvY2tT
ZWxlY3Rpb25HCiAgICAgSW50UmVjdCByZWN0ID0gbV9ibG9ja1NlbGVjdGlvbkdhcHNCb3VuZHM7
CiAgICAgcmVjdC5tb3ZlKC1zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CiAgICAgaWYgKHJlbmRl
cmVyKCktPmhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICByZWN0LmludGVyc2VjdCh0b1JlbmRl
ckJveChyZW5kZXJlcigpKS0+b3ZlcmZsb3dDbGlwUmVjdCgwLCAwKSk7CisgICAgICAgIHJlY3Qu
aW50ZXJzZWN0KHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5vdmVyZmxvd0NsaXBSZWN0KEludFBv
aW50KCkpKTsKICAgICBpZiAocmVuZGVyZXIoKS0+aGFzQ2xpcCgpKQogICAgICAgICByZWN0Lmlu
dGVyc2VjdCh0b1JlbmRlckJveChyZW5kZXJlcigpKS0+Y2xpcFJlY3QoMCwgMCkpOwogICAgIGlm
ICghcmVjdC5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuaCAgKHJldmlzaW9uIDg3ODY1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmggICh3b3JraW5nIGNvcHkpCkBAIC0yNTUsNiArMjU1LDcgQEAgcHVibGljOgogCiAg
ICAgaW50IHZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgoT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFu
Y3kgPSBJZ25vcmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkgY29uc3Q7CiAgICAgaW50IGhvcml6b250
YWxTY3JvbGxiYXJIZWlnaHQoT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgPSBJZ25vcmVP
dmVybGF5U2Nyb2xsYmFyU2l6ZSkgY29uc3Q7CisgICAgSW50U2l6ZSBzY3JvbGxiYXJTaXplKE92
ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5ID0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUp
IGNvbnN0OwogCiAgICAgYm9vbCBoYXNPdmVyZmxvd0NvbnRyb2xzKCkgY29uc3Q7CiAgICAgYm9v
bCBpc1BvaW50SW5SZXNpemVDb250cm9sKGNvbnN0IEludFBvaW50JiBhYnNvbHV0ZVBvaW50KSBj
b25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJh
Y2tpbmcuY3BwIChyZXZpc2lvbiA4Nzg2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwICh3b3JraW5nIGNvcHkpCkBAIC0zMTcsNyArMzE3LDcgQEAg
c3RhdGljIEludFJlY3QgY2xpcEJveChSZW5kZXJCb3gqIHJlbmRlcgogewogICAgIEludFJlY3Qg
cmVzdWx0ID0gUGFpbnRJbmZvOjppbmZpbml0ZVJlY3QoKTsKICAgICBpZiAocmVuZGVyZXItPmhh
c092ZXJmbG93Q2xpcCgpKQotICAgICAgICByZXN1bHQgPSByZW5kZXJlci0+b3ZlcmZsb3dDbGlw
UmVjdCgwLCAwKTsKKyAgICAgICAgcmVzdWx0ID0gcmVuZGVyZXItPm92ZXJmbG93Q2xpcFJlY3Qo
SW50UG9pbnQoKSk7CiAKICAgICBpZiAocmVuZGVyZXItPmhhc0NsaXAoKSkKICAgICAgICAgcmVz
dWx0LmludGVyc2VjdChyZW5kZXJlci0+Y2xpcFJlY3QoMCwgMCkpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwICAgIChyZXZpc2lvbiA4Nzg2NSkKKysrIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgICAgKHdvcmtpbmcgY29weSkK
QEAgLTExNzEsOSArMTE3MSw5IEBAIGludCBSZW5kZXJUYWJsZTo6Zmlyc3RMaW5lQm94QmFzZWxp
bmUoKSAKICAgICByZXR1cm4gZmlyc3ROb25FbXB0eVNlY3Rpb24tPmxvZ2ljYWxUb3AoKSArIGZp
cnN0Tm9uRW1wdHlTZWN0aW9uLT5maXJzdExpbmVCb3hCYXNlbGluZSgpOwogfQogCi1JbnRSZWN0
IFJlbmRlclRhYmxlOjpvdmVyZmxvd0NsaXBSZWN0KGludCB0eCwgaW50IHR5LCBPdmVybGF5U2Ny
b2xsYmFyU2l6ZVJlbGV2YW5jeSByZWxldmFuY3kpCitJbnRSZWN0IFJlbmRlclRhYmxlOjpvdmVy
Zmxvd0NsaXBSZWN0KGNvbnN0IEludFBvaW50JiBsb2NhdGlvbiwgT3ZlcmxheVNjcm9sbGJhclNp
emVSZWxldmFuY3kgcmVsZXZhbmN5KQogewotICAgIEludFJlY3QgcmVjdCA9IFJlbmRlckJsb2Nr
OjpvdmVyZmxvd0NsaXBSZWN0KHR4LCB0eSwgcmVsZXZhbmN5KTsKKyAgICBJbnRSZWN0IHJlY3Qg
PSBSZW5kZXJCbG9jazo6b3ZlcmZsb3dDbGlwUmVjdChsb2NhdGlvbiwgcmVsZXZhbmN5KTsKICAg
ICAKICAgICAvLyBJZiB3ZSBoYXZlIGEgY2FwdGlvbiwgZXhwYW5kIHRoZSBjbGlwIHRvIGluY2x1
ZGUgdGhlIGNhcHRpb24uCiAgICAgLy8gRklYTUU6IFRlY2huaWNhbGx5IHRoaXMgaXMgd3Jvbmcs
IGJ1dCBpdCdzIHZpcnR1YWxseSBpbXBvc3NpYmxlIHRvIGZpeCB0aGlzCkBAIC0xMTg0LDEwICsx
MTg0LDEwIEBAIEludFJlY3QgUmVuZGVyVGFibGU6Om92ZXJmbG93Q2xpcFJlY3QoaW4KICAgICBp
ZiAobV9jYXB0aW9uKSB7CiAgICAgICAgIGlmIChzdHlsZSgpLT5pc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKSB7CiAgICAgICAgICAgICByZWN0LnNldEhlaWdodChoZWlnaHQoKSk7Ci0gICAgICAg
ICAgICByZWN0LnNldFkodHkpOworICAgICAgICAgICAgcmVjdC5zZXRZKGxvY2F0aW9uLnkoKSk7
CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICByZWN0LnNldFdpZHRoKHdpZHRoKCkpOwot
ICAgICAgICAgICAgcmVjdC5zZXRYKHR4KTsKKyAgICAgICAgICAgIHJlY3Quc2V0WChsb2NhdGlv
bi54KCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xMjAwLDcgKzEyMDAsNyBAQCBib29sIFJl
bmRlclRhYmxlOjpub2RlQXRQb2ludChjb25zdCBIaXRUCiAgICAgdHkgKz0geSgpOwogCiAgICAg
Ly8gQ2hlY2sga2lkcyBmaXJzdC4KLSAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8IG92ZXJm
bG93Q2xpcFJlY3QodHgsIHR5KS5pbnRlcnNlY3RzKHJlc3VsdC5yZWN0Rm9yUG9pbnQocG9pbnRJ
bkNvbnRhaW5lcikpKSB7CisgICAgaWYgKCFoYXNPdmVyZmxvd0NsaXAoKSB8fCBvdmVyZmxvd0Ns
aXBSZWN0KEludFBvaW50KHR4LCB0eSkpLmludGVyc2VjdHMocmVzdWx0LnJlY3RGb3JQb2ludChw
b2ludEluQ29udGFpbmVyKSkpIHsKICAgICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNoaWxkID0g
bGFzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5wcmV2aW91c1NpYmxpbmcoKSkgewog
ICAgICAgICAgICAgaWYgKGNoaWxkLT5pc0JveCgpICYmICF0b1JlbmRlckJveChjaGlsZCktPmhh
c1NlbGZQYWludGluZ0xheWVyKCkgJiYgKGNoaWxkLT5pc1RhYmxlU2VjdGlvbigpIHx8IGNoaWxk
ID09IG1fY2FwdGlvbikpIHsKICAgICAgICAgICAgICAgICBJbnRQb2ludCBjaGlsZFBvaW50ID0g
ZmxpcEZvcldyaXRpbmdNb2RlKHRvUmVuZGVyQm94KGNoaWxkKSwgSW50UG9pbnQodHgsIHR5KSwg
UGFyZW50VG9DaGlsZEZsaXBwaW5nQWRqdXN0bWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGUuaCAgKHJldmlzaW9uIDg3ODY1KQorKysgU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlLmggICh3b3JraW5nIGNvcHkpCkBAIC0yMzEsNyArMjMxLDcg
QEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlTG9naWNhbFdpZHRoKCk7CiAK
LSAgICB2aXJ0dWFsIEludFJlY3Qgb3ZlcmZsb3dDbGlwUmVjdChpbnQgdHgsIGludCB0eSwgT3Zl
cmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgcmVsZXZhbmN5ID0gSWdub3JlT3ZlcmxheVNjcm9s
bGJhclNpemUpOworICAgIHZpcnR1YWwgSW50UmVjdCBvdmVyZmxvd0NsaXBSZWN0KGNvbnN0IElu
dFBvaW50JiBsb2NhdGlvbiwgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgPSBJZ25vcmVP
dmVybGF5U2Nyb2xsYmFyU2l6ZSk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkT3ZlcmZsb3dGcm9t
Q2hpbGRyZW4oKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
U2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlU2VjdGlvbi5jcHAgKHJldmlzaW9uIDg3ODY1KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgKHdvcmtpbmcgY29weSkKQEAgLTExNTMsNyAr
MTE1Myw3IEBAIGJvb2wgUmVuZGVyVGFibGVTZWN0aW9uOjpub2RlQXRQb2ludChjb24KICAgICB0
eCArPSB4KCk7CiAgICAgdHkgKz0geSgpOwogCi0gICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpICYm
ICFvdmVyZmxvd0NsaXBSZWN0KHR4LCB0eSkuaW50ZXJzZWN0cyhyZXN1bHQucmVjdEZvclBvaW50
KHBvaW50SW5Db250YWluZXIpKSkKKyAgICBpZiAoaGFzT3ZlcmZsb3dDbGlwKCkgJiYgIW92ZXJm
bG93Q2xpcFJlY3QoSW50UG9pbnQodHgsIHR5KSkuaW50ZXJzZWN0cyhyZXN1bHQucmVjdEZvclBv
aW50KHBvaW50SW5Db250YWluZXIpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KG1faGFzT3ZlcmZsb3dpbmdDZWxsKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgIChyZXZpc2lvbiA4Nzg2NSkKKysrIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgICh3b3JraW5nIGNvcHkpCkBA
IC0yOTQsNyArMjk0LDcgQEAgdm9pZCBSZW5kZXJTVkdSb290OjpwYWludChQYWludEluZm8mIHBh
aQogICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPnNhdmUoKTsKIAogICAgIC8vIEFwcGx5IGlu
aXRpYWwgdmlld3BvcnQgY2xpcCAtIG5vdCBhZmZlY3RlZCBieSBvdmVyZmxvdyBoYW5kbGluZwot
ICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPmNsaXAob3ZlcmZsb3dDbGlwUmVjdChib3JkZXJC
b3hPcmlnaW5JbkNvbnRhaW5lci54KCksIGJvcmRlckJveE9yaWdpbkluQ29udGFpbmVyLnkoKSkp
OworICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPmNsaXAob3ZlcmZsb3dDbGlwUmVjdChib3Jk
ZXJCb3hPcmlnaW5JbkNvbnRhaW5lcikpOwogCiAgICAgLy8gQ29udmVydCBmcm9tIGNvbnRhaW5l
ciBvZmZzZXRzIChodG1sIHJlbmRlcmVycykgdG8gYSByZWxhdGl2ZSB0cmFuc2Zvcm0gKHN2ZyBy
ZW5kZXJlcnMpLgogICAgIC8vIFRyYW5zZm9ybSBmcm9tIG91ciBwYWludCBjb250YWluZXIncyBj
b29yZGluYXRlIHN5c3RlbSB0byBvdXIgbG9jYWwgY29vcmRzLgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95970</attachid>
            <date>2011-06-03 15:05:40 -0700</date>
            <delta_ts>2011-06-03 16:08:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-62032-20110603150539.patch</filename>
            <type>text/plain</type>
            <size>14870</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MDY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDYtMDMgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENvbnZlcnQgUmVuZGVyQm94OjpvdmVyZmxvd0NsaXBSZWN0IHRv
IEludFBvaW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD02MjAzMgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBlZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2lkZVZp
c2libGVBcmVhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0Lmg6CisgICAg
ICAgIChXZWJDb3JlOjpJbnRSZWN0Ojpjb250cmFjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpub2RlQXRQb2lu
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJCb3g6OnB1c2hDb250ZW50c0NsaXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
Qm94OjpvdmVyZmxvd0NsaXBSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJMYXllcjo6Y2FsY3VsYXRlUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnJlcGFpbnRCbG9ja1NlbGVjdGlvbkdhcHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2xpcEJveCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxl
OjpvdmVyZmxvd0NsaXBSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpub2Rl
QXRQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZVNlY3Rpb246Om5vZGVBdFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6cGFpbnQp
OgorCiAyMDExLTA2LTAzICBMZXZpIFdlaW50cmF1YiAgPGxldml3QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAJKHJldmlzaW9uIDg4MDQ2KQorKysgU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0
b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNTY4LDcgKzI1NjgsNyBAQCBib29sIEVkaXRvcjo6
aW5zaWRlVmlzaWJsZUFyZWEoY29uc3QgSW50CiAgICAgaWYgKCEoY29udGFpbmVyLT5zdHlsZSgp
LT5vdmVyZmxvd1goKSA9PSBPSElEREVOIHx8IGNvbnRhaW5lci0+c3R5bGUoKS0+b3ZlcmZsb3dZ
KCkgPT0gT0hJRERFTikpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgSW50UmVjdCByZWN0
SW5QYWdlQ29vcmRzID0gY29udGFpbmVyLT5vdmVyZmxvd0NsaXBSZWN0KDAsIDApOworICAgIElu
dFJlY3QgcmVjdEluUGFnZUNvb3JkcyA9IGNvbnRhaW5lci0+b3ZlcmZsb3dDbGlwUmVjdChJbnRQ
b2ludCgpKTsKICAgICBJbnRSZWN0IHJlY3RJbkZyYW1lQ29vcmRzID0gSW50UmVjdChyZW5kZXJl
ci0+eCgpICogLTEsIHJlbmRlcmVyLT55KCkgKiAtMSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJlY3RJblBhZ2VDb29yZHMud2lkdGgoKSwgcmVjdEluUGFnZUNvb3Jkcy5o
ZWlnaHQoKSk7CiAKQEAgLTI1OTcsNyArMjU5Nyw3IEBAIGJvb2wgRWRpdG9yOjppbnNpZGVWaXNp
YmxlQXJlYShSYW5nZSogcmEKICAgICBpZiAoIShjb250YWluZXItPnN0eWxlKCktPm92ZXJmbG93
WCgpID09IE9ISURERU4gfHwgY29udGFpbmVyLT5zdHlsZSgpLT5vdmVyZmxvd1koKSA9PSBPSElE
REVOKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBJbnRSZWN0IHJlY3RJblBhZ2VDb29y
ZHMgPSBjb250YWluZXItPm92ZXJmbG93Q2xpcFJlY3QoMCwgMCk7CisgICAgSW50UmVjdCByZWN0
SW5QYWdlQ29vcmRzID0gY29udGFpbmVyLT5vdmVyZmxvd0NsaXBSZWN0KEludFBvaW50KCkpOwog
ICAgIEludFJlY3QgcmVjdEluRnJhbWVDb29yZHMgPSBJbnRSZWN0KHJlbmRlcmVyLT54KCkgKiAt
MSwgcmVuZGVyZXItPnkoKSAqIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmVjdEluUGFnZUNvb3Jkcy53aWR0aCgpLCByZWN0SW5QYWdlQ29vcmRzLmhlaWdodCgpKTsK
ICAgICBJbnRSZWN0IHJlc3VsdFJlY3QgPSByYW5nZS0+Ym91bmRpbmdCb3goKTsKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgJKHJldmlzaW9uIDg4MDQ2
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMTMsNiArMTEzLDggQEAgcHVibGljOgogCiAgICAgdm9pZCBleHBhbmQoY29u
c3QgSW50U2l6ZSYgc2l6ZSkgeyBtX2xvY2F0aW9uICs9IHNpemU7IH0KICAgICB2b2lkIGV4cGFu
ZChpbnQgZHcsIGludCBkaCkgeyBtX3NpemUuZXhwYW5kKGR3LCBkaCk7IH0KKyAgICB2b2lkIGNv
bnRyYWN0KGNvbnN0IEludFNpemUmIHNpemUpIHsgbV9zaXplIC09IHNpemU7IH0KKyAgICB2b2lk
IGNvbnRyYWN0KGludCBkdywgaW50IGRoKSB7IG1fc2l6ZS5leHBhbmQoLWR3LCAtZGgpOyB9CiAK
ICAgICB2b2lkIHNoaWZ0WEVkZ2VUbyhpbnQgZWRnZSkKICAgICB7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDg4MDQ2KQorKysgU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzky
Niw3ICszOTI2LDcgQEAgYm9vbCBSZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VAog
ICAgIGJvb2wgdXNlT3ZlcmZsb3dDbGlwID0gaGFzT3ZlcmZsb3dDbGlwKCkgJiYgIWhhc1NlbGZQ
YWludGluZ0xheWVyKCk7CiAgICAgYm9vbCB1c2VDbGlwID0gKGhhc0NvbnRyb2xDbGlwKCkgfHwg
dXNlT3ZlcmZsb3dDbGlwKTsKICAgICBJbnRSZWN0IGhpdFRlc3RBcmVhKHJlc3VsdC5yZWN0Rm9y
UG9pbnQocG9pbnRJbkNvbnRhaW5lcikpOwotICAgIGJvb2wgY2hlY2tDaGlsZHJlbiA9ICF1c2VD
bGlwIHx8IChoYXNDb250cm9sQ2xpcCgpID8gY29udHJvbENsaXBSZWN0KHRvUG9pbnQobG9jYWxP
ZmZzZXQpKS5pbnRlcnNlY3RzKGhpdFRlc3RBcmVhKSA6IG92ZXJmbG93Q2xpcFJlY3QobG9jYWxP
ZmZzZXQud2lkdGgoKSwgbG9jYWxPZmZzZXQuaGVpZ2h0KCksIEluY2x1ZGVPdmVybGF5U2Nyb2xs
YmFyU2l6ZSkuaW50ZXJzZWN0cyhoaXRUZXN0QXJlYSkpOworICAgIGJvb2wgY2hlY2tDaGlsZHJl
biA9ICF1c2VDbGlwIHx8IChoYXNDb250cm9sQ2xpcCgpID8gY29udHJvbENsaXBSZWN0KHRvUG9p
bnQobG9jYWxPZmZzZXQpKS5pbnRlcnNlY3RzKGhpdFRlc3RBcmVhKSA6IG92ZXJmbG93Q2xpcFJl
Y3QodG9Qb2ludChsb2NhbE9mZnNldCksIEluY2x1ZGVPdmVybGF5U2Nyb2xsYmFyU2l6ZSkuaW50
ZXJzZWN0cyhoaXRUZXN0QXJlYSkpOwogICAgIGlmIChjaGVja0NoaWxkcmVuKSB7CiAgICAgICAg
IC8vIEhpdCB0ZXN0IGRlc2NlbmRhbnRzIGZpcnN0LgogICAgICAgICBJbnRTaXplIHNjcm9sbGVk
T2Zmc2V0KGxvY2FsT2Zmc2V0KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guY3BwCShyZXZpc2lvbiA4ODA0NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMTE0LDcgKzExMTQsNyBAQCBib29sIFJlbmRl
ckJveDo6cHVzaENvbnRlbnRzQ2xpcChQYWludEluCiAgICAgICAgIHBhaW50T2JqZWN0KHBhaW50
SW5mbywgdHgsIHR5KTsKICAgICAgICAgcGFpbnRJbmZvLnBoYXNlID0gUGFpbnRQaGFzZUNoaWxk
QmxvY2tCYWNrZ3JvdW5kczsKICAgICB9Ci0gICAgSW50UmVjdCBjbGlwUmVjdChpc0NvbnRyb2xD
bGlwID8gY29udHJvbENsaXBSZWN0KEludFBvaW50KHR4LCB0eSkpIDogb3ZlcmZsb3dDbGlwUmVj
dCh0eCwgdHkpKTsKKyAgICBJbnRSZWN0IGNsaXBSZWN0KGlzQ29udHJvbENsaXAgPyBjb250cm9s
Q2xpcFJlY3QoSW50UG9pbnQodHgsIHR5KSkgOiBvdmVyZmxvd0NsaXBSZWN0KEludFBvaW50KHR4
LCB0eSkpKTsKICAgICBwYWludEluZm8uY29udGV4dC0+c2F2ZSgpOwogICAgIGlmIChzdHlsZSgp
LT5oYXNCb3JkZXJSYWRpdXMoKSkKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQtPmFkZFJvdW5k
ZWRSZWN0Q2xpcChzdHlsZSgpLT5nZXRSb3VuZGVkQm9yZGVyRm9yKEludFJlY3QodHgsIHR5LCB3
aWR0aCgpLCBoZWlnaHQoKSkpKTsKQEAgLTExMzUsMjYgKzExMzUsMTkgQEAgdm9pZCBSZW5kZXJC
b3g6OnBvcENvbnRlbnRzQ2xpcChQYWludEluZgogICAgICAgICBwYWludEluZm8ucGhhc2UgPSBv
cmlnaW5hbFBoYXNlOwogfQogCi1JbnRSZWN0IFJlbmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdChp
bnQgdHgsIGludCB0eSwgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgcmVsZXZhbmN5KQor
SW50UmVjdCBSZW5kZXJCb3g6Om92ZXJmbG93Q2xpcFJlY3QoY29uc3QgSW50UG9pbnQmIGxvY2F0
aW9uLCBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2YW5jeSByZWxldmFuY3kpCiB7CiAgICAgLy8g
RklYTUU6IFdoZW4gb3ZlcmZsb3ctY2xpcCAoQ1NTMykgaXMgaW1wbGVtZW50ZWQsIHdlJ2xsIG9i
dGFpbiB0aGUgcHJvcGVydHkKICAgICAvLyBoZXJlLgotCi0gICAgaW50IGJMZWZ0ID0gYm9yZGVy
TGVmdCgpOwotICAgIGludCBiVG9wID0gYm9yZGVyVG9wKCk7Ci0KLSAgICBpbnQgY2xpcFggPSB0
eCArIGJMZWZ0OwotICAgIGludCBjbGlwWSA9IHR5ICsgYlRvcDsKLSAgICBpbnQgY2xpcFdpZHRo
ID0gd2lkdGgoKSAtIGJMZWZ0IC0gYm9yZGVyUmlnaHQoKTsKLSAgICBpbnQgY2xpcEhlaWdodCA9
IGhlaWdodCgpIC0gYlRvcCAtIGJvcmRlckJvdHRvbSgpOworICAgIEludFJlY3QgY2xpcFJlY3Qo
bG9jYXRpb24gKyBJbnRTaXplKGJvcmRlckxlZnQoKSwgYm9yZGVyVG9wKCkpLAorICAgICAgICBz
aXplKCkgLSBJbnRTaXplKGJvcmRlckxlZnQoKSArIGJvcmRlclJpZ2h0KCksIGJvcmRlclRvcCgp
ICsgYm9yZGVyQm90dG9tKCkpKTsKIAogICAgIC8vIFN1YnRyYWN0IG91dCBzY3JvbGxiYXJzIGlm
IHdlIGhhdmUgdGhlbS4KLSAgICBpZiAobGF5ZXIoKSkgewotICAgICAgICBjbGlwV2lkdGggLT0g
bGF5ZXIoKS0+dmVydGljYWxTY3JvbGxiYXJXaWR0aChyZWxldmFuY3kpOwotICAgICAgICBjbGlw
SGVpZ2h0IC09IGxheWVyKCktPmhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQocmVsZXZhbmN5KTsK
LSAgICB9CisgICAgaWYgKGxheWVyKCkpCisgICAgICAgIGNsaXBSZWN0LmNvbnRyYWN0KGxheWVy
KCktPnZlcnRpY2FsU2Nyb2xsYmFyV2lkdGgocmVsZXZhbmN5KSwKKyAgICAgICAgICAgIGxheWVy
KCktPmhvcml6b250YWxTY3JvbGxiYXJIZWlnaHQocmVsZXZhbmN5KSk7CiAKLSAgICByZXR1cm4g
SW50UmVjdChjbGlwWCwgY2xpcFksIGNsaXBXaWR0aCwgY2xpcEhlaWdodCk7CisgICAgcmV0dXJu
IGNsaXBSZWN0OwogfQogCiBJbnRSZWN0IFJlbmRlckJveDo6Y2xpcFJlY3QoaW50IHR4LCBpbnQg
dHkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCShyZXZpc2lvbiA4ODA0
NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkod29ya2luZyBjb3B5
KQpAQCAtMzQ1LDcgKzM0NSw3IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIEludFJlY3Qg
bG9jYWxDYXJldFJlY3QoSW5saW5lQm94KiwgaW50IGNhcmV0T2Zmc2V0LCBpbnQqIGV4dHJhV2lk
dGhUb0VuZE9mTGluZSA9IDApOwogCi0gICAgdmlydHVhbCBJbnRSZWN0IG92ZXJmbG93Q2xpcFJl
Y3QoaW50IHR4LCBpbnQgdHksIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IHJlbGV2YW5j
eSA9IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplKTsKKyAgICB2aXJ0dWFsIEludFJlY3Qgb3Zl
cmZsb3dDbGlwUmVjdChjb25zdCBJbnRQb2ludCYgbG9jYXRpb24sIE92ZXJsYXlTY3JvbGxiYXJT
aXplUmVsZXZhbmN5ID0gSWdub3JlT3ZlcmxheVNjcm9sbGJhclNpemUpOwogICAgIEludFJlY3Qg
Y2xpcFJlY3QoaW50IHR4LCBpbnQgdHkpOwogICAgIHZpcnR1YWwgYm9vbCBoYXNDb250cm9sQ2xp
cCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBJbnRSZWN0IGNvbnRyb2xD
bGlwUmVjdChjb25zdCBJbnRQb2ludCYpIGNvbnN0IHsgcmV0dXJuIEludFJlY3QoKTsgfQpJbmRl
eDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCShyZXZpc2lvbiA4ODA0NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3hNb2RlbE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY1NSw3ICs2NTUsNyBAQCB2b2lk
IFJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllCiAgICAgSW50UmVjdCBzY3JvbGxl
ZFBhaW50UmVjdCA9IHJlY3Q7CiAgICAgaWYgKGNsaXBwZWRXaXRoTG9jYWxTY3JvbGxpbmcpIHsK
ICAgICAgICAgLy8gQ2xpcCB0byB0aGUgb3ZlcmZsb3cgYXJlYS4KLSAgICAgICAgY29udGV4dC0+
Y2xpcCh0b1JlbmRlckJveCh0aGlzKS0+b3ZlcmZsb3dDbGlwUmVjdChyZWN0LngoKSwgcmVjdC55
KCkpKTsKKyAgICAgICAgY29udGV4dC0+Y2xpcCh0b1JlbmRlckJveCh0aGlzKS0+b3ZlcmZsb3dD
bGlwUmVjdChyZWN0LmxvY2F0aW9uKCkpKTsKICAgICAgICAgCiAgICAgICAgIC8vIEFkanVzdCB0
aGUgcGFpbnQgcmVjdCB0byByZWZsZWN0IGEgc2Nyb2xsZWQgY29udGVudCBib3ggd2l0aCBib3Jk
ZXJzIGF0IHRoZSBlbmRzLgogICAgICAgICBJbnRTaXplIG9mZnNldCA9IGxheWVyKCktPnNjcm9s
bGVkQ29udGVudE9mZnNldCgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXIuY3BwCShyZXZpc2lvbiA4ODA0NikKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzNzQsNyArMzM3NCw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyhjb24KICAgICAgICAgfQogICAgICAgICAK
ICAgICAgICAgaWYgKHJlbmRlcmVyKCktPmhhc092ZXJmbG93Q2xpcCgpKSB7Ci0gICAgICAgICAg
ICBJbnRSZWN0IG5ld092ZXJmbG93Q2xpcCA9IHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5vdmVy
Zmxvd0NsaXBSZWN0KG9mZnNldC54KCksIG9mZnNldC55KCksIHJlbGV2YW5jeSk7CisgICAgICAg
ICAgICBJbnRSZWN0IG5ld092ZXJmbG93Q2xpcCA9IHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5v
dmVyZmxvd0NsaXBSZWN0KG9mZnNldCwgcmVsZXZhbmN5KTsKICAgICAgICAgICAgIGNsaXBSZWN0
cy5zZXRPdmVyZmxvd0NsaXBSZWN0KGludGVyc2VjdGlvbihuZXdPdmVyZmxvd0NsaXAsIGNsaXBS
ZWN0cy5vdmVyZmxvd0NsaXBSZWN0KCkpKTsKICAgICAgICAgICAgIGlmIChyZW5kZXJlcigpLT5p
c1Bvc2l0aW9uZWQoKSB8fCByZW5kZXJlcigpLT5pc1JlbFBvc2l0aW9uZWQoKSkKICAgICAgICAg
ICAgICAgICBjbGlwUmVjdHMuc2V0UG9zQ2xpcFJlY3QoaW50ZXJzZWN0aW9uKG5ld092ZXJmbG93
Q2xpcCwgY2xpcFJlY3RzLnBvc0NsaXBSZWN0KCkpKTsKQEAgLTM0MzgsNyArMzQzOCw3IEBAIHZv
aWQgUmVuZGVyTGF5ZXI6OmNhbGN1bGF0ZVJlY3RzKGNvbnN0IFIKICAgICBpZiAocmVuZGVyZXIo
KS0+aGFzT3ZlcmZsb3dDbGlwKCkgfHwgcmVuZGVyZXIoKS0+aGFzQ2xpcCgpKSB7CiAgICAgICAg
IC8vIFRoaXMgbGF5ZXIgZXN0YWJsaXNoZXMgYSBjbGlwIG9mIHNvbWUga2luZC4KICAgICAgICAg
aWYgKHJlbmRlcmVyKCktPmhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICAgICAgZm9yZWdyb3Vu
ZFJlY3QuaW50ZXJzZWN0KHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5vdmVyZmxvd0NsaXBSZWN0
KG9mZnNldC54KCksIG9mZnNldC55KCksIHJlbGV2YW5jeSkpOworICAgICAgICAgICAgZm9yZWdy
b3VuZFJlY3QuaW50ZXJzZWN0KHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5vdmVyZmxvd0NsaXBS
ZWN0KG9mZnNldCwgcmVsZXZhbmN5KSk7CiAgICAgICAgIGlmIChyZW5kZXJlcigpLT5oYXNDbGlw
KCkpIHsKICAgICAgICAgICAgIC8vIENsaXAgYXBwbGllcyB0byAqdXMqIGFzIHdlbGwsIHNvIGdv
IGFoZWFkIGFuZCB1cGRhdGUgdGhlIGRhbWFnZVJlY3QuCiAgICAgICAgICAgICBJbnRSZWN0IG5l
d1Bvc0NsaXAgPSB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+Y2xpcFJlY3Qob2Zmc2V0LngoKSwg
b2Zmc2V0LnkoKSk7CkBAIC0zNTEwLDcgKzM1MTAsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpyZXBh
aW50QmxvY2tTZWxlY3Rpb25HCiAgICAgSW50UmVjdCByZWN0ID0gbV9ibG9ja1NlbGVjdGlvbkdh
cHNCb3VuZHM7CiAgICAgcmVjdC5tb3ZlKC1zY3JvbGxlZENvbnRlbnRPZmZzZXQoKSk7CiAgICAg
aWYgKHJlbmRlcmVyKCktPmhhc092ZXJmbG93Q2xpcCgpKQotICAgICAgICByZWN0LmludGVyc2Vj
dCh0b1JlbmRlckJveChyZW5kZXJlcigpKS0+b3ZlcmZsb3dDbGlwUmVjdCgwLCAwKSk7CisgICAg
ICAgIHJlY3QuaW50ZXJzZWN0KHRvUmVuZGVyQm94KHJlbmRlcmVyKCkpLT5vdmVyZmxvd0NsaXBS
ZWN0KEludFBvaW50KCkpKTsKICAgICBpZiAocmVuZGVyZXIoKS0+aGFzQ2xpcCgpKQogICAgICAg
ICByZWN0LmludGVyc2VjdCh0b1JlbmRlckJveChyZW5kZXJlcigpKS0+Y2xpcFJlY3QoMCwgMCkp
OwogICAgIGlmICghcmVjdC5pc0VtcHR5KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkocmV2aXNpb24gODgwNDYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMzE2LDcgKzMxNiw3IEBAIHN0YXRpYyBJbnRSZWN0IGNsaXBCb3goUmVuZGVyQm94KiBy
ZW5kZXIKIHsKICAgICBJbnRSZWN0IHJlc3VsdCA9IFBhaW50SW5mbzo6aW5maW5pdGVSZWN0KCk7
CiAgICAgaWYgKHJlbmRlcmVyLT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAgcmVzdWx0ID0g
cmVuZGVyZXItPm92ZXJmbG93Q2xpcFJlY3QoMCwgMCk7CisgICAgICAgIHJlc3VsdCA9IHJlbmRl
cmVyLT5vdmVyZmxvd0NsaXBSZWN0KEludFBvaW50KCkpOwogCiAgICAgaWYgKHJlbmRlcmVyLT5o
YXNDbGlwKCkpCiAgICAgICAgIHJlc3VsdC5pbnRlcnNlY3QocmVuZGVyZXItPmNsaXBSZWN0KDAs
IDApKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAkocmV2
aXNpb24gODgwNDYpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTcxLDkgKzExNzEsOSBAQCBpbnQgUmVuZGVyVGFibGU6OmZp
cnN0TGluZUJveEJhc2VsaW5lKCkgCiAgICAgcmV0dXJuIGZpcnN0Tm9uRW1wdHlTZWN0aW9uLT5s
b2dpY2FsVG9wKCkgKyBmaXJzdE5vbkVtcHR5U2VjdGlvbi0+Zmlyc3RMaW5lQm94QmFzZWxpbmUo
KTsKIH0KIAotSW50UmVjdCBSZW5kZXJUYWJsZTo6b3ZlcmZsb3dDbGlwUmVjdChpbnQgdHgsIGlu
dCB0eSwgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgcmVsZXZhbmN5KQorSW50UmVjdCBS
ZW5kZXJUYWJsZTo6b3ZlcmZsb3dDbGlwUmVjdChjb25zdCBJbnRQb2ludCYgbG9jYXRpb24sIE92
ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IHJlbGV2YW5jeSkKIHsKLSAgICBJbnRSZWN0IHJl
Y3QgPSBSZW5kZXJCbG9jazo6b3ZlcmZsb3dDbGlwUmVjdCh0eCwgdHksIHJlbGV2YW5jeSk7Cisg
ICAgSW50UmVjdCByZWN0ID0gUmVuZGVyQmxvY2s6Om92ZXJmbG93Q2xpcFJlY3QobG9jYXRpb24s
IHJlbGV2YW5jeSk7CiAgICAgCiAgICAgLy8gSWYgd2UgaGF2ZSBhIGNhcHRpb24sIGV4cGFuZCB0
aGUgY2xpcCB0byBpbmNsdWRlIHRoZSBjYXB0aW9uLgogICAgIC8vIEZJWE1FOiBUZWNobmljYWxs
eSB0aGlzIGlzIHdyb25nLCBidXQgaXQncyB2aXJ0dWFsbHkgaW1wb3NzaWJsZSB0byBmaXggdGhp
cwpAQCAtMTE4NCwxMCArMTE4NCwxMCBAQCBJbnRSZWN0IFJlbmRlclRhYmxlOjpvdmVyZmxvd0Ns
aXBSZWN0KGluCiAgICAgaWYgKG1fY2FwdGlvbikgewogICAgICAgICBpZiAoc3R5bGUoKS0+aXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSkgewogICAgICAgICAgICAgcmVjdC5zZXRIZWlnaHQoaGVp
Z2h0KCkpOwotICAgICAgICAgICAgcmVjdC5zZXRZKHR5KTsKKyAgICAgICAgICAgIHJlY3Quc2V0
WShsb2NhdGlvbi55KCkpOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgcmVjdC5zZXRX
aWR0aCh3aWR0aCgpKTsKLSAgICAgICAgICAgIHJlY3Quc2V0WCh0eCk7CisgICAgICAgICAgICBy
ZWN0LnNldFgobG9jYXRpb24ueCgpKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtMTIwMCw3ICsx
MjAwLDcgQEAgYm9vbCBSZW5kZXJUYWJsZTo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VAogICAgIHR5
ICs9IHkoKTsKIAogICAgIC8vIENoZWNrIGtpZHMgZmlyc3QuCi0gICAgaWYgKCFoYXNPdmVyZmxv
d0NsaXAoKSB8fCBvdmVyZmxvd0NsaXBSZWN0KHR4LCB0eSkuaW50ZXJzZWN0cyhyZXN1bHQucmVj
dEZvclBvaW50KHBvaW50SW5Db250YWluZXIpKSkgeworICAgIGlmICghaGFzT3ZlcmZsb3dDbGlw
KCkgfHwgb3ZlcmZsb3dDbGlwUmVjdChJbnRQb2ludCh0eCwgdHkpKS5pbnRlcnNlY3RzKHJlc3Vs
dC5yZWN0Rm9yUG9pbnQocG9pbnRJbkNvbnRhaW5lcikpKSB7CiAgICAgICAgIGZvciAoUmVuZGVy
T2JqZWN0KiBjaGlsZCA9IGxhc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+cHJldmlv
dXNTaWJsaW5nKCkpIHsKICAgICAgICAgICAgIGlmIChjaGlsZC0+aXNCb3goKSAmJiAhdG9SZW5k
ZXJCb3goY2hpbGQpLT5oYXNTZWxmUGFpbnRpbmdMYXllcigpICYmIChjaGlsZC0+aXNUYWJsZVNl
Y3Rpb24oKSB8fCBjaGlsZCA9PSBtX2NhcHRpb24pKSB7CiAgICAgICAgICAgICAgICAgSW50UG9p
bnQgY2hpbGRQb2ludCA9IGZsaXBGb3JXcml0aW5nTW9kZSh0b1JlbmRlckJveChjaGlsZCksIElu
dFBvaW50KHR4LCB0eSksIFBhcmVudFRvQ2hpbGRGbGlwcGluZ0FkanVzdG1lbnQpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgJKHJldmlzaW9uIDg4MDQ2KQorKysg
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTIzMSw3ICsyMzEsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dp
Y2FsV2lkdGgoKTsKIAotICAgIHZpcnR1YWwgSW50UmVjdCBvdmVyZmxvd0NsaXBSZWN0KGludCB0
eCwgaW50IHR5LCBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2YW5jeSByZWxldmFuY3kgPSBJZ25v
cmVPdmVybGF5U2Nyb2xsYmFyU2l6ZSk7CisgICAgdmlydHVhbCBJbnRSZWN0IG92ZXJmbG93Q2xp
cFJlY3QoY29uc3QgSW50UG9pbnQmIGxvY2F0aW9uLCBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2
YW5jeSA9IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplKTsKIAogICAgIHZpcnR1YWwgdm9pZCBh
ZGRPdmVyZmxvd0Zyb21DaGlsZHJlbigpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAkocmV2aXNpb24gODgwNDYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTE1Myw3ICsxMTUzLDcgQEAgYm9vbCBSZW5kZXJUYWJsZVNlY3Rpb246Om5vZGVBdFBv
aW50KGNvbgogICAgIHR4ICs9IHgoKTsKICAgICB0eSArPSB5KCk7CiAKLSAgICBpZiAoaGFzT3Zl
cmZsb3dDbGlwKCkgJiYgIW92ZXJmbG93Q2xpcFJlY3QodHgsIHR5KS5pbnRlcnNlY3RzKHJlc3Vs
dC5yZWN0Rm9yUG9pbnQocG9pbnRJbkNvbnRhaW5lcikpKQorICAgIGlmIChoYXNPdmVyZmxvd0Ns
aXAoKSAmJiAhb3ZlcmZsb3dDbGlwUmVjdChJbnRQb2ludCh0eCwgdHkpKS5pbnRlcnNlY3RzKHJl
c3VsdC5yZWN0Rm9yUG9pbnQocG9pbnRJbkNvbnRhaW5lcikpKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICBpZiAobV9oYXNPdmVyZmxvd2luZ0NlbGwpIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAkocmV2aXNpb24gODgwNDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yOTAsNyArMjkwLDcgQEAgdm9pZCBSZW5kZXJTVkdSb290OjpwYWludChQ
YWludEluZm8mIHBhaQogICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPnNhdmUoKTsKIAogICAg
IC8vIEFwcGx5IGluaXRpYWwgdmlld3BvcnQgY2xpcCAtIG5vdCBhZmZlY3RlZCBieSBvdmVyZmxv
dyBoYW5kbGluZwotICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPmNsaXAob3ZlcmZsb3dDbGlw
UmVjdChib3JkZXJCb3hPcmlnaW5JbkNvbnRhaW5lci54KCksIGJvcmRlckJveE9yaWdpbkluQ29u
dGFpbmVyLnkoKSkpOworICAgIGNoaWxkUGFpbnRJbmZvLmNvbnRleHQtPmNsaXAob3ZlcmZsb3dD
bGlwUmVjdChib3JkZXJCb3hPcmlnaW5JbkNvbnRhaW5lcikpOwogCiAgICAgLy8gQ29udmVydCBm
cm9tIGNvbnRhaW5lciBvZmZzZXRzIChodG1sIHJlbmRlcmVycykgdG8gYSByZWxhdGl2ZSB0cmFu
c2Zvcm0gKHN2ZyByZW5kZXJlcnMpLgogICAgIC8vIFRyYW5zZm9ybSBmcm9tIG91ciBwYWludCBj
b250YWluZXIncyBjb29yZGluYXRlIHN5c3RlbSB0byBvdXIgbG9jYWwgY29vcmRzLgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95981</attachid>
            <date>2011-06-03 16:08:08 -0700</date>
            <delta_ts>2011-06-04 02:53:49 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-62032-20110603160807.patch</filename>
            <type>text/plain</type>
            <size>14856</size>
            <attacher name="Emil A Eklund">eae</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg4MDc0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMDYtMDMgIEVtaWwgQSBF
a2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2Vp
ZGVsLgorCisgICAgICAgIENvbnZlcnQgUmVuZGVyQm94OjpvdmVyZmxvd0NsaXBSZWN0IHRvIElu
dFBvaW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02
MjAzMgorCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBl
ZGl0aW5nL0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6Omluc2lkZVZpc2li
bGVBcmVhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0Lmg6CisgICAgICAg
IChXZWJDb3JlOjpJbnRSZWN0Ojpjb250cmFjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJsb2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpub2RlQXRQb2ludCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJCb3g6OnB1c2hDb250ZW50c0NsaXApOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94
OjpvdmVyZmxvd0NsaXBSZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJveE1vZGVsT2JqZWN0OjpwYWludEZpbGxMYXllckV4dGVuZGVkKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OmNhbGN1bGF0ZUNsaXBSZWN0cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJM
YXllcjo6Y2FsY3VsYXRlUmVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnJl
cGFpbnRCbG9ja1NlbGVjdGlvbkdhcHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXll
ckJhY2tpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2xpcEJveCk6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpv
dmVyZmxvd0NsaXBSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpub2RlQXRQ
b2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlLmg6CisgICAgICAgICogcmVu
ZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
YWJsZVNlY3Rpb246Om5vZGVBdFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRl
clNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHUm9vdDo6cGFpbnQpOgor
CiAyMDExLTA2LTAzICBDaHJpcyBSb2dlcnMgIDxjcm9nZXJzQGdvb2dsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSdXNzZWxsLgpJbmRleDogU291cmNlL1dlYkNvcmUvZWRp
dGluZy9FZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRp
dG9yLmNwcAkocmV2aXNpb24gODgwNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRv
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NjgsNyArMjU2OCw3IEBAIGJvb2wgRWRpdG9yOjpp
bnNpZGVWaXNpYmxlQXJlYShjb25zdCBJbnQKICAgICBpZiAoIShjb250YWluZXItPnN0eWxlKCkt
Pm92ZXJmbG93WCgpID09IE9ISURERU4gfHwgY29udGFpbmVyLT5zdHlsZSgpLT5vdmVyZmxvd1ko
KSA9PSBPSElEREVOKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBJbnRSZWN0IHJlY3RJ
blBhZ2VDb29yZHMgPSBjb250YWluZXItPm92ZXJmbG93Q2xpcFJlY3QoMCwgMCk7CisgICAgSW50
UmVjdCByZWN0SW5QYWdlQ29vcmRzID0gY29udGFpbmVyLT5vdmVyZmxvd0NsaXBSZWN0KEludFBv
aW50KCkpOwogICAgIEludFJlY3QgcmVjdEluRnJhbWVDb29yZHMgPSBJbnRSZWN0KHJlbmRlcmVy
LT54KCkgKiAtMSwgcmVuZGVyZXItPnkoKSAqIC0xLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVjdEluUGFnZUNvb3Jkcy53aWR0aCgpLCByZWN0SW5QYWdlQ29vcmRzLmhl
aWdodCgpKTsKIApAQCAtMjU5Nyw3ICsyNTk3LDcgQEAgYm9vbCBFZGl0b3I6Omluc2lkZVZpc2li
bGVBcmVhKFJhbmdlKiByYQogICAgIGlmICghKGNvbnRhaW5lci0+c3R5bGUoKS0+b3ZlcmZsb3dY
KCkgPT0gT0hJRERFTiB8fCBjb250YWluZXItPnN0eWxlKCktPm92ZXJmbG93WSgpID09IE9ISURE
RU4pKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIEludFJlY3QgcmVjdEluUGFnZUNvb3Jk
cyA9IGNvbnRhaW5lci0+b3ZlcmZsb3dDbGlwUmVjdCgwLCAwKTsKKyAgICBJbnRSZWN0IHJlY3RJ
blBhZ2VDb29yZHMgPSBjb250YWluZXItPm92ZXJmbG93Q2xpcFJlY3QoSW50UG9pbnQoKSk7CiAg
ICAgSW50UmVjdCByZWN0SW5GcmFtZUNvb3JkcyA9IEludFJlY3QocmVuZGVyZXItPngoKSAqIC0x
LCByZW5kZXJlci0+eSgpICogLTEsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZWN0SW5QYWdlQ29vcmRzLndpZHRoKCksIHJlY3RJblBhZ2VDb29yZHMuaGVpZ2h0KCkpOwog
ICAgIEludFJlY3QgcmVzdWx0UmVjdCA9IHJhbmdlLT5ib3VuZGluZ0JveCgpOwpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvSW50UmVjdC5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ludFJlY3QuaAkocmV2aXNpb24gODgwNzQp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9JbnRSZWN0LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGV4cGFuZChjb25z
dCBJbnRTaXplJiBzaXplKSB7IG1fbG9jYXRpb24gKz0gc2l6ZTsgfQogICAgIHZvaWQgZXhwYW5k
KGludCBkdywgaW50IGRoKSB7IG1fc2l6ZS5leHBhbmQoZHcsIGRoKTsgfQorICAgIHZvaWQgY29u
dHJhY3QoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBtX3NpemUgLT0gc2l6ZTsgfQorICAgIHZvaWQg
Y29udHJhY3QoaW50IGR3LCBpbnQgZGgpIHsgbV9zaXplLmV4cGFuZCgtZHcsIC1kaCk7IH0KIAog
ICAgIHZvaWQgc2hpZnRYRWRnZVRvKGludCBlZGdlKQogICAgIHsKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAkocmV2aXNpb24gODgwNzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTI3
LDcgKzM5MjcsNyBAQCBib29sIFJlbmRlckJsb2NrOjpub2RlQXRQb2ludChjb25zdCBIaXRUCiAg
ICAgYm9vbCB1c2VPdmVyZmxvd0NsaXAgPSBoYXNPdmVyZmxvd0NsaXAoKSAmJiAhaGFzU2VsZlBh
aW50aW5nTGF5ZXIoKTsKICAgICBib29sIHVzZUNsaXAgPSAoaGFzQ29udHJvbENsaXAoKSB8fCB1
c2VPdmVyZmxvd0NsaXApOwogICAgIEludFJlY3QgaGl0VGVzdEFyZWEocmVzdWx0LnJlY3RGb3JQ
b2ludChwb2ludEluQ29udGFpbmVyKSk7Ci0gICAgYm9vbCBjaGVja0NoaWxkcmVuID0gIXVzZUNs
aXAgfHwgKGhhc0NvbnRyb2xDbGlwKCkgPyBjb250cm9sQ2xpcFJlY3QodG9Qb2ludChsb2NhbE9m
ZnNldCkpLmludGVyc2VjdHMoaGl0VGVzdEFyZWEpIDogb3ZlcmZsb3dDbGlwUmVjdChsb2NhbE9m
ZnNldC53aWR0aCgpLCBsb2NhbE9mZnNldC5oZWlnaHQoKSwgSW5jbHVkZU92ZXJsYXlTY3JvbGxi
YXJTaXplKS5pbnRlcnNlY3RzKGhpdFRlc3RBcmVhKSk7CisgICAgYm9vbCBjaGVja0NoaWxkcmVu
ID0gIXVzZUNsaXAgfHwgKGhhc0NvbnRyb2xDbGlwKCkgPyBjb250cm9sQ2xpcFJlY3QodG9Qb2lu
dChsb2NhbE9mZnNldCkpLmludGVyc2VjdHMoaGl0VGVzdEFyZWEpIDogb3ZlcmZsb3dDbGlwUmVj
dCh0b1BvaW50KGxvY2FsT2Zmc2V0KSwgSW5jbHVkZU92ZXJsYXlTY3JvbGxiYXJTaXplKS5pbnRl
cnNlY3RzKGhpdFRlc3RBcmVhKSk7CiAgICAgaWYgKGNoZWNrQ2hpbGRyZW4pIHsKICAgICAgICAg
Ly8gSGl0IHRlc3QgZGVzY2VuZGFudHMgZmlyc3QuCiAgICAgICAgIEludFNpemUgc2Nyb2xsZWRP
ZmZzZXQobG9jYWxPZmZzZXQpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJv
eC5jcHAJKHJldmlzaW9uIDg4MDc0KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJveC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExMTQsNyArMTExNCw3IEBAIGJvb2wgUmVuZGVy
Qm94OjpwdXNoQ29udGVudHNDbGlwKFBhaW50SW4KICAgICAgICAgcGFpbnRPYmplY3QocGFpbnRJ
bmZvLCB0eCwgdHkpOwogICAgICAgICBwYWludEluZm8ucGhhc2UgPSBQYWludFBoYXNlQ2hpbGRC
bG9ja0JhY2tncm91bmRzOwogICAgIH0KLSAgICBJbnRSZWN0IGNsaXBSZWN0KGlzQ29udHJvbENs
aXAgPyBjb250cm9sQ2xpcFJlY3QoSW50UG9pbnQodHgsIHR5KSkgOiBvdmVyZmxvd0NsaXBSZWN0
KHR4LCB0eSkpOworICAgIEludFJlY3QgY2xpcFJlY3QoaXNDb250cm9sQ2xpcCA/IGNvbnRyb2xD
bGlwUmVjdChJbnRQb2ludCh0eCwgdHkpKSA6IG92ZXJmbG93Q2xpcFJlY3QoSW50UG9pbnQodHgs
IHR5KSkpOwogICAgIHBhaW50SW5mby5jb250ZXh0LT5zYXZlKCk7CiAgICAgaWYgKHN0eWxlKCkt
Pmhhc0JvcmRlclJhZGl1cygpKQogICAgICAgICBwYWludEluZm8uY29udGV4dC0+YWRkUm91bmRl
ZFJlY3RDbGlwKHN0eWxlKCktPmdldFJvdW5kZWRCb3JkZXJGb3IoSW50UmVjdCh0eCwgdHksIHdp
ZHRoKCksIGhlaWdodCgpKSkpOwpAQCAtMTEzNSwyNiArMTEzNSwxOCBAQCB2b2lkIFJlbmRlckJv
eDo6cG9wQ29udGVudHNDbGlwKFBhaW50SW5mCiAgICAgICAgIHBhaW50SW5mby5waGFzZSA9IG9y
aWdpbmFsUGhhc2U7CiB9CiAKLUludFJlY3QgUmVuZGVyQm94OjpvdmVyZmxvd0NsaXBSZWN0KGlu
dCB0eCwgaW50IHR5LCBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2YW5jeSByZWxldmFuY3kpCitJ
bnRSZWN0IFJlbmRlckJveDo6b3ZlcmZsb3dDbGlwUmVjdChjb25zdCBJbnRQb2ludCYgbG9jYXRp
b24sIE92ZXJsYXlTY3JvbGxiYXJTaXplUmVsZXZhbmN5IHJlbGV2YW5jeSkKIHsKICAgICAvLyBG
SVhNRTogV2hlbiBvdmVyZmxvdy1jbGlwIChDU1MzKSBpcyBpbXBsZW1lbnRlZCwgd2UnbGwgb2J0
YWluIHRoZSBwcm9wZXJ0eQogICAgIC8vIGhlcmUuCi0KLSAgICBpbnQgYkxlZnQgPSBib3JkZXJM
ZWZ0KCk7Ci0gICAgaW50IGJUb3AgPSBib3JkZXJUb3AoKTsKLQotICAgIGludCBjbGlwWCA9IHR4
ICsgYkxlZnQ7Ci0gICAgaW50IGNsaXBZID0gdHkgKyBiVG9wOwotICAgIGludCBjbGlwV2lkdGgg
PSB3aWR0aCgpIC0gYkxlZnQgLSBib3JkZXJSaWdodCgpOwotICAgIGludCBjbGlwSGVpZ2h0ID0g
aGVpZ2h0KCkgLSBiVG9wIC0gYm9yZGVyQm90dG9tKCk7CisgICAgSW50UmVjdCBjbGlwUmVjdChs
b2NhdGlvbiArIEludFNpemUoYm9yZGVyTGVmdCgpLCBib3JkZXJUb3AoKSksCisgICAgICAgIHNp
emUoKSAtIEludFNpemUoYm9yZGVyTGVmdCgpICsgYm9yZGVyUmlnaHQoKSwgYm9yZGVyVG9wKCkg
KyBib3JkZXJCb3R0b20oKSkpOwogCiAgICAgLy8gU3VidHJhY3Qgb3V0IHNjcm9sbGJhcnMgaWYg
d2UgaGF2ZSB0aGVtLgotICAgIGlmIChsYXllcigpKSB7Ci0gICAgICAgIGNsaXBXaWR0aCAtPSBs
YXllcigpLT52ZXJ0aWNhbFNjcm9sbGJhcldpZHRoKHJlbGV2YW5jeSk7Ci0gICAgICAgIGNsaXBI
ZWlnaHQgLT0gbGF5ZXIoKS0+aG9yaXpvbnRhbFNjcm9sbGJhckhlaWdodChyZWxldmFuY3kpOwot
ICAgIH0KKyAgICBpZiAobGF5ZXIoKSkKKyAgICAgICAgY2xpcFJlY3QuY29udHJhY3QobGF5ZXIo
KS0+dmVydGljYWxTY3JvbGxiYXJXaWR0aChyZWxldmFuY3kpLCBsYXllcigpLT5ob3Jpem9udGFs
U2Nyb2xsYmFySGVpZ2h0KHJlbGV2YW5jeSkpOwogCi0gICAgcmV0dXJuIEludFJlY3QoY2xpcFgs
IGNsaXBZLCBjbGlwV2lkdGgsIGNsaXBIZWlnaHQpOworICAgIHJldHVybiBjbGlwUmVjdDsKIH0K
IAogSW50UmVjdCBSZW5kZXJCb3g6OmNsaXBSZWN0KGludCB0eCwgaW50IHR5KQpJbmRleDogU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaAkocmV2aXNpb24gODgwNzQpCisrKyBTb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0NSw3ICsz
NDUsNyBAQCBwdWJsaWM6CiAgICAgCiAgICAgdmlydHVhbCBJbnRSZWN0IGxvY2FsQ2FyZXRSZWN0
KElubGluZUJveCosIGludCBjYXJldE9mZnNldCwgaW50KiBleHRyYVdpZHRoVG9FbmRPZkxpbmUg
PSAwKTsKIAotICAgIHZpcnR1YWwgSW50UmVjdCBvdmVyZmxvd0NsaXBSZWN0KGludCB0eCwgaW50
IHR5LCBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2YW5jeSByZWxldmFuY3kgPSBJZ25vcmVPdmVy
bGF5U2Nyb2xsYmFyU2l6ZSk7CisgICAgdmlydHVhbCBJbnRSZWN0IG92ZXJmbG93Q2xpcFJlY3Qo
Y29uc3QgSW50UG9pbnQmIGxvY2F0aW9uLCBPdmVybGF5U2Nyb2xsYmFyU2l6ZVJlbGV2YW5jeSA9
IElnbm9yZU92ZXJsYXlTY3JvbGxiYXJTaXplKTsKICAgICBJbnRSZWN0IGNsaXBSZWN0KGludCB0
eCwgaW50IHR5KTsKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ29udHJvbENsaXAoKSBjb25zdCB7IHJl
dHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgSW50UmVjdCBjb250cm9sQ2xpcFJlY3QoY29uc3Qg
SW50UG9pbnQmKSBjb25zdCB7IHJldHVybiBJbnRSZWN0KCk7IH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCb3hNb2RlbE9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveE1vZGVsT2JqZWN0LmNwcAkocmV2aXNpb24g
ODgwNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94TW9kZWxPYmplY3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NTUsNyArNjU1LDcgQEAgdm9pZCBSZW5kZXJCb3hNb2Rl
bE9iamVjdDo6cGFpbnRGaWxsTGF5ZQogICAgIEludFJlY3Qgc2Nyb2xsZWRQYWludFJlY3QgPSBy
ZWN0OwogICAgIGlmIChjbGlwcGVkV2l0aExvY2FsU2Nyb2xsaW5nKSB7CiAgICAgICAgIC8vIENs
aXAgdG8gdGhlIG92ZXJmbG93IGFyZWEuCi0gICAgICAgIGNvbnRleHQtPmNsaXAodG9SZW5kZXJC
b3godGhpcyktPm92ZXJmbG93Q2xpcFJlY3QocmVjdC54KCksIHJlY3QueSgpKSk7CisgICAgICAg
IGNvbnRleHQtPmNsaXAodG9SZW5kZXJCb3godGhpcyktPm92ZXJmbG93Q2xpcFJlY3QocmVjdC5s
b2NhdGlvbigpKSk7CiAgICAgICAgIAogICAgICAgICAvLyBBZGp1c3QgdGhlIHBhaW50IHJlY3Qg
dG8gcmVmbGVjdCBhIHNjcm9sbGVkIGNvbnRlbnQgYm94IHdpdGggYm9yZGVycyBhdCB0aGUgZW5k
cy4KICAgICAgICAgSW50U2l6ZSBvZmZzZXQgPSBsYXllcigpLT5zY3JvbGxlZENvbnRlbnRPZmZz
ZXQoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2
aXNpb24gODgwNzQpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMzc0LDcgKzMzNzQsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpj
YWxjdWxhdGVDbGlwUmVjdHMoY29uCiAgICAgICAgIH0KICAgICAgICAgCiAgICAgICAgIGlmIChy
ZW5kZXJlcigpLT5oYXNPdmVyZmxvd0NsaXAoKSkgewotICAgICAgICAgICAgSW50UmVjdCBuZXdP
dmVyZmxvd0NsaXAgPSB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+b3ZlcmZsb3dDbGlwUmVjdChv
ZmZzZXQueCgpLCBvZmZzZXQueSgpLCByZWxldmFuY3kpOworICAgICAgICAgICAgSW50UmVjdCBu
ZXdPdmVyZmxvd0NsaXAgPSB0b1JlbmRlckJveChyZW5kZXJlcigpKS0+b3ZlcmZsb3dDbGlwUmVj
dChvZmZzZXQsIHJlbGV2YW5jeSk7CiAgICAgICAgICAgICBjbGlwUmVjdHMuc2V0T3ZlcmZsb3dD
bGlwUmVjdChpbnRlcnNlY3Rpb24obmV3T3ZlcmZsb3dDbGlwLCBjbGlwUmVjdHMub3ZlcmZsb3dD
bGlwUmVjdCgpKSk7CiAgICAgICAgICAgICBpZiAocmVuZGVyZXIoKS0+aXNQb3NpdGlvbmVkKCkg
fHwgcmVuZGVyZXIoKS0+aXNSZWxQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICAgICAgY2xpcFJl
Y3RzLnNldFBvc0NsaXBSZWN0KGludGVyc2VjdGlvbihuZXdPdmVyZmxvd0NsaXAsIGNsaXBSZWN0
cy5wb3NDbGlwUmVjdCgpKSk7CkBAIC0zNDM4LDcgKzM0MzgsNyBAQCB2b2lkIFJlbmRlckxheWVy
OjpjYWxjdWxhdGVSZWN0cyhjb25zdCBSCiAgICAgaWYgKHJlbmRlcmVyKCktPmhhc092ZXJmbG93
Q2xpcCgpIHx8IHJlbmRlcmVyKCktPmhhc0NsaXAoKSkgewogICAgICAgICAvLyBUaGlzIGxheWVy
IGVzdGFibGlzaGVzIGEgY2xpcCBvZiBzb21lIGtpbmQuCiAgICAgICAgIGlmIChyZW5kZXJlcigp
LT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAgICAgIGZvcmVncm91bmRSZWN0LmludGVyc2Vj
dCh0b1JlbmRlckJveChyZW5kZXJlcigpKS0+b3ZlcmZsb3dDbGlwUmVjdChvZmZzZXQueCgpLCBv
ZmZzZXQueSgpLCByZWxldmFuY3kpKTsKKyAgICAgICAgICAgIGZvcmVncm91bmRSZWN0LmludGVy
c2VjdCh0b1JlbmRlckJveChyZW5kZXJlcigpKS0+b3ZlcmZsb3dDbGlwUmVjdChvZmZzZXQsIHJl
bGV2YW5jeSkpOwogICAgICAgICBpZiAocmVuZGVyZXIoKS0+aGFzQ2xpcCgpKSB7CiAgICAgICAg
ICAgICAvLyBDbGlwIGFwcGxpZXMgdG8gKnVzKiBhcyB3ZWxsLCBzbyBnbyBhaGVhZCBhbmQgdXBk
YXRlIHRoZSBkYW1hZ2VSZWN0LgogICAgICAgICAgICAgSW50UmVjdCBuZXdQb3NDbGlwID0gdG9S
ZW5kZXJCb3gocmVuZGVyZXIoKSktPmNsaXBSZWN0KG9mZnNldC54KCksIG9mZnNldC55KCkpOwpA
QCAtMzUxMCw3ICszNTEwLDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cmVwYWludEJsb2NrU2VsZWN0
aW9uRwogICAgIEludFJlY3QgcmVjdCA9IG1fYmxvY2tTZWxlY3Rpb25HYXBzQm91bmRzOwogICAg
IHJlY3QubW92ZSgtc2Nyb2xsZWRDb250ZW50T2Zmc2V0KCkpOwogICAgIGlmIChyZW5kZXJlcigp
LT5oYXNPdmVyZmxvd0NsaXAoKSkKLSAgICAgICAgcmVjdC5pbnRlcnNlY3QodG9SZW5kZXJCb3go
cmVuZGVyZXIoKSktPm92ZXJmbG93Q2xpcFJlY3QoMCwgMCkpOworICAgICAgICByZWN0LmludGVy
c2VjdCh0b1JlbmRlckJveChyZW5kZXJlcigpKS0+b3ZlcmZsb3dDbGlwUmVjdChJbnRQb2ludCgp
KSk7CiAgICAgaWYgKHJlbmRlcmVyKCktPmhhc0NsaXAoKSkKICAgICAgICAgcmVjdC5pbnRlcnNl
Y3QodG9SZW5kZXJCb3gocmVuZGVyZXIoKSktPmNsaXBSZWN0KDAsIDApKTsKICAgICBpZiAoIXJl
Y3QuaXNFbXB0eSgpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
QmFja2luZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxheWVyQmFja2luZy5jcHAJKHJldmlzaW9uIDg4MDc0KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMxNiw3ICsz
MTYsNyBAQCBzdGF0aWMgSW50UmVjdCBjbGlwQm94KFJlbmRlckJveCogcmVuZGVyCiB7CiAgICAg
SW50UmVjdCByZXN1bHQgPSBQYWludEluZm86OmluZmluaXRlUmVjdCgpOwogICAgIGlmIChyZW5k
ZXJlci0+aGFzT3ZlcmZsb3dDbGlwKCkpCi0gICAgICAgIHJlc3VsdCA9IHJlbmRlcmVyLT5vdmVy
Zmxvd0NsaXBSZWN0KDAsIDApOworICAgICAgICByZXN1bHQgPSByZW5kZXJlci0+b3ZlcmZsb3dD
bGlwUmVjdChJbnRQb2ludCgpKTsKIAogICAgIGlmIChyZW5kZXJlci0+aGFzQ2xpcCgpKQogICAg
ICAgICByZXN1bHQuaW50ZXJzZWN0KHJlbmRlcmVyLT5jbGlwUmVjdCgwLCAwKSk7CkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAJKHJldmlzaW9uIDg4MDc0KQor
KysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTE3MSw5ICsxMTcxLDkgQEAgaW50IFJlbmRlclRhYmxlOjpmaXJzdExpbmVCb3hCYXNl
bGluZSgpIAogICAgIHJldHVybiBmaXJzdE5vbkVtcHR5U2VjdGlvbi0+bG9naWNhbFRvcCgpICsg
Zmlyc3ROb25FbXB0eVNlY3Rpb24tPmZpcnN0TGluZUJveEJhc2VsaW5lKCk7CiB9CiAKLUludFJl
Y3QgUmVuZGVyVGFibGU6Om92ZXJmbG93Q2xpcFJlY3QoaW50IHR4LCBpbnQgdHksIE92ZXJsYXlT
Y3JvbGxiYXJTaXplUmVsZXZhbmN5IHJlbGV2YW5jeSkKK0ludFJlY3QgUmVuZGVyVGFibGU6Om92
ZXJmbG93Q2xpcFJlY3QoY29uc3QgSW50UG9pbnQmIGxvY2F0aW9uLCBPdmVybGF5U2Nyb2xsYmFy
U2l6ZVJlbGV2YW5jeSByZWxldmFuY3kpCiB7Ci0gICAgSW50UmVjdCByZWN0ID0gUmVuZGVyQmxv
Y2s6Om92ZXJmbG93Q2xpcFJlY3QodHgsIHR5LCByZWxldmFuY3kpOworICAgIEludFJlY3QgcmVj
dCA9IFJlbmRlckJsb2NrOjpvdmVyZmxvd0NsaXBSZWN0KGxvY2F0aW9uLCByZWxldmFuY3kpOwog
ICAgIAogICAgIC8vIElmIHdlIGhhdmUgYSBjYXB0aW9uLCBleHBhbmQgdGhlIGNsaXAgdG8gaW5j
bHVkZSB0aGUgY2FwdGlvbi4KICAgICAvLyBGSVhNRTogVGVjaG5pY2FsbHkgdGhpcyBpcyB3cm9u
ZywgYnV0IGl0J3MgdmlydHVhbGx5IGltcG9zc2libGUgdG8gZml4IHRoaXMKQEAgLTExODQsMTAg
KzExODQsMTAgQEAgSW50UmVjdCBSZW5kZXJUYWJsZTo6b3ZlcmZsb3dDbGlwUmVjdChpbgogICAg
IGlmIChtX2NhcHRpb24pIHsKICAgICAgICAgaWYgKHN0eWxlKCktPmlzSG9yaXpvbnRhbFdyaXRp
bmdNb2RlKCkpIHsKICAgICAgICAgICAgIHJlY3Quc2V0SGVpZ2h0KGhlaWdodCgpKTsKLSAgICAg
ICAgICAgIHJlY3Quc2V0WSh0eSk7CisgICAgICAgICAgICByZWN0LnNldFkobG9jYXRpb24ueSgp
KTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIHJlY3Quc2V0V2lkdGgod2lkdGgoKSk7
Ci0gICAgICAgICAgICByZWN0LnNldFgodHgpOworICAgICAgICAgICAgcmVjdC5zZXRYKGxvY2F0
aW9uLngoKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTEyMDAsNyArMTIwMCw3IEBAIGJvb2wg
UmVuZGVyVGFibGU6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFQKICAgICB0eSArPSB5KCk7CiAKICAg
ICAvLyBDaGVjayBraWRzIGZpcnN0LgotICAgIGlmICghaGFzT3ZlcmZsb3dDbGlwKCkgfHwgb3Zl
cmZsb3dDbGlwUmVjdCh0eCwgdHkpLmludGVyc2VjdHMocmVzdWx0LnJlY3RGb3JQb2ludChwb2lu
dEluQ29udGFpbmVyKSkpIHsKKyAgICBpZiAoIWhhc092ZXJmbG93Q2xpcCgpIHx8IG92ZXJmbG93
Q2xpcFJlY3QoSW50UG9pbnQodHgsIHR5KSkuaW50ZXJzZWN0cyhyZXN1bHQucmVjdEZvclBvaW50
KHBvaW50SW5Db250YWluZXIpKSkgewogICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQg
PSBsYXN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPnByZXZpb3VzU2libGluZygpKSB7
CiAgICAgICAgICAgICBpZiAoY2hpbGQtPmlzQm94KCkgJiYgIXRvUmVuZGVyQm94KGNoaWxkKS0+
aGFzU2VsZlBhaW50aW5nTGF5ZXIoKSAmJiAoY2hpbGQtPmlzVGFibGVTZWN0aW9uKCkgfHwgY2hp
bGQgPT0gbV9jYXB0aW9uKSkgewogICAgICAgICAgICAgICAgIEludFBvaW50IGNoaWxkUG9pbnQg
PSBmbGlwRm9yV3JpdGluZ01vZGUodG9SZW5kZXJCb3goY2hpbGQpLCBJbnRQb2ludCh0eCwgdHkp
LCBQYXJlbnRUb0NoaWxkRmxpcHBpbmdBZGp1c3RtZW50KTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZS5oCShyZXZpc2lvbiA4ODA3NCkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMzEsNyArMjMxLDcg
QEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlTG9naWNhbFdpZHRoKCk7CiAK
LSAgICB2aXJ0dWFsIEludFJlY3Qgb3ZlcmZsb3dDbGlwUmVjdChpbnQgdHgsIGludCB0eSwgT3Zl
cmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgcmVsZXZhbmN5ID0gSWdub3JlT3ZlcmxheVNjcm9s
bGJhclNpemUpOworICAgIHZpcnR1YWwgSW50UmVjdCBvdmVyZmxvd0NsaXBSZWN0KGNvbnN0IElu
dFBvaW50JiBsb2NhdGlvbiwgT3ZlcmxheVNjcm9sbGJhclNpemVSZWxldmFuY3kgPSBJZ25vcmVP
dmVybGF5U2Nyb2xsYmFyU2l6ZSk7CiAKICAgICB2aXJ0dWFsIHZvaWQgYWRkT3ZlcmZsb3dGcm9t
Q2hpbGRyZW4oKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
U2VjdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlU2VjdGlvbi5jcHAJKHJldmlzaW9uIDg4MDc0KQorKysgU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExNTMsNyAr
MTE1Myw3IEBAIGJvb2wgUmVuZGVyVGFibGVTZWN0aW9uOjpub2RlQXRQb2ludChjb24KICAgICB0
eCArPSB4KCk7CiAgICAgdHkgKz0geSgpOwogCi0gICAgaWYgKGhhc092ZXJmbG93Q2xpcCgpICYm
ICFvdmVyZmxvd0NsaXBSZWN0KHR4LCB0eSkuaW50ZXJzZWN0cyhyZXN1bHQucmVjdEZvclBvaW50
KHBvaW50SW5Db250YWluZXIpKSkKKyAgICBpZiAoaGFzT3ZlcmZsb3dDbGlwKCkgJiYgIW92ZXJm
bG93Q2xpcFJlY3QoSW50UG9pbnQodHgsIHR5KSkuaW50ZXJzZWN0cyhyZXN1bHQucmVjdEZvclBv
aW50KHBvaW50SW5Db250YWluZXIpKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KG1faGFzT3ZlcmZsb3dpbmdDZWxsKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1JlbmRlclNWR1Jvb3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAJKHJldmlzaW9uIDg4MDc0KQorKysgU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjkwLDcgKzI5MCw3IEBAIHZvaWQgUmVuZGVyU1ZHUm9vdDo6cGFpbnQoUGFpbnRJbmZvJiBwYWkK
ICAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5zYXZlKCk7CiAKICAgICAvLyBBcHBseSBpbml0
aWFsIHZpZXdwb3J0IGNsaXAgLSBub3QgYWZmZWN0ZWQgYnkgb3ZlcmZsb3cgaGFuZGxpbmcKLSAg
ICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5jbGlwKG92ZXJmbG93Q2xpcFJlY3QoYm9yZGVyQm94
T3JpZ2luSW5Db250YWluZXIueCgpLCBib3JkZXJCb3hPcmlnaW5JbkNvbnRhaW5lci55KCkpKTsK
KyAgICBjaGlsZFBhaW50SW5mby5jb250ZXh0LT5jbGlwKG92ZXJmbG93Q2xpcFJlY3QoYm9yZGVy
Qm94T3JpZ2luSW5Db250YWluZXIpKTsKIAogICAgIC8vIENvbnZlcnQgZnJvbSBjb250YWluZXIg
b2Zmc2V0cyAoaHRtbCByZW5kZXJlcnMpIHRvIGEgcmVsYXRpdmUgdHJhbnNmb3JtIChzdmcgcmVu
ZGVyZXJzKS4KICAgICAvLyBUcmFuc2Zvcm0gZnJvbSBvdXIgcGFpbnQgY29udGFpbmVyJ3MgY29v
cmRpbmF0ZSBzeXN0ZW0gdG8gb3VyIGxvY2FsIGNvb3Jkcy4K
</data>

          </attachment>
      

    </bug>

</bugzilla>