<?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>167677</bug_id>
          
          <creation_ts>2017-01-31 17:52:38 -0800</creation_ts>
          <short_desc>AX: Incorrect range from index and length in text controls when there are newlines</short_desc>
          <delta_ts>2017-02-01 10:13:38 -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>Accessibility</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Nan Wang">n_wang</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>mario</cc>
    
    <cc>n_wang</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1272006</commentid>
    <comment_count>0</comment_count>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-01-31 17:52:38 -0800</bug_when>
    <thetext>doAXStringForRange(const PlainTextRange&amp;) and doAXBoundsForRange(const PlainTextRange&amp;) sometimes return wrong information when the text control contains newlines. 

&lt;rdar://problem/30187854&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272007</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2017-01-31 17:52:49 -0800</bug_when>
    <thetext>&lt;rdar://problem/30300099&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272012</commentid>
    <comment_count>2</comment_count>
      <attachid>300290</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-01-31 18:03:30 -0800</bug_when>
    <thetext>Created attachment 300290
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272013</commentid>
    <comment_count>3</comment_count>
      <attachid>300290</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2017-01-31 18:07:44 -0800</bug_when>
    <thetext>Comment on attachment 300290
patch

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

&gt; LayoutTests/accessibility/mac/range-for-contenteditable-newline.html:9
&gt; +&lt;div id=&quot;textcontrol&quot; contenteditable=&quot;true&quot;&gt;some&lt;div&gt;hello world&lt;/div&gt;&lt;div&gt;test&lt;/div&gt;&lt;/div&gt;

can you also add an input type=text test case too</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272015</commentid>
    <comment_count>4</comment_count>
      <attachid>300291</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-01-31 18:14:34 -0800</bug_when>
    <thetext>Created attachment 300291
patch

added test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272016</commentid>
    <comment_count>5</comment_count>
      <attachid>300291</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2017-01-31 18:16:47 -0800</bug_when>
    <thetext>Comment on attachment 300291
patch

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

&gt; LayoutTests/accessibility/mac/range-for-contenteditable-newline.html:10
&gt; +&lt;input type=&quot;text&quot; id=&quot;input&quot; value=&quot;hello world&quot;&gt;

I guess input type=text doesn&apos;t have newlines. we should also check &lt;textarea&gt;

sorry</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272018</commentid>
    <comment_count>6</comment_count>
      <attachid>300292</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-01-31 18:22:34 -0800</bug_when>
    <thetext>Created attachment 300292
patch

sure, test &lt;textarea&gt; instead</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272173</commentid>
    <comment_count>7</comment_count>
      <attachid>300333</attachid>
    <who name="Nan Wang">n_wang</who>
    <bug_when>2017-02-01 09:50:22 -0800</bug_when>
    <thetext>Created attachment 300333
patch

Found an issue where a wrong position is retrieved if there are multiple &lt;br&gt; in the text control.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272183</commentid>
    <comment_count>8</comment_count>
      <attachid>300333</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-01 10:13:33 -0800</bug_when>
    <thetext>Comment on attachment 300333
patch

Clearing flags on attachment: 300333

Committed r211491: &lt;http://trac.webkit.org/changeset/211491&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1272184</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-02-01 10:13:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300290</attachid>
            <date>2017-01-31 18:03:30 -0800</date>
            <delta_ts>2017-01-31 18:14:34 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6516</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTQ2NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE3LTAxLTMxICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEluY29ycmVjdCByYW5nZSBmcm9t
