<?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>89412</bug_id>
          
          <creation_ts>2012-06-18 19:10:29 -0700</creation_ts>
          <short_desc>Refactoring: Introduce a class to represent restoring state of a form control</short_desc>
          <delta_ts>2012-06-18 23:21:03 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>23346</blocked>
    
    <blocked>89409</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>haraken</cc>
    
    <cc>morrita</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>651970</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-18 19:10:29 -0700</bug_when>
    <thetext>Refactoring: Introduce a class to represent restoring state of a form control</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652009</commentid>
    <comment_count>1</comment_count>
      <attachid>148238</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-18 21:08:09 -0700</bug_when>
    <thetext>Created attachment 148238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652067</commentid>
    <comment_count>2</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-18 23:07:48 -0700</bug_when>
    <thetext>Thanks.

I&apos;ll add the copy constructor and operator= for FormControlState just in case, and land it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652082</commentid>
    <comment_count>3</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-18 23:21:03 -0700</bug_when>
    <thetext>Committed r120679: &lt;http://trac.webkit.org/changeset/120679&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148238</attachid>
            <date>2012-06-18 21:08:09 -0700</date>
            <delta_ts>2012-06-18 22:31:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89412-20120619130808.patch</filename>
            <type>text/plain</type>
            <size>26843</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNTY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWFiMTRiYTBmMzhmMThi
