<?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>164139</bug_id>
          
          <creation_ts>2016-10-28 12:22:31 -0700</creation_ts>
          <short_desc>[CSS Parser] Clean up gradient parsing</short_desc>
          <delta_ts>2016-10-28 12:43:45 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1245700</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-10-28 12:22:31 -0700</bug_when>
    <thetext>Clean up gradient parsing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245701</commentid>
    <comment_count>1</comment_count>
      <attachid>293183</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-10-28 12:23:24 -0700</bug_when>
    <thetext>Created attachment 293183
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245705</commentid>
    <comment_count>2</comment_count>
      <attachid>293184</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-10-28 12:31:15 -0700</bug_when>
    <thetext>Created attachment 293184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245706</commentid>
    <comment_count>3</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2016-10-28 12:43:45 -0700</bug_when>
    <thetext>Fixed in r208062.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293183</attachid>
            <date>2016-10-28 12:23:24 -0700</date>
            <delta_ts>2016-10-28 12:31:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10753</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODA2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTEwLTI4ICBEYXZlIEh5
YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1MgUGFyc2VyXSBDbGVhbiB1cCBn
cmFkaWVudCBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjQxMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBv
c2l0aW9uRnJvbVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0dyYWRpZW50VmFsdWU6OmNv
bXB1dGVFbmRQb2ludCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpj
b25zdW1lRGVwcmVjYXRlZEdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
UGFyc2VySGVscGVyczo6Y29uc3VtZUdyYWRpZW50Q29sb3JTdG9wcyk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVEZXByZWNhdGVkUmFkaWFsR3Jh
ZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25z
dW1lUmFkaWFsR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJI
ZWxwZXJzOjpjb25zdW1lTGluZWFyR3JhZGllbnQpOgorCiAyMDE2LTEwLTI4ICBEZWFuIEphY2tz
b24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBOZXcgQ1NTIFBhcnNlciBzaG91bGQgdXNl
IENvbG9ycyBub3QgUkdCQTMycwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50
VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZh
bHVlLmNwcAkocmV2aXNpb24gMjA4MDMwKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
R3JhZGllbnRJbWFnZS5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRl
clN0eWxlLmgiCisjaW5jbHVkZSAiUGFpci5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIK
ICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgpAQCAt
NDk0LDIxICs0OTUsMzcgQEAgdm9pZCBDU1NHcmFkaWVudFZhbHVlOjphZGRTdG9wcyhHcmFkaWVu
dAogICAgIGdyYWRpZW50LnNldFN0b3BzU29ydGVkKHRydWUpOwogfQogCi1zdGF0aWMgZmxvYXQg
cG9zaXRpb25Gcm9tVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUmIHZhbHVlLCBjb25zdCBDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhJiBjb252ZXJzaW9uRGF0YSwgY29uc3QgRmxvYXRTaXplJiBzaXpl
LCBib29sIGlzSG9yaXpvbnRhbCkKK3N0YXRpYyBmbG9hdCBwb3NpdGlvbkZyb21WYWx1ZShjb25z
dCBDU1NQcmltaXRpdmVWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEmIGNvbnZlcnNpb25EYXRhLCBjb25zdCBGbG9hdFNpemUmIHNpemUsIGJvb2wgaXNIb3Jpem9u
dGFsKQogewotICAgIGlmICh2YWx1ZS5pc051bWJlcigpKQotICAgICAgICByZXR1cm4gdmFsdWUu
ZmxvYXRWYWx1ZSgpICogY29udmVyc2lvbkRhdGEuem9vbSgpOworICAgIGlmICh2YWx1ZS0+aXNO
dW1iZXIoKSkKKyAgICAgICAgcmV0dXJuIHZhbHVlLT5mbG9hdFZhbHVlKCkgKiBjb252ZXJzaW9u
RGF0YS56b29tKCk7CiAKKyAgICBpbnQgb3JpZ2luID0gMDsKKyAgICBpbnQgc2lnbiA9IDE7CiAg
ICAgaW50IGVkZ2VEaXN0YW5jZSA9IGlzSG9yaXpvbnRhbCA/IHNpemUud2lkdGgoKSA6IHNpemUu
aGVpZ2h0KCk7Ci0gICAgaWYgKHZhbHVlLmlzUGVyY2VudGFnZSgpKQotICAgICAgICByZXR1cm4g
dmFsdWUuZmxvYXRWYWx1ZSgpIC8gMTAwLmYgKiBlZGdlRGlzdGFuY2U7Ci0KLSAgICBpZiAodmFs
dWUuaXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhMZW5ndGgoKSkgewotICAgICAgICBSZWY8Q2Fs
Y3VsYXRpb25WYWx1ZT4gY2FsY3VsYXRpb25WYWx1ZSB7IHZhbHVlLmNzc0NhbGNWYWx1ZSgpLT5j
cmVhdGVDYWxjdWxhdGlvblZhbHVlKGNvbnZlcnNpb25EYXRhKSB9OwotICAgICAgICByZXR1cm4g
Y2FsY3VsYXRpb25WYWx1ZS0+ZXZhbHVhdGUoZWRnZURpc3RhbmNlKTsKKyAgICAKKyAgICAvLyBJ
biB0aGlzIGNhc2UgdGhlIGNlbnRlciBvZiB0aGUgZ3JhZGllbnQgaXMgZ2l2ZW4gcmVsYXRpdmUg
dG8gYW4gZWRnZSBpbiB0aGUKKyAgICAvLyBmb3JtIG9mOiBbIHRvcCB8IGJvdHRvbSB8IHJpZ2h0
IHwgbGVmdCBdIFsgPHBlcmNlbnRhZ2U+IHwgPGxlbmd0aD4gXS4KKyAgICBpZiAodmFsdWUtPmlz
UGFpcigpKSB7CisgICAgICAgIENTU1ZhbHVlSUQgb3JpZ2luSUQgPSB2YWx1ZS0+cGFpclZhbHVl
KCktPmZpcnN0KCktPnZhbHVlSUQoKTsKKyAgICAgICAgdmFsdWUgPSB2YWx1ZS0+cGFpclZhbHVl
KCktPnNlY29uZCgpOworICAgICAgICAKKyAgICAgICAgaWYgKG9yaWdpbklEID09IENTU1ZhbHVl
UmlnaHQgfHwgb3JpZ2luSUQgPT0gQ1NTVmFsdWVCb3R0b20pIHsKKyAgICAgICAgICAgIC8vIEZv
ciByaWdodC9ib3R0b20sIHRoZSBvZmZzZXQgaXMgcmVsYXRpdmUgdG8gdGhlIGZhciBlZGdlLgor
ICAgICAgICAgICAgb3JpZ2luID0gZWRnZURpc3RhbmNlOworICAgICAgICAgICAgc2lnbiA9IC0x
OworICAgICAgICB9CiAgICAgfQogCi0gICAgc3dpdGNoICh2YWx1ZS52YWx1ZUlEKCkpIHsKKyAg
ICBpZiAodmFsdWUtPmlzUGVyY2VudGFnZSgpKQorICAgICAgICByZXR1cm4gb3JpZ2luICsgc2ln
biAqIHZhbHVlLT5mbG9hdFZhbHVlKCkgLyAxMDAuZiAqIGVkZ2VEaXN0YW5jZTsKKworICAgIGlm
ICh2YWx1ZS0+aXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhMZW5ndGgoKSkgeworICAgICAgICBS
ZWY8Q2FsY3VsYXRpb25WYWx1ZT4gY2FsY3VsYXRpb25WYWx1ZSB7IHZhbHVlLT5jc3NDYWxjVmFs
dWUoKS0+Y3JlYXRlQ2FsY3VsYXRpb25WYWx1ZShjb252ZXJzaW9uRGF0YSkgfTsKKyAgICAgICAg
cmV0dXJuIG9yaWdpbiArIHNpZ24gKiBjYWxjdWxhdGlvblZhbHVlLT5ldmFsdWF0ZShlZGdlRGlz
dGFuY2UpOworICAgIH0KKyAgICAKKyAgICBzd2l0Y2ggKHZhbHVlLT52YWx1ZUlEKCkpIHsKICAg
ICBjYXNlIENTU1ZhbHVlVG9wOgogICAgICAgICBBU1NFUlQoIWlzSG9yaXpvbnRhbCk7CiAgICAg
ICAgIHJldHVybiAwOwpAQCAtNTIxLDExICs1MzgsMTMgQEAgc3RhdGljIGZsb2F0IHBvc2l0aW9u
RnJvbVZhbHVlKENTU1ByaW1pdAogICAgIGNhc2UgQ1NTVmFsdWVSaWdodDoKICAgICAgICAgQVNT
RVJUKGlzSG9yaXpvbnRhbCk7CiAgICAgICAgIHJldHVybiBzaXplLndpZHRoKCk7CisgICAgY2Fz
ZSBDU1NWYWx1ZUNlbnRlcjoKKyAgICAgICAgcmV0dXJuIG9yaWdpbiArIHNpZ24gKiAuNWYgKiBl
ZGdlRGlzdGFuY2U7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAg
cmV0dXJuIHZhbHVlLmNvbXB1dGVMZW5ndGg8ZmxvYXQ+KGNvbnZlcnNpb25EYXRhKTsKKyAgICBy
ZXR1cm4gb3JpZ2luICsgc2lnbiAqIHZhbHVlLT5jb21wdXRlTGVuZ3RoPGZsb2F0Pihjb252ZXJz
aW9uRGF0YSk7CiB9CiAKIEZsb2F0UG9pbnQgQ1NTR3JhZGllbnRWYWx1ZTo6Y29tcHV0ZUVuZFBv
aW50KENTU1ByaW1pdGl2ZVZhbHVlKiBob3Jpem9udGFsLCBDU1NQcmltaXRpdmVWYWx1ZSogdmVy
dGljYWwsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRhdGEmIGNvbnZlcnNpb25EYXRhLCBj
b25zdCBGbG9hdFNpemUmIHNpemUpCkBAIC01MzMsMTAgKzU1MiwxMCBAQCBGbG9hdFBvaW50IENT
U0dyYWRpZW50VmFsdWU6OmNvbXB1dGVFbmRQCiAgICAgRmxvYXRQb2ludCByZXN1bHQ7CiAKICAg
ICBpZiAoaG9yaXpvbnRhbCkKLSAgICAgICAgcmVzdWx0LnNldFgocG9zaXRpb25Gcm9tVmFsdWUo
Kmhvcml6b250YWwsIGNvbnZlcnNpb25EYXRhLCBzaXplLCB0cnVlKSk7CisgICAgICAgIHJlc3Vs
dC5zZXRYKHBvc2l0aW9uRnJvbVZhbHVlKGhvcml6b250YWwsIGNvbnZlcnNpb25EYXRhLCBzaXpl
LCB0cnVlKSk7CiAKICAgICBpZiAodmVydGljYWwpCi0gICAgICAgIHJlc3VsdC5zZXRZKHBvc2l0
aW9uRnJvbVZhbHVlKCp2ZXJ0aWNhbCwgY29udmVyc2lvbkRhdGEsIHNpemUsIGZhbHNlKSk7Cisg
ICAgICAgIHJlc3VsdC5zZXRZKHBvc2l0aW9uRnJvbVZhbHVlKHZlcnRpY2FsLCBjb252ZXJzaW9u
RGF0YSwgc2l6ZSwgZmFsc2UpKTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NTU1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBl
cnMuY3BwCShyZXZpc2lvbiAyMDgwMzApCisrKyBTb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL0NT
U1Byb3BlcnR5UGFyc2VySGVscGVycy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTczMSwxMSArNzMx
LDExIEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVEZXByZWNhdGUKICAgICBSZWZQ
dHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHBvaW50ID0gY29uc3VtZURlcHJlY2F0ZWRHcmFkaWVudFBv
aW50KGFyZ3MsIHRydWUpOwogICAgIGlmICghcG9pbnQpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJlc3VsdC0+c2V0Rmlyc3RYKFdURk1vdmUocG9pbnQpKTsKKyAgICByZXN1bHQtPnNl
dEZpcnN0WChwb2ludC5jb3B5UmVmKCkpOwogICAgIHBvaW50ID0gY29uc3VtZURlcHJlY2F0ZWRH
cmFkaWVudFBvaW50KGFyZ3MsIGZhbHNlKTsKICAgICBpZiAoIXBvaW50KQogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKLSAgICByZXN1bHQtPnNldEZpcnN0WShXVEZNb3ZlKHBvaW50KSk7CisgICAg
cmVzdWx0LT5zZXRGaXJzdFkocG9pbnQuY29weVJlZigpKTsKIAogICAgIGlmICghY29uc3VtZUNv
bW1hSW5jbHVkaW5nV2hpdGVzcGFjZShhcmdzKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CkBA
IC03NDUsMTcgKzc0NSwxNyBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lRGVwcmVj
YXRlCiAgICAgICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gcmFkaXVzID0gY29uc3VtZU51
bWJlcihhcmdzLCBWYWx1ZVJhbmdlQWxsKTsKICAgICAgICAgaWYgKCFyYWRpdXMgfHwgIWNvbnN1
bWVDb21tYUluY2x1ZGluZ1doaXRlc3BhY2UoYXJncykpCiAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICAgICAgZG93bmNhc3Q8Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZT4ocmVzdWx0Lmdl
dCgpKS0+c2V0Rmlyc3RSYWRpdXMoV1RGTW92ZShyYWRpdXMpKTsKKyAgICAgICAgZG93bmNhc3Q8
Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZT4ocmVzdWx0LmdldCgpKS0+c2V0Rmlyc3RSYWRpdXMocmFk
aXVzLmNvcHlSZWYoKSk7CiAgICAgfQogCiAgICAgcG9pbnQgPSBjb25zdW1lRGVwcmVjYXRlZEdy
YWRpZW50UG9pbnQoYXJncywgdHJ1ZSk7CiAgICAgaWYgKCFwb2ludCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgcmVzdWx0LT5zZXRTZWNvbmRYKFdURk1vdmUocG9pbnQpKTsKKyAgICBy
ZXN1bHQtPnNldFNlY29uZFgocG9pbnQuY29weVJlZigpKTsKICAgICBwb2ludCA9IGNvbnN1bWVE
ZXByZWNhdGVkR3JhZGllbnRQb2ludChhcmdzLCBmYWxzZSk7CiAgICAgaWYgKCFwb2ludCkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmVzdWx0LT5zZXRTZWNvbmRZKFdURk1vdmUocG9p
bnQpKTsKKyAgICByZXN1bHQtPnNldFNlY29uZFkocG9pbnQuY29weVJlZigpKTsKIAogICAgIC8v
IEZvciByYWRpYWwgZ3JhZGllbnRzIG9ubHksIHdlIG5vdyBleHBlY3QgdGhlIHNlY29uZCByYWRp
dXMuCiAgICAgaWYgKGlzRGVwcmVjYXRlZFJhZGlhbEdyYWRpZW50KSB7CkBAIC03NjQsNyArNzY0
LDcgQEAgc3RhdGljIFJlZlB0cjxDU1NWYWx1ZT4gY29uc3VtZURlcHJlY2F0ZQogICAgICAgICBS
ZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHJhZGl1cyA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFs
dWVSYW5nZUFsbCk7CiAgICAgICAgIGlmICghcmFkaXVzKQogICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0gICAgICAgIGRvd25jYXN0PENTU1JhZGlhbEdyYWRpZW50VmFsdWU+KHJlc3VsdC5n
ZXQoKSktPnNldFNlY29uZFJhZGl1cyhXVEZNb3ZlKHJhZGl1cykpOworICAgICAgICBkb3duY2Fz
dDxDU1NSYWRpYWxHcmFkaWVudFZhbHVlPihyZXN1bHQuZ2V0KCkpLT5zZXRTZWNvbmRSYWRpdXMo
cmFkaXVzLmNvcHlSZWYoKSk7CiAgICAgfQogCiAgICAgQ1NTR3JhZGllbnRDb2xvclN0b3Agc3Rv
cDsKQEAgLTc4OSw3ICs3ODksMTIgQEAgc3RhdGljIGJvb2wgY29uc3VtZUdyYWRpZW50Q29sb3JT
dG9wcyhDUwogICAgICAgICAvLyBUd28gaGludHMgaW4gYSByb3cgYXJlIG5vdCBhbGxvd2VkLgog
ICAgICAgICBpZiAoIXN0b3AubV9jb2xvciAmJiAoIXN1cHBvcnRzQ29sb3JIaW50cyB8fCBwcmV2
aW91c1N0b3BXYXNDb2xvckhpbnQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAg
ICAKICAgICAgICAgcHJldmlvdXNTdG9wV2FzQ29sb3JIaW50ID0gIXN0b3AubV9jb2xvcjsKKyAg
ICAgICAgCisgICAgICAgIC8vIEZJWE1FLU5FV1BBUlNFUjogVGhpcyBib29sZWFuIGNvdWxkIGJl
IHJlbW92ZWQuIE51bGwgY2hlY2tpbmcgY29sb3Igd291bGQgYmUgc3VmZmljaWVudC4KKyAgICAg
ICAgc3RvcC5pc01pZHBvaW50ID0gIXN0b3AubV9jb2xvcjsKKwogICAgICAgICBzdG9wLm1fcG9z
aXRpb24gPSBjb25zdW1lTGVuZ3RoT3JQZXJjZW50KHJhbmdlLCBjc3NQYXJzZXJNb2RlLCBWYWx1
ZVJhbmdlQWxsKTsKICAgICAgICAgaWYgKCFzdG9wLm1fY29sb3IgJiYgIXN0b3AubV9wb3NpdGlv
bikKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTgxMywxNyArODE4LDE3IEBAIHN0YXRp
YyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVEZXByZWNhdGUKICAgICBpZiAoKGNlbnRlclggfHwg
Y2VudGVyWSkgJiYgIWNvbnN1bWVDb21tYUluY2x1ZGluZ1doaXRlc3BhY2UoYXJncykpCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCi0gICAgcmVzdWx0LT5zZXRGaXJzdFgoV1RGTW92ZShjZW50
ZXJYKSk7Ci0gICAgcmVzdWx0LT5zZXRGaXJzdFkoV1RGTW92ZShjZW50ZXJZKSk7Ci0gICAgcmVz
dWx0LT5zZXRTZWNvbmRYKFdURk1vdmUoY2VudGVyWCkpOwotICAgIHJlc3VsdC0+c2V0U2Vjb25k
WShXVEZNb3ZlKGNlbnRlclkpKTsKKyAgICByZXN1bHQtPnNldEZpcnN0WChjZW50ZXJYLmNvcHlS
ZWYoKSk7CisgICAgcmVzdWx0LT5zZXRGaXJzdFkoY2VudGVyWS5jb3B5UmVmKCkpOworICAgIHJl
c3VsdC0+c2V0U2Vjb25kWChjZW50ZXJYLmNvcHlSZWYoKSk7CisgICAgcmVzdWx0LT5zZXRTZWNv
bmRZKGNlbnRlclkuY29weVJlZigpKTsKIAogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4g
c2hhcGUgPSBjb25zdW1lSWRlbnQ8Q1NTVmFsdWVDaXJjbGUsIENTU1ZhbHVlRWxsaXBzZT4oYXJn
cyk7CiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBzaXplS2V5d29yZCA9IGNvbnN1bWVJ
ZGVudDxDU1NWYWx1ZUNsb3Nlc3RTaWRlLCBDU1NWYWx1ZUNsb3Nlc3RDb3JuZXIsIENTU1ZhbHVl
RmFydGhlc3RTaWRlLCBDU1NWYWx1ZUZhcnRoZXN0Q29ybmVyLCBDU1NWYWx1ZUNvbnRhaW4sIENT
U1ZhbHVlQ292ZXI+KGFyZ3MpOwogICAgIGlmICghc2hhcGUpCiAgICAgICAgIHNoYXBlID0gY29u
c3VtZUlkZW50PENTU1ZhbHVlQ2lyY2xlLCBDU1NWYWx1ZUVsbGlwc2U+KGFyZ3MpOwotICAgIHJl
c3VsdC0+c2V0U2hhcGUoV1RGTW92ZShzaGFwZSkpOwotICAgIHJlc3VsdC0+c2V0U2l6aW5nQmVo
YXZpb3IoV1RGTW92ZShzaXplS2V5d29yZCkpOworICAgIHJlc3VsdC0+c2V0U2hhcGUoc2hhcGUu
Y29weVJlZigpKTsKKyAgICByZXN1bHQtPnNldFNpemluZ0JlaGF2aW9yKHNpemVLZXl3b3JkLmNv
cHlSZWYoKSk7CiAKICAgICAvLyBPciwgdHdvIGxlbmd0aHMgb3IgcGVyY2VudGFnZXMKICAgICBp
ZiAoIXNoYXBlICYmICFzaXplS2V5d29yZCkgewpAQCAtODM0LDggKzgzOSw4IEBAIHN0YXRpYyBS
ZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVEZXByZWNhdGUKICAgICAgICAgICAgIGlmICghdmVydGlj
YWxTaXplKQogICAgICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICAgICAgY29u
c3VtZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFjZShhcmdzKTsKLSAgICAgICAgICAgIHJlc3VsdC0+
c2V0RW5kSG9yaXpvbnRhbFNpemUoV1RGTW92ZShob3Jpem9udGFsU2l6ZSkpOwotICAgICAgICAg
ICAgcmVzdWx0LT5zZXRFbmRWZXJ0aWNhbFNpemUoV1RGTW92ZSh2ZXJ0aWNhbFNpemUpKTsKKyAg
ICAgICAgICAgIHJlc3VsdC0+c2V0RW5kSG9yaXpvbnRhbFNpemUoaG9yaXpvbnRhbFNpemUuY29w
eVJlZigpKTsKKyAgICAgICAgICAgIHJlc3VsdC0+c2V0RW5kVmVydGljYWxTaXplKHZlcnRpY2Fs
U2l6ZS5jb3B5UmVmKCkpOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgY29uc3Vt
ZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFjZShhcmdzKTsKQEAgLTkwNCwxMCArOTA5LDEwIEBAIHN0
YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVSYWRpYWxHcmEKICAgICAgICAgfHwgKHZlcnRp
Y2FsU2l6ZSAmJiB2ZXJ0aWNhbFNpemUtPmlzQ2FsY3VsYXRlZFBlcmNlbnRhZ2VXaXRoTGVuZ3Ro
KCkpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJlc3VsdC0+c2V0U2hhcGUoV1RG
TW92ZShzaGFwZSkpOwotICAgIHJlc3VsdC0+c2V0U2l6aW5nQmVoYXZpb3IoV1RGTW92ZShzaXpl
S2V5d29yZCkpOwotICAgIHJlc3VsdC0+c2V0RW5kSG9yaXpvbnRhbFNpemUoV1RGTW92ZShob3Jp
em9udGFsU2l6ZSkpOwotICAgIHJlc3VsdC0+c2V0RW5kVmVydGljYWxTaXplKFdURk1vdmUodmVy
dGljYWxTaXplKSk7CisgICAgcmVzdWx0LT5zZXRTaGFwZShzaGFwZS5jb3B5UmVmKCkpOworICAg
IHJlc3VsdC0+c2V0U2l6aW5nQmVoYXZpb3Ioc2l6ZUtleXdvcmQuY29weVJlZigpKTsKKyAgICBy
ZXN1bHQtPnNldEVuZEhvcml6b250YWxTaXplKGhvcml6b250YWxTaXplLmNvcHlSZWYoKSk7Cisg
ICAgcmVzdWx0LT5zZXRFbmRWZXJ0aWNhbFNpemUodmVydGljYWxTaXplLmNvcHlSZWYoKSk7CiAK
ICAgICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IGNlbnRlclg7CiAgICAgUmVmUHRyPENTU1By
aW1pdGl2ZVZhbHVlPiBjZW50ZXJZOwpAQCAtOTE3LDEyICs5MjIsMTIgQEAgc3RhdGljIFJlZlB0
cjxDU1NWYWx1ZT4gY29uc3VtZVJhZGlhbEdyYQogICAgICAgICBpZiAoIShjZW50ZXJYICYmIGNl
bnRlclkpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIAotICAgICAgICBy
ZXN1bHQtPnNldEZpcnN0WChXVEZNb3ZlKGNlbnRlclgpKTsKLSAgICAgICAgcmVzdWx0LT5zZXRG
aXJzdFkoV1RGTW92ZShjZW50ZXJZKSk7CisgICAgICAgIHJlc3VsdC0+c2V0Rmlyc3RYKGNlbnRl
clguY29weVJlZigpKTsKKyAgICAgICAgcmVzdWx0LT5zZXRGaXJzdFkoY2VudGVyWS5jb3B5UmVm
KCkpOwogICAgICAgICAKICAgICAgICAgLy8gUmlnaHQgbm93LCBDU1MgcmFkaWFsIGdyYWRpZW50
cyBoYXZlIHRoZSBzYW1lIHN0YXJ0IGFuZCBlbmQgY2VudGVycy4KLSAgICAgICAgcmVzdWx0LT5z
ZXRTZWNvbmRYKFdURk1vdmUoY2VudGVyWCkpOwotICAgICAgICByZXN1bHQtPnNldFNlY29uZFko
V1RGTW92ZShjZW50ZXJZKSk7CisgICAgICAgIHJlc3VsdC0+c2V0U2Vjb25kWChjZW50ZXJYLmNv
cHlSZWYoKSk7CisgICAgICAgIHJlc3VsdC0+c2V0U2Vjb25kWShjZW50ZXJZLmNvcHlSZWYoKSk7
CiAgICAgfQogCiAgICAgaWYgKChzaGFwZSB8fCBzaXplS2V5d29yZCB8fCBob3Jpem9udGFsU2l6
ZSB8fCBjZW50ZXJYIHx8IGNlbnRlclkpICYmICFjb25zdW1lQ29tbWFJbmNsdWRpbmdXaGl0ZXNw
YWNlKGFyZ3MpKQpAQCAtOTUyLDggKzk1Nyw4IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNv
bnN1bWVMaW5lYXJHcmEKICAgICAgICAgICAgIGVuZFggPSBjb25zdW1lSWRlbnQ8Q1NTVmFsdWVM
ZWZ0LCBDU1NWYWx1ZVJpZ2h0PihhcmdzKTsKICAgICAgICAgfQogCi0gICAgICAgIHJlc3VsdC0+
c2V0Rmlyc3RYKFdURk1vdmUoZW5kWCkpOwotICAgICAgICByZXN1bHQtPnNldEZpcnN0WShXVEZN
b3ZlKGVuZFkpKTsKKyAgICAgICAgcmVzdWx0LT5zZXRGaXJzdFgoZW5kWC5jb3B5UmVmKCkpOwor
ICAgICAgICByZXN1bHQtPnNldEZpcnN0WShlbmRZLmNvcHlSZWYoKSk7CiAgICAgfSBlbHNlIHsK
ICAgICAgICAgZXhwZWN0Q29tbWEgPSBmYWxzZTsKICAgICB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>293184</attachid>
            <date>2016-10-28 12:31:15 -0700</date>
            <delta_ts>2016-10-28 12:33:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>10781</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIwODA2MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDE2LTEwLTI4ICBEYXZlIEh5
