<?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>102976</bug_id>
          
          <creation_ts>2012-11-21 13:50:34 -0800</creation_ts>
          <short_desc>Move more functions from internals.settings to internals</short_desc>
          <delta_ts>2012-11-26 12:28: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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>abarth</cc>
    
    <cc>jochen</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>773245</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-21 13:50:34 -0800</bug_when>
    <thetext>Move more functions from internals.settings to internals</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773249</commentid>
    <comment_count>1</comment_count>
      <attachid>175516</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-21 13:56:43 -0800</bug_when>
    <thetext>Created attachment 175516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773263</commentid>
    <comment_count>2</comment_count>
      <attachid>175516</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-21 14:04:01 -0800</bug_when>
    <thetext>Comment on attachment 175516
Patch

Attachment 175516 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14966089</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773265</commentid>
    <comment_count>3</comment_count>
      <attachid>175516</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-11-21 14:07:03 -0800</bug_when>
    <thetext>Comment on attachment 175516
Patch

Attachment 175516 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14967077</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>773268</commentid>
    <comment_count>4</comment_count>
      <attachid>175521</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-21 14:09:03 -0800</bug_when>
    <thetext>Created attachment 175521
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775771</commentid>
    <comment_count>5</comment_count>
      <attachid>175521</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 12:28:24 -0800</bug_when>
    <thetext>Comment on attachment 175521
Patch

Clearing flags on attachment: 175521

Committed r135753: &lt;http://trac.webkit.org/changeset/135753&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>775772</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-26 12:28:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175516</attachid>
            <date>2012-11-21 13:56:43 -0800</date>
            <delta_ts>2012-11-21 14:09:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102976-20121121135430.patch</filename>
            <type>text/plain</type>
            <size>17085</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjBmYjhiYmM4OGQ1YTAx