NTY5Y2NkZTNiZGYxZDYxMDg2MGE5NDkxMi4uYjNhMzM4YWY0MDIwMTRhMGI2YmUxNDZiZTAwOWMx
YWRhYjcxYjk1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc1IEBACisyMDEyLTA2LTE4ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZWZhY3RvcmluZzogSW50
cm9kdWNlIGEgY2xhc3MgdG8gcmVwcmVzZW50IHJlc3RvcmluZyBzdGF0ZSBvZiBhIGZvcm0gY29u
dHJvbAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODk0
MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBIVE1M
Rm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSBoYWQgdHdv
IHJldHVybgorICAgICAgICB2YWx1ZXM7IE9uZSBpcyBhIGJvb2xlYW4gdG8gcmVwcmVzZW50IHdo
ZXRoZXIgd2Ugc2hvdWxkIHNhdmUgdGhlIHN0YXRlCisgICAgICAgIG9yIG5vdCwgYW5kIGFub3Ro
ZXIgaXMgZm9ybSBjb250cm9sIHZhbHVlLiBUaGlzIHBhdGNoIGludHJvZHVjZXMKKyAgICAgICAg
Rm9ybUNvbnRyb2xTdGF0ZSBjbGFzcyByZXByZXNlbnRpbmcgdGhlc2UgdmFsdWVzLgorCisgICAg
ICAgIFdlJ3JlIGdvaW5nIHRvIGV4dGVuZCBGb3JtQ29udHJvbFN0YXRlIGNsYXNzIHNvIHRoYXQg
aXQgY2FuIGNvbnRhaW4KKyAgICAgICAgbXVsdGlwbGUgc3RyaW5ncyB0byBmaXggYSBGaWxlSW5w
dXRUeXBlIGlzc3VlIGFuZCBpdCBoYXZlIGFub3RoZXIgdHlwZQorICAgICAgICB0byBmaXggQnVn
IDg5NDA5LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gSnVzdCBhIHJlZmFjdG9yaW5nLgorCisg
ICAgICAgICogaHRtbC9Gb3JtQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb3Jt
Q29udHJvbGxlcjo6Zm9ybUVsZW1lbnRzU3RhdGUpOgorICAgICAgICBHZXRzIGEgc3RhdGUgc3Ry
aW5nIGZyb20gYSBGb3JtQ29udHJvbFN0YXRlIGluc3RhbmNlLgorICAgICAgICAoV2ViQ29yZTo6
Rm9ybUNvbnRyb2xsZXI6OnRha2VTdGF0ZUZvckZvcm1FbGVtZW50KToKKyAgICAgICAgQ3JlYXRl
cyBhIEZvcm1Db250cm9sU3RhdGUgaW5zdGFuY2Ugd2l0aCBhIHN0YXRlIHN0cmluZy4KKyAgICAg
ICAgKiBodG1sL0Zvcm1Db250cm9sbGVyLmg6CisgICAgICAgIChXZWJDb3JlOjpGb3JtQ29udHJv
bFN0YXRlKTogQWRkZWQuCisKKyAgICAgICAgKiBodG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QmFzZUNoZWNrYWJsZUlucHV0VHlwZTo6c2F2ZUZvcm1D
b250cm9sU3RhdGUpOgorICAgICAgICBVc2UgRm9ybUNvbnRyb2xTdGF0ZSBjbGFzcy4KKyAgICAg
ICAgKFdlYkNvcmU6OkJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0
YXRlKTogZGl0dG8uCisgICAgICAgICogaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmg6Cisg
ICAgICAgIChCYXNlQ2hlY2thYmxlSW5wdXRUeXBlKTogZGl0dG8uCisgICAgICAgICogaHRtbC9G
aWxlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVJbnB1dFR5cGU6OnNhdmVG
b3JtQ29udHJvbFN0YXRlKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGaWxlSW5wdXRUeXBl
OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6IGRpdHRvLgorICAgICAgICAqIGh0bWwvRmlsZUlu
cHV0VHlwZS5oOgorICAgICAgICAoRmlsZUlucHV0VHlwZSk6IGRpdHRvLgorICAgICAgICAqIGh0
bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSk6
IGRpdHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0
ZTo6ZmluaXNoUGFyc2luZ0NoaWxkcmVuKTogZGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MRm9y
bUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlLmg6CisgICAgICAgIChIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlKTogZGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpIVE1MRm9ybUNvbnRyb2xF
bGVtZW50V2l0aFN0YXRlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6IGRpdHRvLgorICAgICAg
ICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5w
dXRFbGVtZW50OjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSk6IGRpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTElucHV0RWxlbWVudDo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUpOiBkaXR0by4KKyAg
ICAgICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuaDoKKyAgICAgICAgKEhUTUxJbnB1dEVsZW1l
bnQpOiBkaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSk6IGRp
dHRvLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6OnJlc3RvcmVGb3JtQ29u
dHJvbFN0YXRlKTogZGl0dG8uCisgICAgICAgICogaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oOgor
ICAgICAgICAqIGh0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MVGV4dEFyZWFFbGVtZW50OjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSk6IGRpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6SFRNTFRleHRBcmVhRWxlbWVudDo6cmVzdG9yZUZvcm1Db250cm9sU3Rh
dGUpOiBkaXR0by4KKyAgICAgICAgKiBodG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL0hpZGRlbklucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIaWRkZW5J
bnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKTogZGl0dG8uCisgICAgICAgIChXZWJDb3Jl
OjpIaWRkZW5JbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKTogZGl0dG8uCisgICAg
ICAgICogaHRtbC9IaWRkZW5JbnB1dFR5cGUuaDoKKyAgICAgICAgKEhpZGRlbklucHV0VHlwZSk6
IGRpdHRvLgorICAgICAgICAqIGh0bWwvSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OklucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUpOiBkaXR0by4KKyAgICAgICAg
KiBodG1sL0lucHV0VHlwZS5oOgorICAgICAgICAoSW5wdXRUeXBlKTogZGl0dG8uCisgICAgICAg
ICogaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYXNzd29y
ZElucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUpOiBkaXR0by4KKyAgICAgICAgKFdlYkNv
cmU6OlBhc3N3b3JkSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSk6IGRpdHRvLgor
ICAgICAgICAqIGh0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaDoKKyAgICAgICAgKFBhc3N3b3JkSW5w
dXRUeXBlKTogZGl0dG8uCisKIDIwMTItMDYtMTcgIFlvc2hpZnVtaSBJbm91ZSAgPHlvc2luQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBbRm9ybXNdIENvcHkgUmVuZGVyVGV4dENvbnRyb2xTaW5n
bGVMaW5lLntjcHAsaH0gdG8gUmVuZGVyU2VhcmNoRmlsZWQue2NwcCxofQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5jcHAKaW5kZXggZjU3OGFjYmU3ZDdj
YWNmZDI1NDdmYjU2YjQ2YmZhNmM0Njg3YzM5NS4uMTkwMGFkMjk2ZjliMjRhYzI2M2MwMTMzMTNl
MWVkMzFiZDMxZDZmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2th
YmxlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJ
bnB1dFR5cGUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiQmFzZUNoZWNrYWJsZUlucHV0VHlwZS5oIgogCisjaW5jbHVkZSAiRm9ybUNvbnRyb2xs
ZXIuaCIKICNpbmNsdWRlICJGb3JtRGF0YUxpc3QuaCIKICNpbmNsdWRlICJIVE1MSW5wdXRFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCkBAIC00MiwxNSArNDMsMTQgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCi1ib29sIEJhc2VD
aGVja2FibGVJbnB1dFR5cGU6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0KSBj
b25zdAorRm9ybUNvbnRyb2xTdGF0ZSBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjpzYXZlRm9ybUNv
bnRyb2xTdGF0ZSgpIGNvbnN0CiB7Ci0gICAgcmVzdWx0ID0gZWxlbWVudCgpLT5jaGVja2VkKCkg
PyAib24iIDogIm9mZiI7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIEZvcm1Db250cm9s
U3RhdGUoZWxlbWVudCgpLT5jaGVja2VkKCkgPyAib24iIDogIm9mZiIpOwogfQogCi12b2lkIEJh
c2VDaGVja2FibGVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmlu
ZyYgc3RhdGUpCit2b2lkIEJhc2VDaGVja2FibGVJbnB1dFR5cGU6OnJlc3RvcmVGb3JtQ29udHJv
bFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmIHN0YXRlKQogewotICAgIGVsZW1lbnQoKS0+
c2V0Q2hlY2tlZChzdGF0ZSA9PSAib24iKTsKKyAgICBlbGVtZW50KCktPnNldENoZWNrZWQoc3Rh
dGUudmFsdWUoKSA9PSAib24iKTsKIH0KIAogYm9vbCBCYXNlQ2hlY2thYmxlSW5wdXRUeXBlOjph
cHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmIGVuY29kaW5nLCBib29sKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9CYXNlQ2hlY2thYmxlSW5wdXRUeXBlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJbnB1dFR5cGUuaAppbmRleCA4NjBkNmZkOTAz
Njg4ZmUxMmVmOGMxMzM1Zjk4MmQ4ZjM3NGE5OGZjLi41ZjhhNjY1MjJmNDY2ODA5ZGNhNzRjNDEy
ZDYzNGFjNDk5MDllNjQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVj
a2FibGVJbnB1dFR5cGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Jhc2VDaGVja2FibGVJ
bnB1dFR5cGUuaApAQCAtNDIsOCArNDIsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lk
IGhhbmRsZUtleWRvd25FdmVudChLZXlib2FyZEV2ZW50Kik7CiAKIHByaXZhdGU6Ci0gICAgdmly
dHVhbCBib29sIHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3Rh
dGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9s
U3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgYm9v
bCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklERTsKICAg
ICB2aXJ0dWFsIHZvaWQgaGFuZGxlS2V5cHJlc3NFdmVudChLZXlib2FyZEV2ZW50KikgT1ZFUlJJ
REU7CiAgICAgdmlydHVhbCBib29sIGNhblNldFN0cmluZ1ZhbHVlKCkgY29uc3QgT1ZFUlJJREU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmNwcAppbmRleCAzOWJmZTllMzUwOWIyODA0
NmNiZDg5ZjM4NGY1ODg5YmUzYmQxODM5Li43NDFkODYwZTRkZDI0Zjk4NDhjYTk4M2VhNDM4ZjRm
YTY1MTMzMmE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ZpbGVJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5jcHAKQEAgLTI5LDYg
KzI5LDcgQEAKICNpbmNsdWRlICJGaWxlLmgiCiAjaW5jbHVkZSAiRmlsZUxpc3QuaCIKICNpbmNs
dWRlICJGaWxlU3lzdGVtLmgiCisjaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKICNpbmNsdWRl
ICJGb3JtRGF0YUxpc3QuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxJbnB1
dEVsZW1lbnQuaCIKQEAgLTEwMCwxMSArMTAxLDEzIEBAIGNvbnN0IEF0b21pY1N0cmluZyYgRmls
ZUlucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkgY29uc3QKICAgICByZXR1cm4gSW5wdXRUeXBl
TmFtZXM6OmZpbGUoKTsKIH0KIAotYm9vbCBGaWxlSW5wdXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xT
dGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKK0Zvcm1Db250cm9sU3RhdGUgRmlsZUlucHV0VHlw
ZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAogewogICAgIGlmIChtX2ZpbGVMaXN0LT5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXN1bHQgPSBTdHJpbmcoKTsK
KyAgICAgICAgcmV0dXJuIEZvcm1Db250cm9sU3RhdGUoKTsKKyAgICAvLyBGSVhNRTogRm9ybUNv
bnRyb2xTdGF0ZSBzaG91bGQgYmUgY2FwYWJsZSB0byBoYXZlIG11bHRpcGxlIHN0cmluZ3MgYW5k
IHdlCisgICAgLy8gc2hvdWxkIHN0b3AgdGhlIGZvbGxvd2luZyB1Z2x5IHN0cmluZyBjb25jYXRl
bmF0aW9uLgorICAgIFN0cmluZ0J1aWxkZXIgcmVzdWx0OwogICAgIHVuc2lnbmVkIG51bUZpbGVz
ID0gbV9maWxlTGlzdC0+bGVuZ3RoKCk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG51
bUZpbGVzOyArK2kpIHsKICAgICAgICAgcmVzdWx0LmFwcGVuZChtX2ZpbGVMaXN0LT5pdGVtKGkp
LT5wYXRoKCkpOwpAQCAtMTEyLDE0ICsxMTUsMTQgQEAgYm9vbCBGaWxlSW5wdXRUeXBlOjpzYXZl
Rm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHJlc3VsdCkgY29uc3QKICAgICAgICAgcmVzdWx0LmFw
cGVuZChtX2ZpbGVMaXN0LT5pdGVtKGkpLT5uYW1lKCkpOwogICAgICAgICByZXN1bHQuYXBwZW5k
KCdcMCcpOwogICAgIH0KLSAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gRm9ybUNvbnRyb2xT
dGF0ZShyZXN1bHQudG9TdHJpbmcoKSk7CiB9CiAKLXZvaWQgRmlsZUlucHV0VHlwZTo6cmVzdG9y
ZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkKK3ZvaWQgRmlsZUlucHV0VHlw
ZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYgc3RhdGUp
CiB7CiAgICAgVmVjdG9yPEZpbGVDaG9vc2VyRmlsZUluZm8+IGZpbGVzOwogICAgIFZlY3RvcjxT
dHJpbmc+IHBhdGhzOwotICAgIHN0YXRlLnNwbGl0KCdcMCcsIHBhdGhzKTsKKyAgICBzdGF0ZS52
YWx1ZSgpLnNwbGl0KCdcMCcsIHBhdGhzKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
cGF0aHMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gcGF0aEFuZE5hbWU7
CiAgICAgICAgIHBhdGhzW2ldLnNwbGl0KCdcMScsIHBhdGhBbmROYW1lKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvRmlsZUlucHV0VHlwZS5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9GaWxlSW5wdXRUeXBlLmgKaW5kZXggYTMwZTdlNjg5NmU1ODIyZDRkYzQzMDA4MzMwNmMzZGVk
Y2JhNThhOS4uMzY5NjIzY2FiNjI0NTc2ZDlkMTM2Y2RjN2NlMGJlNzRmMWJkOTI5NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9GaWxlSW5wdXRUeXBlLmgKQEAgLTQ5LDggKzQ5LDggQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICBGaWxlSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQqKTsKICAgICB2aXJ0dWFs
IGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3QgT1ZFUlJJREU7Ci0g
ICAgdmlydHVhbCBib29sIHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0IE9WRVJS
SURFOwotICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJp
bmcmKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIEZvcm1Db250cm9sU3RhdGUgc2F2ZUZvcm1Db250
cm9sU3RhdGUoKSBjb25zdCBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1D
b250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgYm9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sKSBjb25zdCBPVkVSUklE
RTsKICAgICB2aXJ0dWFsIGJvb2wgdmFsdWVNaXNzaW5nKGNvbnN0IFN0cmluZyYpIGNvbnN0IE9W
RVJSSURFOwogICAgIHZpcnR1YWwgU3RyaW5nIHZhbHVlTWlzc2luZ1RleHQoKSBjb25zdCBPVkVS
UklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAKaW5kZXggYzg4MjgwNWNk
MGJlNzlkOTlmMTVlZjc5YmIzMDA3ZmE4MDQ2ZjdkYi4uODBkMDFmMmNhMzE3Y2Y0YjVmNmU5YTcw
NWFmNjY1NDU0NWMwY2E5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29u
dHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29udHJvbGxlci5jcHAK
QEAgLTQ1LDEyICs0NSwxMiBAQCBWZWN0b3I8U3RyaW5nPiBGb3JtQ29udHJvbGxlcjo6Zm9ybUVs
ZW1lbnRzU3RhdGUoKSBjb25zdAogICAgICAgICBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0
YXRlKiBlbGVtZW50V2l0aFN0YXRlID0gKml0OwogICAgICAgICBpZiAoIWVsZW1lbnRXaXRoU3Rh
dGUtPnNob3VsZFNhdmVBbmRSZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZSgpKQogICAgICAgICAgICAg
Y29udGludWU7Ci0gICAgICAgIFN0cmluZyB2YWx1ZTsKLSAgICAgICAgaWYgKCFlbGVtZW50V2l0
aFN0YXRlLT5zYXZlRm9ybUNvbnRyb2xTdGF0ZSh2YWx1ZSkpCisgICAgICAgIEZvcm1Db250cm9s
U3RhdGUgc3RhdGUgPSBlbGVtZW50V2l0aFN0YXRlLT5zYXZlRm9ybUNvbnRyb2xTdGF0ZSgpOwor
ICAgICAgICBpZiAoIXN0YXRlLmhhc1ZhbHVlKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgc3RhdGVWZWN0b3IuYXBwZW5kKGVsZW1lbnRXaXRoU3RhdGUtPm5hbWUoKS5zdHJpbmco
KSk7CiAgICAgICAgIHN0YXRlVmVjdG9yLmFwcGVuZChlbGVtZW50V2l0aFN0YXRlLT5mb3JtQ29u
dHJvbFR5cGUoKS5zdHJpbmcoKSk7Ci0gICAgICAgIHN0YXRlVmVjdG9yLmFwcGVuZCh2YWx1ZSk7
CisgICAgICAgIHN0YXRlVmVjdG9yLmFwcGVuZChzdGF0ZS52YWx1ZSgpKTsKICAgICB9CiAgICAg
cmV0dXJuIHN0YXRlVmVjdG9yOwogfQpAQCAtOTYsMTkgKzk2LDE5IEBAIGJvb2wgRm9ybUNvbnRy
b2xsZXI6Omhhc1N0YXRlRm9yTmV3Rm9ybUVsZW1lbnRzKCkgY29uc3QKICAgICByZXR1cm4gIW1f
c3RhdGVGb3JOZXdGb3JtRWxlbWVudHMuaXNFbXB0eSgpOwogfQogCi1ib29sIEZvcm1Db250cm9s
bGVyOjp0YWtlU3RhdGVGb3JGb3JtRWxlbWVudChBdG9taWNTdHJpbmdJbXBsKiBuYW1lLCBBdG9t
aWNTdHJpbmdJbXBsKiB0eXBlLCBTdHJpbmcmIHN0YXRlKQorRm9ybUNvbnRyb2xTdGF0ZSBGb3Jt
Q29udHJvbGxlcjo6dGFrZVN0YXRlRm9yRm9ybUVsZW1lbnQoQXRvbWljU3RyaW5nSW1wbCogbmFt
ZSwgQXRvbWljU3RyaW5nSW1wbCogdHlwZSkKIHsKICAgICB0eXBlZGVmIEZvcm1FbGVtZW50U3Rh
dGVNYXA6Oml0ZXJhdG9yIEl0ZXJhdG9yOwogICAgIEl0ZXJhdG9yIGl0ID0gbV9zdGF0ZUZvck5l
d0Zvcm1FbGVtZW50cy5maW5kKEZvcm1FbGVtZW50S2V5KG5hbWUsIHR5cGUpKTsKICAgICBpZiAo
aXQgPT0gbV9zdGF0ZUZvck5ld0Zvcm1FbGVtZW50cy5lbmQoKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgICAgICByZXR1cm4gRm9ybUNvbnRyb2xTdGF0ZSgpOwogICAgIEFTU0VSVChpdC0+
c2Vjb25kLnNpemUoKSk7Ci0gICAgc3RhdGUgPSBpdC0+c2Vjb25kLmxhc3QoKTsKKyAgICBGb3Jt
Q29udHJvbFN0YXRlIHN0YXRlKGl0LT5zZWNvbmQubGFzdCgpKTsKICAgICBpZiAoaXQtPnNlY29u
ZC5zaXplKCkgPiAxKQogICAgICAgICBpdC0+c2Vjb25kLnJlbW92ZUxhc3QoKTsKICAgICBlbHNl
CiAgICAgICAgIG1fc3RhdGVGb3JOZXdGb3JtRWxlbWVudHMucmVtb3ZlKGl0KTsKLSAgICByZXR1
cm4gdHJ1ZTsKKyAgICByZXR1cm4gc3RhdGU7CiB9CiAKIHZvaWQgRm9ybUNvbnRyb2xsZXI6OnJl
Z2lzdGVyRm9ybUVsZW1lbnRXaXRoRm9ybUF0dHJpYnV0ZShGb3JtQXNzb2NpYXRlZEVsZW1lbnQq
IGVsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0Zvcm1Db250cm9sbGVyLmgKaW5kZXggOTkxZDM1ZDhk
NTU5NmFjNmU4ZmUxOWRlZTYyZGM4MTNmYzBjNWEwNS4uMzQyODJhNjhiNzE4ZWVjNTAwM2I3NGJi
NTE4ODcwNTkwODgxMTMyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9Gb3JtQ29u
dHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvRm9ybUNvbnRyb2xsZXIuaApAQCAt
MjYsNiArMjYsNyBAQAogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0xp
c3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTcyLDYgKzczLDIwIEBA
IHN0cnVjdCBGb3JtRWxlbWVudEtleUhhc2hUcmFpdHMgOiBXVEY6OkdlbmVyaWNIYXNoVHJhaXRz
PEZvcm1FbGVtZW50S2V5PiB7CiAgICAgc3RhdGljIGJvb2wgaXNEZWxldGVkVmFsdWUoY29uc3Qg
Rm9ybUVsZW1lbnRLZXkmIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5pc0hhc2hUYWJsZURlbGV0ZWRW
YWx1ZSgpOyB9CiB9OwogCitjbGFzcyBGb3JtQ29udHJvbFN0YXRlIHsKK3B1YmxpYzoKKyAgICBG
b3JtQ29udHJvbFN0YXRlKCkgOiBtX3R5cGUoVHlwZVNraXApIHsgfQorICAgIGV4cGxpY2l0IEZv
cm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiB2YWx1ZSkgOiBtX3R5cGUoVHlwZVJlc3RvcmUp
LCBtX3ZhbHVlKHZhbHVlKSB7IH0KKworICAgIGJvb2wgaGFzVmFsdWUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGUgPT0gVHlwZVJlc3RvcmU7IH0KKyAgICBTdHJpbmcgdmFsdWUoKSBjb25zdCB7IHJl
dHVybiBtX3ZhbHVlOyB9CisKK3ByaXZhdGU6CisgICAgZW51bSBUeXBlIHsgVHlwZVNraXAsIFR5
cGVSZXN0b3JlIH07CisgICAgVHlwZSBtX3R5cGU7CisgICAgU3RyaW5nIG1fdmFsdWU7Cit9Owor
CiBjbGFzcyBGb3JtQ29udHJvbGxlciB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NPd25QdHI8
Rm9ybUNvbnRyb2xsZXI+IGNyZWF0ZSgpCkBAIC04OSw3ICsxMDQsNyBAQCBwdWJsaWM6CiAgICAg
Ly8gVGhpcyBzaG91bGQgYmUgY2FsbGxlZCBvbmx5IGJ5IERvY3VtZW50OjpzZXRTdGF0ZUZvck5l
d0Zvcm1FbGVtZW50cygpLgogICAgIHZvaWQgc2V0U3RhdGVGb3JOZXdGb3JtRWxlbWVudHMoY29u
c3QgVmVjdG9yPFN0cmluZz4mKTsKICAgICBib29sIGhhc1N0YXRlRm9yTmV3Rm9ybUVsZW1lbnRz
KCkgY29uc3Q7Ci0gICAgYm9vbCB0YWtlU3RhdGVGb3JGb3JtRWxlbWVudChBdG9taWNTdHJpbmdJ
bXBsKiBuYW1lLCBBdG9taWNTdHJpbmdJbXBsKiB0eXBlLCBTdHJpbmcmIHN0YXRlKTsKKyAgICBG
b3JtQ29udHJvbFN0YXRlIHRha2VTdGF0ZUZvckZvcm1FbGVtZW50KEF0b21pY1N0cmluZ0ltcGwq
IG5hbWUsIEF0b21pY1N0cmluZ0ltcGwqIHR5cGUpOwogCiAgICAgdm9pZCByZWdpc3RlckZvcm1F
bGVtZW50V2l0aEZvcm1BdHRyaWJ1dGUoRm9ybUFzc29jaWF0ZWRFbGVtZW50Kik7CiAgICAgdm9p
ZCB1bnJlZ2lzdGVyRm9ybUVsZW1lbnRXaXRoRm9ybUF0dHJpYnV0ZShGb3JtQXNzb2NpYXRlZEVs
ZW1lbnQqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9s
RWxlbWVudFdpdGhTdGF0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJv
bEVsZW1lbnRXaXRoU3RhdGUuY3BwCmluZGV4IDk0YWVhZDQzNjRhYjZmZTgwYmNmNDdmN2M0Zjc0
YTFiOThhNDdmMGYuLjQxNTIyMjRlZTk2MDM2MmJjMzYwYzA3YTYwMDgzMTE5YWM5NDZhNmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhT
dGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50
V2l0aFN0YXRlLmNwcApAQCAtNjIsNiArNjIsMTEgQEAgYm9vbCBIVE1MRm9ybUNvbnRyb2xFbGVt
ZW50V2l0aFN0YXRlOjpzaG91bGRTYXZlQW5kUmVzdG9yZUZvcm1Db250cm9sU3RhdGUoKSBjb24K
ICAgICByZXR1cm4gYXR0YWNoZWQoKSAmJiBzaG91bGRBdXRvY29tcGxldGUoKTsKIH0KIAorRm9y
bUNvbnRyb2xTdGF0ZSBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpzYXZlRm9ybUNv
bnRyb2xTdGF0ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIEZvcm1Db250cm9sU3RhdGUoKTsKK30K
Kwogdm9pZCBIVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRlOjpmaW5pc2hQYXJzaW5nQ2hp
bGRyZW4oKQogewogICAgIEhUTUxGb3JtQ29udHJvbEVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGls
ZHJlbigpOwpAQCAtNzQsOCArNzksOCBAQCB2b2lkIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRo
U3RhdGU6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCiAKICAgICBEb2N1bWVudCogZG9jID0gZG9j
dW1lbnQoKTsKICAgICBpZiAoZG9jLT5mb3JtQ29udHJvbGxlcigpLT5oYXNTdGF0ZUZvck5ld0Zv
cm1FbGVtZW50cygpKSB7Ci0gICAgICAgIFN0cmluZyBzdGF0ZTsKLSAgICAgICAgaWYgKGRvYy0+
Zm9ybUNvbnRyb2xsZXIoKS0+dGFrZVN0YXRlRm9yRm9ybUVsZW1lbnQobmFtZSgpLmltcGwoKSwg
dHlwZSgpLmltcGwoKSwgc3RhdGUpKQorICAgICAgICBGb3JtQ29udHJvbFN0YXRlIHN0YXRlID0g
ZG9jLT5mb3JtQ29udHJvbGxlcigpLT50YWtlU3RhdGVGb3JGb3JtRWxlbWVudChuYW1lKCkuaW1w
bCgpLCB0eXBlKCkuaW1wbCgpKTsKKyAgICAgICAgaWYgKHN0YXRlLmhhc1ZhbHVlKCkpCiAgICAg
ICAgICAgICByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShzdGF0ZSk7CiAgICAgfQogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRm9ybUNvbnRyb2xFbGVtZW50V2l0aFN0YXRl
LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUu
aAppbmRleCA3M2RlMzI2MGJmYzRmOTllNGIyYTUxMWM5MDU3MWYwYTlkODY5NDVjLi4wYWY5OGY4
ZDg1N2Y4YmQwNDY0ZGQ2Nzc1ZGIxMTE2NDJiYTExNjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUuaApAQCAtMjgsNiAr
MjgsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEZvcm1Db250cm9sU3RhdGU7
CisKIGNsYXNzIEhUTUxGb3JtQ29udHJvbEVsZW1lbnRXaXRoU3RhdGUgOiBwdWJsaWMgSFRNTEZv
cm1Db250cm9sRWxlbWVudCB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+SFRNTEZvcm1Db250cm9s
RWxlbWVudFdpdGhTdGF0ZSgpOwpAQCAtMzUsOCArMzcsOSBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBib29sIGNhbkNvbnRhaW5SYW5nZUVuZFBvaW50KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
IAogICAgIGJvb2wgc2hvdWxkU2F2ZUFuZFJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3Q7
Ci0gICAgdmlydHVhbCBib29sIHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRl
KGNvbnN0IFN0cmluZyYpIHsgfQorICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9y
bUNvbnRyb2xTdGF0ZSgpIGNvbnN0OworICAgIC8vIFRoZSBzcGVjaWZpZWQgRm9ybUNvbnRyb2xT
dGF0ZSBtdXN0IGhhdmUgb25lIHN0cmluZyB2YWx1ZS4KKyAgICB2aXJ0dWFsIHZvaWQgcmVzdG9y
ZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpIHsgfQogCiBwcm90ZWN0
ZWQ6CiAgICAgSFRNTEZvcm1Db250cm9sRWxlbWVudFdpdGhTdGF0ZShjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bWVudCosIEhUTUxGb3JtRWxlbWVudCopOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggNWM2YmYxNjU5ODNjMGM4MjMxNDMyZjM2
YTdmZWQ4ZTVhZTFmMWUzNC4uYzA0ZDEyMmQyZTFhMGU3MzdiNGJjNDVlMzY0M2Q1NDY2YjEzNzU1
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC00OTksMTIg
KzQ5OSwxMiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEhUTUxJbnB1dEVsZW1lbnQ6OmZvcm1Db250
cm9sVHlwZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW5wdXRUeXBlLT5mb3JtQ29udHJvbFR5cGUo
KTsKIH0KIAotYm9vbCBIVE1MSW5wdXRFbGVtZW50OjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJp
bmcmIHJlc3VsdCkgY29uc3QKK0Zvcm1Db250cm9sU3RhdGUgSFRNTElucHV0RWxlbWVudDo6c2F2
ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAogewotICAgIHJldHVybiBtX2lucHV0VHlwZS0+c2F2
ZUZvcm1Db250cm9sU3RhdGUocmVzdWx0KTsKKyAgICByZXR1cm4gbV9pbnB1dFR5cGUtPnNhdmVG
b3JtQ29udHJvbFN0YXRlKCk7CiB9CiAKLXZvaWQgSFRNTElucHV0RWxlbWVudDo6cmVzdG9yZUZv
cm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdGF0ZSkKK3ZvaWQgSFRNTElucHV0RWxlbWVu
dDo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYgc3RhdGUp
CiB7CiAgICAgbV9pbnB1dFR5cGUtPnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKHN0YXRlKTsKICAg
ICBtX3N0YXRlUmVzdG9yZWQgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuaAppbmRleCA5ODZkOTFlNDY2MmMzYTk4NzQxY2M4ZTc3MGE5MWY4N2UxMDUzZjllLi4xZTYy
ODU0ZjQ1OTg5NDY4NWZjOTQ0OTJhYTU0YmY0YWY2ZmMzYWFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuaApAQCAtMjg5LDggKzI4OSw4IEBAIHByaXZhdGU6CiAKICAgICB2
aXJ0dWFsIGNvbnN0IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAKLSAg
ICB2aXJ0dWFsIGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJiB2YWx1ZSkgY29uc3Q7
Ci0gICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYp
OworICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNv
bnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShj
b25zdCBGb3JtQ29udHJvbFN0YXRlJikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgY2Fu
U3RhcnRTZWxlY3Rpb24oKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MU2VsZWN0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmNwcAppbmRleCBjMGY3ZWNiNWQxYjEzYjU5Y2FiMWZiNGY2ZGZlNjc1MjE1YjJjN2Fj
Li5hNWQ4YWQyYmM1ZGNhZjQwNjMwZWIzOTc1MzZhZmY2MmU1MDNhZDQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1
ZGUgIkNocm9tZS5oIgogI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkV2ZW50
TmFtZXMuaCIKKyNpbmNsdWRlICJGb3JtQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZvcm1EYXRh
TGlzdC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiSFRNTEZvcm1FbGVtZW50Lmgi
CkBAIC05MTQsNyArOTE1LDcgQEAgdm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6ZGVzZWxlY3RJdGVt
c1dpdGhvdXRWYWxpZGF0aW9uKEhUTUxFbGVtZW50KiBleGNsdWRlRWxlbWUKICAgICB9CiB9CiAK
LWJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgdmFs
dWUpIGNvbnN0CitGb3JtQ29udHJvbFN0YXRlIEhUTUxTZWxlY3RFbGVtZW50OjpzYXZlRm9ybUNv
bnRyb2xTdGF0ZSgpIGNvbnN0CiB7CiAgICAgY29uc3QgVmVjdG9yPEhUTUxFbGVtZW50Kj4mIGl0
ZW1zID0gbGlzdEl0ZW1zKCk7CiAgICAgc2l6ZV90IGxlbmd0aCA9IGl0ZW1zLnNpemUoKTsKQEAg
LTkyNSwyMSArOTI2LDIxIEBAIGJvb2wgSFRNTFNlbGVjdEVsZW1lbnQ6OnNhdmVGb3JtQ29udHJv
bFN0YXRlKFN0cmluZyYgdmFsdWUpIGNvbnN0CiAgICAgICAgIGJvb2wgc2VsZWN0ZWQgPSBlbGVt
ZW50LT5oYXNUYWdOYW1lKG9wdGlvblRhZykgJiYgdG9IVE1MT3B0aW9uRWxlbWVudChlbGVtZW50
KS0+c2VsZWN0ZWQoKTsKICAgICAgICAgYnVpbGRlci5hcHBlbmQoc2VsZWN0ZWQgPyAnWCcgOiAn
LicpOwogICAgIH0KLSAgICB2YWx1ZSA9IGJ1aWxkZXIudG9TdHJpbmcoKTsKLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICByZXR1cm4gRm9ybUNvbnRyb2xTdGF0ZShidWlsZGVyLnRvU3RyaW5nKCkpOwog
fQogCi12b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25z
dCBTdHJpbmcmIHN0YXRlKQordm9pZCBIVE1MU2VsZWN0RWxlbWVudDo6cmVzdG9yZUZvcm1Db250
cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYgc3RhdGUpCiB7CiAgICAgcmVjYWxjTGlz
dEl0ZW1zKCk7CiAKICAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQqPiYgaXRlbXMgPSBsaXN0
SXRlbXMoKTsKICAgICBzaXplX3QgbGVuZ3RoID0gaXRlbXMuc2l6ZSgpOwogCisgICAgU3RyaW5n
IG1hc2sgPSBzdGF0ZS52YWx1ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbGVuZ3Ro
OyArK2kpIHsKICAgICAgICAgSFRNTEVsZW1lbnQqIGVsZW1lbnQgPSBpdGVtc1tpXTsKICAgICAg
ICAgaWYgKGVsZW1lbnQtPmhhc1RhZ05hbWUob3B0aW9uVGFnKSkKLSAgICAgICAgICAgIHRvSFRN
TE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPnNldFNlbGVjdGVkU3RhdGUoc3RhdGVbaV0gPT0gJ1gn
KTsKKyAgICAgICAgICAgIHRvSFRNTE9wdGlvbkVsZW1lbnQoZWxlbWVudCktPnNldFNlbGVjdGVk
U3RhdGUobWFza1tpXSA9PSAnWCcpOwogICAgIH0KIAogICAgIHNldE9wdGlvbnNDaGFuZ2VkT25S
ZW5kZXJlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5oCmluZGV4IGNj
ZDhiYjA5OTEwMTM0ZDU1ZTdkNmM4MjNjODlmYzExNTJmOTEwOWYuLmU4MmIxMTdmMmNmZDJlZTFj
ZmY0ZTg4ZGVmYjIwNjZmOWI2ZjFhZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTFNlbGVjdEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RF
bGVtZW50LmgKQEAgLTEyMCw4ICsxMjAsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBp
c0VudW1lcmF0YWJsZSgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wg
c3VwcG9ydExhYmVscygpIGNvbnN0IE9WRVJSSURFIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZp
cnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmIHZhbHVlKSBjb25zdDsKLSAg
ICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJik7Cisg
ICAgdmlydHVhbCBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29udHJvbFN0YXRlKCkgY29uc3Qg
T1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0
IEZvcm1Db250cm9sU3RhdGUmKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYXJzZUF0
dHJpYnV0ZShjb25zdCBBdHRyaWJ1dGUmKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgaXNQ
cmVzZW50YXRpb25BdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYpIGNvbnN0IE9WRVJSSURF
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVGV4dEFyZWFFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5jcHAKaW5kZXggNjQz
NzI1NzA4OGZhMzBkMmMyZmVjOTZmZDU1ZjI1NThlMDcyZWRlZC4uYmY1MTI1ZjhiZjRkOTc4ZGYz
YzUxZGNmZGYzMWQ3NDIxNTdiY2IyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MVGV4dEFyZWFFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0
QXJlYUVsZW1lbnQuY3BwCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiRXZlbnQuaCIKICNp
bmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uQ29kZS5oIgorI2luY2x1
ZGUgIkZvcm1Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRm9ybURhdGFMaXN0LmgiCiAjaW5jbHVk
ZSAiRnJhbWUuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTk4LDE4ICs5OSwxNyBAQCBj
b25zdCBBdG9taWNTdHJpbmcmIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OmZvcm1Db250cm9sVHlwZSgp
IGNvbnN0CiAgICAgcmV0dXJuIHRleHRhcmVhOwogfQogCi1ib29sIEhUTUxUZXh0QXJlYUVsZW1l
bnQ6OnNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYgcmVzdWx0KSBjb25zdAorRm9ybUNvbnRy
b2xTdGF0ZSBIVE1MVGV4dEFyZWFFbGVtZW50OjpzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0
CiB7CiAgICAgU3RyaW5nIGN1cnJlbnRWYWx1ZSA9IHZhbHVlKCk7CiAgICAgaWYgKGN1cnJlbnRW
YWx1ZSA9PSBkZWZhdWx0VmFsdWUoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJlc3Vs
dCA9IGN1cnJlbnRWYWx1ZTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIEZvcm1D
b250cm9sU3RhdGUoKTsKKyAgICByZXR1cm4gRm9ybUNvbnRyb2xTdGF0ZShjdXJyZW50VmFsdWUp
OwogfQogCi12b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRl
KGNvbnN0IFN0cmluZyYgc3RhdGUpCit2b2lkIEhUTUxUZXh0QXJlYUVsZW1lbnQ6OnJlc3RvcmVG
b3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmIHN0YXRlKQogewotICAgIHNl
dFZhbHVlKHN0YXRlKTsKKyAgICBzZXRWYWx1ZShzdGF0ZS52YWx1ZSgpKTsKIH0KIAogdm9pZCBI
VE1MVGV4dEFyZWFFbGVtZW50OjpjaGlsZHJlbkNoYW5nZWQoYm9vbCBjaGFuZ2VkQnlQYXJzZXIs
IE5vZGUqIGJlZm9yZUNoYW5nZSwgTm9kZSogYWZ0ZXJDaGFuZ2UsIGludCBjaGlsZENvdW50RGVs
dGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxUZXh0QXJlYUVsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVhRWxlbWVudC5oCmluZGV4IDYzY2U5
ZWE3NzdjNjc3OTA1ZDQ4NTc2MzA2ZmQxNjVkMGM1NGQyNWIuLjE4ZWJlYWQyODA0NjE4NmE3NDQw
MTkwY2ExMjNmMjZlZDNjYjZlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TFRleHRBcmVhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRleHRBcmVh
RWxlbWVudC5oCkBAIC05MCw4ICs5MCw4IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIGNvbnN0
IEF0b21pY1N0cmluZyYgZm9ybUNvbnRyb2xUeXBlKCkgY29uc3Q7CiAKLSAgICB2aXJ0dWFsIGJv
b2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJiB2YWx1ZSkgY29uc3Q7Ci0gICAgdmlydHVh
bCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpOworICAgIHZpcnR1
YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgpIGNvbnN0IE9WRVJSSURF
OworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBGb3JtQ29u
dHJvbFN0YXRlJikgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNUZXh0Rm9ybUNvbnRy
b2woKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSGlkZGVuSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSGlkZGVuSW5w
dXRUeXBlLmNwcAppbmRleCA0ZWZiOGQ2MGY4ZmQ1NWUwYWY0NmFmYjJjNzY4ZTM0YjJkNDIzNjgw
Li45NmQ0Y2UwMDFiN2YxMDY3ZTcwNDc4Zjg3MThiNTMzZjg4MmE5YTdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSGlkZGVuSW5wdXRUeXBlLmgiCiAKKyNpbmNsdWRlICJGb3Jt
Q29udHJvbGxlci5oIgogI2luY2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgogI2luY2x1ZGUgIkhUTUxJ
bnB1dEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKQEAgLTUxLDE1ICs1MiwxNSBA
QCBjb25zdCBBdG9taWNTdHJpbmcmIEhpZGRlbklucHV0VHlwZTo6Zm9ybUNvbnRyb2xUeXBlKCkg
Y29uc3QKICAgICByZXR1cm4gSW5wdXRUeXBlTmFtZXM6OmhpZGRlbigpOwogfQogCi1ib29sIEhp
ZGRlbklucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJiByZXN1bHQpIGNvbnN0
CitGb3JtQ29udHJvbFN0YXRlIEhpZGRlbklucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUo
KSBjb25zdAogewotICAgIHJlc3VsdCA9IGVsZW1lbnQoKS0+dmFsdWUoKTsKLSAgICByZXR1cm4g
dHJ1ZTsKKyAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIG5vdCBhbHdheXMgc2F2ZSB0aGUgdmFsdWUu
IGh0dHA6Ly93ZWJraXQub3JnL2IvODg2ODUKKyAgICByZXR1cm4gRm9ybUNvbnRyb2xTdGF0ZShl
bGVtZW50KCktPnZhbHVlKCkpOwogfQogCi12b2lkIEhpZGRlbklucHV0VHlwZTo6cmVzdG9yZUZv
cm1Db250cm9sU3RhdGUoY29uc3QgU3RyaW5nJiBzdHJpbmcpCit2b2lkIEhpZGRlbklucHV0VHlw
ZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYgc3RhdGUp
CiB7Ci0gICAgZWxlbWVudCgpLT5zZXRBdHRyaWJ1dGUodmFsdWVBdHRyLCBzdHJpbmcpOworICAg
IGVsZW1lbnQoKS0+c2V0QXR0cmlidXRlKHZhbHVlQXR0ciwgc3RhdGUudmFsdWUoKSk7CiB9CiAK
IGJvb2wgSGlkZGVuSW5wdXRUeXBlOjpzdXBwb3J0c1ZhbGlkYXRpb24oKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSGlkZGVuSW5wdXRUeXBlLmgKaW5kZXggYjZiZTRlOTk1ZjBjNGU3YWU4MmNjNGM2
MDA4NjIzNjQ0NmNkZGRhZi4uZGJmMjI3ODgzNjIxMjQ2NGI1ODY3OTA3NTIzOTRmNmFlY2ZjYTY5
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IaWRkZW5JbnB1dFR5cGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hpZGRlbklucHV0VHlwZS5oCkBAIC00Miw4ICs0Miw4IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgSGlkZGVuSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1lbnQq
IGVsZW1lbnQpIDogSW5wdXRUeXBlKGVsZW1lbnQpIHsgfQogICAgIHZpcnR1YWwgY29uc3QgQXRv
bWljU3RyaW5nJiBmb3JtQ29udHJvbFR5cGUoKSBjb25zdCBPVkVSUklERTsKLSAgICB2aXJ0dWFs
IGJvb2wgc2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJikgY29uc3QgT1ZFUlJJREU7Ci0gICAg
dmlydHVhbCB2b2lkIHJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IFN0cmluZyYpIE9WRVJS
SURFOworICAgIHZpcnR1YWwgRm9ybUNvbnRyb2xTdGF0ZSBzYXZlRm9ybUNvbnRyb2xTdGF0ZSgp
IGNvbnN0IE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCByZXN0b3JlRm9ybUNvbnRyb2xTdGF0
ZShjb25zdCBGb3JtQ29udHJvbFN0YXRlJikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBib29sIHN1
cHBvcnRzVmFsaWRhdGlvbigpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVyT2Jq
ZWN0KiBjcmVhdGVSZW5kZXJlcihSZW5kZXJBcmVuYSosIFJlbmRlclN0eWxlKikgY29uc3QgT1ZF
UlJJREU7CiAgICAgdmlydHVhbCB2b2lkIGFjY2Vzc0tleUFjdGlvbihib29sIHNlbmRNb3VzZUV2
ZW50cykgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlw
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5jcHAKaW5kZXggZGZjNTBlMDBi
ZDhhYjBkMjdhZjNjNTlmYjQ0YTUxZjEyMDY4ODc5Ny4uYjdmYzgxNGI1NjdjMzI1YjRjOWQ1Nzc2
MGRiYTI4YzE5MDMzNGM3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmNwcApAQCAtNDIsNiAr
NDIsNyBAQAogI2luY2x1ZGUgIkV4Y2VwdGlvbkNvZGUuaCIKICNpbmNsdWRlICJGaWxlSW5wdXRU
eXBlLmgiCiAjaW5jbHVkZSAiRmlsZUxpc3QuaCIKKyNpbmNsdWRlICJGb3JtQ29udHJvbGxlci5o
IgogI2luY2x1ZGUgIkZvcm1EYXRhTGlzdC5oIgogI2luY2x1ZGUgIkhUTUxGb3JtRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxJbnB1dEVsZW1lbnQuaCIKQEAgLTE2OCwxOCArMTY5LDE3IEBAIGJv
b2wgSW5wdXRUeXBlOjppc1JhbmdlQ29udHJvbCgpIGNvbnN0CiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi1ib29sIElucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUoU3RyaW5nJiByZXN1bHQp
IGNvbnN0CitGb3JtQ29udHJvbFN0YXRlIElucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUo
KSBjb25zdAogewogICAgIFN0cmluZyBjdXJyZW50VmFsdWUgPSBlbGVtZW50KCktPnZhbHVlKCk7
CiAgICAgaWYgKGN1cnJlbnRWYWx1ZSA9PSBlbGVtZW50KCktPmRlZmF1bHRWYWx1ZSgpKQotICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmVzdWx0ID0gY3VycmVudFZhbHVlOwotICAgIHJldHVy
biB0cnVlOworICAgICAgICByZXR1cm4gRm9ybUNvbnRyb2xTdGF0ZSgpOworICAgIHJldHVybiBG
b3JtQ29udHJvbFN0YXRlKGN1cnJlbnRWYWx1ZSk7CiB9CiAKLXZvaWQgSW5wdXRUeXBlOjpyZXN0
b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmIHN0YXRlKQordm9pZCBJbnB1dFR5cGU6
OnJlc3RvcmVGb3JtQ29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmIHN0YXRlKQog
ewotICAgIGVsZW1lbnQoKS0+c2V0VmFsdWUoc3RhdGUpOworICAgIGVsZW1lbnQoKS0+c2V0VmFs
dWUoc3RhdGUudmFsdWUoKSk7CiB9CiAKIGJvb2wgSW5wdXRUeXBlOjppc0Zvcm1EYXRhQXBwZW5k
YWJsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5o
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbnB1dFR5cGUuaAppbmRleCAzODYwNTFmYWNiNzEwYTZi
NTZiZGI3YThmMGE1OTk3YzYzNTFiMjAwLi43MTNiNjNmNTFhNzhlNThlMzZhMjdjY2MzNzgyMmY4
NzI1Y2EwNGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lucHV0VHlwZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW5wdXRUeXBlLmgKQEAgLTEyNiw4ICsxMjYsOCBAQCBw
dWJsaWM6CiAKICAgICAvLyBGb3JtIHZhbHVlIGZ1bmN0aW9ucwogCi0gICAgdmlydHVhbCBib29s
IHNhdmVGb3JtQ29udHJvbFN0YXRlKFN0cmluZyYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBy
ZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcmKTsKKyAgICB2aXJ0dWFsIEZvcm1D
b250cm9sU3RhdGUgc2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZv
aWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgRm9ybUNvbnRyb2xTdGF0ZSYpOwogICAg
IHZpcnR1YWwgYm9vbCBpc0Zvcm1EYXRhQXBwZW5kYWJsZSgpIGNvbnN0OwogICAgIHZpcnR1YWwg
Ym9vbCBhcHBlbmRGb3JtRGF0YShGb3JtRGF0YUxpc3QmLCBib29sIG11bHRpcGFydCkgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5jcHAKaW5kZXggODhiYjg0
MmI2MzE0YTI1MGZjNDljMGI4M2JiM2RkMjU5YTBiMjdjMS4uMTBjMmQ5ZjllMmE4ZTVhMDUzODZj
ODIyMjczMDgyMWIzOTU4MGRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNz
d29yZElucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0
VHlwZS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJQYXNzd29yZElucHV0VHlwZS5oIgogCisjaW5jbHVkZSAiRm9ybUNvbnRyb2xsZXIuaCIKICNp
bmNsdWRlICJIVE1MSW5wdXRFbGVtZW50LmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4K
ICNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgpAQCAtNDgsMTMgKzQ5LDEzIEBAIGNvbnN0IEF0
b21pY1N0cmluZyYgUGFzc3dvcmRJbnB1dFR5cGU6OmZvcm1Db250cm9sVHlwZSgpIGNvbnN0CiAg
ICAgcmV0dXJuIElucHV0VHlwZU5hbWVzOjpwYXNzd29yZCgpOwogfQogCi1ib29sIFBhc3N3b3Jk
SW5wdXRUeXBlOjpzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmKSBjb25zdAorRm9ybUNvbnRy
b2xTdGF0ZSBQYXNzd29yZElucHV0VHlwZTo6c2F2ZUZvcm1Db250cm9sU3RhdGUoKSBjb25zdAog
ewogICAgIC8vIFNob3VsZCBuZXZlciBzYXZlL3Jlc3RvcmUgcGFzc3dvcmQgZmllbGRzLgotICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gRm9ybUNvbnRyb2xTdGF0ZSgpOwogfQogCi12b2lk
IFBhc3N3b3JkSW5wdXRUeXBlOjpyZXN0b3JlRm9ybUNvbnRyb2xTdGF0ZShjb25zdCBTdHJpbmcm
KQordm9pZCBQYXNzd29yZElucHV0VHlwZTo6cmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3Qg
Rm9ybUNvbnRyb2xTdGF0ZSYpCiB7CiAgICAgLy8gU2hvdWxkIG5ldmVyIHNhdmUvcmVzdG9yZSBw
YXNzd29yZCBmaWVsZHMuCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmggYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL1Bhc3N3b3JkSW5wdXRUeXBlLmgKaW5kZXggNTI2N2RkZTYzNjNiZThmMTM4MjRiMGVhOGVl
NGY0OWQ2ZTAxOWU3NC4uODMwMTJjZjljNDNlZTAwMmY0ODNjNGUyNjcwZjg5Y2ZhOTVlMWQ4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9QYXNzd29yZElucHV0VHlwZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvUGFzc3dvcmRJbnB1dFR5cGUuaApAQCAtNDIsOCArNDIsOCBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIFBhc3N3b3JkSW5wdXRUeXBlKEhUTUxJbnB1dEVsZW1l
bnQqIGVsZW1lbnQpIDogQmFzZVRleHRJbnB1dFR5cGUoZWxlbWVudCkgeyB9CiAgICAgdmlydHVh
bCBjb25zdCBBdG9taWNTdHJpbmcmIGZvcm1Db250cm9sVHlwZSgpIGNvbnN0IE9WRVJSSURFOwot
ICAgIHZpcnR1YWwgYm9vbCBzYXZlRm9ybUNvbnRyb2xTdGF0ZShTdHJpbmcmKSBjb25zdCBPVkVS
UklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcmVzdG9yZUZvcm1Db250cm9sU3RhdGUoY29uc3QgU3Ry
aW5nJikgT1ZFUlJJREU7CisgICAgdmlydHVhbCBGb3JtQ29udHJvbFN0YXRlIHNhdmVGb3JtQ29u
dHJvbFN0YXRlKCkgY29uc3QgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHJlc3RvcmVGb3Jt
Q29udHJvbFN0YXRlKGNvbnN0IEZvcm1Db250cm9sU3RhdGUmKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkVXNlSW5wdXRNZXRob2QoKSBjb25zdCBPVkVSUklERTsKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkUmVzZXRPbkRvY3VtZW50QWN0aXZhdGlvbigpIE9WRVJSSURFOwogICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRSZXNwZWN0TGlzdEF0dHJpYnV0ZSgpIE9WRVJSSURFOwo=
</data>
<flag name="review"
          id="155895"
          type_id="1"
          status="+"
          setter="morrita"
    />
          </attachment>
      

    </bug>

</bugzilla>