IGluZGV4IGFuZCBsZW5ndGggaW4gdGV4dCBjb250cm9scyB3aGVuIHRoZXJlIGFyZSBuZXdsaW5l
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3Njc3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDMwMDA5OT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZXJlIGFyZSBuZXdsaW5lcyBpbiB0
ZXh0IGNvbnRyb2xzLCB0aGUgVmlzaWJsZVBvc2l0aW9uIHRoYXQgaXMgY3JlYXRlZAorICAgICAg
ICBmcm9tIHRoZSBpbmRleCBjb3VsZCBiZSB3cm9uZy4gQmVjYXVzZSB0aGUgaW5kZXggZG9lc24n
dCBpbmNsdWRlIHRoZSBpbmZvcm1hdGlvbiAKKyAgICAgICAgcmVnYXJkaW5nIGEgcG9zaXRpb24n
cyBhZmZpbml0eS4gRml4ZWQgaXQgYnkgdXNpbmcgQ2hhcmFjdGVyT2Zmc2V0IGluc3RlYWQsIHNp
bmNlCisgICAgICAgIGl0IGRvZXNuJ3QgcmVxdWlyZSB0aGF0IGluZm9ybWF0aW9uLgorCisgICAg
ICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL3JhbmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3
bGluZS5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dHJhdmVyc2VUb09mZnNldEluUmFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y2hhcmFjdGVyT2Zmc2V0Rm9ySW5k
ZXgpOgorCiAyMDE3LTAxLTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgRml4IGRlYnVnIGxpYndlYnJ0YyBidWlsZCBhZnRlciByMjExNDM5
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAJKHJldmlzaW9uIDIxMTM3NikKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NjQsNyArMTU2NCw3IEBAIENoYXJh
Y3Rlck9mZnNldCBBWE9iamVjdENhY2hlOjp0cmF2ZXJzZVQKICAgICBib29sIGZpbmlzaGVkID0g
ZmFsc2U7CiAgICAgaW50IGxhc3RTdGFydE9mZnNldCA9IDA7CiAgICAgCi0gICAgVGV4dEl0ZXJh
dG9yIGl0ZXJhdG9yKHJhbmdlLmdldCgpKTsKKyAgICBUZXh0SXRlcmF0b3IgaXRlcmF0b3IocmFu
Z2UuZ2V0KCksIFRleHRJdGVyYXRvckVudGVyc1RleHRDb250cm9scyk7CiAgICAgCiAgICAgLy8g
V2hlbiB0aGUgcmFuZ2UgaGFzIHplcm8gbGVuZ3RoLCB0aGVyZSBtaWdodCBiZSByZXBsYWNlZCBu
b2RlIG9yIGJyVGFnIHRoYXQgd2UgbmVlZCB0byBpbmNyZW1lbnQgdGhlIGNoYXJhY3Rlck9mZnNl
dC4KICAgICBpZiAoaXRlcmF0b3IuYXRFbmQoKSkgewpAQCAtMTYxNyw2ICsxNjE3LDExIEBAIENo
YXJhY3Rlck9mZnNldCBBWE9iamVjdENhY2hlOjp0cmF2ZXJzZVQKICAgICAgICAgICAgICAgICAg
ICAgaWYgKGNoaWxkTm9kZSAmJiBjaGlsZE5vZGUtPnJlbmRlcmVyKCkgJiYgY2hpbGROb2RlLT5y
ZW5kZXJlcigpLT5pc0JSKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROb2Rl
ID0gY2hpbGROb2RlOwogICAgICAgICAgICAgICAgICAgICAgICAgaGFzUmVwbGFjZWROb2RlT3JC
UiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudE5vZGUtPmlz
U2hhZG93Um9vdCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBhcmUg
ZW50ZXJpbmcgdGV4dCBjb250cm9scywgd2Ugc2hvdWxkIHNldCB0aGUgY3VycmVudE5vZGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGJlIHRoZSBzaGFkb3cgaG9zdCB3aGVuIHRoZXJl
J3Mgbm8gY29udGVudC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlID0gY3Vy
cmVudE5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnROb2RlICE9IHByZXZpb3Vz
Tm9kZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIHNldCB0aGUgc3Rh
cnQgb2Zmc2V0IGFuZCBsZW5ndGggZm9yIHRoZSBjdXJyZW50IG5vZGUgaW4gY2FzZSB0aGlzIGlz
IHRoZSBsYXN0IGl0ZXJhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RTdGFydE9m
ZnNldCA9IDE7CkBAIC0yNjA4LDEyICsyNjEzLDE2IEBAIENoYXJhY3Rlck9mZnNldCBBWE9iamVj
dENhY2hlOjpjaGFyYWN0ZXIKICAgICBpZiAoIW9iaikKICAgICAgICAgcmV0dXJuIENoYXJhY3Rl
ck9mZnNldCgpOwogICAgIAotICAgIC8vIFNpbmNlIHRoaXMgd291bGQgb25seSB3b3JrIG9uIHJl
bmRlcmVkIG5vZGVzLCB1c2luZyBWaXNpYmxlUG9zaXRpb24gdG8gY3JlYXRlIGEgY29sbGFwc2Vk
Ci0gICAgLy8gcmFuZ2Ugc2hvdWxkIGJlIGZpbmUuCi0gICAgVmlzaWJsZVBvc2l0aW9uIHZwID0g
b2JqLT52aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbmRleCk7Ci0gICAgUmVmUHRyPFJhbmdlPiBy
YW5nZSA9IG1ha2VSYW5nZSh2cCwgdnApOwotICAgIAotICAgIHJldHVybiBzdGFydE9yRW5kQ2hh
cmFjdGVyT2Zmc2V0Rm9yUmFuZ2UocmFuZ2UsIHRydWUpOworICAgIFJlZlB0cjxSYW5nZT4gcmFu
Z2UgPSBvYmotPmVsZW1lbnRSYW5nZSgpOworICAgIENoYXJhY3Rlck9mZnNldCBzdGFydCA9IHN0
YXJ0T3JFbmRDaGFyYWN0ZXJPZmZzZXRGb3JSYW5nZShyYW5nZSwgdHJ1ZSk7CisgICAgQ2hhcmFj
dGVyT2Zmc2V0IGVuZCA9IHN0YXJ0T3JFbmRDaGFyYWN0ZXJPZmZzZXRGb3JSYW5nZShyYW5nZSwg
ZmFsc2UpOworICAgIENoYXJhY3Rlck9mZnNldCByZXN1bHQgPSBzdGFydDsKKyAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGluZGV4OyBpKyspIHsKKyAgICAgICAgcmVzdWx0ID0gbmV4dENoYXJhY3Rl
ck9mZnNldChyZXN1bHQsIGZhbHNlKTsKKyAgICAgICAgaWYgKHJlc3VsdC5pc0VxdWFsKGVuZCkp
CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogaW50
IEFYT2JqZWN0Q2FjaGU6OmluZGV4Rm9yQ2hhcmFjdGVyT2Zmc2V0KGNvbnN0IENoYXJhY3Rlck9m
ZnNldCYgY2hhcmFjdGVyT2Zmc2V0LCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTEzNzYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wMS0zMSAgTmFuIFdhbmcgIDxuX3dhbmdAYXBwbGUu
Y29tPgorCisgICAgICAgIEFYOiBJbmNvcnJlY3QgcmFuZ2UgZnJvbSBpbmRleCBhbmQgbGVuZ3Ro
IGluIHRleHQgY29udHJvbHMgd2hlbiB0aGVyZSBhcmUgbmV3bGluZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzY3NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzAzMDAwOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9yYW5nZS1mb3ItY29udGVudGVkaXRhYmxl
LW5ld2xpbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9yYW5nZS1mb3ItY29udGVudGVkaXRhYmxlLW5ld2xpbmUuaHRtbDogQWRkZWQuCisKIDIwMTct
MDEtMzAgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbG91dCByMjExMjM1IFBvaW50ZXIgbG9jayBldmVudHMgc2hvdWxkIGJlIGRl
bGl2ZXJlZCBkaXJlY3RseSB0byB0aGUgdGFyZ2V0IGVsZW1lbnQuCkluZGV4OiBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21hYy9yYW5nZS1mb3ItY29udGVudGVkaXRhYmxlLW5ld2xpbmUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Jh
bmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3bGluZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvcmFuZ2UtZm9yLWNvbnRlbnRlZGl0
YWJsZS1uZXdsaW5lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE2IEBA
Citzb21lCitoZWxsbyB3b3JsZAordGVzdAorVGhpcyB0ZXN0cyB0aGF0IHdoZW4gdGhlcmUgYXJl
IG5ld2xpbmUgY2hhcmFjdGVycyB3aXRoaW4gY29udGVudGVkaXRhYmxlLCB3ZSBjYW4gZ2V0IHRo
ZSBjb3JyZWN0IHRleHQgcmFuZ2UgZnJvbSBpbmRleCBhbmQgbGVuZ3RoLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXh0U29tZSBpcyAnc29tZScKK1BBU1MgdGV4dEhl
bGxvIGlzICdoZWxsbycKK1BBU1MgdGV4dFdvcmxkIGlzICd3b3JsZCcKK1BBU1MgdGV4dFRlc3Qg
aXMgJ3Rlc3QnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvcmFuZ2UtZm9yLWNvbnRl
bnRlZGl0YWJsZS1uZXdsaW5lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9tYWMvcmFuZ2UtZm9yLWNvbnRlbnRlZGl0YWJsZS1uZXdsaW5lLmh0bWwJKG5vbmV4
aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvcmFuZ2UtZm9yLWNvbnRl
bnRlZGl0YWJsZS1uZXdsaW5lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzNSBAQAor
PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgaWQ9ImJvZHkiPgorCis8ZGl2IGlkPSJjb250ZW50Ij4KKzxk
aXYgaWQ9InRleHRjb250cm9sIiBjb250ZW50ZWRpdGFibGU9InRydWUiPnNvbWU8ZGl2PmhlbGxv
IHdvcmxkPC9kaXY+PGRpdj50ZXN0PC9kaXY+PC9kaXY+Cis8L2Rpdj4KKworPGRpdiByb2xlPSJn
cm91cCIgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorCisgICAgZGVzY3JpcHRpb24o
IlRoaXMgdGVzdHMgdGhhdCB3aGVuIHRoZXJlIGFyZSBuZXdsaW5lIGNoYXJhY3RlcnMgd2l0aGlu
IGNvbnRlbnRlZGl0YWJsZSwgd2UgY2FuIGdldCB0aGUgY29ycmVjdCB0ZXh0IHJhbmdlIGZyb20g
aW5kZXggYW5kIGxlbmd0aC4iKTsKKworICAgIHZhciB0ZXh0Q29udHJvbCA9IGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgidGV4dGNvbnRyb2wiKTsKKyAgICB2
YXIgdGV4dFNvbWUgPSB0ZXh0Q29udHJvbC5zdHJpbmdGb3JSYW5nZSgwLCA0KTsKKyAgICBzaG91
bGRCZSgidGV4dFNvbWUiLCAiJ3NvbWUnIik7CisgICAgCisgICAgdmFyIHRleHRIZWxsbyA9IHRl
eHRDb250cm9sLnN0cmluZ0ZvclJhbmdlKDUsIDUpOworICAgIHNob3VsZEJlKCJ0ZXh0SGVsbG8i
LCAiJ2hlbGxvJyIpOworICAgIAorICAgIHZhciB0ZXh0V29ybGQgPSB0ZXh0Q29udHJvbC5zdHJp
bmdGb3JSYW5nZSgxMSwgNSk7CisgICAgc2hvdWxkQmUoInRleHRXb3JsZCIsICInd29ybGQnIik7
CisgICAgCisgICAgdmFyIHRleHRUZXN0ID0gdGV4dENvbnRyb2wuc3RyaW5nRm9yUmFuZ2UoMTcs
IDQpOworICAgIHNob3VsZEJlKCJ0ZXh0VGVzdCIsICIndGVzdCciKTsKKworPC9zY3JpcHQ+CisK
KzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300291</attachid>
            <date>2017-01-31 18:14:34 -0800</date>
            <delta_ts>2017-01-31 18:22:34 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6905</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTQ2NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE3LTAxLTMxICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEluY29ycmVjdCByYW5nZSBmcm9t