NzRmMzljNWRmYzE0YjQzZDE5YzE4ZjBjZC4uODA5MjQxOGU4NWQ0MDQ5YmRmMmY3NTEyNWRhZDU4
N2M0MzQ1NWJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTExLTIxICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBtb3JlIGZ1bmN0aW9u
cyBmcm9tIGludGVybmFscy5zZXR0aW5ncyB0byBpbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjk3NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgZnVuY3Rpb25zIHRoYXQgZG9uJ3Qg
aGF2ZSB0byBkbyB3aXRoIFNldHRpbmdzIG9mZiBvZiBpbnRlcm5hbHMuc2V0dGluZ3MuCisgICAg
ICAgIHNldFBhZ2luYXRpb24gYW5kIGNvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydCB3ZXJlIGRlZmlu
ZWQgb24gaW50ZXJuYWxzLCBzbyB3ZQorICAgICAgICBjYW4gaW5saW5lIHRoZSBmdW5jdGlvbnMg
KG5vIHRlc3QgY2hhbmdlKS4KKworICAgICAgICBzZXRFbmFibGVNb2NrUGFnZVBvcHVwIGlzIG1v
dmVkIHRvIEludGVybmFscy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMgYSByZWZh
Y3Rvci4KKworICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpyZXNldCk6IE1vdmUgcmVzZXQgY29kZSBpbnRv
IEludGVybmFscy4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAg
ICAgKEludGVybmFsU2V0dGluZ3MpOiBSZW1vdmUgY29kZSBmb3Igc2V0UGFnaW5hdGlvbiwgY29u
ZmlndXJhdGlvbkZvclZpZXdwb3J0IGFuZCBzZXRFbmFibGVNb2NrUGFnZVBvcHVwLgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6IFJlbW92ZSBzZXRQYWdpbmF0aW9uIGFu
ZCBzZXRFbmFibGVNb2NrUGFnZVBvcHVwLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOiBVc2UgYSBzdGF0aWMgdG8ga2VlcCB0cmFjayBvZiB0aGUg
TW9ja1BhZ2VQb3B1cERyaXZlci4KKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZSk6IENvZGUgZnJvbSBJbnRlcm5hbFNldHRpbmdzOjpyZXNldAorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRFbmFibGVNb2NrUGFnZVBvcHVwKTogQ29kZSBj
b3BpZWQgZnJvbSBJbnRlcm5hbFNldHRpbmdzLgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpwYWdlUG9wdXBDb250cm9sbGVyKTogQ29kZSBjb3BpZWQgZnJvbSBJbnRlcm5hbFNldHRpbmdz
LgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRQYWdpbmF0aW9uKTogQ29kZSBjb3Bp
ZWQgZnJvbSBJbnRlcm5hbFNldHRpbmdzLgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpj
b25maWd1cmF0aW9uRm9yVmlld3BvcnQpOiBDb2RlIGNvcGllZCBmcm9tIEludGVybmFsU2V0dGlu
Z3MuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6
IEFkZCBzZXRFbmFibGVNb2NrUGFnZVBvcHVwLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmlkbDogQWRkIHNldEVuYWJsZU1vY2tQYWdlUG9wdXAuCisKIDIwMTItMTEtMjEgIEtlbnRhcm8g
SGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSAkb3V0cHV0RGly
IGFuZCAkb3V0cHV0SGVhZGVyc0RpciBmcm9tIGdsb2JhbCB2YXJpYWJsZXMgb2YgY29kZSBnZW5l
cmF0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRl
eCA5N2MwODZmY2E1MjgxZTQxNTNhOGY4Y2VlZDhhYjhhNDk4OTY1Nzk2Li5kZGE0NDM1NzA1ODQ0
YzEzNmNlZjZmZjNjYTI1N2RiNTU5M2Y3YjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTI2LDE1ICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkludGVybmFsU2V0dGluZ3MuaCIKIAotI2luY2x1ZGUgIkNocm9tZS5o
IgotI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhbGVUb1Njcmlw
dE1hcHBpbmcuaCIKLSNpbmNsdWRlICJNb2NrUGFnZVBvcHVwRHJpdmVyLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgpAQCAtMTc1LDIyICsxNzIsOSBAQCBJbnRlcm5hbFNldHRpbmdzOjpJbnRlcm5h
bFNldHRpbmdzKFBhZ2UqIHBhZ2UpCiB7CiB9CiAKLSNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKLVBh
Z2VQb3B1cENvbnRyb2xsZXIqIEludGVybmFsU2V0dGluZ3M6OnBhZ2VQb3B1cENvbnRyb2xsZXIo
KQotewotICAgIHJldHVybiBtX3BhZ2VQb3B1cERyaXZlciA/IG1fcGFnZVBvcHVwRHJpdmVyLT5w
YWdlUG9wdXBDb250cm9sbGVyKCkgOiAwOwotfQotI2VuZGlmCi0KIHZvaWQgSW50ZXJuYWxTZXR0
aW5nczo6cmVzZXQoKQogewotICAgIHBhZ2UoKS0+c2V0UGFnaW5hdGlvbihQYWdpbmF0aW9uKCkp
OwogICAgIHBhZ2UoKS0+c2V0UGFnZVNjYWxlRmFjdG9yKDEsIEludFBvaW50KDAsIDApKTsKLSNp
ZiBFTkFCTEUoUEFHRV9QT1BVUCkKLSAgICBtX3BhZ2VQb3B1cERyaXZlci5jbGVhcigpOwotICAg
IGlmIChwYWdlKCktPmNocm9tZSgpKQotICAgICAgICBwYWdlKCktPmNocm9tZSgpLT5jbGllbnQo
KS0+cmVzZXRQYWdlUG9wdXBEcml2ZXIoKTsKLSNlbmRpZgogCiAgICAgbV9iYWNrdXAucmVzdG9y
ZVRvKHBhZ2UoKSwgc2V0dGluZ3MoKSk7CiAgICAgbV9iYWNrdXAgPSBCYWNrdXAocGFnZSgpLCBz
ZXR0aW5ncygpKTsKQEAgLTU1OCw3MCArNTQyLDYgQEAgYm9vbCBJbnRlcm5hbFNldHRpbmdzOjpz
aG91bGREaXNwbGF5VHJhY2tLaW5kKGNvbnN0IFN0cmluZyYga2luZCwgRXhjZXB0aW9uQ29kZSYK
ICNlbmRpZgogfQogCi12b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFBhZ2luYXRpb24oY29uc3Qg
U3RyaW5nJiBtb2RlLCBpbnQgZ2FwLCBpbnQgcGFnZUxlbmd0aCwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgaWYgKCFwYWdlKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBQYWdpbmF0aW9uIHBhZ2luYXRpb247Ci0g
ICAgaWYgKG1vZGUgPT0gIlVucGFnaW5hdGVkIikKLSAgICAgICAgcGFnaW5hdGlvbi5tb2RlID0g
UGFnaW5hdGlvbjo6VW5wYWdpbmF0ZWQ7Ci0gICAgZWxzZSBpZiAobW9kZSA9PSAiTGVmdFRvUmln
aHRQYWdpbmF0ZWQiKQotICAgICAgICBwYWdpbmF0aW9uLm1vZGUgPSBQYWdpbmF0aW9uOjpMZWZ0
VG9SaWdodFBhZ2luYXRlZDsKLSAgICBlbHNlIGlmIChtb2RlID09ICJSaWdodFRvTGVmdFBhZ2lu
YXRlZCIpCi0gICAgICAgIHBhZ2luYXRpb24ubW9kZSA9IFBhZ2luYXRpb246OlJpZ2h0VG9MZWZ0
UGFnaW5hdGVkOwotICAgIGVsc2UgaWYgKG1vZGUgPT0gIlRvcFRvQm90dG9tUGFnaW5hdGVkIikK
LSAgICAgICAgcGFnaW5hdGlvbi5tb2RlID0gUGFnaW5hdGlvbjo6VG9wVG9Cb3R0b21QYWdpbmF0
ZWQ7Ci0gICAgZWxzZSBpZiAobW9kZSA9PSAiQm90dG9tVG9Ub3BQYWdpbmF0ZWQiKQotICAgICAg
ICBwYWdpbmF0aW9uLm1vZGUgPSBQYWdpbmF0aW9uOjpCb3R0b21Ub1RvcFBhZ2luYXRlZDsKLSAg
ICBlbHNlIHsKLSAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgcGFnaW5hdGlvbi5nYXAgPSBnYXA7Ci0gICAgcGFnaW5hdGlvbi5wYWdlTGVuZ3Ro
ID0gcGFnZUxlbmd0aDsKLSAgICBwYWdlKCktPnNldFBhZ2luYXRpb24ocGFnaW5hdGlvbik7Ci19
Ci0KLXZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlTW9ja1BhZ2VQb3B1cChib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotICAg
IEludGVybmFsU2V0dGluZ3NHdWFyZEZvclBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UoKS0+Y2hyb21l
KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoIWVuYWJsZWQpIHsKLSAgICAgICAgcGFnZSgp
LT5jaHJvbWUoKS0+Y2xpZW50KCktPnJlc2V0UGFnZVBvcHVwRHJpdmVyKCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgaWYgKCFtX3BhZ2VQb3B1cERyaXZlcikKLSAgICAgICAgbV9wYWdl
UG9wdXBEcml2ZXIgPSBNb2NrUGFnZVBvcHVwRHJpdmVyOjpjcmVhdGUocGFnZSgpLT5tYWluRnJh
bWUoKSk7Ci0gICAgcGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnNldFBhZ2VQb3B1cERyaXZl
cihtX3BhZ2VQb3B1cERyaXZlci5nZXQoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShlbmFi
bGVkKTsKLSAgICBVTlVTRURfUEFSQU0oZWMpOwotI2VuZGlmCi19Ci0KLVN0cmluZyBJbnRlcm5h
bFNldHRpbmdzOjpjb25maWd1cmF0aW9uRm9yVmlld3BvcnQoZmxvYXQgZGV2aWNlUGl4ZWxSYXRp
bywgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQgYXZhaWxhYmxlV2lkdGgs
IGludCBhdmFpbGFibGVIZWlnaHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghcGFn
ZSgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm4g
U3RyaW5nKCk7Ci0gICAgfQotCi0gICAgY29uc3QgaW50IGRlZmF1bHRMYXlvdXRXaWR0aEZvck5v
bk1vYmlsZVBhZ2VzID0gOTgwOwotCi0gICAgVmlld3BvcnRBcmd1bWVudHMgYXJndW1lbnRzID0g
cGFnZSgpLT52aWV3cG9ydEFyZ3VtZW50cygpOwotICAgIFZpZXdwb3J0QXR0cmlidXRlcyBhdHRy
aWJ1dGVzID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsIGRlZmF1bHRMYXlv
dXRXaWR0aEZvck5vbk1vYmlsZVBhZ2VzLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZp
Y2VQaXhlbFJhdGlvLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsK
LSAgICByZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGF0dHJpYnV0ZXMs
IEludFNpemUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCksIGRldmljZVBpeGVsUmF0
aW8pOwotICAgIHJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxh
YmxlKGF0dHJpYnV0ZXMpOwotCi0gICAgcmV0dXJuICJ2aWV3cG9ydCBzaXplICIgKyBTdHJpbmc6
Om51bWJlcihhdHRyaWJ1dGVzLmxheW91dFNpemUud2lkdGgoKSkgKyAieCIgKyBTdHJpbmc6Om51
bWJlcihhdHRyaWJ1dGVzLmxheW91dFNpemUuaGVpZ2h0KCkpICsgIiBzY2FsZSAiICsgU3RyaW5n
OjpudW1iZXIoYXR0cmlidXRlcy5pbml0aWFsU2NhbGUpICsgIiB3aXRoIGxpbWl0cyBbIiArIFN0
cmluZzo6bnVtYmVyKGF0dHJpYnV0ZXMubWluaW11bVNjYWxlKSArICIsICIgKyBTdHJpbmc6Om51
bWJlcihhdHRyaWJ1dGVzLm1heGltdW1TY2FsZSkgKyAiXSBhbmQgdXNlclNjYWxhYmxlICIgKyAo
YXR0cmlidXRlcy51c2VyU2NhbGFibGUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLX0KLQogdm9pZCBJ
bnRlcm5hbFNldHRpbmdzOjpzZXRNZW1vcnlJbmZvRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGEzMGZhZmZm
Yzc0M2NjZDU0ZGNjOTljN2ZiN2E2NzE3NGQzZWRmYjAuLmI3NmZkOWVhYjI2OGQwZDIwYzkyNDFh
OWVkMzU4ODlkMmI3MDA0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oCkBAIC0zOSw5ICszOSw3IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNs
YXNzIEZyYW1lOwogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBNb2NrUGFnZVBvcHVwRHJpdmVyOwog
Y2xhc3MgUGFnZTsKLWNsYXNzIFBhZ2VQb3B1cENvbnRyb2xsZXI7CiBjbGFzcyBTZXR0aW5nczsK
IAogY2xhc3MgSW50ZXJuYWxTZXR0aW5ncyA6IHB1YmxpYyBSZWZDb3VudGVkU3VwcGxlbWVudDxQ
YWdlLCBJbnRlcm5hbFNldHRpbmdzPiB7CkBAIC0xMDAsOSArOTgsNiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIEludGVybmFsU2V0dGluZ3MqIGZyb20oUGFnZSopOwogCiAgICAgdmlydHVhbCB+SW50
ZXJuYWxTZXR0aW5ncygpOwotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotICAgIFBhZ2VQb3B1cENv
bnRyb2xsZXIqIHBhZ2VQb3B1cENvbnRyb2xsZXIoKTsKLSNlbmRpZgogICAgIHZvaWQgcmVzZXQo
KTsKIAogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJik7CkBAIC0xNDgsMTIgKzE0Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN5
bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQg
c2V0V2luZG93Rm9jdXNSZXN0cmljdGVkKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IHNldERpYWxvZ0VsZW1lbnRFbmFibGVkKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lk
IHNldFBhZ2luYXRpb24oY29uc3QgU3RyaW5nJiBtb2RlLCBpbnQgZ2FwLCBFeGNlcHRpb25Db2Rl
JiBlYykgeyBzZXRQYWdpbmF0aW9uKG1vZGUsIGdhcCwgMCwgZWMpOyB9Ci0gICAgdm9pZCBzZXRQ
YWdpbmF0aW9uKGNvbnN0IFN0cmluZyYgbW9kZSwgaW50IGdhcCwgaW50IHBhZ2VMZW5ndGgsIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFNob3VsZERpc3BsYXlUcmFja0tpbmQoY29uc3Qg
U3RyaW5nJiBraW5kLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBib29sIHNo
b3VsZERpc3BsYXlUcmFja0tpbmQoY29uc3QgU3RyaW5nJiBraW5kLCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgdm9pZCBzZXRFbmFibGVNb2NrUGFnZVBvcHVwKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsK
LSAgICBTdHJpbmcgY29uZmlndXJhdGlvbkZvclZpZXdwb3J0KGZsb2F0IGRldmljZVBpeGVsUmF0
aW8sIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWlsYWJsZVdpZHRo
LCBpbnQgYXZhaWxhYmxlSGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRNZW1v
cnlJbmZvRW5hYmxlZChib29sLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQg
c2V0TGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQoYm9vbCk7CkBAIC0xNjgs
OSArMTU5LDYgQEAgcHJpdmF0ZToKIAogICAgIFBhZ2UqIG1fcGFnZTsKICAgICBCYWNrdXAgbV9i
YWNrdXA7Ci0jaWYgRU5BQkxFKFBBR0VfUE9QVVApCi0gICAgT3duUHRyPE1vY2tQYWdlUG9wdXBE
cml2ZXI+IG1fcGFnZVBvcHVwRHJpdmVyOwotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRl
eCBjOTJkOThiMjBhMTE4OGE1MWIwOWVkZDRiODJjNDdlZjU4NmRhNjU2Li4wOWRhZTFlNTdkM2Vj
MjRlZWYzYjRiYjQxZmUzOWViODcxNzNmNjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTcwLDggKzcwLDYgQEAKICAgICB2b2lkIHNldERpYWxv
Z0VsZW1lbnRFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAgICAgdm9pZCBzZXRMYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZChpbiBi
b29sZWFuIGVuYWJsZWQpOwogCi0gICAgdm9pZCBzZXRQYWdpbmF0aW9uKGluIERPTVN0cmluZyBt
b2RlLCBpbiBsb25nIGdhcCwgaW4gW09wdGlvbmFsXSBsb25nIHBhZ2VMZW5ndGgpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwotICAgIHZvaWQgc2V0RW5hYmxlTW9ja1BhZ2VQb3B1cChpbiBib29sZWFu
IGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIFtDb25kaXRpb25hbD1WSURFT19U
UkFDS10gdm9pZCBzZXRTaG91bGREaXNwbGF5VHJhY2tLaW5kKGluIERPTVN0cmluZyBraW5kLCBp
biBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBbQ29uZGl0aW9u
YWw9VklERU9fVFJBQ0tdIGJvb2xlYW4gc2hvdWxkRGlzcGxheVRyYWNrS2luZChpbiBET01TdHJp
bmcgdHJhY2tLaW5kKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRNZW1vcnlJ
bmZvRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGVhNzk0Yjc3Mjk4MjM0Y2MxNjczMDc4
ZTNkMWZiZjllNDg0ZWVhZGQuLmRiYTA0Mjc5N2I2NTkxYzdjMTVjNmMwOWM4YjEwYzBkZjJhNmE2
YTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI4LDYgKzI4LDggQEAK
IAogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiQ2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0
LmgiCiAjaW5jbHVkZSAiQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgiCkBAIC02Miw2ICs2NCw3
IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVk
ZSAiTWFsbG9jU3RhdGlzdGljcy5oIgorI2luY2x1ZGUgIk1vY2tQYWdlUG9wdXBEcml2ZXIuaCIK
ICNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQcmludENvbnRleHQuaCIKQEAgLTExMiw2ICsxMTUsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK3N0YXRpYyBNb2NrUGFnZVBvcHVwRHJpdmVyKiBzX3BhZ2VQb3B1cERyaXZl
ciA9IDA7CisKIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKICNpZiBFTkFCTEUoSU5TUEVD
VE9SKQpAQCAtMjEzLDkgKzIxOCwxNiBAQCB2b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNpc3Rl
bnRTdGF0ZShQYWdlKiBwYWdlKQogewogICAgIEFTU0VSVChwYWdlKTsKIAorICAgIHBhZ2UtPnNl
dFBhZ2luYXRpb24oUGFnaW5hdGlvbigpKTsKICAgICBUZXh0UnVuOjpzZXRBbGxvd3NSb3VuZGlu
Z0hhY2tzKGZhbHNlKTsKICAgICBXZWJDb3JlOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFn
ZXMoVmVjdG9yPFN0cmluZz4oKSk7CiAgICAgV2ViQ29yZTo6U2V0dGluZ3M6OnNldFVzZXNPdmVy
bGF5U2Nyb2xsYmFycyhmYWxzZSk7CisjaWYgRU5BQkxFKFBBR0VfUE9QVVApCisgICAgZGVsZXRl
IHNfcGFnZVBvcHVwRHJpdmVyOworICAgIHNfcGFnZVBvcHVwRHJpdmVyID0gMDsKKyAgICBpZiAo
cGFnZS0+Y2hyb21lKCkpCisgICAgICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+cmVzZXRQ
YWdlUG9wdXBEcml2ZXIoKTsKKyNlbmRpZgogI2lmIEVOQUJMRShJTlNQRUNUT1IpICYmIEVOQUJM
RShKQVZBU0NSSVBUX0RFQlVHR0VSKQogICAgIGlmIChwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVy
KCkpCiAgICAgICAgIHBhZ2UtPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+c2V0UHJvZmlsZXJFbmFi
bGVkKGZhbHNlKTsKQEAgLTY2NSwxMyArNjc3LDMwIEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRGb3Jt
Q29udHJvbFN0YXRlT2ZQcmV2aW91c0hpc3RvcnlJdGVtKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlz
CiAgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwogfQogCit2b2lkIEludGVybmFsczo6
c2V0RW5hYmxlTW9ja1BhZ2VQb3B1cChib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQor
eworI2lmIEVOQUJMRShQQUdFX1BPUFVQKQorICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRl
eHREb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkgfHwg
IWRvY3VtZW50LT5wYWdlKCktPmNocm9tZSgpKQorICAgICAgICByZXR1cm47CisgICAgUGFnZSog
cGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7CisgICAgaWYgKCFlbmFibGVkKSB7CisgICAgICAgIHBh
Z2UtPmNocm9tZSgpLT5jbGllbnQoKS0+cmVzZXRQYWdlUG9wdXBEcml2ZXIoKTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBpZiAoIXNfcGFnZVBvcHVwRHJpdmVyKQorICAgICAgICBzX3Bh
Z2VQb3B1cERyaXZlciA9IE1vY2tQYWdlUG9wdXBEcml2ZXI6OmNyZWF0ZShwYWdlLT5tYWluRnJh
bWUoKSkubGVha1B0cigpOworICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+c2V0UGFnZVBv
cHVwRHJpdmVyKHNfcGFnZVBvcHVwRHJpdmVyKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVu
YWJsZWQpOworICAgIFVOVVNFRF9QQVJBTShlYyk7CisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShQ
QUdFX1BPUFVQKQogUGFzc1JlZlB0cjxQYWdlUG9wdXBDb250cm9sbGVyPiBJbnRlcm5hbHM6OnBh
Z2VQb3B1cENvbnRyb2xsZXIoKQogewotICAgIEludGVybmFsU2V0dGluZ3MqIHNldHRpbmdzID0g
dGhpcy0+c2V0dGluZ3MoKTsKLSAgICBpZiAoIXNldHRpbmdzKQotICAgICAgICByZXR1cm4gMDsK
LSAgICByZXR1cm4gc2V0dGluZ3MtPnBhZ2VQb3B1cENvbnRyb2xsZXIoKTsKKyAgICByZXR1cm4g
c19wYWdlUG9wdXBEcml2ZXIgPyBzX3BhZ2VQb3B1cERyaXZlci0+cGFnZVBvcHVwQ29udHJvbGxl
cigpIDogMDsKIH0KICNlbmRpZgogCkBAIC04MjgsMTQgKzg1Nyw1MSBAQCB2b2lkIEludGVybmFs
czo6c2V0U2Nyb2xsVmlld1Bvc2l0aW9uKERvY3VtZW50KiBkb2N1bWVudCwgbG9uZyB4LCBsb25n
IHksIEV4Y2VwdAogICAgIGZyYW1lVmlldy0+c2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVu
dEVkZ2UoY29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2VPbGRWYWx1ZSk7CiB9CiAKLXZv
aWQgSW50ZXJuYWxzOjpzZXRQYWdpbmF0aW9uKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBtb2Rl
LCBpbnQgZ2FwLCBpbnQgcGFnZUxlbmd0aCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIEludGVy
bmFsczo6c2V0UGFnaW5hdGlvbihEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbW9k
ZSwgaW50IGdhcCwgaW50IHBhZ2VMZW5ndGgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHNl
dHRpbmdzKCktPnNldFBhZ2luYXRpb24obW9kZSwgZ2FwLCBwYWdlTGVuZ3RoLCBlYyk7CisgICAg
aWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkgeworICAgICAgICBlYyA9IElOVkFM
SURfQUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBQYWdlKiBwYWdlID0g
ZG9jdW1lbnQtPnBhZ2UoKTsKKworICAgIFBhZ2luYXRpb24gcGFnaW5hdGlvbjsKKyAgICBpZiAo
bW9kZSA9PSAiVW5wYWdpbmF0ZWQiKQorICAgICAgICBwYWdpbmF0aW9uLm1vZGUgPSBQYWdpbmF0
aW9uOjpVbnBhZ2luYXRlZDsKKyAgICBlbHNlIGlmIChtb2RlID09ICJMZWZ0VG9SaWdodFBhZ2lu
YXRlZCIpCisgICAgICAgIHBhZ2luYXRpb24ubW9kZSA9IFBhZ2luYXRpb246OkxlZnRUb1JpZ2h0
UGFnaW5hdGVkOworICAgIGVsc2UgaWYgKG1vZGUgPT0gIlJpZ2h0VG9MZWZ0UGFnaW5hdGVkIikK
KyAgICAgICAgcGFnaW5hdGlvbi5tb2RlID0gUGFnaW5hdGlvbjo6UmlnaHRUb0xlZnRQYWdpbmF0
ZWQ7CisgICAgZWxzZSBpZiAobW9kZSA9PSAiVG9wVG9Cb3R0b21QYWdpbmF0ZWQiKQorICAgICAg
ICBwYWdpbmF0aW9uLm1vZGUgPSBQYWdpbmF0aW9uOjpUb3BUb0JvdHRvbVBhZ2luYXRlZDsKKyAg
ICBlbHNlIGlmIChtb2RlID09ICJCb3R0b21Ub1RvcFBhZ2luYXRlZCIpCisgICAgICAgIHBhZ2lu
YXRpb24ubW9kZSA9IFBhZ2luYXRpb246OkJvdHRvbVRvVG9wUGFnaW5hdGVkOworICAgIGVsc2Ug
eworICAgICAgICBlYyA9IFNZTlRBWF9FUlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAg
ICBwYWdpbmF0aW9uLmdhcCA9IGdhcDsKKyAgICBwYWdpbmF0aW9uLnBhZ2VMZW5ndGggPSBwYWdl
TGVuZ3RoOworICAgIHBhZ2UtPnNldFBhZ2luYXRpb24ocGFnaW5hdGlvbik7CiB9CiAKLVN0cmlu
ZyBJbnRlcm5hbHM6OmNvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChEb2N1bWVudCosIGZsb2F0IGRl
dmljZVBpeGVsUmF0aW8sIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2
YWlsYWJsZVdpZHRoLCBpbnQgYXZhaWxhYmxlSGVpZ2h0LCBFeGNlcHRpb25Db2RlJiBlYykKK1N0
cmluZyBJbnRlcm5hbHM6OmNvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydChEb2N1bWVudCogZG9jdW1l
bnQsIGZsb2F0IGRldmljZVBpeGVsUmF0aW8sIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhl
aWdodCwgaW50IGF2YWlsYWJsZVdpZHRoLCBpbnQgYXZhaWxhYmxlSGVpZ2h0LCBFeGNlcHRpb25D
b2RlJiBlYykKIHsKLSAgICByZXR1cm4gc2V0dGluZ3MoKS0+Y29uZmlndXJhdGlvbkZvclZpZXdw
b3J0KGRldmljZVBpeGVsUmF0aW8sIGRldmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGF2YWlsYWJs
ZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQsIGVjKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1
bWVudC0+cGFnZSgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7CisgICAgfQorICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFn
ZSgpOworCisgICAgY29uc3QgaW50IGRlZmF1bHRMYXlvdXRXaWR0aEZvck5vbk1vYmlsZVBhZ2Vz
ID0gOTgwOworCisgICAgVmlld3BvcnRBcmd1bWVudHMgYXJndW1lbnRzID0gcGFnZS0+dmlld3Bv
cnRBcmd1bWVudHMoKTsKKyAgICBWaWV3cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlcyA9IGNvbXB1
dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJndW1lbnRzLCBkZWZhdWx0TGF5b3V0V2lkdGhGb3JOb25N
b2JpbGVQYWdlcywgZGV2aWNlV2lkdGgsIGRldmljZUhlaWdodCwgZGV2aWNlUGl4ZWxSYXRpbywg
SW50U2l6ZShhdmFpbGFibGVXaWR0aCwgYXZhaWxhYmxlSGVpZ2h0KSk7CisgICAgcmVzdHJpY3RN
aW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdwb3J0U2l6ZShhdHRyaWJ1dGVzLCBJbnRTaXplKGF2YWls
YWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpLCBkZXZpY2VQaXhlbFJhdGlvKTsKKyAgICByZXN0
cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShhdHRyaWJ1dGVz
KTsKKworICAgIHJldHVybiAidmlld3BvcnQgc2l6ZSAiICsgU3RyaW5nOjpudW1iZXIoYXR0cmli
dXRlcy5sYXlvdXRTaXplLndpZHRoKCkpICsgIngiICsgU3RyaW5nOjpudW1iZXIoYXR0cmlidXRl
cy5sYXlvdXRTaXplLmhlaWdodCgpKSArICIgc2NhbGUgIiArIFN0cmluZzo6bnVtYmVyKGF0dHJp
YnV0ZXMuaW5pdGlhbFNjYWxlKSArICIgd2l0aCBsaW1pdHMgWyIgKyBTdHJpbmc6Om51bWJlcihh
dHRyaWJ1dGVzLm1pbmltdW1TY2FsZSkgKyAiLCAiICsgU3RyaW5nOjpudW1iZXIoYXR0cmlidXRl
cy5tYXhpbXVtU2NhbGUpICsgIl0gYW5kIHVzZXJTY2FsYWJsZSAiICsgKGF0dHJpYnV0ZXMudXNl
clNjYWxhYmxlID8gInRydWUiIDogImZhbHNlIik7CiB9CiAKIGJvb2wgSW50ZXJuYWxzOjp3YXNM
YXN0Q2hhbmdlVXNlckVkaXQoRWxlbWVudCogdGV4dEZpZWxkLCBFeGNlcHRpb25Db2RlJiBlYykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDY4ZTY1ZTRjYjlkMTQxYjFkM2E4Y2Y2
MThjNGE4OWQwMGU1MDUzYjUuLjhiMWFmYTYzY2JiODMwMWVhY2ExZWY2NzBhOGI5Mzk4ZGRjZTZj
YjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTE4LDYgKzExOCw3IEBAIHB1
YmxpYzoKICNlbmRpZgogICAgIFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4gZm9ybUNvbnRyb2xT
dGF0ZU9mUHJldmlvdXNIaXN0b3J5SXRlbShFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRG
b3JtQ29udHJvbFN0YXRlT2ZQcmV2aW91c0hpc3RvcnlJdGVtKFBhc3NSZWZQdHI8RE9NU3RyaW5n
TGlzdD4sIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICB2b2lkIHNldEVuYWJsZU1vY2tQYWdlUG9wdXAo
Ym9vbCwgRXhjZXB0aW9uQ29kZSYpOwogI2lmIEVOQUJMRShQQUdFX1BPUFVQKQogICAgIFBhc3NS
ZWZQdHI8UGFnZVBvcHVwQ29udHJvbGxlcj4gcGFnZVBvcHVwQ29udHJvbGxlcigpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggNzAzYmVhM2FhYWFkMTdiNzBi
MThkOTk5MjM3ZTU2M2Q1NDgyZTg0Zi4uODM1MmJkZWY3NjViMzQyNjU2ZGIxNjRjNTBkNTMyYTk3
OWIxYjU4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNzgsNiArNzgs
NyBAQAogI2VuZGlmCiAgICAgRE9NU3RyaW5nW10gZm9ybUNvbnRyb2xTdGF0ZU9mUHJldmlvdXNI
aXN0b3J5SXRlbSgpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIHZvaWQgc2V0Rm9ybUNvbnRy
b2xTdGF0ZU9mUHJldmlvdXNIaXN0b3J5SXRlbShpbiBET01TdHJpbmdbXSB2YWx1ZXMpIHJhaXNl
cyhET01FeGNlcHRpb24pOworICAgIHZvaWQgc2V0RW5hYmxlTW9ja1BhZ2VQb3B1cChpbiBib29s
ZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogI2lmIGRlZmluZWQoRU5BQkxFX1BB
R0VfUE9QVVApICYmIEVOQUJMRV9QQUdFX1BPUFVQCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFBh
Z2VQb3B1cENvbnRyb2xsZXIgcGFnZVBvcHVwQ29udHJvbGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYw
MTgzZDRhNDMzNDI1M2ExZjc1MWU0NjhjZDdkYWEyODk0MjBmNzMuLjJhNmMzY2YxMDJiODA1NDFm
NTI3NDM4ODI2NTAwZGFiMDRkODllYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMS0y
MSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgbW9yZSBm
dW5jdGlvbnMgZnJvbSBpbnRlcm5hbHMuc2V0dGluZ3MgdG8gaW50ZXJuYWxzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDI5NzYKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGludGVybmFscy5zZXR0
aW5ncy5zZXRFbmFibGVNb2NrUGFnZVBvcHVwIHRvIGludGVybmFscy5zZXRFbmFibGVNb2NrUGFn
ZVBvcHVwLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9yZXNvdXJjZXMvcGlja2VyLWNvbW1vbi5q
czoKKwogMjAxMi0xMS0yMSAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJlbW92ZSBJREJEYXRhYmFzZUV4Y2VwdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvcGlja2VyLWNvbW1vbi5qcyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvcmVzb3VyY2VzL3BpY2tlci1jb21tb24uanMKaW5kZXggZWY5NWYwYjlmOTUxZmQ1
NzAwMmQ0MWRmNGY5Mzg5MDhkZWEzNmQ5OC4uNmZjYjIxMWU0YzI3MzU0MGNhZDZiNzU0YTZhMjRm
ZGNjNGU1ODcxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMv
cGlja2VyLWNvbW1vbi5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9w
aWNrZXItY29tbW9uLmpzCkBAIC0xLDYgKzEsNiBAQAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOwogaWYgKHdpbmRvdy5pbnRlcm5hbHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVu
YWJsZU1vY2tQYWdlUG9wdXAodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldEVuYWJsZU1vY2tQYWdl
UG9wdXAodHJ1ZSk7CiAKIHZhciBwb3B1cFdpbmRvdyA9IG51bGw7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>175521</attachid>
            <date>2012-11-21 14:09:03 -0800</date>
            <delta_ts>2012-11-26 12:28:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-102976-20121121140650.patch</filename>
            <type>text/plain</type>
            <size>17118</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM1NDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjBmYjhiYmM4OGQ1YTAx
