<?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>181530</bug_id>
          
          <creation_ts>2018-01-11 06:08:24 -0800</creation_ts>
          <short_desc>Don&apos;t call RenderElement::setStyle when nothing changes</short_desc>
          <delta_ts>2018-01-11 14:44:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1388202</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-01-11 06:08:24 -0800</bug_when>
    <thetext>This does quite a bit of work. Avoid unnecessary calls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388203</commentid>
    <comment_count>1</comment_count>
      <attachid>331047</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-01-11 06:14:01 -0800</bug_when>
    <thetext>Created attachment 331047
wip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388210</commentid>
    <comment_count>2</comment_count>
      <attachid>331049</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-01-11 06:27:38 -0800</bug_when>
    <thetext>Created attachment 331049
wip</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388221</commentid>
    <comment_count>3</comment_count>
      <attachid>331051</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-01-11 07:29:45 -0800</bug_when>
    <thetext>Created attachment 331051
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388371</commentid>
    <comment_count>4</comment_count>
      <attachid>331091</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-01-11 12:14:53 -0800</bug_when>
    <thetext>Created attachment 331091
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388484</commentid>
    <comment_count>5</comment_count>
      <attachid>331091</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-11 14:43:34 -0800</bug_when>
    <thetext>Comment on attachment 331091
patch

Clearing flags on attachment: 331091

