<?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>6521</bug_id>
          
          <creation_ts>2006-01-13 00:10:09 -0800</creation_ts>
          <short_desc>Remove CG dependencies from device/quartz</short_desc>
          <delta_ts>2006-01-13 00:39:27 -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>SVG</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P4</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>28348</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-13 00:10:09 -0800</bug_when>
    <thetext>Remove CG dependencies from device/quartz in preparation for pushing code into the base classes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>28349</commentid>
    <comment_count>1</comment_count>
      <attachid>5640</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2006-01-13 00:10:32 -0800</bug_when>
    <thetext>Created attachment 5640
proposed patch.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>5640</attachid>
            <date>2006-01-13 00:10:32 -0800</date>
            <delta_ts>2006-01-13 00:16:16 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>quartz.patch</filename>
            <type>text/plain</type>
            <size>24265</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">SW5kZXg6IGtjYW52YXMvUmVuZGVyU1ZHSW1hZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMv
UmVuZGVyU1ZHSW1hZ2UuY3BwCShyZXZpc2lvbiAxMjA1MykKKysrIGtjYW52YXMvUmVuZGVyU1ZH
SW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSwyOCArNjEsMjIgQEAgdm9pZCBSZW5kZXJT
VkdJbWFnZTo6cGFpbnQoUGFpbnRJbmZvJiBwYQogICAgIGNvbnRleHQtPmNvbmNhdENUTShRTWF0
cml4KCkudHJhbnNsYXRlKHBhcmVudFgsIHBhcmVudFkpKTsKICAgICB0cmFuc2xhdGVGb3JBdHRy
aWJ1dGVzKCk7CiAgICAgCi0gICAgLy8gRklYTUU6IEFsbCBRdWFydHogZGVwZW5kZW5jaWVzIHNo
b3VsZCBiZSByZW1vdmVkIGZyb20gdGhpcyBtZXRob2QhCi0gICAgQ0dDb250ZXh0UmVmIGNnQ29u
dGV4dCA9IHBhaW50SW5mby5wLT5jdXJyZW50Q29udGV4dCgpOwogICAgIFFSZWN0RiBib3VuZGlu
Z0JveCgwLCAwLCB3aWR0aCgpLCBoZWlnaHQoKSk7Ci0gICAgCi0gICAgUVN0cmluZyBjbGlwbmFt
ZSA9IHN0eWxlKCktPnN2Z1N0eWxlKCktPmNsaXBQYXRoKCkubWlkKDEpOwotICAgIEtDYW52YXND
bGlwcGVyUXVhcnR6ICpjbGlwcGVyID0gc3RhdGljX2Nhc3Q8S0NhbnZhc0NsaXBwZXJRdWFydHog
Kj4oZ2V0Q2xpcHBlckJ5SWQoZG9jdW1lbnQoKSwgY2xpcG5hbWUpKTsKLSAgICBpZiAoY2xpcHBl
cikKLSAgICAgICAgY2xpcHBlci0+YXBwbHlDbGlwKGNnQ29udGV4dCwgQ0dSZWN0KGJvdW5kaW5n
Qm94KSk7CisgICAgICAgICAgICAKKyAgICBpZiAoS0NhbnZhc0NsaXBwZXIgKmNsaXBwZXIgPSBn
ZXRDbGlwcGVyQnlJZChkb2N1bWVudCgpLCBzdHlsZSgpLT5zdmdTdHlsZSgpLT5jbGlwUGF0aCgp
Lm1pZCgxKSkpCisgICAgICAgIGNsaXBwZXItPmFwcGx5Q2xpcChib3VuZGluZ0JveCk7CiAKLSAg
ICBRU3RyaW5nIG1hc2tuYW1lID0gc3R5bGUoKS0+c3ZnU3R5bGUoKS0+bWFza0VsZW1lbnQoKS5t
aWQoMSk7Ci0gICAgS0NhbnZhc01hc2tlclF1YXJ0eiAqbWFza2VyID0gc3RhdGljX2Nhc3Q8S0Nh
bnZhc01hc2tlclF1YXJ0eiAqPihnZXRNYXNrZXJCeUlkKGRvY3VtZW50KCksIG1hc2tuYW1lKSk7
Ci0gICAgaWYgKG1hc2tlcikKLSAgICAgICAgbWFza2VyLT5hcHBseU1hc2soY2dDb250ZXh0LCBD
R1JlY3QoYm91bmRpbmdCb3gpKTsKKyAgICBpZiAoS0NhbnZhc01hc2tlciAqbWFza2VyID0gZ2V0
TWFza2VyQnlJZChkb2N1bWVudCgpLCBzdHlsZSgpLT5zdmdTdHlsZSgpLT5tYXNrRWxlbWVudCgp
Lm1pZCgxKSkpCisgICAgICAgIG1hc2tlci0+YXBwbHlNYXNrKGJvdW5kaW5nQm94KTsKIAogICAg
IEtDYW52YXNGaWx0ZXIgKmZpbHRlciA9IGdldEZpbHRlckJ5SWQoZG9jdW1lbnQoKSwgc3R5bGUo
KS0+c3ZnU3R5bGUoKS0+ZmlsdGVyKCkubWlkKDEpKTsKICAgICBpZiAoZmlsdGVyKQotICAgICAg
ICBmaWx0ZXItPnByZXBhcmVGaWx0ZXIoUVBhaW50ZXI6OnJlbmRlcmluZ0RldmljZSgpLCBib3Vu
ZGluZ0JveCk7CisgICAgICAgIGZpbHRlci0+cHJlcGFyZUZpbHRlcihib3VuZGluZ0JveCk7CiAg
ICAgCiAgICAga2h0bWw6OlJlbmRlckltYWdlOjpwYWludChwYWludEluZm8sIDAsIDApOwogICAg
IAogICAgIGlmIChmaWx0ZXIpCi0gICAgICAgIGZpbHRlci0+YXBwbHlGaWx0ZXIoUVBhaW50ZXI6
OnJlbmRlcmluZ0RldmljZSgpLCBib3VuZGluZ0JveCk7CisgICAgICAgIGZpbHRlci0+YXBwbHlG
aWx0ZXIoYm91bmRpbmdCb3gpOwogCiAgICAgcGFpbnRJbmZvLnAtPnJlc3RvcmUoKTsKIH0KSW5k
ZXg6IGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFzSXRlbVF1YXJ0ei5tbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc0l0ZW1RdWFydHoubW0JKHJldmlzaW9u
IDEyMDUzKQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNJdGVtUXVhcnR6Lm1tCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjAsNyArMTYwLDcgQEAgdm9pZCBEcmF3U3RhcnRBbmRNaWRNYXJr
ZXJzKHZvaWQgKmluZm8sIAogICAgIGRhdGEuZWxlbWVudEluZGV4Kys7CiB9CiAKLXZvaWQgS0Nh
bnZhc0l0ZW1RdWFydHo6OmRyYXdNYXJrZXJzSWZOZWVkZWQoY29uc3QgUVJlY3RGICZyZWN0LCBD
R1BhdGhSZWYgcGF0aCkgY29uc3QKK3ZvaWQgS0NhbnZhc0l0ZW1RdWFydHo6OmRyYXdNYXJrZXJz
SWZOZWVkZWQoY29uc3QgUVJlY3RGJiByZWN0LCBjb25zdCBLQ2FudmFzUGF0aCAqcGF0aCkgY29u
c3QKIHsKICAgICBLRE9NOjpEb2N1bWVudEltcGwgKmRvYyA9IGRvY3VtZW50KCk7CiAgICAgY29u
c3QgS1NWRzo6U1ZHUmVuZGVyU3R5bGUgKnN2Z1N0eWxlID0gc3R5bGUoKS0+c3ZnU3R5bGUoKTsK
QEAgLTE3Niw3ICsxNzYsOCBAQCB2b2lkIEtDYW52YXNJdGVtUXVhcnR6OjpkcmF3TWFya2Vyc0lm
TmVlCiAKICAgICBEcmF3TWFya2Vyc0RhdGEgZGF0YShzdGFydE1hcmtlciwgbWlkTWFya2VyLCBz
dHJva2VXaWR0aCk7CiAKLSAgICBDR1BhdGhBcHBseShwYXRoLCAmZGF0YSwgRHJhd1N0YXJ0QW5k
TWlkTWFya2Vycyk7CisgICAgQ0dQYXRoUmVmIGNnUGF0aCA9IHN0YXRpY19jYXN0PGNvbnN0IEtD
YW52YXNQYXRoUXVhcnR6Kj4ocGF0aCktPmNnUGF0aCgpOworICAgIENHUGF0aEFwcGx5KGNnUGF0
aCwgJmRhdGEsIERyYXdTdGFydEFuZE1pZE1hcmtlcnMpOwogCiAgICAgZGF0YS5wcmV2aW91c01h
cmtlckRhdGEubWFya2VyID0gZW5kTWFya2VyOwogICAgIGRhdGEucHJldmlvdXNNYXJrZXJEYXRh
LnR5cGUgPSBFbmQ7CkBAIC0xOTIsNzAgKzE5Myw2MSBAQCB2b2lkIEtDYW52YXNJdGVtUXVhcnR6
OjpwYWludChQYWludEluZm8gCiAgICAgaWYgKHBhaW50SW5mby5wLT5wYWludGluZ0Rpc2FibGVk
KCkgfHwgKHBhaW50SW5mby5waGFzZSAhPSBQYWludEFjdGlvbkZvcmVncm91bmQpIHx8IHN0eWxl
KCktPnZpc2liaWxpdHkoKSA9PSBraHRtbDo6SElEREVOKQogICAgICAgICByZXR1cm47CiAgICAg
Ci0gICAgS1JlbmRlcmluZ0RldmljZVF1YXJ0eiAqcXVhcnR6RGV2aWNlID0gc3RhdGljX2Nhc3Q8
S1JlbmRlcmluZ0RldmljZVF1YXJ0eiAqPihRUGFpbnRlcjo6cmVuZGVyaW5nRGV2aWNlKCkpOwot
ICAgIEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0ICpkZXZpY2VDb250ZXh0ID0gMDsKLSAgICBpZiAo
IXBhcmVudCgpLT5pc0tDYW52YXNDb250YWluZXIoKSkgeworICAgIEtSZW5kZXJpbmdEZXZpY2Ug
KnJlbmRlcmluZ0RldmljZSA9IFFQYWludGVyOjpyZW5kZXJpbmdEZXZpY2UoKTsKKyAgICBLUmVu
ZGVyaW5nRGV2aWNlQ29udGV4dCAqZGV2aWNlQ29udGV4dCA9IHJlbmRlcmluZ0RldmljZS0+Y3Vy
cmVudENvbnRleHQoKTsKKyAgICBib29sIHNob3VsZFBvcENvbnRleHQgPSBmYWxzZTsKKyAgICBp
ZiAoIWRldmljZUNvbnRleHQpIHsKICAgICAgICAgLy8gSSBvbmx5IG5lZWQgdG8gc2V0dXAgZm9y
IEtDYW52YXMgcmVuZGVyaW5nIGlmIGl0IGhhc24ndCBhbHJlYWR5IGJlZW4gZG9uZS4KICAgICAg
ICAgZGV2aWNlQ29udGV4dCA9IHBhaW50SW5mby5wLT5jcmVhdGVSZW5kZXJpbmdEZXZpY2VDb250
ZXh0KCk7Ci0gICAgICAgIHF1YXJ0ekRldmljZS0+cHVzaENvbnRleHQoZGV2aWNlQ29udGV4dCk7
Ci0gICAgfQotICAgIHBhaW50SW5mby5wLT5zYXZlKCk7Ci0gICAgQ0dDb250ZXh0UmVmIGNvbnRl
eHQgPSBxdWFydHpEZXZpY2UtPmN1cnJlbnRDR0NvbnRleHQoKTsKLQotICAgIENHUGF0aFJlZiBj
Z1BhdGggPSBzdGF0aWNfY2FzdDxLQ2FudmFzUGF0aFF1YXJ0eio+KHBhdGgoKSktPmNnUGF0aCgp
OwotICAgIEFTU0VSVChjZ1BhdGggIT0gMCk7CisgICAgICAgIHJlbmRlcmluZ0RldmljZS0+cHVz
aENvbnRleHQoZGV2aWNlQ29udGV4dCk7CisgICAgICAgIHNob3VsZFBvcENvbnRleHQgPSB0cnVl
OworICAgIH0gZWxzZQorICAgICAgICBwYWludEluZm8ucC0+c2F2ZSgpOwogCi0gICAgQ0dBZmZp
bmVUcmFuc2Zvcm0gdHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm0obG9jYWxUcmFuc2Zvcm0o
KSk7Ci0gICAgQ0dDb250ZXh0Q29uY2F0Q1RNKGNvbnRleHQsIHRyYW5zZm9ybSk7CisgICAgZGV2
aWNlQ29udGV4dC0+Y29uY2F0Q1RNKGxvY2FsVHJhbnNmb3JtKCkpOwogCiAgICAgLy8gc2V0dXAg
dG8gYXBwbHkgZmlsdGVycwogICAgIEtDYW52YXNGaWx0ZXIgKmZpbHRlciA9IGdldEZpbHRlckJ5
SWQoZG9jdW1lbnQoKSwgc3R5bGUoKS0+c3ZnU3R5bGUoKS0+ZmlsdGVyKCkubWlkKDEpKTsKICAg
ICBpZiAoZmlsdGVyKSB7Ci0gICAgICAgIGZpbHRlci0+cHJlcGFyZUZpbHRlcihxdWFydHpEZXZp
Y2UsIHJlbGF0aXZlQkJveCh0cnVlKSk7Ci0gICAgICAgIGNvbnRleHQgPSBxdWFydHpEZXZpY2Ut
PmN1cnJlbnRDR0NvbnRleHQoKTsKKyAgICAgICAgZmlsdGVyLT5wcmVwYXJlRmlsdGVyKHJlbGF0
aXZlQkJveCh0cnVlKSk7CisgICAgICAgIGRldmljZUNvbnRleHQgPSByZW5kZXJpbmdEZXZpY2Ut
PmN1cnJlbnRDb250ZXh0KCk7CiAgICAgfQogCi0gICAgUVN0cmluZyBjbGlwbmFtZSA9IHN0eWxl
KCktPnN2Z1N0eWxlKCktPmNsaXBQYXRoKCkubWlkKDEpOwotICAgIEtDYW52YXNDbGlwcGVyUXVh
cnR6ICpjbGlwcGVyID0gc3RhdGljX2Nhc3Q8S0NhbnZhc0NsaXBwZXJRdWFydHogKj4oZ2V0Q2xp
cHBlckJ5SWQoZG9jdW1lbnQoKSwgY2xpcG5hbWUpKTsKLSAgICBpZiAoY2xpcHBlcikKLSAgICAg
ICAgY2xpcHBlci0+YXBwbHlDbGlwKGNvbnRleHQsIENHUmVjdChyZWxhdGl2ZUJCb3godHJ1ZSkp
KTsKLQotICAgIFFTdHJpbmcgbWFza25hbWUgPSBzdHlsZSgpLT5zdmdTdHlsZSgpLT5tYXNrRWxl
bWVudCgpLm1pZCgxKTsKLSAgICBLQ2FudmFzTWFza2VyUXVhcnR6ICptYXNrZXIgPSBzdGF0aWNf
Y2FzdDxLQ2FudmFzTWFza2VyUXVhcnR6ICo+KGdldE1hc2tlckJ5SWQoZG9jdW1lbnQoKSwgbWFz
a25hbWUpKTsKLSAgICBpZiAobWFza2VyKQotICAgICAgICBtYXNrZXItPmFwcGx5TWFzayhjb250
ZXh0LCBDR1JlY3QocmVsYXRpdmVCQm94KHRydWUpKSk7CisgICAgaWYgKEtDYW52YXNDbGlwcGVy
ICpjbGlwcGVyID0gZ2V0Q2xpcHBlckJ5SWQoZG9jdW1lbnQoKSwgc3R5bGUoKS0+c3ZnU3R5bGUo
KS0+Y2xpcFBhdGgoKS5taWQoMSkpKQorICAgICAgICBjbGlwcGVyLT5hcHBseUNsaXAocmVsYXRp
dmVCQm94KHRydWUpKTsKIAotICAgIENHQ29udGV4dEJlZ2luUGF0aChjb250ZXh0KTsKKyAgICBp
ZiAoS0NhbnZhc01hc2tlciAqbWFza2VyID0gZ2V0TWFza2VyQnlJZChkb2N1bWVudCgpLCBzdHls
ZSgpLT5zdmdTdHlsZSgpLT5tYXNrRWxlbWVudCgpLm1pZCgxKSkpCisgICAgICAgIG1hc2tlci0+
YXBwbHlNYXNrKHJlbGF0aXZlQkJveCh0cnVlKSk7CiAKKyAgICBkZXZpY2VDb250ZXh0LT5jbGVh
clBhdGgoKTsKKyAgICAKICAgICBLQ2FudmFzQ29tbW9uQXJncyBhcmdzID0gY29tbW9uQXJncygp
OwogCiAgICAgS1JlbmRlcmluZ1BhaW50U2VydmVyICpmaWxsUGFpbnRTZXJ2ZXIgPSBjYW52YXNT
dHlsZSgpLT5maWxsUGFpbnRTZXJ2ZXIoY2FudmFzU3R5bGUoKS0+cmVuZGVyU3R5bGUoKSwgdGhp
cyk7CiAgICAgaWYgKGZpbGxQYWludFNlcnZlcikgewotICAgICAgICBDR0NvbnRleHRBZGRQYXRo
KGNvbnRleHQsIGNnUGF0aCk7CisgICAgICAgIGRldmljZUNvbnRleHQtPmFkZFBhdGgocGF0aCgp
KTsKICAgICAgICAgZmlsbFBhaW50U2VydmVyLT5zZXRBY3RpdmVDbGllbnQodGhpcyk7Ci0gICAg
ICAgIGZpbGxQYWludFNlcnZlci0+ZHJhdyhxdWFydHpEZXZpY2UtPmN1cnJlbnRDb250ZXh0KCks
IGFyZ3MsIEFQUExZX1RPX0ZJTEwpOworICAgICAgICBmaWxsUGFpbnRTZXJ2ZXItPmRyYXcoZGV2
aWNlQ29udGV4dCwgYXJncywgQVBQTFlfVE9fRklMTCk7CiAgICAgfQogICAgIEtSZW5kZXJpbmdQ
YWludFNlcnZlciAqc3Ryb2tlUGFpbnRTZXJ2ZXIgPSBjYW52YXNTdHlsZSgpLT5zdHJva2VQYWlu
dFNlcnZlcihjYW52YXNTdHlsZSgpLT5yZW5kZXJTdHlsZSgpLCB0aGlzKTsKICAgICBpZiAoc3Ry
b2tlUGFpbnRTZXJ2ZXIpIHsKLSAgICAgICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0LCBjZ1Bh
dGgpOyAvLyBwYXRoIGlzIGNsZWFyZWQgd2hlbiBmaWxsZWQuCisgICAgICAgIGRldmljZUNvbnRl
eHQtPmFkZFBhdGgocGF0aCgpKTsgLy8gcGF0aCBpcyBjbGVhcmVkIHdoZW4gZmlsbGVkLgogICAg
ICAgICBzdHJva2VQYWludFNlcnZlci0+c2V0QWN0aXZlQ2xpZW50KHRoaXMpOwotICAgICAgICBz
dHJva2VQYWludFNlcnZlci0+ZHJhdyhxdWFydHpEZXZpY2UtPmN1cnJlbnRDb250ZXh0KCksIGFy
Z3MsIEFQUExZX1RPX1NUUk9LRSk7CisgICAgICAgIHN0cm9rZVBhaW50U2VydmVyLT5kcmF3KGRl
dmljZUNvbnRleHQsIGFyZ3MsIEFQUExZX1RPX1NUUk9LRSk7CiAgICAgfQogCi0gICAgZHJhd01h
cmtlcnNJZk5lZWRlZChwYWludEluZm8uciwgY2dQYXRoKTsKKyAgICBkcmF3TWFya2Vyc0lmTmVl
ZGVkKHBhaW50SW5mby5yLCBwYXRoKCkpOwogCiAgICAgLy8gYWN0dWFsbHkgYXBwbHkgdGhlIGZp
bHRlcgotICAgIGlmIChmaWx0ZXIpIHsKLSAgICAgICAgZmlsdGVyLT5hcHBseUZpbHRlcihxdWFy
dHpEZXZpY2UsIHJlbGF0aXZlQkJveCh0cnVlKSk7Ci0gICAgICAgIGNvbnRleHQgPSBxdWFydHpE
ZXZpY2UtPmN1cnJlbnRDR0NvbnRleHQoKTsKLSAgICB9CisgICAgaWYgKGZpbHRlcikKKyAgICAg
ICAgZmlsdGVyLT5hcHBseUZpbHRlcihyZWxhdGl2ZUJCb3godHJ1ZSkpOwogCiAgICAgLy8gcmVz
dG9yZSBkcmF3aW5nIHN0YXRlCi0gICAgcGFpbnRJbmZvLnAtPnJlc3RvcmUoKTsKLSAgICBpZiAo
IXBhcmVudCgpLT5pc0tDYW52YXNDb250YWluZXIoKSkgewotICAgICAgICBxdWFydHpEZXZpY2Ut
PnBvcENvbnRleHQoKTsKKyAgICBpZiAoc2hvdWxkUG9wQ29udGV4dCkgeworICAgICAgICByZW5k
ZXJpbmdEZXZpY2UtPnBvcENvbnRleHQoKTsKICAgICAgICAgZGVsZXRlIGRldmljZUNvbnRleHQ7
Ci0gICAgfQorICAgIH0gZWxzZQorICAgICAgICBwYWludEluZm8ucC0+cmVzdG9yZSgpOwogfQog
CiAjcHJhZ21hIG1hcmsgLQpAQCAtMjg2LDEzICsyNzgsMTIgQEAgQ0dDb250ZXh0UmVmIGdldFNo
YXJlZENvbnRleHQoKQogICAgICAgICBDRlJlbGVhc2UoZW1wdHkpOwogCiAgICAgICAgIGZsb2F0
IGJsYWNrWzRdID0gezAsMCwwLDF9OwotICAgICAgICBDR0NvbnRleHRTZXRGaWxsQ29sb3Ioc2hh
cmVkQ29udGV4dCxibGFjayk7Ci0gICAgICAgIENHQ29udGV4dFNldFN0cm9rZUNvbG9yKHNoYXJl
ZENvbnRleHQsYmxhY2spOworICAgICAgICBDR0NvbnRleHRTZXRGaWxsQ29sb3Ioc2hhcmVkQ29u
dGV4dCwgYmxhY2spOworICAgICAgICBDR0NvbnRleHRTZXRTdHJva2VDb2xvcihzaGFyZWRDb250
ZXh0LCBibGFjayk7CiAgICAgfQogICAgIHJldHVybiBzaGFyZWRDb250ZXh0OwogfQogCi0KIFFS
ZWN0RiBLQ2FudmFzSXRlbVF1YXJ0ejo6YmJveEZvclBhdGgoYm9vbCBpbmNsdWRlU3Ryb2tlKSBj
b25zdAogewogICAgIENHUGF0aFJlZiBjZ1BhdGggPSBzdGF0aWNfY2FzdDxLQ2FudmFzUGF0aFF1
YXJ0eio+KHBhdGgoKSktPmNnUGF0aCgpOwpJbmRleDoga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tD
YW52YXNNYXNrZXJRdWFydHouaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHov
S0NhbnZhc01hc2tlclF1YXJ0ei5oCShyZXZpc2lvbiAxMjA1MykKKysrIGtjYW52YXMvZGV2aWNl
L3F1YXJ0ei9LQ2FudmFzTWFza2VyUXVhcnR6LmgJKHdvcmtpbmcgY29weSkKQEAgLTI4LDExICsy
OCw5IEBACiAjaW1wb3J0ICJLQ2FudmFzSW1hZ2UuaCIKICNpbXBvcnQgIktDYW52YXNSZXNvdXJj
ZXMuaCIKIAotdHlwZWRlZiBzdHJ1Y3QgQ0dDb250ZXh0ICpDR0NvbnRleHRSZWY7Ci0KIGNsYXNz
IEtDYW52YXNNYXNrZXJRdWFydHogOiBwdWJsaWMgS0NhbnZhc01hc2tlciB7CiBwdWJsaWM6CiAg
ICAgS0NhbnZhc01hc2tlclF1YXJ0eigpIHsgfQogICAgIAotICAgIHZvaWQgYXBwbHlNYXNrKENH
Q29udGV4dFJlZiBjb250ZXh0LCBDR1JlY3QgcmVsYXRpdmVCQm94KSBjb25zdDsKKyAgICB2aXJ0
dWFsIHZvaWQgYXBwbHlNYXNrKGNvbnN0IFFSZWN0RiYgYm91bmRpbmdCb3gpIGNvbnN0OwogfTsK
SW5kZXg6IGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVyaW5nRGV2aWNlUXVhcnR6Lm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVyaW5nRGV2aWNlUXVhcnR6
Lm1tCShyZXZpc2lvbiAxMjA1MykKKysrIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVyaW5n
RGV2aWNlUXVhcnR6Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC03OSw2ICs3OSwxNiBAQCBRUmVjdCBL
UmVuZGVyaW5nRGV2aWNlQ29udGV4dFF1YXJ0ejo6bWFwCiAgICAgcmV0dXJuIFFSZWN0KCk7CiB9
CiAKK3ZvaWQgS1JlbmRlcmluZ0RldmljZUNvbnRleHRRdWFydHo6OmNsZWFyUGF0aCgpCit7Cisg
ICAgQ0dDb250ZXh0QmVnaW5QYXRoKG1fY2dDb250ZXh0KTsKK30KKwordm9pZCBLUmVuZGVyaW5n
RGV2aWNlQ29udGV4dFF1YXJ0ejo6YWRkUGF0aChjb25zdCBLQ2FudmFzUGF0aCAqcGF0aCkKK3sK
KyAgICBDR0NvbnRleHRBZGRQYXRoKG1fY2dDb250ZXh0LCBzdGF0aWNfY2FzdDxjb25zdCBLQ2Fu
dmFzUGF0aFF1YXJ0eio+KHBhdGgpLT5jZ1BhdGgoKSk7Cit9CisKIE5TR3JhcGhpY3NDb250ZXh0
ICpLUmVuZGVyaW5nRGV2aWNlQ29udGV4dFF1YXJ0ejo6bnNHcmFwaGljc0NvbnRleHQoKQogewog
ICAgIGlmICghbV9uc0dyYXBoaWNzQ29udGV4dCAmJiBtX2NnQ29udGV4dCkKQEAgLTExNSw3ICsx
MjUsNyBAQCB2b2lkIEtSZW5kZXJpbmdEZXZpY2VRdWFydHo6OnNldEhhcmR3YXJlCiAKIEtSZW5k
ZXJpbmdEZXZpY2VDb250ZXh0UXVhcnR6ICpLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpxdWFydHpD
b250ZXh0KCkgY29uc3QKIHsKLQlyZXR1cm4gc3RhdGljX2Nhc3Q8S1JlbmRlcmluZ0RldmljZUNv
bnRleHRRdWFydHogKj4oY3VycmVudENvbnRleHQoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0UXVhcnR6ICo+KGN1cnJlbnRDb250ZXh0KCkpOwogfQog
CiBDR0NvbnRleHRSZWYgS1JlbmRlcmluZ0RldmljZVF1YXJ0ejo6Y3VycmVudENHQ29udGV4dCgp
IGNvbnN0CkluZGV4OiBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc0ZpbHRlclF1YXJ0ei5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFzRmlsdGVyUXVhcnR6
LmgJKHJldmlzaW9uIDEyMDUzKQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNGaWx0
ZXJRdWFydHouaAkod29ya2luZyBjb3B5KQpAQCAtNDEsOCArNDEsOCBAQCBwdWJsaWM6CiAgICAg
S0NhbnZhc0ZpbHRlclF1YXJ0eigpOwogICAgIHZpcnR1YWwgfktDYW52YXNGaWx0ZXJRdWFydHoo
KTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZUZpbHRlcihLUmVuZGVyaW5nRGV2aWNl
ICpkZXZpY2UsIGNvbnN0IFFSZWN0RiAmYmJveCk7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGx5Rmls
dGVyKEtSZW5kZXJpbmdEZXZpY2UgKmRldmljZSwgY29uc3QgUVJlY3RGICZiYm94KTsKKyAgICB2
aXJ0dWFsIHZvaWQgcHJlcGFyZUZpbHRlcihjb25zdCBRUmVjdEYmIGJib3gpOworICAgIHZpcnR1
YWwgdm9pZCBhcHBseUZpbHRlcihjb25zdCBRUmVjdEYmIGJib3gpOwogICAgIAogICAgIENJSW1h
Z2UgKmltYWdlRm9yTmFtZShjb25zdCBRU3RyaW5nICZuYW1lKSBjb25zdDsKICAgICB2b2lkIHNl
dEltYWdlRm9yTmFtZShDSUltYWdlICppbWFnZSwgY29uc3QgUVN0cmluZyAmbmFtZSk7CkluZGV4
OiBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291cmNlc1F1YXJ0ei5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291cmNlc1F1YXJ0ei5tbQko
cmV2aXNpb24gMTIwNTMpCisrKyBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291cmNl
c1F1YXJ0ei5tbQkod29ya2luZyBjb3B5KQpAQCAtODksNjggKzg5LDYyIEBAIHZvaWQgS0NhbnZh
c0NvbnRhaW5lclF1YXJ0ejo6cGFpbnQoUGFpbnQKICAgICAgICAgcmV0dXJuOyAvLyBTcGVjOiBn
cm91cHMgdy9vIGNoaWxkcmVuIHN0aWxsIG1heSByZW5kZXIgZmlsdGVyIGNvbnRlbnQuCiAgICAg
CiAgICAgS1JlbmRlcmluZ0RldmljZVF1YXJ0eiAqcXVhcnR6RGV2aWNlID0gc3RhdGljX2Nhc3Q8
S1JlbmRlcmluZ0RldmljZVF1YXJ0eiAqPihRUGFpbnRlcjo6cmVuZGVyaW5nRGV2aWNlKCkpOwot
ICAgIEtSZW5kZXJpbmdEZXZpY2VDb250ZXh0ICpkZXZpY2VDb250ZXh0ID0gMDsKLSAgICBpZiAo
IXBhcmVudCgpLT5pc0tDYW52YXNDb250YWluZXIoKSkgeworICAgIEtSZW5kZXJpbmdEZXZpY2VD
b250ZXh0ICpkZXZpY2VDb250ZXh0ID0gcXVhcnR6RGV2aWNlLT5jdXJyZW50Q29udGV4dCgpOwor
ICAgIGJvb2wgc2hvdWxkUG9wQ29udGV4dCA9IGZhbHNlOworICAgIGlmICghZGV2aWNlQ29udGV4
dCkgewogICAgICAgICAvLyBJIG9ubHkgbmVlZCB0byBzZXR1cCBmb3IgS0NhbnZhcyByZW5kZXJp
bmcgaWYgaXQgaGFzbid0IGFscmVhZHkgYmVlbiBkb25lLgogICAgICAgICBkZXZpY2VDb250ZXh0
ID0gcGFpbnRJbmZvLnAtPmNyZWF0ZVJlbmRlcmluZ0RldmljZUNvbnRleHQoKTsKICAgICAgICAg
cXVhcnR6RGV2aWNlLT5wdXNoQ29udGV4dChkZXZpY2VDb250ZXh0KTsKLSAgICB9Ci0gICAgcGFp
bnRJbmZvLnAtPnNhdmUoKTsKLSAgICAKLSAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHBhaW50
SW5mby5wLT5jdXJyZW50Q29udGV4dCgpOworICAgICAgICBzaG91bGRQb3BDb250ZXh0ID0gdHJ1
ZTsKKyAgICB9IGVsc2UKKyAgICAgICAgcGFpbnRJbmZvLnAtPnNhdmUoKTsKICAgICAKICAgICBp
ZiAocGFyZW50WCAhPSAwIHx8IHBhcmVudFkgIT0gMCkgewogICAgICAgICAvLyBUcmFuc2xhdGUg
ZnJvbSBwYXJlbnQgb2Zmc2V0cyAoa2h0bWwpIHRvIGEgcmVsYXRpdmUgdHJhbnNmb3JtIChrc3Zn
Mi9rY2FudmFzKQotICAgICAgICBDR0NvbnRleHRDb25jYXRDVE0oY29udGV4dCwgQ0dBZmZpbmVU
cmFuc2Zvcm1NYWtlVHJhbnNsYXRpb24ocGFyZW50WCwgcGFyZW50WSkpOworICAgICAgICBkZXZp
Y2VDb250ZXh0LT5jb25jYXRDVE0oUU1hdHJpeCgpLnRyYW5zbGF0ZShwYXJlbnRYLCBwYXJlbnRZ
KSk7CiAgICAgICAgIHBhcmVudFggPSBwYXJlbnRZID0gMDsKICAgICB9CiAgICAgCiAgICAgaWYg
KHZpZXdwb3J0KCkuaXNWYWxpZCgpKQotICAgICAgICBDR0NvbnRleHRDb25jYXRDVE0oY29udGV4
dCwgQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlVHJhbnNsYXRpb24odmlld3BvcnQoKS54KCksIHZpZXdw
b3J0KCkueSgpKSk7CisgICAgICAgIGRldmljZUNvbnRleHQtPmNvbmNhdENUTShRTWF0cml4KCku
dHJhbnNsYXRlKHZpZXdwb3J0KCkueCgpLCB2aWV3cG9ydCgpLnkoKSkpOwogICAgIAogICAgIGlm
ICghbG9jYWxUcmFuc2Zvcm0oKS5pc0lkZW50aXR5KCkpCi0gICAgICAgIENHQ29udGV4dENvbmNh
dENUTShjb250ZXh0LCBDR0FmZmluZVRyYW5zZm9ybShsb2NhbFRyYW5zZm9ybSgpKSk7CisgICAg
ICAgIGRldmljZUNvbnRleHQtPmNvbmNhdENUTShsb2NhbFRyYW5zZm9ybSgpKTsKICAgICAKLSAg
ICBRUmVjdCBkaXJ0eVJlY3QgPSBwYWludEluZm8ucjsKLSAgICAKLSAgICBRU3RyaW5nIGNsaXBu
YW1lID0gc3R5bGUoKS0+c3ZnU3R5bGUoKS0+Y2xpcFBhdGgoKS5taWQoMSk7Ci0gICAgS0NhbnZh
c0NsaXBwZXJRdWFydHogKmNsaXBwZXIgPSBzdGF0aWNfY2FzdDxLQ2FudmFzQ2xpcHBlclF1YXJ0
eiAqPihnZXRDbGlwcGVyQnlJZChkb2N1bWVudCgpLCBjbGlwbmFtZSkpOwotICAgIGlmIChjbGlw
cGVyKQotICAgICAgICBjbGlwcGVyLT5hcHBseUNsaXAoY29udGV4dCwgQ0dSZWN0KHJlbGF0aXZl
QkJveCh0cnVlKSkpOwotCi0gICAgUVN0cmluZyBtYXNrbmFtZSA9IHN0eWxlKCktPnN2Z1N0eWxl
KCktPm1hc2tFbGVtZW50KCkubWlkKDEpOwotICAgIEtDYW52YXNNYXNrZXJRdWFydHogKm1hc2tl
ciA9IHN0YXRpY19jYXN0PEtDYW52YXNNYXNrZXJRdWFydHogKj4oZ2V0TWFza2VyQnlJZChkb2N1
bWVudCgpLCBtYXNrbmFtZSkpOwotICAgIGlmIChtYXNrZXIpCi0gICAgICAgIG1hc2tlci0+YXBw
bHlNYXNrKGNvbnRleHQsIENHUmVjdChyZWxhdGl2ZUJCb3godHJ1ZSkpKTsKKyAgICBpZiAoS0Nh
bnZhc0NsaXBwZXIgKmNsaXBwZXIgPSBnZXRDbGlwcGVyQnlJZChkb2N1bWVudCgpLCBzdHlsZSgp
LT5zdmdTdHlsZSgpLT5jbGlwUGF0aCgpLm1pZCgxKSkpCisgICAgICAgIGNsaXBwZXItPmFwcGx5
Q2xpcChyZWxhdGl2ZUJCb3godHJ1ZSkpOworCisgICAgaWYgKEtDYW52YXNNYXNrZXIgKm1hc2tl
ciA9IGdldE1hc2tlckJ5SWQoZG9jdW1lbnQoKSwgc3R5bGUoKS0+c3ZnU3R5bGUoKS0+bWFza0Vs
ZW1lbnQoKS5taWQoMSkpKQorICAgICAgICBtYXNrZXItPmFwcGx5TWFzayhyZWxhdGl2ZUJCb3go
dHJ1ZSkpOwogCiAgICAgZmxvYXQgb3BhY2l0eSA9IHN0eWxlKCktPm9wYWNpdHkoKTsKICAgICBp
ZiAob3BhY2l0eSA8IDEuMGYpCiAgICAgICAgIHBhaW50SW5mby5wLT5iZWdpblRyYW5zcGFyZW5j
eUxheWVyKG9wYWNpdHkpOwogCiAgICAgaWYgKGZpbHRlcikKLSAgICAgICAgZmlsdGVyLT5wcmVw
YXJlRmlsdGVyKHF1YXJ0ekRldmljZSwgcmVsYXRpdmVCQm94KHRydWUpKTsKKyAgICAgICAgZmls
dGVyLT5wcmVwYXJlRmlsdGVyKHJlbGF0aXZlQkJveCh0cnVlKSk7CiAgICAgCiAgICAgaWYgKCF2
aWV3Qm94KCkuaXNOdWxsKCkpIHsKICAgICAgICAgUVJlY3RGIHZpZXdwb3J0UmVjdCA9IHZpZXdw
b3J0KCk7CiAgICAgICAgIGlmICghcGFyZW50KCktPmlzS0NhbnZhc0NvbnRhaW5lcigpKQogICAg
ICAgICAgICAgdmlld3BvcnRSZWN0ID0gUVJlY3RGKHZpZXdwb3J0KCkueCgpLCB2aWV3cG9ydCgp
LnkoKSwgd2lkdGgoKSwgaGVpZ2h0KCkpOwotICAgICAgICBDR0NvbnRleHRDb25jYXRDVE0ocGFp
bnRJbmZvLnAtPmN1cnJlbnRDb250ZXh0KCksIENHQWZmaW5lVHJhbnNmb3JtKGdldEFzcGVjdFJh
dGlvKHZpZXdCb3goKSwgdmlld3BvcnRSZWN0KS5xbWF0cml4KCkpKTsKKyAgICAgICAgZGV2aWNl
Q29udGV4dC0+Y29uY2F0Q1RNKGdldEFzcGVjdFJhdGlvKHZpZXdCb3goKSwgdmlld3BvcnRSZWN0
KSk7CiAgICAgfQogICAgIAogICAgIFJlbmRlckNvbnRhaW5lcjo6cGFpbnQocGFpbnRJbmZvLCAw
LCAwKTsKICAgICAKICAgICBpZiAoZmlsdGVyKQotICAgICAgICBmaWx0ZXItPmFwcGx5RmlsdGVy
KHF1YXJ0ekRldmljZSwgcmVsYXRpdmVCQm94KHRydWUpKTsKKyAgICAgICAgZmlsdGVyLT5hcHBs
eUZpbHRlcihyZWxhdGl2ZUJCb3godHJ1ZSkpOwogICAgIAogICAgIGlmIChvcGFjaXR5IDwgMS4w
ZikKICAgICAgICAgcGFpbnRJbmZvLnAtPmVuZFRyYW5zcGFyZW5jeUxheWVyKCk7CiAgICAgCiAg
ICAgLy8gcmVzdG9yZSBkcmF3aW5nIHN0YXRlCi0gICAgcGFpbnRJbmZvLnAtPnJlc3RvcmUoKTsK
LSAgICBpZiAoIXBhcmVudCgpLT5pc0tDYW52YXNDb250YWluZXIoKSkgeworICAgIGlmIChzaG91
bGRQb3BDb250ZXh0KSB7CiAgICAgICAgIHF1YXJ0ekRldmljZS0+cG9wQ29udGV4dCgpOwogICAg
ICAgICBkZWxldGUgZGV2aWNlQ29udGV4dDsKLSAgICB9CisgICAgfSBlbHNlCisgICAgICAgIHBh
aW50SW5mby5wLT5yZXN0b3JlKCk7CiB9CiAKIHZvaWQgS0NhbnZhc0NvbnRhaW5lclF1YXJ0ejo6
c2V0Vmlld3BvcnQoY29uc3QgUVJlY3RGJiB2aWV3cG9ydCkKQEAgLTE5NSwxNyArMTg5LDE5IEBA
IFFNYXRyaXggS0NhbnZhc0NvbnRhaW5lclF1YXJ0ejo6YWJzb2x1dGUKICAgICByZXR1cm4gdHJh
bnNmb3JtOwogfQogCi12b2lkIEtDYW52YXNDbGlwcGVyUXVhcnR6OjphcHBseUNsaXAoQ0dDb250
ZXh0UmVmIGNvbnRleHQsIENHUmVjdCByZWxhdGl2ZUJCb3gpIGNvbnN0Cit2b2lkIEtDYW52YXND
bGlwcGVyUXVhcnR6OjphcHBseUNsaXAoY29uc3QgUVJlY3RGJiBib3VuZGluZ0JveCkgY29uc3QK
IHsKKyAgICBLUmVuZGVyaW5nRGV2aWNlQ29udGV4dCAqY29udGV4dCA9IFFQYWludGVyOjpyZW5k
ZXJpbmdEZXZpY2UoKS0+Y3VycmVudENvbnRleHQoKTsKKyAgICBDR0NvbnRleHRSZWYgY2dDb250
ZXh0ID0gc3RhdGljX2Nhc3Q8S1JlbmRlcmluZ0RldmljZUNvbnRleHRRdWFydHoqPihjb250ZXh0
KS0+Y2dDb250ZXh0KCk7CiAgICAgaWYgKG1fY2xpcERhdGEuY291bnQoKSA8IDEpCiAgICAgICAg
IHJldHVybjsKIAogICAgIEJPT0wgaGV0ZXJvZ2Vub3VzQ2xpcFJ1bGVzID0gTk87CiAgICAgS0NX
aW5kUnVsZSBjbGlwUnVsZSA9IG1fY2xpcERhdGFbMF0ud2luZFJ1bGU7CiAKLSAgICBDR0NvbnRl
eHRCZWdpblBhdGgoY29udGV4dCk7CisgICAgY29udGV4dC0+Y2xlYXJQYXRoKCk7CiAKLSAgICBD
R0FmZmluZVRyYW5zZm9ybSBiYm94VHJhbnNmb3JtID0gQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlTWFw
QmV0d2VlblJlY3RzKENHUmVjdE1ha2UoMCwwLDEsMSksIHJlbGF0aXZlQkJveCk7IC8vIGNvdWxk
IGJlIGRvbmUgbGF6aWx5LgorICAgIENHQWZmaW5lVHJhbnNmb3JtIGJib3hUcmFuc2Zvcm0gPSBD
R0FmZmluZVRyYW5zZm9ybU1ha2VNYXBCZXR3ZWVuUmVjdHMoQ0dSZWN0TWFrZSgwLDAsMSwxKSwg
Q0dSZWN0KGJvdW5kaW5nQm94KSk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGludCB4ID0gMDsgeCA8
IG1fY2xpcERhdGEuY291bnQoKTsgeCsrKSB7CiAgICAgICAgIEtDQ2xpcERhdGEgZGF0YSA9IG1f
Y2xpcERhdGFbeF07CkBAIC0yMTgsMTAgKzIxNCwxMCBAQCB2b2lkIEtDYW52YXNDbGlwcGVyUXVh
cnR6OjphcHBseUNsaXAoQ0dDCiAgICAgICAgIGlmIChkYXRhLmJib3hVbml0cykgewogICAgICAg
ICAgICAgQ0dNdXRhYmxlUGF0aFJlZiB0cmFuc2Zvcm1lZFBhdGggPSBDR1BhdGhDcmVhdGVNdXRh
YmxlKCk7CiAgICAgICAgICAgICBDR1BhdGhBZGRQYXRoKHRyYW5zZm9ybWVkUGF0aCwgJmJib3hU
cmFuc2Zvcm0sIGNsaXBQYXRoKTsKLSAgICAgICAgICAgIENHQ29udGV4dEFkZFBhdGgoY29udGV4
dCwgdHJhbnNmb3JtZWRQYXRoKTsKKyAgICAgICAgICAgIENHQ29udGV4dEFkZFBhdGgoY2dDb250
ZXh0LCB0cmFuc2Zvcm1lZFBhdGgpOwogICAgICAgICAgICAgQ0dQYXRoUmVsZWFzZSh0cmFuc2Zv
cm1lZFBhdGgpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIENHQ29udGV4dEFkZFBhdGgo
Y29udGV4dCwgY2xpcFBhdGgpOworICAgICAgICAgICAgQ0dDb250ZXh0QWRkUGF0aChjZ0NvbnRl
eHQsIGNsaXBQYXRoKTsKICAgICB9CiAKICAgICBpZiAobV9jbGlwRGF0YS5jb3VudCgpKSB7CkBA
IC0yMjksMzAgKzIyNSwyOSBAQCB2b2lkIEtDYW52YXNDbGlwcGVyUXVhcnR6OjphcHBseUNsaXAo
Q0dDCiAgICAgICAgIC8vIFdlIGRvbid0IGN1cnJlbnRseSBhbGxvdyBmb3IgaGV0ZXJvZ2Vub3Vz
IGNsaXAgcnVsZXMuCiAgICAgICAgIC8vIHdlIHdvdWxkIGhhdmUgdG8gZGV0ZWN0IHN1Y2gsIGRy
YXcgdG8gYSBtYXNrLCBhbmQgdGhlbiBjbGlwCiAgICAgICAgIC8vIHRvIHRoYXQgbWFzayAgICAg
ICAgICAgICAgICAKLSAgICAgICAgaWYgKCFDR0NvbnRleHRJc1BhdGhFbXB0eShjb250ZXh0KSkg
eworICAgICAgICBpZiAoIUNHQ29udGV4dElzUGF0aEVtcHR5KGNnQ29udGV4dCkpIHsKICAgICAg
ICAgICAgIGlmIChjbGlwUnVsZSA9PSBSVUxFX0VWRU5PREQpCi0gICAgICAgICAgICAgICAgQ0dD
b250ZXh0RU9DbGlwKGNvbnRleHQpOworICAgICAgICAgICAgICAgIENHQ29udGV4dEVPQ2xpcChj
Z0NvbnRleHQpOwogICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIENHQ29udGV4dENs
aXAoY29udGV4dCk7CisgICAgICAgICAgICAgICAgQ0dDb250ZXh0Q2xpcChjZ0NvbnRleHQpOwog
ICAgICAgICB9CiAgICAgfQogfQogCiBLQ2FudmFzSW1hZ2VRdWFydHo6On5LQ2FudmFzSW1hZ2VR
dWFydHooKQogewotCUNHTGF5ZXJSZWxlYXNlKG1fY2dMYXllcik7CisgICAgQ0dMYXllclJlbGVh
c2UobV9jZ0xheWVyKTsKIH0KIAogQ0dMYXllclJlZiBLQ2FudmFzSW1hZ2VRdWFydHo6OmNnTGF5
ZXIoKQogewotCXJldHVybiBtX2NnTGF5ZXI7CisgICAgcmV0dXJuIG1fY2dMYXllcjsKIH0KIAog
dm9pZCBLQ2FudmFzSW1hZ2VRdWFydHo6OnNldENHTGF5ZXIoQ0dMYXllclJlZiBsYXllcikKIHsK
LQlpZiAobV9jZ0xheWVyICE9IGxheWVyKSB7Ci0JCUNHTGF5ZXJSZWxlYXNlKG1fY2dMYXllcik7
Ci0JCW1fY2dMYXllciA9IENHTGF5ZXJSZXRhaW4obGF5ZXIpOwotCX0KKyAgICBpZiAobV9jZ0xh
eWVyICE9IGxheWVyKSB7CisgICAgICAgIENHTGF5ZXJSZWxlYXNlKG1fY2dMYXllcik7CisgICAg
ICAgIG1fY2dMYXllciA9IENHTGF5ZXJSZXRhaW4obGF5ZXIpOworICAgIH0KIH0KLQpJbmRleDog
a2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNJdGVtUXVhcnR6LmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
a2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNJdGVtUXVhcnR6LmgJKHJldmlzaW9uIDEyMDUz
KQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNJdGVtUXVhcnR6LmgJKHdvcmtpbmcg
Y29weSkKQEAgLTQyLDUgKzQyLDUgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQ
b2ludChOb2RlSW5mbyYgaW5mbywgaW50IF94LCBpbnQgX3ksIGludCBfdHgsIGludCBfdHksCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgSGl0VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKTsK
IHByaXZhdGU6Ci0gICAgdm9pZCBkcmF3TWFya2Vyc0lmTmVlZGVkKGNvbnN0IFFSZWN0RiAmcmVj
dCwgQ0dQYXRoUmVmIHBhdGgpIGNvbnN0OworICAgIHZvaWQgZHJhd01hcmtlcnNJZk5lZWRlZChj
b25zdCBRUmVjdEYgJnJlY3QsIGNvbnN0IEtDYW52YXNQYXRoICpwYXRoKSBjb25zdDsKIH07Cklu
ZGV4OiBrY2FudmFzL2RldmljZS9xdWFydHovS1JlbmRlcmluZ0RldmljZVF1YXJ0ei5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LUmVuZGVyaW5nRGV2aWNlUXVhcnR6LmgJ
KHJldmlzaW9uIDEyMDUzKQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tSZW5kZXJpbmdEZXZp
Y2VRdWFydHouaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsOSBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBRUmVjdCBtYXBGcm9tVmlzdWFsKGNvbnN0IFFSZWN0ICZyZWN0KTsKICAgICB2aXJ0
dWFsIFFSZWN0IG1hcFRvVmlzdWFsKGNvbnN0IFFSZWN0ICZyZWN0KTsKICAgICAKKyAgICB2aXJ0
dWFsIHZvaWQgY2xlYXJQYXRoKCk7CisgICAgdmlydHVhbCB2b2lkIGFkZFBhdGgoY29uc3QgS0Nh
bnZhc1BhdGgqKTsKKyAgICAKICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0KCkgY29uc3QgeyBy
ZXR1cm4gbV9jZ0NvbnRleHQ7IH07CiAgICAgTlNHcmFwaGljc0NvbnRleHQgKm5zR3JhcGhpY3ND
b250ZXh0KCk7CiAgICAgCkluZGV4OiBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc01hc2tl
clF1YXJ0ei5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc01h
c2tlclF1YXJ0ei5tbQkocmV2aXNpb24gMTIwNTMpCisrKyBrY2FudmFzL2RldmljZS9xdWFydHov
S0NhbnZhc01hc2tlclF1YXJ0ei5tbQkod29ya2luZyBjb3B5KQpAQCAtODQsNyArODQsNyBAQCBz
dGF0aWMgQ0lJbWFnZSAqdHJhbnNmb3JtSW1hZ2VJbnRvR3JheXNjCiAgICAgcmV0dXJuIFttdWx0
aXBsaWVkR3JheXNjYWxlIHZhbHVlRm9yS2V5OkAib3V0cHV0SW1hZ2UiXTsKIH0KIAotdm9pZCBL
Q2FudmFzTWFza2VyUXVhcnR6OjphcHBseU1hc2soQ0dDb250ZXh0UmVmIGNvbnRleHQsIENHUmVj
dCByZWxhdGl2ZUJCb3gpIGNvbnN0Cit2b2lkIEtDYW52YXNNYXNrZXJRdWFydHo6OmFwcGx5TWFz
ayhjb25zdCBRUmVjdEYmIGJvdW5kaW5nQm94KSBjb25zdAogewogICAgIGlmICghbV9tYXNrKQog
ICAgICAgICByZXR1cm47CkBAIC0xMDIsNyArMTAyLDggQEAgdm9pZCBLQ2FudmFzTWFza2VyUXVh
cnR6OjphcHBseU1hc2soQ0dDbwogICAgIFtjaUdyYXlzY2FsZUNvbnRleHQgZHJhd0ltYWdlOmdy
YXlzY2FsZU1hc2sgYXRQb2ludDpDR1BvaW50WmVybyBmcm9tUmVjdDpDR1JlY3RNYWtlKDAsIDAs
IHdpZHRoLCBoZWlnaHQpXTsKIAogICAgIENHSW1hZ2VSZWYgZ3JheXNjYWxlSW1hZ2UgPSBDR0Jp
dG1hcENvbnRleHRDcmVhdGVJbWFnZShncmF5c2NhbGVDb250ZXh0KTsKLSAgICBDR0NvbnRleHRD
bGlwVG9NYXNrKGNvbnRleHQsIENHUmVjdE1ha2UoMCwgMCwgd2lkdGgsIGhlaWdodCksIGdyYXlz
Y2FsZUltYWdlKTsKKyAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gc3RhdGljX2Nhc3Q8S1Jl
bmRlcmluZ0RldmljZVF1YXJ0eio+KFFQYWludGVyOjpyZW5kZXJpbmdEZXZpY2UoKSktPmN1cnJl
bnRDR0NvbnRleHQoKTsKKyAgICBDR0NvbnRleHRDbGlwVG9NYXNrKGNnQ29udGV4dCwgQ0dSZWN0
TWFrZSgwLCAwLCB3aWR0aCwgaGVpZ2h0KSwgZ3JheXNjYWxlSW1hZ2UpOwogICAgIAogICAgIENH
SW1hZ2VSZWxlYXNlKGdyYXlzY2FsZUltYWdlKTsKICAgICBDR0NvbnRleHRSZWxlYXNlKGdyYXlz
Y2FsZUNvbnRleHQpOwpJbmRleDoga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNGaWx0ZXJR
dWFydHoubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0ga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNGaWx0
ZXJRdWFydHoubW0JKHJldmlzaW9uIDEyMDUzKQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tD
YW52YXNGaWx0ZXJRdWFydHoubW0JKHdvcmtpbmcgY29weSkKQEAgLTc1LDcgKzc1LDcgQEAgS0Nh
bnZhc0ZpbHRlclF1YXJ0ejo6fktDYW52YXNGaWx0ZXJRdWFydAogICAgIFttX2ltYWdlc0J5TmFt
ZSByZWxlYXNlXTsKIH0KIAotdm9pZCBLQ2FudmFzRmlsdGVyUXVhcnR6OjpwcmVwYXJlRmlsdGVy
KEtSZW5kZXJpbmdEZXZpY2UgKmRldmljZSwgY29uc3QgUVJlY3RGICZiYm94KQordm9pZCBLQ2Fu
dmFzRmlsdGVyUXVhcnR6OjpwcmVwYXJlRmlsdGVyKGNvbnN0IFFSZWN0RiAmYmJveCkKIHsKICAg
ICBpZiAoIWJib3guaXNWYWxpZCgpIHx8ICFLUmVuZGVyaW5nRGV2aWNlUXVhcnR6OjpmaWx0ZXJz
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CkBAIC04Myw4ICs4Myw3IEBAIHZvaWQgS0NhbnZh
c0ZpbHRlclF1YXJ0ejo6cHJlcGFyZUZpbHRlcigKICAgICBpZiAobV9lZmZlY3RzLmlzRW1wdHko
KSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIEtSZW5kZXJpbmdEZXZpY2VRdWFydHogKnF1
YXJ0ekRldmljZSA9IHN0YXRpY19jYXN0PEtSZW5kZXJpbmdEZXZpY2VRdWFydHogKj4oZGV2aWNl
KTsKLSAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0gcXVhcnR6RGV2aWNlLT5jdXJyZW50Q0dD
b250ZXh0KCk7CisgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IHN0YXRpY19jYXN0PEtSZW5k
ZXJpbmdEZXZpY2VRdWFydHoqPihRUGFpbnRlcjo6cmVuZGVyaW5nRGV2aWNlKCkpLT5jdXJyZW50
Q0dDb250ZXh0KCk7CiAgICAgCiAgICAgLy8gZ2V0IGEgQ0lDb250ZXh0LCBhbmQgQ0dMYXllciBm
b3IgZHJhd2luZyBpbi4KICAgICBib29sIHVzZVNvZnR3YXJlID0gISBLUmVuZGVyaW5nRGV2aWNl
UXVhcnR6OjpoYXJkd2FyZVJlbmRlcmluZ0VuYWJsZWQoKTsKQEAgLTk2LDE5ICs5NSwxOSBAQCB2
b2lkIEtDYW52YXNGaWx0ZXJRdWFydHo6OnByZXBhcmVGaWx0ZXIoCiAgICAgbV9maWx0ZXJDSUNv
bnRleHQgPSBbW0NJQ29udGV4dCBjb250ZXh0V2l0aENHQ29udGV4dDpjZ0NvbnRleHQgb3B0aW9u
czpjb250ZXh0T3B0aW9uc10gcmV0YWluXTsKICAgICBtX2ZpbHRlckNHTGF5ZXIgPSBbbV9maWx0
ZXJDSUNvbnRleHQgY3JlYXRlQ0dMYXllcldpdGhTaXplOkNHUmVjdChiYm94KS5zaXplIGluZm86
TlVMTF07CiAgICAgCi0gICAgQ0dDb250ZXh0ICpmaWx0ZXJDR0NvbnRleHQgPSBDR0xheWVyR2V0
Q29udGV4dChtX2ZpbHRlckNHTGF5ZXIpOwotICAgIGRldmljZS0+cHVzaENvbnRleHQobmV3IEtS
ZW5kZXJpbmdEZXZpY2VDb250ZXh0UXVhcnR6KGZpbHRlckNHQ29udGV4dCkpOworICAgIEtSZW5k
ZXJpbmdEZXZpY2VDb250ZXh0ICpmaWx0ZXJDb250ZXh0ID0gbmV3IEtSZW5kZXJpbmdEZXZpY2VD
b250ZXh0UXVhcnR6KENHTGF5ZXJHZXRDb250ZXh0KG1fZmlsdGVyQ0dMYXllcikpOworICAgIFFQ
YWludGVyOjpyZW5kZXJpbmdEZXZpY2UoKS0+cHVzaENvbnRleHQoZmlsdGVyQ29udGV4dCk7CiAg
ICAgCi0gICAgQ0dDb250ZXh0Q29uY2F0Q1RNKGZpbHRlckNHQ29udGV4dCwgQ0dBZmZpbmVUcmFu
c2Zvcm1NYWtlVHJhbnNsYXRpb24oLTEuMGYgKiBiYm94LngoKSwgLTEuMGYgKiBiYm94LnkoKSkp
OworICAgIGZpbHRlckNvbnRleHQtPmNvbmNhdENUTShRTWF0cml4KCkudHJhbnNsYXRlKC0xLjBm
ICogYmJveC54KCksIC0xLjBmICogYmJveC55KCkpKTsKIH0KIAotdm9pZCBLQ2FudmFzRmlsdGVy
UXVhcnR6OjphcHBseUZpbHRlcihLUmVuZGVyaW5nRGV2aWNlICpkZXZpY2UsIGNvbnN0IFFSZWN0
RiAmYmJveCkKK3ZvaWQgS0NhbnZhc0ZpbHRlclF1YXJ0ejo6YXBwbHlGaWx0ZXIoY29uc3QgUVJl
Y3RGICZiYm94KQogewogICAgIGlmICghYmJveC5pc1ZhbGlkKCkgfHwgIUtSZW5kZXJpbmdEZXZp
Y2VRdWFydHo6OmZpbHRlcnNFbmFibGVkKCkgfHwgbV9lZmZlY3RzLmlzRW1wdHkoKSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgLy8gcmVzdG9yZSB0aGUgcHJldmlvdXMgY29udGV4dCwgZGVsZXRl
IHRoZSBmaWx0ZXIgY29udGV4dC4KLSAgICBkZWxldGUgKGRldmljZS0+cG9wQ29udGV4dCgpKTsK
KyAgICBkZWxldGUgKFFQYWludGVyOjpyZW5kZXJpbmdEZXZpY2UoKS0+cG9wQ29udGV4dCgpKTsK
IAogICAgIC8vIGFjdHVhbGx5IGFwcGx5IHRoZSBmaWx0ZXIgZWZmZWN0cwogICAgIENJSW1hZ2Ug
KmlucHV0SW1hZ2UgPSBbQ0lJbWFnZSBpbWFnZVdpdGhDR0xheWVyOm1fZmlsdGVyQ0dMYXllcl07
CkluZGV4OiBrY2FudmFzL2RldmljZS9xdWFydHovS0NhbnZhc1Jlc291cmNlc1F1YXJ0ei5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL3F1YXJ0ei9LQ2FudmFzUmVzb3VyY2VzUXVhcnR6
LmgJKHJldmlzaW9uIDEyMDUzKQorKysga2NhbnZhcy9kZXZpY2UvcXVhcnR6L0tDYW52YXNSZXNv
dXJjZXNRdWFydHouaAkod29ya2luZyBjb3B5KQpAQCAtNjIsMTQgKzYyLDE0IEBAIHByaXZhdGU6
CiAKIGNsYXNzIEtDYW52YXNDbGlwcGVyUXVhcnR6IDogcHVibGljIEtDYW52YXNDbGlwcGVyIHsK
IHB1YmxpYzoKLSAgICBLQ2FudmFzQ2xpcHBlclF1YXJ0eigpIHt9OworICAgIEtDYW52YXNDbGlw
cGVyUXVhcnR6KCkgeyB9CiAgICAgCi0gICAgdm9pZCBhcHBseUNsaXAoQ0dDb250ZXh0UmVmIGNv
bnRleHQsIENHUmVjdCByZWxhdGl2ZUJCb3gpIGNvbnN0OworICAgIHZpcnR1YWwgdm9pZCBhcHBs
eUNsaXAoY29uc3QgUVJlY3RGJiBib3VuZGluZ0JveCkgY29uc3Q7CiB9OwogCiBjbGFzcyBLQ2Fu
dmFzSW1hZ2VRdWFydHogOiBwdWJsaWMgS0NhbnZhc0ltYWdlIHsKIHB1YmxpYzoKLSAgICBLQ2Fu
dmFzSW1hZ2VRdWFydHooKSA6IG1fY2dMYXllcigwKSB7fTsKKyAgICBLQ2FudmFzSW1hZ2VRdWFy
dHooKSA6IG1fY2dMYXllcigwKSB7IH0KICAgICB+S0NhbnZhc0ltYWdlUXVhcnR6KCk7CiAgICAg
dm9pZCBpbml0KGNvbnN0IFFQaXhtYXAgJikgeyB9CiAgICAgdm9pZCBpbml0KFFTaXplIHNpemUp
IHsgbV9zaXplID0gc2l6ZTsgfQpJbmRleDoga2NhbnZhcy9kZXZpY2UvS1JlbmRlcmluZ0Rldmlj
ZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvZGV2aWNlL0tSZW5kZXJpbmdEZXZpY2UuaAkocmV2
aXNpb24gMTIwNTMpCisrKyBrY2FudmFzL2RldmljZS9LUmVuZGVyaW5nRGV2aWNlLmgJKHdvcmtp
bmcgY29weSkKQEAgLTQ0LDYgKzQ0LDkgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgUVJl
Y3QgbWFwRnJvbVZpc3VhbChjb25zdCBRUmVjdCAmcmVjdCkgPSAwOwogICAgIHZpcnR1YWwgUVJl
Y3QgbWFwVG9WaXN1YWwoY29uc3QgUVJlY3QgJnJlY3QpID0gMDsKKyAgICAKKyAgICB2aXJ0dWFs
IHZvaWQgY2xlYXJQYXRoKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBhZGRQYXRoKGNvbnN0IEtD
YW52YXNQYXRoKikgPSAwOwogfTsKIAogLy8gTXVzdCBiZSBhIFFPYmplY3QgdG8gYmUgYWJsZSB0
byBiZSBsb2FkZWQgYnkgS0xpYkxvYWRlci4uLgpJbmRleDoga2NhbnZhcy9LQ2FudmFzRmlsdGVy
cy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIGtjYW52YXMvS0NhbnZhc0ZpbHRlcnMuaAkocmV2aXNpb24gMTIw
NTMpCisrKyBrY2FudmFzL0tDYW52YXNGaWx0ZXJzLmgJKHdvcmtpbmcgY29weSkKQEAgLTk3LDgg
Kzk3LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRGaWx0ZXJFZmZlY3QoS0NhbnZhc0ZpbHRl
ckVmZmVjdCAqZWZmZWN0KTsKIAotICAgIHZpcnR1YWwgdm9pZCBwcmVwYXJlRmlsdGVyKEtSZW5k
ZXJpbmdEZXZpY2UgKmRldmljZSwgY29uc3QgUVJlY3RGICZiYm94KSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGFwcGx5RmlsdGVyKEtSZW5kZXJpbmdEZXZpY2UgKmRldmljZSwgY29uc3QgUVJlY3RG
ICZiYm94KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVGaWx0ZXIoY29uc3QgUVJlY3RG
ICZiYm94KSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGFwcGx5RmlsdGVyKGNvbnN0IFFSZWN0RiAm
YmJveCkgPSAwOwogCiAgICAgUVRleHRTdHJlYW0gJmV4dGVybmFsUmVwcmVzZW50YXRpb24oUVRl
eHRTdHJlYW0gJikgY29uc3Q7CiAKSW5kZXg6IGtjYW52YXMvS0NhbnZhc1Jlc291cmNlcy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIGtjYW52YXMvS0NhbnZhc1Jlc291cmNlcy5oCShyZXZpc2lvbiAxMjA1MykK
KysrIGtjYW52YXMvS0NhbnZhc1Jlc291cmNlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4
Miw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgcmVzZXRDbGlwRGF0YSgpOwogICAgIHZvaWQgYWRk
Q2xpcERhdGEoS0NhbnZhc1BhdGggKnBhdGgsIEtDV2luZFJ1bGUgcnVsZSwgYm9vbCBiYm94VW5p
dHMpOworICAgIAorICAgIHZpcnR1YWwgdm9pZCBhcHBseUNsaXAoY29uc3QgUVJlY3RGJiBib3Vu
ZGluZ0JveCkgY29uc3QgPSAwOwogCiAgICAgS0NDbGlwRGF0YUxpc3QgY2xpcERhdGEoKSBjb25z
dDsKIApAQCAtMTAxLDYgKzEwMyw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNNYXNr
ZXIoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBzZXRNYXNrKEtDYW52YXNJbWFn
ZSAqbWFzayk7CiAgICAgS0NhbnZhc0ltYWdlICptYXNrKCkgY29uc3QgeyByZXR1cm4gbV9tYXNr
OyB9CisgICAgCisgICAgdmlydHVhbCB2b2lkIGFwcGx5TWFzayhjb25zdCBRUmVjdEYmIGJvdW5k
aW5nQm94KSBjb25zdCA9IDA7CiAKICAgICBRVGV4dFN0cmVhbSYgZXh0ZXJuYWxSZXByZXNlbnRh
dGlvbihRVGV4dFN0cmVhbSAmKSBjb25zdDsgCiBwcm90ZWN0ZWQ6Cg==
</data>
<flag name="review"
          id="1257"
          type_id="1"
          status="+"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>