YXR0ICA8aHlhdHRAYXBwbGUuY29tPgorCisgICAgICAgIFtDU1MgUGFyc2VyXSBDbGVhbiB1cCBn
cmFkaWVudCBwYXJzaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNjQxMzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGNzcy9DU1NHcmFkaWVudFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnBv
c2l0aW9uRnJvbVZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU0dyYWRpZW50VmFsdWU6OmNv
bXB1dGVFbmRQb2ludCk6CisgICAgICAgICogY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhl
bHBlcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpj
b25zdW1lRGVwcmVjYXRlZEdyYWRpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Byb3BlcnR5
UGFyc2VySGVscGVyczo6Y29uc3VtZUdyYWRpZW50Q29sb3JTdG9wcyk6CisgICAgICAgIChXZWJD
b3JlOjpDU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnM6OmNvbnN1bWVEZXByZWNhdGVkUmFkaWFsR3Jh
ZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzOjpjb25z
dW1lUmFkaWFsR3JhZGllbnQpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJvcGVydHlQYXJzZXJI
ZWxwZXJzOjpjb25zdW1lTGluZWFyR3JhZGllbnQpOgorCiAyMDE2LTEwLTI4ICBEZWFuIEphY2tz
b24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICBOZXcgQ1NTIFBhcnNlciBzaG91bGQgdXNl
IENvbG9ycyBub3QgUkdCQTMycwpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRpZW50
VmFsdWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFkaWVudFZh
bHVlLmNwcAkocmV2aXNpb24gMjA4MDMwKQorKysgU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYWRp
ZW50VmFsdWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
R3JhZGllbnRJbWFnZS5oIgogI2luY2x1ZGUgIkltYWdlLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRl
clN0eWxlLmgiCisjaW5jbHVkZSAiUGFpci5oIgogI2luY2x1ZGUgIlJlbmRlckVsZW1lbnQuaCIK
ICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU3R5bGVSZXNvbHZlci5oIgpAQCAt
NDk0LDIxICs0OTUsMzcgQEAgdm9pZCBDU1NHcmFkaWVudFZhbHVlOjphZGRTdG9wcyhHcmFkaWVu
dAogICAgIGdyYWRpZW50LnNldFN0b3BzU29ydGVkKHRydWUpOwogfQogCi1zdGF0aWMgZmxvYXQg
cG9zaXRpb25Gcm9tVmFsdWUoQ1NTUHJpbWl0aXZlVmFsdWUmIHZhbHVlLCBjb25zdCBDU1NUb0xl
bmd0aENvbnZlcnNpb25EYXRhJiBjb252ZXJzaW9uRGF0YSwgY29uc3QgRmxvYXRTaXplJiBzaXpl
LCBib29sIGlzSG9yaXpvbnRhbCkKK3N0YXRpYyBmbG9hdCBwb3NpdGlvbkZyb21WYWx1ZShjb25z
dCBDU1NQcmltaXRpdmVWYWx1ZSogdmFsdWUsIGNvbnN0IENTU1RvTGVuZ3RoQ29udmVyc2lvbkRh
dGEmIGNvbnZlcnNpb25EYXRhLCBjb25zdCBGbG9hdFNpemUmIHNpemUsIGJvb2wgaXNIb3Jpem9u
dGFsKQogewotICAgIGlmICh2YWx1ZS5pc051bWJlcigpKQotICAgICAgICByZXR1cm4gdmFsdWUu
ZmxvYXRWYWx1ZSgpICogY29udmVyc2lvbkRhdGEuem9vbSgpOwotCisgICAgaW50IG9yaWdpbiA9
IDA7CisgICAgaW50IHNpZ24gPSAxOwogICAgIGludCBlZGdlRGlzdGFuY2UgPSBpc0hvcml6b250
YWwgPyBzaXplLndpZHRoKCkgOiBzaXplLmhlaWdodCgpOwotICAgIGlmICh2YWx1ZS5pc1BlcmNl
bnRhZ2UoKSkKLSAgICAgICAgcmV0dXJuIHZhbHVlLmZsb2F0VmFsdWUoKSAvIDEwMC5mICogZWRn
ZURpc3RhbmNlOwotCi0gICAgaWYgKHZhbHVlLmlzQ2FsY3VsYXRlZFBlcmNlbnRhZ2VXaXRoTGVu
Z3RoKCkpIHsKLSAgICAgICAgUmVmPENhbGN1bGF0aW9uVmFsdWU+IGNhbGN1bGF0aW9uVmFsdWUg
eyB2YWx1ZS5jc3NDYWxjVmFsdWUoKS0+Y3JlYXRlQ2FsY3VsYXRpb25WYWx1ZShjb252ZXJzaW9u
RGF0YSkgfTsKLSAgICAgICAgcmV0dXJuIGNhbGN1bGF0aW9uVmFsdWUtPmV2YWx1YXRlKGVkZ2VE
aXN0YW5jZSk7CisgICAgCisgICAgLy8gSW4gdGhpcyBjYXNlIHRoZSBjZW50ZXIgb2YgdGhlIGdy
YWRpZW50IGlzIGdpdmVuIHJlbGF0aXZlIHRvIGFuIGVkZ2UgaW4gdGhlCisgICAgLy8gZm9ybSBv
ZjogWyB0b3AgfCBib3R0b20gfCByaWdodCB8IGxlZnQgXSBbIDxwZXJjZW50YWdlPiB8IDxsZW5n
dGg+IF0uCisgICAgaWYgKHZhbHVlLT5pc1BhaXIoKSkgeworICAgICAgICBDU1NWYWx1ZUlEIG9y
aWdpbklEID0gdmFsdWUtPnBhaXJWYWx1ZSgpLT5maXJzdCgpLT52YWx1ZUlEKCk7CisgICAgICAg
IHZhbHVlID0gdmFsdWUtPnBhaXJWYWx1ZSgpLT5zZWNvbmQoKTsKKyAgICAgICAgCisgICAgICAg
IGlmIChvcmlnaW5JRCA9PSBDU1NWYWx1ZVJpZ2h0IHx8IG9yaWdpbklEID09IENTU1ZhbHVlQm90
dG9tKSB7CisgICAgICAgICAgICAvLyBGb3IgcmlnaHQvYm90dG9tLCB0aGUgb2Zmc2V0IGlzIHJl
bGF0aXZlIHRvIHRoZSBmYXIgZWRnZS4KKyAgICAgICAgICAgIG9yaWdpbiA9IGVkZ2VEaXN0YW5j
ZTsKKyAgICAgICAgICAgIHNpZ24gPSAtMTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICBp
ZiAodmFsdWUtPmlzTnVtYmVyKCkpCisgICAgICAgIHJldHVybiBvcmlnaW4gKyBzaWduICogdmFs
dWUtPmZsb2F0VmFsdWUoKSAqIGNvbnZlcnNpb25EYXRhLnpvb20oKTsKKyAgICAKKyAgICBpZiAo
dmFsdWUtPmlzUGVyY2VudGFnZSgpKQorICAgICAgICByZXR1cm4gb3JpZ2luICsgc2lnbiAqIHZh
bHVlLT5mbG9hdFZhbHVlKCkgLyAxMDAuZiAqIGVkZ2VEaXN0YW5jZTsKKworICAgIGlmICh2YWx1
ZS0+aXNDYWxjdWxhdGVkUGVyY2VudGFnZVdpdGhMZW5ndGgoKSkgeworICAgICAgICBSZWY8Q2Fs
Y3VsYXRpb25WYWx1ZT4gY2FsY3VsYXRpb25WYWx1ZSB7IHZhbHVlLT5jc3NDYWxjVmFsdWUoKS0+
Y3JlYXRlQ2FsY3VsYXRpb25WYWx1ZShjb252ZXJzaW9uRGF0YSkgfTsKKyAgICAgICAgcmV0dXJu
IG9yaWdpbiArIHNpZ24gKiBjYWxjdWxhdGlvblZhbHVlLT5ldmFsdWF0ZShlZGdlRGlzdGFuY2Up
OwogICAgIH0KLQotICAgIHN3aXRjaCAodmFsdWUudmFsdWVJRCgpKSB7CisgICAgCisgICAgc3dp
dGNoICh2YWx1ZS0+dmFsdWVJRCgpKSB7CiAgICAgY2FzZSBDU1NWYWx1ZVRvcDoKICAgICAgICAg
QVNTRVJUKCFpc0hvcml6b250YWwpOwogICAgICAgICByZXR1cm4gMDsKQEAgLTUyMSwxMSArNTM4
LDEzIEBAIHN0YXRpYyBmbG9hdCBwb3NpdGlvbkZyb21WYWx1ZShDU1NQcmltaXQKICAgICBjYXNl
IENTU1ZhbHVlUmlnaHQ6CiAgICAgICAgIEFTU0VSVChpc0hvcml6b250YWwpOwogICAgICAgICBy
ZXR1cm4gc2l6ZS53aWR0aCgpOworICAgIGNhc2UgQ1NTVmFsdWVDZW50ZXI6CisgICAgICAgIHJl
dHVybiBvcmlnaW4gKyBzaWduICogLjVmICogZWRnZURpc3RhbmNlOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KIAotICAgIHJldHVybiB2YWx1ZS5jb21wdXRlTGVuZ3RoPGZs
b2F0Pihjb252ZXJzaW9uRGF0YSk7CisgICAgcmV0dXJuIG9yaWdpbiArIHNpZ24gKiB2YWx1ZS0+
Y29tcHV0ZUxlbmd0aDxmbG9hdD4oY29udmVyc2lvbkRhdGEpOwogfQogCiBGbG9hdFBvaW50IENT
U0dyYWRpZW50VmFsdWU6OmNvbXB1dGVFbmRQb2ludChDU1NQcmltaXRpdmVWYWx1ZSogaG9yaXpv
bnRhbCwgQ1NTUHJpbWl0aXZlVmFsdWUqIHZlcnRpY2FsLCBjb25zdCBDU1NUb0xlbmd0aENvbnZl
cnNpb25EYXRhJiBjb252ZXJzaW9uRGF0YSwgY29uc3QgRmxvYXRTaXplJiBzaXplKQpAQCAtNTMz
LDEwICs1NTIsMTAgQEAgRmxvYXRQb2ludCBDU1NHcmFkaWVudFZhbHVlOjpjb21wdXRlRW5kUAog
ICAgIEZsb2F0UG9pbnQgcmVzdWx0OwogCiAgICAgaWYgKGhvcml6b250YWwpCi0gICAgICAgIHJl
c3VsdC5zZXRYKHBvc2l0aW9uRnJvbVZhbHVlKCpob3Jpem9udGFsLCBjb252ZXJzaW9uRGF0YSwg
c2l6ZSwgdHJ1ZSkpOworICAgICAgICByZXN1bHQuc2V0WChwb3NpdGlvbkZyb21WYWx1ZShob3Jp
em9udGFsLCBjb252ZXJzaW9uRGF0YSwgc2l6ZSwgdHJ1ZSkpOwogCiAgICAgaWYgKHZlcnRpY2Fs
KQotICAgICAgICByZXN1bHQuc2V0WShwb3NpdGlvbkZyb21WYWx1ZSgqdmVydGljYWwsIGNvbnZl
cnNpb25EYXRhLCBzaXplLCBmYWxzZSkpOworICAgICAgICByZXN1bHQuc2V0WShwb3NpdGlvbkZy
b21WYWx1ZSh2ZXJ0aWNhbCwgY29udmVyc2lvbkRhdGEsIHNpemUsIGZhbHNlKSk7CiAKICAgICBy
ZXR1cm4gcmVzdWx0OwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9w
ZXJ0eVBhcnNlckhlbHBlcnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvQ1NTUHJvcGVydHlQYXJzZXJIZWxwZXJzLmNwcAkocmV2aXNpb24gMjA4MDMwKQorKysg
U291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NQcm9wZXJ0eVBhcnNlckhlbHBlcnMuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC03MzEsMTEgKzczMSwxMSBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVl
PiBjb25zdW1lRGVwcmVjYXRlCiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiBwb2ludCA9
IGNvbnN1bWVEZXByZWNhdGVkR3JhZGllbnRQb2ludChhcmdzLCB0cnVlKTsKICAgICBpZiAoIXBv
aW50KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXN1bHQtPnNldEZpcnN0WChXVEZN
b3ZlKHBvaW50KSk7CisgICAgcmVzdWx0LT5zZXRGaXJzdFgocG9pbnQuY29weVJlZigpKTsKICAg
ICBwb2ludCA9IGNvbnN1bWVEZXByZWNhdGVkR3JhZGllbnRQb2ludChhcmdzLCBmYWxzZSk7CiAg
ICAgaWYgKCFwb2ludCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmVzdWx0LT5zZXRG
aXJzdFkoV1RGTW92ZShwb2ludCkpOworICAgIHJlc3VsdC0+c2V0Rmlyc3RZKHBvaW50LmNvcHlS
ZWYoKSk7CiAKICAgICBpZiAoIWNvbnN1bWVDb21tYUluY2x1ZGluZ1doaXRlc3BhY2UoYXJncykp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNzQ1LDE3ICs3NDUsMTcgQEAgc3RhdGljIFJl
ZlB0cjxDU1NWYWx1ZT4gY29uc3VtZURlcHJlY2F0ZQogICAgICAgICBSZWZQdHI8Q1NTUHJpbWl0
aXZlVmFsdWU+IHJhZGl1cyA9IGNvbnN1bWVOdW1iZXIoYXJncywgVmFsdWVSYW5nZUFsbCk7CiAg
ICAgICAgIGlmICghcmFkaXVzIHx8ICFjb25zdW1lQ29tbWFJbmNsdWRpbmdXaGl0ZXNwYWNlKGFy
Z3MpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGRvd25jYXN0PENTU1Jh
ZGlhbEdyYWRpZW50VmFsdWU+KHJlc3VsdC5nZXQoKSktPnNldEZpcnN0UmFkaXVzKFdURk1vdmUo
cmFkaXVzKSk7CisgICAgICAgIGRvd25jYXN0PENTU1JhZGlhbEdyYWRpZW50VmFsdWU+KHJlc3Vs
dC5nZXQoKSktPnNldEZpcnN0UmFkaXVzKHJhZGl1cy5jb3B5UmVmKCkpOwogICAgIH0KIAogICAg
IHBvaW50ID0gY29uc3VtZURlcHJlY2F0ZWRHcmFkaWVudFBvaW50KGFyZ3MsIHRydWUpOwogICAg
IGlmICghcG9pbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJlc3VsdC0+c2V0U2Vj
b25kWChXVEZNb3ZlKHBvaW50KSk7CisgICAgcmVzdWx0LT5zZXRTZWNvbmRYKHBvaW50LmNvcHlS
ZWYoKSk7CiAgICAgcG9pbnQgPSBjb25zdW1lRGVwcmVjYXRlZEdyYWRpZW50UG9pbnQoYXJncywg
ZmFsc2UpOwogICAgIGlmICghcG9pbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJl
c3VsdC0+c2V0U2Vjb25kWShXVEZNb3ZlKHBvaW50KSk7CisgICAgcmVzdWx0LT5zZXRTZWNvbmRZ
KHBvaW50LmNvcHlSZWYoKSk7CiAKICAgICAvLyBGb3IgcmFkaWFsIGdyYWRpZW50cyBvbmx5LCB3
ZSBub3cgZXhwZWN0IHRoZSBzZWNvbmQgcmFkaXVzLgogICAgIGlmIChpc0RlcHJlY2F0ZWRSYWRp
YWxHcmFkaWVudCkgewpAQCAtNzY0LDcgKzc2NCw3IEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+
IGNvbnN1bWVEZXByZWNhdGUKICAgICAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVlPiByYWRp
dXMgPSBjb25zdW1lTnVtYmVyKGFyZ3MsIFZhbHVlUmFuZ2VBbGwpOwogICAgICAgICBpZiAoIXJh
ZGl1cykKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBkb3duY2FzdDxDU1NS
YWRpYWxHcmFkaWVudFZhbHVlPihyZXN1bHQuZ2V0KCkpLT5zZXRTZWNvbmRSYWRpdXMoV1RGTW92
ZShyYWRpdXMpKTsKKyAgICAgICAgZG93bmNhc3Q8Q1NTUmFkaWFsR3JhZGllbnRWYWx1ZT4ocmVz
dWx0LmdldCgpKS0+c2V0U2Vjb25kUmFkaXVzKHJhZGl1cy5jb3B5UmVmKCkpOwogICAgIH0KIAog
ICAgIENTU0dyYWRpZW50Q29sb3JTdG9wIHN0b3A7CkBAIC03ODksNyArNzg5LDEyIEBAIHN0YXRp
YyBib29sIGNvbnN1bWVHcmFkaWVudENvbG9yU3RvcHMoQ1MKICAgICAgICAgLy8gVHdvIGhpbnRz
IGluIGEgcm93IGFyZSBub3QgYWxsb3dlZC4KICAgICAgICAgaWYgKCFzdG9wLm1fY29sb3IgJiYg
KCFzdXBwb3J0c0NvbG9ySGludHMgfHwgcHJldmlvdXNTdG9wV2FzQ29sb3JIaW50KSkKICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgCiAgICAgICAgIHByZXZpb3VzU3RvcFdhc0Nv
bG9ySGludCA9ICFzdG9wLm1fY29sb3I7CisgICAgICAgIAorICAgICAgICAvLyBGSVhNRS1ORVdQ
QVJTRVI6IFRoaXMgYm9vbGVhbiBjb3VsZCBiZSByZW1vdmVkLiBOdWxsIGNoZWNraW5nIGNvbG9y
IHdvdWxkIGJlIHN1ZmZpY2llbnQuCisgICAgICAgIHN0b3AuaXNNaWRwb2ludCA9ICFzdG9wLm1f
Y29sb3I7CisKICAgICAgICAgc3RvcC5tX3Bvc2l0aW9uID0gY29uc3VtZUxlbmd0aE9yUGVyY2Vu
dChyYW5nZSwgY3NzUGFyc2VyTW9kZSwgVmFsdWVSYW5nZUFsbCk7CiAgICAgICAgIGlmICghc3Rv
cC5tX2NvbG9yICYmICFzdG9wLm1fcG9zaXRpb24pCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CkBAIC04MTMsMTcgKzgxOCwxNyBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lRGVw
cmVjYXRlCiAgICAgaWYgKChjZW50ZXJYIHx8IGNlbnRlclkpICYmICFjb25zdW1lQ29tbWFJbmNs
dWRpbmdXaGl0ZXNwYWNlKGFyZ3MpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHJl
c3VsdC0+c2V0Rmlyc3RYKFdURk1vdmUoY2VudGVyWCkpOwotICAgIHJlc3VsdC0+c2V0Rmlyc3RZ
KFdURk1vdmUoY2VudGVyWSkpOwotICAgIHJlc3VsdC0+c2V0U2Vjb25kWChXVEZNb3ZlKGNlbnRl
clgpKTsKLSAgICByZXN1bHQtPnNldFNlY29uZFkoV1RGTW92ZShjZW50ZXJZKSk7CisgICAgcmVz
dWx0LT5zZXRGaXJzdFgoY2VudGVyWC5jb3B5UmVmKCkpOworICAgIHJlc3VsdC0+c2V0Rmlyc3RZ
KGNlbnRlclkuY29weVJlZigpKTsKKyAgICByZXN1bHQtPnNldFNlY29uZFgoY2VudGVyWC5jb3B5
UmVmKCkpOworICAgIHJlc3VsdC0+c2V0U2Vjb25kWShjZW50ZXJZLmNvcHlSZWYoKSk7CiAKICAg
ICBSZWZQdHI8Q1NTUHJpbWl0aXZlVmFsdWU+IHNoYXBlID0gY29uc3VtZUlkZW50PENTU1ZhbHVl
Q2lyY2xlLCBDU1NWYWx1ZUVsbGlwc2U+KGFyZ3MpOwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVW
YWx1ZT4gc2l6ZUtleXdvcmQgPSBjb25zdW1lSWRlbnQ8Q1NTVmFsdWVDbG9zZXN0U2lkZSwgQ1NT
VmFsdWVDbG9zZXN0Q29ybmVyLCBDU1NWYWx1ZUZhcnRoZXN0U2lkZSwgQ1NTVmFsdWVGYXJ0aGVz
dENvcm5lciwgQ1NTVmFsdWVDb250YWluLCBDU1NWYWx1ZUNvdmVyPihhcmdzKTsKICAgICBpZiAo
IXNoYXBlKQogICAgICAgICBzaGFwZSA9IGNvbnN1bWVJZGVudDxDU1NWYWx1ZUNpcmNsZSwgQ1NT
VmFsdWVFbGxpcHNlPihhcmdzKTsKLSAgICByZXN1bHQtPnNldFNoYXBlKFdURk1vdmUoc2hhcGUp
KTsKLSAgICByZXN1bHQtPnNldFNpemluZ0JlaGF2aW9yKFdURk1vdmUoc2l6ZUtleXdvcmQpKTsK
KyAgICByZXN1bHQtPnNldFNoYXBlKHNoYXBlLmNvcHlSZWYoKSk7CisgICAgcmVzdWx0LT5zZXRT
aXppbmdCZWhhdmlvcihzaXplS2V5d29yZC5jb3B5UmVmKCkpOwogCiAgICAgLy8gT3IsIHR3byBs
ZW5ndGhzIG9yIHBlcmNlbnRhZ2VzCiAgICAgaWYgKCFzaGFwZSAmJiAhc2l6ZUtleXdvcmQpIHsK
QEAgLTgzNCw4ICs4MzksOCBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lRGVwcmVj
YXRlCiAgICAgICAgICAgICBpZiAoIXZlcnRpY2FsU2l6ZSkKICAgICAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAgICAgICAgIGNvbnN1bWVDb21tYUluY2x1ZGluZ1doaXRlc3BhY2Uo
YXJncyk7Ci0gICAgICAgICAgICByZXN1bHQtPnNldEVuZEhvcml6b250YWxTaXplKFdURk1vdmUo
aG9yaXpvbnRhbFNpemUpKTsKLSAgICAgICAgICAgIHJlc3VsdC0+c2V0RW5kVmVydGljYWxTaXpl
KFdURk1vdmUodmVydGljYWxTaXplKSk7CisgICAgICAgICAgICByZXN1bHQtPnNldEVuZEhvcml6
b250YWxTaXplKGhvcml6b250YWxTaXplLmNvcHlSZWYoKSk7CisgICAgICAgICAgICByZXN1bHQt
PnNldEVuZFZlcnRpY2FsU2l6ZSh2ZXJ0aWNhbFNpemUuY29weVJlZigpKTsKICAgICAgICAgfQog
ICAgIH0gZWxzZSB7CiAgICAgICAgIGNvbnN1bWVDb21tYUluY2x1ZGluZ1doaXRlc3BhY2UoYXJn
cyk7CkBAIC05MDQsMTAgKzkwOSwxMCBAQCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1l
UmFkaWFsR3JhCiAgICAgICAgIHx8ICh2ZXJ0aWNhbFNpemUgJiYgdmVydGljYWxTaXplLT5pc0Nh
bGN1bGF0ZWRQZXJjZW50YWdlV2l0aExlbmd0aCgpKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKLSAgICByZXN1bHQtPnNldFNoYXBlKFdURk1vdmUoc2hhcGUpKTsKLSAgICByZXN1bHQtPnNl
dFNpemluZ0JlaGF2aW9yKFdURk1vdmUoc2l6ZUtleXdvcmQpKTsKLSAgICByZXN1bHQtPnNldEVu
ZEhvcml6b250YWxTaXplKFdURk1vdmUoaG9yaXpvbnRhbFNpemUpKTsKLSAgICByZXN1bHQtPnNl
dEVuZFZlcnRpY2FsU2l6ZShXVEZNb3ZlKHZlcnRpY2FsU2l6ZSkpOworICAgIHJlc3VsdC0+c2V0
U2hhcGUoc2hhcGUuY29weVJlZigpKTsKKyAgICByZXN1bHQtPnNldFNpemluZ0JlaGF2aW9yKHNp
emVLZXl3b3JkLmNvcHlSZWYoKSk7CisgICAgcmVzdWx0LT5zZXRFbmRIb3Jpem9udGFsU2l6ZSho
b3Jpem9udGFsU2l6ZS5jb3B5UmVmKCkpOworICAgIHJlc3VsdC0+c2V0RW5kVmVydGljYWxTaXpl
KHZlcnRpY2FsU2l6ZS5jb3B5UmVmKCkpOwogCiAgICAgUmVmUHRyPENTU1ByaW1pdGl2ZVZhbHVl
PiBjZW50ZXJYOwogICAgIFJlZlB0cjxDU1NQcmltaXRpdmVWYWx1ZT4gY2VudGVyWTsKQEAgLTkx
NywxMiArOTIyLDEyIEBAIHN0YXRpYyBSZWZQdHI8Q1NTVmFsdWU+IGNvbnN1bWVSYWRpYWxHcmEK
ICAgICAgICAgaWYgKCEoY2VudGVyWCAmJiBjZW50ZXJZKSkKICAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwogICAgICAgICAKLSAgICAgICAgcmVzdWx0LT5zZXRGaXJzdFgoV1RGTW92ZShjZW50
ZXJYKSk7Ci0gICAgICAgIHJlc3VsdC0+c2V0Rmlyc3RZKFdURk1vdmUoY2VudGVyWSkpOworICAg
ICAgICByZXN1bHQtPnNldEZpcnN0WChjZW50ZXJYLmNvcHlSZWYoKSk7CisgICAgICAgIHJlc3Vs
dC0+c2V0Rmlyc3RZKGNlbnRlclkuY29weVJlZigpKTsKICAgICAgICAgCiAgICAgICAgIC8vIFJp
Z2h0IG5vdywgQ1NTIHJhZGlhbCBncmFkaWVudHMgaGF2ZSB0aGUgc2FtZSBzdGFydCBhbmQgZW5k
IGNlbnRlcnMuCi0gICAgICAgIHJlc3VsdC0+c2V0U2Vjb25kWChXVEZNb3ZlKGNlbnRlclgpKTsK
LSAgICAgICAgcmVzdWx0LT5zZXRTZWNvbmRZKFdURk1vdmUoY2VudGVyWSkpOworICAgICAgICBy
ZXN1bHQtPnNldFNlY29uZFgoY2VudGVyWC5jb3B5UmVmKCkpOworICAgICAgICByZXN1bHQtPnNl
dFNlY29uZFkoY2VudGVyWS5jb3B5UmVmKCkpOwogICAgIH0KIAogICAgIGlmICgoc2hhcGUgfHwg
c2l6ZUtleXdvcmQgfHwgaG9yaXpvbnRhbFNpemUgfHwgY2VudGVyWCB8fCBjZW50ZXJZKSAmJiAh
Y29uc3VtZUNvbW1hSW5jbHVkaW5nV2hpdGVzcGFjZShhcmdzKSkKQEAgLTk1Miw4ICs5NTcsOCBA
QCBzdGF0aWMgUmVmUHRyPENTU1ZhbHVlPiBjb25zdW1lTGluZWFyR3JhCiAgICAgICAgICAgICBl
bmRYID0gY29uc3VtZUlkZW50PENTU1ZhbHVlTGVmdCwgQ1NTVmFsdWVSaWdodD4oYXJncyk7CiAg
ICAgICAgIH0KIAotICAgICAgICByZXN1bHQtPnNldEZpcnN0WChXVEZNb3ZlKGVuZFgpKTsKLSAg
ICAgICAgcmVzdWx0LT5zZXRGaXJzdFkoV1RGTW92ZShlbmRZKSk7CisgICAgICAgIHJlc3VsdC0+
c2V0Rmlyc3RYKGVuZFguY29weVJlZigpKTsKKyAgICAgICAgcmVzdWx0LT5zZXRGaXJzdFkoZW5k
WS5jb3B5UmVmKCkpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIGV4cGVjdENvbW1hID0gZmFsc2U7
CiAgICAgfQo=
</data>
<flag name="review"
          id="316111"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
      

    </bug>

</bugzilla>