Committed r226809: &lt;https://trac.webkit.org/changeset/226809&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388485</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-11 14:43:36 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1388486</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-11 14:44:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/36450650&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331047</attachid>
            <date>2018-01-11 06:14:01 -0800</date>
            <delta_ts>2018-01-11 06:27:38 -0800</delta_ts>
            <desc>wip</desc>
            <filename>no-force-4.patch</filename>
            <type>text/plain</type>
            <size>11150</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQ2hhbmdlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuaAkocmV2aXNpb24gMjI2NzA1KQorKysg
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NyArMzEsNyBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIAogbmFtZXNwYWNlIFN0eWxlIHsKIAotZW51
bSBDaGFuZ2UgeyBOb0NoYW5nZSwgTm9Jbmhlcml0LCBJbmhlcml0LCBGb3JjZSwgRGV0YWNoIH07
CitlbnVtIENoYW5nZSB7IE5vQ2hhbmdlLCBOb0luaGVyaXQsIEluaGVyaXQsIERldGFjaCB9Owog
CiBDaGFuZ2UgZGV0ZXJtaW5lQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVy
U3R5bGUmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVy
LmNwcAkocmV2aXNpb24gMjI2NzA1KQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVl
UmVzb2x2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCwxMCArODgsMTEgQEAgVHJlZVJlc29s
dmVyOjpQYXJlbnQ6OlBhcmVudChEb2N1bWVudCYgZAogewogfQogCi1UcmVlUmVzb2x2ZXI6OlBh
cmVudDo6UGFyZW50KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwg
Q2hhbmdlIGNoYW5nZSkKK1RyZWVSZXNvbHZlcjo6UGFyZW50OjpQYXJlbnQoRWxlbWVudCYgZWxl
bWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBDaGFuZ2UgY2hhbmdlLCBSZXNvbHZlRGVz
Y2VuZGFudHMgcmVzb2x2ZURlc2NlbmRhbnRzKQogICAgIDogZWxlbWVudCgmZWxlbWVudCkKICAg
ICAsIHN0eWxlKHN0eWxlKQogICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICAsIHJlc29sdmVEZXNj
ZW5kYW50cyhyZXNvbHZlRGVzY2VuZGFudHMpCiB7CiB9CiAKQEAgLTE5Nyw2ICsxOTgsMjUgQEAg
RWxlbWVudFVwZGF0ZXMgVHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbQogCiAgICAgYXV0byB1cGRh
dGUgPSBjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRhdGUoV1RGTW92ZShuZXdTdHlsZSksIGVsZW1l
bnQsIHBhcmVudCgpLmNoYW5nZSk7CiAKKyAgICBhdXRvIGNvbXB1dGVEZXNjZW5kYW50c1RvUmVz
b2x2ZSA9IFtdIChDaGFuZ2UgY2hhbmdlLCBWYWxpZGl0eSB2YWxpZGl0eSkgeworICAgICAgICBp
ZiAodmFsaWRpdHkgPj0gVmFsaWRpdHk6OlN1YnRyZWVJbnZhbGlkKQorICAgICAgICAgICAgcmV0
dXJuIFJlc29sdmVEZXNjZW5kYW50czo6QWxsOworICAgICAgICBzd2l0Y2ggKGNoYW5nZSkgewor
ICAgICAgICBjYXNlIE5vQ2hhbmdlOgorICAgICAgICAgICAgcmV0dXJuIFJlc29sdmVEZXNjZW5k
YW50czo6Tm9uZTsKKyAgICAgICAgY2FzZSBOb0luaGVyaXQ6CisgICAgICAgICAgICByZXR1cm4g
UmVzb2x2ZURlc2NlbmRhbnRzOjpDaGlsZHJlbldpdGhFeHBsaWNpdEluaGVyaXQ7CisgICAgICAg
IGNhc2UgSW5oZXJpdDoKKyAgICAgICAgICAgIHJldHVybiBSZXNvbHZlRGVzY2VuZGFudHM6OkNo
aWxkcmVuOworICAgICAgICBjYXNlIERldGFjaDoKKyAgICAgICAgICAgIHJldHVybiBSZXNvbHZl
RGVzY2VuZGFudHM6OkFsbDsKKyAgICAgICAgfTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIHJldHVybiBSZXNvbHZlRGVzY2VuZGFudHM6Ok5vbmUKKyAgICB9OworCisg
ICAgYXV0byByZXNvbHZlRGVzY2VuZGFudHMgPSBjb21wdXRlRGVzY2VuZGFudHNUb1Jlc29sdmUo
dXBkYXRlLmNoYW5nZSwgZWxlbWVudC5zdHlsZVZhbGlkaXR5KCkpOworCiAgICAgaWYgKCZlbGVt
ZW50ID09IG1fZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCkpIHsKICAgICAgICAgbV9kb2N1bWVu
dEVsZW1lbnRTdHlsZSA9IFJlbmRlclN0eWxlOjpjbG9uZVB0cigqdXBkYXRlLnN0eWxlKTsKICAg
ICAgICAgc2NvcGUoKS5zdHlsZVJlc29sdmVyLnNldE92ZXJyaWRlRG9jdW1lbnRFbGVtZW50U3R5
bGUobV9kb2N1bWVudEVsZW1lbnRTdHlsZS5nZXQoKSk7CkBAIC0yMDUsNyArMjI1LDcgQEAgRWxl
bWVudFVwZGF0ZXMgVHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbQogICAgICAgICAgICAgLy8gInJl
bSIgdW5pdHMgYXJlIHJlbGF0aXZlIHRvIHRoZSBkb2N1bWVudCBlbGVtZW50J3MgZm9udCBzaXpl
IHNvIHdlIG5lZWQgdG8gcmVjb21wdXRlIGV2ZXJ5dGhpbmcuCiAgICAgICAgICAgICAvLyBJbiBw
cmFjdGljZSB0aGlzIGlzIHJhcmUuCiAgICAgICAgICAgICBzY29wZSgpLnN0eWxlUmVzb2x2ZXIu
aW52YWxpZGF0ZU1hdGNoZWRQcm9wZXJ0aWVzQ2FjaGUoKTsKLSAgICAgICAgICAgIHVwZGF0ZS5j
aGFuZ2UgPSBzdGQ6Om1heCh1cGRhdGUuY2hhbmdlLCBGb3JjZSk7CisgICAgICAgICAgICByZXNv
bHZlRGVzY2VuZGFudHMgPSBSZXNvbHZlRGVzY2VuZGFudHM6OkFsbDsKICAgICAgICAgfQogICAg
IH0KIApAQCAtMjE2LDE0ICsyMzYsMTYgQEAgRWxlbWVudFVwZGF0ZXMgVHJlZVJlc29sdmVyOjpy
ZXNvbHZlRWxlbQogCiAgICAgLy8gRklYTUU6IFRoZXNlIGVsZW1lbnRzIHNob3VsZCBub3QgY2hh
bmdlIHJlbmRlcmVyIGJhc2VkIG9uIGFwcGVhcmFuY2UgcHJvcGVydHkuCiAgICAgaWYgKGVsZW1l
bnQuaGFzVGFnTmFtZShIVE1MTmFtZXM6Om1ldGVyVGFnKSB8fCBpczxIVE1MUHJvZ3Jlc3NFbGVt
ZW50PihlbGVtZW50KSkgewotICAgICAgICBpZiAoZXhpc3RpbmdTdHlsZSAmJiB1cGRhdGUuc3R5
bGUtPmFwcGVhcmFuY2UoKSAhPSBleGlzdGluZ1N0eWxlLT5hcHBlYXJhbmNlKCkpCisgICAgICAg
IGlmIChleGlzdGluZ1N0eWxlICYmIHVwZGF0ZS5zdHlsZS0+YXBwZWFyYW5jZSgpICE9IGV4aXN0
aW5nU3R5bGUtPmFwcGVhcmFuY2UoKSkgewogICAgICAgICAgICAgdXBkYXRlLmNoYW5nZSA9IERl
dGFjaDsKKyAgICAgICAgICAgIHJlc29sdmVEZXNjZW5kYW50cyA9IFJlc29sdmVEZXNjZW5kYW50
czo6QWxsOworICAgICAgICB9CiAgICAgfQogCiAgICAgYXV0byBiZWZvcmVVcGRhdGUgPSByZXNv
bHZlUHNldWRvU3R5bGUoZWxlbWVudCwgdXBkYXRlLCBCRUZPUkUpOwogICAgIGF1dG8gYWZ0ZXJV
cGRhdGUgPSByZXNvbHZlUHNldWRvU3R5bGUoZWxlbWVudCwgdXBkYXRlLCBBRlRFUik7CiAKLSAg
ICByZXR1cm4geyBXVEZNb3ZlKHVwZGF0ZSksIFdURk1vdmUoYmVmb3JlVXBkYXRlKSwgV1RGTW92
ZShhZnRlclVwZGF0ZSkgfTsKKyAgICByZXR1cm4geyBXVEZNb3ZlKHVwZGF0ZSksIHJlc29sdmVE
ZXNjZW5kYW50cywgV1RGTW92ZShiZWZvcmVVcGRhdGUpLCBXVEZNb3ZlKGFmdGVyVXBkYXRlKSB9
OwogfQogCiBFbGVtZW50VXBkYXRlIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZVBzZXVkb1N0eWxlKEVs
ZW1lbnQmIGVsZW1lbnQsIGNvbnN0IEVsZW1lbnRVcGRhdGUmIGVsZW1lbnRVcGRhdGUsIFBzZXVk
b0lkIHBzZXVkb0lkKQpAQCAtMjg4LDIxICszMTAsMTkgQEAgRWxlbWVudFVwZGF0ZSBUcmVlUmVz
b2x2ZXI6OmNyZWF0ZUFuaW1hdAogICAgIGF1dG8gY2hhbmdlID0gb2xkU3R5bGUgPyBkZXRlcm1p
bmVDaGFuZ2UoKm9sZFN0eWxlLCAqbmV3U3R5bGUpIDogRGV0YWNoOwogCiAgICAgYXV0byB2YWxp
ZGl0eSA9IGVsZW1lbnQuc3R5bGVWYWxpZGl0eSgpOwotICAgIGlmICh2YWxpZGl0eSA+PSBWYWxp
ZGl0eTo6U3VidHJlZUludmFsaWQpCi0gICAgICAgIGNoYW5nZSA9IHN0ZDo6bWF4KGNoYW5nZSwg
dmFsaWRpdHkgPT0gVmFsaWRpdHk6OlN1YnRyZWVBbmRSZW5kZXJlcnNJbnZhbGlkID8gRGV0YWNo
IDogRm9yY2UpOwotICAgIGlmIChwYXJlbnRDaGFuZ2UgPj0gRm9yY2UpCi0gICAgICAgIGNoYW5n
ZSA9IHN0ZDo6bWF4KGNoYW5nZSwgcGFyZW50Q2hhbmdlKTsKKyAgICBpZiAodmFsaWRpdHkgPj0g
VmFsaWRpdHk6OlN1YnRyZWVBbmRSZW5kZXJlcnNJbnZhbGlkIHx8IHBhcmVudENoYW5nZSA9PSBE
ZXRhY2gpCisgICAgICAgIGNoYW5nZSA9IERldGFjaDsKIAogICAgIGJvb2wgc2hvdWxkUmVjb21w
b3NpdGVMYXllciA9IGVsZW1lbnQuc3R5bGVSZXNvbHV0aW9uU2hvdWxkUmVjb21wb3NpdGVMYXll
cigpIHx8IGFuaW1hdGlvblVwZGF0ZS5zdGF0ZUNoYW5nZWQ7CiAKICAgICByZXR1cm4geyBXVEZN
b3ZlKG5ld1N0eWxlKSwgY2hhbmdlLCBzaG91bGRSZWNvbXBvc2l0ZUxheWVyIH07CiB9CiAKLXZv
aWQgVHJlZVJlc29sdmVyOjpwdXNoUGFyZW50KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRl
clN0eWxlJiBzdHlsZSwgQ2hhbmdlIGNoYW5nZSkKK3ZvaWQgVHJlZVJlc29sdmVyOjpwdXNoUGFy
ZW50KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgQ2hhbmdlIGNo
YW5nZSwgUmVzb2x2ZURlc2NlbmRhbnRzIHJlc29sdmVEZXNjZW5kYW50cykKIHsKICAgICBzY29w
ZSgpLnNlbGVjdG9yRmlsdGVyLnB1c2hQYXJlbnQoJmVsZW1lbnQpOwogCi0gICAgUGFyZW50IHBh
cmVudChlbGVtZW50LCBzdHlsZSwgY2hhbmdlKTsKKyAgICBQYXJlbnQgcGFyZW50KGVsZW1lbnQs
IHN0eWxlLCBjaGFuZ2UsIHJlc29sdmVEZXNjZW5kYW50cyk7CiAKICAgICBpZiAoYXV0byogc2hh
ZG93Um9vdCA9IGVsZW1lbnQuc2hhZG93Um9vdCgpKSB7CiAgICAgICAgIHB1c2hTY29wZSgqc2hh
ZG93Um9vdCk7CkBAIC0zNDcsMTUgKzM2Nyw4IEBAIHN0YXRpYyBib29sIHNob3VsZFJlc29sdmVQ
c2V1ZG9FbGVtZW50KGMKICAgICByZXR1cm4gcHNldWRvRWxlbWVudC0+bmVlZHNTdHlsZVJlY2Fs
YygpOwogfQogCi1zdGF0aWMgYm9vbCBzaG91bGRSZXNvbHZlRWxlbWVudChjb25zdCBFbGVtZW50
JiBlbGVtZW50LCBTdHlsZTo6Q2hhbmdlIHBhcmVudENoYW5nZSkKK3N0YXRpYyBib29sIHNob3Vs
ZFJlc29sdmVFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQsIFN0eWxlOjpSZXNvbHZlRGVz
Y2VuZGFudHMgcmVzb2x2ZURlc2NlbmRhbnRzKQogewotICAgIGlmIChwYXJlbnRDaGFuZ2UgPj0g
SW5oZXJpdCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgaWYgKHBhcmVudENoYW5nZSA9PSBO
b0luaGVyaXQpIHsKLSAgICAgICAgYXV0byogZXhpc3RpbmdTdHlsZSA9IHJlbmRlck9yRGlzcGxh
eUNvbnRlbnRzU3R5bGUoZWxlbWVudCk7Ci0gICAgICAgIGlmIChleGlzdGluZ1N0eWxlICYmIGV4
aXN0aW5nU3R5bGUtPmhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVzKCkpCi0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CiAgICAgaWYgKGVsZW1lbnQubmVlZHNTdHlsZVJlY2Fs
YygpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBpZiAoc2hvdWxkUmVzb2x2ZVBzZXVkb0Vs
ZW1lbnQoZWxlbWVudC5iZWZvcmVQc2V1ZG9FbGVtZW50KCkpKQpAQCAtMzYzLDYgKzM3NiwxNyBA
QCBzdGF0aWMgYm9vbCBzaG91bGRSZXNvbHZlRWxlbWVudChjb25zdCBFCiAgICAgaWYgKHNob3Vs
ZFJlc29sdmVQc2V1ZG9FbGVtZW50KGVsZW1lbnQuYWZ0ZXJQc2V1ZG9FbGVtZW50KCkpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAorICAgIHN3aXRjaCAocmVzb2x2ZURlc2NlbmRhbnRzKSB7Cisg
ICAgY2FzZSBTdHlsZTo6UmVzb2x2ZURlc2NlbmRhbnRzOjpOb25lOgorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgY2FzZSBTdHlsZTo6UmVzb2x2ZURlc2NlbmRhbnRzOjpDaGlsZHJlbjoKKyAg
ICBjYXNlIFN0eWxlOjpSZXNvbHZlRGVzY2VuZGFudHM6OkFsbDoKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgY2FzZSBTdHlsZTo6UmVzb2x2ZURlc2NlbmRhbnRzOjpDaGlsZHJlbldpdGhFeHBs
aWNpdEluaGVyaXQ6CisgICAgICAgIGF1dG8qIGV4aXN0aW5nU3R5bGUgPSByZW5kZXJPckRpc3Bs
YXlDb250ZW50c1N0eWxlKGVsZW1lbnQpOworICAgICAgICByZXR1cm4gZXhpc3RpbmdTdHlsZSAm
JiBleGlzdGluZ1N0eWxlLT5oYXNFeHBsaWNpdGx5SW5oZXJpdGVkUHJvcGVydGllcygpOworICAg
IH07CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBA
IC00NTIsOCArNDc2LDkgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUo
KQogCiAgICAgICAgIGF1dG8qIHN0eWxlID0gcmVuZGVyT3JEaXNwbGF5Q29udGVudHNTdHlsZShl
bGVtZW50KTsKICAgICAgICAgYXV0byBjaGFuZ2UgPSBOb0NoYW5nZTsKKyAgICAgICAgYXV0byBy
ZXNvbHZlRGVzY2VuZGFudHMgPSBSZXNvbHZlRGVzY2VuZGFudHM6Ok5vbmU7CiAKLSAgICAgICAg
Ym9vbCBzaG91bGRSZXNvbHZlID0gc2hvdWxkUmVzb2x2ZUVsZW1lbnQoZWxlbWVudCwgcGFyZW50
LmNoYW5nZSkgfHwgYWZmZWN0ZWRCeVByZXZpb3VzU2libGluZzsKKyAgICAgICAgYm9vbCBzaG91
bGRSZXNvbHZlID0gc2hvdWxkUmVzb2x2ZUVsZW1lbnQoZWxlbWVudCwgcGFyZW50LnJlc29sdmVE
ZXNjZW5kYW50cykgfHwgYWZmZWN0ZWRCeVByZXZpb3VzU2libGluZzsKICAgICAgICAgaWYgKHNo
b3VsZFJlc29sdmUpIHsKICAgICAgICAgICAgIGlmICghZWxlbWVudC5oYXNEaXNwbGF5Q29udGVu
dHMoKSkKICAgICAgICAgICAgICAgICBlbGVtZW50LnJlc2V0Q29tcHV0ZWRTdHlsZSgpOwpAQCAt
NDY5LDkgKzQ5NCwxMCBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSgp
CiAKICAgICAgICAgICAgIHN0eWxlID0gZWxlbWVudFVwZGF0ZXMudXBkYXRlLnN0eWxlLmdldCgp
OwogICAgICAgICAgICAgY2hhbmdlID0gZWxlbWVudFVwZGF0ZXMudXBkYXRlLmNoYW5nZTsKKyAg
ICAgICAgICAgIHJlc29sdmVEZXNjZW5kYW50cyA9IGVsZW1lbnRVcGRhdGVzLnJlc29sdmVEZXNj
ZW5kYW50czsKIAotICAgICAgICAgICAgaWYgKGFmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcgJiYg
Y2hhbmdlICE9IERldGFjaCkKLSAgICAgICAgICAgICAgICBjaGFuZ2UgPSBGb3JjZTsKKyAgICAg
ICAgICAgIGlmIChhZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nKQorICAgICAgICAgICAgICAgIHJl
c29sdmVEZXNjZW5kYW50cyA9IFJlc29sdmVEZXNjZW5kYW50czo6QWxsOwogCiAgICAgICAgICAg
ICBpZiAoZWxlbWVudFVwZGF0ZXMudXBkYXRlLnN0eWxlKQogICAgICAgICAgICAgICAgIG1fdXBk
YXRlLT5hZGRFbGVtZW50KGVsZW1lbnQsIHBhcmVudC5lbGVtZW50LCBXVEZNb3ZlKGVsZW1lbnRV
cGRhdGVzKSk7CkBAIC00ODQsNyArNTEwLDEwIEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZl
Q29tcG9zZWRUcmVlKCkKICAgICAgICAgICAgIGVsZW1lbnQuY2xlYXJDaGlsZE5lZWRzU3R5bGVS
ZWNhbGMoKTsKICAgICAgICAgfQogCi0gICAgICAgIGJvb2wgc2hvdWxkSXRlcmF0ZUNoaWxkcmVu
ID0gc3R5bGUgJiYgKGVsZW1lbnQuY2hpbGROZWVkc1N0eWxlUmVjYWxjKCkgfHwgY2hhbmdlICE9
IE5vQ2hhbmdlKTsKKyAgICAgICAgaWYgKHBhcmVudC5yZXNvbHZlRGVzY2VuZGFudHMgPT0gUmVz
b2x2ZURlc2NlbmRhbnRzOjpBbGwpCisgICAgICAgICAgICByZXNvbHZlRGVzY2VuZGFudHMgPSBS
ZXNvbHZlRGVzY2VuZGFudHM6OkFsbDsKKworICAgICAgICBib29sIHNob3VsZEl0ZXJhdGVDaGls
ZHJlbiA9IHN0eWxlICYmIChlbGVtZW50LmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IHJlc29s
dmVEZXNjZW5kYW50cyAhPSBSZXNvbHZlRGVzY2VuZGFudHM6Ok5vbmUpOwogCiAgICAgICAgIGlm
ICghbV9kaWRTZWVQZW5kaW5nU3R5bGVzaGVldCkKICAgICAgICAgICAgIG1fZGlkU2VlUGVuZGlu
Z1N0eWxlc2hlZXQgPSBoYXNMb2FkaW5nU3R5bGVzaGVldChtX2RvY3VtZW50LnN0eWxlU2NvcGUo
KSwgZWxlbWVudCwgIXNob3VsZEl0ZXJhdGVDaGlsZHJlbik7CkBAIC00OTQsNyArNTIzLDcgQEAg
dm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUoKQogICAgICAgICAgICAgY29u
dGludWU7CiAgICAgICAgIH0KIAotICAgICAgICBwdXNoUGFyZW50KGVsZW1lbnQsICpzdHlsZSwg
Y2hhbmdlKTsKKyAgICAgICAgcHVzaFBhcmVudChlbGVtZW50LCAqc3R5bGUsIGNoYW5nZSwgcmVz
b2x2ZURlc2NlbmRhbnRzKTsKIAogICAgICAgICBpdC50cmF2ZXJzZU5leHQoKTsKICAgICB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgJKHJldmlzaW9uIDIy
NjcwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU1LDggKzU1LDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRy
PFJlbmRlclN0eWxlPiBzdHlsZUZvckVsZW1lbnQoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxl
JiBpbmhlcml0ZWRTdHlsZSk7CiAKICAgICB2b2lkIHJlc29sdmVDb21wb3NlZFRyZWUoKTsKKwog
ICAgIEVsZW1lbnRVcGRhdGVzIHJlc29sdmVFbGVtZW50KEVsZW1lbnQmKTsKLSAgICBFbGVtZW50
VXBkYXRlIGNyZWF0ZUFuaW1hdGVkRWxlbWVudFVwZGF0ZShzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVy
U3R5bGU+LCBFbGVtZW50JiwgQ2hhbmdlIHBhcmVudENoYW5nZSk7CisKKyAgICBFbGVtZW50VXBk
YXRlIGNyZWF0ZUFuaW1hdGVkRWxlbWVudFVwZGF0ZShzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5
bGU+LCBFbGVtZW50JiwgQ2hhbmdlKTsKICAgICBFbGVtZW50VXBkYXRlIHJlc29sdmVQc2V1ZG9T
dHlsZShFbGVtZW50JiwgY29uc3QgRWxlbWVudFVwZGF0ZSYsIFBzZXVkb0lkKTsKIAogICAgIHN0
cnVjdCBTY29wZSA6IFJlZkNvdW50ZWQ8U2NvcGU+IHsKQEAgLTc1LDExICs3NywxMiBAQCBwcml2
YXRlOgogICAgICAgICBFbGVtZW50KiBlbGVtZW50OwogICAgICAgICBjb25zdCBSZW5kZXJTdHls
ZSYgc3R5bGU7CiAgICAgICAgIENoYW5nZSBjaGFuZ2UgeyBOb0NoYW5nZSB9OworICAgICAgICBS
ZXNvbHZlRGVzY2VuZGFudHMgcmVzb2x2ZURlc2NlbmRhbnRzIHsgUmVzb2x2ZURlc2NlbmRhbnRz
OjpOb25lIH07CiAgICAgICAgIGJvb2wgZGlkUHVzaFNjb3BlIHsgZmFsc2UgfTsKICAgICAgICAg
Ym9vbCBlbGVtZW50TmVlZGluZ1N0eWxlUmVjYWxjQWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0
eWxlIHsgZmFsc2UgfTsKIAogICAgICAgICBQYXJlbnQoRG9jdW1lbnQmKTsKLSAgICAgICAgUGFy
ZW50KEVsZW1lbnQmLCBjb25zdCBSZW5kZXJTdHlsZSYsIENoYW5nZSk7CisgICAgICAgIFBhcmVu
dChFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBDaGFuZ2UsIFJlc29sdmVEZXNjZW5kYW50
cyk7CiAgICAgfTsKIAogICAgIFNjb3BlJiBzY29wZSgpIHsgcmV0dXJuIG1fc2NvcGVTdGFjay5s
YXN0KCk7IH0KQEAgLTg5LDcgKzkyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHB1c2hFbmNsb3Np
bmdTY29wZSgpOwogICAgIHZvaWQgcG9wU2NvcGUoKTsKIAotICAgIHZvaWQgcHVzaFBhcmVudChF
bGVtZW50JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBDaGFuZ2UpOworICAgIHZvaWQgcHVzaFBhcmVu
dChFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBDaGFuZ2UsIFJlc29sdmVEZXNjZW5kYW50
cyk7CiAgICAgdm9pZCBwb3BQYXJlbnQoKTsKICAgICB2b2lkIHBvcFBhcmVudHNUb0RlcHRoKHVu
c2lnbmVkIGRlcHRoKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCShyZXZp
c2lvbiAyMjY3MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVVwZGF0ZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NywxNyArNTcsMjEgQEAgc3RydWN0IEVsZW1lbnRVcGRhdGUgewogICAg
IGJvb2wgcmVjb21wb3NpdGVMYXllciB7IGZhbHNlIH07CiB9OwogCitlbnVtIGNsYXNzIFJlc29s
dmVEZXNjZW5kYW50cyB7IE5vbmUsIENoaWxkcmVuV2l0aEV4cGxpY2l0SW5oZXJpdCwgQ2hpbGRy
ZW4sIEFsbCB9OworCiBzdHJ1Y3QgRWxlbWVudFVwZGF0ZXMgewogI2lmICFDT01QSUxFUl9TVVBQ
T1JUUyhOU0RNSV9GT1JfQUdHUkVHQVRFUykKICAgICBFbGVtZW50VXBkYXRlcygpID0gZGVmYXVs
dDsKLSAgICBFbGVtZW50VXBkYXRlcyhFbGVtZW50VXBkYXRlIHVwZGF0ZSwgc3RkOjpvcHRpb25h
bDxFbGVtZW50VXBkYXRlPiBiZWZvcmVQc2V1ZG9FbGVtZW50VXBkYXRlLCBzdGQ6Om9wdGlvbmFs
PEVsZW1lbnRVcGRhdGU+IGFmdGVyUHNldWRvRWxlbWVudFVwZGF0ZSkKKyAgICBFbGVtZW50VXBk
YXRlcyhFbGVtZW50VXBkYXRlIHVwZGF0ZSwgUmVzb2x2ZURlc2NlbmRhbnRzIHJlc29sdmVEZXNj
ZW5kYW50cywgc3RkOjpvcHRpb25hbDxFbGVtZW50VXBkYXRlPiBiZWZvcmVQc2V1ZG9FbGVtZW50
VXBkYXRlLCBzdGQ6Om9wdGlvbmFsPEVsZW1lbnRVcGRhdGU+IGFmdGVyUHNldWRvRWxlbWVudFVw
ZGF0ZSkKICAgICAgICAgOiB1cGRhdGUgeyBXVEZNb3ZlKHVwZGF0ZSkgfQorICAgICAgICAsIHJl
c29sdmVEZXNjZW5kYW50cyhyZXNvbHZlRGVzY2VuZGFudHMpCiAgICAgICAgICwgYmVmb3JlUHNl
dWRvRWxlbWVudFVwZGF0ZSB7IFdURk1vdmUoYmVmb3JlUHNldWRvRWxlbWVudFVwZGF0ZSkgfQog
ICAgICAgICAsIGFmdGVyUHNldWRvRWxlbWVudFVwZGF0ZSB7IFdURk1vdmUoYWZ0ZXJQc2V1ZG9F
bGVtZW50VXBkYXRlKSB9CiAgICAgewogICAgIH0KICNlbmRpZgogICAgIEVsZW1lbnRVcGRhdGUg
dXBkYXRlOworICAgIFJlc29sdmVEZXNjZW5kYW50cyByZXNvbHZlRGVzY2VuZGFudHMgeyBSZXNv
bHZlRGVzY2VuZGFudHM6Ok5vbmUgfTsKICAgICBzdGQ6Om9wdGlvbmFsPEVsZW1lbnRVcGRhdGU+
IGJlZm9yZVBzZXVkb0VsZW1lbnRVcGRhdGU7CiAgICAgc3RkOjpvcHRpb25hbDxFbGVtZW50VXBk
YXRlPiBhZnRlclBzZXVkb0VsZW1lbnRVcGRhdGU7CiB9Owo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331049</attachid>
            <date>2018-01-11 06:27:38 -0800</date>
            <delta_ts>2018-01-11 07:29:45 -0800</delta_ts>
            <desc>wip</desc>
            <filename>no-force-5.patch</filename>
            <type>text/plain</type>
            <size>11151</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQ2hhbmdlLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuaAkocmV2aXNpb24gMjI2NzA1KQorKysg
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzEs
NyArMzEsNyBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIAogbmFtZXNwYWNlIFN0eWxlIHsKIAotZW51
bSBDaGFuZ2UgeyBOb0NoYW5nZSwgTm9Jbmhlcml0LCBJbmhlcml0LCBGb3JjZSwgRGV0YWNoIH07
CitlbnVtIENoYW5nZSB7IE5vQ2hhbmdlLCBOb0luaGVyaXQsIEluaGVyaXQsIERldGFjaCB9Owog
CiBDaGFuZ2UgZGV0ZXJtaW5lQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVy
U3R5bGUmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVy
LmNwcAkocmV2aXNpb24gMjI2NzA1KQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVl
UmVzb2x2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCwxMCArODgsMTEgQEAgVHJlZVJlc29s
dmVyOjpQYXJlbnQ6OlBhcmVudChEb2N1bWVudCYgZAogewogfQogCi1UcmVlUmVzb2x2ZXI6OlBh
cmVudDo6UGFyZW50KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwg
Q2hhbmdlIGNoYW5nZSkKK1RyZWVSZXNvbHZlcjo6UGFyZW50OjpQYXJlbnQoRWxlbWVudCYgZWxl
bWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBDaGFuZ2UgY2hhbmdlLCBSZXNvbHZlRGVz
Y2VuZGFudHMgcmVzb2x2ZURlc2NlbmRhbnRzKQogICAgIDogZWxlbWVudCgmZWxlbWVudCkKICAg
ICAsIHN0eWxlKHN0eWxlKQogICAgICwgY2hhbmdlKGNoYW5nZSkKKyAgICAsIHJlc29sdmVEZXNj
ZW5kYW50cyhyZXNvbHZlRGVzY2VuZGFudHMpCiB7CiB9CiAKQEAgLTE5Nyw2ICsxOTgsMjUgQEAg
RWxlbWVudFVwZGF0ZXMgVHJlZVJlc29sdmVyOjpyZXNvbHZlRWxlbQogCiAgICAgYXV0byB1cGRh
dGUgPSBjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRhdGUoV1RGTW92ZShuZXdTdHlsZSksIGVsZW1l
bnQsIHBhcmVudCgpLmNoYW5nZSk7CiAKKyAgICBhdXRvIGNvbXB1dGVEZXNjZW5kYW50c1RvUmVz
b2x2ZSA9IFtdIChDaGFuZ2UgY2hhbmdlLCBWYWxpZGl0eSB2YWxpZGl0eSkgeworICAgICAgICBp
ZiAodmFsaWRpdHkgPj0gVmFsaWRpdHk6OlN1YnRyZWVJbnZhbGlkKQorICAgICAgICAgICAgcmV0
dXJuIFJlc29sdmVEZXNjZW5kYW50czo6QWxsOworICAgICAgICBzd2l0Y2ggKGNoYW5nZSkgewor
ICAgICAgICBjYXNlIE5vQ2hhbmdlOgorICAgICAgICAgICAgcmV0dXJuIFJlc29sdmVEZXNjZW5k
YW50czo6Tm9uZTsKKyAgICAgICAgY2FzZSBOb0luaGVyaXQ6CisgICAgICAgICAgICByZXR1cm4g
UmVzb2x2ZURlc2NlbmRhbnRzOjpDaGlsZHJlbldpdGhFeHBsaWNpdEluaGVyaXQ7CisgICAgICAg
IGNhc2UgSW5oZXJpdDoKKyAgICAgICAgICAgIHJldHVybiBSZXNvbHZlRGVzY2VuZGFudHM6OkNo
aWxkcmVuOworICAgICAgICBjYXNlIERldGFjaDoKKyAgICAgICAgICAgIHJldHVybiBSZXNvbHZl
RGVzY2VuZGFudHM6OkFsbDsKKyAgICAgICAgfTsKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgICAgIHJldHVybiBSZXNvbHZlRGVzY2VuZGFudHM6Ok5vbmU7CisgICAgfTsKKwor
ICAgIGF1dG8gcmVzb2x2ZURlc2NlbmRhbnRzID0gY29tcHV0ZURlc2NlbmRhbnRzVG9SZXNvbHZl
KHVwZGF0ZS5jaGFuZ2UsIGVsZW1lbnQuc3R5bGVWYWxpZGl0eSgpKTsKKwogICAgIGlmICgmZWxl
bWVudCA9PSBtX2RvY3VtZW50LmRvY3VtZW50RWxlbWVudCgpKSB7CiAgICAgICAgIG1fZG9jdW1l
bnRFbGVtZW50U3R5bGUgPSBSZW5kZXJTdHlsZTo6Y2xvbmVQdHIoKnVwZGF0ZS5zdHlsZSk7CiAg
ICAgICAgIHNjb3BlKCkuc3R5bGVSZXNvbHZlci5zZXRPdmVycmlkZURvY3VtZW50RWxlbWVudFN0
eWxlKG1fZG9jdW1lbnRFbGVtZW50U3R5bGUuZ2V0KCkpOwpAQCAtMjA1LDcgKzIyNSw3IEBAIEVs
ZW1lbnRVcGRhdGVzIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW0KICAgICAgICAgICAgIC8vICJy
ZW0iIHVuaXRzIGFyZSByZWxhdGl2ZSB0byB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGZvbnQgc2l6
ZSBzbyB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBldmVyeXRoaW5nLgogICAgICAgICAgICAgLy8gSW4g
cHJhY3RpY2UgdGhpcyBpcyByYXJlLgogICAgICAgICAgICAgc2NvcGUoKS5zdHlsZVJlc29sdmVy
LmludmFsaWRhdGVNYXRjaGVkUHJvcGVydGllc0NhY2hlKCk7Ci0gICAgICAgICAgICB1cGRhdGUu
Y2hhbmdlID0gc3RkOjptYXgodXBkYXRlLmNoYW5nZSwgRm9yY2UpOworICAgICAgICAgICAgcmVz
b2x2ZURlc2NlbmRhbnRzID0gUmVzb2x2ZURlc2NlbmRhbnRzOjpBbGw7CiAgICAgICAgIH0KICAg
ICB9CiAKQEAgLTIxNiwxNCArMjM2LDE2IEBAIEVsZW1lbnRVcGRhdGVzIFRyZWVSZXNvbHZlcjo6
cmVzb2x2ZUVsZW0KIAogICAgIC8vIEZJWE1FOiBUaGVzZSBlbGVtZW50cyBzaG91bGQgbm90IGNo
YW5nZSByZW5kZXJlciBiYXNlZCBvbiBhcHBlYXJhbmNlIHByb3BlcnR5LgogICAgIGlmIChlbGVt
ZW50Lmhhc1RhZ05hbWUoSFRNTE5hbWVzOjptZXRlclRhZykgfHwgaXM8SFRNTFByb2dyZXNzRWxl
bWVudD4oZWxlbWVudCkpIHsKLSAgICAgICAgaWYgKGV4aXN0aW5nU3R5bGUgJiYgdXBkYXRlLnN0
eWxlLT5hcHBlYXJhbmNlKCkgIT0gZXhpc3RpbmdTdHlsZS0+YXBwZWFyYW5jZSgpKQorICAgICAg
ICBpZiAoZXhpc3RpbmdTdHlsZSAmJiB1cGRhdGUuc3R5bGUtPmFwcGVhcmFuY2UoKSAhPSBleGlz
dGluZ1N0eWxlLT5hcHBlYXJhbmNlKCkpIHsKICAgICAgICAgICAgIHVwZGF0ZS5jaGFuZ2UgPSBE
ZXRhY2g7CisgICAgICAgICAgICByZXNvbHZlRGVzY2VuZGFudHMgPSBSZXNvbHZlRGVzY2VuZGFu
dHM6OkFsbDsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGF1dG8gYmVmb3JlVXBkYXRlID0gcmVz
b2x2ZVBzZXVkb1N0eWxlKGVsZW1lbnQsIHVwZGF0ZSwgQkVGT1JFKTsKICAgICBhdXRvIGFmdGVy
VXBkYXRlID0gcmVzb2x2ZVBzZXVkb1N0eWxlKGVsZW1lbnQsIHVwZGF0ZSwgQUZURVIpOwogCi0g
ICAgcmV0dXJuIHsgV1RGTW92ZSh1cGRhdGUpLCBXVEZNb3ZlKGJlZm9yZVVwZGF0ZSksIFdURk1v
dmUoYWZ0ZXJVcGRhdGUpIH07CisgICAgcmV0dXJuIHsgV1RGTW92ZSh1cGRhdGUpLCByZXNvbHZl
RGVzY2VuZGFudHMsIFdURk1vdmUoYmVmb3JlVXBkYXRlKSwgV1RGTW92ZShhZnRlclVwZGF0ZSkg
fTsKIH0KIAogRWxlbWVudFVwZGF0ZSBUcmVlUmVzb2x2ZXI6OnJlc29sdmVQc2V1ZG9TdHlsZShF
bGVtZW50JiBlbGVtZW50LCBjb25zdCBFbGVtZW50VXBkYXRlJiBlbGVtZW50VXBkYXRlLCBQc2V1
ZG9JZCBwc2V1ZG9JZCkKQEAgLTI4OCwyMSArMzEwLDE5IEBAIEVsZW1lbnRVcGRhdGUgVHJlZVJl
c29sdmVyOjpjcmVhdGVBbmltYXQKICAgICBhdXRvIGNoYW5nZSA9IG9sZFN0eWxlID8gZGV0ZXJt
aW5lQ2hhbmdlKCpvbGRTdHlsZSwgKm5ld1N0eWxlKSA6IERldGFjaDsKIAogICAgIGF1dG8gdmFs
aWRpdHkgPSBlbGVtZW50LnN0eWxlVmFsaWRpdHkoKTsKLSAgICBpZiAodmFsaWRpdHkgPj0gVmFs
aWRpdHk6OlN1YnRyZWVJbnZhbGlkKQotICAgICAgICBjaGFuZ2UgPSBzdGQ6Om1heChjaGFuZ2Us
IHZhbGlkaXR5ID09IFZhbGlkaXR5OjpTdWJ0cmVlQW5kUmVuZGVyZXJzSW52YWxpZCA/IERldGFj
aCA6IEZvcmNlKTsKLSAgICBpZiAocGFyZW50Q2hhbmdlID49IEZvcmNlKQotICAgICAgICBjaGFu
Z2UgPSBzdGQ6Om1heChjaGFuZ2UsIHBhcmVudENoYW5nZSk7CisgICAgaWYgKHZhbGlkaXR5ID49
IFZhbGlkaXR5OjpTdWJ0cmVlQW5kUmVuZGVyZXJzSW52YWxpZCB8fCBwYXJlbnRDaGFuZ2UgPT0g
RGV0YWNoKQorICAgICAgICBjaGFuZ2UgPSBEZXRhY2g7CiAKICAgICBib29sIHNob3VsZFJlY29t
cG9zaXRlTGF5ZXIgPSBlbGVtZW50LnN0eWxlUmVzb2x1dGlvblNob3VsZFJlY29tcG9zaXRlTGF5
ZXIoKSB8fCBhbmltYXRpb25VcGRhdGUuc3RhdGVDaGFuZ2VkOwogCiAgICAgcmV0dXJuIHsgV1RG
TW92ZShuZXdTdHlsZSksIGNoYW5nZSwgc2hvdWxkUmVjb21wb3NpdGVMYXllciB9OwogfQogCi12
b2lkIFRyZWVSZXNvbHZlcjo6cHVzaFBhcmVudChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5k
ZXJTdHlsZSYgc3R5bGUsIENoYW5nZSBjaGFuZ2UpCit2b2lkIFRyZWVSZXNvbHZlcjo6cHVzaFBh
cmVudChFbGVtZW50JiBlbGVtZW50LCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUsIENoYW5nZSBj
aGFuZ2UsIFJlc29sdmVEZXNjZW5kYW50cyByZXNvbHZlRGVzY2VuZGFudHMpCiB7CiAgICAgc2Nv
cGUoKS5zZWxlY3RvckZpbHRlci5wdXNoUGFyZW50KCZlbGVtZW50KTsKIAotICAgIFBhcmVudCBw
YXJlbnQoZWxlbWVudCwgc3R5bGUsIGNoYW5nZSk7CisgICAgUGFyZW50IHBhcmVudChlbGVtZW50
LCBzdHlsZSwgY2hhbmdlLCByZXNvbHZlRGVzY2VuZGFudHMpOwogCiAgICAgaWYgKGF1dG8qIHNo
YWRvd1Jvb3QgPSBlbGVtZW50LnNoYWRvd1Jvb3QoKSkgewogICAgICAgICBwdXNoU2NvcGUoKnNo
YWRvd1Jvb3QpOwpAQCAtMzQ3LDE1ICszNjcsOCBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZXNvbHZl
UHNldWRvRWxlbWVudChjCiAgICAgcmV0dXJuIHBzZXVkb0VsZW1lbnQtPm5lZWRzU3R5bGVSZWNh
bGMoKTsKIH0KIAotc3RhdGljIGJvb2wgc2hvdWxkUmVzb2x2ZUVsZW1lbnQoY29uc3QgRWxlbWVu
dCYgZWxlbWVudCwgU3R5bGU6OkNoYW5nZSBwYXJlbnRDaGFuZ2UpCitzdGF0aWMgYm9vbCBzaG91
bGRSZXNvbHZlRWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBTdHlsZTo6UmVzb2x2ZURl
c2NlbmRhbnRzIHJlc29sdmVEZXNjZW5kYW50cykKIHsKLSAgICBpZiAocGFyZW50Q2hhbmdlID49
IEluaGVyaXQpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIGlmIChwYXJlbnRDaGFuZ2UgPT0g
Tm9Jbmhlcml0KSB7Ci0gICAgICAgIGF1dG8qIGV4aXN0aW5nU3R5bGUgPSByZW5kZXJPckRpc3Bs
YXlDb250ZW50c1N0eWxlKGVsZW1lbnQpOwotICAgICAgICBpZiAoZXhpc3RpbmdTdHlsZSAmJiBl
eGlzdGluZ1N0eWxlLT5oYXNFeHBsaWNpdGx5SW5oZXJpdGVkUHJvcGVydGllcygpKQotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQogICAgIGlmIChlbGVtZW50Lm5lZWRzU3R5bGVSZWNh
bGMoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKHNob3VsZFJlc29sdmVQc2V1ZG9F
bGVtZW50KGVsZW1lbnQuYmVmb3JlUHNldWRvRWxlbWVudCgpKSkKQEAgLTM2Myw2ICszNzYsMTcg
QEAgc3RhdGljIGJvb2wgc2hvdWxkUmVzb2x2ZUVsZW1lbnQoY29uc3QgRQogICAgIGlmIChzaG91
bGRSZXNvbHZlUHNldWRvRWxlbWVudChlbGVtZW50LmFmdGVyUHNldWRvRWxlbWVudCgpKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICBzd2l0Y2ggKHJlc29sdmVEZXNjZW5kYW50cykgewor
ICAgIGNhc2UgU3R5bGU6OlJlc29sdmVEZXNjZW5kYW50czo6Tm9uZToKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIGNhc2UgU3R5bGU6OlJlc29sdmVEZXNjZW5kYW50czo6Q2hpbGRyZW46Cisg
ICAgY2FzZSBTdHlsZTo6UmVzb2x2ZURlc2NlbmRhbnRzOjpBbGw6CisgICAgICAgIHJldHVybiB0
cnVlOworICAgIGNhc2UgU3R5bGU6OlJlc29sdmVEZXNjZW5kYW50czo6Q2hpbGRyZW5XaXRoRXhw
bGljaXRJbmhlcml0OgorICAgICAgICBhdXRvKiBleGlzdGluZ1N0eWxlID0gcmVuZGVyT3JEaXNw
bGF5Q29udGVudHNTdHlsZShlbGVtZW50KTsKKyAgICAgICAgcmV0dXJuIGV4aXN0aW5nU3R5bGUg
JiYgZXhpc3RpbmdTdHlsZS0+aGFzRXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMoKTsKKyAg
ICB9OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApA
QCAtNDUyLDggKzQ3Niw5IEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVl
KCkKIAogICAgICAgICBhdXRvKiBzdHlsZSA9IHJlbmRlck9yRGlzcGxheUNvbnRlbnRzU3R5bGUo
ZWxlbWVudCk7CiAgICAgICAgIGF1dG8gY2hhbmdlID0gTm9DaGFuZ2U7CisgICAgICAgIGF1dG8g
cmVzb2x2ZURlc2NlbmRhbnRzID0gUmVzb2x2ZURlc2NlbmRhbnRzOjpOb25lOwogCi0gICAgICAg
IGJvb2wgc2hvdWxkUmVzb2x2ZSA9IHNob3VsZFJlc29sdmVFbGVtZW50KGVsZW1lbnQsIHBhcmVu
dC5jaGFuZ2UpIHx8IGFmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmc7CisgICAgICAgIGJvb2wgc2hv
dWxkUmVzb2x2ZSA9IHNob3VsZFJlc29sdmVFbGVtZW50KGVsZW1lbnQsIHBhcmVudC5yZXNvbHZl
RGVzY2VuZGFudHMpIHx8IGFmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmc7CiAgICAgICAgIGlmIChz
aG91bGRSZXNvbHZlKSB7CiAgICAgICAgICAgICBpZiAoIWVsZW1lbnQuaGFzRGlzcGxheUNvbnRl
bnRzKCkpCiAgICAgICAgICAgICAgICAgZWxlbWVudC5yZXNldENvbXB1dGVkU3R5bGUoKTsKQEAg
LTQ2OSw5ICs0OTQsMTAgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUo
KQogCiAgICAgICAgICAgICBzdHlsZSA9IGVsZW1lbnRVcGRhdGVzLnVwZGF0ZS5zdHlsZS5nZXQo
KTsKICAgICAgICAgICAgIGNoYW5nZSA9IGVsZW1lbnRVcGRhdGVzLnVwZGF0ZS5jaGFuZ2U7Cisg
ICAgICAgICAgICByZXNvbHZlRGVzY2VuZGFudHMgPSBlbGVtZW50VXBkYXRlcy5yZXNvbHZlRGVz
Y2VuZGFudHM7CiAKLSAgICAgICAgICAgIGlmIChhZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nICYm
IGNoYW5nZSAhPSBEZXRhY2gpCi0gICAgICAgICAgICAgICAgY2hhbmdlID0gRm9yY2U7CisgICAg
ICAgICAgICBpZiAoYWZmZWN0ZWRCeVByZXZpb3VzU2libGluZykKKyAgICAgICAgICAgICAgICBy
ZXNvbHZlRGVzY2VuZGFudHMgPSBSZXNvbHZlRGVzY2VuZGFudHM6OkFsbDsKIAogICAgICAgICAg
ICAgaWYgKGVsZW1lbnRVcGRhdGVzLnVwZGF0ZS5zdHlsZSkKICAgICAgICAgICAgICAgICBtX3Vw
ZGF0ZS0+YWRkRWxlbWVudChlbGVtZW50LCBwYXJlbnQuZWxlbWVudCwgV1RGTW92ZShlbGVtZW50
VXBkYXRlcykpOwpAQCAtNDg0LDcgKzUxMCwxMCBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2
ZUNvbXBvc2VkVHJlZSgpCiAgICAgICAgICAgICBlbGVtZW50LmNsZWFyQ2hpbGROZWVkc1N0eWxl
UmVjYWxjKCk7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIHNob3VsZEl0ZXJhdGVDaGlsZHJl
biA9IHN0eWxlICYmIChlbGVtZW50LmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IGNoYW5nZSAh
PSBOb0NoYW5nZSk7CisgICAgICAgIGlmIChwYXJlbnQucmVzb2x2ZURlc2NlbmRhbnRzID09IFJl
c29sdmVEZXNjZW5kYW50czo6QWxsKQorICAgICAgICAgICAgcmVzb2x2ZURlc2NlbmRhbnRzID0g
UmVzb2x2ZURlc2NlbmRhbnRzOjpBbGw7CisKKyAgICAgICAgYm9vbCBzaG91bGRJdGVyYXRlQ2hp
bGRyZW4gPSBzdHlsZSAmJiAoZWxlbWVudC5jaGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCByZXNv
bHZlRGVzY2VuZGFudHMgIT0gUmVzb2x2ZURlc2NlbmRhbnRzOjpOb25lKTsKIAogICAgICAgICBp
ZiAoIW1fZGlkU2VlUGVuZGluZ1N0eWxlc2hlZXQpCiAgICAgICAgICAgICBtX2RpZFNlZVBlbmRp
bmdTdHlsZXNoZWV0ID0gaGFzTG9hZGluZ1N0eWxlc2hlZXQobV9kb2N1bWVudC5zdHlsZVNjb3Bl
KCksIGVsZW1lbnQsICFzaG91bGRJdGVyYXRlQ2hpbGRyZW4pOwpAQCAtNDk0LDcgKzUyMyw3IEBA
IHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKCkKICAgICAgICAgICAgIGNv
bnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgcHVzaFBhcmVudChlbGVtZW50LCAqc3R5bGUs
IGNoYW5nZSk7CisgICAgICAgIHB1c2hQYXJlbnQoZWxlbWVudCwgKnN0eWxlLCBjaGFuZ2UsIHJl
c29sdmVEZXNjZW5kYW50cyk7CiAKICAgICAgICAgaXQudHJhdmVyc2VOZXh0KCk7CiAgICAgfQpJ
bmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCShyZXZpc2lvbiAy
MjY3MDUpCisrKyBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NSw4ICs1NSwxMCBAQCBwcml2YXRlOgogICAgIHN0ZDo6dW5pcXVlX3B0
cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JFbGVtZW50KEVsZW1lbnQmLCBjb25zdCBSZW5kZXJTdHls
ZSYgaW5oZXJpdGVkU3R5bGUpOwogCiAgICAgdm9pZCByZXNvbHZlQ29tcG9zZWRUcmVlKCk7CisK
ICAgICBFbGVtZW50VXBkYXRlcyByZXNvbHZlRWxlbWVudChFbGVtZW50Jik7Ci0gICAgRWxlbWVu
dFVwZGF0ZSBjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRhdGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRl
clN0eWxlPiwgRWxlbWVudCYsIENoYW5nZSBwYXJlbnRDaGFuZ2UpOworCisgICAgRWxlbWVudFVw
ZGF0ZSBjcmVhdGVBbmltYXRlZEVsZW1lbnRVcGRhdGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0
eWxlPiwgRWxlbWVudCYsIENoYW5nZSk7CiAgICAgRWxlbWVudFVwZGF0ZSByZXNvbHZlUHNldWRv
U3R5bGUoRWxlbWVudCYsIGNvbnN0IEVsZW1lbnRVcGRhdGUmLCBQc2V1ZG9JZCk7CiAKICAgICBz
dHJ1Y3QgU2NvcGUgOiBSZWZDb3VudGVkPFNjb3BlPiB7CkBAIC03NSwxMSArNzcsMTIgQEAgcHJp
dmF0ZToKICAgICAgICAgRWxlbWVudCogZWxlbWVudDsKICAgICAgICAgY29uc3QgUmVuZGVyU3R5
bGUmIHN0eWxlOwogICAgICAgICBDaGFuZ2UgY2hhbmdlIHsgTm9DaGFuZ2UgfTsKKyAgICAgICAg
UmVzb2x2ZURlc2NlbmRhbnRzIHJlc29sdmVEZXNjZW5kYW50cyB7IFJlc29sdmVEZXNjZW5kYW50
czo6Tm9uZSB9OwogICAgICAgICBib29sIGRpZFB1c2hTY29wZSB7IGZhbHNlIH07CiAgICAgICAg
IGJvb2wgZWxlbWVudE5lZWRpbmdTdHlsZVJlY2FsY0FmZmVjdHNOZXh0U2libGluZ0VsZW1lbnRT
dHlsZSB7IGZhbHNlIH07CiAKICAgICAgICAgUGFyZW50KERvY3VtZW50Jik7Ci0gICAgICAgIFBh
cmVudChFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBDaGFuZ2UpOworICAgICAgICBQYXJl
bnQoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgQ2hhbmdlLCBSZXNvbHZlRGVzY2VuZGFu
dHMpOwogICAgIH07CiAKICAgICBTY29wZSYgc2NvcGUoKSB7IHJldHVybiBtX3Njb3BlU3RhY2su
bGFzdCgpOyB9CkBAIC04OSw3ICs5Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwdXNoRW5jbG9z
aW5nU2NvcGUoKTsKICAgICB2b2lkIHBvcFNjb3BlKCk7CiAKLSAgICB2b2lkIHB1c2hQYXJlbnQo
RWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgQ2hhbmdlKTsKKyAgICB2b2lkIHB1c2hQYXJl
bnQoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJiwgQ2hhbmdlLCBSZXNvbHZlRGVzY2VuZGFu
dHMpOwogICAgIHZvaWQgcG9wUGFyZW50KCk7CiAgICAgdm9pZCBwb3BQYXJlbnRzVG9EZXB0aCh1
bnNpZ25lZCBkZXB0aCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRl
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAkocmV2
aXNpb24gMjI2NzA1KQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAkod29y
a2luZyBjb3B5KQpAQCAtNTcsMTcgKzU3LDIxIEBAIHN0cnVjdCBFbGVtZW50VXBkYXRlIHsKICAg
ICBib29sIHJlY29tcG9zaXRlTGF5ZXIgeyBmYWxzZSB9OwogfTsKIAorZW51bSBjbGFzcyBSZXNv
bHZlRGVzY2VuZGFudHMgeyBOb25lLCBDaGlsZHJlbldpdGhFeHBsaWNpdEluaGVyaXQsIENoaWxk
cmVuLCBBbGwgfTsKKwogc3RydWN0IEVsZW1lbnRVcGRhdGVzIHsKICNpZiAhQ09NUElMRVJfU1VQ
UE9SVFMoTlNETUlfRk9SX0FHR1JFR0FURVMpCiAgICAgRWxlbWVudFVwZGF0ZXMoKSA9IGRlZmF1
bHQ7Ci0gICAgRWxlbWVudFVwZGF0ZXMoRWxlbWVudFVwZGF0ZSB1cGRhdGUsIHN0ZDo6b3B0aW9u
YWw8RWxlbWVudFVwZGF0ZT4gYmVmb3JlUHNldWRvRWxlbWVudFVwZGF0ZSwgc3RkOjpvcHRpb25h
bDxFbGVtZW50VXBkYXRlPiBhZnRlclBzZXVkb0VsZW1lbnRVcGRhdGUpCisgICAgRWxlbWVudFVw
ZGF0ZXMoRWxlbWVudFVwZGF0ZSB1cGRhdGUsIFJlc29sdmVEZXNjZW5kYW50cyByZXNvbHZlRGVz
Y2VuZGFudHMsIHN0ZDo6b3B0aW9uYWw8RWxlbWVudFVwZGF0ZT4gYmVmb3JlUHNldWRvRWxlbWVu
dFVwZGF0ZSwgc3RkOjpvcHRpb25hbDxFbGVtZW50VXBkYXRlPiBhZnRlclBzZXVkb0VsZW1lbnRV
cGRhdGUpCiAgICAgICAgIDogdXBkYXRlIHsgV1RGTW92ZSh1cGRhdGUpIH0KKyAgICAgICAgLCBy
ZXNvbHZlRGVzY2VuZGFudHMocmVzb2x2ZURlc2NlbmRhbnRzKQogICAgICAgICAsIGJlZm9yZVBz
ZXVkb0VsZW1lbnRVcGRhdGUgeyBXVEZNb3ZlKGJlZm9yZVBzZXVkb0VsZW1lbnRVcGRhdGUpIH0K
ICAgICAgICAgLCBhZnRlclBzZXVkb0VsZW1lbnRVcGRhdGUgeyBXVEZNb3ZlKGFmdGVyUHNldWRv
RWxlbWVudFVwZGF0ZSkgfQogICAgIHsKICAgICB9CiAjZW5kaWYKICAgICBFbGVtZW50VXBkYXRl
IHVwZGF0ZTsKKyAgICBSZXNvbHZlRGVzY2VuZGFudHMgcmVzb2x2ZURlc2NlbmRhbnRzIHsgUmVz
b2x2ZURlc2NlbmRhbnRzOjpOb25lIH07CiAgICAgc3RkOjpvcHRpb25hbDxFbGVtZW50VXBkYXRl
PiBiZWZvcmVQc2V1ZG9FbGVtZW50VXBkYXRlOwogICAgIHN0ZDo6b3B0aW9uYWw8RWxlbWVudFVw
ZGF0ZT4gYWZ0ZXJQc2V1ZG9FbGVtZW50VXBkYXRlOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331051</attachid>
            <date>2018-01-11 07:29:45 -0800</date>
            <delta_ts>2018-01-11 12:14:53 -0800</delta_ts>
            <desc>patch</desc>
            <filename>no-force-6.patch</filename>
            <type>text/plain</type>
            <size>13123</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNjc3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE4LTAxLTExICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCBjYWxsIFJlbmRlckVs
ZW1lbnQ6OnNldFN0eWxlIHdoZW4gbm90aGluZyBjaGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE1MzAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHN0eWxlL1N0eWxlQ2hhbmdlLmg6CisKKyAg
ICAgICAgUmVtb3ZlICdGb3JjZScgdmFsdWUuIFRoaXMgZXNzZW50aWFsbHkgbWVhbnQgJ2NvbXB1
dGUgc3R5bGUgZm9yIGFsbCBkZXNjZW5kYW50cyBhbmQgY2FsbCBzZXRTdHlsZSB1bmNvbmRpdGlv
bmFsbHknLgorICAgICAgICBVc2luZyB0aGlzIHZhbHVlIGxvc3QgaW5mb3JtYXRpb24gYWJvdXQg
d2hldGhlciBhbnl0aGluZyBhY3R1YWxseSBjaGFuZ2VkIGluIGEgcGFydGljdWxhciBzdHlsZSBh
cyBpdCB3YXMgYXV0b21hdGljYWxseQorICAgICAgICBpbmhlcml0ZWQgYnkgYWxsIGRlc2NlbmRh
bnRzLiBUaGUgJ2NvbXB1dGUgYWxsIGRlc2NlbmRhbnRzJyBwYXJ0IG9mIHRoZSBiZWhhdmlvciBp
cyB3aGF0IGlzIGFjdHVhbGx5IG5lZWRlZC4KKworICAgICAgICBJbnN0ZWFkIGFkZCBzZXBhcmF0
ZSBEZXNjZW5kYW50c1RvUmVzb2x2ZSBlbnVtIGZvciBjb21tdW5pY2F0aW5nIHdoYXQgZWxzZSB0
byBjb21wdXRlLgorCisgICAgICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6UGFyZW50OjpQYXJlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGU6OmNvbXB1dGVEZXNjZW5kYW50c1RvUmVzb2x2ZSk6CisKKyAg
ICAgICAgICAgIAorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpyZXNv
bHZlRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpjcmVh
dGVBbmltYXRlZEVsZW1lbnRVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlRyZWVS
ZXNvbHZlcjo6cHVzaFBhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6c2hvdWxkUmVz
b2x2ZUVsZW1lbnQpOgorCisgICAgICAgICAgICBGaWd1cmUgb3V0IHdoYXQgdG8gcmVzb2x2ZSBi
YXNlZCBvbiBEZXNjZW5kYW50c1RvUmVzb2x2ZSB2YWx1ZS4KKworICAgICAgICAoV2ViQ29yZTo6
U3R5bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSk6CisgICAgICAgICogc3R5
bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVVwZGF0ZS5oOgor
ICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkVsZW1lbnRVcGRhdGVzOjpFbGVtZW50VXBkYXRlcyk6
CisKKyAgICAgICAgICAgIEFkZCBEZXNjZW5kYW50c1RvUmVzb2x2ZS4KKwogMjAxOC0wMS0xMSAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10g
bWVkaWEvbXV0ZWQtdmlkZW8taXMtcGxheWluZy1hdWRpby5odG1sIGlzIHRpbWluZyBvdXQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQ2hhbmdlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuaAkocmV2aXNpb24gMjI2NzA1KQorKysgU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyAr
MzEsNyBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIAogbmFtZXNwYWNlIFN0eWxlIHsKIAotZW51bSBD
aGFuZ2UgeyBOb0NoYW5nZSwgTm9Jbmhlcml0LCBJbmhlcml0LCBGb3JjZSwgRGV0YWNoIH07Citl
bnVtIENoYW5nZSB7IE5vQ2hhbmdlLCBOb0luaGVyaXQsIEluaGVyaXQsIERldGFjaCB9OwogCiBD
aGFuZ2UgZGV0ZXJtaW5lQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3QgUmVuZGVyU3R5
bGUmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNw
cAkocmV2aXNpb24gMjI2NzA1KQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVz
b2x2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCwxMCArODgsMTEgQEAgVHJlZVJlc29sdmVy
OjpQYXJlbnQ6OlBhcmVudChEb2N1bWVudCYgZAogewogfQogCi1UcmVlUmVzb2x2ZXI6OlBhcmVu
dDo6UGFyZW50KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgQ2hh
bmdlIGNoYW5nZSkKK1RyZWVSZXNvbHZlcjo6UGFyZW50OjpQYXJlbnQoRWxlbWVudCYgZWxlbWVu
dCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBDaGFuZ2UgY2hhbmdlLCBEZXNjZW5kYW50c1Rv
UmVzb2x2ZSBkZXNjZW5kYW50c1RvUmVzb2x2ZSkKICAgICA6IGVsZW1lbnQoJmVsZW1lbnQpCiAg
ICAgLCBzdHlsZShzdHlsZSkKICAgICAsIGNoYW5nZShjaGFuZ2UpCisgICAgLCBkZXNjZW5kYW50
c1RvUmVzb2x2ZShkZXNjZW5kYW50c1RvUmVzb2x2ZSkKIHsKIH0KIApAQCAtMTc2LDYgKzE3Nywy
NCBAQCBzdGF0aWMgY29uc3QgUmVuZGVyU3R5bGUqIHJlbmRlck9yRGlzcGxhCiAgICAgcmV0dXJu
IG51bGxwdHI7CiB9CiAKK3N0YXRpYyBEZXNjZW5kYW50c1RvUmVzb2x2ZSBjb21wdXRlRGVzY2Vu
ZGFudHNUb1Jlc29sdmUoQ2hhbmdlIGNoYW5nZSwgVmFsaWRpdHkgdmFsaWRpdHkpCit7CisgICAg
aWYgKHZhbGlkaXR5ID49IFZhbGlkaXR5OjpTdWJ0cmVlSW52YWxpZCkKKyAgICAgICAgcmV0dXJu
IERlc2NlbmRhbnRzVG9SZXNvbHZlOjpBbGw7CisgICAgc3dpdGNoIChjaGFuZ2UpIHsKKyAgICBj
YXNlIE5vQ2hhbmdlOgorICAgICAgICByZXR1cm4gRGVzY2VuZGFudHNUb1Jlc29sdmU6Ok5vbmU7
CisgICAgY2FzZSBOb0luaGVyaXQ6CisgICAgICAgIHJldHVybiBEZXNjZW5kYW50c1RvUmVzb2x2
ZTo6Q2hpbGRyZW5XaXRoRXhwbGljaXRJbmhlcml0OworICAgIGNhc2UgSW5oZXJpdDoKKyAgICAg
ICAgcmV0dXJuIERlc2NlbmRhbnRzVG9SZXNvbHZlOjpDaGlsZHJlbjsKKyAgICBjYXNlIERldGFj
aDoKKyAgICAgICAgcmV0dXJuIERlc2NlbmRhbnRzVG9SZXNvbHZlOjpBbGw7CisgICAgfTsKKyAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gRGVzY2VuZGFudHNUb1Jlc29sdmU6
Ok5vbmU7Cit9OworCiBFbGVtZW50VXBkYXRlcyBUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50
KEVsZW1lbnQmIGVsZW1lbnQpCiB7CiAgICAgaWYgKG1fZGlkU2VlUGVuZGluZ1N0eWxlc2hlZXQg
JiYgIWVsZW1lbnQucmVuZGVyZXIoKSAmJiAhbV9kb2N1bWVudC5pc0lnbm9yaW5nUGVuZGluZ1N0
eWxlc2hlZXRzKCkpIHsKQEAgLTE5Niw2ICsyMTUsNyBAQCBFbGVtZW50VXBkYXRlcyBUcmVlUmVz
b2x2ZXI6OnJlc29sdmVFbGVtCiAgICAgfQogCiAgICAgYXV0byB1cGRhdGUgPSBjcmVhdGVBbmlt
YXRlZEVsZW1lbnRVcGRhdGUoV1RGTW92ZShuZXdTdHlsZSksIGVsZW1lbnQsIHBhcmVudCgpLmNo
YW5nZSk7CisgICAgYXV0byBkZXNjZW5kYW50c1RvUmVzb2x2ZSA9IGNvbXB1dGVEZXNjZW5kYW50
c1RvUmVzb2x2ZSh1cGRhdGUuY2hhbmdlLCBlbGVtZW50LnN0eWxlVmFsaWRpdHkoKSk7CiAKICAg
ICBpZiAoJmVsZW1lbnQgPT0gbV9kb2N1bWVudC5kb2N1bWVudEVsZW1lbnQoKSkgewogICAgICAg
ICBtX2RvY3VtZW50RWxlbWVudFN0eWxlID0gUmVuZGVyU3R5bGU6OmNsb25lUHRyKCp1cGRhdGUu
c3R5bGUpOwpAQCAtMjA1LDcgKzIyNSw3IEBAIEVsZW1lbnRVcGRhdGVzIFRyZWVSZXNvbHZlcjo6
cmVzb2x2ZUVsZW0KICAgICAgICAgICAgIC8vICJyZW0iIHVuaXRzIGFyZSByZWxhdGl2ZSB0byB0
aGUgZG9jdW1lbnQgZWxlbWVudCdzIGZvbnQgc2l6ZSBzbyB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBl
dmVyeXRoaW5nLgogICAgICAgICAgICAgLy8gSW4gcHJhY3RpY2UgdGhpcyBpcyByYXJlLgogICAg
ICAgICAgICAgc2NvcGUoKS5zdHlsZVJlc29sdmVyLmludmFsaWRhdGVNYXRjaGVkUHJvcGVydGll
c0NhY2hlKCk7Ci0gICAgICAgICAgICB1cGRhdGUuY2hhbmdlID0gc3RkOjptYXgodXBkYXRlLmNo
YW5nZSwgRm9yY2UpOworICAgICAgICAgICAgZGVzY2VuZGFudHNUb1Jlc29sdmUgPSBEZXNjZW5k
YW50c1RvUmVzb2x2ZTo6QWxsOwogICAgICAgICB9CiAgICAgfQogCkBAIC0yMTYsMTQgKzIzNiwx
NiBAQCBFbGVtZW50VXBkYXRlcyBUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtCiAKICAgICAvLyBG
SVhNRTogVGhlc2UgZWxlbWVudHMgc2hvdWxkIG5vdCBjaGFuZ2UgcmVuZGVyZXIgYmFzZWQgb24g
YXBwZWFyYW5jZSBwcm9wZXJ0eS4KICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKEhUTUxOYW1l
czo6bWV0ZXJUYWcpIHx8IGlzPEhUTUxQcm9ncmVzc0VsZW1lbnQ+KGVsZW1lbnQpKSB7Ci0gICAg
ICAgIGlmIChleGlzdGluZ1N0eWxlICYmIHVwZGF0ZS5zdHlsZS0+YXBwZWFyYW5jZSgpICE9IGV4
aXN0aW5nU3R5bGUtPmFwcGVhcmFuY2UoKSkKKyAgICAgICAgaWYgKGV4aXN0aW5nU3R5bGUgJiYg
dXBkYXRlLnN0eWxlLT5hcHBlYXJhbmNlKCkgIT0gZXhpc3RpbmdTdHlsZS0+YXBwZWFyYW5jZSgp
KSB7CiAgICAgICAgICAgICB1cGRhdGUuY2hhbmdlID0gRGV0YWNoOworICAgICAgICAgICAgZGVz
Y2VuZGFudHNUb1Jlc29sdmUgPSBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6QWxsOworICAgICAgICB9
CiAgICAgfQogCiAgICAgYXV0byBiZWZvcmVVcGRhdGUgPSByZXNvbHZlUHNldWRvU3R5bGUoZWxl
bWVudCwgdXBkYXRlLCBCRUZPUkUpOwogICAgIGF1dG8gYWZ0ZXJVcGRhdGUgPSByZXNvbHZlUHNl
dWRvU3R5bGUoZWxlbWVudCwgdXBkYXRlLCBBRlRFUik7CiAKLSAgICByZXR1cm4geyBXVEZNb3Zl
KHVwZGF0ZSksIFdURk1vdmUoYmVmb3JlVXBkYXRlKSwgV1RGTW92ZShhZnRlclVwZGF0ZSkgfTsK
KyAgICByZXR1cm4geyBXVEZNb3ZlKHVwZGF0ZSksIGRlc2NlbmRhbnRzVG9SZXNvbHZlLCBXVEZN
b3ZlKGJlZm9yZVVwZGF0ZSksIFdURk1vdmUoYWZ0ZXJVcGRhdGUpIH07CiB9CiAKIEVsZW1lbnRV
cGRhdGUgVHJlZVJlc29sdmVyOjpyZXNvbHZlUHNldWRvU3R5bGUoRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgRWxlbWVudFVwZGF0ZSYgZWxlbWVudFVwZGF0ZSwgUHNldWRvSWQgcHNldWRvSWQpCkBA
IC0yODgsMjEgKzMxMCwxOSBAQCBFbGVtZW50VXBkYXRlIFRyZWVSZXNvbHZlcjo6Y3JlYXRlQW5p
bWF0CiAgICAgYXV0byBjaGFuZ2UgPSBvbGRTdHlsZSA/IGRldGVybWluZUNoYW5nZSgqb2xkU3R5
bGUsICpuZXdTdHlsZSkgOiBEZXRhY2g7CiAKICAgICBhdXRvIHZhbGlkaXR5ID0gZWxlbWVudC5z
dHlsZVZhbGlkaXR5KCk7Ci0gICAgaWYgKHZhbGlkaXR5ID49IFZhbGlkaXR5OjpTdWJ0cmVlSW52
YWxpZCkKLSAgICAgICAgY2hhbmdlID0gc3RkOjptYXgoY2hhbmdlLCB2YWxpZGl0eSA9PSBWYWxp
ZGl0eTo6U3VidHJlZUFuZFJlbmRlcmVyc0ludmFsaWQgPyBEZXRhY2ggOiBGb3JjZSk7Ci0gICAg
aWYgKHBhcmVudENoYW5nZSA+PSBGb3JjZSkKLSAgICAgICAgY2hhbmdlID0gc3RkOjptYXgoY2hh
bmdlLCBwYXJlbnRDaGFuZ2UpOworICAgIGlmICh2YWxpZGl0eSA+PSBWYWxpZGl0eTo6U3VidHJl
ZUFuZFJlbmRlcmVyc0ludmFsaWQgfHwgcGFyZW50Q2hhbmdlID09IERldGFjaCkKKyAgICAgICAg
Y2hhbmdlID0gRGV0YWNoOwogCiAgICAgYm9vbCBzaG91bGRSZWNvbXBvc2l0ZUxheWVyID0gZWxl
bWVudC5zdHlsZVJlc29sdXRpb25TaG91bGRSZWNvbXBvc2l0ZUxheWVyKCkgfHwgYW5pbWF0aW9u
VXBkYXRlLnN0YXRlQ2hhbmdlZDsKIAogICAgIHJldHVybiB7IFdURk1vdmUobmV3U3R5bGUpLCBj
aGFuZ2UsIHNob3VsZFJlY29tcG9zaXRlTGF5ZXIgfTsKIH0KIAotdm9pZCBUcmVlUmVzb2x2ZXI6
OnB1c2hQYXJlbnQoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBD
aGFuZ2UgY2hhbmdlKQordm9pZCBUcmVlUmVzb2x2ZXI6OnB1c2hQYXJlbnQoRWxlbWVudCYgZWxl
bWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBDaGFuZ2UgY2hhbmdlLCBEZXNjZW5kYW50
c1RvUmVzb2x2ZSBkZXNjZW5kYW50c1RvUmVzb2x2ZSkKIHsKICAgICBzY29wZSgpLnNlbGVjdG9y
RmlsdGVyLnB1c2hQYXJlbnQoJmVsZW1lbnQpOwogCi0gICAgUGFyZW50IHBhcmVudChlbGVtZW50
LCBzdHlsZSwgY2hhbmdlKTsKKyAgICBQYXJlbnQgcGFyZW50KGVsZW1lbnQsIHN0eWxlLCBjaGFu
Z2UsIGRlc2NlbmRhbnRzVG9SZXNvbHZlKTsKIAogICAgIGlmIChhdXRvKiBzaGFkb3dSb290ID0g
ZWxlbWVudC5zaGFkb3dSb290KCkpIHsKICAgICAgICAgcHVzaFNjb3BlKCpzaGFkb3dSb290KTsK
QEAgLTM0NywxNSArMzY3LDggQEAgc3RhdGljIGJvb2wgc2hvdWxkUmVzb2x2ZVBzZXVkb0VsZW1l
bnQoYwogICAgIHJldHVybiBwc2V1ZG9FbGVtZW50LT5uZWVkc1N0eWxlUmVjYWxjKCk7CiB9CiAK
LXN0YXRpYyBib29sIHNob3VsZFJlc29sdmVFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQs
IFN0eWxlOjpDaGFuZ2UgcGFyZW50Q2hhbmdlKQorc3RhdGljIGJvb2wgc2hvdWxkUmVzb2x2ZUVs
ZW1lbnQoY29uc3QgRWxlbWVudCYgZWxlbWVudCwgRGVzY2VuZGFudHNUb1Jlc29sdmUgcGFyZW50
RGVzY2VuZGFudHNUb1Jlc29sdmUpCiB7Ci0gICAgaWYgKHBhcmVudENoYW5nZSA+PSBJbmhlcml0
KQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBpZiAocGFyZW50Q2hhbmdlID09IE5vSW5oZXJp
dCkgewotICAgICAgICBhdXRvKiBleGlzdGluZ1N0eWxlID0gcmVuZGVyT3JEaXNwbGF5Q29udGVu
dHNTdHlsZShlbGVtZW50KTsKLSAgICAgICAgaWYgKGV4aXN0aW5nU3R5bGUgJiYgZXhpc3RpbmdT
dHlsZS0+aGFzRXhwbGljaXRseUluaGVyaXRlZFByb3BlcnRpZXMoKSkKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgIH0KICAgICBpZiAoZWxlbWVudC5uZWVkc1N0eWxlUmVjYWxjKCkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChzaG91bGRSZXNvbHZlUHNldWRvRWxlbWVudChl
bGVtZW50LmJlZm9yZVBzZXVkb0VsZW1lbnQoKSkpCkBAIC0zNjMsNiArMzc2LDE3IEBAIHN0YXRp
YyBib29sIHNob3VsZFJlc29sdmVFbGVtZW50KGNvbnN0IEUKICAgICBpZiAoc2hvdWxkUmVzb2x2
ZVBzZXVkb0VsZW1lbnQoZWxlbWVudC5hZnRlclBzZXVkb0VsZW1lbnQoKSkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCisgICAgc3dpdGNoIChwYXJlbnREZXNjZW5kYW50c1RvUmVzb2x2ZSkgewor
ICAgIGNhc2UgRGVzY2VuZGFudHNUb1Jlc29sdmU6Ok5vbmU6CisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBjYXNlIERlc2NlbmRhbnRzVG9SZXNvbHZlOjpDaGlsZHJlbjoKKyAgICBjYXNlIERl
c2NlbmRhbnRzVG9SZXNvbHZlOjpBbGw6CisgICAgICAgIHJldHVybiB0cnVlOworICAgIGNhc2Ug
RGVzY2VuZGFudHNUb1Jlc29sdmU6OkNoaWxkcmVuV2l0aEV4cGxpY2l0SW5oZXJpdDoKKyAgICAg
ICAgYXV0byogZXhpc3RpbmdTdHlsZSA9IHJlbmRlck9yRGlzcGxheUNvbnRlbnRzU3R5bGUoZWxl
bWVudCk7CisgICAgICAgIHJldHVybiBleGlzdGluZ1N0eWxlICYmIGV4aXN0aW5nU3R5bGUtPmhh
c0V4cGxpY2l0bHlJbmhlcml0ZWRQcm9wZXJ0aWVzKCk7CisgICAgfTsKKyAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTQ1Miw4ICs0NzYsOSBAQCB2
b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSgpCiAKICAgICAgICAgYXV0byog
c3R5bGUgPSByZW5kZXJPckRpc3BsYXlDb250ZW50c1N0eWxlKGVsZW1lbnQpOwogICAgICAgICBh
dXRvIGNoYW5nZSA9IE5vQ2hhbmdlOworICAgICAgICBhdXRvIGRlc2NlbmRhbnRzVG9SZXNvbHZl
ID0gRGVzY2VuZGFudHNUb1Jlc29sdmU6Ok5vbmU7CiAKLSAgICAgICAgYm9vbCBzaG91bGRSZXNv
bHZlID0gc2hvdWxkUmVzb2x2ZUVsZW1lbnQoZWxlbWVudCwgcGFyZW50LmNoYW5nZSkgfHwgYWZm
ZWN0ZWRCeVByZXZpb3VzU2libGluZzsKKyAgICAgICAgYm9vbCBzaG91bGRSZXNvbHZlID0gc2hv
dWxkUmVzb2x2ZUVsZW1lbnQoZWxlbWVudCwgcGFyZW50LmRlc2NlbmRhbnRzVG9SZXNvbHZlKSB8
fCBhZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nOwogICAgICAgICBpZiAoc2hvdWxkUmVzb2x2ZSkg
ewogICAgICAgICAgICAgaWYgKCFlbGVtZW50Lmhhc0Rpc3BsYXlDb250ZW50cygpKQogICAgICAg
ICAgICAgICAgIGVsZW1lbnQucmVzZXRDb21wdXRlZFN0eWxlKCk7CkBAIC00NjksOSArNDk0LDEw
IEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKCkKIAogICAgICAgICAg
ICAgc3R5bGUgPSBlbGVtZW50VXBkYXRlcy51cGRhdGUuc3R5bGUuZ2V0KCk7CiAgICAgICAgICAg
ICBjaGFuZ2UgPSBlbGVtZW50VXBkYXRlcy51cGRhdGUuY2hhbmdlOworICAgICAgICAgICAgZGVz
Y2VuZGFudHNUb1Jlc29sdmUgPSBlbGVtZW50VXBkYXRlcy5kZXNjZW5kYW50c1RvUmVzb2x2ZTsK
IAotICAgICAgICAgICAgaWYgKGFmZmVjdGVkQnlQcmV2aW91c1NpYmxpbmcgJiYgY2hhbmdlICE9
IERldGFjaCkKLSAgICAgICAgICAgICAgICBjaGFuZ2UgPSBGb3JjZTsKKyAgICAgICAgICAgIGlm
IChhZmZlY3RlZEJ5UHJldmlvdXNTaWJsaW5nKQorICAgICAgICAgICAgICAgIGRlc2NlbmRhbnRz
VG9SZXNvbHZlID0gRGVzY2VuZGFudHNUb1Jlc29sdmU6OkFsbDsKIAogICAgICAgICAgICAgaWYg
KGVsZW1lbnRVcGRhdGVzLnVwZGF0ZS5zdHlsZSkKICAgICAgICAgICAgICAgICBtX3VwZGF0ZS0+
YWRkRWxlbWVudChlbGVtZW50LCBwYXJlbnQuZWxlbWVudCwgV1RGTW92ZShlbGVtZW50VXBkYXRl
cykpOwpAQCAtNDg0LDcgKzUxMCwxMCBAQCB2b2lkIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBv
c2VkVHJlZSgpCiAgICAgICAgICAgICBlbGVtZW50LmNsZWFyQ2hpbGROZWVkc1N0eWxlUmVjYWxj
KCk7CiAgICAgICAgIH0KIAotICAgICAgICBib29sIHNob3VsZEl0ZXJhdGVDaGlsZHJlbiA9IHN0
eWxlICYmIChlbGVtZW50LmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IGNoYW5nZSAhPSBOb0No
YW5nZSk7CisgICAgICAgIGlmIChwYXJlbnQuZGVzY2VuZGFudHNUb1Jlc29sdmUgPT0gRGVzY2Vu
ZGFudHNUb1Jlc29sdmU6OkFsbCkKKyAgICAgICAgICAgIGRlc2NlbmRhbnRzVG9SZXNvbHZlID0g
RGVzY2VuZGFudHNUb1Jlc29sdmU6OkFsbDsKKworICAgICAgICBib29sIHNob3VsZEl0ZXJhdGVD
aGlsZHJlbiA9IHN0eWxlICYmIChlbGVtZW50LmNoaWxkTmVlZHNTdHlsZVJlY2FsYygpIHx8IGRl
c2NlbmRhbnRzVG9SZXNvbHZlICE9IERlc2NlbmRhbnRzVG9SZXNvbHZlOjpOb25lKTsKIAogICAg
ICAgICBpZiAoIW1fZGlkU2VlUGVuZGluZ1N0eWxlc2hlZXQpCiAgICAgICAgICAgICBtX2RpZFNl
ZVBlbmRpbmdTdHlsZXNoZWV0ID0gaGFzTG9hZGluZ1N0eWxlc2hlZXQobV9kb2N1bWVudC5zdHls
ZVNjb3BlKCksIGVsZW1lbnQsICFzaG91bGRJdGVyYXRlQ2hpbGRyZW4pOwpAQCAtNDk0LDcgKzUy
Myw3IEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9zZWRUcmVlKCkKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgcHVzaFBhcmVudChlbGVtZW50LCAq
c3R5bGUsIGNoYW5nZSk7CisgICAgICAgIHB1c2hQYXJlbnQoZWxlbWVudCwgKnN0eWxlLCBjaGFu
Z2UsIGRlc2NlbmRhbnRzVG9SZXNvbHZlKTsKIAogICAgICAgICBpdC50cmF2ZXJzZU5leHQoKTsK
ICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVRyZWVSZXNvbHZlci5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmgJKHJl
dmlzaW9uIDIyNjcwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJlc29sdmVy
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDggKzU1LDEwIEBAIHByaXZhdGU6CiAgICAgc3RkOjp1
bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvckVsZW1lbnQoRWxlbWVudCYsIGNvbnN0IFJl
bmRlclN0eWxlJiBpbmhlcml0ZWRTdHlsZSk7CiAKICAgICB2b2lkIHJlc29sdmVDb21wb3NlZFRy
ZWUoKTsKKwogICAgIEVsZW1lbnRVcGRhdGVzIHJlc29sdmVFbGVtZW50KEVsZW1lbnQmKTsKLSAg
ICBFbGVtZW50VXBkYXRlIGNyZWF0ZUFuaW1hdGVkRWxlbWVudFVwZGF0ZShzdGQ6OnVuaXF1ZV9w
dHI8UmVuZGVyU3R5bGU+LCBFbGVtZW50JiwgQ2hhbmdlIHBhcmVudENoYW5nZSk7CisKKyAgICBF
bGVtZW50VXBkYXRlIGNyZWF0ZUFuaW1hdGVkRWxlbWVudFVwZGF0ZShzdGQ6OnVuaXF1ZV9wdHI8
UmVuZGVyU3R5bGU+LCBFbGVtZW50JiwgQ2hhbmdlKTsKICAgICBFbGVtZW50VXBkYXRlIHJlc29s
dmVQc2V1ZG9TdHlsZShFbGVtZW50JiwgY29uc3QgRWxlbWVudFVwZGF0ZSYsIFBzZXVkb0lkKTsK
IAogICAgIHN0cnVjdCBTY29wZSA6IFJlZkNvdW50ZWQ8U2NvcGU+IHsKQEAgLTc1LDExICs3Nywx
MiBAQCBwcml2YXRlOgogICAgICAgICBFbGVtZW50KiBlbGVtZW50OwogICAgICAgICBjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGU7CiAgICAgICAgIENoYW5nZSBjaGFuZ2UgeyBOb0NoYW5nZSB9Owor
ICAgICAgICBEZXNjZW5kYW50c1RvUmVzb2x2ZSBkZXNjZW5kYW50c1RvUmVzb2x2ZSB7IERlc2Nl
bmRhbnRzVG9SZXNvbHZlOjpOb25lIH07CiAgICAgICAgIGJvb2wgZGlkUHVzaFNjb3BlIHsgZmFs
c2UgfTsKICAgICAgICAgYm9vbCBlbGVtZW50TmVlZGluZ1N0eWxlUmVjYWxjQWZmZWN0c05leHRT
aWJsaW5nRWxlbWVudFN0eWxlIHsgZmFsc2UgfTsKIAogICAgICAgICBQYXJlbnQoRG9jdW1lbnQm
KTsKLSAgICAgICAgUGFyZW50KEVsZW1lbnQmLCBjb25zdCBSZW5kZXJTdHlsZSYsIENoYW5nZSk7
CisgICAgICAgIFBhcmVudChFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5bGUmLCBDaGFuZ2UsIERl
c2NlbmRhbnRzVG9SZXNvbHZlKTsKICAgICB9OwogCiAgICAgU2NvcGUmIHNjb3BlKCkgeyByZXR1
cm4gbV9zY29wZVN0YWNrLmxhc3QoKTsgfQpAQCAtODksNyArOTIsNyBAQCBwcml2YXRlOgogICAg
IHZvaWQgcHVzaEVuY2xvc2luZ1Njb3BlKCk7CiAgICAgdm9pZCBwb3BTY29wZSgpOwogCi0gICAg
dm9pZCBwdXNoUGFyZW50KEVsZW1lbnQmLCBjb25zdCBSZW5kZXJTdHlsZSYsIENoYW5nZSk7Cisg
ICAgdm9pZCBwdXNoUGFyZW50KEVsZW1lbnQmLCBjb25zdCBSZW5kZXJTdHlsZSYsIENoYW5nZSwg
RGVzY2VuZGFudHNUb1Jlc29sdmUpOwogICAgIHZvaWQgcG9wUGFyZW50KCk7CiAgICAgdm9pZCBw
b3BQYXJlbnRzVG9EZXB0aCh1bnNpZ25lZCBkZXB0aCk7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlVXBkYXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVVcGRhdGUuaAkocmV2aXNpb24gMjI2NzA1KQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUv
U3R5bGVVcGRhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTcgKzU3LDIxIEBAIHN0cnVjdCBF
bGVtZW50VXBkYXRlIHsKICAgICBib29sIHJlY29tcG9zaXRlTGF5ZXIgeyBmYWxzZSB9OwogfTsK
IAorZW51bSBjbGFzcyBEZXNjZW5kYW50c1RvUmVzb2x2ZSB7IE5vbmUsIENoaWxkcmVuV2l0aEV4
cGxpY2l0SW5oZXJpdCwgQ2hpbGRyZW4sIEFsbCB9OworCiBzdHJ1Y3QgRWxlbWVudFVwZGF0ZXMg
ewogI2lmICFDT01QSUxFUl9TVVBQT1JUUyhOU0RNSV9GT1JfQUdHUkVHQVRFUykKICAgICBFbGVt
ZW50VXBkYXRlcygpID0gZGVmYXVsdDsKLSAgICBFbGVtZW50VXBkYXRlcyhFbGVtZW50VXBkYXRl
IHVwZGF0ZSwgc3RkOjpvcHRpb25hbDxFbGVtZW50VXBkYXRlPiBiZWZvcmVQc2V1ZG9FbGVtZW50
VXBkYXRlLCBzdGQ6Om9wdGlvbmFsPEVsZW1lbnRVcGRhdGU+IGFmdGVyUHNldWRvRWxlbWVudFVw
ZGF0ZSkKKyAgICBFbGVtZW50VXBkYXRlcyhFbGVtZW50VXBkYXRlIHVwZGF0ZSwgRGVzY2VuZGFu
dHNUb1Jlc29sdmUgZGVzY2VuZGFudHNUb1Jlc29sdmUsIHN0ZDo6b3B0aW9uYWw8RWxlbWVudFVw
ZGF0ZT4gYmVmb3JlUHNldWRvRWxlbWVudFVwZGF0ZSwgc3RkOjpvcHRpb25hbDxFbGVtZW50VXBk
YXRlPiBhZnRlclBzZXVkb0VsZW1lbnRVcGRhdGUpCiAgICAgICAgIDogdXBkYXRlIHsgV1RGTW92
ZSh1cGRhdGUpIH0KKyAgICAgICAgLCBkZXNjZW5kYW50c1RvUmVzb2x2ZShkZXNjZW5kYW50c1Rv
UmVzb2x2ZSkKICAgICAgICAgLCBiZWZvcmVQc2V1ZG9FbGVtZW50VXBkYXRlIHsgV1RGTW92ZShi
ZWZvcmVQc2V1ZG9FbGVtZW50VXBkYXRlKSB9CiAgICAgICAgICwgYWZ0ZXJQc2V1ZG9FbGVtZW50
VXBkYXRlIHsgV1RGTW92ZShhZnRlclBzZXVkb0VsZW1lbnRVcGRhdGUpIH0KICAgICB7CiAgICAg
fQogI2VuZGlmCiAgICAgRWxlbWVudFVwZGF0ZSB1cGRhdGU7CisgICAgRGVzY2VuZGFudHNUb1Jl
c29sdmUgZGVzY2VuZGFudHNUb1Jlc29sdmUgeyBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6Tm9uZSB9
OwogICAgIHN0ZDo6b3B0aW9uYWw8RWxlbWVudFVwZGF0ZT4gYmVmb3JlUHNldWRvRWxlbWVudFVw
ZGF0ZTsKICAgICBzdGQ6Om9wdGlvbmFsPEVsZW1lbnRVcGRhdGU+IGFmdGVyUHNldWRvRWxlbWVu
dFVwZGF0ZTsKIH07Cg==
</data>
<flag name="review"
          id="350049"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>331091</attachid>
            <date>2018-01-11 12:14:53 -0800</date>
            <delta_ts>2018-01-11 14:43:34 -0800</delta_ts>
            <desc>patch</desc>
            <filename>no-force-7.patch</filename>
            <type>text/plain</type>
            <size>13255</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIyNjc3NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDE4LTAxLTExICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCBjYWxsIFJlbmRlckVs
ZW1lbnQ6OnNldFN0eWxlIHdoZW4gbm90aGluZyBjaGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODE1MzAKKworICAgICAgICBSZXZpZXdlZCBi
eSBaYWxhbiBCdWp0YXMuCisKKyAgICAgICAgKiBzdHlsZS9TdHlsZUNoYW5nZS5oOgorCisgICAg
ICAgIFJlbW92ZSAnRm9yY2UnIHZhbHVlLiBUaGlzIGVzc2VudGlhbGx5IG1lYW50ICdjb21wdXRl
IHN0eWxlIGZvciBhbGwgZGVzY2VuZGFudHMgYW5kIGNhbGwgc2V0U3R5bGUgdW5jb25kaXRpb25h
bGx5Jy4KKyAgICAgICAgVXNpbmcgdGhpcyB2YWx1ZSBsb3N0IGluZm9ybWF0aW9uIGFib3V0IHdo
ZXRoZXIgYW55dGhpbmcgYWN0dWFsbHkgY2hhbmdlZCBpbiBhIHBhcnRpY3VsYXIgc3R5bGUgYXMg
aXQgd2FzIGF1dG9tYXRpY2FsbHkKKyAgICAgICAgaW5oZXJpdGVkIGJ5IGFsbCBkZXNjZW5kYW50
cy4gVGhlICdjb21wdXRlIGFsbCBkZXNjZW5kYW50cycgcGFydCBvZiB0aGUgYmVoYXZpb3IgaXMg
d2hhdCBpcyBhY3R1YWxseSBuZWVkZWQuCisKKyAgICAgICAgSW5zdGVhZCBhZGQgc2VwYXJhdGUg
RGVzY2VuZGFudHNUb1Jlc29sdmUgZW51bSBmb3IgY29tbXVuaWNhdGluZyB3aGF0IGVsc2UgdG8g
Y29tcHV0ZS4KKworICAgICAgICAqIHN0eWxlL1N0eWxlVHJlZVJlc29sdmVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OlBhcmVudDo6UGFyZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpjb21wdXRlRGVzY2VuZGFudHNUb1Jlc29sdmUpOgorCisgICAg
ICAgICAgICBGaWd1cmUgb3V0IHdoaWNoIGRlc2NlbmRhbnRzIHdpbGwgbmVlZCByZXNvbHZpbmcg
YmFzZWQgb24gaG93IHRoZSBjdXJyZW50IGVsZW1lbnRzIHN0eWxlIGNoYW5nZWQuCisKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OnJlc29sdmVFbGVtZW50KToKKyAgICAg
ICAgKFdlYkNvcmU6OlN0eWxlOjpUcmVlUmVzb2x2ZXI6OmNyZWF0ZUFuaW1hdGVkRWxlbWVudFVw
ZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6VHJlZVJlc29sdmVyOjpwdXNoUGFyZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpzaG91bGRSZXNvbHZlRWxlbWVudCk6CisKKyAg
ICAgICAgICAgIFVzZSBEZXNjZW5kYW50c1RvUmVzb2x2ZSBhcyBpbnB1dC4KKworICAgICAgICAo
V2ViQ29yZTo6U3R5bGU6OlRyZWVSZXNvbHZlcjo6cmVzb2x2ZUNvbXBvc2VkVHJlZSk6CisgICAg
ICAgICogc3R5bGUvU3R5bGVUcmVlUmVzb2x2ZXIuaDoKKyAgICAgICAgKiBzdHlsZS9TdHlsZVVw
ZGF0ZS5oOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OkVsZW1lbnRVcGRhdGVzOjpFbGVtZW50
VXBkYXRlcyk6CisKKyAgICAgICAgICAgIEFkZCBEZXNjZW5kYW50c1RvUmVzb2x2ZS4KKwogMjAx
OC0wMS0xMSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW0dUS10gbWVkaWEvbXV0ZWQtdmlkZW8taXMtcGxheWluZy1hdWRpby5odG1sIGlzIHRpbWlu
ZyBvdXQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQ2hhbmdlLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuaAkocmV2aXNpb24gMjI2NzA1
KQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMzEsNyArMzEsNyBAQCBjbGFzcyBSZW5kZXJTdHlsZTsKIAogbmFtZXNwYWNlIFN0eWxlIHsK
IAotZW51bSBDaGFuZ2UgeyBOb0NoYW5nZSwgTm9Jbmhlcml0LCBJbmhlcml0LCBGb3JjZSwgRGV0
YWNoIH07CitlbnVtIENoYW5nZSB7IE5vQ2hhbmdlLCBOb0luaGVyaXQsIEluaGVyaXQsIERldGFj
aCB9OwogCiBDaGFuZ2UgZGV0ZXJtaW5lQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlJiwgY29uc3Qg
UmVuZGVyU3R5bGUmKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVUcmVlUmVz
b2x2ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVHJlZVJl
c29sdmVyLmNwcAkocmV2aXNpb24gMjI2NzA1KQorKysgU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVUcmVlUmVzb2x2ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04OCwxMCArODgsMTEgQEAgVHJl
ZVJlc29sdmVyOjpQYXJlbnQ6OlBhcmVudChEb2N1bWVudCYgZAogewogfQogCi1UcmVlUmVzb2x2
ZXI6OlBhcmVudDo6UGFyZW50KEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSwgQ2hhbmdlIGNoYW5nZSkKK1RyZWVSZXNvbHZlcjo6UGFyZW50OjpQYXJlbnQoRWxlbWVu
dCYgZWxlbWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBDaGFuZ2UgY2hhbmdlLCBEZXNj
ZW5kYW50c1RvUmVzb2x2ZSBkZXNjZW5kYW50c1RvUmVzb2x2ZSkKICAgICA6IGVsZW1lbnQoJmVs
ZW1lbnQpCiAgICAgLCBzdHlsZShzdHlsZSkKICAgICAsIGNoYW5nZShjaGFuZ2UpCisgICAgLCBk
ZXNjZW5kYW50c1RvUmVzb2x2ZShkZXNjZW5kYW50c1RvUmVzb2x2ZSkKIHsKIH0KIApAQCAtMTc2
LDYgKzE3NywyNiBAQCBzdGF0aWMgY29uc3QgUmVuZGVyU3R5bGUqIHJlbmRlck9yRGlzcGxhCiAg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKK3N0YXRpYyBEZXNjZW5kYW50c1RvUmVzb2x2ZSBjb21w
dXRlRGVzY2VuZGFudHNUb1Jlc29sdmUoQ2hhbmdlIGNoYW5nZSwgVmFsaWRpdHkgdmFsaWRpdHks
IERlc2NlbmRhbnRzVG9SZXNvbHZlIHBhcmVudERlc2NlbmRhbnRzVG9SZXNvbHZlKQoreworICAg
IGlmIChwYXJlbnREZXNjZW5kYW50c1RvUmVzb2x2ZSA9PSBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6
QWxsKQorICAgICAgICByZXR1cm4gRGVzY2VuZGFudHNUb1Jlc29sdmU6OkFsbDsKKyAgICBpZiAo
dmFsaWRpdHkgPj0gVmFsaWRpdHk6OlN1YnRyZWVJbnZhbGlkKQorICAgICAgICByZXR1cm4gRGVz
Y2VuZGFudHNUb1Jlc29sdmU6OkFsbDsKKyAgICBzd2l0Y2ggKGNoYW5nZSkgeworICAgIGNhc2Ug
Tm9DaGFuZ2U6CisgICAgICAgIHJldHVybiBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6Tm9uZTsKKyAg
ICBjYXNlIE5vSW5oZXJpdDoKKyAgICAgICAgcmV0dXJuIERlc2NlbmRhbnRzVG9SZXNvbHZlOjpD
aGlsZHJlbldpdGhFeHBsaWNpdEluaGVyaXQ7CisgICAgY2FzZSBJbmhlcml0OgorICAgICAgICBy
ZXR1cm4gRGVzY2VuZGFudHNUb1Jlc29sdmU6OkNoaWxkcmVuOworICAgIGNhc2UgRGV0YWNoOgor
ICAgICAgICByZXR1cm4gRGVzY2VuZGFudHNUb1Jlc29sdmU6OkFsbDsKKyAgICB9OworICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6Tm9u
ZTsKK307CisKIEVsZW1lbnRVcGRhdGVzIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW1lbnQoRWxl
bWVudCYgZWxlbWVudCkKIHsKICAgICBpZiAobV9kaWRTZWVQZW5kaW5nU3R5bGVzaGVldCAmJiAh
ZWxlbWVudC5yZW5kZXJlcigpICYmICFtX2RvY3VtZW50LmlzSWdub3JpbmdQZW5kaW5nU3R5bGVz
aGVldHMoKSkgewpAQCAtMTk2LDYgKzIxNyw3IEBAIEVsZW1lbnRVcGRhdGVzIFRyZWVSZXNvbHZl
cjo6cmVzb2x2ZUVsZW0KICAgICB9CiAKICAgICBhdXRvIHVwZGF0ZSA9IGNyZWF0ZUFuaW1hdGVk
RWxlbWVudFVwZGF0ZShXVEZNb3ZlKG5ld1N0eWxlKSwgZWxlbWVudCwgcGFyZW50KCkuY2hhbmdl
KTsKKyAgICBhdXRvIGRlc2NlbmRhbnRzVG9SZXNvbHZlID0gY29tcHV0ZURlc2NlbmRhbnRzVG9S
ZXNvbHZlKHVwZGF0ZS5jaGFuZ2UsIGVsZW1lbnQuc3R5bGVWYWxpZGl0eSgpLCBwYXJlbnQoKS5k
ZXNjZW5kYW50c1RvUmVzb2x2ZSk7CiAKICAgICBpZiAoJmVsZW1lbnQgPT0gbV9kb2N1bWVudC5k
b2N1bWVudEVsZW1lbnQoKSkgewogICAgICAgICBtX2RvY3VtZW50RWxlbWVudFN0eWxlID0gUmVu
ZGVyU3R5bGU6OmNsb25lUHRyKCp1cGRhdGUuc3R5bGUpOwpAQCAtMjA1LDcgKzIyNyw3IEBAIEVs
ZW1lbnRVcGRhdGVzIFRyZWVSZXNvbHZlcjo6cmVzb2x2ZUVsZW0KICAgICAgICAgICAgIC8vICJy
ZW0iIHVuaXRzIGFyZSByZWxhdGl2ZSB0byB0aGUgZG9jdW1lbnQgZWxlbWVudCdzIGZvbnQgc2l6
ZSBzbyB3ZSBuZWVkIHRvIHJlY29tcHV0ZSBldmVyeXRoaW5nLgogICAgICAgICAgICAgLy8gSW4g
cHJhY3RpY2UgdGhpcyBpcyByYXJlLgogICAgICAgICAgICAgc2NvcGUoKS5zdHlsZVJlc29sdmVy
LmludmFsaWRhdGVNYXRjaGVkUHJvcGVydGllc0NhY2hlKCk7Ci0gICAgICAgICAgICB1cGRhdGUu
Y2hhbmdlID0gc3RkOjptYXgodXBkYXRlLmNoYW5nZSwgRm9yY2UpOworICAgICAgICAgICAgZGVz
Y2VuZGFudHNUb1Jlc29sdmUgPSBEZXNjZW5kYW50c1RvUmVzb2x2ZTo6QWxsOwogICAgICAgICB9
CiAgICAgfQogCkBAIC0yMTYsMTQgKzIzOCwxNiBAQCBFbGVtZW50VXBkYXRlcyBUcmVlUmVzb2x2
ZXI6OnJlc29sdmVFbGVtCiAKICAgICAvLyBGSVhNRTogVGhlc2UgZWxlbWVudHMgc2hvdWxkIG5v
dCBjaGFuZ2UgcmVuZGVyZXIgYmFzZWQgb24gYXBwZWFyYW5jZSBwcm9wZXJ0eS4KICAgICBpZiAo
ZWxlbWVudC5oYXNUYWdOYW1lKEhUTUxOYW1lczo6bWV0ZXJUYWcpIHx8IGlzPEhUTUxQcm9ncmVz
c0VsZW1lbnQ+KGVsZW1lbnQpKSB7Ci0gICAgICAgIGlmIChleGlzdGluZ1N0eWxlICYmIHVwZGF0
ZS5zdHlsZS0+YXBwZWFyYW5jZSgpICE9IGV4aXN0aW5nU3R5bGUtPmFwcGVhcmFuY2UoKSkKKyAg
ICAgICAgaWYgKGV4aXN0aW5nU3R5bGUgJiYgdXBkYXRlLnN0eWxlLT5hcHBlYXJhbmNlKCkgIT0g
ZXhpc3RpbmdTdHlsZS0+YXBwZWFyYW5jZSgpKSB7CiAgICAgICAgICAgICB1cGRhdGUuY2hhbmdl
ID0gRGV0YWNoOworICAgICAgICAgICAgZGVzY2VuZGFudHNUb1Jlc29sdmUgPSBEZXNjZW5kYW50
c1RvUmVzb2x2ZTo6QWxsOworICAgICAgICB9CiAgICAgfQogCiAgICAgYXV0byBiZWZvcmVVcGRh
dGUgPSByZXNvbHZlUHNldWRvU3R5bGUoZWxlbWVudCwgdXBkYXRlLCBCRUZPUkUpOwogICAgIGF1
dG8gYWZ0ZXJVcGRhdGUgPSByZXNvbHZlUHNldWRvU3R5bGUoZWxlbWVudCwgdXBkYXRlLCBBRlRF
Uik7CiAKLSAgICByZXR1cm4geyBXVEZNb3ZlKHVwZGF0ZSksIFdURk1vdmUoYmVmb3JlVXBkYXRl
KSwgV1RGTW92ZShhZnRlclVwZGF0ZSkgfTsKKyAgICByZXR1cm4geyBXVEZNb3ZlKHVwZGF0ZSks
IGRlc2NlbmRhbnRzVG9SZXNvbHZlLCBXVEZNb3ZlKGJlZm9yZVVwZGF0ZSksIFdURk1vdmUoYWZ0
ZXJVcGRhdGUpIH07CiB9CiAKIEVsZW1lbnRVcGRhdGUgVHJlZVJlc29sdmVyOjpyZXNvbHZlUHNl
dWRvU3R5bGUoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgRWxlbWVudFVwZGF0ZSYgZWxlbWVudFVw
ZGF0ZSwgUHNldWRvSWQgcHNldWRvSWQpCkBAIC0yODgsMjEgKzMxMiwxOSBAQCBFbGVtZW50VXBk
YXRlIFRyZWVSZXNvbHZlcjo6Y3JlYXRlQW5pbWF0CiAgICAgYXV0byBjaGFuZ2UgPSBvbGRTdHls
ZSA/IGRldGVybWluZUNoYW5nZSgqb2xkU3R5bGUsICpuZXdTdHlsZSkgOiBEZXRhY2g7CiAKICAg
ICBhdXRvIHZhbGlkaXR5ID0gZWxlbWVudC5zdHlsZVZhbGlkaXR5KCk7Ci0gICAgaWYgKHZhbGlk
aXR5ID49IFZhbGlkaXR5OjpTdWJ0cmVlSW52YWxpZCkKLSAgICAgICAgY2hhbmdlID0gc3RkOjpt
YXgoY2hhbmdlLCB2YWxpZGl0eSA9PSBWYWxpZGl0eTo6U3VidHJlZUFuZFJlbmRlcmVyc0ludmFs
aWQgPyBEZXRhY2ggOiBGb3JjZSk7Ci0gICAgaWYgKHBhcmVudENoYW5nZSA+PSBGb3JjZSkKLSAg
ICAgICAgY2hhbmdlID0gc3RkOjptYXgoY2hhbmdlLCBwYXJlbnRDaGFuZ2UpOworICAgIGlmICh2
YWxpZGl0eSA+PSBWYWxpZGl0eTo6U3VidHJlZUFuZFJlbmRlcmVyc0ludmFsaWQgfHwgcGFyZW50
Q2hhbmdlID09IERldGFjaCkKKyAgICAgICAgY2hhbmdlID0gRGV0YWNoOwogCiAgICAgYm9vbCBz
aG91bGRSZWNvbXBvc2l0ZUxheWVyID0gZWxlbWVudC5zdHlsZVJlc29sdXRpb25TaG91bGRSZWNv
bXBvc2l0ZUxheWVyKCkgfHwgYW5pbWF0aW9uVXBkYXRlLnN0YXRlQ2hhbmdlZDsKIAogICAgIHJl
dHVybiB7IFdURk1vdmUobmV3U3R5bGUpLCBjaGFuZ2UsIHNob3VsZFJlY29tcG9zaXRlTGF5ZXIg
fTsKIH0KIAotdm9pZCBUcmVlUmVzb2x2ZXI6OnB1c2hQYXJlbnQoRWxlbWVudCYgZWxlbWVudCwg
Y29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlLCBDaGFuZ2UgY2hhbmdlKQordm9pZCBUcmVlUmVzb2x2
ZXI6OnB1c2hQYXJlbnQoRWxlbWVudCYgZWxlbWVudCwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxl
LCBDaGFuZ2UgY2hhbmdlLCBEZXNjZW5kYW50c1RvUmVzb2x2ZSBkZXNjZW5kYW50c1RvUmVzb2x2
ZSkKIHsKICAgICBzY29wZSgpLnNlbGVjdG9yRmlsdGVyLnB1c2hQYXJlbnQoJmVsZW1lbnQpOwog
Ci0gICAgUGFyZW50IHBhcmVudChlbGVtZW50LCBzdHlsZSwgY2hhbmdlKTsKKyAgICBQYXJlbnQg
cGFyZW50KGVsZW1lbnQsIHN0eWxlLCBjaGFuZ2UsIGRlc2NlbmRhbnRzVG9SZXNvbHZlKTsKIAog
ICAgIGlmIChhdXRvKiBzaGFkb3dSb290ID0gZWxlbWVudC5zaGFkb3dSb290KCkpIHsKICAgICAg
ICAgcHVzaFNjb3BlKCpzaGFkb3dSb290KTsKQEAgLTM0NywyMiArMzY5LDI2IEBAIHN0YXRpYyBi
b29sIHNob3VsZFJlc29sdmVQc2V1ZG9FbGVtZW50KGMKICAgICByZXR1cm4gcHNldWRvRWxlbWVu
dC0+bmVlZHNTdHlsZVJlY2FsYygpOwogfQogCi1zdGF0aWMgYm9vbCBzaG91bGRSZXNvbHZlRWxl
bWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50LCBTdHlsZTo6Q2hhbmdlIHBhcmVudENoYW5nZSkK
K3N0YXRpYyBib29sIHNob3VsZFJlc29sdmVFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQs
IERlc2NlbmRhbnRzVG9SZXNvbHZlIHBhcmVudERlc2NlbmRhbnRzVG9SZXNvbHZlKQogewotICAg
IGlmIChwYXJlbnRDaGFuZ2UgPj0gSW5oZXJpdCkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
aWYgKHBhcmVudENoYW5nZSA9PSBOb0luaGVyaXQpIHsKLSAgICAgICAgYXV0byogZXhpc3RpbmdT
dHlsZSA9IHJlbmRlck9yRGlzcGxheUNvbnRlbnRzU3R5bGUoZWxlbWVudCk7Ci0gICAgICAgIGlm
IChleGlzdGluZ1N0eWxlICYmIGV4aXN0aW5nU3R5bGUtPmhhc0V4cGxpY2l0bHlJbmhlcml0ZWRQ
cm9wZXJ0aWVzKCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKGVs
ZW1lbnQubmVlZHNTdHlsZVJlY2FsYygpKQorICAgIGlmIChlbGVtZW50LnN0eWxlVmFsaWRpdHko
KSAhPSBWYWxpZGl0eTo6VmFsaWQpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChzaG91
bGRSZXNvbHZlUHNldWRvRWxlbWVudChlbGVtZW50LmJlZm9yZVBzZXVkb0VsZW1lbnQoKSkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIGlmIChzaG91bGRSZXNvbHZlUHNldWRvRWxlbWVudChl
bGVtZW50LmFmdGVyUHNldWRvRWxlbWVudCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAg
ICBzd2l0Y2ggKHBhcmVudERlc2NlbmRhbnRzVG9SZXNvbHZlKSB7CisgICAgY2FzZSBEZXNjZW5k
YW50c1RvUmVzb2x2ZTo6Tm9uZToKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGNhc2UgRGVz
Y2VuZGFudHNUb1Jlc29sdmU6OkNoaWxkcmVuOgorICAgIGNhc2UgRGVzY2VuZGFudHNUb1Jlc29s
dmU6OkFsbDoKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgY2FzZSBEZXNjZW5kYW50c1RvUmVz
b2x2ZTo6Q2hpbGRyZW5XaXRoRXhwbGljaXRJbmhlcml0OgorICAgICAgICBhdXRvKiBleGlzdGlu
Z1N0eWxlID0gcmVuZGVyT3JEaXNwbGF5Q29udGVudHNTdHlsZShlbGVtZW50KTsKKyAgICAgICAg
cmV0dXJuIGV4aXN0aW5nU3R5bGUgJiYgZXhpc3RpbmdTdHlsZS0+aGFzRXhwbGljaXRseUluaGVy
aXRlZFByb3BlcnRpZXMoKTsKKyAgICB9OworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAg
IHJldHVybiBmYWxzZTsKIH0KIApAQCAtNDUyLDggKzQ3OCw5IEBAIHZvaWQgVHJlZVJlc29sdmVy
OjpyZXNvbHZlQ29tcG9zZWRUcmVlKCkKIAogICAgICAgICBhdXRvKiBzdHlsZSA9IHJlbmRlck9y
RGlzcGxheUNvbnRlbnRzU3R5bGUoZWxlbWVudCk7CiAgICAgICAgIGF1dG8gY2hhbmdlID0gTm9D
aGFuZ2U7CisgICAgICAgIGF1dG8gZGVzY2VuZGFudHNUb1Jlc29sdmUgPSBEZXNjZW5kYW50c1Rv
UmVzb2x2ZTo6Tm9uZTsKIAotICAgICAgICBib29sIHNob3VsZFJlc29sdmUgPSBzaG91bGRSZXNv
bHZlRWxlbWVudChlbGVtZW50LCBwYXJlbnQuY2hhbmdlKSB8fCBhZmZlY3RlZEJ5UHJldmlvdXNT
aWJsaW5nOworICAgICAgICBib29sIHNob3VsZFJlc29sdmUgPSBzaG91bGRSZXNvbHZlRWxlbWVu
dChlbGVtZW50LCBwYXJlbnQuZGVzY2VuZGFudHNUb1Jlc29sdmUpIHx8IGFmZmVjdGVkQnlQcmV2
aW91c1NpYmxpbmc7CiAgICAgICAgIGlmIChzaG91bGRSZXNvbHZlKSB7CiAgICAgICAgICAgICBp
ZiAoIWVsZW1lbnQuaGFzRGlzcGxheUNvbnRlbnRzKCkpCiAgICAgICAgICAgICAgICAgZWxlbWVu
dC5yZXNldENvbXB1dGVkU3R5bGUoKTsKQEAgLTQ2OSw5ICs0OTYsMTAgQEAgdm9pZCBUcmVlUmVz
b2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUoKQogCiAgICAgICAgICAgICBzdHlsZSA9IGVsZW1l
bnRVcGRhdGVzLnVwZGF0ZS5zdHlsZS5nZXQoKTsKICAgICAgICAgICAgIGNoYW5nZSA9IGVsZW1l
bnRVcGRhdGVzLnVwZGF0ZS5jaGFuZ2U7CisgICAgICAgICAgICBkZXNjZW5kYW50c1RvUmVzb2x2
ZSA9IGVsZW1lbnRVcGRhdGVzLmRlc2NlbmRhbnRzVG9SZXNvbHZlOwogCi0gICAgICAgICAgICBp
ZiAoYWZmZWN0ZWRCeVByZXZpb3VzU2libGluZyAmJiBjaGFuZ2UgIT0gRGV0YWNoKQotICAgICAg
ICAgICAgICAgIGNoYW5nZSA9IEZvcmNlOworICAgICAgICAgICAgaWYgKGFmZmVjdGVkQnlQcmV2
aW91c1NpYmxpbmcpCisgICAgICAgICAgICAgICAgZGVzY2VuZGFudHNUb1Jlc29sdmUgPSBEZXNj
ZW5kYW50c1RvUmVzb2x2ZTo6QWxsOwogCiAgICAgICAgICAgICBpZiAoZWxlbWVudFVwZGF0ZXMu
dXBkYXRlLnN0eWxlKQogICAgICAgICAgICAgICAgIG1fdXBkYXRlLT5hZGRFbGVtZW50KGVsZW1l
bnQsIHBhcmVudC5lbGVtZW50LCBXVEZNb3ZlKGVsZW1lbnRVcGRhdGVzKSk7CkBAIC00ODQsNyAr
NTEyLDcgQEAgdm9pZCBUcmVlUmVzb2x2ZXI6OnJlc29sdmVDb21wb3NlZFRyZWUoKQogICAgICAg
ICAgICAgZWxlbWVudC5jbGVhckNoaWxkTmVlZHNTdHlsZVJlY2FsYygpOwogICAgICAgICB9CiAK
LSAgICAgICAgYm9vbCBzaG91bGRJdGVyYXRlQ2hpbGRyZW4gPSBzdHlsZSAmJiAoZWxlbWVudC5j
aGlsZE5lZWRzU3R5bGVSZWNhbGMoKSB8fCBjaGFuZ2UgIT0gTm9DaGFuZ2UpOworICAgICAgICBi
b29sIHNob3VsZEl0ZXJhdGVDaGlsZHJlbiA9IHN0eWxlICYmIChlbGVtZW50LmNoaWxkTmVlZHNT
dHlsZVJlY2FsYygpIHx8IGRlc2NlbmRhbnRzVG9SZXNvbHZlICE9IERlc2NlbmRhbnRzVG9SZXNv
bHZlOjpOb25lKTsKIAogICAgICAgICBpZiAoIW1fZGlkU2VlUGVuZGluZ1N0eWxlc2hlZXQpCiAg
ICAgICAgICAgICBtX2RpZFNlZVBlbmRpbmdTdHlsZXNoZWV0ID0gaGFzTG9hZGluZ1N0eWxlc2hl
ZXQobV9kb2N1bWVudC5zdHlsZVNjb3BlKCksIGVsZW1lbnQsICFzaG91bGRJdGVyYXRlQ2hpbGRy
ZW4pOwpAQCAtNDk0LDcgKzUyMiw3IEBAIHZvaWQgVHJlZVJlc29sdmVyOjpyZXNvbHZlQ29tcG9z
ZWRUcmVlKCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CiAKLSAgICAgICAgcHVz
aFBhcmVudChlbGVtZW50LCAqc3R5bGUsIGNoYW5nZSk7CisgICAgICAgIHB1c2hQYXJlbnQoZWxl
bWVudCwgKnN0eWxlLCBjaGFuZ2UsIGRlc2NlbmRhbnRzVG9SZXNvbHZlKTsKIAogICAgICAgICBp
dC50cmF2ZXJzZU5leHQoKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVRyZWVSZXNvbHZlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxl
VHJlZVJlc29sdmVyLmgJKHJldmlzaW9uIDIyNjcwNSkKKysrIFNvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlVHJlZVJlc29sdmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDggKzU1LDEwIEBAIHBy
aXZhdGU6CiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvckVsZW1lbnQo
RWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlJiBpbmhlcml0ZWRTdHlsZSk7CiAKICAgICB2b2lk
IHJlc29sdmVDb21wb3NlZFRyZWUoKTsKKwogICAgIEVsZW1lbnRVcGRhdGVzIHJlc29sdmVFbGVt
ZW50KEVsZW1lbnQmKTsKLSAgICBFbGVtZW50VXBkYXRlIGNyZWF0ZUFuaW1hdGVkRWxlbWVudFVw
ZGF0ZShzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+LCBFbGVtZW50JiwgQ2hhbmdlIHBhcmVu
dENoYW5nZSk7CisKKyAgICBFbGVtZW50VXBkYXRlIGNyZWF0ZUFuaW1hdGVkRWxlbWVudFVwZGF0
ZShzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+LCBFbGVtZW50JiwgQ2hhbmdlKTsKICAgICBF
bGVtZW50VXBkYXRlIHJlc29sdmVQc2V1ZG9TdHlsZShFbGVtZW50JiwgY29uc3QgRWxlbWVudFVw
ZGF0ZSYsIFBzZXVkb0lkKTsKIAogICAgIHN0cnVjdCBTY29wZSA6IFJlZkNvdW50ZWQ8U2NvcGU+
IHsKQEAgLTc1LDExICs3NywxMiBAQCBwcml2YXRlOgogICAgICAgICBFbGVtZW50KiBlbGVtZW50
OwogICAgICAgICBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGU7CiAgICAgICAgIENoYW5nZSBjaGFu
Z2UgeyBOb0NoYW5nZSB9OworICAgICAgICBEZXNjZW5kYW50c1RvUmVzb2x2ZSBkZXNjZW5kYW50
c1RvUmVzb2x2ZSB7IERlc2NlbmRhbnRzVG9SZXNvbHZlOjpOb25lIH07CiAgICAgICAgIGJvb2wg
ZGlkUHVzaFNjb3BlIHsgZmFsc2UgfTsKICAgICAgICAgYm9vbCBlbGVtZW50TmVlZGluZ1N0eWxl
UmVjYWxjQWZmZWN0c05leHRTaWJsaW5nRWxlbWVudFN0eWxlIHsgZmFsc2UgfTsKIAogICAgICAg
ICBQYXJlbnQoRG9jdW1lbnQmKTsKLSAgICAgICAgUGFyZW50KEVsZW1lbnQmLCBjb25zdCBSZW5k
ZXJTdHlsZSYsIENoYW5nZSk7CisgICAgICAgIFBhcmVudChFbGVtZW50JiwgY29uc3QgUmVuZGVy
U3R5bGUmLCBDaGFuZ2UsIERlc2NlbmRhbnRzVG9SZXNvbHZlKTsKICAgICB9OwogCiAgICAgU2Nv
cGUmIHNjb3BlKCkgeyByZXR1cm4gbV9zY29wZVN0YWNrLmxhc3QoKTsgfQpAQCAtODksNyArOTIs
NyBAQCBwcml2YXRlOgogICAgIHZvaWQgcHVzaEVuY2xvc2luZ1Njb3BlKCk7CiAgICAgdm9pZCBw
b3BTY29wZSgpOwogCi0gICAgdm9pZCBwdXNoUGFyZW50KEVsZW1lbnQmLCBjb25zdCBSZW5kZXJT
dHlsZSYsIENoYW5nZSk7CisgICAgdm9pZCBwdXNoUGFyZW50KEVsZW1lbnQmLCBjb25zdCBSZW5k
ZXJTdHlsZSYsIENoYW5nZSwgRGVzY2VuZGFudHNUb1Jlc29sdmUpOwogICAgIHZvaWQgcG9wUGFy
ZW50KCk7CiAgICAgdm9pZCBwb3BQYXJlbnRzVG9EZXB0aCh1bnNpZ25lZCBkZXB0aCk7CiAKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlVXBkYXRlLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAkocmV2aXNpb24gMjI2NzA1KQorKysgU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVVcGRhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTcsMTcg
KzU3LDIxIEBAIHN0cnVjdCBFbGVtZW50VXBkYXRlIHsKICAgICBib29sIHJlY29tcG9zaXRlTGF5
ZXIgeyBmYWxzZSB9OwogfTsKIAorZW51bSBjbGFzcyBEZXNjZW5kYW50c1RvUmVzb2x2ZSB7IE5v
bmUsIENoaWxkcmVuV2l0aEV4cGxpY2l0SW5oZXJpdCwgQ2hpbGRyZW4sIEFsbCB9OworCiBzdHJ1
Y3QgRWxlbWVudFVwZGF0ZXMgewogI2lmICFDT01QSUxFUl9TVVBQT1JUUyhOU0RNSV9GT1JfQUdH
UkVHQVRFUykKICAgICBFbGVtZW50VXBkYXRlcygpID0gZGVmYXVsdDsKLSAgICBFbGVtZW50VXBk
YXRlcyhFbGVtZW50VXBkYXRlIHVwZGF0ZSwgc3RkOjpvcHRpb25hbDxFbGVtZW50VXBkYXRlPiBi
ZWZvcmVQc2V1ZG9FbGVtZW50VXBkYXRlLCBzdGQ6Om9wdGlvbmFsPEVsZW1lbnRVcGRhdGU+IGFm
dGVyUHNldWRvRWxlbWVudFVwZGF0ZSkKKyAgICBFbGVtZW50VXBkYXRlcyhFbGVtZW50VXBkYXRl
IHVwZGF0ZSwgRGVzY2VuZGFudHNUb1Jlc29sdmUgZGVzY2VuZGFudHNUb1Jlc29sdmUsIHN0ZDo6
b3B0aW9uYWw8RWxlbWVudFVwZGF0ZT4gYmVmb3JlUHNldWRvRWxlbWVudFVwZGF0ZSwgc3RkOjpv
cHRpb25hbDxFbGVtZW50VXBkYXRlPiBhZnRlclBzZXVkb0VsZW1lbnRVcGRhdGUpCiAgICAgICAg
IDogdXBkYXRlIHsgV1RGTW92ZSh1cGRhdGUpIH0KKyAgICAgICAgLCBkZXNjZW5kYW50c1RvUmVz
b2x2ZShkZXNjZW5kYW50c1RvUmVzb2x2ZSkKICAgICAgICAgLCBiZWZvcmVQc2V1ZG9FbGVtZW50
VXBkYXRlIHsgV1RGTW92ZShiZWZvcmVQc2V1ZG9FbGVtZW50VXBkYXRlKSB9CiAgICAgICAgICwg
YWZ0ZXJQc2V1ZG9FbGVtZW50VXBkYXRlIHsgV1RGTW92ZShhZnRlclBzZXVkb0VsZW1lbnRVcGRh
dGUpIH0KICAgICB7CiAgICAgfQogI2VuZGlmCiAgICAgRWxlbWVudFVwZGF0ZSB1cGRhdGU7Cisg
ICAgRGVzY2VuZGFudHNUb1Jlc29sdmUgZGVzY2VuZGFudHNUb1Jlc29sdmUgeyBEZXNjZW5kYW50
c1RvUmVzb2x2ZTo6Tm9uZSB9OwogICAgIHN0ZDo6b3B0aW9uYWw8RWxlbWVudFVwZGF0ZT4gYmVm
b3JlUHNldWRvRWxlbWVudFVwZGF0ZTsKICAgICBzdGQ6Om9wdGlvbmFsPEVsZW1lbnRVcGRhdGU+
IGFmdGVyUHNldWRvRWxlbWVudFVwZGF0ZTsKIH07Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>