IGluZGV4IGFuZCBsZW5ndGggaW4gdGV4dCBjb250cm9scyB3aGVuIHRoZXJlIGFyZSBuZXdsaW5l
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3Njc3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDMwMDA5OT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZXJlIGFyZSBuZXdsaW5lcyBpbiB0
ZXh0IGNvbnRyb2xzLCB0aGUgVmlzaWJsZVBvc2l0aW9uIHRoYXQgaXMgY3JlYXRlZAorICAgICAg
ICBmcm9tIHRoZSBpbmRleCBjb3VsZCBiZSB3cm9uZy4gQmVjYXVzZSB0aGUgaW5kZXggZG9lc24n
dCBpbmNsdWRlIHRoZSBpbmZvcm1hdGlvbiAKKyAgICAgICAgcmVnYXJkaW5nIGEgcG9zaXRpb24n
cyBhZmZpbml0eS4gRml4ZWQgaXQgYnkgdXNpbmcgQ2hhcmFjdGVyT2Zmc2V0IGluc3RlYWQsIHNp
bmNlCisgICAgICAgIGl0IGRvZXNuJ3QgcmVxdWlyZSB0aGF0IGluZm9ybWF0aW9uLgorCisgICAg
ICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL3JhbmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3
bGluZS5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dHJhdmVyc2VUb09mZnNldEluUmFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y2hhcmFjdGVyT2Zmc2V0Rm9ySW5k
ZXgpOgorCiAyMDE3LTAxLTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgRml4IGRlYnVnIGxpYndlYnJ0YyBidWlsZCBhZnRlciByMjExNDM5
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAJKHJldmlzaW9uIDIxMTM3NikKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NjQsNyArMTU2NCw3IEBAIENoYXJh
Y3Rlck9mZnNldCBBWE9iamVjdENhY2hlOjp0cmF2ZXJzZVQKICAgICBib29sIGZpbmlzaGVkID0g
ZmFsc2U7CiAgICAgaW50IGxhc3RTdGFydE9mZnNldCA9IDA7CiAgICAgCi0gICAgVGV4dEl0ZXJh
dG9yIGl0ZXJhdG9yKHJhbmdlLmdldCgpKTsKKyAgICBUZXh0SXRlcmF0b3IgaXRlcmF0b3IocmFu
Z2UuZ2V0KCksIFRleHRJdGVyYXRvckVudGVyc1RleHRDb250cm9scyk7CiAgICAgCiAgICAgLy8g
V2hlbiB0aGUgcmFuZ2UgaGFzIHplcm8gbGVuZ3RoLCB0aGVyZSBtaWdodCBiZSByZXBsYWNlZCBu
b2RlIG9yIGJyVGFnIHRoYXQgd2UgbmVlZCB0byBpbmNyZW1lbnQgdGhlIGNoYXJhY3Rlck9mZnNl
dC4KICAgICBpZiAoaXRlcmF0b3IuYXRFbmQoKSkgewpAQCAtMTYxNyw2ICsxNjE3LDExIEBAIENo
YXJhY3Rlck9mZnNldCBBWE9iamVjdENhY2hlOjp0cmF2ZXJzZVQKICAgICAgICAgICAgICAgICAg
ICAgaWYgKGNoaWxkTm9kZSAmJiBjaGlsZE5vZGUtPnJlbmRlcmVyKCkgJiYgY2hpbGROb2RlLT5y
ZW5kZXJlcigpLT5pc0JSKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROb2Rl
ID0gY2hpbGROb2RlOwogICAgICAgICAgICAgICAgICAgICAgICAgaGFzUmVwbGFjZWROb2RlT3JC
UiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudE5vZGUtPmlz
U2hhZG93Um9vdCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBhcmUg
ZW50ZXJpbmcgdGV4dCBjb250cm9scywgd2Ugc2hvdWxkIHNldCB0aGUgY3VycmVudE5vZGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGJlIHRoZSBzaGFkb3cgaG9zdCB3aGVuIHRoZXJl
J3Mgbm8gY29udGVudC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlID0gY3Vy
cmVudE5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnROb2RlICE9IHByZXZpb3Vz
Tm9kZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIHNldCB0aGUgc3Rh
cnQgb2Zmc2V0IGFuZCBsZW5ndGggZm9yIHRoZSBjdXJyZW50IG5vZGUgaW4gY2FzZSB0aGlzIGlz
IHRoZSBsYXN0IGl0ZXJhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RTdGFydE9m
ZnNldCA9IDE7CkBAIC0yNjA4LDEyICsyNjEzLDE2IEBAIENoYXJhY3Rlck9mZnNldCBBWE9iamVj
dENhY2hlOjpjaGFyYWN0ZXIKICAgICBpZiAoIW9iaikKICAgICAgICAgcmV0dXJuIENoYXJhY3Rl
ck9mZnNldCgpOwogICAgIAotICAgIC8vIFNpbmNlIHRoaXMgd291bGQgb25seSB3b3JrIG9uIHJl
bmRlcmVkIG5vZGVzLCB1c2luZyBWaXNpYmxlUG9zaXRpb24gdG8gY3JlYXRlIGEgY29sbGFwc2Vk
Ci0gICAgLy8gcmFuZ2Ugc2hvdWxkIGJlIGZpbmUuCi0gICAgVmlzaWJsZVBvc2l0aW9uIHZwID0g
b2JqLT52aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbmRleCk7Ci0gICAgUmVmUHRyPFJhbmdlPiBy
YW5nZSA9IG1ha2VSYW5nZSh2cCwgdnApOwotICAgIAotICAgIHJldHVybiBzdGFydE9yRW5kQ2hh
cmFjdGVyT2Zmc2V0Rm9yUmFuZ2UocmFuZ2UsIHRydWUpOworICAgIFJlZlB0cjxSYW5nZT4gcmFu
Z2UgPSBvYmotPmVsZW1lbnRSYW5nZSgpOworICAgIENoYXJhY3Rlck9mZnNldCBzdGFydCA9IHN0
YXJ0T3JFbmRDaGFyYWN0ZXJPZmZzZXRGb3JSYW5nZShyYW5nZSwgdHJ1ZSk7CisgICAgQ2hhcmFj
dGVyT2Zmc2V0IGVuZCA9IHN0YXJ0T3JFbmRDaGFyYWN0ZXJPZmZzZXRGb3JSYW5nZShyYW5nZSwg
ZmFsc2UpOworICAgIENoYXJhY3Rlck9mZnNldCByZXN1bHQgPSBzdGFydDsKKyAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGluZGV4OyBpKyspIHsKKyAgICAgICAgcmVzdWx0ID0gbmV4dENoYXJhY3Rl
ck9mZnNldChyZXN1bHQsIGZhbHNlKTsKKyAgICAgICAgaWYgKHJlc3VsdC5pc0VxdWFsKGVuZCkp
CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogaW50
IEFYT2JqZWN0Q2FjaGU6OmluZGV4Rm9yQ2hhcmFjdGVyT2Zmc2V0KGNvbnN0IENoYXJhY3Rlck9m
ZnNldCYgY2hhcmFjdGVyT2Zmc2V0LCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTEzNzYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wMS0zMSAgTmFuIFdhbmcgIDxuX3dhbmdAYXBwbGUu
Y29tPgorCisgICAgICAgIEFYOiBJbmNvcnJlY3QgcmFuZ2UgZnJvbSBpbmRleCBhbmQgbGVuZ3Ro
IGluIHRleHQgY29udHJvbHMgd2hlbiB0aGVyZSBhcmUgbmV3bGluZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzY3NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzAzMDAwOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9yYW5nZS1mb3ItY29udGVudGVkaXRhYmxl
LW5ld2xpbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9yYW5nZS1mb3ItY29udGVudGVkaXRhYmxlLW5ld2xpbmUuaHRtbDogQWRkZWQuCisKIDIwMTct
MDEtMzAgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbG91dCByMjExMjM1IFBvaW50ZXIgbG9jayBldmVudHMgc2hvdWxkIGJlIGRl
bGl2ZXJlZCBkaXJlY3RseSB0byB0aGUgdGFyZ2V0IGVsZW1lbnQuCkluZGV4OiBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21hYy9yYW5nZS1mb3ItY29udGVudGVkaXRhYmxlLW5ld2xpbmUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Jh
bmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3bGluZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvcmFuZ2UtZm9yLWNvbnRlbnRlZGl0
YWJsZS1uZXdsaW5lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBA
Citzb21lCitoZWxsbyB3b3JsZAordGVzdAorCitUaGlzIHRlc3RzIHRoYXQgd2hlbiB0aGVyZSBh
cmUgbmV3bGluZSBjaGFyYWN0ZXJzIHdpdGhpbiB0ZXh0IGNvbnRyb2xzLCB3ZSBjYW4gZ2V0IHRo
ZSBjb3JyZWN0IHRleHQgcmFuZ2UgZnJvbSBpbmRleCBhbmQgbGVuZ3RoLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXh0U29tZSBpcyAnc29tZScKK1BBU1MgdGV4dEhl
bGxvIGlzICdoZWxsbycKK1BBU1MgdGV4dFdvcmxkIGlzICd3b3JsZCcKK1BBU1MgdGV4dFRlc3Qg
aXMgJ3Rlc3QnCitQQVNTIGlucHV0VGV4dEhlbGxvIGlzICdoZWxsbycKK1BBU1MgaW5wdXRUZXh0
V29ybGQgaXMgJ3dvcmxkJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3JhbmdlLWZv
ci1jb250ZW50ZWRpdGFibGUtbmV3bGluZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbWFjL3JhbmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3bGluZS5odG1s
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3JhbmdlLWZv
ci1jb250ZW50ZWRpdGFibGUtbmV3bGluZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NDIgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VOIj4KKzxo
dG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiBpZD0iY29udGVu
dCI+Cis8ZGl2IGlkPSJ0ZXh0Y29udHJvbCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj5zb21lPGRp
dj5oZWxsbyB3b3JsZDwvZGl2PjxkaXY+dGVzdDwvZGl2PjwvZGl2PgorPGlucHV0IHR5cGU9InRl
eHQiIGlkPSJpbnB1dCIgdmFsdWU9ImhlbGxvIHdvcmxkIj4KKzwvZGl2PgorCis8ZGl2IHJvbGU9
Imdyb3VwIiBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBkZXNjcmlwdGlv
bigiVGhpcyB0ZXN0cyB0aGF0IHdoZW4gdGhlcmUgYXJlIG5ld2xpbmUgY2hhcmFjdGVycyB3aXRo
aW4gdGV4dCBjb250cm9scywgd2UgY2FuIGdldCB0aGUgY29ycmVjdCB0ZXh0IHJhbmdlIGZyb20g
aW5kZXggYW5kIGxlbmd0aC4iKTsKKworICAgIHZhciB0ZXh0Q29udHJvbCA9IGFjY2Vzc2liaWxp
dHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZCgidGV4dGNvbnRyb2wiKTsKKyAgICB2
YXIgdGV4dFNvbWUgPSB0ZXh0Q29udHJvbC5zdHJpbmdGb3JSYW5nZSgwLCA0KTsKKyAgICBzaG91
bGRCZSgidGV4dFNvbWUiLCAiJ3NvbWUnIik7CisgICAgCisgICAgdmFyIHRleHRIZWxsbyA9IHRl
eHRDb250cm9sLnN0cmluZ0ZvclJhbmdlKDUsIDUpOworICAgIHNob3VsZEJlKCJ0ZXh0SGVsbG8i
LCAiJ2hlbGxvJyIpOworICAgIAorICAgIHZhciB0ZXh0V29ybGQgPSB0ZXh0Q29udHJvbC5zdHJp
bmdGb3JSYW5nZSgxMSwgNSk7CisgICAgc2hvdWxkQmUoInRleHRXb3JsZCIsICInd29ybGQnIik7
CisgICAgCisgICAgdmFyIHRleHRUZXN0ID0gdGV4dENvbnRyb2wuc3RyaW5nRm9yUmFuZ2UoMTcs
IDQpOworICAgIHNob3VsZEJlKCJ0ZXh0VGVzdCIsICIndGVzdCciKTsKKyAgICAKKyAgICB2YXIg
aW5wdXQgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoImlu
cHV0Iik7CisgICAgdmFyIGlucHV0VGV4dEhlbGxvID0gaW5wdXQuc3RyaW5nRm9yUmFuZ2UoMCwg
NSk7CisgICAgdmFyIGlucHV0VGV4dFdvcmxkID0gaW5wdXQuc3RyaW5nRm9yUmFuZ2UoNiwgNSk7
CisgICAgc2hvdWxkQmUoImlucHV0VGV4dEhlbGxvIiwgIidoZWxsbyciKTsKKyAgICBzaG91bGRC
ZSgiaW5wdXRUZXh0V29ybGQiLCAiJ3dvcmxkJyIpOworCis8L3NjcmlwdD4KKworPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300292</attachid>
            <date>2017-01-31 18:22:34 -0800</date>
            <delta_ts>2017-02-01 09:50:22 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>6957</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTQ2NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE3LTAxLTMxICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEluY29ycmVjdCByYW5nZSBmcm9t