NzRmMzljNWRmYzE0YjQzZDE5YzE4ZjBjZC4uODA5MjQxOGU4NWQ0MDQ5YmRmMmY3NTEyNWRhZDU4
N2M0MzQ1NWJlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTExLTIxICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBtb3JlIGZ1bmN0aW9u
cyBmcm9tIGludGVybmFscy5zZXR0aW5ncyB0byBpbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMjk3NgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgZnVuY3Rpb25zIHRoYXQgZG9uJ3Qg
aGF2ZSB0byBkbyB3aXRoIFNldHRpbmdzIG9mZiBvZiBpbnRlcm5hbHMuc2V0dGluZ3MuCisgICAg
ICAgIHNldFBhZ2luYXRpb24gYW5kIGNvbmZpZ3VyYXRpb25Gb3JWaWV3cG9ydCB3ZXJlIGRlZmlu
ZWQgb24gaW50ZXJuYWxzLCBzbyB3ZQorICAgICAgICBjYW4gaW5saW5lIHRoZSBmdW5jdGlvbnMg
KG5vIHRlc3QgY2hhbmdlKS4KKworICAgICAgICBzZXRFbmFibGVNb2NrUGFnZVBvcHVwIGlzIG1v
dmVkIHRvIEludGVybmFscy4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHRoaXMgaXMgYSByZWZh
Y3Rvci4KKworICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpyZXNldCk6IE1vdmUgcmVzZXQgY29kZSBpbnRv
IEludGVybmFscy4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaDoKKyAgICAg
ICAgKEludGVybmFsU2V0dGluZ3MpOiBSZW1vdmUgY29kZSBmb3Igc2V0UGFnaW5hdGlvbiwgY29u
ZmlndXJhdGlvbkZvclZpZXdwb3J0IGFuZCBzZXRFbmFibGVNb2NrUGFnZVBvcHVwLgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGw6IFJlbW92ZSBzZXRQYWdpbmF0aW9uIGFu
ZCBzZXRFbmFibGVNb2NrUGFnZVBvcHVwLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmUpOiBVc2UgYSBzdGF0aWMgdG8ga2VlcCB0cmFjayBvZiB0aGUg
TW9ja1BhZ2VQb3B1cERyaXZlci4KKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6cmVzZXRU
b0NvbnNpc3RlbnRTdGF0ZSk6IENvZGUgZnJvbSBJbnRlcm5hbFNldHRpbmdzOjpyZXNldAorICAg
ICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRFbmFibGVNb2NrUGFnZVBvcHVwKTogQ29kZSBj
b3BpZWQgZnJvbSBJbnRlcm5hbFNldHRpbmdzLgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxz
OjpwYWdlUG9wdXBDb250cm9sbGVyKTogQ29kZSBjb3BpZWQgZnJvbSBJbnRlcm5hbFNldHRpbmdz
LgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRQYWdpbmF0aW9uKTogQ29kZSBjb3Bp
ZWQgZnJvbSBJbnRlcm5hbFNldHRpbmdzLgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpj
b25maWd1cmF0aW9uRm9yVmlld3BvcnQpOiBDb2RlIGNvcGllZCBmcm9tIEludGVybmFsU2V0dGlu
Z3MuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKEludGVybmFscyk6
IEFkZCBzZXRFbmFibGVNb2NrUGFnZVBvcHVwLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxz
LmlkbDogQWRkIHNldEVuYWJsZU1vY2tQYWdlUG9wdXAuCisKIDIwMTItMTEtMjEgIEtlbnRhcm8g
SGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSAkb3V0cHV0RGly
IGFuZCAkb3V0cHV0SGVhZGVyc0RpciBmcm9tIGdsb2JhbCB2YXJpYWJsZXMgb2YgY29kZSBnZW5l
cmF0b3JzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAppbmRl
eCA5N2MwODZmY2E1MjgxZTQxNTNhOGY4Y2VlZDhhYjhhNDk4OTY1Nzk2Li5kZGE0NDM1NzA1ODQ0
YzEzNmNlZjZmZjNjYTI1N2RiNTU5M2Y3YjZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTI2LDE1ICsyNiwxMiBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkludGVybmFsU2V0dGluZ3MuaCIKIAotI2luY2x1ZGUgIkNocm9tZS5o
IgotI2luY2x1ZGUgIkNocm9tZUNsaWVudC5oIgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5j
bHVkZSAiRXhjZXB0aW9uQ29kZS5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiRnJh
bWVWaWV3LmgiCiAjaW5jbHVkZSAiTGFuZ3VhZ2UuaCIKICNpbmNsdWRlICJMb2NhbGVUb1Njcmlw
dE1hcHBpbmcuaCIKLSNpbmNsdWRlICJNb2NrUGFnZVBvcHVwRHJpdmVyLmgiCiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJT
ZXR0aW5ncy5oIgpAQCAtMTc1LDIyICsxNzIsOSBAQCBJbnRlcm5hbFNldHRpbmdzOjpJbnRlcm5h
bFNldHRpbmdzKFBhZ2UqIHBhZ2UpCiB7CiB9CiAKLSNpZiBFTkFCTEUoUEFHRV9QT1BVUCkKLVBh
Z2VQb3B1cENvbnRyb2xsZXIqIEludGVybmFsU2V0dGluZ3M6OnBhZ2VQb3B1cENvbnRyb2xsZXIo
KQotewotICAgIHJldHVybiBtX3BhZ2VQb3B1cERyaXZlciA/IG1fcGFnZVBvcHVwRHJpdmVyLT5w
YWdlUG9wdXBDb250cm9sbGVyKCkgOiAwOwotfQotI2VuZGlmCi0KIHZvaWQgSW50ZXJuYWxTZXR0
aW5nczo6cmVzZXQoKQogewotICAgIHBhZ2UoKS0+c2V0UGFnaW5hdGlvbihQYWdpbmF0aW9uKCkp
OwogICAgIHBhZ2UoKS0+c2V0UGFnZVNjYWxlRmFjdG9yKDEsIEludFBvaW50KDAsIDApKTsKLSNp
ZiBFTkFCTEUoUEFHRV9QT1BVUCkKLSAgICBtX3BhZ2VQb3B1cERyaXZlci5jbGVhcigpOwotICAg
IGlmIChwYWdlKCktPmNocm9tZSgpKQotICAgICAgICBwYWdlKCktPmNocm9tZSgpLT5jbGllbnQo
KS0+cmVzZXRQYWdlUG9wdXBEcml2ZXIoKTsKLSNlbmRpZgogCiAgICAgbV9iYWNrdXAucmVzdG9y
ZVRvKHBhZ2UoKSwgc2V0dGluZ3MoKSk7CiAgICAgbV9iYWNrdXAgPSBCYWNrdXAocGFnZSgpLCBz
ZXR0aW5ncygpKTsKQEAgLTU1OCw3MCArNTQyLDYgQEAgYm9vbCBJbnRlcm5hbFNldHRpbmdzOjpz
aG91bGREaXNwbGF5VHJhY2tLaW5kKGNvbnN0IFN0cmluZyYga2luZCwgRXhjZXB0aW9uQ29kZSYK
ICNlbmRpZgogfQogCi12b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFBhZ2luYXRpb24oY29uc3Qg
U3RyaW5nJiBtb2RlLCBpbnQgZ2FwLCBpbnQgcGFnZUxlbmd0aCwgRXhjZXB0aW9uQ29kZSYgZWMp
Ci17Ci0gICAgaWYgKCFwYWdlKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBQYWdpbmF0aW9uIHBhZ2luYXRpb247Ci0g
ICAgaWYgKG1vZGUgPT0gIlVucGFnaW5hdGVkIikKLSAgICAgICAgcGFnaW5hdGlvbi5tb2RlID0g
UGFnaW5hdGlvbjo6VW5wYWdpbmF0ZWQ7Ci0gICAgZWxzZSBpZiAobW9kZSA9PSAiTGVmdFRvUmln
aHRQYWdpbmF0ZWQiKQotICAgICAgICBwYWdpbmF0aW9uLm1vZGUgPSBQYWdpbmF0aW9uOjpMZWZ0
VG9SaWdodFBhZ2luYXRlZDsKLSAgICBlbHNlIGlmIChtb2RlID09ICJSaWdodFRvTGVmdFBhZ2lu
YXRlZCIpCi0gICAgICAgIHBhZ2luYXRpb24ubW9kZSA9IFBhZ2luYXRpb246OlJpZ2h0VG9MZWZ0
UGFnaW5hdGVkOwotICAgIGVsc2UgaWYgKG1vZGUgPT0gIlRvcFRvQm90dG9tUGFnaW5hdGVkIikK
LSAgICAgICAgcGFnaW5hdGlvbi5tb2RlID0gUGFnaW5hdGlvbjo6VG9wVG9Cb3R0b21QYWdpbmF0
ZWQ7Ci0gICAgZWxzZSBpZiAobW9kZSA9PSAiQm90dG9tVG9Ub3BQYWdpbmF0ZWQiKQotICAgICAg
ICBwYWdpbmF0aW9uLm1vZGUgPSBQYWdpbmF0aW9uOjpCb3R0b21Ub1RvcFBhZ2luYXRlZDsKLSAg
ICBlbHNlIHsKLSAgICAgICAgZWMgPSBTWU5UQVhfRVJSOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgcGFnaW5hdGlvbi5nYXAgPSBnYXA7Ci0gICAgcGFnaW5hdGlvbi5wYWdlTGVuZ3Ro
ID0gcGFnZUxlbmd0aDsKLSAgICBwYWdlKCktPnNldFBhZ2luYXRpb24ocGFnaW5hdGlvbik7Ci19
Ci0KLXZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0RW5hYmxlTW9ja1BhZ2VQb3B1cChib29sIGVu
YWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotICAg
IEludGVybmFsU2V0dGluZ3NHdWFyZEZvclBhZ2UoKTsKLSAgICBpZiAoIXBhZ2UoKS0+Y2hyb21l
KCkpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoIWVuYWJsZWQpIHsKLSAgICAgICAgcGFnZSgp
LT5jaHJvbWUoKS0+Y2xpZW50KCktPnJlc2V0UGFnZVBvcHVwRHJpdmVyKCk7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0gICAgaWYgKCFtX3BhZ2VQb3B1cERyaXZlcikKLSAgICAgICAgbV9wYWdl
UG9wdXBEcml2ZXIgPSBNb2NrUGFnZVBvcHVwRHJpdmVyOjpjcmVhdGUocGFnZSgpLT5tYWluRnJh
bWUoKSk7Ci0gICAgcGFnZSgpLT5jaHJvbWUoKS0+Y2xpZW50KCktPnNldFBhZ2VQb3B1cERyaXZl
cihtX3BhZ2VQb3B1cERyaXZlci5nZXQoKSk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShlbmFi
bGVkKTsKLSAgICBVTlVTRURfUEFSQU0oZWMpOwotI2VuZGlmCi19Ci0KLVN0cmluZyBJbnRlcm5h
bFNldHRpbmdzOjpjb25maWd1cmF0aW9uRm9yVmlld3BvcnQoZmxvYXQgZGV2aWNlUGl4ZWxSYXRp
bywgaW50IGRldmljZVdpZHRoLCBpbnQgZGV2aWNlSGVpZ2h0LCBpbnQgYXZhaWxhYmxlV2lkdGgs
IGludCBhdmFpbGFibGVIZWlnaHQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghcGFn
ZSgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm4g
U3RyaW5nKCk7Ci0gICAgfQotCi0gICAgY29uc3QgaW50IGRlZmF1bHRMYXlvdXRXaWR0aEZvck5v
bk1vYmlsZVBhZ2VzID0gOTgwOwotCi0gICAgVmlld3BvcnRBcmd1bWVudHMgYXJndW1lbnRzID0g
cGFnZSgpLT52aWV3cG9ydEFyZ3VtZW50cygpOwotICAgIFZpZXdwb3J0QXR0cmlidXRlcyBhdHRy
aWJ1dGVzID0gY29tcHV0ZVZpZXdwb3J0QXR0cmlidXRlcyhhcmd1bWVudHMsIGRlZmF1bHRMYXlv
dXRXaWR0aEZvck5vbk1vYmlsZVBhZ2VzLCBkZXZpY2VXaWR0aCwgZGV2aWNlSGVpZ2h0LCBkZXZp
Y2VQaXhlbFJhdGlvLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQpKTsK
LSAgICByZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRvVmlld3BvcnRTaXplKGF0dHJpYnV0ZXMs
IEludFNpemUoYXZhaWxhYmxlV2lkdGgsIGF2YWlsYWJsZUhlaWdodCksIGRldmljZVBpeGVsUmF0
aW8pOwotICAgIHJlc3RyaWN0U2NhbGVGYWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxh
YmxlKGF0dHJpYnV0ZXMpOwotCi0gICAgcmV0dXJuICJ2aWV3cG9ydCBzaXplICIgKyBTdHJpbmc6
Om51bWJlcihhdHRyaWJ1dGVzLmxheW91dFNpemUud2lkdGgoKSkgKyAieCIgKyBTdHJpbmc6Om51
bWJlcihhdHRyaWJ1dGVzLmxheW91dFNpemUuaGVpZ2h0KCkpICsgIiBzY2FsZSAiICsgU3RyaW5n
OjpudW1iZXIoYXR0cmlidXRlcy5pbml0aWFsU2NhbGUpICsgIiB3aXRoIGxpbWl0cyBbIiArIFN0
cmluZzo6bnVtYmVyKGF0dHJpYnV0ZXMubWluaW11bVNjYWxlKSArICIsICIgKyBTdHJpbmc6Om51
bWJlcihhdHRyaWJ1dGVzLm1heGltdW1TY2FsZSkgKyAiXSBhbmQgdXNlclNjYWxhYmxlICIgKyAo
YXR0cmlidXRlcy51c2VyU2NhbGFibGUgPyAidHJ1ZSIgOiAiZmFsc2UiKTsKLX0KLQogdm9pZCBJ
bnRlcm5hbFNldHRpbmdzOjpzZXRNZW1vcnlJbmZvRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQogewogICAgIEludGVybmFsU2V0dGluZ3NHdWFyZEZvclNldHRpbmdzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaCBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5oCmluZGV4IGEzMGZhZmZm
Yzc0M2NjZDU0ZGNjOTljN2ZiN2E2NzE3NGQzZWRmYjAuLmI3NmZkOWVhYjI2OGQwZDIwYzkyNDFh
OWVkMzU4ODlkMmI3MDA0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5oCkBAIC0zOSw5ICszOSw3IEBAIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNs
YXNzIEZyYW1lOwogY2xhc3MgRG9jdW1lbnQ7Ci1jbGFzcyBNb2NrUGFnZVBvcHVwRHJpdmVyOwog
Y2xhc3MgUGFnZTsKLWNsYXNzIFBhZ2VQb3B1cENvbnRyb2xsZXI7CiBjbGFzcyBTZXR0aW5nczsK
IAogY2xhc3MgSW50ZXJuYWxTZXR0aW5ncyA6IHB1YmxpYyBSZWZDb3VudGVkU3VwcGxlbWVudDxQ
YWdlLCBJbnRlcm5hbFNldHRpbmdzPiB7CkBAIC0xMDAsOSArOTgsNiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIEludGVybmFsU2V0dGluZ3MqIGZyb20oUGFnZSopOwogCiAgICAgdmlydHVhbCB+SW50
ZXJuYWxTZXR0aW5ncygpOwotI2lmIEVOQUJMRShQQUdFX1BPUFVQKQotICAgIFBhZ2VQb3B1cENv
bnRyb2xsZXIqIHBhZ2VQb3B1cENvbnRyb2xsZXIoKTsKLSNlbmRpZgogICAgIHZvaWQgcmVzZXQo
KTsKIAogICAgIHZvaWQgc2V0Rm9yY2VDb21wb3NpdGluZ01vZGUoYm9vbCBlbmFibGVkLCBFeGNl
cHRpb25Db2RlJik7CkBAIC0xNDgsMTIgKzE0Myw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFN5
bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQg
c2V0V2luZG93Rm9jdXNSZXN0cmljdGVkKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lk
IHNldERpYWxvZ0VsZW1lbnRFbmFibGVkKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lk
IHNldFBhZ2luYXRpb24oY29uc3QgU3RyaW5nJiBtb2RlLCBpbnQgZ2FwLCBFeGNlcHRpb25Db2Rl
JiBlYykgeyBzZXRQYWdpbmF0aW9uKG1vZGUsIGdhcCwgMCwgZWMpOyB9Ci0gICAgdm9pZCBzZXRQ
YWdpbmF0aW9uKGNvbnN0IFN0cmluZyYgbW9kZSwgaW50IGdhcCwgaW50IHBhZ2VMZW5ndGgsIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFNob3VsZERpc3BsYXlUcmFja0tpbmQoY29uc3Qg
U3RyaW5nJiBraW5kLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICBib29sIHNo
b3VsZERpc3BsYXlUcmFja0tpbmQoY29uc3QgU3RyaW5nJiBraW5kLCBFeGNlcHRpb25Db2RlJik7
Ci0gICAgdm9pZCBzZXRFbmFibGVNb2NrUGFnZVBvcHVwKGJvb2wsIEV4Y2VwdGlvbkNvZGUmKTsK
LSAgICBTdHJpbmcgY29uZmlndXJhdGlvbkZvclZpZXdwb3J0KGZsb2F0IGRldmljZVBpeGVsUmF0
aW8sIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWlsYWJsZVdpZHRo
LCBpbnQgYXZhaWxhYmxlSGVpZ2h0LCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRNZW1v
cnlJbmZvRW5hYmxlZChib29sLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRTdG9yYWdl
QmxvY2tpbmdQb2xpY3koY29uc3QgU3RyaW5nJiwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQg
c2V0TGFuZ0F0dHJpYnV0ZUF3YXJlRm9ybUNvbnRyb2xVSUVuYWJsZWQoYm9vbCk7CkBAIC0xNjgs
OSArMTU5LDYgQEAgcHJpdmF0ZToKIAogICAgIFBhZ2UqIG1fcGFnZTsKICAgICBCYWNrdXAgbV9i
YWNrdXA7Ci0jaWYgRU5BQkxFKFBBR0VfUE9QVVApCi0gICAgT3duUHRyPE1vY2tQYWdlUG9wdXBE
cml2ZXI+IG1fcGFnZVBvcHVwRHJpdmVyOwotI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAppbmRl
eCBjOTJkOThiMjBhMTE4OGE1MWIwOWVkZDRiODJjNDdlZjU4NmRhNjU2Li4wOWRhZTFlNTdkM2Vj
MjRlZWYzYjRiYjQxZmUzOWViODcxNzNmNjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxTZXR0aW5ncy5pZGwKQEAgLTcwLDggKzcwLDYgQEAKICAgICB2b2lkIHNldERpYWxv
Z0VsZW1lbnRFbmFibGVkKGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7
CiAgICAgdm9pZCBzZXRMYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZChpbiBi
b29sZWFuIGVuYWJsZWQpOwogCi0gICAgdm9pZCBzZXRQYWdpbmF0aW9uKGluIERPTVN0cmluZyBt
b2RlLCBpbiBsb25nIGdhcCwgaW4gW09wdGlvbmFsXSBsb25nIHBhZ2VMZW5ndGgpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwotICAgIHZvaWQgc2V0RW5hYmxlTW9ja1BhZ2VQb3B1cChpbiBib29sZWFu
IGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgIFtDb25kaXRpb25hbD1WSURFT19U
UkFDS10gdm9pZCBzZXRTaG91bGREaXNwbGF5VHJhY2tLaW5kKGluIERPTVN0cmluZyBraW5kLCBp
biBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKICAgICBbQ29uZGl0aW9u
YWw9VklERU9fVFJBQ0tdIGJvb2xlYW4gc2hvdWxkRGlzcGxheVRyYWNrS2luZChpbiBET01TdHJp
bmcgdHJhY2tLaW5kKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgdm9pZCBzZXRNZW1vcnlJ
bmZvRW5hYmxlZChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGVhNzk0Yjc3Mjk4MjM0Y2MxNjczMDc4
ZTNkMWZiZjllNDg0ZWVhZGQuLmZiOTMyZGIxZjZjNzBlZTczNzFlZGZmZDRiMDdlMzczZmQxMTQy
ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTI4LDYgKzI4LDggQEAK
IAogI2luY2x1ZGUgIkJhY2tGb3J3YXJkQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkNhY2hlZFJl
c291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSAiQ2hyb21lLmgiCisjaW5jbHVkZSAiQ2hyb21lQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiQ2xpZW50UmVjdC5oIgogI2luY2x1ZGUgIkNsaWVudFJlY3RMaXN0
LmgiCiAjaW5jbHVkZSAiQ29tcG9zZWRTaGFkb3dUcmVlV2Fsa2VyLmgiCkBAIC02Miw2ICs2NCw3
IEBACiAjaW5jbHVkZSAiSW50UmVjdC5oIgogI2luY2x1ZGUgIkxhbmd1YWdlLmgiCiAjaW5jbHVk
ZSAiTWFsbG9jU3RhdGlzdGljcy5oIgorI2luY2x1ZGUgIk1vY2tQYWdlUG9wdXBEcml2ZXIuaCIK
ICNpbmNsdWRlICJOb2RlUmVuZGVyaW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQcmludENvbnRleHQuaCIKQEAgLTExMiw2ICsxMTUsMTAgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCisjaWYgRU5BQkxFKFBBR0VfUE9QVVApCitzdGF0aWMgTW9ja1BhZ2VQb3B1
cERyaXZlciogc19wYWdlUG9wdXBEcml2ZXIgPSAwOworI2VuZGlmCisKIHVzaW5nIG5hbWVzcGFj
ZSBIVE1MTmFtZXM7CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SKQpAQCAtMjEzLDkgKzIyMCwxNiBA
QCB2b2lkIEludGVybmFsczo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZShQYWdlKiBwYWdlKQogewog
ICAgIEFTU0VSVChwYWdlKTsKIAorICAgIHBhZ2UtPnNldFBhZ2luYXRpb24oUGFnaW5hdGlvbigp
KTsKICAgICBUZXh0UnVuOjpzZXRBbGxvd3NSb3VuZGluZ0hhY2tzKGZhbHNlKTsKICAgICBXZWJD
b3JlOjpvdmVycmlkZVVzZXJQcmVmZXJyZWRMYW5ndWFnZXMoVmVjdG9yPFN0cmluZz4oKSk7CiAg
ICAgV2ViQ29yZTo6U2V0dGluZ3M6OnNldFVzZXNPdmVybGF5U2Nyb2xsYmFycyhmYWxzZSk7Cisj
aWYgRU5BQkxFKFBBR0VfUE9QVVApCisgICAgZGVsZXRlIHNfcGFnZVBvcHVwRHJpdmVyOworICAg
IHNfcGFnZVBvcHVwRHJpdmVyID0gMDsKKyAgICBpZiAocGFnZS0+Y2hyb21lKCkpCisgICAgICAg
IHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+cmVzZXRQYWdlUG9wdXBEcml2ZXIoKTsKKyNlbmRp
ZgogI2lmIEVOQUJMRShJTlNQRUNUT1IpICYmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQog
ICAgIGlmIChwYWdlLT5pbnNwZWN0b3JDb250cm9sbGVyKCkpCiAgICAgICAgIHBhZ2UtPmluc3Bl
Y3RvckNvbnRyb2xsZXIoKS0+c2V0UHJvZmlsZXJFbmFibGVkKGZhbHNlKTsKQEAgLTY2NSwxMyAr
Njc5LDMwIEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRGb3JtQ29udHJvbFN0YXRlT2ZQcmV2aW91c0hp
c3RvcnlJdGVtKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzCiAgICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOwogfQogCit2b2lkIEludGVybmFsczo6c2V0RW5hYmxlTW9ja1BhZ2VQb3B1cChi
b29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworI2lmIEVOQUJMRShQQUdFX1BPUFVQ
KQorICAgIERvY3VtZW50KiBkb2N1bWVudCA9IGNvbnRleHREb2N1bWVudCgpOworICAgIGlmICgh
ZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkgfHwgIWRvY3VtZW50LT5wYWdlKCktPmNocm9t
ZSgpKQorICAgICAgICByZXR1cm47CisgICAgUGFnZSogcGFnZSA9IGRvY3VtZW50LT5wYWdlKCk7
CisgICAgaWYgKCFlbmFibGVkKSB7CisgICAgICAgIHBhZ2UtPmNocm9tZSgpLT5jbGllbnQoKS0+
cmVzZXRQYWdlUG9wdXBEcml2ZXIoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAo
IXNfcGFnZVBvcHVwRHJpdmVyKQorICAgICAgICBzX3BhZ2VQb3B1cERyaXZlciA9IE1vY2tQYWdl
UG9wdXBEcml2ZXI6OmNyZWF0ZShwYWdlLT5tYWluRnJhbWUoKSkubGVha1B0cigpOworICAgIHBh
Z2UtPmNocm9tZSgpLT5jbGllbnQoKS0+c2V0UGFnZVBvcHVwRHJpdmVyKHNfcGFnZVBvcHVwRHJp
dmVyKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGVuYWJsZWQpOworICAgIFVOVVNFRF9QQVJB
TShlYyk7CisjZW5kaWYKK30KKwogI2lmIEVOQUJMRShQQUdFX1BPUFVQKQogUGFzc1JlZlB0cjxQ
YWdlUG9wdXBDb250cm9sbGVyPiBJbnRlcm5hbHM6OnBhZ2VQb3B1cENvbnRyb2xsZXIoKQogewot
ICAgIEludGVybmFsU2V0dGluZ3MqIHNldHRpbmdzID0gdGhpcy0+c2V0dGluZ3MoKTsKLSAgICBp
ZiAoIXNldHRpbmdzKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gc2V0dGluZ3MtPnBh
Z2VQb3B1cENvbnRyb2xsZXIoKTsKKyAgICByZXR1cm4gc19wYWdlUG9wdXBEcml2ZXIgPyBzX3Bh
Z2VQb3B1cERyaXZlci0+cGFnZVBvcHVwQ29udHJvbGxlcigpIDogMDsKIH0KICNlbmRpZgogCkBA
IC04MjgsMTQgKzg1OSw1MSBAQCB2b2lkIEludGVybmFsczo6c2V0U2Nyb2xsVmlld1Bvc2l0aW9u
KERvY3VtZW50KiBkb2N1bWVudCwgbG9uZyB4LCBsb25nIHksIEV4Y2VwdAogICAgIGZyYW1lVmll
dy0+c2V0Q29uc3RyYWluc1Njcm9sbGluZ1RvQ29udGVudEVkZ2UoY29uc3RyYWluc1Njcm9sbGlu
Z1RvQ29udGVudEVkZ2VPbGRWYWx1ZSk7CiB9CiAKLXZvaWQgSW50ZXJuYWxzOjpzZXRQYWdpbmF0
aW9uKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBtb2RlLCBpbnQgZ2FwLCBpbnQgcGFnZUxlbmd0
aCwgRXhjZXB0aW9uQ29kZSYgZWMpCit2b2lkIEludGVybmFsczo6c2V0UGFnaW5hdGlvbihEb2N1
bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmluZyYgbW9kZSwgaW50IGdhcCwgaW50IHBhZ2VMZW5n
dGgsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIHNldHRpbmdzKCktPnNldFBhZ2luYXRpb24o
bW9kZSwgZ2FwLCBwYWdlTGVuZ3RoLCBlYyk7CisgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1l
bnQtPnBhZ2UoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKyAgICBQYWdlKiBwYWdlID0gZG9jdW1lbnQtPnBhZ2UoKTsKKworICAg
IFBhZ2luYXRpb24gcGFnaW5hdGlvbjsKKyAgICBpZiAobW9kZSA9PSAiVW5wYWdpbmF0ZWQiKQor
ICAgICAgICBwYWdpbmF0aW9uLm1vZGUgPSBQYWdpbmF0aW9uOjpVbnBhZ2luYXRlZDsKKyAgICBl
bHNlIGlmIChtb2RlID09ICJMZWZ0VG9SaWdodFBhZ2luYXRlZCIpCisgICAgICAgIHBhZ2luYXRp
b24ubW9kZSA9IFBhZ2luYXRpb246OkxlZnRUb1JpZ2h0UGFnaW5hdGVkOworICAgIGVsc2UgaWYg
KG1vZGUgPT0gIlJpZ2h0VG9MZWZ0UGFnaW5hdGVkIikKKyAgICAgICAgcGFnaW5hdGlvbi5tb2Rl
ID0gUGFnaW5hdGlvbjo6UmlnaHRUb0xlZnRQYWdpbmF0ZWQ7CisgICAgZWxzZSBpZiAobW9kZSA9
PSAiVG9wVG9Cb3R0b21QYWdpbmF0ZWQiKQorICAgICAgICBwYWdpbmF0aW9uLm1vZGUgPSBQYWdp
bmF0aW9uOjpUb3BUb0JvdHRvbVBhZ2luYXRlZDsKKyAgICBlbHNlIGlmIChtb2RlID09ICJCb3R0
b21Ub1RvcFBhZ2luYXRlZCIpCisgICAgICAgIHBhZ2luYXRpb24ubW9kZSA9IFBhZ2luYXRpb246
OkJvdHRvbVRvVG9wUGFnaW5hdGVkOworICAgIGVsc2UgeworICAgICAgICBlYyA9IFNZTlRBWF9F
UlI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBwYWdpbmF0aW9uLmdhcCA9IGdhcDsK
KyAgICBwYWdpbmF0aW9uLnBhZ2VMZW5ndGggPSBwYWdlTGVuZ3RoOworICAgIHBhZ2UtPnNldFBh
Z2luYXRpb24ocGFnaW5hdGlvbik7CiB9CiAKLVN0cmluZyBJbnRlcm5hbHM6OmNvbmZpZ3VyYXRp
b25Gb3JWaWV3cG9ydChEb2N1bWVudCosIGZsb2F0IGRldmljZVBpeGVsUmF0aW8sIGludCBkZXZp
Y2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWlsYWJsZVdpZHRoLCBpbnQgYXZhaWxh
YmxlSGVpZ2h0LCBFeGNlcHRpb25Db2RlJiBlYykKK1N0cmluZyBJbnRlcm5hbHM6OmNvbmZpZ3Vy
YXRpb25Gb3JWaWV3cG9ydChEb2N1bWVudCogZG9jdW1lbnQsIGZsb2F0IGRldmljZVBpeGVsUmF0
aW8sIGludCBkZXZpY2VXaWR0aCwgaW50IGRldmljZUhlaWdodCwgaW50IGF2YWlsYWJsZVdpZHRo
LCBpbnQgYXZhaWxhYmxlSGVpZ2h0LCBFeGNlcHRpb25Db2RlJiBlYykKIHsKLSAgICByZXR1cm4g
c2V0dGluZ3MoKS0+Y29uZmlndXJhdGlvbkZvclZpZXdwb3J0KGRldmljZVBpeGVsUmF0aW8sIGRl
dmljZVdpZHRoLCBkZXZpY2VIZWlnaHQsIGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWlnaHQs
IGVjKTsKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisgICAg
fQorICAgIFBhZ2UqIHBhZ2UgPSBkb2N1bWVudC0+cGFnZSgpOworCisgICAgY29uc3QgaW50IGRl
ZmF1bHRMYXlvdXRXaWR0aEZvck5vbk1vYmlsZVBhZ2VzID0gOTgwOworCisgICAgVmlld3BvcnRB
cmd1bWVudHMgYXJndW1lbnRzID0gcGFnZS0+dmlld3BvcnRBcmd1bWVudHMoKTsKKyAgICBWaWV3
cG9ydEF0dHJpYnV0ZXMgYXR0cmlidXRlcyA9IGNvbXB1dGVWaWV3cG9ydEF0dHJpYnV0ZXMoYXJn
dW1lbnRzLCBkZWZhdWx0TGF5b3V0V2lkdGhGb3JOb25Nb2JpbGVQYWdlcywgZGV2aWNlV2lkdGgs
IGRldmljZUhlaWdodCwgZGV2aWNlUGl4ZWxSYXRpbywgSW50U2l6ZShhdmFpbGFibGVXaWR0aCwg
YXZhaWxhYmxlSGVpZ2h0KSk7CisgICAgcmVzdHJpY3RNaW5pbXVtU2NhbGVGYWN0b3JUb1ZpZXdw
b3J0U2l6ZShhdHRyaWJ1dGVzLCBJbnRTaXplKGF2YWlsYWJsZVdpZHRoLCBhdmFpbGFibGVIZWln
aHQpLCBkZXZpY2VQaXhlbFJhdGlvKTsKKyAgICByZXN0cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFs
U2NhbGVJZk5vdFVzZXJTY2FsYWJsZShhdHRyaWJ1dGVzKTsKKworICAgIHJldHVybiAidmlld3Bv
cnQgc2l6ZSAiICsgU3RyaW5nOjpudW1iZXIoYXR0cmlidXRlcy5sYXlvdXRTaXplLndpZHRoKCkp
ICsgIngiICsgU3RyaW5nOjpudW1iZXIoYXR0cmlidXRlcy5sYXlvdXRTaXplLmhlaWdodCgpKSAr
ICIgc2NhbGUgIiArIFN0cmluZzo6bnVtYmVyKGF0dHJpYnV0ZXMuaW5pdGlhbFNjYWxlKSArICIg
d2l0aCBsaW1pdHMgWyIgKyBTdHJpbmc6Om51bWJlcihhdHRyaWJ1dGVzLm1pbmltdW1TY2FsZSkg
KyAiLCAiICsgU3RyaW5nOjpudW1iZXIoYXR0cmlidXRlcy5tYXhpbXVtU2NhbGUpICsgIl0gYW5k
IHVzZXJTY2FsYWJsZSAiICsgKGF0dHJpYnV0ZXMudXNlclNjYWxhYmxlID8gInRydWUiIDogImZh
bHNlIik7CiB9CiAKIGJvb2wgSW50ZXJuYWxzOjp3YXNMYXN0Q2hhbmdlVXNlckVkaXQoRWxlbWVu
dCogdGV4dEZpZWxkLCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5oCmluZGV4IDY4ZTY1ZTRjYjlkMTQxYjFkM2E4Y2Y2MThjNGE4OWQwMGU1MDUzYjUuLjhiMWFm
YTYzY2JiODMwMWVhY2ExZWY2NzBhOGI5Mzk4ZGRjZTZjYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaApAQCAtMTE4LDYgKzExOCw3IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIFBhc3NS
ZWZQdHI8RE9NU3RyaW5nTGlzdD4gZm9ybUNvbnRyb2xTdGF0ZU9mUHJldmlvdXNIaXN0b3J5SXRl
bShFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRGb3JtQ29udHJvbFN0YXRlT2ZQcmV2aW91
c0hpc3RvcnlJdGVtKFBhc3NSZWZQdHI8RE9NU3RyaW5nTGlzdD4sIEV4Y2VwdGlvbkNvZGUmKTsK
KyAgICB2b2lkIHNldEVuYWJsZU1vY2tQYWdlUG9wdXAoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwog
I2lmIEVOQUJMRShQQUdFX1BPUFVQKQogICAgIFBhc3NSZWZQdHI8UGFnZVBvcHVwQ29udHJvbGxl
cj4gcGFnZVBvcHVwQ29udHJvbGxlcigpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5pZGwKaW5kZXggNzAzYmVhM2FhYWFkMTdiNzBiMThkOTk5MjM3ZTU2M2Q1NDgyZTg0Zi4u
ODM1MmJkZWY3NjViMzQyNjU2ZGIxNjRjNTBkNTMyYTk3OWIxYjU4MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNzgsNiArNzgsNyBAQAogI2VuZGlmCiAgICAgRE9NU3Ry
aW5nW10gZm9ybUNvbnRyb2xTdGF0ZU9mUHJldmlvdXNIaXN0b3J5SXRlbSgpIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgIHZvaWQgc2V0Rm9ybUNvbnRyb2xTdGF0ZU9mUHJldmlvdXNIaXN0b3J5
SXRlbShpbiBET01TdHJpbmdbXSB2YWx1ZXMpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgIHZv
aWQgc2V0RW5hYmxlTW9ja1BhZ2VQb3B1cChpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwogI2lmIGRlZmluZWQoRU5BQkxFX1BBR0VfUE9QVVApICYmIEVOQUJMRV9QQUdF
X1BPUFVQCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFBhZ2VQb3B1cENvbnRyb2xsZXIgcGFnZVBv
cHVwQ29udHJvbGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYwMTgzZDRhNDMzNDI1M2ExZjc1MWU0Njhj
ZDdkYWEyODk0MjBmNzMuLjJhNmMzY2YxMDJiODA1NDFmNTI3NDM4ODI2NTAwZGFiMDRkODllYzcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMS0yMSAgVG9ueSBDaGFuZyAgPHRvbnlAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgbW9yZSBmdW5jdGlvbnMgZnJvbSBpbnRlcm5hbHMu
c2V0dGluZ3MgdG8gaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDI5NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBNb3ZlIGludGVybmFscy5zZXR0aW5ncy5zZXRFbmFibGVNb2NrUGFnZVBv
cHVwIHRvIGludGVybmFscy5zZXRFbmFibGVNb2NrUGFnZVBvcHVwLgorCisgICAgICAgICogZmFz
dC9mb3Jtcy9yZXNvdXJjZXMvcGlja2VyLWNvbW1vbi5qczoKKwogMjAxMi0xMS0yMSAgSm9zaHVh
IEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBJREJEYXRhYmFz
ZUV4Y2VwdGlvbgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMv
cGlja2VyLWNvbW1vbi5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcmVzb3VyY2VzL3BpY2tl
ci1jb21tb24uanMKaW5kZXggZWY5NWYwYjlmOTUxZmQ1NzAwMmQ0MWRmNGY5Mzg5MDhkZWEzNmQ5
OC4uNmZjYjIxMWU0YzI3MzU0MGNhZDZiNzU0YTZhMjRmZGNjNGU1ODcxYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9yZXNvdXJjZXMvcGlja2VyLWNvbW1vbi5qcworKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Jlc291cmNlcy9waWNrZXItY29tbW9uLmpzCkBAIC0xLDYg
KzEsNiBAQAogd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVuYWJsZU1vY2tQYWdlUG9wdXAodHJ1ZSk7
CisgICAgaW50ZXJuYWxzLnNldEVuYWJsZU1vY2tQYWdlUG9wdXAodHJ1ZSk7CiAKIHZhciBwb3B1
cFdpbmRvdyA9IG51bGw7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>