IGluZGV4IGFuZCBsZW5ndGggaW4gdGV4dCBjb250cm9scyB3aGVuIHRoZXJlIGFyZSBuZXdsaW5l
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3Njc3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDMwMDA5OT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZXJlIGFyZSBuZXdsaW5lcyBpbiB0
ZXh0IGNvbnRyb2xzLCB0aGUgVmlzaWJsZVBvc2l0aW9uIHRoYXQgaXMgY3JlYXRlZAorICAgICAg
ICBmcm9tIHRoZSBpbmRleCBjb3VsZCBiZSB3cm9uZy4gQmVjYXVzZSB0aGUgaW5kZXggZG9lc24n
dCBpbmNsdWRlIHRoZSBpbmZvcm1hdGlvbiAKKyAgICAgICAgcmVnYXJkaW5nIGEgcG9zaXRpb24n
cyBhZmZpbml0eS4gRml4ZWQgaXQgYnkgdXNpbmcgQ2hhcmFjdGVyT2Zmc2V0IGluc3RlYWQsIHNp
bmNlCisgICAgICAgIGl0IGRvZXNuJ3QgcmVxdWlyZSB0aGF0IGluZm9ybWF0aW9uLgorCisgICAg
ICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL3JhbmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3
bGluZS5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dHJhdmVyc2VUb09mZnNldEluUmFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6Y2hhcmFjdGVyT2Zmc2V0Rm9ySW5k
ZXgpOgorCiAyMDE3LTAxLTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgRml4IGRlYnVnIGxpYndlYnJ0YyBidWlsZCBhZnRlciByMjExNDM5
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5j
cHAJKHJldmlzaW9uIDIxMTM3NikKKysrIFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1NjQsNyArMTU2NCw3IEBAIENoYXJh
Y3Rlck9mZnNldCBBWE9iamVjdENhY2hlOjp0cmF2ZXJzZVQKICAgICBib29sIGZpbmlzaGVkID0g
ZmFsc2U7CiAgICAgaW50IGxhc3RTdGFydE9mZnNldCA9IDA7CiAgICAgCi0gICAgVGV4dEl0ZXJh
dG9yIGl0ZXJhdG9yKHJhbmdlLmdldCgpKTsKKyAgICBUZXh0SXRlcmF0b3IgaXRlcmF0b3IocmFu
Z2UuZ2V0KCksIFRleHRJdGVyYXRvckVudGVyc1RleHRDb250cm9scyk7CiAgICAgCiAgICAgLy8g
V2hlbiB0aGUgcmFuZ2UgaGFzIHplcm8gbGVuZ3RoLCB0aGVyZSBtaWdodCBiZSByZXBsYWNlZCBu
b2RlIG9yIGJyVGFnIHRoYXQgd2UgbmVlZCB0byBpbmNyZW1lbnQgdGhlIGNoYXJhY3Rlck9mZnNl
dC4KICAgICBpZiAoaXRlcmF0b3IuYXRFbmQoKSkgewpAQCAtMTYxNyw2ICsxNjE3LDExIEBAIENo
YXJhY3Rlck9mZnNldCBBWE9iamVjdENhY2hlOjp0cmF2ZXJzZVQKICAgICAgICAgICAgICAgICAg
ICAgaWYgKGNoaWxkTm9kZSAmJiBjaGlsZE5vZGUtPnJlbmRlcmVyKCkgJiYgY2hpbGROb2RlLT5y
ZW5kZXJlcigpLT5pc0JSKCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROb2Rl
ID0gY2hpbGROb2RlOwogICAgICAgICAgICAgICAgICAgICAgICAgaGFzUmVwbGFjZWROb2RlT3JC
UiA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoY3VycmVudE5vZGUtPmlz
U2hhZG93Um9vdCgpKSB7CisgICAgICAgICAgICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBhcmUg
ZW50ZXJpbmcgdGV4dCBjb250cm9scywgd2Ugc2hvdWxkIHNldCB0aGUgY3VycmVudE5vZGUKKyAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIHRvIGJlIHRoZSBzaGFkb3cgaG9zdCB3aGVuIHRoZXJl
J3Mgbm8gY29udGVudC4KKyAgICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlID0gY3Vy
cmVudE5vZGUtPnNoYWRvd0hvc3QoKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwogICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnROb2RlICE9IHByZXZpb3Vz
Tm9kZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2Ugc2hvdWxkIHNldCB0aGUgc3Rh
cnQgb2Zmc2V0IGFuZCBsZW5ndGggZm9yIHRoZSBjdXJyZW50IG5vZGUgaW4gY2FzZSB0aGlzIGlz
IHRoZSBsYXN0IGl0ZXJhdGlvbi4KICAgICAgICAgICAgICAgICAgICAgICAgIGxhc3RTdGFydE9m
ZnNldCA9IDE7CkBAIC0yNjA4LDEyICsyNjEzLDE2IEBAIENoYXJhY3Rlck9mZnNldCBBWE9iamVj
dENhY2hlOjpjaGFyYWN0ZXIKICAgICBpZiAoIW9iaikKICAgICAgICAgcmV0dXJuIENoYXJhY3Rl
ck9mZnNldCgpOwogICAgIAotICAgIC8vIFNpbmNlIHRoaXMgd291bGQgb25seSB3b3JrIG9uIHJl
bmRlcmVkIG5vZGVzLCB1c2luZyBWaXNpYmxlUG9zaXRpb24gdG8gY3JlYXRlIGEgY29sbGFwc2Vk
Ci0gICAgLy8gcmFuZ2Ugc2hvdWxkIGJlIGZpbmUuCi0gICAgVmlzaWJsZVBvc2l0aW9uIHZwID0g
b2JqLT52aXNpYmxlUG9zaXRpb25Gb3JJbmRleChpbmRleCk7Ci0gICAgUmVmUHRyPFJhbmdlPiBy
YW5nZSA9IG1ha2VSYW5nZSh2cCwgdnApOwotICAgIAotICAgIHJldHVybiBzdGFydE9yRW5kQ2hh
cmFjdGVyT2Zmc2V0Rm9yUmFuZ2UocmFuZ2UsIHRydWUpOworICAgIFJlZlB0cjxSYW5nZT4gcmFu
Z2UgPSBvYmotPmVsZW1lbnRSYW5nZSgpOworICAgIENoYXJhY3Rlck9mZnNldCBzdGFydCA9IHN0
YXJ0T3JFbmRDaGFyYWN0ZXJPZmZzZXRGb3JSYW5nZShyYW5nZSwgdHJ1ZSk7CisgICAgQ2hhcmFj
dGVyT2Zmc2V0IGVuZCA9IHN0YXJ0T3JFbmRDaGFyYWN0ZXJPZmZzZXRGb3JSYW5nZShyYW5nZSwg
ZmFsc2UpOworICAgIENoYXJhY3Rlck9mZnNldCByZXN1bHQgPSBzdGFydDsKKyAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGluZGV4OyBpKyspIHsKKyAgICAgICAgcmVzdWx0ID0gbmV4dENoYXJhY3Rl
ck9mZnNldChyZXN1bHQsIGZhbHNlKTsKKyAgICAgICAgaWYgKHJlc3VsdC5pc0VxdWFsKGVuZCkp
CisgICAgICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAogaW50
IEFYT2JqZWN0Q2FjaGU6OmluZGV4Rm9yQ2hhcmFjdGVyT2Zmc2V0KGNvbnN0IENoYXJhY3Rlck9m
ZnNldCYgY2hhcmFjdGVyT2Zmc2V0LCBBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmopCkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTEzNzYpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNy0wMS0zMSAgTmFuIFdhbmcgIDxuX3dhbmdAYXBwbGUu
Y29tPgorCisgICAgICAgIEFYOiBJbmNvcnJlY3QgcmFuZ2UgZnJvbSBpbmRleCBhbmQgbGVuZ3Ro
IGluIHRleHQgY29udHJvbHMgd2hlbiB0aGVyZSBhcmUgbmV3bGluZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE2NzY3NworICAgICAgICA8cmRhcjov
L3Byb2JsZW0vMzAzMDAwOTk+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9yYW5nZS1mb3ItY29udGVudGVkaXRhYmxl
LW5ld2xpbmUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21h
Yy9yYW5nZS1mb3ItY29udGVudGVkaXRhYmxlLW5ld2xpbmUuaHRtbDogQWRkZWQuCisKIDIwMTct
MDEtMzAgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbG91dCByMjExMjM1IFBvaW50ZXIgbG9jayBldmVudHMgc2hvdWxkIGJlIGRl
bGl2ZXJlZCBkaXJlY3RseSB0byB0aGUgdGFyZ2V0IGVsZW1lbnQuCkluZGV4OiBMYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L21hYy9yYW5nZS1mb3ItY29udGVudGVkaXRhYmxlLW5ld2xpbmUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Jh
bmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3bGluZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQorKysgTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9tYWMvcmFuZ2UtZm9yLWNvbnRlbnRlZGl0
YWJsZS1uZXdsaW5lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDE5IEBA
Citzb21lCitoZWxsbyB3b3JsZAordGVzdAorCitUaGlzIHRlc3RzIHRoYXQgd2hlbiB0aGVyZSBh
cmUgbmV3bGluZSBjaGFyYWN0ZXJzIHdpdGhpbiB0ZXh0IGNvbnRyb2xzLCB3ZSBjYW4gZ2V0IHRo
ZSBjb3JyZWN0IHRleHQgcmFuZ2UgZnJvbSBpbmRleCBhbmQgbGVuZ3RoLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB0ZXh0U29tZSBpcyAnc29tZScKK1BBU1MgdGV4dEhl
bGxvIGlzICdoZWxsbycKK1BBU1MgdGV4dFdvcmxkIGlzICd3b3JsZCcKK1BBU1MgdGV4dFRlc3Qg
aXMgJ3Rlc3QnCitQQVNTIHRleHRhcmVhVGV4dEhlbGxvIGlzICdoZWxsbycKK1BBU1MgdGV4dGFy
ZWFUZXh0V29ybGQgaXMgJ3dvcmxkJworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCisKSW5kZXg6IExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Jh
bmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3bGluZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3JhbmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3bGlu
ZS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3Jh
bmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3bGluZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IGlkPSJib2R5Ij4KKworPGRpdiBpZD0i
Y29udGVudCI+Cis8ZGl2IGlkPSJ0ZXh0Y29udHJvbCIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj5z
b21lPGRpdj5oZWxsbyB3b3JsZDwvZGl2PjxkaXY+dGVzdDwvZGl2PjwvZGl2PgorPHRleHRhcmVh
IGlkPSJ0ZXh0YXJlYSIgY29scz0nNjAnIHJvd3M9JzgnPmhlbGxvIHRlc3QKK3dvcmxkPC90ZXh0
YXJlYT4KKzwvZGl2PgorCis8ZGl2IHJvbGU9Imdyb3VwIiBpZD0iY29uc29sZSI+PC9kaXY+CisK
KzxzY3JpcHQ+CisKKyAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0cyB0aGF0IHdoZW4gdGhlcmUg
YXJlIG5ld2xpbmUgY2hhcmFjdGVycyB3aXRoaW4gdGV4dCBjb250cm9scywgd2UgY2FuIGdldCB0
aGUgY29ycmVjdCB0ZXh0IHJhbmdlIGZyb20gaW5kZXggYW5kIGxlbmd0aC4iKTsKKworICAgIHZh
ciB0ZXh0Q29udHJvbCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50
QnlJZCgidGV4dGNvbnRyb2wiKTsKKyAgICB2YXIgdGV4dFNvbWUgPSB0ZXh0Q29udHJvbC5zdHJp
bmdGb3JSYW5nZSgwLCA0KTsKKyAgICBzaG91bGRCZSgidGV4dFNvbWUiLCAiJ3NvbWUnIik7Cisg
ICAgCisgICAgdmFyIHRleHRIZWxsbyA9IHRleHRDb250cm9sLnN0cmluZ0ZvclJhbmdlKDUsIDUp
OworICAgIHNob3VsZEJlKCJ0ZXh0SGVsbG8iLCAiJ2hlbGxvJyIpOworICAgIAorICAgIHZhciB0
ZXh0V29ybGQgPSB0ZXh0Q29udHJvbC5zdHJpbmdGb3JSYW5nZSgxMSwgNSk7CisgICAgc2hvdWxk
QmUoInRleHRXb3JsZCIsICInd29ybGQnIik7CisgICAgCisgICAgdmFyIHRleHRUZXN0ID0gdGV4
dENvbnRyb2wuc3RyaW5nRm9yUmFuZ2UoMTcsIDQpOworICAgIHNob3VsZEJlKCJ0ZXh0VGVzdCIs
ICIndGVzdCciKTsKKyAgICAKKyAgICB2YXIgdGV4dGFyZWEgPSBhY2Nlc3NpYmlsaXR5Q29udHJv
bGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRleHRhcmVhIik7CisgICAgdmFyIHRleHRhcmVh
VGV4dEhlbGxvID0gdGV4dGFyZWEuc3RyaW5nRm9yUmFuZ2UoMCwgNSk7CisgICAgdmFyIHRleHRh
cmVhVGV4dFdvcmxkID0gdGV4dGFyZWEuc3RyaW5nRm9yUmFuZ2UoMTEsIDUpOworICAgIHNob3Vs
ZEJlKCJ0ZXh0YXJlYVRleHRIZWxsbyIsICInaGVsbG8nIik7CisgICAgc2hvdWxkQmUoInRleHRh
cmVhVGV4dFdvcmxkIiwgIid3b3JsZCciKTsKKworPC9zY3JpcHQ+CisKKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4K
</data>
<flag name="review"
          id="322214"
          type_id="1"
          status="+"
          setter="cfleizach"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>300333</attachid>
            <date>2017-02-01 09:50:22 -0800</date>
            <delta_ts>2017-02-01 10:13:33 -0800</delta_ts>
            <desc>patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>8551</size>
            <attacher name="Nan Wang">n_wang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTQ4NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIzIEBACisyMDE3LTAyLTAxICBOYW4gV2Fu
ZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEluY29ycmVjdCByYW5nZSBmcm9t
IGluZGV4IGFuZCBsZW5ndGggaW4gdGV4dCBjb250cm9scyB3aGVuIHRoZXJlIGFyZSBuZXdsaW5l
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTY3Njc3
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDMwMDA5OT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZXJlIGFyZSBuZXdsaW5lcyBpbiB0
ZXh0IGNvbnRyb2xzLCB0aGUgVmlzaWJsZVBvc2l0aW9uIHRoYXQgaXMgY3JlYXRlZAorICAgICAg
ICBmcm9tIHRoZSBpbmRleCBjb3VsZCBiZSB3cm9uZy4gQmVjYXVzZSB0aGUgaW5kZXggZG9lc24n
dCBpbmNsdWRlIHRoZSBpbmZvcm1hdGlvbiAKKyAgICAgICAgcmVnYXJkaW5nIGEgcG9zaXRpb24n
cyBhZmZpbml0eS4gRml4ZWQgaXQgYnkgdXNpbmcgQ2hhcmFjdGVyT2Zmc2V0IGluc3RlYWQsIHNp
bmNlCisgICAgICAgIGl0IGRvZXNuJ3QgcmVxdWlyZSB0aGF0IGluZm9ybWF0aW9uLgorCisgICAg
ICAgIFRlc3Q6IGFjY2Vzc2liaWxpdHkvbWFjL3JhbmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3
bGluZS5odG1sCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dHJhdmVyc2VUb09mZnNldEluUmFuZ2Up
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bmV4dENoYXJhY3Rlck9mZnNldCk6
CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpjaGFyYWN0ZXJPZmZzZXRGb3JJbmRl
eCk6CisKIDIwMTctMDItMDEgIFRpbW90aHkgSGF0Y2hlciAgPHRpbW90aHlAaGF0Y2hlci5uYW1l
PgogCiAgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQuaCBmYWlscyB0byBidWlsZCB3aGVuIEVOQUJM
RShNRURJQV9DT05UUk9MU19TQ1JJUFQpIGlzIGZhbHNlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAJKHJldmlzaW9uIDIxMTM5NykKKysr
IFNvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE1NjQsNyArMTU2NCw3IEBAIENoYXJhY3Rlck9mZnNldCBBWE9iamVjdENhY2hl
Ojp0cmF2ZXJzZVQKICAgICBib29sIGZpbmlzaGVkID0gZmFsc2U7CiAgICAgaW50IGxhc3RTdGFy
dE9mZnNldCA9IDA7CiAgICAgCi0gICAgVGV4dEl0ZXJhdG9yIGl0ZXJhdG9yKHJhbmdlLmdldCgp
KTsKKyAgICBUZXh0SXRlcmF0b3IgaXRlcmF0b3IocmFuZ2UuZ2V0KCksIFRleHRJdGVyYXRvckVu
dGVyc1RleHRDb250cm9scyk7CiAgICAgCiAgICAgLy8gV2hlbiB0aGUgcmFuZ2UgaGFzIHplcm8g
bGVuZ3RoLCB0aGVyZSBtaWdodCBiZSByZXBsYWNlZCBub2RlIG9yIGJyVGFnIHRoYXQgd2UgbmVl
ZCB0byBpbmNyZW1lbnQgdGhlIGNoYXJhY3Rlck9mZnNldC4KICAgICBpZiAoaXRlcmF0b3IuYXRF
bmQoKSkgewpAQCAtMTYxNyw2ICsxNjE3LDExIEBAIENoYXJhY3Rlck9mZnNldCBBWE9iamVjdENh
Y2hlOjp0cmF2ZXJzZVQKICAgICAgICAgICAgICAgICAgICAgaWYgKGNoaWxkTm9kZSAmJiBjaGls
ZE5vZGUtPnJlbmRlcmVyKCkgJiYgY2hpbGROb2RlLT5yZW5kZXJlcigpLT5pc0JSKCkpIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlID0gY2hpbGROb2RlOwogICAgICAgICAg
ICAgICAgICAgICAgICAgaGFzUmVwbGFjZWROb2RlT3JCUiA9IHRydWU7CisgICAgICAgICAgICAg
ICAgICAgIH0gZWxzZSBpZiAoY3VycmVudE5vZGUtPmlzU2hhZG93Um9vdCgpKSB7CisgICAgICAg
ICAgICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBhcmUgZW50ZXJpbmcgdGV4dCBjb250cm9scywg
d2Ugc2hvdWxkIHNldCB0aGUgY3VycmVudE5vZGUKKyAgICAgICAgICAgICAgICAgICAgICAgIC8v
IHRvIGJlIHRoZSBzaGFkb3cgaG9zdCB3aGVuIHRoZXJlJ3Mgbm8gY29udGVudC4KKyAgICAgICAg
ICAgICAgICAgICAgICAgIGN1cnJlbnROb2RlID0gY3VycmVudE5vZGUtPnNoYWRvd0hvc3QoKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgICAgICB9
IGVsc2UgaWYgKGN1cnJlbnROb2RlICE9IHByZXZpb3VzTm9kZSkgewogICAgICAgICAgICAgICAg
ICAgICAgICAgLy8gV2Ugc2hvdWxkIHNldCB0aGUgc3RhcnQgb2Zmc2V0IGFuZCBsZW5ndGggZm9y
IHRoZSBjdXJyZW50IG5vZGUgaW4gY2FzZSB0aGlzIGlzIHRoZSBsYXN0IGl0ZXJhdGlvbi4KICAg
ICAgICAgICAgICAgICAgICAgICAgIGxhc3RTdGFydE9mZnNldCA9IDE7CkBAIC0yMTI1LDkgKzIx
MzAsMTEgQEAgQ2hhcmFjdGVyT2Zmc2V0IEFYT2JqZWN0Q2FjaGU6Om5leHRDaGFyYQogICAgIENo
YXJhY3Rlck9mZnNldCBuZXh0ID0gY2hhcmFjdGVyT2Zmc2V0Rm9yTm9kZUFuZE9mZnNldCgqY2hh
cmFjdGVyT2Zmc2V0Lm5vZGUsIG5leHRPZmZzZXQpOwogICAgIAogICAgIC8vIFRvIGJlIGNvbnNp
c3RlbnQgd2l0aCBWaXNpYmxlUG9zaXRpb24sIHdlIHNob3VsZCBjb25zaWRlciB0aGUgY2FzZSB0
aGF0IGN1cnJlbnQgbm9kZSBlbmQgdG8gbmV4dCBub2RlIHN0YXJ0IGNvdW50cyAxIG9mZnNldC4K
LSAgICBib29sIGlzUmVwbGFjZWRPckJSID0gaXNSZXBsYWNlZE5vZGVPckJSKGNoYXJhY3Rlck9m
ZnNldC5ub2RlKSB8fCBpc1JlcGxhY2VkTm9kZU9yQlIobmV4dC5ub2RlKTsKLSAgICBpZiAoIWln
bm9yZU5leHROb2RlU3RhcnQgJiYgIW5leHQuaXNOdWxsKCkgJiYgIWlzUmVwbGFjZWRPckJSICYm
IG5leHQubm9kZSAhPSBjaGFyYWN0ZXJPZmZzZXQubm9kZSkKLSAgICAgICAgbmV4dCA9IGNoYXJh
Y3Rlck9mZnNldEZvck5vZGVBbmRPZmZzZXQoKm5leHQubm9kZSwgMCwgVHJhdmVyc2VPcHRpb25J
bmNsdWRlU3RhcnQpOworICAgIGlmICghaWdub3JlTmV4dE5vZGVTdGFydCAmJiAhbmV4dC5pc051
bGwoKSAmJiAhaXNSZXBsYWNlZE5vZGVPckJSKG5leHQubm9kZSkgJiYgbmV4dC5ub2RlICE9IGNo
YXJhY3Rlck9mZnNldC5ub2RlKSB7CisgICAgICAgIGludCBsZW5ndGggPSBUZXh0SXRlcmF0b3I6
OnJhbmdlTGVuZ3RoKHJhbmdlRm9yVW5vcmRlcmVkQ2hhcmFjdGVyT2Zmc2V0cyhjaGFyYWN0ZXJP
ZmZzZXQsIG5leHQpLmdldCgpKTsKKyAgICAgICAgaWYgKGxlbmd0aCA+IG5leHRPZmZzZXQgLSBj
aGFyYWN0ZXJPZmZzZXQub2Zmc2V0KQorICAgICAgICAgICAgbmV4dCA9IGNoYXJhY3Rlck9mZnNl
dEZvck5vZGVBbmRPZmZzZXQoKm5leHQubm9kZSwgMCwgVHJhdmVyc2VPcHRpb25JbmNsdWRlU3Rh
cnQpOworICAgIH0KICAgICAKICAgICByZXR1cm4gbmV4dDsKIH0KQEAgLTI2MDgsMTIgKzI2MTUs
MTYgQEAgQ2hhcmFjdGVyT2Zmc2V0IEFYT2JqZWN0Q2FjaGU6OmNoYXJhY3RlcgogICAgIGlmICgh
b2JqKQogICAgICAgICByZXR1cm4gQ2hhcmFjdGVyT2Zmc2V0KCk7CiAgICAgCi0gICAgLy8gU2lu
Y2UgdGhpcyB3b3VsZCBvbmx5IHdvcmsgb24gcmVuZGVyZWQgbm9kZXMsIHVzaW5nIFZpc2libGVQ
b3NpdGlvbiB0byBjcmVhdGUgYSBjb2xsYXBzZWQKLSAgICAvLyByYW5nZSBzaG91bGQgYmUgZmlu
ZS4KLSAgICBWaXNpYmxlUG9zaXRpb24gdnAgPSBvYmotPnZpc2libGVQb3NpdGlvbkZvckluZGV4
KGluZGV4KTsKLSAgICBSZWZQdHI8UmFuZ2U+IHJhbmdlID0gbWFrZVJhbmdlKHZwLCB2cCk7Ci0g
ICAgCi0gICAgcmV0dXJuIHN0YXJ0T3JFbmRDaGFyYWN0ZXJPZmZzZXRGb3JSYW5nZShyYW5nZSwg
dHJ1ZSk7CisgICAgUmVmUHRyPFJhbmdlPiByYW5nZSA9IG9iai0+ZWxlbWVudFJhbmdlKCk7Cisg
ICAgQ2hhcmFjdGVyT2Zmc2V0IHN0YXJ0ID0gc3RhcnRPckVuZENoYXJhY3Rlck9mZnNldEZvclJh
bmdlKHJhbmdlLCB0cnVlKTsKKyAgICBDaGFyYWN0ZXJPZmZzZXQgZW5kID0gc3RhcnRPckVuZENo
YXJhY3Rlck9mZnNldEZvclJhbmdlKHJhbmdlLCBmYWxzZSk7CisgICAgQ2hhcmFjdGVyT2Zmc2V0
IHJlc3VsdCA9IHN0YXJ0OworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgaW5kZXg7IGkrKykgewor
ICAgICAgICByZXN1bHQgPSBuZXh0Q2hhcmFjdGVyT2Zmc2V0KHJlc3VsdCwgZmFsc2UpOworICAg
ICAgICBpZiAocmVzdWx0LmlzRXF1YWwoZW5kKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0K
KyAgICByZXR1cm4gcmVzdWx0OwogfQogCiBpbnQgQVhPYmplY3RDYWNoZTo6aW5kZXhGb3JDaGFy
YWN0ZXJPZmZzZXQoY29uc3QgQ2hhcmFjdGVyT2Zmc2V0JiBjaGFyYWN0ZXJPZmZzZXQsIEFjY2Vz
c2liaWxpdHlPYmplY3QqIG9iaikKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxMTM5NykKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE0IEBACisyMDE3LTAy
LTAxICBOYW4gV2FuZyAgPG5fd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgQVg6IEluY29ycmVj
dCByYW5nZSBmcm9tIGluZGV4IGFuZCBsZW5ndGggaW4gdGV4dCBjb250cm9scyB3aGVuIHRoZXJl
IGFyZSBuZXdsaW5lcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTY3Njc3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMDMwMDA5OT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
bWFjL3JhbmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3bGluZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbWFjL3JhbmdlLWZvci1jb250ZW50ZWRpdGFibGUt
bmV3bGluZS5odG1sOiBBZGRlZC4KKwogMjAxNy0wMS0zMCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFk
ZGFkQGFwcGxlLmNvbT4KIAogICAgICAgICBNYXJraW5nIG1lZGlhL21vZGVybi1tZWRpYS1jb250
cm9scy9idXR0b25zLWNvbnRhaW5lci9idXR0b25zLWNvbnRhaW5lci1idXR0b25zLXByb3BlcnR5
Lmh0bWwgYXMgZmxha3kgb24gbWFjT1MgV0sxLgpJbmRleDogTGF5b3V0VGVzdHMvYWNjZXNzaWJp
bGl0eS9tYWMvcmFuZ2UtZm9yLWNvbnRlbnRlZGl0YWJsZS1uZXdsaW5lLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9yYW5nZS1mb3ItY29u
dGVudGVkaXRhYmxlLW5ld2xpbmUtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKKysrIExheW91
dFRlc3RzL2FjY2Vzc2liaWxpdHkvbWFjL3JhbmdlLWZvci1jb250ZW50ZWRpdGFibGUtbmV3bGlu
ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyNSBAQAorc29tZQoraGVs
bG8gd29ybGQKK3Rlc3QKKworYWJjCisKKworCitkZWYKK1RoaXMgdGVzdHMgdGhhdCB3aGVuIHRo
ZXJlIGFyZSBuZXdsaW5lIGNoYXJhY3RlcnMgd2l0aGluIHRleHQgY29udHJvbHMsIHdlIGNhbiBn
ZXQgdGhlIGNvcnJlY3QgdGV4dCByYW5nZSBmcm9tIGluZGV4IGFuZCBsZW5ndGguCisKK09uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHRleHRTb21lIGlzICdzb21lJworUEFTUyB0
ZXh0SGVsbG8gaXMgJ2hlbGxvJworUEFTUyB0ZXh0V29ybGQgaXMgJ3dvcmxkJworUEFTUyB0ZXh0
VGVzdCBpcyAndGVzdCcKK1BBU1MgdGV4dGFyZWFUZXh0SGVsbG8gaXMgJ2hlbGxvJworUEFTUyB0
ZXh0YXJlYVRleHRXb3JsZCBpcyAnd29ybGQnCitQQVNTIHRleHRERUYgaXMgJ2RlZicKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9yYW5nZS1mb3ItY29udGVudGVkaXRhYmxlLW5ld2xp
bmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9yYW5n
ZS1mb3ItY29udGVudGVkaXRhYmxlLW5ld2xpbmUuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L21hYy9yYW5nZS1mb3ItY29udGVudGVkaXRhYmxlLW5ld2xp
bmUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUxIEBACis8IURPQ1RZUEUgSFRNTCBQ
VUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBpZD0iYm9keSI+CisKKzxkaXYgaWQ9ImNvbnRlbnQiPgorPGRpdiBpZD0idGV4dGNvbnRy
b2wiIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+c29tZTxkaXY+aGVsbG8gd29ybGQ8L2Rpdj48ZGl2
PnRlc3Q8L2Rpdj48L2Rpdj4KKzx0ZXh0YXJlYSBpZD0idGV4dGFyZWEiIGNvbHM9JzYwJyByb3dz
PSc4Jz5oZWxsbyB0ZXN0Cit3b3JsZDwvdGV4dGFyZWE+Cis8L2Rpdj4KKzxkaXYgaWQ9InRleHRj
b250cm9sMiIgY29udGVudGVkaXRhYmxlPSJ0cnVlIj5hYmM8ZGl2Pjxicj48L2RpdjxkaXY+PGJy
PjwvZGl2PjxkaXY+PGJyPjwvZGl2PjxkaXY+ZGVmPC9kaXY+PC9kaXY+CisKKzxkaXYgcm9sZT0i
Z3JvdXAiIGlkPSJjb25zb2xlIj48L2Rpdj4KKworPHNjcmlwdD4KKworICAgIGRlc2NyaXB0aW9u
KCJUaGlzIHRlc3RzIHRoYXQgd2hlbiB0aGVyZSBhcmUgbmV3bGluZSBjaGFyYWN0ZXJzIHdpdGhp
biB0ZXh0IGNvbnRyb2xzLCB3ZSBjYW4gZ2V0IHRoZSBjb3JyZWN0IHRleHQgcmFuZ2UgZnJvbSBp
bmRleCBhbmQgbGVuZ3RoLiIpOworCisgICAgLy8gVGVzdCBjb250ZW50ZWRpdGFibGUgd2l0aCBu
ZXdsaW5lcy4KKyAgICB2YXIgdGV4dENvbnRyb2wgPSBhY2Nlc3NpYmlsaXR5Q29udHJvbGxlci5h
Y2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRleHRjb250cm9sIik7CisgICAgdmFyIHRleHRTb21lID0g
dGV4dENvbnRyb2wuc3RyaW5nRm9yUmFuZ2UoMCwgNCk7CisgICAgc2hvdWxkQmUoInRleHRTb21l
IiwgIidzb21lJyIpOworICAgIAorICAgIHZhciB0ZXh0SGVsbG8gPSB0ZXh0Q29udHJvbC5zdHJp
bmdGb3JSYW5nZSg1LCA1KTsKKyAgICBzaG91bGRCZSgidGV4dEhlbGxvIiwgIidoZWxsbyciKTsK
KyAgICAKKyAgICB2YXIgdGV4dFdvcmxkID0gdGV4dENvbnRyb2wuc3RyaW5nRm9yUmFuZ2UoMTEs
IDUpOworICAgIHNob3VsZEJlKCJ0ZXh0V29ybGQiLCAiJ3dvcmxkJyIpOworICAgIAorICAgIHZh
ciB0ZXh0VGVzdCA9IHRleHRDb250cm9sLnN0cmluZ0ZvclJhbmdlKDE3LCA0KTsKKyAgICBzaG91
bGRCZSgidGV4dFRlc3QiLCAiJ3Rlc3QnIik7CisgICAgCisgICAgLy8gVGVzdCA8dGV4dGFyZWE+
IHdpdGggbmV3bGluZXMuCisgICAgdmFyIHRleHRhcmVhID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xs
ZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKCJ0ZXh0YXJlYSIpOworICAgIHZhciB0ZXh0YXJlYVRl
eHRIZWxsbyA9IHRleHRhcmVhLnN0cmluZ0ZvclJhbmdlKDAsIDUpOworICAgIHZhciB0ZXh0YXJl
YVRleHRXb3JsZCA9IHRleHRhcmVhLnN0cmluZ0ZvclJhbmdlKDExLCA1KTsKKyAgICBzaG91bGRC
ZSgidGV4dGFyZWFUZXh0SGVsbG8iLCAiJ2hlbGxvJyIpOworICAgIHNob3VsZEJlKCJ0ZXh0YXJl
YVRleHRXb3JsZCIsICInd29ybGQnIik7CisgICAgCisgICAgLy8gVGVzdCBtdWx0aXBsZSA8YnI+
IGluIGNvbnRlbnRlZGl0YWJsZQorICAgIHZhciB0ZXh0Q29udHJvbDIgPSBhY2Nlc3NpYmlsaXR5
Q29udHJvbGxlci5hY2Nlc3NpYmxlRWxlbWVudEJ5SWQoInRleHRjb250cm9sMiIpOworICAgIHZh
ciB0ZXh0REVGID0gdGV4dENvbnRyb2wyLnN0cmluZ0ZvclJhbmdlKDcsIDMpOworICAgIHNob3Vs
ZEJlKCJ0ZXh0REVGIiwgIidkZWYnIik7CisKKzwvc2NyaXB0PgorCis8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>